Manual do PHP

por:
Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Hannes Magnusson
Georg Richter
Damien Seguy
Jakub Vrana
E muitos outros
2024-04-29
Editado por: Peter Cowburn
© 1997-2024 the PHP Documentation Group
por:
Alessander Pery Lopes Thomaz
Amanda Vale
Anderson Fortaleza
André Luis Ferreira da Silva Bacci
Claudio Pereira
Diogo Galvão
Ernani Joppert Pontes Martins
Fábio Luciano Nogueira de Góis
Felipe Nascimento Silva Pena
Fernando Correa da Conceição
João Prado Maia
Lucas Rocha
Marcelo Pereira Fonseca da Silva
Rafael Jaques
Raphael Melo de Oliveira Bastos Sales
Renato Arruda
Ricardo Miranda Santos
Rodrigo Prado de Jesus
Rogerio Prado de Jesus
Taniel Franklin
Thomas Gonzalez Miranda
Thiago Henrique Pojda
  • Copyright
  • Manual do PHP
    • Prefácio
  • Começando
    • Introdução
    • Um simples tutorial
  • Instalação e Configuração
    • Considerações Gerais sobre Instalação
    • Instalação em sistemas Unix
    • Instalação no macOS
    • Instalação no Windows
    • Instalação em Plataformas de Computação em Nuvem
    • FastCGI Process Manager (FPM)
    • Instalação das extensões PECL
    • Problemas?
    • Configuração em tempo de execução
  • Referência da Linguagem
    • Sintaxe Básica
    • Tipos
    • Variáveis
    • Constantes
    • Expressões
    • Operadores
    • Estruturas de Controle
    • Funções
    • Classes e Objetos
    • Namespaces
    • Enumerações
    • Erros
    • Exceções
    • Fibers
    • Generators
    • Atributos
    • Referências
    • Variáveis pré-definidas
    • Exceções pré-definidas
    • Interfaces e Classes pré-definidas
    • Atributos Predefinidos
    • Opções e parâmetros de contexto
    • Protocolos e Wrappers suportados
  • Segurança
    • Introdução
    • Considerações Gerais
    • Instalando como binário CGI
    • Instalado como módulo do Apache
    • Segurança da Sessão
    • Segurança do Sistema de Arquivos
    • Segurança de Bancos de Dados
    • Relatando Erros
    • Dados Enviados pelo Usuário
    • Escondendo o PHP
    • Mantendo-se Atualizado
  • Características
    • Autenticação HTTP com PHP
    • Cookies
    • Sessões
    • Lidando com XForms
    • Gerenciar o upload de arquivos
    • Usando arquivos remotos
    • Tratamento de Conexões
    • Conexões Persistentes com o Banco de Dados
    • Uso da linha de Comando — Usando PHP a partir da linha de comando
    • Coletor de Lixo
    • Instrumentação dimâmica DTrace
  • Referência das Funções
    • Afetando o comportamento do PHP
    • Manipulação de Formatos de Áudio
    • Serviços de Autenticação
    • Extensões Específicas para Linha de Comando
    • Extensões de Arquivo e Compressão
    • Extensões para Criptografia
    • Extensões de Banco de Dados
    • Extensões Relacionadas a Data e Horário
    • Extensões Relacionadas a Sistema de Arquivo
    • Linguagem Humana e Suporte a Codificação de Caracteres
    • Processamento e Geração de Imagem
    • Extensões Relacionadas a Correio Eletrônico
    • Extensões Matemáticas
    • Saída de MIME Não-Texto
    • Extensões para Controle de Processo
    • Outras Extensões Básicas
    • Outros Serviços
    • Extensões de Motor de Busca
    • Extensões Específicas para Servidor
    • Extensões de Sessão
    • Processamento de Texto
    • Extensões Relacionadas a Variáveis e Tipos
    • Serviços para Web
    • Extensões Somente para Windows
    • Manipulação de XML
    • Extensões GUI
  • FAQ — FAQ: Perguntas Mais Frequentes
    • Informações Gerais
    • Listas de Discussão
    • Obtendo o PHP
    • Questões sobre banco de dados
    • Instalação
    • Problemas de Compilação
    • Utilizando o PHP
    • Gerando hash de senha — Gerando hash seguro de senha
    • PHP e HTML
    • PHP e COM
    • Questões Diversas
  • Apêndices
    • História do PHP e Projetos Relacionados
    • Migrando do PHP 8.2.x para o PHP 8.3.x
    • Migrando do PHP 8.1.x para o PHP 8.2.x
    • Migrando do PHP 8.0.x para o PHP 8.1.x
    • Migrando do PHP 7.4.x para o PHP 8.0.x
    • Migrando do PHP 7.3.x para o PHP 7.4.x
    • Migrando do PHP 7.2.x para o PHP 7.3.x
    • Migrando do PHP 7.1.x para o PHP 7.2.x
    • Migrando do PHP 7.0.x para o PHP 7.1.x
    • Migrando do PHP 5.6.x para o PHP 7.0.x
    • Migrando do PHP 5.5.x para o PHP 5.6.x
    • Depurando em PHP
    • Opções do script Configure
    • php.ini directives
    • Categorização/Lista das Extensões
    • Lista de funções sinônimas (aliases)
    • Lista de Palavras Reservadas do PHP
    • Lista de tipos de recursos no PHP
    • Lista de Filtros Disponíveis
    • Lista de Transportes via Socket Suportados
    • Tabela de comparações de tipos do PHP
    • Lista de Tokens do Parser
    • Guia de nomenclatura em espaço de usuário
    • Sobre o manual
    • Creative Commons Attribution 3.0
    • Lista de índices
    • Registro de Alterações
  • Versão de Ajuda em HTML
    • About This Edition
    • Using PHP Manual CHM Edition
    • The Full Text Search
    • Integrating the PHP Manual


Copyright

Copyright © 1997 - 2024 para o PHP Documentation Group. Este material pode ser distribuído apenas sob os termos e condições determinadas pela Creative Commons Attribution 3.0 ou posteriores. Uma cópia da Creative Commons Attribution 3.0 license é distribuída com este manual. A última versão está atualmente disponível em » http://creativecommons.org/licenses/by/3.0/.

Se você está interessado na redistribuição ou republicação deste documento como um todo ou em parte, modificado ou não, ou se você tem dúvidas, basta contatar os responsáveis pelo copyright em » doc-license@lists.php.net. Note que esse endereço tem suas mensagens preservadas em um arquivo público.


  • « Copyright
  • Prefácio »
  • PHP Manual
  • Manual do PHP

Manual do PHP

  • Prefácio


Prefácio

PHP, que significa "PHP: Hypertext Preprocessor" (pré-processador de hipertexto), é uma linguagem de script de uso geral de código aberto amplamente utilizada, especialmente adequada para desenvolvimento web e pode ser incorporada em HTML. Sua sintaxe baseia-se em C, Java e Perl, e é fácil de aprender. O objetivo principal da linguagem é permitir a desenvolvedores escreverem páginas que serão geradas de forma dinâmica e rápida, mas pode-se fazer muito mais do que isso com o PHP.

Esse manual consiste primeiramente de uma referência de funções, mas ele também contém uma referência da linguagem, explicações sobre os recursos mais importantes do PHP, e outras informações suplementares.

Este manual pode ser obtido em vários formatos em » https://www.php.net/download-docs.php. Mais informações sobre como este manual é desenvolvido podem ser encontradas no apêndice 'Sobre o manual'. Se você está interessado na história do PHP, consulte o apêndice correspondente.

Autores e Contribuidores

Destacamos as pessoas mais ativas atualmente na página inicial do manual, mas há muito mais pessoas que atualmente ajudam no nosso trabalho ou que forneceram uma grande ajuda ao projeto no passado. Existem muitas pessoas não citadas que ajudam com as notas de usuários nas páginas do manual, que continuamente são incluídas nas referências, por cujo trabalho somos extremamente gratos. Todas as listas a seguir estão em ordem alfabética.

Autores e Editores

Os seguintes contribuidores são reconhecidos pelo impacto que causaram e/ou continuam a causar ao adicionar conteúdo ao manual: Bill Abt, Jouni Ahto, Alexander Aulbach, Stig Bakken, George Peter Banyard, Christoph M. Becker, Daniel Beckham, Nilgün Belma Bugüner, Jesus M. Castagnetto, Ron Chmara, Sean Coates, John Coggeshall, Simone Cortesi, Peter Cowburn, Daniel Egeberg, Markus Fischer, Wez Furlong, Sara Golemon, Rui Hirokawa, Brad House, Pierre-Alain Joye, Etienne Kneuss, Moriyoshi Koizumi, Rasmus Lerdorf, Andrew Lindeman, Stanislav Malyshev, Justin Martin, Rafael Martinez, Rick McGuire, Moacir de Oliveira Miranda Júnior, Kalle Sommer Nielsen, Yasuo Ohgaki, Philip Olson, Richard Quadling, Derick Rethans, Rob Richards, Sander Roobol, Egon Schmid, Thomas Schoefbeck, Sascha Schumann, Dan Scott, Masahiro Takagi, Yoshinari Takaoka, Yannick Torres, Michael Wallner, Lars Torben Wilson, Jim Winstead, Jeroen van Wolffelaar e Andrei Zmievski.

Os seguintes contribuidores fizeram um trabalho significativo editando o manual: Stig Bakken, Gabor Hojtsy, Hartmut Holzgraefe, Philip Olson e Egon Schmid.

Mantenedores de Notas de Usuários

Os mantenedores mais ativos atualmente são: Daniel Brown, Nuno Lopes, Felipe Pena, Thiago Pojda e Maciek Sokolewicz.

Estas pessoas também se esforçaram muito no gerenciamento de notas de usuários: Mehdi Achour, Daniel Beckham, Friedhelm Betz, Victor Boivie, Jesus M. Castagnetto, Nicolas Chaillan, Ron Chmara, Sean Coates, James Cox, Vincent Gevers, Sara Golemon, Zak Greant, Szabolcs Heilig, Oliver Hinckel, Hartmut Holzgraefe, Etienne Kneuss, Rasmus Lerdorf, Matthew Li, Andrew Lindeman, Aidan Lister, Hannes Magnusson, Maxim Maletsky, Bobby Matthis, James Moore, Philip Olson, Sebastian Picklum, Derick Rethans, Sander Roobol, Damien Seguy, Jason Sheets, Tom Sommer, Jani Taskinen, Yasuo Ohgaki, Jakub Vrana, Lars Torben Wilson, Jim Winstead, Jared Wyles e Jeroen van Wolffelaar.


Começando

  • Introdução
    • O que é o PHP?
    • O que o PHP pode fazer?
  • Um simples tutorial
    • O que eu preciso?
    • Sua primeira página PHP
    • Algo Útil
    • Tratando Formulários
    • O que vem a seguir?


  • « Começando
  • O que é o PHP? »
  • PHP Manual
  • Começando
  • Introdução

Introdução

Índice

  • O que é o PHP?
  • O que o PHP pode fazer?


O que é o PHP?

O PHP (um acrônimo recursivo para PHP: Hypertext Preprocessor) é uma linguagem de script open source de uso geral, muito utilizada, e especialmente adequada para o desenvolvimento web e que pode ser embutida dentro do HTML.

Ótimo, mas o que isso significa? Por exemplo:

Exemplo #1 Um exemplo introdutório

<!DOCTYPE html>
<html>
<head>
<title>Exemplo</title>
</head>
<body>

<?php
echo "Olá, eu sou um script PHP!";
?>

</body>
</html>

Em vez de muitos comandos para mostrar HTML (como acontece com C ou Perl), as páginas PHP contém HTML em código mesclado que faz "alguma coisa" (neste caso, mostra "Olá, eu sou um script PHP!"). O código PHP é delimitado pelas instruções de processamento (tags) de início e fim <?php e ?> que permitem que você entre e saia do "modo PHP".

O que distingue o PHP de algo como o JavaScript no lado do cliente é que o código é executado no servidor, gerando o HTML que é então enviado para o navegador. O navegador recebe os resultados da execução desse script, mas não sabe qual era o código fonte. Você pode inclusive configurar seu servidor web para processar todos os seus arquivos HTML com o PHP, e então não há como os usuários dizerem o que você tem na sua manga.

A melhor coisa em usar o PHP é que ele é extremamente simples para um iniciante, mas oferece muitos recursos avançados para um programador profissional. Não tenha medo de ler a longa lista de recursos do PHP. Pode entrar com tudo, o mais rápido que puder, e começar a escrever scripts simples em poucas horas.

Apesar do desenvolvimento do PHP ser focado nos scripts do lado do servidor, você pode fazer muito mais com ele. Veja sobre isso na seção O que o PHP pode fazer?, ou vá diretamente para o tutorial introdutório se você estiver interessado apenas em programação web.


O que o PHP pode fazer?

Qualquer coisa. O PHP é focado principalmente nos scripts do lado do servidor, portanto, você pode fazer qualquer coisa que outro programa CGI pode fazer, como coletar dados de formulários, gerar páginas com conteúdo dinâmico ou enviar e receber cookies. Mas o PHP pode fazer muito mais.

Existem três áreas principais onde os scripts PHP são usados:

  • Scripts no lado do servidor (server-side). Este é o mais tradicional e principal campo de atuação do PHP. Você precisa de três coisas para isto funcionar: o interpretador do PHP (CGI ou módulo do servidor), um servidor web e um navegador web. Você precisa rodar o servidor web conectado a uma instalação do PHP. Você pode acessar os resultados de seu programa PHP com um navegador web, visualizando a página PHP através do servidor web. Tudo isso pode rodar na sua máquina pessoal se você estiver apenas experimentando programar com o PHP. Veja a seção das instruções de instalação para mais informações.
  • Scripts de linha de comando. Você pode fazer um script PHP para executá-lo sem um servidor ou navegador. A única coisa necessária é o interpretador PHP. Esse tipo de uso é ideal para script executados usando o cron (Unix, Linux) ou o Agendador de Tarefas (no Windows). Esses scripts podem ser usados também para rotinas de processamento de texto simples. Veja a seção Utilizando o PHP em linha de comando para mais informações.
  • Escrever aplicações desktop. O PHP provavelmente não é a melhor linguagem para criação de aplicações desktop com interfaces gráficas, mas se você conhece bem o PHP, e gostaria de usar alguns dos seus recursos avançados nas suas aplicações do lado do cliente, você pode usar o PHP-GTK para escrever programas assim. Você também tem a possibilidade de escrever aplicações multi-plataformas desse jeito. O PHP-GTK é uma extensão do PHP, não disponibilizada na distribuição oficial. Caso esteja interessado no PHP-GTK, visite » o site do projeto.

O PHP pode ser utilizado na maioria dos sistemas operacionais, incluindo Linux, várias variantes do Unix (como HP-UX, Solaris e OpenBSD), Microsoft Windows, macOS, RISC OS e provavelmente outros. O PHP também tem suporte à maioria dos servidores web atualmente. Isso inclui o Apache, o IIS e muitos outros. E isso inclui qualquer servidor web que possa utilizar o binário FastCGI do PHP, como o lighttpd e o nginx. O PHP trabalha tanto como módulo quanto como um processador CGI.

Com o PHP, portanto, você tem liberdade de escolha de sistema operacional e de servidor web. Além disso, você pode escolher entre utilizar programação estruturada ou programação orientada a objeto (OOP), ou ainda uma mistura das duas.

Com o PHP, você não está limitado a apenas gerar HTML. O PHP é capaz de gerar tipos de arquivos complexos, como imagens e arquivos PDF, criptografar dados e enviar emails. Você também pode gerar facilmente textos, como JSON ou XML. O PHP consegue gerar automaticamente esses arquivos, e gravá-los no sistema de arquivos, ao invés de apenas imprmir, possibilitando criar um cache no lado do servidor para seu counteúdo dinâmico.

Uma das características mais fortes e mais significativas do PHP é seu suporte a uma ampla variedade de banco de dados. Escrever uma página web consultando um banco de dados é incrivelmente simples usando uma das extensões específicas de banco de dados (por exemplo, mysql), ou usando uma camada de abstração como o PDO ou conectar a qualquer banco de dados que suporte o padrão "Open Database Connection" usando a extensão ODBC. Outros bancos de dados podem utilizar cURL ou sockets, como o CouchDB.

O PHP também tem suporte para comunicação com outros serviços utilizando protocolos como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (no Windows) e incontáveis outros. Você também pode abrir sockets de rede e interagir diretamente usando qualquer outro protocolo. O PHP também suporta o intercâmbio de dados complexos WDDX, utilizado em virtualmente todas as linguagens de programação para web. Falando de comunicação, o PHP implementa a instanciação de objetos Java e os utiliza transparentemente como objetos PHP.

O PHP tem recursos úteis para processamento de texto, incluindo expressões regulares compatíveis com Perl (PCRE), e muitas outras extensões e ferramentas para analisar e acessar documentos XML. O PHP padroniza todas as extensões XML a partir da base sólida da libxml2, além de estender o conjunto de recursos adicionando suporte a SimpleXML, XMLReader e XMLWriter.

E existem muitas outras extensões interessantes, que são categorizadas tanto alfabeticamente quanto por categoria. E existem também as extensões PECL adicionais que podem, ou não, estar documentadas dentro do próprio manual do PHP, como a » XDebug.

Como você pode ver, esta página não é suficiente para descrever todos os recursos e benefícios que o PHP pode oferecer. Leia as seções sobre a Instalação do PHP, e veja a parte da referência das funções para detalhes sobre as extensões mencionadas aqui.


Um simples tutorial

Índice

  • O que eu preciso?
  • Sua primeira página PHP
  • Algo Útil
  • Tratando Formulários
  • O que vem a seguir?

Aqui nós iremos mostrar o básico do básico do PHP em um simples e curto tutorial. Este texto fala somente sobre a criação de páginas web dinâmicas com PHP, embora o PHP não seja apenas capaz de criar páginas web. Veja a seção intitulada O que o PHP pode fazer para mais informações.

Fazer páginas com PHP é o mesmo que criar páginas HTML e você pode criá-las e editá-las da mesma maneira que você normalmente cria páginas HTML comuns.


O que eu preciso?

Neste tutorial nós presumimos que seu servidor tem suporte ao PHP ativado e que todos os arquivos terminando com a extensão .php são tratados pelo PHP. Na maioria dos servidores esta é a extensão padrão para os arquivos PHP, mas pergunte ao administrador do seu servidor para ter certeza. Se o seu servidor suporta PHP então você não precisa fazer mais nada. Apenas crie seus arquivos .php, coloque-os no seu diretório web e o servidor irá automaticamente interpretá-los para você. Não há necessidade de compilar nada nem você precisa instalar qualquer ferramenta extra. Pense nesses arquivos PHP como simples arquivos HTML com uma nova família de tags mágicas que permitem que você faça todo tipo de coisas.

Digamos que você queira salvar sua preciosa conexão e desenvolver tudo localmente. Neste caso, você precisará instalar um servidor web, como o » Apache, e claro o » PHP. Você provavelmente também deseja instalar um banco de dados, como por exemplo o » MySQL.

Você pode instalá-los separadamente ou de um jeito mais simples. Nosso manual contém instruções de instalação do PHP (supondo que você já tem um servidor web configurado). Se você tiver problemas com a instalação do PHP, sugerimos que pergunte em nossa » lista de discussão sobre assuntos de instalação.. Se preferir uma rota mais simples então » veja um pacote pré-configurado para o seu sistema operacional, o qual automaticamente instalará tudo com apenas alguns clicks. É fácil de instalar um servidor web com suporte ao PHP em qualquer sistema operacional, incluindo MacOSX, Linux e Windows. No Linux, você verá que » rpmfind e » PBone são úteis para localizar RPMs. Você também pode usar o » apt-get para localizar pacotes para o Debian.


Sua primeira página PHP

Crie um novo arquivo chamado hello.php e coloque-o no diretório root do seu servidor web (DOCUMENT_ROOT) com o seguinte conteúdo:

Exemplo #1 Nosso primeiro script PHP: hello.php

<!DOCTYPE html>
<html>
<head>
<title>Teste PHP</title>
</head>
<body>
<?php echo "<p>Olá Mundo</p>"; ?>
 </body>
</html>

Use o seu navegador para acessar o arquivo com a URL de seu servidor web, terminando com a referência ao arquivo /hello.php. Quando o desenvolvimento for local está URL será algo como http://localhost/hello.php ou http://127.0.0.1/hello.php mas isso depende da configuração do seu servidor web. Se tudo foi configurado corretamente, este arquivo será interpretado pelo PHP e a seguinte mensagem será enviada ao seu navegador:

<!DOCTYPE html>
<html>
    <head>
        <title>Teste PHP</title>
    </head>
    <body>
        <p>Olá Mundo</p>
    </body>
</html>

Este programa é realmente simples e você não precisa do PHP para criar uma página assim (fixa). Tudo o que ela faz é mostrar: Hello World utilizando a instrução echo. Note que o arquivo não precisa ser executável ou especial. O servidor web descobre que este arquivo precisa ser interpretado pelo PHP por causa da extensão ".php", que o servidor é configurado para repassar ao PHP. Pense nisso como um arquivo HTML normal que por acaso possui um conjunto de tags especiais disponíveis para você fazer muitas coisas interessantes.

Se você tentar rodar este exemplo e ele não mostrar nenhuma mensagem de saída, ou aparecer uma caixa de diálogo pedindo para você salvar o arquivo, ou você ver todo o conteúdo do arquivo como texto, há uma grande chance do seu servidor não ter o PHP habilitado ou não estar configurado corretamente. Peça ao seu administrador para habilitar o PHP para você usando o capítulo de Instalação do manual. Se você está desenvolvendo localmente, leia também o capítulo de instalação indicado acima para ter certeza de que configurou tudo corretamente. Confirme que está acessando o arquivo via HTTP através do servidor web. Se acessar o arquivo através do sistema de arquivos, então ele não será interpretado pelo PHP. Caso o problema persista, não hesite em nos chamar nos vários » canais de suporte do PHP.

O objetivo do exemplo é mostrar o formato especial das tags do PHP. Neste exemplo nós usamos <?php para indicar que a partir daquele ponto entramos no modo PHP. Então nós colocamos a instrução do PHP e saímos do modo PHP adicionando a tag de fechamento, ?>. Você pode entrar e sair do modo PHP num arquivo HTML desta maneira em qualquer lugar que você queira. Para mais detalhes, leia a seção do manual que fala da sintaxe básica do PHP.

Nota: Uma Nota sobre Fins de linha

Fins de linha têm pouco significado no HTML, entretanto ainda é uma boa idéia fazer o seu HTML ter uma boa aparência e organização através da divisão em linhas. Um fim de linha imediatamente após a tag de fechamento ?> será removido pelo PHP. Isso pode ser extremamente útil quando você está juntando vários blocos de PHP ou arquivos incluídos contendo apenas PHP que não deveriam imprimir nada no processo. Ao mesmo tempo isso pode ser um pouco confuso. Você pode colocar um espaço depois da tag de fechamento ?> para forçar a impressão de um espaço e fim de linha ou você pode explicitamente imprimir o fim de linha com um último echo/print de dentro de seu bloco PHP.

Nota: Uma Nota sobre os Editores de Texto

Há muitos editores de textos e Integrated Development Enviroments (IDEs) que você pode usar para criar, editar e gerenciar arquivos PHP. Uma lista parcial destas ferramentas pode ser vista na » Lista de Editores para PHP. Se você gostaria de recomendar um editor, por favor visite a página acima e peça ao administrador da página para adicionar o editor à lista. Ter um editor que destaca a sintaxe das tags pode ser muito útil.

Nota: Uma Nota sobre os Processadores de Texto

Processadores de texto como o StarOffice Writer, Microsoft Word e Abiword não são boas escolhas para editar arquivos PHP. Se você deseja usar um desses para este script de teste, você precisa verificar se você está salvando o arquivo como texto puro ou o PHP não será capaz de ler e executar o script.

Agora que você criou com sucesso um script simples em PHP, é hora de criar o mais famoso dos scripts PHP! Uma chamada à função phpinfo() e você verá muitas informações úteis sobre seu sistema e configurações como as Variáveis Predefinidas disponíveis, módulos carregados pelo PHP, e as opções de configuração. Tire algum tempo para ver e revisar estas informações importantes.

Exemplo #2 Como obter informações sobre o PHP

<?php phpinfo(); ?>


Algo Útil

Vamos fazer alguma coisa um pouco mais útil agora. Nós iremos checar qual é o tipo de navegador que o visitante está utilizando para ver a nossa página. Para fazer isto nós iremos checar qual é o valor da string agente que o navegador envia como parte de sua requisição HTTP. Esta informação é armazenada em uma variável. Variáveis sempre começam com um símbolo de cifrão no PHP. A variável que nos interessa no momento é $_SERVER['HTTP_USER_AGENT'].

Nota:

$_SERVER é uma variável especial reservada do PHP que contém todas as informações sobre o servidor web. Ela é conhecida como uma superglobal. Veja a página do manual relacionada às superglobais para mais informações.

Para exibir esta variável, nós podemos fazer isto:

Exemplo #1 Imprimindo uma variável (elemento do Array)

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

Um exemplo de saída desse script poderia ser:

Mozilla/5.0 (Linux) Firefox/112.0

Há muitos tipos de variáveis disponíveis no PHP. No exemplo acima nós imprimimos um elemento do Array. Arrays podem ser muito úteis.

$_SERVER é somente uma das variáveis que o PHP automaticamente disponibiliza para você. A lista destas variáveis pode ser vista na seção Variáveis Reservadas do manual ou você pode obter uma lista completa delas olhando o resultado da função phpinfo() utilizada no exemplo da seção anterior.

Você pode colocar múltiplas instruções PHP dentro da tag PHP e criar pequenos blocos de códigos que fazem muito mais do que um simples echo. Por exemplo, se você quer checar se o navegador é o Firefox você pode fazer isso:

Exemplo #2 Exemplo utilizando estruturas de controle e funções

<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
echo 'Você está usando o Firefox.';
}
?>

Um exemplo de saída desse script seria:

Você está usando o Firefox.

Aqui nós introduzimos alguns conceitos novos. Nós temos a declaração if. Se você está familiarizado com a sintaxe básica usada pela linguagem C isto parecerá ser lógico para você. Se não você provavelmente deve ver um livro introdutório de PHP e ler os capítulos iniciais, ou ainda ler a seção Referência da Linguagem do manual.

O segundo conceito que iremos abordar é a chamada à função str_contains(). A função str_contains() vem junto com o PHP e busca uma palavra em outra palavra. Neste caso nós estamos procurando pelo texto 'Firefox' dentro de $_SERVER['HTTP_USER_AGENT']. Se o dado pesquisado for encontrado na coleção, a função retorna verdadeiro. Se não, ela retorna false. Se ela retornar true, o if avalia para true e o código dentro dos {colchetes} é executado. Caso contrário o código não roda. Tente criar exemplos similares com if, else, e outras funções como strtoupper() e strlen(). Cada página relacionada contém exemplos também. Se você estiver incerto em como utilizar funções você deve ler as páginas sobre como ler uma definição de função e a seção sobre funções do PHP.

Nós podemos avançar agora e mostrar a você como alternar entre os modos PHP mesmo que você esteja executando blocos de códigos:

Exemplo #3 Mesclando entre os modos PHP e HTML

<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false) {
?>
<h3>str_contains() retornou não falso</h3>
<p>Você está usando Firefox</p>
<?php
} else {
?>
<h3>str_contains() retornou false</h3>
<p>Você não está usando Firefox</p>
<?php
}
?>

Um exemplo de saída desse script poderia ser:

<h3>str_contains() retornou não falso</h3>
<p>Você está usando Firefox</p>

Ao invés de usar a declaração echo do PHP para imprimir a saída dos dados, nós saímos do modo do PHP e usamos o HTML normal. O importante a notar aqui é que a lógica do script continua intacta. Somente um dos blocos HTML será enviado dependendo do resultado da chamada à função str_contains(). Em outras palavras, depende se a palavra Firefox for encontrada ou não.


Tratando Formulários

Uma das características mais fortes do PHP é o jeito como ele trata formulários HTML. O conceito básico que é importante entender é que qualquer elemento de formulário irá automaticamente ficar disponível para seus scripts PHP. Por favor leia a seção Variáveis externas do PHP para mais informações e exemplos de como usar formulários com PHP. Aqui vai um exemplo de formulário HTML:

Exemplo #1 Um simples formulário HTML

<form action="action.php" method="post">
    <label for="name">Your name:</label>
    <input name="name" id="name" type="text">

    <label for="age">Your age:</label>
    <input name="age" id="age" type="number">

    <button type="submit">Submit</button>
</form>

Não há nada de especial neste formulário. É um formulário HTML comum sem nenhuma tag especial de qualquer tipo. Quando o usuário preencher este formulário e clicar no botão enviar, a página action.php é chamada. Neste arquivo nós teremos algo como isto:

Exemplo #2 Imprimindo dados de nosso formulário

Hi <?php echo htmlspecialchars($_POST['name']); ?>.
You are <?php echo (int)$_POST['age']; ?> years old.

Um exemplo de saída deste script seria:

Hi Joe. You are 22 years old.

Para além de htmlspecialchars() e (int), deve ser óbvio o que o script faz. htmlspecialchars() transforma caracteres que sejam especiais no HTML na sua forma codificada, de forma que não seja possível injetar tags HTML ou JavaScript em sua página. O campo age (idade), por ser um número, podemos simplesmente converter para um int que automaticamente eliminará qualquer caractere estranho. Você também pode fazer o PHP automaticamente fazer isso utilizando a extensão filter. As variáveis $_POST['name'] e $_POST['age'] são criadas automaticamente pelo PHP. Anteriormente utilizamos a superglobal $_SERVER; acima mostramos que a superglobal $_POST contém todos os dados POST. Perceba como o method (método) do formulário é POST. Se fosse utilizado o método GET então os dados do formulário acabariam na superglobal $_GET. Você também pode utilizar a superglobal $_REQUEST, se não se importar qual a origem do dado enviado. Ela conterá os dados mesclados de origens GET, POST e COOKIE.

Você também pode utilizar XForms no PHP, embora se sinta confortável com os formulários HTML clássicos por um bom tempo. Embora trabalhar com XForms não seja para iniciantes, você pode se interessar por eles. Há uma seção com uma rápida introdução sobre manipular dados recebidos de XForms no manual.


O que vem a seguir?

Com esse conhecimento deve ser possível entender a maior parte do manual e também os vários scripts de exemplo disponíveis nos arquivos de exemplo.

Para ver várias apresentações que mostram o que mais o PHP pode fazer, veja no site sobre Conferências de PHP em: » http://talks.php.net/


Instalação e Configuração

  • Considerações Gerais sobre Instalação
  • Instalação em sistemas Unix
    • Apache 2.0 em sistemas Unix
    • Nginx 1.4.x em sistemas Unix
    • Lighttpd 1.4 em sistemas Unix
    • Servidores Web LiteSpeed/OpenLiteSpeed em sistemas Unix
    • CGI e instalações de linha de comando
    • Notas de instalação para o OpenBSD
    • Dicas de instalação específicas para o Solaris
    • Notas de Instalação para o Debian GNU/Linux
  • Instalação no macOS
    • Usando Pacotes
    • Usando o pacote do PHP no macOS para versões anteriores ao macOS Monterey
    • Compilando o PHP no MacOS
  • Instalação no Windows
    • Requisitos de Instalação
    • PECL
    • Ferramentas de instalação do PHP no Windows
    • Configuração Recomendada em sistemas Windows
    • Instalação Manual do PHP no Windows
    • Compilando a partir dos fontes
    • PHP em Linha de Comando no Microsoft Windows
    • Apache 2.x no Microsoft Windows
    • Solução de Problemas do PHP no Windows
  • Instalação em Plataformas de Computação em Nuvem
    • Azure App Services
    • Amazon EC2
    • DigitalOcean
  • FastCGI Process Manager (FPM)
    • Instalação
    • Configuração
  • Instalação das extensões PECL
    • Introdução às Instalações PECL
    • Baixando extensões PECL
    • Instalando uma extensão PHP no Windows
    • Compilando extensões PECL compartilhadas com o comando pecl
    • Compilando extensões PECL compartilhadas com phpize
    • php-config
    • Compilando extensões PECL estaticamente no PHP
  • Problemas?
    • Leia o FAQ
    • Outros problemas
    • Relatos de Bug
  • Configuração em tempo de execução
    • O arquivo de configuração
    • Arquivos .user.ini
    • Onde uma configuração deve ser definida
    • Como mudar as configurações


Considerações Gerais sobre Instalação

Antes de começar a instalar o PHP, primeiro você deve saber o que você deseja fazer com ele. Existem três principais formas de se usar o PHP, como descrito na seção O que o PHP pode fazer? do manual:

  • Websites e aplicações web (script do lado do servidor)
  • Scripts para linha de comando
  • Aplicações de Desktop (GUI)

Para a primeira forma, e a mais comum, você precisa de três coisas: o próprio PHP, um servidor web e um cliente (browser) web. Você provavelmente já tem um browser, e dependendo da configuração do seu sistema operacional, você pode também ter um servidor web (Ex.: Apache no Linux e macOS; IIS no Windows). Você também pode alugar um host em uma companhia qualquer. Dessa maneira, você não precisa configurar nada por conta própria, apenas escrever os seus scripts PHP, enviar (upload) para o servidor que você alugou, e ver os resultados no seu browser.

No caso de você instalar o servidor e o PHP por conta própria, você tem duas escolhas para o método de conexão do PHP com o servidor. Para muitos servidores o PHP tem uma interface direta de módulo (também chamada de SAPI). Entre esses servidores estão Apache, Microsoft Internet Information Server, Netscape e iPlanet. Se o PHP não tiver suporte de módulo para o seu servidor web, você também pode usá-lo como processador CGI ou FastCGI. Isso significa configurar seu servidor para usar o executável CGI do PHP para processar todas as requisições a arquivos PHP no servidor.

Se você também estiver interessado em usar o PHP para criar scripts em linha de comandos (Ex.: criar scripts que geram imagens enquanto estão offline, ou processar arquivos de texto dependendo de alguns argumentos que você passar ao script), você pode precisar do executável de linha de comando. Para mais informações, leia a seção sobre criando aplicações de linha de comando com o PHP. Nesse caso, você não precisa de servidor nem de um browser.

Com o PHP, você também pode criar aplicações para desktop com interface gráfica (GUI) usando a extensão PHP-GTK. Isso é uma abordagem completamente diferente da criação de páginas web, já que a saída não é em HTML, mas o manuseio de janelas e objetos dentro delas. Para mais informações sobre PHP-GTK, por favor » visite o site dedicado à essa extensão. PHP-GTK não é inclusa na distribuição oficial do PHP.

Por enquanto, essa seção trata da instalação do PHP em servidores web no Unix e Windows como módulos dos servidores e executáveis CGI. Você também pode encontrar informação sobre executáveis de linha de comando nas seções seguintes.

O código fonte do PHP e distribuições binárias para Windows podem ser encontradas em » https://www.php.net/downloads.php.


Instalação em sistemas Unix

Índice

  • Apache 2.0 em sistemas Unix
  • Nginx 1.4.x em sistemas Unix
  • Lighttpd 1.4 em sistemas Unix
  • Servidores Web LiteSpeed/OpenLiteSpeed em sistemas Unix
  • CGI e instalações de linha de comando
  • Notas de instalação para o OpenBSD
  • Dicas de instalação específicas para o Solaris
  • Notas de Instalação para o Debian GNU/Linux

Essa seção é um guia geral para configuração e instalação do PHP em sistemas Unix. Verifique se existe uma seção específica para sua plataforma ou servidor web antes de começar o processo.

Como nosso manual destaca na seção Considerações Gerais sobre Instalação, nós estamos lidando principalmente com configurações web do PHP nesta seção, embora seja coberta a instalação do PHP para uso em linha de comando também.

Existem várias maneiras de instalar o PHP para a plataforma Unix, ou com um processo de compilar e configurar, ou através de vários métodos pré-empacotados. Essa documentação é focada principalmente no processo de compilação e configuração do PHP. Muitos sistemas baseados no Unix tem alguma forma de sistema de instalação de pacotes. Isso pode ajudar na instalação de uma configuração padrão, mas se você precisar ter uma série de características diferentes (como um servidor seguro, ou um driver de banco de dados diferente), você pode precisar montar o PHP e/ou servidor web. Se você não estiver familiarizado com o processo de montar e compilar seu próprio software, vale a pena checar se alguém já montou um pacote do PHP com as características que você precisa.

Pré-requisitos de software e de conhecimento para compilar:

  • Conhecimento básico de Unix (ser capaz de operar o "make" e um compilador C)
  • Um compilador ANSI C
  • A web server
  • Quaisquer componentes específicos (como GD, PDF, etc.)

Ao compilar diretamente dos fontes Git ou após modificações, também será necessário:

  • autoconf:
    • PHP 7.3 e posterior: 2.68+
    • PHP 7.2: 2.64+
    • PHP 7.1 e anterior: 2.59+
  • automake: 1.4+
  • libtool: 1.4.x+ (exceto 1.4.2)
  • re2c:
    • PHP 8.3 e posterior: 1.0.3+
    • PHP 8.2 e anterior: 0.13.4+
  • bison:
    • PHP 7.4 e posterior: 3.0.0+
    • PHP 7.3 e anterior: 2.4+ (incluindo Bison 3.x)

O processo inicial de configuração de instalação do PHP é controlado pelo uso de opções de linha de comando do script configure. Você pode pegar a lista de todas as opções disponíveis junto com uma pequena explicação executando o comando ./configure --help. Nosso manual documenta as diferentes opções separadamente. Você encontrará as opções principais no apêndice, enquanto as opções específicas das diferentes extensões são descritas nas páginas de referência.

Quando o PHP é configurado, você está pronto para montá-lo como módulo e/ou executável. O comando make deve tomar conta disso. Se ele falhar e você não conseguir descobrir a razão, veja a Seção de Problemas.

Nota:

Alguns sistemas Unix (como OpenBSD e SELinux) podem não permitir o mapeamento de páginas graváveis e executáveis por razões de segurança, o que é chamado de PaX MPROTECT ou proteção de violação W^X. Este tipo de mapeamento de memória é, entretanto, necessário para o suporte JIT do PCRE, então ou o PHP deve ser construído sem o suporte JIT do PCRE, ou o binário deve ser colocado na lista de permissões por qualquer meio fornecido pelo sistema.

Nota: A compilação cruzada para ARM através do toolchain Android não é suportada.


Apache 2.0 em sistemas Unix

Esta seção contém notas e dicas específicas para a instalação do PHP em Apache 2.x em sistemas Unix.

Aviso

Não recomendamos usar um MPM com threads no Apache 2 em produção. Use o módulo prefork, que é o MPM padrão no Apache 2.0 e 2.2 e não usa threads. Para obter informações sobre o motivo, leia a FAQ sobre o uso do Apache2 com MPM com threads.

A » documentação do Apache é a fonte mais importante sobre o servidor Apache 2.x. Mais informações sobre opções de instalação podem ser encontradas lá.

A versão mais recente do servidor Apache HTTP pode ser obtida do » site de download Apache, e uma versão correspondente do PHP pode ser obtida dos locais mencionados anteriormente. Esse guia rápido cobre apenas o básico para iniciar o Apache 2.x e PHP. Para mais informações leia a » documentação do Apache. Os números de versão estão omitidos aqui, para garantir que as instruções não fiquem desatualizadas. Nos exemplos abaixo 'NN' deve ser substituído com a versão específica do Apache utilizado.

Atualmente há duas versões do Apache 2.x. - 2.4 e 2.2. Embora haja razões para escolher entre elas, 2.4 é a versão mais atual, e aquela recomendada, se essa opção lhe for possível. Entretanto as instruções aqui funcionarão para ambas as versões 2.4 e 2.2. Importante notar que o Apache httpd 2.2 está em End Of Life, e nenhum novo desenvolvimento ou correções serão realizados nele.

  1. Obter o Apache HTTP do endereço acima e descompactar:

    tar -xzf httpd-2.x.NN.tar.gz

  2. Da mesma forma, obter e descompactar os fontes do PHP:

    tar -xzf php-NN.tar.gz

  3. Compilar e instalar o Apache. Consulte a documentação de instalação do Apache para mais detalhes/opções de compilação.

    cd httpd-2_x_NN
./configure --enable-so
make
make install

  4. Você agora tem um Apache 2.x.NN disponível em /usr/local/apache2, configurado com módulos carregáveis e o MPM prefork padrão. Para testar a instalação utilize o procedimento de inicialização do servidor Apache. Por exemplo:

    /usr/local/apache2/bin/apachectl start
    e depois pare o servidor para configurar o PHP:
    /usr/local/apache2/bin/apachectl stop

  5. Agora configure e compile o PHP. Aqui você pode personalizar o PHP com várias opções, por exemplo quais extensões estarão disponíveis. Rode ./configure --help para uma lista de opções disponíveis. Em nosso exemplo nós iremos configurar apenas com suporte ao Apache 2 e MySQL.

    Se você compilou o Apache a partir dos fontes como descrito acima os exemplos abaixo terão caminhos coincidentes do apxs, mas se instalou de outra forma você terá de ajustar o caminho para o apxs. Algumas distribuições renomeiam apxs para apxs2.

    cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql
make
make install

    Se decidir modificar suas configurações depois da instalação você terá de rodar novamente o configure, make e make install. Terá também de reiniciar o Apache para que o novo módulo seja carregado. Uma recompilação do Apache não é necessária.

    Note que por padrão 'make install' também instalará o PEAR, várias ferramentas do PHP como phpize, instalar o PHP CLI, entre outros.

  6. Configure seu php.ini:

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

    Você pode editar seu arquivo .ini para configurar o PHP. Se preferir ter um php.ini em outra localização, utilize --with-config-file-path=/some/path no passo 5.

    Se preferir utilizar o php.ini-production leia atentamente esse arquivo, dado que ele modifica o comportamento do PHP.

  7. Edite seu httpd.conf para carregar o módulo do PHP. O caminho a direita da instrução LoadModule precisa apontar para o caminho do módulo do PHP em seu sistema. O 'make install' acima pode ter feito isso por você, mas é bom confirmar.

    No PHP 8:

    LoadModule php_module modules/libphp.so

    No PHP 7:

    LoadModule php7_module modules/libphp7.so

  8. Configure o Apache para interpretar certas extensões de arquivos do PHP. Por exemplo configurar o Apache para interpretar arquivos .php. Em vez de utilizar apenas a diretiva Apache AddType é recomendado evitar uploads potencialmente perigosos e nomes de arquivos como exploit.php.jpg de serem executados pelo PHP. Nesse exemplo você pode ter qualquer extensão (ou extensões) configuradas. Adicionaremos .php como demonstração.

    <FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

    Ou, pode-se acrescentar também .php, .php2, .php3, .php4, .php5, .php6 e .phtml para ser executado como PHP, desta forma:

    <FilesMatch "\.ph(p[2-6]?|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

    Para permitir que arquivos .phps sejam interpretados pelo filtro de fontes do PHP e exibidos como código fonte destacado, utilize isso:

    <FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

    mod_rewrite pode ser utilizado para permitir que qualquer arquivo .php seja exibido como código fonte destacado, sem ter de renomear ou copiar arquivos para a extensão .phps, assim:

    RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]

    O filtro de fontes PHP não deve ser ativado em ambiente de produção, onde ele pode expor dados confidenciais ou de outra forma importantes, que estejam incluídos no código fonte.

  9. Depois utilize a forma normal de iniciar o servidor Apache:

    /usr/local/apache2/bin/apachectl start

    ou

    service httpd restart

Seguindo os passos acima você terá um Apache2 rodando com suporte ao PHP como um módulo SAPI. Existem muitas outras opções de configuração disponíveis no Apache e PHP. Para mais informações rode ./configure --help na código fonte correspondente.

Apache pode ser construído com multithread através da seleção do MPM worker, em vez do padrão MPM prefork. Isso é possível acrescentado-se o seguinte argumento no ./configure do passo 3 acima:

--with-mpm=worker

Isso não deve ser feito sem conhecer as consequências dessa decisão, ou pelo menos ter uma boa noção de suas implicações. A documentação do Apache sobre » MPM-Modules discute essas questões em grandes detalhes.

Nota:

A Apache MultiViews FAQ discute multiviews com o PHP.

Nota:

Para construir uma versão multithread o sistema destino precisa suportar threads. Nesse caso o PHP também deve ser compilado com o Zend Thread Safety (ZTS). Nessa configuração nem todas as extensões estarão disponíveis. A configuração recomendada é construir o Apache com o módulo MPM prefork padrão.


Nginx 1.4.x em sistemas Unix

Esta documentação cobrirá a instalação e configuração do PHP com PHP-FPM para um servidor HTTP Nginx 1.4.x.

Este guia assumirá que o Nginx foi construído a partir da fonte e portanto todos os binários e arquivos de configuração estão localizados em /usr/local/nginx. Se não for este o caso e o Nginx foi obtido de outro modo então favor se referir à » Wiki Nginx para traduzir este manual para a sua configuração.

Este guia cobrirá o básico da configuração de um servidor Nginx para processar aplicações PHP e servi-las na porta 80. Recomenda-se que a documentação do Nginx e do PHP-FPM seja estudada se for desejado otimizar a configuração além do escopo deste documentação.

Favor notar que, ao longo desta documentação, números de versões foram trocados por um 'x' para assegurar que a informação se mantenha correta no futuro. Favor trocar, conforme necessário, com os números das versões correspondentes.

  1. Recomenda-se a visita à página de » instalação da Wiki Nginx para obter e instalar o Nginx no seu sistema.

  2. Obtenha e descompacte a fonte do PHP:

    tar zxf php-x.x.x

  3. Configure e construa o PHP. Aqui é onde o PHP é customizado com várias opções, como quais extensões serão habilitadas. Execute ./configure --help para uma lista de opções disponíveis. No nosso exemplo faremos uma configuração simples com PHP-FPM e suporte MySQLi.

    cd ../php-x.x.x
./configure --enable-fpm --with-mysqli
make
sudo make install

  4. Obtenha e mova os arquivos de configuração para suas localizações corretas

    cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
cp sapi/fpm/php-fpm /usr/local/bin

  5. É importante evitar que o Nginx passe requisições ao processo interno do PHP-FPM se o arquivo não existe, fazendo com que se impeça injeção arbitrária de script.

    Isto pode ser feito configurando-se a diretiva cgi.fix_pathinfo para 0 no arquivo php.ini.

    Abra o php.ini:

    vim /usr/local/php/php.ini

    Localiza cgi.fix_pathinfo= e modifique como a seguir:

    cgi.fix_pathinfo=0

  6. php-fpm.conf deve ser modificado para especificar que o php-fpm deve rodar como o usuário www-data e o grupo www-data antes do serviço ser iniciado:

    vim /usr/local/etc/php-fpm.d/www.conf

    Ecnontre e modifique o seguinte:

    ; Usuário/grupo de processos Unix
; Nota: O usuário é mandatório. Se o grupo não for definido, o grupo padrão do usuário
;       será usado.
user = www-data
group = www-data

    O serviço php-fpm pode agora ser iniciado:

    /usr/local/bin/php-fpm

    Este guia não irá configurar o php-fpm além disso, se houver interesse em configuração adicional do php-fpm favor consultar a documentação.

  7. Nginx agora deve ser configurado para suportar o processamento de aplicações PHP:

    vim /usr/local/nginx/conf/nginx.conf

    Modifique o bloco de localização padrão para avisar que ele deve tentar servir arquivos .php:

    location / {
    root   html;
    index  index.php index.html index.htm;
}

    O próximo passo é assegurar que os arquivos .php são passados ao processo interno do PHP-FPM. Abaixo do bloco comentado de localização padrão do PHP, entre com o seguinte:

    location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

    Reinicie o Nginx.

    sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx

  8. Crie um arquivo de teste

    rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php

    Agora navegue até http://localhost. A informação de phpinfo() agora deve ser mostrada.

Ao seguir os passos acima o servidor web Nginx será executado com suporte para PHP como um módulo SAPI FPM. Obviamente existem muitas opções de configurações adicionaism disponíveis para Nginx e PHP. Para mais informação digite ./configure --help na pasta correspondente a cada fonte.


Lighttpd 1.4 em sistemas Unix

Esta seção contém notas e dicas específicas para instalações Lighttpd 1.4 do PHP em sistemas Unix.

Favor acessar o link » Lighttpd trac para aprende a instalar o Lighttpd adequadamente antes de continuar.

FastCGI é o método SAPI preferido para conectar o PHP ao Lighttpd. FastCGI é habilitado automagicamente no php-cgi.

Deixando o Lighttpd iniciar processos PHP

Para configurar o Lighttpd para se conectar ao PHP e iniciar processos FastCGI, edite o arquivo lighttpd.conf. Sockets são a maneira preferida de se conectar a processos FastCGI no sistema local.

Exemplo #1 lighttpd.conf parcial

server.modules += ( "mod_fastcgi" )

fastcgi.server = ( ".php" =>
  ((
    "socket" => "/tmp/php.socket",
    "bin-path" => "/usr/local/bin/php-cgi",
    "bin-environment" => (
      "PHP_FCGI_CHILDREN" => "16",
      "PHP_FCGI_MAX_REQUESTS" => "10000"
    ),
    "min-procs" => 1,
    "max-procs" => 1,
    "idle-timeout" => 20
  ))
)

A diretiva bin-path permite ao lighttpd iniciar processos FastCGI dinamicamente. O PHP irá iniciar processos-filhos de acordo com a variável de ambiente PHP_FCGI_CHILDREN. A diretiva bin-environment define o embiente para os processos inciados. O PHP irá fechar um processo filho depois que o número de requisições especificados por PHP_FCGI_MAX_REQUESTS for alcançado. As diretivas min-procs e max-procs devem geralmente ser evitadas com o PHP. O PHP gerencia seus próprios processos filhos, e caches opcode como APC somente irão compartilhar dados entre filhos gerenciados pelo PHP. Se min-procs for definido para algo maior que 1, o número total de respondedores php será a multiplicação por PHP_FCGI_CHILDREN (2 min-procs * 16 filhos são 32 respondedores).

Iniciando processos com spawn-fcgi

Lighttpd fornece um programa chamado spawn-fcgi para tornar a tarefa de iniciar processos FastCGI mais fácil.

Iniciando processo com php-cgi

É possível iniciar processos sem o spawn-fcgi, porém um pouco mais de esforço é requerido. Configurar a variável de ambiente PHP_FCGI_CHILDREN controla quantos processos filhos do PHP irão iniciar para lidar com as requisições que chegam. Configurar PHP_FCGI_MAX_REQUESTS irá determinar por quanto tempo (em requisições) cada filho ficará ativo. Aqui está um script bach simples para ajudar a ininicar respondedores php.

Exemplo #2 Iniciando Respondedores FastCGI

#!/bin/sh

# Localização do binário php-cgi
PHP=/usr/local/bin/php-cgi

# Localização do arquivo PID
PHP_PID=/tmp/php.pid

# Ligação a um endereço
#FCGI_BIND_ADDRESS=10.0.1.1:10000
# Ligação a um socket
FCGI_BIND_ADDRESS=/tmp/php.sock

PHP_FCGI_CHILDREN=16
PHP_FCGI_MAX_REQUESTS=10000

env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \
       PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \
       $PHP -b $FCGI_BIND_ADDRESS &

echo $! > "$PHP_PID"

Conectando a instâncias remotas FCGI

Instâncias FastCGI podem ser iniciadas em máquinas remotas múltiplas para expandir aplicações.

Exemplo #3 Conectando a instâncias remotas de php-fastcgi

fastcgi.server = ( ".php" =>
   (( "host" => "10.0.0.2", "port" => 1030 ),
    ( "host" => "10.0.0.3", "port" => 1030 ))
)


Servidores Web LiteSpeed/OpenLiteSpeed em sistemas Unix

LiteSpeed PHP é uma compilação otimizada do PHP construída para funcionar com produtos LiteSpeed através do SAPI LiteSpeed. LSPHP é executado como seu próprio processo e tem seu próprio binário separado, que pode ser utilizado como um simples binário para executar scripts PHP da linha de comando.

O LSAPI é uma API altamente otimizada que permite comunicação entre o LiteSpeed e motores web de terceiros. Seu protocolo é similar ao FCGI, mas é mais eficiente.

Esta documentação cobrirá a instalação e configuração do PHP com LSAPI para um Servidor Web LiteSpeed e um Servidor Web OpenLiteSpeed.

Este guia assumirá que o LSWS ou o OLS está instalado com seus caminhos e configurações padrões. O diretório padrão de instalação para ambos os servidores web é /usr/local/lsws e ambos podem ser executados do subdiretório bin.

Favor notar que, ao longo desta documentação, números de versões foram trocados por um x para assegurar que a informação se mantenha correta no futuro. Favor trocar, conforme necessário, com os números das versões correspondentes.

  1. Para obter e instalar o Servidor Web LiteSpeed ou o Servidor Web OpenLiteSpeed, acesse a documentação do LiteSpeed » página de instalação ou a documentação do OpenLiteSpeed » página de instalação.

  2. Obtenha e descompacte o código fonte do PHP:

    mkdir /home/php
cd /home/php
wget http://us1.php.net/get/php-x.x.x.tar.gz/from/this/mirror
tar -zxvf php-x.x.x.tar.gz
cd php-x.x.x

  3. Configure e construa o PHP. Aqui é onde o PHP pode ser customizado com várias opções, como quais extensões serão habilitadas. Execute ./configure --help para uma lista de opções disponíveis. No exemplo, serão usadas as opções de configuração padrão recomendadas para o LiteSpeed:

    ./configure ... '--with-litespeed'
make
sudo make install

  4. Verificando a Instalação do LSPHP

    Uma das maneiras mais simples de verificar se a instalação do PHP teve sucesso é executar o seguinte código:

    cd /usr/local/lsws/fcgi-bin/
./lsphp5 -v

    Isso deve retornar informação sobre o novo PHP construído:

    PHP 5.6.17 (litespeed) (built: Mar 22 2016 11:34:19)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

    Note o litespeed entre parênteses. Isso significa que o binário PHP foi construído com suporte LSAPI.

Seguindo os passos acima, LiteSpeed / OpenLiteSpeed devem agora estar rodando com suporte ao PHP como uma extensão SAPI. Existem muitas opções de configuração adicionais disponíveis para LSWS / OLS e PHP. Para mais informação, verifique a documentação do LiteSpeed sobre » PHP.

Usando LSPHP pela linha de comando:

LSPHP(LSAPI + PHP) no modo de linha de comando é usado para processar scripts PHP rodando em um servidor remoto que não necessariamente tem um servidor web em execução. É usado para processar scripts PHP que residem em um servidor web local (separado). Esta configuração é adequada para escalabilidade de serviços já que o processamento do PHP é descarregado para um servidor remoto.

Inicie o lsphp da linha de comando em um servitor remoto: LSPHP é um executável e pode ser iniciado manualmente e ligado a IPv4, IPv6 ou endereços de socket no domínio Unix com a opção -b socket_address

Examplos:

Fazendo o LSPHP se ligar à porta 3000 em todos os endereços IPv4 e IPv6:

/path/to/lsphp -b [::]:3000

Fazendo o LSPHP se ligar à porta 3000 em todos os endereços IPv4:

/path/to/lsphp -b *:3000

Fazendo o LSPHP se ligar ao endereço 192.168.0.2:3000:

/path/to/lsphp -b 192.168.0.2:3000

Fazendo o LSPHP aceitar requisições em socket de domínio Unix /tmp/lsphp_manual.sock:

/path/to/lsphp -b /tmp/lsphp_manual.sock

Variáveis de ambiente podem ser adicionadas antes do executável LSPHP:

PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 /path/to/lsphp -b IP_address:port

Atualmente o LiteSpeed PHP pode ser usado com os servidoreso web LiteSpeed, OpenLiteSpeed e Apache mod_lsapi. Para os passos sobre a configuração no lado do servidor, visite as páginas de documentação para » LiteSpeed e » OpenLiteSpeed.

LSPHP também pode ser instalado de diversas outras maneiras.

CentOS: No CentOS, LSPHP pode ser instalado a partir do repositório LiteSpeed ou do repositório Remi usando » RPM.

Debian: No Debian, LSPHP pode ser instalado a partir do repositório do LiteSpeed usando » apt.

cPanel: Visite a respectiva » página de documentação. sobre como instalar o LSPHP com cPanel e LSWS/OLS usando EasyApache 4.

Plesk: Plesk pode ser usado com LSPHP no CentOS, CloudLinux, Debian e Ubuntu. Para mais detalhes sobre isso, visite a respectiva » página de documentação.


CGI e instalações de linha de comando

Por padrão o PHP é compilado como programas CLI e CGI, quais podem ser utilizados para processamento CGI. Se você estiver executando um servidor web que suporta o PHP como módulo, você deve geralmente usar essa opção por razões de performance. No entanto, a versão CGI permite que usuários executem diferentes páginas com PHP usando diferentes ids de usuário.

Aviso

Um servidor instalado em modo CGI está aberto a várias vulnerabilidades possíveis. Leia nossa seção de segurança CGI para aprender como se defender de tais ataques.

Testando

Se você compilou o PHP como um programa CGI, você pode testá-lo usando o comando make test. É sempre uma boa idéia testar os software que você compila. Dessa maneira, você pode achar um problema com o PHP na sua plataforma cedo, ao invés de ter de lidar com isso mais tarde.

Usando Variáveis

Algumas variáveis de ambientes fornecidas pelo servidor não são definidas na atual » CGI/1.1 specification. Apenas as seguintes variáveis são definidas: 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, e SERVER_SOFTWARE. Todo o resto deve ser tratado como 'vendor extensions'.


Notas de instalação para o OpenBSD

Essa seção contém notas e dicas específicas para a instalação do PHP no » OpenBSD.

Usando Pacotes Binários

Usando pacotes binários para instalar o PHP no OpenBSD é o método recomendado e o mais simples. O pacote núcleo foi separado dos vários módulos, e cada um pode ser instalado e removido independentemente dos outros. Os arquivos necessários podem ser encontrados no CD do OpenBSD ou no FTP do site.

O pacote principal que você precisa instalar é o php, que contém o engine básico (mais gettext e iconv), e pode estar disponível dentre várias versões a escolher. Depois, olhe os pacotes com módulos, como o php-mysqli ou php-imap. Você precisa usar o comando phpxs para ativar e desativar esses módulos no seu arquivo php.ini.

Exemplo #1 Exemplo de instalação de pacote no OpenBSD

# pkg_add php
# pkg_add php-apache
# pkg_add php-mysqli
  (install the PEAR libraries)
# pkg_add pear

Siga as instruções de cada pacote!

  (to remove packages)
# pkg_delete php
# pkg_delete php-apache
# pkg_delete php-mysqli
# pkg_delete pear

Leia o manual de » packages(7) para mais informações sobre pacotes binários no OpenBSD.

Usando Ports

Você também pode compilar o PHP a partir dos fontes usando a » árvore ports. No entanto, isso só é recomendado para usuários familiarizados com OpenBSD. O port do PHP é dividido em núcleo e extensões. As extensões geram sub-pacotes para todos os módulos suportados pelo PHP. Se você achar que não quer criar alguns dos módulos, use o comando no_* FLAVOR. Por exemplo, se você quiser que o módulo imap seja ignorado, atribua à FLAVOR o valor no_imap.

Problemas Comuns

  • Apache e Nginx não são mais os servidores padrão no OpenBSD, mas eles podem ser facilmente encontrados em ports e pacotes. O novo servidor é chamado 'httpd'.
  • A instalação padrão do Apache roda dentro de uma » prisão de chroot(2), que restringe os scripts PHP a acessar arquivos abaixo de /var/www. Você irá, portanto, precisar criar um diretório /var/www/tmp para que os arquivos de sessão do PHP sejam guardados, ou usar um backend alternativo para sessões. Além disso, sockets de bancos de dados devem ser colocados dentro da prisão ou escutar na interface localhost. Se você usar funções de rede, alguns arquivos do diretório /etc como /etc/resolv.conf e /etc/services precisarão ser movidos para /var/www/etc. O pacote OpenBSD PEAR se instala automaticamente nos diretórios chroot corretos.
  • Os pacotes do OpenBSD package para a extensão » gd requer o Xorg para instalação. Isso é realizado na instalação com o acréscimo de o file set xbase.tgz, ou pode ser instalado posteriormente (veja » OpenBSD FAQ#4).


Dicas de instalação específicas para o Solaris

Essa seção contêm notas e dicas específicas para a instalação do PHP em sistemas Solaris.

Software Necessário

Instalações do Solaris frequentemente não possuem compiladores C e suas ferramentas relacionadas. Leia esse FAQ para informação sobre porque usar versões GNU para algumas dessas ferramentas é necessário.

Para descompactar uma distribuição PHP você precisará de:

  • tar
  • gzip or
  • bzip2

Para compilar o PHP você precisará de:

  • gcc (recomendado, outros compiladores C podem funcionar)
  • make
  • GNU sed

Para compilar extensões extras ou hackear o código do PHP você também precisará de:

  • re2c
  • bison
  • m4
  • autoconf
  • automake
Além você pode precisar instalar (e talvez até compilar) softwares específicos à sua configuração, como o Oracle ou MySQL.

Utilizando pacotes

Você pode simplificar o processo de instalação no Solaris ao utilizar pkgadd para instalar os componentes mais comuns. O Image Packaging System (IPS) para Solaris 11 Express também contém os componentes mais comuns utilizando-se o comando pkg.


Notas de Instalação para o Debian GNU/Linux

Essa seção contém notas e dicas específicas para a instalação do PHP no » Debian GNU/Linux.

Aviso

Compilações não oficiais de terceiros não são suportadas. Quaisquer bugs devem ser notificados para o Debian a não ser que possam ser reproduzidos utilizando as últimas compilações disponíveis na » área de download.

As instruções de compilação do PHP no Unix se aplicam ao Debian, de forma que essa página contém informações específicas opções outras, como utilizar os comandos apt ou aptitude. Essa página utilizará esses dois comandos como opções alternativas.

Usando APT

Primeiro veja que outros pacotes relacionados podem ser desejados, como libapache-mod-php para integração com o Apache 2 e php-pear para o PEAR.

Segundo, antes de instalar um pacote é melhor garantir que a lista de pacotes está atualizada. Isso é feito rodando o comando apt update.

Exemplo #1 Exemplo de instalação no Debian com Apache 2

# apt install php-common libapache2-mod-php php-cli

APT instalará automaticamente o módulo do PHP para Apache 2 e todas as suas dependências, depois ativando-o. O Apache deve ser inicializado para que as modificações tenham efeito. Por exemplo:

Exemplo #2 Parando e iniciando o Apache depois do PHP instalado

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

Controle melhor as configurações

Até então o PHP foi instalado apenas com os meus módulos principais. É bem provável que módulos adicionais serão desejados, como MySQL, cURL, GD, etc. Estes também podem ser instalados pelo comando apt.

Exemplo #3 Métodos listar pacotes adicionais do PHP

# apt-cache search php
# apt search php | grep -i mysql
# aptitude search php

Os exemplos mostrarão uma grande quantidade de pacotes incluindo vários específicos do PHP, como php-cgi, php-cli e php-dev. Determine quais serão necessários e instale como quaisquer outros via os comandos apt ou aptitude. Como o Debian verifica as dependências, ele perguntará sobre elas. Por exemplo, para instalar MySQL e cURL:

Exemplo #4 Instalando PHP com MySQL e cURL

# apt install php-mysql php-curl

O APT irá automaticamente adicionar as linhas apropriadas a arquivos php.ini relacionados, como /etc/php/7.4/php.ini, /etc/php/7.4/conf.d/*.ini, etc., e dependendo da da extensão irá ainda acrescentar diretivas similares a extension=foo.so. Entretanto é necessário reiniciar o servidor web para que essas alterações tenham efeito.

Problemas comuns

  • Se os scripts PHP não estão sendo interpretados pelo servidor web, então é provável que o PHP não tenha sido acrescentado aos arquivos de configuração do servidor web, que no Debian pode ser /etc/apache2/apache2.conf ou algo similar. Veja o manual do Debian para mais detalhes.
  • Se uma extensão parece ter sido instalada e ainda assim funções permanecem não definidas, verifique que o arquivo .ini apropriado está sendo carregado e/ou se o servidor web foi reiniciado após a instalação.
  • Há dois comandos básicos para instalar pacotes no Debian (e em outras variantes Linux): apt e aptitude. Entretanto explicar as sutis diferenças entre esses dois comandos vai além do escopo deste manual.


Instalação no macOS

Índice

  • Usando Pacotes
  • Usando o pacote do PHP no macOS para versões anteriores ao macOS Monterey
  • Compilando o PHP no MacOS

Essa seção contém notas e dicas específicas para instalação do PHP no macOS X. O PHP já vem incluído nos macOS entre o macOS X (10.0.0) e o macOS Monterey (12.0.0). A compilação do PHP no macOS é semelhante à instalação em Unix.


Usando Pacotes

Existem algumas versões do PHP empacotadas e pré-compiladas para o macOS. Isso pode ajudar na instalação de uma configuração padrão, mas se você precisar ter algumas características diferentes (como um servidor seguro, ou um driver de banco de dados diferente), você pode precisar compilar o PHP e/ou seu servidor web por conta própria. Se você não estiver familiarizado com o procedimento de compilar seu próprio software, vale a pena checar se alguém já fez um pacote do PHP com as características que você precisa.

A maneira mais rápida de instalar o php no macOS é com homebrew:

  1. instale o homebrew, seguindo as instruções em » brew.sh

  2. brew install php

Os seguintes recursos alternativoes também oferecem pacotes fáceis de instalar e binários pré-compilados para usar o PHP no Mac OS:

  • MacPorts: » http://www.macports.org/
  • Liip: » http://php-osx.liip.ch/ (PHP 5.3 - PHP 7.3; descontinuado)
  • Fink: » http://www.finkproject.org/


Usando o pacote do PHP no macOS para versões anteriores ao macOS Monterey

PHP vem junto com o macOS desde a versão macOS X (10.0.0) até a versão macOS Monterey (12.0.0). Habilitar o PHP no servidor web padrão requer apenas descomentar algumas linhas no arquivo de configuração do Apache (httpd.conf) enquanto que a versão CGI e/ou CLI estão disponíveis automaticamente (facilmente acessíveis pelo Terminal).

Habilitar o PHP usando as instruções abaixo tem como objetivo configurar rapidamente um ambiente de desenvolvimento local. É altamente recomendado sempre atualizar o PHP para a versão mais nova. Como qualquer software ativo, novas versões são criadas para consertar bugs e adicionar funcionalidades e o PHP não é diferente. As seguintes instruções são direcionadas para iniciantes, os detalhes fornecidos permitem que uma configuração padrão funcionar. Todos os usuários são encorajados à compilar ou instalar uma versão nova do pacote.

O tipo de instalação padrão é usando mod_php, e habilitar o pacote mod_php no macOS para o servidor Apache (o servidor web padrão, que é acessível via Preferências de Sistema) envolve os seguintes passos:

  1. Localize e abra o arquivo de configuração do Apache. Normalmente, ele está em: /private/etc/apache2/httpd.conf Usar Finder ou Spotlight para encontrar esse arquivo pode ser complicado, já que ele normalmente é privado e o dono é o usuário root.

    Nota: Uma maneira de modificar o arquivo é usando um editor de texto baseado em Unix no Terminal, por exemplo nano, e, como o dono do arquivo é o root, nós usaremos o comando sudo para abrí-lo (no usuário root) digite o seguinte comando na aplicação de Terminal (você precisará digitar a sua senha): sudo nano /private/etc/apache2/httpd.conf Comandos importantes do nano: ^w (busca), ^o (salvar), e ^x (sair) onde ^ representa a tecla Ctrl.

    Nota: Versões do Mac OS X anteriores a 10.5 foram empacotadas com verões mais antigas do PHP e Apache. Devido a isso, o arquivo de configuração do Apache podem estar em /etc/httpd/httpd.conf.

  2. Com um editor de texto, descomente as linhas (removendo os #) que parecem com as linhas abaixo (essas duas linhas normalmente não estão juntas, localize ambas no arquivo):

    # LoadModule php5_module libexec/httpd/libphp5.so

# AddModule mod_php5.c
    Perceba a localização/caminho. Quando compilar o PHP no futuro, os arquivos acima devem ser substituidos ou comentados.

  3. Certifique-se que as extensões desejadas serão avalidadas como códigos PHP (exemplos: .php .html e .inc)

    Como a seguinte instrução já existe no httpd.conf (a partir do Mac Panther), uma vez que o PHP for habilitado, os arquivos .php serão automaticamente interpretados como códigos PHP.

    <IfModule mod_php5.c>
    # If php is turned on, we respect .php and .phps files.
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    # Since most users will want index.php to work we
    # also automatically enable index.php
    <IfModule mod_dir.c>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

    Nota:

    Antes do OS X 10.5 (Leopard), o PHP 4 vinha empacotado ao invés do PHP 5, nesse caso as instruções acima serão um pouco diferentes, mudando de 5 para 4.

  4. Assegure-se de que a diretiva DirectoryIndex carrega o arquivo index desejado. Isso também é configurável no arquivo httpd.conf. Tipicamente index.php e index.html são usados. Por padrão, index.php é habilitado porque também está na checagem mostrada abaixo. Modifique como desejar.
  5. Configure a localização do arquivo php.ini ou use a padrão Uma localização típica no macOS é /usr/local/php/php.ini e uma chamada à phpinfo() revelará essa informação. Se não for usado um arquivo php.ini, o PHP usará todos os valores padrão. Veja também o FAQ relacionado em encontrando o php.ini.
  6. Localize ou configure DocumentRoot Esse é o diretório raiz para todos os arquivos do servidor. Os arquivos nesse diretório serão servidos pelo servidor web, então os arquivos PHP serão interpretados como PHP antes de terem seu resultado enviado para o servidor. Um caminho padrão para isso é /Library/WebServer/Documents mas isso pode ser modificado para qualquer outro no arquivo httpd.conf. Alternativamente, o DocumentRoot para usuários individuais é /Users/yourusername/Sites
  7. Crie um arquivo phpinfo()

    A função phpinfo() mostrará informação sobre o PHP. Considere criar um arquivo no DocumentRoot com o seguinte código PHP:

    <?php phpinfo(); ?>

  8. Reinicie o Apache e carregue o arquivo PHP criado acima

    Para reiniciar, ou execute sudo apachectl graceful no shell ou stop/start na opção "Personal Web Server" nas Preferêncais do Sistema no macOS. Geralmente, carregar arquivos locais no browser pode ser feito usando uma URL assim: http://localhost/info.php ou se estiver usando o diretório DocumentRoot dentro de um diretório de usuário, seria assim: http://localhost/~yourusername/info.php

A versão CLI (ou CGI em versões mais antigas) tem o nome php e provavelmente está em /usr/bin/php. Abra um terminal, leia a seção sobre linha de comando do manual PHP e execute php -v para verificar a versão do PHP usada. Uma chamada ao phpinfo() também revelará essa informação.


  • « Usando o pacote do PHP no macOS para versões anteriores ao macOS Monterey
  • Instalação no Windows »
  • PHP Manual
  • Instalação no macOS
  • Compilando o PHP no MacOS

Compilando o PHP no MacOS

Use o Instalação em sistemas Unix para compilar o PHP no MacOS.


Instalação no Windows

Índice

  • Requisitos de Instalação
  • PECL
  • Ferramentas de instalação do PHP no Windows
  • Configuração Recomendada em sistemas Windows
  • Instalação Manual do PHP no Windows
  • Compilando a partir dos fontes
  • PHP em Linha de Comando no Microsoft Windows
  • Apache 2.x no Microsoft Windows
  • Solução de Problemas do PHP no Windows

Instalando o PHP em Microsoft Windows modernos e arquivos de configuração em de web servers populares.

Os releases oficiais do PHP para Windows são as recomendadas para uso em produção. Entretanto, você pode compilar o PHP a partir do código fonte. Para isso é preciso um ambiente Visual Studio. Veja as » Instruções de compilação passo a passo.

  • Utilizando o PHP em linha de comando

  • Instalando o PHP no Azure App Services (aka Microsoft Azure, Windows Azure ou (Windows) Azure Web Apps).


Requisitos de Instalação

O PHP requer ao menos Windows 2008/Vista. 32-Bit ou 64-bit (AKA X86 ou X64; PHP não roda no Windows RT/WOA/ARM). Desde o PHP 7.2.0, o Windows 2008 e o Vista não são mais suportados.

O PHP requer o Visual C runtime (CRT). Muitas aplicações também tem esse requisito, de forma que ele já deve estar instalado.

O Microsoft Visual C++ Redistributable para Visual Studio 2019 é adequado para todas essas versões de PHP, veja » https://visualstudio.microsoft.com/downloads/.

Você PRECISA instalar o CRT x86 para compilar o PHP em x86 e o CRT x64 para compilações PHP x64.

Se o CRT já está instalado, o instalador irá avisar que não fez nenhuma alteração.

O instalador CRT suporta as opções de linha de comando /quiet e /norestart, de forma que você pode automatizar o passo de instalação.


PECL

Extensões PECL são pré-compiladas no Windows e disponíveis em: » http://windows.php.net/downloads/pecl/releases/

Algumas extensões utilizam recursos específicos de sistemas Unix systems, e portanto não estão disponíveis no Windows. Caso contrário, todas as extensões estão disponíveis para Windows.


Ferramentas de instalação do PHP no Windows

Ferramentas de instalação do PHP

» XAMPP, WampServer e BitNami irão configurar as aplicações PHP para utilização com Apache no Windows.

Preparar e configurar o Nginx no Windows requer um pouco mais de configuração. Consulte a » documentação Nginx para apoio adicional.


Configuração Recomendada em sistemas Windows

OpCache

É altamente recomendado habilitar o OpCache. Esta extensão é incluída no PHP para Windows. Ela compila e otimiza os scripts PHP e os mantém na memória cache para que não sejam compilados toda vez que uma página é carregada.

Configure o php.ini:

Exemplo #1 Configuração recomendada do OpCache

opcache.enable=On
opcache.enable_cli=On
Reinicie o servidor web. Para mais informação, consulte: Configuração OpCache

WinCache

Recomenda-se usar o WinCache se o IIS for usado, especialmente em um ambiente de hospedagem web compartilhado ou em armazenamento de arquivos de rede (NAS). Note que o WinCache não é mais suportado a partir do PHP 8.0.0. Todas as aplicações PHP se beneficiam automaticamente do recurso de cache de arquivo do WinCache. Operações do sistema de arquivos são armazenadas em cache. WinCache também armazena em cache objetos de usuário e compartilha-os entre os processos php.exe ou php-cgi.exe (compartilha objetos entre requisições). Muitas das grandes aplicações web têm um plugin ou extensão ou opção de configuração para uso do WinCache para cache de objetos de usuário. Se um alto desempenho é requerido, deve-se usar cache de objetos na aplicação. Consulte: » http://pecl.php.net/package/WinCache para baixar uma DLL WinCache (or tgz) para a pasta de extensões PHP (extensions_dir no php.ini). Configure o php.ini:

Exemplo #2 Configuração WinCache recomendada

extension=php_wincache.dll
wincache.fcenabled=1
wincache.ocenabled=1 ; removida a partir do wincache 2.0.0.0
Para mais informação, consulte: Configuração WinCache

Configuração IIS

No Gerenciador IIS, instale o módulo FastCGI e adicione um manipulador para mapear a extensão `.php` para o caminho do PHP-CGI.exe (não para o PHP.exe)

Pode ser usado o Prompt de Comando para configurar o IIS via script.

Banco de Dados

Provavelmente será necessário um Servidor de Banco de Dados. Bancos de dados populares fornecem extensões PHP para que possam ser utilizados. Se o site não tiver um tráfego muito alto, o servidor de banco de dados pode ser executado no mesmo servidor web. Muitos bancos de dados populares podem são compatíveis com o Windows.

O PHP inclui as extensões mysqli e pdo_mysql.

Consulte » https://dev.mysql.com/downloads/windows/


Instalação Manual do PHP no Windows

Escolhendo o Servidor Web

IIS

O servidor IIS já vem embutido na instalação do Windows. No Windows Server, o papel do IIS pode ser adicionado pelo Gerenciados do Servidor. O recurso CGI Role precisa ser incluído. No Windows Desktop, o IIS precisa ser instalado pelo Painel de Controle, na opção Adicionar/Remover Programas. A documentação da Microsoft tem » instruções detalhadas. No caso de aplicações web para computadores e desenvolvimento web, o IIS/Express ou PHP Desktop também podem ser usados.

Exemplo #1 Linha de comando para configurar IIS e PHP

@echo off

REM Baixe o arquivo .ZIP da versão do PHP no link http://windows.php.net/downloads/

REM Caminho para a pasta onde deve-se descompactar o arquivo .ZIP do PHP (sem \ no final)
set phppath=c:\php

REM Limpe os manipuladores atuais do PHP
%windir%\system32\inetsrv\appcmd clear config /section:system.webServer/fastCGI
REM O comando a seguir irá gerar uma mensagem de erro se o PHP não estiver instalado. Isto pode ser ignorado.
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /-[name='PHP_via_FastCGI']

REM Defina os manipuladores do PHP
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='%phppath%\php-cgi.exe']
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='%phppath%\php-cgi.exe',resourceType='Unspecified']
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /accessPolicy:Read,Script

REM Configure as variáveis FastCGI
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='%phppath%\php-cgi.exe'].instanceMaxRequests:10000
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']"
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHPRC',value='%phppath%\php.ini']"

Apache

Existem várias compilações de Apache2 para Windows. As compilações do ApacheLounge são recomendadas, mas há outras opções incluindo XAMPP, WampServer e BitNami, que fornecem ferramentas de instalação automática. PHP pode ser usado no Apache através do mod_php ou do mod_fastcgi. mod_php requer uma compilação TS (thread safe) do Apache, com a mesma versão de Visual C e para a mesma CPU (x86 ou x64).

Escolha a Compilação

Compilações para o Windows podem ser baixadas de » http://windows.php.net/download/. Todas as compilações são otimizadas (PGO), e as versões QA e GA são extensivamente testadas.

Existem 4 tipos de compilação do PHP:

  • Thread-Safe(TS) - para servidores web de processo único, como Apache com mod_php.

  • Non-Thread-Safe(NTS) - para IIS e outros servidores web FastCGI (Apache com mod_fastcgi) e recomendado para scripts de linha de comando.

  • x86 - para sistemas de 32-bits.

  • x64 - para sistemas de 64-bits.


Compilando a partir dos fontes

Esse capítulo ensina como compilar PHP a partir dos fontes no Windows, usando as ferramentas da Microsoft. Para compilar o PHP com cygwin, veja o Instalação em sistemas Unix.

Veja a documentação no Wiki em: » https://wiki.php.net/internals/windows/stepbystepbuild


PHP em Linha de Comando no Microsoft Windows

Esta seção contém notas e dicas específicas para que o PHP seja executado da linha de comando do Windows.

Nota:

Deve-se ler os passos do manual de instalação primeiro!

Configurar o PHP para ser executado da linha de comando pode ser feito sem nenhuma mudança no Windows.

C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3

Porém há alguns passos fáceis que podem ser seguidos para tornar o processo mais simples. Alguns desses passos podem já ter sido executados, mas estão repetidos aqui para fornecer uma sequência completa, passo a passo.

    Nota:

    PATH e PATHEXT são importantes variáveis de sistemas pré-existentes no Windows, e deve-se tomar cuidado para não sobrescrever nenhuma das duas, apenas concatenar valores.

  • Concatene a localização do executável do PHP (php.exe, php-win.exe ou php-cli.exe dependendo da versão do PHP e preferências de visualização) à variável de ambiente PATH. Leia mais sobre como adicionar a pasta do PHP à variável PATH na entrada FAQ correspondente.

  • Adicione a extensão .PHP à variável de ambiente PATHEXT. Isto pode ser feito ao mesmo tempo que se adiciona à variável PATH. Siga os mesmos passos descritos no FAQ mas adicione à variável PATHEXT no lugar da variável PATH.

    Nota:

    A posição em que você inserir a extensão .PHP irá determinar qual script ou programa será executado quando o nome do arquivo for especificado. Por exemplo, inserir .PHP antes de .BAT irá fazer com que seu script seja executado, em vez do arquivo de lote, se existir um arquivo de lote com o mesmo nome.

  • Associe a extensão .PHP com o tipo de arquivo. Isto pode ser feito executando o seguinte comando:

    assoc .php=phpfile

  • Associe o tipo de arquivo phpfile com o executável PHP apropriado. Isto pode ser feito executando o seguinte comando:

    ftype phpfile="C:\php\php.exe" -f "%1" -- %~2

Seguir estes passos irá permitir que os scripts PHP sejam executados de qualquer pasta sem a necessidade de digitar o executável PHP ou a extensão .PHP e todos os parâmetros serão fornecidos ao script para processamento.

O exemplo abaixo detalha algumas das alterações de registro que podem ser realizadas manualmente.

Exemplo #1 Alterações de Registro

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php]
@="phpfile"
"Content Type"="application/php"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile]
@="PHP Script"
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
"AlwaysShowExt"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon]
@="C:\\php\\php-win.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell]
@="Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open]
@="&Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command]
@="\"C:\\php\\php.exe\" -f \"%1\" -- %~2"

Com estas alterações o mesmo comando pode ser escrito como:

"C:\PHP Scripts\script" -arg1 -arg2 -arg3
ou, se o caminho "C:\PHP Scripts" estiver na variável de ambiente PATH:
script -arg1 -arg2 -arg3

Nota:

Existe um pequeno problema se a intenção for usar esta técnica e usar os scripts PHP como um filtro de linha de comando, como o exemplo abaixo:

dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
ou
dir | script -arg1 -arg2 -arg3
Neste caso, o script poderá simplesmente travar e não produzir nenhuma saída. Para tornar esta opção operacional, deve-se fazer uma outra alteração no registro.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
Mais informações sobre este problema pode ser encontrado neste artigo » Microsoft Knowledgebase Article : 321788. A partir do Windows 10, esta configuração foi invertida, fazendo com que a instalação padrão do Windows 10 suporte automaticamente esta opção. Esta postagem do » Microsoft Forum fornece a explicação.


Apache 2.x no Microsoft Windows

Esta seção contém notas e dicas específicas para instalações do Apache 2.x do PHP em sistemas Microsoft Windows.

Nota:

Por favor, leia o manual das etapas de instalação primeiro!.

É altamente recomendável consultar a » Documentação Apache para obter uma compreensão básica do servidor Apache 2.x Considere, também, a leitura das » notas específicas do Windows para Apache 2.x antes de continuar.

Baixa a versão mais recente do » Apache 2.x e uma versão adequada do PHP. Siga os passos do manual de instalação e volte para prosseguir com a integração do PHP e Apache.

Existem três maneiras de configurar o PHP para funcionar com o Apache 2.x no Windows. O PHP pode ser executado como um controlador, como um CGI ou em FastCGI.

Nota: Lembre-se que ao adicionar caminhos nos arquivos de configuração do Apache no Windows, todas as barras invertidas como em c:\diretorio\arquivo.ext devem ser convertidas para barras: c:/diretorio/arquivo.ext. Uma barra final também pode ser necessária para diretórios.

Instalando como um controlador Apache

Para carregar o módulo PHP para Apache 2.x, as seguintes linhas no arquivo de configuração Apache httpd.conf precisam ser inseridas:

Exemplo #1 PHP e Apache 2.x como controlador

# antes do PHP 8.0.0 o nome do módulo era php7_module
LoadModule php_module "c:/php/php8apache2_4.dll"
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>
# configure caminho para php.ini
PHPIniDir "C:/php"

Nota: O caminho correto do PHP precisa ser substituído em vez de C:/php/ nos exemplos acima. Certifique-se de que o arquivo referenciado na diretiva LoadModule está no local especificado. Use php7apache2_4.dll para PHP 7, ou php8apache2_4.dll para PHP 8.

Executando PHP como CGI

É altamente recomendável consultar a » documentação Apache CGI para uma compreensão mais completa da execução de CGI no Apache.

Para executar o PHP como CGI, os arquivos php-cgi precisarão ser colocados em um diretório designado como um diretório CGI usando a diretiva ScriptAlias.

Uma linha iniciada com #! precisará ser colocada nos arquivos PHP que apontam para a localização do binário do PHP:

Exemplo #2 PHP e Apache 2.x como CGI

#!C:/php/php.exe
<?php
  phpinfo();
?>

Aviso

Um servidor instalado em modo CGI está aberto a várias vulnerabilidades possíveis. Leia nossa seção de segurança CGI para aprender como se defender de tais ataques.

Executando PHP sobre FastCGI

Executar o PHP no FastCGI tem uma série de vantagens sobre executá-lo como um CGI. Configurá-lo dessa forma é bastante simples:

Baixe mod_fcgid de » https://www.apachelounge.com. Os binários do Win32 estão disponíveis para download neste site. Instale o módulo de acordo com as instruções que o acompanham.

Configure o seu servidor web conforme mostrado abaixo, tendo o cuidado de ajustar quaisquer caminhos para refletir como você instalou em seu sistema específico:

Exemplo #3 Configure o Apache para executar PHP como FastCGI

LoadModule fcgid_module modules/mod_fcgid.so
# Onde está seu arquivo php.ini?
FcgidInitialEnv PHPRC        "c:/php"
<FilesMatch \.php$>
    SetHandler fcgid-script
</FilesMatch>
FcgidWrapper "c:/php/php-cgi.exe" .php
Arquivos com extensão .php agora serão executados pelo interpretador PHP FastCGI.


Solução de Problemas do PHP no Windows

Verifique as Permissões da Pasta Temporária

  1. Clique com o botão direito na pasta de arquivos temporários no Explorador de Arquivos para obter as permissões.

  2. Para o IIS, verifique que o usuário IIS_User tem a permissão de MODIFICAÇÃO. Pode-se obter o caminho da pasta de arquivos temporários no arquivos de configuração ou na função php_info.


  • « Solução de Problemas do PHP no Windows
  • Azure App Services »
  • PHP Manual
  • Instalação e Configuração
  • Instalação em Plataformas de Computação em Nuvem

Instalação em Plataformas de Computação em Nuvem

Índice

  • Azure App Services
  • Amazon EC2
  • DigitalOcean

É possível instalar o PHP na nuvem. Para a nuvem PHP!


Azure App Services

O PHP é freqüentemente usado no Azure App Services (também conhecido como Microsoft Azure, Windows Azure, Azure Web Apps).

O Azure App Services gerencia pools de Servidores Web Windows para hospedar sua aplicação web, como uma alternativa ao gerenciamento do seu próprio servidor web em suas próprias VMs Azure Compute ou outros servidores.

O PHP já está automaticamente habilitado para o seu site web do Azure App Services. No Portal Azure, selecione seu site web e você poderá escolher qual versão do PHP usar. Você pode querer escolher uma versão mais recente que a padrão.

Como tal, o PHP e suas extensões serão executados no Azure App Services, assim como serão em outros servidores Windows. Grande parte da base de conhecimento também é portável, então veja a Página de Solução de Problemas do Windows também. No entanto, a interface de gerenciamento para o Azure App Services é diferente:

  • Portal Azure: crie, edite configurações e delete sites web. » Portal Azure

  • Dashboard Kudu: se o seu site é [nome do seu site web].azurewebsites.net, então, o dashboard Kudu é » https://[nome do seu site web].scm.azurewebsites.net/. O Dashboard dá acesso a algumas capacidades de depuração, gerenciamento de arquivos e extensões de site. As extensões de site são um mecanismo do Azure para adicionar programas extras, como compilações de preview do PHP, ao seu site web.

  • Você não pode usar o Gerenciador do IIS, o Gerenciador de Servidores ou o RDP.

Há também um SDK do PHP para programaticamente usar vários Azure Services a partir do seu código PHP. Veja o » Azure SDK para PHP.

Para obter mais informações, consulte o » Centro de Desenvolvedores PHP do Azure

WinCache

O WinCache está habilitado por padrão no Azure App Services e é recomendado que você o mantenha habilitado. Se você instalar sua própria compilação do PHP, você deve habilitar o WinCache nela também.

Compilação Customizada do PHP

Você pode fazer o upload de sua própria compilação do PHP para o seu D:\Home (C:\ NÃO é gravável). Em seguida, no Portal Azure, defina SCRIPT_PROCESSOR para .php como o caminho absoluto do arquivo php-cgi.exe na sua compilação.


  • « Azure App Services
  • DigitalOcean »
  • PHP Manual
  • Instalação em Plataformas de Computação em Nuvem
  • Amazon EC2

Amazon EC2

É possível instalar o PHP na » plataforma em nuvem EC2.

Veja também o » AWS SDK para PHP.


DigitalOcean

DigitalOcean oferece as seguintes plataformas para instalação do PHP, e para executar aplicações web em sua infraestrutura de hospedagem em nuvem.

  • » Cloudways: Implantação em um clique das principais aplicações PHP: WordPress, Magento, Drupal, Laravel, e mais.

  • » Droplet: Máquinas virtuais e instalação do » Lamp em um servidor Linux .

  • » Plataforma de Aplicações: Infraestrutura gerenciada para construir, implantar e escalar aplicações rapidamente. Aprenda » como executar aplicações PHP na Plataforma de Aplicações .

  • » Funções: Plataforma sem servidor que permite aos desenvolvedores executar código sem provisionar ou manter servidores. O PHP é suportado de forma nativa. Aprenda » como criar funções sem servidores no PHP .


FastCGI Process Manager (FPM)

Índice

  • Instalação
  • Configuração

FPM (FastCGI Process Manager) é uma implementação PHP primária do FastCGI contendo alguns recursos úteis (principalmente) para sites pesados.

Entre as features estão incluídas:

  • gerenciamento de processos avançado com stop/start;

  • habilidade para começar a trabalhar com uid/gid/chroot/environment diferentes, ouvindo em diferentes portas e utilizando-se de php.ini distintos (troca de safe_mode);

  • stdout e stderr logging configuráveis;

  • reinício de emergência em caso de destruição acidental de opcode cache;

  • acelera o processo de upload;

  • "slowlog - log dos scripts (não apenas seus nomes, mas os backtraces PHP também, utilizando ptrace ou semelhantes para ler dados do processo remoto) ainda que sejam lentos de coletar;

  • fastcgi_finish_request() - função especial para finalizar a requisição e enviar todos os dados, ao mesmo tempo continuando a fazer algo potencialmente demorado (conversão de vídeo, processamento de estatísticas, etc);

  • criação de processos estático/dinâmico/sob demanda;

  • informações de status básicas e extendidas (similar ao Apache mod_status) em vários formatos suportados, como: json, xml e openmetrics;

  • php.ini-baseado em arquivos de configurações.


Instalação

Compilando dos fontes

Para habilitar o FPM na sua compilação do PHP você deve adicionar --enable-fpm à sua linha de configuração

Há várias outras opções de configuração específicas para o FPM (todas opcionais):

  • --with-fpm-user - configura o usuário FPM (padrão - nobody).

  • --with-fpm-group - configura o grupo FPM (padrão - nobody).

  • --with-fpm-systemd - Ativa a integração com o systemd (padrão - no).

  • --with-fpm-acl - Usa Access Control Lists do POSIX (padrão - no).

  • --with-fpm-apparmor - Ativa a integração com o AppArmor (padrão - no).

  • --with-fpm-selinux - Ativa a integração com o SELinux (padrão - no).

Registro de Alterações

Versão | Descrição
8.2.0 | A opção --with-fpm-selinux foi adicionada.
8.0.0 | A opção --with-fpm-apparmor foi adicionada.


Configuração

FPM usa a sintaxe do php.ini para arquivos de configuração - php-fpm.conf, e arquivos de configurações de rotinas.

Lista de diretivas globais php-fpm.conf

pid string

Caminho para o arquivo PID. Valor padrão: nenhum.

error_log string

Caminho para o arquivo de log de erro. Valor padrão: #INSTALL_PREFIX#/log/php-fpm.log. Se configurado com "syslog", o log será enviado para o syslogd ao invés de ser escrito em uma arquivo local.

log_level string

Nível de log de erro. Valores possíveis: alert, error, warning, notice, debug. Valor padrão: notice.

log_limit int

Limite para tamanho das linhas para permitir mensagens de log maiores que 1024 caracteres sem quebras. Valor padrão: 1024. Disponível desde o PHP 7.3.0.

log_buffering bool

Log sem buffering (experimental). Valor padrão: yes. Disponível desde o PHP 7.3.0.

syslog.facility string

usado para especificar que tipo de programa está logando a mensagem. Valor Padrão: daemon.

syslog.ident string

No início de todas as mensagens. Se possuir múltiplas instâncias do FPM rodando no mesmo servidor, pode-se modificar o valor padrão para adaptar-se às necessidades. Valor padrão: php-fpm.

emergency_restart_threshold int

Se esse número de processos filho sair com SIGSEGV ou SIGBUS dentro do intervalo de tempo definido pelo emergency_restart_interval, o FPM será reiniciado. Um valor 0 significa 'Off'. Valor padrão: 0 (desligado).

emergency_restart_interval mixed

Intervalo de tempo utilizado por emergency_restart_interval para determinar quando um reinício será feito. Pode ser útil para contornar corrupções acidentais em memória compartilhada de um acelerador. Unidades disponíveis: s(egundos), m(minutos), h(horas), ou d(ias). Unidade Padrão: seconds. Valor padrão: 0 (desligado).

process_control_timeout mixed

Prazo para processos filhos para esperar uma reação em sinais de mestre. Unidades disponíveis: s(egundos), m(minutos), h(horas), ou d(ias) Unidade Padrão: seconds. Valor padrão: 0.

process.max int

O número máximo de processos que o FPM criará. Projeto para controlar o número global de processos ao utilizar PM dinâmico em várias rotinas. Utilize com cautela. Valor padrão: 0.

process.priority int

Especifica a prioridade nice(2) a ser aplicada ao processo mestre (se estiver configurado). O valor varia de -19 (maior prioridade) até 20 (menor prioridade). Valor padrão: não especificado.

daemonize bool

Faz o FPM ser executado em segundo plano. Defina como 'no' para manter o FPM em primeiro plano, para fins de depuração. Valor padrão: yes.

rlimit_files int

Configura o descritor rlimit para abertura de arquivos no processo mestre. Valor padrão: valor definido pelo sistema operacional.

rlimit_core int

Configura o tamanho do núcleo rlimit no processo mestre. Valor padrão: 0.

events.mechanism string

Especifica o mecanismo de eventos que o FPM utilizará. Os seguintes estão disponíveis: select, pool, epoll, kqueue (*BSD), port (Solaris). Valor padrão: não especificado (detectado automaticamente).

systemd_interval int

Quando o FPM for compilado com integração ao systemd, especifica o intervalo, em segundos, entre a notificação ao systemd. Defina com 0 para desabilitar. Valor padrão: 10.

Lista de diretivas de rotina

Com o FPM você pode executar várias rotinas de processos com configuração diferente. Essas são as configurações que podem ser otimizadas por cada rotina.

listen string

O endereço que aceita pedidos FastCGI. Sintaxes válidas são: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Esta opção é obrigatória em cada rotina.

listen.backlog int

Define o backlog de listen(2). O valor de -1 significa o máximo em sistemas BSD;. Valor padrão: -1 (FreeBSD ou OpenBSD) ou 511 (Linux e outras plataformas).

listen.allowed_clients string

Lista de endereços IPv4 de clientes FastCGI que estão autorizados a conectar. Equivalente à variável de ambiente FCGI_WEB_SERVER_ADDRS no PHP FastCGI (5.2.2+). Só faz sentido com um soquete de escuta TCP. Cada endereço deve ser separado por uma vírgula. Se este valor for deixado em branco, conexões serão aceitas a partir de qualquer endereço IP. Valor padrão: nenhum (aceita conexões de qualquer IP).

listen.owner string

Define permissões para socket unix, se utilizado. No Linux, permissões de leitura/gravação devem ser definidas de forma a permitir conexões a partir de um servidor web. Muitos sistemas derivados do BSD permitir conexões independentemente das permissões. Os valores padrão: usuários e grupos são definidos como o usuário que está executando, de modo está definido para 0660.

listen.group string

Veja listen.owner.

listen.mode string

Veja listen.owner.

listen.acl_users string

Quando o suporte ao Access Control Lists POSIX for suportado, pode-se configurá-lo utilizando esta opção. Ao configurá-lo, listen.owner e listen.group serão ignorados. Seu valor é uma lista de nomes de usuários, separada por vírgula.

listen.acl_groups string

Veja listen.acl_users. Seu valor é uma lista de nomes de grupo, separada por vírgula.

user string

Usuário Unix dos processos FPM. Esta opção é obrigatória.

group string

Grupo Unix dos processos FPM. Se não for definido, o grupo do usuário padrão será utilizado.

pm string

Escolha como o gerenciador de processos controlará o número de processos filhos. Valores possíveis: static, ondemand, dynamic. Esta opção é obrigatória.

static - o número de processos filho é fixo (pm.max_children).

ondemand - os processos sob demanda (quando solicitado, em oposição a dinâmica, então pm.start_servers são iniciadas quando o serviço é iniciado.

dynamic - o número de processos filhos são definidos dinamicamente com base nas seguintes diretrizes: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.

pm.max_children int

O número de processos filhos que podem ser criados quando pm está configurado como static e o número máximo de processos filhos podem ser criados quando pm está configurado como dynamic. Essa opção é obrigatória.

Esta opção define o limite para o número de solicitações simultâneas que será servida. Equivalente à directiva ApacheMaxClients com mpm_prefork e ao PHP_FCGI_CHILDREN variável de ambiente no originais PHP FastCGI.

pm.start_servers int

O número de processos filhos criados na inicialização. Usado apenas quando pm é configurado em dynamic. Valor padrão: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.

pm.min_spare_servers int

O número mínimo desejado de processos servidores inativos. Usado apenas quando pm está configurado como dynamic. Também obrigatório neste caso.

pm.max_spare_servers int

O número máximo desejado de processos servidores inativos. Usado apenas quando pm está configurado como dynamic. Também obrigatório neste caso.

pm.max_spawn_rate int

O número de processos para inicializar de uma vez. Utilizado apenas quando pm é configurado para dynamic. Valor padrão: 32

pm.process_idle_timeout mixed

O número de segundos após qual um processo parado será encerrado. Utilizado apenas quando pm é configurado como ondemand. Unidades disponíveis: s(segunfos)(default), m(minutos), h(horas), or d(dias). Valor padrão: 10s.

pm.max_requests int

O número de solicitações de cada processo filho deve ser executado antes respawning. Isto pode ser útil para contornar falhas de memória de bibliotecas de terceiro partido. Para o processamento de pedido interminável especificar '0 '. equivalente a PHP_FCGI_MAX_REQUESTS. Valor padrão: 0.

pm.status_listen string

O endereço no qual o FastCGI acessa requisições de status. Isto cria um novo pool invisível que sustenta essas requisições independentemente. Útil se o pool principal está ocupado com requisições longas dado que é possível obter a página de status FPM enquanto rodando requisições longas. A sintaxe é a mesma da opçãolisten. Valor padrão: vazio.

pm.status_path string

O URI para visualizar a FPM status page. Este valor precisa começar com uma contra barra (/). Se o valor estiver vazio, nenhuma URI será reconhecida como uma página de status. Valor padrão: vazio.

ping.path string

O URI ping para chamar a página de FPM de monitoramento. Se este valor não é definido, nenhuma URI será reconhecido como uma página de ping. Isto poderia ser usado para testar de fora que FPM está vivo e responder. Por favor, note que o valor deve começar com uma barra à esquerda (/).

ping.response string

Esta diretiva pode ser usado para personalizar a resposta a um pedido ping. A resposta é formatada como text/plain com uma resposta de código 200. Valor padrão: pong.

process.priority int

Especifica a prioridade de nice(2) a ser aplicado ao processo (se informado). Esse valor pode variar de -19 (prioridade máxima) to 20 (priridade mínima). Valor padrão: vazio.

process.dumpable bool

Configura a flag dumpable (PR_SET_DUMPABLE prctl) mesmo no caso do processo de usuário ou grupo for diferente do processo inicializador. Isto permite criar core dumps de processos e realizar ptrace no user pool. Valor padrão: no. Desde os PHP 7.0.29, 7.1.17 e 7.2.5.

prefix string

Especifica um prefix para interpretação de caminhos.

request_terminate_timeout mixed

O tempo limite para servir um único pedido após o qual o processo trabalha serão encerradas. Esta opção deve ser usada quando o 'max_execution_time', opção do arquivo ini não parar a execução do script por algum motivo. Um valor de '0', significa 'Off'. Unidades disponíveis: s(econds) (padrão), m(inuts), h(our), ou d(ays). Valor padrão: 0.

request_terminate_timeout_track_finished bool

O timeout configurado para request_terminate_timeout não é disparado depois de fastcgi_finish_request or quando a aplicação terminou e funções internas de finalização estão rodando. Esta diretiva irá aplicar o timeout mesmo para esses casos. Valor padrão: no. Desde o PHP 7.3.0.

request_slowlog_timeout mixed

O tempo limite para servir um único pedido depois que um rastreamento PHP serão despejados para o arquivo 'slowlog. Um valor de '0 'significa' Off '. Unidades disponíveis: s(egundos)(padrão), m(inutos), h(oras), or d(dias). Valor padrão: 0.

request_slowlog_trace_depth int

A profundidade do stack trace de slowlog. Valor padrão: 20. Desde o PHP 7.2.0.

slowlog string

O arquivo de log de solicitações lentas. Valor padrão: #INSTALL_PREFIX#/log/php-fpm.log.slow.

rlimit_files int

Define o descritor de arquivo de abertura rlimit. Valor padrão: valor definido pelo sistema.

rlimit_core int

Defina o tamanho do núcleo máxímo do rlimit. Valores possíveis: 'unlimited' ou um número inteiro maior ou igual a 0. Valor padrão: valor definido pelo sistema.

chroot string

Chroot neste diretório, na inicialização. Este valor deve ser definido como um caminho absoluto. Quando este valor não está definido, chroot não é usado.

chdir string

Chdir neste diretório, na inicialização. Este valor deve ser um caminho absoluto. Valor padrão: diretório atual ou / ao chroot.

catch_workers_output bool

Redirecionar stdout e stderr no log de erro principal. Se não for definido, stdout e stderr serão redirecionadas para /dev/null de acordo com especificações FastCGI. Valor padrão: no.

decorate_workers_output bool

Ativa a decoração do outpur de workers quando catch_workers_output estiver ativo. Valor padrão: yes. Disponível desde o PHP 7.3.0.

clear_env bool

Limpa o ambiente dos workers do FPM. Previne que variáveis de ambiente arbitrárias alcancem os processos dos workers do FPM limpando o ambiente nos workers antes das variáveis de ambientes desta rotina serem adicionadas. Valor padrão: Yes.

security.limit_extensions string

Limita as extensões que o script principal do FPM possui permissão a analisar. Evita problemas de configurações no servidor de aplicação. Você deve limitar as extensões do FPM a somente o .php para evitar que usuários maliciosos utilizem outras extensões para executar códigos php. Default value: .php .phar

apparmor_hat string

Se AppArmor estiver ativo, isto permite modificar o hat. Valor padrão: não configurado.

access.log string

O arquivo de log de acessos. Valor padrão: não configurado.

access.format string

O formato do log de acesso. Valor padrão: "%R - %u %t \"%m %r\" %s":

Valid options
Código | Descrição
%C | %CPU
%d | duration µs
%e | fastcgi env
%f | script
%l | content length
%m | method
%M | memory
%n | pool name
%o | header output
%p | PID
%q | query string
%Q | a cola entre %q e %r
%r | request URI
%R | IP remoto
%s | status
%T | time
%t | time
%u | remote user

É possível passar variáveis de ambiente adicionais e atualizar as configurações do PHP de uma determinada rotina. Para fazer isso, precisa-se adicionar as seguintes opções no arquivo de configuração da rotina.

Exemplo #1 Passando variáveis de ambiente e configurações do PHP para a rotina

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
Configurações do PHP feitas com php_value ou php_flag irão sobrescrever o valor anterior. Por favor, note que a definição de disable_functions ou disable_classes não irá substituir os valores previamente definidos no php.ini, mas adicionará o novo valor em seu lugar.

Configurações definidas com php_admin_value e php_admin_flag não podem ser sobrescritas com ini_set().

Configurações do PHP que também podem ser definidas no servidor.

Exemplo #2 definir as configurações de PHP no nginx.conf

set $php_value "pcre.backtrack_limit=424242";
set $php_value "$php_value \n pcre.recursion_limit=99999";
fastcgi_param  PHP_VALUE $php_value;

fastcgi_param  PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
Cuidado

Como essas configurações são passadas para php-fpm como cabeçalhos FastCGI, php-fpm não deve ser vinculado a um endereço acessível. Caso contrário, qualquer um poderá alterar as opções de configuração do PHP. veja também listen.allowed_clients.

Nota: Pools não são um mecanismo de segurança, dado que eles não fornecem total separação; por exemplo, todos os pools utiliza uma única instância de OPcache.


Instalação das extensões PECL

Índice

  • Introdução às Instalações PECL
  • Baixando extensões PECL
  • Instalando uma extensão PHP no Windows
  • Compilando extensões PECL compartilhadas com o comando pecl
  • Compilando extensões PECL compartilhadas com phpize
  • php-config
  • Compilando extensões PECL estaticamente no PHP


Introdução às Instalações PECL

» PECL é um repositório de extensões PHP disponibilizadas através do sistema de pacotes » PEAR. Esta seção do manual destina-se a demonstrar como obter e instalar extensões PECL.

Estas instruções assumem que /path/to/php/src/dir/ seja o caminho para o código-fonte do PHP e que extname seja o nome da extensão PECL. Ajuste adequadamente. Estas instruções também assumem uma familiaridade com o » comando pear. As informações no manual do PEAR para o comando pear também se aplicam ao comando pecl.

Uma extensão compartilhada deve ser compilada, instalada e carregada para ser útil. Os métodos descritos abaixo fornecem várias instruções sobre como criar e instalar as extensões, mas não as carregam automaticamente. As extensões podem ser carregadas adicionando uma diretiva extension ao arquivo php.ini ou através do uso da função dl().

Ao compilar módulos PHP, é importante ter as versões apropriadas das ferramentas necessárias (autoconf, automake, libtool, etc.). Consulte as » Instruções para Acesso Anônimo ao Git para obter detalhes sobre as ferramentas e versões necessárias.


Baixando extensões PECL

Existem várias opções para baixar extensões PECL, como:

  • O comando pecl install extname baixa o código das extensões automaticamente, portanto, neste caso, não há necessidade de baixar separadamente.
  • » https://pecl.php.net/ O site do PECL contém informações sobre as extensões que a equipe de desenvolvimento do PHP oferece. As informações disponíveis aqui incluem changelogs, notas de versão, requisitos e outros detalhes semelhantes.
  • pecl download extname As extensões PECL que possuem versões listadas no site do PECL estão disponíveis para download e instalação usando o » comando pecl. Revisões específicas também podem ser especificadas.
  • git Muitas extensões PECL podem ser encontradas no GitHub.
  • SVN Algumas extensões PECL também podem ser encontradas no SVN. Uma visualização web pode ser encontrada em » https://svn.php.net/pecl/. Para baixar direto do SVN, os seguintes comandos podem ser usados:

    $ svn checkout https://svn.php.net/repository/pecl/extname/trunk extname

  • Downloads do Windows O Projeto PHP compila e oferece DLLs do Windows para a maioria das extensões PECL na página do pacote.


Instalando uma extensão PHP no Windows

Existem duas maneiras de carregar uma extensão PHP no Windows: compilando-a no PHP ou carregando a DLL. Carregar uma extensão pré-compilada é a maneira mais fácil e preferida.

Para carregar uma extensão, ela deve estar disponível como um arquivo .dll no sistema. Todas as extensões são compiladas automaticamente e periodicamente pelo PHP Group (veja a próxima seção para download).

Para compilar uma extensão no PHP, consulte a documentação sobre compilação do código-fonte.

Para compilar uma extensão independente (um arquivo DLL), consulte a documentação sobre compilação do código-fonte. Se a DLL não estiver disponível na distribuição do PHP nem no PECL, pode ser necessário compilá-la antes que a extensão possa ser usada.

Onde encontrar uma extensão?

As extensões do PHP geralmente são chamadas de php_*.dll (onde o asterisco representa o nome da extensão) e estão localizadas no diretório PHP\ext.

O PHP vem com as extensões mais úteis para a maioria dos desenvolvedores. Elas são chamadas extensões nativas do PHP.

Entretanto, se as extensões nativas não fornecerem a funcionalidade necessária, uma extensão que ofereça essa funcionalidade ainda pode ser encontrada no » PECL. A biblioteca comunitária de extensões PHP (PECL) é um repositório de extensões PHP, que fornece um diretório de todas as extensões conhecidas e recursos de hospedagem para download e desenvolvimento de extensões PHP.

Se uma extensão foi desenvolvida para usos específicos, ela pode ser hospedada no PECL para que outras pessoas com as mesmas necessidades possam se beneficiar delas. Um bom efeito colateral é que é uma excelente chance de receber feedbacks, agradecimentos, relatórios de erros e até mesmo correções/patches. Antes de enviar uma extensão para hospedagem no PECL, consulte sobre » Submissão ao PECL.

Qual extensão baixar?

Muitas vezes, haverá várias versões disponíveis de cada DLL:

  • Números de versão diferentes (pelo menos os dois primeiros números devem corresponder)
  • Versões de thread safety diferentes
  • Arquitetura de processador diferente (x86, x64, ...)
  • Configurações de depuração diferentes
  • etc.

Lembre-se de que as configurações de extensão devem corresponder a todas as configurações do executável PHP que está sendo usado. O script a seguir informará tudo sobre as configurações do PHP:

Exemplo #1 A função phpinfo()

<?php
phpinfo();
?>

Ou na linha de comando, execute:

drive:\caminho\para\o\executavel\php.exe -i

Carregando uma extensão

A forma mais comum de carregar uma extensão PHP é incluí-la no arquivo de configuração php.ini. Observe que muitas extensões já estão presentes no php.ini e só é preciso remover o ponto e vírgula para ativá-las.

A partir do PHP 7.2.0, o nome da extensão pode ser usado ao invés do nome do arquivo da extensão. Como é independente do sistema operacional é mais fácil, especialmente para iniciantes, essa é a maneira recomendada de especificar as extensões a serem carregadas. Os nomes dos arquivos continuam suportados para compatibilidade com versões anteriores.

;extension=php_extname.dll

extension=php_extname.dll

; A partir do PHP 7.2.0, prefira:
extension=extname
zend_extension=another_extension

No entanto, isso pode causar confusão em alguns servidores web porque eles não usam o arquivo php.ini localizado junto do executável PHP. Para descobrir onde o arquivo php.ini está, procure seu caminho na função phpinfo():

Configuration File (php.ini) Path  C:\WINDOWS

Loaded Configuration File   C:\Program Files\PHP\8.2\php.ini

Depois de ativar uma extensão, salve o arquivo php.ini, reinicie o servidor web e verifique a função phpinfo() novamente. A nova extensão agora deve ter sua própria seção.

Resolvendo problemas

Se uma extensão não aparecer na função phpinfo(), os logs devem ser verificados para saber de onde vem o problema.

Se o PHP estiver sendo usado na linha de comando (CLI), os erros de carregamento da extensão podem ser lidos diretamente na tela.

Se o PHP estiver sendo usado com um servidor web, a localização e o formato dos logs irão variar dependendo do software usado. Consulte a documentação do servidor web para localizar os logs, pois isso não está relacionado com o PHP.

Problemas comuns são a localização da DLL e das DLLs das quais ela depende, o valor da diretiva "extension_dir" no arquivo php.ini e incompatibilidades de configuração em tempo de compilação.

Se o problema estiver em uma incompatibilidade de configuração em tempo de compilação, provavelmente a DLL errada foi baixada. Tente baixar novamente a extensão com as configurações corretas. Novamente, a função phpinfo() pode ser de grande ajuda.


Compilando extensões PECL compartilhadas com o comando pecl

O PECL facilita a criação de extensões PHP compartilhadas. Usando o » comando pecl, faça o seguinte:

$ pecl install extname

Isso fará o download do código-fonte de extname, compilará e instalará extname.so em extension_dir. extname.so pode então ser carregada usando o php.ini.

Por padrão, o comando pecl não instalará pacotes marcados como alpha ou beta. Se nenhum pacote stable estiver disponível, um pacote beta pode ser instalado usando o seguinte comando:

$ pecl install extname-beta

Uma versão específica também pode ser instalada usando esta forma:

$ pecl install extname-0.1

Nota:

Depois de habilitar a extensão no php.ini, será necessário reiniciar o serviço web para que as alterações sejam detectadas.


Compilando extensões PECL compartilhadas com phpize

Às vezes, usar o instalador pecl não é uma opção. Isso pode ocorrer porque há um firewall ou porque a extensão que está sendo instalada não está disponível como um pacote compatível com o PECL, como extensões não lançadas do git. Se tal extensão precisar ser compilada, as ferramentas de compilação de baixo nível podem ser usadas para realizar a compilação manualmente.

O comando phpize é usado para preparar o ambiente de compilação para uma extensão PHP. No exemplo a seguir, o código-fonte de uma extensão está em um diretório chamado extname:

$ cd extname
$ phpize
$ ./configure
$ make
# make install

Uma instalação bem sucedida criará um arquivo extname.so e o colocará no diretório de extensões PHP extension_dir. O arquivo php.ini precisará ser ajustado, e uma linha extension=extname.so precisará ser adicionada antes que a extensão possa ser usada.

Se o sistema não tiver o comando phpize e pacotes pré-compilados (como os do RPM) forem usados, certifique-se também de instalar a versão de desenvolvimento apropriada dos pacotes PHP, pois ela geralmente inclui o phpize juntamente com os arquivos de cabeçalho apropriados para compilar o PHP e suas extensões.

Execute phpize --help para exibir informações de uso adicionais.


php-config

php-config é um script shell para obter informações sobre a configuração do PHP instalado.

Quando as extensões estão sendo compiladas, se várias versões do PHP estiverem instaladas, a instalação para a qual compilar pode ser especificada usando a opção --with-php-config durante a configuração, definindo o caminho do respectivo script php-config.

A lista de opções de linha de comando fornecida pelo script php-config pode ser consultada a qualquer momento executando php-config com a opção -h:

Usage: /usr/local/bin/php-config [OPTION]
Options:
  --prefix            [...]
  --includes          [...]
  --ldflags           [...]
  --libs              [...]
  --extension-dir     [...]
  --include-dir       [...]
  --php-binary        [...]
  --php-sapis         [...]
  --configure-options [...]
  --version           [...]
  --vernum            [...]

Opções de linha de comando
Opção | Descrição
--prefix | Prefixo do diretório onde o PHP está instalado, por exemplo /usr/local
--includes | Lista de opções -I com todos os arquivos de inclusão.
--ldflags | Flags LD com as quais o PHP foi compilado.
--libs | Bibliotecas extras com as quais o PHP foi compilado.
--extension-dir | Diretório onde as extensões são pesquisadas por padrão.
--include-dir | Prefixo do diretório onde os arquivos de cabeçalho são instalados por padrão.
--php-binary | Caminho completo para o binário php CLI ou CGI.
--php-sapis | Exibe todos os módulos SAPI disponíveis.
--configure-options | Opções de configuração para recriar a configuração da instalação atual do PHP.
--version | Versão do PHP.
--vernum | Versão do PHP como inteiro.


Compilando extensões PECL estaticamente no PHP

Às vezes, pode ser necessário criar uma extensão PECL estaticamente no binário do PHP. Para isso, o código-fonte da extensão precisará ser colocado no diretório /caminho/para/o/diretorio/php/src/ext/, e será necessário que o sistema de compilação do PHP gere o script de configuração novamente.

$ cd /caminho/para/o/diretorio/php/src/ext
$ pecl download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname

Isso resultará no seguinte diretório:

/caminho/para/o/diretorio/php/src/ext/extname

Depois disso, o PHP precisa ser forçado a reconstruir o script de configuração e, em seguida, pode ser compilado normalmente:

$ cd /caminho/para/o/diretorio/php/src
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Nota: Para executar o script buildconf, o autoconf 2.68 e o automake 1.4+ serão necessários. As versões mais recentes do autoconf podem funcionar, mas não são suportadas.

O uso de --enable-extname ou --with-extname depende da extensão. Normalmente, uma extensão que não requer bibliotecas externas usa --enable. Para ter certeza, execute o seguinte após buildconf:

$ ./configure --help | grep extname


  • « Compilando extensões PECL estaticamente no PHP
  • Leia o FAQ »
  • PHP Manual
  • Instalação e Configuração
  • Problemas?

Problemas?

Índice

  • Leia o FAQ
  • Outros problemas
  • Relatos de Bug


Leia o FAQ

Alguns problemas são mais comuns que outros. Os mais comuns estão listados no FAQ do PHP, parte desse manual.


Outros problemas

Se você ainda estiver sem solução, alguém na lista de e-mail de instalação do PHP pode te ajudar. Você deve checar o histórico de mensagens antes, no caso de alguém já ter respondido outra pessoa que tenha tido o mesmo problema que você. Os históricos estão disponíveis na página de suporta em » https://www.php.net/support.php. Para se inscrever na lista de e-mail de instalação do PHP, envie um e-mail vazio para » php-install+subscribe@lists.php.net. O endereço da lista de e-mail é » php-install@lists.php.net.

Se você quiser pedir ajuda na lista de e-mail, por favor, tente ser preciso e dar os detalhes necessários sobre seu ambiente (qual sistema operacional, que versão do PHP, qual servidor web, se você está executando PHP com CGI ou módulo de servidor, etc...), e, de preferência, código suficiente para permitir que outros reproduzam e testem seu problema.


Relatos de Bug

Se você acha que encontrou um bug (falha) no PHP, por favor, relate. Os desenvolvedores do PHP provavelmente não sabem sobre ele, e, a não ser que você o relate, provavelmente ele não será reparado. Você pode relatar bugs usando o sistema de caça-bugs em » https://github.com/php/php-src/issues. Por favor, não mande relatos de bug nas listas de e-mail ou e-mails pessoais. O sistema de bugs também é adequado para o envio de requisição de características (features).

Leia o documento » Como relatar um bug antes de enviar qualquer relato de bug!


Configuração em tempo de execução

Índice

  • O arquivo de configuração
  • Arquivos .user.ini
  • Onde uma configuração deve ser definida
  • Como mudar as configurações


O arquivo de configuração

O arquivo de configuração (php.ini) é lido quando o PHP inicia. Para as versões de módulo de servidor, isso acontece apenas quando o servidor web for iniciado. Para as versões CGI e CLI, isso acontece a cada invocação.

php.ini é procurado nesses lugares (na ordem):

  • Local específico do módulo SAPI (diretiva PHPIniDir no Apache 2, opção de linha de comando -c no CGI e CLI)
  • A variável de ambiente PHPRC.
  • A localização do arquivo php.ini pode ser definida para versões diferentes do PHP. A raiz do registro depende da compilação em 32 ou 64 bits do sistema operacional (SO) e do PHP. Para um PHP 32 bits em um SO de 32 bits ou um PHP de 64 bits em um SO de 64 bits use [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP], Para um PHP 32 bits em um SO de 64 bits use [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]]. Para sistema onde a compilação em bits coincida, as seguintes chaves são examinadas, nessa ordem: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] e [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], onde x, y e z significam os valores de versão PHP major, minor e release. Para PHP versão 32 bits em um SO de 64 bits, as seguintes chaves são examinadas em ordem: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] e [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x], onde x, y e z significam os valores de versão PHP major, minor e release. Se houver um valor para IniFilePath nestas chaves, então o primeiro encontrado será utilizado para a localização do php.ini (apenas Windows).
  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] ou [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP], valor de IniFilePath (Somente Windows).
  • Diretório de trabalho atual (exceto CLI)
  • O diretório do servidor web (para módulo SAPI), ou diretório do PHP (caso contrário, no Windows).
  • Diretório do Windows (C:\windows ou C:\winnt) (para Windows), ou a opção de tempo de compilação --with-config-file-path .

Se php-SAPI.ini existe (onde SAPI é o SAPI usado, então o nome de arquivo é, por exemplo, php-cli.ini ou php-apache.ini), é usado ao invés do arquivo php.ini. O nome SAPI pode ser determinado pela função php_sapi_name().

Nota:

O servidor web Apache muda o diretório para raiz durante a inicialização, causando com que o PHP tente ler o arquivo php.ini da raiz do arquivo de sistema, se ele existir.

O uso de variáveis de ambiente podem ser usadas no php.ini como mostrado abaixo.

Exemplo #1 php.ini Variáveis de ambiente

; PHP_MEMORY_LIMIT é lido das variáveis de ambiente
memory_limit = ${PHP_MEMORY_LIMIT}

As diretivas do arquivo php.ini tratadas por extensões são documentadas nas respectivas páginas das próprias extensões. A lista de diretivas principais está disponível no apêndice. Nem todas as diretivas do PHP estão documentadas no manual. Para uma lista completa das diretivas disponíveis na sua versão do PHP, por favor leia seu arquivo php.ini. Alternativamente, você pode encontrar » a última versão do php.ini no Git, que também pode ser útil.

Exemplo #2 Exemplo de arquivo php.ini

; qualquer texto após um ponto e virgula nú (;) é ignorado
[php] ; marcadores de sessão (textos dentro de colchetes) também são ignorados
; Valores booleanos podem ser:
;    true, on, yes
; ou false, off, no, none
register_globals = off
track_errors = yes

; voc? pode organizar strings dentro de aspas
include_path = ".:/usr/local/lib/php"

; contrabarra é tradado como um caracter normal
include_path = ".;c:\php\lib"

É possível acessar as variáveis .ini dentro dos arquivos .ini. Exemplo: open_basedir = ${open_basedir} ":/new/dir".

Configuração em diretório

É possível configurar o PHP para procurar por arquivos .ini em um diretório após a leitura do php.ini. Isto é possível na compilação pela configuração da opção --with-config-file-scan-dir. No O diretório de configuração pode ser sobrescrito em tempo de execução através da configuração da variável de ambiente PHP_INI_SCAN_DIR.

É possível procurar em vários diretórios os separando com o delimitador específico da plataforma (; no Windows, NetWare e RISC OS; : em todas as outras plataformas; o PHP utilizará a constante PATH_SEPARATOR). Se um diretório em branco estiver informado em PHP_INI_SCAN_DIR, o PHP também procurará pelo diretório informado na diretiva de compilação --with-config-file-scan-dir.

Dentro de cada diretório o PHP irá pesquisar todos os arquivos terminados em .ini em ordem alfabética. A lista de arquivos é carregada, e nessa ordem são interpretados com uma chamada a php_ini_scanned_files(), o por rodar o PHP com a opção --ini.

Assumindo que o PHP foi configurado com --with-config-file-scan-dir=/etc/php.d,
e o separador de caminho é :...

$ php
  PHP irá carregar todos os arquivos de configuração em in /etc/php.d/*.ini.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php
  PHP irá carregar todos os arquivos de configuração em /usr/local/etc/php.d/*.ini.

$ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php
  PHP irá carregar todos os arquivos de configuração em /etc/php.d/*.ini, e então em
  /usr/local/etc/php.d/*.ini.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php
  PHP irá carregar todos os arquivos de configuração em /usr/local/etc/php.d/*.ini, e então em
  /etc/php.d/*.ini.


Arquivos .user.ini

O PHP tem suporte para arquivos de configuração INI por cada diretório. Esses arquivos são processados apenas pelo CGI/FastCGI SAPI. Essa funcionalidade torna obsoleta a extensão PECL htscanner. Se você estiver rodando o PHP como um módulo do Apache, use arquivos .htaccess para obter o mesmo efeito.

Além do arquivo php.ini principal, o PHP procura por arquivos INI em cada diretório, iniciando no diretório do arquivo PHP requisitado e continua o caminho até a raiz do documento atual (conforme definido na variável $_SERVER['DOCUMENT_ROOT']). Caso o arquivo PHP esteja fora da raiz do documento, apenas o seu diretório é procurado.

Somente configurações INI com os modos INI_PERDIR e INI_USER serão reconhecidos nos arquivos INI estilo .user.ini.

Duas novas diretivas INI, user_ini.filename e user_ini.cache_ttl controlam o uso de arquivos INI de usuário.

A diretiva user_ini.filename define o nome do arquivo que o PHP procura em cada diretório; se for definido como uma string vazia, o PHP não fará a varredura em tudo. O padrão é .user.ini.

A diretiva user_ini.cache_ttl controla a frequência de como os arquivos INI de usuário são relidos. O padrão é de 300 segundos (5 minutos).


Onde uma configuração deve ser definida

Estes modos determinam quando e onde uma diretiva do PHP pode ou não pode ser definida, e cada diretiva no manual faz referência a um destes modos. Por exemplo, algumas definições podem ser feitas em um script PHP usando ini_set(), enquanto outras só podem ser feitas no php.ini ou httpd.conf.

Por exemplo, a configuração output_buffering é INI_PERDIR portanto não pode ser definida usando ini_set(). Entretanto a diretiva display_errors é INI_ALL portanto pode ser definida em qualquer lugar com ini_set().

INI mode constants
Constantes | Descrição
INI_USER (int) | Entry can be set in user scripts (like with ini_set()) or in the Windows registry. Entry can be set in .user.ini
INI_PERDIR (int) | Entry can be set in php.ini, .htaccess, httpd.conf or .user.ini
INI_SYSTEM (int) | Entry can be set in php.ini or httpd.conf
INI_ALL (int) | Entry can be set anywhere


Como mudar as configurações

Executando PHP como módulo do Apache

Quando usar o PHP como módulo do Apache, você pode mudar as configurações usando diretivas nos arquivos de configuração do Apache (ex.: httpd.conf e .htaccess). Você precisará de privilégios "AllowOverride Options" ou "AllowOverride All" para fazer isso.

Há várias diretivas do Apache que permitem que você mude a configuração do PHP de dentro dos arquivos de configuração do Apache. Para uma lista de quais diretivas são INI_ALL, INI_PERDIR, or INI_SYSTEM, olhe no apêndice Lista de diretivas do arquivo php.ini.

php_value name value

Define o valor da diretiva especificada. Pode ser usado apenas com diretivas do tipo INI_ALL e INI_PERDIR. Para limpar um valor definido anteriormente, use o valor none.

Nota: Não use php_value para definir valores booleanos. A diretiva php_flag deve ser usada (veja abaixo).

php_flag name on|off

Usado para definir uma diretiva de configuração booleana. Pode ser usada apenas com diretivas dos tipos INI_ALL e INI_PERDIR.

php_admin_value name value

Define o valor da diretiva especificada. Essa diretiva não pode ser usada em arquivos .htaccess. Qualquer tipo de diretiva definido com php_admin_value não pode ser sobrescrito pelo .htaccess ou pela função ini_set(). Para limpar um valor definido anteriormente, use o valor none.

php_admin_flag name on|off

Usado para definir uma diretiva de configuração booleana. Essa diretiva não pode ser usada em arquivos .htaccess. Qualquer tipo de diretiva definido com php_admin_flag não pode ser sobrescrito pelo .htaccess ou pela função ini_set().

Exemplo #1 Exemplo de configuração do Apache

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>

Cuidado

Constantes PHP não existem fora do PHP. Por exemplo, no arquivo httpd.conf você não pode usar constantes do PHP como E_ALL ou E_NOTICE para definir a diretiva error_reporting, já que elas não terão significado algum e serão avaliadas como 0. Ao invés disso, use os valores de máscara de bits associados. Essas constantes podem ser usados no php.ini

Mudando configuração do PHP através do registro do Windows

Quando executar o PHP no Windows, os valores de configuração podem ser modificados para cada diretório, usando o registro do Windows. Os valores de configuração são armazenados na chave de registro HKLM\SOFTWARE\PHP\Per Directory Values, nas sub-chaves correspondentes aos caminhos dos diretórios. Por exemplo, valores para o diretório c:\inetpub\wwwroot estariam armazenados na chave HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. As configurações para o diretório estarão ativas para qualquer script rodando neste diretório ou qualquer subdiretório dele. Os valores na chave devem ter o nome da diretiva de configuração do PHP e um valor string. Constantes PHP nos valores não são interpretados. Apenas valores de configuração modificáveis no INI_USER podem ser definidos desta forma, e valores do INI_PERDIR não podem, pois esses valores são recarregados em cada request.

Outras interfaces para PHP

Independente de como você execute PHP, você pode mudar certos valores durante a execução de seus scripts através da função ini_set(). Veja a documentação na página ini_set() para mais informações.

Se você estiver interessado na lista completa das configurações definidas no seu sistema com os valores atuais, você pode executar a função phpinfo(), e revisar a página resultante. Você pode também acessar os valores de configurações de diretivas individuais em tempo de execução usando as funções ini_get() ou get_cfg_var().


Referência da Linguagem

  • Sintaxe Básica
    • Tags PHP
    • Escapando o HTML
    • Separação de instruções
    • Comentários
  • Tipos
    • Introdução
    • Sistema de tipo
    • NULL
    • Booleanos
    • Inteiros
    • Números de ponto flutuante
    • Strings
    • Strings numéricas
    • Arrays
    • Objetos
    • Enumerations
    • Recursos
    • Callbacks / Callables
    • Mixed
    • Void
    • Never
    • Tipos de classes relativas
    • Tipos de valor
    • Iteráveis
    • Declarações de tipo
    • Conversão automática de tipos
  • Variáveis
    • Básico
    • Variáveis Predefinidas
    • Escopo de variáveis
    • Variáveis variáveis
    • Variáveis de fontes externas
  • Constantes
    • Sintaxe
    • Constantes Predefinidas
    • Constantes Mágicas
  • Expressões
  • Operadores
    • Precedência de Operadores
    • Aritméticos — Operadores Aritméticos
    • Incremento e Decremento — Operadores de Incremento/Decremento
    • Atribuição — Operadores de Atribuição
    • Binários — Operadores Binários
    • Comparação — Operadores de Comparação
    • Controle de Erro — Operadores de Controle de Erro
    • Execução — Operadores de Execução
    • Lógica — Operadores Lógicos
    • String — Operadores de String
    • Arrays — Operadores de Arrays
    • Tipo — Operadores de Tipo
  • Estruturas de Controle
    • Introdução
    • if
    • else
    • elseif/else if
    • Sintaxe Alternativa para estruturas de controle
    • while
    • do-while
    • for
    • foreach
    • break
    • continue
    • switch
    • match
    • declare
    • return
    • require
    • include
    • require_once
    • include_once
    • goto
  • Funções
    • Funções definidas pelo usuário
    • Argumentos de funções
    • Retornando valores
    • Funções variáveis
    • Funções internas (built-in)
    • Funções anônimas
    • Arrow Functions
    • Sintaxe de Callable de Primeira Classe
  • Classes e Objetos
    • Introdução
    • O básico
    • Propriedades
    • Constantes de Classe
    • Autoloading Classes
    • Construtores e Destrutores
    • Visibilidade
    • Herança de Objetos
    • Operador de Resolução de Escopo (::)
    • Palavra-Chave 'static'
    • Abstração de Classes
    • Interfaces de Objetos
    • Traits
    • Classes anônimas
    • Sobrecarga
    • Iteração de Objetos
    • Métodos mágicos
    • final
    • Clonando objetos
    • Comparando objetos
    • Late Static Bindings
    • Objetos e Referências
    • Serialização de Objetos — Serialização de Objetos - Objetos em sessões
    • Covariância e Contravariância
    • Lista de alterações da POO
  • Namespaces
    • Visão Geral — Visão geral de Namespaces
    • Namespaces — Definindo namespaces
    • Sub-namespaces — Declarando sub-namespaces
    • Definindo vários namespaces no mesmo arquivo
    • Fundamentos — Usando namespaces: Fundamentos
    • Namespaces e recursos de linguagem dinâmica
    • Palavra-chave namespace e __NAMESPACE__ — Palavra-chave namespace e constante __NAMESPACE__
    • Apelidando e Importando — Usando namespaces: Apelidando/Importando
    • Espaço global
    • Recorrendo ao espaço global — Usando namespaces: recorrendo ao espaço global para funções e constantes
    • Regras de resolução de nomes
    • Perguntas Frequentes — Perguntas Frequentes: Coisas que você precisa saber sobre namespaces
  • Enumerações
    • Visão geral das Enumerações
    • Enumerações básicas
    • Backed enums
    • Métodos de enumerações
    • Métodos estáticos de enumerações
    • Constantes de enumeração
    • Traits
    • Valores enum em expressões constantes
    • Diferenças de objetos
    • Listagem de valores
    • Serialização
    • Porque enums não são extensíveis
    • Exemplos
  • Erros
    • Básico
    • Erros no PHP 7
  • Exceções
    • Estendendo exceções
  • Fibers
  • Generators
    • Generators, visão geral
    • Sintaxe do Generator
    • Comparando generators com objetos Iterator
  • Atributos
    • Visão geral dos atributos
    • Sintaxe de Atributo
    • Lendo Atributos com a API Reflection
    • Declarando Classes de Atributos
  • Referências
    • O que são referências
    • O que as referências fazem
    • O que referências não são
    • Passagem por referência
    • Retornando referências
    • Destruindo referências
    • Demonstrando referências
  • Variáveis pré-definidas
    • Superglobais — Variáveis nativas que estão sempre disponíveis em todos escopos
    • $GLOBALS — Referencia todas variáveis disponíveis no escopo global
    • $_SERVER — Informação do servidor e ambiente de execução
    • $_GET — Variáveis HTTP GET
    • $_POST — HTTP POST variables
    • $_FILES — Variáveis de Upload de Arquivos HTTP
    • $_REQUEST — Variáveis de requisição HTTP
    • $_SESSION — Variáveis de sessão
    • $_ENV — Variáveis de ambiente
    • $_COOKIE — Cookies HTTP
    • $php_errormsg — A mensagem de erro anterior
    • $http_response_header — Cabeçalhos de resposta HTTP
    • $argc — O número de argumentos passados para o script
    • $argv — Array de argumentos passados para o script
  • Exceções pré-definidas
    • Exception
    • ErrorException
    • ClosedGeneratorException — A classe ClosedGeneratorException
    • Error
    • ArgumentCountError
    • ArithmeticError
    • AssertionError
    • DivisionByZeroError
    • CompileError
    • ParseError
    • TypeError
    • ValueError
    • UnhandledMatchError
    • FiberError
  • Interfaces e Classes pré-definidas
    • Traversable — A interface Traversable
    • Iterator — A interface Iterator
    • IteratorAggregate — The IteratorAggregate interface
    • InternalIterator — A classe InternalIterator
    • Throwable
    • ArrayAccess — A interface ArrayAccess
    • Serializable — The Serializable interface
    • Closure — A classe Closure
    • stdClass — A classe stdClass
    • Generator — A classe Generator
    • Fiber — A classe Fiber
    • WeakReference — A classe WeakReference
    • WeakMap — A classe WeakMap
    • Stringable — A interface Stringable
    • UnitEnum — A interface UnitEnum
    • BackedEnum — A interface BackedEnum
    • SensitiveParameterValue — A classe SensitiveParameterValue
  • Atributos Predefinidos
    • Attribute — A classe Attribute
    • AllowDynamicProperties — A classe AllowDynamicProperties
    • Override — A classe Override
    • ReturnTypeWillChange — A classe ReturnTypeWillChange
    • SensitiveParameter — A classe SensitiveParameter
  • Opções e parâmetros de contexto
    • Opções de contexto de Socket — Lista de opções de contexto de Socket
    • Opções de contexto do HTTP — Lista de opções de contexto do HTTP
    • Opções de contexto do FTP — Lista de opções de contexto do FTP
    • Opções de contexto de SSL — Lista de opções de contexto de SSL
    • Opções de contexto do Phar — Lista de opções de contexto do Phar
    • Parâmetros de contexto — Listagem de parâmetros de contexto
    • Opções de contexto para Zip — Listagem de opções de contexto para Zip
    • Opções de contexto Zlib — Listagem de opções de contexto Zlib
  • Protocolos e Wrappers suportados
    • file:// — Acessando o sistema de arquivos local
    • http:// — Acessando URLs HTTP(s)
    • ftp:// — Acessando URLs FTP(s)
    • php:// — Acessando vários fluxos de E/S
    • zlib:// — Streams de compactação
    • data:// — Dados (RFC 2397)
    • glob:// — Encontra caminhos que correspondem a um padrão
    • phar:// — Arquivo PHP
    • ssh2:// — Shell Seguro 2
    • rar:// — RAR
    • ogg:// — Streams de áudio
    • expect:// — Fluxos de Interação entre Processos


  • « Referência da Linguagem
  • Tags PHP »
  • PHP Manual
  • Referência da Linguagem
  • Sintaxe Básica

Sintaxe Básica

Índice

  • Tags PHP
  • Escapando o HTML
  • Separação de instruções
  • Comentários


Tags PHP

Quando o PHP processa um arquivo, ele procura pelas tags de abertura e fechamento, <?php e ?>, que dizem ao PHP para iniciar ou parar a interpretação do código entre elas. Essa forma de processamento permite que o PHP seja incluído em todo tipo de documentos, pois tudo que estiver fora destas tags será ignorado pelo interpretador PHP.

O PHP inclui uma tag echo curta <?= que é uma forma abreviada da forma mais verbosa <?php echo.

Exemplo #1 Tags de Abertura e Fechamento do PHP

1. <?php echo 'Se quiser servir código PHP em documentos XHTML ou XML,
use essas tags'; ?>

2. A tag echo curta <?= 'imprima essa string' ?> também pode ser usada.
Ela é equivalente a <?php echo 'imprima essa string' ?>.

3. <? echo 'Este código está entre tags curtas, mas só funcionará '.
'se a diretiva short_open_tag estiver habilitada'; ?>

As tags curtas (exemplo 3) estão disponíveis por padrão, mas podem ser desabilitadas através da diretiva short_open_tag no arquivo de configuração php.ini, ou estarão desabilitadas por padrão se o PHP for compilado com a configuração --disable-short-tags.

Nota:

Como as tags curtas podem ser desabilitadas, é recomendado usar apenas as tags normais (<?php ?> e <?= ?>) para maximizar a compatibilidade.

Se um arquivo contiver apenas código PHP, é preferível omitir a tag de fechamento do PHP no final do arquivo. Isso evita que espaços em branco ou novas linhas sejam adicionados acidentalmente após a tag de fechamento do PHP, o que pode causar efeitos indesejados, porque o PHP iniciará o buffer de saída quando não houver intenção de enviar qualquer saída naquele ponto do script.

<?php
echo "Olá Mundo";

// ... mais código

echo "Última declaração";

// o script termina aqui sem a tag de fechamento do PHP


Escapando o HTML

Tudo fora de um par de tags de abertura e fechamento é ignorado pelo interpretador PHP, o que permite que arquivos PHP tenham conteúdo misto. Isso permite que o PHP seja incluído em documentos HTML, por exemplo, para criar templates.

<p>Isso será ignorado pelo PHP e exibido pelo navegador.</p>
<?php echo 'Enquanto isto vai ser interpretado.'; ?>
<p>Isso também será ignorado pelo PHP e exibido no navegador.</p>
Isso funcionará como esperado, porque quando o interpretador PHP encontra a tag de fechamento ?>, ele simplesmente começa a repassar o que quer que encontre (exceto a nova linha imediata, veja a seção sobre separação de instruções), até encontrar outra tag de abertura, a menos que esteja no meio de uma declaração condicional, caso em que o interpretador determinará o resultado da condicional antes de decidir qual caminho tomar. Veja o próximo exemplo.

Usando estruturas com condições

Exemplo #1 Escape avançado usando condições

<?php if ($expression == true): ?>
 Isso irá aparecer se a expressão for verdadeira.
<?php else: ?>
 Senão isso irá aparecer.
<?php endif; ?>
Neste exemplo, o PHP pulará os blocos onde a condição não for satisfeita, mesmo que os trechos de código estejam fora das tags de abertura e fechamento do PHP, pois o interpretador PHP pulará os blocos contidos em uma condição que não foi satisfeita.

Para imprimir grandes blocos de texto, sair do modo de interpretação do PHP é geralmente mais eficiente do que enviar todo o texto usando echo ou print.

Nota:

Se o PHP for incluído no XML ou XHTML, as tags normais <?php ?> devem ser usadas para manter a conformidade com os padrões.


Separação de instruções

Como em C ou Perl, o PHP requer que as instruções sejam terminadas com um ponto e vírgula no final de cada declaração. A tag de fechamento de um bloco de código PHP implica automaticamente em um ponto e vírgula; a última linha de um bloco PHP não precisa ser terminada com um ponto e vírgula. A tag de fechamento do bloco incluirá uma nova linha em seguida, se estiver presente.

Exemplo #1 Exemplo mostrando a tag de fechamento incluindo uma nova linha final

<?php echo "Algum texto"; ?>
Sem nova linha
<?= "Mas agora há uma nova linha" ?>

O exemplo acima produzirá:

Algum textoSem nova linha
Mas agora há uma nova linha

Exemplos de entrada e saída do interpretador PHP:

<?php
echo 'Isto é um teste';
?>

<?php echo 'Isto é um teste' ?>

<?php echo 'A última tag de fechamento foi omitida';

Nota:

A tag de fechamento de um bloco PHP no final de um arquivo é opcional e, em alguns casos, omiti-la é útil ao usar include ou require, assim espaços em branco indesejados não ocorrerão no final dos arquivos, e ainda será possível adicionar cabeçalhos à resposta posteriormente. Isso também é útil ao usar o buffer de saída, para evitar a inclusão de espaços em branco indesejados no final das partes geradas pelos arquivos incluídos.


Comentários

O PHP suporta comentários no estilo C, C++ e Unix shell (estilo Perl). Por exemplo:

<?php
echo 'Isto é um teste'; // Este é um comentário no estilo C++ de uma linha
/* Este é um comentário de várias linhas
mais uma linha de comentário */
echo 'Este é mais um teste';
echo 'Um teste final'; # Este é um comentário no estilo shell de uma linha
?>

Os estilos de comentário de uma linha comentam apenas até o final da linha ou do bloco atual de código PHP, o que ocorrer primeiro. Isso significa que o código HTML após // ... ?> ou # ... ?> SERÁ impresso: ?> sai do modo PHP e retorna ao modo HTML, e // ou # não podem influenciar isso.

<h1>Este é um <?php # echo 'simples';?> exemplo</h1>
<p>O cabeçalho acima dirá 'Este é um exemplo'.</p>

Os comentários no estilo C terminam no primeiro */ encontrado. Certifique-se de não aninhar comentários no estilo C. É fácil cometer esse erro ao tentar comentar um grande bloco de código.

<?php
/*
echo 'Isto é um teste'; /* Este comentário causará um problema */
*/
?>


Tipos

Índice

  • Introdução
  • Sistema de tipo
  • NULL
  • Booleanos
  • Inteiros
  • Números de ponto flutuante
  • Strings
  • Strings numéricas
  • Arrays
  • Objetos
  • Enumerations
  • Recursos
  • Callbacks / Callables
  • Mixed
  • Void
  • Never
  • Tipos de classes relativas
  • Tipos de valor
  • Iteráveis
  • Declarações de tipo
  • Conversão automática de tipos


Introdução

Cada expressão no PHP tem um dos seguintes tipos ou valores internos:

  • null
  • bool
  • int
  • float (número de ponto flutuante)
  • string
  • array
  • object
  • callable
  • resource

O PHP é uma linguagem com tipagem dinâmica, o que significa que por padrão não existe a necessidade de especificar o tipo de uma variável, já que isso será determinado em tempo de execução. Entretanto, é possível de restringir estaticamente os tipos através do uso de declarações de tipo.

Os tipos restringem quais operações podem ser realizadas nos valores. Entretanto, se uma expressão ou variável for utilizada numa operação que o tipo não suporte, o PHP tentará transformar o valor em um tipo que suporte a operação. Esse processo depende do contexto de onde o valor é utilizado. Para mais informações, veja a seção sobre Transformações de tipos.

Dica

A tabela de comparação de tipos também pode ser útil, pelos vários exemplos de comparação de valores demonstrados.

Nota: É possível forçar a reavaliação de uma expressão para um tipo específico através do uso de cast. Uma variável pode ser modificada para um tipo através da função settype().

Para verificar o valor e tipo de uma expressão, utilize a funçãovar_dump(). Para extrair o tipo de uma expressão, utilize a funçãoget_debug_type(). Para apenas validar se uma expressão é de um certo tipo, utilize as funções is_type.

<?php
$a_bool = true; // um valor boleano
$a_str = "foo"; // um texto
$a_str2 = 'foo'; // um texto
$an_int = 12; // um inteiro

echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";

// Se essa variável conter um inteiro, aumento o número por quatro
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);

// Se $a_bool for um texto, imprima
if (is_string($a_bool)) {
echo "String: $a_bool";
}
?>

Saída do exemplo acima no PHP 8:

bool
string
int(16)

Nota: get_debug_type() se tornou disponível no PHP 8.0.0. Anteriormente, a função gettype() pode ser utilizada. Entretanto, a função antiga não retorna nomes bem definidos.


Sistema de tipo

O PHP usa um sistema de tipo nominal com uma forte relação de subtipagem comportamental. A relação de subtipagem é verificada em tempo de compilação, enquanto a verificação de tipos é verificada dinamicamente em tempo de execução.

O sistema de tipos do PHP suporta vários tipos atômicos que podem ser compostos juntos para criar tipos mais complexos. Alguns desses tipos podem ser escritos como declarações de tipo

Tipos atômicos

Tipos atômicos são tipos internos que são fortemente integrados com a linguagem e não podem ser reproduzidos com tipos definidos pelo usuário.

A lista de tipos básicos é:

  • Tipos integrados
    • tipo null
    • Tipos escalares:
      • tipo bool
      • tipo int
      • tipo float
      • tipo string
    • tipo array
    • tipo object
    • tipo resource
    • tipo never
    • tipo void
    • Tipos de classes relativas: self, parent, e static
  • Valores literais
    • false
    • true
  • Tipos definidos pelo usuário (geralmente chamados de tipos de classe)
    • Interfaces
    • Classes
    • Enumerações
  • tipo callable

Tipos compostos

É possível combinar vários tipos atômicos em tipos compostos. O PHP permite que os tipos sejam combinados das seguintes maneiras:

  • Interseção de tipos de classes (interfaces e nomes de classes).
  • União de tipos.

Tipos de interseção

Um tipo de interseção aceita valores que satisfazem várias declarações de tipo de classe, em vez de uma única. Os tipos individuais que formam o tipo de interseção são unidos pelo símbolo &. Portanto, um tipo de interseção composto pelos tipos T, U, e V será escrito como T&U&V.

Tipos de união

Um tipo de união aceita valores de vários tipos diferentes, em vez de um único. Tipos individuais que formam o tipo de união são unidos pelo | símbolo. Portanto, um tipo de união composto pelos tipos T, U, e V será escrito como T|U|V. Se um dos tipos for um tipo de interseção, ele precisa ser colocado entre parênteses para que seja escrito em DNF: T|(X&Y).

Alias de tipo

O PHP suporta dois aliases de tipo: mixed e iterable que corresponde ao tipo de união de object|resource|array|string|float|int|bool|null e Traversable|array, respectivamente.

Nota: O PHP não suporta aliases de tipo definidos pelo usuário.


NULL

O tipo null é o tipo unitário do PHP, ou seja, possui apenas um valor: null.

Variáveis indefinidas e unset() resolverão para o valor null.

Sintaxe

Há apenas um valor do tipo null, a constante case-insensitive null.

<?php
$var = NULL;
?>

Convertendo para null

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 7.2.0 e foi REMOVIDO a partir do PHP 8.0.0. O uso deste recurso é fortemente desencorajado.

Converter uma variável para null utilizando (unset) $var não removerá a variável ou apagará seu valor. Apenas retornará null como valor.

Veja Também

  • is_null()
  • unset()


Booleanos

O tipo bool tem apenas dois valores e é usado para expressar um valor de verdade. Pode ser true ou false.

Sintaxe

Para especificar um bool literal, use as palavras-chave true ou false. Ambas são case-insensitive.

<?php
$foo = True; // atribui o valor True para $foo
?>

Tipicamente, o resultado de um operador que retorne um valor bool, é passado para uma estrutura de controle.

<?php
// == É um operador que testa
// igualdade e retorna um booleano.
if ($action == "mostrar_versao") {
echo "A versão é 1.23";
}

// isto não é necessário ...
if ($exibir_separadores == TRUE) {
echo "<hr>\n";
}

// ... porque você pode simplesmente escrever isso:
if ($exibir_separadores) {
echo "<hr>\n";
}
?>

Convertendo para booleano

Para converter explicitamente um valor em bool, use a conversão (bool). Geralmente isso não é necessário porque quando um valor é usado em um contexto lógico ele será automaticamente interpretado como um valor do tipo bool. Para obter mais informações, consulte a página Manipulação de tipos.

Ao converter para bool, os seguintes valores são considerados false:

  • o próprio booleano false
  • o inteiro 0 (zero)
  • os pontos flutuantes 0.0 e -0.0 (zero)
  • uma string vazia "", e a string "0"
  • um array sem elementos
  • o tipo especial NULL (incluindo variáveis não definidas)
  • Objetos internos que sobrecarregam seu comportamento de conversão para bool. Por exemplo: Objetos SimpleXML criados a partir de elementos vazios sem atributos.

Todos os outros valores são considerados true (incluindo resource e NAN).

Aviso

-1 é considerado true, como qualquer número que não seja zero (negativos ou positivos)!

<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) "0"); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>


Inteiros

Um int é um número do conjunto Z = {..., -2, -1, 0, 1, 2, ...}.

Veja Também

  • Números de ponto flutuante
  • Precisão arbitrária / BCMath
  • Número inteiro de comprimento arbitrário / GMP

Sintaxe

Int pode ser especificado em notação decimal (base 10), hexadecimal (base 16), octal (base 8) ou binária (base 2). O operador de negação pode ser usado para indicar um int negativo.

Para usar a notação octal, preceda o número com um 0 (zero). A partir do PHP 8.1.0, a notação octal também pode ser precedida por 0o ou 0O. Para utilizar a notação hexadecimal, preceda o número com 0x. Para utilizar a notação binária, preceda o número com 0b.

A partir do PHP 7.4.0, inteiros literais podem conter sublinhados (_) entre os dígitos, para melhorar a sua leitura. Estes sublinhados serão removidos pelo scanner do PHP.

Exemplo #1 Literais inteiras

<?php
$a = 1234; // número decimal
$a = 0123; // número octal (equivalente a 83 em decimal)
$a = 0o123; // número octal (a partir do PHP 8.1.0)
$a = 0x1A; // número hexadecimal (equivalente a 26 em decimal)
$a = 0b11111111; // número binário (equivalente ao 255 decimal)
$a = 1_234_567; // número decimal (a partir do PHP 7.4.0)
?>

Formalmente, a estrutura para literais int é a partir do PHP 8.1.0 (anteriormente, os prefixos octal 0o ou 0O não eram permitidos, e antes do PHP 7.4.0 os sublinhados não eram permitidos):

decimal     : [1-9][0-9]*(_[0-9]+)*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)*

octal       : 0[oO]?[0-7]+(_[0-7]+)*

binary      : 0[bB][01]+(_[01]+)*

integer     : decimal
            | hexadecimal
            | octal
            | binary

O tamanho de um int depende da plataforma, embora um valor máximo de cerca de dois bilhões seja o valor usual (são 32 bits assinados). As plataformas de 64 bits geralmente têm um valor máximo de cerca de 9E18. O PHP não suporta int não assinados. O tamanho int pode ser determinado usando a constante PHP_INT_SIZE, o valor máximo usando a constante PHP_INT_MAX e o valor mínimo usando a constante PHP_INT_MIN.

Overflow de inteiros

Se o PHP encontrar um número além dos limites do tipo int, ele será interpretado como um float. Assim, uma operação que resulte em um número além dos limites do tipo int, retornará um float.

Exemplo #2 Overflow de inteiros em sistemas 32-bit

<?php
$large_number = 2147483647;
var_dump($large_number); // int(2147483647)

$large_number = 2147483648;
var_dump($large_number); // float(2147483648)

$million = 1000000;
$large_number = 50000 * $million;
var_dump($large_number); // float(50000000000)
?>

Exemplo #3 Overflow de inteiros em sistemas 64-bit

<?php
$large_number = 9223372036854775807;
var_dump($large_number); // int(9223372036854775807)

$large_number = 9223372036854775808;
var_dump($large_number); // float(9.2233720368548E+18)

$million = 1000000;
$large_number = 50000000000000 * $million;
var_dump($large_number); // float(5.0E+19)
?>

Não existe operador de divisão int no PHP, para conseguir isso use a função intdiv() . 1/2 produz o float 0.5. O valor pode ser convertido em um int para arredondar para zero ou a função round() fornece um controle mais preciso sobre o arredondamento.

<?php
var_dump(25/7); // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7)); // float(4)
?>

Convertendo para inteiro

Para converter explicitamente um valor para int, utiliza-se um dos modificadores (int) ou (integer). Entretanto, na maioria dos casos, o modificador não é necessário, já que o valor será automaticamente convertido se um operador, função ou estrutura de controle requerer um int como argumento. Um valor também pode ser convertido para int utilizando a função intval().

Se um resource for convertido para um int, resultará no número único do recurso, atribuído ao resource pelo PHP em tempo de execução.

Veja também Manipulação de tipos.

De booleanos

false será retornado como 0 (zero), e true retornará 1 (um).

De números de ponto flutuante

Ao converter de float para int, o número será arredondado towards zero. A partir do PHP 8.1.0, um aviso de descontinuação é emitido ao converter implicitamente um float não integral para int que perde precisão.

<?php

function foo($value): int {
return $value;
}

var_dump(foo(8.1)); // "Descontinuado: conversão implícita de float 8.1 para int perde precisão" a partir do PHP 8.1.0
var_dump(foo(8.1)); // 8 antes do PHP 8.1.0
var_dump(foo(8.0)); // 8 em ambos os casos

var_dump((int)8.1); // 8 em ambos os casos
var_dump(intval(8.1)); // 8 em ambos os casos
?>

Se o float estiver além dos limites de int (geralmente +/- 2.15e+9 = 2^31 em plataformas de 32 bits e +/- 9.22e+18 = 2^63 em plataformas de 64 bits), o resultado é indefinido , já que o float não tem precisão suficiente para fornecer um resultado int exato. Nenhum aviso, nem mesmo um aviso será emitido quando isso acontecer!

Nota:

NaN e infinito sempre serão zero quando convertidos para int.

Aviso

Nunca modifique uma fração desconhecida para int, porque isto pode, as vezes, fornecer resultados inesperados.

<?php
echo (int) ( (0.1+0.7) * 10 ); // imprime 7!
?>

Veja também o alerta sobre a precisão de número flutuante.

De strings

Se a string for numérica ou numérica inicial, ela será resolvida para o valor inteiro correspondente, caso contrário, será convertida em zero (0).

De NULL

null é sempre convertido em zero (0).

De outros tipos

Cuidado

O comportamento da conversão de um int é desconhecido para outros tipos. Não confie em nenhum comportamento observado, pois ele pode mudar sem aviso.


Números de ponto flutuante

Números de ponto flutuante (também conhecidos como "floats", "doubles" ou "números reais"), podem ser especificados utilizando qualquer uma das seguintes sintaxes:

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
$d = 1_234.567; // a partir do PHP 7.4.0
?>

Formalmente a partir do PHP 7.4.0 (anteriormente, sublinhados não eram permitidos):

LNUM          [0-9]+(_[0-9]+)*
DNUM          ({LNUM}?"."{LNUM}) | ({LNUM}"."{LNUM}?)
EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM})

O tamanho de um número de ponto flutuante depende da plataforma, sendo o máximo de ~1.8e308 com precisão de 14 dígitos decimais um valor comum (número de 64 bits no formato IEEE).

Aviso

Precisão de números de ponto flutuante

Números de ponto flutuante tem precisão limitada. Embora dependa do sistema, o PHP geralmente utiliza o formato de precisão dupla do IEEE 754, que trará uma precisão máxima devida a arredondamentos da ordem de 1.11e-16. Operações matemáticas incomuns poderão ocasionar erros maiores, e, claro, a propagação de erros deve ser considerada quando várias operações forem realizadas.

Além disso, números racionais que têm representação exata em números em base 10, como 0.1 ou 0.7, não possuem representação exata em ponto flutuante na base 2, o formato utilizado internamente, não importando o tamanho da mantissa. Portanto não existe conversão para o formato interno sem uma pequena perda de precisão. Isso pode ocasionar resultados confusos: por exemplo, floor((0.1+0.7)*10) normalmente retornará 7, em vez do resultado esperado 8, porque a representação interna final será algo como 7.9999999999999991118....

Então, nunca confie em resultados com números de ponto flutuante até a última casa, e nunca compare números de ponto flutuante em igualdades. Se você realmente precisar de alta precisão, você pode utilizar as funções matemáticas de precisão arbitrária e as funções gmp estão disponíveis.

Para uma explicação "simples" dessa questão, veja o » guia sobre ponto flutuante, que também tem o título alternativo de "Porque meus números não somam direito?".

Convertendo para float

A partir de strings

Se a string é numérica ou começa numérica então ela irá resolver para o valor float correspondente, do contrário ela é convertida em zero (0).

A partir de outros tipos

Para valores de outros tipos, a conversão é realizada convertendo o valor para int primeiro e em seguida para float. Veja Convertendo para inteiro para mais informações.

Nota:

Como certos tipos têm comportamento indefinido ao converter para int, este também é o caso ao converter para float.

Comparando floats

Como notado acima, testar números de ponto flutuante com igualdade é problemático, por causa da maneira como são representados internamente. Entretanto existem maneiras de fazer comparações com números de ponto flutuante que contornam essas limitações.

Para testar números de ponto flutuante, utilize um "valor de erro máximo" na comparação utilizada. Esse valor é também chamado de epsilon, ou unidade de erro, e deve ser a diferença mínima aceitável no resultado dos cálculos.

$a e $b serão consideradas iguais até o 5º dígito de precisão.

<?php
$a = 1.23456789;
$b = 1.23456780;
$epsilon = 0.00001;

if(abs($a-$b) < $epsilon) {
echo "iguais";
}
?>

NaN

Algumas operações numéricas podem resultar em valores representados pela constante NAN. Esse resultado representa um valor desconhecido ou não representável nos cálculos de ponto flutuante. Qualquer comparação frouxa ou restrita deste valor com qualquer outro, inclusive ele mesmo, com exceção de true, terá como resultado false.

Como o NAN representa um resultado irrepresentável, NAN não deve ser comparado com outros valores, incluindo ele mesmo, em vez disso, deve-se checá-lo utilizando a função is_nan().


Strings

Uma string é uma série de caracteres, onde um caractere é o mesmo que um byte. Isso significa que o PHP possui suporte a um conjunto de apenas 256 caracteres, e, portanto, não possui suporte nativo a Unicode. Veja mais detalhes do tipo string.

Nota: Em sistemas de 32 bits, uma string pode ter até 2GB (2147483647 bytes).

Sintaxe

Uma string literal pode ser especificada de quatro formas diferentes.

  • aspas simples
  • aspas duplas
  • sintaxe heredoc
  • sintaxe nowdoc

Aspas simples

A maneira mais simples de se especificar uma string é delimitá-la entre aspas simples (o caractere ').

Para especificar um apóstrofo, escape-o com uma contrabarra (\). Para especificar uma contrabarra literal, duplique-a (\\). Todas as outras ocorrências da contrabarra serão tratadas como uma contrabarra literal: isso significa que outras sequências de escape que se esteja acostumado a utilizar, como \r ou \n, serão literalmente impressas em vez de ter qualquer significado especial.

Nota: Diferentemente das sintaxes com aspas duplas e heredoc, variáveis e sequências de escape para caracteres especiais não serão expandidas quando ocorrerem dentro de uma string delimitada por aspas simples.

<?php
echo 'isto é uma string comum';

echo 'Você pode incluir novas linhas em strings,
dessa maneira que estará
tudo bem';

// Imprime: Arnold disse uma vez: "I'll be back"
echo 'Arnold disse uma vez: "I\'ll be back"';

// Imprime: Você tem certeza em apagar C:\*.*?
echo 'Você tem certeza em apagar C:\\*.*?';

// Imprime: Você tem certeza em apagar C:\*.*?
echo 'Você tem certeza em apagar C:\*.*?';

// Imprime: Isto não será substituído: \n uma nova linha
echo 'Isto não será substituído: \n uma nova linha';

// Imprime: Variáveis $também não $expandem
echo 'Variáveis $também não $expandem';
?>

Aspas duplas

Se a string for delimitada entre aspas duplas ("), o PHP interpretará a seguinte sequência de escape como caracteres especiais:

Sequências de escape
Sequências | Significado
\n | Nova linha (LF ou 0x0A (10) em ASCII)
\r | Retorno de carro (CR ou 0x0D (13) em ASCII)
\t | Tabulação horizontal (HT ou 0x09 (9) em ASCII)
\v | Tabulação vertical (VT ou 0x0B (11) em ASCII)
\e | Escape (ESC or 0x1B (27) em ASCII)
\f | Form feed (FF ou 0x0C (12) em ASCII)
\\ | contrabarra ou barra invertida
\$ | Sinal de cifrão
\" | aspas duplas
\[0-7]{1,3} | Octal: uma sequência de caracteres que coincide com a expressão regular [0-7]{1,3} é um caracter em notação octal (por exemplo, "\101" === "A"), o qual é silenciosamente turcado para um byte (por exemplo "\400" === "\000")
\x[0-9A-Fa-f]{1,2} | Hexadecimal: uma sequência de caracteres que coincide com a expressão regular [0-9A-Fa-f]{1,2} é um caracter em notação decimal (por exemplo, "\x41" === "A")
\u{[0-9A-Fa-f]+} | Unicode: uma sequência de caracteres coincidindo com a expressão regular [0-9A-Fa-f]+ é um codepoint Unicode, o qual terá como resultado uma string contendo a representação UTF-8 desses codepoints. Os colchetes são requeridos. Por exemplo, "\u{41}" === "A"

Como com as strings entre aspas simples, escapar qualquer outro caractere resultará em uma contrabarra sendo impressa.

O recurso mais importante de strings delimitadas por aspas duplas é o fato de que nomes de variáveis serão expandidos. Veja interpretação de strings para detalhes.

Heredoc

Uma terceira maneira de delimitar strings é a sintaxe heredoc: <<<. Após este operador, um identificador é fornecido seguido de uma nova linha. A própria string é colocada em seguida e a seguir o mesmo identificador novamente para fechar a string.

O identificador de fechamento pode ser indentado com espaços ou tabulações, e nesse caso a indentação será removida de todas as linhas da doc string. Anteriormente ao PHP 7.3.0, o identificador precisava estar no começo da linha.

Além disso, o identificador de fechamento precisa seguir as mesmas convenções de nomes de outros identificadores do PHP: ele precisa conter apenas caracteres alfanuméricos e underlines, e precisa começar com uma letra ou underline.

Exemplo #1 Exemplo Heredoc simples no PHP 7.3.0

<?php
// Sem indentação
echo <<<END
 a
b
c
\n
END;

// 4 espaços de indentação
echo <<<END
 a
b
c
 END;

Saída do exemplo acima no PHP 7.3:

      a
     b
    c

  a
 b
c

Se o identificador de fechamento estiver identado diferentemente das linhas do corpo, um ParseError será lançado:

Exemplo #2 Identificador de fechamento indentado diferente das linhas do corpo

<?php
echo <<<END
 a
b
c
 END;

Saída do exemplo acima no PHP 7.3:

PHP Parse error:  Invalid body indentation level (expecting an indentation level of at least 3) in example.php on line 4

Se o identificador de fechamento é identado, tabulações podem ser utilizados, no entanto tabulações e espaços não podem estar misturados ou diferentes, entre a indentação do fechamento e a indentação do corpo Nesses casos, um ParseError será lançado. Essas restrições de whitespace estão incluídas dados que a mistura de tabulações e espaços são prejudiciais à legibilidade.

Exemplo #3 Indentação diferente entre corpo e fechamento

<?php
// Todos esses códidos falharão.

// Indentação diferente entre corpo (espaços) e fechamento (tabulações)
{
echo <<<END
a
END;
}

// Misturar tabulações e espaços no corpo
{
echo <<<END
 a
 END;
}

// Misturar espaços e tabulações no identficador de fechamento
{
echo <<<END
a
END;
}

Saída do exemplo acima no PHP 7.3:

PHP Parse error:  Invalid indentation - tabs and spaces cannot be mixed in example.php line 8

O identificador de fechamento do corpo não necessita de um ponto e vírgula ou nova linha. Por exemplo, o seguinte código é permitido a partir do PHP7.3.0:

Exemplo #4 Continuando uma expressão após o identificador de fechamento

<?php
$values = [<<<END
a
b
c
END, 'd e f'];
var_dump($values);

Saída do exemplo acima no PHP 7.3:

array(2) {
  [0] =>
  string(11) "a
  b
    c"
  [1] =>
  string(5) "d e f"
}
Aviso

Se o identificador de fechamento for encontrado no começo da linha, existe a ambiguidade de ele ser considerado ou não parte do texto, podendo também ser considerado como fechamento, pode causar um ParseError.

Exemplo #5 Identificador de fechamento no corpo da string pode causar um ParseError

<?php
$values = [<<<END
a
b
END ING
END, 'd e f'];

Saída do exemplo acima no PHP 7.3:

PHP Parse error:  syntax error, unexpected identifier "ING", expecting "]" in example.php on line 6

Para evitar esse problema, basta seguir a seguinte regra: escolha identificadores que não aparecem no corpo do texto.

Aviso

Anteriormente ao PHP 7.3.0, era muito importante notar que a linha com o identificador de fechamento não poderia conter outros caracteres, exceto um ponto e vírgula (;). Isso significava que o identificador de fechamento não poderia ser identado, e que não poderia haver espaços ou tabulações antes ou depois do ponto e vírgula. É importante notar também que o primeiro caractere antes do fechamento deveria ser uma newline, como definido pelo sistema operacional. Ou seja, \n em sistemas Unix, incluindo o macOS. O identificador de fechamento também deveria ser seguido de um newline.

Se essa regra não for seguida, e o identificador de fechamento não estiver "limpo", ele não será considerado como fechamento, e o PHP continuará lendo o script como se fosse texto. Se um identificador de fechamento correto não for encontrado até o final do arquivo, um erro de interpretação será lançado na última linha.

Exemplo #6 Exemplo inválido, anteriormente ao PHP 7.3.0

<?php
class foo {
public $bar = <<<EOT
bar
 EOT;
}
// O identifcador não deve ser indentado
?>

Exemplo #7 Exemplo válido, mesmo antes do PHP 7.3.0

<?php
class foo {
public $bar = <<<EOT
bar
EOT;
}
?>

Heredocs não podem ser usados para inicializar propriedades de classe.

Textos heredoc se comportam como strings delimitadas por aspas duplas, sem as aspas duplas. Isso significa que aspas simples em heredocs não precisam ser escapadas, apesar de que os códigos de escape listados acima podem continuar sendo utilizados. Variáveis são expandidas, mas o mesmo cuidado deve ser tomado ao expressar variáveis complexas dentro do heredoc assim como nas strings.

Exemplo #8 Exemplo de delimitação de strings heredoc

<?php
$str = <<<EOD
Exemplo de uma string
distribuída em várias linhas
utilizando a sintaxe heredoc.
EOD;

/* Exemplo mais complexo, com variáveis */
class foo
{
var $foo;
var $bar;

function __construct()
{
$this->foo = 'Foo';
$this->bar = array('Bar1', 'Bar2', 'Bar3');
}
}

$foo = new foo();
$name = 'Meu nome';

echo <<<EOT
Meu nome é "$name". Eu estou imprimindo $foo->foo.
Agora, eu estou imprimindo {$foo->bar[1]}.
Isto deve imprimir um 'A' maiúsculo: \x41
EOT;
?>

O exemplo acima produzirá:

Meu nome é "Meu nome". Eu estou imprimindo Foo.
Agora, eu estou imprimindo Bar2.
Isto deve imprimir um 'A' maiúsculo: A

É possível também utilizar a sintaxe Heredoc para passar dados para argumentos de funções:

Exemplo #9 Exemplo de Heredoc em argumentos

<?php
var_dump(array(<<<EOD
foobar!
EOD
));
?>

É possível inicializar variáveis estáticas e propriedades/constantes de classe utilizando a sintaxe heredoc:

Exemplo #10 Utilizando o Heredoc na inicialização de valores estáticos

<?php
// Variáveis estáticas
function foo()
{
static $bar = <<<LABEL
Nothing in here...
LABEL;
}

// Classe propriedades/constantes
class foo
{
const BAR = <<<FOOBAR
Constant example
FOOBAR;

public $baz = <<<FOOBAR
Property example
FOOBAR;
}
?>

O identificador de abertura do Heredoc pode ser opcionalmente delimitado por aspas duplas:

Exemplo #11 Usando aspas duplas no Heredoc

<?php
echo <<<"FOOBAR"
Hello World!
FOOBAR;
?>

Nowdoc

Nowdocs estão para aspas simples assim como os heredocs estão para aspas duplas em strings. Um nowdoc é especificado similarmente a um heredoc, mas nenhuma interpretação é feita dentro de um nowdoc. A construção é ideal para colocar códigos PHP ou outros grandes blocos de texto sem a necessidade de usar escapes. Compartilha algumas características em comum com a construção SGML <![CDATA[ ]]>, assim é declarado um bloco de texto onde nada será analisado.

Um nowdoc é identificado com a mesma sequência <<< usada para heredocs, mas o identificador precisa ficar entre aspas simples, por exemplo. <<<'EOT'. Todas as regras para identificadores heredoc também se aplicam para identificadores nowdoc, especialmente aquelas referentes a aparência do identificador de fechamento.

Exemplo #12 Exemplo de string em Nowdoc

<?php
echo <<<'EOD'
Exemplo de string abrangendo várias linhas
usando a sintaxe nowdoc. As barras invertidas são sempre tratadas literalmente,
por exemplo. \\ e \'.
EOD;

O exemplo acima produzirá:

Exemplo de string abrangendo várias linhas
usando a sintaxe nowdoc. As barras invertidas são sempre tratadas literalmente,
por exemplo. \\ e \'.

Exemplo #13 Exemplo de Nowdoc, com variáveis

<?php
class foo
{
public $foo;
public $bar;

function __construct()
{
$this->foo = 'Foo';
$this->bar = array('Bar1', 'Bar2', 'Bar3');
}
}

$foo = new foo();
$name = 'MyName';

echo <<<'EOT'
Meu nome é "$nome". Estou imprimindo alguns $foo->foo.
Agora, estou imprimindo alguns {$foo->bar[1]}.
Isso não deve imprimir um 'A' maiúsculo: \x41
EOT;
?>

O exemplo acima produzirá:

Meu nome é "$nome". Estou imprimindo alguns $foo->foo.
Agora, estou imprimindo alguns {$foo->bar[1]}.
Isso não deve imprimir um 'A' maiúsculo: \x41

Exemplo #14 Exemplo de dado estático

<?php
class foo {
public $bar = <<<'EOT'
bar
EOT;
}
?>

Interpretação de variáveis

Quando uma string é especificada dentro de aspas duplas ou heredoc, as variáveis são interpretadas dentro delas.

Há dois tipos de sintaxe: uma simples e uma complexa. A sintaxe simples é a mais comum e conveniente. Provê uma maneira de interpretar uma variável, o valor de um array ou uma propriedade de object em uma string com o mínimo de esforço.

A sintaxe complexa pode ser reconhecida pelas chaves envolvendo a expressão.

Sintaxe simples

Se um sinal de cifrão ($) for encontrado, o interpretador tentará obter tantos identificadores quantos forem possíveis para formar um nome de variável válido. Envolva o nome da variável com chaves para especificar explicitamente o fim do nome.

<?php
$suco = "maçã";

echo "Ele bebeu um pouco de suco de $suco." . PHP_EOL;

// Erro, porque "s" é um caractere válido para um nome de variável, procura $sucos em vez de $suco
echo "Ele bebeu um suco feito de $sucos." . PHP_EOL;

// Especificar explicitamente o nome da variável, delimitando com chaves.
echo "Ele bebeu um pouco de suco feito de ${suco}s.";

?>

O exemplo acima produzirá:

Ele bebeu um pouco de suco de maçã.
Ele bebeu um pouco de suco feito de .
Ele bebeu um pouco de suco feito de maçãs.

Similarmente, um índice de array ou uma propriedade de um object podem ser interpretados. Com índices de arrays, o fechamento de colchetes (]) marca o final do índice. A mesma regra aplica-se a propriedade de objetos, assim como para variáveis simples.

Exemplo #15 Exemplo com sintaxe simples

<?php
$sucos = array("maçã", "laranja", "koolaid1" => "roxo");

echo "Ele bebeu um pouco de suco $sucos[0]".PHP_EOL;
echo "Ele bebeu um pouco de suco $sucos[1].".PHP_EOL;
echo "Ele bebeu um pouco de suco $sucos[koolaid1].".PHP_EOL;

class Pessoa {
public $john = "João Silva";
public $jane = "Jane Smith";
public $robert = "Robert Paulsen";

public $smith = "Smith";
}

$pessoa = new people();

echo "$pessoa->john bebeu um pouco de suco de $sucos[0].".PHP_EOL;
echo "$pessoa->john então disse olá para $pessoa->jane.".PHP_EOL;
echo "Esposa de $pessoa->john cumprimentou $pessoa->robert.".PHP_EOL;
echo "$pessoa->robert cumprimentou os dois $pessoa->smiths."; // Não vai funcionar
?>

O exemplo acima produzirá:

Ele bebeu um pouco de suco de maçã.
Ele bebeu um pouco de suco de laranja.
Ele bebeu um pouco de suco roxo.
John Smith bebeu um pouco de suco de maçã.
John Smith então disse olá para Jane Smith.
A esposa de John Smith cumprimentou Robert Paulsen.
Robert Paulsen cumprimentou os dois .

A partir do PHP 7.1.0 índices numéricos negativos são suportados.

Exemplo #16 Índices numéricos negativos

<?php
$string = 'string';
echo "O caractere no índice -2 é $string[-2].", PHP_EOL;
$string[-3] = 'o';
echo "Alterar o caractere no índice -3 para 'o' dá $string.", PHP_EOL;
?>

O exemplo acima produzirá:

O caractere no índice -2 é n.
Alterar o caractere no índice -3 para o dá strong.

Para qualquer coisa mais complexa, utilize a sintaxe complexa.

Sintaxe complexa (chaves)

Isto não é chamado sintaxe complexa porque a sintaxe é complexa, mas sim porque permite a utilização de expressões complexas.

Qualquer variável escalar, elemento de um array ou propriedade de um objeto com uma representação de uma string pode ser incluída com essa sintaxe. A expressão é escrita da mesma forma como apareceria fora da string e então coloque-o entre { e }. Já que que { não pode escapado, esta sintaxe será somente reconhecida quando o $ seguir, imediatamente, o {. Use {\$ para obter um literal {$. Alguns exemplos que tornam isto claro:

<?php
// Mostrar todos os erros
error_reporting(E_ALL);

$great = 'fantástico';

// Não vai funcionar, resultado: Isso é { fantástico}
echo "Isso é { $great}";

// Funciona, resultado: Isso é fantastico
echo "Isso é {$great}";

// Funciona
echo "Este quadrado tem {$square->width}00 centímetros de largura.";

// Funciona, as chaves entre aspas funcionam apenas usando a sintaxe de chaves
echo "Isso funciona: {$arr['key']}";

// Funciona
echo "Isso funciona: {$arr[4][3]}";

// Isso está errado pelo mesmo motivo que $foo[bar] está errado fora de uma string.
// PHP primeiro procura por uma constante chamada foo, e emite um erro se não encontrada.
// Se a constante for encontrada, seu valor (e não 'foo' em si) seria usada
// para o índice do array.
echo "Isso está errado: {$arr[foo][3]}";

// Funciona. Ao usar matrizes multidimensionais, sempre use chaves em torno das matrizes
// quando dentro de strings
echo "Funciona: {$arr['foo'][3]}";

// Funciona.
echo "Isto funciona: " . $arr['foo'][3];

echo "Isto também funciona: {$obj->values[3]->name}";

echo "Este é o valor da variável chamada $name: {${$name}}";

echo "Este é o valor da var nomeada pelo valor de retorno de getName(): {${getName()}}";

echo "Este é o valor da var nomeada pelo valor de retorno de \$object->getName(): {${$object->getName()}}";

// Não funcionará, saídas: Este é o valor de retorno de getName(): {getName()}
echo "TEste é o valor de retorno de getName(): {getName()}";

// Não funciona, imprime: C:\folder\{fantastic}.txt
echo "C:\folder\{$great}.txt"
// Funciona, imprime: C:\folder\fantastic.txt
echo "C:\\folder\\{$great}.txt"
?>

Também é possível acessar propriedades de classes usando variáveis que contêm strings utilizando esta sintaxe.

<?php
class foo {
var $bar = 'I am bar.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo "{$foo->$bar}\n";
echo "{$foo->{$baz[1]}}\n";
?>

O exemplo acima produzirá:

I am bar.
I am bar.

Nota:

O valor acessado de funções, métodos, variáveis estáticas de classes e constantes de classes, de dentro de {$} serão interpretados como o nome de uma variável no escopo em que a string está definida. Utilizar somente chaves ({}) não funcionará para acessar os valores de retorno de funções ou métodos nem os valores de constantes da classe ou variáveis estáticas da classe.

<?php
// Mostra todos os erros.
error_reporting(E_ALL);

class beers {
const softdrink = 'rootbeer';
public static $ale = 'ipa';
}

$rootbeer = 'A & W';
$ipa = 'Alexander Keith\'s';

// Funciona, imprime: I'd like an A & W
echo "I'd like an {${beers::softdrink}}\n";

// Também funciona, imprime: I'd like an Alexander Keith's
echo "I'd like an {${beers::$ale}}\n";
?>

Acesso e modificação da string por caractere

É possível acessar e modificar caracteres dentro de strings especificando a posição, baseada em zero, do caractere desejado na string usando colchetes, parecido com arrays, por exemplo $str[42]. Imagine uma string como um array de caracteres. As funções substr() e substr_replace(), podem ser utilizadas quando se deseja extrair ou substituir mais que 1 caractere.

Nota: A partir do PHP 7.1.0, posições negativas para strings são suportadas. Estas especificam a posição do final da string. Antes, posições negativas emitiam um E_NOTICE para leitura (gerando um string vazia) e um E_WARNING para escrita (deixando a string intocada).

Nota: Anteriormente ao PHP 8.0.0, strings também poderiam ser usados utilizandos chaves, por exemplo $str{42}. Essa sintaxe por chaves foi descontinuada desde o PHP 7.4.0 e não é mais suportadada a partir do PHP 8.0.0.

Aviso

Escrever em uma posição fora do intervalo preenche a string com espaços. Tipos diferentes de inteiro são convertidos para inteiro. Tipo ilegal de deslocamento emite um E_WARNING. Apenas o primeiro caractere de uma string atribuída é usado. A partir de PHP 7.1.0, a atribuição de uma string vazia lança um erro fatal. Antes, era atribuído o byte NULL.

Aviso

Internamente, as strings do PHP são arrays de bytes. Como resultado, acessar ou modificar uma string usando colchetes não é seguro com multi-bytes e deve ser feito somente em strings que utilizem apenas um byte em sua codificação, como a ISO-8859-1.

Nota: A partir do PHP 7.1.0, aplicar um operador de índice vazio em uma string lança um erro fatal Antes, a string vazia era convertida em um array.

Exemplo #17 Alguns exemplos com strings

<?php
// Get the first character of a string
$str = 'This is a test.';
$first = $str[0];

// Get the third character of a string
$third = $str[2];

// Get the last character of a string.
$str = 'This is still a test.';
$last = $str[strlen($str)-1];

// Modify the last character of a string
$str = 'Look at the sea';
$str[strlen($str)-1] = 'e';

?>

Índices de strings dever ser inteiros ou strings parecidos com inteiros, de outra forma um aviso é lançado.

Exemplo #18 Exemplo de índices inválidos em strings

<?php
$str = 'abc';

var_dump($str['1']);
var_dump(isset($str['1']));

var_dump($str['1.0']);
var_dump(isset($str['1.0']));

var_dump($str['x']);
var_dump(isset($str['x']));

var_dump($str['1x']);
var_dump(isset($str['1x']));
?>

O exemplo acima produzirá:

string(1) "b"
bool(true)

Warning: Illegal string offset '1.0' in /tmp/t.php on line 7
string(1) "b"
bool(false)

Warning: Illegal string offset 'x' in /tmp/t.php on line 9
string(1) "a"
bool(false)
string(1) "b"
bool(false)

Nota:

Acessar variáveis de outros tipos (excluindo-se arrays ou objetos que implementem certas interfaces) usando [] ou {} silenciosamente retornará null.

Nota:

Caracteres dentro de strings literais podem ser acessados utilizando [] or {}.

Nota:

Acessar caracteres em strings utilizando a sintax por {} foi descontinuada desde o PHP 7.4, e não existe no PHP 8.0.

Funções e operadores úteis

Strings podem ser concatenadas utilizando o operador '.' (ponto). Note que o operador '+' (adição) não funciona para isso. Veja operadores de string para mais informações.

Há bastantes funções úteis para manipulação de strings.

Veja a seção de funções de string para funções gerais e funções de expressões regulares compatíveis com Perl para funcionalidades avançadas de localização & e substituição.

Há também funções para strings URL e funções para criptografia/descriptografia de strings (Sodium e Hash).

Finalmente, veja também as funções de tipos de caracteres.

Conversão em strings

Um valor pode ser convertido em uma string utilizando o modificador (string) ou a função strval(). A conversão em string é automaticamente realizada no escopo de uma expressão onde uma string é necessária. Isto acontece no uso das funções echo ou print ou quando o valor de uma variável é comparado com uma string. As seções Tipos e Conversão de Tipos tornarão um pouco mais claro o assunto. Veja também a função settype().

O valor bool true é convertido para a string "1". O bool false é convertido para "" (uma string vazia). Isso permite converter nos dois sentidos entre os valores bool e string.

Um int ou um float é convertido para uma string representando o número textualmente (incluindo a parte do expoente nos floats). Números de ponto flutuante podem ser convertidos usando a notação exponencial (4.1E+6).

Nota:

A partir do PHP 8.0.0, o caracter de ponto decimal sempre é um periodo ("."). Anteriormente ao PHP 8.0.0, o ponto decimal era definido pelo locale do script (LC_NUMERIC). Veja mais detalhes na função setlocale().

Arrays são sempre convertidos para uma string "Array"; por isso echo e print não podem, por si só, mostrar o conteúdo de um array. Para visualizar um único elemento, use uma construção como echo $arr['foo']. Veja abaixo dicas de como visualizar todo seu conteúdo.

Para converter objects em strings, o método mágico __toString deve ser usado.

Resources são sempre convertidos para strings na estrutura "Resource id #1" onde 1 é o número único do resource atribuído pelo PHP em tempo de execução. Apesar de que a estrutura exata desta string não seja confiável e esteja sujeita a modificações, será sempre única a um dado recurso dentro do ciclo de vida de um script sendo executado (por exemplo numa requisição Web ou em um processo CLI) e não será reutilizada. Para obter o tipo de um resource, utilize a função get_resource_type().

null é sempre convertido para uma string vazia.

Como declarado acima, converter diretamente um array, object ou resource para uma string não fornece nenhuma informação útil sobre o valor, a não ser seu tipo. Veja as funções print_r() e var_dump() para maneiras mais efetivas de inspecionar o conteúdo destes tipos.

A maioria dos valores no PHP também podem ser convertidos em strings para armazenamento permanente. Este método é chamado de serialização e pode ser feito com a função serialize().

Detalhes do tipo string

A string no PHP é implementada como um array de bytes e um inteiro indicando seu tamanho no buffer. Não existem informações de como esses bytes são traduzidos em caracteres, ficando essa tarefa com o programador. Não existem limitações sobre a composição dos valores da string; em particular, bytes com valor 0 (“NUL bytes”) são permitidos em qualquer lugar da string (entretanto, algumas funções, mencionadas neste manual como não “binary safe”, podem repassar as strings para bibliotecas que ignorem os dados após o byte nulo.)

Esta natureza do tipo string explica o motivo de não haver o tipo "byte" disponível no PHP – as strings assumem este papel. Funções que não retornam nenhuma informação textual – por exemplo, dados arbitrários lidos de um socket de rede – continuarão retornando strings.

Dado que o PHP não dita uma codificação específica para strings, pode-se questionar como strings literais seriam codificadas. Por exemplo, a string "á" é equivalente a "\xE1" (ISO-8859-1), "\xC3\xA1" (UTF-8, C form), "\x61\xCC\x81" (UTF-8, D form) ou qualquer outra representação possível? A resposta é que a string poderá ser codificada em qualquer forma que o arquivo de script estiver codificado. Assim, se o script for escrito na codificação ISO-8859-1, a string será codificada como ISO-8859-1 e assim por diante. Entretanto, isso não se aplica se o Zend Multibyte estiver ativado; neste caso, o script pode ser escrito em uma codificação arbitrária (que é declarada explicitamente ou é detectada) e então convertida em um codificação interna, a qual será a codificação utilizada nas strings literais. Note que há algumas restrições na codificação do script (ou na codificação interna caso o Zend Multibyte esteja ativo) – isso quase sempre significa que essa codificação deve ser um conjunto que contenha dentro de si a ASCII, como UTF-8 ou ISO-8859-1. Note, entretanto, que codificações que são dependentes de estado, onde os mesmos valores de bytes possam ser utilizados tanto em estados iniciais quanto não iniciais, podem ser problemáticos.

Claro que, para serem úteis, funções que operam em textos podem ter que fazer certas suposições sobre como as strings foram codificadas. Infelizmente, existem muitas variações sobre este assunto através das funções do PHP:

  • Algumas funções assumem que a string foi codificada em alguma (qualquer) codificação de byte único, mas elas não precisam interpretar estes bytes como caracteres específicos. Este é por exemplo o caso das funções substr(), strpos(), strlen() ou strcmp(). Outra forma de refletir sobre essas funções é que elas operam em buffers de memória, isto é, elas trabalham com bytes e deslocamento de bytes.
  • Outras funções recebem a codificação da string, possivelmente elas assumem um padrão se nenhuma informação lhes for passada. Este é o caso da função htmlentities() e da maioria das funções da extensão mbstring.
  • Outras utilizam o idioma atual (veja setlocale()), mas elas operam byte-a-byte.
  • Finalmente, elas podem simplesmente assumir que a string esteja utilizando uma codificação específica, geralmente UTF-8. Este é o caso da maioria das funções das extensões intl e PCRE (na segunda, somente quando o modificador u é utilizado).

Por fim, isso significa que escrever programas corretos utilizando Unicode depende de evitar cuidadosamente funções que não funcionam e que provavelmente irão corromper os dados e usar, em substituição, funções que se comportem corretamente, geralmente das extensões intl e mbstring. Entretanto, usar funções que manipulam codificações Unicode é somente o começo. Não importa as funções que a linguagem provê, é essencial saber a especificação Unicode. Por exemplo, um programa que supõem que só existem maiúsculas e mínusculas está fazendo uma suposição errada.


Strings numéricas

Uma string PHP é considerada numérica se puder ser interpretada como int ou float.

Formalmente a partir do PHP 8.0.0:

WHITESPACES      \s*
LNUM             [0-9]+
DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})

O PHP também tem um conceito de strings numéricas principais. Isso é simplesmente uma string que começa como uma string numérica seguida por qualquer caractere.

Nota:

Qualquer string que contenha a letra E (sem distinção entre maiúsculas e minúsculas) delimitada por números será vista como um número expresso em notação científica. Isso pode produzir resultados inesperados.

<?php
var_dump("0D1" == "000"); // falso, "0D1" não é notação científica
var_dump("0E1" == "000"); // verdadeiro, "0E1" é 0 * (10 ^ 1), ou 0
var_dump("2E1" == "020"); // verdadeiro, "2E1" é 2 * (10 ^ 1), ou 20
?>

Strings usadas em contextos numéricos

Quando uma string precisa ser avaliada como número (por exemplo, operações aritméticas, declaração de tipo int, etc.), as seguintes etapas são executadas para determinar o resultado:

  1. Se a string for numérica, resolva para um int se a string for uma string numérica inteira e se encaixar nos limites do tipo int (conforme definido por PHP_INT_MAX), caso contrário resolva para um float.
  2. Se o contexto permitir strings numéricas iniciais e a string for uma, resolva para um int se a parte inicial da string for uma string numérica inteira e se encaixar nos limites do tipo int (conforme definido por PHP_INT_MAX), caso contrário resolva para um float. Além disso, um erro de nível E_WARNING é gerado.
  3. A string não é numérica, lance um TypeError.

Comportamento antes do PHP 8.0.0

Antes do PHP 8.0.0, uma string era considerada numérica apenas se tivesse espaços em branco à esquerda, se tivesse espaços em branco à direita, a string era considerada numérica à esquerda.

Antes do PHP 8.0.0, quando uma string era usada em um contexto numérico, ela executava as mesmas etapas acima com as seguintes diferenças:

  • O uso de uma sequência numérica inicial geraria um E_NOTICE em vez de um E_WARNING.
  • Se a string não for numérica, um E_WARNING foi levantado e o valor 0 seria retornado.
Antes do PHP 7.1.0, nem E_NOTICE nem E_WARNING eram gerados.

<?php
$foo = 1 + "10.5"; // $foo é float (11.5)
$foo = 1 + "-1.3e3"; // $foo é float (-1299)
$foo = 1 + "bob-1.3e3"; // TypeError a partir do PHP 8.0.0, $foo é inteiro (1) anteriormente
$foo = 1 + "bob3"; // TypeError a partir do PHP 8.0.0, $foo é inteiro (1) anteriormente
$foo = 1 + "10 Small Pigs"; // $foo é inteiro (11) e um E_WARNING é levantado no PHP 8.0.0, E_NOTICE anteriormente
$foo = 4 + "10.2 Little Piggies"; // $foo é float (14.2) e um E_WARNING é levantado no PHP 8.0.0, E_NOTICE anteriormente
$foo = "10.0 pigs " + 1; // $foo é float (11) e um E_WARNING é levantado no PHP 8.0.0, E_NOTICE anteriormente
$foo = "10.0 pigs " + 1.0; // $foo é float (11) e um E_WARNING é levantado no PHP 8.0.0, E_NOTICE anteriormente
?>


Arrays

Um array no PHP é na verdade um mapa ordenado. Um mapa é um tipo que relaciona valores a chaves. Este tipo é otimizado para várias usos diferentes: ele pode ser tratado como um array, uma lista (vetor), hashtable (que é uma implementação de mapa), dicionário, coleção, pilha, fila e provavelmente mais. Assim como existe a possibilidade dos valores do array serem outros arrays, árvores e arrays multidimensionais.

A explicação dessas estruturas está além do escopo deste manual, mas pelo menos um exemplo é dado para cada uma delas. Para mais informações, busque a considerável literatura que existe sobre esse extenso tópico.

Sintaxe

Especificando com array()

Um array pode ser criado com o construtor de linguagem array(). Ele leva qualquer quantidade de pares separados por vírgula chave => valor como argumentos.

array(
    chave  => valor,
    chave2 => valor2,
    chave3 => valor3,
    ...
)

A vírgula após o último elemento do array é opcional e pode ser omitida. Isso geralmente é feito para arrays em uma única linha, por exemplo, array(1, 2) é preferível em vez de array(1, 2, ). Para arrays escritos em várias linhas, por outro lado, a vírgula à direita do último elemento é usada frequentemente, para permitir a adição de forma simples de novos elementos ao final.

Nota:

Existe uma sintaxe curta que substitui array() por [].

Exemplo #1 Um array simples

<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);

// Utilizando a sintaxe curta
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>

A chave pode ser um int ou uma string. O valor pode ser de qualquer tipo.

Adicionalmente, as seguintes coerções ocorrerão a chave:

  • strings contendo quaisquer ints válidos, que não sejam precedidos do sinal de +, serão convertidos para o tipo int. Por exemplo, a chave"8" será, na verdade, armazenada como 8. Entretanto, "08" não será convertido, por não ser um inteiro decimal válido.
  • floats também são convertidos para ints, isso significa que a parte fracionária será removida. Por exemplo, a chave 8.7 será na verdade armazenada como 8.
  • bools são convertidos para ints, igualmente, por exemplo, a chave true, será na verdade armazenada como 1 e a chave false como 0.
  • null será convertido para uma string vazia, por exemplo, a chave null na verdade será armazenada como "".
  • arrays e objects não podem ser usados como chaves. Fazer isso resultará em um aviso: Illegal offset type.

Se vários elementos na declaração do array utilizam a mesma chave, apenas o último será utilizado, enquanto todos os outros serão sobrescritos.

Exemplo #2 Exemplo de conversão de tipo e sobrescrita

<?php
$array = array(
1 => "a",
"1" => "b",
1.5 => "c",
true => "d",
);
var_dump($array);
?>

O exemplo acima produzirá:

array(1) {
  [1]=>
  string(1) "d"
}

Como todas as chaves do exemplo acima foram convertidas para 1, o valor será sobrescrito a cada novo elemento e o valor final atribuído "d", será o único que restará.

As chaves dos arrays no PHP podem conter, ao mesmo tempo, int e string, porque o PHP não faz distinção entre arrays indexados e associativos.

Exemplo #3 Misturando int e string nas chaves

<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
100 => -100,
-100 => 100,
);
var_dump($array);
?>

O exemplo acima produzirá:

array(4) {
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "foo"
  [100]=>
  int(-100)
  [-100]=>
  int(100)
}

A key é opcional. Se não for especificada, o PHP utilizará o incremento da chave do tipo int com maior valor utilizado.

Exemplo #4 Arrays indexados sem chaves

<?php
$array = array("foo", "bar", "hello", "world");
var_dump($array);
?>

O exemplo acima produzirá:

array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(5) "hello"
  [3]=>
  string(5) "world"
}

É possível especificar a chave somente para alguns elementos e omití-las para outros:

Exemplo #5 Chaves em alguns elementos

<?php
$array = array(
"a",
"b",
6 => "c",
"d",
);
var_dump($array);
?>

O exemplo acima produzirá:

array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [6]=>
  string(1) "c"
  [7]=>
  string(1) "d"
}

Como pode ver, o último valor "d" foi atribuído a chave 7. Isso acontece porque a chave com maior inteiro antes dela era 6.

Exemplo #6 Exemplo de sobrescrita e cast de tipo complexo

Este exemplo inclui todas as variações de cast de tipo de chaves e sobrescrita de elementos.

<?php
$array = array(
1 => 'a',
'1' => 'b', // o valor "a" será sobrescrito por "b"
1.5 => 'c', // o valor "b" será sobrescrito por "c"
-1 => 'd',
'01' => 'e', // não é uma string de inteiro e NÃO sobrescreve a chave 1
'1.5' => 'f', // não é uma string de inteiro e NÃO sobrescreve a chave 1
true => 'g', // o valor "c" será sobrescrito por "g"
false => 'h',
'' => 'i',
null => 'j', // o valor "i" será sobrescrito por "j"
'k', // o valor "k" será alocado na chave 2. Isto porque é o maior inteiro após a chave 1
2 => 'l', // o valor "k" será sobrescrito por "l"
);

var_dump($array);
?>

O exemplo acima produzirá:

array(7) {
  [1]=>
  string(1) "g"
  [-1]=>
  string(1) "d"
  ["01"]=>
  string(1) "e"
  ["1.5"]=>
  string(1) "f"
  [0]=>
  string(1) "h"
  [""]=>
  string(1) "j"
  [2]=>
  string(1) "l"
}

Acessando elementos do array com colchetes

Elementos do array podem ser acessados utilizando a sintaxe array[chave].

Exemplo #7 Acessando elementos do array

<?php
$array = array(
"foo" => "bar",
42 => 24,
"multi" => array(
"dimensional" => array(
"array" => "foo"
)
)
);

var_dump($array["foo"]);
var_dump($array[42]);
var_dump($array["multi"]["dimensional"]["array"]);
?>

O exemplo acima produzirá:

string(3) "bar"
int(24)
string(3) "foo"

Nota:

Anteriormente ao PHP 8.0.0, chaves e colchetes podiam ser utilizados para acessar elementos de um array (por exemplo, $array[42] e $array{42} irão fazer a mesma coisa que o exemplo anterior). O acesso por chaves foi descontinuado a partir do PHP 7.4.0 e não é mais suportado a partir do PHP 8.0.0.

Exemplo #8 Referenciando elemento de um array

<?php
function getArray() {
return array(1, 2, 3);
}

$secondElement = getArray()[1];
?>

Nota:

Tentativas de acesso a uma chave de array que não foi definida é o mesmo que acessar qualquer outra variável indefinida: uma mensagem de erro de nível E_WARNING (E_NOTICE anteriormente ao PHP 8.0.0) será emitida, e o resultado será null.

Nota:

Acessar um array através de uma chave que não é string retorna null. Anteriormente ao PHP 7.4.0 não era emitida uma mensagem. A partir do PHP 7.4.0 emite um E_NOTICE; e a partir do PHP 8.0.0 é emitido um E_WARNING.

Criando/modificando com a sintaxe de colchetes

Você pode também modificar um array existente explicitamente assimilando valores a ele.

Isto é feito apenas assimilando valores para o array enquanto especifica a chave em colchetes. Você pode omitir a chave, colocando um par vazio de colchetes ([]).

$arr[chave] = valor;
$arr[] = valor;
// chave pode ser tanto um int quanto uma string
// valor pode ser qualquer valor de qualquer tipo

Se $arr não existir ou estiver preenchido com or is set to null or false, será criado, servindo como alternativa para criação de um array. Entretanto, essa prática é desencorajada por que se $arr conter algum valor (por exemplo, uma string de uma variável de requisição), então este valor permanecerá e o [] funcionará como um operador de acesso a string. Sempre será recomendado a inicialização de uma variável por atribuição direta.

Nota: A partir do PHP 7.1.0, aplicar um operador de índice vazio a uma string lança um erro fatal. Antes, a string era silenciosamente convertida em um array.

Nota: A partir do PHP 8.1.0, criar um novo array a partir do valor false foi descontinuado. Crir um array a partir de null e valores indefinidos ainda é permitido.

Para mudar um certo valor, apenas atribua um novo valor para um elemento especificado por sua chave. Se você quiser remover um par chave/valor, você precisa aplicar a função unset() na chave.

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56; // Isto é o mesmo que $arr[13] = 56;
// nesse ponto do script

$arr["x"] = 42; // Isto acrescenta um novo elemento
// para o array com a chave "x"

unset($arr[5]); // Isto remove um elemento do array

unset($arr); // E isto apaga todo o array
?>

Nota:

Como mencionado acima, se nenhuma chave for especificada, o maior índice int é obtido, e a nova chave será esse o máximo + 1. Se nenhum índice int existir ainda, a chave será 0 (zero).

Note que a chave inteira de maior valor utilizada não precisa necessariamente existir no array. Ele precisa ter existido no array em algum momento desde sua última reindexação do array. Veja o seguinte exemplo:

<?php
// Criando um array normal
$array = array(1, 2, 3, 4, 5);
print_r($array);

// Agora apagando todos os itens, mas deixando o array intacto:
foreach ($array as $i => $value) {
unset($array[$i]);
}
print_r($array);

// Acrescentando um item (note que a chave é 5, em vez de zero).
$array[] = 6;
print_r($array);

// Reindexando:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

O exemplo acima produzirá:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

Desconstruindo arrays

Arrays podem ser desconstruídos utilizando [] (a partir do PHP 7.1.0) ou list(). Esses constructos podem ser utilizados para desconstruir o array em variáveis distintas.

<?php
$source_array = ['foo', 'bar', 'baz'];

[$foo, $bar, $baz] = $source_array;

echo $foo; // imprime "foo"
echo $bar; // imprime "bar"
echo $baz; // imprime "baz"
?>

A desconstrução de arrays pode ser utilizada no foreach para desconstruir um array multidimensional enquanto o percorre.

<?php
$source_array = [
[1, 'John'],
[2, 'Jane'],
];

foreach ($source_array as [$id, $name]) {
// Aqui $id e $name podem ser utilizados
}
?>

Elementos de arrays serão ignorados se a variável não for providenciada. Desconstrução de arrays sempre iniciam no índice 0.

<?php
$source_array = ['foo', 'bar', 'baz'];

// Atribui o elemento de índice 2 na variável $baz
[, , $baz] = $source_array;

echo $baz; // imprime "baz"
?>

A partir do PHP 7.1.0, é possível desconstruir arrays associativos. Isto permite fácil seleção do elemento correto de uma forma indexada numericamente dado que os índices podem ser especificados.

<?php
$source_array = ['foo' => 1, 'bar' => 2, 'baz' => 3];

// Atribui o elemento de índice 'baz' na variável $three
['baz' => $three] = $source_array;

echo $three; // imprime 3

$source_array = ['foo', 'bar', 'baz'];

// Atribui o elemento de índice 2 na variável $baz
[2 => $baz] = $source_array;

echo $baz; // imprime "baz"
?>

Desconstrução de arrays podem ser utilizados para trocar duas variáveis.

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

[$b, $a] = [$a, $b];

echo $a; // imprime 2
echo $b; // imprime 1
?>

Nota:

O operador de espalhamento (...) não é suportado em atribuições.

Nota:

Tentar acessar uma chave indefinida têm o mesmo efeito de acessar uma variável indefinida: um aviso E_WARNING (E_NOTICE anteriormente ao PHP 8.0.0) será emitido, e o resultado será null.

Funções úteis

Há uma série de funções úteis para trabalhar com arrays. Veja a seção sobre funções para arrays.

Nota:

A função unset() permite apagar chaves de um array. Esteja avisado que o array não será reindexado. Se um comportamento como "remover e deslocar" é o desejado, o array poderá ser reindexado utilizando a função array_values().

<?php
$a = array( 1 => 'um', 2 => 'dois', 3 => 'três' );
unset( $a[2] );
/* irá produzir um array que pode ser definido como
$a = array( 1=>'um', 3=>'três');
e NÃO
$a = array( 1 => 'um', 2 => 'três');
*/

$b = array_values($a);
// Agora $b é o array(0 => 'um', 1 =>'três')
?>

A estrutura de controle foreach existe especificamente para lidar com arrays. Ele provê uma maneira fácil de percorrer um array.

Array: faça e não faça

Porque $foo[bar] está errado?

Sempre utilize delimitadores em torno dos índices do array. Por exemplo, $foo['bar'] está correto, enquanto que $foo[bar], não está. Mas porque? É comum encontrar essa sintaxe em scripts antigos:

<?php
$foo[bar] = 'inimigo';
echo $foo[bar];
// etc
?>

Isto está errado, mas funciona. A razão é que este código possui uma constante indefinida (bar) em vez de uma string ('bar' - repare nas aspas simples). Isto funciona, porque o PHP converte automaticamente uma string base (uma string não delimitada que não corresponde a nenhum símbolo conhecido) em uma string que contém a string base. Por exemplo, se não existir uma constante definida com o nome bar, então o PHP irá substituí-la pela string 'bar' e usá-la.

Aviso

O fallback que trata uma constante indefinida como uma string lança um erro do nível E_NOTICE. Isso foi descontinuado desde o PHP 7.2.0, e lança um erro do nível E_WARNING. A partir do PHP 8.0.0, esse fallback foi removido e agora lança uma exceção Error.

Nota: Isto não significa que deve-se sempre delimitar as chaves. Não delimite chaves que sejam constantes ou variáveis, porque isso impedirá o PHP de interpretá-las.

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Arrays simples:
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
echo "\nVerificando $i: \n";
echo "Ruim: " . $array['$i'] . "\n";
echo "Bom: " . $array[$i] . "\n";
echo "Ruim: {$array['$i']}\n";
echo "Bom: {$array[$i]}\n";
}
?>

O exemplo acima produzirá:

Verificando 0:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Ruim:
Bom: 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Ruim:
Bom: 1

Verificando 1:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Ruim:
Bom: 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Ruim:
Bom: 2

Mais exemplos para demonstrar esse comportamento:

<?php
// Mostrando todos os erros
error_reporting(E_ALL);

$arr = array('fruta' => 'maçã', 'legume' => 'cenoura');

// Correto
print $arr['fruta']; // maçã
print $arr['legume']; // cenoura

// Errado. Isto funciona mas lança um erro PHP do
// nível E_NOTICE porque é utilizada uma constante indefinida (fruta)
//
// Repare: Quando utiliza-se a constante indefinida fruta, o PHP assume 'fruta'
print $arr[fruta]; // maçã

// Agora vamos definir uma constante para demonstrar o que pode acontecer. Nós
// vamos assimilar o valor 'legume' para a constante de nome fruta
define('fruta', 'legume');

// Observe a diferença agora
print $arr['fruit']; // maçã
print $arr[fruit]; // cenoura

// O exemplo seguinte é normal dentro de uma string. Constantes não são
// observadas dentro de strings e por isso nenhum E-NOTICE não é lançado aqui
print "Olá $arr[fruta]"; // Olá maçã

// Com uma exceção: chaves envolvendo arrays dentro de strings
// ativam a checagem de constantes, como em
print "Olá {$arr[fruta]}"; // Hello cenoura
print "Olá {$arr['fruta']}"; // Hello maçã

// E isso não funciona, resultando em um erro de interpretação do tipo:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Isso se aplica ao uso de superglobais em strings
print "Olá $arr['fruta']";
print "Olá $_GET['foo']";

// Nesse caso, use concatenação
print "Olá " . $arr['fruta']; // Olá maçã
?>

Quando a diretiva error_reporting for configurada para mostrar erros de nível E_NOTICE (configurando-a como E_ALL, por exemplo), se tornarão imediatamente visíveis. Por padrão, a diretiva error_reporting está configurada para não mostrar avisos.

Como especificado na seção sintaxe, o que estiver entre os colchetes ('[' e ']'), precisa ser uma expressão. Isso significa que códigos como estes funcionam:

<?php
echo $arr[algumafuncao($bar)];
?>

Isto é um exemplo de utilização de um valor de retorno de função como um índice de array. O PHP também aceita constantes:

<?php
$error_descriptions[E_ERROR] = "Um erro fatal ocorreu";
$error_descriptions[E_WARNING] = "O PHP emitiu um alarme";
$error_descriptions[E_NOTICE] = "Apenas um aviso informal";
?>

Note que E_ERROR também é um identificador válido, assim como bar no primeiro exemplo. Mas no último exemplo seria, na verdade, o mesmo que escrever:

<?php
$error_descriptions[1] = "Um erro fatal ocorreu";
$error_descriptions[2] = "O PHP emitiu um alarme";
$error_descriptions[8] = "Apenas um aviso informal";
?>

porque E_ERROR é igual a 1, e assim por diante.

Então porque isso é tão ruim?

Se em algum ponto do futuro, o time do PHP quiser acrescentar outra constante ou palavra chave, ou você mesmo introduzir outra constante na sua aplicação, você terá problemas. Por exemplo, já não se pode utilizar as palavras empty e default dessa maneira, desde que elas são palavras reservadas especiais.

Nota: Para reforçar, dentro de uma string delimitada por aspas duplas, é válido não englobar o índice do array com aspas simples, então "$foo[bar]" é válido. Veja os exemplos anteriores para detalhes assim como a seção sobre interpretação de variáveis em strings.

Convertendo para array

Para qualquer dos tipos: int, float, string, bool e resource, converter um valor para um array, resultará em um array com um único elemento com índice zero e valor escalar convertido. Em outras palavras, (array)$scalarValue é exatamente o mesmo que array($scalarValue).

Se um object é convertido para um array, o resultado será um array em que seus elementos serão as propriedades do object. As chaves serão os nomes das propriedades com pequenas notáveis exceções: propriedades inteiras serão inacessíveis; variáveis privadas tem o nome da classe prefixando o nome da variável; variáveis protegidas tem um '*' prefixando o nome da variável. Esses valores prefixados têm um byte NUL em cada lado. Propriedades tipadas não inicializadas são ignoradas.

<?php

class A {
private $B;
protected $C;
public $D;
function __construct()
{
$this->{1} = null;
}
}

var_export((array) new A());
?>

O exemplo acima produzirá:

array (
  '' . "\0" . 'A' . "\0" . 'B' => NULL,
  '' . "\0" . '*' . "\0" . 'C' => NULL,
  'D' => NULL,
  1 => NULL,
)

Esses NUL podem ocasionar comportamentos inesperados:

<?php

class A {
private $A; // Transformado na chave '\0A\0A'
}

class B extends A {
private $A; // Transformado na chave '\0B\0A'
public $AA; // Transformado na chave 'AA'
}

var_dump((array) new B());
?>

O exemplo acima produzirá:

array(3) {
  ["BA"]=>
  NULL
  ["AA"]=>
  NULL
  ["AA"]=>
  NULL
}

Acima aparecem duas chaves chamadas 'AA', embora uma delas é, na verdade, nomeada '\0A\0A'.

Converter um valor null para um array, você terá um array vazio.

Comparando

É possível comparar arrays utilizando a função array_diff() e com a utilização dos operadores de array.

Expansão de arrays

Um array prefixado com ... será expandido no local desse operador. Somente arrays e objetos que implementem Traversable podem ser expandidos. A expansão de arrays com ... está disponível desde o PHP 7.4.0.

É possível realizar a expansão várias vezes, e adicionar elementos antes ou depois do operador...:

Exemplo #9 Expansão de arrays

<?php
// Utilizando a sintaxe curta.
// Também funciona com a sintax array().
$arr1 = [1, 2, 3];
$arr2 = [...$arr1]; //[1, 2, 3]
$arr3 = [0, ...$arr1]; //[0, 1, 2, 3]
$arr4 = [...$arr1, ...$arr2, 111]; //[1, 2, 3, 1, 2, 3, 111]
$arr5 = [...$arr1, ...$arr1]; //[1, 2, 3, 1, 2, 3]

function getArr() {
return ['a', 'b'];
}
$arr6 = [...getArr(), 'c' => 'd']; //['a', 'b', 'c' => 'd']
?>

Expandir um array com ... segue a semântica da função array_merge(). Ou seja, chaves strings sobrescrevem valores antigo e chaves inteiros são renumerados:

Exemplo #10 Expansão de arrays com chaves duplicadas

<?php
// string key
$arr1 = ["a" => 1];
$arr2 = ["a" => 2];
$arr3 = ["a" => 0, ...$arr1, ...$arr2];
var_dump($arr3); // ["a" => 2]

// integer key
$arr4 = [1, 2, 3];
$arr5 = [4, 5, 6];
$arr6 = [...$arr4, ...$arr5];
var_dump($arr6); // [1, 2, 3, 4, 5, 6]
// Que resulta em [0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6]
// pois as chaves inteiras anteriores não são preservadas.
?>

Nota:

Chaves que não sejam inteiros ou strings lançam um TypeError. Essas chaves podem ser geradas por um objeto Traversable.

Nota:

Anteriormente ao PHP 8.1, expansão de arrays com chave string não era suportado:

<?php

$arr1 = [1, 2, 3];
$arr2 = ['a' => 4];
$arr3 = [...$arr1, ...$arr2];
// Fatal error: Uncaught Error: Cannot unpack array with string keys in example.php:5

$arr4 = [1, 2, 3];
$arr5 = [4, 5];
$arr6 = [...$arr4, ...$arr5]; // works. [1, 2, 3, 4, 5]
?>

Exemplos

O tipo array do PHP é muito versátil. Temos aqui alguns exemplos:

<?php
// Isso:
$a = array( 'color' => 'red',
'taste' => 'sweet',
'shape' => 'round',
'name' => 'apple',
4 // key will be 0
);

$b = array('a', 'b', 'c');

// é equivalente a isso:
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name'] = 'apple';
$a[] = 4; // a chave será 0

$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';

// Após a execução do código acima, $ será o array
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4), e $b será o array
// array(0 => 'a', 1 => 'b', 2 => 'c'), ou simplesmente array('a', 'b', 'c').
?>

Exemplo #11 Utilizando array()

<?php
// Array como (propriedade-)mapa
$map = array( 'versao' => 4,
'OS' => 'Linux',
'lang' => 'inglês',
'short_tags' => true
);

// apenas chaves numéricas
$array = array( 7,
8,
0,
156,
-10
);
// que é o mesmo que array( 0 => 7, 1 => 8, ...)

$switching = array( 10, // chave = 0
5 => 6,
3 => 7,
'a' => 4,
11, // chave = 6 (o índice máximo era 5)
'8' => 2, // chave = 8 (inteiro!)
'02' => 77, // chave = '02'
0 => 12 // o valor 10 será sobrescrito por 12
);

// array vazio
$empty = array();
?>

Exemplo #12 Coleção

<?php
$cores = array('vermelho', 'azul', 'verde', 'amarelo');

foreach ($cores as $cor) {
echo "Você gosta de $cor?\n";
}

?>

O exemplo acima produzirá:

Você gosta de vermelho?
Você gosta de azul?
Você gosta de verde?
Você gosta de amarelo?

É possível alterar diretamente os valores de um array passando-os como referência.

Exemplo #13 Alterando valores em um laço

<?php
foreach ($colors as &$color) {
$color = mb_strtoupper($color);
}
unset($color); /* ensure that following writes to
$color will not modify the last array element */

print_r($colors);
?>

O exemplo acima produzirá:

Array
(
    [0] => RED
    [1] => BLUE
    [2] => GREEN
    [3] => YELLOW
)

Este exemplo cria um array na base 1.

Exemplo #14 Array baseado em 1

<?php
$primeiroquarto = array(1 => 'Janeiro', 'Fevereiro', 'Março');
print_r($primeiroquarto);
?>

O exemplo acima produzirá:

Array
(
    [1] => 'Janeiro'
    [2] => 'Fevereiro'
    [3] => 'Março'
)

Exemplo #15 Preenchendo um array

<?php
// preenchendo um array com todos os itens de um diretório
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
closedir($handle);
?>

arrays são ordenados. A ordem pode ser modificada utilizando várias funções de ordenação. Veja a seção de funções de arrays para mais informações. A função count() pode ser utilizada para contar o número de itens em um array.

Exemplo #16 Ordenando arrays

<?php
sort($files);
print_r($files);
?>

Como o valor de um array pode ser qualquer coisa, isso significa que também poderá ser outro array. Isso habilita a criação de arrays recursivos e multidimensionais.

Exemplo #17 Arrays recursivos e multidimensionais

<?php
$fruits = array ( "frutas" => array ( "a" => "laranja",
"b" => "banana",
"c" => "maçã"
),
"numeros" => array ( 1,
2,
3,
4,
5,
6
),
"buracos" => array ( "primeiro",
5 => "segundo",
"terceiro",
)
);

// Alguns exemplo de endereços dos valores do array acima
echo $fruits["buracos"][5]; // imprime "segundo"
echo $fruits["frutas"]["a"]; // imprime "laranja"
unset($fruits["buracos"][0]); // remove "primeiro"

// Criando um novo array multidimensional
$sucos["maca"]["verde"] = "bom";
?>

Atribuições de array sempre envolvem cópias de valores. Use o operador de referência para copiar um array por referência.

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 é modificado,
// $arr1 continua sendo apenas array(2, 3)

$arr3 = &$arr1;
$arr3[] = 4; // agora $arr1 e $arr3 sao os mesmos
?>


Objetos

Inicialização de objetos

Para criar um novo object, utilize a instrução new para instanciar uma classe:

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

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

Para uma discussão completa, veja o capítulo Classes e Objetos.

Convertendo para objetos

Se um object é convertido para um object, ele não é modificado. Se um valor de qualquer outro tipo é convertido para um object, uma nova instância da classe interna stdClass é criada. Se o valor for null, a nova instância será vazia. Um array é convertido para um object com as propriedades nomeadas pelas chaves e os valores correspondentes, com exceção de chaves numéricas que ficarão inacessíveis a menos que sejam iteradas.

<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // exibe 'bool(true)' a partir do PHP 7.2.0; antes exibia 'bool(false)'
var_dump(key($obj)); // exibe 'string(1) "1"' a partir do PHP 7.2.0; antes exibia 'int(1)'
?>

Para qualquer outro valor, uma propriedade chamada scalar conterá o valor.

<?php
$obj = (object) 'ciao';
echo $obj->scalar; // exibe 'ciao'
?>


Enumerations

(PHP 8 >= 8.1.0)

Enumerações Básicas

Enumerations são uma camada de restrição sobre classes e constantes de classe, destinadas a fornecer uma maneira de definir um conjunto fechado de valores possíveis para um tipo.

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

function do_stuff(Suit $s)
{
// ...
}

do_stuff(Suit::Spades);
?>

Para uma discussão completa, consulte o capítulo Enumerations.

Casting

Se um enum for convertido em um object, ele não será modificado. Se um enum for convertido em um array, será criado um array com uma única chave de name (para enumerations puras) ou um array com chaves name e value (para enumerations com backup). Todos os outros tipos de conversão resultarão em erro.


Recursos

Um resource é uma variável especial, que mantém uma referência a um recurso externo. Recursos são criados e usados por funções especiais. Veja o apêndice para uma lista de todas essas funções e seus tipos resource correspondentes.

Veja também a função get_resource_type().

Convertendo para recurso

Como as variáveis resource mantém manipuladores especiais para arquivos abertos, conexões de bancos de dados, canvas de imagens e coisas do tipo, converter para resource não faz sentido algum.

Liberando recursos

Graças ao sistema de contagem de referência introduzido com a Engine da Zend, um resource sem referências é detectado automaticamente, e liberado pelo coletor de lixo. Por esta razão, é rara a necessidade de liberação de memória manualmente.

Nota: Conexões persistentes de bancos são exceções a regra. Elas não são destruídas pelo coletor de lixo. Veja também a seção conexões persistentes para mais informações.


Callbacks / Callables

Callbacks podem ser representadas pela declaração de tipo callable.

Algumas funções como call_user_func() ou usort() aceitam funções de callback definidas pelo usuário como parâmetro. Funções de callback não precisam ser apenas funções simples, mas também métodos de objects, incluindo os estáticos.

Passagem por parâmetro

Uma função PHP é passada através do seu nome como uma string. Qualquer função interna
ou definida pelo usuário pode ser utilizada, com exceção dos construtores de linguagem como:
array(), echo,
empty(), eval(),
exit(), isset(),
list(), print ou
unset().

Um método de um object instanciado é passado como um array contendo um object no índice 0 e o nome do método no índice 1. Acessar métodos protegidos e privados de uma classe é permitido.

Métodos estáticos também podem ser passados sem a instância de um object dessa classe ao passar um nome da classe em vez de um object no índice 0, ou passando 'ClassName::methodName'.

Além de funções comuns definidas pelo usuário, funções anônimas e arrow functions também podem ser passadas como um parâmetro de callback.

Nota:

A partir do PHP 8.1.0, funções anônimas também podem ser criadas usando a sintaxe de callable de primeira classe.

Geralmente, qualquer objeto implementando __invoke() também pode ser passado para um parâmetro callback.

Exemplo #1 Exemplos de funções de callback

<?php

// Exemplo de função de callback
function minha_funcao_callback() {
echo 'olá mundo!';
}

// Exemplo de método de callback
class MinhaClasse {
static function meuMetodoCallback() {
echo 'Olá Mundo!';
}
}

// Tipo 1: Calback simples
call_user_func('minha_funcao_callback');

// Tipo 2: Chamada a métodos estáticos
call_user_func(array('MinhaClasse', 'meuMetodoCallback'));

// Tipo 3: Chamada a métodos de objetos
$obj = new MinhaClasse();
call_user_func(array($obj, 'meuMetodoCallback'));

// Tipo 4: Chamada a métodos estáticos
call_user_func('MinhaClasse::meuMetodoCallback');

// Tipo 5: Chamada relativa a métodos estáticos
class A {
public static function quem() {
echo "A\n";
}
}

class B extends A {
public static function quem() {
echo "B\n";
}
}

call_user_func(array('B', 'parent::quem')); // A, descontinuado a partir do PHP 8.2.0

// Type 6: Objetos que implementam __invoke podem ser utilizados como callables
class C {
public function __invoke($nome) {
echo 'Olá ', $nome, "\n";
}
}

$c = new C();
call_user_func($c, 'PHP!');
?>

Exemplo #2 Exemplo de Callback utilizando uma Closure

<?php
// Nossa closure
$double = function($a) {
return $a * 2;
};

// Esta é a série de números
$numbers = range(1, 5);

// O uso da closure aqui para
// dobrar o valor de cada elemento de nossa
// série
$new_numbers = array_map($double, $numbers);

print implode(' ', $new_numbers);
?>

O exemplo acima produzirá:

2 4 6 8 10

Nota:

Callbacks registrados com funções como call_user_func() e call_user_func_array() não serão chamados se houver uma exceção não capturada que foi lançada em um callback anterior.


Mixed

O tipo mixed aceita todos os valores. É equivalente ao tipo de união object|resource|array|string|float|int|bool|null. Disponível a partir do PHP 8.0.0.

mixed é, na linguagem da teoria dos tipos, o tipo universal. O que significa que todos os outros tipos são um subtipo dele.


Void

void é uma declaração de tipo de retorno indicando que a função não retorna um valor, mas a função ainda pode terminar. Portanto, não pode fazer parte de uma declaração de tipo de união. Disponível a partir do PHP 7.1.0.

Nota: Mesmo que uma função tenha um tipo de retorno void, ela ainda retornará um valor, esse valor é sempre null.


Never

never é um tipo de retorno que indica que a função não termina. Isso significa que a função chama exit(), lança uma exceção ou é um loop infinito. Portanto, não pode fazer parte de uma declaração de tipo de união. Disponível a partir do PHP 8.1.0.

never é, na linguagem da teoria dos tipos, o tipo inferior. O que significa que é o subtipo de todos os outros tipos e pode substituir qualquer outro tipo de retorno durante a herança.


Tipos de classes relativas

Essas declarações de tipos só podem ser usadas dentro de classes.

self

O valor deve ser uma instanceof da mesma classe daquela em que a declaração de tipo é usada.

parent

O valor deve ser uma instanceof de um pai da classe na qual a declaração de tipo é usada.

static

static é um tipo somente de retorno que requer que o valor retornado seja uma instanceof da mesma classe em que o método é chamado. Disponível a partir do PHP 8.0.0.


Tipos de valor

Tipos de valor são aqueles que não só verificam o tipo de um valor mas também o próprio valor. PHP tem suporte para dois tipos de valor: false a partir do PHP 8.0.0, e true a partir do PHP 8.2.0.

Aviso

Antes do PHP 8.2.0 o tipo false só podia ser usado como parte de um tipo união.

Nota: Não é possível definir tipos de valor customizados. Considere usar enumerações como alternativa.


Iteráveis

Iterable é um alias de tipo de tempo de compilação integrado para array|Traversable. Desde sua introdução no PHP 7.1.0 e antes do PHP 8.2.0, iterable era um pseudotipo integrado que atuava como o alias de tipo mencionado anteriormente e pode ser usado como uma declaração de tipo. Um tipo iterable pode ser usado em foreach e com yield from de dentro de um gerador.

Nota:

As funções que declaram iterable como um tipo de retorno também podem ser geradoras.

Exemplo #1 Exemplo de tipo de retorno do gerador iterable

<?php

function gen(): iterable {
yield 1;
yield 2;
yield 3;
}

?>


Declarações de tipo

As declarações de tipo podem ser adicionadas a argumentos de função, valores de retorno e, a partir do PHP 7.4.0, propriedades de classe. Eles garantem que o valor seja do tipo especificado no momento da chamada, caso contrário, um TypeError é lançado.

Cada tipo que o PHP suporta, com exceção de resource, pode ser usado dentro de uma declaração de tipo de usuário. Esta página contém um changelog de disponibilidade dos diferentes tipos e documentação sobre o uso deles em declarações de tipo.

Nota:

Quando uma classe implementa um método de interface ou reimplementa um método já definido por uma classe pai, ela deve ser compatível com a definição acima. Um método é compatível se segue as regras de variância.

Registro de Alterações

Versão | Descrição
8.3.0 | Suporte à constantes em classes, interfaces, traits e enums foi adicionado.
8.2.0 | O suporte para tipos DNF foi adicionado.
8.2.0 | O suporte para o tipo literal true foi adicionado.
8.2.0 | Os tipos null e false agora podem ser usados de forma independente.
8.1.0 | O suporte para tipos de interseção foi adicionado.
8.1.0 | Retornar por referência de uma função void agora foi descontinuado.
8.1.0 | O suporte para o tipo somente retorno never foi adicionado.
8.0.0 | O suporte para mixed foi adicionado.
8.0.0 | O suporte para o tipo de retorno apenas static foi adicionado.
8.0.0 | O suporte para tipos de união foi adicionado.
7.4.0 | Suporte para propriedades tipadas foi adicionado.
7.2.0 | Suporte para object foi adicionado.
7.1.0 | Suporte para iterable foi adicionado.
7.1.0 | Suporte para void foi adicionado.
7.1.0 | O suporte para tipos anuláveis foi adicionado.

Notas de uso em tipos atômicos

Os tipos atômicos têm um comportamento direto com algumas ressalvas menores que são descritas nesta seção.

Tipos escalares

Aviso

Aliases de nome para tipos escalares (bool, int, float, string) não são suportados. Em vez disso, eles são tratados como nomes de classe ou interface. Por exemplo, usar boolean como uma declaração de tipo exigirá que o valor seja uma instanceof da classe ou interface boolean, em vez do tipo bool:

<?php
function test(boolean $param) {}
test(true);
?>

Saída do exemplo acima no PHP 8:

Warning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2

Fatal error: Uncaught TypeError: test(): Argument #1 ($param) must be of type boolean, bool given, called in - on line 3 and defined in -:2
Stack trace:
#0 -(3): test(true)
#1 {main}
  thrown in - on line 2

void

Nota:

Retornar por referência de uma função void foi descontinuado a partir do PHP 8.1.0, porque tal função é contraditória. Anteriormente, ele já emitia o seguinte E_NOTICE quando chamado: Only variable references should be returned by reference.

<?php
function &test(): void {}
?>

Tipos que podem ser chamados

Este tipo não pode ser usado como uma declaração de tipo de propriedade de classe.

Nota: Não é possível especificar a assinatura da função.

Declarações de tipo em parâmetros de passagem por referência

Se um parâmetro de passagem por referência tiver uma declaração de tipo, o tipo da variável é somente verificado na entrada da função, no início da chamada, mas não quando a função retorna. Isso significa que uma função pode alterar o tipo de referência de variável.

Exemplo #1 Parâmetros de passagem por referência digitados

<?php
function array_baz(array &$param)
{
$param = 1;
}
$var = [];
array_baz($var);
var_dump($var);
array_baz($var);
?>

O exemplo acima produzirá algo semelhante a:

int(1)

Fatal error: Uncaught TypeError: array_baz(): Argument #1 ($param) must be of type array, int given, called in - on line 9 and defined in -:2
Stack trace:
#0 -(9): array_baz(1)
#1 {main}
  thrown in - on line 2

Notas de Uso de Tipos Compostos

As declarações de tipo composto estão sujeitas a algumas restrições e realizarão uma verificação de redundância no tempo de compilação para evitar erros simples.

Cuidado

Antes do PHP 8.2.0 e da introdução dos tipos DNF, não era possível combinar tipos de interseção com tipos de união.

Uniao de tipos

Aviso

Não é possível combinar os dois valores false e true juntos em um tipo de união. Em vez disso, use bool.

Cuidado

Antes do PHP 8.2.0, como false e null não podiam ser usados como tipos autônomos, um tipo de união composto apenas por esses tipos não era permitido. Isso inclui os seguintes tipos: false, false|null, e ?false.

Açúcar sintático de tipo anulável

Uma única declaração de tipo base pode ser marcada como anulável prefixando o tipo com um ponto de interrogação (?). Assim, ?T e T|null são idênticos.

Nota: Esta sintaxe é suportada a partir do PHP 7.1.0, e é anterior ao suporte generalizado de tipos de união.

Nota:

Também é possível obter argumentos anuláveis tornando null o valor padrão. Isso não é recomendado, pois se o valor padrão for alterado em uma classe filha, uma violação de compatibilidade de tipo será gerada, pois o tipo null precisará ser adicionado à declaração de tipo.

Exemplo #2 Maneira antiga de tornar os argumentos anuláveis

<?php
class C {}

function f(C $c = null) {
var_dump($c);
}

f(new C);
f(null);
?>

O exemplo acima produzirá:

object(C)#1 (0) {
}
NULL

Tipos duplicados e redundantes

Para capturar bugs simples em declarações de tipo composto, tipos redundantes que podem ser detectados sem executar o carregamento de classe resultarão em um erro de tempo de compilação. Isso inclui:

  • Cada tipo resolvido por nome pode ocorrer apenas uma vez. Tipos como int|string|INT ou Countable&Traversable&COUNTABLE resultam em erro.
  • O uso mixed resulta em erro.
  • Para tipos de união:
    • Se bool for usado, false ou true não pode ser usado adicionalmente.
    • Se object for usado, os tipos de classe não podem ser usados adicionalmente.
    • Se iterable for usado, array e Traversable não podem ser usados adicionalmente.
  • Para interseção de tipos:
    • Usar um tipo que não é um tipo de classe resulta em erro.
    • O uso de self, parent ou static resulta em erro.
  • Para tipos DNF:
    • Se um tipo mais genérico for usado, o mais restritivo será redundante.
    • Usando dois tipos de interseção idênticos.

Nota: Isso não garante que o tipo seja “mínimo”, porque isso exigiria o carregamento de todos os tipos de classe usados.

Por exemplo, se A e B são aliases de classe, A|B continua sendo um tipo de união legal, mesmo que possa ser reduzido a A ou B. Da mesma forma, se a classe B extends A {}, A|B também é um tipo de união legal, embora pudesse ser reduzida a apenas A.

<?php
function foo(): int|INT {} // Proibido
function foo(): bool|false {} // Proibido
function foo(): int&Traversable {} // Proibido
function foo(): self&Traversable {} // Proibido

use A as B;
function foo(): A|B {} // Não permitido ("use" faz parte da resolução de nomes)
function foo(): A&B {} // Não permitido ("use" faz parte da resolução de nomes)

class_alias('X', 'Y');
function foo(): X|Y {} // Permitido (a redundância só é conhecida em tempo de execução)
function foo(): X&Y {} // Permitido (a redundância só é conhecida em tempo de execução)
?>

Exemplos

Exemplo #3 Declaração de tipo de classe básica

<?php
class C {}
class D extends C {}

// Isso não estende C.
class E {}

function f(C $c) {
echo get_class($c)."\n";
}

f(new C);
f(new D);
f(new E);
?>

Saída do exemplo acima no PHP 8:

C
D

Fatal error: Uncaught TypeError: f(): Argument #1 ($c) must be of type C, E given, called in /in/gLonb on line 14 and defined in /in/gLonb:8
Stack trace:
#0 -(14): f(Object(E))
#1 {main}
  thrown in - on line 8

Exemplo #4 Declaração de tipo de interface básica

<?php
interface I { public function f(); }
class C implements I { public function f() {} }

// Isso não implementa I.
class E {}

function f(I $i) {
echo get_class($i)."\n";
}

f(new C);
f(new E);
?>

Saída do exemplo acima no PHP 8:

C

Fatal error: Uncaught TypeError: f(): Argument #1 ($i) must be of type I, E given, called in - on line 13 and defined in -:8
Stack trace:
#0 -(13): f(Object(E))
#1 {main}
  thrown in - on line 8

Exemplo #5 Declaração de tipo de retorno básico

<?php
function sum($a, $b): float {
return $a + $b;
}

// Observe que um float será retornado.
var_dump(sum(1, 2));
?>

O exemplo acima produzirá:

float(3)

Exemplo #6 Retornando um objeto

<?php
class C {}

function getC(): C {
return new C;
}

var_dump(getC());
?>

O exemplo acima produzirá:

object(C)#1 (0) {
}

Exemplo #7 Declaração de tipo de argumento anulável

<?php
class C {}

function f(?C $c) {
var_dump($c);
}

f(new C);
f(null);
?>

O exemplo acima produzirá:

object(C)#1 (0) {
}
NULL

Exemplo #8 Declaração de tipo de retorno anulável

<?php
function get_item(): ?string {
if (isset($_GET['item'])) {
return $_GET['item'];
} else {
return null;
}
}
?>

Exemplo #9 Declaração de tipo de propriedade

<?php
class User {
public static string $foo = 'foo';

public int $id;
public string $username;

public function __construct(int $id, string $username) {
$this->id = $id;
$this->username = $username;
}
}
?>

Tipagem estrita

Por padrão, o PHP forçará valores do tipo errado na declaração de tipo escalar esperada, se possível. Por exemplo, uma função que recebe um int para um parâmetro que espera uma string obterá uma variável do tipo string.

É possível ativar o modo estrito por arquivo. No modo estrito, apenas um valor correspondente exatamente à declaração do tipo será aceito, caso contrário, um TypeError será lançado. A única exceção a essa regra é que um valor int passará por uma declaração do tipo float.

Aviso

Chamadas de função dentro de funções internas não serão afetadas pela declaração strict_types.

Para habilitar o modo estrito, a declare é usada com a declaração strict_types:

Nota:

A digitação estrita se aplica a chamadas de função feitas de dentro do arquivo com tipagem estrita habilitada, não para as funções declaradas dentro desse arquivo. Se um arquivo sem tipagem estrita habilitada fizer uma chamada para uma função que foi definida em um arquivo com tipagem estrita, a preferência do chamador (tipagem coercitiva) será respeitada e o valor será convertido.

Nota:

A tipagem estrita é definida apenas para declarações de tipo escalar.

Exemplo #10 Tipagem estrita para valores de argumentos

<?php
declare(strict_types=1);

function sum(int $a, int $b) {
return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1.5, 2.5));
?>

Saída do exemplo acima no PHP 8:

int(3)

Fatal error: Uncaught TypeError: sum(): Argument #1 ($a) must be of type int, float given, called in - on line 9 and defined in -:4
Stack trace:
#0 -(9): sum(1.5, 2.5)
#1 {main}
  thrown in - on line 4

Exemplo #11 Tipagem coercitiva para valores de argumento

<?php
function sum(int $a, int $b) {
return $a + $b;
}

var_dump(sum(1, 2));

// Estes serão convertidos em números inteiros: observe a saída abaixo!
var_dump(sum(1.5, 2.5));
?>

O exemplo acima produzirá:

int(3)
int(3)

Exemplo #12 Tipagem estrita para valores de retorno

<?php
declare(strict_types=1);

function sum($a, $b): int {
return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1, 2.5));
?>

O exemplo acima produzirá:

int(3)

Fatal error: Uncaught TypeError: sum(): Return value must be of type int, float returned in -:5
Stack trace:
#0 -(9): sum(1, 2.5)
#1 {main}
  thrown in - on line 5


Conversão automática de tipos

O PHP não requer a tipagem explícita em declarações de variáveis. Nesse caso, o tipo de uma variável é determinado pelo valor armazenado. Ou seja, se uma string é armazenada numa variável $var, então $var terá o tipo string. Se após isso um valor int value é armazenado em $var, ele será do tipo int.

O PHP pode tentar converter o tipo de um valor em outro, automaticamente, em alguns contextos. Esses contextos são:

  • Numérico
  • String
  • Lógico
  • Inteiro e string
  • Comparação
  • Função

Nota: Quando um valor precisa ser interpretado como um tipo diferente, o valor em si não se altera, apenas uma "cópia" é convertido.

Para forçar uma variável ser avaliada como um certo tipo, veja a seção Conversão de tipo. Se desejar mudar o tipo de uma variável, veja a função settype().

Contexto numérico

Esse é contexto quando da utilização de operadores aritméticos.

Esse contexto ocorre se um dos operandos é um float (e não interpretável como int), se ambos os operandos são interpretados como float, ou se o resultado é um float. Se não, se os operandos são interpretados como int, ou o resultado é um int. A partir do 8.0.0, se um dos operandos não pode ser reinterpretado, um erro do tipo TypeError é lançado.

Contextos string

Esse contexto ocorre ao se utilizar echo, print, interpolação de strings, o operador de concatenação.

Nesse contexto, o valor será interpretado como string. Se o valor não puder ser interpretado, então TypeError é lançado. Anteriormente ao 7.4.0, um alerta E_RECOVERABLE_ERROR era emitido.

Contextos lógicos

Este contexto ocorre em instruções condicionais, no uso do operador ternário, ou em uma operação lógica.

Nesse contexto, o valor será interpretado como bool.

Contextos inteiros e string

Este contexto ocorre quando utilizando operadores bitwise.

Este contexto ocorre se todos os operandos são do tipo string, ou o valor retornado é string. Se não, os operados são interpretados como int, ou o resultado é um int. A partir do PHP 8.0.0, se um dos operandos não puder ser reinterpretado, então TypeError é lançado.

Contextos de comparação

Este contexto ocorre quando utilizando operadores de comparação.

As conversões de tipo que ocorrem nesse contexto são explicados na tabela de sobre comparação entre vários tipos, explicadas aqui.

Contextos de função

Este contexto ocorre quando um valor é um parâmetro tipado, ou quando uma propriedade ou valor retornado de uma função declara um tipo.

Nesse contexto, o valor precisa do tipo informado. Duas alternativas existem. A primeira: se o valor é do tipo int e o tipo declarado é float, então o inteiro é convertido num número de ponto flutuante. A segunda alternativa: se o tipo declarado é um escalar, e o valor é conversível no tipo escalar, juntamente com o modo de conversão coercivo no estado ativo (o padrão), o valor pode ser convertido no valor escalar. Veja abaixo uma descrição detalhada desse comportamento.

Aviso

Funções internas convertem automaticamente null para tipos escalares, mas mas esse comportamento foi DESCONTINUADO desde o PHP 8.1.0.

Coerção de tipos com tipos declarados

  • Declaração bool: o valor é convertido para bool.
  • Declaração int: o valor é convertido para int quando a conversão for bem definida. Por exemplo, quando uma string é numérica.
  • Declaração float: o valor é convertido para float quando a conversão for bem definida. Por exemplo, quando uma string é numérica.
  • Declaração string: o valor é convertido para string.

Conversão de tipos em tipos union

Quando strict_types está desativado, declarações de tipos escalares estão sujeitas a conversões implícitas e limitadas. Se o tipo exato do valor não é parte da união, então o tipo final da conversão é escolhido na seguinte ordem de preferência:

  1. int
  2. float
  3. string
  4. bool
Se o tipo existe na união e o valor puder ser convertido pela mesma semântica do PHP, então esse tipo é escolhido. Senão, um tipo seguinte é tentado.

Cuidado

Existe uma exceção, no caso do valor ser uma string, e ambos int e float serem partes da união, o tipo preferido será determinado pela semântica de strings numéricas. Por exemplo, para "42" o tipo int é escolhido, enquanto que para "42.0" o tipo escolhido é float.

Nota:

Tipos que não são parte da lista acima não são elegíveis para destinos da conversão implícita. Em particular, não existem conversões implícitas para os tipos null, false e true.

Exemplo #1 Exemplo de tipos que podem ser convertidos em tipos union

<?php
// int|string
42 --> 42 // tipo exato
"42" --> "42" // tipo exato
new ObjectWithToString --> "Resultado de __toString()"
// e objero não compatível com int, padrão para string
42.0 --> 42 // float compatível com int
42.1 --> 42 // float compatível com int
1e100 --> "1.0E+100" // float muito grande para int, padrão para string
INF --> "INF" // float muito grande para int, padrão para string
true --> 1 // bool compatível com int
[] --> TypeError // array não é compatível com int ou string

// int|float|bool
"45" --> 45 // string numérica int
"45.0" --> 45.0 // string numérica float

"45X" --> true // string não numérica, padrão para bool
"" --> false // string não numérica, padrão para bool
"X" --> true // string não numérica, padrão para bool
[] --> TypeError // array não é compatível com int, float ou bool
?>

Conversão explícita (cast)

Converte o valor do tipo para o tipo escolhido através da escrita do tipo entre parênteses, antes do valor a ser convertido.

<?php
$foo = 10; // $foo é int
$bar = (bool) $foo; // $bar é bool
?>

As conversões previstas são:

  • (int) - converte para int
  • (bool) - converte para bool
  • (float) - converte para float
  • (string) - converte para string
  • (array) - converte para array
  • (object) - converte para object
  • (unset) - converte para NULL

Nota:

(integer) converte igual a (int). (boolean) converte igual a (bool). (binary) converte igual a (string). (double) e (real) converte igual a (float). Esses casts alternativas não são recomendados, ainda que existentes.

Aviso

O cast (real) foi descontinuado desde o PHP 8.0.0.

Aviso

O cast (unset) foi descontinuado desde o PHP 7.2.0. Note que o cast (unset) tem o mesmo efeito que informar o valor NULL para a variável ou chamada de função. O cast (unset) foi removido no PHP 8.0.0.

Cuidado

O cast (binary) e prefixo b ainda existem para compatibilidade. Atualmente (binary) e (string) são idênticos, no entanto isso pode mudar e não deve ser considera estável

Nota:

Espaços são ignorados dentro dos parênteses de um cast. Portanto, as linhas seguintes são equivalentes:

<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

Convertendo string e variáveis para strings binárias:

<?php
$binary = (binary) $string;
$binary = b"binary string";
?>

Nota: Em vez de converter uma variável para string, é possível empacotar a variável dentro de aspas.

<?php
$foo = 10; // $foo é int
$str = "$foo"; // $str é string
$fst = (string) $foo; // $fst também é string

// Isto imprive "são iguais"
if ($fst === $str) {
echo "são iguais";
}
?>

Não é tão óbvio o que acontece quando convertendo entre certos tipos. Para mais informações, veja as seções:

  • Convertendo para boolean
  • Convertendo para integer
  • Convertendo para float
  • Convertendo para string
  • Convertendo para array
  • Convertendo para object
  • Convertendo para resource
  • Convertendo para NULL
  • A tabela de conversão de tipos

Nota: O PHP suporta a indexação de string utilizando a mesma sintaxe de arrays, de forma que o exemplo seguinte é válido em todas as versões do PHP:

<?php
$a = 'car'; // $a é uma string
$a[0] = 'b'; // $a ainda é uma string
echo $a; // bar
?>
Veja a seção sobre Acesso a caracteres da string para mais informações.


Variáveis

Índice

  • Básico
  • Variáveis Predefinidas
  • Escopo de variáveis
  • Variáveis variáveis
  • Variáveis de fontes externas


Básico

As variáveis no PHP são representadas por um cifrão ($) seguido pelo nome da variável. Os nomes de variável são case-sensitive (ou seja, há distinção entre maiúsculas e minúsculas).

Nomes de variável seguem as mesmas regras como outros rótulos no PHP. Um nome de variável válido inicia-se com uma letra ou sublinhado, seguido de qualquer número de letras, números ou sublinhados. Em uma expressão regular, poderia ser representado assim: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Nota: Para nosso propósito, as letras a-z, A-Z e os bytes de 127 a 255 (0x80-0xff).

Nota: $this é uma variável especial que não pode ser atribuída. Anteriormente ao PHP 7.1.0, atribuição indireta (usando variáveis variáveis) era possível.

Dica

Veja também o Guia de nomenclatura em espaço de usuário.

Para informação sobre funções relacionadas a variáveis, veja a Referência de funções para variáveis.

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

$4site = 'not yet'; // inválido; começa com um número
$_4site = 'not yet'; // válido; começa com um sublinhado
$täyte = 'mansikka'; // válido; 'ä' é um caracter ASCII (extendido) 228
?>

Por padrão, as variáveis são sempre atribuídas por valor. Isto significa que ao atribuir uma expressão a uma variável, o valor da expressão original é copiado integralmente para a variável de destino. Isto significa também que, após atribuir o valor de uma variável a outra, a alteração de uma destas variáveis não afetará a outra. Para maiores informações sobre este tipo de atribuição, veja o capítulo em Expressões.

O PHP também oferece um outro meio de atribuir valores a variáveis: atribuição por referência. Isto significa que a nova variável simplesmente referência (em outras palavras, "torna-se um apelido para" ou "aponta para") a variável original. Alterações na nova variável afetam a original, e vice-versa.

Para atribuir por referência, simplesmente adicione um e-comercial (&) na frente do nome da variável que estiver sendo atribuída (variável de origem) Por exemplo, o trecho de código abaixo imprime 'My name is Bob' duas vezes:

<?php
$foo = 'Bob'; // Atribui o valor 'Bob' a variável $foo
$bar = &$foo; // Referecia $foo através de $bar.
$bar = "My name is $bar"; // Altera $bar...
echo $bar;
echo $foo; // $foo é alterada também.
?>

Uma observação importante a se fazer, é que somente variáveis nomeadas podem ser atribuídas por referência.

<?php
$foo = 25;
$bar = &$foo; // Esta atribuição é válida.
$bar = &(24 * 7); // Inválido; referencia uma expressão sem nome.

function test()
{
return 25;
}

$bar = &test(); // Inválido.
?>

Não é necessário inicializar variáveis no PHP, contudo é uma ótima prática. Variáveis não inicializadas tem um valor padrão de tipo dependendo do contexto no qual são usadas - padrão de booleanos é false, de inteiros e ponto-flutuantes é zero, strings (por exemplo, se utilizados em echo), são definidas como vazias e arrays tornam-se um array vazio.

Exemplo #1 Valores padrões de variáveis não inicializadas

<?php
// Limpa e remove referência (sem uso de contexto) a variável; imprime NULL
var_dump($unset_var);

// Uso de booleano; imprime 'false' (Veja sobre operadores ternário para saber mais sobre a sintaxe)
echo $unset_bool ? "true\n" : "false\n";

// Uso de string; imprime 'string(3) "abc"'
$unset_str .= 'abc';
var_dump($unset_str);

// Uso de inteiro; imprime 'int(25)'
$unset_int += 25; // 0 + 25 => 25
var_dump($unset_int);

// Uso de float; imprime 'float(1.25)'
$unset_float += 1.25;
var_dump($unset_float);

// Uso de array; imprime array(1) { [3]=> string(3) "def" }
$unset_arr[3] = "def"; // array() + array(3 => "def") => array(3 => "def")
var_dump($unset_arr);

// Uso de objeto; cria novo objeto stdClass (veja http://www.php.net/manual/en/reserved.classes.php)
// Imprime: object(stdClass)#1 (1) { ["foo"]=> string(3) "bar" }
$unset_obj->foo = 'bar';
var_dump($unset_obj);
?>

Confiar no valor padrão de uma variável não inicializada é problemático no caso de incluir um arquivo em outro que usa uma variável de mesmo nome. Erros de nível E_WARNING (e anteriormente ao PHP 8.0.0, E_NOTICE) serão emitidos no caso de variáveis não inicializadas, contudo não no caso de adicionar elementos a um array não inicializado. A instrução da linguagem isset() pode ser usado para detectar se uma variável não foi inicializada.


Variáveis Predefinidas

O PHP fornece um grande número de variáveis predefinidas para qualquer script que ele execute. Muitas dessas variáveis, no entanto, não podem ser totalmente documentadas, pois dependem de qual servidor está sendo usado, a versão e configuração do servidor, e outros fatores. Algumas dessas variáveis não estarão disponíveis quando o PHP for executado na linha de comando. Consulte a lista de variáveis predefinidas para mais detalhes.

O PHP fornece um conjunto adicional de arrays predefinidos contendo as variáveis do servidor web (se aplicável), as variáveis de ambiente e as entradas do usuário. Esses novos arrays são especiais por serem automaticamente globais--significando que estão disponíveis automaticamente em qualquer escopo. Por esta razão, também são conhecidos como "superglobais". (Não há um mecanismo no PHP para superglobais definidas pelo usuário.) Consulte a lista de superglobals para mais detalhes.

Nota: Variáveis variáveis

Superglobais não podem ser utilizadas como variáveis variáveis dentro de funções ou métodos de classe.

Se determinadas variáveis não estiverem definidas na diretiva variables_order, seus arrays predefinidos também estarão vazios.


Escopo de variáveis

O escopo de uma variável é o contexto onde foi definida. A maioria das variáveis do PHP tem somente um único escopo. Este escopo único abrange também aqruivos inseridos por include e require. Por exemplo:

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

Aqui a variável $a estará disponível no script incluído b.inc. Entretanto, nas funções definidas pelo usuário, um escopo de função local é introduzido. Qualquer variável utilizada dentro de uma função é, por padrão, limitada ao escopo local da função. Por exemplo:

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

function Teste()
{
echo $a; /* referência uma variável do escopo local (não definida) */
}

Teste();
?>

Este script geraá uma aviso de variável não definida de nível E_WARNING (ou nível E_NOTICE anteriormente ao PHP 8.0.0). Entretanto, se a configuração INI display_errors estiver configurada para esconder tais diagnósticos, então nada será impresso. Isto ocorre porque a instrução echo refere-se a uma versão local da variável $a, e não possui nenhum valor atribuído neste escopo. Pode-se perceber que esta é uma pequena diferença em relação à linguagem C, em que variáveis globais estão automaticamente disponíveis para funções sem sobrescrever uma definição local. Isto pode causar problemas quando inadvertidamente modificar-se uma variável global. No PHP, as variáveis globais precisam ser declaradas como globais dentro de uma função, se for utilizada em uma.

A palavra-chave global

Primeiro, um exemplo de global:

Exemplo #1 Usando global

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

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

$b = $a + $b;
}

Soma();
echo $b;
?>

O script acima imprimirá 3. Declarando $a e $b globais na função, fará com que todas as referências a essas variáveis referenciam a versão global. Não há um limite para o número de variáveis globais que podem ser manipuladas por uma função.

Uma segunda maneira de acessar variáveis do escopo global é utilizando o array especial $GLOBALS definido pelo PHP. O exemplo anterior poderia ser reescrito como:

Exemplo #2 Usando $GLOBALS no lugar de global

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

function Soma()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Soma();
echo $b;
?>

O array $GLOBALS é um array associativo, sendo o nome da variável global a chave do array e o seu conteúdo da variável como o valor do elemento do array. Veja que $GLOBALS existe em qualquer escopo, isto porque $GLOBALS é uma superglobal. Segue um exemplo demonstrando o poder das superglobais:

Exemplo #3 Exemplo demonstrando superglobals e escopos

<?php
function test_superglobal()
{
echo $_POST['name'];
}
?>

Nota:

Utilizar a instrução global fora de uma função não é um erro. Deve ser utilizado se um arquivo for incluído dentro de uma função.

Utilizando variáveis static

Outro recurso importante do escopo de variáveis é a variável static. Uma variável estática existe somente no escopo local da função, mas não perde seu valor quando o nível de execução do programa deixa o escopo. Considere o seguinte exemplo:

Exemplo #4 Exemplo demonstrando a necessidade de variáveis estáticas

<?php
function Teste()
{
$a = 0;
echo $a;
$a++;
}
?>

Essa função é inútil, já que cada vez que é chamada, define $a com o valor 0, e imprime 0. A instrução $a++ , que aumenta o valor da variável, não tem sentido já que assim que a função termina a variável $a desaparece. Para fazer um função contadora, que não perderá a conta atual, a variável $a será declarada como estática:

Exemplo #5 Exemplo de uso de variáveis estáticas

<?php
function Teste()
{
static $a = 0;
echo $a;
$a++;
}
?>

Agora, a variável $a é inicializada apenas na primeira chamada da função e cada vez que a função test() for chamada, imprimirá o valor de $a e depois o incrementará.

Variáveis estáticas fornecem uma solução para lidar com funções recursivas. Uma função recursiva é aquela que chama a si mesma. Cuidados devem ser tomados quando escrever funções recursivas porque é possível que ela continue na recursão indefinidamente. Deve-se assegurar que há uma maneira adequada de terminar a recursão. A seguinte função recursiva conta até 10, utilizando a variável estática $count para saber quando parar:

Exemplo #6 Variáveis estáticas em funções recursivas

<?php
function Teste()
{
static $count = 0;

$count++;
echo $count;
if ($count < 10) {
Teste();
}
$count--;
}
?>

Variáveis estáticas podem ser declaradas como visto nos exemplos acima. É possível atribuir valores a essas variáveis, que são resultados de expressões, porém não é possível usar nenhuma função, o que causará um erro de interpretação.

Exemplo #7 Declarando variáveis estáticas

<?php
function foo(){
static $int = 0; // correro
static $int = 1+2; // correto (a partir do PHP 5.6)
static $int = sqrt(121); // errado (é uma expressão)

$int++;
echo $int;
}
?>

A partir do PHP 8.1.0, quando um método com variáveis estáticas é herdado (mas não sobrescrito), o método herdado não compartilhará as variáveis estáticas do método acima. Isso significa que variáveis estáticas nos métodos agora se comportam da mesma forma que propriedades estáticas.

Exemplo #8 Uso de variáveis estáticas em métodos herdados

<?php
class Foo {
public static function counter() {
static $counter = 0;
$counter++;
return $counter;
}
}
class Bar extends Foo {}
var_dump(Foo::counter()); // int(1)
var_dump(Foo::counter()); // int(2)
var_dump(Bar::counter()); // int(3), e antes do PHP 8.1.0 int(1)
var_dump(Bar::counter()); // int(4), e antes do PHP 8.1.0 int(2)
?>

Nota:

Declarações estáticas são resolvidas em tempo de compilação.

Referencias em variáveis global e static

O PHP implementa os modificadores static e global para variáveis, em termo de referências. Por exemplo, uma variável global verdadeira, importada dentro do escopo de uma função com a instrução global, na verdade, cria uma referência para a variável global. Isto pode levar a comportamentos imprevisíveis nos seguintes casos:

<?php
function test_global_ref() {
global $obj;
$new = new stdClass;
$obj = &$new;
}

function test_global_noref() {
global $obj;
$new = new stdClass;
$obj = $new;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

O exemplo acima produzirá:

NULL
object(stdClass)#1 (0) {
}

Um comportamento similar se aplica a declaração static. Referências não são armazenadas estaticamente:

<?php
function &get_instance_ref() {
static $obj;

echo 'Objeto estático: ';
var_dump($obj);
if (!isset($obj)) {
$new = new stdClass;
// Assimila uma referencia a variável estática
$obj = &$new;
}
if (!isset($obj->property)) {
$obj->property = 1;
} else {
$obj->property++;
}
return $obj;
}

function &get_instance_noref() {
static $obj;

echo "Objeto estático: ";
var_dump($obj);
if (!isset($obj)) {
$new = new stdClass;
// Assimila o objeto para a variável estática
$obj = $new;
}
if (!isset($obj->property)) {
$obj->property = 1;
} else {
$obj->property++;
}
return $obj;
}

$obj1 = get_instance_ref();
$still_obj1 = get_instance_ref();
echo "\n";
$obj2 = get_instance_noref();
$still_obj2 = get_instance_noref();
?>

O exemplo acima produzirá:

Objeto estatico: NULL
Objeto estatico: NULL

Objeto estatico: NULL
Objeto estatico: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}

Este exemplo demonstra que, atribuir uma referência a uma variável estática, fará com que ela não se lembre quando chamou a função &get_instance_ref() uma segunda vez.


Variáveis variáveis

As vezes, é conveniente possuir variáveis com nomes variáveis. Isto é, o nome de uma variável que pode ser definido e utilizado dinamicamente. Uma variável normal é definida com uma instrução como:

<?php
$a = 'hello';
?>

Uma variável variável obtém o valor de uma variável e a trata como o nome de uma variável. No exemplo acima, hello pode ser utilizada como o nome de uma variável utilizando dois sinais de cifrão:

<?php
$$a = "world";
?>

Neste ponto, duas variáveis foram definidas e armazenadas na árvore de símbolos do PHP: $a que contém "hello" e $hello que contém "world". Assim, esta instrução:

<?php
echo "$a {$$a}";
?>

produz a mesma saída que:

<?php
echo "$a $hello";
?>

assim sendo, as duas produzem: hello world.

Para poder utilizar variáveis variáveis com arrays, você precisa resolver um problema de ambiguidade. Isso é, se você escrever $$a[1] o interpretador precisa saber que se deseja utilizar $a[1] como uma variável ou que se deseja usar $$a como uma variável e [1] como o índice dessa variável. A sintaxe para resolver essa ambiguidade é ${$a[1]} para o primeiro caso e ${$a}[1], para o segundo.

Propriedades de classes também podem ser acessadas utilizando-se nomes de propriedades variáveis. O nome de propriedade variável será resolvido dentro do escopo em que a chamada foi feita. Por exemplo, se houver uma expressão como $foo->$bar, o escopo local será examinado procurando por $bar e seu valor será utilizado como o nome da propriedade $foo. Isso também funciona se $bar for um array.

Colchetes também podem ser utilizados para delimitar claramente os nomes de propriedade. São muito úteis ao acessar valores de uma propriedade que contenham um array, quando o nome da propriedade tem várias partes, ou quando o nome da propriedade contém caracteres que não são válidos (por exemplo, em saídas da função json_decode() ou SimpleXML).

Exemplo #1 Exemplo de propriedade variável

<?php
class foo {
var $bar = 'I am bar.';
var $arr = array('I am A.', 'I am B.', 'I am C.');
var $r = 'I am r.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->{$baz[1]} . "\n";

$start = 'b';
$end = 'ar';
echo $foo->{$start . $end} . "\n";

$arr = 'arr';
echo $foo->{$arr[1]} . "\n";

?>

O exemplo acima produzirá:

I am bar.
I am bar.
I am bar.
I am r.

Aviso

Note que variáveis variáveis não podem ser utilizadas nos arrays Superglobais dentro de funções ou métodos de classe. A variável $this também é uma variável especial que não pode ser referenciada dinamicamente.


Variáveis de fontes externas

Formulários HTML (GET e POST)

Quando um formulário é submetido para um script PHP, a informação deste formulário estará automaticamente disponível ao script. Há algumas maneiras de acessar estas informações, por exemplo:

Exemplo #1 Um formulário HTML simples

<form action="foo.php" method="post">
    Nome:  <input type="text" name="username" /><br />
    Email: <input type="text" name="email" /><br />
    <input type="submit" name="submit" value="Me aperte!" />
</form>

A partir do PHP 5.4.0, existem apenas duas formas de acessar dados de formulários PHP. Os métodos disponíveis atualmente são listadas a seguir:

Exemplo #2 Acessando dados de um formulário HTML via POST

<?php
echo $_POST['username'];
echo $_REQUEST['username'];
?>

Utilizar um formulário GET é similar, exceto que você usará a variável GET predefinida. GET também se aplica a superglobal QUERY_STRING (a informação depois do '?' numa URL). Então, por exemplo, http://www.example.com/test.php?id=3 contém os dados GET que estarão acessíveis com $_GET['id']. Veja também $_REQUEST.

Nota:

Pontos e espaços em nomes de variáveis são convertidos para sublinhados. Por exemplo <input name="a.b" /> se tornará $_REQUEST["a_b"].

O PHP também entende arrays no contexto de variáveis de formulário (veja essa FAQ). Pode-se, por exemplo, agrupar variáveis relacionadas, ou utilizar este recurso para obter valores de um input select múltiplo. Por exemplo, iremos enviar o formulário abaixo para si mesmo, e depois de submetido, mostra os dados:

Exemplo #3 Variáveis de formulários mais complexos

<?php
if ($_POST) {
echo '<pre>';
echo htmlspecialchars(print_r($_POST, true));
echo '</pre>';
}
?>
<form action="" method="post">
Nome: <input type="text" name="personal[name]" /><br />
Email: <input type="text" name="personal[email]" /><br />
Cerveja: <br />
<select multiple name="beer[]">
<option value="antarctica">Antarctica</option>
<option value="brahma">Brahma</option>
<option value="skol">Skol</option>
</select><br />
<input type="submit" value="Enviar dados!" />
</form>

Nota: Se um nome de variável externa se parece com sintaxe de array válida, as letras finais são silenciosamente ignoradas. Por exemplo, <input name="foo[bar]baz"> se torna $_REQUEST['foo']['bar'].

Nomes de variáveis SUBMIT IMAGE

Ao submeter um formulário, é possível de utilizar imagens em vez do botão de submit padrão com uma tag do tipo:

<input type="image" src="image.gif" name="sub" />

Quando o usuário clicar em algum lugar da imagem, o formulário será transmitido para o servidor com duas variáveis adicionais, sub_x and sub_y. Elas contém as coordenadas do clique do usuário na imagem. Os mais experientes percebem que os atuais nomes dessas variáveis enviadas ao navegador contém um ponto ao invés de um sublinhado, mas o PHP converte o ponto para um sublinhado automaticamente.

Cookies HTTP

O PHP suporta transparentemente cookies HTTP como os definidos pela » RFC 6265. Cookies são um mecanismo o armazenamento de dados no navegador, rastreando e identificando o retorno de usuários. Você pode definir cookies com a função setcookie(). Cookies são parte do cabeçalho HTTP, então a função SetCookie precisa ser chamada antes de qualquer saída ser enviada ao navegador. Esta é a mesma restrição da função header(). Dados de cookies estão disponíveis nos arrays de dados de cookies apropriados, como $_COOKIE e também em $_REQUEST. Veja o manual de setcookie() para mais detalhes e exemplos.

Nota: A partir dos PHP 7.2.34, 7.3.23 e 7.4.11, respectivamente, os nomes dos cookies não url-coded por razões de segurança.

Se você deseja atribuir vários valores para uma única variável do cookie, você pode fazer dele um array:

<?php
setcookie("MyCookie[foo]", 'Testing 1', time()+3600);
setcookie("MyCookie[bar]", 'Testing 2', time()+3600);
?>

Isso irá criar dois cookies separados enquanto que MyCookie será um único array em seu script. Se quiser definir apenas um cookie com vários valores, considere utilizar serialize() ou explode() nos valores primeiro.

Note que um cookie substituiu um anterior com o mesmo nome em seu navegador, a menos que o nome ou o caminho seja diferente. Então, para uma aplicação de carrinho de compras em que se quer ter um contador e repassá-lo:

Exemplo #4 Exemplo setcookie()

<?php
if (isset($_COOKIE['count'])) {
$count = $_COOKIE['count'] + 1;
} else {
$count = 1;
}
setcookie('count', $count, time()+3600);
setcookie("Cart[$count]", $item, time()+3600);
?>

Pontos em nomes de variáveis postadas

Normalmente o PHP não altera o nome de variáveis quando elas são passadas para o script. Entretanto, é necessário notar que o ponto (ponto final) não é um caractere válido no nomes de variáveis do PHP. Para ilustrar, veja o seguinte exemplo:

<?php
$varname.ext; /* nome de variável inválido */
?>
Dessa forma, o interpretador entende isso como uma variável nomeada $varname, seguida do operador de concatenação de strings, seguida de uma string crua (uma string não delimitada que não bate com nenhuma palavra-chave ou reservada) 'ext'. Obviamente, isso não tem os resultados pretendidos.

Nessa situação, é importante notar que o PHP substituirá automaticamente qualquer ponto nos nomes de variáveis recebidas por sublinhados.

Determinando o tipo das variáveis

Como o PHP determina os tipos de variáveis e faz conversões (geralmente) quando necessárias, nem sempre é óbvio o tipo de uma variável em todos os momentos. O PHP incluí várias funções que permitem determinar qual o tipo de uma variável, por exemplo: gettype(), is_array(), is_float(), is_int(), is_object(), e is_string(). Veja também o capítulo Tipos.

Por o HTTP ser um protocolo texto, a maioria, se não todo o conteúdo presente nos arrays superglobais, como $_POST e $_GET permanecerão como strings. O PHP não tentará converter valores para um tipo específico. No exemplo abaixo, $_GET["var1"] irá conter a string "null" e $_GET["var2"] conterá a string "123".

/index.php?var1=null&var2=123

Registro de Alterações

Versão | Descrição
7.2.34, 7.3.23, 7.4.11 | Os nomes dos cookies recebidos não são mais codificados no formato URL por razões de segurança.


Constantes

Índice

  • Sintaxe
  • Constantes Predefinidas
  • Constantes Mágicas

Uma constante é um identificador (nome) para um valor simples. Como o nome sugere, esse valor não pode mudar durante a execução do script (exceto para as constantes mágicas, que na verdade não são constantes). As constantes diferenciam maiúsculas de minúsculas. Por convenção, identificadores de constantes são sempre em maiúsculas.

Nota:

Antes do PHP 8.0.0, as constantes definidas usando a função define() podem não diferenciar maiúsculas de minúsculas.

O nome de uma constante segue as mesmas regras de qualquer rótulo no PHP. Um nome de constante válido começa com uma letra ou sublinhado, seguido por qualquer número de letras, números ou sublinhados. Como uma expressão regular, seria expresso assim: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

É possível usar define() para definir constantes com nomes reservados ou mesmo inválidos, cujo valor só pode ser recuperado com a função constant(). No entanto, isso não é recomendado.

Dica

Veja também o Guia de nomenclatura em espaço de usuário.

Exemplo #1 Nomes de constantes válidos e inválidos

<?php

// Nomes de constantes válidos
define("FOO", "alguma coisa");
define("FOO2", "alguma outra coisa");
define("FOO_BAR", "alguma coisa mais");

// Nomes de constantes inválidos
define("2FOO", "alguma coisa");

// Isso é válido, mas deve ser evitado:
// O PHP pode um dia fornecer uma constante mágica
// que quebrará seu script
define("__FOO__", "alguma coisa");

?>

Nota: Para os exemplos aqui, uma letra é a-z, A-Z e os caracteres ASCII de 128 a 255 (0x80-0xff).

Como as superglobals, o escopo de uma constante é global. As constantes podem ser acessadas de qualquer lugar em um script, independentemente do escopo. Para mais informações sobre escopo, leia a seção do manual escopo de variáveis.

Nota: A partir do PHP 7.1.0, as constantes de classe podem ser declaradas com visibilidade protected ou private, tornando-as disponíveis apenas no escopo hierárquico da classe em que foram definidas.


Sintaxe

As constantes podem ser definidas usando a palavra-chave const ou usando a função define(). Enquanto define() permite que uma constante seja definida usando uma expressão arbitrária, a palavra-chave const possui restrições, conforme descrito no próximo parágrafo. Uma vez definida, a constante nunca poderá ser modificada ou anulada.

Ao usar a palavra-chave const, somente expressões escalares (bool, int, float e string) e arrays constantes contendo apenas expressões escalares são aceitos. É possível definir constantes como um resource, mas isso deve ser evitado, pois pode causar resultados inesperados.

O valor de uma costante é acessado simplesmente informando seu nome. Ao contrário das variáveis, uma constante não é precedida por um $. Também é possível usar a função constant() para ler o valor de uma constante se o nome da constante for obtido dinamicamente. Use get_defined_constants() para obter uma lista de todas as constantes definidas.

Nota: As constantes e variáveis (globais) estão em espaços de nomes diferentes. Isso implica que, por exemplo, true e $TRUE são geralmente diferentes.

Se uma constante indefinida for usada, um erro Error será lançado. Antes do PHP 8.0.0, constantes indefinidas eram interpretadas como uma simples string, ou seja, CONSTANTE vs. "CONSTANTE". Esse mecanismo alternativo foi descontinuado a partir do PHP 7.2.0 e um alerta de nível E_WARNING será lançado quando isso acontecer. Antes do PHP 7.2.0, um erro de nível E_NOTICE era lançado. Veja também por que $foo[bar] é errado (a não ser que bar seja uma constante). Isso não se aplica às constantes (totalmente) qualificadas, que sempre lançarão um Error se forem indefinidas.

Nota: Para verificar se uma constante está definida, use a função defined().

Estas são as diferenças entre constantes e variáveis:

  • Constantes não têm um cifrão ($) antes delas;
  • Constantes podem ser definidas e acessadas em qualquer lugar sem considerar as regras de escopo de variáveis;
  • Constantes não podem ser redefinidas ou anuladas depois de definidas; e
  • Constantes só podem ter valores escalares ou arrays.

Exemplo #1 Definindo Constantes

<?php
define("CONSTANTE", "Olá Mundo.");
echo CONSTANTE; // imprime "Olá Mundo."
echo Constante; // Lança um erro Error: Undefined constant "Constante"
// Antes do PHP 8.0.0, imprime "Constante" e emite um aviso.
?>

Exemplo #2 Definindo Constantes usando a palavra-chave const

<?php
// Valor escalar simples
const CONSTANTE = 'Olá Mundo';

echo CONSTANTE;

// Expressão escalar
const OUTRA_CONSTANTE = CONSTANTE . '; Adeus Mundo';
echo OUTRA_CONSTANTE;

const ANIMAIS = array('cachorro', 'gato', 'pássaro');
echo ANIMAIS[1]; // imprime "gato"

// Array constante
define('ANIMAIS', array(
'cachorro',
'gato',
'pássaro'
));
echo ANIMAIS[1]; // imprime "gato"
?>

Nota:

Ao contrário das constantes definidas usando define(), as constantes definidas usando a palavra-chave const devem ser declaradas no escopo mais externo porque são definidas em tempo de compilação. Isto significa que constantes não podem ser declaradas dentro de funções, loops, declarações if ou blocos try/catch.

Veja Também

  • Constantes de Classe


Constantes Predefinidas

O PHP fornece um grande número de constantes predefinidas para qualquer script executado. Muitas dessas constantes, no entanto, são criadas por várias extensões e só estarão presentes quando essas extensões estiverem disponíveis, seja por carregamento dinâmico ou porque foram compiladas.


Constantes Mágicas

Existem nove constantes mágicas que mudam dependendo de onde são usadas. Por exemplo, o valor de __LINE__ depende da linha em que é usada no script. Todas essas constantes "mágicas" são resolvidas em tempo de compilação, ao contrário das constantes regulares, que são resolvidas em tempo de execução. Essas constantes especiais não diferenciam maiúsculas de minúsculas e são as seguintes:

Constantes Mágicas do PHP
Nome | Descrição
__LINE__ | O número da linha atual do arquivo.
__FILE__ | O caminho completo e o nome do arquivo com links simbólicos resolvidos. Se usada dentro de um include, o nome do arquivo incluído será retornado.
__DIR__ | O diretório do arquivo. Se usada dentro de um include, o diretório do arquivo incluído será retornado. Isso é equivalente a dirname(__FILE__). O nome do diretório não possui barra no final, a menos que seja o diretório raiz.
__FUNCTION__ | O nome da função ou {closure} para funções anônimas.
__CLASS__ | O nome da classe. O nome da classe inclui o namespace em que foi declarada (por exemplo, Foo\Bar). Quando usada em um método de trait, __CLASS__ é o nome da classe em que o trait for usado.
__TRAIT__ | O nome do trait. O nome do trait inclui o namespace em que foi declarado (por exemplo, Foo\Bar).
__METHOD__ | O nome do método da classe.
__NAMESPACE__ | O nome do namespace atual.
ClassName::class | O nome totalmente qualificado da classe.

Veja Também

  • ::class
  • get_class()
  • get_object_vars()
  • file_exists()
  • function_exists()


Expressões

Expressões são os blocos de construção mais importantes do PHP. No PHP, quase tudo o que você escreve são expressões. A maneira mais simples e ainda mais precisa de definir uma expressão é "tudo o que tem um valor".

As formas mais básicas de expressões são constantes e variáveis. Quando você digita $a = 5, você está atribuindo 5 dentro de $a. 5 obviamente tem o valor 5, ou em outras palavras 5 é uma expressão com o valor de 5 (nesse caso 5 é uma constante inteira).

Depois desta atribuição, você pode esperar que o valor de $a seja 5 também, assim se você escrever $b = $a, você pode esperar que ele se comporte da mesma forma que se você escrevesse $b = 5. Em outras palavras, $a é uma expressão com valor 5 também. Se tudo funcionou bem isto é exatamente o que aconteceu.

Exemplos ligeiramente mais complexos para expressões são as funções. Por exemplo, considere a seguinte função:

<?php
function foo ()
{
return 5;
}
?>

Assumindo que você está familiarizado com o conceito de funções (se não estiver, dê uma olhada no capítulo sobre funções), você pode assumir que digitar $c = foo() é essencialmente a mesma coisa que escrever $c = 5, e você está certo. Funções são expressões com o valor igual ao seu valor de retorno. Como foo() retorna 5, o valor da expressão 'foo()' é 5. Geralmente, as funções não retornam apenas um valor estático, mas computam algo.

Claro, valores em PHP não tem que ser inteiros, e muito comumente eles não são. O PHP suporta quatro tipos de valores escalares: valores int (inteiros), valores de ponto flutuante (float), valores string (caracteres) e valores bool (booleano) (valores escalares são valores que você não pode partir em peças menores, diferentemente de matrizes, por exemplo). O PHP também suporta dois tipos compostos (não escalar): matrizes e objetos. Cada um desses valores podem ser definidos em uma variável ou retornados de uma função.

O PHP leva as expressões muito além, da mesma maneira que muitas outras linguagens fazem. O PHP é uma linguagem orientada a expressões, no sentido de que quase tudo são expressões. Considere o exemplo com o qual já lidamos, $a = 5. É fácil ver que há dois valores envolvidos aqui, o valor da constante inteira 5, e o valor de $a que está sendo atualizado para 5 também. Mas a verdade é que há um valor adicional envolvido aqui, e que é o próprio valor da atribuição. A própria atribuição é avaliada com o valor atribuído, neste caso 5. Na prática, significa que $a = 5, independente do que faça, é uma expressão com o valor 5. Portanto, escrever algo como $b = ($a = 5) é como escrever $a = 5; $b = 5; (um ponto-e-vírgula marca o fim do comando). Como atribuições são analisadas da direita para a esquerda, você também pode escrever $b = $a = 5.

Outro bom exemplo de orientação de expressão é o pré e o pós-incremento e decremento. Usuários de PHP 2 e muitas outras linguagens podem estar familiarizados com a notação de variable++ e variable--. Este são operadores de incremento e decremento. Em PHP, como em C, há dois tipos de incremento - pré-incremento e pós-incremento. Tanto o pré-incremento quanto o pós-incremento, essencialmente, incrementam as variáveis, e o efeito sobre a variável é idêntico. A diferença é com o valor da expressão de incremento. O pré-incremento, que é escrito ++$variable', é avaliado como o valor de incremento (o PHP incrementa a variável antes de ler seu valor, por isso o nome pré-incremento). O pós-incremento, que é escrito $variable++ é avaliado como o valor original de $variable, antes de ser incrementada (o PHP incrementa a variável depois de ler seu valor, por isso o nome 'pós-incremento').

Um tipo muito comum de expressões são expressões de comparação. Estas expressões avaliam para ser false ou true. O PHP suporta > (maior que), >= (maior ou igual a), == (igual), != (diferente), < (menor que) e <= (menor ou igual a). A linguagem também suporta um conjunto de operador de equivalência estrita: === (igual a e do mesmo tipo) e !== (diferente de ou não do mesmo tipo). Estas expressões são mais comumente usada dentro de execução condicional como comandos if.

O último exemplo de expressões com que nós vamos lidar aqui são as expressões combinadas operador-atribuição. Você já sabe que se você quer incrementar $a de 1, você só precisa escrever $a++ ou ++$a. Mas e se você quiser somar mais que um a ele, por exemplo 3? Você poderia escrever $a++ várias vezes, mas esta obviamente não é uma forma muito eficiente ou confortável. Uma prática muito mais comum é escrever $a = $a + 3. $a + 3 é avaliada como o valor de $a mais 3, e é atribuído de volta a $a, que resulta em incrementar $a em 3. Em PHP, como em várias outras linguagens como o C você pode escrever isto de uma forma mais curta, que com o tempo se torna mais limpa e rápida de se entender. Somar 3 ao valor corrente de $a pode ser escrito $a += 3. Isto significa exatamente "pegue o valor de $a, some 3 a ele, e atribua-o de volta a $a." Além de ser mais curto e mais limpo, isto também resulta em execução mais rápida. O valor de $a += 3, como o valor de uma atribuição regular, é o valor atribuído. Note que NÃO é 3, mas o valor combinado de $a mais 3 (este é o valor que é atribuído a $a). Qualquer operador de dois parâmetros pode ser usado neste modo operador-atribuição, por exemplo $a -= 5 (subtrai 5 do valor de $a), $b *= 7 (multiplica o valor de $b por 7), etc.

Há mais uma expressão que podem parecer estranha se você não a viu em outras linguagens, o operador condicional ternário:

<?php
$primeira ? $segunda : $terceira
?>

Se o valor da primeira sub-expressão é verdadeiro (true, não-zero), então a segunda sub-expressão é avaliada, e este é o resultado da expressão condicional. Caso contrário, a terceira sub-expressão é avaliada e este é o valor.

O seguinte exemplo deve ajudá-lo a entender um pouco melhor pré e pós-incremento e expressões em geral:

<?php
function double($i)
{
return $i*2;
}
$b = $a = 5; /* atribui o valor cinco às variáveis $a e $b */
$c = $a++; /* pós-incremento, atribui o valor original de $a
(5) para $c */
$e = $d = ++$b; /* pré-incremento, atribui o valor incrementado de
$b (6) a $d e $e */

/* neste ponto, tanto $d quanto $e são iguais a 6 */

$f = double($d++); /* atribui o dobro do valor de $d antes
do incremento, 2*6 = 12 a $f */
$g = double(++$e); /* atribui o dobro do valor de $e depois
do incremento, 2*7 = 14 a $g */
$h = $g += 10; /* primeiro, $g é incrementado de 10 e termina com o
valor 24. o valor da atribuição (24) é
então atribuído a $h, e $h termina com o valor
24 também. */
?>

Algumas expressões podem ser consideradas instruções. Neste caso, uma instrução na forma 'expr ;' ou seja, uma expressão seguida de um ponto e vírgula. Em $b = $a = 5;, $a = 5 é uma expressão válida, mas não é um comando por si só. $b = $a = 5; porém é um comando válido.

Uma última coisa que vale mencionar é o valor-verdade de expressões. Em muitos eventos, principalmente em instruções condicionais e loops, você não está interessado no valor específico da expressão, mas somente se ela significa true ou false (o PHP não tem um tipo booleano dedicado). As constantes true e false (insensitivas ao caso) são seus dois valores booleanos possíveis. Às vezes uma expressão é automaticamente convertida para um booleano. Veja a seção sobre type-casting para detalhes de como isso é feito.

O PHP fornece uma implementação completa e poderosa de expressões, e a completa documentação dela vai além do escopo deste manual. Os exemplos acima devem dar a você uma boa ideia sobre o que são as expressões e como você pode construir expressões úteis. Através do restante do manual nós escreveremos expr (ou expressão) para indicar qualquer expressão PHP válida.


Operadores

Índice

  • Precedência de Operadores
  • Aritméticos
  • Incremento e Decremento
  • Atribuição
  • Binários
  • Comparação
  • Controle de Erro
  • Execução
  • Lógica
  • String
  • Arrays
  • Tipo

Um operador é algo que recebe um ou mais valores (ou expressões, no jargão de programação) e que devolve outro valor (e por isso os operadores são expressões também).

Operadores podem ser agrupados segundo o número de valores que aceitam. Operadores unários recebem um único valor, por exemplo ! (o operador lógico de negação) ou ++ (o operador de incremento). Operadores binários aceitam dois valores, como os operadores aritméticos + (soma) e - (subtração), além da maioria dos operadores PHP dessa categoria. Finalmente há um único operador ternário, ? :, que aceita três valores; normalmente conhecido simplesmente como "o operador ternário" (embora um nome melhor fosse operador condicional).

A lista completa dos operadores no PHP está na seção sobre Precedência de Operadores. Essa seção também explica precedência e combinações, que governam exatamente como expressões contendo vários operadores são avaliados.


Precedência de Operadores

A precedência de um operador especifica quem tem mais prioridade quando há duas delas juntas. Por exemplo, na expressão 1 + 5 * 3, a resposta é 16 e não 18 porque o operador de multiplicação ("*") tem prioridade de precedência que o operador de adição ("+"). Parênteses podem ser utilizados para forçar a precedência, se necessário. Assim, (1 + 5) * 3 é avaliado como 18.

Quando operadores têm precedência igual a associatividade decide como os operadores são agrupados. Por exemplo "-" é associado à esquerda, de forma que 1 - 2 - 3 é agrupado como (1 - 2) - 3 e resulta em -4. "=" por outro lado associa para a direita, de forma que $a = $b = $c é agrupado como $a = ($b = $c).

Operadores de igual precedência e associatividade não podem ser utilizados uns próximos aos outros. Por exemplo 1 < 2 > 1 é ilegal no PHP. A expressão 1 <= 1 == 1 por outro lado é válida, porque o operador == tem menor precedência que o operador <=.

A associatividade somente faz sentido para operadores binários e ternários. Operadores unários são precedentes ou seguintes, de forma que essa outra noção não se aplica. Por exemplo !!$a somente pode ser agrupado como !(!$a).

O uso de parênteses, embora não estritamente necessário, pode melhorar a leitura do código ao deixar o agrupamento explícito em vez de depender da associatividade e precedências implícitos.

A tabela seguinte mostra a precedência dos operadores, com a maior precedência no começo. Operadores com a mesma precedência estão na mesma linha, nesses casos a associatividade deles decidirá qual ordem eles serão avaliados.

Precedência dos operadores
Associação | Operadores | Informação Adicional
(não aplicável) | clone new | clone e new
direita | ** | aritmética
(não aplicável) | + - ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | aritméticos (unário + e -), incremento/decremento, bitwise, type cast e controle de erro
esquerda | instanceof | tipos
(não aplicável) | ! | lógicos
esquerda | * / % | aritmética
esquerda | + - . | aritmética (binário + e -), array e string (. anteriormente ao PHP 8.0.0)
esquerda | << >> | bits
left | . | string (desde o PHP 8.0.0)
não associativo | < <= > >= | comparação
não associativo | == != === !== <> <=> | comparação
esquerda | & | bits e referências
esquerda | ^ | bits
esquerda | | | bits
esquerda | && | lógicos
esquerda | || | lógicos
direita | ?? | null coalescing
não associativo | ? : | ternário (esquerda anteriormente ao PHP 8.0.0)
direita | = += -= *= **= /= .= %= &= |= ^= <<= >>= ??= | atribuição
(não aplicável) | yield from | yield from
(não aplicável) | yield | yield
(não aplicável) | print | print
esquerda | and | lógicos
esquerda | xor | lógicos
esquerda | or | lógicos

Exemplo #1 Associação

<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
// associação do operador ternário difere do C/C++
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2 (antes do PHP 8.0.0)

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>

A precedência e associatividade apenas determinam como as expressões são agrupadas, mas não especificam a ordem de avaliação. O PHP (geralmente) não especifica em que ordem as expressões são avaliadas, então códigos que assumem ordens específicas de avaliação devem ser evitados porque o comportamento pode ser alterado entre versões do PHP ou dependendo do código em volta.

Exemplo #2 Ordem de avaliação não definida

<?php
$a = 1;
echo $a + $a++; // pode imprimir 2 ou 3

$i = 1;
$array[$i] = $i++; // pode definir o índice 1 ou 2
?>

Exemplo #3 +, - and . possuem a mesma precedência

<?php
$x = 4;
// esta linha pode resultar em uma saída inesperada:
echo "x menos um é igual a " . $x-1 . ", ou assim eu espero\n";
// porque é avaliada como esta linha (antes do PHP 8.0.0):
echo (("x menos um é igual a " . $x) - 1) . ", ou assim eu espero\n";
// a precedência desejada pode ser aplicada utilizando parênteses:
echo "x menos um é igual a " . ($x-1) . ", ou assim eu espero\n";
?>

O exemplo acima produzirá:

-1, ou assim eu espero
-1, ou assim eu espero
x menos um é igual a 3, ou assim eu espero

Nota:

Embora o = tenha uma precedência menor que a maioria dos operadores, o PHP ainda permite expressões similares a if (!$a = foo()), onde o valor retornado de foo() é colocado em $a.

Registro de Alterações

Versão | Descrição
8.0.0 | Concatenação de strings (.) tem uma precedência menor que adição/subtração (+ e -) e shift de bits à esquerda/direita (<< e >>); anteriormente ele tinha a mesma precedência que + e - uma precedência maior que << e >>.
8.0.0 | O operador ternário (? :) agora é não associativo; anteriormente associava a esquerda.
7.4.0 | Depender da precedência da concatenação de strings (.) em relação à adição/subtração (+ ou -) ou shift de bits a esquerda/direta (<< ou >>), ou seja, os usar numa mesma expressão, foi descontinuado.
7.4.0 | Depender da associatividade à esquerda do operador ternário (? :), ou seja, o utilizar em várias expressões sem parênteses, foi descontinuado.


Operadores Aritméticos

Lembra-se da aritmética básica da escola? Estes operadores funcionam exatamente como aqueles.

Operadores Aritméticos
Exemplo | Nome | Resultado
+$a | Identidade | Conversão de $a para int ou float conforme apropriado.
-$a | Negação | Oposto de $a.
$a + $b | Adição | Soma de $a e $b.
$a - $b | Subtração | Diferença entre $a e $b.
$a * $b | Multiplicação | Produto de $a e $b.
$a / $b | Divisão | Quociente de $a e $b.
$a % $b | Módulo | Resto de $a dividido por $b.
$a ** $b | Exponencial | Resultado de $a elevado a $b.

O operador de divisão ("/") sempre retorna um valor com ponto flutuante, a não ser que os dois operandos sejam inteiros (ou strings que são convertidas para inteiros) e números inteiramente divisíveis, nesse caso um inteiro é retornado. Para divisão de inteiros, veja intdiv().

Operandos de módulo são convertidos para int antes do processamento. Para módulos de ponto flutuante, veja fmod().

O resultado do operador de módulo % tem o mesmo sinal do dividendo — ou seja, o resultado de $a % $b terá o mesmo sinal de $a. Exemplos:

<?php

echo (5 % 3)."\n"; // imprime 2
echo (5 % -3)."\n"; // imprime 2
echo (-5 % 3)."\n"; // imprime -2
echo (-5 % -3)."\n"; // imprime -2

?>

Veja Também

  • Funções matemáticas


Operadores de Incremento/Decremento

O PHP suporta operadores de pré e pós-incremento operadores de decremento. Esses operadores unários permitem aumentar o diminuir o valor por um.

Operadores de Incremento/Decremento
Exemplo | Nome | Efeito
++$a | Pré-incremento | Incrementa $a em um, e então retorna $a.
$a++ | Pós-incremento | Retorna $a, e então incrementa $a em um.
--$a | Pré-decremento | Diminuiu $a em um, e então retorna $a.
$a-- | Pós-decremento | Retorna $a, e então diminui $a em um.

Aqui está um script de exemplo simples:

<?php
echo 'Pós-incremento:', PHP_EOL;
$a = 5;
var_dump($a++);
var_dump($a);

echo 'Pré-incremento:', PHP_EOL;
$a = 5;
var_dump(++$a);
var_dump($a);

echo 'Pós-incremento:', PHP_EOL;
$a = 5;
var_dump($a--);
var_dump($a);

echo 'Pré-decremento:', PHP_EOL;
$a = 5;
var_dump(--$a);
var_dump($a);
?>

O exemplo acima produzirá:

Pós-incremento:
int(5)
int(6)
Pré-incremento:
int(6)
int(6)
Pós-incremento:
int(5)
int(4)
Pós-decremento:
int(4)
int(4)
Aviso

Os operadores de incremento e decremento não tem efeitos em valores do tipo bool. Um E_WARNING é emitido desde o PHP 8.3.0, porque isso causará uma conversão implícita para um tipo int no futuro.

O operador de decremento não tem efeito em valores do tipo null. Um E_WARNING é emitido desde o PHP 8.3.0, porque isso causará uma conversão implícita para um tipo int no futuro.

O operador de decremento não tem efeito em strings não numéricas. Um E_WARNING é emitido desde o PHP 8.3.0, porque isso lançará um TypeError no futuro.

Nota:

Objetos internos que suportam a sobrecarga de adição ou subtração também podem ser incrementados ou decrementados. Um exemplo de objeto assim é o GMP.

Incremento de strings no estilo PERL

Aviso

Esse recurso está desencorajado desde oPHP 8.3.0. A função str_increment() deve ser utilizada.

É possível incremente strings não numéricas no PHP. A string precisa ser um texto ASCII. O efeito é incrementar a última letra até a próxima, e quando é alcançado a letra Z o incremento é carregado para a letra à esquerda. Por exemplo, $a = 'Z'; $a++; transforma $a em 'AA'.

Exemplo #1 Exemplo de incremento de string estilo PERL

<?php
echo '== String alfabética ==' . PHP_EOL;
$s = 'W';
for ($n=0; $n<6; $n++) {
echo ++$s . PHP_EOL;
}
// String alfanuméricas tem outro comportamento
echo '== Strings alfanuméricas ==' . PHP_EOL;
$d = 'A8';
for ($n=0; $n<6; $n++) {
echo ++$d . PHP_EOL;
}
$d = 'A08';
for ($n=0; $n<6; $n++) {
echo ++$d . PHP_EOL;
}
?>

O exemplo acima produzirá:

== String alfabética ==
X
Y
Z
AA
AB
AC
== Strings alfanuméricas ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14
Aviso

Se uma string alfanumérica pode ser interpretada como uma string numérica ela será convertida para um int ou float. Isso pode ser um problema para strings que parecem como números de ponto flutuante escritos em notação exponencial. A função str_increment() não sofre desse problema de conversão implícita.

Exemplo #2 Strings alfanuméricas convertida para float

<?php
$s = "5d9";
var_dump(++$s);
var_dump(++$s);
?>

O exemplo acima produzirá:

string(3) "5e0"
float(6)

Isto ocorre porque o valor "5e0" é interpretado como float e é convertido para o valor de 5.0 antes de ser incrementado.


Operadores de Atribuição

O operador básico de atribuição é "=". A sua primeira inclinação deve ser a de pensar nisto como "é igual". Não. Isto quer dizer, na verdade, que o operando da esquerda recebe o valor da expressão da direita (ou seja, "é definido para").

O valor de uma expressão de atribuição é o valor atribuído. Ou seja, o valor de "$a = 3" é 3. Isto permite que você faça alguns truques:

<?php

$a = ($b = 4) + 5; // $a é igual a 9 agora e $b foi definido como 4.

?>

Além do operador básico de atribuição, há "operadores combinados" para todos os operadores aritméticos, de array e string que permitem a você pegar um valor de uma expressão e então usar seu próprio valor para o resultado daquela expressão. Por exemplo:

<?php

$a = 3;
$a += 5; // define $a para 8, como se disséssemos: $a = $a + 5;
$b = "Bom ";
$b .= "Dia!"; // define $b para "Bom Dia!", como em $b = $b . "Dia!";

?>

Note que a atribuição copia a variável original para a nova (atribuição por valor), assim a mudança de uma não afeta a outra. Isto pode ser relevante se você precisa copiar algo como uma grande matriz dentro de um loop apertado.

Uma exceção ao comportamento geral de atribuição ocorre com objects, que são atribuídos por referência. Objetos podem ser explicitamente copiados através da instrução clone.

Atribuição por referência

Atribuição por referência também é possível, utilizando-se a sintaxe "$var = &$othervar;". A atribuição por referência significa que ambas as variáveis apontam para o mesmo dado, e nada é copiado.

Exemplo #1 Atribuição por referência

<?php
$a = 3;
$b = &$a; // $b é uma referência de $a

print "$a\n"; // imprime 3
print "$b\n"; // imprime 3

$a = 4; // modificamos $a

print "$a\n"; // imprime 4
print "$b\n"; // imprime 4 também, pois $b é uma referência de $a, que foi
// modificada
?>

O operador new retorna uma referência automaticamente, de forma que a atribuição de um resultado de new por referência é um erro.

<?php
class C {}

$o = &new C;
?>

O exemplo acima produzirá:

Parse error: syntax error, unexpected 'new' (T_NEW) in …

Mais informações sobre referências e seus potenciais usos podem ser encontrados na seção Explicando Referências do manual.

Arithmetic Assignment Operators

Exemplo | Equivalente | Operação
$a += $b | $a = $a + $b | Adição
$a -= $b | $a = $a - $b | Subtração
$a *= $b | $a = $a * $b | Multiplicação
$a /= $b | $a = $a / $b | Divisão
$a %= $b | $a = $a % $b | Módulo
$a **= $b | $a = $a ** $b | Exponentiation

Operadores de bits

Exemplo | Equivalente | Operação
$a &= $b | $a = $a & $b | Bitwise E
$a |= $b | $a = $a | $b | Bitwise Ou
$a ^= $b | $a = $a ^ $b | Bitwise Xor
$a <<= $b | $a = $a << $b | Desloca para esquerda
$a >>= $b | $a = $a >> $b | Desloca para direita

Outras operações de assimilação

Exemplo | Equivalente | Operação
$a .= $b | $a = $a . $b | Concatenação de strings
$a ??= $b | $a = $a ?? $b | Aglutinação de nulls (null coalesce)

Veja Também

  • operadores aritméticos
  • operadores em bits
  • operador de aglutinação de null


Operadores Binários

Operadores bit-a-bit permitem a avaliação e modificação de bits específicos em um tipo inteiro.

Operadores Bit-a-bit
Exemplo | Nome | Resultado
$a & $b | E (AND) | Os bits que estão ativos tanto em $a quanto em $b são ativados.
$a | $b | OU (OR inclusivo) | Os bits que estão ativos em $a ou em $b são ativados.
$a ^ $b | XOR (OR exclusivo) | Os bits que estão ativos em $a ou em $b, mas não em ambos, são ativados.
~ $a | NÃO (NOT) | Os bits que estão ativos em $a não são ativados, e vice-versa.
$a << $b | Deslocamento à esquerda | Desloca os bits de $a em $b passos para a esquerda (cada passo significa "multiplica por dois")
$a >> $b | Deslocamento à direita | Desloca os bits de $a em $b passos para a direita (cada passo significa "divide por dois")

O deslocamento de bits no PHP é aritmético. Bits deslocados no lado final são descartados. Deslocamentos à esquerda tem zeros inseridos à direita e o bit de sinal é perdido, e assim o sinal do operando não é preservado. Deslocamentos à direita tem cópias do bit de sinal à esquerda, e assim o sinal do operando é preservado.

Utilize parênteses para garantir a precedência desejada. Por exemplo $a & $b == true avalia primeiro a equivalência e depois a operação de bits, enquanto que ($a & $b) == true avalia primeiro a operação de bits e só depois a equivalência.

Se ambos os operandos de &, | e ^ forem strings então a operação será realizada nos valores ASCII dos caracteres das strings, e o resultado final será uma string. Em todos os outros casos ambos os operandos serão convertidos para inteiros e o resultado será um inteiro.

Se o operando de ~ for uma string então a operação será realizada nos valores ASCII dos caracteres da string, e o resultado será uma string. Nos demais casos o operando e o resultado serão tratados como inteiros.

Ambos os operandos e o resultado para << e >> sempre são tratados como inteiros.

     A configuração error_reporting ini utiliza valores posicionados em bits,
     fornecendo um exemplo real de ligar ou desligar
     bits. Para mostrar todos os erros mas não os alertas
     coloque no php.ini:
     E_ALL & ~E_NOTICE

     Isto funciona pois começa com E_ALL:
     00000000000000000111011111111111
     Depois pegando o valor de E_NOTICE...
     00000000000000000000000000001000
     ... que invertido através de ~:
     11111111111111111111111111110111
     ... é finalmente mesclado via E (&) e assim o valor final
     se torna:
     00000000000000000111011111110111

     Outra forma de conseguir esse efeito seria através do XOR (^)
     e assim encontrar os bits que estão ativos em apenas um ou no outro:
     E_ALL ^ E_NOTICE

     O error_reporting pode também ser utilizado para demonstrar a ativação de bits.
     Para mostrar apenas erros e erros recuperáveis:
     E_ERROR | E_RECOVERABLE_ERROR

     Este processo combina E_ERROR
     00000000000000000000000000000001
     e
     00000000000000000001000000000000
     utilizando OU (|)
     para pegar os bits ativos de ambos os valores:
     00000000000000000001000000000001

Exemplo #1 Operações bitwise AND, OR e XOR em inteiros

<?php
/*
* Ignore essa primeira parte,
* que é apenas para deixar a impressão mais limpa.
*/

$format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)'
. ' %3$s (%4$2d = %4$04b)' . "\n";

echo <<<EOH
 --------- --------- -- ---------
result value op test
--------- --------- -- ---------
EOH;

/*
* Agora os exemplos
*/

$values = array(0, 1, 2, 4, 8);
$test = 1 + 4;

echo "\n Operador de bit E \n";
foreach ($values as $value) {
$result = $value & $test;
printf($format, $result, $value, '&', $test);
}

echo "\n Operador de bit OU inlusivo \n";
foreach ($values as $value) {
$result = $value | $test;
printf($format, $result, $value, '|', $test);
}

echo "\n Operador de bit OU Exclusivo (XOR) \n";
foreach ($values as $value) {
$result = $value ^ $test;
printf($format, $result, $value, '^', $test);
}
?>

O exemplo acima produzirá:

 ---------     ---------  -- ---------
 result        value      op test
 ---------     ---------  -- ---------
 Operador de bit E
( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101)
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101)
( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101)
( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101)

 Operador de bit OU inlusivo
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101)

 Operador de bit OU Exclusivo (XOR)
( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101)
( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101)
( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101)

Exemplo #2 Operações de bit XOR em strings

<?php
echo 12 ^ 9; // Imprime '5'

echo "12" ^ "9"; // Imprime caracter backspace (ASCII 8)
// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // Imprime os valores ASCII #0 #4 #0 #0 #0
// 'a' ^ 'e' = #4

echo 2 ^ "3"; // Imprime 1
// 2 ^ ((int)"3") == 1

echo "2" ^ 3; // Imprime 1
// ((int)"2") ^ 3 == 1
?>

Exemplo #3 Deslocamento de bits em inteiros

<?php
/*
* Aqui estão os exemplos.
*/

echo "\n--- MOVENDO BITS A DIREITA EM INTEIROS POSITIVOS ---\n";

$val = 4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'cópia do bit de sinal trocada para a esquerda');

$val = 4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places);

$val = 4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'move os bits para fora da direita');

$val = 4;
$places = 4;
$res = $val >> $places;
p($res, $val, '>>', $places, 'mesmo resultado que acima; não se pode mover além do 0');

echo "\n--- MOVENDO BITS A DIREITA EM INTEIROS NEGATIVOS ---\n";

$val = -4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'cópia do bit de sinal trocada para a esquerda');

$val = -4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places, 'move os bits para fora da direita');

$val = -4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'mesmo resultado que acima; não se pode mover além do -1');

echo "\n--- MOVENDO BITS A ESQUERDA EM INTEIROS POSITIVOS ---\n";

$val = 4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'preenche com zeros o lado direito');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 4;
$res = $val << $places;
p($res, $val, '<<', $places);

$val = 4;
$places = (PHP_INT_SIZE * 8) - 3;
$res = $val << $places;
p($res, $val, '<<', $places, 'bit de sinal movido para fora');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'bits movidos para fora da esquerda');

echo "\n--- MOVENDO BITS A ESQUERDA EM INTEIROS NEGATIVOS ---\n";

$val = -4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'preenche com zeros o lado direito');

$val = -4;
$places = (PHP_INT_SIZE * 8) - 3;
$res = $val << $places;
p($res, $val, '<<', $places);

$val = -4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'bits movidos para fora pela esquerda, incluindo o bit de sinal');

/*
* Ignore essa seção abaixo,
* é apenas para formatar a saída e deixar mais clara a apresentação.
*/

function p($res, $val, $op, $places, $note = '') {
$format = '%0' . (PHP_INT_SIZE * 8) . "b\n";

printf("Expressão: %d = %d %s %d\n", $res, $val, $op, $places);

echo " Decimal:\n";
printf(" val=%d\n", $val);
printf(" res=%d\n", $res);

echo " Binário:\n";
printf(' val=' . $format, $val);
printf(' res=' . $format, $res);

if ($note) {
echo " NOTA: $note\n";
}

echo "\n";
}
?>

Saída do exemplo acima em máquinas de 32 bits:

--- MOVENDO BITS A DIREITA EM INTEIROS POSITIVOS ---
Expressão: 2 = 4 >> 1
 Decimal:
  val=4
  res=2
 Binário:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000010
 NOTA: cópia do bit de sinal trocada para a esquerda

Expressão: 1 = 4 >> 2
 Decimal:
  val=4
  res=1
 Binário:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000001

Expressão: 0 = 4 >> 3
 Decimal:
  val=4
  res=0
 Binário:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 NOTA: move os bits para fora da direita

Expressão: 0 = 4 >> 4
 Decimal:
  val=4
  res=0
 Binário:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 NOTA: mesmo resultado que acima; não se pode mover além do 0

--- MOVENDO BITS A DIREITA EM INTEIROS NEGATIVOS ---
Expressão: -2 = -4 >> 1
 Decimal:
  val=-4
  res=-2
 Binário:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111110
 NOTA: cópia do bit de sinal trocada para a esquerda

Expressão: -1 = -4 >> 2
 Decimal:
  val=-4
  res=-1
 Binário:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 NOTA: move os bits para fora da direita

Expressão: -1 = -4 >> 3
 Decimal:
  val=-4
  res=-1
 Binário:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 NOTA: mesmo resultado que acima; não se pode mover além do -1

--- MOVENDO BITS A ESQUERDA EM INTEIROS POSITIVOS ---
Expressão: 8 = 4 << 1
 Decimal:
  val=4
  res=8
 Binário:
  val=00000000000000000000000000000100
  res=00000000000000000000000000001000
 NOTA: preenche com zeros o lado direito

Expressão: 1073741824 = 4 << 28
 Decimal:
  val=4
  res=1073741824
 Binário:
  val=00000000000000000000000000000100
  res=01000000000000000000000000000000

Expressão: -2147483648 = 4 << 29
 Decimal:
  val=4
  res=-2147483648
 Binário:
  val=00000000000000000000000000000100
  res=10000000000000000000000000000000
 NOTA: bit de sinal movido para fora

Expressão: 0 = 4 << 30
 Decimal:
  val=4
  res=0
 Binário:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 NOTA: bits movidos para fora da esquerda

--- MOVENDO BITS A ESQUERDA EM INTEIROS NEGATIVOS ---
Expressão: -8 = -4 << 1
 Decimal:
  val=-4
  res=-8
 Binário:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111000
 NOTA: preenche com zeros o lado direito

Expressão: -2147483648 = -4 << 29
 Decimal:
  val=-4
  res=-2147483648
 Binário:
  val=11111111111111111111111111111100
  res=10000000000000000000000000000000

Expressão: 0 = -4 << 30
 Decimal:
  val=-4
  res=0
 Binário:
  val=11111111111111111111111111111100
  res=00000000000000000000000000000000
 NOTA: bits movidos para fora pela esquerda, incluindo o bit de sinal

Saída do exemplo acima em máquinas de 64 bits:

--- MOVENDO BITS A DIREITA EM INTEIROS POSITIVOS ---
Expressão: 2 = 4 >> 1
 Decimal:
  val=4
  res=2
 Binário:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000010
 NOTA: cópia do bit de sinal trocada para a esquerda

Expressão: 1 = 4 >> 2
 Decimal:
  val=4
  res=1
 Binário:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000001

Expressão: 0 = 4 >> 3
 Decimal:
  val=4
  res=0
 Binário:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 NOTA: move os bits para fora da direita

Expressão: 0 = 4 >> 4
 Decimal:
  val=4
  res=0
 Binário:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 NOTA: mesmo resultado que acima; não se pode mover além do 0

--- MOVENDO BITS A DIREITA EM INTEIROS NEGATIVOS ---
Expressão: -2 = -4 >> 1
 Decimal:
  val=-4
  res=-2
 Binário:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111110
 NOTA: cópia do bit de sinal trocada para a esquerda

Expressão: -1 = -4 >> 2
 Decimal:
  val=-4
  res=-1
 Binário:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 NOTA: move os bits para fora da direita

Expressão: -1 = -4 >> 3
 Decimal:
  val=-4
  res=-1
 Binário:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 NOTA: mesmo resultado que acima; não se pode mover além do -1

--- MOVENDO BITS A ESQUERDA EM INTEIROS POSITIVOS ---
Expressão: 8 = 4 << 1
 Decimal:
  val=4
  res=8
 Binário:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000001000
 NOTA: preenche com zeros o lado direito

Expressão: 4611686018427387904 = 4 << 60
 Decimal:
  val=4
  res=4611686018427387904
 Binário:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0100000000000000000000000000000000000000000000000000000000000000

Expressão: -9223372036854775808 = 4 << 61
 Decimal:
  val=4
  res=-9223372036854775808
 Binário:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=1000000000000000000000000000000000000000000000000000000000000000
 NOTA: bit de sinal movido para fora

Expressão: 0 = 4 << 62
 Decimal:
  val=4
  res=0
 Binário:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 NOTA: bits movidos para fora da esquerda

--- MOVENDO BITS A ESQUERDA EM INTEIROS NEGATIVOS ---
Expressão: -8 = -4 << 1
 Decimal:
  val=-4
  res=-8
 Binário:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111000
 NOTA: preenche com zeros o lado direito

Expressão: -9223372036854775808 = -4 << 61
 Decimal:
  val=-4
  res=-9223372036854775808
 Binário:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1000000000000000000000000000000000000000000000000000000000000000

Expressão: 0 = -4 << 62
 Decimal:
  val=-4
  res=0
 Binário:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=0000000000000000000000000000000000000000000000000000000000000000
 NOTA: bits movidos para fora pela esquerda, incluindo o bit de sinal

Aviso

Utilize as funções da extensão gmp para manipulações de troca de bit em números maiores que PHP_INT_MAX.

Veja Também

  • pack()
  • unpack()
  • gmp_and()
  • gmp_or()
  • gmp_xor()
  • gmp_testbit()
  • gmp_clrbit()


Operadores de Comparação

Operadores de comparação, como os seus nomes implicam, permitem que você compare dois valores. Você pode se interessar em ver as tabelas de comparação de tipos, que tem exemplo das várias comparações entre tipos relacionadas.

Operadores de comparação
Exemplo | Nome | Resultado
$a == $b | Igual | true se $a é igual a $b após equalização de tipos.
$a === $b | Idêntico | true se $a é igual a $b, e eles são do mesmo tipo.
$a != $b | Diferente | true se $a não é igual a $b depois de equalização de ativos.
$a <> $b | Diferente | true se $a não é igual a $b depois de equalização de ativos.
$a !== $b | Não idêntico | true se $a não é igual a $b, ou eles não são do mesmo tipo.
$a < $b | Menor que | true se $a é estritamente menor que $b.
$a > $b | Maior que | true se $a é estritamente maior que $b.
$a <= $b | Menor ou igual | true se $a é menor ou igual a $b.
$a >= $b | Maior ou igual | true se $a é maior ou igual a $b.
$a <=> $b | Spaceship (nave espacial) | Um int menor que, igual a ou maior que zero quando $a é, respectivamente, menor que, igual a ou maior que $b.

Se ambos os operadores são strings numéricas, ou um operando é um número e o outro é uma string numérica, então a comparação é realizada numericamente. Estas regras se aplicam à instrução switch. A conversão de tipos não é realizada quando a comparação é realizada através === ou !== porque aqui é realizada a comparação de tipos, além de valores.

Aviso

Anteriormente ao PHP 8.0.0, se uma string era comparada a um número ou uma string numérica, então a string era convertida para número antes de realizar a comparação. Isto pode levar a resultados inesperados, como observado no exemplo a seguir:

<?php
var_dump(0 == "a");
var_dump("1" == "01");
var_dump("10" == "1e1");
var_dump(100 == "1e2");

switch ("a") {
case 0:
echo "0";
break;
case "a":
echo "a";
break;
}
?>

Saída do exemplo acima no PHP 7:

bool(true)
bool(true)
bool(true)
bool(true)
0

Saída do exemplo acima no PHP 8:

bool(false)
bool(true)
bool(true)
bool(true)
a

<?php
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1

// Arrays
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1

// Objects
$a = (object) ["a" => "b"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 0

$a = (object) ["a" => "b"];
$b = (object) ["a" => "c"];
echo $a <=> $b; // -1

$a = (object) ["a" => "c"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 1

// valores e tipos precisam coincidir
$a = (object) ["a" => "b"];
$b = (object) ["b" => "b"];
echo $a <=> $b; // 1

?>

Para vários tipos, comparações são feitas de acordo com a seguinte tabela (em ordem).

Comparação com vários tipos
Tipo do 1º operando | Tipo do 2º operando | Resultado
null ou string | string | Converte null para "", numérico ou comparação léxica
bool or null | qualquer | Converte para bool, false < true
object | object | Classes nativas podem definir suas próprias comparações, classes diferentes são incomparáveis, same class see Comparação de Objetos
string, resource, int ou float | string, resource, int ou float | Transforma strings e resources para números
array | array | Array com menos membros é menor, se a chave do operando 1 não é encontrada no operando 2, então os arrays são incomparáveis, caso contrário compara valor por valor (veja o seguinte exemplo)
object | qualquer | object é sempre maior
array | qualquer | array é sempre maior

Exemplo #1 Comparações de boolean e null

<?php
// Bool e null são sempre comparados como booleanos
var_dump(1 == TRUE); // TRUE - same as (bool)1 == TRUE
var_dump(0 == FALSE); // TRUE - same as (bool)0 == FALSE
var_dump(100 < TRUE); // FALSE - same as (bool)100 < TRUE
var_dump(-10 < FALSE);// FALSE - same as (bool)-10 < FALSE
var_dump(min(-100, -10, NULL, 10, 100)); // NULL - (bool)NULL < (bool)-100 is FALSE < TRUE
?>

Exemplo #2 Transcrição do padrão de comparação de array

<?php
// Arrays são comparados assim quando utilizando-se os operadores padrão e operador spaceship
function standard_array_compare($op1, $op2)
{
if (count($op1) < count($op2)) {
return -1; // $op1 < $op2
} elseif (count($op1) > count($op2)) {
return 1; // $op1 > $op2
}
foreach ($op1 as $key => $val) {
if (!array_key_exists($key, $op2)) {
return 1;
} elseif ($val < $op2[$key]) {
return -1;
} elseif ($val > $op2[$key]) {
return 1;
}
}
return 0; // $op1 == $op2
}
?>

Aviso

Comparison of floating point numbers

Por conta da forma que floats são representados internamente não se deve testar dois floats com o comparador de igualdade.

Veja a documentação de float para mais detalhes.

Nota: Cuidado. A conversão automática de tipos do PHP não é sempre tão óbiva, quando comparando valores de tipos diferentes, particularmente comparando ints para bools ou ints para strings. No geral é recomendado utilizar as comparações === e !== em vez de utilizar == e != na maioria dos casos.

Valores não comparáveis

Embora a comparação de identidade (=== e !==) possa ser aplicada para valores arbitrários, os outros operadores de comparação somente devem ser aplicados a valores comparáveis. O resultado de comparação de valores não comparáveis não é definida, e não pode ser garantida.

Veja Também

  • strcasecmp()
  • strcmp()
  • Array operators
  • Types

Operador Ternário

Outro operador condicional é o operador "?:" (ou ternário).

Exemplo #3 Atribuindo um valor padrão

<?php
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// The above is identical to this if/else statement
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
?>
A expressão (expr1) ? (expr2) : (expr3) é avaliada para expr2 se expr1 é avaliada como true, ou expr3 se expr1 é avaliada como false.

É possível deixar vazia a parte central do operador ternário. A expressão expr1 ?: expr3 retorna o resultado de expr1 se expr1 avaliar para true, e expr3 se não. expr1 somente é avaliada nessa única situação.

Nota: Note que o operador ternário é uma expressão, e ele não é avaliado para uma variável, mas para o resultado de uma expressão. Isto é importante saber se você quer retornar uma variável por referência. A declaração return $var == 42 ? $a : $b; em uma função que retorna por referência conseqüêntemente não irá funcionar e será avisado.

Nota:

É recomendado evitar empilhar operadores ternários. O comportamento do PHP quando utilizando mais de um operador ternário sem parênteses numa única expressão é menos óbvia, comparada a outras linguagesn. Antes do PHP 8.0.0, os operadores ternários eram avaliados com associatividade à esquerda, em vez de associatividade à direta, como na maioria de outras linguagens. Depender da associatividade à esquerda foi descontinuado a partir do PHP 7.4.0. A partir do PHP 8.0.0, o operador ternário é não associativo.

Exemplo #4 Comportamento não óbvio do ternário

<?php
// Pode parecer que a expressão a seguir imprime 'true'
echo (true ? 'true' : false ? 't' : 'f');

// No entanto, a saída é na verdade 't' antes do PHP 8.0.0
// Isto ocorre porque operadores ternários são associativos à esquerda

// O seguinte é a versão mais intuitiva do código acima
echo ((true ? 'true' : false) ? 't' : 'f');

// Aqui, é possível ver que a primeira expressão avalia para 'true', e então
// é avalidada para (bool)true, e portanto retorna o variante true da
// segunda expressão ternária
?>

Nota:

Encadeamento de ternários curtos (?:), é estável, e comporta-se intuitivamente. Ele avaliará como o primeiro argumento que avalia para uma valor não falso. Observe que valores não definidos irão emitir um alerta.

Exemplo #5 Encadeamento de ternários curtos

<?php
echo 0 ?: 1 ?: 2 ?: 3, PHP_EOL; //1
echo 0 ?: 0 ?: 2 ?: 3, PHP_EOL; //2
echo 0 ?: 0 ?: 0 ?: 3, PHP_EOL; //3
?>

Operador de aglunitação null (Null Coalescing)

Existe ainda o operador "??" (ou null coalescing).

Exemplo #6 Atribuindo um valor padrão

<?php
// Exemplo do operador Null Coalesce
$action = $_POST['action'] ?? 'default';

// O conteúdo acima é idêntico à essa declaração if/else
if (isset($_POST['action'])) {
$action = $_POST['action'];
} else {
$action = 'default';
}
?>
A expressão (expr1) ?? (expr2) é avaliada para expr2 se expr1 for null, e expr1 do contrário.

Esse operador em particular não emite aviso caso o valor da esquerda não exista, assim como isset(). Sendo especialmente útil em chaves de arrays.

Nota: Note que o operador null coalescing é uma expressão, e ele não é avaliado para uma variável, mas para o resultado de uma expressão. Isto é importante saber se você quer retornar uma variável por referência. A declaração return $foo ?? $bar; em uma função que retorna por referência conseqüêntemente não irá funcionar e será avisado.

Nota:

O operador de aglutinação null tem baixa precedência. Isso significa que misturá-lo com outros operadores (como por exemplo concatenação ou aritmética) irá provavelmente exigir parênteses.

<?php
// Emite um aviso que $name não está definido.
print 'Mr. ' . $name ?? 'Anonymous';

// Imprime "Mr. Anonymous"
print 'Mr. ' . ($name ?? 'Anonymous');
?>

Nota:

Note que o operador null coalescing permite a criação de aninhamentos simples:

Exemplo #7 Aninhando o operador null coalescing

<?php

$foo = null;
$bar = null;
$baz = 1;
$qux = 2;

echo $foo ?? $bar ?? $baz ?? $qux; // exibe 1

?>


Operadores de Controle de Erro

O PHP suporta um operador de controle de erro: o sinal 'arroba' (@). Quando ele precede uma expressão em PHP, qualquer mensagem de erro que possa ser gerada por aquela expressão será ignorada.

Se um manipulador de erro personalizado estiver configurado com set_error_handler(), ele ainda assim será chamado, mesmo com a mensagem de diagnóstico suprimida.

Aviso

Antes do PHP 8.0.0, error_reporting() chamada dentro de um manipulador de erro sempre retornava 0 se a mensagem de erro era suprimida pelo operador @. Desde o PHP 8.0.0, ele retorna o valor da expressão bitwise dos valores: E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE.

Quaisquer mensages de erro geradas an expressão fica disponível no elemento "message" do array retornado por error_get_last(). O resultado daquela função irá se alterar em cada erro, então é necessário fazer a verificação imediatamente.

<?php
/* Erro de arquivo intencional */
$my_file = @file ('arquivo_nao_existente') or
die ("Falha abrindo arquivo: erro foi '" . error_get_last()['message'] . "'");

// Isto funciona para qualquer expressão, não apenas para funções:
$value = @$cache[$key];
// você não receberá nenhum aviso se a chave $key não existir.

?>

Nota: O operador @ funciona somente em expressões. Uma regra simples para lembrar disso: se você pode pegar o valor de alguma coisa, você pode prefixar isso com o operador @. Por exemplo, ele pode prefixar variáveis, chamadas de funções, alguns constructos de linguagem (include), e assim por diante. O operador não pode ser prefixado em definições de classes ou funções, estruturas condicionais como if, foreach, e semelhantes.

Aviso

Antes do PHP 8.0.0, o operador @ conseguia inibir erros críticos que iriam encerrar a execução do script. Por exemplo, prefixar @ numa chamada de uma função inexistente, por estar indisponível ou por erro de digitação, iria encerrar o script sem nenhuma indicação da causa.

Veja Também

  • error_reporting()
  • Manipulação de erros e funções de log


Operadores de Execução

O PHP suporta um operador de execução: acentos graves (``). Note que não são aspas simples! O PHP tentará executar o conteúdo dentro dos acentos graves como um comando do shell; a saída será retornada (isto é, ela não será simplesmente mostrada na tela; ela pode ser atribuída a uma variável). A utilização do operador acento grave é idêntica a da função shell_exec().

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

Nota:

O operador de execução fica desabilitado quando shell_exec() está desabilitado.

Nota:

Ao contrário de outras linguagens, acentos graves não tem sentido especial dentro de strings delimitadas por aspas.

Veja Também

  • Funções de execução de programas
  • popen()
  • proc_open()
  • Utilizando o PHP em linha de comando


Operadores Lógicos

Operadores Lógicos
Exemplo | Nome | Resultado
$a and $b | E | true se ambos $a e $b é true.
$a or $b | OU | true se $a ou $b é true.
$a xor $b | XOR | true se $a ou $b é true, mas não ambos ao mesmo tempo.
! $a | Não | true se $a não é true.
$a && $b | E | true se ambos $a e $b são true.
$a || $b | OU | true se $a ou $b é true.

A razão para as duas variantes dos operandos "and" e "or" é que eles operam com precedências diferentes. (Veja Precedência de Operadores.)

Exemplo #1 Ilustrando operadores lógicos

<?php

// --------------------
// foo() nunca será chamada porque toda a expressão sofre curto circuito

$a = (false && foo());
$b = (true || foo());
$c = (false and foo());
$d = (true or foo());

// --------------------
// "||" tem maior precedência que "or"

// O resultado da expressão (false || true) é atribuido em $e
// Funciona como: ($e = (false || true))
$e = false || true;

// A constante false é atribuída a $f antes que o "or" ocorra
// Funciona como: (($f = false) or true)
$f = false or true;

var_dump($e, $f);

// --------------------
// "&&" tem maior precedência que "and"

// O resultado da expressão (true && false) é atribuído em $g
// Funciona como: ($g = (true && false))
$g = true && false;

// A constante true é atribuída em $h antes que o "and" ocorra
// Funciona como: (($h = true) and false)
$h = true and false;

var_dump($g, $h);
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)
bool(false)
bool(true)


Operadores de String

Há dois operadores de string. O primeiro é o operador de concatenação ('.'), que retorna a concatenação dos seus argumentos direito e esquerdo. O segundo é o operador de atribuição de concatenação ('.='), que acrescenta o argumento do lado direito no argumento do lado esquerdo. Veja em Operadores de Atribuição para mais informações.

<?php
$a = "Olá ";
$b = $a . "mundo!"; // agora $b contém "Olá mundo!"

$a = "Olá ";
$a .= "mundo!"; // agora $a contém "Olá mundo!"
?>

Veja Também

  • Tipo string
  • Funções string


Operadores de Arrays

Operadores de array
Exemplo | Nome | Resultado
$a + $b | União | União de $a e $b.
$a == $b | Igualdade | true se $a e $b tem as mesmas chaves e valores.
$a === $b | Identidade | true se $a e $b tem as mesmas chaves e valores, na mesma ordem e com os mesmos tipos.
$a != $b | Desigualdade | true se $a não é igual $b.
$a <> $b | Desigualdade | true se $a não é igual $b.
$a !== $b | Não identidade | true se $a não é idêntico a $b.

O operador + retorna o array à direta anexado ao array da esquerda. Para chaves que existam nos dois arrays os elementos do array à esquerda serão mantidos, os valores de mesma chave no array da direita são ignorados.

<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b; // Union of $a and $b
echo "Union of \$a and \$b: \n";
var_dump($c);

$c = $b + $a; // Union of $b and $a
echo "Union of \$b and \$a: \n";
var_dump($c);

$a += $b; // Union of $a += $b is $a and $b
echo "Union of \$a += \$b: \n";
var_dump($a);
?>
Quando executado, o script produz uma saída assim:
Union of $a and $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
Union of $b and $a:
array(3) {
  ["a"]=>
  string(4) "pear"
  ["b"]=>
  string(10) "strawberry"
  ["c"]=>
  string(6) "cherry"
}
Union of $a += $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}

Elementos do array são iguais para efeitos de comparação se eles possuem o mesmo valor e chave.

Exemplo #1 Comparando arrays

<?php
$a = array("maçã", "banana");
$b = array(1 => "banana", "0" => "maçã");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Veja Também

  • Tipo array
  • Funções em arrays


Operadores de Tipo

instanceof é usado para determinar se um variável do PHP é uma objeto instânciado de uma certa classe:

Exemplo #1 Usando instanceof com classes

<?php
class MyClass
{
}

class NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

O exemplo acima produzirá:

bool(true)
bool(false)

instanceof pode também ser usado para determinar se uma variável é um objeto instânciado de uma classe que herda de uma classe pai:

Exemplo #2 Usando instanceof com herança

<?php
class ParentClass
{
}

class MyClass extends ParentClass
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

O exemplo acima produzirá:

bool(true)
bool(true)

Para verificar se um objeto não é uma instância de uma classe, o operador lógico not pode ser usado.

Exemplo #3 Usando instanceof para verificar se o objeto não é uma instância da classe

<?php
class MyClass
{
}

$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>

O exemplo acima produzirá:

bool(true)

Por fim, instanceof pode também ser usado para determinar se uma variável é um objeto instânciado de uma classe que implementa uma interface:

Exemplo #4 Usando instanceof para classe

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

O exemplo acima produzirá:

bool(true)
bool(true)

Embora instanceof é usualmente usado com um nome de classe literal, ele pode também ser usado com outro objeto ou uma variável string:

Exemplo #5 Usando instanceof com outras variáveis

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;
$b = new MyClass;
$c = 'MyClass';
$d = 'NotMyClass';

var_dump($a instanceof $b); // $b é umn objeto da classe MyClass
var_dump($a instanceof $c); // $c é uma string 'MyClass'
var_dump($a instanceof $d); // $d é uma string 'NotMyClass'
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)

instanceof não lança erros se a variável testada não for um objeto, apenas retorna false. Constantes não são permitidas anteriormente ao PHP 7.3.0.

Exemplo #6 Utilizando instanceof para testar outras variáveis

<?php
$a = 1;
$b = NULL;
$c = imagecreate(5, 5);
var_dump($a instanceof stdClass); // $a é um inteiro
var_dump($b instanceof stdClass); // $b é NULL
var_dump($c instanceof stdClass); // $c é um resource
var_dump(FALSE instanceof stdClass);
?>

O exemplo acima produzirá:

bool(false)
bool(false)
bool(false)
PHP Fatal error:  instanceof expects an object instance, constant given

Desde oPHP 7.3.0, constantes são permitidas à esquerda do operador instanceof.

Exemplo #7 Utilizando instanceof em constantes

<?php
var_dump(FALSE instanceof stdClass);
?>

Saída do exemplo acima no PHP 7.3:

bool(false)

Desde o PHP 8.0.0, instanceof pode ser utilizado em expressões arbitrárias. A expressão precisa estar dentro parênteses e produzir uma string.

Exemplo #8 Usando instanceof em expressões arbitrárias

<?php

class ClassA extends \stdClass {}
class ClassB extends \stdClass {}
class ClassC extends ClassB {}
class ClassD extends ClassA {}

function getSomeClass(): string
{
return ClassA::class;
}

var_dump(new ClassA instanceof ('std' . 'Class'));
var_dump(new ClassB instanceof ('Class' . 'B'));
var_dump(new ClassC instanceof ('Class' . 'A'));
var_dump(new ClassD instanceof (getSomeClass()));
?>

Saída do exemplo acima no PHP 8:

bool(true)
bool(true)
bool(false)
bool(true)

O operador instanceof tem uma variação funcional chamada is_a() function.

Veja Também

  • get_class()
  • is_a()


Estruturas de Controle

Índice

  • Introdução
  • if
  • else
  • elseif/else if
  • Sintaxe Alternativa para estruturas de controle
  • while
  • do-while
  • for
  • foreach
  • break
  • continue
  • switch
  • match
  • declare
  • return
  • require
  • include
  • require_once
  • include_once
  • goto


Introdução

Qualquer script PHP é construído por uma série de instruções. Uma instrução pode ser uma atribuição, uma chamada de função, um laço de repetição, uma instrução condicional, ou mesmo uma instrução que não faz nada (um comando vazio). Instruções geralmente terminam com um ponto e vírgula. Além disso, as instruções podem ser agrupados em um grupo de comandos através do encapsulamento de um grupo de comandos com chaves. Um grupo de comandos é uma instrução também. Os vários tipos de instruções são descritos neste capítulo.

Veja Também

Os itens seguintes são considerados como construtos da linguagem, mesmo que eles sejam referenciados como funções neste manual.

  • list()
  • array()
  • echo
  • eval()
  • print


if

(PHP 4, PHP 5, PHP 7, PHP 8)

O construtor if é um dos recursos mais importantes em muitas linguagens, inclusive no PHP. Permite a execução condicional de fragmentos de código. O PHP apresenta uma estrutura if semelhante a do C:

if (expr)
  statement

Como descrito na seção sobre expressões, expressões são avaliadas por seus valores Booleanos. Se uma expressão for avaliada como true, o PHP executará a declaração, e se avaliá-la como false - ignorá-la. Mais informações sobre quais valores são avaliados como false pode ser encontrada na seção 'Conversão para booleano' .

O exemplo a seguir exibirá a is bigger than b se $a for maior que $b:

<?php
if ($a > $b)
echo "a is bigger than b";
?>

Muitas vezes deseja-se que mais de uma declaração seja condicionalmente executada. É claro que não é necessário envolver cada declaração em uma cláusula if. Em vez disso, pode-se agrupar várias declarações em grupos. Por exemplo, este código exibirá a is bigger than b se $a for maior que $b, e atribuirá o valor de $a em $b:

<?php
if ($a > $b) {
echo "a is bigger than b";
$b = $a;
}
?>

A declaração If pode ser aninhada indefinidamente dentro de outras declarações if, fornecendo completa flexibilidade para execução condicional de várias partes do programa.


else

(PHP 4, PHP 5, PHP 7, PHP 8)

Muitas vezes deseja-se executar uma instrução se uma certa condição for válida, e uma instrução diferente se a mesma condição não for válida. Para isso que o else serve. O else estende a instrução if para executar outras caso a expressão no if retornar false. Por exemplo, o código a seguir exibirá a is greater than b se $a for maior que $b, e a is NOT greater than b caso contrário:

<?php
if ($a > $b) {
echo "a is greater than b";
} else {
echo "a is NOT greater than b";
}
?>
A instrução else só é executada se a expressão de avaliação do if for avaliada como false, e se tiver qualquer expressão elseif - somente se também retornarem false (veja elseif).

Nota: Else pendurado

Em caso de declarações if-else aninhadas, um else é sempre associado com o if mais próximo.

<?php
$a = false;
$b = true;
if ($a)
if ($b)
echo "b";
else
echo "c";
?>
Apesar da indentação (o que não importa para o PHP), o else é associado com o if ($b), então o exemplo não produz nenhuma saída. Embora seja válido confiar nesse comportamento, é recomendado evitá-lo usando chaves para resolver ambiguidades em potencial.


elseif/else if

(PHP 4, PHP 5, PHP 7, PHP 8)

elseif, como o nome sugere, é uma combinação do if e else. Como o else, estende um if para executar instruções diferentes no caso da expressão if original ser avaliada como false. Entretanto, diferentemente do else, executará uma expressão alternativa somente se a expressão condicional do elseif for avaliada como true. Por exemplo, o código a seguir exibirá a é maior que b, a é igual a b ou a é menor que b:

<?php
if ($a > $b) {
echo "a é maior que b";
} elseif ($a == $b) {
echo "a é igual a b";
} else {
echo "a é menor que b";
}
?>

Pode haver vários elseifs dentro da mesma instrução if. A primeira expressão elseif (se houver) que retornar true será executada. No PHP, pode-se escrever else if (em duas palavras), e o comportamento será idêntico ao do elseif (em uma única palavra). O significado sintático é um pouco diferente (se você está familiarizado com C, mas, no final, ambos terão exatamente o mesmo comportamento.

O elseif só é executado se o if precedente ou qualquer elseif for avaliado como false, e o elseif corrente for avaliado como true.

Nota: Note que o elseif e else if só serão considerados exatamente iguais se usados com chaves como no exemplo abaixo. Ao utilizar os dois pontos (:) para definir as condições de if/elseif, então o uso de elseif como uma única palavras se torna necessário, ou o PHP falhará com um erro de interpretação se else if estiver separado em duas palavras.

<?php

/* Método Incorreto: */
if ($a > $b):
echo $a." é maior que ".$b;
else if ($a == $b): // Não irá compilar.
echo "A linha acima causa um erro de análise.";
endif;

/* Método Correto: */
if ($a > $b):
echo $a." é maior que ".$b;
elseif ($a == $b): // Note a combinação das palavras.
echo $a." é igual a ".$b;
else:
echo $a." não é maior nem igual a ".$b;
endif;

?>


Sintaxe Alternativa para estruturas de controle

(PHP 4, PHP 5, PHP 7, PHP 8)

O PHP oferece uma sintaxe alternativa para algumas estruturas de controle; a saber, if, while, for, foreach, e switch. Em cada caso, basicamente a sintaxe alternativa é trocar a chave de abertura por dois pontos (:) e a chave de fechamento por endif;, endwhile;, endfor;, endforeach;, ou endswitch;, respectivamente.

<?php if ($a == 5): ?>
A é igual a 5
<?php endif; ?>

No exemplo acima, o bloco HTML "A é igual a 5" está dentro de um if escrito na sintaxe alternativa. O bloco HTML será exibido somente se $a for igual a 5.

A sintaxe alternativa também se aplica ao else e elseif. A seguir um exemplo de um if com elseif e else no formato alternativo:

<?php
if ($a == 5):
echo "a equals 5";
echo "...";
elseif ($a == 6):
echo "a equals 6";
echo "!!!";
else:
echo "a is neither 5 nor 6";
endif;
?>

Nota:

Misturar a sintaxe no mesmo bloco de controle não é suportado.

Aviso

Qualquer saída (inclusive espaços em branco) entre um switch e o primeiro case irá resultar em um erro de sintaxe. O exemplo abaixo é inválido:

<?php switch ($foo): ?>
 <?php case 1: ?>
 ...
<?php endswitch; ?>

Enquanto que este é válido, já que a quebra de linha depois do switch é considerado parte da tag de fechamento ?> e, portanto, nenhuma saída será enviada entre o switch e case:

<?php switch ($foo): ?>
<?php case 1: ?>
 ...
<?php endswitch; ?>

Veja mais sobre while, for, e if para outros exemplos.


while

(PHP 4, PHP 5, PHP 7, PHP 8)

Laços while são os mais simples tipos de laços do PHP. Possui comportamento semelhante ao C. O formato básico de uma declaração while é:

while (expr)
    statement

O propósito da declaração while é simples. Ele dirá ao PHP para executar as declarações aninhadas repetidamente, enquanto a expressão do while forem avaliadas como true. O valor da expressão é checado a cada vez que o laço é iniciado, então, mesmo seu valor mude durante a a execução das declarações aninhadas, a execução não será interrompida até o final da iteração ( cada vez que o PHP executa as declarações dentro do laço é uma iteração). Se a expressão do while for avaliada como false desde o início, as declarações aninhadas não serão executadas nenhuma vez.

Similar a declaração if, pode-se agrupar múltiplas declarações no mesmo laço while delimitando o grupo de declarações por chaves, ou utilizando a sintaxe alternativa:

while (expr):
    statement
    ...
endwhile;

Os exemplos a seguir são idênticos, e ambos imprimem os números de 1 a 10.

<?php
/* example 1 */

$i = 1;
while ($i <= 10) {
echo $i++; /* the printed value would be
$i before the increment
(post-increment) */
}

/* example 2 */

$i = 1;
while ($i <= 10):
echo $i;
$i++;
endwhile;
?>


do-while

(PHP 4, PHP 5, PHP 7, PHP 8)

Os laços do-while é muito similar aos laços while, com exceção que a expressão de avaliação é verificada ao final de cada iteração em vez de no começo. A maior diferença para o laço while é que a primeira iteração do laço do-while sempre é executada (a expressão de avaliação é executada somente no final da iteração), considerando que no laço while não é necessariamente executada (a expressão de avaliação é executada no começo de cada iteração, se avaliada como false logo no começo, a execução do laço será abortada imediatamente).

Só há uma sintaxe para o laço do-while:

<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>

O laço acima será executado somente uma vez, pois após a primeira iteração, quando a expressão de avaliação for executada, resultará em false ($i não é maior que 0) e a execução do laço será encerrada.

Usuário avançados de C devem estar familiarizados com um uso diferente do laço do-while, que permite parar a execução no meio do bloco de códigos, encapsulando-os em um do-while (0), e usando o break . O código a seguir demonstra isso:

<?php
do {
if ($i < 5) {
echo "i is not big enough";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i is ok";

/* process i */

} while (0);
?>

É possível usar o goto ao invés desse hack.


for

(PHP 4, PHP 5, PHP 7, PHP 8)

Os laços for são os mais complexo no PHP. Possui comportamento semelhante ao C. A sintaxe do laço for é:

for (expr1; expr2; expr3)
    statement

A primeira expressão (expr1) é avaliada (executada), uma vez, incondicionalmente, no início do laço.

No começo de cada iteração a expr2 é avaliada. Se a avaliada como true, o laço continuará e as instruções aninhada serão executadas. Se avaliada como false, a execução do laço terminará.

No final de cada iteração, a expr3 é avaliada (executada).

Cada uma das expressões podem ser vazias ou conter múltiplas expressões separadas por vírgulas. Na expr2, todas as expressões separadas por vírgula são avaliadas mas o resultado é obtido da última parte. Se a expr2 estiver vazia significa que o laço deve ser executado indefinidamente (O PHP considera implicitamente como true, igual ao C). Isto não é inútil como se imagina, pois muitas vezes deseja-se interromper o laço utilizando a instrução break ao invés de usar a expressão verdade do for.

Analise os seguintes exemplos. Todos exibem números de 1 até 10:

<?php
/* exemplo 1 */

for ($i = 1; $i <= 10; $i++) {
echo $i;
}

/* exemplo 2 */

for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}

/* exemplo 3 */

$i = 1;
for (; ; ) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}

/* exemplo 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

É claro que o primeiro exemplo aparenta ser o mais simpático (ou talvez o quarto), mas pode-se achar que o uso de expressões vazias no laço for, seja vantajoso em algumas ocasiões.

O PHP também suporta a sintaxe alternativa "dois pontos" para o laço for.

for (expr1; expr2; expr3):
    statement
    ...
endfor;

É comum, para muitos usuários, iterar em arrays como no exemplo abaixo.

<?php
/*
* Este é um array com alguns dados que devem ser modificados
* durante a execução do loop for.
*/
$pessoas = array(
array('nome' => 'Lucas', 'salt' => 856412),
array('nome' => 'André', 'salt' => 215863)
);

for($i = 0; $i < count($pessoas); ++$i) {
$pessoas[$i]['salt'] = mt_rand(000000, 999999);
}
?>

O código acima pode se tornar lento, pois o tamanho do array será calculado a cada iteração. Desde que o tamanho nunca mude, o laço pode ser facilmente otimizado usando uma variável intermediária para armazenar o tamanho ao invés de executar repetidamente o count():

<?php
$pessoas = array(
array('nome' => 'Lucas', 'salt' => 856412),
array('nome' => 'André', 'salt' => 215863)
);

for($i = 0, $tamanho = count($pessoas); $i < $tamanho; ++$i) {
$pessoas[$i]['salt'] = mt_rand(000000, 999999);
}
?>


foreach

(PHP 4, PHP 5, PHP 7, PHP 8)

O construtor foreach fornece uma maneira fácil de iterar sobre arrays. O foreach funciona somente em arrays e objetos, e emitirá um erro ao tentar usá-lo em uma variável com um tipo de dado diferente ou em uma variável não inicializada. Possui duas sintaxes:

foreach (iterable_expression as $valor)
    statement
foreach (iterable_expression as $chave => $valor)
    statement

A primeira forma percorre o iterável dado por iterable_expression. A cada iteração, o valor do elemento atual é atribuído a $valor.

A segunda forma var, adicionalmente, atribuir a chave do elemento corrente a variável $chave a cada iteração.

Note que o foreach não modifica o ponteiro interno do array, que é usado por funções como current() e key().

É possível customizar a iteração em objetos.

Para modificar diretamente elementos de um array dentro de um laço, preceda $valor com &. Neste caso, o valor será atribuído por referência.

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$valor) {
$valor = $valor * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($valor); // quebra a referência com o último elemento
?>

Aviso

A referência ao $valor e o último elemento do array permanecerá inalterado mesmo após a iteração do foreach. É recomendado destruí-lo utilizando a função unset(). Caso contrário você experienciará o seguinte comportamento:

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$valor) {
$valor = $valor * 2;
}
// $arr agora é array(2, 4, 6, 8)

// sem um unset($valor), $valor continuará como referência ao último item: $arr[3]

foreach ($arr as $chave => $valor) {
// $arr[3] será atualizado com cada valor de $arr...
echo "{$chave} => {$valor} ";
print_r($arr);
}
// ...até que, o segundo e último valor é copiado para o último valor

// saída:
// 0 => 2 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 2 )
// 1 => 4 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 4 )
// 2 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
// 3 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
?>

É possível iterar o valor de um array constante por referência

<?php
foreach (array(1, 2, 3, 4) as &$valor) {
$valor = $valor * 2;
}
?>

Nota:

O foreach não possui suporte a habilidade de suprimir mensagens de erro utilizando @.

Mais alguns exemplos para demonstrar o uso:

<?php
/* Exemplo foreach1: somente valores */

$a = array(1, 2, 3, 17);

foreach ($a as $v) {
echo "Current value of \$a: $v.\n";
}

/* Exemplo foreach 2: valor com acesso manual (apenas ilustrativo) */

$a = array(1, 2, 3, 17);

$i = 0; /* apenas para ilustrar */

foreach ($a as $v) {
echo "\$a[$i] => $v.\n";
$i++;
}

/* Exemplo foreach 3: chave e valor */

$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);

foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}

/* Exemplo foreach 4: arrays multi dimencionais */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
foreach ($v1 as $v2) {
echo "$v2\n";
}
}

/* Exemplo foreach 5: arrays dinâmicos */

foreach (array(1, 2, 3, 4, 5) as $v) {
echo "$v\n";
}
?>

Desempacotando arrays aninhados com o construtor list()

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

É possível iterar sobre um array de arrays e desempacotar arrays aninhados em variáveis do laço fornecendo o construtor list() como valor.

Por exemplo:

<?php
$array = [
[1, 2],
[3, 4],
];

foreach ($array as list($a, $b)) {
// $a contém o primeiro elemento do array aninhado,
// e $b contém o segundo elemento.
echo "A: $a; B: $b\n";
}
?>

O exemplo acima produzirá:

A: 1; B: 2
A: 3; B: 4

Pode-se se fornecer menos elementos ao construtor list() aos que existem no array aninhado, neste caso, os valores do array que sobrarem serão ignorados.

<?php
$array = [
[1, 2],
[3, 4],
];

foreach ($array as list($a)) {
// Veja que não existe $b aqui.
echo "$a\n";
}
?>

O exemplo acima produzirá:

1
3

Um aviso será gerado se não houver elementos suficientes no array para o preenchimento do construtor list():

<?php
$array = [
[1, 2],
[3, 4],
];

foreach ($array as list($a, $b, $c)) {
echo "A: $a; B: $b; C: $c\n";
}
?>

O exemplo acima produzirá:

Notice: Undefined offset: 2 in example.php on line 7
A: 1; B: 2; C:

Notice: Undefined offset: 2 in example.php on line 7
A: 3; B: 4; C:


break

(PHP 4, PHP 5, PHP 7, PHP 8)

break finaliza a execução da estrutura for, foreach, while, do-while ou switch atual.

break aceita um argumento numérico opcional que diz quantas estruturas aninhadas deverá interromper. O valor padrão é 1, somente a estrutura imediata é interrompida.

<?php
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
foreach ($arr as $val) {
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 "At 10; quitting<br />\n";
break 2; /* Exit the switch and the while. */
default:
break;
}
}
?>


continue

(PHP 4, PHP 5, PHP 7, PHP 8)

continue é usado em estruturas de repetição para pular o restante da iteração atual do laço e continuar a execução na validação da condição e depois no início da próxima iteração.

Nota: No PHP, a instrução switch é considerada uma estrutura de repetição para os propósitos de continue. continue se comporta como break (quando nenhum argumento é passado), mas emitirá um aviso, pois é provável que seja um erro. Se um switch estiver dentro de um laço, continue 2 continuará na próxima iteração do laço externo.

continue aceita um argumento numérico opcional que informa quantos níveis de laços aninhados ele deve pular. O valor padrão é 1, pulando assim para o final do laço atual.

<?php
$array = ['zero', 'um', 'dois', 'três', 'quatro', 'cinco', 'seis'];
foreach ($array as $chave => $valor) {
if (!($chave % 2)) { // pula membros com chaves pares
continue;
}
echo $valor . "\n";
}
?>

Os exemplos acima produzirão:

um
três
cinco
<?php
$i = 0;
while ($i++ < 5) {
echo "Externo\n";
while (1) {
echo "Meio\n";
while (1) {
echo "Interno\n";
continue 3;
}
echo "Isso nunca é exibido.\n";
}
echo "Nem isso.\n";
}
?>

Os exemplos acima produzirão:

Externo
Meio
Interno
Externo
Meio
Interno
Externo
Meio
Interno
Externo
Meio
Interno
Externo
Meio
Interno

Omitir o ponto e vírgula após continue pode causar confusão. Abaixo está um exemplo do que não se deve fazer.

<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue
print "$i\n";
}
?>

O resultado esperado poderia ser:

0
1
3
4

Lista de modificações de continue
Versão | Descrição
7.3.0 | continue em um switch que está tentando agir como uma declaração break para o switch gerará um E_WARNING.


switch

(PHP 4, PHP 5, PHP 7, PHP 8)

A declaração switch é similar a uma série de declarações IF na mesma expressão. Em muitos casos, se deseja comparar as mesmas variáveis (ou expressões), com diferentes valores, e executar pedaços diferentes de código dependendo de qual valor ela é igual. Esta é exatamente a serventia da declaração switch.

Nota: Note que ao contrário de outras linguagens, a declaração continue aplica-se ao switch e age similarmente ao break. Se possuir um switch dentro de um laço, e deseja continuar na próxima iteração do laço externo, utilize continue 2.

Nota:

Note que o switch/case faz comparação frouxa.

No exemplo a seguir, cada bloco de código é equivalente. Um usa uma série de declarações if e elseif, e o outra usa uma declaração switch. A saída é a mesm a em ambos os casos.

Exemplo #1 Estrutura do switch

<?php
// Esta declaração switch:

switch ($i) {
case 0:
echo "i é igual a 0";
break;
case 1:
echo "i é igual a 1";
break;
case 2:
echo "i é igual a 2";
break;
}

// É equivalente a:

if ($i == 0) {
echo "i é igual a 0";
} elseif ($i == 1) {
echo "i é igual a 1";
} elseif ($i == 2) {
echo "i é igual a 2";
}
?>

É importante entender como a declaração switch é executada a fim de evitar enganos. A declação switch executa linha por linha (na verdade, declaração por declaração). No início nenhum código é executado. Somente quando uma declaração case é encontrada, cuja expressão avalia um valor que corresponde ao valor do switch, o PHP começará a executar a declaração. O PHP continuará a executar a declaração até o fim do bloco switch, ou até a primeira declaração break encontrada. Se não for escrita uma declaração break ao final da lista de declarações do case, o PHP continuará executando as declarações dos próximos cases. Por exemplo:

<?php
switch ($i) {
case 0:
echo "i é igual a 0";
case 1:
echo "i é igual a 1";
case 2:
echo "i é igual a 2";
}
?>

Neste exemplo, se a variável $i for igual a 0, o PHP executará todos as declarações echo! Se a variável $i for igual a 1, o PHP executará as duas últimas declarações echo. Somente se obterá o comportamento esperado ('i equals 2' será exibido), se $i for igual a 2. Sendo assim, é importante não esquecer as declarações break (mesmo quando se quer evitar, de propósito, sua omissão em certas circunstâncias).

Em uma declaração switch, a condição é avaliada somente uma vez, e o resultado é comparado a cada declaração case. Em uma declaração elseif. a condição é avaliada outra vez. Se a condição for mais complicada que uma simples comparação e/ou está em um laço pequeno, a declaração switch pode ser mais rápida.

A lista de declarações de um case também podem estar vazia, passando o controle da lista de declarações para o próximo case.

<?php
switch ($i) {
case 0:
case 1:
case 2:
echo "i é menor que 3 mas não é negativo";
break;
case 3:
echo "i é 3";
}
?>

Um case especial é o default. Este case corresponde a tudo que não foi correspondido pelos outros cases. Por exemplo:

<?php
switch ($i) {
case 0:
echo "i é igual a 0";
break;
case 1:
echo "i é igual a 1";
break;
case 2:
echo "i é igual a 2";
break;
default:
echo "i não é igual a 0, 1 ou 2";
}
?>

Nota: Múltiplos casos padrões irão emitir um erro E_COMPILE_ERROR.

Nota: Tecnicamente o caso default pode ser listado em qualquer ordem. Ele será usado apenas se nenhum outro caso corresponder. No entando, por conversão, é melhor inseri-lo no fim como a última ramificação.

Se nenhuma ramificação case corresponder, e não existe nenhuma ramificação default, então nenhum código será executado, assim como se nenhuma declaração if fosse verdadeira.

Um valor de caso pode ser dado como uma expressão. No entanto, essa expressão será avaliada de forma isolada, e então será frouxamente comparada com o valor do switch. Isso significa que ela não pode ser usada para avaliações complexas do valor do switch. Por exemplo:

<?php
$alvo = 1;
$inicio = 3;

switch ($alvo) {
case $inicio - 1:
print "A";
break;
case $inicio - 2:
print "B";
break;
case $inicio - 3:
print "C";
break;
case $inicio - 4:
print "D";
break;
}

// Imprime "B"
?>

Para comparações mais complexas, o valor true pode ser usado como o valor do switch. Ou, alternativamente, if-else em vez do switch.

<?php
$deslocamento = 1;
$inicio = 3;

switch (true) {
case $inicio - $deslocamento === 1:
print "A";
break;
case $inicio - $deslocamento === 2:
print "B";
break;
case $inicio - $deslocamento === 3:
print "C";
break;
case $inicio - $deslocamento === 4:
print "D";
break;
}

// Imprime "B"
?>

A sintaxe alternativa das estruturas de controle é suportada por switches. Para mais informações, veja Sintaxe alternativa para estruturas de controle.

<?php
switch ($i):
case 0:
echo "i é igual a 0";
break;
case 1:
echo "i é igual a 1";
break;
case 2:
echo "i é igual a 2";
break;
default:
echo "i não é igual a 0, 1 ou 2";
endswitch;
?>

É possível utilizar o ponto e vírgula ao invés dos dois pontos em um case, como:

<?php
switch($cerveja)
{
case 'amstel';
case 'brahma';
case 'stella';
case 'heineken';
echo 'Boa escolha';
break;
default;
echo 'Por favor faça uma nova seleção...';
break;
}
?>

Veja Também

  • match


match

(PHP 8)

A expressão match ramifica a avaliação baseada em uma verificação de identidade de um valor. Semelhante a uma declaração switch, uma expressão match possui uma expressão sujeito que é comparada com múltiplas alternativas. Ao contrário da switch, ela irá avaliar para um valor assim como as expressões ternárias. Diferente da switch, a comparação é uma verificação de identidade (===) em vez de uma comparação de equalidade fraca (==). Expressões match estão diponíveis a partir do PHP 8.0.0.

Exemplo #1 Estrutura de uma expressão match

<?php
$valor_de_retorno = match (expressao_sujeito) {
expressao_condicional_unica => expressao_de_retorno,
expressao_condicional1, expressao_condicional2 => expressao_de_retorno,
};
?>

Exemplo #2 Basic match usage

<?php
$comida = 'bolo';

$valor_de_retorno = match ($comida) {
'apple' => 'Essa comida é uma maçã',
'bar' => 'Essa comida é um bar',
'bolo' => 'Essa comida é um bolo',
};

var_dump($valor_de_retorno);
?>

O exemplo acima produzirá:

string(19) "Essa comida é um bolo"

Nota: O resultado de uma expressão match não precisa ser usado.

Nota: Uma expressão match deve ser terminada por um ponto e vírgula ;.

A expressão match é similar a uma declaração switch mas tem algumas diferenças importantes:

  • Um braço match compara valores estritamente (===) em vez de frouxamente como a declaração switch faz.
  • Uma expressão match retorna um valor.
  • Braços match não seguem para casos posteriores da maneira que declarações switch seguem.
  • Uma expressão match deve ser exaustiva.

Assim como as declarações switch, expressões match são executadas braço de correspondência por braço de correspondência. No início, nenhum código é executado. A expressões condicionais só são avaliadas se todas as expressões condicionais anteriores não corresponderem à expressão sujeito. Apenas a expressão de retorno pertencente à expressão condicional de correspondência será avaliada.

<?php
$resultado = match ($x) {
foo() => ...,
$this->bar() => ..., // $this->bar() não é chamado se foo() === $x
$this->baz => beep(), // beep() não é chamado a não ser que $x === $this->baz
// etc.
};
?>

Braços da expressão match podem conter múltiplas expressões separadas por uma vírgula. Isso é um OR lógico, e é uma forma abreviada para múltimplos braços de correspondência com o mesmo lado direito.

<?php
$resultado = match ($x) {
// Este braço de correspondência:
$a, $b, $c => 5,
// É equivalente a estes três braços de correspondência:
$a => 5,
$b => 5,
$c => 5,
};
?>

Um caso especial é o padrão default. Esse padrão atende a qualquer coisa que não tenha sido atendida anteriormente. Por exemplo:

<?php
$resultadoDaExpressao = match ($condicao) {
1, 2 => foo(),
3, 4 => bar(),
default => baz(),
};
?>

Nota: Múltiplos padrões default irão emitir um erro E_FATAL_ERROR.

Uma expressão match deve ser exaustiva. Se a expressão sujeito não for tratada por nenhum braço de correspondência um UnhandledMatchError é lançado.

Exemplo #3 Exemplo de uma expressão match não tratada

<?php
$condicao = 5;

try {
match ($condicao) {
1, 2 => foo(),
3, 4 => bar(),
};
} catch (\UnhandledMatchError $e) {
var_dump($e);
}
?>

O exemplo acima produzirá:

object(UnhandledMatchError)#1 (7) {
  ["message":protected]=>
  string(33) "Unhandled match value of type int"
  ["string":"Error":private]=>
  string(0) ""
  ["code":protected]=>
  int(0)
  ["file":protected]=>
  string(9) "/in/ICgGK"
  ["line":protected]=>
  int(6)
  ["trace":"Error":private]=>
  array(0) {
  }
  ["previous":"Error":private]=>
  NULL
}

Usando expressões match para tratar verificações sem identidade

É possível usar uma expressão match para tratar casos condicionais sem identidade usando true como a expressão sujeito.

Exemplo #4 Usando uma expressão match generalizada para ramificar com base em intervalos de inteiros

<?php

$idade = 23;

$resultado = match (true) {
$idade >= 65 => 'senhor',
$idade >= 25 => 'adulto',
$idade >= 18 => 'adolescente',
default => 'criança',
};

var_dump($resultado);
?>

O exemplo acima produzirá:

string(11) "adolescente"

Exemplo #5 Usando uma expressão match generalizada para ramificar com base no conteúdo de strings

<?php

$texto = 'Bienvenue chez nous';

$resultado = match (true) {
str_contains($texto, 'Welcome') || str_contains($texto, 'Hello') => 'en',
str_contains($texto, 'Bienvenue') || str_contains($texto, 'Bonjour') => 'fr',
// ...
};

var_dump($resultado);
?>

O exemplo acima produzirá:

string(2) "fr"


declare

(PHP 4, PHP 5, PHP 7, PHP 8)

A instrução declare é usada para definir diretivas de execução para um bloco de código. A sintaxe do declare é similar à sintaxe de outros construtos de controle de fluxo:

declare (directive)
    statement

A seção directive permite que o comportamento do bloco do declare seja definido. Atualmente três diretivas são reconhecidas: a diretiva ticks (Veja abaixo para mais informações da diretiva ticks), a diretiva encoding (Veja abaixo para mais informações da diretiva encoding) e a diretiva strict_types (Veja abaixo para mais informações na seção strict sobre argumentos de função).

As diretivas são manipuladas na compilação do arquivo, somente literais podem ser usadas como valores da diretiva. Variáveis e constantes não podem ser usadas. Para ilustrar:

<?php
// Isto é válido:
declare(ticks=1);

// isto é inválido:
const TICK_VALUE = 1;
declare(ticks=TICK_VALUE);
?>

A parte statement do bloco do declare será executada - como é executada e quais os efeitos colaterais que ocorrem durante a execução depende da diretiva definida no bloco directive.

O construtor do declare também pode ser usado no escopo global, afetando todo o código que o segue (entretanto se o arquivo com o declare for incluído, não afetará o arquivo principal).

<?php
// Os exemplos abaixo tem o mesmo efeito

// Pode ser usado assim:
declare(ticks=1) {
// script aqui
}

// ou assim:
declare(ticks=1);
// script inteiro aqui
?>

Ticks

Um 'tick' é um evento que ocorre a cada N declarações de baixo nível executadas pelo interpretador dentro do bloco declare. O valor de N é especificado usando ticks=N dentro do bloco declare da seção directive.

Nem todas declarações são passíveis de executar um 'tick'. Normalmente, expressões de condições e argumentos de expressões não são.

Os eventos que serão executados a cada tick são especificados usando a função register_tick_function(). Veja o exemplo abaixo para mais detalhes. Note que mais de um evento pode ser executado para cada tick.

Exemplo #1 Exemplo de uso do Tick

<?php

declare(ticks=1);

// A função a ser chamada em cada evento tick
function tick_handler()
{
echo "tick_handler() chamada.\n";
}

register_tick_function('tick_handler'); // Causa um evento tick

$a = 1; // Causa um evento tick

if ($a > 0) {
$a += 2; // Causa um evento tick
print $a; // Causa um evento tick
}

?>

See also register_tick_function() and unregister_tick_function().

Encoding

O encoding de um script pode ser especificado em cada arquivo com uma diretiva encoding.

Exemplo #2 Declarando o encoding do script.

<?php
declare(encoding='ISO-8859-1');
// código aqui
?>

Cuidado

Quando usada com namespaces, a única sintaxe válida para declarar é declare(encoding='...'); onde ... é o valor do encoding. declare(encoding='...') {} irá resultar em um erro de sintaxe quando usada com namespaces.

Veja mais zend.script_encoding.


return

(PHP 4, PHP 5, PHP 7, PHP 8)

A declaração return retorna o controle do programa para o módulo que o chamou. A execução continuará na expressão seguinte à invocação do módulo.

Se chamada dentro de uma função, a declaração return terminará imediatamente sua execução, e retornará seus argumentos como valor à chamada da função. A declaração return também terminar a execução de uma declaração eval() ou um arquivo de script.

Se chamada no escopo global, a execução do script corrente é finalizada. Se o arquivo de script corrente for incluído ou requerido com as funções include ou or require, o controle é passado de volta ao script que está chamando. Além disso, se o script corrente foi incluído com a função include, o valor informado ao return será retornado como o valor da chamada de include. Se um return for chamado de dentro do script principal, sua execução será finalizada. Se o script corrente for mencionado nas opções de configuração auto_prepend_file ou auto_append_file php.ini, a execução do script será finalizada.

For more information, see Returning values.

Nota: Note que, como return é um construtor de linguagem e não uma função, os parênteses que envolvem seus argumentos não são exigidos e seu uso é desencorajado.

Nota: Se nenhum parâmetro for informado, e os parênteses omitidos, null será retornado. Chamar um return com parênteses, mas sem argumentos resultará em um erro de interpretação.

A partir do PHP 7.1.0, declarações return sem um argumento em funções que declaram um tipo de returno acionam E_COMPILE_ERROR, a não ser que o tipo de retorno seja void, nesse caso declarações return com um argumento acionam esse erro.


require

(PHP 4, PHP 5, PHP 7, PHP 8)

A declaração require é idêntica a include exceto que em caso de falha também produzirá um erro fatal de nível E_COMPILE_ERROR. Em outras palavras, ele parará o script enquanto que o include apenas emitirá um alerta (E_WARNING) permitindo que o script continue.

Veja a documentação include para saber como isso funciona.


include

(PHP 4, PHP 5, PHP 7, PHP 8)

A expressão include inclui e avalia o arquivo informado.

A documentação a seguir também se aplica a declaração require.

Os arquivos são incluídos baseando-se no caminho do arquivo informado ou, se não informado, o include_path especificado. Se o arquivo não for encontrado no include_path, include checará no diretório do script que o executa e no diretório de trabalho corrente, antes de falhar. O construtor include emitirá um E_WARNING se não localizar o arquivo; possui um comportamento diferente do require, que emitirá um E_ERROR.

Note que ambas include e require emitem E_WARNINGs adicionais, se o arquivo não puder ser acessado, antes de emitir o E_WARNING ou E_ERROR final, respectivamente.

Se um caminho for definido — seja absoluto (iniciando com a letra do drive ou \ no Windows, ou / no Unix/Linux ), ou relativo ao diretório atual (começando com . ou ..) — o include_path será completamente ignorado. Por exemplo, se o nome do arquivo iniciar com ../, o interpretador irá procurar pelo arquivo no diretório pai.

Para mais informações de como o PHP trabalha ao incluir arquivos e o caminho de inclusão, veja a documentação do include_path.

Quando um arquivo é incluído, o código herda o escopo de variáveis da da linha que a inclusão ocorrer. Qualquer variável disponível no arquivo que incluiu estará disponível no arquivo incluído, daquela linha em diante. Entretanto, todas as funções e classes definidas no arquivo incluído estarão no escopo global.

Exemplo #1 Exemplo básico do construtor include

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

?>

Se a inclusão ocorrer dentro de uma função todo o código contido no arquivo incluído irá se comportar como se tivesse sido definido dentro da função. Portanto seguirá o escopo de variáveis da função. Uma exceção para essa regra são as constantes mágicas que são interpretadas antes da inclusão ocorrer.

Exemplo #2 Inclusão em funções

<?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

?>

Quando um arquivo é incluído, o interpretador sai do modo PHP e entra no modo HTML no começo do arquivo incluído, e volta novamente no final. Por esta razão, qualquer código dentro do arquivo incluído que necessite ser executado como PHP deve estar entre tags válidas de início e fim do PHP.

Se os "empacotadores de inclusão de URL" estiverem habilitados no PHP, pode-se definir um arquivo a ser incluído usando uma URL (via HTTP ou outro protocolo suportado - veja Protocolos e Wrappers suportados para uma lista de protocolos) ao invés de um caminho local. Se o servidor de destino interpretar o arquivo incluído como PHP, variáveis podem ser passadas para o arquivo incluído usando uma URL de requisição com HTTP GET. Isso não significa a mesma coisa que incluir e compartilhar o escopo de variáveis com o arquivo incluído; O script é executado no servidor remoto e o resultado incluído no script local.

Exemplo #3 Usando include via HTTP

<?php

/* Este exemplo assume que www.exemplo.com.br está configurado para processar
* arquivos .php e não arquivos .txt. Além disso, 'Funciona' aqui significa
* que as variáveis $foo e $bar estão disponíveis dentro do arquivo incluído. */

// Não vai funcionar; arquivo.txt não foi tratado por www.exemplo.com.br como PHP
include 'http://www.exemplo.com.br/arquivo.txt?foo=1&bar=2';

// Não vai funcionar; procura por um arquivo chamado 'arquivo.php?foo=1&bar=2' no
// sistema de arquivos local.
include 'arquivo.php?foo=1&bar=2';

// Funciona.
include 'http://www.exemplo.com.br/arquivo.php?foo=1&bar=2';
?>

Aviso

Avisos de Segurança

O arquivo remoto pode ser processado pelo servidor remoto (dependendo da extensão do arquivo e se o servidor remoto executa, ou não,arquivos PHP), mas ainda precisa produzir um código PHP válido pois será processado pelo servidor local. Se o arquivo do servidor remoto deve ser processado como um texto simples, a função readfile() é uma opção muito melhor a ser usada. Caso contrário, deve-se ter um cuidado especial para garantir que o servidor remoto produza um código PHP válido.

Veja também Arquivos Remotos, fopen() e file() para informações relacionadas.

Manipulando Retornos: o include retorna FALSE ao falhar e emite um aviso. Inclusões bem sucedidas, ao menos que seja sobrescritas pelo arquivo incluído, retornam 1. É possível utilizar a declaração return dentro do arquivo incluído para finalizar o processamento e retornar para o arquivo que o incluiu. Além disso, é possível retornar valor a partir do arquivo incluído. Pode-se usar o valor do arquivo incluído como em uma função normal. Isso não é, entretanto, possível quando incluímos arquivos remotos a menos que a saída do arquivo remoto tenha tags válidas de início e fim do PHP (como em um arquivo local). Pode-se declarar as variáveis necessárias dentro dessas tags e estarão disponíveis em qualquer ponto do arquivo que o incluiu.

Pelo fato do include ser um construtor especial da linguagem, parênteses não são necessários ao redor do argumento. Tome cuidado ao comparar valores de retorno.

Exemplo #4 Comparando valores de retorno do include

<?php
// não vai funcionar, avaliado como include(('vars.php') == TRUE), isto é: include('1')
if (include('vars.php') == TRUE) {
echo 'OK';
}

// funciona
if ((include 'vars.php') == TRUE) {
echo 'OK';
}
?>

Exemplo #5 include e a instrução return

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // imprime 'PHP'

$bar = include 'noreturn.php';

echo $bar; // imprime 1

?>

$bar tem o valor 1 porque a inclusão foi bem sucedida. Note a diferença entre os dois exemplos. O primeiro usa o return, enquanto o outro não. Se o arquivo não puder ser incluído, false é retornado e um E_WARNING emitido.

Se funções forem definidas no arquivo incluído, elas podem ser utilizadas no arquivo principal independente se estão antes ou depois do return. Se o arquivo for incluído duas vezes, o PHP emitirá um erro fatal, pois as funções já foram declaradas. É recomendado usar o include_once ao invés de verificar se o arquivo já foi incluído manualmente dentro do arquivo incluído.

Outra forma de "incluir" um arquivo PHP em uma variável é capturar a saída usando as Funções de Controle de Saída com o include. Por exemplo:

Exemplo #6 Usando buffer de saída para incluir um arquivo PHP em uma string

<?php
$string = get_include_contents('somefile.php');

function get_include_contents($filename) {
if (is_file($filename)) {
ob_start();
include $filename;
return ob_get_clean();
}
return false;
}

?>

Para automatizar a inclusão de arquivos nos scripts, veja também as configurações auto_prepend_file e auto_append_file contidas no php.ini.

Nota: Como esta é uma construção da linguagem e não uma função, ela não pode ser chamada usando funções variáveis ou argumentos nomeados.

Veja também require, require_once, include_once, get_included_files(), readfile(), virtual(), e include_path.


require_once

(PHP 4, PHP 5, PHP 7, PHP 8)

A expressão require_once é idêntica a require exceto que o PHP verificará se o arquivo já foi incluído, e em caso afirmativo, não o incluirá (exigirá) novamente.

Veja a documentação include_once para informação sobre o comportamento _once, e como ele difere de seus irmãos _once.


include_once

(PHP 4, PHP 5, PHP 7, PHP 8)

A declaração include_once inclui e avalia o arquivo informado durante a execução do script. Este é um comportamento similar a declaração include, com a única diferença que, se o código do arquivo já foi incluído, não o fará novamente, e o include_once retornará true. Como o nome sugere, o arquivo será incluído somente uma vez.

O include_once pode ser utilizado em casos em que o mesmo arquivo pode ser incluído e valiado mais de uma vez durante uma execução de um script em particular, neste caso, ajudará a evitar problemas como redefinição de funções, reatribuição de valores de variáveis, e etc.

Veja a documentação da declaração include para informações sobre como esta função funciona.


goto

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Qual é a pior coisa que pode acontecer ao se utilizar o goto?

Imagem cortesia do » xkcd

O operador goto pode ser usado para pular para outra seção do programa. O ponto de destino é definido por um rótulo sensível a maiúsculas e minúsculas seguido de dois pontos, e a instrução é usada como goto seguida do rótulo de destino desejado. O uso do goto não é completamente irrestrito. O rótulo de destino deve estar no mesmo arquivo e contexto, significando que não se pode pular para fora ou para dentro de uma função ou método. Também não pode-se saltar para dentro de um laço ou estrutura switch. Pode-se saltar para fora deles, e um uso comum é usar o goto no lugar de um break multi-nível.

Exemplo #1 Exemplo da estrutura de controle goto

<?php

goto a;
echo 'Foo';

a:
echo 'Bar';

?>

O exemplo acima produzirá:

Bar

Exemplo #2 Exemplo da estrutura de controle goto em um laço

<?php

for ($i = 0, $j = 50; $i < 100; $i++) {
while ($j--) {
if ($j == 17) {
goto end;
}
}
}
echo "i = $i";
end:
echo 'j chegou em 17';

?>

O exemplo acima produzirá:

j chegou em 17

Exemplo #3 Isto não irá funcionar

<?php

goto loop;
for ($i = 0, $j = 50; $i < 100; $i++) {
while ($j--) {
loop:
}
}
echo "$i = $i";

?>

O exemplo acima produzirá:

Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2


Funções

Índice

  • Funções definidas pelo usuário
  • Argumentos de funções
  • Retornando valores
  • Funções variáveis
  • Funções internas (built-in)
  • Funções anônimas
  • Arrow Functions
  • Sintaxe de Callable de Primeira Classe


Funções definidas pelo usuário

Uma função pode ser definida usando a seguinte sintaxe:

Exemplo #1 Pseudo-código de demonstração de uma função

<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
echo "Exemplo de função.\n";
return $valor_retornado;
}
?>

Qualquer código PHP válido pode aparecer dentro de uma função, mesmo outras funções e definições de classes.

Nomes de funções seguem as mesmas regras que outros nomes no PHP. Um nome de função válido começa com uma letra ou um sublinhado, seguido, seguido por qualquer número de letras, números ou sublinhado. Com uma expressão regular, seria expressado com: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$.

Dica

Veja também o Guia de nomenclatura em espaço de usuário.

As funções não precisam ser criadas antes de serem referenciadas, exceto quando uma função é condicionalmente definida como mostrado nos dois exemplos abaixo.

Quando uma função é definida condicionalmente como nos dois exemplos abaixo, sua definição precisa ser processada antes de ser chamada.

Exemplo #2 Funções definidas condicionalmente

<?php

$makefoo = true;

/* Nos nao podemos chamar foo() daqui
porque ela ainda não existe,
mas nos podemos chamar bar() */

bar();

if ($makefoo) {
function foo()
{
echo "Eu não existo até que o programa passe por aqui.\n";
}
}

/* Agora nos podemos chamar foo()
porque $makefoo foi avaliado como true */

if ($makefoo) foo();

function bar()
{
echo "Eu existo imediatamente desde o programa começar.\n";
}

?>

Exemplo #3 Funções dentro de funções

<?php
function foo()
{
function bar()
{
echo "Eu não existo até foo() ser chamada.\n";
}
}

/* Nós não podemos chamar bar() ainda
porque ela ainda não foi definida. */

foo();

/* Agora nós podemos chamar bar(),
porque o processamento de foo()
tornou a primeira acessivel */

bar();

?>

Todas as funções e classes no PHP tem escopo global - elas podem ser chamadas fora de uma função mesmo que tenham sido definidas dentro e vice-versa.

O PHP não suporta sobrecarga de funções, e também não é possível cancelar ou alterar a definição de funções previamente declaradas.

Nota: Nomes de funções são case-insensitive para caracteres ASCII A até Z, mas é melhor chamar as funções da mesma forma que elas aparecem nas declarações.

Ambos número variável de argumentos e argumentos padrões são suportados em funções. veja também as referências das funções func_num_args(), func_get_arg() e func_get_args() para mais informações.

É possível chamar funções recursivas no PHP.

Exemplo #4 Funções Recursivas

<?php
function recursion($a)
{
if ($a < 20) {
echo "$a\n";
recursion($a + 1);
}
}
?>

Nota: Chamadas recursivas a funções/métodos acima de 100-200 níveis podem exaurir a pilha e causar o término do script. Especificamente, recursão infinita é considerada um erro de programação.


Argumentos de funções

Informações podem ser passadas para funções através da lista de argumentos, que é uma lista de expressões delimitados por vírgulas. Os argumentos são avaliados da esquerda para a direita, e antes que a função seja efetivamente chamada (avaliação antecipada eager).

O PHP suporta a passagem de argumentos por valor (o padrão), passagem por referência, e valores padrões de argumentos. lista de argumentos de tamanho variável e argumentos nomeados também são suportadas.

Exemplo #1 Passando arrays para funções

<?php
function takes_array($input)
{
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

A partir do PHP 8.0.0, a lista de argumentos de uma função pode incluir uma vírgula final, que será ignorada. Isto é particularmente útil nos casos que a quantidade de argumentos é longa ou contém nomes longos, sendo conveniente listar os argumentos verticalmente.

Exemplo #2 Argumentos de função com uma vírgula final

<?php
function takes_many_args(
$primeiro,
$segundo,
$uma_variavel_com_nome_longo,
$parametro_com_default = 5,
$de_novo = 'argumento padrão', // Essa vírgula final não era permitida antes do PHP 8.0.0.
)
{
// ...
}
?>

Passando argumentos por referência

Por padrão, argumentos de função são passados por valor (de forma que se você mudar o valor do parâmetro dentro da função, ele não é alterado fora da função). Para permitir que uma função modifique os seus argumentos, eles devem ser passados por referência.

Para ter um argumento para uma função sempre passado por referência, adicione antes dele um "e comercial" (&) ao nome do argumento na definição da função:

Exemplo #3 Passando parâmetros de função por referência

<?php
function add_some_extra(&$string)
{
$string .= ' e alguma coisa mais.';
}
$str = 'Isto é uma string,';
add_some_extra($str);
echo $str; // imprime 'Isto é uma string, e alguma coisa mais.'
?>

É um erro passar um argumento por valor onde é esperado a passagem por referência.

Valores padrão de argumentos

Uma função pode definir valores padrão para argumentos usando sintaxe similar a atribuição de uma variável. O padrão é usado apenas quando o parâmetro não é especificado. Em particular, note que passar null não atribui o valor padrão.

Exemplo #4 Utilizando parâmetros padrão em funções

<?php
function makecoffee($type = "cappuccino")
{
return "Fazendo uma xícara de café $type.\n";
}
echo makecoffee();
echo makecoffee(null);
echo makecoffee("espresso");
?>

O exemplo acima produzirá:

Fazendo uma xícara de café cappuccino.
Fazendo uma xícara de café.
Fazendo uma xícara de café espresso.

Valores padrões de parâmetro podem ser valores escalares, arrays, o tipo especial null e, a partir do PHP 8.1.0, objetos usando a sintaxe new ClassName().

Exemplo #5 Usando tipos não escalares como valores padrões

<?php
function fazercafe($tipos = array("cappuccino"), $cafeteira = NULL)
{
$dispositivo = is_null($cafeteira) ? "mãos" : $cafeteira;
return "Fazendo uma xícara de ".join(", ", $tipos)." com $dispositivo.\n";
}
echo fazercafe();
echo fazercafe(array("cappuccino", "lavazza"), "chaleira");?>

O exemplo acima produzirá:

Fazendo uma xícara de cappuccino com mãos.
Fazendo uma xícara de cappuccino, lavazza com chaleira.

Exemplo #6 Usando objetos como valores padrão (a partir do PHP 8.1.0)

<?php
class CafeteiraPadrao {
public function preparar() {
return 'Fazendo café.\n';
}
}
class CafeteiraChique {
public function preparar() {
return 'Preparando um belo café só para você.\n';
}
}
function fazercafe($cafeteira = new CafeteiraPadrao)
{
return $cafeteira->preparar();
}
echo fazercafe();
echo fazercafe(new CafeteiraChique);
?>

O exemplo acima produzirá:

Fazendo café.
Preparando um belo café só para você.

O valor padrão precisa ser uma expressão constante, não (por exemplo) uma variável, um membro de classe ou uma chamada de função.

Note que quaisquer argumentos opcionais devem ser especificados após os argumentos obrigatórios, caso contrário, eles não podem ser omitidos das chamadas. Considere o seguinte exemplo:

Exemplo #7 Uso incorreto de parâmetros padrão de função

<?php
function fazeriogurte($recipiente = "tigela", $sabor)
{
return "Fazendo um(a) $recipiente de iogurte de $sabor.\n";
}

echo fazeriogurte("framboesa"); // "framboesa" é $recipiente, não $sabor
?>

O exemplo acima produzirá:

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function fazeriogurte(), 1 passed in example.php on line 42

Agora, compare o que está acima com este:

Exemplo #8 Uso correto de parâmetros padrão de função

<?php
function fazeriogurte($sabor, $recipiente = "tigela")
{
return "Fazendo um(a) $recipiente de iogurte de $sabor.\n";
}

echo fazeriogurte("framboesa"); // "framboesa" é $sabor
?>

O exemplo acima produzirá:

Fazendo um(a) tigela de iogurte de framboesa.

A partir do PHP 8.0.0, argumentos nomeados podem ser usados para pular vários parâmetros opcionais.

Exemplo #9 Uso correto de argumentos padrão de função

<?php
function fazeriogurte($recipiente = "tigela", $sabor = "framboesa", $estilo = "Grego")
{
return "Fazendo um(a) $recipiente de iogurte $estilo de $sabor.\n";
}

echo fazeriogurte(estilo: "natural");
?>

O exemplo acima produzirá:

Fazendo um(a) tigela de iogurte natural de framboesa.

A partir do PHP 8.0.0, declarar argumentos obrigatórios após argumentos opcionais está descontinuado. Isso geralmente pode ser resolvido descartando o valor padrão, pois nunca será usado. Uma exceção a essa regra são argumentos no formato Type $param = null, onde o padrão null torna o tipo implicitamente anulável. Este uso continua permitido, embora seja recomendado usar um tipo anulável explícito.

Exemplo #10 Declarando argumentos opcionais após argumentos obrigatórios

<?php
function foo($a = [], $b) {} // Padrão não utilizado; descontinuado a partir do PHP 8.0.0
function foo($a, $b) {} // Funcionalmente equivalente, sem aviso de descontinuação

function bar(A $a = null, $b) {} // Ainda permitido; $a é obrigatório porém anulável
function bar(?A $a, $b) {} // Recomendado
?>

Nota: A partir do PHP 7.1.0, omitir um parâmetro que não especifica um padrão lança um ArgumentCountError; em versões anteriores isso emitia um Aviso.

Nota: Argumentos passados por referência podem ter um valor padrão.

Número variável de argumentos

O PHP suporta argumentos em quantidade variável em funções definidas pelo usuário, utilizando o token ....

Lista de argumentos que contém o token ... token para indicam que a função aceita uma quantidade variável de argumentos. Os argumentos serão passados na variável como um array:

Exemplo #11 Utilizando ... para acessar argumentos variáveis

<?php
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}

echo sum(1, 2, 3, 4);
?>

O exemplo acima produzirá:

10

Você também pode utilizar ... quando chamando funções para transformar uma variável array, Traversable ou literal em uma lista de argumentos.

Exemplo #12 Utilizando ... para fornecer argumentos

<?php
function add($a, $b) {
return $a + $b;
}

echo add(...[1, 2])."\n";

$a = [1, 2];
echo add(...$a);
?>

O exemplo acima produzirá:

3
3

Você pode especificar argumentos posicionais antes do indicador. .... Nesse caso comente os argumentos finais, que não pareiam com um argumento posicional, serão adicionados ao array gerado por ....

É também possível adicionar um type hint antes do indicador .... Se presente então todos os argumentos capturados por ... deverão conformar com o tipo do parâmetro.

Exemplo #13 Argumentos variáveis com type hint

<?php
function total_intervals($unit, DateInterval ...$intervals) {
$time = 0;
foreach ($intervals as $interval) {
$time += $interval->$unit;
}
return $time;
}

$a = new DateInterval('P1D');
$b = new DateInterval('P2D');
echo total_intervals('d', $a, $b).' days';

// This will fail, since null isn't a DateInterval object.
echo total_intervals('d', null);
?>

O exemplo acima produzirá:

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2

Finalmente, você também pode passar argumentos variáveis por referência ao prefixar ... com um &.

Argumentos nomeados

O PHP 8.0.0 introduziu argumentos nomeados como uma extensão aos parâmetros posicionais. Argumentos nomeados permitem a passagem de argumentos para uma função utilizando-se os nomes de parâmetros, ao invés da posição do parâmetro. Isto torna o significado do argumento auto documentável, e tornam os argumentos independente de ordem, além de permitir pular argumentos com defaults.

Argumentos nomeados são passados ao prefixar o valor um o nome do parâmetro e um dois pontos. Usar palavras reservadas como nomes de parâmetro é permitido. O nome de parâmetro precisa ser um identificados, e uma resolução dinâmica não é permitida.

Exemplo #14 Sintaxe dos argumentos nomeados

<?php
minhaFuncao(nomeParametro: $valor);
array_foobar(array: $value);

// NÃO suportado
nome_funcao($variaveoQueGuardaNomeDoParametro: $valor);
?>

Exemplo #15 Comparando argumentos posicionais e nomeados

<?php
// Utilizando argumentos posicionais:
array_fill(0, 100, 50);

// Utilizando argumetos nomeados:
array_fill(start_index: 0, count: 100, value: 50);
?>

A ordem em que argumentos nomeados são passados não importa.

Exemplo #16 Mesmo exemplo com argumentos em ordem diferente

<?php
array_fill(value: 50, count: 100, start_index: 0);
?>

Argumentos nomeados podem ser combinados com argumentos posicionais. Nesse caso, os argumentos nomeados precisam estar depois dos argumentos posicionais. Também é possível especificar somente alguns dos argumentos opcionais de uma função, independente da ordem.

Exemplo #17 Combinando argumentos posicionais e nomeados

<?php
htmlspecialchars($string, double_encode: false);
// Mesmo que
htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, 'UTF-8', false);
?>

Passar o mesmo argumento mais de uma vez resulta em um Error.

Exemplo #18 Erro lançado ao passar o mesmo argumento nomeado mais de uma vez

<?php
function foo($param) { ... }

foo(param: 1, param: 2);
// Error: Named parameter $param overwrites previous argument
foo(1, param: 2);
// Error: Named parameter $param overwrites previous argument
?>

A partir do PHP 8.1.0, é possível usar argumentos nomeados após desempacotar os argumentos. Um argumento nomeado não deve sobrepor argumentos já desempacotados.

Exemplo #19 Usando argumentos nomeados após desempacotar

<?php
function foo($a, $b, $c = 3, $d = 4) {
return $a + $b + $c + $d;
}

var_dump(foo(...[1, 2], d: 40)); // 46
var_dump(foo(...['b' => 2, 'a' => 1], d: 40)); // 46

var_dump(foo(...[1, 2], b: 20)); // Fatal error. Named parameter $b overwrites previous argument
?>


Retornando valores

Os valores podem ser retornados utilizando a instrução opcional return. Qualquer tipo pode ser retornado, incluindo arrays e objetos. Isto faz com que as função termine sua execução imediatamente e passa o controle de volta para a linha de onde ela foi chamada. Veja a documentação da função return para maiores informações.

Nota:

Se return for omitido então o valor null será retornado.

Sintaxe do return

Exemplo #1 O uso de return

<?php
function quadrado($num)
{
return $num * $num;
}
echo quadrado(4); // imprime '16'.
?>

Você não pode retornar múltiplos valores a partir de uma função, mas resultados similares podem ser obtidos retornando um array.

Exemplo #2 Retornando um array para devolver vários valores

<?php
function primeiros_numeros()
{
return [0, 1, 2];
}
// Desconstruir o array coleta cada item individualmente
[$zero, $one, $two] = primeiros_numeros();

// Anteriormente ao 7.1.0 a única alternativa era usar list()
list($zero, $one, $two) = primeiros_numeros();

?>

Para retornar uma referência de uma função, use o operador de referência & em ambas a declaração da função e quando definindo o valor para a variável.

Exemplo #3 Retornando uma referência de uma função

<?php
function &retorna_referencia()
{
return $alguma_referencia;
}

$nova_referencia =& retorna_referencia();
?>

Para mais detalhes sobre referências, leia a seção Referências.


Funções variáveis

O PHP suporta o conceito de funções variáveis. Isto significa que se um nome de variável tem parênteses no final dela, o PHP procurará uma função com o mesmo nome, qualquer que seja a avaliação da variável, e tentará executá-la. Entre outras coisas, isto pode ser usado para implementar callbacks, tabelas de função e assim por diante.

Funções variáveis não funcionam com construtores de linguagem como echo, print, unset(), isset(), empty(), include, require e outras assim. Utilize uma função de wrapper para usar quaisquer um destes construtores como uma função variável.

Exemplo #1 Exemplo de funções variáveis

<?php
function foo() {
echo "Chamou foo()<br>\n";
}

function bar($arg = '')
{
echo "Chamou bar(); com argumento '$arg'.<br />\n";
}

// Essa é uma função wrapper para echo()
function echoit($string)
{
echo $string;
}

$func = 'foo';
$func(); // Chama foo()

$func = 'bar';
$func('test'); // Chama bar()

$func = 'echoit';
$func('test'); // Chama echoit()
?>

Um método de um objeto também pode ser chamado com a sintaxe de funções variáveis.

Exemplo #2 Exemplo de chamada de um método variável

<?php
class Foo
{
function MetodoVariavel()
{
$name = 'Bar';
$this->$name(); // Isto chama o método Bar()
}

function Bar()
{
echo "Bar foi chamada!";
}
}

$foo = new Foo();
$funcname = "MetodoVariavel";
$foo->$funcname(); // Isto chama $foo->MetodoVariavel()

?>

Quando chamando métodos estáticos, uma chamada de função tem preferência que uma propriedade estática.

Exemplo #3 Método variávei com propriedades estáticas

<?php
class Foo
{
static $variable = 'propriedade estática';
static function Variable()
{
echo 'Método chamado';
}
}

echo Foo::$variable; // Isto imprime 'propriedade estática'. Ele busca $variable no escopo da classe.
$variable = "Variable";
Foo::$variable(); // Isto chama $foo->Variable(), lendo a $variable no escopo da chamada.

?>

Exemplo #4 Callables complexos

<?php
class Foo
{
static function bar()
{
echo "bar\n";
}
function baz()
{
echo "baz\n";
}
}

$func = array("Foo", "bar");
$func(); // prints "bar"
$func = array(new Foo, "baz");
$func(); // prints "baz"
$func = "Foo::bar";
$func(); // prints "bar"
?>

Veja Também

  • is_callable()
  • call_user_func()
  • function_exists()
  • variáveis variáveis


Funções internas (built-in)

O PHP vem por padrão com muitas funções e construtores. Também existem funções que necessitam que uma extensão específica esteja compilada, se não erros fatais "undefined function" (função não definida) irão aparecer. Por exemplo, para usar as funções image como imagecreatetruecolor(), o PHP deve ser compilado com suporte GD. Ou, para usar mysqli_connect(), PHP deve ser compilado com suporte MySQLi. Existem muitas funções do núcleo que são incluídas em cada versão do PHP, como string e variable. Uma chamada a phpinfo() ou get_loaded_extensions() irá mostrar quais extensões estão carregadas no PHP. Note também que várias extensões são ativadas por padrão e que o manual do PHP é dividido por extensão. Veja configuração, instalação, e os capítulos individuais das extensões para como configurar o PHP.

A leitura e entendimento de um protótipo de função é explicado na seção do manual intitulada como ler uma definição de função. É importante perceber o que a função retorna ou se a função trabalha diretamente no valor passado como argumento. Por exemplo, str_replace() irá retornar a string modificada enquanto usort() trabalha na própria variável passada no argumento. Cada página do manual também contém informações específicas de cada função, como: parâmetros da função, mudanças de comportamento, valores de retorno tanto para sucesso e erros, como outras informações disponíveis. O conhecimento destas diferenças importantes é crucial para escrever corretamente seu código PHP.

Nota: Se os parâmetros dados a uma função não forem o que ela espera, como passar um array onde uma string é esperada, o valor de retorno da função é indefinido. Neste caso provavelmente irá retornar null mas isto é apenas uma convenção, e você não pode depender disso. A partir do PHP 8.0.0, uma exceção TypeError é lançada nesses casos.

Nota:

Tipos escalares para funções embutidas são anuláveis por padrão no modo coercivo. A partir do PHP 8.1.0, passar null para um parâmetro de uma função interna que não é declarado anulável é desencorajado e emite um aviso de descontinuação no modo coercitivo para alinhar com o comportamento de funções definidas pelo usuário, onde tipos escalares precisam ser marcados como anuláveis explícitamente.

Por exemplo, a função strlen() expera que o parâmetro $string seja uma string não anulável. Por razões históricas, o PHP permite a passagem de null para esse parâmetro no modo coercivo, e o parâmetro é implicitamente convertido para string, resultando em um valor "". Em contrapartida, um TypeError é emitido no modo estrito.

<?php
var_dump(strlen(null));
// "Deprecated: Passing null to parameter #1 ($string) of type string is deprecated" as of PHP 8.1.0
// int(0)

var_dump(str_contains("foobar", null));
// "Deprecated: Passing null to parameter #2 ($needle) of type string is deprecated" as of PHP 8.1.0
// bool(true)
?>

Veja Também

  • function_exists()
  • A referência das funções
  • get_extension_funcs()
  • dl()


Funções anônimas

Funções anônimas, também conhecidas como closures, permitem a criação de funções que não tem o nome especificado. Elas são mais úteis como o valor de parâmetros callable, mas podem ter vários outros usos.

Funções anônimas são implementadas utilizando a classe Closure

Exemplo #1 Exemplo de função anônima

<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
return strtoupper($match[1]);
}, 'hello-world');
// outputs helloWorld
?>

Closures também podem ser utilizadas como valores de variáveis; o PHP automaticamente converte expressões assim em instâncias da classe interna Closure. Definindo um closure a uma variável usa a mesma sintaxe que qualquer outra definição, incluindo o ponto-e-vírgula:

Exemplo #2 Exemplo de como definir uma função anônima para uma variável

<?php
$greet = function($name) {
printf("Hello %s\r\n", $name);
};

$greet('World');
$greet('PHP');
?>

Closures também podem herdar variáveis do escopo pai. Essas variáveis precisam ser referenciadas utilizando a instrução use. A partir do PHP 7.1, essas variáveis não devem incluir superglobals, $this, ou variáveis com o mesmo nome como um parâmetro. A declaração de tipo de retorno de uma função deve ser posicionada depois de uma instrução use.

Exemplo #3 Herdando variáveis do escopo anterior

<?php
$message = 'hello';

// Sem "use"
$example = function () {
var_dump($message);
};
$example();

// Inherit $message
$example = function () use ($message) {
var_dump($message);
};
$example();

// Herdando valor da variável quando a função é definida,
// não quando é chamada
$message = 'world';
$example();

// Reseta mensagem
$message = 'hello';

// Herdando por referência
$example = function () use (&$message) {
var_dump($message);
};
$example();

// O valor modificado no escopo pai
// reflete quando a função é chamada
$message = 'world';
$example();

// Closures também aceitam argumentos normais
$example = function ($arg) use ($message) {
var_dump($arg . ' ' . $message);
};
$example("hello");

// Declaração de tipo de retorno após a instrução 'use'
$example = function () use ($message): string {
return "hello $message";
};
var_dump($example());
?>

O exemplo acima produzirá algo semelhante a:

Notice: Undefined variable: message in /example.php on line 6
NULL
string(5) "hello"
string(5) "hello"
string(5) "hello"
string(5) "world"
string(11) "hello world"
string(11) "hello world"

A partir do PHP 8.0.0 a lista de variáveis herdadas no escopo podem incluir uma vírgula final, que será ignorada.

Herdar variáveis do escopo pai não é o mesmo que usar variáveis globais. Variáveis globais existem no escopo global, o qual é o mesmo não importa a função sendo executada. O escopo pai de um closure é a função no qual o closure foi declarado (não necessariamente a função a partir do qual ele foi chamado). Veja o exemplo a seguir:

Exemplo #4 Closures e escopo

<?php
// Um exemplo básico de carrinho de compras que contém uma lista de produtos
// e a quantidade de cada produto. Inclui um método que
// calcula o preço total dos itens no carrinho utilizando uma
// closure como callback.
class Cart
{
const PRICE_BUTTER = 1.00;
const PRICE_MILK = 3.00;
const PRICE_EGGS = 6.95;

protected $products = array();

public function add($product, $quantity)
{
$this->products[$product] = $quantity;
}

public function getQuantity($product)
{
return isset($this->products[$product]) ? $this->products[$product] :
FALSE;
}

public function getTotal($tax)
{
$total = 0.00;

$callback =
function ($quantity, $product) use ($tax, &$total)
{
$pricePerItem = constant(__CLASS__ . "::PRICE_" .
strtoupper($product));
$total += ($pricePerItem * $quantity) * ($tax + 1.0);
};

array_walk($this->products, $callback);
return round($total, 2);
}
}

$my_cart = new Cart;

// Adiciona alguns itens no carrinho
$my_cart->add('butter', 1);
$my_cart->add('milk', 3);
$my_cart->add('eggs', 6);

// Print the total with a 5% sales tax.
print $my_cart->getTotal(0.05) . "\n";
// The result is 54.29
?>

Exemplo #5 Vinculação automática do $this

<?php

class Test
{
public function testing()
{
return function() {
var_dump($this);
};
}
}

$object = new Test;
$function = $object->testing();
$function();

?>

O exemplo acima produzirá:

object(Test)#1 (0) {
}

Quando declarada no contexto de uma classe, a classe corrente é automaticamente vinculada a ela, tornando $this disponível dentro do escopo da função. Se essa vinculação automática da classe corrente não for o comportamento esperado, funções anônimas estáticas podem ser utilizadas.

Funções anônimas estáticas

Funções anônimas podem ser declaradas estaticamente. Evita que a classe corrente seja automaticamente vinculada a ela. Objetos também podem não ser vinculados a ela em tempo de execução.

Exemplo #6 Tentando utilizar o $this de dentro de uma função anônima estática

<?php

class Foo
{
function __construct()
{
$func = static function() {
var_dump($this);
};
$func();
}
};
new Foo();

?>

O exemplo acima produzirá:

Notice: Undefined variable: this in %s on line %d
NULL

Exemplo #7 Tentando vincular um objeto a uma função anônima estática

<?php

$func = static function() {
// corpo da função
};
$func = $func->bindTo(new stdClass);
$func();

?>

O exemplo acima produzirá:

Warning: Cannot bind an instance to a static closure in %s on line %d

Registro de Alterações

Versão | Descrição
7.1.0 | Funções anônimas podem não incluir superglobals, $this, ou qualquer variável com o mesmo nome como um parâmetro.

Notas

Nota: É possível utilizar func_num_args(), func_get_arg() e func_get_args() dentro de closures.


Arrow Functions

Arrow functions foram introduzidos a partir do PHP 7.4 como uma sintaxe mais concisa para funções anônimas.

Funções anônimas e arrow functions são implementadas usando a classe Closure.

Arrow functions tem a forma básica fn (argument_list) => expr.

Arrow functions possuem a mesmas características das funções anônimas, exceto que o uso de variáveis do escopo pai é sempre automático.

Quando uma variável usada na expressão é definida no escopo pai ele será implicitamente capturado por valor. No exemplo a seguir, as funções $fn1 e $fn2comportam-se da mesma maneira.

Exemplo #1 Arrow functions capturam variáveis por valor automaticamente

<?php

$y = 1;

$fn1 = fn($x) => $x + $y;
// Equivalente ao usar $y por valor:
$fn2 = function ($x) use ($y) {
return $x + $y;
};

var_export($fn1(3));
?>

O exemplo acima produzirá:

4

Isso também funciona se as arrow de functions estiverem aninhadas:

Exemplo #2 Arrow functions capturam variáveis por valor automaticamente, mesmo quando aninhadas

<?php

$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;
// Outputs 51
var_export($fn(5)(10));
?>

Da mesma forma que funções anônimas, a sintaxe das arrow functions permitem assinaturas de função arbitrária, incluindo parâmetros e tipos de retorno, valores padrão, variadics, bem como por referência passando e retornando. Todos os exemplos válidos de arrow functions:

Exemplo #3 Examplos de arrow functions

<?php

fn(array $x) => $x;
static fn(): int => $x;
fn($x = 42) => $x;
fn(&$x) => $x;
fn&($x) => $x;
fn($x, ...$rest) => $rest;

?>

Arrow functions usam vinculação de variável por valor. Isso é aproximadamente equivalente a realizar um use($x) para cada variável $x usada dentro da arrow function. Uma passagem de variável por valor, significa que não é possível modificar quaisquer valores do escopo externo. Funções anônimas podem ser usadas em vez disso para passagem de variável por referência.

Exemplo #4 Valores do escopo externo não podem ser modificados por arrow functions

<?php

$x = 1;
$fn = fn() => $x++; // Não tem efeito
$fn();
var_export($x); // Imprime 1

?>

Registro de Alterações

Versão | Descrição
7.4.0 | Arrow functions tornou-se disponível.

Notas

Nota: É possível usar func_num_args(), func_get_arg(), e func_get_args() de dentro de uma arrow functions.


Sintaxe de Callable de Primeira Classe

A sintaxe de callable de primeira classe é introduzida a partir do PHP 8.1.0, como uma maneira de criar funções anônimas a partir de callable. Ela substitui a sintaxe de callable existente usando strings e arrays. A vantagem dessa sintaxe é que ela é acessível à análise estática, e usa o escopo no ponto onde o callable é adquirido.

A sintaxe CallableExpr(...) é usada para criar um objeto Closure a partir de callable. CallableExpr aceita qualquer expressão que possa ser diretamente chamada na gramática do PHP:

Exemplo #1 Sintaxe de callable de primeira classe simples

<?php

class Foo {
public function metodo() {}
public static function metodoestatico() {}
public function __invoke() {}
}

$obj = new Foo();
$strClasse = 'Foo';
$strMetodo = 'metodo';
$strMetodoestatico = 'metodoestatico';

$f1 = strlen(...);
$f2 = $obj(...); // objeto invocável
$f3 = $obj->metodo(...);
$f4 = $obj->$strMetodo(...);
$f5 = Foo::metodoestatico(...);
$f6 = $strClasse::$strMetodoestatico(...);

// Callable tradicional usando string, array
$f7 = 'strlen'(...);
$f8 = [$obj, 'metodo'](...);
$f9 = [Foo::class, 'metodoestatico'](...);
?>

Nota:

As ... são parte da sintaxe, e não uma omissão.

CallableExpr(...) tem a mesma semântica que Closure::fromCallable(). Isto é, That is, ao contrário de callable usando string e array, CallableExpr(...) respeita o escopo no ponto onde ela é criada:

Exemplo #2 Comparação de escopo de CallableExpr(...) e callable tradicional

<?php

class Foo {
public function obterMetodoPrivado() {
return [$this, 'metodoPrivado'];
}

private function metodoPrivado() {
echo __METHOD__, "\n";
}
}

$foo = new Foo;
$metodoPrivado = $foo->obterMetodoPrivado();
$metodoPrivado();
// Fatal error: Call to private method Foo::metodoPrivado() from global scope
// Isso acontece porque a chamada é realizada fora de Foo e a visibilidade será verificada a partir desse ponto.

class Foo1 {
public function obterMetodoPrivado() {
// Usa o escopo onde o callable é adquirido.
return $this->metodoPrivado(...); // Idêntico a Closure::fromCallable([$this, 'metodoPrivado']);
}

private function metodoPrivado() {
echo __METHOD__, "\n";
}
}

$foo1 = new Foo1;
$metodoPrivado = $foo1->obterMetodoPrivado();
$metodoPrivado(); // Foo1::metodoPrivado
?>

Nota:

Criação de objetos por essa sintaxe (por exemplo new Foo(...)) não é suportada, porque a sintaxe new Foo() não é considerada uma chamada.

Nota:

A sintaxe de callable de primeira classe não pode ser combinada com o operador nullsafe. Ambos os resultados a seguir resultam em um erro de tempo de compilação:

<?php
$obj?->metodo(...);
$obj?->prop->metodo(...);
?>


Classes e Objetos

Índice

  • Introdução
  • O básico
  • Propriedades
  • Constantes de Classe
  • Autoloading Classes
  • Construtores e Destrutores
  • Visibilidade
  • Herança de Objetos
  • Operador de Resolução de Escopo (::)
  • Palavra-Chave 'static'
  • Abstração de Classes
  • Interfaces de Objetos
  • Traits
  • Classes anônimas
  • Sobrecarga
  • Iteração de Objetos
  • Métodos mágicos
  • final
  • Clonando objetos
  • Comparando objetos
  • Late Static Bindings
  • Objetos e Referências
  • Serialização de Objetos
  • Covariância e Contravariância
  • Lista de alterações da POO


Introdução

O PHP inclui uma modelagem a objetos completa. Entre os recursos disponíveis há: visibilidade, classes e métodos abstratos e finais, métodos mágicos adicionais, interfaces e clonagem.

O PHP trata objetos da mesma maneira que referências ou manipuladores, significando que cada variável contém uma referência a um objeto ao invés de uma cópia de todo o objeto. Veja Objetos e Referências

Dica

Veja também o Guia de nomenclatura em espaço de usuário.


O básico

class

A definição de uma classe começa com a palavra chave class, seguida do nome da classe, seguido de um par de chaves que englobam as definições de propriedades e métodos pertencentes à classe.

O nome de uma classe tem de ser válido, que não seja uma palavra reservada do PHP. Um nome de classe válido começa com uma letra ou sublinhado, seguido de qualquer sequência de letras, números e sublinhados. Como uma expressão regular, pode ser expressada assim: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$.

Uma classe pode conter suas próprias constantes, variáveis (chamadas de "propriedades") e funções (chamadas de "métodos").

Exemplo #1 Definição Simples de uma Classe

<?php
class SimpleClass
{
// declaração de propriedade
public $var = 'um valor padrão';

// declaração de método
public function displayVar() {
echo $this->var;
}
}
?>

A pseudo-variável $this está disponível quando um método é chamado a partir de um contexto de um objeto. $this é o valor do objeto chamado.

Aviso

Chamar um método não estático de maneira estática lança um Error. Anteriormente ao PHP 8.0.0, isto iria gerar um aviso de descontinuação, e $this estaria indefinido.

Exemplo #2 Alguns exemplos da pseudo variável $this

<?php
class A
{
function foo()
{
if (isset($this)) {
echo '$this está definida (';
echo get_class($this);
echo ")\n";
} else {
echo "\$this não está definida.\n";
}
}
}

class B
{
function bar()
{
A::foo();
}
}

$a = new A();
$a->foo();

A::foo();

$b = new B();
$b->bar();

B::bar();
?>

Saída do exemplo acima no PHP 7:

$this está definida (A)

Deprecated: Non-static method A::foo() should not be called statically in %s  on line 27
$this não está definida.

Deprecated: Non-static method A::foo() should not be called statically in %s  on line 20
$this não está definida.

Deprecated: Non-static method B::bar() should not be called statically in %s  on line 32

Deprecated: Non-static method A::foo() should not be called statically in %s  on line 20
$this não está definida.

Saída do exemplo acima no PHP 8:

$this está definida (A)

Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27
Stack trace:
#0 {main}
  thrown in %s  on line 27

Classes somente leitura

A partir do PHP 8.2.0, uma classe pode ser marcada com o modificador readonly. Marcar uma classe como readonly irá acrescentar o modificador readonly em cada propriedade declarada, e prevenir a criação de propriedades dinâmicas. Além disso será impossível de acrescentar suportes a propriedades dinâmicas utilizando o atributo AllowDynamicProperties. Acrescentar o atributo em classes somente leitura irá disparar um erro de compilação.

<?php
#[\AllowDynamicProperties]
readonly class Foo {
}

// Fatal error: Cannot apply #[AllowDynamicProperties] to readonly class Foo
?>

Como as propriedades estáticas ou sem tipo não podem ser marcadas com o modificador readonly, as classes somente leitura também não podem declará-las:

<?php
readonly class Foo
{
public $bar;
}

// Fatal error: Readonly property Foo::$bar must have type
?>
<?php
readonly class Foo
{
public static int $bar;
}

// Fatal error: Readonly class Foo cannot declare static properties
?>

Uma classe readonly pode ser estendida se, e somente se, a classe filha também ser uma classe readonly.

new

Para criar uma instância de uma classe, a instrução new deve ser utilizada. Um objeto sempre será criado a não ser que a classe tenha um construtor definido que dispare uma exceção em caso de erro. Classes devem ser definidas antes de instanciadas (e em alguns casos isso é obrigatório).

Se uma variável contendo uma string com o nome da classe for utilizado com new, uma nova instância da classe será criada. Se a classe estiver dentro de um namespace, seu nome qualificado completo deve ser utilizado ao fazer isto.

Nota:

Se não há argumentos a serem passados para o construtor da classe, os parênteses após o nome da classe podem ser omitidos.

Exemplo #3 Criando uma instância

<?php
$instance = new SimpleClass();

// Também pode ser feito com uma variável:
$className = 'SimpleClass';
$instance = new $className(); // new SimpleClass()
?>

A partir do PHP 8.0.0, usar new com expressões arbitrárias é suportado. Isso permite instanciação mais complexa se a expressão produzir uma string. As expressões devem ser envolvidas em parênteses.

Exemplo #4 Criando uma instância usando uma expressão arbitrária

No exemplo fornecido mostramos múltiplos exemplos de expressões arbitrárias válidas que produzem um nome de classe. Isto mostra uma chamada para uma função, concatenação de string, e a constante ::class.

<?php

class ClasseA extends \stdClass {}
class ClasseB extends \stdClass {}
class ClasseC extends ClasseB {}
class ClasseD extends ClasseA {}

function obterAlgumaClasse(): string
{
return 'ClasseA';
}

var_dump(new (obterAlgumaClasse()));
var_dump(new ('Classe' . 'B'));
var_dump(new ('Classe' . 'C'));
var_dump(new (ClasseD::class));
?>

Saída do exemplo acima no PHP 8:

object(ClasseA)#1 (0) {
}
object(ClasseB)#1 (0) {
}
object(ClasseC)#1 (0) {
}
object(ClasseD)#1 (0) {
}

No contexto da classe, é possível criar um novo objeto com new self e new parent.

Ao atribuir uma instância de uma classe já criada, a uma variável nova, a variável nova irá acessar a mesma instância do objeto que foi atribuído. Este comportamento se mantém ao se passar instâncias a uma função. Uma cópia de um objeto criado pode ser feita clonando o mesmo.

Exemplo #5 Atribuição de Objetos

<?php

$instance = new SimpleClass();

$assigned = $instance;
$reference =& $instance;

$instance->var = '$assigned terá esse valor';

$instance = null; // $instance e $reference tornam-se nulos

var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>

O exemplo acima produzirá:

NULL
NULL
object(SimpleClass)#1 (1) {
   ["var"]=>
     string(30) "$assigned terá esse valor"
}

É possível usar algumas formas de criar instâncias de um objeto:

Exemplo #6 Criando novos objetos

<?php

class Test
{
public static function getNew()
{
return new static();
}
}

class Child extends Test {}

$obj1 = new Test(); // Usando o nome da classe
$obj2 = new $obj1(); // Usando a variável que contém o objeto
var_dump($obj1 !== $obj2);

$obj3 = Test::getNew(); // Usando o método da classe
var_dump($obj3 instanceof Test);

$obj4 = Child::getNew(); // Usando o método através da classe filha
var_dump($obj4 instanceof Child);

?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(true)

É possível acessar um membro do objeto recém criado em uma expressão simples:

Exemplo #7 Acessando um membro de um novo objeto criado

<?php
echo (new DateTime())->format('Y');
?>

O exemplo acima produzirá algo semelhante a:

2016

Nota: Anteriormente ao PHP 7.1, os argumentos não são avaliados se não houver um construtor definido.

Propriedades e métodos

Propriedades e métodos de classe vivem em "namespaces" separados, de forma que é possível ter uma propriedade e método com mesmos nomes. A referência a propriedades e métodos tem a mesma notação, e a decisão de se uma propriedade será acessada ou uma chamada a um método feita, depende somente do contexto, ou seja, se está tentando acessar uma variável ou chamar um método.

Exemplo #8 Acesso a propriedade vs. chamar um método

<?php
class Foo
{
public $bar = 'propriedade';

public function bar() {
return 'métod';
}
}

$obj = new Foo();
echo $obj->bar, PHP_EOL, $obj->bar(), PHP_EOL;

O exemplo acima produzirá:

propriedade
método

Isto significa que chamar diretamente uma função anônima atribuída a uma propriedade não é possível. Em vez disso, por exemplo, a propriedade deve primeiro ser atribuída a uma variável. É possível chamar uma propriedade diretamente colocando-a entre parênteses.

Exemplo #9 Chamando uma função anônima armazenada em uma propriedade

<?php
class Foo
{
public $bar;

public function __construct() {
$this->bar = function() {
return 42;
};
}
}

$obj = new Foo();

echo ($obj->bar)(), PHP_EOL;

O exemplo acima produzirá:

42

extends

Uma classe pode herdar constantes, métodos e propriedades de outra classe usando a palavra-chave extends na declaração da classe. Não é possível herdar múltiplas classes; uma classe só pode herdar uma classe base.

Os métodos e propriedades herdados podem ser sobrescritos declarando-os com o mesmo nome definido na classe base. Entretanto, se a classe mãe definiu um método ou constante como final, eles não poderão ser sobrescritos. É possível acessar os métodos sobrescritos ou propriedades estáticas referenciado-os com parent::.

Nota: A partir do PHP 8.1.0, constantes podem ser declaradas como finais.

Exemplo #10 Herança simples de classe

<?php
class ExtendClass extends SimpleClass
{
// Redefine o método pai
function displayVar()
{
echo "Classe Herdeira\n";
parent::displayVar();
}
}

$extended = new ExtendClass();
$extended->displayVar();
?>

O exemplo acima produzirá:

Classe Herdeira
um valor padrão

Regras de compatibilidade de assinaturas

Ao sobrescrever um método, sua assinatura precisa ser compatível com a do método original. Caso contrário um erro fatal é emitido, ou, antes do PHP 8.0.0, um alerta E_WARNING seria gerado. Uma assinatura é compatível se ela respeita as regras de variância, se ela transforma um parâmetro obrigatório em opcional, se ela adiciona novos parâmetros opcionais, e se ela não restringe ou apenas aumenta a visibilidade. Isso é conhecido como Princípio de Substituição de Liskov, ou LSP. O construtor, e membros private não precisam seguir essas regras de compatibilidade, e portanto não há emissão de erros fatais no caso de assinaturas incompatíveis.

Exemplo #11 Métodos compatíveis

<?php

class Base
{
public function foo(int $a) {
echo "Valid\n";
}
}

class Extend1 extends Base
{
function foo(int $a = 5)
{
parent::foo($a);
}
}

class Extend2 extends Base
{
function foo(int $a, $b = 5)
{
parent::foo($a);
}
}

$extended1 = new Extend1();
$extended1->foo();
$extended2 = new Extend2();
$extended2->foo(1);

O exemplo acima produzirá:

Valid
Valid

Os exemplos a seguir demonstram que um método derivado, que remove um parâmetro ou transforma um parâmetro opcional em mandatório, não é compatível com o método original.

Exemplo #12 Erro fatal quando um método derivado remove um parâmetro

<?php

class Base
{
public function foo(int $a = 5) {
echo "Válido?\n";
}
}

class Extend extends Base
{
function foo()
{
parent::foo(1);
}
}

A saída do exemplo acima no PHP 8 é semelhante a:

Fatal error: Declaration of Extend::foo() must be compatible with Base::foo(int $a = 5) in /in/evtlq on line 13

Exemplo #13 Erro fatal quando um método derivado transforma um parâmetro opcional em mandatório

<?php

class Base
{
public function foo(int $a = 5) {
echo "Válido?\n";
}
}

class Extend extends Base
{
function foo(int $a)
{
parent::foo($a);
}
}

A saída do exemplo acima no PHP 8 é semelhante a:

Fatal error: Declaration of Extend::foo(int $a) must be compatible with Base::foo(int $a = 5) in /in/qJXVC on line 13
Aviso

Renomear um parâmetro em uma classe derivada não é uma quebra de assinatura. Entretanto isso é desencorajado porque ocasionará um Error se argumentos nomeados forem utilizados na chamada.

Exemplo #14 Erro ao utilizar argumentos renomeados em uma classe derivada

<?php

class A {
public function test($foo, $bar) {}
}

class B extends A {
public function test($a, $b) {}
}

$obj = new B;

// Passando parâmetros de acordo com o contrato de A::test()
$obj->test(foo: "foo", bar: "bar"); // ERROR!

O exemplo acima produzirá algo semelhante a:

Fatal error: Uncaught Error: Unknown named parameter $foo in /in/XaaeN:14
Stack trace:
#0 {main}
  thrown in /in/XaaeN on line 14

::class

A palavra-chave class também pode ser utilizada para resolução de nome de classes. Pode-se obter o nome completo e qualificado da classe ClassName utilizando ClassName::class. Isso é particularmente útil em classes com namespaces.

Exemplo #15 Resolução de nome da classe

<?php
namespace NS {
class ClassName {
}

echo ClassName::class;
}
?>

O exemplo acima produzirá:

NS\ClassName

Nota:

A resolução do nome de classe através de ::class é uma transformação em tempo de compilação. Isso significa que no momento em que o texto do nome da classe é criado, o auto carregamento ainda não ocorreu. Como consequência, nomes de classe são expandidos mesmo se a classe não existir. Não é emitido erro nestes casos.

Exemplo #16 Resolução de um nome de classe ausente

<?php
print Does\Not\Exist::class;
?>

O exemplo acima produzirá:

Does\Not\Exist

A partir do PHP 8.0.0, a constante ::class também pode ser utilizada em objetos. Essa resolução acontece em tempo de execução, e não em tempo de compilação. O efeito é o mesmo de chamar get_class() em um objeto.

Exemplo #17 Resolução de nome de objeto

<?php
namespace NS {
class ClassName {
}
}
$c = new ClassName();
print $c::class;
?>

O exemplo acima produzirá:

NS\ClassName

Métodos e propriedades nullsafe

A partir do PHP 8.0.0, propriedades e métodos também podem ser acessados com o operador "nullsafe": ?->. O operador nullsafe funciona da mesma forma que os acessos de métodos e variáveis, exceto que se o objeto referenciado é null, então null será retornado ao invés de uma exceção ser lançada. Se uma derreferência for parte de uma cadeia de chamadas, o resto da cadeia é ignorado.

O resultado é similar a encapsular cada acesso dentro de um teste is_null(), mas mais compacto.

Exemplo #18 Operador nullsafe

<?php

// A partir do PHP 8.0.0, esta linha:
$result = $repository?->getUser(5)?->name;

// É o equivalente ao seguinte código:
if (is_null($repository)) {
$result = null;
} else {
$user = $repository->getUser(5);
if (is_null($user)) {
$result = null;
} else {
$result = $user->name;
}
}
?>

Nota:

O operador nullsafe é melhor utilizado quando null é considerado um valor válido e esperado de uma propriedade ou retorno de método. Para indicar um erro, uma exceção lançada é preferível.


Propriedades

Variáveis membros de classes são chamados de propriedades. Eles também são conhecidos por outros termos, como campos (field), mas para propósitos deste manual será utilizado o termo propriedade. Elas podem ser definidas com ao menos um modificador opcional (ver Visibilidade, Palavra-Chave 'static', ou, a partir do PHP 8.1.0, readonly), (exceto para propriedades readonly properties), a partir do PHP 7.4, seguido também de uma declaração de tipo, finalizando com um nome de variável comum. Essa declaração pode ainda incluir uma inicialização, desde que essa inicialização seja um valor constante.

Nota:

Uma forma obsoleta de declarar propriedades de classe é através da instrução var ao invés de um modificador.

Nota: Uma propriedade declarada sem um modificador de Visibilidade funcionará como uma propriedade public.

Internamente às classes, métodos não estáticos podem ser acessados utilizando-se -> (operador de objeto): $this->property (onde property é o nome da propriedade). Propriedades estáticas são acessadas utilizando-se o operador :: (duplo dois pontos), assim: self::$property. Veja Palavra-Chave 'static' para mais informações sobre a diferença de propriedades estáticas e não estáticas.

A pseudo-variável $this está disponível dentro de qualquer classe de método chamada no contexto do objeto. $this é uma referência ao objeto de contexto do qual o método foi chamado.

Exemplo #1 Declaração de propriedades

<?php
class SimpleClass
{
public $var1 = 'Olá ' . 'mundo';
public $var2 = <<<EOD
Olá mundo
EOD;
public $var3 = 1+2;
// Declaração de propriedade inválida
public $var4 = self::myStaticMethod();
public $var5 = $myVar;

// Declaração de propriedade válida
public $var6 = myConstant;
public $var7 = [true, false];

public $var8 = <<<'EOD'
Olá mundo
EOD;

// Sem um modificador de visibilidade:
static $var9;
readonly int $var10;
}
?>

Nota:

Existem várias funções para manipular classes e objetos. Veja a seção sobre funções sobre classes/objetos para mais detalhes.

Declaração de propriedades tipadas

A partir do PHP 7.4.0, definições de propriedades podem incluir uma Declarações de tipo, com exceção do tipo callable.

Exemplo #2 Exemplo de propriedades tipadas

<?php

class User
{
public int $id;
public ?string $name;

public function __construct(int $id, ?string $name)
{
$this->id = $id;
$this->name = $name;
}
}

$user = new User(1234, null);

var_dump($user->id);
var_dump($user->name);

?>

O exemplo acima produzirá:

int(1234)
NULL

Propriedades tipadas precisam ser inicializadas antes de serem acessadas, senão um Error é lançado.

Exemplo #3 Acessando propriedades

<?php

class Forma
{
public int $numeroDeLados;
public string $nome;

public function setnumeroDeLados(int $numeroDeLados): void
{
$this->numeroDeLados = $numeroDeLados;
}

public function setNome(string $nome): void
{
$this->nome = $nome;
}

public function getnumeroDeLados(): int
{
return $this->numeroDeLados;
}

public function getNome(): string
{
return $this->nome;
}
}

$triangle = new Forma();
$triangle->setNome("triângulo");
$triangle->setnumeroDeLados(3);
var_dump($triangle->getNome());
var_dump($triangle->getnumeroDeLados());

$circle = new Forma();
$circle->setNome("cículo");
var_dump($circle->getNome());
var_dump($circle->getnumeroDeLados());
?>

O exemplo acima produzirá:

string(9) "triângulo"
int(3)
string(7) "círculo"

Fatal error: Uncaught Error: Typed property Forma::$numeroDeLados must not be accessed before initialization

Propriedades somente leitura

A partir do PHP 8.1.0, uma propriedade pode ser declarada com o modificador readonly, o que previne modificação da propriedade após a inicialização.

Exemplo #4 Exemplo de propriedade somente leitura

<?php

class Test {
public readonly string $prop;

public function __construct(string $prop) {
// Inicialização permitida.
$this->prop = $prop;
}
}

$test = new Test("foobar");
// Legal read.
var_dump($test->prop); // string(6) "foobar"

// Modificação ilegal. Não importa que o valor seja o mesmo.
$test->prop = "foobar";
// Error: Cannot modify readonly property Test::$prop
?>

Nota:

O modificador readonly somente pode ser aplicado a propriedades tipadas. Uma propriedade somente leitura sem restrições de tipo pode ser declarada utilizando o tipo Mixed.

Nota:

Propriedades estáticas não são suportadas.

Uma propriedade somente leitura somente pode ser inicializada uma única vez, e somente do escopo onde ela foi declarada. Quaisquer outras modificações da propriedade resultam em um Error.

Exemplo #5 Inicilização ilegal de propriedades somente leitura.

<?php
class Test1 {
public readonly string $prop;
}

$test1 = new Test1;
// Inicialização ilegal fora do escopo privado.
$test1->prop = "foobar";
// Error: Cannot initialize readonly property Test1::$prop from global scope
?>

Nota:

Especificar um valor default para uma propriedade somente leitura não é permitido, porque uma propriedade com um valor default é essencialmente uma constante, e portanto não tem outro propósito.

<?php

class Test {
// Fatal error: Readonly property Test::$prop cannot have default value
public readonly int $prop = 42;
}
?>

Nota:

Propriedades somente leitura não podem ser unset() depois de inicializadas. Entretanto é possível realizar essa operação antes da inicialização, dentro do escopo onde a variável foi declarada.

Nenhum tipo de modificação é permitido, e o seguintes casos resultarão em um Error:

<?php

class Test {
public function __construct(
public readonly int $i = 0,
public readonly array $ary = [],
) {}
}

$test = new Test;
$test->i += 1;
$test->i++;
++$test->i;
$test->ary[] = 1;
$test->ary[0][] = 1;
$ref =& $test->i;
$test->i =& $ref;
byRef($test->i);
foreach ($test as &$prop);
?>

Entretanto, propriedades somente leitura não proíbem mutação. Objetos ou recursos armazenados em propriedades somente leitura ainda podem ser modificados internamente:

<?php

class Test {
public function __construct(public readonly object $obj) {}
}

$test = new Test(new stdClass);
// Modificação interna permitida
$test->obj->foo = 1;
// Reinicialização proibida.
$test->obj = new stdClass;
?>

Propriedades dinâmicas

Ao tentar atribuir uma propriedade inexistente em um object, o PHP irá automaticamente criar a propriedade. Essa propriedade criada dinamicamente será disponível apenas naquela instância específica.

Aviso

Propriedades dinâmicas foram descontinuadas a partir do PHP 8.2.0. É recomendado declarar todas as propriedades previamente. Para suportar nomes de propriedades arbitrárias, a classe deve implementar os métodos mágicos __get() e __set(). Como último recurso, a classe pode ser marcada com o atributo #[\AllowDynamicProperties].


Constantes de Classe

É possível definir constantes em cada classe separadamente. A visibilidade padrão de constantes de classe é public.

Nota:

Constantes de classe podem ser redefinidas em classes filhas. A partir do PHP 8.1.0, constantes de classe não podem ser redefinidas numa classe filha se ela for qualificada como final.

Também é possível que interfaces tenham constantes. Veja na documentação de interface os exemplos.

É possível referenciar a classe usando uma variável. O valor da variável não pode ser uma palavra-chave (e.g. self, parent e static).

Constantes de classe são alocadas por classe, e não em cada instância da classe.

Exemplo #1 Definindo e usando uma constante

<?php
class MinhaClasse
{
const CONSTANTE = 'valor constante';

function mostrarConstante() {
echo self::CONSTANTE . "\n";
}
}

echo MinhaClasse::CONSTANTE . "\n";

$classname = "MinhaClasse";
echo $classname::CONSTANTE;

$classe = new MinhaClasse();
$classe->mostrarConstante();

echo $classe::CONSTANTE;
?>

A constante especial ::class permite a resolução de classes pelo seu nome completo em tempo de compilação, e isso é útil em classes com namespaces:

Exemplo #2 Exemplo com informação estática

<?php
namespace foo {
class bar {
}

echo bar::class; // foo\bar
}
?>

Exemplo #3 Exemplo de expressão constante

<?php
const ONE = 1;
class foo {
const TWO = ONE * 2;
const THREE = ONE + self::TWO;
const SENTENCE = 'The value of THREE is '.self::THREE;
}
?>

Exemplo #4 Modificadores de visibilidade em constantes de classe

<?php
class Foo {
public const BAR = 'bar';
private const BAZ = 'baz';
}
echo Foo::BAR, PHP_EOL;
echo Foo::BAZ, PHP_EOL;
?>

Saída do exemplo acima no PHP 7.1:

bar

Fatal error: Uncaught Error: Cannot access private const Foo::BAZ in …

Nota:

Modificadores de visibilidade estão disponíveis desde o PHP 7.1.0.


Autoloading Classes

Muitos desenvolvedores ao desenvolver aplicações orientadas a objeto criam um arquivo PHP para cada definição de classe. Um dos maiores contratempos é ter de escrever uma longa lista de includes no início de cada script(um para cada classe).

A função spl_autoload_register() registra qualquer número de autoloaders, permitindo que classes e interfaces sejam automaticamente carregadas se elas não ainda não foram definidas. Ao registrar autoloaders, o PHP têm uma última chance de carregar classes e interfaces antes que falhem com um erro.

Qualquer construto tipo classe pode ser automaticamente carregado do mesmo jeito. Isso inclui classes, interfaces, traits, and enumerações.

Cuidado

Antes do PHP 8.0.0. era possível usar __autoload() para fazer autoload de classes and interfaces. No entanto, ela é uma alternativa menos flexível a spl_autoload_register() e __autoload() está descontinuada a partir do PHP 7.2.0, e removida a partir do PHP 8.0.0.

Nota:

spl_autoload_register() pode ser chamada várias vezes para registrar múltiplos autoloaders. No entando, lançar uma exceção em uma função de autoload interromperá esse processo e não permitirá que outras funções de autoload sejam executadas. Por esse motivo, o lançamento de exceções em funções de autoload é altamente desencorajado.

Exemplo #1 Exemplo de Autoload

Esse exemplo tenta carregar as classes MyClass1 e MyClass2 dos arquivos MyClass1.php e MyClass2.php respectivamente.

<?php
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});

$obj = new MyClass1();
$obj2 = new MyClass2();
?>

Exemplo #2 Outro exemplo de Autoload

Este exemplo tenta carregar a interface ITest.

<?php

spl_autoload_register(function ($name) {
var_dump($name);
});

class Foo implements ITest {
}

/*
string(5) "ITest"

Fatal error: Interface 'ITest' not found in ...
*/
?>

Veja Também

  • unserialize()
  • unserialize_callback_func
  • unserialize_max_depth
  • spl_autoload_register()
  • spl_autoload()
  • __autoload()


Construtores e Destrutores

Construtores

__construct(mixed ...$values = ""): void

O PHP permite aos desenvolvedores declararem métodos construtores para as classes. Classes que tem um método construtor chamam o método a cada objeto recém criado, sendo apropriado para qualquer inicialização que o objeto necessite antes de ser utilizado.

Nota: Construtores pais não são chamados implicitamente se a classe filha define um construtor. Para executar o construtor da classe pai, uma chamada a parent::__construct() dentro do construtor da classe filha é necessária. Se a classe filha não definir um construtor, será herdado da classe pai como um método normal (se não foi declarado como privado).

Exemplo #1 Construtoras em herança

<?php
class BaseClass {
function __construct() {
print "In BaseClass constructor\n";
}
}

class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructor\n";
}
}

class OtherSubClass extends BaseClass {
// inherits BaseClass's constructor
}

// In BaseClass constructor
$obj = new BaseClass();

// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();

// In BaseClass constructor
$obj = new OtherSubClass();
?>

Diferente de outros métodos, __construct() não precisa seguir as regras usuais de compatibilidade de assinatura em objetos derivados.

Construtores são métodos ordinários que são chamados durante a criação do objeto correspondente. Eles podem definir um número arbitrários de argumentos, quais podem ser obrigatórios, podem ter um tipo, e podem ter valores padrão. Argumentos de construtores são informados dentro de parênteses depois do nome da classe.

Exemplo #2 Utilizando argumentos de construtor

<?php
class Point {
protected int $x;
protected int $y;

public function __construct(int $x, int $y = 0) {
$this->x = $x;
$this->y = $y;
}
}

// Passagem de ambos os argumentos.
$p1 = new Point(4, 5);
// Passar somente o argumento obrigatório, $y terá o valor padrão zero.
$p2 = new Point(4);
// Com parâmetros nomeados (a partir do PHP 8.0):
$p3 = new Point(y: 5, x: 4);
?>

Se a classe não tem construtor, ou o construtor não tem argumentos obrigatórios, o parêntesis pode ser omitido.

Construtores em estilo antigo

Anteriormente ao PHP 8.0.0 as classes no namespace global interpretam um método com o mesmo nome da classe como sendo um construtor válido. Essa sintaxe foi descontinuada, e gerará um erro E_DEPRECATED embora ainda continue funcionando como um construtor. Se ambos o __construct() e um método homônimo da classe estiverem definidos, __construct() que será chamado.

Em classes dentro de namespaces, ou quaisquer classes a partir do PHP 8, um método homônimo ao nome da classe não tem um significado especial.

Sempre utilize __construct() em novos códigos.

Promoção de propriedades no construtor

A partir do PHP 8, parâmetros de construtores podem ser promovidos a uma propriedade do objeto. Isto é bastante comum quando parâmetros do construtor de serem informados em uma propriedade no construtor, sem nenhum processamento. Promoção de construtor fornece uma sintaxe reduzida para esse caso. O exemplo acima pode ser reescrito assim:

Exemplo #3 Utilizando promoção de propriedades no construtor

<?php
class Point {
public function __construct(protected int $x, protected int $y = 0) {
}
}

Quanto um argumento de construtor incluir um modificador, o PHP interpreta como sendo uma propriedade de objeto e como um argumento do construtor, e assimilará o valor do argumento a uma propriedade de mesmo nome. O corpo do construtor pode estar vazio ou conter outras operações. Quaisquer operações serão executados após os valores dos argumentos serem definidos nas respectivas propriedades.

Nem todos os argumentos são promovidos. É possível misturar os argumentos promovidos e não promovidos em qualquer ordem. Argumentos promovidos não têm impacto no código chamador do construtor.

Nota:

Utilizar um modificador de visibilidade (public, protected ou private) é o modo mais expressivo de gerar a promoção de propriedades, mas quaisquer outro modificador (como por exemplo readonly) terá o mesmo efeito.

Nota:

Propriedades de objeto não podem ser do tipo callable dado uma ambiguidade que poderia introduzir. Argumentos promovidos, portanto, não podem ser do tipo callable. Quaisquer outra declaração de tipo é permitida.

Nota:

Propriedades promovidas são convertidas em uma propriedade normal assim como um parâmetro de função, portanto todas as restrições de nomeação de propriedades e parâmetros se aplicam.

Nota:

Atributos informados em um argumento promovido será replicado tanto na propriedade como no no argumento. Valores padrão de argumentos promovidos no construtor serão replicados apenas no argumento, mas não na propriedade.

New em inicializadores de parâmetros

A partir do PHP 8.1.0, objetos podem ser utilizados como valores padrão de parâmetros, variáveis estáticas e constantes globais, assim como argumentos de atributos. Novos objetos também podem ser passados na instrução define().

Nota:

Não é permitido nomes de classe não-string ou classes anônimas. Não é permitido o espalhamento de argumentos. Não é permitido o uso de expressões.

Exemplo #4 New em inicializações

<?php

// Permitido:
static $x = new Foo;

const C = new Foo;

function test($param = new Foo) {}

#[AnAttribute(new Foo)]
class Test {
public function __construct(
public $prop = new Foo,
) {}
}

// Não permitido, resultad em erro de compilação:
function test(
$a = new (CLASS_NAME_CONSTANT)(), // Nome dinâmico de classe
$b = new class {}, // Classe anônima
$c = new A(...[]), // Espalhamento de argumento
$d = new B($abc), // Expressão
) {}
?>

Métodos de criação estáticos

O PHP suporta apenas um único construtor por classe. Em alguns casos pode ser desejável de permitir a um objeto ser construído de maneiras diferentes, a partir de argumentos diferentes. O método recomendado para realizar isso é através de métodos estáticos, utilizados como empacotadores do construtor.

Exemplo #5 Utilizando métodos estáticos para construção

<?php
class Product {

private ?int $id;
private ?string $name;

private function __construct(?int $id = null, ?string $name = null) {
$this->id = $id;
$this->name = $name;
}

public static function fromBasicData(int $id, string $name): static {
$new = new static($id, $name);
return $new;
}

public static function fromJson(string $json): static {
$data = json_decode($json, true);
return new static($data['id'], $data['name']);
}

public static function fromXml(string $xml): static {
// Custom logic here.
$data = convert_xml_to_array($xml);
$new = new static();
$new->id = $data['id'];
$new->name = $data['name'];
return $new;
}
}

$p1 = Product::fromBasicData(5, 'Widget');
$p2 = Product::fromJson($some_json_string);
$p3 = Product::fromXml($some_xml_string);

O construtor pode ser private ou protected para evitar que ele seja chamado externamente. Nesses casos apenas um construtor estático será capaz de instanciar a classe. Por eles estarem nas mesma definição de classe, os métodos estáticos são capazes de instanciar o objeto, mesmo em uma instância diferente. O construtor privado é opcional e pode não fazer sentido em todos os casos.

Os três métodos estáticos a seguir demonstram as maneiras diferentes de instanciar um objeto.

  • fromBasicData() obtém os exatos parâmetros que são necessários, e então cria o objeto através da chamada do construtor e retorna o resultado
  • fromJson() aceita uma string JSON, realiza algum pré-processamento para converter os dados no formato necessário ao construtor. Só então retorna o novo objeto.
  • fromXml() aceita uma string XML, pré-processa, e então cria um objeto limpo. O construtor é chamado, mas com todos os parâmetros opcionais o método os ignora. Por fim, os valores nas propriedades do objeto são associados antes de retornar o resultado.

Nos três casos, a palavra chave static é convertida no nome da classe onde o código reside. Nesse caso a classe Product.

Destrutor

__destruct(): void

O PHP introduz um conceito de destrutor similar ao de outras linguagens orientadas a objeto, como C++. O método destrutor será chamado assim que todas as referências a um objeto particular forem removidas ou quando o objeto for explicitamente destruído ou qualquer ordem na sequência de encerramento.

Exemplo #6 Exemplo de Destrutor

<?php

class MyDestructableClass
{
function __construct() {
print "In constructor\n";
}

function __destruct() {
print "Destroying " . __CLASS__ . "\n";
}
}

$obj = new MyDestructableClass();

Assim como os construtores, os destrutores da classe pai não serão chamados implicitamente pelo PHP. Para executar o destrutor pai, deve-se fazer uma chamada explícita a parent::__destruct() no corpo do destrutor. Assim como construtores, uma classe filha pode herdar o destrutor caso não implemente um.

O destrutor será chamado mesmo se o script for terminado utilizando-se exit(). Chamar exit() em um destrutor irá impedir que as demais rotinas de encerramento executem.

Nota:

Destrutores chamados durante o encerramento da execução do script já enviaram os cabeçalhos HTTP. O diretório atual na fase de encerramento do script pode ser diferente em alguns SAPIs (e.g. Apache).

Nota:

Tentar disparar uma exceção em um destrutor (chamado no término do script), lançará um erro fatal.


Visibilidade

A visibilidade de uma propriedade ou método ou constante pode ser definida prefixando a declaração com as palavras-chave public, protected ou private. Membros de classes declarados como públicos podem ser acessados de qualquer lugar. Membros declarados como protegidos pode ser acessados na própria classe ou de classes referenciadas por herança acima. Membros declarados como privados só podem ser acessados por classes que definem esse membro.

Visibilidade de propriedades

Propriedades de classes podem ser declarados como públicas, privadas ou protegidas. Propriedades declaradas sem visibilidade são definidas como públicas.

Exemplo #1 Declaração de propriedade

<?php
/**
* Define MinhaClasse
*/
class MinhaClasse
{
public $publica = 'Public';
protected $protegida = 'Protected';
private $privada = 'Private';

function imprimeAlo()
{
echo $this->publica;
echo $this->protegida;
echo $this->privada;
}
}

$obj = new MinhaClasse();
echo $obj->publica; // Funciona
echo $obj->protegida; // Erro Fatal
echo $obj->privada; // Erro Fatal
$obj->imprimeAlo(); // Mostra Public, Protected e Private

/**
* Define MinhaClasse2
*/
class MinhaClasse2 extends MinhaClasse
{
// Nós podemos redeclarar as propriedades públicas e protegidas mas não as privadas
public $publica = 'Public2';
protected $protegida = 'Protected2';

function imprimeAlo()
{
echo $this->publica;
echo $this->protegida;
echo $this->privada;
}
}

$obj2 = new MinhaClasse2();
echo $obj2->publica; // Funciona
echo $obj2->protegida; // Erro fatal
echo $obj2->privada; // Não definida
$obj2->imprimeAlo(); // Mostra Public, Protected2, Undefined

?>

Visibilidades de métodos

Métodos de classe podem ser definidos como público, privado ou protegido. Métodos sem qualquer declaração explícita serão definidos como público.

Exemplo #2 Declaração de método

<?php
/**
* Define MinhaClasse
*/
class MinhaClasse
{
// Declara um construtor público
public function __construct() { }

// Declara um método public
public function MeuPublico() { }

// Declara um método protected
protected function MeuProtegido() { }

// Declara um método private
private function MeuPrivado() { }

// Esse é public
function Foo()
{
$this->MeuPublico();
$this->MeuProtegido();
$this->MeuPrivado();
}
}

$minhaclasse = new MinhaClasse;
$minhaclasse->MeuPublico(); // Funciona
$minhaclasse->MeuProtegido(); // Erro Fatal
$minhaclasse->MeuPrivado(); // Erro Fatal
$minhaclasse->Foo(); // Public, Protected e Private funcionam

/**
* Define MinhaClasse2
*/
class MinhaClasse2 extends MinhaClasse
{
// Esse é public
function Foo2()
{
$this->MeuPublico();
$this->MeuProtegido();
$this->MeuPrivado(); // Erro Fatal
}
}

$minhaclasse2 = new MinhaClasse2;
$minhaclasse2->MeuPublico(); // Funciona
$minhaclasse2->Foo2(); // Public e Protected funcionam, Private não

class Bar
{
public function test() {
$this->testPrivate();
$this->testPublic();
}

public function testPublic() {
echo "Bar::testPublic\n";
}

private function testPrivate() {
echo "Bar::testPrivate\n";
}
}

class Foo extends Bar
{
public function testPublic() {
echo "Foo::testPublic\n";
}

private function testPrivate() {
echo "Foo::testPrivate\n";
}
}

$myFoo = new foo();
$myFoo->test(); // Bar::testPrivate
// Foo::testPublic
?>

Visibilidade de constantes

A partir do PHP 7.1.0, constantes de classe podem ser definidas como públicas, protegidas ou privadas. Constantes declaradas sem visibilidade explícita são definidas como públicas.

Exemplo #3 Declaração de constantes (desde o PHP 7.1.0)

<?php
/**
* Define MyClass
*/
class MyClass
{
// Declara uma constante pública
public const MY_PUBLIC = 'public';

// Declara uma constante protegida
protected const MY_PROTECTED = 'protected';

// Declara uma constante privada
private const MY_PRIVATE = 'private';

public function foo()
{
echo self::MY_PUBLIC;
echo self::MY_PROTECTED;
echo self::MY_PRIVATE;
}
}

$myclass = new MyClass();
MyClass::MY_PUBLIC; // Funciona
MyClass::MY_PROTECTED; // Erro fatal
MyClass::MY_PRIVATE; // Erro fatal
$myclass->foo(); // Todos os acessos funcionam dentro do método

/**
* Define MyClass2
*/
class MyClass2 extends MyClass
{
// This is public
function foo2()
{
echo self::MY_PUBLIC;
echo self::MY_PROTECTED;
echo self::MY_PRIVATE; // Fatal Error
}
}

$myclass2 = new MyClass2;
echo MyClass2::MY_PUBLIC; // Funciona
$myclass2->foo2(); // Public and Protected funcionam, mas não Private
?>

Visibilidade de outros objetos

Objetos do mesmo tipo terão acesso a outros mementos privados e protegidos mesmo que não sejam da mesma instância. Isso acontece por que os detalhes específicos de implementação já são conhecidos dentro destes objetos.

Exemplo #4 Acessando membros privados entre objetos do mesmo tipo

<?php
class Test
{
private $foo;

public function __construct($foo)
{
$this->foo = $foo;
}

private function bar()
{
echo 'Acessou o método privado.';
}

public function baz(Test $other)
{
// Pode-se alterar a propriedade privada:
$other->foo = 'hello';
var_dump($other->foo);

// Pode-se chamar método privado:
$other->bar();
}
}

$test = new Test('test');

$test->baz(new Test('other'));
?>

O exemplo acima produzirá:

string(5) "hello"
Acessou o método privado.


Herança de Objetos

Herança é um conceito de programação estabelecido, e o PHP faz use deste em seu modelo de objetos. Este princípio afeta a forma com que classes e objetos se relacionam com outras.

Por exemplo, ao estender uma classe, a subclasse herda todos os métodos públicos e protegidos, propriedades e constantes da classe pai. A não que uma classe sobrescreva estes métodos, eles manterão sua funcionalidade original.

Isto é útil para definir uma funcionalidade abstrata, e permitir a implementação de uma funcionalidade adicional em objetos similares sem a necessidade de reimplementar todas as funcionalidades compartilhadas.

Os métodos privados de uma classe pai não são acessíveis a uma classe filha. Como resultado, as classes filhas podem reimplementar um método privado sem levar em conta as regras normais de herança. Antes do PHP 8.0.0, entretanto, as restrições final e static eram aplicadas aos métodos privados. Desde o PHP 8.0.0, a única restrição de método privado que é aplicada é private final para construtores, já que essa é uma maneira comum de "desabilitar" o construtor ao usar métodos de fábricação estáticos.

A visibilidade de métodos, propriedades e constantes pode ser relaxada, por exemplo, um método com protected pode ser marcado como public, mas não pode ser restrito, por exemplo, marcar uma propriedade que tenha public como private. Uma exceção são os construtores, cuja visibilidade pode ser restrita, ou seja, um construtor public pode ser declarado como private numa classe filha.

Nota:

A não ser que o autoload seja usado, as classes devem ser definidas antes de utilizadas. Se uma classe estende outra, a classe pai deve ser declarada antes da estrutura da classe filha. Esta regra se aplica a classes que herdam outras classes e interfaces.

Nota:

Não é permitido sobrescrever uma propriedade de leitura/gravação com um propriedade somente de leitura ou vice versa.

<?php

class A {
public int $prop;
}
class B extends A {
// Illegal: read-write -> readonly
public readonly int $prop;
}
?>

Exemplo #1 Exemplo de Herança

<?php

class Foo
{
public function printItem($string)
{
echo 'Foo: ' . $string . PHP_EOL;
}

public function printPHP()
{
echo 'PHP is great.' . PHP_EOL;
}
}

class Bar extends Foo
{
public function printItem($string)
{
echo 'Bar: ' . $string . PHP_EOL;
}
}

$foo = new Foo();
$bar = new Bar();
$foo->printItem('baz'); // Output: 'Foo: baz'
$foo->printPHP(); // Output: 'PHP is great'
$bar->printItem('baz'); // Output: 'Bar: baz'
$bar->printPHP(); // Output: 'PHP is great'

?>

Compatibilidade de Tipo de Retorno com Classes Internas

Antes do PHP 8.1, a maioria das classes ou métodos internos não declaravam seus tipos de retorno, e qualquer tipo de retorno era permitido ao estendê-los.

A partir do PHP 8.1.0, a maioria dos métodos internos começaram a declarar seu tipo de retorno de forma "experimental", nesse caso o tipo de retorno dos métodos deve ser compatível com o pai sendo estendido, do contrário, um aviso de descontinuação é emitido. Note que a ausência de uma declaração de retorno explícita também é considerada uma incompatibilidade de assinatura e, portanto, resulta no aviso de descontinuação.

Se o tipo de retorno não puder ser declarado para um método que sobrepõe devido à preocupações com compatibilidade entre versões PHP, um atributo ReturnTypeWillChange pode ser adicionado para silenciar o aviso de descontinuação.

Exemplo #2 O método que sobrepõe não declara nenhum tipo de retorno

<?php
class MeuDateTime extends DateTime
{
public function modify(string $modifier) { return false; }
}

// "Deprecated: Return type of MeuDateTime::modify(string $modifier) should either be compatible with DateTime::modify(string $modifier): DateTime|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice" a partir do PHP 8.1.0
?>

Exemplo #3 O método que sobrepõe declara um tipo de retorno errado

<?php
class MeuDateTime extends DateTime
{
public function modify(string $modifier): ?DateTime { return null; }
}

// "Deprecated: Return type of MeuDateTime::modify(string $modifier): ?DateTime should either be compatible with DateTime::modify(string $modifier): DateTime|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice" a partir do PHP 8.1.0
?>

Exemplo #4 O método que sobrepõe declara um tipo de retorno errado sem um aviso de descontinuação

<?php
class MeuDateTime extends DateTime
{
/**
* @return DateTime|false
*/
#[\ReturnTypeWillChange]
public function modify(string $modifier) { return false; }
}

// Nenhuma notícia é acionada
?>


Operador de Resolução de Escopo (::)

O Operador de Resolução de Escopo (também chamado de Paamayim Nekudotayim), ou em termos mais simples, dois pontos duplos, é um símbolo que permite acesso a uma constante, a uma propriedade estática, ou a um método estático de uma classe ou a um dos pais dessa classe. Além disso, propriedades ou métodos estáticos podem ser substituídos através de vinculação estática tardia.

Ao referenciar estes itens do lado de fora da definição da classe, use o nome da classe.

É possível referenciar a classe usando uma variável. O valor da variável não pode ser uma palavra-chave (por exemplo, self, parent e static).

Paamayim Nekudotayim pode parecer, de início, uma escolha estranha para chamar dois pontos duplos. No entanto, na hora de escrever o Motor Zend 0.5 (que equipa o PHP 3), foi como a equipe da Zend decidiu chamá-lo. Na verdade, vem do hebraico e significa literalmente "duplo dois pontos".

Exemplo #1 :: de fora da definição da classe

<?php
class MyClass {
const CONST_VALUE = 'Um valor constante';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE;

echo MyClass::CONST_VALUE;
?>

Três palavras-chave especiais, self, parent e static, são utilizadas para acessar propriedades e métodos de dentro de uma definição de classe.

Exemplo #2 :: de dentro da definição da classe

<?php
class OtherClass extends MyClass
{
public static $my_static = 'variável estática';

public static function doubleColon() {
echo parent::CONST_VALUE . "\n";
echo self::$my_static . "\n";
}
}

$classname = 'OtherClass';
echo $classname::doubleColon();

OtherClass::doubleColon();
?>

Quando uma subclasse substitui a definição de um método do pai, o PHP não chamará o método pai. Fica a cargo da subclasse chamar o método pai ou não. Isso também se aplica a definições de métodos Construtores e Destrutores, de Sobrecarga e Mágicos.

Exemplo #3 Chamando um método pai

<?php
class MyClass
{
protected function myFunc() {
echo "MyClass::myFunc()\n";
}
}

class OtherClass extends MyClass
{
// Substitui a definição do método pai
public function myFunc()
{
// Mas ainda consegue chamar o método da classe herdada
parent::myFunc();
echo "OtherClass::myFunc()\n";
}
}

$class = new OtherClass();
$class->myFunc();
?>

Veja também alguns exemplos de chamadas estáticas mais complexas.


Palavra-Chave 'static'

Dica

Esta página descreve o uso da palavra-chave static na definição de métodos e propriedades estáticas. A palavra-chave static também pode ser utilizada para definir variáveis estáticas, definir funções anônimas estáticas e em late static bindings. Veja essas páginas para informações desses outros usos de static.

Declarar propriedades ou métodos de uma classe como estáticos faz deles acessíveis sem a necessidade de instanciar a classe. Um membro declarado como estático não pode ser acessado através de uma instância da classe.

Métodos estáticos

Como métodos estáticos podem ser chamados sem uma instância do objeto criada, a pseudo-variável $this não está disponível dentro de um método declarado como estático.

Aviso

Chamar métodos não estáticos, estaticamente, lança um Error.

Anteriormente ao PHP 8.0.0, chamar um método não estático estaticamente estava descontinuado, e gerava um aviso E_DEPRECATED.

Exemplo #1 Exemplo de método estático

<?php
class Foo {
public static function aStaticMethod() {
// ...
}
}

Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod();
?>

Propriedades estáticas

Propriedades estáticas são acessíveis utilizando o Operador de Resolução de Escopo (::) e não podem ser acessados através do operador de objeto (->).

É possível referenciar a classe usando uma variável. O valor da variável não pode ser uma palavra chave (por exemplo, self, parent e static).

Exemplo #2 Exemplo de propriedade estática

<?php
class Foo
{
public static $my_static = 'foo';

public function staticValue() {
return self::$my_static;
}
}

class Bar extends Foo
{
public function fooStatic() {
return parent::$my_static;
}
}

print Foo::$my_static . "\n";

$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n"; // "Propriedade" não definida, my_static

print $foo::$my_static . "\n";
$classname = 'Foo';
print $classname::$my_static . "\n";

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>

A saída do exemplo acima no PHP 8 é semelhante a:

foo
foo

Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23

Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23

foo
foo
foo
foo


Abstração de Classes

O PHP possui métodos e classes abstratas. Classes definidas como abstratas não podem ser instanciadas, e qualquer classe que contenha ao menos um método abstrato também deve ser abstrata. Métodos são definidos como abstratos declarando a intenção em sua assinatura, e não podem definir a implementação.

Quando herdando de uma classe abstrata, todos os métodos marcados como abstratos da classe herdada precisam ser definidos na classe implementante. além de seguir as regras usuais de herança e compatibilidade de assinatura.

Exemplo #1 Exemplo de classe abstrata

<?php
abstract class ClasseAbstrata
{
// Força a classe que estende ClasseAbstrata a definir esse método
abstract protected function pegarValor();
abstract protected function valorComPrefixo( $prefixo );

// Método comum
public function imprimir() {
print $this->pegarValor();
}
}

class ClasseConcreta1 extends ClasseAbstrata
{
protected function pegarValor() {
return "ClasseConcreta1";
}

public function valorComPrefixo( $prefixo ) {
return "{$prefixo}ClasseConcreta1";
}
}

class ClasseConcreta2 extends ClasseAbstrata
{
protected function pegarValor() {
return "ClasseConcreta2";
}

public function valorComPrefixo( $prefixo ) {
return "{$prefixo}ClasseConcreta2";
}
}

$classe1 = new ClasseConcreta1;
$classe1->imprimir();
echo $classe1->valorComPrefixo('FOO_') ."\n";

$classe2 = new ClasseConcreta2;
$classe2->imprimir();
echo $classe2->valorComPrefixo('FOO_') ."\n";
?>

O exemplo acima produzirá:

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

Exemplo #2 Exemplo de classe abstrata

<?php
abstract class ClasseAbstrata
{
// Esse método abstrato apenas define os argumentos requeridos
abstract protected function prefixName($name);

}

class ClasseConcreta extends ClasseAbstrata
{

// O método filho pode definir argumentos opcionais não presentes na assitura abstrata
public function prefixName($name, $separator = ".") {
if ($name == "Pacman") {
$prefix = "Mr";
} elseif ($name == "Pacwoman") {
$prefix = "Mrs";
} else {
$prefix = "";
}
return "{$prefix}{$separator} {$name}";
}
}

$class = new ClasseConcreta;
echo $class->prefixName("Pacman"), "\n";
echo $class->prefixName("Pacwoman"), "\n";
?>

O exemplo acima produzirá:

Mr. Pacman
Mrs. Pacwoman


Interfaces de Objetos

Interfaces de objetos permitem a criação de códigos que especificam quais métodos uma classe deve implementar, sem definir como esses métodos serão implementados. Interfaces compartilham o namespace com classes e traits, então eles não podem usar os mesmos nomes.

Interfaces são definidas da mesma forma que classes, mas com a palavra-chave interface substituindo class e com nenhum dos métodos tendo seu conteúdo definido.

Todos os métodos declarados em uma interface devem ser públicos, essa é a natureza de uma interface.

Na prática, interfaces servem a dois propósitos distintos:

  • Elas permitem os desenvolvedores de criar objetos de classes diferentes que podem ser substituídos dado que eles implementam a mesma ou as mesmas interfaces. Um exemplo seriam os serviços variados de acesso a banco de dados, vários sistemas de pagamentos, ou estratégias de cache. Implementações diferentes podem ser substituídas sem requerer modificações nos códigos que as usam.
  • Para permitir que uma função ou método aceite e opere em um parâmetro que se molda a uma interface, ao mesmo tempo que não se importa como a funcionalidade é implementada. Estas interfaces são conhecidas como Iterable, Cacheable, Renderable, e assim por diante, e descrevem o comportamento significativo.

Interfaces podem definir métodos mágicos para exigir que as classes implementantes também implementem esses métodos.

Nota:

Apesar de possível, incluir construtores em interfaces é altamente desencorajado. Fazer isso reduz significativamente a flexibilidade do objeto implementante da interface. Além disso, construtores não são verificados pelas regras de herança, o que pode causar comportamentos inconsistentes ou inesperados.

implements

Para implementar uma interface, o operador implements é utilizado. Todos os métodos na interface devem ser implementados na classe; não fazê-lo resultará em um erro fatal. Classes podem implementar mais de uma interface se assim for desejado, separando cada interface com uma vírgula.

Aviso

Uma classe que implemente uma interface pode utilizar um nome diferente para seus parâmetros, em relação à interface. Entretanto, o PHP 8.0 suporta argumentos nomeados, ou seja, chamadores podem usar os nomes de parâmetros conforme definidos na interface implementada. Por essa razão, é altamente recomendado que desenvolvedores utilizem os mesmos nomes de parâmetros que da interface implementada.

Nota:

Interfaces podem ser estendidas como as classes, usando o operador extends.

Nota:

A classe que implementa a interface precisa declarar todos os métodos da interface com uma assinatura compatível. Uma classe pode implementar várias interfaces que declarem um método com o mesmo nome. Neste caso, a implementação precisa seguir as regras de compatibilidade de assinaturas de todas as interfaces. É possível assim aplicar covariância e contravariância.

Constantes

É possível ter constantes em interfaces. Constantes de interfaces funcionam exatamente como constantes de classes, com exceção de não podem ser sobrescritas por uma classe/interface herdeira.

Exemplos

Exemplo #1 Exemplo de Interface

<?php

// Declara a interface 'Template'
interface Template
{
public function setVariable($name, $var);
public function getHtml($template);
}

// Implementa a interface
// Exemplo correto
class WorkingTemplate implements Template
{
private $vars = [];

public function setVariable($name, $var)
{
$this->vars[$name] = $var;
}

public function getHtml($template)
{
foreach($this->vars as $name => $value) {
$template = str_replace('{' . $name . '}', $value, $template);
}

return $template;
}
}

// Exemplo incorreto
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (Template::getHtml)
class BadTemplate implements Template
{
private $vars = [];

public function setVariable($name, $var)
{
$this->vars[$name] = $var;
}
}
?>

Exemplo #2 Interfaces estendíveis

<?php
interface A
{
public function foo();
}

interface B extends A
{
public function baz(Baz $baz);
}

// This will work
class C implements B
{
public function foo()
{
}

public function baz(Baz $baz)
{
}
}

// Isso não funcionará, e gerará um erro fatal
class D implements B
{
public function foo()
{
}

public function baz(Foo $foo)
{
}
}
?>

Exemplo #3 Compatibilidade de variância com interfaces múltiplas

<?php
class Foo {}
class Bar extends Foo {}

interface A {
public function myfunc(Foo $arg): Foo;
}

interface B {
public function myfunc(Bar $arg): Bar;
}

class MyClass implements A, B
{
public function myfunc(Foo $arg): Bar
{
return new Bar();
}
}
?>

Exemplo #4 Herança de várias interfaces

<?php
interface A
{
public function foo();
}

interface B
{
public function bar();
}

interface C extends A, B
{
public function baz();
}

class D implements C
{
public function foo()
{
}

public function bar()
{
}

public function baz()
{
}
}
?>

Exemplo #5 Interfaces com constantes

<?php
interface A
{
const B = 'Constante de interface';
}

// Imprime: Constante de interface
echo A::B;

class B implements A
{
const B = 'Constante de classe';
}

// Imprime: Constante de classe
// Anteriormente ao PHP 8.1.0 isto não funcionaria porque não era possível
// sobrescrever constantes.
echo B::B;
?>

Exemplo #6 Interfaces with abstract classes

<?php
interface A
{
public function foo(string $s): string;

public function bar(int $i): int;
}

// Uma classe abstrata pode implementar apenas uma parte da interface.
// Classes que extendam a classe abstrata precisam implementar o resto.
abstract class B implements A
{
public function foo(string $s): string
{
return $s . PHP_EOL;
}
}

class C extends B
{
public function bar(int $i): int
{
return $i * 2;
}
}
?>

Exemplo #7 Extendendo e implementando ao mesmo tempo

<?php

class One
{
/* ... */
}

interface Usable
{
/* ... */
}

interface Updatable
{
/* ... */
}

// A ordem de palavras chave aqui é importante. 'extends' precisa aprecer primeiro.
class Two extends One implements Usable, Updatable
{
/* ... */
}
?>

Uma interface, juntamente com a declaração de tipo, fornecem uma boa maneira de garantir que um objeto em particular possua determinados métodos. Veja o operador instanceof e declaração de tipo.


Traits

O PHP implementa uma maneira de reúso de código chamada Traits.

Traits (Traços, Carecterísticas) são um mecanismo para reúso de código em linguagens de herança simples como o PHP. A intenção de uma Trait é reduzir algumas limitações de herança simples permitindo que um desenvolvedor reutilize livremente conjuntos de métodos em várias classes independentes habitando em diferentes hierarquias de classe. A semântica da combinação de Traits e classes é definida de uma maneira que reduz a complexidade, e evita os problemas típicos associados com herança múltipla e Mixins.

Uma Trait é similar a uma classe, mas destina-se apenas a agrupar funcionalidade de uma forma refinada e consistente. Não é possível instanciar uma Trait por si só. Ela é uma adição à herança tradicional e permite composição e comportamento horizontais; isto é, a aplicação de membros de classe sem exigir herança.

Exemplo #1 Exemplo de Trait

<?php
trait ezcReflectionReturnInfo {
function getReturnType() { /*1*/ }
function getReturnDescription() { /*2*/ }
}

class ezcReflectionMethod extends ReflectionMethod {
use ezcReflectionReturnInfo;
/* ... */
}

class ezcReflectionFunction extends ReflectionFunction {
use ezcReflectionReturnInfo;
/* ... */
}
?>

Precedência

Um membro herdado de uma classe base é substituído por um membro inserido por uma Trait. Na ordem de precedência, os membros da classe atual substituem os métodos da Trait, que por sua vez substituem os métodos herdados.

Exemplo #2 Exemplo de Ordem de Precedência

Um membro herdado de uma classe base é substituído pelo método inserido em MyHelloWorld da Trait SayWorld. O comportamento é o mesmo para métodos definidos na classe MyHelloWorld. Na ordem de precedência, os métodos da classe atual sobrescrevem os métodos da Trait, que por sua vez substituem os métodos da classe base.

<?php
class Base {
public function sayHello() {
echo 'Hello ';
}
}

trait SayWorld {
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}

class MyHelloWorld extends Base {
use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
?>

O exemplo acima produzirá:

Hello World!

Exemplo #3 Exemplo de Ordem de Precedência Alternativa

<?php
trait HelloWorld {
public function sayHello() {
echo 'Hello World!';
}
}

class TheWorldIsNotEnough {
use HelloWorld;
public function sayHello() {
echo 'Hello Universe!';
}
}

$o = new TheWorldIsNotEnough();
$o->sayHello();
?>

O exemplo acima produzirá:

Hello Universe!

Traits Múltiplas

Traits múltiplas podem ser inseridas em uma classe, listando-as na declaração use, separadas por vírgulas.

Exemplo #4 Uso de Traits Múltiplas

<?php
trait Hello {
public function sayHello() {
echo 'Hello ';
}
}

trait World {
public function sayWorld() {
echo 'World';
}
}

class MyHelloWorld {
use Hello, World;
public function sayExclamationMark() {
echo '!';
}
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
?>

O exemplo acima produzirá:

Hello World!

Resolução de Conflitos

Se duas Trais inserem dois métodos com o mesmo nome, um erro fatal é gerado, se o conflito não for explicitamente resolvido.

Para resolver conflitos de nomes entre Traits usados na mesma classe, o operador insteadof deve ser usado para escolher exatamente um dos métodos conflitantes.

Como isto permite apenas excluir métodos, o operador as pode ser usado para adicionar um apelido a um dos métodos. Note que o operador as não renomeia o método e também não afeta nenhum outro método.

Exemplo #5 Exemplo de Resolução de Conflito

Neste exemplo, Talker usa as Traits A e B. Como A e B possuem métodos conflitantes, a classe define a variante de smallTalk da Trait B, e a variante bigTalk da Trait A.

A classe Aliased_Talker usa o operador as para perrmitir o uso da implementação bigTalk da Trait B sob um apelido adicional talk.

<?php
trait A {
public function smallTalk() {
echo 'a';
}
public function bigTalk() {
echo 'A';
}
}

trait B {
public function smallTalk() {
echo 'b';
}
public function bigTalk() {
echo 'B';
}
}

class Talker {
use A, B {
B::smallTalk insteadof A;
A::bigTalk insteadof B;
}
}

class Aliased_Talker {
use A, B {
B::smallTalk insteadof A;
A::bigTalk insteadof B;
B::bigTalk as talk;
}
}
?>

Mudando a Visibilidade de Método

Ao utilizar a sintaxe as, pode-se também ajustar a visibilidade de métodos na classe.

Exemplo #6 Exemplo de Mudança de Visibilidade de Método

<?php
trait HelloWorld {
public function sayHello() {
echo 'Hello World!';
}
}

// Modifica a visibilidade de sayHello
class MyClass1 {
use HelloWorld { sayHello as protected; }
}

// Apelido de método com visibilidade modificada
// Visibilidade de sayHello não é modificada
class MyClass2 {
use HelloWorld { sayHello as private myPrivateHello; }
}
?>

Traits Compostas de Traits

Assim como as classes podem usar Trais, outros Traits tamém podem. Ao utilizar uma ou mais Traits em uma definição de Trait, ela pode ser comporta parcialmente ou integralmente dos membros definidos nessas outras Traits.

Exemplo #7 Exemplo de Traits Compostas de Traits

<?php
trait Hello {
public function sayHello() {
echo 'Hello ';
}
}

trait World {
public function sayWorld() {
echo 'World!';
}
}

trait HelloWorld {
use Hello, World;
}

class MyHelloWorld {
use HelloWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
?>

O exemplo acima produzirá:

Hello World!

Membros abstratos de Traits

Traits suportam o uso de métodos abstratos para impor requisitos sobre uma classe expositora. Métodos públicos, protegidos e privados são suportados. Antes do PHP 8.0.0, apenas métodos abstratos públicos e protegidos eram suportados.

Cuidado

A partir do PHP 8.0.0, a assinatura de um método concreto deverá seguir as regras de compatibilidade de assinaturas. Anteriormente, sua assinatura poderia ser diferente.

Exemplo #8 Requisitos Expressos por Métodos Abstratos

<?php
trait Hello {
public function sayHelloWorld() {
echo 'Hello'.$this->getWorld();
}
abstract public function getWorld();
}

class MyHelloWorld {
private $world;
use Hello;
public function getWorld() {
return $this->world;
}
public function setWorld($val) {
$this->world = $val;
}
}
?>

Membros Estáticos de Traits

Traits podem definir variáveis estáticas, métodos estáticos e propriedades estáticas.

Nota:

A partir do PHP 8.1.0, chamar um método estático, ou acessar uma propriedade estática diretamente em uma Trait foi descontinuado. Métodos estáticos e propriedades somente devem ser acessados em uma classe utilizando a Trait.

Exemplo #9 Variáveis Estáticas

<?php
trait Counter {
public function inc() {
static $c = 0;
$c = $c + 1;
echo "$c\n";
}
}

class C1 {
use Counter;
}

class C2 {
use Counter;
}

$o = new C1(); $o->inc(); // echo 1
$p = new C2(); $p->inc(); // echo 1
?>

Exemplo #10 Métodos Estáticos

<?php
trait StaticExample {
public static function doSomething() {
return 'Doing something';
}
}

class Example {
use StaticExample;
}

Example::doSomething();
?>

Exemplo #11 Propriedades Estáticas

<?php
trait StaticExample {
public static $static = 'foo';
}

class Example {
use StaticExample;
}

echo Example::$static;
?>

Propriedades

Traits podem também definir propriedades.

Exemplo #12 Definindo Propriedades

<?php
trait PropertiesTrait {
public $x = 1;
}

class PropertiesExample {
use PropertiesTrait;
}

$example = new PropertiesExample;
$example->x;
?>

Se uma Trait define uma propriedade, uma classe não pode definir uma propriedade com o mesmo nome a menos que seja compatível (mesma visibilidade, tipo, modificador de somente-leitura e valor inicial), caso contrário um erro fatal é emitido.

Exemplo #13 Resolução de Conflito

<?php
trait PropertiesTrait {
public $same = true;
public $different1 = false;
public bool $different2;
public bool $different3;
}

class PropertiesExample {
use PropertiesTrait;
public $same = true;
public $different1 = true; // Fatal error
public string $different2; // Fatal error
readonly protected bool $different3; // Fatal error
}
?>

Constantes

Traits podem, a partir do PHP 8.2.0, também definir constantes.

Exemplo #14 Definindo Constantes

<?php
trait ConstantsTrait {
public const FLAG_MUTABLE = 1;
final public const FLAG_IMMUTABLE = 5;
}

class ConstantsExample {
use ConstantsTrait;
}

$example = new ConstantsExample;
echo $example::FLAG_MUTABLE; // 1
?>

Se uma Trait define uma constante, uma classe não pode definir uma constante com o mesmo nome a não ser que seja compatível (mesma visibilidade, valor inicial, e finalidade), caso contrário um erro fatal é emitido.

Exemplo #15 Resolução de Conflito

<?php
trait ConstantsTrait {
public const FLAG_MUTABLE = 1;
final public const FLAG_IMMUTABLE = 5;
}

class ConstantsExample {
use ConstantsTrait;
public const FLAG_IMMUTABLE = 5; // Fatal error
}
?>


Classes anônimas

Classes anônimas são úteis quando objetos simples e descartáveis precisarem ser criados.

<?php

// Usando uma classe explícita
class Logger
{
public function log($msg)
{
echo $msg;
}
}

$util->setLogger(new Logger());

// Usando uma classe anônima
$util->setLogger(new class {
public function log($msg)
{
echo $msg;
}
});

Podem passar argumentos através de seus construtores, estender outras classes, implementar interfaces, e usar traits como uma classe normal faz:

<?php

class SomeClass {}
interface SomeInterface {}
trait SomeTrait {}

var_dump(new class(10) extends SomeClass implements SomeInterface {
private $num;

public function __construct($num)
{
$this->num = $num;
}

use SomeTrait;
});

O exemplo acima produzirá:

object(class@anonymous)#1 (1) {
  ["Command line code0x104c5b612":"class@anonymous":private]=>
  int(10)
}

Aninhar uma classe anônima dentro de outra classe não dá acesso a nenhum método privado ou protegido, ou propriedades da classe externa. Para utilizar os métodos e propriedades protegidas da classe externa, a classe anônima pode estender a classe externa. Para utilizar as propriedades privadas da classe externa na classe anônima, elas devem ser passadas através do construtor:

<?php

class Outer
{
private $prop = 1;
protected $prop2 = 2;

protected function func1()
{
return 3;
}

public function func2()
{
return new class($this->prop) extends Outer {
private $prop3;

public function __construct($prop)
{
$this->prop3 = $prop;
}

public function func3()
{
return $this->prop2 + $this->prop3 + $this->func1();
}
};
}
}

echo (new Outer)->func2()->func3();

O exemplo acima produzirá:

6

Todos os objetos criados pela mesma declaração de classe anônima são instâncias desta mesma classe.

<?php
function anonymous_class()
{
return new class {};
}

if (get_class(anonymous_class()) === get_class(anonymous_class())) {
echo 'same class';
} else {
echo 'different class';
}

O exemplo acima produzirá:

same class

Nota:

Classes anônimas tem nomes atribuídos automaticamente como demonstrado no exemplo a seguir. Este nome deve ser considerado apenas um detalhe não confiável na implementação.

<?php
echo get_class(new class {});

O exemplo acima produzirá algo semelhante a:

class@anonymous/in/oNi1A0x7f8636ad2021


Sobrecarga

Sobrecarga em PHP provê recursos para criar dinamicamente propriedades e métodos. Estas entidades dinâmicas são processadas por métodos mágicos fornecendo a uma classe vários tipos de ações.

Os métodos de sobrecarga são invocados ao interagir com propriedades ou métodos que não foram declarados ou não são visíveis no escopo corrente. O resto desta seção usará os termos propriedades inacessíveis e métodos inacessíveis para referir-se a esta combinação de declaração e visibilidade.

Todos os métodos de sobrecarga devem ser definidos como public.

Nota:

Nenhum dos argumentos dos métodos mágicos podem ser passados por referência.

Nota:

A interpretação do PHP de sobrecarga é diferente da maioria das linguagens orientadas a objeto. Sobrecarga, tradicionalmente, provê a habilidade de ter múltiplos métodos com o mesmo nome, mas com quantidades e tipos de argumentos diferentes.

Sobrecarga de propriedades

public __set(string $name, mixed $value): void
public __get(string $name): mixed
public __isset(string $name): bool
public __unset(string $name): void

__set() é executado ao escrever dados em propriedades inacessíveis (private ou protected) ou propriedades inexistentes.

__get() é utilizado para ler dados de propriedades inacessíveis (private ou protected) ou propriedades inexistentes.

__isset() é disparado ao chamar a função isset() ou empty() em propriedades inacessíveis (private ou protected) ou propriedades inexistentes.

__unset() é invocado ao usar o construtor unset() em propriedades inacessíveis (private ou protected) ou propriedades inexistentes.

O argumento $name é o nome da propriedade com o qual se está interagindo. O argumento $value do método __set() especifica o valor para o qual a propriedade $name deveria ser definida.

A sobrecarga de propriedades funciona somente no contexto de objeto. Estes métodos mágicos não são disparados em contexto estático. Portanto estes métodos não podem ser declarados como static. Um aviso é emitido se algum método mágico de sobrecarga é declarado como static.

Nota:

O valor de retorno de __set() é ignorado por causa da forma que o PHP processa o operador de atribuição. Similarmente, o método __get() nunca é chamado em atribuições encadeadas como essa:

 $a = $obj->b = 8;

Nota:

O PHP não irá chamar métodos sobrecarregados a partir do próprio método sobrecarregado. Isso significa, por exemplo, que escrever return $this->foo dentro de um __get() irá retornar null e lançar um E_WARNING se não houver uma foo propriedade definida, ao invés de chamar __get() uma segunda vez. Entretanto, métodos sobrecarregados podem invocar outros métodos sobrecarregados implicitamente (como um __set() chamando um __get()).

Exemplo #1
     Sobrecarregando propriedades com __get(),
     __set(), __isset()
     and __unset()

<?php
class PropertyTest
{
/** Location for overloaded data. */
private $data = array();

/** Overloading not used on declared properties. */
public $declared = 1;

/** Overloading only used on this when accessed outside the class. */
private $hidden = 2;

public function __set($name, $value)
{
echo "Setting '$name' to '$value'\n";
$this->data[$name] = $value;
}

public function __get($name)
{
echo "Getting '$name'\n";
if (array_key_exists($name, $this->data)) {
return $this->data[$name];
}

$trace = debug_backtrace();
trigger_error(
'Undefined property via __get(): ' . $name .
' in ' . $trace[0]['file'] .
' on line ' . $trace[0]['line'],
E_USER_NOTICE);
return null;
}

public function __isset($name)
{
echo "Is '$name' set?\n";
return isset($this->data[$name]);
}

public function __unset($name)
{
echo "Unsetting '$name'\n";
unset($this->data[$name]);
}

/** Not a magic method, just here for example. */
public function getHidden()
{
return $this->hidden;
}
}

echo "<pre>\n";

$obj = new PropertyTest;

$obj->a = 1;
echo $obj->a . "\n\n";

var_dump(isset($obj->a));
unset($obj->a);
var_dump(isset($obj->a));
echo "\n";

echo $obj->declared . "\n\n";

echo "Let's experiment with the private property named 'hidden':\n";
echo "Privates are visible inside the class, so __get() not used...\n";
echo $obj->getHidden() . "\n";
echo "Privates not visible outside of class, so __get() is used...\n";
echo $obj->hidden . "\n";
?>

O exemplo acima produzirá:

Setting 'a' to '1'
Getting 'a'
1

Is 'a' set?
bool(true)
Unsetting 'a'
Is 'a' set?
bool(false)

1

Let's experiment with the private property named 'hidden':
Privates are visible inside the class, so __get() not used...
2
Privates not visible outside of class, so __get() is used...
Getting 'hidden'

Notice:  Undefined property via __get(): hidden in <file> on line 70 in <file> on line 29

Sobrecarga de método

public __call(string $name, array $arguments): mixed
public static __callStatic(string $name, array $arguments): mixed

__call() é disparado ao invocar métodos inacessíveis em um contexto de objeto.

__callStatic() é disparado quando invocando métodos inacessíveis em um contexto estático.

O argumento $name é o nome do método sendo chamado. O argumento $arguments é um array enumerado contendo os parâmetros passados para o método $name.

Exemplo #2 Sobrecarga de métodos instanciados com __call() e __callStatic()

<?php
class MethodTest
{
public function __call($name, $arguments)
{
// Note: value of $name is case sensitive.
echo "Calling object method '$name' "
. implode(', ', $arguments). "\n";
}

public static function __callStatic($name, $arguments)
{
// Note: value of $name is case sensitive.
echo "Calling static method '$name' "
. implode(', ', $arguments). "\n";
}
}

$obj = new MethodTest;
$obj->runTest('in object context');

MethodTest::runTest('in static context');
?>

O exemplo acima produzirá:

Calling object method 'runTest' in object context
Calling static method 'runTest' in static context


Iteração de Objetos

O PHP fornece uma maneira de definir objetos para que seja possível iterar por uma lista de itens, como, por exemplo, a instrução foreach. Por padrão, todas as propriedades visíveis serão utilizadas para a iteração.

Exemplo #1 Iteração simples de objetos

<?php
class MyClass
{
public $var1 = 'value 1';
public $var2 = 'value 2';
public $var3 = 'value 3';

protected $protected = 'protected var';
private $private = 'private var';

function iterateVisible() {
echo "MyClass::iterateVisible:\n";
foreach ($this as $key => $value) {
print "$key => $value\n";
}
}
}

$class = new MyClass();

foreach($class as $key => $value) {
print "$key => $value\n";
}
echo "\n";

$class->iterateVisible();

?>

O exemplo acima produzirá:

var1 => value 1
var2 => value 2
var3 => value 3

MyClass::iterateVisible:
var1 => value 1
var2 => value 2
var3 => value 3
protected => protected var
private => private var

Como a saída mostra, o foreach passou por cada uma das variáveis visíveis que podem ser acessadas.

Veja Também

  • Generators
  • Iterator
  • IteratorAggregate
  • SPL Iterators


Métodos mágicos

Métodos mágicos são métodos especiais que sobrescrever o comportamento padrão do PHP quando certas operações são realizadas em um objeto.

Cuidado

Todos os métodos prefixados com __ são reservados pelo PHP. Portanto, não é recomendado utilizar nomes de métodos com esse prefixo a não ser para sobrescrever o comportamento do PHP.

Os seguintes nomes de métodos são considerados mágicos:

__construct(),
__destruct(),
__call(),
__callStatic(),
__get(),
__set(),
__isset(),
__unset(),
__sleep(),
__wakeup(),
__serialize(),
__unserialize(),
__toString(),
__invoke(),
__set_state(),
__clone() e
__debugInfo()

Aviso

Os métodos acima, com exceção de
__construct(),
__destruct() e
__clone(),
precisam ser declarados como public,
de outra forma um E_WARNING é emitido.
Anteriormente ao PHP 8.0.0, nenhum diagnóstico era emitido para os métodos mágicos
__sleep(),
__wakeup(),
__serialize(),
__unserialize() e
__set_state().

Aviso

Se tipos forem utilizados na declaração de métodos mágicos, eles precisam ser idênticos às assinaturas previstas aqui. Senão, um erro fatal é lançado. Anteriormente ao PHP 8.0.0, nenhum diagnóstico era emitido. Entretanto, __construct() e __destruct() não devem declarar um tipo de retorno, senão um erro fatal é lançado.

__sleep() e __wakeup()

public __sleep(): array
public __wakeup(): void

serialize() checa se sua classe tem uma função com o nome mágico __sleep(). Se houver, a função é executada antes de qualquer serialização. Ela pode limpar o objeto e deve retornar um array com os nomes de todas as variáveis do objeto que devem ser serializadas. Se o método não retornar nada, então null é serializado e um E_NOTICE disparado.

Nota:

Não é possível que __sleep() retorne nomes de propriedades privadas da classe pai. Fazer isso causará um erro de nível E_NOTICE. Como alternativa, utilize __serialize().

Nota:

Desde o PHP 8.0.0, retornar um valor que não seja um array de __sleep() gera um warning. Anteriormente gerava um aviso.

O intuito do método __sleep() é enviar dados pendentes ou realizar tarefas de limpeza. Além disso, a função é útil se tiver objetos muito grandes que não precisem ser completamente salvos.

Ao mesmo tempo, unserialize() checa pela presença da função com o nome mágico __wakeup(). Se presente, essa função pode reconstruir qualquer recurso que o objeto possa ter.

O intuito do método __wakeup() é reestabelecer qualquer conexão com banco de dados que podem ter sido perdidas durante a serialização, e realizar outras tarefas de reinicialização.

Exemplo #1 Sleep e wakeup

<?php
class Connection
{
protected $link;
private $dsn, $username, $password;

public function __construct($dsn, $username, $password)
{
$this->dsn = $dsn;
$this->username = $username;
$this->password = $password;
$this->connect();
}

private function connect()
{
$this->link = new PDO($this->dsn, $this->username, $this->password);
}

public function __sleep()
{
return array('dsn', 'username', 'password');
}

public function __wakeup()
{
$this->connect();
}
}?>

__serialize() e __unserialize()

public __serialize(): array
public __unserialize(array $data): void

serialize() verifica se a classe contém uma função com o nome mágico __serialize(). Se sim, essa função é executada antes de qualquer serialização. Ela precisa construir e retornar um array associativo de chaves-valores que representam a forma serializada do objeto. Se o array não for retornado então um erro TypeError será lançado.

Nota:

Se ambos __serialize() e __sleep() estiverem definidos no mesmo objeto, somente __serialize() será chamado. __sleep() será ignorado. Se o objeto implementa a interface Serializable, o método serialize() da interface será ignorado e o método mágico __serialize() será utilizado.

O uso pretendido de __serialize() é definir uma representação arbitrária, amigável, da representação do objeto. Elementos do array podem corresponder a propriedades do objeto diretamente, mas isso não é obrigatório.

Inversamente, unserialize() verifica a presença da função mágica __unserialize(). Se presente, essa função será chamada com o array retornado de __serialize(). Ela poderá, então, restaurar as propriedades do objeto a partir do array.

Nota:

Se ambos __unserialize() e __wakeup() estiverem definidos, somente __unserialize() será chamado, e __wakeup() será ignorado.

Nota:

Esse recurso está disponível desde o PHP 7.4.0.

Exemplo #2 Serialize e unserialize

<?php
class Connection
{
protected $link;
private $dsn, $username, $password;

public function __construct($dsn, $username, $password)
{
$this->dsn = $dsn;
$this->username = $username;
$this->password = $password;
$this->connect();
}

private function connect()
{
$this->link = new PDO($this->dsn, $this->username, $this->password);
}

public function __serialize(): array
{
return [
'dsn' => $this->dsn,
'user' => $this->username,
'pass' => $this->password,
];
}

public function __unserialize(array $data): void
{
$this->dsn = $data['dsn'];
$this->username = $data['user'];
$this->password = $data['pass'];

$this->connect();
}
}?>

__toString()

public __toString(): string

O método __toString() permite que uma classe decida como se comportar quando convertida para uma string. Por exemplo, o que echo $obj; irá imprimir.

Aviso

A partir do PHP 8.0.0, o valor de retorno segue as mesma semântica de tipo do PHP, significando que o valor será convertido para string se possível e se strict typing estiver desligado.

Um objeto Stringable não é aceito para uma declaração string se strict typing estiver ativo. Caso esse comportamento seja desejado, a declaração precisa indicar Stringable e string através de um tipo união.

A partir do PHP 8.0.0, quaisquer classe que contenha o método __toString() também implementa implicitamente a interface Stringable, e portanto passa os testes para essa interface. Implementar explicitamente essa interface é o recomendado.

No PHP 7.4, o valor retornado precisa ser uma string, senão um erro Error é lançado.

Anteriormente ao PHP 7.4.0, o valor retornado precisa ser uma string, senão um erro fatal E_RECOVERABLE_ERROR é emitido.

Aviso

Não era possível lançar uma exception de dentro de um método __toString() antes do PHP 7.4.0. Isso gera um erro fatal.

Exemplo #3 Exemplo Simples

<?php
// Declara uma classe simples
class TestClass
{
public $foo;

public function __construct($foo)
{
$this->foo = $foo;
}

public function __toString()
{
return $this->foo;
}
}

$class = new TestClass('Hello');
echo $class;
?>

O exemplo acima produzirá:

Hello

__invoke()

__invoke( ...$values): mixed

O método __invoke() é chamado quando um script tenta chamar um objeto como uma função.

Exemplo #4 Usando __invoke()

<?php
class CallableClass
{
public function __invoke($x)
{
var_dump($x);
}
}
$obj = new CallableClass;
$obj(5);
var_dump(is_callable($obj));
?>

O exemplo acima produzirá:

int(5)
bool(true)

Exemplo #5 Exemplo de __invoke()

<?php
class Sort
{
private $key;

public function __construct(string $key)
{
$this->key = $key;
}

public function __invoke(array $a, array $b): int
{
return $a[$this->key] <=> $b[$this->key];
}
}

$customers = [
['id' => 1, 'first_name' => 'John', 'last_name' => 'Do'],
['id' => 3, 'first_name' => 'Alice', 'last_name' => 'Gustav'],
['id' => 2, 'first_name' => 'Bob', 'last_name' => 'Filipe']
];

// Ordena os clientes pelo primeiro nome
usort($customers, new Sort('first_name'));
print_r($customers);

// Ordena os clientes pelo último nome
usort($customers, new Sort('last_name'));
print_r($customers);
?>

O exemplo acima produzirá:

Array
(
    [0] => Array
        (
            [id] => 3
            [first_name] => Alice
            [last_name] => Gustav
        )

    [1] => Array
        (
            [id] => 2
            [first_name] => Bob
            [last_name] => Filipe
        )

    [2] => Array
        (
            [id] => 1
            [first_name] => John
            [last_name] => Do
        )

)
Array
(
    [0] => Array
        (
            [id] => 1
            [first_name] => John
            [last_name] => Do
        )

    [1] => Array
        (
            [id] => 2
            [first_name] => Bob
            [last_name] => Filipe
        )

    [2] => Array
        (
            [id] => 3
            [first_name] => Alice
            [last_name] => Gustav
        )

)

__set_state()

static __set_state(array $properties): object

Esse método estático é chamado em classes exportadas por var_export().

O único parâmetro deste método é um array contendo propriedades exportadas no formato ['property' => value, ...].

Exemplo #6 Usando __set_state()

<?php

class A
{
public $var1;
public $var2;

public static function __set_state($an_array)
{
$obj = new A;
$obj->var1 = $an_array['var1'];
$obj->var2 = $an_array['var2'];
return $obj;
}
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

$b = var_export($a, true);
var_dump($b);
eval('$c = ' . $b . ';');
var_dump($c);
?>

O exemplo acima produzirá:

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Nota: Quando exportando um objeto, var_export() não verifica se __set_state() está implementado na classe do objeto, de forma que re-importar esses objetos falham com um erro Error na ausência de __set_state(). Isto afeta particularmente algumas classes internas. É responsabilidade do programador verificar se todos os objetos podem ser re-importados, ou seja, que todas as classes implementem __set_state().

__debugInfo()

__debugInfo(): array

Este método é chamado pela função var_dump() ao despejar um objeto para obter as propriedades que devem ser exibidas. Se este método não for definido em um objeto, todos as propriedades públicas, protegidas e provadas serão exibidas.

Exemplo #7 Utilizando o __debugInfo()

<?php
class C {
private $prop;

public function __construct($val) {
$this->prop = $val;
}

public function __debugInfo() {
return [
'propSquared' => $this->prop ** 2,
];
}
}

var_dump(new C(42));
?>

O exemplo acima produzirá:

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}


final

A palavra-chave final, previne que classes filhas sobrescrevam uma definição prefixada com final. Se a própria classe estiver definida como final, ela não pode ser estendida.

Exemplo #1 Exemplo de métodos final

<?php
class ClasseBase {
public function teste() {
echo "ClasseBase::teste() chamado\n";
}

final public function maisTeste() {
echo "ClasseBase::maisTeste() chamado\n";
}
}

class ClasseFilha extends ClasseBase {
public function maisTeste() {
echo "ClasseFilha::maisTeste() called\n";
}
}
// Resulta em erro Fatal: Não pode sobrescrever método final ClasseBase::maisTeste()
?>

Exemplo #2 Exemplo de classe Final

<?php
final class ClasseBase {
public function teste() {
echo "Método ClasseBase::teste() chamado\n";
}

// A classe já foi marcada como final, esse final aqui é rendundante.
final public function maisTeste() {
echo "Método ClasseBase::maisTeste() chamado\n";
}
}

class ClasseFilha extends ClasseBase {
}
// Resulta em erro Fatal: Class ClasseFilha may not inherit from final class (ClasseBase)
?>

Exemplo #3 Exemplo de constantes finais (PHP 8.1.0 em diante)

<?php
class Foo
{
final public const X = "foo";
}

class Bar extends Foo
{
public const X = "bar";
}

// Fatal error: Bar::X cannot override final constant Foo::X
?>

Nota: Propriedades não podem ser declaradas finais: somente classes, métodos e constantes (a partir do PHP 8.1.0). A partir do PHP 8.0.0, métodos privados não podem ser declarados privados, com exceção do construtor.


Clonando objetos

Criar uma cópia de um objeto com propriedades totalmente replicadas nem sempre é o comportamento desejado. Um bom exemplo da necessidade para cópia de construtores, e quando possuir um objeto que representa uma janela do GTK e o objeto guarda o recurso dessa janela GTK. ao criar uma duplicata, pode-se desejar a criação de uma nova janela com as mesmas propriedades e fazer o novo objeto guardar o recurso da nova janela. Outro exemplo é se seu objeto guarda uma referência a outro objeto que usa e ao replicar o objeto pai, deseja-se que seja criada uma nova instância desse outro objeto para que a réplica tenha sua própria cópia separada.

Uma cópia de objeto é criada usando a palavra-chave clone (que chama o método __clone() do objeto, se possível).

$copia_do_objeto = clone $objeto;

Ao se clonar um objeto, o PHP fará uma cópia superficial de todas as propriedades do objeto. Qualquer propriedade que seja referência a outra variável, permanecerá como referência.

__clone(): void

Depois que a clonagem se completa, se um método __clone() estiver definido, o objeto recém criado terá seu método __clone() chamado, permitindo que qualquer propriedade seja alterada.

Exemplo #1 Clonando um objeto

<?php
class SubObject
{
static $instances = 0;
public $instance;

public function __construct() {
$this->instance = ++self::$instances;
}

public function __clone() {
$this->instance = ++self::$instances;
}
}

class MyCloneable
{
public $object1;
public $object2;

function __clone()
{
// Force a copy of this->object, otherwise
// it will point to same object.
$this->object1 = clone $this->object1;
}
}

$obj = new MyCloneable();

$obj->object1 = new SubObject();
$obj->object2 = new SubObject();

$obj2 = clone $obj;

print "Original Object:\n";
print_r($obj);

print "Cloned Object:\n";
print_r($obj2);

?>

O exemplo acima produzirá:

Original Object:
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 1
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)
Cloned Object:
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 3
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)

É possível acessar um membro de um objeto recém clonado em uma expressão única:

Exemplo #2 Acessar um membro de um objeto recém clonado

<?php
$dateTime = new DateTime();
echo (clone $dateTime)->format('Y');
?>

O exemplo acima produzirá algo semelhante a:

2016


Comparando objetos

Ao usar o operador de comparação (==), as variáveis dos objetos são comparadas de maneira simples, nominalmente: Duas instâncias de objetos são iguais se possuem os mesmos atributos e valores (valores são comparados com ==), e são instâncias da mesma classe.

Ao usar o operador de identidade (===), as variáveis dos objetos serão idênticas, se e somente se, referirem a mesma instância da mesma classe.

Um exemplo evidenciará essas regras.

Exemplo #1 Exemplo de comparação de objetos

<?php
function bool2str($bool)
{
if ($bool === false) {
return 'FALSO';
} else {
return 'VERDADEIRO';
}
}

function compareObjects(&$o1, &$o2)
{
echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "\n";
echo 'o1 != o2 : ' . bool2str($o1 != $o2) . "\n";
echo 'o1 === o2 : ' . bool2str($o1 === $o2) . "\n";
echo 'o1 !== o2 : ' . bool2str($o1 !== $o2) . "\n";
}

class Flag
{
public $flag;

function __construct($flag = true) {
$this->flag = $flag;
}
}

class OtherFlag
{
public $flag;

function __construct($flag = true) {
$this->flag = $flag;
}
}

$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();

echo "Duas instâncias da mesma classe\n";
compareObjects($o, $p);

echo "\nDuas referências para a mesma instância\n";
compareObjects($o, $q);

echo "\nInstâncias de duas classes diferentes\n";
compareObjects($o, $r);
?>

O exemplo acima produzirá:

Duas instâncias da mesma classe
o1 == o2 : VERDADEIRO
o1 != o2 : FALSO
o1 === o2 : FALSO
o1 !== o2 : VERDADEIRO

Duas referências para a mesma instância
o1 == o2 : VERDADEIRO
o1 != o2 : FALSO
o1 === o2 : VERDADEIRO
o1 !== o2 : FALSO

Instâncias de duas classes diferentes
o1 == o2 : FALSO
o1 != o2 : VERDADEIRO
o1 === o2 : FALSO
o1 !== o2 : VERDADEIRO

Nota:

Extensões podem definir suas próprias regras para comparar de objetos (==).


Late Static Bindings

O PHP implementa um recurso chamado late static bindings que pode ser usado para referenciar a classe chamada no contexto de herança estática.

Mais precisamente, late static bindings funcionam através do armazenamento do nome da classe na última "chamada não encaminhada". No caso de chamadas a métodos estáticos, é a classe explicitamente chamada (normalmente o nome a esquerda do operador ::); no caso de chamadas a métodos não estáticos, é o nome da classe do objeto. Uma "chamada encaminhada" é àquela estática, realizada pelos prefixos self::, parent::, static::, ou, se subindo na hierarquia de classes, forward_static_call(). A função get_called_class() pode ser utilizada para recuperar uma string com o nome da classe chamada e static:: introduz seu escopo.

Esse recurso foi chamado de "late static bindings" de uma perspectiva interna em mente. "Late binding" vem do fato que static:: não será resolvido usando a classe onde o método foi definido, mas computada utilizando informações em tempo de execução. É também chamado "static binding" pois pode ser utilizado em (mas não limitado a) chamadas de métodos estáticos.

Limitações do self::

Referências estáticas para a atual classe como self:: ou __CLASS__ são resolvidas usando a classe na qual a função pertence, como onde ele foi definido:

Exemplo #1 Uso do self::

<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
self::who();
}
}

class B extends A {
public static function who() {
echo __CLASS__;
}
}

B::test();
?>

O exemplo acima produzirá:

A

Uso de Late Static Bindings

Late static bindings tenta resolver a limitação introduzindo uma palavra-chave que referencia a classe que foi inicialmente chamada em tempo de execução. Basicamente, é uma palavra-chave que permite referenciar B em test(), no exemplo anterior. Foi decidido não introduzir uma nova palavra-chave, mas usar static, já reservada.

Exemplo #2 Simples uso do static::

<?php
class A {
public static function who() {
echo __CLASS__;
}
public static function test() {
static::who(); // Here comes Late Static Bindings
}
}

class B extends A {
public static function who() {
echo __CLASS__;
}
}

B::test();
?>

O exemplo acima produzirá:

B

Nota:

Em contextos não estáticos a classe chamada será a classe da instância do objeto. Assim como $this-> chamará métodos privados do mesmo escopo, utilizar static:: pode ter resultados diferentes. Outra diferença é que static:: só pode referenciar propriedades estáticas.

Exemplo #3 Uso do static:: em um contexto não-estático

<?php
class A {
private function foo() {
echo "success!\n";
}
public function test() {
$this->foo();
static::foo();
}
}

class B extends A {
/* foo() será copiado para B, assim seu escopo ainda será A e
* e a chamada funcionará */
}

class C extends A {
private function foo() {
/* método original foi substituído, escopo agora é C */
}
}

$b = new B();
$b->test();
$c = new C();
$c->test(); //fails
?>

O exemplo acima produzirá:

success!
success!
success!

Fatal error:  Call to private method C::foo() from context 'A' in /tmp/test.php on line 9

Nota:

As resoluções de Late static bindings terminarão quando a chamada é realizada sem retorno. Por outro lado chamadas estáticas utilizando instruções como parent:: ou self:: irão repassar a informação do chamador.

Exemplo #4 Chamadas repassadas e não repassadas

<?php
class A {
public static function foo() {
static::who();
}

public static function who() {
echo __CLASS__."\n";
}
}

class B extends A {
public static function test() {
A::foo();
parent::foo();
self::foo();
}

public static function who() {
echo __CLASS__."\n";
}
}
class C extends B {
public static function who() {
echo __CLASS__."\n";
}
}

C::test();
?>

O exemplo acima produzirá:

A
C
C


Objetos e Referências

Um dos pontos fortes frequentemente mencionado da POO no PHP, é que "objetos são passados por referências por padrão". Isto não é completamente verdade. Esta seção retifica esse pensamento comum usando alguns exemplos.

Uma referência do PHP é um sinônimo, que permite duas variáveis diferentes escreverem para o mesmo valor. Em PHP, uma variável objeto não contém o próprio objeto como valor. Ela contém um identificador do objeto que permite que os acessadores do objeto encontrem o objeto real. Quando um objeto é enviado por argumento, retornado ou atribuído a outra variável, as variáveis diferentes não são sinônimos: elas armazenam uma cópia do identificador, que aponta para o mesmo objeto.

Exemplo #1 Referências e Objetos

<?php
class A {
public $foo = 1;
}

$a = new A;
$b = $a; // $a e $b são cópias do mesmo identificador
// ($a) = ($b) = <id>
$b->foo = 2;
echo $a->foo."\n";

$c = new A;
$d = &$c; // $c e $d são referências
// ($c,$d) = <id>

$d->foo = 2;
echo $c->foo."\n";

$e = new A;

function foo($obj) {
// ($obj) = ($e) = <id>
$obj->foo = 2;
}

foo($e);
echo $e->foo."\n";

?>

O exemplo acima produzirá:

2
2
2


Serialização de Objetos - Objetos em sessões

A função serialize() retorna uma string contendo uma representação byte-stream de qualquer valor que pode ser armazenado pelo PHP. A função unserialize() pode utilizar essa string para recriar os valores originais da variável. Utilizar a serialização para salvar um objeto, salvará todas as variáveis de um objeto. Os métodos de um objeto não serão salvos, apenas o nome da classe.

Para desserializar um objeto com a função unserialize(), a classe desse objeto precisa estar definida. Isto é, se possuir um objeto da classe A e serializá-lo, você obterá uma string que referencia a classe A e contêm todos os valores de variáveis contidas nele. Se desejar deserializar este objeto em outro arquivo, um objeto da classe A, a definição da classe A deve estar presente neste arquivo. Isso pode ser feito, por exemplo, armazenando a definição da classe A em um arquivo, e incluí-lo, fazendo uso da função spl_autoload_register().

<?php
// A.php:

class A {
public $one = 1;

public function show_one() {
echo $this->one;
}
}

// page1.php:

include "A.php";

$a = new A;
$s = serialize($a);
// store $s somewhere where page2.php can find it.
file_put_contents('store', $s);

// page2.php:

// this is needed for the unserialize to work properly.
include "A.php";

$s = file_get_contents('store');
$a = unserialize($s);

// now use the function show_one() of the $a object.
$a->show_one();
?>

É fortemente recomendado que, quando uma aplicação serializa seus objetos, para uso posterior na aplicação, esta inclua a definição da classe do objeto em questão ao longo de toda aplicação. Não fazer isso pode resultar em objetos serem desserializados sem a definição da classe, que acarretará no PHP entregar um objeto da classe __PHP_Incomplete_Class_Name, que não possui métodos, tornando o objeto inútil.

Então, se, no exemplo anterior, $a se tornou parte da sessão adicionando uma nova chave no array superglobal $_SESSION, você deve incluir o arquivo A.php em todas suas páginas, e não somente em page1.php e page2.php.

Além dos conselhos acima, note que pode-se capturar os eventos de serialização e desserialização de um objeto usando os métodos __sleep() e __wakeup(). Usar o método __sleep() também lhe permitirá serializar somente subconjuntos de propriedades de um objeto.


Covariância e Contravariância

No 7.2.0, a contravariância parcial foi introduzida removendo as restrições de tipo nos parâmetros de um método filho. A partir do PHP 7.4.0, foi adicionado suporte a covariância e contravariância completas.

Covariância permite que um método filho retorne um tipo mais específico que o tipo de retorno de seu método pai. Enquanto que a contravariância permite a um parâmetro ter um tipo menos específico em um método filho, em relação ao método pai.

Uma declaração de tipo é considerada mais específica nos seguintes casos:

  • Um tipo é removido de um tipo union
  • Um tipo é adicionado a um tipo intersection
  • Um tipo de classe é modificado a um tipo de classe filha
  • iterable é modificado para array ou Traversable
Uma classe de tipo é considerada menos específica se o oposto for verdadeiro.

Covariância

Para ilustrar como uma variância funciona, uma classe pai abstrata simples, Animal é criada. Animal será estendida a classes filhas, Cat e Dog.

<?php

abstract class Animal
{
protected string $name;

public function __construct(string $name)
{
$this->name = $name;
}

abstract public function speak();
}

class Dog extends Animal
{
public function speak()
{
echo $this->name . " barks";
}
}

class Cat extends Animal
{
public function speak()
{
echo $this->name . " meows";
}
}

Note que não há nenhum método que retorne valores neste exemplo. Algumas factories serão adicionadas para retornar um novo objeto das classes Animal, Cat or Dog.

<?php

interface AnimalShelter
{
public function adopt(string $name): Animal;
}

class CatShelter implements AnimalShelter
{
public function adopt(string $name): Cat // em vez de retornar o tipo Animal, pode retornar o tipo Cat
{
return new Cat($name);
}
}

class DogShelter implements AnimalShelter
{
public function adopt(string $name): Dog // em vez de retornar o tipo Animal, pode retornar o tipo Dog
{
return new Dog($name);
}
}

$kitty = (new CatShelter)->adopt("Ricky");
$kitty->speak();
echo "\n";

$doggy = (new DogShelter)->adopt("Mavrick");
$doggy->speak();

O exemplo acima produzirá:

Ricky meows
Mavrick barks

Contravariância

Continuando com o exemplo anterior com as classes Animal, Cat e Dog, duas classes chamadas Food e AnimalFood serão incluídas, e um método eat(AnimalFood $food) é adicionado à classe abstrata Animal.

<?php

class Food {}

class AnimalFood extends Food {}

abstract class Animal
{
protected string $name;

public function __construct(string $name)
{
$this->name = $name;
}

public function eat(AnimalFood $food)
{
echo $this->name . " eats " . get_class($food);
}
}

Para ver o comportamento da contravariância, o método eat é substituído na classe Dog para permitir qualquer objeto do tipo Food. A classe Cat permanece inalterada.

<?php

class Dog extends Animal
{
public function eat(Food $food) {
echo $this->name . " eats " . get_class($food);
}
}

O próximo exemplo irá mostrar o comportamento da contravariância.

<?php

$kitty = (new CatShelter)->adopt("Ricky");
$catFood = new AnimalFood();
$kitty->eat($catFood);
echo "\n";

$doggy = (new DogShelter)->adopt("Mavrick");
$banana = new Food();
$doggy->eat($banana);

O exemplo acima produzirá:

Ricky eats AnimalFood
Mavrick eats Food

Mas o que acontece se $kitty tentar comer (eat()) a $banana?

$kitty->eat($banana);

O exemplo acima produzirá:

Fatal error: Uncaught TypeError: Argument 1 passed to Animal::eat() must be an instance of AnimalFood, instance of Food given


Lista de alterações da POO

As alterações no modelo de POO do PHP são registradas aqui. Descrições e outras notas relacionadas a estes recursos estão documentadas na documentação do modelo POO.

Versão | Descrição
8.1.0 | Adicionado: suporte ao modificador final para constantes de classe. Além disso, as constantes de interface agora são substituíveis por padrão.
8.0.0 | Adicionado: suporte ao operador nullsafe ?-> para acessar propriedades e métodos em objetos que podem ser nulos.
7.4.0 | Alterado: agora é possível lançar uma exceção dentro de __toString().
7.4.0 | Adicionado: suporte a covariância limitada de tipo de retorno e contravariância de tipo de argumento. O suporte completo à variância só estará disponível se o carregamento automático for usado. Dentro de um único arquivo, apenas referências de tipo não cíclicas são possíveis.
7.4.0 | Adicionado: agora é possível usar tipos nas propriedades da classe.
7.3.0 | Incompatibilidade: o desempacotamento de argumentos com instâncias de Traversable com chaves não-int não é mais suportado. Esse comportamento não era intencional e, portanto, foi removido.
7.3.0 | Incompatibilidade: nas versões anteriores era possível separar as propriedades estáticas atribuindo uma referência. Isso foi removido.
7.3.0 | Alterado: o operador instanceof agora permite literais como o primeiro operando, caso em que o resultado é sempre false.
7.2.0 | Descontinuado: a função __autoload() foi descontinuada em favor da função spl_autoload_register().
7.2.0 | Alterado: o seguinte nome não pode ser usado para nomear classes, interfaces ou traits: object.
7.2.0 | Alterado: uma vírgula à direita agora pode ser adicionada à sintaxe de agrupamento de use para namespaces.
7.2.0 | Alterado: extensão do tipo de parâmetro. Os tipos de parâmetro de métodos sobrescritos e de implementações de interface agora podem ser omitidos.
7.2.0 | Alterado: métodos abstratos agora podem ser sobrescritos quando uma classe abstrata estende outra classe abstrata.
7.1.0 | Alterado: os nomes a seguir não podem ser usados para nomear classes, interfaces ou traits: void e iterable.
7.1.0 | Adicionado: agora é possível especificar a visibilidade das constantes de classe.
7.0.0 | Defasado: chamadas estáticas a métodos que não são declarados estáticos.
7.0.0 | Defasado: construtor no estilo do PHP 4. Ou seja, métodos com o mesmo nome da classe em que eles são definidos.
7.0.0 | Adicionado: a declaração use de grupo: classes, funções e constantes importadas do mesmo namespace agora podem ser agrupadas em uma única declaração use.
7.0.0 | Adicionado: o suporte a classes anônimas foi adicionado via new class.
7.0.0 | Incompatibilidade: iterar sobre um object que não seja uma instância de Traversable agora terá o mesmo comportamento que iterar sobre arrays por referência.
7.0.0 | Alterado: definir propriedades (compatíveis) em duas traits não dispara mais um erro.
5.6.0 | Adicionado: o método __debugInfo().
5.5.0 | Adicionado: a constante mágica ::class.
5.5.0 | Adicionado: finally para manipular exceções.
5.4.0 | Adicionado: traits.
5.4.0 | Alterado: se uma classe abstrata definir uma assinatura para o construtor, agora ela será imposta.
5.3.3 | Alterado: métodos com o mesmo nome do último elemento de uma classe com namespace não serão mais tratados como construtor. Esta alteração não afeta classes sem namespace.
5.3.0 | Alterado: classes que implementam interfaces com métodos que possuem valores padrão no protótipo não precisam mais corresponder ao valor padrão da interface.
5.3.0 | Alterado: agora é possível referenciar a classe usando uma variável (por exemplo, echo $nome_da_classe::CONSTANTE;). O valor da variável não pode ser uma palavra-chave (por exemplo, self, parent ou static).
5.3.0 | Alterado: um erro de nível E_WARNING será emitido se os métodos mágicos de sobrecarga forem declarados estáticos. Também impõe o requisito de visibilidade pública.
5.3.0 | Alterado: antes do PHP 5.3.0, as exceções lançadas na função __autoload() não podiam ser capturadas no bloco catch e resultariam em um erro fatal. Agora as exceções lançadas na função __autoload podem ser capturadas no bloco catch, com uma condição. Se uma exceção personalizada for lançada, a classe de exceção personalizada deve estar disponível. A função __autoload pode ser usada recursivamente para carregar automaticamente a classe de exceção personalizada.
5.3.0 | Adicionado: o método __callStatic.
5.3.0 | Adicionado: suporte a heredoc e nowdoc nas definições de constantes e propriedades de classe. Nota: os valores heredoc devem seguir as mesmas regras que strings com aspas duplas, (por exemplo, sem variáveis dentro).
5.3.0 | Adicionado: Late Static Bindings.
5.3.0 | Adicionado: o método __invoke().
5.2.0 | Alterado: o método __toString() só era chamado quando combinado diretamente com echo ou print. Mas agora, ele é chamado em qualquer contexto de string (por exemplo, em printf() com o modificador %s), mas não em outros contextos de tipos (por exemplo, com o modificador %d). A partir do PHP 5.2.0, a conversão de objects sem um método __toString para string emitirá um erro de nível E_RECOVERABLE_ERROR.
5.1.3 | Alterado: nas versões anteriores do PHP 5, o uso de var era considerado defasado e emitiria um erro de nível E_STRICT. Agora não é mais defasado, portanto não emite o erro.
5.1.0 | Alterado: o método estático __set_state() agora é chamado por classes exportadas com a função var_export().
5.1.0 | Adicionado: os métodos __isset() e __unset().


Namespaces

Índice

  • Visão Geral
  • Namespaces
  • Sub-namespaces
  • Definindo vários namespaces no mesmo arquivo
  • Fundamentos
  • Namespaces e recursos de linguagem dinâmica
  • Palavra-chave namespace e __NAMESPACE__
  • Apelidando e Importando
  • Espaço global
  • Recorrendo ao espaço global
  • Regras de resolução de nomes
  • Perguntas Frequentes


Visão geral de Namespaces

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

O que são namespaces? Na definição mais ampla, os namespaces (na tradução literal, "espaços de nomes") são uma forma de encapsular itens. Isso é visto como um conceito abstrato em muitos lugares. Por exemplo, em qualquer sistema operacional, os diretórios servem para agrupar arquivos relacionados, e agem como um namespace para os arquivos dentro deles. Como um exemplo concreto, o arquivo foo.txt pode existir em ambos os diretórios /home/greg e /home/other, mas duas cópias de foo.txt não podem coexistir em um mesmo diretório. Além disso, para acessar o arquivo foo.txt fora do diretório /home/greg, o nome do diretório deve ser prefixado ao nome do arquivo usando o separador de diretórios para obter /home/greg/foo.txt. Esse mesmo princípio se estende a namespaces no mundo da programação.

No mundo PHP, os namespaces são projetados para resolver dois problemas que os autores de bibliotecas e aplicações encontram ao criar elementos de código reutilizáveis, como classes ou funções:

  1. Colisões de nomes entre o código criado e classes/funções/constantes internas do PHP ou classes/funções/constantes de terceiros.
  2. Capacidade de criar apelidos (ou encurtar) Nomes_Extralongos projetados para aliviar o primeiro problema, melhorando a legibilidade do código-fonte.

Os Namespaces do PHP fornecem uma maneira de agrupar classes, interfaces, funções e constantes relacionadas. Aqui está um exemplo da sintaxe de namespace em PHP:

Exemplo #1 Exemplo da sintaxe de namespace

<?php
namespace meu\nome; // veja a seção "Definindo Namespaces"

class MinhaClasse {}
function minhafuncao() {}
const MINHACONST = 1;

$a = new MinhaClasse;
$c = new \meu\nome\MinhaClasse; // veja a seção "Espaço Global"

$a = strlen('oi'); // veja a seção "Usando namespaces: recorrendo a
// funções/constantes globais"

$d = namespace\MINHACONST; // veja a seção "operador de namespace
// e constante __NAMESPACE__"
$d = __NAMESPACE__ . '\MINHACONST';
echo constant($d); // veja a seção "Namespaces e recursos de linguagem dinâmica"
?>

Nota: Nomes de namespace não diferenciam maiúsculas de minúsculas.

Nota:

O nome do namespace PHP e os nomes compostos que começam com esse nome (como PHP\Classes) são reservados para uso interno da linguagem e não devem ser usados no código criado pelo usuário.


Definindo namespaces

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Embora qualquer código PHP válido possa estar contido em um namespace, apenas os seguintes tipos de código são afetados por namespaces: classes (incluindo abstratas e traits), interfaces, funções e constantes.

Namespaces são declarados usando a palavra-chave namespace. Um arquivo contendo um namespace deve declarar o namespace no início do arquivo antes de qualquer outro código - com uma exceção: a palavra-chave declare.

Exemplo #1 Declarando um único namespace

<?php
namespace MeuProjeto;

const CONEXAO_OK = 1;
class Conexao { /* ... */ }
function conectar() { /* ... */ }

?>

Nota: Nomes totalmente qualificados (ou seja, nomes que começam com uma barra invertida) não são permitidos em declarações de namespace, por serem construções interpretadas como expressões de namespace relativos.

A única construção de código permitida antes de uma declaração de namespace é a declaração declare, para definir a codificação de um arquivo-fonte. Além disso, nenhum código não-PHP pode preceder uma declaração de namespace, incluindo espaço em branco extra:

Exemplo #2 Declarando um único namespace

<html>
<?php
namespace MeuProjeto; // fatal error - namespace must be the first statement in the script
?>

Além disso, ao contrário de qualquer outra construção do PHP, o mesmo namespace pode ser definido em vários arquivos, permitindo a divisão do conteúdo de um namespace no sistema de arquivos.


Declarando sub-namespaces

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Assim como diretórios e arquivos, os namespaces do PHP podem especificar uma hierarquia de namespaces. Assim, um namespace pode ser definido com subníveis.

Exemplo #1 Declarando um único namespace com hierarquia

<?php
namespace MeuProjeto\Nivel\SubNivel;

const CONEXAO_OK = 1;
class Conexao { /* ... */ }
function conectar() { /* ... */ }

?>
O exemplo acima cria a constante MeuProjeto\Nivel\SubNivel\CONEXAO_OK, a classe MeuProjeto\Nivel\SubNivel\Conexao e a função MeuProjeto\Nivel\SubNivel\conectar.


Definindo vários namespaces no mesmo arquivo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Vários namespaces também podem ser declarados no mesmo arquivo. Existem duas sintaxes permitidas.

Exemplo #1 Declarando vários namespaces, sintaxe de combinação simples

<?php
namespace MeuProjeto;

const CONEXAO_OK = 1;
class Conexao { /* ... */ }
function conectar() { /* ... */ }

namespace OutroProjeto;

const CONEXAO_OK = 1;
class Conexao { /* ... */ }
function conectar() { /* ... */ }
?>

Essa sintaxe não é recomendada para combinar namespaces em um único arquivo. Em vez disso, é recomendado usar a sintaxe alternativa de colchetes.

Exemplo #2 Declarando vários namespaces, sintaxe de colchetes

<?php
namespace MeuProjeto {

const CONEXAO_OK = 1;
class Conexao { /* ... */ }
function conectar() { /* ... */ }
}

namespace OutroProjeto {

const CONEXAO_OK = 1;
class Conexao { /* ... */ }
function conectar() { /* ... */ }
}
?>

É altamente desaconselhado como prática de programação combinar vários namespaces no mesmo arquivo. O principal caso de uso é combinar vários scripts PHP no mesmo arquivo.

Para combinar código global sem namespace com código com namespace, apenas a sintaxe de colchetes é suportada. O código global deve ser encapsulado em uma declaração de namespace sem nome de namespace, como em:

Exemplo #3 Declarando vários namespaces e código sem namespace

<?php
namespace MeuProjeto {

const CONEXAO_OK = 1;
class Conexao { /* ... */ }
function conectar() { /* ... */ }
}

namespace { // código global
session_start();
$a = MeuProjeto\conectar();
echo MeuProjeto\Conexao::iniciar();
}
?>

Nenhum código PHP pode existir fora dos colchetes do namespace, exceto uma declaração declare de abertura.

Exemplo #4 Declarando vários namespaces e código sem namespace

<?php
declare(encoding='UTF-8');
namespace MeuProjeto {

const CONEXAO_OK = 1;
class Conexao { /* ... */ }
function conectar() { /* ... */ }
}

namespace { // código global
session_start();
$a = MeuProjeto\conectar();
echo MeuProjeto\Conexao::iniciar();
}
?>


Usando namespaces: Fundamentos

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Antes de discutir o uso de namespaces, é importante entender como o PHP sabe qual elemento de namespace seu código está solicitando. Uma analogia simples pode ser feita entre os namespaces do PHP e um sistema de arquivos. Existem três maneiras de acessar um arquivo em um sistema de arquivos:

  1. Nome de arquivo relativo como foo.txt. Será resolvido para diretorioatual/foo.txt onde diretorioatual é o diretório ocupado atualmente. Então, se o diretório atual for /home/foo, o nome será resolvido para /home/foo/foo.txt.
  2. Nome de caminho relativo como subdiretorio/foo.txt. Será resolvido para diretorioatual/subdiretorio/foo.txt.
  3. Nome de caminho absoluto como /main/foo.txt. Será resolvido para /main/foo.txt.
O mesmo princípio pode ser aplicado a elementos com namespace no PHP. Por exemplo, um nome de classe pode ser referenciado de três maneiras:
  1. Nome não qualificado ou nome de classe sem prefixo como $a = new foo(); ou foo::metodoestatico();. Se o namespace atual for namespaceatual, ele será resolvido para namespaceatual\foo. Se o código for global, sem namespace, ele será resolvido para foo. Uma ressalva: nomes não qualificados para funções e constantes serão resolvidos para funções e constantes globais se a função ou constante com namespace não for definida. Veja Usando namespaces: recorrendo a funções/constantes globais para obter detalhes.
  2. Nome qualificado ou um nome de classe prefixado como $a = new subnamespace\foo(); ou subnamespace\foo::metodoestatico();. Se o namespace atual for namespaceatual, ele será resolvido para namespaceatual\subnamespace\foo. Se o código for global, sem namespace, ele será resolvido para subnamespace\foo.
  3. Nome totalmente qualificado ou um nome prefixado com um operador de prefixo global como $a = new \namespaceatual\foo(); ou \namespaceatual\foo::metodoestatico();. Ele sempre será resolvido para o nome literal especificado no código, namespaceatual\foo.

Aqui está um exemplo dos três tipos de sintaxe em código real:

arquivo1.php

<?php
namespace Foo\Bar\subnamespace;

const FOO = 1;
function foo() {}
class foo
{
static function metodoestatico() {}
}
?>

arquivo2.php

<?php
namespace Foo\Bar;
include 'arquivo1.php';

const FOO = 2;
function foo() {}
class foo
{
static function metodoestatico() {}
}

/* Nome não qualificado */
foo(); // será resolvido para a função Foo\Bar\foo
foo::metodoestatico(); // será resolvido para a classe Foo\Bar\foo, método metodoestatico
echo FOO; // será resolvido para a constante Foo\Bar\FOO

/* Nome qualificado */
subnamespace\foo(); // será resolvido para a função Foo\Bar\subnamespace\foo
subnamespace\foo::metodoestatico(); // será resolvido para a classe Foo\Bar\subnamespace\foo,
// método metodoestatico
echo subnamespace\FOO; // será resolvido para a constante constant Foo\Bar\subnamespace\FOO

/* Nome totalmente qualificado */
\Foo\Bar\foo(); // será resolvido para a função Foo\Bar\foo
\Foo\Bar\foo::metodoestatico(); // será resolvido para a classe Foo\Bar\foo, método metodoestatico
echo \Foo\Bar\FOO; // será resolvido para a constante Foo\Bar\FOO
?>

Note que para acessar qualquer classe, função ou constante global, um nome totalmente qualificado pode ser usado, como \strlen() ou \Exception ou \INI_ALL.

Exemplo #1 Acessando classes, funções e constantes globais em um namespace

<?php
namespace Foo;

function strlen() {}
const INI_ALL = 3;
class Exception {}

$a = \strlen('oi'); // chama a função global strlen
$b = \INI_ALL; // acessa a constante global INI_ALL
$c = new \Exception('erro'); // instancia um objeto da classe global Exception
?>


Namespaces e recursos de linguagem dinâmica

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

A implementação de namespaces do PHP é influenciada por sua natureza dinâmica como linguagem de programação. Assim, para converter código como o exemplo a seguir em código com namespace:

Exemplo #1 Acessando elementos dinamicamente

exemplo1.php:

<?php
class nomedaclasse
{
function __construct()
{
echo __METHOD__,"\n";
}
}
function nomedafuncao()
{
echo __FUNCTION__,"\n";
}
const nomedaconstante = "global";

$a = 'nomedaclasse';
$obj = new $a; // imprime nomedaclasse::__construct
$b = 'nomedafuncao';
$b(); // imprime nomedafuncao
echo constant('nomedaconstante'), "\n"; // imprime global
?>
Deve-se usar o nome totalmente qualificado (nome da classe prefixado com o namespace). Observe que, como não há diferença entre um nome qualificado e um nome totalmente qualificado em um nome de classe, nome de função ou nome de constante dinâmico, a barra invertida inicial não é necessária.

Exemplo #2 Acessando dinamicamente elementos com namespace

<?php
namespace nomedonamespace;
class nomedaclasse
{
function __construct()
{
echo __METHOD__,"\n";
}
}
function nomedafuncao()
{
echo __FUNCTION__,"\n";
}
const nomedaconstante = "comnamespace";

/* note que, ao usar aspas duplas, "\\nomedonamespace\\nomedaclasse" deve ser usado */
$a = '\nomedonamespace\nomedaclasse';
$obj = new $a; // imprime nomedonamespace\nomedaclasse::__construct
$a = 'nomedonamespace\nomedaclasse';
$obj = new $a; // também imprime nomedonamespace\nomedaclasse::__construct
$b = 'nomedonamespace\nomedafuncao';
$b(); // imprime nomedonamespace\nomedafuncao
$b = '\nomedonamespace\nomedafuncao';
$b(); // também imprime nomedonamespace\nomedafuncao
echo constant('\nomedonamespace\nomedaconstante'), "\n"; // imprime comnamespace
echo constant('nomedonamespace\nomedaconstante'), "\n"; // também imprime comnamespace
?>

Certifique-se de ler a nota sobre escapamento de namespaces em strings.


Palavra-chave namespace e constante __NAMESPACE__

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

O PHP suporta duas maneiras de acessar elementos de forma abstrata dentro do namespace atual, a constante mágica __NAMESPACE__ e a palavra-chave namespace.

O valor de __NAMESPACE__ é uma string que contém o nome do namespace atual. Em código global, sem namespace, ela contém uma string vazia.

Exemplo #1 Exemplo de __NAMESPACE__, código com namespace

<?php
namespace MeuProjeto;

echo '"', __NAMESPACE__, '"'; // produz "MeuProjeto"
?>

Exemplo #2 Exemplo de __NAMESPACE__, código global

<?php

echo '"', __NAMESPACE__, '"'; // produz ""
?>
A constante __NAMESPACE__ é útil para construir nomes de forma dinâmica, por exemplo:

Exemplo #3 Usando __NAMESPACE__ para construção dinâmica de nomes

<?php
namespace MeuProjeto;

function get($nomedaclasse)
{
$a = __NAMESPACE__ . '\\' . $nomedaclasse;
return new $a;
}
?>

A palavra-chave namespace pode ser usada para solicitar explicitamente um elemento do namespace atual ou um subnamespace. Ela é o equivalente para namespaces do operador self para classes.

Exemplo #4 O operador namespace, em um namespace

<?php
namespace MeuProjeto;

use bla\bla as meu; // Veja "Usando namespaces: Apelidando/Importando"

bla\meu(); // chama a função MeuProjeto\bla\meu()
namespace\bla\meu(); // chama a função MeuProjeto\bla\meu()

namespace\funcao(); // chama a função MeuProjeto\funcao()
namespace\sub\funcao(); // chama a função MeuProjeto\sub\funcao()
namespace\nomedaclasse::metodo(); // chama o método estático "metodo" da classe MeuProjeto\nomedaclasse
$a = new namespace\sub\nomedaclasse(); // instancia um objeto da classe MeuProjeto\sub\nomedaclasse
$b = namespace\CONSTANTE; // atribui o valor da constante MeuProjeto\CONSTANTE a $b
?>

Exemplo #5 O operador namespace, em código global

<?php

namespace\funcao(); // chama a função funcao()
namespace\sub\funcao(); // chama a função sub\funcao()
namespace\nomedaclasse::metodo(); // chama o método estático "metodo" da classe nomedaclasse
$a = new namespace\sub\nomedaclasse(); // instancia um objeto da classe sub\nomedaclasse
$b = namespace\CONSTANTE; // atribui o valor da constante CONSTANTE a $b
?>


Usando namespaces: Apelidando/Importando

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

A capacidade de se referir a um nome totalmente qualificado externo com um apelido, ou importação, é um recurso importante dos namespaces. Isso é semelhante à capacidade dos sistemas de arquivos baseados em Unix de criar links simbólicos para um arquivo ou diretório.

O PHP pode apelidar ou importar constantes, funções, classes, interfaces, traits, enums e namespaces.

A criação de apelidos é realizada com o operador use. Aqui está um exemplo mostrando todos os 5 tipos de importação:

Exemplo #1 Importanto ou apelidando com o operador use

<?php
namespace foo;
use Caminho\Completo\Classe as Outra;

// Isso é o mesmo que use Caminho\Completo\NomeNamespace as NomeNamespace
use Caminho\Completo\NomeNamespace;

// Importando uma classe global
use ArrayObject;

// Importando uma função
use function Caminho\Completo\nomeFuncao;

// Apelidando uma função
use function Caminho\Completo\nomeFuncao as funcao;

// Importando uma constante
use const Caminho\Completo\CONSTANTE;

$obj = new namespace\Outra; // Instancia um objeto da classe foo\Outra
$obj = new Outra; // Instancia um objeto da classe Caminho\Completo\Classe
NomeNamespace\SubNamespace\funcao(); // Chama a função Caminho\Completo\NomeNamespace\SubNamespace\funcao
$a = new ArrayObject(array(1)); // Instancia um objeto da classe ArrayObject
// Sem a declaração "use ArrayObject" teria sido instanciado um objeto da classe foo\ArrayObject
funcao(); // chama a função Caminho\Completo\nomeFuncao
echo CONSTANTE; // imprime o valor de Caminho\Completo\CONSTANTE
?>
Note que para nomes com namespaces (nomes de namespaces totalmente qualificados contendo o separador de namespace, como Foo\Bar, em oposição a nomes globais sem separadores, como FooBar), a barra invertida inicial não é necessária e não é recomendada, pois nomes importados precisam ser totalmente qualificados e não são processados em relação ao namespace atual.

O PHP também suporta um atalho de conveniência para colocar várias instruções use na mesma linha.

Exemplo #2 Importando ou criando apelidos com várias declarações use combinadas

<?php
use Caminho\Completo\Classe as Outra, Caminho\Completo\NomeNamespace;

$obj = new Outra; // Instancia um objeto da classe Caminho\Completo\Classe
NomeNamespace\SubNamespace\funcao(); // Chama a função Caminho\Completo\NomeNamespace\SubNamespace\funcao
?>

A importação é realizada em tempo de compilação e por isso, não afeta classes, funções ou nomes de constantes gerados dinamicamente.

Exemplo #3 Importação e nomes dinâmicos

<?php
use Caminho\Completo\Classe as Outra, Caminho\Completo\NomeNamespace;

$obj = new Outra; // Instancia um objeto da classe Caminho\Completo\Classe
$a = 'Outra';
$obj = new $a; // Instancia um objeto da classe Outra
?>

Além disso, a importação afeta apenas nomes não qualificados e qualificados. Nomes totalmente qualificados são absolutos e não são afetados pelas importações.

Exemplo #4 Importação e nomes completamente qualificados

<?php
use Caminho\Completo\Classe as Outra, Caminho\Completo\NomeNamespace;

$obj = new Outra; // Instancia um objeto da classe Caminho\Completo\Classe
$obj = new \Outra; // Instancia um objeto da classe Outra
$obj = new Outra\Coisa; // Instancia um objeto da classe Caminho\Completo\Classe\Coisa
$obj = new \Outra\Coisa; // Instancia um objeto da classe Outra\Coisa
?>

Regras de escopo para importação

A palavra-chave use precisa ser declarada no escopo mais externo do arquivo (o escopo global) ou dentro de declarações de namespaces. Isso ocorre por a importação ser realizada em tempo de compilação e não em tempo de execução, portanto, não pode ter escopo de bloco. O exemplo a seguir mostra um uso inválido da palavra-chave use:

Exemplo #5 Regra de importação inválida

<?php
namespace Linguas;

function paraGroenlandes()
{
use Linguas\Dinamarques;

// ...
}
?>

Nota:

As regras de importação são por arquivo, o que significa que os arquivos incluídos NÃO herdarão as regras de importação do arquivo pai.

Declarações use em grupo

Classes, funções e constantes importadas do mesmo namespace podem ser agrupadas numa única declaração use.

<?php

use algum\namespace\ClasseA;
use algum\namespace\ClasseB;
use algum\namespace\ClasseC as C;

use function algum\namespace\fn_a;
use function algum\namespace\fn_b;
use function algum\namespace\fn_c;

use const algum\namespace\ConstA;
use const algum\namespace\ConstB;
use const algum\namespace\ConstC;

// É equivalente à seguinte declaração use agrupada
use algum\namespace\{ClasseA, ClasseB, ClasseC as C};
use function algum\namespace\{fn_a, fn_b, fn_c};
use const algum\namespace\{ConstA, ConstB, ConstC};


Espaço global

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Quando um namespace não é definido, todas as definições de classes e funções são colocadas no espaço global, como era no PHP antes de os namespaces serem suportados. Prefixar um nome com \ especificará que o nome é necessário no espaço global, mesmo no contexto do namespace.

Exemplo #1 Usando a especificação do espaço global

<?php
namespace A\B\C;

/* Esta função é A\B\C\fopen */
function fopen() {
/* ... */
$f = \fopen(...); // chama a função fopen global
return $f;
}
?>


Usando namespaces: recorrendo ao espaço global para funções e constantes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Dentro de um namespace, quando o PHP encontra um nome não qualificado em um nome de classe, função ou contexto de constante, eles são resolvidos com diferentes prioridades. Nomes de classe sempre são resolvidos para o nome do namespace atual. Portanto, para acessar classes internas ou classes de usuário sem namespace, deve-se referir a elas com o nome totalmente qualificado como em:

Exemplo #1 Acessando classes globais em um namespace

<?php
namespace A\B\C;
class Exception extends \Exception {}

$a = new Exception('oi'); // $a é um objeto da classe A\B\C\Exception
$b = new \Exception('oi'); // $b é um objeto da classe Exception

$c = new ArrayObject; // erro fatal, classe A\B\C\ArrayObject não encontrada
?>

Para funções e constantes, o PHP recorrerá a funções ou constantes globais se a função ou constante com namespace não existir.

Exemplo #2 Recorrendo a funções/constantes globais em um namespace

<?php
namespace A\B\C;

const E_ERROR = 45;
function strlen($str)
{
return \strlen($str) - 1;
}

echo E_ERROR, "\n"; // imprime "45"
echo INI_ALL, "\n"; // imprime "7" - recorre à constante INI_ALL global

echo strlen('oi'), "\n"; // imprime "1"
if (is_array('oi')) { // imprime "não é array"
echo "é array\n";
} else {
echo "não é array\n";
}
?>


Regras de resolução de nomes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Para efeitos destas regras de resolução, aqui estão algumas definições importantes:

Definições de nomes de namespace
Nome não qualificado

Este é um identificador sem separador de namespace, como Foo.

Nome qualificado

Este é um identificador com separador de namespace, como Foo\Bar.

Nome totalmente qualificado

Este é um identificador com separador de namespace que começa com um separador de namespace, como \Foo\Bar. O namespace \Foo também é um nome totalmente qualificado.

Nome relativo

Este é um identificador que começa com namespace, como namespace\Foo\Bar.

Os nomes são resolvidos seguindo estas regras de resolução:

  1. Nomes totalmente qualificados sempre são resolvidos para o nome sem separador de namespace à esquerda. Por exemplo, \A\B será resolvido para A\B.
  2. Nomes relativos sempre são resolvidos para o nome com namespace substituído pelo namespace atual. Se o nome ocorrer no namespace global, o prefixo namespace\ será removido. Por exemplo, namespace\A dentro do namespace X\Y será resolvido para X\Y\A. O mesmo nome dentro do namespace global será resolvido para A.
  3. Para nomes qualificados, o primeiro segmento do nome será traduzido conforme a tabela de importação de classe/namespace atual. Por exemplo, se o namespace A\B\C for importado como C, o nome C\D\E será traduzido para A\B\C\D\E.
  4. Para nomes qualificados, se nenhuma regra de importação se aplicar, o namespace atual será prefixo ao nome. Por exemplo, o nome C\D\E dentro do namespace A\B, será resolvido para A\B\C\D\E.
  5. Para nomes não qualificados, o nome será traduzido conforme a tabela de importação atual para o respectivo tipo de símbolo. Isso significa que nomes semelhantes a classes serão traduzidos conforme a tabela de importação de classe/namespace, nomes de funções conforme a tabela de importação de funções e constantes conforme a tabela de importação de constantes. Por exemplo, após a declaração use A\B\C; um uso como new C() será resolvido para o nome A\B\C(). Da mesma forma, após a declaração use function A\B\foo; um uso como foo() será resolvido para o nome A\B\foo.
  6. Para nomes não qualificados, se nenhuma regra de importação se aplicar e o nome se referir a um símbolo de classe, o namespace atual será prefixo. Por exemplo new C() dentro do namespace A\B será resolvido para o nome A\B\C.
  7. Para nomes não qualificados, se nenhuma regra de importação se aplicar e o nome se referir a uma função ou constante e o código estiver fora do namespace global, o nome será resolvido em tempo de execução. Supondo que o código esteja no namespace A\B, é assim que uma chamada para a função foo() será resolvida:
    1. Procura pela função no namespace atual: A\B\foo().
    2. Tenta encontrar e chamar a função global foo().

Exemplo #1 Resoluções de nomes ilustradas

<?php
namespace A;
use B\D, C\E as F;

// chamadas de funções

foo(); // primeiro tenta chamar "foo" definida no namespace "A"
// então chama a função global "foo"

\foo(); // chama a função "foo" definida no escopo global

minha\foo(); // chama a função "foo" definida no namespace "A\minha"

F(); // primeiro tenta chamar "F" definida no namespace "A"
// e então chama a função global "F"

// referências de classe

new B(); // cria um objeto da classe "B" definida no namespace "A"
// se não for encontrada, tenta carregar automaticamente a classe "A\B"

new D(); // usando regras de importação, cria um objeto da classe "D" definida no namespace "B"
// se não for encontrada, tenta carregar automaticamente a classe "B\D"

new F(); // usando regras de importação, cria um objeto da classe "E" definida no namespace "C"
// se não for encontrada, tenta carregar automaticamente a classe "C\E"

new \B(); // cria um objeto da classe "B" definida no escopo global
// se não for encontrada, tenta carregar automaticamente a classe "B"

new \D(); // cria um objeto da classe "D" definida no escopo global
// se não for encontrado, tenta carregar automaticamente a classe "D"

new \F(); // cria um objeto da classe "F" definida no escopo global
// se não for encontrada, tenta carregar automaticamente a classe "F"

// métodos estáticos/funções de namespace de outro namespace

B\foo(); // chama a função "foo" do namespace "A\B"

B::foo(); // chama o método "foo" da classe "B" definida no namespace "A"
// se a classe "A\B" não for encontrada, tenta carregar automaticamente a classe "A\B"

D::foo(); // usando regras de importação, chama o método "foo" da classe "D" definida no namespace "B"
// se a classe "B\D" não for encontrada, tenta carregar automaticamente a classe "B\D"

\B\foo(); // chama a função "foo" do namespace "B"

\B::foo(); // chama o método "foo" da classe "B" do escopo global
// se a classe "B" não for encontrada, tenta carregar automaticamente a classe "B"

// métodos estáticos/funções de namespace do namespace atual

A\B::foo(); // chama o método "foo" da classe "B" do namespace "A\A"
// se a classe "A\A\B" não for encontrada, tenta carregar automaticamente a class "A\A\B"

\A\B::foo(); // chama o método "foo" da classe "B" do namespace "A"
// se a classe "A\B" não for encontrada, tenta carregar automaticamente a classe "A\B"
?>


Perguntas Frequentes: Coisas que você precisa saber sobre namespaces

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Estas perguntas frequentes são divididas em duas seções: perguntas comuns e alguns detalhes de implementação úteis para entender os pormenores.

Primeiro, as perguntas comuns.

  1. Se não usar namespaces, devo me importar com esta documentação?
  2. Como usar classes internas ou globais em um namespace?
  3. Como usar classes, funções ou constantes de namespace em seu próprio namespace?
  4. Como nomes como \meu\nome ou \nome são resolvidos?
  5. Como um nome como meu\nome é resolvido?
  6. Como um nome de classe não qualificado como nome é resolvido?
  7. Como um nome de função não qualificado ou nome de constante não qualificado como nome é resolvido?

Há alguns detalhes de implementação dos namespaces úteis para entendê-los melhor.

  1. Nomes de importação não devem entrar em conflito com classes definidas no mesmo arquivo
  2. Namespaces aninhados não são permitidos.
  3. Nomes de namespace dinâmicos (identificadores entre aspas) devem escapar a barra invertida
  4. Constantes indefinidas referenciadas usando qualquer barra invertida geram erro fatal
  5. Não é possível substituir as constantes especiais null, true ou false

Se não usar namespaces, devo me importar com esta documentação?

Não. Namespaces não afetam nenhum código existente de forma alguma, ou qualquer código ainda a ser escrito que não contenha namespaces. Você pode escrever este código se desejar:

Exemplo #1 Acessando classes globais fora de um namespace

<?php
$a = new \stdClass;
?>

O exemplo acima é equivalente ao seguinte código:

Exemplo #2 Acessando classes globais fora de um namespace

<?php
$a = new stdClass;
?>

Como usar classes internas ou globais em um namespace?

Exemplo #3 Acessando classes internas em namespaces

<?php
namespace foo;
$a = new \stdClass;

function test(\ArrayObject $exemplo_com_tipo_de_parametro = null) {}

$a = \DirectoryIterator::CURRENT_AS_FILEINFO;

// estendendo uma classe interna ou global
class MinhaExcecao extends \Exception {}
?>

Como usar classes, funções ou constantes de namespace em seu próprio namespace?

Exemplo #4 Acessando classes, funções ou constantes internas em namespaces

<?php
namespace foo;

class MinhaClasse {}

// usando uma classe do namespace atual como tipo de parâmetro
function test(MinhaClasse $exemplo_com_tipo_de_parametro = null) {}
// outra forma de usar a classe do namespace atual como tipo de parâmetro
function test(\foo\MinhaClasse $exemplo_com_tipo_de_parametro = null) {}

// estendendo uma classe do namespace atual
class Estendida extends MinhaClasse {}

// acessando uma função global
$a = \funcao_global();

// acessando uma constante global
$b = \INI_ALL;
?>

Como nomes como \meu\nome ou \nome são resolvidos?

Nomes que começam com uma barra invertida (\) sempre são resolvidos para seu conteúdo exato, então \meu\nome é o mesmo que meu\nome e \Exception é o mesmo que Exception.

Exemplo #5 Nomes totalmente qualificados

<?php
namespace foo;
$a = new \meu\nome(); // instancia um objeto da classe "meu\nome"
echo \strlen('olá'); // invoca a função "strlen"
$a = \INI_ALL; // define $a com o valor da constante "INI_ALL"
?>

Como um nome como meu\nome é resolvido?

Nomes que contêm barra invertida, mas não começam com uma barra invertida, como meu\nome podem ser resolvidos de duas maneiras diferentes.

Se houver uma instrução de importação que cria o apelido meu para outro nome, então o apelido da importação será aplicado ao meu em meu\nome.

Caso contrário, o nome do namespace atual será prefixado a meu\nome.

Exemplo #6 Nomes qualificados

<?php
namespace foo;
use bla\bla as foo;

$a = new meu\nome(); // instancia um objeto da classe "foo\meu\nome"
foo\bar::nome(); // chama o método estático "nome" na classe "bla\bla\bar"
minha\bar(); // chama a função "foo\minha\bar"
$a = minha\BAR; // define $a com o valor da constante "foo\minha\BAR"
?>

Como um nome de classe não qualificado como nome é resolvido?

Nomes de classes que não contêm barra invertida como nome podem ser resolvidos de duas maneiras diferentes.

Se houver uma instrução de importação que cria o apelido nome para outro nome, então o apelido da importação será aplicado.

Caso contrário, o nome do namespace atual será prefixado a nome.

Exemplo #7 Nomes de classe não qualificados

<?php
namespace foo;
use bla\bla as foo;

$a = new nome(); // instancia um objeto da classe "foo\nome"
foo::nome(); // chama o método estático "nome" na classe "bla\bla"
?>

Como um nome de função não qualificado ou nome de constante não qualificado como nome é resolvido?

Nomes de funções ou constantes que não contêm barra invertida como nome podem ser resolvidos de duas maneiras diferentes.

Primeiro, o nome do namespace atual será prefixado a nome.

Finalmente, se a contante ou função nome não existir no namespace atual, uma constante ou função global nome será usada se existir.

Exemplo #8 Nomes de funções ou constantes não qualificados

<?php
namespace foo;
use bla\bla as foo;

const FOO = 1;

function minha() {}
function foo() {}
function sort(&$a)
{
\sort($a); // chama a função global "sort"
$a = array_flip($a);
return $a;
}

minha(); // chama "foo\minha"
$a = strlen('hi'); // chama a função global "strlen" porque não existe "foo\strlen"
$arr = array(1,3,2);
$b = sort($arr); // chama a função "foo\sort"
$c = foo(); // chama a função "foo\foo" - a importação não é aplicada

$a = FOO; // define $a com o valor da constante "foo\FOO" - a importação não é aplicada
$b = INI_ALL; // define $b com o valor da constante global "INI_ALL"
?>

Nomes de importação não devem entrar em conflito com classes definidas no mesmo arquivo

As seguintes combinações de script são válidas:

arquivo1.php

<?php
namespace minha\coisa;
class MinhaClasse {}
?>

outra.php

<?php
namespace outra;
class coisa {}
?>

arquivo2.php

<?php
namespace minha\coisa;
include 'arquivo1.php';
include 'outra.php';

use outra\coisa as MinhaClasse;
$a = new MinhaClasse; // instancia um objeto da classe coisa do namespace outra
?>

Não há conflito de nomes, mesmo que a classe MinhaClasse exista dentro do namespace minha\coisa, porque a definição de MinhaClasse está em um arquivo separado. No entanto, o próximo exemplo causa um erro fatal de conflito de nomes porque MinhaClasse está definida no mesmo arquivo que a declaração use.

<?php
namespace minha\coisa;
use outra\coisa as MinhaClasse;
class MinhaClasse {} // erro fatal: MinhaClasse está em conflito com a declaração de importação
$a = new MinhaClasse;
?>

Namespaces aninhados não são permitidos

O PHP não permite aninhar namespaces.

<?php
namespace minha\coisa {
namespace aninhada {
class foo {}
}
}
?>
No entanto, é fácil simular namespaces aninhados da seguinte forma:
<?php
namespace minha\coisa\aninhada {
class foo {}
}
?>

Nomes de namespace dinâmicos (identificadores entre aspas) devem escapar a barra invertida

É muito importante perceber que, como a barra invertida é usada como um caractere de escape dentro de strings, ela sempre deve ser duplicada quando usada em uma string. Caso contrário, existe o risco de consequências não desejadas:

Exemplo #9 Perigos do uso de nomes com namespace em uma string com aspas duplas

<?php
$a = "\nome\perigoso"; // \n é uma nova linha dentro de strings com aspas duplas!
$obj = new $a;

$a = 'nada\perigoso'; // não há problemas aqui.
$obj = new $a;
?>
Dentro de uma string com aspas simples, a sequência de escape da barra invertida é muito mais segura de usar, mas ainda é uma prática recomendada escapar as barras invertidas em todas as strings.

Constantes indefinidas referenciadas usando qualquer barra invertida geram erro fatal

Qualquer constante indefinida não qualificada como FOO gerará um alerta explicando que o PHP assumiu que FOO era o valor da constante. Qualquer constante, qualificada ou totalmente qualificada, que contenha uma barra invertida produzirá um erro fatal se não for encontrada.

Exemplo #10 Constantes não definidas

<?php
namespace bar;
$a = FOO; // Produz um alerta - constante indefinida FOO assumiu "FOO"
$a = \FOO; // Erro fatal, constante de namespace indefinida FOO
$a = Bar\FOO; // Erro fatal, constante de namespace indefinida bar\Bar\FOO
$a = \Bar\FOO; // Erro fatal, constante de namespace indefinida Bar\FOO
?>

Não é possível substituir as constantes especiais null, true ou false

Qualquer tentativa de definir uma constante de namespace que seja uma constante especial nativa resultará em um erro fatal.

Exemplo #11 Constantes não definidas

<?php
namespace bar;
const NULL = 0; // Erro fatal
const true = 'verdadeiro'; // Também um erro fatal
// etc.
?>


Enumerações

Índice

  • Visão geral das Enumerações
  • Enumerações básicas
  • Backed enums
  • Métodos de enumerações
  • Métodos estáticos de enumerações
  • Constantes de enumeração
  • Traits
  • Valores enum em expressões constantes
  • Diferenças de objetos
  • Listagem de valores
  • Serialização
  • Porque enums não são extensíveis
  • Exemplos


Visão geral das Enumerações

(PHP 8 >= 8.1.0)

Enumerações, ou "Enums" permitem um desenvolvedor definir um tipo personalizado que está limitado a um número discreto de valores possíveis. Isso pode ser especialmente útil ao definir um modelo de domínio, pois permite "tornar estados inválidos irrepresentáveis."

Enums aparecem em muitas linguagens com uma variedade de recursos diferentes. No PHP, Enums são um tipo especial de objeto. A Enum em si é uma classe, e seus possíveis casos são todos objetos de instância única dessa classe. Isso significa que casos Enum são objetos válidos e podem ser usados em qualquer lugar em que um objeto pode ser usado, incluindo verificações de tipo.

O exemplo mais popular de enumerações é o tipo embutido booleano, que é um tipo enumerado com valores válidos true e false. Enums permitem que os desenvolvedores definam suas próprias enumerações robustas.


Enumerações básicas

Enums são similares às classes, e compartilham o mesmo namespaces que as classes, interfaces, e traits. Elas também podem ser carregadas automaticamente da mesma maneira. Uma Enum define um novo tipo, que possui um número fixo e limitado de valores legais possíveis.

<?php

enum Naipe
{
case Copas;
case Ouros;
case Paus;
case Espadas;
}
?>

Essa declaração cria um novo tipo enumerado chamado Naipe, que possui quatro e apenas quatro valores permitidos: Naipe::Copas, Naipe::Ouros, Naipe::Paus, e Naipe::Espadas. Variáveis podem ser atribuídas a um desses valores permitidos. Uma função pode ser tipada contra um tipo enumerado, caso em que apenas os valores desse tipo podem ser passados.

<?php

function pegar_uma_carta(Naipe $naipe)
{
/* ... */
}

$val = Naipe::Ouros;

// OK
pegar_uma_carta($val);

// OK
pegar_uma_carta(Naipe::Paus);

// TypeError: pegar_uma_carta(): Argument #1 ($naipe) must be of type Naipe, string given
pegar_uma_carta('Espadas');
?>

Uma enumeração pode ter zero ou mais definições case, sem limite máximo. Uma enum sem nenhum caso é sintaticamente válida, embora inútil.

Os nomes dos casos seguem as mesmas regras de sintaxe de qualquer nome do PHP, mais detalhados na seção sobre Constantes.

Por padrão, os casos não são internamente associados por um valor escalar. Ou seja, Naipe::Copas is not equal to "0". Instead, each case is backed by a singleton object of that name. That means that:

<?php

$a = Naipe::Espadas;
$b = Naipe::Espadas;

$a === $b; // true

$a instanceof Naipe; // true
?>

Isso também significa que os valores enum nunca são < ou > do que o outro, uma vez que essas comparações não fazem sentido em objetos. Essas comparações sempre retornarão false ao trabalhar com valores enum.

Esse tipo de caso, sem dados relacionados, é chamado de "Caso Puro". Uma Enum que contém apenas Casos Puros é chamada de Pure Enum (enum pura).

Todos os Casos Puros são implementados como instâncias de seus tipos enum. O tipo enum é representado internamente como uma classe.

Todos os Casos têm uma propriedade somente leitura, name, que é o nome (sensível a maiúsculas e minúsculas) do próprio caso.

<?php

print Naipe::Espadas->name;
// imprime "Espadas"
?>

É possível também utilizar as funções defined() e constant() para verificar a existência ou ler um item de enum se o nome for obtido dinamicamente. Isto é desencorajado, já que utilizar Backed enums funciona para a maioria dos casos.


Backed enums

Por padrão, os Casos não possuem um equivalente escalar. Eles são apenas objetos singleton. No entanto, existem muitos casos em que um Caso Enumerado precisa ser capaz de fazer fazer uma conversão de ida e volta para um banco de dados ou um armazenamento de dados semelhante, então ter um escalar embutido (e, portanto, trivialmente serializável) equivalente definido intrinsecamente é útil.

Para definir um equivalente escalar para uma Enumeração, a sintaxe é a seguinte:

<?php

enum Naipe: string
{
case Copas = 'C';
case Ouros = 'O';
case Paus = 'P';
case Espadas = 'E';
}
?>

Um caso que possui um equivalente escalar é chamado de Backed Case, sendo "Backed" no sentido de lastreado, suportado, por um valor mais simples. Uma Enum que possui todos Casos Lastreados é chamada Backed Enum. Uma Backed Enum pode conter apenas Backed Case. Uma Enum Pura pode conter apenas Casos Puros.

Uma Backed Enum pode associar valores de tipos int ou string, e uma determinada enumeração suporta apenas um único tipo de cada vez (isto é, sem união de int|string). Se uma enumeração for marcada como tendo um equivalente escalar, então todos os casos devem possuir um escalar equivalente único definido explicitamente. Não existem equivalentes escalares gerados automaticamente (p. ex.: inteiros sequenciais). Casos lastreados devem ser únicos; dois casos enum lastreados não podem ter o mesmo equivalente escalar. No entanto, uma constante pode se referir a um caso, efetivamente criando um apelido. Veja Constantes de enumeração.

Valores equivalentes devem ser literais ou expressões literais. Constantes e expressões constantes não são suportadas. Isto é, 1 + 1 é permitido, mas 1 + SOME_CONST não é.

Backed Cases possuem uma propriedade somente leitura adicional, value, que é o valor especificado na definição.

<?php

print Naipe::Paus->value;
// Imprime "P"
?>

Para impor a propriedade value como somente leitura, uma variável não pode ser atribuída como uma referência para ela. Isto é, o seguinte lança um erro:

<?php

$naipe = Naipe::Paus;
$ref = &$naipe->value;
// Error: Cannot acquire reference to property Naipe::$value
?>

Backed Enums implementam uma interface interna BackedEnum, que expõe dois métodos adicionais:

  • from(int|string): self recebe uma escalar e retornará o Caso Enum correspondente. Se um não for encontrado, ela lançará um ValueError. Isso é útil principalmente nas situações somente valores previstos são permitidos e um valor enum ausente deve ser considerado um erro de interrupção de aplicação.
  • tryFrom(int|string): ?self recebe uma escalar e retornará o Caso Enum correspondente. Se um não for encontrado, ela retornará null. Isso é útil principalmente em casos onde o escalar de entrada não é confiável e o chamador quer implementar sua própria lógica de manipulação de erros ou de valor padrão.

Os métodos from() e tryFrom() seguem as regras padrão de tipagem fraca/forte. No modo de tipagem fraca, passar um inteiro ou string é aceitável e o sistema irá coagir o valor de acordo. Passar um float também irá funcionar e será convertido. No modo de tipagem estrita, passar um inteiro para from() em uma enum associada a strings (ou vice-versa) irá resultar em um TypeError, assim como um float irá lançar um erro em todas as circunstâncias. Todos os outros tipos de parâmetro lançarão um TypeError em ambos os modos.

<?php

$registro = obter_coisas_do_banco_de_dados($id);
print $registro['naipe'];

$naipe = Naipe::from($registro['naipe']);
// Dados inválidos lançam um ValueError: "X" is not a valid scalar value for enum "Naipe"
print $naipe->value;

$naipe = Naipe::tryFrom('A') ?? Naipe::Espadas;
// Dados inválidos retornam null, então Naipe::Espadas em seu lugar.
print $naipe->value;
?>

Definir manualmente um método from() ou tryFrom() em uma Backed Enum irá resultar em um erro fatal.


Métodos de enumerações

Enums (tanto Puras quanto Backed) podem conter métodos, e podem implementar interfaces. Se uma Enum implementa uma interface, então qualquer verificação de tipo para aquela interface também aceitará todos os casos daquela Enum.

<?php

interface Colorido
{
public function cor(): string;
}

enum Naipe implements Colorido
{
case Copas;
case Ouros;
case Paus;
case Espadas;

// Cumpre o contrato da interface.
public function cor(): string
{
return match($this) {
Naipe::Copas, Naipe::Ouros => 'Vermelho',
Naipe::Paus, Naipe::Espadas => 'Preto',
};
}

// Não faz parte de uma interface; tudo bem.
public function forma(): string
{
return "Retângulo";
}
}

function pintar(Colorido $c)
{
/* ... */
}

pintar(Naipe::Paus); // Funciona

print Naipe::Ouros->shape(); // imprime "Retângulo"
?>

Nesse exemplo, todas as quatro instâncias de Naipe possuem dois métodos, cor() e forma(). Até onde o código chamador e as checagens de tipo sabem, elas se comportam exatamente da mesma forma que qualquer outra instância de objeto.

Em uma Backed Enum, a declaração de interface vai após a declaração do tipo de lastro.

<?php

interface Colorido
{
public function cor(): string;
}

enum Naipe: string implements Colorido
{
case Copas = 'C';
case Ouros = 'O';
case Paus = 'P';
case Espadas = 'E';

// Cumpre o contrato da interface.
public function cor(): string
{
return match($this) {
Naipe::Copas, Naipe::Ouros => 'Vermelho',
Naipe::Paus, Naipe::Espadas => 'Preto',
};
}
}
?>

Dentro de um método, a variável $this é definida e se refere à instância do Caso.

Métodos podem ser arbitrariamente complexos, mas na prática geralmente retornam um valor estático ou match no $this para fornecer resultados diferentes para casos diferentes.

Note que nesse caso, uma prática melhor de modelagem de dados seria definir também um Tipo Enum CorDeNaipe com valores Preto e Vermelho e retornar isso no seu lugar. No entanto, isso complicaria esse exemplo.

A hierarquia acima é logicamente similar a seguinte estrutura de classes (embora esse não seja o código real que é executado):

<?php

interface Colorido
{
public function cor(): string;
}

final class Naipe implements UnitEnum, Colorido
{
public const Copas = new self('Copas');
public const Ouros = new self('Ouros');
public const Paus = new self('Paus');
public const Espadas = new self('Espadas');

private function __construct(public readonly string $nome) {}

public function cor(): string
{
return match($this) {
Naipe::Copas, Naipe::Ouros => 'Vermelho',
Naipe::Paus, Naipe::Espadas => 'Preto',
};
}

public function forma(): string
{
return "Retângulo";
}

public static function cases(): array
{
// Método ilegal, porque definir manualmente um método cases() em uma Enum não é permitido.
// Veja também a seção "Listagem de valores".
}
}
?>

Métodos podem ser públicos, privados, ou protegidos, apesar dos privados e protegidos são equivalentes na prática, pois herança não é permitida.


Métodos estáticos de enumerações

Enumerações também podem ter métodos estáticos. O uso para métodos estáticos na própria enumeração é primariamente para construtores alternativos. P. ex.:

<?php

enum Tamanho
{
case Pequeno;
case Medio;
case Grande;

public static function deComprimento(int $cm): static
{
return match(true) {
$cm < 50 => static::Pequeno,
$cm < 100 => static::Medio,
default => static::Grande,
};
}
}
?>

Métodos estáticos podem ser públicos, privados, ou protegidos apesar dos privados e protegidos são equivalentes na prática, pois herança não é permitida.


Constantes de enumeração

Enumerações podem incluir constantes, que podem ser públicas, privadas ou protegidas, apesar das privadas e protegidas são equivalentes na prática, pois herança não é permitida.

Uma constante de enum pode se referir a um caso enum:

<?php

enum Tamanho
{
case Pequeno;
case Medio;
case Grande;

public const Enorme = self::Grande;
}
?>


Traits

Enumerações podem utilizar traits, que se comportam da mesma maneira que nas classes. A limitação é que usados com use em uma enum não podem conter propriedades. Eles podem incluir apenas métodos e métodos estáticos. Um trait com propriedades resultará em um erro fatal.

<?php

interface Colorido
{
public function cor(): string;
}

trait Retangulo
{
public function shape(): string {
return "Retângulo";
}
}

enum Naipe implements Colorido
{
use Retangulo;

case Copas;
case Ouros;
case Paus;
case Espadas;

public function cor(): string
{
return match($this) {
Naipe::Copas, Naipe::Ouros => 'Vermelho',
Naipe::Paus, Naipe::Espadas => 'Preto',
};
}
}
?>


Valores enum em expressões constantes

Como os casos são representados como constantes no próprio enum, eles podem ser usados como valores estáticos na maioria das expressões constantes: padrões de propriedades, padrões de variáveis estáticas, padrões de parâmetros, valores constantes globais e de classes. Eles não podem ser usados em outros valores de caso enum, mas constantes normais podem se referir a um caso enum.

No entanto, chamadas implícitas de métodos mágicos como ArrayAccess em enums não são permitidas em definições estáticas ou de constantes já que não podemos garantir absolutamente que o valor resultante é determinístico ou que a invocação do método é livre de efeitos colaterais. Chamadas de funções, chamadas de métodos e acesso às propriedades continuam a ser operações inválidas em expressões constantes.

<?php

// Esta é uma definição de Enum perfeitamente legal.
enum Direcao implements ArrayAccess
{
case Cima;
case Baixo;

public function offsetExists($offset): bool
{
return false;
}

public function offsetGet($offset): mixed
{
return null;
}

public function offsetSet($offset, $value): void
{
throw new Exception();
}

public function offsetUnset($offset): void
{
throw new Exception();
}
}

class Foo
{
// Isto é permitido.
const BAIXO = Direcao::Baixo;

// Isto não é permitido, pois pode não ser determinístico.
const CIMA = Direcao::Cima['curta'];
// Fatal error: Cannot use [] on enums in constant expression
}

// Isto é perfeitamente legal, porque não é uma expressão constante.
$x = Direcao::Cima['curta'];
var_dump("\$x is " . var_export($x, true));

$foo = new Foo();
?>


Diferenças de objetos

Apesar de Enums serem construídas sobre classes e objetos, elas não suportam todas as funcionalidades relacionadas a objetos. Em particular, casos Enum são proibidos de ter estado.

  • Construtores e Destrutores são proibidos.
  • Herança não é suportada. Enums não podem estender ou ser estendidos.
  • Propriedades estáticas ou de objeto não são permitidas.
  • Clonar um caso Enum não é suportado, pois os casos devem ser instâncias singleton.
  • Métodos mágicos, exceto para aqueles listados abaixo, não são permitidos.
  • Enums sempre precisam ser declarados antes de serem utilizados.

As seguintes funcionalidades de objeto estão disponíveis, e se comportam exatamente como em qualquer outro objeto:

  • Métodos públicos, privados e protegidos.
  • Métodos estáticos públicos, privados e protegidos.
  • Constantes públicas, privadas e protegidas.
  • Enums podem implementar qualquer número de interfaces.
  • Enums e casos podem ter atributos anexados a eles. O filtro de alvo TARGET_CLASS inclui as próprias Enums. O filtro de alvo TARGET_CLASS_CONST inclui Casos Enum.
  • Os métodos mágicos __call, __callStatic, e __invoke
  • Constantes __CLASS__ e __FUNCTION__ se comportam normalmente

A constante mágica ::class em um tipo Enum avalia ao nome do tipo incluindo qualquer namespace, exatamente o mesmo que um objeto. A constante mágica ::class em uma instância de Caso também avalia para o tipo Enum, pois ele é uma instância daquele tipo.

Adicionalmente, casos não podem ser instanciados diretamente com new, nem com ReflectionClass::newInstanceWithoutConstructor() em reflexão. Ambos resultarão em um erro.

<?php

$trevos = new Naipe();
// Error: Cannot instantiate enum Naipe

$ferraduras = (new ReflectionClass(Naipe::class))->newInstanceWithoutConstructor()
// Error: Cannot instantiate enum Naipe
?>


Listagem de valores

Tanto Pure Enums quanto Backed Enums implementam uma interface interna chamada UnitEnum. UnitEnum inclui um método estático cases(). cases() retorna um array embalado com todos os Casos definidos na ordem de declaração.

<?php

Naipe::cases();
// Produz: [Naipe::Copas, Naipe::Ouros, Naipe::Paus, Naipe::Espadas]
?>

Definir manualmente um método cases() em uma Enum resultará em um erro fatal.


Serialização

As enumerações são serializadas de maneira diferente dos objetos. Especificamente, elas têm um novo código de serialização, "E", que especifica o nome do caso enum. A rotina de desserialização pode então usar isso para definir uma variável para o valor singleton existente. Isso garante que:

<?php

Naipe::Copas === unserialize(serialize(Naipe::Copas));

print serialize(Naipe::Copas);
// E:11:"Naipe:Copas";
?>

Na desserialização, se uma enum e caso não podem ser encontrados para combinar com um valor serializado, um aviso será emitido e false retornado.

Se uma Pure Enum for serializada para JSON, um erro será lançado. Se uma Backed Enum for serializada para JSON, ela será representada apenas por seu valor escalar, no tipo apropriado. O comportamento de ambas pode ser sobrescrito ao implementar JsonSerializable.

Para print_r(), a saída de um caso enum é ligeiramente diferente dos objetos para minimizar confusões.

<?php

enum Foo {
case Bar;
}

enum Baz: int {
case Beep = 5;
}

print_r(Foo::Bar);
print_r(Baz::Beep);

/* Produz

Foo Enum (
[name] => Bar
)
Baz Enum:int {
[name] => Beep
[value] => 5
}
*/
?>


Porque enums não são extensíveis

Classes possuem contratos em seus métodos:

<?php

class A {}
class B extends A {}

function foo(A $a) {}

function bar(B $b) {
foo($b);
}
?>

Esse código é correto para tipos, pois B segue o contrato de A, e através da co e contra variância, quaisquer expectativas a respeito dos métodos será atendida.

Enums possuem contratos em seus itens, não em seus métodos:

<?php

enum ErrorCode {
case SOMETHING_BROKE;
}

function quux(ErrorCode $errorCode)
{
// Nesse primeiro momento, esse código prevê todos os casos
match ($errorCode) {
ErrorCode::SOMETHING_BROKE => true,
}
}

?>

A instrução match na função quux pode ser analisada estaticamente para verificar se cobre todos os casos possíveis em ErrorCode.

Mas imagine que seja possível estender enums, assim:

<?php

// Apenas para o exemplo onde enums não são finais.
// Isto *não* funciona no PHP.
enum MoreErrorCode extends ErrorCode {
case PEBKAC;
}

function fot(MoreErrorCode $errorCode) {
quux($errorCode);
}

fot(MoreErrorCode::PEBKAC);

?>

Em condições normais de herança, uma classe que estende outro passará na checagem de tipos.

O problema ocorreria na instrução match da função quux() que agora não cobre todos os casos. Porque a função não prevê o item MoreErrorCode::PEBKAC o match irá falhar com uma exceção.

Por conta disso, enums são finais e não podem ser estendidos.


Exemplos

Exemplo #1 Valores limitados básicos

<?php

enum Ordem
{
case Asc;
case Desc;
}

function consulta($campos, $filtros, Ordem $ordem = Ordem::Asc)
{
/* ... */
}
?>

A função consulta() agora pode prosseguir segura, sabendo que a $ordem tem garantia de ser Ordem::Asc ou Ordem::Desc. Qualquer outro valor resultaria em um TypeError, então nenhuma verificação ou teste de erro é necessária.

Exemplo #2 Valores exclusivos avançados

<?php

enum EstadoDeUsuario: string
{
case Pendente = 'P';
case Ativo = 'A';
case Suspenso = 'S';
case CanceladoPeloUsuario = 'C';

public function rotulo(): string
{
return match($this) {
static::Pendente => 'Pendente',
static::Ativo => 'Ativo',
static::Suspenso => 'Suspenso',
static::CanceladoPeloUsuario => 'Cancelado pelo usuário',
};
}
}
?>

Neste exemplo, o estado de um usuário pode ser, exclusivamente, EstadoDeUsuario::Pendente, EstadoDeUsuario::Ativo, EstadoDeUsuario::Suspenso, ou EstadoDeUsuario::CanceladoPeloUsuario. Uma função pode tipar um parâmetro contra EstadoDeUsuario e aceitar então apenas aqueles quatro valores, ponto final.

Todos os quatros valores possuem um método rotulo(), que retorna uma string legível para humanos. Essa string é independente da string equivalente escalar do "nome de máquina", que pode ser usado em, por exemplo, um campo de banco de dados um uma caixa de seleção HTML.

<?php

foreach (EstadoDeUsuario::cases() as $caso) {
printf('<option value="%s">%s</option>\n', $caso->value, $caso->label());
}
?>


Erros

Índice

  • Básico
  • Erros no PHP 7

Introdução

Infelizmente, não importa quão cuidadosos somos escrevendo nossos códigos, erros são fatos da vida. O PHP reportará erros, advertências e avisos para muitos problemas comuns de codificação e problemas em tempo de execução, e saber como detectar e lidar com estes erros farão o processo de depuração muito mais fácil.


Básico

O PHP retornará erros em resposta a inúmeras condições de erros internos. Pode ser utilizado para sinalizar inúmeras condições diferentes, impress e/ou logado, se necessário.

Cada erro que o PHP gera inclui um tipo. A lista destes tipos de erros está disponível, junto a uma breve descrição de seu comportamento e como podem ser causados.

Manuseando erros com o PHP

Se nenhum manipulador de erro for definido, o PHP tratará todos os que ocorrerem de acordo com sua configuração. Quais erros são reportados, e quais são ignorados é controlado pela diretiva error_reporting no php.ini, ou em tempo de execução, chamando a função error_reporting(). É altamente recomendável que esta diretiva de configuração seja definida, entretanto, alguns erros podem ocorrer antes da execução do script começar.

Em um ambiente de desenvolvimento, deve-se sempre definir a diretiva error_reporting para E_ALL, para estar ciente, e corrigir, problemas informados pelo PHP. Em produção, deve-se definir para um nível menos verboso, como E_ALL & ~E_NOTICE & ~E_DEPRECATED, mas em muitos casos E_ALL também é apropriado, pois pode antecipar avisos de problemas em potencial.

O que o PHP faz com estes erros depende de mais duas diretivas no php.ini. A diretiva display_errors controla se o erro será mostrado como parte da saída do script. Esta diretiva deve sempre estar desativada no ambiente de produção, já que pode incluir informações confidenciais como senhas do banco de dados, mas é útil habilitá-la em desenvolvimento, já que garante o reporte imediato de problemas.

Além de mostrar os erros, o PHP pode logar erros quando a diretiva log_errors estiver habilitada. Isso logará qualquer erro para um arquivo ou para o syslog definido com a diretiva error_log. Pode ser extremamente útil no ambiente de produção, já que pode-se logar os erros que ocorrerem e então gerar relatórios baseados nestes erros.

Manipuladores de erros personalizados

Se o manipulador de erros padrão do PHP for inadequado, pode-se manipular diversos tipos de erro com manipuladores de erros próprios ao instalá-los com a função set_error_handler(). Embora alguns tipos de erros não possam ser manipulados desta maneira, aqueles que puderem, serão manipulados da forma que o script decidir: por exemplo, pode ser utilizado para exibir uma página de erro customizada ao usuário e reportar mais precisamente que por log, como enviando um e-mail.


Erros no PHP 7

O PHP 7 modificou como a maioria dos erros são reportados pelo PHP. Em vez de reportá-los através do mecanismo tradicional de reporte de erros utilizado pelo PHP 5, a maioria dos erros, agora são reportados lançando exceções Error

Assim como exceções normais, as exceções Error serão elevadas até alcançarem o primeiro bloco catch correspondente. Se não existir nenhum bloco correspondente, qualquer manipulador de exceção padrão instalado com a função set_exception_handler() será chamado, e se não existir nenhum manipulador padrão de exceção, a exceção será convertida em um erro fatal e tratada como um erro tradicional.

Já que a hierarquia de Error não herda de Exception, códigos que utilizam blocos catch (Exception $e) { ... } para manipular exceções que não foram capturadas no PHP 5, descobrirão que estes Errors não são capturados por estes blocos. Um bloco catch (Error $e) { ... }, ou um manipulador definido com a função set_exception_handler() será necessário.

Hierarquia Error

  • Throwable
    • Error
      • ArithmeticError
        • DivisionByZeroError
      • AssertionError
      • CompileError
        • ParseError
      • TypeError
        • ArgumentCountError
      • ValueError
      • UnhandledMatchError
      • FiberError
    • Exception
      • ...


Exceções

Índice

  • Estendendo exceções

O PHP possui um modelo de exceções similar ao de outras linguagens de programação. Uma exceção pode ser lançada (throw) e capturada (catch). Código pode ser envolvido por um bloco try para facilitar a captura de exceções potenciais. Cada bloco try precisa ter ao menos um bloco catch ou finally correspondente.

Se uma exceção é lançada e o escopo atual não possui nenhum block catch, a exceção irá "desempilhar" o call stack pelas funções chamadoras até encontrar um bloco catch compatível. Todos os blocks finally encontrados pelo caminho serão executados. Se a pilha é esvaziada até o escopo global sem encontrar um block catch compatível, o programa irá terminar com um erro fatal a não ser que um manipulador global de exceções tenha sido configurado.

O objeto lançado precisa ser uma instanceof Throwable. Tentar lançar um objeto sem essa ascendência resultará em um erro fatal.

A partir doPHP 8.0.0, a palavra chave throw é uma expressão e pode ser utilizada em qualquer contexto de expressão. Em versões anteriores era considerado uma instrução e portanto precisava constar em sua própria linha.

catch

Um bloco catch define como o código responde a uma exceção lançada. Um bloco catch define um ou mais tipos de exceções ou erros que ele pode processar, e opcionalmente uma variável para receber a exceção lançada. (A variável era requerida anteriormente ao PHP 8.0.0.) O primeiro bloco catch que uma exceção ou erro lançados encontram que seja compatível com o tipo objeto lançado irá processar esse objeto.

Múltiplos blocos catch podem ser utilizados para capturar exceções diferentes. A execução normal (quando nenhuma exceção é lançada dentro de um try) irão continuar a execução após o último catch definido em sequência. Exceções podem ser lançadas ou relançadas (throw) dentro um bloco catch. Caso contrário, a execução irá continuar após o blococatch que foi acionado.

Quando uma exceção é lançada o código seguinte não é executado, e o PHP tentará encontrar o primeiro bloco catch coincidente. Se uma exceção não for capturada, um erro PHP fatal será lançado com a mensagem "Uncaught Exception ..." na ausência de uma função definida com set_exception_handler().

A partir do PHP 7.1 um bloco catch pode especificar múltiplas exceções usando o caractere pipe (|). Isto é útil quando diferentes exceções de diferentes hierarquias de classes são tratadas da mesma forma.

A partir do PHP 8.0.0, o nome de variável que captura a exceção é opcional. Se não especificada, o bloco catch compatível ainda executará, mas não terá acesso ao objeto lançado.

finally

Um bloco finally pode ser especificado após ou no lugar de blocos catch. Códigos dentro de finally sempre serão executados depois do try ou catch, independente se houve o lançamento de uma exceção, e antes que a execução normal continue.

Uma interação notável ocorre entre um bloco finally e a instrução return. Se uma instrução return é encontrada dentro um bloco try ou catch, o bloco finally ainda assim será executado. Além disso a instrução return é avaliada no ponto que é encontrada, mas o resultado só será retornado após o bloco finally ser executado. Se o bloco finally também tiver uma instrução return, o valor da instrução de finally que será retornado.

Manipulador de exceções global

Se uma exceção alcança o escopo global, ela ainda pode ser capturada por um manipulador global de exceções, opcional. A função set_exception_handler() pode configurar uma função que será chamada no lugar de um bloco catch na aus?ncia de outros blocos. O efeito é essencialmente o mesmo que ter o programa inteiro envelopado dentro de um bloco try-catch e a função informada funcionando como o catch.

Notas

Nota:

Funções internas ao PHP utilizam principalmente aviso de erros. Apenas extensões orientadas a objetos utilizam exceções. No entanto os erros podem ser transformados em exceções com ErrorException. Essa técnica não funciona para erros fatais.

Exemplo #1 Convertendo avisos de erros em exceções

<?php
function exceptions_error_handler($severity, $message, $filename, $lineno) {
throw new ErrorException($message, 0, $severity, $filename, $lineno);
}

set_error_handler('exceptions_error_handler');
?>

Dica

A biblioteca padrão do PHP (SPL) fornece várias exceções nativas.

Exemplos

Exemplo #2 Lançando uma exceção

<?php
function inverse($x) {
if (!$x) {
throw new Exception('Divisão por zero.');
}
return 1/$x;
}

try {
echo inverse(5) . "\n";
echo inverse(0) . "\n";
} catch (Exception $e) {
echo 'Exceção capturada: ', $e->getMessage(), "\n";
}

// Execução continua
echo "Olá mundo\n";
?>

O exemplo acima produzirá:

0.2
Exceção capturada: Divisão por zero.
Olá mundo

Exemplo #3 Manipulação de exceções com bloco finally

<?php
function inverse($x) {
if (!$x) {
throw new Exception('Divisão por zero.');
}
return 1/$x;
}

try {
echo inverse(5) . "\n";
} catch (Exception $e) {
echo 'Exceção capturada: ', $e->getMessage(), "\n";
} finally {
echo "Primeiro finaly.\n";
}

try {
echo inverse(0) . "\n";
} catch (Exception $e) {
echo 'Exceção capturada: ', $e->getMessage(), "\n";
} finally {
echo "Segundo finally.\n";
}

// Execução continua
echo "Olá mundo\n";
?>

O exemplo acima produzirá:

0.2
Primeiro finally.
Exceção capturada: Divisão por zero.
Segundo finally.
Olá mundo

Exemplo #4 Interação entre blocos finally e return

<?php

function test() {
try {
throw new Exception('foo');
} catch (Exception $e) {
return 'catch';
} finally {
return 'finally';
}
}

echo test();
?>

O exemplo acima produzirá:

finally

Exemplo #5 Exceções alinhadas

<?php

class MyException extends Exception { }

class Test {
public function testing() {
try {
try {
throw new MyException('foo!');
} catch (MyException $e) {
// rethrow it
throw $e;
}
} catch (Exception $e) {
var_dump($e->getMessage());
}
}
}

$foo = new Test;
$foo->testing();

?>

O exemplo acima produzirá:

string(4) "foo!"

Exemplo #6 Manipulação de múltiplas exceções no mesmo bloco catch

<?php

class MyException extends Exception { }

class MyOtherException extends Exception { }

class Test {
public function testing() {
try {
throw new MyException();
} catch (MyException | MyOtherException $e) {
var_dump(get_class($e));
}
}
}

$foo = new Test;
$foo->testing();

?>

O exemplo acima produzirá:

string(11) "MyException"

Exemplo #7 Omissão da variável de captura de exceções

Permitido a partir do PHP 8.0.0.

<?php

class SpecificException extends Exception {}

function test() {
throw new SpecificException('Oopsie');
}

try {
test();
} catch (SpecificException) {
print "Uma exceção SpecificException foi lançada, mas os detalhes não importam.";
}
?>

Exemplo #8 Throw as an expression

Only permitted in PHP 8.0.0 and later.

<?php

function test() {
do_something_risky() or throw new Exception('It did not work');
}

try {
test();
} catch (Exception $e) {
print $e->getMessage();
}
?>


Estendendo exceções

Uma classe de exceção definida pelo usuário pode ser criada herdando a classe Exception. Os membros e propriedades abaixo mostram o que é acessível a partir da classe filha que deriva da Exception.

Exemplo #1 A classe nativa Exception

<?php
class Exception implements Throwable
{
protected $message = 'Unknown exception'; // Mensagem da exceção
private $string; // Cache __toString
protected $code = 0; // Código definido pelo usuário
protected $file; // Nome do arquivo onde a exceção originou
protected $line; // Número da linha onde a exceção originou
private $trace; // Backtrace
private $previous; // Exceção anterior (se exceção empilhada)

public function __construct($message = '', $code = 0, Throwable $previous = null);

final private function __clone(); // Inibe a clonagem de exceções

final public function getMessage(); // Mensagem da exceção
final public function getCode(); // Código definido pelo usuário
final public function getFile(); // Nome do arquivo onde a exceção originou
final public function getLine(); // Número da linha onde a exceção originou
final public function getTrace(); // Um array do backtrace()
final public function getPrevious(); // Exceção anterior
final public function getTraceAsString(); // Backtrace formatado como string

// Pode ser sobrescrito
public function __toString(); // String formatada da exceção
}
?>

Se uma classe estender a classe Exception e redefinir o constructor, então é altamente recomendável que também seja chamado o parent::__construct() para garantir que todos os dados estejam corretamente informados. O método __toString() pode ser sobrescrito para fornecer uma representação customizada do objeto quando utilizado como string.

Nota:

Exceções não podem ser clonadas. Tentativas de clonar um Exception resultarão em erros E_ERROR fatais.

Exemplo #2 Estendendo a classe Exception

<?php
/**
* Define uma classe de exceção
*/
class MyException extends Exception
{
// Redefine a exceção de forma que a mensagem não seja opcional
public function __construct($message, $code = 0, Throwable $previous = null) {
// código

// garante que tudo está corretamente inicializado
parent::__construct($message, $code, $previous);
}

// personaliza a apresentação do objeto como string
public function __toString() {
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
}

public function customFunction() {
echo "Uma função específica desse tipo de exceção\n";
}
}

/**
* Cria uma classe para testar a exceção
*/
class TestException
{
public $var;

const THROW_NONE = 0;
const THROW_CUSTOM = 1;
const THROW_DEFAULT = 2;

function __construct($avalue = self::THROW_NONE) {

switch ($avalue) {
case self::THROW_CUSTOM:
// lança a exeção customizada
throw new MyException('1 é um parâmetro inválido', 5);
break;

case self::THROW_DEFAULT:
// throw default one.
throw new Exception('2 não é um parâmetro permitido', 6);
break;

default:
// Sem exceção, o objeto será criado
$this->var = $avalue;
break;
}
}
}

// Exemplo 1
try {
$o = new TestException(TestException::THROW_CUSTOM);
} catch (MyException $e) { // Entrará aqui ...
echo "Pegou MyException\n", $e;
$e->customFunction();
} catch (Exception $e) { // ... mas não aqui.
echo "Pegou Exception padrão\n", $e;
}

// Execução continua
var_dump($o); // Null
echo "\n\n";

// Examplo 2
try {
$o = new TestException(TestException::THROW_DEFAULT);
} catch (MyException $e) { // Não entrará aqui ...
echo "Pegou MyException\n", $e;
$e->customFunction();
} catch (Exception $e) { // ... porque entrará aqui.
echo "Pegou Exception padrão\n", $e;
}

// Execução continua
var_dump($o); // Null
echo "\n\n";

// Examplo 3
try {
$o = new TestException(TestException::THROW_CUSTOM);
} catch (Exception $e) { // Entrará aqui
echo "Pegou exceção padrão\n", $e;
}

// Execução continua
var_dump($o); // Null
echo "\n\n";

// Examplo 4
try {
$o = new TestException();
} catch (Exception $e) { // Não entrará, sem exceção
echo "Pegou Exception padrão\n", $e;
}

// Execução continua
var_dump($o); // TestException
echo "\n\n";
?>


Fibers

Visão geral de Fibers

(PHP 8 >= 8.1.0)

Fibers representam funções interrompíveis de pilha completa. Fibers podem ser suspensas de qualquer lugar na pilha de chamadas, pausando a execução dentro de Fiber até que Fiber seja retomada posteriormente.

Fibers pausam toda a pilha de execução, portanto, o chamador direto da função não precisa alterar a forma como invoca a função.

A execução pode ser interrompida em qualquer lugar na pilha de chamadas usando Fiber::suspend() (ou seja, a chamada para Fiber::suspend() pode estar em uma função profundamente aninhada ou nem mesmo existir).

Ao contrário dos Generators, cada Fiber tem sua própria pilha de chamadas, permitindo que sejam pausadas em chamadas de função profundamente aninhadas. Uma função que declara um ponto de interrupção (isto é, chamando Fiber::suspend()) não precisa alterar seu tipo de retorno, ao contrário de uma função que usa yield, que deve retornar uma instância de Generator.

Fibers podem ser suspensas em qualquer chamada de função, incluindo aquelas chamadas de dentro da VM PHP, como funções fornecidas para array_map() ou métodos chamados por foreach em um objeto Iterator.

Uma vez suspensa, a execução de Fiber pode ser retomada com qualquer valor usando Fiber::resume() ou lançando uma exceção na Fiber usando Fiber::throw(). O valor é retornado (ou exceção lançada) de Fiber::suspend().

Nota: Devido às limitações atuais, não é possível trocar Fibers no destruidor de um objeto.

Exemplo #1 Uso básico

<?php
$fiber = new Fiber(function (): void {
$value = Fiber::suspend('fiber');
echo "Value used to resume fiber: ", $value, PHP_EOL;
});

$value = $fiber->start();

echo "Value from fiber suspending: ", $value, PHP_EOL;

$fiber->resume('test');
?>

O exemplo acima produzirá:

Value from fiber suspending: fiber
Value used to resume fiber: test


Generators

Índice

  • Generators, visão geral
  • Sintaxe do Generator
  • Comparando generators com objetos Iterator


Generators, visão geral

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Os generators fornecem uma maneira fácil de implementar simples iterators sem a sobrecarga ou complexidade de criar uma classe que implemente a interface Iterator.

Um generator permite que você escreva código que use foreach para iterar em um conjunto de dados sem precisar construir um array em memória, o que pode fazer com que o limite de memória seja ultrapassado ou exigir uma quantidade considerável de tempo de processamento para a geração. Em vez disso, você pode escrever uma função generator, que é o mesmo que uma função normal, exceto que ao invés do retorno ocorrer única vez, um gerador pode executar yield quantas vezes forem necessárias para permitir que os valores sejam iterados.

Um exemplo simples para isso é reimplementar a função range(). A função range() padrão tem que gerar um array com cada valor dentro dele e retorná-lo, o que pode resultar em grandes arrays: por exemplo, chamando range(0, 1000000) irá resultar numa utilização de memória de mais de 100 MB.

Como alternativa, nós podemos implementar um generator xrange(), que só precisará de memória suficiente para criar um objeto Iterator e acompanhar o estado atual do generator internamente, que utiliza menos de 1 kilobyte de memória.

Exemplo #1 Implementando range() como um generator

<?php
function xrange($start, $limit, $step = 1) {
if ($start <= $limit) {
if ($step <= 0) {
throw new LogicException('Step precisa ser positivo');
}

for ($i = $start; $i <= $limit; $i += $step) {
yield $i;
}
} else {
if ($step >= 0) {
throw new LogicException('Step precisa ser negativo');
}

for ($i = $start; $i >= $limit; $i += $step) {
yield $i;
}
}
}

/*
* Observe abaixo que ambos range() e xrange() tem a mesma
* saída.
*/

echo 'Números ímpares a partir de range(): ';
foreach (range(1, 9, 2) as $number) {
echo "$number ";
}
echo "\n";

echo 'Números ímpares a partir de xrange(): ';
foreach (xrange(1, 9, 2) as $number) {
echo "$number ";
}
?>

O exemplo acima produzirá:

Números ímpares a partir de range():  1 3 5 7 9
Números ímpares a partir de xrange(): 1 3 5 7 9

Generator objects

Quando uma função geradora é chamada, um objeto interno de tipo Generator é retornado. Este objeto implementa a interface Iterator que um objeto somente leitura de uma direção implementaria, provendo também métodos que podem ser utilizados para manipular o estado do gerador, incluindo enviar e retornar valores.


Sintaxe do Generator

Uma função generator se parece com uma função normal, exceto que ao invés de retornar um valor, um generator pode executar yield quantas vezes forem necessárias. Qualquer função que contenha yield é uma função generator.

Quando uma função generator é chamada, ela retorna um objeto que pode ser iterado. Quando você itera através desse objeto (por exemplo, por um loop foreach), o PHP irá chamar os métodos de iteração do objeto toda vez que precisar de um valor, em seguida salva o estado do generator quando o valor é produzido, de modo que possa ser retomado quando o próximo valor for necessário.

Uma vez que não há mais valores a serem produzidos, a generator pode simplesmente sair, e a chamada de código continua como se um array tivesse executado os valores.

Nota:

Um generator pode retornar valores, que podem ser recuperados usando Generator::getReturn().

A palavra chave yield

O coração de uma função generator é a palavra chave yield. Na sua forma mais simples, uma declaração yield se parece muito com um retorno, exceto que em vez de parar a execução da função e retornar, o yield fornece um valor para o código de loop sobre o generator e pausa a execução da função do generator.

Exemplo #1 Um exemplo simples de valores yield

<?php
function gen_one_to_three() {
for ($i = 1; $i <= 3; $i++) {
// Observe que $i é preservado entre chamadas.
yield $i;
}
}

$generator = gen_one_to_three();
foreach ($generator as $value) {
echo "$value\n";
}
?>

O exemplo acima produzirá:

1
2
3

Nota:

Internamente, chaves inteiras sequenciais serão pareadas com os valores entregues, assim como um array não associativo.

Produzindo valores com chaves

O PHP suporta arrays associativos e generators não são diferentes. Além do produzir valores simples, como mostrado acima, você também pode produzir uma chave ao mesmo tempo.

A sintaxe para preparar um par de chave/valor é muito semelhante ao utilizado para definir um array associativo, como mostrado abaixo.

Exemplo #2 Produzindo um par de chave/valor

<?php
/*
* A saída são valores separados por ponto e vírgula, com o primeiro
* valor sendo usado como um id ou chave.
*/

$input = <<<'EOF'
1;PHP;Likes dollar signs
2;Python;Likes whitespace
3;Ruby;Likes blocks
EOF;

function input_parser($input) {
foreach (explode("\n", $input) as $line) {
$fields = explode(';', $line);
$id = array_shift($fields);

yield $id => $fields;
}
}

foreach (input_parser($input) as $id => $fields) {
echo "$id:\n";
echo " $fields[0]\n";
echo " $fields[1]\n";
}
?>

O exemplo acima produzirá:

1:
    PHP
    Likes dollar signs
2:
    Python
    Likes whitespace
3:
    Ruby
    Likes blocks

Produzindo valores nulos

O yield pode ser chamado sem um argumento para produzir um valor null com uma chave automática.

Exemplo #3 Produzindo valores nullos

<?php
function gen_three_nulls() {
foreach (range(1, 3) as $i) {
yield;
}
}

var_dump(iterator_to_array(gen_three_nulls()));
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  NULL
  [1]=>
  NULL
  [2]=>
  NULL
}

Produzindo valores por referência

Funções generator são capazes de produzir valores por referência bem como por valor. Isso é feito da mesma forma que retornar referências de funções: incluindo um & no início do nome da função.

Exemplo #4 Produzindo valores por referência

<?php
function &gen_reference() {
$value = 3;

while ($value > 0) {
yield $value;
}
}

/*
* Observe que podemos mudar $number dentro do loop, e
* porque o gerador retorna referências, $value
* dentro de gen_reference() é modificado.
*/
foreach (gen_reference() as &$number) {
echo (--$number).'... ';
}
?>

O exemplo acima produzirá:

2... 1... 0...

Delegação de gerador viayield from

A delegação de gerador permite retornar valores de outro gerador, objeto Traversable ou um array utilizando para isso a instrução yield from. O gerador externo retornará todos os valores do gerador interno, objeto ou array até que o mesmo não seja mais válido, a partir de onde a execução continuará no gerador externo.

Se um gerador é utilizado com yield from, a expressão yield from também retornará qualquer valor retornado pelo gerador interno.

Cuidado

Armazenando em um array (por exemplo, com iterator_to_array())

yield from não reseta as chaves. Ele preserva as chaves retornadas pelo objeto Traversable, ou array. Deste modo alguns valores podem compartilhar uma chave em comum com outro yield ou yield from, o qual, após inserido em um array, irá sobrescrever os valores anteriores com essa chave.

Um caso onde isso importa é a função iterator_to_array() retornando um array com chaves por padrão, levando a resultados possivelmente inesperados. iterator_to_array() possui um segundo parâmetro preserve_keys que pode ser setado como false para coletar todos os valores enquanto ignora as chaves retornadas pelo Generator.

Exemplo #5 yield from com iterator_to_array()

<?php
function inner() {
yield 1; // key 0
yield 2; // key 1
yield 3; // key 2
}
function gen() {
yield 0; // key 0
yield from inner(); // keys 0-2
yield 4; // key 1
}
// Passe false no segundo parâmetro para obter um array [0, 1, 2, 3, 4]
var_dump(iterator_to_array(gen()));
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(4)
  [2]=>
  int(3)
}

Exemplo #6 Uso básico de yield from

<?php
function count_to_ten() {
yield 1;
yield 2;
yield from [3, 4];
yield from new ArrayIterator([5, 6]);
yield from seven_eight();
yield 9;
yield 10;
}

function seven_eight() {
yield 7;
yield from eight();
}

function eight() {
yield 8;
}

foreach (count_to_ten() as $num) {
echo "$num ";
}
?>

O exemplo acima produzirá:

1 2 3 4 5 6 7 8 9 10

Exemplo #7 yield from e valores retornados

<?php
function count_to_ten() {
yield 1;
yield 2;
yield from [3, 4];
yield from new ArrayIterator([5, 6]);
yield from seven_eight();
return yield from nine_ten();
}

function seven_eight() {
yield 7;
yield from eight();
}

function eight() {
yield 8;
}

function nine_ten() {
yield 9;
return 10;
}

$gen = count_to_ten();
foreach ($gen as $num) {
echo "$num ";
}
echo $gen->getReturn();
?>

O exemplo acima produzirá:

1 2 3 4 5 6 7 8 9 10


Comparando generators com objetos Iterator

A principal vantagem dos generators é a sua simplicidade. Muito menos código clichê tem de ser reescrito em comparação com a implementação de uma classe Iterator, e o código geralmente é muito mais legível. Por exemplo, a seguinte função e classe são equivalentes:

<?php
function getLinesFromFile($fileName) {
if (!$fileHandle = fopen($fileName, 'r')) {
return;
}

while (false !== $line = fgets($fileHandle)) {
yield $line;
}

fclose($fileHandle);
}

// ao invéz de:

class LineIterator implements Iterator {
protected $fileHandle;

protected $line;
protected $i;

public function __construct($fileName) {
if (!$this->fileHandle = fopen($fileName, 'r')) {
throw new RuntimeException('Couldn\'t open file "' . $fileName . '"');
}
}

public function rewind() {
fseek($this->fileHandle, 0);
$this->line = fgets($this->fileHandle);
$this->i = 0;
}

public function valid() {
return false !== $this->line;
}

public function current() {
return $this->line;
}

public function key() {
return $this->i;
}

public function next() {
if (false !== $this->line) {
$this->line = fgets($this->fileHandle);
$this->i++;
}
}

public function __destruct() {
fclose($this->fileHandle);
}
}
?>

No entanto essa flexibilidade tem um custo: os generators somente movem-se para frente e não podem ser rebobinados após a iteração ter sido iniciada. Isso também significa que o generator não pode ser iterado múltiplas vezes: o gerador precisará ser reconstruído chamando a função geradora novamente.

Veja Também

  • Iteração de Objetos


Atributos

Índice

  • Visão geral dos atributos
  • Sintaxe de Atributo
  • Lendo Atributos com a API Reflection
  • Declarando Classes de Atributos


Visão geral dos atributos

(PHP 8)

Os atributos oferecem a capacidade de adicionar informações de metadados estruturadas e legíveis por máquina em declarações no código: classes, métodos, funções, parâmetros, propriedades e constantes de classe podem ser o destino de um atributo. Os metadados definidos pelos atributos podem ser inspecionados em tempo de execução usando as APIs Reflection. Os atributos podem, portanto, ser pensados como uma linguagem de configuração incorporada diretamente no código.

Com atributos, a implementação genérica de um recurso e seu uso concreto em uma aplicação podem ser desacoplados. De certa forma, é comparável a interfaces e suas implementações. Mas onde as interfaces e implementações são sobre código, os atributos são sobre a anotação de informações extras e configuração. As interfaces podem ser implementadas por classes, mas os atributos também podem ser declarados em métodos, funções, parâmetros, propriedades e constantes de classe. Como tal, eles são mais flexíveis do que as interfaces.

Um exemplo simples de uso de atributo é converter uma interface que possui métodos opcionais para usar atributos. Vamos assumir uma interface ActionHandler que representa uma operação em uma aplicação, onde algumas implementações de um manipulador de ações requerem configuração e outras não. Em vez de exigir que todas as classes que implementam ActionHandler implementem um método setUp(), um atributo pode ser usado. Um benefício dessa abordagem é que o atributo pode ser usado várias vezes.

Exemplo #1 Implementando métodos opcionais de uma interface com Atributos

<?php
interface ActionHandler
{
public function execute();
}

#[Attribute]
class SetUp {}

class CopyFile implements ActionHandler
{
public string $fileName;
public string $targetDirectory;

#[SetUp]
public function fileExists()
{
if (!file_exists($this->fileName)) {
throw new RuntimeException("Arquivo não existe");
}
}

#[SetUp]
public function targetDirectoryExists()
{
if (!file_exists($this->targetDirectory)) {
mkdir($this->targetDirectory);
} elseif (!is_dir($this->targetDirectory)) {
throw new RuntimeException("Diretório de destino $this->targetDirectory não é um diretório");
}
}

public function execute()
{
copy($this->fileName, $this->targetDirectory . '/' . basename($this->fileName));
}
}

function executeAction(ActionHandler $actionHandler)
{
$reflection = new ReflectionObject($actionHandler);

foreach ($reflection->getMethods() as $method) {
$attributes = $method->getAttributes(SetUp::class);

if (count($attributes) > 0) {
$methodName = $method->getName();

$actionHandler->$methodName();
}
}

$actionHandler->execute();
}

$copyAction = new CopyFile();
$copyAction->fileName = "/tmp/foo.jpg";
$copyAction->targetDirectory = "/home/user";

executeAction($copyAction);


Sintaxe de Atributo

Existem várias partes para a sintaxe de atributos. Primeiro, uma declaração de atributo é sempre incluída com um #[ inicial e um ] final correspondente. Dentro, um ou vários atributos são listados, separados por vírgula. O nome do atributo é um nome não qualificado, qualificado ou totalmente qualificado, conforme descrito em Noções Básicas do Uso de Namespaces. Os argumentos para o atributo são opcionais, mas são colocados entre parênteses (). Os argumentos para atributos só podem ser valores literais ou expressões constantes. Tanto a sintaxe de argumentos posicionais quanto a dos argumentos nomeados podem ser usadas.

Os nomes dos atributos e seus argumentos são resolvidos para uma classe e os argumentos são passados para seu construtor, quando uma instância do atributo é solicitada por meio da API Reflection. Como tal, uma classe deve ser introduzida para cada atributo.

Exemplo #1 Sintaxe de Atributo

<?php
// a.php
namespace MyExample;

use Attribute;

#[Attribute]
class MyAttribute
{
const VALUE = 'value';

private $value;

public function __construct($value = null)
{
$this->value = $value;
}
}

// b.php

namespace Another;

use MyExample\MyAttribute;

#[MyAttribute]
#[\MyExample\MyAttribute]
#[MyAttribute(1234)]
#[MyAttribute(value: 1234)]
#[MyAttribute(MyAttribute::VALUE)]
#[MyAttribute(array("key" => "value"))]
#[MyAttribute(100 + 200)]
class Thing
{
}

#[MyAttribute(1234), MyAttribute(5678)]
class AnotherThing
{
}


Lendo Atributos com a API Reflection

Para acessar atributos de classes, métodos, funções, parâmetros, propriedades e constantes de classe, a API Reflection fornece o método getAttributes() em cada um dos objetos Reflection correspondentes. Este método retorna um array de instâncias de ReflectionAttribute que podem ser consultadas para o nome do atributo, argumentos e para criar uma instância do atributo representado.

Essa separação da representação do atributo refletido da instância real aumenta o controle do programador para lidar com erros relacionados a classes de atributos ausentes, erros de digitação ou argumentos ausentes. Somente após chamar ReflectionAttribute::newInstance(), os objetos da classe de atributo são instanciados e a correspondência correta dos argumentos é validada, não antes.

Exemplo #1 Lendo Atributos Usando a API Reflection

<?php

#[Attribute]
class MyAttribute
{
public $value;

public function __construct($value)
{
$this->value = $value;
}
}

#[MyAttribute(value: 1234)]
class Thing
{
}

function dumpAttributeData($reflection) {
$attributes = $reflection->getAttributes();

foreach ($attributes as $attribute) {
var_dump($attribute->getName());
var_dump($attribute->getArguments());
var_dump($attribute->newInstance());
}
}

dumpAttributeData(new ReflectionClass(Thing::class));
/*
string(11) "MyAttribute"
array(1) {
["value"]=>
int(1234)
}
object(MyAttribute)#3 (1) {
["value"]=>
int(1234)
}
*/

Em vez de iterar todos os atributos na instância de reflexão, apenas aqueles de uma determinada classe de atributo podem ser recuperados passando o nome da classe de atributo pesquisado como argumento.

Exemplo #2 Lendo Atributos Específicos Usando a API Reflection

<?php

function dumpMyAttributeData($reflection) {
$attributes = $reflection->getAttributes(MyAttribute::class);

foreach ($attributes as $attribute) {
var_dump($attribute->getName());
var_dump($attribute->getArguments());
var_dump($attribute->newInstance());
}
}

dumpMyAttributeData(new ReflectionClass(Thing::class));


Declarando Classes de Atributos

Embora não seja estritamente necessário, é recomendável criar uma classe real para cada atributo. No caso mais simples, apenas uma classe vazia é necessária com o atributo #[Attribute] declarado que pode ser importado do namespace global com uma declaração use.

Exemplo #1 Classe de Atributo Simples

<?php

namespace Example;

use Attribute;

#[Attribute]
class MyAttribute
{
}

Para restringir o tipo de declaração ao qual um atributo pode ser atribuído, uma máscara de bits pode ser passada como o primeiro argumento para a declaração #[Attribute].

Exemplo #2 Usando a especificação de destino para restringir onde os atributos podem ser usados

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION)]
class MyAttribute
{
}

Declarar MyAttribute em outro tipo agora lançará uma exceção durante a chamada para ReflectionAttribute::newInstance()

Os seguintes alvos podem ser especificados:

  • Attribute::TARGET_CLASS
  • Attribute::TARGET_FUNCTION
  • Attribute::TARGET_METHOD
  • Attribute::TARGET_PROPERTY
  • Attribute::TARGET_CLASS_CONSTANT
  • Attribute::TARGET_PARAMETER
  • Attribute::TARGET_ALL

Por padrão, um atributo só pode ser usado uma vez por declaração. Se o atributo deve ser repetível nas declarações, ele deve ser especificado como parte da máscara de bits para a declaração #[Attribute].

Exemplo #3 Usando IS_REPEATABLE para permitir o atributo em uma declaração várias vezes

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION | Attribute::IS_REPEATABLE)]
class MyAttribute
{
}


Referências

Índice

  • O que são referências
  • O que as referências fazem
  • O que referências não são
  • Passagem por referência
  • Retornando referências
  • Destruindo referências
  • Demonstrando referências


O que são referências

Referência em PHP significa acessar o mesmo conteúdo de variável através de vários nomes. Isto não é parecido com os ponteiros em C. Por exemplo não é possível efetuar aritmética de ponteiros com referências, já que elas não são endereços de memória. Veja O que referências não são para mais informações. Referências são como uma tabela de apelidos simbólicos. No PHP um nome de variável e o conteúdo de variável são diferentes, de forma um mesmo conteúdo pode ter nomes diferentes. A analogia mais próxima são com arquivos e nomes de arquivos Unix - os nomes de variáveis como nomes de arquivos, enquanto que o conteúdo das variáveis os conteúdos dos arquivos. Referências, assim, são como os hardlinks no sistema de arquivo Unix.


O que as referências fazem

Há três operações básicas ao se utilizar referências: atribuição por referência, passagem por referência, e retorno por referência. Esta seção fará uma introdução dessas operações, com links para leituras posteriores.

Atribuição por referência

Referências no PHP permitem criar duas variáveis que se referem ao mesmo conteúdo. Ou seja, quando você faz:

<?php
$a =& $b;
?>
então aqui $a e $b apontam para o mesmo conteúdo.

Nota:

$a e $b são completamente iguais aqui, mas não porque $a está apontando para $b ou vice versa, mas sim que $a e $b apontam para o mesmo lugar.

Nota:

Se você atribuir, passar ou retornar uma variável indefinida por referência, ela irá ser criada.

Exemplo #1 Usando referência com variáveis indefinidas

<?php
function foo(&$var) { }

foo($a); // $a é "criada" e setada par null

$b = array();
foo($b['b']);
var_dump(array_key_exists('b', $b)); // bool(true)

$c = new stdClass;
foo($c->d);
var_dump(property_exists($c, 'd')); // bool(true)
?>

A mesma sintaxe pode ser utilizada com funções, que retornem referências:

<?php
$foo =& find_var($bar);
?>

Usar essa mesma sintaxe com uma função que não retorna por referência irá gerar um erro, da mesma forma no caso do operador new. Ainda que objetos sejam internamente passados como ponteiros, isso não é o mesmo que uma referência, como explicado em Objetos e Referências.

Aviso

Se você atribuir uma referência para uma variável declarada global dentro da função, a referência irá ser visível somente dentro da função. Você pode evitar isso usando o array $GLOBALS.

Exemplo #2 Referenciando variáveis globais de dentro de funções

<?php
$var1 = "Example variable";
$var2 = "";

function global_references($use_globals)
{
global $var1, $var2;
if (!$use_globals) {
$var2 =& $var1; // visível somente dentro da função
} else {
$GLOBALS["var2"] =& $var1; // visível também no contexto global
}
}

global_references(false);
echo "var2 is set to '$var2'\n"; // var2 is set to ''
global_references(true);
echo "var2 is set to '$var2'\n"; // var2 is set to 'Example variable'
?>
Veja global $var; como atalho para $var =& $GLOBALS['var'];. Assim atribuir outra referência para $var somente modifica a variável de referência local.

Nota:

Se você atribuir um valor para uma variável com referência numa instrução foreach a referência também é modificada.

Exemplo #3 Referências e o comando foreach

<?php
$ref = 0;
$row =& $ref;
foreach (array(1, 2, 3) as $row) {
// faz alguma coisa
}
echo $ref; // 3 - último elemento do array iterado
?>

Ainda que não seja uma atribuição por referência explícita, expressões criadas com o constructo array() também podem se comportar como tais com o prefixo & no elemento de array a ser acrescentado. Exemplo:

<?php
$a = 1;
$b = array(2, 3);
$arr = array(&$a, &$b[0], &$b[1]);
$arr[0]++; $arr[1]++; $arr[2]++;
/* $a == 2, $b == array(3, 4); */
?>

Note que referências dentro de arrays são potencialmente perigosas. Fazer uma atribuição normal (sem referência) com uma referência à direita não transforma a expressão a esquerda numa referência, mas referências dentro de arrays são preservadas nessas atribuições normais. Isso também se aplica a chamadas de função onde arrays são passados por valor. Exemplo:

<?php
/* Atribuição de variáveis escalares */
$a = 1;
$b =& $a;
$c = $b;
$c = 7; //$c não é referência; não modifica $a ou $b

/* Atribuição de variaveis do array */
$arr = array(1);
$a =& $arr[0]; //$a e $arr[0] estão no mesmo conjunto de referências
$arr2 = $arr; //não atribui por referência!
$arr2[0]++;
/* $a == 2, $arr == array(2) */
/* O conteúd de $arr foi modificado mesmo que ele não seja uma referência! */
?>
Em outras palavras, o comportamento de referências em arrays é definido elemento por elemento. O comportamento de referências dos elementos individualmente são dissociados da referência do container array.

Passagem por referência

A segunda coisa que referências fazem é passar variáveis por referência. Isso é feito com a criação de uma variável local em uma função e uma variável no escopo chamador que referenciam o mesmo conteúdo. Assim:

<?php
function foo(&$var)
{
$var++;
}

$a=5;
foo($a);
?>
a variável $a será 6 no final. Isto ocorre porque na função foo a variável $var se referem ao mesmo conteúdo de $a. Para mais informações disso veja a seção de passagem por referência.

Retorno por referência

A terceira coisa que as referências fazem é retorno por referência.


O que referências não são

Como dito anteriormente, referências não são ponteiros. Isso significa que a construção seguinte não funciona como se possa esperar:

<?php
function foo(&$var)
{
$var =& $GLOBALS["baz"];
}
foo($bar);
?>

O que acontece é que $var em foo será ligada com $bar pelo chamador, mas depois será re-ligada com $GLOBALS["baz"]. Não há como ligar $bar no escopo chamador para outra coisa utilizando-se o mecanismo de referência, pois $bar não está disponível na função foo (ela é representada por $var, mas $var somente tem o conteúdo da variável e não a ligação nome-valor na tabela de símbolos do chamador). Você pode utilizar o retorno por referência para retornar referências de variáveis manipuladas por funções.


Passagem por referência

Você pode passar uma variável por referência a uma função de forma que a função possa modificar a variável. A sintaxe é a seguinte:

<?php
function foo(&$var)
{
$var++;
}

$a=5;
foo($a);
// $a é 6 aqui
?>

Nota: Não há o sinal de referência na chamada da função - apenas nas definições de função. As definições de função, sozinhas, são suficientes para passar o argumento por referência.

Os itens seguintes podem ser passados por referência:

  • Variáveis, como foo($a)

  • Referências retornadas de funções, como:

    <?php
    function foo(&$var)
    {
    $var++;
    }
    function &    bar()
    {
    $a = 5;
    return     $a;
    }
    foo(bar());
    ?>
    Veja mais sobre isso em retorno por referência.

Nenhuma outra expressão pode ser passada por referência pois não tem comportamento definido. Os seguintes exemplos de passagem por referência são inválidos:

<?php
function foo(&$var)
{
$var++;
}
function bar() // Repare que falta &
{
$a = 5;
return $a;
}
foo(bar()); // Gera um alerta

foo($a = 5); // Expressão, não uma variável
foo(5); // Gera um erro fatal

class Foobar
{
}

foo(new Foobar()) // Produz um aviso no PHP 7.0.7
// Somente variáveis devem ser passadas por referência
?>


Retornando referências

Retorno por referência é útil quando você precisa utilizar uma função para localizar variáveis cuja referência precisa ser obtida. Não use retorno por referência para aumentar performance, a engine é esperta o bastante para otimizar isto para você. Somente retorne referências quando você tem uma razão técnica para isso! Para retornar referências, use a sintaxe:

<?php
class foo {
public $value = 42;

public function &getValue() {
return $this->value;
}
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue é uma referência a $obj->value, que é 42.
$obj->value = 2;
echo $myValue; // imprime o valor valor de $obj->value, ou seja, 2.
?>
Neste exemplo, a propriedade do objeto retornado pela função getValue precisa ser assimilada, não copiada, como acontecerá se não utilizar a sintaxe de referências.

Nota: Diferentemente da passagem de parâmetros por referência, aqui você precisa utilizar & em ambos os lugares - primeiro para indicar o retorno por referência (e não a cópia), e depois para indicar a ligação da referência (em vez da assimilação convencional) que precisa ser explícita para $myValue.

Nota: Se você tentar retornar uma referência de uma função com a sintaxe: return ($this->value); isto não irá funcionar como você espera, para retornar o resultado de uma expressão, e não uma variável, por referência. Você pode somente retornar variáveis por referência para uma função - nada além.

Para utilizar a referência retornada, você precisa utilizar a atribuição por referência:

<?php
function &collector() {
static $collection = array();
return $collection;
}
$collection = &collector();
$collection[] = 'foo';
?>
Para passar a referência retornada para outra função qual espera uma referência você pode utilizar a seguinte sintaxe:
<?php
function &collector() {
static $collection = array();
return $collection;
}
array_push(collector(), 'foo');
?>

Nota: Note que array_push(&collector(), 'foo'); não funcionará, e retornará um erro fatal.


Destruindo referências

Quando você quebra uma referência, ela apenas pára de fazer o apontamento entre o nome da variável e o conteúdo. Mas isto não significa que o conteúdo da variável será destruído. Por exemplo:

<?php
$a = 1;
$b =& $a;
unset ($a);
?>
não apaga $b, apenas $a.

Novamente, é mais fácil pensar em analogia ao comando UNIX unlink.


Demonstrando referências

Vários construtores sintáticos do PHP são implementados através de mecanismos de referência, assim, tudo o explicado até aqui sobre referências também se aplica a esses construtores. Alguns desses construtores, como a passagem e o retorno de referências foram mencionados acima. Outros construtores que também utilizam referências são:

Referências globais

Quando você declara uma variável como global $var, você está de fato criando um referência para a variável global. Isto significa que isto é o mesmo que:

<?php
$var =& $GLOBALS["var"];
?>

O que significa também que destruir $var não apaga a variável global.


Variáveis pré-definidas

O PHP fornece um grande número de variáveis pré-definidas para todos scripts. As variáveis representam tudo: de variáveis externas à variáveis nativas de ambiente, última mensagem de erro à último cabeçalho recebido.

Índice

  • Superglobais — Variáveis nativas que estão sempre disponíveis em todos escopos
  • $GLOBALS — Referencia todas variáveis disponíveis no escopo global
  • $_SERVER — Informação do servidor e ambiente de execução
  • $_GET — Variáveis HTTP GET
  • $_POST — HTTP POST variables
  • $_FILES — Variáveis de Upload de Arquivos HTTP
  • $_REQUEST — Variáveis de requisição HTTP
  • $_SESSION — Variáveis de sessão
  • $_ENV — Variáveis de ambiente
  • $_COOKIE — Cookies HTTP
  • $php_errormsg — A mensagem de erro anterior
  • $http_response_header — Cabeçalhos de resposta HTTP
  • $argc — O número de argumentos passados para o script
  • $argv — Array de argumentos passados para o script


Variáveis nativas que estão sempre disponíveis em todos escopos

  • « Variáveis pré-definidas
  • $GLOBALS »
  • PHP Manual
  • Variáveis pré-definidas
  • Variáveis nativas que estão sempre disponíveis em todos escopos

Superglobais

Superglobais — Variáveis nativas que estão sempre disponíveis em todos escopos

Descrição

Várias variáveis pré-definidas no PHP são "superglobais", que significa que elas estão disponíveis em todos os escopos para todo o script. Não há necessidade de fazer global $variable; para acessá-lo dentro de funções ou métodos.

Estas variáveis superglobais são:

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

Notas

Nota: Disponibilidade da variável

Por padrão, todas as superglobais estão disponíveis, mas há diretivas que afetam esta disponibilidade. Para mais informação, consulte na documentação sobre variables_order.

Nota: Variável variáveis

Superglobais não podem ser usadas como variável variáveis dentro de função ou métodos de classes.

Veja Também

  • escopo de variável
  • A diretiva variables_order
  • A extensão filter


Referencia todas variáveis disponíveis no escopo global

  • « Superglobais
  • $_SERVER »
  • PHP Manual
  • Variáveis pré-definidas
  • Referencia todas variáveis disponíveis no escopo global

$GLOBALS

(PHP 4, PHP 5, PHP 7, PHP 8)

$GLOBALS — Referencia todas variáveis disponíveis no escopo global

Descrição

Um array associativo contendo referências para todas as variáveis que estão atualmente definidas no escopo global do script. O nome das variáveis são chaves do array.

Exemplos

Exemplo #1 Exemplo da $GLOBALS

<?php
function teste() {
$foo = "variável local";

echo '$foo no escopo global: ' . $GLOBALS["foo"] . "\n";
echo '$foo no escopo atual: ' . $foo . "\n";
}

$foo = "Conteúdo de exemplo";
teste();
?>

O exemplo acima produzirá algo semelhante a:

$foo no escopo global: Conteúdo de exemplo
$foo no escopo atual: variável local

Aviso

A partir do 8.1.0, acesso de escrita a todo o array $GLOBALS não é mais suportado:

Exemplo #2 Escrever em todo o $GLOBALS irá resultar em um erro.

<?php
// Gera um erro em tempo de compilação:
$GLOBALS = [];
$GLOBALS += [];
$GLOBALS =& $x;
$x =& $GLOBALS;
unset($GLOBALS);
array_pop($GLOBALS);
// ...e qualquer outra operação de escrita/leitura-escrita no $GLOBALS
?>

Notas

Nota:

Esta é uma variável 'superglobal' ou variável global automática. Isso significa simplesmente que ela está disponível em todos os escopos de um script. Não há necessidade de usar global $variable; para acessá-la dentro de funções ou métodos.

Nota: Disponibilidade da variável

Diferente de todas as outras superglobais, $GLOBALS tem essencialmente sempre estado disponível no PHP.

Nota:

A partir do PHP 8.1.0, $GLOBALS agora é uma cópia somente leitura da tabela de símbolos globais. Isto é, variáveis globais não podem ser modificadas por meio de suas cópias. Anteriormente, o array $GLOBALS era excluído do comportamento usual por valor dos arrays PHP e variáveis globais podiam ser modificadas por meio de suas copias.

<?php
// Antes do PHP 8.1.0
$a = 1;
$globals = $GLOBALS; // Cópia ostensivamente por valor
$globals['a'] = 2;
var_dump($a); // int(2)
// A partir do PHP 8.1.0
// isto não modifica mais $a. O comportamento anterior violava a semântica por valor.
$globals = $GLOBALS;
$globals['a'] = 1;
// Para restaurar o comportamento anterior, itere sua cópia e atribua cada propriedade de volta ao $GLOBALS.
foreach ($globals as $chave => $valor) {
$GLOBALS[$chave] = $valor;
}
?>


Informação do servidor e ambiente de execução

  • « $GLOBALS
  • $_GET »
  • PHP Manual
  • Variáveis pré-definidas
  • Informação do servidor e ambiente de execução

$_SERVER

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_SERVER — Informação do servidor e ambiente de execução

Descrição

$_SERVER é um array contendo informação como headers, caminhos, e outras informações do script. As informações nesse array são criadas pelo servidor web específico, e portanto não há garantias que sempre existirá as mesmas informações, podendo algumas serem omitidas ou adicionadas em relação a lista a seguir. Entretanto, a maioria dessas variáveis são documentadas na » especificação CGI/1.1, e estão normalmente definidas.

Nota: Quando rodando o PHP na linha de comando a maioria dessas informações não estarão disponíveis ou não terão qualquer sentido.

Além dos valores listados a seguir, o PHP irá criar itens adicionais com valores dos headers de requisição. Esses itens serão prefixados com HTTP_ seguido do nome do header, capitalizados e com underlines ao invés de hifens. Por exemplo, o header Accept-Language estará disponível como $_SERVER['HTTP_ACCEPT_LANGUAGE'].

Índices

'PHP_SELF'
O nome do arquivo do script que está executando, relativa à raiz do documento. Por exemplo, $_SERVER['PHP_SELF'] em um script no endereço http://example.com/foo/bar.php seria /foo/bar.php. A constante __FILE__ contém o caminho completo e nome do atual arquivo (possivelmente incluído). Se estiver rodando o PHP em linha de comando, esta variável contém o nome do script.
'argv'
Array de argumentos passado para o script. Quando o script é executado na linha de comando, isto permite um acesso aos parâmetros de linha de comando no estilo do C. Quando chamado via método GET, ele conterá a query string.
'argc'
Contém o número de parâmetros da linha de comando passados para o script (se executando da linha de comando).
'GATEWAY_INTERFACE'
O número de revisão da especificação CGI que o servidor está utilizando, por exemplo: 'CGI/1.1'.
'SERVER_ADDR'
O endereço IP do servidor onde está o script em execução.
'SERVER_NAME'
O nome host do servidor onde o script atual é executado. Se o script está rodando em um host virtual, este será o valor definido para aquele host virtual.

Nota: No Apache 2, você deve definir UseCanonicalName = On e ServerName. Caso contrário, este valor refletirá o nome do servidor fornecido pelo cliente, que pode ser forjado. Não é seguro confiar neste valor em contextos que dependam de segurança.

'SERVER_SOFTWARE'
A string de identificação do servidor, fornecida nos headers quando respondendo a requests.
'SERVER_PROTOCOL'
Nome e número de revisão do protocolo de informação pelo qual a página foi requerida, por exemplo'HTTP/1.0';
'REQUEST_METHOD'
Contém o método de request utilizando para acessar a página. Geralmente ''GET'', ''HEAD'', ''POST'' ou ''PUT''.

Nota:

O script PHP é terminado depois de enviado cabeçalhos (significa depois de produzir alguma saída sem saída do buffer) se o método da requisição for HEAD.

'REQUEST_TIME'
O timestamp do início da requisição.
'REQUEST_TIME_FLOAT'
O timestamp, com precisão em microsegundos, do início da requisição.
'QUERY_STRING'
A query string, se houver, pela qual a página foi acessada.
'DOCUMENT_ROOT'
O diretório raiz sob onde o script atual é executado, como definido no arquivo de configuração do servidor.
'HTTPS'
Define para um valor não vazio se o script foi requisitado através do protocolo HTTPS.
'REMOTE_ADDR'
O endereço IP de onde o usuário está visualizando a página atual.
'REMOTE_HOST'
O nome do host que o usuário utilizou para chamar a página atual. O DNS reverso (lookup) do REMOTE_ADDR do usuário.

Nota: Seu servidor web precisa estar configurado para criar essa variável. Por exemplo, no Apache você precisa colocar um HostnameLookups On dentro do httpd.conf. Veja também gethostbyaddr().

'REMOTE_PORT'
A porta TCP na máquina do usuário utilizada para comunicação com o servidor web.
'REMOTE_USER'
O usuário autenticado
'REDIRECT_REMOTE_USER'
O usuário autenticado utilizado se a requisição foi redirecionada internamente.
'SCRIPT_FILENAME'

O caminho absoluto do script atualmente em execução.

Nota:

Se o script for executado pela CLI com um caminho relativo, como file.php ou ../file.php, $_SERVER['SCRIPT_FILENAME'] irá conter o caminho relativo especificado pelo usuário.

'SERVER_ADMIN'
O valor fornecido pela diretiva SERVER_ADMIN (do Apache) no arquivo de configuração do servidor. Se o script está sendo executado em um host virtual, este será os valores definidos para aquele host virtual.
'SERVER_PORT'
A porta na máquina servidora utilizada pelo servidor web para comunicação. Como default, este valor é ''80''. Utilizando SSL, entretanto, mudará esse valor para a porta de comunicação segura HTTP.

Nota: Utilizando o Apache 2, você deve configurar UseCanonicalName = On, assim como UseCanonicalPhysicalPort = On para obter a porta física (real), caso contrário, este valor pode ser falsificado e pode, ou não, retornar como valor a porta física. Não é seguro confiar neste valor em contextos que dependem de segurança.

'SERVER_SIGNATURE'
String contendo a versão do servidor e nome do host virtual que é adicionado às páginas geradas no servidor, se ativo.
'PATH_TRANSLATED'
O caminho real do script relativo ao sistema de arquivos (não o document root), depois realizou todos os mapeamentos de caminhos (virtual-to-real).

Nota: Usuários do Apache 2 podem usar AcceptPathInfo = On dentro do httpd.conf para definir o PATH_INFO.

'SCRIPT_NAME'
Contém o caminho completo do script atual. Útil para páginas que precisam apontar para elas mesmas (dinamicamente). A constante __FILE__ contém o caminho completo e nome do arquivo (mesmo incluído) atual.
'REQUEST_URI'
O URI fornecido para acessar a página atual, por exemplo, '/index.html'.
'PHP_AUTH_DIGEST'
Quando executando no Apache como módulo fazendo autenticação HTTP esta variável é definida para o cabeçalho 'Authorization' enviado pelo cliente (que você pode então usar para fazer apropriada validação).
'PHP_AUTH_USER'
Quando efetuando autenticação HTTP, esta variável estará definida com o username fornecido pelo usuário.
'PHP_AUTH_PW'
Quando efetuando autenticação HTTP, esta variável estará definida com a senha fornecida pelo usuário.
'AUTH_TYPE'
Quando efetuando autenticação HTTP, esta variável estará definida com o tipo de autenticação utilizado.
'PATH_INFO'
Contém qualquer informação fornecida pelo usuário, se disponível, que levam ao nome do script atual, precedendo a query string. Por exemplo, se o script atual fosse acessado via a URL http://www.example.com/php/path_info.php/some/stuff?foo=bar, então $_SERVER['PATH_INFO']teria como valor /some/stuff
'ORIG_PATH_INFO'
Versão original do 'PATH_INFO' antes de ser processada pelo PHP.

Exemplos

Exemplo #1 Exemplo da $_SERVER

<?php
echo $_SERVER['SERVER_NAME'];
?>

O exemplo acima produzirá algo semelhante a:

www.example.com

Notas

Nota:

Esta é uma variável 'superglobal' ou variável global automática. Isso significa simplesmente que ela está disponível em todos os escopos de um script. Não há necessidade de usar global $variable; para acessá-la dentro de funções ou métodos.

Veja Também

  • A extensão filter


Variáveis HTTP GET

  • « $_SERVER
  • $_POST »
  • PHP Manual
  • Variáveis pré-definidas
  • Variáveis HTTP GET

$_GET

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_GET — Variáveis HTTP GET

Descrição

Um array associativo de variáveis passadas para o script atual via os parâmetros da URL (também conhecidos como query string). Note que o array não é preenchido apenas para solicitações GET, mas também para todas requisições com uma query string.

Exemplos

Exemplo #1 Exemplo da $_GET

<?php
echo 'Olá ' . htmlspecialchars($_GET["nome"]) . '!';
?>

Assumindo que o usuário entrou por http://exemplo.com.br/?nome=Hannes

O exemplo acima produzirá algo semelhante a:

Olá Hannes!

Notas

Nota:

Esta é uma variável 'superglobal' ou variável global automática. Isso significa simplesmente que ela está disponível em todos os escopos de um script. Não há necessidade de usar global $variable; para acessá-la dentro de funções ou métodos.

Nota:

Os valores da variável GET são passados pela função urldecode().

Veja Também

  • Manuseamento de variáveis externas
  • A extensão filter


HTTP POST variables

  • « $_GET
  • $_FILES »
  • PHP Manual
  • Variáveis pré-definidas
  • HTTP POST variables

$_POST

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_POST — HTTP POST variables

Descrição

Um array associativo de variáveis passados para o script atual via método HTTP POST quando utilizado application/x-www-form-urlencoded ou multipart/form-data como valor do cabeçalho HTTP Content-Type na requisição.

Exemplos

Exemplo #1 Exemplo da $_POST

<?php
echo 'Hello ' . htmlspecialchars($_POST["name"]) . '!';
?>

Assumindo que o usuário tenha postado name=Hannes

O exemplo acima produzirá algo semelhante a:

Hello Hannes!

Notas

Nota:

Esta é uma variável 'superglobal' ou variável global automática. Isso significa simplesmente que ela está disponível em todos os escopos de um script. Não há necessidade de usar global $variable; para acessá-la dentro de funções ou métodos.

Veja Também

  • Manuseando variáveis externas
  • A extensão filter


Variáveis de Upload de Arquivos HTTP

  • « $_POST
  • $_REQUEST »
  • PHP Manual
  • Variáveis pré-definidas
  • Variáveis de Upload de Arquivos HTTP

$_FILES

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_FILES — Variáveis de Upload de Arquivos HTTP

Descrição

Um array associativo de items enviado através do script atual pelo método HTTP POST. A estrutura deste array é detalhada na seção Uploads com o método POST.

Notas

Nota:

Esta é uma variável 'superglobal' ou variável global automática. Isso significa simplesmente que ela está disponível em todos os escopos de um script. Não há necessidade de usar global $variable; para acessá-la dentro de funções ou métodos.

Veja Também

  • move_uploaded_file() - Move um arquivo enviado para uma nova localização
  • Manuseamento de upload de arquivos


Variáveis de requisição HTTP

  • « $_FILES
  • $_SESSION »
  • PHP Manual
  • Variáveis pré-definidas
  • Variáveis de requisição HTTP

$_REQUEST

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_REQUEST — Variáveis de requisição HTTP

Descrição

Um array associativo que por padrão contém informações de $_GET, $_POST e $_COOKIE.

Notas

Nota:

Esta é uma variável 'superglobal' ou variável global automática. Isso significa simplesmente que ela está disponível em todos os escopos de um script. Não há necessidade de usar global $variable; para acessá-la dentro de funções ou métodos.

Nota:

Quando executando em linha de comando , esta não incluirá as entradas argv e argc; estas estão presentes no array $_SERVER.

Nota:

As variáveis em $_REQUEST são providas para o script via mecanismos de entradas GET, POST, e COOKIE e portanto poderia ser modificadas por um usuário remoto e não podem ser confiadas. A presença e ordem das variáveis listadas neste array é definido de acordo com o PHP request_order, e variables_order diretivas de configuração

Veja Também

  • Manuseamento de variáveis externas
  • A extensão filter


Variáveis de sessão

  • « $_REQUEST
  • $_ENV »
  • PHP Manual
  • Variáveis pré-definidas
  • Variáveis de sessão

$_SESSION

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_SESSION — Variáveis de sessão

Descrição

Um array associativo contendo variáveis de sessão disponíveis para o atual script. Veja a documentação das funções de Sessão para mais informação em como usar isto.

Notas

Nota:

Esta é uma variável 'superglobal' ou variável global automática. Isso significa simplesmente que ela está disponível em todos os escopos de um script. Não há necessidade de usar global $variable; para acessá-la dentro de funções ou métodos.

Veja Também

  • session_start() - Inicia uma nova sessão ou continua uma sessão existente


Variáveis de ambiente

  • « $_SESSION
  • $_COOKIE »
  • PHP Manual
  • Variáveis pré-definidas
  • Variáveis de ambiente

$_ENV

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_ENV — Variáveis de ambiente

Descrição

Um array associativo de variáveis passadas para o script atual via o método do ambiente.

Estas variáveis são importadas para o PHP do ambiente sob o qual o parser do PHP é executado. Muitas são providas pelo shell sob o qual o PHP é executado e diferentes sistemas são prováveis executar diferentes tipos de shells, uma lista definitiva é impossível. Veja a documentação de shellp para saber a lista de variáveis de ambiente definidas.

Outras variáveis de ambiente incluem variáveis CGI, elas aparecem desconsiderando se o PHP é executado como um módulo do servidor ou processador CGI.

Exemplos

Exemplo #1 Exemplo da $_ENV

<?php
echo 'Meu nome de usuário é ' .$_ENV["USER"] . '!';
?>

Assumindo que "bjori" executou este script

O exemplo acima produzirá algo semelhante a:

Meu nome de usuário é bjori!

Notas

Nota:

Esta é uma variável 'superglobal' ou variável global automática. Isso significa simplesmente que ela está disponível em todos os escopos de um script. Não há necessidade de usar global $variable; para acessá-la dentro de funções ou métodos.

Veja Também

  • getenv() - Gets the value of a single or all environment variables
  • A extensão filter


Cookies HTTP

  • « $_ENV
  • $php_errormsg »
  • PHP Manual
  • Variáveis pré-definidas
  • Cookies HTTP

$_COOKIE

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_COOKIE — Cookies HTTP

Descrição

Um array associativo de variáveis passadas para o atual script via HTTP Cookies.

Exemplos

Exemplo #1 Exemplo da $_COOKIE

<?php
echo 'Hello ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>

Assumindo que o "nome" do cookie tenha sido definido antes

O exemplo acima produzirá algo semelhante a:

Hello Hannes!

Notas

Nota:

Esta é uma variável 'superglobal' ou variável global automática. Isso significa simplesmente que ela está disponível em todos os escopos de um script. Não há necessidade de usar global $variable; para acessá-la dentro de funções ou métodos.

Veja Também

  • setcookie() - Envia um cookie
  • Manuseando variáveis externas
  • A extensão filter


A mensagem de erro anterior

  • « $_COOKIE
  • $http_response_header »
  • PHP Manual
  • Variáveis pré-definidas
  • A mensagem de erro anterior

$php_errormsg

(PHP 4, PHP 5, PHP 7)

$php_errormsg — A mensagem de erro anterior

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 7.2.0. O uso deste recurso é fortemente desencorajado.

Use error_get_last() instead.

Descrição

$php_errormsg é uma variável contendo o texto da última mensagem de erro gerada pelo PHP. Esta variável somente estará disponível dentro do escopo no qual o erro ocorreu, e somente se a opção de configuração track_errors estiver on (o padrão é off).

Aviso

Se um manipulador de erro definido pelo usuário (set_error_handler()) estiver configurado então $php_errormsg somente será definida se a função retornar retornar false

Registro de Alterações

Versão | Descrição
8.0.0 | A diretiva track_errors que criava a variável $php_errormsg foi removida.
7.2.0 | A diretiva track_errors que criava a variável $php_errormsg foi descontinuada.

Exemplos

Exemplo #1 Exemplo da $php_errormsg

<?php
@strpos();
echo $php_errormsg;
?>

O exemplo acima produzirá algo semelhante a:

Wrong parameter count for strpos()

Veja Também

  • error_get_last() - Obtém o último erro ocorrido


Cabeçalhos de resposta HTTP

  • « $php_errormsg
  • $argc »
  • PHP Manual
  • Variáveis pré-definidas
  • Cabeçalhos de resposta HTTP

$http_response_header

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

$http_response_header — Cabeçalhos de resposta HTTP

Descrição

O array $http_response_header é similar a função get_headers(). Quando usando o HTTP wrapper, $http_response_header será populada com os cabeçalhos de resposta HTTP. $http_response_header será criada no escopo local.

Exemplos

Exemplo #1 Exemplo da $http_response_header

<?php
function get_contents() {
file_get_contents("http://example.com");
var_dump($http_response_header); // variável é populada no escopo local
}
get_contents();
var_dump($http_response_header); // uma chamada a get_contents() não popula a variável fora do escopo da função
?>

O exemplo acima produzirá algo semelhante a:

array(9) {
  [0]=>
  string(15) "HTTP/1.1 200 OK"
  [1]=>
  string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT"
  [2]=>
  string(29) "Server: Apache/2.2.3 (CentOS)"
  [3]=>
  string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
  [4]=>
  string(27) "ETag: "280100-1b6-80bfd280""
  [5]=>
  string(20) "Accept-Ranges: bytes"
  [6]=>
  string(19) "Content-Length: 438"
  [7]=>
  string(17) "Connection: close"
  [8]=>
  string(38) "Content-Type: text/html; CHARSET=Windows-1252"
}

Warning: Undefined variable $http_response_header
NULL


O número de argumentos passados para o script

  • « $http_response_header
  • $argv »
  • PHP Manual
  • Variáveis pré-definidas
  • O número de argumentos passados para o script

$argc

(PHP 4, PHP 5, PHP 7, PHP 8)

$argc — O número de argumentos passados para o script

Descrição

Contém o número de argumentos passados para o atual script quando executando através da linha de comando.

Nota: O nome do arquivo do script é sempre passado como um argumento para o script, portanto o valor mínimo de $argc é 1.

Nota: Esta variável está sempre disponível quando register_argc_argv está habilitada.

Exemplos

Exemplo #1 Exemplo da $argc

<?php
var_dump($argc);
?>

Quando executando o exemplo com: php script.php arg1 arg2 arg3

O exemplo acima produzirá algo semelhante a:

int(4)

Notas

Nota:

Isto também está disponível como $_SERVER['argc'].

Veja Também

  • getopt() - Obtêm opções da linha de comando


Array de argumentos passados para o script

  • « $argc
  • Exceções pré-definidas »
  • PHP Manual
  • Variáveis pré-definidas
  • Array de argumentos passados para o script

$argv

(PHP 4, PHP 5, PHP 7, PHP 8)

$argv — Array de argumentos passados para o script

Descrição

Contém um array de todos argumentos passados para o script quando executando através da linha de comando.

Nota: O primeiro argumento é sempre o nome do arquivo do script atual, portanto $argv[0] é o nome do script.

Nota: Esta variável está sempre disponível quando register_argc_argv está habilitada.

Exemplos

Exemplo #1 Exemplo da $argv

<?php
var_dump($argv);
?>

Quando executando o exemplo com: php script.php arg1 arg2 arg3

O exemplo acima produzirá algo semelhante a:

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}

Notas

Nota:

Isto também está disponível como $_SERVER['argv'].

Veja Também

  • getopt() - Obtêm opções da linha de comando


Exceções pré-definidas

Índice

  • Exception
  • ErrorException
  • ClosedGeneratorException
  • Error
  • ArgumentCountError
  • ArithmeticError
  • AssertionError
  • DivisionByZeroError
  • CompileError
  • ParseError
  • TypeError
  • ValueError
  • UnhandledMatchError
  • FiberError

Veja também as Exceções da SPL


Exception

(PHP 5, PHP 7, PHP 8)

Introdução

Exception é a classe base para todas as exceções.

Resumo da classe

class Exception implements Throwable {
/* Propriedades */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
public __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public getMessage(): string
final public getPrevious(): ?Throwable
final public getCode(): int
final public getFile(): string
final public getLine(): int
final public getTrace(): array
final public getTraceAsString(): string
public __toString(): string
private __clone(): void
}

Propriedades

message

A mensagem da exceção

code

O código da exceção

file

O nome do arquivo onde a exceção foi criada

line

A linha onde a exceção foi criada

previous

A exceção previamente lançada, se informada

string

O stack trace na forma string

trace

O stack trace na forma de array

Índice

  • Exception::__construct — Construtor da exceção
  • Exception::getMessage — Obtém a mensagem da exceção
  • Exception::getPrevious — Retorna o Throwable anterior
  • Exception::getCode — Obtém o código da exceção
  • Exception::getFile — Obtém o arquivo no qual a exceção foi criada
  • Exception::getLine — Obtém a linha na qual a exceção foi criada
  • Exception::getTrace — Obtém a stack trace
  • Exception::getTraceAsString — Obtém a stack trace como uma string
  • Exception::__toString — Representação em string da exceção
  • Exception::__clone — Clona a exceção


Construtor da exceção

  • « Exception
  • Exception::getMessage »
  • PHP Manual
  • Exception
  • Construtor da exceção

Exception::__construct

(PHP 5, PHP 7, PHP 8)

Exception::__construct — Construtor da exceção

Descrição

public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)

Construtor de Exception.

Parâmetros

message

A mensagem da exceção.

code

O código da exceção.

previous

A exceção anterior, para o encadeamento de exceções.

Nota: Chamar o construtor da classe Exception de uma classe herdada faz ignorar os argumentos padrão, caso as propriedades $code e $message já estiverem configuradas.

Notas

Nota:

A message NÃO é binary safe.


Obtém a mensagem da exceção

  • « Exception::__construct
  • Exception::getPrevious »
  • PHP Manual
  • Exception
  • Obtém a mensagem da exceção

Exception::getMessage

(PHP 5, PHP 7, PHP 8)

Exception::getMessage — Obtém a mensagem da exceção

Descrição

final public Exception::getMessage(): string

Retorna a mensagem da exceção.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a mensagem da exceção como uma string.

Exemplos

Exemplo #1 Exemplo da Exception::getMessage()

<?php
try {
throw new Exception("Alguma mensagem de erro.");
} catch(Exception $e) {
echo $e->getMessage();
}
?>

O exemplo acima produzirá algo semelhante a:

Alguma mensagem de erro.

Veja Também

  • Throwable::getMessage() - Obtém a mensagem


Retorna o Throwable anterior

  • « Exception::getMessage
  • Exception::getCode »
  • PHP Manual
  • Exception
  • Retorna o Throwable anterior

Exception::getPrevious

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Exception::getPrevious — Retorna o Throwable anterior

Descrição

final public Exception::getPrevious(): ?Throwable

Retorna o Throwable anterior (o terceiro valor passado no construtor Exception::__construct()).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a Throwable anterior se disponível, ou senão null.

Exemplos

Exemplo #1 Exception::getPrevious() example

Iterando e imprimindo a pilha de erro.

<?php
class MyCustomException extends Exception {}

function doStuff() {
try {
throw new InvalidArgumentException("Primeiro erro lançado.", 112);
} catch(Exception $e) {
throw new MyCustomException("Segundo erro lançado.", 911, $e);
}
}

try {
doStuff();
} catch(Exception $e) {
do {
printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e));
} while($e = $e->getPrevious());
}
?>

O exemplo acima produzirá algo semelhante a:

/home/bjori/ex.php:8 Segundo erro lançado. (911) [MyCustomException]
/home/bjori/ex.php:6 Primeiro erro lançado. (112) [InvalidArgumentException]

Veja Também

  • Throwable::getPrevious() - Retorna o Throwable anterior


Obtém o código da exceção

  • « Exception::getPrevious
  • Exception::getFile »
  • PHP Manual
  • Exception
  • Obtém o código da exceção

Exception::getCode

(PHP 5, PHP 7, PHP 8)

Exception::getCode — Obtém o código da exceção

Descrição

final public Exception::getCode(): int

Retorna o código da exceção.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o código da Exceção como um int da Exception mas possívelmente outros tipos descendentes de Exception (PDOException, por exemplo, retorna como string).

Exemplos

Exemplo #1 Exemplo da Exception::getCode()

<?php
try {
throw new Exception("Alguma mensagem de erro.", 30);
} catch(Exception $e) {
echo "O código da exceção é: " . $e->getCode();
}
?>

O exemplo acima produzirá algo semelhante a:

O código da exceção é: 30

Veja Também

  • Throwable::getCode() - Obtém o código da exceção


Obtém o arquivo no qual a exceção foi criada

  • « Exception::getCode
  • Exception::getLine »
  • PHP Manual
  • Exception
  • Obtém o arquivo no qual a exceção foi criada

Exception::getFile

(PHP 5, PHP 7, PHP 8)

Exception::getFile — Obtém o arquivo no qual a exceção foi criada

Descrição

final public Exception::getFile(): string

Obtém o nome do arquivo de onde a exceção foi criada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o nome do arquivo no qual a exceção foi criada.

Exemplos

Exemplo #1 Exemplo da Exception::getFile()

<?php
try {
throw new Exception;
} catch(Exception $e) {
echo $e->getFile();
}
?>

O exemplo acima produzirá algo semelhante a:

/home/bjori/tmp/ex.php

Veja Também

  • Throwable::getFile() - Obtém o arquivo no qual o objeto foi criado


Obtém a linha na qual a exceção foi criada

  • « Exception::getFile
  • Exception::getTrace »
  • PHP Manual
  • Exception
  • Obtém a linha na qual a exceção foi criada

Exception::getLine

(PHP 5, PHP 7, PHP 8)

Exception::getLine — Obtém a linha na qual a exceção foi criada

Descrição

final public Exception::getLine(): int

Retorna o número da linha onde a exceção foi disparada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número da linha onde a exceção foi disparada.

Exemplos

Exemplo #1 Exemplo da Exception::getLine()

<?php
try {
throw new Exception("Alguma mensagem de erro");
} catch(Exception $e) {
echo "A exceção foi criada na linha: " . $e->getLine();
}
?>

O exemplo acima produzirá algo semelhante a:

A exceção foi criada na linha: 3

Veja Também

  • Throwable::getLine() - Obtém a linha na qual o objeto foi instanciado


Obtém a stack trace

  • « Exception::getLine
  • Exception::getTraceAsString »
  • PHP Manual
  • Exception
  • Obtém a stack trace

Exception::getTrace

(PHP 5, PHP 7, PHP 8)

Exception::getTrace — Obtém a stack trace

Descrição

final public Exception::getTrace(): array

Retorna a stack trace da exceção.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a stack trace da exceção como um array.

Exemplos

Exemplo #1 Exemplo da Exception::getTrace()

<?php
function test() {
throw new Exception;
}

try {
test();
} catch(Exception $e) {
var_dump($e->getTrace());
}
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(22) "/home/bjori/tmp/ex.php"
    ["line"]=>
    int(7)
    ["function"]=>
    string(4) "test"
    ["args"]=>
    array(0) {
    }
  }
}

Veja Também

  • Throwable::getTrace() - Obtém o rastreamento de pilha


Obtém a stack trace como uma string

  • « Exception::getTrace
  • Exception::__toString »
  • PHP Manual
  • Exception
  • Obtém a stack trace como uma string

Exception::getTraceAsString

(PHP 5, PHP 7, PHP 8)

Exception::getTraceAsString — Obtém a stack trace como uma string

Descrição

final public Exception::getTraceAsString(): string

Retorna a stack trace da exceção como uma string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a stack trace da exceção como uma string.

Exemplos

Exemplo #1 Exemplo da Exception::getTraceAsString()

<?php
function test() {
throw new Exception;
}

try {
test();
} catch(Exception $e) {
echo $e->getTraceAsString();
}
?>

O exemplo acima produzirá algo semelhante a:

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}

Veja Também

  • Throwable::getTraceAsString() - Obtém o rastreamento de pilha como uma string


Representação em string da exceção

  • « Exception::getTraceAsString
  • Exception::__clone »
  • PHP Manual
  • Exception
  • Representação em string da exceção

Exception::__toString

(PHP 5, PHP 7, PHP 8)

Exception::__toString — Representação em string da exceção

Descrição

public Exception::__toString(): string

Retorna a representação string da exceção.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a representação string da exceção.

Exemplos

Exemplo #1 Exemplo da Exception::__toString()

<?php
try {
throw new Exception("Alguma mensagem de erro.");
} catch(Exception $e) {
echo $e;
}
?>

O exemplo acima produzirá algo semelhante a:

exception 'Exception' with message 'Alguma mensagem de erro.' in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}

Veja Também

  • Throwable::__toString() - Obtém uma representação em string do objeto disparado


Clona a exceção

  • « Exception::__toString
  • ErrorException »
  • PHP Manual
  • Exception
  • Clona a exceção

Exception::__clone

(PHP 5, PHP 7, PHP 8)

Exception::__clone — Clona a exceção

Descrição

private Exception::__clone(): void

Exceptions não podem ser clonadas, e isso resultará no lançamento de um Error.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Exceções não são clonáveis.

Registro de Alterações

Versão | Descrição
8.1.0 | Exception::__clone() não é mais final.


ErrorException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Uma exceção Error.

Resumo da classe

class ErrorException extends Exception {
/* Propriedades */
protected int $severity = E_ERROR;
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
public __construct(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
?string $filename = null,
?int $line = null,
?Throwable $previous = null
)
final public getSeverity(): int
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

severity

O nível da exceção

Exemplos

Exemplo #1 Use a função set_error_handler() para transformar mensagens de erro em ErrorException.

<?php
function exception_error_handler(int $errno, string $errstr, string $errfile = null, int $errline) {
if (!(error_reporting() & $errno)) {
// This error code is not included in error_reporting
return;
}
throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler(exception_error_handler(...));
// Antes do PHP 8.1.0 e a introdução de classe chamável, a chamada deveria ser assim:
// set_error_handler(__NAMESPACE__ . "\\exception_error_handler");

/* Trigger exception */
strpos();
?>

O exemplo acima produzirá algo semelhante a:

Fatal error: Uncaught exception 'ErrorException' with message 'strpos() expects at least 2 parameters, 0 given' in /home/bjori/tmp/ex.php:12
Stack trace:
#0 [internal function]: exception_error_handler(2, 'strpos() expect...', '/home/bjori/php...', 12, Array)
#1 /home/bjori/php/cleandocs/test.php(12): strpos()
#2 {main}
  thrown in /home/bjori/tmp/ex.php on line 12

Índice

  • ErrorException::__construct — Constrói a exceção
  • ErrorException::getSeverity — Obtém o nível da exceção


Constrói a exceção

  • « ErrorException
  • ErrorException::getSeverity »
  • PHP Manual
  • ErrorException
  • Constrói a exceção

ErrorException::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ErrorException::__construct — Constrói a exceção

Descrição

public ErrorException::__construct(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
?string $filename = null,
?int $line = null,
?Throwable $previous = null
)

Construtor da Exception.

Parâmetros

message

A mensagem da exceção.

code

O código da exceção.

severity

A severidade da exceção.

Nota:

Como a severidade da seção pode ser qualquer valor int, é desejado que as constantes de erro sejam utilizadas.

filename

O nome do arquivo onde a exceção é disparada.

line

A número da linha onde a exceção é disparada.

previous

A exceção anterior, usada para encadeamento de exceções.

Registro de Alterações

Versão | Descrição
8.0.0 | filename e line agora podem ser null. Anteriormente seus padrão eram __FILE__ e __LINE__, respectivamente.


Obtém o nível da exceção

  • « ErrorException::__construct
  • ClosedGeneratorException »
  • PHP Manual
  • ErrorException
  • Obtém o nível da exceção

ErrorException::getSeverity

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ErrorException::getSeverity — Obtém o nível da exceção

Descrição

final public ErrorException::getSeverity(): int

Retorna o nível da exceção.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o nível da exceção.

Exemplos

Exemplo #1 Exemplo do método ErrorException::getSeverity()

<?php
try {
throw new ErrorException("Exception message", 0, E_USER_ERROR);
} catch(ErrorException $e) {
echo "This exception severity is: " . $e->getSeverity();
var_dump($e->getSeverity() === E_USER_ERROR);
}
?>

O exemplo acima produzirá algo semelhante a:

This exception severity is: 256
bool(true)


A classe ClosedGeneratorException

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

Uma exceção ClosedGeneratorException é lançada ao se tentar obter um valor de um Generator fechado.

Resumo da classe

class ClosedGeneratorException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Error

(PHP 7, PHP 8)

Introdução

Error é a classe base para todas as exceções de erros internos do PHP.

Resumo da classe

class Error implements Throwable {
/* Propriedades */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
public __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public getMessage(): string
final public getPrevious(): ?Throwable
final public getCode(): int
final public getFile(): string
final public getLine(): int
final public getTrace(): array
final public getTraceAsString(): string
public __toString(): string
private __clone(): void
}

Propriedades

message

A mensagem de erro

code

O código do erro

file

O nome do arquivo onde o erro aconteceu

line

A linha onde o erro aconteceu

previous

A exceção anteriormente lançada

string

Uma representação string do stack trace

trace

O stack trace no formato array

Índice

  • Error::__construct — Constrói o objeto error
  • Error::getMessage — Recupera a mensagem de erro
  • Error::getPrevious — Retorna o último Throwable
  • Error::getCode — Recupera o código do erro
  • Error::getFile — Recupera o nome do arquivo onde o erro ocorreu
  • Error::getLine — Recupera a linha onde o erro ocorreu
  • Error::getTrace — Recupera a pilha de rastreio
  • Error::getTraceAsString — Recupera a pilha de rastreio como uma string
  • Error::__toString — Representação em string do erro
  • Error::__clone — Clona o erro


Constrói o objeto error

  • « Error
  • Error::getMessage »
  • PHP Manual
  • Error
  • Constrói o objeto error

Error::__construct

(PHP 7, PHP 8)

Error::__construct — Constrói o objeto error

Descrição

public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)

Constrói um erro.

Parâmetros

message

A mensagem de erro.

code

O código do erro.

previous

O throwable anterior, utilizado para o encadeamento de exceção.

Notas

Nota:

O parâmetro message NÃO é binary safe.


Recupera a mensagem de erro

  • « Error::__construct
  • Error::getPrevious »
  • PHP Manual
  • Error
  • Recupera a mensagem de erro

Error::getMessage

(PHP 7, PHP 8)

Error::getMessage — Recupera a mensagem de erro

Descrição

final public Error::getMessage(): string

Recupera a mensagem de erro.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Recupera a mensagem de erro como uma string.

Exemplos

Exemplo #1 Exemplo do método Error::getMessage()

<?php
try {
throw new Error("Mensagem de erro");
} catch(Error $e) {
echo $e->getMessage();
}
?>

O exemplo acima produzirá algo semelhante a:

Mensagem de erro

Veja Também

  • Throwable::getMessage() - Obtém a mensagem


Retorna o último Throwable

  • « Error::getMessage
  • Error::getCode »
  • PHP Manual
  • Error
  • Retorna o último Throwable

Error::getPrevious

(PHP 7, PHP 8)

Error::getPrevious — Retorna o último Throwable

Descrição

final public Error::getPrevious(): ?Throwable

Retorna Throwable anterior (o terceiro parâmetro do Error::__construct()).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna Throwable anterior, se disponível, ou null.

Exemplos

Exemplo #1 Exemplo do método Error::getPrevious()

Iterando e imprimindo a pilha de erro.

<?php
class MyCustomError extends Error {}

function doStuff() {
try {
throw new InvalidArgumentError("Um erro!", 112);
} catch(Error $e) {
throw new MyCustomError("Algo aconteceu.", 911, $e);
}
}

try {
doStuff();
} catch(Error $e) {
do {
printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e));
} while($e = $e->getPrevious());
}
?>

O exemplo acima produzirá algo semelhante a:

/home/bjori/ex.php:8 Algo aconteceu. (911) [MyCustomError]
/home/bjori/ex.php:6 Um erro! (112) [InvalidArgumentError]

Veja Também

  • Throwable::getPrevious() - Retorna o Throwable anterior


Recupera o código do erro

  • « Error::getPrevious
  • Error::getFile »
  • PHP Manual
  • Error
  • Recupera o código do erro

Error::getCode

(PHP 7, PHP 8)

Error::getCode — Recupera o código do erro

Descrição

final public Error::getCode(): int

Retorna o código do erro.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o código do erro como um int

Exemplos

Exemplo #1 Exemplo do método Error::getCode()

<?php
try {
throw new Error("Mensagem de erro", 30);
} catch(Error $e) {
echo "O código do erro é: " . $e->getCode();
}
?>

O exemplo acima produzirá algo semelhante a:

O código do erro é: 30

Veja Também

  • Throwable::getCode() - Obtém o código da exceção


Recupera o nome do arquivo onde o erro ocorreu

  • « Error::getCode
  • Error::getLine »
  • PHP Manual
  • Error
  • Recupera o nome do arquivo onde o erro ocorreu

Error::getFile

(PHP 7, PHP 8)

Error::getFile — Recupera o nome do arquivo onde o erro ocorreu

Descrição

final public Error::getFile(): string

Recupera o nome do arquivo onde o erro ocorreu.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o nome do arquivo onde o erro ocorreu.

Exemplos

Exemplo #1 Exemplo do método Error::getFile()

<?php
try {
throw new Error;
} catch(Error $e) {
echo $e->getFile();
}
?>

O exemplo acima produzirá algo semelhante a:

/home/bjori/tmp/ex.php

Veja Também

  • Throwable::getFile() - Obtém o arquivo no qual o objeto foi criado


Recupera a linha onde o erro ocorreu

  • « Error::getFile
  • Error::getTrace »
  • PHP Manual
  • Error
  • Recupera a linha onde o erro ocorreu

Error::getLine

(PHP 7, PHP 8)

Error::getLine — Recupera a linha onde o erro ocorreu

Descrição

final public Error::getLine(): int

Recupera o número da linha onde o erro ocorreu.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número da linha onde o erro ocorreu.

Exemplos

Exemplo #1 Exemplo do método Error::getLine()

<?php
try {
throw new Error("Mensagem de erro");
} catch(Error $e) {
echo "O erro foi criado na linha: " . $e->getLine();
}
?>

O exemplo acima produzirá algo semelhante a:

O erro foi criado na linha: 3

Veja Também

  • Throwable::getLine() - Obtém a linha na qual o objeto foi instanciado


Recupera a pilha de rastreio

  • « Error::getLine
  • Error::getTraceAsString »
  • PHP Manual
  • Error
  • Recupera a pilha de rastreio

Error::getTrace

(PHP 7, PHP 8)

Error::getTrace — Recupera a pilha de rastreio

Descrição

final public Error::getTrace(): array

Recupera a pilha de rastreio.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Recupera a pilha de rastreio como um array.

Exemplos

Exemplo #1 Exemplo do método Error::getTrace()

<?php
function test() {
throw new Error;
}

try {
test();
} catch(Error $e) {
var_dump($e->getTrace());
}
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(22) "/home/bjori/tmp/ex.php"
    ["line"]=>
    int(7)
    ["function"]=>
    string(4) "test"
    ["args"]=>
    array(0) {
    }
  }
}

Veja Também

  • Throwable::getTrace() - Obtém o rastreamento de pilha


Recupera a pilha de rastreio como uma string

  • « Error::getTrace
  • Error::__toString »
  • PHP Manual
  • Error
  • Recupera a pilha de rastreio como uma string

Error::getTraceAsString

(PHP 7, PHP 8)

Error::getTraceAsString — Recupera a pilha de rastreio como uma string

Descrição

final public Error::getTraceAsString(): string

Recupera a pilha de rastreio como uma string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Recupera a pilha de rastreio como uma string.

Exemplos

Exemplo #1 Exemplo do método Error::getTraceAsString()

<?php
function test() {
throw new Error;
}

try {
test();
} catch(Error $e) {
echo $e->getTraceAsString();
}
?>

O exemplo acima produzirá algo semelhante a:

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}

Veja Também

  • Throwable::getTraceAsString() - Obtém o rastreamento de pilha como uma string


Representação em string do erro

  • « Error::getTraceAsString
  • Error::__clone »
  • PHP Manual
  • Error
  • Representação em string do erro

Error::__toString

(PHP 7, PHP 8)

Error::__toString — Representação em string do erro

Descrição

public Error::__toString(): string

Retorna a representação em string do erro.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a representação do erro em string.

Exemplos

Exemplo #1 Exemplo do método Error::__toString()

<?php
try {
throw new Error("Mensagem de erro.");
} catch(Error $e) {
echo $e;
}
?>

O exemplo acima produzirá algo semelhante a:

Error: Mensagem de erro. in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}

Veja Também

  • Throwable::__toString() - Obtém uma representação em string do objeto disparado


Clona o erro

  • « Error::__toString
  • ArgumentCountError »
  • PHP Manual
  • Error
  • Clona o erro

Error::__clone

(PHP 7, PHP 8)

Error::__clone — Clona o erro

Descrição

private Error::__clone(): void

Error não pode ser clonada, então o método resulta em um erro fatal.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Erros não podem ser clonados.

Registro de Alterações

Versão | Descrição
8.1.0 | Error::__clone() não é mais final.


ArgumentCountError

(PHP 7 >= PHP 7.1.0, PHP 8)

Introdução

ArgumentCountError é disparado quando parâmetros insuficientes são passados para uma função ou método definidos pelo usuário.

Este erro também é disparado quando argumentos demais são passados para uma função interna não variável.

Resumo da classe

class ArgumentCountError extends TypeError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


ArithmeticError

(PHP 7, PHP 8)

Introdução

ArithmeticError é lançado quando um erro ocorrer ao executar operações matemáticas. Esses erros incluem a tentativa de executar um deslocamento de bits por uma quantidade negativa, e qualquer chamada para a função intdiv() que resultaria num valor fora dos possíveis limites para um tipo int.

Resumo da classe

class ArithmeticError extends Error {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


AssertionError

(PHP 7, PHP 8)

Introdução

AssertionError é lançada quando uma afirmação feita por meio da função assert() falha.

Resumo da classe

class AssertionError extends Error {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


DivisionByZeroError

(PHP 7, PHP 8)

Introdução

DivisionByZeroError é lançada quando uma tentativa de dividir um número por zero é feita.

Resumo da classe

class DivisionByZeroError extends ArithmeticError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


CompileError

(PHP 7 > 7.3.0, PHP 8)

Introdução

CompileError é disparado para alguns erros de compilação, que anteriormente emitiam um erro fatal.

Resumo da classe

class CompileError extends Error {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


ParseError

(PHP 7, PHP 8)

Introdução

ParseError é lançada quando um erro ocorrer na interpretação do código PHP, como quando a função eval() é chamada.

Nota: ParseError extende CompileError a partir do PHP 7.3.0. Anteriormente extendia de Error.

Resumo da classe

class ParseError extends CompileError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


TypeError

(PHP 7, PHP 8)

Introdução

Um TypeError pode ser lançado quando:

  • Um valor sendo informado em uma propriedade de classe que não corresponde com o tipo declarado.
  • O tipo do argumento que é passado para uma função que não coincide com o tipo declarado para parâmetro.
  • Um valor sendo retornado de uma função que não coincide com o tipo declarado da função.

Resumo da classe

class TypeError extends Error {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Registro de Alterações

Versão | Descrição
7.1.0 | Um erro TypeError não é lançado quando um número inválido de argumentos é passaod para uma função nativa, no modo estrito. Lança agora um erro ArgumentCountError.


ValueError

(PHP 8)

Introdução

ValueError é disparado quando o tipo de um argumento está correto mas o seu valor está incorreto. Por exemplo, ao passar um inteiro negativo quando a função espera um positivo, ou ao passar uma string ou array vazio quando a função espera que não seja vazio.

Resumo da classe

class ValueError extends Error {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


UnhandledMatchError

(PHP 8)

Introdução

Um UnhandledMatchError é lançado quando o sujeito passado para uma expressão match não é tratado por nenhum braço da expressão match.

Resumo da classe

class UnhandledMatchError extends Error {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


FiberError

(PHP 8 >= 8.1.0)

Introdução

FiberError é disparada quando uma operação inválida é realizada em uma Fiber.

Resumo da classe

final class FiberError extends Error {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
public __construct()
/* Métodos herdados */
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Índice

  • FiberError::__construct — Construtor para não permitir instanciação direta


Construtor para não permitir instanciação direta

  • « FiberError
  • Interfaces e Classes pré-definidas »
  • PHP Manual
  • FiberError
  • Construtor para não permitir instanciação direta

FiberError::__construct

(PHP 8 >= 8.1.0)

FiberError::__construct — Construtor para não permitir instanciação direta

Descrição

public FiberError::__construct()

Parâmetros

Esta função não possui parâmetros.

Erros/Exceções

Dispara uma exceção Error quando chamada.


Interfaces e Classes pré-definidas

Índice

  • Traversable
  • Iterator
  • IteratorAggregate
  • InternalIterator
  • Throwable
  • ArrayAccess
  • Serializable
  • Closure
  • stdClass
  • Generator
  • Fiber
  • WeakReference
  • WeakMap
  • Stringable
  • UnitEnum
  • BackedEnum
  • SensitiveParameterValue

Veja também as Interfaces SPL e classes reservadas.


A interface Traversable

(PHP 5, PHP 7, PHP 8)

Introdução

Interface para detectar se uma classe é percorrível utilizando o foreach.

Interface básica abstrata que não pode ser implementada sozinha. Ao invés, deve ser implementada as interfaces IteratorAggregate ou Iterator.

Resumo da Interface

interface Traversable {
}

Esta interface não possui métodos, seu único propósito é de servir como interface base para todas as classes percorríveis.

Registro de Alterações

Versão | Descrição
7.4.0 | A interface Traversable agora pode ser implementada em classes abstratas. Classes estendidas precisam implementar Iterator ou IteratorAggregate.

Notas

Nota:

Classes internas (built-in) que implementam essa interface podem ser utilizadas em um construtor de linguagem foreach e não precisam implementar as interfaces IteratorAggregate ou Iterator.

Nota:

Anteriormente ao PHP 7.4.0, esta funcionalidade interna não podia ser implementada em scripts PHP. Ou IteratorAggregate ou Iterator precisavam ser utilizados.


A interface Iterator

(PHP 5, PHP 7, PHP 8)

Introdução

Interface para iteradores externos ou objetos poderem ser iterados por eles mesmos internamente.

Resumo da Interface

interface Iterator extends Traversable {
/* Métodos */
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
}

Iterators predefinidos

O PHP já possui diversos iteradores para muitas das tarefas do dia a dia. Veja iteradores SPL para uma lista.

Exemplos

Exemplo #1 Utilização básica

Este exemplo demonstra em qual ordem os métodos são chamados quando estiver usando um foreach em um iterador.

<?php
class myIterator implements Iterator {
private $position = 0;
private $array = array(
"firstelement",
"secondelement",
"lastelement",
);

public function __construct() {
$this->position = 0;
}

public function rewind(): void {
var_dump(__METHOD__);
$this->position = 0;
}

#[\ReturnTypeWillChange]
public function current() {
var_dump(__METHOD__);
return $this->array[$this->position];
}

#[\ReturnTypeWillChange]
public function key() {
var_dump(__METHOD__);
return $this->position;
}

public function next(): void {
var_dump(__METHOD__);
++$this->position;
}

public function valid(): bool {
var_dump(__METHOD__);
return isset($this->array[$this->position]);
}
}

$it = new myIterator;

foreach($it as $key => $value) {
var_dump($key, $value);
echo "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

string(18) "myIterator::rewind"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(0)
string(12) "firstelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(1)
string(13) "secondelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(2)
string(11) "lastelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"

Veja Também

Veja também a iteração em objetos.

Índice

  • Iterator::current — Retorna o elemento atual
  • Iterator::key — Retorna a chave do elemento atual
  • Iterator::next — Move para o próximo elemento
  • Iterator::rewind — Retreocede o Iterator para o primeiro elemento
  • Iterator::valid — Verifica se a posição atual é válida


Retorna o elemento atual

  • « Iterator
  • Iterator::key »
  • PHP Manual
  • Iterator
  • Retorna o elemento atual

Iterator::current

(PHP 5, PHP 7, PHP 8)

Iterator::current — Retorna o elemento atual

Descrição

public Iterator::current(): mixed

Retorna o elemento atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Pode retornar qualquer tipo.


Retorna a chave do elemento atual

  • « Iterator::current
  • Iterator::next »
  • PHP Manual
  • Iterator
  • Retorna a chave do elemento atual

Iterator::key

(PHP 5, PHP 7, PHP 8)

Iterator::key — Retorna a chave do elemento atual

Descrição

public Iterator::key(): mixed

Retorna a chave do elemento atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorta scalar em caso de sucesso, ou null em caso de falha.

Erros/Exceções

Emite E_NOTICE em caso de falha.


Move para o próximo elemento

  • « Iterator::key
  • Iterator::rewind »
  • PHP Manual
  • Iterator
  • Move para o próximo elemento

Iterator::next

(PHP 5, PHP 7, PHP 8)

Iterator::next — Move para o próximo elemento

Descrição

public Iterator::next(): void

Move a posição atual para o próximo elemento.

Nota:

Este método é chamado após cada loop foreach.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Qualquer valor retornado é ignorado.


Retreocede o Iterator para o primeiro elemento

  • « Iterator::next
  • Iterator::valid »
  • PHP Manual
  • Iterator
  • Retreocede o Iterator para o primeiro elemento

Iterator::rewind

(PHP 5, PHP 7, PHP 8)

Iterator::rewind — Retreocede o Iterator para o primeiro elemento

Descrição

public Iterator::rewind(): void

Retrocede para o primeiro elemento do Iterator.

Nota:

Este é o primeiro método chamado quando se inicia um loop foreach. Ele não será executado depois de looops foreach.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Qualquer valor retornado é ignorado.


Verifica se a posição atual é válida

  • « Iterator::rewind
  • IteratorAggregate »
  • PHP Manual
  • Iterator
  • Verifica se a posição atual é válida

Iterator::valid

(PHP 5, PHP 7, PHP 8)

Iterator::valid — Verifica se a posição atual é válida

Descrição

public Iterator::valid(): bool

Este método é chamado após Iterator::rewind() e Iterator::next() para verificar se a posição atual é válida.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor retornado será convertido para bool e então avaliado. Retorna true em caso de sucesso ou false em caso de falha.


The IteratorAggregate interface

(PHP 5, PHP 7, PHP 8)

Introdução

Interface para criar um iterador externo.

Resumo da Interface

interface IteratorAggregate extends Traversable {
/* Métodos */
public getIterator(): Traversable
}

Exemplos

Exemplo #1 Basic usage

<?php

class myData implements IteratorAggregate
{
public $property1 = "Public property one";
public $property2 = "Public property two";
public $property3 = "Public property three";
public $property4 = "";

public function __construct()
{
$this->property4 = "last property";
}

public function getIterator(): Traversable
{
return new ArrayIterator($this);
}
}

$obj = new myData();

foreach ($obj as $key => $value) {
var_dump($key, $value);
echo "\n";
}

?>

O exemplo acima produzirá algo semelhante a:

string(9) "property1"
string(19) "Public property one"

string(9) "property2"
string(19) "Public property two"

string(9) "property3"
string(21) "Public property three"

string(9) "property4"
string(13) "last property"

Índice

  • IteratorAggregate::getIterator — Recupera um iterator externo


Recupera um iterator externo

  • « IteratorAggregate
  • InternalIterator »
  • PHP Manual
  • IteratorAggregate
  • Recupera um iterator externo

IteratorAggregate::getIterator

(PHP 5, PHP 7, PHP 8)

IteratorAggregate::getIterator — Recupera um iterator externo

Descrição

public IteratorAggregate::getIterator(): Traversable

Retorna um iterator externo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma instância de um objeto que implementa Iterator ou Traversable

Erros/Exceções

Lança uma Exception em caso de falha.


A classe InternalIterator

(PHP 8)

Introdução

Classe para facilitar a implementação de IteratorAggregate para classes internas.

Resumo da classe

final class InternalIterator implements Iterator {
/* Métodos */
private __construct()
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
}

Índice

  • InternalIterator::__construct — Construtor privado para não permitir instanciação direta
  • InternalIterator::current — Retorna o elemento atual
  • InternalIterator::key — Retorna a chave do elemento atual
  • InternalIterator::next — Move para o próximo elemento
  • InternalIterator::rewind — Retreocede o Iterator para o primeiro elemento
  • InternalIterator::valid — Verifica se a posição atual é válida


Construtor privado para não permitir instanciação direta

  • « InternalIterator
  • InternalIterator::current »
  • PHP Manual
  • InternalIterator
  • Construtor privado para não permitir instanciação direta

InternalIterator::__construct

(PHP 8)

InternalIterator::__construct — Construtor privado para não permitir instanciação direta

Descrição

private InternalIterator::__construct()

Parâmetros

Esta função não possui parâmetros.


Retorna o elemento atual

  • « InternalIterator::__construct
  • InternalIterator::key »
  • PHP Manual
  • InternalIterator
  • Retorna o elemento atual

InternalIterator::current

(PHP 8)

InternalIterator::current — Retorna o elemento atual

Descrição

public InternalIterator::current(): mixed

Retorna o elemento atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o elemento atual.


Retorna a chave do elemento atual

  • « InternalIterator::current
  • InternalIterator::next »
  • PHP Manual
  • InternalIterator
  • Retorna a chave do elemento atual

InternalIterator::key

(PHP 8)

InternalIterator::key — Retorna a chave do elemento atual

Descrição

public InternalIterator::key(): mixed

Retorna a chave do elemento atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a chave do elemento atual.


Move para o próximo elemento

  • « InternalIterator::key
  • InternalIterator::rewind »
  • PHP Manual
  • InternalIterator
  • Move para o próximo elemento

InternalIterator::next

(PHP 8)

InternalIterator::next — Move para o próximo elemento

Descrição

public InternalIterator::next(): void

Move a posição atual para o próximo elemento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Retreocede o Iterator para o primeiro elemento

  • « InternalIterator::next
  • InternalIterator::valid »
  • PHP Manual
  • InternalIterator
  • Retreocede o Iterator para o primeiro elemento

InternalIterator::rewind

(PHP 8)

InternalIterator::rewind — Retreocede o Iterator para o primeiro elemento

Descrição

public InternalIterator::rewind(): void

Retrocede para o primeiro elemento do Iterator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Verifica se a posição atual é válida

  • « InternalIterator::rewind
  • Throwable »
  • PHP Manual
  • InternalIterator
  • Verifica se a posição atual é válida

InternalIterator::valid

(PHP 8)

InternalIterator::valid — Verifica se a posição atual é válida

Descrição

public InternalIterator::valid(): bool

Verifica se a posição atual é válida.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna verdadeiro se a posição atual é válida, falso se inválida.


Throwable

(PHP 7, PHP 8)

Introdução

Throwable é a interface base para qualquer objeto lançável usando a declaração throw, incluindo as classes Error e Exception.

Nota:

Classes do PHP não podem implementar a interface Throwable diretamente, e devem, ao invés, estender a classe Exception.

Resumo da Interface

interface Throwable extends Stringable {
/* Métodos */
public getMessage(): string
public getCode(): int
public getFile(): string
public getLine(): int
public getTrace(): array
public getTraceAsString(): string
public getPrevious(): ?Throwable
public __toString(): string
/* Métodos herdados */
public Stringable::__toString(): string
}

Registro de Alterações

Versão | Descrição
8.0.0 | Throwable implementa a interface Stringable.

Índice

  • Throwable::getMessage — Obtém a mensagem
  • Throwable::getCode — Obtém o código da exceção
  • Throwable::getFile — Obtém o arquivo no qual o objeto foi criado
  • Throwable::getLine — Obtém a linha na qual o objeto foi instanciado
  • Throwable::getTrace — Obtém o rastreamento de pilha
  • Throwable::getTraceAsString — Obtém o rastreamento de pilha como uma string
  • Throwable::getPrevious — Retorna o Throwable anterior
  • Throwable::__toString — Obtém uma representação em string do objeto disparado


Obtém a mensagem

  • « Throwable
  • Throwable::getCode »
  • PHP Manual
  • Throwable
  • Obtém a mensagem

Throwable::getMessage

(PHP 7, PHP 8)

Throwable::getMessage — Obtém a mensagem

Descrição

public Throwable::getMessage(): string

Retorna a mensagem associada com o objeto disparado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a mensagem associada com o objeto disparado.

Veja Também

  • Exception::getMessage() - Obtém a mensagem da exceção


Obtém o código da exceção

  • « Throwable::getMessage
  • Throwable::getFile »
  • PHP Manual
  • Throwable
  • Obtém o código da exceção

Throwable::getCode

(PHP 7, PHP 8)

Throwable::getCode — Obtém o código da exceção

Descrição

public Throwable::getCode(): int

Retorna o código de erro associado com o objeto de exceção disparado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o código de exceção como int na classe Exception mas possivelmente como outro tipo em descendentes de Exception (por exemplo como string em PDOException).

Veja Também

  • Exception::getCode() - Obtém o código da exceção


Obtém o arquivo no qual o objeto foi criado

  • « Throwable::getCode
  • Throwable::getLine »
  • PHP Manual
  • Throwable
  • Obtém o arquivo no qual o objeto foi criado

Throwable::getFile

(PHP 7, PHP 8)

Throwable::getFile — Obtém o arquivo no qual o objeto foi criado

Descrição

public Throwable::getFile(): string

Obtém o nome do arquivo no qual o objeto disparado foi criado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Obtém o nome do arquivo no qual o objeto disparado foi criado.

Veja Também

  • Exception::getFile() - Obtém o arquivo no qual a exceção foi criada


Obtém a linha na qual o objeto foi instanciado

  • « Throwable::getFile
  • Throwable::getTrace »
  • PHP Manual
  • Throwable
  • Obtém a linha na qual o objeto foi instanciado

Throwable::getLine

(PHP 7, PHP 8)

Throwable::getLine — Obtém a linha na qual o objeto foi instanciado

Descrição

public Throwable::getLine(): int

Retorna o número da linha onde o objeto disparado foi instanciado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número da linha onde o objeto disparado foi instanciado.

Veja Também

  • Exception::getLine() - Obtém a linha na qual a exceção foi criada


Obtém o rastreamento de pilha

  • « Throwable::getLine
  • Throwable::getTraceAsString »
  • PHP Manual
  • Throwable
  • Obtém o rastreamento de pilha

Throwable::getTrace

(PHP 7, PHP 8)

Throwable::getTrace — Obtém o rastreamento de pilha

Descrição

public Throwable::getTrace(): array

Obtém o rastreamento de pilha como um array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o rastreamento de pilha como um array no mesmo formato de debug_backtrace().

Veja Também

  • Exception::getTrace() - Obtém a stack trace


Obtém o rastreamento de pilha como uma string

  • « Throwable::getTrace
  • Throwable::getPrevious »
  • PHP Manual
  • Throwable
  • Obtém o rastreamento de pilha como uma string

Throwable::getTraceAsString

(PHP 7, PHP 8)

Throwable::getTraceAsString — Obtém o rastreamento de pilha como uma string

Descrição

public Throwable::getTraceAsString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o rastreamento de pilha como uma string.

Veja Também

  • Exception::getTraceAsString() - Obtém a stack trace como uma string


Retorna o Throwable anterior

  • « Throwable::getTraceAsString
  • Throwable::__toString »
  • PHP Manual
  • Throwable
  • Retorna o Throwable anterior

Throwable::getPrevious

(PHP 7, PHP 8)

Throwable::getPrevious — Retorna o Throwable anterior

Descrição

public Throwable::getPrevious(): ?Throwable

Retorna qualquer Throwable anterior (por exemplo, aquele fornecido como o terceiro parâmetro para Exception::__construct()).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o Throwable anterior se disponível, ou null caso contrário.

Veja Também

  • Exception::getPrevious() - Retorna o Throwable anterior


Obtém uma representação em string do objeto disparado

  • « Throwable::getPrevious
  • ArrayAccess »
  • PHP Manual
  • Throwable
  • Obtém uma representação em string do objeto disparado

Throwable::__toString

(PHP 7, PHP 8)

Throwable::__toString — Obtém uma representação em string do objeto disparado

Descrição

public Throwable::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retornta a representação em string do objeto disparado.

Veja Também

  • Exception::__toString() - Representação em string da exceção


A interface ArrayAccess

(PHP 5, PHP 7, PHP 8)

Introdução

Iterface que provê o acesso a objetos como se fossem arrays.

Resumo da Interface

interface ArrayAccess {
/* Métodos */
public offsetExists(mixed $offset): bool
public offsetGet(mixed $offset): mixed
public offsetSet(mixed $offset, mixed $value): void
public offsetUnset(mixed $offset): void
}

Exemplos

Exemplo #1 Utilização básica

<?php
class Obj implements ArrayAccess {
public $container = [
"one" => 1,
"two" => 2,
"three" => 3,
];

public function offsetSet($offset, $value): void {
if (is_null($offset)) {
$this->container[] = $value;
} else {
$this->container[$offset] = $value;
}
}

public function offsetExists($offset): bool {
return isset($this->container[$offset]);
}

public function offsetUnset($offset): void {
unset($this->container[$offset]);
}

public function offsetGet($offset): mixed {
return isset($this->container[$offset]) ? $this->container[$offset] : null;
}
}

$obj = new Obj;

var_dump(isset($obj["two"]));
var_dump($obj["two"]);
unset($obj["two"]);
var_dump(isset($obj["two"]));
$obj["two"] = "A value";
var_dump($obj["two"]);
$obj[] = 'Append 1';
$obj[] = 'Append 2';
$obj[] = 'Append 3';
print_r($obj);
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
int(2)
bool(false)
string(7) "A value"
obj Object
(
    [container:obj:private] => Array
        (
            [one] => 1
            [three] => 3
            [two] => A value
            [0] => Append 1
            [1] => Append 2
            [2] => Append 3
        )

)

Índice

  • ArrayAccess::offsetExists — Verifica se uma posição existe
  • ArrayAccess::offsetGet — Posição a ser obtida
  • ArrayAccess::offsetSet — Atribui um valor a uma posição específica
  • ArrayAccess::offsetUnset — Remove uma posição


Verifica se uma posição existe

  • « ArrayAccess
  • ArrayAccess::offsetGet »
  • PHP Manual
  • ArrayAccess
  • Verifica se uma posição existe

ArrayAccess::offsetExists

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetExists — Verifica se uma posição existe

Descrição

public ArrayAccess::offsetExists(mixed $offset): bool

Verifica se uma posição existe ou não.

Este método é executado ao utilizar-se a função isset() ou empty() em objetos que implementem ArrayAccess.

Nota:

Ao utilizar a função empty(), o método ArrayAccess::offsetGet() será chamado e checado por vazio somente se o método ArrayAccess::offsetExists() retornar true

Parâmetros

offset

Uma posição a ser checada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Nota:

O valor de retorno será convertido para bool se um não booleano for retornado.

Exemplos

Exemplo #1 Exemplo do método ArrayAccess::offsetExists()

<?php
class obj implements ArrayAccess {
public function offsetSet($offset, $value): void {
var_dump(__METHOD__);
}
public function offsetExists($var): bool {
var_dump(__METHOD__);
if ($var == "foobar") {
return true;
}
return false;
}
public function offsetUnset($var): void {
var_dump(__METHOD__);
}
#[\ReturnTypeWillChange]
public function offsetGet($var) {
var_dump(__METHOD__);
return "value";
}
}

$obj = new obj;

echo "Executa obj::offsetExists()\n";
var_dump(isset($obj["foobar"]));

echo "\nExecuta obj::offsetExists() e obj::offsetGet()\n";
var_dump(empty($obj["foobar"]));

echo "\nExecuta obj::offsetExists(), *não executa* obj:offsetGet()\n";
var_dump(empty($obj["foobaz"]));
?>

O exemplo acima produzirá algo semelhante a:

Executa obj::offsetExists()
string(17) "obj::offsetExists"
bool(true)

Executa obj::offsetExists() e obj::offsetGet()
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
bool(false)

Executa obj::offsetExists(), *não executa* obj:offsetGet()
string(17) "obj::offsetExists"
bool(true)


Posição a ser obtida

  • « ArrayAccess::offsetExists
  • ArrayAccess::offsetSet »
  • PHP Manual
  • ArrayAccess
  • Posição a ser obtida

ArrayAccess::offsetGet

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetGet — Posição a ser obtida

Descrição

public ArrayAccess::offsetGet(mixed $offset): mixed

Retorna o valor de uma posição específica.

Este método é executado ao checar se uma posição está vazia, com a função empty().

Parâmetros

offset

A posição a ser obtida.

Valor Retornado

Pode retornar valores de qualquer tipo.

Notas

Nota:

É possível para implementações deste método serem retornadas por referência. Isso modifica indiretamente a sobrecarga de dimensões do array de objetos ArrayAccess possíveis.

Uma modificação direta é aquela que substitui completamente o valor de uma dimensão do array, como em $obj[6] = 7. Uma modificação indireta, por outro lado, modifica somente parte da dimensão, ou tenta atribuir a dimensão por referência a outra variável, como em $obj[6][7] = 7 ou $var =& $obj[6]. Incrementos com ++ e decrementos com -- também são implementados de forma a exigirem modificações indiretas.

Enquanto uma modificação direta engatilha uma chamada ao método ArrayAccess::offsetSet(), uma modificação indireta engatilha uma chamada ao ArrayAccess::offsetGet(). Neste caso, a implementação do método ArrayAccess::offsetGet() deve permitir o retorno por referência, caso contrário uma mensagem E_NOTICE será disparada.

Veja Também

  • ArrayAccess::offsetExists() - Verifica se uma posição existe


Atribui um valor a uma posição específica

  • « ArrayAccess::offsetGet
  • ArrayAccess::offsetUnset »
  • PHP Manual
  • ArrayAccess
  • Atribui um valor a uma posição específica

ArrayAccess::offsetSet

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetSet — Atribui um valor a uma posição específica

Descrição

public ArrayAccess::offsetSet(mixed $offset, mixed $value): void

Atribui um valor a uma posição específica.

Parâmetros

offset

A posição na qual se deseja atribuir um valor.

value

O valor a ser atribuído.

Valor Retornado

Nenhum valor é retornado.

Notas

Nota:

O parâmetro offset será definido como null se outro valor não for informado, como no exemplo a seguir.

<?php
$arrayaccess[] = "first value";
$arrayaccess[] = "second value";
print_r($arrayaccess);
?>

O exemplo acima produzirá:

Array
(
    [0] => first value
    [1] => second value
)

Nota:

Esta função não é chamada em atribuições por referência e outras modificações indiretas as dimensões de arrays sobrecarregados com ArrayAccess (indiretas no sentido de e não serem feitas para modificar a dimensão diretamente, mas para modificar uma subdimensão ou uma subpropriedade, ou atribuir a dimensão do array por referência a outra variável). Em vez disso, o método ArrayAccess::offsetGet() será chamado. A operação será bem sucedida somente se este método retornar por referência.


Remove uma posição

  • « ArrayAccess::offsetSet
  • Serializable »
  • PHP Manual
  • ArrayAccess
  • Remove uma posição

ArrayAccess::offsetUnset

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetUnset — Remove uma posição

Descrição

public ArrayAccess::offsetUnset(mixed $offset): void

Destrói uma posição.

Nota:

Este método não será chamado ao se fazer conversão de tipo com (unset)

Parâmetros

offset

A posição a ser removida.

Valor Retornado

Nenhum valor é retornado.


The Serializable interface

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Interface para serialização personalizada.

Classes que implementam esta intarface não possuem mais suporte aos métodos __sleep() and __wakeup(). O método serialize é chamado não importando se uma instância possui a necessidade de ser serializada. Não invoca o método __destruct(), ou possui qualquer outro efeito colateral a não ser que programado no método. Quando os dados são deserializados, a classe toma conhecimento e o método unserialize() apropriado é chamado como um construtor, em vez de chamar o método __construct(). Se necessitar executar o construtor padrão, pode-se fazer no método.

Aviso

A partir do PHP 8.1.0, uma classe que implemente Serializable sem implementar __serialize() e __unserialize() gerará um aviso de descontinuação.

Resumo da Interface

interface Serializable {
/* Métodos */
public serialize(): ?string
public unserialize(string $data): void
}

Exemplos

Exemplo #1 Basic usage

<?php
class obj implements Serializable {
private $data;
public function __construct() {
$this->data = "My private data";
}
public function serialize() {
return serialize($this->data);
}
public function unserialize($data) {
$this->data = unserialize($data);
}
public function getData() {
return $this->data;
}
}

$obj = new obj;
$ser = serialize($obj);

var_dump($ser);

$newobj = unserialize($ser);

var_dump($newobj->getData());
?>

O exemplo acima produzirá algo semelhante a:

string(38) "C:3:"obj":23:{s:15:"My private data";}"
string(15) "My private data"

Índice

  • Serializable::serialize — Representação em string de um objeto
  • Serializable::unserialize — Constrói o objeto


Representação em string de um objeto

  • « Serializable
  • Serializable::unserialize »
  • PHP Manual
  • Serializable
  • Representação em string de um objeto

Serializable::serialize

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Serializable::serialize — Representação em string de um objeto

Descrição

public Serializable::serialize(): ?string

Deve retornar uma representação em string do objeto.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma representação em string do objeto ou null.

Erros/Exceções

Dispara uma Exception quando retorna outros tipos diferentes de string ou null.

Veja Também

  • __sleep()
  • __serialize()


Constrói o objeto

  • « Serializable::serialize
  • Closure »
  • PHP Manual
  • Serializable
  • Constrói o objeto

Serializable::unserialize

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Serializable::unserialize — Constrói o objeto

Descrição

public Serializable::unserialize(string $data): void

Chamado durante a desserialização do objeto.

Nota:

Este método age como o construtor do objeto. O método __construct() não será chamado depois deste método.

Parâmetros

data

A representação em string do objeto.

Valor Retornado

O valor de retorno deste método é ignorado.

Veja Também

  • __wakeup()
  • __unserialize()


A classe Closure

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

Classe usada para representar funções anônimas.

Funções anônimas, produzem objetos desse tipo. Esta classe possui métodos que permitem ainda mais controle de funções anônimas após sua criação.

Além dos métodos listados aqui, a classe também possui o método __invoke. Para consistência com outras classes que implementam o invoque mágico, já que esse método não é utilizado para chamar a função.

Resumo da classe

final class Closure {
/* Métodos */
private __construct()
public static bind(Closure $closure, ?object $newThis, object|string|null $newScope = "static"): ?Closure
public bindTo(?object $newThis, object|string|null $newScope = "static"): ?Closure
public call(object $newThis, mixed ...$args): mixed
public static fromCallable(callable $callback): Closure
}

Índice

  • Closure::__construct — Construtor que desabilita a instanciação
  • Closure::bind — Duplica uma closure com um objeto vinculado e um escopo de classe
  • Closure::bindTo — Duplica a closure com um novo objeto vinculado e escopo de classe.
  • Closure::call — Vincula e chama a closure
  • Closure::fromCallable — Converte um callable em uma closure


Construtor que desabilita a instanciação

  • « Closure
  • Closure::bind »
  • PHP Manual
  • Closure
  • Construtor que desabilita a instanciação

Closure::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Closure::__construct — Construtor que desabilita a instanciação

Descrição

private Closure::__construct()

Este método exise somente para desabilitar a instanciação da classe Closure. Objetos desta classe são criados como descrito na página funções anônimas.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • Funções anônimas


Duplica uma closure com um objeto vinculado e um escopo de classe

  • « Closure::__construct
  • Closure::bindTo »
  • PHP Manual
  • Closure
  • Duplica uma closure com um objeto vinculado e um escopo de classe

Closure::bind

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Closure::bind — Duplica uma closure com um objeto vinculado e um escopo de classe

Descrição

public static Closure::bind(Closure $closure, ?object $newThis, object|string|null $newScope = "static"): ?Closure

Este método é uma versão estática do Closure::bindTo(). Veja a documentação do método para mais informações.

Parâmetros

closure

A função anônima a ser vincular.

newThis

O objeto que a função anônima fornecida deve vincular, ou null para a closure não vincular.

newScope

O escopo da classe ao qual a closure deve ser informado, ou 'static' para manter o atual. Se um objeto é fornecido, o tipo do objeto será usado. Isso determina a visibilidade dos métodos protegidos e privados do objeto vinculado. Não é permitido passar uma (objeto da) classe interna como parâmetro this.

Valor Retornado

Retorna um novo objeto Closure ou null em caso de falha.

Exemplos

Exemplo #1 Exemplo do método Closure::bind()

<?php
class A {
private static $sfoo = 1;
private $ifoo = 2;
}
$cl1 = static function() {
return A::$sfoo;
};
$cl2 = function() {
return $this->ifoo;
};

$bcl1 = Closure::bind($cl1, null, 'A');
$bcl2 = Closure::bind($cl2, new A(), 'A');
echo $bcl1(), "\n";
echo $bcl2(), "\n";
?>

O exemplo acima produzirá algo semelhante a:

1
2

Veja Também

  • Funções anônimas
  • Closure::bindTo() - Duplica a closure com um novo objeto vinculado e escopo de classe.


Duplica a closure com um novo objeto vinculado e escopo de classe.

  • « Closure::bind
  • Closure::call »
  • PHP Manual
  • Closure
  • Duplica a closure com um novo objeto vinculado e escopo de classe.

Closure::bindTo

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Closure::bindTo — Duplica a closure com um novo objeto vinculado e escopo de classe.

Descrição

public Closure::bindTo(?object $newThis, object|string|null $newScope = "static"): ?Closure

Cria e retorna uma nova função anônima com o mesmo corpo e mesmas variáveis ligadas como a original, mas possivelmente com um diferente objeto ligado e um novo escopo de classe.

O “obeto ligado” determina o valor que $this terá no corpo da função e o “escopo de classe” representa uma classe que determina quais membros privados e protegidos a função anônima será capaz de acessar. Nomeadamente, os membros que estarão visíveis serão os mesmos que estariam, se a função anônima fosse um método da classe informada como valor do parâmetro newScope.

Closures estáticas não podem ter nenhum objeto ligado (o valor do parâmetro newThis deveria ser null), mas esta função pode entretanto ser utilizada para alterar seus escopos de classe.

Esta função vai assegurar que, para uma closure não estática, possuir uma instância ligada irá implicar em ter escopo definido e vice-versa. Para este fim, closures não estáticas que recebem um escopo com instância null são tornadas estáticas; e closures não estáticas sem escopo que recebem uma instância não nula têm o escopo definido para uma classe não especificada.

Nota:

Se for requerido duplicar as funções anônimas, pode ser utilizada clonagem alternativamente.

Parâmetros

newThis

O objeto ao qual a função anônima informada deve ser ligada, ou null para que a closure seja não ligada.

newScope

O escopo de classe ao qual a closure deve ser associada, ou 'static' para manter a atual. Se um objeto for informado, o tipo do objeto será usado no lugar. Isto determina a visibilidade de métodos protegidos e privados do objeto ligado. Não é permitido passar (um objeto de) uma classe interna neste parâmetro.

Valor Retornado

Retorna o novo objeto Closure criado ou null em caso de falha.

Exemplos

Exemplo #1 Exemplo de Closure::bindTo()

<?php

class A
{
private $val;

public function __construct($val)
{
$this->val = $val;
}

public function getClosure()
{
// Retorna a closure ligada a este objeto e escopo
return function() {
return $this->val;
};
}
}

$ob1 = new A(1);
$ob2 = new A(2);

$cl = $ob1->getClosure();
echo $cl(), "\n";

$cl = $cl->bindTo($ob2);
echo $cl(), "\n";

?>

O exemplo acima produzirá algo semelhante a:

1
2

Veja Também

  • Funções Anônimas
  • Closure::bind() - Duplica uma closure com um objeto vinculado e um escopo de classe


Vincula e chama a closure

  • « Closure::bindTo
  • Closure::fromCallable »
  • PHP Manual
  • Closure
  • Vincula e chama a closure

Closure::call

(PHP 7, PHP 8)

Closure::call — Vincula e chama a closure

Descrição

public Closure::call(object $newThis, mixed ...$args): mixed

Vincula temporáriamente a closure ao newThis, e a chama com qualquer parâmetro fornecido.

Parâmetros

newThis

O object a ser vinculado a closure enquanto durar a chamada.

args

Zero ou mais parâmetros, que serão fornecidos como parâmetros para a closure.

Valor Retornado

Retorna o valor de retorna da closure.

Exemplos

Exemplo #1 Exemplo do método Closure::call()

<?php
class Value {
protected $value;

public function __construct($value) {
$this->value = $value;
}

public function getValue() {
return $this->value;
}
}

$three = new Value(3);
$four = new Value(4);

$closure = function ($delta) { var_dump($this->getValue() + $delta); };
$closure->call($three, 4);
$closure->call($four, 4);
?>

O exemplo acima produzirá:

int(7)
int(8)


Converte um callable em uma closure

  • « Closure::call
  • stdClass »
  • PHP Manual
  • Closure
  • Converte um callable em uma closure

Closure::fromCallable

(PHP 7 >= 7.1.0)

Closure::fromCallable — Converte um callable em uma closure

Descrição

public static Closure::fromCallable(callable $callback): Closure

Cria e retorna uma nova função anônima a patir do callback fornecido usando o escopo atual. Esse método verifica se o callback é chamável no escopo atual e lança um TypeError se ele não for.

Nota:

A partir do PHP 8.1.0, Sintaxe de callable de primeira classe possui a mesma semântica que este método.

Parâmetros

callback

O callable para converter.

Valor Retornado

Retorna a recém-criada Closure ou lança um TypeError se o callback não é chamável no escopo atual.

Veja Também

  • Funções anônimas
  • Sintaxe de callable de primeira classe


A classe stdClass

(PHP 4, PHP 5, PHP 7, PHP 8)

Introdução

Uma classe vazia genérica com propriedades dinâmicas.

Objetos desta classe podem ser instaciados com o operador new ou criados por conversores de tipo para o objeto. Muitas funções do PHP também criam instâncias desta classe, ex.: json_decode(), mysqli_fetch_object() ou PDOStatement::fetchObject().

Apesar de não implementar os métodos mágicos __get()/__set(), esta classe permite propriedades dinâmicas e não requer o atributo #[\AllowDynamicProperties].

Esta não é uma classe base já que o PHP não possui um conceito de uma classe base universal. Entretanto, é possível criar uma classe customizada que se estende a partir de stdClass e como resultado herda a funcionalidade de propriedades dinâmicas.

Resumo da classe

class stdClass {
}

Esta classe não tem métodos ou propriedades padrão.

Exemplos

Exemplo #1 Criado como resultado de uma conversão de tipo em um objeto

<?php
$obj = (object) array('foo' => 'bar');
var_dump($obj);

O exemplo acima produzirá:

object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "bar"
}

Exemplo #2 Criado como resultado da função json_decode()

<?php
$json = '{"foo":"bar"}';
var_dump(json_decode($json));

O exemplo acima produzirá:

object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "bar"
}

Exemplo #3 Declarando propriedades dinâmicas

<?php
$obj = new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);

O exemplo acima produzirá:

object(stdClass)#1 (2) {
  ["foo"]=>
  int(42)
  ["1"]=>
  int(42)
}


A classe Generator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

Os objetos Generatorsão retornados por geradores.

Cuidado

Os objetos Generator não podem ser instanciados através do construtor new.

Resumo da classe

final class Generator implements Iterator {
/* Métodos */
public current(): mixed
public getReturn(): mixed
public key(): mixed
public next(): void
public rewind(): void
public send(mixed $value): mixed
public throw(Throwable $exception): mixed
public valid(): bool
public __wakeup(): void
}

Veja Também

See also object iteration.

Índice

  • Generator::current — Obtém o valor gerado
  • Generator::getReturn — Obtém o valor de retorno de um gerador
  • Generator::key — Obtém o chave gerada
  • Generator::next — Continua a execução do gerador
  • Generator::rewind — Reinicia o iterador
  • Generator::send — Envia um valor ao gerador
  • Generator::throw — Lança uma exceção no gerador
  • Generator::valid — Verifica se o gerador está ativo
  • Generator::__wakeup — Serializa o gerador (sempre falha)


Obtém o valor gerado

  • « Generator
  • Generator::getReturn »
  • PHP Manual
  • Generator
  • Obtém o valor gerado

Generator::current

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::current — Obtém o valor gerado

Descrição

public Generator::current(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o valor gerado.


Obtém o valor de retorno de um gerador

  • « Generator::current
  • Generator::key »
  • PHP Manual
  • Generator
  • Obtém o valor de retorno de um gerador

Generator::getReturn

(PHP 7, PHP 8)

Generator::getReturn — Obtém o valor de retorno de um gerador

Descrição

public Generator::getReturn(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o valor de retorno de um gerador, assim que finalizada sua execução.

Exemplos

Exemplo #1 Exemplo do método Generator::getReturn()

<?php

$gen = (function() {
yield 1;
yield 2;

return 3;
})();

foreach ($gen as $val) {
echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

O exemplo acima produzirá:

1
2
3


Obtém o chave gerada

  • « Generator::getReturn
  • Generator::next »
  • PHP Manual
  • Generator
  • Obtém o chave gerada

Generator::key

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::key — Obtém o chave gerada

Descrição

public Generator::key(): mixed

Obtém a chave do valor gerado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a chave gerada.

Exemplos

Exemplo #1 Exemplo do método Generator::key()

<?php

function Gen()
{
yield 'key' => 'value';
}

$gen = Gen();

echo "{$gen->key()} => {$gen->current()}";

O exemplo acima produzirá:

key => value


Continua a execução do gerador

  • « Generator::key
  • Generator::rewind »
  • PHP Manual
  • Generator
  • Continua a execução do gerador

Generator::next

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::next — Continua a execução do gerador

Descrição

public Generator::next(): void

Chamar Generator::next() tem o mesmo efeito que chamar Generator::send() com o argumento null.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Reinicia o iterador

  • « Generator::next
  • Generator::send »
  • PHP Manual
  • Generator
  • Reinicia o iterador

Generator::rewind

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::rewind — Reinicia o iterador

Descrição

public Generator::rewind(): void

Se uma iteração já tiver sido inicializada, lançará uma exceção.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Envia um valor ao gerador

  • « Generator::rewind
  • Generator::throw »
  • PHP Manual
  • Generator
  • Envia um valor ao gerador

Generator::send

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::send — Envia um valor ao gerador

Descrição

public Generator::send(mixed $value): mixed

Envia o valor informado ao gerador como resultado da expressão yield corrente e retorna a execução do gerador.

Se o gerador não estiver na expressão yield quando o método for chamado, primeiro será deixado avançar para a primeira expressão yield antes de enviar o valor. Assim como não é necessário "forçar" os geradores do PHP com uma chamada ao método Generator::next() (como é feito em Python).

Parâmetros

value

Valor a ser enviado ao gerador. Este valor será o retornado pela expressão yield em que o gerador estiver.

Valor Retornado

Retorna o valor gerado.

Exemplos

Exemplo #1 Usando o método Generator::send() para injetar valores

<?php
function printer() {
echo "Valor inicial.".PHP_EOL;
while (true) {
$string = yield;
echo $string.PHP_EOL;
}
}

$printer = printer();
$printer->send('Envio 1.');
$printer->send('Envio 2.');
?>

O exemplo acima produzirá:

Valor inicial.
Envio 1.
Envio 2.


Lança uma exceção no gerador

  • « Generator::send
  • Generator::valid »
  • PHP Manual
  • Generator
  • Lança uma exceção no gerador

Generator::throw

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::throw — Lança uma exceção no gerador

Descrição

public Generator::throw(Throwable $exception): mixed

Lança uma exceção no gerador e retorna a execução do gerador. O comportamento será o mesmo como se a expressão yield corrente fosse substituída por uma declaração throw $exception.

Se o gerador já tiver sido fechado ao invocar este método, a exceção será lançada no contexto daquele que o chamou.

Parâmetros

exception

Exceção a ser lançada no gerador.

Valor Retornado

Retorna o valor gerado.

Exemplos

Exemplo #1 Lança uma exceção no gerador

<?php
function gen() {
echo "Foo\n";
try {
yield;
} catch (Exception $e) {
echo "Exception: {$e->getMessage()}\n";
}
echo "Bar\n";
}

$gen = gen();
$gen->rewind();
$gen->throw(new Exception('Test'));
?>

O exemplo acima produzirá:

Foo
Exception: Test
Bar


Verifica se o gerador está ativo

  • « Generator::throw
  • Generator::__wakeup »
  • PHP Manual
  • Generator
  • Verifica se o gerador está ativo

Generator::valid

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::valid — Verifica se o gerador está ativo

Descrição

public Generator::valid(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna false se o gerador foi fechado. Caso contrário retornará true.


Serializa o gerador (sempre falha)

  • « Generator::valid
  • Fiber »
  • PHP Manual
  • Generator
  • Serializa o gerador (sempre falha)

Generator::__wakeup

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::__wakeup — Serializa o gerador (sempre falha)

Descrição

public Generator::__wakeup(): void

Lança uma exceção, já que geradores não podem ser serializados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


A classe Fiber

(PHP 8 >= 8.1.0)

Introdução

Fibers representam funções interrompíveis de pilha completa. Fibers podem ser suspensas de qualquer lugar na pilha de chamadas, pausando a execução dentro de Fiber até que ela seja retomada posteriormente.

Resumo da classe

final class Fiber {
/* Métodos */
public __construct(callable $callback)
public start(mixed ...$args): mixed
public resume(mixed $value = null): mixed
public throw(Throwable $exception): mixed
public getReturn(): mixed
public isStarted(): bool
public isSuspended(): bool
public isRunning(): bool
public isTerminated(): bool
public static suspend(mixed $value = null): mixed
public static getCurrent(): ?Fiber
}

Veja Também

Visão geral de Fibers

Índice

  • Fiber::__construct — Cria uma nova instância de Fiber
  • Fiber::start — Inicia execução de uma Fibra
  • Fiber::resume — Retoma a execução de uma Fiber com um valor
  • Fiber::throw — Retoma a execução de uma Fiber com uma exceção
  • Fiber::getReturn — Obtém o valor retornado pela Fiber
  • Fiber::isStarted — Determina se uma Fiber foi iniciada
  • Fiber::isSuspended — Determina se uma Fiber está suspensa
  • Fiber::isRunning — Determina se a Fiber está em execução
  • Fiber::isTerminated — Determina se a Fiber terminou
  • Fiber::suspend — Suspende a execução da Fiber atual
  • Fiber::getCurrent — Obtém a instância de Fiber sendo executada no momento


Cria uma nova instância de Fiber

  • « Fiber
  • Fiber::start »
  • PHP Manual
  • Fiber
  • Cria uma nova instância de Fiber

Fiber::__construct

(PHP 8 >= 8.1.0)

Fiber::__construct — Cria uma nova instância de Fiber

Descrição

public Fiber::__construct(callable $callback)

Parâmetros

callback

O callable a ser invocado ao iniciar a Fiber. Argumentos informados a Fiber::start() serão fornecidos como argumentos ao callable informado.


Inicia execução de uma Fibra

  • « Fiber::__construct
  • Fiber::resume »
  • PHP Manual
  • Fiber
  • Inicia execução de uma Fibra

Fiber::start

(PHP 8 >= 8.1.0)

Fiber::start — Inicia execução de uma Fibra

Descrição

public Fiber::start(mixed ...$args): mixed

Uma lista variável de argumentos a ser fornecida para o callable usado na construção da Fiber.

Se a Fiber já tiver sido iniciada quando este método for chamado, uma exceção FiberError será disparada.

Parâmetros

args

Os argumentos que serão utilizados na chamada ao callable fornecido ao construtor da Fiber.

Valor Retornado

O valor fornecido à primeira chamada a Fiber::suspend() ou null se a Fiber retornar. Se a Fiber disparar uma exceção antes de ser suspensa, ela será disparada a partir da chamada a este método.


Retoma a execução de uma Fiber com um valor

  • « Fiber::start
  • Fiber::throw »
  • PHP Manual
  • Fiber
  • Retoma a execução de uma Fiber com um valor

Fiber::resume

(PHP 8 >= 8.1.0)

Fiber::resume — Retoma a execução de uma Fiber com um valor

Descrição

public Fiber::resume(mixed $value = null): mixed

Retoma a execução da Fiber usando o valor fornecido como resultado da chamada Fiber::suspend() atual.

Se a Fiber não estiver suspensa quando este método for chamado, uma exceção FiberError será disparada.

Parâmetros

value

O valor para retomar a Fiber. Este valor será o valor de retorno da chamada atual de Fiber::suspend().

Valor Retornado

O valor fornecido para a próxima chamada de Fiber::suspend() ou null se a Fiber retornar. Se a Fiber disparar uma exceção antes de ser suspensa, ela será disparada a partir da chamada a este método.


Retoma a execução de uma Fiber com uma exceção

  • « Fiber::resume
  • Fiber::getReturn »
  • PHP Manual
  • Fiber
  • Retoma a execução de uma Fiber com uma exceção

Fiber::throw

(PHP 8 >= 8.1.0)

Fiber::throw — Retoma a execução de uma Fiber com uma exceção

Descrição

public Fiber::throw(Throwable $exception): mixed

Retoma a Fiber disparando a exceção informada a partir da chamada Fiber::suspend() atual.

Se a Fiber não estiver suspensa quando este método é chamado, uma exceção FiberError será disparada.

Parâmetros

exception

A exceção a ser disparada na Fiber a partir da chamada Fiber::suspend() atual.

Valor Retornado

O valor fornecido à próxima chamada a Fiber::suspend() ou null se a Fiber retornar. Se a Fiber disparar uma exceção antes de ser suspensa, ela será disparada a partir da chamada a este método.


Obtém o valor retornado pela Fiber

  • « Fiber::throw
  • Fiber::isStarted »
  • PHP Manual
  • Fiber
  • Obtém o valor retornado pela Fiber

Fiber::getReturn

(PHP 8 >= 8.1.0)

Fiber::getReturn — Obtém o valor retornado pela Fiber

Descrição

public Fiber::getReturn(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o valor retornado pela callable fornecida a Fiber::__construct(). Se a Fiber não retornou um valor, por não ter iniciado ou terminado, ou por ter disparado uma exceção, uma FiberError será disparada.


Determina se uma Fiber foi iniciada

  • « Fiber::getReturn
  • Fiber::isSuspended »
  • PHP Manual
  • Fiber
  • Determina se uma Fiber foi iniciada

Fiber::isStarted

(PHP 8 >= 8.1.0)

Fiber::isStarted — Determina se uma Fiber foi iniciada

Descrição

public Fiber::isStarted(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true apenas se a Fiber foi iniciada; caso contrário retorna false.


Determina se uma Fiber está suspensa

  • « Fiber::isStarted
  • Fiber::isRunning »
  • PHP Manual
  • Fiber
  • Determina se uma Fiber está suspensa

Fiber::isSuspended

(PHP 8 >= 8.1.0)

Fiber::isSuspended — Determina se uma Fiber está suspensa

Descrição

public Fiber::isSuspended(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se uma Fiber está atualmente suspensa; caso contrário retorna false.


Determina se a Fiber está em execução

  • « Fiber::isSuspended
  • Fiber::isTerminated »
  • PHP Manual
  • Fiber
  • Determina se a Fiber está em execução

Fiber::isRunning

(PHP 8 >= 8.1.0)

Fiber::isRunning — Determina se a Fiber está em execução

Descrição

public Fiber::isRunning(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true apenas se a Fiber estiver em execução. Um Fiber é considerada em execução após uma chamada a Fiber::start(), Fiber::resume() ou Fiber::throw() que ainda não retornaram. Retorna false se a Fiber não está em execução.


Determina se a Fiber terminou

  • « Fiber::isRunning
  • Fiber::suspend »
  • PHP Manual
  • Fiber
  • Determina se a Fiber terminou

Fiber::isTerminated

(PHP 8 >= 8.1.0)

Fiber::isTerminated — Determina se a Fiber terminou

Descrição

public Fiber::isTerminated(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true apenas após a Fiber ter terminado, ou retornando da execução ou disparando uma exceção; caso contrário retorna false.


Suspende a execução da Fiber atual

  • « Fiber::isTerminated
  • Fiber::getCurrent »
  • PHP Manual
  • Fiber
  • Suspende a execução da Fiber atual

Fiber::suspend

(PHP 8 >= 8.1.0)

Fiber::suspend — Suspende a execução da Fiber atual

Descrição

public static Fiber::suspend(mixed $value = null): mixed

Suspende a execução da Fiber atual. O valor fornecido a este método será retornado da chamada a Fiber::start(), Fiber::resume() ou Fiber::throw() que mudou a execução para a Fiber atual.

Quando a Fiber é retomada, este método retorna o valor fornecido a Fiber::resume(). Se a Fiber é retomada usando Fiber::throw(), a exceção fornecida àquele método será disparada a partir da chamada a este método.

Se este método for chamado de fora de uma Fiber, uma exceção FiberError será disparada.

Parâmetros

value

O valor a retornar da chamada a Fiber::start(), Fiber::resume() ou Fiber::throw() que mudou a execução para a Fiber atual.

Valor Retornado

O valor fornecido a Fiber::resume().


Obtém a instância de Fiber sendo executada no momento

  • « Fiber::suspend
  • WeakReference »
  • PHP Manual
  • Fiber
  • Obtém a instância de Fiber sendo executada no momento

Fiber::getCurrent

(PHP 8 >= 8.1.0)

Fiber::getCurrent — Obtém a instância de Fiber sendo executada no momento

Descrição

public static Fiber::getCurrent(): ?Fiber

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a instância de Fiber sendo executada no momento ou null se este método é chamado do lado de fora de uma Fiber.


A classe WeakReference

(PHP 7 >= 7.4.0, PHP 8)

Introdução

Referências fracas permitem que o programador mantenha uma referência a um objeto que não impede que o objeto seja destruído. Eles são úteis para implementar estruturas como cache.

WeakReferences não podem ser serializadas.

Resumo da classe

final class WeakReference {
/* Métodos */
public __construct()
public static create(object $object): WeakReference
public get(): ?object
}

Exemplos de referência fraca

Exemplo #1 Uso básico de referência fraca

<?php
$obj = new stdClass;
$weakref = WeakReference::create($obj);
var_dump($weakref->get());
unset($obj);
var_dump($weakref->get());
?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#1 (0) {
}
NULL

Índice

  • WeakReference::__construct — Construtor que desabilita a instanciação
  • WeakReference::create — Cria uma nova referência fraca
  • WeakReference::get — Obtém um objeto fracamente referenciado


Construtor que desabilita a instanciação

  • « WeakReference
  • WeakReference::create »
  • PHP Manual
  • WeakReference
  • Construtor que desabilita a instanciação

WeakReference::__construct

(PHP 7 >= 7.4.0, PHP 8)

WeakReference::__construct — Construtor que desabilita a instanciação

Descrição

public WeakReference::__construct()

Este método existe apenas para desabilitar a instanciação da classe WeakReference. Referências fracas devem ser instanciadas com o método factory WeakReference::create().

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • WeakReference::create() - Cria uma nova referência fraca


Cria uma nova referência fraca

  • « WeakReference::__construct
  • WeakReference::get »
  • PHP Manual
  • WeakReference
  • Cria uma nova referência fraca

WeakReference::create

(PHP 7 >= 7.4.0, PHP 8)

WeakReference::create — Cria uma nova referência fraca

Descrição

public static WeakReference::create(object $object): WeakReference

Cria uma nova WeakReference.

Parâmetros

object

O objeto a ser fracamente referenciado.

Valor Retornado

Retorna um novo objeto WeakReference, ou a instância existente se já havia uma WeakReference para o mesmo objeto.


Obtém um objeto fracamente referenciado

  • « WeakReference::create
  • WeakMap »
  • PHP Manual
  • WeakReference
  • Obtém um objeto fracamente referenciado

WeakReference::get

(PHP 7 >= 7.4.0, PHP 8)

WeakReference::get — Obtém um objeto fracamente referenciado

Descrição

public WeakReference::get(): ?object

Obtém um objeto fracamente referenciado. Se o objeto já tiver sido destruído, null é retornado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o object referenciado ou null se o objeto tiver sido destruído.


A classe WeakMap

(PHP 8)

Introdução

Um WeakMap é um mapa (ou dicionário) que aceita objetos como chaves. Entretanto, diferentemente do objeto similar SplObjectStorage, um objeto em uma chave de um WeakMap não contribui com a contagem de referência do objeto. Isto é, se em algum ponto a única referência restante a um objeto é a chave de um WeakMap, o objeto sofrerá uma coleta de lixo e será removido do WeakMap. Seu caso de uso primário é construir caches de dados derivados de um objeto que não precisam durar mais que o objeto.

WeakMap implementa ArrayAccess, Traversable (via IteratorAggregate) e Countable, por isso na maioria dos casos pode ser usada da mesma forma que um array associativo.

Resumo da classe

final class WeakMap implements ArrayAccess, Countable, IteratorAggregate {
/* Métodos */
public count(): int
public getIterator(): Iterator
public offsetExists(object $object): bool
public offsetGet(object $object): mixed
public offsetSet(object $object, mixed $value): void
public offsetUnset(object $object): void
}

Exemplos

Exemplo #1 Exemplo de uso de Weakmap

<?php
$wm = new WeakMap();

$o = new stdClass;

class A {
public function __destruct() {
echo "Dead!\n";
}
}

$wm[$o] = new A;

var_dump(count($wm));
echo "Unsetting...\n";
unset($o);
echo "Done\n";
var_dump(count($wm));

O exemplo acima produzirá:

int(1)
Unsetting...
Dead!
Done
int(0)

Índice

  • WeakMap::count — Conta o número de entradas ativas no mapa
  • WeakMap::getIterator — Obtém um iderador externo
  • WeakMap::offsetExists — Verifica se um certo objeto está no mapa
  • WeakMap::offsetGet — Retorna o valor apontado por um certo objeto
  • WeakMap::offsetSet — Atualiza o mapa com um novo par chave-valor
  • WeakMap::offsetUnset — Remove uma entrada do mapa


Conta o número de entradas ativas no mapa

  • « WeakMap
  • WeakMap::getIterator »
  • PHP Manual
  • WeakMap
  • Conta o número de entradas ativas no mapa

WeakMap::count

(PHP 8)

WeakMap::count — Conta o número de entradas ativas no mapa

Descrição

public WeakMap::count(): int

Conta o número de entradas ativas no mapa.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de entradas ativas no mapa.


Obtém um iderador externo

  • « WeakMap::count
  • WeakMap::offsetExists »
  • PHP Manual
  • WeakMap
  • Obtém um iderador externo

WeakMap::getIterator

(PHP 8)

WeakMap::getIterator — Obtém um iderador externo

Descrição

public WeakMap::getIterator(): Iterator

Retorna um iterador externo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma instância de um objeto que implementa a classe Iterator ou Traversable

Erros/Exceções

Dispara uma Exception em caso de falha.


Verifica se um certo objeto está no mapa

  • « WeakMap::getIterator
  • WeakMap::offsetGet »
  • PHP Manual
  • WeakMap
  • Verifica se um certo objeto está no mapa

WeakMap::offsetExists

(PHP 8)

WeakMap::offsetExists — Verifica se um certo objeto está no mapa

Descrição

public WeakMap::offsetExists(object $object): bool

Verifica se o objeto informado está referenciado no mapa.

Parâmetros

object

Objeto a ser verificado.

Valor Retornado

Retorna true se o objeto estiver contido no mapa, false caso contrário.


Retorna o valor apontado por um certo objeto

  • « WeakMap::offsetExists
  • WeakMap::offsetSet »
  • PHP Manual
  • WeakMap
  • Retorna o valor apontado por um certo objeto

WeakMap::offsetGet

(PHP 8)

WeakMap::offsetGet — Retorna o valor apontado por um certo objeto

Descrição

public WeakMap::offsetGet(object $object): mixed

Retorna o valor apontado por um certo objeto.

Parâmetros

object

Algum objeto contido como chave em um mapa.

Valor Retornado

Retorna o valor associado ao objeto passado como argumento, null caso contrário.


Atualiza o mapa com um novo par chave-valor

  • « WeakMap::offsetGet
  • WeakMap::offsetUnset »
  • PHP Manual
  • WeakMap
  • Atualiza o mapa com um novo par chave-valor

WeakMap::offsetSet

(PHP 8)

WeakMap::offsetSet — Atualiza o mapa com um novo par chave-valor

Descrição

public WeakMap::offsetSet(object $object, mixed $value): void

Atualiza o mapa com um novo par chave-valor. Se a chave já existia no mapa, o valor antigo é substituído pelo novo.

Parâmetros

object

O objeto que serve como chava no par chave-valor.

value

O dado arbitrário que serve como valor no par chave-valor..

Valor Retornado

Nenhum valor é retornado.


Remove uma entrada do mapa

  • « WeakMap::offsetSet
  • Stringable »
  • PHP Manual
  • WeakMap
  • Remove uma entrada do mapa

WeakMap::offsetUnset

(PHP 8)

WeakMap::offsetUnset — Remove uma entrada do mapa

Descrição

public WeakMap::offsetUnset(object $object): void

Remove uma entrada do mapa.

Parâmetros

object

O objeto chave a ser removido do mapa.

Valor Retornado

Nenhum valor é retornado.


A interface Stringable

(PHP 8)

Introdução

A interface Stringable denota uma classe que tenha um método __toString(). Diferentemente da maioria das interfaces, Stringable está implicitamente presente em qualquer classe que possua o método mágico __toString() definido, embora ela possa e deveria ser declarada explicitamente.

Seu principal valor é permitir que funções façam verificações de tipo em uniões string|Stringable para aceitar tanto uma string primitiva quanto um objeto que possa ser convertido para uma string.

Resumo da Interface

interface Stringable {
/* Métodos */
public __toString(): string
}

Exemplos de Stringable

Exemplo #1 Uso Básico de Stringable

<?php
class IPv4Address implements Stringable {
private string $oct1;
private string $oct2;
private string $oct3;
private string $oct4;

public function __construct(string $oct1, string $oct2, string $oct3, string $oct4) {
$this->oct1 = $oct1;
$this->oct2 = $oct2;
$this->oct3 = $oct3;
$this->oct4 = $oct4;
}

public function __toString(): string {
return "$this->oct1.$this->oct2.$this->oct3.$this->oct4";
}
}

function showStuff(string|Stringable $value) {
// A Stringable will get converted to a string here by calling
// __toString.
print $value;
}

$ip = new IPv4Address('123', '234', '42', '9');

showStuff($ip);
?>

O exemplo acima produzirá algo semelhante a:

123.234.42.9

Índice

  • Stringable::__toString — Obtém a representação em string do objeto


Obtém a representação em string do objeto

  • « Stringable
  • UnitEnum »
  • PHP Manual
  • Stringable
  • Obtém a representação em string do objeto

Stringable::__toString

(PHP 8)

Stringable::__toString — Obtém a representação em string do objeto

Descrição

public Stringable::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a representação em string do objeto.

Veja Também

  • __toString()


A interface UnitEnum

(PHP 8 >= 8.1.0)

Introdução

A interface UnitEnum é aplicada automaticamente a todas as enumerações pelo motor do PHP. Não pode ser implementada por classes definidas pelo usuário. Enumerações não podem substituir seus métodos, já que implementações padrão são fornecidas pelo motor. Está disponível apenas para verificações de tipo.

Resumo da Interface

interface UnitEnum {
/* Métodos */
public static cases(): array
}

Índice

  • UnitEnum::cases — Gera uma lista de casos de uma enumeração


Gera uma lista de casos de uma enumeração

  • « UnitEnum
  • BackedEnum »
  • PHP Manual
  • UnitEnum
  • Gera uma lista de casos de uma enumeração

UnitEnum::cases

(PHP 8 >= 8.1.0)

UnitEnum::cases — Gera uma lista de casos de uma enumeração

Descrição

public static UnitEnum::cases(): array

Este método irá retornar um array de todos os casos de uma enumeração, em ordem de declaração.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array de todos os casos definidos desta enumeração, em ordem de declaração.

Exemplos

Exemplo #1 Uso básico

O exemplo a seguir ilustra como os casos de enumeração são retornados.

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

var_dump(Suit::cases());
?>

O exemplo acima produzirá:

array(4) {
    [0]=>
    enum(Suit::Hearts)
    [1]=>
    enum(Suit::Diamonds)
    [2]=>
    enum(Suit::Clubs)
    [3]=>
    enum(Suit::Spades)
}


A interface BackedEnum

(PHP 8 >= 8.1.0)

Introdução

A interface BackedEnum é aplicada automaticamente pelo motor do PHP a enumerações lastreadas. Não pode ser implementada por classes definidas pelo usuário. Enumerações não podem substituir seu métodos, já que as implementações padrões são fornecidas pelo motor. Está disponível apenas para verificações de tipo.

Resumo da Interface

interface BackedEnum extends UnitEnum {
/* Métodos */
public static from(int|string $value): static
public static tryFrom(int|string $value): ?static
/* Métodos herdados */
public static UnitEnum::cases(): array
}

Índice

  • BackedEnum::from — Mapeia um escalar para uma instância de enumeração
  • BackedEnum::tryFrom — Mapeia um escalar para uma instância de enumeração ou nulo


Mapeia um escalar para uma instância de enumeração

  • « BackedEnum
  • BackedEnum::tryFrom »
  • PHP Manual
  • BackedEnum
  • Mapeia um escalar para uma instância de enumeração

BackedEnum::from

(PHP 8 >= 8.1.0)

BackedEnum::from — Mapeia um escalar para uma instância de enumeração

Descrição

public static BackedEnum::from(int|string $value): static

O método from() traduz uma string ou um int para o caso correspondente do Enum, se houver. Se não houver caso correspondente definido, ele irá emitir um ValueError.

Parâmetros

value

O valor escalar a ser mapeado para um caso de enumeração.

Valor Retornado

Uma instância de caso para esta enumeração.

Exemplos

Exemplo #1 Uso Básico

O exemplo a seguir ilustra como os casos de enumeração são retornados.

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$h = Suit::from('H');

var_dump($h);

$b = Suit::from('B');
?>

O exemplo acima produzirá:

enum(Suit::Hearts)

Fatal error: Uncaught ValueError: "B" is not a valid backing value for enum "Suit" in /file.php:15

Veja Também

  • UnitEnum::cases() - Gera uma lista de casos de uma enumeração
  • BackedEnum::tryFrom() - Mapeia um escalar para uma instância de enumeração ou nulo


Mapeia um escalar para uma instância de enumeração ou nulo

  • « BackedEnum::from
  • SensitiveParameterValue »
  • PHP Manual
  • BackedEnum
  • Mapeia um escalar para uma instância de enumeração ou nulo

BackedEnum::tryFrom

(PHP 8 >= 8.1.0)

BackedEnum::tryFrom — Mapeia um escalar para uma instância de enumeração ou nulo

Descrição

public static BackedEnum::tryFrom(int|string $value): ?static

O método tryFrom() traduz uma string ou um int para o caso correspondente do Enum, se houver. Se não houver caso correspondente definido, ele irá retornar nulo.

Parâmetros

value

O valor escalar a ser mapeado para um caso de enumeração.

Valor Retornado

Uma instância de caso para esta enumeração, ou null se não encontrado.

Exemplos

Exemplo #1 Uso básico

O exemplo a seguir ilustra como os casos de enumeração são retornados.

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$h = Suit::tryFrom('H');

var_dump($h);

$b = Suit::tryFrom('B') ?? Suit::Spades;

var_dump($b);
?>

O exemplo acima produzirá:

enum(Suit::Hearts)
enum(Suit::Spades)

Veja Também

  • UnitEnum::cases() - Gera uma lista de casos de uma enumeração
  • BackedEnum::from() - Mapeia um escalar para uma instância de enumeração


A classe SensitiveParameterValue

(PHP 8 >= 8.2.0)

Introdução

A classe SensitiveParameterValue permite empacotar valores sensíveis para protegê-los de exposição acidental.

Valores de parâmetros que possuem o atributo SensitiveParameter serão automaticamente empacotados dentro de um objeto SensitiveParameterValue entre os rastreamentos de pilha.

Resumo da classe

final class SensitiveParameterValue {
/* Propriedades */
private readonly mixed $value;
/* Métodos */
public __construct(mixed $value)
public __debugInfo(): array
public getValue(): mixed
}

Propriedades

value

O valor sensível a ser protegido de exposição acidental.

Índice

  • SensitiveParameterValue::__construct — Constrói um novo objeto SensitiveParameterValue
  • SensitiveParameterValue::__debugInfo — Protege os valores sensíveis de exposição acidental
  • SensitiveParameterValue::getValue — Retorna o valor sensível


Constrói um novo objeto SensitiveParameterValue

  • « SensitiveParameterValue
  • SensitiveParameterValue::__debugInfo »
  • PHP Manual
  • SensitiveParameterValue
  • Constrói um novo objeto SensitiveParameterValue

SensitiveParameterValue::__construct

(PHP 8 >= 8.2.0)

SensitiveParameterValue::__construct — Constrói um novo objeto SensitiveParameterValue

Descrição

public SensitiveParameterValue::__construct(mixed $value)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

value

Um valor arbitrário que deve ser armazenado no objeto SensitiveParameterValue.


Protege os valores sensíveis de exposição acidental

  • « SensitiveParameterValue::__construct
  • SensitiveParameterValue::getValue »
  • PHP Manual
  • SensitiveParameterValue
  • Protege os valores sensíveis de exposição acidental

SensitiveParameterValue::__debugInfo

(PHP 8 >= 8.2.0)

SensitiveParameterValue::__debugInfo — Protege os valores sensíveis de exposição acidental

Descrição

public SensitiveParameterValue::__debugInfo(): array

Retorna um array vazio para proteger o valor sensível de exposição acidental quando var_dump() for usado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array vazio.

Exemplos

Exemplo #1 Passando um objeto SensitiveParameterValue para var_dump()

<?php
$s = new \SensitiveParameterValue('secret');

var_dump($s);
?>

O exemplo acima produzirá:

object(SensitiveParameterValue)#1 (0) {
}


Retorna o valor sensível

  • « SensitiveParameterValue::__debugInfo
  • Atributos Predefinidos »
  • PHP Manual
  • SensitiveParameterValue
  • Retorna o valor sensível

SensitiveParameterValue::getValue

(PHP 8 >= 8.2.0)

SensitiveParameterValue::getValue — Retorna o valor sensível

Descrição

public SensitiveParameterValue::getValue(): mixed

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor sensível.

Exemplos

Exemplo #1 Exemplo de SensitiveParameterValue::getValue()

<?php
$s = new \SensitiveParameterValue('secret');

echo "O valor protegido é: ", $s->getValue(), "\n";
?>

O exemplo acima produzirá:

O valor protegido é: secret


Atributos Predefinidos

Índice

  • Attribute
  • AllowDynamicProperties
  • Override
  • ReturnTypeWillChange
  • SensitiveParameter

O PHP fornece alguns atributos predefinidos que podem ser usados.


A classe Attribute

(PHP 8)

Introdução

As instâncias de Attribute oferecem a capacidade de adicionar informações estruturadas de metadados e legíveis por máquina em declarações no código: Classes, métodos, funções, parâmetros, propriedades e constantes de classes podem ser um alvo de um atributo. Os metadados definidos pelas instâncias podem ser inspecionados em tempo de execução pelas Reflection APIs. Dessa forma, os atributos podem ser pensados como uma linguagem de configuração incorporada diretamente no código.

Resumo da classe

final class Attribute {
/* Constantes */
const int TARGET_CLASS;
const int TARGET_FUNCTION;
const int TARGET_METHOD;
const int TARGET_PROPERTY;
const int TARGET_CLASS_CONSTANT;
const int TARGET_PARAMETER;
const int TARGET_ALL;
const int IS_REPEATABLE;
/* Propriedades */
public int $flags;
/* Métodos */
public __construct(int $flags = Attribute::TARGET_ALL)
}

Constantes pré-definidas

Attribute::TARGET_CLASS

Attribute::TARGET_FUNCTION

Attribute::TARGET_METHOD

Attribute::TARGET_PROPERTY

Attribute::TARGET_CLASS_CONSTANT

Attribute::TARGET_PARAMETER

Attribute::TARGET_ALL

Attribute::IS_REPEATABLE

Propriedades

flags

Veja Também

Visão geral dos atributos

Índice

  • Attribute::__construct — Constrói uma nova instância da classe Attribute


Constrói uma nova instância da classe Attribute

  • « Attribute
  • AllowDynamicProperties »
  • PHP Manual
  • Attribute
  • Constrói uma nova instância da classe Attribute

Attribute::__construct

(PHP 8)

Attribute::__construct — Constrói uma nova instância da classe Attribute

Descrição

public Attribute::__construct(int $flags = Attribute::TARGET_ALL)

Constrói um nova instância de Attribute.

Parâmetros

flags


A classe AllowDynamicProperties

(PHP 8 >= 8.2.0)

Introdução

Este atributo é usado para marcar classes que permitem propriedades dinâmicas.

Resumo da classe

final class AllowDynamicProperties {
/* Métodos */
public __construct()
}

Exemplos

As propriedades dinâmicas foram descontinuadas a partir do PHP 8.2.0, portanto, usá-las sem marcar a classe com este atributo emitirá um aviso de descontinuação.

<?php
class DefaultBehaviour { }

#[\AllowDynamicProperties]
class ClassAllowsDynamicProperties { }

$o1 = new DefaultBehaviour();
$o2 = new ClassAllowsDynamicProperties();

$o1->nonExistingProp = true;
$o2->nonExistingProp = true;
?>

Saída do exemplo acima no PHP 8.2:

Deprecated: Creation of dynamic property DefaultBehaviour::$nonExistingProp is deprecated in file on line 10

Veja Também

Visão geral dos atributos

Índice

  • AllowDynamicProperties::__construct — Constrói uma nova instância do atributo AllowDynamicProperties


Constrói uma nova instância do atributo AllowDynamicProperties

  • « AllowDynamicProperties
  • Override »
  • PHP Manual
  • AllowDynamicProperties
  • Constrói uma nova instância do atributo AllowDynamicProperties

AllowDynamicProperties::__construct

(PHP 8 >= 8.2.0)

AllowDynamicProperties::__construct — Constrói uma nova instância do atributo AllowDynamicProperties

Descrição

public AllowDynamicProperties::__construct()

Constrói uma nova instância de AllowDynamicProperties.

Parâmetros

Esta função não possui parâmetros.


A classe Override

(PHP 8 >= 8.3.0)

Introdução

Resumo da classe

final class Override {
/* Métodos */
public __construct()
}

Exemplos

<?php

class Base {
protected function foo(): void {}
}

final class Extended extends Base {
#[\Override]
protected function boo(): void {}
}

?>

A saída do exemplo acima no PHP 8.3 é semelhante a:

Fatal error: Extended::boo() has #[\Override] attribute, but no matching parent method exists

Veja Também

  • Visão geral de atributos

Índice

  • Override::__construct — Constrói uma nova instância de atributo Override


Constrói uma nova instância de atributo Override

  • « Override
  • ReturnTypeWillChange »
  • PHP Manual
  • Override
  • Constrói uma nova instância de atributo Override

Override::__construct

(PHP 8 >= 8.3.0)

Override::__construct — Constrói uma nova instância de atributo Override

Descrição

public Override::__construct()

Constrói uma nova instância de Override.

Parâmetros

Esta função não possui parâmetros.


A classe ReturnTypeWillChange

(PHP 8 >= 8.1.0)

Introdução

A maioria dos métodos internos não finais agora requerem que os métodos substitutos declarem um tipo de retorno compatível, caso contrário, um aviso de descontinuação é emitido durante a validação da herança. Caso o tipo de retorno não possa ser declarado para um método substituto devido a preocupação com compatibilidade entre versões do PHP, um atributo #[\ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Resumo da classe

final class ReturnTypeWillChange {
/* Métodos */
public __construct()
}

Veja Também

Visão geral dos atributos

Índice

  • ReturnTypeWillChange::__construct — Constrói uma nova instância do atributo ReturnTypeWillChange


Constrói uma nova instância do atributo ReturnTypeWillChange

  • « ReturnTypeWillChange
  • SensitiveParameter »
  • PHP Manual
  • ReturnTypeWillChange
  • Constrói uma nova instância do atributo ReturnTypeWillChange

ReturnTypeWillChange::__construct

(PHP 8 >= 8.1.0)

ReturnTypeWillChange::__construct — Constrói uma nova instância do atributo ReturnTypeWillChange

Descrição

public ReturnTypeWillChange::__construct()

Constrói uma nova instância de ReturnTypeWillChange.

Parâmetros

Esta função não possui parâmetros.


A classe SensitiveParameter

(PHP 8 >= 8.2.0)

Introdução

Esse atributo é usado para marcar um parâmetro que é confidencial e deve ter seu valor ocultado se estiver presente em um stack trace.

Resumo da classe

final class SensitiveParameter {
/* Métodos */
public __construct()
}

Exemplos

<?php

function defaultBehavior(
string $secret,
string $normal
) {
throw new Exception('Error!');
}

function sensitiveParametersWithAttribute(
#[\SensitiveParameter]
string $secret,
string $normal
) {
throw new Exception('Error!');
}

try {
defaultBehavior('password', 'normal');
} catch (Exception $e) {
echo $e, PHP_EOL, PHP_EOL;
}

try {
sensitiveParametersWithAttribute('password', 'normal');
} catch (Exception $e) {
echo $e, PHP_EOL, PHP_EOL;
}

?>

A saída do exemplo acima no PHP 8.2 é semelhante a:

Exception: Error! in example.php:7
Stack trace:
#0 example.php(19): defaultBehavior('password', 'normal')
#1 {main}

Exception: Error! in example.php:15
Stack trace:
#0 example.php(25): sensitiveParametersWithAttribute(Object(SensitiveParameterValue), 'normal')
#1 {main}

Veja Também

  • Visão geral dos atributos
  • SensitiveParameterValue

Índice

  • SensitiveParameter::__construct — Constrói uma nova instância do atributo SensitiveParameter


Constrói uma nova instância do atributo SensitiveParameter

  • « SensitiveParameter
  • Opções e parâmetros de contexto »
  • PHP Manual
  • SensitiveParameter
  • Constrói uma nova instância do atributo SensitiveParameter

SensitiveParameter::__construct

(PHP 8 >= 8.2.0)

SensitiveParameter::__construct — Constrói uma nova instância do atributo SensitiveParameter

Descrição

public SensitiveParameter::__construct()

Constrói uma nova instância de SensitiveParameter.

Parâmetros

Esta função não possui parâmetros.


Opções e parâmetros de contexto

O PHP oferece várias opções e parâmetros de contexto que podem ser usados com todos os sistemas de arquivos e empacotadores de streams. O contexto é criado com a função stream_context_create(). As opções são definidas com a função stream_context_set_option() e os parâmetros com a função stream_context_set_params().

Índice

  • Opções de contexto de Socket — Lista de opções de contexto de Socket
  • Opções de contexto do HTTP — Lista de opções de contexto do HTTP
  • Opções de contexto do FTP — Lista de opções de contexto do FTP
  • Opções de contexto de SSL — Lista de opções de contexto de SSL
  • Opções de contexto do Phar — Lista de opções de contexto do Phar
  • Parâmetros de contexto — Listagem de parâmetros de contexto
  • Opções de contexto para Zip — Listagem de opções de contexto para Zip
  • Opções de contexto Zlib — Listagem de opções de contexto Zlib


Lista de opções de contexto de Socket

  • « Opções e parâmetros de contexto
  • Opções de contexto do HTTP »
  • PHP Manual
  • Opções e parâmetros de contexto
  • Lista de opções de contexto de Socket

Opções de contexto de Socket

Opções de contexto de Socket — Lista de opções de contexto de Socket

Descrição

As opções de contextos para Socket estão disponível em todos os empacotadores que trabalham em sockets, como tcp, http e ftp.

Opções

bindto

Utilizado para especificar o endereço IP (tanto IPv4 quanto IPv6) e/ou o número da porta que o PHP usará para acessar a rede. A sintaxe é ip:port para endereços IPv4, e [ip]:port para endereços IPv6. Definir o IP ou a porta com 0 fará com que o sistema escolha o IP e/ou a porta.

Nota:

Como o FTP cria duas conexões socket durante sua operação normal, o número da porta não poderá ser especificado ao se usar esta opção.

backlog

Utilizado para limitar o número de conexões excedentes na fila de escuta do socket.

Nota:

Este parâmetro só é aplicável na função stream_socket_server().

ipv6_v6only

Sobrescreve a diretiva do sistema operacional no que se refere ao mapeamento IPv4 em IPv6.

Nota:

Isto é importante quando tentando ouvir em um endereço IPv4 separadamente da existência de um binding em [::].

Somente aplicável em stream_socket_server().

so_reuseport

Permite várias bindings no mesmo IP:porta, mesmo de processos separados.

Nota:

Somente aplicável em stream_socket_server().

so_broadcast

Permite enviar e receber dados de/para endereços de broadcast.

Nota:

Somente aplicável a stream_socket_server().

tcp_nodelay

Ao ativar essa opção com true será configurado SOL_TCP,NO_DELAY=1, de forma a desabilitar o algorítimo Nagle TCP.

Registro de Alterações

Versão | Descrição
7.1.0 | Adicionado o parâmetro tcp_nodelay.
7.0.1 | Adicionado o parâmetro ipv6_v6only.

Exemplos

Exemplo #1 Exemplo básico de uso do parâmetro bindto

<?php
// connect to the internet using the '192.168.0.100' IP
$opts = array(
'socket' => array(
'bindto' => '192.168.0.100:0',
),
);

// connect to the internet using the '192.168.0.100' IP and port '7000'
$opts = array(
'socket' => array(
'bindto' => '192.168.0.100:7000',
),
);

// connect to the internet using the '2001:db8::1' IPv6 address
// and port '7000'
$opts = array(
'socket' => array(
'bindto' => '[2001:db8::1]:7000',
),
);

// connect to the internet using port '7000'
$opts = array(
'socket' => array(
'bindto' => '0:7000',
),
);

// create the context...
$context = stream_context_create($opts);

// ...and use it to fetch the data
echo file_get_contents('http://www.example.com', false, $context);

?>


Lista de opções de contexto do HTTP

  • « Opções de contexto de Socket
  • Opções de contexto do FTP »
  • PHP Manual
  • Opções e parâmetros de contexto
  • Lista de opções de contexto do HTTP

Opções de contexto do HTTP

Opções de contexto do HTTP — Lista de opções de contexto do HTTP

Descrição

Opções de contexto dos transportadores http:// e https://.

Opções

method string

GET, POST, ou qualquer outro método HTTP suportado pelo servidor remoto.

GET como padrão.

header array or string

Cabeçalhos adicionais que deverrão ser enviados durante a requisição. Valores nesta opção sobrescreverão outros valores (como User-agent:, Host:, e Authentication:), mesmo ao seguir redirecionamentos Location:. Portanto não é recomendado definir um cabeçalho Host:, se follow_location estiver habilitada.

user_agent string

Valor a ser enviado no cabeçalho User-Agent:. Esta valor só será utilizado se o user-agent não for especificado na opção de contexto header acima.

Por padrão, a configuração user_agent no php.ini é utilizada.

content string

Dados adicionais a serem enviados depois dos cabeçalhos. Tipicamente utilizado em requisições POST ou PUT.

proxy string

URI que especifica o endereço do servidor de proxy. (por exemplo, tcp://proxy.example.com:5100).

request_fulluri bool

Quando definido como true, toda a URI será utilizada na construção da requisição. (por exemplo GET http://www.example.com/path/to/file.html HTTP/1.0). Mesmo não sendo um formato padronizado de requisição, alguns servidores de proxy o exigem.

false como padrão.

follow_location int

Segue os redirecionamentos feitos com o cabeçalho Location. Defina com 0 para desabilitar.

1 como padrão.

max_redirects int

O número máximo de redirecionamentos a serem feitos. O valor 1 ou inferiores significarão que os redirecionamentos não são feitos.

20 como padrão.q

protocol_version float

Versão do protocolo HTTP.

O padrão é 1.1 a partir do PHP 8.0.0; antes dessa versão o padrão era 1.0.

timeout float

Timeout de leitura em segundos, especificado com um float (por exemplo, 10.5).

Por padrão, a configuração default_socket_timeout do php.ini é utilizada.

ignore_errors bool

Retorna o conteúdo mesmo que códigos de status falhos sejam retornados.

false.

Exemplos

Exemplo #1 Buscando uma página e enviando dados pelo método POST

<?php

$postdata = http_build_query(
array(
'var1' => 'some content',
'var2' => 'doh'
)
);

$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);

$context = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

Exemplo #2 Ignorando redirecionamentos, mas trazendo os cabeçalhos e conteúdo

<?php

$url = "http://www.example.org/header.php";

$opts = array('http' =>
array(
'method' => 'GET',
'max_redirects' => '0',
'ignore_errors' => '1'
)
);

$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);

// header information as well as meta data
// about the stream
var_dump(stream_get_meta_data($stream));

// actual data at $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>

Notas

Nota: Opções de contextos de streams socket básicos
Opções de contextos adicionais podem ser suportadas em transportes básicos Em streams http://, use as opções de contexto do transporte tcp://. Em streams https://, use as opções de contexto do transporte ssl://.

Nota: Linha de status HTTP
Quando este empacotador de stream faz um redirecionamento, o wrapper_data retornado pela função stream_get_meta_data() pode não conter necessariamente a linha de status HTTP, que atualmente se aplica ao conteúdo no índice 0.

array (
  'wrapper_data' =>
  array (
    0 => 'HTTP/1.0 301 Moved Permanently',
    1 => 'Cache-Control: no-cache',
    2 => 'Connection: close',
    3 => 'Location: http://example.com/foo.jpg',
    4 => 'HTTP/1.1 200 OK',
    ...
A primeira requisição retornou 301 (redirecionamento permanente), então o empacotador de stream automaticamente fará o redirecionamento para conseguir uma resposta 200 (índice = 4).

Veja Também

  • http://
  • Opções de contexto de Socket
  • Opções de contexto de SSL


Lista de opções de contexto do FTP

  • « Opções de contexto do HTTP
  • Opções de contexto de SSL »
  • PHP Manual
  • Opções e parâmetros de contexto
  • Lista de opções de contexto do FTP

Opções de contexto do FTP

Opções de contexto do FTP — Lista de opções de contexto do FTP

Descrição

Opções de contexto para os transportadores ftp:// e ftps://.

Opções

overwrite bool

Permite a sobreescrita de arquivos existentes no servidor remoto. Aplicável somente no modo de escrita (uploading).

false como padrão.

resume_pos int

Deslocamento do arquivo a se começar a transferência. Aplicável somente no modo de leitura (downloading).

0 (Início do arquivo), como padrão.

proxy string

Requisição Proxy FTP pelo servidor proxy http. Aplicável em arquivos somente em operações de leitura. Ex: tcp://squid.example.com:8000.

Notas

Nota: Opções de contextos de streams socket básicos
Opções de contextos adicionais podem ser suportadas em transportes básicos Em streams ftp://, use as opções de contexto do transporte tcp://. Em streams ftps://, use as opções de contexto do transporte ssl://.

Veja Também

  • ftp://
  • Opções de contexto de Socket
  • Opções de contexto de SSL


Lista de opções de contexto de SSL

  • « Opções de contexto do FTP
  • Opções de contexto do Phar »
  • PHP Manual
  • Opções e parâmetros de contexto
  • Lista de opções de contexto de SSL

Opções de contexto de SSL

Opções de contexto de SSL — Lista de opções de contexto de SSL

Descrição

Opções de contexto dos transportadores ssl:// e tls://.

Opções

peer_name string

Nome do peer a ser utilizado. Se este valor não for defino, o nome será adivinhado com base no nome do host utilizado na abertura da stream.

verify_peer bool

Exige a verificação do certificado SSL utilizado.

true como padrão.

verify_peer_name bool

Exige a verificação do nome do peer.

true como padrão.

allow_self_signed bool

Permite certificados auto assinados. Necessita o parâmetro verify_peer.

false como padrão.

cafile string

Localização do arquivo de Autoridade Certificadora no sistema de arquivos que deve ser usado pela opção de contexto verify_peer para autenticar a identidade do peer remoto.

capath string

Se a opção cafile não for especificada, ou o certificado não for encontrado, o diretório apontado pela opção capath será utilizado na busca de um certificado adequado. A opção capath deve ser um diretório de certificado com hash correto.

local_cert string

Caminho para o certificado local no sistema de arquivos. Deve ser um arquivo PEM codificado que contém seu certificado e chave privada. Pode opcionalmente conter a cadeia de certificados dos emitentes. A chave privada também pode estar em um arquivo separado especificada pela opção local_pk.

local_pk string

Caminho para a chave privada local no sistema de arquivos, em caso de se usar arquivos separados para o certificado (local_cert) e a chave privada.

passphrase string

Senha usada para codificar seu arquivo local_cert

verify_depth int

Abortará se a cadeia de certificados for muito profunda.

Não verificar por padrão.

ciphers string

Define a lista de cifras disponíveis. O formato desta string é descrita em » ciphers(1).

DEFAULT como padrão.

capture_peer_cert bool

Se definida como true, a opção de contexto peer_certificate será criada contendo o certificado peer.

capture_peer_cert_chain bool

Se definida como true, a opção de contexto peer_certificate_chain será criada contendo a cadeia certificadora.

SNI_enabled bool

Se definida como true, o indicador do nome do servidor será habilitado. Habilitar a SNI permite múltiplos certificados no mesmo endereço IP.

disable_compression bool

Se definida, desabilita a compressão TLS. Pode ajudar a mitigar o ataque de vetor criminoso.

peer_fingerprint string | array

Abortará quando o certificado resumido remoto não corresponder a um hash especificado.

Quando uma string for utilizada, o tamanho determinará qual algoritmo de hash será aplicado, "md5" (32) ou "sha1" (40).

Quando um array for utilizado, as chaves indicarão o nome do hash e os valores correspondentes ao resumo esperado.

security_level int

Define o nível de segurança. Se não especificado, o padrão da biblioteca é usado. Os níveis de segurança são descritos em » SSL_CTX_get_security_level(3).

Disponível a partir do PHP 7.2.0 e OpenSSL 1.1.0.

Registro de Alterações

Versão | Descrição
7.2.0 | Adicionado security_level. Requer OpenSSL >= 1.1.0.

Notas

Nota: Por ssl:// ser um transporte básico para os empacotadores https:// e ftps://, qualquer opção de contexto aplicáveis a ssl://, também se aplicam a https:// e ftps://.

Nota: Para SNI (Server Name Indication) estar disponível, o PHP deve ser compilado com o OpenSSL 0.9.8j ou superior. Utilize a constante OPENSSL_TLSEXT_SERVER_NAME para determinar o suporte ao SNI.

Veja Também

  • Opções de contexto de Socket


Lista de opções de contexto do Phar

  • « Opções de contexto de SSL
  • Parâmetros de contexto »
  • PHP Manual
  • Opções e parâmetros de contexto
  • Lista de opções de contexto do Phar

Opções de contexto do Phar

Opções de contexto do Phar — Lista de opções de contexto do Phar

Descrição

Opções de contexto do empacotador phar://.

Opções

compress int

Uma das constantes de compressão do Phar.

metadata mixed

Metadado do Phat. Veja o método Phar::setMetadata().

Veja Também

  • phar://
  • Empacotador de stream do Phar


Listagem de parâmetros de contexto

  • « Opções de contexto do Phar
  • Opções de contexto para Zip »
  • PHP Manual
  • Opções e parâmetros de contexto
  • Listagem de parâmetros de contexto

Parâmetros de contexto

Parâmetros de contexto — Listagem de parâmetros de contexto

Descrição

Estes parameters podem ser definidos em um context usando a função stream_context_set_params().

Parâmetros

notification callable

Um callable pode ser chamado quando um evento ocorre em um stream.

Veja stream_notification_callback para mais detalhes.


Listagem de opções de contexto para Zip

  • « Parâmetros de contexto
  • Opções de contexto Zlib »
  • PHP Manual
  • Opções e parâmetros de contexto
  • Listagem de opções de contexto para Zip

Opções de contexto para Zip

Opções de contexto para Zip — Listagem de opções de contexto para Zip

Descrição

Opções de contexto para Zip estão disponíveis para empacotadores zip.

Opções

password

Utilizado para especificar a senha definida para o arquivo criptografado.

Registro de Alterações

Versão | Descrição
PHP 7.2.0, PECL zip 1.14.0 | Incluído o parâmetro password.

Exemplos

Exemplo #1 Exemplo básico de uso de password

<?php
// Ler o arquivo criptografado
$opts = array(
'zip' => array(
'password' => 'secret',
),
);
// criar o contexto...
$context = stream_context_create($opts);

// ...e usá-lo para obter os dados
echo file_get_contents('zip://test.zip#test.txt', false, $context);

?>


Listagem de opções de contexto Zlib

  • « Opções de contexto para Zip
  • Protocolos e Wrappers suportados »
  • PHP Manual
  • Opções e parâmetros de contexto
  • Listagem de opções de contexto Zlib

Opções de contexto Zlib

Opções de contexto Zlib — Listagem de opções de contexto Zlib

Descrição

Opções de contexto Zlib estão disponíveis para empacotadores zlib.

Opções

level

Usado para especificar o nível de compressão (0 - 9).

Registro de Alterações

Versão | Descrição
7.3.0 | O parâmetro level foi incluído.


Protocolos e Wrappers suportados

O PHP vem com muitos wrappers para vários protocolos URL-style para uso com as funções do sistema de arquivos, tais como fopen(), copy(), file_exists() e filesize(). Além desses wrappers é possível registrar wrappers customizados usando a função stream_wrapper_register().

Nota: A sintaxe de URL usada para descrever um wrapper suporta apenas a sintaxe scheme://.... As sintaxes scheme:/ e scheme: não são suportadas.

Índice

  • file:// — Acessando o sistema de arquivos local
  • http:// — Acessando URLs HTTP(s)
  • ftp:// — Acessando URLs FTP(s)
  • php:// — Acessando vários fluxos de E/S
  • zlib:// — Streams de compactação
  • data:// — Dados (RFC 2397)
  • glob:// — Encontra caminhos que correspondem a um padrão
  • phar:// — Arquivo PHP
  • ssh2:// — Shell Seguro 2
  • rar:// — RAR
  • ogg:// — Streams de áudio
  • expect:// — Fluxos de Interação entre Processos


Acessando o sistema de arquivos local

  • « Protocolos e Wrappers suportados
  • http:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Acessando o sistema de arquivos local

file://

file:// — Acessando o sistema de arquivos local

Descrição

Filesystem é o empacotador padrão usado com o PHP e representa o sistema de arquivos local. Quando um caminho relativo é especificado, (um caminho que não começa com /, \, \\, ou uma letra de unidade do Windows) o caminho fornecido será aplicado ao diretório atual de trabalho. Em muitos casos este é o diretório no qual o script reside a menos que tenha sido alterado. Usando o CLI sapi, o padrão é o diretório do qual o script foi chamado.

Com algumas funções, como fopen() e file_get_contents(), include_path pode opcionalmente ser pesquisado com caminho relativo da mesma forma.

Uso

  • /caminho/para/arquivo.ext
  • caminho/relativo/para/arquivo.ext
  • arquivoNoDiretorioAtual.ext
  • C:/caminho/para/arquivoWindows.ext
  • C:\caminho\para\arquivoWindows.ext
  • \\smbserver\share\caminho\para\arquivoWindows.ext
  • file:///caminho/para/arquivo.ext

Opções

Sumário do Empacotador
Atributo | Suportado
Restrito por allow_url_fopen | Não
Permite Leitura | Sim
Permite Escrita | Sim
Permite Adição | Sim
Permite Leitura e Escrita Simultâneas | Sim
Suporta stat() | Sim
Suporta unlink() | Sim
Suporta rename() | Sim
Suporta mkdir() | Sim
Suporta rmdir() | Sim


Acessando URLs HTTP(s)

  • « file://
  • ftp:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Acessando URLs HTTP(s)

http://

https://

http:// -- https:// — Acessando URLs HTTP(s)

Descrição

Permite acesso somente leitura a arquivos/recursos via HTTP. Por padrão um GET HTTP 1.0 é usado. Um cabeçalho Host: é enviado com a requisição para lidar com hosts virtuais baseados em nomes. Se estiver configurado uma string user_agent no arquivo php.ini ou no contexto do fluxo, ele também será incluído na requisição.

O fluxo permite acesso ao corpo do recurso; os cabeçalhos são armazenados na variável $http_response_header.

Se for importante conhecer o URL do recurso de onde o documento se originou (depois de todos os redirecionamentos processados), será necessário processar a série de cabeçalhos de resposta retornados pelo fluxo.

A diretiva from será usada para o cabeçalho From: se definida e não sobrescrita pelo Opções e parâmetros de contexto.

Uso

  • http://example.com
  • http://example.com/arquivo.php?var1=val1&var2=val2
  • http://usuario:senha@example.com
  • https://example.com
  • https://example.com/arquivo.php?var1=val1&var2=val2
  • https://usuario:senha@example.com

Opções

Sumário do Empacotador
Atributo | Suportado
Restrito por allow_url_fopen | Sim
Permite Leitura | Sim
Permite Escrita | Não
Permite Adição | Não
Permite Leitura e Escrita Simultâneas | N/A
Suporta stat() | Não
Suporta unlink() | Não
Suporta rename() | Não
Suporta mkdir() | Não
Suporta rmdir() | Não

Exemplos

Exemplo #1 Detectando a qual se chegou depois de todos os redirecionamentos

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

$meta_data = stream_get_meta_data($fp);
foreach ($meta_data['wrapper_data'] as $response) {

/* Fomos redirecionados? */
if (strtolower(substr($response, 0, 10)) == 'location: ') {

/* atualiza $url para onde fomos redirecionados */
$url = substr($response, 10);
}

}

?>

Notas

Nota: HTTPS só é suportado quando a extensão openssl estiver habilitada.

Conexões HTTP são somente leitura; escrever dados ou copiar arquivos para um recurso HTTP não é suportado.

Enviar requisições POST e PUT, por exemplo, pode ser feito com a ajuda de Contextos HTTP.

Veja Também

  • Opções de contexto do HTTP
  • $http_response_header
  • stream_get_meta_data() - Obtém cabeçalhos/metadados de ponteiros de arquivos/fluxos


Acessando URLs FTP(s)

  • « http://
  • php:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Acessando URLs FTP(s)

ftp://

ftps://

ftp:// -- ftps:// — Acessando URLs FTP(s)

Descrição

Permite acesso de leitura a arquivos existentes e criação de novos arquivos via FTP. Se o servidor não suportar modo ftp passivo, a conexão irá falhar.

Pode-se abrir arquivos tanto para leitura quanto para escrita, mas não para ambos simultaneamente. Se o arquivo remoto já existe no servidor ftp e houver tentativa de abri-lo para escrita, mas não estiver especificada a opção de contexto overwrite, a conexão irá falhar. Se for necessário sobrescrever os arquivos existentes via ftp, deve-se especificar a opção overwrite no contexto e abrir o arquivo para escrita. Alternativamente, pode ser usada a extensão FTP.

Se estiver configurada a diretiva from no php.ini, então este valor será enviado como a senha do FTP anônimo.

Uso

  • ftp://example.com/pub/arquivo.txt
  • ftp://usuario:senha@example.com/pub/arquivo.txt
  • ftps://example.com/pub/arquivo.txt
  • ftps://usuario:senha@example.com/pub/arquivo.txt

Opções

Sumário do Empacotador
Atributo | Suportado
Restrito por allow_url_fopen | Sim
Permite Leitura | Sim
Permite Escrita | Sim (new files/existing files with overwrite)
Permite Adição | Sim
Permite Leitura e Escrita Simultâneas | No
Suporta stat() | Somente os elementos filesize(), filemtime(), filetype(), file_exists(), is_file() e is_dir().
Suporta unlink() | Sim
Suporta rename() | Sim
Suporta mkdir() | Sim
Suporta rmdir() | Sim

Notas

Nota:

FTPS somente é suportado quando a extensão openssl estiver habilitada.

Se o servidor não suportar SSL, então a conexão cairá para um ftp comum não criptografado.

Nota: Adição
Arquivos podem ter conteúdo acrescentado pelo empacotador de URL ftp://.

Veja Também

  • Opções de contexto do FTP


Acessando vários fluxos de E/S

  • « ftp://
  • zlib:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Acessando vários fluxos de E/S

php://

php:// — Acessando vários fluxos de E/S

Descrição

O PHP fornece um número de fluxos de E/S miscelâneos que permitem acesso aos fluxos de entrada e saída do próprio PHP, a entrada padrão, descritores de arquivo de saída e de erro, fluxos de arquivos temporário em memória e em disco, e filtros que podem manipular outros recursos de arquivo enquanto eles são lidos ou escritos.

php://stdin, php://stdout e php://stderr

php://stdin, php://stdout e php://stderr permitem acesso direto ao fluxo correspondente de entrada ou saída do processo PHP. O fluxo referencia um descritor de arquivo duplicado, para que quando um php://stdin for aberto e depois fechado, apenas a cópia do descritor será fechada - o fluxo real referenciado por STDIN não é afetado. Recomenda-se que as contantes STDIN, STDOUT e STDERR sejam usadas no lugar de abrir manualmente os fluxos utilizando estes empacotadores.

php://stdin é somente leitura, enquanto que php://stdout e php://stderr são somente escrita.

php://input

php://input é um fluxo somente leitura que permite a leitura de dados brutos do corpo da requisição. php://input não está disponível em requisições POST com enctype="multipart/form-data" se a opção enable_post_data_reading estiver habilitada.

php://output

php://output é um fluxo somente escrita que permite escrita ao mecanismo de buffer de saída da mesma maneira que print e echo.

php://fd

php://fd permite acesso direto ao descritor de arquivo fornecido. Por exemplo, php://fd/3 se refere ao descritor de arquivo 3.

php://memory e php://temp

php://memory e php://temp são fluxos somente leitura que permitem que dados temporários sejam armazenados em um empacotador parecido com um arquivo. Uma diferença entre os dois é que php://memory irá sempre armazenar seus dados na memória, enquanto que php://temp irá usar um arquivo temporário assim que a quantidade de dado armazenado atingir um limite predefinido (o padrão é 2 MB). A localização deste arquivo temporário é determinada da mesma forma que a função sys_get_temp_dir().

O limite de memória de php://temp pode ser controlado concatenando-se /maxmemory:NN, onde NN é a quantidade máxima de dados a manter na memória antes de usar um arquivo temporário, em bytes.

Cuidado

Algumas extensões PHP podem requerer um fluxo padrão de E/S, e podem tentar converter um fluxo fornecido para um fluxo de E/S padrão. Esta conversão pode falhar para fluxos de memória já que ela requer que a função C fopencookie() esteja dispnível. Esta função C não está disponível no Windows.

php://filter

php://filter é um tipo de meta-empacotador projetado para permitir a aplicação de filtros a um fluxo no momento da abertura. Isto é útil para funções de arquivo completas como readfile(), file() e file_get_contents() pois não haveria oportunidade de aplicar um filtro ao fluxo antes que os conteúdo fosse lido.

O alvo do php://filter utiliza os parâmetros a seguir como parte de seu caminho. Cadeias múltiplas de filtro podem ser especificadas em um caminho. Favor referir-se aos exemplos para especificidades no uso destes parâmetros.

Parâmetros de php://filter
Nome | Descrição
resource=<fluxo a ser filtrado> | Este parâmetro é requerido. Ele especifica o fluxo que deseja-se filtrar.
read=<lista de filtros a aplicar à cadeia de leitura> | Este parâmetro é opcional. Um ou mais nomes de filtros podem ser fornecidos, separados pelo caractere de barra vertical (|).
write=<lista de filtros a aplicar à cadeia de escrita> | Este parâmetro é opcional. Um ou mais nomes de filtros podem ser fornecidos, separados pelo caractere de barra vertical (|).
<lista de filtros a aplicar a ambas as cadeias> | Quaisquer listas de filtros que não são prefixadas por read= ou write= serão aplicadas tanto às cadeias de leitura quanto às de escrita, conforme apropriado.

Opções

Sumário do Empacotador (para php://filter, refira-se ao sumário do empacotador sendo filtrado)
Atributo | Suportado
Restrito por allow_url_fopen | Não
Restrito por allow_url_include | php://input, php://stdin, php://memory e php://temp somente.
Permite Leitura | php://stdin, php://input, php://fd, php://memory e php://temp somente.
Permite Escrita | php://stdout, php://stderr, php://output, php://fd, php://memory e php://temp somente.
Permite Adição | php://stdout, php://stderr, php://output, php://fd, php://memory e php://temp somente. (Equivalente a escrita)
Permite Leitura e Escrita Simultâneas | php://fd, php://memory e php://temp somente.
Suporta stat() | Não. Entretanto, php://memory e php://temp suportam fstat().
Suporta unlink() | Não
Suporta rename() | Não
Suporta mkdir() | Não
Suporta rmdir() | Não
Suporta stream_select() | php://stdin, php://stdout, php://stderr, php://fd e php://temp somente.

Exemplos

Exemplo #1 php://temp/maxmemory

Este parâmetro opcional permite configurar o limite de memória antes que php://temp comece a usar um arquivo temporário.

<?php
// Define o limite para 5 MB.
$fiveMBs = 5 * 1024 * 1024;
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');

fputs($fp, "hello\n");

// Lê o que foi escrito.
rewind($fp);
echo stream_get_contents($fp);
?>

Exemplo #2 php://filter/resource=<fluxo a ser filtrado>

Este parâmetro deve ser localizado no final da especificação php://filter e deve apontado ao fluxo que deseja-se filtrar.

<?php
/* Isto é equivalente a simplesmente:
readfile("http://www.example.com");
já que nenhum filtro é realmente especificado */

readfile("php://filter/resource=http://www.example.com");
?>

Exemplo #3 php://filter/read=<lista de filtros a aplicar à cadeia de leitura>

Este parâmetro leva um ou mais nomes de filtros separados pelo caractere de barra vertical |.

<?php
/* Isto irá mostrar o conteúdo de
www.example.com inteiramente em letras maiúsculas */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");

/* Isto fará o mesmo que o comando acima
mas também irá codificar com ROT13 */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>

Exemplo #4 php://filter/write=<lista de filtros a aplicar à cadeia de escrita>

Este parâmetro leva um ou mais nomes de filtros separados pelo caractere de barra vertical |.

<?php
/* Isto irá filtrar a string "Olá Mundo"
através do filtro rot13 filter, e então escrever no
exemplo.txt no diretório atual */
file_put_contents("php://filter/write=string.rot13/resource=exemplo.txt","Olá Mundo");
?>

Exemplo #5 php://memory e php://temp não são reutilizáveis

php://memory e php://temp não são reutilizáveis, isto é, depois que os fluxos foram fechados não há como referir-se a eles novamente.

file_put_contents('php://memory', 'PHP');
echo file_get_contents('php://memory'); // não imprime nada


Streams de compactação

  • « php://
  • data:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Streams de compactação

zlib://

bzip2://

zip://

zlib:// -- bzip2:// -- zip:// — Streams de compactação

Descrição

compress.zlib:// e compress.bzip2://

zlib: funciona como gzopen(), exceto que o stream pode ser usado com fread() e outras funções do sistema de arquivos. Isso foi descontinuado devido a ambiguidades com nomes de arquivos contendo caracteres ':'; use compress.zlib:// em vez disso.

compress.zlib:// e compress.bzip2:// são equivalentes para gzopen() e bzopen() respectivamente, e funcionam mesmo em sistemas que não suportam fopencookie.

A extensão ZIP registra o wrapper zip:. a partir do PHP 7.2.0 e libzip 1.2.0+, foi adicionado suporte para as senhas para arquivos criptografados, permitindo que as senhas sejam fornecidas por stream contexts. As senhas podem ser definidas usando 'password', uma opção de contexto de streams.

Uso

  • compress.zlib://file.gz
  • compress.bzip2://file.bz2
  • zip://archive.zip#dir/file.txt

Opções

Resumo do Wrapper
Atributo | Suportado
Restringido por allow_url_fopen | Não
Permite Leitura | Sim
Permite Escrita | Sim (exceto zip://)
Permite Adição | Sim (exceto zip://)
Permite Leitura e Escrita Simultâneas | Não
Suporta stat() | Não, use o wrapper file:// para verificar o stat de arquivos compactados.
Suporta unlink() | Não, use o wrapper file:// para excluir arquivos compactados.
Suporta rename() | Não
Suporta mkdir() | Não
Suporta rmdir() | Não

Veja Também

  • Opções de contexto Zlib


Dados (RFC 2397)

  • « zlib://
  • glob:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Dados (RFC 2397)

data://

data:// — Dados (RFC 2397)

Descrição

O empacotador de fluxo data: (» RFC 2397).

Uso

  • data://text/plain;base64,

Opções

Sumário do Empacotador
Atributo | Suportado
Restrito por allow_url_fopen | Sim
Restrito por allow_url_include | Sim
Permite Leitura | Sim
Permite Escrita | Não
Permite Adição | Não
Permite Leitura e Escrita Simultâneas | Não
Suporta stat() | Não
Suporta unlink() | Não
Suporta rename() | Não
Suporta mkdir() | Não
Suporta rmdir() | Não

Exemplos

Exemplo #1 Imprimir conteúdo de data://

<?php
// prints "I love PHP"
echo file_get_contents('data://text/plain;base64,SSBsb3ZlIFBIUAo=');
?>

Exemplo #2 Obtém o tipo de mídia

<?php
$fp = fopen('data://text/plain;base64,', 'r');
$meta = stream_get_meta_data($fp);

// prints "text/plain"
echo $meta['mediatype'];
?>


Encontra caminhos que correspondem a um padrão

  • « data://
  • phar:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Encontra caminhos que correspondem a um padrão

glob://

glob:// — Encontra caminhos que correspondem a um padrão

Descrição

O empacotador de fluxo glob:.

Uso

  • glob://

Opções

Sumário do Empacotador
Atributo | Suportado
Restrito por allow_url_fopen | Não
Restrito por allow_url_include | Não
Permite Leitura | Não
Permite Escrita | Não
Permite Adição | Não
Permite Leitura e Escrita Simultâneas | Não
Suporta stat() | Não
Suporta unlink() | Não
Suporta rename() | Não
Suporta mkdir() | Não
Suporta rmdir() | Não

Exemplos

Exemplo #1 Uso básico

<?php
// Percorre todos os arquivos *.php no diretório ext/spl/examples/
// e mostra o nome do arquivo e seu tamanho
$it = new DirectoryIterator("glob://ext/spl/examples/*.php");
foreach($it as $f) {
printf("%s: %.1FK\n", $f->getFilename(), $f->getSize()/1024);
}
?>
tree.php: 1.0K
findregex.php: 0.6K
findfile.php: 0.7K
dba_dump.php: 0.9K
nocvsdir.php: 1.1K
phar_from_dir.php: 1.0K
ini_groups.php: 0.9K
directorytree.php: 0.9K
dba_array.php: 1.1K
class_tree.php: 1.8K


Arquivo PHP

  • « glob://
  • ssh2:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Arquivo PHP

phar://

phar:// — Arquivo PHP

Descrição

O empacotador de fluxo phar://. Consulte Empacotador de fluxo Phar para uma descrição detalhada.

Uso

  • phar://

Opções

Sumário do Empacotador
Atributo | Suportado
Restrito por allow_url_fopen | Não
Restrito por allow_url_include | Não
Permite Leitura | Sim
Permite Escrita | Sim
Permite Adição | Não
Permite Leitura e Escrita Simultâneas | Sim
Suporta stat() | Sim
Suporta unlink() | Sim
Suporta rename() | Sim
Suporta mkdir() | Sim
Suporta rmdir() | Sim

Veja Também

  • Opções de contexto do Phar


Shell Seguro 2

  • « phar://
  • rar:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Shell Seguro 2

ssh2://

ssh2:// — Shell Seguro 2

Descrição

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// (PECL)

Nota: Este empacotador não é habilitado por padrão.
Para utilizar os empacotadores ssh2.*://, a extensão » SSH2 disponível em » PECL deve estar instalada.

Além de aceitar detalhes de login URI tradicionais, os empacotadores ssh2 também farão reúso de conexões abertas através da passagem do recurso da conexão na parte do host da URL.

Uso

  • ssh2.shell://usuario:senha@example.com:22/xterm
  • ssh2.exec://usuario:senha@example.com:22/usr/local/bin/algumcomando
  • ssh2.tunnel://usuario:senha@example.com:22/192.168.0.1:14
  • ssh2.sftp://usuario:senha@example.com:22/caminho/para/arquivo

Opções

Sumário do Empacotador
Atributo | ssh2.shell | ssh2.exec | ssh2.tunnel | ssh2.sftp | ssh2.scp
Restrito por allow_url_fopen | Sim | Sim | Sim | Sim | Sim
Permite Leitura | Sim | Sim | Sim | Sim | Sim
Permite Escrita | Sim | Sim | Sim | Sim | Não
Permite Adição | Não | Não | Não | Sim (quando suportado pelo servidor) | Não
Permite Leitura e Escrita Simultâneas | Sim | Sim | Sim | Sim | Não
Suporta stat() | Não | Não | Não | Sim | Não
Suporta unlink() | Não | Não | Não | Sim | Não
Suporta rename() | Não | Não | Não | Sim | Não
Suporta mkdir() | Não | Não | Não | Sim | Não
Suporta rmdir() | Não | Não | Não | Sim | Não

Opções de contexto
Nome | Uso | Padrão
session | Recurso ssh2 pré-conectado a ser reutilizado |
sftp | Recurso sftp pré-alocado a ser reutilizado |
methods | Métodos de troca de chaves, de chave de host, de cifras, de compressão e de MAC a serem usados |
callbacks |  |
username | Nome de usuário a ser conectado |
password | Senha a ser usada com a autenticação |
pubkey_file | Nome do arquivo de chave pública a ser usado com a autenticação |
privkey_file | Nome do arquivo de chave privada a ser usado com a autenticação |
env | Array associativo de variáveis de ambiente a ser configurado |
term | Tipo de emulação de terminal a ser requisitado quando da alocação de um pty |
term_width | Largura do terminal requisitado quando da alocação de um pty |
term_height | Altura do terminal requisitado quando da alocação de um pty |
term_units | Unidadem usadas em term_width e term_height | SSH2_TERM_UNIT_CHARS

Exemplos

Exemplo #1 Abrindo um fluxo para conexão ativa

<?php
$session = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
'/home/username/.ssh/id_rsa', 'secret');
$stream = fopen("ssh2.tunnel://$session/remote.example.com:1234", 'r');
?>

Exemplo #2 Esta variável $session deve ser mantida disponível!

Para usar os empacotadores ssh2.*://$session, a variável de recurso $session deve ser mantida. O código abaixo não terá o efeito desejado:

<?php
$session = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
'/home/username/.ssh/id_rsa', 'secret');
$connection_string = "ssh2.sftp://$session/";
unset($session);
$stream = fopen($connection_string . "path/to/file", 'r');
?>

unset() fecha a sessão, porque $connection_string não contém uma referência à variável $session, somente uma string convertida derivada dela. Isto também acontece quando a função unset() está implícita devido a uma saída de escopo (como em uma função).


RAR

  • « ssh2://
  • ogg:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • RAR

rar://

rar:// — RAR

Descrição

Este empacotadorusa o caminho para o arquivo RAR (relativo ou absoluto) codificado em url, um asterisco opcional (*), um símbolo de número opcional (#) e uma entrada de nome opcional codificada em url, como armazaenado no arquivo. Especificar uma entrada de nome requer o símbolo de número; Uma barra (/) no início da entrada de nome é opcional.

Este empacotador pode abrir tanto arquivos quanto diretórios. Quando abre diretórios, o asterisco força o retorno não codificado dos nomes das entradas do diretório. Se não houver asterisco, eles serão retornados com codificação url – a razão para isto é permitir que o empacotador seja usado corretamente com funcionalidades internas como RecursiveDirectoryIterator na presença de nomes de arquivo que se parecem com dados codificados de url.

Se o símbolo de número (#) e a parte de nome de entrada não forem incluídos, a raiz do arquivos será mostrada. Isto difere de diretórios comuns pelo fato que o fluxo resultante não conterá informação como horário de modificação, já que o diretório raiz não é armazenado em uma entrada individual no arquivo. O uso do empacotador com RecursiveDirectoryIterator requer que o símbolo de número seja inclupido na URL ao acessar a raiz, para que as URLs dos ramos filhos sejam construídos corretamente.

Nota: Este empacotador não é habilitado por padrão
Para usar o empacotador rar://, a extensão » rar disponível em » PECL deve ser instalada.

rar:// Disponível desde o PECL rar 3.0.0

Uso

  • rar://<nome de arquivo codificado como url>[*][#[<nome de entrada codificado como url>]]

Opções

Sumário do Empacotador
Atributo | Suportado
Restrito por allow_url_fopen | Não
Restrito por allow_url_include | Não
Permite Leitura | Sim
Permite Escrita | Não
Permite Adição | Não
Permite Leitura e Escrita Simultâneas | Não
Suporta stat() | Sim
Suporta unlink() | Não
Suporta rename() | Não
Suporta mkdir() | Não
Suporta rmdir() | Não

Opções de contexto
Nome | Uso | Padrão
open_password | A senha utilizada para criptografar os cabeçalhos do arquivo, se houver. WinRAR irá criptografar todos os arquivos com a mesma senha do cabeçalho quando ela estiver presente, ou seja, para arquivos com cabeçalhos criptografados, file_password será ignorada. |
file_password | A senha utilizada para criptografar um arquivo, se houver. Se os cabeçalhos também estiverem criptografados, esta opção será ignorada em favor de open_password. A razão pela qual existem duas opções é para cobrir a possibilidade de suportar arquivos com senhas diferentes para cabeçalhos e arquivos, se este tipo de arquivo porventura vier a existir. Note que se o arquivo não tiver seus cabeçalhos criptografados, open_password será ignorada e esta opção deve ser usada no lugar. |
volume_callback | Um callback para determinar o caminho de volumes faltantes. Consulte RarArchive::open() para mais informação. |

Exemplos

Exemplo #1 Explorando um arquivo RAR

<?php

class MyRecDirIt extends RecursiveDirectoryIterator {
function current() {
return rawurldecode($this->getSubPathName()) .
(is_dir(parent::current())?" [DIR]":"");
}
}

$f = "rar://" . rawurlencode(dirname(__FILE__)) .
DIRECTORY_SEPARATOR . 'dirs_and_extra_headers.rar#';

$it = new RecursiveTreeIterator(new MyRecDirIt($f));

foreach ($it as $s) {
echo $s, "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

|-allow_everyone_ni [DIR]
|-file1.txt
|-file2_?.txt
|-with_streams.txt
\-? [DIR]
  |-?\%2Fempty%2E [DIR]
  | \-?\%2Fempty%2E\file7.txt
  |-?\empty [DIR]
  |-?\file3.txt
  |-?\file4_?.txt
  \-?\?_2 [DIR]
    |-?\?_2\file5.txt
    \-?\?_2\file6_?.txt

Exemplo #2 Abrindo um arquivo criptografado (criptografia de cabeçalho)

<?php
$stream = fopen("rar://" .
rawurlencode(dirname(__FILE__)) . DIRECTORY_SEPARATOR .
'encrypted_headers.rar' . '#encfile1.txt', "r", false,
stream_context_create(
array(
'rar' =>
array(
'open_password' => 'samplepassword'
)
)
)
);
var_dump(stream_get_contents($stream));
/* datas de criação e de último acesso são opcionais no WinRAR, por isso a maioria
* dos arquinos não as possui */
var_dump(fstat($stream));
?>

O exemplo acima produzirá algo semelhante a:

string(26) "Encrypted file 1 contents."
Array
(
    [0] => 0
    [1] => 0
    [2] => 33206
    [3] => 1
    [4] => 0
    [5] => 0
    [6] => 0
    [7] => 26
    [8] => 0
    [9] => 1259550052
    [10] => 0
    [11] => -1
    [12] => -1
    [dev] => 0
    [ino] => 0
    [mode] => 33206
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 26
    [atime] => 0
    [mtime] => 1259550052
    [ctime] => 0
    [blksize] => -1
    [blocks] => -1
)


Streams de áudio

  • « rar://
  • expect:// »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Streams de áudio

ogg://

ogg:// — Streams de áudio

Descrição

Os arquivos abertos para leitura por meio do wrapper ogg:// são tratados como áudio compactado codificado usando o codec OGG/Vorbis. Da mesma forma, os arquivos abertos para gravação ou adição por meio do wrapper ogg:// são gravados como dados de áudio compactados. stream_get_meta_data(), quando usado em um arquivo OGG/Vorbis aberto para leitura, retornará vários detalhes sobre o stream, incluído a tag vendor, quaisquer comments incluídos, o número de channels, a taxa de rate, e o intervalo da taxa de codificação descrito por: bitrate_lower, bitrate_upper, bitrate_nominal, e bitrate_window.

ogg:// (PECL)

Nota: Este wrapper não é habilitado por padrão
Para poder utilizar o wrapper ogg://, é preciso instalar a extensão » OGG/Vorbis disponível em » PECL precisa estar instalada.

Uso

  • ogg://soundfile.ogg
  • ogg:///path/to/soundfile.ogg
  • ogg://http://www.example.com/path/to/soundstream.ogg

Opções

Resumo do Wrapper
Atributo | Suportado
Restringido por allow_url_fopen | Não
Permite Leitura | Sim
Permite Escrita | Sim
Permite Adição | Sim
Permite Leitura e Escrita Simultâneas | Não
Suporta stat() | Não
Suporta unlink() | Não
Suporta rename() | Não
Suporta mkdir() | Não
Suporta rmdir() | Não

Opções de contexto
Nome | Uso | Padrão | Modo
pcm_mode | Codificação PCM a ser aplicada durante a leitura, uma das seguintes: OGGVORBIS_PCM_U8, OGGVORBIS_PCM_S8, OGGVORBIS_PCM_U16_BE, OGGVORBIS_PCM_S16_BE, OGGVORBIS_PCM_U16_LE, e OGGVORBIS_PCM_S16_LE. (8 vs 16 bit, signed ou unsigned, big ou little endian) | OGGVORBIS_PCM_S16_LE | Leitura
rate | Taxa de amostragem de dados de entrada, expressa em Hz | 44100 | Escrita/Adição
bitrate | Quando fornecido como um número inteiro, refere-se à taxa de bits fixa na qual codificar. (16000 to 131072) Quando fornecido como um float, refere-se à qualidade da taxa de bits variável a ser utilizada. (-1.0 to 1.0) | 128000 | Escrita/Adição
channels | O número de canais de áudio a serem codificados, geralmente 1 (mono) ou 2 (estéreo). Pode variar até 16. | 2 | Escrita/Adição
comments | Um array de strings para codificar no cabeçalho da faixa. |  | Escrita/Adição


Fluxos de Interação entre Processos

  • « ogg://
  • Segurança »
  • PHP Manual
  • Protocolos e Wrappers suportados
  • Fluxos de Interação entre Processos

expect://

expect:// — Fluxos de Interação entre Processos

Descrição

Fluxos abertos através do empacotador expect:// fornecem acesso ao stdio, stdout e stderr do processo via PTY.

Nota: Este empacotador não é habilitado por padrão
Para usar o empacotador expect://, a extensão » Expect disponível em » PECL deve ser instalada.

expect:// (PECL)

Uso

  • expect://command

Opções

Sumário do Empacotador
Atributo | Suportado
Restrito por allow_url_fopen | Não
Permite Leitura | Sim
Permite Escrita | Sim
Permite Adição | Sim
Permite Leitura e Escrita Simultâneas | Não
Suporta stat() | Não
Suporta unlink() | Não
Suporta rename() | Não
Suporta mkdir() | Não
Suporta rmdir() | Não


Segurança

  • Introdução
  • Considerações Gerais
  • Instalando como binário CGI
    • Ataque Possível
    • Caso 1: apenas arquivos públicos são disponibilizados
    • Caso 2: usando cgi.force_redirect
    • Caso 3: configurando doc_root ou user_dir
    • Caso 4: Interpretador do PHP fora da árvore de diretórios do servidor web
  • Instalado como módulo do Apache
  • Segurança da Sessão
  • Segurança do Sistema de Arquivos
    • Problemas relacionados a bytes nulos (Null)
  • Segurança de Bancos de Dados
    • Desenhando Bancos de Dados
    • Conectando com o Banco de Dados
    • Modelo de Armazenamento Criptografado
    • Injeção de SQL
  • Relatando Erros
  • Dados Enviados pelo Usuário
  • Escondendo o PHP
  • Mantendo-se Atualizado


Introdução

PHP é uma linguagem poderosa e um interpretador, seja incluído em um servidor web como um módulo ou executado separadamente como binário CGI, é possível acessar arquivos, executar comandos e abrir conexões de rede no servidor. Essas propriedades fazem qualquer coisa executando em um servidor web inseguras por padrão. PHP é desenhado especificamente para ser uma linguagem mais segura para escrever programas CGI que Perl ou C, e com a escolha correta de opções de configuração em tempo compilação ou de execução, e práticas corretas de programação, ela pode dar a combinação exata de liberdade e segurança que você precisa.

Como existem diferentes maneiras de utilizar o PHP, existem várias opções de configuração controlando seu comportamento. Um grande leque de opções garante que você pode usar o PHP para vários propósitos, mas também significa que existem combinações dessas opções e configurações do servidor que resultam em uma instalação insegura.

A flexibilidade de configuração do PHP é comparável com a flexibilidade de código. PHP pode ser usado para montar um servidor de aplicações completo, com todo o poder de um usuário shell, ou pode ser usado para inclusão simples de arquivos no lado do servidor com pouco risco em um ambiente bem controlado. Como montar o ambiente, e o quão seguro ele é, depende muito do desenvolvedor.

Esse capítulo começa com alguns conselhos genéricos de segurança, explica as diferentes combinações de opções de configuração e as situações nas quais elas podem ser usadas com segurança e descreve diferentes considerações quanto ao desenvolvimento para diferentes níveis de segurança.


Considerações Gerais

Um sistema completamente seguro é virtualmente impossível de se conseguir, então uma abordagem freqüentemente usada em segurança é um compromisso entre risco e usabilidade. Se cada variável enviada pelo usuário precias de duas formas de validação biométrica (como escaneamento de retina e impressão digital), você teria um nível de checagem extremamente alto. Demoraria meia hora para preencher um formulário mais ou menos complexo, o que incentivaria os usuários a achar maneiras de burlar a segurança.

A melhor segurança é frequentemente aquele preenche os requerimentos sem obstruir o usuário de fazer o seu trabalho, ou sobrecarregando o programador com complexidade excessiva. De fato, alguns ataques de segurança exploram esse tipo de segurança super-produzida, que tende a degradar com o tempo.

Uma frase que vale a pena lembrar: Um sistema é tão bom quanto o elo mais fraco na corrente. Se todas as transações são maciçamente registradas baseado no tempo, localização, tipo de transação, etc. mas o usuário só é verificado baseado em um único cookie, a validade de ligar os usuários ao registro de transação torna-se muito fraca.

Quando estiver testando, tenha em mente que você não será capaz de testar todas as possibilidades nem mesmo para as páginas mais simples. A entrada que você pode esperar será totalmente diferente da entrada dada por um empregado irritado, um cracker com meses livres para tentar quebrar o sistema, ou um gato andando pelo teclado. Por isso é melhor olhar ao código da perspectiva lógica, para discernir onde dados inesperados podem ser introduzidos, e depois seguir aonde o mesmo é modificado, reduzido ou amplificado.

A Internet está cheia de gente tentando fazer o próprio nome quebrando o código dos outros, derrubando sites, enviando conteúdo indevido e de outras formas fazendo seu dia interessante. Não importa se você tem um site grande ou pequeno, você é um alvo simplesmente por estar online, tendo um servidor que pode ser conectado. Muitos programas de cracking não discernem por tamanho, eles simplesmente vasculham blocos gigantes de IPs procurando por vítimas. Tente não se tornar um.


Instalando como binário CGI

Índice

  • Ataque Possível
  • Caso 1: apenas arquivos públicos são disponibilizados
  • Caso 2: usando cgi.force_redirect
  • Caso 3: configurando doc_root ou user_dir
  • Caso 4: Interpretador do PHP fora da árvore de diretórios do servidor web


Ataque Possível

Usando o PHP como binário CGI é uma opção de instalação que por alguma razão não deseja integrar o PHP como um módulo no servidor (como o Apache), ou usará o PHP com tipos diferentes de CGI wrappers para criar ambientes chroot e setuid seguros para os scripts. Esse tipo de instalação normalmente involve copiar o binário executável para o diretório cgi-bin do servidor web. CERT advisory » CA-96.11 recomenda não colocar qualquer interpretador nesse diretório. Mesmo se o binário do PHP pode ser usado como um interpretador autônomo, o PHP foi desenhado para previnir os ataques que essa forma de instalação torna possível:

  • Acessar arquivos de sistema: http://my.host/cgi-bin/php?/etc/passwd A informação de consulta em uma URL depois da interrogração (?) é passada como argumentos de linha de comando para o interpretador pela interface CGI. Normalmente os interpretadores abrem e executam o arquivo especificado como primeiro argumento na linha de comando. Quando invocado como binárgio CGI, o PHP se recusa a interpretar os argumentos de linha de comando.
  • Acessar qualquer domento web no servidor: http://my.host/cgi-bin/php/secret/doc.html A parte de informação de caminho da URL depois do nome do binário do PHP, /secret/doc.html é convencionalmente usada para especificar o nome do arquivo a ser aberto e interpretado pelo programa CGI Normalmente algumas diretivas de configuração do servidor web (Apache: Action) são usadas para redirecionar requisições para documentos como http://my.host/secret/script.php para o interpretados do PHP. Dessa maneira, o servidor web primeiro checa as permissões de acesso ao diretório /secret, e depois cria a requisição redirecionada http://my.host/cgi-bin/php/secret/script.php. Infelizmente, se a requisição é dada originalmente nessa forma, a checagem de permissão não é feita para o arquivo /secret/script.php, mas apenas para o arquivo /cgi-bin/php. Dessa maneira qualquer usuário que pode acessar /cgi-bin/php pode acessar quaisquer documentos protegidos no servidor web. No PHP, as diretivas de tempo de execução cgi.force_redirect, doc_root e user_dir podem ser usadas para previnir esse ataque, se a árvore de documentos do servidor tiver qualquer diretório com restrições de acesso. Veja abaixo para uma explicação completa de combinações diferentes.


Caso 1: apenas arquivos públicos são disponibilizados

Se o seu servidor não tiver qualquer conteúdo que não é restringido por senha ou por IP, não há necessidade para essas opções de configuração. Se seu servidor web não permitir que você faça redirecionamento, ou o servidor não tem uma maneira de comunicar ao binário PHP que a requisição é uma redirecionada de maneira segura, você pode especificar a opção --enable-force-cgi-redirect no script configure. Você ainda tem que assegurar que os seus scripts PHP não confiem com uma ou outra maneira de chamar o script, nem diretamente http://my.host/cgi-bin/php/dir/script.php nem por redirecionamento http://my.host/dir/script.php.

Redirecionamento pode ser configurado no Apache usando AddHandler e diretivas Action (veja abaixo).


Caso 2: usando cgi.force_redirect

A configuração da diretiva cgi.force_redirect previne qualquer um chamar diretamente o PHP com uma URL do tipo http://my.host/cgi-bin/php/secretdir/script.php. Ao invés disso, PHP só irá executar dessa forma se tiver passado por um servidor web com essa diretiva.

Normalmente o redirecionamento na configuração do Apache é feita com as seguintes diretivas:

Action php-script /cgi-bin/php
AddHandler php-script .php

Essa opção só foi testada com o servidor Apache, e confia no Apache para configura a variável de ambiente não-padrão do CGI REDIRECT_STATUS em requisições redirecionadas. Se seu servidor web não suporta nenhuma maneira de dizer se a requisição é direta ou rediracionada, você não pode usar essa opção e você deve usar uma das outras maneira de executar a versão do CGI documentada aqui.


Caso 3: configurando doc_root ou user_dir

Para incluir conteúdo ativo, como script e executáveis, nos diretórios de documentos do servidor é algumas vezes consideread uma prática insegura. Se, por conta de um erro de configuração, os scripts não são executados mas mostrados como documentos HTML normais, isso pode resultar em vazamento de propriedade intelectual ou informação de segurança, como senhas. Portanto, muitos administradores preferirão configura outra estrutura de diretório para scripts que são acessíveis apenas pelo CGI do PHP, e, portanto, sempre interpretados e não enviado ao navegador.

Além disso, se o método para assegura que as requisições não são redirecionadas, como descrito na seção anterior, não estiver disponível, é necessário configura um doc_root para os script que é diferente do doc_root do servidor web.

Você pode configura a raiz de documentos dos scripts PHP pela diretiva de configuração doc_root no arquivo de configuração, ou você pode criar a variável de ambiente PHP_DOCUMENT_ROOT. Se ela existir, a versão CGI do PHP sempre construirá o nome de arquivo para ser aberto com esse doc_root e a informação de caminho na requisição, para assegurar que nenhum script é executado fora desse diretório (exceto por user_dir abaixo).

Outra opção utilizável é user_dir. Quando user_dir não existir, a única coisa controlando o nome do arquivo aberto é doc_root. Abrir uma URL como http://my.host/~user/doc.php não resulta em abrir um arquivo no diretório home de users, mas um arquivo chamado ~user/doc.php dentro de doc_root (sim, um nome de diretório começando com til [~]).

Se user_dir existir e tiver valor de, por exemplo, public_php, uma requisição como http://my.host/~user/doc.php abrirá o arquivo chamado doc.php no diretório chamado public_php dentro do diretório home do usuário. Se o home do usuário é /home/user, o arquivo executado é /home/user/public_php/doc.php.

A expansão de user_dir acontece independente da configuração de doc_root, para que você possa controlar a raiz de documentos e de acesso de diretório do usuário separadamente.


Caso 4: Interpretador do PHP fora da árvore de diretórios do servidor web

Uma maneira muito segura é colocar o interpretador do PHP em algum lugar longe dos arquivos da árvore de diretórios do servidor. Em /usr/local/bin, por exemplo. A única desvantagem real para essa opção é que você terá que colocar uma linha similar à:

#!/usr/local/bin/php
como a primeira linha de qualquer arquivo contento tags do PHP. Você também terá que tornar o arquivo executável. Isso é, tratá-lo exatamente como você trataria qualquer script CGI escrito em Perl ou sh ou qualquer outra linguagem de script comum que usa o mecanismo de escape de shell #! para ser executado.

Para fazer o PHP tratar as informações de PATH_INFO e PATH_TRANSLATED corretamente com essa configuração, o interpretador do PHP deve ser compilado com a opção de configure --enable-discard-path.


Instalado como módulo do Apache

Quando o PHP é usado como módulo do Apache, ele herda as permissões do usuário do Apache (normalmente as do usuário "nobody"). Isso tem vários impactos de segurança e autorização. Por exemplo, se você estiver usando o PHP para acessar um banco de dados, a menos que o banco de dados tenha um controle de acesso interno, você terá que fazer com que o banco de dados seja acessível ao usuário "nobody". Isso significa que um script malicioso pode acessar e modificar o banco de dados, mesmo sem um usuário e senha. É possível que um web spider pode passar em uma página web de administração do banco de dados e remover todos os bancos de dados. Você pode se proteger contra isso usando autorização do Apache, ou você pode desenvolver seu modelo de acesso próprio usando LDAP, arquivos .htaccess, etc. e incluir esse código como parte dos seus scripts PHP.

Normalmente, uma vez que a segurança está estabelecida até esse ponto onde o usuário do PHP (no caso, o usuário apache) tem pouco risco atribuído a ele, você descobre que o PHP não tem permissão de escrita nos diretórios dos usuários. Ou talvez tenha sido proibido de acessar ou alterar bancos de dados. Também foi proibido de escrever arquivos, bons ou ruins, ou fazer transações de bancos de dados, boas ou ruins.

Um erro frequente de segurança feito até esse ponto é permitir ao Apache permissões de administrador (root), ou aumentar as habilidades do Apache de qualquer outra forma.

Aumentar as permissões do usuário do Apache para a de administrador é extremamente perigoso e pode comprometer o sistema inteiro, então executar com sudo, com chroot, ou então executar como root não deve ser considerados por aqueles que não são profissionais em segurança.

Existem algumas soluções mais simples. Usando a diretiva open_basedir pode-se controlar e restringir quais diretórios o PHP tem permissão de usar. Você também pode configurar áreas exclusivas para o Apache, restringir todas as atividades web para arquivo que não sejam de algum usuário ou do sistema.


Segurança da Sessão

É importante manter o gerenciamento de sessão HTTP seguro. A segurança relacionada a sessão está descrita na seção Segurança de Sessão da referência Módulo de Sessão.


Segurança do Sistema de Arquivos

Índice

  • Problemas relacionados a bytes nulos (Null)

O PHP está sujeito à segurança encontrada na maioria dos sistemas de servidor com respeito à permissões de arquivos e diretórios. Isso permite que você controle quais arquivos no sistema podem ser lidos e por quem. É preciso ter cuidado com quaisquer arquivos que são lidos por todos para assegurar que eles podem ser lidos por todos os usuários que tem acesso ao sistema de arquivos.

Já que o PHP foi moldado para permitir acesso em nível de usuário ao sistema de arquivos, é possível escrever um script PHP que permitirá ler arquivos do sistema como o /etc/passwd, modificar suas conexões de rede, enviar inúmeros trabalhos de impressão, etc. Isso tem algumas implicações óbvias, já que você precisa ter certeza que os arquivos que você lê e escreve são apropriados.

Considere o seguinte script, onde um usuário indica que quer apagar um arquivo no seu diretório home. Isso presume uma situação onde uma interface web PHP é usada regularmente para controle de arquivos, então o usuário do Apache tem permissão de apagar arquivos nos diretórios home dos usuários.

Exemplo #1 Checagem fraca de variáveis resulta em....

<?php
// remove a file from the user's home directory
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir = "/home/$username";

unlink("$homedir/$userfile");

echo "The file has been deleted!";
?>
Já que o nome do usuário e do arquivo são enviáveis pelo formulário, um usuário pode enviar um nome de usuário e de arquivo que pertença a outra pessoa, e apagá-lo, mesmo que eles não tenham permissão para fazê-lo. Nesse caso, é preciso ter alguma outra forma de autenticação. Considere o que poderia acontecer se as variáveis enviadas forem "../etc/" and "passwd". O código então leria efetivamente:

Exemplo #2 ... um ataque ao sistema de arquivos

<?php
// remove um arquivo de qualquer lugar no disco rígido
// que o usuário do PHP tenha acesso. Se o PHP tiver acesso de administrador (root):
$username = $_POST['user_submitted_name']; // "../etc"
$userfile = $_POST['user_submitted_filename']; // "passwd"
$homedir = "/home/$username"; // "/home/../etc"

unlink("$homedir/$userfile"); // "/home/../etc/passwd"

echo "The file has been deleted!";
?>
Existem duas medidas importantes que você deve tomar para previnir esses problemas.
  • Dar permissões limitadas ao usuário web binário do PHP.
  • Checar todas as variáveis que são enviadas.
Aqui temos um script melhorado:

Exemplo #3 Checagem com mais segura do nome do arquivo

<?php
// remove um arquivo do disco rígido que o
// usuário do PHP tenha acesso.
$username = $_SERVER['REMOTE_USER']; // usando um mecanismo de autenticação
$userfile = basename($_POST['user_submitted_filename']);
$homedir = "/home/$username";

$filepath = "$homedir/$userfile";

if (file_exists($filepath) && unlink($filepath)) {
$logstring = "Deleted $filepath\n";
} else {
$logstring = "Failed to delete $filepath\n";
}
$fp = fopen("/home/logging/filedelete.log", "a");
fwrite($fp, $logstring);
fclose($fp);

echo htmlentities($logstring, ENT_QUOTES);

?>
No entanto, ele ainda possui falhas. Se seu sistema de autenticação permitir que os usuários criem seu próprios logins, e um usuário escolher o login "../etc/", o sistema está novamente exposto. Por essa razão, você pode preferir escrever uma checagem mais personalizada:

Exemplo #4 Checagem mais segura do nome do arquivo

<?php
$username = $_SERVER['REMOTE_USER']; // usando um mecanismo de autenticação
$userfile = $_POST['user_submitted_filename'];
$homedir = "/home/$username";

$filepath = "$homedir/$userfile";

if (!ctype_alnum($username) || !preg_match('/^(?:[a-z0-9_-]|\.(?!\.))+$/iD', $userfile)) {
die("Bad username/filename");
}

//etc...
?>

Dependendo do sistema operacional, existe uma variedade enorme de arquivos com os quais se preocupar, incluindo dispositivos (/dev/ or COM1), arquivos de configuração (arquivos /etc/ e .ini), áres de armazenamento conhecidas (/home/, My Documents), etc. Por essa razão, normalmente é mais fácil criar uma política onde se proibe tudo exceto aquilo que for explicitamente permitido.


Problemas relacionados a bytes nulos (Null)

Como o PHP usa funções em C para operações relacionadas ao sistema de arquivos, ele pode lidar com bytes nulos de maneira inexperada. Como bytes nulos denotam fim de string em C, strings contendo eles não serão consideradas de forma inteira, mas apenas até que um byte nulo ocorra. O seguinte exemplo mostra um código vulnerável que demonstra esse problema:

Exemplo #1 Script vulnerável à bytes nulos

<?php
$file = $_GET['file']; // "../../etc/passwd\0"
if (file_exists('/home/wwwrun/'.$file.'.php')) {
// file_exists will return true as the file /home/wwwrun/../../etc/passwd exists
include '/home/wwwrun/'.$file.'.php';
// the file /etc/passwd will be included
}
?>

Portanto, qualquer string comprometida que é usada em uma operação de sistema de arquivos deve sempre ser validada corretamente. Aqui está uma versão melhorada do exemplo anterior:

Exemplo #2 Validando entrada corretamente

<?php
$file = $_GET['file'];

// Whitelisting possible values
switch ($file) {
case 'main':
case 'foo':
case 'bar':
include '/home/wwwrun/include/'.$file.'.php';
break;
default:
include '/home/wwwrun/include/main.php';
}
?>


Segurança de Bancos de Dados

Índice

  • Desenhando Bancos de Dados
  • Conectando com o Banco de Dados
  • Modelo de Armazenamento Criptografado
  • Injeção de SQL

Hoje em dia, bancos de dados são componentes cardinais de qualquer aplicação web permitindo que websites forneçam conteúdo dinâmico variável. Um vez que informações muito sensíveis e/ou secretas podem ser guardadas em um banco de dados, proteger seus bancos de dados é essencial.

Para retirar ou guardar qualquer informação, você precisa conectar-se ao banco de dados, enviar uma consulta (query) legítima, pegar o resultado e fechar a conexão. Atualmente, a linguagem mais usada para consulta nessa interação é a Structured Query Language (SQL). Veja como um atacante pode manipular uma consulta SQL.

O PHP não pode proteger seu banco de dados sozinho. As seções a seguir tentam ser uma introdução básica em relação a como acessar e manipular banco de dados a partir de scripts PHP.

É preciso manter em mente essa regra simples: defesa em profundidade. Em quanto mais lugares há ações para aumentar a proteção do banco de dados, menor a probabilidade de um atacante ter sucesso em expor ou abusar de qualquer informação guardada. Uma boa modelagem do esquema (schema) do banco de dados e da aplicação para lidar com os maiores medos.


Desenhando Bancos de Dados

O primeiro passo é sempre criar o banco de dados, a não ser que você queira usar um de terceiros. Quando um banco de dados é criado, ele é atribuído a um dono, que executou os comandos de criação. Normalmente, só o dono (ou um superusuário) pode fazer algo com os objetos naquele banco de dados, e para permitir que outros usuários usem, privilégios devem ser concedidos.

Aplicações nunca devem conectar-se ao banco de dados como seu dono ou um superusuário, porque esses usuários podem executar qualquer consulta que quiserem como, por exemplo, modificar o esquema (ex.: destruindo tabelas) ou removendo seu conteúdo completamente.

Devem ser criados usuários de bancos de dados diferentes para cada aspecto da sua aplicação com direitos bem limitados aos objetos do banco de dados. Apenas os privilégios necessários devem ser concedidos, e deve-se evitar que o mesmo usuário possa interagir com o banco de dados em casos de uso diferentes. Isso significa que se invasores conseguirem acessar seu banco de dados usando credenciais da sua aplicação, eles só podem afetar o banco tanto quanto sua aplicação poderia.


Conectando com o Banco de Dados

Deve-se estabelecer as conexões sobre SSL para criptografar as comunicações cliente/servidor para aumentar a segurança, ou você pode usar ssh para criptografar a conexão de rede entre clientes e o servidor de banco de dados. Se uma dessa opções for usada, o monitoramento do seu tráfego e obtenção de informação sobre seu banco de dados serão dificultados para um possível atacante.


Modelo de Armazenamento Criptografado

SSL/SSH protege dados transitando de um cliente para o servidor, mas não protege os dados guardados em um banco de dados. SSL é um protocolo on-the-wire.

Uma vez que o atacante ganhe acesso direto ao seu banco de dados (perpassando o servidor web), os dados armazenados podem ser expostos ou usados inadequadamente, a não ser que a informação seja protegida pelo banco em si. Criptografar os dados é uma boa maneira de diminuir essa ameaça, mas poucos bancos de dados oferecem esse tipo de criptografia de dados.

A maneira mais fácil de contornar esse problema é primeiro criar seu próprio pacote de criptografia, e então usá-lo no seus scripts PHP. O PHP pode ajudá-lo com várias extensões, tais como OpenSSL e Sodium, cobrindo uma grande variedade de algoritmos de criptografia. O script criptografa os dados antes de inseri-los no banco de dados e descriptografa quando os recupera. Veja as referências para outros exemplos de como a criptografia funciona.

Hashing

No caso de dados realmente ocultos, se sua representação bruta não for necessária (ou seja, não será exibido), o hashing deve ser levado em consideração. O exemplo conhecido de hashing é armazenar o hash criptográfico de uma senha em um banco de dados, em vez da própria senha.

As funções password fornecem uma maneira conveniente para criar o hash de dados confidenciais e trabalhar com esses hashes.

password_hash() é usado para criar o hash uma determinada string usando o algoritmo mais forte atualmente disponível e password_verify() verifica se a senha fornecida corresponde ao hash armazenado no banco de dados.

Exemplo #1 Usando campo de senha hasheado

<?php

// guardando hash da senha
$query = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
pg_escape_string($username),
password_hash($password, PASSWORD_DEFAULT));
$result = pg_query($connection, $query);

// consultando se o usuário enviou a senha correta
$query = sprintf("SELECT pwd FROM users WHERE name='%s';",
pg_escape_string($username));
$row = pg_fetch_assoc(pg_query($connection, $query));

if ($row && password_verify($password, $row['pwd'])) {
echo 'Welcome, ' . htmlspecialchars($username) . '!';
} else {
echo 'Authentication failed for ' . htmlspecialchars($username) . '.';
}

?>


Injeção de SQL

A injeção de SQL é uma técnica onde o agressor explora falhas no código da aplicação responsável em criar e povoar instruções SQL. O agressor pode assim obter acesso privilegiado a partes da aplicação, extrair todos os dados do banco de dados, alterar os dados, e até mesmo executar comandos perigosos em nível do sistema onde o banco de dados roda. A falha ocorre quando desenvolvedores concatenam ou interpolam dados arbitrários em instruções SQL.

Exemplo #1 Dividindo o result set em páginas ... e criando super-usuários (PostgreSQL)

No exemplo a seguir, dados de usuário são diretamente interpolados na instrução SQL, permitindo ao agressor obter uma conta de superusuário no banco de dados.

<?php

$offset = $_GET['offset']; // Usando os dados sem validação!
$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
$result = pg_query($conn, $query);

?>
Usuários normais clicam nos links 'próxima' e 'anterior' onde $offset é codificado na URL. O script espera que o valor de $offset seja um número decimal. No entanto, e se alguém tentar quebrar a instrução SQL, utilizando a seguinte URL:
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--
Se isso acontecesse, então o script daria de presente acesso de superusuário ao atacante. Perceba que 0; é para fornecer uma deslocamento válido para a consulta original e terminá-la.

Nota:

É uma técnica comum forçar o avaliador de SQL ignorar o resto da consulta escrita pelo desenvolvedor com --, que é o sinal de comentário no SQL.

Uma maneira de ganhar senhas é desviar suas páginas de resultado de busca. A única coisa que o atacante precisa fazer é ver se alguma variável enviada é usada em um comando SQL que não é tratado corretamente. Esses filtros podem ser configurados de forma a personalizar cláusulas WHERE, ORDER BY, LIMIT e OFFSET em cláusulas SELECT Se seu banco de dados suporta o construtor UNION, o atacante pode tentar adicionar uma consulta inteira à consulta original para listar senhas de uma tabela arbitrária. É altamente recomendável gravar apenas hashs criptográficos das senhas, ao invés de gravar a senha.

Exemplo #2 Listando artigos ... e algumas senhas (qualquer banco de dados)

<?php

$query = "SELECT id, name, inserted, size FROM products
WHERE size = '$size'";
$result = odbc_exec($conn, $query);

?>
A parte estática da consulta pode ser combinada com outro comando SELECT que revela todas as senhas:
'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--

Instruções UPDATE e INSERT também podem ser abusados em ataques.

Exemplo #3 De recuperando uma senha ... para ganhando mais privilégios (qualquer banco de dados)

<?php
$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>
Se um usuário malicioso envia o valor ' or uid like'%admin% para $uid para mudar a senha do administrador, ou simplesmente configura $pwd para hehehe', trusted=100, admin='yes (com um espaço sobrando) para ganhar mais privilégios. Então, a consulta ficará retorcida:
<?php

// $uid: ' or uid like '%admin%
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%';";

// $pwd: hehehe', trusted=100, admin='yes
$query = "UPDATE usertable SET pwd='hehehe', trusted=100, admin='yes' WHERE
...;";

?>

Pode parecer que o agressor precisa saber alguma coisa da arquitetura do banco para conduzir um ataque efetivo, mas obter esse tipo de informação é geralmente bem simples. Por exemplo, o código pode ser parte de um sistema open source e publicamente disponível. Esse tipo de informação pode também pode ser obtido em sistemas de código fechado -- mesmo no caso dele estar ofuscado ou compilado -- e mesmo através do seu próprio código, através de mensagens de erro. Outros métodos incluem o uso de nomes típicos de tabelas e colunas. Por exemplo, um formulário de login normalmente utiliza tabelas chamadas 'user' com colunas chamadas 'id', 'username', and 'password'.

Exemplo #4 Atacando o sistema de um banco de dados (MSSQL Server)

Um exemplo assustador de como comandos do sistema operacional podem ser acessados em alguns bancos de dados.

<?php

$query = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);

?>
Se o atacante enviar o valor a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- para $prod, então $query terá o valor:
<?php

$query = "SELECT * FROM products
WHERE id LIKE '%a%'
exec master..xp_cmdshell 'net user test testpass /ADD'--";
$result = mssql_query($query);

?>
O MSSQL Server executa comandos SQL em um lote incluindo um comando para adicionar um novo usuário para o banco de dados de contas locais. Se essa aplicação estiver sendo executada como sa e o serviço MSSQLSERVER estivesse sendo executado com privilégios suficientes, o atacante teria agora uma conta com a qual poderia acessar essa máquina.

Nota:

Alguns dos exemplos acima estão ligados a bancos específicos. Isso não significa que um ataque similar é impossível contra outros produtos. Seu servidor de banco de dados pode ter uma vulnerabilidade similar de outra maneira.

Um exemplo humorado dos problemas relacionados à injeção de SQL

Imagem cortesia de » xkcd

Técnicas para evitar ataques

A maneira recomendada de evitar ataques de injeção de SQL é informar todos os dados em instruções preparadas. Usar instruções parametrizadas não é o suficiente para evitar SQL injection, mas é a maneira mais rápida e segura de fornecer dados a instruções SQL. Todo os dados dinâmicos em WHERE, SET, e VALUES precisam ser substituídos por âncoras. Os dados em si serão informados durante a execução, e serão enviados separadamente do comando SQL.

Informar dados via parâmetros deve ser utilizado apenas para dados. Outras partes dinâmicas de uma instrução SQL precisa ser filtrada por uma lista prévia e conhecida de valores válidos.

Exemplo #5 Evitando SQL injection ao utilizar instruções preparadas PDO

<?php

// A parte SQL dinâmica precisa é validada a partir de dados prévios
$sortingOrder = $_GET['sortingOrder'] === 'DESC' ? 'DESC' : 'ASC';
$productId = $_GET['productId'];
// O SQL é preparado utilizando âncoras
$stmt = $pdo->prepare("SELECT * FROM products WHERE id LIKE ? ORDER BY price {$sortingOrder}");
// O valor é informado, incluindo caracteres curinga
$stmt->execute(["%{$productId}%"]);

?>

Instruções preparadas são fornecidos no PDO, no MySQLi, e por outras bibliotecas de bancos de dados.

Ataques de injeção de SQL são principalmente baseados na exploração de código que não é escrito pensando em segurança. Nunca confie em nenhum dado enviado pelo usuário, e menos ainda em dados enviados pelo navegador, mesmo que o dado venha de um option box ou um campo hidden, nem mesmo cookies. O primeiro exemplo mostra como uma instrução SQL muito simples pode causar um dano desastroso.

Uma estratégia de defesa envolve várias boas práticas de codificação:

  • Nunca se conecte no banco de dados utilizando um usuário administrador ou dono dos objetos do banco. Sempre utilize usuários com privilégios mínimos.
  • Sempre verifique se o dado enviado tem o tipo esperado. O PHP possui várias funções de validação de dados, de coisas simples como as encontradas em funções de variável e em funções de string (por exemplo, is_numeric(), ctype_digit()) a coisas mais avançadas como Expressões regulares Perl support.
  • Se a aplicação espera dados numéricos, considere verificando os dados com ctype_digit(), ou modificar os dados utilizando settype(), ou ainda reformatando o dado com sprintf().
  • Se o banco de dados não suportar enviar dados por parâmetros, então é necessário escapar todos os dados de usuário não numéricos, passando o dado para funções específicas de escape do banco (por exemplo mysql_real_escape_string(), sqlite_escape_string(), etc). Funções genéricas como addslashes() são úteis apenas em contextos específicos (por exemplo, no MySQL é possível modificar o comportamento das aspas com NO_BACKSLASH_ESCAPES), então o escape específico é necessário.
  • Nunca imprimi nenhum dado ou erros específico do banco de dados, especialmente dados referentes a schema. Veja também exibição de erros e funções de manipulação e log de erros.

Além disso, você ganha em relatar consultas ou dentro do script ou no próprio banco de dados, se esse suportar. Obviamente, o relatório é incapaz de prevenir qualquer tentativa danosa, mas pode ser útil para ajudar a rastrear qual aplicação foi atacada. O relatório não é útil em si, mas através da informação que ele contém. Mais detalhes geralmente é melhor que menos.


Relatando Erros

Com relação a segurança, relatório de erros é uma faca de dois gumes. Pode beneficiar o aumento da segurança, ou fornecer informaçao ao atacante.

Uma tática padrão de ataque involve determinar como um sistema funciona entrando dados incorretos e checando os tipos e contextos dos erros que são retornados. Isso permite que um cracker sonde por informações sobre o servidor, para determinar possíveis fraquezas. Por exemplo, se um atacantes tinha recolhido informação sobre uma página baseado em uma submissão de dados anterior, ele pode tentar sobrescrever variáveis, ou modificá-las:

Exemplo #1 Atacando variáveis com uma página HTML personalizada

<form method="post" action="attacktarget?username=badfoo&amp;password=badfoo">
<input type="hidden" name="username" value="badfoo" />
<input type="hidden" name="password" value="badfoo" />
</form>

Os erros do PHP que são retornados normalmente podem ser úteis para um desenvolvedor que está tentando depurar um script, indicando coisas como a função ou arquivo que falhou, o arquivo PHP no qual a falha ocorreu, e o número da linha de código causadora da falha. Toda essa informação pode ser explorada. Não é incomum para um desenvolvedor PHP usar show_source(), highlight_string(), ou highlight_file() como medidas de depuração, mas em um site de produção, isso pode expor variáveis ocultas, sintaxe incorreta, ou outra informações perigosas. Especialmente perigoso é rodar código de fontes conhecidas com tratadores de depuração integrados, ou usar técnicas de depuração comuns. Se o atacante pode determinar qual técnica gerá você estiver usando, eles podem tentar, por força-bruta, enviar várias strings de depuração comuns para a página:

Exemplo #2 Explorando variáveis comuns de depuração

<form method="post" action="attacktarget?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>

Independente do método de tratamento de erros, a habilidade de sondar um sistema por erros acaba dando informações úteis a um atacante.

Por exemplo, o próprio estilo de um erro genérico do PHP indica que o sistema está rodando o PHP. Se o atacante estava procurando por uma página .html, e queria sondar qual o back-end (para procurar fraquezas conhecidas no sistema) enviando dados incorretos, ele pode ser capaz de determinar que um sistema foi feito com PHP.

Uma função de erro pode indicar se o sistema pode está executando um engine de banco de dados específico, ou dar dicas de como uma página foi programada ou desenhada. Isso permite uma investigação profunda sobre portas abertas de bancos de dados, ou procurar por bugs específicos ou fraquezas de uma página. Enviando diferentes pedaços de dados ruins, por exemplo, um atacante pode determinar a ordem de autenticação em um script, (a partir da linha do erro) assim como sondar por exploits que podem ser aproveitados em diferentes partes do script.

Um erro geral do PHP ou do sistema de arquivos indicam quais permissões o servidor web tem, assim como a estrutura e organização dos arquivos no servidor web. Códigos de erros escritos pelo desenvolvedor podem agravar o problema, levando pela exploração fácil de informação até então "escondida".

Existem três soluções principais para esse problema. A primeira é verificar exaustivamente todas as funções, e tentar compensar pelo volume dos erros. A segunda é desabilitar completamente os relatórios de erros no código de produção. A terceira é usar as funções personalizávies de tratamento de erro do PHP para criar seu próprio tratador de erro. Dependendo da sua política de segurança, você pode perceber que todas são aplicáveis à sua situação.

Uma maneira de perceber esse problema antes que o pior aconteça é usar a diretiva error_reporting(), para ajudar a aumentar a segurança de seu código e achar uso de variáveis que pode ser perigoso. Ao testar o seu código, antes de colocar em produção, com E_ALL, você pode rapidamente encontrar áreas onde suas variáveis podem sofrer alterações nocivas ou modificações quaisquer. Uma vez que estiver pronto para produção, você deve ou desabilitar mensagens de erro completamente configurando a diretiva error_reporting() com o valor 0, ou desligar o envio de erros usando a opção display_errors do arquivo php.ini, para evitar sondagem do seu código. Se você escolher a segunda opção, você deve também definir o caminho para o arquivo de registro usando a diretiva error_log, e ligar a diretiva log_errors.

Exemplo #3 Encontrado variáveis perigosas com E_ALL

<?php
if ($username) { // Not initialized or checked before usage
$good_login = 1;
}
if ($good_login == 1) { // If above test fails, not initialized or checked before usage
readfile ("/highly/sensitive/data/index.html");
}
?>


Dados Enviados pelo Usuário

A maior fraqueza na maioria dos programas PHP não é inerente a linguagem em si, mas meramente um problema de código escrito desconsiderando a segurança. Por essa razão, você sempre deve investir um pouco de tempo considerando as implicações de um certo pedaço de código, para ter certeza que o dano possível se uma variável não esperada for submetida ao mesmo.

Exemplo #1 Uso Perigoso de Variáveis

<?php
// remove um arquivo do diretório home do usuário... ou talvez
// de outra pessoa?
unlink ($evil_var);

// Escreve registro do acesso... ou talvez uma entrada em /etc/passwd?
fwrite ($fp, $evil_var);

// Executa algo trivial... ou rm -rf *?
system ($evil_var);
exec ($evil_var);

?>

Você sempre deve examinar cuidadosamente seu código para se assegurar que quaisquer variáveis sendo enviadas do navegador web estão sendo checadas de maneira correta, e faz a si mesmo as seguintes perguntas:

  • Seu script só afetará os arquivos desejados?
  • Dados incomuns ou indesejados podem ser utilizados?
  • Esse script pode ser usado de maneiras não intencionadas?
  • Ele pode ser usado em conjunto com outros scripts de maneira negativa?
  • As transações serão registradas adequadamente?

Respondendo essas perguntas adequadamente enquanto escrevendo o script, ao invés de depois, previne a reescrita indesejada quando você precisar aumentar a segurança. Começando com essa linha de raciocínio, você não garante a segurança do seu sistema, mas pode ajudar a aumentá-la.

Você também pode considerar desligar as diretivas register_globals, magic_quotes, ou outras configurações convenientes que pode confundir você em relação a validade, origem, ou valor de uma variável qualquer. Trabalhar com PHP em modo error_reporting(E_ALL) também pode ajudar avisando sobre variáveis sendo usadas antes de serem checadas ou inicializadas (então você pode prevenir que dados incomuns sejam operados).


Escondendo o PHP

Em geral, segurança por obscuridade é uma das maneiras mais fracas de segurança. Mas em alguns casos, cada pequena medida de segurança extra é desejável.

Algumas técnicas simples podem ajudar a esconder o PHP, possivelmente retardando um atacante que está tentando descobrir fraquezas no seu sistema. Configurar a diretiva expose_php para off no arquivo php.ini, reduz a quantidade de informação disponível aos atacantes.

Outra tática é configurar o servidor web, como o Apache, para executar tipos de arquivos diferentes pelo PHP, ou por uma diretiva de arquivo .htaccess, ou no próprio arquivo de configuração do Apache. É possível usar extensões de arquivos como disfarce:

Exemplo #1 Escondendo o PHP como outra linguagem

# Fazer código PHP parecer com outros tipos de códigos
AddType application/x-httpd-php .asp .py .pl
Ou obscurecer completamente:

Exemplo #2 Usando extensões desconhecidas para o PHP

# Fazer código PHP parecer com tipos desconhecidos
AddType application/x-httpd-php .bop .foo .133t
Ou esconder ele como código HTML, o que tem uma pequena queda de performance porque todo HTML será avaliado pelo engine do PHP:

Exemplo #3 Usando extensão HTML para arquivos PHP

# Fazer código PHP parecer com HTML
AddType application/x-httpd-php .htm .html
Para isso funcionar efetivamente, deve-se renomear os arquivos PHP com as extensões acima. Embora seja uma forma de segurança por obscuridade, é uma pequena medida preventiva e com poucos custos.


Mantendo-se Atualizado

PHP, como qualquer outro sistema grande, está sobre constante revisão e melhoramento. Cada versão nova normalmente incluirá mudanças, sejam grandes ou pequenas, para melhorar a segurança e reparar falhas, erros de configuração, e outros problemas que podem afetar a segurança geral e estabilidade do seu sistema.

Como outras linguagens de script e programas de nível de sistema, a melhor política é atualizar frequentemente e manter-se atento as novas versões e suas mudanças.


Características

  • Autenticação HTTP com PHP
  • Cookies
  • Sessões
  • Lidando com XForms
  • Gerenciar o upload de arquivos
    • Upload de arquivos com o método POST
    • Explicando mensagens de erro
    • Problemas Comuns
    • Enviando múltiplos arquivos
    • Suporte ao método PUT
    • Veja Também
  • Usando arquivos remotos
  • Tratamento de Conexões
  • Conexões Persistentes com o Banco de Dados
  • Uso da linha de Comando — Usando PHP a partir da linha de comando
    • Diferenças em relação a outros SAPIs
    • Opções — Opções de linha de comando
    • Uso — Executando arquivos PHP
    • I/O streams — Input/output streams
    • Shell interativo
    • Servidor web embutido
    • Configurações INI
  • Coletor de Lixo
    • Básico sobre Contagem de Referência
    • Ciclos de Coleta
    • Considerações de Desempenho
  • Instrumentação dimâmica DTrace
    • Introdução ao PHP e DTrace
    • Usando PHP e DTrace
    • Usando SystemTap com Sensores Estáticos DTrace


Autenticação HTTP com PHP

Pode-se utilizar a função header() para enviar uma mensagem de "Authentication Required" para o browser cliente, causando o aparecimento de uma janela para a entrada de Nome de Usuário/Senha. Uma vez que o usuário preencha um nome de usuário e uma senha, a URL contendo o script PHP será chamada mais uma vez com as variáveis predefinidas PHP_AUTH_USER, PHP_AUTH_PW, e AUTH_TYPE para determinar o nome de usuário, senha e tipo da autenticação, respectivamente. Estas variáveis predefinidas são encontradas nos arrays $_SERVER. Somente os métodos de autenticação "Basic" e "Digest" (a partir do PHP 5.1.0) são suportados. Consulte a função header() para mais informações.

Um exemplo de fragmento de script que forçaria a autenticação do cliente em uma página:

Exemplo #1 Exemplo de Autenticação HTTP "Basic"

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Texto enviado caso o usuário clique no botão Cancelar';
exit;
} else {
echo "<p>Olá, {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>Você digitou {$_SERVER['PHP_AUTH_PW']} como sua senha.</p>";
}
?>

Exemplo #2 Exemplo de autenticação HTTP "Digest"

Este exemplo demonstra como implementar um script simples de autenticação HTTP "Digest". Para mais informações, leia o » RFC 2617.

<?php
$realm = 'Área restrita';

//usuário => senha
$users = array('admin' => 'mypass', 'guest' => 'guest');

if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Digest realm="'.$realm.
'",qop="auth",nonce="'.uniqid().'",opaque="'.md5($realm).'"');

die('Texto enviado caso o usuário clique no botão Cancelar');
}

// analisar a variável PHP_AUTH_DIGEST
if (!($data = http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) ||
!isset($users[$data['username']]))
die('Credenciais inválidas!');

// gerar a resposta válida
$A1 = md5($data['username'] . ':' . $realm . ':' . $users[$data['username']]);
$A2 = md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']);
$valid_response = md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2);

if ($data['response'] != $valid_response)
die('Credenciais inválidas!');

// ok, nome de usuário e senha válidos
echo 'Você está logado como: ' . $data['username'];

// função para decompor o http auth header
function http_digest_parse($txt)
{
// proteção contra dados incompletos
$needed_parts = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1);
$data = array();
$keys = implode('|', array_keys($needed_parts));

preg_match_all('@(' . $keys . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $txt, $matches, PREG_SET_ORDER);

foreach ($matches as $m) {
$data[$m[1]] = $m[3] ? $m[3] : $m[4];
unset($needed_parts[$m[1]]);
}

return $needed_parts ? false : $data;
}
?>

Nota: Nota sobre compatibilidade

Por favor, seja cauteloso ao codificar as linhas do cabeçalho HTTP. Para garantir máxima compatibilidade com todos os clientes, a palavra-chave "Basic" deve ser escrita com um "B" maiúsculo, a string realm deve ser envolvida por aspas duplas (nunca por aspas simples), e apenas um espaço deve preceder o código 401 na linha do cabeçalho HTTP/1.0 401. Parâmetros de autenticação precisam ser separados por vírgula, como visto no exemplo acima de digest.

Ao invés de simplesmente exibir PHP_AUTH_USER e PHP_AUTH_PW, como no exemplo acima, talvez queira verificar a validade do nome de usuário e senha. Talvez enviando uma consulta a um banco de dados, ou procurando o usuário em um arquivo dbm.

Cuidado com browsers Internet Explorer bugados por aí. Eles parecem muito minuciosos sobre a ordem dos cabeçalhos. Enviar o cabeçalho WWW-Authenticate antes do cabeçalho HTTP/1.0 401 parece resolver isso por enquanto.

Nota: Nota de configuração

PHP usa uma diretiva chamada AuthType para determinar se a autenticação externa está em efeito.

Perceba, entretanto, que a diretiva citada acima não previne que alguém que controle uma URL não autenticada roube senhas de URLs autenticadas no mesmo servidor.

Tanto o Netscape Navigator quanto o Internet Explorer apagarão o cache de autenticação da janela local do browser para o realm após receber uma resposta 401 do servidor. Isso pode efetivamente "deslogar" um usuário, forçando o mesmo a re-entrar seu nome de usuário e senha. Algumas pessoas usam isso para delimitar o tempo de um login, ou prover um botão de "log-out".

Exemplo #3 Exemplo de Autenticação HTTP forçando um novo nome/senha

<?php
function authenticate() {
header('WWW-Authenticate: Basic realm="Test Authentication System"');
header('HTTP/1.0 401 Unauthorized');
echo "Você deve digitar um login e senha válidos para acessar este recurso\n";
exit;
}

if (!isset($_SERVER['PHP_AUTH_USER']) ||
($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
authenticate();
} else {
echo "<p>Bem-vindo: " . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "<br />";
echo "Antigo: " . htmlspecialchars($_REQUEST['OldAuth']);
echo "<form action='' method='post'>\n";
echo "<input type='hidden' name='SeenBefore' value='1' />\n";
echo "<input type='hidden' name='OldAuth' value=\"" . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "\" />\n";
echo "<input type='submit' value='Re-autenticar' />\n";
echo "</form></p>\n";
}
?>

Este comportamento não é requerido pelo padrão de autenticação HTTP Basic, então nunca se deve depender dele. Testes com Lynx tem mostrado que Lynx não apaga as credenciais de autenticação com uma resposta 401 do servidor, assim, ao pressionar "Voltar" e então "Ir" novamente abrirá o recurso contanto que os requerimento de credenciais não tenha mudado. Contudo, o usuário pode pressionar a tecla '_' para apagar suas informações de autenticação.

Para fazer com que a autenticação HTTP funcione utilizando um servidor IIS com a versão CGI do PHP é necessário editar a configuração "Directory Security" do IIS. Clique em "Edit" e marque somente "Anonymous Access", deixe todos os outros campos desmarcados.

Nota: Nota sobre IIS:
Para que a autenticação HTTP funcione com IIS, a diretiva do PHP cgi.rfc2616_headers deve ser definida como 0 (o valor default).


Cookies

O PHP suporta de forma transparente cookies HTTP. Cookies são um mecanismo para armazenar dados no navegador remoto e assim rastrear ou identificar usuários que retornam. Você pode criar cookies usando as funções setcookie() ou setrawcookie(). Cookies fazem parte do cabeçalho HTTP, logo, setcookie() deve ser chamada antes que qualquer saída seja enviada ao navegador. Esta é a mesma limitação que a função header() tem. Você pode usar as funções de buffering de saída para atrasar as impressões no script até que você tenha decidido se vai ou não configurar qualquer cookie ou enviar quaisquer cabeçalhos.

Qualquer cookie enviado para o servidor pelo cliente será automaticamente incluído no array auto-global $_COOKIE se variables_order contém "C". Se você deseja definir vários valores em um único cookie, simplesmente acrescente [] ao nome do cookie.

Para mais detalhes, incluindo comentários sobre problemas de browsers, veja as funções setcookie() e setrawcookie().


Sessões

Suporte a sessões no PHP consiste de uma maneira de presevar dados através de acessos subsequentes. Isso permite a criação de aplicações mais personalizadas e aumenta o apelo do seu web site. Todas as informações estão na seção Session reference.


Lidando com XForms

» XForms define uma mudança com relação a formulários tradicionais que permite que sejam usados em uma variedade mais ampla de plataformas e browsers ou até mesmo em mídias não tradicionais tais como documentos PDF.

A primeira diferença chave nos XForms é como o formulário é enviado ao cliente. » XForms para autores de HTML contém uma descrição detalhada de como criar XForms. Para o propósito deste tutorial nós veremos apenas exemplos simples.

Exemplo #1 Um formulário XForms simples de busca

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

O formulário acima mostra uma caixa de entrada de texto (chamada q), e um botão de submit (envio). Quando o botão de submit é clicado, o formulário será enviado para a página referenciada por action.

Aqui é onde começa a parecer diferente do ponto de vista da sua aplicação web. Em um formulário HTML normal, a informação seria enviada como application/x-www-form-urlencoded, no mundo dos XForms, porém, essa informação é enviada no formato XML.

Se você está escolhendo trabalhar com XForms então você, provavelmente, quer aquela informação como XML. Nesse caso, procure em $HTTP_RAW_POST_DATA, onde você achará o documento XML gerado pelo navegador e que você pode passar para o seu engine XSLT ou parser favorito.

Se você não estiver interessado em formatação e só quer que sua informação seja carregada na variável tradicional $_POST, você pode encarregar o navegador do cliente para enviar como um application/x-www-form-urlencoded mudando o atributo method para urlencoded-post.

Exemplo #2 Usando um XForm para popular o $_POST

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="urlencoded-post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Nota: Até o término dessa edição, muitos navegadores não suportam XForms. Verifique a versão do seu navegador se os exemplos acima falharem.


Gerenciar o upload de arquivos

Índice

  • Upload de arquivos com o método POST
  • Explicando mensagens de erro
  • Problemas Comuns
  • Enviando múltiplos arquivos
  • Suporte ao método PUT
  • Veja Também


Upload de arquivos com o método POST

Este recurso permite realizar uploads de arquivos de texto e binários. Com as funções de autenticação e manipulação de arquivos do PHP, você tem o controle completo de quem pode fazer o upload e o que deve ser feito com o arquivo após o upload estar completo.

O PHP é capaz de receber uploads de arquivos de qualquer browser compatível com RFC-1867.

Nota: Nota Sobre Configurações Relacionadas

Veja também as diretivas file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size, max_input_time no php.ini

O PHP também suporta o método PUT para upload de arquivos como o usado pelo Netscape Composer e clientes para Amaya W3C. Veja Suporte ao Método Put para maiores detalhes.

Exemplo #1 Formulário para Upload de Arquivo

Uma interface para upload de arquivo pode ser criada com um formulário especial parecido com este:

<!-- O tipo de encoding de dados, enctype, DEVE ser especificado abaixo -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- MAX_FILE_SIZE deve preceder o campo input -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- O Nome do elemento input determina o nome da array $_FILES -->
    Enviar esse arquivo: <input name="userfile" type="file" />
    <input type="submit" value="Enviar arquivo" />
</form>

O parâmetro __URL__ no exemplo acima deve ser substituído e apontar para um arquivo PHP.

O campo escondido (input type="hidden") MAX_FILE_SIZE (medido em bytes) deve preceder o campo de input de arquivo (input type="file"), e o seu valor é o tamanho limite aceito pelo PHP. Este elemento do formulário deve sempre ser usado para evitar que usuários tenham o problema de ter que esperar pela transferência de um arquivo para só então descobrir que ele era grande demais e a transferência falhar. Fique ciente: é muito simples burlar esse parâmetro pelo lado do navegador, portanto nunca dependa exclusivamente desse recurso para bloquear arquivos com maior tamanho. Isso é um recurso meramente conveniente para usuários da aplicação no lado do cliente. Os parâmetros do PHP (no servidor) para "maximum-size", no entanto, não podem ser burlados.

Nota:

Tenha certeza que seu formulário de upload tenha o atributo enctype="multipart/form-data" do contrário o upload não irá funcionar.

A variável global $_FILES conterá toda a informação do arquivo enviado. O conteúdo do formulário de exemplo acima será como o exemplo descrito abaixo. Note que isso assume o nome do arquivo enviado userfile, como foi usado no script de exemplo acima, contudo isso pode ter qualquer nome.

$_FILES['userfile']['name']

O nome original do arquivo na máquina do cliente.

$_FILES['userfile']['type']

O tipo mime do arquivo, se o navegador fornecer essa informação. Um exemplo poderia ser "image/gif". O tipo mime no entanto não é verificado pelo PHP portanto não considere que esse valor será concedido.

$_FILES['userfile']['size']

O tamanho, em bytes, do arquivo enviado.

$_FILES['userfile']['tmp_name']

O nome temporário com o qual o arquivo enviado foi armazenado no servidor.

$_FILES['userfile']['error']

O código de erro associado a esse upload de arquivo.

$_FILES['userfile']['full_path']

O caminho completo conforme enviado pelo navegador. Esse valor nem sempre contém uma estrutura de diretórios real, e não se pode confiar nele. Disponível a partir do PHP 8.1.0.

Os arquivos serão guardados por padrão no diretório temporário do servidor, a menos que outro local seja especificado através da diretiva upload_tmp_dir no php.ini. O diretório padrão do servidor pode ser alterado através da configuração da variável de ambiente TMPDIR no ambiente onde o PHP está sendo executado. Configurando isso usando putenv() em um script PHP não irá funcionar. Esta variável de ambiente também pode ser usada para certificar que outras operações também estão funcionando nos arquivos enviados.

Exemplo #2 Validando o upload de arquivos

Veja também as funções is_uploaded_file() e move_uploaded_file() para maiores informações. O exemplo a seguir irá processar o upload de um arquivo que vem de um formulário.

<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Arquivo válido e enviado com sucesso.\n";
} else {
echo "Possível ataque de upload de arquivo!\n";
}

echo 'Aqui está mais informações de debug:';
print_r($_FILES);

print "</pre>";

?>

O script PHP que recebe o arquivo enviado deve implementar qualquer lógica que for necessária para determinar o que deve ser feito com o arquivo enviado. Você pode, por exemplo, usar a variável $_FILES['userfile']['size'] para descartar qualquer arquivo que seja muito pequeno ou muito grande. Você pode usar a variável $_FILES['userfile']['type'] para descartar arquivos incompatíveis com um determinado critério, mas use isso apenas como a primeira de uma série de verificações, porque esse valor está totalmente sob o controle do cliente e não é verificado pelo PHP. Você também pode usar $_FILES['userfile']['error'] e planejar sua lógica de acordo com os Códigos de erro. Independente da lógica, você também deve apagar o arquivo do diretório temporário ou movê-lo para outro local.

Se nenhum arquivo for selecionado em seu formulário, o PHP irá retornar $_FILES['userfile']['size'] como 0, e $_FILES['userfile']['tmp_name'] como "none" (nenhum).

O arquivo será excluído do diretório temporário ao fim da requisição se ele não for movido ou renomeado.

Exemplo #3 Enviando um array de arquivos

O PHP suporta array HTML mesmo com arquivos.

<form action="" method="post" enctype="multipart/form-data">
<p>Imagens:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Enviar" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() pode prevenir ataques de percorrer o sistema de arquivos,
// mas mais validações são necessárias
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "data/$name");
}
}
?>

O Progresso do upload de arquivos pode ser implementado usando a Sessão do Progresso de Upload.


Explicando mensagens de erro

O PHP retorna um código de erro apropriado na array do arquivo. O código de erro pode ser encontrado no segmento error da array que é criada pelo PHP durante o upload do arquivo. Em outras palavras, o erro pode ser encontrado em $_FILES['userfile']['error'].

UPLOAD_ERR_OK

Valor: 0; não houve erro, o upload foi bem sucedido.

UPLOAD_ERR_INI_SIZE

Valor 1; O arquivo enviado excede o limite definido na diretiva upload_max_filesize do php.ini.

UPLOAD_ERR_FORM_SIZE

Valor: 2; O arquivo excede o limite definido em MAX_FILE_SIZE no formulário HTML.

UPLOAD_ERR_PARTIAL

Valor: 3; O upload do arquivo foi feito parcialmente.

UPLOAD_ERR_NO_FILE

Valor: 4; Nenhum arquivo foi enviado.

UPLOAD_ERR_NO_TMP_DIR

Valor: 6; Pasta temporária ausente.

UPLOAD_ERR_CANT_WRITE

Valor: 7; Falha ao escrever o arquivo no disco.

UPLOAD_ERR_EXTENSION

Valor: 8; Uma extensão do PHP interrompeu o upload do arquivo. O PHP não fornece uma maneira de determinar qual extensão causou a interrupção do upload. Examinar a lista das extensões carregadas com o phpinfo() pode ajudar.


Problemas Comuns

O item MAX_FILE_SIZE não pode assumir um tamanho de arquivo maior que o tamanho de arquivo configurado em upload_max_filesize no arquivo php.ini. O valor padrão é de 2 megabytes.

Se um limite de memória está ativo, um valor maior para o limite de memória no parâmetro memory_limit pode ser necessário. Tenha certeza de estabelecer um limite de memória grande o suficiente através do parâmetro memory_limit.

Se o tempo máximo de execução definido através do parâmetro max_execution_time for muito pequeno, a execução do script pode ultrapassar o limite de tempo. Tenha certeza de estabelecer um tempo máximo de execução grande o suficiente através do parâmetro max_execution_time.

Nota: O parâmetro max_execution_time somente afeta o tempo de execução do script em si. Qualquer tempo gasto com atividades que aconteçam fora da execução do script como chamadas de sistema usando system(), a função sleep(), pesquisas em banco de dados, tempo gasto pelo processo de enviar um arquivo(upload), etc. não são considerados no momento de determinar o limite de tempo máximo de um script em execução.

Aviso

O parâmetro max_input_time define o tempo máximo, em segundos, que é permitido ao script a receber entradas, isto inclui upload de arquivos. Para um arquivo grande, múltiplos arquivos ou usuários com conexões lentas, o padrão de 60 segundos pode ser ultrapassado.

Se o parâmetro post_max_size for muito pequeno, arquivos grandes podem não ser carregados. Tenha certeza de definir o parâmetro post_max_size grande o suficiente.

O parâmetro max_file_uploads controla o número máximo de arquivos que podem ser enviados em uma única requisição. Caso sejam enviados mais arquivos que o definido neste limite, então $_FILES interrompe o processamento de arquivos uma vez que o limite tenha sido atingido. Por exemplo, se o parâmetro max_file_uploads está definido como 10, então $_FILES nunca possuirá mais de 10 itens.

Não validar o arquivo que você está operando pode permitir que os usuários acessem informações sensíveis em outros diretórios.

Devido ao grande número de estilos de listagem de diretórios não podemos garantir que arquivos com nomes exóticos (como os que contém espaços) sejam manuseados corretamente.

Um desenvolvedor não deve misturar campos comuns de entrada input e campos de upload de arquivo na mesma variável de formulário (usando um nome de campo input como foo[]).


Enviando múltiplos arquivos

Múltiplos arquivos podem ser enviados usando diferentes nomes (name) para entradas (input).

Também é possível carregar vários arquivos simultaneamente e ter a informação automaticamente organizada em arrays. Para isso, é necessário usar a mesma sintaxe das arrays submetidas pelo formulário HTML que você usa para múltiplos selects e checkboxes:

Exemplo #1 Carregando múltiplos arquivos

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Envie esses arquivos:<br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Enviar arquivos" />
</form>

Quando o formulário acima é submetido, os arrays $_FILES['userfile'], $_FILES['userfile']['name'], e $_FILES['userfile']['size'] serão inicializados.

Por exemplo, suponha os nomes dos arquivos /home/test/review.html e /home/test/xwp.out. Neste caso, $_FILES['userfile']['name'][0] deve conter o valor review.html, e $_FILES['userfile']['name'][1] deve conter o valor xwp.out. Similarmente, $_FILES['userfile']['size'][0] deve conter o tamanho do arquivo review.html, e assim por diante.

$_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0], e $_FILES['userfile']['type'][0] também são definidas.

Aviso

O parâmetro max_file_uploads atua como um limite no número de arquivos que podem ser enviados em uma única requisição. Você precisa ter certeza que seu formulário não tentará enviar mais arquivos que o limite definido.

Exemplo #2 Carregando um diretório inteiro

Nos campos de carregamento de arquivos HTML, é possível carregar um diretório inteiro com o atributo webkitdirectory. Esse recurso é suportado na maioria dos navegadores modernos.

Com a informação full_path, é possível armazenar os caminhos relativos, ou reconstruir o mesmo diretório no servidor.

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Enviar este diretório:<br />
  <input name="userfile[]" type="file" webkitdirectory multiple />
  <input type="submit" value="Enviar arquivos" />
</form>
Aviso

O atributo webkitdirectory não é padronizado e não está no roteiro de padronização. Não utilize-o em sites em produção voltados para a Web: ele não funcionará para todos os usuários. Também podem haver grandes incompatibilidades entre implementações e o comportamento pode mudar no futuro.

O PHP analisa apenas a informação de caminho relativo enviada pelo navegador/user-agent, e passa essa informação para o array $_FILES. Não há garantia de que os valores no array full_path contenham uma estrutura de diretórios real, e a aplicação PHP não deve confiar nesta informação.


Suporte ao método PUT

O PHP oferece suporte para o método HTTP PUT utilizado por alguns clientes para armazenar arquivos em um servidor. Requisições PUT são muito mais simples que o upload de arquivos usando requisições POST, elas se parecem com algo assim:

PUT /path/filename.html HTTP/1.1

Isso normalmente significaria que o cliente remoto gostaria de salvar o seguinte conteúdo: /path/filename.html em seu diretório web. É óbvio não se tratar de uma boa ideia que o Apache ou o PHP permitam automaticamente que todos sobrescrevam qualquer arquivo em seu diretório web. Então, para considerar isso como uma requisição é necessário dizer ao seu servidor web que você quer que um determinado script PHP cuide dessa requisição. Para fazer isso no Apache utilize a diretiva Script. Ela pode ser colocada quase em qualquer local de seu arquivo de configuração do Apache. Um local comum é dentro de um bloco <Directory> ou talvez dentro de um bloco <VirtualHost>. Uma linha como a seguinte deve funcionar:

Script PUT /put.php

Isto diz ao Apache para enviar todas as requisições PUT paras as URIs que combinem com o contexto dessa linha para o script put.php. Isto assume que o PHP esteja ativo e permita extensões .php. O destino para todas as requisições PUT para esse script deve ser o próprio script, não o nome do arquivo enviado.

Com o PHP pode ser feito algo como se segue no script put.php. Isso copia o conteúdo de um arquivo enviado para o arquivo myputfile.ext no servidor. Provavelmente é necessário a realização de algumas verificações e/ou autenticação de usuário antes de realizar essa cópia.

Exemplo #1 Salvando arquivos HTTP PUT

<?php
/* PUT data vem do fluxo stdin */
$putdata = fopen("php://input", "r");

/* Abre um arquivo para escrita */
$fp = fopen("myputfile.ext", "w");

/* Lê os dados 1KB de cada vez
e escreve no arquivo */
while ($data = fread($putdata,1024))
fwrite($fp,$data);

/* Fecha os fluxos */
fclose($fp);
fclose($putdata);
?>


  • « Suporte ao método PUT
  • Usando arquivos remotos »
  • PHP Manual
  • Gerenciar o upload de arquivos
  • Veja Também

Veja Também

  • Segurança do sistema de arquivos


Usando arquivos remotos

Enquanto allow_url_fopen estiver disponível no arquivo php.ini, você pode usar URLs HTTP e FTP com a maioria das funções que recebem um nome de arquivo como parâmetro. Além disso, URLs podem ser usadas com as funções include, include_once, require e require_once (allow_url_include precisa estar habilitado para isto). Veja Protocolos e Wrappers suportados para mais informações sobre protocolos suportados pelo PHP.

Por exemplo, você pode usar isso para abrir um arquivo em um web server remoto, avaliar a saída para a informação que você precisa, e então usar a informação em uma query de banco de dados, ou simplesmente mostrar em um estilo que combine com o resto do seu website.

Exemplo #1 Pegando o título de uma página remota

<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
echo "<p>Incapaz de abrir arquivo remoto.\n";
exit;
}
while (!feof ($file)) {
$line = fgets ($file, 1024);
/* Isso só funciona se o título e suas tags estiverem na mesma linha */
if (eregi ("<title>(.*)</title>", $line, $out)) {
$title = $out[1];
break;
}
}
fclose($file);
?>

Você também pode escrever arquivos em um servidor FTP (presumindo que você se conectou como um usuário com os direitos de acesso corretos). Você só pode criar arquivos novos usando esse método. Se você tentar sobrescrever um arquivo que já existe, a chamada para fopen() falhará.

Para conectar como um usuário diferente de 'anonymous', você precisa especificar o nome de usuário (e possivelmente a senha) dentro da URL, como 'ftp://user:password@ftp.example.com/path/to/file'. (Você pode usar o mesmo tipo de sintaxe para acessar arquivos via HTTP quando eles requerem autenticação Basic).

Exemplo #2 Guardando informação em um servidor remoto

<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
echo "<p>Incapaz de abrir arquivo remoto para escrita.\n";
exit;
}
/* Escreva informação aqui. */
fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Nota:

Você talvez tenha tido a idéia, pelo exemplo acima, de usar essa técnica para escrever para um arquivo de log remoto. Infelizmente isso não funcionaria porque a chamada a fopen() falhará se o arquivo remoto já existir. Para fazer logs distribuídos dessa maneira, você deve dar uma olhada na função syslog().


Tratamento de Conexões

O status de uma conexão é mantido internamente no PHP. Existem 4 estados possíveis:

  • 0 - NORMAL
  • 1 - ABORTED
  • 2 - TIMEOUT
  • 3 - ABORTED and TIMEOUT

Quando um script PHP está sendo executado normalmente, o estado NORMAL está ativo. Se o cliente remoto desconecta, o estado ABORTED (abortado) é ligado. Uma desconexão do cliente remoto é normalmente causada pelo usuário apertando o botão STOP. Se o tempo limite imposto pelo PHP (veja set_time_limit()) é alcançado, o estado TIMEOUT (tempo acabado) é ligado.

Você pode decidir se quer ou não que a desconexão do cliente cause interrupção em seu script. As vezes é útil sempre fazer o seu script rodar até completar mesmo se não houver nenhum navegador remoto recebendo a saída. O comportamento padrão, no entanto, é de seu script ser interrompido quando o cliente remoto se desconecta. Esse comportamento pode ser configurado através da diretiva ignore_user_abort php.ini assim como pela diretiva correspondente php_value ignore_user_abort no httpd.conf do Apache ou com a função ignore_user_abort(). Se você não disser para o PHP ignorar o abort do usuário e ele abortar, seu script será encerrado. A única exceção é se você tiver registrado uma função de finalização usando register_shutdown_function(). Com uma função de finalização, quando um usuário remoto clica no botão STOP, a próxima vez que seu script tentar gerar alguma saída, o PHP detectará que a conexão foi cancelada e a função de finalização é chamada. Essa função de finalização também será chamada no fim do seu script mesmo terminando normalmente, então para fazer algo diferente caso o cliente desconecte, você pode usar a função connection_aborted(). Essa função retorna true se a conexão foi abortada.

Seu script também pode ser finalizado pelo timer interno. O tempo limite padrão é de 30 segundos. Podendo ser mudado usando a diretiva max_execution_time php.ini ou a diretiva correspondente no httpd.conf do Apache php_value max_execution_time assim como com a função set_time_limit(). Quando o timer chega ao limite o script será abortado e assim como o caso acima de desconexão pelo cliente, se uma função de finalização foi registrada, ela será chamada. Dentro da função de finalização você pode checar se a causa da finalização foi estouro do tempo limite chamando a função connection_status(). Essa função retornará 2 se a causa foi exceder o tempo limite.

Uma coisa a ser notada é que ambos os estados ABORTED e TIMEOUT podem estar ligados ao mesmo tempo. Isso é possível se você disser ao PHP para ignorar o abort do usuário causou. PHP continuará a perceber o fato que o usuário pode ter quebrado a conexão, mas o script continuará executando. Se então ele alcançar o tempo limite, ele será abortado e sua função de finalização, se existente, será chamada. Nesse ponto, você terá que connection_status() retorna 3.


Conexões Persistentes com o Banco de Dados

Conexões persistentes são conexões que não fecham quando a execução do seu script termina. Quando uma conexão persistente é requisitada, o PHP verifica se já existe uma conexão persistente idêntica (que foi mantida aberta anteriormente) - e, se ela existir, ele a usa. Se ela não existir, ele cria a conexão. Uma conexão 'idêntica' é uma conexão que foi aberta para o mesmo host, com o mesmo nome de usuário e a mesma senha (onde for aplicável).

Pessoas que não são totalmente familiarizadas com a maneira como servidores web trabalham e distribuem a carga podem confundir conexões persistentes com o que elas não são. Em particular, elas não dão a você a capacidade de abrir 'sessões de usuários' na mesma conexão, elas não dão a você a capacidade de construir uma transação eficientemente, e elas não fazem muitas outras coisas. De fato, para ser extremamente claro sobre o assunto, conexões persistentes não te dão nenhuma funcionalidade que não era possível com as suas correspondentes não-persistentes.

Por que?

Isso tem a ver com a maneira como os servidores web funcionam. Existem três maneiras em que seu servidor web pode utilizar PHP para gerar páginas.

O primeiro método é usar o PHP como um CGI "wrapper". Quando executado dessa maneira, uma instância do interpretador do PHP é criada e destruída para cada requisição de página (para uma página PHP) para o seu servidor web. Como ela é destruída após cada requisição, quaisquer recursos que ela adquirir (como uma conexão para um servidor de banco de dados SQL) são fechados quando ela é destruída. Nesse caso, você não ganha nada por tentar usar conexões persistentes -- elas simplesmente não persistem.

O segundo método, e mais popular, é rodar o PHP como um módulo em um servidor com multi-processos, que atualmente só inclui o Apache. Um servidor com multi-processos tipicamente tem um processo (o pai) que coordena uma série de processos (seus filhos) que realmente fazem o trabalho de servir as páginas web. Quando uma requisição chega de um cliente, ela é entregue à um dos filhos que já não estiver servindo outro cliente. Isso significa que quando o mesmo cliente faz uma segunda requisição para o servidor, ele pode ser atendido por um processo filho diferente do que da primeira vez. Ao abrir uma conexão persistente, cada página que requisitar serviços de SQL pode reutilizar a mesma conexão estabelecida ao servidor SQL.

O último método é usar o PHP como um plug-in para um servidor web multithread. Atualmente, o PHP tem suporte para ISAPI, WSAPI, e NSAPI (no Windows), todos permitindo PHP ser usado como um plug-in em servidores multithreaded como Netscape FastTrack (iPlanet), Internet Information Server (IIS) da Microsoft, e O'Reilly's WebSite Pro. O comportamento é essencialmente o mesmo do modelo multiprocessado descrito anteriormente.

Se conexões persistentes não tem nenhuma funcionalidade a mais, para que elas servem?

A resposta é extremamente simples: eficiência. Conexões persistentes são boas se a sobrecarga (overhead) para criar uma conexão ao seu servidor SQL for alta. Se essa sobrecarga é alta ou não depende de vários fatores. Como, qual tipo de banco de dados é, se está ou não na mesma máquina onde o servidor web está, o quão carregada a máquina onde está o servidor SQL está e assim por diante. O ponto é que se a sobrecarga de conexão for alta, conexões persistentes ajudam consideravelmente. Elas fazem com que os processos filhos simplesmente se conectem uma vez só durante toda sua duração, ao invés de cada vez que eles processam uma página que requer uma conexão ao servidor SQL. Isso significa que cada filho que abriu uma conexão persistente terá sua própria conexão persistente para o servidor. Por exemplo, se você tivesse 20 processos filhos diferentes que rodassem um script que fizesse uma conexão persistente à um servidor SQL, você teria 20 conexões diferentes servidor SQL, uma para cada filho.

Perceba, no entanto, que isso pode ter algumas desvantagens se você estiver usando um banco de dados com limite de conexões que são excedidas pela conexões persistentes dos filhos. Se o seu banco de dados tem um limite de 16 conexões simultâneas, e durante um momento de pico de acessos, 17 processos filhos tentarem se conectar, um deles não será capaz. Se houver bugs no seus scripts que não permitem que as conexões se fechem (como loops infinitos) o banco de dados com apenas 16 conexões pode rapidamente ficar sobrecarregado. Procure na documentação do seu banco de dados por informações sobre como lidar com conexões ociosas ou abandonadas.

Aviso

Existem mais alguns cuidados a se tomar quando usando conexões persistentes. Um deles é que, quando usando travamento de tabela em uma conexão persistente, se o script por qualquer razão não puder destravar a mesma, então scripts subsequentes usando a mesma conexão serão bloqueados indefinidamente e podem exigir que você ou reinicie o servidor httpd ou o servidor de banco de dados. Outro cuidado, é que quando usando transações, um bloco de transação também será carregado para o próximo script que usa aquela conexão se a execução do script terminar antes que o bloco de transação termine. Em ambos os casos, você pode usar register_shutdown_function() para registrar uma função simples de limpeza para destravar suas tabelas ou reverter suas transações. Melhor ainda, evite o problema completamente não utilizando conexões persistentes em scripts que usam travamento de tabelas ou transações (você ainda pode usar eles em outros casos).

Um resumo importante. Conexões persistente foram feitas para ter um mapeamento de um-para-um com conexões normais. Isso significa que você deve sempre ser capaz de substituir conexões persistentes com conexões não-persistentes e isso não mudará a maneira como seu script se comporta. Isso pode (e provavelmente irá) mudar a eficiência do seu script, mas não o seu comportamento!

Veja também ibase_pconnect(), ociplogon(),
odbc_pconnect(), oci_pconnect(),
pfsockopen() e pg_pconnect().


Usando PHP a partir da linha de comando

Índice

  • Diferenças em relação a outros SAPIs
  • Opções
  • Uso
  • I/O streams
  • Shell interativo
  • Servidor web embutido
  • Configurações INI

Introdução

O principal foco do CLI SAPI é o desenvolvimento de aplicações shell com PHP. Existem algumas diferenças entre CLI SAPI e outras SAPIs que são explicadas neste capítulo. Vale a pena ressaltar que CLI e CGI são diferentes SAPIs embora compartilhem boa parte dos mesmos comportamentos.

O CLI SAPI é ativado por padrão usando --enable-cli, mas pode ser desativado usando a opção --disable-cli quando se executa o comando ./configure durante o processo de compilação do PHP.

O nome, a localização e a existência dos arquivos binários do CLI/CGI podem ser diferentes dependendo de como o PHP está instalado no seu sistema. Por padrão, quando executado o make, ambos CGI e CLI são compilados e colocados em sapi/cgi/php-cgi e sapi/cli/php, respectivamente, no seu diretório fonte do PHP. Você vai notar que ambos são nomeados php. O que acontece durante o make install depende da sua linha de configuração. Se o módulo SAPI é escolhido durante a configuração, como apxs, ou a opção --disable-cgi é utilizada, o CLI é copiado para {PREFIX}/bin/php durante make install, caso contrário o CGI é colocado lá. Assim, por exemplo, se o --with-apxs está na sua linha de configuração, em seguida, o CLI é copiado para {PREFIX}/bin/php durante o make install. Se você quiser substituir a instalação do binário CGI, use make install-cli depois de make install. Alternativamente, você pode especificar --disable-cgi na sua linha de configuração.

Nota:

Porque ambos --enable-cli e --enable-cgi são ativadas por padrão, ter simplesmente um --enable-cli na sua linha de configuração não significa necessariamente que o CLI será copiado para {PREFIX}/bin/php durante o make install.

O binário CLI é distribuído na pasta principal como php.exe no Windows. A versão CGI é distribuída como php-cgi.exe. Além disso, um php-win.exe é distribuído se o PHP é configurado com --enable-cli-win32. Isso faz o mesmo que a versão CLI, exceto que ele não exibe nenhum output e também não disponibiliza nenhum console.

Nota: Qual SAPI eu tenho?

A partir da linha de comando, digitar php -v lhe dirá se o php é CGI ou CLI. Veja também a função php_sapi_name() e a constante PHP_SAPI.

Nota:

A página do man Unix está disponível digitando man php no ambiente shell.


Diferenças em relação a outros SAPIs

Diferenças notáveis do CLI SAPI em comparação com outros SAPIs:

  • Diferente do CGI SAPI, nenhum cabeçalho é enviado para a saída.

    Embora o CGI SAPI forneça uma maneira de suprimir os cabeçalhos HTTP, não existe nenhum forma equivalente de habilitá-los no CLI SAPI.

    CLI é inicializado no modo silencioso por padrão, embora as chaves -q e --no-header são mantidas por compatibilidade para que seja possível usar scripts CGI antigos.

    Ele não altera o diretório atual para aquele no qual o script está sendo executado (As opções -C and --no-chdir são mantidas por compatibilidade)

    Mensagens de erro em texto plano (sem formatação HTML).

  • Existem certas diretivas do php.ini que são sobrescritas pelas do CLI SAPI porque elas não fazem sentido em um ambiente de linha de comando:

    Diretivas do php.ini sobrescritas
    Diretiva | Valor padrão do CLI SAPI | Comentário
    html_errors | false | Tem como padrão false, já que pode ser bem difícil ler mensagens de erro na linha de comando quando elas estão misturadas com tags HTML não interpretadas.
    implicit_flush | true | Em um ambiente de linha de comando, é geralmente desejado para a saída, como a partir de print, echo e similares, que elas sejam exibidas imediatamente, e não mantidas em um buffer. Apesar disso, ainda é possível usar output buffering para atrasar ou manipular a saída padrão.
    max_execution_time | 0 (unlimited) | O PHP em um ambiente de linha de comando tende a ser usado com um número de propostas muito mais diversas do que para aplicações web típicas, e como essas formas podem ter muito mais longevidade, o tempo máximo de execução é definido como sem limite.
    register_argc_argv true

    Definir isso como true significa que o script executado a partir do CLI SAPI sempre terá acesso ao argc (número de argumentos passados para a aplicação) e argv (array contendo os valores dos argumentos).

    As variáveis $argc e $argv do PHP são automaticamente definidas com seus valores apropriados quando usando o CLI SAPI. Esses valores podem também ser encontrados no array $_SERVER, por exemplo: $_SERVER['argv'].

    output_buffering false

    Apesar do valor no php.ini ser explicitamente definido como false, as funções de Output buffering estão disponíveis.

    max_input_time false

    O PHP CLI não suporta GET, POST ou upload de arquivos.

    Nota:

    Essas diretivas não podem ser inicializadas com outro valor no arquivo de configuração php.ini ou um valor personalizado (caso seja especificado). Essa limitação ocorre pois os valores são aplicados depois que todos os arquivos de configuração foram lidos. Entretanto, seus valores podem ser alterados em tempo de execução (porém isso não se aplica a todos eles como register_argc_argv).

    Nota:

    É recomendado definir ignore_user_abort para aplicações de linha de comando. Veja ignore_user_abort() para mais informações.

  • Para facilitar o trabalho em ambientes de linha de comando, um número de constantes é definido para I/O streams.

  • O CLI SAPI não altera o diretório de trabalho para o diretório de onde o arquivo é executado.

    Exemplo #1 Exemplo demonstrando a diferença entre CGI e SAPI:

    <?php
    // Um script de teste simples chamado test.php
    echo getcwd(), "\n";
    ?>

    Quando é utilizada a versão CGI a saída é:

    $ pwd
/tmp

$ php -q another_directory/test.php
/tmp/another_directory

    Isso demonstra claramente que o PHP altera o diretório de trabalho para o diretório onde o arquivo é executado.

    Usando o CLI SAPI temos:

    $ pwd
/tmp

$ php -f another_directory/test.php
/tmp

    Isso permite grande flexibilidade no desenvolvimento de ferramentas de linha de comando em PHP.

    Nota:

    O CGI SAPI suporta esse comportamento do CLI SAPI através da opção -C utilizada quando executado a partir da linha de comando.


Opções de linha de comando

A lista de opções de linha de comando fornecidas pelo binário do PHP pode ser requisitada a qualquer momento bastando executar o PHP com a opção -h:

Usage: php [options] [-f] <file> [--] [args...]
   php [options] -r <code> [--] [args...]
   php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
   php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
   php [options] -- [args...]
   php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -S <addr>:<port> Run with built-in web server.
  -t <docroot>     Specify document root <docroot> for built-in web server.
  -s               Output HTML syntax highlighted source.
  -v               Version number
  -w               Output source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --rz <name>      Show information about Zend extension <name>.
  --ri <name>      Show configuration for extension <name>.

Opções de linha de comando
Opção | Opção Estendida | Descrição
-a --interactive

Executa o PHP interativamente. Para mais informações veja a seção Shell interativo.

-b --bindpath

Vincula o Path para o modo externo do servidor FASTCGI (apenas em CGI).

-C --no-chdir

Não executa chdir para o diretório do script (apenas em CGI).

-q --no-header

Modo silencioso. Suprime os cabeçalhos HTTP na saída (apenas em CGI).

-T --timing

Calcula o tempo de execução do script repetidas count de vezes (apenas em CGI).

-c --php-ini

Especifica um diretório para procurar pelo php.ini, ou um arquivo INI personalizado (que não precisa se chamar php.ini), exemplo:

$ php -c /custom/directory/ my_script.php

$ php -c /custom/directory/custom-file.ini my_script.php

Se essa opção não for especificada, o php.ini será procurado no local padrão.

-n --no-php-ini

Ignore o php.ini completamente.

-d --define

Defina um valor personalizado para qualquer uma das diretivas de configuração permitidas em arquivos php.ini. A sintaxe é:

 -d configuration_directive[=value]

Exemplo #1 Exemplo de uso de -d para definir uma configuração INI

# Omitir o valor irá configurar a diretiva para "1"
$ php -d max_execution_time
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Passar um valor vazio irá configurar a detiva para ""
php -d max_execution_time=
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# A diretiva de configudação será configurada para tudo o que estiver depois do sinal de '='
$ 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 --profile-info

Ativa o modo de informação estendido, para ser usado por um debugger/profiler.

-f --file

Lê e executa o arquivo especificado. A opção -f é opcional e pode ser omitida - fornecer somente o nome do arquivo a ser executado é suficiente.

-h and -? | --help e --usage | Exibe uma lista de opções de linha de comando com a descrição do seu funcionamento.
-i | --info | Invoca phpinfo(), e exibe o resultado. Caso o PHP não esteja executando corretamente, é aconselhável usar o comando php -i e verificar se alguma mensagem de erro é informada antes ou no lugar da tabela de informações. Esteja ciente de que ao usar o modo CGI a saída será em HTML e portanto bastante longa.
-l --syntax-check

Fornece uma forma conveniente de realizar uma verificação da sintaxe no código PHP informado. Em caso de sucesso, o texto No syntax errors detected in <filename> é disparado para a saída padrão da linha de comando e o código de retorno é 0. Em caso de falha, o texto Errors parsing <filename> assim como as mensagens adicionais de erros são retornados para a saída padrão do terminal e o código retornado é -1.

Isso não irá encontrar error fatais (como funções não definidas). Use a opção -f para também testar os erros fatais.

Nota:

Essa opção não funciona em conjunto com a opção -r.

-m --modules

Exemplo #2 Retorna os módulos PHP e Zend embutidos e carregados

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-r --run

Habilita a execução do código PHP incluído diretamente na linha de comando. As tags de abertura e fechamento do PHP (<?php e ?>) não são necessárias e irão causar um erro de leitura caso sejam incluídas.

Nota:

Muito cuidado precisa ser tomado ao usar essa forma para que o PHP não colida com a substituição de variáveis de linha de comando realizadas pelo seu ambiente de linha de comando.

Exemplo #3 Recebendo um erro de sintaxe ao usar aspas duplas

$ php -r "$foo = get_defined_constants();"
PHP Parse error:  syntax error, unexpected '=' in Command line code on line 1

Parse error: syntax error, unexpected '=' in Command line code on line 1

O problema aqui é que o sh/bash realiza substituições de variáveis mesmo usando aspas duplas ". já que a variável $foo provavelmente não está definida, ocorrerá uma substituição para nada, que resulta no seguinte código passado para o PHP executar:

$ php -r " = get_defined_constants();"

A maneira correta é usar aspas simples '. Variáveis em strings de aspas simples não são substituídas pelo sh/bash.

Exemplo #4 Usar aspas simples previne a substituição de variáveis pelo ambiente de linha de comando

$ 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"]=>
  [...]

Se estiver usando um ambiente de linha de comando que não seja sh/bash, outros problemas podem ser encontrados - caso necessário, um aviso de bug pode ser aberto em » https://github.com/php/php-src/issues. Ainda assim é muito fácil encontrar problemas ao tentar usar variáveis (de linha de comando ou PHP) em código de linha de comando, ou usando barra invertida para escapar, por isso tenha muito cuidado quando fizer isso. Você foi avisado!

Nota:

-r está disponível no CLI SAPI, mas não no CGI SAPI.

Nota:

Essa opção é normalmente utilizada com código muito básico, portanto algumas diretivas de configuração (como auto_prepend_file e auto_append_file) são ignoradas nesse modo.

-B --process-begin

O código PHP executado antes do processamento do stdin.

-R --process-code

Código PHP para ser executado a cada linha de entrada.

Existem duas variáveis especiais disponíveis nesse modo: $argn e $argi. $argn conterá a linha que está sendo processada pelo PHP no momento, enquanto $argi irá conter o número da linha.

-F --process-file

Arquivo PHP para ser executado a cada linha de entrada.

-E --process-end

Código PHP para ser executado após o processamento da entrada.

Exemplo #5 Usando as opções -B, -R e -E para contar o número de linhas de um projeto.

$ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Total Lines: $l\n";'
Total Lines: 37328

-S --server

Inicia o servidor embutido do PHP.

-t | --docroot | Específica a raiz do documento para o servidor embutido do PHP.
-s --syntax-highlight and --syntax-highlighting

Destaca a sintaxe de código (syntax-highlighting).

Essa opção usa os mecanismos internos para interpretar os arquivos e escrever uma versão HTML colorida do código para a saída padrão. Repare que tudo que ele faz é gerar um bloco de tags HTML <code> [...] </code>, sem os cabeçalhos HTML.

Nota:

Essa opção não funciona em conjunto com a opção -r.

-v --version

Exemplo #6 Use -v para requisitar o nome SAPI e a versão do PHP e Zend Engine

$ php -v
PHP 5.3.1 (cli) (built: Dec 11 2009 19:55:07)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

-w --strip

Exibe o código com comentários e espaços em branco removidos.

Nota:

Essa opção não funciona em conjunto com a opção -r.

-z --zend-extension

Carrega uma extensão Zend. Se somente um nome de arquivo for fornecido, O PHP irá tentar carregar essa extensão a partir do diretório padrão de extensões do seu sistema, (geralmente /etc/ld.so.conf em sistemas linux, por exemplo). Ao passar o nome do arquivo juntamente com seu caminho absoluto não usará o diretório padrão de extensões. Um caminho relativo incluindo informações de diretórios dirá ao PHP para tentar carregar a extensão relativamente ao diretório atual.

--ini

Exibir nomes de arquivos de configuração e diretórios verificados.

Exemplo #7 --ini exemplo

$ php --ini
Configuration File (php.ini) Path: /usr/dev/php/5.2/lib
Loaded Configuration File:         /usr/dev/php/5.2/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
--rf --rfunction

Exibe informações sobre a função ou método de objeto informado (como por exemplo o número e nome dos parâmetros).

Essa opção só está disponível se o PHP for compilado com suporte a Reflexão.

Exemplo #8 uso básico da opção --rf

$ php --rf var_dump
Function [ <internal> public function var_dump ] {

  - Parameters [2] {
    Parameter #0 [ <required> $var ]
    Parameter #1 [ <optional> $... ]
  }
}
--rc --rclass

Exibe informações sobre uma determinada classe (lista de constantes, propriedades e métodos).

Essa opção só está disponível se o PHP for compilado com suporte a Reflexão.

Exemplo #9 exemplo de --rc

$ php --rc Directory
Class [ <internal:standard> class Directory ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [3] {
    Method [ <internal> public method close ] {
    }

    Method [ <internal> public method rewind ] {
    }

    Method [ <internal> public method read ] {
    }
  }
}
--re --rextension

Exibe informações sobre uma determinada extensão (lista de opções do php.ini, funções definidas, constantes e classes.

Essa opção só está disponível se o PHP for compilado com suporte a Reflexão.

Exemplo #10 Exemplo de --re

$ php --re json
Extension [ <persistent> extension #19 json version 1.2.1 ] {

  - Functions {
    Function [ <internal> function json_encode ] {
    }
    Function [ <internal> function json_decode ] {
    }
  }
}
--rz --rzendextension

Exibe as informações de configuração de uma determinada extensão Zend (a mesma informação retornada pela phpinfo()).

--ri --rextinfo

Exibe as informações de configuração de uma determinada extensão (as mesmas informações retornadas pela phpinfo()). As informações de configurações do núcleo da linguagem estão disponíveis usando "main" como nome da extensão.

Exemplo #11 exemplo de --ri

$ php --ri date

date

date/time support => enabled
"Olson" Timezone Database Version => 2009.20
Timezone Database => internal
Default timezone => Europe/Oslo

Directive => Local Value => Master Value
date.timezone => Europe/Oslo => Europe/Oslo
date.default_latitude => 59.930972 => 59.930972
date.default_longitude => 10.776699 => 10.776699
date.sunset_zenith => 90.583333 => 90.583333
date.sunrise_zenith => 90.583333 => 90.583333

Nota:

As opções -rBRFEH, --ini e --r[fcezi] estão disponíveis somente no CLI.


Executando arquivos PHP

Existem três formas de fornecer código PHP para ser executado pelo CLI SAPI:

  1. Diga ao PHP para executar determinado arquivo.

    $ php my_script.php

$ php -f my_script.php

    As duas formas (usando ou não a opção -f) executam o arquivo my_script.php. Note que não existe restrição sobre quais arquivos podem ser executados; em particular, o nome do arquivo não precisa conter a extensão .php.

  2. Passa o código PHP diretamente através da linha de comando.

    $ php -r 'print_r(get_defined_constants());'

    Um cuidado especial deve ser tomado em relação a substituição de variáveis e o uso de aspas.

    Nota:

    Leia o exemplo cuidadosamente: não existem tags de abertura e fechamento! A opção -r simplesmente não necessita delas, e usá-las irá gerar um erro de interpretação.

  3. Direciona a entrada padrão (stdin) para o código PHP.

    Isso dá a poderosa habilidade de criar código PHP dinamicamente e alimentar o binário, assim como demonstrado nesse exemplo fictício:

    $ some_application | some_filter | php | sort -u > final_output.txt
Você não pode combinar essas formas de executar o código.

Assim como qualquer aplicação de linha de comando, o PHP aceita qualquer quantidade argumentos; entretanto, os scripts PHP também podem receber outros argumentos. A quantidade de argumentos que podem ser passados para o script não é limitada pelo PHP (e apesar do shell ter um limite no número de caracteres que podem ser passados, ele não é geralmente atingido). Os argumentos passados para o scripts ficam disponíveis no array global $argv. O primeiro índice (zero) sempre contém o nome do script que está sendo chamado pela linha de comando. Note que, se o código é executado diretamente usando a opção de linha de comando -r, o valor de $argv[0] será "Standard input code"; anteriormente ao PHP 7.2.0, isso era um hífem ("-"). A mesma coisa ocorre se o código é executado via um pipe a partir do STDIN.

Uma segunda variável global, $argc, contém o número de elementos contidos no array$argv array (não o número de argumentos passados para o script).

Desde que os argumentos passados pelo script não comecem com o caractere -, não existe nada em especial com que você deva se preocupar. Passar um argumento para o script que comece com - irá causar problemas, porque o interpretador do PHP irá pensar que ele mesmo deve manipular esse argumento, mesmo antes de executar o script. Para prevenir isso use o separador de lista de argumentos --. Depois que esse separador é interpretado pelo PHP, cada argumento seguinte é passado intocado para o script.

# Isto não executará o código, apenas mostrará as opções do PHP
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# Isto passará o argumento '-h' para o script, assim evitando do PHP interpretá-lo
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

Entretanto, em sistemas Unix existe uma outra maneira de usar o PHP em linha de comando: fazer com que a primeira linha do script comece com #!/usr/bin/php (ou qualquer que seja o caminho para o binário do PHP CLI caso seja diferente. O restante do arquivo deve conter código PHP normal com as já tradicionais tags de abertura e fechamento. Uma vez que os atributos de execução do arquivo estejam apropriadamente definidos (exemplo. chmod +x test), o script poderá ser executado como qualquer outro script shell ou perl:

Exemplo #1 Executando scripts PHP como shell scripts

#!/usr/bin/php
<?php
var_dump($argv);
?>

Assumindo que esse arquivo tenha o nome test no diretório atual, é possível fazer o seguinte:

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}

Como pode ser visto, nesse caso nenhum cuidado especial precisa ser tomado ao passar parâmetros começando com -.

O executável do PHP pode ser usado para rodar scripts absolutamente independentes do servidor web. Em sistemas Unix, a primeira linha especial #! (ou "shebang") deve ser adicionada a sripts PHP para que o sistema possa automaticamente dizer qual programa deve executar o script. Em plataformas Windows, é possível associar o php.exe com um clique duplo no arquivos com extensão .php, ou um arquivo batch pode ser criado para rodar scripts através do PHP. A primeira linha especial shebang para Unix não causa nenhum efeito no Windows (Já que é formatada como um comentário PHP), então programas multiplataforma podem ser escritos com a inclusão disso. Um exemplo simples de programa de linha de comando em PHP é mostrado abaixo.

Exemplo #2 Script planejado para ser executado na linha de comando (script.php)

#!/usr/bin/php
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

This is a command line PHP script with one option.

Usage:
<?php echo $argv[0]; ?> <option>

<option> can be some word you would like
to print out. With the --help, -help, -h,
or -? options, you can get this help.

<?php
} else {
echo $argv[1];
}
?>

O script acima inclui a shebang na primeira linha para indicar que esse arquivo deve ser executado pelo PHP. Nós estamos trabalhando com a versão CLI aqui, então nenhum cabeçalho HTTP será exibido.

O programa primeiramente verifica se o primeiro argumento obrigatório foi passado (juntamente com o nome do arquivo, que também é contabilizado). Em caso negativo, ou caso o argumento seja --help, -help, -h ou -?, uma mensagem de ajuda é disparada, usando $argv[0] para imprimir dinamicamente o nome do script como foi digitado na linha de comando. Do contrário, o argumento é exibido da forma como foi escrito.

Para executar o script acima em sistemas Unix, ele deve ser tornado executável, e chamado simplesmente com script.php echothis ou script.php -h. Em sistemas Windows, um arquivo batch similar ao seguinte pode ser criado para essa tarefa:

Exemplo #3 Arquivo batch para rodar um script de linha de comando em PHP (script.bat)

@echo OFF
"C:\php\php.exe" script.php %*

Assumindo que o programa acima foi nomeado como script.php, e que o CLI php.exe está em C:\php\php.exe, esse arquivo batch irá executá-lo, repassando todas as opções: script.bat echothis ou script.bat -h.

Veja também a documentação da extensão Readline com mais funções usadas para melhorar as aplicações de linha de comando em PHP.

No Windows, o PHP pode ser configurado para rodar sem a necessidade de informar o C:\php\php.exe ou a extensão.php, como descrito em PHP para linha de comando no Microsoft Windows.

Nota:

No Windows é recomendado rodar o PHP em uma conta de usuário normal. Ao rodar em uma conta de serviço certas operações podem falhar, por conta da situação "No mapping between account names and security IDs was done".


Input/output streams

O CLI SAPI define algumas constantes para I/O streams com o objetivo de tornar a programação em linha de comando um pouco mais fácil.

Constantes específicas da CLI
Constante Descrição
STDIN

Um stream já aberto para o stdin. Isso evita ter que abrí-lo com

<?php
$stdin = fopen('php://stdin', 'r');
?>
Se voê desejar ler uma única linha do stdin, você pode usar
<?php
$line = trim(fgets(STDIN)); // Lê uma linha do STDIN
fscanf(STDIN, "%d\n", $number); // Lê um número do STDIN
?>
STDOUT

Um stream já aberto para o stdout. Isso evitar ter que abrí-lo com

<?php
$stdout = fopen('php://stdout', 'w');
?>
STDERR

Um stream já aberto com stderr. Isso evita ter que abri-lo com

<?php
$stderr = fopen('php://stderr', 'w');
?>

Como dito acima, você não precisa por exemplo abrir um stream para stderr por si mesmo, basta usar a constante ao invés do recurso do stream:

php -r 'fwrite(STDERR, "stderr\n");'
Você não precisa fechar explicitamente esses streams, já que eles serão automaticamente fechados pelo PHP quando o script terminar.

Nota:

Essas constantes não estão disponíveis se estiver lendo os scripts PHP de stdin.


Shell interativo

O CLI SAPI fornece um shell interativo usando a opção -a se o PHP for compilado com a opção --with-readline. A partir do PHP 7.1.0 o shell interativo também está disponível no Windows, se a extensão readline estiver habilitada.

Usando o shell interativo você será capaz de escrever código PHP e executá-lo diretamente.

Exemplo #1 Executando código usando o shell interativo

$ php -a
Interactive shell

php > echo 5+8;
13
php > function addTwo($n)
php > {
php { return $n + 2;
php { }
php > var_dump(addtwo(2));
int(4)
php >

O shell interativo também possui sugestões de complemento com tab para funções, constantes, nomes de classes, variáveis, chamadas para métodos estáticos e constantes de classe.

Exemplo #2 Sugestões de complemento com tab

Pressionar a tecla tab duas vezes quando tiver mais de uma sugestão de complemento resultará numa lista desses complementos.

php > strp[TAB][TAB]
strpbrk   strpos    strptime
php > strp

Quando existir apenas um possível complemento, pressionar a tecla tab uma vez irá completar o restante da mesma linha:

php > strpt[TAB]ime(

Complementos também funcionarão para nomes que forem definidos durante a mesma sessão do shell interativo:

php > $fooThisIsAReallyLongVariableName = 42;
php > $foo[TAB]ThisIsAReallyLongVariableName

O shell interativo armazena seu histórico que pode ser acessado usando as teclas para cima e para baixo. O histórico é salvo no arquivo ~/.php_history.

O CLI SAPI fornece as configurações do php.ini cli.pager e cli.prompt. A configuração cli.pager permite que um programa externo (como o less) aja como uma alternativa para a saída ao invés dela ser exibida diretamente na tela. A configuração cli.prompt faz com que seja possível alterar a saída php >.

Também é possível definir configurações php.ini no shell interativo usando uma notação abreviada.

Exemplo #3 Definindo configurações php.ini no shell interativo

A opção cli.prompt:

php > #cli.prompt=hello world :>
hello world :>

Usando crase é possível executar o PHP diretamente no terminal:

php > #cli.prompt=`echo date('H:i:s');` php >
15:49:35 php > echo 'hi';
hi
15:49:43 php > sleep(2);
15:49:45 php >

Setando o paginador paraless:

php > #cli.pager=less
php > phpinfo();
(output displayed in less)
php >

A configuração cli.prompt suporta algumas sequências de escape:

Sequências de escape do cli.prompt
Sequência | Descrição
\e | Usada para adicionar cores ao terminal. Um exemplo pode ser \e[032m\v \e[031m\b \e[34m\> \e[0m
\v | A versão do PHP.
\b | Indica em qual bloco o PHP está. Por exemplo /* irá indicar que o PHP está dentro de um comentário de múltiplas linhas. O escopo externo será denominado por php.
\> | Indica o caractere do terminal. Por padrão é >, mas pode alterar quando o shell estiver dentro de um bloco indeterminado ou de uma string. Possíveis caracteres são: ' " { ( >

Nota:

Arquivos incluídos através de auto_prepend_file e auto_append_file são interpretados nesse modo porém com algumas restrições - Exemplo: funções devem ser definidas antes de sua chamada.

Modo interarativo

Se a extensão readline não estiver disponível, anteriormente ao PHP 8.1.0, chamar o CLI SAPI com a opção -a fornecia o modo interativo. Nesse modo, um script PHP completo deveria ser fornecido via STDIN, terminado por uma sequência de CRTL+d (POSIX) ou CTRL+z seguido de ENTER (Windows), para que o script seja avaliado. Isto é basicamente o mesmo que invocar CLI SAPI sem a opção -a.

A partir do PHP 8.1.0, chamar a CLI SAPI com a opção -a falhará na ausência da extensão readline.


Servidor web embutido

Aviso

Esse servidor web foi desenvolvido para auxiliar no desenvolvimento de aplicações. Ele também pode ser útil para testes ou para demonstrações de aplicações que forem executadas em ambientes controlados. Ele não foi desenvolvido para ser um web server completo. Ele não deve ser utilizado em uma rede pública.

O CLI SAPI fornece um servidor web embutido.

Esse servidor embutido roda apenas um processo single-thread, de forma que aplicações PHP irão congelar se uma requisição bloquear.

Requisições de URI são servidas a partir do diretório atual onde o PHP foi iniciado, a não ser que a opção -t seja usada para especificar uma raiz de documento explicitamente. Se uma requisição de URI especificar um arquivo específico então ou o index.php ou index.html no diretório em questão será retornado. Se nenhum deles existir, a procura por index.php e index.html continuará nos diretórios superiores até que algum deles seja encontrado ou o document root seja alcançado. Caso um index.php ou index.html seja encontrado então é retornado e $_SERVER['PATH_INFO'] é configurado para a parte final da URI. Caso contrário uma resposta 404 é retornada.

Se um arquivo PHP for fornecido na linha de comando quando o servidor web for iniciado ele será tratado como roteador. O script é executado no inicio de cada requisição HTTP. Se o script retornar false, então o recurso requisitado será retornado da maneira como estiver. Do contrário, a saída do script será retornada para o navegador.

Tipos MIME padrão serão retornados para arquivos com extensões: .3gp, .apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, .ogv, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd, .zip .

A partir do PHP 7.4.0, o servidor web interno pode ser configurado para se bifurcar em múltiplos processos para testar código que requer múltiplas requisições concorrentes ao servidor web interno. Configure a variável de ambiente PHP_CLI_SERVER_WORKERS para o número de processos desejados antes de iniciar o servidor.

Nota: Este recurso não é suportado no Windows.

Aviso

Este recurso experimental não não foi projetado para uso em ambiente de produção. Geralmente, o servidor web interno não tem o objetivo de ser usado em ambiente de produção.

Exemplo #1 Iniciando o servidor web

$ cd ~/public_html
$ php -S localhost:8000

O terminal irá exibir:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit

Após serem feitas requisições de URI para for http://localhost:8000/ e http://localhost:8000/myscript.html o terminal irá exibir algo similar a:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit.
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read

Note que antes do PHP 7.4.0, recursos estáticos representados por symlinks não eram acessíveis pelo Windows, sendo necessário um script de roteamento nesses casos.

Exemplo #2 Iniciando o servidor web com um diretório raiz específico

$ cd ~/public_html
$ php -S localhost:8000 -t foo/

O terminal irá exibir:

PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
Listening on localhost:8000
Document root is /home/me/public_html/foo
Press Ctrl-C to quit

Exemplo #3 Usando um script de roteamento

Nesse exemplo, requisições para imagens serão exibidas, mas requisições para arquivos HTML irão exibir "Welcome to PHP":

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
return false; // serve the requested resource as-is.
} else {
echo "<p>Welcome to PHP</p>";
}
?>
$ php -S localhost:8000 router.php

Exemplo #4 Verificando o Uso do CLI Web Server

Para reutilizar um script de roteamento específico de um framework durante o desenvolvimento com o servidor web CLI e depois também em um servidor de produção:

<?php
// router.php
if (php_sapi_name() == 'cli-server') {
/* route static assets and return false */
}
/* go on with normal index.php operations */
?>
$ php -S localhost:8000 router.php

Exemplo #5 Tratando de tipos de arquivos não suportados

Se você precisar servir um recurso estático cujo MIME type não é tratado pelo servidor web CLI, use:

<?php
// router.php
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
if ($path["extension"] == "el") {
header("Content-Type: text/x-script.elisp");
readfile($_SERVER["SCRIPT_FILENAME"]);
}
else {
return FALSE;
}
?>
$ php -S localhost:8000 router.php

Exemplo #6 Acessando o servidor web CLI de máquinas remotas

Você pode tornar o servidor web acessível na porta 8000 para qualquer interface com:

$ php -S 0.0.0.0:8000
Aviso

O servidor web embutido não deve ser exposto em redes públicas.


Configurações INI

Opções de configuração da CLI SAPI
Nome | Padrão | Modificável | Registro de Alterações
cli_server.color | "0" | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

cli_server.color bool

Habilita o uso de cores ANSI na saída do terminal pelo servidor web.


Coletor de Lixo

Índice

  • Básico sobre Contagem de Referência
  • Ciclos de Coleta
  • Considerações de Desempenho

Esta seção explica os méritos do novo mecanismo do Coletor de Lixo (também conhecido como GC - Garbage Collector) que é parte do PHP 5.3.


Básico sobre Contagem de Referência

Uma variável PHP é armazenada em um contêiner chamado "zval". Um zval contém, além do tipo e do valor da variável, dois bits adicionais de informação. O primeiro é chamado de "is_ref" e é um valor booleano que indica se a variável é parte de um "conjunto de referência" ou não. Com este bit, o motor do PHP sabe como diferenciar variáveis normais de referências. Como o PHP permite referências no nível do usuário, como as criadas pelo operador &, um contêiner zval também tem um mecanismo de contagem de referência interno para otimizar o uso de memória. Esta segunda parte de informação adicional, chamado "refcount", contém a quantidade de nomes de variáveis (também chamadas de símbolos) que apontam para este contêiner. Todos os símbolos são armazenados em uma tabela de símbolos, e existe uma por escopo. Existe um escopo para o script principal (ou seja, aquele requisitado através do navegador), assim como um escopo para cada função ou método.

Um contêiner zval é criado quando uma nova variável é criada com um valor constante, como em:

Exemplo #1 Criando um novo contêiner zval

<?php
$a = "new string";
?>

Neste caso, o nome do símbolo, a, é criado no escopo atual, e um novo contêiner de variável é criado com o tipo string e o valor new string. O bit "is_ref" é por padrão definido para false porque nenhuma referência no nível do usuário foi criada. O "refcount" é definido para 1 já que existe apenas um símbolo que faz uso deste contêiner de variável. Note que referências (isto é, "is_ref" igual a true) com "refcount" igual a 1, são tratadas como se elas não fossem referências (como se "is_ref" fosse false). Se o » Xdebug estiver instalado, esta informação pode ser mostrada chamando-se a função xdebug_debug_zval().

Exemplo #2 Mostrando a informação zval

<?php
$a = "new string";
xdebug_debug_zval('a');
?>

O exemplo acima produzirá:

a: (refcount=1, is_ref=0)='new string'

Atribuir esta variável a outro nome de variável irá aumentar o "refcount".

Exemplo #3 Aumentando o "refcount" de um zval

<?php
$a = "new string";
$b = $a;
xdebug_debug_zval( 'a' );
?>

O exemplo acima produzirá:

a: (refcount=2, is_ref=0)='new string'

O refcount é 2 aqui, porque o mesmo contêiner de variável está ligado tanto com a quanto com b. O PHP é inteligente o suficiente para não copiar o contêiner real da variável quando não for necessário. Contêineres são destruídos quando o "refcount" atinge zero. O "refcount" é diminuído em uma unidade quando qualquer símbolo ligado ao contêiner da variável deixa o escopo (ex.: quando a função termina) ou quanto um símbolo perde a atribuição (ex.: chamando unset()). O exemplo a seguir mostra isso:

Exemplo #4 Diminuindo o "refcount" de zval

<?php
$a = "new string";
$c = $b = $a;
xdebug_debug_zval( 'a' );
$b = 42;
xdebug_debug_zval( 'a' );
unset( $c );
xdebug_debug_zval( 'a' );
?>

O exemplo acima produzirá:

a: (refcount=3, is_ref=0)='new string'
a: (refcount=2, is_ref=0)='new string'
a: (refcount=1, is_ref=0)='new string'

Se agora unset($a); for chamada, o contêiner da variável, incluindo o tipo e o valor, serão removidos da memória.

Tipos Compostos

As coisas ficam um pouco mais complexas com tipos compostos como arrays e objetos. Ao contrário dos valores escalares, arrays e objetos armazenam suas propriedades em uma tabela de símbolos própria. Isto significa que o exemplo a seguir cria três contêineres zval:

Exemplo #5 Criando um zval de array

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
xdebug_debug_zval( 'a' );
?>

O exemplo acima produzirá algo semelhante a:

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=1, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42
)

Ou graficamenet

Zvals para um array simples

Os três contêineres zval são: a, meaning, e number. Regras similares se aplicam para aumento e redução de "refcounts". Abaixo, outro elemento é adicionado ao array, e define seu valor ao conteúdo de um elemento já existente:

Exemplo #6 Adicionando elemento já existente a um array

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
xdebug_debug_zval( 'a' );
?>

O exemplo acima produzirá algo semelhante a:

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=2, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42,
   'life' => (refcount=2, is_ref=0)='life'
)

Ou graficamente

Zvals para um array simples com uma referência

Pela saída do Xdebug acima, pode-se perceber que tanto o elemento antigo do array quanto o novo agora apontam para um contêiner zval cujo "refcount" é 2. Embora a saída do Xdebug mostre dois contêineres zval com valor 'life', eles são o mesmo. A função xdebug_debug_zval() não mostra isso, mas pode-se ver isso mostrando o ponteiro de memória.

Remover o elemento de um array é como remover um símbolo de um escopo. Fazendo isso, o "refcount" de um contêiner ao qual um elemento do array aponta é reduzido. Novamente, quando o "refcount" atinge zero, o contêiner da variável é removido da memória. Um exemplo para mostrar isto:

Exemplo #7 Removendo um elemento de um array

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
unset( $a['meaning'], $a['number'] );
xdebug_debug_zval( 'a' );
?>

O exemplo acima produzirá algo semelhante a:

a: (refcount=1, is_ref=0)=array (
   'life' => (refcount=1, is_ref=0)='life'
)

Agora, as coisas ficam interessantes se o próprio array for adicionado como um elemento do array, o que é mostrado no exemplo a seguir, onde também um operador de referência foi inserido, senão o PHP criaria uma cópia:

Exemplo #8 Adicionando o próprio array como um elemento de si mesmo

<?php
$a = array( 'one' );
$a[] =& $a;
xdebug_debug_zval( 'a' );
?>

O exemplo acima produzirá algo semelhante a:

a: (refcount=2, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=2, is_ref=1)=...
)

Ou graficamente

Zvals para um array com referência circular

Pode-se perceber que a variável do array (a) assim como o segundo elemento (1) agora apontam para um contêiner de veriável que tem um "refcount" de 2. Os "..." no exemplo acima mostram que há recursão envolvida, e que, obviamente, neste caso significa que os "..." apontam de volta ao array original.

Como antes, tirar a atribuição de uma variável remove o símbolo, e a contagem de referência do contêiner da variável à qual o símbolo aponta é reduzida em uma unidade. Então, se a variável $a perder a atribuição após execução do código acima, a contagem de referência do contêiner da variável à qual $a e o elemento "1" apontam será diminuída em uma unidade, de "2" para "1". Isto pode ser representado assim:

Exemplo #9 Removendo a atribuição de $a

(refcount=1, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=1, is_ref=1)=...
)

Ou graficamente

Zvals depois da remoção do array com um referência circular demonstrando o vazamento de memória

Problemas na Limpeza

Embora não haja mais um símbolo em nenhum escopo apontando para esta estrutura, ela não pode ser limpa porque o elemento "1" do array ainda aponta para este mesmo array. Como não há símbolo externo apontando para ela, não há como um usuário limpar esta estrutura; e aí acontece o vazamento de memória. Felizmente, o PHP irá limpar esta estrutura de dados no final da requisição, mas até lá, ela irá ocupar um espaço valioso na memória. Esta situação ocorre frequentemente quando se está implementando algoritmos de interpretação ou outros onde existe um elemento "filho" apontando de volta para um elemento "pai". A mesma situação também pode com certeza ocorrer com objetos, onde na verdade existe mais probabilidade de ocorrer, já que objetos são sempre implicitamente usados por referência.

Isso pode não ser um problema quanto acontecer somente uma ou duas vezes, mas se houver milhares, ou até milhões dessas perdas de memória, obviamente começa a ser um problema. É especialmente problemático em scripts de execução longa, como daemons onde a requisição basicamente nunca termina, ou em grande conjuntos de testes de unidades. Este último já causou problemas durante a execução de testes de unidades para o componente Template da bilioteca eZ Components. Em alguns casos, era necessário mais de 2GB de memória, que o servidor de testes não tinha.


Ciclos de Coleta

Tradicionalmente, mecanismos de memória de contagem de referência, como os usados anteriormente pelo PHP, falham ao lidar com vazamentos de memória de referência circular; entretanto, desde a versão 5.3.0, o PHP implementa o algoritmo síncrono do artigo » Concurrent Cycle Collection in Reference Counted Systems que lida com este problema.

Uma explicação completa de como o algoritmo funciona estaria um pouco além do escopo desta seção, mas o básico é explicado aqui. Primeiramente, deve-se estabelecer algumas regras gerais. Se um "refcount" é incrementado, ele ainda está em uso e, portanto, não é lixo. Se o refcount é reduzido e alcança zero, o zval pode ser liberado. Isso significa que os ciclos de coleta somente podem ser criados quando um argumento "refcount" é reduzido para um valor diferente de zero. Adicionalmente, em um ciclo de coleta, é possível descobrir quais partes são lixo, verificando se é possível reduzir seus "refcounts" em uma unidade, e então observando quais dos zvals têm um "refcount" diferente de zero.

Algoritmo de coleta de lixo

Para evitar chamadas de verificação de ciclos de coleta com qualquer redução possível de um refcount, o algoritmo em vez disso coloca todas as raízes (zvals) possíveis no "buffer de raízes" (tornando-os "roxos"). Ele também certifica que cada raiz possível chegue ao buffer apenas uma vez. Apenas quando o buffer de raízes está cheio é que o mecanismo de coleta se inicia para todos os diferentes zvals contidos. Veja o passo A na figura acima.

No passo B, o algoritmo executa uma pesquisa em profundidade em todas as raízes possíveis para reduzir em um os refcounts de cada zval que ele encontra, certificando-se de não reduzir um refcount no mesmo zval duas vezes (marcando-os de "cinza"). No passo C, o algoritmo novamente executa uma pesquisa em profundidade a partir de cada nó de raiz, para verificar o refcount de cada zval de novo. Se ele encontra o valor zero, o zval é marcado de "branco" (azul na figura). Se ele for maior que zero, ele reverte a redução do refcount em uma unidade com uma pesquisa em profundidade daquele ponto em diante, e eles são marcados de "preto" novamente. No último passo (D), o algoritmo percorre o buffer de raízes removendo as raízes de zval de lá e, ao mesmo tempo, verifica quais zvals foram marcados de "branco" no passo anterior. Cada zval marcado de "branco" será liberado da memória.

Agora que há um entendimento básico de como o algoritmo funciona, vejamos como isto se integra com o PHP. Por padrão, o coletor de lixo do PHP fica habilitado. Existe, porém uma configuração do php.ini que permite mudar isso: zend.enable_gc.

Quando o coletor de lixo é habilitado, o algoritmo de pesquisa de ciclos como descrito acima é executado toda vez que o buffer ficar cheio. O buffer de raízes tem um tamanho fixo de 10.000 raízes possíveis (embora isso possa ser alterado mudando-se a constante GC_THRESHOLD_DEFAULT em Zend/zend_gc.c no código-fonte do PHP, e recompilando-o). Quando o coletor de lixo é desabilitado, o algoritmo de pesquisa de ciclos nunca será executado. Entretando, possíveis raízes serão sempre registradas no buffer de raízes, não importando se o mecanismo de coleta de lixo tenha sido ou não habilitado com esta configuração.

Se o buffer de raízes ficar cheio de raízes possíveis enquanto o mecanismo de coleta de lixo está desabilitado, as possíveis raízes adicionais simplesmente não serão registradas. Essas raízes não registradas nunca serão analisadas pelo algoritmo. Se eles fossem parte de um ciclo de referência circular, eles nunca seriam limpados e iriam criar um vazamento de memória.

O motivo pelo qual as raízes possíveis são registradas mesmo se o mecanismo for desabilitado é poque é mais rápido registrar raízes possíveis do que ter que verificar se o mecanismo está ligado toda vez que uma raiz possível puder ser encontrada. O próprio mecanismo de coleta e análise de lixo, no entanto, pode levar um tempo considerável.

Além de mudar a configuração zend.enable_gc, também é possível habilitar e desabilitar o mecanismo de coleta de lixo chamando-se gc_enable() ou gc_disable() respectivamente. Chamar estas funções tem o mesmo efeito de ligar ou desligar o mecanismo com a configuração. Também é possível forçar a coleta de ciclos mesmo se o buffer de raízes possíveis não estiver cheio. Para isto, pode-se usar a função gc_collect_cycles(). Esta função retornará quantos ciclos foram coletados pelo algoritmo.

A razão por trás da possibilidade do prório usuário ligar e desligar o mecanismo, e iniciar a coleta de ciclos, é que algumas partes de aplicações podem ser altamente sensíveis a tempo de execução. Nesses casos, pode não ser desejado que o mecanismo de coleta inicie. Obviamente, desligando-se o coletor de lixo para certas partes de uma aplicação cria o risco de gerar vazamentos de memória porque algumas raízes possíveis podem não caber no buffer limitado. Portanto, provavelmente é mais sábio chamar a função gc_collect_cycles() logo antes de chamar a função gc_disable() para liberar a memória que poderia ser perdida através de raízes possíveis que estariam já registradas no buffer. Isso então leva a um buffer vazio para que haja mais espaço para armazenar raízes possíveis enquanto o mecanismo de ciclos de coleta está desligado.


Considerações de Desempenho

Já foi mencionado na seção anterior que simplesmente coletar as raízes possíveis tme um impacto muito pequeno em desempenho, mas isso quando compara-se o PHP 5.2 com o PHP 5.3. Embora o registro de raízes possíveis comparado ao não registro, como no PHP 5.2, seja mais lento, outras mudanção em tempo de execução no PHP 5.3 evitam que esta perda particular de desempenho apareça.

Existem duas grandes áreas onde o desempenho é afetado. A primeira é o uso reduzido de memória, e a segunda é o atraso em tempo de execução quando o mecanismo de coleta de lixo faz suas limpezas de memória. Estes dois problemas serão mostrados a seguir.

Uso Reduzido de Memória

Primeiramente, o grande motivo pelo qual o mecanismo de coleta de lixo existe é para reduzir o uso de memória através de limpeza de variáveis em referência circular assim que os pré-requisitos são preenchidos. Na implementação do PHP, isso acontece assim que o buffer de raízes fica cheio, ou quando a função gc_collect_cycles() é chamada. No gráfico abaixo, é mostrado o uso de memória do script a seguir, tanto no PHP 5.2 quanto no PHP 5.3, excluindo a memória básica que o próprio PHP usa quando se inicia.

Exemplo #1 Exemplo de uso de memória

<?php
class Foo
{
public $var = '3.14159265359';
public $self;
}

$baseMemory = memory_get_usage();

for ( $i = 0; $i <= 100000; $i++ )
{
$a = new Foo;
$a->self = $a;
if ( $i % 500 === 0 )
{
echo sprintf( '%8d: ', $i ), memory_get_usage() - $baseMemory, "\n";
}
}
?>
Comparação de uso de memória entre o PHP 5.2 e o PHP 5.3

Neste exemplo bem acadêmico, está sendo criado um objeto no qual uma propriedade é definida para apontar para o próprio objeto. Quando a variável $a no script é re-atribuída na iteração seguinte do loop, um vazamento de memória normalmente iria acontecer. Neste caso, dois contêineres são vazados (o zval objeto e o zval propriedade), mas apenas uma raiz possível é encontrada: a variável que perdeu a atribuição. Quando o buffer de raízes está cheio depois de 10.000 iterações (com um total de 10.000 raízes possíveis), o mecanismo de coleta de lixo entra e libera a memória associada com essas raízes possíveis. Isto pode ser visto claramente com o gráfico irregular de uso de memória para o PHP 5.3. Depois de 10.000 iterações, o mecanismo entre e libera a memória associada com as variáveis com referência circular.. O mecanismo em si não tem muito trabalho neste exemplo, porque a estrutura que é vazada é extremamente simples. Pelo diagrama, pode-se verificar que o uso de memória no PHP 5.3 é de aproximadamente 9Mb, enquanto que no PHP 5.2 o uso de memória continua crescendo.

Atraso em Tempo de Execução

A segunda área onde o mecanismo de coleta de lixo influencia o desempenho é o tempo gasto quando o mecanismo entre para liberar a memória "vazada". Para verificar quanto é este tempo, o script anterior foi minimamente modificado para permitir um número maior de iterações e a remoção dos números de uso de memória intermediária. O segundo script está apresentado a seguir:

Exemplo #2 Influência do Coletor de Lixo no desempenho

<?php
class Foo
{
public $var = '3.14159265359';
public $self;
}

for ( $i = 0; $i <= 1000000; $i++ )
{
$a = new Foo;
$a->self = $a;
}

echo memory_get_peak_usage(), "\n";
?>

O script será executado duas vezes, uma com a configuração zend.enable_gc habilitada, e outra desabilitada:

Exemplo #3 Executando o script acima

time php -dzend.enable_gc=0 -dmemory_limit=-1 -n example2.php
# and
time php -dzend.enable_gc=1 -dmemory_limit=-1 -n example2.php

Em uma máquina específica, o primeiro comando parece levar 10.7 segundos, enquanto que o segundo leva 11.4 seconds. Isto é um atraso de aproximadamente 7%. Entretanto, a quantidade máxima de memória usada pelo script é reduzida em 98%, de 931Mb para 10Mb. Esta referência não é muito científica, ou mesmo representativa para aplicações do mundo real, mas demonstra os benefícios de uso de memória que este mecanismo de coleta de lixo fornece. A boa notícia é que este atraso é sempre de 7% para este script particular, enquando que as capacidades de redução de memória economizam mais e mais memória quando referências circulares adicionais são encontradas durante a execução do script.

Estatísticas de GC Internas do PHP

É possível obter um pouco mais de informação sobre como o o mecanismo de coleta de lixo é executado no PHP. Mas para fazer isto, deve-se recompilar o PHP para habilitar o benchmark e o código de coleta de dados. Deve-se definir a variável de ambiente CFLAGS para -DGC_BENCH=1 antes de executar ./configure com as opções desejadas. A sequência a seguir deve fazer este truque:

Exemplo #4 Recompilando o PHP para habilitar o benchmarking de GC

export CFLAGS=-DGC_BENCH=1
./config.nice
make clean
make

Quando o exemplo acima for executado novamente com o novo binário do PHP, o resultado abaixo será visualizado assim que o PHP terminar a execução:

Exemplo #5 Estatísticas GC

GC Statistics
-------------
Runs:               110
Collected:          2072204
Root buffer length: 0
Root buffer peak:   10000

      Possible            Remove from  Marked
        Root    Buffered     buffer     grey
      --------  --------  -----------  ------
ZVAL   7175487   1491291    1241690   3611871
ZOBJ  28506264   1527980     677581   1025731

As estatísticas mais informativas são mostradas no primeiro bloco. Pode-se ver que aqui que o mecanismo de coleta de lixo foi executado 110 vezes, e no total, mais de 2 milhões de alocações de memória foram liberadas durante estas 110 execuções. Assim que o mecanismo tenha sido executado pelo menos uma vez, o "Root buffer peak" (pico do buffer de raízes) será sempre 10.000.

Conclusãon

Em geral o coletor de lixo no PHP irá causar um atraso apenas quando o algoritmo de coleta realmente for executado, enquanto que em scripts normais (menores), não deve haver nenhum prejuízo no desempenho.

Entretanto, em casos onde o mecanismo de coleta é executado em scripts normais, a redução de memória que ele vai proporcionar irá permitir que mais desses scripts possam ser executados ao mesmo tempo no servidor, já que a quantidade de memória usada no total não será muito grande.

Os benefícios são mais aparentes para scripts de longa execução, como os scripts de conjunto de testes ou daemons. Adicionalmente, para aplicações » PHP-GTK que geralmente tendem a rodar por mais tempo que scripts para a Web, o novo mecanismo deve fazer uma diferença considerável em relação a vazamentos de memória que insistem em acontecer.


Instrumentação dimâmica DTrace

Índice

  • Introdução ao PHP e DTrace
  • Usando PHP e DTrace
  • Usando SystemTap com Sensores Estáticos DTrace


Introdução ao PHP e DTrace

DTrace é um framework de instrumentação com alta disponibilidade e pequena sobrecarga, disponível em um número de plataformas incluindo Solaris, macOS, Oracle Linux e BSD. DTrace pode instrumentar comportamento do sistema operacional e execução de programa de usuário. Ele pode exibir valores de argumentos e ser usado para inferir estatísticas de desempenho. Os sensores são monitorados pos scripts criados pelo usuário escritos na linguagem própria do DTrace (D). Isto permite uma análise eficiente de pontos de dados.

Sensores PHP que não estão monitorados ativamente por um script D do usuário não contêm código instrumentado, então não há degradação de desempenho durante a execução normal da aplicação. Sensores que estão sendo monitorados incorrem em uma sobrecarga pequena o suficiente para permitir monitoramento pelo DTrace em sistemas ativos em fase de produção.

PHP incorpora sensores com "Instrumentação Estaticamente Definida no Nível de Usuário" (USDT em inglês) que são ativados em tempo de execução. Por exemplo, quando um script D está monitorando o sensor de function-entry do PHP, então a cada momento que uma função do PHP é chamada, este sensor é disparado e o código de ação do script D associado é executado. Este código de ação poderia, por exemplo, imprimir argumentos de sensor como a localização do arquivo-fonte da função PHP. Ou a ação poderia agregar dados como o númedo de vezes que cada função é chamada.

Apenas os sensores USDT do PHP são descritas aqui. Refira-se à literatura externa do Dtrace, tanto geral quanto específica do sistema operacional, para entender como o DTrace pode ser usado para instrumentar funções arbitrárias, e como ele pode ser usado para instrumentar comportamento do sistema operacional. Note que nem todas as características do DTrace estão disponíveis em todas as implementações.

Os sensores estáticos do Dtrace no PHP podem alternativamente ser utilizados com a ferramenta SystemTap de algumas distribuições Linux.


Usando PHP e DTrace

O PHP pode ser configuracom com sensores estáticos do DTrace em plataformas que suportam a Instrumentação Dinâmica do DTrace.

Configurando o PHP para Sensores Estáticos DTrace

Refira-se à documentação externa específica da plataforma para habilitar o suporte do DTrace no sistema operacional. Por exemplo, no Oracle Linux inicialize um kernel UEK3 e rode os seguintes comandos:

# modprobe fasttrap
# chmod 666 /dev/dtrace/helper

Ao invés de usar chmod, pode-se alternativamente usar uma regra de pacote ACL para limitar o acesso a um dispositivo para um usuário específico.

Construa o PHP com o parâmetro de configuração --enable-dtrace:

# ./configure --enable-dtrace ...
# make
# make install

Isto habilita sensores estáticos no núcleo do PHP. Quaisquer extensões PHP que fornecem seus próprios sensores devem ser construídas separadamente como extensões compartilhadas.

Sensores Estáticos DTrace no Núcleo do PHP

Os sensores estáticos a seguir estão disponíveis no PHP
Nome do Sensor | Descrição do Sensor | Argumentos do Sensor
request-startup | Dispara quando uma requisição inicia. | char *file, char *request_uri, char *request_method
request-shutdown | Dispara quando uma requisição termina. | char *file, char *request_uri, char *request_method
compile-file-entry | Dispara quando a compilação de um script inicia. | char *compile_file, char *compile_file_translated
compile-file-return | Dispara quando a compilação de um script termina. | char *compile_file, char *compile_file_translated
execute-entry | Dispara quando um array de opcode está para ser executado. Por exemplo, ele dispara em chamadas de função, de includes e em continuação de geradores. | char *request_file, int lineno
execute-return | Dispara depois da execução de um array de opcode. | char *request_file, int lineno
function-entry | Dispara quando o motor do PHP entra em uma chamada de função ou método. | char *function_name, char *request_file, int lineno, char *classname, char *scope
function-return | Dispara quando o motor do PHP retorna de uma chamada de função ou método. | char *function_name, char *request_file, int lineno, char *classname, char *scope
exception-thrown | Dispara quando uma exceção é disparada. | char *classname
exception-caught | Dispara quando uma exceção é capturada. | char *classname
error | Dispara quando um erro ocorre, independente do nível de error_reporting. | char *errormsg, char *request_file, int lineno

Extensões de PHP podem também conter sensores estáticos adicionais.

Listando os Sensores Estáticos DTrace no PHP

Para listar os sensores disponíveis, inicie um processo PHP e então execute:

# dtrace -l

A saída será similar a:

   ID   PROVIDER            MODULE                          FUNCTION NAME
   [ . . . ]
    4   php15271               php               dtrace_compile_file compile-file-entry
    5   php15271               php               dtrace_compile_file compile-file-return
    6   php15271               php                        zend_error error
    7   php15271               php  ZEND_CATCH_SPEC_CONST_CV_HANDLER exception-caught
    8   php15271               php     zend_throw_exception_internal exception-thrown
    9   php15271               php                 dtrace_execute_ex execute-entry
   10   php15271               php           dtrace_execute_internal execute-entry
   11   php15271               php                 dtrace_execute_ex execute-return
   12   php15271               php           dtrace_execute_internal execute-return
   13   php15271               php                 dtrace_execute_ex function-entry
   14   php15271               php                 dtrace_execute_ex function-return
   15   php15271               php              php_request_shutdown request-shutdown
   16   php15271               php               php_request_startup request-startup

Os valores da coluna Provider consistem de php mais o id do processo PHP sendo executado.

Se o servidor web Apache estiver rodando, o módulo poderia ser, por exemplo, libphp5.so, e haveria múltiplos blocos de listagens, um para cada processo Apache em execução.

A coluna Function refere-se aos nomes das funções da implementação interna do PHP, em C, onde cada fornecedor está localizado.

Se um processo PHP não estiver em execução, então nenhum sensor PHP será mostrado.

Exemplo de DTrace com PHP

Este exemplo mostra o básico da linguagem D de scripts DTrace.

Exemplo #1 Arquivo all_probes.d para instrumentar todos os Sensores Estáticos PHP com DTrace

#!/usr/sbin/dtrace -Zs

#pragma D option quiet

php*:::compile-file-entry
{
    printf("PHP compile-file-entry\n");
    printf("  compile_file              %s\n", copyinstr(arg0));
    printf("  compile_file_translated   %s\n", copyinstr(arg1));
}

php*:::compile-file-return
{
    printf("PHP compile-file-return\n");
    printf("  compile_file              %s\n", copyinstr(arg0));
    printf("  compile_file_translated   %s\n", copyinstr(arg1));
}

php*:::error
{
    printf("PHP error\n");
    printf("  errormsg                  %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
}

php*:::exception-caught
{
    printf("PHP exception-caught\n");
    printf("  classname                 %s\n", copyinstr(arg0));
}

php*:::exception-thrown
{
    printf("PHP exception-thrown\n");
    printf("  classname                 %s\n", copyinstr(arg0));
}

php*:::execute-entry
{
    printf("PHP execute-entry\n");
    printf("  request_file              %s\n", copyinstr(arg0));
    printf("  lineno                    %d\n", (int)arg1);
}

php*:::execute-return
{
    printf("PHP execute-return\n");
    printf("  request_file              %s\n", copyinstr(arg0));
    printf("  lineno                    %d\n", (int)arg1);
}

php*:::function-entry
{
    printf("PHP function-entry\n");
    printf("  function_name             %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
    printf("  classname                 %s\n", copyinstr(arg3));
    printf("  scope                     %s\n", copyinstr(arg4));
}

php*:::function-return
{
    printf("PHP function-return\n");
    printf("  function_name             %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
    printf("  classname                 %s\n", copyinstr(arg3));
    printf("  scope                     %s\n", copyinstr(arg4));
}

php*:::request-shutdown
{
    printf("PHP request-shutdown\n");
    printf("  file                      %s\n", copyinstr(arg0));
    printf("  request_uri               %s\n", copyinstr(arg1));
    printf("  request_method            %s\n", copyinstr(arg2));
}

php*:::request-startup
{
    printf("PHP request-startup\n");
    printf("  file                      %s\n", copyinstr(arg0));
    printf("  request_uri               %s\n", copyinstr(arg1));
    printf("  request_method            %s\n", copyinstr(arg2));
}

Este script usa a opção -Z para a aplicação dtrace, permitindo que ela seja executada quando não há processo PHP em execução. Se esta opção fosse omitida, o script iria terminar imediatamente porque ele saberia que nenhum dos sensores a serem monitorados existiriam.

O script instrumenta todos os pontos de sensores estáticos do núcleo do PHP durante toda a duração de um script PHP em execução. Execute o script D:

# ./all_probes.d

Executa um script PHP ou aplicação. O script D de monitoramento terá como saída os argumentos de cada um dos sensores quando for disparado.

Quando o monitoramento estiver completo, o script D pode ser terminado com CTRL+C.

Em máquinas com múltiplas CPUs, pode parecer que os sensor estão em ordem não sequencial. Isto depende de qual CPU está processando os sensores, e como as threads migram atráves dos CPUs. Mostrar os timestamps dos sensores irá ajudar a reduzir a confusão, por exemplo:

php*:::function-entry
{
      printf("%lld: PHP function-entry ", walltimestamp);
      [ . . .]
}

Veja Também

  • Instrumentação Dinâmica OCI8 e DTrace


Usando SystemTap com Sensores Estáticos DTrace

Em algumas distribuições Linux, o utilitário SystemTap de instrumentação pode ser usado para instrumentar sensores estáticos do PHP. Isso está disponível no PHP 5.4.20 e PHP 5.5.

Instalando PHP com SystemTap

Instale o pacote de desenvolvimento do SystemTap, SDT:

# yum install systemtap-sdt-devel

Instale o PHP com os sensores DTrace habilitados:

# ./configure --enable-dtrace ...
# make

Listando os Sensores Estáticos com SystemTap

Os sensores estáticos em PHP podem ser listados usando stap:

# stap -l 'process.provider("php").mark("*")' -c 'sapi/cli/php -i'

A saída será:

process("sapi/cli/php").provider("php").mark("compile__file__entry")
process("sapi/cli/php").provider("php").mark("compile__file__return")
process("sapi/cli/php").provider("php").mark("error")
process("sapi/cli/php").provider("php").mark("exception__caught")
process("sapi/cli/php").provider("php").mark("exception__thrown")
process("sapi/cli/php").provider("php").mark("execute__entry")
process("sapi/cli/php").provider("php").mark("execute__return")
process("sapi/cli/php").provider("php").mark("function__entry")
process("sapi/cli/php").provider("php").mark("function__return")
process("sapi/cli/php").provider("php").mark("request__shutdown")
process("sapi/cli/php").provider("php").mark("request__startup")

Exemplo de SystemTap com PHP

Exemplo #1 all_probes.stp para instrumentação de todos os Sensores Estáticos do PHP com SystemTap

probe process("sapi/cli/php").provider("php").mark("compile__file__entry") {
    printf("Probe compile__file__entry\n");
    printf("  compile_file %s\n", user_string($arg1));
    printf("  compile_file_translated %s\n", user_string($arg2));
}
probe process("sapi/cli/php").provider("php").mark("compile__file__return") {
    printf("Probe compile__file__return\n");
    printf("  compile_file %s\n", user_string($arg1));
    printf("  compile_file_translated %s\n", user_string($arg2));
}
probe process("sapi/cli/php").provider("php").mark("error") {
    printf("Probe error\n");
    printf("  errormsg %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
}
probe process("sapi/cli/php").provider("php").mark("exception__caught") {
    printf("Probe exception__caught\n");
    printf("  classname %s\n", user_string($arg1));
}
probe process("sapi/cli/php").provider("php").mark("exception__thrown") {
    printf("Probe exception__thrown\n");
    printf("  classname %s\n", user_string($arg1));
}
probe process("sapi/cli/php").provider("php").mark("execute__entry") {
    printf("Probe execute__entry\n");
    printf("  request_file %s\n", user_string($arg1));
    printf("  lineno %d\n", $arg2);
}
probe process("sapi/cli/php").provider("php").mark("execute__return") {
    printf("Probe execute__return\n");
    printf("  request_file %s\n", user_string($arg1));
    printf("  lineno %d\n", $arg2);
}
probe process("sapi/cli/php").provider("php").mark("function__entry") {
    printf("Probe function__entry\n");
    printf("  function_name %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
    printf("  classname %s\n", user_string($arg4));
    printf("  scope %s\n", user_string($arg5));
}
probe process("sapi/cli/php").provider("php").mark("function__return") {
    printf("Probe function__return: %s\n", user_string($arg1));
    printf(" function_name %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
    printf("  classname %s\n", user_string($arg4));
    printf("  scope %s\n", user_string($arg5));
}
probe process("sapi/cli/php").provider("php").mark("request__shutdown") {
    printf("Probe request__shutdown\n");
    printf("  file %s\n", user_string($arg1));
    printf("  request_uri %s\n", user_string($arg2));
    printf("  request_method %s\n", user_string($arg3));
}
probe process("sapi/cli/php").provider("php").mark("request__startup") {
    printf("Probe request__startup\n");
    printf("  file %s\n", user_string($arg1));
    printf("  request_uri %s\n", user_string($arg2));
    printf("  request_method %s\n", user_string($arg3));
}

O script acima irá instrumentar todos os pontos de sensores estáticos do núcleo do PHP durante toda a duração de um script PHP em execução:

# stap -c 'sapi/cli/php test.php' all_probes.stp


Referência das Funções

Dica

Veja também Categorização/Lista das Extensões.

  • Afetando o comportamento do PHP
    • APCu — Cache de Usuário APC
    • Componere
    • Gerenciamento de Erros — Gerenciamento e Registro de Erros
    • FFI — Interface de função externa
    • OPcache
    • Controle de Saída — Controle de Buffer de Saída
    • Opções/Info do PHP — Informações e Opções do PHP
    • phpdbg — Depurador PHP Interativo
    • runkit7
    • uopz — User Operations for Zend
    • WinCache — Windows Cache for PHP
    • Xhprof — Hierarchical Profiler
    • Yac
  • Manipulação de Formatos de Áudio
    • OpenAL — OpenAL Audio Bindings
  • Serviços de Autenticação
    • Radius
  • Extensões Específicas para Linha de Comando
    • Readline — GNU Readline
  • Extensões de Arquivo e Compressão
    • Bzip2
    • LZF
    • Phar
    • Rar — Rar Archiving
    • Zip
    • Zlib — Compressão Zlib
  • Extensões para Criptografia
    • Hash — Framework de Digestão de Mensagens HASH
    • Mcrypt
    • Mhash
    • OpenSSL
    • Password Hashing
    • Rnp
    • Sodium
  • Extensões de Banco de Dados
    • Camadas de Abstração
    • Extensões de Banco de Dados Específicas de Terceiros
  • Extensões Relacionadas a Data e Horário
    • Calendar
    • Data/Hora — Data e Hora
    • HRTime — High resolution timing
  • Extensões Relacionadas a Sistema de Arquivo
    • IO Direto
    • Diretórios
    • Fileinfo — Informações do arquivo
    • Extensão Filesystem (Sistema de Arquivos)
    • Inotify
    • xattr
    • xdiff
  • Linguagem Humana e Suporte a Codificação de Caracteres
    • Enchant — Enchant spelling library
    • Gender — Determine gender of firstnames
    • Gettext
    • iconv
    • intl — Funções de Internacionalização
    • String Multibyte
    • Pspell
    • Recode — GNU Recode
  • Processamento e Geração de Imagem
    • Exif — Informações de imagem
    • GD — Processamento de Imagem e GD
    • Gmagick
    • ImageMagick — Image Processing (ImageMagick)
  • Extensões Relacionadas a Correio Eletrônico
    • IMAP — IMAP, POP3 and NNTP
    • Mail
    • Mailparse
  • Extensões Matemáticas
    • BC Math — BCMath, funções matemáticas de precisão arbitrária
    • GMP — Precisão Múltipla GNU
    • Math — Funções Matemáticas
    • Statistics
    • Trader — Technical Analysis for Traders
  • Saída de MIME Não-Texto
    • FDF — Forms Data Format
    • GnuPG — GNU Privacy Guard
    • wkhtmltox
    • PS — PostScript document creation
    • RpmInfo
    • XLSWriter
  • Extensões para Controle de Processo
    • Eio
    • Ev
    • Expect
    • PCNTL — Process Control
    • POSIX
    • Execução de programa — Execução de programa do sistema
    • parallel
    • pthreads
    • Semaphore — Semaphore, Shared Memory and IPC
    • Memória Compartilhada
    • Sync
  • Outras Extensões Básicas
    • GeoIP — Geo IP Location
    • FANN — FANN (Fast Artificial Neural Network)
    • Igbinary
    • JSON — Notação de Objetos do JavaScript
    • Simdjson
    • Lua
    • LuaSandbox
    • Misc. — Funções Miscelâneas
    • Random — Random Number Generators and Functions Related to Randomness
    • Seaslog
    • SPL — Standard PHP Library (SPL)
    • Fluxos
    • Swoole
    • Tidy
    • Tokenizer
    • URLs
    • V8js — V8 Javascript Engine Integration
    • Yaml — YAML Data Serialization
    • Yaf — Yet Another Framework
    • Yaconf
    • Taint
    • Estruturas de Dados
    • var_representation
  • Outros Serviços
    • cURL — Biblioteca Client URL
    • Event
    • FTP
    • Gearman
    • LDAP — Protocolo Leve de Acesso ao Diretório
    • Memcache
    • Memcached
    • mqseries
    • Network
    • RRD — RRDtool
    • ScoutAPM
    • SNMP
    • Sockets
    • SSH2 — Secure Shell2
    • Stomp — Stomp Client
    • SVM — Support Vector Machine
    • SVN — Subversion
    • TCP — TCP Wrappers
    • Varnish
    • YAZ
    • API de Mensagens 0MQ — ZMQ
    • ZooKeeper
  • Extensões de Motor de Busca
    • Solr — Apache Solr
  • Extensões Específicas para Servidor
    • Apache
    • FastCGI Process Manager
  • Extensões de Sessão
    • Sessões — Manipulação de Sessão
  • Processamento de Texto
    • CommonMark
    • Parle — Parsing and lexing
    • PCRE — Expressões Regulares (Compatíveis com Perl)
    • ssdeep — ssdeep Fuzzy Hashing
    • Strings
  • Extensões Relacionadas a Variáveis e Tipos
    • Arrays
    • Classes/Objetos — Informação de Classe/Objeto
    • Ctype — Verificação de tipo de caractere
    • Filter — Filtragem de dados
    • Gerenciamento de funções
    • Quickhash
    • Reflexão
    • Manipulação de variável
  • Serviços para Web
    • OAuth
    • SOAP
    • Yar — Yet Another RPC Framework
    • XML-RPC
  • Extensões Somente para Windows
    • COM — COM and .Net (Windows)
    • win32service
  • Manipulação de XML
    • DOM — Document Object Model
    • libxml
    • SimpleXML
    • WDDX
    • XMLDiff — XML diff and merge
    • Analisador de XML
    • XMLReader
    • XMLWriter
    • XSL
  • Extensões GUI
    • UI


Afetando o comportamento do PHP

  • APCu — Cache de Usuário APC
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • APCu Funções
    • APCUIterator — A classe APCUIterator
  • Componere
    • Introdução
    • Instalação/Configuração
    • Componere\Abstract\Definition — The Componere\Abstract\Definition class
    • Componere\Definition — The Componere\Definition class
    • Componere\Patch — The Componere\Patch class
    • Componere\Method — The Componere\Method class
    • Componere\Value — The Componere\Value class
    • Componere Funções
  • Gerenciamento de Erros — Gerenciamento e Registro de Erros
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções para Manuseamento de Erros
  • FFI — Interface de função externa
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • FFI — Main interface to C code and data
    • FFI\CData — C Data Handles
    • FFI\CType — C Type Handles
    • FFI\Exception — FFI Exceptions
    • FFI\ParserException — FFI Parser Exceptions
  • OPcache
    • Introdução
    • Instalação/Configuração
    • Preloading
    • OPcache Funções
  • Controle de Saída — Controle de Buffer de Saída
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Buffer de Saída
    • Descarregando Buffers de Sistema
    • Buffers de Saída em Nível de Usuário
    • Exemplos
    • Funções para Control de Saída
  • Opções/Info do PHP — Informações e Opções do PHP
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções para Opções/Info do PHP
  • phpdbg — Depurador PHP Interativo
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • phpdbg Funções
  • runkit7
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • runkit7 Funções
  • uopz — User Operations for Zend
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Uopz Funções
  • WinCache — Windows Cache for PHP
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • WinCache Funções
    • Building for Windows
  • Xhprof — Hierarchical Profiler
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Xhprof Funções
  • Yac
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Yac — The Yac class


Cache de Usuário APC

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • APCu Funções
    • apcu_add — Faz cache de uma nova variável no armazenamento de dados
    • apcu_cache_info — Recupera informação em cache a partir do armazenamento de dados do APCu
    • apcu_cas — Atualiza um valor antigo com um novo
    • apcu_clear_cache — Limpa o cache APCu
    • apcu_dec — Decrementa um número armazenado
    • apcu_delete — Remove uma variável armazenada do cache
    • apcu_enabled — Informa se o APCu está disponível no ambiente atual
    • apcu_entry — Busca ou gera atomicamente uma entrada de cache
    • apcu_exists — Verifica se uma entrada existe
    • apcu_fetch — Busca uma variável armazenada no cache
    • apcu_inc — Incrementa um número armazenado
    • apcu_key_info — Obtém informação detalhada sobre uma chave em cache
    • apcu_sma_info — Obtém informação de Alocação de Memória Compartilhada (SMA) do APCu
    • apcu_store — Armazena uma variável em cache
  • APCUIterator — A classe APCUIterator
    • APCUIterator::__construct — Constrói um objeto iterador APCUIterator
    • APCUIterator::current — Obtém o item atual
    • APCUIterator::getTotalCount — Obtém a contagem total
    • APCUIterator::getTotalHits — Obtém o total de entradas de cache
    • APCUIterator::getTotalSize — Obtém o tamanho total do cache
    • APCUIterator::key — Obtém a chave do iterador
    • APCUIterator::next — Move o ponteiro para o próximo item
    • APCUIterator::rewind — Rebobina o iterador
    • APCUIterator::valid — Verifica se a posição atual é válida


Introdução

APCu é um armazenamento em memória de chave-valor para o PHP. Chaves são do tipo string e valores podem ser quaisquer variáveis PHP. APCu suporta somente cache de variáveis no nível do usuário.

O cache APCu é feito por processo no Windows, portando ao usar um SAPI baseado em processo (e não baseado em thread), ele não será compartilhado entre os diferentes processos.

APCu é o APC com o cache opcode removido.

O primeiro código APCu tinha a versão 4.0.0 e foi derivado do ramo master do APC naquele momento. O suporte ao PHP está disponível a partir do APCu 5.0.0. O suporte ao PHP 8 está disponível a partir do APCu 5.1.19.


Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Configurações em Execução
  • Tipos de Recurso


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

Nenhuma biblioteca externa é necessária para compilar esta extensão.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/apcu.

Dica

O PHP 7 tem um módulo separado (» apcu-bc) para compatibilidade com versões anteriores do APC.

Em modo de compatibilidade, o APCu registra as funções APC aplicáveis com protótipos compatíveis com versões anteriores.

Onde uma função APC aceitar o parâmetro cache_type, ele é simplemente ignorado pela versão de compatibilidade, e omitida pelo protótipo para a versão APCu.

Aviso

A partir do PHP 8.0.0, apcu-bc não é mais suportado.

Nota: No Windows, o APCu precisa de um diretório temporário existente e com permissão de escrita pelo servidor web. Ele verifica as variáveis de ambiente TMP, TEMP e USERPROFILE, nesta ordem, e finalmente tenta o diretório do WINDOWS se nenhum dos outros estiver definido.

Nota: Para detalhes de implementação altamente técnicos e mais aprofundados, consulte o » arquivo de NOTAS TÉCNICAS fornecido pelo desenvolvedor .

O código-fonte do APCu pode ser encontrado » aqui.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Embora as configurações padrão do APCu são adequadas para muitas instalações, usuários devem considerar ajustes para os parâmetros abaixo.

Existe uma decisão a ser tomada ao configurar o APCu: quanta memória será alocada ao APCu. A diretiva ini que controla isso é apc.shm_size, leia cuidadosamente as seções sobre este assunto abaixo.

Uma vez que o servidor está em execução, o script apc.php que é incluído com a extensão deve ser copiado para algum lugar dentro do diretório raiz dos documentos e visualizado com um navegador pois ele fornece uma análise detalhada do funcionamento interno do APCu. Se a GD estiver habilitada no PHP, ele irá mostrar inclusive alguns gráficos interessantes.

Se o APCu estiver funcionando, o número Cache full count (na esquerda) mostrará o número de vezes que o cache atingiu a capacidade máxima e teve que despejar entradas para liberar memória. Durante o despejo, se apc.ttl foi especificado, o APCu inicialmente tentará remover entradas expiradas, isto é, entradas cujo TTL tenha expirado ou entradas que não tenham o TTL definido e não tenham sido acessadas nos últimos apc.ttl segundos. Se apc.ttl não foi definido, ou se a remoção de entradas expiradas não liberou espaço suficiente, o APCu limpará o cache inteiro.

O número de despejos deve ser mínimo em um cache bem configurado. Se o cache está constantemente atingindo o limite, e por isso sendo liberado à força, a agitação resultante terá efeitos depreciativos no desempenho do script. A maneira mais fácil de minimizar este número é alocar mais memória para o APCu.

Quando o APCu é compilado com suporte a mmap (Mapeamento de Memória), ele usará somente um segmento de memória, ao contrário de quando for compilado com suporte a SHM (Memória Compartilhada SysV) que usa múltiplos segmentos. MMAP não tem um limite máximo como o SHM em /proc/sys/kernel/shmmax. Em geral o suporte MMAP é recomendado porque ele irá recuparar a memória mais rapidamente quando o servidor web for reiniciado e, sumazirando, reduzirá o impacto na alocação de memória na inicialização.

Opções de configuração APCu
Nome | Padrão | Modificável | Registro de Alterações
apc.enabled | "1" | INI_SYSTEM |
apc.shm_segments | "1" | INI_SYSTEM |
apc.shm_size | "32M" | INI_SYSTEM |
apc.entries_hint | "4096" | INI_SYSTEM |
apc.ttl | "0" | INI_SYSTEM |
apc.gc_ttl | "3600" | INI_SYSTEM |
apc.mmap_file_mask | NULL | INI_SYSTEM |
apc.slam_defense | "1" | INI_SYSTEM |
apc.enable_cli | "0" | INI_SYSTEM |
apc.use_request_time | "0" | INI_ALL | Antes do APCu 5.1.19, o padrão era "1".
apc.serializer | "php" | INI_SYSTEM | Antes do APCu 5.1.15, o padrão era "default".
apc.coredump_unmap | "0" | INI_SYSTEM |
apc.preload_path | NULL | INI_SYSTEM |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

apc.enabled bool

apc.enabled pode ser definido para 0 para desabilitar o APC. Isto é útil principalmente quando o APC é compilado estaticamente no PHP, já que não há outra maneira de desabilitá-lo (quando compilado como um DSO, a linha extension no php.ini pode ser simplesmente comentada).

apc.shm_segments int

O número de segmentos de memória compartilhada a alocar para o cache do compilador. Se o APC estiver com pouca memória compartilhada mas apc.shm_size estiver definido com um valor tão alto quanto o sistema permite, aumentar este valor pode evitar que o APC tenha a memória exaurida.

apc.shm_size string

O tamanho de cada segmento de memória compartilhada, informado como uma notação reduzida como descrito neste FAQ. Por padrão, alguns sistemas (incluindo a maior parte das variantes BSD) têm limites muito baixos no tamanho de um segmento de memória compartilhada.

apc.entries_hint int

Uma "pista" sobre o número de variáveis distintas que podem ser armazenadas. Defina para zero ou omita se não tiver essa informação.

apc.ttl int

Considera que entradas de cache sem um TTL explícito estão expiradas se não foram acessadas nos segundos definidos por esta diretiva. Efetivamente, isto permite que tais entradas sejam removida oportunamente durante uma inserção de cache ou antes de uma eliminação completa. Observe que devido à remoção ser oportunap, as entradas ainda podem ser lidas mesmo se forem mais antigas que apc.ttl segundos. Esta configuração não tem efeito em entradas de cache que tenham um TTL explícito especificado.

apc.gc_ttl int

O número de segundos que uma entrada de cache pode permanecer na lista de coleta de lixo. Este valor fornece uma alternativa à prova de falhas no caso um processo do servidor seja terminado ao executar um arquivo com origem em cache; se este arquivo for modificado, a memória alocada para a versão antiga não será recuperada aque que este TTL seja alcançado. Defina para zero para desabilitar este recurso.

apc.mmap_file_mask string

Se compilado com suporte MMAP usando --enable-mmap esta é a máscara de arquivo em estilo mktemp a ser passada ao módulo mmap para determinar se a região de memória mapeada pelo MMAP será apoiada por arquivo ou apoiada por memória comparilhada. Para MMAP diretamente apoiada por arquivo, defina para algo como /tmp/apc.XXXXXX (exatamente 6 X). Oara usar shm_open/mmap em estilo POSIX, insira um .shm em algum lugar da máscara (por exemplo, /apc.shm.XXXXXX). Pode-se também defini-la para /dev/zero para usar a interface /dev/zero do kernel para memória mapeada anonimamente. Deixar este valor indefinido força um mapeamento anônimo.

apc.slam_defense int

Em um servidor muito ocupado, toda vez que ele for reiniciado ou quando arquivos forem modificados, pode-se criar uma condição de corrida onde muitos processos tentam inserir o mesmo arquivo no cache ao mesmo tempo. Esta opção define a percentagem de processos que irão pular a etapa de tentar inserir um arquivo que não esteja em cache. Este valor pode ser pensado como a probabilidade de um processo único pular a inserção em cache. Por exemplo, definir apc.slam_defense para 75 significa que há 75% de chance de um processo não inserir um arquivo em cache. Portanto, quanto maior o valor, maior a defesa contra disputa de cache. Definir para 0 desabilita este recurso.

apc.enable_cli int

Esta diretiva serve principalmente para teste e depuração. Habilita APC para a versão CLI do PHP. Em circunstâncias normais, não é ideal criar, popular e destruir o cache APC a cada requisição CLI, mas para vários cenários de teste é útil para ser capaz de habilitar o APC para a versão CLI do PHP facilmente.

apc.serializer string

Usada para configurar o APC para usar um serializador de terceiros.

apc.coredump_unmap bool

Habilita o gerenciamento APC de sinais, tal como SIGSEGV, que grava arquivos de núcleo quando sinalizado. Quandos esses sinais são recebidos, o APC tentará desmapear o segmento de memória compartilhada para excluí-lo do arquivo de núcleo. Esta configuração pode melhorar a estabilidade do sistema quando sinais fatais são recebidos e um grande segmento de memória compartilhada APC estiver configurado.

Aviso

Este recurso é potencialmente perigoso. Desmapear o segmento de memória compartilhada em um gerenciador de sinal fatal pode causar comportamento indefinido de um erro fatal ocorrer.

Nota:

Embora alguns kernels possam fornecer um recurso para ignorar vários tipos de memória compartilhada ao gerar um arquivo de despejo de núcleo, estas implementações podem também ignorar segmentos de memória compartilhada importantes tal como o Scoreboard do Apache.

apc.preload_path string

Opcionalmente, define um caminho para o diretório onde o APC irá carregar dados de cache na inicialização.

apc.use_request_time bool

Usa o horário de início da requisição SAPI para o TTL.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

APC_ITER_ALL (int)
APC_ITER_ATIME (int)
APC_ITER_CTIME (int)
APC_ITER_DEVICE (int)
APC_ITER_DTIME (int)
APC_ITER_FILENAME (int)
APC_ITER_INODE (int)
APC_ITER_KEY (int)
APC_ITER_MD5 (int)
APC_ITER_MEM_SIZE (int)
APC_ITER_MTIME (int)
APC_ITER_NONE (int)
APC_ITER_NUM_HITS (int)
APC_ITER_REFCOUNT (int)
APC_ITER_TTL (int)
APC_ITER_TYPE (int)
APC_ITER_VALUE (int)
APC_LIST_ACTIVE (int)
APC_LIST_DELETED (int)


APCu Funções

Índice

  • apcu_add — Faz cache de uma nova variável no armazenamento de dados
  • apcu_cache_info — Recupera informação em cache a partir do armazenamento de dados do APCu
  • apcu_cas — Atualiza um valor antigo com um novo
  • apcu_clear_cache — Limpa o cache APCu
  • apcu_dec — Decrementa um número armazenado
  • apcu_delete — Remove uma variável armazenada do cache
  • apcu_enabled — Informa se o APCu está disponível no ambiente atual
  • apcu_entry — Busca ou gera atomicamente uma entrada de cache
  • apcu_exists — Verifica se uma entrada existe
  • apcu_fetch — Busca uma variável armazenada no cache
  • apcu_inc — Incrementa um número armazenado
  • apcu_key_info — Obtém informação detalhada sobre uma chave em cache
  • apcu_sma_info — Obtém informação de Alocação de Memória Compartilhada (SMA) do APCu
  • apcu_store — Armazena uma variável em cache


Faz cache de uma nova variável no armazenamento de dados

  • « APCu Funções
  • apcu_cache_info »
  • PHP Manual
  • APCu Funções
  • Faz cache de uma nova variável no armazenamento de dados

apcu_add

(PECL apcu >= 4.0.0)

apcu_add — Faz cache de uma nova variável no armazenamento de dados

Descrição

apcu_add(string $key, mixed $var, int $ttl = 0): bool
apcu_add(array $values, mixed $unused = NULL, int $ttl = 0): array

Faz cache de uma variável no armazenamento de dados, somente se já não estiver armazenada.

Nota: Deferentemente de outros mecanismos no PHP, variáveis armazenadas usando apcu_add() irão persistir entre requisições (até que o valor seja removido do cache).

Parâmetros

key

Armazena a variável usando este nome. Uma chave definida por key deve ser única no cache, portanto tentar usar apcu_add() para armazenar dados com uma chave que já existe não substutuirá os dados existentes, e ao invés disso retornará false. Esta é a única diferença entre apcu_add() e apcu_store().

var

A variável a ser armazenada

ttl

Tempo de vida (Time To Live); armazena var no cache por ttl segundos. Depois que ttl segundos tiverem decorrido, a variável armazenada será excluída do cache (na próxima requisição). Se o parâmetro ttl não for fornecido (ou se ttl for 0), o valor persistirá até que seja removido do cache manualmente, ou se não existir mais no cache (em uma limpeza, reinício, etc.).

values

Nomes nas chaves, variáveis no valor.

Valor Retornado

Retorna TRUE se algo foi efetivamente adicionado ao chace, FALSE caso contrário. A segunda sintaxe retorna um array com chaves de erros.

Exemplos

Exemplo #1 Um exemplo de apcu_add()

<?php
$bar = 'BAR';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
?>

O exemplo acima produzirá:

string(3) "BAR"
string(3) "BAR"

Veja Também

  • apcu_store() - Armazena uma variável em cache
  • apcu_fetch() - Busca uma variável armazenada no cache
  • apcu_delete() - Remove uma variável armazenada do cache


Recupera informação em cache a partir do armazenamento de dados do APCu

  • « apcu_add
  • apcu_cas »
  • PHP Manual
  • APCu Funções
  • Recupera informação em cache a partir do armazenamento de dados do APCu

apcu_cache_info

(PECL apcu >= 4.0.0)

apcu_cache_info — Recupera informação em cache a partir do armazenamento de dados do APCu

Descrição

apcu_cache_info(bool $limited = false): array|false

Recupera informação em cache e meta-dados a partir do armazenamento de dados do APCu.

Parâmetros

limited

Se limited for true, o valor de retorno excluirá a lista individual de entradas de cache. Isto é útil ao tentar otimizar chamadas para obtenção de estatísticas.

Valor Retornado

Array de dados em cache (e meta-dados) ou false em caso de falha

Nota: apcu_cache_info() irá emitir um alerta se não conseguir recuperar dados em cache do APC. Isto tipicamente ocorre quando o APC não está habilitado.

Registro de Alterações

Versão | Descrição
PECL apcu 3.0.11 | O parâmetro limited foi introduzido.
PECL apcu 3.0.16 | A opção "filehits" para parâmetro cache_type foi introduzida.

Exemplos

Exemplo #1 Um exemplo de apcu_cache_info()

<?php
print_r(apcu_cache_info());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [num_slots] => 2000
    [ttl] => 0
    [num_hits] => 9
    [num_misses] => 3
    [start_time] => 1123958803
    [cache_list] => Array
        (
            [0] => Array
                (
                    [filename] => /path/to/apcu_test.php
                    [device] => 29954
                    [inode] => 1130511
                    [type] => file
                    [num_hits] => 1
                    [mtime] => 1123960686
                    [creation_time] => 1123960696
                    [deletion_time] => 0
                    [access_time] => 1123962864
                    [ref_count] => 1
                    [mem_size] => 677
                )
            [1] => Array (...itera para cada arquivo em cache)
)

Veja Também

  • Diretivas de configuração APCu
  • APCUIterator::getTotalSize() - Obtém o tamanho total do cache
  • APCUIterator::getTotalHits() - Obtém o total de entradas de cache
  • APCUIterator::getTotalCount() - Obtém a contagem total


Atualiza um valor antigo com um novo

  • « apcu_cache_info
  • apcu_clear_cache »
  • PHP Manual
  • APCu Funções
  • Atualiza um valor antigo com um novo

apcu_cas

(PECL apcu >= 4.0.0)

apcu_cas — Atualiza um valor antigo com um novo

Descrição

apcu_cas(string $key, int $old, int $new): bool

apcu_cas() atualiza um valor inteiro já existente se o parâmetro old corresponder ao valor armazenado atualmente com o valor do parâmetro new.

Parâmetros

key

A chave do valor sendo atualizado.

old

O valor antigo (o valor atualmente armazenado).

new

O novo valor com o qual a chave será atualizada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de apcu_cas()

<?php
apcu_store('foobar', 2);
echo '$foobar = 2', PHP_EOL;
echo '$foobar == 1 ? 2 : 1 = ', (apcu_cas('foobar', 1, 2) ? 'ok' : 'falha'), PHP_EOL;
echo '$foobar == 2 ? 1 : 2 = ', (apcu_cas('foobar', 2, 1) ? 'ok' : 'falha'), PHP_EOL;

echo '$foobar = ', apcu_fetch('foobar'), PHP_EOL;

echo '$f__bar == 1 ? 2 : 1 = ', (apcu_cas('f__bar', 1, 2) ? 'ok' : 'falha'), PHP_EOL;

apcu_store('perfection', 'xyz');
echo '$perfection == 2 ? 1 : 2 = ', (apcu_cas('perfection', 2, 1) ? 'ok' : 'falha épica'), PHP_EOL;

echo '$foobar = ', apcu_fetch('foobar'), PHP_EOL;
?>

O exemplo acima produzirá algo semelhante a:

$foobar = 2
$foobar == 1 ? 2 : 1 = falha
$foobar == 2 ? 1 : 2 = ok
$foobar = 1
$f__bar == 1 ? 2 : 1 = falha
$perfection == 2 ? 1 : 2 = falha épica
$foobar = 1

Veja Também

  • apcu_dec() - Decrementa um número armazenado
  • apcu_store() - Armazena uma variável em cache


Limpa o cache APCu

  • « apcu_cas
  • apcu_dec »
  • PHP Manual
  • APCu Funções
  • Limpa o cache APCu

apcu_clear_cache

(PECL apcu >= 4.0.0)

apcu_clear_cache — Limpa o cache APCu

Descrição

apcu_clear_cache(): bool

Limpa o cache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna sempre true

Veja Também

  • apcu_cache_info() - Recupera informação em cache a partir do armazenamento de dados do APCu


Decrementa um número armazenado

  • « apcu_clear_cache
  • apcu_delete »
  • PHP Manual
  • APCu Funções
  • Decrementa um número armazenado

apcu_dec

(PECL apcu >= 4.0.0)

apcu_dec — Decrementa um número armazenado

Descrição

apcu_dec(
string $key,
int $step = 1,
bool &$success = ?,
int $ttl = 0
): int|false

Decrementa um valor inteiro armazenado.

Parâmetros

key

A chave do valor sendo decrementado.

step

A quantidade, ou valor a decrementar.

success

Opcionalmente, o valor booleano de sucesso ou falha é passado para esta variável de referência.

ttl

TTL a ser usado se a operação inserir um novo valor (ao invés de decrementar um existente).

Valor Retornado

Retorna o valor atual do valor da chave definida em key em caso de sucesso, ou false em caso de falha

Exemplos

Exemplo #1 Exemplo de apcu_dec()

<?php
echo "Fazendo algo que funciona", PHP_EOL;

apcu_store('numeral', 42);

echo apcu_fetch('numeral'), PHP_EOL;

echo apcu_dec('numeral'), PHP_EOL;
echo apcu_dec('numeral', 10), PHP_EOL;
echo apcu_dec('numeral', 10, $success), PHP_EOL;

var_dump($success);

echo "Agora, algo que falha", PHP_EOL, PHP_EOL;

apcu_store('uma_string', 'foo');

$ret = apcu_dec('uma_string', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

O exemplo acima produzirá algo semelhante a:

Fazendo algo que funciona
42
41
31
21
bool(true)
Agora, algo que falha

bool(false)
bool(false)

Veja Também

  • apcu_inc() - Incrementa um número armazenado


Remove uma variável armazenada do cache

  • « apcu_dec
  • apcu_enabled »
  • PHP Manual
  • APCu Funções
  • Remove uma variável armazenada do cache

apcu_delete

(PECL apcu >= 4.0.0)

apcu_delete — Remove uma variável armazenada do cache

Descrição

apcu_delete(mixed $key): mixed

Remove uma variável armazenada do cache.

Parâmetros

key

O parâmetro key é uma chave usada para armazenar o valor como uma string para uma chave única, ou como um array de strings para várias chaves, ou como um objeto (object) da classe APCUIterator.

Valor Retornado

Se key for um array, um array indexado das chaves é retornado. Caso contrário true é retornado em caso de sucesso, ou false em caso de falha.

Exemplos

Exemplo #1 Um exemplo de apcu_delete()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
apcu_delete('foo');
// obviamente inútil nesta forma

// Alternativamente remove múltiplas chaves.
apcu_delete(['foo', 'bar', 'baz']);

// Ou usa um iterador com uma expressão regular.
apcu_delete(new APCUIterator('#^myprefix_#'));
?>

Veja Também

  • apcu_store() - Armazena uma variável em cache
  • apcu_fetch() - Busca uma variável armazenada no cache
  • apcu_clear_cache() - Limpa o cache APCu
  • APCUIterator


Informa se o APCu está disponível no ambiente atual

  • « apcu_delete
  • apcu_entry »
  • PHP Manual
  • APCu Funções
  • Informa se o APCu está disponível no ambiente atual

apcu_enabled

(PECL apcu >= 4.0.3)

apcu_enabled — Informa se o APCu está disponível no ambiente atual

Descrição

apcu_enabled(): bool

Informa se o APCu está utilizável no ambiente atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true quando o APCu está utilizável no ambiente atual, false caso contrário.


Busca ou gera atomicamente uma entrada de cache

  • « apcu_enabled
  • apcu_exists »
  • PHP Manual
  • APCu Funções
  • Busca ou gera atomicamente uma entrada de cache

apcu_entry

(PECL apcu >= 5.1.0)

apcu_entry — Busca ou gera atomicamente uma entrada de cache

Descrição

apcu_entry(string $key, callable $generator, int $ttl = 0): mixed

Tenta atomicamente encontrar key no cache, se não puder ser encontrado, generator é chamado, passando key como único argumento. O valor de retorno da chamada é então armazenado em cache com o ttl especificado opcionalmente e retornado.

Nota: Quando o controle entra em apcu_entry() a trava para o cache é adquirida exclusivamente, ela é liberada quando o controle sai de apcu_entry(): Na verdade, isso transforma o corpo do generator em uma seção crítica, impedindo que dois processos executem os mesmos caminhos de código simultaneamente. Além disso, proíbe a execução simultânea de quaisquer outras funções da APCu, pois irão adquirir a mesma trava.

Aviso

A única função APCu que pode ser chamada com segurança por generator é apcu_entry().

Parâmetros

key

Identidade da entrada de cache

generator

Uma função chamável que aceite key como o único argumento e retorne o valor para o cache.

ttl

Tempo de Vida (Time To Live); armazena var no cache por ttl segundos. Depois desses ttl segundos, a variável armazenada será excluída do cache (na próxima requisição). Se nenhum parâmetro ttl for informado (ou se ttl for 0), o valor persistirá até que seja removido do cache manualmente, ou caso deixe de existir no cache (limpeza, reinício, etc.).

Valor Retornado

Retorna o valor armazenado em cache

Exemplos

Exemplo #1 Um exemplo de apcu_entry()

<?php
$config = apcu_entry("config", function($key) {
return [
"fruta" => apcu_entry("config.fruta", function($key){
return [
"abacaxis",
"bananas"
];
}),
"pessoas" => apcu_entry("config.pessoas", function($key){
return [
"Marcelo",
"Pedro",
"Maria"
];
})
];
});

var_dump($config);
?>

O exemplo acima produzirá:

array(2) {
  ["fruta"]=>
  array(2) {
    [0]=>
    string(6) "abacaxis"
    [1]=>
    string(5) "bananas"
  }
  ["pessoas"]=>
  array(3) {
    [0]=>
    string(3) "Marcelo"
    [1]=>
    string(3) "Pedro"
    [2]=>
    string(4) "Maria"
  }
}

Veja Também

  • apcu_store() - Armazena uma variável em cache
  • apcu_fetch() - Busca uma variável armazenada no cache
  • apcu_delete() - Remove uma variável armazenada do cache


Verifica se uma entrada existe

  • « apcu_entry
  • apcu_fetch »
  • PHP Manual
  • APCu Funções
  • Verifica se uma entrada existe

apcu_exists

(PECL apcu >= 4.0.0)

apcu_exists — Verifica se uma entrada existe

Descrição

apcu_exists(mixed $keys): mixed

Verifica se uma ou mais entradas do APCu existem.

Parâmetros

keys

Uma string ou um array de strings que contenha chaves.

Valor Retornado

Retorna true se a chave existir, caso contrário false; ou se um array foi informado em keys, um array que contém todas as chaves existentes é retornado, ou um array vazio se nenhuma existir.

Exemplos

Exemplo #1 Exemplo de apcu_exists()

<?php
$fruit = 'banana';
$veggie = 'cenoura';

apcu_store('foo', $fruit);
apcu_store('bar', $veggie);

if (apcu_exists('foo')) {
echo "Foo existe: ";
echo apcu_fetch('foo');
} else {
echo "Foo não existe";
}

echo PHP_EOL;
if (apcu_exists('baz')) {
echo "Baz existe.";
} else {
echo "Baz não existe";
}

echo PHP_EOL;

$ret = apcu_exists(array('foo', 'naoexiste', 'bar'));
var_dump($ret);

?>

O exemplo acima produzirá algo semelhante a:

Foo existe: banana
Baz não existe
array(2) {
  ["foo"]=>
  bool(true)
  ["bar"]=>
  bool(true)
}

Veja Também

  • apcu_cache_info() - Recupera informação em cache a partir do armazenamento de dados do APCu
  • apcu_fetch() - Busca uma variável armazenada no cache


Busca uma variável armazenada no cache

  • « apcu_exists
  • apcu_inc »
  • PHP Manual
  • APCu Funções
  • Busca uma variável armazenada no cache

apcu_fetch

(PECL apcu >= 4.0.0)

apcu_fetch — Busca uma variável armazenada no cache

Descrição

apcu_fetch(mixed $key, bool &$success = ?): mixed

Busca uma entrada do cache.

Parâmetros

key

O parâmetro key contém a chave usada para armazenar o valor (com apcu_store()). Se um array for informado, cada elemento é buscado e retornado.

success

Definido para true em caso de sucesso e false em caso de falha.

Valor Retornado

A variável armazenada ou array de variáveis em caso de sucesso; false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL apcu 3.0.17 | O parâmetro success foi adicionado.

Exemplos

Exemplo #1 Um exemplo de apcu_fetch()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

O exemplo acima produzirá:

string(3) "BAR"

Veja Também

  • apcu_store() - Armazena uma variável em cache
  • apcu_delete() - Remove uma variável armazenada do cache
  • APCUIterator


Incrementa um número armazenado

  • « apcu_fetch
  • apcu_key_info »
  • PHP Manual
  • APCu Funções
  • Incrementa um número armazenado

apcu_inc

(PECL apcu >= 4.0.0)

apcu_inc — Incrementa um número armazenado

Descrição

apcu_inc(
string $key,
int $step = 1,
bool &$success = ?,
int $ttl = 0
): int|false

Incrementa um número armazenado.

Parâmetros

key

A chave do valor sendo incrementado.

step

A quantidade, ou o valor a incrementar.

success

Opcionalmente o valor booleano de sucesso ou falha é armazenado nesta variável passada por referência.

ttl

TTL a ser usado se a operação inserir um novo valor (ao invés de incrementar um existente).

Valor Retornado

Retorna o valor atual do valor da chave definida em key em caso de sucesso, ou false em caso de falha

Exemplos

Exemplo #1 Exemplo de apcu_inc()

<?php
echo "Fazendo algo que funciona", PHP_EOL;

apcu_store('numeral', 42);

echo apcu_fetch('numeral'), PHP_EOL;

echo apcu_inc('numeral'), PHP_EOL;
echo apcu_inc('numeral', 10), PHP_EOL;
echo apcu_inc('numeral', 10, $success), PHP_EOL;

var_dump($success);

echo "Agora, algo que falha", PHP_EOL, PHP_EOL;

apcu_store('uma_string', 'foo');

$ret = apcu_inc('uma_string', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

O exemplo acima produzirá algo semelhante a:

Fazendo algo que funciona
42
43
53
63
bool(true)
Agora, algo que falha

bool(false)
bool(false)

Veja Também

  • apcu_dec() - Decrementa um número armazenado


Obtém informação detalhada sobre uma chave em cache

  • « apcu_inc
  • apcu_sma_info »
  • PHP Manual
  • APCu Funções
  • Obtém informação detalhada sobre uma chave em cache

apcu_key_info

(Não há informação de versão disponível, talvez apenas no Git)

apcu_key_info — Obtém informação detalhada sobre uma chave em cache

Descrição

apcu_key_info(string $key): ?array

Obtém informação detalhada sobre a chave em cache

Parâmetros

key

Chave para a qual deseja-se obter a informação

Valor Retornado

Um array contendo informação detalhada sobre a chave em cache, ou null se a chave não existir.

Exemplos

Exemplo #1 Um exemplo de apcu_key_info()

<?php
apcu_add('a','b');
var_dump(apcu_key_info('a'));
?>

O exemplo acima produzirá:

array(7) {
  ["hits"]=>
  int(0)
  ["access_time"]=>
  int(1606701783)
  ["mtime"]=>
  int(1606701783)
  ["creation_time"]=>
  int(1606701783)
  ["deletion_time"]=>
  int(0)
  ["ttl"]=>
  int(0)
  ["refs"]=>
  int(0)
}

Veja Também

  • apcu_store() - Armazena uma variável em cache
  • apcu_fetch() - Busca uma variável armazenada no cache
  • apcu_delete() - Remove uma variável armazenada do cache


Obtém informação de Alocação de Memória Compartilhada (SMA) do APCu

  • « apcu_key_info
  • apcu_store »
  • PHP Manual
  • APCu Funções
  • Obtém informação de Alocação de Memória Compartilhada (SMA) do APCu

apcu_sma_info

(PECL apcu >= 4.0.0)

apcu_sma_info — Obtém informação de Alocação de Memória Compartilhada (SMA) do APCu

Descrição

apcu_sma_info(bool $limited = false): array|false

Obtém informação de Alocação de Memória Compartilhada (SMA) do APCu.

Parâmetros

limited

Quando definido para false (o padrão), apcu_sma_info() retornará uma informação detalhada sobre cada segmento.

Valor Retornado

Array de dados de Alocação de Memória Compartilhada; false em caso de falha.

Exemplos

Exemplo #1 Um exemplo de apcu_sma_info()

<?php
print_r(apcu_sma_info());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)

Veja Também

  • Diretivas de configuração APCu


Armazena uma variável em cache

  • « apcu_sma_info
  • APCUIterator »
  • PHP Manual
  • APCu Funções
  • Armazena uma variável em cache

apcu_store

(PECL apcu >= 4.0.0)

apcu_store — Armazena uma variável em cache

Descrição

apcu_store(string $key, mixed $var, int $ttl = 0): bool
apcu_store(array $values, mixed $unused = NULL, int $ttl = 0): array

Armazena uma variável em cache.

Nota: Diferentemente de muitos outros mecanismos no PHP, variáveis armazenadas usando apcu_store() persistirão entre requisições (até que o valor seja removido do cache).

Parâmetros

key

Armazena a variável usando o nome informado em key, que deve ser única no cache. Portanto, armazenar um segundo valor com o mesmo valor de key irá substituir o valor original.

var

A variável a ser armazenada

ttl

Tempo de Vida (Time To Live); armazena var no cache por ttl segundos. Depois desses ttl segundos, a variável armazenada será excluída do cache (na próxima requisição). Se nenhum parâmetro ttl for informado (ou se ttl for 0), o valor persistirá até que seja removido do cache manualmente, ou caso deixe de existir no cache (limpeza, reinício, etc.).

values

Nomes nas chaves, variáveis nos valores.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. A segunda sintaxe retorna um array com chaves de erros.

Exemplos

Exemplo #1 Um exemplo de apcu_store()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

O exemplo acima produzirá:

string(3) "BAR"

Veja Também

  • apcu_add() - Faz cache de uma nova variável no armazenamento de dados
  • apcu_fetch() - Busca uma variável armazenada no cache
  • apcu_delete() - Remove uma variável armazenada do cache


A classe APCUIterator

(PECL apcu >= 5.0.0)

Introdução

A classe APCUIterator torna mais fácil iterar sobre grandes caches APCu. Ela é útil pois permite iterar sobre grandes caches em etapas, capturando um número definido de entradas por instância de trava, portanto ela libera as travas de cache para outras atividades ao invés de segurar todo o cache para capturar 100 entradas (que é o padrão). Além disso, usar correspondências com expressões regulares é mais eficiente pois opera no nível de linguagem C.

Resumo da classe

class APCUIterator implements Iterator {
/* Métodos */
public __construct(
array|string|null $search = null,
int $format = APC_ITER_ALL,
int $chunk_size = 100,
int $list = APC_LIST_ACTIVE
)
public current(): mixed
public getTotalCount(): int
public getTotalHits(): int
public getTotalSize(): int
public key(): string
public next(): bool
public rewind(): void
public valid(): bool
}

Índice

  • APCUIterator::__construct — Constrói um objeto iterador APCUIterator
  • APCUIterator::current — Obtém o item atual
  • APCUIterator::getTotalCount — Obtém a contagem total
  • APCUIterator::getTotalHits — Obtém o total de entradas de cache
  • APCUIterator::getTotalSize — Obtém o tamanho total do cache
  • APCUIterator::key — Obtém a chave do iterador
  • APCUIterator::next — Move o ponteiro para o próximo item
  • APCUIterator::rewind — Rebobina o iterador
  • APCUIterator::valid — Verifica se a posição atual é válida


Constrói um objeto iterador APCUIterator

  • « APCUIterator
  • APCUIterator::current »
  • PHP Manual
  • APCUIterator
  • Constrói um objeto iterador APCUIterator

APCUIterator::__construct

(PECL apcu >= 5.0.0)

APCUIterator::__construct — Constrói um objeto iterador APCUIterator

Descrição

public APCUIterator::__construct(
array|string|null $search = null,
int $format = APC_ITER_ALL,
int $chunk_size = 100,
int $list = APC_LIST_ACTIVE
)

Constrói um object da classe APCUIterator.

Parâmetros

search

Pode ser uma expressão regular PCRE que corresponda a nomes de chaves APCu, informada como uma string. Ou um array de strings com nomes de chaves APCu. Ou, opcionalmente, null para não fazer a pesquisa.

format

O formato desejado, como configurado com um ou mais das constantes APC_ITER_*.

chunk_size

O tamanho do pacote. Deve ser um valor maior que 0. O valor padrão é 100.

list

O tipo a ser listado. Podem ser passadas as constantes APC_LIST_ACTIVE ou APC_LIST_DELETED.

Exemplos

Exemplo #1 Um exemplo de APCUIterator::__construct()

<?php
foreach (new APCUIterator('/^counter\./') as $counter) {
echo "$counter[key]: $counter[value]\n";
apc_dec($counter['key'], $counter['value']);
}
?>

Veja Também

  • apcu_exists() - Verifica se uma entrada existe
  • apcu_cache_info() - Recupera informação em cache a partir do armazenamento de dados do APCu


Obtém o item atual

  • « APCUIterator::__construct
  • APCUIterator::getTotalCount »
  • PHP Manual
  • APCUIterator
  • Obtém o item atual

APCUIterator::current

(PECL apcu >= 5.0.0)

APCUIterator::current — Obtém o item atual

Descrição

public APCUIterator::current(): mixed

Obtém o item atual da pilha do APCUIterator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o item atual em caso de sucesso, ou false se não existirem mais itens, ou em caso de falha.

Veja Também

  • APCUIterator::next() - Move o ponteiro para o próximo item
  • Iterator::current() - Retorna o elemento atual


Obtém a contagem total

  • « APCUIterator::current
  • APCUIterator::getTotalHits »
  • PHP Manual
  • APCUIterator
  • Obtém a contagem total

APCUIterator::getTotalCount

(PECL apcu >= 5.0.0)

APCUIterator::getTotalCount — Obtém a contagem total

Descrição

public APCUIterator::getTotalCount(): int

Obtém a contagem total.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A contagem total.

Veja Também

  • APCUIterator::getTotalHits() - Obtém o total de entradas de cache
  • APCUIterator::getTotalSize() - Obtém o tamanho total do cache
  • apcu_cache_info() - Recupera informação em cache a partir do armazenamento de dados do APCu


Obtém o total de entradas de cache

  • « APCUIterator::getTotalCount
  • APCUIterator::getTotalSize »
  • PHP Manual
  • APCUIterator
  • Obtém o total de entradas de cache

APCUIterator::getTotalHits

(PECL apcu >= 5.0.0)

APCUIterator::getTotalHits — Obtém o total de entradas de cache

Descrição

public APCUIterator::getTotalHits(): int

Obtém o número total de entradas de cache.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O número de entradas em caso de sucesso, ou false em caso de falha.

Veja Também

  • APCUIterator::getTotalCount() - Obtém a contagem total
  • APCUIterator::getTotalSize() - Obtém o tamanho total do cache
  • apcu_cache_info() - Recupera informação em cache a partir do armazenamento de dados do APCu


Obtém o tamanho total do cache

  • « APCUIterator::getTotalHits
  • APCUIterator::key »
  • PHP Manual
  • APCUIterator
  • Obtém o tamanho total do cache

APCUIterator::getTotalSize

(PECL apcu >= 5.0.0)

APCUIterator::getTotalSize — Obtém o tamanho total do cache

Descrição

public APCUIterator::getTotalSize(): int

Obtém o tamanho total do cache.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O tamanho total do cache.

Veja Também

  • APCUIterator::getTotalCount() - Obtém a contagem total
  • APCUIterator::getTotalHits() - Obtém o total de entradas de cache
  • apc_cache_info()


Obtém a chave do iterador

  • « APCUIterator::getTotalSize
  • APCUIterator::next »
  • PHP Manual
  • APCUIterator
  • Obtém a chave do iterador

APCUIterator::key

(PECL apcu >= 5.0.0)

APCUIterator::key — Obtém a chave do iterador

Descrição

public APCUIterator::key(): string

Obtém a chave atual do iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a chave em caso de sucesso, ou false em caso de falha.

Veja Também

  • APCUIterator::current() - Obtém o item atual
  • Iterator::key() - Retorna a chave do elemento atual


Move o ponteiro para o próximo item

  • « APCUIterator::key
  • APCUIterator::rewind »
  • PHP Manual
  • APCUIterator
  • Move o ponteiro para o próximo item

APCUIterator::next

(PECL apcu >= 5.0.0)

APCUIterator::next — Move o ponteiro para o próximo item

Descrição

public APCUIterator::next(): bool

Move o ponteiro do iterador para o próximo elemento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • APCUIterator::current() - Obtém o item atual
  • APCUIterator::rewind() - Rebobina o iterador
  • Iterator::next() - Move para o próximo elemento


Rebobina o iterador

  • « APCUIterator::next
  • APCUIterator::valid »
  • PHP Manual
  • APCUIterator
  • Rebobina o iterador

APCUIterator::rewind

(PECL apcu >= 5.0.0)

APCUIterator::rewind — Rebobina o iterador

Descrição

public APCUIterator::rewind(): void

Retrocede o iterador para o primeiro elemento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • APCUIterator::next() - Move o ponteiro para o próximo item
  • Iterator::next() - Move para o próximo elemento


Verifica se a posição atual é válida

  • « APCUIterator::rewind
  • Componere »
  • PHP Manual
  • APCUIterator
  • Verifica se a posição atual é válida

APCUIterator::valid

(PECL apcu >= 5.0.0)

APCUIterator::valid — Verifica se a posição atual é válida

Descrição

public APCUIterator::valid(): bool

Verifica se a posição atual do iterador é válida.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a posição atual do iterador for válida, caso contrário retorna false.

Veja Também

  • APCUIterator::current() - Obtém o item atual
  • Iterator::valid() - Verifica se a posição atual é válida


Componere

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
  • Componere\Abstract\Definition — The Componere\Abstract\Definition class
    • Componere\Abstract\Definition::addInterface — Add Interface
    • Componere\Abstract\Definition::addMethod — Add Method
    • Componere\Abstract\Definition::addTrait — Add Trait
    • Componere\Abstract\Definition::getReflector — Reflection
  • Componere\Definition — The Componere\Definition class
    • Componere\Definition::__construct — Definition Construction
    • Componere\Definition::addConstant — Add Constant
    • Componere\Definition::addProperty — Add Property
    • Componere\Definition::register — Registration
    • Componere\Definition::isRegistered — State Detection
    • Componere\Definition::getClosure — Get Closure
    • Componere\Definition::getClosures — Get Closures
  • Componere\Patch — The Componere\Patch class
    • Componere\Patch::__construct — Patch Construction
    • Componere\Patch::apply — Application
    • Componere\Patch::revert — Reversal
    • Componere\Patch::isApplied — State Detection
    • Componere\Patch::derive — Patch Derivation
    • Componere\Patch::getClosure — Get Closure
    • Componere\Patch::getClosures — Get Closures
  • Componere\Method — The Componere\Method class
    • Componere\Method::__construct — Method Construction
    • Componere\Method::setPrivate — Accessibility Modification
    • Componere\Method::setProtected — Accessibility Modification
    • Componere\Method::setStatic — Accessibility Modification
    • Componere\Method::getReflector — Reflection
  • Componere\Value — The Componere\Value class
    • Componere\Value::__construct — Value Construction
    • Componere\Value::setPrivate — Accessibility Modification
    • Componere\Value::setProtected — Accessibility Modification
    • Componere\Value::setStatic — Accessibility Modification
    • Componere\Value::isPrivate — Accessibility Detection
    • Componere\Value::isProtected — Accessibility Detection
    • Componere\Value::isStatic — Accessibility Detection
    • Componere\Value::hasDefault — Value Interaction
  • Componere Funções
    • Componere\cast — Casting
    • Componere\cast_by_ref — Casting


Introdução

Componere (latin, English: compose) targets production environments and provides an API for composition of classes, monkey patching, and casting.

Composition:

Componere\Definition is used to define (or redefine) a class at runtime; The class can then be registered, and in the case of redefinition it replaces the original class for as long as the Componere\Definition exists.

public Componere\Definition::__construct(string $name)
public Componere\Definition::__construct(string $name, string $parent)
public Componere\Definition::__construct(string $name, array $interfaces)
public Componere\Definition::__construct(string $name, string $parent, array $interfaces)

Patching:

Componere\Patch is used to change the class of a specific instance of an object at runtime; Upon application the patch will remain applied for as long as the Componere\Patch exists, and can be reverted explicitly.

public Componere\Patch::__construct(object $instance)
public Componere\Patch::__construct(object $instance, array $interfaces)

Casting:

Componere\ casting functions can cast among user defined compatible types; Where compatible means Type is sub or super to the type of object.

Componere\cast(Type $type, $object): Type
Componere\cast_by_ref(Type $type, $object): Type


  • « Introdução
  • Dependências »
  • PHP Manual
  • Componere
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

Reflection is required


  • « Dependências
  • Componere\Abstract\Definition »
  • PHP Manual
  • Instalação/Configuração
  • Instalação

Instalação

Componere source and releases are available on » github


The Componere\Abstract\Definition class

(Componere 2 >= 2.1.0)

Introdução

This final abstract represents a class entry, and should not be used by the programmer.

Resumo da classe

final abstract class Componere\Abstract\Definition {
/* Métodos */
public addInterface(string $interface): Definition
public addMethod(string $name, Componere\Method $method): Definition
public addTrait(string $trait): Definition
public getReflector(): ReflectionClass
}

Índice

  • Componere\Abstract\Definition::addInterface — Add Interface
  • Componere\Abstract\Definition::addMethod — Add Method
  • Componere\Abstract\Definition::addTrait — Add Trait
  • Componere\Abstract\Definition::getReflector — Reflection


Add Interface

  • « Componere\Abstract\Definition
  • Componere\Abstract\Definition::addMethod »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Interface

Componere\Abstract\Definition::addInterface

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addInterface — Add Interface

Descrição

public Componere\Abstract\Definition::addInterface(string $interface): Definition

Shall implement the given interface on the current definition

Parâmetros

interface

The case insensitive name of an interface

Valor Retornado

The current Definition

Exceptions

Aviso

Shall throw RuntimeException if Definition was registered


Add Method

  • « Componere\Abstract\Definition::addInterface
  • Componere\Abstract\Definition::addTrait »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Method

Componere\Abstract\Definition::addMethod

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addMethod — Add Method

Descrição

public Componere\Abstract\Definition::addMethod(string $name, Componere\Method $method): Definition

Shall create or override a method on the current definition.

Parâmetros

name

The case insensitive name for method

method

Componere\Method not previously added to another Definition

Valor Retornado

The current Definition

Exceptions

Aviso

Shall throw RuntimeException if Definition was registered

Aviso

Shall throw RuntimeException if Method was added to another Definition


Add Trait

  • « Componere\Abstract\Definition::addMethod
  • Componere\Abstract\Definition::getReflector »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Trait

Componere\Abstract\Definition::addTrait

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addTrait — Add Trait

Descrição

public Componere\Abstract\Definition::addTrait(string $trait): Definition

Shall use the given trait for the current definition

Parâmetros

trait

The case insensitive name of a trait

Valor Retornado

The current Definition

Exceptions

Aviso

Shall throw RuntimeException if Definition was registered


Reflection

  • « Componere\Abstract\Definition::addTrait
  • Componere\Definition »
  • PHP Manual
  • Componere\Abstract\Definition
  • Reflection

Componere\Abstract\Definition::getReflector

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::getReflector — Reflection

Descrição

public Componere\Abstract\Definition::getReflector(): ReflectionClass

Shall create or return a ReflectionClass

Valor Retornado

A ReflectionClass for the current definition (cached)


The Componere\Definition class

(Componere 2 >= 2.1.0)

Introdução

The Definition class allows the programmer to build and register a type at runtime.

Should a Definition replace an existing class, the existing class will be restored when the Definition is destroyed.

Resumo da classe

final class Componere\Definition extends Componere\Abstract\Definition {
/* Constructors */
public __construct(string $name)
public __construct(string $name, string $parent)
public __construct(string $name, array $interfaces)
public __construct(string $name, string $parent, array $interfaces)
/* Métodos */
public addConstant(string $name, Componere\Value $value): Definition
public addProperty(string $name, Componere\Value $value): Definition
public register(): void
public isRegistered(): bool
public getClosure(string $name): Closure
public getClosures(): array
/* Métodos herdados */
public Componere\Abstract\Definition::addInterface(string $interface): Definition
public Componere\Abstract\Definition::addMethod(string $name, Componere\Method $method): Definition
public Componere\Abstract\Definition::addTrait(string $trait): Definition
public Componere\Abstract\Definition::getReflector(): ReflectionClass
}

Índice

  • Componere\Definition::__construct — Definition Construction
  • Componere\Definition::addConstant — Add Constant
  • Componere\Definition::addProperty — Add Property
  • Componere\Definition::register — Registration
  • Componere\Definition::isRegistered — State Detection
  • Componere\Definition::getClosure — Get Closure
  • Componere\Definition::getClosures — Get Closures


Definition Construction

  • « Componere\Definition
  • Componere\Definition::addConstant »
  • PHP Manual
  • Componere\Definition
  • Definition Construction

Componere\Definition::__construct

(Componere 2 >= 2.1.0)

Componere\Definition::__construct — Definition Construction

Descrição

public Componere\Definition::__construct(string $name)
public Componere\Definition::__construct(string $name, string $parent)
public Componere\Definition::__construct(string $name, array $interfaces)
public Componere\Definition::__construct(string $name, string $parent, array $interfaces)

Parâmetros

name

A case insensitive class name

parent

A case insensitive class name

interfaces

An array of case insensitive class names

Exceptions

Aviso

Shall throw InvalidArgumentException if an attempt is made to replace an internal class

Aviso

Shall throw InvalidArgumentException if an attempt is made to replace an interface

Aviso

Shall throw InvalidArgumentException if an attempt is made to replace a trait

Aviso

Shall throw RuntimeException if a class in interfaces cannot be found

Aviso

Shall throw RuntimeException if an class in interfaces is not an interface


Add Constant

  • « Componere\Definition::__construct
  • Componere\Definition::addProperty »
  • PHP Manual
  • Componere\Definition
  • Add Constant

Componere\Definition::addConstant

(Componere 2 >= 2.1.0)

Componere\Definition::addConstant — Add Constant

Descrição

public Componere\Definition::addConstant(string $name, Componere\Value $value): Definition

Shall declare a class constant on the current Definition

Parâmetros

name

The case sensitive name for the constant

value

The Value for the constant, must not be undefined or static

Valor Retornado

The current Definition

Exceptions

Aviso

Shall throw RuntimeException if Definition was registered

Aviso

Shall throw RuntimeException if name is already declared as a constant

Aviso

Shall throw RuntimeException if value is static

Aviso

Shall throw RuntimeException if value is undefined


Add Property

  • « Componere\Definition::addConstant
  • Componere\Definition::register »
  • PHP Manual
  • Componere\Definition
  • Add Property

Componere\Definition::addProperty

(Componere 2 >= 2.1.0)

Componere\Definition::addProperty — Add Property

Descrição

public Componere\Definition::addProperty(string $name, Componere\Value $value): Definition

Shall declare a class property on the current Definition

Parâmetros

name

The case sensitive name for the property

value

The default Value for the property

Valor Retornado

The current Definition

Exceptions

Aviso

Shall throw RuntimeException if Definition was registered

Aviso

Shall throw RuntimeException if name is already declared as a property


Registration

  • « Componere\Definition::addProperty
  • Componere\Definition::isRegistered »
  • PHP Manual
  • Componere\Definition
  • Registration

Componere\Definition::register

(Componere 2 >= 2.1.0)

Componere\Definition::register — Registration

Descrição

public Componere\Definition::register(): void

Shall register the current Definition

Exceptions

Aviso

Shall throw RuntimeException if Definition was registered


State Detection

  • « Componere\Definition::register
  • Componere\Definition::getClosure »
  • PHP Manual
  • Componere\Definition
  • State Detection

Componere\Definition::isRegistered

(Componere 2 >= 2.1.0)

Componere\Definition::isRegistered — State Detection

Descrição

public Componere\Definition::isRegistered(): bool

Shall detect the registration state of this Definition

Valor Retornado

Shall return true if this Definition is registered


Get Closure

  • « Componere\Definition::isRegistered
  • Componere\Definition::getClosures »
  • PHP Manual
  • Componere\Definition
  • Get Closure

Componere\Definition::getClosure

(Componere 2 >= 2.1.0)

Componere\Definition::getClosure — Get Closure

Descrição

public Componere\Definition::getClosure(string $name): Closure

Shall return a Closure for the method specified by name

Parâmetros

name

The case insensitive name of the method

Valor Retornado

A Closure bound to the correct scope

Exceptions

Aviso

Shall throw RuntimeException if Definition was registered

Aviso

Shall throw RuntimeException if name could not be found


Get Closures

  • « Componere\Definition::getClosure
  • Componere\Patch »
  • PHP Manual
  • Componere\Definition
  • Get Closures

Componere\Definition::getClosures

(Componere 2 >= 2.1.0)

Componere\Definition::getClosures — Get Closures

Descrição

public Componere\Definition::getClosures(): array

Shall return an array of Closures

Valor Retornado

Shall return all methods as an array of Closure objects bound to the correct scope

Exceptions

Aviso

Shall throw RuntimeException if Definition was registered


The Componere\Patch class

(Componere 2 >= 2.1.0)

Introdução

The Patch class allows the programmer to change the type of an instance at runtime without registering a new Definition

When a Patch is destroyed it is reverted, so that instances that were patched during the lifetime of the Patch are restored to their formal type.

Resumo da classe

final class Componere\Patch extends Componere\Abstract\Definition {
/* Constructors */
public __construct(object $instance)
public __construct(object $instance, array $interfaces)
/* Métodos */
public apply(): void
public revert(): void
public isApplied(): bool
public derive(object $instance): Patch
public getClosure(string $name): Closure
public getClosures(): array
/* Métodos herdados */
public Componere\Abstract\Definition::addInterface(string $interface): Definition
public Componere\Abstract\Definition::addMethod(string $name, Componere\Method $method): Definition
public Componere\Abstract\Definition::addTrait(string $trait): Definition
public Componere\Abstract\Definition::getReflector(): ReflectionClass
}

Índice

  • Componere\Patch::__construct — Patch Construction
  • Componere\Patch::apply — Application
  • Componere\Patch::revert — Reversal
  • Componere\Patch::isApplied — State Detection
  • Componere\Patch::derive — Patch Derivation
  • Componere\Patch::getClosure — Get Closure
  • Componere\Patch::getClosures — Get Closures


Patch Construction

  • « Componere\Patch
  • Componere\Patch::apply »
  • PHP Manual
  • Componere\Patch
  • Patch Construction

Componere\Patch::__construct

(Componere 2 >= 2.1.0)

Componere\Patch::__construct — Patch Construction

Descrição

public Componere\Patch::__construct(object $instance)
public Componere\Patch::__construct(object $instance, array $interfaces)

Parâmetros

instance

The target for this Patch

interfaces

A case insensitive array of class names

Exceptions

Aviso

Shall throw RuntimeException if a class in interfaces cannot be found

Aviso

Shall throw RuntimeException if an class in interfaces is not an interface


Application

  • « Componere\Patch::__construct
  • Componere\Patch::revert »
  • PHP Manual
  • Componere\Patch
  • Application

Componere\Patch::apply

(Componere 2 >= 2.1.0)

Componere\Patch::apply — Application

Descrição

public Componere\Patch::apply(): void

Shall apply the current patch


Reversal

  • « Componere\Patch::apply
  • Componere\Patch::isApplied »
  • PHP Manual
  • Componere\Patch
  • Reversal

Componere\Patch::revert

(Componere 2 >= 2.1.0)

Componere\Patch::revert — Reversal

Descrição

public Componere\Patch::revert(): void

Shall revert the current patch


State Detection

  • « Componere\Patch::revert
  • Componere\Patch::derive »
  • PHP Manual
  • Componere\Patch
  • State Detection

Componere\Patch::isApplied

(Componere 2 >= 2.1.0)

Componere\Patch::isApplied — State Detection

Descrição

public Componere\Patch::isApplied(): bool


Patch Derivation

  • « Componere\Patch::isApplied
  • Componere\Patch::getClosure »
  • PHP Manual
  • Componere\Patch
  • Patch Derivation

Componere\Patch::derive

(Componere 2 >= 2.1.1)

Componere\Patch::derive — Patch Derivation

Descrição

public Componere\Patch::derive(object $instance): Patch

Shall derive a Patch for the given instance

Parâmetros

instance

The target for the derived Patch

Valor Retornado

Patch for instance derived from the current Patch

Exceptions

Aviso

Shall throw InvalidArgumentException if instance is not compatible


Get Closure

  • « Componere\Patch::derive
  • Componere\Patch::getClosures »
  • PHP Manual
  • Componere\Patch
  • Get Closure

Componere\Patch::getClosure

(Componere 2 >= 2.1.0)

Componere\Patch::getClosure — Get Closure

Descrição

public Componere\Patch::getClosure(string $name): Closure

Shall return a Closure for the method specified by name

Parâmetros

name

The case insensitive name of the method

Valor Retornado

A Closure bound to the correct scope and object

Exceptions

Aviso

Shall throw RuntimeException if name could not be found


Get Closures

  • « Componere\Patch::getClosure
  • Componere\Method »
  • PHP Manual
  • Componere\Patch
  • Get Closures

Componere\Patch::getClosures

(Componere 2 >= 2.1.0)

Componere\Patch::getClosures — Get Closures

Descrição

public Componere\Patch::getClosures(): array

Shall return an array of Closures

Valor Retornado

Shall return all methods as an array of Closure objects bound to the correct scope and object


The Componere\Method class

(Componere 2 >= 2.1.0)

Introdução

A Method represents a function with modifiable accessibility flags

Resumo da classe

final class Componere\Method {
/* Constructor */
public __construct(Closure $closure)
/* Métodos */
public setPrivate(): Method
public setProtected(): Method
public setStatic(): Method
public getReflector(): ReflectionMethod
}

Índice

  • Componere\Method::__construct — Method Construction
  • Componere\Method::setPrivate — Accessibility Modification
  • Componere\Method::setProtected — Accessibility Modification
  • Componere\Method::setStatic — Accessibility Modification
  • Componere\Method::getReflector — Reflection


Method Construction

  • « Componere\Method
  • Componere\Method::setPrivate »
  • PHP Manual
  • Componere\Method
  • Method Construction

Componere\Method::__construct

(Componere 2 >= 2.1.0)

Componere\Method::__construct — Method Construction

Descrição

public Componere\Method::__construct(Closure $closure)

Parâmetros

closure


Accessibility Modification

  • « Componere\Method::__construct
  • Componere\Method::setProtected »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setPrivate

(Componere 2 >= 2.1.0)

Componere\Method::setPrivate — Accessibility Modification

Descrição

public Componere\Method::setPrivate(): Method

Valor Retornado

The current Method

Exceptions

Aviso

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Method::setPrivate
  • Componere\Method::setStatic »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setProtected

(Componere 2 >= 2.1.0)

Componere\Method::setProtected — Accessibility Modification

Descrição

public Componere\Method::setProtected(): Method

Valor Retornado

The current Method

Exceptions

Aviso

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Method::setProtected
  • Componere\Method::getReflector »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setStatic

(Componere 2 >= 2.1.0)

Componere\Method::setStatic — Accessibility Modification

Descrição

public Componere\Method::setStatic(): Method

Valor Retornado

The current Method


Reflection

  • « Componere\Method::setStatic
  • Componere\Value »
  • PHP Manual
  • Componere\Method
  • Reflection

Componere\Method::getReflector

(Componere 2 >= 2.1.0)

Componere\Method::getReflector — Reflection

Descrição

public Componere\Method::getReflector(): ReflectionMethod

Shall create or return a ReflectionMethod

Valor Retornado

A ReflectionMethod for the current method (cached)


The Componere\Value class

(Componere 2 >= 2.1.0)

Introdução

A Value represents a PHP variable of all types, including undefined

Resumo da classe

final class Componere\Value {
/* Constructor */
public __construct( $default = ?)
/* Métodos */
public setPrivate(): Value
public setProtected(): Value
public setStatic(): Value
public isPrivate(): bool
public isProtected(): bool
public isStatic(): bool
public hasDefault(): bool
}

Índice

  • Componere\Value::__construct — Value Construction
  • Componere\Value::setPrivate — Accessibility Modification
  • Componere\Value::setProtected — Accessibility Modification
  • Componere\Value::setStatic — Accessibility Modification
  • Componere\Value::isPrivate — Accessibility Detection
  • Componere\Value::isProtected — Accessibility Detection
  • Componere\Value::isStatic — Accessibility Detection
  • Componere\Value::hasDefault — Value Interaction


Value Construction

  • « Componere\Value
  • Componere\Value::setPrivate »
  • PHP Manual
  • Componere\Value
  • Value Construction

Componere\Value::__construct

(Componere 2 >= 2.1.0)

Componere\Value::__construct — Value Construction

Descrição

public Componere\Value::__construct( $default = ?)

Parâmetros

default

Exceptions

Aviso

Shall throw InvalidArgumentException if default does not have a suitable value


Accessibility Modification

  • « Componere\Value::__construct
  • Componere\Value::setProtected »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setPrivate

(Componere 2 >= 2.1.0)

Componere\Value::setPrivate — Accessibility Modification

Descrição

public Componere\Value::setPrivate(): Value

Valor Retornado

The current Value

Exceptions

Aviso

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Value::setPrivate
  • Componere\Value::setStatic »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setProtected

(Componere 2 >= 2.1.0)

Componere\Value::setProtected — Accessibility Modification

Descrição

public Componere\Value::setProtected(): Value

Valor Retornado

The current Value

Exceptions

Aviso

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Value::setProtected
  • Componere\Value::isPrivate »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setStatic

(Componere 2 >= 2.1.0)

Componere\Value::setStatic — Accessibility Modification

Descrição

public Componere\Value::setStatic(): Value

Valor Retornado

The current Value


Accessibility Detection

  • « Componere\Value::setStatic
  • Componere\Value::isProtected »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isPrivate

(Componere 2 >= 2.1.0)

Componere\Value::isPrivate — Accessibility Detection

Descrição

public Componere\Value::isPrivate(): bool


Accessibility Detection

  • « Componere\Value::isPrivate
  • Componere\Value::isStatic »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isProtected

(Componere 2 >= 2.1.0)

Componere\Value::isProtected — Accessibility Detection

Descrição

public Componere\Value::isProtected(): bool


Accessibility Detection

  • « Componere\Value::isProtected
  • Componere\Value::hasDefault »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isStatic

(Componere 2 >= 2.1.0)

Componere\Value::isStatic — Accessibility Detection

Descrição

public Componere\Value::isStatic(): bool


Value Interaction

  • « Componere\Value::isStatic
  • Componere Funções »
  • PHP Manual
  • Componere\Value
  • Value Interaction

Componere\Value::hasDefault

(Componere 2 >= 2.1.0)

Componere\Value::hasDefault — Value Interaction

Descrição

public Componere\Value::hasDefault(): bool


  • « Componere\Value::hasDefault
  • Componere\cast »
  • PHP Manual
  • Componere
  • Componere Funções

Componere Funções

Índice

  • Componere\cast — Casting
  • Componere\cast_by_ref — Casting


Casting

  • « Componere Funções
  • Componere\cast_by_ref »
  • PHP Manual
  • Componere Funções
  • Casting

Componere\cast

(Componere 2 >= 2.1.2)

Componere\cast — Casting

Descrição

Componere\cast(Type $type, $object): Type

Parâmetros

type

A user defined type

object

An object with a user defined type compatible with Type

Valor Retornado

An object of type Type, cast from object

Erros/Exceções

Aviso

Shall throw InvalidArgumentException if the type of object is or is derived from an internal class

Aviso

Shall throw InvalidArgumentException if Type is an interface

Aviso

Shall throw InvalidArgumentException if Type is a trait

Aviso

Shall throw InvalidArgumentException if Type is an abstract

Aviso

Shall throw InvalidArgumentException if Type is not compatible with the type of object

Veja Também

  • Componere\cast_by_ref


Casting

  • « Componere\cast
  • Gerenciamento de Erros »
  • PHP Manual
  • Componere Funções
  • Casting

Componere\cast_by_ref

(Componere 2 >= 2.1.2)

Componere\cast_by_ref — Casting

Descrição

Componere\cast_by_ref(Type $type, $object): Type

Parâmetros

type

A user defined type

object

An object with a user defined type compatible with Type

Valor Retornado

An object of type Type, cast from object, where members are references to object members

Erros/Exceções

Aviso

Shall throw InvalidArgumentException if the type of object is or is derived from an internal class

Aviso

Shall throw InvalidArgumentException if Type is an interface

Aviso

Shall throw InvalidArgumentException if Type is a trait

Aviso

Shall throw InvalidArgumentException if Type is an abstract

Aviso

Shall throw InvalidArgumentException if Type is not compatible with the type of object

Veja Também

  • Componere\cast


Gerenciamento e Registro de Erros

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Funções para Manuseamento de Erros
    • debug_backtrace — Gera uma rastreamento retroativo
    • debug_print_backtrace — Mostra um rastreamento retroativo
    • error_clear_last — Limpa o erro mais recente
    • error_get_last — Obtém o último erro ocorrido
    • error_log — Envia uma mensagem de erro para as rotinas de tratamento de erros definidas
    • error_reporting — Define quais erros do PHP são relatados
    • restore_error_handler — Restaura a função anterior de gerenciamento de erro
    • restore_exception_handler — Restaura a função de manipulação de exceção anteriormente definida
    • set_error_handler — Define uma função de usuário para manipulação de erro
    • set_exception_handler — Define uma função de manipulação de exceção definida pelo usuário
    • trigger_error — Gera uma mensagem a nível de usuário de erro/alerta/nota
    • user_error — Sinônimo de trigger_error


Introdução

Estas são funções para lidar com gerenciamento e registro de erros. Elas permitem a definição de regras personalizadas de gerenciamento de erros e e de maneiras de se registrá-los. Isto possibilita que os relators de erros sejam modificados e melhorados para se adequar às necessidades do programador.

Com as funções de registro, pode-se enviar mensagens diretamente para outras máquinas, para um email (ou email para um portal de pagers), para os registros do sistema etc., de forma que seja possível registrar e monitorar as partes mais importantes das aplicações e sites da internet.

As funções relatórios de erro permitem customizar quais níveis e tipos de retorno de erro são fornecidos, desde notas simples até funções personalizadas retornadas durante os erros.


  • « Dependências
  • Configurações em Execução »
  • PHP Manual
  • Instalação/Configuração
  • Instalação

Instalação

Nenhuma instalação é necessária para usar estas funções; elas fazem parte do núcleo do PHP.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração de Erros e de Registros
Nome | Padrão | Modificável | Registro de Alterações
error_reporting | NULL | INI_ALL |
display_errors | "1" | INI_ALL |
display_startup_errors | "1" | INI_ALL | Antes do PHP 8.0.0, o valor padrão era "0".
log_errors | "0" | INI_ALL |
log_errors_max_len | "1024" | INI_ALL | Sem efeito a partir do PHP 8.0.0, removido a partir do PHP 8.1.0.
ignore_repeated_errors | "0" | INI_ALL |
ignore_repeated_source | "0" | INI_ALL |
report_memleaks | "1" | INI_ALL |
track_errors | "0" | INI_ALL | Defasado a partir do PHP 7.2.0, removido a partir do PHP 8.0.0.
html_errors | "1" | INI_ALL |
xmlrpc_errors | "0" | INI_SYSTEM |
xmlrpc_error_number | "0" | INI_ALL |
docref_root | "" | INI_ALL |
docref_ext | "" | INI_ALL |
error_prepend_string | NULL | INI_ALL |
error_append_string | NULL | INI_ALL |
error_log | NULL | INI_ALL |
error_log_mode | 0o644 | INI_ALL | Disponível a partir do PHP 8.2.0
syslog.facility | "LOG_USER" | INI_SYSTEM | Disponível a partir do PHP 7.3.0.
syslog.filter | "no-ctrl" | INI_ALL | Disponível a partir do PHP 7.3.0.
syslog.ident | "php" | INI_SYSTEM | Disponível a partir do PHP 7.3.0.
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

error_reporting int

Define o nível das reportagens de erros. O parâmetro é ou um inteiro representando um campo de bits ou constantes nomeadas. Os níveis e constantes de reportagens de erros estão descritos em Constantes Pré-definidas e no arquivo php.ini. Para definir em tempo de execução, use a função error_reporting(). Consulte também a diretiva display_errors.

O padrão é E_ALL.

Antes do PHP 8.0.0, o valor padrão era: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED. Isto significa que os diagnósticos de nível E_NOTICE, E_STRICT e E_DEPRECATED não eram mostrados.

Nota: Constantes do PHP fora do PHP

Usar constantes do PHP fora do PHP, como no httpd.conf, não terão significado algum, portanto, nesses casos, os valores int são necessários. E, como níveis de erro serão adicionados ao longo do tempo, o valor máximo (para E_ALL) provavelmente será alterado. Portanto, no lugar de E_ALL, considere usar um valor maior para cobrir todos os campos de bits, tanto os de hoje como os do futuro, um valor numérico como 2147483647 (inclui todos os erros, não apenas E_ALL).

display_errors string

Este parâmetro determina se os erros devem ser mostrados na tela como parte da saída ou se devem ser ocultados do usuário.

O valor "stderr" envia os erros para stderr em vez de stdout.

Nota:

Este é um recurso para dar suporte ao desenvolvimento e nunca deve ser usado em sistemas de produção (por exemplo, sistemas conectados à internet).

Nota:

Embora display_errors possa ser configurado em tempo de execução (com ini_set()), ele não terá nenhum efeito se o script tiver erros fatais. Isso ocorre porque a ação desejada em tempo de execução não é executada.

display_startup_errors bool

Mesmo quando display_errors está ativado, erros que ocorrem durante a sequência de inicialização do PHP não são exibidos. É altamente recomendável manter display_startup_errors desativado, exceto para depuração.

log_errors bool

Informa se as mensagens de erro de script devem ser gravadas no registro de erros do servidor ou no local indicado por error_log. Essa opção é, portanto, específica do servidor.

Nota:

É altamente aconselhável usar o registro de erros em vez de exibir erros em sites de produção.

log_errors_max_len int

Define o comprimento máximo de log_errors em bytes. Em error_log, informações sobre a fonte são adicionadas. O padrão é 1024, e 0 permite não aplicar limite de comprimento. Esse tamanho é aplicado a erros registrados, erros exibidos e também a $php_errormsg, mas não a funções chamadas explicitamente como error_log().

Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada.
ignore_repeated_errors bool

Não registra mensagens repetidas. Erros repetidos devem ocorrer no mesmo arquivo e na mesma linha, a menos que ignore_repeated_source seja definido como verdadeiro.

ignore_repeated_source bool

Ignora a fonte da mensagem quando estiver ignorando mensagens repetidas. Quando esta configuração estiver On, não serão registrados erros com mensagens repetidas de arquivos ou linhas diferentes.

report_memleaks bool

Se este parâmetro estiver definido como On (o padrão), este parâmetro mostrará um relatório de vazamentos de memória detectados pelo gerenciador de memória do Zend. Este relatório será enviado para stderr em plataformas Posix. No Windows, ele será enviado ao depurador usando o OutputDebugString() e poderá ser visualizado com ferramentas como » DbgView. Este parâmetro só tem efeito em uma compilação de depuração e se error_reporting incluir E_WARNING na lista de erros permitidos.

track_errors bool

Se habilitado, a última mensagem de erro estará sempre presente na variável $php_errormsg.

html_errors bool

Se ativado, as mensagens de erro incluirão tags HTML. O formato para erros de HTML produz mensagens clicáveis que direcionam o usuário para uma página descrevendo o erro ou a função que está causando o erro. Essas referências são afetadas por docref_root e docref_ext.

Se desativado, a mensagem de erro será apenas texto simples.

xmlrpc_errors bool

Se ativado, desativa o relatório de erros normal e formata os erros como mensagem de erro XML-RPC.

xmlrpc_error_number int

Usado como o valor do elemento faultCode do XML-RPC.

docref_root string

O novo formato de erro contém uma referência a uma página que descreve o erro ou a função que está causando o erro. No caso de páginas de manual, pode-se baixar o manual no idioma próprio e definir esta diretiva ini para a URL da cópia local. Se a cópia local do manual puder ser alcançada por "/manual/" pode-se simplesmente usar docref_root=/manual/. Além disso, é necessário definir docref_ext para corresponder às extensões de arquivo da cópia local docref_ext=.html. É possível usar referências externas. Por exemplo, pode-se usar docref_root=http://manual/en/ ou docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"

Na maioria das vezes, é desejado que o valor docref_root termine com uma barra "/". Mas veja o segundo exemplo acima, que não tem nem precisa dela.

Nota:

Este é um recurso para dar suporte ao desenvolvimento, pois facilita a pesquisa da descrição de uma função. No entanto, nunca deve ser usado em sistemas de produção (por exemplo, sistemas conectados à internet).

docref_ext string

Consulte docref_root.

Nota:

O valor de docref_ext deve começar com um ponto ".".

error_prepend_string string

String a ser mostrado antes de uma mensagem de erro. Usado apenas quando a mensagem de erro é mostrada na tela. O propósito principal é prover a capacidade de prefixar uma marcação HTML adicional à mensagem de erro.

error_append_string string

String para mostrar após uma mensagem de erro. Usado apenas quando a mensagem de erro é mostrada na tela. O propósito principal é prover a capacidade de posfixar uma marcação HTML adicional à mensagem de erro.

error_log string

Nome do arquivo onde os erros de script devem ser registrados. O arquivo deve ter permissão de escrita pelo usuário do servidor da web. Se o valor especial syslog for usado, os erros serão enviados ao registrador de erros do sistema. No Unix, isso significa syslog(3) e no Windows significa o Log de Eventos. Veja também: syslog(). Se esta diretiva não estiver definida, os erros serão enviados para o registrador de erros SAPI. Por exemplo, é um log de erros no Apache ou stderr no CLI. Consulte também error_log().

error_log_mode int

Modo de arquivo para o arquivo definido em error_log.

syslog.facility string

Especifica qual tipo de programa está registrando a mensagem. Apenas efetivo se error_log estiver definido como "syslog".

syslog.filter string

Especifica o tipo de filtro para filtrar as mensagens registradas. Caracteres permitidos são passados sem modificações; todos os outros são escritos em sua representação hexadecimal prefixados com \x.

  • all - a string registrada será partida nos caracteres de novas linhas, e todos os caracteres serão passados inalterados
  • ascii - a string registrada será partida nos caracteres de novas linhas, e qualquer caractere ASCII de 7 bits não imprimível será escapado
  • no-ctrl - a string registrada será partida nos caracteres de novas linhas, e qualquer caractere não imprimível será escapado
  • raw - todos os caracteres são passados ao registrador do sistema logger inalterados, sem separação novas linhas (idêntico ao PHP antes do 7.3)
Esta configuração irá afetar o registro através de error_log definido para "syslog" e chamadas a syslog().

Nota:

O tipo de filtro raw está disponível a partir do PHP 7.3.8 e do PHP 7.4.0.

Esta diretiva não é suportada no Windows.
syslog.ident string

Especifica a string de identificação que é anexada a todas as mensagens. Somente é efetivo se error_log estiver definido como "syslog".


Constantes pré-definidas

As constantes abaixo estão sempre disponíveis como parte do núcleo do PHP.

Nota: Pode-se usar os nomes destas constantes no php.ini mas não fora do PHP, como no httpd.conf, onde deve-se usar os valores da máscara de bits no lugar deles.

Erros e Registros
Valor | Constante | Descrição | Nota
1 | E_ERROR (int) | Erros fatais em tempo de execução. Indicam erros a partir dos quais não é possível retomar a execução, como problema de alocação de memória por exemplo. A execução do script é terminada. |
2 | E_WARNING (int) | Alteras em tempo de executação (erros não fatais). A execução do script não é terminada |
4 | E_PARSE (int) | Erro de análise em tempo de compilação. Erros de análise somente devem ser gerados pelo analisador. |
8 | E_NOTICE (int) | Notas em tempo de execução. Indicam que o script encontrou algo que pode indicar um erro, mas também pode acontecer no curso normal de execução de um script. |
16 | E_CORE_ERROR (int) | Erros fatais que ocorrem durante a inicialização do PHP. É como um E_ERROR, exceto por ser gerado pelo núcleo do PHP. |
32 | E_CORE_WARNING (int) | Alertas (erros não fatais) que ocorrem na inicialização do PHP. É como um E_WARNING, exceto por ser gerado pelo núcleo do PHP. |
64 | E_COMPILE_ERROR (int) | Erros fatais em tempo de compilação. É como um E_ERROR, exceto por ser gerado pelo motor de scripts Zend. |
128 | E_COMPILE_WARNING (int) | Alertas em tempo de compilação (erros não fatais). É como um E_WARNING, exceto por ser gerado pelo motor de scripts Zend. |
256 | E_USER_ERROR (int) | Mensagem de erro gerada pelo usuário. É como um E_ERROR, exceto por ser gerada no código PHP através do uso da função trigger_error(). |
512 | E_USER_WARNING (int) | Mensagem de alerta gerada pelo usuário. É como um E_WARNING, exceto por ser gerada no código PHP através do uso da função trigger_error(). |
1024 | E_USER_NOTICE (int) | Mensagem de nota gerada pelo usuário. É como um E_NOTICE, exceto por ser gerada no código PHP através do uso da função trigger_error(). |
2048 | E_STRICT (int) | Habilita que o PHP sugira alterações no código para garantir a melhor interoperabilidade e compatibilidade do código com versões futuras. |
4096 | E_RECOVERABLE_ERROR (int) | Erro fatal capturável. Indica que um erro potencialmente perigoso ocorreu, mas não deixou o Motor em um estado instável. Se o erro não for capturado por um manipulador definido pelo usuário (veja também set_error_handler()), a aplicação é abortada como se fosse um E_ERROR. |
8192 | E_DEPRECATED (int) | Notas em tempo de execução. Quando habilitadas, são recebidos alertas sobre código que não funcionará em versões futuras. |
16384 | E_USER_DEPRECATED (int) | Mensagens de alerta definidas pelo usuário. É como um E_DEPRECATED, exceto por ser gerada no código PHP através do uso da função trigger_error(). |
32767 | E_ALL (int) | Todos os erros, alertas e notas. |

Os valores acima (tanto os númericos quanto os simbólicos), são usado para construir uma máscara de bits que especifica que erros devem ser reportados. Pode-se usar os operadores binários para combinar estes valores ou mascarar certos tipos de erros. Note que apenas '|', '~', '!', '^' e '&' serão compreendidos pelo php.ini.


Exemplos

Pode-se ver abaixo um exemplo de uso das capacidades de gerenciamento de erros no PHP. Define-se uma função de gerenciamento de erros que registra as informações dentro de um arquivo (usando um formato XML), e envia um e-mail ao desenvolvador se um erro crítico na lógica acontecer.

Exemplo #1 Usando gerenciamento de erro em um script

<?php
// fazendo o próprio gerenciamento de erro
error_reporting(0);

// função de gerenciamento de erro definida pelo usuário
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
// horário do erro
$dt = date("Y-m-d H:i:s (T)");

// Define um array associativo de strings de erro.
// Na realidade, as únicas entradas que devem ser
// consideradas são E_WARNING, E_NOTICE, E_USER_ERROR,
// E_USER_WARNING and E_USER_NOTICE
$errortype = array (
E_ERROR => 'Erro',
E_WARNING => 'Alerta',
E_PARSE => 'Erro de Interpretação',
E_NOTICE => 'Nota',
E_CORE_ERROR => 'Erro de Núcleo',
E_CORE_WARNING => 'Alerta de Núcleo',
E_COMPILE_ERROR => 'Erro de Compilaçã',
E_COMPILE_WARNING => 'Alerta de Compilação',
E_USER_ERROR => 'Erro de Usuário',
E_USER_WARNING => 'Alerta de Usuário',
E_USER_NOTICE => 'Nota de Usuário',
E_STRICT => 'Nota em Tempo de Execução',
E_RECOVERABLE_ERROR => 'Erro Fatal Recuperável'
);
// conjunto de erros para os quais um rastreamento de variáveis será gravado
$user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);

$err = "<errorentry>\n";
$err .= "\t<datetime>" . $dt . "</datetime>\n";
$err .= "\t<errornum>" . $errno . "</errornum>\n";
$err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n";
$err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
$err .= "\t<scriptname>" . $filename . "</scriptname>\n";
$err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";

if (in_array($errno, $user_errors)) {
$err .= "\t<vartrace>" . wddx_serialize_value($vars, "Variáveis") . "</vartrace>\n";
}
$err .= "</errorentry>\n\n";

// para testes:
// echo $err;

// grava no registro de erros, e envia e-mail se houver um erro crítico
error_log($err, 3, "/usr/local/php/error.log");
if ($errno == E_USER_ERROR) {
mail("phpdev@example.com", "Critical User Error", $err);
}
}

function distance($vect1, $vect2)
{
if (!is_array($vect1) || !is_array($vect2)) {
trigger_error("Parâmetros incorretos, arrays esperados", E_USER_ERROR);
return NULL;
}

if (count($vect1) != count($vect2)) {
trigger_error("Vetores devem ser do mesmo tamanho", 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("Coordenada $i no vetor 1 não é um número, usando zero",
E_USER_WARNING);
$c1 = 0.0;
}
if (!is_numeric($c2)) {
trigger_error("Coordenada $i no vetor 2 não é um número, usando zero",
E_USER_WARNING);
$c2 = 0.0;
}
$d += $c2*$c2 - $c1*$c1;
}
return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

// constante não definida, gera um alerta
$t = I_AM_NOT_DEFINED;

// define alguns "vetores"
$a = array(2, 3, "foo");
$b = array(5.5, 4.3, -1.6);
$c = array(1, -3);

// gera um erro de usuário
$t1 = distance($c, $b) . "\n";

// gera um outro erro de usuário
$t2 = distance($b, "eu não sou um array") . "\n";

// gera um alerta
$t3 = distance($a, $b) . "\n";

?>


Funções para Manuseamento de Erros

Veja Também

Veja também syslog().

Índice

  • debug_backtrace — Gera uma rastreamento retroativo
  • debug_print_backtrace — Mostra um rastreamento retroativo
  • error_clear_last — Limpa o erro mais recente
  • error_get_last — Obtém o último erro ocorrido
  • error_log — Envia uma mensagem de erro para as rotinas de tratamento de erros definidas
  • error_reporting — Define quais erros do PHP são relatados
  • restore_error_handler — Restaura a função anterior de gerenciamento de erro
  • restore_exception_handler — Restaura a função de manipulação de exceção anteriormente definida
  • set_error_handler — Define uma função de usuário para manipulação de erro
  • set_exception_handler — Define uma função de manipulação de exceção definida pelo usuário
  • trigger_error — Gera uma mensagem a nível de usuário de erro/alerta/nota
  • user_error — Sinônimo de trigger_error


Gera uma rastreamento retroativo

  • « Funções para Manuseamento de Erros
  • debug_print_backtrace »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Gera uma rastreamento retroativo

debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

debug_backtrace — Gera uma rastreamento retroativo

Descrição

debug_backtrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT, int $limit = 0): array

debug_backtrace() gera um rastreamento retroativo do PHP.

Parâmetros

options

Este parâmetro é uma máscara de bits para as seguintes opções:

Opções de debug_backtrace()
DEBUG_BACKTRACE_PROVIDE_OBJECT | Define se o índice "object" deve ou não ser preenchido.
DEBUG_BACKTRACE_IGNORE_ARGS | Define se o índice "args" deve ou não ser omitido, e consequentemente todos os argumentos de métodos e funções, para economizar memória.

Nota:

Existem quatro combinações possíveis:

Opções de debug_backtrace()
debug_backtrace() | Preenche ambos os índices
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)
debug_backtrace(1)
debug_backtrace(0) | Omite o índice "object" e preenche o índice "args".
debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) | Omite o índice "object" e o índice "args".
debug_backtrace(2)
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS) | Preenche o índice "object" e omite o índice "args".
debug_backtrace(3)

limit

Este parâmetro pode ser usado para limitar o número de estruturas de pilha retornados. Por padrão (limit=0) todas as estruturas são retornadas.

Valor Retornado

Retorna um array de arrays associativos. Os elementos possíveis retornados são os seguintes:

Elementos possíveis retornados de debug_backtrace()
Nome | Tipo | Descrição
function | string | O nome da função atual. Consulte também __FUNCTION__.
line | int | O número da linha atual. Consulte também __LINE__.
file | string | O nome do arquivo atual. Consulte também __FILE__.
class | string | O nome da classe atual. Consulte também __CLASS__
object | object | O objeto atual.
type | string | O tipo de chamada atual. Se for chamada de método, "->" é retornado. Se for chamada de método estático, "::" é retornado. Se for chamada de função, nada é retornado.
args | array | Se for dentro de uma função, isto lista os arumentos da função. Se for dentro de um arquivo incluído, isto lista o nome do arquivo incluído.

Exemplos

Exemplo #1 Exemplo de debug_backtrace()

<?php
// filename: /tmp/a.php

function a_test($str)
{
echo "\nHi: $str";
var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// filename: /tmp/b.php
include_once '/tmp/a.php';
?>

Resultados similares ao seguinte ao executar /tmp/b.php:

Hi: friend
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
}
[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"
  }
}

Veja Também

  • trigger_error() - Gera uma mensagem a nível de usuário de erro/alerta/nota
  • debug_print_backtrace() - Mostra um rastreamento retroativo


Mostra um rastreamento retroativo

  • « debug_backtrace
  • error_clear_last »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Mostra um rastreamento retroativo

debug_print_backtrace

(PHP 5, PHP 7, PHP 8)

debug_print_backtrace — Mostra um rastreamento retroativo

Descrição

debug_print_backtrace(int $options = 0, int $limit = 0): void

A função debug_print_backtrace() mostra um rastreamento retroativo do PHP. Ela mostra as chamadas de função, arquivos requeridos ou incluídos e avalia outra coisas (como em eval()).

Parâmetros

options

Este parâmetro é uma máscara de bits para as opções a seguir:

Opções de debug_print_backtrace()
DEBUG_BACKTRACE_IGNORE_ARGS Omitir os índices de "args", e portanto todos os argumentos de funções/métodos, para economizar memória.

limit

Este parâmetro pode ser usado para limitar o número de seções de pilha mostradas. Por padrão (limit=0) ela mostra todas as seções da pilha.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de debug_print_backtrace()

<?php
// arquivo include.php

function a() {
b();
}

function b() {
c();
}

function c(){
debug_print_backtrace();
}

a();

?>
<?php
// arquivo test.php
// este é o arquivo que deve ser executado

include 'include.php';
?>

O exemplo acima produzirá algo semelhante a:

#0  c() called at [/tmp/include.php:10]
#1  b() called at [/tmp/include.php:6]
#2  a() called at [/tmp/include.php:17]
#3  include(/tmp/include.php) called at [/tmp/test.php:3]

Veja Também

  • debug_backtrace() - Gera uma rastreamento retroativo


Limpa o erro mais recente

  • « debug_print_backtrace
  • error_get_last »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Limpa o erro mais recente

error_clear_last

(PHP 7, PHP 8)

error_clear_last — Limpa o erro mais recente

Descrição

error_clear_last(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Limpa o erro mais recente, fazendo com que não seja possível recuperá-los com error_get_last().

Exemplos

Exemplo #1 Um exemplo de error_clear_last()

<?php
var_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());

@$a = $b;

var_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());
?>

O exemplo acima produzirá algo semelhante a:

NULL
NULL
array(4) {
  ["type"]=>
  int(8)
  ["message"]=>
  string(21) "Undefined variable: b"
  ["file"]=>
  string(9) "%s"
  ["line"]=>
  int(6)
}
NULL

Veja Também

  • Constantes de erro


Obtém o último erro ocorrido

  • « error_clear_last
  • error_log »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Obtém o último erro ocorrido

error_get_last

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

error_get_last — Obtém o último erro ocorrido

Descrição

error_get_last(): ?array

Obtém informações sobre o último erro que ocorreu.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array associativo que descreve o último erro com as chaves "type", "message", "file" e "line". Se o erro foi causado por uma função interna do PHP, então a "message" começa com o nome da função. Retorna null se ainda não houve erro.

Exemplos

Exemplo #1 Um exemplo de error_get_last()

<?php
echo $a;
print_r(error_get_last());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)

Veja Também

  • Constantes de erro
  • Variável $php_errormsg
  • error_clear_last() - Limpa o erro mais recente
  • Diretiva display_errors
  • Diretiva html_errors
  • Diretiva xmlrpc_errors


Envia uma mensagem de erro para as rotinas de tratamento de erros definidas

  • « error_get_last
  • error_reporting »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Envia uma mensagem de erro para as rotinas de tratamento de erros definidas

error_log

(PHP 4, PHP 5, PHP 7, PHP 8)

error_log — Envia uma mensagem de erro para as rotinas de tratamento de erros definidas

Descrição

error_log(
string $message,
int $message_type = 0,
?string $destination = null,
?string $additional_headers = null
): bool

Envia uma mensagem de erro para o registro de erros do servidor web ou para um arquivo.

Parâmetros

message

A mensagem de erro que deve ser registrada.

message_type

Indica para onde o erro deve ser direcionado. Os possíveis tipos de mensagem são os seguintes:

Tipos de logs de error_log()
0 | message é enviado para sistema de logs do PHP, usando o mecanismo de log do sistema operacional ou um arquivo, dependendo do que a diretiva de configuração error_log estiver definida. Esta é a opção padrão.
1 | message é enviado por e-mail para o endereço no parâmetro destination. Este é o único tipo de mensagem em que o quarto parâmetro, additional_headers, é utilizado.
2 | Não é mais uma opção.
3 | message é adicionada ao arquivo destination. Uma nova linha não é automaticamente adicionada ao final da string message.
4 | message é enviado diretamente para o manipulador de log do SAPI.

destination

O destino. Seu significado depende do parâmetro message_type, conforme descrito acima.

additional_headers

Os cabeçalhos adicionais. É usado quando o parâmetro message_type está definido como 1. Este tipo de mensagem usa a mesma função interna que mail() utiliza.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Se message_type for zero, esta função sempre retorna true, independentemente de o erro poder ser registrado ou não.

Registro de Alterações

Versão | Descrição
8.0.0 | destination e additional_headers agora permitem null.

Exemplos

Exemplo #1 Exemplos error_log()

<?php
// Envia uma notificação através do registro do servidor se não conseguirmos
// conectar ao banco de dados.
if (!Ora_Logon($username, $password)) {
error_log("Banco de dados Oracle não disponível!", 0);
}

// Notificar o administrador por e-mail se ficarmos sem FOO
if (!($foo = allocate_new_foo())) {
error_log("Grande problema, estamos sem FOOs!", 1,
"operator@example.com");
}

// Outra forma de chamar error_log():
error_log("Você cometeu um erro!", 3, "/var/tmp/my-errors.log");
?>

Notas

Aviso

error_log() não é seguro para binários. message será truncado pelo caractere nulo.

Dica

message não deve conter o caractere nulo. Observe que message pode ser enviado para arquivo, e-mail, syslog, etc. Use a função apropriada de conversão/escape, como base64_encode(), rawurlencode() ou addslashes() antes de chamar error_log().


Define quais erros do PHP são relatados

  • « error_log
  • restore_error_handler »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Define quais erros do PHP são relatados

error_reporting

(PHP 4, PHP 5, PHP 7, PHP 8)

error_reporting — Define quais erros do PHP são relatados

Descrição

error_reporting(?int $error_level = null): int

A função error_reporting() define a diretiva error_reporting em tempo de execução. O PHP possui muitos níveis de erros, e o uso desta função define esse nível para a duração (tempo de execução) do seu script. Se o parâmetro opcional error_level não for definido, a função error_reporting() retornará apenas o nível de relatório de erros atual.

Parâmetros

error_level

O novo nível de error_reporting. Pode ser uma máscara de bits ou constantes nomeadas. É altamente recomendado o uso de constantes nomeadas para garantir compatibilidade com futuras versões. Conforme são adicionados níveis de erro, o intervalo de inteiros aumenta, então os níveis de erro baseados em inteiros mais antigos nem sempre se comportarão como esperado.

As constantes de nível de erro disponíveis e os significados reais desses níveis de erro são descritos nas constantes predefinidas.

Valor Retornado

Retorna o nível de error_reporting antes que ele seja alterado para error_level.

Nota: O operador de controle de erro @ altera o error_level durante o tratamento de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | error_level agora permite null.

Exemplos

Exemplo #1 Exemplo error_reporting()

<?php

// Desativar todos os relatórios de erros
error_reporting(0);

// Relatar erros simples durante a execução
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Relatar E_NOTICE também pode ser útil (para relatar variáveis não inicializadas
// ou capturar erros de digitação nos nomes das variáveis...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Relatar todos os erros, exceto E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Relatar todos os erros do PHP
error_reporting(E_ALL);

// Relatar todos os erros do PHP
error_reporting(-1);

// O mesmo que error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Notas

Dica

Passar o valor -1 mostrará todos os erros possíveis, mesmo quando novos níveis e constantes forem adicionados em futuras versões do PHP. O comportamento é equivalente a passar a constante E_ALL.

Veja Também

  • A diretiva display_errors
  • A diretiva html_errors
  • A diretiva xmlrpc_errors
  • O operador error control
  • ini_set() - Sets the value of a configuration option


Restaura a função anterior de gerenciamento de erro

  • « error_reporting
  • restore_exception_handler »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Restaura a função anterior de gerenciamento de erro

restore_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

restore_error_handler — Restaura a função anterior de gerenciamento de erro

Descrição

restore_error_handler(): true

Usada após mudar a função que gerencia os erros usando set_error_handler(), para reverter para a função anterior (que pode ser a função interna ou outra função definida pelo usuário).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna true.

Exemplos

Exemplo #1 Exemplo de restore_error_handler()

Decide se unserialize() causou um erro, então restaura o gerenciador de erro original.

<?php
function unserialize_handler($errno, $errstr)
{
echo "Valor serializado inválido.\n";
}

$serialized = 'foo';
set_error_handler('unserialize_handler');
$original = unserialize($serialized);
restore_error_handler();
?>

O exemplo acima produzirá:

Valor serializado inválido.

Veja Também

  • error_reporting() - Define quais erros do PHP são relatados
  • set_error_handler() - Define uma função de usuário para manipulação de erro
  • restore_exception_handler() - Restaura a função de manipulação de exceção anteriormente definida
  • trigger_error() - Gera uma mensagem a nível de usuário de erro/alerta/nota


Restaura a função de manipulação de exceção anteriormente definida

  • « restore_error_handler
  • set_error_handler »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Restaura a função de manipulação de exceção anteriormente definida

restore_exception_handler

(PHP 5, PHP 7, PHP 8)

restore_exception_handler — Restaura a função de manipulação de exceção anteriormente definida

Descrição

restore_exception_handler(): true

Usada após alteração da função de manipulação de exceção ao usar set_exception_handler(), para reverter ao manipulador de exceção anterior (que pode ser o integrado ou uma função definida pelo usuário).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna true.

Exemplos

Exemplo #1 Exemplo restore_exception_handler()

<?php
function manipulador_excecao_1(Exception $e)
{
echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
}

function manipulador_excecao_2(Exception $e)
{
echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
}

set_exception_handler('manipulador_excecao_1');
set_exception_handler('manipulador_excecao_2');

restore_exception_handler();

throw new Exception('Isto dispara o primeiro manipulador de exceção...');
?>

O exemplo acima produzirá:

[manipulador_excecao_1] Isto dispara o primeiro manipulador de exceção...

Veja Também

  • set_exception_handler() - Define uma função de manipulação de exceção definida pelo usuário
  • set_error_handler() - Define uma função de usuário para manipulação de erro
  • restore_error_handler() - Restaura a função anterior de gerenciamento de erro
  • error_reporting() - Define quais erros do PHP são relatados


Define uma função de usuário para manipulação de erro

  • « restore_exception_handler
  • set_exception_handler »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Define uma função de usuário para manipulação de erro

set_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

set_error_handler — Define uma função de usuário para manipulação de erro

Descrição

set_error_handler(?callable $callback, int $error_levels = E_ALL): ?callable

Define uma função de usuário (callback) para lidar com erros em um script.

Esta função pode ser usada para definir manipuladores de erros customizados em tempo de execução, por exemplo em aplicações que precisem limpar arquivos/dados quando um erro crítico ocorrer, ou no disparo de um erro em resposta a certas condições (usando trigger_error()).

É importante ressaltar que o manipulador padrão de erros do PHP é completamente ignorado para os tipos de erro especificados por error_levels a menos que a função de retorno devolva false. As configurações de error_reporting() não terão efeito e o manipulador de erro será chamado de qualquer maneira - entretanto, ainda será possível ler o valor atual de error_reporting e atuar apropriadamente.

Note também que é responsabilidade do manipulador para a execução do script se for necessário, chamando-se exit(). Se a função de manipulação de erro simplesmente retornar, a execução do script continuará com a declaração seguinte à que causou o erro.

Os seguintes tipos de erro não podem ser manipulados com uma função definida pelo usuário: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING independentemente de onde eles surgirem, e a maior parte dos erros E_STRICT originados no arquivo onde a função set_error_handler() for chamada.

Se erros ocorrerem antes que o script seja executado (ex.: em envios de arquivos), o manipulador customizado de erros não poderá ser chamado já que ainda não estará registrado nesse momento.

Parâmetros

callback

Se null for passado, o manipulador será redefinido a seu estado padrão. Caso contrário, o manipulador é uma função de retorno com a seguinte assinatura:

handler(
int $errno,
string $errstr,
string $errfile = ?,
int $errline = ?,
array $errcontext = ?
): bool
errno
O primeiro parâmetro, errno, que conterá o nível do erro, como um inteiro.
errstr
O segundo parâmetro, errstr, que conterá a mensagem de erro, como uma string.
errfile
Se a função de retorno aceitar um terceiro parâmetro, errfile, será passado o nome do arquivo no qual o erro se originou, como uma string.
errline
Se a função de retorno aceitar um quarto parâmetro, errline, será passado o número da linha onde o erro ocorreu, como um inteiro.
errcontext
Se a função de retorno aceitar um quinto parâmetro, errcontext, será passado um array que aponta para a tabela de símbolos ativa no ponto onde o erro ocorreu. Em outras palavras, errcontext conterá um array com cada variável existente no escopo em que o erro surgiu. Manipuladores de erro de usuário não devem modificar o contexto de erro.
Aviso

Este parâmetro tornou-se DEFASADO a partir do PHP 7.2.0, e foi REMOVIDO a partir do PHP 8.0.0. Se a função definir este parâmetro sem um valor padrão, um erro do tipo "too few arguments" será emitido quando ela for chamada.

Se a função retornar false, o manipulador de erros normal continua.

error_levels

Pode ser usado para mascarar a chamada da função callback da mesma forma que a configuração ini error_reporting controla quais erros são mostrados. Sem a definição desta máscara, a função callback será chamada para todo erro, indenpendentemente da configuração de error_reporting.

Valor Retornado

Retorna o manipulador de erro anterior (se existente). Se o manipulador interno for usado, null é retornado. Se o manipulador de erro anterior for um método de classe, esta função retornará um array indexado com a classe e o nome do método.

Registro de Alterações

Versão | Descrição
8.0.0 | errcontext foi removido e não mais será passado para chamadas de retorno de usuário.
7.2.0 | errcontext tornou-se defasado. O uso deste parâmetro agora emite uma nota E_DEPRECATED.

Exemplos

Exemplo #1 Manipulação de erro com set_error_handler() e trigger_error()

O exemplo abaixo mostra a manipulação de exceções internas através de disparo de erros e uso de função definida pelo usuário:

<?php
// função de manipulação de erro
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
if (!(error_reporting() & $errno)) {
// Este código de erro não está incluído em error_reporting, então será
// passado ao manipulador padrão de erros do PHP
return false;
}

// $errstr pode precisar de escape:
$errstr = htmlspecialchars($errstr);

switch ($errno) {
case E_USER_ERROR:
echo "<b>Meu ERRO</b> [$errno] $errstr<br />\n";
echo " Erro fatal na linha $errline no arquivo $errfile";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
echo "Abortando...<br />\n";
exit(1);

case E_USER_WARNING:
echo "<b>Meu ALERTA</b> [$errno] $errstr<br />\n";
break;

case E_USER_NOTICE:
echo "<b>Minha NOTA</b> [$errno] $errstr<br />\n";
break;

default:
echo "Tipo de erro desconhecido: [$errno] $errstr<br />\n";
break;
}

/* Não executa o manipulador interno do PHP */
return true;
}

// função para testar a manipulação de erro
function scale_by_log($vect, $scale)
{
if (!is_numeric($scale) || $scale <= 0) {
trigger_error("log(x) para x <= 0 é indefinido, você usou: escala = $scale", E_USER_ERROR);
}

if (!is_array($vect)) {
trigger_error("Vetor de entrada incorreto, esperado array de valores", E_USER_WARNING);
return null;
}

$temp = array();
foreach($vect as $pos => $value) {
if (!is_numeric($value)) {
trigger_error("Valor na posição $pos não é um número, usando 0 (zero)", E_USER_NOTICE);
$value = 0;
}
$temp[$pos] = log($scale) * $value;
}

return $temp;
}

// define para o manipulador de erro de usuário
$old_error_handler = set_error_handler("myErrorHandler");

// dispara alguns erros, primeiro define um array misto com um item não numérico
echo "vetor a\n";
$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// agora gera um segundo array
echo "----\nvetor b - uma nota (b = log(PI) * a)\n";
/* Valor na posição $pos não é um número, usando 0 (zero) */
$b = scale_by_log($a, M_PI);
print_r($b);

// isto é um problema, passando uma string ao invés de um array
echo "----\nvetor c - um alerta\n";
/* Vetor de entrada incorreto, esperado array de valores */
$c = scale_by_log("not array", 2.3);
var_dump($c); // NULL

// aqui um erro crítico, log de zero ou número negativo não é definido
echo "----\nvetor d - erro fatal\n";
/* log(x) para x <= 0 é indefinido, você usou: escala = $scale" */
$d = scale_by_log($a, -2.5);
var_dump($d); // Nunca alcançado
?>

O exemplo acima produzirá algo semelhante a:

vetor a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vetor b - uma nota (b = log(PI) * a)
<b>Minha NOTA</b> [1024] Valor na posição 2 não é um número, usando 0 (zero)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vetor c - um alerta
<b>Meu ALERTA</b> [512] Vetor de entrada incorreto, esperado array de valores<br />
NULL
----
vetor d - erro fatal
<b>Meu ERRO</b> [256] log(x) para x <= 0 é indefinido, você usou: escala = -2.5<br />
  Erro fatal na linha 35 no arquivo trigger_error.php, PHP 5.2.1 (FreeBSD)<br />
Abortando...<br />

Veja Também

  • ErrorException
  • error_reporting() - Define quais erros do PHP são relatados
  • restore_error_handler() - Restaura a função anterior de gerenciamento de erro
  • trigger_error() - Gera uma mensagem a nível de usuário de erro/alerta/nota
  • Constantes de nível de erro


Define uma função de manipulação de exceção definida pelo usuário

  • « set_error_handler
  • trigger_error »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Define uma função de manipulação de exceção definida pelo usuário

set_exception_handler

(PHP 5, PHP 7, PHP 8)

set_exception_handler — Define uma função de manipulação de exceção definida pelo usuário

Descrição

set_exception_handler(?callable $callback): ?callable

Define o manipulador de exceção padrão se uma exceção não for capturada dentro de um bloco try/catch. A execução irá parar após a função definida no parâmetro callback for chamada.

Parâmetros

callback

A função a ser chamada quando uma exceção não capturada ocorrer. Esta função de manipulação precisa aceitar um parâmetro, que será o objeto Throwable que foi lançado. Tanto Error quanto Exception implementam a interface Throwable. Esta é a assinatura do manipulador:

handler(Throwable $ex): void

null pode ser passardo no lugar, para redefinir este manipulador ao seu estado inicial.

Valor Retornado

Retorna o manipulador de exceção anteriormente definido, ou null em caso de erro. Se nenhum manipulador anterior estava definido, null também é retornado.

Exemplos

Exemplo #1 Exemplo de set_exception_handler()

<?php
function exception_handler(Throwable $exception) {
echo "Exceção não capturada: " , $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new Exception('Exceção Não Capturada');
echo "Não Executado\n";
?>

Veja Também

  • restore_exception_handler() - Restaura a função de manipulação de exceção anteriormente definida
  • restore_error_handler() - Restaura a função anterior de gerenciamento de erro
  • error_reporting() - Define quais erros do PHP são relatados
  • Exceções


Gera uma mensagem a nível de usuário de erro/alerta/nota

  • « set_exception_handler
  • user_error »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Gera uma mensagem a nível de usuário de erro/alerta/nota

trigger_error

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

trigger_error — Gera uma mensagem a nível de usuário de erro/alerta/nota

Descrição

trigger_error(string $message, int $error_level = E_USER_NOTICE): true

Usado para disparar uma condição de erro, pode ser usado em conjunto com o gerenciador de erro interno, ou com uma função definida pelo usuário que tenha sido definida como novo gerenciador de erro (set_error_handler()).

Esta função é útil quando for necessário gerar uma resposta em particular a uma exceção em tempo de execução.

Parâmetros

message

A mensagem de erro designada para este erro. É limitada a 1024 bytes em tamanho. Quaisquer caracteres adicionais além de 1024 bytes serão truncados.

error_level

O tipo de erro designado para este erro. Funciona apenas com a família de constantes E_USER, e o padrão é E_USER_NOTICE.

Valor Retornado

Sempre retorna true.

Erros/Exceções

Esta função lança uma exceção ValueError se error_level não for uma das constantes E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE ou E_USER_DEPRECATED.

Registro de Alterações

Versão | Descrição
8.0.0 | A função agora lança uma exceção ValueError se um error_level inválido for especificado. Anteriormente, retornava false.

Exemplos

Exemplo #1 Exemplo de trigger_error()

Consulte set_error_handler() para um exemplo mais extensivo.

<?php
if (assert($divisor == 0)) {
trigger_error("Não é possível dividir por zero", E_USER_ERROR);
}
?>

Notas

Aviso

As entidades HTML contidas no parâmetro message não são escapadas. Utilize htmlentities() na mensagem se for necessário exibir o erro em um navegador.

Veja Também

  • error_reporting() - Define quais erros do PHP são relatados
  • set_error_handler() - Define uma função de usuário para manipulação de erro
  • restore_error_handler() - Restaura a função anterior de gerenciamento de erro
  • As constantes de nível de erro


Sinônimo de trigger_error

  • « trigger_error
  • FFI »
  • PHP Manual
  • Funções para Manuseamento de Erros
  • Sinônimo de trigger_error

user_error

(PHP 4, PHP 5, PHP 7, PHP 8)

user_error — Sinônimo de trigger_error()

Descrição

Esta função é um apelido para: trigger_error().


Interface de função externa

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Basic FFI usage
    • PHP Callbacks
    • A Complete PHP/FFI/preloading Example
  • FFI — Main interface to C code and data
    • FFI::addr — Creates an unmanaged pointer to C data
    • FFI::alignof — Gets the alignment
    • FFI::arrayType — Dynamically constructs a new C array type
    • FFI::cast — Performs a C type cast
    • FFI::cdef — Creates a new FFI object
    • FFI::free — Releases an unmanaged data structure
    • FFI::isNull — Checks whether a FFI\CData is a null pointer
    • FFI::load — Loads C declarations from a C header file
    • FFI::memcmp — Compares memory areas
    • FFI::memcpy — Copies one memory area to another
    • FFI::memset — Fills a memory area
    • FFI::new — Creates a C data structure
    • FFI::scope — Instantiates an FFI object with C declarations parsed during preloading
    • FFI::sizeof — Gets the size of C data or types
    • FFI::string — Creates a PHP string from a memory area
    • FFI::type — Creates an FFI\CType object from a C declaration
    • FFI::typeof — Gets the FFI\CType of FFI\CData
  • FFI\CData — C Data Handles
  • FFI\CType — C Type Handles
    • FFI\CType::getAlignment — Description
    • FFI\CType::getArrayElementType — Description
    • FFI\CType::getArrayLength — Description
    • FFI\CType::getAttributes — Description
    • FFI\CType::getEnumKind — Description
    • FFI\CType::getFuncABI — Description
    • FFI\CType::getFuncParameterCount — Description
    • FFI\CType::getFuncParameterType — Description
    • FFI\CType::getFuncReturnType — Description
    • FFI\CType::getKind — Description
    • FFI\CType::getName — Description
    • FFI\CType::getPointerType — Description
    • FFI\CType::getSize — Description
    • FFI\CType::getStructFieldNames — Description
    • FFI\CType::getStructFieldOffset — Description
    • FFI\CType::getStructFieldType — Description
  • FFI\Exception — FFI Exceptions
  • FFI\ParserException — FFI Parser Exceptions


Introdução

Esta extensão permite o carregamento de bibliotecas compartilhadas (.DLL ou .so), a chamada de funções escritas em C e o acesso à estruturas de dados de C em PHP puro, sem a necessidade de maiores conhecimentos da API de extensões do Zend, e sem a necessidade de aprender uma terceira linguagem “intermediária”. A API pública é implementada como uma única classe FFI com diversos métodos estáticos (alguns deles podem ser chamados dinamicamente) e métodos de objetos sobrecarregados, que realizam a interação com os dados em C.

Cuidado

A FFI é perigosa, visto que permite a interface com o sistema em um nível muito baixo. A extensão FFI deve ser usada apenas por desenvolvedores que possuam experiência com C e com as APIs de C utilizadas. Para minimizar o risco, a utilização da API da FFI pode ser restringida com a opção ffi.enable do php.ini.

Nota:

A extensão FFI não torna a API de extensão clássica do PHP obsoleta; ela é apenas fornecida para interface ad-hoc com funções e estruturas de dados em C.

Dica

Atualmente, acessar estruturas de dados com a FFI é significativamente mais lento (aproximadamente 2 vezes) do que acessar arrays e objetos nativos de PHP. Portanto, não faz sentido utilizar a extensão FFI para ganhos de performance; entretanto, pode fazer sentido utilizá-la para reduzir o consumo de memória.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

This extension requires the » libffi library to be installed.


Instalação

To enable the FFI extension, PHP has to be configured with --with-ffi.

Windows users have to include php_ffi.dll into php.ini to enable the FFI extension.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

FFI Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
ffi.enable | "preload" | INI_SYSTEM |
ffi.preload | "" | INI_SYSTEM |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

ffi.enable string

Allows enabling ("true") or disabling ("false") FFI API usage, or restricting it only to the CLI SAPI and preloaded files ("preload").

The FFI API restrictions only affect the FFI class, but not overloaded functions of FFI\CData objects. This means that it is possible to create some FFI\CData objects in preloaded files, and then to use these directly in PHP scripts.

ffi.preload string

Allows preloading of FFI bindings during startup, which is not possible with FFI::load() if opcache.preload_user is set. This directive accepts a DIRECTORY_SEPARATOR delimited list of filenames. The preloaded bindings can be accessed by calling FFI::scope().


  • « Tipos de Recurso
  • Exemplos »
  • PHP Manual
  • FFI
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Exemplos

Índice

  • Basic FFI usage
  • PHP Callbacks
  • A Complete PHP/FFI/preloading Example


Basic FFI usage

Before diving into the details of the FFI API, lets take a look at a few examples demonstrating the simplicity of the FFI API usage for regular tasks.

Nota:

Some of these examples require libc.so.6 and as such will not work on systems where it is not available.

Exemplo #1 Calling a function from shared library

<?php
// create FFI object, loading libc and exporting function printf()
$ffi = FFI::cdef(
"int printf(const char *format, ...);", // this is a regular C declaration
"libc.so.6");
// call C's printf()
$ffi->printf("Hello %s!\n", "world");
?>

O exemplo acima produzirá:

Hello world!

Nota:

Note that some C functions need specific calling conventions, e.g. __fastcall, __stdcall or ,__vectorcall.

Exemplo #2 Calling a function, returning a structure through an argument

<?php
// create gettimeofday() binding
$ffi = FFI::cdef("
typedef unsigned int time_t;
typedef unsigned int suseconds_t;

struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};

struct timezone {
int tz_minuteswest;
int tz_dsttime;
};

int gettimeofday(struct timeval *tv, struct timezone *tz);
", "libc.so.6");
// create C data structures
$tv = $ffi->new("struct timeval");
$tz = $ffi->new("struct timezone");
// call C's gettimeofday()
var_dump($ffi->gettimeofday(FFI::addr($tv), FFI::addr($tz)));
// access field of C data structure
var_dump($tv->tv_sec);
// print the whole C data structure
var_dump($tz);
?>

O exemplo acima produzirá algo semelhante a:

int(0)
int(1555946835)
object(FFI\CData:struct timezone)#3 (2) {
  ["tz_minuteswest"]=>
  int(0)
  ["tz_dsttime"]=>
  int(0)
}

Exemplo #3 Accessing existing C variables

<?php
// create FFI object, loading libc and exporting errno variable
$ffi = FFI::cdef(
"int errno;", // this is a regular C declaration
"libc.so.6");
// print C's errno
var_dump($ffi->errno);
?>

O exemplo acima produzirá:

int(0)

Exemplo #4 Creating and Modifying C variables

<?php
// create a new C int variable
$x = FFI::new("int");
var_dump($x->cdata);

// simple assignment
$x->cdata = 5;
var_dump($x->cdata);

// compound assignment
$x->cdata += 2;
var_dump($x->cdata);
?>

O exemplo acima produzirá:

int(0)
int(5)
int(7)

Exemplo #5 Working with C arrays

<?php
// create C data structure
$a = FFI::new("long[1024]");
// work with it like with a regular PHP array
for ($i = 0; $i < count($a); $i++) {
$a[$i] = $i;
}
var_dump($a[25]);
$sum = 0;
foreach ($a as $n) {
$sum += $n;
}
var_dump($sum);
var_dump(count($a));
var_dump(FFI::sizeof($a));
?>

O exemplo acima produzirá:

int(25)
int(523776)
int(1024)
int(8192)

Exemplo #6 Working with C enums

<?php
$a = FFI::cdef('typedef enum _zend_ffi_symbol_kind {
ZEND_FFI_SYM_TYPE,
ZEND_FFI_SYM_CONST = 2,
ZEND_FFI_SYM_VAR,
ZEND_FFI_SYM_FUNC
} zend_ffi_symbol_kind;
');
var_dump($a->ZEND_FFI_SYM_TYPE);
var_dump($a->ZEND_FFI_SYM_CONST);
var_dump($a->ZEND_FFI_SYM_VAR);
?>

O exemplo acima produzirá:

int(0)
int(2)
int(3)


PHP Callbacks

It is possible to assign a PHP closure to a native variable of function pointer type or to pass it as a function argument:

Exemplo #1 Assigning a PHP Closure to a C function pointer

<?php
$zend = FFI::cdef("
typedef int (*zend_write_func_t)(const char *str, size_t str_length);
extern zend_write_func_t zend_write;
");

echo "Hello World 1!\n";

$orig_zend_write = clone $zend->zend_write;
$zend->zend_write = function($str, $len) {
global $orig_zend_write;
$orig_zend_write("{\n\t", 3);
$ret = $orig_zend_write($str, $len);
$orig_zend_write("}\n", 2);
return $ret;
};
echo "Hello World 2!\n";
$zend->zend_write = $orig_zend_write;
echo "Hello World 3!\n";
?>

O exemplo acima produzirá:

Hello World 1!
{
        Hello World 2!
}
Hello World 3!
Although this works, this functionality is not supported on all libffi platforms, is not efficient and leaks resources by the end of request.
Dica

It is therefore recommended to minimize the usage of PHP callbacks.


A Complete PHP/FFI/preloading Example

php.ini

ffi.enable=preload
opcache.preload=preload.php

preload.php

<?php
FFI::load(__DIR__ . "/dummy.h");
opcache_compile_file(__DIR__ . "/dummy.php");
?>

dummy.h

#define FFI_SCOPE "DUMMY"
#define FFI_LIB "libc.so.6"

int printf(const char *format, ...);

dummy.php

<?php
final class Dummy {
private static $ffi = null;
function __construct() {
if (is_null(self::$ffi)) {
self::$ffi = FFI::scope("DUMMY");
}
}
function printf($format, ...$args) {
return (int)self::$ffi->printf($format, ...$args);
}
}
?>

test.php

<?php
$d = new Dummy();
$d->printf("Hello %s!\n", "world");
?>


Main interface to C code and data

(PHP 7 >= 7.4.0, PHP 8)

Introdução

Objects of this class are created by the factory methods FFI::cdef(), FFI::load() or FFI::scope(). Defined C variables are made available as properties of the FFI instance, and defined C functions are made available as methods of the FFI instance. Declared C types can be used to create new C data structures using FFI::new() and FFI::type().

FFI definition parsing and shared library loading may take significant time. It is not useful to do it on each HTTP request in a Web environment. However, it is possible to preload FFI definitions and libraries at PHP startup, and to instantiate FFI objects when necessary. Header files may be extended with special FFI_SCOPE defines (e.g. #define FFI_SCOPE "foo"; the default scope is "C") and then loaded by FFI::load() during preloading. This leads to the creation of a persistent binding, that will be available to all the following requests through FFI::scope(). Refer to the complete PHP/FFI/preloading example for details.

It is possible to preload more than one C header file into the same scope.

Resumo da classe

final class FFI {
/* Constantes */
public const int __BIGGEST_ALIGNMENT__;
/* Métodos */
public static addr(FFI\CData &$ptr): FFI\CData
public static alignof(FFI\CData|FFI\CType &$ptr): int
public static arrayType(FFI\CType $type, array $dimensions): FFI\CType
public cast(FFI\CType|string $type, FFI\CData|int|float|bool|null &$ptr): ?FFI\CData
public static cdef(string $code = "", ?string $lib = null): FFI
public static free(FFI\CData &$ptr): void
public static isNull(FFI\CData &$ptr): bool
public static load(string $filename): ?FFI
public static memcmp(string|FFI\CData &$ptr1, string|FFI\CData &$ptr2, int $size): int
public static memcpy(FFI\CData &$to, FFI\CData|string &$from, int $size): void
public static memset(FFI\CData &$ptr, int $value, int $size): void
public new(FFI\CType|string $type, bool $owned = true, bool $persistent = false): ?FFI\CData
public static scope(string $name): FFI
public static sizeof(FFI\CData|FFI\CType &$ptr): int
public static string(FFI\CData &$ptr, ?int $size = null): string
public type(string $type): ?FFI\CType
public static typeof(FFI\CData &$ptr): FFI\CType
}

Constantes pré-definidas

FFI::__BIGGEST_ALIGNMENT__

Índice

  • FFI::addr — Creates an unmanaged pointer to C data
  • FFI::alignof — Gets the alignment
  • FFI::arrayType — Dynamically constructs a new C array type
  • FFI::cast — Performs a C type cast
  • FFI::cdef — Creates a new FFI object
  • FFI::free — Releases an unmanaged data structure
  • FFI::isNull — Checks whether a FFI\CData is a null pointer
  • FFI::load — Loads C declarations from a C header file
  • FFI::memcmp — Compares memory areas
  • FFI::memcpy — Copies one memory area to another
  • FFI::memset — Fills a memory area
  • FFI::new — Creates a C data structure
  • FFI::scope — Instantiates an FFI object with C declarations parsed during preloading
  • FFI::sizeof — Gets the size of C data or types
  • FFI::string — Creates a PHP string from a memory area
  • FFI::type — Creates an FFI\CType object from a C declaration
  • FFI::typeof — Gets the FFI\CType of FFI\CData


Creates an unmanaged pointer to C data

  • « FFI
  • FFI::alignof »
  • PHP Manual
  • FFI
  • Creates an unmanaged pointer to C data

FFI::addr

(PHP 7 >= 7.4.0, PHP 8)

FFI::addr — Creates an unmanaged pointer to C data

Descrição

public static FFI::addr(FFI\CData &$ptr): FFI\CData

Creates an unmanaged pointer to the C data represented by the given FFI\CData. The source ptr must survive the resulting pointer. This function is mainly useful to pass arguments to C functions by pointer.

Parâmetros

ptr

The handle of the pointer to a C data structure.

Valor Retornado

Returns the freshly created FFI\CData object.


Gets the alignment

  • « FFI::addr
  • FFI::arrayType »
  • PHP Manual
  • FFI
  • Gets the alignment

FFI::alignof

(PHP 7 >= 7.4.0, PHP 8)

FFI::alignof — Gets the alignment

Descrição

public static FFI::alignof(FFI\CData|FFI\CType &$ptr): int

Gets the alignment of the given FFI\CData or FFI\CType object.

Parâmetros

ptr

The handle of the C data or type.

Valor Retornado

Returns the alignment of the given FFI\CData or FFI\CType object.


Dynamically constructs a new C array type

  • « FFI::alignof
  • FFI::cast »
  • PHP Manual
  • FFI
  • Dynamically constructs a new C array type

FFI::arrayType

(PHP 7 >= 7.4.0, PHP 8)

FFI::arrayType — Dynamically constructs a new C array type

Descrição

public static FFI::arrayType(FFI\CType $type, array $dimensions): FFI\CType

Dynamically constructs a new C array type with elements of type defined by type, and dimensions specified by dimensions. In the following example $t1 and $t2 are equivalent array types:

<?php
$t1 = FFI::type("int[2][3]");
$t2 = FFI::arrayType(FFI::type("int"), [2, 3]);
?>

Parâmetros

type

A valid C declaration as string, or an instance of FFI\CType which has already been created.

dimensions

The dimensions of the type as array.

Valor Retornado

Returns the freshly created FFI\CType object.


Performs a C type cast

  • « FFI::arrayType
  • FFI::cdef »
  • PHP Manual
  • FFI
  • Performs a C type cast

FFI::cast

(PHP 7 >= 7.4.0, PHP 8)

FFI::cast — Performs a C type cast

Descrição

public FFI::cast(FFI\CType|string $type, FFI\CData|int|float|bool|null &$ptr): ?FFI\CData

FFI::cast() creates a new FFI\CData object, that references the same C data structure, but is associated with a different type. The resulting object does not own the C data, and the source ptr must survive the result. The C type may be specified as a string with any valid C type declaration or as FFI\CType object, created before. Any type declared for the instance is allowed.

Parâmetros

type

A valid C declaration as string, or an instance of FFI\CType which has already been created.

ptr

The handle of the pointer to a C data structure.

Valor Retornado

Returns the freshly created FFI\CData object.

Registro de Alterações

Versão | Descrição
8.3.0 | Calling FFI::cast() statically is now deprecated.


Creates a new FFI object

  • « FFI::cast
  • FFI::free »
  • PHP Manual
  • FFI
  • Creates a new FFI object

FFI::cdef

(PHP 7 >= 7.4.0, PHP 8)

FFI::cdef — Creates a new FFI object

Descrição

public static FFI::cdef(string $code = "", ?string $lib = null): FFI

Creates a new FFI object.

Parâmetros

code

A string containing a sequence of declarations in regular C language (types, structures, functions, variables, etc). Actually, this string may be copy-pasted from C header files.

Nota:

C preprocessor directives are not supported, i.e. #include, #define and CPP macros do not work.

lib

The name of a shared library file, to be loaded and linked with the definitions.

Nota:

If lib is omitted or null, platforms supporting RTLD_DEFAULT attempt to lookup symbols declared in code in the normal global scope. Other systems will fail to resolve these symbols.

Valor Retornado

Returns the freshly created FFI object.

Registro de Alterações

Versão | Descrição
8.0.0 | lib is nullable now.


Releases an unmanaged data structure

  • « FFI::cdef
  • FFI::isNull »
  • PHP Manual
  • FFI
  • Releases an unmanaged data structure

FFI::free

(PHP 7 >= 7.4.0, PHP 8)

FFI::free — Releases an unmanaged data structure

Descrição

public static FFI::free(FFI\CData &$ptr): void

Manually releases a previously created unmanaged data structure.

Parâmetros

ptr

The handle of the unmanaged pointer to a C data structure.

Valor Retornado

Nenhum valor é retornado.


Checks whether a FFI\CData is a null pointer

  • « FFI::free
  • FFI::load »
  • PHP Manual
  • FFI
  • Checks whether a FFI\CData is a null pointer

FFI::isNull

(PHP 7 >= 7.4.0, PHP 8)

FFI::isNull — Checks whether a FFI\CData is a null pointer

Descrição

public static FFI::isNull(FFI\CData &$ptr): bool

Checks whether a FFI\CData is a null pointer.

Parâmetros

ptr

The handle of the pointer to a C data structure.

Valor Retornado

Returns whether a FFI\CData is a null pointer.


Loads C declarations from a C header file

  • « FFI::isNull
  • FFI::memcmp »
  • PHP Manual
  • FFI
  • Loads C declarations from a C header file

FFI::load

(PHP 7 >= 7.4.0, PHP 8)

FFI::load — Loads C declarations from a C header file

Descrição

public static FFI::load(string $filename): ?FFI

Loads C declarations from a C header file. It is possible to specify shared libraries that should be loaded, using special FFI_LIB defines in the loaded C header file.

Parâmetros

filename

The name of a C header file.

C preprocessor directives are not supported, i.e. #include, #define and CPP macros do not work, except for special cases listed below.

The header file should contain a #define statement for the FFI_SCOPE variable, e.g.: #define FFI_SCOPE "MYLIB". Refer to the class introduction for details.

The header file may contain a #define statement for the FFI_LIB variable to specify the library it exposes. If it is a system library only the file name is required, e.g.: #define FFI_LIB "libc.so.6". If it is a custom library, a relative path is required, e.g.: #define FFI_LIB "./mylib.so".

Valor Retornado

Returns the freshly created FFI object, or null on failure.

Veja Também

  • FFI::scope() - Instantiates an FFI object with C declarations parsed during preloading


Compares memory areas

  • « FFI::load
  • FFI::memcpy »
  • PHP Manual
  • FFI
  • Compares memory areas

FFI::memcmp

(PHP 7 >= 7.4.0, PHP 8)

FFI::memcmp — Compares memory areas

Descrição

public static FFI::memcmp(string|FFI\CData &$ptr1, string|FFI\CData &$ptr2, int $size): int

Compares size bytes from the memory areas ptr1 and ptr2. Both ptr1 and ptr2 can be any native data structures (FFI\CData) or PHP strings.

Parâmetros

ptr1

The start of one memory area.

ptr2

The start of another memory area.

size

The number of bytes to compare.

Valor Retornado

Returns a value less than 0 if the contents of the memory area starting at ptr1 are considered less than the contents of the memory area starting at ptr2, a value greater than 0 if the contents of the first memory area are considered greater than the second, and 0 if they are equal.


Copies one memory area to another

  • « FFI::memcmp
  • FFI::memset »
  • PHP Manual
  • FFI
  • Copies one memory area to another

FFI::memcpy

(PHP 7 >= 7.4.0, PHP 8)

FFI::memcpy — Copies one memory area to another

Descrição

public static FFI::memcpy(FFI\CData &$to, FFI\CData|string &$from, int $size): void

Copies size bytes from the memory area from to the memory area to.

Parâmetros

to

The start of the memory area to copy to.

from

The start of the memory area to copy from.

size

The number of bytes to copy.

Valor Retornado

Nenhum valor é retornado.


Fills a memory area

  • « FFI::memcpy
  • FFI::new »
  • PHP Manual
  • FFI
  • Fills a memory area

FFI::memset

(PHP 7 >= 7.4.0, PHP 8)

FFI::memset — Fills a memory area

Descrição

public static FFI::memset(FFI\CData &$ptr, int $value, int $size): void

Fills size bytes of the memory area pointed to by ptr with the given byte value.

Parâmetros

ptr

The start of the memory area to fill.

value

The byte to fill with.

size

The number of bytes to fill.

Valor Retornado

Nenhum valor é retornado.


Creates a C data structure

  • « FFI::memset
  • FFI::scope »
  • PHP Manual
  • FFI
  • Creates a C data structure

FFI::new

(PHP 7 >= 7.4.0, PHP 8)

FFI::new — Creates a C data structure

Descrição

public FFI::new(FFI\CType|string $type, bool $owned = true, bool $persistent = false): ?FFI\CData

Creates a native data structure of the given C type. Any type declared for the instance is allowed.

Parâmetros

type

type is a valid C declaration as string, or an instance of FFI\CType which has already been created.

owned

Whether to create owned (i.e. managed) or unmanaged data. Managed data lives together with the returned FFI\CData object, and is released when the last reference to that object is released by regular PHP reference counting or GC. Unmanaged data should be released by calling FFI::free(), when no longer needed.

persistent

Whether to allocate the C data structure permanently on the system heap (using malloc()), or on the PHP request heap (using emalloc()).

Valor Retornado

Returns the freshly created FFI\CData object, or null on failure.

Registro de Alterações

Versão | Descrição
8.3.0 | Calling FFI::new() statically is now deprecated.


Instantiates an FFI object with C declarations parsed during preloading

  • « FFI::new
  • FFI::sizeof »
  • PHP Manual
  • FFI
  • Instantiates an FFI object with C declarations parsed during preloading

FFI::scope

(PHP 7 >= 7.4.0, PHP 8)

FFI::scope — Instantiates an FFI object with C declarations parsed during preloading

Descrição

public static FFI::scope(string $name): FFI

Instantiates an FFI object with C declarations parsed during preloading.

The FFI::scope() method is safe to call multiple times for the same scope. Multiple references to the same scope may be loaded at the same time.

Parâmetros

name

The scope name defined by a special FFI_SCOPE define.

Valor Retornado

Returns the freshly created FFI object.

Veja Também

  • FFI::load() - Loads C declarations from a C header file


Gets the size of C data or types

  • « FFI::scope
  • FFI::string »
  • PHP Manual
  • FFI
  • Gets the size of C data or types

FFI::sizeof

(PHP 7 >= 7.4.0, PHP 8)

FFI::sizeof — Gets the size of C data or types

Descrição

public static FFI::sizeof(FFI\CData|FFI\CType &$ptr): int

Returns the size of the given FFI\CData or FFI\CType object.

Parâmetros

ptr

The handle of the C data or type.

Valor Retornado

The size of the memory area pointed at by ptr.


Creates a PHP string from a memory area

  • « FFI::sizeof
  • FFI::type »
  • PHP Manual
  • FFI
  • Creates a PHP string from a memory area

FFI::string

(PHP 7 >= 7.4.0, PHP 8)

FFI::string — Creates a PHP string from a memory area

Descrição

public static FFI::string(FFI\CData &$ptr, ?int $size = null): string

Creates a PHP string from size bytes of the memory area pointed to by ptr.

Parâmetros

ptr

The start of the memory area from which to create a string.

size

The number of bytes to copy to the string. If size is omitted or null, ptr must be a zero terminated array of C char.

Valor Retornado

The freshly created PHP string.

Registro de Alterações

Versão | Descrição
8.0.0 | size is nullable now; previously, its default was 0.


Creates an FFI\CType object from a C declaration

  • « FFI::string
  • FFI::typeof »
  • PHP Manual
  • FFI
  • Creates an FFI\CType object from a C declaration

FFI::type

(PHP 7 >= 7.4.0, PHP 8)

FFI::type — Creates an FFI\CType object from a C declaration

Descrição

public FFI::type(string $type): ?FFI\CType

This function creates and returns a FFI\CType object for the given string containing a C type declaration. Any type declared for the instance is allowed.

Parâmetros

type

A valid C declaration as string.

Valor Retornado

Returns the freshly created FFI\CType object, or null on failure.

Registro de Alterações

Versão | Descrição
8.3.0 | Calling FFI::type() statically is now deprecated.


Gets the FFI\CType of FFI\CData

  • « FFI::type
  • FFI\CData »
  • PHP Manual
  • FFI
  • Gets the FFI\CType of FFI\CData

FFI::typeof

(PHP 7 >= 7.4.0, PHP 8)

FFI::typeof — Gets the FFI\CType of FFI\CData

Descrição

public static FFI::typeof(FFI\CData &$ptr): FFI\CType

Gets the FFI\CType object representing the type of the given FFI\CData object.

Parâmetros

ptr

The handle of the pointer to a C data structure.

Valor Retornado

Returns the FFI\CType object representing the type of the given FFI\CData object.


C Data Handles

(PHP 7 >= 7.4.0, PHP 8)

Introdução

FFI\CData objects can be used in a number of ways as a regular PHP data:

  • C data of scalar types can be read and assigned via the $cdata property, e.g. $x = FFI::new('int'); $x->cdata = 42;
  • C struct and union fields can be accessed as regular PHP object property, e.g. $cdata->field
  • C array elements can be accessed as regular PHP array elements, e.g. $cdata[$offset]
  • C arrays can be iterated using foreach statements.
  • C arrays can be used as arguments of count().
  • C pointers can be dereferenced as arrays, e.g. $cdata[0]
  • C pointers can be compared using regular comparison operators (<, <=, ==, !=, >=, >).
  • C pointers can be incremented and decremented using regular +/-/ ++/–- operations, e.g. $cdata += 5
  • C pointers can be subtracted from another using regular - operations.
  • C pointers to functions can be called as a regular PHP closure, e.g. $cdata()
  • Any C data can be duplicated using the clone operator, e.g. $cdata2 = clone $cdata;
  • Any C data can be visualized using var_dump(), print_r(), etc.
  • FFI\CData can now be assigned to structs and fields as of PHP 8.3.0.

Nota: Notable limitations are that FFI\CData instances do not support isset(), empty() and unset(), and that wrapped C structs and unions do not implement Traversable.

Resumo da classe

final class FFI\CData {
}

Registro de Alterações

Versão | Descrição
8.3.0 | FFI\CData can now be assigned to structs and fields.


C Type Handles

(PHP 7 >= 7.4.0, PHP 8)

Introdução

Resumo da classe

final class FFI\CType {
/* Constantes */
public const int TYPE_VOID;
public const int TYPE_FLOAT;
public const int TYPE_DOUBLE;
public const int TYPE_LONGDOUBLE;
public const int TYPE_UINT8;
public const int TYPE_SINT8;
public const int TYPE_UINT16;
public const int TYPE_SINT16;
public const int TYPE_UINT32;
public const int TYPE_SINT32;
public const int TYPE_UINT64;
public const int TYPE_SINT64;
public const int TYPE_ENUM;
public const int TYPE_BOOL;
public const int TYPE_CHAR;
public const int TYPE_POINTER;
public const int TYPE_FUNC;
public const int TYPE_ARRAY;
public const int TYPE_STRUCT;
public const int ATTR_CONST;
public const int ATTR_INCOMPLETE_TAG;
public const int ATTR_VARIADIC;
public const int ATTR_INCOMPLETE_ARRAY;
public const int ATTR_VLA;
public const int ATTR_UNION;
public const int ATTR_PACKED;
public const int ATTR_MS_STRUCT;
public const int ATTR_GCC_STRUCT;
public const int ABI_DEFAULT;
public const int ABI_CDECL;
public const int ABI_FASTCALL;
public const int ABI_THISCALL;
public const int ABI_STDCALL;
public const int ABI_PASCAL;
public const int ABI_REGISTER;
public const int ABI_MS;
public const int ABI_SYSV;
public const int ABI_VECTORCALL;
/* Métodos */
public getAlignment(): int
public getArrayElementType(): FFI\CType
public getArrayLength(): int
public getAttributes(): int
public getEnumKind(): int
public getFuncABI(): int
public getFuncParameterCount(): int
public getFuncParameterType(int $index): FFI\CType
public getFuncReturnType(): FFI\CType
public getKind(): int
public getName(): string
public getPointerType(): FFI\CType
public getSize(): int
public getStructFieldNames(): array
public getStructFieldOffset(string $name): int
public getStructFieldType(string $name): FFI\CType
}

Constantes pré-definidas

FFI\CType::TYPE_VOID

FFI\CType::TYPE_FLOAT

FFI\CType::TYPE_DOUBLE

FFI\CType::TYPE_LONGDOUBLE

FFI\CType::TYPE_UINT8

FFI\CType::TYPE_SINT8

FFI\CType::TYPE_UINT16

FFI\CType::TYPE_SINT16

FFI\CType::TYPE_UINT32

FFI\CType::TYPE_SINT32

FFI\CType::TYPE_UINT64

FFI\CType::TYPE_SINT64

FFI\CType::TYPE_ENUM

FFI\CType::TYPE_BOOL

FFI\CType::TYPE_CHAR

FFI\CType::TYPE_POINTER

FFI\CType::TYPE_FUNC

FFI\CType::TYPE_ARRAY

FFI\CType::TYPE_STRUCT

FFI\CType::ATTR_CONST

FFI\CType::ATTR_INCOMPLETE_TAG

FFI\CType::ATTR_VARIADIC

FFI\CType::ATTR_INCOMPLETE_ARRAY

FFI\CType::ATTR_VLA

FFI\CType::ATTR_UNION

FFI\CType::ATTR_PACKED

FFI\CType::ATTR_MS_STRUCT

FFI\CType::ATTR_GCC_STRUCT

FFI\CType::ABI_DEFAULT

FFI\CType::ABI_CDECL

FFI\CType::ABI_FASTCALL

FFI\CType::ABI_THISCALL

FFI\CType::ABI_STDCALL

FFI\CType::ABI_PASCAL

FFI\CType::ABI_REGISTER

FFI\CType::ABI_MS

FFI\CType::ABI_SYSV

FFI\CType::ABI_VECTORCALL

Índice

  • FFI\CType::getAlignment — Description
  • FFI\CType::getArrayElementType — Description
  • FFI\CType::getArrayLength — Description
  • FFI\CType::getAttributes — Description
  • FFI\CType::getEnumKind — Description
  • FFI\CType::getFuncABI — Description
  • FFI\CType::getFuncParameterCount — Description
  • FFI\CType::getFuncParameterType — Description
  • FFI\CType::getFuncReturnType — Description
  • FFI\CType::getKind — Description
  • FFI\CType::getName — Description
  • FFI\CType::getPointerType — Description
  • FFI\CType::getSize — Description
  • FFI\CType::getStructFieldNames — Description
  • FFI\CType::getStructFieldOffset — Description
  • FFI\CType::getStructFieldType — Description


Description

  • « FFI\CType
  • FFI\CType::getArrayElementType »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getAlignment

(PHP 8 >= 8.1.0)

FFI\CType::getAlignment — Description

Descrição

public FFI\CType::getAlignment(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getAlignment
  • FFI\CType::getArrayLength »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getArrayElementType

(PHP 8 >= 8.1.0)

FFI\CType::getArrayElementType — Description

Descrição

public FFI\CType::getArrayElementType(): FFI\CType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getArrayElementType
  • FFI\CType::getAttributes »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getArrayLength

(PHP 8 >= 8.1.0)

FFI\CType::getArrayLength — Description

Descrição

public FFI\CType::getArrayLength(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getArrayLength
  • FFI\CType::getEnumKind »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getAttributes

(PHP 8 >= 8.1.0)

FFI\CType::getAttributes — Description

Descrição

public FFI\CType::getAttributes(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getAttributes
  • FFI\CType::getFuncABI »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getEnumKind

(PHP 8 >= 8.1.0)

FFI\CType::getEnumKind — Description

Descrição

public FFI\CType::getEnumKind(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getEnumKind
  • FFI\CType::getFuncParameterCount »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getFuncABI

(PHP 8 >= 8.1.0)

FFI\CType::getFuncABI — Description

Descrição

public FFI\CType::getFuncABI(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getFuncABI
  • FFI\CType::getFuncParameterType »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getFuncParameterCount

(PHP 8 >= 8.1.0)

FFI\CType::getFuncParameterCount — Description

Descrição

public FFI\CType::getFuncParameterCount(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getFuncParameterCount
  • FFI\CType::getFuncReturnType »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getFuncParameterType

(PHP 8 >= 8.1.0)

FFI\CType::getFuncParameterType — Description

Descrição

public FFI\CType::getFuncParameterType(int $index): FFI\CType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

index

Valor Retornado


Description

  • « FFI\CType::getFuncParameterType
  • FFI\CType::getKind »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getFuncReturnType

(PHP 8 >= 8.1.0)

FFI\CType::getFuncReturnType — Description

Descrição

public FFI\CType::getFuncReturnType(): FFI\CType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getFuncReturnType
  • FFI\CType::getName »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getKind

(PHP 8 >= 8.1.0)

FFI\CType::getKind — Description

Descrição

public FFI\CType::getKind(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getKind
  • FFI\CType::getPointerType »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getName

(PHP 7 >= 7.4.0, PHP 8)

FFI\CType::getName — Description

Descrição

public FFI\CType::getName(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getName
  • FFI\CType::getSize »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getPointerType

(PHP 8 >= 8.1.0)

FFI\CType::getPointerType — Description

Descrição

public FFI\CType::getPointerType(): FFI\CType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getPointerType
  • FFI\CType::getStructFieldNames »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getSize

(PHP 8 >= 8.1.0)

FFI\CType::getSize — Description

Descrição

public FFI\CType::getSize(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getSize
  • FFI\CType::getStructFieldOffset »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getStructFieldNames

(PHP 8 >= 8.1.0)

FFI\CType::getStructFieldNames — Description

Descrição

public FFI\CType::getStructFieldNames(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Description

  • « FFI\CType::getStructFieldNames
  • FFI\CType::getStructFieldType »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getStructFieldOffset

(PHP 8 >= 8.1.0)

FFI\CType::getStructFieldOffset — Description

Descrição

public FFI\CType::getStructFieldOffset(string $name): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


Description

  • « FFI\CType::getStructFieldOffset
  • FFI\Exception »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getStructFieldType

(PHP 8 >= 8.1.0)

FFI\CType::getStructFieldType — Description

Descrição

public FFI\CType::getStructFieldType(string $name): FFI\CType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


FFI Exceptions

(PHP 7 >= 7.4.0, PHP 8)

Introdução

Resumo da classe

class FFI\Exception extends Error {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


FFI Parser Exceptions

(PHP 7 >= 7.4.0, PHP 8)

Introdução

Resumo da classe

final class FFI\ParserException extends FFI\Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


OPcache

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Preloading
  • OPcache Funções
    • opcache_compile_file — Compila e armazena em cache um script PHP sem executá-lo
    • opcache_get_configuration — Obtém informações de configuração sobre o cache
    • opcache_get_status — Obtém informações de status sobre o cache
    • opcache_invalidate — Invalida um script em cache
    • opcache_is_script_cached — Informa se um script é armazenado em cache no OPCache
    • opcache_reset — Redefine o conteúdo do cache opcode


Introdução

OPcache melhora o desempenho do PHP armazenando bytecode de script pré-compilado na memória compartilhada, eliminando assim a necessidade do PHP carregar e analisar scripts em cada solicitação.

Esta extensão é empacotada com o PHP 5.5.0 e posterior, e está » disponível no PECL para PHP versões 5.2, 5.3 e 5.4.


Instalação

OPcache só pode ser compilado como uma extensão compartilhada. Se você desativou a construção de extensões padrão com --disable-all, você deve compilar o PHP com a opção --enable-opcache para que o OPcache esteja disponível.

Uma vez compilado, você pode usar a diretiva de configuração zend_extension para carregar a extensão OPcache no PHP. Isso pode ser feito com zend_extension=/full/path/to/opcache.so em plataformas não Windows e zend_extension=C:\path\to\php_opcache.dll no Windows.

Nota:

Se você quiser usar o OPcache com » Xdebug, você deve carregar o OPcache antes do Xdebug.

Configurações recomendadas do php.ini

As seguintes configurações são geralmente recomendadas para fornecer um bom desempenho:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1 ; prior to PHP 7.2.0
opcache.enable_cli=1

Você também pode querer considerar desabilitar opcache.save_comments e habilitar opcache.enable_file_override, no entanto, observe que você terá que testar seu código antes de usá-los na produção, pois eles são conhecidos por quebrar algumas estruturas e aplicativos, particularmente nos casos em que são usadas anotações de comentários na documentação.

No Windows, opcache.file_cache_fallback deve ser habilitado e opcache.file_cache deve ser definido como um diretório já existente e gravável.

Uma lista completa de diretivas de configuração suportadas pelo OPcache também está disponível.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração do OPcache
Nome | Padrão | Modificável | Registro de Alterações
opcache.enable | "1" | INI_ALL |
opcache.enable_cli | "0" | INI_SYSTEM | Entre PHP 7.1.2 e 7.1.6 inclusive, o padrão era "1"
opcache.memory_consumption | "128" | INI_SYSTEM |
opcache.interned_strings_buffer | "8" | INI_SYSTEM |
opcache.max_accelerated_files | "10000" | INI_SYSTEM |
opcache.max_wasted_percentage | "5" | INI_SYSTEM |
opcache.use_cwd | "1" | INI_SYSTEM |
opcache.validate_timestamps | "1" | INI_ALL |
opcache.revalidate_freq | "2" | INI_ALL |
opcache.revalidate_path | "0" | INI_ALL |
opcache.save_comments | "1" | INI_SYSTEM |
opcache.fast_shutdown | "0" | INI_SYSTEM | Removido no PHP 7.2.0
opcache.enable_file_override | "0" | INI_SYSTEM |
opcache.optimization_level | "0x7FFEBFFF" | INI_SYSTEM | Alterado de 0x7FFFBFFF no PHP 7.3.0
opcache.inherited_hack | "1" | INI_SYSTEM | Removido no PHP 7.3.0
opcache.dups_fix | "0" | INI_ALL |
opcache.blacklist_filename | "" | INI_SYSTEM |
opcache.max_file_size | "0" | INI_SYSTEM |
opcache.consistency_checks | "0" | INI_ALL | Desativado a partir do 8.1.18 e 8.2.5. Removido a partir do PHP 8.3.0
opcache.force_restart_timeout | "180" | INI_SYSTEM |
opcache.error_log | "" | INI_SYSTEM |
opcache.log_verbosity_level | "1" | INI_SYSTEM |
opcache.record_warnings | "0" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.preferred_memory_model | "" | INI_SYSTEM |
opcache.protect_memory | "0" | INI_SYSTEM |
opcache.mmap_base | null | INI_SYSTEM |
opcache.restrict_api | "" | INI_SYSTEM |
opcache.file_update_protection | "2" | INI_ALL |
opcache.huge_code_pages | "0" | INI_SYSTEM |
opcache.lockfile_path | "/tmp" | INI_SYSTEM |
opcache.opt_debug_level | "0" | INI_SYSTEM | Disponível a partir do PHP 7.1.0
opcache.file_cache | NULL | INI_SYSTEM |
opcache.file_cache_only | "0" | INI_SYSTEM |
opcache.file_cache_consistency_checks | "1" | INI_SYSTEM |
opcache.file_cache_fallback | "1" | INI_SYSTEM | Somente Windows.
opcache.validate_permission | "0" | INI_SYSTEM | Disponível a partir do PHP 7.0.14
opcache.validate_root | "0" | INI_SYSTEM | Disponível a partir do PHP 7.0.14
opcache.preload | "" | INI_SYSTEM | Disponível a partir do PHP 7.4.0
opcache.preload_user | "" | INI_SYSTEM | Disponível a partir do PHP 7.4.0
opcache.cache_id | "" | INI_SYSTEM | Somente Windows. Disponível a partir do PHP 7.4.0
opcache.jit | "tracing" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_buffer_size | "0" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_debug | "0" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_bisect_limit | "0" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_prof_threshold | "0.005" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_max_root_traces | "1024" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_max_side_traces | "128" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_max_exit_counters | "8192" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_hot_loop | "64" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_hot_func | "127" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_hot_return | "8" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_hot_side_exit | "8" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_blacklist_root_trace | "16" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_blacklist_side_trace | "8" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_max_loop_unrolls | "8" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_max_recursive_calls | "2" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_max_recursive_returns | "2" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_max_polymorphic_calls | "2" | INI_ALL | Disponível a partir do PHP 8.0.0
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

opcache.enable bool

Habilita o cache opcode. Quando desabilitado, o código não é otimizado ou armazenado em cache. A configuração opcache.enable não pode ser habilitada em tempo de execução através de ini_set(), ela só pode ser desabilitada. Tentar ativá-lo em um script gerará um aviso.

opcache.enable_cli bool

Ativa o cache opcode para a versão CLI do PHP.

opcache.memory_consumption int

O tamanho do armazenamento de memória compartilhada usado pelo OPcache, em megabytes. O valor mínimo permitido é "8", que é aplicado se um valor menor for definido.

opcache.interned_strings_buffer int

A quantidade de memória usada para armazenar strings internas, em megabytes.

opcache.max_accelerated_files int

O número máximo de chaves (e, portanto, scripts) na tabela de hash do OPcache. O valor real usado será o primeiro número no conjunto de números primos { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 } que é maior ou igual ao valor configurado. O valor mínimo é 200. O valor máximo é 1.000.000. Valores fora desta faixa são fixados na faixa permitida.

opcache.max_wasted_percentage int

A porcentagem máxima de memória desperdiçada que é permitida antes de uma reinicialização ser planejada, se houver memória livre insuficiente. O valor máximo permitido é "50", que é aplicado se um valor maior for definido.

opcache.use_cwd bool

Se ativado, o OPcache anexa o diretório de trabalho atual à chave de script, eliminando assim possíveis colisões entre arquivos com o mesmo nome de base. Desativar esta diretiva melhora o desempenho, mas pode interromper os aplicativos existentes.

opcache.validate_timestamps bool

Se ativado, o OPcache verificará os scripts atualizados a cada opcache.revalidate_freq segundos. Quando esta diretiva é desativada, você deve redefinir o OPcache manualmente via opcache_reset(), opcache_invalidate() ou reiniciando o servidor Web para que as alterações no sistema de arquivos entrem em vigor.

Nota: O OPcache ainda pode validar o carimbo de data e hora de um arquivo durante o tempo de compilação se as opções opcache.file_update_protection ou opcache.max_file_size estiverem definidas com valores diferentes de zero.

opcache.revalidate_freq int

Com que frequência verificar carimbos de data/hora do script para atualizações, em segundos. 0 resultará na verificação de atualizações do OPcache em cada solicitação.

Esta diretiva de configuração será ignorada se opcache.validate_timestamps estiver desativado.

opcache.revalidate_path bool

Se desativado, os arquivos em cache existentes usando o mesmo include_path serão reutilizados. Assim, se um arquivo com o mesmo nome estiver em outro lugar no include_path, ele não será encontrado.

opcache.save_comments bool

Se desativado, todos os comentários da documentação serão descartados do cache do opcode para reduzir o tamanho do código otimizado. Desativar esta diretiva de configuração pode interromper aplicativos e frameworks que dependem da análise de comentários para anotações, incluindo Doctrine, Zend Framework 2 e PHPUnit.

opcache.fast_shutdown bool

Se ativado, uma sequência de desligamento rápido é usada que não libera cada bloco alocado, mas depende do gerenciador de memória do Zend Engine para desalocar todo o conjunto de variáveis de solicitação em massa.

Esta diretiva foi removida no PHP 7.2.0. Uma variante da sequência de desligamento rápido foi integrada ao PHP e será usada automaticamente, se possível.

opcache.enable_file_override bool

Quando ativado, o cache opcode será verificado para saber se um arquivo já foi armazenado em cache quando file_exists(), is_file() e is_readable() são chamados. Isso pode aumentar o desempenho em aplicativos que verificam a existência e legibilidade de scripts PHP, mas corre o risco de retornar dados desatualizados se opcache.validate_timestamps estiver desabilitado.

opcache.optimization_level int

Uma máscara de bits que controla quais passos de otimização são executados. O padrão é aplicar todas as otimizações seguras. Alterar o padrão é mais útil para depurar/desenvolver o otimizador (consulte também opcache.opt_debug_level).

opcache.inherited_hack bool

Esta diretiva de configuração é ignorada.

opcache.dups_fix bool

Este hack só deve ser ativado para contornar os erros "Cannot redeclare class".

opcache.blacklist_filename string

A localização do arquivo de blacklist do OPcache. Um arquivo de blacklist é um arquivo de texto contendo os nomes dos arquivos que não devem ser acelerados, um por linha. Curingas(*) são permitidos e prefixos também podem ser fornecidos. As linhas iniciadas com ponto e vírgula são ignoradas como comentários.

Um arquivo de blacklist simples pode ter a seguinte aparência:

; Corresponde a um arquivo específico.
/var/www/broken.php
; Um prefixo que corresponde a todos os arquivos que começam com x.
/var/www/x
; Uma correspondência curinga.
/var/www/*-broken.php
opcache.max_file_size int

O tamanho máximo do arquivo que será armazenado em cache, em bytes. Se for 0, todos os arquivos serão armazenados em cache.

opcache.consistency_checks int

Se diferente de zero, o OPcache verificará a soma de verificação do cache a cada N solicitações, onde N é o valor desta diretiva de configuração. Isso só deve ser ativado durante a depuração, pois prejudicará o desempenho.

Nota:

Desativado a partir do 8.1.18 e 8.2.5. Removido a partir do PHP 8.3.0.

opcache.force_restart_timeout int

O tempo de espera para iniciar uma reinicialização agendada se o cache não estiver ativo, em segundos. Se o tempo limite for atingido, o OPcache assumirá que algo está errado e eliminará os processos que mantêm bloqueios no cache para permitir uma reinicialização.

Se opcache.log_verbosity_level for definido como 2 ou superior, um aviso será registrado no log de erros quando isso ocorrer.

Esta diretiva não é suportada no Windows.

opcache.error_log string

O log de erros para erros do OPcache. Uma string vazia é tratada da mesma forma que stderr e resultará no envio de logs para erro padrão (que será o log de erro do servidor Web na maioria dos casos).

opcache.log_verbosity_level int

O nível de verbosidade do log. Por padrão, apenas erros fatais (nível 0) e erros (nível 1) são registrados. Outros níveis disponíveis são avisos (nível 2), mensagens informativas (nível 3) e mensagens de depuração (nível 4).

opcache.record_warnings bool

Se ativado, o OPcache registrará avisos em tempo de compilação e os reproduzirá na próxima inclusão, mesmo que seja servido do cache.

opcache.preferred_memory_model string

O modelo de memória preferencial para uso do OPcache. Se deixado em branco, o OPcache escolherá o modelo mais adequado, que é o comportamento correto em praticamente todos os casos.

Os valores possíveis incluem mmap, shm, posix and win32.

opcache.protect_memory bool

Protege a memória compartilhada contra gravações inesperadas durante a execução de scripts. Isso é útil apenas para depuração interna.

opcache.mmap_base string

A base usada para segmentos de memória compartilhada no Windows. Todos os processos PHP precisam mapear a memória compartilhada no mesmo espaço de endereço. O uso desta diretiva permite que os erros "Unable to reattach to base address" sejam corrigidos.

opcache.restrict_api string

Permite chamar funções da API do OPcache apenas de scripts PHP cujo caminho é iniciado a partir da string especificada. O padrão "" significa nenhuma restrição.

opcache.file_update_protection string

Impede o armazenamento em cache de arquivos que tenham menos de um determinado número de segundos desde a última modificação. Isso protege contra o armazenamento em cache de arquivos que tenham sido atualizados de forma incompleta. Caso todas as atualizações forem atômicas, o desempenho pode ser aumentado definindo isso como 0. Isso permitirá que os arquivos sejam armazenados em cache imediatamente.

opcache.huge_code_pages bool

Ativa ou desativa a cópia do código PHP (segmento de texto) em PÁGINAS ENORMES. Isso deve melhorar o desempenho, mas requer configuração de sistema operacional apropriada. Disponível no Linux a partir do PHP 7.0.0 e no FreeBSD a partir do PHP 7.4.0.

opcache.lockfile_path string

Caminho absoluto usado para armazenar arquivos de bloqueio compartilhados (somente para * nix)

opcache.opt_debug_level string

Produz opcode dumps para depurar diferentes estágios de otimizações. 0x10000 produzirá opcodes conforme o compilador os produziu antes que qualquer otimização ocorra, enquanto 0x20000 produzirá códigos otimizados.

opcache.file_cache string

Ativa e define o diretório de cache de segundo nível. Ele deve melhorar o desempenho quando a memória SHM estiver cheia, na reinicialização do servidor ou na reinicialização do SHM. O padrão "" desativa o cache baseado em arquivo.

opcache.file_cache_only bool

Ativa ou desativa o armazenamento em cache opcode na memória compartilhada.

Nota:

Antes do PHP 8.1.0, desabilitar esta diretiva com um cache de arquivo já preenchido era necessário para limpar manualmente o cache de arquivo.

opcache.file_cache_consistency_checks bool

Ativa ou desativa a validação da soma de verificação quando o script é carregado do cache do arquivo.

opcache.file_cache_fallback bool

Implica opcache.file_cache_only=1 para um determinado processo que falhou ao se reconectar à memória compartilhada (somente para Windows). Cache de arquivo explicitamente habilitado é necessário.

Cuidado

Desativar esta opção de configuração pode impedir que os processos sejam iniciados e, portanto, é desencorajado.

opcache.validate_permission bool

Valida as permissões do arquivo em cache no usuário atual.

opcache.validate_root bool

Evita colisões de nomes em ambientes chroot'ed. Isso deve ser ativado em todos os ambientes chroot'ed para impedir o acesso a arquivos fora do chroot.

opcache.preload string

Especifica um script PHP que será compilado e executado na inicialização do servidor e que pode pré-carregar outros arquivos, seja por includeing ou usando a função opcache_compile_file(). Todas as entidades (por exemplo, funções e classes) definidas nesses arquivos estarão disponíveis para solicitações prontas para uso, até que o servidor seja desligado.

Nota:

O pré-carregamento não é suportado no Windows.

opcache.preload_user string

Permite que o pré-carregamento seja executado como o usuário do sistema especificado. Isso é útil para servidores que inicializam como root antes de alternar para um usuário de sistema sem privilégios. O pré-carregamento como root não é permitido por padrão por motivos de segurança, a menos que esta diretiva seja explicitamente definida como root.

opcache.cache_id string

No Windows, todos os processos executando o mesmo PHP SAPI na mesma conta de usuário com o mesmo ID de cache compartilham uma única instância do OPcache. O valor do cache ID pode ser escolhido livremente.

Dica

Para IIS, diferentes pools de aplicativos podem ter sua própria instância OPcache usando a variável de ambiente APP_POOL_ID como opcache.cache_id.

opcache.jit string|int

Para uso típico, esta opção aceita um dos quatro valores de string:

  • disable: Completamente desativado, não pode ser ativado em tempo de execução.
  • off: Desativado, mas pode ser ativado em tempo de execução.
  • tracing/on:Use rastreamento JIT. Ativado por padrão e recomendado para a maioria dos usuários.
  • function: Use function JIT.

Para uso avançado, esta opção aceita um CRTO inteiro de 4 dígitos, onde os dígitos significam:

C (CPU-sinalizadores de otimização específicos)
  • 0: Desative a otimização específica da CPU.
  • 1: Habilite o uso do AVX, se a CPU for compatível.
R (alocação de registro)
  • 0: Não execute alocação de registro.
  • 1: Execute a alocação de registrador local de bloco.
  • 2: Execute a alocação global de registradores.
T (gatilho(trigger))
  • 0: Compile todas as funções no carregamento do script.
  • 1: Compile funções na primeira execução.
  • 2: Funções de perfil no primeiro pedido e compilação das funções mais quentes depois.
  • 3: Crie perfis em tempo real e compile funções importantes.
  • 4: Atualmente sem uso.
  • 5: Use tracing JIT. Crie perfis em tempo real e compile rastreamentos para segmentos de código dinâmico.
O (nível de otimização)
  • 0: Sem JIT.
  • 1: JIT mínimo (chamada de manipuladores de VM padrão).
  • 2: Manipuladores de VM embutidos.
  • 3: Use inferência de tipo.
  • 4: Usar gráfico de chamada.
  • 5: Otimize todo o script.
O modo "tracing" corresponde a CRTO = 1254, o modo "function" corresponde a CRTO = 1205.

opcache.jit_buffer_size int

A quantidade de memória compartilhada a ser reservada para o código JIT compilado. Um valor zero desativa o JIT.

Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada.
opcache.jit_debug int

Uma máscara de bits especificando qual saída de depuração JIT habilitar. Para possíveis valores, consulte » zend_jit.h (procure por definições de macro começando com ZEND_JIT_DEBUG).

opcache.jit_bisect_limit int

Opção de depuração que desativa a compilação JIT após a compilação de um determinado número de funções. Isso pode ser útil para dividir a origem de um erro de compilação JIT. Observação: esta opção só funciona quando o gatilho JIT é definido como 0 (compilar no carregamento do script) ou 1 (compilar na primeira execução), por exemplo, opcache.jit=1215. Veja mais na opção opcache.jit.

opcache.jit_prof_threshold float

Ao usar o modo de trigger "profile on first request", esse limite determina se uma função é considerada ativa. O número de chamadas para a função dividido pelo número de chamadas para todas as funções deve estar acima do limite. Por exemplo, um limite de 0,005 significa que as funções que representam mais de 0,5% de todas as chamadas serão compiladas por JIT.

opcache.jit_max_root_traces int

Número máximo de root traces. O root trace é um fluxo de execução que percorre primeiro um caminho através do código, que é uma unidade de compilação JIT. O JIT não compilará o novo código se atingir esse limite.

opcache.jit_max_side_traces int

Número máximo de side traces que um root trace pode ter. O side trace é outro fluxo de execução que não segue o caminho do root trace compilado. Os sides traces pertencentes ao mesmo root trace não serão compilados se atingirem esse limite.

opcache.jit_max_exit_counters int

Número máximo de contadores de saída de side trace. Isso limita o número total de side traces que podem existir, em todos os root traces.

opcache.jit_hot_loop int

Depois de quantas iterações um loop é considerado ativo. O intervalo de valor válido é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. Especialmente, um valor zero desabilitará o JIT para rastrear e compilar quaisquer loops.

opcache.jit_hot_func int

Depois de quantas chamadas uma função é considerada "quente". O intervalo de valor válido é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. Especialmente, um valor zero desabilitará o JIT para rastrear e compilar quaisquer funções.

opcache.jit_hot_return int

Depois de quantos retornos, um retorno é considerado "quente". O intervalo de valor válido é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. Especialmente, um valor zero desabilitará o JIT para rastrear e compilar quaisquer retornos.

opcache.jit_hot_side_exit int

Depois de quantas saídas uma saída lateral é considerada "quente". O intervalo de valor válido é [0,255]; para qualquer configuração fora desse intervalo, por exemplo, -1 ou 256, o valor padrão será usado. Especialmente, um valor zero desabilitará o JIT para rastrear e compilar quaisquer saídas secundárias.

opcache.jit_blacklist_root_trace int

Número máximo de vezes que a compilação de um root trace é tentada antes de ser incluída na blacklist.

opcache.jit_blacklist_side_trace int

Número máximo de vezes que a compilação de um side trace é tentada antes de ser incluída na blacklist.

opcache.jit_max_loop_unrolls int

Número máximo de tentativas de resolver um loop em um traço lateral, tentando alcançar o root trace e fechar o loop externo.

opcache.jit_max_recursive_calls int

Número máximo de loops de chamada recursiva.

opcache.jit_max_recursive_returns int

Número máximo de loops de retorno recursivos.

opcache.jit_max_polymorphic_calls int

Número máximo de tentativas de chamadas polimórficas (dinâmicas ou de método) embutidas. As chamadas acima desse limite são tratadas como megamórficas e não são embutidas.


  • « Configurações em Execução
  • Preloading »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


Preloading

A partir do PHP 7.4.0, o PHP pode ser configurado para pré-carregar scripts no opcache quando o mecanismo é iniciado. Quaisquer funções, classes, interfaces ou traits (mas não constantes) nestes arquivos ficarão globalmente disponíveis para todas as solicitações sem precisar ser incluídas explicitamente. Isso troca conveniência e desempenho (porque o código está sempre disponível) para uso de memória de linha de base. Também requer a reinicialização do processo PHP para limpar os scripts pré-carregados, o que significa que esse recurso é prático apenas para uso em produção, não em um ambiente de desenvolvimento.

Observe que a compensação ideal entre desempenho e memória pode variar de acordo com o aplicativo. "Pré-carregar tudo" pode ser a estratégia mais fácil, mas não necessariamente a melhor estratégia. Além disso, o pré-carregamento só é útil quando há um processo persistente de uma solicitação para outra. Isso significa que, embora possa funcionar em um script CLI se o opcache estiver ativado, geralmente é inútil. A exceção é ao usar o pré-carregamento em bibliotecas FFI.

Nota:

O pré-carregamento não é suportado no Windows.

A configuração do pré-carregamento envolve duas etapas e requer que o opcache esteja ativado. Primeiro, defina o valor opcache.preload em php.ini:

opcache.preload=preload.php

preload.php é um arquivo arbitrário que será executado uma vez na inicialização do servidor (PHP-FPM, mod_php, etc.) e carregará o código na memória persistente. Em servidores que iniciam como root antes de alternar para um usuário de sistema sem privilégios, ou se o PHP for executado como root (não recomendado), o valor opcache.preload_user pode especificar o usuário do sistema para executar o pré-carregamento. A execução do pré-carregamento como root não é permitida por padrão. Configure opcache.preload_user=root para permiti-lo explicitamente.

No script preload.php, qualquer arquivo referenciado por include, include_once, require, require_once ou opcache_compile_file() será analisado na memória persistente. No exemplo a seguir, todos os arquivos .php no diretório src serão pré-carregados, a menos que sejam um arquivo Test.

<?php
$directory = new RecursiveDirectoryIterator(__DIR__ . '/src');
$fullTree = new RecursiveIteratorIterator($directory);
$phpFiles = new RegexIterator($fullTree, '/.+((?<!Test)+\.php$)/i', RecursiveRegexIterator::GET_MATCH);

foreach ($phpFiles as $key => $file) {
require_once $file[0];
}
?>

Ambos include e opcache_compile_file()> funcionarão, mas têm implicações diferentes sobre como o código é tratado.

  • include executará o código no arquivo, enquanto opcache_compile_file() não. Isso significa que apenas o primeiro suporta declaração condicional (funções declaradas dentro de um bloco if).
  • Como includeexecutará o código, os arquivos includes aninhados também serão analisados e suas declarações pré-carregadas.
  • opcache_compile_file() pode carregar arquivos em qualquer ordem. Ou seja, se a.php define a classe A e b.php define a classe B que estende A, então opcache_compile_file() pode carregar esses dois arquivos em qualquer ordem. Ao usar include, no entanto, a.php deve ser incluído primeiro.
  • Em ambos os casos, se um script posterior incluir um arquivo que já foi pré-carregado, seu conteúdo ainda será executado, mas quaisquer símbolos que ele definir não serão redefinidos. O uso de include_once não impedirá que o arquivo seja incluído uma segunda vez. Pode ser necessário carregar um arquivo novamente para incluir as constantes globais definidas nele, pois elas não são tratadas pelo pré-carregamento.
Qual abordagem é melhor, portanto, depende do comportamento desejado. Com código que, de outra forma, usaria um autoloader, opcache_compile_file() permite maior flexibilidade. Com o código que seria carregado manualmente, include será mais robusta.


OPcache Funções

Índice

  • opcache_compile_file — Compila e armazena em cache um script PHP sem executá-lo
  • opcache_get_configuration — Obtém informações de configuração sobre o cache
  • opcache_get_status — Obtém informações de status sobre o cache
  • opcache_invalidate — Invalida um script em cache
  • opcache_is_script_cached — Informa se um script é armazenado em cache no OPCache
  • opcache_reset — Redefine o conteúdo do cache opcode


Compila e armazena em cache um script PHP sem executá-lo

  • « OPcache Funções
  • opcache_get_configuration »
  • PHP Manual
  • OPcache Funções
  • Compila e armazena em cache um script PHP sem executá-lo

opcache_compile_file

(PHP 5 >= 5.5.5, PHP 7, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_compile_file — Compila e armazena em cache um script PHP sem executá-lo

Descrição

opcache_compile_file(string $filename): bool

Esta função compila um script PHP e o adiciona ao cache opcode sem executá-lo. Isso pode ser usado para preparar o cache após a reinicialização de um servidor da Web, armazenando previamente em cache os arquivos que serão incluídos em solicitações posteriores.

Parâmetros

filename

O caminho para o script PHP a ser compilado.

Valor Retornado

Retorna true se filename foi compilado com sucesso ou false em caso de falha.

Erros/Exceções

Se filename não puder ser carregado ou compilado, um erro de nível E_WARNING será gerado. Você pode usar @ para suprimir este aviso.

Veja Também

  • opcache_invalidate() - Invalida um script em cache


Obtém informações de configuração sobre o cache

  • « opcache_compile_file
  • opcache_get_status »
  • PHP Manual
  • OPcache Funções
  • Obtém informações de configuração sobre o cache

opcache_get_configuration

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_get_configuration — Obtém informações de configuração sobre o cache

Descrição

opcache_get_configuration(): array|false

Esta função retorna informações de configuração sobre a instância de cache

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma série de informações, incluindo ini, blacklist e versão

Erros/Exceções

Se opcache.restrict_api estiver em uso e o caminho atual violar a regra, um E_WARNING será emitido; nenhuma informação de status será retornada.

Veja Também

  • opcache_get_status() - Obtém informações de status sobre o cache


Obtém informações de status sobre o cache

  • « opcache_get_configuration
  • opcache_invalidate »
  • PHP Manual
  • OPcache Funções
  • Obtém informações de status sobre o cache

opcache_get_status

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_get_status — Obtém informações de status sobre o cache

Descrição

opcache_get_status(bool $include_scripts = true): array|false

Essa função retorna informações de estado sobre a instância do cache na memória. Ele não retornará nenhuma informação sobre o cache do arquivo.

Parâmetros

include_scripts

Incluir informações de estado específicas do script

Valor Retornado

Retorna uma matriz de informações, opcionalmente contendo informações de estado específicas do script, ou false em caso de falha.

Erros/Exceções

Se opcache.restrict_api estiver em uso e o caminho atual violar a regra, um E_WARNING será emitido; nenhuma informação de status será retornada.

Veja Também

  • opcache_get_configuration() - Obtém informações de configuração sobre o cache


Invalida um script em cache

  • « opcache_get_status
  • opcache_is_script_cached »
  • PHP Manual
  • OPcache Funções
  • Invalida um script em cache

opcache_invalidate

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache >= 7.0.0)

opcache_invalidate — Invalida um script em cache

Descrição

opcache_invalidate(string $filename, bool $force = false): bool

Esta função invalida um determinado script do cache opcode. Se force não estiver definido ou for false, o script só será invalidado se o horário de modificação do script for mais recente que os opcodes armazenados em cache. Esta função invalida apenas o cache na memória e não o cache do arquivo.

Parâmetros

filename

O caminho para o script que está sendo invalidado.

force

Se definido como true, o script será invalidado independentemente de a invalidação ser necessária.

Valor Retornado

Retorna true se o cache do opcode para filename foi invalidado ou se não havia nada para invalidar, ou false se o cache do opcode está desabilitado.

Veja Também

  • opcache_compile_file() - Compila e armazena em cache um script PHP sem executá-lo
  • opcache_reset() - Redefine o conteúdo do cache opcode


Informa se um script é armazenado em cache no OPCache

  • « opcache_invalidate
  • opcache_reset »
  • PHP Manual
  • OPcache Funções
  • Informa se um script é armazenado em cache no OPCache

opcache_is_script_cached

(PHP 5 >= 5.5.11, PHP 7, PHP 8, PECL ZendOpcache >= 7.0.4)

opcache_is_script_cached — Informa se um script é armazenado em cache no OPCache

Descrição

opcache_is_script_cached(string $filename): bool

Esta função verifica se um script PHP foi armazenado em cache no OPCache. Isso pode ser usado para detectar mais facilmente o "aquecimento" do cache para um determinado script. Esta função verifica apenas o cache na memória, não o cache do arquivo.

Parâmetros

filename

O caminho para o script PHP a ser verificado.

Valor Retornado

Retorna true se filename for armazenado em cache no OPCache, false caso contrário.

Veja Também

  • opcache_compile_file() - Compila e armazena em cache um script PHP sem executá-lo


Redefine o conteúdo do cache opcode

  • « opcache_is_script_cached
  • Controle de Saída »
  • PHP Manual
  • OPcache Funções
  • Redefine o conteúdo do cache opcode

opcache_reset

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache >= 7.0.0)

opcache_reset — Redefine o conteúdo do cache opcode

Descrição

opcache_reset(): bool

Esta função redefine todo o cache do opcode. Depois de chamar opcache_reset(), todos os scripts serão recarregados e reanalisados na próxima vez que forem atingidos. Esta função redefine apenas o cache na memória, não o cache do arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o cache de opcode foi redefinido, ou false se o cache de opcode estiver desativado ou se a reinicialização estiver pendente ou em progresso (consulte opcache_get_status()).

Veja Também

  • opcache_invalidate() - Invalida um script em cache
  • opcache_get_status() - Obtém informações de status sobre o cache


Controle de Buffer de Saída

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Buffer de Saída
  • Descarregando Buffers de Sistema
  • Buffers de Saída em Nível de Usuário
    • Que Saída é Armazenada em Buffer?
    • Aninhando Buffers de Saída
    • Tamanho do Buffer
    • Operações permitidas em buffers
    • Manipuladores de Saída
    • Trabalhando com Manipuladores de Saída
    • Opções Passadas aos Manipuladores de Saída
    • Valores de Retorno do Menipulador de Saída
  • Exemplos
    • Uso básico
    • Uso de re-escrita na saída
  • Funções para Control de Saída
    • flush — Flush system output buffer
    • ob_clean — Limpa (apaga) o conteúdo do buffer de saída ativo
    • ob_end_clean — Clean (erase) the contents of the active output buffer and turn it off
    • ob_end_flush — Flush (send) the return value of the active output handler and turn the active output buffer off
    • ob_flush — Descarrega (envia) o valor de retorno do manipulador de saída ativo
    • ob_get_clean — Get the contents of the active output buffer and turn it off
    • ob_get_contents — Retorna o conteúdo do buffer de saída
    • ob_get_flush — Flush (send) the return value of the active output handler, return the contents of the active output buffer and turn it off
    • ob_get_length — Retorna o comprimento do buffer de saída
    • ob_get_level — Return the nesting level of the output buffering mechanism
    • ob_get_status — Get status of output buffers
    • ob_implicit_flush — Turn implicit flush on/off
    • ob_list_handlers — List all output handlers in use
    • ob_start — Ativa o buffer de saída
    • output_add_rewrite_var — Add URL rewriter values
    • output_reset_rewrite_vars — Reset URL rewriter values


Introdução

As funções de Controle de Saída permitem controlar quando a saída é enviada do script. Isto pode ser útil em situações diversas, especialmente se for necessário enviar cabeçalhos para o navegador depois que o script começou a enviar dados. As funções de Controle de Saída não afetam os cabeçalhos enviados por funções como header() ou setcookie(), apenas funções como echo e dados entre blocos de código PHP.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração de Controle de Saída
Nome | Padrão | Modificável | Registro de Alterações
output_buffering | "0" | INI_PERDIR |
output_handler | null | INI_PERDIR |
implicit_flush | "0" | INI_ALL |
url_rewriter.tags | "form=" | INI_ALL | A partir do PHP 7.1.0, esta configuração INI afeta somente output_add_rewrite_var(). Antes do PHP 7.1.0, esta configuração INI habilitava duporte a ID de sessão transparente (veja session.trans_sid_tags).
url_rewriter.hosts | $_SERVER['HTTP_HOST'] é usado como padrão. | INI_ALL | Disponível a partir do PHP 7.1.0
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

output_buffering bool/int

Buffer de saída para todos os arquivos pode ser habilitado configurando-se esta diretiva para "On". Para limitar o tamanho do buffer, um número/quantidade correspondendo ao número máximo de bytes permitidos pode ser usado no lugar de "On" para o valor desta diretiva. Por exemplo, output_buffering=4096. Esta diretiva é sempre "Off" no PHP-CLI.

output_handler string

A saída de scripts pode ser redirecionada para uma função. Por exemplo, ao configurar output_handler para mb_output_handler(), a codificação de caracteres será convertida de forma trasnparente para a codificação especificada. Configurar qualquer manipulador de saída automaticamente habilita o buffer de saída.

Nota:

mb_output_handler() e ob_iconv_handler() não podem ser usadas juntas; e ob_gzhandler() e zlib.output_compression não podem ser usadas com nenhuma das funções a seguir: mb_output_handler(), ob_gzhandler(), zlib.output_compression, o manipulador 'URL-Rewriter' (veja session.use_trans_sid e output_add_rewrite_var()).

Nota:

Apenas funções internas do PHP podem ser usadas com esta diretiva. Para funções definidas pelo usuário, use ob_start().

implicit_flush bool

false por padrão. Alterar para true indica ao PHP que a camada de saída deve se descarregar automaticamente após cada bloco de saída. Isto é equivalente a chamar a função do PHP flush() após cada chamada a qualquer função que produza saída (tal como print ou echo) e cada bloco HTML.

Ao usar o PHP em um ambiente web, habilitar esta opção tem implicações sérias em desempenho e é geralmente recomendada apenas para depuração. O valor deste parâmetro é true ao operar sob o CLI SAPI.

Consulte também ob_implicit_flush().

url_rewriter.tags string
url_rewriter.tags especifica etiquetas e atributos HTML cujas URLs são re-escritas pelos valores de output_add_rewrite_var(). O padrão é "form=". Adicionar "form=" ou qualquer atributo form irá adicionar um elemento input oculto ao form com um atributo de nome e valor para cada par de nome-valor passado para output_add_rewrite_var().
Cuidado

Caso seja adicionada a mesma etiqueta mais de uma vez a url_rewriter.tags, apenas a primeira será usada durante o processo de re-escrita da URL.

Nota: Antes do PHP 7.1.0, url_rewriter.tags era usado para especificar session.trans_sid_tags.

url_rewriter.hosts string
url_rewriter.hosts especifica quais hosts são re-escritos para incluir os valores output_add_rewrite_var(). O padrão é $_SERVER['HTTP_HOST']. Múltiplos hosts podem ser especificados por uma lista separada por vírgulas que não contenha espaços. Por exemplo, "php.net,wiki.php.net,bugs.php.net".


Constantes pré-definidas

As constantes abaixo estão sempre disponíveis como parte do núcleo do PHP.

Opções de status passadas ao manipulador de saída

As opções a seguir são passadas no segundo parâmetro (phase) do manipulador de saída definido por ob_start() como parte de uma máscara de bits:

PHP_OUTPUT_HANDLER_START (int)

Indica que o buffer de saída iniciou.

PHP_OUTPUT_HANDLER_WRITE (int)

Indica que o buffer de saída está sendo despejado, e tinha dados para enviar.

PHP_OUTPUT_HANDLER_FLUSH (int)

Indica que o buffer de saída foi despejado.

PHP_OUTPUT_HANDLER_CLEAN (int)

Indica que o buffer de saída foi limpo.

PHP_OUTPUT_HANDLER_FINAL (int)

Indica que esta é a operação de buffer de saída final.

PHP_OUTPUT_HANDLER_CONT (int)

Indica que o buffer de saída foi despejado, mas que operação de buffer de saída irá continuar.

Este é um apelido para PHP_OUTPUT_HANDLER_WRITE.

PHP_OUTPUT_HANDLER_END (int)

Indica que o buffer de saída terminou.

Este é um apelido para PHP_OUTPUT_HANDLER_FINAL.

Opções de controle de buffer de saída

As opções a seguir podem ser passadas no terceiro parâmetro (flags) do manipulador de saída definido por ob_start() como uma máscara de bits.:

PHP_OUTPUT_HANDLER_CLEANABLE (int)

Controla se um buffer de saída criado por ob_start() pode ser limpo por ob_clean(). Esta opção não controla o comportamento de ob_end_clean() ou ob_get_clean().

PHP_OUTPUT_HANDLER_FLUSHABLE (int)

Controla se um buffer de saída criado por ob_start() pode ser despejado por ob_flush(). Esta opção não controla o comportamento de ob_end_flush() ou ob_get_flush().

PHP_OUTPUT_HANDLER_REMOVABLE (int)

Controla se um buffer de saída criado por ob_start() pode ser removido antes do final do script ou ao chamar ob_end_clean(), ob_end_flush(), ob_get_clean() ou ob_get_flush().

PHP_OUTPUT_HANDLER_STDFLAGS (int)

O conjunto padrão de opções de buffer de saída; atualmente equivalente a PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE.

Opções de status do manipulador de saída

As opções a seguir são parte da máscara de bits flags retornada por ob_get_status():

PHP_OUTPUT_HANDLER_STARTED (int)

Indica que um manipulador de saída foi chamado.

PHP_OUTPUT_HANDLER_DISABLED (int)

Indica que o manipulador de saída está desabilitado. Esta opção é definida quando o manipulador de saída retorna false ou falha durante o processamento do buffer ou se foi definido antes da chamada ao manipulador de saída.

PHP_OUTPUT_HANDLER_PROCESSED (int)

Indica que o manipulador de saída processou o buffer com sucesso.


Buffer de Saída

O buffer de saída é o buffer (armazenamento temporário) da saída antes de ela ser descarregada (enviada e descartada) para o navegador (em um contexto da web) ou para o shell (na linha de comando). Enquanto o buffer de saída estiver ativo, nenhuma saída será enviada do script; em vez disso, a saída será armazenada em um buffer interno.

Buffer Afetando o PHP

O PHP depende da infraestrutura de software/hardware subjacente ao descarregar a saída. O buffer implementado por consoles na linha de comando (por exemplo, buffer de linha) ou servidores web e navegador em um contexto web (por exemplo, totalmente bufferizado) afeta quando a saída é exibida para o usuário final. Alguns desses efeitos podem ser eliminados ajustando as configurações do servidor e/ou alinhando os tamanhos dos buffers das diversas camadas.

Controle de Buffer de Saída no PHP

O PHP fornece um buffer de saída em nível de usuário totalmente armazenado em buffer com funções para iniciar, manipular e desligar o buffer (a maioria das funções ob_*) e duas funções para descarregar os buffers subjacentes do sistema (flush() e ob_implicit_flush()). Algumas dessas funcionalidades podem ser definidas e/ou configuradas usando também as configurações apropriadas do php.ini.

Casos de Uso

O buffer de saída geralmente é útil em situações em que a saída armazenada em buffer é modificada ou inspecionada ou é usada mais de uma vez em uma solicitação; ou quando a descarga controlada da saída é desejada. Os casos de uso específicos incluem:

  • Armazenar em cache o resultado de scripts com uso intensivo de tempo/computação, por exemplo, gerando páginas HTML estáticas.
  • Reutilizar a saída gerada exibindo-a, salvando-a em um arquivo e/ou enviando-a por e-mail.
  • Liberar o cabeçalho de uma página HTML separada do corpo permite que os navegadores carreguem recursos externos enquanto o script executa processos potencialmente mais demorados (por exemplo, acesso a banco de dados e arquivos, conexão de rede externa). Isto só é útil se o código de status HTTP não puder ser alterado após o envio dos cabeçalhos.
  • Extrair informações de funções que de outra forma produziriam saída (por exemplo, phpinfo()).
  • Controlar a saída de código de terceiros modificando/usando partes (por exemplo, extraindo dados, substituindo palavras/frases, adicionando tags HTML ausentes) ou descartando-o inteiramente sob certas condições (por exemplo, erros).
  • Preenchendo certas funcionalidades indisponíveis do servidor web (por exemplo, compactação ou codificação de saída)


Descarregando Buffers de Sistema

O PHP fornece duas maneiras relacionadas para descarregar os buffers de sistema (enviar e descartar o conteúdo): chamando-se a função flush() e habilitando o descarregamento implicitamente com a função ob_implicit_flush() ou com a configuração implicit_flush do php.ini.

Comportamento do Descarregameto da Saída

Com o descarregamento implícito desabilitado, o PHP irá descarregar a saída somente quendo flush() for chamada ou quando o script terminar.

Com o descarregamento implícito habilitado, o PHP tentará descarregar após cada bloco de código que resulte em uma saída. A saída neste contexto é um dado de comprimento maior que zero que:

  • esteja fora das tags <?php ?>
  • seja exibido por construções de linguagem e funções cujo propósito explícito é mostrar variáveis fornecidas pelo usuário ou strings tais como echo, print, printf(), var_dump(), var_export() e vprintf()
  • seja exibido por funções cujo propósito é coletar e mostrar
dados/informações no script em execução ou no PHP tais como
debug_print_backtrace(), phpcredits() e
phpinfo(),
ReflectionExtension::info()
  • seja mostrado pelo PHP em uma exceção não capturada ou erro não gerenciado (sujeitos às configurações de display_errors e error_reporting)
  • seja qualquer coisa escrita em php://output

Nota: Exibir strings vazias ou enviar cabeçalhos não é considerado saída e não resultará em operação de descarregamento.

Aviso

Se o descarregamento implícito estiver habilitado, caracteres de controle (ex.: "\n", "\r", "\0") também irão ativar o descarregamento.

Limitações

Esta funcionalidade não pode descarregar buffers de saída no nível do usuário. Para usá-los juntos, buffers de saída no nível do usuário devem ser descarregados antes do descarregamento ds buffers de sistema para que o PHP produza qualquer saída.

Aviso

Chamar flush() ou habilitar o descarregamento implícito pode interferir com os manipuladores de saída de buffers no nível do usuário que definem e enviam cabeçalhos em um contexto web (ex.: ob_gzhandler()) enviando cabeçalhos antes que estes manipuladores o façam.

Buffer implementado pelo software/hardware subjacente não podem ser substituídos pelo PHP e devem ser levados em consideração ao se trabalhar com as funções de controle de buffer do PHP. Verificar as configurações de buffer dos servidores web, navegadores e consoles e trabalhar com elas pode aliviar possíveis problemas. Trabalhar em um contexto web, tanto as configurações de buffer do servidor quanto de buffer do script podem ser ajustadas para operar sequencialmente enquanto que contornar as estratégias de buffer de vários navegadores pode ser conseguido ajustando o buffer no script PHP. Em consoles que implementam buffer de linha, caracteres de nova linha podem ser inseridos nos locais apropriados antes de liberar a saída.

Diferenças SAPI No Descarregamento

Embora o descarregamento seja implementado por cada SAPI de uma maneira ligeiramente diferente, essas implementações se enquadram em uma de duas categorias:

  • SAPIs usadas em um contexto web irão descarregar cabeçalhos primeiro, e depois a saída. Apache2Handler, CGI, FastCGI e FPM são tais SAPIs.
  • Outras SAPIs tais como CLI e embed irão descarregar somente a saída.


Buffers de Saída em Nível de Usuário

Índice

  • Que Saída é Armazenada em Buffer?
  • Aninhando Buffers de Saída
  • Tamanho do Buffer
  • Operações permitidas em buffers
  • Manipuladores de Saída
  • Trabalhando com Manipuladores de Saída
  • Opções Passadas aos Manipuladores de Saída
  • Valores de Retorno do Menipulador de Saída

Os buffers de saída no nível do usuário podem ser iniciados, manipulados e finalizados a partir do código PHP. Cada um desses buffers inclui um buffer de saída e uma função de manipulador de saída associada.

Ativando o buffer de saída

O buffer de saída pode ser ativado usando a função ob_start() ou definindo as configurações output_buffering e output_handler do php.ini. Embora ambas possam criar buffers de saída, ob_start() é mais flexível, pois aceita funções definidas pelo usuário como manipuladores de saída e as operações permitidas no buffer (liberar, limpar, remover) também podem ser definidas. Buffers iniciados com ob_start() estarão ativos a partir da linha em que a função foi chamada, enquanto aqueles iniciados com output_buffering irão armazenar a saída em buffer a partir da primeira linha do script.

O PHP também é fornecido com um manipulador de saída "URL-Rewriter" integrado que inicia seu próprio buffer de saída e permite até no máximo duas instâncias dele em execução a qualquer momento (uma para reescrita de URL no nível de usuário e uma para suporte transparente ao ID de sessão). Esses buffers podem ser iniciados chamando a função output_add_rewrite_var() e/ou ativando a configuração session.use_trans_sid do php.ini.

A extensão zlib incluída tem seu próprio buffer de saída que pode ser ativado usando a configuração zlib.output_compression do php.ini.

Nota: Embora "URL-Rewriter" seja especial porque permite apenas até duas instâncias dele em execução ao mesmo tempo, todos os buffers de saída em nível de usuário usam os mesmos buffers subjacentes usados ??por ob_start() com sua funcionalidade implementada por uma função de manipulador de saída personalizada. Como tal, todas as suas funcionalidades podem ser emuladas pelo código do usuário.

Descarregando, Acessando e Limpando o Conteúdo do Buffer

A descarga envia e descarta o conteúdo do buffer ativo. Os buffers de saída são descarregados quando o tamanho da saída excede o tamanho do buffer; quando o script termina; ou quando ob_flush(), ob_end_flush() ou ob_get_flush() são chamados.

Cuidado

Chamar ob_end_flush() ou ob_get_flush() irá desligar o buffer ativo.

Cuidado

A descarga de buffers liberará o valor de retorno do manipulador de saída, que pode ser diferente do conteúdo do buffer. Por exemplo, usar ob_gzhandler() compactará a saída e liberará a saída compactada.

O conteúdo do buffer ativo pode ser recuperado chamando ob_get_contents(), ob_get_clean() ou ob_get_flush().

Se apenas o comprimento do conteúdo do buffer for necessário, ob_get_length() ou ob_get_status() retornação o comprimento do conteúdo em bytes.

Cuidado

Chamar ob_get_clean() ou ob_get_flush() irá desligar o buffer ativo depois de retornar seu conteúdo.

O conteúdo do buffer ativo pode ser limpo chamando ob_clean(), ob_end_clean() ou ob_get_clean().

Cuidado

Chamar ob_end_clean() ou ob_get_clean() desligará o buffer ativo.

Desligando Buffers

Buffers de saída podem ser desligados chamando ob_end_clean(), ob_end_flush(), ob_get_flush() ou ob_get_clean().

Aviso

Buffers de saída iniciados sem a opção PHP_OUTPUT_HANDLER_REMOVABLE não podem ser desligados e podem gerar um E_NOTICE.

Todo buffer de saída que não tiver sido fechado até o final do script, ou quando a função exit() for chamada, será descarregado e desligado pelo processo de desligamento do PHP. Os buffers serão descarregados e desligados na ordem inversa de sua inicialização. O último buffer iniciado será o primeiro, o primeiro buffer iniciado será o último a ser descarregado e desligado.

Cuidado

Se a descarga do conteúdo do buffer não for desejada, um manipulador de saída personalizado deverá ser usado para evitar a descarga durante o desligamento.

Exceções Lançadas em Manipuladores de Saída

Se uma exceção não capturada é lançada em um manipulador de saída, o programa termina e o manipulador é invocado pelo processo de desligamento depois do qual a mensagem de erro "Uncaught Exception" (exceção não capturada) é descarregada.

Se a exceção não capturada é lançada em um manipulador invocado por ob_flush(), ob_end_flush() ou ob_get_flush(), o conteúdo do buffer é descarregado antes da mensagem de erro.

Se uma exceção não capturada é lançada em um manipulador de saída durante o desligamento, o manipulador é terminado e nem o conteúdo do buffer nem a mensagem de erro são descarregados.

Nota: Se um manipulador lança uma exceção, sua constante de estado PHP_OUTPUT_HANDLER_DISABLED é definida.

Erros Emitidos em Manipuladores de Saída

Se um erro não fatal for gerado em um manipulador de saída, o programa continuará a execução.

Se o erro não fatal for gerado em um manipulador invocado por ob_flush(), ob_end_flush() ou ob_get_flush(), o buffer descarrega determinados dados dependendo do valor de retorno do manipulador. Se o manipulador retornar false, o buffer e a mensagem de erro são descarregados. Se retornar qualquer outra coisa, o valor de retorno do manipulador será descarregado, mas a mensagem de erro não.

Nota: Se um manipulador returnar false, sua constante de estado PHP_OUTPUT_HANDLER_DISABLED sera definida.

Se um erro fatal for gerado em um manipulador de saída, o programa será encerrado e o manipulador será invocado pelo processo de desligamento, após o qual a mensagem de erro será descarregada.

Se o erro fatal for gerado em um manipulador invocado por ob_flush(), ob_end_flush() ou ob_get_flush(), o conteúdo dos buffers será descarregado antes da mensagem de erro.

Se um erro fatal for gerado em um manipulador de saída durante o desligamento, o programa será encerrado sem descarregar o buffer ou a mensagem de erro.

Saída nos Manipuladores de Saída

Em circunstâncias específicas, a saída produzida no manipulador é descarregada junto com o conteúdo do buffer. Esta saída não é anexada ao buffer e não faz parte da string retornada por ob_get_flush().

Durante operações de descarga (ao chamar ob_flush(), ob_end_flush(), ob_get_flush() e durante o desligamento), se o valor de retorno de um manipulador for false, o conteúdo do buffer é descarregado seguido pela saída. Se o manipulador não for invocado durante o desligamento, o fato do manipulador lançar uma exceção ou chamar a função exit() resultará no mesmo comportamento.

Nota: Se um manipulador retornar false, sua constante de estado PHP_OUTPUT_HANDLER_DISABLED é definida.

Constantes de Estado do Manipulador de Saída

As constantes de estado de manipulador da máscara de bits flags do buffer são definidas toda vez que o manipulador de saída é invocado e são parte das flags retornadas por ob_get_status(). Se o manipulador executa com sucesso e não retorna false, PHP_OUTPUT_HANDLER_STARTED e PHP_OUTPUT_HANDLER_PROCESSED são definidas. Se o manipulador retonar false ou lança uma exceção durante a execução, PHP_OUTPUT_HANDLER_STARTED e PHP_OUTPUT_HANDLER_DISABLED são definidas.

Nota: Se a constante PHP_OUTPUT_HANDLER_DISABLED de um manipulador for definida, o manipulador não será invocado chamando-se ob_end_clean(), ob_end_flush(), ob_get_clean(), ob_get_flush() ou durante o processo de desligamento do PHP. Esta constante não tem efeito ao chamar ob_clean() ou ob_flush().


Que Saída é Armazenada em Buffer?

Os buffers de saída em nível de usuário do PHP armazenam toda a saída após serem iniciados, até que sejam desligados ou o script termine. A saída no contexto do buffer de saída no nível do usuário do PHP é tudo o que o PHP exibiria ou enviaria de volta ao navegador. Em termos práticos, a saída são dados de comprimento diferente de zero que são:

  • esteja fora das tags <?php ?>
  • seja exibido por construções de linguagem e funções cujo propósito explícito é mostrar variáveis fornecidas pelo usuário ou strings tais como echo, print, printf(), var_dump(), var_export() e vprintf()
  • seja exibido por funções cujo propósito é coletar e mostrar
dados/informações no script em execução ou no PHP tais como
debug_print_backtrace(), phpcredits() e
phpinfo(),
ReflectionExtension::info()
  • seja mostrado pelo PHP em uma exceção não capturada ou erro não gerenciado (sujeitos às configurações de display_errors e error_reporting)
  • seja qualquer coisa escrita em php://output

Nota: Os dados gravados diretamente em stdout ou passados ??para uma função SAPI com funcionalidade semelhante não serão capturados pelos buffers de saída no nível do usuário. Isso inclui escrever dados em stdout com fwrite() ou enviar cabeçalhos usando header() ou setcookie().


Aninhando Buffers de Saída

Se houver um buffer de saída ativo quando um novo buffer for iniciado, o novo buffer será aninhado dentro do buffer ativo anteriormente. O buffer interno se comportará da mesma maneira, independentemente de estar aninhado, mas a saída armazenada em buffer por ele não será armazenada em buffer pelo buffer externo. Somente a saída liberada pelo buffer interno será armazenada no buffer externo.

A maioria das funções ob_* só funcionam com o buffer de saída ativo (o último iniciado), portanto, apenas o buffer ativo pode ser descarregado, limpo e desligado. As funções que funcionam com outros buffers são ob_list_handlers() que retorna a lista de todos os manipuladores de saída em uso e ob_get_status() que pode retornar informações apenas sobre o buffer ativo ou sobre todos os buffers em uso .

Chamar ob_get_level() ou ob_get_status() retornará o nível de aninhamento do buffer de saída ativo.

Cuidado

O valor para níveis idênticos entre ob_get_level() e ob_get_status() está desfasado em um. Para ob_get_level() o primeiro nível é 1, enquanto para ob_get_status() o primeiro nível é 0.


Tamanho do Buffer

Os tamanhos dos buffers são expressos por números inteiros e representam o número de bytes que o buffer pode armazenar sem descarregar. Quando o tamanho da saída no buffer excede o tamanho do buffer, o conteúdo do buffer é enviado para o manipulador de saída, seu valor de retorno é descarregado e o buffer é limpo.

Com exceção de "URL-Rewriter", o tamanho dos buffers de saída pode ser definido quando o buffer é iniciado. Se definido como 0, o buffer de saída será limitado apenas pela memória disponível para o PHP. Se definido como 1, o buffer será descarregado após cada bloco de código produzir qualquer saída de comprimento diferente de zero.

O tamanho dos buffers de saída pode ser recuperado chamando ob_get_status().

Buffers de saída iniciados com ob_start() terão seus tamanhos de buffer definidos para o valor inteiro passado para o segundo parâmetro chunk_size da função. Se omitido, será definido como 0.

O buffer de saída iniciado com output_buffering definido como "On" terá seu tamanho de buffer definido como 0. Se definido como um número inteiro, o tamanho do buffer corresponderá a esse número.

O tamanho do buffer do "URL-Rewriter"está definido como 0, portanto ele é limitado apenas pela memória disponível para o PHP.

O tamanho do buffer de saída do zlib é controlado pela configuração zlib.output_compression do php.ini. Se definido como "On" o tamanho do buffer será "16K"(16384). Se definido como um número inteiro, o tamanho do buffer corresponderá a esse número em bytes.


Operações permitidas em buffers

As operações permitidas em buffers podem ser controladas passando uma das opções de controle de buffer para o terceiro parâmetro flags de ob_start(). Se omitido, todas as operações serão permitidas por padrão. Se 0 for usado, o buffer não poderá ser descarregado, limpo ou removido, mas seu conteúdo ainda poderá ser recuperado.

PHP_OUTPUT_HANDLER_CLEANABLE permite que ob_clean() limpe o conteúdo do buffer.

Aviso

A ausência da opção PHP_OUTPUT_HANDLER_CLEANABLE não impedirá que ob_end_clean() ou ob_get_clean() limpem o conteúdo do buffer.

PHP_OUTPUT_HANDLER_FLUSHABLE permite que ob_flush() descarregue o conteúdo do buffer.

Aviso

A ausência da opção PHP_OUTPUT_HANDLER_FLUSHABLE não impedriá que ob_end_flush() ou ob_get_flush() descarreguem o conteúdo do buffer.

PHP_OUTPUT_HANDLER_REMOVABLE permite que ob_end_clean(), ob_end_flush(), ob_get_clean() ou ob_get_flush() desliguem o buffer.

PHP_OUTPUT_HANDLER_STDFLAGS, a combinação das três opções irá permitir que cada uma das três operações seja realizada no buffer.


Manipuladores de Saída

Manipuladores de saída são funções do tipo callable associadas com buffers de saída
que são invocados ao chamar ob_clean(),
ob_flush(), ob_end_flush(),
ob_get_flush(), ob_end_clean(),
ob_get_clean() ou durante o processo de desligamento do PHP.

Nota: O processo de desligamento irá descarregar o valor de retorno do manipulador.

Se omitido ou null ao iniciar o buffer de saída, o "default output handler" (manipulador de saída padão) interno será usado, retornando o conteúdo não modificado do buffer quando invocado. Manipuladores de saída podem ser usados ??para retornar uma versão modificada do conteúdo do buffer e/ou ter efeitos colaterais (por exemplo, enviar cabeçalhos).

O PHP vem com dois manipuladores de saída internos: "default output handler" e "URL-Rewriter" (que é integrado em seu próprio buffer de saída e no máximo duas instâncias dele podem ser iniciadas).

As extensões incluídas no PHP são equipadas com quatro manipuladores de saída adicionais: mb_output_handler(), ob_gzhandler(), ob_iconv_handler() e ob_tidyhandler().


Trabalhando com Manipuladores de Saída

Quando invocados, os manipuladores de saída recebem o conteúdo do buffer e uma máscara de bits indicando o status do buffer de saída.

handler ( string $buffer , int $phase = ?): string
buffer
Conteúdo do buffer de saída.
phase
Máscara de bits das constantes PHP_OUTPUT_HANDLER_* .

Aviso

Chamar qualquer das funções a seguir de dentro de um manipulador de saída
resultará em um erro fatal:
ob_clean(), ob_end_clean(),
ob_end_flush(), ob_flush(),
ob_get_clean(), ob_get_flush() ou
ob_start().

Nota: Se a constante PHP_OUTPUT_HANDLER_DISABLED de um manipulador estiver definida, ele não será invocado chamando ob_end_clean(), ob_end_flush(), ob_get_clean(), ob_get_flush() ou durante o processo de desligamento do PHP. Esta opção não tem efeito ao chamar ob_clean() ou ob_flush().

Nota: O diretório de trabalho do script pode mudar dentro da função de desligamento em alguns servidores web, por ex. Apache ou o servidor web integrado.


Opções Passadas aos Manipuladores de Saída

A máscara de bits passada para o segundo parâmetro phase do manipulador de saída fornece informações sobre a invocação do manipulador.

Nota: A máscara de bits pode incluir mais de uma opção e o operador binário & deve ser usado para verificar se uma opção está definida.

Aviso

O valor de PHP_OUTPUT_HANDLER_WRITE e seu apelido PHP_OUTPUT_HANDLER_CONT é 0 portanto, se ele está definido ou não só pode ser determinado usando-se um operador de igualdade (== ou ===).

As seguintes opções são definidas em uma fase específica do ciclo de vida do manipulador: PHP_OUTPUT_HANDLER_START é definida quando um manipulador é invocado pela primeira vez. PHP_OUTPUT_HANDLER_FINAL ou seu apelido PHP_OUTPUT_HANDLER_END é definida quando um manipulador é invocado pela última vez, ou seja, ele está sendo desligado. Esta opção também é definida quando os buffers estão sendo desligados pelo processo de desligamento do PHP.

As seguintes opções são definidas por uma invocação específica do manipulador: PHP_OUTPUT_HANDLER_FLUSH é definida quando o manipulador é invocado chamando-se ob_flush(). PHP_OUTPUT_HANDLER_WRITE ou seu apelido PHP_OUTPUT_HANDLER_CONT é definida quando o tamanho de seu conteúdo é igual ou excede o tamanho do buffer e o manipulador é invocado enquanto o buffer está sendo descarregado automaticamente. PHP_OUTPUT_HANDLER_FLUSH é definida quando o manipulador é invocado chamando-se ob_clean(), ob_end_clean() ou ob_get_clean(). Quando ob_end_clean() ou ob_get_clean() são chamados, PHP_OUTPUT_HANDLER_FINAL também é definida.

Nota: Quando ob_end_flush() ou ob_get_flush() são chamadas, PHP_OUTPUT_HANDLER_FINAL é definida mas PHP_OUTPUT_HANDLER_FLUSH não é.


Valores de Retorno do Menipulador de Saída

O valor de retorno do manipulador de saída é internamente forçado para uma string seguindo a semântica padrão de tipos do PHP, com duas exceções: arrays e booleanos.

Arrays são convertidos na string "Array" mas o alerta Array to string conversion (conversão de array para string) não é emitido.

Se o manipulador retorna false, o conteúdo do buffer é retornado. Se o manipulador retorna true, uma string vazia é retornada.

Nota: Se o manipulador retorna false ou lança uma exceção, sua constante de estado PHP_OUTPUT_HANDLER_DISABLED é definida.


  • « Valores de Retorno do Menipulador de Saída
  • Uso básico »
  • PHP Manual
  • Controle de Saída
  • Exemplos

Exemplos

Índice

  • Uso básico
  • Uso de re-escrita na saída


Uso básico

Exemplo #1 Exemplo de Controle de Saída

<?php

ob_start();
echo "Hello\n";

setcookie("cookiename", "cookiedata");

ob_end_flush();

?>

No exemplo acima, a saída de echo seria armazenada no buffer de saída até que ob_end_flush() fosse chamada. Neste meio tempo, a chamada a setcookie() armazenou com sucesso um cookie sem causar um erro. (Normalmente não se pode enviar cabeçalhos ao navegador depois que dados já foram enviados.)


Uso de re-escrita na saída

Desde o PHP 7.1.0, output_add_rewrite_var() e output_reset_rewrite_vars() usam buffer dedicado de saída, isto é, não usam o buffer de saída trans sid.

Exemplo #1 Exemplo de re-escrita na saída

<?php
// Este código funciona com PHP 7.1.0, 7.0.10, 5.6.25 e posteriores.

// HTTP_HOST é o servidor alvo padrão. Defina manualmente para fazer com o que o código de exemplo funcione.
$_SERVER['HTTP_HOST'] = 'php.net';

// Re-escrita na saída re-escreve apenas formulários. Adicione a=href.
// Etiquetas podem ser especificadas nome_da_etiqueta=atribulo_url, ex.: img=src,iframe=src
// Não é permitido espaço em branco entre as definições.
// Etiqueta 'form' é uma etiqueta especial que adiciona entrada oculta.
ini_set('url_rewriter.tags','a=href,form=');
var_dump(ini_get('url_rewriter.tags'));

// Isto é adicionado à URL e ao formulário
output_add_rewrite_var('test', 'value');
?>
<a href="//php.net/index.php?bug=1234">bug1234</a>
<form action="https://php.net/?bug=1234&edit=1" method="post">
<input type="text" name="title" />
</form>

O exemplo acima produzirá:

<a href="//php.net/?bug=1234&test=value">bug1234</a>
<form action="https://php.net/?bug=1234&edit=1" method="post"><input type="hidden" name="test" value="value" />
 <input type="text" name="title" />
</form>

Desde o PHP 7.1.0, funções de re-escrita na saída têm suas próprias configurações INI, url_rewriter.tags e url_rewriter.hosts.


Funções para Control de Saída

Veja Também

Veja também header() e setcookie().

Índice

  • flush — Flush system output buffer
  • ob_clean — Limpa (apaga) o conteúdo do buffer de saída ativo
  • ob_end_clean — Clean (erase) the contents of the active output buffer and turn it off
  • ob_end_flush — Flush (send) the return value of the active output handler and turn the active output buffer off
  • ob_flush — Descarrega (envia) o valor de retorno do manipulador de saída ativo
  • ob_get_clean — Get the contents of the active output buffer and turn it off
  • ob_get_contents — Retorna o conteúdo do buffer de saída
  • ob_get_flush — Flush (send) the return value of the active output handler, return the contents of the active output buffer and turn it off
  • ob_get_length — Retorna o comprimento do buffer de saída
  • ob_get_level — Return the nesting level of the output buffering mechanism
  • ob_get_status — Get status of output buffers
  • ob_implicit_flush — Turn implicit flush on/off
  • ob_list_handlers — List all output handlers in use
  • ob_start — Ativa o buffer de saída
  • output_add_rewrite_var — Add URL rewriter values
  • output_reset_rewrite_vars — Reset URL rewriter values


Flush system output buffer

  • « Funções para Control de Saída
  • ob_clean »
  • PHP Manual
  • Funções para Control de Saída
  • Flush system output buffer

flush

(PHP 4, PHP 5, PHP 7, PHP 8)

flush — Flush system output buffer

Descrição

flush(): void

Flushes the system write buffers of PHP and the backend used by PHP (e.g.: CGI, a web server). In a command line environment flush() will attempt to flush the contents of the buffers only whereas in a web context headers and the contents of the buffers are flushed.

Nota: flush() may not be able to override the buffering scheme of the web server and it has no effect on any client-side buffering in the browser.

Nota: This function does not have any effect on user level output handlers such as those started by ob_start() or output_add_rewrite_var().

Aviso

flush() can interfere with output handlers that set and send headers in a web context (e.g. ob_gzhandler()) by sending headers before these handlers can do so.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • ob_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo
  • ob_clean() - Limpa (apaga) o conteúdo do buffer de saída ativo
  • ob_end_flush() - Flush (send) the return value of the active output handler and turn the active output buffer off
  • ob_end_clean() - Clean (erase) the contents of the active output buffer and turn it off


Limpa (apaga) o conteúdo do buffer de saída ativo

  • « flush
  • ob_end_clean »
  • PHP Manual
  • Funções para Control de Saída
  • Limpa (apaga) o conteúdo do buffer de saída ativo

ob_clean

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ob_clean — Limpa (apaga) o conteúdo do buffer de saída ativo

Descrição

ob_clean(): bool

Esta função chama o manipulador de saída (com a opção PHP_OUTPUT_HANDLER_CLEAN), descarta seu valor de retorno e limpa (apaga) o conteúdo do buffer de saída ativo.

Esta função não desliga o buffer de saída ativo como a função ob_end_clean() ou ob_get_clean() fazem.

ob_clean() falhará sem um buffer de saída ativo iniciado com a opção PHP_OUTPUT_HANDLER_CLEANABLE.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se a função falhar ela gera um E_NOTICE.

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_get_contents() - Retorna o conteúdo do buffer de saída
  • ob_end_clean() - Clean (erase) the contents of the active output buffer and turn it off
  • ob_get_clean() - Get the contents of the active output buffer and turn it off
  • ob_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo


Clean (erase) the contents of the active output buffer and turn it off

  • « ob_clean
  • ob_end_flush »
  • PHP Manual
  • Funções para Control de Saída
  • Clean (erase) the contents of the active output buffer and turn it off

ob_end_clean

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_end_clean — Clean (erase) the contents of the active output buffer and turn it off

Descrição

ob_end_clean(): bool

This function calls the output handler (with the PHP_OUTPUT_HANDLER_CLEAN and PHP_OUTPUT_HANDLER_FINAL flags), discards it's return value, discards the contents of the active output buffer and turns off the active output buffer.

ob_end_clean() will fail without an active output buffer started with the PHP_OUTPUT_HANDLER_REMOVABLE flag.

ob_end_clean() will discard the contents of the active output buffer even if it was started without the PHP_OUTPUT_HANDLER_CLEANABLE flag.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

If the function fails it generates an E_NOTICE.

Exemplos

The following example shows an easy way to get rid of the contents of the active output buffer:

Exemplo #1 ob_end_clean() example

<?php
ob_start();
echo 'Text that won\'t get displayed.';
ob_end_clean();
?>

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_get_contents() - Retorna o conteúdo do buffer de saída
  • ob_clean() - Limpa (apaga) o conteúdo do buffer de saída ativo
  • ob_get_clean() - Get the contents of the active output buffer and turn it off
  • ob_end_flush() - Flush (send) the return value of the active output handler and turn the active output buffer off


Flush (send) the return value of the active output handler and turn the active output buffer off

  • « ob_end_clean
  • ob_flush »
  • PHP Manual
  • Funções para Control de Saída
  • Flush (send) the return value of the active output handler and turn the active output buffer off

ob_end_flush

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_end_flush — Flush (send) the return value of the active output handler and turn the active output buffer off

Descrição

ob_end_flush(): bool

This function calls the output handler (with the PHP_OUTPUT_HANDLER_FINAL flag), flushes (sends) it's return value, discards the contents of the active output buffer and turns off the active output buffer.

ob_end_flush() will fail without an active output buffer started with the PHP_OUTPUT_HANDLER_REMOVABLE flag.

ob_end_flush() will flush (send) the return value of the output handler even if the active output buffer was started without the PHP_OUTPUT_HANDLER_FLUSHABLE flag.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

If the function fails it generates an E_NOTICE.

Exemplos

Exemplo #1 ob_end_flush() example

The following example shows an easy way to flush and end all output buffers:

<?php
while (@ob_end_flush());
?>

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_get_contents() - Retorna o conteúdo do buffer de saída
  • ob_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo
  • ob_get_flush() - Flush (send) the return value of the active output handler, return the contents of the active output buffer and turn it off
  • ob_end_clean() - Clean (erase) the contents of the active output buffer and turn it off


Descarrega (envia) o valor de retorno do manipulador de saída ativo

  • « ob_end_flush
  • ob_get_clean »
  • PHP Manual
  • Funções para Control de Saída
  • Descarrega (envia) o valor de retorno do manipulador de saída ativo

ob_flush

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ob_flush — Descarrega (envia) o valor de retorno do manipulador de saída ativo

Descrição

ob_flush(): bool

Esta função chama o manipulador de saída (com a opção PHP_OUTPUT_HANDLER_FLUSH), descarrega (envia) seu valor de retorno e descarta o conteúdo do buffer de saída ativo.

Esta função não desliga o buffer de saída ativo como as funções ob_end_flush() ou ob_get_flush() fazem.

ob_flush() falhará sem um buffer de saída ativo iniciado com a opção PHP_OUTPUT_HANDLER_FLUSHABLE.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se a função falhar ela gera um E_NOTICE.

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_get_contents() - Retorna o conteúdo do buffer de saída
  • ob_end_flush() - Flush (send) the return value of the active output handler and turn the active output buffer off
  • ob_get_flush() - Flush (send) the return value of the active output handler, return the contents of the active output buffer and turn it off
  • ob_clean() - Limpa (apaga) o conteúdo do buffer de saída ativo


Get the contents of the active output buffer and turn it off

  • « ob_flush
  • ob_get_contents »
  • PHP Manual
  • Funções para Control de Saída
  • Get the contents of the active output buffer and turn it off

ob_get_clean

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ob_get_clean — Get the contents of the active output buffer and turn it off

Descrição

ob_get_clean(): string|false

This function calls the output handler (with the PHP_OUTPUT_HANDLER_CLEAN and PHP_OUTPUT_HANDLER_FINAL flags), discards it's return value, returns the contents of the active output buffer and turns off the active output buffer.

ob_get_clean() will fail without an active output buffer started with the PHP_OUTPUT_HANDLER_REMOVABLE flag.

ob_get_clean() will discard the contents of the active output buffer even if it was started without the PHP_OUTPUT_HANDLER_CLEANABLE flag.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the contents of the active output buffer on success or false on failure.

Cuidado

ob_get_clean() will return false but will not generate an E_NOTICE if there is no active output buffer.

Erros/Exceções

If the function fails it generates an E_NOTICE.

Exemplos

Exemplo #1 A simple ob_get_clean() example

<?php

ob_start();

echo "Hello World";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);
?>

O exemplo acima produzirá:

string(11) "hello world"

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_get_contents() - Retorna o conteúdo do buffer de saída
  • ob_clean() - Limpa (apaga) o conteúdo do buffer de saída ativo
  • ob_end_clean() - Clean (erase) the contents of the active output buffer and turn it off
  • ob_get_flush() - Flush (send) the return value of the active output handler, return the contents of the active output buffer and turn it off


Retorna o conteúdo do buffer de saída

  • « ob_get_clean
  • ob_get_flush »
  • PHP Manual
  • Funções para Control de Saída
  • Retorna o conteúdo do buffer de saída

ob_get_contents

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_get_contents — Retorna o conteúdo do buffer de saída

Descrição

ob_get_contents(): string|false

Obtém o conteúdo do buffer de saída sem limpá-lo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o conteúdo do buffer de saída ou false, se o buffer de saída não estiver ativo.

Exemplos

Exemplo #1 Um simples exemplo de ob_get_contents()

<?php

ob_start();

echo "Hello ";

$out1 = ob_get_contents();

echo "World";

$out2 = ob_get_contents();

ob_end_clean();

var_dump($out1, $out2);
?>

O exemplo acima produzirá:

string(6) "Hello "
string(11) "Hello World"

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_get_length() - Retorna o comprimento do buffer de saída


Flush (send) the return value of the active output handler, return the contents of the active output buffer and turn it off

  • « ob_get_contents
  • ob_get_length »
  • PHP Manual
  • Funções para Control de Saída
  • Flush (send) the return value of the active output handler, return the contents of the active output buffer and turn it off

ob_get_flush

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ob_get_flush — Flush (send) the return value of the active output handler, return the contents of the active output buffer and turn it off

Descrição

ob_get_flush(): string|false

This function calls the output handler (with the PHP_OUTPUT_HANDLER_FINAL flag), flushes (sends) it's return value, returns the contents of the active output buffer and turns off the active output buffer.

ob_get_flush() will fail without an active output buffer started with the PHP_OUTPUT_HANDLER_REMOVABLE flag.

ob_get_flush() will flush (send) the return value of the output handler even if the active output buffer was started without the PHP_OUTPUT_HANDLER_FLUSHABLE flag.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the contents of the active output buffer on success or false on failure.

Erros/Exceções

If the function fails it generates an E_NOTICE.

Exemplos

Exemplo #1 ob_get_flush() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());

//save buffer in a file
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

O exemplo acima produzirá:

Array
(
    [0] => default output handler
)
Array
(
)

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_get_contents() - Retorna o conteúdo do buffer de saída
  • ob_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo
  • ob_end_flush() - Flush (send) the return value of the active output handler and turn the active output buffer off
  • ob_get_clean() - Get the contents of the active output buffer and turn it off


Retorna o comprimento do buffer de saída

  • « ob_get_flush
  • ob_get_level »
  • PHP Manual
  • Funções para Control de Saída
  • Retorna o comprimento do buffer de saída

ob_get_length

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

ob_get_length — Retorna o comprimento do buffer de saída

Descrição

ob_get_length(): int|false

Esta função retonará o comprimento do conteúdo do buffer de saída, em bytes.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o comprimento do conteúdo do buffer de saída ou false se o buffer não estiver ativo.

Exemplos

Exemplo #1 Um simples exemplo de ob_get_length()

<?php

ob_start();

echo "Hello ";

$len1 = ob_get_length();

echo "World";

$len2 = ob_get_length();

ob_end_clean();

echo $len1 . ", ." . $len2;
?>

O exemplo acima produzirá:

6, 11

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_get_contents() - Retorna o conteúdo do buffer de saída


Return the nesting level of the output buffering mechanism

  • « ob_get_length
  • ob_get_status »
  • PHP Manual
  • Funções para Control de Saída
  • Return the nesting level of the output buffering mechanism

ob_get_level

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ob_get_level — Return the nesting level of the output buffering mechanism

Descrição

ob_get_level(): int

Returns the nesting level of the output buffering mechanism.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the level of nested output buffering handlers or zero if output buffering is not active.

Cuidado

The value for identical levels between ob_get_level() and ob_get_status() is off by one. For ob_get_level() the first level is 1. Whereas for ob_get_status() the first level is 0.

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_get_status() - Get status of output buffers
  • ob_get_contents() - Retorna o conteúdo do buffer de saída


Get status of output buffers

  • « ob_get_level
  • ob_implicit_flush »
  • PHP Manual
  • Funções para Control de Saída
  • Get status of output buffers

ob_get_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ob_get_status — Get status of output buffers

Descrição

ob_get_status(bool $full_status = false): array

ob_get_status() returns status information on either the top level output buffer or all active output buffer levels if full_status is set to true.

Parâmetros

full_status

true to return all active output buffer levels. If false or not set, only the top level output buffer is returned.

Valor Retornado

If full_status is omitted or false a simple array holding status information on the active output level is returned.

If full_status is true an array with one element for each active output buffer level is returned. The output level is used as key of the top level array and each array element itself is another array holding status information on one active output level.

An empty array is returned if output buffering is not turned on.

ob_get_status() return array elements
Key | Value
name | Name of active output handler (see the return values of ob_list_handlers() for details)
type | 0 (internal handler) or 1 (user supplied handler)
flags | Bitmask of flags set by ob_start(), the type of output handler (see above) and the status of the buffering process ( PHP_OUTPUT_HANDLER_* constants). If the handler successfully processed the buffer and did not return false, PHP_OUTPUT_HANDLER_STARTED and PHP_OUTPUT_HANDLER_PROCESSED will be set. If the handler failed while processing the buffer or returned false, PHP_OUTPUT_HANDLER_STARTED and PHP_OUTPUT_HANDLER_DISABLED will be set.
level | Output nesting level (zero based). Note that the value returned for the same level by ob_get_level() is off by one. The first level is 0 for ob_get_status(), and 1 for ob_get_level().
chunk_size | Chunk size in bytes. Set by ob_start() or output_buffering is enabled and its value is set to a positive integer
buffer_size | Output buffer size in bytes
buffer_used | Size of data in output buffer in bytes (the same as the integer return value of ob_get_length())

Exemplos

Exemplo #1 Array returned when full_status is false

Array
(
    [name] => URL-Rewriter
    [type] => 0
    [flags] => 112
    [level] => 2
    [chunk_size] => 0
    [buffer_size] => 16384
    [buffer_used] => 1024
)

Exemplo #2 Array returned when full_status is true

Array
(
    [0] => Array
        (
            [name] => default output handler
            [type] => 0
            [flags] => 112
            [level] => 1
            [chunk_size] => 0
            [buffer_size] => 16384
            [buffer_used] => 2048
        )

    [1] => Array
        (
            [name] => URL-Rewriter
            [type] => 0
            [flags] => 112
            [level] => 2
            [chunk_size] => 0
            [buffer_size] => 16384
            [buffer_used] => 1024
        )

)

Veja Também

  • ob_get_level() - Return the nesting level of the output buffering mechanism
  • ob_list_handlers() - List all output handlers in use
  • ob_get_length() - Retorna o comprimento do buffer de saída
  • ob_start() - Ativa o buffer de saída


Turn implicit flush on/off

  • « ob_get_status
  • ob_list_handlers »
  • PHP Manual
  • Funções para Control de Saída
  • Turn implicit flush on/off

ob_implicit_flush

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_implicit_flush — Turn implicit flush on/off

Descrição

ob_implicit_flush(bool $enable = true): void

ob_implicit_flush() will turn implicit flushing on or off. Implicit flushing will result in a flush operation after every block of code resulting in output, so that explicit calls to flush() will no longer be needed.

Nota: Printing empty strings or sending headers is not considered output and will not result in a flush operation.

Nota: This function does not have any effect on user level output handlers such as those started by ob_start() or output_add_rewrite_var().

Parâmetros

enable

true to turn implicit flushing on, false otherwise.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | The enable expects a bool value now; previously, an int was expected.

Veja Também

  • flush() - Flush system output buffer
  • ob_start() - Ativa o buffer de saída
  • ob_end_flush() - Flush (send) the return value of the active output handler and turn the active output buffer off


List all output handlers in use

  • « ob_implicit_flush
  • ob_start »
  • PHP Manual
  • Funções para Control de Saída
  • List all output handlers in use

ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ob_list_handlers — List all output handlers in use

Descrição

ob_list_handlers(): array

Lists all output handlers in use.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

This will return an array with the output handlers in use (if any).

If output_buffering is enabled and no output_handler is set, or no callback or null was passed to ob_start(), "default output handler" is returned. Enabling output_buffering and setting an output_handler is equivalent to passing an internal (built-in) function to ob_start().

If a callable was passed to ob_start(), the fully qualified name of the callable is returned. If the callable is an object implementing __invoke(), the fully qualified name of the object's __invoke() method is returned. If the callable is a Closure, "Closure::__invoke" is returned.

Exemplos

Exemplo #1 ob_list_handlers() example

<?php
// using output_buffering=On, no output_handler set
var_dump(ob_list_handlers());
ob_end_flush();

// no callback or null
ob_start();
var_dump(ob_list_handlers());
ob_end_flush();

// anonymous function
ob_start(function($string) { return $string; });
var_dump(ob_list_handlers());
ob_end_flush();

// arrow function
ob_start(fn($string) => $string);
var_dump(ob_list_handlers());
ob_end_flush();

// first class callable
$firstClassCallable = userDefinedFunction(...);

ob_start([$firstClassCallable, '__invoke']);
var_dump(ob_list_handlers());
ob_end_flush();

// internal (built-in) function
ob_start('print_r');
var_dump(ob_list_handlers());
ob_end_flush();

// user-defined function
function userDefinedFunction($string, $flags) { return $string; };

ob_start('userDefinedFunction');
var_dump(ob_list_handlers());
ob_end_flush();

class MyClass {
public static function staticHandle($string) {
return $string;
}

public static function handle($string) {
return $string;
}

public function __invoke($string) {
return $string;
}
}

// class and static method
ob_start(['MyClass','staticHandle']);
var_dump(ob_list_handlers());
ob_end_flush();

// object and non-static method
ob_start([new MyClass,'handle']);
var_dump(ob_list_handlers());
ob_end_flush();

// invokable object
ob_start(new MyClass);
var_dump(ob_list_handlers());
ob_end_flush();
?>

O exemplo acima produzirá:

array(1) {
  [0]=>
  string(22) "default output handler"
}
array(1) {
  [0]=>
  string(22) "default output handler"
}
array(1) {
  [0]=>
  string(7) "print_r"
}
array(1) {
  [0]=>
  string(19) "userDefinedFunction"
}
array(1) {
  [0]=>
  string(17) "Closure::__invoke"
}
array(1) {
  [0]=>
  string(17) "Closure::__invoke"
}
array(1) {
  [0]=>
  string(17) "Closure::__invoke"
}
array(1) {
  [0]=>
  string(21) "MyClass::staticHandle"
}
array(1) {
  [0]=>
  string(15) "MyClass::handle"
}
array(1) {
  [0]=>
  string(17) "MyClass::__invoke"
}

Veja Também

  • ob_end_clean() - Clean (erase) the contents of the active output buffer and turn it off
  • ob_end_flush() - Flush (send) the return value of the active output handler and turn the active output buffer off
  • ob_get_flush() - Flush (send) the return value of the active output handler, return the contents of the active output buffer and turn it off
  • ob_start() - Ativa o buffer de saída


Ativa o buffer de saída

  • « ob_list_handlers
  • output_add_rewrite_var »
  • PHP Manual
  • Funções para Control de Saída
  • Ativa o buffer de saída

ob_start

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_start — Ativa o buffer de saída

Descrição

ob_start(?callable $callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool

Esta função irá ativar o buffer de saída. Enquanto o buffer de saída estiver ativo, não é enviada a saída do script, (outros que não sejam cabeçalhos), ao invés disto a saída é guardada em um buffer interno. Consulte Que Saída é Armazenada em Buffer? sobre exatamente que saída é afetada.

Buffers de saída são empilháveis, ou seja, ob_start() pode ser chamada enquanto outro buffer estiver ativo. Se múltiplos buffers de saída estiverem ativos, a saída será filtrada sequencialmente atráves de cada uma delas na ordem de aninhamento. Consulte Aninhando Buffers de Saída para mais detalhes.

Consulte Buffers de Saída em Nível de Usuário para uma descrição detalhada de buffers de saída.

Parâmetros

callback

Uma função callback do tipo callable pode ser especificada. Ela também pode ser ignorada passando-se null.

callback é chamada quando o buffer de saída é descarregad (enviado), limpo, ou quando o buffer de saída é descarregado no final da execução do script.

A assinatura da função callback deve ser da seguinte forma:

handler(string $buffer, int $phase = ?): string
buffer
O conteúdo original do buffer.
phase
Máscara de bits das constantes PHP_OUTPUT_HANDLER_* . Consulte Opções Passadas aos Manipuladores de Saída para mais detalhes.

Se callback retornar false, o conteúdo do buffer é retornado. Consulte Valores de Retorno do Menipulador de Saída para mais detalhes.

Aviso

Chamar qualquer das funções a seguir de dentro de um manipulador de saída
resultará em erro fatal:
ob_clean(), ob_end_clean(),
ob_end_flush(), ob_flush(),
ob_get_clean(), ob_get_flush() e
ob_start().

Consulte Manipuladores de Saída e Trabalhando com Manipuladores de Saída para mais detalhes sobre as funções callback (manipuladores de saída).

chunk_size

Se o parâmetro opcional chunk_size for informado, o buffer será descarregado depois que algum bloco de código que produza saída faça com que o tamanho do buffer fique igual ou maior que chunk_size. O valor padrão é 0, que significa que toda a saída fica em buffer até que ele seja desligado. Consulte Tamanho do Buffer para mais detalhes.

flags

O parâmetro flags é uma máscara de bits que controla as operações que podem ser realizadas no buffer de saída. O padrão é permitir que o buffer de saída possa ser limpo, descarregado ou removido, o que pode ser configurado explicitamente através das opções de controle de buffer . Consulte Operações permitidas em buffers para mais detalhes.

Cada opção controla o acesso das funções, como descrito a seguir:

Constante | Funções
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean()
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush()
PHP_OUTPUT_HANDLER_REMOVABLE | ob_end_clean(), ob_end_flush(), ob_get_clean() e ob_get_flush()

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de uma função de callback

<?php

function callback($buffer)
{
// substitui apples por oranges
return (str_replace("apples", "oranges", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php

ob_end_flush();

?>

O exemplo acima produzirá:

<html>
<body>
<p>It's like comparing oranges to oranges.</p>
</body>
</html>

Exemplo #2 Criando um buffer de saída não apagável

<?php

ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_REMOVABLE);

?>

Veja Também

  • ob_get_contents() - Retorna o conteúdo do buffer de saída
  • ob_end_clean() - Clean (erase) the contents of the active output buffer and turn it off
  • ob_end_flush() - Flush (send) the return value of the active output handler and turn the active output buffer off
  • ob_implicit_flush() - Turn implicit flush on/off
  • ob_gzhandler() - Função de chamada de retorno de ob_start para comprimir o buffer de saída com gzip
  • ob_iconv_handler() - Converte codificação de caracteres como manipulador de buffer de saída
  • mb_output_handler() - Callback converte a codificação de caracteres no buffer de saída
  • ob_tidyhandler() - ob_start callback function to repair the buffer


Add URL rewriter values

  • « ob_start
  • output_reset_rewrite_vars »
  • PHP Manual
  • Funções para Control de Saída
  • Add URL rewriter values

output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

output_add_rewrite_var — Add URL rewriter values

Descrição

output_add_rewrite_var(string $name, string $value): bool

This function starts the 'URL-Rewriter' output buffer handler if it is not active, stores the name and value parameters, and when the buffer is flushed rewrites the URLs and forms based on the applicable ini settings. Subsequent calls to this function will store all additional name/value pairs until the handler is turned off.

When the output buffer is flushed (by calling ob_flush(), ob_end_flush(), ob_get_flush() or at the end of the script) the 'URL-Rewriter' handler adds the name/value pairs as query parameters to URLs in attributes of HTML tags and adds hidden fields to forms based on the values of the url_rewriter.tags and url_rewriter.hosts configuration directives.

Each name/value pair added to the 'URL-Rewriter' handler is added to the URLs and/or forms even if this results in duplicate URL query parameters or elements with the same name attributes.

Nota: Once the 'URL-Rewriter' handler has been turned off it cannot be started again.

Parâmetros

name

The variable name.

value

The variable value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.1.0 | As of PHP 7.1.0, a dedicated output buffer is used, url_rewriter.tags is used solely for output functions and url_rewriter.hosts is available. Prior to PHP 7.1.0, rewrite variables set by output_add_rewrite_var() shared an output buffer with transparent session id support (see session.trans_sid_tags).

Exemplos

Exemplo #1 output_add_rewrite_var() example

<?php
ini_set('url_rewriter.tags', 'a=href,form=');

output_add_rewrite_var('var', 'value');

// some links
echo '<a href="file.php">link</a>
<a href="http://example.com">link2</a>';

// a form
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());
?>

O exemplo acima produzirá:

<a href="file.php?var=value">link</a>
<a href="http://example.com">link2</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

Veja Também

  • output_reset_rewrite_vars() - Reset URL rewriter values
  • ob_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo
  • ob_list_handlers() - List all output handlers in use
  • url_rewriter.tags
  • url_rewriter.hosts


Reset URL rewriter values

  • « output_add_rewrite_var
  • Opções/Info do PHP »
  • PHP Manual
  • Funções para Control de Saída
  • Reset URL rewriter values

output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

output_reset_rewrite_vars — Reset URL rewriter values

Descrição

output_reset_rewrite_vars(): bool

This function removes all rewrite variables previously set by the output_add_rewrite_var() function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.1.0 | Before PHP 7.1.0, rewrite vars set by output_add_rewrite_var() use the same Session module trans sid output buffer. Since PHP 7.1.0, dedicated output buffer is used and output_reset_rewrite_vars() only removes rewrite vars defined by output_add_rewrite_var().

Exemplos

Exemplo #1 output_reset_rewrite_vars() example

<?php
ini_set('url_rewriter.tags', 'a=href');

output_add_rewrite_var('var', 'value');

echo '<a href="file.php">link</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">link</a>';
?>

O exemplo acima produzirá:

<a href="file.php?var=value">link</a>
<a href="file.php">link</a>

Veja Também

  • output_add_rewrite_var() - Add URL rewriter values
  • ob_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo
  • ob_list_handlers() - List all output handlers in use
  • url_rewriter.tags
  • url_rewriter.hosts
  • session.trans_sid_tags
  • session.trans_sid_hosts


Informações e Opções do PHP

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções para Opções/Info do PHP
    • assert_options — Set/get the various assert flags
    • assert — Executa um assert
    • cli_get_process_title — Returns the current process title
    • cli_set_process_title — Sets the process title
    • dl — Carrega uma extensão do PHP durante a execução
    • extension_loaded — Descobre se uma extensão está carregada
    • gc_collect_cycles — Forces collection of any existing garbage cycles
    • gc_disable — Deactivates the circular reference collector
    • gc_enable — Activates the circular reference collector
    • gc_enabled — Returns status of the circular reference collector
    • gc_mem_caches — Reclaims memory used by the Zend Engine memory manager
    • gc_status — Gets information about the garbage collector
    • get_cfg_var — Gets the value of a PHP configuration option
    • get_current_user — Gets the name of the owner of the current PHP script
    • get_defined_constants — Returns an associative array with the names of all the constants and their values
    • get_extension_funcs — Retorna um array com os nomes das funções de um módulo
    • get_include_path — Obtém a opção de configuração include_path atual
    • get_included_files — Returns an array with the names of included or required files
    • get_loaded_extensions — Returns an array with the names of all modules compiled and loaded
    • get_magic_quotes_gpc — Obtém a configuração atual de magic_quotes_gpc
    • get_magic_quotes_runtime — Obtém a configuração ativa para magic_quotes_runtime
    • get_required_files — Sinônimo de get_included_files
    • get_resources — Returns active resources
    • getenv — Gets the value of a single or all environment variables
    • getlastmod — Obtém o horário da última modificação na página
    • getmygid — Obtém o GID do proprietário do script PHP
    • getmyinode — Gets the inode of the current script
    • getmypid — Obtém o ID do processo PHP
    • getmyuid — Obtém o UID do proprietário do script PHP
    • getopt — Obtêm opções da linha de comando
    • getrusage — Gets the current resource usages
    • ini_alter — Sinônimo de ini_set
    • ini_get_all — Gets all configuration options
    • ini_get — Gets the value of a configuration option
    • ini_parse_quantity — Get interpreted size from ini shorthand syntax
    • ini_restore — Restores the value of a configuration option
    • ini_set — Sets the value of a configuration option
    • memory_get_peak_usage — Returns the peak of memory allocated by PHP
    • memory_get_usage — Returns the amount of memory allocated to PHP
    • memory_reset_peak_usage — Reset the peak memory usage
    • php_ini_loaded_file — Retrieve a path to the loaded php.ini file
    • php_ini_scanned_files — Return a list of .ini files parsed from the additional ini dir
    • php_sapi_name — Returns the type of interface between web server and PHP
    • php_uname — Returns information about the operating system PHP is running on
    • phpcredits — Prints out the credits for PHP
    • phpinfo — Outputs information about PHP's configuration
    • phpversion — Gets the current PHP version
    • putenv — Define o valor de uma variável de ambiente
    • restore_include_path — Restaura o valor da opção de configuração include_path
    • set_include_path — Sets the include_path configuration option
    • set_time_limit — Limits the maximum execution time
    • sys_get_temp_dir — Returns directory path used for temporary files
    • version_compare — Compares two "PHP-standardized" version number strings
    • zend_thread_id — Returns a unique identifier for the current thread
    • zend_version — Obtém a versão do motor Zend atual


Introdução

Estas funções permitem obter muitas informações sobre o PHP em si, por exemplo, configurações em tempo de execução, extensões carregadas, versão e muito mais. Também podem ser encontradas funções para definir opções para o PHP em execução. A função que é provavelmente a mais conhecida do PHP - phpinfo() - pode ser encontrada aqui.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração do PHP
Nome | Padrão | Modificável | Registro de Alterações
assert.active | "1" | INI_ALL | Desencorajado desde o PHP 8.3.0
assert.bail | "0" | INI_ALL | Desencorajado desde o PHP 8.3.0
assert.warning | "1" | INI_ALL | Desencorajado desde o PHP 8.3.0
assert.callback | NULL | INI_ALL | Desencorajado desde o PHP 8.3.0
assert.quiet_eval | "0" | INI_ALL | Removido desde o PHP 8.0.0
assert.exception | "1" | INI_ALL | Anteriormente ao PHP 8.0.0 o padrão era "0". Desencorajado desde o PHP 8.3.0
enable_dl | "1" | INI_SYSTEM | Este recurso defasado certamente será removido no futuro.
max_execution_time | "30" | INI_ALL |
max_input_time | "-1" | INI_PERDIR |
max_input_nesting_level | "64" | INI_PERDIR |
max_input_vars | 1000 | INI_PERDIR |
zend.enable_gc | "1" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

assert.active bool

Ativa a avaliação de assert(). zend.assertions deve ser utilizado para controlar o comportamento de assert().

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

assert.bail bool

Termina a execução de scripts se uma asserção falharem.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

assert.warning bool

Emite um warning para cada falha de assert.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

assert.callback string

Função a chamar em caso de asserts falharem.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

assert.quiet_eval bool
Aviso

Este recurso foi REMOVIDO a partir do PHP 8.0.0.

Utilize a configuração atual de error_reporting() durante a avaliação de expressões assert. Se ativo então nenhum erro é mostrado (padrão é error_reporting(0)) nas avaliações. Se desativa erros são mostrados de acordo com as configurações de error_reporting()

assert.exception bool

Lança uma exceção AssertionError no caso de um assert falhar.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

enable_dl bool

Esta diretiva permite ativar ou desativar o carregamento dinâmico de extensões do PHP com dl() .

A razão principal para desligar o carregamento dinâmico é segurança. Com carregamento dinâmico é possível ignorar todas as restrições de open_basedir. O padrão é permitir carregamento dinâmico.

max_execution_time int

Isso configura o tempo máximo, em segundos, que um script é permitido executar antes de ser terminado. Isso ajuda a prevenir que scripts mal escritos de lotar os servidores. O padrão é de 30 segundos. Quando rodando o PHP a partir da linha de comando o padrão é zero 0.

O tempo máximo de execução não é afetado por chamadas de sistema, operações em streams, etc. Veja a documentação da função set_time_limit() para mais detalhes.

Seu servidor web pode ter outras configurações de timeout que também interrompam a execução do PHP. Apache possui uma diretiva Timeout e o IIS tem uma função de timeout CGI. Ambos com padrão de 300 segundos. Veja a documentação do servidor web para mais detalhes.

max_input_time int

Configura o tempo máximo, em segundos, que um script é permitido dispensar interpretando dados de entrada, como GET e POST. O cronômetro começa no momento que o PHP é chamado pelo servidor e termina quando a execução começa. A configuração padrão é -1, o que significa que o valor de max_execution_time será usado. Defina como 0 para permitir tempo ilimitado.

max_input_nesting_level int

Configura a profundidade máxima de níveis das variáveis de entrada ( $_GET, $_POST).

max_input_vars int

Configura quantas variáveis de entrada serão aceitas, com o limte aplicado a cada super global $_GET, $_POST e $_COOKIE separadamente). O uso dessa diretiva mitiga a possibilidade de ataques de negação de serviço que utilizam colisões de hash. Se houver mais variáveis do que o especificado nessa diretiva um E_WARNING é lançado, e variáveis de entrada adicionais são ignorados.

zend.enable_gc bool

Ativa ou desativa o coletor de refefências circulares.


Constantes pré-definidas

As constantes abaixo estão sempre disponíveis como parte do núcleo do PHP.

Pre-defined phpcredits() constants
Constantes | Value | Descrição
CREDITS_GROUP | 1 | A list of the core developers
CREDITS_GENERAL | 2 | General credits: Language design and concept, PHP authors and SAPI module.
CREDITS_SAPI | 4 | A list of the server API modules for PHP, and their authors.
CREDITS_MODULES | 8 | A list of the extension modules for PHP, and their authors.
CREDITS_DOCS | 16 | The credits for the documentation team.
CREDITS_FULLPAGE | 32 | Usually used in combination with the other flags. Indicates that a complete stand-alone HTML page needs to be printed including the information indicated by the other flags.
CREDITS_QA | 64 | The credits for the quality assurance team.
CREDITS_ALL | -1 | All the credits, equivalent to using: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. It generates a complete stand-alone HTML page with the appropriate tags. This is the default value.
phpinfo() constants
Constantes | Value | Descrição
INFO_GENERAL | 1 | The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS | 2 | PHP Credits. See also phpcredits().
INFO_CONFIGURATION | 4 | Current Local and Master values for PHP directives. See also ini_get().
INFO_MODULES | 8 | Loaded modules and their respective settings.
INFO_ENVIRONMENT | 16 | Environment Variable information that's also available in $_ENV.
INFO_VARIABLES | 32 | Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | PHP License information. See also the » license faq.
INFO_ALL | -1 | Shows all of the above. This is the default value.
INI mode constants
Constantes | Descrição
INI_USER (int) | Entry can be set in user scripts (like with ini_set()) or in the Windows registry. Entry can be set in .user.ini
INI_PERDIR (int) | Entry can be set in php.ini, .htaccess, httpd.conf or .user.ini
INI_SYSTEM (int) | Entry can be set in php.ini or httpd.conf
INI_ALL (int) | Entry can be set anywhere

Assert constants, these values are used to set the assertion options in assert_options().

assert() constants
Constantes | INI Setting | Descrição
ASSERT_ACTIVE | assert.active | Enable assert() evaluation. Aviso Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.
ASSERT_CALLBACK | assert.callback | Callback to call on failed assertions. Aviso Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.
ASSERT_BAIL | assert.bail | Terminate execution on failed assertions. Aviso Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.
ASSERT_EXCEPTION | assert.exception | Issues a PHP warning for each failed assertion Aviso Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.
ASSERT_WARNING | assert.warning | Issues a PHP warning for each failed assertion Aviso Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.
ASSERT_QUIET_EVAL | assert.quiet_eval | Disable error_reporting during assertion expression evaluation. Aviso Este recurso foi REMOVIDO a partir do PHP 8.0.0.

The following constants are only available if the host operating system is Windows, and can tell different versioning information so its possible to detect various features and make use of them.

Windows specific constants
Constant | Description
PHP_WINDOWS_VERSION_MAJOR | The major version of Windows, this can be either 4 (NT4/Me/98/95), 5 (XP/2003 R2/2003/2000) or 6 (Vista/2008/7/8/8.1).
PHP_WINDOWS_VERSION_MINOR | The minor version of Windows, this can be either 0 (Vista/2008/2000/NT4/95), 1 (XP), 2 (2003 R2/2003/XP x64), 10 (98) or 90 (ME).
PHP_WINDOWS_VERSION_BUILD | The Windows build number (for example, Windows Vista with SP1 applied is build 6001)
PHP_WINDOWS_VERSION_PLATFORM | The platform that PHP currently is running on, this value is 2 on Windows Vista/XP/2000/NT4, Server 2008/2003 and on Windows ME/98/95 this value is 1.
PHP_WINDOWS_VERSION_SP_MAJOR | The major version of the service pack installed, this value is 0 if no service pack is installed. For example, Windows XP with service pack 3 installed will make this value 3.
PHP_WINDOWS_VERSION_SP_MINOR | The minor version of the service pack installed, this value is 0 if no service pack is installed.
PHP_WINDOWS_VERSION_SUITEMASK | The suitemask is a bitmask that can tell if various features of Windows is installed, see the table below for possible bitfield values.
PHP_WINDOWS_VERSION_PRODUCTTYPE | This contains the value used to determine the PHP_WINDOWS_NT_* constants. This value may be one of the PHP_WINDOWS_NT_* constants indicating the platform type.
PHP_WINDOWS_NT_DOMAIN_CONTROLLER | This is a domain controller
PHP_WINDOWS_NT_SERVER | This is a server system (eg. Server 2008/2003/2000), note that if this is a domain controller its reported as PHP_WINDOWS_NT_DOMAIN_CONTROLLER.
PHP_WINDOWS_NT_WORKSTATION | This is a workstation system (eg. Vista/XP/2000/NT4)

This table shows a list of features that can be checked for using the PHP_WINDOWS_VERSION_SUITEMASK bitmask.

Windows suitemask bitfields
Bits | Description
0x00000004 | Microsoft BackOffice components are installed.
0x00000400 | Windows Server 2003, Web Edition is installed.
0x00004000 | Windows Server 2003, Compute Cluster Edition is installed.
0x00000080 | Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition or Windows 2000 Datacenter Server is installed.
0x00000002 | Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, Windows 2000 Advanced Server, or Windows NT Server 4.0 Enterprise Edition is installed.
0x00000040 | Windows XP Embedded is installed.
0x00000200 | Windows Vista Home Premium, Windows Vista Home Basic, or Windows XP Home Edition is installed.
0x00000100 | Remote Desktop is supported, but only one interactive session is supported. This value is set unless the system is running in application server mode.
0x00000001 | Microsoft Small Business Server was once installed on the system, but may have been upgraded to another version of Windows.
0x00000020 | Microsoft Small Business Server is installed with the restrictive client license in force.
0x00002000 | Windows Storage Server 2003 R2 or Windows Storage Server 2003 is installed.
0x00000010 | Terminal Services is installed. This value is always set. If this value is set but 0x00000100 is not set, then the system is running in application server mode.
0x00008000 | Windows Home Server is installed.


Funções para Opções/Info do PHP

Índice

  • assert_options — Set/get the various assert flags
  • assert — Executa um assert
  • cli_get_process_title — Returns the current process title
  • cli_set_process_title — Sets the process title
  • dl — Carrega uma extensão do PHP durante a execução
  • extension_loaded — Descobre se uma extensão está carregada
  • gc_collect_cycles — Forces collection of any existing garbage cycles
  • gc_disable — Deactivates the circular reference collector
  • gc_enable — Activates the circular reference collector
  • gc_enabled — Returns status of the circular reference collector
  • gc_mem_caches — Reclaims memory used by the Zend Engine memory manager
  • gc_status — Gets information about the garbage collector
  • get_cfg_var — Gets the value of a PHP configuration option
  • get_current_user — Gets the name of the owner of the current PHP script
  • get_defined_constants — Returns an associative array with the names of all the constants and their values
  • get_extension_funcs — Retorna um array com os nomes das funções de um módulo
  • get_include_path — Obtém a opção de configuração include_path atual
  • get_included_files — Returns an array with the names of included or required files
  • get_loaded_extensions — Returns an array with the names of all modules compiled and loaded
  • get_magic_quotes_gpc — Obtém a configuração atual de magic_quotes_gpc
  • get_magic_quotes_runtime — Obtém a configuração ativa para magic_quotes_runtime
  • get_required_files — Sinônimo de get_included_files
  • get_resources — Returns active resources
  • getenv — Gets the value of a single or all environment variables
  • getlastmod — Obtém o horário da última modificação na página
  • getmygid — Obtém o GID do proprietário do script PHP
  • getmyinode — Gets the inode of the current script
  • getmypid — Obtém o ID do processo PHP
  • getmyuid — Obtém o UID do proprietário do script PHP
  • getopt — Obtêm opções da linha de comando
  • getrusage — Gets the current resource usages
  • ini_alter — Sinônimo de ini_set
  • ini_get_all — Gets all configuration options
  • ini_get — Gets the value of a configuration option
  • ini_parse_quantity — Get interpreted size from ini shorthand syntax
  • ini_restore — Restores the value of a configuration option
  • ini_set — Sets the value of a configuration option
  • memory_get_peak_usage — Returns the peak of memory allocated by PHP
  • memory_get_usage — Returns the amount of memory allocated to PHP
  • memory_reset_peak_usage — Reset the peak memory usage
  • php_ini_loaded_file — Retrieve a path to the loaded php.ini file
  • php_ini_scanned_files — Return a list of .ini files parsed from the additional ini dir
  • php_sapi_name — Returns the type of interface between web server and PHP
  • php_uname — Returns information about the operating system PHP is running on
  • phpcredits — Prints out the credits for PHP
  • phpinfo — Outputs information about PHP's configuration
  • phpversion — Gets the current PHP version
  • putenv — Define o valor de uma variável de ambiente
  • restore_include_path — Restaura o valor da opção de configuração include_path
  • set_include_path — Sets the include_path configuration option
  • set_time_limit — Limits the maximum execution time
  • sys_get_temp_dir — Returns directory path used for temporary files
  • version_compare — Compares two "PHP-standardized" version number strings
  • zend_thread_id — Returns a unique identifier for the current thread
  • zend_version — Obtém a versão do motor Zend atual


Set/get the various assert flags

  • « Funções para Opções/Info do PHP
  • assert »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Set/get the various assert flags

assert_options

(PHP 4, PHP 5, PHP 7, PHP 8)

assert_options — Set/get the various assert flags

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.3.0. O uso desta função é fortemente desencorajado.

Descrição

assert_options(int $option, mixed $value = ?): mixed

Set the various assert() control options or just query their current settings.

Nota: The use of assert_options() is discouraged in favor of setting and getting the php.ini directives zend.assertions and assert.exception with ini_set() and ini_get(), respectively.

Parâmetros

option

Assert Options
Option | INI Setting | Default value | Description
ASSERT_ACTIVE | assert.active | 1 | enable assert() evaluation
ASSERT_EXCEPTION | assert.exception | 1 | throws an AssertionError for each failed assertions
ASSERT_WARNING | assert.warning | 1 | issue a PHP warning for each failed assertion
ASSERT_BAIL | assert.bail | 0 | terminate execution on failed assertions
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | disable error_reporting during assertion expression evaluation. Removed as of PHP 8.0.0.
ASSERT_CALLBACK | assert.callback | (null) | Callback to call on failed assertions

value

An optional new value for the option.

The callback function set via ASSERT_CALLBACK or assert.callback should have the following signature:

assert_callback(
string $file,
int $line,
?string $assertion,
string $description = ?
): void
file
The file where assert() has been called.
line
The line where assert() has been called.
assertion
Prior to PHP 8.0.0, the assertion which has been passed to assert(), but only when the assertion is given as a string. (If the assertion is a boolean condition, this parameter will be an empty string.) As of PHP 8.0.0, this parameter is always null.
description
The description that has been passed to assert().

Passing an empty string as value resets the assert callback.

Valor Retornado

Returns the original setting of any option.

Erros/Exceções

If option is not a valid option a ValueError is thrown.

Registro de Alterações

Versão | Descrição
8.3.0 | assert_option() is now deprecated.
8.0.0 | If option is not a valid option, a ValueError is now thrown. Previously false was returned.

Exemplos

Exemplo #1 assert_options() example

<?php
// This is our function to handle
// assert failures
function assert_failure($file, $line, $assertion, $message)
{
echo "The assertion $assertion in $file on line $line has failed: $message";
}

// This is our test function
function test_assert($parameter)
{
assert(is_bool($parameter));
}

// Set our assert options
assert_options(ASSERT_ACTIVE, true);
assert_options(ASSERT_BAIL, true);
assert_options(ASSERT_WARNING, false);
assert_options(ASSERT_CALLBACK, 'assert_failure');

// Make an assert that would fail
test_assert(1);

// This is never reached due to ASSERT_BAIL
// being true
echo 'Never reached';
?>

Veja Também

  • assert() - Executa um assert


Executa um assert

  • « assert_options
  • cli_get_process_title »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Executa um assert

assert

(PHP 4, PHP 5, PHP 7, PHP 8)

assert — Executa um assert

Descrição

assert(mixed $assertion, Throwable|string|null $description = null): bool

assert() permite a definição de expectativas: asserções são verificadas em ambientes de desenvolvimento ou testes, mas que são removidas por otimização a custo zero em produção.

Asserções devem ser utilizadas como uma ferramenta apenas de debug. Um dos usos é para funcionar como validações graves, para precondições que precisam ser true e caso isso não ocorra, isto indica algum erro de programação. Outro uso é garantir a presença de certos recursos, como por exemplo funções de extensões ou certos recursos ou limites de sistema.

As asserções podem ser configurados para serem eliminados, e elas não não devem ser utilizados em operações comuns como por exemplo a validação de parâmetros. Como regra geral, o código deve se comportar igual mesmo no caso das asserções estarem desativadas.

assert() verificará se a expectativa informada no parâmetro assertion é válida. Se não, o resultado avaliado é false, ocorrerá a ação apropriada, dependendo em como assert() está configurado.

O comportamento de assert() é ditado pelas seguintes configurações INI:

Assert Opções de Configuração
Nome | Padrão | Descrição | Registro de Alterações
zend.assertions 1
  • 1: gera e executa o código (modo de desenvolvimento)
  • 0: gera o código mas ignora durante a execução
  • -1: não gera o código (modo de produção)
assert.active | true | Se false, assert() não verifica a expectativa e retorna true imediatamente. | Descontinuado desde o PHP 8.3.0.
assert.callback null

Uma função definida pelo usuário a ser chamada quando a asserção falha. A assinatura deve ser:

assert_callback(
string $file,
int $line,
null $assertion,
string $description = ?
): void

Anteriormente ao PHP 8.0.0, a assinatura deveria ser:

assert_callback(
string $file,
int $line,
string $assertion,
string $description = ?
): void
Descontinuado a partir do PHP 8.3.0.

assert.exception | true | Se true irá lançar um AssertionError no caso da expectativa não ser válida. | Descontinuado desde o PHP 8.3.0.
assert.bail | false | Se true então a execução do script PHP será abortada caso a expectativa não seja válida. | Descontinuado desde o PHP 8.3.0.
assert.warning | true | Se true, será emitido um E_WARNING no caso da expectativa não seja válida. Essa configuração INI é inefetiva caso assert.exception esteja ativo. | Descontinuado desde o PHP 8.3.0.

Parâmetros

assertion

Pode ser qualquer expressão que retorna um valor, qual será executado e o resultado é utilizado para indicar se a asserção deve passar ou falhar.

Aviso

Anteriormente ao PHP 8.0.0, se assertion era uma string ela era interpretada como código PHP e executada via eval(). A string era passada para o argumento do callback no terceiro argumento. Este comportamento está DESCONTINUADO desde o PHP 7.2.0, e foi REMOVIDO no PHP 8.0.0.

description

Se description é uma instância de Throwable, ela será lançada somente se assertion for executada e falhar.

Nota:

A partir do 8.0.0, isto ocorria antes de chamar a função de callback potencialmente definida.

Nota:

A partir do PHP 8.0.0, o object será lançado independente da configuração de assert.exception.

Nota:

A partird do PHP 8.0.0, a configuração assert.bail não terá efeito nesse caso.

Se description é uma string esta mensagem será utilizada em uma exceção ou em um aviso. Uma descrição opcional que será incluída na mensagem de falha no caso da assertion falhar.

Se description é omitido. Uma descrição padrão, igual ao código fonte na invocação de assert() é criada em tempo de compilação.

Valor Retornado

assert() sempre retorna true se ao menos uma das seguintes condições forem verdadeiras:

  • zend.assertions=0
  • zend.assertions=-1
  • assert.exception=1
  • assert.bail=1
  • Um objeto exception foi passado em description.

Se nenhuma das condições forem verdadeiras assert() ainda pode retornar true se assertion possa ser convertido em um valor verdadeiro, ou false nos demais casos.

Registro de Alterações

Versão | Descrição
8.3.0 | Todas as configurações INI assert. estão desencorajadas.
8.0.0 | assert() não mais avaliará argumentos strings, e por outro lado elas serão tratadas como um argumento comum. assert($a == $b) deve ser utilizado ao invés de assert('$a == $b'). A diretiva assert.quiet_eval php.ini e a constante ASSERT_QUIET_EVAL também foram removidos, dado que elas não tem mais nenhum efeito.
8.0.0 | Se description é uma instância de Throwable, a exceção é lançada no caso da asserção falhar, independentemente do valor de assert.exception.
8.0.0 | Se description é uma instância de Throwable, o callback não é chamado, mesmo que ele seja informado.
8.0.0 | Declarar uma função chamada assert() dentro de um namespace não é mais permitido, e emite um E_COMPILE_ERROR.
7.3.0 | Declarar uma função chamada assert() dentro de um namespace foi descontinuado. Uma declaração assim emite um E_DEPRECATED.
7.2.0 | Uso de strings no argumento assertion foi descontinuado. Isto agora emite um aviso E_DEPRECATED quando ambos assert.active e zend.assertions estão configurados para 1.

Exemplos

Exemplo #1 Exemplo de assert()

<?php
assert(1 > 2);
echo 'Hi!';

Se assertions estiver ativo (zend.assertions=1), o exemplo acima emitirá:

Fatal error: Uncaught AssertionError: assert(1 > 2) in example.php:2
Stack trace:
#0 example.php(2): assert(false, 'assert(1 > 2)')
#1 {main}
  thrown in example.php on line 2

Se assertions estiver desativado (zend.assertions=0 ou zend.assertions=-1) o exemplo acima emitirá:

Hi!

Exemplo #2 Utilizando uma mensagem customizada

<?php
assert(1 > 2, "Expected one to be greater than two");
echo 'Hi!';

Se assertions estiverem ativadas, o código acima emitirá:

Fatal error: Uncaught AssertionError: Expected one to be greater than two in example.php:2
Stack trace:
#0 example.php(2): assert(false, 'Expected one to...')
#1 {main}
  thrown in example.php on line 2

Se assertions estiverem desativados, o código acima emitirá:

Hi!

Exemplo #3 Utilizando uma classe exception

<?php
class ArithmeticAssertionError extends AssertionError {}

assert(1 > 2, new ArithmeticAssertionError("Expected one to be greater than two"));
echo 'Hi!';

Se assertions estiver ativo o exemplo acima emitirá:

Fatal error: Uncaught ArithmeticAssertionError: Expected one to be greater than two in example.php:4
Stack trace:
#0 {main}
  thrown in example.php on line 4

Se assertions estiver desativado, o exemplo acima emitirá:

Hi!

Veja Também

  • assert_options() - Set/get the various assert flags


Returns the current process title

  • « assert
  • cli_set_process_title »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns the current process title

cli_get_process_title

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

cli_get_process_title — Returns the current process title

Descrição

cli_get_process_title(): ?string

Returns the current process title, as set by cli_set_process_title(). Note that this may not exactly match what is shown in ps or top, depending on your operating system.

This function is available only in CLI mode.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return a string with the current process title or null on error.

Erros/Exceções

An E_WARNING will be generated if the operating system is unsupported.

Exemplos

Exemplo #1 cli_get_process_title() example

<?php
echo "Process title: " . cli_get_process_title() . "\n";
?>

Veja Também

  • cli_set_process_title() - Sets the process title


Sets the process title

  • « cli_get_process_title
  • dl »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Sets the process title

cli_set_process_title

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

cli_set_process_title — Sets the process title

Descrição

cli_set_process_title(string $title): bool

Sets the process title visible in tools such as top and ps. This function is available only in CLI mode.

Parâmetros

title

The new title.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

An E_WARNING will be generated if the operating system is unsupported.

Exemplos

Exemplo #1 cli_set_process_title() example

<?php
$title = "My Amazing PHP Script";
$pid = getmypid(); // you can use this to see your process title in ps

if (!cli_set_process_title($title)) {
echo "Unable to set process title for PID $pid...\n";
exit(1);
} else {
echo "The process title '$title' for PID $pid has been set for your process!\n";
sleep(5);
}
?>

Veja Também

  • cli_get_process_title() - Returns the current process title


Carrega uma extensão do PHP durante a execução

  • « cli_set_process_title
  • extension_loaded »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Carrega uma extensão do PHP durante a execução

dl

(PHP 4, PHP 5, PHP 7, PHP 8)

dl — Carrega uma extensão do PHP durante a execução

Descrição

dl(string $extension_filename): bool

Carrega a extensão do PHP indicada pelo parâmetro extension_filename.

Use extension_loaded() para testar se uma extensão está disponível ou não. Isto funciona para extensões internas e para aquelas carregadas dinamicamente (através do php.ini ou da função dl()).

Aviso

Esta função somente está disponível no modos CLI e SAPI internalizado, e na SAPI CGI quando rodado em linha de comando.

Parâmetros

extension_filename

Este parâmetro é somente o nome do arquivo da extensão a carregar o qual também depende da sua plataforma. Por exemplo, a extensão sockets (se compilada como módulo compartilhado, não o padrão!) seria chamada sockets.so em plataformas Unix enquanto é chamada php_sockets.dll na plataforma Windows.

O diretório a partir do qual a extensão é carregada depende da sua plataforma:

Windows - Se não for explicitamente definido no php.ini, a extensão é carregada a partir de C:\php5\ por padrão.

Unix - Se não for explicitamente definido no php.ini, o diretório padrão das extensões depende de

  • se o PHP foi compilado com --enable-debug ou não
  • se o PHP foi compilado com suporte ZTS (Zend Thread Safety) ou não
  • O ZEND_MODULE_API_NO (o número Zend internal module API, o que é basicamente a data onde houve uma mudança maior na API ex. 20010901)
Levando em conta o acima, o diretório padrão poderá ser <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, e.g. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 or /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Se a funcionalidade de carregar módulos não estiver disponível ou foi desabilitada (por configurar enable_dl como off no php.ini) então um erro E_ERROR é disparado e a execução é interrompida. Se dl() falhar porque a biblioteca especificada não puder ser carregada, além de retornar false uma mensagem E_WARNING é emitida.

Exemplos

Exemplo #1 Exemplosdl()

<?php
// Exemplo de carregar umas extensção com base no sistema operacional
if (!extension_loaded('sqlite')) {
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
dl('php_sqlite.dll');
} else {
dl('sqlite.so');
}
}

// Or, the PHP_SHLIB_SUFFIX constant is available as of PHP 4.3.0
if (!extension_loaded('sqlite')) {
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

Notas

Nota:

dl() diferencia maiúsculas e minúsculas em sistemas Unix.

Veja Também

  • Diretivas de carregamento de extensões
  • extension_loaded() - Descobre se uma extensão está carregada


Descobre se uma extensão está carregada

  • « dl
  • gc_collect_cycles »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Descobre se uma extensão está carregada

extension_loaded

(PHP 4, PHP 5, PHP 7, PHP 8)

extension_loaded — Descobre se uma extensão está carregada

Descrição

extension_loaded(string $extension): bool

Descobre se uma extensão está carregada.

Parâmetros

extension

O nome da extensão. O parâmetro não faz distinção de maiúsculas/minúsculas.

Pode-se ver os nomes de várias extensões usando phpinfo(); ou se estiver sendo usada a versão CGI ou CLI do PHP, pode-se usar a opção -m para listar todas as extensões disponíveis:

$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

Valor Retornado

Retorna true true se a extensão identificada por extension estiver carregada, false caso contrário.

Exemplos

Exemplo #1 Exemplo de extension_loaded()

<?php
if (!extension_loaded('gd')) {
if (!dl('gd.so')) {
exit;
}
}
?>

Veja Também

  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded
  • get_extension_funcs() - Retorna um array com os nomes das funções de um módulo
  • phpinfo() - Outputs information about PHP's configuration
  • dl() - Carrega uma extensão do PHP durante a execução
  • function_exists() - Retorna true se a função informada estiver definida


Forces collection of any existing garbage cycles

  • « extension_loaded
  • gc_disable »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Forces collection of any existing garbage cycles

gc_collect_cycles

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_collect_cycles — Forces collection of any existing garbage cycles

Descrição

gc_collect_cycles(): int

Forces collection of any existing garbage cycles.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns number of collected cycles.

Veja Também

  • Garbage Collection


Deactivates the circular reference collector

  • « gc_collect_cycles
  • gc_enable »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Deactivates the circular reference collector

gc_disable

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_disable — Deactivates the circular reference collector

Descrição

gc_disable(): void

Deactivates the circular reference collector, setting zend.enable_gc to 0.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Garbage Collection


Activates the circular reference collector

  • « gc_disable
  • gc_enabled »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Activates the circular reference collector

gc_enable

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_enable — Activates the circular reference collector

Descrição

gc_enable(): void

Activates the circular reference collector, setting zend.enable_gc to 1.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Garbage Collection


Returns status of the circular reference collector

  • « gc_enable
  • gc_mem_caches »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns status of the circular reference collector

gc_enabled

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_enabled — Returns status of the circular reference collector

Descrição

gc_enabled(): bool

Returns status of the circular reference collector.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the garbage collector is enabled, false otherwise.

Exemplos

Exemplo #1 A gc_enabled() example

<?php
if(gc_enabled()) gc_collect_cycles();
?>

Veja Também

  • Garbage Collection


Reclaims memory used by the Zend Engine memory manager

  • « gc_enabled
  • gc_status »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Reclaims memory used by the Zend Engine memory manager

gc_mem_caches

(PHP 7, PHP 8)

gc_mem_caches — Reclaims memory used by the Zend Engine memory manager

Descrição

gc_mem_caches(): int

Reclaims memory used by the Zend Engine memory manager.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of bytes freed.

Veja Também

  • Garbage Collection


Gets information about the garbage collector

  • « gc_mem_caches
  • get_cfg_var »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Gets information about the garbage collector

gc_status

(PHP 7 >= 7.3.0, PHP 8)

gc_status — Gets information about the garbage collector

Descrição

gc_status(): array

Gets information about the current state of the garbage collector.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an associative array with the following elements:

  • "runs"
  • "collected"
  • "threshold"
  • "roots"
  • "running"
  • "protected"
  • "full"
  • "buffer_size"
  • "application_time"
  • "collector_time"
  • "destructor_time"
  • "free_time"

Registro de Alterações

Versão | Descrição
8.3.0 | gc_status() now returns the following additional fields: "running", "protected", "full", "buffer_size", "application_time", "collector_time", "destructor_time", and "free_time".

Exemplos

Exemplo #1 gc_status() Usage

<?php

// create object tree that needs gc collection
$a = new stdClass();
$a->b = [];
for ($i = 0; $i < 100000; $i++) {
$b = new stdClass();
$b->a = $a;
$a->b[] = $b;
}
unset($a);
unset($b);
gc_collect_cycles();

var_dump(gc_status());

O exemplo acima produzirá algo semelhante a:

array(4) {
  ["runs"]=>
  int(5)
  ["collected"]=>
  int(100002)
  ["threshold"]=>
  int(50001)
  ["roots"]=>
  int(0)
}

A saída do exemplo acima no PHP 8.3 é semelhante a:

array(12) {
  ["running"]=>
  bool(false)
  ["protected"]=>
  bool(false)
  ["full"]=>
  bool(false)
  ["runs"]=>
  int(5)
  ["collected"]=>
  int(100002)
  ["threshold"]=>
  int(50001)
  ["buffer_size"]=>
  int(131072)
  ["roots"]=>
  int(0)
  ["application_time"]=>
  float(0.031182458)
  ["collector_time"]=>
  float(0.020106291)
  ["destructor_time"]=>
  float(0)
  ["free_time"]=>
  float(0.003707167)
}

Veja Também

  • Garbage Collection


Gets the value of a PHP configuration option

  • « gc_status
  • get_current_user »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Gets the value of a PHP configuration option

get_cfg_var

(PHP 4, PHP 5, PHP 7, PHP 8)

get_cfg_var — Gets the value of a PHP configuration option

Descrição

get_cfg_var(string $option): string|array|false

Gets the value of a PHP configuration option.

This function will not return configuration information set when the PHP was compiled, or read from an Apache configuration file.

To check whether the system is using a configuration file, try retrieving the value of the cfg_file_path configuration setting. If this is available, a configuration file is being used.

Parâmetros

option

The configuration option name.

Valor Retornado

Returns the current value of the PHP configuration variable specified by option, or false if an error occurs.

Veja Também

  • ini_get() - Gets the value of a configuration option
  • ini_get_all() - Gets all configuration options


Gets the name of the owner of the current PHP script

  • « get_cfg_var
  • get_defined_constants »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Gets the name of the owner of the current PHP script

get_current_user

(PHP 4, PHP 5, PHP 7, PHP 8)

get_current_user — Gets the name of the owner of the current PHP script

Descrição

get_current_user(): string

Returns the name of the owner of the current PHP script.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the username as a string.

Exemplos

Exemplo #1 get_current_user() example

<?php
echo 'Current script owner: ' . get_current_user();
?>

O exemplo acima produzirá algo semelhante a:

Current script owner: SYSTEM

Veja Também

  • getmyuid() - Obtém o UID do proprietário do script PHP
  • getmygid() - Obtém o GID do proprietário do script PHP
  • getmypid() - Obtém o ID do processo PHP
  • getmyinode() - Gets the inode of the current script
  • getlastmod() - Obtém o horário da última modificação na página


Returns an associative array with the names of all the constants and their values

  • « get_current_user
  • get_extension_funcs »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns an associative array with the names of all the constants and their values

get_defined_constants

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

get_defined_constants — Returns an associative array with the names of all the constants and their values

Descrição

get_defined_constants(bool $categorize = false): array

Returns the names and values of all the constants currently defined. This includes those created by extensions as well as those created with the define() function.

Parâmetros

categorize

Causing this function to return a multi-dimensional array with categories in the keys of the first dimension and constants and their values in the second dimension.

<?php
define("MY_CONSTANT", 1);
print_r(get_defined_constants(true));
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [Core] => 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
        )

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            [PREG_SET_ORDER] => 2
            [PREG_OFFSET_CAPTURE] => 256
            [PREG_SPLIT_NO_EMPTY] => 1
            [PREG_SPLIT_DELIM_CAPTURE] => 2
            [PREG_SPLIT_OFFSET_CAPTURE] => 4
            [PREG_GREP_INVERT] => 1
        )

    [user] => Array
        (
            [MY_CONSTANT] => 1
        )

)

Valor Retornado

Returns an array of constant name => constant value array, optionally groupped by extension name registering the constant.

Exemplos

Exemplo #1 get_defined_constants() Example

<?php
print_r(get_defined_constants());
?>

O exemplo acima produzirá algo semelhante a:

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
)

Veja Também

  • defined() - Verifica se existe uma constante com o nome informado
  • constant() - Retorna o valor de uma constante
  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded
  • get_defined_functions() - Retorna um array com todas as funções definidas
  • get_defined_vars() - Retorna um array com todas variáveis definidas


Retorna um array com os nomes das funções de um módulo

  • « get_defined_constants
  • get_include_path »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Retorna um array com os nomes das funções de um módulo

get_extension_funcs

(PHP 4, PHP 5, PHP 7, PHP 8)

get_extension_funcs — Retorna um array com os nomes das funções de um módulo

Descrição

get_extension_funcs(string $extension): array|false

Esta função retorna os nomes de todas as funções definidas no módulo indicado por extension.

Parâmetros

extension

O nome do módulo.

Nota:

Este parâmetro precisa estar em minúsculas.

Valor Retornado

Retorna um array com todas as funções, ou false se extension não for uma extensão válida.

Exemplos

Exemplo #1 Imprime as funções de XML

<?php
print_r(get_extension_funcs("xml"));
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => xml_parser_create
    [1] => xml_parser_create_ns
    [2] => xml_set_object
    [3] => xml_set_element_handler
    [4] => xml_set_character_data_handler
    [5] => xml_set_processing_instruction_handler
    [6] => xml_set_default_handler
    [7] => xml_set_unparsed_entity_decl_handler
    [8] => xml_set_notation_decl_handler
    [9] => xml_set_external_entity_ref_handler
    [10] => xml_set_start_namespace_decl_handler
    [11] => xml_set_end_namespace_decl_handler
    [12] => xml_parse
    [13] => xml_parse_into_struct
    [14] => xml_get_error_code
    [15] => xml_error_string
    [16] => xml_get_current_line_number
    [17] => xml_get_current_column_number
    [18] => xml_get_current_byte_index
    [19] => xml_parser_free
    [20] => xml_parser_set_option
    [21] => xml_parser_get_option
)

Veja Também

  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded
  • ReflectionExtension::getFunctions() - Gets extension functions


Obtém a opção de configuração include_path atual

  • « get_extension_funcs
  • get_included_files »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Obtém a opção de configuração include_path atual

get_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

get_include_path — Obtém a opção de configuração include_path atual

Descrição

get_include_path(): string|false

Obtém a opção de configuração include_path atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o caminho, como uma string, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de get_include_path()

<?php
echo get_include_path();

// Ou usando ini_get()
echo ini_get('include_path');
?>

Veja Também

  • ini_get() - Gets the value of a configuration option
  • restore_include_path() - Restaura o valor da opção de configuração include_path
  • set_include_path() - Sets the include_path configuration option
  • include - include


Returns an array with the names of included or required files

  • « get_include_path
  • get_loaded_extensions »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns an array with the names of included or required files

get_included_files

(PHP 4, PHP 5, PHP 7, PHP 8)

get_included_files — Returns an array with the names of included or required files

Descrição

get_included_files(): array

Gets the names of all files that have been included using include, include_once, require or require_once.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of the names of all files.

The script originally called is considered an "included file," so it will be listed together with the files referenced by include and family.

Files that are included or required multiple times only show up once in the returned array.

Exemplos

Exemplo #1 get_included_files() example

<?php
// This file is abc.php

include 'test1.php';
include_once 'test2.php';
require 'test3.php';
require_once 'test4.php';

$included_files = get_included_files();

foreach ($included_files as $filename) {
echo "$filename\n";
}

?>

O exemplo acima produzirá:

/path/to/abc.php
/path/to/test1.php
/path/to/test2.php
/path/to/test3.php
/path/to/test4.php

Veja Também

  • include - include
  • include_once - include_once
  • require - require
  • require_once - require_once
  • get_required_files() - Sinônimo de get_included_files


Returns an array with the names of all modules compiled and loaded

  • « get_included_files
  • get_magic_quotes_gpc »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns an array with the names of all modules compiled and loaded

get_loaded_extensions

(PHP 4, PHP 5, PHP 7, PHP 8)

get_loaded_extensions — Returns an array with the names of all modules compiled and loaded

Descrição

get_loaded_extensions(bool $zend_extensions = false): array

This function returns the names of all the modules compiled and loaded in the PHP interpreter.

Parâmetros

zend_extensions

Only return Zend extensions, if not then regular extensions, like mysqli are listed. Defaults to false (return regular extensions).

Valor Retornado

Returns an indexed array of all the modules names.

Exemplos

Exemplo #1 get_loaded_extensions() Example

<?php
print_r(get_loaded_extensions());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Core
    [1] => date
    [2] => libxml
    [3] => pcre
    [4] => sqlite3
    [5] => zlib
    [6] => ctype
    [7] => dom
    [8] => fileinfo
    [9] => filter
    [10] => hash
    [11] => json
    [12] => mbstring
    [13] => SPL
    [14] => PDO
    [15] => session
    [16] => posix
    [17] => Reflection
    [18] => standard
    [19] => SimpleXML
    [20] => pdo_sqlite
    [21] => Phar
    [22] => tokenizer
    [23] => xml
    [24] => xmlreader
    [25] => xmlwriter
    [26] => gmp
    [27] => iconv
    [28] => intl
    [29] => bcmath
    [30] => sodium
    [31] => Zend OPcache
)

Veja Também

  • get_extension_funcs() - Retorna um array com os nomes das funções de um módulo
  • extension_loaded() - Descobre se uma extensão está carregada
  • dl() - Carrega uma extensão do PHP durante a execução
  • phpinfo() - Outputs information about PHP's configuration


Obtém a configuração atual de magic_quotes_gpc

  • « get_loaded_extensions
  • get_magic_quotes_runtime »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Obtém a configuração atual de magic_quotes_gpc

get_magic_quotes_gpc

(PHP 4, PHP 5, PHP 7)

get_magic_quotes_gpc — Obtém a configuração atual de magic_quotes_gpc

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

get_magic_quotes_gpc(): false

Sempre retorna false.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna false.

Registro de Alterações

Versão | Descrição
7.4.0 | Esta função tornou-se defasada.

Veja Também

  • addslashes() - Adiciona barras a uma string
  • stripslashes() - Desfaz os escapes de uma string escapada
  • get_magic_quotes_runtime() - Obtém a configuração ativa para magic_quotes_runtime
  • ini_get() - Gets the value of a configuration option


Obtém a configuração ativa para magic_quotes_runtime

  • « get_magic_quotes_gpc
  • get_required_files »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Obtém a configuração ativa para magic_quotes_runtime

get_magic_quotes_runtime

(PHP 4, PHP 5, PHP 7)

get_magic_quotes_runtime — Obtém a configuração ativa para magic_quotes_runtime

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

get_magic_quotes_runtime(): false

Sempre retorna false.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna false.

Registro de Alterações

Versão | Descrição
7.4.0 | Esta função foi descontinuada.

Veja Também

  • get_magic_quotes_gpc() - Obtém a configuração atual de magic_quotes_gpc


Sinônimo de get_included_files

  • « get_magic_quotes_runtime
  • get_resources »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Sinônimo de get_included_files

get_required_files

(PHP 4, PHP 5, PHP 7, PHP 8)

get_required_files — Sinônimo de get_included_files()

Descrição

Esta função é um apelido para: get_included_files().


Returns active resources

  • « get_required_files
  • getenv »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns active resources

get_resources

(PHP 7, PHP 8)

get_resources — Returns active resources

Descrição

get_resources(?string $type = null): array

Returns an array of all currently active resources, optionally filtered by resource type.

Nota: This function is meant for debugging and testing purposes. It is not supposed to be used in production environments, especially not to access or even manipulate resources which are normally not accessible (e.g. the underlying stream resource of SplFileObject instances).

Parâmetros

type

If defined, this will cause get_resources() to only return resources of the given type. A list of resource types is available.

If the string Unknown is provided as the type, then only resources that are of an unknown type will be returned.

If omitted, all resources will be returned.

Valor Retornado

Returns an array of currently active resources, indexed by resource number.

Registro de Alterações

Versão | Descrição
8.0.0 | type is nullable now.

Exemplos

Exemplo #1 Unfiltered get_resources()

<?php
$fp = tmpfile();
var_dump(get_resources());
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [1]=>
  resource(1) of type (stream)
}

Exemplo #2 Filtered get_resources()

<?php
$fp = tmpfile();
var_dump(get_resources('stream'));
var_dump(get_resources('curl'));
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [1]=>
  resource(1) of type (stream)
}
array(0) {
}

Veja Também

  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values
  • get_defined_functions() - Retorna um array com todas as funções definidas
  • get_defined_vars() - Retorna um array com todas variáveis definidas


Gets the value of a single or all environment variables

  • « get_resources
  • getlastmod »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Gets the value of a single or all environment variables

getenv

(PHP 4, PHP 5, PHP 7, PHP 8)

getenv — Gets the value of a single or all environment variables

Descrição

getenv(?string $name = null, bool $local_only = false): string|array|false

Gets the value of a single or all environment variables.

You can see a list of all the environmental variables by using phpinfo(). Many of these variables are listed within » RFC 3875, specifically section 4.1, "Request Meta-Variables".

Parâmetros

name

The variable name as a string or null.

local_only

When set to true, only local environment variables are returned, set by the operating system or putenv. It only has an effect when name is a string.

Valor Retornado

Returns the value of the environment variable name, or false if the environment variable name does not exist. If name is null, all environment variables are returned as an associative array.

Registro de Alterações

Versão | Descrição
8.0.0 | The name is now nullable.
7.1.0 | The name can now be omitted to retrieve an associative array of all environment variables.
7.0.9 | The local_only parameter has been added.

Exemplos

Exemplo #1 getenv() Example

<?php
// Example use of getenv()
$ip = getenv('REMOTE_ADDR');

// Or simply use a Superglobal ($_SERVER or $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];

// Safely get the value of an environment variable, ignoring whether
// or not it was set by a SAPI or has been changed with putenv
$ip = getenv('REMOTE_ADDR', true) ?: getenv('REMOTE_ADDR')
?>

Notas

Aviso

If PHP is running in a SAPI such as Fast CGI, this function will always return the value of an environment variable set by the SAPI, even if putenv() has been used to set a local environment variable of the same name. Use the local_only parameter to return the value of locally-set environment variables.

Veja Também

  • putenv() - Define o valor de uma variável de ambiente
  • apache_getenv() - Retorna uma variável subprocess_env do Apache
  • Superglobals


Obtém o horário da última modificação na página

  • « getenv
  • getmygid »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Obtém o horário da última modificação na página

getlastmod

(PHP 4, PHP 5, PHP 7, PHP 8)

getlastmod — Obtém o horário da última modificação na página

Descrição

getlastmod(): int|false

Obtém o horário da última modificação do script principal de execução.

Se o objetivo for obter o horário da última modificação de um arquivo diferente, considere usar filemtime().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o tempo da última modificação na página atual. O valor é retornado como um timestamp Unix, útil para usar com a função date(). Retorna false em caso de erro.

Exemplos

Exemplo #1 Exemplo de getlastmod()

<?php
// mostra por exemplo 'Última Modificação: March 04 1998 20:43:59.'
echo "Última Modificação: " . date ("F d Y H:i:s.", getlastmod());
?>

Veja Também

  • date() - Formatar um timestamp Unix
  • getmyuid() - Obtém o UID do proprietário do script PHP
  • getmygid() - Obtém o GID do proprietário do script PHP
  • get_current_user() - Gets the name of the owner of the current PHP script
  • getmyinode() - Gets the inode of the current script
  • getmypid() - Obtém o ID do processo PHP
  • filemtime() - Obtém o horário de modificação do arquivo


Obtém o GID do proprietário do script PHP

  • « getlastmod
  • getmyinode »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Obtém o GID do proprietário do script PHP

getmygid

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

getmygid — Obtém o GID do proprietário do script PHP

Descrição

getmygid(): int|false

Obtém o ID do grupo do script atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o ID do grupo do script atual, ou false em caso de erro.

Veja Também

  • getmyuid() - Obtém o UID do proprietário do script PHP
  • getmypid() - Obtém o ID do processo PHP
  • get_current_user() - Gets the name of the owner of the current PHP script
  • getmyinode() - Gets the inode of the current script
  • getlastmod() - Obtém o horário da última modificação na página


Gets the inode of the current script

  • « getmygid
  • getmypid »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Gets the inode of the current script

getmyinode

(PHP 4, PHP 5, PHP 7, PHP 8)

getmyinode — Gets the inode of the current script

Descrição

getmyinode(): int|false

Gets the inode of the current script.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current script's inode as an integer, or false on error.

Veja Também

  • getmygid() - Obtém o GID do proprietário do script PHP
  • getmyuid() - Obtém o UID do proprietário do script PHP
  • getmypid() - Obtém o ID do processo PHP
  • get_current_user() - Gets the name of the owner of the current PHP script
  • getlastmod() - Obtém o horário da última modificação na página


Obtém o ID do processo PHP

  • « getmyinode
  • getmyuid »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Obtém o ID do processo PHP

getmypid

(PHP 4, PHP 5, PHP 7, PHP 8)

getmypid — Obtém o ID do processo PHP

Descrição

getmypid(): int|false

Obtém o ID do processo atual do PHP.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o ID do processo atual do PHP, ou false em caso de erro.

Notas

Aviso

IDs de processos não são únicos, portanto são uma fonte de entropia fraca. Recomenda-se não confiar em PIDs em contextos que dependam de segurança.

Veja Também

  • getmygid() - Obtém o GID do proprietário do script PHP
  • getmyuid() - Obtém o UID do proprietário do script PHP
  • get_current_user() - Gets the name of the owner of the current PHP script
  • getmyinode() - Gets the inode of the current script
  • getlastmod() - Obtém o horário da última modificação na página


Obtém o UID do proprietário do script PHP

  • « getmypid
  • getopt »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Obtém o UID do proprietário do script PHP

getmyuid

(PHP 4, PHP 5, PHP 7, PHP 8)

getmyuid — Obtém o UID do proprietário do script PHP

Descrição

getmyuid(): int|false

Obtém o ID do usuário do script atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o ID do usuário do script atual, ou false em caso de erro.

Veja Também

  • getmygid() - Obtém o GID do proprietário do script PHP
  • getmypid() - Obtém o ID do processo PHP
  • get_current_user() - Gets the name of the owner of the current PHP script
  • getmyinode() - Gets the inode of the current script
  • getlastmod() - Obtém o horário da última modificação na página


Obtêm opções da linha de comando

  • « getmyuid
  • getrusage »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Obtêm opções da linha de comando

getopt

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

getopt — Obtêm opções da linha de comando

Descrição

getopt(string $short_options, array $long_options = [], int &$rest_index = null): array|false

Extrai as opções passadas para o script.

Parâmetros

short_options
Cada caracter nessa string será usada como uma opção e comparada contra as opções passadas para o script prefixadas com um único hífen (-). Por exemplo, a string "x" reconhece a opção -x. Somente a-z, A-Z e 0-9 são permitidos.
long_options
Um array de opções. Cada elemento desse array será usado como uma string de opção e comparada contra as opções passadas para o script com dois hífens (--). Por exemplo, um elemento longopts "opt" reconhece a opção --opt.
rest_index
Se o parâmetro rest_index estiver presente, então o índice onde a interpretação de argumentos parou será escrita nessa variável.

O parâmetro short_options pode conter os elementos a seguir:

  • Letras individuais (não aceita valores)
  • Letras seguidas de um dois pontos (parâmetro requer valores)
  • Letras seguidas de dois dois pontos(valor opcional)
Valores de opções são o primeiro argumento depois da string. Se o valor é exigido então não importa se o valor tem um espaço na frente ou não. Veja nota.

Nota: Valores opcionais não aceitam " " (espaço) como separador.

O array long_options pode conter:

  • String (parâmetro que não aceita valores)
  • String seguida por único dois pontos parãmetro requer valor)
  • String seguida por dois dois pontos (valor opcional)

Nota:

O formado para short_options e long_options é quase o mesmo, com a única diferença sendo que long_options é informado como um array de opções (onde cada elemento é a opção), enquanto short_options é informado como uma string (onde cada caracter é um opção).

Valor Retornado

Esta função retorna um array de pares de opções e argumentos, ou false em caso de falha.

Nota:

A interpretação de opções irá parar na primeira opção desconhecida, e tudo o mais será descartado.

Registro de Alterações

Versão | Descrição
7.1.0 | Acrescentando o parâmetro rest_index.

Exemplos

Exemplo #1 Exemplo básico de getopt()

<?php
// Script example.php
$options = getopt("f:hp:");
var_dump($options);
?>
shell> php example.php -fvalue -h

O exemplo acima produzirá:

array(2) {
  ["f"]=>
  string(5) "value"
  ["h"]=>
  bool(false)
}

Exemplo #2 Exemplo de getopt() com opções longas

<?php
// Script example.php
$shortopts = "";
$shortopts .= "f:"; // Valor exigido
$shortopts .= "v::"; // Valor opcional
$shortopts .= "abc"; // Essas opções não aceitam valores

$longopts = array(
"required:", // Valor exigido
"optional::", // Valor opcional
"option", // Sem valor
"opt", // Sem valor
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>
shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option

O exemplo acima produzirá:

array(6) {
  ["f"]=>
  string(11) "value for f"
  ["v"]=>
  bool(false)
  ["a"]=>
  bool(false)
  ["required"]=>
  string(5) "value"
  ["optional"]=>
  string(14) "optional value"
  ["option"]=>
  bool(false)
}

Exemplo #3 getopt() example: Passing multiple options as one

<?php
// Script example.php
$options = getopt("abc");
var_dump($options);
?>
shell> php example.php -aaac

O exemplo acima produzirá:

array(2) {
  ["a"]=>
  array(3) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
    [2]=>
    bool(false)
  }
  ["c"]=>
  bool(false)
}

Exemplo #4 Exemplo de getopt() com rest_index

<?php
// Script example.php
$rest_index = null;
$opts = getopt('a:b:', [], $rest_index);
$pos_args = array_slice($argv, $rest_index);
var_dump($pos_args);
shell> php example.php -a 1 -b 2 -- test

O exemplo acima produzirá:

array(1) {
  [0]=>
  string(4) "test"
}

Veja Também

  • $argv


Gets the current resource usages

  • « getopt
  • ini_alter »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Gets the current resource usages

getrusage

(PHP 4, PHP 5, PHP 7, PHP 8)

getrusage — Gets the current resource usages

Descrição

getrusage(int $mode = 0): array|false

This is an interface to getrusage(2). It gets data returned from the system call.

Parâmetros

mode

If mode is 1, getrusage will be called with RUSAGE_CHILDREN.

Valor Retornado

Returns an associative array containing the data returned from the system call. All entries are accessible by using their documented field names. Returns false on failure.

Registro de Alterações

Versão | Descrição
7.0.0 | This function is now supported on Windows.

Exemplos

Exemplo #1 getrusage() example

<?php
$dat = getrusage();
echo $dat["ru_oublock"]; // number of block output operations
echo $dat["ru_inblock"]; // number of block input operations
echo $dat["ru_msgsnd"]; // number of IPC messages sent
echo $dat["ru_msgrcv"]; // number of IPC messages received
echo $dat["ru_maxrss"]; // maximum resident set size
echo $dat["ru_ixrss"]; // integral shared memory size
echo $dat["ru_idrss"]; // integral unshared data size
echo $dat["ru_minflt"]; // number of page reclaims (soft page faults)
echo $dat["ru_majflt"]; // number of page faults (hard page faults)
echo $dat["ru_nsignals"]; // number of signals received
echo $dat["ru_nvcsw"]; // number of voluntary context switches
echo $dat["ru_nivcsw"]; // number of involuntary context switches
echo $dat["ru_nswap"]; // number of swaps
echo $dat["ru_utime.tv_usec"]; // user time used (microseconds)
echo $dat["ru_utime.tv_sec"]; // user time used (seconds)
echo $dat["ru_stime.tv_usec"]; // system time used (microseconds)
echo $dat["ru_stime.tv_sec"]; // system time used (seconds)
?>

Notas

Nota:

On Windows getrusage() will only return the following members:

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"
  • "ru_majflt" (only if mode is RUSAGE_SELF)
  • "ru_maxrss" (only if mode is RUSAGE_SELF)

If getrusage() is called with mode set to 1 (RUSAGE_CHILDREN), then resource usage for threads are collected (meaning that internally the function is called with RUSAGE_THREAD).

Nota:

on BeOS 2000, only the following members are returned:

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"

Veja Também

  • Your system's man page on getrusage(2)


Sinônimo de ini_set

  • « getrusage
  • ini_get_all »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Sinônimo de ini_set

ini_alter

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_alter — Sinônimo de ini_set()

Descrição

Esta função é um apelido para: ini_set().


Gets all configuration options

  • « ini_alter
  • ini_get »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Gets all configuration options

ini_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ini_get_all — Gets all configuration options

Descrição

ini_get_all(?string $extension = null, bool $details = true): array|false

Returns all the registered configuration options.

Parâmetros

extension

An optional extension name. If not null or the string core, the function returns only options specific for that extension.

details

Retrieve details settings or only the current value for each setting. Default is true (retrieve details).

Valor Retornado

Returns an associative array with directive name as the array key. Returns false and raises an E_WARNING level error if the extension doesn't exist.

When details is true (default) the array will contain global_value (set in php.ini), local_value (perhaps set with ini_set() or .htaccess), and access (the access level).

When details is false the value will be the current value of the option.

See the manual section for information on what access levels mean.

Nota:

It's possible for a directive to have multiple access levels, which is why access shows the appropriate bitmask values.

Exemplos

Exemplo #1 ini_get_all() examples

<?php
print_r(ini_get_all("pcre"));
print_r(ini_get_all());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [pcre.backtrack_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

    [pcre.recursion_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

)
Array
(
    [allow_call_time_pass_reference] => Array
        (
            [global_value] => 0
            [local_value] => 0
            [access] => 6
        )

    [allow_url_fopen] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 4
        )

    ...

)

Exemplo #2 Disabling details

<?php
print_r(ini_get_all("pcre", false)); // Added in PHP 5.3.0
print_r(ini_get_all(null, false)); // Added in PHP 5.3.0
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [pcre.backtrack_limit] => 100000
    [pcre.recursion_limit] => 100000
)
Array
(
    [allow_call_time_pass_reference] => 0
    [allow_url_fopen] => 1
    ...
)

Notas

Nota:

ini_get_all() ignores "array" ini options such as pdo.dsn.*.

Veja Também

  • Como mudar as configurações
  • ini_get() - Gets the value of a configuration option
  • ini_restore() - Restores the value of a configuration option
  • ini_set() - Sets the value of a configuration option
  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded
  • phpinfo() - Outputs information about PHP's configuration
  • ReflectionExtension::getINIEntries() - Gets extension ini entries


Gets the value of a configuration option

  • « ini_get_all
  • ini_parse_quantity »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Gets the value of a configuration option

ini_get

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_get — Gets the value of a configuration option

Descrição

ini_get(string $option): string|false

Returns the value of the configuration option on success.

Parâmetros

option

The configuration option name.

Valor Retornado

Returns the value of the configuration option as a string on success, or an empty string for null values. Returns false if the configuration option doesn't exist.

Exemplos

Exemplo #1 A few ini_get() examples

<?php
/*
Our php.ini contains the following settings:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

function return_bytes($val) {
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last) {
// The 'G' modifier is available
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}

return $val;
}

?>

O exemplo acima produzirá algo semelhante a:

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
post_max_size in bytes = 8388608

Notas

Nota: When querying boolean values

A boolean ini value of off will be returned as an empty string or "0" while a boolean ini value of on will be returned as "1". The function can also return the literal string of INI value.

Nota: When querying memory size values

Many ini memory size values, such as upload_max_filesize, are stored in the php.ini file in shorthand notation. ini_get() will return the exact string stored in the php.ini file and NOT its int equivalent. Attempting normal arithmetic functions on these values will not have otherwise expected results. The example above shows one way to convert shorthand notation into bytes, much like how the PHP source does it.

Nota:

ini_get() can't read "array" ini options such as pdo.dsn.*, and returns false in this case.

Veja Também

  • get_cfg_var() - Gets the value of a PHP configuration option
  • ini_get_all() - Gets all configuration options
  • ini_restore() - Restores the value of a configuration option
  • ini_set() - Sets the value of a configuration option


Get interpreted size from ini shorthand syntax

  • « ini_get
  • ini_restore »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Get interpreted size from ini shorthand syntax

ini_parse_quantity

(PHP 8 >= 8.2.0)

ini_parse_quantity — Get interpreted size from ini shorthand syntax

Descrição

ini_parse_quantity(string $shorthand): int

Returns the interpreted size in bytes on success from an ini shorthand.

Parâmetros

shorthand

Ini shorthand to parse, must be a number followed by an optional multiplier. The following multipliers are supported: k/K (1024), m/M (1048576), g/G (1073741824). The number can be a decimal, hex (prefixed with 0x or 0X), octal (prefixed with 0o, 0O or 0) or binary (prefixed with 0b or 0B)

Valor Retornado

Returns the interpreted size in bytes as an int.

Erros/Exceções

If the value cannot be parsed, or an invalid multiplier is used, an E_WARNING is raised.

Exemplos

Exemplo #1 A few ini_parse_quantity() examples

<?php

var_dump(ini_parse_quantity('1024'));
var_dump(ini_parse_quantity('1024M'));
var_dump(ini_parse_quantity('512K'));
var_dump(ini_parse_quantity('0xFFk'));
var_dump(ini_parse_quantity('0b1010k'));
var_dump(ini_parse_quantity('0o1024'));
var_dump(ini_parse_quantity('01024'));
var_dump(ini_parse_quantity('Foobar'));
var_dump(ini_parse_quantity('10F'));

?>

O exemplo acima produzirá algo semelhante a:

int(1024)
int(1073741824)
int(524288)
int(261120)
int(10240)
int(532)
int(532)

Warning: Invalid quantity "Foobar": no valid leading digits, interpreting as "0" for backwards compatibility
int(0)

Warning: Invalid quantity "10F": unknown multiplier "F", interpreting as "10" for backwards compatibility
int(10)

Veja Também

  • ini_get() - Gets the value of a configuration option


Restores the value of a configuration option

  • « ini_parse_quantity
  • ini_set »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Restores the value of a configuration option

ini_restore

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_restore — Restores the value of a configuration option

Descrição

ini_restore(string $option): void

Restores a given configuration option to its original value.

Parâmetros

option

The configuration option name.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ini_restore() example

<?php
$setting = 'html_errors';

echo 'Current value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_set($setting, ini_get($setting) ? 0 : 1);
echo 'New value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_restore($setting);
echo 'Original value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
?>

O exemplo acima produzirá:

Current value for 'html_errors': 1
New value for 'html_errors': 0
Original value for 'html_errors': 1

Veja Também

  • ini_get() - Gets the value of a configuration option
  • ini_get_all() - Gets all configuration options
  • ini_set() - Sets the value of a configuration option


Sets the value of a configuration option

  • « ini_restore
  • memory_get_peak_usage »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Sets the value of a configuration option

ini_set

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_set — Sets the value of a configuration option

Descrição

ini_set(string $option, string|int|float|bool|null $value): string|false

Sets the value of the given configuration option. The configuration option will keep this new value during the script's execution, and will be restored at the script's ending.

Parâmetros

option

Not all the available options can be changed using ini_set(). There is a list of all available options in the appendix.

value

The new value for the option.

Valor Retornado

Returns the old value on success, false on failure.

Registro de Alterações

Versão | Descrição
8.1.0 | value now accepts any scalar type (including null). Previously, only string values were accepted.

Exemplos

Exemplo #1 Setting an ini option

<?php
echo ini_get('display_errors');

if (!ini_get('display_errors')) {
ini_set('display_errors', '1');
}

echo ini_get('display_errors');
?>

Veja Também

  • get_cfg_var() - Gets the value of a PHP configuration option
  • ini_get() - Gets the value of a configuration option
  • ini_get_all() - Gets all configuration options
  • ini_restore() - Restores the value of a configuration option
  • How to change configuration settings


Returns the peak of memory allocated by PHP

  • « ini_set
  • memory_get_usage »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns the peak of memory allocated by PHP

memory_get_peak_usage

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

memory_get_peak_usage — Returns the peak of memory allocated by PHP

Descrição

memory_get_peak_usage(bool $real_usage = false): int

Returns the peak of memory, in bytes, that's been allocated to your PHP script.

Parâmetros

real_usage

Set this to true to get the real size of memory allocated from system. If not set or false only the memory used by emalloc() is reported.

Valor Retornado

Returns the memory peak in bytes.

Veja Também

  • memory_get_usage() - Returns the amount of memory allocated to PHP
  • memory_reset_peak_usage() - Reset the peak memory usage
  • memory_limit


Returns the amount of memory allocated to PHP

  • « memory_get_peak_usage
  • memory_reset_peak_usage »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns the amount of memory allocated to PHP

memory_get_usage

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

memory_get_usage — Returns the amount of memory allocated to PHP

Descrição

memory_get_usage(bool $real_usage = false): int

Returns the amount of memory, in bytes, that's currently being allocated to your PHP script.

Parâmetros

real_usage

Set this to true to get total memory allocated from system, including unused pages. If not set or false only the used memory is reported.

Nota:

PHP does not track memory that is not allocated by emalloc()

Valor Retornado

Returns the memory amount in bytes.

Exemplos

Exemplo #1 A memory_get_usage() example

<?php
// This is only an example, the numbers below will
// differ depending on your system

echo memory_get_usage() . "\n"; // 36640

$a = str_repeat("Hello", 4242);

echo memory_get_usage() . "\n"; // 57960

unset($a);

echo memory_get_usage() . "\n"; // 36744

?>

Veja Também

  • memory_get_peak_usage() - Returns the peak of memory allocated by PHP
  • memory_limit


Reset the peak memory usage

  • « memory_get_usage
  • php_ini_loaded_file »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Reset the peak memory usage

memory_reset_peak_usage

(PHP 8 >= 8.2.0)

memory_reset_peak_usage — Reset the peak memory usage

Descrição

memory_reset_peak_usage(): void

Resets the peak memory usage returned by the memory_get_peak_usage() function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 memory_reset_peak_usage() example

<?php

var_dump(memory_get_peak_usage());

$a = str_repeat("Hello", 424242);
var_dump(memory_get_peak_usage());

unset($a);
memory_reset_peak_usage();

$a = str_repeat("Hello", 2424);
var_dump(memory_get_peak_usage());

?>

O exemplo acima produzirá algo semelhante a:

int(422440)
int(2508672)
int(399208)

Veja Também

  • memory_get_peak_usage() - Returns the peak of memory allocated by PHP


Retrieve a path to the loaded php.ini file

  • « memory_reset_peak_usage
  • php_ini_scanned_files »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Retrieve a path to the loaded php.ini file

php_ini_loaded_file

(PHP 5 >= 5.2.4, PHP 7, PHP 8)

php_ini_loaded_file — Retrieve a path to the loaded php.ini file

Descrição

php_ini_loaded_file(): string|false

Check if a php.ini file is loaded, and retrieve its path.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The loaded php.ini path, or false if one is not loaded.

Exemplos

Exemplo #1 php_ini_loaded_file() example

<?php
$inipath = php_ini_loaded_file();

if ($inipath) {
echo 'Loaded php.ini: ' . $inipath;
} else {
echo 'A php.ini file is not loaded';
}
?>

O exemplo acima produzirá algo semelhante a:

Loaded php.ini: /usr/local/php/php.ini

Veja Também

  • php_ini_scanned_files() - Return a list of .ini files parsed from the additional ini dir
  • phpinfo() - Outputs information about PHP's configuration
  • The configuration file


Return a list of .ini files parsed from the additional ini dir

  • « php_ini_loaded_file
  • php_sapi_name »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Return a list of .ini files parsed from the additional ini dir

php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

php_ini_scanned_files — Return a list of .ini files parsed from the additional ini dir

Descrição

php_ini_scanned_files(): string|false

php_ini_scanned_files() returns a comma-separated list of configuration files parsed after php.ini. The directories searched are set by a compile time option and, optionally, by an environment variable at run time: more information can be found in the installation guide.

The returned configuration files include the full path.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a comma-separated string of .ini files on success. Each comma is followed by a newline. If the configure directive --with-config-file-scan-dir wasn't set and the PHP_INI_SCAN_DIR environment variable isn't set, false is returned. If it was set and the directory was empty, an empty string is returned. If a file is unrecognizable, the file will still make it into the returned string but a PHP error will also result. This PHP error will be seen both at compile time and while using php_ini_scanned_files().

Exemplos

Exemplo #1 A simple example to list the returned ini files

<?php
if ($filelist = php_ini_scanned_files()) {
if (strlen($filelist) > 0) {
$files = explode(',', $filelist);

foreach ($files as $file) {
echo "<li>" . trim($file) . "</li>\n";
}
}
}
?>

Veja Também

  • ini_set() - Sets the value of a configuration option
  • phpinfo() - Outputs information about PHP's configuration
  • php_ini_loaded_file() - Retrieve a path to the loaded php.ini file


Returns the type of interface between web server and PHP

  • « php_ini_scanned_files
  • php_uname »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns the type of interface between web server and PHP

php_sapi_name

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

php_sapi_name — Returns the type of interface between web server and PHP

Descrição

php_sapi_name(): string|false

Returns a lowercase string that describes the type of interface (the Server API, SAPI) that PHP is using. For example, in CLI PHP this string will be "cli" whereas with Apache it may have several different values depending on the exact SAPI used. Possible values are listed below.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the interface type, as a lowercase string, ou false em caso de falha.

Although not exhaustive, the possible return values include apache, apache2handler, cgi (until PHP 5.3), cgi-fcgi, cli, cli-server, embed, fpm-fcgi, litespeed, phpdbg.

Exemplos

Exemplo #1 php_sapi_name() example

This example checks for the substring cgi because it may also be cgi-fcgi.

<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
echo "You are using CGI PHP\n";
} else {
echo "You are not using CGI PHP\n";
}
?>

Notas

Nota: An alternative approach

The PHP constant PHP_SAPI has the same value as php_sapi_name().

Dica

A potential gotcha

The defined SAPI may not be obvious, because for example instead of apache it may be defined as apache2handler.

Veja Também

  • PHP_SAPI


Returns information about the operating system PHP is running on

  • « php_sapi_name
  • phpcredits »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns information about the operating system PHP is running on

php_uname

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

php_uname — Returns information about the operating system PHP is running on

Descrição

php_uname(string $mode = "a"): string

php_uname() returns a description of the operating system PHP is running on. This is the same string you see at the very top of the phpinfo() output. For the name of just the operating system, consider using the PHP_OS constant, but keep in mind this constant will contain the operating system PHP was built on.

On some older UNIX platforms, it may not be able to determine the current OS information in which case it will revert to displaying the OS PHP was built on. This will only happen if your uname() library call either doesn't exist or doesn't work.

Parâmetros

mode

mode is a single character that defines what information is returned:

  • 'a': This is the default. Contains all modes in the sequence "s n r v m".
  • 's': Operating system name. eg. FreeBSD.
  • 'n': Host name. eg. localhost.example.com.
  • 'r': Release name. eg. 5.1.2-RELEASE.
  • 'v': Version information. Varies a lot between operating systems.
  • 'm': Machine type. eg. i386.

Valor Retornado

Returns the description, as a string.

Exemplos

Exemplo #1 Some php_uname() examples

<?php
echo php_uname();
echo PHP_OS;

/* Some possible outputs:
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 'This is a server using Windows!';
} else {
echo 'This is a server not using Windows!';
}

?>

There are also some related Predefined PHP constants that may come in handy, for example:

Exemplo #2 A few OS related constant examples

<?php
// *nix
echo DIRECTORY_SEPARATOR; // /
echo PHP_SHLIB_SUFFIX; // so
echo PATH_SEPARATOR; // :

// Win*
echo DIRECTORY_SEPARATOR; // \
echo PHP_SHLIB_SUFFIX; // dll
echo PATH_SEPARATOR; // ;
?>

Veja Também

  • phpversion() - Gets the current PHP version
  • php_sapi_name() - Returns the type of interface between web server and PHP
  • phpinfo() - Outputs information about PHP's configuration


Prints out the credits for PHP

  • « php_uname
  • phpinfo »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Prints out the credits for PHP

phpcredits

(PHP 4, PHP 5, PHP 7, PHP 8)

phpcredits — Prints out the credits for PHP

Descrição

phpcredits(int $flags = CREDITS_ALL): true

This function prints out the credits listing the PHP developers, modules, etc. It generates the appropriate HTML codes to insert the information in a page.

Parâmetros

flags

To generate a custom credits page, you may want to use the flags parameter.

Pre-defined phpcredits() flags
name | description
CREDITS_ALL | All the credits, equivalent to using: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. It generates a complete stand-alone HTML page with the appropriate tags.
CREDITS_DOCS | The credits for the documentation team
CREDITS_FULLPAGE | Usually used in combination with the other flags. Indicates that a complete stand-alone HTML page needs to be printed including the information indicated by the other flags.
CREDITS_GENERAL | General credits: Language design and concept, PHP authors and SAPI module.
CREDITS_GROUP | A list of the core developers
CREDITS_MODULES | A list of the extension modules for PHP, and their authors
CREDITS_SAPI | A list of the server API modules for PHP, and their authors

Valor Retornado

Sempre retorna true.

Exemplos

Exemplo #1 Prints the general credits

<?php
phpcredits(CREDITS_GENERAL);
?>

Exemplo #2 Prints the core developers and the documentation group

<?php
phpcredits(CREDITS_GROUP | CREDITS_DOCS | CREDITS_FULLPAGE);
?>

Exemplo #3 Printing all the credits

<html>
<head>
<title>My credits page</title>
</head>
<body>
<?php
// some code of your own
phpcredits(CREDITS_ALL - CREDITS_FULLPAGE);
// some more code
?>
 </body>
</html>

Notas

Nota:

phpcredits() outputs plain text instead of HTML when using the CLI mode.

Veja Também

  • phpversion() - Gets the current PHP version
  • phpinfo() - Outputs information about PHP's configuration


Outputs information about PHP's configuration

  • « phpcredits
  • phpversion »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Outputs information about PHP's configuration

phpinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

phpinfo — Outputs information about PHP's configuration

Descrição

phpinfo(int $flags = INFO_ALL): true

Outputs a large amount of information about the current state of PHP. This includes information about PHP compilation options and extensions, the PHP version, server information and environment (if compiled as a module), the PHP environment, OS version information, paths, master and local values of configuration options, HTTP headers, and the PHP License.

Because every system is setup differently, phpinfo() is commonly used to check configuration settings and for available predefined variables on a given system.

phpinfo() is also a valuable debugging tool as it contains all EGPCS (Environment, GET, POST, Cookie, Server) data.

Parâmetros

flags

The output may be customized by passing one or more of the following constants bitwise values summed together in the optional flags parameter. One can also combine the respective constants or bitwise values together with the bitwise or operator.

phpinfo() options
Name (constant) | Value | Description
INFO_GENERAL | 1 | The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS | 2 | PHP Credits. See also phpcredits().
INFO_CONFIGURATION | 4 | Current Local and Master values for PHP directives. See also ini_get().
INFO_MODULES | 8 | Loaded modules and their respective settings. See also get_loaded_extensions().
INFO_ENVIRONMENT | 16 | Environment Variable information that's also available in $_ENV.
INFO_VARIABLES | 32 | Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | PHP License information. See also the » license FAQ.
INFO_ALL | -1 | Shows all of the above.

Valor Retornado

Sempre retorna true.

Exemplos

Exemplo #1 phpinfo() Example

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);

?>

Notas

Nota:

In versions of PHP before 5.5, parts of the information displayed are disabled when the expose_php configuration setting is set to off. This includes the PHP and Zend logos, and the credits.

Nota:

phpinfo() outputs plain text instead of HTML when using the CLI mode.

Veja Também

  • phpversion() - Gets the current PHP version
  • phpcredits() - Prints out the credits for PHP
  • ini_get() - Gets the value of a configuration option
  • ini_set() - Sets the value of a configuration option
  • get_loaded_extensions() - Returns an array with the names of all modules compiled and loaded
  • Predefined Variables


Gets the current PHP version

  • « phpinfo
  • putenv »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Gets the current PHP version

phpversion

(PHP 4, PHP 5, PHP 7, PHP 8)

phpversion — Gets the current PHP version

Descrição

phpversion(?string $extension = null): string|false

Returns a string containing the version of the currently running PHP parser or extension.

Parâmetros

extension

An optional extension name.

Valor Retornado

Returns the current PHP version as a string. If a string argument is provided for extension parameter, phpversion() returns the version of that extension, or false if there is no version information associated or the extension isn't enabled.

Registro de Alterações

Versão | Descrição
8.0.0 | extension is nullable now.

Exemplos

Exemplo #1 phpversion() example

<?php
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();

// prints e.g. '2.0' or nothing if the extension isn't enabled
echo phpversion('tidy');
?>

Exemplo #2 PHP_VERSION_ID example and usage

<?php
// PHP_VERSION_ID is available as of PHP 5.2.7, if our
// version is lower than that, then emulate it
if (!defined('PHP_VERSION_ID')) {
$version = explode('.', PHP_VERSION);

define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
}

// PHP_VERSION_ID is defined as a number, where the higher the number
// is, the newer a PHP version is used. It's defined as used in the above
// expression:
//
// $version_id = $major_version * 10000 + $minor_version * 100 + $release_version;
//
// Now with PHP_VERSION_ID we can check for features this PHP version
// may have, this doesn't require to use version_compare() everytime
// you check if the current PHP version may not support a feature.
//
// For example, we may here define the PHP_VERSION_* constants thats
// not available in versions prior to 5.2.7

if (PHP_VERSION_ID < 50207) {
define('PHP_MAJOR_VERSION', $version[0]);
define('PHP_MINOR_VERSION', $version[1]);
define('PHP_RELEASE_VERSION', $version[2]);

// and so on, ...
}
?>

Notas

Nota:

This information is also available in the predefined constant PHP_VERSION. More versioning information is available using the PHP_VERSION_* constants.

Nota:

Some extensions may define their own version number. However, most bundled extension will use the PHP version as their version number.

Veja Também

  • PHP_VERSION constants
  • version_compare() - Compares two "PHP-standardized" version number strings
  • phpinfo() - Outputs information about PHP's configuration
  • phpcredits() - Prints out the credits for PHP
  • zend_version() - Obtém a versão do motor Zend atual


Define o valor de uma variável de ambiente

  • « phpversion
  • restore_include_path »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Define o valor de uma variável de ambiente

putenv

(PHP 4, PHP 5, PHP 7, PHP 8)

putenv — Define o valor de uma variável de ambiente

Descrição

putenv(string $assignment): bool

Adiciona assignment no ambiente do servidor. A variável de ambiente irá existir somente durante a requisição atual. Ao final da requisição o ambiente é restaurado ao seu estado original.

Parâmetros

assignment

A definição, como "FOO=BAR"

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Definindo uma variável de ambiente

<?php
putenv("UNIQID=$uniqid");
?>

Veja Também

  • getenv() - Gets the value of a single or all environment variables
  • apache_setenv() - Define uma variável subprocess_env do Apache


Restaura o valor da opção de configuração include_path

  • « putenv
  • set_include_path »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Restaura o valor da opção de configuração include_path

restore_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

restore_include_path — Restaura o valor da opção de configuração include_path

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

restore_include_path(): void

Restaura a opção de configuração include_path de volta ao seu valor original master como definido no php.ini

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de restore_include_path()

<?php

echo get_include_path(); // .:/usr/local/lib/php

set_include_path('/inc');

echo get_include_path(); // /inc

restore_include_path();

// Ou usando ini_restore()
ini_restore('include_path');

echo get_include_path(); // .:/usr/local/lib/php

?>

Veja Também

  • ini_restore() - Restores the value of a configuration option
  • get_include_path() - Obtém a opção de configuração include_path atual
  • set_include_path() - Sets the include_path configuration option
  • include - include


Sets the include_path configuration option

  • « restore_include_path
  • set_time_limit »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Sets the include_path configuration option

set_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

set_include_path — Sets the include_path configuration option

Descrição

set_include_path(string $include_path): string|false

Sets the include_path configuration option for the duration of the script.

Parâmetros

include_path

The new value for the include_path

Valor Retornado

Returns the old include_path on success ou false em caso de falha.

Exemplos

Exemplo #1 set_include_path() example

<?php
set_include_path('/usr/lib/pear');

// Or using ini_set()
ini_set('include_path', '/usr/lib/pear');
?>

Exemplo #2 Adding to the include path

Making use of the PATH_SEPARATOR constant, it is possible to extend the include path regardless of the operating system.

In this example we add /usr/lib/pear to the end of the existing include_path.

<?php
$path = '/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>

Veja Também

  • ini_set() - Sets the value of a configuration option
  • get_include_path() - Obtém a opção de configuração include_path atual
  • restore_include_path() - Restaura o valor da opção de configuração include_path
  • include - include


Limits the maximum execution time

  • « set_include_path
  • sys_get_temp_dir »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Limits the maximum execution time

set_time_limit

(PHP 4, PHP 5, PHP 7, PHP 8)

set_time_limit — Limits the maximum execution time

Descrição

set_time_limit(int $seconds): bool

Set the number of seconds a script is allowed to run. If this is reached, the script returns a fatal error. The default limit is 30 seconds or, if it exists, the max_execution_time value defined in the php.ini.

When called, set_time_limit() restarts the timeout counter from zero. In other words, if the timeout is the default 30 seconds, and 25 seconds into script execution a call such as set_time_limit(20) is made, the script will run for a total of 45 seconds before timing out.

Parâmetros

seconds

The maximum execution time, in seconds. If set to zero, no time limit is imposed.

Valor Retornado

Returns true on success, or false on failure.

Notas

Nota:

The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running. This is not true on Windows where the measured time is real.

Veja Também

  • max_execution_time
  • max_input_time


Returns directory path used for temporary files

  • « set_time_limit
  • version_compare »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns directory path used for temporary files

sys_get_temp_dir

(PHP 5 >= 5.2.1, PHP 7, PHP 8)

sys_get_temp_dir — Returns directory path used for temporary files

Descrição

sys_get_temp_dir(): string

Returns the path of the directory PHP stores temporary files in by default.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the path of the temporary directory.

Exemplos

Exemplo #1 sys_get_temp_dir() example

<?php
// Create a temporary file in the temporary
// files directory using sys_get_temp_dir()
$temp_file = tempnam(sys_get_temp_dir(), 'Tux');

echo $temp_file;
?>

O exemplo acima produzirá algo semelhante a:

C:\Windows\Temp\TuxA318.tmp

Veja Também

  • tmpfile() - Cria um arquivo temporário
  • tempnam() - Cria arquivo com nome único


Compares two "PHP-standardized" version number strings

  • « sys_get_temp_dir
  • zend_thread_id »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Compares two "PHP-standardized" version number strings

version_compare

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

version_compare — Compares two "PHP-standardized" version number strings

Descrição

version_compare(string $version1, string $version2, ?string $operator = null): int|bool

version_compare() compares two "PHP-standardized" version number strings.

The function first replaces _, - and + with a dot . in the version strings and also inserts dots . before and after any non number so that for example '4.3.2RC1' becomes '4.3.2.RC.1'. Then it compares the parts starting from left to right. If a part contains special version strings these are handled in the following order: any string not found in this list < dev < alpha = a < beta = b < RC = rc < # < pl = p. This way not only versions with different levels like '4.1' and '4.1.2' can be compared but also any PHP specific version containing development state.

Parâmetros

version1

First version number.

version2

Second version number.

operator

An optional operator. The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectively.

This parameter is case-sensitive, values should be lowercase.

Valor Retornado

By default, version_compare() returns -1 if the first version is lower than the second, 0 if they are equal, and 1 if the second is lower.

When using the optional operator argument, the function will return true if the relationship is the one specified by the operator, false otherwise.

Exemplos

The examples below use the PHP_VERSION constant, because it contains the value of the PHP version that is executing the code.

Exemplo #1 version_compare() examples

<?php
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
echo 'I am at least PHP version 7.0.0, my version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
echo 'I am at least PHP version 5.3.0, my version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
echo 'I am at least PHP version 5.0.0, my version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'I am still PHP 4, my version: ' . PHP_VERSION . "\n";
}
?>

Notas

Nota:

The PHP_VERSION constant holds current PHP version.

Nota:

Note that pre-release versions, such as 5.3.0-dev, are considered lower than their final release counterparts (like 5.3.0).

Nota:

Special version strings such as alpha and beta are case sensitive. Version strings from arbitrary sources that do not adhere to the PHP standard may need to be lowercased via strtolower() before calling version_compare().

Veja Também

  • phpversion() - Gets the current PHP version
  • php_uname() - Returns information about the operating system PHP is running on
  • function_exists() - Retorna true se a função informada estiver definida


Returns a unique identifier for the current thread

  • « version_compare
  • zend_version »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Returns a unique identifier for the current thread

zend_thread_id

(PHP 5, PHP 7, PHP 8)

zend_thread_id — Returns a unique identifier for the current thread

Descrição

zend_thread_id(): int

This function returns a unique identifier for the current thread.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the thread id as an integer.

Exemplos

Exemplo #1 zend_thread_id() example

<?php
$thread_id = zend_thread_id();

echo 'Current thread id is: ' . $thread_id;
?>

O exemplo acima produzirá algo semelhante a:

Current thread id is: 7864

Notas

Nota:

This function is only available if PHP has been built with ZTS (Zend Thread Safety) support and debug mode (--enable-debug).


Obtém a versão do motor Zend atual

  • « zend_thread_id
  • phpdbg »
  • PHP Manual
  • Funções para Opções/Info do PHP
  • Obtém a versão do motor Zend atual

zend_version

(PHP 4, PHP 5, PHP 7, PHP 8)

zend_version — Obtém a versão do motor Zend atual

Descrição

zend_version(): string

Retorna uma string contendo a versão atual do motor Zend Engine atualmente em execução.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número da versão do motor Zend, como uma string.

Exemplos

Exemplo #1 Exemplo de zend_version()

<?php
echo "Versão do motor Zend: " . zend_version();
?>

O exemplo acima produzirá algo semelhante a:

Versão do motor Zend: 2.2.0

Veja Também

  • phpinfo() - Outputs information about PHP's configuration
  • phpcredits() - Prints out the credits for PHP
  • phpversion() - Gets the current PHP version


Depurador PHP Interativo

  • Introdução
  • Instalação/Configuração
    • Configurações em Execução
  • Constantes pré-definidas
  • phpdbg Funções
    • phpdbg_break_file — Insere um ponto de interrupção em uma linha de um arquivo
    • phpdbg_break_function — Insere um ponto de interrupção na entrada de uma função
    • phpdbg_break_method — Insere um ponto de interrupção na entrada de um método
    • phpdbg_break_next — Insere um ponto de interrupção no próximo opcode
    • phpdbg_clear — Limpa todos os pontos de interrupção
    • phpdbg_color — Define a cor de certos elementos
    • phpdbg_end_oplog — Descrição
    • phpdbg_exec — Tenta definir o contexto de execução
    • phpdbg_get_executable — Descrição
    • phpdbg_prompt — Define o prompt de comando
    • phpdbg_start_oplog — Descrição


Introdução

Implementado como um módulo SAPI, o phpdbg pode exercer controle total sobre o ambiente sem afetar a funcionalidade ou o desempenho do seu código.

O phpdbg visa ser uma plataforma de depuração leve, poderosa e fácil de usar para PHP. Ele oferece os seguintes recursos:

  • Depuração passo a passo
  • Pontos de interrupção flexíveis(método de classe, função, arquivo: linha, endereço, opcode)
  • Fácil acesso ao PHP com built-in eval()
  • API de usuário
  • SAPI Agnóstico - Facilmente integrado
  • Suporte ao arquivo de configuração do PHP
  • JIT super globais
  • Suporte readline opcional - operação confortável do terminal
  • Operação fácil - Veja ajuda :)

Opções de linha de comando
Opção | Exemplo de Argumento | Descrição
-c | -c/my/php.ini | Defina o arquivo php.ini para carregar
-d | -dmemory_limit=4G | Definir uma diretiva php.ini
-n |  | Desativar php.ini padrão
-q |  | Suprimir mensagem de boas-vindas
-v |  | Ativar saída do oplog
-b |  | Desativar cor
-i | -imy.init | Definir arquivo .phpdbginit
-I |  | Ignorar .phpdbginit padrão
-O | -Omy.oplog | Definir arquivo de saída oplog
-r |  | Executar contexto de execução
-rr |  | Execute o contexto de execução e saia após a execução (não respeitando os pontos de interrupção)
-e |  | Gerar informações estendidas para depurador/criador de perfil
-E |  | Habilitar eval passo a passo, cuidado!
-s | -s=, -s=foo | Leia o código para executar a partir do stdin com um delimitador opcional
-S | -Scli | Substitua o nome SAPI, cuidado!
-l | -l4000 | Configurar portas de console remoto
-a | -a192.168.0.3 | Configurar endereço de ligação do console remoto
-x |  | Ativar saída xml (em vez da saída de texto normal)
-p | -p, -p=func, -p* | Opcodes de saída e sair
-h |  | Imprima a visão geral da ajuda
-V |  | Número da versão impressa
-- | -- arg1 arg2 | Use para delimitar argumentos phpdbg e php $argv; acrescente qualquer argumento $argv depois dele


  • « Introdução
  • Configurações em Execução »
  • PHP Manual
  • phpdbg
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Configurações em Execução


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

phpdbg Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
phpdbg.eol | 2 | INI_ALL | Removed as of PHP 8.1.0
phpdbg.path |  | 6 | Removed as of PHP 8.1.0

Aqui está uma breve explicação das diretivas de configuração.

phpdbg.eol mixed

The kind of line ending to use for output. For setting the value, one of the string aliases must be used.

int Value | string Alias
0 | CRLF, crlf, DOS, dos
1 | LF, lf, UNIX, unix
2 | CR, cr, MAC, mac

phpdbg.path string


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

PHPDBG_VERSION (string)
PHPDBG_FILE (int)
Removido a partir do PHP 7.3.0.
PHPDBG_METHOD (int)
Removido a partir do PHP 7.3.0.
PHPDBG_LINENO (int)
Removido a partir do PHP 7.3.0.
PHPDBG_FUNC (int)
Removido a partir do PHP 7.3.0.


phpdbg Funções

Índice

  • phpdbg_break_file — Insere um ponto de interrupção em uma linha de um arquivo
  • phpdbg_break_function — Insere um ponto de interrupção na entrada de uma função
  • phpdbg_break_method — Insere um ponto de interrupção na entrada de um método
  • phpdbg_break_next — Insere um ponto de interrupção no próximo opcode
  • phpdbg_clear — Limpa todos os pontos de interrupção
  • phpdbg_color — Define a cor de certos elementos
  • phpdbg_end_oplog — Descrição
  • phpdbg_exec — Tenta definir o contexto de execução
  • phpdbg_get_executable — Descrição
  • phpdbg_prompt — Define o prompt de comando
  • phpdbg_start_oplog — Descrição


Insere um ponto de interrupção em uma linha de um arquivo

  • « phpdbg Funções
  • phpdbg_break_function »
  • PHP Manual
  • phpdbg Funções
  • Insere um ponto de interrupção em uma linha de um arquivo

phpdbg_break_file

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_file — Insere um ponto de interrupção em uma linha de um arquivo

Descrição

phpdbg_break_file(string $file, int $line): void

Insere um ponto de interrupção na line fornecida no file fornecido.

Parâmetros

file

O nome do arquivo.

line

O número da linha.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • phpdbg_break_function() - Insere um ponto de interrupção na entrada de uma função
  • phpdbg_break_method() - Insere um ponto de interrupção na entrada de um método
  • phpdbg_break_next() - Insere um ponto de interrupção no próximo opcode
  • phpdbg_clear() - Limpa todos os pontos de interrupção


Insere um ponto de interrupção na entrada de uma função

  • « phpdbg_break_file
  • phpdbg_break_method »
  • PHP Manual
  • phpdbg Funções
  • Insere um ponto de interrupção na entrada de uma função

phpdbg_break_function

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_function — Insere um ponto de interrupção na entrada de uma função

Descrição

phpdbg_break_function(string $function): void

Insere um ponto de interrupção na entrada da function fornecida.

Parâmetros

function

O nome da função.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • phpdbg_break_file() - Insere um ponto de interrupção em uma linha de um arquivo
  • phpdbg_break_method() - Insere um ponto de interrupção na entrada de um método
  • phpdbg_break_next() - Insere um ponto de interrupção no próximo opcode
  • phpdbg_clear() - Limpa todos os pontos de interrupção


Insere um ponto de interrupção na entrada de um método

  • « phpdbg_break_function
  • phpdbg_break_next »
  • PHP Manual
  • phpdbg Funções
  • Insere um ponto de interrupção na entrada de um método

phpdbg_break_method

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_method — Insere um ponto de interrupção na entrada de um método

Descrição

phpdbg_break_method(string $class, string $method): void

Insere um ponto de interrupção na entrada do method fornecido da class especificada.

Parâmetros

class

O nome da classe.

method

O nome do método.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • phpdbg_break_file() - Insere um ponto de interrupção em uma linha de um arquivo
  • phpdbg_break_function() - Insere um ponto de interrupção na entrada de uma função
  • phpdbg_break_next() - Insere um ponto de interrupção no próximo opcode
  • phpdbg_clear() - Limpa todos os pontos de interrupção


Insere um ponto de interrupção no próximo opcode

  • « phpdbg_break_method
  • phpdbg_clear »
  • PHP Manual
  • phpdbg Funções
  • Insere um ponto de interrupção no próximo opcode

phpdbg_break_next

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_next — Insere um ponto de interrupção no próximo opcode

Descrição

phpdbg_break_next(): void

Insere um ponto de interrupção no próximo opcode.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • phpdbg_break_file() - Insere um ponto de interrupção em uma linha de um arquivo
  • phpdbg_break_function() - Insere um ponto de interrupção na entrada de uma função
  • phpdbg_break_method() - Insere um ponto de interrupção na entrada de um método
  • phpdbg_clear() - Limpa todos os pontos de interrupção


Limpa todos os pontos de interrupção

  • « phpdbg_break_next
  • phpdbg_color »
  • PHP Manual
  • phpdbg Funções
  • Limpa todos os pontos de interrupção

phpdbg_clear

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_clear — Limpa todos os pontos de interrupção

Descrição

phpdbg_clear(): void

Limpa todos os pontos de interrupção que foram definidos, por meio de uma das funções phpdbg_break_*() ou interativamente no console.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • phpdbg_break_file() - Insere um ponto de interrupção em uma linha de um arquivo
  • phpdbg_break_function() - Insere um ponto de interrupção na entrada de uma função
  • phpdbg_break_method() - Insere um ponto de interrupção na entrada de um método
  • phpdbg_break_next() - Insere um ponto de interrupção no próximo opcode


Define a cor de certos elementos

  • « phpdbg_clear
  • phpdbg_end_oplog »
  • PHP Manual
  • phpdbg Funções
  • Define a cor de certos elementos

phpdbg_color

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_color — Define a cor de certos elementos

Descrição

phpdbg_color(int $element, string $color): void

Define a color do element fornecido.

Parâmetros

element

Uma das constantes PHPDBG_COLOR_*.

color

O nome da cor. Um de white, red, green, yellow, blue, purple, cyan ou black, opcionalmente com um traço -bold ou -underline, por exemplo, white-bold ou green-underline.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • phpdbg_prompt() - Define o prompt de comando


Descrição

  • « phpdbg_color
  • phpdbg_exec »
  • PHP Manual
  • phpdbg Funções
  • Descrição

phpdbg_end_oplog

(PHP 7, PHP 8)

phpdbg_end_oplog —

Descrição

phpdbg_end_oplog(array $options = []): ?array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

options

Valor Retornado


Tenta definir o contexto de execução

  • « phpdbg_end_oplog
  • phpdbg_get_executable »
  • PHP Manual
  • phpdbg Funções
  • Tenta definir o contexto de execução

phpdbg_exec

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_exec — Tenta definir o contexto de execução

Descrição

phpdbg_exec(string $context): string|bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

context

Valor Retornado

Se o contexto de execução foi definido anteriormente, ele é retornado. Se o contexto de execução não foi definido anteriormente, true é retornado. Se a solicitação para definir o contexto falhar, false será retornado e um E_WARNING será gerado.


Descrição

  • « phpdbg_exec
  • phpdbg_prompt »
  • PHP Manual
  • phpdbg Funções
  • Descrição

phpdbg_get_executable

(PHP 7, PHP 8)

phpdbg_get_executable —

Descrição

phpdbg_get_executable(array $options = []): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

options

Valor Retornado


Define o prompt de comando

  • « phpdbg_get_executable
  • phpdbg_start_oplog »
  • PHP Manual
  • phpdbg Funções
  • Define o prompt de comando

phpdbg_prompt

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_prompt — Define o prompt de comando

Descrição

phpdbg_prompt(string $string): void

Define o prompt de comando para a string fornecida.

Parâmetros

string

A string a ser usada como prompt de comando.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • phpdbg_color() - Define a cor de certos elementos


Descrição

  • « phpdbg_prompt
  • runkit7 »
  • PHP Manual
  • phpdbg Funções
  • Descrição

phpdbg_start_oplog

(PHP 7, PHP 8)

phpdbg_start_oplog —

Descrição

phpdbg_start_oplog(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


runkit7

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • runkit7 Funções
    • runkit7_constant_add — Similar to define(), but allows defining in class definitions as well
    • runkit7_constant_redefine — Redefine an already defined constant
    • runkit7_constant_remove — Remove/Delete an already defined constant
    • runkit7_function_add — Add a new function, similar to create_function
    • runkit7_function_copy — Copy a function to a new function name
    • runkit7_function_redefine — Replace a function definition with a new implementation
    • runkit7_function_remove — Remove a function definition
    • runkit7_function_rename — Change a function's name
    • runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit7_method_add — Dynamically adds a new method to a given class
    • runkit7_method_copy — Copies a method from class to another
    • runkit7_method_redefine — Dynamically changes the code of the given method
    • runkit7_method_remove — Dynamically removes the given method
    • runkit7_method_rename — Dynamically changes the name of the given method
    • runkit7_object_id — Return the integer object handle for given object
    • runkit7_superglobals — Return numerically indexed array of registered superglobals
    • runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc


Introdução

The runkit7 extension provides means to modify constants, user-defined functions, and user-defined classes. It also provides for custom superglobal variables.

This package is a fork of the » runkit package providing PHP 7 support.


Dependências

Modifying Constants, Functions, Classes, and Methods as well as Custom Superglobals works with all releases of PHP 7. No special requirements are necessary.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/runkit7.

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Runkit Configuration Options
Nome | Padrão | Modificável | Registro de Alterações
runkit.superglobal | "" | INI_PERDIR |
runkit.internal_override | "0" | INI_SYSTEM |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

runkit.superglobal string
Comma-separated list of variable names to be treated as superglobals. This value should be set in the systemwide php.ini file, but may work in perdir configuration contexts depending on your SAPI.

Exemplo #1 Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini

<?php
function show_values() {
echo "Foo is $_FOO\n";
echo "Bar is $_BAR\n";
echo "Baz is $_BAZ\n";
}

$_FOO = 'foo';
$_BAR = 'bar';
$_BAZ = 'baz';

/* Displays foo and bar, but not baz */
show_values();
?>
runkit.internal_override bool
Enables ability to modify/rename/remove internal functions.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

RUNKIT7_IMPORT_FUNCTIONS (int)
runkit7_import() flag indicating that normal functions should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_METHODS (int)
runkit7_import() flag indicating that class methods should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_CONSTS (int)
runkit7_import() flag indicating that class constants should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_PROPS (int)
runkit7_import() flag indicating that class standard properties should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_STATIC_PROPS (int)
runkit7_import() flag indicating that class static properties should be imported from the specified file. Available since Runkit 1.0.1.
RUNKIT7_IMPORT_CLASSES (int)
runkit7_import() flag representing a bitwise OR of the RUNKIT7_IMPORT_CLASS_* constants.
RUNKIT7_IMPORT_OVERRIDE (int)
runkit7_import() flag indicating that if any of the imported functions, methods, constants, or properties already exist, they should be replaced with the new definitions. If this flag is not set, then any imported definitions which already exist will be discarded.
RUNKIT7_ACC_RETURN_REFERENCE (int)
Include this flag to make the function or method being created or redeclared return a reference.
RUNKIT7_ACC_PUBLIC (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method public.
RUNKIT7_ACC_PROTECTED (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method protected.
RUNKIT7_ACC_PRIVATE (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method private.
RUNKIT7_ACC_STATIC (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method static.
RUNKIT7_FEATURE_MANIPULATION (int)
Equal to 1 if runtime manipulation is enabled, and 0 otherwise.
RUNKIT7_FEATURE_SUPERGLOBALS (int)
Equal to 1 if custom superglobals are enabled, and 0 otherwise.
RUNKIT7_FEATURE_SANDBOX (int)
Always 0, it's impractical to implement the sandbox feature in php 7.


runkit7 Funções

Índice

  • runkit7_constant_add — Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_redefine — Redefine an already defined constant
  • runkit7_constant_remove — Remove/Delete an already defined constant
  • runkit7_function_add — Add a new function, similar to create_function
  • runkit7_function_copy — Copy a function to a new function name
  • runkit7_function_redefine — Replace a function definition with a new implementation
  • runkit7_function_remove — Remove a function definition
  • runkit7_function_rename — Change a function's name
  • runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate
  • runkit7_method_add — Dynamically adds a new method to a given class
  • runkit7_method_copy — Copies a method from class to another
  • runkit7_method_redefine — Dynamically changes the code of the given method
  • runkit7_method_remove — Dynamically removes the given method
  • runkit7_method_rename — Dynamically changes the name of the given method
  • runkit7_object_id — Return the integer object handle for given object
  • runkit7_superglobals — Return numerically indexed array of registered superglobals
  • runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc


Similar to define(), but allows defining in class definitions as well

  • « runkit7 Funções
  • runkit7_constant_redefine »
  • PHP Manual
  • runkit7 Funções
  • Similar to define(), but allows defining in class definitions as well

runkit7_constant_add

(PECL runkit7 >= Unknown)

runkit7_constant_add — Similar to define(), but allows defining in class definitions as well

Descrição

runkit7_constant_add(string $constant_name, mixed $value, int $newVisibility = ?): bool

Parâmetros

constant_name

Name of constant to declare. Either a string to indicate a global constant, or classname::constname to indicate a class constant.

value

NULL, Bool, Long, Double, String, Array, or Resource value to store in the new constant.

newVisibility

Visibility of the constant, for class constants. Public by default. One of the RUNKIT7_ACC_* constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • define() - Define uma constante com nome
  • runkit7_constant_redefine() - Redefine an already defined constant
  • runkit7_constant_remove() - Remove/Delete an already defined constant


Redefine an already defined constant

  • « runkit7_constant_add
  • runkit7_constant_remove »
  • PHP Manual
  • runkit7 Funções
  • Redefine an already defined constant

runkit7_constant_redefine

(PECL runkit7 >= Unknown)

runkit7_constant_redefine — Redefine an already defined constant

Descrição

runkit7_constant_redefine(string $constant_name, mixed $value, int $new_visibility = ?): bool

Parâmetros

constant_name

Constant to redefine. Either the name of a global constant, or classname::constname indicating class constant.

value

Value to assign to the constant.

new_visibility

The new visibility of the constant, for class constants. Unchanged by default. One of the RUNKIT7_ACC_* constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • runkit7_constant_add() - Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_remove() - Remove/Delete an already defined constant


Remove/Delete an already defined constant

  • « runkit7_constant_redefine
  • runkit7_function_add »
  • PHP Manual
  • runkit7 Funções
  • Remove/Delete an already defined constant

runkit7_constant_remove

(PECL runkit7 >= Unknown)

runkit7_constant_remove — Remove/Delete an already defined constant

Descrição

runkit7_constant_remove(string $constant_name): bool

Parâmetros

constant_name

Name of the constant to remove. Either the name of a global constant, or classname::constname indicating a class constant.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • define() - Define uma constante com nome
  • runkit7_constant_add() - Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_redefine() - Redefine an already defined constant


Add a new function, similar to create_function

  • « runkit7_constant_remove
  • runkit7_function_copy »
  • PHP Manual
  • runkit7 Funções
  • Add a new function, similar to create_function

runkit7_function_add

(PECL runkit7 >= Unknown)

runkit7_function_add — Add a new function, similar to create_function()

Descrição

runkit7_function_add(
string $function_name,
string $argument_list,
string $code,
bool $return_by_reference = null,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_function_add(
string $function_name,
Closure $closure,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Parâmetros

function_name

Name of the function to be created

argument_list

Comma separated argument list

code

Code making up the function

closure

A closure that defines the function.

return_by_reference

Whether the function should return by reference.

doc_comment

The doc comment of the function.

return_type

The return type of the function.

is_strict

Whether the function should behave as if it were declared in a file with strict_types=1

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 A runkit7_function_add() example

<?php
runkit7_function_add('testme','$a,$b','echo "The value of a is $a\n"; echo "The value of b is $b\n";');
testme(1,2);
?>

O exemplo acima produzirá:

The value of a is 1
The value of b is 2

Veja Também

  • create_function() - Cria uma função dinamicamente avaliando uma string de código
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition
  • runkit7_method_add() - Dynamically adds a new method to a given class


Copy a function to a new function name

  • « runkit7_function_add
  • runkit7_function_redefine »
  • PHP Manual
  • runkit7 Funções
  • Copy a function to a new function name

runkit7_function_copy

(PECL runkit7 >= Unknown)

runkit7_function_copy — Copy a function to a new function name

Descrição

runkit7_function_copy(string $source_name, string $target_name): bool

Parâmetros

source_name

Name of the existing function

target_name

Name of the new function to copy the definition to

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 A runkit7_function_copy() example

<?php
function original() {
echo "In a function\n";
}
runkit7_function_copy('original','duplicate');
original();
duplicate();
?>

O exemplo acima produzirá:

In a function
In a function

Veja Também

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition


Replace a function definition with a new implementation

  • « runkit7_function_copy
  • runkit7_function_remove »
  • PHP Manual
  • runkit7 Funções
  • Replace a function definition with a new implementation

runkit7_function_redefine

(PECL runkit7 >= Unknown)

runkit7_function_redefine — Replace a function definition with a new implementation

Descrição

runkit7_function_redefine(
string $function_name,
string $argument_list,
string $code,
bool $return_by_reference = null,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_function_redefine(
string $function_name,
Closure $closure,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Nota: Por padrão, apenas funções criadas pelo usuário podem ser removidas, renomeadas ou modificadas. Para sobrescrever funções internas, a configuração runkit.internal_override deve ser habilitada no php.ini.

Parâmetros

function_name

Name of function to redefine

argument_list

New list of arguments to be accepted by function

code

New code implementation

closure

A closure that defines the function.

return_by_reference

Whether the function should return by reference.

doc_comment

The doc comment of the function.

return_type

The return type of the function.

is_strict

Whether the function behaves as if it was declared in a file with strict_types=1

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 A runkit7_function_redefine() example

<?php
function testme() {
echo "Original Testme Implementation\n";
}
testme();
runkit7_function_redefine('testme','','echo "New Testme Implementation\n";');
testme();
?>

O exemplo acima produzirá:

Original Testme Implementation
New Testme Implementation

Veja Também

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition
  • runkit7_method_redefine() - Dynamically changes the code of the given method


Remove a function definition

  • « runkit7_function_redefine
  • runkit7_function_rename »
  • PHP Manual
  • runkit7 Funções
  • Remove a function definition

runkit7_function_remove

(PECL runkit7 >= Unknown)

runkit7_function_remove — Remove a function definition

Descrição

runkit7_function_remove(string $function_name): bool

Nota: Por padrão, apenas funções criadas pelo usuário podem ser removidas, renomeadas ou modificadas. Para sobrescrever funções internas, a configuração runkit.internal_override deve ser habilitada no php.ini.

Parâmetros

function_name

Name of the function to be deleted

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_rename() - Change a function's name


Change a function's name

  • « runkit7_function_remove
  • runkit7_import »
  • PHP Manual
  • runkit7 Funções
  • Change a function's name

runkit7_function_rename

(PECL runkit7 >= Unknown)

runkit7_function_rename — Change a function's name

Descrição

runkit7_function_rename(string $source_name, string $target_name): bool

Nota: Por padrão, apenas funções criadas pelo usuário podem ser removidas, renomeadas ou modificadas. Para sobrescrever funções internas, a configuração runkit.internal_override deve ser habilitada no php.ini.

Parâmetros

source_name

Current function name

target_name

New function name

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_remove() - Remove a function definition


Process a PHP file importing function and class definitions, overwriting where appropriate

  • « runkit7_function_rename
  • runkit7_method_add »
  • PHP Manual
  • runkit7 Funções
  • Process a PHP file importing function and class definitions, overwriting where appropriate

runkit7_import

(PECL runkit7 >= Unknown)

runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate

Aviso

This feature has been removed in PECL runkit7 4.0.0.

Descrição

runkit7_import(string $filename, int $flags = ?): bool

Similar to include. However, any code residing outside of a function or class is simply ignored. Additionally, depending on the value of flags, any functions or classes which already exist in the currently running environment may be automatically overwritten by their new definitions.

Parâmetros

filename

Filename to import function and class definitions from

flags

Bitwise OR of the RUNKIT7_IMPORT_* family of constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Dynamically adds a new method to a given class

  • « runkit7_import
  • runkit7_method_copy »
  • PHP Manual
  • runkit7 Funções
  • Dynamically adds a new method to a given class

runkit7_method_add

(PECL runkit7 >= Unknown)

runkit7_method_add — Dynamically adds a new method to a given class

Descrição

runkit7_method_add(
string $class_name,
string $method_name,
string $argument_list,
string $code,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_method_add(
string $class_name,
string $method_name,
Closure $closure,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Parâmetros

class_name

The class to which this method will be added

method_name

The name of the method to add

argument_list

Comma-delimited list of arguments for the newly-created method

code

The code to be evaluated when method_name is called

closure

A closure that defines the method.

flags

The type of method to create, can be RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED or RUNKIT7_ACC_PRIVATE optionally combined via bitwise OR with RUNKIT7_ACC_STATIC

doc_comment

The doc comment of the method.

return_type

The return type of the method.

is_strict

Whether the method behaves as if it were declared in a file with strict_types=1

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 runkit7_method_add() example

<?php
class Example {
function foo() {
echo "foo!\n";
}
}

// create an Example object
$e = new Example();

// Add a new public method
runkit7_method_add(
'Example',
'add',
'$num1, $num2',
'return $num1 + $num2;',
RUNKIT7_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

O exemplo acima produzirá:

16

Veja Também

  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_add() - Add a new function, similar to create_function


Copies a method from class to another

  • « runkit7_method_add
  • runkit7_method_redefine »
  • PHP Manual
  • runkit7 Funções
  • Copies a method from class to another

runkit7_method_copy

(PECL runkit7 >= Unknown)

runkit7_method_copy — Copies a method from class to another

Descrição

runkit7_method_copy(
string $destination_class,
string $destination_method_name,
string $source_class,
string $source_method_name = ?
): bool

Parâmetros

destination_class

Destination class for copied method

destination_method_name

Destination method name

source_class

Source class of the method to copy

source_method_name

Name of the method to copy from the source class. If this parameter is omitted, the value of destination_method_name is assumed.

Valor Retornado

Exemplos

Exemplo #1 runkit7_method_copy() example

<?php
class Foo {
function example() {
return "foo!\n";
}
}

class Bar {
// initially, no methods
}

// copy the example() method from the Foo class to the Bar class, as baz()
runkit7_method_copy('Bar', 'baz', 'Foo', 'example');

// output copied function
echo Bar::baz();
?>

O exemplo acima produzirá:

foo!

Veja Também

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_copy() - Copy a function to a new function name


Dynamically changes the code of the given method

  • « runkit7_method_copy
  • runkit7_method_remove »
  • PHP Manual
  • runkit7 Funções
  • Dynamically changes the code of the given method

runkit7_method_redefine

(PECL runkit7 >= Unknown)

runkit7_method_redefine — Dynamically changes the code of the given method

Descrição

runkit7_method_redefine(
string $class_name,
string $method_name,
string $argument_list,
string $code,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_method_redefine(
string $class_name,
string $method_name,
Closure $closure,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Parâmetros

class_name

The class in which to redefine the method

method_name

The name of the method to redefine

argument_list

Comma-delimited list of arguments for the redefined method

code

The new code to be evaluated when method_name is called

closure

A closure that defines the method.

flags

The redefined method can be RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED or RUNKIT7_ACC_PRIVATE optionally combined via bitwise OR with RUNKIT7_ACC_STATIC

doc_comment

The doc comment of the method.

return_type

The return type of the method.

is_strict

Whether the method behaves as if it was declared in a file with strict_types=1.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 runkit7_method_redefine() example

<?php
class Example {
function foo() {
return "foo!\n";
}
}

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
runkit7_method_redefine(
'Example',
'foo',
'',
'return "bar!\n";',
RUNKIT7_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

O exemplo acima produzirá:

Before: foo!
After: bar!

Veja Também

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_redefine() - Replace a function definition with a new implementation


Dynamically removes the given method

  • « runkit7_method_redefine
  • runkit7_method_rename »
  • PHP Manual
  • runkit7 Funções
  • Dynamically removes the given method

runkit7_method_remove

(PECL runkit7 >= Unknown)

runkit7_method_remove — Dynamically removes the given method

Descrição

runkit7_method_remove(string $class_name, string $method_name): bool

Nota: Esta função não pode ser usada para manipular o método atualmente em execução (ou encadeado).

Parâmetros

class_name

The class in which to remove the method

method_name

The name of the method to remove

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 runkit7_method_remove() example

<?php
class Example {
function foo() {
return "foo!\n";
}

function bar() {
return "bar!\n";
}
}

// Remove the 'foo' method
runkit7_method_remove(
'Example',
'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

O exemplo acima produzirá:

bar

Veja Também

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_remove() - Remove a function definition


Dynamically changes the name of the given method

  • « runkit7_method_remove
  • runkit7_object_id »
  • PHP Manual
  • runkit7 Funções
  • Dynamically changes the name of the given method

runkit7_method_rename

(PECL runkit7 >= Unknown)

runkit7_method_rename — Dynamically changes the name of the given method

Descrição

runkit7_method_rename(string $class_name, string $source_method_name, string $target_method_name): bool

Nota: Esta função não pode ser usada para manipular o método atualmente em execução (ou encadeado).

Parâmetros

class_name

The class in which to rename the method

source_method_name

The name of the method to rename

target_method_name

The new name to give to the renamed method

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 runkit7_method_rename() example

<?php
class Example {
function foo() {
return "foo!\n";
}
}

// Rename the 'foo' method to 'bar'
runkit7_method_rename(
'Example',
'foo',
'bar'
);

// output renamed function
echo (new Example)->bar();
?>

O exemplo acima produzirá:

foo!

Veja Também

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_function_rename() - Change a function's name


Return the integer object handle for given object

  • « runkit7_method_rename
  • runkit7_superglobals »
  • PHP Manual
  • runkit7 Funções
  • Return the integer object handle for given object

runkit7_object_id

(PECL runkit7 >= Unknown)

runkit7_object_id — Return the integer object handle for given object

Descrição

runkit7_object_id(object $obj): int

This function is equivalent to spl_object_id().

This function returns a unique identifier for the object. The object id is unique for the lifetime of the object. Once the object is destroyed, its id may be reused for other objects. This behavior is similar to spl_object_hash().

Parâmetros

obj

Any object.

Valor Retornado

An integer identifier that is unique for each currently existing object and is always the same for each object.

Notas

Nota:

When an object is destroyed, its id may be reused for other objects.

Veja Também

  • spl_object_id() - Retorna o identificador inteiro do objeto fornecido


Return numerically indexed array of registered superglobals

  • « runkit7_object_id
  • runkit7_zval_inspect »
  • PHP Manual
  • runkit7 Funções
  • Return numerically indexed array of registered superglobals

runkit7_superglobals

(PECL runkit7 >= Unknown)

runkit7_superglobals — Return numerically indexed array of registered superglobals

Descrição

runkit7_superglobals(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a numerically indexed array of the currently registered superglobals. i.e. _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

Veja Também

  • Variable Scope


Returns information about the passed in value with data types, reference counts, etc

  • « runkit7_superglobals
  • uopz »
  • PHP Manual
  • runkit7 Funções
  • Returns information about the passed in value with data types, reference counts, etc

runkit7_zval_inspect

(PECL runkit7 >= Unknown)

runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc

Descrição

runkit7_zval_inspect(string $value): array

Parâmetros

value

The value to return the representation of

Valor Retornado

The array returned by this function contains the following elements:

  • address
  • refcount (optional)
  • is_ref (optional)
  • type

Exemplos

Exemplo #1 runkit7_zval_inspect() example

<?php

$var = new DateTime();
var_dump(runkit7_zval_inspect($var));

$var = 1;
var_dump(runkit7_zval_inspect($var));
?>

O exemplo acima produzirá:

array(4) {
  ["address"]=>
  string(14) "0x7f45ab21b1e0"
  ["refcount"]=>
  int(2)
  ["is_ref"]=>
  bool(false)
  ["type"]=>
  int(8)
}

array(2) {
  ["address"]=>
  string(14) "0x7f45ab21b1e0"
  ["type"]=>
  int(4)
}

Veja Também

  • References Explained
  • » References Explained (by Derick Rethans)


User Operations for Zend

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Uopz Funções
    • uopz_add_function — Adds non-existent function or method
    • uopz_allow_exit — Allows control over disabled exit opcode
    • uopz_backup — Backup a function
    • uopz_compose — Compose a class
    • uopz_copy — Copy a function
    • uopz_del_function — Deletes previously added function or method
    • uopz_delete — Delete a function
    • uopz_extend — Extend a class at runtime
    • uopz_flags — Get or set flags on function or class
    • uopz_function — Creates a function at runtime
    • uopz_get_exit_status — Retrieve the last set exit status
    • uopz_get_hook — Gets previously set hook on function or method
    • uopz_get_mock — Get the current mock for a class
    • uopz_get_property — Gets value of class or instance property
    • uopz_get_return — Gets a previous set return value for a function
    • uopz_get_static — Gets the static variables from function or method scope
    • uopz_implement — Implements an interface at runtime
    • uopz_overload — Overload a VM opcode
    • uopz_redefine — Redefine a constant
    • uopz_rename — Rename a function at runtime
    • uopz_restore — Restore a previously backed up function
    • uopz_set_hook — Sets hook to execute when entering a function or method
    • uopz_set_mock — Use mock instead of class for new objects
    • uopz_set_property — Sets value of existing class or instance property
    • uopz_set_return — Provide a return value for an existing function
    • uopz_set_static — Sets the static variables in function or method scope
    • uopz_undefine — Undefine a constant
    • uopz_unset_hook — Removes previously set hook on function or method
    • uopz_unset_mock — Unset previously set mock
    • uopz_unset_return — Unsets a previously set return value for a function


Introdução

The uopz - User Operations for Zend - extension exposes Zend Engine functionality normally used at compilation and execution time in order to allow modification of the internal structures that represent PHP code, and for user code to interact with the VM.

uopz supports the following activities:

  • Overloading some opcodes including ZEND_EXIT and ZEND_NEW
  • Backup and restore functions and methods
  • Renaming functions and methods
  • Copying of functions and methods
  • Deletion of functions and methods
  • Redefinition of global and class constants
  • Deletion of global and class constants
  • Runtime composition and modification of classes

Nota:

All of the activities supported are compatible with opcache

Cuidado

PECL uopz 6.1.1 is not compatible with Xdebug >= 2.9.4. Later uopz versions are not compatible with Xdebug < 2.9.4.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

As of uopz 5.0 PHP 7.0 is required. As of uopz 5.1, PHP 7.1+ is required.


Instalação

uopz releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/uopz.

Windows users can download prebuilt release binaries from the » PECL website.

As of uopz 5.0.0 the extension must be loaded as extension. Before this version it must be loaded as zend_extension.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

uopz Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
uopz.disable | "0" | INI_SYSTEM | Available as of uopz 5.0.2
uopz.exit | "0" | INI_SYSTEM | Available as of uopz 6.0.1
uopz.overloads | "1" | INI_SYSTEM | Available as of uopz 2.0.2. Removed as of uopz 5.0.0.
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

uopz.disable bool

If enabled, uopz should stop having any effect on the engine.

uopz.exit bool

Whether to allow the execution of exit opcodes or not. This setting can be overridden during runtime by calling uopz_allow_exit().

uopz.overloads bool

Enables the ability to use uopz_overload().

Nota: When running with OPcache enabled, it may be necessary to disable all OPcache optimizations (opcache.optimization_level=0).


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

The following opcodes are defined as constants by uopz before 5.0.0:

ZEND_EXIT (int)
Invoked by exit() and die(), receives no arguments. Return boolean true to exit, false to continue
ZEND_NEW (int)
Invoked by object construction, receives the class of object being created as the only argument
ZEND_THROW (int)
Invoked by the throw construct, receives the class of exception being thrown as the only argument
ZEND_FETCH_CLASS (int)
Invoked upon composure, receives the class the name of the class being fetched as the only argument
ZEND_ADD_TRAIT (int)
Invoked upon composure, receives the class the trait is being added to as the first argument, and the name of the trait as the second argument
ZEND_ADD_INTERFACE (int)
Invoked upon composure, receives the class the interface is being added to as the first argument, and the name of the interface as the second argument
ZEND_INSTANCEOF (int)
Invoked by instanceof operator, receives the object being verified as the first argument, and the name of the class which that object should be as the second argument

The following constants control the VM's behaviour after a user handler is invoked, be extremely careful! These constants are removed as of uopz 5.0.0.

ZEND_USER_OPCODE_CONTINUE (int)
Advance 1 opcode and continuue
ZEND_USER_OPCODE_ENTER (int)
Enter into new op_array without recursion
ZEND_USER_OPCODE_LEAVE (int)
Return to calling op_array within the same executor
ZEND_USER_OPCODE_DISPATCH (int)
Dispatch to original opcode handler
ZEND_USER_OPCODE_DISPATCH_TO (int)
Dispatch to a specific handler (OR'd with ZEND opcode constant)
ZEND_USER_OPCODE_RETURN (int)
Exit from executor (return from function)

The following modifiers are registered as constants by uopz

ZEND_ACC_PUBLIC (int)
Mark function as public, the default
ZEND_ACC_PROTECTED (int)
Mark function as protected
ZEND_ACC_PRIVATE (int)
Mark function as private
ZEND_ACC_STATIC (int)
Mark function as static
ZEND_ACC_FINAL (int)
Mark function as final
ZEND_ACC_ABSTRACT (int)
Mark function as abstract
ZEND_ACC_CLASS (int)
Dummy registered for consistency, the default kind of class entry. Removed as of uopz 5.0.0.
ZEND_ACC_INTERFACE (int)
Mark class as interface. Removed as of uopz 5.0.0.
ZEND_ACC_TRAIT (int)
Mark class as trait. Removed as of uopz 5.0.0.
ZEND_ACC_FETCH (int)
Used for getting flags only. Removed as of uopz 5.0.0.


Uopz Funções

Índice

  • uopz_add_function — Adds non-existent function or method
  • uopz_allow_exit — Allows control over disabled exit opcode
  • uopz_backup — Backup a function
  • uopz_compose — Compose a class
  • uopz_copy — Copy a function
  • uopz_del_function — Deletes previously added function or method
  • uopz_delete — Delete a function
  • uopz_extend — Extend a class at runtime
  • uopz_flags — Get or set flags on function or class
  • uopz_function — Creates a function at runtime
  • uopz_get_exit_status — Retrieve the last set exit status
  • uopz_get_hook — Gets previously set hook on function or method
  • uopz_get_mock — Get the current mock for a class
  • uopz_get_property — Gets value of class or instance property
  • uopz_get_return — Gets a previous set return value for a function
  • uopz_get_static — Gets the static variables from function or method scope
  • uopz_implement — Implements an interface at runtime
  • uopz_overload — Overload a VM opcode
  • uopz_redefine — Redefine a constant
  • uopz_rename — Rename a function at runtime
  • uopz_restore — Restore a previously backed up function
  • uopz_set_hook — Sets hook to execute when entering a function or method
  • uopz_set_mock — Use mock instead of class for new objects
  • uopz_set_property — Sets value of existing class or instance property
  • uopz_set_return — Provide a return value for an existing function
  • uopz_set_static — Sets the static variables in function or method scope
  • uopz_undefine — Undefine a constant
  • uopz_unset_hook — Removes previously set hook on function or method
  • uopz_unset_mock — Unset previously set mock
  • uopz_unset_return — Unsets a previously set return value for a function


Adds non-existent function or method

  • « Uopz Funções
  • uopz_allow_exit »
  • PHP Manual
  • Uopz Funções
  • Adds non-existent function or method

uopz_add_function

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_add_function — Adds non-existent function or method

Descrição

uopz_add_function(string $function, Closure $handler, int &$flags = ZEND_ACC_PUBLIC): bool
uopz_add_function(
string $class,
string $function,
Closure $handler,
int &$flags = ZEND_ACC_PUBLIC,
int &$all = true
): bool

Adds a non-existent function or method.

Parâmetros

class

The name of the class.

function

The name of the function or method.

handler

The Closure that defines the new function or method.

flags

Flags to set for the new function or method.

all

Whether all classes that descend from class will also be affected.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

uopz_add_function() throws a RuntimeException if the function or method to add already exists.

Exemplos

Exemplo #1 Basic uopz_add_function() Usage

<?php
uopz_add_function('foo', function () {echo 'bar';});
foo();
?>

O exemplo acima produzirá:

bar

Veja Também

  • uopz_del_function() - Deletes previously added function or method
  • uopz_set_return() - Provide a return value for an existing function


Allows control over disabled exit opcode

  • « uopz_add_function
  • uopz_backup »
  • PHP Manual
  • Uopz Funções
  • Allows control over disabled exit opcode

uopz_allow_exit

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_allow_exit — Allows control over disabled exit opcode

Descrição

uopz_allow_exit(bool $allow): void

By default uopz disables the exit opcode, so exit() calls are practically ignored. uopz_allow_exit() allows to control this behavior.

Parâmetros

allow

Whether to allow the execution of exit opcodes or not.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 uopz_allow_exit() example

<?php
exit(1);
echo 1;
uopz_allow_exit(true);
exit(2);
echo 2;
?>

O exemplo acima produzirá:

1

Notas

Cuidado

OPcache optimizes away dead code after unconditional exit.

Veja Também

  • uopz_get_exit_status() - Retrieve the last set exit status


Backup a function

  • « uopz_allow_exit
  • uopz_compose »
  • PHP Manual
  • Uopz Funções
  • Backup a function

uopz_backup

(PECL uopz 1 >= 1.0.3, PECL uopz 2)

uopz_backup — Backup a function

Aviso

Esta função foi REMOVIDA na uopz 5.0.0 no PECL.

Descrição

uopz_backup(string $function): void
uopz_backup(string $class, string $function): void

Backup a function at runtime, to be restored on shutdown

Parâmetros

class

The name of the class containing the function to backup

function

The name of the function

Valor Retornado

Exemplos

Exemplo #1 uopz_backup() example

<?php
uopz_backup("fgets");
uopz_function("fgets", function(){
return true;
});
var_dump(fgets());
?>

O exemplo acima produzirá:

bool(true)


Compose a class

  • « uopz_backup
  • uopz_copy »
  • PHP Manual
  • Uopz Funções
  • Compose a class

uopz_compose

(PECL uopz 1, PECL uopz 2)

uopz_compose — Compose a class

Aviso

Esta função foi REMOVIDA na uopz 5.0.0 no PECL.

Descrição

uopz_compose(
string $name,
array $classes,
array $methods = ?,
array $properties = ?,
int $flags = ?
): void

Creates a new class of the given name that implements, extends, or uses all of the provided classes

Parâmetros

name

A legal class name

classes

An array of class, interface and trait names

methods

An associative array of methods, values are either closures or [modifiers => closure]

properties

An associative array of properties, keys are names, values are modifiers

flags

Entry type, by default ZEND_ACC_CLASS

Valor Retornado

Exemplos

Exemplo #1 uopz_compose() example

<?php
class myClass {}
trait myTrait {}
interface myInterface {}

uopz_compose(
Composed::class, [
myClass::class,
myTrait::class,
myInterface::class
], [
"__construct" => function() {
/* ... */
}
]);

var_dump(
class_uses(Composed::class),
class_parents(Composed::class),
class_implements(Composed::class));
?>

O exemplo acima produzirá:

array(1) {
  ["myTrait"]=>
  string(7) "myTrait"
}
array(1) {
  ["myClass"]=>
  string(7) "myClass"
}
array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}


Copy a function

  • « uopz_compose
  • uopz_del_function »
  • PHP Manual
  • Uopz Funções
  • Copy a function

uopz_copy

(PECL uopz 1 >= 1.0.4, PECL uopz 2)

uopz_copy — Copy a function

Aviso

Esta função foi REMOVIDA na uopz 5.0.0 no PECL.

Descrição

uopz_copy(string $function): Closure
uopz_copy(string $class, string $function): Closure

Copy a function by name

Parâmetros

class

The name of the class containing the function to copy

function

The name of the function

Valor Retornado

A Closure for the specified function

Exemplos

Exemplo #1 uopz_copy() example

<?php
$strtotime = uopz_copy('strtotime');

uopz_function("strtotime", function($arg1, $arg2) use($strtotime) {
/* can call original strtotime from here */
var_dump($arg1);
});

var_dump(strtotime('dummy'));
?>

O exemplo acima produzirá:

string(5) "dummy"


Deletes previously added function or method

  • « uopz_copy
  • uopz_delete »
  • PHP Manual
  • Uopz Funções
  • Deletes previously added function or method

uopz_del_function

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_del_function — Deletes previously added function or method

Descrição

uopz_del_function(string $function): bool
uopz_del_function(string $class, string $function, int &$all = true): bool

Deletes a previously added function or method.

Parâmetros

class

The name of the class.

function

The name of the function or method.

all

Whether all classes that descend from class will also be affected.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

uopz_del_function() throws a RuntimeException if the function or method to delete has not been added by uopz_add_function().

Exemplos

Exemplo #1 Basic uopz_del_function() Usage

<?php
uopz_add_function('foo', function () {echo 'bar';});
var_dump(function_exists('foo'));
uopz_del_function('foo');
var_dump(function_exists('foo'));
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Veja Também

  • uopz_add_function() - Adds non-existent function or method
  • uopz_unset_return() - Unsets a previously set return value for a function


Delete a function

  • « uopz_del_function
  • uopz_extend »
  • PHP Manual
  • Uopz Funções
  • Delete a function

uopz_delete

(PECL uopz 1, PECL uopz 2)

uopz_delete — Delete a function

Aviso

Esta função foi REMOVIDA na uopz 5.0.0 no PECL.

Descrição

uopz_delete(string $function): void
uopz_delete(string $class, string $function): void

Deletes a function or method

Parâmetros

class

function

Valor Retornado

Exemplos

Exemplo #1 uopz_delete() example

<?php
uopz_delete("strlen");

echo strlen("Hello World");
?>

O exemplo acima produzirá algo semelhante a:

PHP Fatal error: Call to undefined function strlen() in /path/to/script.php on line 4

Exemplo #2 uopz_delete() class example

<?php
class My {
public static function strlen($arg) {
return strlen($arg);
}
}

uopz_delete(My::class, "strlen");

echo My::strlen("Hello World");
?>

O exemplo acima produzirá algo semelhante a:

PHP Fatal error: Call to undefined method My::strlen() in /path/to/script.php on line 10


Extend a class at runtime

  • « uopz_delete
  • uopz_flags »
  • PHP Manual
  • Uopz Funções
  • Extend a class at runtime

uopz_extend

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6, PECL uopz 7 < 7.1.0)

uopz_extend — Extend a class at runtime

Descrição

uopz_extend(string $class, string $parent): bool

Makes class extend parent

Parâmetros

class

The name of the class to extend

parent

The name of the class to inherit

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

As of PHP 7.4.0, uopz_extends() throws a RuntimeException, if OPcache is enabled, and the class entry of either class or parent (if it is a trait) is immutable.

Exemplos

Exemplo #1 uopz_extend() example

<?php
class A {}
class B {}

uopz_extend(A::class, B::class);

var_dump(class_parents(A::class));
?>

O exemplo acima produzirá:

array(1) {
  ["B"]=>
  string(1) "B"
}


Get or set flags on function or class

  • « uopz_extend
  • uopz_function »
  • PHP Manual
  • Uopz Funções
  • Get or set flags on function or class

uopz_flags

(PECL uopz 2 >= 2.0.2, PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_flags — Get or set flags on function or class

Descrição

uopz_flags(string $function, int $flags = PHP_INT_MAX): int
uopz_flags(string $class, string $function, int $flags = PHP_INT_MAX): int

Get or set the flags on a class or function entry at runtime

Parâmetros

class

The name of a class

function

The name of the function. If class is given and an empty string is passed as function, uopz_flags() gets or sets the flags of the class entry.

flags

A valid set of ZEND_ACC_ flags. If omitted, uopz_flags() acts as getter.

Valor Retornado

If setting, returns old flags, else returns flags

Erros/Exceções

As of PHP 7.4.0, if the parameter flags is passed, uopz_flags() throws a RuntimeException, if OPcache is enabled, and the class entry of class or the function entry of function is immutable.

Registro de Alterações

Versão | Descrição
PECL uopz 5.0.0 | The flags parameter is now optional. Formerly, ZEND_ACC_FETCH had to be passed to use uopz_flags() as getter.

Exemplos

Exemplo #1 uopz_flags() example

<?php
class Test {
public function method() {
return __CLASS__;
}
}

$flags = uopz_flags("Test", "method");

var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_STATIC));

var_dump(uopz_flags("Test", "method", $flags|ZEND_ACC_STATIC|ZEND_ACC_PRIVATE));

var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_STATIC));
?>

O exemplo acima produzirá:

bool(false)
bool(false)
int(1234567890)
bool(true)
bool(true)

Exemplo #2 "Unfinalize" a Class

<?php
final class MyClass
{
}

$flags = uopz_flags(MyClass::class, '');
uopz_flags(MyClass::class, '', $flags & ~ZEND_ACC_FINAL);
var_dump((new ReflectionClass(MyClass::class))->isFinal());
?>

O exemplo acima produzirá:

bool(false)


Creates a function at runtime

  • « uopz_flags
  • uopz_get_exit_status »
  • PHP Manual
  • Uopz Funções
  • Creates a function at runtime

uopz_function

(PECL uopz 1, PECL uopz 2)

uopz_function — Creates a function at runtime

Aviso

Esta função foi REMOVIDA na uopz 5.0.0 no PECL.

Descrição

uopz_function(string $function, Closure $handler, int $modifiers = ?): void
uopz_function(
string $class,
string $function,
Closure $handler,
int $modifiers = ?
): void

Creates a function at runtime

Parâmetros

class

The name of the class to receive the new function

function

The name of the function

handler

The Closure for the function

modifiers

The modifiers for the function, by default copied or ZEND_ACC_PUBLIC

Valor Retornado

Exemplos

Exemplo #1 uopz_function() example

<?php
uopz_function("my_strlen", function($arg) {
return strlen($arg);
});
echo my_strlen("Hello World");
?>

O exemplo acima produzirá:

11

Exemplo #2 uopz_function() class example

<?php
class My {}

uopz_function(My::class, "strlen", function($arg) {
return strlen($arg);
}, ZEND_ACC_STATIC);

echo My::strlen("Hello World");
?>

O exemplo acima produzirá:

11


Retrieve the last set exit status

  • « uopz_function
  • uopz_get_hook »
  • PHP Manual
  • Uopz Funções
  • Retrieve the last set exit status

uopz_get_exit_status

(PECL uopz 5, PECL uopz , PECL uopz 7)

uopz_get_exit_status — Retrieve the last set exit status

Descrição

uopz_get_exit_status(): mixed

Retrieves the last set exit status, i.e. the value passed to exit().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

This function returns the last exit status, or null if exit() has not been called.

Exemplos

Exemplo #1 uopz_get_exit_status() example

<?php
exit(123);
echo uopz_get_exit_status();?>

O exemplo acima produzirá:

123

Notas

Cuidado

OPcache optimizes away dead code after unconditional exit.

Veja Também

  • uopz_allow_exit() - Allows control over disabled exit opcode


Gets previously set hook on function or method

  • « uopz_get_exit_status
  • uopz_get_mock »
  • PHP Manual
  • Uopz Funções
  • Gets previously set hook on function or method

uopz_get_hook

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_get_hook — Gets previously set hook on function or method

Descrição

uopz_get_hook(string $function): Closure
uopz_get_hook(string $class, string $function): Closure

Gets the previously set hook on a function or method.

Parâmetros

class

The name of the class.

function

The name of the function or method.

Valor Retornado

Returns the previously set hook on a function or method, or null if no hook has been set.

Exemplos

Exemplo #1 Basic uopz_get_hook() Usage

<?php
function foo() {
echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
var_dump(uopz_get_hook('foo'));
?>

O exemplo acima produzirá algo semelhante a:

object(Closure)#2 (0) {
}

Veja Também

  • uopz_set_hook() - Sets hook to execute when entering a function or method
  • uopz_unset_hook() - Removes previously set hook on function or method


Get the current mock for a class

  • « uopz_get_hook
  • uopz_get_property »
  • PHP Manual
  • Uopz Funções
  • Get the current mock for a class

uopz_get_mock

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_get_mock — Get the current mock for a class

Descrição

uopz_get_mock(string $class): mixed

Returns the current mock for class.

Parâmetros

class

The name of the mocked class.

Valor Retornado

Either a string containing the name of the mock, or an object, or null if no mock has been set.

Exemplos

Exemplo #1 uopz_get_mock() example

<?php
class A {
public static function who() {
echo "A";
}
}

class mockA {
public static function who() {
echo "mockA";
}
}

uopz_set_mock(A::class, mockA::class);
echo uopz_get_mock(A::class);
?>

O exemplo acima produzirá:

mockA

Veja Também

  • uopz_set_mock() - Use mock instead of class for new objects
  • uopz_unset_mock() - Unset previously set mock


Gets value of class or instance property

  • « uopz_get_mock
  • uopz_get_return »
  • PHP Manual
  • Uopz Funções
  • Gets value of class or instance property

uopz_get_property

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_get_property — Gets value of class or instance property

Descrição

uopz_get_property(string $class, string $property): mixed
uopz_get_property(object $instance, string $property): mixed

Gets the value of a static class property, if class is given, or the value of an instance property, if instance is given.

Parâmetros

class

The name of the class.

instance

The object instance.

property

The name of the property.

Valor Retornado

Returns the value of the class or instance property, or null if the property is not defined.

Exemplos

Exemplo #1 Basic uopz_get_property() Usage

<?php
class Foo {
private static $staticBar = 10;
private $bar = 100;
}
$foo = new Foo;
var_dump(uopz_get_property('Foo', 'staticBar'));
var_dump(uopz_get_property($foo, 'bar'));
?>

O exemplo acima produzirá algo semelhante a:

int(10)
int(100)

Veja Também

  • uopz_set_property() - Sets value of existing class or instance property


Gets a previous set return value for a function

  • « uopz_get_property
  • uopz_get_static »
  • PHP Manual
  • Uopz Funções
  • Gets a previous set return value for a function

uopz_get_return

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_get_return — Gets a previous set return value for a function

Descrição

uopz_get_return(string $function): mixed
uopz_get_return(string $class, string $function): mixed

Gets the return value of the function previously set by uopz_set_return().

Parâmetros

class

The name of the class containing the function

function

The name of the function

Valor Retornado

The return value or Closure previously set.

Exemplos

Exemplo #1 uopz_get_return() example

<?php
uopz_set_return("strlen", 42);
echo uopz_get_return("strlen");
?>

O exemplo acima produzirá:

42


Gets the static variables from function or method scope

  • « uopz_get_return
  • uopz_implement »
  • PHP Manual
  • Uopz Funções
  • Gets the static variables from function or method scope

uopz_get_static

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_get_static — Gets the static variables from function or method scope

Descrição

uopz_get_static(string $class, string $function): array
uopz_get_static(string $function): array

Gets the static variables from function or method scope.

Parâmetros

class

The name of the class.

function

The name of the function or method.

Valor Retornado

Returns an associative array of variable names mapped to their current values on success, or null if the function or method does not exist.

Exemplos

Exemplo #1 Basic uopz_get_static() Usage

<?php
function foo() {
static $bar = 'baz';
}
var_dump(uopz_get_static('foo'));
?>

O exemplo acima produzirá:

array(1) {
  ["bar"]=>
  string(3) "baz"
}

Veja Também

  • uopz_set_static() - Sets the static variables in function or method scope


Implements an interface at runtime

  • « uopz_get_static
  • uopz_overload »
  • PHP Manual
  • Uopz Funções
  • Implements an interface at runtime

uopz_implement

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6, PECL uopz 7 < 7.1.0)

uopz_implement — Implements an interface at runtime

Descrição

uopz_implement(string $class, string $interface): bool

Makes class implement interface

Parâmetros

class

interface

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

As of PHP 7.4.0, uopz_implements() throws a RuntimeException, if OPcache is enabled, and the class entry of class is immutable.

Exemplos

Exemplo #1 uopz_implement() example

<?php
interface myInterface {}

class myClass {}

uopz_implement(myClass::class, myInterface::class);

var_dump(class_implements(myClass::class));
?>

O exemplo acima produzirá:

array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}


Overload a VM opcode

  • « uopz_implement
  • uopz_redefine »
  • PHP Manual
  • Uopz Funções
  • Overload a VM opcode

uopz_overload

(PECL uopz 1, PECL uopz 2)

uopz_overload — Overload a VM opcode

Aviso

Esta função foi REMOVIDA na uopz 5.0.0 no PECL.

Descrição

uopz_overload(int $opcode, Callable $callable): void

Overloads the specified opcode with the user defined function

Parâmetros

opcode

A valid opcode, see constants for details of supported codes

callable

Valor Retornado

Exemplos

Exemplo #1 uopz_overload() example

<?php
uopz_overload(ZEND_EXIT, function(){});

exit();
echo "Hello World";
?>

O exemplo acima produzirá:

Hello World


Redefine a constant

  • « uopz_overload
  • uopz_rename »
  • PHP Manual
  • Uopz Funções
  • Redefine a constant

uopz_redefine

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_redefine — Redefine a constant

Descrição

uopz_redefine(string $constant, mixed $value): bool
uopz_redefine(string $class, string $constant, mixed $value): bool

Redefines the given constant as value

Parâmetros

class

The name of the class containing the constant

constant

The name of the constant

value

The new value for the constant, must be a valid type for a constant variable

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 uopz_redefine() example

<?php
define("MY", 100);

uopz_redefine("MY", 1000);

echo MY;
?>

O exemplo acima produzirá:

1000


Rename a function at runtime

  • « uopz_redefine
  • uopz_restore »
  • PHP Manual
  • Uopz Funções
  • Rename a function at runtime

uopz_rename

(PECL uopz 1, PECL uopz 2)

uopz_rename — Rename a function at runtime

Aviso

Esta função foi REMOVIDA na uopz 5.0.0 no PECL.

Descrição

uopz_rename(string $function, string $rename): void
uopz_rename(string $class, string $function, string $rename): void

Renames function to rename

Nota:

If both functions exist, this effectively swaps their names

Parâmetros

class

The name of the class containing the function

function

The name of an existing function

rename

The new name for the function

Valor Retornado

Exemplos

Exemplo #1 uopz_rename() example

<?php
uopz_rename("strlen", "original_strlen");

echo original_strlen("Hello World");
?>

O exemplo acima produzirá:

11

Exemplo #2 uopz_rename() class example

<?php
class My {
public function strlen($arg) {
return strlen($arg);
}
}

uopz_rename(My::class, "strlen", "original_strlen");

echo My::original_strlen("Hello World");
?>

O exemplo acima produzirá:

11


Restore a previously backed up function

  • « uopz_rename
  • uopz_set_hook »
  • PHP Manual
  • Uopz Funções
  • Restore a previously backed up function

uopz_restore

(PECL uopz 1 >= 1.0.3, PECL uopz 2)

uopz_restore — Restore a previously backed up function

Aviso

Esta função foi REMOVIDA na uopz 5.0.0 no PECL.

Descrição

uopz_restore(string $function): void
uopz_restore(string $class, string $function): void

Restore a previously backed up function

Parâmetros

class

The name of the class containing the function to restore

function

The name of the function

Valor Retornado

Exemplos

Exemplo #1 uopz_restore() example

<?php
uopz_backup("fgets");
uopz_function("fgets", function(){
return true;
});
var_dump(fgets());
uopz_restore('fgets');
fgets();
?>

O exemplo acima produzirá algo semelhante a:

Warning: fgets() expects at least 1 parameter, 0 given in /path/to/script.php on line 8


Sets hook to execute when entering a function or method

  • « uopz_restore
  • uopz_set_mock »
  • PHP Manual
  • Uopz Funções
  • Sets hook to execute when entering a function or method

uopz_set_hook

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_set_hook — Sets hook to execute when entering a function or method

Descrição

uopz_set_hook(string $function, Closure $hook): bool
uopz_set_hook(string $class, string $function, Closure $hook): bool

Sets a hook to execute when entering a function or method.

Parâmetros

class

The name of the class.

function

The name of the function or method.

hook

A closure to execute when entering the function or method.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Basic uopz_set_hook() Usage

<?php
function foo() {
echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
foo();
?>

O exemplo acima produzirá:

barfoo

Veja Também

  • uopz_get_hook() - Gets previously set hook on function or method
  • uopz_unset_hook() - Removes previously set hook on function or method


Use mock instead of class for new objects

  • « uopz_set_hook
  • uopz_set_property »
  • PHP Manual
  • Uopz Funções
  • Use mock instead of class for new objects

uopz_set_mock

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_set_mock — Use mock instead of class for new objects

Descrição

uopz_set_mock(string $class, mixed $mock): void

If mock is a string containing the name of a class then it will be instantiated instead of class. mock can also be an object.

Nota:

Only dynamic access to properties and methods will use the mock object. Static access still uses the original class. See example below.

Parâmetros

class

The name of the class to be mocked.

mock

The mock to use in the form of a string containing the name of the class to use or an object. If a string is passed, it has to be the fully qualified class name. It is recommended to use the ::class magic constant in this case.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
uopz 6.0.0 | Mocking static members is no longer supported by this function. uopz_redefine() and uopz_set_return(), or Componere can be used instead.

Exemplos

Exemplo #1 uopz_set_mock() example

<?php
class A {
public function who() {
echo "A";
}
}

class mockA {
public function who() {
echo "mockA";
}
}

uopz_set_mock(A::class, mockA::class);
(new A)->who();
?>

O exemplo acima produzirá:

mockA

Exemplo #2 uopz_set_mock() example

<?php
class A {
public function who() {
echo "A";
}
}

uopz_set_mock(A::class, new class {
public function who() {
echo "mockA";
}
});
(new A)->who();
?>

O exemplo acima produzirá:

mockA

Exemplo #3 uopz_set_mock() and static members

As of uopz 6.0.0 mocking static members is no longer supported.

<?php
class A {
const CON = 'A';
public static function who() {
echo "A";
}
}

uopz_set_mock(A::class, new class {
const CON = 'mockA';
public static function who() {
echo "mockA";
}
});
echo A::CON, PHP_EOL;
A::who();
?>

O exemplo acima produzirá:

A
A

Output of the above example in uopz 5:

mockA
mockA

Veja Também

  • uopz_get_mock() - Get the current mock for a class
  • uopz_unset_mock() - Unset previously set mock


Sets value of existing class or instance property

  • « uopz_set_mock
  • uopz_set_return »
  • PHP Manual
  • Uopz Funções
  • Sets value of existing class or instance property

uopz_set_property

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_set_property — Sets value of existing class or instance property

Descrição

uopz_set_property(string $class, string $property, mixed $value): void
uopz_set_property(object $instance, string $property, mixed $value): void

Sets the value of an existing static class property, if class is given, or the value of an instance property (regardless whether the instance property already exists), if instance is given.

Parâmetros

class

The name of the class.

instance

The object instance.

property

The name of the property.

value

The value to assign to the property.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Basic uopz_set_property() Usage

<?php
class Foo {
private static $staticBar;
private $bar;
public static function testStaticBar() {
return self::$staticBar;
}
public function testBar() {
return $this->bar;
}
}
$foo = new Foo;
uopz_set_property('Foo', 'staticBar', 10);
uopz_set_property($foo, 'bar', 100);
var_dump(Foo::testStaticBar());
var_dump($foo->testBar());
?>

O exemplo acima produzirá:

int(10)

Veja Também

  • uopz_get_property() - Gets value of class or instance property


Provide a return value for an existing function

  • « uopz_set_property
  • uopz_set_static »
  • PHP Manual
  • Uopz Funções
  • Provide a return value for an existing function

uopz_set_return

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_set_return — Provide a return value for an existing function

Descrição

uopz_set_return(string $function, mixed $value, bool $execute = false): bool
uopz_set_return(
string $class,
string $function,
mixed $value,
bool $execute = false
): bool

Sets the return value of the function to value. If value is a Closure and execute is set, the Closure will be executed in place of the original function. It is possible to call the original function from the Closure.

Nota:

This function replaces uopz_rename().

Parâmetros

class

The name of the class containing the function

function

The name of an existing function

value

The value the function should return. If a Closure is provided and the execute flag is set, the Closure will be executed in place of the original function.

execute

If true, and a Closure was provided as the value, the Closure will be executed in place of the original function.

Valor Retornado

True if succeeded, false otherwise.

Exemplos

Exemplo #1 uopz_set_return() example

<?php
uopz_set_return("strlen", 42);
echo strlen("Banana");
?>

O exemplo acima produzirá:

42

Exemplo #2 uopz_set_return() example

<?php
uopz_set_return("strlen", function($str) { return strlen($str) * 2; }, true );
echo strlen("Banana");
?>

O exemplo acima produzirá:

12

Exemplo #3 uopz_set_return() class example

<?php
class My {
public static function strlen($arg) {
return strlen($arg);
}
}
uopz_set_return(My::class, "strlen", function($str) { return strlen($str) * 2; }, true );
echo My::strlen("Banana");
?>

O exemplo acima produzirá:

12


Sets the static variables in function or method scope

  • « uopz_set_return
  • uopz_undefine »
  • PHP Manual
  • Uopz Funções
  • Sets the static variables in function or method scope

uopz_set_static

(PECL uopz 5, PECL uopz , PECL uopz 7)

uopz_set_static — Sets the static variables in function or method scope

Descrição

uopz_set_static(string $function, array $static): void
uopz_set_static(string $class, string $function, array $static): void

Sets the static variables in function or method scope.

Parâmetros

class

The name of the class.

function

The name of the function or method.

static

The associative array of variable names mapped to their values.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Basic uopz_set_static() Usage

<?php
function foo() {
static $bar = 'baz';
var_dump($bar);
}
uopz_set_static('foo', ['bar' => 'qux']);
foo();
?>

O exemplo acima produzirá:

string(3) "qux"

Veja Também

  • uopz_get_static() - Gets the static variables from function or method scope


Undefine a constant

  • « uopz_set_static
  • uopz_unset_hook »
  • PHP Manual
  • Uopz Funções
  • Undefine a constant

uopz_undefine

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_undefine — Undefine a constant

Descrição

uopz_undefine(string $constant): bool
uopz_undefine(string $class, string $constant): bool

Removes the constant at runtime

Parâmetros

class

The name of the class containing constant

constant

The name of an existing constant

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 uopz_undefine() example

<?php
define("MY", true);

uopz_undefine("MY");

var_dump(defined("MY"));
?>

O exemplo acima produzirá:

bool(false)


Removes previously set hook on function or method

  • « uopz_undefine
  • uopz_unset_mock »
  • PHP Manual
  • Uopz Funções
  • Removes previously set hook on function or method

uopz_unset_hook

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_unset_hook — Removes previously set hook on function or method

Descrição

uopz_unset_hook(string $function): bool
uopz_unset_hook(string $class, string $function): bool

Removes the previously set hook on a function or method.

Parâmetros

class

The name of the class.

function

The name of the function or method.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Basic uopz_unset_hook() Usage

<?php
function foo() {
echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
foo();
echo PHP_EOL;
uopz_unset_hook('foo');
foo();
?>

O exemplo acima produzirá:

barfoo
foo

Veja Também

  • uopz_set_hook() - Sets hook to execute when entering a function or method
  • uopz_get_hook() - Gets previously set hook on function or method


Unset previously set mock

  • « uopz_unset_hook
  • uopz_unset_return »
  • PHP Manual
  • Uopz Funções
  • Unset previously set mock

uopz_unset_mock

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_unset_mock — Unset previously set mock

Descrição

uopz_unset_mock(string $class): void

Unsets the previously set mock for class.

Parâmetros

class

The name of the mocked class.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

A RuntimeException is thrown, if no mock was previously set for class.

Exemplos

Exemplo #1 uopz_unset_mock() example

<?php
class A {
public static function who() {
echo "A";
}
}

class mockA {
public static function who() {
echo "mockA";
}
}

uopz_set_mock(A::class, mockA::class);
uopz_unset_mock(A::class);
A::who();
?>

O exemplo acima produzirá:

A

Veja Também

  • uopz_set_mock() - Use mock instead of class for new objects
  • uopz_get_mock() - Get the current mock for a class


Unsets a previously set return value for a function

  • « uopz_unset_mock
  • WinCache »
  • PHP Manual
  • Uopz Funções
  • Unsets a previously set return value for a function

uopz_unset_return

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_unset_return — Unsets a previously set return value for a function

Descrição

uopz_unset_return(string $function): bool
uopz_unset_return(string $class, string $function): bool

Unsets the return value of the function previously set by uopz_set_return().

Parâmetros

class

The name of the class containing the function

function

The name of the function

Valor Retornado

True on success

Exemplos

Exemplo #1 uopz_unset_return() example

<?php
uopz_set_return("strlen", 42);
$len = strlen("Banana");
uopz_unset_return("strlen");
echo $len + strlen("Banana");
?>

O exemplo acima produzirá:

48


Windows Cache for PHP

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • WinCache Statistics Script
    • WinCache Session Handler
    • WinCache Functions Reroutes
    • Tipos de Recurso
  • Constantes pré-definidas
  • WinCache Funções
    • wincache_fcache_fileinfo — Retrieves information about files cached in the file cache
    • wincache_fcache_meminfo — Retrieves information about file cache memory usage
    • wincache_lock — Acquires an exclusive lock on a given key
    • wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache
    • wincache_ocache_meminfo — Retrieves information about opcode cache memory usage
    • wincache_refresh_if_changed — Refreshes the cache entries for the cached files
    • wincache_rplist_fileinfo — Retrieves information about resolve file path cache
    • wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache
    • wincache_scache_info — Retrieves information about files cached in the session cache
    • wincache_scache_meminfo — Retrieves information about session cache memory usage
    • wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache
    • wincache_ucache_cas — Compares the variable with old value and assigns new value to it
    • wincache_ucache_clear — Deletes entire content of the user cache
    • wincache_ucache_dec — Decrements the value associated with the key
    • wincache_ucache_delete — Deletes variables from the user cache
    • wincache_ucache_exists — Checks if a variable exists in the user cache
    • wincache_ucache_get — Gets a variable stored in the user cache
    • wincache_ucache_inc — Increments the value associated with the key
    • wincache_ucache_info — Retrieves information about data stored in the user cache
    • wincache_ucache_meminfo — Retrieves information about user cache memory usage
    • wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache
    • wincache_unlock — Releases an exclusive lock on a given key
  • Building for Windows
    • Prerequisites
    • Compiling and building
    • Verifying the build


Introdução

Windows Cache Extension for PHP is a PHP accelerator that is used to increase the speed of PHP applications running on Windows and Windows Server. Once the Windows Cache Extension for PHP is enabled and loaded by the PHP engine, PHP applications can take advantage of the functionality without any code modifications.

The Windows Cache Extension includes 5 different types of caches. The following describes the purpose of each cache type and the benefits it provides.

  • PHP Opcode Cache - PHP is a script processing engine, which reads an input stream of data that contains text and/or PHP instructions and produces another stream of data, most commonly in the HTML format. This means that on a web server the PHP engine reads, parses, compiles and executes a PHP script each time that it is requested by a Web client. The reading, parsing and compilation operations put additional load on the web server's CPU and file system and thus affect the overall performance of a PHP web application. The PHP bytecode (opcode) cache is used to store the compiled script bytecode in shared memory so that it can be re-used by PHP engine for subsequent executions of the same script.

    Support for opcode caching was removed in Wincache 2.0.0, all users who wish to have an opcache should use the OPcache extension that is included with PHP.

  • File Cache - Even with the PHP opcode cache enabled, the PHP engine has to accesses the script files on a file system. When PHP scripts are stored on a remote UNC file share, the file operations introduce a significant performance overhead. The Windows Cache Extension for PHP includes a file cache that is used to store the content of the PHP script files in shared memory, which reduces the amount of file system operations performed by PHP engine.

  • Resolve File Path Cache - PHP scripts very often include or operate with files by using relative file paths. Every file path has to be normalized to an absolute file path by the PHP engine. When a PHP application uses many PHP files and accesses them by relative paths, the operation of resolving the paths may negatively impact the application's performance. The Windows Cache Extension for PHP provides a Resolve File Path cache, which is used to store the mappings between relative and absolute file paths, thereby reducing the number of path resolutions that the PHP engine has to perform.

  • User Cache (available since version 1.1.0) - PHP scripts can take advantage of the shared memory cache by using the user cache API's. PHP objects and variables can be stored in the user cache and then re-used on subsequent requests. This can be used to improve performance of PHP scripts and to share the data across multiple PHP processes.

  • Session Handler (available since version 1.1.0) - The WinCache session handler can be used to store the PHP session data in the shared memory cache. This avoids file system operations for reading and writing session data, which improves performance when large amount of data is stored in PHP session.


Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Configurações em Execução
  • WinCache Statistics Script
  • WinCache Session Handler
  • WinCache Functions Reroutes
  • Tipos de Recurso


Dependências

The extension is currently supported only on the following configurations:

Windows OS:

  • Windows XP SP3 with IIS 5.1 and » FastCGI Extension
  • Windows Server 2003 with IIS 6.0 and » FastCGI Extension
  • Windows Vista SP1 with IIS 7.0 and FastCGI Module
  • Windows Server 2008 with IIS 7.0 and FastCGI Module
  • Windows 7 with IIS 7.5 and FastCGI Module
  • Windows Server 2008 R2 with IIS 7.5 and FastCGI Module

PHP:

  • PHP 5.2.X, Non-thread-safe build
  • PHP 5.3 X86, Non-thread-safe VC9 build

Nota: The WinCache Extension can only be used when IIS is configured to run PHP via FastCGI.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/wincache.

There are two packages for this extension: one package is for PHP versions 5.2.X, and the other package is for PHP 5.3.X. Select the package that is appropriate for the PHP version being used.

To install and enable the extension, follow these steps:

  1. Unpack the package into some temporary location.

  2. Copy the php_wincache.dll file into the PHP extensions folder. Typically this folder is called "ext" and it is located in the same folder with all PHP binary files. For example: C:\Program Files\PHP\ext.

  3. Using a text editor, open the php.ini file, which is usually located in the same folder where all PHP binary files are. For example: C:\Program Files\PHP\php.ini.

  4. Add the following line at the end of the php.ini file: extension = php_wincache.dll.

  5. Save and close the php.ini file.

  6. Recycle the IIS Application Pools for PHP to pick up the configuration changes. To check that the extension has been enabled, create a file called phpinfo.php with a PHP code that calls phpinfo function.

  7. Save the phpinfo.php file in the root folder of a IIS web site that uses PHP, then open a browser and make a request to http://localhost/phpinfo.php. Search within the returned web page for a section called wincache. If the extension is enabled, then the phpinfo output will list the configuration settings provided by the WinCache.

Nota: Do not forget to remove phpinfo.php file from the web site's root folder after verifying that extension has been enabled.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

The following table lists and explains the configuration settings provided by the WinCache extension:

WinCache configuration options
Nome | Padrão | Minimum | Maximum | Modificável | Registro de Alterações
wincache.fcenabled | "1" | "0" | "1" | INI_ALL | Available as of WinCache 1.0.0
wincache.fcenabledfilter | "NULL" | "NULL" | "NULL" | INI_SYSTEM | Available as of WinCache 1.0.0
wincache.fcachesize | "24" | "5" | "255" | INI_SYSTEM | Available as of WinCache 1.0.0
wincache.fcndetect | "1" | "0" | "1" | INI_SYSTEM | Available as of WinCache 1.1.0
wincache.maxfilesize | "256" | "10" | "2048" | INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ocenabled | "1" | "0" | "1" | INI_ALL | Available as of WinCache 1.0.0. Removed as of 2.0.0.0
wincache.ocenabledfilter | "NULL" | "NULL" | "NULL" | INI_SYSTEM | Available as of WinCache 1.0.0. Removed as of 2.0.0.0
wincache.ocachesize | "96" | "15" | "255" | INI_SYSTEM | Available as of WinCache 1.0.0. Removed as of 2.0.0.0
wincache.filecount | "4096" | "1024" | "16384" | INI_SYSTEM | Available as of WinCache 1.0.0
wincache.chkinterval | "30" | "0" | "300" | INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ttlmax | "1200" | "0" | "7200" | INI_SYSTEM | Available as of WinCache 1.0.0
wincache.enablecli | 0 | 0 | 1 | INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ignorelist | NULL | NULL | NULL | INI_ALL | Available as of WinCache 1.0.0
wincache.namesalt | NULL | NULL | NULL | INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ucenabled | 1 | 0 | 1 | INI_SYSTEM | Available as of WinCache 1.1.0
wincache.ucachesize | 8 | 5 | 85 | INI_SYSTEM | Available as of WinCache 1.1.0
wincache.scachesize | 8 | 5 | 85 | INI_SYSTEM | Available as of WinCache 1.1.0
wincache.rerouteini | NULL | NULL | NULL | INI_SYSTEM | Available as of WinCache 1.2.0. Removed as of 1.3.7
wincache.reroute_enabled | 1 | 0 | 1 | INI_SYSTEM|INI_PERDIR | Available as of WinCache 1.3.7
wincache.srwlocks | 1 | 0 | 1 | INI_SYSTEM | Available as of WinCache 1.3.6.3. Removed as of 2.0.0.0
wincache.filemapdir | NULL | NULL | NULL | INI_SYSTEM | Available as of WinCache 1.3.7.4
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

wincache.fcenabled bool
Enables or disables the file cache functionality.
wincache.fcenabledfilter string
Defines a comma-separated list of IIS web site identifiers where file cache should be enabled or disabled. This setting works in conjunction with wincache.fcenabled: if wincache.fcenabled is set to 1, then the sites listed in the wincache.fcenabledfilter will have the file cache turned off; if wincache.fcenabled is set to 0, then the sites listed in the wincache.fcenabledfilter will have the file cache turned on.
wincache.fcachesize int
Defines the maximum memory size (in megabytes) that is allocated for the file cache. If the total size of all the cached files exceeds the value specified in this setting, then most stale files will be removed from the file cache.
wincache.fcndetect bool
Enables or disables the file change notification detection functionality. If file change notification is supported then it will be used to refresh the opcode and file cache entries as soon as the corresponding files are modified on a file system. If file change notification is not supported, for example when using network file shares, then wincache will poll for file changes at regular time intervals specified by wincache.chkinterval.
wincache.maxfilesize int
Defines the maximum allowed size (in kilobytes) for a single file to be cached. If a file size exceeds the specified value, the file will not be cached. This setting applies to the file cache only.
wincache.ocenabled bool
Aviso

This option has been REMOVED as of 2.0.0.0

Enables or disables the opcode cache functionality
wincache.ocenabledfilter string
Aviso

This option has been REMOVED as of 2.0.0.0

Defines a comma-separated list of IIS web site identifiers where opcode cache should be enabled or disabled. This setting works in conjunction with wincache.ocenabled: if wincache.ocenabled is set to 1, then the sites listed in the wincache.ocenabledfilter will have the opcode cache turned off; if wincache.ocenabled is set to 0, then the sites listed in the wincache.ocenabledfilter will have the opcode cache turned on.
wincache.ocachesize int
Aviso

This option has been REMOVED as of 2.0.0.0

Defines the maximum memory size (in megabytes) that is allocated for the opcode cache. If the cached opcode size exceeds the specified value, then most stale opcode will be removed from the cache. Note that the opcode cache size must be at least 3 times bigger than file cache size. If that is not the case the opcode cache size will be automatically increased.
wincache.filecount int
Defines how many files are expected to be cached by the extension, so that appropriate memory size is allocated at the startup time. If the number of files exceeds the specified value, the WinCache will re-allocate more memory as needed.
wincache.chkinterval int
Defines how often (in seconds) the extension checks for file changes in order to refresh the cache. Setting it to 0 will disable the refreshing of the cache. The file changes will not be reflected in the cache unless the cache entry for that file is removed by scavenger or IIS application pool is recycled or wincache_refresh_if_changed function is called.
wincache.ttlmax int
Defines the maximum time to live (in seconds) for a cached entry without being used. Setting it to 0 will disable the cache scavenger, so the cached entries will never be removed from the cache during the lifetime of the IIS worker process.
wincache.enablecli bool
Defines if caching is enabled when PHP is running in command line (CLI) mode.
wincache.ignorelist string

Defines a list of files that should not be cached by the extension. The files list is specified by using file names only, separated by the pipe symbol - "|".

Exemplo #1 wincache.ignorelist example

wincache.ignorelist = "index.php|misc.php|admin.php"

wincache.namesalt string
Defines a string that will be used when naming the extension specific objects that are stored in shared memory. This is used to avoid conflicts that may be caused if other applications within an IIS worker process tries to access shared memory. The length of the namesalt string cannot exceed 8 characters.
wincache.ucenabled bool
Enables or disables the user cache functionality.
wincache.ucachesize int
Defines the maximum memory size in megabytes that is allocated for the user cache. If the total size of variables stored in the user cache exceeds the specified value, then the most stale variables will be removed from the cache.
wincache.scachesize int
Defines the maximum memory size in megabytes that is allocated for the session cache. If the total size of data stored in the session cache exceeds the specified value, then the most stale data will be removed from the cache.
wincache.rerouteini string
Aviso

This option has been REMOVED as of 1.3.7. See wincache.reroute_enabled for similar functionality as of 1.3.7.

Specifies an absolute or a relateve path to the reroute.ini file that contains the list of PHP functions whose implementation should be replaced with the WinCache function equivalents. If a relative path is specified then it is assumed to be relative to the location of php-cgi.exe file.
wincache.reroute_enabled bool
Enables or disables the rerouting of certain file I/O functions through the file cache.
wincache.srwlocks bool
Aviso

This option has been REMOVED as of 2.0.0.0

Enables or disables the use of shared reader/writer locks. Disabling is useful when troubleshooting deadlock conditions in WinCache.
wincache.filemapdir string
Specifies an absolute path to a directory where WinCache will store the temporary files used for shared memory segments. This directory must be on the local machine and not on a networked file system. If the directory is not specified, WinCache will use the Windows System Page File for all shared memory segments.


WinCache Statistics Script

The installation package for WinCache includes a PHP script, wincache.php, that can be used to obtain cache information and statistics.

If the WinCache extension was installed via the Microsoft Web Platform Installer, then this script is located in %SystemDrive%\Program Files\IIS\Windows Cache for PHP\. On a 64-bit version of the Windows Server operating system, the script is located in %SystemDrive%\Program Files (x86)\IIS\Windows Cache for PHP. If the extension was installed manually, then the wincache.php will be located in the same folder from which the content of the installation package was extracted.

To use wincache.php, copy it into a root folder of a Web site or into any subfolder. To protect the script, open it in any text editor and replace the values for USERNAME and PASSWORD constants. If any other IIS authentication is enabled on the server, then follow the instructions in the comments:

Exemplo #1 Authentication configuration for wincache.php

<?php
/**
* ======================== CONFIGURATION SETTINGS ==============================
* If you do not want to use authentication for this page, set USE_AUTHENTICATION to 0.
* If you use authentication then replace the default password.
*/
define('USE_AUTHENTICATION', 1);
define('USERNAME', 'wincache');
define('PASSWORD', 'wincache');

/**
* The Basic PHP authentication will work only when IIS is configured to support
* Anonymous Authentication' and nothing else. If IIS is configured to support/use
* any other kind of authentication like Basic/Negotiate/Digest etc, this will not work.
* In that case use the array below to define the names of users in your
* domain/network/workgroup which you want to grant access to.
*/
$user_allowed = array('DOMAIN\user1', 'DOMAIN\user2', 'DOMAIN\user3');

/**
* If the array contains string 'all', then all the users authenticated by IIS
* will have access to the page. Uncomment the below line and comment above line
* to grant access to all users who gets authenticated by IIS.
*/
/* $user_allowed = array('all'); */

/** ===================== END OF CONFIGURATION SETTINGS ========================== */
?>

Nota: Always protect the wincache.php script by using either the built-in authentication or the server's authentication mechanism. Leaving this script unprotected may compromise the security of your web application and web server.


WinCache Session Handler

The WinCache session handler (available since WinCache 1.1.0) can be used to configure PHP to store the session data in shared memory session cache. Using shared memory instead of the default file session storage helps improve performance of PHP applications that store large amount of data in session objects. Wincache session cache uses file-backed shared memory, which ensures that the session data is not lost during recycling of IIS application pools.

To configure PHP to use WinCache session handler set the php.ini setting session.save_handler to wincache. By default the Windows temporary file location is used for storing the session data. To change the location of the session file use session.save_path directive.

Exemplo #1 Enabling WinCache session handler

session.save_handler = wincache
session.save_path = C:\inetpub\temp\session\


WinCache Functions Reroutes

NOTE: wincache.rerouteini was removed as of WinCache 1.3.7.0. It has been replaced with automatic function reroutes. See: wincache.reroute_enabled.

The WinCache functions reroutes (available since WinCache 1.2.0, removed since WinCache 1.3.7.0) can be used to replace built-in PHP functions with their equivalents that are optimized for a particular purpose. WinCache extension includes Windows-optimized implementation of PHP file functions that may improve performance of PHP applications in cases when PHP has to access files on network shares. The optimized implementation is provided for the following functions:

  • file_exists
  • file_get_contents
  • readfile
  • is_readable
  • is_writable
  • is_dir
  • realpath
  • filesize

To configure WinCache to use the functions reroutes use the file reroute.ini that is included in WinCache installation package. Copy this file into the same directory where php.ini file is located. After that add the wincache.rerouteini setting in php.ini and specify an absolute or relative path to the reroute.ini file.

Exemplo #1 Enabling WinCache functions reroutes

wincache.rerouteini = C:\PHP\reroute.ini

Nota: If WinCache functions reroutes are enabled it is recommended to increase the WinCache file cache size. This can be done by using wincache.fcachesize setting.

The reroute.ini file contains the mappings between the native PHP functions and their equivalents in WinCache. Each line in the file defines a mapping by using the following syntax:

<PHP function name>:[<number of function parameters>]=<wincache function name>

The example of the file is shown below. In this example the calls to PHP function file_get_contents() will be replaced with calls to wincache_file_get_contents() only if the number of parameters passed to the function is less than or equals to 2. Specifying the number of parameters is useful when replacement function does not handle all the function's parameters.

Exemplo #2 Reroute.ini file content

[FunctionRerouteList]
file_exists=wincache_file_exists
file_get_contents:2=wincache_file_get_contents
readfile:2=wincache_readfile
is_readable=wincache_is_readable
is_writable=wincache_is_writable
is_writeable=wincache_is_writable
is_file=wincache_is_file
is_dir=wincache_is_dir
realpath=wincache_realpath
filesize=wincache_filesize


  • « WinCache Functions Reroutes
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


  • « Tipos de Recurso
  • WinCache Funções »
  • PHP Manual
  • WinCache
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


WinCache Funções

Índice

  • wincache_fcache_fileinfo — Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo — Retrieves information about file cache memory usage
  • wincache_lock — Acquires an exclusive lock on a given key
  • wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo — Retrieves information about opcode cache memory usage
  • wincache_refresh_if_changed — Refreshes the cache entries for the cached files
  • wincache_rplist_fileinfo — Retrieves information about resolve file path cache
  • wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache
  • wincache_scache_info — Retrieves information about files cached in the session cache
  • wincache_scache_meminfo — Retrieves information about session cache memory usage
  • wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_cas — Compares the variable with old value and assigns new value to it
  • wincache_ucache_clear — Deletes entire content of the user cache
  • wincache_ucache_dec — Decrements the value associated with the key
  • wincache_ucache_delete — Deletes variables from the user cache
  • wincache_ucache_exists — Checks if a variable exists in the user cache
  • wincache_ucache_get — Gets a variable stored in the user cache
  • wincache_ucache_inc — Increments the value associated with the key
  • wincache_ucache_info — Retrieves information about data stored in the user cache
  • wincache_ucache_meminfo — Retrieves information about user cache memory usage
  • wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_unlock — Releases an exclusive lock on a given key


Retrieves information about files cached in the file cache

  • « WinCache Funções
  • wincache_fcache_meminfo »
  • PHP Manual
  • WinCache Funções
  • Retrieves information about files cached in the file cache

wincache_fcache_fileinfo

(PECL wincache >= 1.0.0)

wincache_fcache_fileinfo — Retrieves information about files cached in the file cache

Descrição

wincache_fcache_fileinfo(bool $summaryonly = false): array|false

Retrieves information about file cache content and its usage.

Parâmetros

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the file cache summary.

Valor Retornado

Array of meta data about file cache ou false em caso de falha

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the file cache has been active
  • total_file_count - total number of files that are currently in the file cache
  • total_hit_count - number of times the files have been served from the file cache
  • total_miss_count - number of times the files have not been found in the file cache

  • file_entries - an array that contains the information about all the cached files:

    • file_name - absolute file name of the cached file
    • add_time - time in seconds since the file has been added to the file cache
    • use_time - time in seconds since the file has been accessed in the file cache
    • last_check - time in seconds since the file has been checked for modifications
    • hit_count - number of times the file has been served from the cache
    • file_size - size of the cached file in bytes

Exemplos

Exemplo #1 A wincache_fcache_fileinfo() example

<pre>
<?php
print_r(wincache_fcache_fileinfo());
?>
</pre>

O exemplo acima produzirá:

Array
(   [total_cache_uptime] => 3234
    [total_file_count] => 5
    [total_hit_count] => 0
    [total_miss_count] => 1
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 1
                    [use_time] => 0
                    [last_check] => 1
                    [hit_count] => 1
                    [file_size] => 2435
                )
            [2] => Array (...iterates for each cached file)
        )
)

Veja Também

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about file cache memory usage

  • « wincache_fcache_fileinfo
  • wincache_lock »
  • PHP Manual
  • WinCache Funções
  • Retrieves information about file cache memory usage

wincache_fcache_meminfo

(PECL wincache >= 1.0.0)

wincache_fcache_meminfo — Retrieves information about file cache memory usage

Descrição

wincache_fcache_meminfo(): array|false

Retrieves information about memory usage by file cache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Array of meta data about file cache memory usage ou false em caso de falha

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the file cache
  • memory_free - amount of free memory in bytes available for the file cache
  • num_used_blks - number of memory blocks used by the file cache
  • num_free_blks - number of free memory blocks available for the file cache
  • memory_overhead - amount of memory in bytes used for the file cache internal structures

Exemplos

Exemplo #1 A wincache_fcache_meminfo() example

<pre>
<?php
print_r(wincache_fcache_meminfo());
?>
</pre>

O exemplo acima produzirá:

Array
(
    [memory_total] => 134217728
    [memory_free] => 131339120
    [num_used_blks] => 361
    [num_free_blks] => 3
    [memory_overhead] => 5856
)

Veja Também

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Acquires an exclusive lock on a given key

  • « wincache_fcache_meminfo
  • wincache_ocache_fileinfo »
  • PHP Manual
  • WinCache Funções
  • Acquires an exclusive lock on a given key

wincache_lock

(PECL wincache >= 1.1.0)

wincache_lock — Acquires an exclusive lock on a given key

Descrição

wincache_lock(string $key, bool $isglobal = false): bool

Obtains an exclusive lock on a given key. The execution of the current script will be blocked until the lock can be obtained. Once the lock is obtained, the other scripts that try to request the lock by using the same key will be blocked, until the current script releases the lock by using wincache_unlock().

Aviso

Using of the wincache_lock() and wincache_unlock() can cause deadlocks when executing PHP scripts in a multi-process environment like FastCGI. Do not use these functions unless you are absolutely sure you need to use them. For the majority of the operations on the user cache it is not necessary to use these functions.

Parâmetros

key

Name of the key in the cache to get the lock on.

isglobal

Controls whether the scope of the lock is system-wide or local. Local locks are scoped to the application pool in IIS FastCGI case or to all php processes that have the same parent process identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Using wincache_lock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock(“lock_txt_lock”)) { // do an exclusive lock
ftruncate($fp, 0); // truncate file
fwrite($fp, "Write something here\n");
wincache_unlock(“lock_txt_lock”); // release the lock
} else {
echo "Couldn't get the lock!";
}
fclose($fp);
?>

Veja Também

  • wincache_unlock() - Releases an exclusive lock on a given key
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Retrieves information about files cached in the opcode cache

  • « wincache_lock
  • wincache_ocache_meminfo »
  • PHP Manual
  • WinCache Funções
  • Retrieves information about files cached in the opcode cache

wincache_ocache_fileinfo

(PECL wincache >= 1.0.0)

wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache

Descrição

wincache_ocache_fileinfo(bool $summaryonly = false): array|false

Retrieves information about opcode cache content and its usage.

Aviso

Esta função foi REMOVIDA a partir do PHP 7.0.0.

Parâmetros

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the opcode cache summary.

Valor Retornado

Array of meta data about opcode cache ou false em caso de falha

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the opcode cache has been active
  • total_file_count - total number of files that are currently in the opcode cache
  • total_hit_count - number of times the compiled opcode have been served from the cache
  • total_miss_count - number of times the compiled opcode have not been found in the cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache

  • file_entries - an array that contains the information about all the cached files:

    • file_name - absolute file name of the cached file
    • add_time - time in seconds since the file has been added to the opcode cache
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • hit_count - number of times the file has been served from the cache
    • function_count - number of functions in the cached file
    • class_count - number of classes in the cached file

Exemplos

Exemplo #1 A wincache_ocache_fileinfo() example

<pre>
<?php
print_r(wincache_ocache_fileinfo());
?>
</pre>

O exemplo acima produzirá:

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Veja Também

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about opcode cache memory usage

  • « wincache_ocache_fileinfo
  • wincache_refresh_if_changed »
  • PHP Manual
  • WinCache Funções
  • Retrieves information about opcode cache memory usage

wincache_ocache_meminfo

(PECL wincache >= 1.0.0)

wincache_ocache_meminfo — Retrieves information about opcode cache memory usage

Descrição

wincache_ocache_meminfo(): array|false

Retrieves information about memory usage by opcode cache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Array of meta data about opcode cache memory usage ou false em caso de falha

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the opcode cache
  • memory_free - amount of free memory in bytes available for the opcode cache
  • num_used_blks - number of memory blocks used by the opcode cache
  • num_free_blks - number of free memory blocks available for the opcode cache
  • memory_overhead - amount of memory in bytes used for the opcode cache internal structures

Aviso

Esta função foi REMOVIDA a partir do PHP 7.0.0.

Exemplos

Exemplo #1 A wincache_ocache_meminfo() example

<pre>
<?php
print_r(wincache_ocache_meminfo());
?>
</pre>

O exemplo acima produzirá:

Array
(
    [memory_total] => 134217728
    [memory_free] => 112106972
    [num_used_blks] => 15469
    [num_free_blks] => 4
    [memory_overhead] => 247600
)

Veja Também

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Refreshes the cache entries for the cached files

  • « wincache_ocache_meminfo
  • wincache_rplist_fileinfo »
  • PHP Manual
  • WinCache Funções
  • Refreshes the cache entries for the cached files

wincache_refresh_if_changed

(PECL wincache >= 1.0.0)

wincache_refresh_if_changed — Refreshes the cache entries for the cached files

Descrição

wincache_refresh_if_changed(array $files = NULL): bool

Refreshes the cache entries for the files, whose names were passed in the input argument. If no argument is specified then refreshes all the entries in the cache.

Parâmetros

files

An array of file names for files that need to be refreshed. An absolute or relative file paths can be used.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

WinCache performs regular checks on the cached files to ensure that if any file has changed then the corresponding entry in the cache is updated. By default this check is performed every 30 seconds. If, for example, a PHP script updates another PHP script where the application's configuration settings are stored, then it may happen that after the configuration settings have been saved to a file, the application is still using old settings for some time until the cache is refreshed. In those cases it may be preferrable to refresh the cache right after the file has been changed. The following example shows how this can be done.

Exemplo #1 A wincache_refresh_if_changed() example

<?php
$filename = 'C:\inetpub\wwwroot\config.php';
$handle = fopen($filename, 'w+');
if ($handle === FALSE) die('Failed to open file '.$filename.' for writing');
fwrite($handle, '<?php $setting=something; ?>');
fclose($handle);
wincache_refresh_if_changed(array($filename));
?>

Veja Também

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Retrieves information about resolve file path cache

  • « wincache_refresh_if_changed
  • wincache_rplist_meminfo »
  • PHP Manual
  • WinCache Funções
  • Retrieves information about resolve file path cache

wincache_rplist_fileinfo

(PECL wincache >= 1.0.0)

wincache_rplist_fileinfo — Retrieves information about resolve file path cache

Descrição

wincache_rplist_fileinfo(bool $summaryonly = false): array|false

Retrieves information about cached mappings between relative file paths and corresponding absolute file paths.

Parâmetros

summaryonly

Valor Retornado

Array of meta data about the resolve file path cache ou false em caso de falha

The array returned by this function contains the following elements:

  • total_file_count - total number of file path mappings stored in the cache

  • rplist_entries - an array that contains the information about all the cached file paths:

    • resolve_path - path to a file
    • subkey_data - corresponding absolute path to a file

Exemplos

Exemplo #1 A wincache_rplist_fileinfo() example

<pre>
<?php
print_r(wincache_rplist_fileinfo());
?>
</pre>

O exemplo acima produzirá:

Array
(
    [total_file_count] => 5
    [rplist_entries] => Array
        (
            [1] => Array
                (
                    [resolve_path] => checkcache.php
                    [subkey_data] => c:\inetpub\wwwroot|c:\inetpub\wwwroot\checkcache.php
                )

            [2] => Array (...iterates for each cached file)
        )
)

Veja Também

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about memory usage by the resolve file path cache

  • « wincache_rplist_fileinfo
  • wincache_scache_info »
  • PHP Manual
  • WinCache Funções
  • Retrieves information about memory usage by the resolve file path cache

wincache_rplist_meminfo

(PECL wincache >= 1.0.0)

wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache

Descrição

wincache_rplist_meminfo(): array|false

Retrieves information about memory usage by resolve file path cache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Array of meta data that describes memory usage by resolve file path cache. ou false em caso de falha

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the resolve file path cache
  • memory_free - amount of free memory in bytes available for the resolve file path cache
  • num_used_blks - number of memory blocks used by the resolve file path cache
  • num_free_blks - number of free memory blocks available for the resolve file path cache
  • memory_overhead - amount of memory in bytes used for the internal structures of resolve file path cache

Exemplos

Exemplo #1 A wincache_rplist_meminfo() example

<pre>
<?php
print_r(wincache_rplist_meminfo());
?>
</pre>

O exemplo acima produzirá:

Array
(
    [memory_total] => 9437184
    [memory_free] => 9416744
    [num_used_blks] => 23
    [num_free_blks] => 1
    [memory_overhead] => 416
)

Veja Também

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about files cached in the session cache

  • « wincache_rplist_meminfo
  • wincache_scache_meminfo »
  • PHP Manual
  • WinCache Funções
  • Retrieves information about files cached in the session cache

wincache_scache_info

(PECL wincache >= 1.1.0)

wincache_scache_info — Retrieves information about files cached in the session cache

Descrição

wincache_scache_info(bool $summaryonly = false): array|false

Retrieves information about session cache content and its usage.

Parâmetros

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the session cache summary.

Valor Retornado

Array of meta data about session cache ou false em caso de falha

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the session cache has been active
  • total_item_count - total number of elements that are currently in the session cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache
  • total_hit_count - number of times the data has been served from the cache
  • total_miss_count - number of times the data has not been found in the cache

  • scache_entries - an array that contains the information about all the cached items:

    • key_name - name of the key which is used to store the data
    • value_type - type of value stored by the key
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • ttl_seconds - time remaining for the data to live in the cache, 0 meaning infinite
    • age_seconds - time elapsed from the time data has been added in the cache
    • hitcount - number of times data has been served from the cache

Exemplos

Exemplo #1 A wincache_scache_info() example

<pre>
<?php
print_r(wincache_scache_info());
?>
</pre>

O exemplo acima produzirá:

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [scache_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Veja Também

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about session cache memory usage

  • « wincache_scache_info
  • wincache_ucache_add »
  • PHP Manual
  • WinCache Funções
  • Retrieves information about session cache memory usage

wincache_scache_meminfo

(PECL wincache >= 1.1.0)

wincache_scache_meminfo — Retrieves information about session cache memory usage

Descrição

wincache_scache_meminfo(): array|false

Retrieves information about memory usage by session cache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Array of meta data about session cache memory usage ou false em caso de falha

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the session cache
  • memory_free - amount of free memory in bytes available for the session cache
  • num_used_blks - number of memory blocks used by the session cache
  • num_free_blks - number of free memory blocks available for the session cache
  • memory_overhead - amount of memory in bytes used for the session cache internal structures

Exemplos

Exemplo #1 A wincache_scache_meminfo() example

<pre>
<?php
print_r(wincache_scache_meminfo());
?>
</pre>

O exemplo acima produzirá:

Array
(
    [memory_total] => 5242880
    [memory_free] => 5215056
    [num_used_blks] => 6
    [num_free_blks] => 3
    [memory_overhead] => 176
)

Veja Também

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Adds a variable in user cache only if variable does not already exist in the cache

  • « wincache_scache_meminfo
  • wincache_ucache_cas »
  • PHP Manual
  • WinCache Funções
  • Adds a variable in user cache only if variable does not already exist in the cache

wincache_ucache_add

(PECL wincache >= 1.1.0)

wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache

Descrição

wincache_ucache_add(string $key, mixed $value, int $ttl = 0): bool
wincache_ucache_add(array $values, mixed $unused = NULL, int $ttl = 0): bool

Adds a variable in user cache, only if this variable doesn't already exist in the cache. The added variable remains in the user cache unless its time to live expires or it is deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Parâmetros

key

Store the variable using this key name. If a variable with same key is already present the function will fail and return false. key is case sensitive. To override the value even if key is present use wincache_ucache_set() function instad. key can also take array of name => value pairs where names will be used as keys. This can be used to add multiple values in the cache in one operation, thus avoiding race condition.

value

Value of a variable to store. Value supports all data types except resources, such as file handles. This paramter is ignored if first argument is an array. A general guidance is to pass null as value while using array as key. If value is an object, or an array containing objects, then the objects will be serialized. See __sleep() for details on serializing objects.

values

Associative array of keys and values.

ttl

Time for the variable to live in the cache in seconds. After the value specified in ttl has passed the stored variable will be deleted from the cache. This parameter takes a default value of 0 which means the variable will stay in the cache unless explicitly deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Valor Retornado

If key is string, the function returns true on success and false on failure.

If key is an array, the function returns:

  • If all the name => value pairs in the array can be set, function returns an empty array;
  • If all the name => value pairs in the array cannot be set, function returns false;
  • If some can be set while others cannot, function returns an array with name=>value pair for which the addition failed in the user cache.

Exemplos

Exemplo #1 wincache_ucache_add() with key as a string

<?php
$bar = 'BAR';
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_get('foo'));
?>

O exemplo acima produzirá:

bool(true)
bool(false)
string(3) "BAR"

Exemplo #2 wincache_ucache_add() with key as an array

<?php
$colors_array = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

O exemplo acima produzirá:

array(0) { }
array(4) {
  ["green"]=> int(-1)
  ["Blue"]=> int(-1)
  ["yellow"]=> int(-1)
  ["cyan"]=> int(-1)
}
string(1) "6"

Veja Também

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __sleep()


Compares the variable with old value and assigns new value to it

  • « wincache_ucache_add
  • wincache_ucache_clear »
  • PHP Manual
  • WinCache Funções
  • Compares the variable with old value and assigns new value to it

wincache_ucache_cas

(PECL wincache >= 1.1.0)

wincache_ucache_cas — Compares the variable with old value and assigns new value to it

Descrição

wincache_ucache_cas(string $key, int $old_value, int $new_value): bool

Compares the variable associated with the key with old_value and if it matches then assigns the new_value to it.

Parâmetros

key

The key that is used to store the variable in the cache. key is case sensitive.

old_value

Old value of the variable pointed by key in the user cache. The value should be of type long, otherwise the function returns false.

new_value

New value which will get assigned to variable pointer by key if a match is found. The value should be of type long, otherwise the function returns false.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Using wincache_ucache_cas()

<?php
wincache_ucache_set('counter', 2922);
var_dump(wincache_ucache_cas('counter', 2922, 1));
var_dump(wincache_ucache_get('counter'));
?>

O exemplo acima produzirá:

bool(true)
int(1)

Veja Também

  • wincache_ucache_inc() - Increments the value associated with the key
  • wincache_ucache_dec() - Decrements the value associated with the key


Deletes entire content of the user cache

  • « wincache_ucache_cas
  • wincache_ucache_dec »
  • PHP Manual
  • WinCache Funções
  • Deletes entire content of the user cache

wincache_ucache_clear

(PECL wincache >= 1.1.0)

wincache_ucache_clear — Deletes entire content of the user cache

Descrição

wincache_ucache_clear(): bool

Clears/deletes all the values stored in the user cache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 using wincache_ucache_clear()

<?php
wincache_ucache_set('green', 1);
wincache_ucache_set('red', 2);
wincache_ucache_set('orange', 4);
wincache_ucache_set('blue', 8);
wincache_ucache_set('cyan', 16);
$array1 = array('green', 'red', 'orange', 'blue', 'cyan');
var_dump(wincache_ucache_get($array1));
var_dump(wincache_ucache_clear());
var_dump(wincache_ucache_get($array1));
?>

O exemplo acima produzirá:

array(5) { ["green"]=> int(1)
           ["red"]=> int(2)
           ["orange"]=> int(4)
           ["blue"]=> int(8)
           ["cyan"]=> int(16) }
bool(true)
bool(false)

Veja Também

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Decrements the value associated with the key

  • « wincache_ucache_clear
  • wincache_ucache_delete »
  • PHP Manual
  • WinCache Funções
  • Decrements the value associated with the key

wincache_ucache_dec

(PECL wincache >= 1.1.0)

wincache_ucache_dec — Decrements the value associated with the key

Descrição

wincache_ucache_dec(string $key, int $dec_by = 1, bool &$success = ?): mixed

Decrements the value associated with the key by 1 or as specified by dec_by.

Parâmetros

key

The key that was used to store the variable in the cache. key is case sensitive.

dec_by

The value by which the variable associated with the key will get decremented. If the argument is a floating point number it will be truncated to nearest integer. The variable associated with the key should be of type long, otherwise the function fails and returns false.

success

Will be set to true on success and false on failure.

Valor Retornado

Returns the decremented value on success and false on failure.

Exemplos

Exemplo #1 Using wincache_ucache_dec()

<?php
wincache_ucache_set('counter', 1);
var_dump(wincache_ucache_dec('counter', 2923, $success));
var_dump($success);
?>

O exemplo acima produzirá:

int(2922)
bool(true)

Veja Também

  • wincache_ucache_inc() - Increments the value associated with the key
  • wincache_ucache_cas() - Compares the variable with old value and assigns new value to it


Deletes variables from the user cache

  • « wincache_ucache_dec
  • wincache_ucache_exists »
  • PHP Manual
  • WinCache Funções
  • Deletes variables from the user cache

wincache_ucache_delete

(PECL wincache >= 1.1.0)

wincache_ucache_delete — Deletes variables from the user cache

Descrição

wincache_ucache_delete(mixed $key): bool

Deletes the elements in the user cache pointed by key.

Parâmetros

key

The key that was used to store the variable in the cache. key is case sensitive. key can be an array of keys.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

If key is an array then the function returns false if every element of the array fails to get deleted from the user cache, otherwise returns an array which consists of all the keys that are deleted.

Exemplos

Exemplo #1 Using wincache_ucache_delete() with key as a string

<?php
wincache_ucache_set('foo', 'bar');
var_dump(wincache_ucache_delete('foo'));
var_dump(wincache_ucache_exists('foo'));
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Exemplo #2 Usingwincache_ucache_delete() with key as an array

<?php
$array1 = array('green' => '5', 'blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green', 'blue', 'yellow', 'cyan');
var_dump(wincache_ucache_delete($array2));
?>

O exemplo acima produzirá:

array(4) { [0]=> string(5) "green"
           [1]=> string(4) "Blue"
           [2]=> string(6) "yellow"
           [3]=> string(4) "cyan" }

Exemplo #3 Using wincache_ucache_delete() with key as an array where some elements cannot be deleted

<?php
$array1 = array('green' => '5', 'blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('orange', 'red', 'yellow', 'cyan');
var_dump(wincache_ucache_delete($array2));
?>

O exemplo acima produzirá:

array(2) { [0]=> string(6) "yellow"
           [1]=> string(4) "cyan" }

Veja Também

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Checks if a variable exists in the user cache

  • « wincache_ucache_delete
  • wincache_ucache_get »
  • PHP Manual
  • WinCache Funções
  • Checks if a variable exists in the user cache

wincache_ucache_exists

(PECL wincache >= 1.1.0)

wincache_ucache_exists — Checks if a variable exists in the user cache

Descrição

wincache_ucache_exists(string $key): bool

Checks if a variable with the key exists in the user cache or not.

Parâmetros

key

The key that was used to store the variable in the cache. key is case sensitive.

Valor Retornado

Returns true if variable with the key exitsts, otherwise returns false.

Exemplos

Exemplo #1 Using wincache_ucache_exists()

<?php
if (!wincache_ucache_exists('green'))
wincache_ucache_set('green', 1);
var_dump(wincache_ucache_exists('green'));
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Gets a variable stored in the user cache

  • « wincache_ucache_exists
  • wincache_ucache_inc »
  • PHP Manual
  • WinCache Funções
  • Gets a variable stored in the user cache

wincache_ucache_get

(PECL wincache >= 1.1.0)

wincache_ucache_get — Gets a variable stored in the user cache

Descrição

wincache_ucache_get(mixed $key, bool &$success = ?): mixed

Gets a variable stored in the user cache.

Parâmetros

key

The key that was used to store the variable in the cache. key is case sensitive. key can be an array of keys. In this case the return value will be an array of values of each element in the key array. If an object, or an array containing objects, is returned, then the objects will be unserialized. See __wakeup() for details on unserializing objects.

success

Will be set to true on success and false on failure.

Valor Retornado

If key is a string, the function returns the value of the variable stored with that key. The success is set to true on success and to false on failure.

The key is an array, the parameter success is always set to true. The returned array (name => value pairs) will contain only those name => value pairs for which the get operation in user cache was successful. If none of the keys in the key array finds a match in the user cache an empty array will be returned.

Exemplos

Exemplo #1 wincache_ucache_get() with key as a string

<?php
wincache_ucache_add('color', 'blue');
var_dump(wincache_ucache_get('color', $success));
var_dump($success);
?>

O exemplo acima produzirá:

string(4) "blue"
bool(true)

Exemplo #2 wincache_ucache_get() with key as an array

<?php
$array1 = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green', 'Blue', 'yellow', 'cyan');
var_dump(wincache_ucache_get($array2, $success));
var_dump($success);
?>

O exemplo acima produzirá:

array(4) { ["green"]=> string(1) "5"
           ["Blue"]=> string(1) "6"
           ["yellow"]=> string(1) "7"
           ["cyan"]=> string(1) "8" }
bool(true)

Veja Também

  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __wakeup()


Increments the value associated with the key

  • « wincache_ucache_get
  • wincache_ucache_info »
  • PHP Manual
  • WinCache Funções
  • Increments the value associated with the key

wincache_ucache_inc

(PECL wincache >= 1.1.0)

wincache_ucache_inc — Increments the value associated with the key

Descrição

wincache_ucache_inc(string $key, int $inc_by = 1, bool &$success = ?): mixed

Increments the value associated with the key by 1 or as specified by inc_by.

Parâmetros

key

The key that was used to store the variable in the cache. key is case sensitive.

inc_by

The value by which the variable associated with the key will get incremented. If the argument is a floating point number it will be truncated to nearest integer. The variable associated with the key should be of type long, otherwise the function fails and returns false.

success

Will be set to true on success and false on failure.

Valor Retornado

Returns the incremented value on success and false on failure.

Exemplos

Exemplo #1 Using wincache_ucache_inc()

<?php
wincache_ucache_set('counter', 1);
var_dump(wincache_ucache_inc('counter', 2921, $success));
var_dump($success);
?>

O exemplo acima produzirá:

int(2922)
bool(true)

Veja Também

  • wincache_ucache_dec() - Decrements the value associated with the key
  • wincache_ucache_cas() - Compares the variable with old value and assigns new value to it


Retrieves information about data stored in the user cache

  • « wincache_ucache_inc
  • wincache_ucache_meminfo »
  • PHP Manual
  • WinCache Funções
  • Retrieves information about data stored in the user cache

wincache_ucache_info

(PECL wincache >= 1.1.0)

wincache_ucache_info — Retrieves information about data stored in the user cache

Descrição

wincache_ucache_info(bool $summaryonly = false, string $key = NULL): array|false

Retrieves information about data stored in the user cache.

Parâmetros

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the user cache summary.

key

The key of an entry in the user cache. If specified then the returned array will contain information only about that cache entry. If not specified and summaryonly is set to false then the returned array will contain information about all entries in the cache.

Valor Retornado

Array of meta data about user cache ou false em caso de falha

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the user cache has been active
  • total_item_count - total number of elements that are currently in the user cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache
  • total_hit_count - number of times the data has been served from the cache
  • total_miss_count - number of times the data has not been found in the cache

  • ucache_entries - an array that contains the information about all the cached items:

    • key_name - name of the key which is used to store the data
    • value_type - type of value stored by the key
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • is_session - indicates if the data is a session variable
    • ttl_seconds - time remaining for the data to live in the cache, 0 meaning infinite
    • age_seconds - time elapsed from the time data has been added in the cache
    • hitcount - number of times data has been served from the cache

Exemplos

Exemplo #1 Using wincache_ucache_info()

<?php
wincache_ucache_get('green');
wincache_ucache_set('green', 2922);
wincache_ucache_get('green');
wincache_ucache_get('green');
wincache_ucache_get('green');
print_r(wincache_ucache_info());
?>

O exemplo acima produzirá:

Array
( ["total_cache_uptime"] => int(0)
  ["is_local_cache"] => bool(false)
  ["total_item_count"] => int(1)
  ["total_hit_count"] => int(3)
  ["total_miss_count"] => int(1)
  ["ucache_entries"] => Array(1)
    ( [1] => Array(6)
      (
        ["key_name"] => string(5) "green"
        ["value_type"] => string(4) "long"
        ["is_session"] => int(0)
        ["ttl_seconds"] => int(0)
        ["age_seconds"] => int(0)
        ["hitcount"] => int(3)
       )
    )
)

Veja Também

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about user cache memory usage

  • « wincache_ucache_info
  • wincache_ucache_set »
  • PHP Manual
  • WinCache Funções
  • Retrieves information about user cache memory usage

wincache_ucache_meminfo

(PECL wincache >= 1.1.0)

wincache_ucache_meminfo — Retrieves information about user cache memory usage

Descrição

wincache_ucache_meminfo(): array|false

Retrieves information about memory usage by user cache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Array of meta data about user cache memory usage ou false em caso de falha

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the user cache
  • memory_free - amount of free memory in bytes available for the user cache
  • num_used_blks - number of memory blocks used by the user cache
  • num_free_blks - number of free memory blocks available for the user cache
  • memory_overhead - amount of memory in bytes used for the user cache internal structures

Exemplos

Exemplo #1 A wincache_ucache_meminfo() example

<pre>
<?php
print_r(wincache_ucache_meminfo());
?>
</pre>

O exemplo acima produzirá:

Array
(
    [memory_total] => 5242880
    [memory_free] => 5215056
    [num_used_blks] => 6
    [num_free_blks] => 3
    [memory_overhead] => 176
)

Veja Também

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Adds a variable in user cache and overwrites a variable if it already exists in the cache

  • « wincache_ucache_meminfo
  • wincache_unlock »
  • PHP Manual
  • WinCache Funções
  • Adds a variable in user cache and overwrites a variable if it already exists in the cache

wincache_ucache_set

(PECL wincache >= 1.1.0)

wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache

Descrição

wincache_ucache_set(mixed $key, mixed $value, int $ttl = 0): bool
wincache_ucache_set(array $values, mixed $unused = NULL, int $ttl = 0): bool

Adds a variable in user cache. Overwrites a variable if it already exists in the cache. The added or updated variable remains in the user cache unless its time to live expires or it is deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Parâmetros

key

Store the variable using this key name. If a variable with same key is already present the function will overwrite the previous value with the new one. key is case sensitive. key can also take array of name => value pairs where names will be used as keys. This can be used to add multiple values in the cache in one operation, thus avoiding race condition.

value

Value of a variable to store. Value supports all data types except resources, such as file handles. This paramter is ignored if first argument is an array. A general guidance is to pass null as value while using array as key. If value is an object, or an array containing objects, then the objects will be serialized. See __sleep() for details on serializing objects.

values

Associative array of keys and values.

ttl

Time for the variable to live in the cache in seconds. After the value specified in ttl has passed the stored variable will be deleted from the cache. This parameter takes a default value of 0 which means the variable will stay in the cache unless explicitly deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Valor Retornado

If key is string, the function returns true on success and false on failure.

If key is an array, the function returns:

  • If all the name => value pairs in the array can be set, function returns an empty array;
  • If all the name => value pairs in the array cannot be set, function returns false;
  • If some can be set while others cannot, function returns an array with name=>value pair for which the addition failed in the user cache.

Exemplos

Exemplo #1 wincache_ucache_set() with key as a string

<?php
$bar = 'BAR';
var_dump(wincache_ucache_set('foo', $bar));
var_dump(wincache_ucache_get('foo'));
$bar1 = 'BAR1';
var_dump(wincache_ucache_set('foo', $bar1));
var_dump(wincache_ucache_get('foo'));
?>

O exemplo acima produzirá:

bool(true)
string(3) "BAR"
bool(true)
string(3) "BAR1"

Exemplo #2 wincache_ucache_set() with key as an array

<?php
$colors_array = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

O exemplo acima produzirá:

array(0) {}
array(0) {}
string(1) "6"

Veja Também

  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __sleep()


Releases an exclusive lock on a given key

  • « wincache_ucache_set
  • Building for Windows »
  • PHP Manual
  • WinCache Funções
  • Releases an exclusive lock on a given key

wincache_unlock

(PECL wincache >= 1.1.0)

wincache_unlock — Releases an exclusive lock on a given key

Descrição

wincache_unlock(string $key): bool

Releases an exclusive lock that was obtained on a given key by using wincache_lock(). If any other process was blocked waiting for the lock on this key, that process will be able to obtain the lock.

Aviso

Using of the wincache_lock() and wincache_unlock() can cause deadlocks when executing PHP scripts in a multi-process environment like FastCGI. Do not use these functions unless you are absolutely sure you need to use them. For the majority of the operations on the user cache it is not necessary to use these functions.

Parâmetros

key

Name of the key in the cache to release the lock on.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Using wincache_unlock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock(“lock_txt_lock”)) { // do an exclusive lock
ftruncate($fp, 0); // truncate file
fwrite($fp, "Write something here\n");
wincache_unlock(“lock_txt_lock”); // release the lock
} else {
echo "Couldn't get the lock!";
}
fclose($fp);
?>

Veja Também

  • wincache_lock() - Acquires an exclusive lock on a given key
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Building for Windows

Índice

  • Prerequisites
  • Compiling and building
  • Verifying the build


Prerequisites

Building WinCache extension will require:

  1. PHP source code
  2. PHP build environment
  3. WinCache source code

For completing first two steps, follow the step-by-step guide for how to » build PHP on Windows.

For getting the WinCache source code follow the instructions described in Downloading PECL extensions.


Compiling and building

The following steps describe how to compile and build WinCache on Windows OS:

  1. Open a command prompt which is used to build PHP

  2. Go to the root folder where PHP sources are present

  3. Run the command:

    cscript.exe win32\build\buildconf.js

  4. Run the command:

    configure.bat --help
    The output will contain a new flag --enable-wincache.

  5. Run the command:

    configure.js [all options used to build PHP] --enable-wincache
    --enable-wincache is the only extra option which is required to ensure that WinCache extension gets built properly. This option will build WinCache and will statically link it with PHP dll. To build WinCache extension as a stand-alone DLL use the option --enable-wincache=shared.

  6. Run the command:

    nmake


Verifying the build

The following steps describe how to verify that WinCache has been built correctly:

  1. Go to the folder where the PHP binaries are built

  2. Run the command:

    php.exe -n -d extension=php_wincache.dll -re wincache
    If WinCache has been built properly, the output of this command will list the INI directives and functions supported by WinCache.


Hierarchical Profiler

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Xhprof Funções
    • xhprof_disable — Stops xhprof profiler
    • xhprof_enable — Start xhprof profiler
    • xhprof_sample_disable — Stops xhprof sample profiler
    • xhprof_sample_enable — Start XHProf profiling in sampling mode


Introdução

XHProf is a light-weight hierarchical and instrumentation based profiler. During the data collection phase, it keeps track of call counts and inclusive metrics for arcs in the dynamic callgraph of a program. It computes exclusive metrics in the reporting/post processing phase, such as wall (elapsed) time, CPU time and memory usage. A functions profile can be broken down by callers or callees. XHProf handles recursive functions by detecting cycles in the callgraph at data collection time itself and avoiding the cycles by giving unique depth qualified names for the recursive invocations.

XHProf includes a simple HTML based user interface (written in PHP). The browser based UI for viewing profiler results makes it easy to view results or to share results with peers. A callgraph image view is also supported.

XHProf reports can often be helpful in understanding the structure of the code being executed. The hierarchical nature of the reports can be used to determine, for example, what chain of calls led to a particular function getting called.

XHProf supports ability to compare two runs (a.k.a. "diff" reports) or aggregate data from multiple runs. Diff and aggregate reports, much like single run reports, offer "flat" as well as "hierarchical" views of the profile.

Additional documentation can be found via the » facebook xhprof website.


Dependências

Although not required, xhprof includes an interface that's written in PHP. It's used to save and display the profiled data in a usable way, where viewing is done via a web browser. So, a PHP enabled web server will likely make the xhprof experience more useful.

There's also a fork of the GUI interface at » http://github.com/preinheimer/xhprof


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/xhprof


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Xhprof Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
xhprof.output_dir | "" | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

xhprof.output_dir string

Directory used by the default implementation of the iXHProfRuns interface (namely, the XHProfRuns_Default class) for storing XHProf runs.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

XHPROF_FLAGS_NO_BUILTINS (int)
Used to skip all built-in (internal) functions.
XHPROF_FLAGS_CPU (int)
Used to add CPU profiling information to the output.
XHPROF_FLAGS_MEMORY (int)
Used to add memory profiling information to the output.


Exemplos

Exemplo #1 Xhprof example with the optional GUI

This example starts and stops the profiler, then uses the bundled GUI interface to save and parse the results. In other words, the code from the extension itself ends at the call to xhprof_disable().

<?php
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

for ($i = 0; $i <= 1000; $i++) {
$a = $i * $i;
}

$xhprof_data = xhprof_disable();

$XHPROF_ROOT = "/tools/xhprof/";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_testing");

echo "http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing\n";

?>

O exemplo acima produzirá algo semelhante a:

http://localhost/xhprof/xhprof_html/index.php?run=t11_4bdf44d21121f&source=xhprof_testing


Xhprof Funções

Índice

  • xhprof_disable — Stops xhprof profiler
  • xhprof_enable — Start xhprof profiler
  • xhprof_sample_disable — Stops xhprof sample profiler
  • xhprof_sample_enable — Start XHProf profiling in sampling mode


Stops xhprof profiler

  • « Xhprof Funções
  • xhprof_enable »
  • PHP Manual
  • Xhprof Funções
  • Stops xhprof profiler

xhprof_disable

(PECL xhprof >= 0.9.0)

xhprof_disable — Stops xhprof profiler

Descrição

xhprof_disable(): array

Stops the profiler, and returns xhprof data from the run.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of xhprof data, from the run.

Exemplos

Exemplo #1 xhprof_disable() example

<?php
xhprof_enable();

$foo = strlen("foo bar");

$xhprof_data = xhprof_disable();

print_r($xhprof_data);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [main()==>strlen] => Array
        (
            [ct] => 1
            [wt] => 279
        )

    [main()==>xhprof_disable] => Array
        (
            [ct] => 1
            [wt] => 9
        )

    [main()] => Array
        (
            [ct] => 1
            [wt] => 610
        )

)


Start xhprof profiler

  • « xhprof_disable
  • xhprof_sample_disable »
  • PHP Manual
  • Xhprof Funções
  • Start xhprof profiler

xhprof_enable

(PECL xhprof >= 0.9.0)

xhprof_enable — Start xhprof profiler

Descrição

xhprof_enable(int $flags = 0, array $options = ?): void

Start xhprof profiling.

Parâmetros

flags

Optional flags to add additional information to the profiling. See the XHprof constants for further information about these flags, e.g., XHPROF_FLAGS_MEMORY to enable memory profiling.

options

An array of optional options, namely, the 'ignored_functions' option to pass in functions to be ignored during profiling.

Valor Retornado

null

Registro de Alterações

Versão | Descrição
PECL xhprof 0.9.2 | The optional options parameter was added.

Exemplos

Exemplo #1 xhprof_enable() examples

<?php
// 1. elapsed time + memory + CPU profiling; and ignore built-in (internal) functions
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

// 2. elapsed time profiling; ignore call_user_func* during profiling
xhprof_enable(
0,
array('ignored_functions' => array('call_user_func',
'call_user_func_array')));

// 3. elapsed time + memory profiling; ignore call_user_func* during profiling
xhprof_enable(
XHPROF_FLAGS_MEMORY,
array('ignored_functions' => array('call_user_func',
'call_user_func_array')));
?>

Veja Também

  • xhprof_disable() - Stops xhprof profiler
  • xhprof_sample_enable() - Start XHProf profiling in sampling mode
  • memory_get_usage() - Returns the amount of memory allocated to PHP
  • getrusage() - Gets the current resource usages


Stops xhprof sample profiler

  • « xhprof_enable
  • xhprof_sample_enable »
  • PHP Manual
  • Xhprof Funções
  • Stops xhprof sample profiler

xhprof_sample_disable

(PECL xhprof >= 0.9.0)

xhprof_sample_disable — Stops xhprof sample profiler

Descrição

xhprof_sample_disable(): array

Stops the sample mode xhprof profiler, and

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of xhprof sample data, from the run.

Exemplos

Exemplo #1 xhprof_sample_disable() example

<?php
xhprof_sample_enable();

for ($i = 0; $i <= 10000; $i++) {
$a = strlen($i);
$b = $i * $a;
$c = rand();
}

$xhprof_data = xhprof_sample_disable();

print_r($xhprof_data);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [1272935300.800000] => main()
    [1272935300.900000] => main()
)


Start XHProf profiling in sampling mode

  • « xhprof_sample_disable
  • Yac »
  • PHP Manual
  • Xhprof Funções
  • Start XHProf profiling in sampling mode

xhprof_sample_enable

(PECL xhprof >= 0.9.0)

xhprof_sample_enable — Start XHProf profiling in sampling mode

Descrição

xhprof_sample_enable(): void

Starts profiling in sample mode, which is a lighter weight version of xhprof_enable(). The sampling interval is 0.1 seconds, and samples record the full function call stack. The main use case is when lower overhead is required when doing performance monitoring and diagnostics.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

null

Veja Também

  • xhprof_sample_disable() - Stops xhprof sample profiler
  • xhprof_enable() - Start xhprof profiler
  • memory_get_usage() - Returns the amount of memory allocated to PHP
  • getrusage() - Gets the current resource usages


Yac

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Yac — The Yac class
    • Yac::add — Store into cache
    • Yac::__construct — Constructor
    • Yac::delete — Remove items from cache
    • Yac::dump — Dump cache
    • Yac::flush — Flush the cache
    • Yac::get — Retrieve values from cache
    • Yac::__get — Getter
    • Yac::info — Status of cache
    • Yac::set — Store into cache
    • Yac::__set — Setter


Introdução

Yac (Yet Another cache), is a lock-free, shared memory user data cache, could be used to replace APC, local memcache.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/yac.

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Yac Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
yac.compress_threshold | -1 | INI_SYSTEM |
yac.debug | 0 | INI_ALL |
yac.enable | 1 | INI_SYSTEM |
yac.enable_cli | 0 | INI_SYSTEM |
yac.keys_memory_size | 4M | INI_SYSTEM |
yac.serializer | php | INI_SYSTEM |
yac.values_memory_size | 64M | INI_SYSTEM |

Aqui está uma breve explicação das diretivas de configuração.

yac.compress_threshold int

yac.debug int

yac.enable int

yac.enable_cli int

yac.keys_memory_size string

yac.serializer string

yac.values_memory_size string


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

YAC_VERSION (string)
YAC_MAX_KEY_LEN (int)
Max length of a key could be, it is 48 bytes.
YAC_MAX_VALUE_RAW_LEN (int)
YAC_MAX_RAW_COMPRESSED_LEN (int)
YAC_SERIALIZER_PHP (int)
Use php serialize as serializer
YAC_SERIALIZER_JSON (int)
Use json as serializer(requrie --enable-json)
YAC_SERIALIZER_IGBINARY (int)
Use igbinary as serializer(require --enable-igbinary)
YAC_SERIALIZER_MSGPACK (int)
Use msgpack as serializer(require --enable-msgpack)
YAC_SERIALIZER (string)
Which serialzier is yac used


The Yac class

(PECL yac >= 1.0.0)

Introdução

Resumo da classe

class Yac {
/* Propriedades */
protected $_prefix;
/* Métodos */
public __construct(string $prefix = "")
public add(string $keys, mixed $value, int $ttl = 0): bool
public add(array $key_vals): bool
public delete(string|array $keys, int $ttl = ?): bool
public dump(int $$num): mixed
public flush(): bool
public get(string|array $key, int &$cas = null): mixed
public __get(string $key): mixed
public info(): array
public set(string $keys, mixed $value, int $ttl = 0): bool
public add(array $key_vals): bool
public __set(string $keys, mixed $value): mixed
}

Propriedades

_prefix

Índice

  • Yac::add — Store into cache
  • Yac::__construct — Constructor
  • Yac::delete — Remove items from cache
  • Yac::dump — Dump cache
  • Yac::flush — Flush the cache
  • Yac::get — Retrieve values from cache
  • Yac::__get — Getter
  • Yac::info — Status of cache
  • Yac::set — Store into cache
  • Yac::__set — Setter


Store into cache

  • « Yac
  • Yac::__construct »
  • PHP Manual
  • Yac
  • Store into cache

Yac::add

(PECL yac >= 1.0.0)

Yac::add — Store into cache

Descrição

public Yac::add(string $keys, mixed $value, int $ttl = 0): bool
public Yac::add(array $key_vals): bool

Added a item into cache.

Parâmetros

keys

string key

value

mixed value, All php value type could be stored except resource

ttl

expire time

Valor Retornado

bool, true on success, false on failure

Nota:

Yac::add() may fail if cas lock could not obtain, so, if you need the value to be stored properly, you may write codes like:

Exemplo #1 Make sure the item is stored

while(!$yac->set("key", "vale));


Constructor

  • « Yac::add
  • Yac::delete »
  • PHP Manual
  • Yac
  • Constructor

Yac::__construct

(PECL yac >= 1.0.0)

Yac::__construct — Constructor

Descrição

public Yac::__construct(string $prefix = "")

prefix is used to prepended to keys, this could be used to avoiding conflicts between apps.

Parâmetros

prefix

string prefix

Erros/Exceções

Throws an Exception if Yac is not enabled. Throws Exception if prefix exceeds max key length of 48 (YAC_MAX_KEY_LEN) bytes.


Remove items from cache

  • « Yac::__construct
  • Yac::dump »
  • PHP Manual
  • Yac
  • Remove items from cache

Yac::delete

(PECL yac >= 1.0.0)

Yac::delete — Remove items from cache

Descrição

public Yac::delete(string|array $keys, int $ttl = ?): bool

remove items from cache

Parâmetros

keys

string key, or array of multiple keys to be removed

ttl

if delay is set, delete will mark the items to be invalid in ttl second.

Valor Retornado


Dump cache

  • « Yac::delete
  • Yac::flush »
  • PHP Manual
  • Yac
  • Dump cache

Yac::dump

(PECL yac >= 1.0.0)

Yac::dump — Dump cache

Descrição

public Yac::dump(int $$num): mixed

Dump values stored in cache

Parâmetros

num

Maximum number of items should be returned

Valor Retornado

mixed


Flush the cache

  • « Yac::dump
  • Yac::get »
  • PHP Manual
  • Yac
  • Flush the cache

Yac::flush

(PECL yac >= 1.0.0)

Yac::flush — Flush the cache

Descrição

public Yac::flush(): bool

Remove all cached values

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

bool, always true


Retrieve values from cache

  • « Yac::flush
  • Yac::__get »
  • PHP Manual
  • Yac
  • Retrieve values from cache

Yac::get

(PECL yac >= 1.0.0)

Yac::get — Retrieve values from cache

Descrição

public Yac::get(string|array $key, int &$cas = null): mixed

Retrieve values from cache

Parâmetros

key

string keys, or array of multiple keys.

cas

if not null, it will be set to the retrieved item's cas.

Valor Retornado

mixed on success, false on failure


Getter

  • « Yac::get
  • Yac::info »
  • PHP Manual
  • Yac
  • Getter

Yac::__get

(PECL yac >= 1.0.0)

Yac::__get — Getter

Descrição

public Yac::__get(string $key): mixed

Retrieve values from cache

Parâmetros

key

string key

Valor Retornado

mixed on success, null on failure


Status of cache

  • « Yac::__get
  • Yac::set »
  • PHP Manual
  • Yac
  • Status of cache

Yac::info

(PECL yac >= 1.0.0)

Yac::info — Status of cache

Descrição

public Yac::info(): array

Get status of cache system

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return an array, consistent with: "memory_size", "slots_memory_size", "values_memory_size", "segment_size", "segment_num", "miss", "hits", "fails", "kicks", "recycles", "slots_size", "slots_used"


Store into cache

  • « Yac::info
  • Yac::__set »
  • PHP Manual
  • Yac
  • Store into cache

Yac::set

(PECL yac >= 1.0.0)

Yac::set — Store into cache

Descrição

public Yac::set(string $keys, mixed $value, int $ttl = 0): bool
public Yac::add(array $key_vals): bool

Add a item into cache, it the key is already exists, override it.

Parâmetros

keys

string key

value

mixed value, All php value type could be stored except resource

ttl

expire time

Valor Retornado

the value self


Setter

  • « Yac::set
  • Manipulação de Formatos de Áudio »
  • PHP Manual
  • Yac
  • Setter

Yac::__set

(PECL yac >= 1.0.0)

Yac::__set — Setter

Descrição

public Yac::__set(string $keys, mixed $value): mixed

store a item into cache

Parâmetros

keys

string key

value

mixed value, All php value type could be stored except resource

Valor Retornado

Always return the value self


Manipulação de Formatos de Áudio

  • OpenAL — OpenAL Audio Bindings
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • OpenAL Funções


OpenAL Audio Bindings

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • OpenAL Funções
    • openal_buffer_create — Generate OpenAL buffer
    • openal_buffer_data — Load a buffer with data
    • openal_buffer_destroy — Destroys an OpenAL buffer
    • openal_buffer_get — Retrieve an OpenAL buffer property
    • openal_buffer_loadwav — Load a .wav file into a buffer
    • openal_context_create — Create an audio processing context
    • openal_context_current — Make the specified context current
    • openal_context_destroy — Destroys a context
    • openal_context_process — Process the specified context
    • openal_context_suspend — Suspend the specified context
    • openal_device_close — Close an OpenAL device
    • openal_device_open — Initialize the OpenAL audio layer
    • openal_listener_get — Retrieve a listener property
    • openal_listener_set — Set a listener property
    • openal_source_create — Generate a source resource
    • openal_source_destroy — Destroy a source resource
    • openal_source_get — Retrieve an OpenAL source property
    • openal_source_pause — Pause the source
    • openal_source_play — Start playing the source
    • openal_source_rewind — Rewind the source
    • openal_source_set — Set source property
    • openal_source_stop — Stop playing the source
    • openal_stream — Begin streaming on a source


  • « OpenAL
  • Instalação/Configuração »
  • PHP Manual
  • OpenAL
  • Introdução

Introdução

Platform independent audio bindings. Requires the » OpenAL library.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/openal.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


  • « Instalação
  • Tipos de Recurso »
  • PHP Manual
  • Instalação/Configuração
  • Configurações em Execução

Configurações em Execução

Esta extensão não possui diretivas de configuração definidas no php.ini.


Tipos de Recurso

This extension defines four resource types:
Open AL(Device) - Returned by openal_device_open(),
Open AL(Context) - Returned by openal_context_create(),
Open AL(Buffer) - Returned by openal_buffer_create(),
and Open AL(Source) - Returned by openal_source_create().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

ALC_FREQUENCY (int)
Context Attribute
ALC_REFRESH (int)
Context Attribute
ALC_SYNC (int)
Context Attribute
AL_FREQUENCY (int)
Buffer Setting
AL_BITS (int)
Buffer Setting
AL_CHANNELS (int)
Buffer Setting
AL_SIZE (int)
Buffer Setting
AL_BUFFER (int)
Source/Listener Setting (Integer)
AL_SOURCE_RELATIVE (int)
Source/Listener Setting (Integer)
AL_SOURCE_STATE (int)
Source/Listener Setting (Integer)
AL_PITCH (int)
Source/Listener Setting (Float)
AL_GAIN (int)
Source/Listener Setting (Float)
AL_MIN_GAIN (int)
Source/Listener Setting (Float)
AL_MAX_GAIN (int)
Source/Listener Setting (Float)
AL_MAX_DISTANCE (int)
Source/Listener Setting (Float)
AL_ROLLOFF_FACTOR (int)
Source/Listener Setting (Float)
AL_CONE_OUTER_GAIN (int)
Source/Listener Setting (Float)
AL_CONE_INNER_ANGLE (int)
Source/Listener Setting (Float)
AL_CONE_OUTER_ANGLE (int)
Source/Listener Setting (Float)
AL_REFERENCE_DISTANCE (int)
Source/Listener Setting (Float)
AL_POSITION (int)
Source/Listener Setting (Float Vector)
AL_VELOCITY (int)
Source/Listener Setting (Float Vector)
AL_DIRECTION (int)
Source/Listener Setting (Float Vector)
AL_ORIENTATION (int)
Source/Listener Setting (Float Vector)
AL_FORMAT_MONO8 (int)
PCM Format
AL_FORMAT_MONO16 (int)
PCM Format
AL_FORMAT_STEREO8 (int)
PCM Format
AL_FORMAT_STEREO16 (int)
PCM Format
AL_INITIAL (int)
Source State
AL_PLAYING (int)
Source State
AL_PAUSED (int)
Source State
AL_STOPPED (int)
Source State
AL_LOOPING (int)
Source State
AL_TRUE (int)
Boolean value recognized by OpenAL
AL_FALSE (int)
Boolean value recognized by OpenAL


OpenAL Funções

Índice

  • openal_buffer_create — Generate OpenAL buffer
  • openal_buffer_data — Load a buffer with data
  • openal_buffer_destroy — Destroys an OpenAL buffer
  • openal_buffer_get — Retrieve an OpenAL buffer property
  • openal_buffer_loadwav — Load a .wav file into a buffer
  • openal_context_create — Create an audio processing context
  • openal_context_current — Make the specified context current
  • openal_context_destroy — Destroys a context
  • openal_context_process — Process the specified context
  • openal_context_suspend — Suspend the specified context
  • openal_device_close — Close an OpenAL device
  • openal_device_open — Initialize the OpenAL audio layer
  • openal_listener_get — Retrieve a listener property
  • openal_listener_set — Set a listener property
  • openal_source_create — Generate a source resource
  • openal_source_destroy — Destroy a source resource
  • openal_source_get — Retrieve an OpenAL source property
  • openal_source_pause — Pause the source
  • openal_source_play — Start playing the source
  • openal_source_rewind — Rewind the source
  • openal_source_set — Set source property
  • openal_source_stop — Stop playing the source
  • openal_stream — Begin streaming on a source


Generate OpenAL buffer

  • « OpenAL Funções
  • openal_buffer_data »
  • PHP Manual
  • OpenAL Funções
  • Generate OpenAL buffer

openal_buffer_create

(PECL openal >= 0.1.0)

openal_buffer_create — Generate OpenAL buffer

Descrição

openal_buffer_create(): resource

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an Open AL(Buffer) resource on success or false on failure.

Veja Também

  • openal_buffer_loadwav() - Load a .wav file into a buffer
  • openal_buffer_data() - Load a buffer with data


Load a buffer with data

  • « openal_buffer_create
  • openal_buffer_destroy »
  • PHP Manual
  • OpenAL Funções
  • Load a buffer with data

openal_buffer_data

(PECL openal >= 0.1.0)

openal_buffer_data — Load a buffer with data

Descrição

openal_buffer_data(
resource $buffer,
int $format,
string $data,
int $freq
): bool

Parâmetros

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

format

Format of data, one of: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 e AL_FORMAT_STEREO16

data

Block of binary audio data in the format and freq specified.

freq

Frequency of data given in Hz.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_buffer_loadwav() - Load a .wav file into a buffer
  • openal_stream() - Begin streaming on a source


Destroys an OpenAL buffer

  • « openal_buffer_data
  • openal_buffer_get »
  • PHP Manual
  • OpenAL Funções
  • Destroys an OpenAL buffer

openal_buffer_destroy

(PECL openal >= 0.1.0)

openal_buffer_destroy — Destroys an OpenAL buffer

Descrição

openal_buffer_destroy(resource $buffer): bool

Parâmetros

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_buffer_create() - Generate OpenAL buffer


Retrieve an OpenAL buffer property

  • « openal_buffer_destroy
  • openal_buffer_loadwav »
  • PHP Manual
  • OpenAL Funções
  • Retrieve an OpenAL buffer property

openal_buffer_get

(PECL openal >= 0.1.0)

openal_buffer_get — Retrieve an OpenAL buffer property

Descrição

openal_buffer_get(resource $buffer, int $property): int|false

Parâmetros

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

property

Specific property, one of: AL_FREQUENCY, AL_BITS, AL_CHANNELS e AL_SIZE.

Valor Retornado

Returns an integer value appropriate to the property requested ou false em caso de falha.

Veja Também

  • openal_buffer_create() - Generate OpenAL buffer


Load a .wav file into a buffer

  • « openal_buffer_get
  • openal_context_create »
  • PHP Manual
  • OpenAL Funções
  • Load a .wav file into a buffer

openal_buffer_loadwav

(PECL openal >= 0.1.0)

openal_buffer_loadwav — Load a .wav file into a buffer

Descrição

openal_buffer_loadwav(resource $buffer, string $wavfile): bool

Parâmetros

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

wavfile

Path to .wav file on local file system.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_buffer_data() - Load a buffer with data
  • openal_stream() - Begin streaming on a source


Create an audio processing context

  • « openal_buffer_loadwav
  • openal_context_current »
  • PHP Manual
  • OpenAL Funções
  • Create an audio processing context

openal_context_create

(PECL openal >= 0.1.0)

openal_context_create — Create an audio processing context

Descrição

openal_context_create(resource $device): resource

Parâmetros

device

An Open AL(Device) resource (previously created by openal_device_open()).

Valor Retornado

Returns an Open AL(Context) resource on success or false on failure.

Veja Também

  • openal_device_open() - Initialize the OpenAL audio layer
  • openal_context_destroy() - Destroys a context


Make the specified context current

  • « openal_context_create
  • openal_context_destroy »
  • PHP Manual
  • OpenAL Funções
  • Make the specified context current

openal_context_current

(PECL openal >= 0.1.0)

openal_context_current — Make the specified context current

Descrição

openal_context_current(resource $context): bool

Parâmetros

context

An Open AL(Context) resource (previously created by openal_context_create()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_context_create() - Create an audio processing context


Destroys a context

  • « openal_context_current
  • openal_context_process »
  • PHP Manual
  • OpenAL Funções
  • Destroys a context

openal_context_destroy

(PECL openal >= 0.1.0)

openal_context_destroy — Destroys a context

Descrição

openal_context_destroy(resource $context): bool

Parâmetros

context

An Open AL(Context) resource (previously created by openal_context_create()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_context_create() - Create an audio processing context


Process the specified context

  • « openal_context_destroy
  • openal_context_suspend »
  • PHP Manual
  • OpenAL Funções
  • Process the specified context

openal_context_process

(PECL openal >= 0.1.0)

openal_context_process — Process the specified context

Descrição

openal_context_process(resource $context): bool

Parâmetros

context

An Open AL(Context) resource (previously created by openal_context_create()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_context_create() - Create an audio processing context
  • openal_context_current() - Make the specified context current
  • openal_context_suspend() - Suspend the specified context


Suspend the specified context

  • « openal_context_process
  • openal_device_close »
  • PHP Manual
  • OpenAL Funções
  • Suspend the specified context

openal_context_suspend

(PECL openal >= 0.1.0)

openal_context_suspend — Suspend the specified context

Descrição

openal_context_suspend(resource $context): bool

Parâmetros

context

An Open AL(Context) resource (previously created by openal_context_create()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_context_create() - Create an audio processing context
  • openal_context_current() - Make the specified context current
  • openal_context_process() - Process the specified context


Close an OpenAL device

  • « openal_context_suspend
  • openal_device_open »
  • PHP Manual
  • OpenAL Funções
  • Close an OpenAL device

openal_device_close

(PECL openal >= 0.1.0)

openal_device_close — Close an OpenAL device

Descrição

openal_device_close(resource $device): bool

Parâmetros

device

An Open AL(Device) resource (previously created by openal_device_open()) to be closed.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_device_open() - Initialize the OpenAL audio layer


Initialize the OpenAL audio layer

  • « openal_device_close
  • openal_listener_get »
  • PHP Manual
  • OpenAL Funções
  • Initialize the OpenAL audio layer

openal_device_open

(PECL openal >= 0.1.0)

openal_device_open — Initialize the OpenAL audio layer

Descrição

openal_device_open(string $device_desc = ?): resource

Parâmetros

device_desc

Open an audio device optionally specified by device_desc. If device_desc is not specified the first available audio device will be used.

Valor Retornado

Returns an Open AL(Device) resource on success or false on failure.

Veja Também

  • openal_device_close() - Close an OpenAL device
  • openal_context_create() - Create an audio processing context


Retrieve a listener property

  • « openal_device_open
  • openal_listener_set »
  • PHP Manual
  • OpenAL Funções
  • Retrieve a listener property

openal_listener_get

(PECL openal >= 0.1.0)

openal_listener_get — Retrieve a listener property

Descrição

openal_listener_get(int $property): mixed

Parâmetros

property

Property to retrieve, one of:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) e
AL_ORIENTATION (array(float,float,float)).

Valor Retornado

Returns a float or array of floats (as appropriate) ou false em caso de falha.

Veja Também

  • openal_listener_set() - Set a listener property


Set a listener property

  • « openal_listener_get
  • openal_source_create »
  • PHP Manual
  • OpenAL Funções
  • Set a listener property

openal_listener_set

(PECL openal >= 0.1.0)

openal_listener_set — Set a listener property

Descrição

openal_listener_set(int $property, mixed $setting): bool

Parâmetros

property

Property to set, one of:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) e
AL_ORIENTATION (array(float,float,float)).

setting

Value to set, either float, or an array of floats as appropriate.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_listener_get() - Retrieve a listener property


Generate a source resource

  • « openal_listener_set
  • openal_source_destroy »
  • PHP Manual
  • OpenAL Funções
  • Generate a source resource

openal_source_create

(PECL openal >= 0.1.0)

openal_source_create — Generate a source resource

Descrição

openal_source_create(): resource

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an Open AL(Source) resource on success or false on failure.

Veja Também

  • openal_source_set() - Set source property
  • openal_source_play() - Start playing the source
  • openal_source_destroy() - Destroy a source resource


Destroy a source resource

  • « openal_source_create
  • openal_source_get »
  • PHP Manual
  • OpenAL Funções
  • Destroy a source resource

openal_source_destroy

(PECL openal >= 0.1.0)

openal_source_destroy — Destroy a source resource

Descrição

openal_source_destroy(resource $source): bool

Parâmetros

source

An Open AL(Source) resource (previously created by openal_source_create()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_source_create() - Generate a source resource


Retrieve an OpenAL source property

  • « openal_source_destroy
  • openal_source_pause »
  • PHP Manual
  • OpenAL Funções
  • Retrieve an OpenAL source property

openal_source_get

(PECL openal >= 0.1.0)

openal_source_get — Retrieve an OpenAL source property

Descrição

openal_source_get(resource $source, int $property): mixed

Parâmetros

source

An Open AL(Source) resource (previously created by openal_source_create()).

property

Property to get, one of: AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

Valor Retornado

Returns the type associated with the property being retrieved ou false em caso de falha.

Veja Também

  • openal_source_create() - Generate a source resource
  • openal_source_set() - Set source property
  • openal_source_play() - Start playing the source


Pause the source

  • « openal_source_get
  • openal_source_play »
  • PHP Manual
  • OpenAL Funções
  • Pause the source

openal_source_pause

(PECL openal >= 0.1.0)

openal_source_pause — Pause the source

Descrição

openal_source_pause(resource $source): bool

Parâmetros

source

An Open AL(Source) resource (previously created by openal_source_create()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_source_stop() - Stop playing the source
  • openal_source_play() - Start playing the source
  • openal_source_rewind() - Rewind the source


Start playing the source

  • « openal_source_pause
  • openal_source_rewind »
  • PHP Manual
  • OpenAL Funções
  • Start playing the source

openal_source_play

(PECL openal >= 0.1.0)

openal_source_play — Start playing the source

Descrição

openal_source_play(resource $source): bool

Parâmetros

source

An Open AL(Source) resource (previously created by openal_source_create()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_source_stop() - Stop playing the source
  • openal_source_pause() - Pause the source
  • openal_source_rewind() - Rewind the source


Rewind the source

  • « openal_source_play
  • openal_source_set »
  • PHP Manual
  • OpenAL Funções
  • Rewind the source

openal_source_rewind

(PECL openal >= 0.1.0)

openal_source_rewind — Rewind the source

Descrição

openal_source_rewind(resource $source): bool

Parâmetros

source

An Open AL(Source) resource (previously created by openal_source_create()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_source_stop() - Stop playing the source
  • openal_source_pause() - Pause the source
  • openal_source_play() - Start playing the source


Set source property

  • « openal_source_rewind
  • openal_source_stop »
  • PHP Manual
  • OpenAL Funções
  • Set source property

openal_source_set

(PECL openal >= 0.1.0)

openal_source_set — Set source property

Descrição

openal_source_set(resource $source, int $property, mixed $setting): bool

Parâmetros

source

An Open AL(Source) resource (previously created by openal_source_create()).

property

Property to set, one of: AL_BUFFER (OpenAL(Source)), AL_LOOPING (bool), AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

setting

Value to assign to specified property. Refer to the description of property for a description of the value(s) expected.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_source_create() - Generate a source resource
  • openal_source_get() - Retrieve an OpenAL source property
  • openal_source_play() - Start playing the source


Stop playing the source

  • « openal_source_set
  • openal_stream »
  • PHP Manual
  • OpenAL Funções
  • Stop playing the source

openal_source_stop

(PECL openal >= 0.1.0)

openal_source_stop — Stop playing the source

Descrição

openal_source_stop(resource $source): bool

Parâmetros

source

An Open AL(Source) resource (previously created by openal_source_create()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • openal_source_play() - Start playing the source
  • openal_source_pause() - Pause the source
  • openal_source_rewind() - Rewind the source


Begin streaming on a source

  • « openal_source_stop
  • Serviços de Autenticação »
  • PHP Manual
  • OpenAL Funções
  • Begin streaming on a source

openal_stream

(PECL openal >= 0.1.0)

openal_stream — Begin streaming on a source

Descrição

openal_stream(resource $source, int $format, int $rate): resource|false

Parâmetros

source

An Open AL(Source) resource (previously created by openal_source_create()).

format

Format of data, one of: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 e AL_FORMAT_STEREO16

rate

Frequency of data to stream given in Hz.

Valor Retornado

Returns a stream resource on success ou false em caso de falha.

Veja Também

  • openal_source_create() - Generate a source resource
  • fwrite() - Escrita binary-safe em arquivos


Serviços de Autenticação

  • Radius
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Radius Funções


Radius

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
    • RADIUS Options
    • RADIUS Packet Types
    • RADIUS Attribute Types
    • RADIUS Vendor Specific Attribute Types
  • Exemplos
  • Radius Funções
    • radius_acct_open — Creates a Radius handle for accounting
    • radius_add_server — Adds a server
    • radius_auth_open — Creates a Radius handle for authentication
    • radius_close — Frees all ressources
    • radius_config — Causes the library to read the given configuration file
    • radius_create_request — Create accounting or authentication request
    • radius_cvt_addr — Converts raw data to IP-Address
    • radius_cvt_int — Converts raw data to integer
    • radius_cvt_string — Converts raw data to string
    • radius_demangle_mppe_key — Derives mppe-keys from mangled data
    • radius_demangle — Demangles data
    • radius_get_attr — Extracts an attribute
    • radius_get_tagged_attr_data — Extracts the data from a tagged attribute
    • radius_get_tagged_attr_tag — Extracts the tag from a tagged attribute
    • radius_get_vendor_attr — Extracts a vendor specific attribute
    • radius_put_addr — Attaches an IP address attribute
    • radius_put_attr — Attaches a binary attribute
    • radius_put_int — Attaches an integer attribute
    • radius_put_string — Attaches a string attribute
    • radius_put_vendor_addr — Attaches a vendor specific IP address attribute
    • radius_put_vendor_attr — Attaches a vendor specific binary attribute
    • radius_put_vendor_int — Attaches a vendor specific integer attribute
    • radius_put_vendor_string — Attaches a vendor specific string attribute
    • radius_request_authenticator — Returns the request authenticator
    • radius_salt_encrypt_attr — Salt-encrypts a value
    • radius_send_request — Sends the request and waits for a reply
    • radius_server_secret — Returns the shared secret
    • radius_strerror — Returns an error message


Introdução

This package is based on the libradius (Remote Authentication Dial In User Service) of FreeBSD. It allows clients to perform authentication and accounting by means of network requests to remote servers.

This PECL extension adds full support for Radius Authentication (» RFC 2865) and Radius Accounting (» RFC 2866). This package is available for Unix (tested on FreeBSD and Linux) and for Windows.

Nota:

An exact description for libradius can be found » here. A detailed description of the configuration file can be found » here.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/radius.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


Constantes pré-definidas

Índice

  • RADIUS Options
  • RADIUS Packet Types
  • RADIUS Attribute Types
  • RADIUS Vendor Specific Attribute Types

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

RADIUS_MPPE_KEY_LEN (int)
The maximum length of MPPE keys.


RADIUS Options

Several RADIUS functions accept option flags as bitmasks. The constants representing those flags are listed below.

RADIUS_OPTION_SALT (int)

When set, this option will result in the attribute value being salt-encrypted.

RADIUS_OPTION_TAGGED (int)

When set, this option will result in the attribute value being tagged with the value of the tag parameter.


RADIUS Packet Types

RADIUS packets, whether requests or responses, always include a type. These constants are provided to make it easier to specify types when using radius_create_request() and when comparing the result of radius_send_request().

RADIUS_ACCESS_REQUEST (int)

An Access-Request, used to authenticate a user against a RADIUS server. Access request packets must include a RADIUS_NAS_IP_ADDRESS or a RADIUS_NAS_IDENTIFIER attribute, must also include a RADIUS_USER_PASSWORD, RADIUS_CHAP_PASSWORD or a RADIUS_STATE attribute, and should include a RADIUS_USER_NAME attribute.

RADIUS_ACCESS_ACCEPT (int)

An Access-Accept response to an Access-Request indicating that the RADIUS server authenticated the user successfully.

RADIUS_ACCESS_REJECT (int)

An Access-Reject response to an Access-Request indicating that the RADIUS server could not authenticate the user.

RADIUS_ACCESS_CHALLENGE (int)

An Access-Challenge response to an Access-Request indicating that the RADIUS server requires further information in another Access-Request before authenticating the user.

RADIUS_ACCOUNTING_REQUEST (int)

An Accounting-Request, used to convey accounting information for a service to the RADIUS server.

RADIUS_ACCOUNTING_RESPONSE (int)

An Accounting-Response response to an Accounting-Request.

RADIUS_COA_REQUEST (int)

A CoA-Request, sent from the RADIUS server to indicate that the authorisations within the user session have changed. A response must be sent in the form of a CoA-ACK or a CoA-NAK.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_COA_ACK (int)

A CoA-ACK, sent to the RADIUS server to indicate that the user authorisations have been updated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_COA_NAK (int)

A CoA-NAK, sent to the RADIUS server to indicate that the user authorisations could not be updated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_DISCONNECT_REQUEST (int)

A Disconnect-Request, sent from the RADIUS server to indicate that the user session must be terminated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_DISCONNECT_ACK (int)

A Disconnect-ACK, sent to the RADIUS server to indicate that the user session has been terminated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_DISCONNECT_NAK (int)

A Disconnect-NAK, sent to the RADIUS server to indicate that the user session could not be terminated.

This constant is available in PECL radius 1.3.0 and later.


RADIUS Attribute Types

These constants define RADIUS attribute types that can be used with
radius_put_addr(), radius_put_attr(),
radius_put_int() and
radius_put_string().

RADIUS_USER_NAME (int)

The User-Name attribute. The attribute value is expected to be a string containing the name of the user being authenticated, and can be set using radius_put_attr().

RADIUS_USER_PASSWORD (int)

The User-Password attribute. The attribute value is expected to be a string containing the user's password, and can be set using radius_put_attr(). This value will be obfuscated on transmission as described in » section 5.2 of RFC 2865.

RADIUS_CHAP_PASSWORD (int)

The Chap-Password attribute. The attribute value is expected to be a string with the first byte containing the CHAP identifier, and the subsequent 16 bytes containing the MD5 hash of the CHAP identifier, the plaintext password and the CHAP challenge value concatenated together. Note that the CHAP challenge value should also be sent separately in a RADIUS_CHAP_CHALLENGE attribute.

Exemplo #1 Using CHAP passwords

<?php
// Firstly, we'll create an authentication handle and request.
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);

// Assuming $password contains the plaintext password, we now:

// Generate a challenge.
$challenge = mt_rand();

// Specify a CHAP identifier.
$ident = 1;

// Add the Chap-Password attribute.
$cp = md5(pack('Ca*', $ident, $password.$challenge), true);
radius_put_attr($radh, RADIUS_CHAP_PASSWORD, pack('C', $ident).$cp);

// Add the Chap-Challenge attribute.
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);

/* From here, you would add the remaining attributes and
* call radius_send_request(). */
?>

RADIUS_NAS_IP_ADDRESS (int)

The NAS-IP-Address attribute. The attribute value is expected to the IP address of the RADIUS client encoded as an int, which can be set using radius_put_addr().

RADIUS_NAS_PORT (int)

The NAS-Port attribute. The attribute value is expected to be the physical port of the user on the RADIUS client encoded as an int, which can be set using radius_put_int().

RADIUS_SERVICE_TYPE (int)

The Service-Type attribute. The attribute value indicates the service type the user is requesting, and is expected to be an int, which can be set using radius_put_int().

A number of constants are provided to represent the possible values of this attribute. They include:

  • RADIUS_LOGIN
  • RADIUS_FRAMED
  • RADIUS_CALLBACK_LOGIN
  • RADIUS_CALLBACK_FRAMED
  • RADIUS_OUTBOUND
  • RADIUS_ADMINISTRATIVE
  • RADIUS_NAS_PROMPT
  • RADIUS_AUTHENTICATE_ONLY
  • RADIUS_CALLBACK_NAS_PROMPT

RADIUS_FRAMED_PROTOCOL (int)

The Framed-Protocol attribute. The attribute value is expected to be an int indicating the framing to be used for framed access, and can be set using radius_put_int(). The possible attribute values include these constants:

  • RADIUS_PPP
  • RADIUS_SLIP
  • RADIUS_ARAP
  • RADIUS_GANDALF
  • RADIUS_XYLOGICS

RADIUS_FRAMED_IP_ADDRESS (int)

The Framed-IP-Address attribute. The attribute value is expected to be the address of the user's network encoded as an int, which can be set using radius_put_addr() and retrieved using radius_cvt_addr().

RADIUS_FRAMED_IP_NETMASK (int)

The Framed-IP-Netmask attribute. The attribute value is expected to be the netmask of the user's network encoded as an int, which can be set using radius_put_addr() and retrieved using radius_cvt_addr().

RADIUS_FRAMED_ROUTING (int)

The Framed-Routing attribute. The attribute value is expected to be an int indicating the routing method for the user, which can be set using radius_put_int().

Possible values include:

  • 0: No routing
  • 1: Send routing packets
  • 2: Listen for routing packets
  • 3: Send and listen

RADIUS_FILTER_ID (int)

The Filter-ID attribute. The attribute value is expected to be an implementation-specific, human-readable string of filters, which can be set using radius_put_attr().

RADIUS_FRAMED_MTU (int)

The Framed-MTU attribute. The attribute value is expected to be an int indicating the MTU to be configured for the user, and can be set using radius_put_int().

RADIUS_FRAMED_COMPRESSION (int)

The Framed-Compression attribute. The attribute value is expected to be an int indicating the compression protocol to be used, and can be set using radius_put_int(). Possible values include these constants:

  • RADIUS_COMP_NONE: No compression
  • RADIUS_COMP_VJ: VJ TCP/IP header compression
  • RADIUS_COMP_IPXHDR: IPX header compression
  • RADIUS_COMP_STAC_LZS: Stac-LZS compression (added in PECL radius 1.3.0b2)

RADIUS_LOGIN_IP_HOST (int)

The Login-IP-Host attribute. The attribute value is expected to the IP address to connect the user to, encoded as an int, which can be set using radius_put_addr().

RADIUS_LOGIN_SERVICE (int)

The Login-Service attribute. The attribute value is an int indicating the service to connect the user to on the login host. The value can be converted to a PHP integer via radius_cvt_int().

RADIUS_LOGIN_TCP_PORT (int)

The Login-TCP-Port attribute. The attribute value is an int indicating the port to connect the user to on the login host. The value can be converted to a PHP integer via radius_cvt_int().

RADIUS_REPLY_MESSAGE (int)

The Reply-Message attribute. The attribute value is a string containing text that may be displayed to the user in response to an access request.

RADIUS_CALLBACK_NUMBER (int)

The Callback-Number attribute. The attribute value is a string containing the dialing string to use for callback.

RADIUS_CALLBACK_ID (int)

The Callback-Id attribute. The attribute value is a string containing an implementation-specific name of the place to be called.

RADIUS_FRAMED_ROUTE (int)

The Framed-Route attribute. The attribute value is a string containing an implementation-specific set of routes to be configured for the user.

RADIUS_FRAMED_IPX_NETWORK (int)

The Framed-IPX-Network attribute. The attribute value is an int containing the IPX network to be configured for the user, or 0xFFFFFFFE to indicate that the RADIUS client should select the network, and can be accessed via radius_cvt_int().

RADIUS_STATE (int)

The State attribute. The attribute value is an implementation-defined string included in an Access-Challenge from a server that must be included in the subsequent Access-Request, and can be set using radius_put_attr().

RADIUS_CLASS (int)

The Class attribute. The attribute value is an arbitrary string included in an Access-Accept message that should then be sent to the accounting server in Accounting-Request messages, and can be set using radius_put_attr().

RADIUS_VENDOR_SPECIFIC (int)

The Vendor-Specific attribute. In general, vendor attribute values
should be set using radius_put_vendor_addr(),
radius_put_vendor_attr(),
radius_put_vendor_int() and
radius_put_vendor_string(), rather than directly.

This constant is mostly useful when interpreting vendor specific attributes in responses from a RADIUS server; when a vendor specific attribute is received, the radius_get_vendor_attr() function should be used to access the vendor ID, attribute type and attribute value.

RADIUS_SESSION_TIMEOUT (int)

Session timeout

RADIUS_IDLE_TIMEOUT (int)

Idle timeout

RADIUS_TERMINATION_ACTION (int)

Termination action

RADIUS_CALLED_STATION_ID (int)

Called Station Id

RADIUS_CALLING_STATION_ID (int)

Calling Station Id

RADIUS_NAS_IDENTIFIER (int)

NAS ID

RADIUS_PROXY_STATE (int)

Proxy State

RADIUS_LOGIN_LAT_SERVICE (int)

Login LAT Service

RADIUS_LOGIN_LAT_NODE (int)

Login LAT Node

RADIUS_LOGIN_LAT_GROUP (int)

Login LAT Group

RADIUS_FRAMED_APPLETALK_LINK (int)

Framed Appletalk Link

RADIUS_FRAMED_APPLETALK_NETWORK (int)

Framed Appletalk Network

RADIUS_FRAMED_APPLETALK_ZONE (int)

Framed Appletalk Zone

RADIUS_CHAP_CHALLENGE (int)

Challenge

RADIUS_NAS_PORT_TYPE (int)

NAS port type, one of:

  • RADIUS_ASYNC
  • RADIUS_SYNC
  • RADIUS_ISDN_SYNC
  • RADIUS_ISDN_ASYNC_V120
  • RADIUS_ISDN_ASYNC_V110
  • RADIUS_VIRTUAL
  • RADIUS_PIAFS
  • RADIUS_HDLC_CLEAR_CHANNEL
  • RADIUS_X_25
  • RADIUS_X_75
  • RADIUS_G_3_FAX
  • RADIUS_SDSL
  • RADIUS_ADSL_CAP
  • RADIUS_ADSL_DMT
  • RADIUS_IDSL
  • RADIUS_ETHERNET
  • RADIUS_XDSL
  • RADIUS_CABLE
  • RADIUS_WIRELESS_OTHER
  • RADIUS_WIRELESS_IEEE_802_11

RADIUS_PORT_LIMIT (int)

Port Limit

RADIUS_LOGIN_LAT_PORT (int)

Login LAT Port

RADIUS_CONNECT_INFO (int)

Connect info

RADIUS_ACCT_STATUS_TYPE (int)

Accounting status type, one of:

  • RADIUS_START
  • RADIUS_STOP
  • RADIUS_ACCOUNTING_ON
  • RADIUS_ACCOUNTING_OFF

RADIUS_ACCT_DELAY_TIME (int)

Accounting delay time

RADIUS_ACCT_INPUT_OCTETS (int)

Accounting input bytes

RADIUS_ACCT_OUTPUT_OCTETS (int)

Accounting output bytes

RADIUS_ACCT_SESSION_ID (int)

Accounting session ID

RADIUS_ACCT_AUTHENTIC (int)

Accounting authentic, one of:

  • RADIUS_AUTH_RADIUS
  • RADIUS_AUTH_LOCAL
  • RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (int)

Accounting session time

RADIUS_ACCT_INPUT_PACKETS (int)

Accounting input packets

RADIUS_ACCT_OUTPUT_PACKETS (int)

Accounting output packets

RADIUS_ACCT_TERMINATE_CAUSE (int)

Accounting terminate cause, one of:

  • RADIUS_TERM_USER_REQUEST
  • RADIUS_TERM_LOST_CARRIER
  • RADIUS_TERM_LOST_SERVICE
  • RADIUS_TERM_IDLE_TIMEOUT
  • RADIUS_TERM_SESSION_TIMEOUT
  • RADIUS_TERM_ADMIN_RESET
  • RADIUS_TERM_ADMIN_REBOOT
  • RADIUS_TERM_PORT_ERROR
  • RADIUS_TERM_NAS_ERROR
  • RADIUS_TERM_NAS_REQUEST
  • RADIUS_TERM_NAS_REBOOT
  • RADIUS_TERM_PORT_UNNEEDED
  • RADIUS_TERM_PORT_PREEMPTED
  • RADIUS_TERM_PORT_SUSPENDED
  • RADIUS_TERM_SERVICE_UNAVAILABLE
  • RADIUS_TERM_CALLBACK
  • RADIUS_TERM_USER_ERROR
  • RADIUS_TERM_HOST_REQUEST

RADIUS_ACCT_MULTI_SESSION_ID (int)

Accounting multi session ID

RADIUS_ACCT_LINK_COUNT (int)

Accounting link count

Service-Type Constants
RADIUS_LOGIN
RADIUS_FRAMED
RADIUS_CALLBACK_LOGIN
RADIUS_CALLBACK_FRAMED
RADIUS_OUTBOUND
RADIUS_ADMINISTRATIVE
RADIUS_NAS_PROMPT
RADIUS_AUTHENTICATE_ONLY
RADIUS_CALLBACK_NAS_PROMPT
Framed-Protocol Constants
RADIUS_PPP
RADIUS_SLIP
RADIUS_ARAP
RADIUS_GANDALF
RADIUS_XYLOGICS
Framed-Compression Constants
RADIUS_COMP_NONE
RADIUS_COMP_VJ
RADIUS_COMP_IPXHDR
RADIUS_COMP_STAC_LZS
NAS Port Type Constants
RADIUS_ASYNC
RADIUS_SYNC
RADIUS_ISDN_SYNC
RADIUS_ISDN_ASYNC_V120
RADIUS_ISDN_ASYNC_V110
RADIUS_VIRTUAL
RADIUS_PIAFS
RADIUS_HDLC_CLEAR_CHANNEL
RADIUS_X_25
RADIUS_X_75
RADIUS_G_3_FAX
RADIUS_SDSL
RADIUS_ADSL_CAP
RADIUS_ADSL_DMT
RADIUS_IDSL
RADIUS_ETHERNET
RADIUS_XDSL
RADIUS_CABLE
RADIUS_WIRELESS_OTHER
RADIUS_WIRELESS_IEEE_802_11
Accounting Status Type Constants
RADIUS_START
RADIUS_STOP
RADIUS_ACCOUNTING_ON
RADIUS_ACCOUNTING_OFF
Accounting Authentic Constants
RADIUS_AUTH_RADIUS
RADIUS_AUTH_LOCAL
RADIUS_AUTH_REMOTE
Accounting Terminate Cause Constants
RADIUS_TERM_USER_REQUEST
RADIUS_TERM_LOST_CARRIER
RADIUS_TERM_LOST_SERVICE
RADIUS_TERM_IDLE_TIMEOUT
RADIUS_TERM_SESSION_TIMEOUT
RADIUS_TERM_ADMIN_RESET
RADIUS_TERM_ADMIN_REBOOT
RADIUS_TERM_PORT_ERROR
RADIUS_TERM_NAS_ERROR
RADIUS_TERM_NAS_REQUEST
RADIUS_TERM_NAS_REBOOT
RADIUS_TERM_PORT_UNNEEDED
RADIUS_TERM_PORT_PREEMPTED
RADIUS_TERM_PORT_SUSPENDED
RADIUS_TERM_SERVICE_UNAVAILABLE
RADIUS_TERM_CALLBACK
RADIUS_TERM_USER_ERROR
RADIUS_TERM_HOST_REQUEST


RADIUS Vendor Specific Attribute Types

RADIUS_VENDOR_MICROSOFT (int)

Microsoft specific vendor attributes (» RFC 2548), one of:

  • RADIUS_MICROSOFT_MS_CHAP_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP_ERROR
  • RADIUS_MICROSOFT_MS_CHAP_PW_1
  • RADIUS_MICROSOFT_MS_CHAP_PW_2
  • RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW
  • RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES
  • RADIUS_MICROSOFT_MS_RAS_VENDOR
  • RADIUS_MICROSOFT_MS_CHAP_DOMAIN
  • RADIUS_MICROSOFT_MS_CHAP_CHALLENGE
  • RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS
  • RADIUS_MICROSOFT_MS_BAP_USAGE
  • RADIUS_MICROSOFT_MS_LINK_UTILIZATION_THRESHOLD
  • RADIUS_MICROSOFT_MS_LINK_DROP_TIME_LIMIT
  • RADIUS_MICROSOFT_MS_MPPE_SEND_KEY
  • RADIUS_MICROSOFT_MS_MPPE_RECV_KEY
  • RADIUS_MICROSOFT_MS_RAS_VERSION
  • RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON
  • RADIUS_MICROSOFT_MS_FILTER
  • RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE
  • RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE
  • RADIUS_MICROSOFT_MS_CHAP2_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP2_SUCCESS
  • RADIUS_MICROSOFT_MS_CHAP2_PW
  • RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_ARAP_CHALLENGE

RADIUS_MICROSOFT_MS_CHAP_RESPONSE
RADIUS_MICROSOFT_MS_CHAP_ERROR
RADIUS_MICROSOFT_MS_CHAP_PW_1
RADIUS_MICROSOFT_MS_CHAP_PW_2
RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW
RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW
RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY
RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES
RADIUS_MICROSOFT_MS_RAS_VENDOR
RADIUS_MICROSOFT_MS_CHAP_DOMAIN
RADIUS_MICROSOFT_MS_CHAP_CHALLENGE
RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS
RADIUS_MICROSOFT_MS_BAP_USAGE
RADIUS_MICROSOFT_MS_LINK_UTILIZATION_THRESHOLD
RADIUS_MICROSOFT_MS_LINK_DROP_TIME_LIMIT
RADIUS_MICROSOFT_MS_MPPE_SEND_KEY
RADIUS_MICROSOFT_MS_MPPE_RECV_KEY
RADIUS_MICROSOFT_MS_RAS_VERSION
RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD
RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD
RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON
RADIUS_MICROSOFT_MS_FILTER
RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE
RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE
RADIUS_MICROSOFT_MS_CHAP2_RESPONSE
RADIUS_MICROSOFT_MS_CHAP2_SUCCESS
RADIUS_MICROSOFT_MS_CHAP2_PW
RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER
RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER
RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER
RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER
RADIUS_MICROSOFT_MS_ARAP_CHALLENGE


Exemplos

Howto start?

  • get a radius resource
  • configure the library
  • create the request
  • put attributes
  • send the request
  • receive attributes
  • close the radius resource (optional)
Take also a look at the examples in this package.

The package contains an example php script. This script demonstrates howto authenticate with radius using PAP or CHAP (md5). If you authenticate with Microsoft Radius servers then its not possible to use CHAP (md5). If you would like to authenticate with Microsoft Servers you have to use MS-CHAPv1 or MS-CHAPv2, but its more complicated, because you need md4, sha1 and des to generate the right data. The enclosed examples demonstrate all authentication-methods, including MS-CHAPv1 and MS-CHAPv2. To get the MS-CHAP to work you need the mcrypt and the mhash extension, starting with version 1.2 of the package, the mcrypt extension is no longer needed.


Radius Funções

Índice

  • radius_acct_open — Creates a Radius handle for accounting
  • radius_add_server — Adds a server
  • radius_auth_open — Creates a Radius handle for authentication
  • radius_close — Frees all ressources
  • radius_config — Causes the library to read the given configuration file
  • radius_create_request — Create accounting or authentication request
  • radius_cvt_addr — Converts raw data to IP-Address
  • radius_cvt_int — Converts raw data to integer
  • radius_cvt_string — Converts raw data to string
  • radius_demangle_mppe_key — Derives mppe-keys from mangled data
  • radius_demangle — Demangles data
  • radius_get_attr — Extracts an attribute
  • radius_get_tagged_attr_data — Extracts the data from a tagged attribute
  • radius_get_tagged_attr_tag — Extracts the tag from a tagged attribute
  • radius_get_vendor_attr — Extracts a vendor specific attribute
  • radius_put_addr — Attaches an IP address attribute
  • radius_put_attr — Attaches a binary attribute
  • radius_put_int — Attaches an integer attribute
  • radius_put_string — Attaches a string attribute
  • radius_put_vendor_addr — Attaches a vendor specific IP address attribute
  • radius_put_vendor_attr — Attaches a vendor specific binary attribute
  • radius_put_vendor_int — Attaches a vendor specific integer attribute
  • radius_put_vendor_string — Attaches a vendor specific string attribute
  • radius_request_authenticator — Returns the request authenticator
  • radius_salt_encrypt_attr — Salt-encrypts a value
  • radius_send_request — Sends the request and waits for a reply
  • radius_server_secret — Returns the shared secret
  • radius_strerror — Returns an error message


Creates a Radius handle for accounting

  • « Radius Funções
  • radius_add_server »
  • PHP Manual
  • Radius Funções
  • Creates a Radius handle for accounting

radius_acct_open

(PECL radius >= 1.1.0)

radius_acct_open — Creates a Radius handle for accounting

Descrição

radius_acct_open(): resource

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a handle on success, false on error. This function only fails if insufficient memory is available.

Exemplos

Exemplo #1 radius_acct_open() example

<?php
$res = radius_acct_open ()
or die ("Could not create handle");
print "Handle successfully created";
?>


Adds a server

  • « radius_acct_open
  • radius_auth_open »
  • PHP Manual
  • Radius Funções
  • Adds a server

radius_add_server

(PECL radius >= 1.1.0)

radius_add_server — Adds a server

Descrição

radius_add_server(
resource $radius_handle,
string $hostname,
int $port,
string $secret,
int $timeout,
int $max_tries
): bool

radius_add_server() may be called multiple times, and it may be used together with radius_config(). At most 10 servers may be specified. When multiple servers are given, they are tried in round-robin fashion until a valid response is received, or until each server's max_tries limit has been reached.

Parâmetros

radius_handle

hostname

The hostname parameter specifies the server host, either as a fully qualified domain name or as a dotted-quad IP address in text form.

port

The port specifies the UDP port to contact on the server. If port is given as 0, the library looks up the radius/udp or radacct/udp service in the network services database, and uses the port found there. If no entry is found, the library uses the standard Radius ports, 1812 for authentication and 1813 for accounting.

secret

The shared secret for the server host is passed to the secret parameter. The Radius protocol ignores all but the leading 128 bytes of the shared secret.

timeout

The timeout for receiving replies from the server is passed to the timeout parameter, in units of seconds.

max_tries

The maximum number of repeated requests to make before giving up is passed into the max_tries.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 radius_add_server() example

<?php
if (!radius_add_server($res, 'radius.example.com', 1812, 'testing123', 3, 3)) {
echo 'RadiusError:' . radius_strerror($res). "\n<br>";
exit;
}
?>

Veja Também

  • radius_config() - Causes the library to read the given configuration file


Creates a Radius handle for authentication

  • « radius_add_server
  • radius_close »
  • PHP Manual
  • Radius Funções
  • Creates a Radius handle for authentication

radius_auth_open

(PECL radius >= 1.1.0)

radius_auth_open — Creates a Radius handle for authentication

Descrição

radius_auth_open(): resource

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a handle on success, false on error. This function only fails if insufficient memory is available.

Exemplos

Exemplo #1 radius_auth_open() example

<?php
$radh = radius_auth_open()
or die ("Could not create handle");
echo "Handle successfully created";
?>


Frees all ressources

  • « radius_auth_open
  • radius_config »
  • PHP Manual
  • Radius Funções
  • Frees all ressources

radius_close

(PECL radius >= 1.1.0)

radius_close — Frees all ressources

Descrição

radius_close(resource $radius_handle): bool

It is not needed to call this function because php frees all resources at the end of each request.

Parâmetros

radius_handle

O resource RADIUS.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Causes the library to read the given configuration file

  • « radius_close
  • radius_create_request »
  • PHP Manual
  • Radius Funções
  • Causes the library to read the given configuration file

radius_config

(PECL radius >= 1.1.0)

radius_config — Causes the library to read the given configuration file

Descrição

radius_config(resource $radius_handle, string $file): bool

Before issuing any Radius requests, the library must be made aware of the servers it can contact. The easiest way to configure the library is to call radius_config(). radius_config() causes the library to read a configuration file whose format is described in » radius.conf.

Parâmetros

radius_handle

file

The pathname of the configuration file is passed as the file argument to radius_config(). The library can also be configured programmatically by calls to radius_add_server().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • radius_add_server() - Adds a server


Create accounting or authentication request

  • « radius_config
  • radius_cvt_addr »
  • PHP Manual
  • Radius Funções
  • Create accounting or authentication request

radius_create_request

(PECL radius >= 1.1.0)

radius_create_request — Create accounting or authentication request

Descrição

radius_create_request(resource $radius_handle, int $type): bool

A Radius request consists of a code specifying the kind of request, and zero or more attributes which provide additional information. To begin constructing a new request, call radius_create_request().

Nota: Attention: You must call this function, before you can put any attribute!

Parâmetros

radius_handle

type

Type is RADIUS_ACCESS_REQUEST or RADIUS_ACCOUNTING_REQUEST.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 radius_create_request() example

<?php
if (!radius_create_request($res, RADIUS_ACCESS_REQUEST)) {
echo 'RadiusError:' . radius_strerror($res). "\n<br />";
exit;
}
?>

Veja Também

  • radius_send_request() - Sends the request and waits for a reply


Converts raw data to IP-Address

  • « radius_create_request
  • radius_cvt_int »
  • PHP Manual
  • Radius Funções
  • Converts raw data to IP-Address

radius_cvt_addr

(PECL radius >= 1.1.0)

radius_cvt_addr — Converts raw data to IP-Address

Descrição

radius_cvt_addr(string $data): string

Converts raw data to IP-Address

Parâmetros

data

Input data

Valor Retornado

Returns the IP-Address.

Exemplos

Exemplo #1 radius_cvt_addr() example

<?php
while ($resa = radius_get_attr($res)) {

if (!is_array($resa)) {
printf ("Error getting attribute: %s\n", radius_strerror($res));
exit;
}

$attr = $resa['attr'];
$data = $resa['data'];

switch ($attr) {

case RADIUS_FRAMED_IP_ADDRESS:
$ip = radius_cvt_addr($data);
echo "IP: $ip<br>\n";
break;

case RADIUS_FRAMED_IP_NETMASK:
$mask = radius_cvt_addr($data);
echo "MASK: $mask<br>\n";
break;
}
}
?>

Veja Também

  • radius_cvt_int() - Converts raw data to integer
  • radius_cvt_string() - Converts raw data to string


Converts raw data to integer

  • « radius_cvt_addr
  • radius_cvt_string »
  • PHP Manual
  • Radius Funções
  • Converts raw data to integer

radius_cvt_int

(PECL radius >= 1.1.0)

radius_cvt_int — Converts raw data to integer

Descrição

radius_cvt_int(string $data): int

Converts raw data to integer

Parâmetros

data

Input data

Valor Retornado

Returns the integer, retrieved from data.

Exemplos

Exemplo #1 radius_cvt_int() example

<?php
while ($resa = radius_get_attr($res)) {

if (!is_array($resa)) {
printf ("Error getting attribute: %s\n", radius_strerror($res));
exit;
}

$attr = $resa['attr'];
$data = $resa['data'];

switch ($attr) {

case RADIUS_FRAMED_MTU:
$mtu = radius_cvt_int($data);
echo "MTU: $mtu<br>\n";
break;
}
}
?>

Veja Também

  • radius_cvt_addr() - Converts raw data to IP-Address
  • radius_cvt_string() - Converts raw data to string


Converts raw data to string

  • « radius_cvt_int
  • radius_demangle_mppe_key »
  • PHP Manual
  • Radius Funções
  • Converts raw data to string

radius_cvt_string

(PECL radius >= 1.1.0)

radius_cvt_string — Converts raw data to string

Descrição

radius_cvt_string(string $data): string

Converts raw data to string

Parâmetros

data

Input data

Valor Retornado

Returns the string, retrieved from data.

Exemplos

Exemplo #1 radius_cvt_string() example

<?php
while ($resa = radius_get_attr($res)) {

if (!is_array($resa)) {
printf ("Error getting attribute: %s\n", radius_strerror($res));
exit;
}

$attr = $resa['attr'];
$data = $resa['data'];

switch ($attr) {

case RADIUS_FILTER_ID:
$id = radius_cvt_string($data);
echo "Filter ID: $id<br>\n";
break;
}
}
?>

Veja Também

  • radius_cvt_addr() - Converts raw data to IP-Address
  • radius_cvt_int() - Converts raw data to integer


Derives mppe-keys from mangled data

  • « radius_cvt_string
  • radius_demangle »
  • PHP Manual
  • Radius Funções
  • Derives mppe-keys from mangled data

radius_demangle_mppe_key

(PECL radius >= 1.2.0)

radius_demangle_mppe_key — Derives mppe-keys from mangled data

Descrição

radius_demangle_mppe_key(resource $radius_handle, string $mangled): string

When using MPPE with MS-CHAPv2, the send- and recv-keys are mangled (see » RFC 2548), however this function is useless, because I don't think that there is or will be a PPTP-MPPE implementation in PHP.

Parâmetros

radius_handle

O resource RADIUS.

mangled

The mangled data to demangle

Valor Retornado

Returns the demangled string, or false on error.


Demangles data

  • « radius_demangle_mppe_key
  • radius_get_attr »
  • PHP Manual
  • Radius Funções
  • Demangles data

radius_demangle

(PECL radius >= 1.2.0)

radius_demangle — Demangles data

Descrição

radius_demangle(resource $radius_handle, string $mangled): string

Some data (Passwords, MS-CHAPv1 MPPE-Keys) is mangled for security reasons, and must be demangled before you can use them.

Parâmetros

radius_handle

O resource RADIUS.

mangled

The mangled data to demangle

Valor Retornado

Returns the demangled string, or false on error.


Extracts an attribute

  • « radius_demangle
  • radius_get_tagged_attr_data »
  • PHP Manual
  • Radius Funções
  • Extracts an attribute

radius_get_attr

(PECL radius >= 1.1.0)

radius_get_attr — Extracts an attribute

Descrição

radius_get_attr(resource $radius_handle): mixed

Like Radius requests, each response may contain zero or more attributes. After a response has been received successfully by radius_send_request(), its attributes can be extracted one by one using radius_get_attr(). Each time radius_get_attr() is called, it gets the next attribute from the current response.

Parâmetros

radius_handle

O resource RADIUS.

Valor Retornado

Returns an associative array containing the attribute-type and the data, or error number <= 0.

Exemplos

Exemplo #1 radius_get_attr() example

<?php
while ($resa = radius_get_attr($res)) {

if (!is_array($resa)) {
printf("Error getting attribute: %s\n", radius_strerror($res));
exit;
}

$attr = $resa['attr'];
$data = $resa['data'];
printf("Got Attr:%d %d Bytes %s\n", $attr, strlen($data), bin2hex($data));
}
?>

Veja Também

  • radius_put_attr() - Attaches a binary attribute
  • radius_get_vendor_attr() - Extracts a vendor specific attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute
  • radius_send_request() - Sends the request and waits for a reply


Extracts the data from a tagged attribute

  • « radius_get_attr
  • radius_get_tagged_attr_tag »
  • PHP Manual
  • Radius Funções
  • Extracts the data from a tagged attribute

radius_get_tagged_attr_data

(PECL radius >= 1.3.0)

radius_get_tagged_attr_data — Extracts the data from a tagged attribute

Descrição

radius_get_tagged_attr_data(string $data): string|false

If a tagged attribute has been returned from radius_get_attr(), radius_get_tagged_attr_data() will return the data from the attribute.

Parâmetros

data

The tagged attribute to be decoded.

Valor Retornado

Returns the data from the tagged attribute ou false em caso de falha.

Exemplos

Exemplo #1 radius_get_tagged_attr_data() example

<?php
while ($resa = radius_get_attr($res)) {
if (!is_array($resa)) {
printf ("Error getting attribute: %s\n", radius_strerror($res));
exit;
}

$attr = $resa['attr'];
$data = $resa['data'];

$tag = radius_get_tagged_attr_tag($data);
$value = radius_get_tagged_attr_data($data);

printf("Got tagged attribute with tag %d and value %s\n", $tag, $value);
}
?>

Veja Também

  • radius_get_attr() - Extracts an attribute
  • radius_get_tagged_attr_tag() - Extracts the tag from a tagged attribute


Extracts the tag from a tagged attribute

  • « radius_get_tagged_attr_data
  • radius_get_vendor_attr »
  • PHP Manual
  • Radius Funções
  • Extracts the tag from a tagged attribute

radius_get_tagged_attr_tag

(PECL radius >= 1.3.0)

radius_get_tagged_attr_tag — Extracts the tag from a tagged attribute

Descrição

radius_get_tagged_attr_tag(string $data): int|false

If a tagged attribute has been returned from radius_get_attr(), radius_get_tagged_attr_data() will return the tag from the attribute.

Parâmetros

data

The tagged attribute to be decoded.

Valor Retornado

Returns the tag from the tagged attribute ou false em caso de falha.

Exemplos

Exemplo #1 radius_get_tagged_attr_tag() example

<?php
while ($resa = radius_get_attr($res)) {
if (!is_array($resa)) {
printf ("Error getting attribute: %s\n", radius_strerror($res));
exit;
}

$attr = $resa['attr'];
$data = $resa['data'];

$tag = radius_get_tagged_attr_tag($data);
$value = radius_get_tagged_attr_data($data);

printf("Got tagged attribute with tag %d and value %s\n", $tag, $value);
}
?>

Veja Também

  • radius_get_attr() - Extracts an attribute
  • radius_get_tagged_attr_data() - Extracts the data from a tagged attribute


Extracts a vendor specific attribute

  • « radius_get_tagged_attr_tag
  • radius_put_addr »
  • PHP Manual
  • Radius Funções
  • Extracts a vendor specific attribute

radius_get_vendor_attr

(PECL radius >= 1.1.0)

radius_get_vendor_attr — Extracts a vendor specific attribute

Descrição

radius_get_vendor_attr(string $data): array

If radius_get_attr() returns RADIUS_VENDOR_SPECIFIC, radius_get_vendor_attr() may be called to determine the vendor.

Parâmetros

data

Input data

Valor Retornado

Returns an associative array containing the attribute-type, vendor and the data, or false on error.

Exemplos

Exemplo #1 radius_get_vendor_attr() example

<?php
while ($resa = radius_get_attr($res)) {

if (!is_array($resa)) {
printf ("Error getting attribute: %s\n", radius_strerror($res));
exit;
}

$attr = $resa['attr'];
$data = $resa['data'];
printf("Got Attr:%d %d Bytes %s\n", $attr, strlen($data), bin2hex($data));
if ($attr == RADIUS_VENDOR_SPECIFIC) {

$resv = radius_get_vendor_attr($data);
if (is_array($resv)) {
$vendor = $resv['vendor'];
$attrv = $resv['attr'];
$datav = $resv['data'];
printf("Got Vendor Attr:%d %d Bytes %s\n", $attrv, strlen($datav), bin2hex($datav));
}

}
}
?>

Veja Também

  • radius_get_attr() - Extracts an attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute


Attaches an IP address attribute

  • « radius_get_vendor_attr
  • radius_put_attr »
  • PHP Manual
  • Radius Funções
  • Attaches an IP address attribute

radius_put_addr

(PECL radius >= 1.1.0)

radius_put_addr — Attaches an IP address attribute

Descrição

radius_put_addr(
resource $radius_handle,
int $type,
string $addr,
int $options = 0,
int $tag = ?
): bool

Attaches an IP address attribute to the current RADIUS request.

Nota:

Uma requisição deve ser criada por meio de radius_create_request() antes que esta função possa ser chamada.

Parâmetros

radius_handle

O resource RADIUS.

type

O tipo de atributo.

addr

An IPv4 address in string form, such as 10.0.0.1.

options

Uma máscara de bits das opções de atributo. As opções disponíveis incluem RADIUS_OPTION_TAGGED e RADIUS_OPTION_SALT.

tag

A tag de atributo. Este parâmetro é ignorado, a menos que a opção RADIUS_OPTION_TAGGED esteja definida.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL radius 1.3.0 | The options and tag parameters were added.


Attaches a binary attribute

  • « radius_put_addr
  • radius_put_int »
  • PHP Manual
  • Radius Funções
  • Attaches a binary attribute

radius_put_attr

(PECL radius >= 1.1.0)

radius_put_attr — Attaches a binary attribute

Descrição

radius_put_attr(
resource $radius_handle,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

Attaches a binary attribute to the current RADIUS request.

Nota:

Uma requisição deve ser criada por meio de radius_create_request() antes que esta função possa ser chamada.

Parâmetros

radius_handle

O resource RADIUS.

type

O tipo de atributo.

value

The attribute value, which will be treated as a raw binary string.

options

Uma máscara de bits das opções de atributo. As opções disponíveis incluem RADIUS_OPTION_TAGGED e RADIUS_OPTION_SALT.

tag

A tag de atributo. Este parâmetro é ignorado, a menos que a opção RADIUS_OPTION_TAGGED esteja definida.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL radius 1.3.0 | The options and tag parameters were added.

Exemplos

Exemplo #1 radius_put_attr() example

<?php
mt_srand(time());
$chall = mt_rand();
$chapval = md5(pack('Ca*',1 , 'sepp' . $chall));
$pass = pack('CH*', 1, $chapval);
if (!radius_put_attr($res, RADIUS_CHAP_PASSWORD, $pass)) {
echo 'RadiusError:' . radius_strerror($res). "\n<br />";
exit;
}
?>

Veja Também

  • radius_get_attr() - Extracts an attribute
  • radius_get_vendor_attr() - Extracts a vendor specific attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute


Attaches an integer attribute

  • « radius_put_attr
  • radius_put_string »
  • PHP Manual
  • Radius Funções
  • Attaches an integer attribute

radius_put_int

(PECL radius >= 1.1.0)

radius_put_int — Attaches an integer attribute

Descrição

radius_put_int(
resource $radius_handle,
int $type,
int $value,
int $options = 0,
int $tag = ?
): bool

Attaches an integer attribute to the current RADIUS request.

Nota:

Uma requisição deve ser criada por meio de radius_create_request() antes que esta função possa ser chamada.

Parâmetros

radius_handle

O resource RADIUS.

type

O tipo de atributo.

value

The attribute value.

options

Uma máscara de bits das opções de atributo. As opções disponíveis incluem RADIUS_OPTION_TAGGED e RADIUS_OPTION_SALT.

tag

A tag de atributo. Este parâmetro é ignorado, a menos que a opção RADIUS_OPTION_TAGGED esteja definida.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL radius 1.3.0 | The options and tag parameters were added.

Exemplos

Exemplo #1 radius_put_int() example

<?php
if (!radius_put_int($res, RAD_FRAMED_PROTOCOL, RAD_PPP)) {
echo 'RadiusError:' . radius_strerror($res). "\n<br />";
exit;
}
?>

Veja Também

  • radius_put_string() - Attaches a string attribute
  • radius_put_vendor_int() - Attaches a vendor specific integer attribute
  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a string attribute

  • « radius_put_int
  • radius_put_vendor_addr »
  • PHP Manual
  • Radius Funções
  • Attaches a string attribute

radius_put_string

(PECL radius >= 1.1.0)

radius_put_string — Attaches a string attribute

Descrição

radius_put_string(
resource $radius_handle,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

Attaches a string attribute to the current RADIUS request. In general, radius_put_attr() is a more useful function for attaching string attributes, as it is binary safe.

Nota:

Uma requisição deve ser criada por meio de radius_create_request() antes que esta função possa ser chamada.

Parâmetros

radius_handle

O resource RADIUS.

type

O tipo de atributo.

value

The attribute value. This value is expected by the underlying library to be null terminated, therefore this parameter is not binary safe.

options

Uma máscara de bits das opções de atributo. As opções disponíveis incluem RADIUS_OPTION_TAGGED e RADIUS_OPTION_SALT.

tag

A tag de atributo. Este parâmetro é ignorado, a menos que a opção RADIUS_OPTION_TAGGED esteja definida.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL radius 1.3.0 | The options and tag parameters were added.

Exemplos

Exemplo #1 radius_put_string() example

<?php
if (!radius_put_string($res, RADIUS_USER_NAME, 'billy')) {
echo 'RadiusError:' . radius_strerror($res). "\n<br />";
exit;
}
?>

Veja Também

  • radius_put_int() - Attaches an integer attribute
  • radius_put_vendor_int() - Attaches a vendor specific integer attribute
  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a vendor specific IP address attribute

  • « radius_put_string
  • radius_put_vendor_attr »
  • PHP Manual
  • Radius Funções
  • Attaches a vendor specific IP address attribute

radius_put_vendor_addr

(PECL radius >= 1.1.0)

radius_put_vendor_addr — Attaches a vendor specific IP address attribute

Descrição

radius_put_vendor_addr(
resource $radius_handle,
int $vendor,
int $type,
string $addr
): bool

Attaches an IP address vendor specific attribute to the current RADIUS request.

Nota:

Uma requisição deve ser criada por meio de radius_create_request() antes que esta função possa ser chamada.

Parâmetros

radius_handle

O resource RADIUS.

vendor

O ID do fornecedor.

type

O tipo de atributo.

addr

An IPv4 address in string form, such as 10.0.0.1.

options

Uma máscara de bits das opções de atributo. As opções disponíveis incluem RADIUS_OPTION_TAGGED e RADIUS_OPTION_SALT.

tag

A tag de atributo. Este parâmetro é ignorado, a menos que a opção RADIUS_OPTION_TAGGED esteja definida.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL radius 1.3.0 | The options and tag parameters were added.


Attaches a vendor specific binary attribute

  • « radius_put_vendor_addr
  • radius_put_vendor_int »
  • PHP Manual
  • Radius Funções
  • Attaches a vendor specific binary attribute

radius_put_vendor_attr

(PECL radius >= 1.1.0)

radius_put_vendor_attr — Attaches a vendor specific binary attribute

Descrição

radius_put_vendor_attr(
resource $radius_handle,
int $vendor,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

Attaches a vendor specific binary attribute to the current RADIUS request.

Nota:

Uma requisição deve ser criada por meio de radius_create_request() antes que esta função possa ser chamada.

Parâmetros

radius_handle

O resource RADIUS.

vendor

O ID do fornecedor.

type

O tipo de atributo.

value

The attribute value, which will be treated as a raw binary string.

options

Uma máscara de bits das opções de atributo. As opções disponíveis incluem RADIUS_OPTION_TAGGED e RADIUS_OPTION_SALT.

tag

A tag de atributo. Este parâmetro é ignorado, a menos que a opção RADIUS_OPTION_TAGGED esteja definida.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL radius 1.3.0 | The options and tag parameters were added.

Exemplos

Exemplo #1 radius_put_vendor_attr() example

<?php
if (!radius_put_vendor_attr($res, RADIUS_VENDOR_MICROSOFT, RAD_MICROSOFT_MS_CHAP_CHALLENGE, $challenge)) {
echo 'RadiusError:' . radius_strerror($res). "\n<br />";
exit;
}
?>

Veja Também

  • radius_get_vendor_attr() - Extracts a vendor specific attribute


Attaches a vendor specific integer attribute

  • « radius_put_vendor_attr
  • radius_put_vendor_string »
  • PHP Manual
  • Radius Funções
  • Attaches a vendor specific integer attribute

radius_put_vendor_int

(PECL radius >= 1.1.0)

radius_put_vendor_int — Attaches a vendor specific integer attribute

Descrição

radius_put_vendor_int(
resource $radius_handle,
int $vendor,
int $type,
int $value,
int $options = 0,
int $tag = ?
): bool

Attaches a vendor specific integer attribute to the current RADIUS request.

Nota:

Uma requisição deve ser criada por meio de radius_create_request() antes que esta função possa ser chamada.

Parâmetros

radius_handle

O resource RADIUS.

vendor

O ID do fornecedor.

type

O tipo de atributo.

value

The attribute value.

options

Uma máscara de bits das opções de atributo. As opções disponíveis incluem RADIUS_OPTION_TAGGED e RADIUS_OPTION_SALT.

tag

A tag de atributo. Este parâmetro é ignorado, a menos que a opção RADIUS_OPTION_TAGGED esteja definida.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL radius 1.3.0 | The options and tag parameters were added.

Veja Também

  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a vendor specific string attribute

  • « radius_put_vendor_int
  • radius_request_authenticator »
  • PHP Manual
  • Radius Funções
  • Attaches a vendor specific string attribute

radius_put_vendor_string

(PECL radius >= 1.1.0)

radius_put_vendor_string — Attaches a vendor specific string attribute

Descrição

radius_put_vendor_string(
resource $radius_handle,
int $vendor,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

Attaches a vendor specific string attribute to the current RADIUS request. In general, radius_put_vendor_attr() is a more useful function for attaching string attributes, as it is binary safe.

Nota:

Uma requisição deve ser criada por meio de radius_create_request() antes que esta função possa ser chamada.

Parâmetros

radius_handle

O resource RADIUS.

vendor

O ID do fornecedor.

type

O tipo de atributo.

value

The attribute value. This value is expected by the underlying library to be null terminated, therefore this parameter is not binary safe.

options

Uma máscara de bits das opções de atributo. As opções disponíveis incluem RADIUS_OPTION_TAGGED e RADIUS_OPTION_SALT.

tag

A tag de atributo. Este parâmetro é ignorado, a menos que a opção RADIUS_OPTION_TAGGED esteja definida.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL radius 1.3.0 | The options and tag parameters were added.

Veja Também

  • radius_put_vendor_int() - Attaches a vendor specific integer attribute


Returns the request authenticator

  • « radius_put_vendor_string
  • radius_salt_encrypt_attr »
  • PHP Manual
  • Radius Funções
  • Returns the request authenticator

radius_request_authenticator

(PECL radius >= 1.1.0)

radius_request_authenticator — Returns the request authenticator

Descrição

radius_request_authenticator(resource $radius_handle): string

The request authenticator is needed for demangling mangled data like passwords and encryption-keys.

Parâmetros

radius_handle

O resource RADIUS.

Valor Retornado

Returns the request authenticator as string, or false on error.

Veja Também

  • radius_demangle() - Demangles data


Salt-encrypts a value

  • « radius_request_authenticator
  • radius_send_request »
  • PHP Manual
  • Radius Funções
  • Salt-encrypts a value

radius_salt_encrypt_attr

(PECL radius >= 1.3.0)

radius_salt_encrypt_attr — Salt-encrypts a value

Descrição

radius_salt_encrypt_attr(resource $radius_handle, string $data): string|false

Applies the RADIUS salt-encryption algorithm to the given value.

In general, this is achieved automatically by providing the RADIUS_OPTION_SALT option to an attribute setter function, but this function can be used if low-level request construction is required.

Parâmetros

data

The data to be salt-encrypted.

Valor Retornado

Returns the salt-encrypted data ou false em caso de falha.

Veja Também

  • radius_put_addr() - Attaches an IP address attribute
  • radius_put_attr() - Attaches a binary attribute
  • radius_put_int() - Attaches an integer attribute
  • radius_put_string() - Attaches a string attribute


Sends the request and waits for a reply

  • « radius_salt_encrypt_attr
  • radius_server_secret »
  • PHP Manual
  • Radius Funções
  • Sends the request and waits for a reply

radius_send_request

(PECL radius >= 1.1.0)

radius_send_request — Sends the request and waits for a reply

Descrição

radius_send_request(resource $radius_handle): int

After the Radius request has been constructed, it is sent by radius_send_request().

The radius_send_request() function sends the request and waits for a valid reply, retrying the defined servers in round-robin fashion as necessary.

Parâmetros

radius_handle

O resource RADIUS.

Valor Retornado

If a valid response is received, radius_send_request() returns the Radius code which specifies the type of the response. This will typically be RADIUS_ACCESS_ACCEPT, RADIUS_ACCESS_REJECT, or RADIUS_ACCESS_CHALLENGE. If no valid response is received, radius_send_request() returns false.

Veja Também

  • radius_create_request() - Create accounting or authentication request


Returns the shared secret

  • « radius_send_request
  • radius_strerror »
  • PHP Manual
  • Radius Funções
  • Returns the shared secret

radius_server_secret

(PECL radius >= 1.1.0)

radius_server_secret — Returns the shared secret

Descrição

radius_server_secret(resource $radius_handle): string

The shared secret is needed as salt for demangling mangled data like passwords and encryption-keys.

Parâmetros

radius_handle

O resource RADIUS.

Valor Retornado

Returns the server's shared secret as string, or false on error.


Returns an error message

  • « radius_server_secret
  • Extensões Específicas para Linha de Comando »
  • PHP Manual
  • Radius Funções
  • Returns an error message

radius_strerror

(PECL radius >= 1.1.0)

radius_strerror — Returns an error message

Descrição

radius_strerror(resource $radius_handle): string

If Radius-functions fail then they record an error message. This error message can be retrieved with this function.

Parâmetros

radius_handle

O resource RADIUS.

Valor Retornado

Returns error messages as string from failed radius functions.


Extensões Específicas para Linha de Comando

  • Readline — GNU Readline
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções da extensão Readline


GNU Readline

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções da extensão Readline
    • readline_add_history — Adiciona uma linha ao histórico
    • readline_callback_handler_install — Inicializa a interface de chamada de retorno e o terminal de readline, mostra o prompt e retorna imediatamente
    • readline_callback_handler_remove — Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do terminal
    • readline_callback_read_char — Lê um caractere e informa a interface de chamada de retorno de readline quando uma linha é recebida
    • readline_clear_history — Limpa o histórico
    • readline_completion_function — Registra uma função de completamento
    • readline_info — Obtém/Define várias variáveis internas de readline
    • readline_list_history — Lista o histórico
    • readline_on_new_line — Informa à readline que o cursor se moveu para uma nova linha
    • readline_read_history — Lê o histórico
    • readline_redisplay — Redesenha a tela
    • readline_write_history — Grava o histórico
    • readline — Lê uma linha


Introdução

As funções readline implementam uma interface para a biblioteca GNU Readline. Estas são funções que fornecem linhas de comando editáveis. Um exeplo é a maneira que o Bash permite usar as teclas de setas para inserir caracteres ou navegar pelo histórico dos comandos. Por causa da naturesa interativa desta biblioteca, ela será de pouco uso para escrever aplicações Web, mas pode ser util ao escrever scripts usados a partir de uma linha de comando.

A partir do PHP 7.1.0 esta extensão é suportada no Windows.

Cuidado

A extensão readline não é segura para threads! Portanto, o uso dela com qualquer SAPI verdadeiramente segura para threads (como mod_winnt do Apache) é fortemente desencorajado.


Dependências

Para usar as funções readline, é necessário instalar a libreadline. Pode-se encontrar a libreadline na página do projeto Readline GNU, em » http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. É mantida por Chet Ramey, que também é o autor do Bash.

Pode-se também utilizar estas funções com a biblioteca libedit, uma substituição não-GPL para a biblioteca readline. A biblioteca libedit está sob a licença BSD e encontra-se disponível em » http://www.thrysoee.dk/editline/.


Instalação

Para usar estas funções deve-se compilar as versões CGI ou CLI do PHP com suporte à readline. É necessário configurar o PHP com --with-readline[=DIR]. Para usar a libedit que substitui a extensão readline, configure o PHP com --with-libedit[=DIR].

No Windows, esta extensão está disponível por padrão a partir do PHP 7.1.0.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração da extensão Readline
Nome | Padrão | Modificável | Registro de Alterações
cli.pager | "" | INI_ALL |
cli.prompt | "\\b \\> " | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

cli.pager string

Ferramenta externa para mostrar a saída da linha de comando.

cli.prompt string

Prompt da linha de comando.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

READLINE_LIB (string)
A biblioteca que é usada para suporte à readline; atualmente pode ser readline ou libedit.


Funções da extensão Readline

Índice

  • readline_add_history — Adiciona uma linha ao histórico
  • readline_callback_handler_install — Inicializa a interface de chamada de retorno e o terminal de readline, mostra o prompt e retorna imediatamente
  • readline_callback_handler_remove — Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do terminal
  • readline_callback_read_char — Lê um caractere e informa a interface de chamada de retorno de readline quando uma linha é recebida
  • readline_clear_history — Limpa o histórico
  • readline_completion_function — Registra uma função de completamento
  • readline_info — Obtém/Define várias variáveis internas de readline
  • readline_list_history — Lista o histórico
  • readline_on_new_line — Informa à readline que o cursor se moveu para uma nova linha
  • readline_read_history — Lê o histórico
  • readline_redisplay — Redesenha a tela
  • readline_write_history — Grava o histórico
  • readline — Lê uma linha


Adiciona uma linha ao histórico

  • « Funções da extensão Readline
  • readline_callback_handler_install »
  • PHP Manual
  • Funções da extensão Readline
  • Adiciona uma linha ao histórico

readline_add_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_add_history — Adiciona uma linha ao histórico

Descrição

readline_add_history(string $prompt): bool

Esta função adiciona uma linha ao histórico da linha de comando.

Parâmetros

prompt

A linha a ser adicionada ao histórico.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Inicializa a interface de chamada de retorno e o terminal de readline, mostra o prompt e retorna imediatamente

  • « readline_add_history
  • readline_callback_handler_remove »
  • PHP Manual
  • Funções da extensão Readline
  • Inicializa a interface de chamada de retorno e o terminal de readline, mostra o prompt e retorna imediatamente

readline_callback_handler_install

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_callback_handler_install — Inicializa a interface de chamada de retorno e o terminal de readline, mostra o prompt e retorna imediatamente

Descrição

readline_callback_handler_install(string $prompt, callable $callback): bool

Configura uma interface de chamada de retorno readline, mostra o prompt e retorna imediatamente. Chamar esta função duas vezes sem remover a interface de chamada anterior irá automaticamente e convenientemente sobrescrever a interface antiga.

O recurso de chamada de retorno é útil quando combinada com stream_select() já que permite as it allows intercalação de E/S e de entrada de usuário, diferentemente da função readline().

Parâmetros

prompt

A mensagem do prompt.

callback

A função definida em callback leva um parâmetro; a entrada do usuário retornada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de Interface de Chamada de Retorno de Readline

<?php
function rl_callback($ret)
{
global $c, $prompting;

echo "Você digitou: $ret\n";
$c++;

if ($c > 10) {
$prompting = false;
readline_callback_handler_remove();
} else {
readline_callback_handler_install("[$c] Digite algo: ", 'rl_callback');
}
}

$c = 1;
$prompting = true;

readline_callback_handler_install("[$c] Digite algo: ", 'rl_callback');

while ($prompting) {
$w = NULL;
$e = NULL;
$n = stream_select($r = array(STDIN), $w, $e, null);
if ($n && in_array(STDIN, $r)) {
// lê um caractere, irá chamar a função de retorno quando uma nova linha for lida
readline_callback_read_char();
}
}

echo "Prompt desabilitado. Tudo pronto.\n";
?>

Veja Também

  • readline_callback_handler_remove() - Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do terminal
  • readline_callback_read_char() - Lê um caractere e informa a interface de chamada de retorno de readline quando uma linha é recebida
  • stream_select() - Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos


Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do terminal

  • « readline_callback_handler_install
  • readline_callback_read_char »
  • PHP Manual
  • Funções da extensão Readline
  • Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do terminal

readline_callback_handler_remove

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_callback_handler_remove — Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do terminal

Descrição

readline_callback_handler_remove(): bool

Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do terminal.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o manipulador de chamada de retorno previamente instalado for removido, ou false se ele não puder ser encontrado.

Exemplos

Consulte readline_callback_handler_install() para um exemplo de como usar a interface de chamada de retorno de readline.

Veja Também

  • readline_callback_handler_install() - Inicializa a interface de chamada de retorno e o terminal de readline, mostra o prompt e retorna imediatamente
  • readline_callback_read_char() - Lê um caractere e informa a interface de chamada de retorno de readline quando uma linha é recebida


Lê um caractere e informa a interface de chamada de retorno de readline quando uma linha é recebida

  • « readline_callback_handler_remove
  • readline_clear_history »
  • PHP Manual
  • Funções da extensão Readline
  • Lê um caractere e informa a interface de chamada de retorno de readline quando uma linha é recebida

readline_callback_read_char

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_callback_read_char — Lê um caractere e informa a interface de chamada de retorno de readline quando uma linha é recebida

Descrição

readline_callback_read_char(): void

Lê um caractere de entrada do usuário. Quando uma linha é recebida, esta função informa a interface de chamada de retorno de readline, instalada usando readline_callback_handler_install(), que uma linha está pronta para entrada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Consulte readline_callback_handler_install() para um exemplo de como usar a interface de chamada de retorno de readline.

Veja Também

  • readline_callback_handler_install() - Inicializa a interface de chamada de retorno e o terminal de readline, mostra o prompt e retorna imediatamente
  • readline_callback_handler_remove() - Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do terminal


Limpa o histórico

  • « readline_callback_read_char
  • readline_completion_function »
  • PHP Manual
  • Funções da extensão Readline
  • Limpa o histórico

readline_clear_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_clear_history — Limpa o histórico

Descrição

readline_clear_history(): bool

Esta função limpa todo o histórico da linha de comando.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Registra uma função de completamento

  • « readline_clear_history
  • readline_info »
  • PHP Manual
  • Funções da extensão Readline
  • Registra uma função de completamento

readline_completion_function

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_completion_function — Registra uma função de completamento

Descrição

readline_completion_function(callable $callback): bool

Esta função registra uma função de completamento. Este é o mesmo tipo de funcionamento ao pressionar a tecla de tabulação enquanto estiver usando o Bash.

Parâmetros

callback

Deve-se usar o nome de uma função existente que aceite uma linha de comando parcial e retorne uma matriz de combinações possíveis.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Obtém/Define várias variáveis internas de readline

  • « readline_completion_function
  • readline_list_history »
  • PHP Manual
  • Funções da extensão Readline
  • Obtém/Define várias variáveis internas de readline

readline_info

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_info — Obtém/Define várias variáveis internas de readline

Descrição

readline_info(?string $var_name = null, int|string|bool|null $value = null): mixed

Obtém ou define várias variáveis internas da readline.

Parâmetros

var_name

Um nome de variável.

value

Se fornecido, este será o novo valor.

Valor Retornado

Se for utilizada sem parâmetros, esta função retorna uma matriz de valores para as configurações que a readline usa. Os elementos serão indexados pelos seguintes valores: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name, e terminal_name. O array conterá apenas os elementos suportados pela biblioteca usada para construir a extensão readline.

Se for utilizada com um ou dois parâmetros, o antigo valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | var_name e value agora são anuláveis.


Lista o histórico

  • « readline_info
  • readline_on_new_line »
  • PHP Manual
  • Funções da extensão Readline
  • Lista o histórico

readline_list_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_list_history — Lista o histórico

Descrição

readline_list_history(): array

Obtém o histório completo da linha de comando.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array do histórico completo da linha de comando. Os elementos são indexados por inteiros iniciando de zero.


Informa à readline que o cursor se moveu para uma nova linha

  • « readline_list_history
  • readline_read_history »
  • PHP Manual
  • Funções da extensão Readline
  • Informa à readline que o cursor se moveu para uma nova linha

readline_on_new_line

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_on_new_line — Informa à readline que o cursor se moveu para uma nova linha

Descrição

readline_on_new_line(): void

Informa à readline que o cursor se moveu para uma nova linha.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Notas

Nota:

Esta função somente está disponível se suportada pela biblioteca readline subjacente. Não é suportada no Windows.


Lê o histórico

  • « readline_on_new_line
  • readline_redisplay »
  • PHP Manual
  • Funções da extensão Readline
  • Lê o histórico

readline_read_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_read_history — Lê o histórico

Descrição

readline_read_history(?string $filename = null): bool

Esta função lê o histórico de comandos de um arquivo.

Parâmetros

filename

Caminho para o nome do arquivo contendo o histórico de comando.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | filename é anulável agora.


Redesenha a tela

  • « readline_read_history
  • readline_write_history »
  • PHP Manual
  • Funções da extensão Readline
  • Redesenha a tela

readline_redisplay

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_redisplay — Redesenha a tela

Descrição

readline_redisplay(): void

Redesenha readline para atualizar a tela.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Grava o histórico

  • « readline_redisplay
  • readline »
  • PHP Manual
  • Funções da extensão Readline
  • Grava o histórico

readline_write_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_write_history — Grava o histórico

Descrição

readline_write_history(?string $filename = null): bool

Esta função escreve o histórico dos comandos em um arquivo.

Parâmetros

filename

Caminho para salvar o arquivo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | filename é anulável agora.


Lê uma linha

  • « readline_write_history
  • Extensões de Arquivo e Compressão »
  • PHP Manual
  • Funções da extensão Readline
  • Lê uma linha

readline

(PHP 4, PHP 5, PHP 7, PHP 8)

readline — Lê uma linha

Descrição

readline(?string $prompt = null): string|false

Lê uma única linha do usuário. Esta linha precisa ser adicionada manualmente ao histórico usando readline_add_history().

Parâmetros

prompt

Pode-se especificar uma string que será o prompt para o usuário.

Valor Retornado

Retorna uma string do usuário. A linha retornada tem o caractere de nova linha removido do final. Se não houver mais dados para ler, então false é retornado.

Exemplos

Exemplo #1 readline()

<?php
// Obtém três comandos do usuário
for ($i=0; $i < 3; $i++) {
$line = readline("Command: ");
readline_add_history($line);
}

// Mostra o histórico
print_r(readline_list_history());

// Mostra as variáveis
print_r(readline_info());
?>


Extensões de Arquivo e Compressão

  • Bzip2
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Bzip2 Funções
  • LZF
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções da LZF
  • Phar
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Using Phar Archives
    • Creating Phar Archives
    • What makes a phar a phar and not a tar or a zip?
    • Phar — The Phar class
    • PharData — The PharData class
    • PharFileInfo — The PharFileInfo class
    • PharException — The PharException class
  • Rar — Rar Archiving
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Rar Funções
    • RarArchive — The RarArchive class
    • RarEntry — The RarEntry class
    • RarException — The RarException class
  • Zip
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • ZipArchive — A classe ZipArchive
    • Funções Zip
  • Zlib — Compressão Zlib
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções da Zlib
    • DeflateContext — A classe DeflateContext
    • InflateContext — A classe InflateContext


Bzip2

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Bzip2 Funções
    • bzclose — Fecha um ponteiro de arquivo bzip2
    • bzcompress — Comprime uma string em dados codificados com bzip2
    • bzdecompress — Descomprime dados codificados com bzip2
    • bzerrno — Retorna um número de erro da bzip2
    • bzerror — Retorna o número e string de erro do bzip2 em um array
    • bzerrstr — Retorna a string de erro do bzip2
    • bzflush — Sem efeitos
    • bzopen — Abre um arquivo comprimido com bzip2
    • bzread — Leitura binária segura de arquivo bzip2
    • bzwrite — Gravação binária segura em arquivo bzip2


Introdução

As funções para bzip2 são usadas para ler e escrever, de forma transparente, arquivos compactados do tipo bzip2 (.bz2).


Dependências

Este módulo utiliza as funções da biblioteca » bzip2 desenvolvida por Julian Seward. Este módulo requer bzip2/libbzip2 versão >= 1.0.x.


Instalação

O suporte a Bzip2 no PHP não está habilitado por padrão. A opção de configuração --with-bz2[=DIR] precisará ser usada ao compilar o PHP para habilitar o suporte a bzip2.


Tipos de Recurso

Esta extensão define um tipo de recurso (resource): um ponteiro para arquivo que identifica o arquivo bzip2 que está sendo usado.


  • « Tipos de Recurso
  • Exemplos »
  • PHP Manual
  • Bzip2
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Exemplos

Este exemplo abre um arquivo temporário e escreve uma string de test nele, e então mostra o conteúdo do arquivo.

Exemplo #1 Um exemplo simples 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
echo bzread($bz, 10);

// output until end of the file (or the next 1024 char) and close it.
echo bzread($bz);

bzclose($bz);

?>


Bzip2 Funções

Índice

  • bzclose — Fecha um ponteiro de arquivo bzip2
  • bzcompress — Comprime uma string em dados codificados com bzip2
  • bzdecompress — Descomprime dados codificados com bzip2
  • bzerrno — Retorna um número de erro da bzip2
  • bzerror — Retorna o número e string de erro do bzip2 em um array
  • bzerrstr — Retorna a string de erro do bzip2
  • bzflush — Sem efeitos
  • bzopen — Abre um arquivo comprimido com bzip2
  • bzread — Leitura binária segura de arquivo bzip2
  • bzwrite — Gravação binária segura em arquivo bzip2


Fecha um ponteiro de arquivo bzip2

  • « Bzip2 Funções
  • bzcompress »
  • PHP Manual
  • Bzip2 Funções
  • Fecha um ponteiro de arquivo bzip2

bzclose

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzclose — Fecha um ponteiro de arquivo bzip2

Descrição

bzclose(resource $bz): bool

Fecha o dado ponteiro de arquivo bzip2.

Parâmetros

bz

O ponteiro de arquivo. Ele precisa ser válido e precisa apontar para um arquivo devidamente aberto com sucesso por bzopen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • bzopen() - Abre um arquivo comprimido com bzip2


Comprime uma string em dados codificados com bzip2

  • « bzclose
  • bzdecompress »
  • PHP Manual
  • Bzip2 Funções
  • Comprime uma string em dados codificados com bzip2

bzcompress

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzcompress — Comprime uma string em dados codificados com bzip2

Descrição

bzcompress(string $data, int $block_size = 4, int $work_factor = 0): string|int

bzcompress() comprime a string fornecida e retorna-a como dados codificados com bzip2.

Parâmetros

data

A string a comprimir.

block_size

Especifica o tamanho de bloco usado durante a compressão e deve ser um número de 1 a 9, sendo 9 a melhor compressão mas usando mais recursos para fazê-la.

work_factor

Controla como a fase de compressão se comporta quando apresentada com o pior caso, dados de entrada altamente repetitivos. O valor pode ser entre 0 e 250, sendo 0 um caso especial.

Independente do parâmetro work_factor, a saída gerada é a mesma.

Valor Retornado

A string comprimida, ou um número de erro se um erro ocorrer..

Exemplos

Exemplo #1 Comprimindo dados

<?php
$str = "dado de exemplo";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>

Veja Também

  • bzdecompress() - Descomprime dados codificados com bzip2


Descomprime dados codificados com bzip2

  • « bzcompress
  • bzerrno »
  • PHP Manual
  • Bzip2 Funções
  • Descomprime dados codificados com bzip2

bzdecompress

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzdecompress — Descomprime dados codificados com bzip2

Descrição

bzdecompress(string $data, bool $use_less_memory = false): string|int|false

bzdecompress() descomprime a string fornecida que contém dados codificados com bzip2.

Parâmetros

data

A string a ser descomprimida.

use_less_memory

Se true, uma algoritmo alternativo de descompressão que usa menos memória será usado (o requisito máximo de memória baixa para um valor em torno de 2300K) mas trabalha com a metade da velocidade aproximadamente.

Consulte a » documentação bzip2 para mais informações sobre este recurso.

Valor Retornado

A string descomprimida, ou false ou um número de erro se um erro ocorrer.

Registro de Alterações

Versão | Descrição
8.0.0 | O tipo do parâmetro use_less_memory mudou de int para bool. Anteriormente, o valor padrão era 0.

Exemplos

Exemplo #1 Descomprimindo uma String

<?php
$start_str = "This is not an honest face?";
$bzstr = bzcompress($start_str);

echo "String Comprimida: ";
echo $bzstr;
echo "\n<br />\n";

$str = bzdecompress($bzstr);
echo "String Descomprimida: ";
echo $str;
echo "\n<br />\n";
?>

Veja Também

  • bzcompress() - Comprime uma string em dados codificados com bzip2


Retorna um número de erro da bzip2

  • « bzdecompress
  • bzerror »
  • PHP Manual
  • Bzip2 Funções
  • Retorna um número de erro da bzip2

bzerrno

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzerrno — Retorna um número de erro da bzip2

Descrição

bzerrno(resource $bz): int

Retorna o número do erro de qualquer erro da bzip2 retornado pelo ponteiro de arquivo fornecido.

Parâmetros

bz

O ponteiro do arquivo. Deve ser válido e apontar para um arquivo aberto com sucesso por bzopen().

Valor Retornado

Retorna o número do erro como um número inteiro.

Veja Também

  • bzerror() - Retorna o número e string de erro do bzip2 em um array
  • bzerrstr() - Retorna a string de erro do bzip2


Retorna o número e string de erro do bzip2 em um array

  • « bzerrno
  • bzerrstr »
  • PHP Manual
  • Bzip2 Funções
  • Retorna o número e string de erro do bzip2 em um array

bzerror

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzerror — Retorna o número e string de erro do bzip2 em um array

Descrição

bzerror(resource $bz): array

Retorna o número e string do erro de um erro da bzip2 retornado pelo dado ponteiro de arquivo.

Parâmetros

bz

O ponteiro do arquivo - Ele precisa ser válido e precisa apontar para um arquivo aberto com sucesso pela bzopen().

Valor Retornado

Retorna um array associativo, com o código de erro na entrada errno, e a mensagem de erro na entrada errstr.

Exemplos

Exemplo #1 Exemplo da bzerror()

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

Veja Também

  • bzerrno() - Retorna um número de erro da bzip2
  • bzerrstr() - Retorna a string de erro do bzip2


Retorna a string de erro do bzip2

  • « bzerror
  • bzflush »
  • PHP Manual
  • Bzip2 Funções
  • Retorna a string de erro do bzip2

bzerrstr

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzerrstr — Retorna a string de erro do bzip2

Descrição

bzerrstr(resource $bz): string

Obtém a string de erro de um erro da bzip2 retornado para um dado ponteiro de arquivo.

Parâmetros

bz

O ponteiro do arquivo. Ele precisa ser válido e precisa apontar para um arquivo aberto com sucesso pela bzopen().

Valor Retornado

Retorna uma string contendo a mensagem de erro.

Veja Também

  • bzerrno() - Retorna um número de erro da bzip2
  • bzerror() - Retorna o número e string de erro do bzip2 em um array


Sem efeitos

  • « bzerrstr
  • bzopen »
  • PHP Manual
  • Bzip2 Funções
  • Sem efeitos

bzflush

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzflush — Sem efeitos

Descrição

bzflush(resource $bz): bool

Força a escrita de todos os dados do bzip2 que estão em buffer para o ponteiro de arquivo bz, mas é implementado como uma função vazia na libbz2, e portanto não gera efeitos.

Parâmetros

bz

O ponteiro do arquivo. Ele precisa ser válido e precisa apontar para um arquivo aberto com sucesso por bzopen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • bzread() - Leitura binária segura de arquivo bzip2
  • bzwrite() - Gravação binária segura em arquivo bzip2


Abre um arquivo comprimido com bzip2

  • « bzflush
  • bzread »
  • PHP Manual
  • Bzip2 Funções
  • Abre um arquivo comprimido com bzip2

bzopen

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzopen — Abre um arquivo comprimido com bzip2

Descrição

bzopen(string|resource $file, string $mode): resource|false

bzopen() abre um arquivo bzip2 (.bz2) para leitura ou gravação.

Parâmetros

file

O nome do arquivo a abrir, ou um recurso de fluxo existente.

mode

Os modos 'r' (leitura), e 'w' (gravação) são suportados. Qualquer outro valor fará com que bzopen() retorne false.

Valor Retornado

Se a abertura falhar, bzopen() returna false, caso contrário retorna um ponteiro para o arquivo aberto.

Exemplos

Exemplo #1 Exemplo de bzopen()

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Não foi possível abrir $file para leitura");

bzclose($bz);

?>

Veja Também

  • bzclose() - Fecha um ponteiro de arquivo bzip2


Leitura binária segura de arquivo bzip2

  • « bzopen
  • bzwrite »
  • PHP Manual
  • Bzip2 Funções
  • Leitura binária segura de arquivo bzip2

bzread

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzread — Leitura binária segura de arquivo bzip2

Descrição

bzread(resource $bz, int $length = 1024): string|false

bzread() faz leitura de um ponteiro de arquivo bzip2 fornecido.

A leitura para quando o número de bytes (não comprimidos) informado em length tiver sido alcançado ou o final do arquivo, o que ocorrer primeiro.

Parâmetros

bz

O ponteiro do arquivo. Precisa ser válido e apontar para um arquivo aberto com sucesso pela função bzopen().

length

Se não especificado, a função bzread() lerá 1024 bytes (não comprimidos) de cada vez. Um máximo de 8192 bytes não comprimidos será lido de cada vez.

Valor Retornado

Retorna os dados descomprimidos, ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de bzread()

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Não foi possível abrir $file");

$decompressed_file = '';
while (!feof($bz)) {
$decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo "O conteúdo de $file é: <br />\n";
echo $decompressed_file;

?>

Veja Também

  • bzwrite() - Gravação binária segura em arquivo bzip2
  • feof() - Testa pelo fim-de-arquivo em um ponteiro de arquivo
  • bzopen() - Abre um arquivo comprimido com bzip2


Gravação binária segura em arquivo bzip2

  • « bzread
  • LZF »
  • PHP Manual
  • Bzip2 Funções
  • Gravação binária segura em arquivo bzip2

bzwrite

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzwrite — Gravação binária segura em arquivo bzip2

Descrição

bzwrite(resource $bz, string $data, ?int $length = null): int|false

bzwrite() escreve uma string no arquivo bzip2 informado.

Parâmetros

bz

O ponteiro do arquivo. Precisa ser válido e apontar a um arquivo aberto com sucesso por bzopen().

data

Os dados gravados.

length

Se fornecido, a gravação irá parar depois que os bytes (não comprimidos) informados em length tiverem sido escritos ou o final de data tiver sido alcançado, o que ocorrer primeiro.

Valor Retornado

Retorna o número de bytes gravados, ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.0.0 | length agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de bzwrite()

<?php
$str = "dados descomprimidos";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

Veja Também

  • bzread() - Leitura binária segura de arquivo bzip2
  • bzopen() - Abre um arquivo comprimido com bzip2


LZF

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções da LZF
    • lzf_compress — Compressão LZF
    • lzf_decompress — Descompressão LZF
    • lzf_optimized_for — Determina para quê a extensão LZF foi otimizada


Introdução

LZF é um algoritmo de compressão muito rápido, ideal para economizar espaço com um pequeno custo de velocidade. Ele pode ser otimizado para velocidade ou espaço em tempo de compilação. Esta extensão usa para suas operações a biblioteca » liblzf de Marc Lehmann.


Instalação

Esta extensão » PECL não é distribuída com o PHP. Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/lzf.

Para usar estas funções você precisa compilar PHP com suporte a lzf usando a opção de configuração --with-lzf[=DIR]. Você pode também passar --enable-lzf-better-compression para otimizar o LZF mais para espaço do que para velocidade.

Usuários Windows podem habilitar a php_lzf.dll no php.ini para usar estas funções. Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


  • « Tipos de Recurso
  • Funções da LZF »
  • PHP Manual
  • LZF
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Funções da LZF

Índice

  • lzf_compress — Compressão LZF
  • lzf_decompress — Descompressão LZF
  • lzf_optimized_for — Determina para quê a extensão LZF foi otimizada


Compressão LZF

  • « Funções da LZF
  • lzf_decompress »
  • PHP Manual
  • Funções da LZF
  • Compressão LZF

lzf_compress

(PECL lzf >= 0.1.0)

lzf_compress — Compressão LZF

Descrição

lzf_compress(string $data): string

lzf_compress() comprime a string data usando a codificação LZF.

Parâmetros

data

Retorna a string comprimida.

Valor Retornado

Retorna a informação comprimida ou false se um erro ocorreu.

Veja Também

  • lzf_decompress() - Descompressão LZF


Descompressão LZF

  • « lzf_compress
  • lzf_optimized_for »
  • PHP Manual
  • Funções da LZF
  • Descompressão LZF

lzf_decompress

(PECL lzf >= 0.1.0)

lzf_decompress — Descompressão LZF

Descrição

lzf_decompress(string $data): string

lzf_compress() descomprime a string informada em data que contém dados com codificação lzf.

Parâmetros

data

A string comprimida.

Valor Retornado

Retorna a informação descomprimida ou false se um erro ocorreu.

Veja Também

  • lzf_compress() - Compressão LZF


Determina para quê a extensão LZF foi otimizada

  • « lzf_decompress
  • Phar »
  • PHP Manual
  • Funções da LZF
  • Determina para quê a extensão LZF foi otimizada

lzf_optimized_for

(PECL lzf >= 1.0.0)

lzf_optimized_for — Determina para quê a extensão LZF foi otimizada

Descrição

lzf_optimized_for(): int

Determina para quê a extensão LZF foi otimizada durante a compilação.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna 1 se LZF foi otimizada para velocidade, 0 para compressão.


Phar

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Using Phar Archives
    • Using Phar Archives: Introduction
    • Using Phar Archives: the phar stream wrapper
    • Using Phar Archives: the Phar and PharData class
  • Creating Phar Archives
    • Creating Phar Archives: Introduction
  • What makes a phar a phar and not a tar or a zip?
    • Ingredients of all Phar archives, independent of file format
    • Phar file stub
    • Head-to-head comparison of Phar, Tar and Zip
    • Tar-based phars
    • Zip-based phars
    • Phar File Format
    • Global Phar bitmapped flags
    • Phar manifest file entry definition
    • Phar Signature format
  • Phar — The Phar class
    • Phar::addEmptyDir — Add an empty directory to the phar archive
    • Phar::addFile — Add a file from the filesystem to the phar archive
    • Phar::addFromString — Add a file from a string to the phar archive
    • Phar::apiVersion — Returns the api version
    • Phar::buildFromDirectory — Construct a phar archive from the files within a directory
    • Phar::buildFromIterator — Construct a phar archive from an iterator
    • Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2
    • Phar::canWrite — Returns whether phar extension supports writing and creating phars
    • Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression
    • Phar::compressFiles — Compresses all files in the current Phar archive
    • Phar::__construct — Construct a Phar archive object
    • Phar::convertToData — Convert a phar archive to a non-executable tar or zip file
    • Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format
    • Phar::copy — Copy a file internal to the phar archive to another new file within the phar
    • Phar::count — Returns the number of entries (files) in the Phar archive
    • Phar::createDefaultStub — Create a phar-file format specific stub
    • Phar::decompress — Decompresses the entire Phar archive
    • Phar::decompressFiles — Decompresses all files in the current Phar archive
    • Phar::delMetadata — Deletes the global metadata of the phar
    • Phar::delete — Delete a file within a phar archive
    • Phar::__destruct — Destructs a Phar archive object
    • Phar::extractTo — Extract the contents of a phar archive to a directory
    • Phar::getAlias — Get the alias for Phar
    • Phar::getMetadata — Returns phar archive meta-data
    • Phar::getModified — Return whether phar was modified
    • Phar::getPath — Get the real path to the Phar archive on disk
    • Phar::getSignature — Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
    • Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive
    • Phar::getSupportedCompression — Return array of supported compression algorithms
    • Phar::getSupportedSignatures — Return array of supported signature types
    • Phar::getVersion — Return version info of Phar archive
    • Phar::hasMetadata — Returns whether phar has global meta-data
    • Phar::interceptFileFuncs — Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
    • Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
    • Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
    • Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
    • Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename
    • Phar::isWritable — Returns true if the phar archive can be modified
    • Phar::loadPhar — Loads any phar archive with an alias
    • Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest
    • Phar::mount — Mount an external path or file to a virtual location within the phar archive
    • Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution
    • Phar::offsetExists — Determines whether a file exists in the phar
    • Phar::offsetGet — Gets a PharFileInfo object for a specific file
    • Phar::offsetSet — Set the contents of an internal file to those of an external file
    • Phar::offsetUnset — Remove a file from a phar
    • Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive
    • Phar::setAlias — Set the alias for the Phar archive
    • Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
    • Phar::setMetadata — Sets phar archive meta-data
    • Phar::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it
    • Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive
    • Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk
    • Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk
    • Phar::unlinkArchive — Completely remove a phar archive from disk and from memory
    • Phar::webPhar — Routes a request from a web browser to an internal file within the phar archive
  • PharData — The PharData class
    • PharData::addEmptyDir — Add an empty directory to the tar/zip archive
    • PharData::addFile — Add a file from the filesystem to the tar/zip archive
    • PharData::addFromString — Add a file from a string to the tar/zip archive
    • PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory
    • PharData::buildFromIterator — Construct a tar or zip archive from an iterator
    • PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression
    • PharData::compressFiles — Compresses all files in the current tar/zip archive
    • PharData::__construct — Construct a non-executable tar or zip archive object
    • PharData::convertToData — Convert a phar archive to a non-executable tar or zip file
    • PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
    • PharData::copy — Copy a file internal to the phar archive to another new file within the phar
    • PharData::decompress — Decompresses the entire Phar archive
    • PharData::decompressFiles — Decompresses all files in the current zip archive
    • PharData::delMetadata — Deletes the global metadata of a zip archive
    • PharData::delete — Delete a file within a tar/zip archive
    • PharData::__destruct — Destructs a non-executable tar or zip archive object
    • PharData::extractTo — Extract the contents of a tar/zip archive to a directory
    • PharData::isWritable — Returns true if the tar/zip archive can be modified
    • PharData::offsetSet — Set the contents of a file within the tar/zip to those of an external file or string
    • PharData::offsetUnset — Remove a file from a tar/zip archive
    • PharData::setAlias — Dummy function (Phar::setAlias is not valid for PharData)
    • PharData::setDefaultStub — Dummy function (Phar::setDefaultStub is not valid for PharData)
    • PharData::setMetadata — Sets phar archive meta-data
    • PharData::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it
    • PharData::setStub — Dummy function (Phar::setStub is not valid for PharData)
  • PharFileInfo — The PharFileInfo class
    • PharFileInfo::chmod — Sets file-specific permission bits
    • PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression
    • PharFileInfo::__construct — Construct a Phar entry object
    • PharFileInfo::decompress — Decompresses the current Phar entry within the phar
    • PharFileInfo::delMetadata — Deletes the metadata of the entry
    • PharFileInfo::__destruct — Destructs a Phar entry object
    • PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified
    • PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive
    • PharFileInfo::getContent — Get the complete file contents of the entry
    • PharFileInfo::getMetadata — Returns file-specific meta-data saved with a file
    • PharFileInfo::getPharFlags — Returns the Phar file entry flags
    • PharFileInfo::hasMetadata — Returns the metadata of the entry
    • PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified
    • PharFileInfo::isCompressed — Returns whether the entry is compressed
    • PharFileInfo::setMetadata — Sets file-specific meta-data saved with a file
  • PharException — The PharException class


Introdução

The phar extension provides a way to put entire PHP applications into a single file called a "phar" (PHP Archive) for easy distribution and installation. In addition to providing this service, the phar extension also provides a file-format abstraction method for creating and manipulating tar and zip files through the PharData class, much as PDO provides a unified interface for accessing different databases. Unlike PDO, which cannot convert between different databases, Phar also can convert between tar, zip and phar file formats with a single line of code. see Phar::convertToExecutable() for one example.

What is phar? Phar archives are best characterized as a convenient way to group several files into a single file. As such, a phar archive provides a way to distribute a complete PHP application in a single file and run it from that file without the need to extract it to disk. Additionally, phar archives can be executed by PHP as easily as any other file, both on the commandline and from a web server. Phar is kind of like a thumb drive for PHP applications.

Phar implements this functionality through a Stream Wrapper. Normally, to use an external file within a PHP script, you would use include:

Exemplo #1 Using an external file

<?php
include '/path/to/external/file.php';
?>

PHP can be thought of as actually translating /path/to/external/file.php into a stream wrapper as file:///path/to/external/file.php, and under the hood it does in fact use the plain file stream wrapper stream functions to access all local files.

To use a file named file.php contained with a phar archive /path/to/myphar.phar, the syntax is very similar to the file:// syntax above.

Exemplo #2 Using a file within a phar archive

<?php
include 'phar:///path/to/myphar.phar/file.php';
?>

In fact, one can treat a phar archive exactly as if it were an external disk, using any of fopen()-related functions, opendir() and mkdir()-related functions to read, change, or create new files and directories within the phar archive. This allows complete PHP applications to be distributed in a single file and run directly from that file.

The most common usage for a phar archive is to distribute a complete application in a single file. For instance, the PEAR Installer that is bundled with PHP versions is distributed as a phar archive. To use a phar archive distributed in this way, the archive can be executed on the command-line or via a web server.

Phar archives can be distributed as tar archives, zip archives, or as the custom phar file format designed specifically for the phar extension. Each file format has advantages and disadvantages. The tar and zip file formats can be read or extracted by any third-party tool that can read the format, but require the phar extension in order to run with PHP. The phar file format is customized and unique to the phar extension, and can only be created by the phar extension or the PEAR package » PHP_Archive, but has the advantage that applications created in this format will run even if the phar extension is not enabled.

In other words, even with the phar extension disabled, one can execute or include a phar-based archive. Accessing individual files within a phar archive is only possible with the phar extension unless the phar archive was created by PHP_Archive.

The phar extension is also capable of converting a phar archive from tar to zip or to phar file format in a single command:

Exemplo #3 Converting a phar archive from phar to tar file format

<?php
$phar = new Phar('myphar.phar');
$pgz = $phar->convertToExecutable(Phar::TAR, Phar::GZ); // makes myphar.phar.tar.gz
?>

Phar can compress individual files or an entire archive using gzip compression or bzip2 compression, and can verify archive integrity automatically through the use of MD5, SHA-1, SHA-256 or SHA-512 signatures.

Lastly, the Phar extension is security-conscious, and disables write access to executable phar archives by default, and requires system-level disabling of the phar.readonly php.ini setting in order to create or modify phar archives. Normal tar and zip archives without an executable stub can always be created or modified using the PharData class.

If you are creating applications for distribution, you will want to read How to create Phar Archives. If you want more information on the differences between the three file formats that phar supports, you should read Phar, Tar and Zip.

If you are using phar applications, there are helpful tips in How to use Phar Archives.

The word phar is a portmanteau of PHP and Archive and is based loosely on the jar (Java Archive) familiar to Java developers.

The implementation for Phar archives is based on the PEAR package » PHP_Archive, and the implementation details are similar, although the Phar extension is much more powerful. In addition, the Phar extension allows most PHP applications to be run unmodified while PHP_Archive-based phar archives often require extensive modification in order to work.


Dependências

You may optionally wish to enable the zlib and bzip2 extensions to take advantage of compressed phar support. In addition, to take advantage of OpenSSL signing, the OpenSSL extension must be enabled.

If zend.multibyte is enabled, zend.detect_unicode must be enabled as well.


Instalação

The Phar extension is bundled with PHP, and enabled by default. To disable Phar support, use --disable-phar.

Phar may be installed via the PECL extension with previous PHP versions, and the » Phar PECL page contains further information and history.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Filesystem and Streams Configuration Options
Nome | Padrão | Modificável | Registro de Alterações
phar.readonly | "1" | INI_ALL |
phar.require_hash | "1" | INI_ALL |
phar.cache_list | "" | INI_SYSTEM |

Aqui está uma breve explicação das diretivas de configuração.

phar.readonly bool

This option disables creation or modification of Phar archives using the phar stream or Phar object's write support. This setting should always be enabled on production machines, as the phar extension's convenient write support could allow straightforward creation of a php-based virus when coupled with other common security vulnerabilities.

Nota:

This setting can only be unset in php.ini due to security reasons. If phar.readonly is disabled in php.ini, the user may enable phar.readonly in a script or disable it later. If phar.readonly is enabled in php.ini, a script may harmlessly "re-enable" the INI variable, but may not disable it.

phar.require_hash bool

This option will force all opened Phar archives to contain some kind of signature (currently MD5, SHA1, SHA256, SHA512 and OpenSSL are supported), and will refuse to process any Phar archive that does not contain a signature.

Nota:

This setting can only be unset in php.ini. If phar.require_hash is disabled in php.ini, the user may enable phar.require_hash in a script or disable it later. If phar.require_hash is enabled in php.ini, a script may harmlessly "re-enable" the INI variable, but may not disable it.

This setting does not affect reading plain tar files with the PharData class.

Cuidado

phar.require_hash does not provide any security per se, it is merely a measure against running accidentially corrupted Phar archives, because anyone who would be able to tamper with the Phar could easily fix the signature afterwards.

phar.cache_list string

Allows mapping phar archives to be pre-parsed at web server startup, providing a performance improvement that brings running files out of a phar archive very close to the speed of running those files from a traditional disk-based installation.

Exemplo #1 phar.cache_list usage example

in php.ini (windows):
phar.cache_list =C:\path\to\phar1.phar;C:\path\to\phar2.phar
in php.ini (unix):
phar.cache_list =/path/to/phar1.phar:/path/to/phar2.phar


Tipos de Recurso

The Phar extension provides the phar stream, which allows accessing files contained within a phar transparently. See also the description of the Phar file format.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Phar compression constants
Constant | Value | Description
Phar::NONE (int) | 0x00000000 | no compression
Phar::COMPRESSED (int) | 0x0000F000 | bitmask that can be used with file flags to determine if any compression is present
Phar::GZ (int) | 0x00001000 | zlib (gzip) compression
Phar::BZ2 (int) | 0x00002000 | bzip2 compression
Phar file format constants
Constant | Value | Description
Phar::PHAR (int) | 1 | phar file format
Phar::TAR (int) | 2 | tar file format
Phar::ZIP (int) | 3 | zip file format
Phar signature constants
Constant | Value | Description
Phar::MD5 (int) | 0x0001 | signature with md5 hash algorithm
Phar::SHA1 (int) | 0x0002 | signature with sha1 hash algorithm
Phar::SHA256 (int) | 0x0003 | signature with sha256 hash algorithm (requires hash extension)
Phar::SHA512 (int) | 0x0004 | signature with sha512 hash algorithm (requires hash extension)
Phar::OPENSSL (int) | 0x0010 | signature with OpenSSL public/private key pair. This is a true, asymmetric key signature.
Phar::OPENSSL_SHA256 (int) |  |
Phar::OPENSSL_SHA512 (int) |  |
Phar webPhar mime override constants
Constant | Value | Description
Phar::PHP (int) | 0 | used to instruct the mimeoverrides parameter of Phar::webPhar() that the extension should be parsed as a PHP file
Phar::PHPS (int) | 1 | used to instruct the mimeoverrides parameter of Phar::webPhar() that the extension should be parsed as a PHP source file through highlight_file()


Using Phar Archives

Índice

  • Using Phar Archives: Introduction
  • Using Phar Archives: the phar stream wrapper
  • Using Phar Archives: the Phar and PharData class


Using Phar Archives: Introduction

Phar archives are similar in concept to Java JAR archives, but are tailored to the needs and to the flexibility of PHP applications. A Phar archive is used to distribute a complete PHP application or library in a single file. A Phar archive application is used exactly like any other PHP application:

php coolapplication.phar

Using a Phar archive library is identical to using any other PHP library:

<?php
include 'coollibrary.phar';
?>

The phar stream wrapper provides the core of the phar extension, and is explained in detail here. The phar stream wrapper allows accessing the files within a phar archive using PHP's standard file functions fopen(), opendir(), and others that work on regular files. The phar stream wrapper supports all read/write operations on both files and directories.

<?php
include 'phar://coollibrary.phar/internal/file.php';
header('Content-type: image/jpeg');
// phars can be accessed by full path or by alias
echo file_get_contents('phar:///fullpath/to/coollibrary.phar/images/wow.jpg');
?>

The Phar class implements advanced functionality for accessing files and for creating phar archives. The Phar class is explained in detail here.

<?php
try {
// open an existing phar
$p = new Phar('coollibrary.phar', 0);
// Phar extends SPL's DirectoryIterator class
foreach (new RecursiveIteratorIterator($p) as $file) {
// $file is a PharFileInfo class, and inherits from SplFileInfo
echo $file->getFileName() . "\n";
echo file_get_contents($file->getPathName()) . "\n"; // display contents;
}
if (isset($p['internal/file.php'])) {
var_dump($p['internal/file.php']->getMetadata());
}

// create a new phar - phar.readonly must be 0 in php.ini
// phar.readonly is enabled by default for security reasons.
// On production servers, Phars need never be created,
// only executed.
if (Phar::canWrite()) {
$p = new Phar('newphar.tar.phar', 0, 'newphar.tar.phar');
// make this a tar-based phar archive, compressed with gzip compression (.tar.gz)
$p = $p->convertToExecutable(Phar::TAR, Phar::GZ);

// create transaction - nothing is written to newphar.phar
// until stopBuffering() is called, although temporary storage is needed
$p->startBuffering();
// add all files in /path/to/project, saving in the phar with the prefix "project"
$p->buildFromIterator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/path/to/project')), '/path/to/');

// add a new file via the array access API
$p['file1.txt'] = 'Information';
$fp = fopen('hugefile.dat', 'rb');
// copy all data from the stream
$p['data/hugefile.dat'] = $fp;

if (Phar::canCompress(Phar::GZ)) {
$p['data/hugefile.dat']->compress(Phar::GZ);
}

$p['images/wow.jpg'] = file_get_contents('images/wow.jpg');
// any value can be saved as file-specific meta-data
$p['images/wow.jpg']->setMetadata(array('mime-type' => 'image/jpeg'));
$p['index.php'] = file_get_contents('index.php');
$p->setMetadata(array('bootstrap' => 'index.php'));

// save the phar archive to disk
$p->stopBuffering();
}
} catch (Exception $e) {
echo 'Could not open Phar: ', $e;
}
?>

In addition, verification of phar file contents can be done using any of the supported symmetric hash algorithms (MD5, SHA1, SHA256 and SHA512 if ext/hash is enabled) and using asymmetric public/private key signing using OpenSSL. To take advantage of OpenSSL signing, you need to generate a public/private key pair, and use the private key to set the signature using Phar::setSignatureAlgorithm(). In addition, the public key as extracted using this code:

<?php
$public = openssl_get_publickey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($public, $pkey);
?>
must be saved adjacent to the phar archive it verifies. If the phar archive is saved as /path/to/my.phar, the public key must be saved as /path/to/my.phar.pubkey, or phar will be unable to verify the OpenSSL signature.

The Phar class also provides 3 static methods, Phar::webPhar(), Phar::mungServer() and Phar::interceptFileFuncs() that are crucial to packaging up PHP applications designed for usage on regular filesystems and for web-based applications. Phar::webPhar() implements a front controller that routes HTTP calls to the correct location within the phar archive. Phar::mungServer() is used to modify the values of the $_SERVER array to trick applications that process these values. Phar::interceptFileFuncs() instructs Phar to intercept calls to fopen(), file_get_contents(), opendir(), and all of the stat-based functions (file_exists(), is_readable() and so on) and route all relative paths to locations within the phar archive.

As an example, packaging up a release of the popular phpMyAdmin application for use as a phar archive requires only this simple script and then phpMyAdmin.phar.tar.php can be accessed as a regular file from your web server after modifying the user/password:

<?php
@unlink('phpMyAdmin.phar.tar.php');
copy('phpMyAdmin-2.11.3-english.tar.gz', 'phpMyAdmin.phar.tar.php');
$a = new Phar('phpMyAdmin.phar.tar.php');
$a->startBuffering();
$a["phpMyAdmin-2.11.3-english/config.inc.php"] = '<?php
/* Servers configuration */
$i = 0;

/* Server localhost (config:root) [1] */
$i++;
$cfg[\'Servers\'][$i][\'host\'] = \'localhost\';
$cfg[\'Servers\'][$i][\'extension\'] = \'mysqli\';
$cfg[\'Servers\'][$i][\'connect_type\'] = \'tcp\';
$cfg[\'Servers\'][$i][\'compress\'] = false;
$cfg[\'Servers\'][$i][\'auth_type\'] = \'config\';
$cfg[\'Servers\'][$i][\'user\'] = \'root\';
$cfg[\'Servers\'][$i][\'password\'] = \'\';

/* End of servers configuration */
if (strpos(PHP_OS, \'WIN\') !== false) {
$cfg[\'UploadDir\'] = getcwd();
} else {
$cfg[\'UploadDir\'] = \'/tmp/pharphpmyadmin\';
@mkdir(\'/tmp/pharphpmyadmin\');
@chmod(\'/tmp/pharphpmyadmin\', 0777);
}';
$a->setStub('<?php
Phar::interceptFileFuncs();
Phar::webPhar("phpMyAdmin.phar", "phpMyAdmin-2.11.3-english/index.php");
echo "phpMyAdmin is intended to be executed from a web browser\n";
exit -1;
__HALT_COMPILER();
');
$a->stopBuffering();
?>


Using Phar Archives: the phar stream wrapper

The Phar stream wrapper fully supports fopen() for read and write (not append), unlink(), stat(), fstat(), fseek(), rename() and directory stream operations opendir() and rmdir() and mkdir().

Individual file compression and per-file metadata can also be manipulated in a Phar archive using stream contexts:

<?php
$context = stream_context_create(array('phar' =>
array('compress' => Phar::GZ)),
array('metadata' => array('user' => 'cellog')));
file_put_contents('phar://my.phar/somefile.php', 0, $context);
?>

The phar stream wrapper does not operate on remote files, and cannot operate on remote files, and so is allowed even when the allow_url_fopen and allow_url_include INI options are disabled.

Although it is possible to create phar archives from scratch just using stream operations, it is best to use the functionality built into the Phar class. The stream wrapper is best used for read-only operations.


Using Phar Archives: the Phar and PharData class

The Phar class supports reading and manipulation of Phar archives, as well as iteration through inherited functionality of the RecursiveDirectoryIterator class. With support for the ArrayAccess interface, files inside a Phar archive can be accessed as if they were part of an associative array.

The PharData class extends the Phar, and allows creating and modifying non-executable (data) tar and zip archives even if phar.readonly=1 in php.ini. As such, PharData::setAlias() and PharData::setStub() are both disabled as the concept of alias and stub are unique to executable phar archives.

It is important to note that when creating a Phar archive, the full path should be passed to the Phar object constructor. Relative paths will fail to initialize.

Assuming that $p is a Phar object initialized as follows:

<?php
$p = new Phar('/path/to/myphar.phar', 0, 'myphar.phar');
?>

An empty Phar archive will be created at /path/to/myphar.phar, or if /path/to/myphar.phar already exists, it will be opened again. The literal myphar.phar demonstrates the concept of an alias that can be used to reference /path/to/myphar.phar in URLs as in:

<?php
// these two calls to file_get_contents() are equivalent if
// /path/to/myphar.phar has an explicit alias of "myphar.phar"
// in its manifest, or if the phar was initialized with the
// previous example's Phar object setup
$f = file_get_contents('phar:///path/to/myphar.phar/whatever.txt');
$f = file_get_contents('phar://myphar.phar/whatever.txt');
?>

With the newly created $p Phar object, the following is possible:

  • $a = $p['file.php'] creates a PharFileInfo class that refers to the contents of phar://myphar.phar/file.php
  • $p['file.php'] = $v creates a new file (phar://myphar.phar/file.php), or overwrites an existing file within myphar.phar. $v can be either a string or an open file pointer, in which case the entire contents of the file will be used to create the new file. Note that $p->addFromString('file.php', $v) is functionally equivalent to the above. Also possible is to add the contents of a file with $p->addFile('/path/to/file.php', 'file.php'). Lastly, an empty directory can be created with $p->addEmptyDir('empty').
  • isset($p['file.php']) can be used to determine whether phar://myphar.phar/file.php exists within myphar.phar.
  • unset($p['file.php']) erases phar://myphar.phar/file.php from myphar.phar.

In addition, the Phar object is the only way to access Phar-specific metadata, through Phar::getMetadata(), and the only way to set or retrieve a Phar archive's PHP loader stub through Phar::getStub() and Phar::setStub(). Additionally, compression for the entire Phar archive at once can only be manipulated using the Phar class.

The full list of Phar object functionality is documented below.

The PharFileInfo class extends the SplFileInfo class, and adds several methods for manipulating Phar-specific details of a file contained within a Phar, such as manipulating compression and metadata.


  • « Using Phar Archives: the Phar and PharData class
  • Creating Phar Archives: Introduction »
  • PHP Manual
  • Phar
  • Creating Phar Archives

Creating Phar Archives

Índice

  • Creating Phar Archives: Introduction


Creating Phar Archives: Introduction

To be written fully in the near future. Before reading this, be sure to read How to use Phar Archives.

A great place to start is by reading about Phar::buildFromIterator(), and the specifics of the file format choices available for archives. A healthy understanding of what a stub is and does is crucial to phar archive creation, and so Phar::setStub() and Phar::createDefaultStub() are good places to start as well. If you are distributing a web-based application, it is crucial to know about Phar::webPhar() and related method Phar::mungServer(). Any application that accesses its own files should also consider using Phar::interceptFileFuncs().


What makes a phar a phar and not a tar or a zip?

Índice

  • Ingredients of all Phar archives, independent of file format
  • Phar file stub
  • Head-to-head comparison of Phar, Tar and Zip
  • Tar-based phars
  • Zip-based phars
  • Phar File Format
  • Global Phar bitmapped flags
  • Phar manifest file entry definition
  • Phar Signature format


Ingredients of all Phar archives, independent of file format

All Phar archives contain three to four sections:

  1. a stub

  2. a manifest describing the contents

  3. the file contents

  4. [optional] a signature for verifying Phar integrity (phar file format only)


Phar file stub

A Phar's stub is a simple PHP file. The smallest possible stub follows:

<?php __HALT_COMPILER();

A stub must contain as a minimum, the __HALT_COMPILER(); token at its conclusion. Typically, a stub will contain loader functionality like so:

<?php
Phar::mapPhar();
include 'phar://myphar.phar/index.php';
__HALT_COMPILER();

There are no restrictions on the contents of a Phar stub, except for the requirement that it conclude with __HALT_COMPILER();. The closing PHP tag

?>
may be included or omitted, but there can be no more than 1 space between the ; and the close tag
?>
 or the phar extension will be unable to process the Phar archive's manifest.

In a tar or zip-based phar archive, the stub is stored in the .phar/stub.php file. The default stub for phar-based Phar archives contains approximately 7k of code to extract the contents of the phar and execute them. See Phar::createDefaultStub() for more detail.

The phar alias is stored in a tar or zip-based phar archive in the .phar/alias.txt file as plain text.


Head-to-head comparison of Phar, Tar and Zip

What are the good and the bad things about the three supported file formats in the phar extension? This table attempts to address that question.

Feature matrix: Phar vs. Tar vs. Zip
Feature | Phar | Tar | Zip
Standard File Format | No | Yes | Yes
Can be executed without the Phar Extension [1] | Yes | No | No
Per-file compression | Yes | No | Yes
Whole-archive compression | Yes | Yes | No
Whole-archive signature validation | Yes | Yes | Yes
Web-specific application support | Yes | Yes | Yes
Per-file Meta-data | Yes | Yes | Yes
Whole-Archive Meta-data | Yes | Yes | Yes
Archive creation/modification [2] | Yes | Yes | Yes
Full support for all stream wrapper functions | Yes | Yes | Yes
Can be created/modified even if phar.readonly=1 [3] | No | Yes | Yes

Dica

[1] PHP can only directly access the contents of a Phar archive without the Phar extension if it is using a stub that extracts the contents of the phar archive. The stub created by Phar::createDefaultStub() extracts the phar archive and runs its contents from a temporary directory if no phar extension is found.

Dica

[2] All write access requires phar.readonly to be disabled in php.ini or on the command-line directly.

Dica

[3] Only tar and zip archives without .phar in their filename and without an executable stub .phar/stub.php can be created if phar.readonly=1.


Tar-based phars

Archives based on the tar file format follow the more modern USTAR file format. The design of the tar file header makes them more efficient to access than the zip file format, and almost as efficient as the phar file format. File names are limited to 255 bytes, including full path within the phar archive. There is no limit on the number of files within a tar-based phar archive. These archives can fully compressed in gzip or bzip2 format and still be executed by the Phar extension.

There is limited support for reading tarballs in pax interchange format, but all recognized pax headers (currently, typeflag x and g) are silently ignored. There is also limited support for GNU Tar Archives; currently, ././@LongLink headers are resolved.

To compress an entire archive, use Phar::compress(). To decompress an entire archive, use Phar::decompress().


Zip-based phars

Archives based on the zip file format support several features built into the zip file format. Per-file and whole-archive metadata is stored in the zip file comment and zip archive comment as a serialized string. Pre-existing zip comments will be successfully read as a string. Per-file compression read/write is supported with zlib DEFLATE compression, and read access is supported with bzip2 compression. There is no limit on the number of files within a zip-based phar archive. Empty directories are stored in the zip archive as files with a trailing slash like my/directory/


Phar File Format

The phar file format is literally laid out as stub/manifest/contents/signature, and stores the crucial information of what is included in the phar archive in its manifest.

The Phar manifest is a highly optimized format that allows per-file specification of file compression, file permissions, and even user-defined meta-data such as file user or group. All values greater than 1 byte are stored in little-endian byte order, with the exception of the API version, which for historical reasons is stored as 3 nibbles in big-endian order.

All unused flags are reserved for future use, and must not be used to store custom information. Use the per-file meta-data facility to store customized information about particular files.

The basic file format of a Phar archive manifest is as follows:

Global Phar manifest format
Size in bytes | Description
4 bytes | Length of manifest in bytes (1 MB limit)
4 bytes | Number of files in the Phar
2 bytes | API version of the Phar manifest (currently 1.0.0)
4 bytes | Global Phar bitmapped flags
4 bytes | Length of Phar alias
?? | Phar alias (length based on previous)
4 bytes | Length of Phar metadata (0 for none)
?? | Serialized Phar Meta-data, stored in serialize() format
at least 24 * number of entries bytes | entries for each file


Global Phar bitmapped flags

Here are the bitmapped flags currently recognized by the Phar extension for the global Phar flat bitmap:

Bitmap values recognized
Value | Description
0x00010000 | If set, this Phar contains a verification signature
0x00001000 | If set, this Phar contains at least 1 file that is compressed with zlib DEFLATE compression
0x00002000 | If set, this Phar contains at least 1 file that is compressed with bzip2 compression


Phar manifest file entry definition

Each file in the manifest contains the following information:

Phar Manifest file entry
Size in bytes | Description
4 bytes | Filename length in bytes
?? | Filename (length specified in previous)
4 bytes | Un-compressed file size in bytes
4 bytes | Unix timestamp of file
4 bytes | Compressed file size in bytes
4 bytes | CRC32 checksum of un-compressed file contents
4 bytes | Bit-mapped File-specific flags
4 bytes | Serialized File Meta-data length (0 for none)
?? | Serialized File Meta-data, stored in serialize() format

Note that as of API version 1.1.1, empty directories are stored as filenames with a trailing slash like my/directory/

The File-specific bitmap values recognized are:

Bitmap values recognized
Value | Description
0x000001FF | These bits are reserved for defining specific file permissions of a file. Permissions are used for fstat() and can be used to recreate desired permissions upon extraction.
0x00001000 | If set, this file is compressed with zlib DEFLATE compression
0x00002000 | If set, this file is compressed with bzip2 compression


Phar Signature format

Phars containing a signature always have the signature appended to the end of the Phar archive after the loader, manifest, and file contents. The signature formats supported at this time are MD5, SHA1, SHA256, SHA512, and OPENSSL.

Signature format
Length in bytes | Description
varying | The actual signature, 20 bytes for an SHA1 signature, 16 bytes for an MD5 signature, 32 bytes for an SHA256 signature, and 64 bytes for an SHA512 signature. The length of an OPENSSL signature depends on the size of the private key.
4 bytes | Signature flags. 0x0001 is used to define an MD5 signature, 0x0002 is used to define an SHA1 signature, 0x0003 is used to define an SHA256 signature, and 0x0004 is used to define an SHA512 signature. The SHA256 and SHA512 signature support is available as of API version 1.1.0. 0x0010 is used to define an OPENSSL signature, what is available as of API version 1.1.1, if OpenSSL is available.
4 bytes | Magic GBMB used to define the presence of a signature.


The Phar class

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Introdução

The Phar class provides a high-level interface to accessing and creating phar archives.

Resumo da classe

class Phar extends RecursiveDirectoryIterator implements Countable, ArrayAccess {
/* Constantes herdadas */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Constantes */
const int BZ2;
const int GZ;
const int NONE;
const int PHAR;
const int TAR;
const int ZIP;
const int COMPRESSED;
const int PHP;
const int PHPS;
const int MD5;
const int OPENSSL;
const int OPENSSL_SHA256;
const int OPENSSL_SHA512;
const int SHA1;
const int SHA256;
const int SHA512;
/* Métodos */
public __construct(string $filename, int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, ?string $alias = null)
public addEmptyDir(string $directory): void
public addFile(string $filename, ?string $localName = null): void
public addFromString(string $localName, string $contents): void
final public static apiVersion(): string
public buildFromDirectory(string $directory, string $pattern = ""): array
public buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array
final public static canCompress(int $compression = 0): bool
final public static canWrite(): bool
public compress(int $compression, ?string $extension = null): ?Phar
public compressFiles(int $compression): void
public convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData
public convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar
public copy(string $from, string $to): bool
public count(int $mode = COUNT_NORMAL): int
final public static createDefaultStub(?string $index = null, ?string $webIndex = null): string
public decompress(?string $extension = null): ?Phar
public decompressFiles(): bool
public delMetadata(): bool
public delete(string $localName): bool
public extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool
public getAlias(): ?string
public getMetadata(array $unserializeOptions = []): mixed
public getModified(): bool
public getPath(): string
public getSignature(): array|false
public getStub(): string
final public static getSupportedCompression(): array
final public static getSupportedSignatures(): array
public getVersion(): string
public hasMetadata(): bool
final public static interceptFileFuncs(): void
public isBuffering(): bool
public isCompressed(): int|false
public isFileFormat(int $format): bool
final public static isValidPharFilename(string $filename, bool $executable = true): bool
public isWritable(): bool
final public static loadPhar(string $filename, ?string $alias = null): bool
final public static mapPhar(?string $alias = null, int $offset = 0): bool
final public static mount(string $pharPath, string $externalPath): void
final public static mungServer(array $variables): void
public offsetExists(string $localName): bool
public offsetGet(string $localName): SplFileInfo
public offsetSet(string $localName, resource|string $value): void
public offsetUnset(string $localName): void
final public static running(bool $returnPhar = true): string
public setAlias(string $alias): bool
public setDefaultStub(?string $index = null, ?string $webIndex = null): bool
public setMetadata(mixed $metadata): void
public setSignatureAlgorithm(int $algo, ?string $privateKey = null): void
public setStub(resource|string $stub, int $length = -1): bool
public startBuffering(): void
public stopBuffering(): void
final public static unlinkArchive(string $filename): bool
final public static webPhar(
?string $alias = null,
?string $index = null,
?string $fileNotFoundScript = null,
array $mimeTypes = [],
?callable $rewrite = null
): void
public __destruct()
/* Métodos herdados */
public RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
public RecursiveDirectoryIterator::getSubPath(): string
public RecursiveDirectoryIterator::getSubPathname(): string
public RecursiveDirectoryIterator::hasChildren(bool $allowLinks = false): bool
public RecursiveDirectoryIterator::key(): string
public RecursiveDirectoryIterator::next(): void
public RecursiveDirectoryIterator::rewind(): void
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Índice

  • Phar::addEmptyDir — Add an empty directory to the phar archive
  • Phar::addFile — Add a file from the filesystem to the phar archive
  • Phar::addFromString — Add a file from a string to the phar archive
  • Phar::apiVersion — Returns the api version
  • Phar::buildFromDirectory — Construct a phar archive from the files within a directory
  • Phar::buildFromIterator — Construct a phar archive from an iterator
  • Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::canWrite — Returns whether phar extension supports writing and creating phars
  • Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::compressFiles — Compresses all files in the current Phar archive
  • Phar::__construct — Construct a Phar archive object
  • Phar::convertToData — Convert a phar archive to a non-executable tar or zip file
  • Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format
  • Phar::copy — Copy a file internal to the phar archive to another new file within the phar
  • Phar::count — Returns the number of entries (files) in the Phar archive
  • Phar::createDefaultStub — Create a phar-file format specific stub
  • Phar::decompress — Decompresses the entire Phar archive
  • Phar::decompressFiles — Decompresses all files in the current Phar archive
  • Phar::delMetadata — Deletes the global metadata of the phar
  • Phar::delete — Delete a file within a phar archive
  • Phar::__destruct — Destructs a Phar archive object
  • Phar::extractTo — Extract the contents of a phar archive to a directory
  • Phar::getAlias — Get the alias for Phar
  • Phar::getMetadata — Returns phar archive meta-data
  • Phar::getModified — Return whether phar was modified
  • Phar::getPath — Get the real path to the Phar archive on disk
  • Phar::getSignature — Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
  • Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive
  • Phar::getSupportedCompression — Return array of supported compression algorithms
  • Phar::getSupportedSignatures — Return array of supported signature types
  • Phar::getVersion — Return version info of Phar archive
  • Phar::hasMetadata — Returns whether phar has global meta-data
  • Phar::interceptFileFuncs — Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
  • Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
  • Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
  • Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename
  • Phar::isWritable — Returns true if the phar archive can be modified
  • Phar::loadPhar — Loads any phar archive with an alias
  • Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest
  • Phar::mount — Mount an external path or file to a virtual location within the phar archive
  • Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution
  • Phar::offsetExists — Determines whether a file exists in the phar
  • Phar::offsetGet — Gets a PharFileInfo object for a specific file
  • Phar::offsetSet — Set the contents of an internal file to those of an external file
  • Phar::offsetUnset — Remove a file from a phar
  • Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive
  • Phar::setAlias — Set the alias for the Phar archive
  • Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
  • Phar::setMetadata — Sets phar archive meta-data
  • Phar::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it
  • Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk
  • Phar::unlinkArchive — Completely remove a phar archive from disk and from memory
  • Phar::webPhar — Routes a request from a web browser to an internal file within the phar archive


Add an empty directory to the phar archive

  • « Phar
  • Phar::addFile »
  • PHP Manual
  • Phar
  • Add an empty directory to the phar archive

Phar::addEmptyDir

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::addEmptyDir — Add an empty directory to the phar archive

Descrição

public Phar::addEmptyDir(string $directory): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

With this method, an empty directory is created with path dirname. This method is similar to ZipArchive::addEmptyDir().

Parâmetros

directory

The name of the empty directory to create in the phar archive

Valor Retornado

no return value, exception is thrown on failure.

Exemplos

Exemplo #1 A Phar::addEmptyDir() example

<?php
try {
$a = new Phar('/path/to/phar.phar');

$a->addEmptyDir('/full/path/to/file');
// demonstrates how this file is stored
$b = $a['full/path/to/file']->isDir();
} catch (Exception $e) {
// handle errors here
}
?>

Veja Também

  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • Phar::addFromString() - Add a file from a string to the phar archive


Add a file from the filesystem to the phar archive

  • « Phar::addEmptyDir
  • Phar::addFromString »
  • PHP Manual
  • Phar
  • Add a file from the filesystem to the phar archive

Phar::addFile

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::addFile — Add a file from the filesystem to the phar archive

Descrição

public Phar::addFile(string $filename, ?string $localName = null): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

With this method, any file or URL can be added to the phar archive. If the optional second parameter localName is a string, the file will be stored in the archive with that name, otherwise the file parameter is used as the path to store within the archive. URLs must have a localname or an exception is thrown. This method is similar to ZipArchive::addFile().

Parâmetros

filename

Full or relative path to a file on disk to be added to the phar archive.

localName

Path that the file will be stored in the archive.

Valor Retornado

no return value, exception is thrown on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | localName is now nullable.

Exemplos

Exemplo #1 A Phar::addFile() example

<?php
try {
$a = new Phar('/path/to/phar.phar');

$a->addFile('/full/path/to/file');
// demonstrates how this file is stored
$b = $a['full/path/to/file']->getContent();

$a->addFile('/full/path/to/file', 'my/file.txt');
$c = $a['my/file.txt']->getContent();

// demonstrate URL usage
$a->addFile('http://www.example.com', 'example.html');
} catch (Exception $e) {
// handle errors here
}
?>

Notas

Nota: Phar::addFile(), Phar::addFromString() e Phar::offsetSet() salvam um novo arquivo phar cada vez que são chamadas. Se o desempenho for uma preocupação, Phar::buildFromDirectory() ou Phar::buildFromIterator() devem ser usadas.

Veja Também

  • Phar::offsetSet() - Set the contents of an internal file to those of an external file
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • Phar::addFromString() - Add a file from a string to the phar archive
  • Phar::addEmptyDir() - Add an empty directory to the phar archive


Add a file from a string to the phar archive

  • « Phar::addFile
  • Phar::apiVersion »
  • PHP Manual
  • Phar
  • Add a file from a string to the phar archive

Phar::addFromString

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::addFromString — Add a file from a string to the phar archive

Descrição

public Phar::addFromString(string $localName, string $contents): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

With this method, any string can be added to the phar archive. The file will be stored in the archive with localname as its path. This method is similar to ZipArchive::addFromString().

Parâmetros

localName

Path that the file will be stored in the archive.

contents

The file contents to store

Valor Retornado

no return value, exception is thrown on failure.

Exemplos

Exemplo #1 A Phar::addFromString() example

<?php
try {
$a = new Phar('/path/to/phar.phar');

$a->addFromString('path/to/file.txt', 'my simple file');
$b = $a['path/to/file.txt']->getContent();

// to add contents from a stream handle for large files, use offsetSet()
$c = fopen('/path/to/hugefile.bin');
$a['largefile.bin'] = $c;
fclose($c);
} catch (Exception $e) {
// handle errors here
}
?>

Notas

Nota: Phar::addFile(), Phar::addFromString() e Phar::offsetSet() salvam um novo arquivo phar cada vez que são chamadas. Se o desempenho for uma preocupação, Phar::buildFromDirectory() ou Phar::buildFromIterator() devem ser usadas.

Veja Também

  • Phar::offsetSet() - Set the contents of an internal file to those of an external file
  • PharData::addFromString() - Add a file from a string to the tar/zip archive
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • Phar::addEmptyDir() - Add an empty directory to the phar archive


Returns the api version

  • « Phar::addFromString
  • Phar::buildFromDirectory »
  • PHP Manual
  • Phar
  • Returns the api version

Phar::apiVersion

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::apiVersion — Returns the api version

Descrição

final public static Phar::apiVersion(): string

Return the API version of the phar file format that will be used when creating phars. The Phar extension supports reading API version 1.0.0 or newer. API version 1.1.0 is required for SHA-256 and SHA-512 hash, and API version 1.1.1 is required to store empty directories.

Parâmetros

Valor Retornado

The API version string as in "1.0.0".

Exemplos

Exemplo #1 A Phar::apiVersion() example

<?php
echo Phar::apiVersion();
?>

O exemplo acima produzirá:

1.1.1


Construct a phar archive from the files within a directory

  • « Phar::apiVersion
  • Phar::buildFromIterator »
  • PHP Manual
  • Phar
  • Construct a phar archive from the files within a directory

Phar::buildFromDirectory

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::buildFromDirectory — Construct a phar archive from the files within a directory

Descrição

public Phar::buildFromDirectory(string $directory, string $pattern = ""): array

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Populate a phar archive from directory contents. The optional second parameter is a regular expression (pcre) that is used to exclude files. Any filename that matches the regular expression will be included, all others will be excluded. For more fine-grained control, use Phar::buildFromIterator().

Parâmetros

directory

The full or relative path to the directory that contains all files to add to the archive.

pattern

An optional pcre regular expression that is used to filter the list of files. Only file paths matching the regular expression will be included in the archive.

Valor Retornado

Phar::buildFromDirectory() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Erros/Exceções

This method throws BadMethodCallException when unable to instantiate the internal directory iterators, or a PharException if there were errors saving the phar archive.

Registro de Alterações

Versão | Descrição
8.1.0 | Phar::buildFromDirectory() no longer returns false.

Exemplos

Exemplo #1 A Phar::buildFromDirectory() example

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
// add all files in the project
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));

$phar2 = new Phar('project2.phar', 0, 'project2.phar');
// add all files in the project, only include php files
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
$phar2->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Veja Também

  • Phar::buildFromIterator() - Construct a phar archive from an iterator


Construct a phar archive from an iterator

  • « Phar::buildFromDirectory
  • Phar::canCompress »
  • PHP Manual
  • Phar
  • Construct a phar archive from an iterator

Phar::buildFromIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::buildFromIterator — Construct a phar archive from an iterator

Descrição

public Phar::buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Populate a phar archive from an iterator. Two styles of iterators are supported, iterators that map the filename within the phar to the name of a file on disk, and iterators like DirectoryIterator that return SplFileInfo objects. For iterators that return SplFileInfo objects, the second parameter is required.

Parâmetros

iterator

Any iterator that either associatively maps phar file to location or returns SplFileInfo objects

baseDirectory

For iterators that return SplFileInfo objects, the portion of each file's full path to remove when adding to the phar archive

Valor Retornado

Phar::buildFromIterator() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Erros/Exceções

This method returns UnexpectedValueException when the iterator returns incorrect values, such as an integer key instead of a string, a BadMethodCallException when an SplFileInfo-based iterator is passed without a baseDirectory parameter, or a PharException if there were errors saving the phar archive.

Registro de Alterações

Versão | Descrição
8.1.0 | Phar::buildFromIterator() no longer returns false.
8.0.0 | baseDirectory is now nullable.

Exemplos

Exemplo #1 A Phar::buildFromIterator() with SplFileInfo

For most phar archives, the archive will reflect an actual directory layout, and the second style is the most useful. For instance, to create a phar archive containing the files in this sample directory layout:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

This code could be used to add these files to the "project.phar" phar archive:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
new RecursiveIteratorIterator(
new RecursiveDirectoryIterator('/path/to/project')),
'/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

The file project.phar can then be used immediately. Phar::buildFromIterator() does not set values such as compression, metadata, and this can be done after creating the phar archive.

As an interesting note, Phar::buildFromIterator() can also be used to copy the contents of an existing phar archive, as the Phar object descends from DirectoryIterator:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
new RecursiveIteratorIterator(
new Phar('/path/to/anotherphar.phar')),
'phar:///path/to/anotherphar.phar/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Exemplo #2 A Phar::buildFromIterator() with other iterators

The second form of the iterator can be used with any iterator that returns a key => value mapping, such as an ArrayIterator:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
new ArrayIterator(
array(
'internal/file.php' => dirname(__FILE__) . '/somefile.php',
'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
)));
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Veja Também

  • Phar::buildFromDirectory() - Construct a phar archive from the files within a directory


Returns whether phar extension supports compression using either zlib or bzip2

  • « Phar::buildFromIterator
  • Phar::canWrite »
  • PHP Manual
  • Phar
  • Returns whether phar extension supports compression using either zlib or bzip2

Phar::canCompress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2

Descrição

final public static Phar::canCompress(int $compression = 0): bool

This should be used to test whether compression is possible prior to loading a phar archive containing compressed files.

Parâmetros

compression

Either Phar::GZ or Phar::BZ2 can be used to test whether compression is possible with a specific compression algorithm (zlib or bzip2).

Valor Retornado

true if compression/decompression is available, false if not.

Exemplos

Exemplo #1 A Phar::canCompress() example

<?php
if (Phar::canCompress()) {
echo file_get_contents('phar://compressedphar.phar/internal/file.txt');
} else {
echo 'no compression available';
}
?>

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file


Returns whether phar extension supports writing and creating phars

  • « Phar::canCompress
  • Phar::compress »
  • PHP Manual
  • Phar
  • Returns whether phar extension supports writing and creating phars

Phar::canWrite

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::canWrite — Returns whether phar extension supports writing and creating phars

Descrição

final public static Phar::canWrite(): bool

This static method determines whether write access has been disabled in the system php.ini via the phar.readonly ini variable.

Parâmetros

Valor Retornado

true if write access is enabled, false if it is disabled.

Exemplos

Exemplo #1 A Phar::canWrite() example

<?php
if (Phar::canWrite()) {
file_put_contents('phar://myphar.phar/file.txt', 'hi there');
}
?>

Veja Também

  • phar.readonly
  • Phar::isWritable() - Returns true if the phar archive can be modified


Compresses the entire Phar archive using Gzip or Bzip2 compression

  • « Phar::canWrite
  • Phar::compressFiles »
  • PHP Manual
  • Phar
  • Compresses the entire Phar archive using Gzip or Bzip2 compression

Phar::compress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression

Descrição

public Phar::compress(int $compression, ?string $extension = null): ?Phar

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

For tar-based and phar-based phar archives, this method compresses the entire archive using gzip compression or bzip2 compression. The resulting file can be processed with the gunzip command/bunzip command, or accessed directly and transparently with the Phar extension.

For Zip-based phar archives, this method fails with an exception. The zlib extension must be enabled to compress with gzip compression, the bzip2 extension must be enabled in order to compress with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

In addition, this method automatically renames the archive, appending .gz, .bz2 or removing the extension if passed Phar::NONE to remove compression. Alternatively, a file extension may be specified with the second parameter.

Parâmetros

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

extension

By default, the extension is .phar.gz or .phar.bz2 for compressing phar archives, and .phar.tar.gz or .phar.tar.bz2 for compressing tar archives. For decompressing, the default file extensions are .phar and .phar.tar.

Valor Retornado

Returns a Phar object, or null on failure.

Erros/Exceções

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or the bzip2 extension is not enabled.

Registro de Alterações

Versão | Descrição
8.0.0 | extension is now nullable.

Exemplos

Exemplo #1 A Phar::compress() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.phar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.phar already exists
?>

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive


Compresses all files in the current Phar archive

  • « Phar::compress
  • Phar::__construct »
  • PHP Manual
  • Phar
  • Compresses all files in the current Phar archive

Phar::compressFiles

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::compressFiles — Compresses all files in the current Phar archive

Descrição

public Phar::compressFiles(int $compression): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

For tar-based phar archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use Phar::compress() to compress an entire tar-based phar archive.

For Zip-based and phar-based phar archives, this method compresses all files in the Phar archive using the specified compression. The zlib or bzip2 extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Parâmetros

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Exemplos

Exemplo #1 A Phar::compressFiles() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
?>

O exemplo acima produzirá:

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive


Construct a Phar archive object

  • « Phar::compressFiles
  • Phar::convertToData »
  • PHP Manual
  • Phar
  • Construct a Phar archive object

Phar::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::__construct — Construct a Phar archive object

Descrição

public Phar::__construct(string $filename, int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, ?string $alias = null)

Parâmetros

filename

Path to an existing Phar archive or to-be-created archive. The file name's extension must contain .phar.

flags

Flags to pass to parent class RecursiveDirectoryIterator.

alias

Alias with which this Phar archive should be referred to in calls to stream functionality.

Erros/Exceções

Throws BadMethodCallException if called twice, UnexpectedValueException if the phar archive can't be opened.

Exemplos

Exemplo #1 A Phar::__construct() example

<?php
try {
$p = new Phar('/path/to/my.phar', FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME,
'my.phar');
} catch (UnexpectedValueException $e) {
die('Could not open my.phar');
} catch (BadMethodCallException $e) {
echo 'technically, this cannot happen';
}
// this works now
echo file_get_contents('phar://my.phar/example.txt');
// and works as if we had typed
echo file_get_contents('phar:///path/to/my.phar/example.txt');
?>


Convert a phar archive to a non-executable tar or zip file

  • « Phar::__construct
  • Phar::convertToExecutable »
  • PHP Manual
  • Phar
  • Convert a phar archive to a non-executable tar or zip file

Phar::convertToData

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::convertToData — Convert a phar archive to a non-executable tar or zip file

Descrição

public Phar::convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData

This method is used to convert an executable phar archive to either a tar or zip file. To make the tar or zip non-executable, the phar stub and phar alias files are removed from the newly created archive.

If no changes are specified, this method throws a BadMethodCallException if the archive is in phar file format. For archives in tar or zip file format, this method converts the archive to a non-executable archive.

If successful, the method creates a new archive on disk and returns a PharData object. The old archive is not removed from disk, and should be done manually after the process has finished.

Parâmetros

format

This should be one of Phar::TAR or Phar::ZIP. If set to null, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that .phar cannot be used anywhere in the filename for a non-executable tar or zip archive.

If converting to a tar-based phar archive, the default extensions are .tar, .tar.gz, and .tar.bz2 depending on specified compression. For zip-based archives, the default extension is .zip.

Valor Retornado

The method returns a PharData object on success, or null on failure.

Erros/Exceções

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), and a PharException if any problems are encountered during the phar creation process.

Registro de Alterações

Versão | Descrição
8.0.0 | format, compression, and extension are now nullable.

Exemplos

Exemplo #1 A Phar::convertToData() example

Using Phar::convertToData():

<?php
try {
$tarphar = new Phar('myphar.phar.tar');
// note that myphar.phar.tar is *not* unlinked
// convert it to the non-executable tar file format
// creates myphar.tar
$tar = $tarphar->convertToData();
// convert to non-executable zip format, creates myphar.zip
$zip = $tarphar->convertToData(Phar::ZIP);
// create myphar.tbz
$tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
// creates myphar.phar.tgz
$phar = $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
// handle the error here
}
?>

Veja Também

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file


Convert a phar archive to another executable phar archive file format

  • « Phar::convertToData
  • Phar::copy »
  • PHP Manual
  • Phar
  • Convert a phar archive to another executable phar archive file format

Phar::convertToExecutable

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format

Descrição

public Phar::convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

This method is used to convert a phar archive to another file format. For instance, it can be used to create a tar-based executable phar archive from a zip-based executable phar archive, or from an executable phar archive in the phar file format. In addition, it can be used to apply whole-archive compression to a tar or phar-based archive.

If no changes are specified, this method throws a BadMethodCallException.

If successful, the method creates a new archive on disk and returns a Phar object. The old archive is not removed from disk, and should be done manually after the process has finished.

Parâmetros

format

This should be one of Phar::PHAR, Phar::TAR, or Phar::ZIP. If set to null, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that all zip- and tar-based phar archives must contain .phar in their file extension in order to be processed as a phar archive.

If converting to a phar-based archive, the default extensions are .phar, .phar.gz, or .phar.bz2 depending on the specified compression. For tar-based phar archives, the default extensions are .phar.tar, .phar.tar.gz, and .phar.tar.bz2. For zip-based phar archives, the default extension is .phar.zip.

Valor Retornado

The method returns a Phar object on success, or null on failure.

Erros/Exceções

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), an UnexpectedValueException if write support is disabled, and a PharException if any problems are encountered during the phar creation process.

Registro de Alterações

Versão | Descrição
8.0.0 | format, compression, and extension are now nullable.

Exemplos

Exemplo #1 A Phar::convertToExecutable() example

Using Phar::convertToExecutable():

<?php
try {
$tarphar = new Phar('myphar.phar.tar');
// convert it to the phar file format
// note that myphar.phar.tar is *not* unlinked
$phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// creates myphar.phar.tgz
$compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// handle the error here
}
?>

Veja Também

  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file


Copy a file internal to the phar archive to another new file within the phar

  • « Phar::convertToExecutable
  • Phar::count »
  • PHP Manual
  • Phar
  • Copy a file internal to the phar archive to another new file within the phar

Phar::copy

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::copy — Copy a file internal to the phar archive to another new file within the phar

Descrição

public Phar::copy(string $from, string $to): bool

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Copy a file internal to the phar archive to another new file within the phar. This is an object-oriented alternative to using copy() with the phar stream wrapper.

Parâmetros

from

to

Valor Retornado

returns true on success, but it is safer to encase method call in a try/catch block and assume success if no exception is thrown.

Erros/Exceções

throws UnexpectedValueException if the source file does not exist, the destination file already exists, write access is disabled, opening either file fails, reading the source file fails, or a PharException if writing the changes to the phar fails.

Exemplos

Exemplo #1 A Phar::copy() example

This example shows using Phar::copy() and the equivalent stream wrapper performance of the same thing. The primary difference between the two approaches is error handling. All Phar methods throw exceptions, whereas the stream wrapper uses trigger_error().

<?php
try {
$phar = new Phar('myphar.phar');
$phar['a'] = 'hi';
$phar->copy('a', 'b');
echo $phar['b']; // outputs "hi"
} catch (Exception $e) {
// handle error
}

// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.phar/a', 'phar//myphar.phar/c');
echo file_get_contents('phar://myphar.phar/c'); // outputs "hi"
?>


Returns the number of entries (files) in the Phar archive

  • « Phar::copy
  • Phar::createDefaultStub »
  • PHP Manual
  • Phar
  • Returns the number of entries (files) in the Phar archive

Phar::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::count — Returns the number of entries (files) in the Phar archive

Descrição

public Phar::count(int $mode = COUNT_NORMAL): int

Parâmetros

mode

mode is an integer value specifying the counting mode to be used. By default, it is set to COUNT_NORMAL, which counts only the number of items in the archive that have not been deleted or hidden. When set to COUNT_RECURSIVE, it counts all items in the archive, including those that have been deleted or hidden.

Valor Retornado

The number of files contained within this phar, or 0 (the number zero) if none.

Exemplos

Exemplo #1 A Phar::count() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\n";
$p['file.txt'] = 'hi';
echo 'The new phar has ' . $p->count() . " entries\n";
?>

O exemplo acima produzirá:

The new phar has 0 entries
The new phar has 1 entries


Create a phar-file format specific stub

  • « Phar::count
  • Phar::decompress »
  • PHP Manual
  • Phar
  • Create a phar-file format specific stub

Phar::createDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::createDefaultStub — Create a phar-file format specific stub

Descrição

final public static Phar::createDefaultStub(?string $index = null, ?string $webIndex = null): string

This method is intended for creation of phar-file format-specific stubs, and is not intended for use with tar- or zip-based phar archives.

Phar archives contain a bootstrap loader, or stub written in PHP that is executed when the archive is executed in PHP either via include:

<?php
include 'myphar.phar';
?>
or by simple execution:
php myphar.phar

This method provides a simple and easy method to create a stub that will run a startup file from the phar archive. In addition, different files can be specified for running the phar archive from the command line versus through a web server. The loader stub also calls Phar::interceptFileFuncs() to allow easy bundling of a PHP application that accesses the file system. If the phar extension is not present, the loader stub will extract the phar archive to a temporary directory and then operate on the files. A shutdown function erases the temporary files on exit.

Parâmetros

index

Relative path within the phar archive to run if accessed on the command-line

webIndex

Relative path within the phar archive to run if accessed through a web browser

Valor Retornado

Returns a string containing the contents of a customized bootstrap loader (stub) that allows the created Phar archive to work with or without the Phar extension enabled.

Erros/Exceções

Throws UnexpectedValueException if either parameter is longer than 400 bytes.

Registro de Alterações

Versão | Descrição
8.0.0 | index and webIndex are now nullable.

Exemplos

Exemplo #1 A Phar::createDefaultStub() example

<?php
try {
$phar = new Phar('myphar.phar');
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
// handle errors
}
?>

Veja Também

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::getStub() - Return the PHP loader or bootstrap stub of a Phar archive


Decompresses the entire Phar archive

  • « Phar::createDefaultStub
  • Phar::decompressFiles »
  • PHP Manual
  • Phar
  • Decompresses the entire Phar archive

Phar::decompress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::decompress — Decompresses the entire Phar archive

Descrição

public Phar::decompress(?string $extension = null): ?Phar

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

For tar-based and phar-based phar archives, this method decompresses the entire archive.

For Zip-based phar archives, this method fails with an exception. The zlib extension must be enabled to decompress an archive compressed with gzip compression, and the bzip2 extension must be enabled in order to decompress an archive compressed with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

In addition, this method automatically changes the file extension of the archive, .phar by default for phar archives, or .phar.tar for tar-based phar archives. Alternatively, a file extension may be specified with the second parameter.

Parâmetros

extension

For decompressing, the default file extensions are .phar and .phar.tar. Use this parameter to specify another file extension. Be aware that all executable phar archives must contain .phar in their filename.

Valor Retornado

A Phar object is returned on success, and null on failure.

Erros/Exceções

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or the bzip2 extension is not enabled.

Registro de Alterações

Versão | Descrição
8.0.0 | extension is now nullable.

Exemplos

Exemplo #1 A Phar::decompress() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar.gz');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p3 = $p2->decompress(); // creates /path/to/my.phar
?>

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive


Decompresses all files in the current Phar archive

  • « Phar::decompress
  • Phar::delMetadata »
  • PHP Manual
  • Phar
  • Decompresses all files in the current Phar archive

Phar::decompressFiles

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::decompressFiles — Decompresses all files in the current Phar archive

Descrição

public Phar::decompressFiles(): bool

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

For tar-based phar archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use Phar::compress() to compress an entire tar-based phar archive.

For Zip-based and phar-based phar archives, this method decompresses all files in the Phar archive. The zlib or bzip2 extensions must be enabled to take advantage of this feature if any files are compressed using bzip2/zlib compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Exemplos

Exemplo #1 A Phar::decompressFiles() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
?>

O exemplo acima produzirá:

string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive


Deletes the global metadata of the phar

  • « Phar::decompressFiles
  • Phar::delete »
  • PHP Manual
  • Phar
  • Deletes the global metadata of the phar

Phar::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

Phar::delMetadata — Deletes the global metadata of the phar

Descrição

public Phar::delMetadata(): bool

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Deletes the global metadata of the phar

Parâmetros

Valor Retornado

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Erros/Exceções

Throws PharException if errors occur while flushing changes to disk.

Exemplos

Exemplo #1 A Phar::delMetaData() example

<?php
try {
$phar = new Phar('myphar.phar');
var_dump($phar->getMetadata());
$phar->setMetadata("hi there");
var_dump($phar->getMetadata());
$phar->delMetadata();
var_dump($phar->getMetadata());
} catch (Exception $e) {
// handle errors
}
?>

O exemplo acima produzirá:

NULL
string(8) "hi there"
NULL

Veja Também

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data


Delete a file within a phar archive

  • « Phar::delMetadata
  • Phar::__destruct »
  • PHP Manual
  • Phar
  • Delete a file within a phar archive

Phar::delete

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::delete — Delete a file within a phar archive

Descrição

public Phar::delete(string $localName): bool

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Delete a file within an archive. This is the functional equivalent of calling unlink() on the stream wrapper equivalent, as shown in the example below.

Parâmetros

localName

Path within an archive to the file to delete.

Valor Retornado

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Erros/Exceções

Throws PharException if errors occur while flushing changes to disk.

Exemplos

Exemplo #1 A Phar::delete() example

<?php
try {
$phar = new Phar('myphar.phar');
$phar->delete('unlink/me.php');
// this is equivalent to:
unlink('phar://myphar.phar/unlink/me.php');
} catch (Exception $e) {
// handle errors
}
?>

Veja Também

  • PharData::delete() - Delete a file within a tar/zip archive
  • Phar::unlinkArchive() - Completely remove a phar archive from disk and from memory


Destructs a Phar archive object

  • « Phar::delete
  • Phar::extractTo »
  • PHP Manual
  • Phar
  • Destructs a Phar archive object

Phar::__destruct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::__destruct — Destructs a Phar archive object

Descrição

public Phar::__destruct()

Parâmetros

Esta função não possui parâmetros.


Extract the contents of a phar archive to a directory

  • « Phar::__destruct
  • Phar::getAlias »
  • PHP Manual
  • Phar
  • Extract the contents of a phar archive to a directory

Phar::extractTo

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::extractTo — Extract the contents of a phar archive to a directory

Descrição

public Phar::extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool

Extract all files within a phar archive to disk. Extracted files and directories preserve permissions as stored in the archive. The optional parameters allow optional control over which files are extracted, and whether existing files on disk can be overwritten. The second parameter files can be either the name of a file or directory to extract, or an array of names of files and directories to extract. By default, this method will not overwrite existing files, the third parameter can be set to true to enable overwriting of files. This method is similar to ZipArchive::extractTo().

Parâmetros

directory

Path to extract the given files to

files

The name of a file or directory to extract, or an array of files/directories to extract, null to skip this param

overwrite

Set to true to enable overwriting existing files

Valor Retornado

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Erros/Exceções

Throws PharException if errors occur while flushing changes to disk.

Exemplos

Exemplo #1 A Phar::extractTo() example

<?php
try {
$phar = new Phar('myphar.phar');
$phar->extractTo('/full/path'); // extract all files
$phar->extractTo('/another/path', 'file.txt'); // extract only file.txt
$phar->extractTo('/this/path',
array('file1.txt', 'file2.txt')); // extract 2 files only
$phar->extractTo('/third/path', null, true); // extract all files, and overwrite
} catch (Exception $e) {
// handle errors
}
?>

Notas

Nota:

O sistema de arquivos NTFS do Windows não suporta alguns caracteres em nomes de arquivos, como <|>*?":. Nomes de arquivos que terminam com ponto também não são suportados. Ao contrário de algumas ferramentas de extração, este método não substitui estes caracteres por um sublinhado, mas falha ao extrair esses arquivos.

Veja Também

  • PharData::extractTo() - Extract the contents of a tar/zip archive to a directory


Get the alias for Phar

  • « Phar::extractTo
  • Phar::getMetadata »
  • PHP Manual
  • Phar
  • Get the alias for Phar

Phar::getAlias

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.1)

Phar::getAlias — Get the alias for Phar

Descrição

public Phar::getAlias(): ?string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the alias or null if there's no alias.


Returns phar archive meta-data

  • « Phar::getAlias
  • Phar::getModified »
  • PHP Manual
  • Phar
  • Returns phar archive meta-data

Phar::getMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getMetadata — Returns phar archive meta-data

Descrição

public Phar::getMetadata(array $unserializeOptions = []): mixed

Retrieve archive meta-data. Meta-data can be any PHP variable that can be serialized.

Parâmetros

No parameters.

Valor Retornado

Any PHP value that can be serialized and is stored as meta-data for the Phar archive, or null if no meta-data is stored.

Registro de Alterações

Versão | Descrição
8.0.0 | The parameter unserializeOptions has been added.

Exemplos

Exemplo #1 A Phar::getMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file.php'] = '<?php echo "hello";';
$p->setMetadata(array('bootstrap' => 'file.php'));
var_dump($p->getMetadata());
} catch (Exception $e) {
echo 'Could not modify phar:', $e;
}
?>

O exemplo acima produzirá:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Veja Também

  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data


Return whether phar was modified

  • « Phar::getMetadata
  • Phar::getPath »
  • PHP Manual
  • Phar
  • Return whether phar was modified

Phar::getModified

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getModified — Return whether phar was modified

Descrição

public Phar::getModified(): bool

This method can be used to determine whether a phar has either had an internal file deleted, or contents of a file changed in some way.

Parâmetros

No parameters.

Valor Retornado

true if the phar has been modified since opened, false if not.


Get the real path to the Phar archive on disk

  • « Phar::getModified
  • Phar::getSignature »
  • PHP Manual
  • Phar
  • Get the real path to the Phar archive on disk

Phar::getPath

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Phar::getPath — Get the real path to the Phar archive on disk

Descrição

public Phar::getPath(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive

  • « Phar::getPath
  • Phar::getStub »
  • PHP Manual
  • Phar
  • Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive

Phar::getSignature

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getSignature — Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive

Descrição

public Phar::getSignature(): array|false

Returns the verification signature of a phar archive in a hexadecimal string.

Parâmetros

Valor Retornado

Array with the opened archive's signature in hash key and MD5, SHA-1, SHA-256, SHA-512, or OpenSSL in hash_type. This signature is a hash calculated on the entire phar's contents, and may be used to verify the integrity of the archive. A valid signature is absolutely required of all executable phar archives if the phar.require_hash INI variable is set to true. If there is no signature, the function returns false.


Return the PHP loader or bootstrap stub of a Phar archive

  • « Phar::getSignature
  • Phar::getSupportedCompression »
  • PHP Manual
  • Phar
  • Return the PHP loader or bootstrap stub of a Phar archive

Phar::getStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive

Descrição

public Phar::getStub(): string

Phar archives contain a bootstrap loader, or stub written in PHP that is executed when the archive is executed in PHP either via include:

<?php
include 'myphar.phar';
?>
or by simple execution:
php myphar.phar

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string containing the contents of the bootstrap loader (stub) of the current Phar archive.

Erros/Exceções

Throws RuntimeException if it is not possible to read the stub from the Phar archive.

Exemplos

Exemplo #1 A Phar::getStub() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
echo $p->getStub();
echo "==NEXT==\n";
$p->setStub("<?php
function __autoload($class)
{
include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER(); ?>");
echo $p->getStub();
?>

O exemplo acima produzirá:

<?php __HALT_COMPILER(); ?>
==NEXT==
<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER(); ?>

Veja Também

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Create a phar-file format specific stub


Return array of supported compression algorithms

  • « Phar::getStub
  • Phar::getSupportedSignatures »
  • PHP Manual
  • Phar
  • Return array of supported compression algorithms

Phar::getSupportedCompression

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

Phar::getSupportedCompression — Return array of supported compression algorithms

Descrição

final public static Phar::getSupportedCompression(): array

Parâmetros

No parameters.

Valor Retornado

Returns an array containing any of Phar::GZ or Phar::BZ2, depending on the availability of the zlib extension or the bz2 extension.

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive


Return array of supported signature types

  • « Phar::getSupportedCompression
  • Phar::getVersion »
  • PHP Manual
  • Phar
  • Return array of supported signature types

Phar::getSupportedSignatures

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.1.0)

Phar::getSupportedSignatures — Return array of supported signature types

Descrição

final public static Phar::getSupportedSignatures(): array

Return array of supported signature types

Parâmetros

No parameters.

Valor Retornado

Returns an array containing any of MD5, SHA-1, SHA-256, SHA-512, or OpenSSL.

Veja Também

  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
  • Phar::setSignatureAlgorithm() - Set the signature algorithm for a phar and apply it


Return version info of Phar archive

  • « Phar::getSupportedSignatures
  • Phar::hasMetadata »
  • PHP Manual
  • Phar
  • Return version info of Phar archive

Phar::getVersion

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getVersion — Return version info of Phar archive

Descrição

public Phar::getVersion(): string

Returns the API version of an opened Phar archive.

Parâmetros

Valor Retornado

The opened archive's API version. This is not to be confused with the API version that the loaded phar extension will use to create new phars. Each Phar archive has the API version hard-coded into its manifest. See Phar file format documentation for more information.

Veja Também

  • Phar::apiVersion() - Returns the api version


Returns whether phar has global meta-data

  • « Phar::getVersion
  • Phar::interceptFileFuncs »
  • PHP Manual
  • Phar
  • Returns whether phar has global meta-data

Phar::hasMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

Phar::hasMetadata — Returns whether phar has global meta-data

Descrição

public Phar::hasMetadata(): bool

Returns whether phar has global meta-data set.

Parâmetros

No parameters.

Valor Retornado

Returns true if meta-data has been set, and false if not.

Exemplos

Exemplo #1 A Phar::hasMetadata() example

<?php
try {
$phar = new Phar('myphar.phar');
var_dump($phar->hasMetadata());
$phar->setMetadata(array('thing' => 'hi'));
var_dump($phar->hasMetadata());
$phar->delMetadata();
var_dump($phar->hasMetadata());
} catch (Exception $e) {
// handle error
}
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(false)

Veja Também

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar


Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

  • « Phar::hasMetadata
  • Phar::isBuffering »
  • PHP Manual
  • Phar
  • Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

Phar::interceptFileFuncs

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::interceptFileFuncs — Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

Descrição

final public static Phar::interceptFileFuncs(): void

instructs phar to intercept fopen(), readfile(), file_get_contents(), opendir(), and all of the stat-related functions. If any of these functions is called from within a phar archive with a relative path, the call is modified to access a file within the phar archive. Absolute paths are assumed to be attempts to load external files from the filesystem.

This function makes it possible to run PHP applications designed to run off of a hard disk as a phar application.

Parâmetros

No parameters.

Valor Retornado

Exemplos

Exemplo #1 A Phar::interceptFileFuncs() example

<?php
Phar::interceptFileFuncs();
include 'phar://' . __FILE__ . '/file.php';
?>

Assuming that this phar is at /path/to/myphar.phar and it contains file.php and file2.txt, if file.php contains this code:

Exemplo #2 A Phar::interceptFileFuncs() example

<?php
echo file_get_contents('file2.txt');
?>

Normally PHP would search the current directory for file2.txt, which would translate as the directory of file.php, or the current directory of a command-line user. Phar::interceptFileFuncs() instructs PHP to consider the current directory to be phar:///path/to/myphar.phar/ and so opens phar:///path/to/myphar.phar/file2.txt in the above example code.


Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

  • « Phar::interceptFileFuncs
  • Phar::isCompressed »
  • PHP Manual
  • Phar
  • Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

Phar::isBuffering

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

Descrição

public Phar::isBuffering(): bool

This method can be used to determine whether a Phar will save changes to disk immediately, or whether a call to Phar::stopBuffering() is needed to enable saving changes.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the write operations are being buffer, false otherwise.

Exemplos

Exemplo #1 A Phar::isBuffering() example

<?php
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p2 = new Phar('existingphar.phar');
$p['file1.txt'] = 'hi';
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>
=2=
<?php
$p->startBuffering();
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
$p->stopBuffering();
?>
=3=
<?php
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>

O exemplo acima produzirá:

bool(false)
bool(false)
=2=
bool(true)
bool(false)
=3=
bool(false)
bool(false)

Veja Também

  • Phar::startBuffering() - Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::stopBuffering() - Stop buffering write requests to the Phar archive, and save changes to disk


Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

  • « Phar::isBuffering
  • Phar::isFileFormat »
  • PHP Manual
  • Phar
  • Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

Phar::isCompressed

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

Descrição

public Phar::isCompressed(): int|false

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on). Zip-based phar archives cannot be compressed as a file, and so this method will always return false if a zip-based phar archive is queried.

Parâmetros

No parameters.

Valor Retornado

Phar::GZ, Phar::BZ2 or false.

Exemplos

Exemplo #1 A Phar::isCompressed() example

<?php
try {
$phar1 = new Phar('myphar.zip.phar');
var_dump($phar1->isCompressed());
$phar2 = new Phar('myuncompressed.tar.phar');
var_dump($phar2->isCompressed());
$phar2->compress(Phar::GZ);
var_dump($phar2->isCompressed() == Phar::GZ);
} catch (Exception $e) {
}
?>

O exemplo acima produzirá:

bool(false)
bool(false)
bool(true)

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms


Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

  • « Phar::isCompressed
  • Phar::isValidPharFilename »
  • PHP Manual
  • Phar
  • Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

Phar::isFileFormat

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

Descrição

public Phar::isFileFormat(int $format): bool

Parâmetros

format

Either Phar::PHAR, Phar::TAR, or Phar::ZIP to test for the format of the archive.

Valor Retornado

Returns true if the phar archive matches the file format requested by the parameter

Erros/Exceções

PharException is thrown if the parameter is an unknown file format specifier.

Veja Também

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file


Returns whether the given filename is a valid phar filename

  • « Phar::isFileFormat
  • Phar::isWritable »
  • PHP Manual
  • Phar
  • Returns whether the given filename is a valid phar filename

Phar::isValidPharFilename

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename

Descrição

final public static Phar::isValidPharFilename(string $filename, bool $executable = true): bool

Returns whether the given filename is a valid phar filename that will be recognized as a phar archive by the phar extension. This can be used to test a name without having to instantiate a phar archive and catch the inevitable Exception that will be thrown if an invalid name is specified.

Parâmetros

filename

The name or full path to a phar archive not yet created

executable

This parameter determines whether the filename should be treated as a phar executable archive, or a data non-executable archive

Valor Retornado

Returns true if the filename is valid, false if not.


Returns true if the phar archive can be modified

  • « Phar::isValidPharFilename
  • Phar::loadPhar »
  • PHP Manual
  • Phar
  • Returns true if the phar archive can be modified

Phar::isWritable

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::isWritable — Returns true if the phar archive can be modified

Descrição

public Phar::isWritable(): bool

This method returns true if phar.readonly is 0, and the actual phar archive on disk is not read-only.

Parâmetros

No parameters.

Valor Retornado

Returns true if the phar archive can be modified

Veja Também

  • Phar::canWrite() - Returns whether phar extension supports writing and creating phars
  • PharData::isWritable() - Returns true if the tar/zip archive can be modified


Loads any phar archive with an alias

  • « Phar::isWritable
  • Phar::mapPhar »
  • PHP Manual
  • Phar
  • Loads any phar archive with an alias

Phar::loadPhar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::loadPhar — Loads any phar archive with an alias

Descrição

final public static Phar::loadPhar(string $filename, ?string $alias = null): bool

This can be used to read the contents of an external Phar archive. This is most useful for assigning an alias to a phar so that subsequent references to the phar can use the shorter alias, or for loading Phar archives that only contain data and are not intended for execution/inclusion in PHP scripts.

Parâmetros

filename

the full or relative path to the phar archive to open

alias

The alias that may be used to refer to the phar archive. Note that many phar archives specify an explicit alias inside the phar archive, and a PharException will be thrown if a new alias is specified in this case.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

PharException is thrown if an alias is passed in and the phar archive already has an explicit alias

Exemplos

Exemplo #1 A Phar::loadPhar() example

Phar::loadPhar can be used anywhere to load an external Phar archive, whereas Phar::mapPhar should be used in a loader stub for a Phar.

<?php
try {
Phar::loadPhar('/path/to/phar.phar', 'my.phar');
echo file_get_contents('phar://my.phar/file.txt');
} catch (PharException $e) {
echo $e;
}
?>

Veja Também

  • Phar::mapPhar() - Reads the currently executed file (a phar) and registers its manifest


Reads the currently executed file (a phar) and registers its manifest

  • « Phar::loadPhar
  • Phar::mount »
  • PHP Manual
  • Phar
  • Reads the currently executed file (a phar) and registers its manifest

Phar::mapPhar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest

Descrição

final public static Phar::mapPhar(?string $alias = null, int $offset = 0): bool

This static method can only be used inside a Phar archive's loader stub in order to initialize the phar when it is directly executed, or when it is included in another script.

Parâmetros

alias

The alias that can be used in phar:// URLs to refer to this archive, rather than its full path.

offset

Unused variable, here for compatibility with PEAR's PHP_Archive.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

PharException is thrown if not called directly within PHP execution, if no __HALT_COMPILER(); token is found in the current source file, or if the file cannot be opened for reading.

Exemplos

Exemplo #1 A Phar::mapPhar() example

mapPhar should be used only inside a phar's loader stub. Use loadPhar to load an external phar into memory.

Here is a sample Phar loader stub that uses mapPhar.

<?php
function __autoload($class)
{
include 'phar://me.phar/' . str_replace('_', '/', $class) . '.php';
}
try {
Phar::mapPhar('me.phar');
include 'phar://me.phar/startup.php';
} catch (PharException $e) {
echo $e->getMessage();
die('Cannot initialize Phar');
}
__HALT_COMPILER();

Veja Também

  • Phar::loadPhar() - Loads any phar archive with an alias


Mount an external path or file to a virtual location within the phar archive

  • « Phar::mapPhar
  • Phar::mungServer »
  • PHP Manual
  • Phar
  • Mount an external path or file to a virtual location within the phar archive

Phar::mount

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::mount — Mount an external path or file to a virtual location within the phar archive

Descrição

final public static Phar::mount(string $pharPath, string $externalPath): void

Much like the unix file system concept of mounting external devices to paths within the directory tree, Phar::mount() allows referring to external files and directories as if they were inside of an archive. This allows powerful abstraction such as referring to external configuration files as if they were inside the archive.

Parâmetros

pharPath

The internal path within the phar archive to use as the mounted path location. This must be a relative path within the phar archive, and must not already exist.

externalPath

A path or URL to an external file or directory to mount within the phar archive

Valor Retornado

No return. PharException is thrown on failure.

Erros/Exceções

Throws PharException if any problems occur mounting the path.

Exemplos

Exemplo #1 A Phar::mount() example

The following example shows accessing an external configuration file as if it were a path within a phar archive.

First, the code inside of a phar archive:

<?php
$configuration = simplexml_load_string(file_get_contents(
Phar::running(false) . '/config.xml'));
?>

Next the external code used to mount the configuration file:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
Phar::mount('phar://config.xml', '/home/example/config.xml');
// now run the application
include '/path/to/archive.phar';
?>

Another method is to put the mounting code inside the stub of the phar archive. Here is an example of setting up a default configuration file if no user configuration is specified:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
if (defined('EXTERNAL_CONFIG')) {
Phar::mount('config.xml', EXTERNAL_CONFIG);
if (file_exists(__DIR__ . '/extra_config.xml')) {
Phar::mount('extra.xml', __DIR__ . '/extra_config.xml');
}
} else {
Phar::mount('config.xml', 'phar://' . __FILE__ . '/default_config.xml');
Phar::mount('extra.xml', 'phar://' . __FILE__ . '/default_extra.xml');
}
// now run the application
include 'phar://' . __FILE__ . '/index.php';
__HALT_COMPILER();
?>

...and the code externally to load this phar archive:

<?php
define('EXTERNAL_CONFIG', '/home/example/config.xml');
// now run the application
include '/path/to/archive.phar';
?>


Defines a list of up to 4 $_SERVER variables that should be modified for execution

  • « Phar::mount
  • Phar::offsetExists »
  • PHP Manual
  • Phar
  • Defines a list of up to 4 $_SERVER variables that should be modified for execution

Phar::mungServer

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution

Descrição

final public static Phar::mungServer(array $variables): void

Phar::mungServer() should only be called within the stub of a phar archive.

Defines a list of up to 4 $_SERVER variables that should be modified for execution. Variables that can be modified to remove traces of phar execution are REQUEST_URI, PHP_SELF, SCRIPT_NAME and SCRIPT_FILENAME.

On its own, this method does nothing. Only when combined with Phar::webPhar() does it take effect, and only when the requested file is a PHP file to be parsed. Note that the PATH_INFO and PATH_TRANSLATED variables are always modified.

The original values of variables that are modified are stored in the SERVER array with PHAR_ prepended, so for instance SCRIPT_NAME would be saved as PHAR_SCRIPT_NAME.

Parâmetros

variables

An array of any of the strings REQUEST_URI, PHP_SELF, SCRIPT_NAME and SCRIPT_FILENAME. Other values trigger an exception, and Phar::mungServer() is case-sensitive.

Valor Retornado

No return.

Erros/Exceções

Throws UnexpectedValueException if any problems are found with the passed in data.

Exemplos

Exemplo #1 A Phar::mungServer() example

<?php
// example stub
Phar::mungServer(array('REQUEST_URI'));
Phar::webPhar();
__HALT_COMPILER();
?>

Veja Também

  • Phar::webPhar() - Routes a request from a web browser to an internal file within the phar archive
  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive


Determines whether a file exists in the phar

  • « Phar::mungServer
  • Phar::offsetGet »
  • PHP Manual
  • Phar
  • Determines whether a file exists in the phar

Phar::offsetExists

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::offsetExists — Determines whether a file exists in the phar

Descrição

public Phar::offsetExists(string $localName): bool

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets.

offsetExists() is called whenever isset() is called.

Parâmetros

localName

The filename (relative path) to look for in a Phar.

Valor Retornado

Returns true if the file exists within the phar, or false if not.

Exemplos

Exemplo #1 A Phar::offsetExists() example

<?php
$p = new Phar(dirname(__FILE__) . '/my.phar', 0, 'my.phar');
$p['firstfile.txt'] = 'first file';
$p['secondfile.txt'] = 'second file';
// the next set of lines call offsetExists() indirectly
var_dump(isset($p['firstfile.txt']));
var_dump(isset($p['nothere.txt']));
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Veja Também

  • Phar::offsetGet() - Gets a PharFileInfo object for a specific file
  • Phar::offsetSet() - Set the contents of an internal file to those of an external file
  • Phar::offsetUnset() - Remove a file from a phar


Gets a PharFileInfo object for a specific file

  • « Phar::offsetExists
  • Phar::offsetSet »
  • PHP Manual
  • Phar
  • Gets a PharFileInfo object for a specific file

Phar::offsetGet

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::offsetGet — Gets a PharFileInfo object for a specific file

Descrição

public Phar::offsetGet(string $localName): SplFileInfo

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. Phar::offsetGet() is used for retrieving files from a Phar archive.

Parâmetros

localName

The filename (relative path) to look for in a Phar.

Valor Retornado

A PharFileInfo object is returned that can be used to iterate over a file's contents or to retrieve information about the current file.

Erros/Exceções

This method throws BadMethodCallException if the file does not exist in the Phar archive.

Exemplos

Exemplo #1 Phar::offsetGet() example

As with all classes that implement the ArrayAccess interface, Phar::offsetGet() is automatically called when using the [] angle bracket operator.

<?php
$p = new Phar(dirname(__FILE__) . '/myphar.phar', 0, 'myphar.phar');
$p['exists.txt'] = "file exists\n";
try {
// automatically calls offsetGet()
echo $p['exists.txt'];
echo $p['doesnotexist.txt'];
} catch (BadMethodCallException $e) {
echo $e;
}
?>

O exemplo acima produzirá:

file exists
Entry doesnotexist.txt does not exist

Veja Também

  • Phar::offsetExists() - Determines whether a file exists in the phar
  • Phar::offsetSet() - Set the contents of an internal file to those of an external file
  • Phar::offsetUnset() - Remove a file from a phar


Set the contents of an internal file to those of an external file

  • « Phar::offsetGet
  • Phar::offsetUnset »
  • PHP Manual
  • Phar
  • Set the contents of an internal file to those of an external file

Phar::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::offsetSet — Set the contents of an internal file to those of an external file

Descrição

public Phar::offsetSet(string $localName, resource|string $value): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a Phar archive.

Parâmetros

localName

The filename (relative path) to modify in a Phar.

value

Content of the file.

Valor Retornado

No return values.

Erros/Exceções

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

Exemplos

Exemplo #1 A Phar::offsetSet() example

offsetSet should not be accessed directly, but instead used via array access with the [] operator.

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
// calls offsetSet
$p['file.txt'] = 'Hi there';
} catch (Exception $e) {
echo 'Could not modify file.txt:', $e;
}
?>

Notas

Nota: Phar::addFile(), Phar::addFromString() e Phar::offsetSet() salvam um novo arquivo phar cada vez que são chamadas. Se o desempenho for uma preocupação, Phar::buildFromDirectory() ou Phar::buildFromIterator() devem ser usadas.

Veja Também

  • Phar::offsetExists() - Determines whether a file exists in the phar
  • Phar::offsetGet() - Gets a PharFileInfo object for a specific file
  • Phar::offsetUnset() - Remove a file from a phar


Remove a file from a phar

  • « Phar::offsetSet
  • Phar::running »
  • PHP Manual
  • Phar
  • Remove a file from a phar

Phar::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::offsetUnset — Remove a file from a phar

Descrição

public Phar::offsetUnset(string $localName): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetUnset is used for deleting an existing file, and is called by the unset() language construct.

Parâmetros

localName

The filename (relative path) to modify in a Phar.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

Exemplos

Exemplo #1 A Phar::offsetUnset() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
// deletes file.txt from my.phar by calling offsetUnset
unset($p['file.txt']);
} catch (Exception $e) {
echo 'Could not delete file.txt: ', $e;
}
?>

Veja Também

  • Phar::offsetExists() - Determines whether a file exists in the phar
  • Phar::offsetGet() - Gets a PharFileInfo object for a specific file
  • Phar::offsetSet() - Set the contents of an internal file to those of an external file
  • Phar::unlinkArchive() - Completely remove a phar archive from disk and from memory
  • Phar::delete() - Delete a file within a phar archive


Returns the full path on disk or full phar URL to the currently executing Phar archive

  • « Phar::offsetUnset
  • Phar::setAlias »
  • PHP Manual
  • Phar
  • Returns the full path on disk or full phar URL to the currently executing Phar archive

Phar::running

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive

Descrição

final public static Phar::running(bool $returnPhar = true): string

Returns the full path to the running phar archive. This is intended for use much like the __FILE__ magic constant, and only has effect inside an executing phar archive.

Inside the stub of an archive, Phar::running() returns "". Simply use __FILE__ to access the current running phar inside a stub.

Parâmetros

returnPhar

If false, the full path on disk to the phar archive is returned. If true, a full phar URL is returned.

Valor Retornado

Returns the filename if valid, empty string otherwise.

Exemplos

Exemplo #1 A Phar::running() example

For the following example, assume the phar archive is located at /path/to/phar/my.phar.

<?php
$a = Phar::running(); // $a is "phar:///path/to/my.phar"
$b = Phar::running(false); // $b is "/path/to/my.phar"
?>


Set the alias for the Phar archive

  • « Phar::running
  • Phar::setDefaultStub »
  • PHP Manual
  • Phar
  • Set the alias for the Phar archive

Phar::setAlias

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.1)

Phar::setAlias — Set the alias for the Phar archive

Descrição

public Phar::setAlias(string $alias): bool

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Set the alias for the Phar archive, and write it as the permanent alias for this phar archive. An alias can be used internally to a phar archive to ensure that use of the phar stream wrapper to access internal files always works regardless of the location of the phar archive on the filesystem. Another alternative is to rely upon Phar's interception of include or to use Phar::interceptFileFuncs() and use relative paths.

Parâmetros

alias

A shorthand string that this archive can be referred to in phar stream wrapper access.

Valor Retornado

Erros/Exceções

Throws UnexpectedValueException when write access is disabled, and PharException if the alias is already in use or any problems were encountered flushing changes to disk.

Exemplos

Exemplo #1 A Phar::setAlias() example

<?php
try {
$phar = new Phar('myphar.phar');
$phar->setAlias('myp.phar');
} catch (Exception $e) {
// handle error
}
?>

Veja Também

  • Phar::__construct() - Construct a Phar archive object
  • Phar::interceptFileFuncs() - Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions


Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

  • « Phar::setAlias
  • Phar::setMetadata »
  • PHP Manual
  • Phar
  • Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

Phar::setDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

Descrição

public Phar::setDefaultStub(?string $index = null, ?string $webIndex = null): bool

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

This method is a convenience method that combines the functionality of Phar::createDefaultStub() and Phar::setStub().

Parâmetros

index

Relative path within the phar archive to run if accessed on the command-line

webIndex

Relative path within the phar archive to run if accessed through a web browser

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.

Registro de Alterações

Versão | Descrição
8.0.0 | webIndex is nullable now.

Exemplos

Exemplo #1 A Phar::setDefaultStub() example

<?php
try {
$phar = new Phar('myphar.phar');
$phar->setDefaultStub('cli.php', 'web/index.php');
// this is the same as:
// $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
// handle errors
}
?>

Veja Também

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Create a phar-file format specific stub


Sets phar archive meta-data

  • « Phar::setDefaultStub
  • Phar::setSignatureAlgorithm »
  • PHP Manual
  • Phar
  • Sets phar archive meta-data

Phar::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::setMetadata — Sets phar archive meta-data

Descrição

public Phar::setMetadata(mixed $metadata): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Phar::setMetadata() should be used to store customized data that describes something about the phar archive as a complete entity. PharFileInfo::setMetadata() should be used for file-specific meta-data. Meta-data can slow down the performance of loading a phar archive if the data is large.

Some possible uses for meta-data include specifying which file within the archive should be used to bootstrap the archive, or the location of a file manifest like » PEAR's package.xml file. However, any useful data that describes the phar archive may be stored.

Parâmetros

metadata

Any PHP variable containing information to store that describes the phar archive

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 A Phar::setMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file.php'] = '<?php echo "hello"';
$p->setMetadata(array('bootstrap' => 'file.php'));
var_dump($p->getMetadata());
} catch (Exception $e) {
echo 'Could not create and/or modify phar:', $e;
}
?>

O exemplo acima produzirá:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Veja Também

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data


Set the signature algorithm for a phar and apply it

  • « Phar::setMetadata
  • Phar::setStub »
  • PHP Manual
  • Phar
  • Set the signature algorithm for a phar and apply it

Phar::setSignatureAlgorithm

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it

Descrição

public Phar::setSignatureAlgorithm(int $algo, ?string $privateKey = null): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::OPENSSL.

Note that all executable phar archives have a signature created automatically, SHA1 by default. data tar- or zip-based archives (archives created with the PharData class) must have their signature created and set explicitly via Phar::setSignatureAlgorithm().

Parâmetros

algo

    One of Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, or Phar::OPENSSL

privateKey

The contents of an OpenSSL private key, as extracted from a certificate or OpenSSL key file:

<?php
$private = openssl_get_privatekey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($private, $pkey);
$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
?>
See phar introduction for instructions on naming and placement of the public key file.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Throws UnexpectedValueException for many errors, and a PharException if any problems occur flushing changes to disk.

Registro de Alterações

Versão | Descrição
8.0.0 | privateKey is now nullable.

Veja Também

  • Phar::getSupportedSignatures() - Return array of supported signature types
  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive


Used to set the PHP loader or bootstrap stub of a Phar archive

  • « Phar::setSignatureAlgorithm
  • Phar::startBuffering »
  • PHP Manual
  • Phar
  • Used to set the PHP loader or bootstrap stub of a Phar archive

Phar::setStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive

Descrição

public Phar::setStub(resource|string $stub, int $length = -1): bool

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

This method is used to add a PHP bootstrap loader stub to a new Phar archive, or to replace the loader stub in an existing Phar archive.

The loader stub for a Phar archive is used whenever an archive is included directly as in this example:

<?php
include 'myphar.phar';
?>

The loader is not accessed when including a file through the phar stream wrapper like so:

<?php
include 'phar://myphar.phar/somefile.php';
?>

Parâmetros

stub

A string or an open stream handle to use as the executable stub for this phar archive.

length

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.

Registro de Alterações

Versão | Descrição
8.3.0 | Calling Phar::setStub() with a resource and a length is now deprecated. Such calls should be replaced by: $phar->setStub(stream_get_contents($resource));

Exemplos

Exemplo #1 A Phar::setStub() example

<?php
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['a.php'] = '<?php var_dump("Hello");';
$p->setStub('<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
include 'phar://brandnewphar.phar/a.php';
var_dump($p->getStub());
$p['b.php'] = '<?php var_dump("World");';
$p->setStub('<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
include 'phar://brandnewphar.phar/b.php';
var_dump($p->getStub());
} catch (Exception $e) {
echo 'Write operations failed on brandnewphar.phar: ', $e;
}
?>

O exemplo acima produzirá:

string(5) "Hello"
string(82) "<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"
string(5) "World"
string(83) "<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"

Veja Também

  • Phar::getStub() - Return the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Create a phar-file format specific stub


Start buffering Phar write operations, do not modify the Phar object on disk

  • « Phar::setStub
  • Phar::stopBuffering »
  • PHP Manual
  • Phar
  • Start buffering Phar write operations, do not modify the Phar object on disk

Phar::startBuffering

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk

Descrição

public Phar::startBuffering(): void

Although technically unnecessary, the Phar::startBuffering() method can provide a significant performance boost when creating or modifying a Phar archive with a large number of files. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes. In this way, the archive will be up-to-date with the activity performed on it.

However, this can be unnecessary when simply creating a new Phar archive, when it would make more sense to write the entire archive out at once. Similarly, it is often necessary to make a series of changes and to ensure that they all are possible before making any changes on disk, similar to the relational database concept of transactions. the Phar::startBuffering()/Phar::stopBuffering() pair of methods is provided for this purpose.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 A Phar::startBuffering() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\n";
$p->startBuffering();
$p['file.txt'] = 'hi';
$p['file2.txt'] = 'there';
$p['file2.txt']->setCompressedGZ();
$p['file3.txt'] = 'babyface';
$p['file3.txt']->setMetadata(42);
$p->setStub("<?php
function __autoload($class)
{
include 'phar://myphar.phar/' . str_replace('_', '/', $class) . '.php';
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER();");
$p->stopBuffering();
?>

Veja Também

  • Phar::stopBuffering() - Stop buffering write requests to the Phar archive, and save changes to disk
  • Phar::isBuffering() - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk


Stop buffering write requests to the Phar archive, and save changes to disk

  • « Phar::startBuffering
  • Phar::unlinkArchive »
  • PHP Manual
  • Phar
  • Stop buffering write requests to the Phar archive, and save changes to disk

Phar::stopBuffering

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk

Descrição

public Phar::stopBuffering(): void

Phar::stopBuffering() is used in conjunction with the Phar::startBuffering() method. Phar::startBuffering() can provide a significant performance boost when creating or modifying a Phar archive with a large number of files. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes. In this way, the archive will be up-to-date with the activity performed on it.

However, this can be unnecessary when simply creating a new Phar archive, when it would make more sense to write the entire archive out at once. Similarly, it is often necessary to make a series of changes and to ensure that they all are possible before making any changes on disk, similar to the relational database concept of transactions. The Phar::startBuffering()/Phar::stopBuffering() pair of methods is provided for this purpose.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

PharException is thrown if any problems are encountered flushing changes to disk.

Exemplos

Exemplo #1 A Phar::stopBuffering() example

<?php
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file1.txt'] = 'hi';
$p->startBuffering();
var_dump($p->getStub());
$p->setStub("<?php
function __autoload(\$class)
{
include 'phar://brandnewphar.phar/' . str_replace('_', '/', \$class) . '.php';
}
Phar::mapPhar('brandnewphar.phar');
include 'phar://brandnewphar.phar/startup.php';
__HALT_COMPILER();");
$p->stopBuffering();
var_dump($p->getStub());
?>

O exemplo acima produzirá:

string(24) "<?php __HALT_COMPILER();"
string(195) "<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('brandnewphar.phar');
include 'phar://brandnewphar.phar/startup.php';
__HALT_COMPILER();"

Veja Também

  • Phar::startBuffering() - Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::isBuffering() - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk


Completely remove a phar archive from disk and from memory

  • « Phar::stopBuffering
  • Phar::webPhar »
  • PHP Manual
  • Phar
  • Completely remove a phar archive from disk and from memory

Phar::unlinkArchive

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::unlinkArchive — Completely remove a phar archive from disk and from memory

Descrição

final public static Phar::unlinkArchive(string $filename): bool

Removes a phar archive from disk and memory.

Parâmetros

filename

The path on disk to the phar archive.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

PharException is thrown if there are any open file pointers to the phar archive, or any existing Phar, PharData, or PharFileInfo objects referring to the phar archive.

Exemplos

Exemplo #1 A Phar::unlinkArchive() example

<?php
// simple usage
Phar::unlinkArchive('/path/to/my.phar');

// more common example:
$p = new Phar('my.phar');
$fp = fopen('phar://my.phar/file.txt', 'r');
// this creates 'my.phar.gz'
$gp = $p->compress(Phar::GZ);
// remove all references to the archive
unset($p);
fclose($fp);
// now remove all traces of the archive
Phar::unlinkArchive('my.phar');
?>

Veja Também

  • Phar::delete() - Delete a file within a phar archive
  • Phar::offsetUnset() - Remove a file from a phar


Routes a request from a web browser to an internal file within the phar archive

  • « Phar::unlinkArchive
  • PharData »
  • PHP Manual
  • Phar
  • Routes a request from a web browser to an internal file within the phar archive

Phar::webPhar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::webPhar — Routes a request from a web browser to an internal file within the phar archive

Descrição

final public static Phar::webPhar(
?string $alias = null,
?string $index = null,
?string $fileNotFoundScript = null,
array $mimeTypes = [],
?callable $rewrite = null
): void

Phar::webPhar() serves as Phar::mapPhar() for web-based phars. This method parses $_SERVER['REQUEST_URI'] and routes a request from a web browser to an internal file within the phar archive. It simulates a web server, routing requests to the correct file, echoing the correct headers and parsing PHP files as needed. Combined with Phar::mungServer() and Phar::interceptFileFuncs(), any web application can be used unmodified from a phar archive.

Phar::webPhar() should only be called from the stub of a phar archive (see here for more information on what a stub is).

Parâmetros

alias

The alias that can be used in phar:// URLs to refer to this archive, rather than its full path.

index

The location within the phar of the directory index.

fileNotFoundScript

The location of the script to run when a file is not found. This script should output the proper HTTP 404 headers.

mimeTypes

An array mapping additional file extensions to MIME type. If the default mapping is sufficient, pass an empty array. By default, these extensions are mapped to these MIME types:

<?php
$mimes = array(
'phps' => Phar::PHPS, // pass to highlight_file()
'c' => 'text/plain',
'cc' => 'text/plain',
'cpp' => 'text/plain',
'c++' => 'text/plain',
'dtd' => 'text/plain',
'h' => 'text/plain',
'log' => 'text/plain',
'rng' => 'text/plain',
'txt' => 'text/plain',
'xsd' => 'text/plain',
'php' => Phar::PHP, // parse as PHP
'inc' => Phar::PHP, // parse as PHP
'avi' => 'video/avi',
'bmp' => 'image/bmp',
'css' => 'text/css',
'gif' => 'image/gif',
'htm' => 'text/html',
'html' => 'text/html',
'htmls' => 'text/html',
'ico' => 'image/x-ico',
'jpe' => 'image/jpeg',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'js' => 'application/x-javascript',
'midi' => 'audio/midi',
'mid' => 'audio/midi',
'mod' => 'audio/mod',
'mov' => 'movie/quicktime',
'mp3' => 'audio/mp3',
'mpg' => 'video/mpeg',
'mpeg' => 'video/mpeg',
'pdf' => 'application/pdf',
'png' => 'image/png',
'swf' => 'application/shockwave-flash',
'tif' => 'image/tiff',
'tiff' => 'image/tiff',
'wav' => 'audio/wav',
'xbm' => 'image/xbm',
'xml' => 'text/xml',
);
?>

rewrite

The rewrites function is passed a string as its only parameter and must return a string or false.

If you are using fast-cgi or cgi then the parameter passed to the function is the value of the $_SERVER['PATH_INFO'] variable. Otherwise, the parameter passed to the function is the value of the $_SERVER['REQUEST_URI'] variable.

If a string is returned it is used as the internal file path. If false is returned then webPhar() will send a HTTP 403 Denied Code.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Throws PharException when unable to open the internal file to output, or if called from a non-stub. If an invalid array value is passed into mimeTypes or an invalid callback is passed into rewrite, then UnexpectedValueException is thrown.

Registro de Alterações

Versão | Descrição
8.0.0 | fileNotFoundScript and rewrite are nullable now.

Exemplos

Exemplo #1 A Phar::webPhar() example

With the example below, the created phar will display Hello World if one browses to /myphar.phar/index.php or to /myphar.phar, and will display the source of index.phps if one browses to /myphar.phar/index.phps.

<?php
// creating the phar archive:
try {
$phar = new Phar('myphar.phar');
$phar['index.php'] = '<?php echo "Hello World"; ?>';
$phar['index.phps'] = '<?php echo "Hello World"; ?>';
$phar->setStub('<?php
Phar::webPhar();
__HALT_COMPILER(); ?>');
} catch (Exception $e) {
// handle error here
}
?>

Veja Também

  • Phar::mungServer() - Defines a list of up to 4 $_SERVER variables that should be modified for execution
  • Phar::interceptFileFuncs() - Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions


The PharData class

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Introdução

The PharData class provides a high-level interface to accessing and creating non-executable tar and zip archives. Because these archives do not contain a stub and cannot be executed by the phar extension, it is possible to create and manipulate regular zip and tar files using the PharData class even if phar.readonly php.ini setting is 1.

Resumo da classe

class PharData extends RecursiveDirectoryIterator implements Countable, ArrayAccess {
/* Constantes herdadas */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Métodos */
public __construct(
string $filename,
int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS,
?string $alias = null,
int $format = 0
)
public addEmptyDir(string $directory): void
public addFile(string $filename, ?string $localName = null): void
public addFromString(string $localName, string $contents): void
public buildFromDirectory(string $directory, string $pattern = ""): array
public buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array
public compress(int $compression, ?string $extension = null): ?PharData
public compressFiles(int $compression): void
public convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData
public convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar
public copy(string $from, string $to): bool
public decompress(?string $extension = null): ?PharData
public decompressFiles(): bool
public delMetadata(): bool
public delete(string $localName): bool
public extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool
public isWritable(): bool
public offsetSet(string $localName, resource|string $value): void
public offsetUnset(string $localName): void
public setAlias(string $alias): bool
public setDefaultStub(?string $index = null, ?string $webIndex = null): bool
public setMetadata(mixed $metadata): void
public setSignatureAlgorithm(int $algo, ?string $privateKey = null): void
public setStub(string $stub, int $len = -1): bool
public __destruct()
/* Métodos herdados */
public RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
public RecursiveDirectoryIterator::getSubPath(): string
public RecursiveDirectoryIterator::getSubPathname(): string
public RecursiveDirectoryIterator::hasChildren(bool $allowLinks = false): bool
public RecursiveDirectoryIterator::key(): string
public RecursiveDirectoryIterator::next(): void
public RecursiveDirectoryIterator::rewind(): void
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Índice

  • PharData::addEmptyDir — Add an empty directory to the tar/zip archive
  • PharData::addFile — Add a file from the filesystem to the tar/zip archive
  • PharData::addFromString — Add a file from a string to the tar/zip archive
  • PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory
  • PharData::buildFromIterator — Construct a tar or zip archive from an iterator
  • PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::compressFiles — Compresses all files in the current tar/zip archive
  • PharData::__construct — Construct a non-executable tar or zip archive object
  • PharData::convertToData — Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::copy — Copy a file internal to the phar archive to another new file within the phar
  • PharData::decompress — Decompresses the entire Phar archive
  • PharData::decompressFiles — Decompresses all files in the current zip archive
  • PharData::delMetadata — Deletes the global metadata of a zip archive
  • PharData::delete — Delete a file within a tar/zip archive
  • PharData::__destruct — Destructs a non-executable tar or zip archive object
  • PharData::extractTo — Extract the contents of a tar/zip archive to a directory
  • PharData::isWritable — Returns true if the tar/zip archive can be modified
  • PharData::offsetSet — Set the contents of a file within the tar/zip to those of an external file or string
  • PharData::offsetUnset — Remove a file from a tar/zip archive
  • PharData::setAlias — Dummy function (Phar::setAlias is not valid for PharData)
  • PharData::setDefaultStub — Dummy function (Phar::setDefaultStub is not valid for PharData)
  • PharData::setMetadata — Sets phar archive meta-data
  • PharData::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it
  • PharData::setStub — Dummy function (Phar::setStub is not valid for PharData)


Add an empty directory to the tar/zip archive

  • « PharData
  • PharData::addFile »
  • PHP Manual
  • PharData
  • Add an empty directory to the tar/zip archive

PharData::addEmptyDir

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::addEmptyDir — Add an empty directory to the tar/zip archive

Descrição

public PharData::addEmptyDir(string $directory): void

With this method, an empty directory is created with path dirname. This method is similar to ZipArchive::addEmptyDir().

Parâmetros

directory

The name of the empty directory to create in the phar archive

Valor Retornado

no return value, exception is thrown on failure.

Exemplos

Exemplo #1 A PharData::addEmptyDir() example

<?php
try {
$a = new PharData('/path/to/my.tar');

$a->addEmptyDir('/full/path/to/file');
// demonstrates how this file is stored
$b = $a['full/path/to/file']->isDir();
} catch (Exception $e) {
// handle errors here
}
?>

Veja Também

  • Phar::addEmptyDir() - Add an empty directory to the phar archive
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • PharData::addFromString() - Add a file from a string to the tar/zip archive


Add a file from the filesystem to the tar/zip archive

  • « PharData::addEmptyDir
  • PharData::addFromString »
  • PHP Manual
  • PharData
  • Add a file from the filesystem to the tar/zip archive

PharData::addFile

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::addFile — Add a file from the filesystem to the tar/zip archive

Descrição

public PharData::addFile(string $filename, ?string $localName = null): void

With this method, any file or URL can be added to the tar/zip archive. If the optional second parameter localname is specified, the file will be stored in the archive with that name, otherwise the file parameter is used as the path to store within the archive. URLs must have a localname or an exception is thrown. This method is similar to ZipArchive::addFile().

Parâmetros

filename

Full or relative path to a file on disk to be added to the phar archive.

localName

Path that the file will be stored in the archive.

Valor Retornado

no return value, exception is thrown on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | localName is now nullable.

Exemplos

Exemplo #1 A PharData::addFile() example

<?php
try {
$a = new PharData('/path/to/my.tar');

$a->addFile('/full/path/to/file');
// demonstrates how this file is stored
$b = $a['full/path/to/file']->getContent();

$a->addFile('/full/path/to/file', 'my/file.txt');
$c = $a['my/file.txt']->getContent();

// demonstrate URL usage
$a->addFile('http://www.example.com', 'example.html');
} catch (Exception $e) {
// handle errors here
}
?>

Notas

Nota: PharData::addFile(), PharData::addFromString() e PharData::offsetSet() salvam um novo arquivo phar cada vez que são chamadas. Se o desempenho for uma preocupação, PharData::buildFromDirectory() ou PharData::buildFromIterator() devem ser usadas.

Veja Também

  • PharData::offsetSet() - Set the contents of a file within the tar/zip to those of an external file or string
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • PharData::addFromString() - Add a file from a string to the tar/zip archive
  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive


Add a file from a string to the tar/zip archive

  • « PharData::addFile
  • PharData::buildFromDirectory »
  • PHP Manual
  • PharData
  • Add a file from a string to the tar/zip archive

PharData::addFromString

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::addFromString — Add a file from a string to the tar/zip archive

Descrição

public PharData::addFromString(string $localName, string $contents): void

With this method, any string can be added to the tar/zip archive. The file will be stored in the archive with localname as its path. This method is similar to ZipArchive::addFromString().

Parâmetros

localName

Path that the file will be stored in the archive.

contents

The file contents to store

Valor Retornado

no return value, exception is thrown on failure.

Exemplos

Exemplo #1 A PharData::addFromString() example

<?php
try {
$a = new PharData('/path/to/my.tar');

$a->addFromString('path/to/file.txt', 'my simple file');
$b = $a['path/to/file.txt']->getContent();

// to add contents from a stream handle for large files, use offsetSet()
$c = fopen('/path/to/hugefile.bin');
$a['largefile.bin'] = $c;
fclose($c);
} catch (Exception $e) {
// handle errors here
}
?>

Notas

Nota: PharData::addFile(), PharData::addFromString() e PharData::offsetSet() salvam um novo arquivo phar cada vez que são chamadas. Se o desempenho for uma preocupação, PharData::buildFromDirectory() ou PharData::buildFromIterator() devem ser usadas.

Veja Também

  • PharData::offsetSet() - Set the contents of a file within the tar/zip to those of an external file or string
  • Phar::addFromString() - Add a file from a string to the phar archive
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive


Construct a tar/zip archive from the files within a directory

  • « PharData::addFromString
  • PharData::buildFromIterator »
  • PHP Manual
  • PharData
  • Construct a tar/zip archive from the files within a directory

PharData::buildFromDirectory

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory

Descrição

public PharData::buildFromDirectory(string $directory, string $pattern = ""): array

Populate a tar/zip archive from directory contents. The optional second parameter is a regular expression (pcre) that is used to exclude files. Any filename that matches the regular expression will be included, all others will be excluded. For more fine-grained control, use PharData::buildFromIterator().

Parâmetros

directory

The full or relative path to the directory that contains all files to add to the archive.

pattern

An optional pcre regular expression that is used to filter the list of files. Only file paths matching the regular expression will be included in the archive.

Valor Retornado

Phar::buildFromDirectory() returns an associative array mapping internal path of file to the full path of the file on the filesystem, ou false em caso de falha.

Erros/Exceções

This method throws BadMethodCallException when unable to instantiate the internal directory iterators, or a PharException if there were errors saving the phar archive.

Registro de Alterações

Versão | Descrição
8.1.0 | PharData::buildFromDirectory() no longer returns false.

Exemplos

Exemplo #1 A PharData::buildFromDirectory() example

<?php
$phar = new PharData('project.tar');
// add all files in the project
$phar->buildFromDirectory(dirname(__FILE__) . '/project');

$phar2 = new PharData('project2.zip');
// add all files in the project, only include php files
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
?>

Veja Também

  • Phar::buildFromDirectory() - Construct a phar archive from the files within a directory
  • PharData::buildFromIterator() - Construct a tar or zip archive from an iterator


Construct a tar or zip archive from an iterator

  • « PharData::buildFromDirectory
  • PharData::compress »
  • PHP Manual
  • PharData
  • Construct a tar or zip archive from an iterator

PharData::buildFromIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::buildFromIterator — Construct a tar or zip archive from an iterator

Descrição

public PharData::buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array

Populate a tar or zip archive from an iterator. Two styles of iterators are supported, iterators that map the filename within the tar/zip to the name of a file on disk, and iterators like DirectoryIterator that return SplFileInfo objects. For iterators that return SplFileInfo objects, the second parameter is required.

Parâmetros

iterator

Any iterator that either associatively maps tar/zip file to location or returns SplFileInfo objects

baseDirectory

For iterators that return SplFileInfo objects, the portion of each file's full path to remove when adding to the tar/zip archive

Valor Retornado

PharData::buildFromIterator() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Erros/Exceções

This method returns UnexpectedValueException when the iterator returns incorrect values, such as an integer key instead of a string, a BadMethodCallException when an SplFileInfo-based iterator is passed without a baseDirectory parameter, or a PharException if there were errors saving the phar archive.

Registro de Alterações

Versão | Descrição
8.1.0 | PharData::buildFromIterator() no longer returns false.
8.0.0 | baseDirectory is now nullable.

Exemplos

Exemplo #1 A PharData::buildFromIterator() with SplFileInfo

For most tar/zip archives, the archive will reflect an actual directory layout, and the second style is the most useful. For instance, to create a tar/zip archive containing the files in this sample directory layout:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

This code could be used to add these files to the "project.tar" tar archive:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
new RecursiveIteratorIterator(
new RecursiveDirectoryIterator('/path/to/project')),
'/path/to/project');
?>

The file project.tar can then be used immediately. PharData::buildFromIterator() does not set values such as compression, metadata, and this can be done after creating the tar/zip archive.

As an interesting note, PharData::buildFromIterator() can also be used to copy the contents of an existing phar, tar or zip archive, as the PharData object descends from DirectoryIterator:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
new RecursiveIteratorIterator(
new Phar('/path/to/anotherphar.phar')),
'phar:///path/to/anotherphar.phar/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Exemplo #2 A PharData::buildFromIterator() with other iterators

The second form of the iterator can be used with any iterator that returns a key => value mapping, such as an ArrayIterator:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
new ArrayIterator(
array(
'internal/file.php' => dirname(__FILE__) . '/somefile.php',
'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
)));
?>

Veja Também

  • Phar::buildFromIterator() - Construct a phar archive from an iterator


Compresses the entire tar/zip archive using Gzip or Bzip2 compression

  • « PharData::buildFromIterator
  • PharData::compressFiles »
  • PHP Manual
  • PharData
  • Compresses the entire tar/zip archive using Gzip or Bzip2 compression

PharData::compress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression

Descrição

public PharData::compress(int $compression, ?string $extension = null): ?PharData

For tar archives, this method compresses the entire archive using gzip compression or bzip2 compression. The resulting file can be processed with the gunzip command/bunzip command, or accessed directly and transparently with the Phar extension.

For zip archives, this method fails with an exception. The zlib extension must be enabled to compress with gzip compression, the bzip2 extension must be enabled in order to compress with bzip2 compression.

In addition, this method automatically renames the archive, appending .gz, .bz2 or removing the extension if passed Phar::NONE to remove compression. Alternatively, a file extension may be specified with the second parameter.

Parâmetros

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

extension

By default, the extension is .tar.gz or .tar.bz2 for compressing a tar, and .tar for decompressing.

Valor Retornado

A PharData object is returned on success, or null on failure.

Erros/Exceções

Throws BadMethodCallException if the zlib extension is not available, or the bzip2 extension is not enabled.

Registro de Alterações

Versão | Descrição
8.0.0 | extension is now nullable.

Exemplos

Exemplo #1 A PharData::compress() example

<?php
$p = new PharData('/path/to/my.tar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.tar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.tar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.tar already exists
?>

Veja Também

  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression


Compresses all files in the current tar/zip archive

  • « PharData::compress
  • PharData::__construct »
  • PHP Manual
  • PharData
  • Compresses all files in the current tar/zip archive

PharData::compressFiles

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::compressFiles — Compresses all files in the current tar/zip archive

Descrição

public PharData::compressFiles(int $compression): void

For tar-based archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use PharData::compress() to compress an entire tar-based archive.

For Zip-based archives, this method compresses all files in the archive using the specified compression. The zlib or bzip2 extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing.

Parâmetros

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Exemplos

Exemplo #1 A PharData::compressFiles() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
?>

O exemplo acima produzirá:

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::decompressFiles() - Decompresses all files in the current zip archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::decompress() - Decompresses the entire Phar archive


Construct a non-executable tar or zip archive object

  • « PharData::compressFiles
  • PharData::convertToData »
  • PHP Manual
  • PharData
  • Construct a non-executable tar or zip archive object

PharData::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::__construct — Construct a non-executable tar or zip archive object

Descrição

public PharData::__construct(
string $filename,
int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS,
?string $alias = null,
int $format = 0
)

Parâmetros

filename

Path to an existing tar/zip archive or to-be-created archive

flags

Flags to pass to Phar parent class RecursiveDirectoryIterator.

alias

Alias with which this Phar archive should be referred to in calls to stream functionality.

format

One of the file format constants available within the Phar class.

Erros/Exceções

Throws BadMethodCallException if called twice; UnexpectedValueException if the Phar archive can't be opened.

Exemplos

Exemplo #1 A PharData::__construct() example

<?php
try {
$p = new PharData('/path/to/my.tar', Phar::CURRENT_AS_FILEINFO | Phar::KEY_AS_FILENAME);
} catch (UnexpectedValueException $e) {
die('Could not open my.tar');
} catch (BadMethodCallException $e) {
echo 'technically, this cannot happen';
}
echo file_get_contents('phar:///path/to/my.tar/example.txt');
?>


Convert a phar archive to a non-executable tar or zip file

  • « PharData::__construct
  • PharData::convertToExecutable »
  • PHP Manual
  • PharData
  • Convert a phar archive to a non-executable tar or zip file

PharData::convertToData

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::convertToData — Convert a phar archive to a non-executable tar or zip file

Descrição

public PharData::convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData

This method is used to convert a non-executable tar or zip archive to another non-executable format.

If no changes are specified, this method throws a BadMethodCallException. This method should be used to convert a tar archive to zip format or vice-versa. Although it is possible to simply change the compression of a tar archive using this method, it is better to use the PharData::compress() method for logical consistency.

If successful, the method creates a new archive on disk and returns a PharData object. The old archive is not removed from disk, and should be done manually after the process has finished.

Parâmetros

format

This should be one of Phar::TAR or Phar::ZIP. If set to null, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that .phar cannot be used anywhere in the filename for a non-executable tar or zip archive.

If converting to a tar-based phar archive, the default extensions are .tar, .tar.gz, and .tar.bz2 depending on specified compression. For zip-based archives, the default extension is .zip.

Valor Retornado

The method returns a PharData object on success, or null on failure.

Erros/Exceções

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), and a PharException if any problems are encountered during the phar creation process.

Registro de Alterações

Versão | Descrição
8.0.0 | format, compression, and extension are now nullable.

Exemplos

Exemplo #1 A PharData::convertToData() example

Using PharData::convertToData():

<?php
try {
$tarphar = new PharData('myphar.tar');
// note that myphar.tar is *not* unlinked
// convert it to the non-executable tar file format
// creates myphar.zip
$zip = $tarphar->convertToData(Phar::ZIP);
// create myphar.tbz
$tgz = $zip->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
// creates myphar.phar.tgz
$phar = $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
// handle the error here
}
?>

Veja Também

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive


Convert a non-executable tar/zip archive to an executable phar archive

  • « PharData::convertToData
  • PharData::copy »
  • PHP Manual
  • PharData
  • Convert a non-executable tar/zip archive to an executable phar archive

PharData::convertToExecutable

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive

Descrição

public PharData::convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

This method is used to convert a non-executable tar or zip archive to an executable phar archive. Any of the three executable file formats (phar, tar or zip) can be used, and whole-archive compression can also be performed.

If no changes are specified, this method throws a BadMethodCallException.

If successful, the method creates a new archive on disk and returns a Phar object. The old archive is not removed from disk, and should be done manually after the process has finished.

Parâmetros

format

This should be one of Phar::PHAR, Phar::TAR, or Phar::ZIP. If set to null, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that all zip- and tar-based phar archives must contain .phar in their file extension in order to be processed as a phar archive.

If converting to a phar-based archive, the default extensions are .phar, .phar.gz, or .phar.bz2 depending on the specified compression. For tar-based phar archives, the default extensions are .phar.tar, .phar.tar.gz, and .phar.tar.bz2. For zip-based phar archives, the default extension is .phar.zip.

Valor Retornado

The method returns a Phar object on success, or null on failure.

Erros/Exceções

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), an UnexpectedValueException if write support is disabled, and a PharException if any problems are encountered during the phar creation process.

Registro de Alterações

Versão | Descrição
8.0.0 | format, compression, and localName are now nullable.

Exemplos

Exemplo #1 A PharData::convertToExecutable() example

Using PharData::convertToExecutable():

<?php
try {
$tarphar = new PharData('myphar.tar');
// convert it to the phar file format
// note that myphar.tar is *not* unlinked
$phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// creates myphar.phar.tgz
$compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// handle the error here
}
?>

Veja Também

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file


Copy a file internal to the phar archive to another new file within the phar

  • « PharData::convertToExecutable
  • PharData::decompress »
  • PHP Manual
  • PharData
  • Copy a file internal to the phar archive to another new file within the phar

PharData::copy

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::copy — Copy a file internal to the phar archive to another new file within the phar

Descrição

public PharData::copy(string $from, string $to): bool

Copy a file internal to the tar/zip archive to another new file within the same archive. This is an object-oriented alternative to using copy() with the phar stream wrapper.

Parâmetros

from

to

Valor Retornado

returns true on success, but it is safer to encase method call in a try/catch block and assume success if no exception is thrown.

Erros/Exceções

throws UnexpectedValueException if the source file does not exist, the destination file already exists, write access is disabled, opening either file fails, reading the source file fails, or a PharException if writing the changes to the phar fails.

Exemplos

Exemplo #1 A PharData::copy() example

This example shows using PharData::copy() and the equivalent stream wrapper performance of the same thing. The primary difference between the two approaches is error handling. All PharData methods throw exceptions, whereas the stream wrapper uses trigger_error().

<?php
try {
$phar = new PharData('myphar.tar');
$phar['a'] = 'hi';
$phar->copy('a', 'b');
echo $phar['b']; // outputs "phar://myphar.tar/b"
} catch (Exception $e) {
// handle error
}

// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.tar/a', 'phar//myphar.tar/c');
echo file_get_contents('phar://myphar.tar/c'); // outputs "hi"
?>


Decompresses the entire Phar archive

  • « PharData::copy
  • PharData::decompressFiles »
  • PHP Manual
  • PharData
  • Decompresses the entire Phar archive

PharData::decompress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::decompress — Decompresses the entire Phar archive

Descrição

public PharData::decompress(?string $extension = null): ?PharData

For tar-based archives, this method decompresses the entire archive.

For Zip-based archives, this method fails with an exception. The zlib extension must be enabled to decompress an archive compressed with gzip compression, and the bzip2 extension must be enabled in order to decompress an archive compressed with bzip2 compression.

In addition, this method automatically renames the file extension of the archive, .tar by default. Alternatively, a file extension may be specified with the extension parameter.

Parâmetros

extension

For decompressing, the default file extension is .tar. Use this parameter to specify another file extension. Be aware that only executable archives can contain .phar in their filename.

Valor Retornado

A PharData object is returned on success, or null on failure.

Erros/Exceções

Throws BadMethodCallException if the zlib extension is not available, or the bzip2 extension is not enabled.

Registro de Alterações

Versão | Descrição
8.0.0 | extension is now nullable.

Exemplos

Exemplo #1 A PharData::decompress() example

<?php
$p = new PharData('/path/to/my.tar.gz');
$p->decompress(); // creates /path/to/my.tar
?>

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compressFiles() - Compresses all files in the current tar/zip archive
  • PharData::decompressFiles() - Decompresses all files in the current zip archive


Decompresses all files in the current zip archive

  • « PharData::decompress
  • PharData::delMetadata »
  • PHP Manual
  • PharData
  • Decompresses all files in the current zip archive

PharData::decompressFiles

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::decompressFiles — Decompresses all files in the current zip archive

Descrição

public PharData::decompressFiles(): bool

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

For tar-based archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use PharData::compress() to compress an entire tar-based archive.

For Zip-based archives, this method decompresses all files in the archive. The zlib or bzip2 extensions must be enabled to take advantage of this feature if any files are compressed using bzip2/zlib compression.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Throws BadMethodCallException if the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Exemplos

Exemplo #1 A PharData::decompressFiles() example

<?php
$p = new PharData('/path/to/my.zip');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
?>

O exemplo acima produzirá:

string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::compressFiles() - Compresses all files in the current tar/zip archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::decompress() - Decompresses the entire Phar archive


Deletes the global metadata of a zip archive

  • « PharData::decompressFiles
  • PharData::delete »
  • PHP Manual
  • PharData
  • Deletes the global metadata of a zip archive

PharData::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::delMetadata — Deletes the global metadata of a zip archive

Descrição

public PharData::delMetadata(): bool

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Deletes the global metadata of the zip archive

Parâmetros

Valor Retornado

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Erros/Exceções

Throws PharException if errors occur while flushing changes to disk.

Exemplos

Exemplo #1 A PharData::delMetaData() example

<?php
try {
$phar = new PharData('myphar.zip');
var_dump($phar->getMetadata());
$phar->setMetadata("hi there");
var_dump($phar->getMetadata());
$phar->delMetadata();
var_dump($phar->getMetadata());
} catch (Exception $e) {
// handle errors
}
?>

O exemplo acima produzirá:

NULL
string(8) "hi there"
NULL

Veja Também

  • Phar::delMetadata() - Deletes the global metadata of the phar


Delete a file within a tar/zip archive

  • « PharData::delMetadata
  • PharData::__destruct »
  • PHP Manual
  • PharData
  • Delete a file within a tar/zip archive

PharData::delete

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::delete — Delete a file within a tar/zip archive

Descrição

public PharData::delete(string $localName): bool

Delete a file within an archive. This is the functional equivalent of calling unlink() on the stream wrapper equivalent, as shown in the example below.

Parâmetros

localName

Path within an archive to the file to delete.

Valor Retornado

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Erros/Exceções

Throws PharException if errors occur while flushing changes to disk.

Exemplos

Exemplo #1 A PharData::delete() example

<?php
try {
$phar = new PharData('myphar.zip');
$phar->delete('unlink/me.php');
// this is equivalent to:
unlink('phar://myphar.phar/unlink/me.php');
} catch (Exception $e) {
// handle errors
}
?>

Veja Também

  • Phar::delete() - Delete a file within a phar archive


Destructs a non-executable tar or zip archive object

  • « PharData::delete
  • PharData::extractTo »
  • PHP Manual
  • PharData
  • Destructs a non-executable tar or zip archive object

PharData::__destruct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::__destruct — Destructs a non-executable tar or zip archive object

Descrição

public PharData::__destruct()

Parâmetros

Esta função não possui parâmetros.


Extract the contents of a tar/zip archive to a directory

  • « PharData::__destruct
  • PharData::isWritable »
  • PHP Manual
  • PharData
  • Extract the contents of a tar/zip archive to a directory

PharData::extractTo

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::extractTo — Extract the contents of a tar/zip archive to a directory

Descrição

public PharData::extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool

Extract all files within a tar/zip archive to disk. Extracted files and directories preserve permissions as stored in the archive. The optional parameters allow optional control over which files are extracted, and whether existing files on disk can be overwritten. The second parameter files can be either the name of a file or directory to extract, or an array of names of files and directories to extract. By default, this method will not overwrite existing files, the third parameter can be set to true to enable overwriting of files. This method is similar to ZipArchive::extractTo().

Parâmetros

directory

Path to extract the given files to

files

The name of a file or directory to extract, or an array of files/directories to extract

overwrite

Set to true to enable overwriting existing files

Valor Retornado

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Erros/Exceções

Throws PharException if errors occur while flushing changes to disk.

Exemplos

Exemplo #1 A PharData::extractTo() example

<?php
try {
$phar = new PharData('myphar.tar');
$phar->extractTo('/full/path'); // extract all files
$phar->extractTo('/another/path', 'file.txt'); // extract only file.txt
$phar->extractTo('/this/path',
array('file1.txt', 'file2.txt')); // extract 2 files only
$phar->extractTo('/third/path', null, true); // extract all files, and overwrite
} catch (Exception $e) {
// handle errors
}
?>

Notas

Nota:

O sistema de arquivos NTFS do Windows não suporta alguns caracteres em nomes de arquivos, como <|>*?":. Nomes de arquivos que terminam com ponto também não são suportados. Ao contrário de algumas ferramentas de extração, este método não substitui estes caracteres por um sublinhado, mas falha ao extrair esses arquivos.

Veja Também

  • Phar::extractTo() - Extract the contents of a phar archive to a directory


Returns true if the tar/zip archive can be modified

  • « PharData::extractTo
  • PharData::offsetSet »
  • PHP Manual
  • PharData
  • Returns true if the tar/zip archive can be modified

PharData::isWritable

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::isWritable — Returns true if the tar/zip archive can be modified

Descrição

public PharData::isWritable(): bool

This method returns true if the tar/zip archive on disk is not read-only. Unlike Phar::isWritable(), data-only tar/zip archives can be modified even if phar.readonly is set to 1.

Parâmetros

No parameters.

Valor Retornado

Returns true if the tar/zip archive can be modified

Veja Também

  • Phar::canWrite() - Returns whether phar extension supports writing and creating phars
  • Phar::isWritable() - Returns true if the phar archive can be modified


Set the contents of a file within the tar/zip to those of an external file or string

  • « PharData::isWritable
  • PharData::offsetUnset »
  • PHP Manual
  • PharData
  • Set the contents of a file within the tar/zip to those of an external file or string

PharData::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::offsetSet — Set the contents of a file within the tar/zip to those of an external file or string

Descrição

public PharData::offsetSet(string $localName, resource|string $value): void

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a tar/zip archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a tar/zip archive.

Parâmetros

localName

The filename (relative path) to modify in a tar or zip archive.

value

Content of the file.

Valor Retornado

No return values.

Erros/Exceções

Throws PharException if there are any problems flushing changes made to the tar/zip archive to disk.

Exemplos

Exemplo #1 A PharData::offsetSet() example

offsetSet should not be accessed directly, but instead used via array access with the [] operator.

<?php
$p = new PharData('/path/to/my.tar');
try {
// calls offsetSet
$p['file.txt'] = 'Hi there';
} catch (Exception $e) {
echo 'Could not modify file.txt:', $e;
}
?>

Notas

Nota: PharData::addFile(), PharData::addFromString() e PharData::offsetSet() salvam um novo arquivo phar cada vez que são chamadas. Se o desempenho for uma preocupação, PharData::buildFromDirectory() ou PharData::buildFromIterator() devem ser usadas.

Veja Também

  • Phar::offsetSet() - Set the contents of an internal file to those of an external file


Remove a file from a tar/zip archive

  • « PharData::offsetSet
  • PharData::setAlias »
  • PHP Manual
  • PharData
  • Remove a file from a tar/zip archive

PharData::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::offsetUnset — Remove a file from a tar/zip archive

Descrição

public PharData::offsetUnset(string $localName): void

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a tar/zip archive using array access brackets. offsetUnset is used for deleting an existing file, and is called by the unset() language construct.

Parâmetros

localName

The filename (relative path) to modify in the tar/zip archive.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Throws PharException if there are any problems flushing changes made to the tar/zip archive to disk.

Exemplos

Exemplo #1 A PharData::offsetUnset() example

<?php
$p = new PharData('/path/to/my.zip');
try {
// deletes file.txt from my.zip by calling offsetUnset
unset($p['file.txt']);
} catch (Exception $e) {
echo 'Could not delete file.txt: ', $e;
}
?>

Veja Também

  • Phar::offsetUnset() - Remove a file from a phar


Dummy function (Phar::setAlias is not valid for PharData)

  • « PharData::offsetUnset
  • PharData::setDefaultStub »
  • PHP Manual
  • PharData
  • Dummy function (Phar::setAlias is not valid for PharData)

PharData::setAlias

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::setAlias — Dummy function (Phar::setAlias is not valid for PharData)

Descrição

public PharData::setAlias(string $alias): bool

Non-executable tar/zip archives cannot have an alias, so this method simply throws an exception.

Parâmetros

alias

A shorthand string that this archive can be referred to in phar stream wrapper access. This parameter is ignored.

Valor Retornado

Erros/Exceções

Throws PharException on all method calls

Veja Também

  • Phar::setAlias() - Set the alias for the Phar archive


Dummy function (Phar::setDefaultStub is not valid for PharData)

  • « PharData::setAlias
  • PharData::setMetadata »
  • PHP Manual
  • PharData
  • Dummy function (Phar::setDefaultStub is not valid for PharData)

PharData::setDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::setDefaultStub — Dummy function (Phar::setDefaultStub is not valid for PharData)

Descrição

public PharData::setDefaultStub(?string $index = null, ?string $webIndex = null): bool

Non-executable tar/zip archives cannot have a stub, so this method simply throws an exception.

Parâmetros

index

Relative path within the phar archive to run if accessed on the command-line

webIndex

Relative path within the phar archive to run if accessed through a web browser

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Throws PharException on all method calls

Registro de Alterações

Versão | Descrição
8.0.0 | webIndex is nullable now.

Veja Também

  • Phar::setDefaultStub() - Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader


Sets phar archive meta-data

  • « PharData::setDefaultStub
  • PharData::setSignatureAlgorithm »
  • PHP Manual
  • PharData
  • Sets phar archive meta-data

PharData::setMetadata

(Não há informação de versão disponível, talvez apenas no Git)

PharData::setMetadata — Sets phar archive meta-data

Descrição

public PharData::setMetadata(mixed $metadata): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Phar::setMetadata() should be used to store customized data that describes something about the phar archive as a complete entity. PharFileInfo::setMetadata() should be used for file-specific meta-data. Meta-data can slow down the performance of loading a phar archive if the data is large.

Some possible uses for meta-data include specifying which file within the archive should be used to bootstrap the archive, or the location of a file manifest like » PEAR's package.xml file. However, any useful data that describes the phar archive may be stored.

Parâmetros

metadata

Any PHP variable containing information to store that describes the phar archive

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 A Phar::setMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file.php'] = '<?php echo "hello"';
$p->setMetadata(array('bootstrap' => 'file.php'));
var_dump($p->getMetadata());
} catch (Exception $e) {
echo 'Could not create and/or modify phar:', $e;
}
?>

O exemplo acima produzirá:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Veja Também

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data


Set the signature algorithm for a phar and apply it

  • « PharData::setMetadata
  • PharData::setStub »
  • PHP Manual
  • PharData
  • Set the signature algorithm for a phar and apply it

PharData::setSignatureAlgorithm

(Não há informação de versão disponível, talvez apenas no Git)

PharData::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it

Descrição

public PharData::setSignatureAlgorithm(int $algo, ?string $privateKey = null): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.

Set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::OPENSSL.

Parâmetros

algo

    One of Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, or Phar::OPENSSL

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Throws UnexpectedValueException for many errors, BadMethodCallException if called for a zip- or a tar-based phar archive, and a PharException if any problems occur flushing changes to disk.

Registro de Alterações

Versão | Descrição
8.0.0 | privateKey is now nullable.

Veja Também

  • Phar::getSupportedSignatures() - Return array of supported signature types
  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive


Dummy function (Phar::setStub is not valid for PharData)

  • « PharData::setSignatureAlgorithm
  • PharFileInfo »
  • PHP Manual
  • PharData
  • Dummy function (Phar::setStub is not valid for PharData)

PharData::setStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::setStub — Dummy function (Phar::setStub is not valid for PharData)

Descrição

public PharData::setStub(string $stub, int $len = -1): bool

Non-executable tar/zip archives cannot have a stub, so this method simply throws an exception.

Parâmetros

stub

A string or an open stream handle to use as the executable stub for this phar archive. This parameter is ignored.

len

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Throws PharException on all method calls

Veja Também

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive


The PharFileInfo class

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Introdução

The PharFileInfo class provides a high-level interface to the contents and attributes of a single file within a phar archive.

Resumo da classe

class PharFileInfo extends SplFileInfo {
/* Métodos */
public __construct(string $filename)
public chmod(int $perms): void
public compress(int $compression): bool
public decompress(): bool
public delMetadata(): bool
public getCRC32(): int
public getCompressedSize(): int
public getContent(): string
public getMetadata(array $unserializeOptions = []): mixed
public getPharFlags(): int
public hasMetadata(): bool
public isCRCChecked(): bool
public isCompressed(?int $compression = null): bool
public setMetadata(mixed $metadata): void
public __destruct()
/* Métodos herdados */
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Índice

  • PharFileInfo::chmod — Sets file-specific permission bits
  • PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::__construct — Construct a Phar entry object
  • PharFileInfo::decompress — Decompresses the current Phar entry within the phar
  • PharFileInfo::delMetadata — Deletes the metadata of the entry
  • PharFileInfo::__destruct — Destructs a Phar entry object
  • PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified
  • PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::getContent — Get the complete file contents of the entry
  • PharFileInfo::getMetadata — Returns file-specific meta-data saved with a file
  • PharFileInfo::getPharFlags — Returns the Phar file entry flags
  • PharFileInfo::hasMetadata — Returns the metadata of the entry
  • PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified
  • PharFileInfo::isCompressed — Returns whether the entry is compressed
  • PharFileInfo::setMetadata — Sets file-specific meta-data saved with a file


Sets file-specific permission bits

  • « PharFileInfo
  • PharFileInfo::compress »
  • PHP Manual
  • PharFileInfo
  • Sets file-specific permission bits

PharFileInfo::chmod

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::chmod — Sets file-specific permission bits

Descrição

public PharFileInfo::chmod(int $perms): void

PharFileInfo::chmod() allows setting of the executable file permissions bit, as well as read-only bits. Writeable bits are ignored, and set at runtime based on the phar.readonly INI variable. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Parâmetros

perms

permissions (see chmod())

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 A PharFileInfo::chmod() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
$p = new Phar('brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file.sh'] = '#!/usr/local/lib/php
<?php echo "hi"; ?>';
// set executable bit
$p['file.sh']->chmod(0555);
var_dump($p['file.sh']->isExecutable());
} catch (Exception $e) {
echo 'Could not create/modify phar: ', $e;
}
?>

O exemplo acima produzirá:

bool(true)


Compresses the current Phar entry with either zlib or bzip2 compression

  • « PharFileInfo::chmod
  • PharFileInfo::__construct »
  • PHP Manual
  • PharFileInfo
  • Compresses the current Phar entry with either zlib or bzip2 compression

PharFileInfo::compress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression

Descrição

public PharFileInfo::compress(int $compression): bool

This method compresses the file inside the Phar archive using either bzip2 compression or zlib compression. The bzip2 or zlib extension must be enabled to take advantage of this feature. In addition, if the file is already compressed, the respective extension must be enabled in order to decompress the file. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Parâmetros

compression

Compression must be Phar::GZ or Phar::BZ2.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

Exemplos

Exemplo #1 A PharFileInfo::compress() example

<?php
try {
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$file = $p['myfile.txt'];
var_dump($file->isCompressed(Phar::BZ2));
$p['myfile.txt']->compress(Phar::BZ2);
var_dump($file->isCompressed(Phar::BZ2));
} catch (Exception $e) {
echo 'Create/modify operations on my.phar failed: ', $e;
}
?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms


Construct a Phar entry object

  • « PharFileInfo::compress
  • PharFileInfo::decompress »
  • PHP Manual
  • PharFileInfo
  • Construct a Phar entry object

PharFileInfo::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::__construct — Construct a Phar entry object

Descrição

public PharFileInfo::__construct(string $filename)

This should not be called directly. Instead, a PharFileInfo object is initialized by calling Phar::offsetGet() through array access.

Parâmetros

filename

The full url to retrieve a file. If you wish to retrieve the information for the file my/file.php from the phar boo.phar, the entry should be phar://boo.phar/my/file.php.

Erros/Exceções

Throws BadMethodCallException if __construct() is called twice. Throws UnexpectedValueException if the phar URL requested is malformed, the requested phar cannot be opened, or the file can't be found within the phar.

Exemplos

Exemplo #1 A PharFileInfo::__construct() example

<?php
try {
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['testfile.txt'] = "hi\nthere\ndude";
$file = $p['testfile.txt'];
foreach ($file as $line => $text) {
echo "line number $line: $text";
}
// this also works
$file = new PharFileInfo('phar:///path/to/my.phar/testfile.txt');
foreach ($file as $line => $text) {
echo "line number $line: $text";
}
} catch (Exception $e) {
echo 'Phar operations failed: ', $e;
}
?>

O exemplo acima produzirá:

line number 1: hi
line number 2: there
line number 3: dude
line number 1: hi
line number 2: there
line number 3: dude


Decompresses the current Phar entry within the phar

  • « PharFileInfo::__construct
  • PharFileInfo::delMetadata »
  • PHP Manual
  • PharFileInfo
  • Decompresses the current Phar entry within the phar

PharFileInfo::decompress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharFileInfo::decompress — Decompresses the current Phar entry within the phar

Descrição

public PharFileInfo::decompress(): bool

This method decompresses the file inside the Phar archive. Depending on how the file is compressed, the bzip2 or zlib extensions must be enabled to take advantage of this feature. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

Exemplos

Exemplo #1 A PharFileInfo::decompress() example

<?php
try {
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$file = $p['myfile.txt'];
$file->compress(Phar::GZ);
var_dump($file->isCompressed());
$p['myfile.txt']->decompress();
var_dump($file->isCompressed());
} catch (Exception $e) {
echo 'Create/modify failed for my.phar: ', $e;
}
?>

O exemplo acima produzirá:

int(4096)
bool(false)

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms


Deletes the metadata of the entry

  • « PharFileInfo::decompress
  • PharFileInfo::__destruct »
  • PHP Manual
  • PharFileInfo
  • Deletes the metadata of the entry

PharFileInfo::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

PharFileInfo::delMetadata — Deletes the metadata of the entry

Descrição

public PharFileInfo::delMetadata(): bool

Deletes the metadata of the entry, if any.

Parâmetros

No parameters.

Valor Retornado

Returns true if successful, false if the entry had no metadata. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Erros/Exceções

Throws PharException if errors occurred while flushing changes to disk, and BadMethodCallException if write access is disabled.

Exemplos

Exemplo #1 A PharFileInfo::delMetaData() example

<?php
try {
$a = new Phar('myphar.phar');
$a['hi'] = 'hi';
var_dump($a['hi']->delMetadata());
$a['hi']->setMetadata('there');
var_dump($a['hi']->delMetadata());
var_dump($a['hi']->delMetadata());
} catch (Exception $e) {
// handle errors
}
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(false)

Veja Também

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


Destructs a Phar entry object

  • « PharFileInfo::delMetadata
  • PharFileInfo::getCRC32 »
  • PHP Manual
  • PharFileInfo
  • Destructs a Phar entry object

PharFileInfo::__destruct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::__destruct — Destructs a Phar entry object

Descrição

public PharFileInfo::__destruct()

Parâmetros

Esta função não possui parâmetros.


Returns CRC32 code or throws an exception if CRC has not been verified

  • « PharFileInfo::__destruct
  • PharFileInfo::getCompressedSize »
  • PHP Manual
  • PharFileInfo
  • Returns CRC32 code or throws an exception if CRC has not been verified

PharFileInfo::getCRC32

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified

Descrição

public PharFileInfo::getCRC32(): int

This returns the crc32() checksum of the file within the Phar archive.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The crc32() checksum of the file within the Phar archive.

Erros/Exceções

Throws BadMethodCallException if the file has not yet had its CRC32 verified. This should be impossible with normal use, as the CRC is verified upon opening the file for reading or writing.

Exemplos

Exemplo #1 A PharFileInfo::getCRC32() example

<?php
try {
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$file = $p['myfile.txt'];
echo $file->getCRC32();
} catch (Exception $e) {
echo 'Write operations on my.phar.phar failed: ', $e;
}
?>

O exemplo acima produzirá:

3633523372


Returns the actual size of the file (with compression) inside the Phar archive

  • « PharFileInfo::getCRC32
  • PharFileInfo::getContent »
  • PHP Manual
  • PharFileInfo
  • Returns the actual size of the file (with compression) inside the Phar archive

PharFileInfo::getCompressedSize

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive

Descrição

public PharFileInfo::getCompressedSize(): int

This returns the size of the file within the Phar archive. Uncompressed files will return the same value for getCompressedSize as they will with filesize()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The size in bytes of the file within the Phar archive on disk.

Exemplos

Exemplo #1 A PharFileInfo::getCompressedSize() example

<?php
try {
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$file = $p['myfile.txt'];
echo $file->getCompressedSize();
} catch (Exception $e) {
echo 'Write operations failed on my.phar: ', $e;
}
?>

O exemplo acima produzirá:

2

Veja Também

  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compressFiles() - Compresses all files in the current Phar archive


Get the complete file contents of the entry

  • « PharFileInfo::getCompressedSize
  • PharFileInfo::getMetadata »
  • PHP Manual
  • PharFileInfo
  • Get the complete file contents of the entry

PharFileInfo::getContent

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

PharFileInfo::getContent — Get the complete file contents of the entry

Descrição

public PharFileInfo::getContent(): string

This function behaves like file_get_contents() but for Phar.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the file contents.


Returns file-specific meta-data saved with a file

  • « PharFileInfo::getContent
  • PharFileInfo::getPharFlags »
  • PHP Manual
  • PharFileInfo
  • Returns file-specific meta-data saved with a file

PharFileInfo::getMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getMetadata — Returns file-specific meta-data saved with a file

Descrição

public PharFileInfo::getMetadata(array $unserializeOptions = []): mixed

Return meta-data that was saved in the Phar archive's manifest for this file.

Parâmetros

Valor Retornado

any PHP variable that can be serialized and is stored as meta-data for the file, or null if no meta-data is stored.

Registro de Alterações

Versão | Descrição
8.0.0 | The parameter unserializeOptions has been added.

Exemplos

Exemplo #1 A PharFileInfo::getMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file.txt'] = 'hello';
$p['file.txt']->setMetadata(array('user' => 'bill', 'mime-type' => 'text/plain'));
var_dump($p['file.txt']->getMetadata());
} catch (Exception $e) {
echo 'Could not create/modify brandnewphar.phar: ', $e;
}
?>

O exemplo acima produzirá:

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

Veja Também

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


Returns the Phar file entry flags

  • « PharFileInfo::getMetadata
  • PharFileInfo::hasMetadata »
  • PHP Manual
  • PharFileInfo
  • Returns the Phar file entry flags

PharFileInfo::getPharFlags

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getPharFlags — Returns the Phar file entry flags

Descrição

public PharFileInfo::getPharFlags(): int

This returns the flags set in the manifest for a Phar. This will always return 0 in the current implementation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The Phar flags (always 0 in the current implementation)

Exemplos

Exemplo #1 A PharFileInfo::getPharFlags() example

<?php
try {
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$file = $p['myfile.txt'];
var_dump($file->getPharFlags());
} catch (Exception $e) {
echo 'Could not create/modify my.phar: ', $e;
}
?>

O exemplo acima produzirá:

int(0)


Returns the metadata of the entry

  • « PharFileInfo::getPharFlags
  • PharFileInfo::isCRCChecked »
  • PHP Manual
  • PharFileInfo
  • Returns the metadata of the entry

PharFileInfo::hasMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

PharFileInfo::hasMetadata — Returns the metadata of the entry

Descrição

public PharFileInfo::hasMetadata(): bool

Returns the metadata of a file within a phar archive.

Parâmetros

No parameters.

Valor Retornado

Returns false if no metadata is set or is null, true if metadata is not null

Veja Também

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


Returns whether file entry has had its CRC verified

  • « PharFileInfo::hasMetadata
  • PharFileInfo::isCompressed »
  • PHP Manual
  • PharFileInfo
  • Returns whether file entry has had its CRC verified

PharFileInfo::isCRCChecked

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified

Descrição

public PharFileInfo::isCRCChecked(): bool

This returns whether a file within a Phar archive has had its CRC verified.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the file has had its CRC verified, false if not.

Exemplos

Exemplo #1 A PharFileInfo::isCRCChecked() example

<?php
try {
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$file = $p['myfile.txt'];
var_dump($file->isCRCChecked());
} catch (Exception $e) {
echo 'Create/modify operations failed on my.phar: ', $e;
}
?>

O exemplo acima produzirá:

bool(true)


Returns whether the entry is compressed

  • « PharFileInfo::isCRCChecked
  • PharFileInfo::setMetadata »
  • PHP Manual
  • PharFileInfo
  • Returns whether the entry is compressed

PharFileInfo::isCompressed

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::isCompressed — Returns whether the entry is compressed

Descrição

public PharFileInfo::isCompressed(?int $compression = null): bool

This returns whether a file is compressed within a Phar archive with either Gzip or Bzip2 compression.

Parâmetros

compression

One of Phar::GZ or Phar::BZ2, defaults to any compression.

Valor Retornado

true if the file is compressed within the Phar archive, false if not.

Registro de Alterações

Versão | Descrição
8.0.0 | compression is now nullable.

Exemplos

Exemplo #1 A PharFileInfo::isCompressed() example

<?php
try {
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p['myfile2.txt']->setCompressedGZ();
$file = $p['myfile.txt'];
$file2 = $p['myfile2.txt'];
var_dump($file->isCompressed());
var_dump($file2->isCompressed());
} catch (Exception $e) {
echo 'Create/modify on phar my.phar failed: ', $e;
}
?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compressFiles() - Compresses all files in the current Phar archive


Sets file-specific meta-data saved with a file

  • « PharFileInfo::isCompressed
  • PharException »
  • PHP Manual
  • PharFileInfo
  • Sets file-specific meta-data saved with a file

PharFileInfo::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::setMetadata — Sets file-specific meta-data saved with a file

Descrição

public PharFileInfo::setMetadata(mixed $metadata): void

PharFileInfo::setMetadata() should only be used to store customized data in a file that cannot be represented with existing information stored with a file. Meta-data can significantly slow down the performance of loading a phar archive if the data is large, or if there are many files containing meta-data. It is important to note that file permissions are natively supported inside a phar; it is possible to set them with the PharFileInfo::chmod() method. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Some possible uses for meta-data include passing a user/group that should be set when a file is extracted from the phar to disk. Other uses could include explicitly specifying a MIME type to return. However, any useful data that describes a file, but should not be contained inside of it may be stored.

Parâmetros

metadata

Any PHP variable containing information to store alongside a file

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 A PharFileInfo::setMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file.txt'] = 'hello';
$p['file.txt']->setMetadata(array('user' => 'bill', 'mime-type' => 'text/plain'));
var_dump($p['file.txt']->getMetaData());
} catch (Exception $e) {
echo 'Could not create/modify phar: ', $e;
}
?>

O exemplo acima produzirá:

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

Veja Também

  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


The PharException class

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Introdução

The PharException class provides a phar-specific exception class for try/catch blocks.

Resumo da classe

class PharException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Rar Archiving

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Rar Funções
    • rar_wrapper_cache_stats — Cache hits and misses for the URL wrapper
  • RarArchive — The RarArchive class
    • RarArchive::close — Close RAR archive and free all resources
    • RarArchive::getComment — Get comment text from the RAR archive
    • RarArchive::getEntries — Get full list of entries from the RAR archive
    • RarArchive::getEntry — Get entry object from the RAR archive
    • RarArchive::isBroken — Test whether an archive is broken (incomplete)
    • RarArchive::isSolid — Check whether the RAR archive is solid
    • RarArchive::open — Open RAR archive
    • RarArchive::setAllowBroken — Whether opening broken archives is allowed
    • RarArchive::__toString — Get text representation
  • RarEntry — The RarEntry class
    • RarEntry::extract — Extract entry from the archive
    • RarEntry::getAttr — Get attributes of the entry
    • RarEntry::getCrc — Get CRC of the entry
    • RarEntry::getFileTime — Get entry last modification time
    • RarEntry::getHostOs — Get entry host OS
    • RarEntry::getMethod — Get pack method of the entry
    • RarEntry::getName — Get name of the entry
    • RarEntry::getPackedSize — Get packed size of the entry
    • RarEntry::getStream — Get file handler for entry
    • RarEntry::getUnpackedSize — Get unpacked size of the entry
    • RarEntry::getVersion — Get minimum version of RAR program required to unpack the entry
    • RarEntry::isDirectory — Test whether an entry represents a directory
    • RarEntry::isEncrypted — Test whether an entry is encrypted
    • RarEntry::__toString — Get text representation of entry
  • RarException — The RarException class
    • RarException::isUsingExceptions — Check whether error handling with exceptions is in use
    • RarException::setUsingExceptions — Activate and deactivate error handling with exceptions


Introdução

Rar is a powerful and effective archiver created by Eugene Roshal. This extension gives you possibility to read Rar archives but doesn't support writing Rar archives, because this is not supported by the UnRar library and is directly prohibited by its license.

More information about Rar and UnRar can be found at » http://www.rarlabs.com/.


Instalação

Rar is currently available through PECL » https://pecl.php.net/package/rar.

Also you can use the PECL installer to install the Rar extension, using the following command: pecl -v install rar.

You can always download the tar.gz package and install Rar by hand:

Exemplo #1 Rar installation

gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

Windows users will enable php_rar.dll inside of php.ini in order to use these functions. Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


Tipos de Recurso

This extension registers three internal classes: the archive representations returned by rar_open() – RarArchive, the entry representations returned by rar_list() and rar_entry_get() – RarEntry and the exception type RarException.

This extension also register a stream resource, called "rar" and a URL wrapper called "rar wrapper" and registered under the prefix "rar".


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

RAR_HOST_MSDOS (int)
Use RarEntry::HOST_MSDOS instead.
RAR_HOST_OS2 (int)
Use RarEntry::HOST_OS2 instead.
RAR_HOST_WIN32 (int)
Use RarEntry::HOST_WIN32 instead.
RAR_HOST_UNIX (int)
Use RarEntry::HOST_UNIX instead.
RAR_HOST_BEOS (int)
Use RarEntry::HOST_BEOS instead.


Exemplos

See also the examples under rar:// wrapper.

Exemplo #1 On-the-fly decompression

<?php

if (!array_key_exists("i", $_GET) || !is_numeric($_GET["i"]))
die("Index unspecified or non-numeric");
$index = (int) $_GET["i"];

$arch = RarArchive::open("example.rar");
if ($arch === FALSE)
die("Cannot open example.rar");

$entries = $arch->getEntries();
if ($entries === FALSE)
die("Cannot retrieve entries");

if (!array_key_exists($index, $entries))
die("No such index: $index");

$orfilename = $entries[$index]->getName(); //UTF-8 encoded

$filesize = $entries[$index]->getUnpackedSize();

/* you could check HTTP_IF_MODIFIED_SINCE here and compare with
* $entries[$index]->getFileTime(). You could also send a
* "Last modified" header */

$fp = $entries[$index]->getStream();
if ($fp === FALSE)
die("Cannot open file with index $index insided the archive.");

$arch->close(); //no longer needed; stream is independent

function detectUserAgent() {
if (!array_key_exists('HTTP_USER_AGENT', $_SERVER))
return "Other";

$uas = $_SERVER['HTTP_USER_AGENT'];
if (preg_match("@Opera/@", $uas))
return "Opera";
if (preg_match("@Firefox/@", $uas))
return "Firefox";
if (preg_match("@Chrome/@", $uas))
return "Chrome";
if (preg_match("@MSIE ([0-9.]+);@", $uas, $matches)) {
if (((float)$matches[1]) >= 7.0)
return "IE";
}

return "Other";
}

/*
* We have 3 options:
* - For FF and Opera, which support RFC 2231, use that format.
* - For IE and Chrome, use attwithfnrawpctenclong
* (http://greenbytes.de/tech/tc2231/#attwithfnrawpctenclong)
* - For the others, convert to ISO-8859-1, if possible
*/
$formatRFC2231 = 'Content-Disposition: attachment; filename*=UTF-8\'\'%s';
$formatDef = 'Content-Disposition: attachment; filename="%s"';

switch (detectUserAgent()) {
case "Opera":
case "Firefox":
$orfilename = rawurlencode($orfilename);
$format = $formatRFC2231;
break;

case "IE":
case "Chrome":
$orfilename = rawurlencode($orfilename);
$format = $formatDef;
break;
default:
if (function_exists('iconv'))
$orfilename =
@iconv("UTF-8", "ISO-8859-1//TRANSLIT", $orfilename);
$format = $formatDef;
}

header(sprintf($format, $orfilename));
//cannot send error messages from now on (headers already sent)

//replace by real content type, perhaps infering from the file extension
$contentType = "application/octet-stream";
header("Content-Type: $contentType");

header("Content-Transfer-Encoding: binary");

header("Content-Length: $filesize");

if ($_SERVER['REQUEST_METHOD'] == "HEAD")
die();

while (!feof($fp)) {
$s = @fread($fp, 8192);
if ($s === false)
break; //useless to send error messages

echo $s;
}
?>

This example opens a RAR file and presents the requested file inside the RAR archive for download to the client.

Exemplo #2 RAR extension filesystem extraction example

<?php

$rar_file = rar_open('example.rar') or die("Can't open Rar archive");

$entries = rar_list($rar_file);

foreach ($entries as $entry) {
echo 'Filename: ' . $entry->getName() . "\n";
echo 'Packed size: ' . $entry->getPackedSize() . "\n";
echo 'Unpacked size: ' . $entry->getUnpackedSize() . "\n";

$entry->extract('/dir/extract/to/');
}

rar_close($rar_file);

?>

This example opens a RAR file archive and extracts each entry to the specified directory.


Rar Funções

Índice

  • rar_wrapper_cache_stats — Cache hits and misses for the URL wrapper


Cache hits and misses for the URL wrapper

  • « Rar Funções
  • RarArchive »
  • PHP Manual
  • Rar Funções
  • Cache hits and misses for the URL wrapper

rar_wrapper_cache_stats

(PECL rar >= 3.0.0)

rar_wrapper_cache_stats — Cache hits and misses for the URL wrapper

Descrição

rar_wrapper_cache_stats(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The RarArchive class

(PECL rar >= 2.0.0)

Introdução

This class represents a RAR archive, which may be formed by several volumes (parts) and which contains a number of RAR entries (i.e., files, directories and other special objects such as symbolic links).

Objects of this class can be traversed, yielding the entries stored in the respective RAR archive. Those entries can also be obtained through RarArchive::getEntry() and RarArchive::getEntries().

Resumo da classe

final class RarArchive implements Traversable {
/* Métodos */
public close(): bool
public getComment(): string
public getEntries(): array|false
public getEntry(string $entryname): RarEntry|false
public isBroken(): bool
public isSolid(): bool
public static open(string $filename, string $password = NULL, callable $volume_callback = NULL): RarArchive|false
public setAllowBroken(bool $allow_broken): bool
public __toString(): string
}

Índice

  • RarArchive::close — Close RAR archive and free all resources
  • RarArchive::getComment — Get comment text from the RAR archive
  • RarArchive::getEntries — Get full list of entries from the RAR archive
  • RarArchive::getEntry — Get entry object from the RAR archive
  • RarArchive::isBroken — Test whether an archive is broken (incomplete)
  • RarArchive::isSolid — Check whether the RAR archive is solid
  • RarArchive::open — Open RAR archive
  • RarArchive::setAllowBroken — Whether opening broken archives is allowed
  • RarArchive::__toString — Get text representation


Close RAR archive and free all resources

  • « RarArchive
  • RarArchive::getComment »
  • PHP Manual
  • RarArchive
  • Close RAR archive and free all resources

RarArchive::close

rar_close

(PECL rar >= 2.0.0)

RarArchive::close -- rar_close — Close RAR archive and free all resources

Descrição

Estilo orientado a objetos (method):

public RarArchive::close(): bool

Estilo procedural:

rar_close(RarArchive $rarfile): bool

Close RAR archive and free all allocated resources.

Parâmetros

rarfile

A RarArchive object, opened with rar_open().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL rar 2.0.0 | The RAR entries returned by RarArchive::getEntry() and RarArchive::getEntries() are now invalidated when calling this method. This means that all instance methods called for such entries and not guaranteed to succeed.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$rar_arch = RarArchive::open('latest_winrar.rar');
echo $rar_arch."\n";
$rar_arch->close();
echo $rar_arch."\n";
?>

O exemplo acima produzirá algo semelhante a:

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)

Exemplo #2 Estilo procedural

<?php
$rar_arch = rar_open('latest_winrar.rar');
echo $rar_arch."\n";
rar_close($rar_arch);
echo $rar_arch."\n";
?>


Get comment text from the RAR archive

  • « RarArchive::close
  • RarArchive::getEntries »
  • PHP Manual
  • RarArchive
  • Get comment text from the RAR archive

RarArchive::getComment

rar_comment_get

(PECL rar >= 2.0.0)

RarArchive::getComment -- rar_comment_get — Get comment text from the RAR archive

Descrição

Estilo orientado a objetos (method):

public RarArchive::getComment(): string

Estilo procedural:

rar_comment_get(RarArchive $rarfile): string

Get the (global) comment stored in the RAR archive. It may be up to 64 KiB long.

Nota:

This extension does not support comments at the entry level.

Parâmetros

rarfile

A RarArchive object, opened with rar_open().

Valor Retornado

Returns the comment or null if there is none.

Nota:

RAR has currently no support for unicode comments. The encoding of the result of this function is not specified, but it will probably be Windows-1252.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$rar_arch = RarArchive::open('commented.rar');
echo $rar_arch->getComment();
?>

O exemplo acima produzirá algo semelhante a:

This is the comment of the file commented.rar.

Exemplo #2 Estilo procedural

<?php
$rar_arch = rar_open('commented.rar');
echo rar_comment_get($rar_arch);
?>


Get full list of entries from the RAR archive

  • « RarArchive::getComment
  • RarArchive::getEntry »
  • PHP Manual
  • RarArchive
  • Get full list of entries from the RAR archive

RarArchive::getEntries

rar_list

(PECL rar >= 2.0.0)

RarArchive::getEntries -- rar_list — Get full list of entries from the RAR archive

Descrição

Estilo orientado a objetos (method):

public RarArchive::getEntries(): array|false

Estilo procedural:

rar_list(RarArchive $rarfile): array|false

Get entries list (files and directories) from the RAR archive.

Nota:

If the archive has entries with the same name, this method, together with RarArchive foreach iteration and array-like access with numeric indexes, are the only ones to access all the entries (i.e., RarArchive::getEntry() and the rar:// wrapper are insufficient).

Parâmetros

rarfile

A RarArchive object, opened with rar_open().

Valor Retornado

rar_list() returns array of RarEntry objects ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL rar 3.0.0 | Support for RAR archives with repeated entry names is no longer defective.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$rar_arch = RarArchive::open('solid.rar');
if ($rar_arch === FALSE)
die("Could not open RAR archive.");

$rar_entries = $rar_arch->getEntries();
if ($rar_entries === FALSE)
die("Could not retrieve entries.");

echo "Found " . count($rar_entries) . " entries.\n";

foreach ($rar_entries as $e) {
echo $e;
echo "\n";
}
$rar_arch->close();
?>

O exemplo acima produzirá algo semelhante a:

Found 2 entries.
RarEntry for file "tese.txt" (23b93a7a)
RarEntry for file "unrardll.txt" (2ed64b6e)

Exemplo #2 Estilo procedural

<?php
$rar_arch = rar_open('solid.rar');
if ($rar_arch === FALSE)
die("Could not open RAR archive.");

$rar_entries = rar_list($rar_arch);
if ($rar_entries === FALSE)
die("Could retrieve entries.");

echo "Found " . count($rar_entries) . " entries.\n";

foreach ($rar_entries as $e) {
echo $e;
echo "\n";
}
rar_close($rar_arch);
?>

Veja Também

  • RarArchive::getEntry() - Get entry object from the RAR archive
  • rar:// wrapper


Get entry object from the RAR archive

  • « RarArchive::getEntries
  • RarArchive::isBroken »
  • PHP Manual
  • RarArchive
  • Get entry object from the RAR archive

RarArchive::getEntry

rar_entry_get

(PECL rar >= 2.0.0)

RarArchive::getEntry -- rar_entry_get — Get entry object from the RAR archive

Descrição

Estilo orientado a objetos (method):

public RarArchive::getEntry(string $entryname): RarEntry|false

Estilo procedural:

rar_entry_get(RarArchive $rarfile, string $entryname): RarEntry|false

Get entry object (file or directory) from the RAR archive.

Nota:

You can also get entry objects using RarArchive::getEntries().

Note that a RAR archive can have multiple entries with the same name; this method will retrieve only the first.

Parâmetros

rarfile

A RarArchive object, opened with rar_open().

entryname

Path to the entry within the RAR archive.

Nota:

The path must be the same returned by RarEntry::getName().

Valor Retornado

Returns the matching RarEntry object ou false em caso de falha.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$rar_arch = RarArchive::open('solid.rar');
if ($rar_arch === FALSE)
die("Could not open RAR archive.");
$rar_entry = $rar_arch->getEntry('tese.txt');
if ($rar_entry === FALSE)
die("Could not get such entry");
echo get_class($rar_entry)."\n";
echo $rar_entry;
$rar_arch->close();
?>

O exemplo acima produzirá algo semelhante a:

RarEntry
RarEntry for file "tese.txt" (23b93a7a)

Exemplo #2 Estilo procedural

<?php
$rar_arch = rar_open('solid.rar');
if ($rar_arch === FALSE)
die("Could not open RAR archive.");
$rar_entry = rar_entry_get($rar_arch, 'tese.txt');
if ($rar_entry === FALSE)
die("Could not get such entry");
echo get_class($rar_entry)."\n";
echo $rar_entry;
rar_close($rar_arch);
?>

Veja Também

  • RarArchive::getEntries() - Get full list of entries from the RAR archive
  • rar:// wrapper


Test whether an archive is broken (incomplete)

  • « RarArchive::getEntry
  • RarArchive::isSolid »
  • PHP Manual
  • RarArchive
  • Test whether an archive is broken (incomplete)

RarArchive::isBroken

rar_broken_is

(PECL rar >= 3.0.0)

RarArchive::isBroken -- rar_broken_is — Test whether an archive is broken (incomplete)

Descrição

Estilo orientado a objetos (method):

public RarArchive::isBroken(): bool

Estilo procedural:

rar_broken_is(RarArchive $rarfile): bool

This function determines whether an archive is incomplete, i.e., if a volume is missing or a volume is truncated.

Parâmetros

rarfile

A RarArchive object, opened with rar_open().

Valor Retornado

Returns true if the archive is broken, false otherwise. This function may also return false if the passed file has already been closed. The only way to tell the two cases apart is to enable exceptions with RarException::setUsingExceptions(); however, this should be unnecessary as a program should not operate on closed files.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument is used to omit notice */
$arch = RarArchive::open($file, null, 'retnull');
var_dump($arch->isBroken());
?>

O exemplo acima produzirá algo semelhante a:

bool(true)

Exemplo #2 Estilo procedural

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument is used to omit notice */
$arch = rar_open($file, null, 'retnull');
var_dump(rar_broken_is($arch));
?>

Veja Também

  • RarArchive::setAllowBroken() - Whether opening broken archives is allowed


Check whether the RAR archive is solid

  • « RarArchive::isBroken
  • RarArchive::open »
  • PHP Manual
  • RarArchive
  • Check whether the RAR archive is solid

RarArchive::isSolid

rar_solid_is

(PECL rar >= 2.0.0)

RarArchive::isSolid -- rar_solid_is — Check whether the RAR archive is solid

Descrição

Estilo orientado a objetos (method):

public RarArchive::isSolid(): bool

Estilo procedural:

rar_solid_is(RarArchive $rarfile): bool

Check whether the RAR archive is solid. Individual file extraction is slower on solid archives.

Parâmetros

rarfile

A RarArchive object, opened with rar_open().

Valor Retornado

Returns true if the archive is solid, false otherwise.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$arch1 = RarArchive::open("store_method.rar");
$arch2 = RarArchive::open("solid.rar");
echo "$arch1: " . ($arch1->isSolid()?'yes':'no') ."\n";
echo "$arch2: " . ($arch2->isSolid()?'yes':'no') . "\n";
?>

O exemplo acima produzirá algo semelhante a:

RAR Archive "C:\php_rar\trunk\tests\store_method.rar": no
RAR Archive "C:\php_rar\trunk\tests\solid.rar": yes

Exemplo #2 Estilo procedural

<?php
$arch1 = rar_open("store_method.rar");
$arch2 = rar_open("solid.rar");
echo "$arch1: " . (rar_solid_is($arch1)?'yes':'no') ."\n";
echo "$arch2: " . (rar_solid_is($arch2)?'yes':'no') . "\n";
?>


Open RAR archive

  • « RarArchive::isSolid
  • RarArchive::setAllowBroken »
  • PHP Manual
  • RarArchive
  • Open RAR archive

RarArchive::open

rar_open

(PECL rar >= 2.0.0)

RarArchive::open -- rar_open — Open RAR archive

Descrição

Estilo orientado a objetos (method):

public static RarArchive::open(string $filename, string $password = NULL, callable $volume_callback = NULL): RarArchive|false

Estilo procedural:

rar_open(string $filename, string $password = NULL, callable $volume_callback = NULL): RarArchive|false

Open specified RAR archive and return RarArchive instance representing it.

Nota:

If opening a multi-volume archive, the path of the first volume should be passed as the first parameter. Otherwise, not all files will be shown. This is by design.

Parâmetros

filename

Path to the Rar archive.

password

A plain password, if needed to decrypt the headers. It will also be used by default if encrypted files are found. Note that the files may have different passwords in respect to the headers and among them.

volume_callback

A function that receives one parameter – the path of the volume that was not found – and returns a string with the correct path for such volume or null if such volume does not exist or is not known. The programmer should ensure the passed function doesn't cause loops as this function is called repeatedly if the path returned in a previous call did not correspond to the needed volume. Specifying this parameter omits the notice that would otherwise be emitted whenever a volume is not found; an implementation that only returns null can therefore be used to merely omit such notices.

Aviso

Prior to version 2.0.0, this function would not handle relative paths correctly. Use realpath() as a workaround.

Valor Retornado

Returns the requested RarArchive instance ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL rar 3.0.0 | volume_callback was added.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$rar_arch = RarArchive::open('encrypted_headers.rar', 'samplepassword');
if ($rar_arch === FALSE)
die("Failed opening file");

$entries = $rar_arch->getEntries();
if ($entries === FALSE)
die("Failed fetching entries");

echo "Found " . count($entries) . " files.\n";

if (empty($entries))
die("No valid entries found.");

$stream = reset($entries)->getStream();
if ($stream === FALSE)
die("Failed opening first file");

$rar_arch->close();

echo "Content of first one follows:\n";
echo stream_get_contents($stream);

fclose($stream);
?>

O exemplo acima produzirá algo semelhante a:

Found 2 files.
Content of first one follows:
Encrypted file 1 contents.

Exemplo #2 Estilo procedural

<?php
$rar_arch = rar_open('encrypted_headers.rar', 'samplepassword');
if ($rar_arch === FALSE)
die("Failed opening file");

$entries = rar_list($rar_arch);
if ($entries === FALSE)
die("Failed fetching entries");

echo "Found " . count($entries) . " files.\n";

if (empty($entries))
die("No valid entries found.");

$stream = reset($entries)->getStream();
if ($stream === FALSE)
die("Failed opening first file");

rar_close($rar_arch);

echo "Content of first one follows:\n";
echo stream_get_contents($stream);

fclose($stream);
?>

Exemplo #3 Volume Callback

<?php
/* In this example, there's a volume named multi_broken.part1.rar
* whose next volume is named multi.part2.rar */
function resolve($vol) {
if (preg_match('/_broken/', $vol))
return str_replace('_broken', '', $vol);
else
return null;
}
$rar_file1 = rar_open(dirname(__FILE__).'/multi_broken.part1.rar', null, 'resolve');
$entry = $rar_file1->getEntry('file2.txt');
$entry->extract(null, dirname(__FILE__) . "/temp_file2.txt");
?>

Veja Também

  • rar:// wrapper


Whether opening broken archives is allowed

  • « RarArchive::open
  • RarArchive::__toString »
  • PHP Manual
  • RarArchive
  • Whether opening broken archives is allowed

RarArchive::setAllowBroken

(PECL rar >= 3.0.0)

RarArchive::setAllowBroken — Whether opening broken archives is allowed

Descrição

Estilo orientado a objetos (method):

public RarArchive::setAllowBroken(bool $allow_broken): bool

Estilo procedural:

rar_allow_broken_set(RarArchive $rarfile, bool $allow_broken): bool

This method defines whether broken archives can be read or all the operations that attempt to extract the archive entries will fail. Broken archives are archives for which no error is detected when the file is opened but an error occurs when reading the entries.

Parâmetros

rarfile

A RarArchive object, opened with rar_open().

allow_broken

Whether to allow reading broken files (true) or not (false).

Valor Retornado

Returns true ou false em caso de falha. It will only fail if the file has already been closed.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument omits "volume not found" message */
$a = RarArchive::open($file, null, 'retnull');
$a->setAllowBroken(true);
foreach ($a->getEntries() as $e) {
echo "$e\n";
}
var_dump(count($a));
?>

O exemplo acima produzirá algo semelhante a:

RarEntry for file "file1.txt" (52b28202)
int(1)

Exemplo #2 Estilo procedural

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument omits "volume not found" message */
$a = rar_open($file, null, 'retnull');
rar_allow_broken_set($a, true);
foreach (rar_list($a) as $e) {
echo "$e\n";
}
var_dump(count($a));
?>

Veja Também

  • RarArchive::isBroken() - Test whether an archive is broken (incomplete)


Get text representation

  • « RarArchive::setAllowBroken
  • RarEntry »
  • PHP Manual
  • RarArchive
  • Get text representation

RarArchive::__toString

(PECL rar >= 2.0.0)

RarArchive::__toString — Get text representation

Descrição

public RarArchive::__toString(): string

Provides a string representation for this RarArchive object. It currently shows the full path name of the archive volume that was opened and whether the resource is valid or was already closed through a call to RarArchive::close().

This method may be used only for debugging purposes, as there are no guarantees as to which information the result contains or how it is formatted.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A textual representation of this RarArchive object. The content of this representation is unspecified.

Exemplos

Exemplo #1 RarArchive::__toString() example

<?php
$rar_arch = RarArchive::open('latest_winrar.rar');
echo $rar_arch."\n";
$rar_arch->close();
echo $rar_arch."\n";
?>

O exemplo acima produzirá algo semelhante a:

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)


The RarEntry class

(PECL rar >= 0.1)

Introdução

A RAR entry, representing a directory or a compressed file inside a RAR archive.

Resumo da classe

final class RarEntry {
/* Constantes */
const int HOST_MSDOS = 0;
const int HOST_OS2 = 1;
const int HOST_WIN32 = 2;
const int HOST_UNIX = 3;
const int HOST_MACOS = 4;
const int HOST_BEOS = 5;
const int ATTRIBUTE_WIN_READONLY = 1;
const int ATTRIBUTE_WIN_HIDDEN = 2;
const int ATTRIBUTE_WIN_SYSTEM = 4;
const int ATTRIBUTE_WIN_DIRECTORY = 16;
const int ATTRIBUTE_WIN_ARCHIVE = 32;
const int ATTRIBUTE_WIN_DEVICE = 64;
const int ATTRIBUTE_WIN_NORMAL = 128;
const int ATTRIBUTE_WIN_TEMPORARY = 256;
const int ATTRIBUTE_WIN_SPARSE_FILE = 512;
const int ATTRIBUTE_WIN_REPARSE_POINT = 1024;
const int ATTRIBUTE_WIN_COMPRESSED = 2048;
const int ATTRIBUTE_WIN_OFFLINE = 4096;
const int ATTRIBUTE_WIN_NOT_CONTENT_INDEXED = 8192;
const int ATTRIBUTE_WIN_ENCRYPTED = 16384;
const int ATTRIBUTE_WIN_VIRTUAL = 65536;
const int ATTRIBUTE_UNIX_WORLD_EXECUTE = 1;
const int ATTRIBUTE_UNIX_WORLD_WRITE = 2;
const int ATTRIBUTE_UNIX_WORLD_READ = 4;
const int ATTRIBUTE_UNIX_GROUP_EXECUTE = 8;
const int ATTRIBUTE_UNIX_GROUP_WRITE = 16;
const int ATTRIBUTE_UNIX_GROUP_READ = 32;
const int ATTRIBUTE_UNIX_OWNER_EXECUTE = 64;
const int ATTRIBUTE_UNIX_OWNER_WRITE = 128;
const int ATTRIBUTE_UNIX_OWNER_READ = 256;
const int ATTRIBUTE_UNIX_STICKY = 512;
const int ATTRIBUTE_UNIX_SETGID = 1024;
const int ATTRIBUTE_UNIX_SETUID = 2048;
const int ATTRIBUTE_UNIX_FINAL_QUARTET = 61440;
const int ATTRIBUTE_UNIX_FIFO = 4096;
const int ATTRIBUTE_UNIX_CHAR_DEV = 8192;
const int ATTRIBUTE_UNIX_DIRECTORY = 16384;
const int ATTRIBUTE_UNIX_BLOCK_DEV = 24576;
const int ATTRIBUTE_UNIX_REGULAR_FILE = 32768;
const int ATTRIBUTE_UNIX_SYM_LINK = 40960;
const int ATTRIBUTE_UNIX_SOCKET = 49152;
/* Métodos */
public extract(
string $dir,
string $filepath = "",
string $password = NULL,
bool $extended_data = false
): bool
public getAttr(): int
public getCrc(): string
public getFileTime(): string
public getHostOs(): int
public getMethod(): int
public getName(): string
public getPackedSize(): int
public getStream(string $password = ?): resource|false
public getUnpackedSize(): int
public getVersion(): int
public isDirectory(): bool
public isEncrypted(): bool
public __toString(): string
}

Constantes pré-definidas

RarEntry::HOST_MSDOS

If the return value of RarEntry::getHostOs() equals this constant, MS-DOS was used to add this entry. Use instead of RAR_HOST_MSDOS.

RarEntry::HOST_OS2

If the return value of RarEntry::getHostOs() equals this constant, OS/2 was used to add this entry. Intended to replace RAR_HOST_OS2.

RarEntry::HOST_WIN32

If the return value of RarEntry::getHostOs() equals this constant, Microsoft Windows was used to add this entry. Intended to replace RAR_HOST_WIN32.

RarEntry::HOST_UNIX

If the return value of RarEntry::getHostOs() equals this constant, an unspecified UNIX OS was used to add this entry. Intended to replace RAR_HOST_UNIX.

RarEntry::HOST_MACOS

If the return value of RarEntry::getHostOs() equals this constant, Mac OS was used to add this entry.

RarEntry::HOST_BEOS

If the return value of RarEntry::getHostOs() equals this constant, BeOS was used to add this entry. Intended to replace RAR_HOST_BEOS.

RarEntry::ATTRIBUTE_WIN_READONLY

Bit that represents a Windows entry with a read-only attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_HIDDEN

Bit that represents a Windows entry with a hidden attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_SYSTEM

Bit that represents a Windows entry with a system attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_DIRECTORY

Bit that represents a Windows entry with a directory attribute (entry is a directory). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows. See also RarEntry::isDirectory(), which also works with entries that were not added in WinRAR.

RarEntry::ATTRIBUTE_WIN_ARCHIVE

Bit that represents a Windows entry with an archive attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_DEVICE

Bit that represents a Windows entry with a device attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_NORMAL

Bit that represents a Windows entry with a normal file attribute (entry is NOT a directory). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows. See also RarEntry::isDirectory(), which also works with entries that were not added in WinRAR.

RarEntry::ATTRIBUTE_WIN_TEMPORARY

Bit that represents a Windows entry with a temporary attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_SPARSE_FILE

Bit that represents a Windows entry with a sparse file attribute (file is an NTFS sparse file). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_REPARSE_POINT

Bit that represents a Windows entry with a reparse point attribute (entry is an NTFS reparse point, e.g. a directory junction or a mount file system). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_COMPRESSED

Bit that represents a Windows entry with a compressed attribute (NTFS only). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_OFFLINE

Bit that represents a Windows entry with an offline attribute (entry is offline and not accessible). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_NOT_CONTENT_INDEXED

Bit that represents a Windows entry with a not content indexed attribute (entry is to be indexed). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_ENCRYPTED

Bit that represents a Windows entry with an encrypted attribute (NTFS only). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_VIRTUAL

Bit that represents a Windows entry with a virtual attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_UNIX_WORLD_EXECUTE

Bit that represents a UNIX entry that is world executable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_WORLD_WRITE

Bit that represents a UNIX entry that is world writable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_WORLD_READ

Bit that represents a UNIX entry that is world readable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_EXECUTE

Bit that represents a UNIX entry that is group executable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_WRITE

Bit that represents a UNIX entry that is group writable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_READ

Bit that represents a UNIX entry that is group readable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_EXECUTE

Bit that represents a UNIX entry that is owner executable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_WRITE

Bit that represents a UNIX entry that is owner writable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_READ

Bit that represents a UNIX entry that is owner readable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_STICKY

Bit that represents the UNIX sticky bit. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_SETGID

Bit that represents the UNIX setgid attribute. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_SETUID

Bit that represents the UNIX setuid attribute. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET

Mask to isolate the last four bits (nibble) of UNIX attributes
      (_S_IFMT, the type of file mask). To be used with
      RarEntry::getAttr() on entries whose host OS is UNIX and with the
      constants  RarEntry::ATTRIBUTE_UNIX_FIFO,
       RarEntry::ATTRIBUTE_UNIX_CHAR_DEV,
       RarEntry::ATTRIBUTE_UNIX_DIRECTORY,
       RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV,
       RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE,
       RarEntry::ATTRIBUTE_UNIX_SYM_LINK and
       RarEntry::ATTRIBUTE_UNIX_SOCKET.

RarEntry::ATTRIBUTE_UNIX_FIFO

Unix FIFOs will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_CHAR_DEV

Unix character devices will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_DIRECTORY

Unix directories will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET. See also RarEntry::isDirectory(), which also works with entries that were added in other operating systems.

RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV

Unix block devices will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE

Unix regular files (not directories) will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET. See also RarEntry::isDirectory(), which also works with entries that were added in other operating systems.

RarEntry::ATTRIBUTE_UNIX_SYM_LINK

Unix symbolic links will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_SOCKET

Unix sockets will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

Índice

  • RarEntry::extract — Extract entry from the archive
  • RarEntry::getAttr — Get attributes of the entry
  • RarEntry::getCrc — Get CRC of the entry
  • RarEntry::getFileTime — Get entry last modification time
  • RarEntry::getHostOs — Get entry host OS
  • RarEntry::getMethod — Get pack method of the entry
  • RarEntry::getName — Get name of the entry
  • RarEntry::getPackedSize — Get packed size of the entry
  • RarEntry::getStream — Get file handler for entry
  • RarEntry::getUnpackedSize — Get unpacked size of the entry
  • RarEntry::getVersion — Get minimum version of RAR program required to unpack the entry
  • RarEntry::isDirectory — Test whether an entry represents a directory
  • RarEntry::isEncrypted — Test whether an entry is encrypted
  • RarEntry::__toString — Get text representation of entry


Extract entry from the archive

  • « RarEntry
  • RarEntry::getAttr »
  • PHP Manual
  • RarEntry
  • Extract entry from the archive

RarEntry::extract

(PECL rar >= 0.1)

RarEntry::extract — Extract entry from the archive

Descrição

public RarEntry::extract(
string $dir,
string $filepath = "",
string $password = NULL,
bool $extended_data = false
): bool

RarEntry::extract() extracts the entry's data. It will create new file in the specified dir with the name identical to the entry's name, unless the second argument is specified. See below for more information.

Parâmetros

dir

Path to the directory where files should be extracted. This parameter is considered if and only if filepath is not. If both parameters are empty an extraction to the current directory will be attempted.

filepath

Path (relative or absolute) containing the directory and filename of the extracted file. This parameter overrides both the parameter dir and the original file name.

password

The password used to encrypt this entry. If the entry is not encrypted, this value will not be used and can be omitted. If this parameter is omitted and the entry is encrypted, the password given to rar_open(), if any, will be used. If a wrong password is given, either explicitly or implicitly via rar_open(), CRC checking will fail and this method will fail and return false. If no password is given and one is required, this method will fail and return false. You can check whether an entry is encrypted with RarEntry::isEncrypted().

extended_data

If true, extended information such as NTFS ACLs and Unix owner information will be set in the extract files, as long as it's present in the archive.

Aviso

Prior to version 2.0.0, this function would not handle relative paths correctly. Use realpath() as a workaround.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL rar 3.0.0 | extended_data was added.
PECL rar 3.0.0 | Support for RAR archives with repeated entry names is no longer defective.

Exemplos

Exemplo #1 RarEntry::extract() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

$entry->extract('/dir/to'); // create /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // create /dir/to/new_name.txt

?>

Exemplo #2 How to extract all files in archive:

<?php

/* example by Erik Jenssen aka erix */

$filename = "foobar.rar";
$filepath = "/home/foo/bar/";

$rar_file = rar_open($filepath.$filename);
$list = rar_list($rar_file);
foreach($list as $file) {
$entry = rar_entry_get($rar_file, $file);
$entry->extract("."); // extract to the current dir
}
rar_close($rar_file);

?>

Veja Também

  • RarEntry::getStream() - Get file handler for entry
  • rar:// wrapper


Get attributes of the entry

  • « RarEntry::extract
  • RarEntry::getCrc »
  • PHP Manual
  • RarEntry
  • Get attributes of the entry

RarEntry::getAttr

(PECL rar >= 0.1)

RarEntry::getAttr — Get attributes of the entry

Descrição

public RarEntry::getAttr(): int

Returns the OS-dependent attributes of the archive entry.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the attributes or false on error.

Exemplos

Exemplo #1 RarEntry::getAttr() example

<?php

$rar_file = rar_open('example.rar') or die("Can't open Rar archive");

$entry = rar_entry_get($rar_file, 'dir/in/the/archive') or die("Can't find such entry");

$host_os = $entry->getHostOs();
$attr = $entry->getAttr();

switch($host_os) {
case RAR_HOST_MSDOS:
case RAR_HOST_OS2:
case RAR_HOST_WIN32:
case RAR_HOST_MACOS:
printf("%c%c%c%c%c%c\n",
($attr & 0x08) ? 'V' : '.',
($attr & 0x10) ? 'D' : '.',
($attr & 0x01) ? 'R' : '.',
($attr & 0x02) ? 'H' : '.',
($attr & 0x04) ? 'S' : '.',
($attr & 0x20) ? 'A' : '.');
break;
case RAR_HOST_UNIX:
case RAR_HOST_BEOS:
switch ($attr & 0xF000)
{
case 0x4000:
printf("d");
break;
case 0xA000:
printf("l");
break;
default:
printf("-");
break;
}
printf("%c%c%c%c%c%c%c%c%c\n",
($attr & 0x0100) ? 'r' : '-',
($attr & 0x0080) ? 'w' : '-',
($attr & 0x0040) ? (($attr & 0x0800) ? 's':'x'):(($attr & 0x0800) ? 'S':'-'),
($attr & 0x0020) ? 'r' : '-',
($attr & 0x0010) ? 'w' : '-',
($attr & 0x0008) ? (($attr & 0x0400) ? 's':'x'):(($attr & 0x0400) ? 'S':'-'),
($attr & 0x0004) ? 'r' : '-',
($attr & 0x0002) ? 'w' : '-',
($attr & 0x0001) ? 'x' : '-');
break;
}

rar_close($rar_file);

?>

Veja Também

  • RarEntry::getHostOs() - Get entry host OS
  • The constants in RarEntry


Get CRC of the entry

  • « RarEntry::getAttr
  • RarEntry::getFileTime »
  • PHP Manual
  • RarEntry
  • Get CRC of the entry

RarEntry::getCrc

(PECL rar >= 0.1)

RarEntry::getCrc — Get CRC of the entry

Descrição

public RarEntry::getCrc(): string

Returns an hexadecimal string representation of the CRC of the archive entry.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the CRC of the archive entry or false on error.

Registro de Alterações

Versão | Descrição
PECL rar 2.0.0 | This method now returns correct values for multiple volume archives.


Get entry last modification time

  • « RarEntry::getCrc
  • RarEntry::getHostOs »
  • PHP Manual
  • RarEntry
  • Get entry last modification time

RarEntry::getFileTime

(PECL rar >= 0.1)

RarEntry::getFileTime — Get entry last modification time

Descrição

public RarEntry::getFileTime(): string

Gets entry last modification time.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns entry last modification time as string in format YYYY-MM-DD HH:II:SS, or false on error.


Get entry host OS

  • « RarEntry::getFileTime
  • RarEntry::getMethod »
  • PHP Manual
  • RarEntry
  • Get entry host OS

RarEntry::getHostOs

(PECL rar >= 0.1)

RarEntry::getHostOs — Get entry host OS

Descrição

public RarEntry::getHostOs(): int

Returns the code of the host OS of the archive entry.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the code of the host OS, or false on error.

Exemplos

Exemplo #1 RarEntry::getHostOs() example (version >= 2.0.0)

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

switch ($entry->getHostOs()) {
case RarEntry::HOST_MSDOS:
echo "MS-DOS\n";
break;
case RarEntry::HOST_OS2:
echo "OS2\n";
break;
case RarEntry::HOST_WIN32:
echo "Win32\n";
break;
case RarEntry::HOST_MACOS:
echo "MacOS\n";
break;
case RarEntry::HOST_UNIX:
echo "Unix/Linux\n";
break;
case RarEntry::HOST_BEOS:
echo "BeOS\n";
break;
}

?>

Exemplo #2 RarEntry::getHostOs() example (version <= 1.0.0)

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

switch ($entry->getHostOs()) {
case RAR_HOST_MSDOS:
echo "MS-DOS\n";
break;
case RAR_HOST_OS2:
echo "OS2\n";
break;
case RAR_HOST_WIN32:
echo "Win32\n";
break;
case RAR_HOST_MACOS:
echo "MacOS\n";
break;
case RAR_HOST_UNIX:
echo "Unix/Linux\n";
break;
case RAR_HOST_BEOS:
echo "BeOS\n";
break;
}

?>

Veja Também

  • RarEntry::extract() - Extract entry from the archive


Get pack method of the entry

  • « RarEntry::getHostOs
  • RarEntry::getName »
  • PHP Manual
  • RarEntry
  • Get pack method of the entry

RarEntry::getMethod

(PECL rar >= 0.1)

RarEntry::getMethod — Get pack method of the entry

Descrição

public RarEntry::getMethod(): int

RarEntry::getMethod() returns number of the method used when adding current archive entry.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the method number or false on error.

Exemplos

Exemplo #1 RarEntry::getMethod() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Method number: " . $entry->getMethod();

?>


Get name of the entry

  • « RarEntry::getMethod
  • RarEntry::getPackedSize »
  • PHP Manual
  • RarEntry
  • Get name of the entry

RarEntry::getName

(PECL rar >= 0.1)

RarEntry::getName — Get name of the entry

Descrição

public RarEntry::getName(): string

Returns the name (with path) of the archive entry.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the entry name as a string, or false on error.

Registro de Alterações

Versão | Descrição
PECL rar 2.0.0 | As of version 2.0.0, the returned string is encoded in Unicode/UTF-8.

Exemplos

Exemplo #1 RarEntry::getName() example

<?php

//this example is safe even in pages not encoded in UTF-8
//for those encoded in UTF-8, the call to mb_convert_encoding is unnecessary

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Entry name: " . mb_convert_encoding(
htmlentities(
$entry->getName(),
ENT_COMPAT,
"UTF-8"
),
"HTML-ENTITIES",
"UTF-8"
);

?>


Get packed size of the entry

  • « RarEntry::getName
  • RarEntry::getStream »
  • PHP Manual
  • RarEntry
  • Get packed size of the entry

RarEntry::getPackedSize

(PECL rar >= 0.1)

RarEntry::getPackedSize — Get packed size of the entry

Descrição

public RarEntry::getPackedSize(): int

Get packed size of the archive entry.

Nota:

Note that on platforms with 32-bit longs (that includes Windows x64), the maximum size returned is capped at 2 GiB. Check the constant PHP_INT_MAX.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the packed size, or false on error.

Registro de Alterações

Versão | Descrição
PECL rar 2.0.0 | This method now returns correct values of packed sizes bigger than 2 GiB on platforms with 64-bit ints and never returns negative values on other platforms.

Exemplos

Exemplo #1 RarEntry::getPackedSize() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Packed size of " . $entry->getName() . " = " . $entry->getPackedSize() . " bytes";

?>


Get file handler for entry

  • « RarEntry::getPackedSize
  • RarEntry::getUnpackedSize »
  • PHP Manual
  • RarEntry
  • Get file handler for entry

RarEntry::getStream

(PECL rar >= 2.0.0)

RarEntry::getStream — Get file handler for entry

Descrição

public RarEntry::getStream(string $password = ?): resource|false

Returns a file handler that supports read operations. This handler provides on-the-fly decompression for this entry.

The handler is not invalidated by calling rar_close().

Aviso

The resulting stream has no integrity verification. In particular, file corruption and decryption with a wrong a key will not be detected. It is the programmer's responsability to use the entry's CRC to check for integrity, if he so wishes.

Parâmetros

password

The password used to encrypt this entry. If the entry is not encrypted, this value will not be used and can be omitted. If this parameter is omitted and the entry is encrypted, the password given to rar_open(), if any, will be used. If a wrong password is given, either explicitly or implicitly via rar_open(), this method's resulting stream will produce wrong output. If no password is given and one is required, this method will fail and return false. You can check whether an entry is encrypted with RarEntry::isEncrypted().

Valor Retornado

The file handler ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL rar 3.0.0 | Support for RAR archives with repeated entry names is no longer defective.

Exemplos

Exemplo #1 RarEntry::getStream() example

<?php

$rar_file = rar_open('example.rar');
if ($rar_file === false)
die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt');
if ($entry === false)
die("Failed to find such entry");

$stream = $entry->getStream();
if ($stream === false)
die("Failed to obtain stream.");

rar_close($rar_file); //stream is independent from file

while (!feof($stream)) {
$buff = fread($stream, 8192);
if ($buff !== false)
echo $buff;
else
break; //fread error
}

fclose($stream);

?>

Veja Também

  • RarEntry::extract() - Extract entry from the archive
  • rar:// wrapper


Get unpacked size of the entry

  • « RarEntry::getStream
  • RarEntry::getVersion »
  • PHP Manual
  • RarEntry
  • Get unpacked size of the entry

RarEntry::getUnpackedSize

(PECL rar >= 0.1)

RarEntry::getUnpackedSize — Get unpacked size of the entry

Descrição

public RarEntry::getUnpackedSize(): int

Get unpacked size of the archive entry.

Nota:

Note that on platforms with 32-bit longs (that includes Windows x64), the maximum size returned is capped at 2 GiB. Check the constant PHP_INT_MAX.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the unpacked size, or false on error.

Registro de Alterações

Versão | Descrição
PECL rar 2.0.0 | This method now returns correct values of unpacked sizes bigger than 2 GiB on platforms with 64-bit ints and never returns negative values on other platforms.

Valor Retornado

Exemplo #1 RarEntry::getUnpackedSize() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Unpacked size of " . $entry->getName() . " = " . $entry->getPackedSize() . " bytes";

?>


Get minimum version of RAR program required to unpack the entry

  • « RarEntry::getUnpackedSize
  • RarEntry::isDirectory »
  • PHP Manual
  • RarEntry
  • Get minimum version of RAR program required to unpack the entry

RarEntry::getVersion

(PECL rar >= 0.1)

RarEntry::getVersion — Get minimum version of RAR program required to unpack the entry

Descrição

public RarEntry::getVersion(): int

Returns minimum version of RAR program (e.g. WinRAR) required to unpack the entry. It is encoded as 10 * major version + minor version.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the version or false on error.

Exemplos

Exemplo #1 RarEntry::getVersion() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Rar version required for unpacking: " . $entry->getVersion();

?>


Test whether an entry represents a directory

  • « RarEntry::getVersion
  • RarEntry::isEncrypted »
  • PHP Manual
  • RarEntry
  • Test whether an entry represents a directory

RarEntry::isDirectory

(PECL rar >= 2.0.0)

RarEntry::isDirectory — Test whether an entry represents a directory

Descrição

public RarEntry::isDirectory(): bool

Tests whether the current entry is a directory.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if this entry is a directory and false otherwise.

Notas

This function is only available starting with version 2.0.0, but one can also test whether an entry is a directory by checking the entry attributes, like this (only works for files compressed in RAR for Windows or Unix):

<?php
//...
//Open file, get entry and store in variable $e...
//...

$isDirectory = (bool) ((($e->getHostOs() == RAR_HOST_WIN32) && ($e->getAttr() & 0x10)) ||
(($e->getHostOs() == RAR_HOST_UNIX) && (($e->getAttr() & 0xf000) == 0x4000)));
?>


Test whether an entry is encrypted

  • « RarEntry::isDirectory
  • RarEntry::__toString »
  • PHP Manual
  • RarEntry
  • Test whether an entry is encrypted

RarEntry::isEncrypted

(PECL rar >= 2.0.0)

RarEntry::isEncrypted — Test whether an entry is encrypted

Descrição

public RarEntry::isEncrypted(): bool

Tests whether the current entry contents are encrypted.

Nota:

The password used may differ between files inside the same RAR archive.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the current entry is encrypted and false otherwise.


Get text representation of entry

  • « RarEntry::isEncrypted
  • RarException »
  • PHP Manual
  • RarEntry
  • Get text representation of entry

RarEntry::__toString

(PECL rar >= 2.0.0)

RarEntry::__toString — Get text representation of entry

Descrição

public RarEntry::__toString(): string

RarEntry::__toString() returns a textual representation for this entry. It includes whether the entry is a file or a directory (symbolic links and other special objects will be treated as files), the UTF-8 name of the entry and its CRC. The form and content of this representation may be changed in the future, so they cannot be relied upon.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A textual representation for the entry.


The RarException class

(PECL rar >= 2.0.0)

Introdução

This class serves two purposes: it is the type of the exceptions thrown by the RAR extension functions and methods and it allows, through static methods to query and define the error behaviour of the extension, i.e., whether exceptions are thrown or only warnings are emitted.

The following error codes are used:

  • -1 - error outside UnRAR library
  • 11 - insufficient memory
  • 12 - bad data
  • 13 - bad archive
  • 14 - unknown format
  • 15 - file open error
  • 16 - file create error
  • 17 - file close error
  • 18 - read error
  • 19 - write error
  • 20 - buffer too small
  • 21 - unknown RAR error
  • 22 - password required but not given

Resumo da classe

final class RarException extends Exception {
/* Métodos */
public static isUsingExceptions(): bool
public static setUsingExceptions(bool $using_exceptions): void
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Índice

  • RarException::isUsingExceptions — Check whether error handling with exceptions is in use
  • RarException::setUsingExceptions — Activate and deactivate error handling with exceptions


Check whether error handling with exceptions is in use

  • « RarException
  • RarException::setUsingExceptions »
  • PHP Manual
  • RarException
  • Check whether error handling with exceptions is in use

RarException::isUsingExceptions

(PECL rar >= 2.0.0)

RarException::isUsingExceptions — Check whether error handling with exceptions is in use

Descrição

public static RarException::isUsingExceptions(): bool

Checks whether the RAR functions will emit warnings and return error values or whether they will throw exceptions in most of the circumstances (does not include some programmatic errors such as passing the wrong type of arguments).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if exceptions are being used, false otherwise.

Exemplos

Exemplo #1 RarException::isUsingExceptions() example

<?php
//The default is not to use exceptions
var_dump(RarException::isUsingExceptions());
?>

O exemplo acima produzirá algo semelhante a:

bool(false)

Veja Também

  • RarException::setUsingExceptions() - Activate and deactivate error handling with exceptions


Activate and deactivate error handling with exceptions

  • « RarException::isUsingExceptions
  • Zip »
  • PHP Manual
  • RarException
  • Activate and deactivate error handling with exceptions

RarException::setUsingExceptions

(PECL rar >= 2.0.0)

RarException::setUsingExceptions — Activate and deactivate error handling with exceptions

Descrição

public static RarException::setUsingExceptions(bool $using_exceptions): void

If and only if the argument is true, then, instead of emitting warnings and returning a special value indicating error when the UnRAR library encounters an error, an exception of type RarException will be thrown.

Exceptions will also be thrown for the following errors, which occur outside the library (their error code will be -1):

  • attempting some operations on a closed RarArchive object or a RarEntry object relative to the first;
  • attempting to get an entry that does not exist with RarArchive::getEntry().

Parâmetros

using_exceptions

Should be true to activate exception throwing, false to deactivate (the default).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 RarException::setUsingExceptions() example

<?php
var_dump(RarException::isUsingExceptions());
$arch = RarArchive::open("does_not_exist.rar");
var_dump($arch);

RarException::setUsingExceptions(true);
var_dump(RarException::isUsingExceptions());
$arch = RarArchive::open("does_not_exist.rar");
var_dump($arch); //not reached
?>

O exemplo acima produzirá algo semelhante a:

bool(false)

Warning: RarArchive::open(): Failed to open does_not_exist.rar: ERAR_EOPEN (file open error) in C:\php_rar\trunk\tests\test.php on line 3
bool(false)
bool(true)

Fatal error: Uncaught exception 'RarException' with message 'unRAR internal error: Failed to open does_not_exist.rar: ERAR_EOPEN (file open error)' in C:\php_rar\trunk\tests\test.php:8
Stack trace:
#0 C:\php_rar\trunk\tests\test.php(8): RarArchive::open('does_not_exist....')
#1 {main}
  thrown in C:\php_rar\trunk\tests\test.php on line 8

Veja Também

  • RarException::isUsingExceptions() - Check whether error handling with exceptions is in use


Zip

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • ZipArchive — A classe ZipArchive
    • ZipArchive::addEmptyDir — Adiciona um novo diretório
    • ZipArchive::addFile — Adiciona um arquivo a um arquivo ZIP a partir do caminho fornecido
    • ZipArchive::addFromString — Adiciona um arquivo a um arquivo ZIP usando seu conteúdo
    • ZipArchive::addGlob — Adicionar arquivos de um diretório por padrão glob
    • ZipArchive::addPattern — Adiciona arquivos de um diretório por padrão PCRE
    • ZipArchive::clearError — Limpa a mensagem de erro de status, mensagens do sistema e/ou do zip
    • ZipArchive::close — Fecha o arquivo de arquivo ativo (aberto ou recém-criado)
    • ZipArchive::count — Conta o número de arquivos no arquivo
    • ZipArchive::deleteIndex — Exclui uma entrada no arquivo usando seu índice
    • ZipArchive::deleteName — Exclui uma entrada no arquivo usando seu nome
    • ZipArchive::extractTo — Extrai o conteúdo do arquivo
    • ZipArchive::getArchiveComment — Retorna o comentário do arquivo Zip
    • ZipArchive::getArchiveFlag — Retorna o valor de uma opção global do arquivo Zip
    • ZipArchive::getCommentIndex — Retorna o comentário de uma entrada usando o índice da entrada
    • ZipArchive::getCommentName — Retorna o comentário de uma entrada usando o nome da entrada
    • ZipArchive::getExternalAttributesIndex — Recupera os atributos externos de uma entrada definida pelo seu índice
    • ZipArchive::getExternalAttributesName — Recupera os atributos externos de uma entrada definida pelo seu nome
    • ZipArchive::getFromIndex — Retorna o conteúdo da entrada usando seu índice
    • ZipArchive::getFromName — Retorna o conteúdo da entrada usando seu nome
    • ZipArchive::getNameIndex — Retorna o nome de uma entrada usando seu índice
    • ZipArchive::getStatusString — Retorna a mensagem de erro de status, mensagens do sistema e/ou zip
    • ZipArchive::getStream — Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)
    • ZipArchive::getStreamIndex — Obtém um manipulador de arquivo para a entrada definida pelo seu índice (somente leitura)
    • ZipArchive::getStreamName — Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)
    • ZipArchive::isCompressionMethodSupported — Verifica se um método de compressão é suportado pelo libzip
    • ZipArchive::isEncryptionMethodSupported — Verifica se um método de criptografia é suportado pelo libzip
    • ZipArchive::locateName — Retorna o índice da entrada no arquivo compactado
    • ZipArchive::open — Abre um arquivo compactado ZIP
    • ZipArchive::registerCancelCallback — Registra um callback para permitir o cancelamento durante o fechamento do arquivo compactado.
    • ZipArchive::registerProgressCallback — Registrar um callback para fornecer atualizações durante o fechamento do arquivo compactado.
    • ZipArchive::renameIndex — Renomeia uma entrada definida pelo seu índice
    • ZipArchive::renameName — Renomeia uma entrada definida pelo seu nome
    • ZipArchive::replaceFile — Substitui um arquivo no arquivo ZIP por um caminho fornecido
    • ZipArchive::setArchiveComment — Define o comentário de um arquivo ZIP
    • ZipArchive::setArchiveFlag — Define uma opção global de um arquivo ZIP
    • ZipArchive::setCommentIndex — Define o comentário de uma entrada definida pelo seu índice
    • ZipArchive::setCommentName — Define o comentário de uma entrada definida pelo seu nome
    • ZipArchive::setCompressionIndex — Define o método de compressão de uma entrada definida pelo seu índice
    • ZipArchive::setCompressionName — Define o método de compressão de uma entrada definida pelo seu nome
    • ZipArchive::setEncryptionIndex — Define o método de criptografia de uma entrada definida pelo seu índice
    • ZipArchive::setEncryptionName — Define o método de criptografia de uma entrada definida pelo seu nome
    • ZipArchive::setExternalAttributesIndex — Define os atributos externos de uma entrada definida pelo seu índice
    • ZipArchive::setExternalAttributesName — Define os atributos externos de uma entrada definida pelo seu nome
    • ZipArchive::setMtimeIndex — Define o tempo de modificação de uma entrada definida pelo seu índice
    • ZipArchive::setMtimeName — Define o tempo de modificação de uma entrada definida pelo seu nome
    • ZipArchive::setPassword — Define a senha para o arquivo ZIP ativo
    • ZipArchive::statIndex — Obtenha os detalhes de uma entrada definida pelo seu índice
    • ZipArchive::statName — Obtém os detalhes de uma entrada definida pelo seu nome
    • ZipArchive::unchangeAll — Desfaz todas as alterações feitas no arquivo
    • ZipArchive::unchangeArchive — Reverte todas as alterações globais feitas no arquivo
    • ZipArchive::unchangeIndex — Reverte todas as alterações feitas a uma entrada no índice fornecido
    • ZipArchive::unchangeName — Reverte todas as alterações feitas a uma entrada com o nome fornecido
  • Funções Zip
    • zip_close — Fecha um arquivo ZIP
    • zip_entry_close — Fecha o arquivo que está aberto
    • zip_entry_compressedsize — Obtém o tamanho comprimido do item
    • zip_entry_compressionmethod — Recupera qual o método de compressão foi utilizado no arquivo
    • zip_entry_filesize — Retorna o tamanho de um item de diretório
    • zip_entry_name — Retorna o nome do arquivo
    • zip_entry_open — Abre um arquivo para leitura
    • zip_entry_read — Obtém dados de um arquivo
    • zip_open — Abre um arquivo ZIP
    • zip_read — Lê o próximo item em um arquivo ZIP


Introdução

Esta extenção habilita você a ler ou escrever arquivos ZIP e os arquivos compactados internamente.


Dependências

Esta extensão requer » libzip. A versão 1.1.2 era internalizada no PHP até a versão 7.3.

A versão mínima necessária é 0.11, mas uma versão mais recente é recomendada.

  • A versão 1.2 é requerida para suporte criptografia, veja ZipArchive::setEncryptionIndex()
  • A versão 1.3 é requerida para suporte progresso, veja ZipArchive::registerProgressCallback()
  • A versão 1.6 é requerida para suporte de cancelamento, veja ZipArchive::registerCancelCallback()


Instalação

Sistemas Linux

Para usar estas funções, o PHP deve ser compilado com suporte ZIP usando-se a opção de configuração --with-zip.

Antes do PHP 7.4.0, libzip era incluída no PHP, e para compilar a extensão era necessário usar a opção de configuração --enable-zip. Compilar com a libzip inclusa era desencorajado a partir do PHP 7.3.0, mas ainda possível, usando-se a opção de configuração --without-libzip.

Um opção de configuração --with-libzip=DIR foi adicionada para usar uma instalação libzip de sistema. A versão 0.11 da libzip é requerida, com 0.11.2 ou posterior recomendada.

Windows

A partir do PHP 8.2.0, a DLL php_zip.dll precisa ser ativada no php.ini. Anteriormente, esta extensão era interna.

Instalação via PECL

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/zip.


Tipos de Recurso

Há dois tipos de recursos neste módulo. O primeiro é um Zip directory para arquivo Zip, o segundo Zip Entry para entradas de arquivos.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

ZipArchive utiliza constantes de classe. Existem vários tipos de constantes, os principais são: Opções (prefixadas com FL_), Opções globais (prefixadas com AFL_), erros (prefixadas com ER_) e modo (sem prefixo).

Modos de abertura do arquivo
ZipArchive::CREATE (int)
Cria o arquivo se ele não existir.
ZipArchive::OVERWRITE (int)
Se o arquivo existir, ignora seu conteúdo atual. Em outras palavras, manipule-o da mesma maneira que um arquivo vazio.
ZipArchive::EXCL (int)
Erro se o arquivo já existir.
ZipArchive::RDONLY (int)
Abre o arquivo apenas para leitura. Disponível a partir do PHP 7.4.3 e PECL zip 1.17.1, respectivamente, se compilado com libzip = 1.0.0.
ZipArchive::CHECKCONS (int)
Realiza verificações de consistência adicionais no arquivo e gera erro se falhar.
Opções globais do arquivo
ZipArchive::AFL_RDONLY (int)
O arquivo é somente leitura, não pode ser limpo. Disponível a partir do PHP 8.3.0 e PECL zip 1.22.0, respectivamente, se compilado com libzip = 1.10.0.
ZipArchive::AFL_IS_TORRENTZIP (int)
O arquivo atual está zipado como torrent. Disponível a partir do PHP 8.3.0 e PECL zip 1.22.0, respectivamente, se compilado com libzip = 1.10.0.
ZipArchive::AFL_WANT_TORRENTZIP (int)
Escreve o arquivo no formato torrentzip. Disponível a partir do PHP 8.3.0 e PECL zip 1.22.0, respectivamente, se compilado com libzip = 1.10.0.
ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE (int)
Não remover o arquivo se o arquivo estiver vazio. Disponível a partir do PHP 8.3.0 e PECL zip 1.22.0, respectivamente, se compilado com libzip = 1.10.0.
Opções do arquivo
ZipArchive::FL_NOCASE (int)
Ignora a diferenciação entre maiúsculas e minúsculas na busca por nomes.
ZipArchive::FL_NODIR (int)
Ignora o componente de diretório.
ZipArchive::FL_COMPRESSED (int)
Lê dados compactados.
ZipArchive::FL_UNCHANGED (int)
Usa os dados originais, ignorando alterações.
ZipArchive::FL_RECOMPRESS (int)
Força a recompressão dos dados. Disponível a partir do PHP 8.0.0 e PECL zip 1.18.0. Depreciado a partir do PHP 8.3.0 e PECL zip 1.22.1, será removido em uma versão futura do libzip.
ZipArchive::FL_ENCRYPTED (int)
Lê dados criptografados (implica FL_COMPRESSED). Disponível a partir do PHP 8.0.0 e PECL zip 1.18.0.
ZipArchive::FL_OVERWRITE (int)
Se o arquivo com o nome existir, substitua-o. Disponível a partir do PHP 8.0.0 e PECL zip 1.18.0.
ZipArchive::FL_LOCAL (int)
No cabeçalho local. Disponível a partir do PHP 8.0.0 e PECL zip 1.18.0.
ZipArchive::FL_CENTRAL (int)
No diretório central. Disponível a partir do PHP 8.0.0 e PECL zip 1.18.0.
ZipArchive::FL_ENC_GUESS (int)
Suposição de codificação de string (é o padrão). Disponível a partir do PHP 7.0.8.
ZipArchive::FL_ENC_RAW (int)
Obter a string não modificada. Disponível a partir do PHP 7.0.8.
ZipArchive::FL_ENC_STRICT (int)
Seguir estritamente a especificação. Disponível a partir do PHP 7.0.8.
ZipArchive::FL_ENC_UTF_8 (int)
A string é codificada em UTF-8. Disponível a partir do PHP 7.0.8.
ZipArchive::FL_ENC_CP437 (int)
A string é codificada em CP437. Disponível a partir do PHP 7.0.8.
ZipArchive::FL_OPEN_FILE_NOW (int)
Abre o arquivo quando adicionado em vez de esperar o arquivo zip ser fechado. Esteja ciente do consumo de descritores de arquivo. Disponível a partir do PHP 8.3.0 e PECL zip 1.22.1.
Modos de compressão
ZipArchive::CM_DEFAULT (int)
melhor de deflate ou store.
ZipArchive::CM_STORE (int)
armazenado (não comprimido).
ZipArchive::CM_SHRINK (int)
reduzido
ZipArchive::CM_REDUCE_1 (int)
reduzido com fator 1
ZipArchive::CM_REDUCE_2 (int)
reduzido com fator 2
ZipArchive::CM_REDUCE_3 (int)
reduzido com fator 3
ZipArchive::CM_REDUCE_4 (int)
reduzido com fator 4
ZipArchive::CM_IMPLODE (int)
implode
ZipArchive::CM_DEFLATE (int)
desinflado
ZipArchive::CM_DEFLATE64 (int)
deflate64
ZipArchive::CM_PKWARE_IMPLODE (int)
implode PKWARE
ZipArchive::CM_BZIP2 (int)
algoritmo BZIP2
ZipArchive::CM_LZMA (int)
algoritmo LZMA
ZipArchive::CM_LZMA2 (int)
algoritmo LZMA2. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.0, respectivamente, se compilado com libzip = 1.6.0.
ZipArchive::CM_ZSTD (int)
algoritmo Zstandard. Disponível a partir do PHP 8.0.0 e PECL zip 1.19.1, respectivamente, se compilado com libzip = 1.8.0.
ZipArchive::CM_XZ (int)
algoritmo XZ. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.1, respectivamente, se compilado com libzip = 1.6.0.
ZipArchive::CM_TERSE (int)
ZipArchive::CM_LZ77 (int)
ZipArchive::CM_WAVPACK (int)
ZipArchive::CM_PPMD (int)
Erros
ZipArchive::ER_OK (int)
Sem erro.
ZipArchive::ER_MULTIDISK (int)
Arquivos zip multi-disco não suportados.
ZipArchive::ER_RENAME (int)
Falha ao renomear arquivo temporário.
ZipArchive::ER_CLOSE (int)
Falha ao fechar o arquivo zip.
ZipArchive::ER_SEEK (int)
Erro de busca.
ZipArchive::ER_READ (int)
Erro de leitura.
ZipArchive::ER_WRITE (int)
Erro de escrita.
ZipArchive::ER_CRC (int)
Erro CRC.
ZipArchive::ER_ZIPCLOSED (int)
O arquivo zip contido foi fechado.
ZipArchive::ER_NOENT (int)
Arquivo não encontrado.
ZipArchive::ER_EXISTS (int)
Arquivo já existe.
ZipArchive::ER_OPEN (int)
Não é possível abrir o arquivo.
ZipArchive::ER_TMPOPEN (int)
Falha ao criar arquivo temporário.
ZipArchive::ER_ZLIB (int)
Erro do Zlib.
ZipArchive::ER_MEMORY (int)
Falha na alocação de memória.
ZipArchive::ER_CHANGED (int)
Entrada foi alterada.
ZipArchive::ER_COMPNOTSUPP (int)
Método de compressão não suportado.
ZipArchive::ER_EOF (int)
EOF prematuro.
ZipArchive::ER_INVAL (int)
Argumento inválido.
ZipArchive::ER_NOZIP (int)
Não é um arquivo zip.
ZipArchive::ER_INTERNAL (int)
Erro interno.
ZipArchive::ER_INCONS (int)
Arquivo zip inconsistente.
ZipArchive::ER_REMOVE (int)
Não é possível remover o arquivo.
ZipArchive::ER_DELETED (int)
Entrada foi deletada.
ZipArchive::ER_ENCRNOTSUPP (int)
Método de criptografia não suportado. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.1, respectivamente.
ZipArchive::ER_RDONLY (int)
Arquivo só de leitura. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.1, respectivamente.
ZipArchive::ER_NOPASSWD (int)
Nenhuma senha fornecida. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.1, respectivamente.
ZipArchive::ER_WRONGPASSWD (int)
Senha incorreta fornecida. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.1, respectivamente.
ZipArchive::ER_OPNOTSUPP (int)
Operação não suportada. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.1, respectivamente, se compilado com libzip = 1.0.0.
ZipArchive::ER_INUSE (int)
Recurso ainda em uso. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.1, respectivamente, se compilado com libzip = 1.0.0.
ZipArchive::ER_TELL (int)
Erro ao comunicar. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.1, respectivamente, se compilado com libzip = 1.0.0.
ZipArchive::ER_COMPRESSED_DATA (int)
Dados comprimidos inválidos. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.1, respectivamente, se compilado com libzip = 1.6.0.
ZipArchive::ER_CANCELLED (int)
Operação cancelada. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.1, respectivamente, se compilado com libzip = 1.6.0.
ZipArchive::ER_DATA_LENGTH (int)
Comprimento de dados inesperado. Disponível a partir do PHP 8.3.0 e PECL zip 1.22.0, respectivamente, se compilado com libzip = 1.10.0.
ZipArchive::ER_NOT_ALLOWED (int)
Não permitido no torrentzip. Disponível a partir do PHP 8.3.0 e PECL zip 1.22.0, respectivamente, se compilado com libzip = 1.10.0.
Modos de criptografia
ZipArchive::EM_NONE (int)
Sem criptografia. Disponível a partir do PHP 7.2.0 e PECL zip 1.14.0, respectivamente.
ZipArchive::EM_TRAD_PKWARE (int)
Criptografia PKWARE tradicional. Disponível a partir do PHP 8.0.0 e PECL zip 1.19.0, respectivamente.
ZipArchive::EM_AES_128 (int)
Criptografia AES 128. Disponível a partir do PHP 7.2.0 e PECL zip 1.14.0, respectivamente, se compilado com libzip = 1.2.0.
ZipArchive::EM_AES_192 (int)
Criptografia AES 192. Disponível a partir do PHP 7.2.0 e PECL zip 1.14.0, respectivamente, se compilado com libzip = 1.2.0.
ZipArchive::EM_AES_256 (int)
Criptografia AES 256. Disponível a partir do PHP 7.2.0 e PECL zip 1.14.0, respectivamente, se compilado com libzip = 1.2.0.
ZipArchive::EM_UNKNOWN (int)
Algoritmo de criptografia desconhecido. Disponível a partir do PHP 8.0.0 e PECL zip 1.19.0, respectivamente.
Constantes de parâmetros de comprimento
ZipArchive::LENGTH_TO_END (int)
Utilize o tamanho do arquivo; se o arquivo crescer, dados adicionais serão ignorados; se o arquivo encolher, um erro será gerado (ZipArchive::ER_DATA_LENGTH). Disponível a partir do PHP 8.3.0 e PECL zip 1.22.2.
ZipArchive::LENGTH_UNCHECKED (int)
Utilize todos os dados disponíveis. Disponível a partir do PHP 8.3.0 e PECL zip 1.22.2, se compilado com libzip = 1.10.1.
Outras constantes
ZipArchive::LIBZIP_VERSION (string)
Versão da biblioteca Zip. Disponível a partir do PHP 7.4.3 e PECL zip 1.16.0.
Constantes do sistema operacional para atributos externos
ZipArchive::OPSYS_DOS (int)
ZipArchive::OPSYS_AMIGA (int)
ZipArchive::OPSYS_OPENVMS (int)
ZipArchive::OPSYS_UNIX (int)
ZipArchive::OPSYS_VM_CMS (int)
ZipArchive::OPSYS_ATARI_ST (int)
ZipArchive::OPSYS_OS_2 (int)
ZipArchive::OPSYS_MACINTOSH (int)
ZipArchive::OPSYS_Z_SYSTEM (int)
ZipArchive::OPSYS_CPM (int)
ZipArchive::OPSYS_WINDOWS_NTFS (int)
ZipArchive::OPSYS_MVS (int)
ZipArchive::OPSYS_VSE (int)
ZipArchive::OPSYS_ACORN_RISC (int)
ZipArchive::OPSYS_VFAT (int)
ZipArchive::OPSYS_ALTERNATE_MVS (int)
ZipArchive::OPSYS_BEOS (int)
ZipArchive::OPSYS_TANDEM (int)
ZipArchive::OPSYS_OS_400 (int)
ZipArchive::OPSYS_OS_X (int)
ZipArchive::OPSYS_DEFAULT (int)
Desde PECL zip 1.12.4


Exemplos

Exemplo #1 Criando um arquivo Zip

<?php

$zip = new ZipArchive();
$filename = "./test112.zip";

if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}

$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
?>

Exemplo #2 Exibindo detalhes dos arquivos e listando-os

<?php
$za = new ZipArchive();

$za->open('test_with_comment.zip');
print_r($za);
var_dump($za);
echo "numFiles: " . $za->numFiles . "\n";
echo "status: " . $za->status . "\n";
echo "statusSys: " . $za->statusSys . "\n";
echo "filename: " . $za->filename . "\n";
echo "comment: " . $za->comment . "\n";

for ($i=0; $i<$za->numFiles;$i++) {
echo "index: $i\n";
print_r($za->statIndex($i));
}
echo "numFile:" . $za->numFiles . "\n";
?>

Exemplo #3 Zip stream wrapper, lendo um OpenOffice meta info

<?php
$reader = new XMLReader();

$reader->open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml');
$odt_meta = array();
while ($reader->read()) {
if ($reader->nodeType == XMLREADER::ELEMENT) {
$elm = $reader->name;
} else {
if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') {
break;
}
if (!trim($reader->value)) {
continue;
}
$odt_meta[$elm] = $reader->value;
}
}
print_r($odt_meta);
?>

Este exemplo usa a velha API (PHP 4), ela abre um arquivo ZIP, ler cada arquivo do arquivo e imprime o conteúdo deles. O arquivo test2.zip usado neste exemplo é um arquivo de teste do fonte da distruição ZZIPlib.

Exemplo #4 Exemplo de uso

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($zip_entry) . "\n";
echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n";
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n";
echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";

if (zip_entry_open($zip, $zip_entry, "r")) {
echo "File Contents:\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);

}
?>


A classe ZipArchive

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

Introdução

Um arquivo compactado com Zip.

Resumo da classe

class ZipArchive implements Countable {
/* Constantes */
public const int CREATE;
public const int EXCL;
public const int CHECKCONS;
public const int OVERWRITE;
public const int RDONLY;
public const int FL_NOCASE;
public const int FL_NODIR;
public const int FL_COMPRESSED;
public const int FL_UNCHANGED;
public const int FL_RECOMPRESS;
public const int FL_ENCRYPTED;
public const int FL_OVERWRITE;
public const int FL_LOCAL;
public const int FL_CENTRAL;
public const int FL_ENC_GUESS;
public const int FL_ENC_RAW;
public const int FL_ENC_STRICT;
public const int FL_ENC_UTF_8;
public const int FL_ENC_CP437;
public const int FL_OPEN_FILE_NOW;
public const int CM_DEFAULT;
public const int CM_STORE;
public const int CM_SHRINK;
public const int CM_REDUCE_1;
public const int CM_REDUCE_2;
public const int CM_REDUCE_3;
public const int CM_REDUCE_4;
public const int CM_IMPLODE;
public const int CM_DEFLATE;
public const int CM_DEFLATE64;
public const int CM_PKWARE_IMPLODE;
public const int CM_BZIP2;
public const int CM_LZMA;
public const int CM_LZMA2;
public const int CM_ZSTD;
public const int CM_XZ;
public const int CM_TERSE;
public const int CM_LZ77;
public const int CM_WAVPACK;
public const int CM_PPMD;
public const int ER_OK;
public const int ER_MULTIDISK;
public const int ER_RENAME;
public const int ER_CLOSE;
public const int ER_SEEK;
public const int ER_READ;
public const int ER_WRITE;
public const int ER_CRC;
public const int ER_ZIPCLOSED;
public const int ER_NOENT;
public const int ER_EXISTS;
public const int ER_OPEN;
public const int ER_TMPOPEN;
public const int ER_ZLIB;
public const int ER_MEMORY;
public const int ER_CHANGED;
public const int ER_COMPNOTSUPP;
public const int ER_EOF;
public const int ER_INVAL;
public const int ER_NOZIP;
public const int ER_INTERNAL;
public const int ER_INCONS;
public const int ER_REMOVE;
public const int ER_DELETED;
public const int ER_ENCRNOTSUPP;
public const int ER_RDONLY;
public const int ER_NOPASSWD;
public const int ER_WRONGPASSWD;
public const int ER_OPNOTSUPP;
public const int ER_INUSE;
public const int ER_TELL;
public const int ER_COMPRESSED_DATA;
public const int ER_CANCELLED;
public const int ER_DATA_LENGTH;
public const int ER_NOT_ALLOWED;
public const int AFL_RDONLY;
public const int AFL_IS_TORRENTZIP;
public const int AFL_WANT_TORRENTZIP;
public const int AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE;
public const int OPSYS_DOS;
public const int OPSYS_AMIGA;
public const int OPSYS_OPENVMS;
public const int OPSYS_UNIX;
public const int OPSYS_VM_CMS;
public const int OPSYS_ATARI_ST;
public const int OPSYS_OS_2;
public const int OPSYS_MACINTOSH;
public const int OPSYS_Z_SYSTEM;
public const int OPSYS_CPM;
public const int OPSYS_WINDOWS_NTFS;
public const int OPSYS_MVS;
public const int OPSYS_VSE;
public const int OPSYS_ACORN_RISC;
public const int OPSYS_VFAT;
public const int OPSYS_ALTERNATE_MVS;
public const int OPSYS_BEOS;
public const int OPSYS_TANDEM;
public const int OPSYS_OS_400;
public const int OPSYS_OS_X;
public const int OPSYS_DEFAULT;
public const int EM_NONE;
public const int EM_TRAD_PKWARE;
public const int EM_AES_128;
public const int EM_AES_192;
public const int EM_AES_256;
public const int EM_UNKNOWN;
public const string LIBZIP_VERSION;
public const int LENGTH_TO_END;
public const int LENGTH_UNCHECKED;
/* Propriedades */
public readonly int $lastId;
public readonly int $status;
public readonly int $statusSys;
public readonly int $numFiles;
public readonly string $filename;
public readonly string $comment;
/* Métodos */
public addEmptyDir(string $dirname, int $flags = 0): bool
public addFile(
string $filepath,
string $entryname = "",
int $start = 0,
int $length = ZipArchive::LENGTH_TO_END,
int $flags = ZipArchive::FL_OVERWRITE
): bool
public addFromString(string $name, string $content, int $flags = ZipArchive::FL_OVERWRITE): bool
public addGlob(string $pattern, int $flags = 0, array $options = []): array|false
public addPattern(string $pattern, string $path = ".", array $options = []): array|false
public clearError(): void
public close(): bool
public count(): int
public deleteIndex(int $index): bool
public deleteName(string $name): bool
public extractTo(string $pathto, array|string|null $files = null): bool
public getArchiveComment(int $flags = 0): string|false
public getArchiveFlag(int $flag, int $flags = 0): int
public getCommentIndex(int $index, int $flags = 0): string|false
public getCommentName(string $name, int $flags = 0): string|false
public getExternalAttributesIndex(
int $index,
int &$opsys,
int &$attr,
int $flags = 0
): bool
public getExternalAttributesName(
string $name,
int &$opsys,
int &$attr,
int $flags = 0
): bool
public getFromIndex(int $index, int $len = 0, int $flags = 0): string|false
public getFromName(string $name, int $len = 0, int $flags = 0): string|false
public getNameIndex(int $index, int $flags = 0): string|false
public getStatusString(): string
public getStream(string $name): resource|false
public getStreamIndex(int $index, int $flags = 0): resource|false
public getStreamName(string $name, int $flags = 0): resource|false
public static isCompressionMethodSupported(int $method, bool $enc = true): bool
public static isEncryptionMethodSupported(int $method, bool $enc = true): bool
public locateName(string $name, int $flags = 0): int|false
public open(string $filename, int $flags = 0): bool|int
public registerCancelCallback(callable $callback): bool
public registerProgressCallback(float $rate, callable $callback): bool
public renameIndex(int $index, string $new_name): bool
public renameName(string $name, string $new_name): bool
public replaceFile(
string $filepath,
int $index,
int $start = 0,
int $length = ZipArchive::LENGTH_TO_END,
int $flags = 0
): bool
public setArchiveComment(string $comment): bool
public setArchiveFlag(int $flag, int $value): bool
public setCommentIndex(int $index, string $comment): bool
public setCommentName(string $name, string $comment): bool
public setCompressionIndex(int $index, int $method, int $compflags = 0): bool
public setCompressionName(string $name, int $method, int $compflags = 0): bool
public setEncryptionIndex(int $index, int $method, ?string $password = null): bool
public setEncryptionName(string $name, int $method, ?string $password = null): bool
public setExternalAttributesIndex(
int $index,
int $opsys,
int $attr,
int $flags = 0
): bool
public setExternalAttributesName(
string $name,
int $opsys,
int $attr,
int $flags = 0
): bool
public setMtimeIndex(int $index, int $timestamp, int $flags = 0): bool
public setMtimeName(string $name, int $timestamp, int $flags = 0): bool
public setPassword(string $password): bool
public statIndex(int $index, int $flags = 0): array|false
public statName(string $name, int $flags = 0): array|false
public unchangeAll(): bool
public unchangeArchive(): bool
public unchangeIndex(int $index): bool
public unchangeName(string $name): bool
}

Propriedades

lastId

Valor do índice da última entrada adicionada (arquivo ou diretório). Disponível a partir do PHP 8.0.0 e PECL zip 1.18.0.

status

Status do arquivo Zip. Disponível para arquivos fechados, a partir do PHP 8.0.0 e PECL zip 1.18.0.

statusSys

Status do sistema do arquivo Zip. Disponível para arquivos fechados, a partir do PHP 8.0.0 e PECL zip 1.18.0.

numFiles

Número de arquivos no arquivo Zip

filename

Nome do arquivo no sistema de arquivos

comment

Comentário para o arquivo Zip

Índice

  • ZipArchive::addEmptyDir — Adiciona um novo diretório
  • ZipArchive::addFile — Adiciona um arquivo a um arquivo ZIP a partir do caminho fornecido
  • ZipArchive::addFromString — Adiciona um arquivo a um arquivo ZIP usando seu conteúdo
  • ZipArchive::addGlob — Adicionar arquivos de um diretório por padrão glob
  • ZipArchive::addPattern — Adiciona arquivos de um diretório por padrão PCRE
  • ZipArchive::clearError — Limpa a mensagem de erro de status, mensagens do sistema e/ou do zip
  • ZipArchive::close — Fecha o arquivo de arquivo ativo (aberto ou recém-criado)
  • ZipArchive::count — Conta o número de arquivos no arquivo
  • ZipArchive::deleteIndex — Exclui uma entrada no arquivo usando seu índice
  • ZipArchive::deleteName — Exclui uma entrada no arquivo usando seu nome
  • ZipArchive::extractTo — Extrai o conteúdo do arquivo
  • ZipArchive::getArchiveComment — Retorna o comentário do arquivo Zip
  • ZipArchive::getArchiveFlag — Retorna o valor de uma opção global do arquivo Zip
  • ZipArchive::getCommentIndex — Retorna o comentário de uma entrada usando o índice da entrada
  • ZipArchive::getCommentName — Retorna o comentário de uma entrada usando o nome da entrada
  • ZipArchive::getExternalAttributesIndex — Recupera os atributos externos de uma entrada definida pelo seu índice
  • ZipArchive::getExternalAttributesName — Recupera os atributos externos de uma entrada definida pelo seu nome
  • ZipArchive::getFromIndex — Retorna o conteúdo da entrada usando seu índice
  • ZipArchive::getFromName — Retorna o conteúdo da entrada usando seu nome
  • ZipArchive::getNameIndex — Retorna o nome de uma entrada usando seu índice
  • ZipArchive::getStatusString — Retorna a mensagem de erro de status, mensagens do sistema e/ou zip
  • ZipArchive::getStream — Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)
  • ZipArchive::getStreamIndex — Obtém um manipulador de arquivo para a entrada definida pelo seu índice (somente leitura)
  • ZipArchive::getStreamName — Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)
  • ZipArchive::isCompressionMethodSupported — Verifica se um método de compressão é suportado pelo libzip
  • ZipArchive::isEncryptionMethodSupported — Verifica se um método de criptografia é suportado pelo libzip
  • ZipArchive::locateName — Retorna o índice da entrada no arquivo compactado
  • ZipArchive::open — Abre um arquivo compactado ZIP
  • ZipArchive::registerCancelCallback — Registra um callback para permitir o cancelamento durante o fechamento do arquivo compactado.
  • ZipArchive::registerProgressCallback — Registrar um callback para fornecer atualizações durante o fechamento do arquivo compactado.
  • ZipArchive::renameIndex — Renomeia uma entrada definida pelo seu índice
  • ZipArchive::renameName — Renomeia uma entrada definida pelo seu nome
  • ZipArchive::replaceFile — Substitui um arquivo no arquivo ZIP por um caminho fornecido
  • ZipArchive::setArchiveComment — Define o comentário de um arquivo ZIP
  • ZipArchive::setArchiveFlag — Define uma opção global de um arquivo ZIP
  • ZipArchive::setCommentIndex — Define o comentário de uma entrada definida pelo seu índice
  • ZipArchive::setCommentName — Define o comentário de uma entrada definida pelo seu nome
  • ZipArchive::setCompressionIndex — Define o método de compressão de uma entrada definida pelo seu índice
  • ZipArchive::setCompressionName — Define o método de compressão de uma entrada definida pelo seu nome
  • ZipArchive::setEncryptionIndex — Define o método de criptografia de uma entrada definida pelo seu índice
  • ZipArchive::setEncryptionName — Define o método de criptografia de uma entrada definida pelo seu nome
  • ZipArchive::setExternalAttributesIndex — Define os atributos externos de uma entrada definida pelo seu índice
  • ZipArchive::setExternalAttributesName — Define os atributos externos de uma entrada definida pelo seu nome
  • ZipArchive::setMtimeIndex — Define o tempo de modificação de uma entrada definida pelo seu índice
  • ZipArchive::setMtimeName — Define o tempo de modificação de uma entrada definida pelo seu nome
  • ZipArchive::setPassword — Define a senha para o arquivo ZIP ativo
  • ZipArchive::statIndex — Obtenha os detalhes de uma entrada definida pelo seu índice
  • ZipArchive::statName — Obtém os detalhes de uma entrada definida pelo seu nome
  • ZipArchive::unchangeAll — Desfaz todas as alterações feitas no arquivo
  • ZipArchive::unchangeArchive — Reverte todas as alterações globais feitas no arquivo
  • ZipArchive::unchangeIndex — Reverte todas as alterações feitas a uma entrada no índice fornecido
  • ZipArchive::unchangeName — Reverte todas as alterações feitas a uma entrada com o nome fornecido


Adiciona um novo diretório

  • « ZipArchive
  • ZipArchive::addFile »
  • PHP Manual
  • ZipArchive
  • Adiciona um novo diretório

ZipArchive::addEmptyDir

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.8.0)

ZipArchive::addEmptyDir — Adiciona um novo diretório

Descrição

public ZipArchive::addEmptyDir(string $dirname, int $flags = 0): bool

Adiciona um diretório vazio no arquivo.

Parâmetros

dirname

O diretório a ser adicionado.

flags

Máscara de bits consistindo de ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. O comportamento dessas constantes é descrito na página de constantes ZIP.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 / 1.18.0 | flags foi adicionado.

Exemplos

Exemplo #1 Criar um novo diretório em um arquivo

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
if($zip->addEmptyDir('newDirectory')) {
echo 'Created a new root directory';
} else {
echo 'Could not create the directory';
}
$zip->close();
} else {
echo 'failed';
}
?>


Adiciona um arquivo a um arquivo ZIP a partir do caminho fornecido

  • « ZipArchive::addEmptyDir
  • ZipArchive::addFromString »
  • PHP Manual
  • ZipArchive
  • Adiciona um arquivo a um arquivo ZIP a partir do caminho fornecido

ZipArchive::addFile

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::addFile — Adiciona um arquivo a um arquivo ZIP a partir do caminho fornecido

Descrição

public ZipArchive::addFile(
string $filepath,
string $entryname = "",
int $start = 0,
int $length = ZipArchive::LENGTH_TO_END,
int $flags = ZipArchive::FL_OVERWRITE
): bool

Adiciona um arquivo a um arquivo ZIP a partir de um caminho fornecido..

Nota: Para portabilidade máxima, é recomendável sempre usar barras normais (/) como separador de diretório em nomes de arquivos ZIP.

Parâmetros

filepath

O caminho para o arquivo a ser adicionado.

entryname

Se fornecido e não vazio, este é o nome local dentro do arquivo ZIP que substituirá o filepath.

start

Para cópia parcial, posição de início.

length

Para cópia parcial, comprimento a ser copiado, se ZipArchive::LENGTH_TO_END (0) o tamanho do arquivo é usado, se ZipArchive::LENGTH_UNCHECKED o arquivo inteiro é usado (a partir de start).

flags

Máscara de bits consistindo de
ZipArchive::FL_OVERWRITE,
ZipArchive::FL_ENC_GUESS,
ZipArchive::FL_ENC_UTF_8,
ZipArchive::FL_ENC_CP437,
ZipArchive::FL_OPEN_FILE_NOW.
O comportamento dessas constantes é descrito na página de
constantes ZIP.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 / 1.18.0 | flags foi adicionado.
8.3.0 / 1.22.1 | ZipArchive::FL_OPEN_FILE_NOW foi adicionado.
8.3.0 / 1.22.2 | ZipArchive::LENGTH_TO_END e ZipArchive::LENGTH_UNCHECKED foram adicionados.

Exemplos

Este exemplo abre um arquivo ZIP test.zip e adiciona o arquivo /caminho/para/index.txt. como newname.txt.

Exemplo #1 Abrir e adicionar

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->addFile('/path/to/index.txt', 'newname.txt');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>

Notas

Nota:

Quando um arquivo é configurado para ser adicionado ao arquivo, o PHP irá bloquear o arquivo. O bloqueio é liberado apenas depois que o objeto ZipArchive foi fechado, seja via ZipArchive::close() ou o objeto ZipArchive sendo destruído. Isso pode impedir que você consiga excluir o arquivo sendo adicionado até depois que o bloqueio tenha sido liberado.

Veja Também

  • ZipArchive::replaceFile() - Substitui um arquivo no arquivo ZIP por um caminho fornecido


Adiciona um arquivo a um arquivo ZIP usando seu conteúdo

  • « ZipArchive::addFile
  • ZipArchive::addGlob »
  • PHP Manual
  • ZipArchive
  • Adiciona um arquivo a um arquivo ZIP usando seu conteúdo

ZipArchive::addFromString

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::addFromString — Adiciona um arquivo a um arquivo ZIP usando seu conteúdo

Descrição

public ZipArchive::addFromString(string $name, string $content, int $flags = ZipArchive::FL_OVERWRITE): bool

Adiciona um arquivo a um arquivo ZIP usando seu conteúdo.

Nota: Para portabilidade máxima, é recomendável sempre usar barras normais (/) como separador de diretório em nomes de arquivos ZIP.

Parâmetros

name

O nome da entrada a ser criada.

content

O conteúdo a ser usado para criar a entrada. É usado em um modo binário seguro.

flags

Máscara de bits consistindo de ZipArchive::FL_OVERWRITE, ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. O comportamento dessas constantes é descrito na página de constantes ZIP.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 / 1.18.0 | flags foi adicionado.

Exemplos

Exemplo #1 Adicionar uma entrada a um novo arquivo

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'file content goes here');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>

Exemplo #2 Adicionar arquivo a um diretório dentro de um arquivo

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->addFromString('dir/test.txt', 'file content goes here');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>


Adicionar arquivos de um diretório por padrão glob

  • « ZipArchive::addFromString
  • ZipArchive::addPattern »
  • PHP Manual
  • ZipArchive
  • Adicionar arquivos de um diretório por padrão glob

ZipArchive::addGlob

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL zip >= 1.9.0)

ZipArchive::addGlob — Adicionar arquivos de um diretório por padrão glob

Descrição

public ZipArchive::addGlob(string $pattern, int $flags = 0, array $options = []): array|false

Adiciona arquivos de um diretório que correspondem ao pattern glob.

Nota: Para portabilidade máxima, é recomendável sempre usar barras normais (/) como separador de diretório em nomes de arquivos ZIP.

Parâmetros

pattern

Um padrão glob() contra o qual os arquivos serão correspondidos.

flags

Uma máscara de bits de opções glob().

options

Um array associativo de opções. As opções disponíveis são:

  • "add_path"

    Prefixo a ser adicionado ao traduzir para o caminho local do arquivo dentro do arquivo. Isso é aplicado após quaisquer operações de remoção definidas pelas opções "remove_path" ou "remove_all_path".

  • "remove_path"

    Prefixo a ser removido dos caminhos de arquivo correspondentes antes de serem adicionados ao arquivo.

  • "remove_all_path"

    true para usar apenas o nome do arquivo e adicionar à raiz do arquivo.

  • "flags"

    Máscara de bits consistindo em
ZipArchive::FL_OVERWRITE,
ZipArchive::FL_ENC_GUESS,
ZipArchive::FL_ENC_UTF_8,
ZipArchive::FL_ENC_CP437,
ZipArchive::FL_OPEN_FILE_NOW.
O comportamento dessas constantes é descrito na página de
constantes ZIP.

  • "comp_method"

    Método de compressão, um dos constantes ZipArchive::CM_*, consulte a página de constantes ZIP.

  • "comp_flags"

    Nível de compressão.

  • "enc_method"

    Método de criptografia, um dos constantes ZipArchive::EM_*, consulte a página de constantes ZIP.

  • "enc_password"

    Senha usada para criptografia.

Valor Retornado

Um array de arquivos adicionados em caso de sucesso ou false em caso de falha

Registro de Alterações

Versão | Descrição
8.0.0 / 1.18.0 | "flags" em options foi adicionado.
8.0.0 / 1.18.1 | "comp_method", "comp_flags", "enc_method" e "enc_password" em options foram adicionados.
8.3.0 / 1.22.1 | ZipArchive::FL_OPEN_FILE_NOW foi adicionado.

Exemplos

Exemplo #1 Exemplo de ZipArchive::addGlob()

Adiciona todos os scripts php e arquivos de texto do diretório de trabalho atual

<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
printf('Failed with code %d', $ret);
} else {
$options = array('add_path' => 'sources/', 'remove_all_path' => TRUE);
$zip->addGlob('*.{php,txt}', GLOB_BRACE, $options);
$zip->close();
}
?>

Veja Também

  • ZipArchive::addFile() - Adiciona um arquivo a um arquivo ZIP a partir do caminho fornecido
  • ZipArchive::addPattern() - Adiciona arquivos de um diretório por padrão PCRE


Adiciona arquivos de um diretório por padrão PCRE

  • « ZipArchive::addGlob
  • ZipArchive::clearError »
  • PHP Manual
  • ZipArchive
  • Adiciona arquivos de um diretório por padrão PCRE

ZipArchive::addPattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL zip >= 1.9.0)

ZipArchive::addPattern — Adiciona arquivos de um diretório por padrão PCRE

Descrição

public ZipArchive::addPattern(string $pattern, string $path = ".", array $options = []): array|false

Adiciona arquivos de um diretório que correspondem à expressão regular pattern. A operação não é recursiva. O padrão será correspondido apenas ao nome do arquivo.

Parâmetros

pattern

Um padrão PCRE contra o qual os arquivos serão correspondidos.

path

O diretório que será examinado. O padrão é o diretório de trabalho atual.

options

Um array associativo de opções aceitas por ZipArchive::addGlob().

Valor Retornado

Um array de arquivos adicionados em caso de sucesso ou false em caso de falha

Exemplos

Exemplo #1 Exemplo de ZipArchive::addPattern()

Adiciona todos os scripts php e arquivos de texto do diretório atual

<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
printf('Failed with code %d', $ret);
} else {
$directory = realpath('.');
$options = array('add_path' => 'sources/', 'remove_path' => $directory);
$zip->addPattern('/\.(?:php|txt)$/', $directory, $options);
$zip->close();
}
?>

Veja Também

  • ZipArchive::addFile() - Adiciona um arquivo a um arquivo ZIP a partir do caminho fornecido
  • ZipArchive::addGlob() - Adicionar arquivos de um diretório por padrão glob


Limpa a mensagem de erro de status, mensagens do sistema e/ou do zip

  • « ZipArchive::addPattern
  • ZipArchive::close »
  • PHP Manual
  • ZipArchive
  • Limpa a mensagem de erro de status, mensagens do sistema e/ou do zip

ZipArchive::clearError

(PHP 8 >= 8.2.0, PECL zip >= 1.20.0)

ZipArchive::clearError — Limpa a mensagem de erro de status, mensagens do sistema e/ou do zip

Descrição

public ZipArchive::clearError(): void

Limpa a mensagem de erro de status, mensagens do sistema e/ou do zip.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • ZipArchive::getStatusString() - Retorna a mensagem de erro de status, mensagens do sistema e/ou zip


Fecha o arquivo de arquivo ativo (aberto ou recém-criado)

  • « ZipArchive::clearError
  • ZipArchive::count »
  • PHP Manual
  • ZipArchive
  • Fecha o arquivo de arquivo ativo (aberto ou recém-criado)

ZipArchive::close

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::close — Fecha o arquivo de arquivo ativo (aberto ou recém-criado)

Descrição

public ZipArchive::close(): bool

Fecha o arquivo aberto ou criado e salva as alterações. Este método é chamado automaticamente no final do script.

Se o arquivo não contiver arquivos, o arquivo é completamente removido por padrão (nenhum arquivo vazio é gravado) de acordo com o valor do ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE global flag.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ZipArchive::setArchiveFlag() - Define uma opção global de um arquivo ZIP


Conta o número de arquivos no arquivo

  • « ZipArchive::close
  • ZipArchive::deleteIndex »
  • PHP Manual
  • ZipArchive
  • Conta o número de arquivos no arquivo

ZipArchive::count

(PHP 7 >= 7.2.0, PHP 8, PECL zip >= 1.15.0)

ZipArchive::count — Conta o número de arquivos no arquivo

Descrição

public ZipArchive::count(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de arquivos no arquivo.


Exclui uma entrada no arquivo usando seu índice

  • « ZipArchive::count
  • ZipArchive::deleteName »
  • PHP Manual
  • ZipArchive
  • Exclui uma entrada no arquivo usando seu índice

ZipArchive::deleteIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::deleteIndex — Exclui uma entrada no arquivo usando seu índice

Descrição

public ZipArchive::deleteIndex(int $index): bool

Exclui uma entrada no arquivo usando seu índice.

Parâmetros

index

Índice da entrada a ser excluída.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Excluir arquivo do arquivo usando seu índice

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->deleteIndex(2);
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>


Exclui uma entrada no arquivo usando seu nome

  • « ZipArchive::deleteIndex
  • ZipArchive::extractTo »
  • PHP Manual
  • ZipArchive
  • Exclui uma entrada no arquivo usando seu nome

ZipArchive::deleteName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::deleteName — Exclui uma entrada no arquivo usando seu nome

Descrição

public ZipArchive::deleteName(string $name): bool

Exclui uma entrada no arquivo usando seu nome.

Parâmetros

name

Nome da entrada a ser excluída.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Excluindo um arquivo e diretório de um arquivo, usando nomes

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
$zip->deleteName('testfromfile.php');
$zip->deleteName('testDir/');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>


Extrai o conteúdo do arquivo

  • « ZipArchive::deleteName
  • ZipArchive::getArchiveComment »
  • PHP Manual
  • ZipArchive
  • Extrai o conteúdo do arquivo

ZipArchive::extractTo

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::extractTo — Extrai o conteúdo do arquivo

Descrição

public ZipArchive::extractTo(string $pathto, array|string|null $files = null): bool

Extrai o arquivo completo ou os arquivos fornecidos para o destino especificado.

Aviso

As permissões padrão para os arquivos e diretórios extraídos dão o acesso mais amplo possível. Isso pode ser restrito configurando o umask atual, que pode ser alterado usando umask().

Por motivos de segurança, as permissões originais não são restauradas. Para um exemplo de como restaurá-las, consulte o exemplo de código na página ZipArchive::getExternalAttributesIndex().

Parâmetros

pathto

Local para onde extrair os arquivos.

files

As entradas para extrair. Aceita um único nome de entrada ou um array de nomes.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Extrair todas as entradas

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->extractTo('/my/destination/dir/');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>

Exemplo #2 Extrair duas entradas

<?php
$zip = new ZipArchive;
$res = $zip->open('test_im.zip');
if ($res === TRUE) {
$zip->extractTo('/my/destination/dir/', array('pear_item.gif', 'testfromfile.php'));
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>

Notas

Nota:

O sistema de arquivos NTFS do Windows não suporta alguns caracteres em nomes de arquivos, como <|>*?":. Nomes de arquivos que terminam com ponto também não são suportados. Ao contrário de algumas ferramentas de extração, este método não substitui estes caracteres por um sublinhado, mas falha ao extrair esses arquivos.


Retorna o comentário do arquivo Zip

  • « ZipArchive::extractTo
  • ZipArchive::getArchiveFlag »
  • PHP Manual
  • ZipArchive
  • Retorna o comentário do arquivo Zip

ZipArchive::getArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getArchiveComment — Retorna o comentário do arquivo Zip

Descrição

public ZipArchive::getArchiveComment(int $flags = 0): string|false

Retorna o comentário do arquivo Zip.

Parâmetros

flags

Se a opção estiver definida como ZipArchive::FL_UNCHANGED, o comentário original e não alterado é retornado.

Valor Retornado

Retorna o comentário do arquivo Zip ou false em caso de falha.

Exemplos

Exemplo #1 Imprimir um comentário de arquivo

<?php
$zip = new ZipArchive;
$res = $zip->open('test_with_comment.zip');
if ($res === TRUE) {
var_dump($zip->getArchiveComment());
/* Ou usando a propriedade do arquivo */
var_dump($zip->comment);
} else {
echo 'failed, code:' . $res;
}
?>


Retorna o valor de uma opção global do arquivo Zip

  • « ZipArchive::getArchiveComment
  • ZipArchive::getCommentIndex »
  • PHP Manual
  • ZipArchive
  • Retorna o valor de uma opção global do arquivo Zip

ZipArchive::getArchiveFlag

(PHP >= 8.3.0, PECL zip >= 1.22.0)

ZipArchive::getArchiveFlag — Retorna o valor de uma opção global do arquivo Zip

Descrição

public ZipArchive::getArchiveFlag(int $flag, int $flags = 0): int

Retorna o valor de uma opção global do arquivo Zip.

Parâmetros

flag

A opção global a ser recuperada, entre as constantes AFL_*:

  • ZipArchive::AFL_RDONLY

  • ZipArchive::AFL_IS_TORRENTZIP

  • ZipArchive::AFL_WANT_TORRENTZIP

  • ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE

flags

Se o parâmetro flags estiver definido como ZipArchive::FL_UNCHANGED, a opção original e não alterada é retornada.

Valor Retornado

Retorna 1 se a opção estiver definida para o arquivo, 0 se não estiver, e -1 se ocorrer um erro.

Exemplos

Exemplo #1 Testar se o arquivo é um formato torrentzip

<?php

$zip = new ZipArchive();
$res = $zip->open('test.zip');

if ($res === true) {
var_dump($zip->getArchiveFlag(ZipArchive::AFL_IS_TORRENTZIP));
} else {
echo 'falha, código: ' . $res;
}
?>

Veja Também

  • ZipArchive::setArchiveFlag() - Define uma opção global de um arquivo ZIP


Retorna o comentário de uma entrada usando o índice da entrada

  • « ZipArchive::getArchiveFlag
  • ZipArchive::getCommentName »
  • PHP Manual
  • ZipArchive
  • Retorna o comentário de uma entrada usando o índice da entrada

ZipArchive::getCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::getCommentIndex — Retorna o comentário de uma entrada usando o índice da entrada

Descrição

public ZipArchive::getCommentIndex(int $index, int $flags = 0): string|false

Retorna o comentário de uma entrada usando o índice da entrada.

Parâmetros

index

Índice da entrada

flags

Se flags estiver definido como ZipArchive::FL_UNCHANGED, o comentário original e não alterado é retornado.

Valor Retornado

Retorna o comentário em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Imprimir o comentário de uma entrada

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip');
if ($res === TRUE) {
var_dump($zip->getCommentIndex(1));
} else {
echo 'failed, code:' . $res;
}
?>


Retorna o comentário de uma entrada usando o nome da entrada

  • « ZipArchive::getCommentIndex
  • ZipArchive::getExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Retorna o comentário de uma entrada usando o nome da entrada

ZipArchive::getCommentName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::getCommentName — Retorna o comentário de uma entrada usando o nome da entrada

Descrição

public ZipArchive::getCommentName(string $name, int $flags = 0): string|false

Retorna o comentário de uma entrada usando o nome da entrada.

Parâmetros

name

Nome da entrada

flags

Se flags estiver definido como ZipArchive::FL_UNCHANGED, o comentário original e não alterado é retornado.

Valor Retornado

Retorna o comentário em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Imprime o comentário de uma entrada

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip');
if ($res === TRUE) {
var_dump($zip->getCommentName('test/entry1.txt'));
} else {
echo 'failed, code:' . $res;
}
?>


Recupera os atributos externos de uma entrada definida pelo seu índice

  • « ZipArchive::getCommentName
  • ZipArchive::getExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Recupera os atributos externos de uma entrada definida pelo seu índice

ZipArchive::getExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesIndex — Recupera os atributos externos de uma entrada definida pelo seu índice

Descrição

public ZipArchive::getExternalAttributesIndex(
int $index,
int &$opsys,
int &$attr,
int $flags = 0
): bool

Recupera os atributos externos de uma entrada definida pelo seu índice.

Parâmetros

index

Índice da entrada.

opsys

Em caso de sucesso, recebe o código do sistema operacional definido por uma das constantes ZipArchive::OPSYS_.

attr

Em caso de sucesso, recebe os atributos externos. O valor depende do sistema operacional.

flags

Se flags estiver definido como ZipArchive::FL_UNCHANGED, os atributos originais inalterados são retornados.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Este exemplo extrai todas as entradas de um arquivo ZIP test.zip e define os direitos Unix a partir dos atributos externos.

Exemplo #1 Extrair todas as entradas com direitos Unix

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip') === TRUE) {
for ($idx=0 ; $s = $zip->statIndex($idx) ; $idx++) {
if ($zip->extractTo('.', $s['name'])) {
if ($zip->getExternalAttributesIndex($idx, $opsys, $attr)
&& $opsys==ZipArchive::OPSYS_UNIX) {
chmod($s['name'], ($attr >> 16) & 0777);
}
}
}
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>


Recupera os atributos externos de uma entrada definida pelo seu nome

  • « ZipArchive::getExternalAttributesIndex
  • ZipArchive::getFromIndex »
  • PHP Manual
  • ZipArchive
  • Recupera os atributos externos de uma entrada definida pelo seu nome

ZipArchive::getExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesName — Recupera os atributos externos de uma entrada definida pelo seu nome

Descrição

public ZipArchive::getExternalAttributesName(
string $name,
int &$opsys,
int &$attr,
int $flags = 0
): bool

Recupera os atributos externos de uma entrada definida pelo seu nome.

Parâmetros

name

Nome da entrada.

opsys

Em caso de sucesso, recebe o código do sistema operacional definido por uma das constantes ZipArchive::OPSYS_.

attr

Em caso de sucesso, recebe os atributos externos. O valor depende do sistema operacional.

flags

Se flags estiver definido como ZipArchive::FL_UNCHANGED, os atributos originais inalterados são retornados.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Retorna o conteúdo da entrada usando seu índice

  • « ZipArchive::getExternalAttributesName
  • ZipArchive::getFromName »
  • PHP Manual
  • ZipArchive
  • Retorna o conteúdo da entrada usando seu índice

ZipArchive::getFromIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getFromIndex — Retorna o conteúdo da entrada usando seu índice

Descrição

public ZipArchive::getFromIndex(int $index, int $len = 0, int $flags = 0): string|false

Retorna o conteúdo da entrada usando seu índice.

Parâmetros

index

Índice da entrada

len

O comprimento a ser lido da entrada. Se 0, então a entrada inteira é lida.

flags

As opções a serem usadas para abrir o arquivo. Os seguintes valores podem ser ORed a ele.

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

Valor Retornado

Retorna o conteúdo da entrada em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Obter o conteúdo do arquivo

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
echo $zip->getFromIndex(2);
$zip->close();
} else {
echo 'failed';
}
?>

Veja Também

  • ZipArchive::getFromName() - Retorna o conteúdo da entrada usando seu nome


Retorna o conteúdo da entrada usando seu nome

  • « ZipArchive::getFromIndex
  • ZipArchive::getNameIndex »
  • PHP Manual
  • ZipArchive
  • Retorna o conteúdo da entrada usando seu nome

ZipArchive::getFromName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getFromName — Retorna o conteúdo da entrada usando seu nome

Descrição

public ZipArchive::getFromName(string $name, int $len = 0, int $flags = 0): string|false

Retorna o conteúdo da entrada usando seu nome.

Parâmetros

name

Nome da entrada

len

O comprimento a ser lido da entrada. Se 0, então a entrada inteira é lida.

flags

As opções a serem usadas para encontrar a entrada. Os seguintes valores podem ser ORed.

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

  • ZipArchive::FL_NOCASE

Valor Retornado

Retorna o conteúdo da entrada em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Obter o conteúdo do arquivo

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
echo $zip->getFromName('testfromfile.php');
$zip->close();
} else {
echo 'failed';
}
?>

Exemplo #2 Converter uma imagem de uma entrada zip

<?php
$z = new ZipArchive();
if ($z->open(dirname(__FILE__) . '/test_im.zip')) {
$im_string = $z->getFromName("pear_item.gif");
$im = imagecreatefromstring($im_string);
imagepng($im, 'b.png');
}
?>

Veja Também

  • ZipArchive::getFromIndex() - Retorna o conteúdo da entrada usando seu índice


Retorna o nome de uma entrada usando seu índice

  • « ZipArchive::getFromName
  • ZipArchive::getStatusString »
  • PHP Manual
  • ZipArchive
  • Retorna o nome de uma entrada usando seu índice

ZipArchive::getNameIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::getNameIndex — Retorna o nome de uma entrada usando seu índice

Descrição

public ZipArchive::getNameIndex(int $index, int $flags = 0): string|false

Retorna o nome de uma entrada usando seu índice.

Parâmetros

index

Índice da entrada.

flags

Se flags estiver definido como ZipArchive::FL_UNCHANGED, o nome original inalterado é retornado.

Valor Retornado

Retorna o nome em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de ZipArchive::getNameIndex()

<?php
if ($zip->open('test.zip') == TRUE) {
for ($i = 0; $i < $zip->numFiles; $i++) {
$filename = $zip->getNameIndex($i);
// ...
}
}
?>


Retorna a mensagem de erro de status, mensagens do sistema e/ou zip

  • « ZipArchive::getNameIndex
  • ZipArchive::getStream »
  • PHP Manual
  • ZipArchive
  • Retorna a mensagem de erro de status, mensagens do sistema e/ou zip

ZipArchive::getStatusString

(PHP 5 >= 5.2.7, PHP 7, PHP 8)

ZipArchive::getStatusString — Retorna a mensagem de erro de status, mensagens do sistema e/ou zip

Descrição

public ZipArchive::getStatusString(): string

Retorna a mensagem de erro de status, mensagens do sistema e/ou zip.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string com a mensagem de status.

Registro de Alterações

Versão | Descrição
8.0.0 / 1.18.0 | Este método pode ser chamado em um arquivo fechado.
8.0.0 / 1.18.0 | Este método não retorna mais false em caso de falha.


Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)

  • « ZipArchive::getStatusString
  • ZipArchive::getStreamIndex »
  • PHP Manual
  • ZipArchive
  • Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)

ZipArchive::getStream

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getStream — Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)

Descrição

public ZipArchive::getStream(string $name): resource|false

Obtém um manipulador de arquivo para a entrada definida pelo seu nome. Por enquanto, suporta apenas operações de leitura.

Parâmetros

name

O nome da entrada a ser usado.

Valor Retornado

Retorna um ponteiro de arquivo (recurso) em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Obter o conteúdo da entrada com fread() e armazená-lo

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
$fp = $z->getStream('test');
if(!$fp) exit("failed\n");

while (!feof($fp)) {
$contents .= fread($fp, 2);
}

fclose($fp);
file_put_contents('t',$contents);
echo "done.\n";
}
?>

Exemplo #2 Mesmo que o exemplo anterior, mas com fopen() e o wrapper de fluxo zip

<?php
$contents = '';
$fp = fopen('zip://' . dirname(__FILE__) . '/test.zip#test', 'r');
if (!$fp) {
exit("cannot open\n");
}
while (!feof($fp)) {
$contents .= fread($fp, 2);
}
echo "$contents\n";
fclose($fp);
echo "done.\n";
?>

Exemplo #3 Wrapper de fluxo e imagem, pode ser usado também com a função xml

<?php
$im = imagecreatefromgif('zip://' . dirname(__FILE__) . '/test_im.zip#pear_item.gif');
imagepng($im, 'a.png');
?>

Veja Também

  • ZipArchive::getStreamIndex() - Obtém um manipulador de arquivo para a entrada definida pelo seu índice (somente leitura)
  • ZipArchive::getStreamName() - Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)
  • Fluxos de Compressão


Obtém um manipulador de arquivo para a entrada definida pelo seu índice (somente leitura)

  • « ZipArchive::getStream
  • ZipArchive::getStreamName »
  • PHP Manual
  • ZipArchive
  • Obtém um manipulador de arquivo para a entrada definida pelo seu índice (somente leitura)

ZipArchive::getStreamIndex

(PHP 8 >= 8.2.0, PECL zip >= 1.20.0)

ZipArchive::getStreamIndex — Obtém um manipulador de arquivo para a entrada definida pelo seu índice (somente leitura)

Descrição

public ZipArchive::getStreamIndex(int $index, int $flags = 0): resource|false

Obtenha um manipulador de arquivo para a entrada definida pelo seu índice. Por enquanto, suporta apenas operações de leitura.

Parâmetros

index

Índice da entrada

flags

Se flags estiver definido como ZipArchive::FL_UNCHANGED, o fluxo original inalterado é retornado.

Valor Retornado

Retorna um ponteiro de arquivo (recurso) em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Obtém o conteúdo da entrada com fread() e armazená-lo

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
$fp = $z->getStreamIndex(1, ZipArchive::FL_UNCHANGED);
if(!$fp) die($z->getStatusString());

echo stream_get_contents($fp);

fclose($fp);
}
?>

Veja Também

  • ZipArchive::getStreamName() - Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)


Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)

  • « ZipArchive::getStreamIndex
  • ZipArchive::isCompressionMethodSupported »
  • PHP Manual
  • ZipArchive
  • Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)

ZipArchive::getStreamName

(PHP 8 >= 8.2.0, PECL zip >= 1.20.0)

ZipArchive::getStreamName — Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)

Descrição

public ZipArchive::getStreamName(string $name, int $flags = 0): resource|false

Obtém um manipulador de arquivo para a entrada definida pelo seu nome. Por enquanto, suporta apenas operações de leitura.

Parâmetros

name

O nome da entrada a ser usado.

flags

Se flags estiver definido como ZipArchive::FL_UNCHANGED, o fluxo original inalterado é retornado.

Valor Retornado

Retorna um ponteiro de arquivo (recurso) em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Obtém o conteúdo da entrada com fread() e armazená-lo

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
$fp = $z->getStreamName('test', ZipArchive::FL_UNCHANGED);
if(!$fp) die($z->getStatusString());

echo stream_get_contents($fp);

fclose($fp);
}
?>

Veja Também

  • ZipArchive::getStreamIndex() - Obtém um manipulador de arquivo para a entrada definida pelo seu índice (somente leitura)


Verifica se um método de compressão é suportado pelo libzip

  • « ZipArchive::getStreamName
  • ZipArchive::isEncryptionMethodSupported »
  • PHP Manual
  • ZipArchive
  • Verifica se um método de compressão é suportado pelo libzip

ZipArchive::isCompressionMethodSupported

(PHP >= 8.0.0, PECL zip >= 1.19.0)

ZipArchive::isCompressionMethodSupported — Verifica se um método de compressão é suportado pelo libzip

Descrição

public static ZipArchive::isCompressionMethodSupported(int $method, bool $enc = true): bool

Verifica se um método de compressão é suportado pelo libzip.

Parâmetros

method

O método de compressão, um dos constantes ZipArchive::CM_*.

enc

Se true, verifica a compressão; caso contrário, verifica a descompressão.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Nota:

Esta função está disponível apenas se compilada contra libzip = 1.7.0.

Veja Também

  • ZipArchive::setCompressionIndex() - Define o método de compressão de uma entrada definida pelo seu índice
  • ZipArchive::setCompressionName() - Define o método de compressão de uma entrada definida pelo seu nome


Verifica se um método de criptografia é suportado pelo libzip

  • « ZipArchive::isCompressionMethodSupported
  • ZipArchive::locateName »
  • PHP Manual
  • ZipArchive
  • Verifica se um método de criptografia é suportado pelo libzip

ZipArchive::isEncryptionMethodSupported

(PHP >= 8.0.0, PECL zip >= 1.19.0)

ZipArchive::isEncryptionMethodSupported — Verifica se um método de criptografia é suportado pelo libzip

Descrição

public static ZipArchive::isEncryptionMethodSupported(int $method, bool $enc = true): bool

Verifica se um método de criptografia é suportado pelo libzip.

Parâmetros

method

O método de criptografia, um dos constantes ZipArchive::EM_*.

enc

Se true, verifica a criptografia; caso contrário, verifica a descriptografia.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Nota:

Esta função está disponível apenas se compilada contra libzip = 1.7.0.

Veja Também

  • ZipArchive::setEncryptionIndex() - Define o método de criptografia de uma entrada definida pelo seu índice
  • ZipArchive::setEncryptionName() - Define o método de criptografia de uma entrada definida pelo seu nome


Retorna o índice da entrada no arquivo compactado

  • « ZipArchive::isEncryptionMethodSupported
  • ZipArchive::open »
  • PHP Manual
  • ZipArchive
  • Retorna o índice da entrada no arquivo compactado

ZipArchive::locateName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::locateName — Retorna o índice da entrada no arquivo compactado

Descrição

public ZipArchive::locateName(string $name, int $flags = 0): int|false

Localiza uma entrada usando seu nome.

Parâmetros

name

O nome da entrada a ser procurada

flags

As opções são especificadas através da operação OR nos seguintes valores, ou 0 para nenhum deles.

  • ZipArchive::FL_NOCASE

  • ZipArchive::FL_NODIR

Valor Retornado

Retorna o índice da entrada em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Criar um arquivo compactado e em seguida usá-lo com ZipArchive::locateName()

<?php
$file = 'testlocate.zip';

$zip = new ZipArchive;
if ($zip->open($file, ZipArchive::CREATE) !== TRUE) {
exit('failed');
}

$zip->addFromString('entry1.txt', 'entry #1');
$zip->addFromString('entry2.txt', 'entry #2');
$zip->addFromString('dir/entry2d.txt', 'entry #2');

if ($zip->status !== ZipArchive::ER_OK) {
echo "failed to write zip\n";
}
$zip->close();

if ($zip->open($file) !== TRUE) {
exit('failed');
}

echo $zip->locateName('entry1.txt') . "\n";
echo $zip->locateName('eNtry2.txt') . "\n";
echo $zip->locateName('eNtry2.txt', ZipArchive::FL_NOCASE) . "\n";
echo $zip->locateName('enTRy2d.txt', ZipArchive::FL_NOCASE|ZipArchive::FL_NODIR) . "\n";
$zip->close();

?>

O exemplo acima produzirá:

0

1
2


Abre um arquivo compactado ZIP

  • « ZipArchive::locateName
  • ZipArchive::registerCancelCallback »
  • PHP Manual
  • ZipArchive
  • Abre um arquivo compactado ZIP

ZipArchive::open

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::open — Abre um arquivo compactado ZIP

Descrição

public ZipArchive::open(string $filename, int $flags = 0): bool|int

Abre um arquivo compactado ZIP novo ou existente para leitura, escrita ou modificação.

Desde o libzip 1.6.0, um arquivo vazio não é mais um arquivo compactado válido.

Parâmetros

filename

O nome do arquivo compactado ZIP a ser aberto.

flags

O modo a ser usado para abrir o arquivo compactado.

  • ZipArchive::OVERWRITE

  • ZipArchive::CREATE

  • ZipArchive::RDONLY

  • ZipArchive::EXCL

  • ZipArchive::CHECKCONS

Valor Retornado

Retorna true em caso de sucesso, false ou um dos seguintes códigos de erro em caso de falha:

ZipArchive::ER_EXISTS
Arquivo já existe.
ZipArchive::ER_INCONS
Arquivo compactado inconsistente.
ZipArchive::ER_INVAL
Argumento inválido.
ZipArchive::ER_MEMORY
Falha ao alocar memória.
ZipArchive::ER_NOENT
Arquivo não encontrado.
ZipArchive::ER_NOZIP
Não é um arquivo compactado ZIP.
ZipArchive::ER_OPEN
Não é possível abrir o arquivo.
ZipArchive::ER_READ
Erro de leitura.
ZipArchive::ER_SEEK
Erro de busca.

Exemplos

Exemplo #1 Abrir e extrair

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
echo 'ok';
$zip->extractTo('test');
$zip->close();
} else {
echo 'failed, code:' . $res;
}
?>

Exemplo #2 Cria um arquivo

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'o conteúdo do arquivo vai aqui');
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
echo 'ok';
} else {
echo 'falhou';
}
?>

Exemplo #3 Cria um arquivo temporário

<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive;
$res = $zip->open($name, ZipArchive::OVERWRITE); /* truncar pois um arquivo vazio não é válido */
if ($res === TRUE) {
$zip->addFile('data.txt', 'nomedaentrada.txt');
$zip->close();
echo 'ok';
} else {
echo 'falhou';
}
?>


Registra um callback para permitir o cancelamento durante o fechamento do arquivo compactado.

  • « ZipArchive::open
  • ZipArchive::registerProgressCallback »
  • PHP Manual
  • ZipArchive
  • Registra um callback para permitir o cancelamento durante o fechamento do arquivo compactado.

ZipArchive::registerCancelCallback

(PHP >= 8.0.0, PECL zip >= 1.17.0)

ZipArchive::registerCancelCallback — Registra um callback para permitir o cancelamento durante o fechamento do arquivo compactado.

Descrição

public ZipArchive::registerCancelCallback(callable $callback): bool

Registra uma função de callback para permitir o cancelamento durante o fechamento do arquivo compactado.

Parâmetros

callback

Se esta função retornar 0, a operação continuará; qualquer outro valor resultará no cancelamento.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Este exemplo cria um arquivo compactado ZIP php.zip e cancela a operação em algumas condições de execução.

Exemplo #1 Arquivar um arquivo

<?php
$zip = new ZipArchive();
if ($zip->open('php.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
$zip->addFile(PHP_BINARY, 'php');
$zip->registerCancelCallback(function () {
return ($someruncondition ? -1 : 0);
});
$zip->close();
}

Notas

Nota:

Esta função só está disponível se for construída com libzip = 1.6.0.

Veja Também

  • ZipArchive::registerProgressCallback() - Registrar um callback para fornecer atualizações durante o fechamento do arquivo compactado.


Registrar um callback para fornecer atualizações durante o fechamento do arquivo compactado.

  • « ZipArchive::registerCancelCallback
  • ZipArchive::renameIndex »
  • PHP Manual
  • ZipArchive
  • Registrar um callback para fornecer atualizações durante o fechamento do arquivo compactado.

ZipArchive::registerProgressCallback

(PHP >= 8.0.0, PECL zip >= 1.17.0)

ZipArchive::registerProgressCallback — Registrar um callback para fornecer atualizações durante o fechamento do arquivo compactado.

Descrição

public ZipArchive::registerProgressCallback(float $rate, callable $callback): bool

Registra uma função de callback para fornecer atualizações durante o fechamento do arquivo compactado.

Parâmetros

rate

Alteração entre cada chamada do retorno de chamada (de 0.0 a 1.0).

callback

Esta função receberá o state atual como um float (de 0.0 a 1.0).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Este exemplo cria um arquivo compactado ZIP php.zip e mostra a progressão.

Exemplo #1 Archive a file

$zip = new ZipArchive();
if ($zip->open('php.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
$zip->addFile(PHP_BINARY, 'php');
$zip->registerProgressCallback(0.05, function ($r) {
printf("%d%%\n", $r * 100);
});
$zip->close();
}

Notas

Nota:

Esta função só está disponível se for construída com libzip = 1.3.0.

Veja Também

  • ZipArchive::registerCancelCallback() - Registra um callback para permitir o cancelamento durante o fechamento do arquivo compactado.


Renomeia uma entrada definida pelo seu índice

  • « ZipArchive::registerProgressCallback
  • ZipArchive::renameName »
  • PHP Manual
  • ZipArchive
  • Renomeia uma entrada definida pelo seu índice

ZipArchive::renameIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::renameIndex — Renomeia uma entrada definida pelo seu índice

Descrição

public ZipArchive::renameIndex(int $index, string $new_name): bool

Renomeia uma entrada definida pelo seu índice.

Parâmetros

index

Índice da entrada a ser renomeada.

new_name

Novo nome.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Renomear uma entrada

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
$zip->renameIndex(2,'newname.txt');
$zip->close();
} else {
echo 'failed, code:' . $res;
}
?>


Renomeia uma entrada definida pelo seu nome

  • « ZipArchive::renameIndex
  • ZipArchive::replaceFile »
  • PHP Manual
  • ZipArchive
  • Renomeia uma entrada definida pelo seu nome

ZipArchive::renameName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::renameName — Renomeia uma entrada definida pelo seu nome

Descrição

public ZipArchive::renameName(string $name, string $new_name): bool

Renomeia uma entrada definida pelo seu nome.

Parâmetros

name

Nome da entrada a ser renomeada.

new_name

Novo nome.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Renomear uma entrada

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
$zip->renameName('currentname.txt','newname.txt');
$zip->close();
} else {
echo 'failed, code:' . $res;
}
?>


Substitui um arquivo no arquivo ZIP por um caminho fornecido

  • « ZipArchive::renameName
  • ZipArchive::setArchiveComment »
  • PHP Manual
  • ZipArchive
  • Substitui um arquivo no arquivo ZIP por um caminho fornecido

ZipArchive::replaceFile

(PHP >= 8.0.0, PECL zip >= 1.18.0)

ZipArchive::replaceFile — Substitui um arquivo no arquivo ZIP por um caminho fornecido

Descrição

public ZipArchive::replaceFile(
string $filepath,
int $index,
int $start = 0,
int $length = ZipArchive::LENGTH_TO_END,
int $flags = 0
): bool

Substitui um arquivo no arquivo ZIP por um caminho fornecido.

Nota: Para portabilidade máxima, é recomendável sempre usar barras normais (/) como separador de diretório em nomes de arquivos ZIP.

Parâmetros

filepath

O caminho para o arquivo a ser adicionado.

index

O índice do arquivo a ser substituído, seu nome não é alterado.

start

Para cópia parcial, posição inicial.

length

Para cópia parcial, comprimento a ser copiado, se ZipArchive::LENGTH_TO_END (0), o tamanho do arquivo é usado, se ZipArchive::LENGTH_UNCHECKED, o arquivo inteiro é usado (a partir de start).

flags

Máscara de bits consistindo em ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437, ZipArchive::FL_OPEN_FILE_NOW. O comportamento dessas constantes é descrito na página constantes do ZIP.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.0 / 1.22.1 | ZipArchive::FL_OPEN_FILE_NOW foi adicionado.
8.3.0 / 1.22.2 | ZipArchive::LENGTH_TO_END e ZipArchive::LENGTH_UNCHECKED foram adicionados.

Exemplos

Este exemplo abre um arquivo ZIP test.zip e substitui a entrada do índice 1 pelo arquivo /path/to/index.txt.

Exemplo #1 Abrir e substituir

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->replaceFile('/path/to/index.txt', 1);
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>

Veja Também

  • ZipArchive::addFile() - Adiciona um arquivo a um arquivo ZIP a partir do caminho fornecido


Define o comentário de um arquivo ZIP

  • « ZipArchive::replaceFile
  • ZipArchive::setArchiveFlag »
  • PHP Manual
  • ZipArchive
  • Define o comentário de um arquivo ZIP

ZipArchive::setArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setArchiveComment — Define o comentário de um arquivo ZIP

Descrição

public ZipArchive::setArchiveComment(string $comment): bool

Define o comentário de um arquivo ZIP.

Parâmetros

comment

O conteúdo do comentário.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Criar um arquivo e definir um comentário

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'file content goes here');
$zip->setArchiveComment('new archive comment');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>


Define uma opção global de um arquivo ZIP

  • « ZipArchive::setArchiveComment
  • ZipArchive::setCommentIndex »
  • PHP Manual
  • ZipArchive
  • Define uma opção global de um arquivo ZIP

ZipArchive::setArchiveFlag

(PHP >= 8.3.0, PECL zip >= 1.22.0)

ZipArchive::setArchiveFlag — Define uma opção global de um arquivo ZIP

Descrição

public ZipArchive::setArchiveFlag(int $flag, int $value): bool

Define uma opção global de um arquivo ZIP.

Parâmetros

flag

A opção global a ser alterada, entre as constantes AFL_*.

  • ZipArchive::AFL_WANT_TORRENTZIP

  • ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE

value

O novo valor da opção.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Criar um arquivo torrentzip

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->setArchiveFlag(ZipArchive::AFL_WANT_TORRENTZIP, 1);
$zip->addFromString('test.txt', 'file content goes here');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>

Veja Também

  • ZipArchive::getArchiveFlag() - Retorna o valor de uma opção global do arquivo Zip


Define o comentário de uma entrada definida pelo seu índice

  • « ZipArchive::setArchiveFlag
  • ZipArchive::setCommentName »
  • PHP Manual
  • ZipArchive
  • Define o comentário de uma entrada definida pelo seu índice

ZipArchive::setCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setCommentIndex — Define o comentário de uma entrada definida pelo seu índice

Descrição

public ZipArchive::setCommentIndex(int $index, string $comment): bool

Define o comentário de uma entrada definida pelo seu índice.

Parâmetros

index

Índice da entrada.

comment

O conteúdo do comentário.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Abrir um arquivo e definir um comentário para uma entrada

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
$zip->setCommentIndex(2, 'new entry comment');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>


Define o comentário de uma entrada definida pelo seu nome

  • « ZipArchive::setCommentIndex
  • ZipArchive::setCompressionIndex »
  • PHP Manual
  • ZipArchive
  • Define o comentário de uma entrada definida pelo seu nome

ZipArchive::setCommentName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setCommentName — Define o comentário de uma entrada definida pelo seu nome

Descrição

public ZipArchive::setCommentName(string $name, string $comment): bool

Define o comentário de uma entrada definida pelo seu nome.

Parâmetros

name

Nome da entrada.

comment

O conteúdo do comentário.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Abrir um arquivo e definir um comentário para uma entrada

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
$zip->setCommentName('entry1.txt', 'new entry comment');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>


Define o método de compressão de uma entrada definida pelo seu índice

  • « ZipArchive::setCommentName
  • ZipArchive::setCompressionName »
  • PHP Manual
  • ZipArchive
  • Define o método de compressão de uma entrada definida pelo seu índice

ZipArchive::setCompressionIndex

(PHP 7, PHP 8, PECL zip >= 1.13.0)

ZipArchive::setCompressionIndex — Define o método de compressão de uma entrada definida pelo seu índice

Descrição

public ZipArchive::setCompressionIndex(int $index, int $method, int $compflags = 0): bool

Define o método de compressão de uma entrada definida pelo seu índice.

Parâmetros

index

Índice da entrada.

method

O método de compressão, uma das constantes ZipArchive::CM_*.

compflags

Nível de compressão.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Adicionar arquivos com diferentes métodos de compressão a um arquivo

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('foo', 'Some text');
$zip->addFromString('bar', 'Some other text');
$zip->setCompressionIndex(0, ZipArchive::CM_STORE);
$zip->setCompressionIndex(1, ZipArchive::CM_DEFLATE);
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>


Define o método de compressão de uma entrada definida pelo seu nome

  • « ZipArchive::setCompressionIndex
  • ZipArchive::setEncryptionIndex »
  • PHP Manual
  • ZipArchive
  • Define o método de compressão de uma entrada definida pelo seu nome

ZipArchive::setCompressionName

(PHP 7, PHP 8, PECL zip >= 1.13.0)

ZipArchive::setCompressionName — Define o método de compressão de uma entrada definida pelo seu nome

Descrição

public ZipArchive::setCompressionName(string $name, int $method, int $compflags = 0): bool

Define o método de compressão de uma entrada definida pelo seu nome.

Parâmetros

name

Nome da entrada.

method

O método de compressão, uma das constantes ZipArchive::CM_*.

compflags

Nível de compressão.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Adicionar arquivos com diferentes métodos de compressão a um arquivo

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('foo', 'Some text');
$zip->addFromString('bar', 'Some other text');
$zip->setCompressionName('foo', ZipArchive::CM_STORE);
$zip->setCompressionName('bar', ZipArchive::CM_DEFLATE);
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>

Exemplo #2 Adicionar arquivo e definir método de compressão

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFile('foo.jpg', 'bar.jpg');
$zip->setCompressionName('bar.jpg', ZipArchive::CM_XZ);
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>


Define o método de criptografia de uma entrada definida pelo seu índice

  • « ZipArchive::setCompressionName
  • ZipArchive::setEncryptionName »
  • PHP Manual
  • ZipArchive
  • Define o método de criptografia de uma entrada definida pelo seu índice

ZipArchive::setEncryptionIndex

(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)

ZipArchive::setEncryptionIndex — Define o método de criptografia de uma entrada definida pelo seu índice

Descrição

public ZipArchive::setEncryptionIndex(int $index, int $method, ?string $password = null): bool

Define o método de criptografia de uma entrada definida pelo seu índice.

Parâmetros

index

Índice da entrada.

method

O método de criptografia definido por uma das constantes ZipArchive::EM_.

password

Senha opcional, usada por padrão quando ausente.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | password é anulável agora.

Notas

Nota:

Esta função está disponível apenas se construída contra libzip = 1.2.0.

Veja Também

  • ZipArchive::setPassword() - Define a senha para o arquivo ZIP ativo
  • ZipArchive::setEncryptionName() - Define o método de criptografia de uma entrada definida pelo seu nome


Define o método de criptografia de uma entrada definida pelo seu nome

  • « ZipArchive::setEncryptionIndex
  • ZipArchive::setExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Define o método de criptografia de uma entrada definida pelo seu nome

ZipArchive::setEncryptionName

(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)

ZipArchive::setEncryptionName — Define o método de criptografia de uma entrada definida pelo seu nome

Descrição

public ZipArchive::setEncryptionName(string $name, int $method, ?string $password = null): bool

Define o método de criptografia de uma entrada definida pelo seu nome.

Parâmetros

name

Nome da entrada.

method

O método de criptografia definido por uma das constantes ZipArchive::EM_.

password

Senha opcional, usada por padrão quando ausente.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | password é anulável agora.

Exemplos

Este exemplo cria um arquivo ZIP test.zip e adiciona o arquivo test.txt criptografado usando o método AES 256.

Exemplo #1 Arquivar e criptografar um arquivo

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
$zip->setPassword('secret');
$zip->addFile('text.txt');
$zip->setEncryptionName('text.txt', ZipArchive::EM_AES_256);
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>

Notas

Nota:

Esta função está disponível apenas se construída contra libzip = 1.2.0.

Veja Também

  • ZipArchive::setPassword() - Define a senha para o arquivo ZIP ativo
  • ZipArchive::setEncryptionIndex() - Define o método de criptografia de uma entrada definida pelo seu índice


Define os atributos externos de uma entrada definida pelo seu índice

  • « ZipArchive::setEncryptionName
  • ZipArchive::setExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Define os atributos externos de uma entrada definida pelo seu índice

ZipArchive::setExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesIndex — Define os atributos externos de uma entrada definida pelo seu índice

Descrição

public ZipArchive::setExternalAttributesIndex(
int $index,
int $opsys,
int $attr,
int $flags = 0
): bool

Define os atributos externos de uma entrada definida pelo seu índice.

Parâmetros

index

Índice da entrada.

opsys

O código do sistema operacional definido por uma das constantes ZipArchive::OPSYS_.

attr

Os atributos externos. O valor depende do sistema operacional.

flags

Opções opcionais. Atualmente não utilizado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Define os atributos externos de uma entrada definida pelo seu nome

  • « ZipArchive::setExternalAttributesIndex
  • ZipArchive::setMtimeIndex »
  • PHP Manual
  • ZipArchive
  • Define os atributos externos de uma entrada definida pelo seu nome

ZipArchive::setExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesName — Define os atributos externos de uma entrada definida pelo seu nome

Descrição

public ZipArchive::setExternalAttributesName(
string $name,
int $opsys,
int $attr,
int $flags = 0
): bool

Define os atributos externos de uma entrada definida pelo seu nome.

Parâmetros

name

Nome da entrada.

opsys

O código do sistema operacional definido por uma das constantes ZipArchive::OPSYS_.

attr

Os atributos externos. O valor depende do sistema operacional.

flags

Opções opcionais. Atualmente não utilizado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Este exemplo abre um arquivo ZIP test.zip e adiciona o arquivo test.txt com seus direitos Unix como atributos externos.

Exemplo #1 Arquivar um arquivo, com seus direitos Unix

<?php
$zip = new ZipArchive();
$stat = stat($filename='test.txt');
if (is_array($stat) && $zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
$zip->addFile($filename);
$zip->setExternalAttributesName($filename, ZipArchive::OPSYS_UNIX, $stat['mode'] << 16);
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>


Define o tempo de modificação de uma entrada definida pelo seu índice

  • « ZipArchive::setExternalAttributesName
  • ZipArchive::setMtimeName »
  • PHP Manual
  • ZipArchive
  • Define o tempo de modificação de uma entrada definida pelo seu índice

ZipArchive::setMtimeIndex

(PHP >= 8.0.0, PECL zip >= 1.16.0)

ZipArchive::setMtimeIndex — Define o tempo de modificação de uma entrada definida pelo seu índice

Descrição

public ZipArchive::setMtimeIndex(int $index, int $timestamp, int $flags = 0): bool

Define o tempo de modificação de uma entrada definida pelo seu índice.

Parâmetros

index

Índice da entrada.

timestamp

O tempo de modificação (timestamp Unix) do arquivo.

flags

Opções opcionais, não utilizados por enquanto.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Este exemplo cria um arquivo ZIP test.zip e adiciona o arquivo test.txt com sua data de modificação.

Exemplo #1 Arquivar um arquivo

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
$zip->addFile('text.txt');
$zip->setMtimeIndex(0, mktime(0,0,0,12,25,2019));
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>

Notas

Nota:

Esta função só está disponível se compilada com libzip = 1.0.0.

Veja Também

  • ZipArchive::setMtimeName() - Define o tempo de modificação de uma entrada definida pelo seu nome


Define o tempo de modificação de uma entrada definida pelo seu nome

  • « ZipArchive::setMtimeIndex
  • ZipArchive::setPassword »
  • PHP Manual
  • ZipArchive
  • Define o tempo de modificação de uma entrada definida pelo seu nome

ZipArchive::setMtimeName

(PHP >= 8.0.0, PECL zip >= 1.16.0)

ZipArchive::setMtimeName — Define o tempo de modificação de uma entrada definida pelo seu nome

Descrição

public ZipArchive::setMtimeName(string $name, int $timestamp, int $flags = 0): bool

Define o tempo de modificação de uma entrada definida pelo seu nome.

Parâmetros

name

Nome da entrada.

timestamp

O tempo de modificação (timestamp Unix) do arquivo.

flags

Opções opcionais, não utilizados por enquanto.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Este exemplo cria um arquivo ZIP test.zip e adiciona o arquivo test.txt com sua data de modificação.

Exemplo #1 Arquivar um arquivo

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
$zip->addFile('text.txt');
$zip->setMtimeName('text.txt', mktime(0,0,0,12,25,2019));
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>

Notas

Nota:

Esta função só está disponível se compilada com libzip = 1.0.0.

Veja Também

  • ZipArchive::setMtimeIndex() - Define o tempo de modificação de uma entrada definida pelo seu índice


Define a senha para o arquivo ZIP ativo

  • « ZipArchive::setMtimeName
  • ZipArchive::statIndex »
  • PHP Manual
  • ZipArchive
  • Define a senha para o arquivo ZIP ativo

ZipArchive::setPassword

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setPassword — Define a senha para o arquivo ZIP ativo

Descrição

public ZipArchive::setPassword(string $password): bool

Define a senha para o arquivo ZIP ativo.

Parâmetros

password

A senha a ser usada para o arquivo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Nota:

A partir do PHP 7.2.0 e libzip 1.2.0, a senha é usada para descompactar o arquivo ZIP e também é a senha padrão para ZipArchive::setEncryptionName() e ZipArchive::setEncryptionIndex(). Anteriormente, esta função apenas definia a senha a ser usada para descompactar o arquivo ZIP; ela não transformava um ZipArchive sem senha em um ZipArchive com senha.

Veja Também

  • ZipArchive::setEncryptionIndex() - Define o método de criptografia de uma entrada definida pelo seu índice
  • ZipArchive::setEncryptionName() - Define o método de criptografia de uma entrada definida pelo seu nome


Obtenha os detalhes de uma entrada definida pelo seu índice

  • « ZipArchive::setPassword
  • ZipArchive::statName »
  • PHP Manual
  • ZipArchive
  • Obtenha os detalhes de uma entrada definida pelo seu índice

ZipArchive::statIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::statIndex — Obtenha os detalhes de uma entrada definida pelo seu índice

Descrição

public ZipArchive::statIndex(int $index, int $flags = 0): array|false

A função obtém informações sobre a entrada definida pelo seu índice.

Parâmetros

index

Índice da entrada

flags

ZipArchive::FL_UNCHANGED pode ser ORed para solicitar informações sobre o arquivo original no arquivo, ignorando quaisquer alterações feitas.

Valor Retornado

Retorna um array contendo os detalhes da entrada ou false em caso de falha.

Exemplos

Exemplo #1 Impressão das informações stat de uma entrada

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
print_r($zip->statIndex(3));
$zip->close();
} else {
echo 'failed, code:' . $res;
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


Obtém os detalhes de uma entrada definida pelo seu nome

  • « ZipArchive::statIndex
  • ZipArchive::unchangeAll »
  • PHP Manual
  • ZipArchive
  • Obtém os detalhes de uma entrada definida pelo seu nome

ZipArchive::statName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::statName — Obtém os detalhes de uma entrada definida pelo seu nome

Descrição

public ZipArchive::statName(string $name, int $flags = 0): array|false

A função obtém informações sobre a entrada definida pelo seu nome.

Parâmetros

name

Nome da entrada

flags

O argumento flags especifica como a pesquisa pelo nome deve ser feita. Além disso, ZipArchive::FL_UNCHANGED pode ser ORed para solicitar informações sobre o arquivo original no arquivo, ignorando quaisquer alterações feitas.

  • ZipArchive::FL_NOCASE

  • ZipArchive::FL_NODIR

  • ZipArchive::FL_UNCHANGED

Valor Retornado

Retorna um array contendo os detalhes da entrada ou false em caso de falha.

Exemplos

Exemplo #1 Impressão das informações stat de uma entrada

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
print_r($zip->statName('foobar/baz'));
$zip->close();
} else {
echo 'failed, code:' . $res;
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


Desfaz todas as alterações feitas no arquivo

  • « ZipArchive::statName
  • ZipArchive::unchangeArchive »
  • PHP Manual
  • ZipArchive
  • Desfaz todas as alterações feitas no arquivo

ZipArchive::unchangeAll

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeAll — Desfaz todas as alterações feitas no arquivo

Descrição

public ZipArchive::unchangeAll(): bool

Desfaz todas as alterações feitas no arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Reverte todas as alterações globais feitas no arquivo

  • « ZipArchive::unchangeAll
  • ZipArchive::unchangeIndex »
  • PHP Manual
  • ZipArchive
  • Reverte todas as alterações globais feitas no arquivo

ZipArchive::unchangeArchive

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeArchive — Reverte todas as alterações globais feitas no arquivo

Descrição

public ZipArchive::unchangeArchive(): bool

Reverte todas as alterações globais feitas no arquivo. Por enquanto, isso só reverte alterações no comentário do arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Reverte todas as alterações feitas a uma entrada no índice fornecido

  • « ZipArchive::unchangeArchive
  • ZipArchive::unchangeName »
  • PHP Manual
  • ZipArchive
  • Reverte todas as alterações feitas a uma entrada no índice fornecido

ZipArchive::unchangeIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeIndex — Reverte todas as alterações feitas a uma entrada no índice fornecido

Descrição

public ZipArchive::unchangeIndex(int $index): bool

Reverter todas as alterações feitas a uma entrada no índice fornecido.

Parâmetros

index

Índice da entrada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Reverte todas as alterações feitas a uma entrada com o nome fornecido

  • « ZipArchive::unchangeIndex
  • Funções Zip »
  • PHP Manual
  • ZipArchive
  • Reverte todas as alterações feitas a uma entrada com o nome fornecido

ZipArchive::unchangeName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::unchangeName — Reverte todas as alterações feitas a uma entrada com o nome fornecido

Descrição

public ZipArchive::unchangeName(string $name): bool

Reverte todas as alterações feitas a uma entrada.

Parâmetros

name

Nome da entrada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Funções Zip

Aviso

A API procedural foi descontinuada desde o PHP 8.0.0. A classe ZipArchive deve ser usada em seu lugar.

Índice

  • zip_close — Fecha um arquivo ZIP
  • zip_entry_close — Fecha o arquivo que está aberto
  • zip_entry_compressedsize — Obtém o tamanho comprimido do item
  • zip_entry_compressionmethod — Recupera qual o método de compressão foi utilizado no arquivo
  • zip_entry_filesize — Retorna o tamanho de um item de diretório
  • zip_entry_name — Retorna o nome do arquivo
  • zip_entry_open — Abre um arquivo para leitura
  • zip_entry_read — Obtém dados de um arquivo
  • zip_open — Abre um arquivo ZIP
  • zip_read — Lê o próximo item em um arquivo ZIP


Fecha um arquivo ZIP

  • « Funções Zip
  • zip_entry_close »
  • PHP Manual
  • Funções Zip
  • Fecha um arquivo ZIP

zip_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_close — Fecha um arquivo ZIP

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

zip_close(resource $zip): void

Fecha um dado arquivo ZIP.

Parâmetros

zip

Um arquivo ZIP previamente aberto com zip_open().

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função foi descontinuada em favor da API orientada a objetos, veja ZipArchive::close().

Veja Também

  • zip_open() - Abre um arquivo ZIP
  • zip_read() - Lê o próximo item em um arquivo ZIP


Fecha o arquivo que está aberto

  • « zip_close
  • zip_entry_compressedsize »
  • PHP Manual
  • Funções Zip
  • Fecha o arquivo que está aberto

zip_entry_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_close — Fecha o arquivo que está aberto

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

zip_entry_close(resource $zip_entry): bool

Fecha uma especificada lista de entrada.

Parâmetros

zip_entry

Um diretório de entrada previamente aberto com zip_entry_open().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função foi descontinuada em favor da API orientada a objetos.

Veja Também

  • zip_entry_open() - Abre um arquivo para leitura
  • zip_entry_read() - Obtém dados de um arquivo


Obtém o tamanho comprimido do item

  • « zip_entry_close
  • zip_entry_compressionmethod »
  • PHP Manual
  • Funções Zip
  • Obtém o tamanho comprimido do item

zip_entry_compressedsize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_compressedsize — Obtém o tamanho comprimido do item

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

zip_entry_compressedsize(resource $zip_entry): int|false

Retorna o tamanho do arquivo compactado dentro do arquivo ZIP especificado.

Parâmetros

zip_entry

Uma lista de entrada retornada pela zip_read().

Valor Retornado

O tamanho comprimido, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função foi descontinuada em favor da API orientada a objetos, veja ZipArchive::statIndex().

Veja Também

  • zip_open() - Abre um arquivo ZIP
  • zip_read() - Lê o próximo item em um arquivo ZIP


Recupera qual o método de compressão foi utilizado no arquivo

  • « zip_entry_compressedsize
  • zip_entry_filesize »
  • PHP Manual
  • Funções Zip
  • Recupera qual o método de compressão foi utilizado no arquivo

zip_entry_compressionmethod

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_compressionmethod — Recupera qual o método de compressão foi utilizado no arquivo

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

zip_entry_compressionmethod(resource $zip_entry): string|false

Recupera qual o método de compressão foi utilizado no arquivo passado por zip_entry.

Parâmetros

zip_entry

Uma lista de entrada retornada pela zip_read().

Valor Retornado

O método de compressão, ou , ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função foi descontinuada em favor da API orientada a objetos, veja ZipArchive::statIndex().

Veja Também

  • zip_open() - Abre um arquivo ZIP
  • zip_read() - Lê o próximo item em um arquivo ZIP


Retorna o tamanho de um item de diretório

  • « zip_entry_compressionmethod
  • zip_entry_name »
  • PHP Manual
  • Funções Zip
  • Retorna o tamanho de um item de diretório

zip_entry_filesize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_filesize — Retorna o tamanho de um item de diretório

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

zip_entry_filesize(resource $zip_entry): int|false

Retorna o tamanho atual do especificado diretório de entrada.

Parâmetros

zip_entry

Um diretório de entrada retornado por zip_read().

Valor Retornado

O tamanho do item de diretório, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função está desencorajada em relação a API orientada a objeto, veja ZipArchive::statIndex().

Veja Também

  • zip_open() - Abre um arquivo ZIP
  • zip_read() - Lê o próximo item em um arquivo ZIP


Retorna o nome do arquivo

  • « zip_entry_filesize
  • zip_entry_open »
  • PHP Manual
  • Funções Zip
  • Retorna o nome do arquivo

zip_entry_name

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_name — Retorna o nome do arquivo

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

zip_entry_name(resource $zip_entry): string|false

Retorna o nome do arquivo especificado.

Parâmetros

zip_entry

A lista de entrada retornada pela zip_read().

Valor Retornado

O nome do arquivo, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função está desencorajada em relação a API orientada a objeto, veja ZipArchive::statIndex().

Veja Também

  • zip_open() - Abre um arquivo ZIP
  • zip_read() - Lê o próximo item em um arquivo ZIP


Abre um arquivo para leitura

  • « zip_entry_name
  • zip_entry_read »
  • PHP Manual
  • Funções Zip
  • Abre um arquivo para leitura

zip_entry_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_open — Abre um arquivo para leitura

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

zip_entry_open(resource $zip_dp, resource $zip_entry, string $mode = "rb"): bool

Abre um arquivo para leitura.

Parâmetros

zip_dp

Um recurso válido retornado por zip_open().

zip_entry

Uma entrada de diretório retornada por zip_read().

mode

Algum dos modos especificados na documentação da fopen().

Nota:

Atualmente, o parâmetro mode é ignorado e o modo padrão suportado é "rb". Isto é devido ao fato que o suporte a zip no PHP é apenas de leitura.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Nota:

Diferentemente de fopen() e outras funções similares, o valor retornado de zip_entry_open() somente indica o resultado da operação, e não o valor em si não é necessário para a leitura ou fechamento recurso.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função está desencorajada em relação a API orientada a objeto.

Veja Também

  • zip_entry_close() - Fecha o arquivo que está aberto
  • zip_entry_read() - Obtém dados de um arquivo


Obtém dados de um arquivo

  • « zip_entry_open
  • zip_open »
  • PHP Manual
  • Funções Zip
  • Obtém dados de um arquivo

zip_entry_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_read — Obtém dados de um arquivo

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

zip_entry_read(resource $zip_entry, int $len = 1024): string|false

Obtém dados de um arquivo.

Parâmetros

zip_entry

Um arquivo retornado pela zip_read().

len

O número de bytes para retornar.

Nota:

Este deve ser o tamanho não comprimido que você deseja ler.

Valor Retornado

Retorna a informação lida, string vazia no fim de um arquivo, ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.0.0 | Essa função está desencorajada em relação à API orientada a objetos, veja ZipArchive::getFromIndex().

Veja Também

  • zip_entry_open() - Abre um arquivo para leitura
  • zip_entry_close() - Fecha o arquivo que está aberto
  • zip_entry_filesize() - Retorna o tamanho de um item de diretório


Abre um arquivo ZIP

  • « zip_entry_read
  • zip_read »
  • PHP Manual
  • Funções Zip
  • Abre um arquivo ZIP

zip_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_open — Abre um arquivo ZIP

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

zip_open(string $filename): resource|int|false

Abre um arquivo ZIP para ser lido.

Parâmetros

filename

O nome do arquivo ZIP para abrir.

Valor Retornado

Retorna um identificador que pode ser usado com as funções zip_read() e zip_close() ou retorna false ou ainda o número de erro se filename não existir e/ou outras situações.

Registro de Alterações

Versão | Descrição
8.0.0 | Essa função está desencorajada em relação à API orientada a objetos, veja ZipArchive::open().

Veja Também

  • zip_read() - Lê o próximo item em um arquivo ZIP
  • zip_close() - Fecha um arquivo ZIP


Lê o próximo item em um arquivo ZIP

  • « zip_open
  • Zlib »
  • PHP Manual
  • Funções Zip
  • Lê o próximo item em um arquivo ZIP

zip_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_read — Lê o próximo item em um arquivo ZIP

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

zip_read(resource $zip): resource|false

Lê o próximo item dentro de uma arquivo ZIP.

Parâmetros

zip

Um arquivo ZIP anteriormente aberto com zip_open().

Valor Retornado

Retorna uma conexao com o arquivo ZIP para ser usado com as funções zip_entry_..., ou false se não houver arquivos para serem lidos, ou um código de erro caso ocorra algum.

Registro de Alterações

Versão | Descrição
8.0.0 | Essa função está desencorajada em relação à API orientada a objetos, veja ZipArchive::statIndex().

Veja Também

  • zip_open() - Abre um arquivo ZIP
  • zip_close() - Fecha um arquivo ZIP
  • zip_entry_open() - Abre um arquivo para leitura
  • zip_entry_read() - Obtém dados de um arquivo


Compressão Zlib

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Funções da Zlib
    • deflate_add — Comprime dados incrementalmente
    • deflate_init — Inicializa um contexto de compressão incremental
    • gzclose — Fecha um ponteiro para um arquivo-gz
    • gzcompress — Comprime uma string
    • gzdecode — Decodifica uma string comprimida usando o gzip
    • gzdeflate — Desinfla uma string
    • gzencode — Cria uma string comprimida no formato gzip
    • gzeof — Testar o EOF em um ponteiro de arquivo gz
    • gzfile — Lê todo o arquivo gz em um array
    • gzgetc — Obtém caractere de um ponteiro de arquivo gz
    • gzgets — Obtém uma linha de um ponteiro de arquivo
    • gzgetss — Obtém linha de um ponteiro de arquivo gz e remover tags HTML
    • gzinflate — Descomprime uma string comprimida
    • gzopen — Abre arquivo gz
    • gzpassthru — Escreve na saída todos os dados restantes em um ponteiro de arquivo gz
    • gzputs — Sinônimo de gzwrite
    • gzread — Leitura de arquivo gz binária segura
    • gzrewind — Retorna ao início a posição de um ponteiro para um arquivo-gz
    • gzseek — Busca em um ponteiro de arquivo gz
    • gztell — Indica a posição de leitura/gravação em um ponteiro para arquivo-gz
    • gzuncompress — Descomprime uma string comprimida
    • gzwrite — Escrita segura para binário em arquivo-gz
    • inflate_add — Descomprime incrementalmente dados codificados
    • inflate_get_read_len — Obtém o número de bytes lidos até o momento
    • inflate_get_status — Obtém o status da descompressão
    • inflate_init — Inicializa um contexto de descompressão incremental
    • ob_gzhandler — Função de chamada de retorno de ob_start para comprimir o buffer de saída com gzip
    • readgzfile — Exibe um arquivo gz
    • zlib_decode — Descomprime qualquer dado codificado em raw/gzip/zlib
    • zlib_encode — Comprime dados com o codificador especificado
    • zlib_get_coding_type — Retorna o tipo de codificação para a compressão de saída
  • DeflateContext — A classe DeflateContext
  • InflateContext — A classe InflateContext


Introdução

Este módulo permite que você leia e escreva arquivos comprimidos gzip (.gz) de forma transparente, através de versões da maioria das funções do sistema de arquivos que funcionam com arquivos comprimidos gzip (e também com arquivos não comprimidos, mas não com sockets).

Nota:

O PHP vem com um wrapper fopen para arquivos .gz. Mais informações estão disponíveis na seção sobre zlib://.


Dependências

Este módulo usa as funções da » zlib por Jean-loup Gailly e Mark Adler. Você terá que usar uma versão zlib >= 1.2.0.4 com este módulo.


Instalação

O suporte a Zlib no PHP não esta ativado por padrão. Você precisa configurar o PHP com --with-zlib[=DIR]

A versão do PHP para Windows tem suporte nativo para esta extensão. Nenhuma extensão adicional precisa ser carregada para usar essas funções.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

A extensão zlib oferece a opção de comprimir transparentemente suas páginas em tempo real, se o navegador requisitante suportar isto. Então existem três opções no arquivo de configuração php.ini.

Opções de Configuração da Zlib
Nome | Padrão | Modificável | Registro de Alterações
zlib.output_compression | "0" | INI_ALL |
zlib.output_compression_level | "-1" | INI_ALL |
zlib.output_handler | "" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

zlib.output_compression bool/int

Indica se as páginas deverm ser comprimidas de modo transparente. Se esta opção for mudada para "On" no php.ini ou na configuração do Apache, as páginas serão comprimidas se o navegador enviar um cabeçalho "Accept-Encoding: gzip" ou "deflate". "Content-Encoding: gzip" (respectivamente "deflate") e cabeçalhos "Vary: Accept-Encoding" serão adicionados para a saida. Em tempo de execução, isso só pode ser definido antes de enviar qualquer saída.

Esta opção também aceita valores inteiros em vez de valores booleanos "On"/"Off", usando isto você pode configurar o tamanho do buffer de saída (o padrão é 4KB).

Nota:

output_handler deve estar vazio se a diretriz estiver configurada em 'On'! Em vez disso, utilize zlib.output_handler.

zlib.output_compression_level int

Nível de compressão utilizado. Especifique um valor entre 0 (sem compressão) ou 9 (compressão máxima). O valor padrão -1 permite ao servidor escolher que nível utilizar.

zlib.output_handler string

Você não pode especificar tratamentos adicionais de saída se zlib.output_compression for ativado. Esta configuração faz o mesmo que a output_handler mas em uma ordem diferente.


Tipos de Recurso

Esta extensão define um ponteiro de arquivo resource retornado pela gzopen(). Antes do PHP 8.0.0, recursos zlib.deflate e zlib.inflate também eram definidos.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

FORCE_GZIP (int)
FORCE_DEFLATE (int)
ZLIB_ENCODING_RAW (int)
Algotítmo DEFLATE conforme RFC 1951.
ZLIB_ENCODING_DEFLATE (int)
Algorítimo ZLIB conforme RFC 1950.
ZLIB_ENCODING_GZIP (int)
Algorítimo GZIP conforme RFC 1952.
ZLIB_FILTERED (int)
ZLIB_HUFFMAN_ONLY (int)
ZLIB_FIXED (int)
ZLIB_RLE (int)
ZLIB_DEFAULT_STRATEGY (int)
ZLIB_BLOCK (int)
ZLIB_NO_FLUSH (int)
ZLIB_PARTIAL_FLUSH (int)
ZLIB_SYNC_FLUSH (int)
ZLIB_FULL_FLUSH (int)
ZLIB_FINISH (int)


Exemplos

Este exemplo abre um arquivo temporário e gera uma string teste dentro dele, então ela mostra o conteúdo deste arquivo duas vezes.

Exemplo #1 Pequeno Exemplo da Zlib

<?php

$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Only a test, test, test, test, test, test, test, test!\n";

// Abre um arquivo para escrever os dados comprimidos
$zp = gzopen($filename, "w9");

// Escreve o texto no arquivo
gzwrite($zp, $s);

// Fecha o arquivo
gzclose($zp);

// Abre o arquivo
$zp = gzopen($filename, "r");

// Lê três bytes
echo gzread($zp, 3);

// Imprime até o final do arquivo e o fecha
gzpassthru($zp);
gzclose($zp);

echo "\n";

// Abre e imprime o arquivo, uma segunda vez
if (readgzfile($filename) != strlen($s)) {
echo "Error with zlib functions!";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";

?>

Exemplo #2 Utilizando a API de compressão/expansão incremental

<?php
// Realiza uma compressão GZIP:
$deflateContext = deflate_init(ZLIB_ENCODING_GZIP);
$compressed = deflate_add($deflateContext, "Data to compress", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", more data", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", and even more data!", ZLIB_FINISH);

// Realiza uma expansão GZIP:
$inflateContext = inflate_init(ZLIB_ENCODING_GZIP);
$uncompressed = inflate_add($inflateContext, $compressed, ZLIB_NO_FLUSH);
$uncompressed .= inflate_add($inflateContext, NULL, ZLIB_FINISH);
echo $uncompressed;
?>

O exemplo acima produzirá:

Data to compress, more data, and even more data!


Funções da Zlib

Índice

  • deflate_add — Comprime dados incrementalmente
  • deflate_init — Inicializa um contexto de compressão incremental
  • gzclose — Fecha um ponteiro para um arquivo-gz
  • gzcompress — Comprime uma string
  • gzdecode — Decodifica uma string comprimida usando o gzip
  • gzdeflate — Desinfla uma string
  • gzencode — Cria uma string comprimida no formato gzip
  • gzeof — Testar o EOF em um ponteiro de arquivo gz
  • gzfile — Lê todo o arquivo gz em um array
  • gzgetc — Obtém caractere de um ponteiro de arquivo gz
  • gzgets — Obtém uma linha de um ponteiro de arquivo
  • gzgetss — Obtém linha de um ponteiro de arquivo gz e remover tags HTML
  • gzinflate — Descomprime uma string comprimida
  • gzopen — Abre arquivo gz
  • gzpassthru — Escreve na saída todos os dados restantes em um ponteiro de arquivo gz
  • gzputs — Sinônimo de gzwrite
  • gzread — Leitura de arquivo gz binária segura
  • gzrewind — Retorna ao início a posição de um ponteiro para um arquivo-gz
  • gzseek — Busca em um ponteiro de arquivo gz
  • gztell — Indica a posição de leitura/gravação em um ponteiro para arquivo-gz
  • gzuncompress — Descomprime uma string comprimida
  • gzwrite — Escrita segura para binário em arquivo-gz
  • inflate_add — Descomprime incrementalmente dados codificados
  • inflate_get_read_len — Obtém o número de bytes lidos até o momento
  • inflate_get_status — Obtém o status da descompressão
  • inflate_init — Inicializa um contexto de descompressão incremental
  • ob_gzhandler — Função de chamada de retorno de ob_start para comprimir o buffer de saída com gzip
  • readgzfile — Exibe um arquivo gz
  • zlib_decode — Descomprime qualquer dado codificado em raw/gzip/zlib
  • zlib_encode — Comprime dados com o codificador especificado
  • zlib_get_coding_type — Retorna o tipo de codificação para a compressão de saída


Comprime dados incrementalmente

  • « Funções da Zlib
  • deflate_init »
  • PHP Manual
  • Funções da Zlib
  • Comprime dados incrementalmente

deflate_add

(PHP 7, PHP 8)

deflate_add — Comprime dados incrementalmente

Descrição

deflate_add(DeflateContext $context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false

Comprime dados incrementalmente no contexto especificado.

Parâmetros

context

Um contexto criado com deflate_init().

data

Um pedaço de dados para comprimir.

flush_mode

Uma das constantes ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH (padrão), ZLIB_FULL_FLUSH, ZLIB_FINISH. Normalmente, você vai querer definir ZLIB_NO_FLUSH para maximizar a compressão, e ZLIB_FINISH para terminar com o último pedaço de dados. Veja o » manual zlib para uma descrição detalhada dessas constantes.

Valor Retornado

Retorna um pedaço de dados comprimidos, ou false em caso de falha.

Erros/Exceções

Se argumentos inválidos forem fornecidos, um erro de nível E_WARNING é gerado.

Registro de Alterações

Versão | Descrição
8.0.0 | context espera agora uma instância de DeflateContext; anteriormente, era esperado um resource.

Veja Também

  • deflate_init() - Inicializa um contexto de compressão incremental


Inicializa um contexto de compressão incremental

  • « deflate_add
  • gzclose »
  • PHP Manual
  • Funções da Zlib
  • Inicializa um contexto de compressão incremental

deflate_init

(PHP 7, PHP 8)

deflate_init — Inicializa um contexto de compressão incremental

Descrição

deflate_init(int $encoding, array $options = []): DeflateContext|false

Inicializa um contexto de compressão incremental usando o encoding especificado.

Note que a opção window aqui apenas define o tamanho da janela do algoritmo, de forma diferente dos filtros zlib onde o mesmo parâmetro também define a codificação a ser usada; a codificação deve ser definida com o parâmetro encoding.

Limitação: atualmente não há maneira de definir as informações de cabeçalho em um fluxo comprimido GZIP, que são definidas da seguinte forma: assinatura GZIP (\x1f\x8B); método de compressão (\x08 == DEFLATE); 6 bytes zero; o sistema operacional definido para o sistema atual (\x00 = Windows, \x03 = Unix, etc.)

Parâmetros

encoding

Uma das constantes ZLIB_ENCODING_*.

options

Um array associativo que pode conter os seguintes elementos:

level

O nível de compressão no intervalo -1..9; padrão é -1.

memory

O nível de memória de compressão no intervalo 1..9; padrão é 8.

window

O tamanho da janela zlib (logarítmico) no intervalo 8..15; padrão é 15. zlib muda um tamanho de janela de 8 para 9, e a partir do zlib 1.2.8 falha com um aviso, se um tamanho de janela de 8 for solicitado para ZLIB_ENCODING_RAW ou ZLIB_ENCODING_GZIP.

strategy

Uma das constantes ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED ou ZLIB_DEFAULT_STRATEGY (o padrão).

dictionary

Uma string ou um array de strings do dicionário predefinido (padrão: nenhum dicionário predefinido).

Valor Retornado

Retorna um recurso de contexto de compressão (zlib.deflate) em caso de sucesso, ou false em caso de falha.

Erros/Exceções

Se uma opção inválida for passada para options ou o contexto não puder ser criado, um erro de nível E_WARNING é gerado.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função retorna agora uma instância de DeflateContext; anteriormente, um resource era retornado.

Veja Também

  • deflate_add() - Comprime dados incrementalmente
  • inflate_init() - Inicializa um contexto de descompressão incremental


Fecha um ponteiro para um arquivo-gz

  • « deflate_init
  • gzcompress »
  • PHP Manual
  • Funções da Zlib
  • Fecha um ponteiro para um arquivo-gz

gzclose

(PHP 4, PHP 5, PHP 7, PHP 8)

gzclose — Fecha um ponteiro para um arquivo-gz

Descrição

gzclose(resource $stream): bool

Fecha o ponteiro para arquivo gz dado.

Parâmetros

stream

O ponteiro de arquivo gz. Ele deve ser válido,e apontar para um arquivo aberto de maneira correta pela função gzopen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo gzclose()

<?php
$gz = gzopen('somefile.gz','w9');
gzputs ($gz, 'I was added to somefile.gz');
gzclose($gz);
?>

Veja Também

  • gzopen() - Abre arquivo gz


Comprime uma string

  • « gzclose
  • gzdecode »
  • PHP Manual
  • Funções da Zlib
  • Comprime uma string

gzcompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

gzcompress — Comprime uma string

Descrição

gzcompress(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_DEFLATE): string|false

+ Esta função comprime a string fornecida usando o formato de dados ZLIB.

Para detalhes sobre o algoritmo de compressão ZLIB, consulte o documento "» Formato de dados compactados ZLIB Especificação versão 3.3" (RFC 1950).

Nota:

Isso não é o mesmo que compressão gzip, que inclui alguns dados de cabeçalho. Veja gzencode() para compressão gzip.

Parâmetros

data

Os dados a serem comprimidos.

level

O nível de compressão. Pode ser dado como 0 para nenhuma compressão até 9 para máxima compressão.

Se -1 for usado, a compressão padrão da biblioteca zlib é usada, que é 6.

encoding

Uma das constantes ZLIB_ENCODING_*.

Valor Retornado

A string comprimida ou false se ocorrer um erro.

Exemplos

Exemplo #1 Exemplo de gzcompress()

<?php
$compressed = gzcompress('Me comprima', 9);
echo $compressed;
?>

Veja Também

  • gzdeflate() - Desinfla uma string
  • gzinflate() - Descomprime uma string comprimida
  • gzuncompress() - Descomprime uma string comprimida
  • gzencode() - Cria uma string comprimida no formato gzip


Decodifica uma string comprimida usando o gzip

  • « gzcompress
  • gzdeflate »
  • PHP Manual
  • Funções da Zlib
  • Decodifica uma string comprimida usando o gzip

gzdecode

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

gzdecode — Decodifica uma string comprimida usando o gzip

Descrição

gzdecode(string $data, int $max_length = 0): string|false

Essa função retorna a versão decodifica de data.

Parâmetros

data

Os dados a serem decodificados, encodificados por gzencode().

max_length

Tamanho máximo dos dados a serem decodificados.

Valor Retornado

A string decodificada, ou ou false em caso de falha.

Erros/Exceções

Em caso de problemas, uma mensagem E_WARNING é emitida.

Veja Também

  • gzencode() - Cria uma string comprimida no formato gzip


Desinfla uma string

  • « gzdecode
  • gzencode »
  • PHP Manual
  • Funções da Zlib
  • Desinfla uma string

gzdeflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gzdeflate — Desinfla uma string

Descrição

gzdeflate(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_RAW): string|false

Esta função comprime a string fornecida usando o formato de dados DEFLATE.

Para detalhes sobre o algoritmo de compressão DEFLATE, consulte o documento "» Especificação de Formato de Dados Comprimidos DEFLATE versão 1.3" (RFC 1951).

Parâmetros

data

Os dados a serem desinflados.

level

O nível de compressão. Pode ser dado como 0 para nenhuma compressão até 9 para máxima compressão. Se não fornecido, o nível de compressão padrão será o nível de compressão padrão da biblioteca zlib.

encoding

Uma das constantes ZLIB_ENCODING_*.

Valor Retornado

A string desinflada ou false se ocorrer um erro.

Exemplos

Exemplo #1 Exemplo de gzdeflate()

<?php
$compressed = gzdeflate('Me comprima', 9);
echo $compressed;
?>

Veja Também

  • gzinflate() - Descomprime uma string comprimida
  • gzcompress() - Comprime uma string
  • gzuncompress() - Descomprime uma string comprimida
  • gzencode() - Cria uma string comprimida no formato gzip


Cria uma string comprimida no formato gzip

  • « gzdeflate
  • gzeof »
  • PHP Manual
  • Funções da Zlib
  • Cria uma string comprimida no formato gzip

gzencode

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gzencode — Cria uma string comprimida no formato gzip

Descrição

gzencode(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_GZIP): string|false

Esta função retorna uma versão comprimida dos dados de entrada data compatível com a saída do programa gzip.

Para mais informações sobre o formato de arquivo GZIP, consulte o documento: » Especificação do formato de arquivo GZIP versão 4.3 (RFC 1952).

Parâmetros

data

Os dados a serem codificados.

level

O nível de compressão. Pode ser dado como 0 para nenhuma compressão até 9 para máxima compressão. Se não fornecido, o nível de compressão padrão será o nível de compressão padrão da biblioteca zlib.

encoding

O modo de codificação. Pode ser FORCE_GZIP (o padrão) ou FORCE_DEFLATE.

FORCE_DEFLATE gera saída compatível com o RFC 1950, consistindo de um cabeçalho zlib, os dados desinflados e um checksum Adler.

Valor Retornado

A string codificada, ou false se ocorrer um erro.

Exemplos

Os dados resultantes contêm os cabeçalhos e a estrutura de dados apropriados para criar um arquivo .gz padrão, por exemplo:

Exemplo #1 Criando um arquivo gzip

<?php
$data = file_get_contents("arquivogrande.txt");
$gzdata = gzencode($data, 9);
file_put_contents("arquivogrande.txt.gz", $gzdata);
?>

Veja Também

  • gzdecode() - Decodifica uma string comprimida usando o gzip
  • gzdeflate() - Desinfla uma string
  • gzinflate() - Descomprime uma string comprimida
  • gzuncompress() - Descomprime uma string comprimida
  • gzcompress() - Comprime uma string
  • » Especificação do Formato de Dados Comprimidos ZLIB (RFC 1950)


Testar o EOF em um ponteiro de arquivo gz

  • « gzencode
  • gzfile »
  • PHP Manual
  • Funções da Zlib
  • Testar o EOF em um ponteiro de arquivo gz

gzeof

(PHP 4, PHP 5, PHP 7, PHP 8)

gzeof — Testar o EOF em um ponteiro de arquivo gz

Descrição

gzeof(resource $stream): bool

Testa o ponteiro de arquivo GZ fornecido para o EOF.

Parâmetros

stream

O ponteiro de arquivo gz. Deve ser válido e deve apontar para um arquivo aberto com sucesso por gzopen().

Valor Retornado

Retorna true se o ponteiro de arquivo gz estiver no EOF ou se ocorrer um erro; caso contrário, retorna false.

Exemplos

Exemplo #1 Exemplo de gzeof()

<?php
$gz = gzopen('algumarquivo.gz', 'r');
while (!gzeof($gz)) {
echo gzgetc($gz);
}
gzclose($gz);
?>


Lê todo o arquivo gz em um array

  • « gzeof
  • gzgetc »
  • PHP Manual
  • Funções da Zlib
  • Lê todo o arquivo gz em um array

gzfile

(PHP 4, PHP 5, PHP 7, PHP 8)

gzfile — Lê todo o arquivo gz em um array

Descrição

gzfile(string $filename, int $use_include_path = 0): array|false

Esta função é idêntica a readgzfile(), exceto que ela retorna o arquivo em um array.

Parâmetros

filename

O nome do arquivo.

use_include_path

Você pode definir este parâmetro opcional como 1, se você deseja buscar o arquivo no include_path também.

Valor Retornado

Um array contendo o arquivo, uma linha por célula, linhas vazias incluídas, e com novas linhas ainda anexadas, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de gzfile()

<?php
$lines = gzfile('algumarquivo.gz');
foreach ($lines as $line) {
echo $line;
}
?>

Veja Também

  • readgzfile() - Exibe um arquivo gz
  • gzopen() - Abre arquivo gz


Obtém caractere de um ponteiro de arquivo gz

  • « gzfile
  • gzgets »
  • PHP Manual
  • Funções da Zlib
  • Obtém caractere de um ponteiro de arquivo gz

gzgetc

(PHP 4, PHP 5, PHP 7, PHP 8)

gzgetc — Obtém caractere de um ponteiro de arquivo gz

Descrição

gzgetc(resource $stream): string|false

Retorna uma string contendo um único caractere (não comprimido) lido do ponteiro de arquivo gz fornecido.

Parâmetros

stream

O ponteiro de arquivo gz. Deve ser válido e deve apontar para um arquivo aberto com sucesso por gzopen().

Valor Retornado

O caractere não comprimido ou false em EOF (ao contrário de gzeof()).

Exemplos

Exemplo #1 Exemplo de gzgetc()

<?php
$gz = gzopen('algumarquivo.gz', 'r');
while (!gzeof($gz)) {
echo gzgetc($gz);
}
gzclose($gz);
?>

Veja Também

  • gzopen() - Abre arquivo gz
  • gzgets() - Obtém uma linha de um ponteiro de arquivo


Obtém uma linha de um ponteiro de arquivo

  • « gzgetc
  • gzgetss »
  • PHP Manual
  • Funções da Zlib
  • Obtém uma linha de um ponteiro de arquivo

gzgets

(PHP 4, PHP 5, PHP 7, PHP 8)

gzgets — Obtém uma linha de um ponteiro de arquivo

Descrição

gzgets(resource $stream, ?int $length = null): string|false

Obtém uma (descomprimida) string até o tamanho length - 1 bytes lidos a partir do ponteiro de arquivo dado. A leitura termina quando length - 1 bytes tiverem sido lidos, em uma nova liha ou em EOF (o que vier primeiro).

Parâmetros

stream

O ponteiro do arquivo deve ser válido, e deve apontar para um arquivo aberto corretamente com gzopen().

length

O tamanho dos dados a pegar.

Valor Retornado

A string descomprimida, ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.0.0 | length pode ser null; anteriormente, o padrão era 1024.

Exemplos

Exemplo #1 gzgets() example

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
$buffer = gzgets($handle, 4096);
echo $buffer;
}
gzclose($handle);
?>

Veja Também

  • gzopen() - Abre arquivo gz
  • gzgetc() - Obtém caractere de um ponteiro de arquivo gz
  • gzwrite() - Escrita segura para binário em arquivo-gz


Obtém linha de um ponteiro de arquivo gz e remover tags HTML

  • « gzgets
  • gzinflate »
  • PHP Manual
  • Funções da Zlib
  • Obtém linha de um ponteiro de arquivo gz e remover tags HTML

gzgetss

(PHP 4, PHP 5, PHP 7)

gzgetss — Obtém linha de um ponteiro de arquivo gz e remover tags HTML

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.3.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

gzgetss(resource $zp, int $length, string $allowable_tags = ?): string

Idêntico a gzgets(), exceto que gzgetss() tenta remover quaisquer tags HTML e PHP do texto que ele lê.

Parâmetros

zp

O ponteiro de arquivo gz. Deve ser válido e deve apontar para um arquivo aberto com sucesso por gzopen().

length

O comprimento dos dados a serem obtidos.

allowable_tags

Você pode usar este parâmetro opcional para especificar tags que não devem ser removidas.

Valor Retornado

A string não comprimida e sem tags, ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de gzgetss()

<?php
$handle = gzopen('algumarquivo.gz', 'r');
while (!gzeof($handle)) {
$buffer = gzgetss($handle, 4096);
echo $buffer;
}
gzclose($handle);
?>

Veja Também

  • gzopen() - Abre arquivo gz
  • gzgets() - Obtém uma linha de um ponteiro de arquivo
  • strip_tags() - Retira as tags HTML e PHP de uma string


Descomprime uma string comprimida

  • « gzgetss
  • gzopen »
  • PHP Manual
  • Funções da Zlib
  • Descomprime uma string comprimida

gzinflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gzinflate — Descomprime uma string comprimida

Descrição

gzinflate(string $data, int $max_length = 0): string|false

Esta função descomprime uma string comprimida.

Parâmetros

data

Os dados comprimidos por gzdeflate().

max_length

O comprimento máximo dos dados decodificados.

Valor Retornado

Os dados não comprimidos originais ou false em caso de erro.

A função retornará um erro se o tamanho dos dados não comprimidos for maior que 32.768 vezes o comprimento da entrada comprimida data ou, a menos que max_length seja 0, se for maior que o parâmetro opcional max_length.

Exemplos

Exemplo #1 Exemplo de gzinflate()

<?php
$compressed = gzdeflate('Me comprima', 9);
$uncompressed = gzinflate($compressed);
echo $uncompressed;
?>

Veja Também

  • gzdeflate() - Desinfla uma string
  • gzcompress() - Comprime uma string
  • gzuncompress() - Descomprime uma string comprimida
  • gzencode() - Cria uma string comprimida no formato gzip


Abre arquivo gz

  • « gzinflate
  • gzpassthru »
  • PHP Manual
  • Funções da Zlib
  • Abre arquivo gz

gzopen

(PHP 4, PHP 5, PHP 7, PHP 8)

gzopen — Abre arquivo gz

Descrição

gzopen(string $filename, string $mode, int $use_include_path = 0): resource|false

Abre um arquivo gzip (.gz) para leitura ou escrita.

gzopen() pode ser usado para ler um arquivo que não está no formato gzip; nesse caso, gzread() lerá diretamente do arquivo sem descompressão.

Parâmetros

filename

O nome do arquivo.

mode

Como em fopen() (rb ou wb) mas também pode incluir um nível de compressão (wb9) ou uma estratégia: f para dados filtrados como em wb6f, h para compressão Huffman como em wb1h. (Consulte a descrição de deflateInit2 em zlib.h para mais informações sobre o parâmetro de estratégia.)

use_include_path

Você pode definir este parâmetro opcional como 1, se você quer procurar o arquivo no include_path também.

Valor Retornado

Retorna um ponteiro de arquivo para o arquivo aberto, depois disso, tudo o que você lê deste descritor de arquivo será descomprimido de forma transparente e o que você escreve será comprimido.

Se a abertura falhar, a função retorna false.

Exemplos

Exemplo #1 Exemplo de gzopen()

<?php
$fp = gzopen("/tmp/arquivo.gz", "r");
?>

Veja Também

  • gzclose() - Fecha um ponteiro para um arquivo-gz


Escreve na saída todos os dados restantes em um ponteiro de arquivo gz

  • « gzopen
  • gzputs »
  • PHP Manual
  • Funções da Zlib
  • Escreve na saída todos os dados restantes em um ponteiro de arquivo gz

gzpassthru

(PHP 4, PHP 5, PHP 7, PHP 8)

gzpassthru — Escreve na saída todos os dados restantes em um ponteiro de arquivo gz

Descrição

gzpassthru(resource $stream): int

Lê até o final do arquivo (EOF) no ponteiro de arquivo gz dado a partir da posição atual e escreve os resultados (não comprimidos) na saída padrão.

Nota:

Você pode precisar chamar gzrewind() para redefinir o ponteiro de arquivo para o início do arquivo se você já tiver escrito dados nele.

Dica

Se você apenas deseja descarregar o conteúdo de um arquivo no buffer de saída, sem modificar primeiro ou procurar uma posição específica, pode usar a função readgzfile(), que economiza a chamada gzopen().

Parâmetros

stream

O ponteiro de arquivo gz. Ele deve ser válido e deve apontar para um arquivo aberto com sucesso por gzopen().

Valor Retornado

O número de caracteres não comprimidos lidos de gz e passados para a entrada.

Exemplos

Exemplo #1 Exemplo de gzpassthru()

<?php
$fp = gzopen('arquivo.gz', 'r');
gzpassthru($fp);
gzclose($fp);
?>


Sinônimo de gzwrite

  • « gzpassthru
  • gzread »
  • PHP Manual
  • Funções da Zlib
  • Sinônimo de gzwrite

gzputs

(PHP 4, PHP 5, PHP 7, PHP 8)

gzputs — Sinônimo de gzwrite()

Descrição

Esta função é um apelido para: gzwrite().


Leitura de arquivo gz binária segura

  • « gzputs
  • gzrewind »
  • PHP Manual
  • Funções da Zlib
  • Leitura de arquivo gz binária segura

gzread

(PHP 4, PHP 5, PHP 7, PHP 8)

gzread — Leitura de arquivo gz binária segura

Descrição

gzread(resource $stream, int $length): string|false

gzread() lê até length bytes do ponteiro de arquivo gz dado. A leitura para quando length bytes (não comprimidos) tiverem sido lidos ou quando EOF é alcançado, o que ocorrer primeiro.

Parâmetros

stream

O ponteiro de arquivo gz. Ele deve ser válido e deve apontar para um arquivo aberto com sucesso por gzopen().

length

O número de bytes a serem lidos.

Valor Retornado

Os dados que foram lidos, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.4.0 | Esta função agora retorna false em caso de falha; anteriormente, 0 era retornado.

Exemplos

Exemplo #1 Exemplo de gzread()

<?php
// obter o conteúdo de um arquivo gz em uma string
$filename = "/usr/local/algumacoisa.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>

Veja Também

  • gzwrite() - Escrita segura para binário em arquivo-gz
  • gzopen() - Abre arquivo gz
  • gzgets() - Obtém uma linha de um ponteiro de arquivo
  • gzgetss() - Obtém linha de um ponteiro de arquivo gz e remover tags HTML
  • gzfile() - Lê todo o arquivo gz em um array
  • gzpassthru() - Escreve na saída todos os dados restantes em um ponteiro de arquivo gz


Retorna ao início a posição de um ponteiro para um arquivo-gz

  • « gzread
  • gzseek »
  • PHP Manual
  • Funções da Zlib
  • Retorna ao início a posição de um ponteiro para um arquivo-gz

gzrewind

(PHP 4, PHP 5, PHP 7, PHP 8)

gzrewind — Retorna ao início a posição de um ponteiro para um arquivo-gz

Descrição

gzrewind(resource $stream): bool

Define o indicador de posição para o dado arquivo gz para o início do arquivo.

Parâmetros

stream

O ponteiro do arquivo gz. Ele deve ser válido e deve apontar para um arquivo aberto corretamente com gzopen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • gzseek() - Busca em um ponteiro de arquivo gz
  • gztell() - Indica a posição de leitura/gravação em um ponteiro para arquivo-gz


Busca em um ponteiro de arquivo gz

  • « gzrewind
  • gztell »
  • PHP Manual
  • Funções da Zlib
  • Busca em um ponteiro de arquivo gz

gzseek

(PHP 4, PHP 5, PHP 7, PHP 8)

gzseek — Busca em um ponteiro de arquivo gz

Descrição

gzseek(resource $stream, int $offset, int $whence = SEEK_SET): int

Define o indicador de posição de arquivo para o ponteiro de arquivo dado no byte de deslocamento dado na sequência de arquivo. Equivalente a chamar (em C) gzseek(zp, offset, SEEK_SET).

Se o arquivo estiver aberto para leitura, esta função é emulada mas pode ser extremamente lenta. Se o arquivo estiver aberto para escrita, apenas buscas para frente são suportadas; gzseek() então comprime uma sequência de zeros até a nova posição inicial.

Parâmetros

stream

O ponteiro de arquivo gz. Ele deve ser válido e deve apontar para um arquivo aberto com sucesso por gzopen().

offset

O deslocamento buscado.

whence

whence values are:

  • SEEK_SET - Define a posição igual a offset bytes.
  • SEEK_CUR - Define a posição para a localização atual mais offset.

Se whence não for especificado, assume-se que é SEEK_SET.

Valor Retornado

Em caso de sucesso, retorna 0; caso contrário, retorna -1. Note que buscar além do EOF não é considerado um erro.

Exemplos

Exemplo #1 Exemplo de gzseek()

<?php
$gz = gzopen('algumarquivo.gz', 'r');
gzseek($gz,2);
echo gzgetc($gz);
gzclose($gz);
?>

Veja Também

  • gztell() - Indica a posição de leitura/gravação em um ponteiro para arquivo-gz
  • gzrewind() - Retorna ao início a posição de um ponteiro para um arquivo-gz


Indica a posição de leitura/gravação em um ponteiro para arquivo-gz

  • « gzseek
  • gzuncompress »
  • PHP Manual
  • Funções da Zlib
  • Indica a posição de leitura/gravação em um ponteiro para arquivo-gz

gztell

(PHP 4, PHP 5, PHP 7, PHP 8)

gztell — Indica a posição de leitura/gravação em um ponteiro para arquivo-gz

Descrição

gztell(resource $stream): int|false

Obtém a posição do ponteiro de arquivo, ou seja, seu índice dentro do arquivo.

Parâmetros

stream

O ponteiro de arquivo gz. Precisa ser válido, e deve apontar para um arquivo aberto corretamente com gzopen().

Valor Retornado

A posição do ponteiro do arquivo ou false se um erro ocorrer.

Veja Também

  • gzopen() - Abre arquivo gz
  • gzseek() - Busca em um ponteiro de arquivo gz
  • gzrewind() - Retorna ao início a posição de um ponteiro para um arquivo-gz


Descomprime uma string comprimida

  • « gztell
  • gzwrite »
  • PHP Manual
  • Funções da Zlib
  • Descomprime uma string comprimida

gzuncompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

gzuncompress — Descomprime uma string comprimida

Descrição

gzuncompress(string $data, int $max_length = 0): string|false

Esta função descomprime uma string comprimida.

Parâmetros

data

Os dados comprimidos por gzcompress().

max_length

O comprimento máximo dos dados a serem decodificados.

Valor Retornado

Os dados descomprimidos originais ou false em caso de erro.

A função retornará um erro se os dados descomprimidos forem mais do que 32768 vezes o comprimento dos dados comprimidos de entrada data ou mais do que o parâmetro opcional max_length.

Exemplos

Exemplo #1 Exemplo de gzuncompress()

<?php
$compressed = gzcompress('Me comprima', 9);
$uncompressed = gzuncompress($compressed);
echo $uncompressed;
?>

Veja Também

  • gzcompress() - Comprime uma string
  • gzinflate() - Descomprime uma string comprimida
  • gzdeflate() - Desinfla uma string
  • gzencode() - Cria uma string comprimida no formato gzip


Escrita segura para binário em arquivo-gz

  • « gzuncompress
  • inflate_add »
  • PHP Manual
  • Funções da Zlib
  • Escrita segura para binário em arquivo-gz

gzwrite

(PHP 4, PHP 5, PHP 7, PHP 8)

gzwrite — Escrita segura para binário em arquivo-gz

Descrição

gzwrite(resource $stream, string $data, ?int $length = null): int|false

gzwrite() escreve o conteúdo de data para o arquivo-gz.

Parâmetros

stream

O ponteiro do arquivo gz. Precisa ser válido, e apontar para um arquivo aberto com sucesso por gzopen().

data

A string a ser escrita.

length

O número de bytes descomprimidos para escrever. Se fornecido, a escrita irá parar depois de length (descomprimido) bytes ter sido escritos, ou ao final de data, o que vier primeiro.

Valor Retornado

Retorna o número de (descomprimido) bytes escrito no dado stream do arquivo gz, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | length permite null; anteriormente o default era 0.
7.4.0 | Esta função agora retorna false em caso de falha; anteriormente retornava 0.

Exemplos

Exemplo #1 Exemplo da gzwrite()

<?php
$string = 'Some information to compress';
$gz = gzopen('somefile.gz','w9');
gzwrite($gz, $string);
gzclose($gz);
?>

Veja Também

  • gzread() - Leitura de arquivo gz binária segura
  • gzopen() - Abre arquivo gz


Descomprime incrementalmente dados codificados

  • « gzwrite
  • inflate_get_read_len »
  • PHP Manual
  • Funções da Zlib
  • Descomprime incrementalmente dados codificados

inflate_add

(PHP 7, PHP 8)

inflate_add — Descomprime incrementalmente dados codificados

Descrição

inflate_add(InflateContext $context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false

Descomprime incrementalmente dados codificados no contexto expecificado em context.

Limitação: informações de cabeçalho de dados comprimidos GZIP não estão disponíveis.

Parâmetros

context

Um contexto criado com inflate_init().

data

Um pedaço de dados comprimidos.

flush_mode

Uma das constantes ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH (padrão), ZLIB_FULL_FLUSH, ZLIB_FINISH. Normalmente, você desejará definir ZLIB_NO_FLUSH para maximizar a compressão e ZLIB_FINISH para terminar com o último pedaço de dados. Consulte o » manual do zlib para obter uma descrição detalhada dessas constantes.

Valor Retornado

Retorna um pedaço de dados descomprimidos, ou false em caso de falha.

Erros/Exceções

Se parâmetros inválidos forem fornecidos, ou se a descompressão dos dados requerer um dicionário predefinido e nenhum for especificado, o se o fluxo comprimido estiver corrompido ou tiver uma soma de verificação inválida, um erro de nível E_WARNING é gerado.

Registro de Alterações

Versão | Descrição
8.0.0 | context espera uma instância de InflateContext agora; anteriormente, era esperado um resource.

Veja Também

  • inflate_init() - Inicializa um contexto de descompressão incremental


Obtém o número de bytes lidos até o momento

  • « inflate_add
  • inflate_get_status »
  • PHP Manual
  • Funções da Zlib
  • Obtém o número de bytes lidos até o momento

inflate_get_read_len

(PHP 7 >= 7.2.0, PHP 8)

inflate_get_read_len — Obtém o número de bytes lidos até o momento

Descrição

inflate_get_read_len(InflateContext $context): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

context

Valor Retornado

Retorna o número de bytes lidos até o momento ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | context espera uma instância de InflateContext agora; anteriormente, era esperado um resource.


Obtém o status da descompressão

  • « inflate_get_read_len
  • inflate_init »
  • PHP Manual
  • Funções da Zlib
  • Obtém o status da descompressão

inflate_get_status

(PHP 7 >= 7.2.0, PHP 8)

inflate_get_status — Obtém o status da descompressão

Descrição

inflate_get_status(InflateContext $context): int

Normalmente retorna ZLIB_OK ou ZLIB_STREAM_END.

Parâmetros

context

Valor Retornado

Retorna o status da descompressão.

Registro de Alterações

Versão | Descrição
8.0.0 | context agora espera uma instância de InflateContext; anteriormente, esperava-se um resource.


Inicializa um contexto de descompressão incremental

  • « inflate_get_status
  • ob_gzhandler »
  • PHP Manual
  • Funções da Zlib
  • Inicializa um contexto de descompressão incremental

inflate_init

(PHP 7, PHP 8)

inflate_init — Inicializa um contexto de descompressão incremental

Descrição

inflate_init(int $encoding, array $options = []): InflateContext|false

Inicializa um contexto de descompressão incremental com o encoding especificado.

Parâmetros

encoding

Uma das constantes ZLIB_ENCODING_*.

options

Um array associativo que pode conter os seguintes elementos:

level

O nível de compressão no intervalo -1..9; padrão é -1.

memory

O nível de memória de compressão no intervalo 1..9; padrão é 8.

window

O tamanho da janela zlib (logarítmico) no intervalo 8..15; padrão é 15.

strategy

Uma das constantes ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED ou ZLIB_DEFAULT_STRATEGY (o padrão).

dictionary

Uma string ou um array de strings do dicionário pré-definido (padrão: nenhum dicionário pré-definido).

Valor Retornado

Retorna um recurso de contexto de descompressão (zlib.inflate) em caso de sucesso, ou false em caso de falha.

Erros/Exceções

Se uma codificação ou opção inválida for passada para options, ou o contexto não puder ser criado, um erro de nível E_WARNING é gerado.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna uma instância de InflateContext; anteriormente, um resource era retornado.

Notas

Cuidado

Ao contrário de gzinflate(), contextos de descompressão incremental não restringem o comprimento dos dados decodificados, portanto, não oferecem proteção automática contra bombas Zip.

Veja Também

  • inflate_add() - Descomprime incrementalmente dados codificados
  • deflate_init() - Inicializa um contexto de compressão incremental


Função de chamada de retorno de ob_start para comprimir o buffer de saída com gzip

  • « inflate_init
  • readgzfile »
  • PHP Manual
  • Funções da Zlib
  • Função de chamada de retorno de ob_start para comprimir o buffer de saída com gzip

ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ob_gzhandler — Função de chamada de retorno de ob_start para comprimir o buffer de saída com gzip

Descrição

ob_gzhandler(string $data, int $flags): string|false

ob_gzhandler() é destinada a ser usado como uma função de chamada de retorno para ob_start() para facilitar o envio de dados codificados em gzip para navegadores da web que suportam páginas da web comprimidas. Antes de ob_gzhandler() enviar realmente dados comprimidos, ela determina qual tipo de codificação de conteúdo o navegador aceitará ("gzip", "deflate" ou nenhum) e retornará sua saída de acordo. Todos os navegadores são suportados, pois cabe ao navegador enviar o cabeçalho correto dizendo que aceita páginas da web comprimidas. Se um navegador não suporta páginas comprimidas, esta função retorna false.

Parâmetros

data

flags

Valor Retornado

Exemplos

Exemplo #1 Exemplo de ob_gzhandler()

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>Esta deve ser uma página comprimida.</p>
</body>
</html>

Notas

Nota:

ob_gzhandler() requer a extensão zlib.

Nota:

ob_gzhandler() e zlib.output_compression não podem ser usadas ao mesmo tempo. Também observe que usar zlib.output_compression é preferível a ob_gzhandler().

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_end_flush() - Flush (send) the return value of the active output handler and turn the active output buffer off


Exibe um arquivo gz

  • « ob_gzhandler
  • zlib_decode »
  • PHP Manual
  • Funções da Zlib
  • Exibe um arquivo gz

readgzfile

(PHP 4, PHP 5, PHP 7, PHP 8)

readgzfile — Exibe um arquivo gz

Descrição

readgzfile(string $filename, int $use_include_path = 0): int|false

Lê um arquivo, descomprime-o e escreve-o na saída padrão.

readgzfile() pode ser usada para ler um arquivo que não está em formato gzip; neste caso, readgzfile() irá diretamente ler do arquivo sem descompressão.

Parâmetros

filename

O nome do arquivo. Este arquivo será aberto do sistema de arquivos e seu conteúdo será escrito na saída padrão.

use_include_path

Você pode definir este parâmetro opcional como 1, se você deseja procurar pelo arquivo no include_path também.

Valor Retornado

Retorna o número de bytes (descomprimidos) lidos do arquivo com sucesso, ou false em caso de falha

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Veja Também

  • gzpassthru() - Escreve na saída todos os dados restantes em um ponteiro de arquivo gz
  • gzfile() - Lê todo o arquivo gz em um array
  • gzopen() - Abre arquivo gz


Descomprime qualquer dado codificado em raw/gzip/zlib

  • « readgzfile
  • zlib_encode »
  • PHP Manual
  • Funções da Zlib
  • Descomprime qualquer dado codificado em raw/gzip/zlib

zlib_decode

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

zlib_decode — Descomprime qualquer dado codificado em raw/gzip/zlib

Descrição

zlib_decode(string $data, int $max_length = 0): string|false

Descomprime qualquer dado codificado em raw/gzip/zlib.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

max_length

Valor Retornado

Retorna os dados descomprimidos, ou false em caso de falha.

Veja Também

  • zlib_encode() - Comprime dados com o codificador especificado


Comprime dados com o codificador especificado

  • « zlib_decode
  • zlib_get_coding_type »
  • PHP Manual
  • Funções da Zlib
  • Comprime dados com o codificador especificado

zlib_encode

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

zlib_encode — Comprime dados com o codificador especificado

Descrição

zlib_encode(string $data, int $encoding, int $level = -1): string|false

Comprime dados com o codificador especificado.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

Os dados a serem comprimidos.

encoding

O algoritmo de compressão. Pode ser ZLIB_ENCODING_RAW, ZLIB_ENCODING_DEFLATE ou ZLIB_ENCODING_GZIP.

level

Valor Retornado

Exemplos

Exemplo #1 Exemplo de zlib_encode()

<?php
$str = 'hello world';
$enc = zlib_encode($str, ZLIB_ENCODING_DEFLATE);
echo bin2hex($enc);
?>

O exemplo acima produzirá:

789ccb48cdc9c95728cf2fca4901001a0b045d

Veja Também

  • zlib_decode() - Descomprime qualquer dado codificado em raw/gzip/zlib


Retorna o tipo de codificação para a compressão de saída

  • « zlib_encode
  • DeflateContext »
  • PHP Manual
  • Funções da Zlib
  • Retorna o tipo de codificação para a compressão de saída

zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

zlib_get_coding_type — Retorna o tipo de codificação para a compressão de saída

Descrição

zlib_get_coding_type(): string|false

Returns the coding type used for output compression.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Possíveis valores de retorno são gzip, deflate, ou false.

Veja Também

  • A diretiva zlib.output_compression


A classe DeflateContext

(PHP 8)

Introdução

Uma classe totalmente opaca que substitui os recursos zlib.deflate a partir do PHP 8.0.0.

Resumo da classe

final class DeflateContext {
}


A classe InflateContext

(PHP 8)

Introdução

Uma classe totalmente opaca que substitui os recursos zlib.inflate a partir do PHP 8.0.0.

Resumo da classe

final class InflateContext {
}


Extensões para Criptografia

  • Hash — Framework de Digestão de Mensagens HASH
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • HashContext — The HashContext class
    • Hash Funções
  • Mcrypt
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Mcrypt ciphers
    • Mcrypt Funções
  • Mhash
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções da Mhash
  • OpenSSL
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Key/Certificate parameters
    • Certificate Verification
    • OpenSSL Funções
    • OpenSSLCertificate — The OpenSSLCertificate class
    • OpenSSLCertificateSigningRequest — The OpenSSLCertificateSigningRequest class
    • OpenSSLAsymmetricKey — The OpenSSLAsymmetricKey class
  • Password Hashing
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções de Password Hashing
  • Rnp
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Rnp Funções
    • RnpFFI — The RnpFFI class
  • Sodium
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções da Sodium
    • SodiumException — A classe SodiumException


Framework de Digestão de Mensagens HASH

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • HashContext — The HashContext class
    • HashContext::__construct — Private constructor to disallow direct instantiation
    • HashContext::__serialize — Serializes the HashContext object
    • HashContext::__unserialize — Deserializes the data parameter into a HashContext object
  • Hash Funções
    • hash_algos — Return a list of registered hashing algorithms
    • hash_copy — Copy hashing context
    • hash_equals — Timing attack safe string comparison
    • hash_file — Generate a hash value using the contents of a given file
    • hash_final — Finalize an incremental hash and return resulting digest
    • hash_hkdf — Generate a HKDF key derivation of a supplied key input
    • hash_hmac_algos — Return a list of registered hashing algorithms suitable for hash_hmac
    • hash_hmac_file — Generate a keyed hash value using the HMAC method and the contents of a given file
    • hash_hmac — Generate a keyed hash value using the HMAC method
    • hash_init — Initialize an incremental hashing context
    • hash_pbkdf2 — Generate a PBKDF2 key derivation of a supplied password
    • hash_update_file — Pump data into an active hashing context from a file
    • hash_update_stream — Pump data into an active hashing context from an open stream
    • hash_update — Pump data into an active hashing context
    • hash — Generate a hash value (message digest)


Introdução

Motor de Digestão de Mensagens (hash). Permite o processamento direto ou incremental de mensagens de comprimento arbitrário usando uma variedade de algoritmos de hash.


Dependências

Nenhuma instalação é necessária para usar estas funções; elas fazem parte do núcleo do PHP.


Instalação

A partir do PHP 5.1.2, a extensão Hash é incluída e compilada no PHP por padrão.

Pode ser explicitamente desativada usando a opção --disable-hash ao configurar. Versões anteriores do PHP podem incorporar a extensão Hash instalando o » módulo PECL.

A partir do PHP 7.4.0, a extensão Hash é uma extensão principal do PHP, portanto, está sempre ativada.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão define um recurso de Contexto de Hash retornado por hash_init().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

HASH_HMAC (int)
Sinalizador opcional para hash_init(). Indica que o algoritmo de chaveamento de digestão HMAC deve ser aplicado ao contexto de hash atual.


The HashContext class

(PHP 7 >= 7.2.0, PHP 8)

Introdução

Resumo da classe

final class HashContext {
/* Métodos */
private __construct()
public __serialize(): array
public __unserialize(array $data): void
}

Índice

  • HashContext::__construct — Private constructor to disallow direct instantiation
  • HashContext::__serialize — Serializes the HashContext object
  • HashContext::__unserialize — Deserializes the data parameter into a HashContext object


Private constructor to disallow direct instantiation

  • « HashContext
  • HashContext::__serialize »
  • PHP Manual
  • HashContext
  • Private constructor to disallow direct instantiation

HashContext::__construct

(PHP 7 >= 7.2.0, PHP 8)

HashContext::__construct — Private constructor to disallow direct instantiation

Descrição

private HashContext::__construct()

Parâmetros

Esta função não possui parâmetros.


Serializes the HashContext object

  • « HashContext::__construct
  • HashContext::__unserialize »
  • PHP Manual
  • HashContext
  • Serializes the HashContext object

HashContext::__serialize

(PHP 8)

HashContext::__serialize — Serializes the HashContext object

Descrição

public HashContext::__serialize(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Deserializes the data parameter into a HashContext object

  • « HashContext::__serialize
  • Hash Funções »
  • PHP Manual
  • HashContext
  • Deserializes the data parameter into a HashContext object

HashContext::__unserialize

(PHP 8)

HashContext::__unserialize — Deserializes the data parameter into a HashContext object

Descrição

public HashContext::__unserialize(array $data): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

The value being deserialized.

Valor Retornado

Nenhum valor é retornado.


Hash Funções

Índice

  • hash_algos — Return a list of registered hashing algorithms
  • hash_copy — Copy hashing context
  • hash_equals — Timing attack safe string comparison
  • hash_file — Generate a hash value using the contents of a given file
  • hash_final — Finalize an incremental hash and return resulting digest
  • hash_hkdf — Generate a HKDF key derivation of a supplied key input
  • hash_hmac_algos — Return a list of registered hashing algorithms suitable for hash_hmac
  • hash_hmac_file — Generate a keyed hash value using the HMAC method and the contents of a given file
  • hash_hmac — Generate a keyed hash value using the HMAC method
  • hash_init — Initialize an incremental hashing context
  • hash_pbkdf2 — Generate a PBKDF2 key derivation of a supplied password
  • hash_update_file — Pump data into an active hashing context from a file
  • hash_update_stream — Pump data into an active hashing context from an open stream
  • hash_update — Pump data into an active hashing context
  • hash — Generate a hash value (message digest)


Return a list of registered hashing algorithms

  • « Hash Funções
  • hash_copy »
  • PHP Manual
  • Hash Funções
  • Return a list of registered hashing algorithms

hash_algos

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_algos — Return a list of registered hashing algorithms

Descrição

hash_algos(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a numerically indexed array containing the list of supported hashing algorithms.

Registro de Alterações

Versão | Descrição
8.1.0 | Support for MurmurHash3 and xxHash algorithms has been added.
7.4.0 | Support for crc32c has been added.
7.1.0 | Support for sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 and sha3-512 has been added.

Exemplos

Exemplo #1 hash_algos() example

As of PHP 8.1.0, hash_algos() will return the following list of algorithm names.

<?php
print_r(hash_algos());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512/224
    [8] => sha512/256
    [9] => sha512
    [10] => sha3-224
    [11] => sha3-256
    [12] => sha3-384
    [13] => sha3-512
    [14] => ripemd128
    [15] => ripemd160
    [16] => ripemd256
    [17] => ripemd320
    [18] => whirlpool
    [19] => tiger128,3
    [20] => tiger160,3
    [21] => tiger192,3
    [22] => tiger128,4
    [23] => tiger160,4
    [24] => tiger192,4
    [25] => snefru
    [26] => snefru256
    [27] => gost
    [28] => gost-crypto
    [29] => adler32
    [30] => crc32
    [31] => crc32b
    [32] => crc32c
    [33] => fnv132
    [34] => fnv1a32
    [35] => fnv164
    [36] => fnv1a64
    [37] => joaat
    [38] => murmur3a
    [39] => murmur3c
    [40] => murmur3f
    [41] => xxh32
    [42] => xxh64
    [43] => xxh3
    [44] => xxh128
    [45] => haval128,3
    [46] => haval160,3
    [47] => haval192,3
    [48] => haval224,3
    [49] => haval256,3
    [50] => haval128,4
    [51] => haval160,4
    [52] => haval192,4
    [53] => haval224,4
    [54] => haval256,4
    [55] => haval128,5
    [56] => haval160,5
    [57] => haval192,5
    [58] => haval224,5
    [59] => haval256,5
)

Veja Também

  • hash_hmac_algos() - Return a list of registered hashing algorithms suitable for hash_hmac


Copy hashing context

  • « hash_algos
  • hash_equals »
  • PHP Manual
  • Hash Funções
  • Copy hashing context

hash_copy

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

hash_copy — Copy hashing context

Descrição

hash_copy(HashContext $context): HashContext

Parâmetros

context

Hashing context returned by hash_init().

Valor Retornado

Returns a copy of Hashing Context.

Registro de Alterações

Versão | Descrição
7.2.0 | Accept and return HashContext instead of resource.

Exemplos

Exemplo #1 hash_copy() example

<?php
$context = hash_init("sha256");
hash_update($context, "The quick brown fox ");

/* copy context to be able to continue using it */
$copy_context = hash_copy($context);

echo hash_final($context), "\n";

hash_update($copy_context, "jumped over the lazy dog.");
echo hash_final($copy_context), "\n";
?>

O exemplo acima produzirá:

b29d66e56ed90cce9b0165c43fedec612b60a071974d8be4513e18580d55b5bd
68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483


Timing attack safe string comparison

  • « hash_copy
  • hash_file »
  • PHP Manual
  • Hash Funções
  • Timing attack safe string comparison

hash_equals

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

hash_equals — Timing attack safe string comparison

Descrição

hash_equals(string $known_string, string $user_string): bool

Checks whether two strings are equal without leaking information about the contents of known_string via the execution time.

This function can be used to mitigate timing attacks. Performing a regular comparison with === will take more or less time to execute depending on whether the two values are different or not and at which position the first difference can be found, thus leaking information about the contents of the secret known_string.

Cuidado

It is important to provide the user-supplied string as the second parameter, rather than the first.

Parâmetros

known_string

The known string that must be kept secret.

user_string

The user-supplied string to compare against.

Valor Retornado

Returns true when the two strings are equal, false otherwise.

Exemplos

Exemplo #1 hash_equals() example

<?php
$secretKey = '8uRhAeH89naXfFXKGOEj';

// Value and signature are provided by the user, e.g. within the URL
// and retrieved using $_GET.
$value = 'username=rasmuslerdorf';
$signature = '8c35009d3b50caf7f5d2c1e031842e6b7823a1bb781d33c5237cd27b57b5f327';

if (hash_equals(hash_hmac('sha256', $value, $secretKey), $signature)) {
echo "The value is correctly signed.", PHP_EOL;
} else {
echo "The value was tampered with.", PHP_EOL;
}
?>

O exemplo acima produzirá:

The value is correctly signed.

Notas

Nota:

Both arguments must be of the same length to be compared successfully. When arguments of differing length are supplied, false is returned immediately and the length of the known string may be leaked in case of a timing attack.

Veja Também

  • hash_hmac() - Generate a keyed hash value using the HMAC method


Generate a hash value using the contents of a given file

  • « hash_equals
  • hash_final »
  • PHP Manual
  • Hash Funções
  • Generate a hash value using the contents of a given file

hash_file

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_file — Generate a hash value using the contents of a given file

Descrição

hash_file(
string $algo,
string $filename,
bool $binary = false,
array $options = []
): string|false

Parâmetros

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..). For a list of supported algorithms see hash_algos().

filename

URL describing location of file to be hashed; Supports fopen wrappers.

binary

When set to true, outputs raw binary data. false outputs lowercase hexits.

options

An array of options for the various hashing algorithms. Currently, only the "seed" parameter is supported by the MurmurHash variants.

Valor Retornado

Returns a string containing the calculated message digest as lowercase hexits unless binary is set to true in which case the raw binary representation of the message digest is returned.

Registro de Alterações

Versão | Descrição
8.1.0 | The options parameter has been added.

Exemplos

Exemplo #1 Using hash_file()

<?php
/* Create a file to calculate hash of */
file_put_contents('example.txt', 'The quick brown fox jumped over the lazy dog.');

echo hash_file('sha256', 'example.txt');
?>

O exemplo acima produzirá:

68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483

Veja Também

  • hash() - Generate a hash value (message digest)
  • hash_hmac_file() - Generate a keyed hash value using the HMAC method and the contents of a given file
  • hash_update_file() - Pump data into an active hashing context from a file
  • md5_file() - Calculates the md5 hash of a given file
  • sha1_file() - Calcula a hash sha1 de um arquivo


Finalize an incremental hash and return resulting digest

  • « hash_file
  • hash_hkdf »
  • PHP Manual
  • Hash Funções
  • Finalize an incremental hash and return resulting digest

hash_final

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_final — Finalize an incremental hash and return resulting digest

Descrição

hash_final(HashContext $context, bool $binary = false): string

Parâmetros

context

Hashing context returned by hash_init().

binary

When set to true, outputs raw binary data. false outputs lowercase hexits.

Valor Retornado

Returns a string containing the calculated message digest as lowercase hexits unless binary is set to true in which case the raw binary representation of the message digest is returned.

Registro de Alterações

Versão | Descrição
7.2.0 | Accept HashContext instead of resource.

Veja Também

  • hash_init() - Initialize an incremental hashing context
  • hash_update() - Pump data into an active hashing context
  • hash_update_stream() - Pump data into an active hashing context from an open stream
  • hash_update_file() - Pump data into an active hashing context from a file


Generate a HKDF key derivation of a supplied key input

  • « hash_final
  • hash_hmac_algos »
  • PHP Manual
  • Hash Funções
  • Generate a HKDF key derivation of a supplied key input

hash_hkdf

(PHP 7 >= 7.1.2, PHP 8)

hash_hkdf — Generate a HKDF key derivation of a supplied key input

Descrição

hash_hkdf(
string $algo,
string $key,
int $length = 0,
string $info = "",
string $salt = ""
): string

Parâmetros

algo

Name of selected hashing algorithm (i.e. "sha256", "sha512", "haval160,4", etc..) See hash_algos() for a list of supported algorithms.

Nota:

Non-cryptographic hash functions are not allowed.

key

Input keying material (raw binary). Cannot be empty.

length

Desired output length in bytes. Cannot be greater than 255 times the chosen hash function size.

If length is 0, the output length will default to the chosen hash function size.

info

Application/context-specific info string.

salt

Salt to use during derivation.

While optional, adding random salt significantly improves the strength of HKDF.

Valor Retornado

Returns a string containing a raw binary representation of the derived key (also known as output keying material - OKM).

Erros/Exceções

Throws a ValueError exception if key is empty, algo is unknown/non-cryptographic, length is less than 0 or too large (greater than 255 times the size of the hash function).

Registro de Alterações

Versão | Descrição
8.0.0 | Now throws a ValueError exception on error. Previously, false was returned and an E_WARNING message was emitted.

Exemplos

Exemplo #1 hash_hkdf() example

<?php
// Generate a random key, and salt to strengthen it during derivation.
$inputKey = random_bytes(32);
$salt = random_bytes(16);

// Derive a pair of separate keys, using the same input created above.
$encryptionKey = hash_hkdf('sha256', $inputKey, 32, 'aes-256-encryption', $salt);
$authenticationKey = hash_hkdf('sha256', $inputKey, 32, 'sha-256-authentication', $salt);

var_dump($encryptionKey !== $authenticationKey); // bool(true)
?>

The above example produces a pair of separate keys, suitable for creation of an encrypt-then-HMAC construct, using AES-256 and SHA-256 for encryption and authentication respectively.

Veja Também

  • hash_pbkdf2() - Generate a PBKDF2 key derivation of a supplied password
  • » RFC 5869
  • » userland implementation


Return a list of registered hashing algorithms suitable for hash_hmac

  • « hash_hkdf
  • hash_hmac_file »
  • PHP Manual
  • Hash Funções
  • Return a list of registered hashing algorithms suitable for hash_hmac

hash_hmac_algos

(PHP 7 >= 7.2.0, PHP 8)

hash_hmac_algos — Return a list of registered hashing algorithms suitable for hash_hmac

Descrição

hash_hmac_algos(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a numerically indexed array containing the list of supported hashing algorithms suitable for hash_hmac().

Exemplos

Exemplo #1 hash_hmac_algos() example

<?php
print_r(hash_hmac_algos());

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512/224
    [8] => sha512/256
    [9] => sha512
    [10] => sha3-224
    [11] => sha3-256
    [12] => sha3-384
    [13] => sha3-512
    [14] => ripemd128
    [15] => ripemd160
    [16] => ripemd256
    [17] => ripemd320
    [18] => whirlpool
    [19] => tiger128,3
    [20] => tiger160,3
    [21] => tiger192,3
    [22] => tiger128,4
    [23] => tiger160,4
    [24] => tiger192,4
    [25] => snefru
    [26] => snefru256
    [27] => gost
    [28] => gost-crypto
    [29] => haval128,3
    [30] => haval160,3
    [31] => haval192,3
    [32] => haval224,3
    [33] => haval256,3
    [34] => haval128,4
    [35] => haval160,4
    [36] => haval192,4
    [37] => haval224,4
    [38] => haval256,4
    [39] => haval128,5
    [40] => haval160,5
    [41] => haval192,5
    [42] => haval224,5
    [43] => haval256,5
)

Notas

Nota:

Before PHP 7.2.0 the only means to get a list of supported hash algorithms has been to call hash_algos() which also returns hash algorithms that are not suitable for hash_hmac().

Veja Também

  • hash_hmac() - Generate a keyed hash value using the HMAC method
  • hash_algos() - Return a list of registered hashing algorithms


Generate a keyed hash value using the HMAC method and the contents of a given file

  • « hash_hmac_algos
  • hash_hmac »
  • PHP Manual
  • Hash Funções
  • Generate a keyed hash value using the HMAC method and the contents of a given file

hash_hmac_file

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_hmac_file — Generate a keyed hash value using the HMAC method and the contents of a given file

Descrição

hash_hmac_file(
string $algo,
string $filename,
string $key,
bool $binary = false
): string|false

Parâmetros

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) See hash_hmac_algos() for a list of supported algorithms.

filename

URL describing location of file to be hashed; Supports fopen wrappers.

key

Shared secret key used for generating the HMAC variant of the message digest.

binary

When set to true, outputs raw binary data. false outputs lowercase hexits.

Valor Retornado

Returns a string containing the calculated message digest as lowercase hexits unless binary is set to true in which case the raw binary representation of the message digest is returned. Returns false if the file filename cannot be read.

Erros/Exceções

Throws a ValueError exception if algo is unknown or is a non-cryptographic hash function.

Registro de Alterações

Versão | Descrição
8.0.0 | Now throws a ValueError exception if algo is unknown or is a non-cryptographic hash function; previously, false was returned instead.
7.2.0 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.

Exemplos

Exemplo #1 hash_hmac_file() example

<?php
/* Create a file to calculate hash of */
file_put_contents('example.txt', 'The quick brown fox jumped over the lazy dog.');

echo hash_hmac_file('sha256', 'example.txt', 'secret');
?>

O exemplo acima produzirá:

9c5c42422b03f0ee32949920649445e417b2c634050833c5165704b825c2a53b

Veja Também

  • hash_hmac_algos() - Return a list of registered hashing algorithms suitable for hash_hmac
  • hash_hmac() - Generate a keyed hash value using the HMAC method
  • hash_file() - Generate a hash value using the contents of a given file


Generate a keyed hash value using the HMAC method

  • « hash_hmac_file
  • hash_init »
  • PHP Manual
  • Hash Funções
  • Generate a keyed hash value using the HMAC method

hash_hmac

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_hmac — Generate a keyed hash value using the HMAC method

Descrição

hash_hmac(
string $algo,
string $data,
string $key,
bool $binary = false
): string

Parâmetros

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) See hash_hmac_algos() for a list of supported algorithms.

data

Message to be hashed.

key

Shared secret key used for generating the HMAC variant of the message digest.

binary

When set to true, outputs raw binary data. false outputs lowercase hexits.

Valor Retornado

Returns a string containing the calculated message digest as lowercase hexits unless binary is set to true in which case the raw binary representation of the message digest is returned.

Erros/Exceções

Throws a ValueError exception if algo is unknown or is a non-cryptographic hash function.

Registro de Alterações

Versão | Descrição
8.0.0 | Now throws a ValueError exception if algo is unknown or is a non-cryptographic hash function; previously, false was returned instead.
7.2.0 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.

Exemplos

Exemplo #1 hash_hmac() example

<?php
echo hash_hmac('sha256', 'The quick brown fox jumped over the lazy dog.', 'secret');
?>

O exemplo acima produzirá:

9c5c42422b03f0ee32949920649445e417b2c634050833c5165704b825c2a53b

Veja Também

  • hash() - Generate a hash value (message digest)
  • hash_hmac_algos() - Return a list of registered hashing algorithms suitable for hash_hmac
  • hash_init() - Initialize an incremental hashing context
  • hash_hmac_file() - Generate a keyed hash value using the HMAC method and the contents of a given file
  • hash_equals() - Timing attack safe string comparison


Initialize an incremental hashing context

  • « hash_hmac
  • hash_pbkdf2 »
  • PHP Manual
  • Hash Funções
  • Initialize an incremental hashing context

hash_init

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_init — Initialize an incremental hashing context

Descrição

hash_init(
string $algo,
int $flags = 0,
string $key = "",
array $options = []
): HashContext

Parâmetros

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..). For a list of supported algorithms see hash_algos().

flags

Optional settings for hash generation, currently supports only one option: HASH_HMAC. When specified, the key must be specified.

key

When HASH_HMAC is specified for flags, a shared secret key to be used with the HMAC hashing method must be supplied in this parameter.

options

An array of options for the various hashing algorithms. Currently, only the "seed" parameter is supported by the MurmurHash variants.

Valor Retornado

Returns a Hashing Context for use with hash_update(), hash_update_stream(), hash_update_file(), and hash_final().

Erros/Exceções

Throws a ValueError exception if algo is unknown or is a non-cryptographic hash function, or if key is empty.

Registro de Alterações

Versão | Descrição
8.1.0 | The options parameter has been added.
8.0.0 | Now throws an ValueError exception if the algo is unknown or is a non-cryptographic hash function, or if key is empty. Previously, false was returned and an E_WARNING message was emitted.
7.2.0 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) with HASH_HMAC was disabled.
7.2.0 | Return HashContext instead of resource.

Exemplos

Exemplo #1 Incremental hashing example

<?php
$hash = hash('sha256', 'The quick brown fox jumped over the lazy dog.');

$ctx = hash_init('sha256');
hash_update($ctx, 'The quick brown fox ');
hash_update($ctx, 'jumped over the lazy dog.');
$incremental_hash = hash_final($ctx);

echo $incremental_hash, PHP_EOL;
var_dump($hash === $incremental_hash);
?>

O exemplo acima produzirá:

68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483
bool(true)

Veja Também

  • hash() - Generate a hash value (message digest)
  • hash_algos() - Return a list of registered hashing algorithms
  • hash_file() - Generate a hash value using the contents of a given file
  • hash_hmac() - Generate a keyed hash value using the HMAC method
  • hash_hmac_file() - Generate a keyed hash value using the HMAC method and the contents of a given file


Generate a PBKDF2 key derivation of a supplied password

  • « hash_init
  • hash_update_file »
  • PHP Manual
  • Hash Funções
  • Generate a PBKDF2 key derivation of a supplied password

hash_pbkdf2

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

hash_pbkdf2 — Generate a PBKDF2 key derivation of a supplied password

Descrição

hash_pbkdf2(
string $algo,
string $password,
string $salt,
int $iterations,
int $length = 0,
bool $binary = false,
array $options = []
): string

Parâmetros

algo

Name of selected hashing algorithm (i.e. md5, sha256, haval160,4, etc..) See hash_algos() for a list of supported algorithms.

password

The password to use for the derivation.

salt

The salt to use for the derivation. This value should be generated randomly.

iterations

The number of internal iterations to perform for the derivation.

length

The length of the output string. If binary is true this corresponds to the byte-length of the derived key, if binary is false this corresponds to twice the byte-length of the derived key (as every byte of the key is returned as two hexits).

If 0 is passed, the entire output of the supplied algorithm is used.

binary

When set to true, outputs raw binary data. false outputs lowercase hexits.

options

An array of options for the various hashing algorithms. Currently, only the "seed" key is supported by the MurmurHash variants.

Valor Retornado

Returns a string containing the derived key as lowercase hexits unless binary is set to true in which case the raw binary representation of the derived key is returned.

Erros/Exceções

Throws a ValueError exception if the algorithm is unknown, the iterations parameter is less than or equal to 0, the length is less than 0 or the salt is too long (greater than INT_MAX - 4).

Registro de Alterações

Versão | Descrição
8.0.0 | Now throws a ValueError exception on error. Previously, false was returned and an E_WARNING message was emitted.
7.2.0 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.

Exemplos

Exemplo #1 hash_pbkdf2() example, basic usage

<?php
$password = "password";
$iterations = 600000;

// Generate a cryptographically secure random salt using random_bytes()
$salt = random_bytes(16);

$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
var_dump($hash);

// for raw binary, the $length needs to be halved for equivalent results
$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 10, true);
var_dump(bin2hex($hash));?>

O exemplo acima produzirá algo semelhante a:

string(20) "120fb6cffcf8b32c43e7"
string(20) "120fb6cffcf8b32c43e7"

Notas

Cuidado

The PBKDF2 method can be used for hashing passwords for storage. However, it should be noted that password_hash() or crypt() with CRYPT_BLOWFISH are better suited for password storage.

Veja Também

  • password_hash() - Cria um hash de senha
  • hash_hkdf() - Generate a HKDF key derivation of a supplied key input
  • sodium_crypto_pwhash() - Derive a key from a password, using Argon2


Pump data into an active hashing context from a file

  • « hash_pbkdf2
  • hash_update_stream »
  • PHP Manual
  • Hash Funções
  • Pump data into an active hashing context from a file

hash_update_file

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_update_file — Pump data into an active hashing context from a file

Descrição

hash_update_file(HashContext $context, string $filename, ?resource $stream_context = null): bool

Parâmetros

context

Hashing context returned by hash_init().

filename

URL describing location of file to be hashed; Supports fopen wrappers.

stream_context

Stream context as returned by stream_context_create().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | stream_context is now nullable.
7.2.0 | Accept HashContext instead of resource.

Veja Também

  • hash_init() - Initialize an incremental hashing context
  • hash_update() - Pump data into an active hashing context
  • hash_update_stream() - Pump data into an active hashing context from an open stream
  • hash_final() - Finalize an incremental hash and return resulting digest
  • hash() - Generate a hash value (message digest)
  • hash_file() - Generate a hash value using the contents of a given file


Pump data into an active hashing context from an open stream

  • « hash_update_file
  • hash_update »
  • PHP Manual
  • Hash Funções
  • Pump data into an active hashing context from an open stream

hash_update_stream

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_update_stream — Pump data into an active hashing context from an open stream

Descrição

hash_update_stream(HashContext $context, resource $stream, int $length = -1): int

Parâmetros

context

Hashing context returned by hash_init().

stream

Open file handle as returned by any stream creation function.

length

Maximum number of characters to copy from stream into the hashing context.

Valor Retornado

Actual number of bytes added to the hashing context from stream.

Registro de Alterações

Versão | Descrição
7.2.0 | Accept HashContext instead of resource.

Exemplos

Exemplo #1 hash_update_stream() example

<?php
$fp = tmpfile();
fwrite($fp, 'jumped over the lazy dog.');
rewind($fp);

$ctx = hash_init('sha256');
hash_update($ctx, 'The quick brown fox ');
hash_update_stream($ctx, $fp);
echo hash_final($ctx);
?>

O exemplo acima produzirá:

68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483

Veja Também

  • hash_init() - Initialize an incremental hashing context
  • hash_update() - Pump data into an active hashing context
  • hash_final() - Finalize an incremental hash and return resulting digest
  • hash() - Generate a hash value (message digest)
  • hash_file() - Generate a hash value using the contents of a given file


Pump data into an active hashing context

  • « hash_update_stream
  • hash »
  • PHP Manual
  • Hash Funções
  • Pump data into an active hashing context

hash_update

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_update — Pump data into an active hashing context

Descrição

hash_update(HashContext $context, string $data): true

Parâmetros

context

Hashing context returned by hash_init().

data

Message to be included in the hash digest.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
7.2.0 | Accept HashContext instead of resource.

Veja Também

  • hash_init() - Initialize an incremental hashing context
  • hash_update_file() - Pump data into an active hashing context from a file
  • hash_update_stream() - Pump data into an active hashing context from an open stream
  • hash_final() - Finalize an incremental hash and return resulting digest


Generate a hash value (message digest)

  • « hash_update
  • Mcrypt »
  • PHP Manual
  • Hash Funções
  • Generate a hash value (message digest)

hash

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash — Generate a hash value (message digest)

Descrição

hash(
string $algo,
string $data,
bool $binary = false,
array $options = []
): string

Parâmetros

algo

Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..). For a list of supported algorithms see hash_algos().

data

Message to be hashed.

binary

When set to true, outputs raw binary data. false outputs lowercase hexits.

options

An array of options for the various hashing algorithms. Currently, only the "seed" parameter is supported by the MurmurHash variants.

Valor Retornado

Returns a string containing the calculated message digest as lowercase hexits unless binary is set to true in which case the raw binary representation of the message digest is returned.

Registro de Alterações

Versão | Descrição
8.1.0 | The options parameter has been added.
8.0.0 | hash() now throws a ValueError exception if algo is unknown; previously, false was returned instead.

Exemplos

Exemplo #1 A hash() example

<?php
echo hash('sha256', 'The quick brown fox jumped over the lazy dog.');
?>

O exemplo acima produzirá:

68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483

Veja Também

  • hash_file() - Generate a hash value using the contents of a given file
  • hash_hmac() - Generate a keyed hash value using the HMAC method
  • hash_init() - Initialize an incremental hashing context
  • md5() - Calculate the md5 hash of a string
  • sha1() - Calculate the sha1 hash of a string


Mcrypt

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Mcrypt ciphers
  • Mcrypt Funções
    • mcrypt_create_iv — Creates an initialization vector (IV) from a random source
    • mcrypt_decrypt — Decrypts crypttext with given parameters
    • 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 — 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_init — This function initializes all buffers needed for encryption
    • mcrypt_generic — This function encrypts data
    • mcrypt_get_block_size — Gets the block size of the specified cipher
    • mcrypt_get_cipher_name — Gets the name of the specified cipher
    • mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination
    • mcrypt_get_key_size — Gets the key size of the specified cipher
    • mcrypt_list_algorithms — Gets an array of all supported ciphers
    • mcrypt_list_modes — Gets an array of all supported modes
    • mcrypt_module_close — Closes 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 — Returns if 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 — Returns if 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
    • mdecrypt_generic — Decrypts data


Introdução

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 7.1.0 e foi REMOVIDO a partir do PHP 7.2.0.

Alternativas a este recurso incluem:

  • Sodium (disponível a partir do PHP 7.2.0)
  • OpenSSL

Nota:

Esta extensão foi movida para o repositório » PECL e não é mais distribuída com o PHP desde a versão 7.2.0.

Esta é uma interface para a biblioteca mcrypt, que suporta uma ampla variedade de algoritmos de bloco, como DES, TripleDES, Blowfish (padrão), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 e GOST nos modos de cifra CBC, OFB, CFB e ECB. Além disso, suporta RC6 e IDEA, que são considerados "não livres". CFB/OFB são 8 bits por padrão.


Dependências

Essas funções utilizam » mcrypt. Para utilizá-lo, faça o download do libmcrypt-x.x.tar.gz em » http://mcrypt.sourceforge.net/ e siga as instruções de instalação incluídas.

A versão 2.5.6 ou superior do libmcrypt é necessária.

Usuários do Windows encontrarão a biblioteca nas versões binárias do PHP 5.2. As versões binárias do PHP 5.3 utilizam a versão estática da biblioteca MCrypt, sem a necessidade de DLLs.

Se você vinculou com libmcrypt 2.4.x ou superior, os seguintes algoritmos de bloco adicionais são suportados: CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT, e os seguintes cifradores de fluxo: ENIGMA (crypt), PANAMA, RC4 e WAKE. Com libmcrypt 2.4.x ou superior, um outro modo de cifragem também está disponível; nOFB.


Instalação

Esta extensão foi movida para o repositório » PECL e não é mais distribuída com o PHP desde a versão 7.2.0

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/mcrypt.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração do Mcrypt
Nome | Padrão | Modificável | Registro de Alterações
mcrypt.algorithms_dir | null | INI_ALL |
mcrypt.modes_dir | null | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

mcrypt.algorithms_dir string

O diretório que contém os algoritmos. Padrão para os diretórios compilados dentro do libmcrypt, que é tipicamente /usr/local/lib/libmcrypt. Consulte mcrypt_list_algorithms() para detalhes adicionais.

mcrypt.modes_dir string

O diretório que contém os modos. Padrão para os diretórios compilados dentro do libmcrypt, que é tipicamente /usr/local/lib/libmcrypt. Consulte mcrypt_list_modes() para detalhes adicionais.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

mcrypt_module_open() retorna um descritor de criptografia.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Mcrypt pode operar em quatro modos de cifra de bloco (CBC, OFB, CFB e ECB). Se vinculado à libmcrypt-2.4.x ou superior, as funções também podem operar no modo de cifra de bloco nOFB e no modo STREAM. Abaixo você encontra uma lista com todos modos de criptografia suportados juntamente com as constantes que são definidas para o modo de criptografia. Para uma referência mais completa e discussão, consulte Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) é um modo de cifra de bloco geralmente inadequado para a maioria dos propósitos. O uso deste modo não é recomendado.
  • MCRYPT_MODE_CBC (cipher block chaining) é um modo de cifra de bloco significativamente mais seguro do que o modo ECB.
  • MCRYPT_MODE_CFB (cipher feedback, em modo de 8 bits) é um modo de cifra de fluxo. É recomendado usar o modo NCFB em vez de modo CFB.
  • MCRYPT_MODE_OFB (output feedback, em modo de 8 bits) é um modo de cifra de fluxo comparável a CFB, mas pode ser usado em aplicações onde a propagação de erros não pode ser tolerada. Recomenda-se usar o modo NOFB em vez de modo OFB.
  • MCRYPT_MODE_NOFB (output feedback, em modo n-bit) é comparável ao modo OFB, mas opera no tamanho completo do bloco do algoritmo.
  • MCRYPT_MODE_STREAM é um modo extra para incluir alguns algoritmos de fluxo como "WAKE" ou "RC4".

Mcrypt suporta alguns outros modos de operação para os quais não existem constantes predefinidas. Eles podem ser utilizados passando uma string no lugar das constantes ausentes.

  • "ctr" (counter mode) é um modo de cifra de fluxo.
  • "ncfb" (cipher feedback, em modo n-bit) é comparável ao modo CFB, mas opera no tamanho completo do bloco do algoritmo.

Algumas outras constantes de modo e dispositivo aleatório:

MCRYPT_ENCRYPT (int)
MCRYPT_DECRYPT (int)
MCRYPT_DEV_RANDOM (int)
MCRYPT_DEV_URANDOM (int)
MCRYPT_RAND (int)


Mcrypt ciphers

Aqui está uma lista de cifras que são atualmente suportadas pela extensão mcrypt. Para uma lista completa de cifras suportadas, consulte as definições em mcrypt.h. A regra geral com a API mcrypt-2.2.x é que você pode acessar a cifra no PHP com MCRYPT_ciphername. Com as APIs libmcrypt-2.4.x e libmcrypt-2.5.x, essas constantes também funcionam, mas é possível especificar o nome da cifra como uma string com uma chamada para mcrypt_module_open().

  • MCRYPT_3DES
  • MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x somente)
  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x somente)
  • MCRYPT_BLOWFISH
  • MCRYPT_CAST_128
  • MCRYPT_CAST_256
  • MCRYPT_CRYPT
  • MCRYPT_DES
  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x somente)
  • MCRYPT_ENIGMA (libmcrypt > 2.4.x somente, alias para MCRYPT_CRYPT)
  • MCRYPT_GOST
  • MCRYPT_IDEA (não livre)
  • MCRYPT_LOKI97 (libmcrypt > 2.4.x somente)
  • MCRYPT_MARS (libmcrypt > 2.4.x somente, não livre)
  • MCRYPT_PANAMA (libmcrypt > 2.4.x somente)
  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x somente)
  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x somente)
  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x somente)
  • MCRYPT_RC2
  • MCRYPT_RC4 (libmcrypt 2.2.x somente)
  • MCRYPT_RC6 (libmcrypt > 2.4.x somente)
  • MCRYPT_RC6_128 (libmcrypt 2.2.x somente)
  • MCRYPT_RC6_192 (libmcrypt 2.2.x somente)
  • MCRYPT_RC6_256 (libmcrypt 2.2.x somente)
  • MCRYPT_SAFER64
  • MCRYPT_SAFER128
  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x somente)
  • MCRYPT_SERPENT(libmcrypt > 2.4.x somente)
  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x somente)
  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x somente)
  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x somente)
  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x somente)
  • MCRYPT_TEAN (libmcrypt 2.2.x somente)
  • MCRYPT_THREEWAY
  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x somente)
  • MCRYPT_TWOFISH (para versões antigas do mcrypt 2.x ou mcrypt > 2.4.x)
  • MCRYPT_TWOFISH128 (TWOFISHxxx estão disponíveis em versões mais recentes 2.x versions, mas não nas versões 2.4.x)
  • MCRYPT_TWOFISH192
  • MCRYPT_TWOFISH256
  • MCRYPT_WAKE (libmcrypt > 2.4.x somente)
  • MCRYPT_XTEA (libmcrypt > 2.4.x somente)

Você deve (em modo CFB e OFB) ou pode (em modo CBC) fornecer um vetor de inicialização (IV) para a função de cifra respectiva. O IV deve ser único e deve ser o mesmo ao descriptografar/criptografar. Com dados que são armazenados criptografados, você pode pegar a saída de uma função do índice sob o qual o dados são armazenados (por exemplo, a chave MD5 do nome do arquivo). Alternativamente, você pode transmitir o IV junto com os dados criptografados (consulte o capítulo 9.3 de Applied Cryptography by Schneier (ISBN 0-471-11709-9) para uma discussão sobre esse tópico).


Mcrypt Funções

Índice

  • mcrypt_create_iv — Creates an initialization vector (IV) from a random source
  • mcrypt_decrypt — Decrypts crypttext with given parameters
  • 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 — 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_init — This function initializes all buffers needed for encryption
  • mcrypt_generic — This function encrypts data
  • mcrypt_get_block_size — Gets the block size of the specified cipher
  • mcrypt_get_cipher_name — Gets the name of the specified cipher
  • mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination
  • mcrypt_get_key_size — Gets the key size of the specified cipher
  • mcrypt_list_algorithms — Gets an array of all supported ciphers
  • mcrypt_list_modes — Gets an array of all supported modes
  • mcrypt_module_close — Closes 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 — Returns if 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 — Returns if 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
  • mdecrypt_generic — Decrypts data


Creates an initialization vector (IV) from a random source

  • « Mcrypt Funções
  • mcrypt_decrypt »
  • PHP Manual
  • Mcrypt Funções
  • Creates an initialization vector (IV) from a random source

mcrypt_create_iv

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_create_iv — Creates an initialization vector (IV) from a random source

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0.

Alternativas a esta função incluem:

  • random_bytes()

Descrição

mcrypt_create_iv(int $size, int $source = MCRYPT_DEV_URANDOM): string

Creates an initialization vector (IV) from a random source.

The IV is only meant to give an alternative seed to the encryption routines. This IV does not need to be secret at all, though it can be desirable. You even can send it along with your ciphertext without losing security.

Parâmetros

size

The size of the IV.

source

The source of the IV. The source can be MCRYPT_RAND (system random number generator), MCRYPT_DEV_RANDOM (read data from /dev/random) and MCRYPT_DEV_URANDOM (read data from /dev/urandom). Prior to 5.3.0, MCRYPT_RAND was the only one supported on Windows.

Note that the default value of this parameter was MCRYPT_DEV_RANDOM prior to PHP 5.6.0.

Nota: Note that MCRYPT_DEV_RANDOM may block until more entropy is available.

Valor Retornado

Returns the initialization vector, or false on error.

Exemplos

Exemplo #1 mcrypt_create_iv() Example

<?php
$size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
$iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
?>

Veja Também

  • » http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
  • » http://www.quadibloc.com/crypto/co0409.htm
  • Chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9)
  • random_bytes() - Get cryptographically secure random bytes


Decrypts crypttext with given parameters

  • « mcrypt_create_iv
  • mcrypt_enc_get_algorithms_name »
  • PHP Manual
  • Mcrypt Funções
  • Decrypts crypttext with given parameters

mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_decrypt — Decrypts crypttext with given parameters

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_decrypt(
string $cipher,
string $key,
string $data,
string $mode,
string $iv = ?
): string|false

Decrypts the data and returns the unencrypted data.

Parâmetros

cipher

Uma das constantes MCRYPT_nome_da_cifra ou o nome do algoritmo como string.

key

The key with which the data was encrypted. If the provided key size is not supported by the cipher, the function will emit a warning and return false

data

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

Uma das constantes MCRYPT_MODE_nome_do_modo ou uma das seguintes strings: "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

iv

Usado para a inicialização nos modos CBC, CFB, OFB e em alguns algoritmos no modo STREAM. Se o tamanho do IV fornecido não for suportado pelo modo de encadeamento ou nenhum IV for fornecido, mas o modo de encadeamento exigir um, a função emitirá um aviso e retornará false.

Valor Retornado

Returns the decrypted data as a string ou false em caso de falha.

Veja Também

  • mcrypt_encrypt() - Encrypts plaintext with given parameters


Returns the name of the opened algorithm

  • « mcrypt_decrypt
  • mcrypt_enc_get_block_size »
  • PHP Manual
  • Mcrypt Funções
  • Returns the name of the opened algorithm

mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_enc_get_algorithms_name(resource $td): string

This function returns the name of the algorithm.

Parâmetros

td

The encryption descriptor.

Valor Retornado

Returns the name of the opened algorithm as a string.

Exemplos

Exemplo #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";
?>

O exemplo acima produzirá:

CAST-256
CAST-256


Returns the blocksize of the opened algorithm

  • « mcrypt_enc_get_algorithms_name
  • mcrypt_enc_get_iv_size »
  • PHP Manual
  • Mcrypt Funções
  • Returns the blocksize of the opened algorithm

mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_block_size — Returns the blocksize of the opened algorithm

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_enc_get_block_size(resource $td): int

Gets the blocksize of the opened algorithm.

Parâmetros

td

The encryption descriptor.

Valor Retornado

Returns the block size of the specified algorithm in bytes.


Returns the size of the IV of the opened algorithm

  • « mcrypt_enc_get_block_size
  • mcrypt_enc_get_key_size »
  • PHP Manual
  • Mcrypt Funções
  • Returns the size of the IV of the opened algorithm

mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_enc_get_iv_size(resource $td): int

This function returns the size of the IV of the algorithm specified by the encryption descriptor in bytes. An IV is used in cbc, cfb and ofb modes, and in some algorithms in stream mode.

Parâmetros

td

The encryption descriptor.

Valor Retornado

Returns the size of the IV, or 0 if the IV is ignored by the algorithm.


Returns the maximum supported keysize of the opened mode

  • « mcrypt_enc_get_iv_size
  • mcrypt_enc_get_modes_name »
  • PHP Manual
  • Mcrypt Funções
  • Returns the maximum supported keysize of the opened mode

mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_enc_get_key_size(resource $td): int

Gets the maximum supported key size of the algorithm in bytes.

Parâmetros

td

The encryption descriptor.

Valor Retornado

Returns the maximum supported key size of the algorithm in bytes.


Returns the name of the opened mode

  • « mcrypt_enc_get_key_size
  • mcrypt_enc_get_supported_key_sizes »
  • PHP Manual
  • Mcrypt Funções
  • Returns the name of the opened mode

mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_modes_name — Returns the name of the opened mode

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_enc_get_modes_name(resource $td): string

This function returns the name of the mode.

Parâmetros

td

The encryption descriptor.

Valor Retornado

Returns the name as a string.

Exemplos

Exemplo #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";
?>

O exemplo acima produzirá:

CFB
ECB


Returns an array with the supported keysizes of the opened algorithm

  • « mcrypt_enc_get_modes_name
  • mcrypt_enc_is_block_algorithm_mode »
  • PHP Manual
  • Mcrypt Funções
  • Returns an array with the supported keysizes of the opened algorithm

mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_enc_get_supported_key_sizes(resource $td): array

Gets the supported key sizes of the opened algorithm.

Parâmetros

td

The encryption descriptor.

Valor Retornado

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.

Exemplos

Exemplo #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));
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}


Checks whether the encryption of the opened mode works on blocks

  • « mcrypt_enc_get_supported_key_sizes
  • mcrypt_enc_is_block_algorithm »
  • PHP Manual
  • Mcrypt Funções
  • Checks whether the encryption of the opened mode works on blocks

mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_algorithm_mode — Checks whether the encryption of the opened mode works on blocks

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_enc_is_block_algorithm_mode(resource $td): bool

Tells whether the algorithm of the opened mode works on blocks (e.g. false for stream, and true for cbc, cfb, ofb)..

Parâmetros

td

The encryption descriptor.

Valor Retornado

Returns true if the mode is for use with block algorithms, otherwise it returns false.


Checks whether the algorithm of the opened mode is a block algorithm

  • « mcrypt_enc_is_block_algorithm_mode
  • mcrypt_enc_is_block_mode »
  • PHP Manual
  • Mcrypt Funções
  • Checks whether the algorithm of the opened mode is a block algorithm

mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_algorithm — Checks whether the algorithm of the opened mode is a block algorithm

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_enc_is_block_algorithm(resource $td): bool

Tells whether the algorithm of the opened mode is a block algorithm.

Parâmetros

td

The encryption descriptor.

Valor Retornado

Returns true if the algorithm is a block algorithm or false if it is a stream one.


Checks whether the opened mode outputs blocks

  • « mcrypt_enc_is_block_algorithm
  • mcrypt_enc_self_test »
  • PHP Manual
  • Mcrypt Funções
  • Checks whether the opened mode outputs blocks

mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_mode — Checks whether the opened mode outputs blocks

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_enc_is_block_mode(resource $td): bool

Tells whether the opened mode outputs blocks (e.g. true for cbc and ecb, and false for cfb and stream).

Parâmetros

td

The encryption descriptor.

Valor Retornado

Returns true if the mode outputs blocks of bytes, or false if it outputs just bytes.


Runs a self test on the opened module

  • « mcrypt_enc_is_block_mode
  • mcrypt_encrypt »
  • PHP Manual
  • Mcrypt Funções
  • Runs a self test on the opened module

mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_self_test — Runs a self test on the opened module

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_enc_self_test(resource $td): int

This function runs the self test on the algorithm specified by the descriptor td.

Parâmetros

td

The encryption descriptor.

Valor Retornado

Returns 0 on success and a negative int on failure.


Encrypts plaintext with given parameters

  • « mcrypt_enc_self_test
  • mcrypt_generic_deinit »
  • PHP Manual
  • Mcrypt Funções
  • Encrypts plaintext with given parameters

mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_encrypt — Encrypts plaintext with given parameters

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_encrypt(
string $cipher,
string $key,
string $data,
string $mode,
string $iv = ?
): string|false

Encrypts the data and returns it.

Parâmetros

cipher

Uma das constantes MCRYPT_nome_da_cifra ou o nome do algoritmo como string.

key

The key with which the data will be encrypted. If the provided key size is not supported by the cipher, the function will emit a warning and return false

data

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 than the size of the data that was given by data.

mode

Uma das constantes MCRYPT_MODE_nome_do_modo ou uma das seguintes strings: "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

iv

Usado para a inicialização nos modos CBC, CFB, OFB e em alguns algoritmos no modo STREAM. Se o tamanho do IV fornecido não for suportado pelo modo de encadeamento ou nenhum IV for fornecido, mas o modo de encadeamento exigir um, a função emitirá um aviso e retornará false.

Valor Retornado

Returns the encrypted data as a string ou false em caso de falha.

Exemplos

Exemplo #1 mcrypt_encrypt() Example

<?php
# --- ENCRYPTION ---

# the key should be random binary, use scrypt, bcrypt or PBKDF2 to
# convert a string into a key
# key is specified using hexadecimal
$key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");

# show key size use either 16, 24 or 32 byte keys for AES-128, 192
# and 256 respectively
$key_size = strlen($key);
echo "Key size: " . $key_size . "\n";

$plaintext = "This string was AES-256 / CBC / ZeroBytePadding encrypted.";

# create a random IV to use with CBC encoding
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

# creates a cipher text compatible with AES (Rijndael block size = 128)
# to keep the text confidential
# only suitable for encoded input that never ends with value 00h
# (because of default zero padding)
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
$plaintext, MCRYPT_MODE_CBC, $iv);

# prepend the IV for it to be available for decryption
$ciphertext = $iv . $ciphertext;

# encode the resulting cipher text so it can be represented by a string
$ciphertext_base64 = base64_encode($ciphertext);

echo $ciphertext_base64 . "\n";

# === WARNING ===

# Resulting cipher text has no integrity or authenticity added
# and is not protected against padding oracle attacks.

# --- DECRYPTION ---

$ciphertext_dec = base64_decode($ciphertext_base64);

# retrieves the IV, iv_size should be created using mcrypt_get_iv_size()
$iv_dec = substr($ciphertext_dec, 0, $iv_size);

# retrieves the cipher text (everything except the $iv_size in the front)
$ciphertext_dec = substr($ciphertext_dec, $iv_size);

# may remove 00h valued characters from end of plain text
$plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
$ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);

echo $plaintext_dec . "\n";
?>

O exemplo acima produzirá:

Key size: 32
ENJW8mS2KaJoNB5E5CoSAAu0xARgsR1bdzFWpEn+poYw45q+73az5kYi4j+0haevext1dGrcW8Qi59txfCBV8BBj3bzRP3dFCp3CPQSJ8eU=
This string was AES-256 / CBC / ZeroBytePadding encrypted.

Veja Também

  • mcrypt_decrypt() - Decrypts crypttext with given parameters
  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used


This function deinitializes an encryption module

  • « mcrypt_encrypt
  • mcrypt_generic_init »
  • PHP Manual
  • Mcrypt Funções
  • This function deinitializes an encryption module

mcrypt_generic_deinit

(PHP 4 >= 4.0.7, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic_deinit — This function deinitializes an encryption module

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_generic_deinit(resource $td): bool

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.)

Parâmetros

td

The encryption descriptor.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption


This function initializes all buffers needed for encryption

  • « mcrypt_generic_deinit
  • mcrypt_generic »
  • PHP Manual
  • Mcrypt Funções
  • This function initializes all buffers needed for encryption

mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic_init — This function initializes all buffers needed for encryption

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_generic_init(resource $td, string $key, string $iv): int

You need to call this function before every call to mcrypt_generic() or mdecrypt_generic().

Parâmetros

td

The encryption descriptor.

key

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.

iv

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.

Valor Retornado

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. false is returned if incorrect parameters were passed.

Veja Também

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used


This function encrypts data

  • « mcrypt_generic_init
  • mcrypt_get_block_size »
  • PHP Manual
  • Mcrypt Funções
  • This function encrypts data

mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic — This function encrypts data

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_generic(resource $td, string $data): string

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 than 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 that 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.

Parâmetros

td

The encryption descriptor.

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.

data

The data to encrypt.

Valor Retornado

Returns the encrypted data.

Veja Também

  • mdecrypt_generic() - Decrypts data
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption
  • mcrypt_generic_deinit() - This function deinitializes an encryption module


Gets the block size of the specified cipher

  • « mcrypt_generic
  • mcrypt_get_cipher_name »
  • PHP Manual
  • Mcrypt Funções
  • Gets the block size of the specified cipher

mcrypt_get_block_size

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_block_size — Gets the block size of the specified cipher

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_get_block_size(int $cipher): int|false
mcrypt_get_block_size(string $cipher, string $mode): int|false

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_block_size() is used to get the size of a block of the specified cipher (in combination with an encryption mode).

It is more useful to use the mcrypt_enc_get_block_size() function as this uses the resource returned by mcrypt_module_open().

Parâmetros

cipher

Uma das constantes MCRYPT_nome_da_cifra ou o nome do algoritmo como string.

mode

Uma das constantes MCRYPT_MODE_nome_do_modo ou uma das seguintes strings: "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

Valor Retornado

Returns the algorithm block size in bytes ou false em caso de falha.

Exemplos

Exemplo #1 mcrypt_get_block_size() example

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x.

<?php

echo mcrypt_get_block_size('tripledes', 'ecb'); // 8

?>

Veja Também

  • mcrypt_get_key_size() - Gets the key size of the specified cipher
  • mcrypt_enc_get_block_size() - Returns the blocksize of the opened algorithm
  • mcrypt_encrypt() - Encrypts plaintext with given parameters


Gets the name of the specified cipher

  • « mcrypt_get_block_size
  • mcrypt_get_iv_size »
  • PHP Manual
  • Mcrypt Funções
  • Gets the name of the specified cipher

mcrypt_get_cipher_name

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_cipher_name — Gets the name of the specified cipher

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_get_cipher_name(int $cipher): string
mcrypt_get_cipher_name(string $cipher): string

mcrypt_get_cipher_name() is used to get the name of the specified cipher.

mcrypt_get_cipher_name() takes the cipher number as an argument (libmcrypt 2.2.x) or takes the cipher name as an argument (libmcrypt 2.4.x or higher) and returns the name of the cipher or false, if the cipher does not exist.

Parâmetros

cipher

Uma das constantes MCRYPT_nome_da_cifra ou o nome do algoritmo como string.

Valor Retornado

This function returns the name of the cipher or false if the cipher does not exist.

Exemplos

Exemplo #1 mcrypt_get_cipher_name() Example

<?php
$cipher = MCRYPT_TripleDES;

echo mcrypt_get_cipher_name($cipher);
?>

O exemplo acima produzirá:

3DES


Returns the size of the IV belonging to a specific cipher/mode combination

  • « mcrypt_get_cipher_name
  • mcrypt_get_key_size »
  • PHP Manual
  • Mcrypt Funções
  • Returns the size of the IV belonging to a specific cipher/mode combination

mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_get_iv_size(string $cipher, string $mode): int

Gets the size of the IV belonging to a specific cipher/mode combination.

It is more useful to use the mcrypt_enc_get_iv_size() function as this uses the resource returned by mcrypt_module_open().

Parâmetros

cipher

Uma das constantes MCRYPT_nome_da_cifra ou o nome do algoritmo como string.

mode

Uma das constantes MCRYPT_MODE_nome_do_modo ou uma das seguintes strings: "ecb", "cbc", "cfb", "ofb", "nofb" ou "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.

Valor Retornado

Returns the size of the Initialization Vector (IV) in bytes. On error the function returns false. If the IV is ignored in the specified cipher/mode combination zero is returned.

Exemplos

Exemplo #1 mcrypt_get_iv_size() Example

<?php
echo mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB) . "\n";

echo mcrypt_get_iv_size('des', 'ecb') . "\n";
?>

Veja Também

  • mcrypt_get_block_size() - Gets the block size of the specified cipher
  • mcrypt_enc_get_iv_size() - Returns the size of the IV of the opened algorithm
  • mcrypt_create_iv() - Creates an initialization vector (IV) from a random source


Gets the key size of the specified cipher

  • « mcrypt_get_iv_size
  • mcrypt_list_algorithms »
  • PHP Manual
  • Mcrypt Funções
  • Gets the key size of the specified cipher

mcrypt_get_key_size

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_key_size — Gets the key size of the specified cipher

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_get_key_size(int $cipher): int|false
mcrypt_get_key_size(string $cipher, string $mode): int|false

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_key_size() is used to get the size of a key of the specified cipher (in combination with an encryption mode).

It is more useful to use the mcrypt_enc_get_key_size() function as this uses the resource returned by mcrypt_module_open().

Parâmetros

cipher

Uma das constantes MCRYPT_nome_da_cifra ou o nome do algoritmo como string.

mode

Uma das constantes MCRYPT_MODE_nome_do_modo ou uma das seguintes strings: "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

Valor Retornado

Returns the maximum supported key size of the algorithm in bytes ou false em caso de falha.

Exemplos

Exemplo #1 mcrypt_get_key_size() Example

<?php
echo mcrypt_get_key_size('tripledes', 'ecb');
?>

The example above shows how to use this function when linked against libmcrypt 2.4.x or 2.5.x.

O exemplo acima produzirá:

24

Veja Também

  • mcrypt_get_block_size() - Gets the block size of the specified cipher
  • mcrypt_enc_get_key_size() - Returns the maximum supported keysize of the opened mode
  • mcrypt_encrypt() - Encrypts plaintext with given parameters


Gets an array of all supported ciphers

  • « mcrypt_get_key_size
  • mcrypt_list_modes »
  • PHP Manual
  • Mcrypt Funções
  • Gets an array of all supported ciphers

mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_list_algorithms — Gets an array of all supported ciphers

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_list_algorithms(string $lib_dir = ini_get("mcrypt.algorithms_dir")): array

Gets the list of all supported algorithms in the lib_dir parameter.

Parâmetros

lib_dir

Specifies the directory where all algorithms are located. If not specified, the value of the mcrypt.algorithms_dir php.ini directive is used.

Valor Retornado

Returns an array with all the supported algorithms.

Exemplos

Exemplo #1 mcrypt_list_algorithms() Example

<?php
$algorithms = mcrypt_list_algorithms();
print_r($algorithms);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => cast-128
    [1] => gost
    [2] => rijndael-128
    [3] => twofish
    [4] => arcfour
    [5] => cast-256
    [6] => loki97
    [7] => rijndael-192
    [8] => saferplus
    [9] => wake
    [10] => blowfish-compat
    [11] => des
    [12] => rijndael-256
    [13] => serpent
    [14] => xtea
    [15] => blowfish
    [16] => enigma
    [17] => rc2
    [18] => tripledes
)


Gets an array of all supported modes

  • « mcrypt_list_algorithms
  • mcrypt_module_close »
  • PHP Manual
  • Mcrypt Funções
  • Gets an array of all supported modes

mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_list_modes — Gets an array of all supported modes

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_list_modes(string $lib_dir = ini_get("mcrypt.modes_dir")): array

Gets the list of all supported modes in the lib_dir parameter.

Parâmetros

lib_dir

Specifies the directory where all modes are located. If not specified, the value of the mcrypt.modes_dir php.ini directive is used.

Valor Retornado

Returns an array with all the supported modes.

Exemplos

Exemplo #1 mcrypt_list_modes() Example

<?php
$modes = mcrypt_list_modes();

foreach ($modes as $mode) {
echo "$mode <br />\n";
}
?>

The example above will produce a list with all supported algorithms in the default mode directory. If it is not set with the mcrypt.modes_dir php.ini directive, the default directory of mcrypt is used (which is /usr/local/lib/libmcrypt).


Closes the mcrypt module

  • « mcrypt_list_modes
  • mcrypt_module_get_algo_block_size »
  • PHP Manual
  • Mcrypt Funções
  • Closes the mcrypt module

mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_close — Closes the mcrypt module

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_module_close(resource $td): bool

Closes the specified encryption handle.

Parâmetros

td

The encryption descriptor.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used


Returns the blocksize of the specified algorithm

  • « mcrypt_module_close
  • mcrypt_module_get_algo_key_size »
  • PHP Manual
  • Mcrypt Funções
  • Returns the blocksize of the specified algorithm

mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_algo_block_size — Returns the blocksize of the specified algorithm

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_module_get_algo_block_size(string $algorithm, string $lib_dir = ?): int

Gets the blocksize of the specified algorithm.

Parâmetros

algorithm

The algorithm name.

lib_dir

This optional parameter can contain the location where the mode module is on the system.

Valor Retornado

Returns the block size of the algorithm specified in bytes.


Returns the maximum supported keysize of the opened mode

  • « mcrypt_module_get_algo_block_size
  • mcrypt_module_get_supported_key_sizes »
  • PHP Manual
  • Mcrypt Funções
  • Returns the maximum supported keysize of the opened mode

mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_algo_key_size — Returns the maximum supported keysize of the opened mode

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_module_get_algo_key_size(string $algorithm, string $lib_dir = ?): int

Gets the maximum supported keysize of the opened mode.

Parâmetros

algorithm

The algorithm name.

lib_dir

This optional parameter can contain the location where the mode module is on the system.

Valor Retornado

This function returns the maximum supported key size of the algorithm specified in bytes.


Returns an array with the supported keysizes of the opened algorithm

  • « mcrypt_module_get_algo_key_size
  • mcrypt_module_is_block_algorithm_mode »
  • PHP Manual
  • Mcrypt Funções
  • Returns an array with the supported keysizes of the opened algorithm

mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_module_get_supported_key_sizes(string $algorithm, string $lib_dir = ?): array

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.

Parâmetros

algorithm

The algorithm to be used.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Valor Retornado

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.

Veja Também

  • mcrypt_enc_get_supported_key_sizes() - Returns an array with the supported keysizes of the opened algorithm


Returns if the specified module is a block algorithm or not

  • « mcrypt_module_get_supported_key_sizes
  • mcrypt_module_is_block_algorithm »
  • PHP Manual
  • Mcrypt Funções
  • Returns if the specified module is a block algorithm or not

mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_algorithm_mode — Returns if the specified module is a block algorithm or not

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_module_is_block_algorithm_mode(string $mode, string $lib_dir = ?): bool

This function returns true if the mode is for use with block algorithms, otherwise it returns false. (e.g. false for stream, and true for cbc, cfb, ofb).

Parâmetros

mode

The mode to check.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Valor Retornado

This function returns true if the mode is for use with block algorithms, otherwise it returns false. (e.g. false for stream, and true for cbc, cfb, ofb).


This function checks whether the specified algorithm is a block algorithm

  • « mcrypt_module_is_block_algorithm_mode
  • mcrypt_module_is_block_mode »
  • PHP Manual
  • Mcrypt Funções
  • This function checks whether the specified algorithm is a block algorithm

mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_algorithm — This function checks whether the specified algorithm is a block algorithm

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_module_is_block_algorithm(string $algorithm, string $lib_dir = ?): bool

This function returns true if the specified algorithm is a block algorithm, or false if it is a stream one.

Parâmetros

algorithm

The algorithm to check.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Valor Retornado

This function returns true if the specified algorithm is a block algorithm, or false if it is a stream one.


Returns if the specified mode outputs blocks or not

  • « mcrypt_module_is_block_algorithm
  • mcrypt_module_open »
  • PHP Manual
  • Mcrypt Funções
  • Returns if the specified mode outputs blocks or not

mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_mode — Returns if the specified mode outputs blocks or not

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_module_is_block_mode(string $mode, string $lib_dir = ?): bool

This function returns true if the mode outputs blocks of bytes or false if it outputs just bytes. (e.g. true for cbc and ecb, and false for cfb and stream).

Parâmetros

mode

Uma das constantes MCRYPT_MODE_nome_do_modo ou uma das seguintes strings: "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Valor Retornado

This function returns true if the mode outputs blocks of bytes or false if it outputs just bytes. (e.g. true for cbc and ecb, and false for cfb and stream).


Opens the module of the algorithm and the mode to be used

  • « mcrypt_module_is_block_mode
  • mcrypt_module_self_test »
  • PHP Manual
  • Mcrypt Funções
  • Opens the module of the algorithm and the mode to be used

mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_open — Opens the module of the algorithm and the mode to be used

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_module_open(
string $algorithm,
string $algorithm_directory,
string $mode,
string $mode_directory
): resource

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, e.g. "twofish" or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close().

Parâmetros

algorithm

Uma das constantes MCRYPT_nome_da_cifra ou o nome do algoritmo como string.

algorithm_directory

The algorithm_directory parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string (""), the value set by the mcrypt.algorithms_dir php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled into libmcrypt (usually /usr/local/lib/libmcrypt).

mode

Uma das constantes MCRYPT_MODE_nome_do_modo ou uma das seguintes strings: "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

mode_directory

The mode_directory parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string (""), the value set by the mcrypt.modes_dir php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled-in into libmcrypt (usually /usr/local/lib/libmcrypt).

Valor Retornado

Normally it returns an encryption descriptor, or false on error.

Exemplos

Exemplo #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 ECB 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.

Exemplo #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, use MCRYPT_RAND
* on Windows instead */
$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";
?>

Veja Também

  • mcrypt_module_close() - Closes the mcrypt module
  • mcrypt_generic() - This function encrypts data
  • mdecrypt_generic() - Decrypts data
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption
  • mcrypt_generic_deinit() - This function deinitializes an encryption module


This function runs a self test on the specified module

  • « mcrypt_module_open
  • mdecrypt_generic »
  • PHP Manual
  • Mcrypt Funções
  • This function runs a self test on the specified module

mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_self_test — This function runs a self test on the specified module

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mcrypt_module_self_test(string $algorithm, string $lib_dir = ?): bool

This function runs the self test on the algorithm specified.

Parâmetros

algorithm

Uma das constantes MCRYPT_nome_da_cifra ou o nome do algoritmo como string.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Valor Retornado

The function returns true if the self test succeeds, or false when it fails.

Exemplos

Exemplo #1 mcrypt_module_self_test() example

<?php
var_dump(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128)) . "\n";
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

O exemplo acima produzirá:

bool(true)
bool(false)


Decrypts data

  • « mcrypt_module_self_test
  • Mhash »
  • PHP Manual
  • Mcrypt Funções
  • Decrypts data

mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mdecrypt_generic — Decrypts data

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.1.0 e foi REMOVIDA a partir do PHP 7.2.0. O uso desta função é fortemente desencorajado.

Descrição

mdecrypt_generic(resource $td, string $data): string

This function decrypts data. Note that the length of the returned string can in fact be longer than the unencrypted string, due to the padding of the data.

Parâmetros

td

An encryption descriptor returned by mcrypt_module_open()

data

Encrypted data.

Valor Retornado

Returns decrypted string.

Exemplos

Exemplo #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 example above 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 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.

Veja Também

  • mcrypt_generic() - This function encrypts data
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption
  • mcrypt_generic_deinit() - This function deinitializes an encryption module


Mhash

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Funções da Mhash
    • mhash_count — Obtém o ID de hash mais alto disponível
    • mhash_get_block_size — Obtém o tamanho de bloco da hash especificada
    • mhash_get_hash_name — Obtém o nome da hash especificada
    • mhash_keygen_s2k — Gera uma chave
    • mhash — Computa a hash


Introdução

Essas funções são planejadas para trabalhar com » mhash. Mhash pode ser usada para criar somas de verificação, resumos de mensagens, códigos de autenticação de mensagens e mais.

Esta é uma interface para a biblioteca mhash. Mhash suporta uma grande variedade de algoritmos de hash como MD5, SHA1, GOST e muitos outros. Para uma lista completa das hashs suportadas, verifique a página de constantes. A regra geral é que o algoritmo de hash pode ser acessado a partir do PHP com MHASH_hashname. Por exemplo, para acessar o algoritmo TIGER, utiliza-se a constante MHASH_TIGER.

Nota:

Esta extensão está defasada em relação à Hash.

Nota:

A partir do PHP 7.0.0 a extensão Mhash está totalmente integrada à extensão Hash. Portanto, não é mais possível detectar o suporte a Mhash com a função extension_loaded(); use em seu lugar a função function_exists(). Adicionalmente, Mhash não é mais suportada por get_loaded_extensions() e recursos relacionados.


Dependências

Para usá-las, faça o download da distribuição do mhash em » seu site e siga as instruções de instalação inclusas.


Instalação

You need to compile PHP with the --with-mhash[=DIR] parameter to enable this extension. DIR is the mhash installation directory.

As of PHP 5.3.0, the mhash extension is emulated thru the Hash extension. This makes the mhash installation directory have no effect, and requires the hash extension enabled to make the mhash support available.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Aqui está uma lista de hashes que são atualmente suportadas por mhash. Se uma hash não está listada aqui, mas é listada na documentação do mhash como suportada, pode-se assumir seguramente que esta documentação está desatualizada.

  • MHASH_ADLER32
  • MHASH_CRC32
  • MHASH_CRC32B
  • MHASH_GOST
  • MHASH_HAVAL128
  • MHASH_HAVAL160
  • MHASH_HAVAL192
  • MHASH_HAVAL224
  • MHASH_HAVAL256
  • MHASH_MD2
  • MHASH_MD4
  • MHASH_MD5
  • MHASH_RIPEMD128
  • MHASH_RIPEMD256
  • MHASH_RIPEMD320
  • MHASH_SHA1
  • MHASH_SHA192
  • MHASH_SHA224
  • MHASH_SHA256
  • MHASH_SHA384
  • MHASH_SHA512
  • MHASH_SNEFRU128
  • MHASH_SNEFRU256
  • MHASH_TIGER
  • MHASH_TIGER128
  • MHASH_TIGER160
  • MHASH_WHIRLPOOL


Exemplos

Exemplo #1 Calcula o MD5 compiladodigest e hmac e imprimi como hex

<?php
$input = "what do ya want for nothing?";
$hash = mhash(MHASH_MD5, $input);
echo "The hash is " . bin2hex($hash) . "<br />\n";
$hash = mhash(MHASH_MD5, $input, "Jefe");
echo "The hmac is " . bin2hex($hash) . "<br />\n";
?>

O exemplo acima produzirá:

The hash is d03cb659cbf9192dcd066272249f8412
The hmac is 750c783e6ab0b503eaa86e310a5db738


Funções da Mhash

Índice

  • mhash_count — Obtém o ID de hash mais alto disponível
  • mhash_get_block_size — Obtém o tamanho de bloco da hash especificada
  • mhash_get_hash_name — Obtém o nome da hash especificada
  • mhash_keygen_s2k — Gera uma chave
  • mhash — Computa a hash


Obtém o ID de hash mais alto disponível

  • « Funções da Mhash
  • mhash_get_block_size »
  • PHP Manual
  • Funções da Mhash
  • Obtém o ID de hash mais alto disponível

mhash_count

(PHP 4, PHP 5, PHP 7, PHP 8)

mhash_count — Obtém o ID de hash mais alto disponível

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.1.0. O uso desta função é fortemente desencorajado.

Descrição

mhash_count(): int

Obtém o ID de hash mais alto disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o ID de hash mais alto disponível. Hashes são numeradas de 0 até este ID de hash.

Registro de Alterações

Versão | Descrição
8.1.0 | Esta função está defasada. Use as funções hash_*() em seu lugar.

Exemplos

Exemplo #1 Listando todas as hashes

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
echo sprintf("O tamanho de bloco de %s é %d\n",
mhash_get_hash_name($i),
mhash_get_block_size($i));
}
?>


Obtém o tamanho de bloco da hash especificada

  • « mhash_count
  • mhash_get_hash_name »
  • PHP Manual
  • Funções da Mhash
  • Obtém o tamanho de bloco da hash especificada

mhash_get_block_size

(PHP 4, PHP 5, PHP 7, PHP 8)

mhash_get_block_size — Obtém o tamanho de bloco da hash especificada

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.1.0. O uso desta função é fortemente desencorajado.

Descrição

mhash_get_block_size(int $algo): int|false

Obtém o tamanho de um bloco da hash informada em algo.

Parâmetros

algo

O ID da hash. Uma das constantes MHASH_hashname.

Valor Retornado

Retorna o tamanho em bytes ou false, se a hash em algo não existir.

Registro de Alterações

Versão | Descrição
8.1.0 | Esta função está defasada. Use as funções hash_*() em seu lugar.

Exemplos

Exemplo #1 Exemplo de mhash_get_block_size()

<?php

echo mhash_get_block_size(MHASH_MD5); // 16

?>


Obtém o nome da hash especificada

  • « mhash_get_block_size
  • mhash_keygen_s2k »
  • PHP Manual
  • Funções da Mhash
  • Obtém o nome da hash especificada

mhash_get_hash_name

(PHP 4, PHP 5, PHP 7, PHP 8)

mhash_get_hash_name — Obtém o nome da hash especificada

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.1.0. O uso desta função é fortemente desencorajado.

Descrição

mhash_get_hash_name(int $algo): string|false

Obtém o nome da hash especificada em algo.

Parâmetros

algo

O ID da hash. Uma das constantes MHASH_hashname.

Valor Retornado

Retorna o nome da hash ou false, se a hash não existir.

Registro de Alterações

Versão | Descrição
8.1.0 | Esta função está defasada. Use as funções hash_*() em seu lugar.

Exemplos

Exemplo #1 Exemplo de mhash_get_hash_name()

<?php

echo mhash_get_hash_name(MHASH_MD5); // MD5

?>


Gera uma chave

  • « mhash_get_hash_name
  • mhash »
  • PHP Manual
  • Funções da Mhash
  • Gera uma chave

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

mhash_keygen_s2k — Gera uma chave

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.1.0. O uso desta função é fortemente desencorajado.

Descrição

mhash_keygen_s2k(
int $algo,
string $password,
string $salt,
int $length
): string|false

Gera um chave de acordo com o parâmetro algo a partir de uma senha de usuário informada em password.

Este é o algoritmo Salted S2K como especificado no documento OpenPGP (» RFC 2440).

Tenha em mente que senhas fornecidas pelos usuários não são adequadas para uso como chaves em algoritmos criptográficos, pois os usuários normalmente escolhem chaves que podem ser escritas no teclado. Estas senhas usam somente 6 a 7 bits por caractere (ou menos). É altamente recomendado usar algum tipo de transformação (como esta função) na chave informada pelo usuário.

Parâmetros

algo

O ID da hash usada para criar a chave. Um das constantes MHASH_hashname.

password

Uma senha fornecida pelo usuário.

salt

Deve ser diferente e aleatório o suficiente para cada chave gerada de forma que sejam criadas chaves diferentes. Como salt precisa ser conhecido quando se verifica as chaves, é uma boa prática concatenar a chave a ele. Salt tem um comprimento fixo de 8 bytes e será completado com zeros forem fornecidos menos bytes.

length

O tamanho da chave, em bytes.

Valor Retornado

Retorna a chave gerada como uma string, ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.1.0 | Esta função está defasada. Use as funções hash_*() em seu lugar.


Computa a hash

  • « mhash_keygen_s2k
  • OpenSSL »
  • PHP Manual
  • Funções da Mhash
  • Computa a hash

mhash

(PHP 4, PHP 5, PHP 7, PHP 8)

mhash — Computa a hash

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.1.0. O uso desta função é fortemente desencorajado.

Descrição

mhash(int $algo, string $data, ?string $key = null): string|false

mhash() aplica a função hash especificada por algo ao parâmetro data.

Parâmetros

algo

O ID da hash. Uma das constantes MHASH_hashname.

data

A entrada do usuário, como uma string.

key

Se especificado, a função irá retornar o HMAC resultante. HMAC é o hashing com chave para autenticações de mensagens, ou simplesmente um resumo de mensagem que depende da chave especificada. Nem todos os algoritmos suportados em mhash podem ser usados em modo HMAC.

Valor Retornado

Retorna o hash resultante (também chamado resumo ou digest) ou HMAC como uma string, ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.1.0 | Esta função está defasada. Use as funções hash_*() em seu lugar.
8.0.0 | key is now nullable.


OpenSSL

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
    • Purpose checking flags
    • Padding flags for asymmetric encryption
    • Key types
    • PKCS7 Flags/Constants
    • CMS Flags/Constants
    • Signature Algorithms
    • Ciphers
    • Version constants
    • Server Name Indication constants
    • Other Constants
  • Key/Certificate parameters
  • Certificate Verification
  • OpenSSL Funções
    • openssl_cipher_iv_length — Gets the cipher iv length
    • openssl_cipher_key_length — Gets the cipher key length
    • openssl_cms_decrypt — Decrypt a CMS message
    • openssl_cms_encrypt — Encrypt a CMS message
    • openssl_cms_read — Export the CMS file to an array of PEM certificates
    • openssl_cms_sign — Sign a file
    • openssl_cms_verify — Verify a CMS signature
    • openssl_csr_export_to_file — Exports a CSR to a file
    • openssl_csr_export — Exports a CSR as a string
    • openssl_csr_get_public_key — Returns the public key of a CSR
    • openssl_csr_get_subject — Returns the subject of a CSR
    • openssl_csr_new — Generates a CSR
    • openssl_csr_sign — Sign a CSR with another certificate (or itself) and generate a certificate
    • openssl_decrypt — Decrypts data
    • openssl_dh_compute_key — Computes shared secret for public value of remote DH public key and local DH key
    • openssl_digest — Computes a digest
    • openssl_encrypt — Encrypts data
    • openssl_error_string — Return openSSL error message
    • openssl_free_key — Free key resource
    • openssl_get_cert_locations — Retrieve the available certificate locations
    • openssl_get_cipher_methods — Gets available cipher methods
    • openssl_get_curve_names — Gets list of available curve names for ECC
    • openssl_get_md_methods — Gets available digest methods
    • openssl_get_privatekey — Sinônimo de openssl_pkey_get_private
    • openssl_get_publickey — Sinônimo de openssl_pkey_get_public
    • openssl_open — Open sealed data
    • openssl_pbkdf2 — Generates a PKCS5 v2 PBKDF2 string
    • openssl_pkcs12_export_to_file — Exports a PKCS#12 Compatible Certificate Store File
    • openssl_pkcs12_export — Exports a PKCS#12 Compatible Certificate Store File to variable
    • openssl_pkcs12_read — Parse a PKCS#12 Certificate Store into an array
    • openssl_pkcs7_decrypt — Decrypts an S/MIME encrypted message
    • openssl_pkcs7_encrypt — Encrypt an S/MIME message
    • openssl_pkcs7_read — Export the PKCS7 file to an array of PEM certificates
    • openssl_pkcs7_sign — Sign an S/MIME message
    • openssl_pkcs7_verify — Verifies the signature of an S/MIME signed message
    • openssl_pkey_derive — Computes shared secret for public value of remote and local DH or ECDH key
    • 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_free — Frees a private key
    • openssl_pkey_get_details — Returns an array with the key details
    • 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_random_pseudo_bytes — Generate a pseudo-random string of bytes
    • openssl_seal — Seal (encrypt) data
    • openssl_sign — Generate signature
    • openssl_spki_export_challenge — Exports the challenge associated with a signed public key and challenge
    • openssl_spki_export — Exports a valid PEM formatted public key signed public key and challenge
    • openssl_spki_new — Generate a new signed public key and challenge
    • openssl_spki_verify — Verifies a signed public key and challenge
    • 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_fingerprint — Calculates the fingerprint, or digest, of a given X.509 certificate
    • 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 an object for it
    • openssl_x509_verify — Verifies digital signature of x509 certificate against a public key
  • OpenSSLCertificate — The OpenSSLCertificate class
  • OpenSSLCertificateSigningRequest — The OpenSSLCertificateSigningRequest class
  • OpenSSLAsymmetricKey — The OpenSSLAsymmetricKey class


Introdução

This extension binds functions of » OpenSSL library for symmetric and asymmetric encryption and decryption, PBKDF2, PKCS7, PKCS12, X509 and other crypto operations. In addition to that it provides implementation of TLS streams.

OpenSSL offers many features that this module currently doesn't support. Some of these may be added in the future.


Dependências

In order to use the OpenSSL functions you need to install the » OpenSSL library. PHP 7.0 requires OpenSSL >= 0.9.8, < 1.2. PHP 7.1-8.0 requires OpenSSL >= 1.0.1, < 3.0. PHP >= 8.1 requires OpenSSL >= 1.0.2, < 4.0.

Aviso

You are strongly encouraged to use a maintained OpenSSL version, otherwise your web server could be vulnerable to attack.


Instalação

To use PHP's OpenSSL support you must also compile PHP --with-openssl.

The OpenSSL library also has additional requirements for normal operation at run-time. Most notably, OpenSSL requires access to a random or pseudo-random number generator; on most Unix and Unix-like platforms (including Linux), this means that it must have access to a /dev/urandom or /dev/random device.

The configure option --with-system-ciphers is available which causes PHP to use the system cipher list instead of a hard-coded default.

Nota: Note to Win32 Users

Para que esta extensão funcione, existem arquivos DLL que devem estar disponíveis no PATH do sistema Windows. Para saber como fazer isso, veja a FAQ intitulada "Como eu adiciono o meu diretório PHP ao PATH do Windows". Embora copiar arquivos DLL da pasta do PHP para o diretório system do Windows também funcione (porque o diretório system está, por padrão, no PATH do sistema), isso não é recomendado. Esta extensão requer que os seguintes arquivos estejam no PATH: libeay32.dll, or, as of OpenSSL 1.1, libcrypto-*.dll

Additionally, if you are planning to use the key generation and certificate signing functions, you will need to install a valid openssl.cnf file on your system. We include a sample configuration file in our win32 binary distributions, in the extras/ssl directory.

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:\Program Files\Common Files\SSL\openssl.cnf (x64) or C:\Program Files (x86)\Common Files\SSL\openssl.cnf (x86), or, prior to PHP 7.4.0, C:\usr\local\ssl\openssl.cnf.

In your installation, you need to decide whether to install the configuration file in the default path 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 options of the functions that require a configuration file.
Cuidado

Ensure that non-privileged users are not allowed to modify openssl.cnf.

Registro de Alterações

Versão | Descrição
7.4.0 | The --with-openssl[=DIR] doesn't accept a directory argument anymore in favor of setting the pkg-config variable PKG_CONFIG_PATH to OpenSSL location, or by specifying the OPENSSL_LIBS and OPENSSL_CFLAGS variables.
7.4.0 | The OpenSSL default config path has been changed from C:\usr\local\ssl to C:\Program Files\Common Files\SSL and C:\Program Files (x86)\Common Files\SSL, respectively.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

openssl Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
openssl.cafile | "" | INI_PERDIR |
openssl.capath | "" | INI_PERDIR |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

openssl.cafile string

Location of Certificate Authority file on local filesystem which should be used with the verify_peer context option to authenticate the identity of the remote peer.

openssl.capath string

If cafile is not specified or if the certificate is not found there, the directory pointed to by capath is searched for a suitable certificate. capath must be a correctly hashed certificate directory.

See also the SSL stream context options.


Tipos de Recurso

Prior to PHP 8.0.0, there were 3 resource types defined in the OpenSSL module:

  • OpenSSL key
  • OpenSSL X.509
  • OpenSSL X.509 CSR


Constantes pré-definidas

Índice

  • Purpose checking flags
  • Padding flags for asymmetric encryption
  • Key types
  • PKCS7 Flags/Constants
  • CMS Flags/Constants
  • Signature Algorithms
  • Ciphers
  • Version constants
  • Server Name Indication constants
  • Other Constants

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.


Purpose checking flags

X509_PURPOSE_SSL_CLIENT (int)
X509_PURPOSE_SSL_SERVER (int)
X509_PURPOSE_NS_SSL_SERVER (int)
X509_PURPOSE_SMIME_SIGN (int)
X509_PURPOSE_SMIME_ENCRYPT (int)
X509_PURPOSE_CRL_SIGN (int)
X509_PURPOSE_ANY (int)


Padding flags for asymmetric encryption

OPENSSL_PKCS1_PADDING (int)
OPENSSL_SSLV23_PADDING (int)
OPENSSL_NO_PADDING (int)
OPENSSL_PKCS1_OAEP_PADDING (int)


Key types

OPENSSL_KEYTYPE_RSA (int)
OPENSSL_KEYTYPE_DSA (int)
OPENSSL_KEYTYPE_DH (int)
OPENSSL_KEYTYPE_EC (int)
This constant is only available when PHP is compiled with OpenSSL 0.9.8+.


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:

PKCS7 CONSTANTS
Constant | Description
PKCS7_TEXT (int) | 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 (int) | 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 option is present, no translation occurs. This is useful when handling binary data which may not be in MIME format.
PKCS7_NOINTERN (int) | 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 untrusted_certificates_filename parameter of openssl_pkcs7_verify() are used. The supplied certificates can still be used as untrusted CAs however.
PKCS7_NOVERIFY (int) | Do not verify the signers certificate of a signed message.
PKCS7_NOCHAIN (int) | Do not chain verification of signers certificates: that is don't use the certificates in the signed message as untrusted CAs.
PKCS7_NOCERTS (int) | 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 untrusted_certificates_filename to openssl_pkcs7_verify() for example).
PKCS7_NOATTR (int) | 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 (int) | When signing a message, use cleartext signing with the MIME type "multipart/signed". This is the default if you do not specify any flags to openssl_pkcs7_sign(). 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 (int) | Don't try and verify the signatures on a message
PKCS7_NOOLDMIMETYPE (int) | Available as of PHP 8.3.0. Sets the content-type to application/pkcs7-mime instead of application/x-pkcs7-mime to encrypt a message.


CMS Flags/Constants

The CMS functions make use of flags which are specified using a bitfield which can include one or more of the following values:

CMS CONSTANTS
Constant | Description
OPENSSL_CMS_TEXT (int) | 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.
OPENSSL_CMS_BINARY (int) | Normally the input message is converted to "canonical" format which is effectively using CR and LF as end of line: as required by the CMS specification. When this option is present, no translation occurs. This is useful when handling binary data which may not be in CMS format.
OPENSSL_CMS_NOINTERN (int) | 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 untrusted_certificates_filename parameter of openssl_cms_verify() are used. The supplied certificates can still be used as untrusted CAs however.
OPENSSL_CMS_NOVERIFY (int) | Do not verify the signers certificate of a signed message.
OPENSSL_CMS_NOCERTS (int) | 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 untrusted_certificates_filename to openssl_cms_verify() for example).
OPENSSL_CMS_NOATTR (int) | 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.
OPENSSL_CMS_DETACHED (int) | When signing a message, use cleartext signing with the MIME type "multipart/signed". This is the default if you do not specify any flags to openssl_cms_sign(). 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.
OPENSSL_CMS_NOSIGS (int) | Don't try and verify the signatures on a message
OPENSSL_CMS_OLDMIMETYPE (int) | Available as of PHP 8.3.0. Sets the content-type to application/x-pkcs7-mime instead of application/pkcs7-mime to encrypt a message.


Signature Algorithms

OPENSSL_ALGO_DSS1 (int)
OPENSSL_ALGO_SHA1 (int)
Used as default algorithm by openssl_sign() and openssl_verify().
OPENSSL_ALGO_SHA224 (int)
OPENSSL_ALGO_SHA256 (int)
OPENSSL_ALGO_SHA384 (int)
OPENSSL_ALGO_SHA512 (int)
OPENSSL_ALGO_RMD160 (int)
OPENSSL_ALGO_MD5 (int)
OPENSSL_ALGO_MD4 (int)
OPENSSL_ALGO_MD2 (int)
This constant is only available if PHP is compiled with MD2 support. This requires passing in the -DHAVE_OPENSSL_MD2_H CFLAG when compiling PHP, and enable-md2 when compiling OpenSSL 1.0.0+.


Ciphers

OPENSSL_CIPHER_RC2_40 (int)
OPENSSL_CIPHER_RC2_128 (int)
OPENSSL_CIPHER_RC2_64 (int)
OPENSSL_CIPHER_DES (int)
OPENSSL_CIPHER_3DES (int)
OPENSSL_CIPHER_AES_128_CBC (int)
OPENSSL_CIPHER_AES_192_CBC (int)
OPENSSL_CIPHER_AES_256_CBC (int)


  • « Ciphers
  • Server Name Indication constants »
  • PHP Manual
  • Constantes pré-definidas
  • Version constants

Version constants

OPENSSL_VERSION_TEXT (string)
OPENSSL_VERSION_NUMBER (int)


Server Name Indication constants

OPENSSL_TLSEXT_SERVER_NAME (int)
Whether SNI support is available or not.

Nota:

This constant requires PHP to be built with OpenSSL 0.9.8j or greater.


Other Constants

OPENSSL_RAW_DATA (int)
If OPENSSL_RAW_DATA is set in the openssl_encrypt() or openssl_decrypt(), the returned data is returned as-is. When it is not specified, Base64 encoded data is returned to the caller.
OPENSSL_ZERO_PADDING (int)
By default encryption operations are padded using standard block padding and the padding is checked and removed when decrypting. If OPENSSL_ZERO_PADDING is set in the openssl_encrypt() or openssl_decrypt() options then no padding is performed, the total amount of data encrypted or decrypted must then be a multiple of the block size or an error will occur.
OPENSSL_ENCODING_SMIME (int)
Indicates that encoding is S/MIME.
OPENSSL_ENCODING_DER (int)
Indicates that encoding is DER.
OPENSSL_ENCODING_PEM (int)
Indicates that encoding is PEM.


Key/Certificate parameters

Quite a few of the openssl functions require a key or a certificate parameter. Following methods may be used to get them:

  • Certificates

    1. An OpenSSLCertificate instance (or prior to PHP 8.0.0, a resource of type OpenSSL X.509) 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, may start with -----BEGIN CERTIFICATE-----

  • Certificate Signing Requests (CSRs)

    1. An OpenSSLCertificateSigningRequest instance (or prior to PHP 8.0.0, a resource of type OpenSSL X.509 CSR) returned from openssl_csr_new()
    2. A string having the format file://path/to/csr.pem; the named file must contain a PEM encoded CSR
    3. A string containing the content of a CSR, PEM encoded, may start with -----BEGIN CERTIFICATE REQUEST-----

  • Public/Private Keys

    1. An OpenSSLAsymmetricKey instance (or prior to PHP 8.0.0, a resource of type OpenSSL key) returned from openssl_get_publickey() or openssl_get_privatekey()
    2. For public keys only: an OpenSSLCertificate instance (or prior to PHP 8.0.0, a resource of type OpenSSL X.509)
    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, may start with -----BEGIN PUBLIC KEY-----
    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 ca_info 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.


OpenSSL Funções

Índice

  • openssl_cipher_iv_length — Gets the cipher iv length
  • openssl_cipher_key_length — Gets the cipher key length
  • openssl_cms_decrypt — Decrypt a CMS message
  • openssl_cms_encrypt — Encrypt a CMS message
  • openssl_cms_read — Export the CMS file to an array of PEM certificates
  • openssl_cms_sign — Sign a file
  • openssl_cms_verify — Verify a CMS signature
  • openssl_csr_export_to_file — Exports a CSR to a file
  • openssl_csr_export — Exports a CSR as a string
  • openssl_csr_get_public_key — Returns the public key of a CSR
  • openssl_csr_get_subject — Returns the subject of a CSR
  • openssl_csr_new — Generates a CSR
  • openssl_csr_sign — Sign a CSR with another certificate (or itself) and generate a certificate
  • openssl_decrypt — Decrypts data
  • openssl_dh_compute_key — Computes shared secret for public value of remote DH public key and local DH key
  • openssl_digest — Computes a digest
  • openssl_encrypt — Encrypts data
  • openssl_error_string — Return openSSL error message
  • openssl_free_key — Free key resource
  • openssl_get_cert_locations — Retrieve the available certificate locations
  • openssl_get_cipher_methods — Gets available cipher methods
  • openssl_get_curve_names — Gets list of available curve names for ECC
  • openssl_get_md_methods — Gets available digest methods
  • openssl_get_privatekey — Sinônimo de openssl_pkey_get_private
  • openssl_get_publickey — Sinônimo de openssl_pkey_get_public
  • openssl_open — Open sealed data
  • openssl_pbkdf2 — Generates a PKCS5 v2 PBKDF2 string
  • openssl_pkcs12_export_to_file — Exports a PKCS#12 Compatible Certificate Store File
  • openssl_pkcs12_export — Exports a PKCS#12 Compatible Certificate Store File to variable
  • openssl_pkcs12_read — Parse a PKCS#12 Certificate Store into an array
  • openssl_pkcs7_decrypt — Decrypts an S/MIME encrypted message
  • openssl_pkcs7_encrypt — Encrypt an S/MIME message
  • openssl_pkcs7_read — Export the PKCS7 file to an array of PEM certificates
  • openssl_pkcs7_sign — Sign an S/MIME message
  • openssl_pkcs7_verify — Verifies the signature of an S/MIME signed message
  • openssl_pkey_derive — Computes shared secret for public value of remote and local DH or ECDH key
  • 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_free — Frees a private key
  • openssl_pkey_get_details — Returns an array with the key details
  • 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_random_pseudo_bytes — Generate a pseudo-random string of bytes
  • openssl_seal — Seal (encrypt) data
  • openssl_sign — Generate signature
  • openssl_spki_export_challenge — Exports the challenge associated with a signed public key and challenge
  • openssl_spki_export — Exports a valid PEM formatted public key signed public key and challenge
  • openssl_spki_new — Generate a new signed public key and challenge
  • openssl_spki_verify — Verifies a signed public key and challenge
  • 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_fingerprint — Calculates the fingerprint, or digest, of a given X.509 certificate
  • 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 an object for it
  • openssl_x509_verify — Verifies digital signature of x509 certificate against a public key


Gets the cipher iv length

  • « OpenSSL Funções
  • openssl_cipher_key_length »
  • PHP Manual
  • OpenSSL Funções
  • Gets the cipher iv length

openssl_cipher_iv_length

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

openssl_cipher_iv_length — Gets the cipher iv length

Descrição

openssl_cipher_iv_length(string $cipher_algo): int|false

Gets the cipher initialization vector (iv) length.

Parâmetros

cipher_algo

The cipher method, see openssl_get_cipher_methods() for a list of potential values.

Valor Retornado

Returns the cipher length on success, or false on failure.

Erros/Exceções

Emits an E_WARNING level error when the cipher algorithm is unknown.

Exemplos

Exemplo #1 openssl_cipher_iv_length() example

<?php
$method = 'AES-128-CBC';
$ivlen = openssl_cipher_iv_length($method);

echo $ivlen;
?>

O exemplo acima produzirá algo semelhante a:

16


Gets the cipher key length

  • « openssl_cipher_iv_length
  • openssl_cms_decrypt »
  • PHP Manual
  • OpenSSL Funções
  • Gets the cipher key length

openssl_cipher_key_length

(PHP 8 >= 8.2.0)

openssl_cipher_key_length — Gets the cipher key length

Descrição

openssl_cipher_key_length(string $cipher_algo): int|false

Gets the cipher key length.

Parâmetros

cipher_algo

The cipher method, see openssl_get_cipher_methods() for a list of potential values.

Valor Retornado

Returns the cipher length on success, ou false em caso de falha.

Erros/Exceções

Emits an E_WARNING level error when the cipher algorithm is unknown.

Exemplos

Exemplo #1 openssl_cipher_key_length() example

<?php
$method = 'AES-128-CBC';

var_dump(openssl_cipher_key_length($method));
?>

O exemplo acima produzirá algo semelhante a:

int(16)


Decrypt a CMS message

  • « openssl_cipher_key_length
  • openssl_cms_encrypt »
  • PHP Manual
  • OpenSSL Funções
  • Decrypt a CMS message

openssl_cms_decrypt

(PHP 8)

openssl_cms_decrypt — Decrypt a CMS message

Descrição

openssl_cms_decrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key = null,
int $encoding = OPENSSL_ENCODING_SMIME
): bool

Decrypts a CMS message.

Parâmetros

input_filename

The name of a file containing encrypted content.

output_filename

The name of the file to deposit the decrypted content.

certificate

The name of the file containing a certificate of the recipient.

private_key

The name of the file containing a PKCS#8 key.

encoding

The encoding of the input file. One of OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER or OPENSSL_ENCODING_PEM.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Encrypt a CMS message

  • « openssl_cms_decrypt
  • openssl_cms_read »
  • PHP Manual
  • OpenSSL Funções
  • Encrypt a CMS message

openssl_cms_encrypt

(PHP 8)

openssl_cms_encrypt — Encrypt a CMS message

Descrição

openssl_cms_encrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|array|string $certificate,
?array $headers,
int $flags = 0,
int $encoding = OPENSSL_ENCODING_SMIME,
int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC
): bool

This function encrypts content to one or more recipients, based on the certificates that are passed to it.

Parâmetros

input_filename

The file to be encrypted.

output_filename

The output file.

certificate

Recipients to encrypt to.

headers

Headers to include when S/MIME is used.

flags

Flags to be passed to CMS_sign.

encoding

An encoding to output. One of OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER or OPENSSL_ENCODING_PEM.

cipher_algo

A cypher to use.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | The default cipher algorithm (cipher_algo) is now AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Previously, PKCS7/CMS was used (OPENSSL_CIPHER_RC2_40).


Export the CMS file to an array of PEM certificates

  • « openssl_cms_encrypt
  • openssl_cms_sign »
  • PHP Manual
  • OpenSSL Funções
  • Export the CMS file to an array of PEM certificates

openssl_cms_read

(PHP 8)

openssl_cms_read — Export the CMS file to an array of PEM certificates

Descrição

openssl_cms_read(string $input_filename, array &$certificates): bool

Performs the exact analog to openssl_pkcs7_read().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

input_filename

certificates

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sign a file

  • « openssl_cms_read
  • openssl_cms_verify »
  • PHP Manual
  • OpenSSL Funções
  • Sign a file

openssl_cms_sign

(PHP 8)

openssl_cms_sign — Sign a file

Descrição

openssl_cms_sign(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
?array $headers,
int $flags = 0,
int $encoding = OPENSSL_ENCODING_SMIME,
?string $untrusted_certificates_filename = null
): bool

This function signs a file with an X.509 certificate and key.

Parâmetros

input_filename

The name of the file to be signed.

output_filename

The name of the file to deposit the results.

certificate

The signing certificate. See Key/Certificate parameters for a list of valid values.

private_key

The key associated with certificate. See Key/Certificate parameters for a list of valid values.

headers

An array of headers to be included in S/MIME output.

flags

Flags to be passed to cms_sign().

encoding

The encoding of the output file. One of OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER or OPENSSL_ENCODING_PEM.

untrusted_certificates_filename

Intermediate certificates to be included in the signature.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 openssl_cms_sign() example

<?php

openssl_cms_sign('input.txt', 'output.txt', 'file://cert.pem', 'file://privkey.pem', null, OPENSSL_CMS_BINARY, OPENSSL_ENCODING_DER, 'chain.pem');
?>


Verify a CMS signature

  • « openssl_cms_sign
  • openssl_csr_export_to_file »
  • PHP Manual
  • OpenSSL Funções
  • Verify a CMS signature

openssl_cms_verify

(PHP 8)

openssl_cms_verify — Verify a CMS signature

Descrição

openssl_cms_verify(
string $input_filename,
int $flags = 0,
?string $certificates = null,
array $ca_info = [],
?string $untrusted_certificates_filename = null,
?string $content = null,
?string $pk7 = null,
?string $sigfile = null,
int $encoding = OPENSSL_ENCODING_SMIME
): bool

This function verifies a CMS signature, either attached or detached, with the specified encoding.

Parâmetros

input_filename

The input file.

flags

Flags to pass to cms_verify().

certificates

A file with the signer certificate and optionally intermediate certificates.

ca_info

An array containing self-signed certificate authority certificates.

untrusted_certificates_filename

A file containing additional intermediate certificates.

content

A file pointing to the content when signatures are detached.

pk7

sigfile

A file to save the signature to.

encoding

The encoding of the input file. One of OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER or OPENSSL_ENCODING_PEM.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Exports a CSR to a file

  • « openssl_cms_verify
  • openssl_csr_export »
  • PHP Manual
  • OpenSSL Funções
  • Exports a CSR to a file

openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_export_to_file — Exports a CSR to a file

Descrição

openssl_csr_export_to_file(OpenSSLCertificateSigningRequest|string $csr, string $output_filename, bool $no_text = true): bool

openssl_csr_export_to_file() takes the Certificate Signing Request represented by csr and saves it in PEM format into the file named by output_filename.

Parâmetros

csr

Consulte Parâmetros CSR para obter uma lista de valores válidos.

output_filename

Path to the output file.

no_text

O parâmetro opcional notext afeta a verbosidade da saída; se for false, então informações adicionais legíveis para humanos serão incluídas na saída. O valor padrão de notext é true.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.

Exemplos

Exemplo #1 openssl_csr_export_to_file() example

<?php
$subject = array(
"commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha384') );
openssl_pkey_export_to_file($private_key, 'example-priv.key');
// Along with the subject, the CSR contains the public key corresponding to the private key
openssl_csr_export_to_file($csr, 'example-csr.pem');
?>

Veja Também

  • 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


Exports a CSR as a string

  • « openssl_csr_export_to_file
  • openssl_csr_get_public_key »
  • PHP Manual
  • OpenSSL Funções
  • Exports a CSR as a string

openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_export — Exports a CSR as a string

Descrição

openssl_csr_export(OpenSSLCertificateSigningRequest|string $csr, string &$output, bool $no_text = true): bool

openssl_csr_export() takes the Certificate Signing Request represented by csr and stores it in PEM format in output, which is passed by reference.

Parâmetros

csr

Consulte Parâmetros CSR para obter uma lista de valores válidos.

output

on success, this string will contain the PEM encoded CSR

no_text

O parâmetro opcional notext afeta a verbosidade da saída; se for false, então informações adicionais legíveis para humanos serão incluídas na saída. O valor padrão de notext é true.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.

Exemplos

Exemplo #1 openssl_csr_export() example

<?php
$subject = array(
"commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
'digest_alg' => 'sha256WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $private_key, $configargs);
openssl_csr_export($csr, $csr_string);
echo $csr_string;
?>

Veja Também

  • openssl_csr_export_to_file() - Exports a CSR to a file
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Returns the public key of a CSR

  • « openssl_csr_export
  • openssl_csr_get_subject »
  • PHP Manual
  • OpenSSL Funções
  • Returns the public key of a CSR

openssl_csr_get_public_key

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

openssl_csr_get_public_key — Returns the public key of a CSR

Descrição

openssl_csr_get_public_key(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): OpenSSLAsymmetricKey|false

openssl_csr_get_public_key() extracts the public key from csr and prepares it for use by other functions.

Parâmetros

csr

Consulte Parâmetros CSR para obter uma lista de valores válidos.

short_names
Aviso

This parameter is ignored

Valor Retornado

Returns an OpenSSLAsymmetricKey on success, or false on error.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
8.0.0 | csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.

Exemplos

Exemplo #1 openssl_csr_get_public_key() example

<?php
$subject = array(
"commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha256') );
$public_key = openssl_csr_get_public_key($csr);
$info = openssl_pkey_get_details($public_key);
echo $info['key'];
?>

Veja Também

  • openssl_csr_get_subject() - Returns the subject of a CSR
  • openssl_csr_new() - Generates a CSR
  • openssl_pkey_get_details() - Returns an array with the key details
  • 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


Returns the subject of a CSR

  • « openssl_csr_get_public_key
  • openssl_csr_new »
  • PHP Manual
  • OpenSSL Funções
  • Returns the subject of a CSR

openssl_csr_get_subject

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

openssl_csr_get_subject — Returns the subject of a CSR

Descrição

openssl_csr_get_subject(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): array|false

openssl_csr_get_subject() returns subject distinguished name information encoded in the csr including fields commonName (CN), organizationName (O), countryName (C) etc.

Parâmetros

csr

Consulte Parâmetros CSR para obter uma lista de valores válidos.

short_names

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.

Valor Retornado

Returns an associative array with subject description, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.

Exemplos

Exemplo #1 openssl_csr_get_subject() example

<?php
$subject = array(
"countryName" => "CA",
"stateOrProvinceName" => "Alberta",
"localityName" => "Calgary",
"organizationName" => "XYZ Widgets Inc",
"organizationalUnitName" => "PHP Documentation Team",
"commonName" => "Wez Furlong",
"emailAddress" => "wez@example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
'digest_alg' => 'sha512WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $privkey, $configargs);
print_r(openssl_csr_get_subject($csr));
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [C] => CA
    [ST] => Alberta
    [L] => Calgary
    [O] => XYZ Widgets Inc
    [OU] => PHP Documentation Team
    [CN] => Wez Furlong
    [emailAddress] => wez@example.com
)

Veja Também

  • openssl_csr_new() - Generates a CSR
  • openssl_csr_get_public_key() - Returns the public key of a CSR
  • openssl_x509_parse() - Parse an X509 certificate and return the information as an array


Generates a CSR

  • « openssl_csr_get_subject
  • openssl_csr_sign »
  • PHP Manual
  • OpenSSL Funções
  • Generates a CSR

openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_new — Generates a CSR

Descrição

openssl_csr_new(
array $distinguished_names,
OpenSSLAsymmetricKey &$private_key,
?array $options = null,
?array $extra_attributes = null
): OpenSSLCertificateSigningRequest|false

openssl_csr_new() generates a new CSR based on the information provided by distinguished_names.

Nota: É preciso ter um arquivo openssl.cnf válido instalado para que esta função funcione corretamente. Consulte as notas na seção de instalação para obter mais informações.

Parâmetros

distinguished_names

The Distinguished Name or subject fields to be used in the certificate.

private_key

private_key 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.

options

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 options. 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 options behave as their equivalents in the openssl.conf, as listed in the table below.

Configuration overrides
options key | type | openssl.conf equivalent | description
digest_alg | string | default_md | Digest method or signature hash, usually one of openssl_get_md_methods()
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 | int | default_bits | Specifies how many bits should be used to generate a private key
private_key_type | int | none | Specifies the type of private key to create. This can be one of OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_RSA or OPENSSL_KEYTYPE_EC. The default value is OPENSSL_KEYTYPE_RSA.
encrypt_key | bool | encrypt_key | Should an exported key (with passphrase) be encrypted?
encrypt_key_cipher | int | none | One of cipher constants.
curve_name | string | none | One of openssl_get_curve_names().
config | string | N/A | Path to your own alternative openssl.conf file.

extra_attributes

extra_attributes is used to specify additional configuration options for the CSR. Both distinguished_names and extra_attributes are associative arrays whose keys are converted to OIDs and applied to the relevant part of the request.

Valor Retornado

Returns the CSR ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was returned.
8.0.0 | private_key accepts an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was accepted.
7.1.0 | options now also supports curve_name.

Exemplos

Exemplo #1 Creating a self-signed certificate

<?php
// for SSL server certificates the commonName is the domain name to be secured
// for S/MIME email certificates the commonName is the owner of the email address
// location and identification fields refer to the owner of domain or email subject to be secured
$dn = array(
"countryName" => "GB",
"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(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));

// Generate a certificate signing request
$csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));

// Generate a self-signed cert, valid for 365 days
$x509 = openssl_csr_sign($csr, null, $privkey, $days=365, array('digest_alg' => 'sha256'));

// Save your private key, CSR and self-signed cert for later use
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($x509, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
echo $e . "\n";
}
?>

Exemplo #2 Creating a self-signed ECC certificate (as of PHP 7.1.0)

<?php
$subject = array(
"commonName" => "docs.php.net",
);

// Generate a new private (and public) key pair
$private_key = openssl_pkey_new(array(
"private_key_type" => OPENSSL_KEYTYPE_EC,
"curve_name" => 'prime256v1',
));

// Generate a certificate signing request
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha384'));

// Generate self-signed EC cert
$x509 = openssl_csr_sign($csr, null, $private_key, $days=365, array('digest_alg' => 'sha384'));
openssl_x509_export_to_file($x509, 'ecc-cert.pem');
openssl_pkey_export_to_file($private_key, 'ecc-private.key');
?>

Veja Também

  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Sign a CSR with another certificate (or itself) and generate a certificate

  • « openssl_csr_new
  • openssl_decrypt »
  • PHP Manual
  • OpenSSL Funções
  • Sign a CSR with another certificate (or itself) and generate a certificate

openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_sign — Sign a CSR with another certificate (or itself) and generate a certificate

Descrição

openssl_csr_sign(
OpenSSLCertificateSigningRequest|string $csr,
OpenSSLCertificate|string|null $ca_certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
int $days,
?array $options = null,
int $serial = 0
): OpenSSLCertificate|false

openssl_csr_sign() generates an x509 certificate from the given CSR.

Nota: É preciso ter um arquivo openssl.cnf válido instalado para que esta função funcione corretamente. Consulte as notas na seção de instalação para obter mais informações.

Parâmetros

csr

A CSR previously generated by openssl_csr_new(). 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().

ca_certificate

The generated certificate will be signed by ca_certificate. If ca_certificate is null, the generated certificate will be a self-signed certificate.

private_key

private_key is the private key that corresponds to ca_certificate.

days

days specifies the length of time for which the generated certificate will be valid, in days.

options

You can finetune the CSR signing by options. See openssl_csr_new() for more information about options.

serial

An optional the serial number of issued certificate. If not specified it will default to 0.

Valor Retornado

Returns an OpenSSLCertificate on success, false on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned.
8.0.0 | csr accepts an OpenSSLCertificateSigningRequest instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
8.0.0 | ca_certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.

Exemplos

Exemplo #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 its private key
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");

$usercert = openssl_csr_sign($csrdata, $cacert, $privkey, 365, array('digest_alg'=>'sha256') );

// 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";
}
?>


Decrypts data

  • « openssl_csr_sign
  • openssl_dh_compute_key »
  • PHP Manual
  • OpenSSL Funções
  • Decrypts data

openssl_decrypt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_decrypt — Decrypts data

Descrição

openssl_decrypt(
string $data,
string $cipher_algo,
string $passphrase,
int $options = 0,
string $iv = "",
?string $tag = null,
string $aad = ""
): string|false

Takes a raw or base64 encoded string and decrypts it using a given method and key.

Parâmetros

data

The encrypted message to be decrypted.

cipher_algo

The cipher method. For a list of available cipher methods, use openssl_get_cipher_methods().

passphrase

The key.

options

options can be one of OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING.

iv

A non-NULL Initialization Vector.

tag

The authentication tag in AEAD cipher mode. If it is incorrect, the authentication fails and the function returns false.

Cuidado

The length of the tag is not checked by the function. It is the caller's responsibility to ensure that the length of the tag matches the length of the tag retrieved when openssl_encrypt() has been called. Otherwise the decryption may succeed if the given tag only matches the start of the proper tag.

aad

Additional authenticated data.

Valor Retornado

The decrypted string on success ou false em caso de falha.

Erros/Exceções

Emits an E_WARNING level error if an unknown cipher algorithm is passed via the cipher_algo parameter.

Emits an E_WARNING level error if an empty value is passed in via the iv parameter.

Registro de Alterações

Versão | Descrição
8.1.0 | tag is now nullable.
7.1.0 | The tag and aad parameters were added.

Veja Também

  • openssl_encrypt() - Encrypts data


Computes shared secret for public value of remote DH public key and local DH key

  • « openssl_decrypt
  • openssl_digest »
  • PHP Manual
  • OpenSSL Funções
  • Computes shared secret for public value of remote DH public key and local DH key

openssl_dh_compute_key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_dh_compute_key — Computes shared secret for public value of remote DH public key and local DH key

Descrição

openssl_dh_compute_key(string $public_key, OpenSSLAsymmetricKey $private_key): string|false

The shared secret returned by openssl_dh_compute_key() is often used as an encryption key to secretly communicate with a remote party. This is known as the Diffie-Hellman key exchange.

Nota: ECDH is only supported as of PHP 8.1.0 and OpenSSL 3.0.0.

Parâmetros

public_key

DH Public key of the remote party.

private_key

A local DH private key, corresponding to the public key to be shared with the remote party.

Valor Retornado

Returns shared secret on success ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | private_key accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.

Exemplos

Exemplo #1 Compute a shared secret

First generate a public/private DH keypair locally, and have the remote party do the same. We need to use the openssl command-line utility.

# generate private/public key keypair
openssl dhparam -out dhparam.pem 2048
openssl genpkey -paramfile dhparam.pem -out privatekey.pem

# extract public key only
openssl pkey -in privatekey.pem -pubout -out publickey.pem

Next, send your public key to the remote party. Use the openssl pkey command to view the public key you will be sent from the remote party.

openssl pkey -pubin -in remotepublickey.pem -text -noout

O exemplo acima produzirá algo semelhante a:

PKCS#3 DH Public-Key: (2048 bit)
    public-key:
        67:e5:e5:fa:e0:7b:0f:96:2c:dc:96:44:5f:50:02:
        9e:8d:c2:6c:04:68:b0:d1:1d:75:66:fc:63:f5:e3:
        42:30:b8:96:c1:45:cc:08:60:b4:21:3b:dd:ee:66:
        88:db:77:d9:1e:11:89:d4:5c:f2:7a:f2:f1:fe:1c:
        77:9d:6f:13:b8:b2:56:00:ef:cb:3b:60:79:74:02:
        98:f5:f9:8e:3e:b5:62:08:de:ca:8c:c3:40:4a:80:
        79:d5:43:06:17:a8:19:56:af:cc:95:5e:e2:32:2d:
        d2:14:7b:76:5a:9a:f1:3c:76:76:35:cc:7b:c1:a5:
        f4:39:e5:b6:ca:71:3f:7c:3f:97:e5:ab:86:c1:cd:
        0e:e6:ee:04:c9:e6:2d:80:7e:59:c0:49:eb:b6:64:
        4f:a8:f9:bb:a3:87:b3:3d:76:01:9e:2b:16:94:a4:
        37:30:fb:35:e2:63:be:23:90:b9:ef:3f:46:46:04:
        94:8f:60:79:7a:51:55:d6:1a:1d:f5:d9:7f:4a:3e:
        aa:ac:b0:d0:82:cc:c2:e0:94:e0:54:c1:17:83:0b:
        74:08:4d:5a:79:ae:ff:7f:1c:04:ab:23:39:4a:ae:
        87:83:55:43:ab:7a:7c:04:9d:20:80:bb:af:5f:16:
        a3:e3:20:b9:21:47:8c:f8:7f:a8:60:80:9e:61:77:
        36
 [...abbreviated...]

Use this public key as a parameter to openssl_dh_compute_key() in order to compute the shared secret.

<?php
$remote_public_key = '67e5e5fae07b0f962cdc96445f50029e8dc26c0468b0d11d7566fc63f5e34230b896c145cc0860b4213bddee6688db77d91e1189d45cf27af2f1fe1c779d6f13b8b25600efcb3b6079740298f5f98e3eb56208deca8cc3404a8079d5430617a81956afcc955ee2322dd2147b765a9af13c767635cc7bc1a5f439e5b6ca713f7c3f97e5ab86c1cd0ee6ee04c9e62d807e59c049ebb6644fa8f9bba387b33d76019e2b1694a43730fb35e263be2390b9ef3f464604948f60797a5155d61a1df5d97f4a3eaaacb0d082ccc2e094e054c117830b74084d5a79aeff7f1c04ab23394aae87835543ab7a7c049d2080bbaf5f16a3e320b921478cf87fa860809e617736';

$local_priv_key = openssl_pkey_get_private('file://privatekey.pem');

$shared_secret = openssl_dh_compute_key(hex2bin($remote_public_key), $local_priv_key);
echo bin2hex($shared_secret)."\n";
?>

Exemplo #2 Generate a DH public/private keypair in php

First, generate the DH prime number

openssl dhparam -out dhparam.pem 2048
openssl dh -in dhparam.pem -noout  -text

O exemplo acima produzirá algo semelhante a:

PKCS#3 DH Parameters: (2048 bit)
        prime:
            00:a3:25:1e:73:3f:44:b9:2b:ee:f4:9d:9f:37:6a:
            4b:fd:1d:bd:f4:af:da:c8:10:77:59:41:c6:5f:73:
            d2:88:29:39:cd:1c:5f:c3:9f:0f:22:d2:9c:20:c1:
            e4:c0:18:03:b8:b6:d8:da:ad:3b:39:a6:da:8e:fe:
            12:30:e9:03:5d:22:ba:ef:18:d2:7b:69:f9:5b:cb:
            78:c6:0c:8c:6b:f2:49:92:c2:49:e0:45:77:72:b3:
            55:36:30:f2:40:17:89:18:50:03:fa:2d:54:7a:7f:
            34:4c:73:32:b6:88:14:51:14:be:80:57:95:e6:a3:
            f6:51:ff:17:47:4f:15:d6:0e:6c:47:53:72:2c:2a:
            4c:21:cb:7d:f3:49:97:c9:47:5e:40:33:7b:99:52:
            7e:7a:f3:52:27:80:de:1b:26:6b:40:bb:14:11:0b:
            fb:e6:d8:2f:cf:a0:06:2f:96:b9:1c:0b:b4:cb:d3:
            a6:62:9c:48:67:f6:81:f2:c6:ff:45:03:0a:9d:67:
            9d:ce:27:d9:6b:48:5d:ca:fb:c2:5d:84:9b:8b:cb:
            40:c7:a4:0c:8a:6e:f4:ab:ba:b6:10:c3:b8:25:4d:
            cf:60:96:f4:db:e8:00:1c:58:47:7a:fb:51:86:d1:
            22:d7:4e:94:31:7a:d5:da:3d:53:de:da:bb:64:8d:
            62:6b
        generator: 2 (0x2)

Prime and generator values ares passed as p and g into openssl_pkey_new()

<?php
$configargs = array();
$configargs['p'] = hex2bin('00a3251e733f44b92beef49d9f376a4bfd1dbdf4afdac810775941c65f73d2882939cd1c5fc39f0f22d29c20c1e4c01803b8b6d8daad3b39a6da8efe1230e9035d22baef18d27b69f95bcb78c60c8c6bf24992c249e0457772b3553630f2401789185003fa2d547a7f344c7332b688145114be805795e6a3f651ff17474f15d60e6c4753722c2a4c21cb7df34997c9475e40337b99527e7af3522780de1b266b40bb14110bfbe6d82fcfa0062f96b91c0bb4cbd3a6629c4867f681f2c6ff45030a9d679dce27d96b485dcafbc25d849b8bcb40c7a40c8a6ef4abbab610c3b8254dcf6096f4dbe8001c58477afb5186d122d74e94317ad5da3d53dedabb648d626b');
$configargs['g'] = hex2bin('02');
$private_key = openssl_pkey_new(array('dh' => $configargs));
openssl_pkey_export_to_file($private_key,'privatekey.pem',$passphrase='y0urp@s5phr@se');

$details = openssl_pkey_get_details($private_key);
$local_pub_key = $details['dh']['pub_key'];
echo bin2hex($local_pub_key)."\n";//you can send your public key to the remote party

$details = openssl_pkey_get_details(openssl_pkey_get_public("file://remotepublickey.pem"));
$remote_public_key = $details['dh']['pub_key'];
$shared_secret = openssl_dh_compute_key($remote_public_key, $private_key);
echo bin2hex($shared_secret)."\n";
?>

Veja Também

  • openssl_pkey_new() - Generates a new private key
  • openssl_pkey_get_details() - Returns an array with the key details
  • openssl_pkey_get_private() - Get a private key
  • openssl_pkey_get_public() - Extract public key from certificate and prepare it for use


Computes a digest

  • « openssl_dh_compute_key
  • openssl_encrypt »
  • PHP Manual
  • OpenSSL Funções
  • Computes a digest

openssl_digest

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_digest — Computes a digest

Descrição

openssl_digest(string $data, string $digest_algo, bool $binary = false): string|false

Computes a digest hash value for the given data using a given method, and returns a raw or binhex encoded string.

Parâmetros

data

The data.

digest_algo

The digest method to use, e.g. "sha256", see openssl_get_md_methods() for a list of available digest methods.

binary

Setting to true will return as raw output data, otherwise the return value is binhex encoded.

Valor Retornado

Returns the digested hash value on success ou false em caso de falha.

Erros/Exceções

Emits an E_WARNING level error if an unknown signature algorithm is passed via the digest_algo parameter.

Veja Também

  • openssl_get_md_methods() - Gets available digest methods


Encrypts data

  • « openssl_digest
  • openssl_error_string »
  • PHP Manual
  • OpenSSL Funções
  • Encrypts data

openssl_encrypt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_encrypt — Encrypts data

Descrição

openssl_encrypt(
string $data,
string $cipher_algo,
string $passphrase,
int $options = 0,
string $iv = "",
string &$tag = null,
string $aad = "",
int $tag_length = 16
): string|false

Encrypts given data with given method and key, returns a raw or base64 encoded string

Parâmetros

data

The plaintext message data to be encrypted.

cipher_algo

The cipher method. For a list of available cipher methods, use openssl_get_cipher_methods().

passphrase

The passphrase. If the passphrase is shorter than expected, it is silently padded with NUL characters; if the passphrase is longer than expected, it is silently truncated.

options

options is a bitwise disjunction of the flags OPENSSL_RAW_DATA and OPENSSL_ZERO_PADDING.

iv

A non-NULL Initialization Vector.

tag

The authentication tag passed by reference when using AEAD cipher mode (GCM or CCM).

aad

Additional authenticated data.

tag_length

The length of the authentication tag. Its value can be between 4 and 16 for GCM mode.

Valor Retornado

Returns the encrypted string on success ou false em caso de falha.

Erros/Exceções

Emits an E_WARNING level error if an unknown cipher algorithm is passed in via the cipher_algo parameter.

Emits an E_WARNING level error if an empty value is passed in via the iv parameter.

Registro de Alterações

Versão | Descrição
7.1.0 | The tag, aad and tag_length parameters were added.

Exemplos

Exemplo #1 AES Authenticated Encryption in GCM mode example for PHP 7.1+

<?php
//$key should have been previously generated in a cryptographically safe way, like openssl_random_pseudo_bytes
$plaintext = "message to be encrypted";
$cipher = "aes-128-gcm";
if (in_array($cipher, openssl_get_cipher_methods()))
{
$ivlen = openssl_cipher_iv_length($cipher);
$iv = openssl_random_pseudo_bytes($ivlen);
$ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
//store $cipher, $iv, and $tag for decryption later
$original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
echo $original_plaintext."\n";
}
?>

Exemplo #2 AES Authenticated Encryption example prior to PHP 7.1

<?php
//$key previously generated safely, ie: openssl_random_pseudo_bytes
$plaintext = "message to be encrypted";
$ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv = openssl_random_pseudo_bytes($ivlen);
$ciphertext_raw = openssl_encrypt($plaintext, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$hmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
$ciphertext = base64_encode( $iv.$hmac.$ciphertext_raw );

//decrypt later....
$c = base64_decode($ciphertext);
$ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv = substr($c, 0, $ivlen);
$hmac = substr($c, $ivlen, $sha2len=32);
$ciphertext_raw = substr($c, $ivlen+$sha2len);
$original_plaintext = openssl_decrypt($ciphertext_raw, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$calcmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
if (hash_equals($hmac, $calcmac))// timing attack safe comparison
{
echo $original_plaintext."\n";
}
?>

Veja Também

  • openssl_decrypt() - Decrypts data


Return openSSL error message

  • « openssl_encrypt
  • openssl_free_key »
  • PHP Manual
  • OpenSSL Funções
  • Return openSSL error message

openssl_error_string

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_error_string — Return openSSL error message

Descrição

openssl_error_string(): string|false

openssl_error_string() returns the last error from the openSSL library. Error messages are queued, so this function should be called multiple times to collect all of the information. The last error will be the most recent one.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an error message string, or false if there are no more error messages to return.

Exemplos

Exemplo #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";
?>


Free key resource

  • « openssl_error_string
  • openssl_get_cert_locations »
  • PHP Manual
  • OpenSSL Funções
  • Free key resource

openssl_free_key

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_free_key — Free key resource

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

openssl_free_key(OpenSSLAsymmetricKey $key): void

openssl_free_key() frees the key associated with the specified key from memory.

Parâmetros

key

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | This function is now deprecated as it doesn't have an effect anymore.
8.0.0 | key accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.


Retrieve the available certificate locations

  • « openssl_free_key
  • openssl_get_cipher_methods »
  • PHP Manual
  • OpenSSL Funções
  • Retrieve the available certificate locations

openssl_get_cert_locations

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_get_cert_locations — Retrieve the available certificate locations

Descrição

openssl_get_cert_locations(): array

openssl_get_cert_locations() returns an array with information about the available certificate locations that will be searched for SSL certificates.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with the available certificate locations.

Exemplos

Exemplo #1 openssl_get_cert_locations() example

<?php
var_dump(openssl_get_cert_locations());
?>

O exemplo acima produzirá:

array(8) {
  ["default_cert_file"]=>
  string(21) "/usr/lib/ssl/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/usr/lib/ssl/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/usr/lib/ssl/private"
  ["default_default_cert_area"]=>
  string(12) "/usr/lib/ssl"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""
}


Gets available cipher methods

  • « openssl_get_cert_locations
  • openssl_get_curve_names »
  • PHP Manual
  • OpenSSL Funções
  • Gets available cipher methods

openssl_get_cipher_methods

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_get_cipher_methods — Gets available cipher methods

Descrição

openssl_get_cipher_methods(bool $aliases = false): array

Gets a list of available cipher methods.

Parâmetros

aliases

Set to true if cipher aliases should be included within the returned array.

Valor Retornado

An array of available cipher methods. Note that prior to OpenSSL 1.1.1, the cipher methods have been returned in upper case and lower case spelling; as of OpenSSL 1.1.1 only the lower case variants are returned.

Exemplos

Exemplo #1 openssl_get_cipher_methods() example

Shows how the available ciphers might look, and also which aliases might be available.

<?php
$ciphers = openssl_get_cipher_methods();
$ciphers_and_aliases = openssl_get_cipher_methods(true);
$cipher_aliases = array_diff($ciphers_and_aliases, $ciphers);

//ECB mode should be avoided
$ciphers = array_filter( $ciphers, function($n) { return stripos($n,"ecb")===FALSE; } );

//At least as early as Aug 2016, Openssl declared the following weak: RC2, RC4, DES, 3DES, MD5 based
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"des")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"rc2")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"rc4")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"md5")===FALSE; } );
$cipher_aliases = array_filter($cipher_aliases,function($c) { return stripos($c,"des")===FALSE; } );
$cipher_aliases = array_filter($cipher_aliases,function($c) { return stripos($c,"rc2")===FALSE; } );

print_r($ciphers);
print_r($cipher_aliases);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => aes-128-cbc
    [1] => aes-128-cbc-hmac-sha1
    [2] => aes-128-cbc-hmac-sha256
    [3] => aes-128-ccm
    [4] => aes-128-cfb
    [5] => aes-128-cfb1
    [6] => aes-128-cfb8
    [7] => aes-128-ctr
    [9] => aes-128-gcm
    [10] => aes-128-ocb
    [11] => aes-128-ofb
    [12] => aes-128-xts
    [13] => aes-192-cbc
    [14] => aes-192-ccm
    [15] => aes-192-cfb
    [16] => aes-192-cfb1
    [17] => aes-192-cfb8
    [18] => aes-192-ctr
    [20] => aes-192-gcm
    [21] => aes-192-ocb
    [22] => aes-192-ofb
    [23] => aes-256-cbc
    [24] => aes-256-cbc-hmac-sha1
    [25] => aes-256-cbc-hmac-sha256
    [26] => aes-256-ccm
    [27] => aes-256-cfb
    [28] => aes-256-cfb1
    [29] => aes-256-cfb8
    [30] => aes-256-ctr
    [32] => aes-256-gcm
    [33] => aes-256-ocb
    [34] => aes-256-ofb
    [35] => aes-256-xts
    [36] => aria-128-cbc
    [37] => aria-128-ccm
    [38] => aria-128-cfb
    [39] => aria-128-cfb1
    [40] => aria-128-cfb8
    [41] => aria-128-ctr
    [43] => aria-128-gcm
    [44] => aria-128-ofb
    [45] => aria-192-cbc
    [46] => aria-192-ccm
    [47] => aria-192-cfb
    [48] => aria-192-cfb1
    [49] => aria-192-cfb8
    [50] => aria-192-ctr
    [52] => aria-192-gcm
    [53] => aria-192-ofb
    [54] => aria-256-cbc
    [55] => aria-256-ccm
    [56] => aria-256-cfb
    [57] => aria-256-cfb1
    [58] => aria-256-cfb8
    [59] => aria-256-ctr
    [61] => aria-256-gcm
    [62] => aria-256-ofb
    [63] => bf-cbc
    [64] => bf-cfb
    [66] => bf-ofb
    [67] => camellia-128-cbc
    [68] => camellia-128-cfb
    [69] => camellia-128-cfb1
    [70] => camellia-128-cfb8
    [71] => camellia-128-ctr
    [73] => camellia-128-ofb
    [74] => camellia-192-cbc
    [75] => camellia-192-cfb
    [76] => camellia-192-cfb1
    [77] => camellia-192-cfb8
    [78] => camellia-192-ctr
    [80] => camellia-192-ofb
    [81] => camellia-256-cbc
    [82] => camellia-256-cfb
    [83] => camellia-256-cfb1
    [84] => camellia-256-cfb8
    [85] => camellia-256-ctr
    [87] => camellia-256-ofb
    [88] => cast5-cbc
    [89] => cast5-cfb
    [91] => cast5-ofb
    [92] => chacha20
    [93] => chacha20-poly1305
    [111] => id-aes128-CCM
    [112] => id-aes128-GCM
    [113] => id-aes128-wrap
    [114] => id-aes128-wrap-pad
    [115] => id-aes192-CCM
    [116] => id-aes192-GCM
    [117] => id-aes192-wrap
    [118] => id-aes192-wrap-pad
    [119] => id-aes256-CCM
    [120] => id-aes256-GCM
    [121] => id-aes256-wrap
    [122] => id-aes256-wrap-pad
    [124] => idea-cbc
    [125] => idea-cfb
    [127] => idea-ofb
    [137] => seed-cbc
    [138] => seed-cfb
    [140] => seed-ofb
    [141] => sm4-cbc
    [142] => sm4-cfb
    [143] => sm4-ctr
    [145] => sm4-ofb
)
Array
(
    [36] => aes128
    [37] => aes128-wrap
    [38] => aes192
    [39] => aes192-wrap
    [40] => aes256
    [41] => aes256-wrap
    [69] => aria128
    [70] => aria192
    [71] => aria256
    [72] => bf
    [77] => blowfish
    [99] => camellia128
    [100] => camellia192
    [101] => camellia256
    [102] => cast
    [103] => cast-cbc
    [146] => idea
    [164] => seed
    [169] => sm4
)

Veja Também

  • openssl_get_md_methods() - Gets available digest methods


Gets list of available curve names for ECC

  • « openssl_get_cipher_methods
  • openssl_get_md_methods »
  • PHP Manual
  • OpenSSL Funções
  • Gets list of available curve names for ECC

openssl_get_curve_names

(PHP 7 >= 7.1.0, PHP 8)

openssl_get_curve_names — Gets list of available curve names for ECC

Descrição

openssl_get_curve_names(): array|false

Gets the list of available curve names for use in Elliptic curve cryptography (ECC) for public/private key operations. The two most widely standardized/supported curves are prime256v1 (NIST P-256) and secp384r1 (NIST P-384).

Approximate Equivalancies of AES, RSA, DSA and ECC Keysizes
AES Symmetric Keysize (Bits) | RSA and DSA Keysize (Bits) | ECC Keysize (Bits)
80 | 1024 | 160
112 | 2048 | 224
128 | 3072 | 256
192 | 7680 | 384
256 | 15360 | 512
» NIST recommends using ECC curves with at least 256 bits.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of available curve names, ou false em caso de falha.

Exemplos

Exemplo #1 openssl_get_curve_names() example

<?php
$curve_names = openssl_get_curve_names();
print_r($curve_names);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => secp112r1
    [1] => secp112r2
    [2] => secp128r1
    [3] => secp128r2
    [4] => secp160k1
    [5] => secp160r1
    [6] => secp160r2
    [7] => secp192k1
    [8] => secp224k1
    [9] => secp224r1
    [10] => secp256k1
    [11] => secp384r1
    [12] => secp521r1
    [13] => prime192v1
    [14] => prime192v2
    [15] => prime192v3
    [16] => prime239v1
    [17] => prime239v2
    [18] => prime239v3
    [19] => prime256v1
    [20] => sect113r1
    [21] => sect113r2
    [22] => sect131r1
    [23] => sect131r2
    [24] => sect163k1
    [25] => sect163r1
    [26] => sect163r2
    [27] => sect193r1
    [28] => sect193r2
    [29] => sect233k1
    [30] => sect233r1
    [31] => sect239k1
    [32] => sect283k1
    [33] => sect283r1
    [34] => sect409k1
    [35] => sect409r1
    [36] => sect571k1
    [37] => sect571r1
    [38] => c2pnb163v1
    [39] => c2pnb163v2
    [40] => c2pnb163v3
    [41] => c2pnb176v1
    [42] => c2tnb191v1
    [43] => c2tnb191v2
    [44] => c2tnb191v3
    [45] => c2pnb208w1
    [46] => c2tnb239v1
    [47] => c2tnb239v2
    [48] => c2tnb239v3
    [49] => c2pnb272w1
    [50] => c2pnb304w1
    [51] => c2tnb359v1
    [52] => c2pnb368w1
    [53] => c2tnb431r1
    [54] => wap-wsg-idm-ecid-wtls1
    [55] => wap-wsg-idm-ecid-wtls3
    [56] => wap-wsg-idm-ecid-wtls4
    [57] => wap-wsg-idm-ecid-wtls5
    [58] => wap-wsg-idm-ecid-wtls6
    [59] => wap-wsg-idm-ecid-wtls7
    [60] => wap-wsg-idm-ecid-wtls8
    [61] => wap-wsg-idm-ecid-wtls9
    [62] => wap-wsg-idm-ecid-wtls10
    [63] => wap-wsg-idm-ecid-wtls11
    [64] => wap-wsg-idm-ecid-wtls12
    [65] => Oakley-EC2N-3
    [66] => Oakley-EC2N-4
    [67] => brainpoolP160r1
    [68] => brainpoolP160t1
    [69] => brainpoolP192r1
    [70] => brainpoolP192t1
    [71] => brainpoolP224r1
    [72] => brainpoolP224t1
    [73] => brainpoolP256r1
    [74] => brainpoolP256t1
    [75] => brainpoolP320r1
    [76] => brainpoolP320t1
    [77] => brainpoolP384r1
    [78] => brainpoolP384t1
    [79] => brainpoolP512r1
    [80] => brainpoolP512t1
)


Gets available digest methods

  • « openssl_get_curve_names
  • openssl_get_privatekey »
  • PHP Manual
  • OpenSSL Funções
  • Gets available digest methods

openssl_get_md_methods

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_get_md_methods — Gets available digest methods

Descrição

openssl_get_md_methods(bool $aliases = false): array

Gets a list of available digest methods.

Parâmetros

aliases

Set to true if digest aliases should be included within the returned array.

Valor Retornado

An array of available digest methods.

Exemplos

Exemplo #1 openssl_get_md_methods() example

Shows how the available digests might look, and also which aliases might be available.

<?php
$digests = openssl_get_md_methods();
$digests_and_aliases = openssl_get_md_methods(true);
$digest_aliases = array_diff($digests_and_aliases, $digests);

print_r($digests);

print_r($digest_aliases);

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => DSA
    [1] => DSA-SHA
    [2] => MD2
    [3] => MD4
    [4] => MD5
    [5] => RIPEMD160
    [6] => SHA
    [7] => SHA1
    [8] => SHA224
    [9] => SHA256
    [10] => SHA384
    [11] => SHA512
    [12] => dsaEncryption
    [13] => dsaWithSHA
    [14] => ecdsa-with-SHA1
    [15] => md2
    [16] => md4
    [17] => md5
    [18] => ripemd160
    [19] => sha
    [20] => sha1
    [21] => sha224
    [22] => sha256
    [23] => sha384
    [24] => sha512
)
Array
(
    [2] => DSA-SHA1
    [3] => DSA-SHA1-old
    [4] => DSS1
    [9] => RSA-MD2
    [10] => RSA-MD4
    [11] => RSA-MD5
    [12] => RSA-RIPEMD160
    [13] => RSA-SHA
    [14] => RSA-SHA1
    [15] => RSA-SHA1-2
    [16] => RSA-SHA224
    [17] => RSA-SHA256
    [18] => RSA-SHA384
    [19] => RSA-SHA512
    [28] => dsaWithSHA1
    [29] => dss1
    [32] => md2WithRSAEncryption
    [34] => md4WithRSAEncryption
    [36] => md5WithRSAEncryption
    [37] => ripemd
    [39] => ripemd160WithRSA
    [40] => rmd160
    [43] => sha1WithRSAEncryption
    [45] => sha224WithRSAEncryption
    [47] => sha256WithRSAEncryption
    [49] => sha384WithRSAEncryption
    [51] => sha512WithRSAEncryption
    [52] => shaWithRSAEncryption
    [53] => ssl2-md5
    [54] => ssl3-md5
    [55] => ssl3-sha1
)

Veja Também

  • openssl_digest() - Computes a digest
  • openssl_get_cipher_methods() - Gets available cipher methods


Sinônimo de openssl_pkey_get_private

  • « openssl_get_md_methods
  • openssl_get_publickey »
  • PHP Manual
  • OpenSSL Funções
  • Sinônimo de openssl_pkey_get_private

openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_get_privatekey — Sinônimo de openssl_pkey_get_private()

Descrição

Esta função é um apelido para: openssl_pkey_get_private().


Sinônimo de openssl_pkey_get_public

  • « openssl_get_privatekey
  • openssl_open »
  • PHP Manual
  • OpenSSL Funções
  • Sinônimo de openssl_pkey_get_public

openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_get_publickey — Sinônimo de openssl_pkey_get_public()

Descrição

Esta função é um apelido para: openssl_pkey_get_public().


Open sealed data

  • « openssl_get_publickey
  • openssl_pbkdf2 »
  • PHP Manual
  • OpenSSL Funções
  • Open sealed data

openssl_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_open — Open sealed data

Descrição

openssl_open(
string $data,
string &$output,
string $encrypted_key,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string $cipher_algo,
?string $iv = null
): bool

openssl_open() opens (decrypts) data using the private key associated with the key identifier private_key and the envelope key encrypted_key, and fills output 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.

Parâmetros

data

output

If the call is successful the opened data is returned in this parameter.

encrypted_key

private_key

cipher_algo

The cipher method.

Cuidado

The default value ('RC4') is considered insecure. It is strongly recommended to explicitly specify a secure cipher method.

iv

The initialization vector.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted.
8.0.0 | cipher_algo is no longer an optional parameter.

Exemplos

Exemplo #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);
?>

Veja Também

  • openssl_seal() - Seal (encrypt) data


Generates a PKCS5 v2 PBKDF2 string

  • « openssl_open
  • openssl_pkcs12_export_to_file »
  • PHP Manual
  • OpenSSL Funções
  • Generates a PKCS5 v2 PBKDF2 string

openssl_pbkdf2

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

openssl_pbkdf2 — Generates a PKCS5 v2 PBKDF2 string

Descrição

openssl_pbkdf2(
string $password,
string $salt,
int $key_length,
int $iterations,
string $digest_algo = "sha1"
): string|false

openssl_pbkdf2() computes PBKDF2 (Password-Based Key Derivation Function 2), a key derivation function defined in PKCS5 v2.

Parâmetros

password

Password from which the derived key is generated.

salt

PBKDF2 recommends a crytographic salt of at least 64 bits (8 bytes).

key_length

Length of desired output key.

iterations

The number of iterations desired. » NIST recommends at least 10,000.

digest_algo

Optional hash or digest algorithm from openssl_get_md_methods(). Defaults to SHA-1.

Valor Retornado

Returns raw binary string ou false em caso de falha.

Exemplos

Exemplo #1 openssl_pbkdf2() example

<?php
$password = 'password';
$salt = openssl_random_pseudo_bytes(16);
$keyLength = 20;
$iterations = 600000;
$generated_key = openssl_pbkdf2($password, $salt, $keyLength, $iterations, 'sha256');
echo bin2hex($generated_key)."\n";
echo base64_encode($generated_key)."\n";
?>

Veja Também

  • hash_pbkdf2() - Generate a PBKDF2 key derivation of a supplied password
  • openssl_get_md_methods() - Gets available digest methods


Exports a PKCS#12 Compatible Certificate Store File

  • « openssl_pbkdf2
  • openssl_pkcs12_export »
  • PHP Manual
  • OpenSSL Funções
  • Exports a PKCS#12 Compatible Certificate Store File

openssl_pkcs12_export_to_file

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

openssl_pkcs12_export_to_file — Exports a PKCS#12 Compatible Certificate Store File

Descrição

openssl_pkcs12_export_to_file(
OpenSSLCertificate|string $certificate,
string $output_filename,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string $passphrase,
array $options = []
): bool

openssl_pkcs12_export_to_file() stores certificate into a file named by output_filename in a PKCS#12 file format.

Parâmetros

x509

Consulte Parâmetros Chave/Certificado para obter uma lista de valores válidos.

output_filename

Path to the output file.

private_key

Private key component of PKCS#12 file. See Public/Private Key parameters for a list of valid values.

passphrase

Encryption password for unlocking the PKCS#12 file.

options

Optional array, other keys will be ignored.

Key | Descrição
"extracerts" | array of extra certificates or a single certificate to be included in the PKCS#12 file.
"friendly_name" | string to be used for the supplied certificate and key

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.


Exports a PKCS#12 Compatible Certificate Store File to variable

  • « openssl_pkcs12_export_to_file
  • openssl_pkcs12_read »
  • PHP Manual
  • OpenSSL Funções
  • Exports a PKCS#12 Compatible Certificate Store File to variable

openssl_pkcs12_export

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

openssl_pkcs12_export — Exports a PKCS#12 Compatible Certificate Store File to variable

Descrição

openssl_pkcs12_export(
OpenSSLCertificate|string $certificate,
string &$output,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string $passphrase,
array $options = []
): bool

openssl_pkcs12_export() stores certificate into a string named by output in a PKCS#12 file format.

Parâmetros

x509

Consulte Parâmetros Chave/Certificado para obter uma lista de valores válidos.

output

On success, this will hold the PKCS#12.

private_key

Private key component of PKCS#12 file. See Public/Private Key parameters for a list of valid values.

passphrase

Encryption password for unlocking the PKCS#12 file.

options

Optional array, other keys will be ignored.

Key | Descrição
"extracerts" | array of extra certificates or a single certificate to be included in the PKCS#12 file.
"friendly_name" | string to be used for the supplied certificate and key

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.


Parse a PKCS#12 Certificate Store into an array

  • « openssl_pkcs12_export
  • openssl_pkcs7_decrypt »
  • PHP Manual
  • OpenSSL Funções
  • Parse a PKCS#12 Certificate Store into an array

openssl_pkcs12_read

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

openssl_pkcs12_read — Parse a PKCS#12 Certificate Store into an array

Descrição

openssl_pkcs12_read(string $pkcs12, array &$certificates, string $passphrase): bool

openssl_pkcs12_read() parses the PKCS#12 certificate store supplied by pkcs12 into a array named certificates.

Parâmetros

pkcs12

The certificate store contents, not its file name.

certificates

On success, this will hold the Certificate Store Data.

passphrase

Encryption password for unlocking the PKCS#12 file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 openssl_pkcs12_read() example

<?php
if (!$cert_store = file_get_contents("/certs/file.p12")) {
echo "Error: Unable to read the cert file\n";
exit;
}

if (openssl_pkcs12_read($cert_store, $cert_info, "my_secret_pass")) {
echo "Certificate Information\n";
print_r($cert_info);
} else {
echo "Error: Unable to read the cert store.\n";
exit;
}
?>


Decrypts an S/MIME encrypted message

  • « openssl_pkcs12_read
  • openssl_pkcs7_encrypt »
  • PHP Manual
  • OpenSSL Funções
  • Decrypts an S/MIME encrypted message

openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_decrypt — Decrypts an S/MIME encrypted message

Descrição

openssl_pkcs7_decrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key = null
): bool

Decrypts the S/MIME encrypted message contained in the file specified by input_filename using the certificate and its associated private key specified by certificate and private_key.

Parâmetros

input_filename

output_filename

The decrypted message is written to the file specified by output_filename.

certificate

private_key

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted.

Exemplos

Exemplo #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!";
}
?>


Encrypt an S/MIME message

  • « openssl_pkcs7_decrypt
  • openssl_pkcs7_read »
  • PHP Manual
  • OpenSSL Funções
  • Encrypt an S/MIME message

openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_encrypt — Encrypt an S/MIME message

Descrição

openssl_pkcs7_encrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|array|string $certificate,
?array $headers,
int $flags = 0,
int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC
): bool

openssl_pkcs7_encrypt() takes the contents of the file named input_filename and encrypts them using an RC2 40-bit cipher so that they can only be read by the intended recipients specified by certificate.

Parâmetros

input_filename

output_filename

certificate

Either a lone X.509 certificate, or an array of X.509 certificates.

headers

headers is an array of headers that will be prepended to the data after it has been encrypted.

headers can be either an associative array keyed by header name, or an indexed array, where each element contains a single header line.

flags

flags can be used to specify options that affect the encoding process - see PKCS7 constants.

cipher_algo

One of cipher constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | The default cipher algorithm (cipher_algo) is now AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Previously, PKCS7/CMS was used (OPENSSL_CIPHER_RC2_40).
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.

Exemplos

Exemplo #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");
}
?>


Export the PKCS7 file to an array of PEM certificates

  • « openssl_pkcs7_encrypt
  • openssl_pkcs7_sign »
  • PHP Manual
  • OpenSSL Funções
  • Export the PKCS7 file to an array of PEM certificates

openssl_pkcs7_read

(PHP 7 >= 7.2.0, PHP 8)

openssl_pkcs7_read — Export the PKCS7 file to an array of PEM certificates

Descrição

openssl_pkcs7_read(string $data, array &$certificates): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

The string of data you wish to parse (p7b format).

certificates

The array of PEM certificates from the p7b input data.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Get a PEM array from a P7B file

<?php

$file = 'certs.p7b';

$f = file_get_contents($file);
$p7 = array();
$r = openssl_pkcs7_read($f, $p7);

if ($r === false) {
printf("ERROR: %s is not a proper p7b file".PHP_EOL, $file);
for($e = openssl_error_string(), $i = 0; $e; $e = openssl_error_string(), $i++)
printf("SSL l%d: %s".PHP_EOL, $i, $e);
exit(1);
}

print_r($p7);
?>

Veja Também

  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Sign an S/MIME message

  • « openssl_pkcs7_read
  • openssl_pkcs7_verify »
  • PHP Manual
  • OpenSSL Funções
  • Sign an S/MIME message

openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_sign — Sign an S/MIME message

Descrição

openssl_pkcs7_sign(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
?array $headers,
int $flags = PKCS7_DETACHED,
?string $untrusted_certificates_filename = null
): bool

openssl_pkcs7_sign() takes the contents of the file named input_filename and signs them using the certificate and its matching private key specified by certificate and private_key parameters.

Parâmetros

input_filename

The input file you are intending to digitally sign.

output_filename

The file which the digital signature will be written to.

certificate

The X.509 certificate used to digitally sign input_filename. See Key/Certificate parameters for a list of valid values.

private_key

private_key is the private key corresponding to certificate. See Public/Private Key parameters for a list of valid values.

headers

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

flags can be used to alter the output - see PKCS7 constants.

untrusted_certificates_filename

untrusted_certificates_filename 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.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 CSR was accepted.
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 CSR was accepted.

Exemplos

Exemplo #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", "file://mycert.pem",
array("file://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");
}
?>


Verifies the signature of an S/MIME signed message

  • « openssl_pkcs7_sign
  • openssl_pkey_derive »
  • PHP Manual
  • OpenSSL Funções
  • Verifies the signature of an S/MIME signed message

openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_verify — Verifies the signature of an S/MIME signed message

Descrição

openssl_pkcs7_verify(
string $input_filename,
int $flags,
?string $signers_certificates_filename = null,
array $ca_info = [],
?string $untrusted_certificates_filename = null,
?string $content = null,
?string $output_filename = null
): bool|int

openssl_pkcs7_verify() reads the S/MIME message contained in the given file and examines the digital signature.

Parâmetros

input_filename

Path to the message.

flags

flags can be used to affect how the signature is verified - see PKCS7 constants for more information.

signers_certificates_filename

If the signers_certificates_filename 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.

ca_info

If the ca_info 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.

untrusted_certificates_filename

If the untrusted_certificates_filename is specified, it is the filename of a file containing a bunch of certificates to use as untrusted CAs.

content

You can specify a filename with content that will be filled with the verified data, but with the signature information stripped.

output_filename

Valor Retornado

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.

Registro de Alterações

Versão | Descrição
8.0.0 | signers_certificates_filename, untrusted_certificates_filename, content and output_filename are nullable now.
7.2.0 | The output_filename parameter was added.

Notas

Nota: As specified in RFC 2045, lines may not be longer than 76 characters in the input_filename parameter.


Computes shared secret for public value of remote and local DH or ECDH key

  • « openssl_pkcs7_verify
  • openssl_pkey_export_to_file »
  • PHP Manual
  • OpenSSL Funções
  • Computes shared secret for public value of remote and local DH or ECDH key

openssl_pkey_derive

(PHP 7 >= 7.3.0, PHP 8)

openssl_pkey_derive — Computes shared secret for public value of remote and local DH or ECDH key

Descrição

openssl_pkey_derive(OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key, OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key, int $key_length = 0): string|false

openssl_pkey_derive() takes a set of a public_key and private_key and derives a shared secret, for either DH or EC keys.

Parâmetros

public_key

public_key is the public key for the derivation. See Public/Private Key parameters for a list of valid values.

private_key

private_key is the private key for the derivation. See Public/Private Key parameters for a list of valid values.

key_length

If not zero, will set the desired length of the derived secret.

Valor Retornado

The derived secret on success ou false em caso de falha.

Exemplos

Exemplo #1 openssl_pkey_derive() example

<?php
// Load in private key
$priv = openssl_pkey_get_private("-----BEGIN PRIVATE KEY-----
MIICJgIBADCCARcGCSqGSIb3DQEDATCCAQgCggEBAJLxRCaZ933uW+AXmabHFDDy
upojBIRlbmQLJZfigDaSA1f9YOTsIv+WwVFTX/J1mtCyx9uBcz0Nt2kmVwxWuc2f
VtCEMPsmLsVXX7xRUFLpyX1Y1IYGBVXQOoOvLWYQjpZgnx47Pkh1Ok1+smffztfC
0DCNt4KorWrbsPcmqBejXHN79KvWFjZmXOksRiNu/Bn76RiqvofC4z8Ri3kHXQG2
197JGZzzFXHadGC3xbkg8UxsNbYhVMKbm0iANfafUH7/hoS9UjAVQYtvwe7YNiW/
HnyfVCrKwcc7sadd8Iphh+3lf5P1AhaQEAMytanrzq9RDXKBxuvpSJifRYasZYsC
AQIEggEEAoIBAGwAYC2E81Y1U2Aox0U7u1+vBcbht/OO87tutMvc4NTLf6NLPHsW
cPqBixs+3rSn4fADzAIvdLBmogjtiIZoB6qyHrllF/2xwTVGEeYaZIupQH3bMK2b
6eUvnpuu4Ytksiz6VpXBBRMrIsj3frM+zUtnq8vKUr+TbjV2qyKR8l3eNDwzqz30
dlbKh9kIhZafclHfRVfyp+fVSKPfgrRAcLUgAbsVjOjPeJ90xQ4DTMZ6vjiv6tHM
hkSjJIcGhRtSBzVF/cT38GyCeTmiIA/dRz2d70lWrqDQCdp9ArijgnpjNKAAulSY
CirnMsGZTDGmLOHg4xOZ5FEAzZI2sFNLlcw=
-----END PRIVATE KEY-----
");

// Load in public key
$pub = openssl_pkey_get_public("-----BEGIN PUBLIC KEY-----
MIICJDCCARcGCSqGSIb3DQEDATCCAQgCggEBAJLxRCaZ933uW+AXmabHFDDyupoj
BIRlbmQLJZfigDaSA1f9YOTsIv+WwVFTX/J1mtCyx9uBcz0Nt2kmVwxWuc2fVtCE
MPsmLsVXX7xRUFLpyX1Y1IYGBVXQOoOvLWYQjpZgnx47Pkh1Ok1+smffztfC0DCN
t4KorWrbsPcmqBejXHN79KvWFjZmXOksRiNu/Bn76RiqvofC4z8Ri3kHXQG2197J
GZzzFXHadGC3xbkg8UxsNbYhVMKbm0iANfafUH7/hoS9UjAVQYtvwe7YNiW/Hnyf
VCrKwcc7sadd8Iphh+3lf5P1AhaQEAMytanrzq9RDXKBxuvpSJifRYasZYsCAQID
ggEFAAKCAQAiCSBpxvGgsTorxAWtcAlSmzAJnJxFgSPef0g7OjhESytnc8G2QYmx
ovMt5KVergcitztWh08hZQUdAYm4rI+zMlAFDdN8LWwBT/mGKSzRkWeprd8E7mvy
ucqC1YXCMqmIwPySvLQUB/Dl8kgau7BLAnIJm8VP+MVrn8g9gghD0qRCgPgtEaDV
vocfgnOU43rhKnIgO0cHOKtw2qybSFB8QuZrYugq4j8Bwkrzh6rdMMeyMl/ej5Aj
c0wamOzuBDtXt0T9+Fx3khHaowjCc7xJZRgZCxg43SbqMWJ9lUg94I7+LTX61Gyv
dtlkbGbtoDOnxeNnN93gwQZngGYZYciu
-----END PUBLIC KEY-----
");

// Outputs the hex version of the derived key
echo bin2hex(openssl_pkey_derive($pub,$priv));


Gets an exportable representation of a key into a file

  • « openssl_pkey_derive
  • openssl_pkey_export »
  • PHP Manual
  • OpenSSL Funções
  • Gets an exportable representation of a key into a file

openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_export_to_file — Gets an exportable representation of a key into a file

Descrição

openssl_pkey_export_to_file(
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key,
string $output_filename,
?string $passphrase = null,
?array $options = null
): bool

openssl_pkey_export_to_file() saves an ascii-armoured (PEM encoded) rendition of key into the file named by output_filename.

Nota: É preciso ter um arquivo openssl.cnf válido instalado para que esta função funcione corretamente. Consulte as notas na seção de instalação para obter mais informações.

Parâmetros

key

output_filename

Path to the output file.

passphrase

The key can be optionally protected by a passphrase.

options

options 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 options.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.


Gets an exportable representation of a key into a string

  • « openssl_pkey_export_to_file
  • openssl_pkey_free »
  • PHP Manual
  • OpenSSL Funções
  • Gets an exportable representation of a key into a string

openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_export — Gets an exportable representation of a key into a string

Descrição

openssl_pkey_export(
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key,
string &$output,
?string $passphrase = null,
?array $options = null
): bool

openssl_pkey_export() exports key as a PEM encoded string and stores it into output (which is passed by reference).

Nota: É preciso ter um arquivo openssl.cnf válido instalado para que esta função funcione corretamente. Consulte as notas na seção de instalação para obter mais informações.

Parâmetros

key

output

passphrase

The key is optionally protected by passphrase.

options

options 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 options.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.


Frees a private key

  • « openssl_pkey_export
  • openssl_pkey_get_details »
  • PHP Manual
  • OpenSSL Funções
  • Frees a private key

openssl_pkey_free

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_free — Frees a private key

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

openssl_pkey_free(OpenSSLAsymmetricKey $key): void

Nota:

Esta função não tem efeito. Antes do PHP 8.0.0, esta função era usada para fechar o recurso.

This function frees a private key created by openssl_pkey_new().

Parâmetros

key

Resource holding the key.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | This function is now deprecated as it doesn't have an effect anymore.
8.0.0 | key accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.


Returns an array with the key details

  • « openssl_pkey_free
  • openssl_pkey_get_private »
  • PHP Manual
  • OpenSSL Funções
  • Returns an array with the key details

openssl_pkey_get_details

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

openssl_pkey_get_details — Returns an array with the key details

Descrição

openssl_pkey_get_details(OpenSSLAsymmetricKey $key): array|false

This function returns the key details (bits, key, type).

Parâmetros

key

Resource holding the key.

Valor Retornado

Returns an array with the key details on success or false on failure. Returned array has indexes bits (number of bits), key (string representation of the public key) and type (type of the key which is one of OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_EC or -1 meaning unknown).

Depending on the key type used, additional details may be returned. Note that some elements may not always be available.

  • OPENSSL_KEYTYPE_RSA, an additional array key named "rsa", containing the key data is returned.
    Key | Descrição
    "n" | modulus
    "e" | public exponent
    "d" | private exponent
    "p" | prime 1
    "q" | prime 2
    "dmp1" | exponent1, d mod (p-1)
    "dmq1" | exponent2, d mod (q-1)
    "iqmp" | coefficient, (inverse of q) mod p
  • OPENSSL_KEYTYPE_DSA, an additional array key named "dsa", containing the key data is returned.
    Key | Descrição
    "p" | prime number (public)
    "q" | 160-bit subprime, q | p-1 (public)
    "g" | generator of subgroup (public)
    "priv_key" | private key x
    "pub_key" | public key y = g^x
  • OPENSSL_KEYTYPE_DH, an additional array key named "dh", containing the key data is returned.
    Key | Descrição
    "p" | prime number (shared)
    "g" | generator of Z_p (shared)
    "priv_key" | private DH value x
    "pub_key" | public DH value g^x
  • OPENSSL_KEYTYPE_EC, an additional array key named "ec", containing the key data is returned.
    Key | Descrição
    "curve_name" | name of curve, see openssl_get_curve_names()
    "curve_oid" | ASN1 Object identifier (OID) for EC curve.
    "x" | x coordinate (public)
    "y" | y coordinate (public)
    "d" | private key

Registro de Alterações

Versão | Descrição
8.0.0 | key accepts an OpenSSLAsymmetricKey now; previously, a resource of type OpenSSL key was accepted.


Get a private key

  • « openssl_pkey_get_details
  • openssl_pkey_get_public »
  • PHP Manual
  • OpenSSL Funções
  • Get a private key

openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_get_private — Get a private key

Descrição

openssl_pkey_get_private(OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key, ?string $passphrase = null): OpenSSLAsymmetricKey|false

openssl_pkey_get_private() parses private_key and prepares it for use by other functions.

Parâmetros

private_key

private_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.

passphrase

The optional parameter passphrase must be used if the specified key is encrypted (protected by a passphrase).

Valor Retornado

Returns an OpenSSLAsymmetricKey instance on success, or false on error.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.
8.0.0 | passphrase is nullable now.


Extract public key from certificate and prepare it for use

  • « openssl_pkey_get_private
  • openssl_pkey_new »
  • PHP Manual
  • OpenSSL Funções
  • Extract public key from certificate and prepare it for use

openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_get_public — Extract public key from certificate and prepare it for use

Descrição

openssl_pkey_get_public(OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key): OpenSSLAsymmetricKey|false

openssl_pkey_get_public() extracts the public key from public_key and prepares it for use by other functions.

Parâmetros

public_key

public_key can be one of the following:

  1. an OpenSSLAsymmetricKey instance
  2. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/public key (it may contain both).
  3. A PEM formatted public key.

Valor Retornado

Returns an OpenSSLAsymmetricKey instance on success, or false on error.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
8.0.0 | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.


Generates a new private key

  • « openssl_pkey_get_public
  • openssl_private_decrypt »
  • PHP Manual
  • OpenSSL Funções
  • Generates a new private key

openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_new — Generates a new private key

Descrição

openssl_pkey_new(?array $options = null): OpenSSLAsymmetricKey|false

openssl_pkey_new() generates a new private key. How to obtain the public component of the key is shown in an example below.

Nota: É preciso ter um arquivo openssl.cnf válido instalado para que esta função funcione corretamente. Consulte as notas na seção de instalação para obter mais informações.

Parâmetros

options

You can finetune the key generation (such as specifying the number of bits) using options. See openssl_csr_new() for more information about options.

Valor Retornado

Returns an OpenSSLAsymmetricKey instance for the pkey on success, or false on error.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was returned.
7.1.0 | The curve_name option was added to make it possible to create EC keys.

Exemplos

Exemplo #1 Obtain the public key from a private key

<?php
$private_key = openssl_pkey_new();
$public_key_pem = openssl_pkey_get_details($private_key)['key'];
echo $public_key_pem;
$public_key = openssl_pkey_get_public($public_key_pem);
var_dump($public_key);
?>

O exemplo acima produzirá algo semelhante a:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArZFsmN2P6rx1Xt7YV95o
gcdlal0k3ryiIhFNzjwtRNNTXfEfBr6lUuaIJYQ8/XqEBX0hpcfuuF6tTRlonA3t
WLME0QFD93YVsAaXcy76YqjjqcRRodIBphAbYyyMI/lXkQAdn7kbAmr7neSOsMYJ
El9Wo4Hl4oG6e52ZnYHyqW9dxh4hX93eupR2TmcCdVf+r9xoHewP0KJYSHt7vDUX
AQlWYcQiWHIadFsmL0orr6mutlXFReoHbesgKY9/3YLOu0JfxflSjIZ2JeL1NTl1
MsmODsUwgAUrwnWKKx+eQUP5g3GnSB3dPkRh9zRVRiLNWbCugyjrf3e6DgQWrW7j
pwIDAQAB
-----END PUBLIC KEY-----
resource(5) of type (OpenSSL key)


Decrypts data with private key

  • « openssl_pkey_new
  • openssl_private_encrypt »
  • PHP Manual
  • OpenSSL Funções
  • Decrypts data with private key

openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_private_decrypt — Decrypts data with private key

Descrição

openssl_private_decrypt(
string $data,
string &$decrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_private_decrypt() decrypts data that was previously encrypted via openssl_public_encrypt() and stores the result into decrypted_data.

You can use this function e.g. to decrypt data which is supposed to only be available to you.

Parâmetros

data

decrypted_data

private_key

private_key must be the private key corresponding that was used to encrypt the data.

padding

padding can be one of OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.

Veja Também

  • openssl_public_encrypt() - Encrypts data with public key
  • openssl_public_decrypt() - Decrypts data with public key


Encrypts data with private key

  • « openssl_private_decrypt
  • openssl_public_decrypt »
  • PHP Manual
  • OpenSSL Funções
  • Encrypts data with private key

openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_private_encrypt — Encrypts data with private key

Descrição

openssl_private_encrypt(
string $data,
string &$encrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_private_encrypt() encrypts data with private private_key and stores the result into encrypted_data. Encrypted data can be decrypted via openssl_public_decrypt().

This function can be used e.g. to sign data (or its hash) to prove that it is not written by someone else.

Parâmetros

data

encrypted_data

private_key

padding

padding can be one of OPENSSL_PKCS1_PADDING, OPENSSL_NO_PADDING.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.

Veja Também

  • openssl_public_encrypt() - Encrypts data with public key
  • openssl_public_decrypt() - Decrypts data with public key


Decrypts data with public key

  • « openssl_private_encrypt
  • openssl_public_encrypt »
  • PHP Manual
  • OpenSSL Funções
  • Decrypts data with public key

openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_public_decrypt — Decrypts data with public key

Descrição

openssl_public_decrypt(
string $data,
string &$decrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_public_decrypt() decrypts data that was previous encrypted via openssl_private_encrypt() and stores the result into decrypted_data.

You can use this function e.g. to check if the message was written by the owner of the private key.

Parâmetros

data

decrypted_data

public_key

public_key must be the public key corresponding that was used to encrypt the data.

padding

padding can be one of OPENSSL_PKCS1_PADDING, OPENSSL_NO_PADDING.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.

Veja Também

  • openssl_private_encrypt() - Encrypts data with private key
  • openssl_private_decrypt() - Decrypts data with private key


Encrypts data with public key

  • « openssl_public_decrypt
  • openssl_random_pseudo_bytes »
  • PHP Manual
  • OpenSSL Funções
  • Encrypts data with public key

openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_public_encrypt — Encrypts data with public key

Descrição

openssl_public_encrypt(
string $data,
string &$encrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_public_encrypt() encrypts data with public public_key and stores the result into encrypted_data. Encrypted data can be decrypted via openssl_private_decrypt().

This function can be used e.g. to encrypt message which can be then read only by owner of the private key. It can be also used to store secure data in database.

Parâmetros

data

encrypted_data

This will hold the result of the encryption.

public_key

The public key.

padding

padding can be one of OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.

Veja Também

  • openssl_private_encrypt() - Encrypts data with private key
  • openssl_private_decrypt() - Decrypts data with private key


Generate a pseudo-random string of bytes

  • « openssl_public_encrypt
  • openssl_seal »
  • PHP Manual
  • OpenSSL Funções
  • Generate a pseudo-random string of bytes

openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_random_pseudo_bytes — Generate a pseudo-random string of bytes

Descrição

openssl_random_pseudo_bytes(int $length, bool &$strong_result = null): string

Generates a string of pseudo-random bytes, with the number of bytes determined by the length parameter.

It also indicates if a cryptographically strong algorithm was used to produce the pseudo-random bytes, and does this via the optional strong_result parameter. It's rare for this to be false, but some systems may be broken or old.

Parâmetros

length

The length of the desired string of bytes. Must be a positive integer less than or equal to 2147483647. PHP will try to cast this parameter to a non-null integer to use it.

strong_result

If passed into the function, this will hold a bool value that determines if the algorithm used was "cryptographically strong", e.g., safe for usage with GPG, passwords, etc. true if it did, otherwise false

Valor Retornado

Returns the generated string of bytes.

Erros/Exceções

openssl_random_pseudo_bytes() throws an Exception on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | strong_result is nullable now.
7.4.0 | The function no longer returns false on failure, but throws an Exception instead.

Exemplos

Exemplo #1 openssl_random_pseudo_bytes() example

<?php
for ($i = 1; $i <= 4; $i++) {
$bytes = openssl_random_pseudo_bytes($i, $cstrong);
$hex = bin2hex($bytes);

echo "Lengths: Bytes: $i and Hex: " . strlen($hex) . PHP_EOL;
var_dump($hex);
var_dump($cstrong);
echo PHP_EOL;
}
?>

O exemplo acima produzirá algo semelhante a:

Lengths: Bytes: 1 and Hex: 2
string(2) "42"
bool(true)

Lengths: Bytes: 2 and Hex: 4
string(4) "dc6e"
bool(true)

Lengths: Bytes: 3 and Hex: 6
string(6) "288591"
bool(true)

Lengths: Bytes: 4 and Hex: 8
string(8) "ab86d144"
bool(true)

Veja Também

  • random_bytes() - Get cryptographically secure random bytes
  • bin2hex() - Converte um dado binário em representação hexadecimal
  • crypt() - One-way string hashing
  • random_int() - Get a cryptographically secure, uniformly selected integer


Seal (encrypt) data

  • « openssl_random_pseudo_bytes
  • openssl_sign »
  • PHP Manual
  • OpenSSL Funções
  • Seal (encrypt) data

openssl_seal

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_seal — Seal (encrypt) data

Descrição

openssl_seal(
string $data,
string &$sealed_data,
array &$encrypted_keys,
array $public_key,
string $cipher_algo,
string &$iv = null
): int|false

openssl_seal() seals (encrypts) data by using the given cipher_algo with a randomly generated secret key. The key is encrypted with each of the public keys associated with the identifiers in public_key and each encrypted key is returned in encrypted_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.

Parâmetros

data

The data to seal.

sealed_data

The sealed data.

encrypted_keys

Array of encrypted keys.

public_key

Array of OpenSSLAsymmetricKey instances containing public keys.

cipher_algo

The cipher method.

Cuidado

The default value ('RC4') is considered insecure. It is strongly recommended to explicitly specify a secure cipher method.

iv

The initialization vector.

Valor Retornado

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 encrypted_keys.

Registro de Alterações

Versão | Descrição
8.0.0 | public_key accepts an array of OpenSSLAsymmetricKey instances now; previously, an array of resources of type OpenSSL key was accepted.
8.0.0 | cipher_algo is no longer an optional parameter.
8.0.0 | iv is nullable now.

Exemplos

Exemplo #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);
?>

Veja Também

  • openssl_open() - Open sealed data


Generate signature

  • « openssl_seal
  • openssl_spki_export_challenge »
  • PHP Manual
  • OpenSSL Funções
  • Generate signature

openssl_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_sign — Generate signature

Descrição

openssl_sign(
string $data,
string &$signature,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string|int $algorithm = OPENSSL_ALGO_SHA1
): bool

openssl_sign() computes a signature for the specified data by generating a cryptographic digital signature using the private key associated with private_key. Note that the data itself is not encrypted.

Parâmetros

data

The string of data you wish to sign

signature

If the call was successful the signature is returned in signature.

private_key

OpenSSLAsymmetricKey - a key, returned by openssl_get_privatekey()

string - a PEM formatted key

algorithm

int - one of these Signature Algorithms.

string - a valid string returned by openssl_get_md_methods() example, "sha256WithRSAEncryption" or "sha384".

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.

Exemplos

Exemplo #1 openssl_sign() example

<?php
// $data is assumed to contain the data to be signed

// fetch private key from file and ready it
$pkeyid = openssl_pkey_get_private("file://src/openssl-0.9.6/demos/sign/key.pem");

// compute signature
openssl_sign($data, $signature, $pkeyid);

// free the key from memory
openssl_free_key($pkeyid);
?>

Exemplo #2 openssl_sign() example

<?php
//data you want to sign
$data = 'my data';

//create new private and public key
$new_key_pair = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
openssl_pkey_export($new_key_pair, $private_key_pem);

$details = openssl_pkey_get_details($new_key_pair);
$public_key_pem = $details['key'];

//create signature
openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256);

//save for later
file_put_contents('private_key.pem', $private_key_pem);
file_put_contents('public_key.pem', $public_key_pem);
file_put_contents('signature.dat', $signature);

//verify signature
$r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption");
var_dump($r);
?>

Veja Também

  • openssl_verify() - Verify signature


Exports the challenge associated with a signed public key and challenge

  • « openssl_sign
  • openssl_spki_export »
  • PHP Manual
  • OpenSSL Funções
  • Exports the challenge associated with a signed public key and challenge

openssl_spki_export_challenge

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_spki_export_challenge — Exports the challenge associated with a signed public key and challenge

Descrição

openssl_spki_export_challenge(string $spki): string|false

Exports challenge from encoded signed public key and challenge

Parâmetros

spki

Expects a valid signed public key and challenge

Valor Retornado

Returns the associated challenge string or false on failure.

Erros/Exceções

Emits an E_WARNING level error if an invalid argument is passed via the spki parameter.

Exemplos

Exemplo #1 openssl_spki_export_challenge() example

Extracts the associated challenge string or NULL on failure.

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');
$challenge = openssl_spki_export_challenge(preg_replace('/SPKAC=/', '', $spkac));
?>

Exemplo #2 openssl_spki_export_challenge() example from <keygen>

Extracts the associated challenge string issued from the <keygen> element

<?php
$challenge = openssl_spki_export_challenge(preg_replace('/SPKAC=/', '', $_POST['spkac']));
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Veja Também

  • openssl_spki_new() - Generate a new signed public key and challenge
  • openssl_spki_verify() - Verifies a signed public key and challenge
  • openssl_spki_export() - Exports a valid PEM formatted public key signed public key and challenge
  • openssl_get_md_methods() - Gets available digest methods
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Exports a valid PEM formatted public key signed public key and challenge

  • « openssl_spki_export_challenge
  • openssl_spki_new »
  • PHP Manual
  • OpenSSL Funções
  • Exports a valid PEM formatted public key signed public key and challenge

openssl_spki_export

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_spki_export — Exports a valid PEM formatted public key signed public key and challenge

Descrição

openssl_spki_export(string $spki): string|false

Exports PEM formatted public key from encoded signed public key and challenge

Parâmetros

spki

Expects a valid signed public key and challenge

Valor Retornado

Returns the associated PEM formatted public key or false on failure.

Erros/Exceções

Emits an E_WARNING level error if an invalid argument is passed via the spki parameter.

Exemplos

Exemplo #1 openssl_spki_export() example

Extracts the associated PEM formatted public key or null on failure.

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');
$pubKey = openssl_spki_export(preg_replace('/SPKAC=/', '', $spkac));

if ($pubKey) {
echo $pubKey;
}
?>

Exemplo #2 openssl_spki_export() example from <keygen>

Extracts the associated PEM formatted public key issued from the <keygen> element

<?php
$spkac = openssl_spki_export(preg_replace('/SPKAC=/', '', $_POST['spkac']));
if ($spkac != NULL) {
echo $spkac;
} else {
echo "Extraction of pub key failed";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Veja Também

  • openssl_spki_new() - Generate a new signed public key and challenge
  • openssl_spki_verify() - Verifies a signed public key and challenge
  • openssl_spki_export_challenge() - Exports the challenge associated with a signed public key and challenge
  • openssl_get_md_methods() - Gets available digest methods
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Generate a new signed public key and challenge

  • « openssl_spki_export
  • openssl_spki_verify »
  • PHP Manual
  • OpenSSL Funções
  • Generate a new signed public key and challenge

openssl_spki_new

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_spki_new — Generate a new signed public key and challenge

Descrição

openssl_spki_new(OpenSSLAsymmetricKey $private_key, string $challenge, int $digest_algo = OPENSSL_ALGO_MD5): string|false

Generates a signed public key and challenge using specified hashing algorithm

Parâmetros

private_key

private_key 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.

challenge

The challenge associated to associate with the SPKAC

digest_algo

The digest algorithm. See openssl_get_md_method().

Valor Retornado

Returns a signed public key and challenge string or false on failure.

Erros/Exceções

Emits an E_WARNING level error if an unknown signature algorithm is passed via the digest_algo parameter.

Registro de Alterações

Versão | Descrição
8.0.0 | private_key accepts an OpenSSLAsymmetricKey instance now; previously, a resource of type OpenSSL key was accepted.

Exemplos

Exemplo #1 openssl_spki_new() example

Generate a new SPKAC with the default digest (MD5)

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'testing');

if ($spkac !== NULL) {
echo $spkac;
} else {
echo "SPKAC generation failed";
}
?>

O exemplo acima produzirá algo semelhante a:

MIICRzCCAS8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDM3V3sS4o4
mB9dczziRnjGAmSp+JwPrHoYMAFGvDNmZGyiWfU586X4BKs++BAj7e/FsAfno0Hd
hN9FwpCNFSox30L03nQvLYJE7f/WqigwBeMRT7Op/xvFks4sT70xP2HRYv4KqP9a
WRcKU6cFH8VxhFhqM2txEIxZKdFLaL28yT7bEDmcglf4JLDdgNMb9rET1dkgtKE6
dOaJHPGjf1uvnOH4YwkQr7n4sLUR3Kdbh0ZJAFuQVDZulo+LLzxBBkqJJcB6FhF+
oXCdHTKZnqAhpWDz+NXYytAmevab6IYm5TWPWsJUv1YKJA5lg2mXbbloIZlN9Mgc
i9fi03bdw+crAgMBAAEWB3Rlc3RpbmcwDQYJKoZIhvcNAQEEBQADggEBALyUvP/o
pPSoWBlorFyZ2RnGwKf9qMpE0q2IJP7G3oDR4LyK/m933DUiZ+YnqThrH/CWb4Ek
y5I3OCyl3S4wCuU1ibZZwDVwYShr5ELp0J9PEf7qMQZOhNsizoC7k+Czb2xB6hYW
sKfsfTKm3cXBtH3fdgc/Z1Z7VSWnAzYo38snqm72NTf5yFRnrQdphNNXi+kn1zHA
lxXRyFDXHOcYsOnwAWfyXFA4QDHQ0ezz0UoCY8gJXovcZb4GRYqOLUAsF2HcNboy
29WN8VqE29sL9QxVZFlwMcqyoLcNnyw38GvNvAGqSvzzbnEFP2MAQXJVe0H0hdp/
MML5G2iNVgNozAo=

Veja Também

  • openssl_spki_verify() - Verifies a signed public key and challenge
  • openssl_spki_export_challenge() - Exports the challenge associated with a signed public key and challenge
  • openssl_spki_export() - Exports a valid PEM formatted public key signed public key and challenge
  • openssl_get_md_methods() - Gets available digest methods
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Verifies a signed public key and challenge

  • « openssl_spki_new
  • openssl_verify »
  • PHP Manual
  • OpenSSL Funções
  • Verifies a signed public key and challenge

openssl_spki_verify

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_spki_verify — Verifies a signed public key and challenge

Descrição

openssl_spki_verify(string $spki): bool

Validates the supplied signed public key and challenge

Parâmetros

spki

Expects a valid signed public key and challenge

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emits an E_WARNING level error if an invalid argument is passed via the spki parameter.

Exemplos

Exemplo #1 openssl_spki_verify() example

Validates an existing signed public key and challenge

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');

if (openssl_spki_verify(preg_replace('/SPKAC=/', '', $spkac))) {
echo $spkac;
} else {
echo "SPKAC validation failed";
}
?>

Exemplo #2 openssl_spki_verify() example from <keygen>

Validates an existing signed public key and challenge issued from the <keygen> element

<?php
if (openssl_spki_verify(preg_replace('/SPKAC=/', '', $_POST['spkac']))) {
echo $spkac;
} else {
echo "SPKAC validation failed";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Veja Também

  • openssl_spki_new() - Generate a new signed public key and challenge
  • openssl_spki_export_challenge() - Exports the challenge associated with a signed public key and challenge
  • openssl_spki_export() - Exports a valid PEM formatted public key signed public key and challenge
  • openssl_get_md_methods() - Gets available digest methods
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Verify signature

  • « openssl_spki_verify
  • openssl_x509_check_private_key »
  • PHP Manual
  • OpenSSL Funções
  • Verify signature

openssl_verify

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_verify — Verify signature

Descrição

openssl_verify(
string $data,
string $signature,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
string|int $algorithm = OPENSSL_ALGO_SHA1
): int|false

openssl_verify() verifies that the signature is correct for the specified data using the public key associated with public_key. This must be the public key corresponding to the private key used for signing.

Parâmetros

data

The string of data used to generate the signature previously

signature

A raw binary string, generated by openssl_sign() or similar means

public_key

OpenSSLAsymmetricKey - a key, returned by openssl_get_publickey()

string - a PEM formatted key (e.g. -----BEGIN PUBLIC KEY----- MIIBCgK...)

algorithm

int - one of these Signature Algorithms.

string - a valid string returned by openssl_get_md_methods() example, "sha1WithRSAEncryption" or "sha512".

Valor Retornado

Returns 1 if the signature is correct, 0 if it is incorrect, and -1 or false on error.

Registro de Alterações

Versão | Descrição
8.0.0 | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.

Exemplos

Exemplo #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
$pubkeyid = openssl_pkey_get_public("file://src/openssl-0.9.6/demos/sign/cert.pem");

// 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);
?>

Exemplo #2 openssl_verify() example

<?php
//data you want to sign
$data = 'my data';

//create new private and public key
$private_key_res = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$details = openssl_pkey_get_details($private_key_res);
$public_key_res = openssl_pkey_get_public($details['key']);

//create signature
openssl_sign($data, $signature, $private_key_res, "sha256WithRSAEncryption");

//verify signature
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA256);
if ($ok == 1) {
echo "valid";
} elseif ($ok == 0) {
echo "invalid";
} else {
echo "error: ".openssl_error_string();
}
?>

Veja Também

  • openssl_sign() - Generate signature


Checks if a private key corresponds to a certificate

  • « openssl_verify
  • openssl_x509_checkpurpose »
  • PHP Manual
  • OpenSSL Funções
  • Checks if a private key corresponds to a certificate

openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_x509_check_private_key — Checks if a private key corresponds to a certificate

Descrição

openssl_x509_check_private_key(OpenSSLCertificate|string $certificate, OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key): bool

Checks whether the given private_key is the private key that corresponds to certificate.

Aviso

The function does not check if private_key is indeed a private key or not. It merely compares the public materials (e.g. exponent and modulus of an RSA key) and/or key parameters (e.g. EC params of an EC key) of a key pair.

This means, for example, that a public key could be given for private_key and the function may return true.

Parâmetros

certificate

The certificate.

private_key

The private key.

Valor Retornado

Returns true if private_key is the private key that corresponds to certificate, or false otherwise.

Registro de Alterações

Versão | Descrição
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
8.0.0 | private_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.


Verifies if a certificate can be used for a particular purpose

  • « openssl_x509_check_private_key
  • openssl_x509_export_to_file »
  • PHP Manual
  • OpenSSL Funções
  • Verifies if a certificate can be used for a particular purpose

openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_checkpurpose — Verifies if a certificate can be used for a particular purpose

Descrição

openssl_x509_checkpurpose(
OpenSSLCertificate|string $certificate,
int $purpose,
array $ca_info = [],
?string $untrusted_certificates_file = null
): bool|int

openssl_x509_checkpurpose() examines a certificate to see if it can be used for the specified purpose.

Parâmetros

certificate

The examined certificate.

purpose

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!

ca_info

ca_info should be an array of trusted CA files/dirs as described in Certificate Verification.

untrusted_certificates_file

If specified, this should be the name of a PEM encoded file holding certificates that can be used to help verify the certificate, although no trust is placed in the certificates that come from that file.

Valor Retornado

Returns true if the certificate can be used for the intended purpose, false if it cannot, or -1 on error.

Registro de Alterações

Versão | Descrição
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
8.0.0 | untrusted_certificates_file is nullable now.


Exports a certificate to file

  • « openssl_x509_checkpurpose
  • openssl_x509_export »
  • PHP Manual
  • OpenSSL Funções
  • Exports a certificate to file

openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_x509_export_to_file — Exports a certificate to file

Descrição

openssl_x509_export_to_file(OpenSSLCertificate|string $certificate, string $output_filename, bool $no_text = true): bool

openssl_x509_export_to_file() stores certificate into a file named by output_filename in a PEM encoded format.

Parâmetros

x509

Consulte Parâmetros Chave/Certificado para obter uma lista de valores válidos.

output_filename

Path to the output file.

no_text

O parâmetro opcional notext afeta a verbosidade da saída; se for false, então informações adicionais legíveis para humanos serão incluídas na saída. O valor padrão de notext é true.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.


Exports a certificate as a string

  • « openssl_x509_export_to_file
  • openssl_x509_fingerprint »
  • PHP Manual
  • OpenSSL Funções
  • Exports a certificate as a string

openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_x509_export — Exports a certificate as a string

Descrição

openssl_x509_export(OpenSSLCertificate|string $certificate, string &$output, bool $no_text = true): bool

openssl_x509_export() stores certificate into a string named by output in a PEM encoded format.

Parâmetros

x509

Consulte Parâmetros Chave/Certificado para obter uma lista de valores válidos.

output

On success, this will hold the PEM.

no_text

O parâmetro opcional notext afeta a verbosidade da saída; se for false, então informações adicionais legíveis para humanos serão incluídas na saída. O valor padrão de notext é true.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.


Calculates the fingerprint, or digest, of a given X.509 certificate

  • « openssl_x509_export
  • openssl_x509_free »
  • PHP Manual
  • OpenSSL Funções
  • Calculates the fingerprint, or digest, of a given X.509 certificate

openssl_x509_fingerprint

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_x509_fingerprint — Calculates the fingerprint, or digest, of a given X.509 certificate

Descrição

openssl_x509_fingerprint(OpenSSLCertificate|string $certificate, string $digest_algo = "sha1", bool $binary = false): string|false

openssl_x509_fingerprint() returns the digest of certificate as a string.

Parâmetros

x509

Consulte Parâmetros Chave/Certificado para obter uma lista de valores válidos.

digest_algo

The digest method or hash algorithm to use, e.g. "sha256", one of openssl_get_md_methods().

binary

When set to true, outputs raw binary data. false outputs lowercase hexits.

Valor Retornado

Returns a string containing the calculated certificate fingerprint as lowercase hexits unless binary is set to true in which case the raw binary representation of the message digest is returned.

Returns false on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.


Free certificate resource

  • « openssl_x509_fingerprint
  • openssl_x509_parse »
  • PHP Manual
  • OpenSSL Funções
  • Free certificate resource

openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_free — Free certificate resource

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

openssl_x509_free(OpenSSLCertificate $certificate): void

Nota:

Esta função não tem efeito. Antes do PHP 8.0.0, esta função era usada para fechar o recurso.

openssl_x509_free() frees the certificate associated with the specified certificate resource from memory.

Parâmetros

certificate

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | This function is now deprecated as it doesn't have an effect anymore.
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.


Parse an X509 certificate and return the information as an array

  • « openssl_x509_free
  • openssl_x509_read »
  • PHP Manual
  • OpenSSL Funções
  • Parse an X509 certificate and return the information as an array

openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_parse — Parse an X509 certificate and return the information as an array

Descrição

openssl_x509_parse(OpenSSLCertificate|string $certificate, bool $short_names = true): array|false

openssl_x509_parse() returns information about the supplied certificate, including fields such as subject name, issuer name, purposes, valid from and valid to dates etc.

Parâmetros

certificate

X509 certificate. See Key/Certificate parameters for a list of valid values.

short_names

short_names controls how the data is indexed in the array - if short_names 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.

Valor Retornado

The structure of the returned data is (deliberately) not yet documented, as it is still subject to change.

Registro de Alterações

Versão | Descrição
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.


Parse an X.509 certificate and return an object for it

  • « openssl_x509_parse
  • openssl_x509_verify »
  • PHP Manual
  • OpenSSL Funções
  • Parse an X.509 certificate and return an object for it

openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_read — Parse an X.509 certificate and return an object for it

Descrição

openssl_x509_read(OpenSSLCertificate|string $certificate): OpenSSLCertificate|false

openssl_x509_read() parses the certificate supplied by certificate and returns an OpenSSLCertificate object for it.

Parâmetros

certificate

X509 certificate. See Key/Certificate parameters for a list of valid values.

Valor Retornado

Returns an OpenSSLCertificate on success ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned.
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.


Verifies digital signature of x509 certificate against a public key

  • « openssl_x509_read
  • OpenSSLCertificate »
  • PHP Manual
  • OpenSSL Funções
  • Verifies digital signature of x509 certificate against a public key

openssl_x509_verify

(PHP 7 >= 7.4.0, PHP 8)

openssl_x509_verify — Verifies digital signature of x509 certificate against a public key

Descrição

openssl_x509_verify(OpenSSLCertificate|string $certificate, OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key): int

openssl_x509_verify() verifies that the certificate certificate was signed by the private key corresponding to public key public_key.

Parâmetros

x509

Consulte Parâmetros Chave/Certificado para obter uma lista de valores válidos.

public_key

OpenSSLAsymmetricKey - a key, returned by openssl_get_publickey()

string - a PEM formatted key (e.g. -----BEGIN PUBLIC KEY----- MIIBCgK...)

Valor Retornado

Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

Registro de Alterações

Versão | Descrição
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was accepted.
8.0.0 | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a resource of type OpenSSL key or OpenSSL X.509 was accepted.

Exemplos

Exemplo #1 openssl_x509_verify() example

<?php
$hostname = "news.php.net";
$ssloptions = array(
"capture_peer_cert" => true,
"capture_peer_cert_chain" => true,
"allow_self_signed"=> false,
"CN_match" => $hostname,
"verify_peer" => true,
"SNI_enabled" => true,
"SNI_server_name" => $hostname,
);

$ctx = stream_context_create( array("ssl" => $ssloptions) );
$result = stream_socket_client("ssl://$hostname:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx);
$cont = stream_context_get_params($result);
$x509 = $cont["options"]["ssl"]["peer_certificate"];
$certparsed = openssl_x509_parse($x509);

foreach($cont["options"]["ssl"]["peer_certificate_chain"] as $chaincert)
{
$chainparsed = openssl_x509_parse($chaincert);
$chain_public_key = openssl_get_publickey($chaincert);
$r = openssl_x509_verify($x509, $chain_public_key);
if ($r==1)
{
echo $certparsed['subject']['CN'];
echo " was digitally signed by ";
echo $chainparsed['subject']['CN']."\n";
}
}
?>

Veja Também

  • openssl_verify() - Verify signature
  • openssl_get_publickey() - Sinônimo de openssl_pkey_get_public


The OpenSSLCertificate class

(PHP 8)

Introdução

A fully opaque class which replaces OpenSSL X.509 resources as of PHP 8.0.0.

Resumo da classe

final class OpenSSLCertificate {
}


The OpenSSLCertificateSigningRequest class

(PHP 8)

Introdução

A fully opaque class which replaces OpenSSL X.509 CSR resources as of PHP 8.0.0.

Resumo da classe

final class OpenSSLCertificateSigningRequest {
}


The OpenSSLAsymmetricKey class

(PHP 8)

Introdução

A fully opaque class which replaces OpenSSL key resources as of PHP 8.0.0.

Resumo da classe

final class OpenSSLAsymmetricKey {
}


Password Hashing

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções de Password Hashing
    • password_get_info — Retorna a informações sobre o hash fornecido
    • password_hash — Cria um hash de senha
    • password_needs_rehash — Verifica se o hash informado corresponde às opções especificadas
    • password_verify — Verifica se uma senha corresponde a um hash


Introdução

A API de password hashing fornece uma interface fácil de usar em torno de crypt() e alguns outros algoritmos de hash de senha, para facilitar a criação e o gerenciamento de senhas de forma segura.


Dependências

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Para o password hashing Argon2, é necessário o uso do » libargon2. A partir do PHP 7.3.0, é necessário ter a versão 20161029 ou posterior do libargon2.


Instalação

Nenhuma instalação é necessária para usar estas funções; elas fazem parte do núcleo do PHP.

Para habilitar o password hashing Argon2, no entanto, o PHP deve ser compilado com suporte ao libargon2 utilizando a opção de configuração --with-password-argon2.

Antes do PHP 8.1.0, era possível especificar o diretório argon2 com --with-password-argon2[=DIR].


Constantes pré-definidas

As constantes abaixo estão sempre disponíveis como parte do núcleo do PHP.

PASSWORD_BCRYPT (string)

PASSWORD_BCRYPT é usada para criar novas hashes de senha usando o algoritmo CRYPT_BLOWFISH.

Sempre terminará com um hash usando o formato de criptografia "$2y$", com 60 caracteres.

Opções suportadas:

  • salt (string) - para fornecer manualmente um salt que será usado ao fazer o hash da senha. Observe que isso irá substituir e evitar que um salt seja gerado automaticamente.

    Se omitido, um salt aleatório será gerado pela função password_hash() para cada senha sofrendo hash. Esse é o modo de operação desejado e a partir do PHP 7.0.0 a opção salt foi descontinuada.

  • cost (int) - indica o custo de algoritmo que deve ser usado. Exemplos desses valores podem ser encontrados na página da função crypt().

    Se omitido, um valor padrão 10 será usado. Este é um bom patamar de custo, mas pode-se considerar aumentar esse valor dependendo do hardware.

PASSWORD_BCRYPT_DEFAULT_COST (int)

PASSWORD_ARGON2I (string)

PASSWORD_ARGON2I é utilizado para criar novos hashes utilizando o algoritmo Argon2i.

Opções:

  • memory_cost (int) - Memória máxima (em bytes) que poderá ser utilizada para calcular o hash Argon2. Padrão: PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (int) - Tempo máximo que poderá demorar para calcula o hash Argon2. Padrão: PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (int) - Número de threads utilizada para calcular o hash Argon2. Padrão: PASSWORD_ARGON2_DEFAULT_THREADS. Somente disponível com libargon2, mas não na implementação libsodium.

Disponível a partir do PHP 7.2.0.

PASSWORD_ARGON2ID (string)

PASSWORD_ARGON2ID é utilizado para criar novos hashes de senha com o algoritmo Argon2id. Ele suporta as mesmas opções de PASSWORD_ARGON2I.

Disponível a partir do PHP 7.3.0.

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (int)

Quantidade de memória padrão, em bytes, que será utilizado ao tentar calcular um hash.

Disponível a partir do PHP 7.2.0.

PASSWORD_ARGON2_DEFAULT_TIME_COST (int)

Quantidade de tempo padrão que será gasto tentando calcular um hash.

Disponível a partir do PHP 7.2.0.

PASSWORD_ARGON2_DEFAULT_THREADS (int)

Número de threads padrão qual a Argon2lib irá utilizar. Não disponível na implementação libsodium.

Disponível a partir do PHP 7.2.0.

PASSWORD_ARGON2_PROVIDER (string)

Disponível a partir do PHP 7.4.0.

PASSWORD_DEFAULT (mixed)

O algoritmo padrão a ser usado para fazer o hash se nenhum algoritmo for fornecido. Ele pode mudar com as novas versões do PHP quando algoritmos de hash novos e mais fortes forem suportados.

É importante notar que ao longo do tempo essa constante pode (e provavelmente vai) mudar. Assim sendo, deve-se estar ciente que o comprimento do hash resultante pode mudar. Portanto, se PASSWORD_DEFAULT for usada, deve-se armazenar o hash resultante de um modo que possa armazenar mais de 60 caracteres (255 é o comprimento recomendado).

Valores para esta constante:

  • PHP 5.5.0 - PASSWORD_BCRYPT

Registro de Alterações

Versão | Descrição
7.4.0 | Os valores informados como IDs de algoritimo (PASSWORD_BCRYPT, PASSWORD_ARGON2I, PASSWORD_ARGON2ID e PASSWORD_DEFAULT) agora são do tipo string. Anteriormente eles eram do tipo int.


Funções de Password Hashing

Índice

  • password_get_info — Retorna a informações sobre o hash fornecido
  • password_hash — Cria um hash de senha
  • password_needs_rehash — Verifica se o hash informado corresponde às opções especificadas
  • password_verify — Verifica se uma senha corresponde a um hash


Retorna a informações sobre o hash fornecido

  • « Funções de Password Hashing
  • password_hash »
  • PHP Manual
  • Funções de Password Hashing
  • Retorna a informações sobre o hash fornecido

password_get_info

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_get_info — Retorna a informações sobre o hash fornecido

Descrição

password_get_info(string $hash): array

Quando for passado um hash válido criado por um algoritmo suportado pela função password_hash(), esta função retornará um array com as informações sobre esse hash.

Parâmetros

hash

Um hash criado por password_hash().

Valor Retornado

Retorna um array associativo com três elementos:

  • algo, que corresponderá a uma constante de algoritmo de password
  • algoName, que terá o nome legível do algoritmo
  • options, que inclui as opções fornecidas quando chamou-se a função password_hash()


Cria um hash de senha

  • « password_get_info
  • password_needs_rehash »
  • PHP Manual
  • Funções de Password Hashing
  • Cria um hash de senha

password_hash

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_hash — Cria um hash de senha

Descrição

password_hash(string $password, string|int|null $algo, array $options = []): string

password_hash() cria um novo hash de senha usando um algoritmo forte de hash de mão única.

Os seguintes algoritmos são suportados atualmente:

  • PASSWORD_DEFAULT - Usa o algoritmo bcrypt (padrão desde o PHP 5.5.0). Perceba que essa constante foi desenhada para mudar ao longo do tempo a medida que novos algoritmos mais fortes forem adicionados ao PHP. Por essa razão, o comprimento do resultado da utilização desse identificador pode mudar ao longo do tempo. Por isso, é recomendado que armazene o resultado em uma coluna do banco de dados que possa ser expandida além dos 60 caracteres (255 caracteres seria uma boa escolha).
  • PASSWORD_BCRYPT - Usa o algoritmo CRYPT_BLOWFISH para criar o hash. Produzirá um hash compatível com o padrão crypt() usando o identificador "$2y$". O resultado será sempre uma string de 60 caracteres, ou false em caso de falha.
  • PASSWORD_ARGON2I - Usa o algoritmo Argon2i para criar o hash. Este algoritmo somente estará disponível se o PHP tiver sido compilado com suporte a Argon2.
  • PASSWORD_ARGON2ID - Usa o algoritmo Argon2is para criar o hash. Este algoritmo somente estará disponível se o PHP tiver sido compilado com suporte a Argon2.

Opções suportadas por PASSWORD_BCRYPT:

  • salt (string) - para fornecer manualmente um salt a ser usado quando estiver sendo feito o hash da senha. Perceba que isso irá sobrepor e evitar que um salt seja gerado automaticamente.

    Se omitido, um salt aleatório será gerado pela função password_hash() para cada senha sofrendo hash. Esse é o modo de operação desejado.

    Aviso

    A opção salt está defasada. Agora é preferível que simplesmente se utilize o salt que é gerado por padrão. A partir do PHP 8.0.0, um salt fornecido explicitamente será ignorado.

  • cost (int) - indica o custo de algoritmo que deve ser usado. Exemplos desses valores podem ser encontrados na página da função crypt().

    Se omitido, um valor padrão 10 será usado. Este é um bom patamar de custo, mas pode-se considerar aumentar esse valor dependendo do hardware.

Opções suportadas por PASSWORD_ARGON2I e PASSWORD_ARGON2ID:

  • memory_cost (int) - Máximo de mémoria (em kibibytes) que pode ser utilizado para computar o hash Argon2. O valor padrão é PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (int) - Quantidade máxima de tempo que pode levar para computar o hash Argon2. O valor padrão é PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (int) - Número de threads para computar o hash Argon2. O valor padrão é PASSWORD_ARGON2_DEFAULT_THREADS.

    Aviso

    Disponível somente quando o PHP usa a libargon2, e não com a implementação libsodium.

Parâmetros

password

A senha do usuário.

Cuidado

Usando PASSWORD_BCRYPT como algoritmo, resultará no parâmetro password sendo truncado em um comprimento máximo de 72 bytes.

algo

Uma constante de algoritmo de senha denotando o algoritmo a ser usado ao fazer o hash da senha.

options

Um array associativo contendo opções. Consulte as constantes de algoritmo de senha para obter a documentação sobre as opções suportadas por cada algoritmo.

Se omitido, um salt aleatório será gerado e o custo padrão será usado.

Valor Retornado

Retorna o hash da senha.

O algoritmo, o custo e o salt utilizados são retornados como parte do hash. Dessa forma, toda informação necessária para verificar o hash é incluída nele. Isso permite que a função password_verify() verifique o hash sem precisar de um armazenamento separado para a informação do salt ou do algoritmo.

Registro de Alterações

Versão | Descrição
8.0.0 | password_hash() não mais retorna false em caso de falha, em vez disso uma exceção ValueError será lançada se o algoritmo de hash da senha não for válido, ou uma exceção Error se o cálculo do hash falhou por motivo desconhecido.
8.0.0 | O parâmetros algo agora pode ser nulo.
7.4.0 | O parâmetro algo agora espera uma string, mas ainda aceita ints para compatibilidade com versões anteriores.
7.4.0 | A extensão sodium fornece uma implementação alternativa para senhas Argon2.
7.3.0 | Suporte para senhas Argon2id usando PASSWORD_ARGON2ID foi adicionado.
7.2.0 | Suporte para senhas Argon2i usando PASSWORD_ARGON2I foi adicionado.

Exemplos

Exemplo #1 Exemplo de password_hash()

<?php
/**
* O objetivo é calcular o hash da senha usando o algortimo PASSWORD_DEFAULT atual.
* Atualmente é BCRYPT, e resultará em uma string de 60 caracteres.
*
* Fique ciente que PASSWORD_DEFAULT pode mudar com o tempo, por isso deve-se
* preparar para permitir strings com mais de 60 caracteres (255 é um bom número)
*/
echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
?>

O exemplo acima produzirá algo semelhante a:

$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a

Exemplo #2 Exemplo de configuração do custo de password_hash() manualmente

<?php
/**
* Neste caso, o objetivo é aumentar o custo padrão de BCRYPT para 12.
* Note que agora o algortimo foi trocado para PASSWORD_BCRYPT, que sempre terá 60 caracteres.
*/
$options = [
'cost' => 12,
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options);
?>

O exemplo acima produzirá algo semelhante a:

$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K

Exemplo #3 Exemplo de busca de um bom custo para password_hash()

<?php
/**
* Este código irá verificar o desempenho do servidor para determinar o quanto pode-se aumentar
* o custo. O objetivo é aumentar o custo ao valor mais alto possível sem deixar o servidor muito
* lento. 10 é um bom ponto de partida, e um valor maior será bom se o servidor for
* rápido o suficiente. O código abaix mira em = 350 milissegundos de tempo adicional,
* que é um atraso adequado para sistemas que lidam com logins interativos.
*/
$timeTarget = 0.350; // 350 milissegundos

$cost = 10;
do {
$cost++;
$start = microtime(true);
password_hash("test", PASSWORD_BCRYPT, ["cost" => $cost]);
$end = microtime(true);
} while (($end - $start) < $timeTarget);

echo "Custo Apropriado Encontrado: " . $cost;
?>

O exemplo acima produzirá algo semelhante a:

Custo Apropriado Encontrado: 12

Exemplo #4 Exemplo de password_hash() usando Argon2i

<?php
echo 'Argon2i hash: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
?>

O exemplo acima produzirá algo semelhante a:

Argon2i hash: $argon2i$v=19$m=1024,t=2,p=2$YzJBSzV4TUhkMzc3d3laeg$zqU/1IN0/AogfP4cmSJI1vc8lpXRW9/S0sYY2i2jHT0

Notas

Cuidado

É fortemente recomendado que não seja gerado um salt próprio para esta função. Ela criará um salt seguro automaticamente se um não for especificado.

Como apontado acima, fornecer a opção salt no PHP 7.0 gerará um erro deprecation warning. O suporte para fornecer um salt manualmente foi removido no PHP 8.0.

Nota:

É recomendado que você teste esta função sem seus servidores, e ajuste o parâmetro custo para que a execução da função leve menos do que 350 milissegundos em sistemas interativos. O script do exemplo acima ajudará a escolher um bom valor de custo para seu hardware.

Nota: Atualizações dos algoritmos suportados por esta função (ou alterações no algoritmo padrão) precisam seguir as seguintes regras:

  • Qualquer novo algoritmo precisa estar no core por pelo menos 1 versão completa do PHP antes de se tornar padrão. Assim se, por exemplo, um novo algoritmo for adicionado na versão 7.5.5, ela não seria elegível para padrão até a versão 7.7 (uma vez que a 7.6 seria a primeira versão completa). Mas se um algoritmo diferente for adicionado na versão 7.6.0, ela seria elegível para padrão na 7.7.0.
  • O padrão deve mudar apenas em uma versão completa (7.3.0, 8.0.8 etc.) e não em uma versão de revisão. A única exceção seria uma emergênca caso uma falha de segurança crítica fosse encontrada no padrão atual.

Veja Também

  • password_verify() - Verifica se uma senha corresponde a um hash
  • password_needs_rehash() - Verifica se o hash informado corresponde às opções especificadas
  • crypt() - One-way string hashing
  • sodium_crypto_pwhash_str() - Get an ASCII-encoded hash


Verifica se o hash informado corresponde às opções especificadas

  • « password_hash
  • password_verify »
  • PHP Manual
  • Funções de Password Hashing
  • Verifica se o hash informado corresponde às opções especificadas

password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_needs_rehash — Verifica se o hash informado corresponde às opções especificadas

Descrição

password_needs_rehash(string $hash, string|int|null $algo, array $options = []): bool

Esta função verifica se o hash fornecido implementa o algoritmo e as opções indicadas. Se não, ela assume que o hash precisa ser recalculado.

Parâmetros

hash

Um hash criado por password_hash().

algo

Uma constante de algoritmo de senha denotando o algoritmo a ser usado ao fazer o hash da senha.

options

Um array associativo contendo opções. Consulte as constantes de algoritmo de senha para obter a documentação sobre as opções suportadas por cada algoritmo.

Valor Retornado

Retorna true se o hash deve ser recalculado para corresponder ao algortimo informado em algo e às opções em options, ou false caso contrário.

Registro de Alterações

Versão | Descrição
7.4.0 | O parâmetro algo agora espera uma string, mas ainda aceita ints para compatibilidade com versões anteriores.

Exemplos

Exemplo #1 Utilização de password_needs_rehash()

<?php

$password = 'rasmuslerdorf';
$hash = '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';

$algorithm = PASSWORD_BCRYPT;
// o parâmetro de custo de bcrypt pode mudar com o tempo com a evloução dos equipamentos
$options = ['cost' => 12];

// Verifica o hash armazenado comparando com uma senha em texto puro
if (password_verify($password, $hash)) {
// Verifica se o algoritmo ou o custo mudaram
if (password_needs_rehash($hash, $algorithm, $options)) {
// Caso positivo, cria um hash novo, e substitui o antigo
$newHash = password_hash($password, $algorithm, $options);

// Atualiza o registro do usuário com $newHash
}

// Faz login
}
?>


Verifica se uma senha corresponde a um hash

  • « password_needs_rehash
  • Rnp »
  • PHP Manual
  • Funções de Password Hashing
  • Verifica se uma senha corresponde a um hash

password_verify

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_verify — Verifica se uma senha corresponde a um hash

Descrição

password_verify(string $password, string $hash): bool

Verifica se o hash fornecido corresponde à senha informada password_verify() é compatível com crypt(). Portanto, hashes de senha criadas por crypt() podem ser usados com password_verify().

Perceba que password_hash() retorna o algoritmo, custo e o salt como parte do hash retornado. Por isso, toda a informação necessária para verificar o hash está incluída nele. Isso permite que a função de verificação faça isso sem precisar de um armazenamento separado para a informação do salt ou do algoritmo.

Esta função é segura contra ataques de sincronismo.

Parâmetros

password

A senha do usuário.

hash

Um hash criado por password_hash().

Valor Retornado

Retorna true se o password e o hash corresponderem, ou false caso contrário.

Exemplos

Exemplo #1 Exemplo de password_verify()

Este é um exemplo simplificado; é recomendável recalcular o hash de uma senha correta se necessário; consulte a página da função password_needs_rehash() para um exemplo.

<?php
// Veja o exemplo de password_hash() para ver de onde veio esta string.
$hash = '$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a';

if (password_verify('rasmuslerdorf', $hash)) {
echo 'Senha válida!';
} else {
echo 'Senha inválida';
}
?>

O exemplo acima produzirá:

Senha válida!

Veja Também

  • password_needs_rehash() - Verifica se o hash informado corresponde às opções especificadas
  • password_hash() - Cria um hash de senha
  • » implementação no espaço de usuário
  • sodium_crypto_pwhash_str_verify() - Verifies that a password matches a hash


Rnp

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Clearsign text
  • Rnp Funções
    • rnp_backend_string — Return cryptographic backend library name
    • rnp_backend_version — Return cryptographic backend library version
    • rnp_decrypt — Decrypt PGP message
    • rnp_dump_packets_to_json — Dump OpenPGP packets stream information to the JSON string
    • rnp_dump_packets — Dump OpenPGP packets stream information in humand-readable format
    • rnp_ffi_create — Create the top-level object used for interacting with the library
    • rnp_ffi_destroy — Destroy the top-level object used for interacting with the library
    • rnp_ffi_set_pass_provider — Set password provider callback function
    • rnp_import_keys — Import keys from PHP string to the keyring and receive JSON describing new/updated keys
    • rnp_import_signatures — Import standalone signatures to the keyring and receive JSON describing updated keys
    • rnp_key_export_autocrypt — Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)
    • rnp_key_export_revocation — Generate and export primary key revocation signature
    • rnp_key_export — Export a key
    • rnp_key_get_info — Get information about the key
    • rnp_key_remove — Remove a key from keyring(s)
    • rnp_key_revoke — Revoke a key or subkey by generating and adding revocation signature
    • rnp_list_keys — Enumerate all keys present in a keyring by specified identifer type
    • rnp_load_keys_from_path — Load keys from specified path
    • rnp_load_keys — Load keys from PHP string
    • rnp_locate_key — Search for the key
    • rnp_op_encrypt — Encrypt message
    • rnp_op_generate_key — Generate key
    • rnp_op_sign_cleartext — Perform signing operation on a textual data, return cleartext signed message
    • rnp_op_sign_detached — Perform signing operation, return detached signature(s)
    • rnp_op_sign — Perform signing operation on a binary data, return embedded signature(s)
    • rnp_op_verify_detached — Verify detached signatures
    • rnp_op_verify — Verify embedded or cleartext signatures
    • rnp_save_keys_to_path — Save keys to specified path
    • rnp_save_keys — Save keys to PHP string
    • rnp_supported_features — Get supported features in JSON format
    • rnp_version_string_full — Full version string of RNP library
    • rnp_version_string — RNP library version
  • RnpFFI — The RnpFFI class


Introdução

This module allows you to use » RNP library. RNP is a high performance C++ OpenPGP library used by Mozilla Thunderbird.


Dependências

In order to use RNP library functions you need to install the» RNP library. RNP library version >= 0.16.2 is required.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/rnp


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

RNP_KEYSTORE_GPG (string)
Keystore format "GPG".
RNP_KEYSTORE_KBX (string)
Keystore format "KBX". For public keys only. A keybox is a file format used to store public keys along with meta information and indices.
RNP_KEYSTORE_G10 (string)
Keystore format "G10". For private keys.
RNP_LOAD_SAVE_PUBLIC_KEYS (integer)
Load or save public keys only. Can be OR-ed with RNP_LOAD_SAVE_SECRET_KEYS to load both public and private keys to the FFI context or save them from the context.
RNP_LOAD_SAVE_SECRET_KEYS (integer)
Load or save secret keys only. Can be OR-ed with RNP_LOAD_SAVE_PUBLIC_KEYS to load both public and private keys to the FFI context or save them from the context.
RNP_LOAD_SAVE_PERMISSIVE (integer)
Allows to ignore bad signature/key/subkey packets during key import.
RNP_LOAD_SAVE_SINGLE (integer)
If set, only the first key will be loaded.
RNP_LOAD_SAVE_BASE64 (integer)
Allow import of base64-encoded keys (autocrypt ones).
RNP_FEATURE_SYMM_ALG (string)
List available symmetric encryption algorithms.
RNP_FEATURE_AEAD_ALG (string)
List available AEAD algorithms.
RNP_FEATURE_PROT_MODE (string)
List available protection modes.
RNP_FEATURE_PK_ALG (string)
List available public key algorithms.
RNP_FEATURE_HASH_ALG (string)
List available hash algorithms.
RNP_FEATURE_COMP_ALG (string)
List available compression algorithms.
RNP_FEATURE_CURVE (string)
List available elliptic curves.
RNP_DUMP_MPI (integer)
Dump MPI (Multi-precision integer) values.
RNP_DUMP_RAW (integer)
Dump raw packet contents as well.
RNP_DUMP_GRIP (integer)
Dump key fingerprints and grips.
RNP_JSON_DUMP_MPI (integer)
Dump MPI (Multi-precision integer) values.
RNP_JSON_DUMP_RAW (integer)
Dump raw packet contents as well.
RNP_JSON_DUMP_GRIP (integer)
Dump key fingerprints and grips.
RNP_ENCRYPT_NOWRAP (integer)
Allows encryption of signed message. Message is not wrapped into literal data packet.
RNP_KEY_EXPORT_ARMORED (integer)
Enable ASCII-armoring of exported data.
RNP_KEY_EXPORT_PUBLIC (integer)
Export public key.
RNP_KEY_EXPORT_SECRET (integer)
Export secret key.
RNP_KEY_EXPORT_SUBKEYS (integer)
If primary key is being exported, all subkeys will be exported too.
RNP_KEY_EXPORT_BASE64 (integer)
Export base64-encoded autocrypt key instead of binary.
RNP_KEY_REMOVE_PUBLIC (integer)
Remove public key.
RNP_KEY_REMOVE_SECRET (integer)
Remove secret key.
RNP_KEY_REMOVE_SUBKEYS (integer)
If primary key is being deleted, all of its subkeys will be removed too.


  • « Constantes pré-definidas
  • Clearsign text »
  • PHP Manual
  • Rnp
  • Exemplos

Exemplos

Índice

  • Clearsign text


Clearsign text

This example will clearsign a given text.

Exemplo #1 RNP clearsign example

<?php
// init FFI object
$ffi = rnp_ffi_create('GPG', 'GPG');

// generate RSA key
$key = rnp_op_generate_key($ffi, 'test@example.com', 'RSA');

// sign
$data = "Example text to sign";
$signature = rnp_op_sign_cleartext($ffi, $data, array($key));

echo $signature;

// destroy FFI object
rnp_ffi_destroy($ffi);
?>


Rnp Funções

Índice

  • rnp_backend_string — Return cryptographic backend library name
  • rnp_backend_version — Return cryptographic backend library version
  • rnp_decrypt — Decrypt PGP message
  • rnp_dump_packets_to_json — Dump OpenPGP packets stream information to the JSON string
  • rnp_dump_packets — Dump OpenPGP packets stream information in humand-readable format
  • rnp_ffi_create — Create the top-level object used for interacting with the library
  • rnp_ffi_destroy — Destroy the top-level object used for interacting with the library
  • rnp_ffi_set_pass_provider — Set password provider callback function
  • rnp_import_keys — Import keys from PHP string to the keyring and receive JSON describing new/updated keys
  • rnp_import_signatures — Import standalone signatures to the keyring and receive JSON describing updated keys
  • rnp_key_export_autocrypt — Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)
  • rnp_key_export_revocation — Generate and export primary key revocation signature
  • rnp_key_export — Export a key
  • rnp_key_get_info — Get information about the key
  • rnp_key_remove — Remove a key from keyring(s)
  • rnp_key_revoke — Revoke a key or subkey by generating and adding revocation signature
  • rnp_list_keys — Enumerate all keys present in a keyring by specified identifer type
  • rnp_load_keys_from_path — Load keys from specified path
  • rnp_load_keys — Load keys from PHP string
  • rnp_locate_key — Search for the key
  • rnp_op_encrypt — Encrypt message
  • rnp_op_generate_key — Generate key
  • rnp_op_sign_cleartext — Perform signing operation on a textual data, return cleartext signed message
  • rnp_op_sign_detached — Perform signing operation, return detached signature(s)
  • rnp_op_sign — Perform signing operation on a binary data, return embedded signature(s)
  • rnp_op_verify_detached — Verify detached signatures
  • rnp_op_verify — Verify embedded or cleartext signatures
  • rnp_save_keys_to_path — Save keys to specified path
  • rnp_save_keys — Save keys to PHP string
  • rnp_supported_features — Get supported features in JSON format
  • rnp_version_string_full — Full version string of RNP library
  • rnp_version_string — RNP library version


Return cryptographic backend library name

  • « Rnp Funções
  • rnp_backend_version »
  • PHP Manual
  • Rnp Funções
  • Return cryptographic backend library name

rnp_backend_string

(PECL rnp >= 0.1.1)

rnp_backend_string — Return cryptographic backend library name

Descrição

rnp_backend_string(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Backend name string. Currently supported backends are "Botan" and "OpenSSL".


Return cryptographic backend library version

  • « rnp_backend_string
  • rnp_decrypt »
  • PHP Manual
  • Rnp Funções
  • Return cryptographic backend library version

rnp_backend_version

(PECL rnp >= 0.1.1)

rnp_backend_version — Return cryptographic backend library version

Descrição

rnp_backend_version(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Version string.


Decrypt PGP message

  • « rnp_backend_version
  • rnp_dump_packets_to_json »
  • PHP Manual
  • Rnp Funções
  • Decrypt PGP message

rnp_decrypt

(PECL rnp >= 0.1.1)

rnp_decrypt — Decrypt PGP message

Descrição

rnp_decrypt(RnpFFI $ffi, string $input): string|false

Private keys used for decryption should be loaded into the FFI object before calling this function. If password encryption was used, then password provider should be set by calling rnp_ffi_set_pass_provider().

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

input

Encrypted message.

Valor Retornado

Decrypted message on success ou false em caso de falha.


Dump OpenPGP packets stream information to the JSON string

  • « rnp_decrypt
  • rnp_dump_packets »
  • PHP Manual
  • Rnp Funções
  • Dump OpenPGP packets stream information to the JSON string

rnp_dump_packets_to_json

(PECL rnp >= 0.1.1)

rnp_dump_packets_to_json — Dump OpenPGP packets stream information to the JSON string

Descrição

rnp_dump_packets_to_json(string $input, int $flags): string|false

Parâmetros

input

Input string containing OpenPGP data, either in binary or ASCII-armored format.

flags

See RNP_JSON_DUMP_* predefined constants.

Valor Retornado

JSON string with dump ou false em caso de falha.


Dump OpenPGP packets stream information in humand-readable format

  • « rnp_dump_packets_to_json
  • rnp_ffi_create »
  • PHP Manual
  • Rnp Funções
  • Dump OpenPGP packets stream information in humand-readable format

rnp_dump_packets

(PECL rnp >= 0.1.1)

rnp_dump_packets — Dump OpenPGP packets stream information in humand-readable format

Descrição

rnp_dump_packets(string $input, int $flags): string|false

Parâmetros

input

Input string containing OpenPGP data, either in binary or ASCII-armored format.

flags

See RNP_DUMP_* predefined constants.

Valor Retornado

Text describing packet sequence ou false em caso de falha.


Create the top-level object used for interacting with the library

  • « rnp_dump_packets
  • rnp_ffi_destroy »
  • PHP Manual
  • Rnp Funções
  • Create the top-level object used for interacting with the library

rnp_ffi_create

(PECL rnp >= 0.1.1)

rnp_ffi_create — Create the top-level object used for interacting with the library

Descrição

rnp_ffi_create(string $pub_format, string $sec_format): RnpFFI|false

Parâmetros

pub_format

the format of the public keyring, RNP_KEYSTORE_GPG or other RNP_KEYSTORE_* constant.

sec_format

the format of the secret keyring, RNP_KEYSTORE_GPG or other RNP_KEYSTORE_* constant

Valor Retornado

Returns RnpFFI object on success ou false em caso de falha.


Destroy the top-level object used for interacting with the library

  • « rnp_ffi_create
  • rnp_ffi_set_pass_provider »
  • PHP Manual
  • Rnp Funções
  • Destroy the top-level object used for interacting with the library

rnp_ffi_destroy

(PECL rnp >= 0.1.1)

rnp_ffi_destroy — Destroy the top-level object used for interacting with the library

Descrição

rnp_ffi_destroy(RnpFFI $ffi): void

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

Valor Retornado


Set password provider callback function

  • « rnp_ffi_destroy
  • rnp_import_keys »
  • PHP Manual
  • Rnp Funções
  • Set password provider callback function

rnp_ffi_set_pass_provider

(PECL rnp >= 0.1.1)

rnp_ffi_set_pass_provider — Set password provider callback function

Descrição

rnp_ffi_set_pass_provider(RnpFFI $ffi, callable $password_callback): bool

Sets password provider function. This function can ask for the password on a standard input (if PHP script is executed in a command line environment), display GUI dialog or provide password in any other possible ways. Requested passwords are used to encrypt or decrypt secret keys or perform symmetric encryption/decryption operations.

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

password_callback

The function that is to be called for every password request. It has the following signature:

password_callback(string $key_fp, string $pgp_context, string &$password): bool
  • $key_fp - The key fingerprint, if any. Can be empty.
  • $pgp_context - String describing why the key is being requested.
  • $password - Password string reference where provided password should be stored to.
Callback function should return true if password was successfully set ou false em caso de falha.

Valor Retornado

Returns true on success ou false em caso de falha.

Exemplos

Exemplo #1 simple callback function example

<?php
function password_callback(string $key_fp, string $pgp_context, string &$password)
{
$password = "password";

return true;
}

$ffi = rnp_ffi_create('GPG', 'GPG');

rnp_ffi_set_pass_provider($ffi, 'password_callback');


Import keys from PHP string to the keyring and receive JSON describing new/updated keys

  • « rnp_ffi_set_pass_provider
  • rnp_import_signatures »
  • PHP Manual
  • Rnp Funções
  • Import keys from PHP string to the keyring and receive JSON describing new/updated keys

rnp_import_keys

(PECL rnp >= 0.1.1)

rnp_import_keys — Import keys from PHP string to the keyring and receive JSON describing new/updated keys

Descrição

rnp_import_keys(RnpFFI $ffi, string $input, int $flags): string|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

input

OpenPGP packets containing key(s) to be loaded. Can be either binary or ASCII armored.

flags

See RNP_LOAD_SAVE_* predefined constants.

Valor Retornado

JSON string with information about new and updated keys on success ou false em caso de falha.


Import standalone signatures to the keyring and receive JSON describing updated keys

  • « rnp_import_keys
  • rnp_key_export_autocrypt »
  • PHP Manual
  • Rnp Funções
  • Import standalone signatures to the keyring and receive JSON describing updated keys

rnp_import_signatures

(PECL rnp >= 0.1.1)

rnp_import_signatures — Import standalone signatures to the keyring and receive JSON describing updated keys

Descrição

rnp_import_signatures(RnpFFI $ffi, string $input, int $flags): string|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

input

OpenPGP packets containing signatures to be imported. Can be either binary or ASCII armored.

flags

Currently must be 0.

Valor Retornado

JSON string with information about updated keys on success ou false em caso de falha.


Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)

  • « rnp_import_signatures
  • rnp_key_export_revocation »
  • PHP Manual
  • Rnp Funções
  • Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)

rnp_key_export_autocrypt

(PECL rnp >= 0.1.1)

rnp_key_export_autocrypt — Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)

Descrição

rnp_key_export_autocrypt(
RnpFFI $ffi,
string $key_fp,
string $subkey_fp,
string $uid,
int $flags
): string|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

key_fp

Primary key fingerprint.

subkey_fp

Subkey to export. Can be an empty string to pick the first suitable subkey.

uid

User ID to export. Can be an empty string if exported key has only one uid.

flags

Only RNP_KEY_EXPORT_BASE64 is currently supported. Enabling it would export base64-encoded key data instead of binary.

Valor Retornado

OpenPGP packets of exported key on success ou false em caso de falha.


Generate and export primary key revocation signature

  • « rnp_key_export_autocrypt
  • rnp_key_export »
  • PHP Manual
  • Rnp Funções
  • Generate and export primary key revocation signature

rnp_key_export_revocation

(PECL rnp >= 0.1.1)

rnp_key_export_revocation — Generate and export primary key revocation signature

Descrição

rnp_key_export_revocation(
RnpFFI $ffi,
string $key_fp,
int $flags,
array $options = ?
): string|false

Note: to revoke a key you'll need to import this signature into the keystore or use rnp_key_revoke() function.

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

key_fp

Key fingerprint of the primary key to be revoked.

flags

RNP_KEY_EXPORT_ARMORED or 0.

options

An associative array with options.

Key | Data type | Descrição
"hash" | string | Set hash algorithm used during signature calculation.
"code" | string | Code reason for revocation code. Possible values: 'no', 'superseded', 'compromised', 'retired'. If not defined, then value 'no' will be used by default.
"reason" | string | Textual representation of the reason for revocation.

Valor Retornado

Exported revocation signature on success ou false em caso de falha.


Export a key

  • « rnp_key_export_revocation
  • rnp_key_get_info »
  • PHP Manual
  • Rnp Funções
  • Export a key

rnp_key_export

(PECL rnp >= 0.1.1)

rnp_key_export — Export a key

Descrição

rnp_key_export(RnpFFI $ffi, string $key_fp, int $flags): string|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

key_fp

Key fingerprint.

flags

See RNP_KEY_EXPORT_* predefined constants (except RNP_KEY_EXPORT_BASE64).

Valor Retornado

OpenPGP packets of exported key (binary or ASCII-armored) on success ou false em caso de falha.


Get information about the key

  • « rnp_key_export
  • rnp_key_remove »
  • PHP Manual
  • Rnp Funções
  • Get information about the key

rnp_key_get_info

(PECL rnp >= 0.1.1)

rnp_key_get_info — Get information about the key

Descrição

rnp_key_get_info(RnpFFI $ffi, string $key_fp): array|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

key_fp

Key fingerprint.

Valor Retornado

An associative array with information about the key ou false em caso de falha.

Key | Data type | Descrição
"is_primary" | boolean | true if this key is the primary key.
"is_sub" | boolean | true if this key is a subkey.
"is_valid" | boolean | true if public key is valid. This includes checks of the self-signatures, expiration times, revocations and so on.
"is_revoked" | boolean | true if this key is revoked.
"is_superseded" | boolean | true if this key is superseded. Present only if the key is revoked.
"is_compromised" | boolean | true if this key is compromised. Present only if the key is revoked.
"is_retired" | boolean | true if this key is retired. Present only if the key is revoked.
"is_expired" | boolean | true if this key is expired.
"have_secret" | boolean | true if this key has secret part.
"is_locked" | boolean | true if this key is currently locked. Only present for secret keys.
"is_protected" | boolean | true if this key is protected. Only present for secret keys. A protected key is one that is encrypted and can be safely held in memory and locked/unlocked as needed.
"have_public" | boolean | true if this key has public part. Generally all keys would have public part.
"valid_till" | integer | The timestamp till which key can be considered as valid. Note: this will take into account not only key's expiration, but revocations as well. For the subkey primary key's validity time will be also checked.
"bits" | integer | Number of bits in the key. For EC-based keys it will contain size of the curve.
"alg" | string | Key algorithm name.
"subkeys" | array | An indexed array containing fingerprint strings of subkeys. Only present for primary keys. Could be empty if primary key has no subkeys.
"uids" | array | An indexed array containing user ID strings. Only present for primary keys. Could be empty if primary key has no user ID-s.


Remove a key from keyring(s)

  • « rnp_key_get_info
  • rnp_key_revoke »
  • PHP Manual
  • Rnp Funções
  • Remove a key from keyring(s)

rnp_key_remove

(PECL rnp >= 0.1.1)

rnp_key_remove — Remove a key from keyring(s)

Descrição

rnp_key_remove(RnpFFI $ffi, string $key_fp, int $flags): bool

Note: you need to call rnp_save_keys() to write updated keyring(s) out.

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

key_fp

Key fingerprint.

flags

See RNP_KEY_REMOVE_* constants. Flag RNP_KEY_REMOVE_SUBKEYS will work only for the primary key and will remove all of its subkeys as well.

Valor Retornado

Returns true on success ou false em caso de falha.


Revoke a key or subkey by generating and adding revocation signature

  • « rnp_key_remove
  • rnp_list_keys »
  • PHP Manual
  • Rnp Funções
  • Revoke a key or subkey by generating and adding revocation signature

rnp_key_revoke

(PECL rnp >= 0.1.1)

rnp_key_revoke — Revoke a key or subkey by generating and adding revocation signature

Descrição

rnp_key_revoke(
RnpFFI $ffi,
string $key_fp,
int $flags,
array $options = ?
): bool

Note: you need to call rnp_save_keys() to write updated keyring(s) out.

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

key_fp

Key fingerprint.

flags

Currently must be 0.

options

An associative array with options.

Key | Data type | Descrição
"hash" | string | Set hash algorithm used during signature calculation.
"code" | string | Code reason for revocation code. Possible values: 'no', 'superseded', 'compromised', 'retired'. If not defined, then value 'no' will be used by default.
"reason" | string | Textual representation of the reason for revocation.

Valor Retornado

Returns true on success ou false em caso de falha.


Enumerate all keys present in a keyring by specified identifer type

  • « rnp_key_revoke
  • rnp_load_keys_from_path »
  • PHP Manual
  • Rnp Funções
  • Enumerate all keys present in a keyring by specified identifer type

rnp_list_keys

(PECL rnp >= 0.1.1)

rnp_list_keys — Enumerate all keys present in a keyring by specified identifer type

Descrição

rnp_list_keys(RnpFFI $ffi, string $identifier_type): array|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

identifier_type

Key identifier type ("userid", "keyid", "grip", "fingerprint").

Valor Retornado

An associative array where key is an identifier string and value is a PGP key fingerprint ou false em caso de falha.


Load keys from specified path

  • « rnp_list_keys
  • rnp_load_keys »
  • PHP Manual
  • Rnp Funções
  • Load keys from specified path

rnp_load_keys_from_path

(PECL rnp >= 0.1.1)

rnp_load_keys_from_path — Load keys from specified path

Descrição

rnp_load_keys_from_path(
RnpFFI $ffi,
string $format,
string $input_path,
int $flags
): bool

Note that for G10, the input must be a directory (which must already exist).

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

format

O formato de chave dos dados (GPG, KBX, G10).

input_path

file or directory containing the keys.

flags

Consulte a descrição das flags RNP_LOAD_SAVE_*.

Valor Retornado

Returns true on success ou false em caso de falha.


Load keys from PHP string

  • « rnp_load_keys_from_path
  • rnp_locate_key »
  • PHP Manual
  • Rnp Funções
  • Load keys from PHP string

rnp_load_keys

(PECL rnp >= 0.1.1)

rnp_load_keys — Load keys from PHP string

Descrição

rnp_load_keys(
RnpFFI $ffi,
string $format,
string $input,
int $flags
): bool

Note that for G10, the input must be a directory (which must already exist).

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

format

O formato de chave dos dados (GPG, KBX, G10).

input

OpenPGP packets containing key(s) to be loaded. Can be either binary or ASCII armored.

flags

Consulte a descrição das flags RNP_LOAD_SAVE_*.

Valor Retornado

Returns true on success ou false em caso de falha.


Search for the key

  • « rnp_load_keys
  • rnp_op_encrypt »
  • PHP Manual
  • Rnp Funções
  • Search for the key

rnp_locate_key

(PECL rnp >= 0.1.1)

rnp_locate_key — Search for the key

Descrição

rnp_locate_key(RnpFFI $ffi, string $identifier_type, string $identifier): string|false

Note: only valid userids are checked while searching by userid.

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

identifier_type

Identifier type string: "userid", "keyid", "fingerprint", "grip".

identifier

PGP User ID (name and email) for "userid" type, hexadecimal string that represents key id, fingerprint or key grip correspondingly.

Valor Retornado

Returns hexadecimal fingerprint of the key found on success ou false em caso de falha.


Encrypt message

  • « rnp_locate_key
  • rnp_op_generate_key »
  • PHP Manual
  • Rnp Funções
  • Encrypt message

rnp_op_encrypt

(PECL rnp >= 0.1.1)

rnp_op_encrypt — Encrypt message

Descrição

rnp_op_encrypt(
RnpFFI $ffi,
string $message,
array $recipient_keys_fp,
array $options = ?
): string|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

message

Message to be encrypted.

recipient_keys_fp

Array with fingerprints of recipient's keys. At least one key must be present.

options

An associative array with options.

Key | Data type | Descrição
"compression_alg" | string | Compression algorithm. Both "compression_alg" and "compression_level" must be set in order to enable data compression.
"compression_level" | integer | Compression level, 0-9. 0 disables compression.
"armor" | boolean | Enable ASCII-armored output. Disabled by default.
"add_signature" | boolean | Encrypted message will be also signed.
"hash" | string | Set hash algorithm used during signature calculation. "add_signature" option should be set to true
"creation_time" | integer | Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.
"expiration_time" | integer | Set signature expiration time in seconds since the creation time. 0 value is used to mark signature as non-expiring (default value).
"password" | string | Add password which is used to encrypt data.
"cipher" | string | Set symmetric encryption algorithm. Possible values are "IDEA", "TRIPLEDES", "CAST5", "BLOWFISH", "AES128", "AES192", "AES256", "TWOFISH", "CAMELLIA128", "CAMELLIA192", "CAMELLIA256", "SM4".
"aead" | string | Set AEAD mode algorithm. Possible values are "None" to disable AEAD, "EAX", "OCB".
"aead_bits" | integer | Set chunk length for AEAD mode via number of chunk size bits. Must be between 0 to 56.
"flags" | integer | Set additional encryption flags. Supported flags: RNP_ENCRYPT_NOWRAP - do not wrap the data in a literal data packet. This would allow to encrypt already signed data.
"file_name" | string | Set the internally stored file name for the data being encrypted. Special value _CONSOLE may be used to mark message as 'for your eyes only', i.e. it should not be stored anywhere but only displayed to the receiver. Default is the empty string.
"file_mtime" | integer | Set input file modification date in seconds since Jan, 1 1970 UTC.

Valor Retornado

Encrypted data on success ou false em caso de falha.


Generate key

  • « rnp_op_encrypt
  • rnp_op_sign_cleartext »
  • PHP Manual
  • Rnp Funções
  • Generate key

rnp_op_generate_key

(PECL rnp >= 0.1.1)

rnp_op_generate_key — Generate key

Descrição

rnp_op_generate_key(
RnpFFI $ffi,
string $userid,
string $key_alg,
string $sub_alg = ?,
array $options = ?
): string|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

userid

PGP User ID - text that is intended to represent the name and email address of the key holder.

key_alg

Primary key algorithm (i.e. 'RSA', 'DSA', etc).

sub_alg

Subkey algorithm. If not set, subkey will not be generated.

options

An associative array with options.

Key | Data type | Descrição
"bits" | integer | Primary key size in bits. Applicable only to RSA, DSA and El-Gamal keys.
"hash" | string | Hash algorithm used in self signature or subkey binding signature.
"dsa_qbits" | integer | Set size of a q parameter for DSA key. Note: appropriate default value will be set, depending on key bits. However you may override it if needed.
"curve" | string | Set the curve used for ECC key. Note: this is only applicable for ECDSA, ECDH and SM2 keys.
"request_password" | boolean | Enable requesting password via password provider. This password will be used for key encryption. Password provider callback function should be set in advance by calling rnp_ffi_set_pass_provider(). Note: this setting will be ignored if password was set via"password"
"password" | string | Set the password used to encrypt the secret key data.
"expiration" | integer | Set the key and subkey expiration time in seconds.
"sub_bits" | integer | Subkey size in bits. Applicable only to RSA, DSA and El-Gamal keys.
"sub_hash" | string | Hash algorithm used in subkey self signature or subkey binding signature.
"sub_curve" | string | Set the curve used for ECC subkey. Note: this is only applicable for ECDSA, ECDH and SM2 keys.

Valor Retornado

Fingerprint of the generated primary key ou false em caso de falha. This fingerprint can be used later to reference the key in sign and encrypt operations. The key data is stored in FFI memory context and can be saved using rnp_save_keys() or rnp_save_keys_to_path().


Perform signing operation on a textual data, return cleartext signed message

  • « rnp_op_generate_key
  • rnp_op_sign_detached »
  • PHP Manual
  • Rnp Funções
  • Perform signing operation on a textual data, return cleartext signed message

rnp_op_sign_cleartext

(PECL rnp >= 0.1.1)

rnp_op_sign_cleartext — Perform signing operation on a textual data, return cleartext signed message

Descrição

rnp_op_sign_cleartext(
RnpFFI $ffi,
string $data,
array $keys_fp,
array $options = ?
): string|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

data

Data to be signed.

keys_fp

Array with key fingerprints. At least one key must be provided. Keys should be present in ffi.

options

An associative array with options.

Key | Data type | Descrição
"armor" | boolean | Enable ASCII-armored output. Disabled by default.
"hash" | string | Set hash algorithm used during signature calculation.
"creation_time" | integer | Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.
"expiration_time" | integer | Set signature expiration time in seconds since the creation time. 0 value is used to mark signature as non-expiring (default value).

Valor Retornado

Cleartext signed message containing source data with additional headers and ASCII-armored signature on success ou false em caso de falha.


Perform signing operation, return detached signature(s)

  • « rnp_op_sign_cleartext
  • rnp_op_sign »
  • PHP Manual
  • Rnp Funções
  • Perform signing operation, return detached signature(s)

rnp_op_sign_detached

(PECL rnp >= 0.1.1)

rnp_op_sign_detached — Perform signing operation, return detached signature(s)

Descrição

rnp_op_sign_detached(
RnpFFI $ffi,
string $data,
array $keys_fp,
array $options = ?
): string|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

data

Data to be signed.

keys_fp

Array with key fingerprints. At least one key must be provided. Keys should be present in ffi.

options

An associative array with options.

Key | Data type | Descrição
"armor" | boolean | Enable ASCII-armored output. Disabled by default.
"hash" | string | Set hash algorithm used during signature calculation.
"creation_time" | integer | Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.
"expiration_time" | integer | Set signature expiration time in seconds since the creation time. 0 value is used to mark signature as non-expiring (default value).

Valor Retornado

Detached signature(s) data on success ou false em caso de falha.


Perform signing operation on a binary data, return embedded signature(s)

  • « rnp_op_sign_detached
  • rnp_op_verify_detached »
  • PHP Manual
  • Rnp Funções
  • Perform signing operation on a binary data, return embedded signature(s)

rnp_op_sign

(PECL rnp >= 0.1.1)

rnp_op_sign — Perform signing operation on a binary data, return embedded signature(s)

Descrição

rnp_op_sign(
RnpFFI $ffi,
string $data,
array $keys_fp,
array $options = ?
): string|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

data

Data to be signed.

keys_fp

Array with key fingerprints. At least one key must be provided. Keys should be present in ffi.

options

An associative array with options.

Key | Data type | Descrição
"compression_alg" | string | Compression algorithm. Both "compression_alg" and "compression_level" must be set in order to enable data compression.
"compression_level" | integer | Compression level, 0-9. 0 disables compression.
"armor" | boolean | Enable ASCII-armored output. Disabled by default.
"hash" | string | Set hash algorithm used during signature calculation.
"creation_time" | integer | Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.
"expiration_time" | integer | Set signature expiration time in seconds since the creation time. 0 value is used to mark signature as non-expiring (default value).
"file_name" | string | Set input file name.Special value _CONSOLE may be used to mark message as 'for your eyes only', i.e. it should not be stored anywhere but only displayed to the receiver. Default is the empty string.
"file_mtime" | integer | Set input file modification date in seconds since Jan, 1 1970 UTC.

Valor Retornado

Data with embedded signature(s) on success ou false em caso de falha.


Verify detached signatures

  • « rnp_op_sign
  • rnp_op_verify »
  • PHP Manual
  • Rnp Funções
  • Verify detached signatures

rnp_op_verify_detached

(PECL rnp >= 0.1.1)

rnp_op_verify_detached — Verify detached signatures

Descrição

rnp_op_verify_detached(RnpFFI $ffi, string $data, string $signature): array|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

data

Source data.

signature

Detached signature data.

Valor Retornado

An associative array with information about verification results ou false em caso de falha.

Key | Data type | Descrição
"verification_status" | string | Overall verification result, either "Success" string or appropriate error message. "Success" result is set when at least one signature is valid and successfully verified. Individual verification results for each signature can be checked in the "signatures" array.
"file_name" | string | File name.
"file_mtime" | integer | File modification time.
"mode" | string | Data protection (encryption) mode used in processed message. Currently defined values are "none", "cfb", "cfb-mdc", "aead-ocb", "aead-eax".
"cipher" | string | Symmetric cipher used for data encryption.
"valid_integrity" | boolean | true if message integrity protection was used (i.e. MDC or AEAD) and it was validated successfully.
"signatures" | array | An associative array describing each signature found. See description below.

"signatures" sub-array.

Key | Data type | Descrição
"verification_status" | string | Signature verification status, either "Success" string or appropriate error message.
"creation_time" | integer | Signature creation time in seconds since Jan, 1 1970 UTC.
"expiration_time" | integer | Signature expiration time in seconds since the creation time or 0 if signature never expires.
"hash" | string | Hash function algorithm used to calculate the signature.
"signing_key" | string | Fingerprint of the key used for signing. Could be "Not found" if corresponding public key is not loaded to the FFI object.
"signature_type" | string | Signature type. Currently defined values are: 'binary', 'text', 'standalone', 'certification (generic)', 'certification (persona)', 'certification (casual)', 'certification (positive)', 'subkey binding', 'primary key binding', 'direct', 'key revocation', 'subkey revocation', 'certification revocation', 'timestamp', 'uknown: 0..255'.


Verify embedded or cleartext signatures

  • « rnp_op_verify_detached
  • rnp_save_keys_to_path »
  • PHP Manual
  • Rnp Funções
  • Verify embedded or cleartext signatures

rnp_op_verify

(PECL rnp >= 0.1.1)

rnp_op_verify — Verify embedded or cleartext signatures

Descrição

rnp_op_verify(RnpFFI $ffi, string $data): array|false

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

data

Signed data.

Valor Retornado

An associative array with information about verification results ou false em caso de falha.

Key | Data type | Descrição
"verification_status" | string | Overall verification result, either "Success" string or appropriate error message. "Success" result is set when at least one signature is valid and successfully verified. Individual verification results for each signature can be checked in the "signatures" array.
"file_name" | string | File name.
"file_mtime" | integer | File modification time.
"mode" | string | Data protection (encryption) mode used in processed message. Currently defined values are "none", "cfb", "cfb-mdc", "aead-ocb", "aead-eax".
"cipher" | string | Symmetric cipher used for data encryption.
"valid_integrity" | boolean | true if message integrity protection was used (i.e. MDC or AEAD) and it was validated successfully.
"signatures" | array | An associative array describing each signature found. See description below.

"signatures" sub-array.

Key | Data type | Descrição
"verification_status" | string | Signature verification status, either "Success" string or appropriate error message.
"creation_time" | integer | Signature creation time in seconds since Jan, 1 1970 UTC.
"expiration_time" | integer | Signature expiration time in seconds since the creation time or 0 if signature never expires.
"hash" | string | Hash function algorithm used to calculate the signature.
"signing_key" | string | Fingerprint of the key used for signing. Could be "Not found" if corresponding public key is not loaded to the FFI object.
"signature_type" | string | Signature type. Currently defined values are: 'binary', 'text', 'standalone', 'certification (generic)', 'certification (persona)', 'certification (casual)', 'certification (positive)', 'subkey binding', 'primary key binding', 'direct', 'key revocation', 'subkey revocation', 'certification revocation', 'timestamp', 'uknown: 0..255'.


Save keys to specified path

  • « rnp_op_verify
  • rnp_save_keys »
  • PHP Manual
  • Rnp Funções
  • Save keys to specified path

rnp_save_keys_to_path

(PECL rnp >= 0.1.1)

rnp_save_keys_to_path — Save keys to specified path

Descrição

rnp_save_keys_to_path(
RnpFFI $ffi,
string $format,
string $output_path,
int $flags
): bool

Saves keys present in the FFI object (loaded or generated) to the specified file or directory.

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

format

O formato de chave dos dados (GPG, KBX, G10).

output_path

File or directory path where keys should be saved to.

flags

Consulte a descrição das flags RNP_LOAD_SAVE_*.

Valor Retornado

Returns true on success ou false em caso de falha.


Save keys to PHP string

  • « rnp_save_keys_to_path
  • rnp_supported_features »
  • PHP Manual
  • Rnp Funções
  • Save keys to PHP string

rnp_save_keys

(PECL rnp >= 0.1.1)

rnp_save_keys — Save keys to PHP string

Descrição

rnp_save_keys(
RnpFFI $ffi,
string $format,
string &$output,
int $flags
): bool

Note that for G10, the output must be a directory (which must already exist).

Parâmetros

ffi

O objeto FFI retornado por rnp_ffi_create.

format

O formato de chave dos dados (GPG, KBX, G10).

output

key packets will be saved to the string referenced by output.

flags

Consulte a descrição das flags RNP_LOAD_SAVE_*.

Valor Retornado

Returns true on success ou false em caso de falha.


Get supported features in JSON format

  • « rnp_save_keys
  • rnp_version_string_full »
  • PHP Manual
  • Rnp Funções
  • Get supported features in JSON format

rnp_supported_features

(PECL rnp >= 0.1.1)

rnp_supported_features — Get supported features in JSON format

Descrição

rnp_supported_features(string $type): string|false

Get the JSON formatted string containing array of supported rnp feature values (algorithms, curves, etc) by type.

Parâmetros

type

See RNP_FEATURE_* constants for supported values.

Valor Retornado

String containing JSON formatted array of supported algorithms, curves, etc ou false em caso de falha.


Full version string of RNP library

  • « rnp_supported_features
  • rnp_version_string »
  • PHP Manual
  • Rnp Funções
  • Full version string of RNP library

rnp_version_string_full

(PECL rnp >= 0.1.1)

rnp_version_string_full — Full version string of RNP library

Descrição

rnp_version_string_full(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns full version string of RNP library.


RNP library version

  • « rnp_version_string_full
  • RnpFFI »
  • PHP Manual
  • Rnp Funções
  • RNP library version

rnp_version_string

(PECL rnp >= 0.1.1)

rnp_version_string — RNP library version

Descrição

rnp_version_string(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns RNP library version string.


  • « rnp_version_string
  • Sodium »
  • PHP Manual
  • Rnp
  • The RnpFFI class

The RnpFFI class

(PECL rnp >= 0.1.1)

Introdução

Resumo da classe

class RnpFFI {
}


Sodium

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções da Sodium
    • sodium_add — Soma números grandes
    • sodium_base642bin — Decodifica uma string codificada em base64 para binário bruto.
    • sodium_bin2base64 — Codifica uma string binária bruta com base64.
    • sodium_bin2hex — Codifica para hexadecimal
    • sodium_compare — Compara números grandes
    • sodium_crypto_aead_aes256gcm_decrypt — Verify then decrypt a message with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_encrypt — Encrypt then authenticate with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_is_available — Check if hardware supports AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen — Generate a random AES-256-GCM key
    • sodium_crypto_aead_chacha20poly1305_decrypt — Verify then decrypt with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_encrypt — Encrypt then authenticate with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Verify that the ciphertext includes a valid tag
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Encrypt a message
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen — Generate a random ChaCha20-Poly1305 (IETF) key.
    • sodium_crypto_aead_chacha20poly1305_keygen — Generate a random ChaCha20-Poly1305 key.
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — (Preferred) Verify then decrypt with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Generate a random XChaCha20-Poly1305 key.
    • sodium_crypto_auth_keygen — Generate a random key for sodium_crypto_auth
    • sodium_crypto_auth_verify — Verifies that the tag is valid for the message
    • sodium_crypto_auth — Compute a tag for the message
    • sodium_crypto_box_keypair_from_secretkey_and_publickey — Create a unified keypair string from a secret key and public key
    • sodium_crypto_box_keypair — Randomly generate a secret key and a corresponding public key
    • sodium_crypto_box_open — Authenticated public-key decryption
    • sodium_crypto_box_publickey_from_secretkey — Calculate the public key from a secret key
    • sodium_crypto_box_publickey — Extract the public key from a crypto_box keypair
    • sodium_crypto_box_seal_open — Anonymous public-key decryption
    • sodium_crypto_box_seal — Anonymous public-key encryption
    • sodium_crypto_box_secretkey — Extracts the secret key from a crypto_box keypair
    • sodium_crypto_box_seed_keypair — Deterministically derive the key pair from a single key
    • sodium_crypto_box — Authenticated public-key encryption
    • sodium_crypto_core_ristretto255_add — Adds an element
    • sodium_crypto_core_ristretto255_from_hash — Maps a vector
    • sodium_crypto_core_ristretto255_is_valid_point — Determines if a point on the ristretto255 curve
    • sodium_crypto_core_ristretto255_random — Generates a random key
    • sodium_crypto_core_ristretto255_scalar_add — Adds a scalar value
    • sodium_crypto_core_ristretto255_scalar_complement — The sodium_crypto_core_ristretto255_scalar_complement purpose
    • sodium_crypto_core_ristretto255_scalar_invert — Inverts a scalar value
    • sodium_crypto_core_ristretto255_scalar_mul — Multiplies a scalar value
    • sodium_crypto_core_ristretto255_scalar_negate — Negates a scalar value
    • sodium_crypto_core_ristretto255_scalar_random — Generates a random key
    • sodium_crypto_core_ristretto255_scalar_reduce — Reduces a scalar value
    • sodium_crypto_core_ristretto255_scalar_sub — Subtracts a scalar value
    • sodium_crypto_core_ristretto255_sub — Subtracts an element
    • sodium_crypto_generichash_final — Complete the hash
    • sodium_crypto_generichash_init — Initialize a hash for streaming
    • sodium_crypto_generichash_keygen — Generate a random generichash key
    • sodium_crypto_generichash_update — Add message to a hash
    • sodium_crypto_generichash — Get a hash of the message
    • sodium_crypto_kdf_derive_from_key — Derive a subkey
    • sodium_crypto_kdf_keygen — Generate a random root key for the KDF interface
    • sodium_crypto_kx_client_session_keys — Calculate the client-side session keys.
    • sodium_crypto_kx_keypair — Creates a new sodium keypair
    • sodium_crypto_kx_publickey — Extract the public key from a crypto_kx keypair
    • sodium_crypto_kx_secretkey — Extract the secret key from a crypto_kx keypair.
    • sodium_crypto_kx_seed_keypair — Description
    • sodium_crypto_kx_server_session_keys — Calculate the server-side session keys.
    • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Verify that the password is a valid password verification string
    • sodium_crypto_pwhash_scryptsalsa208sha256_str — Get an ASCII encoded hash
    • sodium_crypto_pwhash_scryptsalsa208sha256 — Derives a key from a password, using scrypt
    • sodium_crypto_pwhash_str_needs_rehash — Determine whether or not to rehash a password
    • sodium_crypto_pwhash_str_verify — Verifies that a password matches a hash
    • sodium_crypto_pwhash_str — Get an ASCII-encoded hash
    • sodium_crypto_pwhash — Derive a key from a password, using Argon2
    • sodium_crypto_scalarmult_base — Sinônimo de sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_scalarmult_ristretto255_base — Calculates the public key from a secret key
    • sodium_crypto_scalarmult_ristretto255 — Computes a shared secret
    • sodium_crypto_scalarmult — Compute a shared secret given a user's secret key and another user's public key
    • sodium_crypto_secretbox_keygen — Generate random key for sodium_crypto_secretbox
    • sodium_crypto_secretbox_open — Authenticated shared-key decryption
    • sodium_crypto_secretbox — Authenticated shared-key encryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull — Initialize a secretstream context for decryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_push — Initialize a secretstream context for encryption
    • sodium_crypto_secretstream_xchacha20poly1305_keygen — Generate a random secretstream key.
    • sodium_crypto_secretstream_xchacha20poly1305_pull — Decrypt a chunk of data from an encrypted stream
    • sodium_crypto_secretstream_xchacha20poly1305_push — Encrypt a chunk of data so that it can safely be decrypted in a streaming API
    • sodium_crypto_secretstream_xchacha20poly1305_rekey — Explicitly rotate the key in the secretstream state
    • sodium_crypto_shorthash_keygen — Get random bytes for key
    • sodium_crypto_shorthash — Compute a short hash of a message and key
    • sodium_crypto_sign_detached — Sign the message
    • sodium_crypto_sign_ed25519_pk_to_curve25519 — Convert an Ed25519 public key to a Curve25519 public key
    • sodium_crypto_sign_ed25519_sk_to_curve25519 — Convert an Ed25519 secret key to a Curve25519 secret key
    • sodium_crypto_sign_keypair_from_secretkey_and_publickey — Join a secret key and public key together
    • sodium_crypto_sign_keypair — Randomly generate a secret key and a corresponding public key
    • sodium_crypto_sign_open — Check that the signed message has a valid signature
    • sodium_crypto_sign_publickey_from_secretkey — Extract the Ed25519 public key from the secret key
    • sodium_crypto_sign_publickey — Extract the Ed25519 public key from a keypair
    • sodium_crypto_sign_secretkey — Extract the Ed25519 secret key from a keypair
    • sodium_crypto_sign_seed_keypair — Deterministically derive the key pair from a single key
    • sodium_crypto_sign_verify_detached — Verify signature for the message
    • sodium_crypto_sign — Sign a message
    • sodium_crypto_stream_keygen — Generate a random sodium_crypto_stream key.
    • sodium_crypto_stream_xchacha20_keygen — Returns a secure random key
    • sodium_crypto_stream_xchacha20_xor_ic — Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xchacha20_xor — Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xchacha20 — Expands the key and nonce into a keystream of pseudorandom bytes
    • sodium_crypto_stream_xor — Encrypt a message without authentication
    • sodium_crypto_stream — Generate a deterministic sequence of bytes from a seed
    • sodium_hex2bin — Decodifica uma string binária codificada em hexadecimal
    • sodium_increment — Incrementa um número grande
    • sodium_memcmp — Testa para igualdade em tempo constante
    • sodium_memzero — Sobrescreva uma string com caracteres NUL
    • sodium_pad — Adiciona dados de preenchimento
    • sodium_unpad — Remova dados de preenchimento
  • SodiumException — A classe SodiumException


Introdução

Sodium é uma biblioteca de software moderna e fácil de usar para criptografia, descriptografia, assinaturas, hash de senha e mais. Seu objetivo é fornecer todas as operações essenciais necessárias para construir ferramentas criptográficas de alto nível.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

Esta extensão requer » libsodium = 1.0.8.


Instalação

Desde o PHP 7.2.0 esta extensão é empacotada com o PHP. Para versões mais antigas do PHP esta extensão está disponível via PECL.

Sistemas Linux

Para usar esta extensão, o PHP deve ser compilado com suporte ao sodium usando a opção de configuração --with-sodium[=DIR].

Windows

Para usar esta extensão, extension=php_sodium.dll deve ser adicionado ao php.ini.

Instalação via PECL

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/libsodium


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SODIUM_LIBRARY_VERSION (string)
SODIUM_LIBRARY_MAJOR_VERSION (int)
SODIUM_LIBRARY_MINOR_VERSION (int)
SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES (int)
SODIUM_CRYPTO_AUTH_BYTES (int)
SODIUM_CRYPTO_AUTH_KEYBYTES (int)
SODIUM_CRYPTO_BOX_SEALBYTES (int)
SODIUM_CRYPTO_BOX_SECRETKEYBYTES (int)
SODIUM_CRYPTO_BOX_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_BOX_KEYPAIRBYTES (int)
SODIUM_CRYPTO_BOX_MACBYTES (int)
SODIUM_CRYPTO_BOX_NONCEBYTES (int)
SODIUM_CRYPTO_BOX_SEEDBYTES (int)
SODIUM_CRYPTO_KDF_BYTES_MIN (int)
SODIUM_CRYPTO_KDF_BYTES_MAX (int)
SODIUM_CRYPTO_KDF_CONTEXTBYTES (int)
SODIUM_CRYPTO_KDF_KEYBYTES (int)
SODIUM_CRYPTO_KX_SEEDBYTES (int)
SODIUM_CRYPTO_KX_SESSIONKEYBYTES (int)
SODIUM_CRYPTO_KX_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_KX_SECRETKEYBYTES (int)
SODIUM_CRYPTO_KX_KEYPAIRBYTES (int)
SODIUM_CRYPTO_GENERICHASH_BYTES (int)
SODIUM_CRYPTO_GENERICHASH_BYTES_MIN (int)
SODIUM_CRYPTO_GENERICHASH_BYTES_MAX (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX (int)
SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13 (int)
SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13 (int)
SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (int)
SODIUM_CRYPTO_PWHASH_SALTBYTES (int)
SODIUM_CRYPTO_PWHASH_STRPREFIX (string)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE (int)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX (string)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES (int)
Disponível a partir do PHP 8.1.0.
SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES (int)
Disponível a partir do PHP 8.1.0.
SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES (int)
Disponível a partir do PHP 8.1.0.
SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES (int)
Disponível a partir do PHP 8.1.0.
SODIUM_CRYPTO_SCALARMULT_BYTES (int)
SODIUM_CRYPTO_SCALARMULT_SCALARBYTES (int)
SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES (int)
Disponível a partir do PHP 8.1.0.
SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES (int)
Disponível a partir do PHP 8.1.0.
SODIUM_CRYPTO_SHORTHASH_BYTES (int)
SODIUM_CRYPTO_SHORTHASH_KEYBYTES (int)
SODIUM_CRYPTO_SECRETBOX_KEYBYTES (int)
SODIUM_CRYPTO_SECRETBOX_MACBYTES (int)
SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (int)
SODIUM_CRYPTO_SIGN_BYTES (int)
SODIUM_CRYPTO_SIGN_SEEDBYTES (int)
SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_SIGN_SECRETKEYBYTES (int)
SODIUM_CRYPTO_SIGN_KEYPAIRBYTES (int)
SODIUM_CRYPTO_STREAM_NONCEBYTES (int)
SODIUM_CRYPTO_STREAM_KEYBYTES (int)
SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES (int)
Disponível a partir do PHP 8.1.0.
SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES (int)
Disponível a partir do PHP 8.1.0.


Funções da Sodium

Índice

  • sodium_add — Soma números grandes
  • sodium_base642bin — Decodifica uma string codificada em base64 para binário bruto.
  • sodium_bin2base64 — Codifica uma string binária bruta com base64.
  • sodium_bin2hex — Codifica para hexadecimal
  • sodium_compare — Compara números grandes
  • sodium_crypto_aead_aes256gcm_decrypt — Verify then decrypt a message with AES-256-GCM
  • sodium_crypto_aead_aes256gcm_encrypt — Encrypt then authenticate with AES-256-GCM
  • sodium_crypto_aead_aes256gcm_is_available — Check if hardware supports AES256-GCM
  • sodium_crypto_aead_aes256gcm_keygen — Generate a random AES-256-GCM key
  • sodium_crypto_aead_chacha20poly1305_decrypt — Verify then decrypt with ChaCha20-Poly1305
  • sodium_crypto_aead_chacha20poly1305_encrypt — Encrypt then authenticate with ChaCha20-Poly1305
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Verify that the ciphertext includes a valid tag
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Encrypt a message
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen — Generate a random ChaCha20-Poly1305 (IETF) key.
  • sodium_crypto_aead_chacha20poly1305_keygen — Generate a random ChaCha20-Poly1305 key.
  • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — (Preferred) Verify then decrypt with XChaCha20-Poly1305
  • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
  • sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Generate a random XChaCha20-Poly1305 key.
  • sodium_crypto_auth_keygen — Generate a random key for sodium_crypto_auth
  • sodium_crypto_auth_verify — Verifies that the tag is valid for the message
  • sodium_crypto_auth — Compute a tag for the message
  • sodium_crypto_box_keypair_from_secretkey_and_publickey — Create a unified keypair string from a secret key and public key
  • sodium_crypto_box_keypair — Randomly generate a secret key and a corresponding public key
  • sodium_crypto_box_open — Authenticated public-key decryption
  • sodium_crypto_box_publickey_from_secretkey — Calculate the public key from a secret key
  • sodium_crypto_box_publickey — Extract the public key from a crypto_box keypair
  • sodium_crypto_box_seal_open — Anonymous public-key decryption
  • sodium_crypto_box_seal — Anonymous public-key encryption
  • sodium_crypto_box_secretkey — Extracts the secret key from a crypto_box keypair
  • sodium_crypto_box_seed_keypair — Deterministically derive the key pair from a single key
  • sodium_crypto_box — Authenticated public-key encryption
  • sodium_crypto_core_ristretto255_add — Adds an element
  • sodium_crypto_core_ristretto255_from_hash — Maps a vector
  • sodium_crypto_core_ristretto255_is_valid_point — Determines if a point on the ristretto255 curve
  • sodium_crypto_core_ristretto255_random — Generates a random key
  • sodium_crypto_core_ristretto255_scalar_add — Adds a scalar value
  • sodium_crypto_core_ristretto255_scalar_complement — The sodium_crypto_core_ristretto255_scalar_complement purpose
  • sodium_crypto_core_ristretto255_scalar_invert — Inverts a scalar value
  • sodium_crypto_core_ristretto255_scalar_mul — Multiplies a scalar value
  • sodium_crypto_core_ristretto255_scalar_negate — Negates a scalar value
  • sodium_crypto_core_ristretto255_scalar_random — Generates a random key
  • sodium_crypto_core_ristretto255_scalar_reduce — Reduces a scalar value
  • sodium_crypto_core_ristretto255_scalar_sub — Subtracts a scalar value
  • sodium_crypto_core_ristretto255_sub — Subtracts an element
  • sodium_crypto_generichash_final — Complete the hash
  • sodium_crypto_generichash_init — Initialize a hash for streaming
  • sodium_crypto_generichash_keygen — Generate a random generichash key
  • sodium_crypto_generichash_update — Add message to a hash
  • sodium_crypto_generichash — Get a hash of the message
  • sodium_crypto_kdf_derive_from_key — Derive a subkey
  • sodium_crypto_kdf_keygen — Generate a random root key for the KDF interface
  • sodium_crypto_kx_client_session_keys — Calculate the client-side session keys.
  • sodium_crypto_kx_keypair — Creates a new sodium keypair
  • sodium_crypto_kx_publickey — Extract the public key from a crypto_kx keypair
  • sodium_crypto_kx_secretkey — Extract the secret key from a crypto_kx keypair.
  • sodium_crypto_kx_seed_keypair — Description
  • sodium_crypto_kx_server_session_keys — Calculate the server-side session keys.
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Verify that the password is a valid password verification string
  • sodium_crypto_pwhash_scryptsalsa208sha256_str — Get an ASCII encoded hash
  • sodium_crypto_pwhash_scryptsalsa208sha256 — Derives a key from a password, using scrypt
  • sodium_crypto_pwhash_str_needs_rehash — Determine whether or not to rehash a password
  • sodium_crypto_pwhash_str_verify — Verifies that a password matches a hash
  • sodium_crypto_pwhash_str — Get an ASCII-encoded hash
  • sodium_crypto_pwhash — Derive a key from a password, using Argon2
  • sodium_crypto_scalarmult_base — Sinônimo de sodium_crypto_box_publickey_from_secretkey
  • sodium_crypto_scalarmult_ristretto255_base — Calculates the public key from a secret key
  • sodium_crypto_scalarmult_ristretto255 — Computes a shared secret
  • sodium_crypto_scalarmult — Compute a shared secret given a user's secret key and another user's public key
  • sodium_crypto_secretbox_keygen — Generate random key for sodium_crypto_secretbox
  • sodium_crypto_secretbox_open — Authenticated shared-key decryption
  • sodium_crypto_secretbox — Authenticated shared-key encryption
  • sodium_crypto_secretstream_xchacha20poly1305_init_pull — Initialize a secretstream context for decryption
  • sodium_crypto_secretstream_xchacha20poly1305_init_push — Initialize a secretstream context for encryption
  • sodium_crypto_secretstream_xchacha20poly1305_keygen — Generate a random secretstream key.
  • sodium_crypto_secretstream_xchacha20poly1305_pull — Decrypt a chunk of data from an encrypted stream
  • sodium_crypto_secretstream_xchacha20poly1305_push — Encrypt a chunk of data so that it can safely be decrypted in a streaming API
  • sodium_crypto_secretstream_xchacha20poly1305_rekey — Explicitly rotate the key in the secretstream state
  • sodium_crypto_shorthash_keygen — Get random bytes for key
  • sodium_crypto_shorthash — Compute a short hash of a message and key
  • sodium_crypto_sign_detached — Sign the message
  • sodium_crypto_sign_ed25519_pk_to_curve25519 — Convert an Ed25519 public key to a Curve25519 public key
  • sodium_crypto_sign_ed25519_sk_to_curve25519 — Convert an Ed25519 secret key to a Curve25519 secret key
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey — Join a secret key and public key together
  • sodium_crypto_sign_keypair — Randomly generate a secret key and a corresponding public key
  • sodium_crypto_sign_open — Check that the signed message has a valid signature
  • sodium_crypto_sign_publickey_from_secretkey — Extract the Ed25519 public key from the secret key
  • sodium_crypto_sign_publickey — Extract the Ed25519 public key from a keypair
  • sodium_crypto_sign_secretkey — Extract the Ed25519 secret key from a keypair
  • sodium_crypto_sign_seed_keypair — Deterministically derive the key pair from a single key
  • sodium_crypto_sign_verify_detached — Verify signature for the message
  • sodium_crypto_sign — Sign a message
  • sodium_crypto_stream_keygen — Generate a random sodium_crypto_stream key.
  • sodium_crypto_stream_xchacha20_keygen — Returns a secure random key
  • sodium_crypto_stream_xchacha20_xor_ic — Encrypts a message using a nonce and a secret key (no authentication)
  • sodium_crypto_stream_xchacha20_xor — Encrypts a message using a nonce and a secret key (no authentication)
  • sodium_crypto_stream_xchacha20 — Expands the key and nonce into a keystream of pseudorandom bytes
  • sodium_crypto_stream_xor — Encrypt a message without authentication
  • sodium_crypto_stream — Generate a deterministic sequence of bytes from a seed
  • sodium_hex2bin — Decodifica uma string binária codificada em hexadecimal
  • sodium_increment — Incrementa um número grande
  • sodium_memcmp — Testa para igualdade em tempo constante
  • sodium_memzero — Sobrescreva uma string com caracteres NUL
  • sodium_pad — Adiciona dados de preenchimento
  • sodium_unpad — Remova dados de preenchimento


Soma números grandes

  • « Funções da Sodium
  • sodium_base642bin »
  • PHP Manual
  • Funções da Sodium
  • Soma números grandes

sodium_add

(PHP 7 >= 7.2.0, PHP 8)

sodium_add — Soma números grandes

Descrição

sodium_add(string &$string1, string $string2): void

Adiciona o parâmetro string2 ao string1, substituindo o valor armazenado em string1. Esta função assume que ambos os parâmetros são strings binárias que representam inteiros sem sinal na ordem de bytes little-endian.

Parâmetros

string1

String representando um número inteiro sem sinal de tamanho arbitrário na ordem de bytes little-endian. Este parâmetro é passado por referência e conterá a soma dos dois parâmetros.

string2

String representando um número inteiro sem sinal de tamanho arbitrário na ordem de bytes little-endian.

Valor Retornado

Nenhum valor é retornado.


Decodifica uma string codificada em base64 para binário bruto.

  • « sodium_add
  • sodium_bin2base64 »
  • PHP Manual
  • Funções da Sodium
  • Decodifica uma string codificada em base64 para binário bruto.

sodium_base642bin

(PHP 7 >= 7.2.0, PHP 8)

sodium_base642bin — Decodifica uma string codificada em base64 para binário bruto.

Descrição

sodium_base642bin(string $string, int $id, string $ignore = ""): string

Converte uma string codificada em base64 para binário bruto. Ao contrário de base64_decode(), sodium_base642bin() é de tempo constante (uma propriedade que é importante para qualquer código que toca entradas criptográficas, como textos simples ou chaves) e suporta vários conjuntos de caracteres.

Parâmetros

string

string; String codificada.

id

  • SODIUM_BASE64_VARIANT_ORIGINAL para codificação Base64 padrão (A-Za-z0-9/\+).
  • SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING para codificação Base64 padrão (A-Za-z0-9/\+), sem os caracteres de preenchimento =.
  • SODIUM_BASE64_VARIANT_URLSAFE para codificação Base64 segura para URL (A-Za-z0-9\-_).
  • SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING para codificação Base64 segura para URL (A-Za-z0-9\-_), sem os caracteres de preenchimento =.

ignore

Caracteres a serem ignorados ao decodificar (por exemplo, caracteres de espaço em branco).

Valor Retornado

String decodificada.


Codifica uma string binária bruta com base64.

  • « sodium_base642bin
  • sodium_bin2hex »
  • PHP Manual
  • Funções da Sodium
  • Codifica uma string binária bruta com base64.

sodium_bin2base64

(PHP 7 >= 7.2.0, PHP 8)

sodium_bin2base64 — Codifica uma string binária bruta com base64.

Descrição

sodium_bin2base64(string $string, int $id): string

Converte uma string binária bruta em uma string codificada em base64. Ao contrário de base64_encode(), sodium_bin2base64() é de tempo constante (uma propriedade que é importante para qualquer código que toca entradas criptográficas, como textos simples ou chaves) e suporta vários conjuntos de caracteres.

Parâmetros

string

String binária bruta.

id

  • SODIUM_BASE64_VARIANT_ORIGINAL para codificação Base64 padrão (A-Za-z0-9/\+).
  • SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING para codificação Base64 padrão (A-Za-z0-9/\+), sem os caracteres de preenchimento =.
  • SODIUM_BASE64_VARIANT_URLSAFE para codificação Base64 segura para URL (A-Za-z0-9\-_).
  • SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING para codificação Base64 segura para URL (A-Za-z0-9\-_), sem os caracteres de preenchimento =.

Valor Retornado

String codificada em Base64.


Codifica para hexadecimal

  • « sodium_bin2base64
  • sodium_compare »
  • PHP Manual
  • Funções da Sodium
  • Codifica para hexadecimal

sodium_bin2hex

(PHP 7 >= 7.2.0, PHP 8)

sodium_bin2hex — Codifica para hexadecimal

Descrição

sodium_bin2hex(string $string): string

Converte uma string binária bruta em uma string codificada em hexadecimal. Ao contrário da função de codificação hexadecimal padrão, sodium_bin2hex() é de tempo constante (uma propriedade importante para qualquer código que toca entradas criptográficas, como textos simples ou chaves).

Parâmetros

string

String binária bruta.

Valor Retornado

String codificada em hexadecimal.


Compara números grandes

  • « sodium_bin2hex
  • sodium_crypto_aead_aes256gcm_decrypt »
  • PHP Manual
  • Funções da Sodium
  • Compara números grandes

sodium_compare

(PHP 7 >= 7.2.0, PHP 8)

sodium_compare — Compara números grandes

Descrição

sodium_compare(string $string1, string $string2): int

Compara duas strings como se fossem inteiros little-endian sem sinal, de tamanho arbitrário, sem vazamento de canal lateral.

Parâmetros

string1

Operando esquerdo

string2

Operando direito

Valor Retornado

Retorna -1 se string1 for menor que string2.

Retorna 1 se string1 for maior que string2.

Retorna 0 se ambas as strings forem iguais.


Verify then decrypt a message with AES-256-GCM

  • « sodium_compare
  • sodium_crypto_aead_aes256gcm_encrypt »
  • PHP Manual
  • Funções da Sodium
  • Verify then decrypt a message with AES-256-GCM

sodium_crypto_aead_aes256gcm_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_decrypt — Verify then decrypt a message with AES-256-GCM

Descrição

sodium_crypto_aead_aes256gcm_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Verify then decrypt with AES-256-GCM. Only available if sodium_crypto_aead_aes256gcm_is_available() returns true.

Parâmetros

ciphertext

Must be in the format provided by sodium_crypto_aead_aes256gcm_encrypt() (ciphertext and tag, concatenated).

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 12 bytes long.

key

Encryption key (256-bit).

Valor Retornado

Returns the plaintext on success, ou false em caso de falha.


Encrypt then authenticate with AES-256-GCM

  • « sodium_crypto_aead_aes256gcm_decrypt
  • sodium_crypto_aead_aes256gcm_is_available »
  • PHP Manual
  • Funções da Sodium
  • Encrypt then authenticate with AES-256-GCM

sodium_crypto_aead_aes256gcm_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_encrypt — Encrypt then authenticate with AES-256-GCM

Descrição

sodium_crypto_aead_aes256gcm_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Encrypt then authenticate with AES-256-GCM. Only available if sodium_crypto_aead_aes256gcm_is_available() returns true.

Parâmetros

message

The plaintext message to encrypt.

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 12 bytes long.

key

Encryption key (256-bit).

Valor Retornado

Returns the ciphertext and authentication tag as a string of raw binary bytes. (Format: ciphertext, then tag.)


Check if hardware supports AES256-GCM

  • « sodium_crypto_aead_aes256gcm_encrypt
  • sodium_crypto_aead_aes256gcm_keygen »
  • PHP Manual
  • Funções da Sodium
  • Check if hardware supports AES256-GCM

sodium_crypto_aead_aes256gcm_is_available

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_is_available — Check if hardware supports AES256-GCM

Descrição

sodium_crypto_aead_aes256gcm_is_available(): bool

The return value of this function depends on whether or not the hardware supports hardware-accelerated AES.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if it is safe to encrypt with AES-256-GCM, and false otherwise.


Generate a random AES-256-GCM key

  • « sodium_crypto_aead_aes256gcm_is_available
  • sodium_crypto_aead_chacha20poly1305_decrypt »
  • PHP Manual
  • Funções da Sodium
  • Generate a random AES-256-GCM key

sodium_crypto_aead_aes256gcm_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_keygen — Generate a random AES-256-GCM key

Descrição

sodium_crypto_aead_aes256gcm_keygen(): string

Generate a random key for use with sodium_crypto_aead_aes256gcm_encrypt() and sodium_crypto_aead_aes256gcm_decrypt().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a 256-bit random key.


Verify then decrypt with ChaCha20-Poly1305

  • « sodium_crypto_aead_aes256gcm_keygen
  • sodium_crypto_aead_chacha20poly1305_encrypt »
  • PHP Manual
  • Funções da Sodium
  • Verify then decrypt with ChaCha20-Poly1305

sodium_crypto_aead_chacha20poly1305_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_decrypt — Verify then decrypt with ChaCha20-Poly1305

Descrição

sodium_crypto_aead_chacha20poly1305_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Verify then decrypt with ChaCha20-Poly1305.

Parâmetros

ciphertext

Must be in the format provided by sodium_crypto_aead_chacha20poly1305_encrypt() (ciphertext and tag, concatenated).

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 8 bytes long.

key

Encryption key (256-bit).

Valor Retornado

Returns the plaintext on success, ou false em caso de falha.


Encrypt then authenticate with ChaCha20-Poly1305

  • « sodium_crypto_aead_chacha20poly1305_decrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt »
  • PHP Manual
  • Funções da Sodium
  • Encrypt then authenticate with ChaCha20-Poly1305

sodium_crypto_aead_chacha20poly1305_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_encrypt — Encrypt then authenticate with ChaCha20-Poly1305

Descrição

sodium_crypto_aead_chacha20poly1305_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Encrypt then authenticate with ChaCha20-Poly1305.

Parâmetros

message

The plaintext message to encrypt.

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 8 bytes long.

key

Encryption key (256-bit).

Valor Retornado

Returns the ciphertext and tag on success, ou false em caso de falha.


Verify that the ciphertext includes a valid tag

  • « sodium_crypto_aead_chacha20poly1305_encrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt »
  • PHP Manual
  • Funções da Sodium
  • Verify that the ciphertext includes a valid tag

sodium_crypto_aead_chacha20poly1305_ietf_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Verify that the ciphertext includes a valid tag

Descrição

sodium_crypto_aead_chacha20poly1305_ietf_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Verify then decrypt with ChaCha20-Poly1305 (IETF variant).

The IETF variant uses 96-bit nonces and 32-bit internal counters, instead of 64-bit for both.

Parâmetros

ciphertext

Must be in the format provided by sodium_crypto_aead_chacha20poly1305_ietf_encrypt() (ciphertext and tag, concatenated).

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 12 bytes long.

key

Encryption key (256-bit).

Valor Retornado

Returns the plaintext on success, ou false em caso de falha.


Encrypt a message

  • « sodium_crypto_aead_chacha20poly1305_ietf_decrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen »
  • PHP Manual
  • Funções da Sodium
  • Encrypt a message

sodium_crypto_aead_chacha20poly1305_ietf_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Encrypt a message

Descrição

sodium_crypto_aead_chacha20poly1305_ietf_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Encrypt then authenticate with ChaCha20-Poly1305 (IETF variant).

The IETF variant uses 96-bit nonces and 32-bit internal counters, instead of 64-bit for both.

Parâmetros

message

The plaintext message to encrypt.

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 12 bytes long.

key

Encryption key (256-bit).

Valor Retornado

Returns the ciphertext and tag on success, ou false em caso de falha.


Generate a random ChaCha20-Poly1305 (IETF) key.

  • « sodium_crypto_aead_chacha20poly1305_ietf_encrypt
  • sodium_crypto_aead_chacha20poly1305_keygen »
  • PHP Manual
  • Funções da Sodium
  • Generate a random ChaCha20-Poly1305 (IETF) key.

sodium_crypto_aead_chacha20poly1305_ietf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_keygen — Generate a random ChaCha20-Poly1305 (IETF) key.

Descrição

sodium_crypto_aead_chacha20poly1305_ietf_keygen(): string

Generate a random key for use with sodium_crypto_aead_chacha20poly1305_ietf_encrypt() and sodium_crypto_aead_chacha20poly1305_ietf_decrypt().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a 256-bit random key.


Generate a random ChaCha20-Poly1305 key.

  • « sodium_crypto_aead_chacha20poly1305_ietf_keygen
  • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt »
  • PHP Manual
  • Funções da Sodium
  • Generate a random ChaCha20-Poly1305 key.

sodium_crypto_aead_chacha20poly1305_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_keygen — Generate a random ChaCha20-Poly1305 key.

Descrição

sodium_crypto_aead_chacha20poly1305_keygen(): string

Generate a random key for use with sodium_crypto_aead_chacha20poly1305_encrypt() and sodium_crypto_aead_chacha20poly1305_decrypt().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a 256-bit random key.


(Preferred) Verify then decrypt with XChaCha20-Poly1305

  • « sodium_crypto_aead_chacha20poly1305_keygen
  • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt »
  • PHP Manual
  • Funções da Sodium
  • (Preferred) Verify then decrypt with XChaCha20-Poly1305

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — (Preferred) Verify then decrypt with XChaCha20-Poly1305

Descrição

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Verify then decrypt with ChaCha20-Poly1305 (eXtended-nonce variant).

Generally, XChaCha20-Poly1305 is the best of the provided AEAD modes to use.

Parâmetros

ciphertext

Must be in the format provided by sodium_crypto_aead_chacha20poly1305_ietf_encrypt() (ciphertext and tag, concatenated).

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valor Retornado

Returns the plaintext on success, ou false em caso de falha.


(Preferred) Encrypt then authenticate with XChaCha20-Poly1305

  • « sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
  • sodium_crypto_aead_xchacha20poly1305_ietf_keygen »
  • PHP Manual
  • Funções da Sodium
  • (Preferred) Encrypt then authenticate with XChaCha20-Poly1305

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — (Preferred) Encrypt then authenticate with XChaCha20-Poly1305

Descrição

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Encrypt then authenticate with XChaCha20-Poly1305 (eXtended-nonce variant).

Generally, XChaCha20-Poly1305 is the best of the provided AEAD modes to use.

Parâmetros

message

The plaintext message to encrypt.

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valor Retornado

Returns the ciphertext and tag on success, ou false em caso de falha.


Generate a random XChaCha20-Poly1305 key.

  • « sodium_crypto_aead_xchacha20poly1305_ietf_encrypt
  • sodium_crypto_auth_keygen »
  • PHP Manual
  • Funções da Sodium
  • Generate a random XChaCha20-Poly1305 key.

sodium_crypto_aead_xchacha20poly1305_ietf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Generate a random XChaCha20-Poly1305 key.

Descrição

sodium_crypto_aead_xchacha20poly1305_ietf_keygen(): string

Generate a random key for use with sodium_crypto_aead_xchacha20poly1305_ietf_encrypt() and sodium_crypto_aead_xchacha20poly1305_ietf_decrypt().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a 256-bit random key.


Generate a random key for sodium_crypto_auth

  • « sodium_crypto_aead_xchacha20poly1305_ietf_keygen
  • sodium_crypto_auth_verify »
  • PHP Manual
  • Funções da Sodium
  • Generate a random key for sodium_crypto_auth

sodium_crypto_auth_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth_keygen — Generate a random key for sodium_crypto_auth

Descrição

sodium_crypto_auth_keygen(): string

Generate a key for use with sodium_crypto_auth() and sodium_crypto_auth_verify().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a 256-bit random key.


Verifies that the tag is valid for the message

  • « sodium_crypto_auth_keygen
  • sodium_crypto_auth »
  • PHP Manual
  • Funções da Sodium
  • Verifies that the tag is valid for the message

sodium_crypto_auth_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth_verify — Verifies that the tag is valid for the message

Descrição

sodium_crypto_auth_verify(string $mac, string $message, string $key): bool

Verify the authentication tag is valid for a given message and key.

Unlike with digital signatures (e.g. sodium_crypto_sign_verify_detached()), any party capable of verifying a message is also capable of authenticating their own messages. (Hence, symmetric authentication.)

Parâmetros

mac

Authentication tag produced by sodium_crypto_auth()

message

Message

key

Authentication key

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Compute a tag for the message

  • « sodium_crypto_auth_verify
  • sodium_crypto_box_keypair_from_secretkey_and_publickey »
  • PHP Manual
  • Funções da Sodium
  • Compute a tag for the message

sodium_crypto_auth

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth — Compute a tag for the message

Descrição

sodium_crypto_auth(string $message, string $key): string

Symmetric message authentication via sodium_crypto_auth() provides integrity, but not confidentiality.

Unlike with digital signatures (e.g. sodium_crypto_sign_detached()), any party capable of verifying a message is also capable of authenticating their own messages. (Hence, symmetric authentication.)

Parâmetros

message

The message you intend to authenticate

key

Authentication key

Valor Retornado

Authentication tag


Create a unified keypair string from a secret key and public key

  • « sodium_crypto_auth
  • sodium_crypto_box_keypair »
  • PHP Manual
  • Funções da Sodium
  • Create a unified keypair string from a secret key and public key

sodium_crypto_box_keypair_from_secretkey_and_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_keypair_from_secretkey_and_publickey — Create a unified keypair string from a secret key and public key

Descrição

sodium_crypto_box_keypair_from_secretkey_and_publickey(string $secret_key, string $public_key): string

This function exists to satisfy the API requirements of e.g. crypto_box(). Pass in one party's secret key and the other's public key, and you will obtain a "keypair" for your conversation.

Parâmetros

secret_key

Secret key.

public_key

Public key.

Valor Retornado

X25519 Keypair.


Randomly generate a secret key and a corresponding public key

  • « sodium_crypto_box_keypair_from_secretkey_and_publickey
  • sodium_crypto_box_open »
  • PHP Manual
  • Funções da Sodium
  • Randomly generate a secret key and a corresponding public key

sodium_crypto_box_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_keypair — Randomly generate a secret key and a corresponding public key

Descrição

sodium_crypto_box_keypair(): string

Generates a secret key and a public key as one string.

To get the secret key out of this unified keypair string, see sodium_crypto_box_secretkey(). To get the public key out of this unified keypair string, see sodium_crypto_box_publickey().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

One string containing both the X25519 secret key and corresponding X25519 public key.


Authenticated public-key decryption

  • « sodium_crypto_box_keypair
  • sodium_crypto_box_publickey_from_secretkey »
  • PHP Manual
  • Funções da Sodium
  • Authenticated public-key decryption

sodium_crypto_box_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_open — Authenticated public-key decryption

Descrição

sodium_crypto_box_open(string $ciphertext, string $nonce, string $key_pair): string|false

Decrypt a message using asymmetric (public key) cryptography.

Parâmetros

ciphertext

The encrypted message to attempt to decrypt.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key_pair

See sodium_crypto_box_keypair_from_secretkey_and_publickey(). This should include the sender's public key and the recipient's secret key.

Valor Retornado

Returns the plaintext message on success, ou false em caso de falha.


Calculate the public key from a secret key

  • « sodium_crypto_box_open
  • sodium_crypto_box_publickey »
  • PHP Manual
  • Funções da Sodium
  • Calculate the public key from a secret key

sodium_crypto_box_publickey_from_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_publickey_from_secretkey — Calculate the public key from a secret key

Descrição

sodium_crypto_box_publickey_from_secretkey(string $secret_key): string

Given a secret key, calculate the corresponding public key.

This only works with the type of keys intended for use with crypto_box() (which uses Elliptic Curve Diffie-Hellman over the Montgomery curve, Curve25519; abbreviated as X25519), not crypto_sign() (which uses Edwards Digital Signature Algorithm over the Edwards Curve with the corresponding paramaters; abbreviated Ed25519).

Parâmetros

secret_key

X25519 secret key

Valor Retornado

X25519 public key.


Extract the public key from a crypto_box keypair

  • « sodium_crypto_box_publickey_from_secretkey
  • sodium_crypto_box_seal_open »
  • PHP Manual
  • Funções da Sodium
  • Extract the public key from a crypto_box keypair

sodium_crypto_box_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_publickey — Extract the public key from a crypto_box keypair

Descrição

sodium_crypto_box_publickey(string $key_pair): string

Given a keypair, fetch only the public key.

Parâmetros

key_pair

A keypair, such as one generated by sodium_crypto_box_keypair() or sodium_crypto_box_seed_keypair()

Valor Retornado

X25519 public key.


Anonymous public-key decryption

  • « sodium_crypto_box_publickey
  • sodium_crypto_box_seal »
  • PHP Manual
  • Funções da Sodium
  • Anonymous public-key decryption

sodium_crypto_box_seal_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seal_open — Anonymous public-key decryption

Descrição

sodium_crypto_box_seal_open(string $ciphertext, string $key_pair): string|false

Decrypt a message that was encrypted with sodium_crypto_box_seal()

Parâmetros

ciphertext

The encrypted message

key_pair

The keypair of the recipient. Must include the secret key.

Valor Retornado

The plaintext on success, ou false em caso de falha.

Exemplos

Exemplo #1 sodium_crypto_box_seal_open() example

<?php
// Ciphertext is not sensitive; base64_decode is fine
$sealed_b64 = "oRBXXAV4iQBrxlV4A21Bord8Yo/D8ZlrIIGNyaRCcGBfpz0map52I3xq6l+CST+1NSgQkbV+HiYyFjXWiWiaCGupGf+zl4bgWj/A9Adtem7Jt3h3emrMsLw=";
$sealed = base64_decode($sealed_b64);

// Keypair contains a cryptographic secret; use a timing-safe decoder
$keypair_b64 = "KZkF8wnB7bnC2aXB3lFOqCTc0Z6MllvaQb9ASVG8o2/MsewkuE4u1uaEgTzSakeiYyIW8DGj+02/L3cWIbs9bQ==";
$keypair = sodium_base642bin($keypair_b64, SODIUM_BASE64_VARIANT_ORIGINAL);

$opened = sodium_crypto_box_seal_open($sealed, $keypair);
var_dump($opened);
?>

O exemplo acima produzirá algo semelhante a:

string(41) "Writing software in PHP can be a delight!"


Anonymous public-key encryption

  • « sodium_crypto_box_seal_open
  • sodium_crypto_box_secretkey »
  • PHP Manual
  • Funções da Sodium
  • Anonymous public-key encryption

sodium_crypto_box_seal

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seal — Anonymous public-key encryption

Descrição

sodium_crypto_box_seal(string $message, string $public_key): string

Encrypt a message such that only the recipient can decrypt it.

Unlike with sodium_crypto_box(), you only need to know the recipient's public key to use sodium_crypto_box_seal(). One consequence of this convenience, however, is that the ciphertext isn't bound to a static public key, and is therefore not authenticated. Hence, anonymous public-key encryption.

sodium_crypto_box_seal() still provides ciphertext integrity. Just not sender identity authentication.

If you also need sender authentication, the sodium_crypto_sign() functions are likely the best place to start.

Parâmetros

message

The message to encrypt.

public_key

The public key that corresponds to the only key that can decrypt the message.

Valor Retornado

A ciphertext string in the format of (one-time public key, encrypted message, authentication tag).

Exemplos

Exemplo #1 sodium_crypto_box_seal() example

<?php
$keypair = sodium_crypto_box_keypair();
$public_key = sodium_crypto_box_publickey($keypair);

// Obfuscated plaintext to make the example more fun
$plaintext_b64 = "V3JpdGluZyBzb2Z0d2FyZSBpbiBQSFAgY2FuIGJlIGEgZGVsaWdodCE=";
$decoded_plaintext = sodium_base642bin($plaintext_b64, SODIUM_BASE64_VARIANT_ORIGINAL);

$sealed = sodium_crypto_box_seal($decoded_plaintext, $public_key);
var_dump(base64_encode($sealed));

$opened = sodium_crypto_box_seal_open($sealed, $keypair);
var_dump($opened);
?>

O exemplo acima produzirá algo semelhante a:

string(120) "oRBXXAV4iQBrxlV4A21Bord8Yo/D8ZlrIIGNyaRCcGBfpz0map52I3xq6l+CST+1NSgQkbV+HiYyFjXWiWiaCGupGf+zl4bgWj/A9Adtem7Jt3h3emrMsLw="
string(41) "Writing software in PHP can be a delight!"


Extracts the secret key from a crypto_box keypair

  • « sodium_crypto_box_seal
  • sodium_crypto_box_seed_keypair »
  • PHP Manual
  • Funções da Sodium
  • Extracts the secret key from a crypto_box keypair

sodium_crypto_box_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_secretkey — Extracts the secret key from a crypto_box keypair

Descrição

sodium_crypto_box_secretkey(string $key_pair): string

Given a keypair, fetch only the secret key.

Parâmetros

key_pair

A keypair, such as one generated by sodium_crypto_box_keypair() or sodium_crypto_box_seed_keypair()

Valor Retornado

X25519 secret key.


Deterministically derive the key pair from a single key

  • « sodium_crypto_box_secretkey
  • sodium_crypto_box »
  • PHP Manual
  • Funções da Sodium
  • Deterministically derive the key pair from a single key

sodium_crypto_box_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seed_keypair — Deterministically derive the key pair from a single key

Descrição

sodium_crypto_box_seed_keypair(string $seed): string

Clamps the seed to form a secret key, derives the public key, and returns the two as a keypair.

The *_seed_keypair functions are ideal for generating a keypair from a password and salt. Use the result as a seed to generate the desired keys.

Parâmetros

seed

Some cryptographic input. Must be 32 bytes.

Valor Retornado

X25519 Keypair (secret key and public key).


Authenticated public-key encryption

  • « sodium_crypto_box_seed_keypair
  • sodium_crypto_core_ristretto255_add »
  • PHP Manual
  • Funções da Sodium
  • Authenticated public-key encryption

sodium_crypto_box

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box — Authenticated public-key encryption

Descrição

sodium_crypto_box(string $message, string $nonce, string $key_pair): string

Encrypt a message using asymmetric (public key) cryptography.

The algorithm used by functions prefixed with sodium_crypto_box() are Elliptic Curve Diffie-Hellman over the Montgomery curve, Curve25519; usually abbreviated as X25519.

Parâmetros

message

The message to be encrypted.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key_pair

See sodium_crypto_box_keypair_from_secretkey_and_publickey(). This should include the sender's X25519 secret key and the recipient's X25519 public key.

Valor Retornado

Returns the encrypted message (ciphertext plus authentication tag). The ciphertext will be 16 bytes longer than the plaintext, and a raw binary string. See sodium_bin2base64() for safe encoding for storage.


Adds an element

  • « sodium_crypto_box
  • sodium_crypto_core_ristretto255_from_hash »
  • PHP Manual
  • Funções da Sodium
  • Adds an element

sodium_crypto_core_ristretto255_add

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_add — Adds an element

Descrição

sodium_crypto_core_ristretto255_add(string $p, string $q): string

Adds an element q to p. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

p

An element.

q

An element.

Valor Retornado

Returns a 32-byte random string.

Exemplos

Exemplo #1 sodium_crypto_core_ristretto255_add() example

<?php

$foo = sodium_crypto_core_ristretto255_random();
$bar = sodium_crypto_core_ristretto255_random();

$value = sodium_crypto_core_ristretto255_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • sodium_crypto_core_ristretto255_random() - Generates a random key
  • sodium_crypto_core_ristretto255_sub() - Subtracts an element


Maps a vector

  • « sodium_crypto_core_ristretto255_add
  • sodium_crypto_core_ristretto255_is_valid_point »
  • PHP Manual
  • Funções da Sodium
  • Maps a vector

sodium_crypto_core_ristretto255_from_hash

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_from_hash — Maps a vector

Descrição

sodium_crypto_core_ristretto255_from_hash(string $s): string

Maps a 64-bytes vector s to a group element. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

s

A 64-bytes vector.

Valor Retornado

Returns a 32-byte random string.

Exemplos

Exemplo #1 sodium_crypto_core_ristretto255_from_hash() example

<?php

$hashes = sodium_hex2bin(
'5d1be09e3d0c82fc538112490e35701979d99e06ca3e2b5b54bffe8b4dc772c1' .
'4d98b696a1bbfb5ca32c436cc61c16563790306c79eaca7705668b47dffe5bb6'
);
var_dump(sodium_bin2hex(sodium_crypto_core_ristretto255_from_hash($hashes)));
?>

O exemplo acima produzirá:

string(64) "3066f82a1a747d45120d1740f14358531a8f04bbffe6a819f86dfe50f44a0a46"

Veja Também

  • sodium_hex2bin() - Decodifica uma string binária codificada em hexadecimal
  • sodium_bin2hex() - Codifica para hexadecimal
  • sodium_crypto_core_ristretto255_from_hash()


Determines if a point on the ristretto255 curve

  • « sodium_crypto_core_ristretto255_from_hash
  • sodium_crypto_core_ristretto255_random »
  • PHP Manual
  • Funções da Sodium
  • Determines if a point on the ristretto255 curve

sodium_crypto_core_ristretto255_is_valid_point

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_is_valid_point — Determines if a point on the ristretto255 curve

Descrição

sodium_crypto_core_ristretto255_is_valid_point(string $s): bool

Determines if a point on the ristretto255 curve, in canonical form, on the main subgroup, and that the point doesn't have a small order. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

s

An Elliptic-curve point.

Valor Retornado

Returns true if s is on the ristretto255 curve, false otherwise.

Exemplos

Exemplo #1 sodium_crypto_core_ristretto255_is_valid_point() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_scalarmult_ristretto255_base($foo);

var_dump(sodium_crypto_core_ristretto255_is_valid_point($bar));
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key
  • sodium_crypto_scalarmult_ristretto255_base() - Calculates the public key from a secret key


Generates a random key

  • « sodium_crypto_core_ristretto255_is_valid_point
  • sodium_crypto_core_ristretto255_scalar_add »
  • PHP Manual
  • Funções da Sodium
  • Generates a random key

sodium_crypto_core_ristretto255_random

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_random — Generates a random key

Descrição

sodium_crypto_core_ristretto255_random(): string

Generates a random key. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a 32-byte random string.

Exemplos

Exemplo #1 sodium_crypto_core_ristretto255_random() example

<?php

$foo = sodium_crypto_core_ristretto255_random();
$bar = sodium_crypto_core_ristretto255_random();

$value = sodium_crypto_core_ristretto255_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • sodium_crypto_core_ristretto255_add() - Adds an element
  • sodium_crypto_core_ristretto255_sub() - Subtracts an element


Adds a scalar value

  • « sodium_crypto_core_ristretto255_random
  • sodium_crypto_core_ristretto255_scalar_complement »
  • PHP Manual
  • Funções da Sodium
  • Adds a scalar value

sodium_crypto_core_ristretto255_scalar_add

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_add — Adds a scalar value

Descrição

sodium_crypto_core_ristretto255_scalar_add(string $x, string $y): string

Adds an element y to x. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

x

Scalar, representing the X coordinate.

y

Scalar, representing the Y coordinate.

Valor Retornado

Returns a 32-byte random string.

Exemplos

Exemplo #1 sodium_crypto_core_ristretto255_scalar_add() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_core_ristretto255_scalar_random();

$value = sodium_crypto_core_ristretto255_scalar_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_scalar_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key
  • sodium_crypto_core_ristretto255_scalar_sub() - Subtracts a scalar value


The sodium_crypto_core_ristretto255_scalar_complement purpose

  • « sodium_crypto_core_ristretto255_scalar_add
  • sodium_crypto_core_ristretto255_scalar_invert »
  • PHP Manual
  • Funções da Sodium
  • The sodium_crypto_core_ristretto255_scalar_complement purpose

sodium_crypto_core_ristretto255_scalar_complement

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_complement — The sodium_crypto_core_ristretto255_scalar_complement purpose

Descrição

sodium_crypto_core_ristretto255_scalar_complement(string $s): string

Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

s

Scalar value.

Valor Retornado

Returns a 32-byte random string.

Veja Também

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key


Inverts a scalar value

  • « sodium_crypto_core_ristretto255_scalar_complement
  • sodium_crypto_core_ristretto255_scalar_mul »
  • PHP Manual
  • Funções da Sodium
  • Inverts a scalar value

sodium_crypto_core_ristretto255_scalar_invert

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_invert — Inverts a scalar value

Descrição

sodium_crypto_core_ristretto255_scalar_invert(string $s): string

Inverts a scalar value. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

s

Scalar value.

Valor Retornado

Returns a 32-byte random string.

Exemplos

Exemplo #1 sodium_crypto_core_ristretto255_scalar_invert() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();

$inverted = sodium_crypto_core_ristretto255_scalar_invert($foo);
$reInverted = sodium_crypto_core_ristretto255_scalar_invert($inverted);

var_dump(hash_equals($foo, $reInverted));
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key


Multiplies a scalar value

  • « sodium_crypto_core_ristretto255_scalar_invert
  • sodium_crypto_core_ristretto255_scalar_negate »
  • PHP Manual
  • Funções da Sodium
  • Multiplies a scalar value

sodium_crypto_core_ristretto255_scalar_mul

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_mul — Multiplies a scalar value

Descrição

sodium_crypto_core_ristretto255_scalar_mul(string $x, string $y): string

Multiplies a scalar value. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

x

Scalar, representing the X coordinate.

y

Scalar, representing the Y coordinate.

Valor Retornado

Returns a 32-byte random string.

Veja Também

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key


Negates a scalar value

  • « sodium_crypto_core_ristretto255_scalar_mul
  • sodium_crypto_core_ristretto255_scalar_random »
  • PHP Manual
  • Funções da Sodium
  • Negates a scalar value

sodium_crypto_core_ristretto255_scalar_negate

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_negate — Negates a scalar value

Descrição

sodium_crypto_core_ristretto255_scalar_negate(string $s): string

Negates a scalar value. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

s

Scalar value.

Valor Retornado

Returns a 32-byte random string.

Exemplos

Exemplo #1 sodium_crypto_core_ristretto255_scalar_negate() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();

$negate = sodium_crypto_core_ristretto255_scalar_negate($foo);
$reNegate = sodium_crypto_core_ristretto255_scalar_negate($negate);

var_dump(hash_equals($foo, $reNegate));
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key


Generates a random key

  • « sodium_crypto_core_ristretto255_scalar_negate
  • sodium_crypto_core_ristretto255_scalar_reduce »
  • PHP Manual
  • Funções da Sodium
  • Generates a random key

sodium_crypto_core_ristretto255_scalar_random

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_random — Generates a random key

Descrição

sodium_crypto_core_ristretto255_scalar_random(): string

Generates a random key. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a 32-byte random string.

Exemplos

Exemplo #1 sodium_crypto_core_ristretto255_scalar_random() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_core_ristretto255_scalar_random();

$value = sodium_crypto_core_ristretto255_scalar_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_scalar_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • sodium_crypto_core_ristretto255_scalar_add() - Adds a scalar value
  • sodium_crypto_core_ristretto255_scalar_sub() - Subtracts a scalar value


Reduces a scalar value

  • « sodium_crypto_core_ristretto255_scalar_random
  • sodium_crypto_core_ristretto255_scalar_sub »
  • PHP Manual
  • Funções da Sodium
  • Reduces a scalar value

sodium_crypto_core_ristretto255_scalar_reduce

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_reduce — Reduces a scalar value

Descrição

sodium_crypto_core_ristretto255_scalar_reduce(string $s): string

Reduces a scalar value. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

s

Scalar value.

Valor Retornado

Returns a 32-byte random string.

Veja Também

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key


Subtracts a scalar value

  • « sodium_crypto_core_ristretto255_scalar_reduce
  • sodium_crypto_core_ristretto255_sub »
  • PHP Manual
  • Funções da Sodium
  • Subtracts a scalar value

sodium_crypto_core_ristretto255_scalar_sub

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_sub — Subtracts a scalar value

Descrição

sodium_crypto_core_ristretto255_scalar_sub(string $x, string $y): string

Subtracts a scalar y from x. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

x

Scalar, representing the X coordinate.

y

Scalar, representing the Y coordinate.

Valor Retornado

Returns a 32-byte random string.

Exemplos

Exemplo #1 sodium_crypto_core_ristretto255_scalar_sub() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_core_ristretto255_scalar_random();

$value = sodium_crypto_core_ristretto255_scalar_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_scalar_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key
  • sodium_crypto_core_ristretto255_scalar_add() - Adds a scalar value


Subtracts an element

  • « sodium_crypto_core_ristretto255_scalar_sub
  • sodium_crypto_generichash_final »
  • PHP Manual
  • Funções da Sodium
  • Subtracts an element

sodium_crypto_core_ristretto255_sub

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_sub — Subtracts an element

Descrição

sodium_crypto_core_ristretto255_sub(string $p, string $q): string

Subtracts an element q from p. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

p

An element.

q

An element.

Valor Retornado

Returns a 32-byte random string.

Exemplos

Exemplo #1 sodium_crypto_core_ristretto255_sub() example

<?php

$foo = sodium_crypto_core_ristretto255_random();
$bar = sodium_crypto_core_ristretto255_random();

$value = sodium_crypto_core_ristretto255_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • sodium_crypto_core_ristretto255_random() - Generates a random key
  • sodium_crypto_core_ristretto255_add() - Adds an element


Complete the hash

  • « sodium_crypto_core_ristretto255_sub
  • sodium_crypto_generichash_init »
  • PHP Manual
  • Funções da Sodium
  • Complete the hash

sodium_crypto_generichash_final

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_final — Complete the hash

Descrição

sodium_crypto_generichash_final(string &$state, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string

The finalization method for the streaming generichash API.

Parâmetros

state

Hash state returned from sodium_crypto_generichash_init()

length

Output length.

Valor Retornado

Cryptographic hash.

Exemplos

Exemplo #1 sodium_crypto_generichash_final() example

<?php
$messages = [random_bytes(32), random_bytes(32), random_bytes(16)];
$state = sodium_crypto_generichash_init('', 32);
foreach ($messages as $message) {
sodium_crypto_generichash_update($state, $message);
}

$final = sodium_crypto_generichash_final($state, 32);
var_dump(sodium_bin2hex($final));

$allAtOnce = sodium_crypto_generichash(implode('', $messages));
var_dump(sodium_bin2hex($allAtOnce));
?>

O exemplo acima produzirá algo semelhante a:

string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"
string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"


Initialize a hash for streaming

  • « sodium_crypto_generichash_final
  • sodium_crypto_generichash_keygen »
  • PHP Manual
  • Funções da Sodium
  • Initialize a hash for streaming

sodium_crypto_generichash_init

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_init — Initialize a hash for streaming

Descrição

sodium_crypto_generichash_init(string $key = "", int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string

The initialization method for the streaming generichash API.

Parâmetros

key

The generichash key.

length

The expected output length of the hash function.

Valor Retornado

Returns a hash state, serialized as a raw binary string.

Exemplos

Exemplo #1 sodium_crypto_generichash_init() example

<?php
$messages = [random_bytes(32), random_bytes(32), random_bytes(16)];
$state = sodium_crypto_generichash_init('', 32);
foreach ($messages as $message) {
sodium_crypto_generichash_update($state, $message);
}
$final = sodium_crypto_generichash_final($state, 32);
var_dump(sodium_bin2hex($final));
$allAtOnce = sodium_crypto_generichash(implode('', $messages));
var_dump(sodium_bin2hex($allAtOnce));
?>

O exemplo acima produzirá algo semelhante a:

string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"
string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"


Generate a random generichash key

  • « sodium_crypto_generichash_init
  • sodium_crypto_generichash_update »
  • PHP Manual
  • Funções da Sodium
  • Generate a random generichash key

sodium_crypto_generichash_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_keygen — Generate a random generichash key

Descrição

sodium_crypto_generichash_keygen(): string

Generate a random key for use with the generichash API.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A random 256-bit key.


Add message to a hash

  • « sodium_crypto_generichash_keygen
  • sodium_crypto_generichash »
  • PHP Manual
  • Funções da Sodium
  • Add message to a hash

sodium_crypto_generichash_update

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_update — Add message to a hash

Descrição

sodium_crypto_generichash_update(string &$state, string $message): true

Appends a message to the internal hash state.

Parâmetros

state

The return value of sodium_crypto_generichash_init().

message

Data to append to the hashing state.

Valor Retornado

Sempre retorna true.

Exemplos

Exemplo #1 sodium_crypto_generichash_update() example

<?php
$messages = [random_bytes(32), random_bytes(32), random_bytes(16)];
$state = sodium_crypto_generichash_init();
foreach ($messages as $message) {
sodium_crypto_generichash_update($state, $message);
}
$final = sodium_crypto_generichash_final($state);
var_dump(sodium_bin2hex($final));

$allAtOnce = sodium_crypto_generichash(implode('', $messages));
var_dump(sodium_bin2hex($allAtOnce));
?>

O exemplo acima produzirá algo semelhante a:

string(64) "e16e28bbbbcc39d9f5b1cbc33c41f1d217808640103e57a41f24870f79831e04"
string(64) "e16e28bbbbcc39d9f5b1cbc33c41f1d217808640103e57a41f24870f79831e04"


Get a hash of the message

  • « sodium_crypto_generichash_update
  • sodium_crypto_kdf_derive_from_key »
  • PHP Manual
  • Funções da Sodium
  • Get a hash of the message

sodium_crypto_generichash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash — Get a hash of the message

Descrição

sodium_crypto_generichash(string $message, string $key = "", int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string

Hash a message with BLAKE2b.

Parâmetros

message

The message being hashed.

key

(Optional) cryptographic key. This serves the same function as a HMAC key, but it's utilized as a reserved section of the internal BLAKE2 state.

length

Output size.

Valor Retornado

The cryptographic hash as raw bytes. If a hex-encoded output is desired, the result can be passed to sodium_bin2hex().


Derive a subkey

  • « sodium_crypto_generichash
  • sodium_crypto_kdf_keygen »
  • PHP Manual
  • Funções da Sodium
  • Derive a subkey

sodium_crypto_kdf_derive_from_key

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kdf_derive_from_key — Derive a subkey

Descrição

sodium_crypto_kdf_derive_from_key(
int $subkey_length,
int $subkey_id,
string $context,
string $key
): string

Derive a subkey from a root key and additional context.

Similar to hash_hkdf().

Parâmetros

subkey_length

Length of the key to return (in bytes)

subkey_id

Return the Nth subkey from a given root key. Useful for seeking.

context

Application-specific context.

key

The root key from which the subkey is derived.

Valor Retornado

A string of pseudorandom (raw binary) bytes.


Generate a random root key for the KDF interface

  • « sodium_crypto_kdf_derive_from_key
  • sodium_crypto_kx_client_session_keys »
  • PHP Manual
  • Funções da Sodium
  • Generate a random root key for the KDF interface

sodium_crypto_kdf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kdf_keygen — Generate a random root key for the KDF interface

Descrição

sodium_crypto_kdf_keygen(): string

Generates a random key suitable for serving as the root key for sodium_crypto_kdf_derive_from_key().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A random 256-bit key.


Calculate the client-side session keys.

  • « sodium_crypto_kdf_keygen
  • sodium_crypto_kx_keypair »
  • PHP Manual
  • Funções da Sodium
  • Calculate the client-side session keys.

sodium_crypto_kx_client_session_keys

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_client_session_keys — Calculate the client-side session keys.

Descrição

sodium_crypto_kx_client_session_keys(string $client_key_pair, string $server_key): array

Calculate the client-side session keys, using the X25519 + BLAKE2b key-exchange method.

Parâmetros

client_key_pair

A crypto_kx keypair, such as one generated by sodium_crypto_kx_keypair().

server_key

A crypto_kx public key.

Valor Retornado

An array consisting of two strings. The first should be used for receiving data from the server. The second should be used for sending data to the server.


Creates a new sodium keypair

  • « sodium_crypto_kx_client_session_keys
  • sodium_crypto_kx_publickey »
  • PHP Manual
  • Funções da Sodium
  • Creates a new sodium keypair

sodium_crypto_kx_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_keypair — Creates a new sodium keypair

Descrição

sodium_crypto_kx_keypair(): string

Create a new sodium keypair consisting of the secret key (32 bytes) followed by the public key (32 bytes). The keys can be retrieved by calling sodium_crypto_kx_secretkey() and sodium_crypto_kx_publickey(), respectively.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the new keypair on success; throws an exception otherwise.

Exemplos

Exemplo #1 sodium_crypto_kx_keypair() usage

Create a new keypair and retrieve the secret and the public key from it.

<?php
$keypair = sodium_crypto_kx_keypair();
$secret = sodium_crypto_kx_secretkey($keypair);
$public = sodium_crypto_kx_publickey($keypair);
printf("secret: %s\npublic: %s", sodium_bin2hex($secret), sodium_bin2hex($public));
?>

O exemplo acima produzirá algo semelhante a:

secret: e7c5c918fdc40762e6000542c0118f4368ce8fd242b0e48c1e17202797a25daf
public: d1f59fda8652caf40ed1a01d2b6f3802b60846986372cd8fa337b7c12c428b18


Extract the public key from a crypto_kx keypair

  • « sodium_crypto_kx_keypair
  • sodium_crypto_kx_secretkey »
  • PHP Manual
  • Funções da Sodium
  • Extract the public key from a crypto_kx keypair

sodium_crypto_kx_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_publickey — Extract the public key from a crypto_kx keypair

Descrição

sodium_crypto_kx_publickey(string $key_pair): string

Extract the public key from a crypto_kx keypair.

Parâmetros

key_pair

X25519 keypair, such as one generated by sodium_crypto_kx_keypair().

Valor Retornado

X25519 public key.


Extract the secret key from a crypto_kx keypair.

  • « sodium_crypto_kx_publickey
  • sodium_crypto_kx_seed_keypair »
  • PHP Manual
  • Funções da Sodium
  • Extract the secret key from a crypto_kx keypair.

sodium_crypto_kx_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_secretkey — Extract the secret key from a crypto_kx keypair.

Descrição

sodium_crypto_kx_secretkey(string $key_pair): string

Extract the secret key from a crypto_kx keypair.

Parâmetros

key_pair

X25519 keypair, such as one generated by sodium_crypto_kx_keypair().

Valor Retornado

X25519 secret key.


Description

  • « sodium_crypto_kx_secretkey
  • sodium_crypto_kx_server_session_keys »
  • PHP Manual
  • Funções da Sodium
  • Description

sodium_crypto_kx_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_seed_keypair — Description

Descrição

sodium_crypto_kx_seed_keypair(string $seed): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

seed

Valor Retornado


Calculate the server-side session keys.

  • « sodium_crypto_kx_seed_keypair
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify »
  • PHP Manual
  • Funções da Sodium
  • Calculate the server-side session keys.

sodium_crypto_kx_server_session_keys

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_server_session_keys — Calculate the server-side session keys.

Descrição

sodium_crypto_kx_server_session_keys(string $server_key_pair, string $client_key): array

Calculate the server-side session keys, using the X25519 + BLAKE2b key-exchange method.

Parâmetros

server_key_pair

A crypto_kx keypair, such as one generated by sodium_crypto_kx_keypair().

client_key

A crypto_kx public key.

Valor Retornado

An array consisting of two strings. The first should be used for receiving data from the client. The second should be used for sending data to the client.


Verify that the password is a valid password verification string

  • « sodium_crypto_kx_server_session_keys
  • sodium_crypto_pwhash_scryptsalsa208sha256_str »
  • PHP Manual
  • Funções da Sodium
  • Verify that the password is a valid password verification string

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Verify that the password is a valid password verification string

Descrição

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify(string $hash, string $password): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

hash

password

Valor Retornado


Get an ASCII encoded hash

  • « sodium_crypto_pwhash_scryptsalsa208sha256_str_verify
  • sodium_crypto_pwhash_scryptsalsa208sha256 »
  • PHP Manual
  • Funções da Sodium
  • Get an ASCII encoded hash

sodium_crypto_pwhash_scryptsalsa208sha256_str

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256_str — Get an ASCII encoded hash

Descrição

sodium_crypto_pwhash_scryptsalsa208sha256_str(string $password, int $opslimit, int $memlimit): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

password

opslimit

memlimit

Valor Retornado


Derives a key from a password, using scrypt

  • « sodium_crypto_pwhash_scryptsalsa208sha256_str
  • sodium_crypto_pwhash_str_needs_rehash »
  • PHP Manual
  • Funções da Sodium
  • Derives a key from a password, using scrypt

sodium_crypto_pwhash_scryptsalsa208sha256

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256 — Derives a key from a password, using scrypt

Descrição

sodium_crypto_pwhash_scryptsalsa208sha256(
int $length,
string $password,
string $salt,
int $opslimit,
int $memlimit
): string

This is the scrypt counterpart to sodium_crypto_pwhash().

A common reason to use this particular function is to derive the seeds for cryptographic keys from a password and salt, and then use these seeds to generate the actual keys needed for some purpose (e.g. sodium_crypto_sign_detached()).

Parâmetros

length

The length of the password hash to generate, in bytes.

password

The password to generate a hash for.

salt

A salt to add to the password before hashing. The salt should be unpredictable, ideally generated from a good random number source such as random_bytes(), and have a length of at least SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES bytes.

opslimit

Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are some constants available to set the operations limit to appropriate values depending on intended use, in order of strength: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE and SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE.

memlimit

The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE and SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE. Typically these should be paired with the matching opslimit values.

Valor Retornado

A string of bytes of the desired length.


Determine whether or not to rehash a password

  • « sodium_crypto_pwhash_scryptsalsa208sha256
  • sodium_crypto_pwhash_str_verify »
  • PHP Manual
  • Funções da Sodium
  • Determine whether or not to rehash a password

sodium_crypto_pwhash_str_needs_rehash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str_needs_rehash — Determine whether or not to rehash a password

Descrição

sodium_crypto_pwhash_str_needs_rehash(string $password, int $opslimit, int $memlimit): bool

Determine whether or not to rehash a password, based on the current hash opslimit and memlimit.

Parâmetros

password

Password hash

opslimit

Configured opslimit; see sodium_crypto_pwhash_str()

memlimit

Configured memlimit; see sodium_crypto_pwhash_str()

Valor Retornado

Returns true if the provided memlimit/opslimit do not match what's stored in the hash. Returns false if they match.


Verifies that a password matches a hash

  • « sodium_crypto_pwhash_str_needs_rehash
  • sodium_crypto_pwhash_str »
  • PHP Manual
  • Funções da Sodium
  • Verifies that a password matches a hash

sodium_crypto_pwhash_str_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str_verify — Verifies that a password matches a hash

Descrição

sodium_crypto_pwhash_str_verify(string $hash, string $password): bool

Checks that a password hash created using sodium_crypto_pwhash_str() matches a given plain-text password. Note that the parameters are in the opposite order to the same parameters in the similar password_verify() function.

Parâmetros

hash

Um hash criado por password_hash().

password

A senha do usuário.

Valor Retornado

Returns true if the password and hash match, or false otherwise.

Notas

Nota:

Hashes are calculated using the Argon2ID algorithm, providing resistance to both GPU and side-channel attacks.

Veja Também

  • sodium_crypto_pwhash_str() - Get an ASCII-encoded hash
  • password_hash() - Cria um hash de senha
  • password_verify() - Verifica se uma senha corresponde a um hash


Get an ASCII-encoded hash

  • « sodium_crypto_pwhash_str_verify
  • sodium_crypto_pwhash »
  • PHP Manual
  • Funções da Sodium
  • Get an ASCII-encoded hash

sodium_crypto_pwhash_str

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str — Get an ASCII-encoded hash

Descrição

sodium_crypto_pwhash_str(string $password, int $opslimit, int $memlimit): string

Uses a CPU- and memory-hard hash algorithm along with a randomly-generated salt, and memory and CPU limits to generate an ASCII-encoded hash suitable for password storage.

Parâmetros

password

string; The password to generate a hash for.

opslimit

Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are constants available to set the operations limit to appropriate values depending on intended use, in order of strength: SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE and SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE.

memlimit

The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE, and SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE. Typically these should be paired with the matching opslimit values.

Valor Retornado

Returns the hashed password.

In order to produce the same password hash from the same password, the same values for opslimit and memlimit must be used. These are embedded within the generated hash, so everything that's needed to verify the hash is included. This allows the sodium_crypto_pwhash_str_verify() function to verify the hash without needing separate storage for the other parameters.

Exemplos

Exemplo #1 sodium_crypto_pwhash_str() example

<?php
$password = 'password';
echo sodium_crypto_pwhash_str(
$password,
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
);

O exemplo acima produzirá algo semelhante a:

$argon2id$v=19$m=65536,t=2,p=1$oWIfdaXwWwhVmovOBc2NAQ$EbsZ+JnZyyavkafS0hoc4HdaOB0ILWZESAZ7kVGa+Iw

Notas

Nota:

Hashes are calculated using the Argon2ID algorithm, providing resistance to both GPU and side-channel attacks. In contrast to the password_hash() function, there is no salt parameter (a salt is generated automatically), and the opslimit and memlimit parameters are not optional.

Veja Também

  • sodium_crypto_pwhash_str_verify() - Verifies that a password matches a hash
  • sodium_crypto_pwhash() - Derive a key from a password, using Argon2
  • password_hash() - Cria um hash de senha
  • password_verify() - Verifica se uma senha corresponde a um hash
  • » Libsodium Argon2 docs


Derive a key from a password, using Argon2

  • « sodium_crypto_pwhash_str
  • sodium_crypto_scalarmult_base »
  • PHP Manual
  • Funções da Sodium
  • Derive a key from a password, using Argon2

sodium_crypto_pwhash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash — Derive a key from a password, using Argon2

Descrição

sodium_crypto_pwhash(
int $length,
string $password,
string $salt,
int $opslimit,
int $memlimit,
int $algo = SODIUM_CRYPTO_PWHASH_ALG_DEFAULT
): string

This function provides low-level access to libsodium's crypto_pwhash key derivation function. Unless you have specific reason to use this function, you should use sodium_crypto_pwhash_str() or password_hash() functions instead.

A common reason to use this particular function is to derive the seeds for cryptographic keys from a password and salt, and then use these seeds to generate the actual keys needed for some purpose (e.g. sodium_crypto_sign_detached()).

Parâmetros

length

int; The length of the password hash to generate, in bytes.

password

string; The password to generate a hash for.

salt

A salt to add to the password before hashing. The salt should be unpredictable, ideally generated from a good random number source such as random_bytes(), and have a length of exactly SODIUM_CRYPTO_PWHASH_SALTBYTES bytes.

opslimit

Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are some constants available to set the operations limit to appropriate values depending on intended use, in order of strength: SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE and SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE.

memlimit

The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE, and SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE. Typically these should be paired with the matching opslimit values.

algo

int A number indicating the hash algorithm to use. By default SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (the currently recommended algorithm, which can change from one version of libsodium to another), or explicitly using SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13, representing the Argon2id algorithm version 1.3.

Valor Retornado

Returns the derived key. The return value is a binary string of the hash, not an ASCII-encoded representation, and does not contain additional information about the parameters used to create the hash, so you will need to keep that information if you are ever going to verify the password in future. Use sodium_crypto_pwhash_str() to avoid needing to do all that.

Exemplos

Exemplo #1 sodium_crypto_pwhash() example

<?php
//Need to keep the salt if we're ever going to be able to check this password
$salt = random_bytes(SODIUM_CRYPTO_PWHASH_SALTBYTES);
//Using bin2hex to keep output readable
echo bin2hex(
sodium_crypto_pwhash(
16, // == 128 bits
'password',
$salt,
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE,
SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13
)
);
?>

O exemplo acima produzirá algo semelhante a:

a18f346ba57992eb7e4ae6abf3fd30ee


Sinônimo de sodium_crypto_box_publickey_from_secretkey

  • « sodium_crypto_pwhash
  • sodium_crypto_scalarmult_ristretto255_base »
  • PHP Manual
  • Funções da Sodium
  • Sinônimo de sodium_crypto_box_publickey_from_secretkey

sodium_crypto_scalarmult_base

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_scalarmult_base — Sinônimo de sodium_crypto_box_publickey_from_secretkey()

Descrição

Esta função é um apelido para: sodium_crypto_box_publickey_from_secretkey().


Calculates the public key from a secret key

  • « sodium_crypto_scalarmult_base
  • sodium_crypto_scalarmult_ristretto255 »
  • PHP Manual
  • Funções da Sodium
  • Calculates the public key from a secret key

sodium_crypto_scalarmult_ristretto255_base

(PHP 8 >= 8.1.1)

sodium_crypto_scalarmult_ristretto255_base — Calculates the public key from a secret key

Descrição

sodium_crypto_scalarmult_ristretto255_base(string $n): string

Given a secret key, calculates the corresponding public key. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

n

A secret key.

Valor Retornado

Returns a 32-byte random string.

Veja Também

  • sodium_crypto_scalarmult_ristretto255() - Computes a shared secret


Computes a shared secret

  • « sodium_crypto_scalarmult_ristretto255_base
  • sodium_crypto_scalarmult »
  • PHP Manual
  • Funções da Sodium
  • Computes a shared secret

sodium_crypto_scalarmult_ristretto255

(PHP 8 >= 8.1.1)

sodium_crypto_scalarmult_ristretto255 — Computes a shared secret

Descrição

sodium_crypto_scalarmult_ristretto255(string $n, string $p): string

Calculates scalar n times point p. Available as of libsodium 1.0.18.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

n

A scalar, which is typically a secret key.

p

A point (x-coordinate), which is typically a public key.

Valor Retornado

Returns a 32-byte random string.

Veja Também

  • sodium_crypto_scalarmult_ristretto255_base() - Calculates the public key from a secret key


Compute a shared secret given a user's secret key and another user's public key

  • « sodium_crypto_scalarmult_ristretto255
  • sodium_crypto_secretbox_keygen »
  • PHP Manual
  • Funções da Sodium
  • Compute a shared secret given a user's secret key and another user's public key

sodium_crypto_scalarmult

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_scalarmult — Compute a shared secret given a user's secret key and another user's public key

Descrição

sodium_crypto_scalarmult(string $n, string $p): string

Elliptic Curve Diffie-Hellman. Calculates scalar n times point p, on an elliptic curve.

Parâmetros

n

scalar, which is typically a secret key

p

point (x-coordinate), which is typically a public key

Valor Retornado

A 32-byte random string.


Generate random key for sodium_crypto_secretbox

  • « sodium_crypto_scalarmult
  • sodium_crypto_secretbox_open »
  • PHP Manual
  • Funções da Sodium
  • Generate random key for sodium_crypto_secretbox

sodium_crypto_secretbox_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox_keygen — Generate random key for sodium_crypto_secretbox

Descrição

sodium_crypto_secretbox_keygen(): string

Generate a key for use with sodium_crypto_secretbox() and sodium_crypto_secretbox_open().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the generated string of cryptographically secure random bytes.

Exemplos

Exemplo #1 sodium_crypto_secretbox_keygen() example

<?php
$key = sodium_crypto_secretbox_keygen();
var_dump( sodium_bin2hex( $key ) );
?>

O exemplo acima produzirá algo semelhante a:

string(64) "88bd1dc51ec81984f3ddc5a8f59a3d95b647e2da3e879f1b9ceb0abd89e7286c"

Exemplo #2 Comparing sodium_crypto_secretbox_keygen() with random_bytes()

<?php
$key = sodium_crypto_secretbox_keygen();
$bytes = random_bytes( SODIUM_CRYPTO_SECRETBOX_KEYBYTES );
var_dump( mb_strlen( $key, '8bit' ) === mb_strlen( $bytes, '8bit' ) );
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • sodium_bin2hex() - Codifica para hexadecimal
  • random_bytes() - Get cryptographically secure random bytes


Authenticated shared-key decryption

  • « sodium_crypto_secretbox_keygen
  • sodium_crypto_secretbox »
  • PHP Manual
  • Funções da Sodium
  • Authenticated shared-key decryption

sodium_crypto_secretbox_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox_open — Authenticated shared-key decryption

Descrição

sodium_crypto_secretbox_open(string $ciphertext, string $nonce, string $key): string|false

Decrypt an encrypted message with a symmetric (shared) key.

Parâmetros

ciphertext

Must be in the format provided by sodium_crypto_secretbox() (ciphertext and tag, concatenated).

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valor Retornado

The decrypted string on success ou false em caso de falha.

Erros/Exceções

  • If nonce has a length of bytes different than SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (24 bytes), a SodiumException will be thrown.
  • If key has a length of bytes different than SODIUM_CRYPTO_SECRETBOX_KEYBYTES (32 bytes), a SodiumException will be thrown.

Exemplos

Exemplo #1 sodium_crypto_secretbox_open() example

<?php
// The $key must be kept confidential
$key = random_bytes(SODIUM_CRYPTO_SECRETBOX_KEYBYTES);
// Do not reuse $nonce with the same key
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$ciphertext = sodium_crypto_secretbox('message to be encrypted', $nonce, $key);

// The same nonce and key are required to decrypt the $ciphertext
$plaintext = sodium_crypto_secretbox_open($ciphertext, $nonce, $key);
if ($plaintext !== false) {
echo $plaintext . PHP_EOL;
}
?>

O exemplo acima produzirá:

message to be encrypted

Veja Também

  • sodium_crypto_secretbox() - Authenticated shared-key encryption
  • sodium_crypto_secretbox_keygen() - Generate random key for sodium_crypto_secretbox
  • random_bytes() - Get cryptographically secure random bytes


Authenticated shared-key encryption

  • « sodium_crypto_secretbox_open
  • sodium_crypto_secretstream_xchacha20poly1305_init_pull »
  • PHP Manual
  • Funções da Sodium
  • Authenticated shared-key encryption

sodium_crypto_secretbox

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox — Authenticated shared-key encryption

Descrição

sodium_crypto_secretbox(string $message, string $nonce, string $key): string

Encrypt a message with a symmetric (shared) key.

Parâmetros

message

The plaintext message to encrypt.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valor Retornado

Returns the encrypted string.

Erros/Exceções

  • If nonce has a length of bytes different than SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (24 bytes), a SodiumException will be thrown.
  • If key has a length of bytes different than SODIUM_CRYPTO_SECRETBOX_KEYBYTES (32 bytes), a SodiumException will be thrown.
  • Throws a SodiumException on failure.

Exemplos

Exemplo #1 sodium_crypto_secretbox() example

<?php
// The $key must be kept confidential
$key = sodium_crypto_secretbox_keygen();
// Do not reuse $nonce with the same key
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$plaintext = "message to be encrypted";
$ciphertext = sodium_crypto_secretbox($plaintext, $nonce, $key);

var_dump(bin2hex($ciphertext));
// The same nonce and key are required to decrypt the $ciphertext
var_dump(sodium_crypto_secretbox_open($ciphertext, $nonce, $key));
?>

O exemplo acima produzirá algo semelhante a:

string(78) "3a1fa3e9f7b72ef8be51d40abf8e296c6899c185d07b18b4c93e7f26aa776d24c50852cd6b1076"
string(23) "message to be encrypted"

Veja Também

  • sodium_crypto_secretbox_open() - Authenticated shared-key decryption
  • sodium_crypto_secretbox_keygen() - Generate random key for sodium_crypto_secretbox
  • random_bytes() - Get cryptographically secure random bytes


Initialize a secretstream context for decryption

  • « sodium_crypto_secretbox
  • sodium_crypto_secretstream_xchacha20poly1305_init_push »
  • PHP Manual
  • Funções da Sodium
  • Initialize a secretstream context for decryption

sodium_crypto_secretstream_xchacha20poly1305_init_pull

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_init_pull — Initialize a secretstream context for decryption

Descrição

sodium_crypto_secretstream_xchacha20poly1305_init_pull(string $header, string $key): string

Initialize a secretstream context for decryption.

Parâmetros

header

The header of the secretstream. This should be one of the values produced by sodium_crypto_secretstream_xchacha20poly1305_init_push().

key

Encryption key (256-bit).

Valor Retornado

Secretstream state.

Exemplos

Exemplo #1 sodium_crypto_secretstream_xchacha20poly1305_init_pull() example

<?php
function decrypt_file(string $inputFilePath, string $outputFilePath, string $key): void
{
$inputFile = fopen($inputFilePath, 'rb');
$outputFile = fopen($outputFilePath, 'wb');
$header = fread($inputFile, 24);

$state = sodium_crypto_secretstream_xchacha20poly1305_init_pull($header, $key);
$inputFileSize = fstat($inputFile)['size'];

// Decrypt the file and write its contents to the output file:
for ($i = 24; $i < $inputFileSize; $i += 8192) {
$ctxt_chunk = fread($inputFile, 8192);

// We're not using $tag, but in real protocols you can use this on encrypt to e.g.
// trigger a re-key or indicate the end of file. Then, on decrypt, you can assert
// this behavior.
[$ptxt_chunk, $tag] = sodium_crypto_secretstream_xchacha20poly1305_pull($state, $ctxt_chunk);
fwrite($outputFile, $ptxt_chunk);
}

sodium_memzero($state);
fclose($inputFile);
fclose($outputFile);
}

// sodium_crypto_secretstream_xchacha20poly1305_keygen()
$key = sodium_base642bin('MS0lzb7HC+thY6jY01pkTE/cwsQxnRq0/2L1eL4Hxn8=', SODIUM_BASE64_VARIANT_ORIGINAL);

$example = sodium_hex2bin('971e33b255f0990ef3931caf761c59136efa77b434832f28ec719e3ff73f5aec38b3bba1574ab5b70a8844d8da36a668e802cfea2c');
file_put_contents('hello.enc', $example);
decrypt_file('hello.enc', 'hello.txt.decrypted', $key);
var_dump(file_get_contents('hello.txt.decrypted'));
?>

O exemplo acima produzirá algo semelhante a:

string(12) "Hello world!"


Initialize a secretstream context for encryption

  • « sodium_crypto_secretstream_xchacha20poly1305_init_pull
  • sodium_crypto_secretstream_xchacha20poly1305_keygen »
  • PHP Manual
  • Funções da Sodium
  • Initialize a secretstream context for encryption

sodium_crypto_secretstream_xchacha20poly1305_init_push

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_init_push — Initialize a secretstream context for encryption

Descrição

sodium_crypto_secretstream_xchacha20poly1305_init_push(string $key): array

Initialize a secretstream context for encryption.

Parâmetros

key

Cryptography key. See sodium_crypto_secretstream_xchacha20poly1305_keygen().

Valor Retornado

An array with two string values:

  • The secretstream state, needed for further pushes
  • The secretstream header, which needs to be provided to the recipient so they can pull data

Exemplos

Exemplo #1 sodium_crypto_secretstream_xchacha20poly1305_init_push() example

<?php
function encrypt_file(string $inputFilePath, string $outputFilePath, string $key): void
{
[$state, $header] = sodium_crypto_secretstream_xchacha20poly1305_init_push($key);

$inputFile = fopen($inputFilePath, 'rb');
$outputFile = fopen($outputFilePath, 'wb');
// Write the header:
fwrite($outputFile, $header);
$inputFileSize = fstat($inputFile)['size'];

// Encrypt the file and write its contents to the output file:
for ($i = 0; $i < $inputFileSize; $i += 8175) {
$ptxt_chunk = fread($inputFile, 8175);
$ctxt_chunk = sodium_crypto_secretstream_xchacha20poly1305_push($state, $ptxt_chunk);
fwrite($outputFile, $ctxt_chunk);
}

sodium_memzero($state);
fclose($inputFile);
fclose($outputFile);
}

// sodium_crypto_secretstream_xchacha20poly1305_keygen()
$key = sodium_base642bin('MS0lzb7HC+thY6jY01pkTE/cwsQxnRq0/2L1eL4Hxn8=', SODIUM_BASE64_VARIANT_ORIGINAL);

file_put_contents('hello.txt', 'Hello world!');
encrypt_file('hello.txt', 'hello.txt.encrypted', $key);
var_dump(sodium_bin2hex(file_get_contents('hello.txt.encrypted')));
?>

O exemplo acima produzirá algo semelhante a:

string(106) "971e33b255f0990ef3931caf761c59136efa77b434832f28ec719e3ff73f5aec38b3bba1574ab5b70a8844d8da36a668e802cfea2c"


Generate a random secretstream key.

  • « sodium_crypto_secretstream_xchacha20poly1305_init_push
  • sodium_crypto_secretstream_xchacha20poly1305_pull »
  • PHP Manual
  • Funções da Sodium
  • Generate a random secretstream key.

sodium_crypto_secretstream_xchacha20poly1305_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_keygen — Generate a random secretstream key.

Descrição

sodium_crypto_secretstream_xchacha20poly1305_keygen(): string

Generate a random secretstream key.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string of random bytes.


Decrypt a chunk of data from an encrypted stream

  • « sodium_crypto_secretstream_xchacha20poly1305_keygen
  • sodium_crypto_secretstream_xchacha20poly1305_push »
  • PHP Manual
  • Funções da Sodium
  • Decrypt a chunk of data from an encrypted stream

sodium_crypto_secretstream_xchacha20poly1305_pull

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_pull — Decrypt a chunk of data from an encrypted stream

Descrição

sodium_crypto_secretstream_xchacha20poly1305_pull(string &$state, string $ciphertext, string $additional_data = ""): array|false

Decrypt a chunk of data from an encrypted stream.

Parâmetros

state

See sodium_crypto_secretstream_xchacha20poly1305_init_pull() and sodium_crypto_secretstream_xchacha20poly1305_init_push()

ciphertext

The ciphertext chunk to decrypt.

additional_data

Optional additional data to include in the authentication tag.

Valor Retornado

An array with two values:

  • string; The decrypted chunk

  • int; An optional tag (if provided during push). Possible values:

    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE: the most common tag, that doesn't add any information about the nature of the message.
    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL: indicates that the message marks the end of the stream, and erases the secret key used to encrypt the previous sequence.
    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH: indicates that the message marks the end of a set of messages, but not the end of the stream. For example, a huge JSON string sent as multiple chunks can use this tag to indicate to the application that the string is complete and that it can be decoded. But the stream itself is not closed, and more data may follow.
    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY: "forget" the key used to encrypt this message and the previous ones, and derive a new secret key.


Encrypt a chunk of data so that it can safely be decrypted in a streaming API

  • « sodium_crypto_secretstream_xchacha20poly1305_pull
  • sodium_crypto_secretstream_xchacha20poly1305_rekey »
  • PHP Manual
  • Funções da Sodium
  • Encrypt a chunk of data so that it can safely be decrypted in a streaming API

sodium_crypto_secretstream_xchacha20poly1305_push

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_push — Encrypt a chunk of data so that it can safely be decrypted in a streaming API

Descrição

sodium_crypto_secretstream_xchacha20poly1305_push(
string &$state,
string $message,
string $additional_data = "",
int $tag = SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE
): string

Encrypt a chunk of data so that it can safely be decrypted in a streaming API.

Parâmetros

state

See sodium_crypto_secretstream_xchacha20poly1305_init_pull() and sodium_crypto_secretstream_xchacha20poly1305_init_push()

message

additional_data

tag

Optional. Can be used to assert decryption behavior (i.e. re-keying or indicating the final chunk in a stream).

  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE: the most common tag, that doesn't add any information about the nature of the message.
  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL: indicates that the message marks the end of the stream, and erases the secret key used to encrypt the previous sequence.
  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH: indicates that the message marks the end of a set of messages, but not the end of the stream. For example, a huge JSON string sent as multiple chunks can use this tag to indicate to the application that the string is complete and that it can be decoded. But the stream itself is not closed, and more data may follow.
  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY: "forget" the key used to encrypt this message and the previous ones, and derive a new secret key.

Valor Retornado

Returns the encrypted ciphertext.


Explicitly rotate the key in the secretstream state

  • « sodium_crypto_secretstream_xchacha20poly1305_push
  • sodium_crypto_shorthash_keygen »
  • PHP Manual
  • Funções da Sodium
  • Explicitly rotate the key in the secretstream state

sodium_crypto_secretstream_xchacha20poly1305_rekey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_rekey — Explicitly rotate the key in the secretstream state

Descrição

sodium_crypto_secretstream_xchacha20poly1305_rekey(string &$state): void

Explicitly rotate the key in the secretstream state. Overwrites the value passed in.

Parâmetros

state

Secretstream state.

Valor Retornado

Nenhum valor é retornado.


Get random bytes for key

  • « sodium_crypto_secretstream_xchacha20poly1305_rekey
  • sodium_crypto_shorthash »
  • PHP Manual
  • Funções da Sodium
  • Get random bytes for key

sodium_crypto_shorthash_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_shorthash_keygen — Get random bytes for key

Descrição

sodium_crypto_shorthash_keygen(): string

Generate a key for use with sodium_crypto_shorthash().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Compute a short hash of a message and key

  • « sodium_crypto_shorthash_keygen
  • sodium_crypto_sign_detached »
  • PHP Manual
  • Funções da Sodium
  • Compute a short hash of a message and key

sodium_crypto_shorthash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_shorthash — Compute a short hash of a message and key

Descrição

sodium_crypto_shorthash(string $message, string $key): string

sodium_crypto_shorthash() wraps a hash function called SipHash-2-4, which is ideal for implementing hash tables that are not susceptible to hash collision denial of service attacks (Hash-DoS).

SipHash-2-4 isn't a general purpose cryptographic hash function.

Parâmetros

message

The message to hash.

key

The hash key.

Valor Retornado


Sign the message

  • « sodium_crypto_shorthash
  • sodium_crypto_sign_ed25519_pk_to_curve25519 »
  • PHP Manual
  • Funções da Sodium
  • Sign the message

sodium_crypto_sign_detached

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_detached — Sign the message

Descrição

sodium_crypto_sign_detached(string $message, string $secret_key): string

Sign a message with a secret key, that can be verified by the corresponding public key. This function returns a detached signature.

Parâmetros

message

Message to sign.

secret_key

Secret key. See sodium_crypto_sign_secretkey()

Valor Retornado

Cryptographic signature.


Convert an Ed25519 public key to a Curve25519 public key

  • « sodium_crypto_sign_detached
  • sodium_crypto_sign_ed25519_sk_to_curve25519 »
  • PHP Manual
  • Funções da Sodium
  • Convert an Ed25519 public key to a Curve25519 public key

sodium_crypto_sign_ed25519_pk_to_curve25519

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_ed25519_pk_to_curve25519 — Convert an Ed25519 public key to a Curve25519 public key

Descrição

sodium_crypto_sign_ed25519_pk_to_curve25519(string $public_key): string

Given an Ed25519 public key, calculate the birationally equivalent X25519 public key.

Parâmetros

public_key

Public key suitable for the crypto_sign functions.

Valor Retornado

Public key suitable for the crypto_box functions.


Convert an Ed25519 secret key to a Curve25519 secret key

  • « sodium_crypto_sign_ed25519_pk_to_curve25519
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey »
  • PHP Manual
  • Funções da Sodium
  • Convert an Ed25519 secret key to a Curve25519 secret key

sodium_crypto_sign_ed25519_sk_to_curve25519

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_ed25519_sk_to_curve25519 — Convert an Ed25519 secret key to a Curve25519 secret key

Descrição

sodium_crypto_sign_ed25519_sk_to_curve25519(string $secret_key): string

Given an Ed25519 secret key, calculate the birationally equivalent X25519 secret key.

Parâmetros

secret_key

Secret key suitable for the crypto_sign functions.

Valor Retornado

Secret key suitable for the crypto_box functions.


Join a secret key and public key together

  • « sodium_crypto_sign_ed25519_sk_to_curve25519
  • sodium_crypto_sign_keypair »
  • PHP Manual
  • Funções da Sodium
  • Join a secret key and public key together

sodium_crypto_sign_keypair_from_secretkey_and_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_keypair_from_secretkey_and_publickey — Join a secret key and public key together

Descrição

sodium_crypto_sign_keypair_from_secretkey_and_publickey(string $secret_key, string $public_key): string

Join a secret key and public key together.

Parâmetros

secret_key

Ed25519 secret key

public_key

Ed25519 public key

Valor Retornado

Keypair


Randomly generate a secret key and a corresponding public key

  • « sodium_crypto_sign_keypair_from_secretkey_and_publickey
  • sodium_crypto_sign_open »
  • PHP Manual
  • Funções da Sodium
  • Randomly generate a secret key and a corresponding public key

sodium_crypto_sign_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_keypair — Randomly generate a secret key and a corresponding public key

Descrição

sodium_crypto_sign_keypair(): string

Generate a random Ed25519 keypair as one string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Ed25519 keypair.


Check that the signed message has a valid signature

  • « sodium_crypto_sign_keypair
  • sodium_crypto_sign_publickey_from_secretkey »
  • PHP Manual
  • Funções da Sodium
  • Check that the signed message has a valid signature

sodium_crypto_sign_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_open — Check that the signed message has a valid signature

Descrição

sodium_crypto_sign_open(string $signed_message, string $public_key): string|false

Verify the signature attached to a message and return the message

Parâmetros

signed_message

A message signed with sodium_crypto_sign()

public_key

An Ed25519 public key

Valor Retornado

Returns the original signed message on success, ou false em caso de falha.


Extract the Ed25519 public key from the secret key

  • « sodium_crypto_sign_open
  • sodium_crypto_sign_publickey »
  • PHP Manual
  • Funções da Sodium
  • Extract the Ed25519 public key from the secret key

sodium_crypto_sign_publickey_from_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_publickey_from_secretkey — Extract the Ed25519 public key from the secret key

Descrição

sodium_crypto_sign_publickey_from_secretkey(string $secret_key): string

Extract the Ed25519 public key from the secret key

Parâmetros

secret_key

Ed25519 secret key

Valor Retornado

Ed25519 public key


Extract the Ed25519 public key from a keypair

  • « sodium_crypto_sign_publickey_from_secretkey
  • sodium_crypto_sign_secretkey »
  • PHP Manual
  • Funções da Sodium
  • Extract the Ed25519 public key from a keypair

sodium_crypto_sign_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_publickey — Extract the Ed25519 public key from a keypair

Descrição

sodium_crypto_sign_publickey(string $key_pair): string

Extract the Ed25519 public key from a keypair

Parâmetros

key_pair

Ed25519 keypair (see: sodium_crypto_sign_keypair())

Valor Retornado

Ed25519 public key


Extract the Ed25519 secret key from a keypair

  • « sodium_crypto_sign_publickey
  • sodium_crypto_sign_seed_keypair »
  • PHP Manual
  • Funções da Sodium
  • Extract the Ed25519 secret key from a keypair

sodium_crypto_sign_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_secretkey — Extract the Ed25519 secret key from a keypair

Descrição

sodium_crypto_sign_secretkey(string $key_pair): string

Extract the Ed25519 secret key from a keypair

Parâmetros

key_pair

Ed25519 keypair (see: sodium_crypto_sign_keypair())

Valor Retornado

Ed25519 secret key


Deterministically derive the key pair from a single key

  • « sodium_crypto_sign_secretkey
  • sodium_crypto_sign_verify_detached »
  • PHP Manual
  • Funções da Sodium
  • Deterministically derive the key pair from a single key

sodium_crypto_sign_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_seed_keypair — Deterministically derive the key pair from a single key

Descrição

sodium_crypto_sign_seed_keypair(string $seed): string

Clamps the seed to form a secret key, derives the public key, and returns the two as a keypair.

The *_seed_keypair functions are ideal for generating a keypair from a password and salt. Use the result as a seed to generate the desired keys.

Parâmetros

seed

Some cryptographic input. Must be 32 bytes.

Valor Retornado

Keypair (secret key and public key)


Verify signature for the message

  • « sodium_crypto_sign_seed_keypair
  • sodium_crypto_sign »
  • PHP Manual
  • Funções da Sodium
  • Verify signature for the message

sodium_crypto_sign_verify_detached

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_verify_detached — Verify signature for the message

Descrição

sodium_crypto_sign_verify_detached(string $signature, string $message, string $public_key): bool

Verify signature for the message

Parâmetros

signature

The cryptographic signature obtained from sodium_crypto_sign_detached()

message

The message being verified

public_key

Ed25519 public key

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sign a message

  • « sodium_crypto_sign_verify_detached
  • sodium_crypto_stream_keygen »
  • PHP Manual
  • Funções da Sodium
  • Sign a message

sodium_crypto_sign

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign — Sign a message

Descrição

sodium_crypto_sign(string $message, string $secret_key): string

Sign a message with a secret key, that can be verified by the corresponding public key. This function attaches the signature to the message. See sodium_crypto_sign_detached() for detached signatures.

Parâmetros

message

Message to sign.

secret_key

Secret key. See sodium_crypto_sign_secretkey()

Valor Retornado

Signed message (not encrypted).


Generate a random sodium_crypto_stream key.

  • « sodium_crypto_sign
  • sodium_crypto_stream_xchacha20_keygen »
  • PHP Manual
  • Funções da Sodium
  • Generate a random sodium_crypto_stream key.

sodium_crypto_stream_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream_keygen — Generate a random sodium_crypto_stream key.

Descrição

sodium_crypto_stream_keygen(): string

Generate a key for use with sodium_crypto_stream() and sodium_crypto_stream_xor().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Encryption key (256-bit).


Returns a secure random key

  • « sodium_crypto_stream_keygen
  • sodium_crypto_stream_xchacha20_xor_ic »
  • PHP Manual
  • Funções da Sodium
  • Returns a secure random key

sodium_crypto_stream_xchacha20_keygen

(PHP 8 >= 8.1.0)

sodium_crypto_stream_xchacha20_keygen — Returns a secure random key

Descrição

sodium_crypto_stream_xchacha20_keygen(): string

Returns a secure random key for use with sodium_crypto_stream_xchacha20().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a 32-byte secure random key for use with sodium_crypto_stream_xchacha20().


Encrypts a message using a nonce and a secret key (no authentication)

  • « sodium_crypto_stream_xchacha20_keygen
  • sodium_crypto_stream_xchacha20_xor »
  • PHP Manual
  • Funções da Sodium
  • Encrypts a message using a nonce and a secret key (no authentication)

sodium_crypto_stream_xchacha20_xor_ic

(PHP 8 >= 8.2.0)

sodium_crypto_stream_xchacha20_xor_ic — Encrypts a message using a nonce and a secret key (no authentication)

Descrição

sodium_crypto_stream_xchacha20_xor_ic(
string $message,
string $nonce,
int $counter,
string $key
): string

The function is similar to sodium_crypto_stream_xchacha20_xor() but adds the ability to set the initial value of the block counter to a non-zero value. This permits direct access to any block without having to compute the previous ones.

Cuidado

This encryption is unauthenticated, and does not prevent chosen-ciphertext attacks. Make sure to combine the ciphertext with a Message Authentication Code, for example with sodium_crypto_aead_xchacha20poly1305_ietf_encrypt() function, or sodium_crypto_auth().

Parâmetros

message

The message to encrypt.

nonce

24-byte nonce.

counter

The initial value of the block counter.

key

Key, possibly generated from sodium_crypto_stream_xchacha20_keygen().

Valor Retornado

Encrypted message, ou false em caso de falha.

Exemplos

Exemplo #1 sodium_crypto_stream_xchacha20_xor_ic() example

<?php
$n2 = random_bytes(SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES);
$left = str_repeat("\x01", 64);
$right = str_repeat("\xfe", 64);

// All at once:
$stream7_unified = sodium_crypto_stream_xchacha20_xor($left . $right, $n2, $key);

// Piecewise, with initial counter:
$stream7_left = sodium_crypto_stream_xchacha20_xor_ic($left, $n2, 0, $key);
$stream7_right = sodium_crypto_stream_xchacha20_xor_ic($right, $n2, 1, $key);
$stream7_concat = $stream7_left . $stream7_right;

var_dump(strlen($stream7_concat));
var_dump($stream7_unified === $stream7_concat);
?>

O exemplo acima produzirá algo semelhante a:

int(128)
bool(true)

Veja Também

  • sodium_crypto_stream_xchacha20_xor() - Encrypts a message using a nonce and a secret key (no authentication)


Encrypts a message using a nonce and a secret key (no authentication)

  • « sodium_crypto_stream_xchacha20_xor_ic
  • sodium_crypto_stream_xchacha20 »
  • PHP Manual
  • Funções da Sodium
  • Encrypts a message using a nonce and a secret key (no authentication)

sodium_crypto_stream_xchacha20_xor

(PHP 8 >= 8.1.0)

sodium_crypto_stream_xchacha20_xor — Encrypts a message using a nonce and a secret key (no authentication)

Descrição

sodium_crypto_stream_xchacha20_xor(string $message, string $nonce, string $key): string

Encrypts a message using a nonce and a secret key (no authentication).

Cuidado

This encryption is unauthenticated, and does not prevent chosen-ciphertext attacks. Make sure to combine the ciphertext with a Message Authentication Code, for example with sodium_crypto_aead_xchacha20poly1305_ietf_encrypt() function, or sodium_crypto_auth().

Parâmetros

message

The message to encrypt.

nonce

24-byte nonce.

key

Key, possibly generated from sodium_crypto_stream_xchacha20_keygen().

Valor Retornado

Encrypted message.

Veja Também

  • sodium_crypto_stream_xchacha20_xor_ic() - Encrypts a message using a nonce and a secret key (no authentication)


Expands the key and nonce into a keystream of pseudorandom bytes

  • « sodium_crypto_stream_xchacha20_xor
  • sodium_crypto_stream_xor »
  • PHP Manual
  • Funções da Sodium
  • Expands the key and nonce into a keystream of pseudorandom bytes

sodium_crypto_stream_xchacha20

(PHP 8 >= 8.1.0)

sodium_crypto_stream_xchacha20 — Expands the key and nonce into a keystream of pseudorandom bytes

Descrição

sodium_crypto_stream_xchacha20(int $length, string $nonce, string $key): string

Expands the key and nonce into a keystream of pseudorandom bytes.

Parâmetros

length

Number of bytes desired.

nonce

24-byte nonce.

key

Key, possibly generated from sodium_crypto_stream_xchacha20_keygen().

Valor Retornado

Returns a pseudorandom stream that can be used with sodium_crypto_stream_xchacha20_xor().


Encrypt a message without authentication

  • « sodium_crypto_stream_xchacha20
  • sodium_crypto_stream »
  • PHP Manual
  • Funções da Sodium
  • Encrypt a message without authentication

sodium_crypto_stream_xor

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream_xor — Encrypt a message without authentication

Descrição

sodium_crypto_stream_xor(string $message, string $nonce, string $key): string

This function encrypts a message with XSalsa20, but does not provide any ciphertext guarantees about the plaintext.

Parâmetros

message

The message to encrypt

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valor Retornado

Encrypted message.


Generate a deterministic sequence of bytes from a seed

  • « sodium_crypto_stream_xor
  • sodium_hex2bin »
  • PHP Manual
  • Funções da Sodium
  • Generate a deterministic sequence of bytes from a seed

sodium_crypto_stream

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream — Generate a deterministic sequence of bytes from a seed

Descrição

sodium_crypto_stream(int $length, string $nonce, string $key): string

Generate a deterministic sequence of bytes from a seed, using the XSalsa20 stream cipher.

Parâmetros

length

The number of bytes to return.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valor Retornado

String of pseudorandom bytes.


Decodifica uma string binária codificada em hexadecimal

  • « sodium_crypto_stream
  • sodium_increment »
  • PHP Manual
  • Funções da Sodium
  • Decodifica uma string binária codificada em hexadecimal

sodium_hex2bin

(PHP 7 >= 7.2.0, PHP 8)

sodium_hex2bin — Decodifica uma string binária codificada em hexadecimal

Descrição

sodium_hex2bin(string $string, string $ignore = ""): string

Decodifica uma string binária codificada em hexadecimal.

Assim como sodium_bin2hex(), sodium_hex2bin() é resistente a ataques de canal lateral, enquanto hex2bin() não.

Parâmetros

string

Representação hexadecimal dos dados.

ignore

Argumento string opcional para caracteres a serem ignorados.

Valor Retornado

Retorna a representação binária dos dados da string especificada.


Incrementa um número grande

  • « sodium_hex2bin
  • sodium_memcmp »
  • PHP Manual
  • Funções da Sodium
  • Incrementa um número grande

sodium_increment

(PHP 7 >= 7.2.0, PHP 8)

sodium_increment — Incrementa um número grande

Descrição

sodium_increment(string &$string): void

Trata a string como um inteiro little-endian sem sinal, então aumente-o em 1. Tempo constante.

Parâmetros

string

String para incrementar.

Valor Retornado

Nenhum valor é retornado.


Testa para igualdade em tempo constante

  • « sodium_increment
  • sodium_memzero »
  • PHP Manual
  • Funções da Sodium
  • Testa para igualdade em tempo constante

sodium_memcmp

(PHP 7 >= 7.2.0, PHP 8)

sodium_memcmp — Testa para igualdade em tempo constante

Descrição

sodium_memcmp(string $string1, string $string2): int

Compara duas strings em tempo constante.

Na prática, é quase sempre desejado usar hash_equals(), pois fornece a mesma lógica, porém retorna um bool em vez de um int. No entanto, se o valor de retorno de uma comparação estiver sendo usado em um cálculo que é sensível ao tempo e vazamentos de tempo com conversões de bool para int forem uma preocupação, sodium_memcmp() é um substituto ideal.

Parâmetros

string1

String para comparar

string2

Outra string para comparar

Valor Retornado

Retorna 0 se ambas as strings forem iguais, -1 caso contrário.


Sobrescreva uma string com caracteres NUL

  • « sodium_memcmp
  • sodium_pad »
  • PHP Manual
  • Funções da Sodium
  • Sobrescreva uma string com caracteres NUL

sodium_memzero

(PHP 7 >= 7.2.0, PHP 8)

sodium_memzero — Sobrescreva uma string com caracteres NUL

Descrição

sodium_memzero(string &$string): void

sodium_memzero() zera a string passada por referência.

Parâmetros

string

String.

Valor Retornado

Nenhum valor é retornado.


Adiciona dados de preenchimento

  • « sodium_memzero
  • sodium_unpad »
  • PHP Manual
  • Funções da Sodium
  • Adiciona dados de preenchimento

sodium_pad

(PHP 7 >= 7.2.0, PHP 8)

sodium_pad — Adiciona dados de preenchimento

Descrição

sodium_pad(string $string, int $block_size): string

Preencha uma string à direita até o comprimento desejado. Tempo seguro.

Parâmetros

string

String não preenchida.

block_size

A string será preenchida até que seja um múltiplo par do tamanho do bloco.

Valor Retornado

String preenchida.


Remova dados de preenchimento

  • « sodium_pad
  • SodiumException »
  • PHP Manual
  • Funções da Sodium
  • Remova dados de preenchimento

sodium_unpad

(PHP 7 >= 7.2.0, PHP 8)

sodium_unpad — Remova dados de preenchimento

Descrição

sodium_unpad(string $string, int $block_size): string

Remove o preenchimento de uma string preenchida. Tempo seguro.

Parâmetros

string

String preenchida.

block_size

O tamanho do bloco para preenchimento.

Valor Retornado

String não preenchida.


A classe SodiumException

(PHP 7 >= 7.2.0, PHP 8)

Introdução

Exceções lançadas pelas funções da sodium.

Resumo da classe

class SodiumException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Extensões de Banco de Dados

  • Camadas de Abstração
    • DBA — Database (dbm-style) Abstraction Layer
    • ODBC — ODBC (Unified)
    • PDO — PHP Data Objects
  • Extensões de Banco de Dados Específicas de Terceiros
    • CUBRID
    • dBase
    • Firebird/InterBase
    • IBM DB2 — IBM DB2, Cloudscape and Apache Derby
    • MongoDB — MongoDB driver
    • MySQL — Drivers e Plugins MySQL
    • OCI8 — Oracle OCI8
    • PostgreSQL
    • SQLite3
    • SQLSRV — Driver Microsoft SQL Server para PHP


Camadas de Abstração

  • DBA — Database (dbm-style) Abstraction Layer
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • DBA Funções
  • ODBC — ODBC (Unified)
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • ODBC Funções
  • PDO — PHP Data Objects
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Conexões e gerenciamento de conexões
    • Transações e confirmação automática (auto-commit)
    • Declarações preparadas e procedimentos armazenados
    • Erros e manipulação de erros
    • Objetos Grandes (LOBs)
    • PDO — A classe PDO
    • PDOStatement — A classe PDOStatement
    • PDORow — A classe PDORow
    • PDOException — A classe PDOException
    • Drivers do PDO


Database (dbm-style) Abstraction Layer

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Basic usage
  • DBA Funções
    • dba_close — Close a DBA database
    • dba_delete — Delete DBA entry specified by key
    • dba_exists — Check whether key exists
    • dba_fetch — Fetch data specified by key
    • dba_firstkey — Fetch first key
    • dba_handlers — List all the handlers available
    • dba_insert — Insert entry
    • dba_key_split — Splits a key in string representation into array representation
    • dba_list — List all open database files
    • dba_nextkey — Fetch next key
    • dba_open — Open database
    • dba_optimize — Optimize database
    • dba_popen — Open database persistently
    • dba_replace — Replace or insert entry
    • dba_sync — Synchronize database


Introdução

These functions build the foundation for accessing Berkeley DB style databases.

This is a general abstraction layer for several file-based databases. As such, functionality is limited to a common subset of features supported by modern databases such as » Oracle Berkeley DB.


Dependências

The behaviour of various aspects depends on the implementation of the underlying database. Functions such as dba_optimize() and dba_sync() will do what they promise for one database and will do nothing for others. You have to download and install supported dba-Handlers.

List of DBA handlers
Handler | Notes
dbm | Dbm is the oldest (original) type of Berkeley DB style databases. You should avoid it, if possible. We do not support the compatibility functions built into DB2 and gdbm, because they are only compatible on the source code level, but cannot handle the original dbm format.
ndbm | Ndbm is a newer type and more flexible than dbm. It still has most of the arbitrary limits of dbm (therefore it is deprecated).
gdbm | Gdbm is the » GNU database manager.
db2 | DB2 is for » Oracle Berkeley DB 2. It is described as "a programmatic toolkit that provides high-performance built-in database support for both standalone and client/server applications."
db3 | DB3 is for » Oracle Berkeley DB 3.
db4 | DB4 is for » Oracle Berkeley DB 4 or 5. This option can be used with BDB 5 as of PHP 5.3.3.
cdb | Cdb is "a fast, reliable, lightweight package for creating and reading constant databases." It is from the author of qmail and can be found at » http://cr.yp.to/cdb.html. Since it is constant, we support only reading operations. We support writing (not updating) through the internal cdb library.
cdb_make | We support creation (not updating) of cdb files when the bundled cdb library is used.
flatfile | This is available for compatibility with the deprecated dbm extension only and should be avoided. However you may use this where files were created in this format. That happens when configure could not find any external library.
inifile | This is available to be able to modify php.ini files from within PHP scripts. When working with ini files you can pass arrays of the form array(0=>group,1=>value_name) or strings of the form "[group]value_name" where group is optional. As the functions dba_firstkey() and dba_nextkey() return string representations of the key there is the function dba_key_split() which allows to convert the string keys into array keys without loosing false.
qdbm | The qdbm library can be downloaded from » http://fallabs.com/qdbm/index.html.
tcadb | The Tokyo Cabinet library can be downloaded from » http://fallabs.com/tokyocabinet/.
lmdb | This is available since PHP 7.2.0. The Lightning Memory-Mapped Database library can be downloaded from » https://symas.com/lmdb/.

When invoking the dba_open() or dba_popen() functions, one of the handler names must be supplied as an argument. The actually available list of handlers is displayed by invoking phpinfo() or dba_handlers().


Instalação

By using the --enable-dba=shared configuration option you can build a dynamic loadable module to enable PHP for basic support of dbm-style databases. You also have to add support for at least one of the following handlers by specifying the --with-XXXX or --enable-XXXX configure switch to your PHP configure line.

Aviso

After configuring and compiling PHP you must execute the following test from commandline: php run-tests.php ext/dba. This shows whether your combination of handlers works. Most problematic are dbm and ndbm which conflict with many installations. The reason for this is that on several systems these libraries are part of more than one other library. The configuration test only prevents you from configuring malfunctioning single handlers but not combinations.

Supported DBA handlers
Handler | Configure Switch
dbm

To enable support for dbm add --with-dbm[=DIR].

Nota:

dbm normally is a wrapper which often results in failures. This means you should only use dbm if you are sure it works and if you really need this format.

ndbm

To enable support for ndbm add --with-ndbm[=DIR].

Nota:

ndbm normally is a wrapper which often results in failures. This means you should only use ndbm if you are sure it works and if you really need this format.

gdbm | To enable support for gdbm add --with-gdbm[=DIR].
db2

To enable support for Oracle Berkeley DB 2 add --with-db2[=DIR].

Nota:

db2 conflicts with db3 and db4.

db3

To enable support for Oracle Berkeley DB 3 add --with-db3[=DIR].

Nota:

db3 conflicts with db2 and db4.

db4

To enable support for Oracle Berkeley DB 4 or 5 add --with-db4[=DIR].

Nota:

db4 conflicts with db2 and db3.

Nota:

The db libraries with versions 4.1 through 4.1.24 cannot be used in any PHP version.

Support for BDB 5 was added in PHP 5.3.3.

cdb

To enable support for cdb add --with-cdb[=DIR].

Nota:

You can omit DIR to use the bundled cdb library that adds the cdb_make handler which allows creation of cdb files and allows to access cdb files on the network using PHP's streams.

flatfile

To enable support for flatfile add --enable-flatfile. Before PHP 5.2.1 the --with-flatfile had to be used instead.

Nota:

This was added to add compatibility with deprecated dbm extension. Use this handler only when you cannot install one of the libraries required by the other handlers and when you cannot use bundled cdb handler.

inifile

To enable support for inifile add --enable-inifile. Before PHP 5.2.1 the --with-inifile had to be used instead.

Nota:

This was added to allow to read and set microsoft style .ini files (like the php.ini file).

qdbm

To enable support for qdbm add --with-qdbm[=DIR].

Nota:

qdbm conflicts with dbm and gdbm.

Nota:

The qdbm library can be downloaded from » http://fallabs.com/qdbm/index.html.

tcadb

To enable support for Tokyo Cabinet add --with-tcadb[=DIR].

Nota:

The Tokyo Cabinet library can be downloaded from » http://fallabs.com/tokyocabinet/.

lmdb

To enable support for the Lightning Memory-Mapped Database add --with-lmdb[=DIR].

Nota:

This was added in PHP 7.2.0. The Lightning Memory-Mapped Database library can be downloaded from » https://symas.com/lmdb/.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

DBA Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
dba.default_handler | DBA_DEFAULT | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

dba.default_handler string

The name of the default handler


Tipos de Recurso

The functions dba_open() and dba_popen() return a handle to the specified database file to access which is used by all other dba-function calls.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

DBA_LMDB_USE_SUB_DIR (int)

LMDB Driver flag to allow the creation of a subdirectory for the database files. Available as of PHP 8.2.0.

DBA_LMDB_NO_SUB_DIR (int)

LMDB Driver flag to disallow the creation of a subdirectory for the database files. Available as of PHP 8.2.0.


  • « Constantes pré-definidas
  • Basic usage »
  • PHP Manual
  • DBA
  • Exemplos

Exemplos

Índice

  • Basic usage


Basic usage

Exemplo #1 DBA example

<?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 is binary safe and does not have any arbitrary limits. However, it inherits all limits set by the underlying database implementation.

All file-based databases must provide a way of setting the file mode of a new created database, if that is possible at all. The file mode is commonly passed as the fourth argument to dba_open() or dba_popen().

You can access all entries of a database in a linear way by using the dba_firstkey() and dba_nextkey() functions. You may not change the database while traversing it.

Exemplo #2 Traversing a database

<?php

// ...open database...

$key = dba_firstkey($id);

while ($key !== false) {
if (true) { // remember the key to perform some action later
$handle_later[] = $key;
}
$key = dba_nextkey($id);
}

foreach ($handle_later as $val) {
dba_delete($val, $id);
}

?>


DBA Funções

Índice

  • dba_close — Close a DBA database
  • dba_delete — Delete DBA entry specified by key
  • dba_exists — Check whether key exists
  • dba_fetch — Fetch data specified by key
  • dba_firstkey — Fetch first key
  • dba_handlers — List all the handlers available
  • dba_insert — Insert entry
  • dba_key_split — Splits a key in string representation into array representation
  • dba_list — List all open database files
  • dba_nextkey — Fetch next key
  • dba_open — Open database
  • dba_optimize — Optimize database
  • dba_popen — Open database persistently
  • dba_replace — Replace or insert entry
  • dba_sync — Synchronize database


Close a DBA database

  • « DBA Funções
  • dba_delete »
  • PHP Manual
  • DBA Funções
  • Close a DBA database

dba_close

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_close — Close a DBA database

Descrição

dba_close(resource $dba): void

dba_close() closes the established database and frees all resources of the specified database handle.

Parâmetros

dba

The database handler, returned by dba_open() or dba_popen().

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • dba_open() - Open database
  • dba_popen() - Open database persistently


Delete DBA entry specified by key

  • « dba_close
  • dba_exists »
  • PHP Manual
  • DBA Funções
  • Delete DBA entry specified by key

dba_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_delete — Delete DBA entry specified by key

Descrição

dba_delete(string|array $key, resource $dba): bool

dba_delete() deletes the specified entry from the database.

Parâmetros

key

The key of the entry which is deleted.

dba

The database handler, returned by dba_open() or dba_popen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • dba_exists() - Check whether key exists
  • dba_fetch() - Fetch data specified by key
  • dba_insert() - Insert entry
  • dba_replace() - Replace or insert entry


Check whether key exists

  • « dba_delete
  • dba_fetch »
  • PHP Manual
  • DBA Funções
  • Check whether key exists

dba_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_exists — Check whether key exists

Descrição

dba_exists(string|array $key, resource $dba): bool

dba_exists() checks whether the specified key exists in the database.

Parâmetros

key

The key the check is performed for.

dba

The database handler, returned by dba_open() or dba_popen().

Valor Retornado

Returns true if the key exists, false otherwise.

Veja Também

  • dba_delete() - Delete DBA entry specified by key
  • dba_fetch() - Fetch data specified by key
  • dba_insert() - Insert entry
  • dba_replace() - Replace or insert entry


Fetch data specified by key

  • « dba_exists
  • dba_firstkey »
  • PHP Manual
  • DBA Funções
  • Fetch data specified by key

dba_fetch

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_fetch — Fetch data specified by key

Descrição

dba_fetch(string|array $key, resource $dba, int $skip = 0): string|false

Overloaded signature deprecated as of 8.3.0:

dba_fetch(string|array $key, int $skip, resource $dba): string

dba_fetch() fetches the data specified by key from the database specified with dba.

Parâmetros

key

The key the data is specified by.

Nota:

When working with inifiles this function accepts arrays as keys where index 0 is the group and index 1 is the value name. See: dba_key_split().

dba

The database handler, returned by dba_open() or dba_popen().

skip

The number of key-value pairs to ignore when using cdb databases. This value is ignored for all other databases which do not support multiple keys with the same name.

Valor Retornado

Returns the associated string if the key/data pair is found, false otherwise.

Registro de Alterações

Versão | Descrição
8.3.0 | Calling dba_fetch() with dba as the 3rd argument is now deprecated.
8.2.0 | dba_fetch()'s optional skip argument is now at the end in line with PHP userland semantics. The previously overloaded signature is still accepted but discouraged.

Veja Também

  • dba_exists() - Check whether key exists
  • dba_delete() - Delete DBA entry specified by key
  • dba_insert() - Insert entry
  • dba_replace() - Replace or insert entry
  • dba_key_split() - Splits a key in string representation into array representation


Fetch first key

  • « dba_fetch
  • dba_handlers »
  • PHP Manual
  • DBA Funções
  • Fetch first key

dba_firstkey

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_firstkey — Fetch first key

Descrição

dba_firstkey(resource $dba): string|false

dba_firstkey() returns the first key of the database and resets the internal key pointer. This permits a linear search through the whole database.

Parâmetros

dba

The database handler, returned by dba_open() or dba_popen().

Valor Retornado

Returns the key on success ou false em caso de falha.

Veja Também

  • dba_nextkey() - Fetch next key
  • dba_key_split() - Splits a key in string representation into array representation
  • Example 2 in the DBA examples


List all the handlers available

  • « dba_firstkey
  • dba_insert »
  • PHP Manual
  • DBA Funções
  • List all the handlers available

dba_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

dba_handlers — List all the handlers available

Descrição

dba_handlers(bool $full_info = false): array

dba_handlers() list all the handlers supported by this extension.

Parâmetros

full_info

Turns on/off full information display in the result.

Valor Retornado

Returns an array of database handlers. If full_info is set to true, the array will be associative with the handlers names as keys, and their version information as value. Otherwise, the result will be an indexed array of handlers names.

Nota:

When the internal cdb library is used you will see cdb and cdb_make.

Exemplos

Exemplo #1 dba_handlers() Example

<?php

echo "Available DBA handlers:\n";
foreach (dba_handlers(true) as $handler_name => $handler_version) {
// clean the versions
$handler_version = str_replace('$', '', $handler_version);
echo " - $handler_name: $handler_version\n";
}

?>

O exemplo acima produzirá algo semelhante a:

Available DBA handlers:
 - cdb: 0.75, Revision: 1.3.2.3
 - cdb_make: 0.75, Revision: 1.2.2.4
 - db2: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 1.6.2.3
 - flatfile: 1.0, Revision: 1.5.2.4


Insert entry

  • « dba_handlers
  • dba_key_split »
  • PHP Manual
  • DBA Funções
  • Insert entry

dba_insert

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_insert — Insert entry

Descrição

dba_insert(string|array $key, string $value, resource $dba): bool

dba_insert() inserts the entry described with key and value into the database.

Parâmetros

key

The key of the entry to be inserted. If this key already exist in the database, this function will fail. Use dba_replace() if you need to replace an existent key.

value

The value to be inserted.

dba

The database handler, returned by dba_open() or dba_popen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • dba_exists() - Check whether key exists
  • dba_delete() - Delete DBA entry specified by key
  • dba_fetch() - Fetch data specified by key
  • dba_replace() - Replace or insert entry


Splits a key in string representation into array representation

  • « dba_insert
  • dba_list »
  • PHP Manual
  • DBA Funções
  • Splits a key in string representation into array representation

dba_key_split

(PHP 5, PHP 7, PHP 8)

dba_key_split — Splits a key in string representation into array representation

Descrição

dba_key_split(string|false|null $key): array|false

dba_key_split() splits a key (string representation) into an array representation.

Parâmetros

key

The key in string representation.

Valor Retornado

Returns an array of the form array(0 => group, 1 => value_name). This function will return false if key is null or false.

Veja Também

  • dba_firstkey() - Fetch first key
  • dba_nextkey() - Fetch next key
  • dba_fetch() - Fetch data specified by key


List all open database files

  • « dba_key_split
  • dba_nextkey »
  • PHP Manual
  • DBA Funções
  • List all open database files

dba_list

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

dba_list — List all open database files

Descrição

dba_list(): array

dba_list() list all open database files.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An associative array, in the form resourceid => filename.


Fetch next key

  • « dba_list
  • dba_open »
  • PHP Manual
  • DBA Funções
  • Fetch next key

dba_nextkey

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_nextkey — Fetch next key

Descrição

dba_nextkey(resource $dba): string|false

dba_nextkey() returns the next key of the database and advances the internal key pointer.

Parâmetros

dba

The database handler, returned by dba_open() or dba_popen().

Valor Retornado

Returns the key on success ou false em caso de falha.

Veja Também

  • dba_firstkey() - Fetch first key
  • dba_key_split() - Splits a key in string representation into array representation
  • Example 2 in the DBA examples


Open database

  • « dba_nextkey
  • dba_optimize »
  • PHP Manual
  • DBA Funções
  • Open database

dba_open

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_open — Open database

Descrição

dba_open(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

dba_open() establishes a database instance for path with mode using handler.

Parâmetros

path

Commonly a regular path in your filesystem.

mode

It is r for read access, w for read/write access to an already existing database, c for read/write access and database creation if it doesn't currently exist, and n for create, truncate and read/write access. The database is created in BTree mode, other modes (like Hash or Queue) are not supported.

Additionally you can set the database lock method with the next char. Use l to lock the database with a .lck file or d to lock the databasefile itself. It is important that all of your applications do this consistently.

If you want to test the access and do not want to wait for the lock you can add t as third character. When you are absolutely sure that you do not require database locking you can do so by using - instead of l or d. When none of d, l or - is used, dba will lock on the database file as it would with d.

Nota:

There can only be one writer for one database file. When you use dba on a web server and more than one request requires write operations they can only be done one after another. Also read during write is not allowed. The dba extension uses locks to prevent this. See the following table:

DBA locking
already open | mode = "rl" | mode = "rlt" | mode = "wl" | mode = "wlt" | mode = "rd" | mode = "rdt" | mode = "wd" | mode = "wdt"
not open | ok | ok | ok | ok | ok | ok | ok | ok
mode = "rl" | ok | ok | wait | false | illegal | illegal | illegal | illegal
mode = "wl" | wait | false | wait | false | illegal | illegal | illegal | illegal
mode = "rd" | illegal | illegal | illegal | illegal | ok | ok | wait | false
mode = "wd" | illegal | illegal | illegal | illegal | wait | false | wait | false
  • ok: the second call will be successful.
  • wait: the second call waits until dba_close() is called for the first.
  • false: the second call returns false.
  • illegal: you must not mix "l" and "d" modifiers for mode parameter.

handler

The name of the handler which shall be used for accessing path. It is passed all optional parameters given to dba_open() and can act on behalf of them. If handler is null, then the default handler is invoked.

permission

Optional int parameter which is passed to the driver. It has the same meaning as the permissions parameter of chmod(), and defaults to 0644.

The db1, db2, db3, db4, dbm, gdbm, ndbm, and lmdb drivers support the permission parameter.

map_size

Optional int parameter which is passed to the driver. Its value should be a multiple of the page size of the OS, or zero, to use the default map size.

Only the lmdb driver accepts the map_size parameter.

flags

Flags to pass to the database drivers. If null the default flags will be provided. Currently, only the LMDB driver supports the following flags DBA_LMDB_USE_SUB_DIR and DBA_LMDB_NO_SUB_DIR.

Valor Retornado

Returns a positive handle on success ou false em caso de falha.

Erros/Exceções

false is returned and an E_WARNING level error is issued when handler is null, but there is no default handler.

Registro de Alterações

Versão | Descrição
8.2.0 | flags is added.
8.2.0 | handler is now nullable.
7.3.14, 7.4.2 | The lmdb driver now supports an additional map_size parameter.

Veja Também

  • dba_popen() - Open database persistently
  • dba_close() - Close a DBA database


Optimize database

  • « dba_open
  • dba_popen »
  • PHP Manual
  • DBA Funções
  • Optimize database

dba_optimize

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_optimize — Optimize database

Descrição

dba_optimize(resource $dba): bool

dba_optimize() optimizes the underlying database.

Parâmetros

dba

The database handler, returned by dba_open() or dba_popen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • dba_sync() - Synchronize database


Open database persistently

  • « dba_optimize
  • dba_replace »
  • PHP Manual
  • DBA Funções
  • Open database persistently

dba_popen

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_popen — Open database persistently

Descrição

dba_popen(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

dba_popen() establishes a persistent database instance for path with mode using handler.

Parâmetros

path

Commonly a regular path in your filesystem.

mode

It is r for read access, w for read/write access to an already existing database, c for read/write access and database creation if it doesn't currently exist, and n for create, truncate and read/write access.

handler

The name of the handler which shall be used for accessing path. It is passed all optional parameters given to dba_popen() and can act on behalf of them. If handler is null, then the default handler is invoked.

permission

Optional int parameter which is passed to the driver. It has the same meaning as the permissions parameter of chmod(), and defaults to 0644.

The db1, db2, db3, db4, dbm, gdbm, ndbm, and lmdb drivers support the permission parameter.

map_size

Optional int parameter which is passed to the driver. Its value should be a multiple of the page size of the OS, or zero, to use the default mapsize.

The lmdb driver accepts the map_size parameter.

flags

Allows to pass flags to the DB drivers. Currently, only LMDB with DBA_LMDB_USE_SUB_DIR and DBA_LMDB_NO_SUB_DIR are supported.

Valor Retornado

Returns a positive handle on success ou false em caso de falha.

Erros/Exceções

false is returned and an E_WARNING level error is issued when handler is null, but there is no default handler.

Registro de Alterações

Versão | Descrição
8.2.0 | flags is added.
8.1.0 | handler is now nullable.
7.3.14, 7.4.2 | The lmdb driver now supports an additional map_size parameter.

Veja Também

  • dba_open() - Open database
  • dba_close() - Close a DBA database


Replace or insert entry

  • « dba_popen
  • dba_sync »
  • PHP Manual
  • DBA Funções
  • Replace or insert entry

dba_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_replace — Replace or insert entry

Descrição

dba_replace(string|array $key, string $value, resource $dba): bool

dba_replace() replaces or inserts the entry described with key and value into the database specified by dba.

Parâmetros

key

The key of the entry to be replaced.

value

The value to be replaced.

dba

The database handler, returned by dba_open() or dba_popen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • dba_exists() - Check whether key exists
  • dba_delete() - Delete DBA entry specified by key
  • dba_fetch() - Fetch data specified by key
  • dba_insert() - Insert entry


Synchronize database

  • « dba_replace
  • ODBC »
  • PHP Manual
  • DBA Funções
  • Synchronize database

dba_sync

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_sync — Synchronize database

Descrição

dba_sync(resource $dba): bool

dba_sync() synchronizes the database. This will probably trigger a physical write to the disk, if supported.

Parâmetros

dba

The database handler, returned by dba_open() or dba_popen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • dba_optimize() - Optimize database


ODBC (Unified)

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • ODBC Funções
    • odbc_autocommit — Toggle autocommit behaviour
    • odbc_binmode — Handling of binary column data
    • odbc_close_all — Close all ODBC connections
    • odbc_close — Close an ODBC connection
    • odbc_columnprivileges — Lists columns and associated privileges for the given table
    • odbc_columns — Lists the column names in specified tables
    • odbc_commit — Commit an ODBC transaction
    • odbc_connect — Connect to a datasource
    • odbc_connection_string_is_quoted — Determines if an ODBC connection string value is quoted
    • odbc_connection_string_quote — Quotes an ODBC connection string value
    • odbc_connection_string_should_quote — Determines if an ODBC connection string value should be quoted
    • odbc_cursor — Obtém o nome do cursor
    • odbc_data_source — Returns information about available DSNs
    • odbc_do — Sinônimo de odbc_exec
    • odbc_error — Get the last error code
    • odbc_errormsg — Get the last error message
    • odbc_exec — Directly execute an SQL statement
    • odbc_execute — Executa um comando preparado
    • odbc_fetch_array — Obtém uma linha do resultado como um array associativo
    • odbc_fetch_into — Fetch one result row into array
    • odbc_fetch_object — Obtém um conjunto de resultados como um objeto
    • odbc_fetch_row — Obtém uma linha
    • odbc_field_len — Obtém o tamanho (precisão) de um campo
    • odbc_field_name — Obtém o nome da coluna
    • odbc_field_num — Retorna o número da coluna
    • odbc_field_precision — Sinônimo de odbc_field_len
    • odbc_field_scale — Obtém a precisão de um campo
    • odbc_field_type — Tipo de dados de um campo
    • odbc_foreignkeys — Retrieves a list of foreign keys
    • odbc_free_result — Libera os recursos associados a um resultado
    • odbc_gettypeinfo — Retrieves information about data types supported by the data source
    • odbc_longreadlen — Manipulação de colunas LONG
    • odbc_next_result — Confere se resultados múltiplos estão disponíveis
    • odbc_num_fields — Número de colunas em um resultado
    • odbc_num_rows — Número de linhas em um resultado
    • odbc_pconnect — Open a persistent database connection
    • odbc_prepare — Prepara um comando para execução
    • odbc_primarykeys — Gets the primary keys for a table
    • odbc_procedurecolumns — Retrieve information about parameters to procedures
    • odbc_procedures — Get the list of procedures stored in a specific data source
    • odbc_result_all — Mostra o resultado como uma tabela HTML
    • odbc_result — Get result data
    • odbc_rollback — Rollback a transaction
    • odbc_setoption — Adjust ODBC settings
    • odbc_specialcolumns — Retrieves special columns
    • 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


Introdução

In addition to normal ODBC support, the Unified ODBC functions in PHP allow you to access several databases that have borrowed the semantics of the ODBC API to implement their own API. Instead of maintaining multiple database drivers that were all nearly identical, these drivers have been unified into a single set of ODBC functions.

The following databases are supported by the Unified ODBC functions: » Adabas D, » IBM DB2, » iODBC, » Solid, and » Sybase SQL Anywhere.

Nota:

With the exception of iODBC, there is no ODBC involved when connecting to the above databases. The functions that you use to speak natively to them just happen to share the same names and syntax as the ODBC functions. However, building PHP with iODBC support enables you to use any ODBC-compliant drivers with your PHP applications. More information on iODBC, is available at » www.iodbc.org with the alternative unixODBC available at » www.unixodbc.org.


Dependências

Para acessar qualquer dos bancos de dados suportados você precisa ter as bibliotecas necessárias instaladas.


Instalação

--with-adabas[=DIR]

Include Adabas D support. DIR is the Adabas base install directory, defaults to /usr/local.

--with-sapdb[=DIR]

Include SAP DB support. DIR is SAP DB base install directory, defaults to /usr/local.

--with-solid[=DIR]

Include Solid support. DIR is the Solid base install directory, defaults to /usr/local/solid.

--with-ibm-db2[=DIR]

Include IBM DB2 support. DIR is the DB2 base install directory, defaults to /home/db2inst1/sqllib.

--with-empress[=DIR]

Include Empress support. DIR is the Empress base install directory, defaults to $EMPRESSPATH. This option only supports Empress Version 8.60 and above.

--with-empress-bcs[=DIR]

Include "Empress Local Access" support. DIR is the Empress base install directory, defaults to $EMPRESSPATH. This option only supports Empress Version 8.60 and above.

--with-birdstep[=DIR]

Include Birdstep support. DIR is the Birdstep base install directory, defaults to /usr/local/birdstep.

--with-custom-odbc[=DIR]

Include a user defined ODBC support. The DIR is ODBC install base directory, which defaults to /usr/local. Make sure to define CUSTOM_ODBC_LIBS and have some odbc.h in your include dirs. E.g., you should define following for Sybase SQL Anywhere 5.5.00 on QNX, prior to run configure script:

   CPPFLAGS="-DODBC_QNX -DSQLANY_BUG"
   LDFLAGS=-lunix
   CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Include iODBC support. DIR is the iODBC base install directory, defaults to /usr/local.

--with-esoob[=DIR]

Include Easysoft OOB support. DIR is the OOB base install directory, defaults to /usr/local/easysoft/oob/client.

--with-unixODBC[=DIR]

Include unixODBC support. DIR is the unixODBC base install directory, defaults to /usr/local.

--with-openlink[=DIR]

Include OpenLink ODBC support. DIR is the OpenLink base install directory, defaults to /usr/local. This is the same as iODBC.

--with-dbmaker[=DIR]

Include DBMaker support. DIR is the DBMaker base install directory, defaults to where the latest version of DBMaker is installed (such as /home/dbmaker/3.6).

Windows users must enable php_odbc.dll in order to use this extension.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração de Unified ODBC
Nome | Padrão | Modificável | Registro de Alterações
odbc.default_db * | NULL | INI_ALL |
odbc.default_user * | NULL | INI_ALL |
odbc.default_pw * | NULL | INI_ALL |
odbc.allow_persistent | "1" | INI_SYSTEM |
odbc.check_persistent | "1" | INI_SYSTEM |
odbc.max_persistent | "-1" | INI_SYSTEM |
odbc.max_links | "-1" | INI_SYSTEM |
odbc.defaultlrl | "4096" | INI_ALL |
odbc.defaultbinmode | "1" | INI_ALL |
odbc.default_cursortype | "3" | INI_ALL |

Nota: Entradas marcadas com * ainda não estão implementadas.

Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

odbc.default_db string

Fonte de dados ODBC que será usada se nenhuma for especificada em odbc_connect() ou odbc_pconnect().

odbc.default_user string

Nome de usuário que será usado se nenhum for especificado em odbc_connect() ou odbc_pconnect().

odbc.default_pw string

Senha que será usada se nenhuma for especificada em odbc_connect() ou odbc_pconnect().

odbc.allow_persistent bool

Define se serão permitidas conexões ODBC persistentes.

odbc.check_persistent bool

Verifica se uma conexão ainda está válida antes de seu reúso.

odbc.max_persistent int

O número máximo de conexões ODBC persistentes por processo.

odbc.max_links int

O número máximo de conexões ODBC por processo, incluindo conexões persistentes.

odbc.defaultlrl int

Manipulação de campos LONG. Especifica o número de bytes retornados às variáveis. Veja odbc_longreadlen() para detalhes.

Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada.
odbc.defaultbinmode int

Manipulação de dados binários. Veja odbc_binmode() para detalhes.

odbc.default_cursortype int

Controla o modelo de cursor ODBC. Valores possíveis são SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_KEYSET_DRIVEN, SQL_CURSOR_DYNAMIC e SQL_CURSOR_STATIC (padrão).


Tipos de Recurso

Esta extensão define dois tipos resource: uma identificador de conexão ODBC e um identificador de resultado ODBC.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

ODBC_TYPE (string)
ODBC_BINMODE_PASSTHRU (int)
ODBC_BINMODE_RETURN (int)
ODBC_BINMODE_CONVERT (int)
SQL_ODBC_CURSORS (int)
SQL_CUR_USE_DRIVER (int)
SQL_CUR_USE_IF_NEEDED (int)
SQL_CUR_USE_ODBC (int)
SQL_CONCURRENCY (int)
SQL_CONCUR_READ_ONLY (int)
SQL_CONCUR_LOCK (int)
SQL_CONCUR_ROWVER (int)
SQL_CONCUR_VALUES (int)
SQL_CURSOR_TYPE (int)
SQL_CURSOR_FORWARD_ONLY (int)
SQL_CURSOR_KEYSET_DRIVEN (int)
SQL_CURSOR_DYNAMIC (int)
SQL_CURSOR_STATIC (int)
SQL_KEYSET_SIZE (int)
SQL_CHAR (int)
SQL_VARCHAR (int)
SQL_LONGVARCHAR (int)
SQL_DECIMAL (int)
SQL_NUMERIC (int)
SQL_BIT (int)
SQL_TINYINT (int)
SQL_SMALLINT (int)
SQL_INTEGER (int)
SQL_BIGINT (int)
SQL_REAL (int)
SQL_FLOAT (int)
SQL_DOUBLE (int)
SQL_BINARY (int)
SQL_VARBINARY (int)
SQL_LONGVARBINARY (int)
SQL_DATE (int)
SQL_TIME (int)
SQL_TIMESTAMP (int)
SQL_TYPE_DATE (int)
SQL_TYPE_TIME (int)
SQL_TYPE_TIMESTAMP (int)
SQL_BEST_ROWID (int)
SQL_ROWVER (int)
SQL_SCOPE_CURROW (int)
SQL_SCOPE_TRANSACTION (int)
SQL_SCOPE_SESSION (int)
SQL_NO_NULLS (int)
SQL_NULLABLE (int)
SQL_INDEX_UNIQUE (int)
SQL_INDEX_ALL (int)
SQL_ENSURE (int)
SQL_QUICK (int)


ODBC Funções

Índice

  • odbc_autocommit — Toggle autocommit behaviour
  • odbc_binmode — Handling of binary column data
  • odbc_close_all — Close all ODBC connections
  • odbc_close — Close an ODBC connection
  • odbc_columnprivileges — Lists columns and associated privileges for the given table
  • odbc_columns — Lists the column names in specified tables
  • odbc_commit — Commit an ODBC transaction
  • odbc_connect — Connect to a datasource
  • odbc_connection_string_is_quoted — Determines if an ODBC connection string value is quoted
  • odbc_connection_string_quote — Quotes an ODBC connection string value
  • odbc_connection_string_should_quote — Determines if an ODBC connection string value should be quoted
  • odbc_cursor — Obtém o nome do cursor
  • odbc_data_source — Returns information about available DSNs
  • odbc_do — Sinônimo de odbc_exec
  • odbc_error — Get the last error code
  • odbc_errormsg — Get the last error message
  • odbc_exec — Directly execute an SQL statement
  • odbc_execute — Executa um comando preparado
  • odbc_fetch_array — Obtém uma linha do resultado como um array associativo
  • odbc_fetch_into — Fetch one result row into array
  • odbc_fetch_object — Obtém um conjunto de resultados como um objeto
  • odbc_fetch_row — Obtém uma linha
  • odbc_field_len — Obtém o tamanho (precisão) de um campo
  • odbc_field_name — Obtém o nome da coluna
  • odbc_field_num — Retorna o número da coluna
  • odbc_field_precision — Sinônimo de odbc_field_len
  • odbc_field_scale — Obtém a precisão de um campo
  • odbc_field_type — Tipo de dados de um campo
  • odbc_foreignkeys — Retrieves a list of foreign keys
  • odbc_free_result — Libera os recursos associados a um resultado
  • odbc_gettypeinfo — Retrieves information about data types supported by the data source
  • odbc_longreadlen — Manipulação de colunas LONG
  • odbc_next_result — Confere se resultados múltiplos estão disponíveis
  • odbc_num_fields — Número de colunas em um resultado
  • odbc_num_rows — Número de linhas em um resultado
  • odbc_pconnect — Open a persistent database connection
  • odbc_prepare — Prepara um comando para execução
  • odbc_primarykeys — Gets the primary keys for a table
  • odbc_procedurecolumns — Retrieve information about parameters to procedures
  • odbc_procedures — Get the list of procedures stored in a specific data source
  • odbc_result_all — Mostra o resultado como uma tabela HTML
  • odbc_result — Get result data
  • odbc_rollback — Rollback a transaction
  • odbc_setoption — Adjust ODBC settings
  • odbc_specialcolumns — Retrieves special columns
  • 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


Toggle autocommit behaviour

  • « ODBC Funções
  • odbc_binmode »
  • PHP Manual
  • ODBC Funções
  • Toggle autocommit behaviour

odbc_autocommit

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_autocommit — Toggle autocommit behaviour

Descrição

odbc_autocommit(resource $odbc, ?bool $enable = null): int|bool

Toggles autocommit behaviour.

By default, auto-commit is on for a connection. Disabling auto-commit is equivalent with starting a transaction.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

enable

If enable is true, auto-commit is enabled, if it is false auto-commit is disabled. If null is passed, this function returns the auto-commit status for odbc.

Valor Retornado

With a null enable parameter, this function returns auto-commit status for odbc. Non-zero is returned if auto-commit is on, 0 if it is off, or false if an error occurs.

If enable is non-null, this function returns true on success and false on failure.

Registro de Alterações

Versão | Descrição
8.3.0 | enable is now nullable.

Veja Também

  • odbc_commit() - Commit an ODBC transaction
  • odbc_rollback() - Rollback a transaction


Handling of binary column data

  • « odbc_autocommit
  • odbc_close_all »
  • PHP Manual
  • ODBC Funções
  • Handling of binary column data

odbc_binmode

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_binmode — Handling of binary column data

Descrição

odbc_binmode(resource $statement, int $mode): true

Controls handling of binary column data. ODBC SQL types affected are BINARY, VARBINARY, and LONGVARBINARY. The default mode can be set using the uodbc.defaultbinmode php.ini directive.

When binary SQL data is converted to character C data (ODBC_BINMODE_CONVERT), each byte (8 bits) of source data is represented as two ASCII characters. These characters are the ASCII character representation of the number in its hexadecimal form. For example, a binary 00000001 is converted to "01" and a binary 11111111 is converted to "FF".

While the handling of BINARY and VARBINARY columns only depend on the binmode, the handling of LONGVARBINARY columns also depends on the longreadlen as well:

LONGVARBINARY handling
binmode | longreadlen | result
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_RETURN | 0 | passthru
ODBC_BINMODE_CONVERT | 0 | passthru
ODBC_BINMODE_PASSTHRU | >0 | passthru
ODBC_BINMODE_RETURN | >0 | return as is
ODBC_BINMODE_CONVERT | >0 | return as char

If odbc_fetch_into() is used, passthru means that an empty string is returned for these columns. If odbc_result() is used, passthru means that the data are sent directly to the client (i.e. printed).

Parâmetros

statement

The result identifier.

If statement is 0, the settings apply as default for new results.

mode

Possible values for mode are:

  • ODBC_BINMODE_PASSTHRU: Passthru BINARY data
  • ODBC_BINMODE_RETURN: Return as is
  • ODBC_BINMODE_CONVERT: Convert to char and return

Nota: Handling of binary long columns is also affected by odbc_longreadlen().

Valor Retornado

Sempre retorna true.


Close all ODBC connections

  • « odbc_binmode
  • odbc_close »
  • PHP Manual
  • ODBC Funções
  • Close all ODBC connections

odbc_close_all

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_close_all — Close all ODBC connections

Descrição

odbc_close_all(): void

odbc_close_all() will close down all connections to database server(s).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Notas

Nota:

This function will fail if there are open transactions on a connection. This connection will remain open in this case.


Close an ODBC connection

  • « odbc_close_all
  • odbc_columnprivileges »
  • PHP Manual
  • ODBC Funções
  • Close an ODBC connection

odbc_close

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_close — Close an ODBC connection

Descrição

odbc_close(resource $odbc): void

Closes down the connection to the database server.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

Valor Retornado

Nenhum valor é retornado.

Notas

Nota:

This function will fail if there are open transactions on this connection. The connection will remain open in this case.


Lists columns and associated privileges for the given table

  • « odbc_close
  • odbc_columns »
  • PHP Manual
  • ODBC Funções
  • Lists columns and associated privileges for the given table

odbc_columnprivileges

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_columnprivileges — Lists columns and associated privileges for the given table

Descrição

odbc_columnprivileges(
resource $odbc,
?string $catalog,
string $schema,
string $table,
string $column
): resource|false

Lists columns and associated privileges for the given table.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

catalog

O catálogo ('qualifier' na linguagem ODBC 2).

schema

O esquema ('owner' na linguagem ODBC 2). Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

table

The table name. Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

column

The column name. Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

Valor Retornado

Returns an ODBC result identifier ou false em caso de falha. This result identifier can be used to fetch a list of columns and associated privileges.

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE
Drivers podem listar colunas adicionais.

The result set is ordered by TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME and PRIVILEGE.

Exemplos

Exemplo #1 List Privileges for a Column

<?php
$conn = odbc_connect($dsn, $user, $pass);
$privileges = odbc_columnprivileges($conn, 'TutorialDB', 'dbo', 'test', 'id');
while (($row = odbc_fetch_array($privileges))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => test
    [COLUMN_NAME] => id
    [GRANTOR] => dbo
    [GRANTEE] => dbo
    [PRIVILEGE] => INSERT
    [IS_GRANTABLE] => YES
)


Lists the column names in specified tables

  • « odbc_columnprivileges
  • odbc_commit »
  • PHP Manual
  • ODBC Funções
  • Lists the column names in specified tables

odbc_columns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_columns — Lists the column names in specified tables

Descrição

odbc_columns(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $table = null,
?string $column = null
): resource|false

Lists all columns in the requested range.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

catalog

O catálogo ('qualifier' na linguagem ODBC 2).

schema

O esquema ('owner' na linguagem ODBC 2). Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

table

The table name. Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

column

The column name. Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

Valor Retornado

Returns an ODBC result identifier ou false em caso de falha.

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • NUM_PREC_RADIX
  • NULLABLE
  • REMARKS
  • COLUMN_DEF
  • SQL_DATA_TYPE
  • SQL_DATETIME_SUB
  • CHAR_OCTET_LENGTH
  • ORDINAL_POSITION
  • IS_NULLABLE
Drivers podem listar colunas adicionais.

The result set is ordered by TABLE_CAT, TABLE_SCHEM, TABLE_NAME and ORDINAL_POSITION.

Registro de Alterações

Versão | Descrição
8.0.0 | schema, table and column are now nullable.

Exemplos

Exemplo #1 List Columns of a Table

<?php
$conn = odbc_connect($dsn, $user, $pass);
$columns = odbc_columns($conn, 'TutorialDB', 'dbo', 'test', '%');
while (($row = odbc_fetch_array($columns))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [COLUMN_NAME] => id
    [DATA_TYPE] => 4
    [TYPE_NAME] => int
    [COLUMN_SIZE] => 10
    [BUFFER_LENGTH] => 4
    [DECIMAL_DIGITS] => 0
    [NUM_PREC_RADIX] => 10
    [NULLABLE] => 0
    [REMARKS] =>
    [COLUMN_DEF] =>
    [SQL_DATA_TYPE] => 4
    [SQL_DATETIME_SUB] =>
    [CHAR_OCTET_LENGTH] =>
    [ORDINAL_POSITION] => 1
    [IS_NULLABLE] => NO
)

Veja Também

  • odbc_columnprivileges() - Lists columns and associated privileges for the given table
  • odbc_procedurecolumns() - Retrieve information about parameters to procedures


Commit an ODBC transaction

  • « odbc_columns
  • odbc_connect »
  • PHP Manual
  • ODBC Funções
  • Commit an ODBC transaction

odbc_commit

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_commit — Commit an ODBC transaction

Descrição

odbc_commit(resource $odbc): bool

Commits all pending transactions on the connection.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Connect to a datasource

  • « odbc_commit
  • odbc_connection_string_is_quoted »
  • PHP Manual
  • ODBC Funções
  • Connect to a datasource

odbc_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_connect — Connect to a datasource

Descrição

odbc_connect(
string $dsn,
string $user,
string $password,
int $cursor_option = SQL_CUR_USE_DRIVER
): resource|false

The connection id returned by this functions is needed by other ODBC functions. You can have multiple connections open at once as long as they either use different db or different credentials.

With some ODBC drivers, executing a complex stored procedure may fail with an error similar to: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Using SQL_CUR_USE_ODBC may avoid that error. Also, some drivers don't support the optional row_number parameter in odbc_fetch_row(). SQL_CUR_USE_ODBC might help in that case, too.

Parâmetros

dsn

The database source name for the connection. Alternatively, a DSN-less connection string can be used.

user

The username.

password

The password.

cursor_option

This sets the type of cursor to be used for this connection. This parameter is not normally needed, but can be useful for working around problems with some ODBC drivers.

The following constants are defined for cursortype:

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

Valor Retornado

Returns an ODBC connection, ou false em caso de falha.

Exemplos

Exemplo #1 DSN-less connections

<?php
// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver - allows connection to SQL 7, 2000, 2005 and 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?>

Veja Também

  • For persistent connections: odbc_pconnect() - Open a persistent database connection


Determines if an ODBC connection string value is quoted

  • « odbc_connect
  • odbc_connection_string_quote »
  • PHP Manual
  • ODBC Funções
  • Determines if an ODBC connection string value is quoted

odbc_connection_string_is_quoted

(PHP 8 >= 8.2.0)

odbc_connection_string_is_quoted — Determines if an ODBC connection string value is quoted

Descrição

odbc_connection_string_is_quoted(string $str): bool

Determines if a string is properly quoted for an ODBC connection string value. ODBC connection string quoting is performed using curly braces, and ending braces within a string must be escaped through repeating them twice, similar to SQL quoting.

Parâmetros

str

The string to check for quoting.

Valor Retornado

true if quoted properly, false if not.

Veja Também

  • odbc_connection_string_quote() - Quotes an ODBC connection string value
  • odbc_connection_string_should_quote() - Determines if an ODBC connection string value should be quoted


Quotes an ODBC connection string value

  • « odbc_connection_string_is_quoted
  • odbc_connection_string_should_quote »
  • PHP Manual
  • ODBC Funções
  • Quotes an ODBC connection string value

odbc_connection_string_quote

(PHP 8 >= 8.2.0)

odbc_connection_string_quote — Quotes an ODBC connection string value

Descrição

odbc_connection_string_quote(string $str): string

Quotes a value for a connection string, according to ODBC rules. That is, it will be surrounded by quotes, and any ending curly braces will be escaped. This should be done for any connection string values that come from user input. Not doing so can lead to issues with parsing the connection string, or values being injected into the connection string.

Note that this function does not check if the string is already quoted, nor if the string needs quoting. For that, call odbc_connection_string_is_quoted() and odbc_connection_string_should_quote().

Parâmetros

str

The unquoted string.

Valor Retornado

A quoted string, surrounded by curly braces, and properly escaped.

Exemplos

Exemplo #1 odbc_connection_string_quote() example

This example quotes a string, then puts it in a connection string. Note that the string is quoted, and the ending quote character in the middle of the string has been escaped.

<?php
$value = odbc_connection_string_quote("foo}bar");
$connection_string = "DSN=PHP;UserValue=$value";
echo $connection_string;
?>

O exemplo acima produzirá algo semelhante a:

DSN=PHP;UserValue={foo}}bar}

Veja Também

  • odbc_connection_string_is_quoted() - Determines if an ODBC connection string value is quoted
  • odbc_connection_string_should_quote() - Determines if an ODBC connection string value should be quoted


Determines if an ODBC connection string value should be quoted

  • « odbc_connection_string_quote
  • odbc_cursor »
  • PHP Manual
  • ODBC Funções
  • Determines if an ODBC connection string value should be quoted

odbc_connection_string_should_quote

(PHP 8 >= 8.2.0)

odbc_connection_string_should_quote — Determines if an ODBC connection string value should be quoted

Descrição

odbc_connection_string_should_quote(string $str): bool

Determines if a string needs to be quoted for an ODBC connection string value; that is, if it contains special characters.

Note that this does not check if the string is already quoted; an already quoted string will contain characters that will make this function return true. You should call odbc_connection_string_is_quoted() to check.

Parâmetros

str

The string to check for.

Valor Retornado

true if the string should be quoted; false otherwise.

Veja Também

  • odbc_connection_string_quote() - Quotes an ODBC connection string value
  • odbc_connection_string_is_quoted() - Determines if an ODBC connection string value is quoted


Obtém o nome do cursor

  • « odbc_connection_string_should_quote
  • odbc_data_source »
  • PHP Manual
  • ODBC Funções
  • Obtém o nome do cursor

odbc_cursor

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_cursor — Obtém o nome do cursor

Descrição

odbc_cursor(resource $statement): string|false

Obtém o nome do cursor de um dado result_id.

Parâmetros

statement

O identificador de resultado.

Valor Retornado

Retorna o nome do cursor, como uma string, ou false em caso de falha.


Returns information about available DSNs

  • « odbc_cursor
  • odbc_do »
  • PHP Manual
  • ODBC Funções
  • Returns information about available DSNs

odbc_data_source

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

odbc_data_source — Returns information about available DSNs

Descrição

odbc_data_source(resource $odbc, int $fetch_type): array|null|false

This function will return the list of available DSN (after calling it several times).

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

fetch_type

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.

Valor Retornado

Returns false on error, an array upon success, and null after fetching the last available DSN.

Exemplos

Exemplo #1 List available DSNs

<?php
$conn = odbc_connect('dsn', 'user', 'pass');
$dsn_info = odbc_data_source($conn, SQL_FETCH_FIRST);
while ($dsn_info) {
print_r($dsn_info);
$dsn_info = odbc_data_source($conn, SQL_FETCH_NEXT);
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [server] => dsn
    [description] => ODBC Driver 17 for SQL Server
)
Array
(
    [server] => other_dsn
    [description] => Microsoft Access Driver (*.mdb, *.accdb)
)


Sinônimo de odbc_exec

  • « odbc_data_source
  • odbc_error »
  • PHP Manual
  • ODBC Funções
  • Sinônimo de odbc_exec

odbc_do

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_do — Sinônimo de odbc_exec()

Descrição

Esta função é um apelido para: odbc_exec().


Get the last error code

  • « odbc_do
  • odbc_errormsg »
  • PHP Manual
  • ODBC Funções
  • Get the last error code

odbc_error

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

odbc_error — Get the last error code

Descrição

odbc_error(?resource $odbc = null): string

Returns a six-digit ODBC state, or an empty string if there has been no errors.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

Valor Retornado

If odbc is specified, the last state of that connection is returned, else the last state of any connection is returned.

This function returns meaningful value only if last odbc query failed (i.e. odbc_exec() returned false).

Registro de Alterações

Versão | Descrição
8.0.0 | odbc is nullable now.

Veja Também

  • odbc_errormsg() - Get the last error message
  • odbc_exec() - Directly execute an SQL statement


Get the last error message

  • « odbc_error
  • odbc_exec »
  • PHP Manual
  • ODBC Funções
  • Get the last error message

odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

odbc_errormsg — Get the last error message

Descrição

odbc_errormsg(?resource $odbc = null): string

Returns a string containing the last ODBC error message, or an empty string if there has been no errors.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

Valor Retornado

If odbc is specified, the last state of that connection is returned, else the last state of any connection is returned.

This function returns meaningful value only if last odbc query failed (i.e. odbc_exec() returned false).

Registro de Alterações

Versão | Descrição
8.0.0 | odbc is nullable now.

Veja Também

  • odbc_error() - Get the last error code
  • odbc_exec() - Directly execute an SQL statement


Directly execute an SQL statement

  • « odbc_errormsg
  • odbc_execute »
  • PHP Manual
  • ODBC Funções
  • Directly execute an SQL statement

odbc_exec

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_exec — Directly execute an SQL statement

Descrição

odbc_exec(resource $odbc, string $query): resource|false

Sends an SQL statement to the database server.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

query

The SQL statement.

Valor Retornado

Returns an ODBC result identifier if the SQL command was executed successfully, or false on error.

Registro de Alterações

Versão | Descrição
8.0.0 | flags was removed.

Veja Também

  • odbc_prepare() - Prepara um comando para execução
  • odbc_execute() - Executa um comando preparado


Executa um comando preparado

  • « odbc_exec
  • odbc_fetch_array »
  • PHP Manual
  • ODBC Funções
  • Executa um comando preparado

odbc_execute

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_execute — Executa um comando preparado

Descrição

odbc_execute(resource $statement, array $params = []): bool

Executa um comando preparado com odbc_prepare().

Parâmetros

statement

O result id resource, de odbc_prepare().

params

Parâmetros em params serão substituídos por marcadores na ordem no comando preparado. Elementos desta matriz serão convertidos para strings ao chamar esta função.

Quaisquer parâmetros em params que iniciam e finalizam com aspas simples serão considerados como o nome de um arquivo para ler e enviar ao servidor de banco de dados como os dados para o espaço reservado apropriado.

Se você quiser guardar uma string que comece e termine com aspas simples, você deve adicionar um espaço ou outro caractere que não seja aspas simples no início ou no final do parâmetro, o qual irá evitar que o parâmetro seja considerado um nome de arquivo. Se isto não for uma opção, então você deve usar outro mecanismo para guardar a string, como executar a consulta diretamente com odbc_exec().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplos de odbc_execute() e odbc_prepare()

No seguinte código, $success apenas será true se todos os três parâmetros para myproc forem parâmetros IN:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

Se você precisar chamar um stored procedure usando parâmetros INOUT ou OUT, a solução recomendada é usar uma extensão nativa para seu banco de dados (por exemplo, oci8 para Oracle).

Veja Também

  • odbc_prepare() - Prepara um comando para execução


Obtém uma linha do resultado como um array associativo

  • « odbc_execute
  • odbc_fetch_into »
  • PHP Manual
  • ODBC Funções
  • Obtém uma linha do resultado como um array associativo

odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

odbc_fetch_array — Obtém uma linha do resultado como um array associativo

Descrição

odbc_fetch_array(resource $statement, int $row = -1): array|false

Obtém um array associativo de uma consulta ODBC.

Parâmetros

statement

O recurso de resultado de odbc_exec().

row

Opcionalmente escolha o número da linha que você quer obter.

Valor Retornado

Retorna um array que corresponde a linha obtida, ou false se não houverem mais linhas.

Notas

Nota: Esta função existe quando compilada com suporte DBMaker, IBM DB2 ou UnixODBC.

Veja Também

  • odbc_fetch_row() - Obtém uma linha
  • odbc_fetch_object() - Obtém um conjunto de resultados como um objeto
  • odbc_num_rows() - Número de linhas em um resultado


Fetch one result row into array

  • « odbc_fetch_array
  • odbc_fetch_object »
  • PHP Manual
  • ODBC Funções
  • Fetch one result row into array

odbc_fetch_into

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_fetch_into — Fetch one result row into array

Descrição

odbc_fetch_into(resource $statement, array &$array, int $row = 0): int|false

Fetch one result row into array.

Parâmetros

statement

The result resource.

array

The result array that can be of any type since it will be converted to type array. The array will contain the column values starting at array index 0.

row

The row number.

Valor Retornado

Returns the number of columns in the result; false on error.

Exemplos

Exemplo #1 odbc_fetch_into() examples

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

or

<?php
$rc = odbc_fetch_into($res_id, $my_array, 2);
?>


Obtém um conjunto de resultados como um objeto

  • « odbc_fetch_into
  • odbc_fetch_row »
  • PHP Manual
  • ODBC Funções
  • Obtém um conjunto de resultados como um objeto

odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

odbc_fetch_object — Obtém um conjunto de resultados como um objeto

Descrição

odbc_fetch_object(resource $statement, int $row = -1): stdClass|false

Obtém um object a partir de uma consulta ODBC.

Parâmetros

statement

O recurso do resultado de odbc_exec().

row

Opcionalmente escolha o número da linha a qual obter.

Valor Retornado

Retorna um objeto que corresponde a linha obitida, ou false se não houverem mais linhas.

Notas

Nota: Esta função existe quando compilada com suporte DBMaker, IBM DB2 ou UnixODBC.

Veja Também

  • odbc_fetch_row() - Obtém uma linha
  • odbc_fetch_array() - Obtém uma linha do resultado como um array associativo
  • odbc_num_rows() - Número de linhas em um resultado


Obtém uma linha

  • « odbc_fetch_object
  • odbc_field_len »
  • PHP Manual
  • ODBC Funções
  • Obtém uma linha

odbc_fetch_row

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_fetch_row — Obtém uma linha

Descrição

odbc_fetch_row(resource $statement, ?int $row = null): bool

Obtém uma linha de dados que foi retornada pela odbc_do() ou odbc_exec(). Depois de odbc_fetch_row() ser chamada, os campos desta linha podem ser acessados com odbc_result().

Parâmetros

statement

O identificador de resultado.

row

Se row não for especificado, odbc_fetch_row() irá tentar obter a próxima linha no conjunto de resultados. Chamadas para odbc_fetch_row() com ou sem row podem ser misturadas.

Para caminhar através do conjunto de resultados mais de uma vez, você pode usar odbc_fetch_row() com row 1, e então continuar fazendo odbc_fetch_row() sem row para ver os resultados. Se um driver não suportar a obtenção de linhas por números, o parâmetro row é ignorado.

Valor Retornado

Retorna true se houver uma linha, false caso contrário.

Registro de Alterações

Versão | Descrição
8.0.0 | row is nullable now.


Obtém o tamanho (precisão) de um campo

  • « odbc_fetch_row
  • odbc_field_name »
  • PHP Manual
  • ODBC Funções
  • Obtém o tamanho (precisão) de um campo

odbc_field_len

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_len — Obtém o tamanho (precisão) de um campo

Descrição

odbc_field_len(resource $statement, int $field): int|false

Obtém o tamanho do campo referenciado pelo número no dado identificador de resultado.

Parâmetros

statement

O identificador do resultado.

field

O número do campo. A numeração dos campos inicia em 0.

Valor Retornado

Retorna o tamanho do campo, ou false em caso de erro.

Veja Também

  • odbc_field_scale() - Obtém a precisão de um campo para obter a precisão de um número de ponto flutuante


Obtém o nome da coluna

  • « odbc_field_len
  • odbc_field_num »
  • PHP Manual
  • ODBC Funções
  • Obtém o nome da coluna

odbc_field_name

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_name — Obtém o nome da coluna

Descrição

odbc_field_name(resource $statement, int $field): string|false

Obtém o nome do campo ocupando o número da coluna em um dado identificador de resultado.

Parâmetros

statement

O identificador de resultado.

field

O número do campo. A numeração de campos iniciam em 1.

Valor Retornado

Retorna o nome do campo como uma string, ou false em erro.


Retorna o número da coluna

  • « odbc_field_name
  • odbc_field_precision »
  • PHP Manual
  • ODBC Funções
  • Retorna o número da coluna

odbc_field_num

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_num — Retorna o número da coluna

Descrição

odbc_field_num(resource $statement, string $field): int|false

Obtém o número da coluna que corresponde ao nome do campo no dado identificador de resultado.

Parâmetros

statement

O identificador de resultado.

field

O nome do campo.

Valor Retornado

Retorna o número do campo como um inteiro, ou false em erro. A numeração dos campos iniciam em 1.


Sinônimo de odbc_field_len

  • « odbc_field_num
  • odbc_field_scale »
  • PHP Manual
  • ODBC Funções
  • Sinônimo de odbc_field_len

odbc_field_precision

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_precision — Sinônimo de odbc_field_len()

Descrição

Esta função é um apelido para: odbc_field_len().

Veja Também

  • odbc_field_scale() - Obtém a precisão de um campo para obter a precisão de números de ponto flutuante.


Obtém a precisão de um campo

  • « odbc_field_precision
  • odbc_field_type »
  • PHP Manual
  • ODBC Funções
  • Obtém a precisão de um campo

odbc_field_scale

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_scale — Obtém a precisão de um campo

Descrição

odbc_field_scale(resource $statement, int $field): int|false

Obtém a precisão do campo referenciado pelo número em um dado identificador de resultado.

Parâmetros

statement

O identificador de resultado.

field

O número do campo. A numeração do campo inicia em 1.

Valor Retornado

Retorna a precisão do campo como um inteiro, ou false em erro.


Tipo de dados de um campo

  • « odbc_field_scale
  • odbc_foreignkeys »
  • PHP Manual
  • ODBC Funções
  • Tipo de dados de um campo

odbc_field_type

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_type — Tipo de dados de um campo

Descrição

odbc_field_type(resource $statement, int $field): string|false

Obtém o tipo SQL do campo referenciado pelo número num dado identificador de resultado.

Parâmetros

statement

O identificador de resultado.

field

O número do campo. Campos numerados a partir de 1.

Valor Retornado

Retorna o tipo do campo como uma string, ou false em erro.


Retrieves a list of foreign keys

  • « odbc_field_type
  • odbc_free_result »
  • PHP Manual
  • ODBC Funções
  • Retrieves a list of foreign keys

odbc_foreignkeys

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_foreignkeys — Retrieves a list of foreign keys

Descrição

odbc_foreignkeys(
resource $odbc,
?string $pk_catalog,
string $pk_schema,
string $pk_table,
string $fk_catalog,
string $fk_schema,
string $fk_table
): resource|false

Retrieves 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

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

pk_catalog

The catalog ('qualifier' in ODBC 2 parlance) of the primary key table.

pk_schema

The schema ('owner' in ODBC 2 parlance) of the primary key table.

pk_table

The primary key table.

fk_catalog

The catalog ('qualifier' in ODBC 2 parlance) of the foreign key table.

fk_schema

The schema ('owner' in ODBC 2 parlance) of the foreign key table.

fk_table

The foreign key table.

Valor Retornado

Returns an ODBC result identifier ou false em caso de falha.

The result set has the following columns:

  • PKTABLE_CAT
  • PKTABLE_SCHEM
  • PKTABLE_NAME
  • PKCOLUMN_NAME
  • FKTABLE_CAT
  • FKTABLE_SCHEM
  • FKTABLE_NAME
  • FKCOLUMN_NAME
  • KEY_SEQ
  • UPDATE_RULE
  • DELETE_RULE
  • FK_NAME
  • PK_NAME
  • DEFERRABILITY
Drivers podem listar colunas adicionais.

If the foreign keys associated with a primary key are requested, the result set is ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME and KEY_SEQ. If the primary keys associated with a foreign key are requested, the result set is ordered by PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME and KEY_SEQ.

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.

Veja Também

  • odbc_tables() - Get the list of table names stored in a specific data source
  • odbc_primarykeys() - Gets the primary keys for a table


Libera os recursos associados a um resultado

  • « odbc_foreignkeys
  • odbc_gettypeinfo »
  • PHP Manual
  • ODBC Funções
  • Libera os recursos associados a um resultado

odbc_free_result

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_free_result — Libera os recursos associados a um resultado

Descrição

odbc_free_result(resource $statement): bool

Libera o recursos associados com o resultado.

odbc_free_result() somente necessita ser chamado se você está com problema pelo fato de usar muita memória quando seu script é executado. Toda memória de resultado irá automaticamente ser liberada quando o script é terminado.

Parâmetros

statement

The result identifier.

Valor Retornado

Sempre retorna true.

Notas

Nota:

Se auto-commit estiver desabilitado (veja odbc_autocommit()) e você utilizar odbc_free_result() antes de gravar, todas as transações pendentes serão desfeitas.


Retrieves information about data types supported by the data source

  • « odbc_free_result
  • odbc_longreadlen »
  • PHP Manual
  • ODBC Funções
  • Retrieves information about data types supported by the data source

odbc_gettypeinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_gettypeinfo — Retrieves information about data types supported by the data source

Descrição

odbc_gettypeinfo(resource $odbc, int $data_type = 0): resource|false

Retrieves information about data types supported by the data source.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

data_type

The data type, which can be used to restrict the information to a single data type.

Valor Retornado

Returns an ODBC result identifier or false on failure.

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.


Manipulação de colunas LONG

  • « odbc_gettypeinfo
  • odbc_next_result »
  • PHP Manual
  • ODBC Funções
  • Manipulação de colunas LONG

odbc_longreadlen

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_longreadlen — Manipulação de colunas LONG

Descrição

odbc_longreadlen(resource $statement, int $length): bool

Controla a manipulação das colunas LONG, LONGVARCHAR e LONGVARBINARY. O comprimento padrão pode ser definido usando a diretiva uodbc.defaultlrl php.ini.

Parâmetros

statement

O identificador de resultado.

length

O número de bytes retornado pelo PHP é controlado pelo parâmetro length. Se ele é definido como 0, coluna de grandes dados são passadas através do cliente (ou seja, impresso) quando recuperado com odbc_result().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Nota:

Manipulação de colunas LONGVARBINARY é também afetado por odbc_binmode().


Confere se resultados múltiplos estão disponíveis

  • « odbc_longreadlen
  • odbc_num_fields »
  • PHP Manual
  • ODBC Funções
  • Confere se resultados múltiplos estão disponíveis

odbc_next_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

odbc_next_result — Confere se resultados múltiplos estão disponíveis

Descrição

odbc_next_result(resource $statement): bool

Verifica se há mais resultados disponíveis, dessa forma, permitindo acesso para próximo resultado via odbc_fetch_array(), odbc_fetch_row(), odbc_result(), etc.

Parâmetros

statement

O identificador de resultado.

Valor Retornado

Retorna true se há mais resultados, false caso contrário.

Exemplos

Exemplo #1 odbc_next_result()

<?php
$r_Connection = odbc_connect($dsn, $username, $password);

$s_SQL = <<<END_SQL
SELECT 'A'
SELECT 'B'
SELECT 'C'
END_SQL;

$r_Results = odbc_exec($r_Connection, $s_SQL);

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump first result set";
var_dump($a_Row1, $a_Row2);

echo "Get second results set ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump second result set ";
var_dump($a_Row1, $a_Row2);

echo "Get third results set ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump third result set ";
var_dump($a_Row1, $a_Row2);

echo "Try for a fourth result set ";
var_dump(odbc_next_result($r_Results));
?>

O exemplo acima produzirá:

Dump first result set array(1) {
    ["A"]=>
    string(1) "A"
}
bool(false)
Get second results set bool(true)
Dump second result set array(1) {
    ["B"]=>
    string(1) "B"
}
bool(false)
Get third results set bool(true)
Dump third result set array(1) {
    ["C"]=>
    string(1) "C"
}
bool(false)
Try for a fourth result set bool(false)


Número de colunas em um resultado

  • « odbc_next_result
  • odbc_num_rows »
  • PHP Manual
  • ODBC Funções
  • Número de colunas em um resultado

odbc_num_fields

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_num_fields — Número de colunas em um resultado

Descrição

odbc_num_fields(resource $statement): int

Obtém o número de campos (colunas) em um resultado ODBC.

Parâmetros

statement

O identificador de resultado retornado pela odbc_exec().

Valor Retornado

Retorna o número de campos, ou -1 em erro.


Número de linhas em um resultado

  • « odbc_num_fields
  • odbc_pconnect »
  • PHP Manual
  • ODBC Funções
  • Número de linhas em um resultado

odbc_num_rows

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_num_rows — Número de linhas em um resultado

Descrição

odbc_num_rows(resource $statement): int

Obtém o número de linhas em um resultado ODBC. Para comandos INSERT, UPDATE e DELETE odbc_num_rows() retorna o número de linhas afetadas. Para SELECT isto pode ser o número de linhas disponíveis.

Parâmetros

statement

O identificador de resultado retornado pela odbc_exec().

Valor Retornado

Retorna o número de linhas em um resultado ODBC. Esta função retornará -1 em erro.

Notas

Nota:

Usando odbc_num_rows() para determinar o número de linhas disponível após um SELECT, será retornado -1 com muitos drivers.


Open a persistent database connection

  • « odbc_num_rows
  • odbc_prepare »
  • PHP Manual
  • ODBC Funções
  • Open a persistent database connection

odbc_pconnect

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_pconnect — Open a persistent database connection

Descrição

odbc_pconnect(
string $dsn,
string $user,
string $password,
int $cursor_option = SQL_CUR_USE_DRIVER
): resource|false

Opens a persistent database connection.

This function is much like odbc_connect(), except that the connection is not really closed when the script has finished. Future requests for a connection with the same dsn, user, password combination (via odbc_connect() and odbc_pconnect()) can reuse the persistent connection.

Parâmetros

See odbc_connect() for details.

Valor Retornado

Returns an ODBC connection, ou false em caso de falha. error.

Notas

Nota: Persistent connections have no effect if PHP is used as a CGI program.

Veja Também

  • odbc_connect() - Connect to a datasource
  • Persistent Database Connections


Prepara um comando para execução

  • « odbc_pconnect
  • odbc_primarykeys »
  • PHP Manual
  • ODBC Funções
  • Prepara um comando para execução

odbc_prepare

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_prepare — Prepara um comando para execução

Descrição

odbc_prepare(resource $odbc, string $query): resource|false

Prepara um comando para execução. O identificador de resultado pode ser usado posteriormente para executar o comando com odbc_execute().

Alguns bancos de dados (como IBM DB2, MS SQL Server, e Oracle) suportam stored procedures que aceitam parâmetros do tipo IN, INOUT, e OUT como definido pela especificação ODBC. Entretanto, o Unified ODBC driver atualmente suporta apenas parâmetros do tipo IN em stored procedures.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

query

A instrução da string de consulta que está sendo preparada.

Valor Retornado

Retorna um identificador de resultado ODBC se o comando SQL foi preparado com sucesso. Retorna false em caso de erro.

Exemplos

Exemplo #1 Exemplos de odbc_execute() e odbc_prepare()

No seguinte código, $success será true se todos os três parâmetros em myproc forem parâmetros IN:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

Se você precisar usar um stored procedure usando parâmetros INOUT ou OUT, a alternativa é usar a extensão nativa para o seu banco de dados (por exemplo, oci8 para Oracle).

Veja Também

  • odbc_execute() - Executa um comando preparado


Gets the primary keys for a table

  • « odbc_prepare
  • odbc_procedurecolumns »
  • PHP Manual
  • ODBC Funções
  • Gets the primary keys for a table

odbc_primarykeys

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_primarykeys — Gets the primary keys for a table

Descrição

odbc_primarykeys(
resource $odbc,
?string $catalog,
string $schema,
string $table
): resource|false

Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

catalog

O catálogo ('qualifier' na linguagem ODBC 2).

schema

O esquema ('owner' na linguagem ODBC 2).

table

Valor Retornado

Returns an ODBC result identifier ou false em caso de falha.

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • KEY_SEQ
  • PK_NAME
Drivers podem listar colunas adicionais.

The result set is ordered by TABLE_CAT, TABLE_SCHEM, TABLE_NAME and KEY_SEQ.

Exemplos

Exemplo #1 List primary Keys of a Column

<?php
$conn = odbc_connect($dsn, $user, $pass);
$primarykeys = odbc_primarykeys($conn, 'TutorialDB', 'dbo', 'TEST');
while (($row = odbc_fetch_array($primarykeys))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [COLUMN_NAME] => id
    [KEY_SEQ] => 1
    [PK_NAME] => PK__TEST__3213E83FE141F843
)

Veja Também

  • odbc_tables() - Get the list of table names stored in a specific data source
  • odbc_foreignkeys() - Retrieves a list of foreign keys


Retrieve information about parameters to procedures

  • « odbc_primarykeys
  • odbc_procedures »
  • PHP Manual
  • ODBC Funções
  • Retrieve information about parameters to procedures

odbc_procedurecolumns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_procedurecolumns — Retrieve information about parameters to procedures

Descrição

odbc_procedurecolumns(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $procedure = null,
?string $column = null
): resource|false

Retrieve information about parameters to procedures.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

catalog

O catálogo ('qualifier' na linguagem ODBC 2).

schema

O esquema ('owner' na linguagem ODBC 2). Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

procedure

The proc. Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

column

The column. Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

Valor Retornado

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 ou false em caso de falha.

The result set has the following columns:

  • PROCEDURE_CAT
  • PROCEDURE_SCHEM
  • PROCEDURE_NAME
  • COLUMN_NAME
  • COLUMN_TYPE
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • NUM_PREC_RADIX
  • NULLABLE
  • REMARKS
  • COLUMN_DEF
  • SQL_DATA_TYPE
  • SQL_DATETIME_SUB
  • CHAR_OCTET_LENGTH
  • ORDINAL_POSITION
  • IS_NULLABLE
Drivers podem listar colunas adicionais.

The result set is ordered by PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME and COLUMN_TYPE.

Registro de Alterações

Versão | Descrição
8.0.0 | Prior to this version, the function could only be called with either one or five arguments.

Exemplos

Exemplo #1 List Columns of a stored Procedure

<?php
$conn = odbc_connect($dsn, $user, $pass);
$columns = odbc_procedurecolumns($conn, 'TutorialDB', 'dbo', 'GetEmployeeSalesYTD;1', '%');
while (($row = odbc_fetch_array($columns))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [PROCEDURE_CAT] => TutorialDB
    [PROCEDURE_SCHEM] => dbo
    [PROCEDURE_NAME] => GetEmployeeSalesYTD;1
    [COLUMN_NAME] => @SalesPerson
    [COLUMN_TYPE] => 1
    [DATA_TYPE] => -9
    [TYPE_NAME] => nvarchar
    [COLUMN_SIZE] => 50
    [BUFFER_LENGTH] => 100
    [DECIMAL_DIGITS] =>
    [NUM_PREC_RADIX] =>
    [NULLABLE] => 1
    [REMARKS] =>
    [COLUMN_DEF] =>
    [SQL_DATA_TYPE] => -9
    [SQL_DATETIME_SUB] =>
    [CHAR_OCTET_LENGTH] => 100
    [ORDINAL_POSITION] => 1
    [IS_NULLABLE] => YES
)

Veja Também

  • odbc_columns() - Lists the column names in specified tables


Get the list of procedures stored in a specific data source

  • « odbc_procedurecolumns
  • odbc_result_all »
  • PHP Manual
  • ODBC Funções
  • Get the list of procedures stored in a specific data source

odbc_procedures

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_procedures — Get the list of procedures stored in a specific data source

Descrição

odbc_procedures(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $procedure = null
): resource|false

Lists all procedures in the requested range.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

catalog

O catálogo ('qualifier' na linguagem ODBC 2).

schema

O esquema ('owner' na linguagem ODBC 2). Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

procedure

The name. Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

Valor Retornado

Returns an ODBC result identifier containing the information ou false em caso de falha.

The result set has the following columns:

  • PROCEDURE_CAT
  • PROCEDURE_SCHEM
  • PROCEDURE_NAME
  • NUM_INPUT_PARAMS
  • NUM_OUTPUT_PARAMS
  • NUM_RESULT_SETS
  • REMARKS
  • PROCEDURE_TYPE
Drivers podem listar colunas adicionais.

The result set is ordered by PROCEDURE_CAT, PROCEDURE_SCHEMA and PROCEDURE_NAME.

Registro de Alterações

Versão | Descrição
8.0.0 | Prior to this version, the function could only be called with either one or four arguments.

Exemplos

Exemplo #1 List stored Procedures of a Database

<?php
$conn = odbc_connect($dsn, $user, $pass);
$procedures = odbc_procedures($conn, $catalog, $schema, '%');
while (($row = odbc_fetch_array($procedures))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [PROCEDURE_CAT] => TutorialDB
    [PROCEDURE_SCHEM] => dbo
    [PROCEDURE_NAME] => GetEmployeeSalesYTD;1
    [NUM_INPUT_PARAMS] => -1
    [NUM_OUTPUT_PARAMS] => -1
    [NUM_RESULT_SETS] => -1
    [REMARKS] =>
    [PROCEDURE_TYPE] => 2
)

Veja Também

  • odbc_procedurecolumns() - Retrieve information about parameters to procedures
  • odbc_tables() - Get the list of table names stored in a specific data source


Mostra o resultado como uma tabela HTML

  • « odbc_procedures
  • odbc_result »
  • PHP Manual
  • ODBC Funções
  • Mostra o resultado como uma tabela HTML

odbc_result_all

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_result_all — Mostra o resultado como uma tabela HTML

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.1.0. O uso desta função é fortemente desencorajado.

Descrição

odbc_result_all(resource $statement, string $format = ""): int|false

Mostra todas as linhas de um resultado produzido pela odbc_exec(). O resultado é mostrado no formato de tabela HTML. Os dados não são escapados.

Esta função não deve ser usada em ambientes de produção; isso é destinado apenas para fins de desenvolvimento, para obter um conjunto de resultados renderizado rapidamente.

Parâmetros

statement

O identificador de resultado.

format

Formatação adicional de toda tabela.

Valor Retornado

Retorna o número de linhas no resultado ou false em erro.

Registro de Alterações

Versão | Descrição
8.1.0 | Esta função foi descontinuada.


Get result data

  • « odbc_result_all
  • odbc_rollback »
  • PHP Manual
  • ODBC Funções
  • Get result data

odbc_result

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_result — Get result data

Descrição

odbc_result(resource $statement, string|int $field): string|bool|null

Get result data

Parâmetros

statement

The ODBC resource.

field

The field name being retrieved. It can either be an integer containing the column number of the field you want; or it can be a string containing the name of the field.

Valor Retornado

Returns the string contents of the field, false on error, null for NULL data, or true for binary data.

Exemplos

The first call to odbc_result() returns the value of the third field in the current record of the query result. The second function call to odbc_result() returns the value of the field whose field name is "val" in the current record of the query result. An error occurs if a column number parameter for a field is less than one or exceeds the number of columns (or fields) in the current record. Similarly, an error occurs if a field with a name that is not one of the fieldnames of the table(s) that is(are) being queried.

Exemplo #1 odbc_result() examples

<?php
$item_3 = odbc_result($Query_ID, 3);
$item_val = odbc_result($Query_ID, "val");
?>

Notas

Field indices start from 1. Regarding the way binary or long column data is returned refer to odbc_binmode() and odbc_longreadlen().


Rollback a transaction

  • « odbc_result
  • odbc_setoption »
  • PHP Manual
  • ODBC Funções
  • Rollback a transaction

odbc_rollback

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_rollback — Rollback a transaction

Descrição

odbc_rollback(resource $odbc): bool

Rolls back all pending statements on the connection.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Adjust ODBC settings

  • « odbc_rollback
  • odbc_specialcolumns »
  • PHP Manual
  • ODBC Funções
  • Adjust ODBC settings

odbc_setoption

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_setoption — Adjust ODBC settings

Descrição

odbc_setoption(
resource $odbc,
int $which,
int $option,
int $value
): bool

This function allows fiddling with the ODBC options for a particular connection or query result. It was written to help find work around to problems in quirky ODBC drivers. You should probably only use this function if you are an ODBC programmer and understand the effects the various options will have. You will certainly need a good ODBC reference to explain all the different options and values that can be used. Different driver versions support different options.

Because the effects may vary depending on the ODBC driver, use of this function in scripts to be made publicly available is strongly discouraged. Also, some ODBC options are not available to this function because they must be set before the connection is established or the query is prepared. However, if on a particular job it can make PHP work so your boss doesn't tell you to use a commercial product, that's all that really matters.

Parâmetros

odbc

Is a connection id or result id on which to change the settings. For SQLSetConnectOption(), this is a connection id. For SQLSetStmtOption(), this is a result id.

which

Is the ODBC function to use. The value should be 1 for SQLSetConnectOption() and 2 for SQLSetStmtOption().

option

The option to set.

value

The value for the given option.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 odbc_setoption() examples

<?php
// 1. Option 102 of SQLSetConnectOption() is SQL_AUTOCOMMIT.
// Value 1 of SQL_AUTOCOMMIT is SQL_AUTOCOMMIT_ON.
// This example has the same effect as
// odbc_autocommit($conn, true);

odbc_setoption($conn, 1, 102, 1);

// 2. Option 0 of SQLSetStmtOption() is SQL_QUERY_TIMEOUT.
// This example sets the query to timeout after 30 seconds.

$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);
odbc_execute($result);
?>


Retrieves special columns

  • « odbc_setoption
  • odbc_statistics »
  • PHP Manual
  • ODBC Funções
  • Retrieves special columns

odbc_specialcolumns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_specialcolumns — Retrieves special columns

Descrição

odbc_specialcolumns(
resource $odbc,
int $type,
?string $catalog,
string $schema,
string $table,
int $scope,
int $nullable
): resource|false

Retrieves 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.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

type
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 column or columns in the specified table, if any, that are automatically updated by the data source when any value in the row is updated by any transaction.
catalog

O catálogo ('qualifier' na linguagem ODBC 2).

schema

O esquema ('owner' na linguagem ODBC 2).

table

The table.

scope

The scope, which orders the result set. One of SQL_SCOPE_CURROW, SQL_SCOPE_TRANSACTION or SQL_SCOPE_SESSION.

nullable

Determines whether to return special columns that can have a NULL value. One of SQL_NO_NULLS or SQL_NULLABLE.

Valor Retornado

Returns an ODBC result identifier or false on failure.

The result set has the following columns:

  • SCOPE
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • PSEUDO_COLUMN
Drivers podem listar colunas adicionais.

The result set is ordered by SCOPE.

Veja Também

  • odbc_tables() - Get the list of table names stored in a specific data source


Retrieve statistics about a table

  • « odbc_specialcolumns
  • odbc_tableprivileges »
  • PHP Manual
  • ODBC Funções
  • Retrieve statistics about a table

odbc_statistics

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_statistics — Retrieve statistics about a table

Descrição

odbc_statistics(
resource $odbc,
?string $catalog,
string $schema,
string $table,
int $unique,
int $accuracy
): resource|false

Get statistics about a table and its indexes.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

catalog

O catálogo ('qualifier' na linguagem ODBC 2).

schema

O esquema ('owner' na linguagem ODBC 2).

table

The table name.

unique

The type of the index. One of SQL_INDEX_UNIQUE or SQL_INDEX_ALL.

accuracy

One of SQL_ENSURE or SQL_QUICK. The latter requests that the driver retrieve the CARDINALITY and PAGES only if they are readily available from the server.

Valor Retornado

Returns an ODBC result identifier ou false em caso de falha.

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • NON_UNIQUE
  • INDEX_QUALIFIER
  • INDEX_NAME
  • TYPE
  • ORDINAL_POSITION
  • COLUMN_NAME
  • ASC_OR_DESC
  • CARDINALITY
  • PAGES
  • FILTER_CONDITION
Drivers podem listar colunas adicionais.

The result set is ordered by NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME and ORDINAL_POSITION.

Exemplos

Exemplo #1 List Statistics of a Table

<?php
$conn = odbc_connect($dsn, $user, $pass);
$statistics = odbc_statistics($conn, 'TutorialDB', 'dbo', 'TEST', SQL_INDEX_UNIQUE, SQL_QUICK);
while (($row = odbc_fetch_array($statistics))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [NON_UNIQUE] =>
    [INDEX_QUALIFIER] =>
    [INDEX_NAME] =>
    [TYPE] => 0
    [ORDINAL_POSITION] =>
    [COLUMN_NAME] =>
    [ASC_OR_DESC] =>
    [CARDINALITY] => 15
    [PAGES] => 3
    [FILTER_CONDITION] =>
)

Veja Também

  • odbc_tables() - Get the list of table names stored in a specific data source


Lists tables and the privileges associated with each table

  • « odbc_statistics
  • odbc_tables »
  • PHP Manual
  • ODBC Funções
  • Lists tables and the privileges associated with each table

odbc_tableprivileges

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_tableprivileges — Lists tables and the privileges associated with each table

Descrição

odbc_tableprivileges(
resource $odbc,
?string $catalog,
string $schema,
string $table
): resource|false

Lists tables in the requested range and the privileges associated with each table.

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

catalog

O catálogo ('qualifier' na linguagem ODBC 2).

schema

O esquema ('owner' na linguagem ODBC 2). Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

table

The name. Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

Valor Retornado

An ODBC result identifier ou false em caso de falha.

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE
Drivers podem listar colunas adicionais.

The result set is ordered by TABLE_CAT, TABLE_SCHEM, TABLE_NAME, PRIVILEGE and GRANTEE.

Exemplos

Exemplo #1 List Privileges of a Table

<?php
$conn = odbc_connect($dsn, $user, $pass);
$privileges = odbc_tableprivileges($conn, 'SalesOrders', 'dbo', 'Orders');
while (($row = odbc_fetch_array($privileges))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [TABLE_CAT] => SalesOrders
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => Orders
    [GRANTOR] => dbo
    [GRANTEE] => dbo
    [PRIVILEGE] => DELETE
    [IS_GRANTABLE] => YES
)

Veja Também

  • odbc_tables() - Get the list of table names stored in a specific data source


Get the list of table names stored in a specific data source

  • « odbc_tableprivileges
  • PDO »
  • PHP Manual
  • ODBC Funções
  • Get the list of table names stored in a specific data source

odbc_tables

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_tables — Get the list of table names stored in a specific data source

Descrição

odbc_tables(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $table = null,
?string $types = null
): resource|false

Lists all tables in the requested range.

To support enumeration of qualifiers, owners, and table types, the following special semantics for the catalog, schema, table, and table_type are available:

  • If catalog is a single percent character (%) and schema and table 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 schema is a single percent character (%) and catalog and table 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 catalog, schema and table 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.)

Parâmetros

odbc

O identificador da conexão ODBC. Consulte odbc_connect() para obter detalhes.

catalog

O catálogo ('qualifier' na linguagem ODBC 2).

schema

O esquema ('owner' na linguagem ODBC 2). Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

table

The name. Este parâmetro aceita os seguintes padrões de pesquisa: % para corresponder a zero ou mais caracteres e _ para corresponder a um único caractere.

types

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.

Valor Retornado

Returns an ODBC result identifier containing the information ou false em caso de falha.

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • TABLE_TYPE
  • REMARKS
Drivers podem listar colunas adicionais.

The result set is ordered by TABLE_TYPE, TABLE_CAT, TABLE_SCHEM and TABLE_NAME.

Registro de Alterações

Versão | Descrição
8.0.0 | schema, table and types are now nullable.

Exemplos

Exemplo #1 List Tables in a Catalog

<?php
$conn = odbc_connect($dsn, $user, $pass);
$tables = odbc_tables($conn, 'SalesOrders', 'dbo', '%', 'TABLE');
while (($row = odbc_fetch_array($tables))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [TABLE_CAT] => SalesOrders
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => Orders
    [TABLE_TYPE] => TABLE
    [REMARKS] =>
)

Veja Também

  • odbc_tableprivileges() - Lists tables and the privileges associated with each table
  • odbc_columns() - Lists the column names in specified tables
  • odbc_specialcolumns() - Retrieves special columns
  • odbc_statistics() - Retrieve statistics about a table
  • odbc_procedures() - Get the list of procedures stored in a specific data source


PHP Data Objects

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Conexões e gerenciamento de conexões
  • Transações e confirmação automática (auto-commit)
  • Declarações preparadas e procedimentos armazenados
  • Erros e manipulação de erros
  • Objetos Grandes (LOBs)
  • PDO — A classe PDO
    • PDO::beginTransaction — Inicia uma transação
    • PDO::commit — Envia uma transação
    • PDO::__construct — Cria uma instância PDO representando uma conexão a um banco de dados
    • PDO::errorCode — Busca o SQLSTATE associado com a última operação no identificador do banco de dados
    • PDO::errorInfo — Busca informação de erro estendida associada com a última operação no identificador do banco de dados
    • PDO::exec — Executa uma instrução SQL e retorna o número de linhas afetadas
    • PDO::getAttribute — Recuperar um atributo da conexão com o banco de dados
    • PDO::getAvailableDrivers — Retorna um array com os drivers PDO disponíveis
    • PDO::inTransaction — Verifica se está dentro de uma transação
    • PDO::lastInsertId — Retorna o ID da última linha ou valor de sequência inserido
    • PDO::prepare — Prepara uma instrução para execução e retorna um objeto de instrução
    • PDO::query — Prepara e executa uma instrução SQL sem espaços reservados
    • PDO::quote — Inclui aspas em uma string para uso em uma consulta
    • PDO::rollBack — Reverte uma transação
    • PDO::setAttribute — Define um atributo
  • PDOStatement — A classe PDOStatement
    • PDOStatement::bindColumn — Vincula uma coluna a uma variável PHP
    • PDOStatement::bindParam — Vincula um parâmetro ao nome de variável especificado
    • PDOStatement::bindValue — Binds a value to a parameter
    • PDOStatement::closeCursor — Closes the cursor, enabling the statement to be executed again
    • PDOStatement::columnCount — Returns the number of columns in the result set
    • PDOStatement::debugDumpParams — Dump an SQL prepared command
    • PDOStatement::errorCode — Fetch the SQLSTATE associated with the last operation on the statement handle
    • PDOStatement::errorInfo — Fetch extended error information associated with the last operation on the statement handle
    • PDOStatement::execute — Executes a prepared statement
    • PDOStatement::fetch — Fetches the next row from a result set
    • PDOStatement::fetchAll — Fetches the remaining rows from a result set
    • PDOStatement::fetchColumn — Returns a single column from the next row of a result set
    • PDOStatement::fetchObject — Fetches the next row and returns it as an object
    • PDOStatement::getAttribute — Retrieve a statement attribute
    • PDOStatement::getColumnMeta — Returns metadata for a column in a result set
    • PDOStatement::getIterator — Gets result set iterator
    • PDOStatement::nextRowset — Advances to the next rowset in a multi-rowset statement handle
    • PDOStatement::rowCount — Returns the number of rows affected by the last SQL statement
    • PDOStatement::setAttribute — Define um atributo na instrução
    • PDOStatement::setFetchMode — Define o modo de carga de dados para esta instrução
  • PDORow — A classe PDORow
  • PDOException — A classe PDOException
  • Drivers do PDO
    • CUBRID (PDO) — Funções CUBRID (PDO_CUBRID)
    • MS SQL Server (PDO) — Microsoft SQL Server and Sybase Functions (PDO_DBLIB)
    • Firebird (PDO) — Firebird Functions (PDO_FIREBIRD)
    • IBM (PDO) — IBM Functions (PDO_IBM)
    • Informix (PDO) — Informix Functions (PDO_INFORMIX)
    • MySQL (PDO) — Funções do MySQL (PDO_MYSQL)
    • MS SQL Server (PDO) — Microsoft SQL Server Functions (PDO_SQLSRV)
    • Oracle (PDO) — Oracle Functions (PDO_OCI)
    • ODBC and DB2 (PDO) — ODBC and DB2 Functions (PDO_ODBC)
    • PostgreSQL (PDO) — PostgreSQL Functions (PDO_PGSQL)
    • SQLite (PDO) — Funções do SQLite (PDO_SQLITE)


Introdução

A extensão PHP Data Objects (PDO) define uma interface leve e consistente para acessar bancos de dados no PHP. Cada driver de banco de dados que implementa a interface PDO pode expor recursos específicos do banco de dados como funções de extensão comuns. Observe que não é possível executar nenhuma função de banco de dados usando apenas a extensão PDO; um driver PDO de banco de dados deve ser usado para acessar o servidor de banco de dados.

O PDO fornece uma camada de abstração de acesso a dados, o que significa que, independentemente de qual banco de dados estiver sendo usado, as mesmas funções serão usadas para realizar consultas e buscar dados. O PDO não fornece uma abstração de banco de dados; ele não reescreve o SQL nem emula os recursos ausentes. Uma camada de abstração completa deve ser usada se esse recurso for necessário.

O PDO vem com o PHP.


Instalação

Instalando o PDO em sistemas Unix

  1. O PDO e o driver PDO_SQLITE estão habilitados por padrão. Pode ser preciso habilitar o driver PDO do banco de dados escolhido; consulte a documentação dos drivers PDO de bancos de dados para saber mais sobre isso.

    Nota:

    Ao compilar o PDO como uma extensão compartilhada (não recomendado), todos os drivers PDO devem ser carregados após o próprio PDO.

  2. Ao instalar o PDO como um módulo compartilhado, o arquivo php.ini precisa ser atualizado para que a extensão PDO seja carregada automaticamente quando o PHP for executado. Qualquer driver de banco de dados usado também precisará ser habilitado; certifique-se de que eles estejam listados após a linha pdo.so, pois o PDO deve ser inicializado antes que as extensões específicas do banco de dados possam ser carregadas. Se o PDO e as extensões de banco de dados foram compilados estaticamente, esta etapa pode ser ignorada.

    extension=pdo.so

Pessoas usuárias do Windows

  1. Selecione os outros arquivos DLL e use a função dl() para carregá-los em tempo de execução ou habilite-os no arquivo php.ini abaixo de php_pdo.dll. Por exemplo:

    extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_informix.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

    Essas DLLs devem existir no diretório de extensões extension_dir do sistema.

Nota:

Lembre-se que após fazer alterações no arquivo php.ini, será necessário reiniciar o PHP para que as novas diretivas de configuração entrem em vigor.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração do PDO
Nome | Padrão | Modificável | Registro de Alterações
pdo.dsn.* |  | Somente php.ini |

Aqui está uma breve explicação das diretivas de configuração.

pdo.dsn.* string

Define sinônimos DSN. Veja PDO::__construct() para uma explicação completa.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

PDO::PARAM_BOOL (int)
Representa um tipo de dado booleano.
PDO::PARAM_NULL (int)
Representa o tipo de dado SQL NULL.
PDO::PARAM_INT (int)
Representa o tipo de dados SQL INTEGER.
PDO::PARAM_STR (int)
Representa o tipo de dados SQL CHAR, VARCHAR ou outra string.
PDO::PARAM_STR_NATL (int)
Sinaliza que uma string usa o conjunto de caracteres nacional. Disponível desde o PHP 7.2.0
PDO::PARAM_STR_CHAR (int)
Sinaliza que uma string usa o conjunto de caracteres regular. Disponível desde o PHP 7.2.0
PDO::PARAM_LOB (int)
Representa o tipo de dados SQL large object.
PDO::PARAM_STMT (int)
Representa um tipo de conjunto de registros. Atualmente não suportado por nenhum driver.
PDO::PARAM_INPUT_OUTPUT (int)
Especifica que o parâmetro é um parâmetro INOUT para um procedimento armazenado. Você deve combinar esse valor com um tipo de dado explícito PDO::PARAM_*.
PDO::FETCH_DEFAULT (int)
Especifica que o modo de busca padrão deve ser usado. Disponível a partir do PHP 8.0.7.
PDO::FETCH_LAZY (int)
Especifica que o método de busca deve retornar cada linha como um objeto com nomes de propriedades que correspondem aos nomes das colunas retornadas no conjunto de resultados. PDO::FETCH_LAZY retorna um objeto PDORow que cria os nomes das propriedades do objeto conforme eles são acessados. Não válido dentro de PDOStatement::fetchAll().
PDO::FETCH_ASSOC (int)
Especifica que o método fetch deve retornar cada linha como um array indexado pelo nome da coluna conforme retornado no conjunto de resultados correspondente. Se o conjunto de resultados contiver várias colunas com o mesmo nome, PDO::FETCH_ASSOC retorna apenas um único valor por nome de coluna.
PDO::FETCH_NAMED (int)
Especifica que o método fetch deve retornar cada linha como um array indexado pelo nome da coluna conforme retornado no conjunto de resultados correspondente. Se o conjunto de resultados contiver várias colunas com o mesmo nome, PDO::FETCH_NAMED retorna um array de valores por nome.
PDO::FETCH_NUM (int)
Especifica que o método fetch deve retornar cada linha como um array indexado pelo número da coluna conforme retornado no conjunto de resultados correspondente, começando na coluna 0.
PDO::FETCH_BOTH (int)
Especifica que o método fetch deve retornar cada linha como um array indexado tanto pelo nome quanto pelo número da coluna conforme retornado no conjunto de resultados correspondente, começando na coluna 0.
PDO::FETCH_OBJ (int)
Especifica que o método fetch deve retornar cada linha como um objeto com nomes de propriedade que correspondem aos nomes das colunas retornadas no conjunto de resultados.
PDO::FETCH_BOUND (int)
Especifica que o método fetch deve retornar TRUE e atribuir os valores das colunas no conjunto de resultados às variáveis PHP às quais foram vinculadas com os métodos PDOStatement::bindParam() ou PDOStatement::bindColumn().
PDO::FETCH_COLUMN (int)
Especifica que o método fetch deve retornar apenas uma única coluna solicitada da próxima linha no conjunto de resultados.
PDO::FETCH_CLASS (int)
Especifica que o método fetch deve retornar uma nova instância da classe solicitada, mapeando as colunas para propriedades nomeadas na classe.

Nota: O método mágico __set() é chamado se a propriedade não existir na classe solicitada

PDO::FETCH_INTO (int)
Especifica que o método fetch deve atualizar uma instância existente da classe solicitada, mapeando as colunas para propriedades nomeadas na classe.
PDO::FETCH_FUNC (int)
Permite personalizar completamente a maneira como os dados são tratados sob demanda (válido apenas dentro de PDOStatement::fetchAll()).
PDO::FETCH_GROUP (int)
Agrupa o retorno por valores. Geralmente combinado com PDO::FETCH_COLUMN ou PDO::FETCH_KEY_PAIR.
PDO::FETCH_UNIQUE (int)
Busca apenas os valores únicos.
PDO::FETCH_KEY_PAIR (int)
Busca um resultado de duas colunas em um array onde a primeira coluna é uma chave e a segunda coluna é o valor.
PDO::FETCH_CLASSTYPE (int)
Determina o nome da classe a partir do valor da primeira coluna.
PDO::FETCH_SERIALIZE (int)
Como PDO::FETCH_INTO, mas o objeto é fornecido como uma string serializada. O construtor da classe nunca é chamado se este sinalizador estiver definido. Obsoleto a partir do PHP 8.1.0.
PDO::FETCH_PROPS_LATE (int)
Chama o construtor antes de definir as propriedades.
PDO::ATTR_AUTOCOMMIT (int)
Se esse valor for false, o PDO tenta desativar o autocommit para que a conexão inicie uma transação.
PDO::ATTR_PREFETCH (int)
Definir o tamanho do prefetch permite equilibrar a velocidade contra o uso de memória para sua aplicação. Nem todas as combinações de banco de dados/driver suportam a definição do tamanho do prefetch. Um tamanho de prefetch maior resulta em um aumento de desempenho com o custo de maior uso de memória.
PDO::ATTR_TIMEOUT (int)
Define o valor de tempo limite em segundos para comunicações com o banco de dados.
PDO::ATTR_ERRMODE (int)
Consulte a seção Erros e tratamento de erros para obter mais informações sobre este atributo.
PDO::ATTR_SERVER_VERSION (int)
Este é um atributo somente leitura; ele retornará informações sobre a versão do servidor de banco de dados ao qual o PDO está conectado.
PDO::ATTR_CLIENT_VERSION (int)
Este é um atributo somente leitura; ele retornará informações sobre a versão das bibliotecas de cliente que o driver PDO está usando.
PDO::ATTR_SERVER_INFO (int)
Este é um atributo somente leitura; ele retornará algumas informações meta sobre o servidor de banco de dados ao qual o PDO está conectado.
PDO::ATTR_CONNECTION_STATUS (int)
PDO::ATTR_CASE (int)
Força os nomes das colunas para um caso específico especificado pelas constantes PDO::CASE_*.
PDO::ATTR_CURSOR_NAME (int)
Obtém ou define o nome a ser usado para um cursor. Mais útil ao usar cursores roláveis e atualizações posicionadas.
PDO::ATTR_CURSOR (int)
Seleciona o tipo de cursor. O PDO atualmente suporta apenas PDO::CURSOR_FWDONLY e PDO::CURSOR_SCROLL. Mantenha PDO::CURSOR_FWDONLY a menos que saiba que precisa de um cursor rolável.
PDO::ATTR_DRIVER_NAME (int)
Retorna o nome do driver.

Exemplo #1 using PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo "Running on mysql; doing something mysql specific here\n";
}
?>

PDO::ATTR_ORACLE_NULLS (int)
Converte strings vazias em valores SQL NULL em buscas de dados.
PDO::ATTR_PERSISTENT (int)
Solicita uma conexão persistente, em vez de criar uma nova conexão. Consulte Conexões e Gerenciamento de Conexões para obter mais informações sobre este atributo.
PDO::ATTR_STATEMENT_CLASS (int)
Define o nome da classe de que as declarações são retornadas.
PDO::ATTR_FETCH_CATALOG_NAMES (int)
Adiciona o nome do catálogo contenedor a cada nome de coluna retornado no conjunto de resultados. O nome do catálogo e o nome da coluna são separados por um ponto decimal (.). O suporte deste atributo é no nível do driver; pode não ser suportado pelo seu driver.
PDO::ATTR_FETCH_TABLE_NAMES (int)
Adiciona o nome da tabela contenedora a cada nome de coluna retornado no conjunto de resultados. O nome da tabela e o nome da coluna são separados por um ponto decimal (.). O suporte deste atributo é no nível do driver; pode não ser suportado pelo seu driver.
PDO::ATTR_STRINGIFY_FETCHES (int)
Força todos os valores buscados a serem tratados como strings.
PDO::ATTR_MAX_COLUMN_LEN (int)
Define o comprimento máximo do nome da coluna.
PDO::ATTR_DEFAULT_FETCH_MODE (int)
PDO::ATTR_EMULATE_PREPARES (int)
PDO::ATTR_DEFAULT_STR_PARAM (int)
Define o tipo de parâmetro de string padrão, que pode ser um dos PDO::PARAM_STR_NATL e PDO::PARAM_STR_CHAR. Disponível desde o PHP 7.2.0.
PDO::ERRMODE_SILENT (int)
Não gera um erro ou exceção se ocorrer um erro. O desenvolvedor é esperado para verificar explicitamente os erros. Este é o modo padrão. Consulte Erros e tratamento de erros para mais informações sobre este atributo.
PDO::ERRMODE_WARNING (int)
Emite uma mensagem PHP E_WARNING se ocorrer um erro. Consulte Erros e tratamento de erros para mais informações sobre este atributo.
PDO::ERRMODE_EXCEPTION (int)
Lança uma PDOException se ocorrer um erro. Consulte Erros e tratamento de erros para mais informações sobre este atributo.
PDO::CASE_NATURAL (int)
Deixa os nomes das colunas como retornados pelo driver do banco de dados.
PDO::CASE_LOWER (int)
Força os nomes das colunas em minúsculas.
PDO::CASE_UPPER (int)
Força os nomes das colunas em maiúsculas.
PDO::NULL_NATURAL (int)
PDO::NULL_EMPTY_STRING (int)
PDO::NULL_TO_STRING (int)
PDO::FETCH_ORI_NEXT (int)
Busca a próxima linha no conjunto de resultados. Válido apenas para cursores roláveis.
PDO::FETCH_ORI_PRIOR (int)
Busca a linha anterior no conjunto de resultados. Válido apenas para cursores roláveis.
PDO::FETCH_ORI_FIRST (int)
Busca a primeira linha no conjunto de resultados. Válido apenas para cursores roláveis.
PDO::FETCH_ORI_LAST (int)
Busca a última linha no conjunto de resultados. Válido apenas para cursores roláveis.
PDO::FETCH_ORI_ABS (int)
Busca a linha solicitada pelo número da linha do conjunto de resultados. Válido apenas para cursores roláveis.
PDO::FETCH_ORI_REL (int)
Fetch the requested row by relative position from the current position of the cursor in the result set. Valid only for scrollable cursors.
PDO::CURSOR_FWDONLY (int)
Cria um objeto PDOStatement com um cursor somente para frente. Esta é a escolha de cursor padrão, pois é o padrão mais rápido e comum de acesso a dados em PHP.
PDO::CURSOR_SCROLL (int)
Cria um objeto PDOStatement com um cursor rolável. Passe as constantes PDO::FETCH_ORI_* para controlar as linhas buscadas do conjunto de resultados.
PDO::ERR_NONE (string)
Corresponde a SQLSTATE '00000', significando que a instrução SQL foi emitida com sucesso sem erros ou avisos. Esta constante é para sua conveniência ao verificar PDO::errorCode() ou PDOStatement::errorCode() para determinar se ocorreu um erro. Você geralmente saberá se este for o caso examinando o código de retorno do método que gerou a condição de erro de qualquer maneira.
PDO::PARAM_EVT_ALLOC (int)
Evento de alocação
PDO::PARAM_EVT_FREE (int)
Evento de desalocação
PDO::PARAM_EVT_EXEC_PRE (int)
Evento acionado antes da execução de uma instrução preparada.
PDO::PARAM_EVT_EXEC_POST (int)
Evento acionado após a execução de uma instrução preparada.
PDO::PARAM_EVT_FETCH_PRE (int)
Evento acionado antes de buscar um resultado de um conjunto de resultados.
PDO::PARAM_EVT_FETCH_POST (int)
Evento acionado após buscar um resultado de um conjunto de resultados.
PDO::PARAM_EVT_NORMALIZE (int)
Evento acionado durante o registro de parâmetro vinculado, permitindo ao driver normalizar o nome do parâmetro.
PDO::SQLITE_DETERMINISTIC (int)
Especifica que uma função criada com PDO::sqliteCreateFunction() é determinística, ou seja, ela sempre retorna o mesmo resultado dados os mesmos inputs dentro de uma única instrução SQL. (Disponível a partir do PHP 7.1.4.)


Conexões e gerenciamento de conexões

As conexões são estabelecidas criando instâncias da classe base PDO. Não importa qual driver você deseja usar; você sempre usa o nome da classe PDO. O construtor aceita parâmetros para especificar a fonte do banco de dados (conhecida como DSN) e opcionalmente para o nome de usuário e senha (se houver).

Exemplo #1 Conectando-se ao MySQL

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

Se houver algum erro de conexão, um objeto PDOException será lançado. Você pode capturar a exceção se quiser lidar com a condição de erro, ou pode optar por deixá-la para um manipulador de exceção global do aplicativo que você configurou via set_exception_handler().

Exemplo #2 Tratando erros de conexão

<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
} catch (PDOException $e) {
// tentar reconectar após algum intervalo, por exemplo
}

Aviso

Assim como qualquer outra exceção, PDOException pode ser capturada explicitamente, via uma instrução catch, ou implicitamente através de set_exception_handler(). Caso contrário, o comportamento padrão de converter uma exceção não capturada em um E_FATAL_ERROR ocorrerá. O erro fatal conterá uma rastreabilidade que pode vazar detalhes da conexão. Portanto, a opção php.ini display_errors deve ser definida como 0 em um servidor de produção.

Após a conexão bem-sucedida com o banco de dados, uma instância da classe PDO é retornada para seu script. A conexão permanece ativa pelo tempo de vida desse objeto PDO. Para fechar a conexão, você precisa destruir o objeto garantindo que todas as referências restantes a ele sejam deletadas - você faz isso atribuindo null à variável que mantém o objeto. Se você não fizer isso explicitamente, o PHP fechará automaticamente a conexão quando seu script terminar.

Nota: Se ainda houver outras referências a esta instância PDO (como de uma instância PDOStatement, ou de outras variáveis referenciando a mesma instância PDO), estas também devem ser removidas (por exemplo, atribuindo null à variável que referencia a instância PDOStatement).

Exemplo #3 Fechando uma conexão

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// use a conexão aqui
$sth = $dbh->query('SELECT * FROM foo');

// e agora terminamos; feche-a
$sth = null;
$dbh = null;
?>

Muitas aplicações web se beneficiarão com a realização de conexões persistentes com servidores de banco de dados. As conexões persistentes não são fechadas no final do script, mas são armazenadas em cache e reutilizadas quando outro script solicita uma conexão usando as mesmas credenciais. O cache de conexão persistente permite evitar a sobrecarga de estabelecer uma nova conexão toda vez que um script precisa se comunicar com um banco de dados, resultando em uma aplicação web mais rápida.

Exemplo #4 Conexões persistentes

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
PDO::ATTR_PERSISTENT => true
));
?>

O valor da opção PDO::ATTR_PERSISTENT é convertido para bool (ativar/desativar conexões persistentes), a menos que seja uma string não numérica, caso em que permite usar vários pools de conexões persistentes. Isso é útil se diferentes conexões usam configurações incompatíveis, por exemplo, valores diferentes de PDO::MYSQL_ATTR_USE_BUFFERED_QUERY.

Nota:

Se desejar usar conexões persistentes, você deve definir PDO::ATTR_PERSISTENT no array de opções do driver passadas para o construtor PDO. Se definir este atributo com PDO::setAttribute() após a instanciação do objeto, o driver não usará conexões persistentes.

Nota:

Se estiver usando o driver PDO ODBC e suas bibliotecas ODBC suportarem Pool de Conexões ODBC (unixODBC e Windows são duas que suportam; pode haver mais), então é recomendável que você não use conexões PDO persistentes e, em vez disso, deixe o cache de conexão para a camada de Pool de Conexões ODBC. O Pool de Conexões ODBC é compartilhado com outros módulos no processo; se o PDO for instruído a armazenar em cache a conexão, então essa conexão nunca seria retornada ao pool de conexões ODBC, resultando em conexões adicionais sendo criadas para atender a esses outros módulos.


Transações e confirmação automática (auto-commit)

Agora que você está conectado via PDO, é necessário entender como o PDO gerencia transações antes de começar a emitir consultas. Se você nunca encontrou transações antes, elas oferecem 4 recursos principais: Atomicidade, Consistência, Isolamento e Durabilidade (ACID). Em termos simples, qualquer trabalho realizado em uma transação, mesmo que seja feito em etapas, é garantido de ser aplicado ao banco de dados com segurança e sem interferência de outras conexões, quando é confirmado. O trabalho transacional também pode ser desfeito automaticamente a seu pedido (desde que você ainda não tenha confirmado), o que facilita o tratamento de erros em seus scripts.

As transações são tipicamente implementadas "salvando" seu lote de alterações para serem aplicadas de uma vez; isso tem o efeito colateral agradável de melhorar drasticamente a eficiência dessas atualizações. Em outras palavras, transações podem tornar seus scripts mais rápidos e potencialmente mais robustos (ainda é necessário usá-los corretamente para obter esse benefício).

Infelizmente, nem todos os bancos de dados suportam transações, então o PDO precisa rodar no que é conhecido como modo "auto-commit" quando você abre a conexão pela primeira vez. O modo auto-commit significa que cada consulta que você executa tem sua própria transação implícita, se o banco de dados suportar, ou nenhuma transação se o banco de dados não suportar transações. Se você precisar de uma transação, você deve usar o método PDO::beginTransaction() para iniciá-la. Se o driver subjacente não suportar transações, uma PDOException será lançada (independentemente das suas configurações de tratamento de erro: essa é sempre uma condição de erro grave). Uma vez que você está em uma transação, você pode usar PDO::commit() ou PDO::rollBack() para finalizá-la, dependendo do sucesso do código que você executou durante a transação.

Aviso

O PDO verifica apenas as capacidades de transação no nível do driver. Se certas condições de tempo de execução significarem que transações estão indisponíveis, PDO::beginTransaction() ainda retornará true sem erro se o servidor de banco de dados aceitar a solicitação para iniciar uma transação.

Um exemplo disso seria tentar usar transações em tabelas MyISAM em um banco de dados MySQL.

Quando o script termina ou quando uma conexão está prestes a ser fechada, se você tiver uma transação pendente, o PDO automaticamente a reverterá. Esta é uma medida de segurança para ajudar a evitar inconsistências nos casos em que o script termina inesperadamente--se você não confirmou explicitamente a transação, então é assumido que algo deu errado, então o rollback é executado para a segurança de seus dados.

Aviso

O rollback automático só acontece se você iniciar a transação via PDO::beginTransaction(). Se você emitir manualmente uma consulta que inicia uma transação, o PDO não tem como saber sobre isso e assim não pode revertê-la se algo ruim acontecer.

Exemplo #1 Executando um lote em uma transação

No exemplo a seguir, vamos assumir que estamos criando um conjunto de entradas para um novo funcionário, que recebeu um número de ID 23. Além de inserir os dados básicos para essa pessoa, também precisamos registrar seu salário. É bastante simples fazer duas atualizações separadas, mas ao envolvê-las nas chamadas PDO::beginTransaction() e PDO::commit(), estamos garantindo que ninguém mais poderá ver essas alterações até que elas estejam completas. Se algo der errado, o bloco catch reverte todas as alterações feitas desde que a transação foi iniciada e, em seguida, imprime uma mensagem de erro.

<?php
try {
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO::ATTR_PERSISTENT => true));
echo "Connected\n";
} catch (Exception $e) {
die("Unable to connect: " . $e->getMessage());
}

try {
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$dbh->beginTransaction();
$dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
$dbh->exec("insert into salarychange (id, amount, changedate)
values (23, 50000, NOW())");
$dbh->commit();

} catch (Exception $e) {
$dbh->rollBack();
echo "Failed: " . $e->getMessage();
}
?>

Você não está limitado a fazer atualizações em uma transação; você também pode emitir consultas complexas para extrair dados e possivelmente usar essas informações para construir mais atualizações e consultas; enquanto a transação estiver ativa, você tem a garantia de que ninguém mais pode fazer alterações enquanto você está no meio do seu trabalho. Para ler mais sobre transações, consulte a documentação fornecida pelo seu servidor de banco de dados.


Declarações preparadas e procedimentos armazenados

Muitos dos bancos de dados mais maduros suportam o conceito de declarações preparadas. O que são elas? Elas podem ser consideradas como uma espécie de modelo compilado para o SQL que uma aplicação deseja executar, que pode ser personalizado usando parâmetros variáveis. As declarações preparadas oferecem dois benefícios principais:

  • A consulta só precisa ser analisada (ou preparada) uma vez, mas pode ser executada várias vezes com os mesmos ou diferentes parâmetros. Quando a consulta é preparada, o banco de dados irá analisar, compilar e otimizar seu plano para executar a consulta. Para consultas complexas, esse processo pode levar tempo suficiente para diminuir perceptivelmente o desempenho de uma aplicação se houver necessidade de repetir a mesma consulta muitas vezes com diferentes parâmetros. Ao usar uma declaração preparada, a aplicação evita repetir o ciclo de análise/compilação/otimização. Isso significa que declarações preparadas usam menos recursos e, portanto, são mais rápidas.
  • Os parâmetros das declarações preparadas não precisam ser citados; o driver lida automaticamente com isso. Se uma aplicação usar exclusivamente declarações preparadas, o desenvolvedor pode ter certeza de que nenhuma injeção de SQL ocorrerá (no entanto, se outras partes da consulta estiverem sendo construídas com entrada não escapada, a injeção de SQL ainda é possível).

As declarações preparadas são tão úteis que são a única funcionalidade que o PDO emula para drivers que não as suportam. Isso garante que uma aplicação poderá usar o mesmo paradigma de acesso a dados, independentemente das capacidades do banco de dados.

Exemplo #1 Inserções repetidas usando declarações preparadas

Este exemplo executa uma consulta INSERT substituindo um name e um value pelos marcadores de posição nomeados.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insere uma linha
$name = 'one';
$value = 1;
$stmt->execute();

// insere outra linha com valores diferentes
$name = 'two';
$value = 2;
$stmt->execute();
?>

Exemplo #2 Inserções repetidas usando declarações preparadas

Este exemplo executa uma consulta INSERT substituindo um name e um value pelos marcadores de posição posicionais ?.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// insere uma linha
$name = 'one';
$value = 1;
$stmt->execute();

// insere outra linha com valores diferentes
$name = 'two';
$value = 2;
$stmt->execute();
?>

Exemplo #3 Buscando dados usando declarações preparadas

Este exemplo busca dados com base em um valor de chave fornecido por um formulário. A entrada do usuário é automaticamente citada, portanto, não há risco de um ataque de injeção de SQL.

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
$stmt->execute([$_GET['name']]);
foreach ($stmt as $row) {
print_r($row);
}
?>

Exemplo #4 Chamando um procedimento armazenado com um parâmetro de saída

Se o driver do banco de dados suportar, uma aplicação também pode vincular parâmetros de saída além de entrada. Os parâmetros de saída são normalmente usados para recuperar valores de procedimentos armazenados. Os parâmetros de saída são um pouco mais complexos de usar do que os parâmetros de entrada, pois um desenvolvedor deve saber o quão grande um determinado parâmetro pode ser quando o vincula. Se o valor for maior do que o tamanho sugerido, um erro será gerado.

<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);

// chamar o procedimento armazenado
$stmt->execute();

print "procedure returned $return_value\n";
?>

Exemplo #5 Chamando um procedimento armazenado com um parâmetro de entrada/saída

Os desenvolvedores também podem especificar parâmetros que contêm valores tanto de entrada quanto de saída; a sintaxe é semelhante aos parâmetros de saída. No próximo exemplo, a string 'hello' é passada para o procedimento armazenado e, quando ele retorna, hello é substituído pelo valor de retorno do procedimento.

<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'hello';
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);

// chamar o procedimento armazenado
$stmt->execute();

print "procedure returned $value\n";
?>

Exemplo #6 Uso inválido de marcador de posição

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE '%?%'");
$stmt->execute([$_GET['name']]);

// o marcador de posição deve ser usado no lugar do valor inteiro
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->execute(["%$_GET[name]%"]);
?>


Erros e manipulação de erros

O PDO oferece a você a escolha entre 3 estratégias diferentes de manipulação de erros, para se adequar ao seu estilo de desenvolvimento de aplicativos.

  • PDO::ERRMODE_SILENT

    Antes do PHP 8.0.0, este era o modo padrão. O PDO simplesmente define o código de erro para você para inspecionar usando os métodos PDO::errorCode() e PDO::errorInfo() tanto nos objetos de instrução quanto no banco de dados; se o erro resultasse de uma chamada em um objeto de instrução, você invocaria o método PDOStatement::errorCode() ou PDOStatement::errorInfo() nesse objeto. Se o erro resultasse de uma chamada no objeto de banco de dados, você invocaria esses métodos no objeto de banco de dados em vez disso.

  • PDO::ERRMODE_WARNING

    Além de definir o código de erro, o PDO emitirá uma mensagem de E_WARNING tradicional. Esta configuração é útil durante a depuração/teste, se você apenas quiser ver quais problemas ocorreram sem interromper o fluxo do aplicativo.

  • PDO::ERRMODE_EXCEPTION

    A partir do PHP 8.0.0, este é o modo padrão. Além de definir o código de erro, o PDO lançará um PDOException e definirá suas propriedades para refletir o código de erro e o informações de erro. Esta configuração também é útil durante a depuração, pois irá efetivamente "explodir" o script no ponto do erro, muito rapidamente apontando um dedo para áreas problemáticas potenciais em seu código (lembre-se: as transações são automaticamente revertidas se a exceção faz com que o script termine).

    O modo de exceção também é útil porque você pode estruturar sua manipulação de erros de forma mais clara do que com avisos no estilo tradicional do PHP e com menos código/aninhamento do que em modo silencioso e explicitamente verificando o valor de retorno de cada chamada de banco de dados.

    Veja Exceções para mais informações sobre Exceções em PHP.

O PDO padroniza o uso de strings de código de erro SQLSTATE SQL-92; individualmente Os drivers do PDO são responsáveis por mapear seus códigos nativos para os códigos SQLSTATE apropriados. O método PDO::errorCode() retorna um único código SQLSTATE. Se você precisar de informações mais específicas sobre um erro, o PDO também oferece um método PDO::errorInfo() que retorna uma matriz contendo o código SQLSTATE, o código de erro específico do driver e o driver string de erro específico.

Exemplo #1 Criar uma instância do PDO e definir o modo de erro

<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Isso fará com que o PDO lance uma PDOException (quando a tabela não existe)
$dbh->query("SELECT wrongcolumn FROM wrongtable");

O exemplo acima produzirá:

Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'testdb.wrongtable' doesn't exist in /tmp/pdo_test.php:10
Stack trace:
#0 /tmp/pdo_test.php(10): PDO->query('SELECT wrongcol...')
#1 {main}
  thrown in /tmp/pdo_test.php on line 10

Nota:

PDO::__construct() sempre lançará uma PDOException se a conexão falhar independentemente de qual PDO::ATTR_ERRMODE estiver atualmente definido.

Exemplo #2 Criar uma instância do PDO e definir o modo de erro a partir do construtor

<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';

$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));

// Isso fará com que o PDO lance um erro de nível E_WARNING em vez de uma exceção (quando a tabela não existe)
$dbh->query("SELECT wrongcolumn FROM wrongtable");

O exemplo acima produzirá:

Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.wrongtable' doesn't exist in
/tmp/pdo_test.php on line 9


Objetos Grandes (LOBs)

Em algum momento de sua aplicação, você pode perceber que precisa armazenar dados "grandes" em seu banco de dados. Grande geralmente significa "cerca de 4kb ou mais", embora alguns bancos de dados possam lidar facilmente com até 32kb antes que os dados se tornem "grandes". Objetos grandes podem ser de natureza textual ou binária. O PDO permite que você trabalhe com esse tipo de dado grande usando o código de tipo PDO::PARAM_LOB em suas chamadas de PDOStatement::bindParam() ou PDOStatement::bindColumn(). PDO::PARAM_LOB diz ao PDO para mapear os dados como um stream, para que você possa manipulá-los usando o API de Streams do PHP.

Exemplo #1 Exibindo uma imagem de um banco de dados

Este exemplo vincula o LOB à variável chamada $lob e depois o envia para o navegador usando fpassthru(). Como o LOB é representado como um stream, funções como fgets(), fread() e stream_get_contents() podem ser usadas nele.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

header("Content-Type: $type");
fpassthru($lob);
?>

Exemplo #2 Inserindo uma imagem em um banco de dados

Este exemplo abre um arquivo e passa o identificador do arquivo para o PDO para inserir como um LOB. O PDO fará o melhor possível para obter o conteúdo do arquivo até o banco de dados da maneira mais eficiente possível.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = get_new_id(); // some function to allocate a new ID

// suponha que estamos executando como parte de um formulário de upload de arquivo
// Você pode encontrar mais informações na documentação do PHP

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>

Exemplo #3 Inserindo uma imagem em um banco de dados: Oracle

O Oracle requer uma sintaxe ligeiramente diferente para inserir um lob de um arquivo. Também é essencial que você execute a inserção sob um transação, caso contrário, seu LOB recém-inserido será comprometido com um comprimento zero como parte do commit implícito que ocorre quando a consulta é executada:

<?php
$db = new PDO('oci:', 'scott', 'tiger');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) " .
"VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");
$id = get_new_id(); // some function to allocate a new ID

// suponha que estamos executando como parte de um formulário de upload de arquivo
// Você pode encontrar mais informações na documentação do PHP

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>


A classe PDO

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

Introdução

Representa uma conexão entre o PHP e um servidor de banco de dados.

Resumo da classe

class PDO {
/* Constantes */
public const int PARAM_NULL;
public const int PARAM_BOOL = 5;
public const int PARAM_INT = 1;
public const int PARAM_STR = 2;
public const int PARAM_LOB = 3;
public const int PARAM_STMT = 4;
public const int PARAM_INPUT_OUTPUT;
public const int PARAM_STR_NATL;
public const int PARAM_STR_CHAR;
public const int PARAM_EVT_ALLOC;
public const int PARAM_EVT_FREE;
public const int PARAM_EVT_EXEC_PRE;
public const int PARAM_EVT_EXEC_POST;
public const int PARAM_EVT_FETCH_PRE;
public const int PARAM_EVT_FETCH_POST;
public const int PARAM_EVT_NORMALIZE;
public const int FETCH_DEFAULT;
public const int FETCH_LAZY;
public const int FETCH_ASSOC;
public const int FETCH_NUM;
public const int FETCH_BOTH;
public const int FETCH_OBJ;
public const int FETCH_BOUND;
public const int FETCH_COLUMN;
public const int FETCH_CLASS;
public const int FETCH_INTO;
public const int FETCH_FUNC;
public const int FETCH_GROUP;
public const int FETCH_UNIQUE;
public const int FETCH_KEY_PAIR;
public const int FETCH_CLASSTYPE;
public const int FETCH_SERIALIZE;
public const int FETCH_PROPS_LATE;
public const int FETCH_NAMED;
public const int ATTR_AUTOCOMMIT;
public const int ATTR_PREFETCH;
public const int ATTR_TIMEOUT;
public const int ATTR_ERRMODE;
public const int ATTR_SERVER_VERSION;
public const int ATTR_CLIENT_VERSION;
public const int ATTR_SERVER_INFO;
public const int ATTR_CONNECTION_STATUS;
public const int ATTR_CASE;
public const int ATTR_CURSOR_NAME;
public const int ATTR_CURSOR;
public const int ATTR_ORACLE_NULLS;
public const int ATTR_PERSISTENT;
public const int ATTR_STATEMENT_CLASS;
public const int ATTR_FETCH_TABLE_NAMES;
public const int ATTR_FETCH_CATALOG_NAMES;
public const int ATTR_DRIVER_NAME;
public const int ATTR_STRINGIFY_FETCHES;
public const int ATTR_MAX_COLUMN_LEN;
public const int ATTR_EMULATE_PREPARES;
public const int ATTR_DEFAULT_FETCH_MODE;
public const int ATTR_DEFAULT_STR_PARAM;
public const int ERRMODE_SILENT;
public const int ERRMODE_WARNING;
public const int ERRMODE_EXCEPTION;
public const int CASE_NATURAL;
public const int CASE_LOWER;
public const int CASE_UPPER;
public const int NULL_NATURAL;
public const int NULL_EMPTY_STRING;
public const int NULL_TO_STRING;
public const string ERR_NONE;
public const int FETCH_ORI_NEXT;
public const int FETCH_ORI_PRIOR;
public const int FETCH_ORI_FIRST;
public const int FETCH_ORI_LAST;
public const int FETCH_ORI_ABS;
public const int FETCH_ORI_REL;
public const int CURSOR_FWDONLY;
public const int CURSOR_SCROLL;
/* Métodos */
public __construct(
string $dsn,
?string $username = null,
?string $password = null,
?array $options = null
)
public beginTransaction(): bool
public commit(): bool
public errorCode(): ?string
public errorInfo(): array
public exec(string $statement): int|false
public getAttribute(int $attribute): mixed
public static getAvailableDrivers(): array
public inTransaction(): bool
public lastInsertId(?string $name = null): string|false
public prepare(string $query, array $options = []): PDOStatement|false
public query(string $query, ?int $fetchMode = null): PDOStatement|false
public query(string $query, ?int $fetchMode = PDO::FETCH_COLUMN, int $colno): PDOStatement|false
public query(
string $query,
?int $fetchMode = PDO::FETCH_CLASS,
string $classname,
array $constructorArgs
): PDOStatement|false
public query(string $query, ?int $fetchMode = PDO::FETCH_INTO, object $object): PDOStatement|false
public quote(string $string, int $type = PDO::PARAM_STR): string|false
public rollBack(): bool
public setAttribute(int $attribute, mixed $value): bool
}

Índice

  • PDO::beginTransaction — Inicia uma transação
  • PDO::commit — Envia uma transação
  • PDO::__construct — Cria uma instância PDO representando uma conexão a um banco de dados
  • PDO::errorCode — Busca o SQLSTATE associado com a última operação no identificador do banco de dados
  • PDO::errorInfo — Busca informação de erro estendida associada com a última operação no identificador do banco de dados
  • PDO::exec — Executa uma instrução SQL e retorna o número de linhas afetadas
  • PDO::getAttribute — Recuperar um atributo da conexão com o banco de dados
  • PDO::getAvailableDrivers — Retorna um array com os drivers PDO disponíveis
  • PDO::inTransaction — Verifica se está dentro de uma transação
  • PDO::lastInsertId — Retorna o ID da última linha ou valor de sequência inserido
  • PDO::prepare — Prepara uma instrução para execução e retorna um objeto de instrução
  • PDO::query — Prepara e executa uma instrução SQL sem espaços reservados
  • PDO::quote — Inclui aspas em uma string para uso em uma consulta
  • PDO::rollBack — Reverte uma transação
  • PDO::setAttribute — Define um atributo


Inicia uma transação

  • « PDO
  • PDO::commit »
  • PHP Manual
  • PDO
  • Inicia uma transação

PDO::beginTransaction

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::beginTransaction — Inicia uma transação

Descrição

public PDO::beginTransaction(): bool

Desativa o modo de envio automático. Enquanto o modo de envio automático estiver desativado, modificações feitas no banco de dados por meio da instância do objeto PDO não serão enviadas até que você finalize a transação chamando PDO::commit(). Chamar PDO::rollBack() reverterá todas as alterações no banco de dados e retornará a conexão para o modo de envio automático.

Alguns bancos de dados, incluindo o MySQL, emitem automaticamente um COMMIT implícito quando uma instrução de linguagem de definição de banco de dados (DDL) como DROP TABLE ou CREATE TABLE é emitida em uma transação. O COMMIT implícito impedirá que você reverta quaisquer outras alterações dentro do limite da transação.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Lança uma PDOException se já houver uma transação iniciada ou se o driver não suportar transações.

Nota: Uma exceção será lançada mesmo quando o atributo PDO::ATTR_ERRMODE não for PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Reverter uma transação

O exemplo a seguir inicia uma transação e emite duas instruções que modificam o banco de dados antes de reverter as alterações. No MySQL, no entanto, a instrução DROP TABLE envia automaticamente a transação de modo que nenhuma das alterações na transação é revertida.

<?php
/* Inicia uma transação, desligando o envio automático */
$dbh->beginTransaction();

/* Altera esquema e dados do banco */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'");

/* Reconhece o engano e desfaz o envio das alterações */
$dbh->rollBack();

/* A conexão do banco agora está de volta o modo de envio automático */
?>

Veja Também

  • PDO::commit() - Envia uma transação
  • PDO::rollBack() - Reverte uma transação
  • Transações e envio automático


Envia uma transação

  • « PDO::beginTransaction
  • PDO::__construct »
  • PHP Manual
  • PDO
  • Envia uma transação

PDO::commit

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::commit — Envia uma transação

Descrição

public PDO::commit(): bool

Envia uma transação, retornando a conexão com o banco de dados para o modo de envio automático até que a próxima chamada a PDO::beginTransaction() inicie uma nova transação.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Lança uma PDOException se não houver transação ativa.

Nota: Uma exceção será lançada mesmo quando o atributo PDO::ATTR_ERRMODE não for PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Enviando uma transação básica

<?php
/* Inicia uma transação, desligando o envio automático */
$dbh->beginTransaction();

/* Insere múltiplos registros na base do tudo-ou-nada */
$sql = 'INSERT INTO fruit
(name, colour, calories)
VALUES (?, ?, ?)';

$sth = $dbh->prepare($sql);

foreach ($fruits as $fruit) {
$sth->execute(array(
$fruit->name,
$fruit->colour,
$fruit->calories,
));
}

/* Envia as alterações */
$dbh->commit();

/* A conexão do banco agora está de volta o modo de envio automático */
?>

Exemplo #2 Enviando uma transação DDL

<?php
/* Inicia uma transação, desligando o envio automático */
$dbh->beginTransaction();

/* Altera esquema do banco */
$sth = $dbh->exec("DROP TABLE fruit");

/* Envia as alterações */
$dbh->commit();

/* A conexão do banco agora está de volta o modo de envio automático */
?>

Nota: Nem todos os bancos de dados permitirão que as transações operem em instruções DDL: alguns gerarão erros, enquanto outros (incluindo o MySQL) enviarão automaticamente a transação após a primeira instrução DDL ter sido encontrada.

Veja Também

  • PDO::beginTransaction() - Inicia uma transação
  • PDO::rollBack() - Reverte uma transação
  • Transações e envio automático


Cria uma instância PDO representando uma conexão a um banco de dados

  • « PDO::commit
  • PDO::errorCode »
  • PHP Manual
  • PDO
  • Cria uma instância PDO representando uma conexão a um banco de dados

PDO::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::__construct — Cria uma instância PDO representando uma conexão a um banco de dados

Descrição

public PDO::__construct(
string $dsn,
?string $username = null,
?string $password = null,
?array $options = null
)

Cria uma instância PDO para representar uma conexão ao banco de dados requisitado.

Parâmetros

dsn

O nome da fonte de dados, ou DSN, que contém a informação requerida para conexão ao banco de dados.

Em geral, um DSN consiste no nome do driver PDO, seguido por dois-pontos, seguido pela sintaxe de conexão específica do driver PDO. Maiores informações estão disponíveis na documentação específica do driver PDO.

O parâmetro dsn suporta três métodos diferentes para especificar os argumentos requeridos para criação de uma conexão de banco de dados:

Invocação do driver

dsn contém o DSN completo.

Invocação de URI

dsn consiste em uri: seguido por uma URI que define a localização de um arquivo contendo a string DSN. A URI pode especificar um arquivo local ou uma URL remota.

uri:file:///caminho/para/arquivodsn

Criação de apelido

dsn consiste em um nome (name) que é mapeado para pdo.dsn.name no php.ini definindo a string DSN.

Nota:

O apelido deve ser definido no php.ini, e não no .htaccess ou no httpd.conf

username

O nome de usuário para a string DSN. Este parâmetro é opcional para alguns drivers PDO.

password

A senha para a srting DSN. Este parâmetro é opcional para alguns drivers PDO.

options

Um array de chave=>valor de opções de conexão específicas do driver.

Erros/Exceções

PDO::__construct() lança uma exceção PDOException se a tentativa de conexão ao banco de dados requisitado falhar, independente de qual PDO::ATTR_ERRMODE estiver definido.

Exemplos

Exemplo #1 Cria uma instância PDO através de invocação de driver

<?php

$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);

?>

Exemplo #2 Cria uma instância PDO através de invocação de URI

O exemplo a seguir assume que o arquivo /usr/local/dbconnect existe com permissões de leitura pelo PHP. O arquivo contém o DSN PDO para conexão a um banco de dados DB2 através do driver PDO_ODBC:

odbc:DSN=SAMPLE;UID=john;PWD=mypass

O script PHP pode então criar uma conexão ao banco de dados simplesmente passando o parâmetro uri: e apontando para a URI do arquivo:

<?php

$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

$dbh = new PDO($dsn, $user, $password);

?>

Exemplo #3 Cria uma instância PDO usando um apelido

O exemplo a seguir assume que o php.ini contém a seguinte entrada para habilitar uma conexão ao banco de dados MySQL usando somente o apelido mydb:

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php

$dsn = 'mydb';
$user = '';
$password = '';

$dbh = new PDO($dsn, $user, $password);

?>


Busca o SQLSTATE associado com a última operação no identificador do banco de dados

  • « PDO::__construct
  • PDO::errorInfo »
  • PHP Manual
  • PDO
  • Busca o SQLSTATE associado com a última operação no identificador do banco de dados

PDO::errorCode

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::errorCode — Busca o SQLSTATE associado com a última operação no identificador do banco de dados

Descrição

public PDO::errorCode(): ?string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um SQLSTATE, um identificador alfanumérico de cinco caracteres definido no padrão ANSI SQL-92. Resumidamente, um SQLSTATE consiste em um valor de classe de dois caracteres seguido por um valor de subclasse de três caracteres. Um valor de classe de '01' indica um alerta e é acompanhado por um código de retorno de SQL_SUCCESS_WITH_INFO. Valores de classe diferentes de '01', exceto pela classe 'IM', indicam um erro. A classe 'IM' é específica para alertas e erros que derivam da implementação do próprio PDO (ou talvez do ODBC, se estiver em uso). O valor de subclasse '000' em qualquer classe indica que não há subclasse para aquele SQLSTATE.

PDO::errorCode() somente busca códigos de erro para operações realizadas diretamente no identificador do banco de dados. Se for criado um objeto PDOStatement através de PDO::prepare() ou PDO::query() e for invocado um erro no identificador da instrução, PDO::errorCode() não refletirá esse erro. Deve-se chamar PDOStatement::errorCode() para retornar o código de erro para uma operação realizada em um identificador de instrução em particular.

Retorna null se nenhuma operação foi executada no identificador do banco de dados.

Exemplos

Exemplo #1 Buscando um código SQLSTATE

<?php
/* Provoca um erro -- a tabela OSSOS não existe */
$dbh->exec("INSERT INTO ossos(cranio) VALUES ('lucy')");

echo "\nPDO::errorCode(): ", $dbh->errorCode();
?>

O exemplo acima produzirá:

PDO::errorCode(): 42S02

Veja Também

  • PDO::errorInfo() - Busca informação de erro estendida associada com a última operação no identificador do banco de dados
  • PDOStatement::errorCode() - Fetch the SQLSTATE associated with the last operation on the statement handle
  • PDOStatement::errorInfo() - Fetch extended error information associated with the last operation on the statement handle


Busca informação de erro estendida associada com a última operação no identificador do banco de dados

  • « PDO::errorCode
  • PDO::exec »
  • PHP Manual
  • PDO
  • Busca informação de erro estendida associada com a última operação no identificador do banco de dados

PDO::errorInfo

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::errorInfo — Busca informação de erro estendida associada com a última operação no identificador do banco de dados

Descrição

public PDO::errorInfo(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

PDO::errorInfo() retorna um array de informações de erro sobre a última operação realizada por este identificador de banco de dados. O array consiste em pelo menos os campos a seguir:

Elemento | Informação
0 | Código de erro SQLSTATE (um identificador alfanumérico de cinco caracteres definido no padrão ANSI SQL).
1 | Código de erro específico do driver.
2 | Mensagem de erro específica do driver.

Nota:

Se o código de erro SQLSTATE não estiver definido ou se não houver erro específico do driver, os elementos após o elemento 0 serão definidos para null.

PDO::errorInfo() somente busca informação de erro para operações realizadas diretamente no identificador do banco de dados. Se for criado um objeto PDOStatement através de PDO::prepare() ou PDO::query() e for invocado um erro no identificador da instrução, PDO::errorInfo() não refletirá o erro do identificador da instrução. Deve-se chamar PDOStatement::errorInfo() para retornar a informação de erro para uma operação realizada em um identificador de instrução em particular.

Exemplos

Exemplo #1 Mostrando campos de errorInfo() para uma conexão PDO_ODBC a um banco de dados DB2

<?php
/* Provoca um erro -- sintaxe SQL incorreta */
$stmt = $dbh->prepare('bogus sql');
if (!$stmt) {
echo "\nPDO::errorInfo():\n";
print_r($dbh->errorInfo());
}
?>

O exemplo acima produzirá:

PDO::errorInfo():
Array
(
    [0] => HY000
    [1] => 1
    [2] => near "bogus": syntax error
)

Veja Também

  • PDO::errorCode() - Busca o SQLSTATE associado com a última operação no identificador do banco de dados
  • PDOStatement::errorCode() - Fetch the SQLSTATE associated with the last operation on the statement handle
  • PDOStatement::errorInfo() - Fetch extended error information associated with the last operation on the statement handle


Executa uma instrução SQL e retorna o número de linhas afetadas

  • « PDO::errorInfo
  • PDO::getAttribute »
  • PHP Manual
  • PDO
  • Executa uma instrução SQL e retorna o número de linhas afetadas

PDO::exec

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::exec — Executa uma instrução SQL e retorna o número de linhas afetadas

Descrição

public PDO::exec(string $statement): int|false

PDO::exec() executa uma instrução SQL em uma única chamada de função, retornando o número de linhas afetadas pela instrução.

PDO::exec() não retorna resultados de uma instrução SELECT. Para uma instrução SELECT que você só precisa emitir uma vez durante seu programa, considere a emissão de PDO::query(). Para uma instrução que você precisa emitir várias vezes, prepare um objeto PDOStatement com PDO::prepare() e emita a instrução com PDOStatement::execute().

Parâmetros

statement

A instrução SQL para preparar e executar.

Os dados dentro da consulta devem ser adequadamente escapados.

Valor Retornado

PDO::exec() retorna o número de linhas que foram modificadas ou excluídas pela instrução SQL que você emitiu. Se nenhuma linha for afetada, PDO::exec() retorna 0.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

O exemplo a seguir depende incorretamente do valor de retorno de PDO::exec(), em que uma instrução que afetou 0 linhas resulta em uma chamada para die():

<?php
$db->exec() or die(print_r($db->errorInfo(), true)); // incorrect
?>

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Emitindo uma instrução DELETE

Conte o número de linhas excluídas por uma instrução DELETE sem cláusula WHERE.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

/* Apaga todas as linhas da tabela FRUIT */
$count = $dbh->exec("DELETE FROM fruit");

/* Retorna o número de linhas apagadas */
print "Apagada(s) $count linha(s).\n";
?>

O exemplo acima produzirá:

Apagada(s) 1 linha(s).

Veja Também

  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDO::query() - Prepara e executa uma instrução SQL sem espaços reservados
  • PDOStatement::execute() - Executes a prepared statement


Recuperar um atributo da conexão com o banco de dados

  • « PDO::exec
  • PDO::getAvailableDrivers »
  • PHP Manual
  • PDO
  • Recuperar um atributo da conexão com o banco de dados

PDO::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDO::getAttribute — Recuperar um atributo da conexão com o banco de dados

Descrição

public PDO::getAttribute(int $attribute): mixed

Esta função retorna o valor de um atributo da conexão com o banco de dados. Para recuperar atributos de PDOStatement consulte PDOStatement::getAttribute().

Note que algumas combinações de banco de dados e drivers podem não suportar todos os atributos da conexão com o banco de dados.

Parâmetros

attribute

Uma das constantes PDO::ATTR_*. Os atributos genéricos que se aplicam a conexões com o banco de dados são os seguintes:

  • PDO::ATTR_AUTOCOMMIT
  • PDO::ATTR_CASE
  • PDO::ATTR_CLIENT_VERSION
  • PDO::ATTR_CONNECTION_STATUS
  • PDO::ATTR_DRIVER_NAME
  • PDO::ATTR_ERRMODE
  • PDO::ATTR_ORACLE_NULLS
  • PDO::ATTR_PERSISTENT
  • PDO::ATTR_PREFETCH
  • PDO::ATTR_SERVER_INFO
  • PDO::ATTR_SERVER_VERSION
  • PDO::ATTR_TIMEOUT

Alguns drivers podem fazer uso de atributos específicos adicionais. Note que atributos específicos de drivers não devem ser usados com outros drivers.

Valor Retornado

Uma chamada com sucesso retornará o valor do atributo PDO solicitado. Uma chamada sem sucesso retornará null.

Erros/Exceções

PDO::getAttribute() pode lançar uma PDOException quando o driver subjacente não suportar o attribute requerido.

Exemplos

Exemplo #1 Recuperando atributos de uma conexão com o banco de dados

<?php
$conn = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$attributes = array(
"AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS",
"ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION",
"TIMEOUT"
);

foreach ($attributes as $val) {
echo "PDO::ATTR_$val: ";
echo $conn->getAttribute(constant("PDO::ATTR_$val")) . "\n";
}
?>

Veja Também

  • PDO::setAttribute() - Define um atributo
  • PDOStatement::getAttribute() - Retrieve a statement attribute
  • PDOStatement::setAttribute() - Define um atributo na instrução


Retorna um array com os drivers PDO disponíveis

  • « PDO::getAttribute
  • PDO::inTransaction »
  • PHP Manual
  • PDO
  • Retorna um array com os drivers PDO disponíveis

PDO::getAvailableDrivers

pdo_drivers

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 1.0.3)

PDO::getAvailableDrivers -- pdo_drivers — Retorna um array com os drivers PDO disponíveis

Descrição

public static PDO::getAvailableDrivers(): array
pdo_drivers(): array

Esta função retorna todos os drivers PDO disponíveis que podem ser usados no parâmetro DSN de PDO::__construct().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

PDO::getAvailableDrivers() retorna um array com os drivers PDO disponíveis. Se nenhum driver estiver disponível então o retorno será um array vazio.

Exemplos

Exemplo #1 Exemplo de PDO::getAvailableDrivers()

<?php
print_r(PDO::getAvailableDrivers());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => mysql
    [1] => sqlite
)


Verifica se está dentro de uma transação

  • « PDO::getAvailableDrivers
  • PDO::lastInsertId »
  • PHP Manual
  • PDO
  • Verifica se está dentro de uma transação

PDO::inTransaction

(PHP 5 >= 5.3.3, Bundled pdo_pgsql, PHP 7, PHP 8)

PDO::inTransaction — Verifica se está dentro de uma transação

Descrição

public PDO::inTransaction(): bool

Verifica se uma transação está atualmente ativa no driver. Este método funciona somente para drivers de banco de dados que suportam transações.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se uma transação estiver ativa, e false caso contrário.


Retorna o ID da última linha ou valor de sequência inserido

  • « PDO::inTransaction
  • PDO::prepare »
  • PHP Manual
  • PDO
  • Retorna o ID da última linha ou valor de sequência inserido

PDO::lastInsertId

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::lastInsertId — Retorna o ID da última linha ou valor de sequência inserido

Descrição

public PDO::lastInsertId(?string $name = null): string|false

Retorna o ID da última linha inserida, ou o último valor de um objeto de sequência, dependendo do driver subjacente. Por exemplo, PDO_PGSQL permite que o nome de qualquer objeto de sequência seja especificado para o parâmetro name.

Nota:

Este método pode não retornar um resultado significativo ou consistente em diferentes drivers PDO, pois o banco de dados subjacente pode nem mesmo suportar a noção de campos ou sequências auto-incrementais.

Parâmetros

name

Nome do objeto de sequência do qual o ID deve ser retornado.

Valor Retornado

Se um nome de sequência não foi especificado para o parâmetro name, PDO::lastInsertId() retornará uma string representando o ID da última linha que foi inserida no banco de dados.

Se um nome de sequência foi especificado para o parâmetro name, PDO::lastInsertId() retornará uma string representando o último valor recuperado do objeto de sequência especificado.

Se o driver PDO não suportar este recurso, PDO::lastInsertId() dispara um SQLSTATE IM001.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.


Prepara uma instrução para execução e retorna um objeto de instrução

  • « PDO::lastInsertId
  • PDO::query »
  • PHP Manual
  • PDO
  • Prepara uma instrução para execução e retorna um objeto de instrução

PDO::prepare

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PHP 8,PECL pdo >= 0.1.0)

PDO::prepare — Prepara uma instrução para execução e retorna um objeto de instrução

Descrição

public PDO::prepare(string $query, array $options = []): PDOStatement|false

Prepara uma instrução SQL para ser executada pelo método PDOStatement::execute(). O modelo de instrução pode conter zero ou mais marcadores de parâmetros nomeados (:name) ou pontos de interrogação (?) para os quais os valores reais serão substituídos quando a instrução for executada. Os marcadores de parâmetros nomeados e de ponto de interrogação não podem ser usados ??no mesmo modelo de instrução; apenas um ou outro estilo de parâmetro. Use esses parâmetros para vincular qualquer entrada do usuário, não inclua a entrada do usuário diretamente na consulta.

Deve-se incluir um marcador de parâmetro exclusivo para cada valor que se deseja passar para a instrução ao chamar PDOStatement::execute(). Um marcador de parâmetro nomeado com o mesmo nome não pode ser usado mais de uma vez em uma instrução preparada, a menos que o modo de emulação esteja ativado.

Nota:

Os marcadores de parâmetro podem representar apenas um literal de dados completo. Nem parte do literal, nem palavra-chave, nem identificador, nem qualquer parte arbitrária da consulta podem ser vinculadas usando parâmetros. Por exemplo, não se pode vincular múltiplos valores a um único parâmetro na cláusula IN() de uma instrução SQL.

Chamar PDO::prepare() e PDOStatement::execute() para instruções que serão emitidas diversas vezes com valores de parâmetros diferentes otimiza o desempenho da aplicação, permitindo que o driver negocie cache no lado do cliente e/ou do servidor do plano de consulta e metainformações. Além disso, chamar PDO::prepare() e PDOStatement::execute() ajuda a evitar ataques de injeção de SQL, eliminando a necessidade de inserir aspas e escapar manualmente dos parâmetros.

O PDO irá emular instruções preparadas/parâmetros vinculados para drivers que não os suportam nativamente, e também pode reescrever marcadores de parâmetros nomeados ou no estilo ponto de interrogação para algo mais apropriado, se o driver suportar um estilo, mas não o outro.

Nota: O analisador usado para instruções preparadas emuladas e para reescrever parâmetros nomeados ou no estilo de ponto de interrogação suporta escapes de barra invertida não padrão para aspas simples e duplas. Isso significa que aspas de término imediatamente precedidas por uma barra invertida não são reconhecidas como tal, o que pode resultar na detecção incorreta de parâmetros, fazendo com que a instrução preparada falhe quando for executada. Uma solução alternativa é não usar preparações emuladas para essas consultas SQL e evitar a reescrita de parâmetros usando um estilo de parâmetro que seja suportado nativamente pelo driver.

A partir do PHP 7.4.0, os pontos de interrogação podem ser escapados duplicando-os. Isso significa que a string ?? será traduzida para ? ao enviar a consulta ao banco de dados.

Parâmetros

query

Este deve ser um modelo de instrução SQL válido para o servidor de banco de dados de destino.

options

Este array contém um ou mais pares chave=>valor para definir valores de atributos para o objeto PDOStatement que esse método retorna. Normalmente usa-se isso para definir o valor PDO::ATTR_CURSOR como PDO::CURSOR_SCROLL para solicitar um cursor rolável. Alguns drivers têm opções específicas que podem ser definidas no momento da preparação.

Valor Retornado

Se o servidor de banco de dados preparar a instrução com sucesso, PDO::prepare() retornará um objeto PDOStatement. Se o servidor de banco de dados não conseguir preparar a instrução com sucesso, PDO::prepare() retornará false ou emitirá uma exceção PDOException (dependendo do tratamento de erros).

Nota:

Instruções preparadas emuladas não se comunicam com o servidor de banco de dados, portanto PDO::prepare() não verifica a instrução.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Modelo de instrução SQL com parâmetros nomeados

<?php
/* Executa uma instrução preparada passando uma matriz de valores */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, [PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]);
$sth->execute(['calories' => 150, 'colour' => 'red']);
$red = $sth->fetchAll();
/* Chaves de arrays podem ser prefizadas com dois-pontos ":" também (opcional) */
$sth->execute([':calories' => 175, ':colour' => 'yellow']);
$yellow = $sth->fetchAll();
?>

Exemplo #2 Modelo de instrução SQL com parâmetros de ponto de interrogação

<?php
/* Executa uma instrução preparada passando uma matriz de valores */
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute([150, 'red']);
$red = $sth->fetchAll();
$sth->execute([175, 'yellow']);
$yellow = $sth->fetchAll();
?>

Exemplo #3 Modelo de instrução SQL com ponto de interrogação escapado

<?php
/* nota: isso só é válido em bancos de dados PostgreSQL */
$sth = $dbh->prepare('SELECT * FROM issues WHERE tag::jsonb ?? ?');
$sth->execute(['feature']);
$featureIssues = $sth->fetchAll();
$sth->execute(['performance']);
$performanceIssues = $sth->fetchAll();
?>

Veja Também

  • PDO::exec() - Executa uma instrução SQL e retorna o número de linhas afetadas
  • PDO::query() - Prepara e executa uma instrução SQL sem espaços reservados
  • PDOStatement::execute() - Executes a prepared statement


Prepara e executa uma instrução SQL sem espaços reservados

  • « PDO::prepare
  • PDO::quote »
  • PHP Manual
  • PDO
  • Prepara e executa uma instrução SQL sem espaços reservados

PDO::query

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDO::query — Prepara e executa uma instrução SQL sem espaços reservados

Descrição

public PDO::query(string $query, ?int $fetchMode = null): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_COLUMN, int $colno): PDOStatement|false
public PDO::query(
string $query,
?int $fetchMode = PDO::FETCH_CLASS,
string $classname,
array $constructorArgs
): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_INTO, object $object): PDOStatement|false

PDO::query() prepara e executa uma instrução SQL em uma única chamada de função, retornando a instrução como um objeto PDOStatement.

Para uma consulta que precisa ser emitida diversas vezes, obtém-se melhor desempenho se for preparado um objeto PDOStatement usando PDO::prepare() e emitida a instrução com múltiplas chamadas a PDOStatement::execute().

Se não forem buscados todos os dados em um conjunto de resultados antes de emitir a próxima chamada a PDO::query(), a chamada poderá falhar. Deve-se chamar PDOStatement::closeCursor() para liberar os recursos do banco de dados associados ao objeto PDOStatement antes de se emitir a próxima chamada a PDO::query().

Nota:

Se a query contiver espaços reservados, a instrução deverá ser preparada e executada separadamente usando os métodos PDO::prepare() e PDOStatement::execute().

Parâmetros

query

A instrução SQL a ser preparada e executada.

Se o SQL contiver espaços reservados, PDO::prepare() e PDOStatement::execute() deverão ser usados. Alternativamente, o SQL pode ser preparado manualmente antes de chamar PDO::query(), com os dados formatados corretamente usando PDO::quote() se o driver suportar.

fetchMode

O modo de busca padrão para o PDOStatement retornado. Deve ser uma das constantes PDO::FETCH_*.

Se este argumento for passado para a função, os argumentos restantes serão tratados como se PDOStatement::setFetchMode() tivesse sido chamado no objeto de instrução resultante. Os argumentos subsequentes variam dependendo do modo de busca selecionado.

Valor Retornado

Retorna um objeto PDOStatement ou false em caso de falha.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 SQL sem espaços reservados pode ser executado usando PDO::query()

<?php
$sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
foreach ($conn->query($sql) as $row) {
print $row['name'] . "\t";
print $row['color'] . "\t";
print $row['calories'] . "\n";
}
?>

O exemplo acima produzirá:

apple   red     150
banana  yellow  250
kiwi    brown   75
lemon   yellow  25
orange  orange  300
pear    green   150
watermelon      pink    90

Veja Também

  • PDO::exec() - Executa uma instrução SQL e retorna o número de linhas afetadas
  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDOStatement::execute() - Executes a prepared statement


Inclui aspas em uma string para uso em uma consulta

  • « PDO::query
  • PDO::rollBack »
  • PHP Manual
  • PDO
  • Inclui aspas em uma string para uso em uma consulta

PDO::quote

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.1)

PDO::quote — Inclui aspas em uma string para uso em uma consulta

Descrição

public PDO::quote(string $string, int $type = PDO::PARAM_STR): string|false

PDO::quote() coloca aspas na string de entrada (se necessário) e escapa caracteres especiais dentro da string de entrada, usando um estilo de aspas (ex.: simples ou duplas) apropriado ao driver subjacente.

Se esta função estiver sendo usada para construir instruções SQL, é fortemente recomendado usar PDO::prepare() para preparar instruções SQL com parâmetros vinculados em vez de usar PDO::quote() para interpolar a entrada do usuário em uma instrução SQL. Instruções preparadas com parâmetros vinculados não são apenas mais portáveis, mais convenientes e imunes à injeção de SQL, mas geralmente são muito mais rápidas de executar do que consultas interpoladas, já que tanto o servidor quanto o cliente podem armazenar em cache uma forma compilada da consulta.

Nem todos os drivers PDO implementam esse método (principalmente PDO_ODBC). Considere usar instruções preparadas.

Cuidado

Segurança: o conjunto de caracteres padrão

O conjunto de caracteres deve ser definido no nível do servidor ou na própria conexão do banco de dados (dependendo do driver) para afetar o PDO::quote(). Consulte a documentação específica do driver para obter mais informações.

Parâmetros

string

A string que será envolvida por aspas.

type

Fornece uma dica sobre o tipo de dados para drivers que possuem estilos de cotação alternativos. Por exemplo, PDO_PARAM_LOB dirá ao driver para escapar dados binários.

Valor Retornado

Retorna uma string entre aspas que é teoricamente segura para passar em uma instrução SQL. Retorna false se o driver não suportar inserção de aspas dessa forma.

Exemplos

Exemplo #1 Inserindo aspas em uma string normal

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* String simples */
$string = 'Teste';
print "String sem aspas: $string\n";
print "String com aspas: " . $conn->quote($string) . "\n";
?>

O exemplo acima produzirá:

String sem aspas: Teste
String com aspas: 'Teste'

Exemplo #2 Inserindo aspas em uma string perigosa

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* String perigosa */
$string = 'String \' perversa';
print "String sem aspas: $string\n";
print "String com aspas:" . $conn->quote($string) . "\n";
?>

O exemplo acima produzirá:

String sem aspas: String ' perversa
String com aspas: 'String '' perversa'

Exemplo #3 Inserindo aspas em uma string complexa

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* String complexa */
$string = "St'ri''ng \"com'\"plexa";
print "String sem aspas: $string\n";
print "String com aspas: " . $conn->quote($string) . "\n";
?>

O exemplo acima produzirá:

String sem aspas: St'ri''ng "com'"plexa
String com aspas: 'St''ri''''ng "com''"plexa'

Veja Também

  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDOStatement::execute() - Executes a prepared statement


Reverte uma transação

  • « PDO::quote
  • PDO::setAttribute »
  • PHP Manual
  • PDO
  • Reverte uma transação

PDO::rollBack

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::rollBack — Reverte uma transação

Descrição

public PDO::rollBack(): bool

Reverte a transação atual, iniciada por PDO::beginTransaction().

Se o banco de dados foi definido para o modo de confirmação automática, esta função restaurará o modo de confirmação automática após a reversão da transação.

Alguns bancos de dados, incluindo MySQL, emitem automaticamente um COMMIT implícito quando uma instrução DDL (linguagem de definição de banco de dados), como DROP TABLE ou CREATE TABLE, é emitida em uma transação. O COMMIT implícito impedirá que quaisquer outras alterações sejam revertidas dentro do limite da transação.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Lança uma exceção PDOException se não houver transação ativa.

Nota: Uma exceção será lançada mesmo quando o atributo PDO::ATTR_ERRMODE não for PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Revertendo uma transação

O exemplo a seguir inicia uma transação e emite duas instruções que modificam o banco de dados antes de reverter as alterações. No MySQL, entretanto, a instrução DROP TABLE confirma automaticamente a transação de forma que nenhuma das alterações na transação é revertida.

<?php
/* Inicia uma transação, desligando a auto-confirmação */
$dbh->beginTransaction();

/* Altera esquema e dados do bando */
$sth = $dbh->exec("DROP TABLE fruta");
$sth = $dbh->exec("UPDATE sobremesa
SET nome = 'hamburger'");

/* Reconhece o erro e reverte as alterações */
$dbh->rollBack();

/* A conexão do banco agora está de volta no modo de auto-confirmação */
?>

Veja Também

  • PDO::beginTransaction() - Inicia uma transação
  • PDO::commit() - Envia uma transação
  • Transações e auto-confirmação


Define um atributo

  • « PDO::rollBack
  • PDOStatement »
  • PHP Manual
  • PDO
  • Define um atributo

PDO::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::setAttribute — Define um atributo

Descrição

public PDO::setAttribute(int $attribute, mixed $value): bool

Define um atributo no identificador do banco de dados. Alguns atributos genéricos disponíveis estão listados abaixo; alguns drivers podem fazer uso de atributos adicionais específicos do driver. Observe que os atributos específicos do driver não devem ser usados ??com outros drivers.

PDO::ATTR_CASE

Força os nomes das colunas para uma combinação específica de maiúsculas/minúsculas. Pode ser um dos seguintes valores:

PDO::CASE_LOWER
Força os nomes das colunas para minúsculas.
PDO::CASE_NATURAL
Deixa os nomes das colunas como retornados pelo driver do banco de dados.
PDO::CASE_UPPER
Força os nomes das colunas para maiúsculas.
PDO::ATTR_ERRMODE

Modo de relatório de erros do PDO. Pode ser um dos seguintes valores:

PDO::ERRMODE_SILENT
Define somente códigos de erro.
PDO::ERRMODE_WARNING
Emite diagnósticos E_WARNING.
PDO::ERRMODE_EXCEPTION
Lança exceções PDOException.
PDO::ATTR_ORACLE_NULLS

Nota: Este atributo está disponível em todos os drivers, não somente no Oracle.

Determina se e como strings null e vazias devem ser convertidas. Pode ser um dos seguintes valores:

PDO::NULL_NATURAL
Nenhuma conversão acontece.
PDO::NULL_EMPTY_STRING
Strings vazias são convertidas para null.
PDO::NULL_TO_STRING
null é convertido para uma string vazia.
PDO::ATTR_STRINGIFY_FETCHES

Define se os valores numéricos devem ser convertidos em strings durante a busca. Recebe um valor do tipo bool: true para habilitar e false para desabilitar.

PDO::ATTR_STATEMENT_CLASS

Defina a classe de instrução fornecida pelo usuário derivada de PDOStatement. Requer array(string classname, array(mixed constructor_args)).

Cuidado

Não pode ser usado com instâncias persistentes de PDO.

PDO::ATTR_TIMEOUT

Especifica a duração do tempo limite em segundos. Recebe um valor do tipo int.

Nota:

Nem todos os drivers suportam esta opção e seu significado pode variar de driver para driver. Por exemplo, o SQLite irá esperar até esse valor de tempo antes de desistir de obter uma trava para escrita, mas outros drivers podem interpretar isso como intervalo de tempo limite de conexão ou de leitura.

PDO::ATTR_AUTOCOMMIT

Nota: Disponível apenas para drivers OCI, Firebird e MySQL.

Define se cada instrução deve ser confirmada automaticamente. Recebe um valor do tipo bool: true para habilitar e false para desabilitar. Por padrão, true.

PDO::ATTR_EMULATE_PREPARES

Nota: Disponível apenas para drivers OCI, Firebird e MySQL.

Define se a emulação de instruções preparadas será habilitada ou desabilitada. Alguns drivers não oferecem suporte nativo a instruções preparadas ou têm suporte limitado para elas. Se definido como true O PDO sempre emulará instruções preparadas, caso contrário, o PDO tentará usar instruções preparadas nativas. Caso o driver não consiga preparar com êxito a instrução atual, o PDO sempre voltará a emular a instrução preparada.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY

Nota: Disponível apenas para o driver MySQL.

Define se consultas com buffer devem ser usadas. Recebe um valor do tipo bool: true para habilitar e false para desabilitar. Por padrão, true.

PDO::ATTR_DEFAULT_FETCH_MODE

Define o modo de busca padrão. Uma descrição dos modos e de como utilizá-los está disponível na documentação do método PDOStatement::fetch().

Parâmetros

attribute

O atributo a modificar.

value

O valor para o qual o attribute será definido, pode requerer um tipo específico dependendo do atributo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • PDO::getAttribute() - Recuperar um atributo da conexão com o banco de dados
  • PDOStatement::getAttribute() - Retrieve a statement attribute
  • PDOStatement::setAttribute() - Define um atributo na instrução


A classe PDOStatement

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 1.0.0)

Introdução

Representa uma instrução preparada e, após a execução da instrução, um conjunto de resultados associado.

Resumo da classe

class PDOStatement implements IteratorAggregate {
/* Propriedades */
public string $queryString;
/* Métodos */
public bindColumn(
string|int $column,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool
public bindParam(
string|int $param,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool
public bindValue(string|int $param, mixed $value, int $type = PDO::PARAM_STR): bool
public closeCursor(): bool
public columnCount(): int
public debugDumpParams(): ?bool
public errorCode(): ?string
public errorInfo(): array
public execute(?array $params = null): bool
public fetch(int $mode = PDO::FETCH_DEFAULT, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0): mixed
public fetchAll(int $mode = PDO::FETCH_DEFAULT): array
public fetchAll(int $mode = PDO::FETCH_COLUMN, int $column): array
public fetchAll(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs): array
public fetchAll(int $mode = PDO::FETCH_FUNC, callable $callback): array
public fetchColumn(int $column = 0): mixed
public fetchObject(?string $class = "stdClass", array $constructorArgs = []): object|false
public getAttribute(int $name): mixed
public getColumnMeta(int $column): array|false
public getIterator(): Iterator
public nextRowset(): bool
public rowCount(): int
public setAttribute(int $attribute, mixed $value): bool
public setFetchMode(int $mode): bool
public setFetchMode(int $mode = PDO::FETCH_COLUMN, int $colno): bool
public setFetchMode(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs = null): bool
public setFetchMode(int $mode = PDO::FETCH_INTO, object $object): bool
}

Propriedades

queryString

String de consulta usada.

Registro de Alterações

Versão | Descrição
8.0.0 | PDOStatement agora implementa IteratorAggregate em vez de Traversable.

Índice

  • PDOStatement::bindColumn — Vincula uma coluna a uma variável PHP
  • PDOStatement::bindParam — Vincula um parâmetro ao nome de variável especificado
  • PDOStatement::bindValue — Binds a value to a parameter
  • PDOStatement::closeCursor — Closes the cursor, enabling the statement to be executed again
  • PDOStatement::columnCount — Returns the number of columns in the result set
  • PDOStatement::debugDumpParams — Dump an SQL prepared command
  • PDOStatement::errorCode — Fetch the SQLSTATE associated with the last operation on the statement handle
  • PDOStatement::errorInfo — Fetch extended error information associated with the last operation on the statement handle
  • PDOStatement::execute — Executes a prepared statement
  • PDOStatement::fetch — Fetches the next row from a result set
  • PDOStatement::fetchAll — Fetches the remaining rows from a result set
  • PDOStatement::fetchColumn — Returns a single column from the next row of a result set
  • PDOStatement::fetchObject — Fetches the next row and returns it as an object
  • PDOStatement::getAttribute — Retrieve a statement attribute
  • PDOStatement::getColumnMeta — Returns metadata for a column in a result set
  • PDOStatement::getIterator — Gets result set iterator
  • PDOStatement::nextRowset — Advances to the next rowset in a multi-rowset statement handle
  • PDOStatement::rowCount — Returns the number of rows affected by the last SQL statement
  • PDOStatement::setAttribute — Define um atributo na instrução
  • PDOStatement::setFetchMode — Define o modo de carga de dados para esta instrução


Vincula uma coluna a uma variável PHP

  • « PDOStatement
  • PDOStatement::bindParam »
  • PHP Manual
  • PDOStatement
  • Vincula uma coluna a uma variável PHP

PDOStatement::bindColumn

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::bindColumn — Vincula uma coluna a uma variável PHP

Descrição

public PDOStatement::bindColumn(
string|int $column,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool

PDOStatement::bindColumn() faz com que uma variável em particular seja vinculada a uma coluna informada, no conjunto de resultados de uma consulta. Cada chamada a PDOStatement::fetch() ou PDOStatement::fetchAll() irá atualizar todas as variáveis que estejam vinculadas a colunas.

Nota:

Como as informações sobre a coluna não estão sempre disponíveis ao PDO até que a instrução seja executada, aplicações portáteis devem chamar esta função após PDOStatement::execute().

Entretanto, para que seja possível vincular uma coluna LOB como um fluxo ao usar o driver PgSQL, aplicações devem chamar este método antes de chamada a PDOStatement::execute(), caso contrário o OID de objeto grande será retornado como um inteiro.

Parâmetros

column

Número da coluna (índices iniciando em 1) ou nome da coluna no conjunto de resultados. Se o nome da coluna estiver sendo usado, o nome deve ter as maiúsculas/minúsculas correspondentes à coluna, como retornada pelo driver.

var

Nome da variável PHP à qual a coluna será vinculada.

type

Tipo de dado do parâmetro, especificado pelas constantes PDO::PARAM_* .

maxLength

Um dica para pré-alocação.

driverOptions

Um ou mais parâmetros opcionais para o driver.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Vinculando a saída do conjunto de resultados a variáveis PHP

Vincular colunas no conjunto de resultados a variáveis PHP é uma maneira eficaz de fazer com que os dados contidos em cada linha estejam imediatamente disponíveis para a aplicação. O exemplo a seguir demonstra como o PDO permite que se vincule e se recupere colunas com uma variedade de opções e com padrões inteligentes.

<?php
$stmt = $dbh->prepare('SELECT name, colour, calories FROM fruit');
$stmt->execute();

/* Vincula por número da coluna */
$stmt->bindColumn(1, $name);
$stmt->bindColumn(2, $colour);

/* Vincula por nome da coluna */
$stmt->bindColumn('calories', $cals);

while ($stmt->fetch(PDO::FETCH_BOUND)) {
print $name . "\t" . $colour . "\t" . $cals . "\n";
}

O exemplo acima produzirá algo semelhante a:

apple   red     150
banana  yellow  175
kiwi    green   75
orange  orange  150
mango   red     200
strawberry      red     25

Veja Também

  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchAll() - Fetches the remaining rows from a result set
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set


Vincula um parâmetro ao nome de variável especificado

  • « PDOStatement::bindColumn
  • PDOStatement::bindValue »
  • PHP Manual
  • PDOStatement
  • Vincula um parâmetro ao nome de variável especificado

PDOStatement::bindParam

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::bindParam — Vincula um parâmetro ao nome de variável especificado

Descrição

public PDOStatement::bindParam(
string|int $param,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool

Vincula uma variável PHP a um espaço reservado nomeado ou de ponto de interrogação correspondente na instrução SQL que foi usada para preparar a instrução. Ao contrário de PDOStatement::bindValue(), a variável é vinculada como uma referência e só será avaliada no momento em que PDOStatement::execute() for chamado.

A maioria dos parâmetros são parâmetros de entrada, ou seja, parâmetros que são usados ??somente leitura para construir a consulta (mas podem, mesmo assim, ser convertidos de acordo com o type). Alguns drivers suportam a invocação de procedimentos armazenados que retornam dados como parâmetros de saída, e alguns também como parâmetros de entrada/saída que tanto enviam dados quanto são atualizados para recebê-los.

Parâmetros

param

Identificador de parâmetro. Para uma instrução preparada usando espaços reservados nomeados, este será um nome de parâmetro no formato :name. Para uma instrução preparada usando espaços reservados com pontos de interrogação, esta será a posição indexada em 1 do parâmetro.

var

Nome da variável PHP a ser vinculada ao parâmetro da instrução SQL.

type

Tipo explícito de dados para o parâmetro usando as constantes PDO::PARAM_*. Para retornar um parâmetro INOUT de um procedimento armazenado, deve-se usar o operador binário OR para definir os bits PDO::PARAM_INPUT_OUTPUT para o parâmetro type.

maxLength

Comprimento do tipo de dados. Para indicar que um parâmetro é um parâmetro OUT de um procedimento armazenado, deve-se definir explicitamente o comprimento. Significativo apenas quando o parâmetro type é PDO::PARAM_INPUT_OUTPUT.

driverOptions

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Executando uma instrução preparada com espaços reservados nomeados

<?php
/* Executa uma instrução preparada vinculando variáveis ??PHP */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->bindParam('calories', $calories, PDO::PARAM_INT);
/* Os nomes podem ser prefixados com dois pontos ":" também (opcional) */
$sth->bindParam(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>

Exemplo #2 Executando uma instrução preparada com espaços reservados com pontos de interrogação

<?php
/* Executa uma instrução preparada vinculando variáveis ??PHP */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR);
$sth->execute();
?>

Exemplo #3 Chamando um procedimento armazenado com um parâmetro INOUT

<?php
/* Chamando um procedimento armazenado com um parâmetro INOUT */
$colour = 'red';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $colour, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print "Após fazer um purê com a fruta, a cor é: $colour";
?>

Veja Também

  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::bindValue() - Binds a value to a parameter


Binds a value to a parameter

  • « PDOStatement::bindParam
  • PDOStatement::closeCursor »
  • PHP Manual
  • PDOStatement
  • Binds a value to a parameter

PDOStatement::bindValue

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 1.0.0)

PDOStatement::bindValue — Binds a value to a parameter

Descrição

public PDOStatement::bindValue(string|int $param, mixed $value, int $type = PDO::PARAM_STR): bool

Binds a value to a corresponding named or question mark placeholder in the SQL statement that was used to prepare the statement.

Parâmetros

param

Parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form :name. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.

value

The value to bind to the parameter.

type

Explicit data type for the parameter using the PDO::PARAM_* constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Execute a prepared statement with named placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');

/* Sets a parameter value using its name */
$sth->bindValue('calories', $calories, PDO::PARAM_INT);
/* Optionally, parameter names can also be prefixed with colons ":" */
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>

Exemplo #2 Execute a prepared statement with question mark placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindValue(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();
?>

Veja Também

  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::bindParam() - Vincula um parâmetro ao nome de variável especificado


Closes the cursor, enabling the statement to be executed again

  • « PDOStatement::bindValue
  • PDOStatement::columnCount »
  • PHP Manual
  • PDOStatement
  • Closes the cursor, enabling the statement to be executed again

PDOStatement::closeCursor

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::closeCursor — Closes the cursor, enabling the statement to be executed again

Descrição

public PDOStatement::closeCursor(): bool

PDOStatement::closeCursor() frees up the connection to the server so that other SQL statements may be issued, but leaves the statement in a state that enables it to be executed again.

This method is useful for database drivers that do not support executing a PDOStatement object when a previously executed PDOStatement object still has unfetched rows. If your database driver suffers from this limitation, the problem may manifest itself in an out-of-sequence error.

PDOStatement::closeCursor() is implemented either as an optional driver specific method (allowing for maximum efficiency), or as the generic PDO fallback if no driver specific function is installed. The PDO generic fallback is semantically the same as writing the following code in your PHP script:

<?php
do {
while ($stmt->fetch())
;
if (!$stmt->nextRowset())
break;
} while (true);
?>

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 A PDOStatement::closeCursor() example

In the following example, the $stmt PDOStatement object returns multiple rows but the application fetches only the first row, leaving the PDOStatement object in a state of having unfetched rows. To ensure that the application will work with all database drivers, the author inserts a call to PDOStatement::closeCursor() on $stmt before executing the $otherStmt PDOStatement object.

<?php
/* Create a PDOStatement object */
$stmt = $dbh->prepare('SELECT foo FROM bar');

/* Create a second PDOStatement object */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');

/* Execute the first statement */
$stmt->execute();

/* Fetch only the first row from the results */
$stmt->fetch();

/* The following call to closeCursor() may be required by some drivers */
$stmt->closeCursor();

/* Now we can execute the second statement */
$otherStmt->execute();
?>

Veja Também

  • PDOStatement::execute() - Executes a prepared statement


Returns the number of columns in the result set

  • « PDOStatement::closeCursor
  • PDOStatement::debugDumpParams »
  • PHP Manual
  • PDOStatement
  • Returns the number of columns in the result set

PDOStatement::columnCount

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::columnCount — Returns the number of columns in the result set

Descrição

public PDOStatement::columnCount(): int

Use PDOStatement::columnCount() to return the number of columns in the result set represented by the PDOStatement object.

If the PDOStatement object was returned from PDO::query(), the column count is immediately available.

If the PDOStatement object was returned from PDO::prepare(), an accurate column count will not be available until you invoke PDOStatement::execute().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of columns in the result set represented by the PDOStatement object, even if the result set is empty. If there is no result set, PDOStatement::columnCount() returns 0.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Counting columns

This example demonstrates how PDOStatement::columnCount() operates with and without a result set.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

$sth = $dbh->prepare("SELECT name, colour FROM fruit");

/* Count the number of columns in the (non-existent) result set */
$colcount = $sth->columnCount();
print "Before execute(), result set has $colcount columns (should be 0)\n";

$sth->execute();

/* Count the number of columns in the result set */
$colcount = $sth->columnCount();
print "After execute(), result set has $colcount columns (should be 2)\n";

?>

O exemplo acima produzirá:

Before execute(), result set has 0 columns (should be 0)
After execute(), result set has 2 columns (should be 2)

Veja Também

  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::rowCount() - Returns the number of rows affected by the last SQL statement


Dump an SQL prepared command

  • « PDOStatement::columnCount
  • PDOStatement::errorCode »
  • PHP Manual
  • PDOStatement
  • Dump an SQL prepared command

PDOStatement::debugDumpParams

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::debugDumpParams — Dump an SQL prepared command

Descrição

public PDOStatement::debugDumpParams(): ?bool

Dumps the information contained by a prepared statement directly on the output. It will provide the SQL query in use, the number of parameters used (Params), the list of parameters with their key name or position, their name, their position in the query (if this is supported by the PDO driver, otherwise, it will be -1), type (param_type) as an integer, and a boolean value is_param.

This is a debug function, which dumps the data directly to the normal output.

Dica

Assim como qualquer coisa que envia seu resultado diretamente para o navegador, as funções de controle de saída podem ser usadas para capturar a saída desta função e salvá-la em uma string, por exemplo.

This will only dump the parameters in the statement at the moment of the dump. Extra parameters are not stored in the statement, and not displayed.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns null, or false in case of an error.

Registro de Alterações

Versão | Descrição
7.2.0 | PDOStatement::debugDumpParams() now returns the SQL sent to the database, including the full, raw query (including the replaced placeholders with their bounded values). Note, that this will only be available if emulated prepared statements are turned on.

Exemplos

Exemplo #1 PDOStatement::debugDumpParams() example with named parameters

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();

$sth->debugDumpParams();

?>

O exemplo acima produzirá:

SQL: [96] SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour
Params:  2
Key: Name: [9] :calories
paramno=-1
name=[9] ":calories"
is_param=1
param_type=1
Key: Name: [7] :colour
paramno=-1
name=[7] ":colour"
is_param=1
param_type=2

Exemplo #2 PDOStatement::debugDumpParams() example with unnamed parameters

<?php

/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$name = 'apple';

$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();

$sth->debugDumpParams();

?>

O exemplo acima produzirá:

SQL: [82] SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?
Params:  2
Key: Position #0:
paramno=0
name=[0] ""
is_param=1
param_type=1
Key: Position #1:
paramno=1
name=[0] ""
is_param=1
param_type=2

Veja Também

  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDOStatement::bindParam() - Vincula um parâmetro ao nome de variável especificado
  • PDOStatement::bindValue() - Binds a value to a parameter


Fetch the SQLSTATE associated with the last operation on the statement handle

  • « PDOStatement::debugDumpParams
  • PDOStatement::errorInfo »
  • PHP Manual
  • PDOStatement
  • Fetch the SQLSTATE associated with the last operation on the statement handle

PDOStatement::errorCode

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::errorCode — Fetch the SQLSTATE associated with the last operation on the statement handle

Descrição

public PDOStatement::errorCode(): ?string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Identical to PDO::errorCode(), except that PDOStatement::errorCode() only retrieves error codes for operations performed with PDOStatement objects.

Exemplos

Exemplo #1 Retrieving an SQLSTATE code

<?php
/* Provoke an error -- the BONES table does not exist */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();

echo "\nPDOStatement::errorCode(): ";
print $err->errorCode();
?>

O exemplo acima produzirá:

PDOStatement::errorCode(): 42S02

Veja Também

  • PDO::errorCode() - Busca o SQLSTATE associado com a última operação no identificador do banco de dados
  • PDO::errorInfo() - Busca informação de erro estendida associada com a última operação no identificador do banco de dados
  • PDOStatement::errorInfo() - Fetch extended error information associated with the last operation on the statement handle


Fetch extended error information associated with the last operation on the statement handle

  • « PDOStatement::errorCode
  • PDOStatement::execute »
  • PHP Manual
  • PDOStatement
  • Fetch extended error information associated with the last operation on the statement handle

PDOStatement::errorInfo

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::errorInfo — Fetch extended error information associated with the last operation on the statement handle

Descrição

public PDOStatement::errorInfo(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

PDOStatement::errorInfo() returns an array of error information about the last operation performed by this statement handle. The array consists of at least the following fields:

Element | Information
0 | SQLSTATE error code (a five characters alphanumeric identifier defined in the ANSI SQL standard).
1 | Driver specific error code.
2 | Driver specific error message.

Exemplos

Exemplo #1 Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database

<?php
/* Provoke an error -- the BONES table does not exist */
$sth = $dbh->prepare('SELECT skull FROM bones');
$sth->execute();

echo "\nPDOStatement::errorInfo():\n";
$arr = $sth->errorInfo();
print_r($arr);
?>

O exemplo acima produzirá:

PDOStatement::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Veja Também

  • PDO::errorCode() - Busca o SQLSTATE associado com a última operação no identificador do banco de dados
  • PDO::errorInfo() - Busca informação de erro estendida associada com a última operação no identificador do banco de dados
  • PDOStatement::errorCode() - Fetch the SQLSTATE associated with the last operation on the statement handle


Executes a prepared statement

  • « PDOStatement::errorInfo
  • PDOStatement::fetch »
  • PHP Manual
  • PDOStatement
  • Executes a prepared statement

PDOStatement::execute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::execute — Executes a prepared statement

Descrição

public PDOStatement::execute(?array $params = null): bool

Execute the prepared statement. If the prepared statement included parameter markers, either:

  • PDOStatement::bindParam() and/or PDOStatement::bindValue() has to be called to bind either variables or values (respectively) to the parameter markers. Bound variables pass their value as input and receive the output value, if any, of their associated parameter markers

  • or an array of input-only parameter values has to be passed

Parâmetros

params

An array of values with as many elements as there are bound parameters in the SQL statement being executed. All values are treated as PDO::PARAM_STR.

Multiple values cannot be bound to a single parameter; for example, it is not allowed to bind two values to a single named parameter in an IN() clause.

Binding more values than specified is not possible; if more keys exist in params than in the SQL specified in the PDO::prepare(), then the statement will fail and an error is emitted.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Execute a prepared statement with a bound variable and value

<?php
/* Execute a prepared statement by binding a variable and value */
$calories = 150;
$colour = 'gre';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour LIKE :colour');
$sth->bindParam('calories', $calories, PDO::PARAM_INT);
/* Names can be prefixed with colons ":" too (optional) */
$sth->bindValue(':colour', "%$colour%");
$sth->execute();
?>

Exemplo #2 Execute a prepared statement with an array of named values

<?php
/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->execute(array('calories' => $calories, 'colour' => $colour));
/* Array keys can be prefixed with colons ":" too (optional) */
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>

Exemplo #3 Execute a prepared statement with an array of positional values

<?php
/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>

Exemplo #4 Execute a prepared statement with variables bound to positional placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Exemplo #5 Execute a prepared statement using array for IN clause

<?php
/* Execute a prepared statement using an array of values for an IN clause */
$params = array(1, 21, 63, 171);
/* Create a string for the parameter placeholders filled to the number of params */
$place_holders = implode(',', array_fill(0, count($params), '?'));

/*
This prepares the statement with enough unnamed placeholders for every value
in our $params array. The values of the $params array are then bound to the
placeholders in the prepared statement when the statement is executed.
This is not the same thing as using PDOStatement::bindParam() since this
requires a reference to the variable. PDOStatement::execute() only binds
by value instead.
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
?>

Notas

Nota:

Some drivers require to close cursor before executing next statement.

Veja Também

  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDOStatement::bindParam() - Vincula um parâmetro ao nome de variável especificado
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchAll() - Fetches the remaining rows from a result set
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set


Fetches the next row from a result set

  • « PDOStatement::execute
  • PDOStatement::fetchAll »
  • PHP Manual
  • PDOStatement
  • Fetches the next row from a result set

PDOStatement::fetch

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::fetch — Fetches the next row from a result set

Descrição

public PDOStatement::fetch(int $mode = PDO::FETCH_DEFAULT, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0): mixed

Fetches a row from a result set associated with a PDOStatement object. The mode parameter determines how PDO returns the row.

Parâmetros

mode

Controls how the next row will be returned to the caller. This value must be one of the PDO::FETCH_* constants, defaulting to value of PDO::ATTR_DEFAULT_FETCH_MODE (which defaults to PDO::FETCH_BOTH).

  • PDO::FETCH_ASSOC: returns an array indexed by column name as returned in your result set

  • PDO::FETCH_BOTH (default): returns an array indexed by both column name and 0-indexed column number as returned in your result set

  • PDO::FETCH_BOUND: returns true and assigns the values of the columns in your result set to the PHP variables to which they were bound with the PDOStatement::bindColumn() method

  • PDO::FETCH_CLASS: returns a new instance of the requested class, mapping the columns of the result set to named properties in the class, and calling the constructor afterwards, unless PDO::FETCH_PROPS_LATE is also given. If mode includes PDO::FETCH_CLASSTYPE (e.g. PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE) then the name of the class is determined from a value of the first column.

  • PDO::FETCH_INTO: updates an existing instance of the requested class, mapping the columns of the result set to named properties in the class

  • PDO::FETCH_LAZY: combines PDO::FETCH_BOTH and PDO::FETCH_OBJ, and is returning a PDORow object which is creating the object property names as they are accessed.

  • PDO::FETCH_NAMED: returns an array with the same form as PDO::FETCH_ASSOC, except that if there are multiple columns with the same name, the value referred to by that key will be an array of all the values in the row that had that column name

  • PDO::FETCH_NUM: returns an array indexed by column number as returned in your result set, starting at column 0

  • PDO::FETCH_OBJ: returns an anonymous object with property names that correspond to the column names returned in your result set

  • PDO::FETCH_PROPS_LATE: when used with PDO::FETCH_CLASS, the constructor of the class is called before the properties are assigned from the respective column values.

cursorOrientation

For a PDOStatement object representing a scrollable cursor, this value determines which row will be returned to the caller. This value must be one of the PDO::FETCH_ORI_* constants, defaulting to PDO::FETCH_ORI_NEXT. To request a scrollable cursor for your PDOStatement object, you must set the PDO::ATTR_CURSOR attribute to PDO::CURSOR_SCROLL when you prepare the SQL statement with PDO::prepare().

cursorOffset

For a PDOStatement object representing a scrollable cursor for which the cursorOrientation parameter is set to PDO::FETCH_ORI_ABS, this value specifies the absolute number of the row in the result set that shall be fetched.

For a PDOStatement object representing a scrollable cursor for which the cursorOrientation parameter is set to PDO::FETCH_ORI_REL, this value specifies the row to fetch relative to the cursor position before PDOStatement::fetch() was called.

Valor Retornado

The return value of this function on success depends on the fetch type. In all cases, false is returned on failure or if there are no more rows.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Fetching rows using different fetch styles

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Exercise PDOStatement::fetch styles */
print "PDO::FETCH_ASSOC: ";
print "Return next row as an array indexed by column name\n";
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print "\n";

print "PDO::FETCH_BOTH: ";
print "Return next row as an array indexed by both column name and number\n";
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print "\n";

print "PDO::FETCH_LAZY: ";
print "Return next row as a PDORow object with column names as properties\n";
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print "\n";

print "PDO::FETCH_OBJ: ";
print "Return next row as an anonymous object with column names as properties\n";
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->name;
print "\n";
?>

O exemplo acima produzirá:

PDO::FETCH_ASSOC: Return next row as an array indexed by column name
Array
(
    [name] => apple
    [colour] => red
)

PDO::FETCH_BOTH: Return next row as an array indexed by both column name and number
Array
(
    [name] => banana
    [0] => banana
    [colour] => yellow
    [1] => yellow
)

PDO::FETCH_LAZY: Return next row as a PDORow object with column names as properties
PDORow Object
(
    [name] => orange
    [colour] => orange
)

PDO::FETCH_OBJ: Return next row as an anonymous object with column names as properties
kiwi

Exemplo #2 Fetching rows with a scrollable cursor

<?php
function readDataForwards($dbh) {
$sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
$stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
$data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
print $data;
}
}
function readDataBackwards($dbh) {
$sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
$stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
do {
$data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
print $data;
} while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
}

print "Reading forwards:\n";
readDataForwards($conn);

print "Reading backwards:\n";
readDataBackwards($conn);
?>

O exemplo acima produzirá:

Reading forwards:
21    10    5
16    0     5
19    20    10

Reading backwards:
19    20    10
16    0     5
21    10    5

Exemplo #3 Construction order

When objects are fetched via PDO::FETCH_CLASS the object properties are assigned first, and then the constructor of the class is invoked. If PDO::FETCH_PROPS_LATE is also given, this order is reversed, i.e. first the constructor is called, and afterwards the properties are assigned.

<?php
class Person
{
private $name;

public function __construct()
{
$this->tell();
}

public function tell()
{
if (isset($this->name)) {
echo "I am {$this->name}.\n";
} else {
echo "I don't have a name yet.\n";
}
}
}

$sth = $dbh->query("SELECT * FROM people");
$sth->setFetchMode(PDO::FETCH_CLASS, 'Person');
$person = $sth->fetch();
$person->tell();
$sth->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, 'Person');
$person = $sth->fetch();
$person->tell();
?>

O exemplo acima produzirá algo semelhante a:

I am Alice.
I am Alice.
I don't have a name yet.
I am Bob.

Veja Também

  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::fetchAll() - Fetches the remaining rows from a result set
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set
  • PDOStatement::fetchObject() - Fetches the next row and returns it as an object
  • PDOStatement::setFetchMode() - Define o modo de carga de dados para esta instrução


Fetches the remaining rows from a result set

  • « PDOStatement::fetch
  • PDOStatement::fetchColumn »
  • PHP Manual
  • PDOStatement
  • Fetches the remaining rows from a result set

PDOStatement::fetchAll

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::fetchAll — Fetches the remaining rows from a result set

Descrição

public PDOStatement::fetchAll(int $mode = PDO::FETCH_DEFAULT): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_COLUMN, int $column): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_FUNC, callable $callback): array

Parâmetros

mode

Controls the contents of the returned array as documented in
PDOStatement::fetch().
Defaults to value of PDO::ATTR_DEFAULT_FETCH_MODE
(which defaults to PDO::FETCH_BOTH)

To return an array consisting of all values of a single column from the result set, specify PDO::FETCH_COLUMN. You can specify which column you want with the column parameter.

To fetch only the unique values of a single column from the result set, bitwise-OR PDO::FETCH_COLUMN with PDO::FETCH_UNIQUE.

To return an associative array grouped by the values of a specified column, bitwise-OR PDO::FETCH_COLUMN with PDO::FETCH_GROUP.

The following are dynamic parameters that are depending on the fetch mode. They can't be used with named parameters.
column

Used with PDO::FETCH_COLUMN. Returns the indicated 0-indexed column.

class

Used with PDO::FETCH_CLASS. Returns instances of the specified class, mapping the columns of each row to named properties in the class.

constructorArgs

Arguments of custom class constructor when the mode parameter is PDO::FETCH_CLASS.

callback

Used with PDO::FETCH_FUNC. Returns the results of calling the specified function, using each row's columns as parameters in the call.

Valor Retornado

PDOStatement::fetchAll() returns an array containing all of the remaining rows in the result set. The array represents each row as either an array of column values or an object with properties corresponding to each column name. An empty array is returned if there are zero results to fetch.

Using this method to fetch large result sets will result in a heavy demand on system and possibly network resources. Rather than retrieving all of the data and manipulating it in PHP, consider using the database server to manipulate the result sets. For example, use the WHERE and ORDER BY clauses in SQL to restrict results before retrieving and processing them with PHP.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Registro de Alterações

Versão | Descrição
8.0.0 | This method always returns an array now, while previously false may have been returned on failure.

Exemplos

Exemplo #1 Fetch all remaining rows in a result set

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the remaining rows in the result set */
print "Fetch all of the remaining rows in the result set:\n";
$result = $sth->fetchAll();
print_r($result);
?>

O exemplo acima produzirá algo semelhante a:

Fetch all of the remaining rows in the result set:
Array
(
    [0] => Array
        (
            [name] => apple
            [0] => apple
            [colour] => red
            [1] => red
        )

    [1] => Array
        (
            [name] => pear
            [0] => pear
            [colour] => green
            [1] => green
        )

    [2] => Array
        (
            [name] => watermelon
            [0] => watermelon
            [colour] => pink
            [1] => pink
        )

)

Exemplo #2 Fetching all values of a single column from a result set

The following example demonstrates how to return all of the values of a single column from a result set, even though the SQL statement itself may return multiple columns per row.

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the values of the first column */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>

O exemplo acima produzirá algo semelhante a:

Array(3)
(
    [0] =>
    string(5) => apple
    [1] =>
    string(4) => pear
    [2] =>
    string(10) => watermelon
)

Exemplo #3 Grouping all values by a single column

The following example demonstrates how to return an associative array grouped by the values of the specified column in the result set. The array contains three keys: values apple and pear are returned as arrays that contain two different colours, while watermelon is returned as an array that contains only one colour.

<?php
$insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)");
$insert->execute(array('apple', 'green'));
$insert->execute(array('pear', 'yellow'));

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Group values by the first column */
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  ["apple"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(3) "red"
  }
  ["pear"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(6) "yellow"
  }
  ["watermelon"]=>
  array(1) {
    [0]=>
    string(5) "pink"
  }
}

Exemplo #4 Instantiating a class for each result

The following example demonstrates the behaviour of the PDO::FETCH_CLASS fetch style.

<?php
class fruit {
public $name;
public $colour;
}

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit");
var_dump($result);
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  object(fruit)#1 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(5) "green"
  }
  [1]=>
  object(fruit)#2 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(6) "yellow"
  }
  [2]=>
  object(fruit)#3 (2) {
    ["name"]=>
    string(10) "watermelon"
    ["colour"]=>
    string(4) "pink"
  }
  [3]=>
  object(fruit)#4 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(3) "red"
  }
  [4]=>
  object(fruit)#5 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(5) "green"
  }
}

Exemplo #5 Calling a function for each result

The following example demonstrates the behaviour of the PDO::FETCH_FUNC fetch style.

<?php
function fruit($name, $colour) {
return "{$name}: {$colour}";
}

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit");
var_dump($result);
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  string(12) "apple: green"
  [1]=>
  string(12) "pear: yellow"
  [2]=>
  string(16) "watermelon: pink"
  [3]=>
  string(10) "apple: red"
  [4]=>
  string(11) "pear: green"
}

Veja Também

  • PDO::query() - Prepara e executa uma instrução SQL sem espaços reservados
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set
  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDOStatement::setFetchMode() - Define o modo de carga de dados para esta instrução


Returns a single column from the next row of a result set

  • « PDOStatement::fetchAll
  • PDOStatement::fetchObject »
  • PHP Manual
  • PDOStatement
  • Returns a single column from the next row of a result set

PDOStatement::fetchColumn

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::fetchColumn — Returns a single column from the next row of a result set

Descrição

public PDOStatement::fetchColumn(int $column = 0): mixed

Returns a single column from the next row of a result set or false if there are no more rows.

Nota:

PDOStatement::fetchColumn() should not be used to retrieve boolean columns, as it is impossible to distinguish a value of false from there being no more rows to retrieve. Use PDOStatement::fetch() instead.

Parâmetros

column

0-indexed number of the column you wish to retrieve from the row. If no value is supplied, PDOStatement::fetchColumn() fetches the first column.

Valor Retornado

PDOStatement::fetchColumn() returns a single column from the next row of a result set or false if there are no more rows.

Aviso

There is no way to return another column from the same row if you use PDOStatement::fetchColumn() to retrieve data.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Return first column of the next row

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

print "Fetch the first column from the first row in the result set:\n";
$result = $sth->fetchColumn();
print "name = $result\n";

print "Fetch the second column from the second row in the result set:\n";
$result = $sth->fetchColumn(1);
print "colour = $result\n";
?>

O exemplo acima produzirá:

Fetch the first column from the first row in the result set:
name = lemon
Fetch the second column from the second row in the result set:
colour = red

Veja Também

  • PDO::query() - Prepara e executa uma instrução SQL sem espaços reservados
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchAll() - Fetches the remaining rows from a result set
  • PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
  • PDOStatement::setFetchMode() - Define o modo de carga de dados para esta instrução


Fetches the next row and returns it as an object

  • « PDOStatement::fetchColumn
  • PDOStatement::getAttribute »
  • PHP Manual
  • PDOStatement
  • Fetches the next row and returns it as an object

PDOStatement::fetchObject

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.4)

PDOStatement::fetchObject — Fetches the next row and returns it as an object

Descrição

public PDOStatement::fetchObject(?string $class = "stdClass", array $constructorArgs = []): object|false

Fetches the next row and returns it as an object. This function is an
alternative to PDOStatement::fetch() with
PDO::FETCH_CLASS or
PDO::FETCH_OBJ style.

When an object is fetched, its properties are assigned from respective column values, and afterwards its constructor is invoked.

Parâmetros

class

Name of the created class.

constructorArgs

Elements of this array are passed to the constructor.

Valor Retornado

Returns an instance of the required class with property names that correspond to the column names ou false em caso de falha.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Veja Também

  • PDOStatement::fetch() - Fetches the next row from a result set


Retrieve a statement attribute

  • « PDOStatement::fetchObject
  • PDOStatement::getColumnMeta »
  • PHP Manual
  • PDOStatement
  • Retrieve a statement attribute

PDOStatement::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::getAttribute — Retrieve a statement attribute

Descrição

public PDOStatement::getAttribute(int $name): mixed

Gets an attribute of the statement. Currently, no generic attributes exist but only driver specific:

  • PDO::ATTR_CURSOR_NAME (Firebird and ODBC specific): Get the name of cursor for UPDATE ... WHERE CURRENT OF.

Note that driver specific attributes must not be used with other drivers.

Parâmetros

name

The attribute to query.

Valor Retornado

Returns the attribute value.

Veja Também

  • PDO::getAttribute() - Recuperar um atributo da conexão com o banco de dados
  • PDO::setAttribute() - Define um atributo
  • PDOStatement::setAttribute() - Define um atributo na instrução


Returns metadata for a column in a result set

  • « PDOStatement::getAttribute
  • PDOStatement::getIterator »
  • PHP Manual
  • PDOStatement
  • Returns metadata for a column in a result set

PDOStatement::getColumnMeta

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::getColumnMeta — Returns metadata for a column in a result set

Descrição

public PDOStatement::getColumnMeta(int $column): array|false

Retrieves the metadata for a 0-indexed column in a result set as an associative array.

Aviso

Some drivers may not implement PDOStatement::getColumnMeta(), as it is optional. However, all PDO drivers documented in the manual implement this function.

Parâmetros

column

The 0-indexed column in the result set.

Valor Retornado

Returns an associative array containing the following values representing the metadata for a single column:

Column metadata
Name | Value
native_type | The PHP native type used to represent the column value.
driver:decl_type | The SQL type used to represent the column value in the database. If the column in the result set is the result of a function, this value is not returned by PDOStatement::getColumnMeta().
flags | Any flags set for this column.
name | The name of this column as returned by the database.
table | The name of this column's table as returned by the database.
len | The length of this column. Normally -1 for types other than floating point decimals.
precision | The numeric precision of this column. Normally 0 for types other than floating point decimals.
pdo_type | The type of this column as represented by the PDO::PARAM_* constants.

Returns false if the requested column does not exist in the result set, or if no result set exists.

Exemplos

Exemplo #1 Retrieving column metadata

The following example shows the results of retrieving the metadata for a single column generated by a function (COUNT) in a PDO_SQLITE driver.

<?php
$select = $DB->query('SELECT COUNT(*) FROM fruit');
$meta = $select->getColumnMeta(0);
var_dump($meta);
?>

O exemplo acima produzirá:

array(6) {
  ["native_type"]=>
  string(7) "integer"
  ["flags"]=>
  array(0) {
  }
  ["name"]=>
  string(8) "COUNT(*)"
  ["len"]=>
  int(-1)
  ["precision"]=>
  int(0)
  ["pdo_type"]=>
  int(2)
}

Veja Também

  • PDOStatement::columnCount() - Returns the number of columns in the result set
  • PDOStatement::rowCount() - Returns the number of rows affected by the last SQL statement


Gets result set iterator

  • « PDOStatement::getColumnMeta
  • PDOStatement::nextRowset »
  • PHP Manual
  • PDOStatement
  • Gets result set iterator

PDOStatement::getIterator

(PHP 8)

PDOStatement::getIterator — Gets result set iterator

Descrição

public PDOStatement::getIterator(): Iterator

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Advances to the next rowset in a multi-rowset statement handle

  • « PDOStatement::getIterator
  • PDOStatement::rowCount »
  • PHP Manual
  • PDOStatement
  • Advances to the next rowset in a multi-rowset statement handle

PDOStatement::nextRowset

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::nextRowset — Advances to the next rowset in a multi-rowset statement handle

Descrição

public PDOStatement::nextRowset(): bool

Some database servers support stored procedures that return more than one rowset (also known as a result set). PDOStatement::nextRowset() enables you to access the second and subsequent rowsets associated with a PDOStatement object. Each rowset can have a different set of columns from the preceding rowset.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Fetching multiple rowsets returned from a stored procedure

The following example shows how to call a stored procedure, MULTIPLE_ROWSETS, which returns three rowsets. We use a do-while loop to call the PDOStatement::nextRowset() method until it returns false and terminates the loop when no more rowsets are available.

<?php
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
$rowset = $stmt->fetchAll(PDO::FETCH_NUM);
if ($rowset) {
printResultSet($rowset, $i);
}
$i++;
} while ($stmt->nextRowset());

function printResultSet(&$rowset, $i) {
print "Result set $i:\n";
foreach ($rowset as $row) {
foreach ($row as $col) {
print $col . "\t";
}
print "\n";
}
print "\n";
}
?>

O exemplo acima produzirá:

Result set 1:
apple    red
banana   yellow

Result set 2:
orange   orange    150
banana   yellow    175

Result set 3:
lime     green
apple    red
banana   yellow

Veja Também

  • PDOStatement::columnCount() - Returns the number of columns in the result set
  • PDOStatement::execute() - Executes a prepared statement
  • PDOStatement::getColumnMeta() - Returns metadata for a column in a result set
  • PDO::query() - Prepara e executa uma instrução SQL sem espaços reservados


Returns the number of rows affected by the last SQL statement

  • « PDOStatement::nextRowset
  • PDOStatement::setAttribute »
  • PHP Manual
  • PDOStatement
  • Returns the number of rows affected by the last SQL statement

PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::rowCount — Returns the number of rows affected by the last SQL statement

Descrição

public PDOStatement::rowCount(): int

PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.

For statements that produce result sets, such as SELECT, the behavior is undefined and can be different for each driver. Some databases may return the number of rows produced by that statement (e.g. MySQL in buffered mode), but this behaviour is not guaranteed for all databases and should not be relied on for portable applications.

Nota:

This method returns "0" (zero) with the SQLite driver at all times, and with the PostgreSQL driver only when setting the PDO::ATTR_CURSOR statement attribute to PDO::CURSOR_SCROLL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of rows.

Erros/Exceções

Emite um erro de nível E_WARNING se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_WARNING.

Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE estiver definido como PDO::ERRMODE_EXCEPTION.

Exemplos

Exemplo #1 Return the number of deleted rows

PDOStatement::rowCount() returns the number of rows affected by a DELETE, INSERT, or UPDATE statement.

<?php
/* Delete all rows from the FRUIT table */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Return number of rows that were deleted */
print "Return number of rows that were deleted:\n";
$count = $del->rowCount();
print "Deleted $count rows.\n";
?>

O exemplo acima produzirá algo semelhante a:

Return number of rows that were deleted:
Deleted 9 rows.

Exemplo #2 Counting rows returned by a SELECT statement

For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement. Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of matching rows.

<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();

print "There are " . $count . " matching records.";

O exemplo acima produzirá algo semelhante a:

There are 2 matching records.

Veja Também

  • PDOStatement::columnCount() - Returns the number of columns in the result set
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set
  • PDO::query() - Prepara e executa uma instrução SQL sem espaços reservados


Define um atributo na instrução

  • « PDOStatement::rowCount
  • PDOStatement::setFetchMode »
  • PHP Manual
  • PDOStatement
  • Define um atributo na instrução

PDOStatement::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::setAttribute — Define um atributo na instrução

Descrição

public PDOStatement::setAttribute(int $attribute, mixed $value): bool

Define um atributo na instrução. Atualmente não há atributos genericos definidos, apenas atributos específicos do driver:

  • PDO::ATTR_CURSOR_NAME (Específico do Firebird e do ODBC): Define o nome do cursor para UPDATE ... WHERE CURRENT OF.

Note que atributos específicos de drivers não devem ser usados com outros drivers.

Parâmetros

attribute

O atibuto a modificar.

value

O valor para definir o attribute, pode requerer um tipo específico dependendo do atributo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • PDO::getAttribute() - Recuperar um atributo da conexão com o banco de dados
  • PDO::setAttribute() - Define um atributo
  • PDOStatement::getAttribute() - Retrieve a statement attribute


Define o modo de carga de dados para esta instrução

  • « PDOStatement::setAttribute
  • PDORow »
  • PHP Manual
  • PDOStatement
  • Define o modo de carga de dados para esta instrução

PDOStatement::setFetchMode

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::setFetchMode — Define o modo de carga de dados para esta instrução

Descrição

public PDOStatement::setFetchMode(int $mode): bool
public PDOStatement::setFetchMode(int $mode = PDO::FETCH_COLUMN, int $colno): bool
public PDOStatement::setFetchMode(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs = null): bool
public PDOStatement::setFetchMode(int $mode = PDO::FETCH_INTO, object $object): bool

Parâmetros

mode

O modo de carga precisa ser uma das constantes PDO::FETCH_*.

colno

Número da coluna.

class

Nome da classe.

constructorArgs

Argumentos do construtor.

object

Objeto.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Definindo um modo de carga

O seguinte exemplo demonstra como o PDOStatement::setFetchMode() altera o modo padrão de carga em um objeto PDOStatement.

<?php
$stmt = $dbh->query('SELECT name, colour, calories FROM fruit');
$stmt->setFetchMode(PDO::FETCH_NUM);
foreach ($stmt as $row) {
print $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
}

O exemplo acima produzirá algo semelhante a:

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150


A classe PDORow

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 1.0.0)

Introdução

Representa uma linha de um conjunto de resultados retornado pelo PDOStatement::fetch() chamado com o modo de recuperação PDO_FETCH_LAZY.

Objetos desta classe não podem ser instanciados e não são serializáveis.

O objeto PDORow permite acesso aos dados retornados como se tanto o modo PDO::FETCH_OBJ quanto o modo PDO::FETCH_BOTH fossem usados. Isso significa que os dados retornados podem ser acessados como propriedades de objeto, e como um array indexado tanto pelo nome da coluna quanto pelo número de deslocamento da coluna.

Cuidado

Acesso a uma propriedade indefinida retorna null sem emitir um aviso.

Resumo da classe

final class PDORow {
/* Propriedades */
public string $queryString;
}

Propriedades

queryString

String de consulta usada pelo PDOStatement que retornou o objeto PDORow.

Erros/Exceções

Gera um Error ao tentar escrever ou unset() em qualquer propriedade.


A classe PDOException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Representa um erro levantado pelo PDO. Você não deve lançar uma PDOException do seu próprio código. Veja Exceções para mais informações sobre Exceções em PHP.

Resumo da classe

class PDOException extends RuntimeException {
/* Propriedades */
protected int|string $code;
public ?array $errorInfo = null;
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

errorInfo

Corresponde a PDO::errorInfo() ou PDOStatement::errorInfo()

code

Código de erro SQLSTATE. Use Exception::getCode() para acessá-lo.


Drivers do PDO

Índice

  • CUBRID (PDO)
  • MS SQL Server (PDO)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • MS SQL Server (PDO)
  • Oracle (PDO)
  • ODBC and DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)

Os seguintes drivers atualmente implementam a interface PDO:

Nome do Driver | Bancos de Dados Suportados
PDO_CUBRID | Cubrid
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD | Firebird
PDO_IBM | IBM DB2
PDO_INFORMIX | IBM Informix Dynamic Server
PDO_MYSQL | MySQL 3.x/4.x/5.x/8.x
PDO_OCI | Oracle Call Interface
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
PDO_PGSQL | PostgreSQL
PDO_SQLITE | SQLite 3 and SQLite 2
PDO_SQLSRV | Microsoft SQL Server / SQL Azure


Funções CUBRID (PDO_CUBRID)

Introdução

PDO_CUBRID é um driver que implementa a interface PHP Data Objects (PDO) para permitir acesso do PHP a bancos de dados CUBRID.

Nota:

A versão atual do PDO_CUBRID não suporta conexão persistente agora.

Instalação

Para construir a extensão PDO_CUBRID, o SGBD CUBRID deve estar instalado no mesmo sistema que o PHP. O PDO_CUBRID é uma extensão » PECL, então siga as instruções em Instalação das extensões PECL para instalar a extensão PDO_CUBRID. Emita o comando configure para apontar para a localização do diretório base do CUBRID da seguinte forma:

   $ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
O comando configure utiliza por padrão o valor da variável de ambiente CUBRID.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows. Para informações detalhadas sobre a instalação no Linux e Windows manualmente, leia o arquivo build-guide.html no pacote PECL CUBRID para referência.

Recursos do PDO_CUBRID

Cursores Roláveis

PDO_CUBRID suporta cursores roláveis. O tipo de cursor padrão é somente para frente, e você pode usar a opção do driver em PDO::prepare() para mudar o tipo de cursor.

Timeout

PDO_CUBRID suporta definição de tempo limite de execução de declarações SQL; Você pode usar PDO::setAttribute() para definir o valor do timeout.

Modo de Autocommit e Transação

PDO_CUBRID suporta tanto o modo de autocommit quanto transações, e o modo de autocommit está habilitado por padrão. Você pode usar PDO::setAttribute() para mudar seu estado.

Se você usar PDO::beginTransaction() para iniciar uma transação, ela desabilitará automaticamente o modo de autocommit e restaurará após PDO::commit() ou PDO::rollBack().

Nota: Antes de desabilitar o modo de autocommit, qualquer instrução pendente é automaticamente processada.

Múltiplas Declarações SQL

PDO_CUBRID suporta Múltiplas declarações SQL. declarações SQL são separadas por ponto e vírgula (;).

Informações de Esquema

PDO_CUBRID implementa PDO::cubrid_schema() para obter informações de esquema.

LOBs

PDO_CUBRID suporta tipo de dado BLOB/CLOB. O LOB no PDO é representado como um fluxo, de forma que LOBs possam ser inseridos através de vinculação a um fluxo, e obtidos pela leitura de um fluxo retornado pelo CUBRID PDO. Por exemplo:

Exemplo #1 Inserir LOBs no CUBRID PDO

<?php
$fp = fopen('lob_test.png', 'rb');

$sql_stmt = "INSERT INTO lob_test(name, content) VALUES('lob_test.png', ?)";

$stmt = $dbh->prepare($sql_stmt);
$ret = $stmt->bindParam(1, $fp, PDO::PARAM_LOB);
$ret = $stmt->execute();
?>

Exemplo #2 Buscar LOBs no CUBRID PDO

<?php
$sql_stmt = "SELECT content FROM lob_test WHERE name='lob_test.png'";

$stmt = $dbh->prepare($sql_stmt);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_NUM);

header("Content-Type: image/png");
fpassthru($result[0]);
?>

Meta-dados de Coluna

O PDOStatement::getColumnMeta() no CUBRID PDO retornará um array associativo contendo os seguintes valores:

  • type
  • name
  • table
  • def
  • precision
  • scale
  • not_null
  • auto_increment
  • unique_key
  • multiple_key
  • primary_key
  • foreign_key
  • reverse_index
  • reverse_unique

Tipo de Dados de Coleção

PDO_CUBRID suporta tipo de dados SET/MULTISET/SEQUENCE. Se o tipo de dados não for especificado, o padrão será char. Por exemplo:

Exemplo #3 Inserir conjunto no CUBRID PDO com tipo de dado padrão.

<?php
$conn_str ="cubrid:dbname=demodb;host=localhost;port=33000";
$cubrid_pdo = new PDO($conn_str, 'dba', '');

$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(VARCHAR))");

$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
$data = array("abc","def","ghi");
$ret = $stmt->bindParam(1, $data, PDO::PARAM_NULL);
$ret = $stmt->execute();
var_Dump($ret);
?>

Exemplo #4 Especificar tipo de dado ao inserir conjunto no CUBRID PDO

<?php
$conn_str ="cubrid:dbname=demodb;host=localhost;port=33000";
$cubrid_pdo = new PDO($conn_str, 'dba', '');

$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(int))");

$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
$data = array(1,2,3,4);
$ret = $stmt->bindParam(1, $data, 0,0,"int");
$ret = $stmt->execute();
var_Dump($ret);
?>

Tipos de Dados Vinculados CUBRID para o quinto parâmetro de PDOStatement::bindParam():

  • CHAR
  • STRING
  • NCHAR
  • VARNCHAR
  • BIT
  • VARBIT
  • NUMERIC
  • NUMBER
  • INT
  • SHORT
  • BIGINT
  • MONETARY
  • FLOAT
  • DOUBLE
  • DATE
  • TIME
  • DATETIME
  • TIMESTAMP

Constantes pré-definidas

As constantes abaixo são definidas por este driver e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução. Além disso, estas constantes específicas do driver só devem ser usadas se este driver estiver sendo usado. Usar atributos específicos de um driver com outro driver pode resultar em comportamento inesperado. PDO::getAttribute() pode ser usada para obter o atributo PDO::ATTR_DRIVER_NAME para verificar o driver, se o código puder ser executado com vários drivers.

As seguintes constantes podem ser usadas ao definir o atributo do banco de dados. Elas podem ser passadas para PDO::getAttribute() ou PDO::setAttribute().

PDO::CUBRID attribute flags
Constante | Descrição
PDO::CUBRID_ATTR_ISOLATION_LEVEL | Nível de isolamento de transação para a conexão do banco de dados.
PDO::CUBRID_ATTR_LOCK_TIMEOUT | Tempo limite de transação em segundos.
PDO::CUBRID_ATTR_MAX_STRING_LENGTH | Somente leitura. O comprimento máximo da string para bit, varbit, char, varchar, nchar, tipos de dados nchar quando usando o API PDO CUBRID.

As seguintes constantes podem ser usadas ao definir o nível de isolamento da transação. Elas podem ser passadas para PDO::getAttribute() ou retornadas por PDO::setAttribute().

Flags de nível de isolamento do PDO::CUBRID
Constante | Descrição
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | O nível de isolamento mais baixo (1). Uma leitura suja, não repetível ou leitura fantasma pode ocorrer para a tupla e uma leitura não repetível pode ocorrer para a tabela também.
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE | Um nível de isolamento relativamente baixo (2). Uma leitura suja não ocorre, mas uma leitura não repetível ou fantasma pode ocorrer.
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE | O isolamento padrão do CUBRID (3). Uma leitura suja, não repetível ou leitura fantasma pode ocorrer para a tupla, mas uma leitura repetível é garantida para a tabela.
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE | Um nível de isolamento relativamente baixo (4). Uma leitura suja não ocorre, mas uma leitura não repetível ou fantasma pode ocorrer.
PDO::TRAN_REP_CLASS_REP_INSTANCE | Um nível de isolamento relativamente alto (5). Uma leitura suja ou não repetível não ocorre, mas uma leitura fantasma pode.
PDO::TRAN_SERIALIZABLE | O mais alto nível de isolamento (6). Problemas relacionados à concorrência (por exemplo, leitura suja, leitura não repetível, leitura fantasma, etc.) não ocorrem.

As seguintes constantes podem ser usadas ao obter informações de esquema. Elas podem ser passadas para PDO::cubrid_schema().

PDO::CUBRID schema flags
Constante | Descrição
PDO::CUBRID_SCH_TABLE | Obtenha o nome e o tipo da tabela no CUBRID.
PDO::CUBRID_SCH_VIEW | Obtenha o nome e o tipo da visão no CUBRID.
PDO::CUBRID_SCH_QUERY_SPEC | Obtenha a definição da consulta da visão.
PDO::CUBRID_SCH_ATTRIBUTE | Obtenha os atributos da coluna da tabela.
PDO::CUBRID_SCH_TABLE_ATTRIBUTE | Obtenha os atributos da tabela.
PDO::CUBRID_SCH_METHOD | Obtenha o método de instância. O método de instância é um método chamado por uma instância de classe. É usado com mais frequência do que o método de classe porque a maioria das operações é executada na instância.
PDO::CUBRID_SCH_TABLE_METHOD | Obtenha o método de classe. O método de classe é um método chamado por um objeto de classe. Geralmente é usado para criar uma nova instância de classe ou inicializá-la. Também é usado para acessar ou atualizar atributos de classe.
PDO::CUBRID_SCH_METHOD_FILE | Obtenha as informações do arquivo onde o método da tabela está definido.
PDO::CUBRID_SCH_SUPER_TABLE | Obtenha o nome e o tipo da tabela que herda atributos.
PDO::CUBRID_SCH_SUB_TABLE | Obtenha o nome e o tipo da tabela que herda atributos desta tabela.
PDO::CUBRID_SCH_CONSTRAINT | Obtenha as restrições (constraints) da tabela.
PDO::CUBRID_SCH_TRIGGER | Obtenha os disparadores (triggers) da tabela.
PDO::CUBRID_SCH_TABLE_PRIVILEGE | Obtenha informações de privilégio da tabela.
PDO::CUBRID_SCH_COL_PRIVILEGE | Obtenha informações de privilégio da coluna.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE | Obtenha a tabela super direta da tabela.
PDO::CUBRID_SCH_PRIMARY_KEY | Obtenha a chave primária da tabela.
PDO::CUBRID_SCH_IMPORTED_KEYS | Obtenha chaves importadas da tabela.
PDO::CUBRID_SCH_EXPORTED_KEYS | Obtenha chaves exportadas da tabela.
PDO::CUBRID_SCH_CROSS_REFERENCE | Obtenha relação de referência de duas tabelas.

Índice

  • PDO_CUBRID DSN — Conectando-se a bancos de dados CUBRID
  • PDO::cubrid_schema — Get the requested schema information


Conectando-se a bancos de dados CUBRID

  • « CUBRID (PDO)
  • PDO::cubrid_schema »
  • PHP Manual
  • CUBRID (PDO)
  • Conectando-se a bancos de dados CUBRID

PDO_CUBRID DSN

(PECL PDO_CUBRID >= 8.3.0.0001)

PDO_CUBRID DSN — Conectando-se a bancos de dados CUBRID

Descrição

O Nome da Fonte de Dados (DSN) PDO_CUBRID é composto pelos seguintes elementos, delimitados por ponto e vírgula:

DSN prefix

O prefixo DSN é cubrid:.

host

O nome do host no qual o servidor de banco de dados reside.

port

A porta na qual o servidor de banco de dados está em execução.

dbname

O nome do banco de dados.

Notas

Nota:

Ao estabelecer a conexão com o CUBRID, você deve fornecer nome de usuário e senha, exceto o DSN.

Exemplos

Exemplo #1 Exemplos de DSN PDO_CUBRID

O exemplo a seguir mostra um DSN PDO_CUBRID para se conectar a um banco de dados CUBRID:

cubrid:host=localhost;port=33000;dbname=demodb


Get the requested schema information

  • « PDO_CUBRID DSN
  • MS SQL Server (PDO) »
  • PHP Manual
  • CUBRID (PDO)
  • Get the requested schema information

PDO::cubrid_schema

(PECL PDO_CUBRID >= 8.3.0.0001)

PDO::cubrid_schema — Get the requested schema information

Descrição

public PDO::cubrid_schema(int $schema_type, string $table_name = ?, string $col_name = ?): array

This function is used to get the requested schema information from database. You have to designate table_name, if you want to get information on certain table, col_name, if you want to get information on certain column (can be used only with PDO::CUBRID_SCH_COL_PRIVILEGE).

The result of this function is returned as a two-dimensional array (column (associative array) * row (numeric array)). The following tables shows types of schema and the column structure of the result array to be returned based on the schema type.

Result Composition of Each Type
Schema | Column Number | Column Name | Value
PDO::CUBRID_SCH_TABLE | 1 | NAME |
 | 2 | TYPE | 0:system table 1:view 2:table
PDO::CUBRID_SCH_VIEW | 1 | NAME |
 | 2 | TYPE | 1:view
PDO::CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC |
PDO::CUBRID_SCH_ATTRIBUTE / PDO::CUBRID_SCH_TABLE_ATTRIBUTE | 1 | ATTR_NAME |
 | 2 | DOMAIN |
 | 3 | SCALE |
 | 4 | PRECISION |
 | 5 | INDEXED | 1:indexed
 | 6 | NOT NULL | 1:not null
 | 7 | SHARED | 1:shared
 | 8 | UNIQUE | 1:unique
 | 9 | DEFAULT |
 | 10 | ATTR_ORDER | base:1
 | 11 | CLASS_NAME |
 | 12 | SOURCE_CLASS |
 | 13 | IS_KEY | 1:key
PDO::CUBRID_SCH_METHOD / PDO::CUBRID_SCH_TABLE_METHOD | 1 | NAME |
 | 2 | RET_DOMAIN |
 | 3 | ARG_DOMAIN |
PDO::CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE |
PDO::CUBRID_SCH_SUPER_TABLE / PDO::CUBRID_SCH_DIRECT_SUPER_TABLE / PDO::CUBRID_SCH_SUB_TABLE | 1 | CLASS_NAME |
 | 2 | TYPE | 0:system table 1:view 2:table
PDO::CUBRID_SCH_CONSTRAINT | 1 | TYPE | 0:unique 1:index 2:reverse unique 3:reverse index
 | 2 | NAME |
 | 3 | ATTR_NAME |
 | 4 | NUM_PAGES |
 | 5 | NUM_KEYS |
 | 6 | PRIMARY_KEY | 1:primary key
 | 7 | KEY_ORDER | base:1
PDO::CUBRID_SCH_TRIGGER | 1 | NAME |
 | 2 | STATUS |
 | 3 | EVENT |
 | 4 | TARGET_CLASS |
 | 5 | TARGET_ATTR |
 | 6 | ACTION_TIME |
 | 7 | ACTION |
 | 8 | PRIORITY |
 | 9 | CONDITION_TIME |
 | 10 | CONDITION |
PDO::CUBRID_SCH_TABLE_PRIVILEGE / PDO::CUBRID_SCH_COL_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME |
 | 2 | PRIVILEGE |
 | 3 | GRANTABLE |
PDO::CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME |
 | 2 | ATTR_NAME |
 | 3 | KEY_SEQ | base:1
 | 4 | KEY_NAME |
PDO::CUBRID_SCH_IMPORTED_KEYS / PDO::CUBRID_SCH_EXPORTED_KEYS / PDO::CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME |
 | 2 | PKCOLUMN_NAME |
 | 3 | FKTABLE_NAME | base:1
 | 4 | FKCOLUMN_NAME |
 | 5 | KEY_SEQ | base:1
 | 6 | UPDATE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 7 | DELETE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 8 | FK_NAME |
 | 9 | PK_NAME |

Parâmetros

schema_type

Schema type that you want to know.

table_name

Table you want to know the schema of.

col_name

Column you want to know the schema of.

Valor Retornado

Array containing the schema information, when process is successful;

FALSE, when process is unsuccessful

Exemplos

Exemplo #1 A PDO::cubrid_schema() example

This example shows how to get primary key and foreign keys of table game.

<?php
$pk_list = $dbh->cubrid_schema(PDO::CUBRID_SCH_PRIMARY_KEY, "game");
print_r($pk_list);

$fk_list = $dbh->cubrid_schema(PDO::CUBRID_SCH_IMPORTED_KEYS, "game");
print_r($fk_list);
?>

O exemplo acima produzirá:

Result:
Array
(
    [0] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => athlete_code
            [KEY_SEQ] => 3
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

    [1] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => event_code
            [KEY_SEQ] => 2
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

    [2] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => host_year
            [KEY_SEQ] => 1
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

)
Array
(
    [0] => Array
        (
            [PKTABLE_NAME] => athlete
            [PKCOLUMN_NAME] => code
            [FKTABLE_NAME] => game
            [FKCOLUMN_NAME] => athlete_code
            [KEY_SEQ] => 1
            [UPDATE_RULE] => 1
            [DELETE_RULE] => 1
            [FK_NAME] => fk_game_athlete_code
            [PK_NAME] => pk_athlete_code
        )

    [1] => Array
        (
            [PKTABLE_NAME] => event
            [PKCOLUMN_NAME] => code
            [FKTABLE_NAME] => game
            [FKCOLUMN_NAME] => event_code
            [KEY_SEQ] => 1
            [UPDATE_RULE] => 1
            [DELETE_RULE] => 1
            [FK_NAME] => fk_game_event_code
            [PK_NAME] => pk_event_code
        )

)


Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

Introdução

PDO_DBLIB is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Microsoft SQL Server and Sybase databases through the FreeTDS library.

This extension is not available anymore on Windows.

On Windows, you should use SqlSrv, an alternative driver for MS SQL is available from Microsoft: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx .

If it is not possible to use SqlSrv, you can use the PDO_ODBC driver to connect to Microsoft SQL Server and Sybase databases, as the native Windows DB-LIB is ancient, thread un-safe and no longer supported by Microsoft.

Índice

  • PDO_DBLIB DSN — Connecting to Microsoft SQL Server and Sybase databases


Connecting to Microsoft SQL Server and Sybase databases

  • « MS SQL Server (PDO)
  • Firebird (PDO) »
  • PHP Manual
  • MS SQL Server (PDO)
  • Connecting to Microsoft SQL Server and Sybase databases

PDO_DBLIB DSN

(PECL PDO_DBLIB >= 0.9.0)

PDO_DBLIB DSN — Connecting to Microsoft SQL Server and Sybase databases

Descrição

The PDO_DBLIB Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is sybase: if PDO_DBLIB was linked against the Sybase ct-lib libraries, mssql: if PDO_DBLIB was linked against the Microsoft SQL Server libraries, or dblib: if PDO_DBLIB was linked against the FreeTDS libraries.

host

The hostname on which the database server resides. Defaults to 127.0.0.1.

dbname

The name of the database.

charset

The client character set.

appname

The application name (used in sysprocesses). Defaults to "PHP Generic DB-lib" or "PHP freetds".

secure

Currently unused.

Exemplos

Exemplo #1 PDO_DBLIB DSN examples

The following examples show a PDO_DBLIB DSN for connecting to Microsoft SQL Server and Sybase databases:

mssql:host=localhost;dbname=testdb
sybase:host=localhost;dbname=testdb
dblib:host=localhost;dbname=testdb


Firebird Functions (PDO_FIREBIRD)

Introdução

PDO_FIREBIRD is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Firebird database.

Instalação

Use --with-pdo-firebird[=DIR] to install the PDO Firebird extension, where the optional [=DIR] is the Firebird base install directory.

$ ./configure --with-pdo-firebird

Constantes pré-definidas

As constantes abaixo são definidas por este driver e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução. Além disso, estas constantes específicas do driver só devem ser usadas se este driver estiver sendo usado. Usar atributos específicos de um driver com outro driver pode resultar em comportamento inesperado. PDO::getAttribute() pode ser usada para obter o atributo PDO::ATTR_DRIVER_NAME para verificar o driver, se o código puder ser executado com vários drivers.

PDO::FB_ATTR_DATE_FORMAT (int)

Sets the date format.

PDO::FB_ATTR_TIME_FORMAT (int)

Sets the time format.

PDO::FB_ATTR_TIMESTAMP_FORMAT (int)

Sets the timestamp format.

Índice

  • PDO_FIREBIRD DSN — Connecting to Firebird databases


Connecting to Firebird databases

  • « Firebird (PDO)
  • IBM (PDO) »
  • PHP Manual
  • Firebird (PDO)
  • Connecting to Firebird databases

PDO_FIREBIRD DSN

(PECL PDO_FIREBIRD >= 0.1.0)

PDO_FIREBIRD DSN — Connecting to Firebird databases

Descrição

The PDO_FIREBIRD Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is firebird:.

dbname

The name of the database.

charset

The character set.

role

The SQL role name.

dialect

The dialect of the database; either 1 or 3. If not specified, the dialect defaults to 3. Available as of PHP 7.4.0.

Exemplos

Exemplo #1 PDO_FIREBIRD DSN example with path

The following example shows a PDO_FIREBIRD DSN for connecting to Firebird databases:

firebird:dbname=/path/to/DATABASE.FDB

Exemplo #2 PDO_FIREBIRD DSN example with port and path

The following example shows a PDO_FIREBIRD DSN for connecting to a Firebird database using hostname port and path:

firebird:dbname=hostname/port:/path/to/DATABASE.FDB

Exemplo #3 PDO_FIREBIRD DSN example with localhost and path to employee.fdb on Debian system

The following example shows a PDO_FIREBIRD DSN for connecting to a Firebird database employee.fdb using localhost:

firebird:dbname=localhost:/var/lib/firebird/2.5/data/employee.fdb

Exemplo #4 PDO_FIREBIRD DSN to connect to a dialect 1 database

The following example shows a PDO_FIREBIRD DSN for connecting to a Firebird database test.fdb which has been created using dialect 1. This is only supported as of PHP 7.4.0.

firebird:dbname=localhost:/var/lib/firebird/2.5/data/test.fdb;CHARSET=Windows-1252;dialect=1


IBM Functions (PDO_IBM)

Introdução

PDO_IBM is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to IBM databases.

Instalação

To build the PDO_IBM extension, the DB2 Client v9.1 or later must be installed on the same system as PHP. The DB2 Client can be downloaded from the IBM » Application Development Site.

Nota: Note

The DB2 Client v9.1 or later supports direct access to DB2 for Linux, UNIX, and Windows v8 and v9.1 servers.

The DB2 Client v9.1 also supports access to DB2 UDB for i5 and DB2 UDB for z/OS servers using the separately purchased » DB2 Connect product.

PDO_IBM is a » PECL extension, so follow the instructions in Instalação das extensões PECL to install the PDO_IBM extension. Issue the configure command to point to the location of the DB2 Client header files and libraries as follows:

bash$ ./configure --with-pdo-ibm=/path/to/sqllib[,shared]
The configure command defaults to the value of the DB2DIR environment variable.

Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

PDO_IBM Configuration Options
Nome | Padrão | Modificável | Registro de Alterações
pdo_ibm.i5_dbcs_alloc | "0" | INI_SYSTEM | Added in PDO_IBM 1.5.0
pdo_ibm.i5_override_ccsid | "0" | INI_SYSTEM | Added in PDO_IBM 1.5.0
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

pdo_ibm.i5_dbcs_alloc int

This options affects the internal buffer allocation strategy on IBM i. By default, this option is 0. When this option is set, buffers are allocated with a much larger size, in case the database is misleading about character size when converting between encodings. This option uses six times as much memory for buffers (to account for the largest possible UTF-8 sequences), but may be needed if truncated data is returned.

  • 0 - Minimum size buffers are allocated.

  • 1 - Larger size buffers are allocated.

pdo_ibm.i5_override_ccsid int

The ASCII CCSID to use for conversion from EBCDIC on IBM i. Setting this to 1208 will use UTF-8. By default, this is 0, which will select the default ASCII job CCSID.

To learn more about CCSIDs on IBM i, consult the » IBM documentation.

Índice

  • PDO_IBM DSN — Connecting to IBM databases


Connecting to IBM databases

  • « IBM (PDO)
  • Informix (PDO) »
  • PHP Manual
  • IBM (PDO)
  • Connecting to IBM databases

PDO_IBM DSN

(PECL PDO_IBM >= 0.9.0)

PDO_IBM DSN — Connecting to IBM databases

Descrição

The PDO_IBM Data Source Name (DSN) is based on the IBM CLI DSN. The major components of the PDO_IBM DSN are:

DSN prefix

The DSN prefix is ibm:.

DSN

The DSN can be any of the following:

  • a) Data source setup using db2cli.ini or odbc.ini

  • b) Catalogued database name i.e. database alias in the DB2 client catalog

  • c) Complete connection string in the following format: DRIVER={IBM DB2 ODBC DRIVER};DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password; where the parameters represent the following values:

    database

    The name of the database.

    hostname

    The hostname or IP address of the database server.

    port

    The TCP/IP port on which the database is listening for requests.

    username

    The username with which you are connecting to the database.

    password

    The password with which you are connecting to the database.

Exemplos

Exemplo #1 PDO_IBM DSN example using db2cli.ini

The following example shows a PDO_IBM DSN for connecting to an DB2 database cataloged as DB2_9 in db2cli.ini:

$db = new PDO("ibm:DSN=DB2_9", "", "");

[DB2_9]
Database=testdb
Protocol=tcpip
Hostname=11.22.33.444
Servicename=56789

Exemplo #2 PDO_IBM DSN example using a connection string

The following example shows a PDO_IBM DSN for connecting to an DB2 database named testdb using the DB2 CLI connection string syntax.

$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
  "HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");


Informix Functions (PDO_INFORMIX)

Introdução

PDO_INFORMIX is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Informix databases.

Instalação

To build the PDO_INFORMIX extension, the Informix Client SDK 2.81 UC1 or higher must be installed on the same system as PHP. The Informix Client SDK is available from the » IBM Informix Support Site.

PDO_INFORMIX is a » PECL extension, so follow the instructions in Instalação das extensões PECL to install the PDO_INFORMIX extension. Issue the configure command to point to the location of the Informix Client SDK header files and libraries as follows:

   bash$ ./configure --with-pdo-informix=/path/to/SDK[,shared]
The configure command defaults to the value of the INFORMIXDIR environment variable.

Scrollable cursors

PDO_INFORMIX supports scrollable cursors; however, they are not enabled by default. To enable scrollable cursor support, you must either set ENABLESCROLLABLECURSORS=1 in the corresponding ODBC connection settings in odbc.ini or pass the EnableScrollableCursors=1 clause in the DSN connection string.

Índice

  • PDO_INFORMIX DSN — Connecting to Informix databases


Connecting to Informix databases

  • « Informix (PDO)
  • MySQL (PDO) »
  • PHP Manual
  • Informix (PDO)
  • Connecting to Informix databases

PDO_INFORMIX DSN

(PECL PDO_INFORMIX >= 0.1.0)

PDO_INFORMIX DSN — Connecting to Informix databases

Descrição

The PDO_INFORMIX Data Source Name (DSN) is based on the Informix ODBC DSN string. Details on configuring an Informix ODBC DSN are available from the » Informix Dynamic Server Information Center. The major components of the PDO_INFORMIX DSN are:

DSN prefix

The DSN prefix is informix:.

DSN

The DSN can be either a data source setup using odbc.ini or a complete » connection string.

Exemplos

Exemplo #1 PDO_INFORMIX DSN example using odbc.ini

The following example shows a PDO_INFORMIX DSN for connecting to an Informix database cataloged as Infdrv33 in odbc.ini:

$db = new PDO("informix:DSN=Infdrv33", "", "");

[ODBC Data Sources]
Infdrv33=INFORMIX 3.3 32-BIT

[Infdrv33]
Driver=/opt/informix/csdk_2.81.UC1G2/lib/cli/iclis09b.so
Description=INFORMIX 3.3 32-BIT
Database=common_db
LogonID=testuser
pwd=testpass
Servername=ids_server
DB_LOCALE=en_US.819
OPTIMIZEAUTOCOMMIT=1
ENABLESCROLLABLECURSORS=1

Exemplo #2 PDO_INFORMIX DSN example using a connection string

The following example shows a PDO_INFORMIX DSN for connecting to an Informix database named common_db using the Informix connection string syntax.

$db = new PDO("informix:host=host.domain.com; service=9800;
    database=common_db; server=ids_server; protocol=onsoctcp;
    EnableScrollableCursors=1", "testuser", "tespass");


Funções do MySQL (PDO_MYSQL)

Introdução

PDO_MYSQL é um driver que implementa a interface PHP Data Objects (PDO) para habilitar o acesso do PHP aos bancos de dados MySQL.

PDO_MYSQL utiliza as preparações emuladas por padrão.

MySQL 8

Ao executar uma versão de PHP anterior a 7.1.16, ou 7.2.4, defina o plugin padrão de senhas do Servidor MySQL 8 para mysql_native_password ou poderão surgir erros similares a The server requested authentication method unknown to the client [caching_sha2_password] mesmo quando caching_sha2_password não seja usado.

Isto acontece porque o padrão do MySQL 8 é caching_sha2_password, um plugin que não é reconhecido pelas versões antigas do PHP (mysqlnd). Portanto, altere o plugin configurando default_authentication_plugin=mysql_native_password no arquivo my.cnf. O plugin caching_sha2_password é totalmente suportado a partir do PHP 7.4.4. Para versões anteriores do PHP, a extensão mysql_xdevapi suporta o plugin.

Aviso

Cuidado: Alguns tipos de tabelas do MySQL (storage engines) não suportam transações. Ao escrever código para um banco de dados transacional onde o tipo de tabela não suporta transações, o MySQL irá entender que a transação foi inicializada com sucesso. Além disso, qualquer query DDL irá, de forma implícita, executar o commit para qualquer transação que esteja pendente.

Nota:

O driver MySQL não suporta propriamente PDO::PARAM_INPUT_OUTPUT através de PDOStatement::bindParam(); embora tais parâmetros possam ser usados, eles não são atualizados (isto é, a saída real é ignorada).

Instalação

The common Unix distributions include binary versions of PHP that can be installed. Although these binary versions are typically built with support for the MySQL extensions, the extension libraries themselves may need to be installed using an additional package. Check the package manager that comes with your chosen distribution for availability.

For example, on Ubuntu the php5-mysql package installs the ext/mysql, ext/mysqli, and PDO_MYSQL PHP extensions. On CentOS, the php-mysql package also installs these three PHP extensions.

Alternatively, you can compile this extension yourself. Building PHP from source allows you to specify the MySQL extensions you want to use, as well as your choice of client library for each extension.

When compiling, use --with-pdo-mysql[=DIR] to install the PDO MySQL extension, where the optional [=DIR] is the MySQL base library. Mysqlnd is the default library. For details about choosing a library, see Choosing a MySQL library.

Optionally, the --with-mysql-sock[=DIR] sets to location to the MySQL unix socket pointer for all MySQL extensions, including PDO_MYSQL. If unspecified, the default locations are searched.

Optionally, the --with-zlib-dir[=DIR] is used to set the path to the libz install prefix.

$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock

SSL support is enabled using the appropriate PDO_MySQL constants, which is equivalent to calling the » MySQL C API function mysql_ssl_set(). Also, SSL cannot be enabled with PDO::setAttribute because the connection already exists. See also the MySQL documentation about » connecting to MySQL with SSL.

Constantes pré-definidas

As constantes abaixo são definidas por este driver e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução. Além disso, estas constantes específicas do driver só devem ser usadas se este driver estiver sendo usado. Usar atributos específicos de um driver com outro driver pode resultar em comportamento inesperado. PDO::getAttribute() pode ser usada para obter o atributo PDO::ATTR_DRIVER_NAME para verificar o driver, se o código puder ser executado com vários drivers.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (bool)
Por padrão todas as instruções são executadas com buffer ativo. Se este atributo for definido para false em um objeto PDO, o driver MySQL usará o modo sem buffer.

Exemplo #1 Configurando o mode sem buffer no MySQL

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_password');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$unbufferedResult = $pdo->query("SELECT Name FROM City");
foreach ($unbufferedResult as $row) {
echo $row['Name'] . PHP_EOL;
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (int)

Habilita LOAD LOCAL INFILE.

Note que essa constante só pode ser usada no array driver_options ao construir um novo manipulador de banco de dados.

PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY (string)

Permite restringir o carregamento através de LOCAL DATA a arquivos localizados neste diretório designado. Disponível a partir do PHP 8.1.0.

Note que esta constante só pode ser usada no array driver_options ao construir um novo manipulador de banco de dados.

PDO::MYSQL_ATTR_INIT_COMMAND (string)

Comando para executar ao se conectar no servidor MySQL. Irá ser executado novamente ao reconectar.

Note que essa constante só pode ser usada no array driver_options ao construir um novo manipulador de banco de dados.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (int)

Lê configurações do arquivo definido nas opções ao invés do arquivo my.cnf. Essa opção não está disponível se mysqlnd for usado, porque mysqlnd não lê os arquivos de configurações do mysql.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (int)

Lê configurações do grupo nomeado em my.cnf ou no arquivo especificado com MYSQL_READ_DEFAULT_FILE. Essa opção não está disponível se mysqlnd for usado, porque mysqlnd não lê os arquivos de configurações do mysql.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (int)

Tamanho máximo do buffer. O padrão é 1 MiB. Essa constante não é suportada quando utilizado mysqlnd.

PDO::MYSQL_ATTR_DIRECT_QUERY (int)

Executa consultas diretamente, não usa declarações preparadas.

PDO::MYSQL_ATTR_FOUND_ROWS (int)

Retorna a quantidade de linhas encontradas (matched), e não a quantidade de linhas modificadas.

PDO::MYSQL_ATTR_IGNORE_SPACE (int)

Permite espaços depois do nome das funções. Torna o nome de todas as funções palavras reservadas.

PDO::MYSQL_ATTR_COMPRESS (int)

Habilita a compressão na comunicação de rede.

PDO::MYSQL_ATTR_SSL_CA (int)

Caminho para o arquivo da autoridade certificadora (CA) SSL.

PDO::MYSQL_ATTR_SSL_CAPATH (int)

Caminho para o diretório que contém os certificados SSL confiáveis da autoridade certificadora (CA), armazenados no formato PEM.

PDO::MYSQL_ATTR_SSL_CERT (int)

Caminho para o certificado SSL.

PDO::MYSQL_ATTR_SSL_CIPHER (int)

Uma lista de um ou mais "ciphers" admissíveis para usar na encriptação SSL, em um formato compreendido pelo OpenSSL. For example: DHE-RSA-AES256-SHA:AES128-SHA

PDO::MYSQL_ATTR_SSL_KEY (int)

Caminho para a chave SSL.

PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT (int)

Fornece uma maneira de desabilitar verificação do certificado SSL do servidor. Esta opção está disponível somente com mysqlnd.

Isto existe a partir do PHP 7.0.18 and PHP 7.1.4.

PDO::MYSQL_ATTR_MULTI_STATEMENTS (int)

Desabilita a execução de consultas múltiplas nas funções PDO::prepare() e PDO::query() quando definido como false.

Note que essa constante só pode ser usada no array driver_options ao construir um novo manipulador de banco de dados.

Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

PDO_MYSQL Configuration Options
Nome | Padrão | Modificável
pdo_mysql.default_socket | "/tmp/mysql.sock" | INI_SYSTEM
pdo_mysql.debug | NULL | INI_SYSTEM
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

pdo_mysql.default_socket string

Sets a Unix domain socket. This value can either be set at compile time if a domain socket is found at configure. This ini setting is Unix only.

pdo_mysql.debug bool

Enables debugging for PDO_MYSQL. This setting is only available when PDO_MYSQL is compiled against mysqlnd and in PDO debug mode.

Índice

  • PDO_MYSQL DSN — Conectando a bancos de dados MySQL


Conectando a bancos de dados MySQL

  • « MySQL (PDO)
  • MS SQL Server (PDO) »
  • PHP Manual
  • MySQL (PDO)
  • Conectando a bancos de dados MySQL

PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSN — Conectando a bancos de dados MySQL

Descrição

O PDO_MYSQL Data Source Name (DSN) é composto dos seguintes elementos:

DSN prefix

O prefixo DSN é mysql:.

host

O hostname no qual o servidor do banco de dados está.

port

O número da porta onde o servidor do banco de dados está escutando.

dbname

O nome do banco de dados.

unix_socket

O socket Unix do MySQL (não deve ser usado com host ou port).

charset

O character set. Veja a documentação de character set para mais informações.

Exemplos

Exemplo #1 PDO_MYSQL DSN examples

O exemplo a seguir demonstra um PDO_MYSQL DSN para conexão com banco de dados MySQL:

mysql:host=localhost;dbname=testdb
Exemplos mais completos:
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

Notas

Nota: Somente em Unix:

Quando o hostname é definido como "localhost", a conexão ao servidor é feita através de um socket de domínio. Se o PDO_MYSQL é compilado usando libmysqlclient, a localização do socket é a mesma localização da compilação de libmysqlclient. Se PDO_MYSQL foi compilado usando mysqlnd, um socket padrão pode ser definido através da configuração pdo_mysql.default_socket.


Microsoft SQL Server Functions (PDO_SQLSRV)

Introdução

PDO_SQLSRV is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MS SQL Server (starting with SQL Server 2005) and SQL Azure databases.

Instalação

The most recent version of the driver is available for download here: » SQLSRV download. The driver sources are hosted in a » public repository.

For more information about system requirements, see » SQLSRV System Requirements.

On Windows the PDO_SQLSRV extension is enabled by downloading and adding appropriate DLL files to the PHP extension directory and the corresponding entry to the php.ini file.

On Linux and macOS, the PDO_SQLSRV extension can be installed using » PECL. See the » installation tutorial for details.

Constantes pré-definidas

As constantes abaixo são definidas por este driver e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução. Além disso, estas constantes específicas do driver só devem ser usadas se este driver estiver sendo usado. Usar atributos específicos de um driver com outro driver pode resultar em comportamento inesperado. PDO::getAttribute() pode ser usada para obter o atributo PDO::ATTR_DRIVER_NAME para verificar o driver, se o código puder ser executado com vários drivers.

PDO::SQLSRV_TXN_READ_UNCOMMITTED (int)
This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Read Uncommitted.
PDO::SQLSRV_TXN_READ_COMMITTED (int)
This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Read Committed.
PDO::SQLSRV_TXN_REPEATABLE_READ (int)
This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Repeateable Read.
PDO::SQLSRV_TXN_SNAPSHOT (int)
This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Snapshot.
PDO::SQLSRV_TXN_SERIALIZABLE (int)
This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Serializable.
PDO::SQLSRV_ENCODING_BINARY (int)
Specifies that data is sent/retrieved as a raw byte stream to/from the server without performing encoding or translation. This constant can be passed to PDOStatement::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_SYSTEM (int)
Specifies that data is sent/retrieved to/from the server as 8-bit characters as specified in the code page of the Windows locale that is set on the system. Any multi-byte characters or characters that do not map into this code page are substituted with a single byte question mark (?) character. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_UTF8 (int)
Specifies that data is sent/retrieved to/from the server in UTF-8 encoding. This is the default encoding. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_DEFAULT (int)
Specifies that data is sent/retrieved to/from the server according to PDO::SQLSRV_ENCODING_SYSTEM if specified during connection. The connection's encoding is used if specified in a prepare statement. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
PDO::SQLSRV_ATTR_QUERY_TIMEOUT (int)
A non-negative integer representing the timeout period, in seconds. Zero (0) is the default and means no timeout. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, and PDO::prepare.
PDO::SQLSRV_ATTR_DIRECT_QUERY (int)
Indicates that a query should be executed directly, without being prepared. This constant can be passed to PDO::setAttribute, and PDO::prepare. For more information, see » Direct and Prepared Statement Execution.

Índice

  • PDO_SQLSRV DSN — Connecting to MS SQL Server and SQL Azure databases


Connecting to MS SQL Server and SQL Azure databases

  • « MS SQL Server (PDO)
  • Oracle (PDO) »
  • PHP Manual
  • MS SQL Server (PDO)
  • Connecting to MS SQL Server and SQL Azure databases

PDO_SQLSRV DSN

(PECL pdo_sqlsrv >= 2.0.1)

PDO_SQLSRV DSN — Connecting to MS SQL Server and SQL Azure databases

Descrição

The PDO_SQLSRV Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is sqlsrv:.

APP

The application name used in tracing.

ConnectionPooling

Specifies whether the connection is assigned from a connection pool (1 or true) or not (0 or false).

Database

The name of the database.

Encrypt

Specifies whether the communication with SQL Server is encrypted (1 or true) or unencrypted (0 or false).

Failover_Partner

Specifies the server and instance of the database's mirror (if enabled and configured) to use when the primary server is unavailable.

LoginTimeout

Specifies the number of seconds to wait before failing the connection attempt.

MultipleActiveResultSets

Disables or explicitly enables support for multiple active Result sets (MARS).

QuotedId

Specifies whether to use SQL-92 rules for quoted identifiers (1 or true) or to use legacy Transact-SQL rules (0 or false).

Server

The name of the database server.

TraceFile

Specifies the path for the file used for trace data.

TraceOn

Specifies whether ODBC tracing is enabled (1 or true) or disabled (0 or false) for the connection being established.

TransactionIsolation

Specifies the transaction isolation level. The accepted values for this
option are PDO::SQLSRV_TXN_READ_UNCOMMITTED, PDO::SQLSRV_TXN_READ_COMMITTED,
PDO::SQLSRV_TXN_REPEATABLE_READ, PDO::SQLSRV_TXN_SNAPSHOT, and
PDO::SQLSRV_TXN_SERIALIZABLE.

TrustServerCertificate

Specifies whether the client should trust (1 or true) or reject (0 or false) a self-signed server certificate.

WSID

Specifies the name of the computer for tracing.

Exemplos

Exemplo #1 PDO_SQLSRV DSN examples

The following example shows how to connecto to a specified MS SQL Server database:

$c = new PDO("sqlsrv:Server=localhost;Database=testdb", "UserName", "Password");

The following example shows how to connect to a MS SQL Server database on a specified port:

$c = new PDO("sqlsrv:Server=localhost,1521;Database=testdb", "UserName", "Password");

The following example shows how to connecto to a SQL Azure database with server ID 12345abcde. Note that when you connect to SQL Azure with PDO, your username will be UserName@12345abcde (UserName@ServerId).

$c = new PDO("sqlsrv:Server=12345abcde.database.windows.net;Database=testdb", "UserName@12345abcde", "Password");


Oracle Functions (PDO_OCI)

Instalação

If the Oracle Database is on the same machine as PHP, the database software already contains the necessary libraries. When PHP is on a different machine, use the free » Oracle Instant Client libraries. For details refer to the OCI8 Requirements section.

Use --with-pdo-oci[=DIR] to install the PDO Oracle OCI extension, where the optional [=DIR] is the Oracle Home directory. [=DIR] defaults to the $ORACLE_HOME environment variable.

Use --with-pdo-oci=instantclient,prefix,version for an Oracle Instant Client SDK, where prefix and version are configured.

// Using $ORACLE_HOME
$ ./configure --with-pdo-oci

// Using OIC for Linux with 10.2.0.3 RPMs with a /usr prefix
$ ./configure --with-pdo-oci=instantclient,/usr,10.2.0.3

Constantes pré-definidas

As constantes abaixo são definidas por este driver e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução. Além disso, estas constantes específicas do driver só devem ser usadas se este driver estiver sendo usado. Usar atributos específicos de um driver com outro driver pode resultar em comportamento inesperado. PDO::getAttribute() pode ser usada para obter o atributo PDO::ATTR_DRIVER_NAME para verificar o driver, se o código puder ser executado com vários drivers.

PDO::OCI_ATTR_ACTION (int)

Provides a way to specify the action on the database session.

Isto existe a partir do PHP 7.2.16 and 7.3.3

PDO::OCI_ATTR_CLIENT_INFO (int)

Provides a way to specify the client info on the database session.

Isto existe a partir do PHP 7.2.16 and 7.3.3

PDO::OCI_ATTR_CLIENT_IDENTIFIER (int)

Provides a way to specify the client identifier on the database session.

Isto existe a partir do PHP 7.2.16 and 7.3.3

PDO::OCI_ATTR_MODULE (int)

Provides a way to specify the module on the database session.

Isto existe a partir do PHP 7.2.16 and 7.3.3

Índice

  • PDO_OCI DSN — Connecting to Oracle databases


Connecting to Oracle databases

  • « Oracle (PDO)
  • ODBC and DB2 (PDO) »
  • PHP Manual
  • Oracle (PDO)
  • Connecting to Oracle databases

PDO_OCI DSN

(PECL PDO_OCI >= 0.1.0)

PDO_OCI DSN — Connecting to Oracle databases

Descrição

The PDO_OCI Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is oci:.

dbname (Oracle Instant Client)

The URI for the Oracle Instant Client connection takes the form of dbname=//hostname:port-number/database. If you are connecting to a database defined in tnsnames.ora, use only the name of the database: dbname=database.

charset

The client-side character set for the current environment handle.

Exemplos

Exemplo #1 PDO_OCI DSN examples

The following examples show a PDO_OCI DSN for connecting to Oracle databases:

// Connect to a database defined in tnsnames.ora
oci:dbname=mydb

// Connect using the Oracle Instant Client
oci:dbname=//localhost:1521/mydb


ODBC and DB2 Functions (PDO_ODBC)

Introdução

PDO_ODBC is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to databases through ODBC drivers or through the IBM DB2 Call Level Interface (DB2 CLI) library. PDO_ODBC currently supports three different "flavours" of database drivers:

ibm-db2

Supports access to IBM DB2 Universal Database, Cloudscape, and Apache Derby servers through the free DB2 express-C client.

unixODBC

Supports access to database servers through the unixODBC driver manager and the database's own ODBC drivers.

generic

Offers a compile option for ODBC driver managers that are not explicitly supported by PDO_ODBC.

On Windows, php_pdo_odbc.dll has to be enabled as extension in php.ini. It is linked against the Windows ODBC Driver Manager so that PHP can connect to any database cataloged as a System DSN.

Instalação

PDO_ODBC on UNIX systems

  1. PDO_ODBC is included in the PHP source. You can compile the PDO_ODBC extension as either a static or shared module using the following configure commands.

    ibm_db2

    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
    To build PDO_ODBC with the ibm-db2 flavour, you have to have previously installed the DB2 application development headers on the same machine on which you are compiling PDO_ODBC. The DB2 application development headers are an installable option in the DB2 servers, and are also available as part of the DB2 Application Development Client freely available for download from the IBM developerWorks » website.

    If you do not supply a location for the DB2 libraries and headers to the configure command, PDO_ODBC defaults to /home/db2inst1/sqllib.

    unixODBC

    ./configure --with-pdo-odbc=unixODBC,/usr/local
    If you do not supply a location for the unixODBC libraries and headers to the configure command, PDO_ODBC defaults to /usr/local.

    generic
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags

Constantes pré-definidas

As constantes abaixo são definidas por este driver e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução. Além disso, estas constantes específicas do driver só devem ser usadas se este driver estiver sendo usado. Usar atributos específicos de um driver com outro driver pode resultar em comportamento inesperado. PDO::getAttribute() pode ser usada para obter o atributo PDO::ATTR_DRIVER_NAME para verificar o driver, se o código puder ser executado com vários drivers.

PDO_ODBC_TYPE (string)

PDO::ODBC_ATTR_USE_CURSOR_LIBRARY (int)

This option controls whether the ODBC cursor library is used. The ODBC cursor library supports some advanced ODBC features (e.g. block scrollable cursors), which may not be implemented by the driver. The following values are supported:

  • PDO::ODBC_SQL_USE_IF_NEEDED (the default): use the ODBC cursor library when needed.

  • PDO::ODBC_SQL_USE_DRIVER: never use the ODBC cursor library.

  • PDO::ODBC_SQL_USE_ODBC: always use the ODBC cursor library.

PDO::ODBC_ATTR_ASSUME_UTF8 (bool)

Windows only. If true, UTF-16 encoded character data (CHAR, VARCHAR and LONGVARCHAR) is converted to UTF-8 when reading from or writing data to the database. If false (the default), character encoding conversion may be done by the driver.

Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

PDO_ODBC Configuration Options
Nome | Padrão | Modificável | Registro de Alterações
pdo_odbc.connection_pooling | "strict" | INI_ALL |
pdo_odbc.db2_instance_name | NULL | INI_SYSTEM | Este recurso defasado certamente será removido no futuro.
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

pdo_odbc.connection_pooling string

Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" (equals to ""). The parameter describes how strict the connection manager should be when matching connection parameters to existing pooled connections. strict is the recommend default, and will result in the use of cached connections only when all the connection parameters match exactly. relaxed will result in the use of cached connections when similar connection parameters are used. This can result in increased use of the cache, at the risk of bleeding connection information between (for example) virtual hosts.

This setting can only be changed from the php.ini file, and affects the entire process; any other modules loaded into the process that use the same ODBC libraries will be affected too, including the Unified ODBC extension.

Aviso

relaxed matching should not be used on a shared server, for security reasons.

Dica

Leave this setting at the default strict setting unless you have good reason to change it.

pdo_odbc.db2_instance_name string

If you compile PDO_ODBC using the db2 flavour, this setting sets the value of the DB2INSTANCE environment variable on Linux and UNIX operating systems to the specified name of the DB2 instance. This enables PDO_ODBC to resolve the location of the DB2 libraries and make cataloged connections to DB2 databases.

This setting can only be changed from the php.ini file, and affects the entire process; any other modules loaded into the process that use the same ODBC libraries will be affected too, including the Unified ODBC extension.

This setting has no effect on Windows.

Índice

  • PDO_ODBC DSN — Connecting to ODBC or DB2 databases


Connecting to ODBC or DB2 databases

  • « ODBC and DB2 (PDO)
  • PostgreSQL (PDO) »
  • PHP Manual
  • ODBC and DB2 (PDO)
  • Connecting to ODBC or DB2 databases

PDO_ODBC DSN

(PECL PDO_ODBC >= 0.1.0)

PDO_ODBC DSN — Connecting to ODBC or DB2 databases

Descrição

The PDO_ODBC Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is odbc:. If you are connecting to a database cataloged in the ODBC driver manager or the DB2 catalog, you can append the cataloged name of the database to the DSN.

DSN

The name of the database as cataloged in the ODBC driver manager or the DB2 catalog. Alternately, you can provide a complete ODBC connection string to connect to a database as described at » http://www.connectionstrings.com/.

UID

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

PWD

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

Exemplos

Exemplo #1 PDO_ODBC DSN example (ODBC driver manager)

The following example shows a PDO_ODBC DSN for connecting to an ODBC database cataloged as testdb in the ODBC driver manager:

odbc:testdb

Exemplo #2 PDO_ODBC DSN example (IBM DB2 uncataloged connection)

The following example shows a PDO_ODBC DSN for connecting to an IBM DB2 database named SAMPLE using the full ODBC DSN syntax:

odbc:DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=localhost;PORT=50000;DATABASE=SAMPLE;PROTOCOL=TCPIP;UID=db2inst1;PWD=ibmdb2;

Exemplo #3 PDO_ODBC DSN example (Microsoft Access uncataloged connection)

The following example shows a PDO_ODBC DSN for connecting to a Microsoft Access database stored at C:\db.mdb using the full ODBC DSN syntax:

odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\db.mdb;Uid=Admin


PostgreSQL Functions (PDO_PGSQL)

Introdução

PDO_PGSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to PostgreSQL databases.

Tipos de Recurso

This extension defines a stream resource returned by PDO::pgsqlLOBOpen().

Instalação

Use --with-pdo-pgsql[=DIR] to install the PDO PostgreSQL extension, where the optional [=DIR] is the PostgreSQL base install directory, or the path to pg_config.

$ ./configure --with-pdo-pgsql

Constantes pré-definidas

As constantes abaixo são definidas por este driver e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução. Além disso, estas constantes específicas do driver só devem ser usadas se este driver estiver sendo usado. Usar atributos específicos de um driver com outro driver pode resultar em comportamento inesperado. PDO::getAttribute() pode ser usada para obter o atributo PDO::ATTR_DRIVER_NAME para verificar o driver, se o código puder ser executado com vários drivers.

PDO::PGSQL_ATTR_DISABLE_PREPARES (int)

Send the query and the parameters to the server together in a single call, avoiding the need to create a named prepared statement separately. If the query is only going to be executed once this can reduce latency by avoiding an unnecessary server round-trip.

General notes

Nota:

bytea fields are returned as streams.

Índice

  • PDO_PGSQL DSN — Connecting to PostgreSQL databases
  • PDO::pgsqlCopyFromArray — Copy data from PHP array into table
  • PDO::pgsqlCopyFromFile — Copy data from file into table
  • PDO::pgsqlCopyToArray — Copy data from database table into PHP array
  • PDO::pgsqlCopyToFile — Copy data from table into file
  • PDO::pgsqlGetNotify — Get asynchronous notification
  • PDO::pgsqlGetPid — Get the server PID
  • PDO::pgsqlLOBCreate — Creates a new large object
  • PDO::pgsqlLOBOpen — Opens an existing large object stream
  • PDO::pgsqlLOBUnlink — Deletes the large object


Connecting to PostgreSQL databases

  • « PostgreSQL (PDO)
  • PDO::pgsqlCopyFromArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Connecting to PostgreSQL databases

PDO_PGSQL DSN

(PHP 5 >= 5.1.0, PHP 7, PECL PDO_PGSQL >= 0.1.0)

PDO_PGSQL DSN — Connecting to PostgreSQL databases

Descrição

The PDO_PGSQL Data Source Name (DSN) is composed of the following elements, delimited by spaces or semicolons:

DSN prefix

The DSN prefix is pgsql:.

host

The hostname on which the database server resides.

port

The port on which the database server is running.

dbname

The name of the database.

user

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

password

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

sslmode

The SSL mode. Supported values and their meaning are listed in the » PostgreSQL Documentation.

Nota: All semicolons in the DSN string are replaced by spaces, because PostgreSQL expects this format. This implies that semicolons in any of the components (e.g. password or dbname) are not supported.

Exemplos

Exemplo #1 PDO_PGSQL DSN examples

The following example shows a PDO_PGSQL DSN for connecting to a PostgreSQL database:

pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass

The following example shows a PDO_PGSQL DSN for connecting to a PostgreSQL database via unix socket /tmp/.s.PGSQL.5432:

pgsql:host=/tmp;port=5432;dbname=testdb;user=bruce;password=mypass


Copy data from PHP array into table

  • « PDO_PGSQL DSN
  • PDO::pgsqlCopyFromFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from PHP array into table

PDO::pgsqlCopyFromArray

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

PDO::pgsqlCopyFromArray — Copy data from PHP array into table

Descrição

public PDO::pgsqlCopyFromArray(
string $table_name,
array $rows,
string $delimiter = "\t",
string $null_as = "\\\\N",
string $fields = ?
): bool

Copies data from rows array to table table_name using delimiter as fields delimiter and fields list

Parâmetros

table_name

String containing table name

rows

Array of strings with fields separated by delimiter

delimiter

Delimiter used in rows array

null_as

How to interpret null values

fields

List of fields to insert

Valor Retornado

Returns true on success, ou false em caso de falha.


Copy data from file into table

  • « PDO::pgsqlCopyFromArray
  • PDO::pgsqlCopyToArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from file into table

PDO::pgsqlCopyFromFile

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

PDO::pgsqlCopyFromFile — Copy data from file into table

Descrição

public PDO::pgsqlCopyFromFile(
string $table_name,
string $filename,
string $delimiter = "\t",
string $null_as = "\\\\N",
string $fields = ?
): bool

Copies data from file specified by filename into table table_name using delimiter as fields delimiter and fields list

Parâmetros

table_name

String containing table name

filename

Filename containing data to import

delimiter

Delimiter used in file specified by filename

null_as

How to interpret null values

fields

List of fields to insert

Valor Retornado

Returns true on success, ou false em caso de falha.


Copy data from database table into PHP array

  • « PDO::pgsqlCopyFromFile
  • PDO::pgsqlCopyToFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from database table into PHP array

PDO::pgsqlCopyToArray

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

PDO::pgsqlCopyToArray — Copy data from database table into PHP array

Descrição

public PDO::pgsqlCopyToArray(
string $table_name,
string $delimiter = "\t",
string $null_as = "\\\\N",
string $fields = ?
): array|false

Copies data from table into array using delimiter as fields delimiter and fields list

Parâmetros

table_name

String containing table name

delimiter

Delimiter used in rows

null_as

How to interpret null values

fields

List of fields to export

Valor Retornado

Returns an array of rows, ou false em caso de falha.


Copy data from table into file

  • « PDO::pgsqlCopyToArray
  • PDO::pgsqlGetNotify »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from table into file

PDO::pgsqlCopyToFile

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

PDO::pgsqlCopyToFile — Copy data from table into file

Descrição

public PDO::pgsqlCopyToFile(
string $table_name,
string $filename,
string $delimiter = "\t",
string $null_as = "\\\\N",
string $fields = ?
): bool

Copies data from table into file specified by filename using delimiter as fields delimiter and fields list

Parâmetros

table_name

String containing table name

filename

Filename to export data

delimiter

Delimiter used in file specified by filename

null_as

How to interpret null values

fields

List of fields to insert

Valor Retornado

Returns true on success, ou false em caso de falha.


Get asynchronous notification

  • « PDO::pgsqlCopyToFile
  • PDO::pgsqlGetPid »
  • PHP Manual
  • PostgreSQL (PDO)
  • Get asynchronous notification

PDO::pgsqlGetNotify

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

PDO::pgsqlGetNotify — Get asynchronous notification

Descrição

public PDO::pgsqlGetNotify(int $result_type = PDO::FETCH_USE_DEFAULT, int $ms_timeout = 0): array|false

Returns a result set representing a pending asynchronous notification.

Parâmetros

result_type

The format the result set should be returned as, represented as a PDO::FETCH_* constant.

ms_timeout

The length of time to wait for a response, in milliseconds.

Valor Retornado

If one or more notifications is pending, returns a single row, with fields message and pid, otherwise returns false.


Get the server PID

  • « PDO::pgsqlGetNotify
  • PDO::pgsqlLOBCreate »
  • PHP Manual
  • PostgreSQL (PDO)
  • Get the server PID

PDO::pgsqlGetPid

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

PDO::pgsqlGetPid — Get the server PID

Descrição

public PDO::pgsqlGetPid(): int

Returns the server's PID.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The server's PID.


Creates a new large object

  • « PDO::pgsqlGetPid
  • PDO::pgsqlLOBOpen »
  • PHP Manual
  • PostgreSQL (PDO)
  • Creates a new large object

PDO::pgsqlLOBCreate

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBCreate — Creates a new large object

Descrição

public PDO::pgsqlLOBCreate(): string

PDO::pgsqlLOBCreate() creates a large object and returns the OID of that object. You may then open a stream on the object using PDO::pgsqlLOBOpen() to read or write data to it. The OID can be stored in columns of type OID and be used to reference the large object, without causing the row to grow arbitrarily large. The large object will continue to live in the database until it is removed by calling PDO::pgsqlLOBUnlink().

Large objects can be up to 2GB in size, but are cumbersome to use; you need to ensure that PDO::pgsqlLOBUnlink() is called prior to deleting the last row that references its OID from your database. In addition, large objects have no access controls. As an alternative, try the bytea column type; recent versions of PostgreSQL allow bytea columns of up to 1GB in size and transparently manage the storage for optimal row size.

Nota: This function must be called within a transaction.

Parâmetros

PDO::pgsqlLOBCreate() takes no parameters.

Valor Retornado

Returns the OID of the newly created large object on success, or false on failure.

Exemplos

Exemplo #1 A PDO::pgsqlLOBCreate() example

This example creates a new large object and copies the contents of a file into it. The OID is then stored into a table.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$oid = $db->pgsqlLOBCreate();
$stream = $db->pgsqlLOBOpen($oid, 'w');
$local = fopen($filename, 'rb');
stream_copy_to_stream($local, $stream);
$local = null;
$stream = null;
$stmt = $db->prepare("INSERT INTO BLOBS (ident, oid) VALUES (?, ?)");
$stmt->execute(array($some_id, $oid));
$db->commit();
?>

Veja Também

  • PDO::pgsqlLOBOpen() - Opens an existing large object stream
  • PDO::pgsqlLOBUnlink() - Deletes the large object
  • pg_lo_create() - Create a large object


Opens an existing large object stream

  • « PDO::pgsqlLOBCreate
  • PDO::pgsqlLOBUnlink »
  • PHP Manual
  • PostgreSQL (PDO)
  • Opens an existing large object stream

PDO::pgsqlLOBOpen

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpen — Opens an existing large object stream

Descrição

public PDO::pgsqlLOBOpen(string $oid, string $mode = "rb"): resource|false

PDO::pgsqlLOBOpen() opens a stream to access the data referenced by oid. If mode is r, the stream is opened for reading, if mode is w, then the stream will be opened for writing. You can use all the usual filesystem functions, such as fread(), fwrite() and fgets() to manipulate the contents of the stream.

Nota: This function, and all manipulations of the large object, must be called and carried out within a transaction.

Parâmetros

oid

A large object identifier.

mode

If mode is r, open the stream for reading. If mode is w, open the stream for writing.

Valor Retornado

Returns a stream resource on success ou false em caso de falha.

Exemplos

Exemplo #1 A PDO::pgsqlLOBOpen() example

Following on from the PDO::pgsqlLOBCreate() example, this code snippet retrieves the large object from the database and outputs it to the browser.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt = $db->prepare("select oid from BLOBS where ident = ?");
$stmt->execute(array($some_id));
$stmt->bindColumn('oid', $oid, PDO::PARAM_STR);
$stmt->fetch(PDO::FETCH_BOUND);
$stream = $db->pgsqlLOBOpen($oid, 'r');
header("Content-type: application/octet-stream");
fpassthru($stream);
?>

Veja Também

  • PDO::pgsqlLOBCreate() - Creates a new large object
  • PDO::pgsqlLOBUnlink() - Deletes the large object
  • pg_lo_open() - Open a large object


Deletes the large object

  • « PDO::pgsqlLOBOpen
  • SQLite (PDO) »
  • PHP Manual
  • PostgreSQL (PDO)
  • Deletes the large object

PDO::pgsqlLOBUnlink

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBUnlink — Deletes the large object

Descrição

public PDO::pgsqlLOBUnlink(string $oid): bool

Deletes a large object from the database identified by OID.

Nota: This function must be called within a transaction.

Parâmetros

oid

A large object identifier

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 A PDO::pgsqlLOBUnlink() example

This example unlinks a large object from the database prior to deleting the row that references it from the blobs table we've been using in our PDO::pgsqlLOBCreate() and PDO::pgsqlLOBOpen() examples.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$db->pgsqlLOBUnlink($oid);
$stmt = $db->prepare("DELETE FROM BLOBS where ident = ?");
$stmt->execute(array($some_id));
$db->commit();
?>

Veja Também

  • PDO::pgsqlLOBOpen() - Opens an existing large object stream
  • PDO::pgsqlLOBCreate() - Creates a new large object


Funções do SQLite (PDO_SQLITE)

Introdução

PDO_SQLITE é um driver que implementa a Interface de Objeto de Dados do PHP (PDO) para permitir o acesso a bancos de dados SQLite 3.

Nota:

O PDO_SQLITE permite usar strings separadas de streams junto com PDO::PARAM_LOB.

Instalação

O driver PDO PDO_SQLITE está habilitado por padrão. Para desabilitá-lo, a opção --without-pdo-sqlite[=DIR] pode ser usada, onde o valor opcional [=DIR] é o diretório de instalação do sqlite. A partir do PHP 7.4.0, a » libsqlite = 3.5.0 é necessária. Anteriormente, a libsqlite que vinha com o PHP poderia ser usada e era o padrão se [=DIR] fosse omitido.

Nota: Configuração adicional no Windows a partir do PHP 7.4.0

Para que esta extensão funcione, existem arquivos DLL que devem estar disponíveis no PATH do sistema Windows. Para saber como fazer isso, veja a FAQ intitulada "Como eu adiciono o meu diretório PHP ao PATH do Windows". Embora copiar arquivos DLL da pasta do PHP para o diretório system do Windows também funcione (porque o diretório system está, por padrão, no PATH do sistema), isso não é recomendado. Esta extensão requer que os seguintes arquivos estejam no PATH: libsqlite3.dll.

Índice

  • DSN PDO_SQLITE — Conectando a bancos de dados SQLite
  • PDO::sqliteCreateAggregate — Registra uma função de agregação definida pelo usuário para uso em declarações SQL
  • PDO::sqliteCreateCollation — Registra uma Função Definida pelo Usuário para uso como função de collation em declarações SQL
  • PDO::sqliteCreateFunction — Registra uma Função Definida pelo Usuário para uso em declarações SQL


Conectando a bancos de dados SQLite

  • « SQLite (PDO)
  • PDO::sqliteCreateAggregate »
  • PHP Manual
  • SQLite (PDO)
  • Conectando a bancos de dados SQLite

DSN PDO_SQLITE

(Não há informação de versão disponível, talvez apenas no Git)

DSN PDO_SQLITE — Conectando a bancos de dados SQLite

Descrição

O Data Source Name (DSN) PDO_SQLITE é composto pelos seguintes elementos:

Prefixo DSN (SQLite 3)

O prefixo DSN é sqlite:.

  • Para acessar um banco de dados em disco, o caminho absoluto deve ser adicionado ao prefixo DSN.

  • Para criar um banco de dados em memória, :memory: deve ser adicionado ao prefixo DSN.

  • Se o DSN consistir apenas no prefixo DSN, um banco de dados temporário será usado e será excluído quando a conexão for encerrada.

Exemplos

Exemplo #1 Exemplos de DSN PDO_SQLITE

Os exemplos a seguir mostram o DSN PDO_SQLITE para conexão com bancos de dados SQLite:

sqlite:/caminho/para/o/arquivo/banco.sq3
sqlite::memory:
sqlite:


Registra uma função de agregação definida pelo usuário para uso em declarações SQL

  • « DSN PDO_SQLITE
  • PDO::sqliteCreateCollation »
  • PHP Manual
  • SQLite (PDO)
  • Registra uma função de agregação definida pelo usuário para uso em declarações SQL

PDO::sqliteCreateAggregate

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateAggregate — Registra uma função de agregação definida pelo usuário para uso em declarações SQL

Descrição

public PDO::sqliteCreateAggregate(
string $function_name,
callable $step_func,
callable $finalize_func,
int $num_args = ?
): bool
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Este método é semelhante a PDO::sqliteCreateFunction, exceto que registra funções que podem ser usadas para calcular um resultado agregado através de todas as linhas de uma consulta.

A principal diferença entre este método e PDO::sqliteCreateFunction é que duas funções são necessárias para gerenciar a agregação.

Parâmetros

function_name

O nome da função usada nas declarações SQL.

step_func

Função callback chamada para cada linha do conjunto de resultados. A função PHP deve acumular o resultado e armazená-lo no contexto de agregação.

Esta função precisa ser definida como:

step(
mixed $context,
int $rownumber,
mixed $value,
mixed ...$values
): mixed
context

null para a primeira linha; nas linhas subsequentes terá o valor que foi retornado anteriormente da função step; isso deve ser usado para manter o estado de agregação.

rownumber

O número da linha atual.

value

O primeiro argumento passado para a agregação.

values

Outros argumentos passados para a agregação.

O valor retornado desta função será usado como o argumento context na próxima chamada das funções step ou finalize.

finalize_func

Função de chamada de retorno para agregar os dados "passados" de cada linha. Depois que todas as linhas forem processadas, esta função será chamada e deverá então pegar os dados do contexto de agregação e retornar o resultado. Esta função deve retornar um tipo reconhecido pelo SQLite (ou seja, um tipo escalar).

Esta função precisa ser definida como:

fini(mixed $context, int $rowcount): mixed
context

Contém o valor retornado da última chamada à função step.

rowcount

Contém o número de linhas nas quais a agregação foi executada.

O valor retornado desta função será usado como valor retornado da agregação.

num_args

Indica ao analisador SQLite se a função callback aceita um número predeterminado de argumentos.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de função de agregação max_length

<?php
$dados = array(
'um',
'dois',
'três',
'quatro',
'cinco',
'seis',
'sete',
'oito',
'nove',
'dez',
);
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE strings(a)");
$insert = $db->prepare('INSERT INTO strings VALUES (?)');
foreach ($dados as $string) {
$insert->execute(array($string));
}
$insert = null;

function max_len_step($context, $rownumber, $string)
{
if (strlen($string) > $context) {
$context = strlen($string);
}
return $context;
}

function max_len_finalize($context, $rowcount)
{
return $context === null ? 0 : $context;
}

$db->sqliteCreateAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());

?>

Neste exemplo, está sendo criada uma função de agregação que irá calcular o comprimento da string mais longa de uma das colunas da tabela. Para cada linha, a função max_len_step é chamada e recebe um parâmetro $context. O parâmetro de contexto é como qualquer outra variável PHP e pode conter um array ou até mesmo um valor de objeto. Neste exemplo, ele está sendo usado apenas para manter o comprimento máximo visto até agora; se a $string tiver um comprimento maior que o máximo atual, o contexto será atualizado para conter esse novo comprimento máximo.

Após todas as linhas terem sido processadas, o SQLite chama a função max_len_finalize para determinar o resultado agregado. Aqui, algum tipo de cálculo poderia ser realizado com base nos dados encontrados no parâmetro $context. Porém, neste exemplo simples, o resultado foi calculado à medida que a consulta avançava, portanto é necessário apenas retornar o valor do contexto.

Dica

NÃO é recomendado armazenar uma cópia dos valores no contexto e depois processá-los no final, pois isso faria com que o SQLite usasse muita memória para processar a consulta - basta pensar em quanta memória seria necessária se um milhão linhas fossem armazenadas na memória, cada uma contendo uma string de 32 bytes de comprimento.

Dica

PDO::sqliteCreateFunction e PDO::sqliteCreateAggregate podem ser usados para substituir funções SQL nativas do SQLite.

Veja Também

  • PDO::sqliteCreateFunction
  • sqlite_create_function()
  • sqlite_create_aggregate()


Registra uma Função Definida pelo Usuário para uso como função de collation em declarações SQL

  • « PDO::sqliteCreateAggregate
  • PDO::sqliteCreateFunction »
  • PHP Manual
  • SQLite (PDO)
  • Registra uma Função Definida pelo Usuário para uso como função de collation em declarações SQL

PDO::sqliteCreateCollation

(PHP 5 >= 5.3.11, PHP 7, PHP 8)

PDO::sqliteCreateCollation — Registra uma Função Definida pelo Usuário para uso como função de collation em declarações SQL

Descrição

public PDO::sqliteCreateCollation(string $name, callable $callback): bool
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Parâmetros

name

Nome da função de collation SQL a ser criada ou redefinida.

callback

O nome de uma função PHP ou função definida pelo usuário a ser aplicada como chamada de retorno, definindo o comportamento da collation. Ela deve aceitar duas strings e retornar como strcmp(), ou seja, deve retornar -1, 1 ou 0 se a primeira string for ordenada antes, depois ou for igual à segunda.

Esta função precisa ser definida como:

collation(string $string1, string $string2): int

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de PDO::sqliteCreateCollation()

<?php
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");

$db->sqliteCreateCollation('NATURAL_CMP', 'strnatcmp');
foreach ($db->query("SELECT col1 FROM test ORDER BY col1") as $row) {
echo $row['col1'] . "\n";
}
echo "\n";
foreach ($db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP") as $row) {
echo $row['col1'] . "\n";
}
?>

O exemplo acima produzirá:

a1
a10
a2

a1
a2
a10


Registra uma Função Definida pelo Usuário para uso em declarações SQL

  • « PDO::sqliteCreateCollation
  • Extensões de Banco de Dados Específicas de Terceiros »
  • PHP Manual
  • SQLite (PDO)
  • Registra uma Função Definida pelo Usuário para uso em declarações SQL

PDO::sqliteCreateFunction

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateFunction — Registra uma Função Definida pelo Usuário para uso em declarações SQL

Descrição

public PDO::sqliteCreateFunction(
string $function_name,
callable $callback,
int $num_args = -1,
int $flags = 0
): bool
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Este método permite registrar uma função PHP com o SQLite como uma UDF (Função Definida pelo Usuário), para que possa ser chamada a partir das declarações SQL.

A UDF pode ser usada em qualquer declaração SQL que possa chamar funções, como declarações SELECT e UPDATE e também em triggers.

Parâmetros

function_name

O nome da função usada nas declarações SQL.

callback

Função callback para tratar a função SQL definida.

Nota: As funções callback devem retornar um tipo reconhecido pelo SQLite (ou seja, um tipo escalar).

Esta função precisa ser definida como:

callback(mixed $value, mixed ...$values): mixed
value

O primeiro argumento passado para a função SQL.

values

Argumentos adicionais passados para a função SQL.

num_args

O número de argumentos que a função SQL utiliza. Se este parâmetro for -1, então a função SQL poderá receber qualquer número de argumentos.

flags

Uma conjunção bit a bit de flags. Atualmente, apenas PDO::SQLITE_DETERMINISTIC é suportada, o que especifica que a função sempre retorna o mesmo resultado dadas as mesmas entradas em uma única instrução SQL.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.1.4 | O parâmetro flags foi adicionado.

Exemplos

Exemplo #1 Exemplo de PDO::sqliteCreateFunction()

<?php
function md5_and_reverse($string)
{
return strrev(md5($string));
}

$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev', 'md5_and_reverse', 1);
$rows = $db->query('SELECT md5rev(filename) FROM files')->fetchAll();
?>

Neste exemplo, existe uma função que calcula a soma md5 de uma string e depois a inverte. Quando a instrução SQL é executada, ela retorna o valor do nome do arquivo transformado pela função. Os dados retornados em $rows contêm o resultado processado.

A beleza desta técnica é que não é necessário processar o resultado usando um laço foreach após os dados terem sido consultados.

Dica

PDO::sqliteCreateFunction e PDO::sqliteCreateAggregate podem ser usados para substituir funções SQL nativas do SQLite.

Veja Também

  • PDO::sqliteCreateAggregate
  • sqlite_create_function()
  • sqlite_create_aggregate()


Extensões de Banco de Dados Específicas de Terceiros

  • CUBRID
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • CUBRID Funções
    • CUBRID MySQL Compatibility Functions
    • CUBRID Obsolete Aliases and Functions
  • dBase
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções da dBase
  • Firebird/InterBase
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções para Firebird/InterBase
  • IBM DB2 — IBM DB2, Cloudscape and Apache Derby
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • IBM DB2 Funções
  • MongoDB — MongoDB driver
    • Instalação/Configuração
    • Tutorials
    • Driver Architecture and Internals — Explains the driver architecture, and special features
    • Security
    • MongoDB\Driver — MongoDB driver classes
    • MongoDB\BSON — BSON type classes and serialization functions
    • MongoDB\Driver\Monitoring — Monitoring classes and subscriber functions
    • MongoDB\Driver\Exception — Exception classes
  • MySQL — Drivers e Plugins MySQL
    • Visão geral dos drivers PHP para MySQL
    • MySQLi — Extensão MySQL Melhorada
    • Mysql_xdevapi
    • MySQL (Original) — Original MySQL API
    • Mysqlnd — Driver Nativo MySQL
  • OCI8 — Oracle OCI8
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • OCI8 Connection Handling and Connection Pooling
    • OCI8 Fast Application Notification (FAN) Support
    • OCI8 Transparent Application Failover (TAF) Support
    • OCI8 and DTrace Dynamic Tracing
    • Supported Datatypes
    • Funções OCI8
    • OCICollection — The OCICollection class
    • OCILob — A classe OCILob
    • OCI8 Obsolete Aliases and Functions
  • PostgreSQL
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções PostgreSQL
    • PgSql\Connection — The PgSql\Connection class
    • PgSql\Result — The PgSql\Result class
    • PgSql\Lob — The PgSql\Lob class
  • SQLite3
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • SQLite3 — A classe SQLite3
    • SQLite3Exception — A classe SQLite3Exception
    • SQLite3Stmt — A classe SQLite3Stmt
    • SQLite3Result — A classe SQLite3Result
  • SQLSRV — Driver Microsoft SQL Server para PHP
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções SQLSRV


CUBRID

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • CUBRID Funções
    • cubrid_bind — Bind variables to a prepared statement as parameters
    • cubrid_close_prepare — Close the request handle
    • cubrid_close_request — Close the request handle
    • cubrid_col_get — Get contents of collection type column using OID
    • cubrid_col_size — Get the number of elements in collection type column using OID
    • cubrid_column_names — Get the column names in result
    • cubrid_column_types — Get column types in result
    • cubrid_commit — Commit a transaction
    • cubrid_connect_with_url — Establish the environment for connecting to CUBRID server
    • cubrid_connect — Open a connection to a CUBRID Server
    • cubrid_current_oid — Get OID of the current cursor location
    • cubrid_disconnect — Close a database connection
    • cubrid_drop — Delete an instance using OID
    • cubrid_error_code_facility — Get the facility code of error
    • cubrid_error_code — Get error code for the most recent function call
    • cubrid_error_msg — Get last error message for the most recent function call
    • cubrid_execute — Execute a prepared SQL statement
    • cubrid_fetch — Fetch the next row from a result set
    • cubrid_free_result — Free the memory occupied by the result data
    • cubrid_get_autocommit — Get auto-commit mode of the connection
    • cubrid_get_charset — Return the current CUBRID connection charset
    • cubrid_get_class_name — Get the class name using OID
    • cubrid_get_client_info — Return the client library version
    • cubrid_get_db_parameter — Returns the CUBRID database parameters
    • cubrid_get_query_timeout — Get the query timeout value of the request
    • cubrid_get_server_info — Return the CUBRID server version
    • cubrid_get — Get a column using OID
    • cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column
    • cubrid_is_instance — Check whether the instance pointed by OID exists
    • cubrid_lob_close — Close BLOB/CLOB data
    • cubrid_lob_export — Export BLOB/CLOB data to file
    • cubrid_lob_get — Get BLOB/CLOB data
    • cubrid_lob_send — Read BLOB/CLOB data and send straight to browser
    • cubrid_lob_size — Get BLOB/CLOB data size
    • cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters
    • cubrid_lob2_close — Close LOB object
    • cubrid_lob2_export — Export the lob object to a file
    • cubrid_lob2_import — Import BLOB/CLOB data from a file
    • cubrid_lob2_new — Create a lob object
    • cubrid_lob2_read — Read from BLOB/CLOB data
    • cubrid_lob2_seek64 — Move the cursor of a lob object
    • cubrid_lob2_seek — Move the cursor of a lob object
    • cubrid_lob2_size64 — Get a lob object's size
    • cubrid_lob2_size — Get a lob object's size
    • cubrid_lob2_tell64 — Tell the cursor position of the LOB object
    • cubrid_lob2_tell — Tell the cursor position of the LOB object
    • cubrid_lob2_write — Write to a lob object
    • cubrid_lock_read — Set a read lock on the given OID
    • cubrid_lock_write — Set a write lock on the given OID
    • cubrid_move_cursor — Move the cursor in the result
    • cubrid_next_result — Get result of next query when executing multiple SQL statements
    • cubrid_num_cols — Return the number of columns in the result set
    • cubrid_num_rows — Get the number of rows in the result set
    • cubrid_pconnect_with_url — Open a persistent connection to CUBRID server
    • cubrid_pconnect — Open a persistent connection to a CUBRID server
    • cubrid_prepare — Prepare a SQL statement for execution
    • cubrid_put — Update a column using OID
    • cubrid_rollback — Roll back a transaction
    • cubrid_schema — Get the requested schema information
    • cubrid_seq_drop — Delete an element from sequence type column using OID
    • cubrid_seq_insert — Insert an element to a sequence type column using OID
    • cubrid_seq_put — Update the element value of sequence type column using OID
    • cubrid_set_add — Insert a single element to set type column using OID
    • cubrid_set_autocommit — Set autocommit mode of the connection
    • cubrid_set_db_parameter — Sets the CUBRID database parameters
    • cubrid_set_drop — Delete an element from set type column using OID
    • cubrid_set_query_timeout — Set the timeout time of query execution
    • cubrid_version — Get the CUBRID PHP module's version
  • CUBRID MySQL Compatibility Functions
    • cubrid_affected_rows — Return the number of rows affected by the last SQL statement
    • cubrid_client_encoding — Return the current CUBRID connection charset
    • cubrid_close — Close CUBRID connection
    • cubrid_data_seek — Move the internal row pointer of the CUBRID result
    • cubrid_db_name — Get db name from results of cubrid_list_dbs
    • cubrid_errno — Return the numerical value of the error message from previous CUBRID operation
    • cubrid_error — Get the error message
    • cubrid_fetch_array — Fetch a result row as an associative array, a numeric array, or both
    • cubrid_fetch_assoc — Return the associative array that corresponds to the fetched row
    • cubrid_fetch_field — Get column information from a result and return as an object
    • cubrid_fetch_lengths — Return an array with the lengths of the values of each field from the current row
    • cubrid_fetch_object — Fetch the next row and return it as an object
    • cubrid_fetch_row — Return a numerical array with the values of the current row
    • cubrid_field_flags — Return a string with the flags of the given field offset
    • cubrid_field_len — Get the maximum length of the specified field
    • cubrid_field_name — Return the name of the specified field index
    • cubrid_field_seek — Move the result set cursor to the specified field offset
    • cubrid_field_table — Return the name of the table of the specified field
    • cubrid_field_type — Return the type of the column corresponding to the given field offset
    • cubrid_list_dbs — Return an array with the list of all existing CUBRID databases
    • cubrid_num_fields — Return the number of columns in the result set
    • cubrid_ping — Ping a server connection or reconnect if there is no connection
    • cubrid_query — Send a CUBRID query
    • cubrid_real_escape_string — Escape special characters in a string for use in an SQL statement
    • cubrid_result — Return the value of a specific field in a specific row
    • cubrid_unbuffered_query — Perform a query without fetching the results into memory
  • CUBRID Obsolete Aliases and Functions
    • cubrid_load_from_glo — Read data from a GLO instance and save it in a file
    • cubrid_new_glo — Create a glo instance
    • cubrid_save_to_glo — Save requested file in a GLO instance
    • cubrid_send_glo — Read data from glo and send it to std output


Introdução

These functions allow you to access CUBRID database servers. More information about CUBRID can be found at » CUBRID.

Documentation for CUBRID can be found at » CUBRID Documentation.


Dependências

In order to have these functions available, you must install CUBRID, and compile CUBRID PHP Library with CUBRID support.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/cubrid.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.

For information about manual installation on Linux and Windows systems, please read the file build-guide.html included in the package.


  • « Instalação
  • Tipos de Recurso »
  • PHP Manual
  • Instalação/Configuração
  • Configurações em Execução

Configurações em Execução

There is no runtime configuration now.


Tipos de Recurso

There are four resource types used in CUBRID. The first one is the link identifier for a database connection, the second is the a resource which holds the result of a query, and the last two a resource which holds the query results of BLOB/CLOB data types.

connection identifier

A connection identifier returned by cubrid_connect(),
cubrid_connect_with_url(),
cubrid_pconnect() and
cubrid_pconnect_with_url().

request identifier

A request identifier returned by cubrid_prepare() and cubrid_execute().

LOB identifier

A LOB identifier returned by cubrid_lob_get().

LOB2 identifier

A LOB identifier returned by cubrid_lob2_new() or get from the result set.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

The following constants can be used when executing SQL statement. They can be passed to cubrid_prepare() and cubrid_execute().

CUBRID SQL execution flags
Constant | Description
CUBRID_INCLUDE_OID | Determine whether to get OID during query execution.
CUBRID_ASYNC | Execute the query in asynchronous mode.
CUBRID_EXEC_QUERY_ALL | Execute the query in synchronous mode. This flag must be set when executing multiple SQL statements.

The following constants can be used when fetching the results to specify fetch behaviour. They can be passed to cubrid_fetch() and cubrid_fetch_array().

CUBRID fetch flags
Constant | Description
CUBRID_NUM | Get query result as a numeric array (0-default).
CUBRID_ASSOC | Get query result as an associative array.
CUBRID_BOTH | Get query result as both numeric and associative arrays (default value).
CUBRID_OBJECT | Get query result an object.
CUBRID_LOB | The constant CUBRID_LOB can be used when you want to operate the lob object. It can be passed to cubrid_fetch(), cubrid_fetch_row(), cubrid_fetch_array(), cubrid_fetch_assoc() and cubrid_fetch_object().

The following constants can be used when positioning the cursor in query results. They can be passed to or returned by cubrid_move_cursor().

CUBRID cursor position flags
Constant | Description
CUBRID_CURSOR_FIRST | Move current cursor to the first position in the result.
CUBRID_CURSOR_CURRENT | Move current cursor as a default value if the origin is not specified.
CUBRID_CURSOR_LAST | Move current cursor to the last position in the result.
CUBRID_CURSOR_SUCCESS | Returned value of cubrid_move_cursor() function in case of success. This flag has been removed from 8.4.1.
CUBRID_NO_MORE_DATA | Returned value of cubrid_move_cursor() function in case of failure. This flag has been removed from 8.4.1.
CUBRID_CURSOR_ERROR | Returned value of cubrid_move_cursor() function in case of failure. This flag has been removed from 8.4.1.

The following constants can be used when setting the auto-commit mode for the database connection. They can be passed to cubrid_set_autocommit() or returned by cubrid_get_autocommit().

CUBRID auto-commit mode flags
Constant | Description
CUBRID_AUTOCOMMIT_TRUE | Enable the auto-commit mode.
CUBRID_AUTOCOMMIT_FALSE | Disable the auto-commit mode.

The following constants can be used when setting the database parameter. They can be passed to cubrid_set_db_parameter().

CUBRID parameter flags
Constant | Description
CUBRID_PARAM_ISOLATION_LEVEL | Transaction isolation level for the database connection.
CUBRID_PARAM_LOCK_TIMEOUT | Transaction timeout in seconds.

The following constants can be used when setting the transaction isolation level. They can be passed to cubrid_set_db_parameter() or returned by cubrid_get_db_parameter().

CUBRID isolation level flags
Constant | Description
TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | The lowest isolation level (1). A dirty, non-repeatable or phantom read may occur for the tuple and a non-repeatable read may occur for the table as well.
TRAN_COMMIT_CLASS_COMMIT_INSTANCE | A relatively low isolation level (2). A dirty read does not occur, but non-repeatable or phantom read may occur.
TRAN_REP_CLASS_UNCOMMIT_INSTANCE | The default isolation of CUBRID (3). A dirty, non-repeatable or phantom read may occur for the tuple, but repeatable read is ensured for the table.
TRAN_REP_CLASS_COMMIT_INSTANCE | A relatively low isolation level (4). A dirty read does not occur, but non-repeatable or phantom read may.
TRAN_REP_CLASS_REP_INSTANCE | A relatively high isolation level (5). A dirty or non-repeatable read does not occur, but a phantom read may.
TRAN_SERIALIZABLE | The highest isolation level (6). Problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom read, etc.) do not occur.

The following constants can be used when getting schema information. They can be passed to cubrid_schema().

CUBRID schema flags
Constant | Description
CUBRID_SCH_CLASS | Get name and type of table in CUBRID.
CUBRID_SCH_VCLASS | Get name and type of view in CUBRID.
CUBRID_SCH_QUERY_SPEC | Get the query definition of view.
CUBRID_SCH_ATTRIBUTE | Get the attributes of table column.
CUBRID_SCH_CLASS_ATTRIBUTE | Get the attributes of table.
CUBRID_SCH_METHOD | Get the instance method. The instance method is a method called by a class instance. It is used more often than the class method because most operations are executed in the instance.
CUBRID_SCH_CLASS_METHOD | Get the class method. The class method is a method called by a class object. It is usually used to create a new class instance or to initialize it. It is also used to access or update class attributes.
CUBRID_SCH_METHOD_FILE | Get the information of the file where the method of the table is defined.
CUBRID_SCH_SUPERCLASS | Get the name and type of table which table inherites attributes from.
CUBRID_SCH_SUBCLASS | Get the name and type of table which inherites attributes from this table.
CUBRID_SCH_CONSTRAINT | Get the table constraints.
CUBRID_SCH_TRIGGER | Get the table triggers.
CUBRID_SCH_CLASS_PRIVILEGE | Get the privilege information of table.
CUBRID_SCH_ATTR_PRIVILEGE | Get the privilege information of column.
CUBRID_SCH_DIRECT_SUPER_CLASS | Get the direct super table of table.
CUBRID_SCH_PRIMARY_KEY | Get the table primary key.
CUBRID_SCH_IMPORTED_KEYS | Get imported keys of table.
CUBRID_SCH_EXPORTED_KEYS | Get exported keys of table.
CUBRID_SCH_CROSS_REFERENCE | Get reference relationship of tow tables.

The following constants can be used when reporting errors. They can be returned from cubrid_error_code_facility().

CUBRID error facility code
Constant | Description
CUBRID_FACILITY_DBMS | The error occurred in CUBRID dbms.
CUBRID_FACILITY_CAS | The error occurred in CUBRID broker cas.
CUBRID_FACILITY_CCI | The error occurred in CUBRID cci.
CUBRID_FACILITY_CLIENT | The error occurred in CUBRID PHP client.


Exemplos

The following is a simple example that establishes a connection between PHP and CUBRID. This section will cover the most basic and notable features. The following code required to connect to CUBRID database, which means CUBRID Server and CUBRID Broker have to be running.

The example below uses the demodb database as an examples. By default it is created during the installation. Make sure it has been created.

Exemplo #1 Example of Data Retrieval

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
<body>
<center>
<table border=2>
<?php
/**
* Set server information for CUBRID connection. host_ip is the IP
* address where the CUBRID Broker is installed (localhost in this
* example), and host_port is the port number of the CUBRID Broker.
* The port number is the default given during the installation.
* For details, see "Administrator's Guide."
*/
$host_ip = "localhost";
$host_port = 33000;
$db_name = "demodb";
/**
* Connect to CUBRID Server. Do not make the actual connection, but
* only retain the connection information. The reason for not making
* the actual connection is to handle transaction more efficiently
* in the 3-tier architecture.
*/
$cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);

if (!$cubrid_con) {
echo "Database Connection Error";
exit;
}
?>
 <?php
$sql = "select sports, count(players) as players from event group by sports";
/**
* Request the CUBRID Server for the results of the SQL statement.
* Now make the actual connection to the CUBRID Server.
*/
$result = cubrid_execute($cubrid_con, $sql);

if ($result) {
/**
* Get the column names from the result set created by the SQL query.
*/
$columns = cubrid_column_names($result);
/**
* Get the number of columns in the result set created by the SQL query.
*/
$num_fields = cubrid_num_cols($result);
/**
* List the column names of the result set on the screen.
*/
echo "<tr>";

while (list($key, $colname) = each($columns)) {
echo "<td align=center>$colname</td>";
}

echo "</tr>";

/**
* Get the results from the result set.
*/
while ($row = cubrid_fetch($result)) {
echo "<tr>";

for ($i = 0; $i < $num_fields; $i++) {
echo "<td align=center>";
echo $row[$i];
echo "</td>";
}

echo "</tr>";
}
}
/**
* The PHP module in the CUBRID runs in a 3-tier architecture. Even when
* calling SELECT for transaction processing, it is processed as a part
* of the transaction. Therefore, the transaction needs to be rolled back
* by calling commit or rollback even though SELECT was called for smooth
* performance.
*/
cubrid_commit($cubrid_con);
cubrid_disconnect($cubrid_con);
?>
 </body>
</html>

Exemplo #2 Example of Data Insertion

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=euc- kr">
</head>
<body>
<center>
<table border=2>
<?php
/**
* host_ip is the IP address where the CUBRID Broker is installed
* host_port is the port number of the CUBRID Broker
* db_name is the name of CUBRID Database
*/
$host_ip = "localhost";
$host_port = 33000;
$db_name = "demodb";
$cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);

if (!$cubrid_con) {
echo "Database Connection Error";
exit;
}
?>
 <?php
$sql = "insert into olympic (host_year,host_nation,host_city,"
. "opening_date,closing_date) values (2008, 'China', 'Beijing',"
. "to_date('08-08-2008','mm-dd- yyyy'),to_date('08-24-2008','mm-dd-yyyy')) ;";
$result = cubrid_execute($cubrid_con, $sql);
if ($result) {
/**
* Handled successfully, so commit.
*/
cubrid_commit($cubrid_con);
echo "Inserted successfully ";
} else {
/**
* Error occurred, so the error message is output and rollback is called.
*/
echo cubrid_error_msg();
cubrid_rollback($cubrid_con);
}
cubrid_disconnect($cubrid_con);
?>
 </body>
</html>


CUBRID Funções

Índice

  • cubrid_bind — Bind variables to a prepared statement as parameters
  • cubrid_close_prepare — Close the request handle
  • cubrid_close_request — Close the request handle
  • cubrid_col_get — Get contents of collection type column using OID
  • cubrid_col_size — Get the number of elements in collection type column using OID
  • cubrid_column_names — Get the column names in result
  • cubrid_column_types — Get column types in result
  • cubrid_commit — Commit a transaction
  • cubrid_connect_with_url — Establish the environment for connecting to CUBRID server
  • cubrid_connect — Open a connection to a CUBRID Server
  • cubrid_current_oid — Get OID of the current cursor location
  • cubrid_disconnect — Close a database connection
  • cubrid_drop — Delete an instance using OID
  • cubrid_error_code_facility — Get the facility code of error
  • cubrid_error_code — Get error code for the most recent function call
  • cubrid_error_msg — Get last error message for the most recent function call
  • cubrid_execute — Execute a prepared SQL statement
  • cubrid_fetch — Fetch the next row from a result set
  • cubrid_free_result — Free the memory occupied by the result data
  • cubrid_get_autocommit — Get auto-commit mode of the connection
  • cubrid_get_charset — Return the current CUBRID connection charset
  • cubrid_get_class_name — Get the class name using OID
  • cubrid_get_client_info — Return the client library version
  • cubrid_get_db_parameter — Returns the CUBRID database parameters
  • cubrid_get_query_timeout — Get the query timeout value of the request
  • cubrid_get_server_info — Return the CUBRID server version
  • cubrid_get — Get a column using OID
  • cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column
  • cubrid_is_instance — Check whether the instance pointed by OID exists
  • cubrid_lob_close — Close BLOB/CLOB data
  • cubrid_lob_export — Export BLOB/CLOB data to file
  • cubrid_lob_get — Get BLOB/CLOB data
  • cubrid_lob_send — Read BLOB/CLOB data and send straight to browser
  • cubrid_lob_size — Get BLOB/CLOB data size
  • cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters
  • cubrid_lob2_close — Close LOB object
  • cubrid_lob2_export — Export the lob object to a file
  • cubrid_lob2_import — Import BLOB/CLOB data from a file
  • cubrid_lob2_new — Create a lob object
  • cubrid_lob2_read — Read from BLOB/CLOB data
  • cubrid_lob2_seek64 — Move the cursor of a lob object
  • cubrid_lob2_seek — Move the cursor of a lob object
  • cubrid_lob2_size64 — Get a lob object's size
  • cubrid_lob2_size — Get a lob object's size
  • cubrid_lob2_tell64 — Tell the cursor position of the LOB object
  • cubrid_lob2_tell — Tell the cursor position of the LOB object
  • cubrid_lob2_write — Write to a lob object
  • cubrid_lock_read — Set a read lock on the given OID
  • cubrid_lock_write — Set a write lock on the given OID
  • cubrid_move_cursor — Move the cursor in the result
  • cubrid_next_result — Get result of next query when executing multiple SQL statements
  • cubrid_num_cols — Return the number of columns in the result set
  • cubrid_num_rows — Get the number of rows in the result set
  • cubrid_pconnect_with_url — Open a persistent connection to CUBRID server
  • cubrid_pconnect — Open a persistent connection to a CUBRID server
  • cubrid_prepare — Prepare a SQL statement for execution
  • cubrid_put — Update a column using OID
  • cubrid_rollback — Roll back a transaction
  • cubrid_schema — Get the requested schema information
  • cubrid_seq_drop — Delete an element from sequence type column using OID
  • cubrid_seq_insert — Insert an element to a sequence type column using OID
  • cubrid_seq_put — Update the element value of sequence type column using OID
  • cubrid_set_add — Insert a single element to set type column using OID
  • cubrid_set_autocommit — Set autocommit mode of the connection
  • cubrid_set_db_parameter — Sets the CUBRID database parameters
  • cubrid_set_drop — Delete an element from set type column using OID
  • cubrid_set_query_timeout — Set the timeout time of query execution
  • cubrid_version — Get the CUBRID PHP module's version


Bind variables to a prepared statement as parameters

  • « CUBRID Funções
  • cubrid_close_prepare »
  • PHP Manual
  • CUBRID Funções
  • Bind variables to a prepared statement as parameters

cubrid_bind

(PECL CUBRID >= 8.3.0)

cubrid_bind — Bind variables to a prepared statement as parameters

Descrição

cubrid_bind(
resource $req_identifier,
int $bind_index,
mixed $bind_value,
string $bind_value_type = ?
): bool

The cubrid_bind() function is used to bind values to a corresponding named or question mark placeholder in the SQL statement that was passed to cubrid_prepare(). If bind_value_type is not given, string will be the default.

Nota:

If the type of data to be bound is BLOB/CLOB, CUBRID will try to map the data as a PHP stream. If the actually bind value type is not stream, CUBRID will convert it to string, and use it as the full path and file name of a file on the client filesystem.

If the type of data to be bound explicitly is ENUM, the bind_value argument should be the enum element which is in string format.

In CUBRID shard envrioment, the bind_value_type must be included in the cubrid_bind() function.

The following table shows the types of substitute values.

CUBRID Bind Date Types
Support | Bind Type | Corresponding SQL Type
Supported | STRING | CHAR, VARCHAR
 | NCHAR | NCHAR, NVARCHAR
 | BIT | BIT, VARBIT
 | NUMERIC or NUMBER | SHORT, INT, NUMERIC
 | FLOAT | FLOAT
 | DOUBLE | DOUBLE
 | TIME | TIME
 | DATE | DATE
 | TIMESTAMP | TIMESTAMP
 | OBJECT | OBJECT
 | ENUM | ENUM
 | BLOB | BLOB
 | CLOB | CLOB
 | NULL | NULL
Not supported | SET | SET
 | MULTISET | MULTISET
 | SEQUENCE | SEQUENCE

Parâmetros

req_identifier

Request identifier as a result of cubrid_prepare().

bind_index

Location of binding parameters. It starts with 1.

bind_value

Actual value for binding.

bind_value_type

A type of the value to bind. (It is omitted by default. Thus, the system internally uses string by default. However, you need to specify the exact type of the value as an argument when they are NCHAR, BIT, or BLOB/CLOB).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.1 | Added BLOB/CLOB data types support.

Exemplos

Exemplo #1 cubrid_bind() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE sports='Basketball' and gender='M'");
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$game_req = cubrid_prepare($conn, "SELECT athlete_code FROM game WHERE host_year=1992 and event_code=? and nation_code='USA'");
cubrid_bind($game_req, 1, $event_code, "number");
cubrid_execute($game_req);

printf("--- Dream Team (1992 United States men's Olympic basketball team) ---\n");
while ($athlete_code = cubrid_fetch_array($game_req, CUBRID_NUM)) {
$athlete_req = cubrid_prepare($conn, "SELECT name FROM athlete WHERE code=? AND nation_code='USA' AND event='Basketball' AND gender='M'");
cubrid_bind($athlete_req, 1, $athlete_code[0], "number");
cubrid_execute($athlete_req);
$row = cubrid_fetch_assoc($athlete_req);
printf("%s\n", $row["name"]);
}

cubrid_close_request($game_req);
cubrid_close_request($athlete_req);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

--- Dream Team (1992 United States men's Olympic basketball team) ---
Stockton John
Robinson David
Pippen Scottie
Mullin C.
Malone Karl
Laettner C.
Jordan Michael
Johnson Earvin
Ewing Patrick
Drexler Clyde
Bird Larry
Barkley Charles

Exemplo #2 cubrid_bind() BLOB/CLOB example

<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (doc_content CLOB)");
$sql = "INSERT INTO php_cubrid_lob_test(doc_content) VALUES(?)";
$req = cubrid_prepare($con, $sql);

$fp = fopen("book.txt", "rb");

cubrid_bind($req, 1, $fp, "clob");
cubrid_execute($req);
}
?>

Exemplo #3 cubrid_bind() BLOB/CLOB example

<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (image BLOB)");
$sql = "INSERT INTO php_cubrid_lob_test(image) VALUES(?)";
$req = cubrid_prepare($con, $sql);

cubrid_bind($req, 1, "cubrid_logo.png", "blob");
cubrid_execute($req);
}
?>

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_prepare() - Prepare a SQL statement for execution


Close the request handle

  • « cubrid_bind
  • cubrid_close_request »
  • PHP Manual
  • CUBRID Funções
  • Close the request handle

cubrid_close_prepare

(PECL CUBRID >= 8.3.0)

cubrid_close_prepare — Close the request handle

Descrição

cubrid_close_prepare(resource $req_identifier): bool

The cubrid_close_prepare() function closes the request handle given by the req_identifier argument, and releases the memory region related to the handle. It is an alias of cubrid_close_request().

Parâmetros

req_identifier

Request identifier.

Valor Retornado

Return true on success.

Exemplos

Exemplo #1 cubrid_close_prepare() example

<?php
$con = cubrid_connect ("localhost", 33000, "demodb", "dba", "");
if ($con) {
echo "connected successfully";
$req = cubrid_execute ( $con, "select * from members",
CUBRID_INCLUDE_OID | CUBRID_ASYNC);
if ($req) {
while ( list ($id, $name) = cubrid_fetch ($req) ){
echo $id;
echo $name;
}
cubrid_close_prepare($req); // or you can use cubrid_close_request($req)
}
cubrid_disconnect($con);
}
?>

Veja Também

  • cubrid_close_request() - Close the request handle


Close the request handle

  • « cubrid_close_prepare
  • cubrid_col_get »
  • PHP Manual
  • CUBRID Funções
  • Close the request handle

cubrid_close_request

(PECL CUBRID >= 8.3.0)

cubrid_close_request — Close the request handle

Descrição

cubrid_close_request(resource $req_identifier): bool

The cubrid_close_request() function closes the request handle given by the req_identifier argument, and releases the memory region related to the handle. It is an alias of cubrid_close_prepare().

Parâmetros

req_identifier

Request identifier.

Valor Retornado

Return true on success.

Exemplos

Exemplo #1 cubrid_close_request() example

<?php
$con = cubrid_connect ("localhost", 33000, "demodb", "dba", "");
if ($con) {
echo "connected successfully";
$req = cubrid_execute ( $con, "select * from members",
CUBRID_INCLUDE_OID | CUBRID_ASYNC);
if ($req) {
while ( list ($id, $name) = cubrid_fetch ($req) ){
echo $id;
echo $name;
}
cubrid_close_request($req); // or you can use cubrid_close_prepare($req)
}
cubrid_disconnect($con);
}
?>

Veja Também

  • cubrid_close_prepare() - Close the request handle


Get contents of collection type column using OID

  • « cubrid_close_request
  • cubrid_col_size »
  • PHP Manual
  • CUBRID Funções
  • Get contents of collection type column using OID

cubrid_col_get

(PECL CUBRID >= 8.3.0)

cubrid_col_get — Get contents of collection type column using OID

Descrição

cubrid_col_get(resource $conn_identifier, string $oid, string $attr_name): array

The cubrid_col_get() function is used to get contents of the elements of the collection type (set, multiset, sequence) attribute you requested as an array.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance that you want to read.

attr_name

Attribute name that you want to read from the instance.

Valor Retornado

Array (0-based numerical array) containing the elements you requested, when process is successful;

false (to distinguish the error from the situation of attribute having empty collection or NULL, in case of error, a warning message is shown; in such case you can check the error by using cubrid_error_code()), when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_col_get() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

$size = cubrid_col_size($conn, $oid, "b");
var_dump($size);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
int(3)


Get the number of elements in collection type column using OID

  • « cubrid_col_get
  • cubrid_column_names »
  • PHP Manual
  • CUBRID Funções
  • Get the number of elements in collection type column using OID

cubrid_col_size

(PECL CUBRID >= 8.3.0)

cubrid_col_size — Get the number of elements in collection type column using OID

Descrição

cubrid_col_size(resource $conn_identifier, string $oid, string $attr_name): int

The cubrid_col_size() function is used to get the number of elements in a collection type (set, multiset, sequence) attribute.

Parâmetros

conn_identifier

Connection identifier.

oid

OID the instance that you want to work with.

attr_name

Name of the attribute that you want to work with.

Valor Retornado

Number of elements, when process is successful, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.1 | Change return value: when process is unsuccessful, return false, not -1.

Exemplos

Exemplo #1 cubrid_col_size() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

$size = cubrid_col_size($conn, $oid, "b");
var_dump($size);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
int(3)


Get the column names in result

  • « cubrid_col_size
  • cubrid_column_types »
  • PHP Manual
  • CUBRID Funções
  • Get the column names in result

cubrid_column_names

(PECL CUBRID >= 8.3.0)

cubrid_column_names — Get the column names in result

Descrição

cubrid_column_names(resource $req_identifier): array

The cubrid_column_names() function is used to get the column names of the query result by using req_identifier.

Parâmetros

req_identifier

Request identifier.

Valor Retornado

Array of string values containing the column names, when process is successful, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_column_names() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
$column_len = cubrid_field_len($result, $i);
printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10

Veja Também

  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_column_types() - Get column types in result


Get column types in result

  • « cubrid_column_names
  • cubrid_commit »
  • PHP Manual
  • CUBRID Funções
  • Get column types in result

cubrid_column_types

(PECL CUBRID >= 8.3.0)

cubrid_column_types — Get column types in result

Descrição

cubrid_column_types(resource $req_identifier): array

The cubrid_column_types() function gets column types of query results by using req_identifier.

Parâmetros

req_identifier

Request identifier.

Valor Retornado

Array of string values containing the column types, when process is successful, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_column_types() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
$column_len = cubrid_field_len($result, $i);
printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10

Veja Também

  • cubrid_column_names() - Get the column names in result
  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_execute() - Execute a prepared SQL statement


Commit a transaction

  • « cubrid_column_types
  • cubrid_connect_with_url »
  • PHP Manual
  • CUBRID Funções
  • Commit a transaction

cubrid_commit

(PECL CUBRID >= 8.3.0)

cubrid_commit — Commit a transaction

Descrição

cubrid_commit(resource $conn_identifier): bool

The cubrid_commit() function is used to execute commit on the transaction pointed by conn_identifier, currently in progress. Connection to the server is closed after the cubrid_commit() function is called; However, the connection handle is still valid.

In CUBRID PHP, auto-commit mode is disabled by default for transaction management. You can set it by using cubrid_set_autocommit(). You can get its status by using cubrid_get_autocommit(). Before you start a transaction, remember to disable the auto-commit mode.

Parâmetros

conn_identifier

Connection identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_commit() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;
cubrid_set_autocommit($conn,false);
if (!cubrid_execute($conn, $sql)) {
printf("Error facility: %d\nError code: %d\nError msg: %s\n", cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

cubrid_disconnect($conn);
exit;
}

$req = cubrid_prepare($conn, "INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01", "P02", "P03", "P04");
$name_list = array("Abatis Publishers", "Core Dump Books", "Schadenfreude Press", "Tenterhooks Press");
$city_list = array("New York", "San Francisco", "Hamburg", "Berkeley");
$state_list = array("NY", "CA", NULL, "CA");
$country_list = array("USA", "USA", "Germany", "USA");

for ($i = 0, $size = count($id_list); $i < $size; $i++) {
cubrid_bind($req, 1, $id_list[$i]);
cubrid_bind($req, 2, $name_list[$i]);
cubrid_bind($req, 3, $city_list[$i]);
cubrid_bind($req, 4, $state_list[$i]);
cubrid_bind($req, 5, $country_list[$i]);

if (!($ret = cubrid_execute($req))) {
break;
}
}

if (!$ret) {
cubrid_rollback($conn);
} else {
cubrid_commit($conn);

$req = cubrid_execute($conn, "SELECT * FROM publishers");
while ($result = cubrid_fetch_assoc($req)) {
printf("%-3s %-20s %-15s %-3s %-15s\n",
$result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
}
}

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

P01 Abatis Publishers    New York        NY  USA
P02 Core Dump Books      San Francisco   CA  USA
P03 Schadenfreude Press  Hamburg             Germany
P04 Tenterhooks Press    Berkeley        CA  USA

Veja Também

  • cubrid_rollback() - Roll back a transaction
  • cubrid_get_autocommit() - Get auto-commit mode of the connection
  • cubrid_set_autocommit() - Set autocommit mode of the connection


Establish the environment for connecting to CUBRID server

  • « cubrid_commit
  • cubrid_connect »
  • PHP Manual
  • CUBRID Funções
  • Establish the environment for connecting to CUBRID server

cubrid_connect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_connect_with_url — Establish the environment for connecting to CUBRID server

Descrição

cubrid_connect_with_url(
string $conn_url,
string $userid = ?,
string $passwd = ?,
bool $new_link = false
): resource

The cubrid_connect_with_url() function is used to establish the environment for connecting to your server by using connection information passed with an url string argument. If the HA feature is enabled in CUBRID, you must specify the connection information of the standby server, which is used for failover when failure occurs, in the url string argument of this function. If the user name and password is not given, then the "PUBLIC" connection will be made by default.

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : A host name or IP address of the master database
  • db_name : A name of the database
  • db_user : A name of the database user
  • db_password : A database user password
  • alhosts : Specifies the broker information of the standby server, which is used for failover when it is impossible to connect to the active server. You can specify multiple brokers for failover, and the connection to the brokers is attempted in the order listed in alhosts
  • rctime : An interval between the attempts to connect to the active broker in which failure occurred. After a failure occurs, the system connects to the broker specified by althosts (failover), terminates the transaction, and then attempts to connect to the active broker of the master database at every rctime. The default value is 600 seconds.
  • login_timeout : Timeout value (unit: msec.) for database login. The default value is 0, which means infinite postponement.
  • query_timeout : Timeout value (unit: msec.) for query request. Upon timeout, a message to cancel requesting a query transferred to server is sent. The return value can depend on the disconnect_on_query_timeout configuration; even though the message to cancel a request is sent to server, that request may succeed.
  • disconnect_on_query_timeout : Configures a value whether to immediately return an error of function being executed upon timeout. The default value is false.

Nota:

? and : that are used as identifiers in PHP connection URL can't be included in the password. The following is an example of a password that is invalid to use as connection URL because it contains "?:".

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Passwords that contain ? or : may be passed as a separate parameter.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_connect_with_url($url, "dba", "12?");

If user or password is empty,you can't delete ":",the following is an example.

$url = "CUBRID:localhost:33000:demodb:::";

Parâmetros

conn_url

A character string that contains server connection information.

userid

User name for the database.

passwd

User password.

new_link

If a second call is made to cubrid_connect_with_url() with the same arguments, no new connection will be established, but instead, the connection identifier of the already opened connection will be returned. The new_link parameter modifies this behavior and makes cubrid_connect_with_url() always open a new connection, even if cubrid_connect_with_url() was called before with the same parameters.

Valor Retornado

Connection identifier, when process is successful, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_connect_with_url() url without properties example

<?php
$conn_url = "CUBRID:localhost:33000:demodb:dba::";
$con = cubrid_connect_with_url($conn_url);

if ($con) {
echo "connected successfully";
cubrid_execute($con, "create table person(id int,name char(16))");
$req =cubrid_execute($con, "insert into person values(1,'James')");

if ($req) {
cubrid_close_request($req);
cubrid_commit($con);
} else {
cubrid_rollback($con);
}
cubrid_disconnect($con);
}
?>

Exemplo #2 cubrid_connect_with_url() url with properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?login_timeout=100";
$con = cubrid_connect_with_url ($conn_url);

if ($con) {
echo "connected successfully";
cubrid_execute($con, "create table person(id int,name char(16))");
$req =cubrid_execute($con, "insert into person values(1,'James')");

if ($req) {
cubrid_close_request($req);
cubrid_commit($con);
} else {
cubrid_rollback($con);
}
cubrid_disconnect($con);
}
?>

Veja Também

  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Close a database connection
  • cubrid_close() - Close CUBRID connection


Open a connection to a CUBRID Server

  • « cubrid_connect_with_url
  • cubrid_current_oid »
  • PHP Manual
  • CUBRID Funções
  • Open a connection to a CUBRID Server

cubrid_connect

(PECL CUBRID >= 8.3.1)

cubrid_connect — Open a connection to a CUBRID Server

Descrição

cubrid_connect(
string $host,
int $port,
string $dbname,
string $userid = ?,
string $passwd = ?,
bool $new_link = false
): resource

The cubrid_connect() function is used to establish the environment for connecting to your server by using your server address, port number, database name, user name, and password. If the user name and password is not given, then the "PUBLIC" connection will be made by default.

Parâmetros

host

Host name or IP address of CUBRID CAS server.

port

Port number of CUBRID CAS server (BROKER_PORT configured in $CUBRID/conf/cubrid_broker.conf).

dbname

Name of database.

userid

User name for the database. If not given, the default value is "public".

passwd

User password. If not given, the default value is "".

new_link

If a second call is made to cubrid_connect() with the same arguments, no new connection will be established, but instead, the connection identifier of the already opened connection will be returned. The new_link parameter modifies this behavior and makes cubrid_connect() always open a new connection, even if cubrid_connect() was called before with the same parameters.

Valor Retornado

Connection identifier, when process is successful, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_connect() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

if (!$conn) {
die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Veja Também

  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_connect_with_url() - Establish the environment for connecting to CUBRID server
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Close a database connection
  • cubrid_close() - Close CUBRID connection


Get OID of the current cursor location

  • « cubrid_connect
  • cubrid_disconnect »
  • PHP Manual
  • CUBRID Funções
  • Get OID of the current cursor location

cubrid_current_oid

(PECL CUBRID >= 8.3.0)

cubrid_current_oid — Get OID of the current cursor location

Descrição

cubrid_current_oid(resource $req_identifier): string

The cubrid_current_oid() function is used to get the oid of the current cursor location from the query result. To use cubrid_current_oid(), the query executed must be a updatable query, and the CUBRID_INCLUDE_OID option must be included during the query execution.

Parâmetros

req_identifier

Request identifier.

Valor Retornado

Oid of current cursor location, when process is successful, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_current_oid() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code", CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);
$res = cubrid_get($conn, $oid);

print_r($res);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Array
(
    [s_name] => X
    [f_name] => Mixed
)

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement


Close a database connection

  • « cubrid_current_oid
  • cubrid_drop »
  • PHP Manual
  • CUBRID Funções
  • Close a database connection

cubrid_disconnect

(PECL CUBRID >= 8.3.0)

cubrid_disconnect — Close a database connection

Descrição

cubrid_disconnect(resource $conn_identifier = ?): bool

The cubrid_disconnect() function closes the connection handle and disconnects from server. If any request handle is not closed at this point, it will be closed. It is similar to the CUBRID MySQL compatible function cubrid_close().

Parâmetros

conn_identifier

Connection identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_disconnect() example

<?php
$con = cubrid_connect ("localhost", 33000, "demodb");
if ($con) {
echo "connected successfully";

$req = cubrid_execute( $con, "create table person(id int,name char(10))");
if ($req) {
cubrid_close_request($req);
cubrid_commit($con);
} else {
cubrid_rollback($con);
}

$req = cubrid_execute( $con, "insert into person values(1,'James')");
if ($req) {
cubrid_close_request($req);
cubrid_commit($con);
} else {
cubrid_rollback($con);
}
cubrid_disconnect($con);
}
?>

Veja Também

  • cubrid_close() - Close CUBRID connection
  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_connect_with_url() - Establish the environment for connecting to CUBRID server


Delete an instance using OID

  • « cubrid_disconnect
  • cubrid_error_code_facility »
  • PHP Manual
  • CUBRID Funções
  • Delete an instance using OID

cubrid_drop

(PECL CUBRID >= 8.3.0)

cubrid_drop — Delete an instance using OID

Descrição

cubrid_drop(resource $conn_identifier, string $oid): bool

The cubrid_drop() function is used to delete an instance from database by using the oid of the instance.

Parâmetros

conn_identifier

Connection identifier.

oid

Oid of the instance that you want to delete.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_drop() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

printf("--- Before Drop: ---\n");
$attr = cubrid_get($conn, $oid);
var_dump($attr);

if (cubrid_drop($conn, $oid)) {
cubrid_commit($conn);
} else {
cubrid_rollback($conn);
}

cubrid_close_request($req);

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

printf("\n--- After Drop: ---\n");
$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

--- Before Drop: ---
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

--- After Drop: ---
array(4) {
  ["a"]=>
  string(1) "2"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "4"
    [1]=>
    string(1) "5"
    [2]=>
    string(1) "7"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "44"
    [1]=>
    string(2) "55"
    [2]=>
    string(2) "66"
    [3]=>
    string(3) "666"
  }
  ["d"]=>
  string(10) "b         "
}

Veja Também

  • cubrid_is_instance() - Check whether the instance pointed by OID exists


Get the facility code of error

  • « cubrid_drop
  • cubrid_error_code »
  • PHP Manual
  • CUBRID Funções
  • Get the facility code of error

cubrid_error_code_facility

(PECL CUBRID >= 8.3.0)

cubrid_error_code_facility — Get the facility code of error

Descrição

cubrid_error_code_facility(): int

The cubrid_error_code_facility() function is used to get the facility code (level in which the error occurred) from the error code of the error that occurred during the API execution. Usually, you can get the error code when API returns false as its return value.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Facility code of the error code that occurred: CUBRID_FACILITY_DBMS, CUBRID_FACILITY_CAS, CUBRID_FACILITY_CCI, CUBRID_FACILITY_CLIENT.

Exemplos

Exemplo #1 cubrid_error_code_facility() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = @cubrid_execute($conn, "SELECT * FROM unknown");
if (!$req) {
printf("Error facility: %d\nError code: %d\nError msg: %s\n",
cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

cubrid_disconnect($conn);
exit;
}
?>

O exemplo acima produzirá:

Error facility: 1
Error code: -493
Error msg: Syntax: In line 1, column 15 before END OF STATEMENT
Syntax error: unexpected 'unknown'

Veja Também

  • cubrid_error_code() - Get error code for the most recent function call
  • cubrid_error_msg() - Get last error message for the most recent function call


Get error code for the most recent function call

  • « cubrid_error_code_facility
  • cubrid_error_msg »
  • PHP Manual
  • CUBRID Funções
  • Get error code for the most recent function call

cubrid_error_code

(PECL CUBRID >= 8.3.0)

cubrid_error_code — Get error code for the most recent function call

Descrição

cubrid_error_code(): int

The cubrid_error_code() function is used to get the error code of the error that occurred during the API execution. Usually, it gets the error code when API returns false as its return value.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Error code of the error that occurred, or 0 (zero) if no error occurred.

Exemplos

Exemplo #1 cubrid_error_code() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_prepare($conn , "SELECT * FROM code WHERE s_name=?");

$req = @cubrid_execute($req);
if (!$req) {
printf("Error facility: %d\nError code: %d\nError msg: %s\n",
cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

cubrid_disconnect($conn);
exit;
}
?>

O exemplo acima produzirá:

Error facility: 4
Error code: -30015
Error msg: Some parameter not binded

Veja Também

  • cubrid_error_code_facility() - Get the facility code of error
  • cubrid_error_msg() - Get last error message for the most recent function call


Get last error message for the most recent function call

  • « cubrid_error_code
  • cubrid_execute »
  • PHP Manual
  • CUBRID Funções
  • Get last error message for the most recent function call

cubrid_error_msg

(PECL CUBRID >= 8.3.0)

cubrid_error_msg — Get last error message for the most recent function call

Descrição

cubrid_error_msg(): string

The cubrid_error_msg() function is used to get the error message that occurred during the use of CUBRID API. Usually, it gets error message when API returns false as its return value.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Error message that occurred.

Exemplos

Exemplo #1 cubrid_error_msg() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

if (!@cubrid_schema($conn, 100000)) {
printf("Error facility: %d\nError code: %d\nError msg: %s\n",
cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

cubrid_disconnect($conn);
exit;
}
?>

O exemplo acima produzirá:

Error facility: 2
Error code: -10015
Error msg: Invalid T_CCI_SCH_TYPE value

Veja Também

  • cubrid_error_code() - Get error code for the most recent function call
  • cubrid_error_code_facility() - Get the facility code of error


Execute a prepared SQL statement

  • « cubrid_error_msg
  • cubrid_fetch »
  • PHP Manual
  • CUBRID Funções
  • Execute a prepared SQL statement

cubrid_execute

(PECL CUBRID >= 8.3.0)

cubrid_execute — Execute a prepared SQL statement

Descrição

cubrid_execute(resource $conn_identifier, string $sql, int $option = 0): resource
cubrid_execute(resource $request_identifier, int $option = 0): bool

The cubrid_execute() function is used to execute the given SQL statement. It executes the query by using conn_identifier and SQL, and then returns the request identifier created. It is used for simple execution of query, where the parameter binding is not needed. In addition, the cubrid_execute() function is used to execute the prepared statement by means of cubrid_prepare() and cubrid_bind(). At this time, you need to specify arguments of request_identifier and option.

The option is used to determine whether to get OID after query execution and whether to execute the query in synchronous or asynchronous mode. CUBRID_INCLUDE_OID and CUBRID_ASYNC (or CUBRID_EXEC_QUERY_ALL if you want to execute multiple SQL statements) can be specified by using a bitwise OR operator. If not specified, neither of them isselected. If the flag CUBRID_EXEC_QUERY_ALL is set, a synchronous mode (sync_mode) is used to retrieve query results, and in such cases the following rules are applied:

  • The return value is the result of the first query.
  • If an error occurs in any query, the execution is processed as a failure.
  • In a query composed of q1 q2 q3, if an error occurs in q2 after q1 succeeds the execution, the result of q1 remains valid. That is, the previous successful query executions are not rolled back when an error occurs.
  • If a query is executed successfully, the result of the second query can be obtained using cubrid_next_result().

If the first argument is request_identifier to execute the cubrid_prepare() function, you can specify an option, CUBRID_ASYNC only.

Parâmetros

conn_identifier

Connection identifier.

sql

SQL to be executed.

option

Query execution option CUBRID_INCLUDE_OID, CUBRID_ASYNC, CUBRID_EXEC_QUERY_ALL.

request_identifier

cubrid_prepare() identifier.

Valor Retornado

Request identifier, when process is successful and first param is conn_identifier; true, when process is successful and first argument is request_identifier, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.4.0 | Add new option CUBRID_EXEC_QUERY_ALL.

Exemplos

Exemplo #1 cubrid_execute() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE name='100m Butterfly' and gender='M'", CUBRID_ASYNC);
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$history_req = cubrid_prepare($conn, "SELECT * FROM history WHERE event_code=?");
cubrid_bind($history_req, 1, $event_code, "number");
cubrid_execute($history_req);

printf("%-20s %-9s %-10s %-5s\n", "athlete", "host_year", "score", "unit");
while ($row = cubrid_fetch_array($history_req, CUBRID_ASSOC)) {
printf("%-20s %-9s %-10s %-5s\n",
$row["athlete"], $row["host_year"], $row["score"], $row["unit"]);
}

cubrid_close_request($history_req);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

athlete              host_year score      unit
Phelps Michael       2004      51.25      time

Veja Também

  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_bind() - Bind variables to a prepared statement as parameters
  • cubrid_next_result() - Get result of next query when executing multiple SQL statements
  • cubrid_close_request() - Close the request handle
  • cubrid_commit() - Commit a transaction
  • cubrid_rollback() - Roll back a transaction


Fetch the next row from a result set

  • « cubrid_execute
  • cubrid_free_result »
  • PHP Manual
  • CUBRID Funções
  • Fetch the next row from a result set

cubrid_fetch

(PECL CUBRID >= 8.3.0)

cubrid_fetch — Fetch the next row from a result set

Descrição

cubrid_fetch(resource $result, int $type = CUBRID_BOTH): mixed

The cubrid_fetch() function is used to get a single row from the query result. The cursor automatically moves to the next row after getting the result.

Parâmetros

result

result comes from a call to cubrid_execute()

type

Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH, CUBRID_OBJECT. If you want to operate the lob object, you can use CUBRID_LOB.

Valor Retornado

Result array or object, when process is successful.

false, when there are no more rows; NULL, when process is unsuccessful.

The result can be received either as an array or as an object, and you can decide which data type to use by setting the type argument. The type variable can be set to one of the following values:

  • CUBRID_NUM : Numerical array (0-based)
  • CUBRID_ASSOC : Associative array
  • CUBRID_BOTH : Numerical & Associative array (default)
  • CUBRID_OBJECT : object that has the attribute name as the column name of query result

When type argument is omitted, the result will be received using CUBRID_BOTH option as default. When you want to receive query result in object data type, the column name of the result must obey the naming rules for identifiers in PHP. For example, column name such as "count(*)" cannot be received in object type.

Exemplos

Exemplo #1 cubrid_fetch() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT * FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch($req)) {
printf("%-40s %-10s %-6s %-20s\n",
$row["name"], $row["area"], $row["seats"], $row["address"]);
}

// if you want to operate lob object, you can use cubrid_fetch($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_row() - Return a numerical array with the values of the current row
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_object() - Fetch the next row and return it as an object


Free the memory occupied by the result data

  • « cubrid_fetch
  • cubrid_get_autocommit »
  • PHP Manual
  • CUBRID Funções
  • Free the memory occupied by the result data

cubrid_free_result

(PECL CUBRID >= 8.3.0)

cubrid_free_result — Free the memory occupied by the result data

Descrição

cubrid_free_result(resource $req_identifier): bool

This function frees the memory occupied by the result data. It returns true on success or false on failure. Note that it can only frees the client fetch buffer now, and if you want free all memory, use function cubrid_close_request().

Parâmetros

req_identifier

This is the request identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_free_result() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM history WHERE host_year=2004 ORDER BY event_code");
$row = cubrid_fetch_assoc($req);
var_dump($row);

cubrid_free_result($req);
cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(5) {
  ["event_code"]=>
  string(5) "20005"
  ["athlete"]=>
  string(12) "Hayes Joanna"
  ["host_year"]=>
  string(4) "2004"
  ["score"]=>
  string(5) "12.37"
  ["unit"]=>
  string(4) "time"
}


Get auto-commit mode of the connection

  • « cubrid_free_result
  • cubrid_get_charset »
  • PHP Manual
  • CUBRID Funções
  • Get auto-commit mode of the connection

cubrid_get_autocommit

(PECL CUBRID >= 8.4.0)

cubrid_get_autocommit — Get auto-commit mode of the connection

Descrição

cubrid_get_autocommit(resource $conn_identifier): bool

The cubrid_get_autocommit() function is used to get the status of CUBRID database connection auto-commit mode.

For CUBRID 8.4.0, auto-commit mode is disabled by default for transaction management.

For CUBRID 8.4.1, auto-commit mode is enabled by default for transaction management.

Parâmetros

conn_identifier

Connection identifier.

Valor Retornado

true, when auto-commit is on.

false, when auto-commit is off.

null on error.

Veja Também

  • cubrid_set_autocommit() - Set autocommit mode of the connection
  • cubrid_commit() - Commit a transaction


Return the current CUBRID connection charset

  • « cubrid_get_autocommit
  • cubrid_get_class_name »
  • PHP Manual
  • CUBRID Funções
  • Return the current CUBRID connection charset

cubrid_get_charset

(PECL CUBRID >= 8.3.0)

cubrid_get_charset — Return the current CUBRID connection charset

Descrição

cubrid_get_charset(resource $conn_identifier): string

This function returns the current CUBRID connection charset and is similar to the CUBRID MySQL compatible function cubrid_client_encoding().

Parâmetros

conn_identifier

The CUBRID connection.

Valor Retornado

A string that represents the CUBRID connection charset on success, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_get_charset() example

<?php

$con = cubrid_connect("localhost", 33000, "demodb");
if (!$con)
{
die('Could not connect.');
}

printf("CUBRID current charset: %s\n", cubrid_get_charset($con));

?>

O exemplo acima produzirá:

CUBRID current charset: iso8859-1

Veja Também

  • cubrid_client_encoding() - Return the current CUBRID connection charset


Get the class name using OID

  • « cubrid_get_charset
  • cubrid_get_client_info »
  • PHP Manual
  • CUBRID Funções
  • Get the class name using OID

cubrid_get_class_name

(PECL CUBRID >= 8.3.0)

cubrid_get_class_name — Get the class name using OID

Descrição

cubrid_get_class_name(resource $conn_identifier, string $oid): string

The cubrid_get_class_name() function is used to get the class name from oid. It doesn't work when selecting data from the system tables, for example db_class.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance that you want to check the existence.

Valor Retornado

Class name when process is successful, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_get_class_name() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code", CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);
$class_name = cubrid_get_class_name($conn, $oid);

print_r($class_name);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

code

Veja Também

  • cubrid_is_instance() - Check whether the instance pointed by OID exists
  • cubrid_drop() - Delete an instance using OID


Return the client library version

  • « cubrid_get_class_name
  • cubrid_get_db_parameter »
  • PHP Manual
  • CUBRID Funções
  • Return the client library version

cubrid_get_client_info

(PECL CUBRID >= 8.3.0)

cubrid_get_client_info — Return the client library version

Descrição

cubrid_get_client_info(): string

This function returns a string that represents the client library version.

Parâmetros

Valor Retornado

A string that represents the client library version on success, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_get_client_info() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

O exemplo acima produzirá:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1


Returns the CUBRID database parameters

  • « cubrid_get_client_info
  • cubrid_get_query_timeout »
  • PHP Manual
  • CUBRID Funções
  • Returns the CUBRID database parameters

cubrid_get_db_parameter

(PECL CUBRID >= 8.3.0)

cubrid_get_db_parameter — Returns the CUBRID database parameters

Descrição

cubrid_get_db_parameter(resource $conn_identifier): array

This function returns the CUBRID database parameters, ou false em caso de falha. It returns an associative array with the values for the following parameters:

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT
  • PARAM_MAX_STRING_LENGTH
  • PARAM_AUTO_COMMIT

Database parameters
Parameter | Description
PARAM_ISOLATION_LEVEL | The transaction isolation level.
LOCK_TIMEOUT | CUBRID provides the lock timeout feature, which sets the waiting time (in seconds) for the lock until the transaction lock setting is allowed. The default value of the lock_timeout_in_secs parameter is -1, which means the application client will wait indefinitely until the transaction lock is allowed.
PARAM_AUTO_COMMIT | In CUBRID PHP, auto-commit mode is disabled by default for transaction management. It can be set by using cubrid_set_autocommit().

The following table shows the isolation levels from 1 to 6. It consists of table schema (row) and isolation level:

Levels of Isolation Supported by CUBRID
Name | Description
SERIALIZABLE (6) | In this isolation level, problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom read, etc.) do not occur.
REPEATABLE READ CLASS with REPEATABLE READ INSTANCES (5) | Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience phantom read for the record R that was inserted by another transaction T2 when it is repeatedly retrieving a specific record.
REPEATABLE READ CLASS with READ COMMITTED INSTANCES (or CURSOR STABILITY) (4) | Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience R read (non-repeatable read) that was updated and committed by another transaction T2 when it is repeatedly retrieving the record R.
REPEATABLE READ CLASS with READ UNCOMMITTED INSTANCES (3) | Default isolation level. Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience R' read (dirty read) for the record that was updated but not committed by another transaction T2.
READ COMMITTED CLASS with READ COMMITTED INSTANCES (2) | Transaction T1 may experience A' read (non-repeatable read) for the table that was updated and committed by another transaction T2 while it is viewing table A repeatedly. Transaction T1 may experience R' read (non-repeatable read) for the record that was updated and committed by another transaction T2 while it is retrieving the record R repeatedly.
READ COMMITTED CLASS with READ UNCOMMITTED INSTANCES (1) | Transaction T1 may experience A' read (non-repeatable read) for the table that was updated and committed by another transaction T2 while it is repeatedly viewing table A. Transaction T1 may experience R' read (dirty read) for the record that was updated but not committed by another transaction T2.

Parâmetros

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opened by cubrid_connect() is assumed.

Valor Retornado

An associative array with CUBRID database parameters; on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.4.0 | Change LOCK_TIMEOUT to PARAM_LOCK_TIMEOUT, and MAX_STRING_LENGTH to PARAM_MAX_STRING_LENGTH in result.

Exemplos

Exemplo #1 cubrid_get_db_parameter() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

O exemplo acima produzirá:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Veja Também

  • cubrid_set_db_parameter() - Sets the CUBRID database parameters
  • cubrid_get_autocommit() - Get auto-commit mode of the connection


Get the query timeout value of the request

  • « cubrid_get_db_parameter
  • cubrid_get_server_info »
  • PHP Manual
  • CUBRID Funções
  • Get the query timeout value of the request

cubrid_get_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_get_query_timeout — Get the query timeout value of the request

Descrição

cubrid_get_query_timeout(resource $req_identifier): int

The cubrid_get_query_timeout() function is used to get the query timeout of the request.

Parâmetros

req_identifier

Request identifier.

Valor Retornado

Returns the query timeout value in milliseconds of the current request on success, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_get_query_timeout() example

<?php

$host = "localhost";
$port = 33000;
$db = "demodb";

$conn =
cubrid_connect_with_url("CUBRID:$host:$port:$db:::?login_timeout=50000&query_timeout=5000&disconnect_on_query_timeout=yes");

$req = cubrid_prepare($conn, "SELECT * FROM code");

$timeout = cubrid_get_query_timeout($req);
var_dump($timeout);

cubrid_set_query_timeout($req, 1000);
$timeout = cubrid_get_query_timeout($req);
var_dump($timeout);

cubrid_close($conn);
?>

O exemplo acima produzirá:

int(5000)
int(1000)

Veja Também

  • cubrid_set_query_timeout() - Set the timeout time of query execution


Return the CUBRID server version

  • « cubrid_get_query_timeout
  • cubrid_get »
  • PHP Manual
  • CUBRID Funções
  • Return the CUBRID server version

cubrid_get_server_info

(PECL CUBRID >= 8.3.0)

cubrid_get_server_info — Return the CUBRID server version

Descrição

cubrid_get_server_info(resource $conn_identifier): string

This function returns a string that represents the CUBRID server version.

Parâmetros

conn_identifier

The CUBRID connection.

Valor Retornado

A string that represents the CUBRID server version on success, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_get_server_info() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

O exemplo acima produzirá:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1


Get a column using OID

  • « cubrid_get_server_info
  • cubrid_insert_id »
  • PHP Manual
  • CUBRID Funções
  • Get a column using OID

cubrid_get

(PECL CUBRID >= 8.3.0)

cubrid_get — Get a column using OID

Descrição

cubrid_get(resource $conn_identifier, string $oid, mixed $attr = ?): mixed

The cubrid_get() function is used to get the attribute of the instance of the given oid. You can get single attribute by using string data type for the attr argument, or many attributes by using array data type for the attr argument.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance that you want to read.

attr

Name of the attribute that you want to read.

Valor Retornado

Content of the requested attribute, when process is successful; When attr is set with string data type, the result is returned as a string; when attr is set with array data type (0-based numerical array), then the result is returned in associative array. When attr is omitted, then all attributes are received in array form.

false when process is unsuccessful or result is NULL (If error occurs to distinguish empty string from NULL, then it prints the warning message. You can check the error by using cubrid_error_code())

Exemplos

Exemplo #1 cubrid_get() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_get($conn, $oid, "b");
var_dump($attr);

$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Veja Também

  • cubrid_put() - Update a column using OID


Return the ID generated for the last updated AUTO_INCREMENT column

  • « cubrid_get
  • cubrid_is_instance »
  • PHP Manual
  • CUBRID Funções
  • Return the ID generated for the last updated AUTO_INCREMENT column

cubrid_insert_id

(PECL CUBRID >= 8.3.0)

cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column

Descrição

cubrid_insert_id(resource $conn_identifier = ?): string

The cubrid_insert_id() function retrieves the ID generated for the AUTO_INCREMENT column which is updated by the previous INSERT query. It returns 0 if the previous query does not generate new rows, or FALSE on failure.

Nota:

CUBRID supports AUTO_INCREMENT for more than one columns in a table. In most cases, there will be a single AUTO_INCREMENT column in a table. If there are multiple AUTO_INCREMENT columns, this function should not be used even if it will return a value.

Parâmetros

conn_identifier

The connection identifier previously obtained by a call to cubrid_connect().

Valor Retornado

A string representing the ID generated for an AUTO_INCREMENT column by the previous query, on success.

0, if the previous query does not generate new rows.

false on failure.

Registro de Alterações

Versão | Descrição
8.4.0 | Change the return value from an array to string; Remove the first parameter class_name.

Exemplos

Exemplo #1 cubrid_insert_id() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (d int AUTO_INCREMENT(1, 2), t varchar)");

for ($i = 0; $i < 10; $i++) {
cubrid_execute($conn, "INSERT INTO cubrid_test(t) VALUES('cubrid_test')");
}

$id = cubrid_insert_id();
var_dump($id);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

string(2) "19"


Check whether the instance pointed by OID exists

  • « cubrid_insert_id
  • cubrid_lob_close »
  • PHP Manual
  • CUBRID Funções
  • Check whether the instance pointed by OID exists

cubrid_is_instance

(PECL CUBRID >= 8.3.0)

cubrid_is_instance — Check whether the instance pointed by OID exists

Descrição

cubrid_is_instance(resource $conn_identifier, string $oid): int

The cubrid_is_instance() function is used to check whether the instance pointed by the given oid exists or not.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance that you want to check the existence.

Valor Retornado

1, if such instance exists;

0, if such instance does not exist;

-1, in case of error

Exemplos

Exemplo #1 cubrid_is_instance() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$sql = <<<EOD
SELECT host_year, medal, game_date
FROM game
WHERE athlete_code IN
(SELECT code FROM athlete WHERE name='Thorpe Ian');
EOD;

$req = cubrid_execute($conn, $sql, CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);

$res = cubrid_is_instance ($conn, $oid);
if ($res == 1) {
echo "Instance pointed by $oid exists.\n";
} else if ($res == 0){
echo "Instance pointed by $oid doesn't exist.\n";
} else {
echo "error\n";
}

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Instance pointed by @0|0|0 doesn't exist.

Veja Também

  • cubrid_drop() - Delete an instance using OID
  • cubrid_get_class_name() - Get the class name using OID


Close BLOB/CLOB data

  • « cubrid_is_instance
  • cubrid_lob_export »
  • PHP Manual
  • CUBRID Funções
  • Close BLOB/CLOB data

cubrid_lob_close

(PECL CUBRID >= 8.3.1)

cubrid_lob_close — Close BLOB/CLOB data

Descrição

cubrid_lob_close(array $lob_identifier_array): bool

cubrid_lob_close() is used to close all BLOB/CLOB returned from cubrid_lob_get().

Parâmetros

lob_identifier_array

LOB identifier array returned from cubrid_lob_get().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lob_close() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Export BLOB/CLOB data to file

  • « cubrid_lob_close
  • cubrid_lob_get »
  • PHP Manual
  • CUBRID Funções
  • Export BLOB/CLOB data to file

cubrid_lob_export

(PECL CUBRID >= 8.3.1)

cubrid_lob_export — Export BLOB/CLOB data to file

Descrição

cubrid_lob_export(resource $conn_identifier, resource $lob_identifier, string $path_name): bool

cubrid_lob_export() is used to get BLOB/CLOB data from CUBRID database, and saves its contents to a file. To use this function, you must use cubrid_lob_get() first to get BLOB/CLOB info from CUBRID.

Parâmetros

conn_identifier

Connection identifier.

lob_identifier

LOB identifier.

path_name

Path name of the file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lob_export() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Get BLOB/CLOB data

  • « cubrid_lob_export
  • cubrid_lob_send »
  • PHP Manual
  • CUBRID Funções
  • Get BLOB/CLOB data

cubrid_lob_get

(PECL CUBRID >= 8.3.1)

cubrid_lob_get — Get BLOB/CLOB data

Descrição

cubrid_lob_get(resource $conn_identifier, string $sql): array

cubrid_lob_get() is used to get BLOB/CLOB meta info from CUBRID database, CUBRID gets BLOB/CLOB by executing the SQL statement, and returns all LOBs as a resource array. Be sure that the SQL retrieves only one column and its data type is BLOB or CLOB.

Remember to use cubrid_lob_close() to release the LOBs if you don't need it any more.

Parâmetros

conn_identifier

Connection identifier.

sql

SQL statement to be executed.

Valor Retornado

Return an array of LOB resources, when process is successful, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lob_get() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Read BLOB/CLOB data and send straight to browser

  • « cubrid_lob_get
  • cubrid_lob_size »
  • PHP Manual
  • CUBRID Funções
  • Read BLOB/CLOB data and send straight to browser

cubrid_lob_send

(PECL CUBRID >= 8.3.1)

cubrid_lob_send — Read BLOB/CLOB data and send straight to browser

Descrição

cubrid_lob_send(resource $conn_identifier, resource $lob_identifier): bool

cubrid_lob_send() reads BLOB/CLOB data and passes it straight through to the browser. To use this function, you must use cubrid_lob_get() first to get BLOB/CLOB info from CUBRID.

Parâmetros

conn_identifier

Connection identifier.

lob_identifier

LOB identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lob_send() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");

cubrid_lob_send($conn, $lobs[0]);
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file


Get BLOB/CLOB data size

  • « cubrid_lob_send
  • cubrid_lob2_bind »
  • PHP Manual
  • CUBRID Funções
  • Get BLOB/CLOB data size

cubrid_lob_size

(PECL CUBRID >= 8.3.1)

cubrid_lob_size — Get BLOB/CLOB data size

Descrição

cubrid_lob_size(resource $lob_identifier): string

cubrid_lob_size() is used to get BLOB/CLOB data size.

Parâmetros

lob_identifier

LOB identifier.

Valor Retornado

A string representing LOB data size, when process is successful, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.4.0 | Change return value type from int to string.

Exemplos

Exemplo #1 cubrid_lob_size() example

<?php
$lobs = cubrid_lob_get($con, "SELECT doc_content FROM doc WHERE doc_id=5");
echo "Doc size:".cubrid_lob_size($lobs[0]);
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
?>

Veja Também

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Bind a lob object or a string as a lob object to a prepared statement as parameters

  • « cubrid_lob_size
  • cubrid_lob2_close »
  • PHP Manual
  • CUBRID Funções
  • Bind a lob object or a string as a lob object to a prepared statement as parameters

cubrid_lob2_bind

(PECL CUBRID >= 8.4.1)

cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters

Descrição

cubrid_lob2_bind(
resource $req_identifier,
int $bind_index,
mixed $bind_value,
string $bind_value_type = ?
): bool

The cubrid_lob2_bind() function is used to bind BLOB/CLOB datas to a corresponding question mark placeholder in the SQL statement that was passed to cubrid_prepare(). If bind_value_type is not given, string will be "BLOB" as the default. But if you use cubrid_lob2_new() before, bind_value_type will be consistent with type in cubrid_lob2_new() as the default.

Parâmetros

req_identifier

Request identifier as a result of cubrid_prepare().

bind_index

Location of binding parameters. It starts with 1.

bind_value

Actual value for binding.

bind_value_type

It must be "BLOB" or "CLOB" and it won't be case-sensitive. If it not be given, the default value is "BLOB".

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lob2_bind() example

<?php
// Table: test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");

cubrid_bind($req,1, 3);

$lob = cubrid_lob2_new($conn, 'CLOB');
cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_bind($req, 1, 4);

cubrid_lob2_bind($req, 2, 'CUBRID LOB2 TEST', 'CLOB');

cubrid_execute($req);

cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob2_new() - Create a lob object
  • cubrid_lob2_close() - Close LOB object


Close LOB object

  • « cubrid_lob2_bind
  • cubrid_lob2_export »
  • PHP Manual
  • CUBRID Funções
  • Close LOB object

cubrid_lob2_close

(PECL CUBRID >= 8.4.1)

cubrid_lob2_close — Close LOB object

Descrição

cubrid_lob2_close(resource $lob_identifier): bool

The cubrid_lob2_close() function is used to close LOB object returned from cubrid_lob2_new() or got from the result set.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • cubrid_lob2_new() - Create a lob object


Export the lob object to a file

  • « cubrid_lob2_close
  • cubrid_lob2_import »
  • PHP Manual
  • CUBRID Funções
  • Export the lob object to a file

cubrid_lob2_export

(PECL CUBRID >= 8.4.1)

cubrid_lob2_export — Export the lob object to a file

Descrição

cubrid_lob2_export(resource $lob_identifier, string $file_name): bool

The cubrid_lob2_export() function is used to save the contents of BLOB/CLOB data to a file. To use this function, you must use cubrid_lob2_new() or fetch a lob object from CUBRID database first. If the file already exists, the operation will fail. This function will not influence the cursor position of the lob object. It operates the entire lob object.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

filename

File name you want to store BLOB/CLOB data. It also supports the path of the file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lob2_export() example

<?php
// Table: test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$req = cubrid_prepare($conn, "select * from doc");

cubrid_execute($req);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);

$row = cubrid_fetch($req, CUBRID_NUM | CUBRID_LOB);

cubrid_lob2_export($row[1], "doc_3.txt");

cubrid_lob2_close($row[1]);
cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob2_new() - Create a lob object
  • cubrid_lob2_close() - Close LOB object
  • cubrid_lob2_import() - Import BLOB/CLOB data from a file
  • cubrid_lob2_bind() - Bind a lob object or a string as a lob object to a prepared statement as parameters


Import BLOB/CLOB data from a file

  • « cubrid_lob2_export
  • cubrid_lob2_new »
  • PHP Manual
  • CUBRID Funções
  • Import BLOB/CLOB data from a file

cubrid_lob2_import

(PECL CUBRID >= 8.4.1)

cubrid_lob2_import — Import BLOB/CLOB data from a file

Descrição

cubrid_lob2_import(resource $lob_identifier, string $file_name): bool

The cubrid_lob2_import() function is used to save the contents of BLOB/CLOB data from a file. To use this function, you must use cubrid_lob2_new() or fetch a lob object from CUBRID database first. If the file already exists, the operation will fail. This function will not influence the cursor position of the lob object. It operates the entire lob object.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

filename

File name you want to import BLOB/CLOB data. It also supports the path of the file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lob2_export() example

<?php

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);

$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // or cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);
cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob2_new() - Create a lob object
  • cubrid_lob2_close() - Close LOB object
  • cubrid_lob2_export() - Export the lob object to a file
  • cubrid_lob2_bind() - Bind a lob object or a string as a lob object to a prepared statement as parameters


Create a lob object

  • « cubrid_lob2_import
  • cubrid_lob2_read »
  • PHP Manual
  • CUBRID Funções
  • Create a lob object

cubrid_lob2_new

(PECL CUBRID >= 8.4.1)

cubrid_lob2_new — Create a lob object

Descrição

cubrid_lob2_new(resource $conn_identifier = ?, string $type = "BLOB"): resource

The cubrid_lob2_new() function is used to create a lob object (both BLOB and CLOB). This function should be used before you bind a lob object.

Parâmetros

conn_identifier

Connection identifier. If the connection identifier is not specified, the last connection opened by cubrid_connect() or cubrid_connect_with_url() is assumed.

type

It may be "BLOB" or "CLOB", it won't be case-sensitive. The default value is "BLOB".

Valor Retornado

Lob identifier when it is successful, ou false em caso de falha.

Veja Também

  • cubrid_lob2_close() - Close LOB object


Read from BLOB/CLOB data

  • « cubrid_lob2_new
  • cubrid_lob2_seek64 »
  • PHP Manual
  • CUBRID Funções
  • Read from BLOB/CLOB data

cubrid_lob2_read

(PECL CUBRID >= 8.4.1)

cubrid_lob2_read — Read from BLOB/CLOB data

Descrição

cubrid_lob2_read(resource $lob_identifier, int $len): string

The cubrid_lob2_read() function reads len bytes from the LOB data and returns the bytes read.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

len

Length from buffer you want to read from the lob data.

Valor Retornado

Returns the contents as a string, false when there is no more data, or null on failure.

Exemplos

Exemplo #1 cubrid_lob2_read() example 1

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "public", "");

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);

print "position now is " . cubrid_lob2_tell($row[1]) . "\n";

cubrid_lob2_seek($row[1], 10, CUBRID_CURSOR_FIRST);

print "\nposition after moving farword is " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 12);

print "\nposition after reading is " . cubrid_lob2_tell($row[1]) . "\n";

print $data . "\n";

cubrid_lob2_seek($row[1], 5, CUBRID_CURSOR_CURRENT);

print "\nposition after moving again is " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 20);
print $data . "\n";

cubrid_disconnect($conn);
?>

Exemplo #2 cubrid_lob2_read() example 2

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);

while (true) {
if ($data = cubrid_lob2_read($row[1], 1024)) {
print $data . "\n";
}
elseif ($data === false) {
print "There is no more data\n";
break;
}
else {
print "There must some errors\n";
break;
}
}

cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Move the cursor of a lob object

  • « cubrid_lob2_read
  • cubrid_lob2_seek »
  • PHP Manual
  • CUBRID Funções
  • Move the cursor of a lob object

cubrid_lob2_seek64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek64 — Move the cursor of a lob object

Descrição

cubrid_lob2_seek64(resource $lob_identifier, string $offset, int $origin = CUBRID_CURSOR_CURRENT): bool

The cubrid_lob2_seek64() function is used to move the cursor position of a lob object by the value set in the offset argument, to the direction set in the origin argument. If the offset you want to move is larger than an integer data can be stored, you can use this function.

To set the origin argument, you can use CUBRID_CURSOR_FIRST to set the cursor position moving forward offset units from the first beginning. In this case, offset must be a positive value.

If you use CUBRID_CURSOR_CURRENT for origin, you can move forward or backward. and offset can be positive or negative.

If you use CUBRID_CURSOR_LAST for origin, you can move backward offset units from the end of LOB object and offset only can be positive.

Nota:

If you use this function to move the cursor position of the lob object, you should pass offset as a string.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

offset

Number of units you want to move the cursor.

origin

This parameter can be the following values:

CUBRID_CURSOR_FIRST: move forward from the first beginning.

CUBRID_CURSOR_CURRENT: move forward or backward from the current position.

CUBRID_CURSOR_LAST: move backward at the end of LOB object.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lob2_seek64() example

<?php
// test_lob (id INT, contents CLOB)
// Data length of doc_1.txt should be greater than 20101029056306120215.

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);

$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // or cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);

$req = cubrid_execute($conn, "select * from test_lob");
$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob = $row[1];

cubrid_lob2_seek64($lob, "20101029056306120215", CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 20);
echo $data."\n";
cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Move the cursor of a lob object

  • « cubrid_lob2_seek64
  • cubrid_lob2_size64 »
  • PHP Manual
  • CUBRID Funções
  • Move the cursor of a lob object

cubrid_lob2_seek

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek — Move the cursor of a lob object

Descrição

cubrid_lob2_seek(resource $lob_identifier, int $offset, int $origin = CUBRID_CURSOR_CURRENT): bool

The cubrid_lob2_seek() function is used to move the cursor position of a lob object by the value set in the offset argument, to the direction set in the origin argument.

To set the origin argument, you can use CUBRID_CURSOR_FIRST to set the cursor position moving forward offset units from the first beginning. In this case, offset must be a positive value.

If you use CUBRID_CURSOR_CURRENT for origin, you can move forward or backward. and offset can be positive or negative.

If you use CUBRID_CURSOR_LAST for origin, you can move backward offset units from the end of LOB object and offset only can be positive.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

offset

Number of units you want to move the cursor.

origin

This parameter can be the following values:

CUBRID_CURSOR_FIRST: move forward from the first beginning.

CUBRID_CURSOR_CURRENT: move forward or backward from the current position.

CUBRID_CURSOR_LAST: move backward at the end of LOB object.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lob2_seek() example

<?php
// test_lob (id INT, contents CLOB)
$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");
$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(2, ?)");

$lob = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob, "Hello world");

cubrid_lob2_seek($lob, 0, CUBRID_CURSOR_LAST);
cubrid_lob2_write($lob, "beautiful");

cubrid_lob2_seek($lob, 15, CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 5);

echo $data."\n";

cubrid_lob2_bind($req, 1, $lob);
cubrid_execute($req);

cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Get a lob object's size

  • « cubrid_lob2_seek
  • cubrid_lob2_size »
  • PHP Manual
  • CUBRID Funções
  • Get a lob object's size

cubrid_lob2_size64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size64 — Get a lob object's size

Descrição

cubrid_lob2_size64(resource $lob_identifier): string

The cubrid_lob2_size64() function is used to get the size of a lob object. If the size of a lob object is larger than an integer data can be stored, you can use this function and it will return the size as a string.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Valor Retornado

It will return the size of the LOB object as a string when it processes successfully, ou false em caso de falha.

Veja Também

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size


Get a lob object's size

  • « cubrid_lob2_size64
  • cubrid_lob2_tell64 »
  • PHP Manual
  • CUBRID Funções
  • Get a lob object's size

cubrid_lob2_size

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size — Get a lob object's size

Descrição

cubrid_lob2_size(resource $lob_identifier): int

The cubrid_lob2_size() function is used to get the size of a lob object.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Valor Retornado

It will return the size of the LOB object when it processes successfully, ou false em caso de falha.

Veja Também

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size64() - Get a lob object's size


Tell the cursor position of the LOB object

  • « cubrid_lob2_size
  • cubrid_lob2_tell »
  • PHP Manual
  • CUBRID Funções
  • Tell the cursor position of the LOB object

cubrid_lob2_tell64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell64 — Tell the cursor position of the LOB object

Descrição

cubrid_lob2_tell64(resource $lob_identifier): string

The cubrid_lob2_tell64() function is used to tell the cursor position of the LOB object. If the size of a lob object is larger than an integer data can be stored, you can use this function and it will return the position information as a string.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Valor Retornado

It will return the cursor position on the LOB object as a string when it processes successfully, ou false em caso de falha.

Veja Também

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Tell the cursor position of the LOB object

  • « cubrid_lob2_tell64
  • cubrid_lob2_write »
  • PHP Manual
  • CUBRID Funções
  • Tell the cursor position of the LOB object

cubrid_lob2_tell

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell — Tell the cursor position of the LOB object

Descrição

cubrid_lob2_tell(resource $lob_identifier): int

The cubrid_lob2_tell() function is used to tell the cursor position of the LOB object.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Valor Retornado

It will return the cursor position on the LOB object when it processes successfully, ou false em caso de falha.

Veja Também

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Write to a lob object

  • « cubrid_lob2_tell
  • cubrid_lock_read »
  • PHP Manual
  • CUBRID Funções
  • Write to a lob object

cubrid_lob2_write

(PECL CUBRID >= 8.4.1)

cubrid_lob2_write — Write to a lob object

Descrição

cubrid_lob2_write(resource $lob_identifier, string $buf): bool

The cubrid_lob2_write() function reads as much as data from buf and stores it to the LOB object. Note that this function can only append characters now.

Parâmetros

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

buf

Data that need to be written to the lob object.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lob2_write() example 1

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(2, ?)");

$lob = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob, "Hello world");

cubrid_lob2_bind($req, 1, $lob);
cubrid_execute($req);

cubrid_disconnect($conn);
?>

Exemplo #2 cubrid_lob2_write() example 2

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(1, ?)");
$lob1 = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob1, "cubrid php driver");
cubrid_lob2_bind($req, 1, $lob1);
cubrid_execute($req);

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob2 = $row[1];
cubrid_lob2_seek($lob2, 0, CUBRID_CURSOR_LAST);

$pos = cubrid_lob2_tell($lob2);
print "pos before write: $pos\n";

cubrid_lob2_write($lob2, "Hello world");

$pos = cubrid_lob2_tell($lob2);
print "pos after write: $pos\n";

cubrid_disconnect($conn);
?>

Veja Também

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Set a read lock on the given OID

  • « cubrid_lob2_write
  • cubrid_lock_write »
  • PHP Manual
  • CUBRID Funções
  • Set a read lock on the given OID

cubrid_lock_read

(PECL CUBRID >= 8.3.0)

cubrid_lock_read — Set a read lock on the given OID

Descrição

cubrid_lock_read(resource $conn_identifier, string $oid): bool

The cubrid_lock_read() function is used to put read lock on the instance pointed by given oid.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance that you want to put read lock on.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lock_read() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

cubrid_lock_read($conn, $oid);

$attr = cubrid_get($conn, $oid, "b");
var_dump($attr);

$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Veja Também

  • cubrid_lock_write() - Set a write lock on the given OID


Set a write lock on the given OID

  • « cubrid_lock_read
  • cubrid_move_cursor »
  • PHP Manual
  • CUBRID Funções
  • Set a write lock on the given OID

cubrid_lock_write

(PECL CUBRID >= 8.3.0)

cubrid_lock_write — Set a write lock on the given OID

Descrição

cubrid_lock_write(resource $conn_identifier, string $oid): bool

The cubrid_lock_write() function is used to put write lock on the instance pointed by the given oid.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance that you want to put write lock on.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_lock_write() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

cubrid_lock_write($conn, $oid);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_put($conn, $oid, "b", array(2, 4, 8));

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Veja Também

  • cubrid_lock_read() - Set a read lock on the given OID


Move the cursor in the result

  • « cubrid_lock_write
  • cubrid_next_result »
  • PHP Manual
  • CUBRID Funções
  • Move the cursor in the result

cubrid_move_cursor

(PECL CUBRID >= 8.3.0)

cubrid_move_cursor — Move the cursor in the result

Descrição

cubrid_move_cursor(resource $req_identifier, int $offset, int $origin = CUBRID_CURSOR_CURRENT): bool

The cubrid_move_cursor() function is used to move the current cursor location of req_identifier by the value set in the offset argument, to the direction set in the origin argument. To set the origin argument, you can use CUBRID_CURSOR_FIRST for the first part of the result, CUBRID_CURSOR_CURRENT for the current location of the result, or CUBRID_CURSOR_LAST for the last part of the result. If origin argument is not explicitly designated, then the function uses CUBRID_CURSOR_CURRENT as its default value.

If the value of cursor movement range goes over the valid limit, then the cursor moves to the next location after the valid range for the cursor. For example, if you move 20 units in the result with the size of 10, then the cursor will move to 11th place and return CUBRID_NO_MORE_DATA.

Parâmetros

req_identifier

Request identifier.

offset

Number of units you want to move the cursor.

origin

Location where you want to move the cursor from CUBRID_CURSOR_FIRST, CUBRID_CURSOR_CURRENT, CUBRID_CURSOR_LAST.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_move_cursor() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");
cubrid_move_cursor($req, 1, CUBRID_CURSOR_LAST);

$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_CURRENT);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(2) {
  [0]=>
  string(1) "G"
  [1]=>
  string(4) "Gold"
}
array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement


Get result of next query when executing multiple SQL statements

  • « cubrid_move_cursor
  • cubrid_num_cols »
  • PHP Manual
  • CUBRID Funções
  • Get result of next query when executing multiple SQL statements

cubrid_next_result

(PECL CUBRID >= 8.4.0)

cubrid_next_result — Get result of next query when executing multiple SQL statements

Descrição

cubrid_next_result(resource $result): bool

The cubrid_next_result() function is used to get results of next query if multiple SQL statements are executed and CUBRID_EXEC_QUERY_ALL flag is set upon cubrid_execute().

Parâmetros

result

result comes from a call to cubrid_execute()

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_next_result() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");

$sql_stmt = "SELECT * FROM code; SELECT * FROM history WHERE host_year=2004 AND event_code=20281";
$res = cubrid_execute($conn, $sql_stmt, CUBRID_EXEC_QUERY_ALL);

get_result_info($res);
cubrid_next_result($res);
get_result_info($res);

function get_result_info($req)
{
printf("\n------------ get_result_info --------------------\n");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

$column_name_list = cubrid_column_names($req);
$column_type_list = cubrid_column_types($req);

$column_last_name = cubrid_field_name($req, $col_num - 1);
$column_last_table = cubrid_field_table($req, $col_num - 1);

$column_last_type = cubrid_field_type($req, $col_num - 1);
$column_last_len = cubrid_field_len($req, $col_num - 1);

$column_1_flags = cubrid_field_flags($req, 1);

printf("%-30s %d\n", "Row count:", $row_num);
printf("%-30s %d\n", "Column count:", $col_num);
printf("\n");

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Len");
printf("------------------------------------------------------------------------------\n");

$size = count($column_name_list);
for($i = 0; $i < $size; $i++) {
$column_len = cubrid_field_len($req, $i);
printf("%-30s %-30s %-15s\n", $column_name_list[$i], $column_type_list[$i], $column_len);
}
printf("\n\n");

printf("%-30s %s\n", "Last Column Name:", $column_last_name);
printf("%-30s %s\n", "Last Column Table:", $column_last_table);
printf("%-30s %s\n", "Last Column Type:", $column_last_type);
printf("%-30s %d\n", "Last Column Len:", $column_last_len);
printf("%-30s %s\n", "Second Column Flags:", $column_1_flags);

printf("\n\n");
}
?>

O exemplo acima produzirá:

------------ get_result_info --------------------
Row count:                     6
Column count:                  2

Column Names                   Column Types                   Column Len
------------------------------------------------------------------------------
s_name                         char                           1
f_name                         varchar                        6

Last Column Name:              f_name
Last Column Table:             code
Last Column Type:              varchar
Last Column Len:               6
Second Column Flags:

------------ get_result_info --------------------
Row count:                     4
Column count:                  5

Column Names                   Column Types                   Column Len
------------------------------------------------------------------------------
event_code                     integer                        11
athlete                        varchar                        40
host_year                      integer                        11
score                          varchar                        10
unit                           varchar                        5

Last Column Name:              unit
Last Column Table:             history
Last Column Type:              varchar
Last Column Len:               5
Second Column Flags:           not_null primary_key unique_key

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement


Return the number of columns in the result set

  • « cubrid_next_result
  • cubrid_num_rows »
  • PHP Manual
  • CUBRID Funções
  • Return the number of columns in the result set

cubrid_num_cols

(PECL CUBRID >= 8.3.0)

cubrid_num_cols — Return the number of columns in the result set

Descrição

cubrid_num_cols(resource $result): int

The cubrid_num_cols() function is used to get the number of columns from the query result. It can only be used when the query executed is a SELECT statement.

Parâmetros

result

Result.

Valor Retornado

Number of columns, when process is successful.

false, if SQL statement is not SELECT.

Exemplos

Exemplo #1 cubrid_num_cols() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Row Num: 6
Column Num: 2

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_num_rows() - Get the number of rows in the result set


Get the number of rows in the result set

  • « cubrid_num_cols
  • cubrid_pconnect_with_url »
  • PHP Manual
  • CUBRID Funções
  • Get the number of rows in the result set

cubrid_num_rows

(PECL CUBRID >= 8.3.0)

cubrid_num_rows — Get the number of rows in the result set

Descrição

cubrid_num_rows(resource $result): int

The cubrid_num_rows() function is used to get the number of rows from the query result. It can be used for SELECT statements. For INSERT, UPDATE, or DELETE queries, use the cubrid_affected_rows() function.

Note: The cubrid_num_rows() function can only be used for synchronous query; it returns 0 when it is used for asynchronous query.

Parâmetros

result

result comes from a call to cubrid_execute(), cubrid_query() and cubrid_prepare()

Valor Retornado

Number of rows, when process is successful.

0 when the query was done in async mode.

-1, if SQL statement is not SELECT.

false when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_num_rows() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Row Num: 6
Column Num: 2

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_num_cols() - Return the number of columns in the result set
  • cubrid_affected_rows() - Return the number of rows affected by the last SQL statement


Open a persistent connection to CUBRID server

  • « cubrid_num_rows
  • cubrid_pconnect »
  • PHP Manual
  • CUBRID Funções
  • Open a persistent connection to CUBRID server

cubrid_pconnect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_pconnect_with_url — Open a persistent connection to CUBRID server

Descrição

cubrid_pconnect_with_url(string $conn_url, string $userid = ?, string $passwd = ?): resource

Establishes a persistent connection to a CUBRID server.

cubrid_pconnect_with_url() acts very much like cubrid_connect_with_url() 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, port, dbname and userid. 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 (cubrid_close() or cubrid_disconnect() will not close links established by cubrid_pconnect_with_url()).

This type of link is therefore called 'persistent'.

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : A host name or IP address of the master database
  • db_name : A name of the database
  • db_user : A name of the database user
  • db_password : A database user password
  • alhosts : Specifies the broker information of the standby server, which is used for failover when it is impossible to connect to the active server. You can specify multiple brokers for failover, and the connection to the brokers is attempted in the order listed in alhosts
  • rctime : An interval between the attempts to connect to the active broker in which failure occurred. After a failure occurs, the system connects to the broker specified by althosts (failover), terminates the transaction, and then attempts to connect to the active broker of the master database at every rctime. The default value is 600 seconds.
  • login_timeout : Timeout value (unit: msec.) for database login. The default value is 0, which means infinite postponement.
  • query_timeout : Timeout value (unit: msec.) for query request. Upon timeout, a message to cancel requesting a query transferred to server is sent. The return value can depend on the disconnect_on_query_timeout configuration; even though the message to cancel a request is sent to server, that request may succeed.
  • disconnect_on_query_timeout : Configures a value whether to immediately return an error of function being executed upon timeout. The default value is false.

Nota:

? and : that are used as identifiers in PHP connection URL can't be included in the password. The following is an example of a password that is invalid to use as connection URL because it contains "?:".

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Passwords that contain ? or : may be passed as a separate parameter.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_pconnect_with_url ($url, "dba", "12?");

If user or password is empty,you can't delete ":",the following is an example.

$url = "CUBRID:localhost:33000:demodb:::";

Parâmetros

conn_url

A character string that contains server connection information.

userid

User name for the database.

passwd

User password.

Valor Retornado

Connection identifier, when process is successful, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_pconnect_with_url() url without properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::";
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
echo "connected successfully";
cubrid_execute($con, "create table person(id int,name char(16))");
$req =cubrid_execute($con, "insert into person values(1,'James')");

if ($req) {
cubrid_close_request ($req);
cubrid_commit ($con);
} else {
cubrid_rollback ($con);
}
cubrid_disconnect ($con);
}
?>

Exemplo #2 cubrid_pconnect_with_url() url with properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?althost=10.34.63.132:33088&rctime=100";
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
echo "connected successfully";
$req =cubrid_execute($con, "insert into person values(1,'James')");

if ($req) {
cubrid_close_request ($req);
cubrid_commit ($con);
} else {
cubrid_rollback ($con);
}
cubrid_disconnect ($con);
}
?>

Veja Também

  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_connect_with_url() - Establish the environment for connecting to CUBRID server
  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_disconnect() - Close a database connection
  • cubrid_close() - Close CUBRID connection


Open a persistent connection to a CUBRID server

  • « cubrid_pconnect_with_url
  • cubrid_prepare »
  • PHP Manual
  • CUBRID Funções
  • Open a persistent connection to a CUBRID server

cubrid_pconnect

(PECL CUBRID >= 8.3.1)

cubrid_pconnect — Open a persistent connection to a CUBRID server

Descrição

cubrid_pconnect(
string $host,
int $port,
string $dbname,
string $userid = ?,
string $passwd = ?
): resource

Establishes a persistent connection to a CUBRID server.

cubrid_pconnect() acts very much like cubrid_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, port, dbname and userid. 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 (cubrid_close() or cubrid_disconnect() will not close links established by cubrid_pconnect()).

This type of link is therefore called 'persistent'.

Parâmetros

host

Host name or IP address of CUBRID CAS server.

port

Port number of CUBRID CAS server (BROKER_PORT configured in $CUBRID/conf/cubrid_broker.conf).

dbname

Name of database.

userid

User name for the database.

passwd

User password.

Valor Retornado

Connection identifier, when process is successful, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_connect() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_pconnect("localhost", 33000, "demodb", "dba");

if (!$conn) {
die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Veja Também

  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_connect_with_url() - Establish the environment for connecting to CUBRID server
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Close a database connection
  • cubrid_close() - Close CUBRID connection


Prepare a SQL statement for execution

  • « cubrid_pconnect
  • cubrid_put »
  • PHP Manual
  • CUBRID Funções
  • Prepare a SQL statement for execution

cubrid_prepare

(PECL CUBRID >= 8.3.0)

cubrid_prepare — Prepare a SQL statement for execution

Descrição

cubrid_prepare(resource $conn_identifier, string $prepare_stmt, int $option = 0): resource

The cubrid_prepare() function is a sort of API which represents SQL statements compiled previously to a given connection handle. This pre-compiled SQL statement will be included in the cubrid_prepare().

Accordingly, you can use this statement effectively to execute several times repeatedly or to process long data. Only a single statement can be used and a parameter may put a question mark (?) to appropriate area in the SQL statement. Add a parameter when you bind a value in the VALUES clause of INSERT statement or in the WHERE clause. Note that it is allowed to bind a value to a MARK(?) by using the cubrid_bind() function only.

Parâmetros

conn_identifier

Connection identifier.

prepare_stmt

Prepare query.

option

OID return option CUBRID_INCLUDE_OID.

Valor Retornado

Request identifier, if process is successful, ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_prepare() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$sql = <<<EOD
SELECT g.event_code, e.name
FROM game g
JOIN event e ON g.event_code=e.code
WHERE host_year = ? AND event_code NOT IN (SELECT event_code FROM game WHERE host_year=?) GROUP BY event_code;
EOD;

$req = cubrid_prepare($conn, $sql);

cubrid_bind($req, 1, 2004);
cubrid_bind($req, 2, 2000);
cubrid_execute($req);

$row_num = cubrid_num_rows($req);
printf("There are %d event that exits in 2004 olympic but not in 2000. For example:\n\n", $row_num);

printf("%-15s %s\n", "Event_code", "Event_name");
printf("----------------------------\n");

$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);
$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

There are 27 event that exits in 2004 olympic but not in 2000. For example:

Event_code      Event_name
----------------------------
20063           +91kg
20070           64kg

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_bind() - Bind variables to a prepared statement as parameters


Update a column using OID

  • « cubrid_prepare
  • cubrid_rollback »
  • PHP Manual
  • CUBRID Funções
  • Update a column using OID

cubrid_put

(PECL CUBRID >= 8.3.0)

cubrid_put — Update a column using OID

Descrição

cubrid_put(
resource $conn_identifier,
string $oid,
string $attr = ?,
mixed $value
): bool

The cubrid_put() function is used to update an attribute of the instance of the given oid.

You can update single attribute by using string data type to set attr. In such case, you can use integer, floating point or string type data for the value argument. To update multiple number of attributes, you can disregard the attr argument, and set value argument with associative array data type.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance that you want to update.

attr

Name of the attribute that you want to update.

value

New value that you want to assign to the attribute.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_put() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_put($conn, $oid, "b", array(2, 4, 8));

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Veja Também

  • cubrid_get() - Get a column using OID
  • cubrid_set_add() - Insert a single element to set type column using OID
  • cubrid_set_drop() - Delete an element from set type column using OID
  • cubrid_seq_insert() - Insert an element to a sequence type column using OID
  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Roll back a transaction

  • « cubrid_put
  • cubrid_schema »
  • PHP Manual
  • CUBRID Funções
  • Roll back a transaction

cubrid_rollback

(PECL CUBRID >= 8.3.0)

cubrid_rollback — Roll back a transaction

Descrição

cubrid_rollback(resource $conn_identifier): bool

The cubrid_rollback() function executes rollback on the transaction pointed by conn_identifier, currently in progress.

Connection to server is closed after calling cubrid_rollback(). Connection handle, however, is still valid.

Parâmetros

conn_identifier

Connection identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_rollback() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");
cubrid_set_autocommit($conn,false);

@cubrid_execute($conn, "DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;

if (!cubrid_execute($conn, $sql)) {
printf("Error facility: %d\nError code: %d\nError msg: %s\n", cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

cubrid_disconnect($conn);
exit;
}

$req = cubrid_prepare($conn, "INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01", "P02", "P03", "P04");
$name_list = array("Abatis Publishers", "Core Dump Books", "Schadenfreude Press", "Tenterhooks Press");
$city_list = array("New York", "San Francisco", "Hamburg", "Berkeley");
$state_list = array("NY", "CA", NULL, "CA");
$country_list = array("USA", "USA", "Germany", "USA");

for ($i = 0, $size = count($id_list); $i < $size; $i++) {
cubrid_bind($req, 1, $id_list[$i]);
cubrid_bind($req, 2, $name_list[$i]);
cubrid_bind($req, 3, $city_list[$i]);
cubrid_bind($req, 4, $state_list[$i]);
cubrid_bind($req, 5, $country_list[$i]);

if (!($ret = cubrid_execute($req))) {
break;
}
}

if (!$ret) {
cubrid_rollback($conn);
} else {
cubrid_commit($conn);

$req = cubrid_execute($conn, "SELECT * FROM publishers");
while ($result = cubrid_fetch_assoc($req)) {
printf("%-3s %-20s %-15s %-3s %-15s\n",
$result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
}
}

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

P01 Abatis Publishers    New York        NY  USA
P02 Core Dump Books      San Francisco   CA  USA
P03 Schadenfreude Press  Hamburg             Germany
P04 Tenterhooks Press    Berkeley        CA  USA

Veja Também

  • cubrid_commit() - Commit a transaction
  • cubrid_disconnect() - Close a database connection


Get the requested schema information

  • « cubrid_rollback
  • cubrid_seq_drop »
  • PHP Manual
  • CUBRID Funções
  • Get the requested schema information

cubrid_schema

(PECL CUBRID >= 8.3.0)

cubrid_schema — Get the requested schema information

Descrição

cubrid_schema(
resource $conn_identifier,
int $schema_type,
string $class_name = ?,
string $attr_name = ?
): array

The cubrid_schema() function is used to get the requested schema information from database. To get information about specific class, set the class_name, to get information about specific attribute (can be used only with CUBRID_SCH_ATTR_PRIVILEGE), set the attr_name.

The result of the cubrid_schema() function is returned as a two-dimensional array (column (associative array) * row (numeric array)). The following tables shows types of schema and the column structure of the result array to be returned based on the schema type.

Result Composition of Each Type
Schema | Column Number | Column Name | Value
CUBRID_SCH_CLASS | 1 | NAME |
 | 2 | TYPE | 0:system class 1:vclass 2:class
CUBRID_SCH_VCLASS | 1 | NAME |
 | 2 | TYPE | 1:vclass
CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC |
CUBRID_SCH_ATTRIBUTE / CUBRID_SCH_CLASS_ATTRIBUTE | 1 | ATTR_NAME |
 | 2 | DOMAIN |
 | 3 | SCALE |
 | 4 | PRECISION |
 | 5 | INDEXED | 1:indexed
 | 6 | NOT NULL | 1:not null
 | 7 | SHARED | 1:shared
 | 8 | UNIQUE | 1:unique
 | 9 | DEFAULT |
 | 10 | ATTR_ORDER | base:1
 | 11 | CLASS_NAME |
 | 12 | SOURCE_CLASS |
 | 13 | IS_KEY | 1:key
CUBRID_SCH_METHOD / CUBRID_SCH_CLASS_METHOD | 1 | NAME |
 | 2 | RET_DOMAIN |
 | 3 | ARG_DOMAIN |
CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE |
CUBRID_SCH_SUPERCLASS / CUBRID_SCH_DIRECT_SUPER_CLASS / CUBRID_SCH_SUBCLASS | 1 | CLASS_NAME |
 | 2 | TYPE | 0:system class 1:vclass 2:class
CUBRID_SCH_CONSTRAINT | 1 | TYPE | 0:unique 1:index 2:reverse unique 3:reverse index
 | 2 | NAME |
 | 3 | ATTR_NAME |
 | 4 | NUM_PAGES |
 | 5 | NUM_KEYS |
 | 6 | PRIMARY_KEY | 1:primary key
 | 7 | KEY_ORDER | base:1
CUBRID_SCH_TRIGGER | 1 | NAME |
 | 2 | STATUS |
 | 3 | EVENT |
 | 4 | TARGET_CLASS |
 | 5 | TARGET_ATTR |
 | 6 | ACTION_TIME |
 | 7 | ACTION |
 | 8 | PRIORITY |
 | 9 | CONDITION_TIME |
 | 10 | CONDITION |
CUBRID_SCH_CLASS_PRIVILEGE / CUBRID_SCH_ATTR_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME |
 | 2 | PRIVILEGE |
 | 3 | GRANTABLE |
CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME |
 | 2 | ATTR_NAME |
 | 3 | KEY_SEQ | base:1
 | 4 | KEY_NAME |
CUBRID_SCH_IMPORTED_KEYS / CUBRID_SCH_EXPORTED_KEYS / CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME |
 | 2 | PKCOLUMN_NAME |
 | 3 | FKTABLE_NAME | base:1
 | 4 | FKCOLUMN_NAME |
 | 5 | KEY_SEQ | base:1
 | 6 | UPDATE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 7 | DELETE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 8 | FK_NAME |
 | 9 | PK_NAME |

Parâmetros

conn_identifier

Connection identifier.

schema_type

Schema data that you want to know.

class_name

Class you want to know the schema of.

attr_name

Attribute you want to know the schema of.

Valor Retornado

Array containing the schema information, when process is successful, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.1 | Change return value: when process is unsuccessful, return false, not -1.

Exemplos

Exemplo #1 cubrid_schema() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

printf("\n--- Primary Key ---\n");
$pk = cubrid_schema($conn, CUBRID_SCH_PRIMARY_KEY, "game");
var_dump($pk);

printf("\n--- Foreign Keys ---\n");
$fk = cubrid_schema($conn, CUBRID_SCH_IMPORTED_KEYS, "game");
var_dump($fk);

printf("\n--- Column Attribute ---\n");
$attr = cubrid_schema($conn, CUBRID_SCH_ATTRIBUTE, "stadium", "area");
var_dump($attr);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

--- Primary Key ---
array(3) {
  [0]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "3"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [1]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "2"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [2]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(9) "host_year"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
}

--- Foreign Keys ---
array(2) {
  [0]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(7) "athlete"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(20) "fk_game_athlete_code"
    ["PK_NAME"]=>
    string(15) "pk_athlete_code"
  }
  [1]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(5) "event"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(18) "fk_game_event_code"
    ["PK_NAME"]=>
    string(13) "pk_event_code"
  }
}

--- Column Attribute ---
array(1) {
  [0]=>
  array(13) {
    ["ATTR_NAME"]=>
    string(4) "area"
    ["DOMAIN"]=>
    string(1) "7"
    ["SCALE"]=>
    string(1) "2"
    ["PRECISION"]=>
    string(2) "10"
    ["INDEXED"]=>
    string(1) "0"
    ["NON_NULL"]=>
    string(1) "0"
    ["SHARED"]=>
    string(1) "0"
    ["UNIQUE"]=>
    string(1) "0"
    ["DEFAULT"]=>
    NULL
    ["ATTR_ORDER"]=>
    string(1) "4"
    ["CLASS_NAME"]=>
    string(7) "stadium"
    ["SOURCE_CLASS"]=>
    string(7) "stadium"
    ["IS_KEY"]=>
    string(1) "0"
  }
}


Delete an element from sequence type column using OID

  • « cubrid_schema
  • cubrid_seq_insert »
  • PHP Manual
  • CUBRID Funções
  • Delete an element from sequence type column using OID

cubrid_seq_drop

(PECL CUBRID >= 8.3.0)

cubrid_seq_drop — Delete an element from sequence type column using OID

Descrição

cubrid_seq_drop(
resource $conn_identifier,
string $oid,
string $attr_name,
int $index
): bool

The cubrid_seq_drop() function is used to delete an element you request from the given sequence type attribute in the database.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute that you want to delete an element from.

index

Index of the element that you want to delete (1-based).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_seq_drop() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_drop($conn, $oid, "c", 4);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(3) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
}

Veja Também

  • cubrid_seq_insert() - Insert an element to a sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Insert an element to a sequence type column using OID

  • « cubrid_seq_drop
  • cubrid_seq_put »
  • PHP Manual
  • CUBRID Funções
  • Insert an element to a sequence type column using OID

cubrid_seq_insert

(PECL CUBRID >= 8.3.0)

cubrid_seq_insert — Insert an element to a sequence type column using OID

Descrição

cubrid_seq_insert(
resource $conn_identifier,
string $oid,
string $attr_name,
int $index,
string $seq_element
): bool

The cubrid_col_insert() function is used to insert an element to a sequence type attribute in a requested location.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to insert an instance to.

index

Location of the element, you want to insert the element to (1-based).

seq_element

Content of the element that you want to insert.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_seq_insert() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_insert($conn, $oid, "c", 5, "44");

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(5) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
  [4]=>
  string(2) "44"
}

Veja Também

  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Update the element value of sequence type column using OID

  • « cubrid_seq_insert
  • cubrid_set_add »
  • PHP Manual
  • CUBRID Funções
  • Update the element value of sequence type column using OID

cubrid_seq_put

(PECL CUBRID >= 8.3.0)

cubrid_seq_put — Update the element value of sequence type column using OID

Descrição

cubrid_seq_put(
resource $conn_identifier,
string $oid,
string $attr_name,
int $index,
string $seq_element
): bool

The cubrid_seq_put() function is used to update the content of the requested element in a sequent type attribute using OID.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute that you want to update an element.

index

Index (1-based) of the element that you want to update.

seq_element

New content that you want to use for the update.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_seq_put() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_put($conn, $oid, "c", 1, "111");

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(4) {
  [0]=>
  string(3) "111"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}

Veja Também

  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_insert() - Insert an element to a sequence type column using OID


Insert a single element to set type column using OID

  • « cubrid_seq_put
  • cubrid_set_autocommit »
  • PHP Manual
  • CUBRID Funções
  • Insert a single element to set type column using OID

cubrid_set_add

(PECL CUBRID >= 8.3.0)

cubrid_set_add — Insert a single element to set type column using OID

Descrição

cubrid_set_add(
resource $conn_identifier,
string $oid,
string $attr_name,
string $set_element
): bool

The cubrid_set_add() function is used to insert a single element to a set type attribute (set, multiset, sequence) you requested.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to insert an element.

set_element

Content of the element you want to insert.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_set_add() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_set_add($conn, $oid, "b", "4");

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(4) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
  [3]=>
  string(1) "4"
}

Veja Também

  • cubrid_seq_drop() - Delete an element from sequence type column using OID


Set autocommit mode of the connection

  • « cubrid_set_add
  • cubrid_set_db_parameter »
  • PHP Manual
  • CUBRID Funções
  • Set autocommit mode of the connection

cubrid_set_autocommit

(PECL CUBRID >= 8.4.0)

cubrid_set_autocommit — Set autocommit mode of the connection

Descrição

cubrid_set_autocommit(resource $conn_identifier, bool $mode): bool

The cubrid_set_autocommit() function is used to set the CUBRID database auto-commit mode of the current database connection.

In CUBRID PHP, auto-commit mode is disabled by default for transaction management. When auto-commit mode is truned from off to on, any pending work is automatically committed.

Parâmetros

conn_identifier

Connection identifier.

mode

Auto-commit mode. The following constants can be used:

  • CUBRID_AUTOCOMMIT_FALSE
  • CUBRID_AUTOCOMMIT_TRUE

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • cubrid_get_autocommit() - Get auto-commit mode of the connection
  • cubrid_commit() - Commit a transaction


Sets the CUBRID database parameters

  • « cubrid_set_autocommit
  • cubrid_set_drop »
  • PHP Manual
  • CUBRID Funções
  • Sets the CUBRID database parameters

cubrid_set_db_parameter

(PECL CUBRID >= 8.4.0)

cubrid_set_db_parameter — Sets the CUBRID database parameters

Descrição

cubrid_set_db_parameter(resource $conn_identifier, int $param_type, int $param_value): bool

The cubrid_set_db_parameter() function is used to set the CUBRID database parameters. It can set the following CUBRID database parameters:

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT

Nota:

The auto-commit mode can be set by using cubrid_set_autocommit().

Parâmetros

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opened by cubrid_connect() is assumed.

param_type

Database parameter type.

param_value

Isolation level value (1-6) or lock timeout (in seconds) value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_get_db_parameter() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$params = cubrid_get_db_parameter($conn);
var_dump($params);

cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_TRUE);
cubrid_set_db_parameter($conn, CUBRID_PARAM_ISOLATION_LEVEL, 2);

$params_new = cubrid_get_db_parameter($conn);
var_dump($params_new);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(4) {
  ["PARAM_ISOLATION_LEVEL"]=>
  int(3)
  ["PARAM_LOCK_TIMEOUT"]=>
  int(-1)
  ["PARAM_MAX_STRING_LENGTH"]=>
  int(1073741823)
  ["PARAM_AUTO_COMMIT"]=>
  int(0)
}
array(4) {
  ["PARAM_ISOLATION_LEVEL"]=>
  int(2)
  ["PARAM_LOCK_TIMEOUT"]=>
  int(-1)
  ["PARAM_MAX_STRING_LENGTH"]=>
  int(1073741823)
  ["PARAM_AUTO_COMMIT"]=>
  int(1)
}

Veja Também

  • cubrid_get_db_parameter() - Returns the CUBRID database parameters
  • cubrid_set_autocommit() - Set autocommit mode of the connection


Delete an element from set type column using OID

  • « cubrid_set_db_parameter
  • cubrid_set_query_timeout »
  • PHP Manual
  • CUBRID Funções
  • Delete an element from set type column using OID

cubrid_set_drop

(PECL CUBRID >= 8.3.0)

cubrid_set_drop — Delete an element from set type column using OID

Descrição

cubrid_set_drop(
resource $conn_identifier,
string $oid,
string $attr_name,
string $set_element
): bool

The cubrid_set_drop() function is used to delete an element that you request from the given set type (set, multiset) attribute of the database.

Parâmetros

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to delete an element from.

set_element

Content of the element you want to delete.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 cubrid_set_drop() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_set_drop($conn, $oid, "b", "1");

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(2) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "3"
}

Veja Também

  • cubrid_set_add() - Insert a single element to set type column using OID


Set the timeout time of query execution

  • « cubrid_set_drop
  • cubrid_version »
  • PHP Manual
  • CUBRID Funções
  • Set the timeout time of query execution

cubrid_set_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_set_query_timeout — Set the timeout time of query execution

Descrição

cubrid_set_query_timeout(resource $req_identifier, int $timeout): bool

The cubrid_set_query_timeout() function is used to set the timeout time of query execution.

Parâmetros

req_identifier

Request identifier.

timeout

Timeout time in milliseconds.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • cubrid_get_query_timeout() - Get the query timeout value of the request


Get the CUBRID PHP module's version

  • « cubrid_set_query_timeout
  • CUBRID MySQL Compatibility Functions »
  • PHP Manual
  • CUBRID Funções
  • Get the CUBRID PHP module's version

cubrid_version

(PECL CUBRID >= 8.3.0)

cubrid_version — Get the CUBRID PHP module's version

Descrição

cubrid_version(): string

The cubrid_version() function is used to get the CUBRID PHP module's version.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Version information (eg. "8.3.1.0001").

Exemplos

Exemplo #1 cubrid_version() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb", "dba");

if (!$conn) {
die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

O exemplo acima produzirá:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Veja Também

  • cubrid_error_code() - Get error code for the most recent function call
  • cubrid_error_code_facility() - Get the facility code of error


CUBRID MySQL Compatibility Functions

Índice

  • cubrid_affected_rows — Return the number of rows affected by the last SQL statement
  • cubrid_client_encoding — Return the current CUBRID connection charset
  • cubrid_close — Close CUBRID connection
  • cubrid_data_seek — Move the internal row pointer of the CUBRID result
  • cubrid_db_name — Get db name from results of cubrid_list_dbs
  • cubrid_errno — Return the numerical value of the error message from previous CUBRID operation
  • cubrid_error — Get the error message
  • cubrid_fetch_array — Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_assoc — Return the associative array that corresponds to the fetched row
  • cubrid_fetch_field — Get column information from a result and return as an object
  • cubrid_fetch_lengths — Return an array with the lengths of the values of each field from the current row
  • cubrid_fetch_object — Fetch the next row and return it as an object
  • cubrid_fetch_row — Return a numerical array with the values of the current row
  • cubrid_field_flags — Return a string with the flags of the given field offset
  • cubrid_field_len — Get the maximum length of the specified field
  • cubrid_field_name — Return the name of the specified field index
  • cubrid_field_seek — Move the result set cursor to the specified field offset
  • cubrid_field_table — Return the name of the table of the specified field
  • cubrid_field_type — Return the type of the column corresponding to the given field offset
  • cubrid_list_dbs — Return an array with the list of all existing CUBRID databases
  • cubrid_num_fields — Return the number of columns in the result set
  • cubrid_ping — Ping a server connection or reconnect if there is no connection
  • cubrid_query — Send a CUBRID query
  • cubrid_real_escape_string — Escape special characters in a string for use in an SQL statement
  • cubrid_result — Return the value of a specific field in a specific row
  • cubrid_unbuffered_query — Perform a query without fetching the results into memory


Return the number of rows affected by the last SQL statement

  • « CUBRID MySQL Compatibility Functions
  • cubrid_client_encoding »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the number of rows affected by the last SQL statement

cubrid_affected_rows

(PECL CUBRID >= 8.3.0)

cubrid_affected_rows — Return the number of rows affected by the last SQL statement

Descrição

cubrid_affected_rows(resource $conn_identifier = ?): int
cubrid_affected_rows(resource $req_identifier = ?): int

The cubrid_affected_rows() function is used to get the number of rows affected by the SQL statement (INSERT, DELETE, UPDATE).

Parâmetros

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opend by cubrid_connect() is assumed.

req_identifier

Request Identifier, could be returned from either cubrid_prepare() or cubrid_execute(). If the request identifier is not specified, the last identifier requested by cubrid_prepare() or cubrid_execute() is assumed.

Valor Retornado

Number of rows affected by the SQL statement, when process is successful.

-1, when SQL statement is not INSERT, DELETE or UPDATE.

false, when the request identifier is not specified, and there is no last request.

Exemplos

Exemplo #1 cubrid_affected_rows() example

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
cubrid_execute($conn, "DROP TABLE IF EXISTS cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (d varchar)");
$sql_stmt = "INSERT INTO cubrid_test(d) VALUES('php-test')";
$req = cubrid_prepare($conn, $sql_stmt);

for ($i = 0; $i < 10; $i++) {
cubrid_execute($req);
}
cubrid_commit($conn);

$req = cubrid_execute($conn, "DELETE FROM cubrid_test WHERE d='php-test'", CUBRID_ASYNC);
var_dump(cubrid_affected_rows());
var_dump(cubrid_affected_rows($conn));
var_dump(cubrid_affected_rows($req));

cubrid_disconnect($conn);

print "done!";
?>

O exemplo acima produzirá:

Rows deleted: 5

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement


Return the current CUBRID connection charset

  • « cubrid_affected_rows
  • cubrid_close »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the current CUBRID connection charset

cubrid_client_encoding

(PECL CUBRID >= 8.3.1)

cubrid_client_encoding — Return the current CUBRID connection charset

Descrição

cubrid_client_encoding(resource $conn_identifier = ?): string

This function returns the current CUBRID connection charset and is similar to the CUBRID function cubrid_get_charset().

Parâmetros

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opened by cubrid_connect() is assumed.

Valor Retornado

A string that represents the CUBRID connection charset; on success.

false on failure.

Exemplos

Exemplo #1 cubrid_client_encoding() example

<?php

$con = cubrid_connect("localhost", 33000, "demodb");
if (!$con)
{
die('Could not connect.');
}

printf("CUBRID current charset: %s\n", cubrid_client_encoding($con));

?>

O exemplo acima produzirá:

CUBRID current charset: iso8859-1

Veja Também

  • cubrid_get_charset() - Return the current CUBRID connection charset


Close CUBRID connection

  • « cubrid_client_encoding
  • cubrid_data_seek »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Close CUBRID connection

cubrid_close

(PECL CUBRID >= 8.3.1)

cubrid_close — Close CUBRID connection

Descrição

cubrid_close(resource $conn_identifier = ?): bool

The cubrid_close() function ends the transaction currently in process, closes the connection handle and disconnects from server. If there is any request handles not closed yet at this point, they will be closed. It is similar to the CUBRID function cubrid_disconnect().

Parâmetros

conn_identifier

The CUBRID connection identifier. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Valor Retornado

true, when process is successful.

false, when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_close() example

<?php
$con = cubrid_connect ("localhost", 33000, "demodb");
if ($con) {
echo "connected successfully";
$req = cubrid_execute ( $con, "insert into person values(1,'James')");
if ($req) {
cubrid_close_request ($req);
cubrid_commit ($con);
} else {
cubrid_rollback ($con);
}
cubrid_close ($con);
}
?>

Veja Também

  • cubrid_disconnect() - Close a database connection
  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_connect_with_url() - Establish the environment for connecting to CUBRID server


Move the internal row pointer of the CUBRID result

  • « cubrid_close
  • cubrid_db_name »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Move the internal row pointer of the CUBRID result

cubrid_data_seek

(PECL CUBRID >= 8.3.0)

cubrid_data_seek — Move the internal row pointer of the CUBRID result

Descrição

cubrid_data_seek(resource $result, int $row_number): bool

This function performs the moving of the internal row pointer of the CUBRID result (associated with the specified result identifier) to point to a specific row number. There are functions, such as cubrid_fetch_assoc(), which use the current stored value of row number.

Parâmetros

result

The result.

row_number

This is the desired row number of the new result pointer.

Valor Retornado

Returns true on success or false on failure.

Exemplos

Exemplo #1 cubrid_data_seek() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");
cubrid_data_seek($req, 0);

$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_data_seek($req, 2);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_data_seek($req, 4);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}
array(2) {
  [0]=>
  string(1) "S"
  [1]=>
  string(6) "Silver"
}


Get db name from results of cubrid_list_dbs

  • « cubrid_data_seek
  • cubrid_errno »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Get db name from results of cubrid_list_dbs

cubrid_db_name

(PECL CUBRID >= 8.3.1)

cubrid_db_name — Get db name from results of cubrid_list_dbs

Descrição

cubrid_db_name(array $result, int $index): string

Retrieve the database name from a call to cubrid_list_dbs().

Parâmetros

result

The result pointer from a call to cubrid_list_dbs().

index

The index into the result set.

Valor Retornado

Returns the database name on success, and false on failure. If false is returned, use cubrid_error() to determine the nature of the error.

Exemplos

Exemplo #1 cubrid_db_name() example

<?php
error_reporting(E_ALL);

$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$db_list = cubrid_list_dbs($conn);

$i = 0;
$cnt = count($db_list);
while ($i < $cnt) {
echo cubrid_db_name($db_list, $i) . "\n";
$i++;
}
?>

O exemplo acima produzirá:

demodb

Veja Também

  • cubrid_list_dbs() - Return an array with the list of all existing CUBRID databases


Return the numerical value of the error message from previous CUBRID operation

  • « cubrid_db_name
  • cubrid_error »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the numerical value of the error message from previous CUBRID operation

cubrid_errno

(PECL CUBRID >= 8.3.1)

cubrid_errno — Return the numerical value of the error message from previous CUBRID operation

Descrição

cubrid_errno(resource $conn_identifier = ?): int

Returns the error number from the last CUBRID function.

The cubrid_errno() function is used to get the error code of the error that occurred during the API execution. Usually, it gets the error code when API returns false as its return value.

Parâmetros

conn_identifier

The CUBRID connection identifier. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Valor Retornado

Returns the error number from the last CUBRID function, or 0 (zero) if no error occurred.

Exemplos

Exemplo #1 cubrid_errno() example

<?php
$con = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$req = cubrid_execute($con, "select id, name from person");
if ($req) {
while (list ($id, $name) = cubrid_fetch($req))
echo $id, $name;
} else {
echo "Error Code: ", cubrid_errno($con);
echo "Error Message: ", cubrid_error($con);
}
?>

O exemplo acima produzirá:

Error Code: -493 Error Message: Syntax: Unknown class "person". select id, [name] from person

Veja Também

  • cubrid_error() - Get the error message
  • cubrid_error_code() - Get error code for the most recent function call
  • cubrid_error_msg() - Get last error message for the most recent function call


Get the error message

  • « cubrid_errno
  • cubrid_fetch_array »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Get the error message

cubrid_error

(PECL CUBRID >= 8.3.1)

cubrid_error — Get the error message

Descrição

cubrid_error(resource $connection = ?): string

The cubrid_error() function is used to get the error message that occurred during the use of CUBRID API. Usually, it gets error message when API returns false as its return value.

Parâmetros

connection

The CUBRID connection.

Valor Retornado

Error message that occurred.

Exemplos

Exemplo #1 cubrid_error() example

<?php
$con = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$req = cubrid_execute($con, "select id, name from person");
if ($req) {
while (list ($id, $name) = cubrid_fetch($req))
echo $id, $name;
} else {
echo "Error Code: ", cubrid_errno($con);
echo "Error Message: ", cubrid_error($con);
}
?>

O exemplo acima produzirá:

Error Code: -493 Error Message: Syntax: Unknown class "person". select id, [name] from person

Veja Também

  • cubrid_errno() - Return the numerical value of the error message from previous CUBRID operation
  • cubrid_error_code() - Get error code for the most recent function call
  • cubrid_error_msg() - Get last error message for the most recent function call


Fetch a result row as an associative array, a numeric array, or both

  • « cubrid_error
  • cubrid_fetch_assoc »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Fetch a result row as an associative array, a numeric array, or both

cubrid_fetch_array

(PECL CUBRID >=8.3.0)

cubrid_fetch_array — Fetch a result row as an associative array, a numeric array, or both

Descrição

cubrid_fetch_array(resource $result, int $type = CUBRID_BOTH): array

The cubrid_fetch_array() function is used to get a single row from the query result and returns an array. The cursor automatically moves to the next row after getting the result.

Parâmetros

result

Result comes from a call to cubrid_execute()

type

Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH. If you need to operate the lob object, you can use CUBRID_LOB.

Valor Retornado

Returns an array of strings that corresponds to the fetched row, when process is successful.

false, when there are no more rows; NULL, when process is unsuccessful.

The type of returned array depends on how type is defined. By using CUBRID_BOTH (default), you'll get an array with both associative and number indices, and you can decide which data type to use by setting the type argument. The type variable can be set to one of the following values:

  • CUBRID_NUM : Numerical array (0-based)
  • CUBRID_ASSOC : Associative array
  • CUBRID_BOTH : Numerical & Associative array (default)

Exemplos

Exemplo #1 cubrid_fetch_array() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_array($req, CUBRID_NUM)) {
printf("%-40s %-10s %-6s %-20s\n", $row[0], $row[1], $row[2], $row[3]);
}

// if you want to operate LOB object, you can use cubrid_fetch_array($req, CUBRID_NUM | CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_row() - Return a numerical array with the values of the current row
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_object() - Fetch the next row and return it as an object


Return the associative array that corresponds to the fetched row

  • « cubrid_fetch_array
  • cubrid_fetch_field »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the associative array that corresponds to the fetched row

cubrid_fetch_assoc

(PECL CUBRID >= 8.3.0)

cubrid_fetch_assoc — Return the associative array that corresponds to the fetched row

Descrição

cubrid_fetch_assoc(resource $result, int $type = ?): array

This function returns the associative array, that corresponds to the fetched row, and then moves the internal data pointer ahead, or returns FALSE when the end is reached.

Parâmetros

result

result comes from a call to cubrid_execute()

type

Type can only be CUBRID_LOB, this parameter will be used only when you need to operate the lob object.

Valor Retornado

Associative array, when process is successful.

false, when there are no more rows; NULL, when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_fetch_assoc() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_assoc($req)) {
printf("%-40s %-10s %-6s %-20s\n",
$row["name"], $row["area"], $row["seats"], $row["address"]);
}

// if you want to operate LOB object, you can use cubrid_fetch_assoc($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_row() - Return a numerical array with the values of the current row
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_object() - Fetch the next row and return it as an object


Get column information from a result and return as an object

  • « cubrid_fetch_assoc
  • cubrid_fetch_lengths »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Get column information from a result and return as an object

cubrid_fetch_field

(PECL CUBRID >= 8.3.1)

cubrid_fetch_field — Get column information from a result and return as an object

Descrição

cubrid_fetch_field(resource $result, int $field_offset = 0): object

This function returns an object with certain properties of the specific column. The properties of the object are:

name

column name

table

name of the table that the column belongs to

def

default value of the column

max_length

maximum length of the column

not_null

1 if the column cannot be NULL

primary_key

1 if the column is a primary key

unique_key

1 if the column is an unique key

multiple_key

1 if the column is a non-unique key

numeric

1 if the column is numeric

blob

1 if the column is a BLOB

type

the type of the column

unsigned

1 if the column is unsigned

zerofill

1 if the column is zero-filled

Parâmetros

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. If the field offset is not specified, the next field (that was not yet retrieved by this function) is retrieved. The field_offset starts at 0.

Valor Retornado

Object with certain properties of the specific column, when process is successful.

false on failure.

Exemplos

Exemplo #1 cubrid_fetch_field() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT event_code,athlete_code,nation_code,game_date FROM game WHERE host_year=1988 and event_code=20001;");

var_dump(cubrid_fetch_row($req));

cubrid_field_seek($req, 1);
$field = cubrid_fetch_field($req);

printf("\n--- Field Properties ---\n");
printf("%-30s %s\n", "name:", $field->name);
printf("%-30s %s\n", "table:", $field->table);
printf("%-30s \"%s\"\n", "default value:", $field->def);
printf("%-30s %d\n", "max length:", $field->max_length);
printf("%-30s %d\n", "not null:", $field->not_null);
printf("%-30s %d\n", "primary key:", $field->primary_key);
printf("%-30s %d\n", "unique key:", $field->unique_key);
printf("%-30s %d\n", "multiple key:", $field->multiple_key);
printf("%-30s %d\n", "numeric:", $field->numeric);
printf("%-30s %d\n", "blob:", $field->blob);
printf("%-30s %s\n", "type:", $field->type);
printf("%-30s %d\n", "unsigned:", $field->unsigned);
printf("%-30s %d\n", "zerofill:", $field->zerofill);

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(4) {
  [0]=>
  string(5) "20001"
  [1]=>
  string(5) "16681"
  [2]=>
  string(3) "KOR"
  [3]=>
  string(9) "1988-9-30"
}

--- Field Properties ---
name:                          athlete_code
table:                         game
default value:                 ""
max length:                    0
not null:                      1
primary key:                   1
unique key:                    1
multiple key:                  0
numeric:                       1
blob:                          0
type:                          integer
unsigned:                      0
zerofill:                      0


Return an array with the lengths of the values of each field from the current row

  • « cubrid_fetch_field
  • cubrid_fetch_object »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return an array with the lengths of the values of each field from the current row

cubrid_fetch_lengths

(PECL CUBRID >= 8.3.0)

cubrid_fetch_lengths — Return an array with the lengths of the values of each field from the current row

Descrição

cubrid_fetch_lengths(resource $result): array

This function returns a numeric array with the lengths of the values of each field from the current row of the result set or it returns FALSE on failure.

Nota:

If field data type is BLOB/CLOB, you should get its length by using cubrid_lob_size().

Parâmetros

result

result comes from a call to cubrid_execute()

Valor Retornado

A numeric array, when process is successful.

false on failure.

Exemplos

Exemplo #1 cubrid_fetch_lengths() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$row = cubrid_fetch_row($result);
print_r($row);

$lens = cubrid_fetch_lengths($result);
print_r($lens);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Array
(
    [0] => 2004
    [1] => 20085
    [2] => 15118
    [3] => 30134
    [4] => AUS
    [5] => G
    [6] => 2004-8-20
)
Array
(
    [0] => 4
    [1] => 5
    [2] => 5
    [3] => 5
    [4] => 3
    [5] => 1
    [6] => 10
)


Fetch the next row and return it as an object

  • « cubrid_fetch_lengths
  • cubrid_fetch_row »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Fetch the next row and return it as an object

cubrid_fetch_object

(PECL CUBRID >= 8.3.0)

cubrid_fetch_object — Fetch the next row and return it as an object

Descrição

cubrid_fetch_object(
resource $result,
string $class_name = ?,
array $params = ?,
int $type = ?
): object

This function returns an object with the column names of the result set as properties. The values of these properties are extracted from the current row of the result.

Parâmetros

result

result comes from a call to cubrid_execute()

class_name

The name of the class to instantiate. If not specified, a stdClass (stdClass is PHP's generic empty class that's used when casting other types to objects) object is returned.

params

An optional array of parameters to pass to the constructor for class_name objects.

type

Type can only be CUBRID_LOB, this parameter will be used only when you need to operate the lob object.

Valor Retornado

An object, when process is successful.

false, when there are no more rows; NULL, when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_fetch_object() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$res = cubrid_execute($conn, "SELECT * FROM code");

var_dump(cubrid_fetch_object($res));

// if you want to operate LOB object, you can use cubrid_fetch_object($res, CUBRID_LOB)

class demodb_code {
public $s_name = null;
public $f_name = null;

public function toString() {
var_dump($this);
}
}

var_dump(cubrid_fetch_object($res, "demodb_code"));

// if you want to operate LOB object, you can use cubrid_fetch_object($res, "demodb_code", CUBRID_LOB)

class demodb_code_construct extends demodb_code {
public function __construct($s, $f) {
$this->s_name = $s;
$this->f_name = $f;
}
}

var_dump(cubrid_fetch_object($res, 'demodb_code_construct', array('s_name', 'f_name')));

// if you want to operate LOB object, you can use cubrid_fetch_object($res, 'demodb_code_construct', array('s_name', 'f_name'), CUBRID_LOB)

var_dump(cubrid_fetch_object($res));

cubrid_close_request($res);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "X"
  ["f_name"]=>
  string(5) "Mixed"
}
object(demodb_code)#1 (2) {
  ["s_name"]=>
  string(1) "W"
  ["f_name"]=>
  string(5) "Woman"
}
object(demodb_code_construct)#1 (2) {
  ["s_name"]=>
  string(6) "s_name"
  ["f_name"]=>
  string(6) "f_name"
}
object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "B"
  ["f_name"]=>
  string(6) "Bronze"
}

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_row() - Return a numerical array with the values of the current row


Return a numerical array with the values of the current row

  • « cubrid_fetch_object
  • cubrid_field_flags »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return a numerical array with the values of the current row

cubrid_fetch_row

(PECL CUBRID >= 8.3.0)

cubrid_fetch_row — Return a numerical array with the values of the current row

Descrição

cubrid_fetch_row(resource $result, int $type = ?): array

This function returns a numerical array with the values of the current row from the result set, starting from 0, and moves the internal data pointer ahead.

Parâmetros

result

result comes from a call to cubrid_execute()

type

Type can only be CUBRID_LOB, this parameter will be used only when you need to operate the lob object.

Valor Retornado

A numerical array, when process is successful.

false, when there are no more rows; NULL, when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_fetch_row() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_row($req)) {
printf("%-40s %-10s %-6s %-20s\n", $row[0], $row[1], $row[2], $row[3]);
}

// if you want to operate LOB object, you can use cubrid_fetch_row($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Veja Também

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_object() - Fetch the next row and return it as an object


Return a string with the flags of the given field offset

  • « cubrid_fetch_row
  • cubrid_field_len »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return a string with the flags of the given field offset

cubrid_field_flags

(PECL CUBRID >= 8.3.0)

cubrid_field_flags — Return a string with the flags of the given field offset

Descrição

cubrid_field_flags(resource $result, int $field_offset): string

This function returns a string with the flags of the given field offset separated by space. You can split the returned value using explode. The possible flags could be: not_null, primary_key, unique_key, foreign_key, auto_increment, shared, reverse_index, reverse_unique and timestamp.

Parâmetros

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Valor Retornado

A string with flags, when process is successful.

false when invalid field_offset value.

-1 if SQL sentence is not SELECT.

Exemplos

Exemplo #1 cubrid_field_flags() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$col_num = cubrid_num_cols($result);

printf("%-30s %s\n", "Field Name", "Field Flags");
for($i = 0; $i < $col_num; $i++) {
printf("%-30s %s\n", cubrid_field_name($result, $i), cubrid_field_flags($result, $i));
}

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Field Name                     Field Flags
host_year                      not_null primary_key unique_key
event_code                     not_null primary_key unique_key foreign_key
athlete_code                   not_null primary_key unique_key foreign_key
stadium_code                   not_null
nation_code
medal
game_date


Get the maximum length of the specified field

  • « cubrid_field_flags
  • cubrid_field_name »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Get the maximum length of the specified field

cubrid_field_len

(PECL CUBRID >= 8.3.0)

cubrid_field_len — Get the maximum length of the specified field

Descrição

cubrid_field_len(resource $result, int $field_offset): int

This function returns the maximum length of the specified field on success, or it returns FALSE on failure.

Parâmetros

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Valor Retornado

Maximum length, when process is successful.

false on failure.

Exemplos

Exemplo #1 cubrid_field_len() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
$column_len = cubrid_field_len($result, $i);
printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10


Return the name of the specified field index

  • « cubrid_field_len
  • cubrid_field_seek »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the name of the specified field index

cubrid_field_name

(PECL CUBRID >= 8.3.0)

cubrid_field_name — Return the name of the specified field index

Descrição

cubrid_field_name(resource $result, int $field_offset): string

This function returns the name of the specified field index on success or it returns FALSE on failure.

Parâmetros

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Valor Retornado

Name of specified field index, on success.

false on failure.

Exemplos

Exemplo #1 cubrid_field_name() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$col_num = cubrid_num_cols($result);

printf("%-30s %s\n", "Field Name", "Field Flags");
for($i = 0; $i < $col_num; $i++) {
printf("%-30s %s\n", cubrid_field_name($result, $i), cubrid_field_flags($result, $i));
}

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Field Name                     Field Flags
host_year                      not_null primary_key unique_key
event_code                     not_null primary_key unique_key foreign_key
athlete_code                   not_null primary_key unique_key foreign_key
stadium_code                   not_null
nation_code
medal
game_date


Move the result set cursor to the specified field offset

  • « cubrid_field_name
  • cubrid_field_table »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Move the result set cursor to the specified field offset

cubrid_field_seek

(PECL CUBRID >= 8.3.0)

cubrid_field_seek — Move the result set cursor to the specified field offset

Descrição

cubrid_field_seek(resource $result, int $field_offset = 0): bool

This function moves the result set cursor to the specified field offset. This offset is used by cubrid_fetch_field() if it doesn't include a field offset. It returns TRUE on success or FALSE on failure.

Parâmetros

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Valor Retornado

true on success.

false on failure.

Exemplos

Exemplo #1 cubrid_field_seek() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT event_code,athlete_code,nation_code,game_date FROM game WHERE host_year=1988 and event_code=20001;");

var_dump(cubrid_fetch_row($req));

cubrid_field_seek($req, 1);
$field = cubrid_fetch_field($req);

printf("\n--- Field Properties ---\n");
printf("%-30s %s\n", "name:", $field->name);
printf("%-30s %s\n", "table:", $field->table);
printf("%-30s \"%s\"\n", "default value:", $field->def);
printf("%-30s %d\n", "max length:", $field->max_length);
printf("%-30s %d\n", "not null:", $field->not_null);
printf("%-30s %d\n", "unique key:", $field->unique_key);
printf("%-30s %d\n", "multiple key:", $field->multiple_key);
printf("%-30s %d\n", "numeric:", $field->numeric);
printf("%-30s %s\n", "type:", $field->type);

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(4) {
  [0]=>
  string(5) "20001"
  [1]=>
  string(5) "16132"
  [2]=>
  string(3) "KOR"
  [3]=>
  string(9) "1988-09-30"
}

--- Field Properties ---
name:                          athlete_code
table:                         game
default value:                 ""
max length:                    0
not null:                      1
unique key:                    1
multiple key:                  0
numeric:                       1
type:                          integer


Return the name of the table of the specified field

  • « cubrid_field_seek
  • cubrid_field_type »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the name of the table of the specified field

cubrid_field_table

(PECL CUBRID >= 8.3.0)

cubrid_field_table — Return the name of the table of the specified field

Descrição

cubrid_field_table(resource $result, int $field_offset): string

This function returns the name of the table of the specified field. This is useful when using large select queries with JOINS.

Parâmetros

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Valor Retornado

Name of the table of the specified field, on success.

false when invalid field_offset value.

-1 if SQL sentence is not SELECT.

Exemplos

Exemplo #1 cubrid_field_table() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM code");

$col_num = cubrid_num_cols($result);

printf("%-15s %-15s %s\n", "Field Table", "Field Name", "Field Type");
for($i = 0; $i < $col_num; $i++) {
printf("%-15s %-15s %s\n",
cubrid_field_table($result, $i), cubrid_field_name($result, $i), cubrid_field_type($result, $i));
}

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Field Table     Field Name      Field Type
code            s_name          char
code            f_name          varchar


Return the type of the column corresponding to the given field offset

  • « cubrid_field_table
  • cubrid_list_dbs »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the type of the column corresponding to the given field offset

cubrid_field_type

(PECL CUBRID >= 8.3.0)

cubrid_field_type — Return the type of the column corresponding to the given field offset

Descrição

cubrid_field_type(resource $result, int $field_offset): string

This function returns the type of the column corresponding to the given field offset. The returned field type could be one of the following: "int", "real", "string", etc.

Parâmetros

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Valor Retornado

Type of the column, on success.

false when invalid field_offset value.

-1 if SQL sentence is not SELECT.

Exemplos

Exemplo #1 cubrid_field_type() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM code");

$col_num = cubrid_num_cols($result);

printf("%-15s %-15s %s\n", "Field Table", "Field Name", "Field Type");
for($i = 0; $i < $col_num; $i++) {
printf("%-15s %-15s %s\n",
cubrid_field_table($result, $i), cubrid_field_name($result, $i), cubrid_field_type($result, $i));
}

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Field Table     Field Name      Field Type
code            s_name          char
code            f_name          varchar


Return an array with the list of all existing CUBRID databases

  • « cubrid_field_type
  • cubrid_num_fields »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return an array with the list of all existing CUBRID databases

cubrid_list_dbs

(PECL CUBRID >= 8.3.0)

cubrid_list_dbs — Return an array with the list of all existing CUBRID databases

Descrição

cubrid_list_dbs(resource $conn_identifier = ?): array

This function returns an array with the list of all existing Cubrid databases.

Parâmetros

conn_identifier

The CUBRID connection.

Valor Retornado

An numeric array with all existing Cubrid databases; on success.

false on failure.

Exemplos

Exemplo #1 cubrid_list_dbs() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$db_list = cubrid_list_dbs($conn);
var_dump($db_list);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(1) {
  [0]=>
  string(6) "demodb"
}


Return the number of columns in the result set

  • « cubrid_list_dbs
  • cubrid_ping »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the number of columns in the result set

cubrid_num_fields

(PECL CUBRID >= 8.3.0)

cubrid_num_fields — Return the number of columns in the result set

Descrição

cubrid_num_fields(resource $result): int

This function returns the number of columns in the result set, on success, or it returns FALSE on failure.

Parâmetros

result

result comes from a call to cubrid_execute(), cubrid_query() and cubrid_prepare()

Valor Retornado

Number of columns, on success.

-1 if SQL sentence is not SELECT.

false when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_num_fields() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_fields($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

Row Num: 6
Column Num: 2


Ping a server connection or reconnect if there is no connection

  • « cubrid_num_fields
  • cubrid_query »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Ping a server connection or reconnect if there is no connection

cubrid_ping

(PECL CUBRID >= 8.3.1)

cubrid_ping — Ping a server connection or reconnect if there is no connection

Descrição

cubrid_ping(resource $conn_identifier = ?): bool

Checks whether or not the connection to the server is working.

Parâmetros

conn_identifier

The CUBRID connection identifier. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Valor Retornado

Returns true if the connection to the server CUBRID server is working, otherwise false.

Exemplos

Exemplo #1 cubrid_ping() example

<?php
set_time_limit(0);

$conn = cubrid_connect('localhost', 33000, 'demodb');

/* Assuming this query will take a long time */
$sql = "select * from athlete";
$result = cubrid_query($sql);
if (!$result) {
echo 'Query #1 failed, exiting.';
exit;
}

/* Make sure the connection is still alive, if not, try to reconnect */
if (!cubrid_ping($conn)) {
echo 'Lost connection, exiting after query #1';
exit;
}
cubrid_free_result($result);

/* So the connection is still alive, let's run another query */
$sql2 = "select * from code";
$result2 = cubrid_query($sql2);
?>


Send a CUBRID query

  • « cubrid_ping
  • cubrid_real_escape_string »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Send a CUBRID query

cubrid_query

(PECL CUBRID >= 8.3.1)

cubrid_query — Send a CUBRID query

Descrição

cubrid_query(string $query, resource $conn_identifier = ?): resource

cubrid_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified conn_identifier.

Parâmetros

query

An SQL query

Data inside the query should be properly escaped.

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Valor Retornado

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, cubrid_query() returns a resource on success, or false on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, cubrid_query() returns true on success or false on error.

The returned result resource should be passed to cubrid_fetch_array(), and other functions for dealing with result tables, to access the returned data.

Use cubrid_num_rows() to find out how many rows were returned for a SELECT statement or cubrid_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

cubrid_query() will also fail and return false if the user does not have permission to access the table(s) referenced by the query.

Exemplos

Exemplo #1 Invalid Query

The following query is syntactically invalid, so cubrid_query() fails and returns false.

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb');

$result = cubrid_query('SELECT * WHERE 1=1');
if (!$result) {
die('Invalid query: ' . cubrid_error());
}

?>

Exemplo #2 Valid Query

The following query is valid, so cubrid_query() returns a resource.

<?php
// This could be supplied by a user, for example
$firstname = 'fred';
$lastname = 'fox';

$conn = cubrid_connect('localhost', 33000, 'demodb');

cubrid_execute($conn,"DROP TABLE if exists friends");
cubrid_execute($conn,"create table friends(firstname varchar,lastname varchar,address char(24),age int)");
cubrid_execute($conn,"insert into friends values('fred','fox','home-1','20')");
cubrid_execute($conn,"insert into friends values('blue','cat','home-2','21')");
// Formulate Query
// This is the best way to perform an SQL query
// For more examples, see cubrid_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
cubrid_real_escape_string($firstname),
cubrid_real_escape_string($lastname));

// Perform Query
$result = cubrid_query($query);

// Check result
// This shows the actual query sent to CUBRID, and the error. Useful for debugging.
if (!$result) {
$message = 'Invalid query: ' . cubrid_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}

// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the cubrid result functions must be used
// See also cubrid_result(), cubrid_fetch_array(), cubrid_fetch_row(), etc.
while ($row = cubrid_fetch_assoc($result)) {
echo $row['firstname'];
echo $row['lastname'];
echo $row['address'];
echo $row['age'];
}

// Free the resources associated with the result set
// This is done automatically at the end of the script
cubrid_free_result($result);
?>

Veja Também

  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_error() - Get the error message
  • cubrid_real_escape_string() - Escape special characters in a string for use in an SQL statement
  • cubrid_result() - Return the value of a specific field in a specific row
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_unbuffered_query() - Perform a query without fetching the results into memory


Escape special characters in a string for use in an SQL statement

  • « cubrid_query
  • cubrid_result »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Escape special characters in a string for use in an SQL statement

cubrid_real_escape_string

(PECL CUBRID >= 8.3.0)

cubrid_real_escape_string — Escape special characters in a string for use in an SQL statement

Descrição

cubrid_real_escape_string(string $unescaped_string, resource $conn_identifier = ?): string

This function returns the escaped string version of the given string. It will escape the following characters: '. In general, single quotations are used to enclose character string. Double quotations may be used as well depending on the value of ansi_quotes, which is a parameter related to SQL statement. If the ansi_quotes value is set to no, character string enclosed by double quotations is handled as character string, not as an identifier. The default value is yes. If you want to include a single quote as part of a character string, enter two single quotes in a row.

Parâmetros

unescaped_string

The string that is to be escaped.

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Valor Retornado

Escaped string version of the given string, on success.

false on failure.

Exemplos

Exemplo #1 cubrid_real_escape_string() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$unescaped_str = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
$escaped_str = cubrid_real_escape_string($unescaped_str);

$len = strlen($unescaped_str);

@cubrid_execute($conn, "DROP TABLE cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (t char($len))");
cubrid_execute($conn, "INSERT INTO cubrid_test (t) VALUES('$escaped_str')");

$req = cubrid_execute($conn, "SELECT * FROM cubrid_test");
$row = cubrid_fetch_assoc($req);

var_dump($row);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

array(1) {
  ["t"]=>
  string(95) " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
}


Return the value of a specific field in a specific row

  • « cubrid_real_escape_string
  • cubrid_unbuffered_query »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the value of a specific field in a specific row

cubrid_result

(PECL CUBRID >= 8.3.0)

cubrid_result — Return the value of a specific field in a specific row

Descrição

cubrid_result(resource $result, int $row, mixed $field = 0): string

This function returns the value of a specific field in a specific row from a result set.

Parâmetros

result

result comes from a call to cubrid_execute()

row

The row number from the result that is being retrieved. Row numbers start at 0.

field

The name or offset of the field being retrieved. It can be the field's offset, the field's name, or the field's table dot field name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name. If undefined, the first field is retrieved.

Valor Retornado

Value of a specific field, on success (NULL if value if null).

false on failure.

Exemplos

Exemplo #1 cubrid_result() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");

$result = cubrid_result($req, 0);
var_dump($result);

$result = cubrid_result($req, 0, 1);
var_dump($result);

$result = cubrid_result($req, 5, "f_name");
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

O exemplo acima produzirá:

string(1) "X"
string(5) "Mixed"
string(4) "Gold"


Perform a query without fetching the results into memory

  • « cubrid_result
  • CUBRID Obsolete Aliases and Functions »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Perform a query without fetching the results into memory

cubrid_unbuffered_query

(PECL CUBRID >= 8.3.0)

cubrid_unbuffered_query — Perform a query without fetching the results into memory

Descrição

cubrid_unbuffered_query(string $query, resource $conn_identifier = ?): resource

This function performs a query without waiting for that all query results have been complete. It will return when the results are being generated.

Parâmetros

query

A SQL query.

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Valor Retornado

For SELECT, SHOW, DESCRIBE or EXPLAIN statements returns a request identifier resource on success.

For other type of SQL statements, UPDATE, DELETE, DROP, etc, returns true on success.

false on failure.

Exemplos

Exemplo #1 cubrid_unbuffered_query() example

<?php
$link = cubrid_connect("localhost", 30000, "demodb", "dba", "");
if (!$link)
{
die('Could not connect.');
}
$query = "select * from code";
$result = cubrid_unbuffered_query($query, $link);

while ($row = cubrid_fetch($result))
{
var_dump($row);
}

cubrid_close_request($result);
cubrid_disconnect($link);
?>

Notas

Nota:

The benefits of cubrid_unbuffered_query() come at a cost: you cannot use cubrid_num_rows() and cubrid_data_seek() on a result set returned from cubrid_unbuffered_query().


CUBRID Obsolete Aliases and Functions

Índice

  • cubrid_load_from_glo — Read data from a GLO instance and save it in a file
  • cubrid_new_glo — Create a glo instance
  • cubrid_save_to_glo — Save requested file in a GLO instance
  • cubrid_send_glo — Read data from glo and send it to std output


Read data from a GLO instance and save it in a file

  • « CUBRID Obsolete Aliases and Functions
  • cubrid_new_glo »
  • PHP Manual
  • CUBRID Obsolete Aliases and Functions
  • Read data from a GLO instance and save it in a file

cubrid_load_from_glo

(PECL CUBRID >= 8.3.0)

cubrid_load_from_glo — Read data from a GLO instance and save it in a file

Descrição

cubrid_load_from_glo(resource $conn_identifier, string $oid, string $file_name): int

The cubrid_load_from_glo() function is used to read a data from a glo instance, and saves it in a designated file.

Parâmetros

conn_identifier

Connection identifier.

oid

Oid of the glo instance that you want to read the data from.

file_name

Name of the file where you want to save the data in.

Valor Retornado

true, when process is successful.

false, when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_load_from_glo() example

<?php
$req = cubrid_execute ($con, "select image from person where id=1");
if ($req) {
list ($oid) = cubrid_fetch($req);
cubrid_close_request($req);
$res = cubrid_load_from_glo ($con, $oid, "output.jpg");
if ($res) {
echo "image changed successfully";
}
}
?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: cubrid_load_from_glo()

Nota:

This function is removed from CUBRID 3.1.

Veja Também

  • cubrid_new_glo() - Create a glo instance
  • cubrid_save_to_glo() - Save requested file in a GLO instance
  • cubrid_send_glo() - Read data from glo and send it to std output


Create a glo instance

  • « cubrid_load_from_glo
  • cubrid_save_to_glo »
  • PHP Manual
  • CUBRID Obsolete Aliases and Functions
  • Create a glo instance

cubrid_new_glo

(PECL CUBRID >= 8.3.0)

cubrid_new_glo — Create a glo instance

Descrição

cubrid_new_glo(resource $conn_identifier, string $class_name, string $file_name): string

The cubrid_new_glo() function is used to create a glo instance in the requested class (glo class). The glo created is a LO type, and is stored in the file_name file.

Parâmetros

conn_identifier

Connection identifier.

class_name

Name of the class that you want to create a glo in.

file_name

The file name that you want to save in the newly created glo.

Valor Retornado

Oid of the instance created, when process is successful.

false, when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_new_glo() example

<?php
$oid = cubrid_new_glo ($con, "glo", "input.jpg");
if ($oid){
// the type of column "image" is "object"
$req = cubrid_execute ($con, "insert into person(image) values($oid)");
if ($req) {
echo "image inserted successfully";
cubrid_close_request ($req);
cubrid_commit($con);
}
}
?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: cubrid_new_glo()

Nota:

This function is removed from CUBRID 3.1.

Veja Também

  • cubrid_save_to_glo() - Save requested file in a GLO instance
  • cubrid_load_from_glo() - Read data from a GLO instance and save it in a file
  • cubrid_send_glo() - Read data from glo and send it to std output


Save requested file in a GLO instance

  • « cubrid_new_glo
  • cubrid_send_glo »
  • PHP Manual
  • CUBRID Obsolete Aliases and Functions
  • Save requested file in a GLO instance

cubrid_save_to_glo

(PECL CUBRID >= 8.3.0)

cubrid_save_to_glo — Save requested file in a GLO instance

Descrição

cubrid_save_to_glo(resource $conn_identifier, string $oid, string $file_name): int

The cubrid_save_to_glo() function is used to save requested file in a glo instance.

Parâmetros

conn_identifier

Connection identifier.

oid

Oid of the glo instance that you want to save a file in.

file_name

The name of the file that you want to save.

Valor Retornado

true, when process is successful.

false, when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_save_to_glo() example

<?php
$req = cubrid_execute ($con, "select image from person where id=1");
if ($req) {
list ($oid) = cubrid_fetch($req);
cubrid_close_request($req);
$res = cubrid_save_to_glo ($con, $oid, "input.jpg");
if ($res) {
echo "image changed successfully";
}
}
?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: cubrid_save_to_glo()

Nota:

This function is removed from CUBRID 3.1.

Veja Também

  • cubrid_new_glo() - Create a glo instance
  • cubrid_load_from_glo() - Read data from a GLO instance and save it in a file
  • cubrid_send_glo() - Read data from glo and send it to std output


Read data from glo and send it to std output

  • « cubrid_save_to_glo
  • dBase »
  • PHP Manual
  • CUBRID Obsolete Aliases and Functions
  • Read data from glo and send it to std output

cubrid_send_glo

(PECL CUBRID >= 8.3.0)

cubrid_send_glo — Read data from glo and send it to std output

Descrição

cubrid_send_glo(resource $conn_identifier, string $oid): int

The cubrid_send_glo() function is used to read data from glo instance and sends it to the PHP standard output.

Parâmetros

conn_identifier

Connection identifier.

oid

Oid of the glo instance that you want to read data from.

Valor Retornado

true, when process is successful.

false, when process is unsuccessful.

Exemplos

Exemplo #1 cubrid_send_glo() example

<?php
$req = cubrid_execute ($con, "select image from person where id =1");
if ($req) {
list ($oid) = cubrid_fetch($req);
cubrid_close_request($req);
Header ("Content-type: image/jpeg");
cubrid_send_glo ($con, $oid);
}
?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: cubrid_send_glo()

Nota:

This function is removed from CUBRID 3.1.

Veja Também

  • cubrid_new_glo() - Create a glo instance
  • cubrid_save_to_glo() - Save requested file in a GLO instance
  • cubrid_load_from_glo() - Read data from a GLO instance and save it in a file


dBase

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções da dBase
    • dbase_add_record — Adiciona um registro a um banco de dados
    • dbase_close — Fecha um banco de dados
    • dbase_create — Cria um banco de dados
    • dbase_delete_record — Exclui um registro do banco de dados
    • dbase_get_header_info — Obtém as informações do cabeçalho do banco de dados
    • dbase_get_record_with_names — Obtém um registro do banco de dados como um array associativo.
    • dbase_get_record — Obtém um registro do banco de dados como um array indexado
    • dbase_numfields — Obtém o número de campos em um banco de dados
    • dbase_numrecords — Obtém o número de registros em um banco de dados
    • dbase_open — Abre um banco de dados
    • dbase_pack — Comprime um banco de dados
    • dbase_replace_record — Substitui um registro em um banco de dados


Introdução

Nota:

Esta extensão foi movida para o repositório » PECL e não é mais distribuída com o PHP desde a versão 5.3.0.

These functions allow you to access records stored in dBase-format (dbf) databases.

Aviso

We recommend against using dBase files as your production database. Use » SQLite or choose any real SQL server instead; » MySQL or » Postgres are common choices with PHP. dBase support is here to allow you to import and export data to and from your web database, because the file format is commonly understood by Windows spreadsheets and organizers.

Cuidado

As of dbase 7.0.0 the databases are automatically locked via flock(). There has been no support for locking earlier, so two concurrent web server processes modifying the same dBase file would have very likely ruined your database. This can happen even with dbase 7.0.0+ on systems which implement the locks at the process level with multithreaded SAPIs.

dBase files are simple sequential files of fixed length records. Records are appended to the end of the file and deleted records are kept until you call dbase_pack().

Only dbf file levels 3 (dBASE III+) - 5 (dBASE V) are supported. The types of dBase fields available are:

Available types of fields
Field | dBase Type | Format | Additional information
M | Memo | n/a | This type is not supported by PHP, such field will be ignored
D | Date | YYYYMMDD | The field length is limited to 8
T | DateTime | YYYYMMDDhhmmss.uuu | (FoxPro) No validity checks are done. Available as of dbase 7.0.0.
N | Number | A number | You must declare a length and a precision (the number of digits after the decimal point).
F | Float | A float number | Same as N.
C | String | A string | You must declare a length. When retrieving data, the string will be right-padded with spaces to fit the declared length. Overlong strings will be silently truncated when storing data.
L | Boolean | T or Y for true, F or N for false, ? for uninitialized. | As of dbase 7.0.0, returned as a bool (true or false), or null for uninitialized fields. Formerly, returned as an int (1 or 0).

Nota:

As of dbase 7.0.0 nullable fields are supported for DBASE_TYPE_FOXPRO databases. If a field is nullable, passing null will set the respective flag, and on later retrieval the field value will be null.

Nota:

There is no support for indexes or memo fields.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/dbase.


Tipos de Recurso

A partir do dbase 7.0.0, o tipo de recurso dbase é definido e é retornado pelas funções dbase_open() e dbase_create().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

DBASE_VERSION (string)
A versão da extensão. (Disponível a partir do dbase 7.0.0)
DBASE_RDONLY (int)
Abre o banco de dados somente para leitura. Usada com dbase_open(). (Disponível a partir do dbase 7.0.0)
DBASE_RDWR (int)
Abre o banco de dados para leitura e escrita. Usada com dbase_open(). (Disponível a partir do dbase 7.0.0)
DBASE_TYPE_DBASE (int)
Cria o banco de dados no estilo dBASE. Usada com dbase_create(). (Disponível a partir do dbase 7.0.0)
DBASE_TYPE_FOXPRO (int)
Cria o banco de dados no estilo FoxPro. Usada com dbase_create(). (Disponível a partir do dbase 7.0.0)


Funções da dBase

Exemplos

Muitos exemplos nesta referência requerem um banco de dados dBase. Nós iremos usar /tmp/test.dbf que irá ser criado no exemplo da dbase_create().

Índice

  • dbase_add_record — Adiciona um registro a um banco de dados
  • dbase_close — Fecha um banco de dados
  • dbase_create — Cria um banco de dados
  • dbase_delete_record — Exclui um registro do banco de dados
  • dbase_get_header_info — Obtém as informações do cabeçalho do banco de dados
  • dbase_get_record_with_names — Obtém um registro do banco de dados como um array associativo.
  • dbase_get_record — Obtém um registro do banco de dados como um array indexado
  • dbase_numfields — Obtém o número de campos em um banco de dados
  • dbase_numrecords — Obtém o número de registros em um banco de dados
  • dbase_open — Abre um banco de dados
  • dbase_pack — Comprime um banco de dados
  • dbase_replace_record — Substitui um registro em um banco de dados


Adiciona um registro a um banco de dados

  • « Funções da dBase
  • dbase_close »
  • PHP Manual
  • Funções da dBase
  • Adiciona um registro a um banco de dados

dbase_add_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_add_record — Adiciona um registro a um banco de dados

Descrição

dbase_add_record(resource $database, array $data): bool

Adiciona os dados fornecidos ao banco de dados.

Parâmetros

database

O recurso de banco de dados, retornado por dbase_open() ou dbase_create().

data

Um array indexado de dados. O número de itens deve ser igual ao número de campos no banco de dados, caso contrário dbase_add_record() irá falhar.

Nota:

Se o valor de retorno de dbase_get_record() estiver sendo usado para este parâmetro, deve-se redefinir a chave de nome deleted.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | database agora é do tipo resource ao invés do tipo int.

Exemplos

Exemplo #1 Inserindo um registro num banco de dados dBase

<?php

// abre em modo leitura/escrita
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
dbase_add_record($db, array(
date('Ymd'),
'Maxim Topolov',
'23',
'max@example.com',
'T'));
dbase_close($db);
}

?>

Veja Também

  • dbase_delete_record() - Exclui um registro do banco de dados
  • dbase_replace_record() - Substitui um registro em um banco de dados


Fecha um banco de dados

  • « dbase_add_record
  • dbase_create »
  • PHP Manual
  • Funções da dBase
  • Fecha um banco de dados

dbase_close

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_close — Fecha um banco de dados

Descrição

dbase_close(resource $database): bool

Fecha o recurso de banco de dados indicado.

Parâmetros

database

O recurso de banco de dados, retornado por dbase_open() ou dbase_create().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | database agora é do tipo resource ao invés do tipo int.

Exemplos

Exemplo #1 Fechando um banco de dados dBase

<?php

// abre em modo leitura/escrita
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
// lê alguns dados ..

dbase_close($db);
}

?>

Veja Também

  • dbase_open() - Abre um banco de dados
  • dbase_create() - Cria um banco de dados


Cria um banco de dados

  • « dbase_close
  • dbase_delete_record »
  • PHP Manual
  • Funções da dBase
  • Cria um banco de dados

dbase_create

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_create — Cria um banco de dados

Descrição

dbase_create(string $path, array $fields, int $type = DBASE_TYPE_DBASE): resource

dbase_create() cria um banco de dados com a definição informada. Se o arquivo já existir, ele não será truncado. dbase_pack() pode ser chamado para forçar o truncamento.

Nota:

Esta função é afetada por open_basedir.

Parâmetros

path

O caminho do banco de dados. Pode ser um caminho relativo ou absoluto para o arquivo onde o dBase irá armazenar os dados.

fields

Um array de arrays, cada array descrevendo o formato de um campo no banco de dados. Cada campo consiste de um nome, um caractere indicando o tipo do campo, e opcionalmente, um tamanho, uma precisão e uma opção anulável. Os tipos de campos suportados estão listados na seção de introdução

Nota:

O nome dos campos são limitados em tamanho e não podem exceder 10 caracteres.

type

O tipo de banco de dados a ser criado.The type of database to be created. Pode ser DBASE_TYPE_DBASE ou DBASE_TYPE_FOXPRO.

Valor Retornado

Retorna um recurso de banco de dados se for criado com sucesso, ou false se houver um erro.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | O parâmetro type foi adicionado.
dbase 7.0.0 | O valor de retorno agora é do tipo resource ao invés de um int.

Exemplos

Exemplo #1 Criando um arquivo de banco de dados dBase

<?php

// database "definition"
$def = array(
array("date", "D"),
array("name", "C", 50),
array("age", "N", 3, 0),
array("email", "C", 128),
array("ismember", "L")
);

// criação
if (!dbase_create('/tmp/test.dbf', $def)) {
echo "Erro, não foi possível criar o banco de dados\n";
}

?>

Veja Também

  • dbase_open() - Abre um banco de dados
  • dbase_close() - Fecha um banco de dados


Exclui um registro do banco de dados

  • « dbase_create
  • dbase_get_header_info »
  • PHP Manual
  • Funções da dBase
  • Exclui um registro do banco de dados

dbase_delete_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_delete_record — Exclui um registro do banco de dados

Descrição

dbase_delete_record(resource $database, int $number): bool

Marca o registro indicado para ser excluído do banco de dados.

Nota:

Para realmente remover o registro do banco de dados, você deve também utilizar dbase_pack().

Parâmetros

database

Recurso do banco de dados, retornado por dbase_open() ou dbase_create().

number

Um inteiro que vai de 1 até o número de registros no banco de dados (como retornado por dbase_numrecords()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | database agora é do tipo resource ao invés de int.

Veja Também

  • dbase_add_record() - Adiciona um registro a um banco de dados
  • dbase_replace_record() - Substitui um registro em um banco de dados


Obtém as informações do cabeçalho do banco de dados

  • « dbase_delete_record
  • dbase_get_record_with_names »
  • PHP Manual
  • Funções da dBase
  • Obtém as informações do cabeçalho do banco de dados

dbase_get_header_info

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_header_info — Obtém as informações do cabeçalho do banco de dados

Descrição

dbase_get_header_info(resource $database): array

Retorna informações sobre a estrutura de colunas do recurso de banco de dados indicado.

Parâmetros

database

O recurso do banco de dados, retornado por dbase_open() ou dbase_create().

Valor Retornado

Um array indexado com uma entrada para cada coluna no banco de dados. O índice começa em 0.

Cada elemento do array contém um array associativo com informações da coluna, como descrito aqui:

name
O nome da coluna
type
O nome legível do tipo de coluna dbase (ex.: date, boolean, etc.) Os tipos de campos suportados estão listados na seção de introdução.
length
O número de bytes que esta coluna pode guardar
precision
O número de dígitos da precisão decimal da coluna
format
Um especificador de formato printf() sugerido para a coluna
offset
O índice em byte da coluna a partir do início da linha

Se as informações do cabeçalho do banco de dados não puderem ser lidas, é retornado false.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | database agora é do tipo resource ao invés de int.

Exemplos

Exemplo #1 Mostrando informações do banco de dados de um arquivo dBase

<?php
// caminho para o arquivo dbase
$db_path = "/tmp/test.dbf";

// Abre o arquivo dbase
$dbh = dbase_open($db_path, 0)
or die("Erro! Não foi possível abrir o arquivo de banco de dados dbase '$db_path'.");

// Obtém informação de coluna
$column_info = dbase_get_header_info($dbh);

// Mostra a informação
print_r($column_info);
?>


Obtém um registro do banco de dados como um array associativo.

  • « dbase_get_header_info
  • dbase_get_record »
  • PHP Manual
  • Funções da dBase
  • Obtém um registro do banco de dados como um array associativo.

dbase_get_record_with_names

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_record_with_names — Obtém um registro do banco de dados como um array associativo.

Descrição

dbase_get_record_with_names(resource $database, int $number): array

Obtém um registro do banco de dados como um array associativo.

Parâmetros

database

Recurso de banco de dados, retornado por dbase_open() ou dbase_create().

number

O índice do registro entre 1 e dbase_numrecords($dbase_identifier).

Valor Retornado

Um array associativo com o registro. Isto também irá incluir uma chave chamada deleted a qual é definida como 1 se o registro foi marcado para exclusão (veja dbase_delete_record()). Portanto não é possível obter o valor de um campo com nome deleted com esta função.

Cada campo é convertido para o tipo PHP apropriado, exceto:

  • Datas são mantidas como strings.
  • Valores DateTime são convertidos em strings.
  • Números inteiros fora do intervalo PHP_INT_MIN..PHP_INT_MAX são retornados como strings.
  • Antes do dbase 7.0.0, os booleanos (L) eram convertidos em 1 ou 0.

Em caso de erro, dbase_get_record_with_names() irá retornar false.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | database agora é do tipo resource ao invés de int.

Exemplos

Exemplo #1 Listando todos os membros registrados no banco de dados

<?php
// open in read-only mode
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
$record_numbers = dbase_numrecords($db);
for ($i = 1; $i <= $record_numbers; $i++) {
$row = dbase_get_record_with_names($db, $i);
if ($row['ismember'] == 1) {
echo "Member #$i: " . trim($row['name']) . "\n";
}
}
}
?>

Veja Também

  • dbase_get_record() - Obtém um registro do banco de dados como um array indexado


Obtém um registro do banco de dados como um array indexado

  • « dbase_get_record_with_names
  • dbase_numfields »
  • PHP Manual
  • Funções da dBase
  • Obtém um registro do banco de dados como um array indexado

dbase_get_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_record — Obtém um registro do banco de dados como um array indexado

Descrição

dbase_get_record(resource $database, int $number): array

Obtém um registro do banco de dados como um array indexado.

Parâmetros

database

O recurso do banco de dados, retornado por dbase_open() ou dbase_create().

number

O índice do registro entre 1 e dbase_numrecords($dbase_identifier).

Valor Retornado

Um array indexado com o registro. Este array também irá incluir uma chave chamada deleted a qual é definida como 1 se o registro foi marcado para exclusão (veja dbase_delete_record()).

Cada campo é convertido para o tipo PHP apropriado, exceto:

  • Datas são mantidas como strings.
  • Valores DateTime são convertidos em strings.
  • Números inteiros fora do intervalo PHP_INT_MIN..PHP_INT_MAX são retornados como strings.
  • Antes do dbase 7.0.0, os booleanos (L) eram convertidos em 1 ou 0.

Em caso de erro, dbase_get_record() irá retornar false.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | database agora é do tipo resource ao invés de int.

Veja Também

  • dbase_get_record_with_names() - Obtém um registro do banco de dados como um array associativo.


Obtém o número de campos em um banco de dados

  • « dbase_get_record
  • dbase_numrecords »
  • PHP Manual
  • Funções da dBase
  • Obtém o número de campos em um banco de dados

dbase_numfields

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_numfields — Obtém o número de campos em um banco de dados

Descrição

dbase_numfields(resource $database): int

Obtém o número de campos(colunas) no banco de dados especificados.

Nota:

Números de campo estão entre 0 e dbase_numfields($db)-1, enquanto que números de registro estão entre 1 e dbase_numrecords($db).

Parâmetros

database

O recurso de banco de dados, retornado por dbase_open() ou dbase_create().

Valor Retornado

O números de campos em um banco de dados, ou false se acontecer um erro.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | database agora é do tipo resource ao invés de int.

Exemplos

Exemplo #1 Exemplo dbase_numfields()

<?php

$rec = dbase_get_record($db, $recno);
$nf = dbase_numfields($db);
for ($i = 0; $i < $nf; $i++) {
echo $rec[$i], "\n";
}

?>

Veja Também

  • dbase_numrecords() - Obtém o número de registros em um banco de dados


Obtém o número de registros em um banco de dados

  • « dbase_numfields
  • dbase_open »
  • PHP Manual
  • Funções da dBase
  • Obtém o número de registros em um banco de dados

dbase_numrecords

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_numrecords — Obtém o número de registros em um banco de dados

Descrição

dbase_numrecords(resource $database): int

Obtém o número de registros (linhas) no banco de dados especificado.

Nota:

Resgistros marcados para remoção também são contados.

Nota:

Número de registros estão entre 1 e dbase_numrecords($db), enquanto que números de campo estão entre 0 e dbase_numfields($db)-1.

Parâmetros

database

O recurso de banco de dados, retornado por dbase_open() ou dbase_create().

Valor Retornado

O número de registros no banco de dados, ou false se ocorrer um erro.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | database agora é do tipo resource ao invés de int.

Exemplos

Exemplo #1 Lendo todos os registros de um banco de dados

<?php

// abre somente leitura
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
$record_numbers = dbase_numrecords($db);
for ($i = 1; $i <= $record_numbers; $i++) {
$record = dbase_get_record($db, $i);
if (!$record['deleted']) {
// faz algo com o registro
} else {
// faz algo com o registro deletado ou ignora
}
}
}

?>

Veja Também

  • dbase_numfields() - Obtém o número de campos em um banco de dados


Abre um banco de dados

  • « dbase_numrecords
  • dbase_pack »
  • PHP Manual
  • Funções da dBase
  • Abre um banco de dados

dbase_open

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_open — Abre um banco de dados

Descrição

dbase_open(string $path, int $mode): resource|false

dbase_open() abre um banco de dados dBase com o modo de acesso informado.

Nota:

Esta função é afetada por open_basedir.

Parâmetros

path

O caminho do banco de dados. Pode ser um caminho relativo ou absoluto para o arquivo onde o dBase irá armazenar os dados.

mode

Um inteiro que corresponda à chamada de sistema open() (tipicamente 0 significa somente-leitura, 1 apenas para escrita e 2 significa leitura e escrita).

Nota:

Não é possível abrir um banco de dados dBase em modo somente para escrita já que a função irá falhar ao ler os cabeçalhos com informações e por isso não se pode usar 1 como o parâmetro mode.

A partir do dbase 7.0.0 pode-se usar DBASE_RDONLY e DBASE_RDWR, respectivamente, para especificar o parâmetro mode.

Valor Retornado

Retorna um recurso de banco de dados em caso de sucesso, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | O valor de retorno agora é do tipo resource ao invés de int.

Exemplos

Exemplo #1 Abrindo um banco de dados dBase

<?php

// abre em modo somente leitura
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
// lê alguns dados ..

dbase_close($db);
}

?>

Veja Também

  • dbase_create() - Cria um banco de dados
  • dbase_close() - Fecha um banco de dados


Comprime um banco de dados

  • « dbase_open
  • dbase_replace_record »
  • PHP Manual
  • Funções da dBase
  • Comprime um banco de dados

dbase_pack

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_pack — Comprime um banco de dados

Descrição

dbase_pack(resource $database): bool

Comprime o banco de dados especificado, apagando permanentemente todos os registros marcados para remoção usando dbase_delete_record(). Note que o arquivo será truncado após empacotamento bem sucedido (ao contrário do comando PACK do dBASE III).

Parâmetros

database

O recurso de banco de dados, retornado por dbase_open() ou dbase_create().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | database é agora do tipo resource ao invés de int.

Exemplos

Exemplo #1 Limpando um banco de dados dBase

<?php

// abre somente-leitura
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
$record_numbers = dbase_numrecords($db);
for ($i = 1; $i <= $record_numbers; $i++) {
dbase_delete_record($db, $i);
}
// expurga os dados marcados para remoção
dbase_pack($db);
}

?>

Veja Também

  • dbase_delete_record() - Exclui um registro do banco de dados


Substitui um registro em um banco de dados

  • « dbase_pack
  • Firebird/InterBase »
  • PHP Manual
  • Funções da dBase
  • Substitui um registro em um banco de dados

dbase_replace_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_replace_record — Substitui um registro em um banco de dados

Descrição

dbase_replace_record(resource $database, array $data, int $number): bool

Substitui o registro no banco de dados com os dados indicados.

Parâmetros

database

O recurso de banco de dados, retornado por dbase_open() ou dbase_create().

data

Um array indexado de dados. O número deve ser igual ao número de campos no banco de dados, caso contrário dbase_replace_record() irá falhar.

Nota:

Se o valor de retorno de dbase_get_record() for usado para este parâmetro, lembre-se de redefinir a chave de nome deleted.

number

Um inteiro que vai de 1 até o número de registros no banco de dados (como retornado por dbase_numrecords()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
dbase 7.0.0 | database agora é do tipo resource ao invés de int.

Exemplos

Exemplo #1 Atualizando um registro no banco de dados

<?php

// abre somente leitura
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
// obtém o registro antigo
$row = dbase_get_record_with_names($db, 1);

// remove a entrada 'deletada'
unset($row['deleted']);

// Atualiza o campo 'date' com a dada atual
$row['date'] = date('Ymd');

// converte o registro para um array indexado
$row = array_values($row);

// Substitui o registro
dbase_replace_record($db, $row, 1);
dbase_close($db);
}

?>

Notas

Nota:

Campos booleanos resultam em um elemento do tipo int (0 ou 1) quando obtidos através de dbase_get_record() ou dbase_get_record_with_names(). Se fores escritos de volta, resulta no valor tornando-se 0, portanto deve-se ter cuidado para ajustar os valores adequadamente.

Veja Também

  • dbase_add_record() - Adiciona um registro a um banco de dados
  • dbase_delete_record() - Exclui um registro do banco de dados


Firebird/InterBase

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções para Firebird/InterBase
    • fbird_add_user — Sinônimo de ibase_add_user
    • fbird_affected_rows — Sinônimo de ibase_affected_rows
    • fbird_backup — Sinônimo de ibase_backup
    • fbird_blob_add — Sinônimo de ibase_blob_add
    • fbird_blob_cancel — Cancel creating blob
    • fbird_blob_close — Sinônimo de ibase_blob_close
    • fbird_blob_create — Sinônimo de ibase_blob_create
    • fbird_blob_echo — Sinônimo de ibase_blob_echo
    • fbird_blob_get — Sinônimo de ibase_blob_get
    • fbird_blob_import — Sinônimo de ibase_blob_import
    • fbird_blob_info — Sinônimo de ibase_blob_info
    • fbird_blob_open — Sinônimo de ibase_blob_open
    • fbird_close — Sinônimo de ibase_close
    • fbird_commit_ret — Sinônimo de ibase_commit_ret
    • fbird_commit — Sinônimo de ibase_commit
    • fbird_connect — Sinônimo de ibase_connect
    • fbird_db_info — Sinônimo de ibase_db_info
    • fbird_delete_user — Sinônimo de ibase_delete_user
    • fbird_drop_db — Sinônimo de ibase_drop_db
    • fbird_errcode — Sinônimo de ibase_errcode
    • fbird_errmsg — Sinônimo de ibase_errmsg
    • fbird_execute — Sinônimo de ibase_execute
    • fbird_fetch_assoc — Sinônimo de ibase_fetch_assoc
    • fbird_fetch_object — Sinônimo de ibase_fetch_object
    • fbird_fetch_row — Sinônimo de ibase_fetch_row
    • fbird_field_info — Sinônimo de ibase_field_info
    • fbird_free_event_handler — Sinônimo de ibase_free_event_handler
    • fbird_free_query — Sinônimo de ibase_free_query
    • fbird_free_result — Sinônimo de ibase_free_result
    • fbird_gen_id — Sinônimo de ibase_gen_id
    • fbird_maintain_db — Sinônimo de ibase_maintain_db
    • fbird_modify_user — Sinônimo de ibase_modify_user
    • fbird_name_result — Sinônimo de ibase_name_result
    • fbird_num_fields — Sinônimo de ibase_num_fields
    • fbird_num_params — Sinônimo de ibase_num_params
    • fbird_param_info — Sinônimo de ibase_param_info
    • fbird_pconnect — Sinônimo de ibase_pconnect
    • fbird_prepare — Sinônimo de ibase_prepare
    • fbird_query — Sinônimo de ibase_query
    • fbird_restore — Sinônimo de ibase_restore
    • fbird_rollback_ret — Sinônimo de ibase_rollback_ret
    • fbird_rollback — Sinônimo de ibase_rollback
    • fbird_server_info — Sinônimo de ibase_server_info
    • fbird_service_attach — Sinônimo de ibase_service_attach
    • fbird_service_detach — Sinônimo de ibase_service_detach
    • fbird_set_event_handler — Sinônimo de ibase_set_event_handler
    • fbird_trans — Sinônimo de ibase_trans
    • fbird_wait_event — Sinônimo de ibase_wait_event
    • ibase_add_user — Adiciona um usuário a um banco de dados seguro
    • ibase_affected_rows — Retorna o número de linhas que foram afetados pela consulta anterior
    • ibase_backup — Initiates a backup task in the service manager and returns immediately
    • ibase_blob_add — Adiciona dados em um blob recém criado
    • 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 — Retorna uma quantidade especificada de bytes de dados de um blob aberto
    • ibase_blob_import — Cria um blob, copia um arquivo para ele e o fecha
    • ibase_blob_info — Retorna o tamanho do blob e outras informações úteis
    • ibase_blob_open — Abre um blob para obter partes de dados
    • ibase_close — Close a connection to an InterBase database
    • ibase_commit_ret — Commit a transaction without closing it
    • ibase_commit — Commit a transaction
    • ibase_connect — Abre uma conexão com um banco de dados
    • ibase_db_info — Request statistics about a database
    • ibase_delete_user — Exclui um usuário de um banco de dados seguro
    • ibase_drop_db — Drops a database
    • ibase_errcode — Return an error code
    • ibase_errmsg — Return error messages
    • ibase_execute — Executa uma consulta preparada anteriormente
    • 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 — Fetch a row from an InterBase database
    • ibase_field_info — Obtém informação sobre um campo
    • ibase_free_event_handler — Cancela um manipulador de eventos registrado
    • ibase_free_query — Libera a memória alocada para uma consulta preparada
    • ibase_free_result — Libera um conjunto de resultados
    • ibase_gen_id — Increments the named generator and returns its new value
    • ibase_maintain_db — Execute a maintenance command on the database server
    • ibase_modify_user — Modifica um usuário para um banco de dados seguro
    • ibase_name_result — Define um nome para um conjunto de resultados
    • ibase_num_fields — Obtém o número de campos em um conjunto de resultados
    • ibase_num_params — Retorna o número de parâmetros em uma consulta preparada
    • ibase_param_info — Retorna informação sobre um parâmetro em uma consulta preparada
    • ibase_pconnect — Open a persistent connection to an InterBase database
    • ibase_prepare — Prepara uma consulta para ligação de parâmetros e execução posteriores
    • ibase_query — Executa uma consulta em um banco de dados InterBase
    • ibase_restore — Initiates a restore task in the service manager and returns immediately
    • ibase_rollback_ret — Roll back a transaction without closing it
    • ibase_rollback — Roll back a transaction
    • ibase_server_info — Request information about a database server
    • ibase_service_attach — Connect to the service manager
    • ibase_service_detach — Disconnect from the service manager
    • ibase_set_event_handler — Register a callback function to be called when events are posted
    • ibase_trans — Begin a transaction
    • ibase_wait_event — Espera por um evento ser postado pelo banco de dados


Introdução

Aviso

Esta extensão é considerada sem manutenção e abandonada. No entanto, o código-fonte desta extensão ainda está disponível no GIT do PECL aqui: » https://github.com/php/pecl-database-interbase.

Firebird é um banco de dados relacional que oferece muitos recursos ISO SQL-2003 que é executado em Linux, Windows, e uma variedade de plataformas Unix. Firebird oferece excelente concorrência, alto desempenho, e um poderoso suporte de linguagem para procedimentos armazenados e gatilhos. Ele vem sendo usada em sistemas de produção sob uma variedades de nomes desde 1981.

InterBase é o nome da variante de código fechado deste RDBMS que foi desenvolvido pela Embarcadero/Inprise. Mais informação sobre InterBase está disponível em » http://www.embarcadero.com/products/interbase.

Firebird é um projeto (fundação) comercialmente independente de programadores C++, conselheiros técnicos e apoiadores desenvolvendo e melhorando um sistema de gerenciamento de banco de dados relacional multi-plataforma baseado no código fonte liberado pela Inprise Corp (agora conhecida como Embarcadero) sob a Licença Pública InterBase v.1.0 em 25 Julho, 2000. Mais informação sobre Firebird está disponível em » http://www.firebirdsql.org/.

Nota:

Esta extensão foi movida para o repositório » PECL e não é mais distribuída com o PHP desde a versão 7.4.0

Esta extensão suporta InterBase versões 6 e superiores e Firebird versão 2.0 e superiores.


Instalação

Esta extensão foi movida para o repositório » PECL e não é mais distribuída com o PHP desde a versão 7.4.0

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/ibase.

Para ativar o suporte Firebird/InterBase, configure o PHP com --with-interbase[=DIR], onde DIR é o diretório base da instalação do Firebird/InterBase, cujo padrão é /usr.

Nota: Nota para os usuários de Win32/Win64

Para que esta extensão funcione, existem arquivos DLL que devem estar disponíveis no PATH do sistema Windows. Para saber como fazer isso, veja a FAQ intitulada "Como eu adiciono o meu diretório PHP ao PATH do Windows". Embora copiar arquivos DLL da pasta do PHP para o diretório system do Windows também funcione (porque o diretório system está, por padrão, no PATH do sistema), isso não é recomendado. Esta extensão requer que os seguintes arquivos estejam no PATH: fbclient.dll,gds32.dll

Caso o servidor do banco de dados Firebird/InterBase esteja na mesma máquina onde o PHP esta sendo executado, esta DLL já estará disponível e fbclient.dll,gds32.dll (gds32.dll é gerada pelo instalador para aplicações legado) estarão na variável PATH.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração InterBase
Nome | Padrão | Modificável | Registro de Alterações
ibase.allow_persistent | "1" | INI_SYSTEM |
ibase.max_persistent | "-1" | INI_SYSTEM |
ibase.max_links | "-1" | INI_SYSTEM |
ibase.default_db | NULL | INI_SYSTEM |
ibase.default_user | NULL | INI_ALL |
ibase.default_password | NULL | INI_ALL |
ibase.default_charset | NULL | INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | INI_ALL |
ibase.dateformat | "%Y-%m-%d" | INI_ALL |
ibase.timeformat | "%H:%M:%S" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

ibase.allow_persistent bool

Define se as conexões persistentes serão permitidas para Firebird/InterBase.

ibase.max_persistent int

O número máximo de conexões persistentes Firebird/InterBase por processo. Novas conexões criadas com ibase_pconnect() serão não-persistentes se este número for excedido.

ibase.max_links int

O número máximo de conexões Firebird/InterBase por, incluindo conexões persistentes.

ibase.default_db string

O banco padrão a se conectar quando ibase_[p]connect() for chamada sem especificar um nome de banco. Se este valor estiver definido e o modo seguro do SQL estiver habilitado, nenhuma outra conexão além desta a este banco será permitida.

ibase.default_user string

O nome de usuário a ser usado ao conectar ao banco se nenhum nome for especificado.

ibase.default_password string

A senha a ser usada ao conectar ao banco se nenhuma for especificada.

ibase.default_charset string

O conjunto de caratcteres a ser usado na conexão ao banco se nenhum for especificado.

ibase.timestampformat string

ibase.dateformat string

ibase.timeformat string

Estas diretivas são usadas para definir os formatos de data e horário no retorno de conjunto de resultados, ou ao vincular argumentos a parâmetros de data e horário.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

As seguinte constantes podem ser passadas para ibase_trans() para especificar o funcionamento da transação.

Opções da transação Firebird/InterBase
Constante | Descrição
IBASE_DEFAULT | Serão usadas as definições padrão para a transação. Este padrão é determinado pela biblioteca do cliente, a qual define-o como IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT na maioria dos casos.
IBASE_READ | Começa uma transação apenas para leitura.
IBASE_WRITE | Começa uma transação de leitura e escrita.
IBASE_CONSISTENCY | Começa uma transação com o nível de isolação definido como 'consistency', o qual indica que a transação não pode ler de tabelas que estão sendo modificadas por outras transações concorrentes.
IBASE_CONCURRENCY | Começa uma transação com o nível de isolação definido como 'concurrency' (ou 'snapshot'), o qual indica que a transação tem acesso a todas as tabelas, mas não pode ver as modificações que foram gravadas por outras transações após a transação ter começado.
IBASE_COMMITTED | Começa uma transação com o nível de isolação definido como 'read committed'. Esta opção deve ser combinada com IBASE_REC_VERSION ou IBASE_REC_NO_VERSION. Este nível de isolação permite acesso para as modifcações salvas após o início da transação. Se IBASE_REC_NO_VERSION for especificada, apenas a última versão de uma linha pode ser lida. Se IBASE_REC_VERSION for especificada, uma linha pode ser lida mesmo quando exista uma modificação pendente em uma transação concorrente.
IBASE_WAIT | Indica que uma transação deve esperar e tentar novamente quando acontecer um conflito.
IBASE_NOWAIT | Indica que a transação deve falhar imediatamente quando acontecer um conflito.

As seguintes constantes podem ser passadas para ibase_fetch_row(), ibase_fetch_assoc() ou ibase_fetch_object() para especificar o comportamento da recepção de dados.

Opções para obter do Firebird/InterBase
Constante | Descrição
IBASE_FETCH_BLOBS | Também disponível como IBASE_TEXT para compatibilidade com versões anteriores. Faz com que o conteúdo de campos BLOB serão recebidos em linha, ao invés de serem retornados como identificadores BLOB.
IBASE_FETCH_ARRAYS | Faz com que os arrays sejam retornados diretamente. Caso contrário, são retornados identificadores de array. Identificadores de array somente podem ser usados como argumentos para operações INSERT, já que não estão disponíveis atualmente funções para manipular identificadores de array.
IBASE_UNIXTIME | Faz com que campos de data e horário não sejam retornados como strings, mas como timestamps Unix (o número de segundos desde a Época Unix, que é 1-Jan-1970 0:00 UTC). Pode ser problemático se usado com datas antes de 1970 em alguns sistemas.

As seguintes constantes são usadas para passar requisições e opções para as funções da
API de serviços (ibase_server_info(), ibase_db_info(),
ibase_backup(), ibase_restore()
e ibase_maintain_db()). Por favor veja o
manual do Firebird/InterBase para o significado destas opções.

IBASE_BKP_IGNORE_CHECKSUMS
Opções para ibase_backup()
IBASE_BKP_IGNORE_LIMBO
Opções para ibase_backup()
IBASE_BKP_METADATA_ONLY
Opções para ibase_backup()
IBASE_BKP_NO_GARBAGE_COLLECT
Opções para ibase_backup()
IBASE_BKP_OLD_DESCRIPTIONS
Opções para ibase_backup()
IBASE_BKP_NON_TRANSPORTABLE
Opções para ibase_backup()
IBASE_BKP_CONVERT
Opções para ibase_backup()
IBASE_RES_DEACTIVATE_IDX
Opções para ibase_restore()
IBASE_RES_NO_SHADOW
Opções para ibase_restore()
IBASE_RES_NO_VALIDITY
Opções para ibase_restore()
IBASE_RES_ONE_AT_A_TIME
Opções para ibase_restore()
IBASE_RES_REPLACE
IBASE_RES_CREATE
Opções para ibase_restore()
IBASE_RES_USE_ALL_SPACE
Opções para ibase_restore()
IBASE_PRP_PAGE_BUFFERS
IBASE_PRP_SWEEP_INTERVAL
IBASE_PRP_SHUTDOWN_DB
IBASE_PRP_DENY_NEW_TRANSACTIONS
IBASE_PRP_DENY_NEW_ATTACHMENTS
IBASE_PRP_RESERVE_SPACE
IBASE_PRP_RES_USE_FULL
IBASE_PRP_RES
IBASE_PRP_WRITE_MODE
IBASE_PRP_WM_ASYNC
IBASE_PRP_WM_SYNC
IBASE_PRP_ACCESS_MODE
IBASE_PRP_AM_READONLY
IBASE_PRP_AM_READWRITE
IBASE_PRP_SET_SQL_DIALECT
IBASE_PRP_ACTIVATE
IBASE_PRP_DB_ONLINE
IBASE_RPR_CHECK_DB
IBASE_RPR_IGNORE_CHECKSUM
IBASE_RPR_KILL_SHADOWS
IBASE_RPR_MEND_DB
IBASE_RPR_VALIDATE_DB
IBASE_RPR_FULL
IBASE_RPR_SWEEP_DB
Opções para ibase_maintain_db()
IBASE_STS_DATA_PAGES
IBASE_STS_DB_LOG
IBASE_STS_HDR_PAGES
IBASE_STS_IDX_PAGES
IBASE_STS_SYS_RELATIONS
Opções para ibase_db_info()
IBASE_SVC_SERVER_VERSION
Opções para ibase_server_info()
IBASE_SVC_IMPLEMENTATION
Opções para ibase_server_info()
IBASE_SVC_GET_ENV
Opções para ibase_server_info()
IBASE_SVC_GET_ENV_LOCK
IBASE_SVC_GET_ENV_MSG
IBASE_SVC_USER_DBPATH
IBASE_SVC_SVR_DB_INFO
IBASE_SVC_GET_USERS
Opções para ibase_server_info()


Funções para Firebird/InterBase

Índice

  • fbird_add_user — Sinônimo de ibase_add_user
  • fbird_affected_rows — Sinônimo de ibase_affected_rows
  • fbird_backup — Sinônimo de ibase_backup
  • fbird_blob_add — Sinônimo de ibase_blob_add
  • fbird_blob_cancel — Cancel creating blob
  • fbird_blob_close — Sinônimo de ibase_blob_close
  • fbird_blob_create — Sinônimo de ibase_blob_create
  • fbird_blob_echo — Sinônimo de ibase_blob_echo
  • fbird_blob_get — Sinônimo de ibase_blob_get
  • fbird_blob_import — Sinônimo de ibase_blob_import
  • fbird_blob_info — Sinônimo de ibase_blob_info
  • fbird_blob_open — Sinônimo de ibase_blob_open
  • fbird_close — Sinônimo de ibase_close
  • fbird_commit_ret — Sinônimo de ibase_commit_ret
  • fbird_commit — Sinônimo de ibase_commit
  • fbird_connect — Sinônimo de ibase_connect
  • fbird_db_info — Sinônimo de ibase_db_info
  • fbird_delete_user — Sinônimo de ibase_delete_user
  • fbird_drop_db — Sinônimo de ibase_drop_db
  • fbird_errcode — Sinônimo de ibase_errcode
  • fbird_errmsg — Sinônimo de ibase_errmsg
  • fbird_execute — Sinônimo de ibase_execute
  • fbird_fetch_assoc — Sinônimo de ibase_fetch_assoc
  • fbird_fetch_object — Sinônimo de ibase_fetch_object
  • fbird_fetch_row — Sinônimo de ibase_fetch_row
  • fbird_field_info — Sinônimo de ibase_field_info
  • fbird_free_event_handler — Sinônimo de ibase_free_event_handler
  • fbird_free_query — Sinônimo de ibase_free_query
  • fbird_free_result — Sinônimo de ibase_free_result
  • fbird_gen_id — Sinônimo de ibase_gen_id
  • fbird_maintain_db — Sinônimo de ibase_maintain_db
  • fbird_modify_user — Sinônimo de ibase_modify_user
  • fbird_name_result — Sinônimo de ibase_name_result
  • fbird_num_fields — Sinônimo de ibase_num_fields
  • fbird_num_params — Sinônimo de ibase_num_params
  • fbird_param_info — Sinônimo de ibase_param_info
  • fbird_pconnect — Sinônimo de ibase_pconnect
  • fbird_prepare — Sinônimo de ibase_prepare
  • fbird_query — Sinônimo de ibase_query
  • fbird_restore — Sinônimo de ibase_restore
  • fbird_rollback_ret — Sinônimo de ibase_rollback_ret
  • fbird_rollback — Sinônimo de ibase_rollback
  • fbird_server_info — Sinônimo de ibase_server_info
  • fbird_service_attach — Sinônimo de ibase_service_attach
  • fbird_service_detach — Sinônimo de ibase_service_detach
  • fbird_set_event_handler — Sinônimo de ibase_set_event_handler
  • fbird_trans — Sinônimo de ibase_trans
  • fbird_wait_event — Sinônimo de ibase_wait_event
  • ibase_add_user — Adiciona um usuário a um banco de dados seguro
  • ibase_affected_rows — Retorna o número de linhas que foram afetados pela consulta anterior
  • ibase_backup — Initiates a backup task in the service manager and returns immediately
  • ibase_blob_add — Adiciona dados em um blob recém criado
  • 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 — Retorna uma quantidade especificada de bytes de dados de um blob aberto
  • ibase_blob_import — Cria um blob, copia um arquivo para ele e o fecha
  • ibase_blob_info — Retorna o tamanho do blob e outras informações úteis
  • ibase_blob_open — Abre um blob para obter partes de dados
  • ibase_close — Close a connection to an InterBase database
  • ibase_commit_ret — Commit a transaction without closing it
  • ibase_commit — Commit a transaction
  • ibase_connect — Abre uma conexão com um banco de dados
  • ibase_db_info — Request statistics about a database
  • ibase_delete_user — Exclui um usuário de um banco de dados seguro
  • ibase_drop_db — Drops a database
  • ibase_errcode — Return an error code
  • ibase_errmsg — Return error messages
  • ibase_execute — Executa uma consulta preparada anteriormente
  • 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 — Fetch a row from an InterBase database
  • ibase_field_info — Obtém informação sobre um campo
  • ibase_free_event_handler — Cancela um manipulador de eventos registrado
  • ibase_free_query — Libera a memória alocada para uma consulta preparada
  • ibase_free_result — Libera um conjunto de resultados
  • ibase_gen_id — Increments the named generator and returns its new value
  • ibase_maintain_db — Execute a maintenance command on the database server
  • ibase_modify_user — Modifica um usuário para um banco de dados seguro
  • ibase_name_result — Define um nome para um conjunto de resultados
  • ibase_num_fields — Obtém o número de campos em um conjunto de resultados
  • ibase_num_params — Retorna o número de parâmetros em uma consulta preparada
  • ibase_param_info — Retorna informação sobre um parâmetro em uma consulta preparada
  • ibase_pconnect — Open a persistent connection to an InterBase database
  • ibase_prepare — Prepara uma consulta para ligação de parâmetros e execução posteriores
  • ibase_query — Executa uma consulta em um banco de dados InterBase
  • ibase_restore — Initiates a restore task in the service manager and returns immediately
  • ibase_rollback_ret — Roll back a transaction without closing it
  • ibase_rollback — Roll back a transaction
  • ibase_server_info — Request information about a database server
  • ibase_service_attach — Connect to the service manager
  • ibase_service_detach — Disconnect from the service manager
  • ibase_set_event_handler — Register a callback function to be called when events are posted
  • ibase_trans — Begin a transaction
  • ibase_wait_event — Espera por um evento ser postado pelo banco de dados


Sinônimo de ibase_add_user

  • « Funções para Firebird/InterBase
  • fbird_affected_rows »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_add_user

fbird_add_user

(PHP 5, PHP 7 < 7.4.0)

fbird_add_user — Sinônimo de ibase_add_user()

Descrição

Esta função é um apelido para: ibase_add_user().

Veja Também

  • fbird_modify_user() - Sinônimo de ibase_modify_user
  • fbird_delete_user() - Sinônimo de ibase_delete_user


Sinônimo de ibase_affected_rows

  • « fbird_add_user
  • fbird_backup »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_affected_rows

fbird_affected_rows

(PHP 5, PHP 7 < 7.4.0)

fbird_affected_rows — Sinônimo de ibase_affected_rows()

Descrição

Esta função é um apelido para: ibase_affected_rows().

Veja Também

  • fbird_query() - Sinônimo de ibase_query
  • fbird_execute() - Sinônimo de ibase_execute


Sinônimo de ibase_backup

  • « fbird_affected_rows
  • fbird_blob_add »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_backup

fbird_backup

(PHP 5, PHP 7 < 7.4.0)

fbird_backup — Sinônimo de ibase_backup()

Descrição

Esta função é um apelido para: ibase_backup().


Sinônimo de ibase_blob_add

  • « fbird_backup
  • fbird_blob_cancel »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_blob_add

fbird_blob_add

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_add — Sinônimo de ibase_blob_add()

Descrição

Esta função é um apelido para: ibase_blob_add().

Veja Também

  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_close() - Sinônimo de ibase_blob_close
  • fbird_blob_create() - Sinônimo de ibase_blob_create
  • fbird_blob_import() - Sinônimo de ibase_blob_import


Cancel creating blob

  • « fbird_blob_add
  • fbird_blob_close »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Cancel creating blob

fbird_blob_cancel

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_cancel — Cancel creating blob

Descrição

fbird_blob_cancel(resource $blob_handle): bool

This function will discard a BLOB if it has not yet been closed by fbird_blob_close().

Parâmetros

blob_handle

A BLOB handle opened with fbird_blob_create().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • fbird_blob_close() - Sinônimo de ibase_blob_close
  • fbird_blob_create() - Sinônimo de ibase_blob_create
  • fbird_blob_import() - Sinônimo de ibase_blob_import


Sinônimo de ibase_blob_close

  • « fbird_blob_cancel
  • fbird_blob_create »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_blob_close

fbird_blob_close

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_close — Sinônimo de ibase_blob_close()

Descrição

Esta função é um apelido para: ibase_blob_close().

Veja Também

  • fbird_blob_create() - Sinônimo de ibase_blob_create
  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_open() - Sinônimo de ibase_blob_open
  • fbird_blob_import() - Sinônimo de ibase_blob_import


Sinônimo de ibase_blob_create

  • « fbird_blob_close
  • fbird_blob_echo »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_blob_create

fbird_blob_create

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_create — Sinônimo de ibase_blob_create()

Descrição

Esta função é um apelido para: ibase_blob_create().

Veja Também

  • fbird_blob_add() - Sinônimo de ibase_blob_add
  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_close() - Sinônimo de ibase_blob_close
  • fbird_blob_import() - Sinônimo de ibase_blob_import


Sinônimo de ibase_blob_echo

  • « fbird_blob_create
  • fbird_blob_get »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_blob_echo

fbird_blob_echo

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_echo — Sinônimo de ibase_blob_echo()

Descrição

Esta função é um apelido para: ibase_blob_echo().

Veja Também

  • fbird_blob_open() - Sinônimo de ibase_blob_open
  • fbird_blob_close() - Sinônimo de ibase_blob_close
  • fbird_blob_get() - Sinônimo de ibase_blob_get


Sinônimo de ibase_blob_get

  • « fbird_blob_echo
  • fbird_blob_import »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_blob_get

fbird_blob_get

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_get — Sinônimo de ibase_blob_get()

Descrição

Esta função é um apelido para: ibase_blob_get().

Veja Também

  • fbird_blob_open() - Sinônimo de ibase_blob_open
  • fbird_blob_close() - Sinônimo de ibase_blob_close
  • fbird_blob_echo() - Sinônimo de ibase_blob_echo


Sinônimo de ibase_blob_import

  • « fbird_blob_get
  • fbird_blob_info »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_blob_import

fbird_blob_import

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_import — Sinônimo de ibase_blob_import()

Descrição

Esta função é um apelido para: ibase_blob_import().

Veja Também

  • fbird_blob_add() - Sinônimo de ibase_blob_add
  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_close() - Sinônimo de ibase_blob_close
  • fbird_blob_create() - Sinônimo de ibase_blob_create


Sinônimo de ibase_blob_info

  • « fbird_blob_import
  • fbird_blob_open »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_blob_info

fbird_blob_info

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_info — Sinônimo de ibase_blob_info()

Descrição

Esta função é um apelido para: ibase_blob_info().


Sinônimo de ibase_blob_open

  • « fbird_blob_info
  • fbird_close »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_blob_open

fbird_blob_open

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_open — Sinônimo de ibase_blob_open()

Descrição

Esta função é um apelido para: ibase_blob_open().

Veja Também

  • fbird_blob_close() - Sinônimo de ibase_blob_close
  • fbird_blob_echo() - Sinônimo de ibase_blob_echo
  • fbird_blob_get() - Sinônimo de ibase_blob_get


Sinônimo de ibase_close

  • « fbird_blob_open
  • fbird_commit_ret »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_close

fbird_close

(PHP 5, PHP 7 < 7.4.0)

fbird_close — Sinônimo de ibase_close()

Descrição

Esta função é um apelido para: ibase_close().

Veja Também

  • fbird_connect() - Sinônimo de ibase_connect
  • fbird_pconnect() - Sinônimo de ibase_pconnect


Sinônimo de ibase_commit_ret

  • « fbird_close
  • fbird_commit »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_commit_ret

fbird_commit_ret

(PHP 5, PHP 7 < 7.4.0)

fbird_commit_ret — Sinônimo de ibase_commit_ret()

Descrição

Esta função é um apelido para: ibase_commit_ret().


Sinônimo de ibase_commit

  • « fbird_commit_ret
  • fbird_connect »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_commit

fbird_commit

(PHP 5, PHP 7 < 7.4.0)

fbird_commit — Sinônimo de ibase_commit()

Descrição

Esta função é um apelido para: ibase_commit().


Sinônimo de ibase_connect

  • « fbird_commit
  • fbird_db_info »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_connect

fbird_connect

(PHP 5, PHP 7 < 7.4.0)

fbird_connect — Sinônimo de ibase_connect()

Descrição

Esta função é um apelido para: ibase_connect().

Veja Também

  • fbird_pconnect() - Sinônimo de ibase_pconnect
  • fbird_close() - Sinônimo de ibase_close


Sinônimo de ibase_db_info

  • « fbird_connect
  • fbird_delete_user »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_db_info

fbird_db_info

(PHP 5, PHP 7 < 7.4.0)

fbird_db_info — Sinônimo de ibase_db_info()

Descrição

Esta função é um apelido para: ibase_db_info().


Sinônimo de ibase_delete_user

  • « fbird_db_info
  • fbird_drop_db »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_delete_user

fbird_delete_user

(PHP 5, PHP 7 < 7.4.0)

fbird_delete_user — Sinônimo de ibase_delete_user()

Descrição

Esta função é um apelido para: ibase_delete_user().

Veja Também

  • fbird_add_user() - Sinônimo de ibase_add_user
  • fbird_modify_user() - Sinônimo de ibase_modify_user


Sinônimo de ibase_drop_db

  • « fbird_delete_user
  • fbird_errcode »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_drop_db

fbird_drop_db

(PHP 5, PHP 7 < 7.4.0)

fbird_drop_db — Sinônimo de ibase_drop_db()

Descrição

Esta função é um apelido para: ibase_drop_db().

Veja Também

  • fbird_connect() - Sinônimo de ibase_connect
  • fbird_pconnect() - Sinônimo de ibase_pconnect


Sinônimo de ibase_errcode

  • « fbird_drop_db
  • fbird_errmsg »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_errcode

fbird_errcode

(PHP 5, PHP 7 < 7.4.0)

fbird_errcode — Sinônimo de ibase_errcode()

Descrição

Esta função é um apelido para: ibase_errcode().

Veja Também

  • fbird_errmsg() - Sinônimo de ibase_errmsg


Sinônimo de ibase_errmsg

  • « fbird_errcode
  • fbird_execute »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_errmsg

fbird_errmsg

(PHP 5, PHP 7 < 7.4.0)

fbird_errmsg — Sinônimo de ibase_errmsg()

Descrição

Esta função é um apelido para: ibase_errmsg().

Veja Também

  • fbird_errcode() - Sinônimo de ibase_errcode


Sinônimo de ibase_execute

  • « fbird_errmsg
  • fbird_fetch_assoc »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_execute

fbird_execute

(PHP 5, PHP 7 < 7.4.0)

fbird_execute — Sinônimo de ibase_execute()

Descrição

Esta função é um apelido para: ibase_execute().

Veja Também

  • fbird_query() - Sinônimo de ibase_query


Sinônimo de ibase_fetch_assoc

  • « fbird_execute
  • fbird_fetch_object »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_fetch_assoc

fbird_fetch_assoc

(PHP 5, PHP 7 < 7.4.0)

fbird_fetch_assoc — Sinônimo de ibase_fetch_assoc()

Descrição

Esta função é um apelido para: ibase_fetch_assoc().

Veja Também

  • fbird_fetch_row() - Sinônimo de ibase_fetch_row
  • fbird_fetch_object() - Sinônimo de ibase_fetch_object


Sinônimo de ibase_fetch_object

  • « fbird_fetch_assoc
  • fbird_fetch_row »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_fetch_object

fbird_fetch_object

(PHP 5, PHP 7 < 7.4.0)

fbird_fetch_object — Sinônimo de ibase_fetch_object()

Descrição

Esta função é um apelido para: ibase_fetch_object().

Veja Também

  • fbird_fetch_row() - Sinônimo de ibase_fetch_row
  • fbird_fetch_assoc() - Sinônimo de ibase_fetch_assoc


Sinônimo de ibase_fetch_row

  • « fbird_fetch_object
  • fbird_field_info »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_fetch_row

fbird_fetch_row

(PHP 5, PHP 7 < 7.4.0)

fbird_fetch_row — Sinônimo de ibase_fetch_row()

Descrição

Esta função é um apelido para: ibase_fetch_row().

Veja Também

  • fbird_fetch_assoc() - Sinônimo de ibase_fetch_assoc
  • fbird_fetch_object() - Sinônimo de ibase_fetch_object


Sinônimo de ibase_field_info

  • « fbird_fetch_row
  • fbird_free_event_handler »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_field_info

fbird_field_info

(PHP 5, PHP 7 < 7.4.0)

fbird_field_info — Sinônimo de ibase_field_info()

Descrição

Esta função é um apelido para: ibase_field_info().

Veja Também

  • fbird_num_fields() - Sinônimo de ibase_num_fields


Sinônimo de ibase_free_event_handler

  • « fbird_field_info
  • fbird_free_query »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_free_event_handler

fbird_free_event_handler

(PHP 5, PHP 7 < 7.4.0)

fbird_free_event_handler — Sinônimo de ibase_free_event_handler()

Descrição

Esta função é um apelido para: ibase_free_event_handler().

Veja Também

  • fbird_set_event_handler() - Sinônimo de ibase_set_event_handler


Sinônimo de ibase_free_query

  • « fbird_free_event_handler
  • fbird_free_result »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_free_query

fbird_free_query

(PHP 5, PHP 7 < 7.4.0)

fbird_free_query — Sinônimo de ibase_free_query()

Descrição

Esta função é um apelido para: ibase_free_query().


Sinônimo de ibase_free_result

  • « fbird_free_query
  • fbird_gen_id »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_free_result

fbird_free_result

(PHP 5, PHP 7 < 7.4.0)

fbird_free_result — Sinônimo de ibase_free_result()

Descrição

Esta função é um apelido para: ibase_free_result().


Sinônimo de ibase_gen_id

  • « fbird_free_result
  • fbird_maintain_db »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_gen_id

fbird_gen_id

(PHP 5, PHP 7 < 7.4.0)

fbird_gen_id — Sinônimo de ibase_gen_id()

Descrição

Esta função é um apelido para: ibase_gen_id().


Sinônimo de ibase_maintain_db

  • « fbird_gen_id
  • fbird_modify_user »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_maintain_db

fbird_maintain_db

(PHP 5, PHP 7 < 7.4.0)

fbird_maintain_db — Sinônimo de ibase_maintain_db()

Descrição

Esta função é um apelido para: ibase_maintain_db().


Sinônimo de ibase_modify_user

  • « fbird_maintain_db
  • fbird_name_result »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_modify_user

fbird_modify_user

(PHP 5, PHP 7 < 7.4.0)

fbird_modify_user — Sinônimo de ibase_modify_user()

Descrição

Esta função é um apelido para: ibase_modify_user().

Veja Também

  • fbird_add_user() - Sinônimo de ibase_add_user
  • fbird_delete_user() - Sinônimo de ibase_delete_user


Sinônimo de ibase_name_result

  • « fbird_modify_user
  • fbird_num_fields »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_name_result

fbird_name_result

(PHP 5, PHP 7 < 7.4.0)

fbird_name_result — Sinônimo de ibase_name_result()

Descrição

Esta função é um apelido para: ibase_name_result().

Veja Também

  • fbird_prepare() - Sinônimo de ibase_prepare
  • fbird_execute() - Sinônimo de ibase_execute


Sinônimo de ibase_num_fields

  • « fbird_name_result
  • fbird_num_params »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_num_fields

fbird_num_fields

(PHP 5, PHP 7 < 7.4.0)

fbird_num_fields — Sinônimo de ibase_num_fields()

Descrição

Esta função é um apelido para: ibase_num_fields().

Veja Também

  • fbird_field_info() - Sinônimo de ibase_field_info


Sinônimo de ibase_num_params

  • « fbird_num_fields
  • fbird_param_info »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_num_params

fbird_num_params

(PHP 5, PHP 7 < 7.4.0)

fbird_num_params — Sinônimo de ibase_num_params()

Descrição

Esta função é um apelido para: ibase_num_params().

Veja Também

  • fbird_prepare() - Sinônimo de ibase_prepare
  • fbird_param_info() - Sinônimo de ibase_param_info


Sinônimo de ibase_param_info

  • « fbird_num_params
  • fbird_pconnect »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_param_info

fbird_param_info

(PHP 5, PHP 7 < 7.4.0)

fbird_param_info — Sinônimo de ibase_param_info()

Descrição

Esta função é um apelido para: ibase_param_info().

Veja Também

  • fbird_field_info() - Sinônimo de ibase_field_info
  • fbird_num_params() - Sinônimo de ibase_num_params


Sinônimo de ibase_pconnect

  • « fbird_param_info
  • fbird_prepare »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_pconnect

fbird_pconnect

(PHP 5, PHP 7 < 7.4.0)

fbird_pconnect — Sinônimo de ibase_pconnect()

Descrição

Esta função é um apelido para: ibase_pconnect().

Veja Também

  • fbird_close() - Sinônimo de ibase_close
  • fbird_connect() - Sinônimo de ibase_connect


Sinônimo de ibase_prepare

  • « fbird_pconnect
  • fbird_query »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_prepare

fbird_prepare

(PHP 5, PHP 7 < 7.4.0)

fbird_prepare — Sinônimo de ibase_prepare()

Descrição

Esta função é um apelido para: ibase_prepare().


Sinônimo de ibase_query

  • « fbird_prepare
  • fbird_restore »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_query

fbird_query

(PHP 5, PHP 7 < 7.4.0)

fbird_query — Sinônimo de ibase_query()

Descrição

Esta função é um apelido para: ibase_query().

Veja Também

  • fbird_errmsg() - Sinônimo de ibase_errmsg
  • fbird_fetch_row() - Sinônimo de ibase_fetch_row
  • fbird_fetch_object() - Sinônimo de ibase_fetch_object
  • fbird_free_result() - Sinônimo de ibase_free_result


Sinônimo de ibase_restore

  • « fbird_query
  • fbird_rollback_ret »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_restore

fbird_restore

(PHP 5, PHP 7 < 7.4.0)

fbird_restore — Sinônimo de ibase_restore()

Descrição

Esta função é um apelido para: ibase_restore().


Sinônimo de ibase_rollback_ret

  • « fbird_restore
  • fbird_rollback »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_rollback_ret

fbird_rollback_ret

(PHP 5, PHP 7 < 7.4.0)

fbird_rollback_ret — Sinônimo de ibase_rollback_ret()

Descrição

Esta função é um apelido para: ibase_rollback_ret().


Sinônimo de ibase_rollback

  • « fbird_rollback_ret
  • fbird_server_info »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_rollback

fbird_rollback

(PHP 5, PHP 7 < 7.4.0)

fbird_rollback — Sinônimo de ibase_rollback()

Descrição

Esta função é um apelido para: ibase_rollback().


Sinônimo de ibase_server_info

  • « fbird_rollback
  • fbird_service_attach »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_server_info

fbird_server_info

(PHP 5, PHP 7 < 7.4.0)

fbird_server_info — Sinônimo de ibase_server_info()

Descrição

Esta função é um apelido para: ibase_server_info().


Sinônimo de ibase_service_attach

  • « fbird_server_info
  • fbird_service_detach »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_service_attach

fbird_service_attach

(PHP 5, PHP 7 < 7.4.0)

fbird_service_attach — Sinônimo de ibase_service_attach()

Descrição

Esta função é um apelido para: ibase_service_attach().


Sinônimo de ibase_service_detach

  • « fbird_service_attach
  • fbird_set_event_handler »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_service_detach

fbird_service_detach

(PHP 5, PHP 7 < 7.4.0)

fbird_service_detach — Sinônimo de ibase_service_detach()

Descrição

Esta função é um apelido para: ibase_service_detach().


Sinônimo de ibase_set_event_handler

  • « fbird_service_detach
  • fbird_trans »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_set_event_handler

fbird_set_event_handler

(PHP 5, PHP 7 < 7.4.0)

fbird_set_event_handler — Sinônimo de ibase_set_event_handler()

Descrição

Esta função é um apelido para: ibase_set_event_handler().

Veja Também

  • fbird_free_event_handler() - Sinônimo de ibase_free_event_handler
  • fbird_wait_event() - Sinônimo de ibase_wait_event


Sinônimo de ibase_trans

  • « fbird_set_event_handler
  • fbird_wait_event »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_trans

fbird_trans

(PHP 5, PHP 7 < 7.4.0)

fbird_trans — Sinônimo de ibase_trans()

Descrição

Esta função é um apelido para: ibase_trans().


Sinônimo de ibase_wait_event

  • « fbird_trans
  • ibase_add_user »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Sinônimo de ibase_wait_event

fbird_wait_event

(PHP 5, PHP 7 < 7.4.0)

fbird_wait_event — Sinônimo de ibase_wait_event()

Descrição

Esta função é um apelido para: ibase_wait_event().

Veja Também

  • fbird_set_event_handler() - Sinônimo de ibase_set_event_handler
  • fbird_free_event_handler() - Sinônimo de ibase_free_event_handler


Adiciona um usuário a um banco de dados seguro

  • « fbird_wait_event
  • ibase_affected_rows »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Adiciona um usuário a um banco de dados seguro

ibase_add_user

(PHP 5, PHP 7 < 7.4.0)

ibase_add_user — Adiciona um usuário a um banco de dados seguro

Descrição

ibase_add_user(
resource $service_handle,
string $user_name,
string $password,
string $first_name = ?,
string $middle_name = ?,
string $last_name = ?
): bool

Parâmetros

service_handle

O manipulador no serviço do servidor de banco de dados.

user_name

O login do novo usuário do banco de dados.

password

A senha do novo usuário.

first_name

O primeiro nome do novo usuário.

middle_name

O nome do meio do novo usuário.

last_name

O último nome do novo usuário.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ibase_modify_user() - Modifica um usuário para um banco de dados seguro
  • ibase_delete_user() - Exclui um usuário de um banco de dados seguro


Retorna o número de linhas que foram afetados pela consulta anterior

  • « ibase_add_user
  • ibase_backup »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Retorna o número de linhas que foram afetados pela consulta anterior

ibase_affected_rows

(PHP 5, PHP 7 < 7.4.0)

ibase_affected_rows — Retorna o número de linhas que foram afetados pela consulta anterior

Descrição

ibase_affected_rows(resource $link_identifier = ?): int

Esta função retorna o número de registros que foram afetados pela consulta (INSERT, UPDATE or DELETE) anterior que foi executada no contexto da transação especificada.

Parâmetros

link_identifier

Um contexto de transação. Se link_identifier é um resource de conexão, a transação padrão é usada.

Valor Retornado

Retorna o número de linhas como um inteiro.

Veja Também

  • ibase_query() - Executa uma consulta em um banco de dados InterBase
  • ibase_execute() - Executa uma consulta preparada anteriormente


Initiates a backup task in the service manager and returns immediately

  • « ibase_affected_rows
  • ibase_blob_add »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Initiates a backup task in the service manager and returns immediately

ibase_backup

(PHP 5, PHP 7 < 7.4.0)

ibase_backup — Initiates a backup task in the service manager and returns immediately

Descrição

ibase_backup(
resource $service_handle,
string $source_db,
string $dest_file,
int $options = 0,
bool $verbose = false
): mixed

This function passes the arguments to the (remote) database server. There it starts a new backup process. Therefore you won't get any responses.

Parâmetros

service_handle

A previously opened connection to the database server.

source_db

The absolute file path to the database on the database server. You can also use a database alias.

dest_file

The path to the backup file on the database server.

options

Additional options to pass to the database server for backup. The options parameter can be a combination of the following constants: IBASE_BKP_IGNORE_CHECKSUMS, IBASE_BKP_IGNORE_LIMBO, IBASE_BKP_METADATA_ONLY, IBASE_BKP_NO_GARBAGE_COLLECT, IBASE_BKP_OLD_DESCRIPTIONS, IBASE_BKP_NON_TRANSPORTABLE or IBASE_BKP_CONVERT. Read the section about Constantes pré-definidas for further information.

verbose

Since the backup process is done on the database server, you don't have any chance to get its output. This argument is useless.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Since the backup process is done on the (remote) server, this function just passes the arguments to it. While the arguments are legal, you won't get false.

Exemplos

Exemplo #1 ibase_backup() example

<?php

// Attach to database server by ip address and port
$service = ibase_service_attach ('10.1.11.200/3050', 'sysdba', 'masterkey');

// Start the backup process on database server
// Backup employee database using full path to /srv/backup/employees.fbk
// Don't use any special arguments
ibase_backup($service, '/srv/firebird/employees.fdb', '/srv/backup/employees.fbk');

// Free the attached connection
ibase_service_detach ($service);
?>

Exemplo #2 ibase_backup() example with arguments

<?php

// Attach to database server by name and default port
$service = ibase_service_attach ('fb-server.contoso.local', 'sysdba', 'masterkey');

// Start the backup process on database server
// Backup employee database using alias to /srv/backup/employees.fbk.
// Backup only the metadata. Don't create a transportable backup.
ibase_backup($service, 'employees.fdb', '/srv/backup/employees.fbk', IBASE_BKP_METADATA_ONLY | IBASE_BKP_NON_TRANSPORTABLE);

// Free the attached connection
ibase_service_detach ($service);
?>

Veja Também

  • ibase_restore() - Initiates a restore task in the service manager and returns immediately


Adiciona dados em um blob recém criado

  • « ibase_backup
  • ibase_blob_cancel »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Adiciona dados em um blob recém criado

ibase_blob_add

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_add — Adiciona dados em um blob recém criado

Descrição

ibase_blob_add(resource $blob_handle, string $data): void

ibase_blob_add() adiciona dados em um blob criado com ibase_blob_create().

Parâmetros

blob_handle

Um manipulador blob aberto com ibase_blob_create().

data

A informação a ser adicionada.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_close() - Close blob
  • ibase_blob_create() - Create a new blob for adding data
  • ibase_blob_import() - Cria um blob, copia um arquivo para ele e o fecha


Cancel creating blob

  • « ibase_blob_add
  • ibase_blob_close »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Cancel creating blob

ibase_blob_cancel

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_cancel — Cancel creating blob

Descrição

ibase_blob_cancel(resource $blob_handle): bool

This function will discard a BLOB if it has not yet been closed by ibase_blob_close().

Parâmetros

blob_handle

A BLOB handle opened with ibase_blob_create().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ibase_blob_close() - Close blob
  • ibase_blob_create() - Create a new blob for adding data
  • ibase_blob_import() - Cria um blob, copia um arquivo para ele e o fecha


Close blob

  • « ibase_blob_cancel
  • ibase_blob_create »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Close blob

ibase_blob_close

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_close — Close blob

Descrição

ibase_blob_close(resource $blob_handle): mixed

This function closes a BLOB that has either been opened for reading by ibase_blob_open() or has been opened for writing by ibase_blob_create().

Parâmetros

blob_handle

A BLOB handle opened with ibase_blob_create() or ibase_blob_open().

Valor Retornado

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.

Veja Também

  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_open() - Abre um blob para obter partes de dados


Create a new blob for adding data

  • « ibase_blob_close
  • ibase_blob_echo »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Create a new blob for adding data

ibase_blob_create

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_create — Create a new blob for adding data

Descrição

ibase_blob_create(resource $link_identifier = null): resource|false

ibase_blob_create() creates a new BLOB for filling with data.

Parâmetros

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

Valor Retornado

Returns a BLOB handle for later use with ibase_blob_add() ou false em caso de falha.

Veja Também

  • ibase_blob_add() - Adiciona dados em um blob recém criado
  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_close() - Close blob
  • ibase_blob_import() - Cria um blob, copia um arquivo para ele e o fecha


Output blob contents to browser

  • « ibase_blob_create
  • ibase_blob_get »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Output blob contents to browser

ibase_blob_echo

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_echo — Output blob contents to browser

Descrição

ibase_blob_echo(string $blob_id): bool
ibase_blob_echo(resource $link_identifier, string $blob_id): bool

This function opens a BLOB for reading and sends its contents directly to standard output (the browser, in most cases).

Parâmetros

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

blob_id

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ibase_blob_open() - Abre um blob para obter partes de dados
  • ibase_blob_close() - Close blob
  • ibase_blob_get() - Retorna uma quantidade especificada de bytes de dados de um blob aberto


Retorna uma quantidade especificada de bytes de dados de um blob aberto

  • « ibase_blob_echo
  • ibase_blob_import »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Retorna uma quantidade especificada de bytes de dados de um blob aberto

ibase_blob_get

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_get — Retorna uma quantidade especificada de bytes de dados de um blob aberto

Descrição

ibase_blob_get(resource $blob_handle, int $len): string

Esta função retorna a quantidade len de bytes de um BLOB que foi aberto para leitura com ibase_blob_open().

Nota:

Não é possível ler de um BLOB que não foi aberto para escrita por ibase_blob_create().

Parâmetros

blob_handle

Um manipulador de BLOB aberto com ibase_blob_open().

len

Tamanho da informação retornada.

Valor Retornado

Retorna no máximo len bytes de um BLOB, ou false em falha.

Exemplos

Exemplo #1 Exemplo da ibase_blob_get()

<?php
$result = ibase_query("SELECT blob_value FROM table");
$data = ibase_fetch_object($result);
$blob_data = ibase_blob_info($data->BLOB_VALUE);
$blob_hndl = ibase_blob_open($data->BLOB_VALUE);
echo ibase_blob_get($blob_hndl, $blob_data[0]);
?>
Enquanto este exemplo não faz muito mais do que um 'ibase_blob_echo($data->BLOB_VALUE)' faria, ele mostra a você como obter a informação em uma $variavel para você poder manipular como quiser.

Veja Também

  • ibase_blob_open() - Abre um blob para obter partes de dados
  • ibase_blob_close() - Close blob
  • ibase_blob_echo() - Output blob contents to browser


Cria um blob, copia um arquivo para ele e o fecha

  • « ibase_blob_get
  • ibase_blob_info »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Cria um blob, copia um arquivo para ele e o fecha

ibase_blob_import

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_import — Cria um blob, copia um arquivo para ele e o fecha

Descrição

ibase_blob_import(resource $link_identifier, resource $file_handle): string
ibase_blob_import(resource $file_handle): string

Este função cria um BLOB, lê um arquivo inteiro para dentro dele, fecha, e retorna o id do BLOB.

Parâmetros

link_identifier

Um link identificador InterBase. Se omitido, o último link aberto é usado.

file_handle

O manipulador de arquivo é um manipulador retornado por fopen().

Valor Retornado

Retorna o id do BLOB em sucesso, ou false em erro.

Exemplos

Exemplo #1 Exemplo da ibase_blob_import()

<?php
$dbh = ibase_connect($host, $username, $password);
$filename = '/tmp/bar';

$fd = fopen($filename, 'r');
if ($fd) {

$blob = ibase_blob_import($dbh, $fd);
fclose($fd);

if (!is_string($blob)) {
// import failed
} else {
$query = "INSERT INTO foo (name, data) VALUES ('$filename', ?)";
$prepared = ibase_prepare($dbh, $query);
if (!ibase_execute($prepared, $blob)) {
// record insertion failed
}
}
} else {
// unable to open the data file
}
?>

Veja Também

  • ibase_blob_add() - Adiciona dados em um blob recém criado
  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_close() - Close blob
  • ibase_blob_create() - Create a new blob for adding data


Retorna o tamanho do blob e outras informações úteis

  • « ibase_blob_import
  • ibase_blob_open »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Retorna o tamanho do blob e outras informações úteis

ibase_blob_info

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_info — Retorna o tamanho do blob e outras informações úteis

Descrição

ibase_blob_info(resource $link_identifier, string $blob_id): array
ibase_blob_info(string $blob_id): array

Retorna o tamanho do BLOB e outras informações úteis.

Parâmetros

link_identifier

Um link identificador InterBase. Se omitido, o último link aberto é usado.

blob_id

Um id de BLOB.

Valor Retornado

Retorna uma matriz contendo informações sobre um BLOB. A informação retornada consiste no tamanho do BLOB, o número de seguimentos que ele contém, o tamanho do maior seguimento e quando é um BLOB de stream ou um BLOB seguimentado.


Abre um blob para obter partes de dados

  • « ibase_blob_info
  • ibase_close »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Abre um blob para obter partes de dados

ibase_blob_open

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_open — Abre um blob para obter partes de dados

Descrição

ibase_blob_open(resource $link_identifier, string $blob_id): resource|false
ibase_blob_open(string $blob_id): resource|false

Abre um BLOB existente para leitura.

Parâmetros

link_identifier

Um link identificador InterBase. Se omitido, o último link aberto é usado.

blob_id

Um id de BLOB.

Valor Retornado

Retorna um manipulador de BLOB para uso posterior com ibase_blob_get() ou false em caso de falha.

Veja Também

  • ibase_blob_close() - Close blob
  • ibase_blob_echo() - Output blob contents to browser
  • ibase_blob_get() - Retorna uma quantidade especificada de bytes de dados de um blob aberto


Close a connection to an InterBase database

  • « ibase_blob_open
  • ibase_commit_ret »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Close a connection to an InterBase database

ibase_close

(PHP 5, PHP 7 < 7.4.0)

ibase_close — Close a connection to an InterBase database

Descrição

ibase_close(resource $connection_id = null): bool

Closes the link to an InterBase database that's associated with a connection id returned from ibase_connect(). Default transaction on link is committed, other transactions are rolled back.

Parâmetros

connection_id

An InterBase link identifier returned from ibase_connect(). If omitted, the last opened link is assumed.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ibase_connect() - Abre uma conexão com um banco de dados
  • ibase_pconnect() - Open a persistent connection to an InterBase database


Commit a transaction without closing it

  • « ibase_close
  • ibase_commit »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Commit a transaction without closing it

ibase_commit_ret

(PHP 5, PHP 7 < 7.4.0)

ibase_commit_ret — Commit a transaction without closing it

Descrição

ibase_commit_ret(resource $link_or_trans_identifier = null): bool

Commits a transaction without closing it.

Parâmetros

link_or_trans_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.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Commit a transaction

  • « ibase_commit_ret
  • ibase_connect »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Commit a transaction

ibase_commit

(PHP 5, PHP 7 < 7.4.0)

ibase_commit — Commit a transaction

Descrição

ibase_commit(resource $link_or_trans_identifier = null): bool

Commits a transaction.

Parâmetros

link_or_trans_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.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Abre uma conexão com um banco de dados

  • « ibase_commit
  • ibase_db_info »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Abre uma conexão com um banco de dados

ibase_connect

(PHP 5, PHP 7 < 7.4.0)

ibase_connect — Abre uma conexão com um banco de dados

Descrição

ibase_connect(
string $database = ?,
string $username = ?,
string $password = ?,
string $charset = ?,
int $buffers = ?,
int $dialect = ?,
string $role = ?,
int $sync = ?
): resource

Estabelece uma conexão com um banco de dados Firebird/InterBase.

No caso de uma segunda chamada a ibase_connect() com os mesmos argumntos, não será criada uma nova conexão, mas ao invés, será retornado o identificador da conexão já aberta. A conexão com o servidor será fechada assim que terminar a execução do script, a menos que seja fechada explicitamente pela chamada de ibase_close().

Parâmetros

database

O argumento database deve ser um caminho válido para o arquivo do banco de dados no servidor no qual ele reside. Se o servidor não for local, ele deve ser prefixado com 'hostname:' (TCP/IP), 'hostname/port:' (TCP/IP com servidor interbase em porta TCP customizada), '//hostname/' (NetBEUI), dependendo do protocolo de conexão usado.

username

O nome de usuário. Pode ser definido com a diretiva ibase.default_user do php.ini

password

A senha para username. Poe ser definida com a diretiva ibase.default_password do php.ini.

charset

charset é o conjunto de caracteres padrão para o banco de dados.

buffers

buffers é o número de buffers do banco de dados a serem alocados para o cache do lado do servidor. Se 0 ou omitido, o servidor escolhe o seu próprio padrão.

dialect

dialect define o dialeto SQL padrão para qualquer comand executado na conexão, e o padrão é o mais alto suportado pelas bibliotecas do cliente.

role

Funcional apenas com InterBase 5 e superior.

sync

Valor Retornado

Retorna um identificador de conexão Firebird/InterBase em caso de sucesso, ou false em caso de erro.

Erros/Exceções

Se você ter um erro parecido com "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (isto ocorre quando você tenta usar algum caractere com acento) ao usar esta função e depois de ibase_query() deve-se definir o conjunto de caracteres (isto é, ISO8859_1 ou o conjunto de caracteres atual).

Exemplos

Exemplo #1 Exemplo de ibase_connect()

<?php
$host = 'localhost:/path/to/your.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
echo $row->email, "\n";
}
ibase_free_result($sth);
ibase_close($dbh);
?>

Veja Também

  • ibase_pconnect() - Open a persistent connection to an InterBase database
  • ibase_close() - Close a connection to an InterBase database


Request statistics about a database

  • « ibase_connect
  • ibase_delete_user »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Request statistics about a database

ibase_db_info

(PHP 5, PHP 7 < 7.4.0)

ibase_db_info — Request statistics about a database

Descrição

ibase_db_info(
resource $service_handle,
string $db,
int $action,
int $argument = 0
): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Exclui um usuário de um banco de dados seguro

  • « ibase_db_info
  • ibase_drop_db »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Exclui um usuário de um banco de dados seguro

ibase_delete_user

(PHP 5, PHP 7 < 7.4.0)

ibase_delete_user — Exclui um usuário de um banco de dados seguro

Descrição

ibase_delete_user(resource $service_handle, string $user_name): bool

Parâmetros

service_handle

O manipulador no serviço do servidor do banco de dados.

user_name

O login do usuário que deseja-se remover do banco de dados.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ibase_add_user() - Adiciona um usuário a um banco de dados seguro
  • ibase_modify_user() - Modifica um usuário para um banco de dados seguro


Drops a database

  • « ibase_delete_user
  • ibase_errcode »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Drops a database

ibase_drop_db

(PHP 5, PHP 7 < 7.4.0)

ibase_drop_db — Drops a database

Descrição

ibase_drop_db(resource $connection = null): bool

This functions drops a database that was opened by either ibase_connect() or ibase_pconnect(). The database is closed and deleted from the server.

Parâmetros

connection

An InterBase link identifier. If omitted, the last opened link is assumed.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ibase_connect() - Abre uma conexão com um banco de dados
  • ibase_pconnect() - Open a persistent connection to an InterBase database


Return an error code

  • « ibase_drop_db
  • ibase_errmsg »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Return an error code

ibase_errcode

(PHP 5, PHP 7 < 7.4.0)

ibase_errcode — Return an error code

Descrição

ibase_errcode(): int

Returns the error code that resulted from the most recent InterBase function call.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the error code as an integer, or false if no error occurred.

Veja Também

  • ibase_errmsg() - Return error messages


Return error messages

  • « ibase_errcode
  • ibase_execute »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Return error messages

ibase_errmsg

(PHP 5, PHP 7 < 7.4.0)

ibase_errmsg — Return error messages

Descrição

ibase_errmsg(): string

Returns the error message that resulted from the most recent InterBase function call.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the error message as a string, or false if no error occurred.

Veja Também

  • ibase_errcode() - Return an error code


Executa uma consulta preparada anteriormente

  • « ibase_errmsg
  • ibase_fetch_assoc »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Executa uma consulta preparada anteriormente

ibase_execute

(PHP 5, PHP 7 < 7.4.0)

ibase_execute — Executa uma consulta preparada anteriormente

Descrição

ibase_execute(resource $query, mixed ...$values): resource

Executa uma consulta preparada por ibase_prepare().

Isto é muito mais efetivo do que usar ibase_query() se você estiver repetindo o mesmo tipo de consulta muitas vezes apenas mudando alguns parâmetros.

Parâmetros

query

Uma consulta do InterBase preparada por ibase_prepare().

values

Valor Retornado

Se houver um erro na consulta, retorna false. Se for bem sucedida e tiver um conjunto de resultados (possivelmente vazio, como em uma consulta SELECT), retorna um identificador de resultado. Se a consulta for bem sucedida e não houver resultados, retorna true.

Nota:

Esta função retorna o número de linhas afetadas pela consulta (se > 0 e aplicável ao tipo de declaração). A consulta que tenha sido bem sucedida mas não afete nenhuma linha(ex.: um UPDATE de um registro que não exista) irá retornar true.

Exemplos

Exemplo #1 Exemplo de ibase_execute()

<?php

$dbh = ibase_connect($host, $username, $password);

$updates = array(
1 => 'Eric',
5 => 'Filip',
7 => 'Larry'
);

$query = ibase_prepare($dbh, "UPDATE FOO SET BAR = ? WHERE BAZ = ?");

foreach ($updates as $baz => $bar) {
ibase_execute($query, $bar, $baz);
}

?>

Veja Também

  • ibase_query() - Executa uma consulta em um banco de dados InterBase


Fetch a result row from a query as an associative array

  • « ibase_execute
  • ibase_fetch_object »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Fetch a result row from a query as an associative array

ibase_fetch_assoc

(PHP 5, PHP 7 < 7.4.0)

ibase_fetch_assoc — Fetch a result row from a query as an associative array

Descrição

ibase_fetch_assoc(resource $result, int $fetch_flag = 0): array

Fetch a result row from a query as an associative array.

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.

Parâmetros

result

The result handle.

fetch_flag

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.

Valor Retornado

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.

Veja Também

  • ibase_fetch_row() - Fetch a row from an InterBase database
  • ibase_fetch_object() - Get an object from a InterBase database


Get an object from a InterBase database

  • « ibase_fetch_assoc
  • ibase_fetch_row »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Get an object from a InterBase database

ibase_fetch_object

(PHP 5, PHP 7 < 7.4.0)

ibase_fetch_object — Get an object from a InterBase database

Descrição

ibase_fetch_object(resource $result_id, int $fetch_flag = 0): object

Fetches a row as a pseudo-object from a given result identifier.

Subsequent calls to ibase_fetch_object() return the next row in the result set.

Parâmetros

result_id

An InterBase result identifier obtained either by ibase_query() or ibase_execute().

fetch_flag

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.

Valor Retornado

Returns an object with the next row information, or false if there are no more rows.

Exemplos

Exemplo #1 ibase_fetch_object() example

<?php
$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
echo $row->email . "\n";
}
ibase_close($dbh);
?>

Veja Também

  • ibase_fetch_row() - Fetch a row from an InterBase database
  • ibase_fetch_assoc() - Fetch a result row from a query as an associative array


Fetch a row from an InterBase database

  • « ibase_fetch_object
  • ibase_field_info »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Fetch a row from an InterBase database

ibase_fetch_row

(PHP 5, PHP 7 < 7.4.0)

ibase_fetch_row — Fetch a row from an InterBase database

Descrição

ibase_fetch_row(resource $result_identifier, int $fetch_flag = 0): array

ibase_fetch_row() fetches one row of data from the given result set.

Subsequent calls to ibase_fetch_row() return the next row in the result set, or false if there are no more rows.

Parâmetros

result_identifier

An InterBase result identifier.

fetch_flag

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.

Valor Retornado

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 0.

Veja Também

  • ibase_fetch_assoc() - Fetch a result row from a query as an associative array
  • ibase_fetch_object() - Get an object from a InterBase database


Obtém informação sobre um campo

  • « ibase_fetch_row
  • ibase_free_event_handler »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Obtém informação sobre um campo

ibase_field_info

(PHP 5, PHP 7 < 7.4.0)

ibase_field_info — Obtém informação sobre um campo

Descrição

ibase_field_info(resource $result, int $field_number): array

Retorna uma matriz com informações sobre um campo após uma consulta SELECT ter sido executada.

Parâmetros

result

Um identificador de resultado do InterBase.

field_number

Índice do campo.

Valor Retornado

Retorna um array com as seguintes chaves: name, alias, relation, length e type.

Exemplos

Exemplo #1 Exemplo da ibase_field_info()

<?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";
}
?>

Veja Também

  • ibase_num_fields() - Obtém o número de campos em um conjunto de resultados


Cancela um manipulador de eventos registrado

  • « ibase_field_info
  • ibase_free_query »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Cancela um manipulador de eventos registrado

ibase_free_event_handler

(PHP 5, PHP 7 < 7.4.0)

ibase_free_event_handler — Cancela um manipulador de eventos registrado

Descrição

ibase_free_event_handler(resource $event): bool

Esta função faz com que o manipulador de eventos registrado especificado por event seja cancelado. A função de callback não será mais chamada para os eventos que estava registrada para manipular.

Parâmetros

event

Um resource de evento criado com ibase_set_event_handler().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ibase_set_event_handler() - Register a callback function to be called when events are posted


Libera a memória alocada para uma consulta preparada

  • « ibase_free_event_handler
  • ibase_free_result »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Libera a memória alocada para uma consulta preparada

ibase_free_query

(PHP 5, PHP 7 < 7.4.0)

ibase_free_query — Libera a memória alocada para uma consulta preparada

Descrição

ibase_free_query(resource $query): bool

Libera uma query preparada.

Parâmetros

query

Uma query preparada com ibase_prepare().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Libera um conjunto de resultados

  • « ibase_free_query
  • ibase_gen_id »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Libera um conjunto de resultados

ibase_free_result

(PHP 5, PHP 7 < 7.4.0)

ibase_free_result — Libera um conjunto de resultados

Descrição

ibase_free_result(resource $result_identifier): bool

Libera um conjunto de resultado.

Parâmetros

result_identifier

Um conjunto de resultado criado pela ibase_query() ou ibase_execute().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Increments the named generator and returns its new value

  • « ibase_free_result
  • ibase_maintain_db »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Increments the named generator and returns its new value

ibase_gen_id

(PHP 5, PHP 7 < 7.4.0)

ibase_gen_id — Increments the named generator and returns its new value

Descrição

ibase_gen_id(string $generator, int $increment = 1, resource $link_identifier = null): mixed
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Valor Retornado

Returns new generator value as integer, or as string if the value is too big.


Execute a maintenance command on the database server

  • « ibase_gen_id
  • ibase_modify_user »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Execute a maintenance command on the database server

ibase_maintain_db

(PHP 5, PHP 7 < 7.4.0)

ibase_maintain_db — Execute a maintenance command on the database server

Descrição

ibase_maintain_db(
resource $service_handle,
string $db,
int $action,
int $argument = 0
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Modifica um usuário para um banco de dados seguro

  • « ibase_maintain_db
  • ibase_name_result »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Modifica um usuário para um banco de dados seguro

ibase_modify_user

(PHP 5, PHP 7 < 7.4.0)

ibase_modify_user — Modifica um usuário para um banco de dados seguro

Descrição

ibase_modify_user(
resource $service_handle,
string $user_name,
string $password,
string $first_name = ?,
string $middle_name = ?,
string $last_name = ?
): bool

Parâmetros

service_handle

O manipulador no serviço do servidor de banco de dados.

user_name

O login do usuário do banco de dados a modificar.

password

A nova senha do usuário.

first_name

O novo primeiro nome do usuário.

middle_name

O novo nome do meio do usuário.

last_name

O novo último nome do usuário.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ibase_add_user() - Adiciona um usuário a um banco de dados seguro
  • ibase_delete_user() - Exclui um usuário de um banco de dados seguro


Define um nome para um conjunto de resultados

  • « ibase_modify_user
  • ibase_num_fields »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Define um nome para um conjunto de resultados

ibase_name_result

(PHP 5, PHP 7 < 7.4.0)

ibase_name_result — Define um nome para um conjunto de resultados

Descrição

ibase_name_result(resource $result, string $name): bool

Esta função define um nome para um conjunto de resultados. Este nome pode ser usado posteriormente em comandos UPDATE|DELETE ... WHERE CURRENT OF name.

Parâmetros

result

Um conjunto de resultado do InterBase.

name

O nome a ser atribuído.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo da ibase_name_result()

<?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);
}
?>

Veja Também

  • ibase_prepare() - Prepara uma consulta para ligação de parâmetros e execução posteriores
  • ibase_execute() - Executa uma consulta preparada anteriormente


Obtém o número de campos em um conjunto de resultados

  • « ibase_name_result
  • ibase_num_params »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Obtém o número de campos em um conjunto de resultados

ibase_num_fields

(PHP 5, PHP 7 < 7.4.0)

ibase_num_fields — Obtém o número de campos em um conjunto de resultados

Descrição

ibase_num_fields(resource $result_id): int

Obtém o número de campos em um conjunto de resultados.

Parâmetros

result_id

Um identificador de resultado InterBase.

Valor Retornado

Retorna o número de campos como um inteiro.

Exemplos

Exemplo #1 Exemplo da ibase_num_fields()

<?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";
}
?>

Veja Também

  • ibase_field_info() - Obtém informação sobre um campo


Retorna o número de parâmetros em uma consulta preparada

  • « ibase_num_fields
  • ibase_param_info »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Retorna o número de parâmetros em uma consulta preparada

ibase_num_params

(PHP 5, PHP 7 < 7.4.0)

ibase_num_params — Retorna o número de parâmetros em uma consulta preparada

Descrição

ibase_num_params(resource $query): int

Esta função retorna o número de parâmetros em uma consulta preparada especificada query. Este é o numero de argumentos que devem estar presentes quando usar a função ibase_execute().

Parâmetros

query

O manipulador da query preparada.

Valor Retornado

Retorna o número de parâmetros como um inteiro.

Veja Também

  • ibase_prepare() - Prepara uma consulta para ligação de parâmetros e execução posteriores
  • ibase_param_info() - Retorna informação sobre um parâmetro em uma consulta preparada


Retorna informação sobre um parâmetro em uma consulta preparada

  • « ibase_num_params
  • ibase_pconnect »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Retorna informação sobre um parâmetro em uma consulta preparada

ibase_param_info

(PHP 5, PHP 7 < 7.4.0)

ibase_param_info — Retorna informação sobre um parâmetro em uma consulta preparada

Descrição

ibase_param_info(resource $query, int $param_number): array

Retorna uma matriz com informações sobre um parâmetro após a consulta ter sido preparada.

Parâmetros

query

Um manipulador de query preparada do InterBase.

param_number

O índice do parâmetro.

Valor Retornado

Retorna um array com as seguintes chaves: name, alias, relation, length and type.

Veja Também

  • ibase_field_info() - Obtém informação sobre um campo
  • ibase_num_params() - Retorna o número de parâmetros em uma consulta preparada


Open a persistent connection to an InterBase database

  • « ibase_param_info
  • ibase_prepare »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Open a persistent connection to an InterBase database

ibase_pconnect

(PHP 5, PHP 7 < 7.4.0)

ibase_pconnect — Open a persistent connection to an InterBase database

Descrição

ibase_pconnect(
string $database = ?,
string $username = ?,
string $password = ?,
string $charset = ?,
int $buffers = ?,
int $dialect = ?,
string $role = ?,
int $sync = ?
): resource

Opens a persistent connection to an InterBase database.

ibase_pconnect() acts very much like ibase_connect() with two major differences.

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 InterBase server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ibase_close() will not close links established by ibase_pconnect()). This type of link is therefore called 'persistent'.

Parâmetros

database

The database argument has to be a valid path to database file on the server it resides on. If the server is not local, it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection protocol used.

username

The user name. Can be set with the ibase.default_user php.ini directive.

password

The password for username. Can be set with the ibase.default_password php.ini directive.

charset

charset is the default character set for a database.

buffers

buffers is the number of database buffers to allocate for the server-side cache. If 0 or omitted, server chooses its own default.

dialect

dialect selects the default SQL dialect for any statement executed within a connection, and it defaults to the highest one supported by client libraries. Functional only with InterBase 6 and up.

role

Functional only with InterBase 5 and up.

sync

Valor Retornado

Returns an InterBase link identifier on success, or false on error.

Veja Também

  • ibase_close() - Close a connection to an InterBase database
  • ibase_connect() - Abre uma conexão com um banco de dados


Prepara uma consulta para ligação de parâmetros e execução posteriores

  • « ibase_pconnect
  • ibase_query »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Prepara uma consulta para ligação de parâmetros e execução posteriores

ibase_prepare

(PHP 5, PHP 7 < 7.4.0)

ibase_prepare — Prepara uma consulta para ligação de parâmetros e execução posteriores

Descrição

ibase_prepare(string $query): resource
ibase_prepare(resource $link_identifier, string $query): resource
ibase_prepare(resource $link_identifier, string $trans, string $query): resource

Prepara uma consulta para ligação de parâmetros e execução posteriores (via ibase_execute()).

Parâmetros

query

Uma consulta InterBase.

link_identifier

Um identificador de conexão InterBase retornado por ibase_connect(). Se omitido, o identificador da última conexão aberta será utilizado.

trans

Um manipulador de transação InterBase com a qual a consulta deve ser associada. Se omitido, a transação padrão da conexão será utilizada.

Valor Retornado

Retorna o manipulador da consulta preparada, ou false em caso de erro.


Executa uma consulta em um banco de dados InterBase

  • « ibase_prepare
  • ibase_restore »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Executa uma consulta em um banco de dados InterBase

ibase_query

(PHP 5, PHP 7 < 7.4.0)

ibase_query — Executa uma consulta em um banco de dados InterBase

Descrição

ibase_query(resource $link_identifier = ?, string $query, int $bind_args = ?): resource

Executa uma consulta em um banco de dados InterBase.

Parâmetros

link_identifier

Um identificador de conexão InterBase. Se omitido, o da última conexão será utilizado.

query

Uma consulta do InterBase.

bind_args

Valor Retornado

Se houver um erro na consulta, retorna false. Se ela for bem sucedida e houver um conjunto de resultados (possivelmente vazio), como o retornado por uma consulta SELECT, retorna um identificador de resultado. Se a consulta for bem sucedida e não houver resultado, retorna true.

Nota:

No PHP 5.0.0 e posterior, esta função irá retornar o número de linhas afetadas pela consulta para INSERT, UPDATE e DELETE. Para manter a compatibilidade com versões anteriores, irá retornar true para estas consultas se ela for bem sucedida sem afetar nenhuma linha.

Erros/Exceções

Se você tiver um erro como "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (isto acontece quando você tenta usar alguns caracteres com acentos) ao usar esta função e depois de ibase_query(), deve-se definir o conjunto de caracteres (isto é, ISO8859_1 ou o conjunto de caracteres atual).

Exemplos

Exemplo #1 Exemplo de ibase_query()

<?php

$host = 'localhost:/path/to/your.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';

$sth = ibase_query($dbh, $stmt) or die(ibase_errmsg());

?>

Veja Também

  • ibase_errmsg() - Return error messages
  • ibase_fetch_row() - Fetch a row from an InterBase database
  • ibase_fetch_object() - Get an object from a InterBase database
  • ibase_free_result() - Libera um conjunto de resultados


Initiates a restore task in the service manager and returns immediately

  • « ibase_query
  • ibase_rollback_ret »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Initiates a restore task in the service manager and returns immediately

ibase_restore

(PHP 5, PHP 7 < 7.4.0)

ibase_restore — Initiates a restore task in the service manager and returns immediately

Descrição

ibase_restore(
resource $service_handle,
string $source_file,
string $dest_db,
int $options = 0,
bool $verbose = false
): mixed

This function passes the arguments to the (remote) database server. There it starts a new restore process. Therefore you won't get any responses.

Parâmetros

service_handle

A previously opened connection to the database server.

source_file

The absolute path on the server where the backup file is located.

dest_db

The path to create the new database on the server. You can also use database alias.

options

Additional options to pass to the database server for restore. The options parameter can be a combination of the following constants: IBASE_RES_DEACTIVATE_IDX, IBASE_RES_NO_SHADOW, IBASE_RES_NO_VALIDITY, IBASE_RES_ONE_AT_A_TIME, IBASE_RES_REPLACE, IBASE_RES_CREATE, IBASE_RES_USE_ALL_SPACE, IBASE_PRP_PAGE_BUFFERS, IBASE_PRP_SWEEP_INTERVAL, IBASE_RES_CREATE. Read the section about Constantes pré-definidas for further information.

verbose

Since the restore process is done on the database server, you don't have any chance to get its output. This argument is useless.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Since the restore process is done on the (remote) server, this function just passes the arguments to it. While the arguments are legal, you won't get false.

Exemplos

Exemplo #1 ibase_restore() example

<?php

// Attach to database server by ip address and port
$service = ibase_service_attach ('10.1.11.200/3050', 'sysdba', 'masterkey');

// Start the restore process on database server
// Restore employee backup to the new emps.fdb database
// Don't use any special arguments
ibase_restore($service, '/srv/backup/employees.fbk', '/srv/firebird/emps.fdb');

// Free the attached connection
ibase_service_detach ($service);
?>

Exemplo #2 ibase_restore() example with arguments

<?php

// Attach to database server by name and default port
$service = ibase_service_attach ('fb-server.contoso.local', 'sysdba', 'masterkey');

// Start the restore process on database server
// Restore to employee database using alias.
// Restore without indixes. Replace existing database.
ibase_restore($service, '/srv/backup/employees.fbk', 'employees.fdb', IBASE_RES_DEACTIVATE_IDX | IBASE_RES_REPLACE);

// Free the attached connection
ibase_service_detach ($service);
?>

Veja Também

  • ibase_backup() - Initiates a backup task in the service manager and returns immediately


Roll back a transaction without closing it

  • « ibase_restore
  • ibase_rollback »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Roll back a transaction without closing it

ibase_rollback_ret

(PHP 5, PHP 7 < 7.4.0)

ibase_rollback_ret — Roll back a transaction without closing it

Descrição

ibase_rollback_ret(resource $link_or_trans_identifier = null): bool

Rolls back a transaction without closing it.

Parâmetros

link_or_trans_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.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Roll back a transaction

  • « ibase_rollback_ret
  • ibase_server_info »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Roll back a transaction

ibase_rollback

(PHP 5, PHP 7 < 7.4.0)

ibase_rollback — Roll back a transaction

Descrição

ibase_rollback(resource $link_or_trans_identifier = null): bool

Rolls back a transaction.

Parâmetros

link_or_trans_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.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Request information about a database server

  • « ibase_rollback
  • ibase_service_attach »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Request information about a database server

ibase_server_info

(PHP 5, PHP 7 < 7.4.0)

ibase_server_info — Request information about a database server

Descrição

ibase_server_info(resource $service_handle, int $action): string

Parâmetros

service_handle

A previously created connection to the database server.

action

A valid constant.

Valor Retornado

Returns mixed types depending on context.

Exemplos

Exemplo #1 ibase_service_attach() example

<?php
// Attach to the remote Firebird server
if (($service = ibase_service_attach('10.1.1.254/3050', 'sysdba', 'masterkey')) != FALSE) {

// Successfully attached.

// Output the info
echo "Server version: " . ibase_server_info($service, IBASE_SVC_SERVER_VERSION) . "\n";
echo "Server implementation: " . ibase_server_info($service, IBASE_SVC_IMPLEMENTATION) . "\n";
echo "Server users: " . print_r(ibase_server_info($service, IBASE_SVC_GET_USERS), true) . "\n";
echo "Server directory: " . ibase_server_info($service, IBASE_SVC_GET_ENV) . "\n";
echo "Server lock path: " . ibase_server_info($service, IBASE_SVC_GET_ENV_LOCK) . "\n";
echo "Server lib path: " . ibase_server_info($service, IBASE_SVC_GET_ENV_MSG) . "\n";
echo "Path of user db: " . ibase_server_info($service, IBASE_SVC_USER_DBPATH) . "\n";
echo "Established connections: " . print_r(ibase_server_info($service, IBASE_SVC_SVR_DB_INFO),true) . "\n";

// Detach from server (disconnect)
ibase_service_detach($service);

}
else {
// Output message on error
$conn_error = ibase_errmsg();
die($conn_error);
}
?>

O exemplo acima produzirá:

Server version: LI-V3.0.4.33054 Firebird 3.0
Server implementation: Firebird/Linux/AMD/Intel/x64
Server users: Array
(
    [0] => Array
        (
            [user_name] => SYSDBA
            [first_name] => Sql
            [middle_name] => Server
            [last_name] => Administrator
            [user_id] => 0
            [group_id] => 0
        )

)

Server directory: /etc/firebird/
Server lock path: /tmp/firebird/
Server lib path: /usr/lib64/firebird/lib/
Path of user db: /var/lib/firebird/secdb/security3.fdb
Established connections: Array
(
    [attachments] => 3
    [databases] => 2
    [0] => /srv/firebird/poss.fdb
    [1] => /srv/firebird/employees.fdb
)


Connect to the service manager

  • « ibase_server_info
  • ibase_service_detach »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Connect to the service manager

ibase_service_attach

(PHP 5, PHP 7 < 7.4.0)

ibase_service_attach — Connect to the service manager

Descrição

ibase_service_attach(string $host, string $dba_username, string $dba_password): resource|false

Parâmetros

host

The name or ip address of the database host. You can define the port by adding '/' and port number. If no port is specified, port 3050 will be used.

dba_username

The name of any valid user.

dba_password

The user's password.

Valor Retornado

Returns a Interbase / Firebird link identifier on success ou false em caso de falha.

Exemplos

Exemplo #1 ibase_service_attach() example

<?php
// Attach to the remote Firebird server by ip address
if (($service = ibase_service_attach('10.1.1.199', 'sysdba', 'masterkey')) != FALSE) {

// Successfully attached.
// Fetch server version (something like 'LI-V3.0.4.33054 Firebird 3.0')
$server_version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

// Fetch server implementation (something like 'Firebird/Linux/AMD/Intel/x64')
$server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

// Detach from server (disconnect)
ibase_service_detach($service);

// Output the info
echo "Server version: " . $server_version . "<br/>";
echo "Server implementation: " . $server_implementation;
}
else {
// Output message on error
$conn_error = ibase_errmsg();
die($conn_error);
}

?>

Exemplo #2 ibase_service_attach() example using hostname/port syntax

<?php
// Attach to the remote Firebird server by name. Use Port 3050.
if (($service = ibase_service_attach('FB-SRV-01.contoso.local/3050', 'sysdba', 'masterkey')) != FALSE) {

// Successfully attached.
// Fetch server version (something like 'LI-V3.0.4.33054 Firebird 3.0')
$server_version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

// Fetch server implementation (something like 'Firebird/Linux/AMD/Intel/x64')
$server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

// Detach from server (disconnect)
ibase_service_detach($service);

// Output the info
echo "Server version: " . $server_version . "<br/>";
echo "Server implementation: " . $server_implementation;
}
else {
// Output message on error
$conn_error = ibase_errmsg();
die($conn_error);
}

?>

Veja Também

  • ibase_service_detach() - Disconnect from the service manager


Disconnect from the service manager

  • « ibase_service_attach
  • ibase_set_event_handler »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Disconnect from the service manager

ibase_service_detach

(PHP 5, PHP 7 < 7.4.0)

ibase_service_detach — Disconnect from the service manager

Descrição

ibase_service_detach(resource $service_handle): bool

Parâmetros

service_handle

A previously created connection to the database server.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ibase_service_detach() example

<?php
// Attach to the remote Firebird server by ip address
if (($service = ibase_service_attach('10.1.1.199', 'sysdba', 'masterkey')) != FALSE) {

// Successfully attached.
// Fetch server version (something like 'LI-V3.0.4.33054 Firebird 3.0')
$server_version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

// Fetch server implementation (something like 'Firebird/Linux/AMD/Intel/x64')
$server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

// Detach from server (disconnect)
if(ibase_service_detach($service) == FALSE) {
echo "Error on service detach.";
}
else {
echo "Successfully detached from service.";
}

}
else {
// Output message on error
$conn_error = ibase_errmsg();
die($conn_error);
}

?>


Register a callback function to be called when events are posted

  • « ibase_service_detach
  • ibase_trans »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Register a callback function to be called when events are posted

ibase_set_event_handler

(PHP 5, PHP 7 < 7.4.0)

ibase_set_event_handler — Register a callback function to be called when events are posted

Descrição

ibase_set_event_handler(callable $event_handler, string $event_name, string ...$even_names): resource
ibase_set_event_handler(
resource $connection,
callable $event_handler,
string $event_name,
string ...$event_names
): resource

This function registers a PHP user function as event handler for the specified events.

Parâmetros

event_handler

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. This function accepts up to 15 event arguments.

event_name

An event name.

event_names

At most 15 events allowed.

Valor Retornado

The return value is an event resource. This resource can be used to free the event handler using ibase_free_event_handler().

Exemplos

Exemplo #1 ibase_set_event_handler() example

<?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");
?>

Veja Também

  • ibase_free_event_handler() - Cancela um manipulador de eventos registrado
  • ibase_wait_event() - Espera por um evento ser postado pelo banco de dados


Begin a transaction

  • « ibase_set_event_handler
  • ibase_wait_event »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Begin a transaction

ibase_trans

(PHP 5, PHP 7 < 7.4.0)

ibase_trans — Begin a transaction

Descrição

ibase_trans(int $trans_args = ?, resource $link_identifier = ?): resource
ibase_trans(resource $link_identifier = ?, int $trans_args = ?): resource

Begins a transaction.

Nota:

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:

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().

Parâmetros

trans_args

trans_args can be a combination of IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT and IBASE_NOWAIT.

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

Valor Retornado

Returns a transaction handle, or false on error.


Espera por um evento ser postado pelo banco de dados

  • « ibase_trans
  • IBM DB2 »
  • PHP Manual
  • Funções para Firebird/InterBase
  • Espera por um evento ser postado pelo banco de dados

ibase_wait_event

(PHP 5, PHP 7 < 7.4.0)

ibase_wait_event — Espera por um evento ser postado pelo banco de dados

Descrição

ibase_wait_event(string $event_name, string ...$event_names): string
ibase_wait_event(resource $connection, string $event_name, string ...$event_names): string

Esta função suspende a execução do script até que um dos dos eventos especificados seja postado pelo banco de dados. O nome do evento que foi postado é retornado. Esta função aceita até 15 argumentos de eventos.

Parâmetros

event_name

O nome do evento.

event_names

Valor Retornado

Retorna o nome do evento que foi postado.

Veja Também

  • ibase_set_event_handler() - Register a callback function to be called when events are posted
  • ibase_free_event_handler() - Cancela um manipulador de eventos registrado


IBM DB2, Cloudscape and Apache Derby

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • IBM DB2 Funções
    • db2_autocommit — Returns or sets the AUTOCOMMIT state for a database connection
    • db2_bind_param — Binds a PHP variable to an SQL statement parameter
    • db2_client_info — Returns an object with properties that describe the DB2 database client
    • db2_close — Closes a database connection
    • db2_column_privileges — Returns a result set listing the columns and associated privileges for a table
    • db2_columns — Returns a result set listing the columns and associated metadata for a table
    • db2_commit — Commits a transaction
    • db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt
    • db2_conn_errormsg — Returns the last connection error message and SQLCODE value
    • db2_connect — Returns a connection to a database
    • db2_cursor_type — Returns the cursor type used by a statement resource
    • db2_escape_string — Used to escape certain characters
    • db2_exec — Executes an SQL statement directly
    • db2_execute — Executes a prepared SQL statement
    • db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set
    • db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set
    • db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set
    • db2_fetch_object — Returns an object with properties representing columns in the fetched row
    • db2_fetch_row — Sets the result set pointer to the next row or requested row
    • db2_field_display_size — Returns the maximum number of bytes required to display a column
    • db2_field_name — Returns the name of the column in the result set
    • db2_field_num — Returns the position of the named column in a result set
    • db2_field_precision — Returns the precision of the indicated column in a result set
    • db2_field_scale — Returns the scale of the indicated column in a result set
    • db2_field_type — Returns the data type of the indicated column in a result set
    • db2_field_width — Returns the width of the current value of the indicated column in a result set
    • db2_foreign_keys — Returns a result set listing the foreign keys for a table
    • db2_free_result — Frees resources associated with a result set
    • db2_free_stmt — Frees resources associated with the indicated statement resource
    • db2_get_option — Retrieves an option value for a statement resource or a connection resource
    • db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection
    • db2_lob_read — Gets a user defined size of LOB files with each invocation
    • db2_next_result — Requests the next result set from a stored procedure
    • db2_num_fields — Returns the number of fields contained in a result set
    • db2_num_rows — Returns the number of rows affected by an SQL statement
    • db2_pclose — Closes a persistent database connection
    • db2_pconnect — Returns a persistent connection to a database
    • db2_prepare — Prepares an SQL statement to be executed
    • db2_primary_keys — Returns a result set listing primary keys for a table
    • db2_procedure_columns — Returns a result set listing stored procedure parameters
    • db2_procedures — Returns a result set listing the stored procedures registered in a database
    • db2_result — Returns a single column from a row in the result set
    • db2_rollback — Rolls back a transaction
    • db2_server_info — Returns an object with properties that describe the DB2 database server
    • db2_set_option — Set options for connection or statement resources
    • db2_special_columns — Returns a result set listing the unique row identifier columns for a table
    • db2_statistics — Returns a result set listing the index and statistics for a table
    • db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement
    • db2_stmt_errormsg — Returns a string containing the last SQL statement error message
    • db2_table_privileges — Returns a result set listing the tables and associated privileges in a database
    • db2_tables — Returns a result set listing the tables and associated metadata in a database


Introdução

These functions enable you to access IBM DB2 Universal Database, IBM Cloudscape, and Apache Derby databases using the DB2 Call Level Interface (DB2 CLI).


Dependências

To connect to IBM DB2 Universal Database for Linux, UNIX, and Windows, or IBM Cloudscape, or Apache Derby, you must install an IBM DB2 Universal Database client on the same computer on which you are running PHP. The extension has been developed and tested with DB2 Version 8.2.

To connect to IBM DB2 Universal Database for z/OS or iSeries, you also require IBM DB2 Connect or the equivalent DRDA gateway software.

Requirements on Linux or Unix

The user invoking the PHP executable or SAPI must specify the DB2 instance before accessing these functions. You can set the name of the DB2 instance in php.ini using the ibm_db2.instance_name configuration option, or you can source the DB2 instance profile before invoking the PHP executable.

If you created a DB2 instance named db2inst1 in /home/db2inst1/, for example, you can add the following line to php.ini:

ibm_db2.instance_name=db2inst1
If you do not set this option in php.ini, you must issue the following command to modify your environment variables to enable access to DB2:
bash$ source /home/db2inst1/sqllib/db2profile
To enable your PHP-enabled Web server to access these functions, you must either set the ibm_db2.instance_name configuration option in php.ini, or source the DB2 instance environment in your Web server start script (typically /etc/init.d/httpd or /etc/init.d/apache).


Instalação

To build the ibm_db2 extension, the DB2 application development header files and libraries must be installed on the system. DB2 does not install these by default, so it may be necessary to return to the DB2 installer and add this option. The DB2 Application Development Client includes the header files and is freely available for download from the IBM DB2 Universal Database » support site.

If the DB2 application development header files and libraries are added to a Linux or Unix operating system on which DB2 was already installed, the command db2iupdt -e must be issued to update the symbolic links to the header files and libraries in the DB2 instances.

ibm_db2 is a » PECL extension, so follow the instructions in Instalação das extensões PECL to install the ibm_db2 extension for PHP. Issue the configure command to point to the location of the DB2 header files and libraries as follows:

bash$ ./configure --with-IBM_DB2=/path/to/DB2
The configure command defaults to /opt/IBM/db2/V8.1.

Nota: Note for IIS users

If the ibm_db2 driver is being used with Microsoft Internet Information Server (IIS), it may be necessary to do the following:

  • Install DB2 with extended operating system security.
  • Add the PHP binary path to the PATH system environment variable (default C:\php\).
  • Create another system environment variable equal to the path where the PHP.INI file is located (eg: PHPRC = C:\php\).
  • Add the IUSR_COMPUTERNAME to the DB2USERS group.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

ibm_db2 Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
ibm_db2.binmode | "1" | INI_ALL |
ibm_db2.i5_all_pconnect | "0" | INI_SYSTEM | Available as of ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | INI_SYSTEM | Available as of ibm_db2 1.4.9.
ibm_db2.i5_blank_userid | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_char_trim | "0" | INI_SYSTEM | Available as of ibm_db2 2.1.0.
ibm_db2.i5_dbcs_alloc | "0" | INI_SYSTEM | Available as of ibm_db2 1.5.0.
ibm_db2.i5_guard_profile | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_ignore_userid | "0" | INI_SYSTEM | Available as of ibm_db2 1.8.0.
ibm_db2.i5_job_sort | "0" | INI_SYSTEM | Available as of ibm_db2 1.8.4.
ibm_db2.i5_log_verbose | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_max_pconnect | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_override_ccsid | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_servermode_subsystem | NULL | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_sys_naming | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.instance_name | NULL | INI_SYSTEM | Available as of ibm_db2 1.0.2.

Aqui está uma breve explicação das diretivas de configuração.

ibm_db2.binmode int

This option controls the mode used for converting to and from binary data in the PHP application.

  • 1 (DB2_BINARY)

  • 2 (DB2_CONVERT)

  • 3 (DB2_PASSTHRU)

ibm_db2.i5_all_pconnect int

This option forces all connections to be persistent on IBM i. Basically, all db2_connect() calls transparently become db2_pconnect() calls. By default, this option is 0. This option is provided as a convenience for cases where persistent connections are faster. It should not be used in new applications.

  • 0 - Persistent and non-persistent connections can be made.

  • 1 - All connections are persistent.

ibm_db2.i5_allow_commit int

This option controls the transaction isolation mode used. By default, this option is 0, so commitment control isn't used. This option can be overriden when connecting if the array key i5_commit is set in the connection options array passed to db2_connect() or db2_pconnect().

  • 0 - commitment control is not used

  • 1 - read uncommitted, dirty reads possible.

  • 2 - read committed, dirty reads are not possible.

  • 3 - repeatable read, dirty reads and non-repeatable reads are not possible

  • 4 - serializeable, dirty reads, non-repeatable reads, and phantoms are not possible

ibm_db2.i5_blank_userid int

This controls if a blank user ID should be allowed on IBM i. By default, this option is 0. Unlike ibm_db2.i5_ignore_userid, this option doesn't force all user IDs to be empty or change job behaviour, but simply allows an empty user ID to be passed, for connecting to Db2 as the current user.

  • 0 - Don't allow a blank user ID to be passed.

  • 1 - Allow a blank user ID to be passed.

ibm_db2.i5_char_trim int

This option controls if the end of strings are trimmed on IBM i. Since many tables use fixed column sizes padded with spaces, this is provided as a convenience. By default, this option is 0.

  • 0 - Columns are not trimmed.

  • 1 - Spaces at the end of returned character columns are removed.

ibm_db2.i5_dbcs_alloc int

This options affects the internal buffer allocation strategy on IBM i. By default, this option is 0. When this option is set, buffers are allocated with a much larger size, in case the database underestimates a string's size when converting between encodings. This option uses six times as much memory for buffers (to account for the largest possible UTF-8 sequences), but may be needed if truncated data is returned.

  • 0 - Minimum size buffers are allocated.

  • 1 - Larger size buffers are allocated.

ibm_db2.i5_guard_profile int

This option checks if the database user profile was switched when connecting to a persistent database connection on IBM i, and if so, disconnects from the database. By default, this option is set to 0.

  • 0 - Don't check for profile swaps.

  • 1 - Check for profile swaps and disconnect if so.

ibm_db2.i5_log_verbose int

This option sets if SQL diagnostic messages like warnings and errors are always sent to the PHP error log on IBM i. Normally, only a brief message on failure is sent (such as "statement execute failed") to the PHP error log, as this option is set to 0 by default. Note that you can still and should call i.e. db2_stmt_errormsg() manually as part of checking if functions fail.

  • 0 - Only logs brief messages.

  • 1 - Logs the SQL diagnostic message in addition to the brief message.

ibm_db2.i5_ignore_userid int

This option ignores the user ID when connecting to the database when running on IBM i, and runs SQL/CLI functionality inside of the PHP job, instead of a separate job. By default, this option is 0. When enabled, it no longer uses a separate database server job, and always uses the current user profile for the database, ignoring the username and password passed to db2_connect() and db2_pconnect().

  • 0 - Uses the specified credentials, and use an SQL/CLI server job.

  • 1 - Always use blank credentials, and run SQL/CLI in the PHP job.

ibm_db2.i5_job_sort int

Controls the job sort option on IBM i. By default, this option is 0. This corresponds to the IBM i SQL/CLI SQL_ATTR_CONN_SORT_SEQUENCE attribute.

  • 0 - Uses the *HEX sort option, sorting by bytes.

  • 1 - Uses the job sort sequence set for the PHP job.

  • 2 - Uses the job sort sequence set for the database job.

ibm_db2.i5_max_pconnect int

This will affect how many times a persistent connection can be reused when running on IBM i. By default, this is set to 0, which means a persistent connection can always be reused. This option can help work around issues in a long-running database job (i.e. if a procedure is leaking memory), but is obviously not a long-term fix.

ibm_db2.i5_override_ccsid int

The PASE CCSID to use for character conversions from EBCDIC on IBM i. By default, this is 0, which will select the default PASE job CCSID, which comes from the PASE locale settings. For example, setting this to 1208 will use UTF-8. This should only be modified if the PASE job CCSID isn't the expected CCSID, and the locale cannot be modified.

To learn more about CCSIDs on IBM i, consult the » IBM documentation. To learn how locales on IBM i PASE are mapped to CCSIDs, consult the » IBM documentation.

ibm_db2.i5_sys_naming int

This option controls the naming mode when connecting to an IBM i system. By default, this option is 0. The naming mode affects how names are resolved and the allowed syntax for names. When set to 0, this uses periods to qualify names and uses the default library or user ID to resolve names. When set to 1, this uses slashes to qualify names and uses the job library list to resolve names.

  • 0 - Uses the SQL naming mode ("SCHEMA.TABLE").

  • 1 - Uses the system naming mode ("LIBRARY/FILE").

To learn more about naming modes on IBM i, consult the » IBM documentation.

ibm_db2.i5_servermode-subsystem string

This option changes which subsystem database server jobs run under on IBM i. By default, this option is null, so jobs will run under the default subsystem for QSQSRVR jobs.

ibm_db2.instance_name string

On Linux and UNIX operating systems, this option defines the name of the instance to use for cataloged database connections. By default, this option is null. If this option is set, its value overrides the DB2INSTANCE environment variable setting.

This option is ignored on Windows operating systems.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

The ibm_db2 extension returns connection resources, statement resources, and result set resources.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

DB2_BINARY (int)
Specifies that binary data shall be returned as is. This is the default mode.
DB2_CONVERT (int)
Specifies that binary data shall be converted to a hexadecimal encoding and returned as an ASCII string.
DB2_PASSTHRU (int)
Specifies that binary data shall be converted to a null value.
DB2_SCROLLABLE (int)
Specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.
DB2_FORWARD_ONLY (int)
Specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.
DB2_PARAM_IN (int)
Specifies the PHP variable should be bound as an IN parameter for a stored procedure.
DB2_PARAM_OUT (int)
Specifies the PHP variable should be bound as an OUT parameter for a stored procedure.
DB2_PARAM_INOUT (int)
Specifies the PHP variable should be bound as an INOUT parameter for a stored procedure.
DB2_PARAM_FILE (int)
Specifies that the column should be bound directly to a file for input.
DB2_AUTOCOMMIT_ON (int)
Specifies that autocommit should be turned on.
DB2_AUTOCOMMIT_OFF (int)
Specifies that autocommit should be turned off.
DB2_DOUBLE (int)
Specifies that the variable should be bound as a DOUBLE, FLOAT, or REAL data type.
DB2_LONG (int)
Specifies that the variable should be bound as a SMALLINT, INTEGER, or BIGINT data type.
DB2_CHAR (int)
Specifies that the variable should be bound as a CHAR or VARCHAR data type.
DB2_CASE_NATURAL (int)
Specifies that column names will be returned in their natural case.
DB2_CASE_LOWER (int)
Specifies that column names will be returned in lower case.
DB2_CASE_UPPER (int)
Specifies that column names will be returned in upper case.
DB2_DEFERRED_PREPARE_ON (int)
Specifies that deferred prepare should be turned on for the specified statement resource.
DB2_DEFERRED_PREPARE_OFF (int)
Specifies that deferred prepare should be turned off for the specified statement resource.


IBM DB2 Funções

Índice

  • db2_autocommit — Returns or sets the AUTOCOMMIT state for a database connection
  • db2_bind_param — Binds a PHP variable to an SQL statement parameter
  • db2_client_info — Returns an object with properties that describe the DB2 database client
  • db2_close — Closes a database connection
  • db2_column_privileges — Returns a result set listing the columns and associated privileges for a table
  • db2_columns — Returns a result set listing the columns and associated metadata for a table
  • db2_commit — Commits a transaction
  • db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg — Returns the last connection error message and SQLCODE value
  • db2_connect — Returns a connection to a database
  • db2_cursor_type — Returns the cursor type used by a statement resource
  • db2_escape_string — Used to escape certain characters
  • db2_exec — Executes an SQL statement directly
  • db2_execute — Executes a prepared SQL statement
  • db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object — Returns an object with properties representing columns in the fetched row
  • db2_fetch_row — Sets the result set pointer to the next row or requested row
  • db2_field_display_size — Returns the maximum number of bytes required to display a column
  • db2_field_name — Returns the name of the column in the result set
  • db2_field_num — Returns the position of the named column in a result set
  • db2_field_precision — Returns the precision of the indicated column in a result set
  • db2_field_scale — Returns the scale of the indicated column in a result set
  • db2_field_type — Returns the data type of the indicated column in a result set
  • db2_field_width — Returns the width of the current value of the indicated column in a result set
  • db2_foreign_keys — Returns a result set listing the foreign keys for a table
  • db2_free_result — Frees resources associated with a result set
  • db2_free_stmt — Frees resources associated with the indicated statement resource
  • db2_get_option — Retrieves an option value for a statement resource or a connection resource
  • db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection
  • db2_lob_read — Gets a user defined size of LOB files with each invocation
  • db2_next_result — Requests the next result set from a stored procedure
  • db2_num_fields — Returns the number of fields contained in a result set
  • db2_num_rows — Returns the number of rows affected by an SQL statement
  • db2_pclose — Closes a persistent database connection
  • db2_pconnect — Returns a persistent connection to a database
  • db2_prepare — Prepares an SQL statement to be executed
  • db2_primary_keys — Returns a result set listing primary keys for a table
  • db2_procedure_columns — Returns a result set listing stored procedure parameters
  • db2_procedures — Returns a result set listing the stored procedures registered in a database
  • db2_result — Returns a single column from a row in the result set
  • db2_rollback — Rolls back a transaction
  • db2_server_info — Returns an object with properties that describe the DB2 database server
  • db2_set_option — Set options for connection or statement resources
  • db2_special_columns — Returns a result set listing the unique row identifier columns for a table
  • db2_statistics — Returns a result set listing the index and statistics for a table
  • db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg — Returns a string containing the last SQL statement error message
  • db2_table_privileges — Returns a result set listing the tables and associated privileges in a database
  • db2_tables — Returns a result set listing the tables and associated metadata in a database


Returns or sets the AUTOCOMMIT state for a database connection

  • « IBM DB2 Funções
  • db2_bind_param »
  • PHP Manual
  • IBM DB2 Funções
  • Returns or sets the AUTOCOMMIT state for a database connection

db2_autocommit

(PECL ibm_db2 >= 1.0.0)

db2_autocommit — Returns or sets the AUTOCOMMIT state for a database connection

Descrição

db2_autocommit(resource $connection, int $value = ?): int|bool

Sets or gets the AUTOCOMMIT behavior of the specified connection resource.

Parâmetros

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

value

One of the following constants:

DB2_AUTOCOMMIT_OFF

Turns AUTOCOMMIT off.

DB2_AUTOCOMMIT_ON

Turns AUTOCOMMIT on.

Valor Retornado

When db2_autocommit() receives only the connection parameter, it returns the current state of AUTOCOMMIT for the requested connection as an integer value. A value of DB2_AUTOCOMMIT_OFF indicates that AUTOCOMMIT is off, while a value of DB2_AUTOCOMMIT_ON indicates that AUTOCOMMIT is on.

When db2_autocommit() receives both the connection parameter and autocommit parameter, it attempts to set the AUTOCOMMIT state of the requested connection to the corresponding state. Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Retrieving the AUTOCOMMIT value for a connection

In the following example, a connection which has been created with AUTOCOMMIT turned off is tested with the db2_autocommit() function.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);
$ac = db2_autocommit($conn);
if ($ac == DB2_AUTOCOMMIT_OFF) {
print "$ac -- AUTOCOMMIT is off.";
} else {
print "$ac -- AUTOCOMMIT is on.";
}
?>

O exemplo acima produzirá:

0 -- AUTOCOMMIT is off.

Exemplo #2 Setting the AUTOCOMMIT value for a connection

In the following example, a connection which was initially created with AUTOCOMMIT turned off has its behavior changed to turn AUTOCOMMIT on.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);

// Turn AUTOCOMMIT on
$rc = db2_autocommit($conn, DB2_AUTOCOMMIT_ON);
if ($rc) {
print "Turning AUTOCOMMIT on succeeded.\n";
}

// Check AUTOCOMMIT state
$ac = db2_autocommit($conn);
if ($ac == DB2_AUTOCOMMIT_OFF) {
print "$ac -- AUTOCOMMIT is off.";
} else {
print "$ac -- AUTOCOMMIT is on.";
}
?>

O exemplo acima produzirá:

Turning AUTOCOMMIT on succeeded.
1 -- AUTOCOMMIT is on.

Veja Também

  • db2_connect() - Returns a connection to a database
  • db2_pconnect() - Returns a persistent connection to a database


Binds a PHP variable to an SQL statement parameter

  • « db2_autocommit
  • db2_client_info »
  • PHP Manual
  • IBM DB2 Funções
  • Binds a PHP variable to an SQL statement parameter

db2_bind_param

(PECL ibm_db2 >= 1.0.0)

db2_bind_param — Binds a PHP variable to an SQL statement parameter

Descrição

db2_bind_param(
resource $stmt,
int $parameter_number,
string $variable_name,
int $parameter_type = DB2_PARAM_IN,
int $data_type = 0,
int $precision = -1,
int $scale = 0
): bool

Binds a PHP variable to an SQL statement parameter in a statement resource returned by db2_prepare(). This function gives you more control over the parameter type, data type, precision, and scale for the parameter than simply passing the variable as part of the optional input array to db2_execute().

Parâmetros

stmt

A prepared statement returned from db2_prepare().

parameter_number

Specifies the 1-indexed position of the parameter in the prepared statement.

variable_name

A string specifying the name of the PHP variable to bind to the parameter specified by parameter_number.

parameter_type

A constant specifying whether the PHP variable should be bound to the SQL parameter as an input parameter (DB2_PARAM_IN), an output parameter (DB2_PARAM_OUT), or as a parameter that accepts input and returns output (DB2_PARAM_INOUT). To avoid memory overhead, you can also specify DB2_PARAM_FILE to bind the PHP variable to the name of a file that contains large object (BLOB, CLOB, or DBCLOB) data.

data_type

A constant specifying the SQL data type that the PHP variable should be bound as: one of DB2_BINARY, DB2_CHAR, DB2_DOUBLE, or DB2_LONG .

precision

Specifies the precision with which the variable should be bound to the database. This parameter can also be used for retrieving XML output values from stored procedures. A non-negative value specifies the maximum size of the XML data that will be retrieved from the database. If this parameter is not used, a default of 1MB will be assumed for retrieving the XML output value from the stored procedure.

scale

Specifies the scale with which the variable should be bound to the database.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Binding PHP variables to a prepared statement

The SQL statement in the following example uses two input parameters in the WHERE clause. We call db2_bind_param() to bind two PHP variables to the corresponding SQL parameters. Notice that the PHP variables do not have to be declared or assigned before the call to db2_bind_param(); in the example, $lower_limit is assigned a value before the call to db2_bind_param(), but $upper_limit is assigned a value after the call to db2_bind_param(). The variables must be bound and, for parameters that accept input, must have any value assigned, before calling db2_execute().

<?php

$sql = 'SELECT name, breed, weight FROM animals
WHERE weight > ? AND weight < ?';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

// We can declare the variable before calling db2_bind_param()
$lower_limit = 1;

db2_bind_param($stmt, 1, "lower_limit", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "upper_limit", DB2_PARAM_IN);

// We can also declare the variable after calling db2_bind_param()
$upper_limit = 15.0;

if (db2_execute($stmt)) {
while ($row = db2_fetch_array($stmt)) {
print "{$row[0]}, {$row[1]}, {$row[2]}\n";
}
}
?>

O exemplo acima produzirá:

Pook, cat, 3.2
Rickety Ride, goat, 9.7
Peaches, dog, 12.3

Exemplo #2 Calling stored procedures with IN and OUT parameters

The stored procedure match_animal in the following example accepts three different parameters:

  1. an input (IN) parameter that accepts the name of the first animal as input

  2. an input-output (INOUT) parameter that accepts the name of the second animal as input and returns the string TRUE if an animal in the database matches that name

  3. an output (OUT) parameter that returns the sum of the weight of the two identified animals

In addition, the stored procedure returns a result set consisting of the animals listed in alphabetic order starting at the animal corresponding to the input value of the first parameter and ending at the animal corresponding to the input value of the second parameter.

<?php

$sql = 'CALL match_animal(?, ?, ?)';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

$name = "Peaches";
$second_name = "Rickety Ride";
$weight = 0;

db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "second_name", DB2_PARAM_INOUT);
db2_bind_param($stmt, 3, "weight", DB2_PARAM_OUT);

print "Values of bound parameters _before_ CALL:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";

if (db2_execute($stmt)) {
print "Values of bound parameters _after_ CALL:\n";
print " 1: {$name} 2: {$second_name} 3: {$weight}\n\n";

print "Results:\n";
while ($row = db2_fetch_array($stmt)) {
print " {$row[0]}, {$row[1]}, {$row[2]}\n";
}
}
?>

O exemplo acima produzirá:

Values of bound parameters _before_ CALL:
  1: Peaches 2: Rickety Ride 3: 0

Values of bound parameters _after_ CALL:
  1: Peaches 2: TRUE 3: 22

Results:
  Peaches, dog, 12.3
  Pook, cat, 3.2
  Rickety Ride, goat, 9.7

Exemplo #3 Inserting a binary large object (BLOB) directly from a file

The data for large objects are typically stored in files, such as XML documents or audio files. Rather than reading an entire file into a PHP variable, and then binding that PHP variable into an SQL statement, you can avoid some memory overhead by binding the file directly to the input parameter of your SQL statement. The following example demonstrates how to bind a file directly into a BLOB column.

<?php
$stmt = db2_prepare($conn, "INSERT INTO animal_pictures(picture) VALUES (?)");

$picture = "/opt/albums/spook/grooming.jpg";
$rc = db2_bind_param($stmt, 1, "picture", DB2_PARAM_FILE);
$rc = db2_execute($stmt);
?>

Veja Também

  • db2_execute() - Executes a prepared SQL statement
  • db2_prepare() - Prepares an SQL statement to be executed


Returns an object with properties that describe the DB2 database client

  • « db2_bind_param
  • db2_close »
  • PHP Manual
  • IBM DB2 Funções
  • Returns an object with properties that describe the DB2 database client

db2_client_info

(PECL ibm_db2 >= 1.1.1)

db2_client_info — Returns an object with properties that describe the DB2 database client

Descrição

db2_client_info(resource $connection): stdClass|false

This function returns an object with read-only properties that return information about the DB2 database client. The following table lists the DB2 client properties:

DB2 client properties
Property name | Return type | Description
APPL_CODEPAGE | int | The application code page.
CONN_CODEPAGE | int | The code page for the current connection.
DATA_SOURCE_NAME | string | The data source name (DSN) used to create the current connection to the database.
DRIVER_NAME | string | The name of the library that implements the DB2 Call Level Interface (CLI) specification.
DRIVER_ODBC_VER | string | The version of ODBC that the DB2 client supports. This returns a string "MM.mm" where MM is the major version and mm is the minor version. The DB2 client always returns "03.51".
DRIVER_VER | string | The version of the client, in the form of a string "MM.mm.uuuu" where MM is the major version, mm is the minor version, and uuuu is the update. For example, "08.02.0001" represents major version 8, minor version 2, update 1.
ODBC_SQL_CONFORMANCE string

The level of ODBC SQL grammar supported by the client:

MINIMUM

Supports the minimum ODBC SQL grammar.

CORE

Supports the core ODBC SQL grammar.

EXTENDED

Supports extended ODBC SQL grammar.

ODBC_VER | string | The version of ODBC that the ODBC driver manager supports. This returns a string "MM.mm.rrrr" where MM is the major version, mm is the minor version, and rrrr is the release. The DB2 client always returns "03.01.0000".

Parâmetros

connection

Specifies an active DB2 client connection.

Valor Retornado

Returns an object on a successful call, ou false em caso de falha

Exemplos

Exemplo #1 A db2_client_info() example

To retrieve information about the client, you must pass a valid database connection resource to db2_client_info().

<?php
$conn = db2_connect( 'SAMPLE', 'db2inst1', 'ibmdb2' );
$client = db2_client_info( $conn );

if ($client) {
echo "DRIVER_NAME: "; var_dump( $client->DRIVER_NAME );
echo "DRIVER_VER: "; var_dump( $client->DRIVER_VER );
echo "DATA_SOURCE_NAME: "; var_dump( $client->DATA_SOURCE_NAME );
echo "DRIVER_ODBC_VER: "; var_dump( $client->DRIVER_ODBC_VER );
echo "ODBC_VER: "; var_dump( $client->ODBC_VER );
echo "ODBC_SQL_CONFORMANCE: "; var_dump( $client->ODBC_SQL_CONFORMANCE );
echo "APPL_CODEPAGE: "; var_dump( $client->APPL_CODEPAGE );
echo "CONN_CODEPAGE: "; var_dump( $client->CONN_CODEPAGE );
}
else {
echo "Error retrieving client information.
Perhaps your database connection was invalid.";
}
db2_close($conn);

?>

O exemplo acima produzirá:

DRIVER_NAME: string(8) "libdb2.a"
DRIVER_VER: string(10) "08.02.0001"
DATA_SOURCE_NAME: string(6) "SAMPLE"
DRIVER_ODBC_VER: string(5) "03.51"
ODBC_VER: string(10) "03.01.0000"
ODBC_SQL_CONFORMANCE: string(8) "EXTENDED"
APPL_CODEPAGE: int(819)
CONN_CODEPAGE: int(819)

Veja Também

  • db2_server_info() - Returns an object with properties that describe the DB2 database server


Closes a database connection

  • « db2_client_info
  • db2_column_privileges »
  • PHP Manual
  • IBM DB2 Funções
  • Closes a database connection

db2_close

(PECL ibm_db2 >= 1.0.0)

db2_close — Closes a database connection

Descrição

db2_close(resource $connection): bool

This function closes a DB2 client connection created with db2_connect() and returns the corresponding resources to the database server.

If you attempt to close a persistent DB2 client connection created with db2_pconnect(), the close request is ignored and the persistent DB2 client connection remains available for the next caller.

Parâmetros

connection

Specifies an active DB2 client connection.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Closing a connection

The following example demonstrates a successful attempt to close a connection to an IBM DB2, Cloudscape, or Apache Derby database.

<?php
$conn = db2_connect('SAMPLE', 'db2inst1', 'ibmdb2');
$rc = db2_close($conn);
if ($rc) {
echo "Connection was successfully closed.";
}
?>

O exemplo acima produzirá:

Connection was successfully closed.

Veja Também

  • db2_connect() - Returns a connection to a database
  • db2_pclose() - Closes a persistent database connection
  • db2_pconnect() - Returns a persistent connection to a database


Returns a result set listing the columns and associated privileges for a table

  • « db2_close
  • db2_columns »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a result set listing the columns and associated privileges for a table

db2_column_privileges

(PECL ibm_db2 >= 1.0.0)

db2_column_privileges — Returns a result set listing the columns and associated privileges for a table

Descrição

db2_column_privileges(
resource $connection,
?string $qualifier = null,
?string $schema = null,
?string $table_name = null,
?string $column_name = null
): resource

Returns a result set listing the columns and associated privileges for a table.

Parâmetros

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. To match all schemas, pass null or an empty string.

table_name

The name of the table or view. To match all tables in the database, pass null or an empty string.

column_name

The name of the column. To match all columns in the table, pass null or an empty string.

Valor Retornado

Returns a statement resource with a result set containing rows describing the column privileges for columns matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema.
TABLE_NAME | Name of the table or view.
COLUMN_NAME | Name of the column.
GRANTOR | Authorization ID of the user who granted the privilege.
GRANTEE | Authorization ID of the user to whom the privilege was granted.
PRIVILEGE | The privilege for the column.
IS_GRANTABLE | Whether the GRANTEE is permitted to grant this privilege to other users.

Veja Também

  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the columns and associated metadata for a table

  • « db2_column_privileges
  • db2_commit »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a result set listing the columns and associated metadata for a table

db2_columns

(PECL ibm_db2 >= 1.0.0)

db2_columns — Returns a result set listing the columns and associated metadata for a table

Descrição

db2_columns(
resource $connection,
?string $qualifier = null,
?string $schema = null,
?string $table_name = null,
?string $column_name = null
): resource

Returns a result set listing the columns and associated metadata for a table.

Parâmetros

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. To match all schemas, pass '%'.

table_name

The name of the table or view. To match all tables in the database, pass null or an empty string.

column_name

The name of the column. To match all columns in the table, pass null or an empty string.

Valor Retornado

Returns a statement resource with a result set containing rows describing the columns matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema.
TABLE_NAME | Name of the table or view.
COLUMN_NAME | Name of the column.
DATA_TYPE | The SQL data type for the column represented as an integer value.
TYPE_NAME | A string representing the data type for the column.
COLUMN_SIZE | An integer value representing the size of the column.
BUFFER_LENGTH | Maximum number of bytes necessary to store data from this column.
DECIMAL_DIGITS | The scale of the column, or null where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or null (representing a data type for which radix is not applicable).
NULLABLE | An integer value representing whether the column is nullable or not.
REMARKS | Description of the column.
COLUMN_DEF | Default value for the column.
SQL_DATA_TYPE | An integer value representing the size of the column.
SQL_DATETIME_SUB | Returns an integer value representing a datetime subtype code, or null for SQL data types to which this does not apply.
CHAR_OCTET_LENGTH | Maximum length in octets for a character data type column, which matches COLUMN_SIZE for single-byte character set data, or null for non-character data types.
ORDINAL_POSITION | The 1-indexed position of the column in the table.
IS_NULLABLE | A string value where 'YES' means that the column is nullable and 'NO' means that the column is not nullable.

Veja Também

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Commits a transaction

  • « db2_columns
  • db2_conn_error »
  • PHP Manual
  • IBM DB2 Funções
  • Commits a transaction

db2_commit

(PECL ibm_db2 >= 1.0.0)

db2_commit — Commits a transaction

Descrição

db2_commit(resource $connection): bool

Commits an in-progress transaction on the specified connection resource and begins a new transaction. PHP applications normally default to AUTOCOMMIT mode, so db2_commit() is not necessary unless AUTOCOMMIT has been turned off for the connection resource.

Parâmetros

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • db2_autocommit() - Returns or sets the AUTOCOMMIT state for a database connection
  • db2_rollback() - Rolls back a transaction


Returns a string containing the SQLSTATE returned by the last connection attempt

  • « db2_commit
  • db2_conn_errormsg »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a string containing the SQLSTATE returned by the last connection attempt

db2_conn_error

(PECL ibm_db2 >= 1.0.0)

db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt

Descrição

db2_conn_error(?resource $connection = null): string

db2_conn_error() returns an SQLSTATE value representing the reason the last attempt to connect to a database failed. As db2_connect() returns false in the event of a failed connection attempt, you do not pass any parameters to db2_conn_error() to retrieve the SQLSTATE value.

If, however, the connection was successful but becomes invalid over time, you can pass the connection parameter to retrieve the SQLSTATE value for a specific connection.

To learn what the SQLSTATE value means, you can issue the following command at a DB2 Command Line Processor prompt: db2 '? sqlstate-value'. You can also call db2_conn_errormsg() to retrieve an explicit error message and the associated SQLCODE value.

Parâmetros

connection

A connection resource associated with a connection that initially succeeded, but which over time became invalid.

Valor Retornado

Returns the SQLSTATE value resulting from a failed connection attempt. Returns an empty string if there is no error associated with the last connection attempt.

Exemplos

Exemplo #1 Retrieving an SQLSTATE value for a failed connection attempt

The following example demonstrates how to return an SQLSTATE value after deliberately passing invalid parameters to db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
print "SQLSTATE value: " . db2_conn_error();
}
?>

O exemplo acima produzirá:

SQLSTATE value: 08001

Veja Também

  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_connect() - Returns a connection to a database
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns the last connection error message and SQLCODE value

  • « db2_conn_error
  • db2_connect »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the last connection error message and SQLCODE value

db2_conn_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_conn_errormsg — Returns the last connection error message and SQLCODE value

Descrição

db2_conn_errormsg(?resource $connection = null): string

db2_conn_errormsg() returns an error message and SQLCODE value representing the reason the last database connection attempt failed. As db2_connect() returns false in the event of a failed connection attempt, do not pass any parameters to db2_conn_errormsg() to retrieve the associated error message and SQLCODE value.

If, however, the connection was successful but becomes invalid over time, you can pass the connection parameter to retrieve the associated error message and SQLCODE value for a specific connection.

Parâmetros

connection

A connection resource associated with a connection that initially succeeded, but which over time became invalid.

Valor Retornado

Returns a string containing the error message and SQLCODE value resulting from a failed connection attempt. If there is no error associated with the last connection attempt, db2_conn_errormsg() returns an empty string.

Exemplos

Exemplo #1 Retrieving the error message returned by a failed connection attempt

The following example demonstrates how to return an error message and SQLCODE value after deliberately passing invalid parameters to db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
print db2_conn_errormsg();
}
?>

O exemplo acima produzirá:

[IBM][CLI Driver] SQL1013N  The database alias name
or database name "BADNAME" could not be found.  SQLSTATE=42705
 SQLCODE=-1013

Veja Também

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_connect() - Returns a connection to a database
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns a connection to a database

  • « db2_conn_errormsg
  • db2_cursor_type »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a connection to a database

db2_connect

(PECL ibm_db2 >= 1.0.0)

db2_connect — Returns a connection to a database

Descrição

db2_connect(
string $database,
?string $username,
?string $password,
array $options = []
): resource|false

Creates a new connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.

Parâmetros

database

For a cataloged connection to a database, database represents the database alias in the DB2 client catalog.

For an uncataloged connection to a database, database represents a complete connection string in the following format:

DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;
where the parameters represent the following values:
database

The name of the database.

hostname

The hostname or IP address of the database server.

port

The TCP/IP port on which the database is listening for requests.

username

The username with which you are connecting to the database.

password

The password with which you are connecting to the database.

username

The username with which you are connecting to the database.

For uncataloged connections, you must pass a null value or empty string.

password

The password with which you are connecting to the database.

For uncataloged connections, you must pass a null value or empty string.

options

An associative array of connection options that affect the behavior of the connection, where valid array keys include:

autocommit

Passing the DB2_AUTOCOMMIT_ON value turns autocommit on for this connection handle.

Passing the DB2_AUTOCOMMIT_OFF value turns autocommit off for this connection handle.

DB2_ATTR_CASE

Passing the DB2_CASE_NATURAL value specifies that column names are returned in natural case.

Passing the DB2_CASE_LOWER value specifies that column names are returned in lower case.

Passing the DB2_CASE_UPPER value specifies that column names are returned in upper case.

CURSOR

Passing the DB2_FORWARD_ONLY value specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

Passing the DB2_SCROLLABLE value specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.

The following new option is available in ibm_db2 version 1.7.0 and later.

trustedcontext

Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context on for this connection handle. This parameter cannot be set using db2_set_option().

This key works only if the database is cataloged (even if the database is local), or if you specify the full DSN when you create the connection.

To catalog the database, use following commands:

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later.

i5_lib

A character value that indicates the default library that will be used for resolving unqualified file references. This is not valid if the connection is using system naming mode.

i5_naming

DB2_I5_NAMING_ON value turns on DB2 UDB CLI iSeries system naming mode. Files are qualified using the slash (/) delimiter. Unqualified files are resolved using the library list for the job.

DB2_I5_NAMING_OFF value turns off DB2 UDB CLI default naming mode, which is SQL naming. Files are qualified using the period (.) delimiter. Unqualified files are resolved using either the default library or the current user ID.

i5_commit

The i5_commit attribute should be set before the db2_connect(). If the value is changed after the connection has been established, and the connection is to a remote data source, the change does not take effect until the next successful db2_connect() for the connection handle.

Nota:

The php.ini setting ibm_db2.i5_allow_commit==0 or DB2_I5_TXN_NO_COMMIT is the default, but may be overridden with the i5_commit option.

DB2_I5_TXN_NO_COMMIT - Commitment control is not used.

DB2_I5_TXN_READ_UNCOMMITTED - Dirty reads, nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Dirty reads are not possible. Nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_REPEATABLE_READ - Dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

DB2_I5_TXN_SERIALIZABLE - Transactions are serializable. Dirty reads, non-repeatable reads, and phantoms are not possible

i5_query_optimize

DB2_FIRST_IO All queries are optimized with the goal of returning the first page of output as fast as possible. This goal works well when the output is controlled by a user who is most likely to cancel the query after viewing the first page of output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.

DB2_ALL_IO All queries are optimized with the goal of running the entire query to completion in the shortest amount of elapsed time. This is a good option when the output of a query is being written to a file or report, or the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause. This is the default.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON value turns on DB2 6X allocation scheme for DBCS translation column size growth.

DB2_I5_DBCS_ALLOC_OFF value turns off DB2 6X allocation scheme for DBCS translation column size growth.

Note: php.ini setting ibm_db2.i5_dbcs_alloc==0 or DB2_I5_DBCS_ALLOC_OFF is the default, but may be overridden with the i5_dbcs_alloc option.

i5_date_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) date format yyyy-mm-dd is used. This is the default.

DB2_I5_FMT_USA - The United States date format mm/dd/yyyy is used.

DB2_I5_FMT_EUR - The European date format dd.mm.yyyy is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard date format yyyy-mm-dd is used.

DB2_I5_FMT_MDY - The date format mm/dd/yyyy is used.

DB2_I5_FMT_DMY - The date format dd/mm/yyyy is used.

DB2_I5_FMT_YMD - The date format yy/mm/dd is used.

DB2_I5_FMT_JUL - The Julian date format yy/ddd is used.

DB2_I5_FMT_JOB - The job default is used.

i5_date_sep

DB2_I5_SEP_SLASH - A slash ( / ) is used as the date separator. This is the default.

DB2_I5_SEP_DASH - A dash ( - ) is used as the date separator.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the date separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the date separator.

DB2_I5_SEP_BLANK - A blank is used as the date separator.

DB2_I5_SEP_JOB - The job default is used

i5_time_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) time format hh.mm.ss is used. This is the default.

DB2_I5_FMT_USA - The United States time format hh:mmxx is used, where xx is AM or PM.

DB2_I5_FMT_EUR - The European time format hh.mm.ss is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard time format hh:mm:ss is used.

DB2_I5_FMT_HMS - The hh:mm:ss format is used.

i5_time_sep

DB2_I5_SEP_COLON - A colon ( : ) is used as the time separator. This is the default.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the time separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the time separator.

DB2_I5_SEP_BLANK - A blank is used as the time separator.

DB2_I5_SEP_JOB - The job default is used.

i5_decimal_sep

DB2_I5_SEP_PERIOD - A period ( . ) is used as the decimal separator. This is the default.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the decimal separator.

DB2_I5_SEP_JOB - The job default is used.

The following new i5/OS option is available in ibm_db2 version 1.8.0 and later.

i5_libl

A character value that indicates the library list that will be used for resolving unqualified file references. Specify the library list elements separated by blanks 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Nota:

i5_libl calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.

Valor Retornado

Returns a connection handle resource if the connection attempt is successful. If the connection attempt fails, db2_connect() returns false.

Exemplos

Exemplo #1 Creating a cataloged connection

Cataloged connections require you to have previously cataloged the target database through the DB2 Command Line Processor (CLP) or DB2 Configuration Assistant.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$conn = db2_connect($database, $user, $password);

if ($conn) {
echo "Connection succeeded.";
db2_close($conn);
}
else {
echo "Connection failed.";
}
?>

O exemplo acima produzirá:

Connection succeeded.

Exemplo #2 Creating an uncataloged connection

An uncataloged connection enables you to dynamically connect to a database.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$hostname = 'localhost';
$port = 50000;

$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
"HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";
$conn = db2_connect($conn_string, '', '');

if ($conn) {
echo "Connection succeeded.";
db2_close($conn);
}
else {
echo "Connection failed.";
}
?>

O exemplo acima produzirá:

Connection succeeded.

Exemplo #3 Creating a connection with autocommit off by default

Passing an array of options to db2_connect() enables you to modify the default behavior of the connection handle.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);

$conn = db2_connect($database, $user, $password, $options);

if ($conn) {
echo "Connection succeeded.\n";
if (db2_autocommit($conn)) {
echo "Autocommit is on.\n";
}
else {
echo "Autocommit is off.\n";
}
db2_close($conn);
}
else {
echo "Connection failed.";
}
?>

O exemplo acima produzirá:

Connection succeeded.
Autocommit is off.

Exemplo #4 i5/OS best performance

To achieve best performance for your i5/OS ibm_db2 1.5.1 PHP application use the default host, userid, and password for your db2_connect().

<?php
$library = "ADC";
$i5 = db2_connect("", "", "", array("i5_lib"=>"qsys2"));
$result = db2_exec($i5,
"select * from systables where table_schema = '$library'");
while ($row = db2_fetch_both($result)) {
echo $row['TABLE_NAME']."</br>";
}
db2_close($i5);
?>

O exemplo acima produzirá:

ANIMALS
NAMES
PICTURES

Exemplo #5 Using trusted context

The following example shows how to enable trusted context, switch users, and get the current user ID.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_connect($dsn, "", "", $options);
if($tc_conn) {
echo "Explicit trusted connection succeeded.\n";

if(db2_get_option($tc_conn, "trustedcontext")) {
$userBefore = db2_get_option($tc_conn, "trusted_user");

//Do some work as user 1.

//Switching to trusted user.
$parameters = array("trusted_user" => $tc_user,
"trusted_password" => $tcuser_pass);
$res = db2_set_option ($tc_conn, $parameters, 1);

$userAfter = db2_get_option($tc_conn, "trusted_user");
//Do more work as trusted user.

if($userBefore != $userAfter) {
echo "User has been switched." . "\n";
}
}

db2_close($tc_conn);
}
else {
echo "Explicit trusted connection failed.\n";
}
?>

O exemplo acima produzirá:

Explicit trusted connection succeeded.
User has been switched.

Veja Também

  • db2_close() - Closes a database connection
  • db2_pconnect() - Returns a persistent connection to a database


Returns the cursor type used by a statement resource

  • « db2_connect
  • db2_escape_string »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the cursor type used by a statement resource

db2_cursor_type

(PECL ibm_db2 >= 1.0.0)

db2_cursor_type — Returns the cursor type used by a statement resource

Descrição

db2_cursor_type(resource $stmt): int

Returns the cursor type used by a statement resource. Use this to determine if you are working with a forward-only cursor or scrollable cursor.

Parâmetros

stmt

A valid statement resource.

Valor Retornado

Returns either DB2_FORWARD_ONLY if the statement resource uses a forward-only cursor or DB2_SCROLLABLE if the statement resource uses a scrollable cursor.

Veja Também

  • db2_prepare() - Prepares an SQL statement to be executed


Used to escape certain characters

  • « db2_cursor_type
  • db2_exec »
  • PHP Manual
  • IBM DB2 Funções
  • Used to escape certain characters

db2_escape_string

(PECL ibm_db2 >= 1.6.0)

db2_escape_string — Used to escape certain characters

Descrição

db2_escape_string(string $string_literal): string

Prepends backslashes to special characters in the string argument.

Parâmetros

string_literal

The string that contains special characters that need to be modified. Characters that are prepended with a backslash are \x00, \n, \r, \, ', " and \x1a.

Valor Retornado

Returns string_literal with the special characters noted above prepended with backslashes.

Exemplos

Exemplo #1 A db2_escape_string() example

Result of using the db2_escape_string() function

<?php

$conn = db2_connect($database, $user, $password);

if ($conn) {
$str[0] = "All characters: \x00 , \n , \r , \ , ' , \" , \x1a .";
$str[1] = "Backslash (\). Single quote ('). Double quote (\")";
$str[2] = "The NULL character \0 must be quoted as well";
$str[3] = "Intersting characters: \x1a , \x00 .";
$str[4] = "Nothing to quote";
$str[5] = 200676;
$str[6] = "";

foreach( $str as $string ) {
echo "db2_escape_string: " . db2_escape_string($string). "\n";
}
}
?>

O exemplo acima produzirá:

db2_escape_string: All characters: \0 , \n , \r , \\ , \' , \" , \Z .
db2_escape_string: Backslash (\\). Single quote (\'). Double quote (\")
db2_escape_string: The NULL character \0 must be quoted as well
db2_escape_string: Intersting characters: \Z , \0 .
db2_escape_string: Nothing to quote
db2_escape_string: 200676
db2_escape_string:

Veja Também

  • db2_prepare() - Prepares an SQL statement to be executed


Executes an SQL statement directly

  • « db2_escape_string
  • db2_execute »
  • PHP Manual
  • IBM DB2 Funções
  • Executes an SQL statement directly

db2_exec

(PECL ibm_db2 >= 1.0.0)

db2_exec — Executes an SQL statement directly

Descrição

db2_exec(resource $connection, string $statement, array $options = []): resource|false

Executes an SQL statement directly.

If you plan to interpolate PHP variables into the SQL statement, understand that this is one of the more common security exposures. Consider calling db2_prepare() to prepare an SQL statement with parameter markers for input values. Then you can call db2_execute() to pass in the input values and avoid SQL injection attacks.

If you plan to repeatedly issue the same SQL statement with different parameters, consider calling db2_prepare() and db2_execute() to enable the database server to reuse its access plan and increase the efficiency of your database access.

Parâmetros

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

statement

An SQL statement. The statement cannot contain any parameter markers.

options

An associative array containing statement options. You can use this parameter to request a scrollable cursor on database servers that support this functionality.

For a description of valid statement options, see db2_set_option().

Valor Retornado

Returns a statement resource if the SQL statement was issued successfully, or false if the database failed to execute the SQL statement.

Exemplos

Exemplo #1 Creating a table with db2_exec()

The following example uses db2_exec() to issue a set of DDL statements in the process of creating a table.

<?php
$conn = db2_connect($database, $user, $password);

// Create the test table
$create = 'CREATE TABLE animals (id INTEGER, breed VARCHAR(32),
name CHAR(16), weight DECIMAL(7,2))';
$result = db2_exec($conn, $create);
if ($result) {
print "Successfully created the table.\n";
}

// Populate the test table
$animals = array(
array(0, 'cat', 'Pook', 3.2),
array(1, 'dog', 'Peaches', 12.3),
array(2, 'horse', 'Smarty', 350.0),
array(3, 'gold fish', 'Bubbles', 0.1),
array(4, 'budgerigar', 'Gizmo', 0.2),
array(5, 'goat', 'Rickety Ride', 9.7),
array(6, 'llama', 'Sweater', 150)
);

foreach ($animals as $animal) {
$rc = db2_exec($conn, "INSERT INTO animals (id, breed, name, weight)
VALUES ({$animal[0]}, '{$animal[1]}', '{$animal[2]}', {$animal[3]})");
if ($rc) {
print "Insert... ";
}
}
?>

O exemplo acima produzirá:

Successfully created the table.
Insert... Insert... Insert... Insert... Insert... Insert... Insert...

Exemplo #2 Executing a SELECT statement with a scrollable cursor

The following example demonstrates how to request a scrollable cursor for an SQL statement issued by db2_exec().

<?php
$conn = db2_connect($database, $user, $password);
$sql = "SELECT name FROM animals
WHERE weight < 10.0
ORDER BY name";
if ($conn) {
require_once 'prepare.inc';
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
while ($row = db2_fetch_array($stmt)) {
print "$row[0]\n";
}
}
?>

O exemplo acima produzirá:

Bubbles
Gizmo
Pook
Rickety Ride

Exemplo #3 Returning XML data as an SQL ResultSet

The following example demonstrates how to work with documents stored in a XML column using the SAMPLE database. Using some pretty simple SQL/XML, this example returns some of the nodes in a XML document in an SQL ResultSet format that most users are familiar with.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" VARCHAR (50) PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) AS T
WHERE NAME = \'Kathy Smith\'
';
$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
printf("$row->CID $row->NAME $row->PHONE\n");
}
db2_close($conn);

?>

O exemplo acima produzirá:

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Exemplo #4 Performing a "JOIN" with XML data

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns an SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
FROM
XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" BIGINT PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) as A,
PURCHASEORDER AS B,
XMLTABLE (
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
COLUMNS
"PONUM" BIGINT PATH \'@PoNum\',
"STATUS" VARCHAR (50) PATH \'@Status\'
) as C
WHERE A.CID = B.CUSTID AND
B.POID = C.PONUM AND
A.NAME = \'Kathy Smith\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
printf("$row->CID $row->NAME $row->PHONE $row->PONUM $row->STATUS\n");
}

db2_close($conn);

?>

O exemplo acima produzirá:

1001     Kathy Smith     905-555-7258     5002     Shipped

Exemplo #5 Returning SQL data as part of a larger XML document

The following example works with a portion of the PRODUCT.DESCRIPTION documents in the SAMPLE database. It creates a XML document containing product description (XML data) and pricing info (SQL data).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
declare boundary-space strip;
declare default element namespace "http://posample.org";
<promoList> {
for $prod in $doc/product
where $prod/description/price < 10.00
order by $prod/description/price ascending
return(
<promoitem> {
$prod,
<startdate> {$start} </startdate>,
<enddate> {$end} </enddate>,
<promoprice> {$promo} </promoprice>
} </promoitem>
)
} </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = \'100-100-01\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_array($stmt)){
printf("$row[0]\n");
}
db2_close($conn);

?>

O exemplo acima produzirá:

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Veja Também

  • db2_execute() - Executes a prepared SQL statement
  • db2_prepare() - Prepares an SQL statement to be executed


Executes a prepared SQL statement

  • « db2_exec
  • db2_fetch_array »
  • PHP Manual
  • IBM DB2 Funções
  • Executes a prepared SQL statement

db2_execute

(PECL ibm_db2 >= 1.0.0)

db2_execute — Executes a prepared SQL statement

Descrição

db2_execute(resource $stmt, array $parameters = []): bool

db2_execute() executes an SQL statement that was prepared by db2_prepare().

If the SQL statement returns a result set, for example, a SELECT statement or a CALL to a stored procedure that returns one or more result sets, you can retrieve a row as an array from the stmt resource using db2_fetch_assoc(), db2_fetch_both(), or db2_fetch_array(). Alternatively, you can use db2_fetch_row() to move the result set pointer to the next row and fetch a column at a time from that row with db2_result().

Refer to db2_prepare() for a brief discussion of the advantages of using db2_prepare() and db2_execute() rather than db2_exec().

Parâmetros

stmt

A prepared statement returned from db2_prepare().

parameters

An array of input parameters matching any parameter markers contained in the prepared statement.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Preparing and executing an SQL statement with parameter markers

The following example prepares an INSERT statement that accepts four parameter markers, then iterates over an array of arrays containing the input values to be passed to db2_execute().

<?php
$pet = array(0, 'cat', 'Pook', 3.2);

$insert = 'INSERT INTO animals (id, breed, name, weight)
VALUES (?, ?, ?, ?)';

$stmt = db2_prepare($conn, $insert);
if ($stmt) {
$result = db2_execute($stmt, $pet);
if ($result) {
print "Successfully added new pet.";
}
}
?>

O exemplo acima produzirá:

Successfully added new pet.

Exemplo #2 Calling a stored procedure with an OUT parameter

The following example prepares a CALL statement that accepts one parameter marker representing an OUT parameter, binds the PHP variable $my_pets to the parameter using db2_bind_param(), then issues db2_execute() to execute the CALL statement. After the CALL to the stored procedure has been made, the value of $num_pets changes to reflect the value returned by the stored procedure for that OUT parameter.

<?php
$num_pets = 0;
$res = db2_prepare($conn, "CALL count_my_pets(?)");
$rc = db2_bind_param($res, 1, "num_pets", DB2_PARAM_OUT);
$rc = db2_execute($res);
print "I have $num_pets pets!";
?>

O exemplo acima produzirá:

I have 7 pets!

Exemplo #3 Returning XML data as an SQL ResultSet

The following example demonstrates how to work with documents stored in a XML column using the SAMPLE database. Using some pretty simple SQL/XML, this example returns some of the nodes in a XML document in an SQL ResultSet format that most users are familiar with.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" VARCHAR (50) PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) AS T
WHERE NAME = ?
';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_execute($stmt);

while($row = db2_fetch_object($stmt)){
printf("$row->CID $row->NAME $row->PHONE\n");
}
}
db2_close($conn);

?>

O exemplo acima produzirá:

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Exemplo #4 Performing a "JOIN" with XML data

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns an SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
FROM
XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" BIGINT PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) as A,
PURCHASEORDER AS B,
XMLTABLE (
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
COLUMNS
"PONUM" BIGINT PATH \'@PoNum\',
"STATUS" VARCHAR (50) PATH \'@Status\'
) as C
WHERE A.CID = B.CUSTID AND
B.POID = C.PONUM AND
A.NAME = ?
';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_execute($stmt);

while($row = db2_fetch_object($stmt)){
printf("$row->CID $row->NAME $row->PHONE $row->PONUM $row->STATUS\n");
}
}

db2_close($conn);

?>

O exemplo acima produzirá:

1001     Kathy Smith     905-555-7258     5002     Shipped

Exemplo #5 Returning SQL data as part of a larger XML document

The following example works with a portion of the PRODUCT.DESCRIPTION documents in the SAMPLE database. It creates a XML document containing product description (XML data) and pricing info (SQL data).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
declare boundary-space strip;
declare default element namespace "http://posample.org";
<promoList> {
for $prod in $doc/product
where $prod/description/price < 10.00
order by $prod/description/price ascending
return(
<promoitem> {
$prod,
<startdate> {$start} </startdate>,
<enddate> {$end} </enddate>,
<promoprice> {$promo} </promoprice>
} </promoitem>
)
} </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = ?
';

$stmt = db2_prepare($conn, $query);

$pid = "100-100-01";

if ($stmt) {
db2_bind_param($stmt, 1, "pid", DB2_PARAM_IN);
db2_execute($stmt);

while($row = db2_fetch_array($stmt)){
printf("$row[0]\n");
}
}

db2_close($conn);

?>

O exemplo acima produzirá:

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Veja Também

  • db2_exec() - Executes an SQL statement directly
  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_result() - Returns a single column from a row in the result set


Returns an array, indexed by column position, representing a row in a result set

  • « db2_execute
  • db2_fetch_assoc »
  • PHP Manual
  • IBM DB2 Funções
  • Returns an array, indexed by column position, representing a row in a result set

db2_fetch_array

(PECL ibm_db2 >= 1.0.1)

db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set

Descrição

db2_fetch_array(resource $stmt, int $row_number = -1): array|false

Returns an array, indexed by column position, representing a row in a result set. The columns are 0-indexed.

Parâmetros

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Valor Retornado

Returns a 0-indexed array with column values indexed by the column position representing the next or requested row in the result set. Returns false if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Exemplos

Exemplo #1 Iterating through a forward-only cursor

If you call db2_fetch_array() without a specific row number, it automatically retrieves the next row in the result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_array($stmt)) {
printf ("%-5d %-16s %-32s %10s\n",
$row[0], $row[1], $row[2], $row[3]);
}
?>

O exemplo acima produzirá:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Exemplo #2 Retrieving specific rows with db2_fetch_array() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_array() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_array($result, $i)) {
printf ("%-5d %-16s %-32s %10s\n",
$row[0], $row[1], $row[2], $row[3]);
$i = $i + 2;
}
?>

O exemplo acima produzirá:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Veja Também

  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Returns an array, indexed by column name, representing a row in a result set

  • « db2_fetch_array
  • db2_fetch_both »
  • PHP Manual
  • IBM DB2 Funções
  • Returns an array, indexed by column name, representing a row in a result set

db2_fetch_assoc

(PECL ibm_db2 >= 1.0.0)

db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set

Descrição

db2_fetch_assoc(resource $stmt, int $row_number = -1): array|false

Returns an array, indexed by column name, representing a row in a result set.

Parâmetros

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Valor Retornado

Returns an associative array with column values indexed by the column name representing the next or requested row in the result set. Returns false if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Exemplos

Exemplo #1 Iterating through a forward-only cursor

If you call db2_fetch_assoc() without a specific row number, it automatically retrieves the next row in the result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_assoc($stmt)) {
printf ("%-5d %-16s %-32s %10s\n",
$row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
}
?>

O exemplo acima produzirá:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Exemplo #2 Retrieving specific rows with db2_fetch_assoc() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_assoc() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_assoc($result, $i)) {
printf ("%-5d %-16s %-32s %10s\n",
$row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
$i = $i + 2;
}
?>

O exemplo acima produzirá:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Veja Também

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Returns an array, indexed by both column name and position, representing a row in a result set

  • « db2_fetch_assoc
  • db2_fetch_object »
  • PHP Manual
  • IBM DB2 Funções
  • Returns an array, indexed by both column name and position, representing a row in a result set

db2_fetch_both

(PECL ibm_db2 >= 1.0.0)

db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set

Descrição

db2_fetch_both(resource $stmt, int $row_number = -1): array|false

Returns an array, indexed by both column name and position, representing a
row in a result set. Note that the row returned by
db2_fetch_both() requires more memory than the
single-indexed arrays returned by db2_fetch_assoc() or
db2_fetch_array().

Parâmetros

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Valor Retornado

Returns an associative array with column values indexed by both the column name and 0-indexed column number. The array represents the next or requested row in the result set. Returns false if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Exemplos

Exemplo #1 Iterating through a forward-only cursor

If you call db2_fetch_both() without a specific row number, it automatically retrieves the next row in the result set. The following example accesses columns in the returned array by both column name and by numeric index.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_both($stmt)) {
printf ("%-5d %-16s %-32s %10s\n",
$row['ID'], $row[0], $row['BREED'], $row[3]);
}
?>

O exemplo acima produzirá:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Exemplo #2 Retrieving specific rows with db2_fetch_both() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_both() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_both($result, $i)) {
printf ("%-5d %-16s %-32s %10s\n",
$row[0], $row['NAME'], $row[2], $row['WEIGHT']);
$i = $i + 2;
}
?>

O exemplo acima produzirá:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Veja Também

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Returns an object with properties representing columns in the fetched row

  • « db2_fetch_both
  • db2_fetch_row »
  • PHP Manual
  • IBM DB2 Funções
  • Returns an object with properties representing columns in the fetched row

db2_fetch_object

(PECL ibm_db2 >= 1.0.0)

db2_fetch_object — Returns an object with properties representing columns in the fetched row

Descrição

db2_fetch_object(resource $stmt, int $row_number = -1): stdClass|false

Returns an object in which each property represents a column returned in the row fetched from a result set.

Parâmetros

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Valor Retornado

Returns an object representing a single row in the result set. The properties of the object map to the names of the columns in the result set.

The IBM DB2, Cloudscape, and Apache Derby database servers typically fold column names to upper-case, so the object properties will reflect that case.

If your SELECT statement calls a scalar function to modify the value of a column, the database servers return the column number as the name of the column in the result set. If you prefer a more descriptive column name and object property, you can use the AS clause to assign a name to the column in the result set.

Returns false if no row was retrieved.

Exemplos

Exemplo #1 A db2_fetch_object() example

The following example issues a SELECT statement with a scalar function, RTRIM, that removes whitespace from the end of the column. Rather than creating an object with the properties "BREED" and "2", we use the AS clause in the SELECT statement to assign the name "name" to the modified column. The database server folds the column names to upper-case, resulting in an object with the properties "BREED" and "NAME".

<?php
$conn = db2_connect($database, $user, $password);

$sql = "SELECT breed, RTRIM(name) AS name
FROM animals
WHERE id = ?";

if ($conn) {
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(0));

while ($pet = db2_fetch_object($stmt)) {
echo "Come here, {$pet->NAME}, my little {$pet->BREED}!";
}
db2_close($conn);
}
?>

O exemplo acima produzirá:

Come here, Pook, my little cat!

Veja Também

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Sets the result set pointer to the next row or requested row

  • « db2_fetch_object
  • db2_field_display_size »
  • PHP Manual
  • IBM DB2 Funções
  • Sets the result set pointer to the next row or requested row

db2_fetch_row

(PECL ibm_db2 >= 1.0.0)

db2_fetch_row — Sets the result set pointer to the next row or requested row

Descrição

db2_fetch_row(resource $stmt, int $row_number = -1): bool

Use db2_fetch_row() to iterate through a result set, or to point to a specific row in a result set if you requested a scrollable cursor.

To retrieve individual fields from the result set, call the db2_result() function.

Rather than calling db2_fetch_row() and db2_result(), most applications will call one of db2_fetch_assoc(), db2_fetch_both(), or db2_fetch_array() to advance the result set pointer and return a complete row as an array.

Parâmetros

stmt

A valid stmt resource.

row_number

With scrollable cursors, you can request a specific row number in the result set. Row numbering is 1-indexed.

Valor Retornado

Returns true if the requested row exists in the result set. Returns false if the requested row does not exist in the result set.

Exemplos

Exemplo #1 Iterating through a result set

The following example demonstrates how to iterate through a result set with db2_fetch_row() and retrieve columns from the result set with db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
$name = db2_result($stmt, 0);
$breed = db2_result($stmt, 1);
print "$name $breed";
}
?>

O exemplo acima produzirá:

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

Exemplo #2 i5/OS recommended alternatives to db2_fetch_row/db2_result

On i5/OS it is recommended that you use db2_fetch_both(), db2_fetch_array(), or db2_fetch_object() over db2_fetch_row()/db2_result(). In general db2_fetch_row()/db2_result() have more issues with various column types in EBCIDIC to ASCII translation, including possible truncation in DBCS applications. You may also find the performance of db2_fetch_both(), db2_fetch_array(), and db2_fetch_object() to be superior to db2_fetch_row()/db2_result().

<?php
$conn = db2_connect("","","");
$sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
while ($row = db2_fetch_both($stmt)){
echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
}
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
while ($row = db2_fetch_array($stmt)){
echo "<br>db2_fetch_array {$row[1]} {$row[5]}";
}
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
while ($row = db2_fetch_object($stmt)){
echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
}
db2_close($conn);
?>

O exemplo acima produzirá:

db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000

Veja Também

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_result() - Returns a single column from a row in the result set


Returns the maximum number of bytes required to display a column

  • « db2_fetch_row
  • db2_field_name »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the maximum number of bytes required to display a column

db2_field_display_size

(PECL ibm_db2 >= 1.0.0)

db2_field_display_size — Returns the maximum number of bytes required to display a column

Descrição

db2_field_display_size(resource $stmt, int|string $column): int|false

Returns the maximum number of bytes required to display a column in a result set.

Parâmetros

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Valor Retornado

Returns an integer value with the maximum number of bytes required to display the specified column. If the column does not exist in the result set, db2_field_display_size() returns false.

Veja Também

  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the name of the column in the result set

  • « db2_field_display_size
  • db2_field_num »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the name of the column in the result set

db2_field_name

(PECL ibm_db2 >= 1.0.0)

db2_field_name — Returns the name of the column in the result set

Descrição

db2_field_name(resource $stmt, int|string $column): string|false

Returns the name of the specified column in the result set.

Parâmetros

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Valor Retornado

Returns a string containing the name of the specified column. If the specified column does not exist in the result set, db2_field_name() returns false.

Veja Também

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the position of the named column in a result set

  • « db2_field_name
  • db2_field_precision »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the position of the named column in a result set

db2_field_num

(PECL ibm_db2 >= 1.0.0)

db2_field_num — Returns the position of the named column in a result set

Descrição

db2_field_num(resource $stmt, int|string $column): int|false

Returns the position of the named column in a result set.

Parâmetros

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Valor Retornado

Returns an integer containing the 0-indexed position of the named column in the result set. If the specified column does not exist in the result set, db2_field_num() returns false.

Veja Também

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the precision of the indicated column in a result set

  • « db2_field_num
  • db2_field_scale »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the precision of the indicated column in a result set

db2_field_precision

(PECL ibm_db2 >= 1.0.0)

db2_field_precision — Returns the precision of the indicated column in a result set

Descrição

db2_field_precision(resource $stmt, int|string $column): int|false

Returns the precision of the indicated column in a result set.

Parâmetros

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Valor Retornado

Returns an integer containing the precision of the specified column. If the specified column does not exist in the result set, db2_field_precision() returns false.

Veja Também

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the scale of the indicated column in a result set

  • « db2_field_precision
  • db2_field_type »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the scale of the indicated column in a result set

db2_field_scale

(PECL ibm_db2 >= 1.0.0)

db2_field_scale — Returns the scale of the indicated column in a result set

Descrição

db2_field_scale(resource $stmt, int|string $column): int|false

Returns the scale of the indicated column in a result set.

Parâmetros

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Valor Retornado

Returns an integer containing the scale of the specified column. If the specified column does not exist in the result set, db2_field_scale() returns false.

Veja Também

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the data type of the indicated column in a result set

  • « db2_field_scale
  • db2_field_width »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the data type of the indicated column in a result set

db2_field_type

(PECL ibm_db2 >= 1.0.0)

db2_field_type — Returns the data type of the indicated column in a result set

Descrição

db2_field_type(resource $stmt, int|string $column): string|false

Returns the data type of the indicated column in a result set.

Parâmetros

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Valor Retornado

Returns a string containing the defined data type of the specified column. If the specified column does not exist in the result set, db2_field_type() returns false.

Veja Também

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the width of the current value of the indicated column in a result set

  • « db2_field_type
  • db2_foreign_keys »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the width of the current value of the indicated column in a result set

db2_field_width

(PECL ibm_db2 >= 1.0.0)

db2_field_width — Returns the width of the current value of the indicated column in a result set

Descrição

db2_field_width(resource $stmt, int|string $column): int|false

Returns the width of the current value of the indicated column in a result set. This is the maximum width of the column for a fixed-length data type, or the actual width of the column for a variable-length data type.

Parâmetros

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Valor Retornado

Returns an integer containing the width of the specified character or binary data type column in a result set. If the specified column does not exist in the result set, db2_field_width() returns false.

Veja Também

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set


Returns a result set listing the foreign keys for a table

  • « db2_field_width
  • db2_free_result »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a result set listing the foreign keys for a table

db2_foreign_keys

(PECL ibm_db2 >= 1.0.0)

db2_foreign_keys — Returns a result set listing the foreign keys for a table

Descrição

db2_foreign_keys(
resource $connection,
?string $qualifier,
?string $schema,
string $table_name
): resource

Returns a result set listing the foreign keys for a table.

Parâmetros

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. If schema is null, db2_foreign_keys() matches the schema for the current connection.

table_name

The name of the table.

Valor Retornado

Returns a statement resource with a result set containing rows describing the foreign keys for the specified table. The result set is composed of the following columns:

Column name | Description
PKTABLE_CAT | Name of the catalog for the table containing the primary key. The value is NULL if this table does not have catalogs.
PKTABLE_SCHEM | Name of the schema for the table containing the primary key.
PKTABLE_NAME | Name of the table containing the primary key.
PKCOLUMN_NAME | Name of the column containing the primary key.
FKTABLE_CAT | Name of the catalog for the table containing the foreign key. The value is NULL if this table does not have catalogs.
FKTABLE_SCHEM | Name of the schema for the table containing the foreign key.
FKTABLE_NAME | Name of the table containing the foreign key.
FKCOLUMN_NAME | Name of the column containing the foreign key.
KEY_SEQ | 1-indexed position of the column in the key.
UPDATE_RULE | Integer value representing the action applied to the foreign key when the SQL operation is UPDATE.
DELETE_RULE | Integer value representing the action applied to the foreign key when the SQL operation is DELETE.
FK_NAME | The name of the foreign key.
PK_NAME | The name of the primary key.
DEFERRABILITY | An integer value representing whether the foreign key deferrability is SQL_INITIALLY_DEFERRED, SQL_INITIALLY_IMMEDIATE, or SQL_NOT_DEFERRABLE.

Veja Também

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Frees resources associated with a result set

  • « db2_foreign_keys
  • db2_free_stmt »
  • PHP Manual
  • IBM DB2 Funções
  • Frees resources associated with a result set

db2_free_result

(PECL ibm_db2 >= 1.0.0)

db2_free_result — Frees resources associated with a result set

Descrição

db2_free_result(resource $stmt): bool

Frees the system and database resources that are associated with a result set. These resources are freed implicitly when a script finishes, but you can call db2_free_result() to explicitly free the result set resources before the end of the script.

Parâmetros

stmt

A valid statement resource.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • db2_free_stmt() - Frees resources associated with the indicated statement resource


Frees resources associated with the indicated statement resource

  • « db2_free_result
  • db2_get_option »
  • PHP Manual
  • IBM DB2 Funções
  • Frees resources associated with the indicated statement resource

db2_free_stmt

(PECL ibm_db2 >= 1.0.0)

db2_free_stmt — Frees resources associated with the indicated statement resource

Descrição

db2_free_stmt(resource $stmt): bool

Frees the system and database resources that are associated with a statement resource. These resources are freed implicitly when a script finishes, but you can call db2_free_stmt() to explicitly free the statement resources before the end of the script.

Parâmetros

stmt

A valid statement resource.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • db2_free_result() - Frees resources associated with a result set


Retrieves an option value for a statement resource or a connection resource

  • « db2_free_stmt
  • db2_last_insert_id »
  • PHP Manual
  • IBM DB2 Funções
  • Retrieves an option value for a statement resource or a connection resource

db2_get_option

(PECL ibm_db2 >= 1.6.0)

db2_get_option — Retrieves an option value for a statement resource or a connection resource

Descrição

db2_get_option(resource $resource, string $option): string|false

Retrieves the value of a specified option value for a statement resource or a connection resource.

Parâmetros

resource

A valid statement resource as returned from db2_prepare() or a valid connection resource as returned from db2_connect() or db2_pconnect().

option

A valid statement or connection options. The following new options are available as of ibm_db2 version 1.6.0. They provide useful tracking information that can be set during execution with db2_get_option().

Nota:

Prior versions of ibm_db2 do not support these new options.

When the value in each option is being set, some servers might not handle the entire length provided and might truncate the value.

To ensure that the data specified in each option is converted correctly when transmitted to a host system, use only the characters A through Z, 0 through 9, and the underscore (_) or period (.).

userid

SQL_ATTR_INFO_USERID - A pointer to a null-terminated character string used to identify the client user ID sent to the host database server when using DB2 Connect.

Nota:

DB2 for z/OS and OS/390 servers support up to a length of 16 characters. This user-id is not to be confused with the authentication user-id, it is for identification purposes only and is not used for any authorization.

acctstr

SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated character string used to identify the client accounting string sent to the host database server when using DB2 Connect.

Nota:

DB2 for z/OS and OS/390 servers support up to a length of 200 characters.

applname

SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated character string used to identify the client application name sent to the host database server when using DB2 Connect.

Nota:

DB2 for z/OS and OS/390 servers support up to a length of 32 characters.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated character string used to identify the client workstation name sent to the host database server when using DB2 Connect.

Nota:

DB2 for z/OS and OS/390 servers support up to a length of 18 characters.

The following table specifies which options are compatible with the available resource types:

Resource-Parameter Matrix
Key | Value | Resource Type
 |  | Connection | Statement | Result Set
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

Valor Retornado

Returns the current setting of the connection attribute provided on success ou false em caso de falha.

Exemplos

Exemplo #1 Setting and retrieving parameters through a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

/* Obtain Connection Resource */
$conn = db2_connect($database, $user, $password);

echo "Client attributes passed through connection string:\n";

/* Create the associative options array with valid key-value pairs */
/* Assign the attributes through connection string */
/* Access the options specified */
$options1 = array('userid' => 'db2inst1');
$conn1 = db2_connect($database, $user, $password, $options1);
$val = db2_get_option($conn1, 'userid');
echo $val . "\n";

$options2 = array('acctstr' => 'account');
$conn2 = db2_connect($database, $user, $password, $options2);
$val = db2_get_option($conn2, 'acctstr');
echo $val . "\n";

$options3 = array('applname' => 'myapp');
$conn3 = db2_connect($database, $user, $password, $options3);
$val = db2_get_option($conn3, 'applname');
echo $val . "\n";

$options4 = array('wrkstnname' => 'workstation');
$conn4 = db2_connect($database, $user, $password, $options4);
$val = db2_get_option($conn4, 'wrkstnname');
echo $val . "\n";

echo "Client attributes passed post-connection:\n";

/* Create the associative options array with valid key-value pairs */
/* Assign the attributes after a connection is made */
/* Access the options specified */
$options5 = array('userid' => 'db2inst1');
$conn5 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn5, $options5, 1);
$val = db2_get_option($conn5, 'userid');
echo $val . "\n";

$options6 = array('acctstr' => 'account');
$conn6 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn6, $options6, 1);
$val = db2_get_option($conn6, 'acctstr');
echo $val . "\n";

$options7 = array('applname' => 'myapp');
$conn7 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn7, $options7, 1);
$val = db2_get_option($conn7, 'applname');
echo $val . "\n";

$options8 = array('wrkstnname' => 'workstation');
$conn8 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn8, $options8, 1);
$val = db2_get_option($conn8, 'wrkstnname');
echo $val . "\n";
?>

O exemplo acima produzirá:

Client attributes passed through connection string:
db2inst1
account
myapp
workstation
Client attributes passed post-connection:
db2inst1
account
myapp
workstation

Veja Também

  • db2_connect() - Returns a connection to a database
  • db2_cursor_type() - Returns the cursor type used by a statement resource
  • db2_exec() - Executes an SQL statement directly
  • db2_set_option() - Set options for connection or statement resources
  • db2_pconnect() - Returns a persistent connection to a database
  • db2_prepare() - Prepares an SQL statement to be executed


Returns the auto generated ID of the last insert query that successfully executed on this connection

  • « db2_get_option
  • db2_lob_read »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the auto generated ID of the last insert query that successfully executed on this connection

db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection

Descrição

db2_last_insert_id(resource $resource): ?string

Returns the auto generated ID of the last insert query that successfully executed on this connection.

The result of this function is not affected by any of the following:

  • A single row INSERT statement with a VALUES clause for a table without an identity column.

  • A multiple row INSERT statement with a VALUES clause.

  • An INSERT statement with a fullselect.

  • A ROLLBACK TO SAVEPOINT statement.

Parâmetros

resource

A valid connection resource as returned from db2_connect() or db2_pconnect(). The value of this parameter cannot be a statement resource or result set resource.

Valor Retornado

Returns the auto generated ID of last insert query that successfully executed on this connection.

Exemplos

Exemplo #1 A db2_last_insert_id() example

The following example shows how to return the auto generated ID of last insert query that successfully executed on this connection.

<?php

$database = "SAMPLE";
$user = "db2inst1";
$password = "ibmdb2";

$conn = db2_connect($database, $user, $password);
if($conn) {
$createTable = "CREATE TABLE lastInsertID
(id integer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))";
$insertTable = "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";

$stmt = @db2_exec($conn, $createTable);

/* Checking for single row inserted. */
$stmt = db2_exec($conn, $insertTable);
$ret = db2_last_insert_id($conn);
if($ret) {
echo "Last Insert ID is : " . $ret . "\n";
} else {
echo "No Last insert ID.\n";
}

db2_close($conn);
}
else {
echo "Connection failed.";
}
?>

O exemplo acima produzirá:

Last Insert ID is : 1


Gets a user defined size of LOB files with each invocation

  • « db2_last_insert_id
  • db2_next_result »
  • PHP Manual
  • IBM DB2 Funções
  • Gets a user defined size of LOB files with each invocation

db2_lob_read

(PECL ibm_db2 >= 1.6.0)

db2_lob_read — Gets a user defined size of LOB files with each invocation

Descrição

db2_lob_read(resource $stmt, int $colnum, int $length): string|false

Use db2_lob_read() to iterate through a specified column of a result set and retrieve a user defined size of LOB data.

Parâmetros

stmt

A valid stmt resource containing LOB data.

colnum

A valid column number in the result set of the stmt resource.

length

The size of the LOB data to be retrieved from the stmt resource.

Valor Retornado

Returns the amount of data the user specifies. Returns false if the data cannot be retrieved.

Exemplos

Exemplo #1 Iterating through different types of data

<?php

/* Database Connection Parameters */
$db = 'SAMPLE';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Obtain Connection Resource */
$conn = db2_connect($db,$username,$password);

if ($conn) {
$drop = 'DROP TABLE clob_stream';
$result = @db2_exec( $conn, $drop );

$create = 'CREATE TABLE clob_stream (id INTEGER, my_clob CLOB)';
$result = db2_exec( $conn, $create );

$variable = "";
$stmt = db2_prepare($conn, "INSERT INTO clob_stream (id,my_clob) VALUES (1, ?)");
$variable = "THIS IS A CLOB TEST. THIS IS A CLOB TEST.";
db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
db2_execute($stmt);

$sql = "SELECT id,my_clob FROM clob_stream";
$result = db2_prepare($conn, $sql);
db2_execute($result);
db2_fetch_row($result);
$i = 0;
/* Read LOB data */
while ($data = db2_lob_read($result, 2, 6)) {
echo "Loop $i: $data\n";
$i = $i + 1;
}

$drop = 'DROP TABLE blob_stream';
$result = @db2_exec( $conn, $drop );

$create = 'CREATE TABLE blob_stream (id INTEGER, my_blob CLOB)';
$result = db2_exec( $conn, $create );

$variable = "";
$stmt = db2_prepare($conn, "INSERT INTO blob_stream (id,my_blob) VALUES (1, ?)");
$variable = "THIS IS A BLOB TEST. THIS IS A BLOB TEST.";
db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
db2_execute($stmt);

$sql = "SELECT id,my_blob FROM blob_stream";
$result = db2_prepare($conn, $sql);
db2_execute($result);
db2_fetch_row($result);
$i = 0;
/* Read LOB data */
while ($data = db2_lob_read($result, 2, 6)) {
echo "Loop $i: $data\n";
$i = $i + 1;
}
} else {
echo 'no connection: ' . db2_conn_errormsg();
}

?>

O exemplo acima produzirá:

Loop 0: THIS I
Loop 1: S A CL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  CLOB
Loop 6: TEST.
Loop 0: THIS I
Loop 1: S A BL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  BLOB
Loop 6: TEST.

Veja Também

  • db2_bind_param() - Binds a PHP variable to an SQL statement parameter
  • db2_exec() - Executes an SQL statement directly
  • db2_execute() - Executes a prepared SQL statement
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_result() - Returns a single column from a row in the result set


Requests the next result set from a stored procedure

  • « db2_lob_read
  • db2_num_fields »
  • PHP Manual
  • IBM DB2 Funções
  • Requests the next result set from a stored procedure

db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result — Requests the next result set from a stored procedure

Descrição

db2_next_result(resource $stmt): resource|false

A stored procedure can return zero or more result sets. While you handle the first result set in exactly the same way you would handle the results returned by a simple SELECT statement, to fetch the second and subsequent result sets from a stored procedure you must call the db2_next_result() function and return the result to a uniquely named PHP variable.

Parâmetros

stmt

A prepared statement returned from db2_exec() or db2_execute().

Valor Retornado

Returns a new statement resource containing the next result set if the stored procedure returned another result set. Returns false if the stored procedure did not return another result set.

Exemplos

Exemplo #1 Calling a stored procedure that returns multiple result sets

In the following example, we call a stored procedure that returns three result sets. The first result set is fetched directly from the same statement resource on which we invoked the CALL statement, while the second and third result sets are fetched from statement resources returned from our calls to the db2_next_result() function.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
$stmt = db2_exec($conn, 'CALL multiResults()');

print "Fetching first result set\n";
while ($row = db2_fetch_array($stmt)) {
var_dump($row);
}

print "\nFetching second result set\n";
$res = db2_next_result($stmt);
if ($res) {
while ($row = db2_fetch_array($res)) {
var_dump($row);
}
}

print "\nFetching third result set\n";
$res2 = db2_next_result($stmt);
if ($res2) {
while ($row = db2_fetch_array($res2)) {
var_dump($row);
}
}

db2_close($conn);
}
?>

O exemplo acima produzirá:

Fetching first result set
array(2) {
  [0]=>
  string(16) "Bubbles         "
  [1]=>
  int(3)
}
array(2) {
  [0]=>
  string(16) "Gizmo           "
  [1]=>
  int(4)
}

Fetching second result set
array(4) {
  [0]=>
  string(16) "Sweater         "
  [1]=>
  int(6)
  [2]=>
  string(5) "llama"
  [3]=>
  string(6) "150.00"
}
array(4) {
  [0]=>
  string(16) "Smarty          "
  [1]=>
  int(2)
  [2]=>
  string(5) "horse"
  [3]=>
  string(6) "350.00"
}

Fetching third result set
array(1) {
  [0]=>
  string(16) "Bubbles         "
}
array(1) {
  [0]=>
  string(16) "Gizmo           "
}


Returns the number of fields contained in a result set

  • « db2_next_result
  • db2_num_rows »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the number of fields contained in a result set

db2_num_fields

(PECL ibm_db2 >= 1.0.0)

db2_num_fields — Returns the number of fields contained in a result set

Descrição

db2_num_fields(resource $stmt): int|false

Returns the number of fields contained in a result set. This is most useful for handling the result sets returned by dynamically generated queries, or for result sets returned by stored procedures, where your application cannot otherwise know how to retrieve and use the results.

Parâmetros

stmt

A valid statement resource containing a result set.

Valor Retornado

Returns an integer value representing the number of fields in the result set associated with the specified statement resource. Returns false if the statement resource is not a valid input value.

Exemplos

Exemplo #1 Retrieving the number of fields in a result set

The following example demonstrates how to retrieve the number of fields returned in a result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, $sql);
$columns = db2_num_fields($stmt);

echo "There are {$columns} columns in the result set.";
?>

O exemplo acima produzirá:

There are 4 columns in the result set.

Veja Também

  • db2_execute() - Executes a prepared SQL statement
  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the number of rows affected by an SQL statement

  • « db2_num_fields
  • db2_pclose »
  • PHP Manual
  • IBM DB2 Funções
  • Returns the number of rows affected by an SQL statement

db2_num_rows

(PECL ibm_db2 >= 1.0.0)

db2_num_rows — Returns the number of rows affected by an SQL statement

Descrição

db2_num_rows(resource $stmt): int|false

Returns the number of rows deleted, inserted, or updated by an SQL statement.

To determine the number of rows that will be returned by a SELECT statement, issue SELECT COUNT(*) with the same predicates as your intended SELECT statement and retrieve the value.

If your application logic checks the number of rows returned by a SELECT statement and branches if the number of rows is 0, consider modifying your application to attempt to return the first row with one of db2_fetch_assoc(), db2_fetch_both(), db2_fetch_array(), or db2_fetch_row(), and branch if the fetch function returns false.

Nota:

If you issue a SELECT statement using a scrollable cursor, db2_num_rows() returns the number of rows returned by the SELECT statement. However, the overhead associated with scrollable cursors significantly degrades the performance of your application, so if this is the only reason you are considering using scrollable cursors, you should use a forward-only cursor and either call SELECT COUNT(*) or rely on the bool return value of the fetch functions to achieve the equivalent functionality with much better performance.

Parâmetros

stmt

A valid stmt resource containing a result set.

Valor Retornado

Returns the number of rows affected by the last SQL statement issued by the specified statement handle, ou false em caso de falha


Closes a persistent database connection

  • « db2_num_rows
  • db2_pconnect »
  • PHP Manual
  • IBM DB2 Funções
  • Closes a persistent database connection

db2_pclose

(PECL ibm_db2 >= 1.8.0)

db2_pclose — Closes a persistent database connection

Descrição

db2_pclose(resource $connection): bool

This function closes a DB2 client connection created with db2_pconnect() and returns the corresponding resources to the database server.

Nota:

This function is only available on i5/OS in response to i5/OS system administration requests.

If you have a persistent DB2 client connection created with db2_pconnect(), you may use this function to close the connection. To avoid substantial connection performance penalties, this function should only be used in rare cases when the persistent connection has become unresponsive or the persistent connection will not be needed for a long period of time.

Parâmetros

connection

Specifies an active DB2 client connection.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Closing a persistent connection

The following example demonstrates a successful attempt to close a connection to an IBM DB2 i5/OS database.

<?php
$conn = db2_pconnect('', '', '');
$rc = db2_pclose($conn);
if ($rc) {
echo "Connection was successfully closed.";
}
?>

O exemplo acima produzirá:

Connection was successfully closed.

Veja Também

  • db2_close() - Closes a database connection
  • db2_pconnect() - Returns a persistent connection to a database


Returns a persistent connection to a database

  • « db2_pclose
  • db2_prepare »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a persistent connection to a database

db2_pconnect

(PECL ibm_db2 >= 1.0.0)

db2_pconnect — Returns a persistent connection to a database

Descrição

db2_pconnect(
string $database,
?string $username,
?string $password,
array $options = []
): resource|false

Returns a persistent connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.

For more information on persistent connections, refer to Conexões Persistentes com o Banco de Dados.

Calling db2_close() on a persistent connection always returns true, but the underlying DB2 client connection remains open and waiting to serve the next matching db2_pconnect() request.

Users running version 1.9.0 or later of ibm_db2 should be aware that the extension will perform a transaction rollback on persistent connections at the end of a request, thus ending the transaction. This prevents the transaction block from carrying over to the next request which uses that connection if script execution ends before the transaction block does.

Parâmetros

database

The database alias in the DB2 client catalog.

username

The username with which you are connecting to the database.

password

The password with which you are connecting to the database.

options

An associative array of connection options that affect the behavior of the connection, where valid array keys include:

autocommit

Passing the DB2_AUTOCOMMIT_ON value turns autocommit on for this connection handle.

Passing the DB2_AUTOCOMMIT_OFF value turns autocommit off for this connection handle.

DB2_ATTR_CASE

Passing the DB2_CASE_NATURAL value specifies that column names are returned in natural case.

Passing the DB2_CASE_LOWER value specifies that column names are returned in lower case.

Passing the DB2_CASE_UPPER value specifies that column names are returned in upper case.

CURSOR

Passing the DB2_FORWARD_ONLY value specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

Passing the DB2_SCROLLABLE value specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.

The following new option is available in ibm_db2 version 1.7.0 and later.

trustedcontext

Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context on for this connection handle. This parameter cannot be set using db2_set_option().

This key works only if the database is cataloged (even if the database is local), or if you specify the full DSN when you create the connection.

To catalog the database, use following commands:

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later.

Dica

Conflicting connection attributes used in conjunction with persistent connections can produce indeterminate results on i5/OS. Site policies should be establish for all applications using each persistent connection user profile. The default DB2_AUTOCOMMIT_ON is suggested when using persistent connections.

i5_lib

A character value that indicates the default library that will be used for resolving unqualified file references. This is not valid if the connection is using system naming mode.

i5_naming

DB2_I5_NAMING_ON value turns on DB2 UDB CLI iSeries system naming mode. Files are qualified using the slash (/) delimiter. Unqualified files are resolved using the library list for the job.

DB2_I5_NAMING_OFF value turns off DB2 UDB CLI default naming mode, which is SQL naming. Files are qualified using the period (.) delimiter. Unqualified files are resolved using either the default library or the current user ID.

i5_commit

The i5_commit attribute should be set before the db2_pconnect(). If the value is changed after the connection has been established, and the connection is to a remote data source, the change does not take effect until the next successful db2_pconnect() for the connection handle.

Nota:

The php.ini setting ibm_db2.i5_allow_commit==0 or DB2_I5_TXN_NO_COMMIT is the default, but may be overridden with the i5_commit option.

DB2_I5_TXN_NO_COMMIT - Commitment control is not used.

DB2_I5_TXN_READ_UNCOMMITTED - Dirty reads, nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Dirty reads are not possible. Nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_REPEATABLE_READ - Dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

DB2_I5_TXN_SERIALIZABLE - Transactions are serializable. Dirty reads, non-repeatable reads, and phantoms are not possible

i5_query_optimize

DB2_FIRST_IO All queries are optimized with the goal of returning the first page of output as fast as possible. This goal works well when the output is controlled by a user who is most likely to cancel the query after viewing the first page of output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.

DB2_ALL_IO All queries are optimized with the goal of running the entire query to completion in the shortest amount of elapsed time. This is a good option when the output of a query is being written to a file or report, or the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause. This is the default.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON value turns on DB2 6X allocation scheme for DBCS translation column size growth.

DB2_I5_DBCS_ALLOC_OFF value turns off DB2 6X allocation scheme for DBCS translation column size growth.

Nota:

The php.ini setting ibm_db2.i5_dbcs_alloc==0 or DB2_I5_DBCS_ALLOC_OFF is the default, but may be overridden with the i5_dbcs_alloc option.

i5_date_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) date format yyyy-mm-dd is used. This is the default.

DB2_I5_FMT_USA - The United States date format mm/dd/yyyy is used.

DB2_I5_FMT_EUR - The European date format dd.mm.yyyy is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard date format yyyy-mm-dd is used.

DB2_I5_FMT_MDY - The date format mm/dd/yyyy is used.

DB2_I5_FMT_DMY - The date format dd/mm/yyyy is used.

DB2_I5_FMT_YMD - The date format yy/mm/dd is used.

DB2_I5_FMT_JUL - The Julian date format yy/ddd is used.

DB2_I5_FMT_JOB - The job default is used.

i5_date_sep

DB2_I5_SEP_SLASH - A slash ( / ) is used as the date separator. This is the default.

DB2_I5_SEP_DASH - A dash ( - ) is used as the date separator.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the date separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the date separator.

DB2_I5_SEP_BLANK - A blank is used as the date separator.

DB2_I5_SEP_JOB - The job default is used

i5_time_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) time format hh.mm.ss is used. This is the default.

DB2_I5_FMT_USA - The United States time format hh:mmxx is used, where xx is AM or PM.

DB2_I5_FMT_EUR - The European time format hh.mm.ss is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard time format hh:mm:ss is used.

DB2_I5_FMT_HMS - The hh:mm:ss format is used.

i5_time_sep

DB2_I5_SEP_COLON - A colon ( : ) is used as the time separator. This is the default.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the time separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the time separator.

DB2_I5_SEP_BLANK - A blank is used as the time separator.

DB2_I5_SEP_JOB - The job default is used.

i5_decimal_sep

DB2_I5_SEP_PERIOD - A period ( . ) is used as the decimal separator. This is the default.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the decimal separator.

DB2_I5_SEP_JOB - The job default is used.

The following new i5/OS option is available in ibm_db2 version 1.8.0 and later.

i5_libl

A character value that indicates the library list that will be used for resolving unqualified file references. Specify the library list elements separated by blanks 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Nota:

i5_libl calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.

Valor Retornado

Returns a connection handle resource if the connection attempt is successful. db2_pconnect() tries to reuse an existing connection resource that exactly matches the database, username, and password parameters. If the connection attempt fails, db2_pconnect() returns false.

Registro de Alterações

Versão | Descrição
ibm_db2 1.9.0 | Active transactions within a persistent connection will be rolled back at the end of each request.
ibm_db2 1.8.0 | The i5_libl option is available for i5/OS users.
ibm_db2 1.7.0 | The trustedcontext option is available.
ibm_db2 1.5.1 | The i5_lib, i5_naming, i5_commit, i5_query_optimize, i5_dbcs_alloc, i5_date_fmt, i5_date_sep, i5_time_fmt, i5_time_sep and i5_decimal_sep options are available for i5/OS users.

Exemplos

Exemplo #1 A db2_pconnect() example

In the following example, the first call to db2_pconnect() returns a new persistent connection resource. The second call to db2_pconnect() returns a persistent connection resource that simply reuses the first persistent connection resource.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$pconn = db2_pconnect($database, $user, $password);

if ($pconn) {
echo "Persistent connection succeeded.";
}
else {
echo "Persistent connection failed.";
}

$pconn2 = db2_pconnect($database, $user, $password);
if ($pconn) {
echo "Second persistent connection succeeded.";
}
else {
echo "Second persistent connection failed.";
}
?>

O exemplo acima produzirá:

Persistent connection succeeded.
Second persistent connection succeeded.

Exemplo #2 Using trusted context

The following example shows how to enable trusted context, switch users, and get the current user ID.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_pconnect($dsn, "", "", $options);
if($tc_conn) {
echo "Explicit trusted connection succeeded.\n";

if(db2_get_option($tc_conn, "trustedcontext")) {
$userBefore = db2_get_option($tc_conn, "trusted_user");

//Do some work as user 1.

//Switching to trusted user.
$parameters = array("trusted_user" => $tc_user,
"trusted_password" => $tcuser_pass);
$res = db2_set_option ($tc_conn, $parameters, 1);

$userAfter = db2_get_option($tc_conn, "trusted_user");
//Do more work as trusted user.

if($userBefore != $userAfter) {
echo "User has been switched." . "\n";
}
}

db2_close($tc_conn);
}
else {
echo "Explicit trusted connection failed.\n";
}
?>

O exemplo acima produzirá:

Explicit trusted connection succeeded.
User has been switched.

Veja Também

  • db2_connect() - Returns a connection to a database


Prepares an SQL statement to be executed

  • « db2_pconnect
  • db2_primary_keys »
  • PHP Manual
  • IBM DB2 Funções
  • Prepares an SQL statement to be executed

db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepare — Prepares an SQL statement to be executed

Descrição

db2_prepare(resource $connection, string $statement, array $options = []): resource|false

db2_prepare() creates a prepared SQL statement which can include 0 or more parameter markers (? characters) representing parameters for input, output, or input/output. You can pass parameters to the prepared statement using db2_bind_param(), or for input values only, as an array passed to db2_execute().

There are three main advantages to using prepared statements in your application:

  • Performance: when you prepare a statement, the database server creates an optimized access plan for retrieving data with that statement. Subsequently issuing the prepared statement with db2_execute() enables the statements to reuse that access plan and avoids the overhead of dynamically creating a new access plan for every statement you issue.

  • Security: when you prepare a statement, you can include parameter markers for input values. When you execute a prepared statement with input values for placeholders, the database server checks each input value to ensure that the type matches the column definition or parameter definition.

  • Advanced functionality: Parameter markers not only enable you to pass input values to prepared SQL statements, they also enable you to retrieve OUT and INOUT parameters from stored procedures using db2_bind_param().

Parâmetros

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

statement

An SQL statement, optionally containing one or more parameter markers..

options

An associative array containing statement options. You can use this parameter to request a scrollable cursor on database servers that support this functionality.

For a description of valid statement options, see db2_set_option().

Valor Retornado

Returns a statement resource if the SQL statement was successfully parsed and prepared by the database server. Returns false if the database server returned an error. You can determine which error was returned by calling db2_stmt_error() or db2_stmt_errormsg().

Exemplos

Exemplo #1 Preparing and executing an SQL statement with parameter markers

The following example prepares an INSERT statement that accepts four parameter markers, then iterates over an array of arrays containing the input values to be passed to db2_execute().

<?php
$animals = array(
array(0, 'cat', 'Pook', 3.2),
array(1, 'dog', 'Peaches', 12.3),
array(2, 'horse', 'Smarty', 350.0),
);

$insert = 'INSERT INTO animals (id, breed, name, weight)
VALUES (?, ?, ?, ?)';
$stmt = db2_prepare($conn, $insert);
if ($stmt) {
foreach ($animals as $animal) {
$result = db2_execute($stmt, $animal);
}
}
?>

Veja Também

  • db2_bind_param() - Binds a PHP variable to an SQL statement parameter
  • db2_execute() - Executes a prepared SQL statement
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns a result set listing primary keys for a table

  • « db2_prepare
  • db2_procedure_columns »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a result set listing primary keys for a table

db2_primary_keys

(PECL ibm_db2 >= 1.0.0)

db2_primary_keys — Returns a result set listing primary keys for a table

Descrição

db2_primary_keys(
resource $connection,
?string $qualifier,
?string $schema,
string $table_name
): resource

Returns a result set listing the primary keys for a table.

Parâmetros

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. If schema is null, db2_primary_keys() matches the schema for the current connection.

table_name

The name of the table.

Valor Retornado

Returns a statement resource with a result set containing rows describing the primary keys for the specified table. The result set is composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog for the table containing the primary key. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema for the table containing the primary key.
TABLE_NAME | Name of the table containing the primary key.
COLUMN_NAME | Name of the column containing the primary key.
KEY_SEQ | 1-indexed position of the column in the key.
PK_NAME | The name of the primary key.

Veja Também

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing stored procedure parameters

  • « db2_primary_keys
  • db2_procedures »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a result set listing stored procedure parameters

db2_procedure_columns

(PECL ibm_db2 >= 1.0.0)

db2_procedure_columns — Returns a result set listing stored procedure parameters

Descrição

db2_procedure_columns(
resource $connection,
?string $qualifier,
string $schema,
string $procedure,
?string $parameter
): resource

Returns a result set listing the parameters for one or more stored procedures.

Parâmetros

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the procedures. This parameter accepts a search pattern containing _ and % as wildcards.

procedure

The name of the procedure. This parameter accepts a search pattern containing _ and % as wildcards.

parameter

The name of the parameter. This parameter accepts a search pattern containing _ and % as wildcards. If this parameter is null, all parameters for the specified stored procedures are returned.

Valor Retornado

Returns a statement resource with a result set containing rows describing the parameters for the stored procedures matching the specified parameters. The rows are composed of the following columns:

Column name | Description
PROCEDURE_CAT | The catalog that contains the procedure. The value is null if this table does not have catalogs.
PROCEDURE_SCHEM | Name of the schema that contains the stored procedure.
PROCEDURE_NAME | Name of the procedure.
COLUMN_NAME | Name of the parameter.
COLUMN_TYPE

An integer value representing the type of the parameter:

Return value | Parameter type
1 (SQL_PARAM_INPUT) | Input (IN) parameter.
2 (SQL_PARAM_INPUT_OUTPUT) | Input/output (INOUT) parameter.
3 (SQL_PARAM_OUTPUT) | Output (OUT) parameter.
DATA_TYPE | The SQL data type for the parameter represented as an integer value.
TYPE_NAME | A string representing the data type for the parameter.
COLUMN_SIZE | An integer value representing the size of the parameter.
BUFFER_LENGTH | Maximum number of bytes necessary to store data for this parameter.
DECIMAL_DIGITS | The scale of the parameter, or null where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or null (representing a data type for which radix is not applicable).
NULLABLE | An integer value representing whether the parameter is nullable or not.
REMARKS | Description of the parameter.
COLUMN_DEF | Default value for the parameter.
SQL_DATA_TYPE | An integer value representing the size of the parameter.
SQL_DATETIME_SUB | Returns an integer value representing a datetime subtype code, or null for SQL data types to which this does not apply.
CHAR_OCTET_LENGTH | Maximum length in octets for a character data type parameter, which matches COLUMN_SIZE for single-byte character set data, or null for non-character data types.
ORDINAL_POSITION | The 1-indexed position of the parameter in the CALL statement.
IS_NULLABLE | A string value where 'YES' means that the parameter accepts or returns null values and 'NO' means that the parameter does not accept or return null values.

Veja Também

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the stored procedures registered in a database

  • « db2_procedure_columns
  • db2_result »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a result set listing the stored procedures registered in a database

db2_procedures

(PECL ibm_db2 >= 1.0.0)

db2_procedures — Returns a result set listing the stored procedures registered in a database

Descrição

db2_procedures(
resource $connection,
?string $qualifier,
string $schema,
string $procedure
): resource

Returns a result set listing the stored procedures registered in a database.

Parâmetros

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the procedures. This parameter accepts a search pattern containing _ and % as wildcards.

procedure

The name of the procedure. This parameter accepts a search pattern containing _ and % as wildcards.

Valor Retornado

Returns a statement resource with a result set containing rows describing the stored procedures matching the specified parameters. The rows are composed of the following columns:

Column name | Description
PROCEDURE_CAT | The catalog that contains the procedure. The value is null if this table does not have catalogs.
PROCEDURE_SCHEM | Name of the schema that contains the stored procedure.
PROCEDURE_NAME | Name of the procedure.
NUM_INPUT_PARAMS | Number of input (IN) parameters for the stored procedure.
NUM_OUTPUT_PARAMS | Number of output (OUT) parameters for the stored procedure.
NUM_RESULT_SETS | Number of result sets returned by the stored procedure.
REMARKS | Any comments about the stored procedure.
PROCEDURE_TYPE | Always returns 1, indicating that the stored procedure does not return a return value.

Veja Também

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a single column from a row in the result set

  • « db2_procedures
  • db2_rollback »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a single column from a row in the result set

db2_result

(PECL ibm_db2 >= 1.0.0)

db2_result — Returns a single column from a row in the result set

Descrição

db2_result(resource $stmt, int|string $column): ?mixed

Use db2_result() to return the value of a specified column in the current row of a result set. You must call db2_fetch_row() before calling db2_result() to set the location of the result set pointer.

Parâmetros

stmt

A valid stmt resource.

column

Either an integer mapping to the 0-indexed field in the result set, or a string matching the name of the column.

Valor Retornado

Returns the value of the requested field if the field exists in the result set. Returns null if the field does not exist, and issues a warning.

Exemplos

Exemplo #1 A db2_result() example

The following example demonstrates how to iterate through a result set with db2_fetch_row() and retrieve columns from the result set with db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
$name = db2_result($stmt, 0);
$breed = db2_result($stmt, 'BREED');
print "$name $breed";
}
?>

O exemplo acima produzirá:

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

Veja Também

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row


Rolls back a transaction

  • « db2_result
  • db2_server_info »
  • PHP Manual
  • IBM DB2 Funções
  • Rolls back a transaction

db2_rollback

(PECL ibm_db2 >= 1.0.0)

db2_rollback — Rolls back a transaction

Descrição

db2_rollback(resource $connection): bool

Rolls back an in-progress transaction on the specified connection resource and begins a new transaction. PHP applications normally default to AUTOCOMMIT mode, so db2_rollback() normally has no effect unless AUTOCOMMIT has been turned off for the connection resource.

Parâmetros

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Rolling back a DELETE statement

In the following example, we count the number of rows in a table, turn off AUTOCOMMIT mode on a database connection, delete all of the rows in the table and return the count of 0 to prove that the rows have been removed. We then issue db2_rollback() and return the updated count of rows in the table to show that the number is the same as before we issued the DELETE statement. The return to the original state of the table demonstrates that the roll back of the transaction succeeded.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
$stmt = db2_exec($conn, "SELECT count(*) FROM animals");
$res = db2_fetch_array( $stmt );
echo $res[0] . "\n";

// Turn AUTOCOMMIT off
db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);

// Delete all rows from ANIMALS
db2_exec($conn, "DELETE FROM animals");

$stmt = db2_exec($conn, "SELECT count(*) FROM animals");
$res = db2_fetch_array( $stmt );
echo $res[0] . "\n";

// Roll back the DELETE statement
db2_rollback( $conn );

$stmt = db2_exec( $conn, "SELECT count(*) FROM animals" );
$res = db2_fetch_array( $stmt );
echo $res[0] . "\n";
db2_close($conn);
}
?>

O exemplo acima produzirá:

7
0
7

Veja Também

  • db2_autocommit() - Returns or sets the AUTOCOMMIT state for a database connection
  • db2_commit() - Commits a transaction


Returns an object with properties that describe the DB2 database server

  • « db2_rollback
  • db2_set_option »
  • PHP Manual
  • IBM DB2 Funções
  • Returns an object with properties that describe the DB2 database server

db2_server_info

(PECL ibm_db2 >= 1.1.1)

db2_server_info — Returns an object with properties that describe the DB2 database server

Descrição

db2_server_info(resource $connection): stdClass|false

This function returns an object with read-only properties that return information about the IBM DB2, Cloudscape, or Apache Derby database server. The following table lists the database server properties:

Database server properties
Property name | Return type | Description
DBMS_NAME | string | The name of the database server to which you are connected. For DB2 servers this is a combination of DB2 followed by the operating system on which the database server is running.
DBMS_VER | string | The version of the database server, in the form of a string "MM.mm.uuuu" where MM is the major version, mm is the minor version, and uuuu is the update. For example, "08.02.0001" represents major version 8, minor version 2, update 1.
DB_CODEPAGE | int | The code page of the database to which you are connected.
DB_NAME | string | The name of the database to which you are connected.
DFT_ISOLATION string

The default transaction isolation level supported by the server:

UR

Uncommitted read: changes are immediately visible by all concurrent transactions.

CS

Cursor stability: a row read by one transaction can be altered and committed by a second concurrent transaction.

RS

Read stability: a transaction can add or remove rows matching a search condition or a pending transaction.

RR

Repeatable read: data affected by pending transaction is not available to other transactions.

NC

No commit: any changes are visible at the end of a successful operation. Explicit commits and rollbacks are not allowed.

IDENTIFIER_QUOTE_CHAR | string | The character used to delimit an identifier.
INST_NAME | string | The instance on the database server that contains the database.
ISOLATION_OPTION | array | An array of the isolation options supported by the database server. The isolation options are described in the DFT_ISOLATION property.
KEYWORDS | array | An array of the keywords reserved by the database server.
LIKE_ESCAPE_CLAUSE | bool | true if the database server supports the use of % and _ wildcard characters. false if the database server does not support these wildcard characters.
MAX_COL_NAME_LEN | int | Maximum length of a column name supported by the database server, expressed in bytes.
MAX_IDENTIFIER_LEN | int | Maximum length of an SQL identifier supported by the database server, expressed in characters.
MAX_INDEX_SIZE | int | Maximum size of columns combined in an index supported by the database server, expressed in bytes.
MAX_PROC_NAME_LEN | int | Maximum length of a procedure name supported by the database server, expressed in bytes.
MAX_ROW_SIZE | int | Maximum length of a row in a base table supported by the database server, expressed in bytes.
MAX_SCHEMA_NAME_LEN | int | Maximum length of a schema name supported by the database server, expressed in bytes.
MAX_STATEMENT_LEN | int | Maximum length of an SQL statement supported by the database server, expressed in bytes.
MAX_TABLE_NAME_LEN | int | Maximum length of a table name supported by the database server, expressed in bytes.
NON_NULLABLE_COLUMNS | bool | true if the database server supports columns that can be defined as NOT NULL, false if the database server does not support columns defined as NOT NULL.
PROCEDURES | bool | true if the database server supports the use of the CALL statement to call stored procedures, false if the database server does not support the CALL statement.
SPECIAL_CHARS | string | A string containing all of the characters other than a-Z, 0-9, and underscore that can be used in an identifier name.
SQL_CONFORMANCE string

The level of conformance to the ANSI/ISO SQL-92 specification offered by the database server:

ENTRY

Entry-level SQL-92 compliance.

FIPS127

FIPS-127-2 transitional compliance.

FULL

Full level SQL-92 compliance.

INTERMEDIATE

Intermediate level SQL-92 compliance.

Parâmetros

connection

Specifies an active DB2 client connection.

Valor Retornado

Returns an object on a successful call, ou false em caso de falha

Exemplos

Exemplo #1 A db2_server_info() example

To retrieve information about the server, you must pass a valid database connection resource to db2_server_info().

<?php

$conn = db2_connect('sample', 'db2inst1', 'ibmdb2');

$server = db2_server_info( $conn );

if ($server) {
echo "DBMS_NAME: "; var_dump( $server->DBMS_NAME );
echo "DBMS_VER: "; var_dump( $server->DBMS_VER );
echo "DB_CODEPAGE: "; var_dump( $server->DB_CODEPAGE );
echo "DB_NAME: "; var_dump( $server->DB_NAME );
echo "INST_NAME: "; var_dump( $server->INST_NAME );
echo "SPECIAL_CHARS: "; var_dump( $server->SPECIAL_CHARS );
echo "KEYWORDS: "; var_dump( sizeof($server->KEYWORDS) );
echo "DFT_ISOLATION: "; var_dump( $server->DFT_ISOLATION );
echo "ISOLATION_OPTION: ";
$il = '';
foreach( $server->ISOLATION_OPTION as $opt )
{
$il .= $opt." ";
}
var_dump( $il );
echo "SQL_CONFORMANCE: "; var_dump( $server->SQL_CONFORMANCE );
echo "PROCEDURES: "; var_dump( $server->PROCEDURES );
echo "IDENTIFIER_QUOTE_CHAR: "; var_dump( $server->IDENTIFIER_QUOTE_CHAR );
echo "LIKE_ESCAPE_CLAUSE: "; var_dump( $server->LIKE_ESCAPE_CLAUSE );
echo "MAX_COL_NAME_LEN: "; var_dump( $server->MAX_COL_NAME_LEN );
echo "MAX_ROW_SIZE: "; var_dump( $server->MAX_ROW_SIZE );
echo "MAX_IDENTIFIER_LEN: "; var_dump( $server->MAX_IDENTIFIER_LEN );
echo "MAX_INDEX_SIZE: "; var_dump( $server->MAX_INDEX_SIZE );
echo "MAX_PROC_NAME_LEN: "; var_dump( $server->MAX_PROC_NAME_LEN );
echo "MAX_SCHEMA_NAME_LEN: "; var_dump( $server->MAX_SCHEMA_NAME_LEN );
echo "MAX_STATEMENT_LEN: "; var_dump( $server->MAX_STATEMENT_LEN );
echo "MAX_TABLE_NAME_LEN: "; var_dump( $server->MAX_TABLE_NAME_LEN );
echo "NON_NULLABLE_COLUMNS: "; var_dump( $server->NON_NULLABLE_COLUMNS );

db2_close($conn);
}
?>

O exemplo acima produzirá:

DBMS_NAME: string(9) "DB2/LINUX"
DBMS_VER: string(10) "08.02.0000"
DB_CODEPAGE: int(1208)
DB_NAME: string(6) "SAMPLE"
INST_NAME: string(8) "db2inst1"
SPECIAL_CHARS: string(2) "@#"
KEYWORDS: int(179)
DFT_ISOLATION: string(2) "CS"
ISOLATION_OPTION: string(12) "UR CS RS RR "
SQL_CONFORMANCE: string(7) "FIPS127"
PROCEDURES: bool(true)
IDENTIFIER_QUOTE_CHAR: string(1) """
LIKE_ESCAPE_CLAUSE: bool(true)
MAX_COL_NAME_LEN: int(30)
MAX_ROW_SIZE: int(32677)
MAX_IDENTIFIER_LEN: int(18)
MAX_INDEX_SIZE: int(1024)
MAX_PROC_NAME_LEN: int(128)
MAX_SCHEMA_NAME_LEN: int(30)
MAX_STATEMENT_LEN: int(2097152)
MAX_TABLE_NAME_LEN: int(128)
NON_NULLABLE_COLUMNS: bool(true)

Veja Também

  • db2_client_info() - Returns an object with properties that describe the DB2 database client


Set options for connection or statement resources

  • « db2_server_info
  • db2_special_columns »
  • PHP Manual
  • IBM DB2 Funções
  • Set options for connection or statement resources

db2_set_option

(PECL ibm_db2 >= 1.0.0)

db2_set_option — Set options for connection or statement resources

Descrição

db2_set_option(resource $resource, array $options, int $type): bool

Sets options for a statement resource or a connection resource. You cannot set options for result set resources.

Parâmetros

resource

A valid statement resource as returned from db2_prepare() or a valid connection resource as returned from db2_connect() or db2_pconnect().

options

An associative array containing valid statement or connection options. This parameter can be used to change autocommit values, cursor types (scrollable or forward), and to specify the case of the column names (lower, upper, or natural) that will appear in a result set.

autocommit

Passing DB2_AUTOCOMMIT_ON turns autocommit on for the specified connection resource.

Passing DB2_AUTOCOMMIT_OFF turns autocommit off for the specified connection resource.

cursor

Passing DB2_FORWARD_ONLY specifies a forward-only cursor for a statement resource. This is the default cursor type, and is supported by all database servers.

Passing DB2_SCROLLABLE specifies a scrollable cursor for a statement resource. Scrollable cursors enable result set rows to be accessed in non-sequential order, but are only supported by IBM DB2 Universal Database databases.

binmode

Passing DB2_BINARY specifies that binary data will be returned as is. This is the default mode. This is the equivalent of setting ibm_db2.binmode=1 in php.ini.

Passing DB2_CONVERT specifies that binary data will be converted to hexadecimal encoding, and will be returned as such. This is the equivalent of setting ibm_db2.binmode=2 in php.ini.

Passing DB2_PASSTHRU specifies that binary data will be converted to null. This is the equivalent of setting ibm_db2.binmode=3 in php.ini.

db2_attr_case

Passing DB2_CASE_LOWER specifies that column names of the result set are returned in lower case.

Passing DB2_CASE_UPPER specifies that column names of the result set are returned in upper case.

Passing DB2_CASE_NATURAL specifies that column names of the result set are returned in natural case.

deferred_prepare

Passing DB2_DEFERRED_PREPARE_ON turns deferred prepare on for the specified statement resource.

Passing DB2_DEFERRED_PREPARE_OFF turns deferred prepare off for the specified statement resource.

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later. These options apply only when running PHP and ibm_db2 natively on i5 systems.

i5_fetch_only

DB2_I5_FETCH_ON - Cursors are read-only and cannot be used for positioned updates or deletes. This is the default unless SQL_ATTR_FOR_FETCH_ONLY environment has been set to SQL_FALSE.

DB2_I5_FETCH_OFF - Cursors can be used for positioned updates and deletes.

The following new option is available in ibm_db2 version 1.8.0 and later.

rowcount

DB2_ROWCOUNT_PREFETCH_ON - Client can request the full row count prior to fetching, which means that db2_num_rows() returns the number of rows selected even when a ROLLFORWARD_ONLY cursor is used.

DB2_ROWCOUNT_PREFETCH_OFF - Client cannot request the full row count prior to fetching.

The following new options are available in ibm_db2 version 1.7.0 and later.

trusted_user

To switch the user to a trusted user, pass the User ID (String) of the trusted user as the value of this key. This option can be set on a connection resource only. To use this option, trusted context must be enabled on the connection resource.

trusted_password

The password (String) that corresponds to the user specified by the trusted_user key.

The following new options are available in ibm_db2 version 1.6.0 and later. These options provide useful tracking information that can be accessed during execution with db2_get_option().

Nota:

When the value in each option is being set, some servers might not handle the entire length provided and might truncate the value.

To ensure that the data specified in each option is converted correctly when transmitted to a host system, use only the characters A through Z, 0 through 9, and the underscore (_) or period (.).

userid

SQL_ATTR_INFO_USERID - A pointer to a null-terminated character string used to identify the client user ID sent to the host database server when using DB2 Connect.

Nota:

DB2 for z/OS and OS/390 servers support up to a length of 16 characters. This user-id is not to be confused with the authentication user-id, it is for identification purposes only and is not used for any authorization.

acctstr

SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated character string used to identify the client accounting string sent to the host database server when using DB2 Connect.

Nota:

DB2 for z/OS and OS/390 servers support up to a length of 200 characters.

applname

SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated character string used to identify the client application name sent to the host database server when using DB2 Connect.

Nota:

DB2 for z/OS and OS/390 servers support up to a length of 32 characters.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated character string used to identify the client workstation name sent to the host database server when using DB2 Connect.

Nota:

DB2 for z/OS and OS/390 servers support up to a length of 18 characters.

type

An integer value that specifies the type of resource that was passed into the function. The type of resource and this value must correspond.

Passing 1 as the value specifies that a connection resource has been passed into the function.

Passing any integer not equal to 1 as the value specifies that a statement resource has been passed into the function.

The following table specifies which options are compatible with the available resource types:

Resource-Parameter Matrix
Key | Value | Resource Type
 |  | Connection | Statement | Result Set
autocommit | DB2_AUTOCOMMIT_ON | X | - | -
autocommit | DB2_AUTOCOMMIT_OFF | X | - | -
cursor | DB2_SCROLLABLE | - | X | -
cursor | DB2_FORWARD_ONLY | - | X | -
binmode | DB2_BINARY | X | X | -
binmode | DB2_CONVERT | X | X | -
binmode | DB2_PASSTHRU | X | X | -
db2_attr_case | DB2_CASE_LOWER | X | X | -
db2_attr_case | DB2_CASE_UPPER | X | X | -
db2_attr_case | DB2_CASE_NATURAL | X | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_ON | - | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_OFF | - | X | -
i5_fetch_only | DB2_I5_FETCH_ON | - | X | -
i5_fetch_only | DB2_I5_FETCH_OFF | - | X | -
rowcount | DB2_ROWCOUNT_PREFETCH_ON | - | X | -
rowcount | DB2_ROWCOUNT_PREFETCH_OFF | - | X | -
trusted_user | <USER NAME> (String) | X | - | -
trusted_password | <PASSWORD> (String) | X | - | -
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Setting one parameter with a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_ON);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
echo 'Options Set Successfully';
}
else
{
echo 'Could Not Set Options';
}
?>

O exemplo acima produzirá:

Options Set Successfully

Exemplo #2 Setting multiple parameters with a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
echo 'Options Set Successfully';
}
else
{
echo 'Could Not Set Options';
}
?>

O exemplo acima produzirá:

Options Set Successfully

Exemplo #3 Setting multiple parameters with an invalid key

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'MY_INVALID_KEY' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
echo 'Options Set Successfully';
}
else
{
echo 'Could Not Set Options';
}
?>

O exemplo acima produzirá:

Could Not Set Options

Exemplo #4 Setting multiple parameters with an invalid value

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => 'INVALID_VALUE',
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
echo 'Options Set Successfully';
}
else
{
echo 'Could Not Set Options';
}
?>

O exemplo acima produzirá:

Could Not Set Options

Exemplo #5 Setting multiple parameters with a connection resource and the wrong type

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and the wrong type value */
$result = db2_set_option($conn, $options, 2);

/* Check if all options could be set correctly */
if($result)
{
echo 'Options Set Successfully';
}
else
{
echo 'Could Not Set Options';
}
?>

O exemplo acima produzirá:

Could Not Set Options

Exemplo #6 Setting multiple parameters with the wrong resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
'binmode' => DB2_PASSTHRU,
'db2_attr_case' => DB2_CASE_UPPER,
'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE');

/* Call the function using the wrong resource, and the correct options array, and type values */
$result = db2_set_option($stmt, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
echo 'Options Set Successfully';
}
else
{
echo 'Could Not Set Options';
}
?>

O exemplo acima produzirá:

Could Not Set Options

Exemplo #7 Putting it all together

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('db2_attr_case' => DB2_CASE_LOWER,
'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE WHERE EMPNO = ? OR EMPNO = ?');

/* Call the function using the correct resource, options array, and type values */
$option_result = db2_set_option($stmt, $options, 2);
$result = db2_execute($stmt, array('000130', '000140'));

/* Get Row 2 before Row 1 since Scrollable Cursor */
print_r(db2_fetch_assoc($stmt, 2));
print '<br /><br />';
print_r(db2_fetch_assoc($stmt, 1));

?>

O exemplo acima produzirá:

Array
(
    [empno] => 000140
    [firstnme] => HEATHER
    [midinit] => A
    [lastname] => NICHOLLS
    [workdept] => C01
    [phoneno] => 1793
    [hiredate] => 1976-12-15
    [job] => ANALYST
    [edlevel] => 18
    [sex] => F
    [birthdate] => 1946-01-19
    [salary] => 28420.00
    [bonus] => 600.00
    [comm] => 2274.00
)

Array
(
    [empno] => 000130
    [firstnme] => DELORES
    [midinit] => M
    [lastname] => QUINTANA
    [workdept] => C01
    [phoneno] => 4578
    [hiredate] => 1971-07-28
    [job] => ANALYST
    [edlevel] => 16
    [sex] => F
    [birthdate] => 1925-09-15
    [salary] => 23800.00
    [bonus] => 500.00
    [comm] => 1904.00
)

Exemplo #8 i5/OS cursors are read-only

<?php
$conn = db2_connect("", "", "", array("i5_lib"=>"nobody"));
$stmt = db2_prepare($conn, 'select * from names where first = ?');
$name = "first2";
db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
$options = array("i5_fetch_only"=>DB2_I5_FETCH_ON);
db2_set_option($stmt,$options,0);
if (db2_execute($stmt)) {
while ($row = db2_fetch_array($stmt)) {
echo "{$row[0]} {$row[1]}";
}
}
?>

O exemplo acima produzirá:

first2 last2

Veja Também

  • db2_connect() - Returns a connection to a database
  • db2_pconnect() - Returns a persistent connection to a database
  • db2_exec() - Executes an SQL statement directly
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_cursor_type() - Returns the cursor type used by a statement resource


Returns a result set listing the unique row identifier columns for a table

  • « db2_set_option
  • db2_statistics »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a result set listing the unique row identifier columns for a table

db2_special_columns

(PECL ibm_db2 >= 1.0.0)

db2_special_columns — Returns a result set listing the unique row identifier columns for a table

Descrição

db2_special_columns(
resource $connection,
?string $qualifier,
string $schema,
string $table_name,
int $scope
): resource

Returns a result set listing the unique row identifier columns for a table.

Parâmetros

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables.

table_name

The name of the table.

scope

Integer value representing the minimum duration for which the unique row identifier is valid. This can be one of the following values:

Integer value | SQL constant | Description
0 | SQL_SCOPE_CURROW | Row identifier is valid only while the cursor is positioned on the row.
1 | SQL_SCOPE_TRANSACTION | Row identifier is valid for the duration of the transaction.
2 | SQL_SCOPE_SESSION | Row identifier is valid for the duration of the connection.

Valor Retornado

Returns a statement resource with a result set containing rows with unique row identifier information for a table. The rows are composed of the following columns:

Column name | Description
SCOPE

Integer value | SQL constant | Description
0 | SQL_SCOPE_CURROW | Row identifier is valid only while the cursor is positioned on the row.
1 | SQL_SCOPE_TRANSACTION | Row identifier is valid for the duration of the transaction.
2 | SQL_SCOPE_SESSION | Row identifier is valid for the duration of the connection.
COLUMN_NAME | Name of the unique column.
DATA_TYPE | SQL data type for the column.
TYPE_NAME | Character string representation of the SQL data type for the column.
COLUMN_SIZE | An integer value representing the size of the column.
BUFFER_LENGTH | Maximum number of bytes necessary to store data from this column.
DECIMAL_DIGITS | The scale of the column, or null where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or null (representing a data type for which radix is not applicable).
PSEUDO_COLUMN | Always returns 1.

Veja Também

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the index and statistics for a table

  • « db2_special_columns
  • db2_stmt_error »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a result set listing the index and statistics for a table

db2_statistics

(PECL ibm_db2 >= 1.0.0)

db2_statistics — Returns a result set listing the index and statistics for a table

Descrição

db2_statistics(
resource $connection,
?string $qualifier,
?string $schema,
string $table_name,
bool $unique
): resource

Returns a result set listing the index and statistics for a table.

Parâmetros

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema that contains the targeted table. If this parameter is null, the statistics and indexes are returned for the schema of the current user.

table_name

The name of the table.

unique

When unique is true, the information for all indexes in the table are returned. Otherwise, only the information for unique indexes in the table are returned.

Valor Retornado

Returns a statement resource with a result set containing rows describing the statistics and indexes for the base tables matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is null if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
NON_UNIQUE

An integer value representing whether the index prohibits unique values, or whether the row represents statistics on the table itself:

Return value | Parameter type
0 (SQL_FALSE) | The index allows duplicate values.
1 (SQL_TRUE) | The index values must be unique.
null | This row is statistics information for the table itself.
INDEX_QUALIFIER | A string value representing the qualifier that would have to be prepended to INDEX_NAME to fully qualify the index.
INDEX_NAME | A string representing the name of the index.
TYPE

An integer value representing the type of information contained in this row of the result set:

Return value | Parameter type
0 (SQL_TABLE_STAT) | The row contains statistics about the table itself.
1 (SQL_INDEX_CLUSTERED) | The row contains information about a clustered index.
2 (SQL_INDEX_HASH) | The row contains information about a hashed index.
3 (SQL_INDEX_OTHER) | The row contains information about a type of index that is neither clustered nor hashed.
ORDINAL_POSITION | The 1-indexed position of the column in the index. null if the row contains statistics information about the table itself.
COLUMN_NAME | The name of the column in the index. null if the row contains statistics information about the table itself.
ASC_OR_DESC | A if the column is sorted in ascending order, D if the column is sorted in descending order, null if the row contains statistics information about the table itself.
CARDINALITY

If the row contains information about an index, this column contains an integer value representing the number of unique values in the index.

If the row contains information about the table itself, this column contains an integer value representing the number of rows in the table.

PAGES

If the row contains information about an index, this column contains an integer value representing the number of pages used to store the index.

If the row contains information about the table itself, this column contains an integer value representing the number of pages used to store the table.

FILTER_CONDITION | Always returns null.

Veja Também

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a string containing the SQLSTATE returned by an SQL statement

  • « db2_statistics
  • db2_stmt_errormsg »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a string containing the SQLSTATE returned by an SQL statement

db2_stmt_error

(PECL ibm_db2 >= 1.0.0)

db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement

Descrição

db2_stmt_error(?resource $stmt = null): string

Returns a string containing the SQLSTATE value returned by an SQL statement.

If you do not pass a statement resource as an argument to db2_stmt_error(), the driver returns the SQLSTATE value associated with the last attempt to return a statement resource, for example, from db2_prepare() or db2_exec().

To learn what the SQLSTATE value means, you can issue the following command at a DB2 Command Line Processor prompt: db2 '? sqlstate-value'. You can also call db2_stmt_errormsg() to retrieve an explicit error message and the associated SQLCODE value.

Parâmetros

stmt

A valid statement resource.

Valor Retornado

Returns a string containing an SQLSTATE value.

Veja Também

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns a string containing the last SQL statement error message

  • « db2_stmt_error
  • db2_table_privileges »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a string containing the last SQL statement error message

db2_stmt_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_stmt_errormsg — Returns a string containing the last SQL statement error message

Descrição

db2_stmt_errormsg(?resource $stmt = null): string

Returns a string containing the last SQL statement error message.

If you do not pass a statement resource as an argument to db2_stmt_errormsg(), the driver returns the error message associated with the last attempt to return a statement resource, for example, from db2_prepare() or db2_exec().

Parâmetros

stmt

A valid statement resource.

Valor Retornado

Returns a string containing the error message and SQLCODE value for the last error that occurred issuing an SQL statement.

Veja Também

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement


Returns a result set listing the tables and associated privileges in a database

  • « db2_stmt_errormsg
  • db2_tables »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a result set listing the tables and associated privileges in a database

db2_table_privileges

(PECL ibm_db2 >= 1.0.0)

db2_table_privileges — Returns a result set listing the tables and associated privileges in a database

Descrição

db2_table_privileges(
resource $connection,
?string $qualifier = null,
?string $schema = null,
?string $table_name = null
): resource

Returns a result set listing the tables and associated privileges in a database.

Parâmetros

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. This parameter accepts a search pattern containing _ and % as wildcards.

table_name

The name of the table. This parameter accepts a search pattern containing _ and % as wildcards.

Valor Retornado

Returns a statement resource with a result set containing rows describing the privileges for the tables that match the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is null if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
GRANTOR | Authorization ID of the user who granted the privilege.
GRANTEE | Authorization ID of the user to whom the privilege was granted.
PRIVILEGE | The privilege that has been granted. This can be one of ALTER, CONTROL, DELETE, INDEX, INSERT, REFERENCES, SELECT, or UPDATE.
IS_GRANTABLE | A string value of "YES" or "NO" indicating whether the grantee can grant the privilege to other users.

Veja Também

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the tables and associated metadata in a database

  • « db2_table_privileges
  • MongoDB »
  • PHP Manual
  • IBM DB2 Funções
  • Returns a result set listing the tables and associated metadata in a database

db2_tables

(PECL ibm_db2 >= 1.0.0)

db2_tables — Returns a result set listing the tables and associated metadata in a database

Descrição

db2_tables(
resource $connection,
?string $qualifier = null,
?string $schema = null,
?string $table_name = null,
?string $table_type = null
): resource

Returns a result set listing the tables and associated metadata in a database.

Parâmetros

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. This parameter accepts a search pattern containing _ and % as wildcards.

table_name

The name of the table. This parameter accepts a search pattern containing _ and % as wildcards.

table_type

A list of comma-delimited table type identifiers. To match all table types, pass null or an empty string. Valid table type identifiers include: ALIAS, HIERARCHY TABLE, INOPERATIVE VIEW, NICKNAME, MATERIALIZED QUERY TABLE, SYSTEM TABLE, TABLE, TYPED TABLE, TYPED VIEW, and VIEW.

Valor Retornado

Returns a statement resource with a result set containing rows describing the tables that match the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is null if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
TABLE_TYPE | Table type identifier for the table.
REMARKS | Description of the table.

Veja Também

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database


MongoDB driver

This extension is developed atop the » libmongoc and » libbson libraries. It provides a minimal API for core driver functionality: commands, queries, writes, connection management, and BSON serialization.

Userland PHP libraries that depend on this extension may provide higher level APIs, such as query builders, individual command helper methods, and GridFS. Application developers should consider using this extension in conjunction with the » MongoDB PHP library, which implements the same higher level APIs found in MongoDB drivers for other languages. This separation of concerns allows the driver to focus on essential features for which an extension implementation is paramount for performance.

  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Constantes pré-definidas
  • Tutorials
    • Using the PHP Library for MongoDB (PHPLIB)
    • Application Performance Monitoring (APM)
  • Driver Architecture and Internals — Explains the driver architecture, and special features
    • Architecture — Architecture Overview
    • Connections — Connection handling and persistence
    • Persisting Data — Serialization and deserialization of PHP variables into MongoDB
  • Security
    • Request Injection Attacks
    • Script Injection Attacks
  • MongoDB\Driver — MongoDB driver classes
    • MongoDB\Driver\Manager — The MongoDB\Driver\Manager class
    • MongoDB\Driver\Command — The MongoDB\Driver\Command class
    • MongoDB\Driver\Query — The MongoDB\Driver\Query class
    • MongoDB\Driver\BulkWrite — The MongoDB\Driver\BulkWrite class
    • MongoDB\Driver\Session — The MongoDB\Driver\Session class
    • MongoDB\Driver\ClientEncryption — The MongoDB\Driver\ClientEncryption class
    • MongoDB\Driver\ServerApi — The MongoDB\Driver\ServerApi class
    • MongoDB\Driver\WriteConcern — The MongoDB\Driver\WriteConcern class
    • MongoDB\Driver\ReadPreference — The MongoDB\Driver\ReadPreference class
    • MongoDB\Driver\ReadConcern — The MongoDB\Driver\ReadConcern class
    • MongoDB\Driver\Cursor — The MongoDB\Driver\Cursor class
    • MongoDB\Driver\CursorId — The MongoDB\Driver\CursorId class
    • MongoDB\Driver\CursorInterface — The MongoDB\Driver\CursorInterface interface
    • MongoDB\Driver\Server — The MongoDB\Driver\Server class
    • MongoDB\Driver\ServerDescription — The MongoDB\Driver\ServerDescription class
    • MongoDB\Driver\TopologyDescription — The MongoDB\Driver\TopologyDescription class
    • MongoDB\Driver\WriteConcernError — The MongoDB\Driver\WriteConcernError class
    • MongoDB\Driver\WriteError — The MongoDB\Driver\WriteError class
    • MongoDB\Driver\WriteResult — The MongoDB\Driver\WriteResult class
  • MongoDB\BSON — BSON type classes and serialization functions
    • Funções
    • MongoDB\BSON\Document — The MongoDB\BSON\Document class
    • MongoDB\BSON\PackedArray — The MongoDB\BSON\PackedArray class
    • MongoDB\BSON\Iterator — The MongoDB\BSON\Iterator class
    • MongoDB\BSON\Binary — The MongoDB\BSON\Binary class
    • MongoDB\BSON\Decimal128 — The MongoDB\BSON\Decimal128 class
    • MongoDB\BSON\Javascript — The MongoDB\BSON\Javascript class
    • MongoDB\BSON\MaxKey — The MongoDB\BSON\MaxKey class
    • MongoDB\BSON\MinKey — The MongoDB\BSON\MinKey class
    • MongoDB\BSON\ObjectId — The MongoDB\BSON\ObjectId class
    • MongoDB\BSON\Regex — The MongoDB\BSON\Regex class
    • MongoDB\BSON\Timestamp — The MongoDB\BSON\Timestamp class
    • MongoDB\BSON\UTCDateTime — The MongoDB\BSON\UTCDateTime class
    • MongoDB\BSON\Type — The MongoDB\BSON\Type interface
    • MongoDB\BSON\Persistable — The MongoDB\BSON\Persistable interface
    • MongoDB\BSON\Serializable — The MongoDB\BSON\Serializable interface
    • MongoDB\BSON\Unserializable — The MongoDB\BSON\Unserializable interface
    • MongoDB\BSON\BinaryInterface — The MongoDB\BSON\BinaryInterface interface
    • MongoDB\BSON\Decimal128Interface — The MongoDB\BSON\Decimal128Interface interface
    • MongoDB\BSON\JavascriptInterface — The MongoDB\BSON\JavascriptInterface interface
    • MongoDB\BSON\MaxKeyInterface — The MongoDB\BSON\MaxKeyInterface interface
    • MongoDB\BSON\MinKeyInterface — The MongoDB\BSON\MinKeyInterface interface
    • MongoDB\BSON\ObjectIdInterface — The MongoDB\BSON\ObjectIdInterface interface
    • MongoDB\BSON\RegexInterface — The MongoDB\BSON\RegexInterface interface
    • MongoDB\BSON\TimestampInterface — The MongoDB\BSON\TimestampInterface interface
    • MongoDB\BSON\UTCDateTimeInterface — The MongoDB\BSON\UTCDateTimeInterface interface
    • MongoDB\BSON\DBPointer — The MongoDB\BSON\DBPointer class (deprecated)
    • MongoDB\BSON\Int64 — The MongoDB\BSON\Int64 class
    • MongoDB\BSON\Symbol — The MongoDB\BSON\Symbol class (deprecated)
    • MongoDB\BSON\Undefined — The MongoDB\BSON\Undefined class (deprecated)
  • MongoDB\Driver\Monitoring — Monitoring classes and subscriber functions
    • Funções
    • MongoDB\Driver\Monitoring\CommandFailedEvent — The MongoDB\Driver\Monitoring\CommandFailedEvent class
    • MongoDB\Driver\Monitoring\CommandStartedEvent — The MongoDB\Driver\Monitoring\CommandStartedEvent class
    • MongoDB\Driver\Monitoring\CommandSucceededEvent — The MongoDB\Driver\Monitoring\CommandSucceededEvent class
    • MongoDB\Driver\Monitoring\ServerChangedEvent — The MongoDB\Driver\Monitoring\ServerChangedEvent class
    • MongoDB\Driver\Monitoring\ServerClosedEvent — The MongoDB\Driver\Monitoring\ServerClosedEvent class
    • MongoDB\Driver\Monitoring\ServerOpeningEvent — The MongoDB\Driver\Monitoring\ServerOpeningEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent class
    • MongoDB\Driver\Monitoring\TopologyChangedEvent — The MongoDB\Driver\Monitoring\TopologyChangedEvent class
    • MongoDB\Driver\Monitoring\TopologyClosedEvent — The MongoDB\Driver\Monitoring\TopologyClosedEvent class
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent — The MongoDB\Driver\Monitoring\TopologyOpeningEvent class
    • MongoDB\Driver\Monitoring\CommandSubscriber — The MongoDB\Driver\Monitoring\CommandSubscriber interface
    • MongoDB\Driver\Monitoring\LogSubscriber — The MongoDB\Driver\Monitoring\LogSubscriber interface
    • MongoDB\Driver\Monitoring\SDAMSubscriber — The MongoDB\Driver\Monitoring\SDAMSubscriber interface
    • MongoDB\Driver\Monitoring\Subscriber — The MongoDB\Driver\Monitoring\Subscriber interface
  • MongoDB\Driver\Exception — Exception classes
    • MongoDB\Driver\Exception\AuthenticationException — The MongoDB\Driver\Exception\AuthenticationException class
    • MongoDB\Driver\Exception\BulkWriteException — The MongoDB\Driver\Exception\BulkWriteException class
    • MongoDB\Driver\Exception\CommandException — The MongoDB\Driver\Exception\CommandException class
    • MongoDB\Driver\Exception\ConnectionException — The MongoDB\Driver\Exception\ConnectionException class
    • MongoDB\Driver\Exception\ConnectionTimeoutException — The MongoDB\Driver\Exception\ConnectionTimeoutException class
    • MongoDB\Driver\Exception\EncryptionException — The MongoDB\Driver\Exception\EncryptionException class
    • MongoDB\Driver\Exception\Exception — The MongoDB\Driver\Exception\Exception interface
    • MongoDB\Driver\Exception\ExecutionTimeoutException — The MongoDB\Driver\Exception\ExecutionTimeoutException class
    • MongoDB\Driver\Exception\InvalidArgumentException — The MongoDB\Driver\Exception\InvalidArgumentException class
    • MongoDB\Driver\Exception\LogicException — The MongoDB\Driver\Exception\LogicException class
    • MongoDB\Driver\Exception\RuntimeException — The MongoDB\Driver\Exception\RuntimeException class
    • MongoDB\Driver\Exception\ServerException — The MongoDB\Driver\Exception\ServerException class
    • MongoDB\Driver\Exception\SSLConnectionException — The MongoDB\Driver\Exception\SSLConnectionException class (deprecated)
    • MongoDB\Driver\Exception\UnexpectedValueException — The MongoDB\Driver\Exception\UnexpectedValueException class
    • MongoDB\Driver\Exception\WriteException — The MongoDB\Driver\Exception\WriteException class
    • Class Tree — MongoDB Exception Class Tree


Instalação/Configuração

  • Dependências
  • Instalação
    • Installing the MongoDB PHP Driver with PECL
    • Installing the MongoDB PHP Driver on macOS with Homebrew
    • Installing the MongoDB PHP Driver on Windows
    • Building the MongoDB PHP Driver from source
  • Configurações em Execução
  • Constantes pré-definidas


Dependências

As of version 1.16.0, the driver requires PHP 7.2 or higher. Previous versions of the driver allow compatibility with older PHP versions.

The driver requires » libbson and » libmongoc, and will use bundled versions of both libraries by default. System libraries may also be used, as discussed in the manual installation documentation.

The driver, via libmongoc, optionally depends on a TLS library (e.g. OpenSSL) and will use it if available. If the build process fails to find a TLS library, users should check that the appropriate development package (e.g. libssl-dev) and » pkg-config are both installed. The process for detecting and configuring TLS libraries is discussed in more detail in the manual installation documentation.

» Cyrus SASL is an optional dependency to support Kerberos authentication and will be used if available.

Nota: Due to potential problems representing 64-bit integers on 32-bit platforms, users are advised to use 64-bit environments. When using a 32-bit platform, be aware that any 64-bit integer read from the database will be returned as a MongoDB\BSON\Int64 instance instead of a PHP integer type.


Instalação

Índice

  • Installing the MongoDB PHP Driver with PECL
  • Installing the MongoDB PHP Driver on macOS with Homebrew
  • Installing the MongoDB PHP Driver on Windows
  • Building the MongoDB PHP Driver from source


Installing the MongoDB PHP Driver with PECL

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/mongodb

Linux, Unix, and macOS users may run the following command to install the driver:

$ sudo pecl install mongodb

On systems with multiple version of PHP installed (e.g. macOS default, Homebrew, » XAMPP), each version of PHP will have its own pecl command and php.ini file(s). Additionally, each PHP environments (e.g. CLI, web) may use separate php.ini files.

As of driver version 1.17.0, PECL will prompt for various configure options. To install the driver with default options in a non-interactive script, empty string input may be piped to pecl install using the yes command:

$ yes '' | sudo pecl install mongodb

A complete list of supported configure options can be found in the package.xml file included in the PECL package. To install the driver with specific configure options in a non-interactive script, the --configureoptions option for pecl install may be used:

$ sudo pecl install --configureoptions='with-mongodb-system-libs="yes" enable-mongodb-developer-flags="no"' mongodb

By default, installing the driver via PECL will use bundled versions of » libbson, » libmongoc, and » libmongocrypt and attempt to automatically configure them.

Nota: If the build process fails to find an SSL library, check that the development packages (e.g. libssl-dev) and » pkg-config are both installed. If that does not resolve the problem, consider using the manual installation process.

Finally, add the following line to the php.ini file for each environment that will need to use the driver:

extension=mongodb.so


Installing the MongoDB PHP Driver on macOS with Homebrew

» Homebrew 1.5.0 deprecated the » Homebrew/php tap and removed formulae for individual PHP extensions. Going forward, macOS users are advised to install the » php formula and follow the standard PECL installation instructions using the pecl command provided by the Homebrew PHP installation.


Installing the MongoDB PHP Driver on Windows

Precompiled binaries are attached to the project's » Github releases. Archives are published for various combinations of PHP version, thread safety (TS or NTS), and architecture (x86 or x64). Determining the correct archive for the PHP environment and extract the php_mongodb.dll file to the extension directory ("ext" by default).

Add the following line to the php.ini file for each environment that will need to use the driver:

extension=php_mongodb.dll

Failure to select the correct binary will result in an error when attempting to load the extension DLL at runtime:

PHP Warning:  PHP Startup: Unable to load dynamic library 'mongodb'

Ensure that the downloaded DLL corresponds to the following PHP runtime properties:

  • PHP version (PHP_VERSION)
  • Thread safety (PHP_ZTS)
  • Architecture (PHP_INT_SIZE)

In addition to the aforementioned constants, these properties can also be inferred from phpinfo(). If a system has multiple PHP runtimes installed, double-check that the phpinfo() output is for the correct environment.

Nota: Additional DLL dependencies for Windows Users

Para que esta extensão funcione, existem arquivos DLL que devem estar disponíveis no PATH do sistema Windows. Para saber como fazer isso, veja a FAQ intitulada "Como eu adiciono o meu diretório PHP ao PATH do Windows". Embora copiar arquivos DLL da pasta do PHP para o diretório system do Windows também funcione (porque o diretório system está, por padrão, no PATH do sistema), isso não é recomendado. Esta extensão requer que os seguintes arquivos estejam no PATH: libsasl.dll


Building the MongoDB PHP Driver from source

For driver developers and users interested in the latest bugfixes, the driver may be compiled from the latest source code on » Github. Run the following commands to clone and build the project:

$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule update --init
$ phpize
$ ./configure
$ make all
$ sudo make install

On systems with multiple version of PHP installed (e.g. macOS default, Homebrew, » XAMPP), each version of PHP will have its own phpize command and php.ini file(s). Additionally, each PHP environments (e.g. CLI, web) may use separate php.ini files.

By default, the driver will use bundled versions of » libbson, » libmongoc, and » libmongocrypt and attempt to configure them automatically. If these libraries are already installed as system libraries, the driver can utilize them by specifying --with-mongodb-system-libs=yes as an option to configure.

For a complete list of configure options, run configure --help.

When using bundled versions of libmongoc and libmongocrypt, the driver will also attempt to select an SSL library according to the --with-mongodb-ssl configure option. As of driver version 1.17.0, OpenSSL is always preferred by default. Previously, Secure Transport was the default on macOS and OpenSSL was the default on all other platforms.

Nota:

If the build process fails to find an SSL library, check that the development packages (e.g. libssl-dev) and » pkg-config are both installed.

When using Homebrew on macOS, it is common for a system to have multiple versions of OpenSSL installed. To ensure that the desired version of OpenSSL is selected, the PKG_CONFIG_PATH environment variable may be used to control the search path for pkg-config. If pkg-config is not used, configure also supports a --with-openssl-dir=DIR argument, which can be used to specify a manual search path (for OpenSSL only).

The final build step, make install, will report where mongodb.so has been installed, similar to:

Installing shared extensions:     /usr/lib/php/extensions/debug-non-zts-20220829/

Ensure that the extension_dir option in php.ini points to the directory where mongodb.so was installed. The option may be queried by running:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/debug-non-zts-20220829 =>
                   /usr/lib/php/extensions/debug-non-zts-20220829

If the directories differ, either change extension_dir in php.ini or manually move mongodb.so to the correct directory.

Finally, add the following line to the php.ini file for each environment that will need to use the driver:

extension=mongodb.so


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

mongodb Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
mongodb.debug | "" | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

mongodb.debug string

This option can be used to enable or disable trace-level debug logging in the driver (and libmongoc).

Specify an empty string, "0", "off", "no", or "false" to disable logging.

Specify "stderr" or "stdout" to log to stderr or stdout, respectively.

Specify "1", "on", "yes", or "true" to log to a new temporary file within the default system temp directory (i.e. sys_get_temp_dir()).

Specify any other string to log to a new temporary file within that directory. If the directory cannot be used, the default system temp directory will be used instead.

Nota:

Please note that the debug log can contain sensitive information, such as credentials to the MongoDB server and full documents written to or read from the server. Please review any debug logs before sharing them with other people.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

MONGODB_VERSION (string)
x.y.z style version number of the extension
MONGODB_STABILITY (string)
Current stability (alpha/beta/stable)


Tutorials

In this section you will find several tutorials on how to use the MongoDB driver for PHP.

  • Using the PHP Library for MongoDB (PHPLIB)
  • Application Performance Monitoring (APM)


Using the PHP Library for MongoDB (PHPLIB)

After the initial driver set-up, we will continue explaining how to get started with the MongoDB driver and corresponding userland library to write our first project.

Installing the PHP Library with Composer

The last thing we still need to install to get started on the application itself, is the PHP library.

The library needs to be installed with » Composer, a package manager for PHP. Instructions for installing Composer on various platforms may be found on its website.

Install the library by running:

$ composer require mongodb/mongodb

It will output something akin to:

./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing mongodb/mongodb (1.0.0)
    Downloading: 100%

Writing lock file
Generating autoload files

Composer will create several files: composer.json, composer.lock, and a vendor directory that will contain the library and any other dependencies your project might require.

Using the PHP Library

In addition to managing your dependencies, Composer will also provide you with an autoloader (for those dependencies' classes). Ensure that it is included at the start of your script or in your application's bootstrap code:

<?php
// This path should point to Composer's autoloader
require 'vendor/autoload.php';

With this done, you can now use any of the functionality as described in the » library documentation.

If you have used MongoDB drivers in other languages, the library's API should look familiar. It contains a » Client class for connecting to MongoDB, a » Database class for database-level operations (e.g. commands, collection management), and a » Collection class for collection-level operations (e.g. » CRUD methods, index management).

As an example, this is how you insert a document into the beers collection of the demo database:

<?php
require 'vendor/autoload.php'; // include Composer's autoloader

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>

Since the inserted document did not contain an _id field, the driver will generate an MongoDB\BSON\ObjectId for the server to use as the _id. This value is also made available to the caller via the result object returned by the insertOne method.

After insertion, you can query for the data that you have just inserted. For that, you use the find method, which returns an iterable cursor:

<?php
require 'vendor/autoload.php'; // include Composer's autoloader

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

foreach ($result as $entry) {
echo $entry['_id'], ': ', $entry['name'], "\n";
}
?>

While it may not be apparent in the examples, BSON documents and arrays are unserialized as type classes in the library by default. These classes ensure that values preserve their type when being serialized back into BSON, which avoids a caveat in the old driver where arrays might turn into documents, and vice versa. Additionally, these type classes extend ArrayObject for enhanced usability. You can find more information on how serialization and deserialization between PHP variables and BSON is handled by the driver and library by reading the Persisting Data specification.


Application Performance Monitoring (APM)

The MongoDB driver contains an event subscriber API, which allows applications to monitor commands and internal activity pertaining to the » Server Discovery and Monitoring Specification. This tutorial will demonstrate command monitoring using the MongoDB\Driver\Monitoring\CommandSubscriber interface.

The MongoDB\Driver\Monitoring\CommandSubscriber interface defines three methods: commandStarted, commandSucceeded, and commandFailed. Each of these three methods accept a single event argument of a specific class for the respective event. For example, the commandSucceeded's $event argument is a MongoDB\Driver\Monitoring\CommandSucceededEvent object.

In this tutorial we will implement a subscriber that creates a list of all the query profiles and the average time they took.

Subscriber Class Scaffolding

We start with the framework for our subscriber:

<?php

class QueryTimeCollector implements \MongoDB\Driver\Monitoring\CommandSubscriber
{
public function commandStarted( \MongoDB\Driver\Monitoring\CommandStartedEvent $event ): void
{
}

public function commandSucceeded( \MongoDB\Driver\Monitoring\CommandSucceededEvent $event ): void
{
}

public function commandFailed( \MongoDB\Driver\Monitoring\CommandFailedEvent $event ): void
{
}
}

?>

Registering the Subscriber

Once a subscriber object is instantiated, it needs to be registered with the driver's monitoring system. This is done by calling MongoDB\Driver\Monitoring\addSubscriber() or MongoDB\Driver\Manager::addSubscriber() to register the subscriber globally or with a specific Manager, respectively.

<?php

\MongoDB\Driver\Monitoring\addSubscriber( new QueryTimeCollector() );

?>

Implementing the Logic

With the object registered, the only thing left is to implement the logic in the subscriber class. To correlate the two events that make up a successfully executed command (commandStarted and commandSucceeded), each event object exposes a requestId field.

To record the average time per query shape, we will start by checking for a find command in the commandStarted event. We will then add an item to the pendingCommands property indexed by its requestId and with its value representing the query shape.

If we receive a corresponding commandSucceeded event with the same requestId, we add the duration of the event (from durationMicros) to the total time and increment the operation count.

If a corresponding commandFailed event is encountered, we just remove the entry from the pendingCommands property.

<?php

class QueryTimeCollector implements \MongoDB\Driver\Monitoring\CommandSubscriber
{
private $pendingCommands = [];
private $queryShapeStats = [];

/* Creates a query shape out of the filter argument. Right now it only
* takes the top level fields into account */
private function createQueryShape( array $filter )
{
return json_encode( array_keys( $filter ) );
}

public function commandStarted( \MongoDB\Driver\Monitoring\CommandStartedEvent $event ): void
{
if ( array_key_exists( 'find', (array) $event->getCommand() ) )
{
$queryShape = $this->createQueryShape( (array) $event->getCommand()->filter );
$this->pendingCommands[$event->getRequestId()] = $queryShape;
}
}

public function commandSucceeded( \MongoDB\Driver\Monitoring\CommandSucceededEvent $event ): void
{
$requestId = $event->getRequestId();
if ( array_key_exists( $requestId, $this->pendingCommands ) )
{
$this->queryShapeStats[$this->pendingCommands[$requestId]]['count']++;
$this->queryShapeStats[$this->pendingCommands[$requestId]]['duration'] += $event->getDurationMicros();
unset( $this->pendingCommands[$requestId] );
}
}

public function commandFailed( \MongoDB\Driver\Monitoring\CommandFailedEvent $event ): void
{
if ( array_key_exists( $event->getRequestId(), $this->pendingCommands ) )
{
unset( $this->pendingCommands[$event->getRequestId()] );
}
}

public function __destruct()
{
foreach( $this->queryShapeStats as $shape => $stats )
{
echo "Shape: ", $shape, " (", $stats['count'], ")\n ",
$stats['duration'] / $stats['count'], "µs\n\n";
}
}
}

$m = new \MongoDB\Driver\Manager( 'mongodb://localhost:27016' );

/* Add the subscriber */
\MongoDB\Driver\Monitoring\addSubscriber( new QueryTimeCollector() );

/* Do a bunch of queries */
$query = new \MongoDB\Driver\Query( [
'region_slug' => 'scotland-highlands', 'age' => [ '$gte' => 20 ]
] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

$query = new \MongoDB\Driver\Query( [
'region_slug' => 'scotland-lowlands', 'age' => [ '$gte' => 15 ]
] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

$query = new \MongoDB\Driver\Query( [ 'region_slug' => 'scotland-lowlands' ] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

?>


Explains the driver architecture, and special features

  • Architecture — Architecture Overview
  • Connections — Connection handling and persistence
  • Persisting Data — Serialization and deserialization of PHP variables into MongoDB
    • Serialization to BSON
    • Deserialization from BSON


Architecture Overview

This article explains how all the different components of the PHP driver fit together, from base system libraries, through the extension, and to the PHP libraries on top.

At the top of this stack sits a » PHP library, which is distributed as a » Composer package. This library provides an API consistent with other MongoDB » drivers and implements various cross-driver » specifications. While the extension can be used directly, the library has minimal overhead and should be a common dependency for most applications built with MongoDB.

Sitting below that library is a PHP extension, which is distributed through » PECL. The extension forms the glue between PHP and our system libraries (» libmongoc, » libbson, and » libmongocrypt). Its public API provides only the most essential functionality:

  • Connection management
  • BSON encoding and decoding
  • Object document serialization (to support ODM libraries)
  • Executing commands, queries, and write operations
  • Handling cursors for command and query results

Driver Source Code and JIRA Projects
Project | GitHub | JIRA
PHP Library | » mongodb/mongo-php-library | » PHPLIB
PHP Extension | » mongodb/mongo-php-driver | » PHPC


Connection handling and persistence

Nota: Em plataformas Unix, o driver do MongoDB é sensível a scripts que usam a chamada de sistema fork() sem chamar também exec(). Os usuários são aconselhados a não reusar instâncias de MongoDB\Driver\Manager em um processo filho bifurcado.

Connection and topology persistence (PHP version since 1.2.0)

All versions of the driver since 1.2.0 persist the » libmongoc client object in the PHP worker process, which allows it to re-use database connections, authentication states, and topology information across multiple requests.

When MongoDB\Driver\Manager::__construct() is invoked, a hash is created from its arguments (i.e. URI string and array options). The driver will attempt to find a previously persisted » libmongoc client object for that hash. If an existing client cannot be found for the hash, a new client will be created and persisted for future use. This behavior can be disabled via the "disableClientPersistence" driver option.

Each client contains its own database connections and a view of the server topology (e.g. standalone, replica set, shard cluster). By persisting the client between PHP requests, the driver is able to re-use established database connections and remove the need for » discovering the server topology on each request.

Consider the following example:

<?php

$managers = [
new MongoDB\Driver\Manager('mongodb://127.0.0.1'),
new MongoDB\Driver\Manager('mongodb://127.0.0.1'),
new MongoDB\Driver\Manager('mongodb://127.0.0.1:27017'),
new MongoDB\Driver\Manager('mongodb://rs1.example.com,rs2.example.com/', ['replicaSet' => 'myReplicaSet']),
];

foreach ($managers as $manager) {
$manager->executeCommand('test', new MongoDB\Driver\Command(['ping' => 1]));
}

?>

The first two Manager objects will share the same » libmongoc client since their constructor arguments are identical. The third and fourth objects will each use their own client. In total, three clients will be created and the PHP worker executing this script will open two connections to 127.0.0.1 and one connection to each of rs1.example.com and rs2.example.com. If the driver discovers additional members of the replica set after issuing hello commands, it will open additional connections to those servers as well.

If the same worker executes the script again in a second request, the three clients will be re-used and no new connections will be made. Depending on how long ago the previous request was served, the driver may need to issue additional hello commands to update its view of the topologies.

Socket persistence (PHP versions before 1.2.0)

Versions of the PHP driver before 1.2.0 utilize PHP's Streams API for database connections, using an API within » libmongoc to designate custom handlers for socket communication; however, a new libmongoc client is created for each MongoDB\Driver\Manager. As a result, the driver persists individual database connections but not authentication state or topology information. This means that the driver needs to issue commands at the start of each request to authenticate and » discover the server topology.

Database connections are persisted by a hash derived from the server's host, port, and the URI string used to construct the MongoDB\Driver\Manager. The constructor's array options are not included in this hash.

Nota: Versions of the driver >= 1.1.8 and < 1.2.0 do not persist sockets for SSL connections. See » PHPC-720 for additional information.

Despite its shortcomings with persisting SSL connections when and topology information, this version of the driver supports all SSL context options since it uses PHP's Streams API.


Serialization and deserialization of PHP variables into MongoDB

Índice

  • Serialization to BSON
  • Deserialization from BSON

This document discusses the methods how compound structures (documents, arrays, objects) are persisted through the drivers. And how they are brought back into PHP land.


Serialization to BSON

Arrays

If an array is a packed array — i.e. empty array or the keys start at 0 and are sequential without gaps: BSON array.

If the array is not packed — i.e. having associative (string) keys, the keys don't start at 0, or when there are gaps:: BSON object

A top-level (root) document, always serializes as a BSON document.

Examples

These serialize as a BSON array:

[ 8, 5, 2, 3 ] => [ 8, 5, 2, 3 ]
[ 0 => 4, 1 => 9 ] => [ 4, 9 ]

These serialize as a BSON document:

[ 0 => 1, 2 => 8, 3 => 12 ] => { "0" : 1, "2" : 8, "3" : 12 }
[ "foo" => 42 ] => { "foo" : 42 }
[ 1 => 9, 0 => 10 ] => { "1" : 9, "0" : 10 }

Note that the five examples are extracts of a full document, and represent only one value inside a document.

Objects

If an object is of the stdClass class, serialize as a BSON document.

If an object is a supported class that implements MongoDB\BSON\Type, then use the BSON serialization logic for that specific type. MongoDB\BSON\Type instances (excluding MongoDB\BSON\Serializable may only be serialized as a document field value. Attempting to serialize such an object as a root document will throw a MongoDB\Driver\Exception\UnexpectedValueException

If an object is of an unknown class implementing the MongoDB\BSON\Type interface, then throw a MongoDB\Driver\Exception\UnexpectedValueException

If an object is of any other class, without implementing any special interface, serialize as a BSON document. Keep only public properties, and ignore protected and private properties.

If an object is of a class that implements the MongoDB\BSON\Serializable interface, call MongoDB\BSON\Serializable::bsonSerialize() and use the returned array or stdClass to serialize as a BSON document or array. The BSON type will be determined by the following:

  1. Root documents must be serialized as a BSON document.

  2. MongoDB\BSON\Persistable objects must be serialized as a BSON document.

  3. If MongoDB\BSON\Serializable::bsonSerialize() returns a packed array, serialize as a BSON array.

  4. If MongoDB\BSON\Serializable::bsonSerialize() returns a non-packed array or stdClass, serialize as a BSON document.

  5. If MongoDB\BSON\Serializable::bsonSerialize() did not return an array or stdClass, throw an MongoDB\Driver\Exception\UnexpectedValueException exception.

If an object is of a class that implements the MongoDB\BSON\Persistable interface (which implies MongoDB\BSON\Serializable), obtain the properties in a similar way as in the previous paragraphs, but also add an additional property __pclass as a Binary value, with subtype 0x80 and data bearing the fully qualified class name of the object that is being serialized.

The __pclass property is added to the array or object returned by MongoDB\BSON\Serializable::bsonSerialize(), which means it will overwrite any __pclass key/property in the MongoDB\BSON\Serializable::bsonSerialize() return value. If you want to avoid this behaviour and set your own __pclass value, you must not implement MongoDB\BSON\Persistable and should instead implement MongoDB\BSON\Serializable directly.

Examples

<?php

class stdClass {
public $foo = 42;
} // => { "foo" : 42 }

class MyClass {
public $foo = 42;
protected $prot = "wine";
private $fpr = "cheese";
} // => { "foo" : 42 }

class AnotherClass1 implements MongoDB\BSON\Serializable {
public $foo = 42;
protected $prot = "wine";
private $fpr = "cheese";
function bsonSerialize(): array {
return [ 'foo' => $this->foo, 'prot' => $this->prot ];
}
} // => { "foo" : 42, "prot" : "wine" }

class AnotherClass2 implements MongoDB\BSON\Serializable {
public $foo = 42;
function bsonSerialize(): self {
return $this;
}
} // => MongoDB\Driver\Exception\UnexpectedValueException("bsonSerialize() did not return an array or stdClass")

class AnotherClass3 implements MongoDB\BSON\Serializable {
private $elements = [ 'foo', 'bar' ];
function bsonSerialize(): array {
return $this->elements;
}
} // => { "0" : "foo", "1" : "bar" }

class ContainerClass implements MongoDB\BSON\Serializable {
public $things = AnotherClass4 implements MongoDB\BSON\Serializable {
private $elements = [ 0 => 'foo', 2 => 'bar' ];
function bsonSerialize(): array {
return $this->elements;
}
}
function bsonSerialize(): array {
return [ 'things' => $this->things ];
}
} // => { "things" : { "0" : "foo", "2" : "bar" } }

class ContainerClass implements MongoDB\BSON\Serializable {
public $things = AnotherClass5 implements MongoDB\BSON\Serializable {
private $elements = [ 0 => 'foo', 2 => 'bar' ];
function bsonSerialize(): array {
return array_values($this->elements);
}
}
function bsonSerialize(): array {
return [ 'things' => $this->things ];
}
} // => { "things" : [ "foo", "bar" ] }

class ContainerClass implements MongoDB\BSON\Serializable {
public $things = AnotherClass6 implements MongoDB\BSON\Serializable {
private $elements = [ 'foo', 'bar' ];
function bsonSerialize(): array {
return (object) $this->elements;
}
}
function bsonSerialize(): array {
return [ 'things' => $this->things ];
}
} // => { "things" : { "0" : "foo", "1" : "bar" } }

class UpperClass implements MongoDB\BSON\Persistable {
public $foo = 42;
protected $prot = "wine";
private $fpr = "cheese";
function bsonSerialize(): array {
return [ 'foo' => $this->foo, 'prot' => $this->prot ];
}
} // => { "foo" : 42, "prot" : "wine", "__pclass" : { "$type" : "80", "$binary" : "VXBwZXJDbGFzcw==" } }


Deserialization from BSON

Aviso

Os documentos BSON tecnicamente podem conter chaves duplicadas porque os documentos são armazenados como uma lista de pares chave-valor; no entanto, as aplicações devem evitar a geração de documentos com chaves duplicadas, pois o comportamento do servidor e do driver pode ser indefinido. Como os objetos e arrays do PHP não podem ter chaves duplicadas, os dados também podem ser perdidos ao decodificar um documento BSON com chaves duplicadas.

The legacy mongo extension deserialized both BSON documents and arrays as PHP arrays. While PHP arrays are convenient to work with, this behavior was problematic because different BSON types could deserialize to the same PHP value (e.g. {"0": "foo"} and ["foo"]) and make it impossible to infer the original BSON type. By default, the current driver addresses this concern by ensuring that BSON arrays and documents are converted to PHP arrays and objects, respectively.

For compound types, there are three data types:

root

refers to the top-level BSON document only

document

refers to embedded BSON documents only

array

refers to a BSON array

Besides the three collective types, it is also possible to configure specific fields in your document to map to the data types mentioned below. As an example, the following type map allows you to map each embedded document within an "addresses" array to an Address class and each "city" field within those embedded address documents to a City class:

[
    'fieldPaths' => [
        'addresses.$' => 'MyProject\Address',
        'addresses.$.city' => 'MyProject\City',
    ],
]

Each of those three data types, as well as the field specific mappings, can be mapped against different PHP types. The possible mapping values are:

not set or NULL (default)

  • A BSON array will be deserialized as a PHP array.

  • A BSON document (root or embedded) without a __pclass property [1] becomes a PHP stdClass object, with each BSON document key set as a public stdClass property.

  • A BSON document (root or embedded) with a __pclass property [1] becomes a PHP object of the class name as defined by the __pclass property.

    If the named class implements the MongoDB\BSON\Persistable interface, then the properties of the BSON document, including the __pclass property, are sent as an associative array to the MongoDB\BSON\Unserializable::bsonUnserialize() function to initialise the object's properties.

    If the named class does not exist or does not implement the MongoDB\BSON\Persistable interface, stdClass will be used and each BSON document key (including __pclass) will be set as a public stdClass property.

    The __pclass functionality relies on the property being part of a retrieved MongoDB document. If you use a projection when querying for documents, you need to include the __pclass field in the projection for this functionality to work.

"array"

Turns a BSON array or BSON document into a PHP array. There will be no special treatment of a __pclass property [1], but it may be set as an element in the returned array if it was present in the BSON document.

"object" or "stdClass"

Turns a BSON array or BSON document into a stdClass object. There will be no special treatment of a __pclass property [1], but it may be set as a public property in the returned object if it was present in the BSON document.

"bson"

Turns a BSON array into a MongoDB\BSON\PackedArray and a BSON document into a MongoDB\BSON\Document, regardless of whether the BSON document has a __pclass property [1].

Nota: The bson value is only available for the three root types, not in the field specific mappings.

any other string

Defines the class name that the BSON array or BSON object should be deserialized as. For BSON objects that include __pclass properties, that class will take priority.

If the named class does not exist, is not concrete (i.e. it is abstract or an interface), or does not implement MongoDB\BSON\Unserializable then an MongoDB\Driver\Exception\InvalidArgumentException exception is thrown.

If the BSON object has a __pclass property and that class exists and implements MongoDB\BSON\Persistable it will supersede the class provided in the type map.

The properties of the BSON document, including the __pclass property if it exists, will be sent as an associative array to the MongoDB\BSON\Unserializable::bsonUnserialize() function to initialise the object's properties.

TypeMaps

TypeMaps can be set through the MongoDB\Driver\Cursor::setTypeMap() method on a MongoDB\Driver\Cursor object, or the $typeMap argument of MongoDB\BSON\toPHP(), MongoDB\BSON\Document::toPHP(), and MongoDB\BSON\PackedArray::toPHP(). Each of the three classes (root, document, and array) can be individually set, in addition to the field specific types.

If the value in the map is NULL, it means the same as the default value for that item.

Examples

These examples use the following classes:

MyClass

which does not implement any interface

YourClass

which implements MongoDB\BSON\Unserializable

OurClass

which implements MongoDB\BSON\Persistable

TheirClass

which extends OurClass

The MongoDB\BSON\Unserializable::bsonUnserialize() method of YourClass, OurClass, TheirClass iterate over the array and set the properties without modifications. It also sets the $unserialized property to true:

<?php

function bsonUnserialize( array $map )
{
foreach ( $map as $k => $value )
{
$this->$k = $value;
}
$this->unserialized = true;
}

/* typemap: [] (all defaults) */
{ "foo": "yes", "bar" : false }
  -> stdClass { $foo => 'yes', $bar => false }

{ "foo": "no", "array" : [ 5, 6 ] }
  -> stdClass { $foo => 'no', $array => [ 5, 6 ] }

{ "foo": "no", "obj" : { "embedded" : 3.14 } }
  -> stdClass { $foo => 'no', $obj => stdClass { $embedded => 3.14 } }

{ "foo": "yes", "__pclass": "MyClass" }
  -> stdClass { $foo => 'yes', $__pclass => 'MyClass' }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "MyClass" } }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x80, 'MyClass') }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "YourClass") }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x80, 'YourClass') }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "OurClass") }
  -> OurClass { $foo => 'yes', $__pclass => Binary(0x80, 'OurClass'), $unserialized => true }

{ "foo": "yes", "__pclass": { "$type" : "44", "$binary" : "YourClass") }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x44, 'YourClass') }

/* typemap: [ "root" => "MissingClass" ] */
{ "foo": "yes" }
  -> MongoDB\Driver\Exception\InvalidArgumentException("MissingClass does not exist")

/* typemap: [ "root" => "MyClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> MongoDB\Driver\Exception\InvalidArgumentException("MyClass does not implement Unserializable interface")

/* typemap: [ "root" => "MongoDB\BSON\Unserializable" ] */
{ "foo": "yes" }
  -> MongoDB\Driver\Exception\InvalidArgumentException("Unserializable is not a concrete class")

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MongoDB\BSON\Unserializable" } }
  -> YourClass { $foo => "yes", $__pclass => Binary(0x80, "MongoDB\BSON\Unserializable"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> YourClass { $foo => "yes", $__pclass => Binary(0x80, "MyClass"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "OurClass" } }
  -> OurClass { $foo => "yes", $__pclass => Binary(0x80, "OurClass"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "TheirClass" } }
  -> TheirClass { $foo => "yes", $__pclass => Binary(0x80, "TheirClass"), $unserialized => true }

/* typemap: [ "root" => "OurClass" ] */
{ foo: "yes", "__pclass" : { "$type": "80", "$binary": "TheirClass" } }
  -> TheirClass { $foo => "yes", $__pclass => Binary(0x80, "TheirClass"), $unserialized => true }

/* typemap: [ 'root' => 'YourClass' ] */
{ foo: "yes", "__pclass" : { "$type": "80", "$binary": "YourClass" } }
  -> YourClass { $foo => 'yes', $__pclass => Binary(0x80, 'YourClass'), $unserialized => true }

/* typemap: [ 'root' => 'array', 'document' => 'array' ] */
{ "foo": "yes", "bar" : false }
  -> [ "foo" => "yes", "bar" => false ]

{ "foo": "no", "array" : [ 5, 6 ] }
  -> [ "foo" => "no", "array" => [ 5, 6 ] ]

{ "foo": "no", "obj" : { "embedded" : 3.14 } }
  -> [ "foo" => "no", "obj" => [ "embedded => 3.14 ] ]

{ "foo": "yes", "__pclass": "MyClass" }
  -> [ "foo" => "yes", "__pclass" => "MyClass" ]

{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> [ "foo" => "yes", "__pclass" => Binary(0x80, "MyClass") ]

{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "OurClass" } }
  -> [ "foo" => "yes", "__pclass" => Binary(0x80, "OurClass") ]

/* typemap: [ 'root' => 'object', 'document' => 'object' ] */
{ "foo": "yes", "__pclass": { "$type": "80", "$binary": "MyClass" } }
  -> stdClass { $foo => "yes", "__pclass" => Binary(0x80, "MyClass") }


  • « Deserialization from BSON
  • Request Injection Attacks »
  • PHP Manual
  • MongoDB
  • Security

Security

  • Request Injection Attacks
  • Script Injection Attacks


Request Injection Attacks

If you are passing $_GET (or $_POST) parameters to your queries, make sure that they are cast to strings first. Users can insert associative arrays in GET and POST requests, which could then become unwanted $-queries.

A fairly innocuous example: suppose you are looking up a user's information with the request http://www.example.com?username=bob. Your application creates the query $q = new \MongoDB\Driver\Query( [ 'username' => $_GET['username'] ]).

Someone could subvert this by getting http://www.example.com?username[$ne]=foo, which PHP will magically turn into an associative array, turning your query into $q = new \MongoDB\Driver\Query( [ 'username' => [ '$ne' => 'foo' ] ] ), which will return all users not named "foo" (all of your users, probably).

This is a fairly easy attack to defend against: make sure $_GET and $_POST parameters are the type you expect before you send them to the database. PHP has the filter_var() function to assist with this.

Note that this type of attack can be used with any database interaction that locates a document, including updates, upserts, deletes, and findAndModify commands.

See » the main documentation for more information about SQL-injection-like issues with MongoDB.


Script Injection Attacks

If you are using JavaScript, make sure that any variables that cross the PHP- to-JavaScript boundry are passed in the scope field of MongoDB\BSON\Javascript, not interpolated into the JavaScript string. This can come up when using $where clauses in queries, mapReduce and group commands, and any other time you may pass JavaScript into the database.

For example, suppose we have some JavaScript to greet a user in the database logs. We could do:

<?php
$m = new MongoDB\Driver\Manager;

// Don't do this!!!
$username = $_GET['field'];

$cmd = new \MongoDB\Driver\Command( [
'eval' => "print('Hello, $username!');"
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

However, what if a malicious user passes in some JavaScript?

<?php
$m = new MongoDB\Driver\Manager;

// Don't do this!!!
$username = $_GET['field'];
// $username is set to "'); db.users.drop(); print('"

$cmd = new \MongoDB\Driver\Command( [
'eval' => "print('Hello, $username!');"
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

Now MongoDB executes the JavaScript string "print('Hello, '); db.users.drop(); print('!');". This attack is easy to avoid: use args to pass variables from PHP to JavaScript:

<?php
$m = new MongoDB\Driver\Manager;

$_GET['field'] = 'derick';
$args = [ $_GET['field'] ];

$cmd = new \MongoDB\Driver\Command( [
'eval' => "function greet(username) { print('Hello, ' + username + '!'); }",
'args' => $args,
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

This adds an argument to the JavaScript scope, which gets used as argument for the greet function. Now if someone tries to send malicious code, MongoDB will harmlessly print Hello, '); db.dropDatabase(); print('!.

Using arguments helps to prevent malicious input from being executed by the database. However, you must make sure that your code does not turn around and execute the input anyway! It is best to avoid executing any JavaScript on the server in the first place.

You are strongly recommended to stay clear of the » $where clause with queries, as it impacts performance significantly. Where possible, use either normal query operators, or the » Aggregation Framework.

As alternative to » MapReduce, which uses JavaScript, consider using the » Aggregation Framework. Unlike Map/Reduce, it uses an idiomatic language to construct queries, without having to write, and use, the slower JavaScript approach that Map/Reduce requires.

The » eval command has been deprecated since MongoDB 3.0, and should also be avoided.


MongoDB driver classes

  • MongoDB\Driver\Manager — The MongoDB\Driver\Manager class
    • MongoDB\Driver\Manager::addSubscriber — Registers a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
    • MongoDB\Driver\Manager::createClientEncryption — Create a new ClientEncryption object
    • MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations
    • MongoDB\Driver\Manager::executeCommand — Execute a database command
    • MongoDB\Driver\Manager::executeQuery — Execute a database query
    • MongoDB\Driver\Manager::executeReadCommand — Execute a database command that reads
    • MongoDB\Driver\Manager::executeReadWriteCommand — Execute a database command that reads and writes
    • MongoDB\Driver\Manager::executeWriteCommand — Execute a database command that writes
    • MongoDB\Driver\Manager::getEncryptedFieldsMap — Return the encryptedFieldsMap auto encryption option for the Manager
    • MongoDB\Driver\Manager::getReadConcern — Return the ReadConcern for the Manager
    • MongoDB\Driver\Manager::getReadPreference — Return the ReadPreference for the Manager
    • MongoDB\Driver\Manager::getServers — Return the servers to which this manager is connected
    • MongoDB\Driver\Manager::getWriteConcern — Return the WriteConcern for the Manager
    • MongoDB\Driver\Manager::removeSubscriber — Unregisters a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::selectServer — Select a server matching a read preference
    • MongoDB\Driver\Manager::startSession — Start a new client session for use with this client
  • MongoDB\Driver\Command — The MongoDB\Driver\Command class
    • MongoDB\Driver\Command::__construct — Create a new Command
  • MongoDB\Driver\Query — The MongoDB\Driver\Query class
    • MongoDB\Driver\Query::__construct — Create a new Query
  • MongoDB\Driver\BulkWrite — The MongoDB\Driver\BulkWrite class
    • MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite
    • MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk
    • MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk
    • MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk
    • MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk
  • MongoDB\Driver\Session — The MongoDB\Driver\Session class
    • MongoDB\Driver\Session::abortTransaction — Aborts a transaction
    • MongoDB\Driver\Session::advanceClusterTime — Advances the cluster time for this session
    • MongoDB\Driver\Session::advanceOperationTime — Advances the operation time for this session
    • MongoDB\Driver\Session::commitTransaction — Commits a transaction
    • MongoDB\Driver\Session::__construct — Create a new Session (not used)
    • MongoDB\Driver\Session::endSession — Terminates a session
    • MongoDB\Driver\Session::getClusterTime — Returns the cluster time for this session
    • MongoDB\Driver\Session::getLogicalSessionId — Returns the logical session ID for this session
    • MongoDB\Driver\Session::getOperationTime — Returns the operation time for this session
    • MongoDB\Driver\Session::getServer — Returns the server to which this session is pinned
    • MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction
    • MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session
    • MongoDB\Driver\Session::isDirty — Returns whether the session has been marked as dirty
    • MongoDB\Driver\Session::isInTransaction — Returns whether a multi-document transaction is in progress
    • MongoDB\Driver\Session::startTransaction — Starts a transaction
  • MongoDB\Driver\ClientEncryption — The MongoDB\Driver\ClientEncryption class
    • MongoDB\Driver\ClientEncryption::addKeyAltName — Adds an alternate name to a key document
    • MongoDB\Driver\ClientEncryption::__construct — Create a new ClientEncryption object
    • MongoDB\Driver\ClientEncryption::createDataKey — Creates a key document
    • MongoDB\Driver\ClientEncryption::decrypt — Decrypt a value
    • MongoDB\Driver\ClientEncryption::deleteKey — Deletes a key document
    • MongoDB\Driver\ClientEncryption::encrypt — Encrypt a value
    • MongoDB\Driver\ClientEncryption::encryptExpression — Encrypts a match or aggregate expression
    • MongoDB\Driver\ClientEncryption::getKey — Gets a key document
    • MongoDB\Driver\ClientEncryption::getKeyByAltName — Gets a key document by an alternate name
    • MongoDB\Driver\ClientEncryption::getKeys — Gets all key documents
    • MongoDB\Driver\ClientEncryption::removeKeyAltName — Removes an alternate name from a key document
    • MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Rewraps data keys
  • MongoDB\Driver\ServerApi — The MongoDB\Driver\ServerApi class
    • MongoDB\Driver\ServerApi::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ServerApi::__construct — Create a new ServerApi instance
    • MongoDB\Driver\ServerApi::serialize — Serialize a ServerApi
    • MongoDB\Driver\ServerApi::unserialize — Unserialize a ServerApi
  • MongoDB\Driver\WriteConcern — The MongoDB\Driver\WriteConcern class
    • MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\WriteConcern::__construct — Create a new WriteConcern
    • MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option
    • MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option
    • MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option
    • MongoDB\Driver\WriteConcern::isDefault — Checks if this is the default write concern
    • MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern
  • MongoDB\Driver\ReadPreference — The MongoDB\Driver\ReadPreference class
    • MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::__construct — Create a new ReadPreference
    • MongoDB\Driver\ReadPreference::getHedge — Returns the ReadPreference's "hedge" option
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Returns the ReadPreference's "maxStalenessSeconds" option
    • MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string
    • MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option
    • MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference
  • MongoDB\Driver\ReadConcern — The MongoDB\Driver\ReadConcern class
    • MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ReadConcern::__construct — Create a new ReadConcern
    • MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option
    • MongoDB\Driver\ReadConcern::isDefault — Checks if this is the default read concern
    • MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern
  • MongoDB\Driver\Cursor — The MongoDB\Driver\Cursor class
    • MongoDB\Driver\Cursor::__construct — Create a new Cursor (not used)
    • MongoDB\Driver\Cursor::current — Returns the current element
    • MongoDB\Driver\Cursor::getId — Returns the ID for this cursor
    • MongoDB\Driver\Cursor::getServer — Returns the server associated with this cursor
    • MongoDB\Driver\Cursor::isDead — Checks if the cursor is exhausted or may have additional results
    • MongoDB\Driver\Cursor::key — Returns the current result's index within the cursor
    • MongoDB\Driver\Cursor::next — Advances the cursor to the next result
    • MongoDB\Driver\Cursor::rewind — Rewind the cursor to the first result
    • MongoDB\Driver\Cursor::setTypeMap — Sets a type map to use for BSON unserialization
    • MongoDB\Driver\Cursor::toArray — Returns an array containing all results for this cursor
    • MongoDB\Driver\Cursor::valid — Checks if the current position in the cursor is valid
  • MongoDB\Driver\CursorId — The MongoDB\Driver\CursorId class
    • MongoDB\Driver\CursorId::__construct — Create a new CursorId (not used)
    • MongoDB\Driver\CursorId::serialize — Serialize a CursorId
    • MongoDB\Driver\CursorId::__toString — String representation of the cursor ID
    • MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId
  • MongoDB\Driver\CursorInterface — The MongoDB\Driver\CursorInterface interface
    • MongoDB\Driver\CursorInterface::getId — Returns the ID for this cursor
    • MongoDB\Driver\CursorInterface::getServer — Returns the server associated with this cursor
    • MongoDB\Driver\CursorInterface::isDead — Checks if the cursor may have additional results
    • MongoDB\Driver\CursorInterface::setTypeMap — Sets a type map to use for BSON unserialization
    • MongoDB\Driver\CursorInterface::toArray — Returns an array containing all results for this cursor
  • MongoDB\Driver\Server — The MongoDB\Driver\Server class
    • MongoDB\Driver\Server::__construct — Create a new Server (not used)
    • MongoDB\Driver\Server::executeBulkWrite — Execute one or more write operations on this server
    • MongoDB\Driver\Server::executeCommand — Execute a database command on this server
    • MongoDB\Driver\Server::executeQuery — Execute a database query on this server
    • MongoDB\Driver\Server::executeReadCommand — Execute a database command that reads on this server
    • MongoDB\Driver\Server::executeReadWriteCommand — Execute a database command that reads and writes on this server
    • MongoDB\Driver\Server::executeWriteCommand — Execute a database command that writes on this server
    • MongoDB\Driver\Server::getHost — Returns the hostname of this server
    • MongoDB\Driver\Server::getInfo — Returns an array of information describing this server
    • MongoDB\Driver\Server::getLatency — Returns the latency of this server in milliseconds
    • MongoDB\Driver\Server::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Server::getServerDescription — Returns a ServerDescription for this server
    • MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set
    • MongoDB\Driver\Server::getType — Returns an integer denoting the type of this server
    • MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set
    • MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set
    • MongoDB\Driver\Server::isPassive — Checks if this server is a passive member of a replica set
    • MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set
    • MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set
  • MongoDB\Driver\ServerDescription — The MongoDB\Driver\ServerDescription class
    • MongoDB\Driver\ServerDescription::getHelloResponse — Returns the server's most recent "hello" response
    • MongoDB\Driver\ServerDescription::getHost — Returns the hostname of this server
    • MongoDB\Driver\ServerDescription::getLastUpdateTime — Returns the server's last update time in microseconds
    • MongoDB\Driver\ServerDescription::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\ServerDescription::getRoundTripTime — Returns the server's round trip time in milliseconds
    • MongoDB\Driver\ServerDescription::getType — Returns a string denoting the type of this server
  • MongoDB\Driver\TopologyDescription — The MongoDB\Driver\TopologyDescription class
    • MongoDB\Driver\TopologyDescription::getServers — Returns the servers in the topology
    • MongoDB\Driver\TopologyDescription::getType — Returns a string denoting the type of this topology
    • MongoDB\Driver\TopologyDescription::hasReadableServer — Returns whether the topology has a readable server
    • MongoDB\Driver\TopologyDescription::hasWritableServer — Returns whether the topology has a writable server
  • MongoDB\Driver\WriteConcernError — The MongoDB\Driver\WriteConcernError class
    • MongoDB\Driver\WriteConcernError::getCode — Returns the WriteConcernError's error code
    • MongoDB\Driver\WriteConcernError::getInfo — Returns metadata document for the WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage — Returns the WriteConcernError's error message
  • MongoDB\Driver\WriteError — The MongoDB\Driver\WriteError class
    • MongoDB\Driver\WriteError::getCode — Returns the WriteError's error code
    • MongoDB\Driver\WriteError::getIndex — Returns the index of the write operation corresponding to this WriteError
    • MongoDB\Driver\WriteError::getInfo — Returns metadata document for the WriteError
    • MongoDB\Driver\WriteError::getMessage — Returns the WriteError's error message
  • MongoDB\Driver\WriteResult — The MongoDB\Driver\WriteResult class
    • MongoDB\Driver\WriteResult::getDeletedCount — Returns the number of documents deleted
    • MongoDB\Driver\WriteResult::getInsertedCount — Returns the number of documents inserted (excluding upserts)
    • MongoDB\Driver\WriteResult::getMatchedCount — Returns the number of documents selected for update
    • MongoDB\Driver\WriteResult::getModifiedCount — Returns the number of existing documents updated
    • MongoDB\Driver\WriteResult::getServer — Returns the server associated with this write result
    • MongoDB\Driver\WriteResult::getUpsertedCount — Returns the number of documents inserted by an upsert
    • MongoDB\Driver\WriteResult::getUpsertedIds — Returns an array of identifiers for upserted documents
    • MongoDB\Driver\WriteResult::getWriteConcernError — Returns any write concern error that occurred
    • MongoDB\Driver\WriteResult::getWriteErrors — Returns any write errors that occurred
    • MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged


The MongoDB\Driver\Manager class

(mongodb >=1.0.0)

Introdução

The MongoDB\Driver\Manager is the main entry point to the extension. It is responsible for maintaining connections to MongoDB (be it standalone server, replica set, or sharded cluster).

No connection to MongoDB is made upon instantiating the Manager. This means the MongoDB\Driver\Manager can always be constructed, even though one or more MongoDB servers are down.

Any write or query can throw connection exceptions as connections are created lazily. A MongoDB server may also become unavailable during the life time of the script. It is therefore important that all actions on the Manager to be wrapped in try/catch statements.

Resumo da classe

final class MongoDB\Driver\Manager {
/* Métodos */
final public addSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void
final public __construct(?string $uri = null, ?array $uriOptions = null, ?array $driverOptions = null)
final public createClientEncryption(array $options): MongoDB\Driver\ClientEncryption
final public executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, array|MongoDB\Driver\WriteConcern|null $options = null): MongoDB\Driver\WriteResult
final public executeCommand(string $db, MongoDB\Driver\Command $command, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeReadCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeReadWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public getEncryptedFieldsMap(): array|object|null
final public getReadConcern(): MongoDB\Driver\ReadConcern
final public getReadPreference(): MongoDB\Driver\ReadPreference
final public getServers(): array
final public getWriteConcern(): MongoDB\Driver\WriteConcern
final public removeSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void
final public selectServer(?MongoDB\Driver\ReadPreference $readPreference = null): MongoDB\Driver\Server
final public startSession(?array $options = null): MongoDB\Driver\Session
}

Exemplos

Exemplo #1 MongoDB\Driver\Manager::__construct() basic example

var_dump()ing a MongoDB\Driver\Manager will print out various details about the manager that are otherwise not normally exposed. This can be useful to debug how the driver views your MongoDB setup, and which options are used.

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager);

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\Driver\Manager)#1 (2) {
  ["uri"]=>
  string(26) "mongodb://127.0.0.1:27017/"
  ["cluster"]=>
  array(0) {
  }
}

Índice

  • MongoDB\Driver\Manager::addSubscriber — Registers a monitoring event subscriber with this Manager
  • MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
  • MongoDB\Driver\Manager::createClientEncryption — Create a new ClientEncryption object
  • MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations
  • MongoDB\Driver\Manager::executeCommand — Execute a database command
  • MongoDB\Driver\Manager::executeQuery — Execute a database query
  • MongoDB\Driver\Manager::executeReadCommand — Execute a database command that reads
  • MongoDB\Driver\Manager::executeReadWriteCommand — Execute a database command that reads and writes
  • MongoDB\Driver\Manager::executeWriteCommand — Execute a database command that writes
  • MongoDB\Driver\Manager::getEncryptedFieldsMap — Return the encryptedFieldsMap auto encryption option for the Manager
  • MongoDB\Driver\Manager::getReadConcern — Return the ReadConcern for the Manager
  • MongoDB\Driver\Manager::getReadPreference — Return the ReadPreference for the Manager
  • MongoDB\Driver\Manager::getServers — Return the servers to which this manager is connected
  • MongoDB\Driver\Manager::getWriteConcern — Return the WriteConcern for the Manager
  • MongoDB\Driver\Manager::removeSubscriber — Unregisters a monitoring event subscriber with this Manager
  • MongoDB\Driver\Manager::selectServer — Select a server matching a read preference
  • MongoDB\Driver\Manager::startSession — Start a new client session for use with this client


Registers a monitoring event subscriber with this Manager

  • « MongoDB\Driver\Manager
  • MongoDB\Driver\Manager::__construct »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Registers a monitoring event subscriber with this Manager

MongoDB\Driver\Manager::addSubscriber

(mongodb >=1.10.0)

MongoDB\Driver\Manager::addSubscriber — Registers a monitoring event subscriber with this Manager

Descrição

final public MongoDB\Driver\Manager::addSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void

Registers a monitoring event subscriber with this Manager. The subscriber will be notified of all events for this Manager.

Nota: If subscriber is already registered with this Manager, this function is a no-op. If subscriber is also registered globally, it will still only be notified once of each event for this Manager.

Parâmetros

subscriber (MongoDB\Driver\Monitoring\Subscriber)

A monitoring event subscriber to register with this Manager.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if subscriber is a MongoDB\Driver\Monitoring\LogSubscriber, since loggers can only be registered globally.

Veja Também

  • MongoDB\Driver\Manager::removeSubscriber() - Unregisters a monitoring event subscriber with this Manager
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • Application Performance Monitoring (APM)


Create new MongoDB Manager

  • « MongoDB\Driver\Manager::addSubscriber
  • MongoDB\Driver\Manager::createClientEncryption »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Create new MongoDB Manager

MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Manager::__construct — Create new MongoDB Manager

Descrição

final public MongoDB\Driver\Manager::__construct(?string $uri = null, ?array $uriOptions = null, ?array $driverOptions = null)

Constructs a new MongoDB\Driver\Manager object with the specified options.

Nota: Per the » Server Discovery and Monitoring Specification, this constructor performs no I/O. Connections will be initialized on demand, when the first operation is executed.

Nota: When specifying any SSL or TLS URI options via the connection string or uriOptions parameter, the driver will implicitly enable TLS for its connections. To avoid this, either explicitly disable the tls option or don't specify any TLS options.

Nota: Em plataformas Unix, o driver do MongoDB é sensível a scripts que usam a chamada de sistema fork() sem chamar também exec(). Os usuários são aconselhados a não reusar instâncias de MongoDB\Driver\Manager em um processo filho bifurcado.

Parâmetros

uri

A » mongodb:// connection URI:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[defaultAuthDb][?options]]

For details on supported URI options, see » Connection String Options in the MongoDB manual. » Connection pool options are not supported, as the PHP driver does not implement connection pools.

The uri is a URL, hence any special characters in its components need to be URL encoded according to » RFC 3986. This is particularly relevant to the username and password, which can often include special characters such as @, :, or %. When connecting via a Unix domain socket, the socket path may contain special characters such as slashes and must be encoded. The rawurlencode() function may be used to encode constituent parts of the URI.

The defaultAuthDb component may be used to specify the database name associated with the user's credentials; however the authSource URI option will take priority if specified. If neither defaultAuthDb nor authSource are specified, the admin database will be used by default. The defaultAuthDb component has no effect in the absence of user credentials.

uriOptions

Additional » connection string options, which will overwrite any options with the same name in the uri parameter.

uriOptions
Option | Type | Description
appname string

MongoDB 3.4+ has the ability to annotate connections with metadata provided by the connecting client. This metadata is included in the server's logs upon establishing a connection and also recorded in slow query logs when database profiling is enabled.

This option may be used to specify an application name, which will be included in the metadata. The value cannot exceed 128 characters in length.

authMechanism string

The authentication mechanism that MongoDB will use to authenticate the connection. For additional details and a list of supported values, see » Authentication Options in the MongoDB manual.

authMechanismProperties array

Properties for the selected authentication mechanism. For additional details and a list of supported properties, see the » Driver Authentication Specification.

Nota: When not specified in the URI string, this option is expressed as an array of key/value pairs. The keys and values in this array should be strings.

authSource string

The database name associated with the user's credentials. Defaults to the database component of the connection URI, or the admin database if both are unspecified.

For authentication mechanisms that delegate credential storage to other services (e.g. GSSAPI), this should be "$external".

canonicalizeHostname bool

If true, the driver will resolve the real hostname for the server IP address before authenticating via SASL. Some underlying GSSAPI layers already do this, but the functionality may be disabled in their config (e.g. krb.conf). Defaults to false.

This option is a deprecated alias for the "CANONICALIZE_HOST_NAME" property of the "authMechanismProperties" URI option.

compressors string

A prioritized, comma-delimited list of compressors that the client wants to use. Messages are only compressed if the client and server share any compressors in common, and the compressor used in each direction will depend on the individual configuration of the server or driver. See the » Driver Compression Specification for more information.

connectTimeoutMS int

The time in milliseconds to attempt a connection before timing out. Defaults to 10,000 milliseconds.

directConnection bool

This option can be used to control replica set discovery behavior when only a single host is provided in the connection string. By default, providing a single member in the connection string will establish a direct connection or discover additional members depending on whether the "replicaSet" URI option is omitted or present, respectively. Specify false to force discovery to occur (if "replicaSet" is omitted) or specify true to force a direct connection (if "replicaSet" is present).

gssapiServiceName string

Set the Kerberos service name when connecting to Kerberized MongoDB instances. This value must match the service name set on MongoDB instances (i.e. » saslServiceName server parameter). Defaults to "mongodb".

This option is a deprecated alias for the "SERVICE_NAME" property of the "authMechanismProperties" URI option.

heartbeatFrequencyMS int

Specifies the interval in milliseconds between the driver's checks of the MongoDB topology, counted from the end of the previous check until the beginning of the next one. Defaults to 60,000 milliseconds.

Per the » Server Discovery and Monitoring Specification, this value cannot be less than 500 milliseconds.

journal bool

Corresponds to the default write concern's journal parameter. If true, writes will require acknowledgement from MongoDB that the operation has been written to the journal. For details, see MongoDB\Driver\WriteConcern.

loadBalanced bool

Specifies whether the driver is connecting to a MongoDB cluster through a load balancer. If true, the driver may only connect to a single host (specified by either the connection string or SRV lookup), the "directConnection" URI option cannot be true, and the "replicaSet" URI option must be omitted. Defaults to false.

localThresholdMS int

The size in milliseconds of the latency window for selecting among multiple suitable MongoDB instances while resolving a read preference. Defaults to 15 milliseconds.

maxStalenessSeconds int

Corresponds to the read preference's "maxStalenessSeconds". Specifies, in seconds, how stale a secondary can be before the client stops using it for read operations. By default, there is no maximum staleness and clients will not consider a secondary’s lag when choosing where to direct a read operation. For details, see MongoDB\Driver\ReadPreference.

If specified, the max staleness must be a signed 32-bit integer greater than or equal to MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS (i.e. 90 seconds).

password | string | The password for the user being authenticated. This option is useful if the password contains special characters, which would otherwise need to be URL encoded for the connection URI.
readConcernLevel | string | Corresponds to the read concern's level parameter. Specifies the level of read isolation. For details, see MongoDB\Driver\ReadConcern.
readPreference string

Corresponds to the read preference's mode parameter. Defaults to "primary". For details, see MongoDB\Driver\ReadPreference.

readPreferenceTags array

Corresponds to the read preference's tagSets parameter. Tag sets allow you to target read operations to specific members of a replica set. For details, see MongoDB\Driver\ReadPreference.

Nota: When not specified in the URI string, this option is expressed as an array consistent with the format expected by MongoDB\Driver\ReadPreference::__construct().

replicaSet string

Specifies the name of the replica set.

retryReads bool

Specifies whether or not the driver should automatically retry certain read operations that fail due to transient network errors or replica set elections. This functionality requires MongoDB 3.6+. Defaults to true.

See the » Retryable Reads Specification for more information.

retryWrites bool

Specifies whether or not the driver should automatically retry certain write operations that fail due to transient network errors or replica set elections. This functionality requires MongoDB 3.6+. Defaults to true.

See » Retryable Writes in the MongoDB manual for more information.

safe bool

If true, specifies 1 for the default write concern's w parameter. If false, 0 is specified. For details, see MongoDB\Driver\WriteConcern.

This option is deprecated and should not be used.

serverSelectionTimeoutMS int

Specifies how long in milliseconds to block for server selection before throwing an exception. Defaults to 30,000 milliseconds.

serverSelectionTryOnce bool

When true, instructs the driver to scan the MongoDB deployment exactly once after server selection fails and then either select a server or raise an error. When false, the driver blocks and searches for a server up to the "serverSelectionTimeoutMS" value. Defaults to true.

socketCheckIntervalMS int

If a socket has not been used recently, the driver must check it via a hello command before using it for any operation. Defaults to 5,000 milliseconds.

socketTimeoutMS int

The time in milliseconds to attempt a send or receive on a socket before timing out. Defaults to 300,000 milliseconds (i.e. five minutes).

srvMaxHosts int

The maximum number of SRV results to randomly select when initially populating the seedlist or, during SRV polling, adding new hosts to the topology. Defaults to 0 (i.e. no maximum).

srvServiceName string

The service name to use for SRV lookup in initial DNS seedlist discovery and SRV polling. Defaults to "mongodb".

ssl bool

Initiates the connection with TLS/SSL if true. Defaults to false.

This option is a deprecated alias for the "tls" URI option.

tls bool

Initiates the connection with TLS/SSL if true. Defaults to false.

tlsAllowInvalidCertificates bool

Specifies whether or not the driver should error when the server's TLS certificate is invalid. Defaults to false.

Aviso

Disabling certificate validation creates a vulnerability.

tlsAllowInvalidHostnames bool

Specifies whether or not the driver should error when there is a mismatch between the server's hostname and the hostname specified by the TLS certificate. Defaults to false.

Aviso

Disabling certificate validation creates a vulnerability. Allowing invalid hostnames may expose the driver to a » man-in-the-middle attack.

tlsCAFile string

Path to file with either a single or bundle of certificate authorities to be considered trusted when making a TLS connection. The system certificate store will be used by default.

tlsCertificateKeyFile string

Path to the client certificate file or the client private key file; in the case that they both are needed, the files should be concatenated.

tlsCertificateKeyFilePassword string

Password to decrypt the client private key (i.e. "tlsCertificateKeyFile" URI option) to be used for TLS connections.

tlsDisableCertificateRevocationCheck bool

If true, the driver will not attempt to check certificate revocation status (e.g. OCSP, CRL). Defaults to false.

tlsDisableOCSPEndpointCheck bool

If true, the driver will not attempt to contact an OCSP responder endpoint if needed (i.e. an OCSP response is not stapled). Defaults to false.

tlsInsecure bool

Relax TLS constraints as much as possible. Specifying true for this option has the same effect as specifying true for both the "tlsAllowInvalidCertificates" and "tlsAllowInvalidHostnames" URI options. Defaults to false.

Aviso

Disabling certificate validation creates a vulnerability. Allowing invalid hostnames may expose the driver to a » man-in-the-middle attack.

username | string | The username for the user being authenticated. This option is useful if the username contains special characters, which would otherwise need to be URL encoded for the connection URI.
w int|string

Corresponds to the default write concern's w parameter. For details, see MongoDB\Driver\WriteConcern.

wTimeoutMS int|string

Corresponds to the default write concern's wtimeout parameter. Specifies a time limit, in milliseconds, for the write concern. For details, see MongoDB\Driver\WriteConcern.

If specified, wTimeoutMS must be a signed 32-bit integer greater than or equal to zero.

zlibCompressionLevel int

Specifies the compression level to use for the zlib compressor. This option has no effect if zlib is not included in the "compressors" URI option. See the » Driver Compression Specification for more information.

driverOptions

driverOptions
Option | Type | Description
allow_invalid_hostname bool

Disables hostname validation if true. Defaults to false.

Allowing invalid hostnames may expose the driver to a » man-in-the-middle attack.

This option is a deprecated alias for the "tlsAllowInvalidHostnames" URI option.

autoEncryption array

Provides options to enable automatic client-side field level encryption.

Nota:

Automatic encryption is an enterprise-only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error (see » libmongocrypt: Auto Encryption Allow-List). To bypass automatic encryption for all operations, set bypassAutoEncryption to true.

Automatic encryption requires the authenticated user to have the » listCollections privilege action.

Explicit encryption/decryption and automatic decryption is a community feature. The driver can still automatically decrypt when bypassAutoEncryption is true.

The following options are supported:

Options for automatic encryption
Option | Type | Description
keyVaultClient | MongoDB\Driver\Manager | O Manager usado para rotear consultas de chave de dados para um cluster MongoDB separado. Por padrão, o Manager e o cluster atuais são usados.
keyVaultNamespace | string | Um namespace totalmente qualificado (por exemplo, "nomeDoBancoDados.nomeDaColecao") denotando a coleção que contém todas as chaves de dados usadas para criptografia e descriptografia. Esta opção é obrigatória.
kmsProviders array

Um documento contendo a configuração de um ou mais provedores KMS, que são usados para criptografar chaves de dados. Os provedores compatíveis incluem "aws", "azure", "gcp", "kmip" e "local" e pelo menos um deve ser especificado.

Se um documento vazio for especificado para "aws", "azure", ou "gcp", o driver tentará configurar o provedor usando » Credenciais Automáticas.

O formato para "aws" é o seguinte:

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>,
    sessionToken: <string opcional>
}

O formato para "azure" é o seguinte:

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <string opcional> // O padrão é "login.microsoftonline.com"
}

O formato para "gcp" é o seguinte:

gcp: {
    email: <string>,
    privateKey: <string base64>|<MongoDB\BSON\Binary>,
    endpoint: <string opcional> // O padrão é "oauth2.googleapis.com"
}

O formato para "kmip" é o seguinte:

kmip: {
    endpoint: <string>
}

O formato para "local" é o seguinte:

local: {
    // Chave mestra de 96 bytes usada para criptografar/descriptografar chaves de dados
    key: <string base64>|<MongoDB\BSON\Binary>
}
tlsOptions array

Um documento contendo a configuração TLS para um ou mais provedores KMS. Os provedores suportados incluem "aws", "azure", "gcp" e "kmip". Todos os provedores suportam as seguintes opções:

<provider>: {
    tlsCaFile: <string opcional>,
    tlsCertificateKeyFile: <string opcional>,
    tlsCertificateKeyFilePassword: <string opcional>,
    tlsDisableOCSPEndpointCheck: <booleano opcional>
}
schemaMap array|object

Map of collection namespaces to a local JSON schema. This is used to configure automatic encryption. See » Automatic Encryption Rules in the MongoDB manual for more information. It is an error to specify a collection in both schemaMap and encryptedFieldsMap.

Nota: Supplying a schemaMap provides more security than relying on JSON schemas obtained from the server. It protects against a malicious server advertising a false JSON schema, which could trick the client into sending unencrypted data that should be encrypted.

Nota: Schemas supplied in the schemaMap only apply to configuring automatic encryption for client side encryption. Other validation rules in the JSON schema will not be enforced by the driver and will result in an error.

bypassAutoEncryption | bool | If true, mongocryptd will not be spawned automatically. This is used to disable automatic encryption. Defaults to false.
bypassQueryAnalysis bool

If true, automatic analysis of outgoing commands will be disabled and mongocryptd will not be spawned automatically. This enables the use case of explicit encryption for querying indexed fields without requiring the enterprise licensed crypt_shared library or mongocryptd process. Defaults to false.

encryptedFieldsMap array|object

Map of collection namespaces to an encryptedFields document. This is used to configure queryable encryption. See » Field Encryption and Queryability in the MongoDB manual for more information. It is an error to specify a collection in both encryptedFieldsMap and schemaMap.

Nota: Supplying an encryptedFieldsMap provides more security than relying on an encryptedFields obtained from the server. It protects against a malicious server advertising a false encryptedFields.

extraOptions array

The extraOptions relate to the mongocryptd process. The following options are supported:

  • mongocryptdURI (string): URI to connect to an existing mongocryptd process. Defaults to "mongodb://localhost:27020".
  • mongocryptdBypassSpawn (bool): If true, prevent the driver from spawning mongocryptd. Defaults to false.
  • mongocryptdSpawnPath (string): Absolute path to search for mongocryptd binary. Defaults to empty string and consults system paths.
  • mongocryptdSpawnArgs (array): Array of string arguments to pass to mongocryptd when spawning. Defaults to ["--idleShutdownTimeoutSecs=60"].
  • cryptSharedLibPath (string): Absolute path to crypt_shared shared library. Defaults to empty string and consults system paths.
  • cryptSharedLibRequired (bool): If true, require the driver to load crypt_shared. Defaults to false.

See the » Client-Side Encryption Specification for more information.

Nota: Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error. To bypass automatic encryption for all operations, set bypassAutoEncryption=true in autoEncryption. For more information on allowed operations, see the » Client-Side Encryption Specification.

ca_dir string

Path to a correctly hashed certificate directory. The system certificate store will be used by default.

ca_file string

Path to file with either a single or bundle of certificate authorities to be considered trusted when making a TLS connection. The system certificate store will be used by default.

This option is a deprecated alias for the "tlsCAFile" URI option.

context resource

SSL context options to be used as fallbacks if a driver option or its equivalent URI option, if any, is not specified. Note that the driver does not consult the default stream context (i.e. stream_context_get_default()). The following context options are supported:

SSL context option fallbacks
Driver option | Context option (fallback)
ca_dir | capath
ca_file | cafile
pem_file | local_cert
pem_pwd | passphrase
weak_cert_validation | allow_self_signed

This option is supported for backwards compatibility, but should be considered deprecated.

crl_file | string | Path to a certificate revocation list file.
disableClientPersistence bool

If true, this Manager will use a new libmongoc client, which will not be persisted or shared with other Manager objects. When this Manager object is freed, its client will be destroyed and any connections will be closed. Defaults to false.

Nota: Disabling client persistence is not generally recommended.

driver array

Allows custom drivers to append their own metadata to the server handshake. By default, the driver submits its own name, version, and platform (i.e. PHP version) in the handshake. Custom drivers can specify strings for the "name", "version", and "platform" keys of this array, which will be appended to the respective field(s) in the handshake document.

Nota: Handshake information is limited to 512 bytes. The driver will truncate handshake data to fit within this 512-byte string. Drivers and ODMs are encouraged to keep their own metadata concise.

pem_file string

Path to a PEM encoded certificate to use for client authentication.

This option is a deprecated alias for the "tlsCertificateKeyFile" URI option.

pem_pwd string

Passphrase for the PEM encoded certificate (if applicable).

This option is a deprecated alias for the "tlsCertificateKeyFilePassword" URI option.

serverApi MongoDB\Driver\ServerApi

This option is used to declare a server API version for the manager. If omitted, no API version is declared.

weak_cert_validation bool

Disables certificate validation if true. Defaults to false

This option is a deprecated alias for the "tlsAllowInvalidCertificates" URI option.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\RuntimeException if the uri format is invalid

Registro de Alterações

Versão Descrição
PECL mongodb 1.16.0

The AWS KMS provider for client-side encryption now accepts a "sessionToken" option, which can be used to authenticate with temporary AWS credentials.

Added "tlsDisableOCSPEndpointCheck" to the "tlsOptions" field of the "autoEncryption" driver option.

If an empty document is specified for the "azure" or "gcp" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

PECL mongodb 1.15.0

If an empty document is specified for the "aws" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

PECL mongodb 1.14.0

Added the "bypassQueryAnalysis" and "encryptedFieldsMap" auto encryption options. Additional options pertaining to crypt_shared are now supported in the "extraOptions" auto encryption option.

PECL mongodb 1.13.0

Added the "srvMaxHosts" and "srvServiceName" URI options.

PECL mongodb 1.12.0

KMIP is now supported as a KMS provider for client-side encryption and may be configured in the "kmsProviders" field of the "autoEncryption" driver option. Additionally, TLS options for KMS providers may now be configured in the "tlsOptions" field of the "autoEncryption" driver option.

PECL mongodb 1.11.0

Added the "loadBalanced" URI option.

PECL mongodb 1.10.0

Added the "disableClientPersistence" driver option.

Azure and GCP are now supported as KMS providers for client-side encryption and may be configured in the "kmsProviders" field of the "autoEncryption" driver option. Base64-encoded strings are now accepted as an alternative to MongoDB\BSON\Binary for options within "kmsProviders".

PECL mongodb 1.8.0

Added the "directConnection", "tlsDisableCertificateRevocationCheck", and "tlsDisableOCSPEndpointCheck" URI options.

Added the "driver" driver option.

PECL mongodb 1.7.0

Added the "autoEncryption" driver option.

Specifying any SSL or TLS option via the driverOptions parameter will now implicitly enable TLS, as is done for the corresponding URI options.

PECL mongodb 1.6.0

Added the "retryReads", "tls", "tlsAllowInvalidCertificates", "tlsAllowInvalidHostnames", "tlsCAFile", "tlsCertificateKeyFile", "tlsCertificateKeyFilePassword", and "tlsInsecure" URI options.

The "retryWrites" URI option defaults to true.

Specifying any SSL or TLS URI option via the connection string or uriOptions parameter will now implicitly enable TLS unless ssl or tls is false. TLS is not implicitly enabled for any options in the driverOptions parameter, which is unchanged from previous versions.

PECL mongodb 1.5.0

"wtimeoutMS" is now always validated and applied to the write concern. Previously, the option was ignored if "w" was <= 1, since the timeout only applies to replication.

PECL mongodb 1.4.0

Added the "compressors", "retryWrites", and "zlibCompressionLevel" URI options.

PECL mongodb 1.3.0

The uriOptions argument now accepts "authMechanism" and "authMechanismProperties" options. Previously, these options were only supported in the uri argument.

PECL mongodb 1.2.0

The uri argument defaults to "mongodb://127.0.0.1/". The default port remains 27017.

Added the "appname" URI option.

Added the "allow_invalid_hostname", "ca_file", "ca_dir", "clr_file", "pem_file", "pem_pwd", and "weak_cert_validation" driver options.

The PHP Streams API is no longer used for socket communication. The "connectTimeoutMS" URI option now defaults to 10 seconds instead of default_socket_timeout in previous versions. Additionally, the driver no longer supports all SSL context options via the "context" driver option.

PECL mongodb 1.1.0

The uri argument is optional and defaults to "mongodb://localhost:27017/".

Exemplos

Exemplo #1 MongoDB\Driver\Manager::__construct() basic examples

Connecting to standalone MongoDB node:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://example.com:27017");

?>

Connecting to standalone MongoDB node via a Unix domain socket. The socket path may include special characters such as slashes and should be encoded with rawurlencode().

<?php

$manager = new MongoDB\Driver\Manager("mongodb://" . rawurlencode("/tmp/mongodb-27017.sock"));

?>

Connecting to a replica set:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

?>

Connecting to a sharded cluster (i.e. one or more mongos instances):

<?php

$manager = new MongoDB\Driver\Manager("mongodb://mongos1.example.com,mongos2.example.com/");

?>

Connecting to MongoDB with authentication credentials for a particular user and database:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:mypassword@example.com/?authSource=databaseName");

?>

Connecting to MongoDB with authentication credentials for a particular user and database, where the username or password includes special characters (e.g. @, :, %). In the following example, the password string myp@ss:w%rd has been manually escaped; however, rawurlencode() may also be used to escape URI components that may contain special characters.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:myp%40ss%3Aw%25rd@example.com/?authSource=databaseName");

?>

Connecting to MongoDB with X509 authentication:

<?php

$manager = new MongoDB\Driver\Manager(
"mongodb://example.com/?ssl=true&authMechanism=MONGODB-X509",
[],
[
"pem_file" => "/path/to/client.pem",
]
);
?>

Veja Também

  • Connection handling and persistence
  • » MongoDB Connection String Format


Create a new ClientEncryption object

  • « MongoDB\Driver\Manager::__construct
  • MongoDB\Driver\Manager::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Create a new ClientEncryption object

MongoDB\Driver\Manager::createClientEncryption

(mongodb >=1.7.0)

MongoDB\Driver\Manager::createClientEncryption — Create a new ClientEncryption object

Descrição

final public MongoDB\Driver\Manager::createClientEncryption(array $options): MongoDB\Driver\ClientEncryption

Constructs a new MongoDB\Driver\ClientEncryption object with the specified options.

Parâmetros

options

options
Option | Type | Description
keyVaultClient | MongoDB\Driver\Manager | O Manager usado para rotear consultas de chave de dados para um cluster MongoDB separado. Por padrão, o Manager e o cluster atuais são usados.
keyVaultNamespace | string | Um namespace totalmente qualificado (por exemplo, "nomeDoBancoDados.nomeDaColecao") denotando a coleção que contém todas as chaves de dados usadas para criptografia e descriptografia. Esta opção é obrigatória.
kmsProviders array

Um documento contendo a configuração de um ou mais provedores KMS, que são usados para criptografar chaves de dados. Os provedores compatíveis incluem "aws", "azure", "gcp", "kmip" e "local" e pelo menos um deve ser especificado.

Se um documento vazio for especificado para "aws", "azure", ou "gcp", o driver tentará configurar o provedor usando » Credenciais Automáticas.

O formato para "aws" é o seguinte:

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>,
    sessionToken: <string opcional>
}

O formato para "azure" é o seguinte:

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <string opcional> // O padrão é "login.microsoftonline.com"
}

O formato para "gcp" é o seguinte:

gcp: {
    email: <string>,
    privateKey: <string base64>|<MongoDB\BSON\Binary>,
    endpoint: <string opcional> // O padrão é "oauth2.googleapis.com"
}

O formato para "kmip" é o seguinte:

kmip: {
    endpoint: <string>
}

O formato para "local" é o seguinte:

local: {
    // Chave mestra de 96 bytes usada para criptografar/descriptografar chaves de dados
    key: <string base64>|<MongoDB\BSON\Binary>
}
tlsOptions array

Um documento contendo a configuração TLS para um ou mais provedores KMS. Os provedores suportados incluem "aws", "azure", "gcp" e "kmip". Todos os provedores suportam as seguintes opções:

<provider>: {
    tlsCaFile: <string opcional>,
    tlsCertificateKeyFile: <string opcional>,
    tlsCertificateKeyFilePassword: <string opcional>,
    tlsDisableOCSPEndpointCheck: <booleano opcional>
}

Valor Retornado

Returns a new MongoDB\Driver\ClientEncryption instance.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\RuntimeException if the extension was compiled without libmongocrypt support

Registro de Alterações

Versão | Descrição
PECL mongodb 1.16.0

The AWS KMS provider for client-side encryption now accepts a "sessionToken" option, which can be used to authenticate with temporary AWS credentials.

Added "tlsDisableOCSPEndpointCheck" to the "tlsOptions" option.

If an empty document is specified for the "azure" or "gcp" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

PECL mongodb 1.15.0

If an empty document is specified for the "aws" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

PECL mongodb 1.12.0

KMIP is now supported as a KMS provider for client-side encryption and may be configured in the "kmsProviders" option.

Added the "tlsOptions" option.

PECL mongodb 1.10.0 | Azure and GCP are now supported as KMS providers for client-side encryption and may be configured in the "kmsProviders" option. Base64-encoded strings are now accepted as an alternative to MongoDB\BSON\Binary for options within "kmsProviders".

Veja Também

  • MongoDB\Driver\ClientEncryption::__construct() - Create a new ClientEncryption object
  • » Explicit (Manual) Client-Side Field Level Encryption in the MongoDB manual


Execute one or more write operations

  • « MongoDB\Driver\Manager::createClientEncryption
  • MongoDB\Driver\Manager::executeCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute one or more write operations

MongoDB\Driver\Manager::executeBulkWrite

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations

Descrição

final public MongoDB\Driver\Manager::executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, array|MongoDB\Driver\WriteConcern|null $options = null): MongoDB\Driver\WriteResult

Executes one or more write operations on the primary server.

A MongoDB\Driver\BulkWrite can be constructed with one or more write operations of varying types (e.g. updates, deletes, and inserts). The driver will attempt to send operations of the same type to the server in as few requests as possible to optimize round trips.

Parâmetros

namespace (string)

Um namespace totalmente qualificado (por exemplo, "nomeDoBancoDados.nomeDaColecao").

bulk (MongoDB\Driver\BulkWrite)

As gravações a serem executadas.

options

options
Option Type Description
session MongoDB\Driver\Session

Uma sessão para associar à operação.

writeConcern MongoDB\Driver\WriteConcern

Um write concern a ser aplicado à operação.

Valor Retornado

Retorna MongoDB\Driver\WriteResult em caso de sucesso.

Erros/Exceções

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if bulk does not contain any write operations.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if bulk has already been executed. MongoDB\Driver\BulkWrite objects may not be executed multiple times.
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada em combinação com um write concern não confirmado.
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Lança uma exceção MongoDB\Driver\Exception\BulkWriteException em caso de qualquer falha de escrita (por exemplo, erro de escrita, falha ao aplicar um write concern).
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\WriteConcern object.
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\InvalidArgumentException is now thrown if bulk does not contain any write operations. Previously, a MongoDB\Driver\Exception\BulkWriteException was thrown.

Exemplos

Exemplo #1 MongoDB\Driver\Manager::executeBulkWrite() example

<?php

$bulk = new MongoDB\Driver\BulkWrite();

$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);

$bulk->update(['x' => 2], ['$set' => ['x' => 1]], ['multi' => false, 'upsert' => false]);
$bulk->update(['x' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);
$bulk->update(['_id' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);

$bulk->insert(['_id' => 4, 'x' => 2]);

$bulk->delete(['x' => 1], ['limit' => 1]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 100);
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Matched %d document(s)\n", $result->getMatchedCount());
printf("Updated %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted %d document(s)\n", $result->getDeletedCount());

foreach ($result->getUpsertedIds() as $index => $id) {
printf('upsertedId[%d]: ', $index);
var_dump($id);
}

/* If the WriteConcern could not be fulfilled */
if ($writeConcernError = $result->getWriteConcernError()) {
printf("%s (%d): %s\n", $writeConcernError->getMessage(), $writeConcernError->getCode(), var_export($writeConcernError->getInfo(), true));
}

/* If a write could not happen at all */
foreach ($result->getWriteErrors() as $writeError) {
printf("Operation#%d: %s (%d)\n", $writeError->getIndex(), $writeError->getMessage(), $writeError->getCode());
}
?>

O exemplo acima produzirá algo semelhante a:

Inserted 3 document(s)
Matched  1 document(s)
Updated  1 document(s)
Upserted 2 document(s)
Deleted  1 document(s)
upsertedId[3]: object(MongoDB\BSON\ObjectId)#5 (1) {
  ["oid"]=>
  string(24) "54d3adc3ce7a792f4d703756"
}
upsertedId[4]: int(3)

Veja Também

  • MongoDB\Driver\BulkWrite
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Server::executeBulkWrite() - Execute one or more write operations on this server


Execute a database command

  • « MongoDB\Driver\Manager::executeBulkWrite
  • MongoDB\Driver\Manager::executeQuery »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command

MongoDB\Driver\Manager::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeCommand — Execute a database command

Descrição

final public MongoDB\Driver\Manager::executeCommand(string $db, MongoDB\Driver\Command $command, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor

Selects a server according to the "readPreference" option and executes the command on that server. By default, the primary server will be selected.

This method applies no special logic to the command. Although this method accepts "readConcern" and "writeConcern" options, which will be incorporated into the command document, those options will not default to corresponding values from the MongoDB Connection URI nor will the MongoDB server version be taken into account. Users are therefore encouraged to use specific read and/or write command methods if possible.

Parâmetros

db (string)

O nome do banco de dados no qual executar o comando.

command (MongoDB\Driver\Command)

O comando a ser executado.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Um read concern a ser aplicado à operação.

Esta opção está disponível no MongoDB 3.2+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

readPreference MongoDB\Driver\ReadPreference

Uma preferência de leitura a ser usada para selecionar um servidor para a operação.

session MongoDB\Driver\Session

Uma sessão para associar à operação.

writeConcern MongoDB\Driver\WriteConcern

Um write concern a ser aplicado à operação.

Aviso

Se uma "session" que tem uma transação em andamento estiver sendo usada, uma opção "readConcern" ou "writeConcern" não pode ser especificada. Isso resultará em uma exceção MongoDB\Driver\Exception\InvalidArgumentException sendo lançada. Em vez disso, essas duas opções devem ser definidas ao criar a transação com MongoDB\Driver\Session::startTransaction().

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada com uma transação associada em combinação com uma opção "readConcern" ou "writeConcern".
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada em combinação com um write concern não confirmado.
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

Exemplos

Exemplo #1 MongoDB\Driver\Manager::executeCommand() with a command returning a single result document

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$command = new MongoDB\Driver\Command(['ping' => 1]);

try {
$cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}

/* The ping command returns a single result document, so we need to access the
* first result in the cursor. */
$response = $cursor->toArray()[0];

var_dump($response);

?>

O exemplo acima produzirá:

array(1) {
  ["ok"]=>
  float(1)
}

Exemplo #2 MongoDB\Driver\Manager::executeCommand() with a command returning a cursor

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1, 'y' => 'foo']);
$bulk->insert(['x' => 2, 'y' => 'bar']);
$bulk->insert(['x' => 3, 'y' => 'bar']);
$manager->executeBulkWrite('db.collection', $bulk);

$command = new MongoDB\Driver\Command([
'aggregate' => 'collection',
'pipeline' => [
['$group' => ['_id' => '$y', 'sum' => ['$sum' => '$x']]],
],
'cursor' => new stdClass,
]);
$cursor = $manager->executeCommand('db', $command);

/* The aggregate command can optionally return its results in a cursor instead
* of a single result document. In this case, we can iterate on the cursor
* directly to access those results. */
foreach ($cursor as $document) {
var_dump($document);
}

?>

O exemplo acima produzirá:

object(stdClass)#6 (2) {
  ["_id"]=>
  string(3) "bar"
  ["sum"]=>
  int(10)
}
object(stdClass)#7 (2) {
  ["_id"]=>
  string(3) "foo"
  ["sum"]=>
  int(2)
}

Exemplo #3 Limiting execution time for a command

The execution time of a command may be limited by specifying a value for "maxTimeMS" in the MongoDB\Driver\Command document. Note that this time limit is enforced on the server side and does not take network latency into account. See » Terminate Running Operations in the MongoDB manual for more information.

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');

$command = new MongoDB\Driver\Command([
'count' => 'collection',
'query' => ['x' => ['$gt' => 1]],
'maxTimeMS' => 1000,
]);

$cursor = $manager->executeCommand('db', $command);

var_dump($cursor->toArray()[0]);

?>

If the command fails to complete after one second of execution time on the server, a MongoDB\Driver\Exception\ExecutionTimeoutException will be thrown.

Notas

Nota: If a secondary readPreference is used, it is the caller's responsibility to ensure that the command can be executed on a secondary. No validation is done by the driver.

Nota: This method does not default to using the read preference from the MongoDB Connection URI. Applications in need of that behavior should consider using MongoDB\Driver\Manager::executeReadCommand().

Veja Também

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server


Execute a database query

  • « MongoDB\Driver\Manager::executeCommand
  • MongoDB\Driver\Manager::executeReadCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database query

MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQuery — Execute a database query

Descrição

final public MongoDB\Driver\Manager::executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor

Selects a server according to the "readPreference" option and executes the query on that server. By default, the read preference from the MongoDB Connection URI will be used.

Parâmetros

namespace (string)

Um namespace totalmente qualificado (por exemplo, "nomeDoBancoDados.nomeDaColecao").

query (MongoDB\Driver\Query)

A consulta a ser executada.

options

options
Option Type Description
readPreference MongoDB\Driver\ReadPreference

Uma preferência de leitura a ser usada para selecionar um servidor para a operação.

session MongoDB\Driver\Session

Uma sessão para associar à operação.

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid query operators).

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

Exemplos

Exemplo #1 MongoDB\Driver\Manager::executeQuery() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$filter = ['x' => ['$gt' => 1]];
$options = [
'projection' => ['_id' => 0],
'sort' => ['x' => -1],
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach ($cursor as $document) {
var_dump($document);
}

?>

O exemplo acima produzirá:

object(stdClass)#6 (1) {
  ["x"]=>
  int(3)
}
object(stdClass)#7 (1) {
  ["x"]=>
  int(2)
}

Exemplo #2 Limiting execution time for a query

The "maxTimeMS" MongoDB\Driver\Query option may be used to limit the execution time of a query. Note that this time limit is enforced on the server side and does not take network latency into account. See » Terminate Running Operations in the MongoDB manual for more information.

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');

$filter = ['x' => ['$gt' => 1]];
$options = [
'maxTimeMS' => 1000,
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach ($cursor as $document) {
var_dump($document);
}

?>

If the query fails to complete after one second of execution time on the server, a MongoDB\Driver\Exception\ExecutionTimeoutException will be thrown.

Veja Também

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Server::executeQuery() - Execute a database query on this server


Execute a database command that reads

  • « MongoDB\Driver\Manager::executeQuery
  • MongoDB\Driver\Manager::executeReadWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command that reads

MongoDB\Driver\Manager::executeReadCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeReadCommand — Execute a database command that reads

Descrição

final public MongoDB\Driver\Manager::executeReadCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Selects a server according to the "readPreference" option and executes the command on that server. By default, the read preference from the MongoDB Connection URI will be used.

This method will apply logic that is specific to commands that read (e.g. » count) and take the MongoDB server version into account. The "readConcern" option will default to the corresponding value from the MongoDB Connection URI.

Parâmetros

db (string)

O nome do banco de dados no qual executar o comando.

command (MongoDB\Driver\Command)

O comando a ser executado.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Um read concern a ser aplicado à operação.

Esta opção está disponível no MongoDB 3.2+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

readPreference MongoDB\Driver\ReadPreference

Uma preferência de leitura a ser usada para selecionar um servidor para a operação.

session MongoDB\Driver\Session

Uma sessão para associar à operação.

Aviso

Se uma "session" que tem uma transação em andamento estiver sendo usada, uma opção "readConcern" ou "writeConcern" não pode ser especificada. Isso resultará em uma exceção MongoDB\Driver\Exception\InvalidArgumentException sendo lançada. Em vez disso, essas duas opções devem ser definidas ao criar a transação com MongoDB\Driver\Session::startTransaction().

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada com uma transação associada em combinação com uma opção "readConcern" ou "writeConcern".
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Veja Também

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server


Execute a database command that reads and writes

  • « MongoDB\Driver\Manager::executeReadCommand
  • MongoDB\Driver\Manager::executeWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command that reads and writes

MongoDB\Driver\Manager::executeReadWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeReadWriteCommand — Execute a database command that reads and writes

Descrição

final public MongoDB\Driver\Manager::executeReadWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Executes the command on the primary server.

This method will apply logic that is specific to commands that read and write (e.g. » aggregate) and take the MongoDB server version into account. The "readConcern" and "writeConcern" options will default to the corresponding values from the MongoDB Connection URI.

Parâmetros

db (string)

O nome do banco de dados no qual executar o comando.

command (MongoDB\Driver\Command)

O comando a ser executado.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Um read concern a ser aplicado à operação.

Esta opção está disponível no MongoDB 3.2+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

session MongoDB\Driver\Session

Uma sessão para associar à operação.

writeConcern MongoDB\Driver\WriteConcern

Um write concern a ser aplicado à operação.

Aviso

Se uma "session" que tem uma transação em andamento estiver sendo usada, uma opção "readConcern" ou "writeConcern" não pode ser especificada. Isso resultará em uma exceção MongoDB\Driver\Exception\InvalidArgumentException sendo lançada. Em vez disso, essas duas opções devem ser definidas ao criar a transação com MongoDB\Driver\Session::startTransaction().

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada com uma transação associada em combinação com uma opção "readConcern" ou "writeConcern".
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada em combinação com um write concern não confirmado.
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Veja Também

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server


Execute a database command that writes

  • « MongoDB\Driver\Manager::executeReadWriteCommand
  • MongoDB\Driver\Manager::getEncryptedFieldsMap »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command that writes

MongoDB\Driver\Manager::executeWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeWriteCommand — Execute a database command that writes

Descrição

final public MongoDB\Driver\Manager::executeWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Executes the command on the primary server.

This method will apply logic that is specific to commands that write (e.g. » drop) and take the MongoDB server version into account. The "writeConcern" option will default to the corresponding value from the MongoDB Connection URI.

Nota: This method is not intended to be used to execute » insert, » update, or » delete commands. Users are encouraged to use MongoDB\Driver\Manager::executeBulkWrite() for those commands.

Parâmetros

db (string)

O nome do banco de dados no qual executar o comando.

command (MongoDB\Driver\Command)

O comando a ser executado.

options

options
Option Type Description
session MongoDB\Driver\Session

Uma sessão para associar à operação.

writeConcern MongoDB\Driver\WriteConcern

Um write concern a ser aplicado à operação.

Aviso

Se uma "session" que tem uma transação em andamento estiver sendo usada, uma opção "readConcern" ou "writeConcern" não pode ser especificada. Isso resultará em uma exceção MongoDB\Driver\Exception\InvalidArgumentException sendo lançada. Em vez disso, essas duas opções devem ser definidas ao criar a transação com MongoDB\Driver\Session::startTransaction().

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada com uma transação associada em combinação com uma opção "readConcern" ou "writeConcern".
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada em combinação com um write concern não confirmado.
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Veja Também

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server


Return the encryptedFieldsMap auto encryption option for the Manager

  • « MongoDB\Driver\Manager::executeWriteCommand
  • MongoDB\Driver\Manager::getReadConcern »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the encryptedFieldsMap auto encryption option for the Manager

MongoDB\Driver\Manager::getEncryptedFieldsMap

(mongodb >=1.14.0)

MongoDB\Driver\Manager::getEncryptedFieldsMap — Return the encryptedFieldsMap auto encryption option for the Manager

Descrição

final public MongoDB\Driver\Manager::getEncryptedFieldsMap(): array|object|null

Returns the encryptedFieldsMap auto encryption option for the Manager, if specified.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The encryptedFieldsMap auto encryption option for the Manager, or null if it was not specified.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Return the ReadConcern for the Manager

  • « MongoDB\Driver\Manager::getEncryptedFieldsMap
  • MongoDB\Driver\Manager::getReadPreference »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the ReadConcern for the Manager

MongoDB\Driver\Manager::getReadConcern

(mongodb >=1.1.0)

MongoDB\Driver\Manager::getReadConcern — Return the ReadConcern for the Manager

Descrição

final public MongoDB\Driver\Manager::getReadConcern(): MongoDB\Driver\ReadConcern

Returns the MongoDB\Driver\ReadConcern for the Manager, which is derived from its URI options. This is the default read concern for queries and commands executed on the Manager.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The MongoDB\Driver\ReadConcern for the Manager.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Manager::getReadConcern() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getReadConcern());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?readConcernLevel=local');
var_dump($manager->getReadConcern());

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\Driver\ReadConcern)#2 (0) {
}
object(MongoDB\Driver\ReadConcern)#1 (1) {
  ["level"]=>
  string(5) "local"
}

Veja Também

  • MongoDB\Driver\ReadConcern
  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Return the ReadPreference for the Manager

  • « MongoDB\Driver\Manager::getReadConcern
  • MongoDB\Driver\Manager::getServers »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the ReadPreference for the Manager

MongoDB\Driver\Manager::getReadPreference

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getReadPreference — Return the ReadPreference for the Manager

Descrição

final public MongoDB\Driver\Manager::getReadPreference(): MongoDB\Driver\ReadPreference

Returns the MongoDB\Driver\ReadPreference for the Manager, which is derived from its URI options. This is the default read preference for queries and commands executed on the Manager.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The MongoDB\Driver\ReadPreference for the Manager.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Manager::getReadPreference() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getReadPreference());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?readPreference=secondaryPreferred&readPreferenceTags=dc:ny,rack:1&readPreferenceTags=dc:ny&readPreferenceTags=');
var_dump($manager->getReadPreference());

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\Driver\ReadPreference)#2 (1) {
  ["mode"]=>
  string(7) "primary"
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(18) "secondaryPreferred"
  ["tags"]=>
  array(3) {
    [0]=>
    object(stdClass)#3 (2) {
      ["dc"]=>
      string(2) "ny"
      ["rack"]=>
      string(1) "1"
    }
    [1]=>
    object(stdClass)#4 (1) {
      ["dc"]=>
      string(2) "ny"
    }
    [2]=>
    object(stdClass)#5 (0) {
    }
  }
}

Veja Também

  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Return the servers to which this manager is connected

  • « MongoDB\Driver\Manager::getReadPreference
  • MongoDB\Driver\Manager::getWriteConcern »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the servers to which this manager is connected

MongoDB\Driver\Manager::getServers

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getServers — Return the servers to which this manager is connected

Descrição

final public MongoDB\Driver\Manager::getServers(): array

Returns an array of MongoDB\Driver\Server instances to which this manager is connected.

Nota: Since the driver connects to the database lazily, this method may return an empty array if called before executing an operation on the MongoDB\Driver\Manager.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of MongoDB\Driver\Server instances to which this manager is connected.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Manager::getServers() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

/* The driver connects to the database server lazily, so Manager::getServers()
* may initially return an empty array. */
var_dump($manager->getServers());

$command = new MongoDB\Driver\Command(['ping' => 1]);
$manager->executeCommand('db', $command);

var_dump($manager->getServers());

?>

O exemplo acima produzirá algo semelhante a:

array(0) {
}
array(1) {
  [0]=>
  object(MongoDB\Driver\Server)#3 (10) {
    ["host"]=>
    string(9) "localhost"
    ["port"]=>
    int(27017)
    ["type"]=>
    int(1)
    ["is_primary"]=>
    bool(false)
    ["is_secondary"]=>
    bool(false)
    ["is_arbiter"]=>
    bool(false)
    ["is_hidden"]=>
    bool(false)
    ["is_passive"]=>
    bool(false)
    ["last_hello_response"]=>
    array(8) {
      ["isWritablePrimary"]=>
      bool(true)
      ["maxBsonObjectSize"]=>
      int(16777216)
      ["maxMessageSizeBytes"]=>
      int(48000000)
      ["maxWriteBatchSize"]=>
      int(1000)
      ["localTime"]=>
      object(MongoDB\BSON\UTCDateTime)#4 (1) {
        ["milliseconds"]=>
        int(1447267964517)
      }
      ["maxWireVersion"]=>
      int(3)
      ["minWireVersion"]=>
      int(0)
      ["ok"]=>
      float(1)
    }
    ["round_trip_time"]=>
    int(554)
  }
}

Veja Também

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::selectServer() - Select a server matching a read preference


Return the WriteConcern for the Manager

  • « MongoDB\Driver\Manager::getServers
  • MongoDB\Driver\Manager::removeSubscriber »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the WriteConcern for the Manager

MongoDB\Driver\Manager::getWriteConcern

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getWriteConcern — Return the WriteConcern for the Manager

Descrição

final public MongoDB\Driver\Manager::getWriteConcern(): MongoDB\Driver\WriteConcern

Returns the MongoDB\Driver\WriteConcern for the Manager, which is derived from its URI options. This is the default write concern for writes and commands executed on the Manager.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The MongoDB\Driver\WriteConcern for the Manager.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Manager::getWriteConcern() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getWriteConcern());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?w=majority&wtimeoutMS=2000');
var_dump($manager->getWriteConcern());

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\Driver\WriteConcern)#2 (0) {
}
object(MongoDB\Driver\WriteConcern)#1 (2) {
  ["w"]=>
  string(8) "majority"
  ["wtimeout"]=>
  int(2000)
}

Veja Também

  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Unregisters a monitoring event subscriber with this Manager

  • « MongoDB\Driver\Manager::getWriteConcern
  • MongoDB\Driver\Manager::selectServer »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Unregisters a monitoring event subscriber with this Manager

MongoDB\Driver\Manager::removeSubscriber

(mongodb >=1.10.0)

MongoDB\Driver\Manager::removeSubscriber — Unregisters a monitoring event subscriber with this Manager

Descrição

final public MongoDB\Driver\Manager::removeSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void

Unregisters a monitoring event subscriber with this Manager.

Nota: If subscriber is not already registered with this Manager, this function is a no-op.

Parâmetros

subscriber (MongoDB\Driver\Monitoring\Subscriber)

A monitoring event subscriber to unregister with this Manager.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\removeSubscriber() - Unregisters a monitoring event subscriber globally
  • Application Performance Monitoring (APM)


Select a server matching a read preference

  • « MongoDB\Driver\Manager::removeSubscriber
  • MongoDB\Driver\Manager::startSession »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Select a server matching a read preference

MongoDB\Driver\Manager::selectServer

(mongodb >=1.0.0)

MongoDB\Driver\Manager::selectServer — Select a server matching a read preference

Descrição

final public MongoDB\Driver\Manager::selectServer(?MongoDB\Driver\ReadPreference $readPreference = null): MongoDB\Driver\Server

Selects a MongoDB\Driver\Server matching readPreference. If readPreference is null or omitted, the primary server will be selected by default. This may be used to preselect a server in order to perform version checking before executing an operation.

Nota: Unlike MongoDB\Driver\Manager::getServers(), this method will initialize database connections and perform server discovery if necessary. See the » Server Selection Specification for additional information.

Parâmetros

readPreference (MongoDB\Driver\ReadPreference)

The read preference to use for selecting a server. If null or omitted, the primary server will be selected by default.

Valor Retornado

Returns a MongoDB\Driver\Server matching the read preference.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException if a server matching the read preference could not be found.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.11.0 | The readPreference is now optional. If null or omitted, the primary server will be selected by default.

Veja Também

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::getServers() - Return the servers to which this manager is connected
  • » Server Selection Specification


Start a new client session for use with this client

  • « MongoDB\Driver\Manager::selectServer
  • MongoDB\Driver\Command »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Start a new client session for use with this client

MongoDB\Driver\Manager::startSession

(mongodb >=1.4.0)

MongoDB\Driver\Manager::startSession — Start a new client session for use with this client

Descrição

final public MongoDB\Driver\Manager::startSession(?array $options = null): MongoDB\Driver\Session

Creates a MongoDB\Driver\Session for the given options. The session may then be specified when executing commands, queries, and write operations.

Nota: A MongoDB\Driver\Session can only be used with the MongoDB\Driver\Manager from which it was created.

Parâmetros

options

options
Option Type Description Default
causalConsistency bool

Configure causal consistency in a session. If true, each operation in the session will be causally ordered after the previous read or write operation. Set to false to disable causal consistency.

See » Casual Consistency in the MongoDB manual for more information.

true
defaultTransactionOptions array

Default options to apply to newly created transactions. These options are used unless they are overridden when a transaction is started with different value for each option.

options
Option Type Description
maxCommitTimeMS integer

A quantidade máxima de tempo em milissegundos para permitir que um único comando commitTransaction seja executado.

Se especificada, maxCommitTimeMS deve ser um inteiro de 32 bits com sinal com valor maior ou igual a zero.

readConcern MongoDB\Driver\ReadConcern

Um read concern a ser aplicado à operação.

Esta opção está disponível no MongoDB 3.2+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

readPreference MongoDB\Driver\ReadPreference

Uma preferência de leitura a ser usada para selecionar um servidor para a operação.

writeConcern MongoDB\Driver\WriteConcern

Um write concern a ser aplicado à operação.

This option is available in MongoDB 4.0+.

[]
snapshot bool

Configure snapshot reads in a session. If true, a timestamp will be obtained from the first supported read operation in the session (i.e. find, aggregate, or unsharded distinct). Subsequent read operations within the session will then utilize a "snapshot" read concern level to read majority-committed data from that timestamp. Set to false to disable snapshot reads.

Snapshot reads require MongoDB 5.0+ and cannot be used with causal consistency, transactions, or write operations. If "snapshot" is true, "causalConsistency" will default to false.

See » Read Concern "snapshot" in the MongoDB manual for more information.

false

Valor Retornado

Returns a MongoDB\Driver\Session.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "causalConsistency" and "snapshot" options are both true.
  • Throws MongoDB\Driver\Exception\RuntimeException if the session could not be created (e.g. libmongoc does not support crypto).

Registro de Alterações

Versão | Descrição
PECL mongodb 1.11.0 | The "snapshot" option was added.
PECL mongodb 1.6.0 | The "maxCommitTimeMS" option was added to "defaultTransactionOptions".
PECL mongodb 1.5.0 | The "defaultTransactionOptions" option was added.

Veja Também

  • MongoDB\Driver\Session
  • » Casual Consistency in the MongoDB manual


The MongoDB\Driver\Command class

(mongodb >=1.0.0)

Introdução

The MongoDB\Driver\Command class is a value object that represents a database command.

To provide Command Helpers the MongoDB\Driver\Command object should be composed.

Resumo da classe

final class MongoDB\Driver\Command {
/* Métodos */
final public __construct(array|object $document, ?array $commandOptions = null)
}

Exemplos

Exemplo #1 Composing MongoDB\Driver\Command to provide a helper to create collections

<?php
class CreateCollection {
protected $cmd = array();

function __construct($collectionName) {
$this->cmd["create"] = (string)$collectionName;
}
function setCappedCollection($maxBytes, $maxDocuments = false) {
$this->cmd["capped"] = true;
$this->cmd["size"] = (int)$maxBytes;

if ($maxDocuments) {
$this->cmd["max"] = (int)$maxDocuments;
}
}
function usePowerOf2Sizes($bool) {
if ($bool) {
$this->cmd["flags"] = 1;
} else {
$this->cmd["flags"] = 0;
}
}
function setFlags($flags) {
$this->cmd["flags"] = (int)$flags;
}
function getCommand() {
return new MongoDB\Driver\Command($this->cmd);
}
function getCollectionName() {
return $this->cmd["create"];
}
}

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$createCollection = new CreateCollection("cappedCollection");
$createCollection->setCappedCollection(64 * 1024);

try {
$command = $createCollection->getCommand();
$cursor = $manager->executeCommand("databaseName", $command);
$response = $cursor->toArray()[0];
var_dump($response);

$collstats = ["collstats" => $createCollection->getCollectionName()];
$cursor = $manager->executeCommand("databaseName", new MongoDB\Driver\Command($collstats));
$response = $cursor->toArray()[0];
var_dump($response);
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}

?>

O exemplo acima produzirá:

object(MongoDB\Driver\Command)#3 (1) {
  ["command"]=>
  array(3) {
    ["create"]=>
    string(16) "cappedCollection"
    ["capped"]=>
    bool(true)
    ["size"]=>
    int(65536)
  }
}
array(1) {
  ["ok"]=>
  float(1)
}
array(16) {
  ["ns"]=>
  string(29) "databaseName.cappedCollection"
  ["count"]=>
  int(0)
  ["size"]=>
  int(0)
  ["numExtents"]=>
  int(1)
  ["storageSize"]=>
  int(65536)
  ["nindexes"]=>
  int(1)
  ["lastExtentSize"]=>
  float(65536)
  ["paddingFactor"]=>
  float(1)
  ["paddingFactorNote"]=>
  string(101) "paddingFactor is unused and unmaintained in 2.8. It remains hard coded to 1.0 for compatibility only."
  ["userFlags"]=>
  int(0)
  ["capped"]=>
  bool(true)
  ["max"]=>
  int(9223372036854775807)
  ["maxSize"]=>
  int(65536)
  ["totalIndexSize"]=>
  int(8176)
  ["indexSizes"]=>
  object(stdClass)#4 (1) {
    ["_id_"]=>
    int(8176)
  }
  ["ok"]=>
  float(1)
}

Índice

  • MongoDB\Driver\Command::__construct — Create a new Command


Create a new Command

  • « MongoDB\Driver\Command
  • MongoDB\Driver\Query »
  • PHP Manual
  • MongoDB\Driver\Command
  • Create a new Command

MongoDB\Driver\Command::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Command::__construct — Create a new Command

Descrição

final public MongoDB\Driver\Command::__construct(array|object $document, ?array $commandOptions = null)

Constructs a new MongoDB\Driver\Command, which is an immutable value object that represents a database command. The command may then be executed with MongoDB\Driver\Manager::executeCommand().

The complete command document, which includes the command name and its options, should be expressed in the document parameter. The commandOptions parameter is only used to specify options related to the execution of the command and the resulting MongoDB\Driver\Cursor.

Parâmetros

document

The complete command document, which will be sent to the server.

commandOptions

Nota: Do not use this parameter to specify options described in the command's reference in the MongoDB manual. This parameter should only be used for the options explicitly listed below.

commandOptions
Option Type Description
maxAwaitTimeMS int

Positive integer denoting the time limit in milliseconds for the server to block a getMore operation if no data is available. This option should only be used in conjunction with commands that return a tailable cursor (e.g. » Change Streams).

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.0 | Added a second commandOptions argument, which supports the "maxAwaitTimeMS" option.

Exemplos

Exemplo #1 MongoDB\Driver\Command::__construct() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(array("buildinfo" => 1));

try {
$cursor = $manager->executeCommand("admin", $command);
$response = $cursor->toArray()[0];
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}
var_dump($response);

?>

O exemplo acima produzirá algo semelhante a:

array(13) {
  ["version"]=>
  string(14) "2.8.0-rc2-pre-"
  ["gitVersion"]=>
  string(62) "b743d7158f7642f4da6b7eac8320374b3b88dc2e modules: subscription"
  ["OpenSSLVersion"]=>
  string(25) "OpenSSL 1.0.1f 6 Jan 2014"
  ["sysInfo"]=>
  string(104) "Linux infant 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:07:32 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49"
  ["loaderFlags"]=>
  string(91) "-fPIC -pthread -Wl,-z,now -rdynamic -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,-E"
  ["compilerFlags"]=>
  string(301) "-Wnon-virtual-dtor -Woverloaded-virtual -std=c++11 -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -pipe -Werror -O3 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-but-set-variable -fno-builtin-memcmp -std=c99"
  ["allocator"]=>
  string(8) "tcmalloc"
  ["versionArray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(8)
    [2]=>
    int(0)
    [3]=>
    int(-8)
  }
  ["javascriptEngine"]=>
  string(2) "V8"
  ["bits"]=>
  int(64)
  ["debug"]=>
  bool(false)
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["ok"]=>
  float(1)
}

Exemplo #2 MongoDB\Driver\Command::__construct() example

Commands can accept options as well, as part of the normal structure that you create to send to the server. For example, the maxTimeMS option can be passed with most commands to restrict the amount of time a specific command can run for on the server.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(
array(
"distinct" => "beer",
"key" => "beer_name",
"maxTimeMS" => 10,
)
);

try {
$cursor = $manager->executeCommand("beerdb", $command);
$response = $cursor->toArray()[0];
} catch(MongoDB\Driver\Exception\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}
var_dump($response);

?>

O exemplo acima produzirá algo semelhante a:

operation exceeded time limit

Veja Também

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Cursor


The MongoDB\Driver\Query class

(mongodb >=1.0.0)

Introdução

The MongoDB\Driver\Query class is a value object that represents a database query.

Resumo da classe

final class MongoDB\Driver\Query {
/* Métodos */
final public __construct(array|object $filter, ?array $queryOptions = null)
}

Índice

  • MongoDB\Driver\Query::__construct — Create a new Query


Create a new Query

  • « MongoDB\Driver\Query
  • MongoDB\Driver\BulkWrite »
  • PHP Manual
  • MongoDB\Driver\Query
  • Create a new Query

MongoDB\Driver\Query::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Query::__construct — Create a new Query

Descrição

final public MongoDB\Driver\Query::__construct(array|object $filter, ?array $queryOptions = null)

Constructs a new MongoDB\Driver\Query, which is an immutable value object that represents a database query. The query may then be executed with MongoDB\Driver\Manager::executeQuery().

Parâmetros

filter (array|object)

O » predicado de consulta. Um predicado vazio corresponderá a todos os documentos da coleção.

Nota: Ao avaliar os critérios de consulta, o MongoDB compara os tipos e valores de acordo com suas próprias » regras de comparação para tipos BSON, que diferem das regras de comparação e do malabarismo de tipos do PHP. Ao corresponder a um tipo especial de BSON, os critérios de consulta devem usar a respectiva classe BSON (por exemplo, use MongoDB\BSON\ObjectId para corresponder a um » ObjectId).

queryOptions

queryOptions
Option | Type | Description
allowDiskUse bool

Allows MongoDB to use temporary disk files to store data exceeding the 100 megabyte system memory limit while processing a blocking sort operation.

allowPartialResults bool

For queries against a sharded collection, returns partial results from the mongos if some shards are unavailable instead of throwing an error.

Falls back to the deprecated "partial" option if not specified.

awaitData | bool | Use in conjunction with the "tailable" option to block a getMore operation on the cursor temporarily if at the end of data rather than returning no data. After a timeout period, the query returns as normal.
batchSize int

The number of documents to return in the first batch. Defaults to 101. A batch size of 0 means that the cursor will be established, but no documents will be returned in the first batch.

In versions of MongoDB before 3.2, where queries use the legacy wire protocol OP_QUERY, a batch size of 1 will close the cursor irrespective of the number of matched documents.

collation array|object

» Collation permite que os usuários especifiquem regras específicas do idioma para comparação de strings, como regras para maiúsculas e minúsculas e acentos. Ao especificar a collation, o campo "locale" é obrigatório; todos os outros campos de collation são opcionais. Para obter descrições dos campos, veja o » Documento de Collation.

Se a collation não for especificada, mas a coleção tiver uma collation padrão, a operação usará a collation especificada para a coleção. Se nenhuma collation for especificada para a coleção ou para a operação, o MongoDB usará a comparação binária simples usada em versões anteriores para comparações de strings.

Esta opção está disponível no MongoDB 3.4+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

comment mixed

An arbitrary comment to help trace the operation through the database profiler, currentOp output, and logs.

The comment can be any valid BSON type for MongoDB 4.4+. Earlier server versions only support string values.

Falls back to the deprecated "$comment" modifier if not specified.

exhaust bool

Stream the data down full blast in multiple "more" packages, on the assumption that the client will fully read all data queried. Faster when you are pulling a lot of data and know you want to pull it all down. Note: the client is not allowed to not read all the data unless it closes the connection.

This option is not supported by the find command in MongoDB 3.2+ and will force the driver to use the legacy wire protocol version (i.e. OP_QUERY).

explain bool

If true, the returned MongoDB\Driver\Cursor will contain a single document that describes the process and indexes used to return the query.

Falls back to the deprecated "$explain" modifier if not specified.

This option is not supported by the find command in MongoDB 3.2+ and will only be respected when using the legacy wire protocol version (i.e. OP_QUERY). The » explain command should be used on MongoDB 3.0+.

hint string|array|object

Index specification. Specify either the index name as a string or the index key pattern. If specified, then the query system will only consider plans using the hinted index.

Falls back to the deprecated "hint" option if not specified.

let array|object

Mapa de nomes e valores de parâmetros. Os valores devem ser expressões constantes ou fechadas que não fazem referência a campos do documento. Os parâmetros podem então ser acessados como variáveis em um contexto de expressão agregada (por exemplo, $$var).

Esta opção está disponível no MongoDB 5.0+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

limit int

The maximum number of documents to return. If unspecified, then defaults to no limit. A limit of 0 is equivalent to setting no limit.

A negative limit is will be interpreted as a positive limit with the "singleBatch" option set to true. This behavior is supported for backwards compatibility, but should be considered deprecated.

max array|object

The exclusive upper bound for a specific index.

Falls back to the deprecated "$max" modifier if not specified.

maxAwaitTimeMS int

Positive integer denoting the time limit in milliseconds for the server to block a getMore operation if no data is available. This option should only be used in conjunction with the "tailable" and "awaitData" options.

maxScan int
Aviso

This option is deprecated and should not be used.

Positive integer denoting the maximum number of documents or index keys to scan when executing the query.

Falls back to the deprecated "$maxScan" modifier if not specified.

maxTimeMS int

The cumulative time limit in milliseconds for processing operations on the cursor. MongoDB aborts the operation at the earliest following interrupt point.

Falls back to the deprecated "$maxTimeMS" modifier if not specified.

min array|object

The inclusive lower bound for a specific index.

Falls back to the deprecated "$min" modifier if not specified.

modifiers | array | » Meta operators modifying the output or behavior of a query. Use of these operators is deprecated in favor of named options.
noCursorTimeout | bool | Prevents the server from timing out idle cursors after an inactivity period (10 minutes).
oplogReplay bool

Internal use for replica sets. To use oplogReplay, you must include the following condition in the filter:

[ 'ts' => [ '$gte' => <timestamp> ] ]

Nota: This option is deprecated as of the 1.8.0 release.
projection array|object

The » projection specification to determine which fields to include in the returned documents.

If you are using the ODM functionality to deserialise documents as their original PHP class, make sure that you include the __pclass field in the projection. This is required for the deserialization to work and without it, the driver will return (by default) a stdClass object instead.

readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation. By default, the read concern from the MongoDB Connection URI will be used.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

returnKey bool

If true, returns only the index keys in the resulting documents. Default value is false. If true and the find command does not use an index, the returned documents will be empty.

Falls back to the deprecated "$returnKey" modifier if not specified.

showRecordId bool

Determines whether to return the record identifier for each document. If true, adds a top-level "$recordId" field to the returned documents.

Falls back to the deprecated "$showDiskLoc" modifier if not specified.

singleBatch | bool | Determines whether to close the cursor after the first batch. Defaults to false.
skip | int | Number of documents to skip. Defaults to 0.
snapshot bool
Aviso

This option is deprecated and should not be used.

Prevents the cursor from returning a document more than once because of an intervening write operation.

Falls back to the deprecated "$snapshot" modifier if not specified.

sort array|object

The sort specification for the ordering of the results.

Falls back to the deprecated "$orderby" modifier if not specified.

tailable | bool | Returns a tailable cursor for a capped collection.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.14.0

Added the "let" option. The "comment" option now accepts any type.

PECL mongodb 1.8.0

Added the "allowDiskUse" option.

The "oplogReplay" option is deprecated.

PECL mongodb 1.5.0

The "maxScan" and "snapshot" options are deprecated.

PECL mongodb 1.3.0

Added the "maxAwaitTimeMS" option.

PECL mongodb 1.2.0

Added the "allowPartialResults", "collation", "comment", "hint", "max", "maxScan", "maxTimeMS", "min", "returnKey", "showRecordId", and "snapshot" options.

Renamed the "partial" option to "allowPartialResults". For backwards compatibility, "partial" will still be read if "allowPartialResults" is not specified.

Removed the legacy "secondaryOk" option, which is obsolete. For queries using the legacy wire protocol OP_QUERY, the driver will set the secondaryOk bit as needed in accordance with the » Server Selection Specification.

PECL mongodb 1.1.0 | Added the "readConcern" option.

Exemplos

Exemplo #1 MongoDB\Driver\Query::__construct() example

<?php
/* Select only documents authord by "bjori" with at least 100 views */
$filter = [
'author' => 'bjori',
'views' => [
'$gte' => 100,
],
];

$options = [
/* Only return the following fields in the matching documents */
'projection' => [
'title' => 1,
'article' => 1,
],
/* Return the documents in descending order of views */
'sort' => [
'views' => -1
],
];

$query = new MongoDB\Driver\Query($filter, $options);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$readPreference = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$cursor = $manager->executeQuery('databaseName.collectionName', $query, $readPreference);

foreach($cursor as $document) {
var_dump($document);
}

?>

Veja Também

  • MongoDB\Driver\Manager::executeQuery() - Execute a database query
  • MongoDB\Driver\Cursor


The MongoDB\Driver\BulkWrite class

(mongodb >=1.0.0)

Introdução

The MongoDB\Driver\BulkWrite collects one or more write operations that should be sent to the server. After adding any number of insert, update, and delete operations, the collection may be executed via MongoDB\Driver\Manager::executeBulkWrite().

Write operations may either be ordered (default) or unordered. Ordered write operations are sent to the server, in the order provided, for serial execution. If a write fails, any remaining operations will be aborted. Unordered operations are sent to the server in an arbitrary order where they may be executed in parallel. Any errors that occur are reported after all operations have been attempted.

Resumo da classe

final class MongoDB\Driver\BulkWrite implements Countable {
/* Métodos */
public __construct(?array $options = null)
public count(): int
public delete(array|object $filter, ?array $deleteOptions = null): void
public insert(array|object $document): mixed
public update(array|object $filter, array|object $newObj, ?array $updateOptions = null): void
}

Exemplos

Exemplo #1 Mixed write operations are grouped by type

Mixed write operations (i.e. inserts, updates, and deletes) will be assembled into typed write commands to be sent sequentially to the server.

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(['x' => 2], ['$set' => ['x' => 1]]);
$bulk->insert(['_id' => 3, 'x' => 3]);
$bulk->delete(['x' => 1]);

?>

Will result in four write commands (i.e. roundtrips) being executed. Since the operations are ordered, the third insertion cannot be sent until the preceding update is executed.

Exemplo #2 Ordered write operations causing an error

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3, 'hello' => 'world']);
$bulk->update(['_id' => 3], ['$set' => ['hello' => 'earth']]);
$bulk->insert(['_id' => 4, 'hello' => 'pluto']);
$bulk->update(['_id' => 4], ['$set' => ['hello' => 'moon']]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 5]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);

try {
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
$result = $e->getWriteResult();

// Check if the write concern could not be fulfilled
if ($writeConcernError = $result->getWriteConcernError()) {
printf("%s (%d): %s\n",
$writeConcernError->getMessage(),
$writeConcernError->getCode(),
var_export($writeConcernError->getInfo(), true)
);
}

// Check if any write operations did not complete at all
foreach ($result->getWriteErrors() as $writeError) {
printf("Operation#%d: %s (%d)\n",
$writeError->getIndex(),
$writeError->getMessage(),
$writeError->getCode()
);
}
} catch (MongoDB\Driver\Exception\Exception $e) {
printf("Other error: %s\n", $e->getMessage());
exit;
}

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated %d document(s)\n", $result->getModifiedCount());

?>

O exemplo acima produzirá:

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Inserted 4 document(s)
Updated  2 document(s)

If the write concern could not be fullfilled, the example above would output something like:

waiting for replication timed out (64): array (
  'wtimeout' => true,
)
Operation#7: E11000 duplicate key error index: databaseName.collectionName.$_id_ dup key: { : 3 } (11000)
Inserted 4 document(s)
Updated  2 document(s)

If we execute the example above, but allow for unordered writes:

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
/* ... */

?>

O exemplo acima produzirá:

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Operation#8: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 4 } (11000)
Inserted 5 document(s)
Updated  2 document(s)

Veja Também

  • MongoDB\Driver\Manager::executeBulkWrite()
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\WriteConcernError
  • MongoDB\Driver\WriteError

Índice

  • MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite
  • MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk
  • MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk
  • MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk
  • MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk


Create a new BulkWrite

  • « MongoDB\Driver\BulkWrite
  • MongoDB\Driver\BulkWrite::count »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Create a new BulkWrite

MongoDB\Driver\BulkWrite::__construct

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite

Descrição

public MongoDB\Driver\BulkWrite::__construct(?array $options = null)

Constructs a new MongoDB\Driver\BulkWrite, which is a mutable object to which one or more write operations may be added. The write(s) may then be executed with MongoDB\Driver\Manager::executeBulkWrite().

Parâmetros

options (array)

options
Option | Type | Description | Default
bypassDocumentValidation bool

If true, allows insert and update operations to circumvent document level validation.

This option is available in MongoDB 3.2+ and is ignored for older server versions, which do not support document level validation.

false
comment mixed

An arbitrary comment to help trace the operation through the database profiler, currentOp output, and logs.

This option is available in MongoDB 4.4+ and will result in an exception at execution time if specified for an older server version.

let array|object

Mapa de nomes e valores de parâmetros. Os valores devem ser expressões constantes ou fechadas que não fazem referência a campos do documento. Os parâmetros podem então ser acessados como variáveis em um contexto de expressão agregada (por exemplo, $$var).

Esta opção está disponível no MongoDB 5.0+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

ordered | bool | Ordered operations (true) are executed serially on the MongoDB server, while unordered operations (false) are sent to the server in an arbitrary order and may be executed in parallel. | true

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.14.0 | Added the "comment" and "let" options.
PECL mongodb 1.1.0 | Added the "bypassDocumentValidation" option.

Exemplos

Exemplo #1 MongoDB\Driver\BulkWrite::__construct() example

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(
['x' => 2],
['$set' => ['x' => 1]],
['limit' => 1, 'upsert' => false]
);
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->update(
['_id' => 3],
['$set' => ['x' => 3]],
['limit' => 1, 'upsert' => true]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(1);

try {
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
$result = $e->getWriteResult();

// Check if the write concern could not be fulfilled
if ($writeConcernError = $result->getWriteConcernError()) {
printf("%s (%d): %s\n",
$writeConcernError->getMessage(),
$writeConcernError->getCode(),
var_export($writeConcernError->getInfo(), true)
);
}

// Check if any write operations did not complete at all
foreach ($result->getWriteErrors() as $writeError) {
printf("Operation#%d: %s (%d)\n",
$writeError->getIndex(),
$writeError->getMessage(),
$writeError->getCode()
);
}
} catch (MongoDB\Driver\Exception\Exception $e) {
printf("Other error: %s\n", $e->getMessage());
exit;
}

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted %d document(s)\n", $result->getDeletedCount());

?>

O exemplo acima produzirá:

Inserted 2 document(s)
Updated  1 document(s)
Upserted 1 document(s)
Deleted  1 document(s)

Veja Também

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


Count number of write operations in the bulk

  • « MongoDB\Driver\BulkWrite::__construct
  • MongoDB\Driver\BulkWrite::delete »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Count number of write operations in the bulk

MongoDB\Driver\BulkWrite::count

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk

Descrição

public MongoDB\Driver\BulkWrite::count(): int

Returns the number of write operations added to the MongoDB\Driver\BulkWrite object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns number of write operations added to the MongoDB\Driver\BulkWrite object.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.2.0 | Returns the number of write operations added to the MongoDB\Driver\BulkWrite object. Earlier versions returned the expected number of client-to-server roundtrips required to execute all write operations.

Exemplos

Exemplo #1 MongoDB\Driver\BulkWrite::count() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(['x' => 2], ['$set' => ['x' => 1]]);
$bulk->delete(['x' => 1]);

var_dump(count($bulk));

?>

O exemplo acima produzirá:

int(4)


Add a delete operation to the bulk

  • « MongoDB\Driver\BulkWrite::count
  • MongoDB\Driver\BulkWrite::insert »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add a delete operation to the bulk

MongoDB\Driver\BulkWrite::delete

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk

Descrição

public MongoDB\Driver\BulkWrite::delete(array|object $filter, ?array $deleteOptions = null): void

Adds a delete operation to the MongoDB\Driver\BulkWrite.

Parâmetros

filter (array|object)

O » predicado de consulta. Um predicado vazio corresponderá a todos os documentos da coleção.

Nota: Ao avaliar os critérios de consulta, o MongoDB compara os tipos e valores de acordo com suas próprias » regras de comparação para tipos BSON, que diferem das regras de comparação e do malabarismo de tipos do PHP. Ao corresponder a um tipo especial de BSON, os critérios de consulta devem usar a respectiva classe BSON (por exemplo, use MongoDB\BSON\ObjectId para corresponder a um » ObjectId).

deleteOptions

deleteOptions
Option | Type | Description | Default
collation array|object

» Collation permite que os usuários especifiquem regras específicas do idioma para comparação de strings, como regras para maiúsculas e minúsculas e acentos. Ao especificar a collation, o campo "locale" é obrigatório; todos os outros campos de collation são opcionais. Para obter descrições dos campos, veja o » Documento de Collation.

Se a collation não for especificada, mas a coleção tiver uma collation padrão, a operação usará a collation especificada para a coleção. Se nenhuma collation for especificada para a coleção ou para a operação, o MongoDB usará a comparação binária simples usada em versões anteriores para comparações de strings.

Esta opção está disponível no MongoDB 3.4+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

hint string|array|object

Index specification. Specify either the index name as a string or the index key pattern. If specified, then the query system will only consider plans using the hinted index.

This option is available in MongoDB 4.4+ and will result in an exception at execution time if specified for an older server version.

limit | bool | Delete all matching documents (false), or only the first matching document (true) | false

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.8.0 | Added the "hint" option.
PECL mongodb 1.2.0 | Added the "collation" option.

Exemplos

Exemplo #1 MongoDB\Driver\BulkWrite::delete() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->delete(['x' => 2], ['limit' => 0]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Veja Também

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


Add an insert operation to the bulk

  • « MongoDB\Driver\BulkWrite::delete
  • MongoDB\Driver\BulkWrite::update »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add an insert operation to the bulk

MongoDB\Driver\BulkWrite::insert

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk

Descrição

public MongoDB\Driver\BulkWrite::insert(array|object $document): mixed

Adds an insert operation to the MongoDB\Driver\BulkWrite.

Parâmetros

document (array|object)

A document to insert.

Valor Retornado

Returns the _id of the inserted document. If the document did not have an _id, the MongoDB\BSON\ObjectId generated for the insert will be returned.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.3.0 | The _id of the inserted document is always returned. Previously, the method only returned a value if a MongoDB\BSON\ObjectId was generated.

Exemplos

Exemplo #1 MongoDB\Driver\BulkWrite::insert() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;

$document1 = ['title' => 'one'];
$document2 = ['_id' => 'custom ID', 'title' => 'two'];
$document3 = ['_id' => new MongoDB\BSON\ObjectId, 'title' => 'three'];

$_id1 = $bulk->insert($document1);
$_id2 = $bulk->insert($document2);
$_id3 = $bulk->insert($document3);

var_dump($_id1, $_id2, $_id3);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\BSON\ObjectId)#3 (1) {
  ["oid"]=>
  string(24) "54d51146bd21b91405401d92"
}
NULL
NULL

Veja Também

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult
  • MongoDB\BSON\ObjectId
  • MongoDB\BSON\Persistable


Add an update operation to the bulk

  • « MongoDB\Driver\BulkWrite::insert
  • MongoDB\Driver\Session »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add an update operation to the bulk

MongoDB\Driver\BulkWrite::update

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk

Descrição

public MongoDB\Driver\BulkWrite::update(array|object $filter, array|object $newObj, ?array $updateOptions = null): void

Adds an update operation to the MongoDB\Driver\BulkWrite.

Parâmetros

filter (array|object)

O » predicado de consulta. Um predicado vazio corresponderá a todos os documentos da coleção.

Nota: Ao avaliar os critérios de consulta, o MongoDB compara os tipos e valores de acordo com suas próprias » regras de comparação para tipos BSON, que diferem das regras de comparação e do malabarismo de tipos do PHP. Ao corresponder a um tipo especial de BSON, os critérios de consulta devem usar a respectiva classe BSON (por exemplo, use MongoDB\BSON\ObjectId para corresponder a um » ObjectId).

newObj (array|object)

A document containing either update operators (e.g. $set), a replacement document (i.e. only field:value expressions), or an » aggregation pipeline.

updateOptions

updateOptions
Option | Type | Description | Default
arrayFilters array

An array of filter documents that determines which array elements to modify for an update operation on an array field. See » Specify arrayFilters for Array Update Operations in the MongoDB manual for more information.

This option is available in MongoDB 3.6+ and will result in an exception at execution time if specified for an older server version.

collation array|object

» Collation permite que os usuários especifiquem regras específicas do idioma para comparação de strings, como regras para maiúsculas e minúsculas e acentos. Ao especificar a collation, o campo "locale" é obrigatório; todos os outros campos de collation são opcionais. Para obter descrições dos campos, veja o » Documento de Collation.

Se a collation não for especificada, mas a coleção tiver uma collation padrão, a operação usará a collation especificada para a coleção. Se nenhuma collation for especificada para a coleção ou para a operação, o MongoDB usará a comparação binária simples usada em versões anteriores para comparações de strings.

Esta opção está disponível no MongoDB 3.4+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

hint string|array|object

Index specification. Specify either the index name as a string or the index key pattern. If specified, then the query system will only consider plans using the hinted index.

This option is available in MongoDB 4.2+ and will result in an exception at execution time if specified for an older server version.

multi | bool | Update only the first matching document if false, or all matching documents true. This option cannot be true if newObj is a replacement document. | false
upsert | bool | If filter does not match an existing document, insert a single document. The document will be created from newObj if it is a replacement document (i.e. no update operators); otherwise, the operators in newObj will be applied to filter to create the new document. | false

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.7.0 | Added the "hint" option.
PECL mongodb 1.6.0 | The newObj parameter now accepts an aggregation pipeline. This feature requires MongoDB 4.2+ and will result in an exception at execution time if specified for an older server version.
PECL mongodb 1.5.0 | Using the "arrayFilters" option will result in an exception at execution time if unsupported by the server. Previously, no exception would be thrown and the option may have been ignored.
PECL mongodb 1.4.0 | Added the "arrayFilters" option.
PECL mongodb 1.2.0 | Added the "collation" option.

Exemplos

Exemplo #1 MongoDB\Driver\BulkWrite::update() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(
['x' => 2],
['$set' => ['y' => 3]],
['multi' => false, 'upsert' => false]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Veja Também

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


The MongoDB\Driver\Session class

(mongodb >=1.4.0)

Introdução

The MongoDB\Driver\Session class represents a client session and is returned by MongoDB\Driver\Manager::startSession(). Commands, queries, and write operations may then be associated the session.

Resumo da classe

final class MongoDB\Driver\Session {
/* Constantes */
const string TRANSACTION_NONE = none;
const string TRANSACTION_STARTING = starting;
const string TRANSACTION_IN_PROGRESS = in_progress;
const string TRANSACTION_COMMITTED = committed;
const string TRANSACTION_ABORTED = aborted;
/* Métodos */
final public abortTransaction(): void
final public advanceClusterTime(array|object $clusterTime): void
final public advanceOperationTime(MongoDB\BSON\TimestampInterface $operationTime): void
final public commitTransaction(): void
final private __construct()
final public endSession(): void
final public getClusterTime(): ?object
final public getLogicalSessionId(): object
final public getOperationTime(): ?MongoDB\BSON\Timestamp
final public getServer(): ?MongoDB\Driver\Server
final public getTransactionOptions(): ?array
final public getTransactionState(): string
final public isDirty(): bool
final public isInTransaction(): bool
final public startTransaction(?array $options = null): void
}

Constantes pré-definidas

MongoDB\Driver\Session::TRANSACTION_NONE

There is no transaction in progress.

MongoDB\Driver\Session::TRANSACTION_STARTING

A transaction has been started, but no operation has been sent to the server.

MongoDB\Driver\Session::TRANSACTION_IN_PROGRESS

A transaction is in progress.

MongoDB\Driver\Session::TRANSACTION_COMMITTED

The transaction was committed.

MongoDB\Driver\Session::TRANSACTION_ABORTED

The transaction was aborted.

Índice

  • MongoDB\Driver\Session::abortTransaction — Aborts a transaction
  • MongoDB\Driver\Session::advanceClusterTime — Advances the cluster time for this session
  • MongoDB\Driver\Session::advanceOperationTime — Advances the operation time for this session
  • MongoDB\Driver\Session::commitTransaction — Commits a transaction
  • MongoDB\Driver\Session::__construct — Create a new Session (not used)
  • MongoDB\Driver\Session::endSession — Terminates a session
  • MongoDB\Driver\Session::getClusterTime — Returns the cluster time for this session
  • MongoDB\Driver\Session::getLogicalSessionId — Returns the logical session ID for this session
  • MongoDB\Driver\Session::getOperationTime — Returns the operation time for this session
  • MongoDB\Driver\Session::getServer — Returns the server to which this session is pinned
  • MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction
  • MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session
  • MongoDB\Driver\Session::isDirty — Returns whether the session has been marked as dirty
  • MongoDB\Driver\Session::isInTransaction — Returns whether a multi-document transaction is in progress
  • MongoDB\Driver\Session::startTransaction — Starts a transaction


Aborts a transaction

  • « MongoDB\Driver\Session
  • MongoDB\Driver\Session::advanceClusterTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Aborts a transaction

MongoDB\Driver\Session::abortTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::abortTransaction — Aborts a transaction

Descrição

final public MongoDB\Driver\Session::abortTransaction(): void

Terminates the multi-document transaction and rolls back any data changes made by the operations within the transaction. That is, the transaction ends without saving any of the changes made by the operations in the transaction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\RuntimeException if the transaction could not be aborted (e.g. a transaction was not started).

Veja Também

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • MongoDB\Driver\Session::startTransaction() - Starts a transaction


Advances the cluster time for this session

  • « MongoDB\Driver\Session::abortTransaction
  • MongoDB\Driver\Session::advanceOperationTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Advances the cluster time for this session

MongoDB\Driver\Session::advanceClusterTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::advanceClusterTime — Advances the cluster time for this session

Descrição

final public MongoDB\Driver\Session::advanceClusterTime(array|object $clusterTime): void

Advances the cluster time for this session. If the cluster time is less than or equal to the session's current cluster time, this function is a no-op.

By using this method in conjunction with MongoDB\Driver\Session::advanceOperationTime() to copy the cluster and operation times from another session, you can ensure that operations in this session are causally consistent with the last operation in the other session.

Parâmetros

clusterTime

The cluster time is a document containing a logical timestamp and server signature. Typically, this value will be obtained by calling MongoDB\Driver\Session::getClusterTime() on another session object.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Session::advanceOperationTime() - Advances the operation time for this session
  • MongoDB\Driver\Session::getClusterTime() - Returns the cluster time for this session


Advances the operation time for this session

  • « MongoDB\Driver\Session::advanceClusterTime
  • MongoDB\Driver\Session::commitTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Advances the operation time for this session

MongoDB\Driver\Session::advanceOperationTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::advanceOperationTime — Advances the operation time for this session

Descrição

final public MongoDB\Driver\Session::advanceOperationTime(MongoDB\BSON\TimestampInterface $operationTime): void

Advances the operation time for this session. If the operation time is less than or equal to the session's current operation time, this function is a no-op.

By using this method in conjunction with MongoDB\Driver\Session::advanceClusterTime() to copy the operation and cluster times from another session, you can ensure that operations in this session are causally consistent with the last operation in the other session.

Parâmetros

operationTime

The operation time is a logical timestamp. Typically, this value will be obtained by calling MongoDB\Driver\Session::getOperationTime() on another session object.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Session::advanceClusterTime() - Advances the cluster time for this session
  • MongoDB\Driver\Session::getClusterTime() - Returns the cluster time for this session


Commits a transaction

  • « MongoDB\Driver\Session::advanceOperationTime
  • MongoDB\Driver\Session::__construct »
  • PHP Manual
  • MongoDB\Driver\Session
  • Commits a transaction

MongoDB\Driver\Session::commitTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::commitTransaction — Commits a transaction

Descrição

final public MongoDB\Driver\Session::commitTransaction(): void

Saves the changes made by the operations in the multi-document transaction and ends the transaction. Until the commit, none of the data changes made from within the transaction are visible outside the transaction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\CommandException if the server could not commit the transaction (e.g. due to conflicts, network issues). In case the exception's MongoDB\Driver\Exception\CommandException::getResultDocument() has a "errorLabels" element, and this array contains a "TransientTransactionError" or "UnUnknownTransactionCommitResult" value, it is safe to re-try the whole transaction. In newer versions of the driver, MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() should be used to test for this situation instead.
  • Throws MongoDB\Driver\Exception\RuntimeException if the transaction could not be commited (e.g. a transaction was not started).

Veja Também

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::abortTransaction() - Aborts a transaction
  • MongoDB\Driver\Session::startTransaction() - Starts a transaction
  • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() - Returns whether an error label is associated with an exception


Create a new Session (not used)

  • « MongoDB\Driver\Session::commitTransaction
  • MongoDB\Driver\Session::endSession »
  • PHP Manual
  • MongoDB\Driver\Session
  • Create a new Session (not used)

MongoDB\Driver\Session::__construct

(mongodb >=1.4.0)

MongoDB\Driver\Session::__construct — Create a new Session (not used)

Descrição

final private MongoDB\Driver\Session::__construct()

MongoDB\Driver\Session objects are returned by MongoDB\Driver\Manager::startSession() and cannot be constructed directly.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client


Terminates a session

  • « MongoDB\Driver\Session::__construct
  • MongoDB\Driver\Session::getClusterTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Terminates a session

MongoDB\Driver\Session::endSession

(mongodb >=1.5.0)

MongoDB\Driver\Session::endSession — Terminates a session

Descrição

final public MongoDB\Driver\Session::endSession(): void

This method closes an existing session. If a transaction was associated with this session, the transaction will be aborted. After calling this method, applications should not invoke other methods on the session.

Nota: Sessions are also closed during garbage collection. It should not be necessary to call this method under normal circumstances.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::abortTransaction() - Aborts a transaction
  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • MongoDB\Driver\Session::startTransaction() - Starts a transaction


Returns the cluster time for this session

  • « MongoDB\Driver\Session::endSession
  • MongoDB\Driver\Session::getLogicalSessionId »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the cluster time for this session

MongoDB\Driver\Session::getClusterTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::getClusterTime — Returns the cluster time for this session

Descrição

final public MongoDB\Driver\Session::getClusterTime(): ?object

Returns the cluster time for this session. If the session has not been used for any operation and MongoDB\Driver\Session::advanceClusterTime() has not been called, the cluster time will be null.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the cluster time for this session, or null if the session has no cluster time.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Session::advanceClusterTime() - Advances the cluster time for this session


Returns the logical session ID for this session

  • « MongoDB\Driver\Session::getClusterTime
  • MongoDB\Driver\Session::getOperationTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the logical session ID for this session

MongoDB\Driver\Session::getLogicalSessionId

(mongodb >=1.4.0)

MongoDB\Driver\Session::getLogicalSessionId — Returns the logical session ID for this session

Descrição

final public MongoDB\Driver\Session::getLogicalSessionId(): object

Returns the logical session ID for this session, which may be used to identify this session's operations on the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the logical session ID for this session.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the operation time for this session

  • « MongoDB\Driver\Session::getLogicalSessionId
  • MongoDB\Driver\Session::getServer »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the operation time for this session

MongoDB\Driver\Session::getOperationTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::getOperationTime — Returns the operation time for this session

Descrição

final public MongoDB\Driver\Session::getOperationTime(): ?MongoDB\BSON\Timestamp

Returns the operation time for this session. If the session has not been used for any operation and MongoDB\Driver\Session::advanceOperationTime() has not been called, the operation time will be null

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the operation time for this session, or null if the session has no operation time.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Session::advanceOperationTime() - Advances the operation time for this session


Returns the server to which this session is pinned

  • « MongoDB\Driver\Session::getOperationTime
  • MongoDB\Driver\Session::getTransactionOptions »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the server to which this session is pinned

MongoDB\Driver\Session::getServer

(mongodb >=1.6.0)

MongoDB\Driver\Session::getServer — Returns the server to which this session is pinned

Descrição

final public MongoDB\Driver\Session::getServer(): ?MongoDB\Driver\Server

Returns the MongoDB\Driver\Server to which this session is pinned. If the session is not pinned to a server, null will be returned.

Session pinning is primarily used for sharded transactions, as all commands within a sharded transaction must be sent to the same mongos instance. This method is intended to be used by libraries built atop the extension to allow use of a pinned server instead of invoking server selection.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the MongoDB\Driver\Server to which this session is pinned, or null if the session is not pinned to any server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns options for the currently running transaction

  • « MongoDB\Driver\Session::getServer
  • MongoDB\Driver\Session::getTransactionState »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns options for the currently running transaction

MongoDB\Driver\Session::getTransactionOptions

(mongodb >=1.7.0)

MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction

Descrição

final public MongoDB\Driver\Session::getTransactionOptions(): ?array

Returns options for the currently running transaction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a array containing current transaction options, or null if no transaction is running.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Session::getTransactionState() - Returns the current transaction state for this session


Returns the current transaction state for this session

  • « MongoDB\Driver\Session::getTransactionOptions
  • MongoDB\Driver\Session::isDirty »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the current transaction state for this session

MongoDB\Driver\Session::getTransactionState

(mongodb >=1.7.0)

MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session

Descrição

final public MongoDB\Driver\Session::getTransactionState(): string

Returns the transaction state for this session.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current transaction state for this session.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Session::isInTransaction() - Returns whether a multi-document transaction is in progress
  • MongoDB\Driver\Session::getTransactionOptions() - Returns options for the currently running transaction


Returns whether the session has been marked as dirty

  • « MongoDB\Driver\Session::getTransactionState
  • MongoDB\Driver\Session::isInTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns whether the session has been marked as dirty

MongoDB\Driver\Session::isDirty

(mongodb >=1.13.0)

MongoDB\Driver\Session::isDirty — Returns whether the session has been marked as dirty

Descrição

final public MongoDB\Driver\Session::isDirty(): bool

Returns whether the session has been marked as dirty (i.e. it has been used with a command that encountered a network error).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns whether the session has been marked as dirty.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns whether a multi-document transaction is in progress

  • « MongoDB\Driver\Session::isDirty
  • MongoDB\Driver\Session::startTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns whether a multi-document transaction is in progress

MongoDB\Driver\Session::isInTransaction

(mongodb >=1.6.0)

MongoDB\Driver\Session::isInTransaction — Returns whether a multi-document transaction is in progress

Descrição

final public MongoDB\Driver\Session::isInTransaction(): bool

Returns whether a multi-document transaction is currently in progress for this session. A transaction is considered "in progress" if it has been started but has not been committed or aborted.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if a transaction is currently in progress for this session, and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Session::getTransactionState() - Returns the current transaction state for this session


Starts a transaction

  • « MongoDB\Driver\Session::isInTransaction
  • MongoDB\Driver\ClientEncryption »
  • PHP Manual
  • MongoDB\Driver\Session
  • Starts a transaction

MongoDB\Driver\Session::startTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::startTransaction — Starts a transaction

Descrição

final public MongoDB\Driver\Session::startTransaction(?array $options = null): void

Starts a multi-document transaction associated with the session. At any given time, you can have at most one open transaction for a session. After starting a transaction, the session object must be passed to each operation via the "session" option (e.g. MongoDB\Driver\Manager::executeBulkWrite()) in order to associate that operation with the transaction.

Transactions can be committed through MongoDB\Driver\Session::commitTransaction(), and aborted with MongoDB\Driver\Session::abortTransaction(). Transactions are also automatically aborted when the session is closed from garbage collection or by explicitly calling MongoDB\Driver\Session::endSession().

Parâmetros

options

Options can be passed as argument to this method. Each element in this options array overrides the corresponding option from the "defaultTransactionOptions" option, if set when starting the session with MongoDB\Driver\Manager::startSession().

options
Option Type Description
maxCommitTimeMS integer

A quantidade máxima de tempo em milissegundos para permitir que um único comando commitTransaction seja executado.

Se especificada, maxCommitTimeMS deve ser um inteiro de 32 bits com sinal com valor maior ou igual a zero.

readConcern MongoDB\Driver\ReadConcern

Um read concern a ser aplicado à operação.

Esta opção está disponível no MongoDB 3.2+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

readPreference MongoDB\Driver\ReadPreference

Uma preferência de leitura a ser usada para selecionar um servidor para a operação.

writeConcern MongoDB\Driver\WriteConcern

Um write concern a ser aplicado à operação.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\CommandException if the transaction could not be started because of a server-side problem (e.g. a lock could not be obtained).
  • Throws MongoDB\Driver\Exception\RuntimeException if the transaction could not be started (e.g. a transaction was already started).

Registro de Alterações

Versão | Descrição
PECL mongodb 1.6.0 | The "maxCommitTimeMS" option was added.

Veja Também

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • MongoDB\Driver\Session::abortTransaction() - Aborts a transaction


The MongoDB\Driver\ClientEncryption class

(mongodb >=1.7.0)

Introdução

The MongoDB\Driver\ClientEncryption class handles creation of data keys for client-side encryption, as well as manually encrypting and decrypting values.

Resumo da classe

final class MongoDB\Driver\ClientEncryption {
/* Constantes */
const string AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC = AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic;
const string AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM = AEAD_AES_256_CBC_HMAC_SHA_512-Random;
const string ALGORITHM_INDEXED = Indexed;
const string ALGORITHM_UNINDEXED = Unindexed;
const string ALGORITHM_RANGE_PREVIEW = RangePreview;
const string QUERY_TYPE_EQUALITY = equality;
const string QUERY_TYPE_RANGE_PREVIEW = rangePreview;
/* Métodos */
final public addKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object
final public __construct(array $options)
final public createDataKey(string $kmsProvider, ?array $options = null): MongoDB\BSON\Binary
final public decrypt(MongoDB\BSON\Binary $value): mixed
final public deleteKey(MongoDB\BSON\Binary $keyId): object
final public encrypt(mixed $value, ?array $options = null): MongoDB\BSON\Binary
final public encryptExpression(array|object $expr, ?array $options = null): object
final public getKey(MongoDB\BSON\Binary $keyId): ?object
final public getKeyByAltName(string $keyAltName): ?object
final public getKeys(): MongoDB\Driver\Cursor
final public removeKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object
final public rewrapManyDataKey(array|object $filter, ?array $options = null): object
}

Constantes pré-definidas

MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC

Specifies an algorithm for » deterministic encryption, which is suitable for querying.

MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM

Specifies an algorithm for » randomized encryption

MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED

Specifies an algorithm for an indexed, encrypted payload, which can be used with queryable encryption.

To insert or query with an indexed, encrypted payload, the MongoDB\Driver\Manager must be configured with the "autoEncryption" driver option. The "bypassQueryAnalysis" auto encryption option may be true. The "bypassAutoEncryption" auto encryption option must be false.

MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED

Specifies an algorithm for an unindexed, encrypted payload.

MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW

Specifies an algorithm for a range, encrypted payload, which can be used with queryable encryption.

To query with a range encrypted payload, the MongoDB\Driver\Manager must be configured with the "autoEncryption" driver option. The "bypassQueryAnalysis" auto encryption option may be true. The "bypassAutoEncryption" auto encryption option must be false.

Nota:

The range algorithm is experimental only. It is not intended for public use.

The PHP driver does not yet support range queries for decimal128 BSON field types.

MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY

Specifies an equality query type, which is used in conjunction with MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED.

MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW

Specifies a range query type, which is used in conjunction with MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.16.0 | Added MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW and MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW.
PECL mongodb 1.14.0 | Added MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED, MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED, and MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY

Veja Também

  • MongoDB\Driver\Manager::createClientEncryption()

Índice

  • MongoDB\Driver\ClientEncryption::addKeyAltName — Adds an alternate name to a key document
  • MongoDB\Driver\ClientEncryption::__construct — Create a new ClientEncryption object
  • MongoDB\Driver\ClientEncryption::createDataKey — Creates a key document
  • MongoDB\Driver\ClientEncryption::decrypt — Decrypt a value
  • MongoDB\Driver\ClientEncryption::deleteKey — Deletes a key document
  • MongoDB\Driver\ClientEncryption::encrypt — Encrypt a value
  • MongoDB\Driver\ClientEncryption::encryptExpression — Encrypts a match or aggregate expression
  • MongoDB\Driver\ClientEncryption::getKey — Gets a key document
  • MongoDB\Driver\ClientEncryption::getKeyByAltName — Gets a key document by an alternate name
  • MongoDB\Driver\ClientEncryption::getKeys — Gets all key documents
  • MongoDB\Driver\ClientEncryption::removeKeyAltName — Removes an alternate name from a key document
  • MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Rewraps data keys


Adds an alternate name to a key document

  • « MongoDB\Driver\ClientEncryption
  • MongoDB\Driver\ClientEncryption::__construct »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Adds an alternate name to a key document

MongoDB\Driver\ClientEncryption::addKeyAltName

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::addKeyAltName — Adds an alternate name to a key document

Descrição

final public MongoDB\Driver\ClientEncryption::addKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object

Adds keyAltName to the set of alternate names for the key document with the given UUID keyId.

Parâmetros

keyId

A MongoDB\BSON\Binary instance with subtype 4 (UUID) identifying the key document.

keyAltName

Alternate name to add to the key document.

Valor Retornado

Returns the previous version of the key document, or null if no document matched.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Veja Também

  • MongoDB\Driver\ClientEncryption::getKeyByAltName() - Gets a key document by an alternate name
  • MongoDB\Driver\ClientEncryption::removeKeyAltName() - Removes an alternate name from a key document


Create a new ClientEncryption object

  • « MongoDB\Driver\ClientEncryption::addKeyAltName
  • MongoDB\Driver\ClientEncryption::createDataKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Create a new ClientEncryption object

MongoDB\Driver\ClientEncryption::__construct

(mongodb >=1.14.0)

MongoDB\Driver\ClientEncryption::__construct — Create a new ClientEncryption object

Descrição

final public MongoDB\Driver\ClientEncryption::__construct(array $options)

Constructs a new MongoDB\Driver\ClientEncryption object with the specified options.

Parâmetros

options

options
Option | Type | Description
keyVaultClient | MongoDB\Driver\Manager | The Manager used to route data key queries. This option is required (unlike with MongoDB\Driver\Manager::createClientEncryption()).
keyVaultNamespace | string | Um namespace totalmente qualificado (por exemplo, "nomeDoBancoDados.nomeDaColecao") denotando a coleção que contém todas as chaves de dados usadas para criptografia e descriptografia. Esta opção é obrigatória.
kmsProviders array

Um documento contendo a configuração de um ou mais provedores KMS, que são usados para criptografar chaves de dados. Os provedores compatíveis incluem "aws", "azure", "gcp", "kmip" e "local" e pelo menos um deve ser especificado.

Se um documento vazio for especificado para "aws", "azure", ou "gcp", o driver tentará configurar o provedor usando » Credenciais Automáticas.

O formato para "aws" é o seguinte:

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>,
    sessionToken: <string opcional>
}

O formato para "azure" é o seguinte:

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <string opcional> // O padrão é "login.microsoftonline.com"
}

O formato para "gcp" é o seguinte:

gcp: {
    email: <string>,
    privateKey: <string base64>|<MongoDB\BSON\Binary>,
    endpoint: <string opcional> // O padrão é "oauth2.googleapis.com"
}

O formato para "kmip" é o seguinte:

kmip: {
    endpoint: <string>
}

O formato para "local" é o seguinte:

local: {
    // Chave mestra de 96 bytes usada para criptografar/descriptografar chaves de dados
    key: <string base64>|<MongoDB\BSON\Binary>
}
tlsOptions array

Um documento contendo a configuração TLS para um ou mais provedores KMS. Os provedores suportados incluem "aws", "azure", "gcp" e "kmip". Todos os provedores suportam as seguintes opções:

<provider>: {
    tlsCaFile: <string opcional>,
    tlsCertificateKeyFile: <string opcional>,
    tlsCertificateKeyFilePassword: <string opcional>,
    tlsDisableOCSPEndpointCheck: <booleano opcional>
}

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\RuntimeException if the extension was compiled without libmongocrypt support

Registro de Alterações

Versão Descrição
PECL mongodb 1.16.0

The AWS KMS provider for client-side encryption now accepts a "sessionToken" option, which can be used to authenticate with temporary AWS credentials.

Added "tlsDisableOCSPEndpointCheck" to the "tlsOptions" option.

If an empty document is specified for the "azure" or "gcp" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

PECL mongodb 1.15.0

If an empty document is specified for the "aws" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

Veja Também

  • MongoDB\Driver\Manager::createClientEncryption() - Create a new ClientEncryption object
  • » Explicit (Manual) Client-Side Field Level Encryption in the MongoDB manual


Creates a key document

  • « MongoDB\Driver\ClientEncryption::__construct
  • MongoDB\Driver\ClientEncryption::decrypt »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Creates a key document

MongoDB\Driver\ClientEncryption::createDataKey

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::createDataKey — Creates a key document

Descrição

final public MongoDB\Driver\ClientEncryption::createDataKey(string $kmsProvider, ?array $options = null): MongoDB\BSON\Binary

Creates a new key document and inserts it into the key vault collection.

Parâmetros

kmsProvider

The KMS provider (e.g. "local", "aws") that will be used to encrypt the new data key.

options

Data key options
Option Type Description
masterKey array

The masterKey document identifies a KMS-specific key used to encrypt the new data key. This option is required unless kmsProvider is "local".

Opções do provedor "aws"
Opção | Tipo | Descrição
region | string | Obrigatória.
key | string | Obrigatória. O Nome de Recurso da Amazon (ARN) para a chave mestra do cliente (CMK) da AWS.
endpoint | string | Opcional. Um identificador de servidor alternativo para o qual enviar requisições KMS. Pode incluir o número da porta.

Opções do provedor "azure"
Opção | Tipo | Descrição
keyVaultEndpoint | string | Obrigatória. Servidor com porta opcional (por exemplo, "example.vault.azure.net").
keyName | string | Obrigatória.
keyVersion | string | Opcional. Uma versão específica da chave nomeada. O padrão é usar a versão primária da chave.

Opções do provedor "gcp"
Opção | Tipo | Descrição
projectId | string | Obrigatória.
location | string | Obrigatória.
keyRing | string | Obrigatória.
keyName | string | Obrigatória.
keyVersion | string | Opcional. Uma versão específica da chave nomeada. O padrão é usar a versão primária da chave.
endpoint | string | Opcional. Servidor com porta opcional. O padrão é "cloudkms.googleapis.com".

Opções do provedor "kmip"
Opção | Tipo | Descrição
keyId | string | Opcional. Identificador único para um objeto gerenciado de dados secretos KMIP de 96 bytes. Se não especificado, o driver cria um objeto gerenciado de dados secretos KMIP aleatório de 96 bytes.
endpoint | string | Opcional. Servidor com porta opcional.

keyAltNames array

An optional list of string alternate names used to reference a key. If a key is created with alternate names, then encryption may refer to the key by the unique alternate name instead of by _id.

keyMaterial MongoDB\BSON\Binary

An optional 96-byte value to use as custom key material for the data key being created. If keyMaterial is given, the custom key material is used for encrypting and decrypting data. Otherwise, the key material for the new data key is generated from a cryptographically secure random device.

Valor Retornado

Returns the identifier of the new key as a MongoDB\BSON\Binary object with subtype 4 (UUID).

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.15.0 | Added the "keyMaterial" option.
PECL mongodb 1.10.0 | Azure and GCP are now supported as KMS providers for client-side encryption.


Decrypt a value

  • « MongoDB\Driver\ClientEncryption::createDataKey
  • MongoDB\Driver\ClientEncryption::deleteKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Decrypt a value

MongoDB\Driver\ClientEncryption::decrypt

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::decrypt — Decrypt a value

Descrição

final public MongoDB\Driver\ClientEncryption::decrypt(MongoDB\BSON\Binary $value): mixed

Decrypts the value.

Parâmetros

value

A MongoDB\BSON\Binary instance with subtype 6 containing the encrypted value.

Valor Retornado

Returns the decrypted value as it was passed to MongoDB\Driver\ClientEncryption::encrypt().

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while decrypting the value

Veja Também

  • MongoDB\Driver\ClientEncryption::encrypt() - Encrypt a value


Deletes a key document

  • « MongoDB\Driver\ClientEncryption::decrypt
  • MongoDB\Driver\ClientEncryption::encrypt »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Deletes a key document

MongoDB\Driver\ClientEncryption::deleteKey

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::deleteKey — Deletes a key document

Descrição

final public MongoDB\Driver\ClientEncryption::deleteKey(MongoDB\BSON\Binary $keyId): object

Removes the key document with the given UUID keyId from the key vault collection.

Parâmetros

keyId

A MongoDB\BSON\Binary instance with subtype 4 (UUID) identifying the key document.

Valor Retornado

Returns the result of the internal deleteOne operation on the key vault collection.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.


Encrypt a value

  • « MongoDB\Driver\ClientEncryption::deleteKey
  • MongoDB\Driver\ClientEncryption::encryptExpression »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Encrypt a value

MongoDB\Driver\ClientEncryption::encrypt

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::encrypt — Encrypt a value

Descrição

final public MongoDB\Driver\ClientEncryption::encrypt(mixed $value, ?array $options = null): MongoDB\BSON\Binary

Encrypts the value.

Parâmetros

value

The value to be encrypted. Any value that can be inserted into MongoDB can be encrypted using this method.

options

Opções de criptografia
Opção Tipo Descrição
algorithm string

O algoritmo de criptografia a ser usado. Esta opção é obrigatória. Especifique uma das seguintes constantes ClientEncryption:

  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC
  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM
  • MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW
contentionFactor int

O fator de contenção para avaliar consultas com cargas indexadas e criptografadas.

Esta opção só se aplica e só pode ser especificada quando algorithm for MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED ou MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

keyAltName string

Identifica um documento de coleção de cofres de chaves por keyAltName. Esta opção é mutuamente exclusiva com keyId e exatamente uma é necessária.

keyId MongoDB\BSON\Binary

Identifica uma chave de dados por _id. O valor é um UUID (subtipo binário 4). Esta opção é mutuamente exclusiva com keyAltName e exatamente uma é necessária.

queryType string

O tipo de consulta para avaliar consultas com cargas indexadas e criptografadas. Especifique uma das seguintes constantes ClientEncryption:

  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY
  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW

Esta opção só se aplica e só pode ser especificada quando algorithm for MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED ou MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

rangeOpts array

Opções de índice para um campo de criptografia consultável compatível com consultas "rangePreview". As opções abaixo devem corresponder aos valores definidos nos encryptedFields da coleção de destino. Para tipos de campo double e decimal128 BSON, min, max e precision devem ser todos definidos ou nenhum definido.

Opções de índice de intervalo
Opção | Tipo | Descrição
min | mixed | Obrigatória se precision for definida.
max | mixed | Obrigatória se precision for definida.
sparsity | int | Obrigatória.
precision | int | Opcional. Só pode ser definida para tipos de campo double ou decimal128 BSON.

Valor Retornado

Returns the encrypted value as MongoDB\BSON\Binary object with subtype 6.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while encrypting the value

Registro de Alterações

Versão | Descrição
PECL mongodb 1.14.0 | Added the "contentionFactor" and "queryType" options.

Veja Também

  • MongoDB\Driver\ClientEncryption::decrypt() - Decrypt a value


Encrypts a match or aggregate expression

  • « MongoDB\Driver\ClientEncryption::encrypt
  • MongoDB\Driver\ClientEncryption::getKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Encrypts a match or aggregate expression

MongoDB\Driver\ClientEncryption::encryptExpression

(mongodb >=1.16.0)

MongoDB\Driver\ClientEncryption::encryptExpression — Encrypts a match or aggregate expression

Descrição

final public MongoDB\Driver\ClientEncryption::encryptExpression(array|object $expr, ?array $options = null): object

Encrypts a match or aggregate expression to query a range index.

To query with a range encrypted payload, the MongoDB\Driver\Manager must be configured with the "autoEncryption" driver option. The "bypassQueryAnalysis" auto encryption option may be true. The "bypassAutoEncryption" auto encryption option must be false.

Nota:

The range algorithm is experimental only. It is not intended for public use.

The PHP driver does not yet support range queries for decimal128 BSON field types.

Parâmetros

expr

The match or aggregate expression to be encrypted. Expressions must use at least one of the $gt, $gte, $lt, or $lte operators. A top-level $and operator is required, even if only a single comparison operator is used.

An example of a supported match expression (applies to queries and the $match aggregation stage) is as follows:

[
    '$and' => [
        [ '<field>' => [ '$gt'  => '<value1>' ] ],
        [ '<field>' => [ '$lte' => '<value2>' ] ],
    ],
]

An example of a supported aggregate expression is as follows:

[
    '$and' => [
        [ '$gte' => [ '<fieldPath>', '<value1>' ] ],
        [ '$lt'  => [ '<fieldPath>', '<value2>' ] ],
    ],
]
options

Opções de criptografia
Opção Tipo Descrição
algorithm string

O algoritmo de criptografia a ser usado. Esta opção é obrigatória. Especifique uma das seguintes constantes ClientEncryption:

  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC
  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM
  • MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW
contentionFactor int

O fator de contenção para avaliar consultas com cargas indexadas e criptografadas.

Esta opção só se aplica e só pode ser especificada quando algorithm for MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED ou MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

keyAltName string

Identifica um documento de coleção de cofres de chaves por keyAltName. Esta opção é mutuamente exclusiva com keyId e exatamente uma é necessária.

keyId MongoDB\BSON\Binary

Identifica uma chave de dados por _id. O valor é um UUID (subtipo binário 4). Esta opção é mutuamente exclusiva com keyAltName e exatamente uma é necessária.

queryType string

O tipo de consulta para avaliar consultas com cargas indexadas e criptografadas. Especifique uma das seguintes constantes ClientEncryption:

  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY
  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW

Esta opção só se aplica e só pode ser especificada quando algorithm for MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED ou MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

rangeOpts array

Opções de índice para um campo de criptografia consultável compatível com consultas "rangePreview". As opções abaixo devem corresponder aos valores definidos nos encryptedFields da coleção de destino. Para tipos de campo double e decimal128 BSON, min, max e precision devem ser todos definidos ou nenhum definido.

Opções de índice de intervalo
Opção | Tipo | Descrição
min | mixed | Obrigatória se precision for definida.
max | mixed | Obrigatória se precision for definida.
sparsity | int | Obrigatória.
precision | int | Opcional. Só pode ser definida para tipos de campo double ou decimal128 BSON.

Valor Retornado

Returns the encrypted expression as an object.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while encrypting the expression

Veja Também

  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Gets a key document

  • « MongoDB\Driver\ClientEncryption::encryptExpression
  • MongoDB\Driver\ClientEncryption::getKeyByAltName »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Gets a key document

MongoDB\Driver\ClientEncryption::getKey

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::getKey — Gets a key document

Descrição

final public MongoDB\Driver\ClientEncryption::getKey(MongoDB\BSON\Binary $keyId): ?object

Finds a single key document in the key vault collection with the given UUID keyId.

Parâmetros

keyId

A MongoDB\BSON\Binary instance with subtype 4 (UUID) identifying the key document.

Valor Retornado

Returns the key document, or null if no document matched.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.


Gets a key document by an alternate name

  • « MongoDB\Driver\ClientEncryption::getKey
  • MongoDB\Driver\ClientEncryption::getKeys »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Gets a key document by an alternate name

MongoDB\Driver\ClientEncryption::getKeyByAltName

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::getKeyByAltName — Gets a key document by an alternate name

Descrição

final public MongoDB\Driver\ClientEncryption::getKeyByAltName(string $keyAltName): ?object

Finds a single key document in the key vault collection with the given alternate name keyAltName.

Parâmetros

keyAltName

Alternate name for the key document.

Valor Retornado

Returns the key document, or null if no document matched.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Veja Também

  • MongoDB\Driver\ClientEncryption::addKeyAltName() - Adds an alternate name to a key document
  • MongoDB\Driver\ClientEncryption::removeKeyAltName() - Removes an alternate name from a key document


Gets all key documents

  • « MongoDB\Driver\ClientEncryption::getKeyByAltName
  • MongoDB\Driver\ClientEncryption::removeKeyAltName »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Gets all key documents

MongoDB\Driver\ClientEncryption::getKeys

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::getKeys — Gets all key documents

Descrição

final public MongoDB\Driver\ClientEncryption::getKeys(): MongoDB\Driver\Cursor

Finds all key documents in the key vault collection.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.


Removes an alternate name from a key document

  • « MongoDB\Driver\ClientEncryption::getKeys
  • MongoDB\Driver\ClientEncryption::rewrapManyDataKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Removes an alternate name from a key document

MongoDB\Driver\ClientEncryption::removeKeyAltName

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::removeKeyAltName — Removes an alternate name from a key document

Descrição

final public MongoDB\Driver\ClientEncryption::removeKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object

Removes keyAltName from the set of alternate names for the key document with the given UUID keyId.

Parâmetros

keyId

A MongoDB\BSON\Binary instance with subtype 4 (UUID) identifying the key document.

keyAltName

Alternate name to remove from the key document.

Valor Retornado

Returns the previous version of the key document, or null if no document matched.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Veja Também

  • MongoDB\Driver\ClientEncryption::addKeyAltName() - Adds an alternate name to a key document
  • MongoDB\Driver\ClientEncryption::getKeyByAltName() - Gets a key document by an alternate name


Rewraps data keys

  • « MongoDB\Driver\ClientEncryption::removeKeyAltName
  • MongoDB\Driver\ServerApi »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Rewraps data keys

MongoDB\Driver\ClientEncryption::rewrapManyDataKey

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Rewraps data keys

Descrição

final public MongoDB\Driver\ClientEncryption::rewrapManyDataKey(array|object $filter, ?array $options = null): object

Rewraps (i.e. decrypts and re-encrypts) zero or more data keys in the key vault collection that match the given filter.

If the "provider" option is not specified, matching data keys will be rewrapped with their current KMS provider. Otherwise, matching data keys will be re-encrypted according to the specified "provider" and "masterKey" options.

Parâmetros

filter (array|object)

O » predicado de consulta. Um predicado vazio corresponderá a todos os documentos da coleção.

Nota: Ao avaliar os critérios de consulta, o MongoDB compara os tipos e valores de acordo com suas próprias » regras de comparação para tipos BSON, que diferem das regras de comparação e do malabarismo de tipos do PHP. Ao corresponder a um tipo especial de BSON, os critérios de consulta devem usar a respectiva classe BSON (por exemplo, use MongoDB\BSON\ObjectId para corresponder a um » ObjectId).

options

RewrapManyDataKey options
Option Type Description
provider string

The KMS provider (e.g. "local", "aws") that will be used to re-encrypt the matched data keys.

If a KMS provider is not specified, matched data keys will be re-encrypted with their current KMS provider.

masterKey array

The masterKey identifies a KMS-specific key used to encrypt the new data key. This option should not be specified without the "provider" option. This option is required if "provider" is specified and not "local".

Opções do provedor "aws"
Opção | Tipo | Descrição
region | string | Obrigatória.
key | string | Obrigatória. O Nome de Recurso da Amazon (ARN) para a chave mestra do cliente (CMK) da AWS.
endpoint | string | Opcional. Um identificador de servidor alternativo para o qual enviar requisições KMS. Pode incluir o número da porta.

Opções do provedor "azure"
Opção | Tipo | Descrição
keyVaultEndpoint | string | Obrigatória. Servidor com porta opcional (por exemplo, "example.vault.azure.net").
keyName | string | Obrigatória.
keyVersion | string | Opcional. Uma versão específica da chave nomeada. O padrão é usar a versão primária da chave.

Opções do provedor "gcp"
Opção | Tipo | Descrição
projectId | string | Obrigatória.
location | string | Obrigatória.
keyRing | string | Obrigatória.
keyName | string | Obrigatória.
keyVersion | string | Opcional. Uma versão específica da chave nomeada. O padrão é usar a versão primária da chave.
endpoint | string | Opcional. Servidor com porta opcional. O padrão é "cloudkms.googleapis.com".

Opções do provedor "kmip"
Opção | Tipo | Descrição
keyId | string | Opcional. Identificador único para um objeto gerenciado de dados secretos KMIP de 96 bytes. Se não especificado, o driver cria um objeto gerenciado de dados secretos KMIP aleatório de 96 bytes.
endpoint | string | Opcional. Servidor com porta opcional.

Valor Retornado

Returns an object, which will have an optional bulkWriteResult property containing the result of the internal bulkWrite operation as an object. If no data keys matched the filter or the write was unacknowledged, the bulkWriteResult property will be null.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while decrypting or re-encrypting a data key.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.


The MongoDB\Driver\ServerApi class

(mongodb >=1.10.0)

Introdução

Resumo da classe

final class MongoDB\Driver\ServerApi implements MongoDB\BSON\Serializable, Serializable {
/* Constantes */
const string MongoDB\Driver\ServerAPI::V1 = "1";
/* Métodos */
final public bsonSerialize(): stdClass
final public __construct(string $version, ?bool $strict = null, ?bool $deprecationErrors = null)
final public serialize(): string
final public unserialize(string $data): void
}

Constantes pré-definidas

MongoDB\Driver\ServerApi::V1

Server API version 1.

Exemplos

Exemplo #1 Declare an API version on a manager

<?php

use MongoDB\Driver\Manager;
use MongoDB\Driver\ServerApi;

$v1 = new ServerApi(ServerApi::v1);
$manager = new Manager('mongodb://localhost:27017', [], ['serverApi' => $v1]);

$command = new MongoDB\Driver\Command(['buildInfo' => 1]);

try {
$cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}

/* The buildInfo command returns a single result document, so we need to access
* the first result in the cursor. */
$buildInfo = $cursor->toArray()[0];

echo $buildInfo->version, "\n";

?>

O exemplo acima produzirá:

4.9.0-alpha7-49-gb968ca0

Exemplo #2 Declare a strict API version on a manager

The following example sets the strict flag, which tells the server to reject any command that is not part of the declared API version. This results in an error when running the buildInfo command.

<?php

use MongoDB\Driver\Manager;
use MongoDB\Driver\ServerApi;

$v1 = new ServerApi(ServerApi::v1, true);
$manager = new Manager('mongodb://localhost:27017', [], ['serverApi' => $v1]);

$command = new MongoDB\Driver\Command(['buildInfo' => 1]);

try {
$cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}

/* The buildInfo command returns a single result document, so we need to access
* the first result in the cursor. */
$buildInfo = $cursor->toArray()[0];

echo $buildInfo->version, "\n";

?>

O exemplo acima produzirá:

Provided apiStrict:true, but the command buildInfo is not in API Version 1

Índice

  • MongoDB\Driver\ServerApi::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ServerApi::__construct — Create a new ServerApi instance
  • MongoDB\Driver\ServerApi::serialize — Serialize a ServerApi
  • MongoDB\Driver\ServerApi::unserialize — Unserialize a ServerApi


Returns an object for BSON serialization

  • « MongoDB\Driver\ServerApi
  • MongoDB\Driver\ServerApi::__construct »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Returns an object for BSON serialization

MongoDB\Driver\ServerApi::bsonSerialize

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::bsonSerialize — Returns an object for BSON serialization

Descrição

final public MongoDB\Driver\ServerApi::bsonSerialize(): stdClass

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an object for serializing the ServerApi as BSON.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON


Create a new ServerApi instance

  • « MongoDB\Driver\ServerApi::bsonSerialize
  • MongoDB\Driver\ServerApi::serialize »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Create a new ServerApi instance

MongoDB\Driver\ServerApi::__construct

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::__construct — Create a new ServerApi instance

Descrição

final public MongoDB\Driver\ServerApi::__construct(string $version, ?bool $strict = null, ?bool $deprecationErrors = null)

Creates a new MongoDB\Driver\ServerApi instance used to declare an API version when creating a MongoDB\Driver\Manager.

Parâmetros

version

A server API version.

Supported API versions are provided as constants in MongoDB\Driver\ServerApi. The only supported API version is MongoDB\Driver\ServerApi::V1.

strict

If the strict parameter is set to true, the server will yield an error for any command that is not part of the specified API version. If no value is provided, the server default value (false) is used.

deprecationErrors

If the deprecationErrors parameter is set to true, the server will yield an error when using a command that is deprecated in the specified API version. If no value is provided, the server default value (false) is used.


Serialize a ServerApi

  • « MongoDB\Driver\ServerApi::__construct
  • MongoDB\Driver\ServerApi::unserialize »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Serialize a ServerApi

MongoDB\Driver\ServerApi::serialize

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::serialize — Serialize a ServerApi

Descrição

final public MongoDB\Driver\ServerApi::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\Driver\ServerApi.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\ServerApi::unserialize() - Unserialize a ServerApi
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Unserialize a ServerApi

  • « MongoDB\Driver\ServerApi::serialize
  • MongoDB\Driver\WriteConcern »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Unserialize a ServerApi

MongoDB\Driver\ServerApi::unserialize

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::unserialize — Unserialize a ServerApi

Descrição

final public MongoDB\Driver\ServerApi::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\Driver\ServerApi.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\Driver\ServerApi::serialize() - Serialize a ServerApi
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\Driver\WriteConcern class

(mongodb >=1.0.0)

Introdução

MongoDB\Driver\WriteConcern describes the level of acknowledgement requested from MongoDB for write operations to a standalone mongod or to replica sets or to sharded clusters. In sharded clusters, mongos instances will pass the write concern on to the shards.

Resumo da classe

final class MongoDB\Driver\WriteConcern implements MongoDB\BSON\Serializable, Serializable {
/* Constantes */
const string MAJORITY = "majority";
/* Métodos */
final public bsonSerialize(): stdClass
final public __construct(string|int $w, ?int $wtimeout = null, ?bool $journal = null)
final public getJournal(): ?bool
final public getW(): string|int|null
final public getWtimeout(): int
final public isDefault(): bool
final public serialize(): string
final public unserialize(string $data): void
}

Constantes pré-definidas

MongoDB\Driver\WriteConcern::MAJORITY

Majority of all the members in the set; arbiters, non-voting members, passive members, hidden members and delayed members are all included in the definition of majority write concern.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.7.0 | Implements Serializable.
PECL mongodb 1.2.0 | Implements MongoDB\BSON\Serializable.

Índice

  • MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\WriteConcern::__construct — Create a new WriteConcern
  • MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option
  • MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option
  • MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option
  • MongoDB\Driver\WriteConcern::isDefault — Checks if this is the default write concern
  • MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern
  • MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern


Returns an object for BSON serialization

  • « MongoDB\Driver\WriteConcern
  • MongoDB\Driver\WriteConcern::__construct »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns an object for BSON serialization

MongoDB\Driver\WriteConcern::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization

Descrição

final public MongoDB\Driver\WriteConcern::bsonSerialize(): stdClass

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an object for serializing the WriteConcern as BSON.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteConcern::bsonSerialize() with majority write concern

<?php

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY);
var_dump($wc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($wc));

?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#2 (1) {
  ["w"]=>
  string(8) "majority"
}

{ "w" : "majority" }

Exemplo #2 MongoDB\Driver\WriteConcern::bsonSerialize() with wtimeout and journal

<?php

$wc = new MongoDB\Driver\WriteConcern(2, 1000, true);
var_dump($wc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($wc));

?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#2 (3) {
  ["w"]=>
  int(2)
  ["j"]=>
  bool(true)
  ["wtimeout"]=>
  int(1000)
}

{ "w" : 2, "j" : true, "wtimeout" : 1000 }

Veja Também

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • » Write Concern reference


Create a new WriteConcern

  • « MongoDB\Driver\WriteConcern::bsonSerialize
  • MongoDB\Driver\WriteConcern::getJournal »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Create a new WriteConcern

MongoDB\Driver\WriteConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::__construct — Create a new WriteConcern

Descrição

final public MongoDB\Driver\WriteConcern::__construct(string|int $w, ?int $wtimeout = null, ?bool $journal = null)

Constructs a new MongoDB\Driver\WriteConcern, which is an immutable value object.

Parâmetros

w

Write concern
Value | Description
1 | Requests acknowledgement that the write operation has propagated to the standalone mongod or the primary in a replica set. This is the default write concern for MongoDB.
0 | Requests no acknowledgment of the write operation. However, this may return information about socket exceptions and networking errors to the application.
<integer greater than 1> | Numbers greater than 1 are valid only for replica sets to request acknowledgement from specified number of members, including the primary.
MongoDB\Driver\WriteConcern::MAJORITY

Requests acknowledgment that write operations have propagated to the majority of voting nodes, including the primary, and have been written to the on-disk journal for these nodes.

Prior to MongoDB 3.0, this refers to the majority of replica set members (not just voting nodes).

string | A string value is interpereted as a tag set. Requests acknowledgement that the write operations have propagated to a replica set member with the specified tag.

wtimeout

How long to wait (in milliseconds) for secondaries before failing.

wtimeout causes write operations to return with an error (WriteConcernError) after the specified limit, even if the required write concern will eventually succeed. When these write operations return, MongoDB does not undo successful data modifications performed before the write concern exceeded the wtimeout time limit.

If specified, wtimeout must be a signed 64-bit integer greater than or equal to zero.

Write concern timeout
Value | Description
0 | Block indefinitely. This is the default.
<integer greater than 0> | Milliseconds to wait until returning.

journal

Wait until mongod has applied the write to the journal.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if w is invalid or wtimeout is either negative or greater than the bounds of a signed 32-bit integer.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.7.0 | The wTimeout parameter now accepts 64-bit values.

Exemplos

Exemplo #1 MongoDB\Driver\WriteConcern::__construct() example

<?php

/* Request write acknowledgement from the majority of the replica set nodes */
$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 500);

/* Request write acknowledgement from a node configured with the "MultipleDC" tag */
$wc = new MongoDB\Driver\WriteConcern("MultipleDC", 500);

?>

Veja Também

  • » Write Concern reference


Returns the WriteConcern's "journal" option

  • « MongoDB\Driver\WriteConcern::__construct
  • MongoDB\Driver\WriteConcern::getW »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "journal" option

MongoDB\Driver\WriteConcern::getJournal

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option

Descrição

final public MongoDB\Driver\WriteConcern::getJournal(): ?bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the WriteConcern's "journal" option.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteConcern::getJournal() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getJournal());

$wc = new MongoDB\Driver\WriteConcern(1, 0, true);
var_dump($wc->getJournal());

$wc = new MongoDB\Driver\WriteConcern(1, 0, false);
var_dump($wc->getJournal());

?>

O exemplo acima produzirá:

NULL
bool(true)
bool(false)

Veja Também

  • » Write Concern reference


Returns the WriteConcern's "w" option

  • « MongoDB\Driver\WriteConcern::getJournal
  • MongoDB\Driver\WriteConcern::getWtimeout »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "w" option

MongoDB\Driver\WriteConcern::getW

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option

Descrição

final public MongoDB\Driver\WriteConcern::getW(): string|int|null

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the WriteConcern's "w" option.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteConcern::getW() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getW());

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY);
var_dump($wc->getW());

?>

O exemplo acima produzirá:

int(1)
string(8) "majority"

Veja Também

  • » Write Concern reference


Returns the WriteConcern's "wtimeout" option

  • « MongoDB\Driver\WriteConcern::getW
  • MongoDB\Driver\WriteConcern::isDefault »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "wtimeout" option

MongoDB\Driver\WriteConcern::getWtimeout

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option

Descrição

final public MongoDB\Driver\WriteConcern::getWtimeout(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the WriteConcern's "wtimeout" option.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.7.0 | On 32-bit systems, this method will always truncate the wTimeout value if it exceeds the 32-bit range. In that case, a warning will be emitted.

Exemplos

Exemplo #1 MongoDB\Driver\WriteConcern::getWtimeout() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getWtimeout());

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 3000);
var_dump($wc->getWtimeout());

?>

O exemplo acima produzirá:

int(0)
int(3000)

Veja Também

  • » Write Concern reference


Checks if this is the default write concern

  • « MongoDB\Driver\WriteConcern::getWtimeout
  • MongoDB\Driver\WriteConcern::serialize »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Checks if this is the default write concern

MongoDB\Driver\WriteConcern::isDefault

(mongodb >=1.3.0)

MongoDB\Driver\WriteConcern::isDefault — Checks if this is the default write concern

Descrição

final public MongoDB\Driver\WriteConcern::isDefault(): bool

Returns whether this is the default write concern (i.e. no options are specified). This method is primarily intended to be used in conjunction with MongoDB\Driver\Manager::getWriteConcern() to determine whether the Manager has been constructed without any write concern options.

The driver will not include a default write concern in its write operations (e.g. MongoDB\Driver\Manager::executeBulkWrite()) in order to allow the server to apply its own default, which may have been » modified. Libraries that access the Manager's write concern to include it in their own write commands should use this method to ensure that default write concerns are left unset.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if this is the default write concern and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteConcern::isDefault() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/?w=majority');
$wc = $manager->getWriteConcern();
var_dump($wc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/');
$wc = $manager->getWriteConcern();
var_dump($wc->isDefault());

?>

O exemplo acima produzirá:

bool(false)
bool(false)
bool(true)

Veja Também

  • MongoDB\Driver\Manager::getWriteConcern() - Return the WriteConcern for the Manager
  • » Modify Default Write Concern in the MongoDB manual
  • » Write Concern reference


Serialize a WriteConcern

  • « MongoDB\Driver\WriteConcern::isDefault
  • MongoDB\Driver\WriteConcern::unserialize »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Serialize a WriteConcern

MongoDB\Driver\WriteConcern::serialize

(mongodb >=1.7.0)

MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern

Descrição

final public MongoDB\Driver\WriteConcern::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\Driver\WriteConcern.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\WriteConcern::unserialize() - Unserialize a WriteConcern
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Unserialize a WriteConcern

  • « MongoDB\Driver\WriteConcern::serialize
  • MongoDB\Driver\ReadPreference »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Unserialize a WriteConcern

MongoDB\Driver\WriteConcern::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern

Descrição

final public MongoDB\Driver\WriteConcern::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\Driver\WriteConcern.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\Driver\WriteConcern::serialize() - Serialize a WriteConcern
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\Driver\ReadPreference class

(mongodb >=1.0.0)

Introdução

Resumo da classe

final class MongoDB\Driver\ReadPreference implements MongoDB\BSON\Serializable, Serializable {
/* Constantes */
const int RP_PRIMARY = 1;
const int RP_PRIMARY_PREFERRED = 5;
const int RP_SECONDARY = 2;
const int RP_SECONDARY_PREFERRED = 6;
const int RP_NEAREST = 10;
const string PRIMARY = primary;
const string PRIMARY_PREFERRED = primaryPreferred;
const string SECONDARY = secondary;
const string SECONDARY_PREFERRED = secondaryPreferred;
const string NEAREST = nearest;
const int NO_MAX_STALENESS = -1;
const int SMALLEST_MAX_STALENESS_SECONDS = 90;
/* Métodos */
final public bsonSerialize(): stdClass
final public __construct(string|int $mode, ?array $tagSets = null, ?array $options = null)
final public getHedge(): ?object
final public getMaxStalenessSeconds(): int
final public getMode(): int
final public getModeString(): string
final public getTagSets(): array
final public serialize(): string
final public unserialize(string $data): void
}

Constantes pré-definidas

MongoDB\Driver\ReadPreference::RP_PRIMARY

All operations read from the current replica set primary. This is the default read preference for MongoDB.

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED

In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

MongoDB\Driver\ReadPreference::RP_SECONDARY

All operations read from the secondary members of the replica set.

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED

In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary.

MongoDB\Driver\ReadPreference::RP_NEAREST

Operations read from member of the replica set with the least network latency, irrespective of the member's type.

MongoDB\Driver\ReadPreference::PRIMARY

All operations read from the current replica set primary. This is the default read preference for MongoDB.

MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED

In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

MongoDB\Driver\ReadPreference::SECONDARY

All operations read from the secondary members of the replica set.

MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED

In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary.

MongoDB\Driver\ReadPreference::NEAREST

Operations read from member of the replica set with the least network latency, irrespective of the member's type.

MongoDB\Driver\ReadPreference::NO_MAX_STALENESS

The default value for the "maxStalenessSeconds" option is to specify no limit on maximum staleness, which means that the driver will not consider a secondary's lag when choosing where to direct a read operation.

MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS

The minimum value for the "maxStalenessSeconds" option is 90 seconds. The driver estimates secondaries' staleness by periodically checking the latest write date of each replica set member. Since these checks are infrequent, the staleness estimate is coarse. Thus, the driver cannot enforce a max staleness value of less than 90 seconds.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.7.0 | Added the MongoDB\Driver\ReadPreference::PRIMARY, MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED, MongoDB\Driver\ReadPreference::SECONDARY, MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED, MongoDB\Driver\ReadPreference::NEAREST constants. Implements Serializable.
PECL mongodb 1.2.0 | Added the MongoDB\Driver\ReadPreference::NO_MAX_STALENESS and MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS constants. Implements MongoDB\BSON\Serializable.

Índice

  • MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ReadPreference::__construct — Create a new ReadPreference
  • MongoDB\Driver\ReadPreference::getHedge — Returns the ReadPreference's "hedge" option
  • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Returns the ReadPreference's "maxStalenessSeconds" option
  • MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option
  • MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string
  • MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option
  • MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference
  • MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference


Returns an object for BSON serialization

  • « MongoDB\Driver\ReadPreference
  • MongoDB\Driver\ReadPreference::__construct »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns an object for BSON serialization

MongoDB\Driver\ReadPreference::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization

Descrição

final public MongoDB\Driver\ReadPreference::bsonSerialize(): stdClass

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an object for serializing the ReadPreference as BSON.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\ReadPreference::bsonSerialize() with primary read preference

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#2 (1) {
  ["mode"]=>
  string(7) "primary"
}

{ "mode" : "primary" }

Exemplo #2 MongoDB\Driver\ReadPreference::bsonSerialize() with secondary read preference and tag sets

<?php

$rp = new MongoDB\Driver\ReadPreference(
MongoDB\Driver\ReadPreference::RP_SECONDARY,
[
['dc' => 'ny'],
['dc' => 'sf', 'use' => 'reporting'],
[]
]
);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#2 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["tags"]=>
  array(3) {
    [0]=>
    object(stdClass)#1 (1) {
      ["dc"]=>
      string(2) "ny"
    }
    [1]=>
    object(stdClass)#5 (2) {
      ["dc"]=>
      string(2) "sf"
      ["use"]=>
      string(9) "reporting"
    }
    [2]=>
    object(stdClass)#4 (0) {
    }
  }
}

{ "mode" : "secondary", "tags" : [ { "dc" : "ny" }, { "dc" : "sf", "use" : "reporting" }, {  } ] }

Exemplo #3 MongoDB\Driver\ReadPreference::bsonSerialize() with secondary read preference and max staleness

<?php

$rp = new MongoDB\Driver\ReadPreference(
MongoDB\Driver\ReadPreference::RP_SECONDARY,
null,
['maxStalenessSeconds' => 120]
);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#2 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["maxStalenessSeconds"]=>
  int(120)
}

{ "mode" : "secondary", "maxStalenessSeconds" : 120 }

Veja Também

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • » Read Preference reference


Create a new ReadPreference

  • « MongoDB\Driver\ReadPreference::bsonSerialize
  • MongoDB\Driver\ReadPreference::getHedge »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Create a new ReadPreference

MongoDB\Driver\ReadPreference::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::__construct — Create a new ReadPreference

Descrição

final public MongoDB\Driver\ReadPreference::__construct(string|int $mode, ?array $tagSets = null, ?array $options = null)

Constructs a new MongoDB\Driver\ReadPreference, which is an immutable value object.

Parâmetros

mode

Read preference mode
Value Description
MongoDB\Driver\ReadPreference::RP_PRIMARY or "primary"

All operations read from the current replica set primary. This is the default read preference for MongoDB.

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED or "primaryPreferred"

In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

MongoDB\Driver\ReadPreference::RP_SECONDARY or "secondary"

All operations read from the secondary members of the replica set.

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED or "secondaryPreferred"

In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary.

MongoDB\Driver\ReadPreference::RP_NEAREST or "nearest"

Operations read from member of the replica set with the least network latency, irrespective of the member's type.

tagSets

Tag sets allow you to target read operations to specific members of a replica set. This parameter should be an array of associative arrays, each of which contain zero or more key/value pairs. When selecting a server for a read operation, the driver attempt to select a node having all tags in a set (i.e. the associative array of key/value pairs). If selection fails, the driver will attempt subsequent sets. An empty tag set (array()) will match any node and may be used as a fallback.

Tags are not compatible with the MongoDB\Driver\ReadPreference::RP_PRIMARY mode and, in general, only apply when selecting a secondary member of a set for a read operation. However, the MongoDB\Driver\ReadPreference::RP_NEAREST mode, when combined with a tag set, selects the matching member with the lowest network latency. This member may be a primary or secondary.

options

options
Option Type Description
hedge object|array

Specifies whether to use » hedged reads, which are supported by MongoDB 4.4+ for sharded queries.

Server hedged reads are available for all non-primary read preferences and are enabled by default when using the "nearest" mode. This option allows explicitly enabling server hedged reads for non-primary read preferences by specifying ['enabled' => true], or explicitly disabling server hedged reads for the "nearest" read preference by specifying ['enabled' => false].

maxStalenessSeconds int

Specifies a maximum replication lag, or "staleness", for reads from secondaries. When a secondary's estimated staleness exceeds this value, the driver stops using it for read operations.

If specified, the max staleness must be a signed 32-bit integer greater than or equal to MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS.

Defaults to MongoDB\Driver\ReadPreference::NO_MAX_STALENESS, which means that the driver will not consider a secondary's lag when choosing where to direct a read operation.

This option is not compatible with the MongoDB\Driver\ReadPreference::RP_PRIMARY mode. Specifying a max staleness also requires all MongoDB instances in the deployment to be using MongoDB 3.4+. An exception will be thrown at execution time if any MongoDB instances in the deployment are of an older server version.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if mode is invalid.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if tagSets is provided for a primary read preference or is malformed (i.e. not an array of zero or more documents).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "maxStalenessSeconds" option is provided for a primary read preference or is out of range.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.8.0 | Added the "hedge" option.
PECL mongodb 1.3.0 | The mode argument now accepts a string value, which is consistent with the "readPreference" URI option for MongoDB\Driver\Manager::__construct().
PECL mongodb 1.2.0 | Added a third options argument, which supports the "maxStalenessSeconds" option.

Exemplos

Exemplo #1 MongoDB\Driver\ReadPreference::__construct() example

<?php

/* Prefer a secondary node but fall back to a primary. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED));

/* Prefer a node in the New York data center with lowest latency. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST, [['dc' => 'ny']]));

/* Require a secondary node whose replication lag is within two minutes of the primary */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['maxStalenessSeconds' => 120]));

/* Explicitly enable server hedged reads */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['hedge' => ['enabled' => true]]));

?>

O exemplo acima produzirá:

object(MongoDB\Driver\ReadPreference)#1 (1) {
  ["mode"]=>
  string(18) "secondaryPreferred"
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(7) "nearest"
  ["tags"]=>
  array(1) {
    [0]=>
    object(stdClass)#2 (1) {
      ["dc"]=>
      string(2) "ny"
    }
  }
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["maxStalenessSeconds"]=>
  int(120)
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["hedge"]=>
  object(stdClass)#1 (1) {
    ["enabled"]=>
    bool(true)
  }
}

Veja Também

  • » Read Preference reference


Returns the ReadPreference's "hedge" option

  • « MongoDB\Driver\ReadPreference::__construct
  • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "hedge" option

MongoDB\Driver\ReadPreference::getHedge

(mongodb >=1.8.0)

MongoDB\Driver\ReadPreference::getHedge — Returns the ReadPreference's "hedge" option

Descrição

final public MongoDB\Driver\ReadPreference::getHedge(): ?object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the ReadPreference's "hedge" option.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • » Read Preference reference


Returns the ReadPreference's "maxStalenessSeconds" option

  • « MongoDB\Driver\ReadPreference::getHedge
  • MongoDB\Driver\ReadPreference::getMode »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "maxStalenessSeconds" option

MongoDB\Driver\ReadPreference::getMaxStalenessSeconds

(mongodb >=1.2.0)

MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Returns the ReadPreference's "maxStalenessSeconds" option

Descrição

final public MongoDB\Driver\ReadPreference::getMaxStalenessSeconds(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the ReadPreference's "maxStalenessSeconds" option. If no max staleness has been specified, MongoDB\Driver\ReadPreference::NO_MAX_STALENESS will be returned.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\ReadPreference::getMaxStalenessSeconds() example

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
'maxStalenessSeconds' => MongoDB\Driver\ReadPreference::NO_MAX_STALENESS,
]);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
'maxStalenessSeconds' => MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS,
]);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
'maxStalenessSeconds' => 1000,
]);
var_dump($rp->getMaxStalenessSeconds());

?>

O exemplo acima produzirá:

int(-1)
int(-1)
int(90)
int(1000)

Veja Também

  • » Read Preference reference


Returns the ReadPreference's "mode" option

  • « MongoDB\Driver\ReadPreference::getMaxStalenessSeconds
  • MongoDB\Driver\ReadPreference::getModeString »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "mode" option

MongoDB\Driver\ReadPreference::getMode

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option

Descrição

final public MongoDB\Driver\ReadPreference::getMode(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the ReadPreference's "mode" option.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\ReadPreference::getMode() example

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST);
var_dump($rp->getMode());

?>

O exemplo acima produzirá:

int(1)
int(5)
int(2)
int(6)
int(10)

Veja Também

  • MongoDB\Driver\ReadPreference::getModeString() - Returns the ReadPreference's "mode" option as a string
  • » Read Preference reference


Returns the ReadPreference's "mode" option as a string

  • « MongoDB\Driver\ReadPreference::getMode
  • MongoDB\Driver\ReadPreference::getTagSets »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "mode" option as a string

MongoDB\Driver\ReadPreference::getModeString

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string

Descrição

final public MongoDB\Driver\ReadPreference::getModeString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the ReadPreference's "mode" option as a string.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\ReadPreference::getModeString() example

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::PRIMARY);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::SECONDARY);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::NEAREST);
var_dump($rp->getModeString());

?>

O exemplo acima produzirá:

string(7) "primary"
string(16) "primaryPreferred"
string(9) "secondary"
string(18) "secondaryPreferred"
string(7) "nearest"

Veja Também

  • MongoDB\Driver\ReadPreference::getMode() - Returns the ReadPreference's "mode" option
  • » Read Preference reference


Returns the ReadPreference's "tagSets" option

  • « MongoDB\Driver\ReadPreference::getModeString
  • MongoDB\Driver\ReadPreference::serialize »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "tagSets" option

MongoDB\Driver\ReadPreference::getTagSets

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option

Descrição

final public MongoDB\Driver\ReadPreference::getTagSets(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the ReadPreference's "tagSets" option.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\ReadPreference::getTagSets() example

<?php

$mode = MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED;

/* Null and an empty array both denote no tag set preference. */
$rp = new MongoDB\Driver\ReadPreference($mode, null);
var_dump($rp->getTagSets());

$rp = new MongoDB\Driver\ReadPreference($mode, []);
var_dump($rp->getTagSets());

/* Prefer a node in New York, but fall back to any available node. */
$rp = new MongoDB\Driver\ReadPreference($mode, [['dc' => 'ny']]);
var_dump($rp->getTagSets());

/* Prefer a node in the New York, followed by a node in San Francisco that is
labeled for reporting usage, and finally fall back to any available node. */
$rp = new MongoDB\Driver\ReadPreference($mode, [
['dc' => 'ny'],
['dc' => 'sf', 'use' => 'reporting'],
[],
]);
var_dump($rp->getTagSets());

?>

O exemplo acima produzirá:

array(0) {
}
array(0) {
}
array(2) {
  [0]=>
  array(1) {
    ["dc"]=>
    string(2) "ny"
  }
  [1]=>
  array(0) {
  }
}
array(3) {
  [0]=>
  array(1) {
    ["dc"]=>
    string(2) "ny"
  }
  [1]=>
  array(2) {
    ["dc"]=>
    string(2) "sf"
    ["use"]=>
    string(9) "reporting"
  }
  [2]=>
  array(0) {
  }
}

Veja Também

  • » Read Preference reference


Serialize a ReadPreference

  • « MongoDB\Driver\ReadPreference::getTagSets
  • MongoDB\Driver\ReadPreference::unserialize »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Serialize a ReadPreference

MongoDB\Driver\ReadPreference::serialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference

Descrição

final public MongoDB\Driver\ReadPreference::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\Driver\ReadPreference.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\ReadPreference::unserialize() - Unserialize a ReadPreference
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Unserialize a ReadPreference

  • « MongoDB\Driver\ReadPreference::serialize
  • MongoDB\Driver\ReadConcern »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Unserialize a ReadPreference

MongoDB\Driver\ReadPreference::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference

Descrição

final public MongoDB\Driver\ReadPreference::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\Driver\ReadPreference.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\Driver\ReadPreference::serialize() - Serialize a ReadPreference
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\Driver\ReadConcern class

(mongodb >=1.1.0)

Introdução

MongoDB\Driver\ReadConcern controls the level of isolation for read operations for replica sets and replica set shards. This option requires MongoDB 3.2 or later.

Resumo da classe

final class MongoDB\Driver\ReadConcern implements MongoDB\BSON\Serializable, Serializable {
/* Constantes */
const string AVAILABLE = "available";
const string LINEARIZABLE = "linearizable";
const string LOCAL = "local";
const string MAJORITY = "majority";
const string SNAPSHOT = "snapshot";
/* Métodos */
final public bsonSerialize(): stdClass
final public __construct(?string $level = null)
final public getLevel(): ?string
final public isDefault(): bool
final public serialize(): string
final public unserialize(string $data): void
}

Constantes pré-definidas

MongoDB\Driver\ReadConcern::AVAILABLE

Default for reads against secondaries when afterClusterTimeand level are unspecified.

The query returns the instance's most recent data. Provides no guarantee that the data has been written to a majority of the replica set members (i.e. may be rolled back).

For unsharded collections (including collections in a standalone deployment or a replica set deployment), "local" and "available" read concerns behave identically.

For a sharded cluster, "available" read concern provides greater tolerance for partitions since it does not wait to ensure consistency guarantees. However, a query with "available" read concern may return orphan documents if the shard is undergoing chunk migrations since the "available" read concern, unlike "local" read concern, does not contact the shard's primary nor the config servers for updated metadata.

MongoDB\Driver\ReadConcern::LINEARIZABLE

The query returns data that reflects all successful writes issued with a write concern of "majority" and acknowledged prior to the start of the read operation. For replica sets that run with writeConcernMajorityJournalDefault set to true, linearizable read concern returns data that will never be rolled back.

With writeConcernMajorityJournalDefault set to false, MongoDB will not wait for w: "majority" writes to be durable before acknowledging the writes. As such, "majority" write operations could possibly roll back in the event of a loss of a replica set member.

You can specify linearizable read concern for read operations on the primary only.

Linearizable read concern guarantees only apply if read operations specify a query filter that uniquely identifies a single document.

Dica

Always use maxTimeMS with linearizable read concern in case a majority of data bearing members are unavailable. maxTimeMS ensures that the operation does not block indefinitely and instead ensures that the operation returns an error if the read concern cannot be fulfilled.

Linearizable read concern requires MongoDB 3.4.

MongoDB\Driver\ReadConcern::LOCAL

Default for reads against primary if level is unspecified and for reads against secondaries if level is unspecified but afterClusterTime is specified.

The query returns the instance's most recent data. Provides no guarantee that the data has been written to a majority of the replica set members (i.e. may be rolled back).

MongoDB\Driver\ReadConcern::MAJORITY

The query returns the instance's most recent data acknowledged as having been written to a majority of members in the replica set.

To use read concern level of "majority", replica sets must use WiredTiger storage engine and election protocol version 1.

MongoDB\Driver\ReadConcern::SNAPSHOT

Read concern "snapshot" is available for multi-document transactions, and starting in MongoDB 5.0, certain read operations outside of multi-document transactions.

If the transaction is not part of a causally consistent session, upon transaction commit with write concern "majority", the transaction operations are guaranteed to have read from a snapshot of majority-committed data.

If the transaction is part of a causally consistent session, upon transaction commit with write concern "majority", the transaction operations are guaranteed to have read from a snapshot of majority-committed data that provides causal consistency with the operation immediately preceding the transaction start.

Outside of multi-document transactions, read concern "snapshot" is available on primaries and secondaries for the following read operations: find, aggregate, and distinct (on unsharded collections). All other read commands prohibit "snapshot".

Registro de Alterações

Versão | Descrição
PECL mongodb 1.11.0 | Added the MongoDB\Driver\ReadConcern::SNAPSHOT constant.
PECL mongodb 1.7.0 | Implements Serializable.
PECL mongodb 1.4.0 | Added the MongoDB\Driver\ReadConcern::AVAILABLE constant.
PECL mongodb 1.2.0 | Added the MongoDB\Driver\ReadConcern::LINEARIZABLE constant. Implements MongoDB\BSON\Serializable.

Veja Também

  • » Read Concern reference

Índice

  • MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ReadConcern::__construct — Create a new ReadConcern
  • MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option
  • MongoDB\Driver\ReadConcern::isDefault — Checks if this is the default read concern
  • MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern
  • MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern


Returns an object for BSON serialization

  • « MongoDB\Driver\ReadConcern
  • MongoDB\Driver\ReadConcern::__construct »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Returns an object for BSON serialization

MongoDB\Driver\ReadConcern::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization

Descrição

final public MongoDB\Driver\ReadConcern::bsonSerialize(): stdClass

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an object for serializing the ReadConcern as BSON.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\ReadConcern::bsonSerialize() with empty read concern

<?php

$rc = new MongoDB\Driver\ReadConcern;
var_dump($rc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rc));

?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#2 (0) {
}

{ }

Exemplo #2 MongoDB\Driver\ReadConcern::bsonSerialize() with local read concern

<?php

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);
var_dump($rc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rc));

?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#2 (1) {
  ["level"]=>
  string(5) "local"
}

{ "level" : "local" }

Veja Também

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • » Read Concern reference


Create a new ReadConcern

  • « MongoDB\Driver\ReadConcern::bsonSerialize
  • MongoDB\Driver\ReadConcern::getLevel »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Create a new ReadConcern

MongoDB\Driver\ReadConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::__construct — Create a new ReadConcern

Descrição

final public MongoDB\Driver\ReadConcern::__construct(?string $level = null)

Constructs a new MongoDB\Driver\ReadConcern, which is an immutable value object.

Parâmetros

level

The » read concern level. You may use, but are not limited to, one of the class constants.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\ReadConcern::__construct() example

<?php

/* Unspecified read isolation level (uses the server's default behavior) */
$rc = new MongoDB\Driver\ReadConcern();

/* Request read isolation from a single replica set node */
$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);

/* Request read isolation from a majority of the replica set nodes */
$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);

?>

Veja Também

  • » Read Concern reference


Returns the ReadConcern's "level" option

  • « MongoDB\Driver\ReadConcern::__construct
  • MongoDB\Driver\ReadConcern::isDefault »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Returns the ReadConcern's "level" option

MongoDB\Driver\ReadConcern::getLevel

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option

Descrição

final public MongoDB\Driver\ReadConcern::getLevel(): ?string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the ReadConcern's "level" option.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\ReadConcern::getLevel() example

<?php

$rc = new MongoDB\Driver\ReadConcern();
var_dump($rc->getLevel());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);
var_dump($rc->getLevel());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);
var_dump($rc->getLevel());

?>

O exemplo acima produzirá:

NULL
string(5) "local"
string(8) "majority"

Veja Também

  • » Read Concern reference


Checks if this is the default read concern

  • « MongoDB\Driver\ReadConcern::getLevel
  • MongoDB\Driver\ReadConcern::serialize »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Checks if this is the default read concern

MongoDB\Driver\ReadConcern::isDefault

(mongodb >=1.3.0)

MongoDB\Driver\ReadConcern::isDefault — Checks if this is the default read concern

Descrição

final public MongoDB\Driver\ReadConcern::isDefault(): bool

Returns whether this is the default read concern (i.e. no options are specified). This method is primarily intended to be used in conjunction with MongoDB\Driver\Manager::getReadConcern() to determine whether the Manager has been constructed without any read concern options.

The driver will not include a default read concern in its read operations (e.g. MongoDB\Driver\Manager::executeQuery()) in order order to allow the server to apply its own default. Libraries that access the Manager's read concern to include it in their own read commands should use this method to ensure that default read concerns are left unset.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if this is the default read concern and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\ReadConcern::isDefault() example

<?php

$rc = new MongoDB\Driver\ReadConcern(null);
var_dump($rc->isDefault());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);
var_dump($rc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/?readConcernLevel=majority');
$rc = $manager->getReadConcern();
var_dump($rc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/');
$rc = $manager->getReadConcern();
var_dump($rc->isDefault());

?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(false)
bool(true)

Veja Também

  • MongoDB\Driver\Manager::getReadConcern() - Return the ReadConcern for the Manager
  • » Read Concern reference


Serialize a ReadConcern

  • « MongoDB\Driver\ReadConcern::isDefault
  • MongoDB\Driver\ReadConcern::unserialize »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Serialize a ReadConcern

MongoDB\Driver\ReadConcern::serialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern

Descrição

final public MongoDB\Driver\ReadConcern::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\Driver\ReadConcern.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\ReadConcern::unserialize() - Unserialize a ReadConcern
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Unserialize a ReadConcern

  • « MongoDB\Driver\ReadConcern::serialize
  • MongoDB\Driver\Cursor »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Unserialize a ReadConcern

MongoDB\Driver\ReadConcern::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern

Descrição

final public MongoDB\Driver\ReadConcern::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\Driver\ReadConcern.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\Driver\ReadConcern::serialize() - Serialize a ReadConcern
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\Driver\Cursor class

(mongodb >=1.0.0)

Introdução

The MongoDB\Driver\Cursor class encapsulates the results of a MongoDB command or query and may be returned by MongoDB\Driver\Manager::executeCommand() or MongoDB\Driver\Manager::executeQuery(), respectively.

Resumo da classe

final class MongoDB\Driver\Cursor implements MongoDB\Driver\CursorInterface, Iterator {
/* Métodos */
final private __construct()
public current(): array|object|null
final public getId(): MongoDB\Driver\CursorId
final public getServer(): MongoDB\Driver\Server
final public isDead(): bool
public key(): int
public next(): void
public rewind(): void
final public setTypeMap(array $typemap): void
final public toArray(): array
public valid(): bool
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.9.0 | Implements Iterator.
PECL mongodb 1.6.0 | Implements MongoDB\Driver\CursorInterface, which extends Traversable.

Exemplos

Exemplo #1 Reading a result set

MongoDB\Driver\Manager::executeCommand() and MongoDB\Driver\Manager::executeQuery() both return their result(s) as a MongoDB\Driver\Cursor object. This object can be used to iterate over the result set of the command or query.

Because MongoDB\Driver\Cursor implements the Traversable interface, you can simply iterate over the result set with foreach.

<?php

$manager = new MongoDB\Driver\Manager();

/* Insert some documents so that our query returns information */
$bulkWrite = new MongoDB\Driver\BulkWrite;
$bulkWrite->insert(['name' => 'Ceres', 'size' => 946, 'distance' => 2.766]);
$bulkWrite->insert(['name' => 'Vesta', 'size' => 525, 'distance' => 2.362]);
$manager->executeBulkWrite("test.asteroids", $bulkWrite);

/* Query for all the items in the collection */
$query = new MongoDB\Driver\Query( [] );

/* Query the "asteroids" collection of the "test" database */
$cursor = $manager->executeQuery("test.asteroids", $query);

/* $cursor now contains an object that wraps around the result set. Use
* foreach() to iterate over all the result */
foreach($cursor as $document) {
print_r($document);
}

?>

O exemplo acima produzirá algo semelhante a:

stdClass Object
(
    [_id] => MongoDB\BSON\ObjectId Object
        (
            [oid] => 5a4cff2f122d3321565d8cc2
        )

    [name] => Ceres
    [size] => 946
    [distance] => 2.766
)
stdClass Object
(
    [_id] => MongoDB\BSON\ObjectId Object
        (
            [oid] => 5a4cff2f122d3321565d8cc3
        )

    [name] => Vesta
    [size] => 525
    [distance] => 2.362
}

Exemplo #2 Reading a result set for a tailable cursor

» Tailable cursors are a special type of MongoDB cursor that allows the client to read some results and then wait until more documents become available. These cursors are primarily used with » Capped Collections and » Change Streams.

While normal cursors can be iterated once with foreach, that approach will not work with tailable cursors. When foreach is used with a tailable cursor, the loop will stop upon reaching the end of the initial result set. Attempting to continue iteration on the cursor with a second foreach would throw an exception, since PHP attempts to rewind the cursor. Similar to result objects in other database drivers, cursors in MongoDB only support forward iteration, which means they cannot be rewound.

In order to continuously read from a tailable cursor, the Cursor object must be wrapped with an IteratorIterator. This allows the application to directly control the cursor's iteration, avoid inadvertently rewinding the cursor, and decide when to wait for new results or stop iteration entirely.

In order to demonstrate a tailable cursor in action, two scripts will be used: a "producer" and a "consumer". The producer script will create a new capped collection using the » create command and proceed to insert a new document into that collection each second.

<?php

$manager = new MongoDB\Driver\Manager;

$manager->executeCommand('test', new MongoDB\Driver\Command([
'create' => 'asteroids',
'capped' => true,
'size' => 1048576,
]));

while (true) {
$bulkWrite = new MongoDB\Driver\BulkWrite;
$bulkWrite->insert(['createdAt' => new MongoDB\BSON\UTCDateTime]);
$manager->executeBulkWrite('test.asteroids', $bulkWrite);

sleep(1);
}

?>

With the producer script still running, a second consumer script may be executed to read the inserted documents using a tailable cursor, indicated by the tailable and awaitData options to MongoDB\Driver\Query::__construct().

<?php

$manager = new MongoDB\Driver\Manager;

$query = new MongoDB\Driver\Query([], [
'tailable' => true,
'awaitData' => true,
]);

$cursor = $manager->executeQuery('test.asteroids', $query);

$iterator = new IteratorIterator($cursor);

$iterator->rewind();

while (true) {
if ($iterator->valid()) {
$document = $iterator->current();
printf("Consumed document created at: %s\n", $document->createdAt);
}

$iterator->next();
}

?>

The consumer script will start by quickly printing all available documents in the capped collection (as if foreach had been used); however, it will not terminate upon reaching the end of the initial result set. Since the cursor is tailable, calling IteratorIterator::next() will block and wait for additional results. IteratorIterator::valid() is also used to check if there is actually data available to read at each step.

Nota: This example uses the awaitData query option to instruct the server to block for a short period (e.g. one second) at the end of the result set before returning a response to the driver. This is used to prevent the driver from aggressively polling the server when there are no results available. The maxAwaitTimeMS option may be used in conjunction with tailable and awaitData to specify the amount of time that the server should block when it reaches the end of the result set.

Erros/Exceções

When iterating over the cursor object, BSON data is converted into PHP variables. This iteration can cause the following Exceptions:

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.
  • Lança uma exceção MongoDB\Driver\Exception\UnexpectedValueException se a entrada não contiver exatamente um documento BSON. Os possíveis motivos incluem, mas não estão limitados a, BSON inválido, dados extras (depois de ler um documento BSON) ou um erro inesperado da » libbson.

Índice

  • MongoDB\Driver\Cursor::__construct — Create a new Cursor (not used)
  • MongoDB\Driver\Cursor::current — Returns the current element
  • MongoDB\Driver\Cursor::getId — Returns the ID for this cursor
  • MongoDB\Driver\Cursor::getServer — Returns the server associated with this cursor
  • MongoDB\Driver\Cursor::isDead — Checks if the cursor is exhausted or may have additional results
  • MongoDB\Driver\Cursor::key — Returns the current result's index within the cursor
  • MongoDB\Driver\Cursor::next — Advances the cursor to the next result
  • MongoDB\Driver\Cursor::rewind — Rewind the cursor to the first result
  • MongoDB\Driver\Cursor::setTypeMap — Sets a type map to use for BSON unserialization
  • MongoDB\Driver\Cursor::toArray — Returns an array containing all results for this cursor
  • MongoDB\Driver\Cursor::valid — Checks if the current position in the cursor is valid


Create a new Cursor (not used)

  • « MongoDB\Driver\Cursor
  • MongoDB\Driver\Cursor::current »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Create a new Cursor (not used)

MongoDB\Driver\Cursor::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::__construct — Create a new Cursor (not used)

Descrição

final private MongoDB\Driver\Cursor::__construct()

MongoDB\Driver\Cursor objects are returned as the result of an executed command or query and cannot be constructed directly.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeQuery() - Execute a database query
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server
  • MongoDB\Driver\Server::executeQuery() - Execute a database query on this server


Returns the current element

  • « MongoDB\Driver\Cursor::__construct
  • MongoDB\Driver\Cursor::getId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the current element

MongoDB\Driver\Cursor::current

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::current — Returns the current element

Descrição

public MongoDB\Driver\Cursor::current(): array|object|null

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current result document as an array or object, depending on the cursor's type map. If iteration has not started or the current position is not valid, null will be returned.

Veja Também

  • Iterator::current() - Retorna o elemento atual


Returns the ID for this cursor

  • « MongoDB\Driver\Cursor::current
  • MongoDB\Driver\Cursor::getServer »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the ID for this cursor

MongoDB\Driver\Cursor::getId

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getId — Returns the ID for this cursor

Descrição

final public MongoDB\Driver\Cursor::getId(): MongoDB\Driver\CursorId

Returns the MongoDB\Driver\CursorId associated with this cursor. A cursor ID uniquely identifies the cursor on the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the MongoDB\Driver\CursorId for this cursor.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Cursor::getId() example

<?php

/* In this example, we insert several documents into the collection and specify
* a smaller batchSize to ensure that the first batch contains only a subset of
* our results and the cursor remains open on the server. */
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([], ['batchSize' => 2]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump($cursor->getId());

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\Driver\CursorId)#5 (1) {
  ["id"]=>
  int(94810124093)
}

Veja Também

  • MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::__toString() - String representation of the cursor ID


Returns the server associated with this cursor

  • « MongoDB\Driver\Cursor::getId
  • MongoDB\Driver\Cursor::isDead »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the server associated with this cursor

MongoDB\Driver\Cursor::getServer

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getServer — Returns the server associated with this cursor

Descrição

final public MongoDB\Driver\Cursor::getServer(): MongoDB\Driver\Server

Returns the MongoDB\Driver\Server associated with this cursor. This is the server that executed the MongoDB\Driver\Query or MongoDB\Driver\Command.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the MongoDB\Driver\Server associated with this cursor.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Cursor::getServer() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump($cursor->getServer());

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\Driver\Server)#5 (10) {
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["type"]=>
  int(1)
  ["is_primary"]=>
  bool(false)
  ["is_secondary"]=>
  bool(false)
  ["is_arbiter"]=>
  bool(false)
  ["is_hidden"]=>
  bool(false)
  ["is_passive"]=>
  bool(false)
  ["last_hello_response"]=>
  array(8) {
    ["isWritablePrimary"]=>
    bool(true)
    ["maxBsonObjectSize"]=>
    int(16777216)
    ["maxMessageSizeBytes"]=>
    int(48000000)
    ["maxWriteBatchSize"]=>
    int(1000)
    ["localTime"]=>
    object(MongoDB\BSON\UTCDateTime)#6 (1) {
      ["milliseconds"]=>
      int(1446505367907)
    }
    ["maxWireVersion"]=>
    int(3)
    ["minWireVersion"]=>
    int(0)
    ["ok"]=>
    float(1)
  }
  ["round_trip_time"]=>
  int(584)
}

Veja Também

  • MongoDB\Driver\Server


Checks if the cursor is exhausted or may have additional results

  • « MongoDB\Driver\Cursor::getServer
  • MongoDB\Driver\Cursor::key »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Checks if the cursor is exhausted or may have additional results

MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDead — Checks if the cursor is exhausted or may have additional results

Descrição

final public MongoDB\Driver\Cursor::isDead(): bool

Checks whether there are definitely no additional results available on the cursor. This method is similar to the » cursor.isExhausted() method in the MongoDB shell and is primarily useful when iterating » tailable cursors.

A cursor has no additional results and is considered "dead" when one of the following is true:

  • The current batch has been fully iterated and the cursor ID is zero (i.e. a » getMore cannot be issued).
  • An error was encountered while iterating the cursor.
  • The cursor reached its configured limit.

By design, it is not possible to always determine whether a cursor has additional results. The cases where a cursor may have more data available is as follows:

  • There are additional documents in the current batch, which are buffered on the client side. Iterating will fetch a document from the local buffer.
  • There are no additional documents in the current batch (i.e. local buffer), but the cursor ID is non-zero. Iterating will request more documents from the server via a » getMore operation, which may or may not return additional results and/or indicate that the cursor has been closed on the server by returning zero for its ID.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if there are definitely no additional results available on the cursor, and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Cursor::isDead() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);

$iterator = new IteratorIterator($cursor);

$iterator->rewind();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

?>

O exemplo acima produzirá:

bool(false)
bool(false)
bool(false)
bool(true)

Veja Também

  • » Tailable Cursors in the MongoDB manual
  • » cursor.isExhausted() in the MongoDB manual


Returns the current result's index within the cursor

  • « MongoDB\Driver\Cursor::isDead
  • MongoDB\Driver\Cursor::next »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the current result's index within the cursor

MongoDB\Driver\Cursor::key

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::key — Returns the current result's index within the cursor

Descrição

public MongoDB\Driver\Cursor::key(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current result's numeric index within the cursor.

Veja Também

  • Iterator::key() - Retorna a chave do elemento atual


Advances the cursor to the next result

  • « MongoDB\Driver\Cursor::key
  • MongoDB\Driver\Cursor::rewind »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Advances the cursor to the next result

MongoDB\Driver\Cursor::next

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::next — Advances the cursor to the next result

Descrição

public MongoDB\Driver\Cursor::next(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Moves the current position to the next element in the cursor.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.

Veja Também

  • Iterator::next() - Move para o próximo elemento


Rewind the cursor to the first result

  • « MongoDB\Driver\Cursor::next
  • MongoDB\Driver\Cursor::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Rewind the cursor to the first result

MongoDB\Driver\Cursor::rewind

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::rewind — Rewind the cursor to the first result

Descrição

public MongoDB\Driver\Cursor::rewind(): void

If the cursor has advanced beyond its first position, it can no longer be rewound.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

null.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\LogicException if this method is called after the cursor has advanced beyond its first position.

Veja Também

  • Iterator::rewind() - Retreocede o Iterator para o primeiro elemento


Sets a type map to use for BSON unserialization

  • « MongoDB\Driver\Cursor::rewind
  • MongoDB\Driver\Cursor::toArray »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Sets a type map to use for BSON unserialization

MongoDB\Driver\Cursor::setTypeMap

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::setTypeMap — Sets a type map to use for BSON unserialization

Descrição

final public MongoDB\Driver\Cursor::setTypeMap(array $typemap): void

Sets the type map configuration to use when unserializing the BSON results into PHP values.

Parâmetros

typeMap (array)

Configuração de mapeamento de tipos.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

When iterating over the cursor, the following exceptions can also be thrown due to an incorrect type map configuration:

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.

Exemplos

Exemplo #1 MongoDB\Driver\Cursor::setTypeMap() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$id = $bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);

$query = new MongoDB\Driver\Query(['_id' => $id]);
$cursor = $manager->executeQuery('db.collection', $query);
$cursor->setTypeMap(['root' => 'array']);

foreach ($cursor as $document) {
var_dump($document);
}

?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectId)#6 (1) {
    ["oid"]=>
    string(24) "56424fb76118fd3267180741"
  }
  ["x"]=>
  int(1)
}

Veja Também

  • Persisting Data


Returns an array containing all results for this cursor

  • « MongoDB\Driver\Cursor::setTypeMap
  • MongoDB\Driver\Cursor::valid »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns an array containing all results for this cursor

MongoDB\Driver\Cursor::toArray

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::toArray — Returns an array containing all results for this cursor

Descrição

final public MongoDB\Driver\Cursor::toArray(): array

Iterates the cursor and returns its results in an array. MongoDB\Driver\Cursor::setTypeMap() may be used to control how documents are unserialized into PHP values.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array containing all results for this cursor.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Cursor::toArray() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$query = new MongoDB\Driver\Query([]);
$cursor = $manager->executeQuery('db.collection', $query);

var_dump($cursor->toArray());

?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  object(stdClass)#6 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#5 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf61"
    }
    ["x"]=>
    int(1)
  }
  [1]=>
  object(stdClass)#8 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#7 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf62"
    }
    ["x"]=>
    int(2)
  }
  [2]=>
  object(stdClass)#10 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#9 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf63"
    }
    ["x"]=>
    int(3)
  }
}

Veja Também

  • MongoDB\Driver\Cursor::setTypeMap() - Sets a type map to use for BSON unserialization


Checks if the current position in the cursor is valid

  • « MongoDB\Driver\Cursor::toArray
  • MongoDB\Driver\CursorId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Checks if the current position in the cursor is valid

MongoDB\Driver\Cursor::valid

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::valid — Checks if the current position in the cursor is valid

Descrição

public MongoDB\Driver\Cursor::valid(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the current cursor position is valid, false otherwise.

Veja Também

  • Iterator::valid() - Verifica se a posição atual é válida


The MongoDB\Driver\CursorId class

(mongodb >=1.0.0)

Introdução

The MongoDB\Driver\CursorID class is a value object that represents a cursor ID. Instances of this class are returned by MongoDB\Driver\Cursor::getId().

Resumo da classe

final class MongoDB\Driver\CursorId implements Serializable, Stringable {
/* Métodos */
final private __construct()
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.
PECL mongodb 1.7.0 | Implements Serializable.

Índice

  • MongoDB\Driver\CursorId::__construct — Create a new CursorId (not used)
  • MongoDB\Driver\CursorId::serialize — Serialize a CursorId
  • MongoDB\Driver\CursorId::__toString — String representation of the cursor ID
  • MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId


Create a new CursorId (not used)

  • « MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::serialize »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Create a new CursorId (not used)

MongoDB\Driver\CursorId::__construct

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__construct — Create a new CursorId (not used)

Descrição

final private MongoDB\Driver\CursorId::__construct()

MongoDB\Driver\CursorId objects are returned from MongoDB\Driver\Cursor::getId() and cannot be constructed directly.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • MongoDB\Driver\Cursor::getId() - Returns the ID for this cursor


Serialize a CursorId

  • « MongoDB\Driver\CursorId::__construct
  • MongoDB\Driver\CursorId::__toString »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Serialize a CursorId

MongoDB\Driver\CursorId::serialize

(mongodb >=1.7.0)

MongoDB\Driver\CursorId::serialize — Serialize a CursorId

Descrição

final public MongoDB\Driver\CursorId::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\Driver\CursorId.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\CursorId::unserialize() - Unserialize a CursorId
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


String representation of the cursor ID

  • « MongoDB\Driver\CursorId::serialize
  • MongoDB\Driver\CursorId::unserialize »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • String representation of the cursor ID

MongoDB\Driver\CursorId::__toString

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__toString — String representation of the cursor ID

Descrição

final public MongoDB\Driver\CursorId::__toString(): string

Returns the string representation of the cursor ID.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of the cursor ID.

Exemplos

Exemplo #1 MongoDB\Driver\CursorId::__toString() example

<?php

/* In this example, we insert several documents into the collection and specify
* a smaller batchSize to ensure that the first batch contains only a subset of
* our results and the cursor remains open on the server. */
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([], ['batchSize' => 2]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump((string) $cursor->getId());

?>

O exemplo acima produzirá algo semelhante a:

string(11) "98061641158"

Veja Também

  • MongoDB\Driver\Cursor::getId() - Returns the ID for this cursor


Unserialize a CursorId

  • « MongoDB\Driver\CursorId::__toString
  • MongoDB\Driver\CursorInterface »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Unserialize a CursorId

MongoDB\Driver\CursorId::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId

Descrição

final public MongoDB\Driver\CursorId::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\Driver\CursorId.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\Driver\CursorId::serialize() - Serialize a CursorId
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\Driver\CursorInterface interface

(mongodb >=1.6.0)

Introdução

This interface is implemented by MongoDB\Driver\Cursor to be used as a parameter, return, or property type in userland classes.

Resumo da classe

class MongoDB\Driver\CursorInterface implements Traversable {
/* Métodos */
abstract public getId(): MongoDB\Driver\CursorId
abstract public getServer(): MongoDB\Driver\Server
abstract public isDead(): bool
abstract public setTypeMap(array $typemap): void
abstract public toArray(): array
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\Driver\CursorInterface::getId — Returns the ID for this cursor
  • MongoDB\Driver\CursorInterface::getServer — Returns the server associated with this cursor
  • MongoDB\Driver\CursorInterface::isDead — Checks if the cursor may have additional results
  • MongoDB\Driver\CursorInterface::setTypeMap — Sets a type map to use for BSON unserialization
  • MongoDB\Driver\CursorInterface::toArray — Returns an array containing all results for this cursor


Returns the ID for this cursor

  • « MongoDB\Driver\CursorInterface
  • MongoDB\Driver\CursorInterface::getServer »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Returns the ID for this cursor

MongoDB\Driver\CursorInterface::getId

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::getId — Returns the ID for this cursor

Descrição

abstract public MongoDB\Driver\CursorInterface::getId(): MongoDB\Driver\CursorId

Returns the MongoDB\Driver\CursorId associated with this cursor. A cursor ID uniquely identifies the cursor on the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the MongoDB\Driver\CursorId for this cursor.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Cursor::getId() - Returns the ID for this cursor
  • MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::__toString() - String representation of the cursor ID


Returns the server associated with this cursor

  • « MongoDB\Driver\CursorInterface::getId
  • MongoDB\Driver\CursorInterface::isDead »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Returns the server associated with this cursor

MongoDB\Driver\CursorInterface::getServer

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::getServer — Returns the server associated with this cursor

Descrição

abstract public MongoDB\Driver\CursorInterface::getServer(): MongoDB\Driver\Server

Returns the MongoDB\Driver\Server associated with this cursor. This is the server that executed the MongoDB\Driver\Query or MongoDB\Driver\Command.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the MongoDB\Driver\Server associated with this cursor.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Cursor::getServer() - Returns the server associated with this cursor
  • MongoDB\Driver\Server


Checks if the cursor may have additional results

  • « MongoDB\Driver\CursorInterface::getServer
  • MongoDB\Driver\CursorInterface::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Checks if the cursor may have additional results

MongoDB\Driver\CursorInterface::isDead

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::isDead — Checks if the cursor may have additional results

Descrição

abstract public MongoDB\Driver\CursorInterface::isDead(): bool

Checks whether the cursor may have additional results available to read. A cursor is initially "alive" but may become "dead" for any of the following reasons:

  • Advancing a non-tailable cursor did not return a document
  • The cursor encountered an error
  • The cursor read its last batch to completion
  • The cursor reached its configured limit
This is primarily useful with tailable cursors.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if additional results are not available, and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Cursor::isDead() - Checks if the cursor is exhausted or may have additional results


Sets a type map to use for BSON unserialization

  • « MongoDB\Driver\CursorInterface::isDead
  • MongoDB\Driver\CursorInterface::toArray »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Sets a type map to use for BSON unserialization

MongoDB\Driver\CursorInterface::setTypeMap

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::setTypeMap — Sets a type map to use for BSON unserialization

Descrição

abstract public MongoDB\Driver\CursorInterface::setTypeMap(array $typemap): void

Sets the type map configuration to use when unserializing the BSON results into PHP values.

Parâmetros

typeMap (array)

Configuração de mapeamento de tipos.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Cursor::setTypeMap() - Sets a type map to use for BSON unserialization
  • Persisting Data


Returns an array containing all results for this cursor

  • « MongoDB\Driver\CursorInterface::setTypeMap
  • MongoDB\Driver\Server »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Returns an array containing all results for this cursor

MongoDB\Driver\CursorInterface::toArray

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::toArray — Returns an array containing all results for this cursor

Descrição

abstract public MongoDB\Driver\CursorInterface::toArray(): array

Iterates the cursor and returns its results in an array. MongoDB\Driver\CursorInterface::setTypeMap() may be used to control how documents are unserialized into PHP values.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array containing all results for this cursor.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Cursor::toArray() - Returns an array containing all results for this cursor
  • MongoDB\Driver\CursorInterface::setTypeMap() - Sets a type map to use for BSON unserialization


The MongoDB\Driver\Server class

(mongodb >=1.0.0)

Introdução

Resumo da classe

final class MongoDB\Driver\Server {
/* Constantes */
const int TYPE_UNKNOWN = 0;
const int TYPE_STANDALONE = 1;
const int TYPE_MONGOS = 2;
const int TYPE_POSSIBLE_PRIMARY = 3;
const int TYPE_RS_PRIMARY = 4;
const int TYPE_RS_SECONDARY = 5;
const int TYPE_RS_ARBITER = 6;
const int TYPE_RS_OTHER = 7;
const int TYPE_RS_GHOST = 8;
const int TYPE_LOAD_BALANCER = 9;
/* Métodos */
final private __construct()
final public executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, array|MongoDB\Driver\WriteConcern|null $options = null): MongoDB\Driver\WriteResult
final public executeCommand(string $db, MongoDB\Driver\Command $command, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeReadCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeReadWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public getHost(): string
final public getInfo(): array
final public getLatency(): ?integer
final public getPort(): int
final public getServerDescription(): MongoDB\Driver\ServerDescription
final public getTags(): array
final public getType(): int
final public isArbiter(): bool
final public isHidden(): bool
final public isPassive(): bool
final public isPrimary(): bool
final public isSecondary(): bool
}

Constantes pré-definidas

MongoDB\Driver\Server::TYPE_UNKNOWN

Unknown server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_STANDALONE

Standalone server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_MONGOS

Mongos server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_POSSIBLE_PRIMARY

Replica set possible primary server type, returned by MongoDB\Driver\Server::getType().

A server may be identified as a possible primary if it has not yet been checked but another memory of the replica set thinks it is the primary.

MongoDB\Driver\Server::TYPE_RS_PRIMARY

Replica set primary server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_SECONDARY

Replica set secondary server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_ARBITER

Replica set arbiter server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_OTHER

Replica set other server type, returned by MongoDB\Driver\Server::getType().

Such servers may be hidden, starting up, or recovering. They cannot be queried, but their hosts lists are useful for discovering the current replica set configuration.

MongoDB\Driver\Server::TYPE_RS_GHOST

Replica set ghost server type, returned by MongoDB\Driver\Server::getType().

Servers may be identified as such in at least three situations: briefly during server startup; in an uninitialized replica set; or when the server is shunned (i.e. removed from the replica set config). They cannot be queried, nor can their host list be used to discover the current replica set configuration; however, the client may monitor this server in hope that it transitions to a more useful state.

MongoDB\Driver\Server::TYPE_LOAD_BALANCER

Load balancer server type, returned by MongoDB\Driver\Server::getType().

Registro de Alterações

Versão | Descrição
PECL mongodb 1.11.0 | Added the MongoDB\Driver\Server::TYPE_LOAD_BALANCER constant.

Índice

  • MongoDB\Driver\Server::__construct — Create a new Server (not used)
  • MongoDB\Driver\Server::executeBulkWrite — Execute one or more write operations on this server
  • MongoDB\Driver\Server::executeCommand — Execute a database command on this server
  • MongoDB\Driver\Server::executeQuery — Execute a database query on this server
  • MongoDB\Driver\Server::executeReadCommand — Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeReadWriteCommand — Execute a database command that reads and writes on this server
  • MongoDB\Driver\Server::executeWriteCommand — Execute a database command that writes on this server
  • MongoDB\Driver\Server::getHost — Returns the hostname of this server
  • MongoDB\Driver\Server::getInfo — Returns an array of information describing this server
  • MongoDB\Driver\Server::getLatency — Returns the latency of this server in milliseconds
  • MongoDB\Driver\Server::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Server::getServerDescription — Returns a ServerDescription for this server
  • MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set
  • MongoDB\Driver\Server::getType — Returns an integer denoting the type of this server
  • MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set
  • MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set
  • MongoDB\Driver\Server::isPassive — Checks if this server is a passive member of a replica set
  • MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set
  • MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set


Create a new Server (not used)

  • « MongoDB\Driver\Server
  • MongoDB\Driver\Server::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Server
  • Create a new Server (not used)

MongoDB\Driver\Server::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Server::__construct — Create a new Server (not used)

Descrição

final private MongoDB\Driver\Server::__construct()

MongoDB\Driver\Server objects are created internally by MongoDB\Driver\Manager when a database connection is established and may be returned by MongoDB\Driver\Manager::getServers() and MongoDB\Driver\Manager::selectServer().

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • MongoDB\Driver\Manager::getServers() - Return the servers to which this manager is connected
  • MongoDB\Driver\Manager::selectServer() - Select a server matching a read preference


Execute one or more write operations on this server

  • « MongoDB\Driver\Server::__construct
  • MongoDB\Driver\Server::executeCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute one or more write operations on this server

MongoDB\Driver\Server::executeBulkWrite

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeBulkWrite — Execute one or more write operations on this server

Descrição

final public MongoDB\Driver\Server::executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, array|MongoDB\Driver\WriteConcern|null $options = null): MongoDB\Driver\WriteResult

Executes one or more write operations on this server.

A MongoDB\Driver\BulkWrite can be constructed with one or more write operations of varying types (e.g. updates, deletes, and inserts). The driver will attempt to send operations of the same type to the server in as few requests as possible to optimize round trips.

Parâmetros

namespace (string)

Um namespace totalmente qualificado (por exemplo, "nomeDoBancoDados.nomeDaColecao").

bulk (MongoDB\Driver\BulkWrite)

As gravações a serem executadas.

options

options
Option Type Description
session MongoDB\Driver\Session

Uma sessão para associar à operação.

writeConcern MongoDB\Driver\WriteConcern

Um write concern a ser aplicado à operação.

Valor Retornado

Retorna MongoDB\Driver\WriteResult em caso de sucesso.

Erros/Exceções

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if bulk does not contain any write operations.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if bulk has already been executed. MongoDB\Driver\BulkWrite objects may not be executed multiple times.
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada em combinação com um write concern não confirmado.
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Lança uma exceção MongoDB\Driver\Exception\BulkWriteException em caso de qualquer falha de escrita (por exemplo, erro de escrita, falha ao aplicar um write concern).
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\WriteConcern object.
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\InvalidArgumentException is now thrown if bulk does not contain any write operations. Previously, a MongoDB\Driver\Exception\BulkWriteException was thrown.

Notas

Nota: É responsabilidade do invocador garantir que o servidor seja capaz de executar a operação de escrita. Por exemplo, executar uma operação de escrita em um servidor secundário (excluindo seu banco de dados "local") falhará.

Veja Também

  • MongoDB\Driver\BulkWrite
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations


Execute a database command on this server

  • « MongoDB\Driver\Server::executeBulkWrite
  • MongoDB\Driver\Server::executeQuery »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command on this server

MongoDB\Driver\Server::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeCommand — Execute a database command on this server

Descrição

final public MongoDB\Driver\Server::executeCommand(string $db, MongoDB\Driver\Command $command, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor

Executes the command on this server.

This method applies no special logic to the command. Although this method accepts "readConcern" and "writeConcern" options, which will be incorporated into the command document, those options will not default to corresponding values from the MongoDB Connection URI nor will the MongoDB server version be taken into account. Users are therefore encouraged to use specific read and/or write command methods if possible.

Nota: A opção "readPreference" não controla o servidor ao qual o driver emite a operação; ela sempre será executada neste objeto servidor. Em vez disso, ela pode ser usada ao emitir a operação para um servidor secundário (de uma conexão de conjunto de réplicas, não autônomas) ou nós mongo para garantir que o driver defina o protocolo de conexão de acordo ou adicione a preferência de leitura à operação, respectivamente.

Parâmetros

db (string)

O nome do banco de dados no qual executar o comando.

command (MongoDB\Driver\Command)

O comando a ser executado.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Um read concern a ser aplicado à operação.

Esta opção está disponível no MongoDB 3.2+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

readPreference MongoDB\Driver\ReadPreference

Uma preferência de leitura a ser usada para selecionar um servidor para a operação.

session MongoDB\Driver\Session

Uma sessão para associar à operação.

writeConcern MongoDB\Driver\WriteConcern

Um write concern a ser aplicado à operação.

Aviso

Se uma "session" que tem uma transação em andamento estiver sendo usada, uma opção "readConcern" ou "writeConcern" não pode ser especificada. Isso resultará em uma exceção MongoDB\Driver\Exception\InvalidArgumentException sendo lançada. Em vez disso, essas duas opções devem ser definidas ao criar a transação com MongoDB\Driver\Session::startTransaction().

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada com uma transação associada em combinação com uma opção "readConcern" ou "writeConcern".
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada em combinação com um write concern não confirmado.
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

Notas

Nota: É responsabilidade do invocador garantir que o servidor seja capaz de executar a operação de escrita. Por exemplo, executar uma operação de escrita em um servidor secundário (excluindo seu banco de dados "local") falhará.

Veja Também

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command


Execute a database query on this server

  • « MongoDB\Driver\Server::executeCommand
  • MongoDB\Driver\Server::executeReadCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database query on this server

MongoDB\Driver\Server::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeQuery — Execute a database query on this server

Descrição

final public MongoDB\Driver\Server::executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor

Executes the query on this server.

Nota: The "readPreference" option does not control the server to which the driver issues the operation; it will always be executed on this server object. Instead, it may be used when issuing the operation to a secondary (from a replica set connection, not standalone) or mongos node to ensure that the driver sets the wire protocol accordingly or adds the read preference to the operation, respectively.

Parâmetros

namespace (string)

Um namespace totalmente qualificado (por exemplo, "nomeDoBancoDados.nomeDaColecao").

query (MongoDB\Driver\Query)

A consulta a ser executada.

options

options
Option Type Description
readPreference MongoDB\Driver\ReadPreference

Uma preferência de leitura a ser usada para selecionar um servidor para a operação.

session MongoDB\Driver\Session

Uma sessão para associar à operação.

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid query operators).

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

Veja Também

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::executeQuery() - Execute a database query


Execute a database command that reads on this server

  • « MongoDB\Driver\Server::executeQuery
  • MongoDB\Driver\Server::executeReadWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command that reads on this server

MongoDB\Driver\Server::executeReadCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeReadCommand — Execute a database command that reads on this server

Descrição

final public MongoDB\Driver\Server::executeReadCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Executes the command on this server.

This method will apply logic that is specific to commands that read (e.g. » count) and take the MongoDB server version into account. The "readConcern" option will default to the corresponding value from the MongoDB Connection URI.

Nota: A opção "readPreference" não controla o servidor ao qual o driver emite a operação; ela sempre será executada neste objeto servidor. Em vez disso, ela pode ser usada ao emitir a operação para um servidor secundário (de uma conexão de conjunto de réplicas, não autônomas) ou nós mongo para garantir que o driver defina o protocolo de conexão de acordo ou adicione a preferência de leitura à operação, respectivamente.

Parâmetros

db (string)

O nome do banco de dados no qual executar o comando.

command (MongoDB\Driver\Command)

O comando a ser executado.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Um read concern a ser aplicado à operação.

Esta opção está disponível no MongoDB 3.2+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

readPreference MongoDB\Driver\ReadPreference

Uma preferência de leitura a ser usada para selecionar um servidor para a operação.

session MongoDB\Driver\Session

Uma sessão para associar à operação.

Aviso

Se uma "session" que tem uma transação em andamento estiver sendo usada, uma opção "readConcern" ou "writeConcern" não pode ser especificada. Isso resultará em uma exceção MongoDB\Driver\Exception\InvalidArgumentException sendo lançada. Em vez disso, essas duas opções devem ser definidas ao criar a transação com MongoDB\Driver\Session::startTransaction().

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada com uma transação associada em combinação com uma opção "readConcern" ou "writeConcern".
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Veja Também

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads


Execute a database command that reads and writes on this server

  • « MongoDB\Driver\Server::executeReadCommand
  • MongoDB\Driver\Server::executeWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command that reads and writes on this server

MongoDB\Driver\Server::executeReadWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeReadWriteCommand — Execute a database command that reads and writes on this server

Descrição

final public MongoDB\Driver\Server::executeReadWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Executes the command on this server.

This method will apply logic that is specific to commands that read and write (e.g. » aggregate) and take the MongoDB server version into account. The "readConcern" and "writeConcern" options will default to the corresponding values from the MongoDB Connection URI.

Parâmetros

db (string)

O nome do banco de dados no qual executar o comando.

command (MongoDB\Driver\Command)

O comando a ser executado.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Um read concern a ser aplicado à operação.

Esta opção está disponível no MongoDB 3.2+ e resultará em uma exceção em tempo de execução se for especificada para uma versão de servidor mais antiga.

session MongoDB\Driver\Session

Uma sessão para associar à operação.

writeConcern MongoDB\Driver\WriteConcern

Um write concern a ser aplicado à operação.

Aviso

Se uma "session" que tem uma transação em andamento estiver sendo usada, uma opção "readConcern" ou "writeConcern" não pode ser especificada. Isso resultará em uma exceção MongoDB\Driver\Exception\InvalidArgumentException sendo lançada. Em vez disso, essas duas opções devem ser definidas ao criar a transação com MongoDB\Driver\Session::startTransaction().

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada com uma transação associada em combinação com uma opção "readConcern" ou "writeConcern".
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada em combinação com um write concern não confirmado.
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Notas

Nota: É responsabilidade do invocador garantir que o servidor seja capaz de executar a operação de escrita. Por exemplo, executar uma operação de escrita em um servidor secundário (excluindo seu banco de dados "local") falhará.

Veja Também

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes


Execute a database command that writes on this server

  • « MongoDB\Driver\Server::executeReadWriteCommand
  • MongoDB\Driver\Server::getHost »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command that writes on this server

MongoDB\Driver\Server::executeWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeWriteCommand — Execute a database command that writes on this server

Descrição

final public MongoDB\Driver\Server::executeWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Executes the command on this server.

This method will apply logic that is specific to commands that write (e.g. » drop) and take the MongoDB server version into account. The "writeConcern" option will default to the corresponding value from the MongoDB Connection URI.

Nota: This method is not intended to be used to execute » insert, » update, or » delete commands. Users are encouraged to use MongoDB\Driver\Server::executeBulkWrite() for those commands.

Parâmetros

db (string)

O nome do banco de dados no qual executar o comando.

command (MongoDB\Driver\Command)

O comando a ser executado.

options

options
Option Type Description
session MongoDB\Driver\Session

Uma sessão para associar à operação.

writeConcern MongoDB\Driver\WriteConcern

Um write concern a ser aplicado à operação.

Aviso

Se uma "session" que tem uma transação em andamento estiver sendo usada, uma opção "readConcern" ou "writeConcern" não pode ser especificada. Isso resultará em uma exceção MongoDB\Driver\Exception\InvalidArgumentException sendo lançada. Em vez disso, essas duas opções devem ser definidas ao criar a transação com MongoDB\Driver\Session::startTransaction().

Valor Retornado

Retorna MongoDB\Driver\Cursor em caso de sucesso.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada com uma transação associada em combinação com uma opção "readConcern" ou "writeConcern".
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException se a opção "session" for usada em combinação com um write concern não confirmado.
  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Lança uma exceção MongoDB\Driver\Exception\ConnectionException se a conexão com o servidor falhar (por outros motivos além da autenticação).
  • Lança uma exceção MongoDB\Driver\Exception\AuthenticationException se a autenticação for necessária e falhar.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Notas

Nota: É responsabilidade do invocador garantir que o servidor seja capaz de executar a operação de escrita. Por exemplo, executar uma operação de escrita em um servidor secundário (excluindo seu banco de dados "local") falhará.

Veja Também

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes


Returns the hostname of this server

  • « MongoDB\Driver\Server::executeWriteCommand
  • MongoDB\Driver\Server::getInfo »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns the hostname of this server

MongoDB\Driver\Server::getHost

(mongodb >=1.0.0)

MongoDB\Driver\Server::getHost — Returns the hostname of this server

Descrição

final public MongoDB\Driver\Server::getHost(): string

Returns the hostname of this server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the hostname of this server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Server::getHost() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getHost());

?>

O exemplo acima produzirá:

string(9) "localhost"

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server
  • MongoDB\Driver\ServerDescription::getHost() - Returns the hostname of this server


Returns an array of information describing this server

  • « MongoDB\Driver\Server::getHost
  • MongoDB\Driver\Server::getLatency »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns an array of information describing this server

MongoDB\Driver\Server::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\Server::getInfo — Returns an array of information describing this server

Descrição

final public MongoDB\Driver\Server::getInfo(): array

Returns an array of information describing the server. This array is derived from the most recent » hello command response obtained through » server monitoring.

Nota:

When the driver is connected to a load balancer, this method will return the backing server's » hello command response from the initial connection handshake. This is in contrast to other methods (e.g. MongoDB\Driver\Server::getType()), which will return information about the load balancer itself.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of information describing this server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Server::getInfo() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/');

$rp = new MongoDB\Driver\ReadPreference('primary');
$server = $manager->selectServer($rp);

var_dump($server->getInfo());

?>

O exemplo acima produzirá algo semelhante a:

array(23) {
  ["helloOk"]=>
  bool(true)
  ["topologyVersion"]=>
  array(2) {
    ["processId"]=>
    object(MongoDB\BSON\ObjectId)#4 (1) {
      ["oid"]=>
      string(24) "617b6d696a3a89d2f77e6df0"
    }
    ["counter"]=>
    int(6)
  }
  ["hosts"]=>
  array(1) {
    [0]=>
    string(15) "localhost:27017"
  }
  ["setName"]=>
  string(3) "rs0"
  ["setVersion"]=>
  int(1)
  ["ismaster"]=>
  bool(true)
  ["secondary"]=>
  bool(false)
  ["primary"]=>
  string(15) "localhost:27017"
  ["me"]=>
  string(15) "localhost:27017"
  ["electionId"]=>
  object(MongoDB\BSON\ObjectId)#5 (1) {
    ["oid"]=>
    string(24) "7fffffff0000000000000001"
  }
  ["lastWrite"]=>
  array(4) {
    ["opTime"]=>
    array(2) {
      ["ts"]=>
      object(MongoDB\BSON\Timestamp)#6 (2) {
        ["increment"]=>
        string(1) "1"
        ["timestamp"]=>
        string(10) "1635478989"
      }
      ["t"]=>
      int(1)
    }
    ["lastWriteDate"]=>
    object(MongoDB\BSON\UTCDateTime)#7 (1) {
      ["milliseconds"]=>
      string(13) "1635478989000"
    }
    ["majorityOpTime"]=>
    array(2) {
      ["ts"]=>
      object(MongoDB\BSON\Timestamp)#8 (2) {
        ["increment"]=>
        string(1) "1"
        ["timestamp"]=>
        string(10) "1635478989"
      }
      ["t"]=>
      int(1)
    }
    ["majorityWriteDate"]=>
    object(MongoDB\BSON\UTCDateTime)#9 (1) {
      ["milliseconds"]=>
      string(13) "1635478989000"
    }
  }
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["maxMessageSizeBytes"]=>
  int(48000000)
  ["maxWriteBatchSize"]=>
  int(100000)
  ["localTime"]=>
  object(MongoDB\BSON\UTCDateTime)#10 (1) {
    ["milliseconds"]=>
    string(13) "1635478992136"
  }
  ["logicalSessionTimeoutMinutes"]=>
  int(30)
  ["connectionId"]=>
  int(3)
  ["minWireVersion"]=>
  int(0)
  ["maxWireVersion"]=>
  int(13)
  ["readOnly"]=>
  bool(false)
  ["ok"]=>
  float(1)
  ["$clusterTime"]=>
  array(2) {
    ["clusterTime"]=>
    object(MongoDB\BSON\Timestamp)#11 (2) {
      ["increment"]=>
      string(1) "1"
      ["timestamp"]=>
      string(10) "1635478989"
    }
    ["signature"]=>
    array(2) {
      ["hash"]=>
      object(MongoDB\BSON\Binary)#12 (2) {
        ["data"]=>
        string(20) ""
        ["type"]=>
        int(0)
      }
      ["keyId"]=>
      int(0)
    }
  }
  ["operationTime"]=>
  object(MongoDB\BSON\Timestamp)#13 (2) {
    ["increment"]=>
    string(1) "1"
    ["timestamp"]=>
    string(10) "1635478989"
  }
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.11.0 | When the driver is connected to a load balancer, this method returns the backing server's hello command response from the initial connection handshake.

Veja Também

  • MongoDB\Driver\ServerDescription::getHelloResponse() - Returns the server's most recent "hello" response
  • » hello command in the MongoDB manual
  • » Server Discovery and Monitoring Specification


Returns the latency of this server in milliseconds

  • « MongoDB\Driver\Server::getInfo
  • MongoDB\Driver\Server::getPort »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns the latency of this server in milliseconds

MongoDB\Driver\Server::getLatency

(mongodb >=1.0.0)

MongoDB\Driver\Server::getLatency — Returns the latency of this server in milliseconds

Descrição

final public MongoDB\Driver\Server::getLatency(): ?integer

Returns the latency of this server in milliseconds. This is the client's measured » round trip time of a hello command.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the latency of this server in milliseconds, or null if no latency has been measured (e.g. client is connected to a load balancer).

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.11.0 | This method will return null if no latency has been measured. In earlier versions, an integer was always returned and an unset value might be reported as -1.

Exemplos

Exemplo #1 MongoDB\Driver\Server::getLatency() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getLatency());

?>

O exemplo acima produzirá algo semelhante a:

int(592)

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server
  • MongoDB\Driver\ServerDescription::getRoundTripTime() - Returns the server's round trip time in milliseconds
  • » Server Discovery and Monitoring Specification


Returns the port on which this server is listening

  • « MongoDB\Driver\Server::getLatency
  • MongoDB\Driver\Server::getServerDescription »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns the port on which this server is listening

MongoDB\Driver\Server::getPort

(mongodb >=1.0.0)

MongoDB\Driver\Server::getPort — Returns the port on which this server is listening

Descrição

final public MongoDB\Driver\Server::getPort(): int

Returns the port on which this server is listening.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the port on which this server is listening.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\Server::getPort() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getPort());

?>

O exemplo acima produzirá:

int(27017)

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server
  • MongoDB\Driver\ServerDescription::getPort() - Returns the port on which this server is listening


Returns a ServerDescription for this server

  • « MongoDB\Driver\Server::getPort
  • MongoDB\Driver\Server::getTags »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns a ServerDescription for this server

MongoDB\Driver\Server::getServerDescription

(mongodb >=1.13.0)

MongoDB\Driver\Server::getServerDescription — Returns a ServerDescription for this server

Descrição

final public MongoDB\Driver\Server::getServerDescription(): MongoDB\Driver\ServerDescription

Returns a MongoDB\Driver\ServerDescription for this server. This is an immutable value object that will describe the server at the time this method is called.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a MongoDB\Driver\ServerDescription for this server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns an array of tags describing this server in a replica set

  • « MongoDB\Driver\Server::getServerDescription
  • MongoDB\Driver\Server::getType »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns an array of tags describing this server in a replica set

MongoDB\Driver\Server::getTags

(mongodb >=1.0.0)

MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set

Descrição

final public MongoDB\Driver\Server::getTags(): array

Returns an array of » tags used to describe this server in a replica set. The array will contain zero or more string key and value pairs.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of tags used to describe this server in a replica set.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server


Returns an integer denoting the type of this server

  • « MongoDB\Driver\Server::getTags
  • MongoDB\Driver\Server::isArbiter »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns an integer denoting the type of this server

MongoDB\Driver\Server::getType

(mongodb >=1.0.0)

MongoDB\Driver\Server::getType — Returns an integer denoting the type of this server

Descrição

final public MongoDB\Driver\Server::getType(): int

Returns an int denoting the type of this server. The value will correlate with a MongoDB\Driver\Server constant.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an int denoting the type of this server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server
  • MongoDB\Driver\ServerDescription::getType() - Returns a string denoting the type of this server


Checks if this server is an arbiter member of a replica set

  • « MongoDB\Driver\Server::getType
  • MongoDB\Driver\Server::isHidden »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is an arbiter member of a replica set

MongoDB\Driver\Server::isArbiter

(mongodb >=1.0.0)

MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set

Descrição

final public MongoDB\Driver\Server::isArbiter(): bool

Returns whether this server is an » arbiter member of a replica set.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if this server is an arbiter member of a replica set, and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server


Checks if this server is a hidden member of a replica set

  • « MongoDB\Driver\Server::isArbiter
  • MongoDB\Driver\Server::isPassive »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a hidden member of a replica set

MongoDB\Driver\Server::isHidden

(mongodb >=1.0.0)

MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set

Descrição

final public MongoDB\Driver\Server::isHidden(): bool

Returns whether this server is a » hidden member of a replica set.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if this server is a hidden member of a replica set, and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server


Checks if this server is a passive member of a replica set

  • « MongoDB\Driver\Server::isHidden
  • MongoDB\Driver\Server::isPrimary »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a passive member of a replica set

MongoDB\Driver\Server::isPassive

(mongodb >=1.0.0)

MongoDB\Driver\Server::isPassive — Checks if this server is a passive member of a replica set

Descrição

final public MongoDB\Driver\Server::isPassive(): bool

Returns whether this server is a » passive member of a replica set (i.e. its priority is 0).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if this server is a passive member of a replica set, and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server


Checks if this server is a primary member of a replica set

  • « MongoDB\Driver\Server::isPassive
  • MongoDB\Driver\Server::isSecondary »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a primary member of a replica set

MongoDB\Driver\Server::isPrimary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set

Descrição

final public MongoDB\Driver\Server::isPrimary(): bool

Returns whether this server is a » primary member of a replica set.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if this server is a primary member of a replica set, and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server


Checks if this server is a secondary member of a replica set

  • « MongoDB\Driver\Server::isPrimary
  • MongoDB\Driver\ServerDescription »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a secondary member of a replica set

MongoDB\Driver\Server::isSecondary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set

Descrição

final public MongoDB\Driver\Server::isSecondary(): bool

Returns whether this server is a » secondary member of a replica set.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if this server is a secondary member of a replica set, and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server


The MongoDB\Driver\ServerDescription class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\ServerDescription class is a value object that represents a server to which the driver is connected. Instances of this class are returned by MongoDB\Driver\Server::getServerDescription() and MongoDB\Driver\Monitoring\ServerChangedEvent methods.

Resumo da classe

final class MongoDB\Driver\ServerDescription {
/* Constantes */
const string TYPE_UNKNOWN = "Unknown";
const string TYPE_STANDALONE = "Standalone";
const string TYPE_MONGOS = "Mongos";
const string TYPE_POSSIBLE_PRIMARY = "PossiblePrimary";
const string TYPE_RS_PRIMARY = "RSPrimary";
const string TYPE_RS_SECONDARY = "RSSecondary";
const string TYPE_RS_ARBITER = "RSArbiter";
const string TYPE_RS_OTHER = "RSOther";
const string TYPE_RS_GHOST = "RSGhost";
const string TYPE_LOAD_BALANCER = "LoadBalancer";
/* Métodos */
final public getHelloResponse(): array
final public getHost(): string
final public getLastUpdateTime(): int
final public getPort(): int
final public getRoundTripTime(): ?int
final public getType(): string
}

Constantes pré-definidas

MongoDB\Driver\ServerDescription::TYPE_UNKNOWN

Unknown server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_STANDALONE

Standalone server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_MONGOS

Mongos server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_POSSIBLE_PRIMARY

Replica set possible primary server type, returned by MongoDB\Driver\ServerDescription::getType().

A server may be identified as a possible primary if it has not yet been checked but another memory of the replica set thinks it is the primary.

MongoDB\Driver\ServerDescription::TYPE_RS_PRIMARY

Replica set primary server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_RS_SECONDARY

Replica set secondary server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_RS_ARBITER

Replica set arbiter server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_RS_OTHER

Replica set other server type, returned by MongoDB\Driver\ServerDescription::getType().

Such servers may be hidden, starting up, or recovering. They cannot be queried, but their hosts lists are useful for discovering the current replica set configuration.

MongoDB\Driver\ServerDescription::TYPE_RS_GHOST

Replica set ghost server type, returned by MongoDB\Driver\ServerDescription::getType().

Servers may be identified as such in at least three situations: briefly during server startup; in an uninitialized replica set; or when the server is shunned (i.e. removed from the replica set config). They cannot be queried, nor can their host list be used to discover the current replica set configuration; however, the client may monitor this server in hope that it transitions to a more useful state.

MongoDB\Driver\ServerDescription::TYPE_LOAD_BALANCER

Load balancer server type, returned by MongoDB\Driver\ServerDescription::getType().

Índice

  • MongoDB\Driver\ServerDescription::getHelloResponse — Returns the server's most recent "hello" response
  • MongoDB\Driver\ServerDescription::getHost — Returns the hostname of this server
  • MongoDB\Driver\ServerDescription::getLastUpdateTime — Returns the server's last update time in microseconds
  • MongoDB\Driver\ServerDescription::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\ServerDescription::getRoundTripTime — Returns the server's round trip time in milliseconds
  • MongoDB\Driver\ServerDescription::getType — Returns a string denoting the type of this server


Returns the server's most recent "hello" response

  • « MongoDB\Driver\ServerDescription
  • MongoDB\Driver\ServerDescription::getHost »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns the server's most recent "hello" response

MongoDB\Driver\ServerDescription::getHelloResponse

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getHelloResponse — Returns the server's most recent "hello" response

Descrição

final public MongoDB\Driver\ServerDescription::getHelloResponse(): array

Returns an array of information describing the server. This array is derived from the most recent (at the time the MongoDB\Driver\ServerDescription was constructed) » hello command response obtained through » server monitoring.

Nota:

When the driver is connected to a load balancer, this method will return an empty array since load balancers are not monitored. This is in contrast to MongoDB\Driver\Server::getInfo(), which would return the backing server's » hello command response from the initial connection handshake.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of information describing this server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getInfo() - Returns an array of information describing this server
  • » hello command in the MongoDB manual
  • » Server Discovery and Monitoring Specification


Returns the hostname of this server

  • « MongoDB\Driver\ServerDescription::getHelloResponse
  • MongoDB\Driver\ServerDescription::getLastUpdateTime »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns the hostname of this server

MongoDB\Driver\ServerDescription::getHost

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getHost — Returns the hostname of this server

Descrição

final public MongoDB\Driver\ServerDescription::getHost(): string

Returns the hostname of this server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the hostname of this server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getHost() - Returns the hostname of this server


Returns the server's last update time in microseconds

  • « MongoDB\Driver\ServerDescription::getHost
  • MongoDB\Driver\ServerDescription::getPort »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns the server's last update time in microseconds

MongoDB\Driver\ServerDescription::getLastUpdateTime

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getLastUpdateTime — Returns the server's last update time in microseconds

Descrição

final public MongoDB\Driver\ServerDescription::getLastUpdateTime(): int

Returns the server's last update time in microseconds.

Nota: The returned value is a monotonic timestamp, which starts at an arbitrary point. As such, it is only suitable to compare with other return values from MongoDB\Driver\ServerDescription::getLastUpdateTime().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the server's last update time in microseconds.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the port on which this server is listening

  • « MongoDB\Driver\ServerDescription::getLastUpdateTime
  • MongoDB\Driver\ServerDescription::getRoundTripTime »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns the port on which this server is listening

MongoDB\Driver\ServerDescription::getPort

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getPort — Returns the port on which this server is listening

Descrição

final public MongoDB\Driver\ServerDescription::getPort(): int

Returns the port on which this server is listening.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the port on which this server is listening.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getPort() - Returns the port on which this server is listening


Returns the server's round trip time in milliseconds

  • « MongoDB\Driver\ServerDescription::getPort
  • MongoDB\Driver\ServerDescription::getType »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns the server's round trip time in milliseconds

MongoDB\Driver\ServerDescription::getRoundTripTime

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getRoundTripTime — Returns the server's round trip time in milliseconds

Descrição

final public MongoDB\Driver\ServerDescription::getRoundTripTime(): ?int

Returns the server's round trip time in milliseconds. This is the client's measurement of the duration of a » hello command.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the server's round trip time in milliseconds.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getLatency() - Returns the latency of this server in milliseconds


Returns a string denoting the type of this server

  • « MongoDB\Driver\ServerDescription::getRoundTripTime
  • MongoDB\Driver\TopologyDescription »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns a string denoting the type of this server

MongoDB\Driver\ServerDescription::getType

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getType — Returns a string denoting the type of this server

Descrição

final public MongoDB\Driver\ServerDescription::getType(): string

Returns a string denoting the type of this server. The value will correlate with a MongoDB\Driver\ServerDescription constant.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string denoting the type of this server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Server::getType() - Returns an integer denoting the type of this server


The MongoDB\Driver\TopologyDescription class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\TopologyDescription class is a value object that represents a topology to which the driver is connected. Instances of this class are returned by MongoDB\Driver\Monitoring\TopologyChangedEvent methods.

Resumo da classe

final class MongoDB\Driver\TopologyDescription {
/* Constantes */
const string TYPE_UNKNOWN = "Unknown";
const string TYPE_SINGLE = "Single";
const string TYPE_SHARDED = "Sharded";
const string TYPE_REPLICA_SET_NO_PRIMARY = "ReplicaSetNoPrimary";
const string TYPE_REPLICA_SET_WITH_PRIMARY = "ReplicaSetWithPrimary";
const string TYPE_LOAD_BALANCED = "LoadBalanced";
/* Métodos */
final public getServers(): array
final public getType(): string
final public hasReadableServer(?MongoDB\Driver\ReadPreference $readPreference = null): bool
final public hasWritableServer(): bool
}

Constantes pré-definidas

MongoDB\Driver\TopologyDescription::TYPE_UNKNOWN

Unknown topology type, returned by MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_SINGLE

Single server (i.e. direct connection), returned by MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_SHARDED

Sharded cluster, returned by MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_NO_PRIMARY

Replica set with no primary server, returned by MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_WITH_PRIMARY

Replica set with a primary server, returned by MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_LOAD_BALANCED

Load balanced topology, returned by MongoDB\Driver\TopologyDescription::getType().

Índice

  • MongoDB\Driver\TopologyDescription::getServers — Returns the servers in the topology
  • MongoDB\Driver\TopologyDescription::getType — Returns a string denoting the type of this topology
  • MongoDB\Driver\TopologyDescription::hasReadableServer — Returns whether the topology has a readable server
  • MongoDB\Driver\TopologyDescription::hasWritableServer — Returns whether the topology has a writable server


Returns the servers in the topology

  • « MongoDB\Driver\TopologyDescription
  • MongoDB\Driver\TopologyDescription::getType »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Returns the servers in the topology

MongoDB\Driver\TopologyDescription::getServers

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::getServers — Returns the servers in the topology

Descrição

final public MongoDB\Driver\TopologyDescription::getServers(): array

Returns an array of MongoDB\Driver\ServerDescription objects corresponding to the known servers in the topology.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of MongoDB\Driver\ServerDescription objects corresponding to the known servers in the topology.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns a string denoting the type of this topology

  • « MongoDB\Driver\TopologyDescription::getServers
  • MongoDB\Driver\TopologyDescription::hasReadableServer »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Returns a string denoting the type of this topology

MongoDB\Driver\TopologyDescription::getType

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::getType — Returns a string denoting the type of this topology

Descrição

final public MongoDB\Driver\TopologyDescription::getType(): string

Returns a string denoting the type of this topology. The value will correlate with a MongoDB\Driver\TopologyDescription constant.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string denoting the type of this topology.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns whether the topology has a readable server

  • « MongoDB\Driver\TopologyDescription::getType
  • MongoDB\Driver\TopologyDescription::hasWritableServer »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Returns whether the topology has a readable server

MongoDB\Driver\TopologyDescription::hasReadableServer

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::hasReadableServer — Returns whether the topology has a readable server

Descrição

final public MongoDB\Driver\TopologyDescription::hasReadableServer(?MongoDB\Driver\ReadPreference $readPreference = null): bool

Returns whether the topology has a readable server or, if readPreference is specified, a server matching the specified read preference.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns whether the topology has a readable server or, if readPreference is specified, a server matching the specified read preference.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns whether the topology has a writable server

  • « MongoDB\Driver\TopologyDescription::hasReadableServer
  • MongoDB\Driver\WriteConcernError »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Returns whether the topology has a writable server

MongoDB\Driver\TopologyDescription::hasWritableServer

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::hasWritableServer — Returns whether the topology has a writable server

Descrição

final public MongoDB\Driver\TopologyDescription::hasWritableServer(): bool

Returns whether the topology has a writable server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns whether the topology has a writable server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\WriteConcernError class

(mongodb >=1.0.0)

Introdução

The MongoDB\Driver\WriteConcernError class encapsulates information about a write concern error and may be returned by MongoDB\Driver\WriteResult::getWriteConcernError().

Resumo da classe

final class MongoDB\Driver\WriteConcernError {
/* Métodos */
final public getCode(): int
final public getInfo(): ?object
final public getMessage(): string
}

Índice

  • MongoDB\Driver\WriteConcernError::getCode — Returns the WriteConcernError's error code
  • MongoDB\Driver\WriteConcernError::getInfo — Returns metadata document for the WriteConcernError
  • MongoDB\Driver\WriteConcernError::getMessage — Returns the WriteConcernError's error message


Returns the WriteConcernError's error code

  • « MongoDB\Driver\WriteConcernError
  • MongoDB\Driver\WriteConcernError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Returns the WriteConcernError's error code

MongoDB\Driver\WriteConcernError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getCode — Returns the WriteConcernError's error code

Descrição

final public MongoDB\Driver\WriteConcernError::getCode(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the WriteConcernError's error code.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteConcernError::getCode() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
$manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteConcernError()->getCode());
}

?>

O exemplo acima produzirá algo semelhante a:

int(64)

Veja Também

  • » Write Concern reference


Returns metadata document for the WriteConcernError

  • « MongoDB\Driver\WriteConcernError::getCode
  • MongoDB\Driver\WriteConcernError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Returns metadata document for the WriteConcernError

MongoDB\Driver\WriteConcernError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getInfo — Returns metadata document for the WriteConcernError

Descrição

final public MongoDB\Driver\WriteConcernError::getInfo(): ?object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the metadata document for the WriteConcernError, or null if no metadata is available.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteConcernError::getInfo() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
$manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteConcernError()->getInfo());
}

?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#1 (1) {
  ["wtimeout"]=>
  bool(true)
}

Veja Também

  • » Write Concern reference


Returns the WriteConcernError's error message

  • « MongoDB\Driver\WriteConcernError::getInfo
  • MongoDB\Driver\WriteError »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Returns the WriteConcernError's error message

MongoDB\Driver\WriteConcernError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getMessage — Returns the WriteConcernError's error message

Descrição

final public MongoDB\Driver\WriteConcernError::getMessage(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the WriteConcernError's error message.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteConcernError::getMessage() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
$manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteConcernError()->getMessage());
}

?>

O exemplo acima produzirá algo semelhante a:

string(33) "waiting for replication timed out"

Veja Também

  • » Write Concern reference


The MongoDB\Driver\WriteError class

(mongodb >=1.0.0)

Introdução

The MongoDB\Driver\WriteError class encapsulates information about a write error and may be returned as an array element from MongoDB\Driver\WriteResult::getWriteErrors().

Resumo da classe

final class MongoDB\Driver\WriteError {
/* Métodos */
final public getCode(): int
final public getIndex(): int
final public getInfo(): ?object
final public getMessage(): string
}

Índice

  • MongoDB\Driver\WriteError::getCode — Returns the WriteError's error code
  • MongoDB\Driver\WriteError::getIndex — Returns the index of the write operation corresponding to this WriteError
  • MongoDB\Driver\WriteError::getInfo — Returns metadata document for the WriteError
  • MongoDB\Driver\WriteError::getMessage — Returns the WriteError's error message


Returns the WriteError's error code

  • « MongoDB\Driver\WriteError
  • MongoDB\Driver\WriteError::getIndex »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns the WriteError's error code

MongoDB\Driver\WriteError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getCode — Returns the WriteError's error code

Descrição

final public MongoDB\Driver\WriteError::getCode(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the WriteError's error code.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteError::getCode() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
$manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors()[0]->getCode());
}

?>

O exemplo acima produzirá algo semelhante a:

int(11000)


Returns the index of the write operation corresponding to this WriteError

  • « MongoDB\Driver\WriteError::getCode
  • MongoDB\Driver\WriteError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns the index of the write operation corresponding to this WriteError

MongoDB\Driver\WriteError::getIndex

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getIndex — Returns the index of the write operation corresponding to this WriteError

Descrição

final public MongoDB\Driver\WriteError::getIndex(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the index of the write operation (from MongoDB\Driver\BulkWrite) corresponding to this WriteError.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteError::getIndex() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
$manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors()[0]->getIndex());
}

?>

O exemplo acima produzirá algo semelhante a:

int(1)

Veja Também

  • MongoDB\Driver\BulkWrite


Returns metadata document for the WriteError

  • « MongoDB\Driver\WriteError::getIndex
  • MongoDB\Driver\WriteError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns metadata document for the WriteError

MongoDB\Driver\WriteError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getInfo — Returns metadata document for the WriteError

Descrição

final public MongoDB\Driver\WriteError::getInfo(): ?object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the metadata document for the WriteError, or null if no metadata is available.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the WriteError's error message

  • « MongoDB\Driver\WriteError::getInfo
  • MongoDB\Driver\WriteResult »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns the WriteError's error message

MongoDB\Driver\WriteError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getMessage — Returns the WriteError's error message

Descrição

final public MongoDB\Driver\WriteError::getMessage(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the WriteError's error message.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteError::getMessage() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
$manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors()[0]->getMessage());
}

?>

O exemplo acima produzirá algo semelhante a:

string(70) "E11000 duplicate key error index: db.collection.$_id_ dup key: { : 1 }"


The MongoDB\Driver\WriteResult class

(mongodb >=1.0.0)

Introdução

The MongoDB\Driver\WriteResult class encapsulates information about an executed MongoDB\Driver\BulkWrite and may be returned by MongoDB\Driver\Manager::executeBulkWrite().

Resumo da classe

final class MongoDB\Driver\WriteResult {
/* Métodos */
final public getDeletedCount(): ?int
final public getInsertedCount(): ?int
final public getMatchedCount(): ?int
final public getModifiedCount(): ?int
final public getServer(): MongoDB\Driver\Server
final public getUpsertedCount(): ?int
final public getUpsertedIds(): array
final public getWriteConcernError(): ?MongoDB\Driver\WriteConcernError
final public getWriteErrors(): array
final public isAcknowledged(): bool
}

Índice

  • MongoDB\Driver\WriteResult::getDeletedCount — Returns the number of documents deleted
  • MongoDB\Driver\WriteResult::getInsertedCount — Returns the number of documents inserted (excluding upserts)
  • MongoDB\Driver\WriteResult::getMatchedCount — Returns the number of documents selected for update
  • MongoDB\Driver\WriteResult::getModifiedCount — Returns the number of existing documents updated
  • MongoDB\Driver\WriteResult::getServer — Returns the server associated with this write result
  • MongoDB\Driver\WriteResult::getUpsertedCount — Returns the number of documents inserted by an upsert
  • MongoDB\Driver\WriteResult::getUpsertedIds — Returns an array of identifiers for upserted documents
  • MongoDB\Driver\WriteResult::getWriteConcernError — Returns any write concern error that occurred
  • MongoDB\Driver\WriteResult::getWriteErrors — Returns any write errors that occurred
  • MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged


Returns the number of documents deleted

  • « MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteResult::getInsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents deleted

MongoDB\Driver\WriteResult::getDeletedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getDeletedCount — Returns the number of documents deleted

Descrição

final public MongoDB\Driver\WriteResult::getDeletedCount(): ?int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of documents deleted, or null if the write was not acknowledged.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteResult::getDeletedCount() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getDeletedCount());

?>

O exemplo acima produzirá:

int(1)

Veja Também

  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns the number of documents inserted (excluding upserts)

  • « MongoDB\Driver\WriteResult::getDeletedCount
  • MongoDB\Driver\WriteResult::getMatchedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents inserted (excluding upserts)

MongoDB\Driver\WriteResult::getInsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getInsertedCount — Returns the number of documents inserted (excluding upserts)

Descrição

final public MongoDB\Driver\WriteResult::getInsertedCount(): ?int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of documents inserted (excluding upserts), or null if the write was not acknowledged.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteResult::getInsertedCount() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getInsertedCount());

?>

O exemplo acima produzirá:

int(1)

Veja Também

  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns the number of documents selected for update

  • « MongoDB\Driver\WriteResult::getInsertedCount
  • MongoDB\Driver\WriteResult::getModifiedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents selected for update

MongoDB\Driver\WriteResult::getMatchedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getMatchedCount — Returns the number of documents selected for update

Descrição

final public MongoDB\Driver\WriteResult::getMatchedCount(): ?int

If the update operation results in no change to the document (e.g. setting the value of a field to its current value), the matched count may be greater than the value returned by MongoDB\Driver\WriteResult::getModifiedCount().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of documents selected for update, or null if the write was not acknowledged.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteResult::getMatchedCount() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getMatchedCount());

?>

O exemplo acima produzirá:

int(1)

Veja Também

  • MongoDB\Driver\WriteResult::getModifiedCount() - Returns the number of existing documents updated
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns the number of existing documents updated

  • « MongoDB\Driver\WriteResult::getMatchedCount
  • MongoDB\Driver\WriteResult::getServer »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of existing documents updated

MongoDB\Driver\WriteResult::getModifiedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getModifiedCount — Returns the number of existing documents updated

Descrição

final public MongoDB\Driver\WriteResult::getModifiedCount(): ?int

If the update operation results in no change to the document (e.g. setting the value of a field to its current value), the modified count may be less than the value returned by MongoDB\Driver\WriteResult::getMatchedCount().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of existing documents updated, or null if the write was not acknowledged.

The modified count is not available on versions of MongoDB before 2.6, which used the legacy wire protocol version (i.e. OP_UPDATE). If this is the case, the modified count will also be null.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteResult::getModifiedCount() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getModifiedCount());

?>

O exemplo acima produzirá:

int(1)

Veja Também

  • MongoDB\Driver\WriteResult::getMatchedCount() - Returns the number of documents selected for update
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns the server associated with this write result

  • « MongoDB\Driver\WriteResult::getModifiedCount
  • MongoDB\Driver\WriteResult::getUpsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the server associated with this write result

MongoDB\Driver\WriteResult::getServer

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getServer — Returns the server associated with this write result

Descrição

final public MongoDB\Driver\WriteResult::getServer(): MongoDB\Driver\Server

Returns the MongoDB\Driver\Server associated with this write result. This is the server that executed the MongoDB\Driver\BulkWrite.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the MongoDB\Driver\Server associated with this write result.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteResult::getServer() example

<?php

$manager = new MongoDB\Driver\Manager;
$server = $manager->selectServer(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY));

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $server->executeBulkWrite('db.collection', $bulk);

var_dump($result->getServer() == $server);

?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • MongoDB\Driver\Server


Returns the number of documents inserted by an upsert

  • « MongoDB\Driver\WriteResult::getServer
  • MongoDB\Driver\WriteResult::getUpsertedIds »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents inserted by an upsert

MongoDB\Driver\WriteResult::getUpsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedCount — Returns the number of documents inserted by an upsert

Descrição

final public MongoDB\Driver\WriteResult::getUpsertedCount(): ?int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of documents inserted by an upsert.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteResult::getUpsertedCount() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getUpsertedCount());

?>

O exemplo acima produzirá:

int(2)

Veja Também

  • MongoDB\Driver\WriteResult::getUpsertedIds() - Returns an array of identifiers for upserted documents
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns an array of identifiers for upserted documents

  • « MongoDB\Driver\WriteResult::getUpsertedCount
  • MongoDB\Driver\WriteResult::getWriteConcernError »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns an array of identifiers for upserted documents

MongoDB\Driver\WriteResult::getUpsertedIds

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedIds — Returns an array of identifiers for upserted documents

Descrição

final public MongoDB\Driver\WriteResult::getUpsertedIds(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of identifiers (i.e. "_id" field values) for upserted documents. The array keys will correspond to the index of the write operation (from MongoDB\Driver\BulkWrite) responsible for the upsert.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteResult::getUpsertedIds() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getUpsertedIds());

?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  [2]=>
  object(MongoDB\BSON\ObjectId)#4 (1) {
    ["oid"]=>
    string(24) "580e62a224f2302f191b880b"
  }
  [3]=>
  object(MongoDB\BSON\ObjectId)#5 (1) {
    ["oid"]=>
    string(24) "580e62a224f2302f191b880c"
  }
}

Veja Também

  • MongoDB\Driver\WriteResult::getUpsertedCount() - Returns the number of documents inserted by an upsert
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns any write concern error that occurred

  • « MongoDB\Driver\WriteResult::getUpsertedIds
  • MongoDB\Driver\WriteResult::getWriteErrors »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns any write concern error that occurred

MongoDB\Driver\WriteResult::getWriteConcernError

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteConcernError — Returns any write concern error that occurred

Descrição

final public MongoDB\Driver\WriteResult::getWriteConcernError(): ?MongoDB\Driver\WriteConcernError

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a MongoDB\Driver\WriteConcernError if a write concern error was encountered during the write operation, and null otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteResult::getWriteConcernError() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
$manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteConcernError());
}

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\Driver\WriteConcernError)#6 (3) {
  ["message"]=>
  string(33) "waiting for replication timed out"
  ["code"]=>
  int(64)
  ["info"]=>
  object(stdClass)#7 (1) {
    ["wtimeout"]=>
    bool(true)
  }
}

Veja Também

  • MongoDB\Driver\WriteConcern
  • » Write Concern reference


Returns any write errors that occurred

  • « MongoDB\Driver\WriteResult::getWriteConcernError
  • MongoDB\Driver\WriteResult::isAcknowledged »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns any write errors that occurred

MongoDB\Driver\WriteResult::getWriteErrors

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteErrors — Returns any write errors that occurred

Descrição

final public MongoDB\Driver\WriteResult::getWriteErrors(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of MongoDB\Driver\WriteError objects for any write errors encountered during the write operation. The array will be empty if no write errors occurred.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteResult::getWriteErrors() with a single error

<?php

$manager = new MongoDB\Driver\Manager;

/* By default, bulk write operations are executed serially in order and
* execution will stop after the first error.
*/
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 4]);

try {
$result = $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors());
}

?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 2 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(2)
    ["info"]=>
    NULL
  }
}

Exemplo #2 MongoDB\Driver\WriteResult::getWriteErrors() with multiple errors

<?php

$manager = new MongoDB\Driver\Manager;

/* The "ordered" option may be used to allow bulk write operations to continue
* executing after the first error is encountered.
*/
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 4]);

try {
$result = $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors());
}

?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 2 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(2)
    ["info"]=>
    NULL
  }
  [1]=>
  object(MongoDB\Driver\WriteError)#6 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 4 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(5)
    ["info"]=>
    NULL
  }
}

Veja Também

  • MongoDB\Driver\WriteError


Returns whether the write was acknowledged

  • « MongoDB\Driver\WriteResult::getWriteErrors
  • MongoDB\BSON »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns whether the write was acknowledged

MongoDB\Driver\WriteResult::isAcknowledged

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged

Descrição

final public MongoDB\Driver\WriteResult::isAcknowledged(): bool

If the write is acknowledged, other count fields will be available on the MongoDB\Driver\WriteResult object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the write was acknowledged, and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\Driver\WriteResult::isAcknowledged() with acknowledged write concern

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->isAcknowledged());

?>

O exemplo acima produzirá:

bool(true)

Exemplo #2 MongoDB\Driver\WriteResult::isAcknowledged() with unacknowledged write concern

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk, new MongoDB\Driver\WriteConcern(0));

var_dump($result->isAcknowledged());

?>

O exemplo acima produzirá:

bool(false)

Veja Também

  • MongoDB\Driver\WriteConcern
  • » Write Concern reference


BSON type classes and serialization functions

  • Funções
    • MongoDB\BSON\fromJSON — Returns the BSON representation of a JSON value
    • MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value
    • MongoDB\BSON\toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of a BSON value
    • MongoDB\BSON\toJSON — Returns the Legacy Extended JSON representation of a BSON value
    • MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value
    • MongoDB\BSON\toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of a BSON value
  • MongoDB\BSON\Document — The MongoDB\BSON\Document class
    • MongoDB\BSON\Document::__construct — Construct a new BSON document (unused)
    • MongoDB\BSON\Document::fromBSON — Construct a new document instance from a BSON string
    • MongoDB\BSON\Document::fromJSON — Construct a new document instance from a JSON string
    • MongoDB\BSON\Document::fromPHP — Construct a new document instance from PHP data
    • MongoDB\BSON\Document::get — Returns the value of a key in the document
    • MongoDB\BSON\Document::getIterator — Returns an iterator for the BSON document
    • MongoDB\BSON\Document::has — Returns whether a key is present in the document
    • MongoDB\BSON\Document::serialize — Serialize a Document
    • MongoDB\BSON\Document::toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::toPHP — Returns the PHP representation of the BSON document
    • MongoDB\BSON\Document::toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::__toString — Returns the string representation of this BSON Document
    • MongoDB\BSON\Document::unserialize — Unserialize a BSON document
  • MongoDB\BSON\PackedArray — The MongoDB\BSON\PackedArray class
    • MongoDB\BSON\PackedArray::__construct — Construct a new BSON array (unused)
    • MongoDB\BSON\PackedArray::fromPHP — Construct a new BSON array instance from PHP data
    • MongoDB\BSON\PackedArray::get — Returns the value of an index in the array
    • MongoDB\BSON\PackedArray::getIterator — Returns an iterator for the BSON array
    • MongoDB\BSON\PackedArray::has — Returns whether a index is present in the array
    • MongoDB\BSON\PackedArray::serialize — Serialize a BSON array
    • MongoDB\BSON\PackedArray::toPHP — Returns the PHP representation of the BSON array
    • MongoDB\BSON\PackedArray::__toString — Returns the string representation of this BSON array
    • MongoDB\BSON\PackedArray::unserialize — Unserialize a BSON array
  • MongoDB\BSON\Iterator — The MongoDB\BSON\Iterator class
    • MongoDB\BSON\Iterator::__construct — Construct a new BSON iterator (unused)
    • MongoDB\BSON\Iterator::current — Returns the current element
    • MongoDB\BSON\Iterator::key — Returns the key of the current element
    • MongoDB\BSON\Iterator::next — Advances the iterator to next element
    • MongoDB\BSON\Iterator::rewind — Rewinds the Iterator to the first element
    • MongoDB\BSON\Iterator::valid — Checks if current position is valid
  • MongoDB\BSON\Binary — The MongoDB\BSON\Binary class
    • MongoDB\BSON\Binary::__construct — Construct a new Binary
    • MongoDB\BSON\Binary::getData — Returns the Binary's data
    • MongoDB\BSON\Binary::getType — Returns the Binary's type
    • MongoDB\BSON\Binary::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Binary::serialize — Serialize a Binary
    • MongoDB\BSON\Binary::__toString — Returns the Binary's data
    • MongoDB\BSON\Binary::unserialize — Unserialize a Binary
  • MongoDB\BSON\Decimal128 — The MongoDB\BSON\Decimal128 class
    • MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128
    • MongoDB\BSON\Decimal128::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Decimal128::serialize — Serialize a Decimal128
    • MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128
    • MongoDB\BSON\Decimal128::unserialize — Unserialize a Decimal128
  • MongoDB\BSON\Javascript — The MongoDB\BSON\Javascript class
    • MongoDB\BSON\Javascript::__construct — Construct a new Javascript
    • MongoDB\BSON\Javascript::getCode — Returns the Javascript's code
    • MongoDB\BSON\Javascript::getScope — Returns the Javascript's scope document
    • MongoDB\BSON\Javascript::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Javascript::serialize — Serialize a Javascript
    • MongoDB\BSON\Javascript::__toString — Returns the Javascript's code
    • MongoDB\BSON\Javascript::unserialize — Unserialize a Javascript
  • MongoDB\BSON\MaxKey — The MongoDB\BSON\MaxKey class
    • MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey
    • MongoDB\BSON\MaxKey::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\MaxKey::serialize — Serialize a MaxKey
    • MongoDB\BSON\MaxKey::unserialize — Unserialize a MaxKey
  • MongoDB\BSON\MinKey — The MongoDB\BSON\MinKey class
    • MongoDB\BSON\MinKey::__construct — Construct a new MinKey
    • MongoDB\BSON\MinKey::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\MinKey::serialize — Serialize a MinKey
    • MongoDB\BSON\MinKey::unserialize — Unserialize a MinKey
  • MongoDB\BSON\ObjectId — The MongoDB\BSON\ObjectId class
    • MongoDB\BSON\ObjectId::__construct — Construct a new ObjectId
    • MongoDB\BSON\ObjectId::getTimestamp — Returns the timestamp component of this ObjectId
    • MongoDB\BSON\ObjectId::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\ObjectId::serialize — Serialize an ObjectId
    • MongoDB\BSON\ObjectId::__toString — Returns the hexidecimal representation of this ObjectId
    • MongoDB\BSON\ObjectId::unserialize — Unserialize an ObjectId
  • MongoDB\BSON\Regex — The MongoDB\BSON\Regex class
    • MongoDB\BSON\Regex::__construct — Construct a new Regex
    • MongoDB\BSON\Regex::getFlags — Returns the Regex's flags
    • MongoDB\BSON\Regex::getPattern — Returns the Regex's pattern
    • MongoDB\BSON\Regex::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Regex::serialize — Serialize a Regex
    • MongoDB\BSON\Regex::__toString — Returns the string representation of this Regex
    • MongoDB\BSON\Regex::unserialize — Unserialize a Regex
  • MongoDB\BSON\Timestamp — The MongoDB\BSON\Timestamp class
    • MongoDB\BSON\Timestamp::__construct — Construct a new Timestamp
    • MongoDB\BSON\Timestamp::getIncrement — Returns the increment component of this Timestamp
    • MongoDB\BSON\Timestamp::getTimestamp — Returns the timestamp component of this Timestamp
    • MongoDB\BSON\Timestamp::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Timestamp::serialize — Serialize a Timestamp
    • MongoDB\BSON\Timestamp::__toString — Returns the string representation of this Timestamp
    • MongoDB\BSON\Timestamp::unserialize — Unserialize a Timestamp
  • MongoDB\BSON\UTCDateTime — The MongoDB\BSON\UTCDateTime class
    • MongoDB\BSON\UTCDateTime::__construct — Construct a new UTCDateTime
    • MongoDB\BSON\UTCDateTime::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\UTCDateTime::serialize — Serialize a UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime — Returns the DateTime representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString — Returns the string representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::unserialize — Unserialize a UTCDateTime
  • MongoDB\BSON\Type — The MongoDB\BSON\Type interface
  • MongoDB\BSON\Persistable — The MongoDB\BSON\Persistable interface
    • MongoDB\BSON\Persistable::bsonSerialize — Provides an array or document to serialize as BSON
  • MongoDB\BSON\Serializable — The MongoDB\BSON\Serializable interface
    • MongoDB\BSON\Serializable::bsonSerialize — Provides an array or document to serialize as BSON
  • MongoDB\BSON\Unserializable — The MongoDB\BSON\Unserializable interface
    • MongoDB\BSON\Unserializable::bsonUnserialize — Constructs the object from a BSON array or document
  • MongoDB\BSON\BinaryInterface — The MongoDB\BSON\BinaryInterface interface
    • MongoDB\BSON\BinaryInterface::getData — Returns the BinaryInterface's data
    • MongoDB\BSON\BinaryInterface::getType — Returns the BinaryInterface's type
    • MongoDB\BSON\BinaryInterface::__toString — Returns the BinaryInterface's data
  • MongoDB\BSON\Decimal128Interface — The MongoDB\BSON\Decimal128Interface interface
    • MongoDB\BSON\Decimal128Interface::__toString — Returns the string representation of this Decimal128Interface
  • MongoDB\BSON\JavascriptInterface — The MongoDB\BSON\JavascriptInterface interface
    • MongoDB\BSON\JavascriptInterface::getCode — Returns the JavascriptInterface's code
    • MongoDB\BSON\JavascriptInterface::getScope — Returns the JavascriptInterface's scope document
    • MongoDB\BSON\JavascriptInterface::__toString — Returns the JavascriptInterface's code
  • MongoDB\BSON\MaxKeyInterface — The MongoDB\BSON\MaxKeyInterface interface
  • MongoDB\BSON\MinKeyInterface — The MongoDB\BSON\MinKeyInterface interface
  • MongoDB\BSON\ObjectIdInterface — The MongoDB\BSON\ObjectIdInterface interface
    • MongoDB\BSON\ObjectIdInterface::getTimestamp — Returns the timestamp component of this ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::__toString — Returns the hexidecimal representation of this ObjectIdInterface
  • MongoDB\BSON\RegexInterface — The MongoDB\BSON\RegexInterface interface
    • MongoDB\BSON\RegexInterface::getFlags — Returns the RegexInterface's flags
    • MongoDB\BSON\RegexInterface::getPattern — Returns the RegexInterface's pattern
    • MongoDB\BSON\RegexInterface::__toString — Returns the string representation of this RegexInterface
  • MongoDB\BSON\TimestampInterface — The MongoDB\BSON\TimestampInterface interface
    • MongoDB\BSON\TimestampInterface::getIncrement — Returns the increment component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::getTimestamp — Returns the timestamp component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::__toString — Returns the string representation of this TimestampInterface
  • MongoDB\BSON\UTCDateTimeInterface — The MongoDB\BSON\UTCDateTimeInterface interface
    • MongoDB\BSON\UTCDateTimeInterface::toDateTime — Returns the DateTime representation of this UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::__toString — Returns the string representation of this UTCDateTimeInterface
  • MongoDB\BSON\DBPointer — The MongoDB\BSON\DBPointer class (deprecated)
    • MongoDB\BSON\DBPointer::__construct — Construct a new DBPointer (unused)
    • MongoDB\BSON\DBPointer::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\DBPointer::serialize — Serialize a DBPointer
    • MongoDB\BSON\DBPointer::__toString — Returns an empty string
    • MongoDB\BSON\DBPointer::unserialize — Unserialize a DBPointer
  • MongoDB\BSON\Int64 — The MongoDB\BSON\Int64 class
    • MongoDB\BSON\Int64::__construct — Construct a new Int64
    • MongoDB\BSON\Int64::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Int64::serialize — Serialize an Int64
    • MongoDB\BSON\Int64::__toString — Returns the string representation of this Int64
    • MongoDB\BSON\Int64::unserialize — Unserialize an Int64
  • MongoDB\BSON\Symbol — The MongoDB\BSON\Symbol class (deprecated)
    • MongoDB\BSON\Symbol::__construct — Construct a new Symbol (unused)
    • MongoDB\BSON\Symbol::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Symbol::serialize — Serialize a Symbol
    • MongoDB\BSON\Symbol::__toString — Returns the Symbol as a string
    • MongoDB\BSON\Symbol::unserialize — Unserialize a Symbol
  • MongoDB\BSON\Undefined — The MongoDB\BSON\Undefined class (deprecated)
    • MongoDB\BSON\Undefined::__construct — Construct a new Undefined (unused)
    • MongoDB\BSON\Undefined::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Undefined::serialize — Serialize a Undefined
    • MongoDB\BSON\Undefined::__toString — Returns an empty string
    • MongoDB\BSON\Undefined::unserialize — Unserialize a Undefined


Funções

Índice

  • MongoDB\BSON\fromJSON — Returns the BSON representation of a JSON value
  • MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value
  • MongoDB\BSON\toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toJSON — Returns the Legacy Extended JSON representation of a BSON value
  • MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of a BSON value


Returns the BSON representation of a JSON value

  • « Funções
  • MongoDB\BSON\fromPHP »
  • PHP Manual
  • Funções
  • Returns the BSON representation of a JSON value

MongoDB\BSON\fromJSON

(mongodb >=1.0.0)

MongoDB\BSON\fromJSON — Returns the BSON representation of a JSON value

Descrição

MongoDB\BSON\fromJSON(string $json): string

Converts an » extended JSON string to its BSON representation.

Parâmetros

json (string)

JSON value to be converted.

Valor Retornado

The serialized BSON document as a binary string.

Erros/Exceções

  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the JSON value cannot be converted to BSON (e.g. due to a syntax error).

Exemplos

Exemplo #1 MongoDB\BSON\fromJSON() example

<?php

$json = '{ "_id": { "$oid": "563143b280d2387c91807965" } }';
$bson = MongoDB\BSON\fromJSON($json);
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

O exemplo acima produzirá:

object(stdClass)#2 (1) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectId)#1 (1) {
    ["oid"]=>
    string(24) "563143b280d2387c91807965"
  }
}

Veja Também

  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\toJSON() - Returns the Legacy Extended JSON representation of a BSON value
  • » MongoDB Extended JSON
  • » MongoDB BSON


Returns the BSON representation of a PHP value

  • « MongoDB\BSON\fromJSON
  • MongoDB\BSON\toCanonicalExtendedJSON »
  • PHP Manual
  • Funções
  • Returns the BSON representation of a PHP value

MongoDB\BSON\fromPHP

(mongodb >=1.0.0)

MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value

Descrição

MongoDB\BSON\fromPHP(array|object $value): string

Serializes a PHP array or object (e.g. document) to its » BSON representation. The returned binary string will describe a BSON document.

Parâmetros

value (array|object)

PHP value to be serialized.

Valor Retornado

The serialized BSON document as a binary string.

Erros/Exceções

  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the PHP value cannot be converted to BSON. Possible reasons include, but are not limited to, encountering an unexpected MongoDB\BSON\Type instance or MongoDB\BSON\Serializable::bsonSerialize() failing to return an array or stdClass.

Exemplos

Exemplo #1 MongoDB\BSON\fromPHP() example

<?php

$bson = MongoDB\BSON\fromPHP(['foo' => 1]);
echo bin2hex($bson), "\n";

?>

O exemplo acima produzirá:

0e00000010666f6f000100000000cat

Veja Também

  • MongoDB\BSON\Document::fromPHP() - Construct a new document instance from PHP data
  • MongoDB\BSON\toPHP() - Returns the PHP representation of a BSON value
  • » MongoDB BSON
  • Persisting Data


Returns the Canonical Extended JSON representation of a BSON value

  • « MongoDB\BSON\fromPHP
  • MongoDB\BSON\toJSON »
  • PHP Manual
  • Funções
  • Returns the Canonical Extended JSON representation of a BSON value

MongoDB\BSON\toCanonicalExtendedJSON

(mongodb >=1.3.0)

MongoDB\BSON\toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of a BSON value

Descrição

MongoDB\BSON\toCanonicalExtendedJSON(string $bson): string

Converts a BSON string to its » Canonical Extended JSON representation. The canonical format prefers type fidelity at the expense of concise output and is most suited for producing output that can be converted back to BSON without any loss of type information (e.g. numeric types will remain differentiated).

Parâmetros

bson (string)

BSON value to be converted.

Valor Retornado

The converted JSON value.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\UnexpectedValueException se a entrada não contiver exatamente um documento BSON. Os possíveis motivos incluem, mas não estão limitados a, BSON inválido, dados extras (depois de ler um documento BSON) ou um erro inesperado da » libbson.

Exemplos

Exemplo #1 MongoDB\BSON\toCanonicalExtendedJSON() example

<?php

$documents = [
[ 'null' => null ],
[ 'boolean' => true ],
[ 'string' => 'foo' ],
[ 'int32' => 123 ],
[ 'int64' => 4294967295 ],
[ 'double' => 1.0, ],
[ 'nan' => NAN ],
[ 'pos_inf' => INF ],
[ 'neg_inf' => -INF ],
[ 'array' => [ 'foo', 'bar' ]],
[ 'document' => [ 'foo' => 'bar' ]],
[ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
[ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
[ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
[ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
[ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
[ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
[ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
[ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
[ 'minkey' => new MongoDB\BSON\MinKey ],
[ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
$bson = MongoDB\BSON\fromPHP($document);
echo MongoDB\BSON\toCanonicalExtendedJSON($bson), "\n";
}

?>

O exemplo acima produzirá:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : { "$numberInt" : "123" } }
{ "int64" : { "$numberLong" : "4294967295"} }
{ "double" : { "$numberDouble" : "1.0" } }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : { "$numberLong" : "1445990400000" } } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : { "$numberInt" : "1" } } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Veja Também

  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\Document::toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of the BSON document
  • MongoDB\BSON\fromJSON() - Returns the BSON representation of a JSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » Extended JSON Specification
  • » MongoDB BSON


Returns the Legacy Extended JSON representation of a BSON value

  • « MongoDB\BSON\toCanonicalExtendedJSON
  • MongoDB\BSON\toPHP »
  • PHP Manual
  • Funções
  • Returns the Legacy Extended JSON representation of a BSON value

MongoDB\BSON\toJSON

(mongodb >=1.0.0)

MongoDB\BSON\toJSON — Returns the Legacy Extended JSON representation of a BSON value

Descrição

MongoDB\BSON\toJSON(string $bson): string

Converts a BSON string to its » Legacy Extended JSON representation.

Nota: There exist several JSON formats for representing BSON. This function implements the "strict mode" defined in » MongoDB Extended JSON, which has been superseded by the canonical and relaxed formats defined in the » Extended JSON Specification and implemented by MongoDB\BSON\toCanonicalExtendedJSON() and MongoDB\BSON\toRelaxedExtendedJSON(), respectively.

Aviso

» JSON does not support NAN and INF and MongoDB's Legacy Extended JSON format does not define an alternative representation for these values (» libbson will output nan and inf literals, which may not be parsed as valid JSON). If you are working with BSON that may contain non-finite numbers, please use MongoDB\BSON\toCanonicalExtendedJSON() or MongoDB\BSON\toRelaxedExtendedJSON().

Parâmetros

bson (string)

BSON value to be converted.

Valor Retornado

The converted JSON value.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\UnexpectedValueException se a entrada não contiver exatamente um documento BSON. Os possíveis motivos incluem, mas não estão limitados a, BSON inválido, dados extras (depois de ler um documento BSON) ou um erro inesperado da » libbson.

Exemplos

Exemplo #1 MongoDB\BSON\toJSON() example

<?php

$documents = [
[ 'null' => null ],
[ 'boolean' => true ],
[ 'string' => 'foo' ],
[ 'int32' => 123 ],
[ 'int64' => 4294967295 ],
[ 'double' => 1.0, ],
[ 'nan' => NAN ],
[ 'pos_inf' => INF ],
[ 'neg_inf' => -INF ],
[ 'array' => [ 'foo', 'bar' ]],
[ 'document' => [ 'foo' => 'bar' ]],
[ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
[ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
[ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
[ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
[ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
[ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
[ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
[ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
[ 'minkey' => new MongoDB\BSON\MinKey ],
[ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
$bson = MongoDB\BSON\fromPHP($document);
echo MongoDB\BSON\toJSON($bson), "\n";
}

?>

O exemplo acima produzirá:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : 123 }
{ "int64" : 4294967295 }
{ "double" : 1.0 }
{ "nan" : nan }
{ "pos_inf" : inf }
{ "neg_inf" : -inf }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : "Zm9v", "$type" : "00" } }
{ "date" : { "$date" : 1445990400000 } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regex" : "pattern", "$options" : "i" } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Veja Também

  • MongoDB\BSON\fromJSON() - Returns the BSON representation of a JSON value
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON
  • » MongoDB BSON


Returns the PHP representation of a BSON value

  • « MongoDB\BSON\toJSON
  • MongoDB\BSON\toRelaxedExtendedJSON »
  • PHP Manual
  • Funções
  • Returns the PHP representation of a BSON value

MongoDB\BSON\toPHP

(mongodb >=1.0.0)

MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value

Descrição

MongoDB\BSON\toPHP(string $bson, array $typeMap = array()): array|object

Unserializes a BSON document (i.e. binary string) to its PHP representation. The typeMap paramater may be used to control the PHP types used for converting BSON arrays and documents (both root and embedded).

Aviso

Os documentos BSON tecnicamente podem conter chaves duplicadas porque os documentos são armazenados como uma lista de pares chave-valor; no entanto, as aplicações devem evitar a geração de documentos com chaves duplicadas, pois o comportamento do servidor e do driver pode ser indefinido. Como os objetos e arrays do PHP não podem ter chaves duplicadas, os dados também podem ser perdidos ao decodificar um documento BSON com chaves duplicadas.

Parâmetros

bson (string)

BSON value to be unserialized.

typeMap (array)

Configuração de mapeamento de tipos.

Valor Retornado

The unserialized PHP value.

Erros/Exceções

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.
  • Lança uma exceção MongoDB\Driver\Exception\UnexpectedValueException se a entrada não contiver exatamente um documento BSON. Os possíveis motivos incluem, mas não estão limitados a, BSON inválido, dados extras (depois de ler um documento BSON) ou um erro inesperado da » libbson.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.4.0 | If the input contains an unsupported, deprecated BSON type, the driver will now no longer log a warning to the debug log, but instead will create an object representing this type.
PECL mongodb 1.3.2 | MongoDB\Driver\Exception\UnexpectedValueException is no longer thrown if the input contains an unsupported, deprecated BSON type. Such types will be ignored (as they were in versions before 1.3.0), although the driver will now log a warning to the debug log (see: mongodb.debug).
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\UnexpectedValueException is thrown if the input contains an unsupported, deprecated BSON type. Previously, such types were ignored.

Exemplos

Exemplo #1 MongoDB\BSON\toPHP() example

<?php

$bson = hex2bin('0e00000010666f6f000100000000');
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

O exemplo acima produzirá:

object(stdClass)#1 (1) {
  ["foo"]=>
  int(1)
}

Veja Também

  • MongoDB\BSON\Document::toPHP() - Returns the PHP representation of the BSON document
  • MongoDB\BSON\fromPHP() - Returns the BSON representation of a PHP value
  • » MongoDB BSON
  • Persisting Data


Returns the Relaxed Extended JSON representation of a BSON value

  • « MongoDB\BSON\toPHP
  • MongoDB\BSON\Document »
  • PHP Manual
  • Funções
  • Returns the Relaxed Extended JSON representation of a BSON value

MongoDB\BSON\toRelaxedExtendedJSON

(mongodb >=1.3.0)

MongoDB\BSON\toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of a BSON value

Descrição

MongoDB\BSON\toRelaxedExtendedJSON(string $bson): string

Converts a BSON string to its » Relaxed Extended JSON representation. The relaxed format prefers use of JSON type primitives at the expense of type fidelity and is most suited for producing output that can be easily consumed by web APIs and humans.

Parâmetros

bson (string)

BSON value to be converted.

Valor Retornado

The converted JSON value.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\UnexpectedValueException se a entrada não contiver exatamente um documento BSON. Os possíveis motivos incluem, mas não estão limitados a, BSON inválido, dados extras (depois de ler um documento BSON) ou um erro inesperado da » libbson.

Exemplos

Exemplo #1 MongoDB\BSON\toRelaxedExtendedJSON() example

<?php

$documents = [
[ 'null' => null ],
[ 'boolean' => true ],
[ 'string' => 'foo' ],
[ 'int32' => 123 ],
[ 'int64' => 4294967295 ],
[ 'double' => 1.0, ],
[ 'nan' => NAN ],
[ 'pos_inf' => INF ],
[ 'neg_inf' => -INF ],
[ 'array' => [ 'foo', 'bar' ]],
[ 'document' => [ 'foo' => 'bar' ]],
[ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
[ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
[ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
[ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
[ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
[ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
[ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
[ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
[ 'minkey' => new MongoDB\BSON\MinKey ],
[ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
$bson = MongoDB\BSON\fromPHP($document);
echo MongoDB\BSON\toRelaxedExtendedJSON($bson), "\n";
}

?>

O exemplo acima produzirá:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : 123 }
{ "int64" : 4294967295 }
{ "double" : 1.0 }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : "2015-10-28T00:00:00Z" } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Veja Também

  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\Document::toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of the BSON document
  • MongoDB\BSON\fromJSON() - Returns the BSON representation of a JSON value
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • » Extended JSON
  • » MongoDB BSON


The MongoDB\BSON\Document class

(mongodb >=1.16.0)

Introdução

Represents a BSON document. This class is used when reading data as raw BSON and cannot be modified.

Resumo da classe

final class MongoDB\BSON\Document implements MongoDB\BSON\Type, IteratorAggregate, Serializable {
/* Métodos */
final private __construct()
final static public fromBSON(string $bson): MongoDB\BSON\Document
final static public fromJSON(string $json): MongoDB\BSON\Document
final static public fromPHP(object|array $value): MongoDB\BSON\Document
final public get(string $key): mixed
final public getIterator(): MongoDB\BSON\Iterator
final public has(string $key): bool
final public serialize(): string
final public toCanonicalExtendedJSON(): string
final public toPHP(?array $typeMap = null): array|object
final public toRelaxedExtendedJSON(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.17.0 | Implements MongoDB\BSON\Type.

Índice

  • MongoDB\BSON\Document::__construct — Construct a new BSON document (unused)
  • MongoDB\BSON\Document::fromBSON — Construct a new document instance from a BSON string
  • MongoDB\BSON\Document::fromJSON — Construct a new document instance from a JSON string
  • MongoDB\BSON\Document::fromPHP — Construct a new document instance from PHP data
  • MongoDB\BSON\Document::get — Returns the value of a key in the document
  • MongoDB\BSON\Document::getIterator — Returns an iterator for the BSON document
  • MongoDB\BSON\Document::has — Returns whether a key is present in the document
  • MongoDB\BSON\Document::serialize — Serialize a Document
  • MongoDB\BSON\Document::toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of the BSON document
  • MongoDB\BSON\Document::toPHP — Returns the PHP representation of the BSON document
  • MongoDB\BSON\Document::toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of the BSON document
  • MongoDB\BSON\Document::__toString — Returns the string representation of this BSON Document
  • MongoDB\BSON\Document::unserialize — Unserialize a BSON document


Construct a new BSON document (unused)

  • « MongoDB\BSON\Document
  • MongoDB\BSON\Document::fromBSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Construct a new BSON document (unused)

MongoDB\BSON\Document::__construct

(mongodb >=1.16.0)

MongoDB\BSON\Document::__construct — Construct a new BSON document (unused)

Descrição

final private MongoDB\BSON\Document::__construct()

MongoDB\BSON\Document objects are created through static factory methods and cannot be instantiated directly.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • MongoDB\BSON\Document::fromPHP() - Construct a new document instance from PHP data
  • MongoDB\BSON\Document::fromBSON() - Construct a new document instance from a BSON string
  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • » BSON Types


Construct a new document instance from a BSON string

  • « MongoDB\BSON\Document::__construct
  • MongoDB\BSON\Document::fromJSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Construct a new document instance from a BSON string

MongoDB\BSON\Document::fromBSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::fromBSON — Construct a new document instance from a BSON string

Descrição

final static public MongoDB\BSON\Document::fromBSON(string $bson): MongoDB\BSON\Document

Parâmetros

bson (string)

A string containing a document in BSON format.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if bson is an invalid BSON string or contains more than a single document.

Veja Também

  • MongoDB\BSON\Document::fromPHP() - Construct a new document instance from PHP data
  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • » BSON Types


Construct a new document instance from a JSON string

  • « MongoDB\BSON\Document::fromBSON
  • MongoDB\BSON\Document::fromPHP »
  • PHP Manual
  • MongoDB\BSON\Document
  • Construct a new document instance from a JSON string

MongoDB\BSON\Document::fromJSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::fromJSON — Construct a new document instance from a JSON string

Descrição

final static public MongoDB\BSON\Document::fromJSON(string $json): MongoDB\BSON\Document

Converts an » extended JSON string to its BSON representation.

Parâmetros

json (string)

JSON value to be converted.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if json is not a valid document.

Veja Também

  • MongoDB\BSON\Document::fromPHP() - Construct a new document instance from PHP data
  • MongoDB\BSON\Document::fromBSON() - Construct a new document instance from a BSON string
  • MongoDB\BSON\fromJSON() - Returns the BSON representation of a JSON value
  • » MongoDB Extended JSON
  • » BSON Types


Construct a new document instance from PHP data

  • « MongoDB\BSON\Document::fromJSON
  • MongoDB\BSON\Document::get »
  • PHP Manual
  • MongoDB\BSON\Document
  • Construct a new document instance from PHP data

MongoDB\BSON\Document::fromPHP

(mongodb >=1.16.0)

MongoDB\BSON\Document::fromPHP — Construct a new document instance from PHP data

Descrição

final static public MongoDB\BSON\Document::fromPHP(object|array $value): MongoDB\BSON\Document

Parâmetros

value (object|array)

A PHP object or array containing the document. When passing an array with numeric keys, the numeric values are converted to strings and used as document keys.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Document::fromBSON() - Construct a new document instance from a BSON string
  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\fromPHP() - Returns the BSON representation of a PHP value
  • » BSON Types


Returns the value of a key in the document

  • « MongoDB\BSON\Document::fromPHP
  • MongoDB\BSON\Document::getIterator »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns the value of a key in the document

MongoDB\BSON\Document::get

(mongodb >=1.16.0)

MongoDB\BSON\Document::get — Returns the value of a key in the document

Descrição

final public MongoDB\BSON\Document::get(string $key): mixed

Parâmetros

key (string)

The key to retrieve from the document.

Valor Retornado

Returns the value associated with the given key. If the key is not present in the document, an exception is thrown.

Nota: When encountering a value encoded as 64-bit integer in the BSON document, the return value of this method will be a MongoDB\BSON\Int64 instance.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\RuntimeException if the key is not present in the document.

Veja Também

  • MongoDB\BSON\Document::has() - Returns whether a key is present in the document
  • » BSON Types


Returns an iterator for the BSON document

  • « MongoDB\BSON\Document::get
  • MongoDB\BSON\Document::has »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns an iterator for the BSON document

MongoDB\BSON\Document::getIterator

(mongodb >=1.16.0)

MongoDB\BSON\Document::getIterator — Returns an iterator for the BSON document

Descrição

final public MongoDB\BSON\Document::getIterator(): MongoDB\BSON\Iterator

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a MongoDB\BSON\Iterator instance that can be used to iterate over all keys in the document.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the BSON iterator could not be initialized.

Veja Também

  • » BSON Types


Returns whether a key is present in the document

  • « MongoDB\BSON\Document::getIterator
  • MongoDB\BSON\Document::serialize »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns whether a key is present in the document

MongoDB\BSON\Document::has

(mongodb >=1.16.0)

MongoDB\BSON\Document::has — Returns whether a key is present in the document

Descrição

final public MongoDB\BSON\Document::has(string $key): bool

Parâmetros

key (string)

The key to look for in the document.

Valor Retornado

Returns true if the key is present in the document and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Document::get() - Returns the value of a key in the document
  • » BSON Types


Serialize a Document

  • « MongoDB\BSON\Document::has
  • MongoDB\BSON\Document::toCanonicalExtendedJSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Serialize a Document

MongoDB\BSON\Document::serialize

(mongodb >=1.16.0)

MongoDB\BSON\Document::serialize — Serialize a Document

Descrição

final public MongoDB\BSON\Document::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\Document.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Document::unserialize() - Unserialize a BSON document
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the Canonical Extended JSON representation of the BSON document

  • « MongoDB\BSON\Document::serialize
  • MongoDB\BSON\Document::toPHP »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns the Canonical Extended JSON representation of the BSON document

MongoDB\BSON\Document::toCanonicalExtendedJSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of the BSON document

Descrição

final public MongoDB\BSON\Document::toCanonicalExtendedJSON(): string

Converts the BSON document to its » Canonical Extended JSON representation. The canonical format prefers type fidelity at the expense of concise output and is most suited for producing output that can be converted back to BSON without any loss of type information (e.g. numeric types will remain differentiated).

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 MongoDB\BSON\Document::toCanonicalExtendedJSON() example

<?php

$documents = [
[ 'null' => null ],
[ 'boolean' => true ],
[ 'string' => 'foo' ],
[ 'int32' => 123 ],
[ 'int64' => 4294967295 ],
[ 'double' => 1.0, ],
[ 'nan' => NAN ],
[ 'pos_inf' => INF ],
[ 'neg_inf' => -INF ],
[ 'array' => [ 'foo', 'bar' ]],
[ 'document' => [ 'foo' => 'bar' ]],
[ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
[ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
[ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
[ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
[ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
[ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
[ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
[ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
[ 'minkey' => new MongoDB\BSON\MinKey ],
[ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
$bson = MongoDB\BSON\Document::fromPHP($document);
echo $bson->toCanonicalExtendedJSON(), "\n";
}

?>

O exemplo acima produzirá:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : { "$numberInt" : "123" } }
{ "int64" : { "$numberLong" : "4294967295"} }
{ "double" : { "$numberDouble" : "1.0" } }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : { "$numberLong" : "1445990400000" } } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : { "$numberInt" : "1" } } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Veja Também

  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\Document::toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of the BSON document
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • » Extended JSON Specification
  • » BSON Types


Returns the PHP representation of the BSON document

  • « MongoDB\BSON\Document::toCanonicalExtendedJSON
  • MongoDB\BSON\Document::toRelaxedExtendedJSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns the PHP representation of the BSON document

MongoDB\BSON\Document::toPHP

(mongodb >=1.16.0)

MongoDB\BSON\Document::toPHP — Returns the PHP representation of the BSON document

Descrição

final public MongoDB\BSON\Document::toPHP(?array $typeMap = null): array|object

Unserializes the BSON document to its PHP representation. The typeMap paramater may be used to control the PHP types used for converting BSON arrays and documents (both root and embedded).

Aviso

Os documentos BSON tecnicamente podem conter chaves duplicadas porque os documentos são armazenados como uma lista de pares chave-valor; no entanto, as aplicações devem evitar a geração de documentos com chaves duplicadas, pois o comportamento do servidor e do driver pode ser indefinido. Como os objetos e arrays do PHP não podem ter chaves duplicadas, os dados também podem ser perdidos ao decodificar um documento BSON com chaves duplicadas.

Parâmetros

typeMap (array)

Configuração de mapeamento de tipos.

Valor Retornado

The decoded PHP value.

Nota: When encountering a value encoded as 64-bit integer in the BSON document, the return value of this method will be a MongoDB\BSON\Int64 instance.

Erros/Exceções

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.

Veja Também

  • MongoDB\BSON\toPHP() - Returns the PHP representation of a BSON value
  • » BSON Types


Returns the Relaxed Extended JSON representation of the BSON document

  • « MongoDB\BSON\Document::toPHP
  • MongoDB\BSON\Document::__toString »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns the Relaxed Extended JSON representation of the BSON document

MongoDB\BSON\Document::toRelaxedExtendedJSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of the BSON document

Descrição

final public MongoDB\BSON\Document::toRelaxedExtendedJSON(): string

Converts the BSON document to its » Relaxed Extended JSON representation. The relaxed format prefers use of JSON type primitives at the expense of type fidelity and is most suited for producing output that can be easily consumed by web APIs and humans.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 MongoDB\BSON\Document::toRelaxedExtendedJSON() example

<?php

$documents = [
[ 'null' => null ],
[ 'boolean' => true ],
[ 'string' => 'foo' ],
[ 'int32' => 123 ],
[ 'int64' => 4294967295 ],
[ 'double' => 1.0, ],
[ 'nan' => NAN ],
[ 'pos_inf' => INF ],
[ 'neg_inf' => -INF ],
[ 'array' => [ 'foo', 'bar' ]],
[ 'document' => [ 'foo' => 'bar' ]],
[ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
[ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
[ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
[ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
[ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
[ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
[ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
[ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
[ 'minkey' => new MongoDB\BSON\MinKey ],
[ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
$bson = MongoDB\BSON\Document::fromPHP($document);
echo $bson->toRelaxedExtendedJSON(), "\n";
}

?>

O exemplo acima produzirá:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : 123 }
{ "int64" : 4294967295 }
{ "double" : 1.0 }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : "2015-10-28T00:00:00Z" } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Veja Também

  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\Document::toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of the BSON document
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » Extended JSON Specification
  • » BSON Types


Returns the string representation of this BSON Document

  • « MongoDB\BSON\Document::toRelaxedExtendedJSON
  • MongoDB\BSON\Document::unserialize »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns the string representation of this BSON Document

MongoDB\BSON\Document::__toString

(mongodb >=1.16.0)

MongoDB\BSON\Document::__toString — Returns the string representation of this BSON Document

Descrição

final public MongoDB\BSON\Document::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this document as BSON.

Veja Também

  • » BSON Types


Unserialize a BSON document

  • « MongoDB\BSON\Document::__toString
  • MongoDB\BSON\PackedArray »
  • PHP Manual
  • MongoDB\BSON\Document
  • Unserialize a BSON document

MongoDB\BSON\Document::unserialize

(mongodb >=1.16.0)

MongoDB\BSON\Document::unserialize — Unserialize a BSON document

Descrição

final public MongoDB\BSON\Document::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\Document.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. data was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\BSON\Document::serialize() - Serialize a Document
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\PackedArray class

(mongodb >=1.16.0)

Introdução

Represents a BSON array. This class is used when reading data as raw BSON and cannot be modified.

Resumo da classe

final class MongoDB\BSON\PackedArray implements MongoDB\BSON\Type, IteratorAggregate, Serializable {
/* Métodos */
final private __construct()
final static public fromPHP(array $value): MongoDB\BSON\PackedArray
final public get(int $key): mixed
final public getIterator(): MongoDB\BSON\Iterator
final public has(int $index): bool
final public serialize(): string
final public toPHP(?array $typeMap = null): array|object
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.17.0 | Implements MongoDB\BSON\Type.
PECL mongodb 1.17.0 | MongoDB\BSON\PackedArray cannot be serialized in contexts where a BSON document is expected. In earlier versions, the BSON array would have been converted to a document.

Índice

  • MongoDB\BSON\PackedArray::__construct — Construct a new BSON array (unused)
  • MongoDB\BSON\PackedArray::fromPHP — Construct a new BSON array instance from PHP data
  • MongoDB\BSON\PackedArray::get — Returns the value of an index in the array
  • MongoDB\BSON\PackedArray::getIterator — Returns an iterator for the BSON array
  • MongoDB\BSON\PackedArray::has — Returns whether a index is present in the array
  • MongoDB\BSON\PackedArray::serialize — Serialize a BSON array
  • MongoDB\BSON\PackedArray::toPHP — Returns the PHP representation of the BSON array
  • MongoDB\BSON\PackedArray::__toString — Returns the string representation of this BSON array
  • MongoDB\BSON\PackedArray::unserialize — Unserialize a BSON array


Construct a new BSON array (unused)

  • « MongoDB\BSON\PackedArray
  • MongoDB\BSON\PackedArray::fromPHP »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Construct a new BSON array (unused)

MongoDB\BSON\PackedArray::__construct

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::__construct — Construct a new BSON array (unused)

Descrição

final private MongoDB\BSON\PackedArray::__construct()

MongoDB\BSON\PackedArray objects are created through static factory methods and cannot be instantiated directly.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • MongoDB\BSON\PackedArray::fromPHP() - Construct a new BSON array instance from PHP data
  • » BSON Types


Construct a new BSON array instance from PHP data

  • « MongoDB\BSON\PackedArray::__construct
  • MongoDB\BSON\PackedArray::get »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Construct a new BSON array instance from PHP data

MongoDB\BSON\PackedArray::fromPHP

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::fromPHP — Construct a new BSON array instance from PHP data

Descrição

final static public MongoDB\BSON\PackedArray::fromPHP(array $value): MongoDB\BSON\PackedArray

Parâmetros

value (array)

The PHP array to convert to a BSON array. The array must be a list (i.e. have sequential numeric keys starting with 0).

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the given array is not a list (i.e. has sequential numeric keys starting with 0).

Veja Também

  • MongoDB\BSON\fromPHP() - Returns the BSON representation of a PHP value
  • » BSON Types


Returns the value of an index in the array

  • « MongoDB\BSON\PackedArray::fromPHP
  • MongoDB\BSON\PackedArray::getIterator »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Returns the value of an index in the array

MongoDB\BSON\PackedArray::get

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::get — Returns the value of an index in the array

Descrição

final public MongoDB\BSON\PackedArray::get(int $key): mixed

Parâmetros

key (int)

The index to retrieve from the array.

Valor Retornado

Returns the value associated with the given index. If the index is not present in the document, an exception is thrown.

Nota: When encountering a value encoded as 64-bit integer in the BSON array, the return value of this method will be a MongoDB\BSON\Int64 instance.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\RuntimeException if the index is not present in the array.

Veja Também

  • MongoDB\BSON\PackedArray::has() - Returns whether a index is present in the array
  • » BSON Types


Returns an iterator for the BSON array

  • « MongoDB\BSON\PackedArray::get
  • MongoDB\BSON\PackedArray::has »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Returns an iterator for the BSON array

MongoDB\BSON\PackedArray::getIterator

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::getIterator — Returns an iterator for the BSON array

Descrição

final public MongoDB\BSON\PackedArray::getIterator(): MongoDB\BSON\Iterator

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a MongoDB\BSON\Iterator instance that can be used to iterate over all indexes in the array.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the BSON iterator could not be initialized.

Veja Também

  • » BSON Types


Returns whether a index is present in the array

  • « MongoDB\BSON\PackedArray::getIterator
  • MongoDB\BSON\PackedArray::serialize »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Returns whether a index is present in the array

MongoDB\BSON\PackedArray::has

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::has — Returns whether a index is present in the array

Descrição

final public MongoDB\BSON\PackedArray::has(int $index): bool

Parâmetros

index (int)

The index to look for in the array.

Valor Retornado

Returns true if the index is present in the array and false otherwise.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\PackedArray::get() - Returns the value of an index in the array
  • » BSON Types


Serialize a BSON array

  • « MongoDB\BSON\PackedArray::has
  • MongoDB\BSON\PackedArray::toPHP »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Serialize a BSON array

MongoDB\BSON\PackedArray::serialize

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::serialize — Serialize a BSON array

Descrição

final public MongoDB\BSON\PackedArray::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\PackedArray.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\PackedArray::unserialize() - Unserialize a BSON array
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the PHP representation of the BSON array

  • « MongoDB\BSON\PackedArray::serialize
  • MongoDB\BSON\PackedArray::__toString »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Returns the PHP representation of the BSON array

MongoDB\BSON\PackedArray::toPHP

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::toPHP — Returns the PHP representation of the BSON array

Descrição

final public MongoDB\BSON\PackedArray::toPHP(?array $typeMap = null): array|object

Parâmetros

typeMap (array)

Configuração de mapeamento de tipos.

Valor Retornado

The decoded PHP value.

Nota: When encountering a value encoded as 64-bit integer in the BSON array, the return value of this method will be a MongoDB\BSON\Int64 instance.

Erros/Exceções

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.

Veja Também

  • MongoDB\BSON\toPHP() - Returns the PHP representation of a BSON value
  • » BSON Types


Returns the string representation of this BSON array

  • « MongoDB\BSON\PackedArray::toPHP
  • MongoDB\BSON\PackedArray::unserialize »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Returns the string representation of this BSON array

MongoDB\BSON\PackedArray::__toString

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::__toString — Returns the string representation of this BSON array

Descrição

final public MongoDB\BSON\PackedArray::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this array as BSON.

Veja Também

  • » BSON Types


Unserialize a BSON array

  • « MongoDB\BSON\PackedArray::__toString
  • MongoDB\BSON\Iterator »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Unserialize a BSON array

MongoDB\BSON\PackedArray::unserialize

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::unserialize — Unserialize a BSON array

Descrição

final public MongoDB\BSON\PackedArray::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\PackedArray.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. data was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\BSON\PackedArray::serialize() - Serialize a BSON array
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\Iterator class

(mongodb >=1.16.0)

Introdução

Iterator used to iterate a BSON document or array.

Resumo da classe

final class MongoDB\BSON\Iterator implements Iterator {
/* Métodos */
final private __construct()
public current(): mixed
public key(): string|int
public next(): void
public rewind(): void
public valid(): bool
}

Índice

  • MongoDB\BSON\Iterator::__construct — Construct a new BSON iterator (unused)
  • MongoDB\BSON\Iterator::current — Returns the current element
  • MongoDB\BSON\Iterator::key — Returns the key of the current element
  • MongoDB\BSON\Iterator::next — Advances the iterator to next element
  • MongoDB\BSON\Iterator::rewind — Rewinds the Iterator to the first element
  • MongoDB\BSON\Iterator::valid — Checks if current position is valid


Construct a new BSON iterator (unused)

  • « MongoDB\BSON\Iterator
  • MongoDB\BSON\Iterator::current »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Construct a new BSON iterator (unused)

MongoDB\BSON\Iterator::__construct

(Não há informação de versão disponível, talvez apenas no Git)

MongoDB\BSON\Iterator::__construct — Construct a new BSON iterator (unused)

Descrição

final private MongoDB\BSON\Iterator::__construct()

MongoDB\BSON\Iterator objects are created by calling MongoDB\BSON\Document::getIterator() or MongoDB\BSON\PackedArray::getIterator() and cannot be instantiated directly.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • MongoDB\BSON\Document::getIterator() - Returns an iterator for the BSON document
  • MongoDB\BSON\PackedArray::getIterator() - Returns an iterator for the BSON array
  • » BSON Types


Returns the current element

  • « MongoDB\BSON\Iterator::__construct
  • MongoDB\BSON\Iterator::key »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Returns the current element

MongoDB\BSON\Iterator::current

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::current — Returns the current element

Descrição

public MongoDB\BSON\Iterator::current(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the value of the current element.

Nota: When encountering a value encoded as 64-bit integer in the BSON structure, the return value of this method will be a MongoDB\BSON\Int64 instance.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\LogicException if the iterator is not valid.

Veja Também

  • Iterator::current() - Retorna o elemento atual


Returns the key of the current element

  • « MongoDB\BSON\Iterator::current
  • MongoDB\BSON\Iterator::next »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Returns the key of the current element

MongoDB\BSON\Iterator::key

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::key — Returns the key of the current element

Descrição

public MongoDB\BSON\Iterator::key(): string|int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the key of the current element. When iterating a BSON document, the key will always be a string. When iterating a BSON array, the key will be an int.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\LogicException if the iterator is not valid.

Veja Também

  • Iterator::key() - Retorna a chave do elemento atual


Advances the iterator to next element

  • « MongoDB\BSON\Iterator::key
  • MongoDB\BSON\Iterator::rewind »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Advances the iterator to next element

MongoDB\BSON\Iterator::next

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::next — Advances the iterator to next element

Descrição

public MongoDB\BSON\Iterator::next(): void

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • Iterator::next() - Move para o próximo elemento


Rewinds the Iterator to the first element

  • « MongoDB\BSON\Iterator::next
  • MongoDB\BSON\Iterator::valid »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Rewinds the Iterator to the first element

MongoDB\BSON\Iterator::rewind

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::rewind — Rewinds the Iterator to the first element

Descrição

public MongoDB\BSON\Iterator::rewind(): void

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • Iterator::rewind() - Retreocede o Iterator para o primeiro elemento


Checks if current position is valid

  • « MongoDB\BSON\Iterator::rewind
  • MongoDB\BSON\Binary »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Checks if current position is valid

MongoDB\BSON\Iterator::valid

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::valid — Checks if current position is valid

Descrição

public MongoDB\BSON\Iterator::valid(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the current iterator position is valid, false otherwise.

Veja Também

  • Iterator::valid() - Verifica se a posição atual é válida


The MongoDB\BSON\Binary class

(mongodb >=1.0.0)

Introdução

BSON type for binary data (i.e. array of bytes). Binary values also have a subtype, which is used to indicate what kind of data is in the byte array. Subtypes from zero to 127 are predefined or reserved. Subtypes from 128-255 are user-defined.

Resumo da classe

final class MongoDB\BSON\Binary implements MongoDB\BSON\BinaryInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Constantes */
const int TYPE_GENERIC = 0;
const int TYPE_FUNCTION = 1;
const int TYPE_OLD_BINARY = 2;
const int TYPE_OLD_UUID = 3;
const int TYPE_UUID = 4;
const int TYPE_MD5 = 5;
const int TYPE_ENCRYPTED = 6;
const int TYPE_COLUMN = 7;
const int TYPE_SENSITIVE = 8;
const int TYPE_USER_DEFINED = 128;
/* Métodos */
final public __construct(string $data, int $type = MongoDB\BSON\Binary::TYPE_GENERIC)
final public getData(): string
final public getType(): int
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Constantes pré-definidas

MongoDB\BSON\Binary::TYPE_GENERIC

Generic binary data.

MongoDB\BSON\Binary::TYPE_FUNCTION

Function.

MongoDB\BSON\Binary::TYPE_OLD_BINARY

Generic binary data (deprecated in favor of MongoDB\BSON\Binary::TYPE_GENERIC).

MongoDB\BSON\Binary::TYPE_OLD_UUID

Universally unique identifier (deprecated in favor of MongoDB\BSON\Binary::TYPE_UUID). When using this type, the Binary's data should be 16 bytes in length.

Historically, other drivers encoded values with this type based on their language conventions (e.g. varying endianness), which makes it non-portable. The PHP driver applies no special handling for encoding or decoding data with this type.

MongoDB\BSON\Binary::TYPE_UUID

Universally unique identifier. When using this type, the Binary's data should be 16 bytes in length and encoded according to » RFC 4122.

MongoDB\BSON\Binary::TYPE_MD5

MD5 hash. When using this type, the Binary's data should be 16 bytes in length.

MongoDB\BSON\Binary::TYPE_ENCRYPTED

Encrypted value. This subtype is used for client-side encryption.

MongoDB\BSON\Binary::TYPE_COLUMN

Column data. This subtype is used for time-series collections.

MongoDB\BSON\Binary::TYPE_SENSITIVE

Sensitive data. This subtype is used for sensitive data that should be excluded from server-side logging when possible.

MongoDB\BSON\Binary::TYPE_USER_DEFINED

User-defined type. While types between 0 and 127 are predefined or reserved, types between 128 and 255 are user-defined and may be used for anything.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.17.0 | Added MongoDB\BSON\Binary::TYPE_SENSITIVE.
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+. Added MongoDB\BSON\Binary::TYPE_COLUMN.
PECL mongodb 1.7.0 | Added MongoDB\BSON\Binary::TYPE_ENCRYPTED.
PECL mongodb 1.3.0 | Implements MongoDB\BSON\BinaryInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Índice

  • MongoDB\BSON\Binary::__construct — Construct a new Binary
  • MongoDB\BSON\Binary::getData — Returns the Binary's data
  • MongoDB\BSON\Binary::getType — Returns the Binary's type
  • MongoDB\BSON\Binary::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Binary::serialize — Serialize a Binary
  • MongoDB\BSON\Binary::__toString — Returns the Binary's data
  • MongoDB\BSON\Binary::unserialize — Unserialize a Binary


Construct a new Binary

  • « MongoDB\BSON\Binary
  • MongoDB\BSON\Binary::getData »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Construct a new Binary

MongoDB\BSON\Binary::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Binary::__construct — Construct a new Binary

Descrição

final public MongoDB\BSON\Binary::__construct(string $data, int $type = MongoDB\BSON\Binary::TYPE_GENERIC)

Parâmetros

data (string)

Binary data.

type (int)

Unsigned 8-bit integer denoting the data's type. Defaults to MongoDB\BSON\Binary::TYPE_GENERIC if not specified.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if type is not an unsigned 8-bit integer.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if type is MongoDB\BSON\Binary::TYPE_UUID or MongoDB\BSON\Binary::TYPE_OLD_UUID and data is not exactly 16 bytes in length.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.15.0 | The type parameter defaults to MongoDB\BSON\Binary::TYPE_GENERIC if not specified.
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\InvalidArgumentException is thrown if type is MongoDB\BSON\Binary::TYPE_UUID or MongoDB\BSON\Binary::TYPE_OLD_UUID and data is not exactly 16 bytes in length.
PECL mongodb 1.1.3 | MongoDB\Driver\Exception\InvalidArgumentException is thrown if type is not an unsigned 8-bit integer.

Exemplos

Exemplo #1 MongoDB\BSON\Binary::__construct() example

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary);

?>

O exemplo acima produzirá:

object(MongoDB\BSON\Binary)#1 (2) {
  ["data"]=>
  string(3) "foo"
  ["type"]=>
  int(0)
}

Veja Também

  • » BSON Types


Returns the Binary's data

  • « MongoDB\BSON\Binary::__construct
  • MongoDB\BSON\Binary::getType »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns the Binary's data

MongoDB\BSON\Binary::getData

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getData — Returns the Binary's data

Descrição

final public MongoDB\BSON\Binary::getData(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Binary's data.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\Binary::getData() example

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary->getData());

?>

O exemplo acima produzirá:

string(3) "foo"

Veja Também

  • » BSON Types


Returns the Binary's type

  • « MongoDB\BSON\Binary::getData
  • MongoDB\BSON\Binary::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns the Binary's type

MongoDB\BSON\Binary::getType

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getType — Returns the Binary's type

Descrição

final public MongoDB\BSON\Binary::getType(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Binary's type.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\Binary::getType() example

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary->getType());

?>

O exemplo acima produzirá:

int(0)

Veja Também

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Binary::getType
  • MongoDB\BSON\Binary::serialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Binary::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\Binary::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Binary.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Binary

  • « MongoDB\BSON\Binary::jsonSerialize
  • MongoDB\BSON\Binary::__toString »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Serialize a Binary

MongoDB\BSON\Binary::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::serialize — Serialize a Binary

Descrição

final public MongoDB\BSON\Binary::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\Binary.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Binary::unserialize() - Unserialize a Binary
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the Binary's data

  • « MongoDB\BSON\Binary::serialize
  • MongoDB\BSON\Binary::unserialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns the Binary's data

MongoDB\BSON\Binary::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Binary::__toString — Returns the Binary's data

Descrição

final public MongoDB\BSON\Binary::__toString(): string

Este método é um apelido para: MongoDB\BSON\Binary::getData().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Binary's data.

Exemplos

Exemplo #1 MongoDB\BSON\Binary::__toString() example

<?php

var_dump((string) new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC));

?>

O exemplo acima produzirá:

string(3) "foo"

Veja Também

  • MongoDB\BSON\Binary::getData() - Returns the Binary's data
  • » BSON Types


Unserialize a Binary

  • « MongoDB\BSON\Binary::__toString
  • MongoDB\BSON\Decimal128 »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Unserialize a Binary

MongoDB\BSON\Binary::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::unserialize — Unserialize a Binary

Descrição

final public MongoDB\BSON\Binary::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\Binary.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\BSON\Binary::serialize() - Serialize a Binary
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\Decimal128 class

(mongodb >=1.2.0)

Introdução

BSON type for the » Decimal128 floating-point format, which supports numbers with up to 34 decimal digits (i.e. significant digits) and an exponent range of -6143 to +6144.

Unlike the double BSON type (i.e. float in PHP), which only stores an approximation of the decimal values, the decimal data type stores the exact value. For example, MongoDB\BSON\Decimal128('9.99') has a precise value of 9.99 where as a double 9.99 would have an approximate value of 9.9900000000000002131628….

Nota: MongoDB\BSON\Decimal128 só é compatível com o MongoDB 3.4+. Tentar usar o tipo BSON com uma versão anterior do MongoDB resultará em erro.

Resumo da classe

final class MongoDB\BSON\Decimal128 implements MongoDB\BSON\Decimal128Interface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Métodos */
final public __construct(string $value)
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.
PECL mongodb 1.3.0 | Implements MongoDB\BSON\Decimal128Interface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Índice

  • MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128
  • MongoDB\BSON\Decimal128::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Decimal128::serialize — Serialize a Decimal128
  • MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128
  • MongoDB\BSON\Decimal128::unserialize — Unserialize a Decimal128


Construct a new Decimal128

  • « MongoDB\BSON\Decimal128
  • MongoDB\BSON\Decimal128::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Construct a new Decimal128

MongoDB\BSON\Decimal128::__construct

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128

Descrição

final public MongoDB\BSON\Decimal128::__construct(string $value)

Nota: MongoDB\BSON\Decimal128 só é compatível com o MongoDB 3.4+. Tentar usar o tipo BSON com uma versão anterior do MongoDB resultará em erro.

Parâmetros

value (string)

A decimal string.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if value is not a valid decimal string.

Exemplos

Exemplo #1 MongoDB\BSON\Decimal128::__construct() example

<?php

var_dump(new MongoDB\BSON\Decimal128(1234.5678));
var_dump(new MongoDB\BSON\Decimal128(NAN));
var_dump(new MongoDB\BSON\Decimal128(INF));

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(9) "1234.5678"
}
object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(3) "NaN"
}
object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(8) "Infinity"
}

Veja Também

  • » Decimal128 floating-point format
  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Decimal128::__construct
  • MongoDB\BSON\Decimal128::serialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Decimal128::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\Decimal128::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Decimal128.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Decimal128

  • « MongoDB\BSON\Decimal128::jsonSerialize
  • MongoDB\BSON\Decimal128::__toString »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Serialize a Decimal128

MongoDB\BSON\Decimal128::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::serialize — Serialize a Decimal128

Descrição

final public MongoDB\BSON\Decimal128::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\Decimal128.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Decimal128::unserialize() - Unserialize a Decimal128
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the string representation of this Decimal128

  • « MongoDB\BSON\Decimal128::serialize
  • MongoDB\BSON\Decimal128::unserialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Returns the string representation of this Decimal128

MongoDB\BSON\Decimal128::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128

Descrição

final public MongoDB\BSON\Decimal128::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this Decimal128.

Exemplos

Exemplo #1 MongoDB\BSON\Decimal128::__toString() example

<?php

var_dump((string) new MongoDB\BSON\Decimal128(1234.5678));
var_dump((string) new MongoDB\BSON\Decimal128(NAN));
var_dump((string) new MongoDB\BSON\Decimal128(INF));

?>

O exemplo acima produzirá algo semelhante a:

string(9) "1234.5678"
string(3) "NaN"
string(8) "Infinity"

Veja Também

  • » Decimal128 floating-point format
  • » BSON Types


Unserialize a Decimal128

  • « MongoDB\BSON\Decimal128::__toString
  • MongoDB\BSON\Javascript »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Unserialize a Decimal128

MongoDB\BSON\Decimal128::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::unserialize — Unserialize a Decimal128

Descrição

final public MongoDB\BSON\Decimal128::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\Decimal128.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\BSON\Decimal128::serialize() - Serialize a Decimal128
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\Javascript class

(mongodb >=1.0.0)

Introdução

BSON type for Javascript code. An optional scope document may be specified that maps identifiers to values and defines the scope in which the code should be evaluated by the server.

Nota: This BSON type is mainly used when executing database commands that take a Javascript function as a parameter, such as » mapReduce.

Resumo da classe

final class MongoDB\BSON\Javascript implements MongoDB\BSON\JavascriptInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Métodos */
final public __construct(string $code, array|object|null $scope = null)
final public getCode(): string
final public getScope(): ?object
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.
PECL mongodb 1.3.0 | Implements MongoDB\BSON\JavascriptInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Índice

  • MongoDB\BSON\Javascript::__construct — Construct a new Javascript
  • MongoDB\BSON\Javascript::getCode — Returns the Javascript's code
  • MongoDB\BSON\Javascript::getScope — Returns the Javascript's scope document
  • MongoDB\BSON\Javascript::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Javascript::serialize — Serialize a Javascript
  • MongoDB\BSON\Javascript::__toString — Returns the Javascript's code
  • MongoDB\BSON\Javascript::unserialize — Unserialize a Javascript


Construct a new Javascript

  • « MongoDB\BSON\Javascript
  • MongoDB\BSON\Javascript::getCode »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Construct a new Javascript

MongoDB\BSON\Javascript::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Javascript::__construct — Construct a new Javascript

Descrição

final public MongoDB\BSON\Javascript::__construct(string $code, array|object|null $scope = null)

Parâmetros

code (string)

Javascript code.

scope (array|object)

Javascript scope.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if code contains null bytes.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.2.0 | MongoDB\Driver\Exception\InvalidArgumentException is thrown if code contains null bytes. Previously, values would be truncated at the first null byte.

Exemplos

Exemplo #1 MongoDB\BSON\Javascript::__construct() example

<?php

$code = new MongoDB\BSON\Javascript('function() { return 1; }');
var_dump($code);

$codews = new MongoDB\BSON\Javascript('function() { return foo; }', ['foo' => 'bar']);
var_dump($codews);

?>

O exemplo acima produzirá:

object(MongoDB\BSON\Javascript)#1 (2) {
  ["javascript"]=>
  string(24) "function() { return 1; }"
  ["scope"]=>
  object(stdClass)#2 (0) {
  }
}
object(MongoDB\BSON\Javascript)#2 (2) {
  ["javascript"]=>
  string(26) "function() { return foo; }"
  ["scope"]=>
  object(stdClass)#1 (1) {
    ["foo"]=>
    string(3) "bar"
  }
}

Veja Também

  • » BSON Types


Returns the Javascript's code

  • « MongoDB\BSON\Javascript::__construct
  • MongoDB\BSON\Javascript::getScope »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Returns the Javascript's code

MongoDB\BSON\Javascript::getCode

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::getCode — Returns the Javascript's code

Descrição

final public MongoDB\BSON\Javascript::getCode(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Javascript's code.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\Javascript::getCode() example

<?php

$js = new MongoDB\BSON\Javascript('function foo(bar) { return bar; }');
var_dump($js->getCode());

?>

O exemplo acima produzirá:

string(33) "function foo(bar) { return bar; }"

Veja Também

  • » BSON Types


Returns the Javascript's scope document

  • « MongoDB\BSON\Javascript::getCode
  • MongoDB\BSON\Javascript::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Returns the Javascript's scope document

MongoDB\BSON\Javascript::getScope

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::getScope — Returns the Javascript's scope document

Descrição

final public MongoDB\BSON\Javascript::getScope(): ?object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Javascript's scope document, or null if the is no scope.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\Javascript::getScope() example

<?php

$js = new MongoDB\BSON\Javascript('function foo(bar) { return bar; }');
var_dump($js->getScope());

$js = new MongoDB\BSON\Javascript('function foo() { return foo; }', ['foo' => 42]);
var_dump($js->getScope());

?>

O exemplo acima produzirá:

NULL
object(stdClass)#1 (1) {
  ["foo"]=>
  int(42)
}

Veja Também

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Javascript::getScope
  • MongoDB\BSON\Javascript::serialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Javascript::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\Javascript::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Javascript.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Javascript

  • « MongoDB\BSON\Javascript::jsonSerialize
  • MongoDB\BSON\Javascript::__toString »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Serialize a Javascript

MongoDB\BSON\Javascript::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::serialize — Serialize a Javascript

Descrição

final public MongoDB\BSON\Javascript::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\Javascript.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Javascript::unserialize() - Unserialize a Javascript
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the Javascript's code

  • « MongoDB\BSON\Javascript::serialize
  • MongoDB\BSON\Javascript::unserialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Returns the Javascript's code

MongoDB\BSON\Javascript::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::__toString — Returns the Javascript's code

Descrição

final public MongoDB\BSON\Javascript::__toString(): string

Este método é um apelido para: MongoDB\BSON\Javascript::getCode().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Javascript's code.

Exemplos

Exemplo #1 MongoDB\BSON\Javascript::__toString() example

<?php

var_dump((string) new MongoDB\BSON\Javascript('function foo(bar) { return bar; }'));

?>

O exemplo acima produzirá:

string(33) "function foo(bar) { return bar; }"

Veja Também

  • MongoDB\BSON\Javascript::getCode() - Returns the Javascript's code
  • » BSON Types


Unserialize a Javascript

  • « MongoDB\BSON\Javascript::__toString
  • MongoDB\BSON\MaxKey »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Unserialize a Javascript

MongoDB\BSON\Javascript::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::unserialize — Unserialize a Javascript

Descrição

final public MongoDB\BSON\Javascript::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\Javascript.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\BSON\Javascript::serialize() - Serialize a Javascript
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\MaxKey class

(mongodb >=1.0.0)

Introdução

Special BSON type which compares higher than all other possible BSON element values.

Nota: This is an internal MongoDB type used for indexing and sharding.

Resumo da classe

final class MongoDB\BSON\MaxKey implements MongoDB\BSON\MaxKeyInterface, MongoDB\BSON\Type, Serializable, JsonSerializable {
/* Métodos */
final public __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.3.0 | Implements MongoDB\BSON\MaxKeyInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Índice

  • MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey
  • MongoDB\BSON\MaxKey::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\MaxKey::serialize — Serialize a MaxKey
  • MongoDB\BSON\MaxKey::unserialize — Unserialize a MaxKey


Construct a new MaxKey

  • « MongoDB\BSON\MaxKey
  • MongoDB\BSON\MaxKey::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Construct a new MaxKey

MongoDB\BSON\MaxKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey

Descrição

final public MongoDB\BSON\MaxKey::__construct()

Parâmetros

Esta função não possui parâmetros.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\MaxKey::__construct() example

<?php

var_dump(new MongoDB\BSON\MaxKey());

?>

O exemplo acima produzirá:

object(MongoDB\BSON\MaxKey)#1 (0) {
}

Veja Também

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\MaxKey::__construct
  • MongoDB\BSON\MaxKey::serialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Returns a representation that can be converted to JSON

MongoDB\BSON\MaxKey::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\MaxKey::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\MaxKey.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a MaxKey

  • « MongoDB\BSON\MaxKey::jsonSerialize
  • MongoDB\BSON\MaxKey::unserialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Serialize a MaxKey

MongoDB\BSON\MaxKey::serialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::serialize — Serialize a MaxKey

Descrição

final public MongoDB\BSON\MaxKey::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\MaxKey.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\MaxKey::unserialize() - Unserialize a MaxKey
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Unserialize a MaxKey

  • « MongoDB\BSON\MaxKey::serialize
  • MongoDB\BSON\MinKey »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Unserialize a MaxKey

MongoDB\BSON\MaxKey::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::unserialize — Unserialize a MaxKey

Descrição

final public MongoDB\BSON\MaxKey::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\MaxKey.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\MaxKey::serialize() - Serialize a MaxKey
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\MinKey class

(mongodb >=1.0.0)

Introdução

Special BSON type which compares lower than all other possible BSON element values.

Nota: This is an internal MongoDB type used for indexing and sharding.

Resumo da classe

final class MongoDB\BSON\MinKey implements MongoDB\BSON\MinKeyInterface, MongoDB\BSON\Type, Serializable, JsonSerializable {
/* Métodos */
final public __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.3.0 | Implements MongoDB\BSON\MinKeyInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Índice

  • MongoDB\BSON\MinKey::__construct — Construct a new MinKey
  • MongoDB\BSON\MinKey::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\MinKey::serialize — Serialize a MinKey
  • MongoDB\BSON\MinKey::unserialize — Unserialize a MinKey


Construct a new MinKey

  • « MongoDB\BSON\MinKey
  • MongoDB\BSON\MinKey::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Construct a new MinKey

MongoDB\BSON\MinKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MinKey::__construct — Construct a new MinKey

Descrição

final public MongoDB\BSON\MinKey::__construct()

Parâmetros

Esta função não possui parâmetros.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\MinKey::__construct() example

<?php

var_dump(new MongoDB\BSON\MinKey());

?>

O exemplo acima produzirá:

object(MongoDB\BSON\MinKey)#1 (0) {
}

Veja Também

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\MinKey::__construct
  • MongoDB\BSON\MinKey::serialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Returns a representation that can be converted to JSON

MongoDB\BSON\MinKey::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\MinKey::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\MinKey.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a MinKey

  • « MongoDB\BSON\MinKey::jsonSerialize
  • MongoDB\BSON\MinKey::unserialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Serialize a MinKey

MongoDB\BSON\MinKey::serialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::serialize — Serialize a MinKey

Descrição

final public MongoDB\BSON\MinKey::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\MinKey.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\MinKey::unserialize() - Unserialize a MinKey
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Unserialize a MinKey

  • « MongoDB\BSON\MinKey::serialize
  • MongoDB\BSON\ObjectId »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Unserialize a MinKey

MongoDB\BSON\MinKey::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::unserialize — Unserialize a MinKey

Descrição

final public MongoDB\BSON\MinKey::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\MinKey.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\MinKey::serialize() - Serialize a MinKey
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\ObjectId class

(mongodb >=1.0.0)

Introdução

BSON type for an » ObjectId. The value consists of 12 bytes, where the first four bytes are a timestamp that reflect the ObjectId's creation. Specifically, the value consists of:

  • a 4-byte value representing the seconds since the Unix epoch,
  • a 5-byte random number unique to a machine and process, and
  • a 3-byte counter, starting with a random value.

In MongoDB, each document stored in a collection requires a unique _id field that acts as a primary key. If an inserted document omits the _id field, the driver automatically generates an ObjectId for the _id field.

Using ObjectIds for the _id field provides the following additional benefits:

  • The creation time of the ObjectId may be accessed using the MongoDB\BSON\ObjectId::getTimestamp() method.
  • Sorting on an _id field that stores ObjectId values is roughly equivalent to sorting by creation time.

Resumo da classe

final class MongoDB\BSON\ObjectId implements MongoDB\BSON\ObjectIdInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Métodos */
final public __construct(?string $id = null)
final public getTimestamp(): int
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.
PECL mongodb 1.3.0 | Renamed from MongoDB\BSON\ObjectID to MongoDB\BSON\ObjectId. Implements MongoDB\BSON\ObjectIdInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Índice

  • MongoDB\BSON\ObjectId::__construct — Construct a new ObjectId
  • MongoDB\BSON\ObjectId::getTimestamp — Returns the timestamp component of this ObjectId
  • MongoDB\BSON\ObjectId::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\ObjectId::serialize — Serialize an ObjectId
  • MongoDB\BSON\ObjectId::__toString — Returns the hexidecimal representation of this ObjectId
  • MongoDB\BSON\ObjectId::unserialize — Unserialize an ObjectId


Construct a new ObjectId

  • « MongoDB\BSON\ObjectId
  • MongoDB\BSON\ObjectId::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Construct a new ObjectId

MongoDB\BSON\ObjectId::__construct

(mongodb >=1.0.0)

MongoDB\BSON\ObjectId::__construct — Construct a new ObjectId

Descrição

final public MongoDB\BSON\ObjectId::__construct(?string $id = null)

Parâmetros

id (string)

A 24-character hexadecimal string. If not provided, the driver will generate an ObjectId.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if id is not a 24-character hexadecimal string.

Exemplos

Exemplo #1 MongoDB\BSON\ObjectId::__construct() example

<?php

var_dump(new MongoDB\BSON\ObjectId());

var_dump(new MongoDB\BSON\ObjectId('000000000000000000000001'));

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\BSON\ObjectId)#1 (1) {
  ["oid"]=>
  string(24) "56732d3dda14d81214634921"
}
object(MongoDB\BSON\ObjectId)#1 (1) {
  ["oid"]=>
  string(24) "000000000000000000000001"
}

Veja Também

  • » ObjectId Reference
  • » BSON Types: ObjectId


Returns the timestamp component of this ObjectId

  • « MongoDB\BSON\ObjectId::__construct
  • MongoDB\BSON\ObjectId::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Returns the timestamp component of this ObjectId

MongoDB\BSON\ObjectId::getTimestamp

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::getTimestamp — Returns the timestamp component of this ObjectId

Descrição

final public MongoDB\BSON\ObjectId::getTimestamp(): int

The timestamp component of an ObjectId is its most significant 32 bits, which denotes the number of seconds since the Unix epoch. This value is read as an unsigned 32-bit integer with big-endian byte order.

Nota: Como o tipo inteiro do PHP possui sinal, alguns valores retornados por este método podem aparecer como números inteiros negativos em plataformas de 32 bits. O formatador "%u" de sprintf() pode ser usado para obter uma representação em string do valor decimal sem sinal.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the timestamp component of this ObjectId.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\ObjectId::getTimestamp() example

<?php

var_dump((new MongoDB\BSON\ObjectId())->getTimestamp());

var_dump((new MongoDB\BSON\ObjectId('0000002a0000000000000000'))->getTimestamp());

?>

O exemplo acima produzirá algo semelhante a:

integer(1484854719)
integer(42)

Veja Também

  • » ObjectId Reference
  • » BSON Types: ObjectId


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\ObjectId::getTimestamp
  • MongoDB\BSON\ObjectId::serialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Returns a representation that can be converted to JSON

MongoDB\BSON\ObjectId::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\ObjectId::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\ObjectId.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize an ObjectId

  • « MongoDB\BSON\ObjectId::jsonSerialize
  • MongoDB\BSON\ObjectId::__toString »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Serialize an ObjectId

MongoDB\BSON\ObjectId::serialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::serialize — Serialize an ObjectId

Descrição

final public MongoDB\BSON\ObjectId::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\ObjectId.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\ObjectId::unserialize() - Unserialize an ObjectId
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the hexidecimal representation of this ObjectId

  • « MongoDB\BSON\ObjectId::serialize
  • MongoDB\BSON\ObjectId::unserialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Returns the hexidecimal representation of this ObjectId

MongoDB\BSON\ObjectId::__toString

(mongodb >=1.0.0)

MongoDB\BSON\ObjectId::__toString — Returns the hexidecimal representation of this ObjectId

Descrição

final public MongoDB\BSON\ObjectId::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the hexidecimal representation of this ObjectId.

Exemplos

Exemplo #1 MongoDB\BSON\ObjectId::__toString() example

<?php

var_dump((string) new MongoDB\BSON\ObjectId());
var_dump((string) new MongoDB\BSON\ObjectId('000000000000000000000001'));

?>

O exemplo acima produzirá algo semelhante a:

string(24) "56731b49da14d8747d701211"
string(24) "000000000000000000000001"

Veja Também

  • » ObjectId Reference
  • » BSON Types: ObjectId


Unserialize an ObjectId

  • « MongoDB\BSON\ObjectId::__toString
  • MongoDB\BSON\Regex »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Unserialize an ObjectId

MongoDB\BSON\ObjectId::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::unserialize — Unserialize an ObjectId

Descrição

final public MongoDB\BSON\ObjectId::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\ObjectId.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\BSON\ObjectId::serialize() - Serialize an ObjectId
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\Regex class

(mongodb >=1.0.0)

Introdução

BSON type for a regular expression pattern and optional » flags.

Nota: This BSON type is mainly used when querying the database. Alternatively, the » $regex query operator may be used.

Resumo da classe

final class MongoDB\BSON\Regex implements MongoDB\BSON\RegexInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Métodos */
final public __construct(string $pattern, string $flags = "")
final public getFlags(): string
final public getPattern(): string
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.
PECL mongodb 1.3.0 | Implements MongoDB\BSON\RegexInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Índice

  • MongoDB\BSON\Regex::__construct — Construct a new Regex
  • MongoDB\BSON\Regex::getFlags — Returns the Regex's flags
  • MongoDB\BSON\Regex::getPattern — Returns the Regex's pattern
  • MongoDB\BSON\Regex::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Regex::serialize — Serialize a Regex
  • MongoDB\BSON\Regex::__toString — Returns the string representation of this Regex
  • MongoDB\BSON\Regex::unserialize — Unserialize a Regex


Construct a new Regex

  • « MongoDB\BSON\Regex
  • MongoDB\BSON\Regex::getFlags »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Construct a new Regex

MongoDB\BSON\Regex::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Regex::__construct — Construct a new Regex

Descrição

final public MongoDB\BSON\Regex::__construct(string $pattern, string $flags = "")

Parâmetros

pattern (string)

The regular expression pattern.

Nota: The pattern should not be wrapped with delimiter characters.

flags (string)

The » regular expression flags. Characters in this argument will be sorted alphabetically.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if pattern or flags contain null bytes.

Registro de Alterações

Versão Descrição
PECL mongodb 1.2.0

The flags argument is optional and defaults to an empty string.

Characters in the flags argument will be sorted alphabetically when a Regex is constructed. Previously, the characters were stored in the order provided.

MongoDB\Driver\Exception\InvalidArgumentException is thrown if pattern or flags contain null bytes. Previously, values would be truncated at the first null byte.

Exemplos

Exemplo #1 MongoDB\BSON\Regex::__construct() example

<?php

$regex = new MongoDB\BSON\Regex('^foo', 'i');
var_dump($regex);

?>

O exemplo acima produzirá:

object(MongoDB\BSON\Regex)#1 (2) {
  ["pattern"]=>
  string(4) "^foo"
  ["flags"]=>
  string(1) "i"
}

Veja Também

  • » BSON Types
  • » Supported regular expression flags


Returns the Regex's flags

  • « MongoDB\BSON\Regex::__construct
  • MongoDB\BSON\Regex::getPattern »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns the Regex's flags

MongoDB\BSON\Regex::getFlags

(mongodb >=1.0.0)

MongoDB\BSON\Regex::getFlags — Returns the Regex's flags

Descrição

final public MongoDB\BSON\Regex::getFlags(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Regex's flags.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\Regex::getFlags() example

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump($regex->getFlags());

?>

O exemplo acima produzirá algo semelhante a:

string(1) "i"

Veja Também

  • » BSON Types
  • » Supported regular expression flags


Returns the Regex's pattern

  • « MongoDB\BSON\Regex::getFlags
  • MongoDB\BSON\Regex::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns the Regex's pattern

MongoDB\BSON\Regex::getPattern

(mongodb >=1.0.0)

MongoDB\BSON\Regex::getPattern — Returns the Regex's pattern

Descrição

final public MongoDB\BSON\Regex::getPattern(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Regex's pattern.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\Regex::getPattern() example

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump($regex->getPattern());

?>

O exemplo acima produzirá algo semelhante a:

string(5) "regex"

Veja Também

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Regex::getPattern
  • MongoDB\BSON\Regex::serialize »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Regex::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\Regex::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Regex.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Regex

  • « MongoDB\BSON\Regex::jsonSerialize
  • MongoDB\BSON\Regex::__toString »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Serialize a Regex

MongoDB\BSON\Regex::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::serialize — Serialize a Regex

Descrição

final public MongoDB\BSON\Regex::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\Regex.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Regex::unserialize() - Unserialize a Regex
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the string representation of this Regex

  • « MongoDB\BSON\Regex::serialize
  • MongoDB\BSON\Regex::unserialize »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns the string representation of this Regex

MongoDB\BSON\Regex::__toString

(mongodb >=1.0.0)

MongoDB\BSON\Regex::__toString — Returns the string representation of this Regex

Descrição

final public MongoDB\BSON\Regex::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this Regex.

Exemplos

Exemplo #1 MongoDB\BSON\Regex::__toString() example

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump((string) $regex);

?>

O exemplo acima produzirá:

string(8) "/regex/i"

Veja Também

  • » BSON Types


Unserialize a Regex

  • « MongoDB\BSON\Regex::__toString
  • MongoDB\BSON\Timestamp »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Unserialize a Regex

MongoDB\BSON\Regex::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::unserialize — Unserialize a Regex

Descrição

final public MongoDB\BSON\Regex::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\Regex.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\BSON\Regex::serialize() - Serialize a Regex
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\Timestamp class

(mongodb >=1.0.0)

Introdução

Represents a » BSON timestamp, The value consists of a 4-byte timestamp (i.e. seconds since the epoch) and a 4-byte increment.

Nota: This is an internal MongoDB type used for replication and sharding. It is not intended for general date storage (MongoDB\BSON\UTCDateTime should be used instead).

Resumo da classe

final class MongoDB\BSON\Timestamp implements MongoDB\BSON\TimestampInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Métodos */
final public __construct(int $increment, int $timestamp)
final public getIncrement(): int
final public getTimestamp(): int
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.
PECL mongodb 1.3.0 | Implements MongoDB\BSON\TimestampInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Índice

  • MongoDB\BSON\Timestamp::__construct — Construct a new Timestamp
  • MongoDB\BSON\Timestamp::getIncrement — Returns the increment component of this Timestamp
  • MongoDB\BSON\Timestamp::getTimestamp — Returns the timestamp component of this Timestamp
  • MongoDB\BSON\Timestamp::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Timestamp::serialize — Serialize a Timestamp
  • MongoDB\BSON\Timestamp::__toString — Returns the string representation of this Timestamp
  • MongoDB\BSON\Timestamp::unserialize — Unserialize a Timestamp


Construct a new Timestamp

  • « MongoDB\BSON\Timestamp
  • MongoDB\BSON\Timestamp::getIncrement »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Construct a new Timestamp

MongoDB\BSON\Timestamp::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Timestamp::__construct — Construct a new Timestamp

Descrição

final public MongoDB\BSON\Timestamp::__construct(int $increment, int $timestamp)

Parâmetros

increment (int)

32-bit integer denoting the incrementing ordinal for operations within a given second.

timestamp (int)

32-bit integer denoting seconds since the Unix epoch.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\Timestamp::__construct() example

<?php

$timestamp = new MongoDB\BSON\Timestamp(1234, 5678);

?>

O exemplo acima produzirá:

object(MongoDB\BSON\Timestamp)#1 (2) {
  ["increment"]=>
  int(1234)
  ["timestamp"]=>
  int(5678)
}

Veja Também

  • » BSON Types: Timestamps


Returns the increment component of this Timestamp

  • « MongoDB\BSON\Timestamp::__construct
  • MongoDB\BSON\Timestamp::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Returns the increment component of this Timestamp

MongoDB\BSON\Timestamp::getIncrement

(mongodb >=1.3.0)

MongoDB\BSON\Timestamp::getIncrement — Returns the increment component of this Timestamp

Descrição

final public MongoDB\BSON\Timestamp::getIncrement(): int

The increment component of a Timestamp is its least significant 32 bits, whichs denotes the incrementing ordinal for operations within a given second. This value is read as an unsigned 32-bit integer with big-endian byte order.

Nota: Como o tipo inteiro do PHP possui sinal, alguns valores retornados por este método podem aparecer como números inteiros negativos em plataformas de 32 bits. O formatador "%u" de sprintf() pode ser usado para obter uma representação em string do valor decimal sem sinal.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the increment component of this Timestamp.

Aviso

On 32-bit systems this method may return a negative number. Although the increment and timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can not represent these on 32-bit platforms.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • » BSON Types: Timestamps


Returns the timestamp component of this Timestamp

  • « MongoDB\BSON\Timestamp::getIncrement
  • MongoDB\BSON\Timestamp::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Returns the timestamp component of this Timestamp

MongoDB\BSON\Timestamp::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\Timestamp::getTimestamp — Returns the timestamp component of this Timestamp

Descrição

final public MongoDB\BSON\Timestamp::getTimestamp(): int

The timestamp component of a Timestamp is its most significant 32 bits, which denotes the number of seconds since the Unix epoch. This value is read as an unsigned 32-bit integer with big-endian byte order.

Nota: Como o tipo inteiro do PHP possui sinal, alguns valores retornados por este método podem aparecer como números inteiros negativos em plataformas de 32 bits. O formatador "%u" de sprintf() pode ser usado para obter uma representação em string do valor decimal sem sinal.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the timestamp component of this Timestamp.

Aviso

On 32-bit systems this method may return a negative number. Although the increment and timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can not represent these on 32-bit platforms.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • » BSON Types: Timestamps


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Timestamp::getTimestamp
  • MongoDB\BSON\Timestamp::serialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Timestamp::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\Timestamp::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Timestamp.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Timestamp

  • « MongoDB\BSON\Timestamp::jsonSerialize
  • MongoDB\BSON\Timestamp::__toString »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Serialize a Timestamp

MongoDB\BSON\Timestamp::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::serialize — Serialize a Timestamp

Descrição

final public MongoDB\BSON\Timestamp::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\Timestamp.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Timestamp::unserialize() - Unserialize a Timestamp
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the string representation of this Timestamp

  • « MongoDB\BSON\Timestamp::serialize
  • MongoDB\BSON\Timestamp::unserialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Returns the string representation of this Timestamp

MongoDB\BSON\Timestamp::__toString

(mongodb >=1.0.0)

MongoDB\BSON\Timestamp::__toString — Returns the string representation of this Timestamp

Descrição

final public MongoDB\BSON\Timestamp::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this Timestamp.

Exemplos

Exemplo #1 MongoDB\BSON\Timestamp::__toString() example

<?php

$timestamp = new MongoDB\BSON\Timestamp(1234, 5678);
var_dump((string) $timestamp);

?>

O exemplo acima produzirá algo semelhante a:

string(11) "[1234:5678]"

Veja Também

  • » BSON Types: Timestamps


Unserialize a Timestamp

  • « MongoDB\BSON\Timestamp::__toString
  • MongoDB\BSON\UTCDateTime »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Unserialize a Timestamp

MongoDB\BSON\Timestamp::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::unserialize — Unserialize a Timestamp

Descrição

final public MongoDB\BSON\Timestamp::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\Timestamp.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\BSON\Timestamp::serialize() - Serialize a Timestamp
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\UTCDateTime class

(mongodb >=1.0.0)

Introdução

Represents a » BSON date. The value is a 64-bit integer that represents the number of milliseconds since the Unix epoch (Jan 1, 1970). Negative values represent dates before 1970.

Resumo da classe

final class MongoDB\BSON\UTCDateTime implements MongoDB\BSON\UTCDateTimeInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Métodos */
final public __construct(int|float|string|DateTimeInterface|null $milliseconds = null)
final public jsonSerialize(): mixed
final public serialize(): string
final public toDateTime(): DateTime
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.
PECL mongodb 1.3.0 | Implements MongoDB\BSON\UTCDateTimeInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Índice

  • MongoDB\BSON\UTCDateTime::__construct — Construct a new UTCDateTime
  • MongoDB\BSON\UTCDateTime::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\UTCDateTime::serialize — Serialize a UTCDateTime
  • MongoDB\BSON\UTCDateTime::toDateTime — Returns the DateTime representation of this UTCDateTime
  • MongoDB\BSON\UTCDateTime::__toString — Returns the string representation of this UTCDateTime
  • MongoDB\BSON\UTCDateTime::unserialize — Unserialize a UTCDateTime


Construct a new UTCDateTime

  • « MongoDB\BSON\UTCDateTime
  • MongoDB\BSON\UTCDateTime::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Construct a new UTCDateTime

MongoDB\BSON\UTCDateTime::__construct

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::__construct — Construct a new UTCDateTime

Descrição

final public MongoDB\BSON\UTCDateTime::__construct(int|float|string|DateTimeInterface|null $milliseconds = null)

Parâmetros

milliseconds (int|float|string|DateTimeInterface|null)

Number of milliseconds since the Unix epoch (Jan 1, 1970). Negative values represent dates before 1970. This value may be provided as a 64-bit int. For compatibility on 32-bit systems, this parameter may also be provided as a float or string.

If the argument is a DateTimeInterface, the number of milliseconds since the Unix epoch will be derived from that value.

If this argument is null, the current time will be used by default.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.2.0 | The milliseconds argument is optional and defaults to null (i.e. current time). The argument also accepts a DateTimeInterface, which may be used to derive the number of milliseconds since the Unix epoch. Previously, only int, float, and string types were accepted.

Exemplos

Exemplo #1 MongoDB\BSON\UTCDateTime::__construct() example

<?php

var_dump(new MongoDB\BSON\UTCDateTime);

var_dump(new MongoDB\BSON\UTCDateTime(new DateTime));

var_dump(new MongoDB\BSON\UTCDateTime(1416445411987));

?>

O exemplo acima produzirá algo semelhante a:

object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1484852905560"
}
object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1484852905560"
}
object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1416445411987"
}

Veja Também

  • » BSON Types: Date


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\UTCDateTime::__construct
  • MongoDB\BSON\UTCDateTime::serialize »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Returns a representation that can be converted to JSON

MongoDB\BSON\UTCDateTime::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\UTCDateTime::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\UTCDateTime.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a UTCDateTime

  • « MongoDB\BSON\UTCDateTime::jsonSerialize
  • MongoDB\BSON\UTCDateTime::toDateTime »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Serialize a UTCDateTime

MongoDB\BSON\UTCDateTime::serialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::serialize — Serialize a UTCDateTime

Descrição

final public MongoDB\BSON\UTCDateTime::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\UTCDateTime.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\UTCDateTime::unserialize() - Unserialize a UTCDateTime
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the DateTime representation of this UTCDateTime

  • « MongoDB\BSON\UTCDateTime::serialize
  • MongoDB\BSON\UTCDateTime::__toString »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Returns the DateTime representation of this UTCDateTime

MongoDB\BSON\UTCDateTime::toDateTime

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::toDateTime — Returns the DateTime representation of this UTCDateTime

Descrição

final public MongoDB\BSON\UTCDateTime::toDateTime(): DateTime

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the DateTime representation of this UTCDateTime. The returned DateTime will use the UTC time zone.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Exemplos

Exemplo #1 MongoDB\BSON\UTCDatetime::toDateTime() example

<?php

$utcdatetime = new MongoDB\BSON\UTCDateTime(1416445411987);
$datetime = $utcdatetime->toDateTime();
var_dump($datetime->format('r'));
var_dump($datetime->format('U.u'));
var_dump($datetime->getTimezone());

?>

O exemplo acima produzirá algo semelhante a:

string(31) "Thu, 20 Nov 2014 01:03:31 +0000"
string(17) "1416445411.987000"
object(DateTimeZone)#3 (2) {
  ["timezone_type"]=>
  int(1)
  ["timezone"]=>
  string(6) "+00:00"
}

Veja Também

  • » BSON Types: Date


Returns the string representation of this UTCDateTime

  • « MongoDB\BSON\UTCDateTime::toDateTime
  • MongoDB\BSON\UTCDateTime::unserialize »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Returns the string representation of this UTCDateTime

MongoDB\BSON\UTCDateTime::__toString

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::__toString — Returns the string representation of this UTCDateTime

Descrição

final public MongoDB\BSON\UTCDateTime::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this UTCDateTime.

Exemplos

Exemplo #1 MongoDB\BSON\UTCDateTime::__toString() example

<?php

$utcdatetime = new MongoDB\BSON\UTCDateTime(1416445411987);
var_dump((string) $utcdatetime);

?>

O exemplo acima produzirá:

string(13) "1416445411987"

Veja Também

  • » BSON Types: Date


Unserialize a UTCDateTime

  • « MongoDB\BSON\UTCDateTime::__toString
  • MongoDB\BSON\Type »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Unserialize a UTCDateTime

MongoDB\BSON\UTCDateTime::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::unserialize — Unserialize a UTCDateTime

Descrição

final public MongoDB\BSON\UTCDateTime::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\UTCDateTime.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\BSON\UTCDateTime::serialize() - Serialize a UTCDateTime
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\Type interface

(mongodb >=1.0.0)

Introdução

Abstract base interface that should not be implemented directly.

Resumo da Interface

class MongoDB\BSON\Type {
}

This interface has no methods. Its only purpose is to be the base interface for all BSON type classes.


The MongoDB\BSON\Persistable interface

(mongodb >=1.0.0)

Introdução

Classes may implement this interface to take advantage of automatic ODM (object document mapping) behavior in the driver. During serialization, the driver will inject a __pclass property containing the PHP class name into the data returned by MongoDB\BSON\Serializable::bsonSerialize(). During unserialization, the same __pclass property will then be used to infer the PHP class (independent of any type map configuration) to be constructed before MongoDB\BSON\Unserializable::bsonUnserialize() is invoked. See Persisting Data for additional information.

Nota: Even if MongoDB\BSON\Serializable::bsonSerialize() would return a sequential array, injection of the __pclass property will cause the object to be serialized as a BSON document.

Resumo da Interface

class MongoDB\BSON\Persistable implements MongoDB\BSON\Unserializable, MongoDB\BSON\Serializable {
/* Métodos */
abstract public bsonSerialize(): array|stdClass|MongoDB\BSON\Document
/* Métodos herdados */
abstract public MongoDB\BSON\Serializable::bsonSerialize(): array|stdClass|MongoDB\BSON\Document|MongoDB\BSON\PackedArray
abstract public MongoDB\BSON\Unserializable::bsonUnserialize(array $data): void
}

Índice

  • MongoDB\BSON\Persistable::bsonSerialize — Provides an array or document to serialize as BSON


Provides an array or document to serialize as BSON

  • « MongoDB\BSON\Persistable
  • MongoDB\BSON\Serializable »
  • PHP Manual
  • MongoDB\BSON\Persistable
  • Provides an array or document to serialize as BSON

MongoDB\BSON\Persistable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Persistable::bsonSerialize — Provides an array or document to serialize as BSON

Descrição

abstract public MongoDB\BSON\Persistable::bsonSerialize(): array|stdClass|MongoDB\BSON\Document

Called during serialization of the object to BSON. The method must return an array, stdClass, or MongoDB\BSON\Document.

The return value will always be serialized as a BSON document. The serialized document will include a field containing the class name of the object. For this reason, it is not possible to return a MongoDB\BSON\PackedArray instance in this method.

Users are encouraged to include an _id property (e.g. a MongoDB\BSON\ObjectId initialized in your constructor) when returning data for a BSON root document; otherwise, the driver or database will need to generate a MongoDB\BSON\ObjectId when inserting or upserting the document, respectively.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array, stdClass, or MongoDB\BSON\Document to be serialized as a BSON document.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.17.0 | This method may now also return MongoDB\BSON\Document instances in addition to array and stdClass.

Veja Também

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • MongoDB\BSON\Unserializable::bsonUnserialize() - Constructs the object from a BSON array or document
  • MongoDB\BSON\Persistable
  • Persisting Data


The MongoDB\BSON\Serializable interface

(mongodb >=1.0.0)

Introdução

Classes that implement this interface may return data to be serialized as a BSON array or document in lieu of the object's public properties.

Resumo da Interface

class MongoDB\BSON\Serializable implements MongoDB\BSON\Type {
/* Métodos */
abstract public bsonSerialize(): array|stdClass|MongoDB\BSON\Document|MongoDB\BSON\PackedArray
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\BSON\Serializable::bsonSerialize — Provides an array or document to serialize as BSON


Provides an array or document to serialize as BSON

  • « MongoDB\BSON\Serializable
  • MongoDB\BSON\Unserializable »
  • PHP Manual
  • MongoDB\BSON\Serializable
  • Provides an array or document to serialize as BSON

MongoDB\BSON\Serializable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Serializable::bsonSerialize — Provides an array or document to serialize as BSON

Descrição

abstract public MongoDB\BSON\Serializable::bsonSerialize(): array|stdClass|MongoDB\BSON\Document|MongoDB\BSON\PackedArray

Called during serialization of the object to BSON. The method must return an array, stdClass, MongoDB\BSON\Document, or MongoDB\BSON\PackedArray.

Root documents (e.g. a MongoDB\BSON\Serializable passed to MongoDB\BSON\fromPHP()) will always be serialized as a BSON document. For field values, associative arrays and stdClass instances will be serialized as a BSON document and sequential arrays (i.e. sequential, numeric indexes starting at 0) will be serialized as a BSON array.

Users are encouraged to include an _id property (e.g. a MongoDB\BSON\ObjectId initialized in your constructor) when returning data for a BSON root document; otherwise, the driver or database will need to generate a MongoDB\BSON\ObjectId when inserting or upserting the document, respectively.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array, stdClass, MongoDB\BSON\Document, or MongoDB\BSON\PackedArray to be serialized as a BSON array or document.

Registro de Alterações

Versão Descrição
PECL mongodb 1.17.0

The return type was changed from array|object. Instead of object, the return type now specifies stdClass. Classes that implement this interface must be changed to no longer declare an object return type. As the return type is tentative, a deprecation warning is emitted on PHP 8.1 and newer.

In addition to the changes above, the driver now also supports returning instances of MongoDB\BSON\Document and MongoDB\BSON\PackedArray. Please note that any MongoDB\BSON\PackedArray instances returned are silently converted to objects when stored as root documents. They are stored as arrays when used as an embedded field value.

Exemplos

Exemplo #1 MongoDB\BSON\Serializable::bsonSerialize() returning an associative array for root document

<?php

class MyDocument implements MongoDB\BSON\Serializable
{
private $id;

function __construct()
{
$this->id = new MongoDB\BSON\ObjectId;
}

function bsonSerialize(): array
{
return ['_id' => $this->id, 'foo' => 'bar'];
}
}

$bson = MongoDB\BSON\fromPHP(new MyDocument);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

O exemplo acima produzirá algo semelhante a:

{ "_id" : { "$oid" : "56cccdcada14d8755a58c591" }, "foo" : "bar" }

Exemplo #2 MongoDB\BSON\Serializable::bsonSerialize() returning a sequential array for root document

<?php

class MyArray implements MongoDB\BSON\Serializable
{
function bsonSerialize(): array
{
return [1, 2, 3];
}
}

$bson = MongoDB\BSON\fromPHP(new MyArray);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

O exemplo acima produzirá:

{ "0" : 1, "1" : 2, "2" : 3 }

Exemplo #3 MongoDB\BSON\Serializable::bsonSerialize() returning an associative array for document field

<?php

class MyDocument implements MongoDB\BSON\Serializable
{
function bsonSerialize(): array
{
return ['foo' => 'bar'];
}
}

$value = ['document' => new MyDocument];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

O exemplo acima produzirá:

{ "document" : { "foo" : "bar" } }

Exemplo #4 MongoDB\BSON\Serializable::bsonSerialize() returning a sequential array for document field

<?php

class MyArray implements MongoDB\BSON\Serializable
{
function bsonSerialize(): array
{
return [1, 2, 3];
}
}

$value = ['array' => new MyArray];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

O exemplo acima produzirá:

{ "array" : [ 1, 2, 3 ] }

Veja Também

  • MongoDB\BSON\Unserializable::bsonUnserialize() - Constructs the object from a BSON array or document
  • MongoDB\BSON\Persistable
  • Persisting Data


The MongoDB\BSON\Unserializable interface

(mongodb >=1.0.0)

Introdução

Classes that implement this interface may be specified in a type map for unserializing BSON arrays and documents (both root and embedded).

Resumo da Interface

class MongoDB\BSON\Unserializable {
/* Métodos */
abstract public bsonUnserialize(array $data): void
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\BSON\Unserializable::bsonUnserialize — Constructs the object from a BSON array or document


Constructs the object from a BSON array or document

  • « MongoDB\BSON\Unserializable
  • MongoDB\BSON\BinaryInterface »
  • PHP Manual
  • MongoDB\BSON\Unserializable
  • Constructs the object from a BSON array or document

MongoDB\BSON\Unserializable::bsonUnserialize

(mongodb >=1.0.0)

MongoDB\BSON\Unserializable::bsonUnserialize — Constructs the object from a BSON array or document

Descrição

abstract public MongoDB\BSON\Unserializable::bsonUnserialize(array $data): void

Called during unserialization of the object from BSON. The properties of the BSON array or document will be passed to the method as an array.

Remember to check for an _id property when handling data from a BSON document.

Nota: This method acts as the constructor of the object. The __construct() method will not be called after this method.

Parâmetros

data (array)

Properties within the BSON array or document.

Valor Retornado

The return value from this method is ignored.

Exemplos

Exemplo #1 MongoDB\BSON\Unserializable::bsonUnserialize() example

<?php

class MyDocument implements MongoDB\BSON\Unserializable
{
private $data = [];

function bsonUnserialize(array $data): void
{
$this->data = $data;
}
}

$bson = MongoDB\BSON\fromJSON('{ "foo": "bar" }');
$value = MongoDB\BSON\toPHP($bson, ['root' => 'MyDocument']);
var_dump($value);

?>

O exemplo acima produzirá:

object(MyDocument)#1 (1) {
  ["data":"MyDocument":private]=>
  array(1) {
    ["foo"]=>
    string(3) "bar"
  }
}

Veja Também

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • MongoDB\BSON\Persistable
  • Persisting Data


The MongoDB\BSON\BinaryInterface interface

(mongodb >=1.3.0)

Introdução

This interface is implemented by MongoDB\BSON\Binary to be used as a parameter, return, or property type in userland classes.

Resumo da classe

class MongoDB\BSON\BinaryInterface {
/* Métodos */
abstract public getData(): string
abstract public getType(): int
abstract public __toString(): string
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\BSON\BinaryInterface::getData — Returns the BinaryInterface's data
  • MongoDB\BSON\BinaryInterface::getType — Returns the BinaryInterface's type
  • MongoDB\BSON\BinaryInterface::__toString — Returns the BinaryInterface's data


Returns the BinaryInterface's data

  • « MongoDB\BSON\BinaryInterface
  • MongoDB\BSON\BinaryInterface::getType »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Returns the BinaryInterface's data

MongoDB\BSON\BinaryInterface::getData

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::getData — Returns the BinaryInterface's data

Descrição

abstract public MongoDB\BSON\BinaryInterface::getData(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the BinaryInterface's data.

Veja Também

  • MongoDB\BSON\Binary::getData() - Returns the Binary's data


Returns the BinaryInterface's type

  • « MongoDB\BSON\BinaryInterface::getData
  • MongoDB\BSON\BinaryInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Returns the BinaryInterface's type

MongoDB\BSON\BinaryInterface::getType

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::getType — Returns the BinaryInterface's type

Descrição

abstract public MongoDB\BSON\BinaryInterface::getType(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the BinaryInterface's type.

Veja Também

  • MongoDB\BSON\Binary::getType() - Returns the Binary's type


Returns the BinaryInterface's data

  • « MongoDB\BSON\BinaryInterface::getType
  • MongoDB\BSON\Decimal128Interface »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Returns the BinaryInterface's data

MongoDB\BSON\BinaryInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::__toString — Returns the BinaryInterface's data

Descrição

abstract public MongoDB\BSON\BinaryInterface::__toString(): string

Este método é um apelido para: MongoDB\BSON\BinaryInterface::getData().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the BinaryInterface's data.

Veja Também

  • MongoDB\BSON\BinaryInterface::getData() - Returns the BinaryInterface's data
  • MongoDB\BSON\Binary::__toString() - Returns the Binary's data


The MongoDB\BSON\Decimal128Interface interface

(mongodb >=1.3.0)

Introdução

This interface is implemented by MongoDB\BSON\Decimal128 to be used as a parameter, return, or property type in userland classes.

Resumo da classe

class MongoDB\BSON\Decimal128Interface {
/* Métodos */
abstract public __toString(): string
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\BSON\Decimal128Interface::__toString — Returns the string representation of this Decimal128Interface


Returns the string representation of this Decimal128Interface

  • « MongoDB\BSON\Decimal128Interface
  • MongoDB\BSON\JavascriptInterface »
  • PHP Manual
  • MongoDB\BSON\Decimal128Interface
  • Returns the string representation of this Decimal128Interface

MongoDB\BSON\Decimal128Interface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\Decimal128Interface::__toString — Returns the string representation of this Decimal128Interface

Descrição

abstract public MongoDB\BSON\Decimal128Interface::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this Decimal128Interface.

Veja Também

  • MongoDB\BSON\Decimal128::__toString() - Returns the string representation of this Decimal128


The MongoDB\BSON\JavascriptInterface interface

(mongodb >=1.3.0)

Introdução

This interface is implemented by MongoDB\BSON\Javascript to be used as a parameter, return, or property type in userland classes.

Resumo da classe

class MongoDB\BSON\JavascriptInterface {
/* Métodos */
abstract public getCode(): string
abstract public getScope(): ?object
abstract public __toString(): string
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\BSON\JavascriptInterface::getCode — Returns the JavascriptInterface's code
  • MongoDB\BSON\JavascriptInterface::getScope — Returns the JavascriptInterface's scope document
  • MongoDB\BSON\JavascriptInterface::__toString — Returns the JavascriptInterface's code


Returns the JavascriptInterface's code

  • « MongoDB\BSON\JavascriptInterface
  • MongoDB\BSON\JavascriptInterface::getScope »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Returns the JavascriptInterface's code

MongoDB\BSON\JavascriptInterface::getCode

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::getCode — Returns the JavascriptInterface's code

Descrição

abstract public MongoDB\BSON\JavascriptInterface::getCode(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the JavascriptInterface's code.

Veja Também

  • MongoDB\BSON\Javascript::getCode() - Returns the Javascript's code


Returns the JavascriptInterface's scope document

  • « MongoDB\BSON\JavascriptInterface::getCode
  • MongoDB\BSON\JavascriptInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Returns the JavascriptInterface's scope document

MongoDB\BSON\JavascriptInterface::getScope

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::getScope — Returns the JavascriptInterface's scope document

Descrição

abstract public MongoDB\BSON\JavascriptInterface::getScope(): ?object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the JavascriptInterface's scope document.

Veja Também

  • MongoDB\BSON\Javascript::getScope() - Returns the Javascript's scope document


Returns the JavascriptInterface's code

  • « MongoDB\BSON\JavascriptInterface::getScope
  • MongoDB\BSON\MaxKeyInterface »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Returns the JavascriptInterface's code

MongoDB\BSON\JavascriptInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::__toString — Returns the JavascriptInterface's code

Descrição

abstract public MongoDB\BSON\JavascriptInterface::__toString(): string

Este método é um apelido para: MongoDB\BSON\JavascriptInterface::getCode().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the JavascriptInterface's code.

Veja Também

  • MongoDB\BSON\JavascriptInterface::getCode() - Returns the JavascriptInterface's code
  • MongoDB\BSON\Javascript::__toString() - Returns the Javascript's code


The MongoDB\BSON\MaxKeyInterface interface

(mongodb >=1.3.0)

Introdução

This interface is implemented by MongoDB\BSON\MaxKey to be used as a parameter, return, or property type in userland classes.

Resumo da classe

class MongoDB\BSON\MaxKeyInterface {
}

This interface has no methods.


The MongoDB\BSON\MinKeyInterface interface

(mongodb >=1.3.0)

Introdução

This interface is implemented by MongoDB\BSON\MinKey to be used as a parameter, return, or property type in userland classes.

Resumo da classe

class MongoDB\BSON\MinKeyInterface {
}

This interface has no methods.


The MongoDB\BSON\ObjectIdInterface interface

(mongodb >=1.3.0)

Introdução

This interface is implemented by MongoDB\BSON\ObjectId to be used as a parameter, return, or property type in userland classes.

Resumo da classe

class MongoDB\BSON\ObjectIdInterface {
/* Métodos */
abstract public getTimestamp(): int
abstract public __toString(): string
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\BSON\ObjectIdInterface::getTimestamp — Returns the timestamp component of this ObjectIdInterface
  • MongoDB\BSON\ObjectIdInterface::__toString — Returns the hexidecimal representation of this ObjectIdInterface


Returns the timestamp component of this ObjectIdInterface

  • « MongoDB\BSON\ObjectIdInterface
  • MongoDB\BSON\ObjectIdInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\ObjectIdInterface
  • Returns the timestamp component of this ObjectIdInterface

MongoDB\BSON\ObjectIdInterface::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\ObjectIdInterface::getTimestamp — Returns the timestamp component of this ObjectIdInterface

Descrição

abstract public MongoDB\BSON\ObjectIdInterface::getTimestamp(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the timestamp component of this ObjectIdInterface.

Veja Também

  • MongoDB\BSON\ObjectId::getTimestamp() - Returns the timestamp component of this ObjectId


Returns the hexidecimal representation of this ObjectIdInterface

  • « MongoDB\BSON\ObjectIdInterface::getTimestamp
  • MongoDB\BSON\RegexInterface »
  • PHP Manual
  • MongoDB\BSON\ObjectIdInterface
  • Returns the hexidecimal representation of this ObjectIdInterface

MongoDB\BSON\ObjectIdInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\ObjectIdInterface::__toString — Returns the hexidecimal representation of this ObjectIdInterface

Descrição

abstract public MongoDB\BSON\ObjectIdInterface::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the hexidecimal representation of this ObjectIdInterface.

Veja Também

  • MongoDB\BSON\ObjectId::__toString() - Returns the hexidecimal representation of this ObjectId


The MongoDB\BSON\RegexInterface interface

(mongodb >=1.3.0)

Introdução

This interface is implemented by MongoDB\BSON\Regex to be used as a parameter, return, or property type in userland classes.

Resumo da classe

class MongoDB\BSON\RegexInterface {
/* Métodos */
abstract public getFlags(): string
abstract public getPattern(): string
abstract public __toString(): string
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\BSON\RegexInterface::getFlags — Returns the RegexInterface's flags
  • MongoDB\BSON\RegexInterface::getPattern — Returns the RegexInterface's pattern
  • MongoDB\BSON\RegexInterface::__toString — Returns the string representation of this RegexInterface


Returns the RegexInterface's flags

  • « MongoDB\BSON\RegexInterface
  • MongoDB\BSON\RegexInterface::getPattern »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Returns the RegexInterface's flags

MongoDB\BSON\RegexInterface::getFlags

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::getFlags — Returns the RegexInterface's flags

Descrição

abstract public MongoDB\BSON\RegexInterface::getFlags(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the RegexInterface's flags.

Veja Também

  • MongoDB\BSON\Regex::getFlags() - Returns the Regex's flags


Returns the RegexInterface's pattern

  • « MongoDB\BSON\RegexInterface::getFlags
  • MongoDB\BSON\RegexInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Returns the RegexInterface's pattern

MongoDB\BSON\RegexInterface::getPattern

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::getPattern — Returns the RegexInterface's pattern

Descrição

abstract public MongoDB\BSON\RegexInterface::getPattern(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the RegexInterface's pattern.

Veja Também

  • MongoDB\BSON\Regex::getPattern() - Returns the Regex's pattern


Returns the string representation of this RegexInterface

  • « MongoDB\BSON\RegexInterface::getPattern
  • MongoDB\BSON\TimestampInterface »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Returns the string representation of this RegexInterface

MongoDB\BSON\RegexInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::__toString — Returns the string representation of this RegexInterface

Descrição

abstract public MongoDB\BSON\RegexInterface::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this RegexInterface.

Veja Também

  • MongoDB\BSON\Regex::__toString() - Returns the string representation of this Regex


The MongoDB\BSON\TimestampInterface interface

(mongodb >=1.3.0)

Introdução

This interface is implemented by MongoDB\BSON\Timestamp to be used as a parameter, return, or property type in userland classes.

Resumo da classe

class MongoDB\BSON\TimestampInterface {
/* Métodos */
abstract public getIncrement(): int
abstract public getTimestamp(): int
abstract public __toString(): string
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\BSON\TimestampInterface::getIncrement — Returns the increment component of this TimestampInterface
  • MongoDB\BSON\TimestampInterface::getTimestamp — Returns the timestamp component of this TimestampInterface
  • MongoDB\BSON\TimestampInterface::__toString — Returns the string representation of this TimestampInterface


Returns the increment component of this TimestampInterface

  • « MongoDB\BSON\TimestampInterface
  • MongoDB\BSON\TimestampInterface::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Returns the increment component of this TimestampInterface

MongoDB\BSON\TimestampInterface::getIncrement

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::getIncrement — Returns the increment component of this TimestampInterface

Descrição

abstract public MongoDB\BSON\TimestampInterface::getIncrement(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the increment component of this TimestampInterface.

Aviso

On 32-bit systems this method may return a negative number. Although the increment and timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can not represent these on 32-bit platforms.

Veja Também

  • MongoDB\BSON\Timestamp::getIncrement() - Returns the increment component of this Timestamp


Returns the timestamp component of this TimestampInterface

  • « MongoDB\BSON\TimestampInterface::getIncrement
  • MongoDB\BSON\TimestampInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Returns the timestamp component of this TimestampInterface

MongoDB\BSON\TimestampInterface::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::getTimestamp — Returns the timestamp component of this TimestampInterface

Descrição

abstract public MongoDB\BSON\TimestampInterface::getTimestamp(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the timestamp component of this TimestampInterface.

Aviso

On 32-bit systems this method may return a negative number. Although the increment and timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can not represent these on 32-bit platforms.

Veja Também

  • MongoDB\BSON\Timestamp::getTimestamp() - Returns the timestamp component of this Timestamp


Returns the string representation of this TimestampInterface

  • « MongoDB\BSON\TimestampInterface::getTimestamp
  • MongoDB\BSON\UTCDateTimeInterface »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Returns the string representation of this TimestampInterface

MongoDB\BSON\TimestampInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::__toString — Returns the string representation of this TimestampInterface

Descrição

abstract public MongoDB\BSON\TimestampInterface::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this TimestampInterface.

Veja Também

  • MongoDB\BSON\Timestamp::__toString() - Returns the string representation of this Timestamp


The MongoDB\BSON\UTCDateTimeInterface interface

(mongodb >=1.3.0)

Introdução

This interface is implemented by MongoDB\BSON\UTCDateTime to be used as a parameter, return, or property type in userland classes.

Resumo da classe

class MongoDB\BSON\UTCDateTimeInterface {
/* Métodos */
abstract public toDateTime(): DateTime
abstract public __toString(): string
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\BSON\UTCDateTimeInterface::toDateTime — Returns the DateTime representation of this UTCDateTimeInterface
  • MongoDB\BSON\UTCDateTimeInterface::__toString — Returns the string representation of this UTCDateTimeInterface


Returns the DateTime representation of this UTCDateTimeInterface

  • « MongoDB\BSON\UTCDateTimeInterface
  • MongoDB\BSON\UTCDateTimeInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\UTCDateTimeInterface
  • Returns the DateTime representation of this UTCDateTimeInterface

MongoDB\BSON\UTCDateTimeInterface::toDateTime

(mongodb >=1.3.0)

MongoDB\BSON\UTCDateTimeInterface::toDateTime — Returns the DateTime representation of this UTCDateTimeInterface

Descrição

abstract public MongoDB\BSON\UTCDateTimeInterface::toDateTime(): DateTime

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the DateTime representation of this UTCDateTimeInterface. The returned DateTime should use the UTC time zone.

Veja Também

  • MongoDB\BSON\UTCDateTime::toDateTime() - Returns the DateTime representation of this UTCDateTime


Returns the string representation of this UTCDateTimeInterface

  • « MongoDB\BSON\UTCDateTimeInterface::toDateTime
  • MongoDB\BSON\DBPointer »
  • PHP Manual
  • MongoDB\BSON\UTCDateTimeInterface
  • Returns the string representation of this UTCDateTimeInterface

MongoDB\BSON\UTCDateTimeInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\UTCDateTimeInterface::__toString — Returns the string representation of this UTCDateTimeInterface

Descrição

abstract public MongoDB\BSON\UTCDateTimeInterface::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this UTCDateTimeInterface.

Veja Também

  • MongoDB\BSON\UTCDateTime::__toString() - Returns the string representation of this UTCDateTime


The MongoDB\BSON\DBPointer class (deprecated)

(mongodb >=1.4.0)

Introdução

BSON type for the "DBPointer" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a BSON DBPointer type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.

Resumo da classe

final class MongoDB\BSON\DBPointer implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Métodos */
final private __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.

Índice

  • MongoDB\BSON\DBPointer::__construct — Construct a new DBPointer (unused)
  • MongoDB\BSON\DBPointer::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\DBPointer::serialize — Serialize a DBPointer
  • MongoDB\BSON\DBPointer::__toString — Returns an empty string
  • MongoDB\BSON\DBPointer::unserialize — Unserialize a DBPointer


Construct a new DBPointer (unused)

  • « MongoDB\BSON\DBPointer
  • MongoDB\BSON\DBPointer::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Construct a new DBPointer (unused)

MongoDB\BSON\DBPointer::__construct

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::__construct — Construct a new DBPointer (unused)

Descrição

final private MongoDB\BSON\DBPointer::__construct()

MongoDB\BSON\DBPointer objects are created through conversion from a deprecated BSON type and cannot be constructed directly.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\DBPointer::__construct
  • MongoDB\BSON\DBPointer::serialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Returns a representation that can be converted to JSON

MongoDB\BSON\DBPointer::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\DBPointer::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\DBPointer.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a DBPointer

  • « MongoDB\BSON\DBPointer::jsonSerialize
  • MongoDB\BSON\DBPointer::__toString »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Serialize a DBPointer

MongoDB\BSON\DBPointer::serialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::serialize — Serialize a DBPointer

Descrição

final public MongoDB\BSON\DBPointer::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\DBPointer.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\DBPointer::unserialize() - Unserialize a DBPointer
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns an empty string

  • « MongoDB\BSON\DBPointer::serialize
  • MongoDB\BSON\DBPointer::unserialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Returns an empty string

MongoDB\BSON\DBPointer::__toString

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::__toString — Returns an empty string

Descrição

final public MongoDB\BSON\DBPointer::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an empty string.

Veja Também

  • » BSON Types


Unserialize a DBPointer

  • « MongoDB\BSON\DBPointer::__toString
  • MongoDB\BSON\Int64 »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Unserialize a DBPointer

MongoDB\BSON\DBPointer::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::unserialize — Unserialize a DBPointer

Descrição

final public MongoDB\BSON\DBPointer::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\DBPointer.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\DBPointer::serialize() - Serialize a DBPointer
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\Int64 class

(mongodb >=1.5.0)

Introdução

BSON type for a 64-bit integer. When decoding BSON to PHP data, this class is used when a 64-bit integer cannot be represented as a PHP integer on 32-bit platforms. These objects support overloaded arithmetic, bitwise, and comparison operators.

When working with raw BSON data through the MongoDB\BSON\Document, MongoDB\BSON\PackedArray, and MongoDB\BSON\Iterator classes, any 64-bit integer will be returned as an instance of this class, regardless of platform and whether the value can be represented as a PHP integer. This ensures that values can be roundtripped without changing the type.

During BSON encoding, objects of this class will convert back to a 64-bit integer type, even when the value would fit in a 32-bit integer. This allows explicitly storing values as 64-bit integers in BSON.

Resumo da classe

final class MongoDB\BSON\Int64 implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Métodos */
final public __construct(int|string $value)
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.16.0 | The class can now be instantiated on all platforms. Added support for overloaded arithmetic, bitwise, and comparison operators.
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.

Índice

  • MongoDB\BSON\Int64::__construct — Construct a new Int64
  • MongoDB\BSON\Int64::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Int64::serialize — Serialize an Int64
  • MongoDB\BSON\Int64::__toString — Returns the string representation of this Int64
  • MongoDB\BSON\Int64::unserialize — Unserialize an Int64


Construct a new Int64

  • « MongoDB\BSON\Int64
  • MongoDB\BSON\Int64::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Construct a new Int64

MongoDB\BSON\Int64::__construct

(mongodb >=1.5.0)

MongoDB\BSON\Int64::__construct — Construct a new Int64

Descrição

final public MongoDB\BSON\Int64::__construct(int|string $value)

Creates a new MongoDB\BSON\Int64 instance for the given integer value.

Parâmetros

value (int|string)

The value to assign to the Int64 instance. This value can be provided as an int or string, the latter being required on 32-bit platforms to represent 64-bit values.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.16.0 | This method was made public to support creating Int64 instances when working with raw BSON.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if string value cannot be parsed as a 64-bit integer.

Veja Também

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Int64::__construct
  • MongoDB\BSON\Int64::serialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Int64::jsonSerialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\Int64::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Int64.

Nota: The output is consistent with the MongoDB\BSON\toCanonicalExtendedJSON() function, which uses the » canonical extended JSON format. This differs from other BSON classes, which use the driver-specific legacy extended JSON format (MongoDB\BSON\toJSON()), in order to ensure that the 64-bit integer value is correctly represented on 32-bit platforms.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize an Int64

  • « MongoDB\BSON\Int64::jsonSerialize
  • MongoDB\BSON\Int64::__toString »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Serialize an Int64

MongoDB\BSON\Int64::serialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::serialize — Serialize an Int64

Descrição

final public MongoDB\BSON\Int64::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\Int64.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Int64::unserialize() - Unserialize an Int64
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the string representation of this Int64

  • « MongoDB\BSON\Int64::serialize
  • MongoDB\BSON\Int64::unserialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Returns the string representation of this Int64

MongoDB\BSON\Int64::__toString

(mongodb >=1.5.0)

MongoDB\BSON\Int64::__toString — Returns the string representation of this Int64

Descrição

final public MongoDB\BSON\Int64::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this Int64.

Exemplos

Exemplo #1 MongoDB\BSON\Int64::__toString() example

<?php

$int64 = new MongoDB\BSON\Int64('9223372036854775807');

var_dump((string) $int64);

?>

O exemplo acima produzirá algo semelhante a:

string(19) "9223372036854775807"

Veja Também

  • » BSON Types


Unserialize an Int64

  • « MongoDB\BSON\Int64::__toString
  • MongoDB\BSON\Symbol »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Unserialize an Int64

MongoDB\BSON\Int64::unserialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::unserialize — Unserialize an Int64

Descrição

final public MongoDB\BSON\Int64::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\Int64.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Veja Também

  • MongoDB\BSON\Int64::serialize() - Serialize an Int64
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\Symbol class (deprecated)

(mongodb >=1.4.0)

Introdução

BSON type for the "Symbol" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a BSON symbol type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.

Resumo da classe

final class MongoDB\BSON\Symbol implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Métodos */
final private __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.

Índice

  • MongoDB\BSON\Symbol::__construct — Construct a new Symbol (unused)
  • MongoDB\BSON\Symbol::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Symbol::serialize — Serialize a Symbol
  • MongoDB\BSON\Symbol::__toString — Returns the Symbol as a string
  • MongoDB\BSON\Symbol::unserialize — Unserialize a Symbol


Construct a new Symbol (unused)

  • « MongoDB\BSON\Symbol
  • MongoDB\BSON\Symbol::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Construct a new Symbol (unused)

MongoDB\BSON\Symbol::__construct

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::__construct — Construct a new Symbol (unused)

Descrição

final private MongoDB\BSON\Symbol::__construct()

MongoDB\BSON\Symbol objects are created through conversion from a deprecated BSON type and cannot be constructed directly.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Symbol::__construct
  • MongoDB\BSON\Symbol::serialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Symbol::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\Symbol::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Symbol.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Symbol

  • « MongoDB\BSON\Symbol::jsonSerialize
  • MongoDB\BSON\Symbol::__toString »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Serialize a Symbol

MongoDB\BSON\Symbol::serialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::serialize — Serialize a Symbol

Descrição

final public MongoDB\BSON\Symbol::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\Symbol.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Symbol::unserialize() - Unserialize a Symbol
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns the Symbol as a string

  • « MongoDB\BSON\Symbol::serialize
  • MongoDB\BSON\Symbol::unserialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Returns the Symbol as a string

MongoDB\BSON\Symbol::__toString

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::__toString — Returns the Symbol as a string

Descrição

final public MongoDB\BSON\Symbol::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string representation of this Symbol.

Veja Também

  • » BSON Types


Unserialize a Symbol

  • « MongoDB\BSON\Symbol::__toString
  • MongoDB\BSON\Undefined »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Unserialize a Symbol

MongoDB\BSON\Symbol::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::unserialize — Unserialize a Symbol

Descrição

final public MongoDB\BSON\Symbol::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\Symbol.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Symbol::serialize() - Serialize a Symbol
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


The MongoDB\BSON\Undefined class (deprecated)

(mongodb >=1.4.0)

Introdução

BSON type for the "Undefined" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a BSON undefined type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.

Resumo da classe

final class MongoDB\BSON\Undefined implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Métodos */
final private __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.

Índice

  • MongoDB\BSON\Undefined::__construct — Construct a new Undefined (unused)
  • MongoDB\BSON\Undefined::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Undefined::serialize — Serialize a Undefined
  • MongoDB\BSON\Undefined::__toString — Returns an empty string
  • MongoDB\BSON\Undefined::unserialize — Unserialize a Undefined


Construct a new Undefined (unused)

  • « MongoDB\BSON\Undefined
  • MongoDB\BSON\Undefined::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Construct a new Undefined (unused)

MongoDB\BSON\Undefined::__construct

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::__construct — Construct a new Undefined (unused)

Descrição

final private MongoDB\BSON\Undefined::__construct()

MongoDB\BSON\Undefined objects are created through conversion from a deprecated BSON type and cannot be constructed directly.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Undefined::__construct
  • MongoDB\BSON\Undefined::serialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Undefined::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::jsonSerialize — Returns a representation that can be converted to JSON

Descrição

final public MongoDB\BSON\Undefined::jsonSerialize(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Undefined.

Nota: A saída é consistente com a função MongoDB\BSON\toJSON(), que usa o formato JSON estendido legado específico do driver. Isso não corresponde necessariamente às representações JSON estendidas » relaxadas ou » canônicas usadas por MongoDB\BSON\toRelaxedExtendedJSON() e MongoDB\BSON\toCanonicalExtendedJSON(), respectivamente.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • JsonSerializable::jsonSerialize() - Especifica os dados que devem ser serializados para JSON
  • json_encode() - Retorna a representação JSON de um valor
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Undefined

  • « MongoDB\BSON\Undefined::jsonSerialize
  • MongoDB\BSON\Undefined::__toString »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Serialize a Undefined

MongoDB\BSON\Undefined::serialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::serialize — Serialize a Undefined

Descrição

final public MongoDB\BSON\Undefined::serialize(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the serialized representation of the MongoDB\BSON\Undefined.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Undefined::unserialize() - Unserialize a Undefined
  • serialize() - Gera uma representação armazenável de um valor
  • Serializing Objects


Returns an empty string

  • « MongoDB\BSON\Undefined::serialize
  • MongoDB\BSON\Undefined::unserialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Returns an empty string

MongoDB\BSON\Undefined::__toString

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::__toString — Returns an empty string

Descrição

final public MongoDB\BSON\Undefined::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an empty string.

Veja Também

  • » BSON Types


Unserialize a Undefined

  • « MongoDB\BSON\Undefined::__toString
  • MongoDB\Driver\Monitoring »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Unserialize a Undefined

MongoDB\BSON\Undefined::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::unserialize — Unserialize a Undefined

Descrição

final public MongoDB\BSON\Undefined::unserialize(string $data): void

Parâmetros

data

The serialized MongoDB\BSON\Undefined.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\BSON\Undefined::serialize() - Serialize a Undefined
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializing Objects


Monitoring classes and subscriber functions

  • Funções
    • MongoDB\Driver\Monitoring\addSubscriber — Registers a monitoring event subscriber globally
    • MongoDB\Driver\Monitoring\removeSubscriber — Unregisters a monitoring event subscriber globally
  • MongoDB\Driver\Monitoring\CommandFailedEvent — The MongoDB\Driver\Monitoring\CommandFailedEvent class
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Returns the command name
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Returns the Exception associated with the failed command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId — Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId — Returns the load balancer service ID for the command
  • MongoDB\Driver\Monitoring\CommandStartedEvent — The MongoDB\Driver\Monitoring\CommandStartedEvent class
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Returns the command document
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Returns the command name
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId — Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId — Returns the load balancer service ID for the command
  • MongoDB\Driver\Monitoring\CommandSucceededEvent — The MongoDB\Driver\Monitoring\CommandSucceededEvent class
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Returns the command name
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId — Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId — Returns the load balancer service ID for the command
  • MongoDB\Driver\Monitoring\ServerChangedEvent — The MongoDB\Driver\Monitoring\ServerChangedEvent class
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription — Returns the new description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription — Returns the previous description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId — Returns the topology ID associated with this server
  • MongoDB\Driver\Monitoring\ServerClosedEvent — The MongoDB\Driver\Monitoring\ServerClosedEvent class
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId — Returns the topology ID associated with this server
  • MongoDB\Driver\Monitoring\ServerOpeningEvent — The MongoDB\Driver\Monitoring\ServerOpeningEvent class
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId — Returns the topology ID associated with this server
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros — Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError — Returns the Exception associated with the failed heartbeat
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros — Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply — Returns the heartbeat reply document
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited — Returns whether the heartbeat used a streaming protocol
  • MongoDB\Driver\Monitoring\TopologyChangedEvent — The MongoDB\Driver\Monitoring\TopologyChangedEvent class
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription — Returns the new description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription — Returns the previous description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId — Returns the topology ID
  • MongoDB\Driver\Monitoring\TopologyClosedEvent — The MongoDB\Driver\Monitoring\TopologyClosedEvent class
    • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId — Returns the topology ID
  • MongoDB\Driver\Monitoring\TopologyOpeningEvent — The MongoDB\Driver\Monitoring\TopologyOpeningEvent class
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId — Returns the topology ID
  • MongoDB\Driver\Monitoring\CommandSubscriber — The MongoDB\Driver\Monitoring\CommandSubscriber interface
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Notification method for a failed command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Notification method for a started command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Notification method for a successful command
  • MongoDB\Driver\Monitoring\LogSubscriber — The MongoDB\Driver\Monitoring\LogSubscriber interface
    • MongoDB\Driver\Monitoring\LogSubscriber::log — Notification method for a log message
  • MongoDB\Driver\Monitoring\SDAMSubscriber — The MongoDB\Driver\Monitoring\SDAMSubscriber interface
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged — Notification method for a server description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed — Notification method for closing a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed — Notification method for a failed server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted — Notification method for a started server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded — Notification method for a successful server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening — Notification method for opening a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged — Notification method for a topology description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed — Notification method for closing the topology
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening — Notification method for opening the topology
  • MongoDB\Driver\Monitoring\Subscriber — The MongoDB\Driver\Monitoring\Subscriber interface


Funções

Índice

  • MongoDB\Driver\Monitoring\addSubscriber — Registers a monitoring event subscriber globally
  • MongoDB\Driver\Monitoring\removeSubscriber — Unregisters a monitoring event subscriber globally


Registers a monitoring event subscriber globally

  • « Funções
  • MongoDB\Driver\Monitoring\removeSubscriber »
  • PHP Manual
  • Funções
  • Registers a monitoring event subscriber globally

MongoDB\Driver\Monitoring\addSubscriber

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\addSubscriber — Registers a monitoring event subscriber globally

Descrição

MongoDB\Driver\Monitoring\addSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void

Registers a monitoring event subscriber globally. The subscriber will be notified of all events in the driver for any Manager.

Nota: If subscriber is already registered globally, this function is a no-op. If subscriber is also registered with one or more Managers, it will still only be notified once of each event for each Manager.

Parâmetros

subscriber (MongoDB\Driver\Monitoring\Subscriber)

A monitoring event subscriber to register globally.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\removeSubscriber() - Unregisters a monitoring event subscriber globally
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager
  • Application Performance Monitoring (APM)


Unregisters a monitoring event subscriber globally

  • « MongoDB\Driver\Monitoring\addSubscriber
  • MongoDB\Driver\Monitoring\CommandFailedEvent »
  • PHP Manual
  • Funções
  • Unregisters a monitoring event subscriber globally

MongoDB\Driver\Monitoring\removeSubscriber

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\removeSubscriber — Unregisters a monitoring event subscriber globally

Descrição

MongoDB\Driver\Monitoring\removeSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void

Unregisters a monitoring event subscriber globally.

Nota: If subscriber is not already registered globally, this function is a no-op.

Parâmetros

subscriber (MongoDB\Driver\Monitoring\Subscriber)

A monitoring event subscriber to unregister globally.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Manager::removeSubscriber() - Unregisters a monitoring event subscriber with this Manager
  • Application Performance Monitoring (APM)


The MongoDB\Driver\Monitoring\CommandFailedEvent class

(mongodb >=1.3.0)

Introdução

The MongoDB\Driver\Monitoring\CommandFailedEvent class encapsulates information about a failed command.

Resumo da classe

final class MongoDB\Driver\Monitoring\CommandFailedEvent {
/* Métodos */
final public getCommandName(): string
final public getDurationMicros(): int
final public getError(): Exception
final public getOperationId(): string
final public getReply(): object
final public getRequestId(): string
final public getServer(): MongoDB\Driver\Server
final public getServerConnectionId(): ?int
final public getServiceId(): ?MongoDB\BSON\ObjectId
}

Índice

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Returns the command name
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Returns the command's duration in microseconds
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Returns the Exception associated with the failed command
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Returns the command reply document
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId — Returns the server connection ID for the command
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId — Returns the load balancer service ID for the command


Returns the command name

  • « MongoDB\Driver\Monitoring\CommandFailedEvent
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command name

MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Returns the command name

Descrição

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName(): string

Returns the command name (e.g. "find", "aggregate").

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command name.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)


Returns the command's duration in microseconds

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getError »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command's duration in microseconds

MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Returns the command's duration in microseconds

Descrição

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros(): int

The command's duration is a calculated value that includes the time to send the message and receive the reply from the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command's duration in microseconds.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)


Returns the Exception associated with the failed command

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the Exception associated with the failed command

MongoDB\Driver\Monitoring\CommandFailedEvent::getError

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Returns the Exception associated with the failed command

Descrição

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getError(): Exception

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Exception associated with the failed command.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)


Returns the command's operation ID

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getError
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command's operation ID

MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Returns the command's operation ID

Descrição

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId(): string

The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.

Nota: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() should be used instead.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command's operation ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the command reply document

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command reply document

MongoDB\Driver\Monitoring\CommandFailedEvent::getReply

(mongodb >=1.5.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Returns the command reply document

Descrição

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getReply(): object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command reply document as a stdClass object.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns the command's request ID

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getReply
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command's request ID

MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Returns the command's request ID

Descrição

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId(): string

The request ID is generated by the driver and may be used to associate this MongoDB\Driver\Monitoring\CommandFailedEvent with a previous MongoDB\Driver\Monitoring\CommandStartedEvent.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command's request ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the Server on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the Server on which the command was executed

MongoDB\Driver\Monitoring\CommandFailedEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Returns the Server on which the command was executed

Descrição

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getServer(): MongoDB\Driver\Server

Returns the MongoDB\Driver\Server on which the command was executed.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the MongoDB\Driver\Server on which the command was executed.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer() - Returns the Server on which the command was executed
  • Application Performance Monitoring (APM)


Returns the server connection ID for the command

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getServer
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the server connection ID for the command

MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId

(mongodb >=1.14.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId — Returns the server connection ID for the command

Descrição

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId(): ?int

Returns the server connection ID for the command. The server connection ID is distinct from server (i.e. MongoDB\Driver\Monitoring\CommandFailedEvent::getServer()) and is returned in the "connectionId" field of a hello command response MongoDB 4.2+.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the server connection ID, or null if it is not available.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the load balancer service ID for the command

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId
  • MongoDB\Driver\Monitoring\CommandStartedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the load balancer service ID for the command

MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId

(mongodb >=1.11.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId — Returns the load balancer service ID for the command

Descrição

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId(): ?MongoDB\BSON\ObjectId

When the driver is connected to a MongoDB cluster through a load balancer, the service ID corresponds to the serviceId field in the hello command response.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the load balancer service ID, or null if the driver is not connected to a load balancer.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\CommandStartedEvent class

(mongodb >=1.3.0)

Introdução

The MongoDB\Driver\Monitoring\CommandStartedEvent class encapsulates information about a started command.

Resumo da classe

final class MongoDB\Driver\Monitoring\CommandStartedEvent {
/* Métodos */
final public getCommand(): object
final public getCommandName(): string
final public getDatabaseName(): string
final public getOperationId(): string
final public getRequestId(): string
final public getServer(): MongoDB\Driver\Server
final public getServerConnectionId(): ?int
final public getServiceId(): ?MongoDB\BSON\ObjectId
}

Índice

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Returns the command document
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Returns the command name
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Returns the database on which the command was executed
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId — Returns the server connection ID for the command
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId — Returns the load balancer service ID for the command


Returns the command document

  • « MongoDB\Driver\Monitoring\CommandStartedEvent
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command document

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Returns the command document

Descrição

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand(): object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command document as a stdClass object.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns the command name

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command name

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Returns the command name

Descrição

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName(): string

Returns the command name (e.g. "find", "aggregate").

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command name.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)


Returns the database on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the database on which the command was executed

MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Returns the database on which the command was executed

Descrição

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the database on which the command was executed.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)


Returns the command's operation ID

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command's operation ID

MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Returns the command's operation ID

Descrição

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId(): string

The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.

Nota: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() should be used instead.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command's operation ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the command's request ID

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command's request ID

MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Returns the command's request ID

Descrição

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId(): string

The request ID is generated by the driver and may be used to associate this MongoDB\Driver\Monitoring\CommandStartedEvent with a later MongoDB\Driver\Monitoring\CommandFailedEvent or MongoDB\Driver\Monitoring\CommandSucceededEvent.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command's request ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() - Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the Server on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the Server on which the command was executed

MongoDB\Driver\Monitoring\CommandStartedEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Returns the Server on which the command was executed

Descrição

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getServer(): MongoDB\Driver\Server

Returns the MongoDB\Driver\Server on which the command was executed.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the MongoDB\Driver\Server on which the command was executed.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer() - Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer() - Returns the Server on which the command was executed
  • Application Performance Monitoring (APM)


Returns the server connection ID for the command

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getServer
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the server connection ID for the command

MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId

(mongodb >=1.14.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId — Returns the server connection ID for the command

Descrição

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId(): ?int

Returns the server connection ID for the command. The server connection ID is distinct from server (i.e. MongoDB\Driver\Monitoring\CommandStartedEvent::getServer()) and is returned in the "connectionId" field of a hello command response MongoDB 4.2+.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the server connection ID, or null if it is not available.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the load balancer service ID for the command

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the load balancer service ID for the command

MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId

(mongodb >=1.11.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId — Returns the load balancer service ID for the command

Descrição

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId(): ?MongoDB\BSON\ObjectId

When the driver is connected to a MongoDB cluster through a load balancer, the service ID corresponds to the serviceId field in the hello command response.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the load balancer service ID, or null if the driver is not connected to a load balancer.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\CommandSucceededEvent class

(mongodb >=1.3.0)

Introdução

The MongoDB\Driver\Monitoring\CommandSucceededEvent class encapsulates information about a successful command.

Resumo da classe

final class MongoDB\Driver\Monitoring\CommandSucceededEvent {
/* Métodos */
final public getCommandName(): string
final public getDurationMicros(): int
final public getOperationId(): string
final public getReply(): object
final public getRequestId(): string
final public getServer(): MongoDB\Driver\Server
final public getServerConnectionId(): ?int
final public getServiceId(): ?MongoDB\BSON\ObjectId
}

Índice

  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Returns the command name
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Returns the command's duration in microseconds
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Returns the command reply document
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId — Returns the server connection ID for the command
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId — Returns the load balancer service ID for the command


Returns the command name

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command name

MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Returns the command name

Descrição

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName(): string

Returns the command name (e.g. "find", "aggregate").

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command name.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)


Returns the command's duration in microseconds

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command's duration in microseconds

MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Returns the command's duration in microseconds

Descrição

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros(): int

The command's duration is a calculated value that includes the time to send the message and receive the reply from the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command's duration in microseconds.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)


Returns the command's operation ID

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command's operation ID

MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Returns the command's operation ID

Descrição

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId(): string

The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.

Nota: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() should be used instead.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command's operation ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the command reply document

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command reply document

MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Returns the command reply document

Descrição

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply(): object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command reply document as a stdClass object.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns the command's request ID

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command's request ID

MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Returns the command's request ID

Descrição

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId(): string

The request ID is generated by the driver and may be used to associate this MongoDB\Driver\Monitoring\CommandSucceededEvent with a previous MongoDB\Driver\Monitoring\CommandStartedEvent.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the command's request ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the Server on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the Server on which the command was executed

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Returns the Server on which the command was executed

Descrição

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer(): MongoDB\Driver\Server

Returns the MongoDB\Driver\Server on which the command was executed.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the MongoDB\Driver\Server on which the command was executed.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer() - Returns the Server on which the command was executed
  • MongoDB\Driver\Cursor::getServer() - Returns the server associated with this cursor
  • MongoDB\Driver\WriteResult::getServer() - Returns the server associated with this write result
  • Application Performance Monitoring (APM)


Returns the server connection ID for the command

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the server connection ID for the command

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId

(mongodb >=1.14.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId — Returns the server connection ID for the command

Descrição

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId(): ?int

Returns the server connection ID for the command. The server connection ID is distinct from server (i.e. MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer()) and is returned in the "connectionId" field of a hello command response MongoDB 4.2+.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the server connection ID, or null if it is not available.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the load balancer service ID for the command

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId
  • MongoDB\Driver\Monitoring\ServerChangedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the load balancer service ID for the command

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId

(mongodb >=1.11.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId — Returns the load balancer service ID for the command

Descrição

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId(): ?MongoDB\BSON\ObjectId

When the driver is connected to a MongoDB cluster through a load balancer, the service ID corresponds to the serviceId field in the hello command response.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the load balancer service ID, or null if the driver is not connected to a load balancer.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\ServerChangedEvent class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\Monitoring\ServerChangedEvent class encapsulates information about a changed server description.

Resumo da classe

final class MongoDB\Driver\Monitoring\ServerChangedEvent {
/* Métodos */
final public getHost(): string
final public getNewDescription(): MongoDB\Driver\ServerDescription
final public getPort(): int
final public getPreviousDescription(): MongoDB\Driver\ServerDescription
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Índice

  • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription — Returns the new description for the server
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription — Returns the previous description for the server
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId — Returns the topology ID associated with this server


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerChangedEvent
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerChangedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getHost — Returns the hostname of the server

Descrição

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getHost(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the hostname of the server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the new description for the server

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Returns the new description for the server

MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription — Returns the new description for the server

Descrição

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription(): MongoDB\Driver\ServerDescription

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the new MongoDB\Driver\ServerDescription for the server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerChangedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getPort — Returns the port on which this server is listening

Descrição

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getPort(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the port on which this server is listening.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the previous description for the server

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Returns the previous description for the server

MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription — Returns the previous description for the server

Descrição

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription(): MongoDB\Driver\ServerDescription

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the previous MongoDB\Driver\ServerDescription for the server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the topology ID associated with this server

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription
  • MongoDB\Driver\Monitoring\ServerClosedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Returns the topology ID associated with this server

MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId — Returns the topology ID associated with this server

Descrição

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the topology ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\ServerClosedEvent class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\Monitoring\ServerClosedEvent class encapsulates information about a closed server.

Resumo da classe

final class MongoDB\Driver\Monitoring\ServerClosedEvent {
/* Métodos */
final public getHost(): string
final public getPort(): int
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Índice

  • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId — Returns the topology ID associated with this server


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerClosedEvent
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerClosedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerClosedEvent::getHost — Returns the hostname of the server

Descrição

final public MongoDB\Driver\Monitoring\ServerClosedEvent::getHost(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the hostname of the server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerClosedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerClosedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerClosedEvent::getPort — Returns the port on which this server is listening

Descrição

final public MongoDB\Driver\Monitoring\ServerClosedEvent::getPort(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the port on which this server is listening.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the topology ID associated with this server

  • « MongoDB\Driver\Monitoring\ServerClosedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerOpeningEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • Returns the topology ID associated with this server

MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId — Returns the topology ID associated with this server

Descrição

final public MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the topology ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\ServerOpeningEvent class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\Monitoring\ServerOpeningEvent class encapsulates information about an opened server.

Resumo da classe

final class MongoDB\Driver\Monitoring\ServerOpeningEvent {
/* Métodos */
final public getHost(): string
final public getPort(): int
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Índice

  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId — Returns the topology ID associated with this server


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerOpeningEvent
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost — Returns the hostname of the server

Descrição

final public MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the hostname of the server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort — Returns the port on which this server is listening

Descrição

final public MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the port on which this server is listening.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the topology ID associated with this server

  • « MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • Returns the topology ID associated with this server

MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId — Returns the topology ID associated with this server

Descrição

final public MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId(): MongoDB\BSON\ObjectId

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the topology ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent class encapsulates information about a failed server heartbeat.

Resumo da classe

final class MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent {
/* Métodos */
final public getDurationMicros(): int
final public getError(): Exception
final public getHost(): string
final public getPort(): int
final public isAwaited(): bool
}

Índice

  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros — Returns the heartbeat's duration in microseconds
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError — Returns the Exception associated with the failed heartbeat
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol


Returns the heartbeat's duration in microseconds

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Returns the heartbeat's duration in microseconds

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros — Returns the heartbeat's duration in microseconds

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros(): int

The heartbeat's duration is a calculated value that includes the time to send the message and receive the reply from the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the heartbeat's duration in microseconds.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the Exception associated with the failed heartbeat

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Returns the Exception associated with the failed heartbeat

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError — Returns the Exception associated with the failed heartbeat

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError(): Exception

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Exception associated with the failed heartbeat.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost — Returns the hostname of the server

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the hostname of the server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort — Returns the port on which this server is listening

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the port on which this server is listening.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns whether the heartbeat used a streaming protocol

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Returns whether the heartbeat used a streaming protocol

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited(): bool

Returns whether the heartbeat used a streaming protocol. The PHP driver does not use the streaming protocol for monitoring, so this method will always return false.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns false.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent class encapsulates information about a started server heartbeat.

Resumo da classe

final class MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent {
/* Métodos */
final public getHost(): string
final public getPort(): int
final public isAwaited(): bool
}

Índice

  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost — Returns the hostname of the server

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the hostname of the server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort — Returns the port on which this server is listening

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the port on which this server is listening.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns whether the heartbeat used a streaming protocol

  • « MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • Returns whether the heartbeat used a streaming protocol

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited(): bool

Returns whether the heartbeat used a streaming protocol. The PHP driver does not use the streaming protocol for monitoring, so this method will always return false.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns false.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent class encapsulates information about a successful server heartbeat.

Resumo da classe

final class MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent {
/* Métodos */
final public getDurationMicros(): int
final public getHost(): string
final public getPort(): int
final public getReply(): object
final public isAwaited(): bool
}

Índice

  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros — Returns the heartbeat's duration in microseconds
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply — Returns the heartbeat reply document
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited — Returns whether the heartbeat used a streaming protocol


Returns the heartbeat's duration in microseconds

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Returns the heartbeat's duration in microseconds

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros — Returns the heartbeat's duration in microseconds

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros(): int

The heartbeat's duration is a calculated value that includes the time to send the message and receive the reply from the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the heartbeat's duration in microseconds.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost — Returns the hostname of the server

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the hostname of the server.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort — Returns the port on which this server is listening

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the port on which this server is listening.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the heartbeat reply document

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Returns the heartbeat reply document

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply — Returns the heartbeat reply document

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply(): object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the heartbeat reply document as a stdClass object.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns whether the heartbeat used a streaming protocol

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply
  • MongoDB\Driver\Monitoring\TopologyChangedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Returns whether the heartbeat used a streaming protocol

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited — Returns whether the heartbeat used a streaming protocol

Descrição

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited(): bool

Returns whether the heartbeat used a streaming protocol. The PHP driver does not use the streaming protocol for monitoring, so this method will always return false.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns false.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\TopologyChangedEvent class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\Monitoring\TopologyChangedEvent class encapsulates information about a changed topology description.

Resumo da classe

final class MongoDB\Driver\Monitoring\TopologyChangedEvent {
/* Métodos */
final public getNewDescription(): MongoDB\Driver\TopologyDescription
final public getPreviousDescription(): MongoDB\Driver\TopologyDescription
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Índice

  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription — Returns the new description for the topology
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription — Returns the previous description for the topology
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId — Returns the topology ID


Returns the new description for the topology

  • « MongoDB\Driver\Monitoring\TopologyChangedEvent
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • Returns the new description for the topology

MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription — Returns the new description for the topology

Descrição

final public MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription(): MongoDB\Driver\TopologyDescription

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the new MongoDB\Driver\TopologyDescription for the topology.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the previous description for the topology

  • « MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • Returns the previous description for the topology

MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription — Returns the previous description for the topology

Descrição

final public MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription(): MongoDB\Driver\TopologyDescription

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the previous MongoDB\Driver\TopologyDescription for the topology.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


Returns the topology ID

  • « MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription
  • MongoDB\Driver\Monitoring\TopologyClosedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • Returns the topology ID

MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId — Returns the topology ID

Descrição

final public MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the topology ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\TopologyClosedEvent class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\Monitoring\TopologyClosedEvent class encapsulates information about a closed topology.

Resumo da classe

final class MongoDB\Driver\Monitoring\TopologyClosedEvent {
/* Métodos */
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Índice

  • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId — Returns the topology ID


Returns the topology ID

  • « MongoDB\Driver\Monitoring\TopologyClosedEvent
  • MongoDB\Driver\Monitoring\TopologyOpeningEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyClosedEvent
  • Returns the topology ID

MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId — Returns the topology ID

Descrição

final public MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the topology ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\TopologyOpeningEvent class

(mongodb >=1.13.0)

Introdução

The MongoDB\Driver\Monitoring\TopologyOpeningEvent class encapsulates information about an opened topology.

Resumo da classe

final class MongoDB\Driver\Monitoring\TopologyOpeningEvent {
/* Métodos */
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Índice

  • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId — Returns the topology ID


Returns the topology ID

  • « MongoDB\Driver\Monitoring\TopologyOpeningEvent
  • MongoDB\Driver\Monitoring\CommandSubscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyOpeningEvent
  • Returns the topology ID

MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId — Returns the topology ID

Descrição

final public MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId(): MongoDB\BSON\ObjectId

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the topology ID.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.


The MongoDB\Driver\Monitoring\CommandSubscriber interface

(mongodb >=1.3.0)

Introdução

Classes may implement this interface to register an event subscriber that is notified for each started, successful, and failed command event. See Application Performance Monitoring (APM) for additional information.

Resumo da Interface

class MongoDB\Driver\Monitoring\CommandSubscriber implements MongoDB\Driver\Monitoring\Subscriber {
/* Métodos */
abstract public commandFailed(MongoDB\Driver\Monitoring\CommandFailedEvent $event): void
abstract public commandStarted(MongoDB\Driver\Monitoring\CommandStartedEvent $event): void
abstract public commandSucceeded(MongoDB\Driver\Monitoring\CommandSucceededEvent $event): void
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Notification method for a failed command
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Notification method for a started command
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Notification method for a successful command


Notification method for a failed command

  • « MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Notification method for a failed command

MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Notification method for a failed command

Descrição

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed(MongoDB\Driver\Monitoring\CommandFailedEvent $event): void

If the subscriber has been registered, the driver will call this method when a command has failed.

Parâmetros

event (MongoDB\Driver\Monitoring\CommandFailedEvent)

An event object encapsulating information about the failed command.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager
  • Application Performance Monitoring (APM)


Notification method for a started command

  • « MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Notification method for a started command

MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Notification method for a started command

Descrição

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted(MongoDB\Driver\Monitoring\CommandStartedEvent $event): void

If the subscriber has been registered, the driver will call this method when a command has started.

Parâmetros

event (MongoDB\Driver\Monitoring\CommandStartedEvent)

An event object encapsulating information about the started command.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager
  • Application Performance Monitoring (APM)


Notification method for a successful command

  • « MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted
  • MongoDB\Driver\Monitoring\LogSubscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Notification method for a successful command

MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Notification method for a successful command

Descrição

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded(MongoDB\Driver\Monitoring\CommandSucceededEvent $event): void

If the subscriber has been registered, the driver will call this method when a command has succeeded.

Parâmetros

event (MongoDB\Driver\Monitoring\CommandSucceededEvent)

An event object encapsulating information about the successful command.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager
  • Application Performance Monitoring (APM)


The MongoDB\Driver\Monitoring\LogSubscriber interface

(mongodb >=1.17.0)

Introdução

Classes implementing this interface may be registered as a subscriber and receive log messages from the driver. This is similar to stream-based debug logging (i.e. mongodb.debug) except that trace-level log messages are not received.

As with stream-based logging, it is only possible to register a logger globally using MongoDB\Driver\Monitoring\addSubscriber(). The driver is not able to distinguish log messages for individual MongoDB\Driver\Manager objects.

Resumo da Interface

class MongoDB\Driver\Monitoring\LogSubscriber implements MongoDB\Driver\Monitoring\Subscriber {
/* Constantes */
const int LEVEL_ERROR = 0;
const int LEVEL_CRITICAL = 1;
const int LEVEL_WARNING = 2;
const int LEVEL_MESSAGE = 3;
const int LEVEL_INFO = 4;
const int LEVEL_DEBUG = 5;
/* Métodos */
abstract public log(int $level, string $domain, string $message): void
}

Constantes pré-definidas

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_ERROR

Error log level. An error condition that the driver is unable to report through its API. This is the most severe log level in the driver.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_CRITICAL

Critical log level. An error condition with slightly less severity. This constant exists for consistency with libmongoc; however, the driver is unlikely to use it in practice.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_WARNING

Warning log level. Indicates a situation where undesirable application behavior may occur.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_MESSAGE

Message or notice log level. Indicates an event that is unusual but not problematic.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_INFO

Info log level. High-level information about normal driver behavior.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_DEBUG

Debug log level. Detailed information that may be helpful when debugging an application.

Índice

  • MongoDB\Driver\Monitoring\LogSubscriber::log — Notification method for a log message


Notification method for a log message

  • « MongoDB\Driver\Monitoring\LogSubscriber
  • MongoDB\Driver\Monitoring\SDAMSubscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\LogSubscriber
  • Notification method for a log message

MongoDB\Driver\Monitoring\LogSubscriber::log

(mongodb >=1.17.0)

MongoDB\Driver\Monitoring\LogSubscriber::log — Notification method for a log message

Descrição

abstract public MongoDB\Driver\Monitoring\LogSubscriber::log(int $level, string $domain, string $message): void

If the subscriber has been registered, the driver will call this method for each logged message.

Parâmetros

level

The severity level. This will be one of the interface constants.

domain

The name of the driver component that emitted the log message.

message

The log message.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally


The MongoDB\Driver\Monitoring\SDAMSubscriber interface

(mongodb >=1.13.0)

Introdução

Classes may implement this interface to register an event subscriber that is notified for various SDAM events. See the » Server Discovery and Monitoring and » SDAM Monitoring specifications for additional information.

Resumo da Interface

class MongoDB\Driver\Monitoring\SDAMSubscriber implements MongoDB\Driver\Monitoring\Subscriber {
/* Métodos */
abstract public serverChanged(MongoDB\Driver\Monitoring\ServerChangedEvent $event): void
abstract public serverClosed(MongoDB\Driver\Monitoring\ServerClosedEvent $event): void
abstract public serverHeartbeatFailed(MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent $event): void
abstract public serverHeartbeatStarted(MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent $event): void
abstract public serverHeartbeatSucceeded(MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent $event): void
abstract public serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event): void
abstract public topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event): void
abstract public topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event): void
abstract public topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event): void
}

Registro de Alterações

Versão | Descrição
mongodb 1.15.0 no PECL | Os tipos de retorno para métodos são declarados como provisórios no PHP 8.0 e mais recentes, disparando avisos de descontinuação no código que implementa essa interface sem declarar os tipos de retorno apropriados. O atributo #[ReturnTypeWillChange] pode ser adicionado para silenciar o aviso de descontinuação.

Índice

  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged — Notification method for a server description change
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed — Notification method for closing a server
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed — Notification method for a failed server heartbeat
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted — Notification method for a started server heartbeat
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded — Notification method for a successful server heartbeat
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening — Notification method for opening a server
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged — Notification method for a topology description change
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed — Notification method for closing the topology
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening — Notification method for opening the topology


Notification method for a server description change

  • « MongoDB\Driver\Monitoring\SDAMSubscriber
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for a server description change

MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged — Notification method for a server description change

Descrição

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged(MongoDB\Driver\Monitoring\ServerChangedEvent $event): void

If the subscriber has been registered, the driver will call this method when a server's description has changed.

Parâmetros

event (MongoDB\Driver\Monitoring\ServerChangedEvent)

An event object encapsulating information about the changed server description.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for closing a server

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for closing a server

MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed — Notification method for closing a server

Descrição

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed(MongoDB\Driver\Monitoring\ServerClosedEvent $event): void

If the subscriber has been registered, the driver will call this method when a server is closed.

Parâmetros

event (MongoDB\Driver\Monitoring\ServerClosedEvent)

An event object encapsulating information about the closed server.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for a failed server heartbeat

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for a failed server heartbeat

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed — Notification method for a failed server heartbeat

Descrição

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed(MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent $event): void

If the subscriber has been registered, the driver will call this method when a server heartbeat (i.e. » hello command issued through » server monitoring) has failed.

Parâmetros

event (MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent)

An event object encapsulating information about the failed server heartbeat.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for a started server heartbeat

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for a started server heartbeat

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted — Notification method for a started server heartbeat

Descrição

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted(MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent $event): void

If the subscriber has been registered, the driver will call this method when a server heartbeat (i.e. » hello command issued through » server monitoring) has started.

Parâmetros

event (MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent)

An event object encapsulating information about the started server heartbeat.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for a successful server heartbeat

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for a successful server heartbeat

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded — Notification method for a successful server heartbeat

Descrição

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded(MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent $event): void

If the subscriber has been registered, the driver will call this method when a server heartbeat (i.e. » hello command issued through » server monitoring) has succeeded.

Parâmetros

event (MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent)

An event object encapsulating information about the successful server heartbeat.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for opening a server

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for opening a server

MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening — Notification method for opening a server

Descrição

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event): void

If the subscriber has been registered, the driver will call this method when a server is opened.

Parâmetros

event (MongoDB\Driver\Monitoring\ServerOpeningEvent)

An event object encapsulating information about the opened server.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for a topology description change

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for a topology description change

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged — Notification method for a topology description change

Descrição

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event): void

If the subscriber has been registered, the driver will call this method when the topology's description has changed.

Parâmetros

event (MongoDB\Driver\Monitoring\TopologyChangedEvent)

An event object encapsulating information about the changed topology description.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for closing the topology

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for closing the topology

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed — Notification method for closing the topology

Descrição

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event): void

If the subscriber has been registered, the driver will call this method when the topology is closed.

Parâmetros

event (MongoDB\Driver\Monitoring\TopologyClosedEvent)

An event object encapsulating information about the closed topology.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\TopologyClosedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for opening the topology

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed
  • MongoDB\Driver\Monitoring\Subscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for opening the topology

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening — Notification method for opening the topology

Descrição

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event): void

If the subscriber has been registered, the driver will call this method when the topology is opened.

Parâmetros

event (MongoDB\Driver\Monitoring\TopologyOpeningEvent)

An event object encapsulating information about the opened topology.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.

Veja Também

  • MongoDB\Driver\Monitoring\TopologyOpeningEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a monitoring event subscriber globally
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


The MongoDB\Driver\Monitoring\Subscriber interface

(mongodb >=1.3.0)

Introdução

Base interface for event subscribers. This is used as a parameter type in the functions MongoDB\Driver\Monitoring\addSubscriber() and MongoDB\Driver\Monitoring\removeSubscriber() and should not be implemented directly.

Resumo da Interface

class MongoDB\Driver\Monitoring\Subscriber {
}

This interface has no methods. Its only purpose is to be the base interface for all event subscribers.


Exception classes

  • MongoDB\Driver\Exception\AuthenticationException — The MongoDB\Driver\Exception\AuthenticationException class
  • MongoDB\Driver\Exception\BulkWriteException — The MongoDB\Driver\Exception\BulkWriteException class
  • MongoDB\Driver\Exception\CommandException — The MongoDB\Driver\Exception\CommandException class
    • MongoDB\Driver\Exception\CommandException::getResultDocument — Returns the result document for the failed command
  • MongoDB\Driver\Exception\ConnectionException — The MongoDB\Driver\Exception\ConnectionException class
  • MongoDB\Driver\Exception\ConnectionTimeoutException — The MongoDB\Driver\Exception\ConnectionTimeoutException class
  • MongoDB\Driver\Exception\EncryptionException — The MongoDB\Driver\Exception\EncryptionException class
  • MongoDB\Driver\Exception\Exception — The MongoDB\Driver\Exception\Exception interface
  • MongoDB\Driver\Exception\ExecutionTimeoutException — The MongoDB\Driver\Exception\ExecutionTimeoutException class
  • MongoDB\Driver\Exception\InvalidArgumentException — The MongoDB\Driver\Exception\InvalidArgumentException class
  • MongoDB\Driver\Exception\LogicException — The MongoDB\Driver\Exception\LogicException class
  • MongoDB\Driver\Exception\RuntimeException — The MongoDB\Driver\Exception\RuntimeException class
    • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Returns whether an error label is associated with an exception
  • MongoDB\Driver\Exception\ServerException — The MongoDB\Driver\Exception\ServerException class
  • MongoDB\Driver\Exception\SSLConnectionException — The MongoDB\Driver\Exception\SSLConnectionException class (deprecated)
  • MongoDB\Driver\Exception\UnexpectedValueException — The MongoDB\Driver\Exception\UnexpectedValueException class
  • MongoDB\Driver\Exception\WriteException — The MongoDB\Driver\Exception\WriteException class
    • MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation
  • Class Tree — MongoDB Exception Class Tree


The MongoDB\Driver\Exception\AuthenticationException class

(mongodb >= 1.0.0)

Introdução

Thrown when the driver fails to authenticate with the server.

Resumo da classe

class MongoDB\Driver\Exception\AuthenticationException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\BulkWriteException class

(mongodb >= 1.0.0)

Introdução

Thrown when a bulk write operation fails.

Resumo da classe

class MongoDB\Driver\Exception\BulkWriteException extends MongoDB\Driver\Exception\WriteException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected MongoDB\Driver\WriteResult $writeResult;
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public MongoDB\Driver\Exception\WriteException::getWriteResult(): MongoDB\Driver\WriteResult
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\CommandException class

(mongodb >= 1.5.0)

Introdução

Thrown when a command fails.

Resumo da classe

class MongoDB\Driver\Exception\CommandException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Propriedades */
protected object $resultDocument;
/* Propriedades herdadas */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
final public getResultDocument(): object
/* Métodos herdados */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

resultDocument

The result document associated with the failed command.

Índice

  • MongoDB\Driver\Exception\CommandException::getResultDocument — Returns the result document for the failed command


Returns the result document for the failed command

  • « MongoDB\Driver\Exception\CommandException
  • MongoDB\Driver\Exception\ConnectionException »
  • PHP Manual
  • MongoDB\Driver\Exception\CommandException
  • Returns the result document for the failed command

MongoDB\Driver\Exception\CommandException::getResultDocument

(mongodb >= 1.5.0)

MongoDB\Driver\Exception\CommandException::getResultDocument — Returns the result document for the failed command

Descrição

final public MongoDB\Driver\Exception\CommandException::getResultDocument(): object

Returns the result document for the failed command.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The result document for the failed command.

Veja Também

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command


The MongoDB\Driver\Exception\ConnectionException class

(mongodb >= 1.0.0)

Introdução

Base class for exceptions thrown when the driver fails to establish a database connection.

Resumo da classe

class MongoDB\Driver\Exception\ConnectionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\ConnectionTimeoutException class

(mongodb >= 1.0.0)

Introdução

Thrown when the driver fails to establish a database connection within a specified time limit (connectTimeoutMS) or server selection fails (serverSelectionTimeoutMS).

Resumo da classe

final class MongoDB\Driver\Exception\ConnectionTimeoutException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\EncryptionException class

(mongodb >= 1.7.0)

Introdução

Base class for exceptions thrown during client-side encryption.

Resumo da classe

class MongoDB\Driver\Exception\EncryptionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\Exception interface

(mongodb >= 1.0.0)

Introdução

Common interface for all driver exceptions. This may be used to catch only exceptions originating from the driver itself.

Resumo da classe

class MongoDB\Driver\Exception\Exception {
}


The MongoDB\Driver\Exception\ExecutionTimeoutException class

(mongodb >= 1.0.0)

Introdução

Thrown when a query or command fails to complete within a specified time limit (e.g. » maxTimeMS).

Resumo da classe

final class MongoDB\Driver\Exception\ExecutionTimeoutException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Registro de Alterações

Versão | Descrição
PECL mongodb 1.5.0 | This class now extends MongoDB\Driver\Exception\ServerException instead of MongoDB\Driver\Exception\RuntimeException.


The MongoDB\Driver\Exception\InvalidArgumentException class

(mongodb >= 1.0.0)

Introdução

Thrown when a driver method is given invalid arguments (e.g. invalid option types).

Resumo da classe

class MongoDB\Driver\Exception\InvalidArgumentException extends InvalidArgumentException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\LogicException class

(mongodb >= 1.0.0)

Introdução

Thrown when the driver is incorrectly used (e.g. rewinding a cursor).

Resumo da classe

class MongoDB\Driver\Exception\LogicException extends LogicException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\RuntimeException class

(mongodb >= 1.0.0)

Introdução

Thrown when the driver encounters a runtime error (e.g. internal error from » libmongoc).

Resumo da classe

class MongoDB\Driver\Exception\RuntimeException extends RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriedades */
protected ?array $errorLabels;
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
final public hasErrorLabel(string $errorLabel): bool
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

errorLabels

Contains an array of error labels to go with an exception. For example, error labels can be used to detect whether a transaction can be retried safely if the TransientTransactionError label is present. The existence of a specific error label should be tested for with the MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(), instead of interpreting this errorLabels property manually.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.6.0 | The MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() method and MongoDB\Driver\Exception\RuntimeException::errorLabels property have been added.

Índice

  • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Returns whether an error label is associated with an exception


Returns whether an error label is associated with an exception

  • « MongoDB\Driver\Exception\RuntimeException
  • MongoDB\Driver\Exception\ServerException »
  • PHP Manual
  • MongoDB\Driver\Exception\RuntimeException
  • Returns whether an error label is associated with an exception

MongoDB\Driver\Exception\RuntimeException::hasErrorLabel

(mongodb >= 1.6.0)

MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Returns whether an error label is associated with an exception

Descrição

final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool

Returns whether the errorLabel has been set for this exception. Error labels are set by either the server or the driver to indicated specific situations on which you might want to decide on how you want to handle a specific exception. A common situation might be to find out whether you can safely retry a transaction that failed due to a transient error (like a networking issue, or a transaction conflict). Examples of error labels are TransientTransactionError and UnknownTransactionCommitResult.

Parâmetros

errorLabel

The name of the errorLabel to test for.

Valor Retornado

Whether the given errorLabel is associated with this exception.

Veja Também

  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • » MongoDB documentation on transactions


The MongoDB\Driver\Exception\ServerException class

(mongodb >= 1.5.0)

Introdução

Base class for exceptions thrown by the server. The code of this exception and its subclasses will correspond to the original error code from the server.

Resumo da classe

class MongoDB\Driver\Exception\ServerException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\SSLConnectionException class (deprecated)

(mongodb >= 1.0.0)

Aviso

This exception class is deprecated and may be removed in a future major version. The driver has never thrown this exception.

Introdução

Thrown when the driver fails to establish an SSL connection with the server.

Resumo da classe

final class MongoDB\Driver\Exception\SSLConnectionException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\UnexpectedValueException class

(mongodb >= 1.0.0)

Introdução

Thrown when the driver encounters an unexpected value (e.g. during BSON serialization or deserialization).

Resumo da classe

class MongoDB\Driver\Exception\UnexpectedValueException extends UnexpectedValueException implements MongoDB\Driver\Exception\Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\WriteException class

(mongodb >= 1.0.0)

Introdução

Base class for exceptions thrown by a failed write operation. The exception encapsulates a MongoDB\Driver\WriteResult object.

Resumo da classe

abstract class MongoDB\Driver\Exception\WriteException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Propriedades */
protected MongoDB\Driver\WriteResult $writeResult;
/* Propriedades herdadas */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
final public getWriteResult(): MongoDB\Driver\WriteResult
/* Métodos herdados */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

writeResult

The MongoDB\Driver\WriteResult associated with the failed write operation.

Registro de Alterações

Versão | Descrição
PECL mongodb 1.5.0 | This class now extends MongoDB\Driver\Exception\ServerException instead of MongoDB\Driver\Exception\RuntimeException.

Índice

  • MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation


Returns the WriteResult for the failed write operation

  • « MongoDB\Driver\Exception\WriteException
  • Class Tree »
  • PHP Manual
  • MongoDB\Driver\Exception\WriteException
  • Returns the WriteResult for the failed write operation

MongoDB\Driver\Exception\WriteException::getWriteResult

(mongodb >= 1.0.0)

MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation

Descrição

final public MongoDB\Driver\Exception\WriteException::getWriteResult(): MongoDB\Driver\WriteResult

Returns the MongoDB\Driver\WriteResult for the failed write operation. The MongoDB\Driver\WriteResult::getWriteErrors() and MongoDB\Driver\WriteResult::getWriteConcernError() methods may be used to get more details about the failure.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The MongoDB\Driver\WriteResult for the failed write operation.

Exemplos

Exemplo #1 MongoDB\Driver\Exception\WriteException::getWriteResult() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost');
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
$manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\WriteException $e) {
$writeResult = $e->getWriteResult();

if ($writeConcernError = $writeResult->getWriteConcernError()) {
var_dump($writeConcernError);
}

if ($writeErrors = $writeResult->getWriteErrors()) {
var_dump($writeErrors);
}
}

?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(70) "E11000 duplicate key error index: db.collection.$_id_ dup key: { : 1 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(1)
    ["info"]=>
    NULL
  }
}

Veja Também

  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations


MongoDB Exception Class Tree

The class hierarchy for MongoDB exceptions is modeled after that of the SPL Exceptions. Base classes extend their SPL counterpart and all exception classes in the extension implement the MongoDB\Driver\Exception\Exception interface.

  • MongoDB\Driver\Exception\LogicException (extends LogicException)
  • MongoDB\Driver\Exception\InvalidArgumentException (extends InvalidArgumentException)
  • MongoDB\Driver\Exception\UnexpectedValueException (extends UnexpectedValueException)
  • MongoDB\Driver\Exception\RuntimeException (extends RuntimeException)
    • MongoDB\Driver\Exception\ConnectionException
      • MongoDB\Driver\Exception\AuthenticationException
      • MongoDB\Driver\Exception\ConnectionTimeoutException
      • MongoDB\Driver\Exception\SSLConnectionException (deprecated)
    • MongoDB\Driver\Exception\EncryptionException
    • MongoDB\Driver\Exception\ServerException
      • MongoDB\Driver\Exception\CommandException
      • MongoDB\Driver\Exception\ExecutionTimeoutException
      • MongoDB\Driver\Exception\WriteException
        • MongoDB\Driver\Exception\BulkWriteException


Drivers e Plugins MySQL

PHP oferece vários drivers e plugins MySQL para acessar e lidar com o MySQL.

As diferenças e a funcionalidade das extensões MySQL estão descritas na visão geral desta seção.

  • Visão geral dos drivers PHP para MySQL
    • Introdução
    • Visão geral de terminologia
    • Escolhendo uma API
    • Escolhendo uma biblioteca
    • Conceitos
  • MySQLi — Extensão MySQL Melhorada
    • Introdução
    • Overview
    • Guia de início rápido
    • Instalação/Configuração
    • A extensão mysqli e conexões persistentes
    • Constantes pré-definidas
    • Notes
    • Resumo da Função de Extensão do MySQLi
    • mysqli — A classe mysqli
    • mysqli_stmt — A classe mysqli_stmt
    • mysqli_result — A classe mysqli_result
    • mysqli_driver — A classe mysqli_driver
    • mysqli_warning — A classe mysqli_warning
    • mysqli_sql_exception — A classe mysqli_sql_exception
    • Apelidos e Funções descontinuadas da Mysqli
    • Registro de Alterações
  • Mysql_xdevapi
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Registro de Alterações
    • Exemplos
    • Mysql_xdevapi Funções
    • mysql_xdevapi\BaseResult — BaseResult interface
    • mysql_xdevapi\Client — Client class
    • mysql_xdevapi\Collection — Collection class
    • mysql_xdevapi\CollectionAdd — CollectionAdd class
    • mysql_xdevapi\CollectionFind — CollectionFind class
    • mysql_xdevapi\CollectionModify — CollectionModify class
    • mysql_xdevapi\CollectionRemove — CollectionRemove class
    • mysql_xdevapi\ColumnResult — ColumnResult class
    • mysql_xdevapi\CrudOperationBindable — CrudOperationBindable interface
    • mysql_xdevapi\CrudOperationLimitable — CrudOperationLimitable interface
    • mysql_xdevapi\CrudOperationSkippable — CrudOperationSkippable interface
    • mysql_xdevapi\CrudOperationSortable — CrudOperationSortable interface
    • mysql_xdevapi\DatabaseObject — DatabaseObject interface
    • mysql_xdevapi\DocResult — DocResult class
    • mysql_xdevapi\Exception — Exception class
    • mysql_xdevapi\Executable — Executable interface
    • mysql_xdevapi\ExecutionStatus — ExecutionStatus class
    • mysql_xdevapi\Expression — Expression class
    • mysql_xdevapi\Result — Result class
    • mysql_xdevapi\RowResult — RowResult class
    • mysql_xdevapi\Schema — Schema class
    • mysql_xdevapi\SchemaObject — SchemaObject interface
    • mysql_xdevapi\Session — Session class
    • mysql_xdevapi\SqlStatement — SqlStatement class
    • mysql_xdevapi\SqlStatementResult — SqlStatementResult class
    • mysql_xdevapi\Statement — Statement class
    • mysql_xdevapi\Table — Table class
    • mysql_xdevapi\TableDelete — TableDelete class
    • mysql_xdevapi\TableInsert — TableInsert class
    • mysql_xdevapi\TableSelect — TableSelect class
    • mysql_xdevapi\TableUpdate — TableUpdate class
    • mysql_xdevapi\Warning — Warning class
  • MySQL (Original) — Original MySQL API
    • Introdução
    • Instalação/Configuração
    • Registro de Alterações
    • Constantes pré-definidas
    • Exemplos
    • Funções da MySQL
  • Mysqlnd — Driver Nativo MySQL
    • Introdução
    • Visão Geral
    • Instalação
    • Configurações em Execução
    • Incompatibilidades
    • Conexões Persistentes
    • Estatísticas
    • Notas
    • Gerenciamento de Memória
    • API do plugin do Driver Nativo MySQL


Visão geral dos drivers PHP para MySQL

  • Introdução
  • Visão geral de terminologia
  • Escolhendo uma API
  • Escolhendo uma biblioteca
  • Conceitos
    • Consultas com buffer e sem buffer
    • Conjuntos de caracteres


Introdução

Existem muitas APIs de PHP para acessar bancos de dados MySQL. Os usuários podem escolher entre as extesões mysqli ou PDO_MySQL.

Este guia explica a terminologia usada para descrever cada API, informação sobre a escolha de qual API a ser usada, e também informação para ajudar a escolher qual biblioteca MySQL a ser usada com a API.


Visão geral de terminologia

Esta seção fornece uma introdução às opções disponíveis ao desenvolver aplicações PHP que precisem interagir com um banco de dados MySQL.

O que é uma API?

Uma Interface de Programação para Aplicações, ou API, define as classes, métodos, funções e variáveis que a aplicação precisará chamar para que consiga efetuar a tarefa desejada. No caso de aplicações PHP que precisem comunicar com banco de dados, as APIs necessárias são normalmente expostas através de extensões do PHP.

APIs podem ser procedurais ou orientadas a objeto. Com uma API procedural, pode-se chamar funções para realizar tarefas, e com uma API orientada a objeto, pode-se instanciar classes e então chamar métodos nos objetos resultantes. Entre as duas opções, a última é a interface recomendada, já que é mais moderna e leva a um código mais organizado.

Ao escrever aplicações PHP que precisam se conectar ao servidor MySQL, existem várias opções de API disponíveis. Este documento discute o que está disponível e como selecionar a melhor solução para cada aplicação.

O que é um conector?

Na documentação MySQL, o termo conector se refere a uma parte do software que permite à aplicação se conectar ao servidor de banco de dados MySQL. O MySQL fornece conectores para uma variedade de linguagens, incluindo o PHP.

Se uma aplicação PHP precisa se comunicar com um servidor de banco de dados será necessário escrever código PHP para realizar tais atividades como conexão ao banco de dados, consultas ao banco e outras funções relacionadas. Software é requerido para fornecer a API que a aplicação PHP irá utilizar, e também para lidar com a comunicação entre a aplicação e o servidor de banco de dados, possivelmente usando outras bibliotecas intermediárias quando necessário. Este software é conhecimento genericamente como conector, já que ele permite à aplicação se conectar ao servidor de banco de dados.

O que é um Driver?

Um driver é uma parte do software projetada para se comunicar com um tipo específico de servidor de banco de dados. O driver também pode chamar uma biblioteca, tal como a Bliblioteca Cliente MySQL ou o Driver Nativo MySQL. Estas bibliotecas implementam o protocolo de baixo nível usado para comunicação com o servidor de dados MySQL.

Para exemplificar, a camada de abstração de banco da dados PDO - Objetos de Dados PHP pode usar um dos vários drivers específicos para banco de dados. Um dos drivers disponíveis é o driver PDO MYSQL, que permite fazer interface com o servidor MySQL.

Algumas vezes os termos conector e driver são usados de maneira intercambiável, e isto pode ser confuso. Na documentação relacionada com o MySQL o termo driver é reservado para o software que fornece a parte específica de banco de dados de um pacote de conector.

O que é uma Extensão?

Na documentação PHP, encontramos um outro termo - extensão. O código PHP consiste de um núcleo, com extensões opcionais à funcionalidade do núcleo. A extensão do PHP relacionada com o MySQL, mysqli, é implementada usando o framework de extensão PHP.

Uma extensão tipicamente expõe uma API para o programador PHP, para permitir que suas instalações possam ser usadas programaticamente. Entretanto, algumas extensões que usam o framework de extensão PHP não expõem uma API ao programador PHP.

A extensão do driver de PDO MySQL, por exemplo, não expõe uma API ao programador PHP, mas fornece uma interface à camada PDO acima dela.

Os termos API e extensão não podem ser considerados com o mesmo significado, já que uma extensão não necessáriamente expões uma API ao programador.


Escolhendo uma API

O PHP oferece diferentes APIs para conexão ao MySQL. Pode-se ver abaixo as APIs fornecidas pelas extensões mysqli e PDO. Cada porção de código cria uma conexão a um servidor MySQL sendo executado em "example.com" usando o usuário "user" e a senha "password". E uma consulta é executada para cumprimentar o usuário.

Exemplo #1 Comparando as APIs do MySQL

<?php
// mysqli
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 'Olá, prezado usuário MySQL!' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->query("SELECT 'Olá, prezado usuário MySQL!' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

Exemplo #2 Comparando instruções preparadas

<?php
// mysqli
$mysqli = new mysqli("example.com", "user", "password", "database");
$statement = $mysqli->prepare("SELECT District FROM City WHERE Name=?");
$statement->execute(["Amersfoort"]);
$result = $statement->get_result();
$row = $result->fetch_assoc();
echo htmlentities($row['District']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->prepare("SELECT District FROM City WHERE Name=?");
$statement->execute(["Amersfoort"]);
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['District']);

Comparação de características

O desempenho geral de ambas as extensões é considerada aproximadamente a mesma, embora o desempenho da extensão contribui somente para uma fração do tempo total de uma requisição web do PHP. Frequentemente, o impacto é tão baixo quanto 0,1%.

 | ext/mysqli | PDO_MySQL
Versão em que foi introduzida no PHP | 5.0 | 5.1
Incluída no PHP 7.x e 8.x | Sim | Sim
Estado do desenvolvimento | Ativo | Ativo
Ciclo de vida | Ativo | Ativo
Recomendado para novos projetos | Sim | Sim
Interface POO | Sim | Sim
Interface Procedural | Sim | Não
API suporta consultas sem bloqueio assíncronas com mysqlnd | Sim | Não
Conexões persistentes | Sim | Sim
API suporta conjuntos de caracteres | Sim | Sim
API suporta Instruções Preparadas no lado do servidor | Sim | Sim
API suporta Instruções Preparadas no lado do cliente | Não | Sim
API suporta Procedimentos Armazenados | Sim | Sim
API suporta Múltiplas Instruções | Sim | A maioria
API suporta Transações | Sim | Sim
Transações podem ser controladas com SQL | Sim | Sim
Supporta toda a funcionalidade do MySQL 5.1+ | Sim | A maioria


Escolhendo uma biblioteca

As extensões mysqli e PDO_MySQL são encapsuladores leves de uma biblioteca cliente em C. As extensões podem tanto usar a biblioteca mysqlnd quanto a biblioteca libmysqlclient. Escolher uma biblioteca é uma decisão a ser tomada na compilação.

A biblioteca mysqlnd é parte da distribuição PHP. Ela oferece recursos como conexões preguiçosas e cache de consultas, que não estão disponíveis com a libmysqlclient, portanto usar a biblioteca mysqlnd interna é altamente recomendado. Consulte a documentação mysqlnd para detalhes adicionais e uma lista de recursos e funcionalidade que ela oferece.

Exemplo #1 Comandos de configuração para usar mysqlnd ou libmysqlclient

// Recomendado, compilar com mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

// Alternativamente recomendado, compilar com mysqlnd
$ ./configure --with-mysqli --with-pdo-mysql

// Não recomendado, compila com libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config

Comparação de recursos de bibliotecas

É recomendado usar a biblioteca mysqlnd ao invés da biblioteca Cliente-Servidor do MySQL (libmysqlclient). Ambas são suportadas e estão constantemente sendo melhoradas.

 | Driver nativo MySQL (mysqlnd) | Biblioteca cliente-servidor MySQL (libmysqlclient)
Faz parte da distribuição PHP | Sim | Não
Versão do PHP em que foi introduzida | 5.3.0 | N/A
Licença | Licença PHP 3.01 | Dupla Licença
Estado de desenvolvimento | Ativo | Ativo
Ciclo de vida | Nenhum final anunciado | Nenhum final anunciado
Padrão de compilação (para todas as extensões MySQL) | Sim | Não
Suporte a protocolo de compressão | Sim | Sim
Suporte a SSL | Sim | Sim
Suporte a tubos nomeados | Sim | Sim
Consultas sem bloqueio assíncronas | Sim | Não
Estatísticas de desempenho | Sim | Não
LOAD LOCAL INFILE respeita a diretiva open_basedir | Sim | Não
Usa o sistema de gerenciamento de memória nativo do PHP (ex: segue os limites de memória do PHP) | Sim | Não
Retorna coluna numérica como dupla precisão (COM_QUERY) | Sim | Não
Retorna coluna numérica como string (COM_QUERY) | Sim | Sim
API tipo plugin | Sim | Limitada
Reconexão automática | Não | Opcional


  • « Escolhendo uma biblioteca
  • Consultas com buffer e sem buffer »
  • PHP Manual
  • Visão geral dos drivers PHP para MySQL
  • Conceitos

Conceitos

Índice

  • Consultas com buffer e sem buffer
  • Conjuntos de caracteres

Esses conceitos são específicos dos drivers MySQL para PHP.


Consultas com buffer e sem buffer

As consultas usam o modo de buffer por padrão. Isso significa que os resultados da consulta são imediatamente transferidos do servidor MySQL para o PHP e então mantidos na memória do processo PHP. Isso permite operações adicionais, como contar o número de linhas e mover (buscar) o ponteiro do resultado atual. Também permite emitir consultas adicionais na mesma conexão enquanto trabalha no conjunto de resultados. A desvantagem do modo buffer é que conjuntos de resultados maiores podem exigir bastante memória. A memória será mantida ocupada até que todas as referências ao conjunto de resultados sejam desativadas ou o conjunto de resultados seja explicitamente liberado, o que acontecerá automaticamente durante o término da solicitação, o mais tardar. A terminologia "armazenar resultado" também é usada para o modo buffer, pois todo o conjunto de resultados é armazenado de uma só vez.

Nota:

Ao usar a libmysqlclient como biblioteca, o limite de memória do PHP não contará a memória usada para conjuntos de resultados, a menos que os dados sejam buscados em variáveis ??PHP. Com o mysqlnd a memória contabilizada incluirá o conjunto completo de resultados.

Consultas MySQL sem buffer executam a consulta e aguardam que os dados do servidor MySQL sejam buscados. Isso usa menos memória do lado do PHP, mas pode aumentar a carga no servidor. A menos que o conjunto completo de resultados tenha sido obtido do servidor, nenhuma consulta adicional poderá ser enviada pela mesma conexão. Consultas sem buffer também podem ser chamadas de "resultado de uso". Depois que todas as linhas do conjunto de resultados forem buscadas, o conjunto de resultados desaparecerá e não poderá ser iterado novamente.

Seguindo essas características, consultas sem buffer devem ser utilizadas apenas quando se espera um grande conjunto de resultados que será processado sequencialmente. As consultas sem buffer contêm uma série de armadilhas que tornam mais difícil seu uso, por exemplo, o número de linhas no conjunto de resultados é desconhecido até que a última linha seja obtida. Consultas em buffer são a maneira mais fácil e flexível de processar conjuntos de resultados.

Como as consultas em buffer são o padrão, os exemplos abaixo demonstrarão como executar consultas sem buffer com cada API.

Exemplo #1 Exemplo de consulta sem buffer: mysqli

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$unbufferedResult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT);

foreach ($unbufferedResult as $row) {
echo $row['Name'] . PHP_EOL;
}
?>

Exemplo #2 Exemplo de consulta sem buffer: pdo_mysql

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_password');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$unbufferedResult = $pdo->query("SELECT Name FROM City");
foreach ($unbufferedResult as $row) {
echo $row['Name'] . PHP_EOL;
}
?>


Conjuntos de caracteres

Idealmente, um conjunto de caracteres adequado será definido no nível do servidor, e isso é descrito na seção » Configuração do conjunto de caracteres do manual do servidor MySQL. Alternativamente, cada API MySQL oferece um método para definir o conjunto de caracteres em tempo de execução.

Cuidado

O conjunto de caracteres e escape de caracteres

O conjunto de caracteres deve ser entendido e definido, pois afeta todas as ações e inclui implicações de segurança. Por exemplo, o mecanismo de escape (por exemplo, mysqli_real_escape_string() para mysqli e PDO::quote() para PDO_MySQL) irá aderir a esta configuração. É importante perceber que essas funções não usarão o conjunto de caracteres definido com uma consulta, portanto, por exemplo, o seguinte não terá efeito sobre elas:

Exemplo #1 Problemas ao definir o conjunto de caracteres com SQL

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

// Não afetará $mysqli->real_escape_string();
$mysqli->query("SET NAMES utf8mb4");

// Não afetará $mysqli->real_escape_string();
$mysqli->query("SET CHARACTER SET utf8mb4");

// Mas isto afetará $mysqli->real_escape_string();
$mysqli->set_charset('utf8mb4');

// Porém, isto NÃO irá afetá-la (UTF-8 vs utf8mb4) -- não use hífens aqui
$mysqli->set_charset('UTF-8');
?>

Abaixo estão exemplos que demonstram como alterar adequadamente o conjunto de caracteres em tempo de execução usando cada API.

Nota: Possível confusão UTF-8

Como os nomes dos conjuntos de caracteres no MySQL não contêm hífens, a string "utf8" é válida no MySQL para definir o conjunto de caracteres como UTF-8 (codificação Unicode UTF-8 de até 3 bytes). A string "UTF-8" não é válida, pois o uso de "UTF-8" não alterará o conjunto de caracteres e gerará um erro.

Exemplo #2 Exemplo de definição do conjunto de caracteres: mysqli

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

echo 'Conjunto de caracteres inicial: ' . $mysqli->character_set_name() . "\n";

if (!$mysqli->set_charset('utf8mb4')) {
printf("Erro ao carregar o conjunto de caracteres utf8mb4: %s\n", $mysqli->error);
exit;
}

echo 'Seu conjunto de caracteres atual é: ' . $mysqli->character_set_name() . "\n";
?>

Exemplo #3 Exemplo de definição do conjunto de caracteres: pdo_mysql

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8mb4", 'my_user', 'my_pass');
?>


Extensão MySQL Melhorada

  • Introdução
  • Overview
  • Guia de início rápido
    • Interface dupla, procedural e orientada a objetos
    • Conexões
    • Executando instruções
    • Instruções Preparadas
    • Procedimentos Armazenados
    • Instruções Múltiplas
    • Suporte da API para transações
    • Metadados
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • A extensão mysqli e conexões persistentes
  • Constantes pré-definidas
  • Notes
  • Resumo da Função de Extensão do MySQLi
  • mysqli — A classe mysqli
    • mysqli::$affected_rows — Retorna o número de linhas afetadas pela operação MySQL anterior
    • mysqli::autocommit — Ativa ou desativa a gravação automática das modificações no banco de dados
    • mysqli::begin_transaction — Inicia uma transação
    • mysqli::change_user — Modifica o usuário para a conexão com o banco de dados especificada
    • mysqli::character_set_name — Retorna o conjunto de caracteres atual da conexão com o banco de dados
    • mysqli::close — Fecha uma conexão ao banco de dados previamente aberta
    • mysqli::commit — Grava a transação atual
    • mysqli::$connect_errno — Retorna o código de erro da última chamada de conexão
    • mysqli::$connect_error — Retorna uma descrição do último erro de conexão
    • mysqli::__construct — Abre uma nova conexão com o servidor MySQL
    • mysqli::debug — Realiza operações de depuração
    • mysqli::dump_debug_info — Descarrega informação de debug no log
    • mysqli->errno — Retorna o código de erro para a chamada de função mais recente
    • mysqli::$error_list — Retorna uma lista de erros do último comando executado
    • mysqli->error — Retorna uma string descrevendo o último erro
    • mysqli::execute_query — Prepara, vincula parâmetros e executa a instrução SQL
    • mysqli::$field_count — Retorna o número de campos para a consulta mais recente
    • mysqli::get_charset — Retorna um objeto de conjunto de caracteres
    • mysqli::$client_info — Obtém informação do cliente MySQL
    • mysqli::$client_version — Retorna a versão do cliente MySQL como um inteiro
    • mysqli::get_connection_stats — Retorna estatísticas sobre a conexão do cliente
    • mysqli::$host_info — Retorna uma string representando o tipo de conexão utilizada
    • mysqli::$protocol_version — Retorna a versão do protocolo MySQL usada
    • mysqli::$server_info — Retorna a versão do servidor MySQL
    • mysqli::$server_version — Retorna a versão do servidor MySQL como um inteiro
    • mysqli::get_warnings — Obtém o resultado de SHOW WARNINGS
    • mysqli::$info — Recupera informação sobre a recente consulta executada
    • mysqli::init — Inicializa o MySQLi e retorna um objeto a ser utilizado com mysqli_real_connect()
    • mysqli::$insert_id — Retorna o valor gerado para uma coluna AUTO_INCREMENT pela última consulta
    • mysqli::kill — Solicita ao servidor o encerramento de um thread do MySQL
    • mysqli::more_results — Verifica se há mais algum resultado de uma consulta múltipla
    • mysqli::multi_query — Executa uma ou mais consultas no banco de dados
    • mysqli::next_result — Prepara o próximo resultado de multi_query
    • mysqli::options — Define opções
    • mysqli::ping — Faz ping em uma conexão de servidor ou tenta reconectar se a conexão cair
    • mysqli::poll — Sondagem de conexões
    • mysqli::prepare — Prepara uma instrução SQL para execução
    • mysqli::query — Executa uma consulta no banco de dados
    • mysqli::real_connect — Abre uma conexão com um servidor mysql
    • mysqli::real_escape_string — Escape caracteres especiais em uma string para uso em uma instrução SQL, levando em consideração o conjunto de caracteres atual da conexão
    • mysqli::real_query — Executa uma consulta SQL
    • mysqli::reap_async_query — Obtenha o resultado da consulta assíncrona
    • mysqli::refresh — Atualiza
    • mysqli::release_savepoint — Remove o ponto de salvamento nomeado do conjunto de pontos de salvamento da transação atual
    • mysqli::rollback — Reverte a transação atual
    • mysqli::savepoint — Define um ponto de salvamento de transação nomeado
    • mysqli::select_db — Seleciona o banco de dados padrão para consultas de banco de dados
    • mysqli::set_charset — Define o conjunto de caracteres do cliente
    • mysqli::$sqlstate — Retorna o erro SQLSTATE da operação MySQL anterior
    • mysqli::ssl_set — Usado para estabelecer conexões seguras usando SSL
    • mysqli::stat — Obtém o status atual do sistema
    • mysqli::stmt_init — Inicializa uma instrução e retorna um objeto para uso com mysqli_stmt_prepare
    • mysqli::store_result — Transfere um conjunto de resultados da última consulta
    • mysqli::$thread_id — Retorna o ID da thread para a conexão atual
    • mysqli::thread_safe — Retorna se a segurança de thread é dada ou não
    • mysqli::use_result — Iniciar uma recuperação de conjunto de resultados
    • mysqli::$warning_count — Retorna o número de avisos da última consulta para o link fornecido
  • mysqli_stmt — A classe mysqli_stmt
    • mysqli_stmt::$affected_rows — Retorna o número total de linhas modificadas, apagadas, inseridas ou correspondidas pela última instrução executada
    • mysqli_stmt::attr_get — Usado para obter o valor atual de um atributo de instrução
    • mysqli_stmt::attr_set — Usado para modificar o comportamento de uma instrução preparada
    • mysqli_stmt::bind_param — Liga variáveis a uma declaração preparada como parâmetros
    • mysqli_stmt::bind_result — Liga variáveis a uma declaração preparada para armazenamento de resultado
    • mysqli_stmt::close — Fecha uma instrução preparada
    • mysqli_stmt::__construct — Constrói um novo objeto mysqli_stmt
    • mysqli_stmt::data_seek — Ajusta o ponteiro de resultado para uma linha arbitrária no resultado com buffer
    • mysqli_stmt::$errno — Retorna o código de erro para a chamada de instrução mais recente
    • mysqli_stmt::$error_list — Retorna uma lista de erros da última instrução executada
    • mysqli_stmt::$error — Retorna uma descrição em string para o último erro de instrução
    • mysqli_stmt::execute — Executa uma instrução preparada
    • mysqli_stmt::fetch — Recebe resultados de uma instrução preparada nas variáveis vinculadas
    • mysqli_stmt::$field_count — Retorna o número de colunas na instrução informada
    • mysqli_stmt::free_result — Libera memória do resultado armazenado para o manipulador de instrução informado
    • mysqli_stmt::get_result — Obtém um resultado de uma instrução preparada como um objeto mysqli_result
    • mysqli_stmt::get_warnings — Obtém o resultado de SHOW WARNINGS
    • mysqli_stmt::$insert_id — Obtém o ID gerado pela operação INSERT anterior
    • mysqli_stmt::more_results — Verifica se há mais resultados de uma consulta múltipla
    • mysqli_stmt::next_result — Lê o próximo resultado de uma consulta múltipla
    • mysqli_stmt::$num_rows — Retorna o número de linhas recebidas pelo servidor
    • mysqli_stmt::$param_count — Retorna o número de parâmetros para uma instrução fornecida
    • mysqli_stmt::prepare — Prepara uma declaração SQL para execução
    • mysqli_stmt::reset — Redefine uma instrução preparada
    • mysqli_stmt::result_metadata — Retorna os metadados de resultado de uma instrução preparada
    • mysqli_stmt::send_long_data — Envia dados em blocos
    • mysqli_stmt::$sqlstate — Retorna o erro SQLSTATE da operação da instrução anterior
    • mysqli_stmt::store_result — Armazena um conjunto de resultados em um buffer interno
  • mysqli_result — A classe mysqli_result
    • mysqli_result::__construct — Constrói um objeto mysqli_result
    • mysqli_result::$current_field — Obtém o deslocamento atual de campo de um ponteiro de resultado
    • mysqli_result::data_seek — Ajusta o ponteiro do resultado para uma linha arbritária no resultado
    • mysqli_result::fetch_all — Recebe todas as linhas de resultado como array associativo, numérico, ou ambos
    • mysqli_result::fetch_array — Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
    • mysqli_result::fetch_assoc — Obtém a próxima linha do conjunto de resultados como um array associativo
    • mysqli_result::fetch_column — Recebe uma única coluna da próxima linha de um resultado
    • mysqli_result::fetch_field_direct — Recebe metadados para um único campo
    • mysqli_result::fetch_field — Retorna o próximo campo no conjunto de resultados
    • mysqli_result::fetch_fields — Retorna um array de objetos representando os campos em um conjunto de resultados
    • mysqli_result::fetch_object — Recebe a próxima linha de um resultado como um objeto
    • mysqli_result::fetch_row — Obtém a próxima linha de um resultado como um array enumerado
    • mysqli_result::$field_count — Obtém o número de campos no conjunto de resultados
    • mysqli_result::field_seek — Move o ponteiro do resultado para um campo especificado
    • mysqli_result::free — Libera memória associada a um resultado
    • mysqli_result::getIterator — Obtém um iterador externo
    • mysqli_result::$lengths — Retorna os comprimentos das colunas da linha atual do resultado
    • mysqli_result::$num_rows — Obtém o número de linhas no resultado
  • mysqli_driver — A classe mysqli_driver
    • mysqli_driver::embedded_server_end — Para o servidor incorporado
    • mysqli_driver::embedded_server_start — Inicializa e dispara o servidor incorporado
    • mysqli_driver::$report_mode — Define o modo de relatório de erros do mysqli
  • mysqli_warning — A classe mysqli_warning
    • mysqli_warning::__construct — Construtor privado para proibir instanciação direta
    • mysqli_warning::next — Busca o próximo aviso
  • mysqli_sql_exception — A classe mysqli_sql_exception
    • mysqli_sql_exception::getSqlState — Retorna o código de erro SQLSTATE
  • Apelidos e Funções descontinuadas da Mysqli
    • mysqli_connect — Sinônimo de mysqli::__construct
    • mysqli::escape_string — Sinônimo de mysqli_real_escape_string
    • mysqli_execute — Sinônimo de mysqli_stmt_execute
    • mysqli_get_client_stats — Retorna as estatísticas do cliente por processo
    • mysqli_get_links_stats — Retorna informações sobre links abertos e em cache
    • mysqli_report — Sinônimo de mysqli_driver->report_mode
    • mysqli::set_opt — Sinônimo de mysqli_options
  • Registro de Alterações


Introdução

A extensão mysqli permite a você acessar a funcionalidade provida pelo MySQL 4.1 e posterior. Maiores informações sobre o servidor de banco de dados MySQL podem ser encontradas em » http://www.mysql.com/

Uma visão geral de software disponível para usar MySQL através do PHP pode ser encontrada em Overview

Documentação para o MySQL pode ser encontrada em » http://dev.mysql.com/doc/.

Partes desta documentação foram incluídas do manual do MySQL com a permissão de Oracle Corporation.

Os exemplos usam tanto o banco de dados » world quanto o banco de dados » sakila, que estão disponíveis livremente.


Overview

Esta seção fornece uma introdução às opções disponíveis ao desenvolver um aplicativo PHP que precisa interagir com um banco de dados MySQL.

O que é uma API?

Uma interface de programação de aplicativos, ou API, define as classes, métodos, funções e variáveis que seu aplicativo precisará chamar para executar a tarefa desejada. No caso de aplicativos PHP que precisam se comunicar com bancos de dados, as APIs necessárias geralmente são expostas por meio de extensões PHP.

As APIs podem ser processuais ou orientadas a objetos. Com uma API procedural, você chama funções para realizar tarefas, com a API orientada a objetos você instancia classes e então chama métodos nos objetos resultantes. Das duas, a última costuma ser a interface preferida, pois é mais moderna e leva a um código mais organizado.

Ao escrever aplicativos PHP que precisam se conectar ao servidor MySQL, existem várias opções de API disponíveis. Este documento discute o que está disponível e como selecionar a melhor solução para sua aplicação.

O que é um Conector?

Na documentação do MySQL, o termo conector refere-se a um software que permite que seu aplicativo se conecte ao servidor de banco de dados MySQL. MySQL fornece conectores para uma variedade de linguagens, incluindo PHP.

Se seu aplicativo PHP precisar se comunicar com um servidor de banco de dados, você precisará escrever código PHP para executar atividades como conectar-se ao servidor de banco de dados, consultar o banco de dados e outras funções relacionadas ao banco de dados. O software é necessário para fornecer a API que seu aplicativo PHP usará e também para lidar com a comunicação entre seu aplicativo e o servidor de banco de dados, possivelmente usando outras bibliotecas intermediárias quando necessário. Este software é conhecido genericamente como conector, pois permite que sua aplicação se connect a um servidor de banco de dados.

O que é um Driver?

Um driver é um software projetado para se comunicar com um tipo específico de servidor de banco de dados. O driver também pode chamar uma biblioteca, como a MySQL Client Library ou o MySQL Native Driver. Essas bibliotecas implementam o protocolo de baixo nível usado para se comunicar com o servidor de banco de dados MySQL.

A título de exemplo, a camada de abstração do banco de dados PHP Data Objects (PDO) pode usar um dos vários drivers específicos do banco de dados. Um dos drivers disponíveis é o driver PDO MYSQL, que permite a interface com o servidor MySQL.

Às vezes, as pessoas usam os termos conector e driver de forma intercambiável, o que pode ser confuso. Na documentação relacionada ao MySQL, o termo driver é reservado para software que fornece a parte específica do banco de dados de um pacote de conector.

What is an Extension?

Na documentação do PHP, você encontrará outro termo - extension. O código PHP consiste em um núcleo, com extensões opcionais para a funcionalidade principal. As extensões relacionadas ao MySQL do PHP, como a extensão mysqli e a extensão do driver PDO MySQL, são implementadas usando a estrutura de extensão do PHP.

Uma extensão normalmente expõe uma API ao programador PHP, para permitir que suas facilidades sejam usadas programaticamente. No entanto, algumas extensões que usam a estrutura de extensão PHP não expõem uma API ao programador PHP.

A extensão do driver PDO MySQL, por exemplo, não expõe uma API ao programador PHP, mas fornece uma interface para a camada PDO acima dela.

Os termos API e extensão não devem significar a mesma coisa, pois uma extensão pode não necessariamente expor uma API ao programador.

Quais são as principais ofertas de API do PHP para usar o MySQL?

Existem duas opções principais de API ao considerar a conexão com um servidor de banco de dados MySQL:

  • Extensão mysqli do PHP

  • Objetos de Dados PHP (PDO)

Cada um tem suas próprias vantagens e desvantagens. A discussão a seguir visa fornecer uma breve introdução aos principais aspectos de cada API.

O que é a extensão mysqli do PHP?

A extensão mysqli, ou como às vezes é conhecida, a extensão improved do MySQL, foi desenvolvida para aproveitar os novos recursos encontrados nos sistemas MySQL versões 4.1.3 e mais recentes. A extensão mysqli está incluída nas versões 5 e posteriores do PHP.

A extensão mysqli tem vários benefícios, sendo os principais aprimoramentos sobre a extensão mysql:

  • Interface orientada a objetos

  • Suporte para Declarações Preparadas

  • Suporte para várias declarações

  • Suporte para transações

  • Recursos de depuração aprimorados

Assim como a interface orientada a objetos, a extensão também fornece uma interface processual.

A extensão mysqli é construída usando a e strutura de extensão PHP, seu código fonte está localizado no diretório ext/mysqli.

Para obter mais informações sobre a extensão mysqli, consulte MySQLi.

O que é PDO?

PHP Data Objects, ou PDO, é uma camada de abstração de banco de dados especificamente para aplicativos PHP. O PDO fornece uma API consistente para seu aplicativo PHP, independentemente do tipo de servidor de banco de dados ao qual seu aplicativo se conectará. Em teoria, se você estiver usando a API PDO, você pode mudar o servidor de banco de dados que você usou, digamos Firebird para MySQL, e só precisa fazer pequenas alterações em seu código PHP.

Outros exemplos de camadas de abstração de banco de dados incluem JDBC para aplicativos Java e DBI para Perl.

Embora o PDO tenha suas vantagens, como uma API limpa, simples e portátil, sua principal desvantagem é que ele não permite que você use todos os recursos avançados disponíveis nas versões mais recentes do servidor MySQL. Por exemplo, PDO não permite que você use o suporte do MySQL para Multiple Statements.

PDO é implementado usando o framework de extensão PHP, seu código fonte está localizado no diretório ext/pdo.

Para mais informações sobre PDO, consulte o PDO.

O que é o driver PDO MYSQL?

O driver PDO MYSQL não é uma API como tal, pelo menos da perspectiva do programador PHP. Na verdade, o driver PDO MYSQL fica na camada abaixo do próprio PDO e fornece funcionalidade específica do MySQL. O programador ainda chama a API PDO, mas o PDO usa o driver PDO MYSQL para realizar a comunicação com o servidor MySQL.

O driver PDO MYSQL é um dos vários drivers PDO disponíveis. Outros drivers PDO disponíveis incluem aqueles para os servidores de banco de dados Firebird e PostgreSQL.

O driver PDO MYSQL é implementado usando a estrutura de extensão PHP. Seu código-fonte está localizado no diretório ext/pdo_mysql. Ele não expõe uma API ao programador PHP.

Para obter mais informações sobre o driver PDO MYSQL, consulte MySQL (PDO).

O que é o driver nativo MySQL do PHP?

Para se comunicar com o servidor de banco de dados MySQL, mysqli e o driver PDO MYSQL usam uma biblioteca de baixo nível que implementa o protocolo necessário. No passado, a única biblioteca disponível era a MySQL Client Library, também conhecida como libmysqlclient.

No entanto, a interface apresentada pelo libmysqlclient não foi otimizada para comunicação com aplicativos PHP, pois libmysqlclient foi originalmente projetado com aplicativos C em mente. Por esta razão, o MySQL Native Driver, mysqlnd, foi desenvolvido como uma alternativa ao libmysqlclient para aplicações PHP.

Tanto a extensão mysqli quanto o driver PDO MySQL podem ser configurados individualmente para usar libmysqlclientou mysqlnd. Como o mysqlnd foi projetado especificamente para ser utilizado no sistema PHP, ele possui vários aprimoramentos de memória e velocidade em relação ao libmysqlclient. Você é fortemente encorajado a aproveitar essas melhorias.

O MySQL Native Driver é implementado usando a estrutura de extensão PHP. O código-fonte está localizado em ext/mysqlnd. Ele não expõe uma API ao programador PHP.

Comparação de recursos

A tabela a seguir compara a funcionalidade dos principais métodos de conexão ao MySQL a partir do PHP:

Comparação das opções da API do MySQL para PHP
 | Extensão mysqli do PHP | PDO (usando PDO MySQL Driver e MySQL Native Driver)
Versão do PHP introduzida | 5.0 | 5.0
Status de desenvolvimento do MySQL | Desenvolvimento ativo | Desenvolvimento ativo
API suporta conjuntos de caracteres | Sim | Sim
A API oferece suporte a instruções preparadas do lado do servidor | Sim | Sim
A API oferece suporte a declarações preparadas do lado do cliente | Não | Sim
API suporta procedimentos armazenados | Sim | Sim
A API oferece suporte a várias instruções | Sim | A maioria
Suporta todas as funcionalidades do MySQL 4.1+ | Sim | A maioria


Guia de início rápido

Índice

  • Interface dupla, procedural e orientada a objetos
  • Conexões
  • Executando instruções
  • Instruções Preparadas
  • Procedimentos Armazenados
  • Instruções Múltiplas
  • Suporte da API para transações
  • Metadados

Este guia de início rápido irá ajudar nas escolhas e no ganho de familiaridade com a API de MySQL do PHP.

Este início rápido dá uma visão geral da extensão mysqli. Exemplos de código são disponibilizados para todos os macro aspectos da API. Conceitos de banco de dados são explicados no grau necessário para apresentar os conceitos específicos do MySQL.

Requisito: Uma familiaridade com a linguagem de programação PHP, com a linguagem SQL, e conhecimento básico do servidor MySQL.


Interface dupla, procedural e orientada a objetos

A extensão mysqli possibilita uma dupla interface. Ela suporta o paradigma de programação procedural e orientada a objetos.

Usuários que estão migrando da extensão antiga mysql podem preferir a interface procedural. Esta interface é similar àquela da extensão antiga mysql. Em muitos casos, os nomes das funções diferem apenas pelo prefixo. Algumas funções mysqli levam um manipulador de conexão como seu primeiro argumento, enquanto as funções análogas na antiga interface mysql levam este manipulador como o último argumento, opcional.

Exemplo #1 Migração fácil da antiga extensão mysql

<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
$result = mysqli_query($mysqli, "SELECT 'Por favor não use a extensão mysql defasada para novos desenvolvimentos. ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($result);
echo $row['_msg'];

$mysql = mysql_connect("example.com", "user", "password");
mysql_select_db("test");
$result = mysql_query("SELECT 'Use a extensão mysqli em seu lugar.' AS _msg FROM DUAL", $mysql);
$row = mysql_fetch_assoc($result);
echo $row['_msg'];

O exemplo acima produzirá:

Por favor não use a extensão mysql defasada para novos desenvolvimentos. Use a extensão mysqli em seu lugar.

A interface orientada a objetos

Em adição à clássica interface procedural, usuários podem escolher usar a interface orientada a objetos. A documentação está organizada utilizando a interface orientada a objetos. Ela mostra funções agrupadas por propósito, tornando a iniciação mais fácil. A seção de referência dá exemplos para ambas as variantes de sintaxe.

Não há diferenças significativas de desempenho entre as duas interfaces. Usuários podem basear suas escolhas em preferências pessoais.

Exemplo #2 Interface orientada a objeto e procedural

<?php

$mysqli = mysqli_connect("example.com", "user", "password", "database");

$result = mysqli_query($mysqli, "SELECT 'Um mundo cheio de ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($result);
echo $row['_msg'];

$mysqli = new mysqli("example.com", "user", "password", "database");

$result = $mysqli->query("SELECT 'escolhas para agradar a todos.' AS _msg FROM DUAL");
$row = $result->fetch_assoc();
echo $row['_msg'];

O exemplo acima produzirá:

Um mundo cheio de escolhas para agradar a todos.

A interface orientada a objetos é usada neste guia porque a seção de referência está organizada dessa forma.

Misturando estilos

É possível trocar de estilos a qualquer momento. Misturar ambos os estilos não é recomendado por questões de clareza e estilo de código.

Exemplo #3 Estilo de código ruim

<?php

$mysqli = new mysqli("example.com", "user", "password", "database");

$result = mysqli_query($mysqli, "SELECT 'Estilo possível, porém, ruim.' AS _msg FROM DUAL");

if ($row = $result->fetch_assoc()) {
echo $row['_msg'];
}

O exemplo acima produzirá:

Estilo possível, porém, ruim.

Veja também

  • mysqli::__construct()
  • mysqli::query()
  • mysqli_result::fetch_assoc()
  • $mysqli::connect_errno
  • $mysqli::connect_error
  • $mysqli::errno
  • $mysqli::error
  • Resumo das Funções da Extensão MySQLi


Conexões

O servidor MySQL suporta o uso de diferentes camadas de transporte para conexões. Conexões usam TCP/IP, sockets de domínio Unix ou pipes nomeados do Windows.

O nome de servidor localhost tem um significado especial. Ele é vinculado ao uso de sockets de domínio Unix. Para abrir uma conexão TCP/IP ao servidor local, 127.0.0.1 deve ser usado ao invés do nome localhost.

Exemplo #1 Significado especial de localhost

<?php

$mysqli = new mysqli("localhost", "user", "password", "database");

echo $mysqli->host_info . "\n";

$mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);

echo $mysqli->host_info . "\n";

O exemplo acima produzirá:

Localhost via UNIX socket
127.0.0.1 via TCP/IP

Padrão dos parâmetros de conexão

Dependendo da função de conexão usada, alguns parâmetros podem ser omitidos. Se um parâmetro não for fornecido, a extensão tenta usar os valores padrões definidos no arquivo de configuração do PHP.

Exemplo #2 Padrões de configuração

mysqli.default_host=192.168.2.27
mysqli.default_user=root
mysqli.default_pw=""
mysqli.default_port=3306
mysqli.default_socket=/tmp/mysql.sock

Os valores dos parâmetros resultantes são então passados à biblioteca cliente que é usada pela extensão. Se a biblioteca cliente detecta parâmetros vazios ou indefinidos, ela pode usar seus próprios valores padrão internos.

Padrões de conexão internos da biblioteca

Se o valor do servidor for indefinido ou vazio, a biblioteca cliente irá considerar uma conexão socket Unix em localhost. Se o socket for indefinido ou vazio, e uma conexão socket Unix for solicitada, é feita tentativa de conexão ao socket padrão em /tmp/mysql.sock.

Em sistemas Windows, o nome de servidor '.' é interpretado pela biblioteca cliente como uma tentativa de se abrir uma conexão baseada em pipe nomeado do Windows. Neste caso, o parâmetro socket é interpretado como o nome do pipe. Se não informado ou vazio, o socket (nome do pipe) será igual ao padrão \\.\pipe\MySQL.

Se a conexão a ser estabelecida não for baseada em socket de domínio Unix nem em pipe nomeado Windows, e o parâmetro da porta estiver indefinido, a biblioteca usará o valor padrão de porta 3306.

A biblioteca mysqlnd e a Biblioteca Cliente MySQL (libmysqlclient) implementam a mesma lógica para determinar os padrões.

Opções de conexão

Opções de conexão estão disponíveis para, por exemplo, definir comando de inicialização que são executados na conexão, ou para requisitar uso de um conjunto de caracteres específico. Opções de conexão devem ser definidas antes que uma conexão seja estabelecida.

Para definir uma opção de conexão, a operação de conexão deve ser realizada em três passos: criar um manipulador de conexão com mysqli_init() ou mysqli::__construct(), definir as opções necessárias usando mysqli::options(), e estabelecer a conexão à rede com mysqli::real_connect().

Agrupamento de conexão

A extensão mysqli suporta conexões persistentes de banco de dados, que são um tipo especial de conexões agrupadas. Por padrão, cada conexão ao banco aberta por um script é explicitamente fechada pelo usuário durante a execução ou liberada automaticamente ao final do script. Com uma conexão permanente isso não acontece. Ao invés disso, ela é colocada em um grupo para reúso posterior, se uma conexão ao mesmo servidor, usando o mesmo usuário, senha, socket, porta e banco de dados padrão, for aberta. O reúso economiza tempo e reduz a sobrecarga de conexão.

Cada processo do PHP usa seu próprio agrupamento de conexões mysqli. Dependendo do modelo de implantação do servidor web, um processo PHP pode servir a uma ou múltiplas requisições. Portanto, uma conexão agrupada pode ser usada por um ou mais scripts subsequentemente.

Conexão persistente

Se uma conexão persistente sem uso para uma certa combinação de servidor, usuário, senha, socket, porta e banco padrão não puder ser encontrada no agrupamento, a extensão mysqli abre uma nova conexão. O uso de conexões persistentes pode ser habilitado e desabilitado usando a diretiva mysqli.allow_persistent do PHP. O número total de conexões abertas por um script pode ser limitado com mysqli.max_links. O número máximo de conexões persistentes por processo PHP pode ser restringido com mysqli.max_persistent. Favor observar que o servidor web pode gerar muitos processos PHP.

Uma queixa comum sobre conexões permanentes é que seus estados não são redefinidos antes do reúso. Por exemplo, transações abertas e não terminadas não são automaticamente desfeitas. Além disso, mudanças de autorização, que aconteceram no intervalo entre a inserção da conexão no agrupamento e seu reúso, não terão efeito. Isto pode ser visto como um efeito colateral indesejado. De outro modo, o nome persistente pode ser entendido como uma promessa de que o estado da conexão irá persistir..

A extensão mysqli suporta ambas as interpretações de conexão persistente: persistência do estado, e redefinição do estado, antes do reúso. O padrão é redefinição. Antes que uma conexão persistente seja reutilizada, a extensão mysqli chama mysqli::change_user() implicitamente para redefinir o estado. A conexão persistente aparece ao usuário como se tivesse acabado de ser aberta. Nenhum artefato de usos anteriores é visível.

A chamada a mysqli::change_user() é uma operação custosa. Para melhor desempenho, usuários podem querer recompilar a extensão com a opção MYSQLI_NO_CHANGE_USER_ON_PCONNECT definida.

É deixado ao usuário a escolha entre comportamento seguro e melhor desempenho. Ambos são objetivos de otimização válidos. Para facilidade de uso, o comportamento seguro foi escolhido como padrão com o prejuízo do desempenho.

Veja também

  • mysqli::__construct()
  • mysqli_init()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::change_user()
  • $mysqli::host_info
  • Opções de Configuração MySQLi
  • Conexões Persistentes de Banco de Dados


Executando instruções

Instruções podem ser executadas com
mysqli::query(), mysqli::real_query()
e mysqli::multi_query().
A função mysqli::query() é a mais
comum, e combina a instrução em execução com
uma busca em buffer de seu conjunto de resultados, se houver, em uma chamada.
Chamar mysqli::query() é idêntico a
chamar mysqli::real_query()
seguido de mysqli::store_result().

Exemplo #1 Executando consultas

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

Conjunto de resultados com buffer

Depois da execução da instrução, os resultados podem ser recebidos de uma vez ou lidos linha a linha do servidor. O buffer do conjunto de resultados do lado do cliente permite ao servidor liberar recursos associados com os resultados da instrução da forma mais antecipada possível. Em geral, clientes são consumidores lentos dos resultados. Portanto, é recomendado usar conjuntos de resultados com buffer. mysqli::query() combina buffer de execução de instrução e de conjunto de resultados.

As aplicações PHP podem navegar livremente através de resultados em buffer. A navegação é rápida porque os conjuntos de resultados são mantidos na memória do cliente. Tenha em mente que muitas vezes é mais fácil escalar por cliente do que escalar por servidor.

Exemplo #2 Navegando através de resultados em buffer

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$result = $mysqli->query("SELECT id FROM test ORDER BY id ASC");

echo "Ordem reversa...\n";
for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);
$row = $result->fetch_assoc();
echo " id = " . $row['id'] . "\n";
}

echo "Ordem do conjunto de resultados...\n";
foreach ($result as $row) {
echo " id = " . $row['id'] . "\n";
}

O exemplo acima produzirá:

Ordem reversa...
 id = 3
 id = 2
 id = 1
Ordem do conjunto de resultados...
 id = 1
 id = 2
 id = 3

Conjuntos de resultado sem buffer

Se a memória do cliente é um recurso escasso e liberar recursos do servidor tão cedo quanto possível para manter a carga baixa não seja necessário, resultados sem buffer podem ser usados. Navegar por resultados sem buffer não é possível enquanto os dados não tenham sido completamente lidos.

Exemplo #3 Navegando através de resultados sem buffer

<?php

$mysqli->real_query("SELECT id FROM test ORDER BY id ASC");
$result = $mysqli->use_result();

echo "Ordem do conjunto de resultados...\n";
foreach ($result as $row) {
echo " id = " . $row['id'] . "\n";
}

Tipos de dados dos valores do conjunto de resultados

As funções mysqli::query(), mysqli::real_query() e mysqli::multi_query() são usadas para executar instruções não preparadas. No nível do protocolo cliente-servidor do MySQL, o comando COM_QUERY e o protocolo de texto são usados para execução de instrução. Com o protocolo de texto, o servidor MySQL converte todos os dados de um resultado em strings antes do envio. Esta conversão é feita independente do tipo de dados da coluna do resultado SQL. As bibliotecas do cliente mysql recebem todos os valores de colunas como strings. Nenhuma conversão adicional do lado do cliente é feita para retornar as colunas a seus tipos nativos. Ao invés disso, todos os valores são fornecidos como strings PHP.

Exemplo #4 Protocolo de texto retorna strings por padrão

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')");

$result = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $result->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));

O exemplo acima produzirá:

id = 1 (string)
label = a (string)

É possível converter colunas de inteiros e floats de volta para números PHP configurando a opção de conexão MYSQLI_OPT_INT_AND_FLOAT_NATIVE, se a biblioteca mysqlnd estiver sendo usada. Se configurada, a biblioteca mysqlnd irá verificar os tipos de coluna nos metadados do conjunto de resultados e converter colunas SQL para números PHP, se a faixa de valores do tipo de dado PHP permitir. Desta forma, por exemplo, colunas INT do SQL são retornadas como inteiros.

Exemplo #5 Tipos de dados nativos com mysqlnd e opção de conexão

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli();
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$mysqli->real_connect("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')");

$result = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $result->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));

O exemplo acima produzirá:

id = 1 (integer)
label = a (string)

Veja também

  • mysqli::__construct()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::use_result()
  • mysqli::store_result()


Instruções Preparadas

O banco de dados MySQL suporta instruções preparadas. Uma instrução preparada ou uma instrução parametrizada é usada para executar o mesmo comando repetidamente com alta eficiência e proteger contra injeções SQL.

Fluxo básico

A execução de uma instrução preparada consiste em dois estágios: preparação e execução. No estágio de preparação um modelo de instrução é enviado ao servidor de banco de dados. O servidor realiza uma verificação de sintaxe e inicializa os recursos internos para uso posterior.

O servidor MySQL suporta o uso de reservas de espaço posicionais anônimas com ponto de interrogação (?).

A preparação é seguida pela execução. Durante a execução o cliente vincula valores aos parâmetros e envia-os ao servidor. O servidor executa a instrução com os valores vinculados usando os recursos internos criados anteriormente.

Exemplo #1 Instrução preparada

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Instrução não preparada */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");

/* Instrução preparada, estágio 1: prepara */
$stmt = $mysqli->prepare("INSERT INTO test(id, label) VALUES (?, ?)");

/* Instrução preparada, estágio 2: vincula e executa */
$id = 1;
$label = 'PHP';
$stmt->bind_param("is", $id, $label); // "is" significa que $id está vinculada como um inteiro e $label como uma string

$stmt->execute();

Execução repetida

Uma instrução preparada pode ser executada repetidas vezes. Em cada execução o valor atual da variável vinculada é avaliado e enviado ao servidor. A instrução não é analisada novamente. O modelo de instrução não é mais transferido ao servidor.

Exemplo #2 INSERT preparado uma vez, executado múltiplas vezes

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Instrução não preparada */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");

/* Instrução preparada, estágio 1: prepara */
$stmt = $mysqli->prepare("INSERT INTO test(id, label) VALUES (?, ?)");

/* Instrução preparada, estágio 2: vincula e executa */
$stmt->bind_param("is", $id, $label); // "is" significa que $id está vinculada como um inteiro e $label como uma string

$data = [
1 => 'PHP',
2 => 'Java',
3 => 'C++'
];
foreach ($data as $id => $label) {
$stmt->execute();
}

$result = $mysqli->query('SELECT id, label FROM test');
var_dump($result->fetch_all(MYSQLI_ASSOC));

O exemplo acima produzirá:

array(3) {
  [0]=>
  array(2) {
    ["id"]=>
    string(1) "1"
    ["label"]=>
    string(3) "PHP"
  }
  [1]=>
  array(2) {
    ["id"]=>
    string(1) "2"
    ["label"]=>
    string(4) "Java"
  }
  [2]=>
  array(2) {
    ["id"]=>
    string(1) "3"
    ["label"]=>
    string(3) "C++"
  }
}

Cada instrução preparada ocupa recursos do servidor. Instruções devem ser fechadas explicitamente logo após o uso. Se não for fechada explicitamente, a instrução será fechada quando o manipulador da instrução for liberado pelo PHP.

Usar uma instrução preparada não é sempre a maneira mais eficiente de executar um comando. Uma instrução preparada executada apenas uma vez causa mais idas e voltas entre cliente e servidor do que uma não preparada. Este é o motivo pelo qual o SELECT não é executado como uma instrução preparada no exemplo acima.

Além disso, considere o uso da sintaxe SQL multi-INSERT do MySQL para inserção de dados. Para o exemplo, multi-INSERT requer menos idas e voltas entre o servidor e o cliente do que a instrução preparada mostrada acima.

Exemplo #3 Menos idas e voltas usando o multi-INSERT do SQL

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

$values = [1, 2, 3, 4];

$stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?), (?), (?), (?)");
$stmt->bind_param('iiii', ...$values);
$stmt->execute();

Tipos de dados dos valores do conjunto de resultados

O Protocolo Cliente-Servidor do MySQL define um protocolo de transferência de dados diferente entre instruções preparadas e não preparadas. Instruções preparadas usam o chamado protocolo binário. O servidor MySQL envia os dados do conjunto de resultado como eles realmente são, em formato binário. Os resultados não são serializados em strings antes do envio. Bibliotecas cliente recebem os dados binários e tentam converter os valores para os tipos de dados apropriados do PHP. Por exemplo, resultados de uma coluna INT do SQL serão fornecidos como variáveis do tipo inteiro do PHP.

Exemplo #4 Tipos nativos de dados

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Instrução não preparada */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP')");

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));

O exemplo acima produzirá:

id = 1 (integer)
label = PHP (string)

Este comportamento difere das instruções não preparadas. Por padrão, instruções não preparadas retornam todos os resultados como strings. Este padrão pode ser alterado com o uso de uma opção de conexão. Se a opção de conexão for usada, não haverá diferenças.

Recebendo resultados usando variáveis vinculadas

Resultados de instruções preparadas podem ser recebidos por vinculação a variáveis de saída, ou por requisição de um objeto mysqli_result.

Variáveis de saída devem ser vinculadas depois da execução da instrução. Uma variável deve ser vinculada a cada coluna do conjunto de resultados da instrução.

Exemplo #5 Vinculação de variável de saída

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Instrução não preparada */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP')");

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();

$stmt->bind_result($out_id, $out_label);

while ($stmt->fetch()) {
printf("id = %s (%s), label = %s (%s)\n", $out_id, gettype($out_id), $out_label, gettype($out_label));
}

O exemplo acima produzirá:

id = 1 (integer), label = PHP (string)

Instruções preparadas retornam conjuntos de resultados sem buffer por padrão. Os resultados da instrução não são implicitamente recebidos e transformados do servidor para o cliente para buffer do lado do cliente. O conjunto de resultados consome recursos do servidor até que todos os resultados tenham sido recebidos pelo cliente. Por isso é recomendado consumir os resultados em tempo hábil. Se um cliente falha em receber todos os resultados, ou fecha a instrução antes de ter recebido todos os resultados, os dados têm que ser recebidos implicitamente pela mysqli.

Também é possível fazer buffer dos resultados de uma instrução preparada usando mysqli_stmt::store_result().

Recebendo resultados usando a interface mysqli_result

Ao invés de usar resultados vinculados, eles podem também ser recebidos através da interface mysqli_result. mysqli_stmt::get_result() retorna um conjunto de resultados em buffer.

Exemplo #6 Usando mysqli_result para receber resultados

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Instrução não preparada */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP')");

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();

$result = $stmt->get_result();

var_dump($result->fetch_all(MYSQLI_ASSOC));

O exemplo acima produzirá:

array(1) {
  [0]=>
  array(2) {
    ["id"]=>
    int(1)
    ["label"]=>
    string(3) "PHP"
  }
}

Usar a interface mysqli_result oferece benefícios adicionais de flexibilidade de navegação pelos resultados no lado do cliente.

Exemplo #7 Conjunto de resultados com buffer para leitura flexível

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Instrução não preparada */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP'), (2, 'Java'), (3, 'C++')");

$stmt = $mysqli->prepare("SELECT id, label FROM test");
$stmt->execute();

$result = $stmt->get_result();

for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);
var_dump($result->fetch_assoc());
}

O exemplo acima produzirá:

array(2) {
  ["id"]=>
  int(3)
  ["label"]=>
  string(3) "C++"
}
array(2) {
  ["id"]=>
  int(2)
  ["label"]=>
  string(4) "Java"
}
array(2) {
  ["id"]=>
  int(1)
  ["label"]=>
  string(3) "PHP"
}

Escape e injeção SQL

Variáveis vinculadas são enviadas ao servidor separadas da consulta e, portanto, não podem interferir nela. O servidor usa estes valores diretamente no ponto de execução, depois que o modelo de instrução é analisado. Parâmetros vinculados não precisam ser escapados já que nunca são substituídos na string da consulta diretamente. Uma dica deve ser fornecida ao servidor sobre o tipo da variável vinculada, para criar a conversão apropriada. Consulte a página da função mysqli_stmt::bind_param() para mais informações.

Tal separação algumas vezes é considerada como o único recurso de segurança para evitar injeção SQL, mas o mesmo grau de segurança pode ser conseguido com instruções não preparadas, se todos os valores forem formatados corretamente. Deve ser observado que a formatação correta não é o mesmo que escapar e envolve mais lógica que um simples escape. Sendo assim, instruções preparadas são simplesmente uma abordagem mais conveniente e com menos propensão a erros a este aspecto de segurança de banco de dados.

Emulação de instrução preparada no lado do cliente

A API não inclui emulação para instrução preparada no lado do cliente.

Veja também

  • mysqli::__construct()
  • mysqli::query()
  • mysqli::prepare()
  • mysqli_stmt::prepare()
  • mysqli_stmt::execute()
  • mysqli_stmt::bind_param()
  • mysqli_stmt::bind_result()


Procedimentos Armazenados

O banco de dados MySQL suporta procedimentos armazenados. Um procedimento armazenado é uma sub-rotina armazenada no catálogo do banco de dados. Aplicações podem chamar e executar o procedimento. A declaração CALL da linguagem SQL é usada para executar um procedimento armazenado.

Parâmetro

Procedimentos armazenados podem ter parâmetros IN, INOUT e OUT, dependendo da versão do MySQL. A interface mysqli não tem nenhuma ciência especial dos diferentes tipos de parâmetros.

Parâmetro IN

Parâmetros de entrada são providos pela declaração CALL. Certifique-se que os valores são corretamente escapados.

Exemplo #1 Chamando um procedimento armazenado

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

$mysqli->query("DROP PROCEDURE IF EXISTS p");
$mysqli->query("CREATE PROCEDURE p(IN id_val INT) BEGIN INSERT INTO test(id) VALUES(id_val); END;");

$mysqli->query("CALL p(1)");

$result = $mysqli->query("SELECT id FROM test");

var_dump($result->fetch_assoc());

O exemplo acima produzirá:

array(1) {
  ["id"]=>
  string(1) "1"
}

Parâmetros INOUT/OUT

Os valores dos parâmetros INOUT/OUT são acessados com o uso de variáveis de sessão.

Exemplo #2 Uso de variáveis de sessão

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP PROCEDURE IF EXISTS p");
$mysqli->query('CREATE PROCEDURE p(OUT msg VARCHAR(50)) BEGIN SELECT "Hi!" INTO msg; END;');

$mysqli->query("SET @msg = ''");
$mysqli->query("CALL p(@msg)");

$result = $mysqli->query("SELECT @msg as _p_out");

$row = $result->fetch_assoc();
echo $row['_p_out'];

O exemplo acima produzirá:

Hi!

Desenvolvedores de aplicações e de frameworks podem ser capazes de fornecer uma API mais conveniente que use uma mistura de variáveis de sessão e inspeção de catálogos de banco de dados. Entretanto, deve ser observado o possível impacto em desempenho de uma solução customizada baseada em inspeção de catálogo.

Lidando com conjuntos de resultados

Procedimentos armazenados podem retornar conjuntos de resultados. Resultados retornados de um procedimento armazenado não podem ser recebidos corretamente usando mysqli::query(). A função mysqli::query() combina execução de instrução e recebimento do primeiro conjunto de dados em um conjunto de resultados com buffer, se houver. Porém, haverá conjuntos adicionais de resultados que estarão ocultos para o usuário, o que fará com que mysqli::query() falhe no retorno dos dados esperados.

Conjuntos de resultados retornados de um procedimento armazenado são recebidos usando-se mysqli::real_query() ou mysqli::multi_query(). Ambas as funções permitem receber qualquer número de conjuntos retornados pela instrução, como CALL. Falha no recebimento de todos os conjuntos retornados pelo procedimento armazenado causa um erro.

Exemplo #3 Recebendo resultados de procedimentos armazenados

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$mysqli->query("DROP PROCEDURE IF EXISTS p");
$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;');

$mysqli->multi_query("CALL p()");

do {
if ($result = $mysqli->store_result()) {
printf("---\n");
var_dump($result->fetch_all());
$result->free();
}
} while ($mysqli->next_result());

O exemplo acima produzirá:

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}

Uso de procedimentos armazenados

Nenhuma manipulação especial é necessária ao usar a interface de procedimentos armazenados para receber resultados do mesmo procedimento como no exemplo acima. As interfaces para procedimentos armazenados e não armazenados são similares. Deve ser observado que pode haver versões do servidor MYSQL que não suportem preparação da instrução CALL da linguagem SQL.

Exemplo #4 Procedimentos Armazenados e Instruções Preparadas

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$mysqli->query("DROP PROCEDURE IF EXISTS p");
$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;');

$stmt = $mysqli->prepare("CALL p()");

$stmt->execute();

do {
if ($result = $stmt->get_result()) {
printf("---\n");
var_dump($result->fetch_all());
$result->free();
}
} while ($stmt->next_result());

O exemplo acima produzirá:

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(1)
  }
  [1]=>
  array(1) {
    [0]=>
    int(2)
  }
  [2]=>
  array(1) {
    [0]=>
    int(3)
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(2)
  }
  [1]=>
  array(1) {
    [0]=>
    int(3)
  }
  [2]=>
  array(1) {
    [0]=>
    int(4)
  }
}

Obviamente, o uso da API 'bind' para recebimento de dados também é suportado.

Exemplo #5 Procedimentos Armazenados e Instruções Preparadas usando a API bind

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$mysqli->query("DROP PROCEDURE IF EXISTS p");
$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;');

$stmt = $mysqli->prepare("CALL p()");

$stmt->execute();

do {
if ($stmt->store_result()) {
$stmt->bind_result($id_out);
while ($stmt->fetch()) {
echo "id = $id_out\n";
}
}
} while ($stmt->next_result());

O exemplo acima produzirá:

id = 1
id = 2
id = 3
id = 2
id = 3
id = 4

Veja também

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::next_result()
  • mysqli::more_results()


Instruções Múltiplas

O MySQL opcionalmente permite múltiplas instruções em uma só string, mas isso requer uma manipulação especial.

Instruções ou consultas múltiplas devem ser executadas com mysqli::multi_query(). As instruções individuais da string são separadas por ponto-e-vírgula. Assim, todos os conjuntos de resultados retornados pelas instruções executadas precisam ser recebidas.

O servidor MySQL permite instruções que retornam dados e instruções que não retornam, em uma só instrução múltipla.

Exemplo #1 Instruções Múltiplas

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

$sql = "SELECT COUNT(*) AS _num FROM test;
INSERT INTO test(id) VALUES (1);
SELECT COUNT(*) AS _num FROM test; ";

$mysqli->multi_query($sql);

do {
if ($result = $mysqli->store_result()) {
var_dump($result->fetch_all(MYSQLI_ASSOC));
$result->free();
}
} while ($mysqli->next_result());

O exemplo acima produzirá:

array(1) {
  [0]=>
  array(1) {
    ["_num"]=>
    string(1) "0"
  }
}
array(1) {
  [0]=>
  array(1) {
    ["_num"]=>
    string(1) "1"
  }
}

Considerações de Segurança

As funções da API mysqli::query() e mysqli::real_query() não definem uma opção de conexão necessária para ativar consultas múltiplas no servidor. Uma chamada extra da API é usada para instruções múltiplas para reduzir o estrago de ataques de injeção SQL acidentais. Um atacante pode tentar adicionar instruções como '; DROP DATABASE mysql' ou '; SELECT SLEEP(999)'. Se o atacante obtiver sucesso na adição de SQL ao string da instrução mas mysqli::multi_query() não for usada, o servidor não irá executar a instrução SQL maliciosa que foi injetada.

Exemplo #2 Injeção SQL

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 1; DROP TABLE mysql.user");
?>

O exemplo acima produzirá:

PHP Fatal error:  Uncaught mysqli_sql_exception: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to
use near 'DROP TABLE mysql.user' at line 1

Instruções preparadas

O uso de instruções múltiplas com instruções preparadas não é suportado.

Veja também

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::next_result()
  • mysqli::more_results()


Suporte da API para transações

O servidor MySQL suporta transações dependendo do tipo de motor de armazenamento usado. Desde o MySQL 5.5, InnoDB é o motor padrão de armazenamento. InnoDB tem suporte completo a transações ACID.

Transações podem ser controladas usando-se chamadas por SQL ou pela API. É recomentado usar as chamadas via API para habilitar e desabilitar o modo autocommit e para enviar ou desfazer transações.

Exemplo #1 Configurando o modo autocommit com SQL e através da API

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Recomendado: usando API para controlar configurações de transações */
$mysqli->autocommit(false);

/* Não será monitorado ou reconhecido pela replicação ou pelo plugin de balanceamento de carga */
$mysqli->query('SET AUTOCOMMIT = 0');

Pacotes de recursos opcionais, como plugins de replicação e de balanceamento de carga, podem facilmente monitorar chamadas da API. O plugin de replicação oferece balanceamento de carga com suporte a transação, se as transações forem controladas por chamadas da API. Balanceamento de carga com suporte a transação não estará disponível se instruções SQL forem usadas para configurar o modo autocommit, para enviar ou para desfazer transações.

Exemplo #2 Enviando e desfazendo transações

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");
$mysqli->autocommit(false); //desliga o modo de envio automático

$mysqli->query("INSERT INTO test(id) VALUES (1)");
$mysqli->rollback(); //desfaz a inserção acima

$mysqli->query("INSERT INTO test(id) VALUES (2)");
$mysqli->commit(); //envia (confirma) a inserção acima

Observe que o servidor MySQL não consegue desfazer qualquer instrução. Algumas instruções causam um envio implícito.

Veja também

  • mysqli::autocommit()
  • mysqli::begin_transaction()
  • mysqli::commit()
  • mysqli::rollback()


Metadados

Um conjunto de resultados MySQL contém metadados. Os metadados descrevem as colunas encontradas no resultado. Todos os metadados enviados pelo MySQL podem ser acessados através da interface mysqli. A extensão não altera, ou algumas vezes praticamente não altera, a informação que recebe. As diferenças entre as versões do servidor MySQL não estão alinhadas.

Metadados são acessados através da interface mysqli_result.

Exemplo #1 Acessando metadados do conjunto de resultados

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$result = $mysqli->query("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
var_dump($result->fetch_fields());

O exemplo acima produzirá:

array(2) {
  [0]=>
  object(stdClass)#3 (13) {
    ["name"]=>
    string(4) "_one"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(1)
    ["length"]=>
    int(1)
    ["charsetnr"]=>
    int(63)
    ["flags"]=>
    int(32897)
    ["type"]=>
    int(8)
    ["decimals"]=>
    int(0)
  }
  [1]=>
  object(stdClass)#4 (13) {
    ["name"]=>
    string(4) "_two"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(5)
    ["length"]=>
    int(5)
    ["charsetnr"]=>
    int(8)
    ["flags"]=>
    int(1)
    ["type"]=>
    int(253)
    ["decimals"]=>
    int(31)
  }
}

Instruções preparadas

Metadados de conjuntos de resultados criados por instruções preparadas são acessados da mesma forma. Um manipulador mysqli_result adequado é retornado pelo método mysqli_stmt::result_metadata().

Exemplo #2 Metadados de instruções preparadas

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$stmt = $mysqli->prepare("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
$stmt->execute();
$result = $stmt->result_metadata();
var_dump($result->fetch_fields());

Veja também

  • mysqli::query()
  • mysqli_result::fetch_fields()


Dependências

Para ter esta funções disponíveis, deve-se compilar o PHP com suporte para a extensão mysqli.

MySQL 8

Ao exeutar o PHP em versão anterior a 7.1.16, ou PHP 7.2 anterior a 7.2.4, defina o plugin padrão de senha do Servidor MySQL 8 para mysql_native_password ou surgirão erros parecidos com The server requested authentication method unknown to the client [caching_sha2_password] mesmo quando caching_sha2_password não for usado.

Isto acontece porque o padrão do MySQL 8 é caching_sha2_password, um plugin que não é reconhecido pelas versões anteriores do PHP (mysqlnd). Para resolver, altere para a configuração default_authentication_plugin=mysql_native_password no arquivo my.cnf. O plugin caching_sha2_password é totalmente suportado a partir do PHP 7.4.4. Para versões anteriores do PHP, a extensão mysql_xdevapi suporta o plugin.


Instalação

A extensão mysqli foi introduzida com o PHP versão 5.0.0. O MySQL Native Driver foi incluído no PHP na versão 5.3.0.

Instalação no Linux

As distribuições comuns do Unix incluem versões binárias do PHP que podem ser instaladas. Embora estas versões binárias sejam tipicamente construídas com suporte às extensões MySQL, as próprias bibliotecas das extensões podem precisar de pacote adicional para instalação. Verifique o gerenciador de pacote que vem com sua distribuição escolhida para disponibilidade.

Por exemplo, no Ubuntu o pacote php5-mysql instala as extensões do PHP ext/mysql, ext/mysqli e pdo_mysql. No CentOS, o pacote php-mysql também instala estas três extensões PHP.

Alternativamente, pode-se compilar esta extensão. Construir o PHP a partir do código-fonte permite que se especifique as extensões MySQL que se deseja usar, bem como pode-se escolher a biblioteca cliente para cada extensão.

O MySQL Native Driver é a opção de biblioteca cliente recomendada, pois resulta em melhor desempenho e dá acesso a recursos não disponíveis ao usar a Biblioteca Cliente MySQL. Consulte a página O que é o Driver Nativo do MySQL? para uma visão breve das vantagens do Driver Nativo MySQL.

/path/to/mysql_config representa a localização do programa mysql_config que vem com o Servidor MySQL.

Matriz de suporte ao mysqli em tempo de compilação
Versão do PHP | Padrão | Opções de Configuração: mysqlnd | Opções de Configuração: libmysqlclient | Registro de Alterações
5.4.x e acima | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | mysqlnd é o padrão
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd é suportada
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Não Disponível | --with-mysqli=/path/to/mysql_config | mysqlnd não é suportada

Observe que é possível misturar livremente extensões MySQL e bibliotecas cliente. Por exemplo, é possível habilitar a extensão MySQL para usar a biblioteca cliente MySQL (libmysqlclient), enquanto configura a extensão mysqli para usar o driver nativo MySQL. No entanto, todas as permutações de extensão e biblioteca cliente são possíveis.

Instalação em Sistemas Windows

No Windows, a DLL php_mysqli.dll deve ser habilitada no php.ini.

Como em qualquer habilitação de extensão PHP (como php_mysqli.dll), a diretiva PHP extension_dir seve ser definida para o diretório onde as extensões do PHP estão localizadas. Consulte também as Instruções de Instalação Manual no Windows. Um exemplo de valor para extension_dir é c:\php\ext.

Nota:

Se ao iniciar o servidor web um erro parecido com este ocorrer: "Unable to load dynamic library './php_mysqli.dll'", é porque php_mysqli.dll não pôde ser encontrada no sistema.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração do MySQLi
Nome | Padrão | Modificável | Registro de Alterações
mysqli.allow_local_infile | "0" | INI_SYSTEM | Antes do PHP 7.2.16 e 7.3.3 o padrão era "1".
mysqli.local_infile_directory |  | INI_SYSTEM | Disponível desde o PHP 8.1.0.
mysqli.allow_persistent | "1" | INI_SYSTEM |
mysqli.max_persistent | "-1" | INI_SYSTEM |
mysqli.max_links | "-1" | INI_SYSTEM |
mysqli.default_port | "3306" | INI_ALL |
mysqli.default_socket | NULL | INI_ALL |
mysqli.default_host | NULL | INI_ALL |
mysqli.default_user | NULL | INI_ALL |
mysqli.default_pw | NULL | INI_ALL |
mysqli.reconnect | "0" | INI_SYSTEM | Removido no PHP 8.2.0
mysqli.rollback_on_cached_plink | "0" | INI_SYSTEM |

Para maiores detalhes e definições das constantes INI_* acima, veja o capítulo sobre mudanças de configuração.

Aqui está uma breve explicação das diretivas de configuração.

mysqli.allow_local_infile int

Permite acessar, direto do PHP, arquivos locais com comandos LOAD DATA

mysqli.local_infile_directory string

Permite restringir o carregamento de LOCAL DATA para arquivos localizados neste diretório.

mysqli.allow_persistent int

Habilita a possibilidade de criar conexões persistentes usando mysqli_connect().

mysqli.max_persistent int

Número máximo de conexões simultâneas que podem ser estabelecidas. Definir como 0 para ilimitadas.

mysqli.max_links int

O número máximo de conexões MySQL por processo.

mysqli.default_port int

O número da porta TCP padrão para usar ao conectar ao servidor de banco de dados se não for especificada outra porta. Se não for especificado um padrão, então a porta será obtida da variável de ambiênte MYSQL_TCP_PORT, a entrada mysql-tcp em /etc/services ou a constante em tempo de compilação MYSQL_PORT, nesta ordem. Em Win32 será usada apenas a constante MYSQL_PORT.

mysqli.default_socket string

O nome padrão do socket para usar ao conectar com um servidor de banco de dados local, se não for especificado outro nome de socket.

mysqli.default_host string

O servidor padrão para usar ao conectar com o servidor de banco de dados se não for especificado um servidor. Não se aplica em

mysqli.default_user string

O nome de usuário padrão para usar ao conectar com o servidor de banco de dados. Não se aplica em

mysqli.default_pw string

A senha padrão para usar ao conectar ao servidor de banco de dados se não for especificado outra senha. Não se aplica em

mysqli.reconnect int

Reconectar automaticamente ao perder a conexão.

Nota: Esta configuração do php.ini é ignorada pelo driver mysqlnd, e foi removida no PHP 8.2.0.

mysqli.rollback_on_cached_plink bool

Se essa opção for ativada, o fechamento de uma conexão persistente fará o rollback de todas as transações pendentes dessa conexão antes que ela seja colocada de volta no pool de conexão persistente. Caso contrário, as transações pendentes serão revertidas apenas quando a conexão for reutilizada ou quando for realmente fechada.

Usuários não podem modificar MYSQL_OPT_READ_TIMEOUT via chamada de API ou configuração em tempo de execução. Note que se fosse possível haveria diferenças entre como a libmysqlclient e os streams iriam interpretar o valor de MYSQL_OPT_READ_TIMEOUT.


  • « Configurações em Execução
  • A extensão mysqli e conexões persistentes »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


A extensão mysqli e conexões persistentes

A ideia por trás das conexões persistentes é que uma conexão entre um processo cliente e um banco de dados pode ser reutilizada por um processo cliente, em vez de ser criada e destruída várias vezes. Isso reduz a sobrecarga de criar novas conexões sempre que uma é necessária, pois as conexões não utilizadas são armazenadas em cache e estão prontas para serem reutilizadas.

Ao contrário da extensão mysql, mysqli não fornece uma função separada para abrir conexões persistentes. Para abrir uma conexão persistente, você deve preceder p: ao nome do host ao conectar.

O problema com conexões persistentes é que elas podem ser deixadas em estados imprevisíveis pelos clientes. Por exemplo, um bloqueio de tabela pode ser ativado antes que um cliente seja encerrado inesperadamente. Um novo processo cliente reutilizando essa conexão persistente obterá a conexão como está. Qualquer limpeza precisaria ser feita pelo novo processo cliente antes que ele pudesse fazer bom uso da conexão ] persistente, aumentando a carga do programador.

A conexão persistente da extensão mysqli, no entanto, fornece código de manipulação de limpeza integrado. A limpeza realizada pelo mysqli inclui:

  • Reverter transações ativas

  • Fechar e descartar tabelas temporárias

  • Desbloquear tabelas

  • Redefinir variáveis de sessão

  • Fechar declarações preparadas (sempre acontece com PHP)

  • Fechar manipulador

  • Liberar bloqueios adquiridos com GET_LOCK()

Isso garante que as conexões persistentes estejam em um estado limpo ao retornar do pool de conexões, antes que o processo do cliente as use.

A extensão mysqli faz essa limpeza chamando automaticamente a função C-API mysql_change_user().

O recurso de limpeza automática tem vantagens e desvantagens. A vantagem é que o programador não precisa mais se preocupar em adicionar código de limpeza, pois ele é chamado automaticamente. No entanto, a desvantagem é que o código pode ser um pouco mais lento, pois o código para executar a limpeza precisa ser executado sempre que uma conexão é retornada do pool de conexões.

É possível desligar o código de limpeza automática, compilando o PHP com MYSQLI_NO_CHANGE_USER_ON_PCONNECT definido.

Nota:

A extensão mysqli suporta conexões persistentes ao usar MySQL Native Driver ou MySQL Client Library.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

MYSQLI_READ_DEFAULT_GROUP (int)

Lê opções do grupo nomeado em my.cnf ou no arquivo especificado com MYSQLI_READ_DEFAULT_FILE

MYSQLI_READ_DEFAULT_FILE (int)

Lê opções do arquivo de opções informado ao invés de my.cnf

MYSQLI_OPT_CONNECT_TIMEOUT (int)

Limite de tempo de conexão em segundos

MYSQLI_OPT_READ_TIMEOUT (int)

Limite de tempo do resultado da execução do comando, em segundos. Disponível a partir do PHP 7.2.0.

MYSQLI_OPT_LOCAL_INFILE (int)

Habilita o comando LOAD LOCAL INFILE

MYSQLI_OPT_INT_AND_FLOAT_NATIVE (int)

Converte colunas de inteiros e floats de volta para números PHP. Válido apenas para mysqlnd.

MYSQLI_OPT_NET_CMD_BUFFER_SIZE (int)

O tamanho do buffer interno de comando/rede. Válido apenas para mysqlnd.

MYSQLI_OPT_NET_READ_BUFFER_SIZE (int)

Máximo tamanho de porção de leitura em bytes ao ler o corpo de um pacote de comando MySQL. Válido apenas para mysqlnd.

MYSQLI_OPT_SSL_VERIFY_SERVER_CERT (int)

Requer MySQL 5.1.10 ou superior

MYSQLI_INIT_COMMAND (int)

Comando a executar ao se conectar ao servidor MySQL. Será automaticamente re-executado na reconexão.

MYSQLI_CLIENT_SSL (int)

Usa SSL (protocolo criptografado). Esta opção não deve ser definida por aplicações; ela é definida internamente na biblioteca cliente MySQL

MYSQLI_CLIENT_COMPRESS (int)

Usa protocolo de compressão

MYSQLI_CLIENT_INTERACTIVE (int)

Permite interactive_timeout segundos (ao invés de wait_timeout segundos) de inatividade antes de fechar a conexão. A variável wait_timeout da sessão do cliente será definida para o valor da variável interactive_timeout da sessão.

MYSQLI_CLIENT_IGNORE_SPACE (int)

Permite espaços depois de nomes de função. Considera todos os nomes de função como palavras reservadas.

MYSQLI_CLIENT_NO_SCHEMA (int)

Não permite a sintaxe db_name.tbl_name.col_name.

MYSQLI_CLIENT_MULTI_QUERIES

Permite múltiplas consultas separadas por ponto-e-vírgula em uma única chamada a mysqli_query().

MYSQLI_STORE_RESULT (int)

Para uso em conjuntos de resultados com buffer. Tem o valor de 0.

MYSQLI_USE_RESULT (int)

Para uso em conjuntos de resultados sem buffer. Tem o valor de 1.

MYSQLI_ASSOC (int)

Colunas são retornadas no array com os nomes dos campos nas chaves.

MYSQLI_NUM (int)

Colunas são retornadas no array com índices enumerados.

MYSQLI_BOTH (int)

Colunas são retornadas no array com índice tanto numérico quanto com nomes dos campos.

MYSQLI_NOT_NULL_FLAG (int)

Indica que um campo é definido como NOT NULL

MYSQLI_PRI_KEY_FLAG (int)

O campo é parte de um índice primário.

MYSQLI_UNIQUE_KEY_FLAG (int)

O campo é parte de um índice exclusivo.

MYSQLI_MULTIPLE_KEY_FLAG (int)

O campo é parte de um índice.

MYSQLI_BLOB_FLAG (int)

O campo é definido como BLOB

MYSQLI_UNSIGNED_FLAG (int)

O campo é definido como UNSIGNED

MYSQLI_ZEROFILL_FLAG (int)

O campo é definido como ZEROFILL

MYSQLI_AUTO_INCREMENT_FLAG (int)

O campo é definido como AUTO_INCREMENT

MYSQLI_TIMESTAMP_FLAG (int)

O campo é definido como TIMESTAMP

MYSQLI_SET_FLAG (int)

O campo é definido como SET

MYSQLI_NUM_FLAG (int)

O campo é definido como NUMERIC

MYSQLI_PART_KEY_FLAG (int)

O campo é parte de um multi-índice

MYSQLI_GROUP_FLAG (int)

O campo é parte de GROUP BY

MYSQLI_TYPE_DECIMAL (int)

O campo é definido como DECIMAL

MYSQLI_TYPE_NEWDECIMAL (int)

Campo de precisão matemática DECIMAL ou NUMERIC field (MySQL 5.0.3 e acima)

MYSQLI_TYPE_BIT (int)

O campo é definido como BIT (MySQL 5.0.3 and up)

MYSQLI_TYPE_TINY (int)

O campo é definido como TINYINT

MYSQLI_TYPE_SHORT (int)

O campo é definido como SMALLINT

MYSQLI_TYPE_LONG (int)

O campo é definido como INT

MYSQLI_TYPE_FLOAT (int)

O campo é definido como FLOAT

MYSQLI_TYPE_DOUBLE (int)

O campo é definido como DOUBLE

MYSQLI_TYPE_NULL (int)

O campo é definido como DEFAULT NULL

MYSQLI_TYPE_TIMESTAMP (int)

O campo é definido como TIMESTAMP

MYSQLI_TYPE_LONGLONG (int)

O campo é definido como BIGINT

MYSQLI_TYPE_INT24 (int)

O campo é definido como MEDIUMINT

MYSQLI_TYPE_DATE (int)

O campo é definido como DATE

MYSQLI_TYPE_TIME (int)

O campo é definido como TIME

MYSQLI_TYPE_DATETIME (int)

O campo é definido como DATETIME

MYSQLI_TYPE_YEAR (int)

O campo é definido como YEAR

MYSQLI_TYPE_NEWDATE (int)

O campo é definido como DATE

MYSQLI_TYPE_INTERVAL (int)

O campo é definido como INTERVAL

MYSQLI_TYPE_ENUM (int)

O campo é definido como ENUM

MYSQLI_TYPE_SET (int)

O campo é definido como SET

MYSQLI_TYPE_TINY_BLOB (int)

O campo é definido como TINYBLOB

MYSQLI_TYPE_MEDIUM_BLOB (int)

O campo é definido como MEDIUMBLOB

MYSQLI_TYPE_LONG_BLOB (int)

O campo é definido como LONGBLOB

MYSQLI_TYPE_BLOB (int)

O campo é definido como BLOB

MYSQLI_TYPE_VAR_STRING (int)

O campo é definido como VARCHAR

MYSQLI_TYPE_STRING (int)

O campo é definido como CHAR or BINARY

MYSQLI_TYPE_CHAR (int)

O campo é definido como TINYINT. For CHAR, see MYSQLI_TYPE_STRING

MYSQLI_TYPE_GEOMETRY (int)

O campo é definido como GEOMETRY

MYSQLI_TYPE_JSON (int)

O campo é definido como JSON. Válido apenas para mysqlnd e MySQL 5.7.8 ou acima.

MYSQLI_NEED_DATA

Há mais dados disponíveis para vincular a variáveis

MYSQLI_NO_DATA (int)

Não há mais dados disponíveis para vincular a variáveis

MYSQLI_DATA_TRUNCATED (int)

Ocorreu truncamento de dados. Disponível desde o MySQL 5.0.5.

MYSQLI_ENUM_FLAG (int)

O campo é definido como ENUM.

MYSQLI_BINARY_FLAG (int)

O campo é definido como BINARY.

MYSQLI_CURSOR_TYPE_FOR_UPDATE (int)

MYSQLI_CURSOR_TYPE_NO_CURSOR (int)

MYSQLI_CURSOR_TYPE_READ_ONLY (int)

MYSQLI_CURSOR_TYPE_SCROLLABLE (int)

MYSQLI_STMT_ATTR_CURSOR_TYPE (int)

MYSQLI_STMT_ATTR_PREFETCH_ROWS (int)

MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH (int)

MYSQLI_SET_CHARSET_NAME (int)

MYSQLI_REPORT_INDEX (int)

Reporta se nenhum índice ou um índice ruim foi usado em uma consulta.

MYSQLI_REPORT_ERROR (int)

Reporta erros de chamadas a funções mysqli.

MYSQLI_REPORT_STRICT (int)

Lança uma exceção mysqli_sql_exception para erros ao invés de gerar alertas.

MYSQLI_REPORT_ALL (int)

Define todas as opções ligadas (reportar tudo).

MYSQLI_REPORT_OFF (int)

Desliga a reportagem de erros.

MYSQLI_DEBUG_TRACE_ENABLED (int)

É definido para 1 se a funcionalidade mysqli_debug() estiver habilitada.

MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED (int)

MYSQLI_SERVER_QUERY_NO_INDEX_USED (int)

MYSQLI_SERVER_PUBLIC_KEY (int)

MYSQLI_REFRESH_GRANT (int)

Atualiza a tabela de permissões.

MYSQLI_REFRESH_LOG (int)

Descarrega os registros, como na execução da declaração SQL FLUSH LOGS.

MYSQLI_REFRESH_TABLES (int)

Descarrega o cache de tabelas, como na execução da declaração SQL FLUSH TABLES.

MYSQLI_REFRESH_HOSTS (int)

Descarrega o cache de servidores, como na execução da declaração SQL FLUSH HOSTS.

MYSQLI_REFRESH_REPLICA (int)

Apelido da constante MYSQLI_REFRESH_SLAVE. Disponível a partir do PHP 8.1.0.

MYSQLI_REFRESH_STATUS (int)

Redefine as variáveis de estado, como na execução da declaração SQL FLUSH STATUS.

MYSQLI_REFRESH_THREADS (int)

Descarrega o cache de threads.

MYSQLI_REFRESH_SLAVE (int)

Em um servidor de replicação escravo: redefine a informação do servidor principal, e reinicia o escravo. É como executar a declaração SQL RESET SLAVE.

MYSQLI_REFRESH_MASTER (int)

Em um servidor de replicação principal: remove os arquivos de registro binários listados no índice de registro binário, e trunca o arquivo de índice. É como executar a declaração SQL RESET MASTER.

MYSQLI_TRANS_COR_AND_CHAIN (int)

Adiciona "AND CHAIN" a mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_COR_AND_NO_CHAIN (int)

Adiciona "AND NO CHAIN" a mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_COR_RELEASE (int)

Adiciona "RELEASE" a mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_COR_NO_RELEASE (int)

Adiciona "NO RELEASE" a mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_START_READ_ONLY (int)

Inicia a transação como em "START TRANSACTION READ ONLY" com mysqli_begin_transaction().

MYSQLI_TRANS_START_READ_WRITE (int)

Inicia a transação como em "START TRANSACTION READ WRITE" com mysqli_begin_transaction().

MYSQLI_TRANS_START_CONSISTENT_SNAPSHOT

Inicia a transação como em "START TRANSACTION WITH CONSISTENT SNAPSHOT" com mysqli_begin_transaction().

MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT (int)

Requer MySQL 5.6.5 e acima.

MYSQLI_IS_MARIADB (bool)

Informa se a extensão mysqli foi construída com uma biblioteca cliente MariaDB. Disponível a partir do PHP 8.1.2.


Notes

Algumas notas de implementação:

  1. Foi adicionado suporte para MYSQL_TYPE_GEOMETRY à extensão MySQLi no PHP 5.3.

  2. Observe que existem diferentes implementações internas em libmysqlclient e mysqlnd para lidar com colunas do tipo MYSQL_TYPE_GEOMETRY. De um modo geral, o mysqlnd irá alocar significativamente menos memória. Por exemplo, se houver uma coluna POINT em um conjunto de resultados, libmysqlclient pode pré-alocar até 4 GB de RAM, embora sejam necessários menos de 50 bytes para manter uma coluna POINT na memória. A alocação de memória é muito menor, menos de 50 bytes, se estiver usando mysqlnd.


Resumo da Função de Extensão do MySQLi

Resumo dos métodos mysqli
Classe mysqli
Interface POO | Interface Procedural | Alias (não use) | Descrição
Propriedades
$mysqli::affected_rows | mysqli_affected_rows() | N/A | Obtém o número de linhas afetadas em uma operação MySQL anterior
$mysqli::client_info | mysqli_get_client_info() | N/A | Retorna a versão do cliente MySQL como uma string
$mysqli::client_version | mysqli_get_client_version() | N/A | Retorna as informações da versão do cliente MySQL como um número inteiro
$mysqli::connect_errno | mysqli_connect_errno() | N/A | Retorna o código de erro da última chamada de conexão
$mysqli::connect_error | mysqli_connect_error() | N/A | Retorna uma descrição de string do último erro de conexão
$mysqli::errno | mysqli_errno() | N/A | Retorna o código de erro da chamada de função mais recente
$mysqli::error | mysqli_error() | N/A | Retorna uma descrição de string do último erro
$mysqli::field_count | mysqli_field_count() | N/A | Retorna o número de colunas da consulta mais recente
$mysqli::host_info | mysqli_get_host_info() | N/A | Retorna uma string representando o tipo de conexão usada
$mysqli::protocol_version | mysqli_get_proto_info() | N/A | Retorna a versão do protocolo MySQL usado
$mysqli::server_info | mysqli_get_server_info() | N/A | Retorna a versão do servidor MySQL
$mysqli::server_version | mysqli_get_server_version() | N/A | Retorna a versão do servidor MySQL como um inteiro
$mysqli::info | mysqli_info() | N/A | Recupera informações sobre a consulta executada mais recentemente
$mysqli::insert_id | mysqli_insert_id() | N/A | Retorna o id gerado automaticamente usado na última consulta
$mysqli::sqlstate | mysqli_sqlstate() | N/A | Retorna o erro SQLSTATE da operação MySQL anterior
$mysqli::warning_count | mysqli_warning_count() | N/A | Retorna o número de avisos da última consulta para o link fornecido
Métodos
mysqli::autocommit() | mysqli_autocommit() | N/A | Ativa ou desativa modificações de banco de dados de confirmação automática
mysqli::change_user() | mysqli_change_user() | N/A | Altera o usuário da conexão de banco de dados especificada
mysqli::character_set_name() | mysqli_character_set_name() | N/A | Retorna o conjunto de caracteres padrão para a conexão do banco de dados
mysqli::close() | mysqli_close() | N/A | Fecha uma conexão de banco de dados aberta anteriormente
mysqli::commit() | mysqli_commit() | N/A | Confirma a transação atual
mysqli::__construct() | mysqli_connect() | N/A | Abra uma nova conexão com o servidor MySQL [Nota: método estático (ou seja, classe)]
mysqli::debug() | mysqli_debug() | N/A | Executa operações de depuração
mysqli::dump_debug_info() | mysqli_dump_debug_info() | N/A | Despejar informações de depuração no log
mysqli::get_charset() | mysqli_get_charset() | N/A | Retorna um objeto de conjunto de caracteres
mysqli::get_connection_stats() | mysqli_get_connection_stats() | N/A | Retorna estatísticas de conexão do cliente. Disponível apenas com o mysqlnd.
mysqli::get_client_info() | mysqli_get_client_info() | N/A | Retorna a versão do cliente MySQL como uma string
N/A | mysqli_get_client_stats() | N/A | Retorna as estatísticas do cliente por processo. Disponível apenas com o mysqlnd.
mysqli::get_server_info() | mysqli_get_server_info() | N/A | Retorna uma string representando a versão do servidor MySQL ao qual a extensão MySQLi está conectada
mysqli::get_warnings() | mysqli_get_warnings() | N/A | NÃO DOCUMENTADO
mysqli::init() | mysqli_init() | N/A | Inicializa o MySQLi e retorna um objeto para uso com mysqli_real_connect.
mysqli::kill() | mysqli_kill() | N/A | Pede ao servidor para matar um encadeamento do MySQL
mysqli::more_results() | mysqli_more_results() | N/A | Verifica se há mais resultados de consulta de uma consulta múltipla
mysqli::multi_query() | mysqli_multi_query() | N/A | Executa uma consulta no banco de dados
mysqli::next_result() | mysqli_next_result() | N/A | Prepara o próximo resultado da multi_query
mysqli::options() | mysqli_options() | mysqli_set_opt() | Define opções
mysqli::ping() | mysqli_ping() | N/A | Faz ping em uma conexão de servidor ou tenta reconectar se a conexão cair
mysqli::prepare() | mysqli_prepare() | N/A | Prepara uma instrução SQL para execução
mysqli::query() | mysqli_query() | N/A | Executa uma consulta no banco de dados
mysqli::real_connect() | mysqli_real_connect() | N/A | Abre uma conexão com um servidor mysql
mysqli::real_escape_string(), mysqli::escape_string() | mysqli_real_escape_string() | mysqli_escape_string() | Escapa caracteres especiais em uma string para uso em uma instrução SQL, levando em consideração o conjunto de caracteres atual da conexão
mysqli::real_query() | mysqli_real_query() | N/A | Executa uma consulta SQL
mysqli::refresh() | mysqli_refresh() | N/A | Libera tabelas ou caches ou redefine as informações do servidor de replicação
mysqli::rollback() | mysqli_rollback() | N/A | Reverte a transação atual
mysqli::select_db() | mysqli_select_db() | N/A | Seleciona o banco de dados padrão para consultas de banco de dados
mysqli::set_charset() | mysqli_set_charset() | N/A | Define o conjunto de caracteres do cliente padrão
mysqli::ssl_set() | mysqli_ssl_set() | N/A | Usado para estabelecer conexões seguras usando SSL
mysqli::stat() | mysqli_stat() | N/A | Obtém o status atual do sistema
mysqli::stmt_init() | mysqli_stmt_init() | N/A | Inicializa uma instrução e retorna um objeto para uso com mysqli_stmt_prepare
mysqli::store_result() | mysqli_store_result() | N/A | Transfere um conjunto de resultados da última consulta
mysqli::thread_id() | mysqli_thread_id() | N/A | Retorna o ID do thread para a conexão atual
mysqli::thread_safe() | mysqli_thread_safe() | N/A | Retorna se a segurança de thread é dada ou não
mysqli::use_result() | mysqli_use_result() | N/A | Inicia uma recuperação de conjunto de resultados
Resumo dos métodos mysqli_stmt
MySQL_STMT
Interface POO | Interface Procedural | Alias (não use) | Descrição
Propriedades
$mysqli_stmt::affected_rows | mysqli_stmt_affected_rows() | N/A | Retorna o número total de linhas alteradas, excluídas ou inseridas pela última instrução executada
$mysqli_stmt::errno | mysqli_stmt_errno() | N/A | Retorna o código de erro para a chamada de instrução mais recente
$mysqli_stmt::error | mysqli_stmt_error() | N/A | Retorna uma descrição de string para o último erro de instrução
$mysqli_stmt::field_count | mysqli_stmt_field_count() | N/A | Retorna o número do campo na instrução fornecida - não documentado
$mysqli_stmt::insert_id | mysqli_stmt_insert_id() | N/A | Obtenha o ID gerado da operação INSERT anterior
$mysqli_stmt::num_rows | mysqli_stmt_num_rows() | N/A | Retorna o número de linhas no conjunto de resultados de instruções
$mysqli_stmt::param_count | mysqli_stmt_param_count() | N/A | Retorna o número do parâmetro para a instrução fornecida
$mysqli_stmt::sqlstate | mysqli_stmt_sqlstate() | N/A | Retorna o erro SQLSTATE da operação de instrução anterior
Métodos
mysqli_stmt::attr_get() | mysqli_stmt_attr_get() | N/A | Usado para obter o valor atual de um atributo de instrução
mysqli_stmt::attr_set() | mysqli_stmt_attr_set() | N/A | Usado para modificar o comportamento de uma instrução preparada
mysqli_stmt::bind_param() | mysqli_stmt_bind_param() | N/A | Vincula variáveis a uma instrução preparada como parâmetros
mysqli_stmt::bind_result() | mysqli_stmt_bind_result() | N/A | Vincula variáveis a uma instrução preparada para armazenamento de resultados
mysqli_stmt::close() | mysqli_stmt_close() | N/A | Fecha uma instrução preparada
mysqli_stmt::data_seek() | mysqli_stmt_data_seek() | N/A | Procura uma linha arbitrária no conjunto de resultados da instrução
mysqli_stmt::execute() | mysqli_stmt_execute() | mysqli_execute() | Executa uma consulta preparada
mysqli_stmt::fetch() | mysqli_stmt_fetch() | N/A | Busca resultados de uma instrução preparada nas variáveis vinculadas
mysqli_stmt::free_result() | mysqli_stmt_free_result() | N/A | Libera a memória de resultado armazenada para o identificador de instrução fornecido
mysqli_stmt::get_result() | mysqli_stmt_get_result() | N/A | Obtém um conjunto de resultados de uma instrução preparada. Disponível apenas com o mysqlnd.
mysqli_stmt::get_warnings() | mysqli_stmt_get_warnings() | N/A | NÃO DOCUMENTADO
mysqli_stmt::more_results() | mysqli_stmt_more_results() | N/A | Verifica se há mais resultados de consulta de uma consulta múltipla
mysqli_stmt::next_result() | mysqli_stmt_next_result() | N/A | Lê o próximo resultado de uma consulta múltipla
mysqli_stmt::num_rows() | mysqli_stmt_num_rows() | N/A | Veja também a propriedade $mysqli_stmt::num_rows
mysqli_stmt::prepare() | mysqli_stmt_prepare() | N/A | Prepara uma instrução SQL para execução
mysqli_stmt::reset() | mysqli_stmt_reset() | N/A | Redefine uma instrução preparada
mysqli_stmt::result_metadata() | mysqli_stmt_result_metadata() | N/A | Retorna os metadados do conjunto de resultados de uma instrução preparada
mysqli_stmt::send_long_data() | mysqli_stmt_send_long_data() | N/A | Envia dados em blocos
mysqli_stmt::store_result() | mysqli_stmt_store_result() | N/A | Transfere um conjunto de resultados de uma instrução preparada
Resumo dos métodos mysqli_result
mysqli_result
Interface POO | Interface Procedural | Alias (não use) | Descrição
Propriedades
$mysqli_result::current_field | mysqli_field_tell() | N/A | Obtém o deslocamento de campo atual de um ponteiro de resultado
$mysqli_result::field_count | mysqli_num_fields() | N/A | Obtém o número de campos em um resultado
$mysqli_result::lengths | mysqli_fetch_lengths() | N/A | Retorna os comprimentos das colunas da linha atual no conjunto de resultados
$mysqli_result::num_rows | mysqli_num_rows() | N/A | Obtém o número de linhas em um resultado
Methods
mysqli_result::data_seek() | mysqli_data_seek() | N/A | Ajusta o ponteiro de resultado para uma linha arbitrária no resultado
mysqli_result::fetch_all() | mysqli_fetch_all() | N/A | Busca todas as linhas de resultado e retorna o conjunto de resultados como uma matriz associativa, uma matriz numérica ou ambas. Disponível apenas com o mysqlnd.
mysqli_result::fetch_array() | mysqli_fetch_array() | N/A | Busca uma linha de resultado como uma associativa, uma matriz numérica ou ambas
mysqli_result::fetch_assoc() | mysqli_fetch_assoc() | N/A | Busca uma linha de resultado como uma matriz associativa
mysqli_result::fetch_column() | mysqli_fetch_column() | N/A | Busca uma única coluna da próxima linha de um conjunto de resultados
mysqli_result::fetch_field_direct() | mysqli_fetch_field_direct() | N/A | Buscar metadados para um único campo
mysqli_result::fetch_field() | mysqli_fetch_field() | N/A | Retorna o próximo campo no conjunto de resultados
mysqli_result::fetch_fields() | mysqli_fetch_fields() | N/A | Retorna uma matriz de objetos que representam os campos em um conjunto de resultados
mysqli_result::fetch_object() | mysqli_fetch_object() | N/A | Retorna a linha atual de um conjunto de resultados como um objeto
mysqli_result::fetch_row() | mysqli_fetch_row() | N/A | Obtenha uma linha de resultado como uma matriz enumerada
mysqli_result::field_seek() | mysqli_field_seek() | N/A | Definir ponteiro de resultado para um deslocamento de campo especificado
mysqli_result::free(), mysqli_result::close, mysqli_result::free_result | mysqli_free_result() | N/A | Libera a memória associada a um resultado
Resumo dos métodos mysqli_driver
MySQL_Driver
Interface POO | Interface Procedural | Alias (não use) | Descrição
Propriedades
$mysqli_driver::mysqli_report | mysqli_report() | N/A | Define o modo de relatório de erros do mysqli
Métodos
mysqli_driver::embedded_server_end() | mysqli_embedded_server_end() | N/A | NÃO DOCUMENTADO
mysqli_driver::embedded_server_start() | mysqli_embedded_server_start() | N/A | NÃO DOCUMENTADO

Nota:

As funções de alias são fornecidas apenas para fins de compatibilidade com versões anteriores. Não os use em novos projetos.


A classe mysqli

(PHP 5, PHP 7, PHP 8)

Introdução

Representa uma conexão entre o PHP e um banco de dados MySQL.

Resumo da classe

class mysqli {
/* Propriedades */
public readonly int|string $affected_rows;
public readonly string $client_info;
public readonly int $client_version;
public readonly int $connect_errno;
public readonly ?string $connect_error;
public readonly int $errno;
public readonly string $error;
public readonly array $error_list;
public readonly int $field_count;
public readonly string $host_info;
public readonly ?string $info;
public readonly int|string $insert_id;
public readonly string $server_info;
public readonly int $server_version;
public readonly string $sqlstate;
public readonly int $protocol_version;
public readonly int $thread_id;
public readonly int $warning_count;
/* Métodos */
public __construct(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
)
public autocommit(bool $enable): bool
public begin_transaction(int $flags = 0, ?string $name = null): bool
public change_user(string $username, string $password, ?string $database): bool
public character_set_name(): string
public close(): true
public commit(int $flags = 0, ?string $name = null): bool
public connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
): bool
public debug(string $options): true
public dump_debug_info(): bool
public execute_query(string $query, ?array $params = null): mysqli_result|bool
public get_charset(): ?object
public get_client_info(): string
public get_connection_stats(): array
public get_server_info(): string
public get_warnings(): mysqli_warning|false
public init(): ?bool
public kill(int $process_id): bool
public more_results(): bool
public multi_query(string $query): bool
public next_result(): bool
public options(int $option, string|int $value): bool
public ping(): bool
public static poll(
?array &$read,
?array &$error,
array &$reject,
int $seconds,
int $microseconds = 0
): int|false
public prepare(string $query): mysqli_stmt|false
public query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool
public real_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
int $flags = 0
): bool
public real_escape_string(string $string): string
public real_query(string $query): bool
public reap_async_query(): mysqli_result|bool
public refresh(int $flags): bool
public release_savepoint(string $name): bool
public rollback(int $flags = 0, ?string $name = null): bool
public savepoint(string $name): bool
public select_db(string $database): bool
public set_charset(string $charset): bool
public ssl_set(
?string $key,
?string $certificate,
?string $ca_certificate,
?string $ca_path,
?string $cipher_algos
): true
public stat(): string|false
public stmt_init(): mysqli_stmt|false
public store_result(int $mode = 0): mysqli_result|false
public thread_safe(): bool
public use_result(): mysqli_result|false
}

Índice

  • mysqli::$affected_rows — Retorna o número de linhas afetadas pela operação MySQL anterior
  • mysqli::autocommit — Ativa ou desativa a gravação automática das modificações no banco de dados
  • mysqli::begin_transaction — Inicia uma transação
  • mysqli::change_user — Modifica o usuário para a conexão com o banco de dados especificada
  • mysqli::character_set_name — Retorna o conjunto de caracteres atual da conexão com o banco de dados
  • mysqli::close — Fecha uma conexão ao banco de dados previamente aberta
  • mysqli::commit — Grava a transação atual
  • mysqli::$connect_errno — Retorna o código de erro da última chamada de conexão
  • mysqli::$connect_error — Retorna uma descrição do último erro de conexão
  • mysqli::__construct — Abre uma nova conexão com o servidor MySQL
  • mysqli::debug — Realiza operações de depuração
  • mysqli::dump_debug_info — Descarrega informação de debug no log
  • mysqli->errno — Retorna o código de erro para a chamada de função mais recente
  • mysqli::$error_list — Retorna uma lista de erros do último comando executado
  • mysqli->error — Retorna uma string descrevendo o último erro
  • mysqli::execute_query — Prepara, vincula parâmetros e executa a instrução SQL
  • mysqli::$field_count — Retorna o número de campos para a consulta mais recente
  • mysqli::get_charset — Retorna um objeto de conjunto de caracteres
  • mysqli::$client_info — Obtém informação do cliente MySQL
  • mysqli::$client_version — Retorna a versão do cliente MySQL como um inteiro
  • mysqli::get_connection_stats — Retorna estatísticas sobre a conexão do cliente
  • mysqli::$host_info — Retorna uma string representando o tipo de conexão utilizada
  • mysqli::$protocol_version — Retorna a versão do protocolo MySQL usada
  • mysqli::$server_info — Retorna a versão do servidor MySQL
  • mysqli::$server_version — Retorna a versão do servidor MySQL como um inteiro
  • mysqli::get_warnings — Obtém o resultado de SHOW WARNINGS
  • mysqli::$info — Recupera informação sobre a recente consulta executada
  • mysqli::init — Inicializa o MySQLi e retorna um objeto a ser utilizado com mysqli_real_connect()
  • mysqli::$insert_id — Retorna o valor gerado para uma coluna AUTO_INCREMENT pela última consulta
  • mysqli::kill — Solicita ao servidor o encerramento de um thread do MySQL
  • mysqli::more_results — Verifica se há mais algum resultado de uma consulta múltipla
  • mysqli::multi_query — Executa uma ou mais consultas no banco de dados
  • mysqli::next_result — Prepara o próximo resultado de multi_query
  • mysqli::options — Define opções
  • mysqli::ping — Faz ping em uma conexão de servidor ou tenta reconectar se a conexão cair
  • mysqli::poll — Sondagem de conexões
  • mysqli::prepare — Prepara uma instrução SQL para execução
  • mysqli::query — Executa uma consulta no banco de dados
  • mysqli::real_connect — Abre uma conexão com um servidor mysql
  • mysqli::real_escape_string — Escape caracteres especiais em uma string para uso em uma instrução SQL, levando em consideração o conjunto de caracteres atual da conexão
  • mysqli::real_query — Executa uma consulta SQL
  • mysqli::reap_async_query — Obtenha o resultado da consulta assíncrona
  • mysqli::refresh — Atualiza
  • mysqli::release_savepoint — Remove o ponto de salvamento nomeado do conjunto de pontos de salvamento da transação atual
  • mysqli::rollback — Reverte a transação atual
  • mysqli::savepoint — Define um ponto de salvamento de transação nomeado
  • mysqli::select_db — Seleciona o banco de dados padrão para consultas de banco de dados
  • mysqli::set_charset — Define o conjunto de caracteres do cliente
  • mysqli::$sqlstate — Retorna o erro SQLSTATE da operação MySQL anterior
  • mysqli::ssl_set — Usado para estabelecer conexões seguras usando SSL
  • mysqli::stat — Obtém o status atual do sistema
  • mysqli::stmt_init — Inicializa uma instrução e retorna um objeto para uso com mysqli_stmt_prepare
  • mysqli::store_result — Transfere um conjunto de resultados da última consulta
  • mysqli::$thread_id — Retorna o ID da thread para a conexão atual
  • mysqli::thread_safe — Retorna se a segurança de thread é dada ou não
  • mysqli::use_result — Iniciar uma recuperação de conjunto de resultados
  • mysqli::$warning_count — Retorna o número de avisos da última consulta para o link fornecido


Retorna o número de linhas afetadas pela operação MySQL anterior

  • « mysqli
  • mysqli::autocommit »
  • PHP Manual
  • mysqli
  • Retorna o número de linhas afetadas pela operação MySQL anterior

mysqli::$affected_rows

mysqli_affected_rows

(PHP 5, PHP 7, PHP 8)

mysqli::$affected_rows -- mysqli_affected_rows — Retorna o número de linhas afetadas pela operação MySQL anterior

Descrição

Estilo orientado a objetos

int|string $mysqli->affected_rows;

Estilo procedural

mysqli_affected_rows(mysqli $mysql): int|string

Retorna o número de linhas afetadas pelo último comando INSERT, UPDATE, REPLACE ou DELETE. Funciona como mysqli_num_rows() para consultas SELECT.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Um inteiro maior do que zero indica o número de linhas afetadas ou obtidas. Zero indica que nenhum registro foi atualizado por uma declaração UPDATE, nenhuma linha correspondeu à claúsula WHERE na consulta ou que nenhuma consulta foi executada ainda. -1 indica que a consulta retornou um erro ou que mysqli_affected_rows() foi chamada para uma consulta SELECT sem buffer.

Nota:

Se o número de linhas afetadas for maior do que o maior valor inteiro (PHP_INT_MAX), o número de linhas afetadas será retornado como uma string.

Exemplos

Exemplo #1 Exemplo de $mysqli->affected_rows

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Insert rows */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* update rows */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows);

/* delete rows */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);

/* select all rows */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", $mysqli->affected_rows);

/* Delete table Language */
$mysqli->query("DROP TABLE Language");

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Insert rows */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* update rows */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));

/* delete rows */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));

/* select all rows */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", mysqli_affected_rows($link));

/* Delete table Language */
mysqli_query($link, "DROP TABLE Language");

Os exemplos acima produzirão:

Affected rows (INSERT): 984
Affected rows (UPDATE): 168
Affected rows (DELETE): 815
Affected rows (SELECT): 169

Veja Também

  • mysqli_num_rows() - Obtém o número de linhas no resultado
  • mysqli_info() - Recupera informação sobre a recente consulta executada


Ativa ou desativa a gravação automática das modificações no banco de dados

  • « mysqli::$affected_rows
  • mysqli::begin_transaction »
  • PHP Manual
  • mysqli
  • Ativa ou desativa a gravação automática das modificações no banco de dados

mysqli::autocommit

mysqli_autocommit

(PHP 5, PHP 7, PHP 8)

mysqli::autocommit -- mysqli_autocommit — Ativa ou desativa a gravação automática das modificações no banco de dados

Descrição

Estilo orientado a objetos

public mysqli::autocommit(bool $enable): bool

Estilo procedural

mysqli_autocommit(mysqli $mysql, bool $enable): bool

Ativa ou desativa o modo de gravação automática nas consultas para a conexão do banco de dados.

Para determinar o estado atual da gravação automática use o comando SQL SELECT @@autocommit.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

enable

Habilitar ou não a gravação automática.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Exemplo de mysqli::autocommit()

Estilo orientado a objetos

<?php

/* Solicita ao mysqli que dispare uma exceção se um erro ocorrer */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* O motor da tabela tem que suportar transações */
$mysqli->query("CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Desliga a gravação automática */
$mysqli->autocommit(false);

$result = $mysqli->query("SELECT @@autocommit");
$row = $result->fetch_row();
printf("Gravação automática = %s\n", $row[0]);

try {
/* Prepara a declaração de inserção */
$stmt = $mysqli->prepare('INSERT INTO language(Code, Speakers) VALUES (?,?)');
$stmt->bind_param('ss', $language_code, $native_speakers);

/* Insere alguns valores */
$language_code = 'DE';
$native_speakers = 50_123_456;
$stmt->execute();
$language_code = 'FR';
$native_speakers = 40_546_321;
$stmt->execute();

/* Grava os dados no banco. Isto não liga a gravação automática */
$mysqli->commit();
print "2 linhas gravadas no banco de dados\n";

$result = $mysqli->query("SELECT @@autocommit");
$row = $result->fetch_row();
printf("Gravação automática = %s\n", $row[0]);

/* Tenta inserir mais valores */
$language_code = 'PL';
$native_speakers = 30_555_444;
$stmt->execute();
$language_code = 'DK';
$native_speakers = 5_222_444;
$stmt->execute();

/* Ligar a gravação automática irá disparar uma gravação */
$mysqli->autocommit(true);

print "2 linhas gravadas no banco de dados\n";
} catch (mysqli_sql_exception $exception) {
$mysqli->rollback();

throw $exception;
}

Estilo procedural

<?php

/* Solicita ao mysqli que dispare uma exceção se um erro ocorrer */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* O motor da tabela tem que suportar transações */
mysqli_query($mysqli, "CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Desliga a gravação automática */
mysqli_autocommit($mysqli, false);

$result = mysqli_query($mysqli, "SELECT @@autocommit");
$row = mysqli_fetch_row($result);
printf("Gravação automática = %s\n", $row[0]);

try {
/* Prepara a declaração de inserção */
$stmt = mysqli_prepare($mysqli, 'INSERT INTO language(Code, Speakers) VALUES (?,?)');
mysqli_stmt_bind_param($stmt, 'ss', $language_code, $native_speakers);

/* Insere alguns valores */
$language_code = 'DE';
$native_speakers = 50_123_456;
mysqli_stmt_execute($stmt);
$language_code = 'FR';
$native_speakers = 40_546_321;
mysqli_stmt_execute($stmt);

/* Grava os dados no banco. Isto não liga a gravação automática */
mysqli_commit($mysqli);
print "2 linhas gravadas no banco de dados\n";

$result = mysqli_query($mysqli, "SELECT @@autocommit");
$row = mysqli_fetch_row($result);
printf("Gravação automática = %s\n", $row[0]);

/* Tenta inserir mais valores */
$language_code = 'PL';
$native_speakers = 30_555_444;
mysqli_stmt_execute($stmt);
$language_code = 'DK';
$native_speakers = 5_222_444;
mysqli_stmt_execute($stmt);

/* Ligar a gravação automática irá disparar uma gravação */
mysqli_autocommit($mysqli, true);

print "2 linhas gravadas no banco de dados\n";
} catch (mysqli_sql_exception $exception) {
mysqli_rollback($mysqli);

throw $exception;
}

Os exemplos acima produzirão:

Gravação automática = 0
2 linhas gravadas no banco de dados
Gravação automática = 0
2 linhas gravadas no banco de dados
Gravação automática = 0
2 linhas gravadas no banco de dados
Gravação automática = 0
2 linhas gravadas no banco de dados

Notas

Nota:

Esta função não funciona com tipos de tabelas não transacionais (como MyISAM ou ISAM).

Veja Também

  • mysqli_begin_transaction() - Inicia uma transação
  • mysqli_commit() - Grava a transação atual
  • mysqli_rollback() - Reverte a transação atual


Inicia uma transação

  • « mysqli::autocommit
  • mysqli::change_user »
  • PHP Manual
  • mysqli
  • Inicia uma transação

mysqli::begin_transaction

mysqli_begin_transaction

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

mysqli::begin_transaction -- mysqli_begin_transaction — Inicia uma transação

Descrição

Estilo orientado a objetos

public mysqli::begin_transaction(int $flags = 0, ?string $name = null): bool

Estilo procedural:

mysqli_begin_transaction(mysqli $mysql, int $flags = 0, ?string $name = null): bool

Inicia uma transação. Requer o mecanismo InnoDB (é ativado por padrão). Para detalhes adicionais sobre como as transações do MySQL funcionam, consulte » http://dev.mysql.com/doc/mysql/en/commit.html.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

flags

As flags válidas são:

  • MYSQLI_TRANS_START_READ_ONLY: Inicia a transação como "START TRANSACTION READ ONLY". Requer MySQL 5.6 e superior.

  • MYSQLI_TRANS_START_READ_WRITE: Inicia a transação como "START TRANSACTION READ WRITE". Requer MySQL 5.6 e superior.

  • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT: Inicia a transação como "START TRANSACTION WITH CONSISTENT SNAPSHOT".

name

Nome do ponto de salvamento para a transação.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | name agora é anulável.

Exemplos

Exemplo #1 mysqli::begin_transaction() exemplo

Estilo orientado a objetos

<?php

/* Diga ao mysqli para lançar uma exceção se ocorrer um erro */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* O mecanismo de tabela deve suportar transações */
$mysqli->query("CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Inicia transação */
$mysqli->begin_transaction();

try {
/* Insira alguns valores */
$mysqli->query("INSERT INTO language(Code, Speakers) VALUES ('DE', 42000123)");

/* Tente inserir valores inválidos */
$language_code = 'FR';
$native_speakers = 'Unknown';
$stmt = $mysqli->prepare('INSERT INTO language(Code, Speakers) VALUES (?,?)');
$stmt->bind_param('ss', $language_code, $native_speakers);
$stmt->execute();

/* Se o código atingir esse ponto sem erros, confirme os dados no banco de dados */
$mysqli->commit();
} catch (mysqli_sql_exception $exception) {
$mysqli->rollback();

throw $exception;
}

Estilo procedural

<?php

/* Diga ao mysqli para lançar uma exceção se ocorrer um erro */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* O mecanismo de tabela deve suportar transações */
mysqli_query($mysqli, "CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Inicia transação */
mysqli_begin_transaction($mysqli);

try {
/* Insira alguns valores */
mysqli_query($mysqli, "INSERT INTO language(Code, Speakers) VALUES ('DE', 42000123)");

/* Tente inserir valores inválidos */
$language_code = 'FR';
$native_speakers = 'Unknown';
$stmt = mysqli_prepare($mysqli, 'INSERT INTO language(Code, Speakers) VALUES (?,?)');
mysqli_stmt_bind_param($stmt, 'ss', $language_code, $native_speakers);
mysqli_stmt_execute($stmt);

/* Se o código atingir esse ponto sem erros, confirme os dados no banco de dados */
mysqli_commit($mysqli);
} catch (mysqli_sql_exception $exception) {
mysqli_rollback($mysqli);

throw $exception;
}

Notas

Nota:

Esta função não funciona com tipos de tabelas não transacionais (como MyISAM ou ISAM).

Veja Também

  • mysqli_autocommit() - Ativa ou desativa a gravação automática das modificações no banco de dados
  • mysqli_commit() - Grava a transação atual
  • mysqli_rollback() - Reverte a transação atual


Modifica o usuário para a conexão com o banco de dados especificada

  • « mysqli::begin_transaction
  • mysqli::character_set_name »
  • PHP Manual
  • mysqli
  • Modifica o usuário para a conexão com o banco de dados especificada

mysqli::change_user

mysqli_change_user

(PHP 5, PHP 7, PHP 8)

mysqli::change_user -- mysqli_change_user — Modifica o usuário para a conexão com o banco de dados especificada

Descrição

Estilo orientado a objetos

public mysqli::change_user(string $username, string $password, ?string $database): bool

Estilo procedural

mysqli_change_user(
mysqli $mysql,
string $username,
string $password,
?string $database
): bool

Muda o usuário na conexão com o banco de dados especificado e define o banco atual.

Para conseguir mudar usuários com sucesso, os parâmetors username e password fornecidos devem ser válidos e este usuário deve ter permissões suficientes para acessar o banco de dados desejado. Se por qualquer motivo a autorização falhar, a autenticação do usuário atual irá permanecer.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

username

O nome do usuário MySQL.

password

A senha MySQL.

database

O banco de dados a ser designado.

Se desejado, o valor null pode ser passado, resultando somente em mudança de usuário e não selecionando o banco. Para selecionar o banco neste caso, utilize a função mysqli_select_db().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Exemplo de mysqli::change_user()

Estilo orientado a objetos

<?php

/* Conecta ao banco 'test' */
$mysqli = new mysqli("localhost", "meu_usuario", "minha_senha", "teste");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

/* Define uma variável 'a' */
$mysqli->query("SET @a:=1");

/* Redefine e seleciona um novo banco */
$mysqli->change_user("meu_usuario", "minha_senha", "mundo");

if ($result = $mysqli->query("SELECT DATABASE()")) {
$row = $result->fetch_row();
printf("Banco padrão: %s\n", $row[0]);
$result->close();
}

if ($result = $mysqli->query("SELECT @a")) {
$row = $result->fetch_row();
if ($row[0] === NULL) {
printf("Valor da variável 'a' é NULL\n");
}
$result->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Estilo procedural

<?php
/* Conecta ao banco 'teste' */
$link = mysqli_connect("localhost", "meu_usuario", "minha_senha", "teste");

/* verifica a conexão */
if (!$link) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

/* Define a variável 'a' */
mysqli_query($link, "SET @a:=1");

/* redefine tudo e seleciona um novo banco */
mysqli_change_user($link, "meu_usuario", "minha_senha", "mundo");

if ($result = mysqli_query($link, "SELECT DATABASE()")) {
$row = mysqli_fetch_row($result);
printf("Banco padrão: %s\n", $row[0]);
mysqli_free_result($result);
}

if ($result = mysqli_query($link, "SELECT @a")) {
$row = mysqli_fetch_row($result);
if ($row[0] === NULL) {
printf("Valor da variável 'a' é NULL\n");
}
mysqli_free_result($result);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Banco padrão: mundo
Valor da variável 'a' é NULL

Notas

Nota:

Usar este comando sempre irá fazer com que a conexão atual se comporte como se fosse uma conexão totalmente nova, não importando se a operação foi completada com sucesso. Esta reinicialização inclui realizar uma reversão de dados em quaisquer transações ativas, fechando todas as tabelas temporárias e destravando todas as tabelas travadas.

Veja Também

  • mysqli_connect() - Sinônimo de mysqli::__construct
  • mysqli_select_db() - Seleciona o banco de dados padrão para consultas de banco de dados


Retorna o conjunto de caracteres atual da conexão com o banco de dados

  • « mysqli::change_user
  • mysqli::close »
  • PHP Manual
  • mysqli
  • Retorna o conjunto de caracteres atual da conexão com o banco de dados

mysqli::character_set_name

mysqli_character_set_name

(PHP 5, PHP 7, PHP 8)

mysqli::character_set_name -- mysqli_character_set_name — Retorna o conjunto de caracteres atual da conexão com o banco de dados

Descrição

Estilo orientado a objetos

public mysqli::character_set_name(): string

Estilo procedural

mysqli_character_set_name(mysqli $mysql): string

Retorna o conjunto de caracteres atual da conexão com o banco de dados.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

O conjunto de caracteres atual da conexão

Exemplos

Exemplo #1 Exemplo de mysqli::character_set_name()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "meu_usuario", "minha_senha", "mundo");

/* Define o conjunto padrão de caracteres */
$mysqli->set_charset('utf8mb4');

/* Mostra o conjunto atual de caracteres */
$charset = $mysqli->character_set_name();
printf("Conjunto atual de caracteres é %s\n", $charset);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "meu_usuario", "minha_senha", "mundo");

/* Define o conjunto padrão de caracteres */
mysqli_set_charset($mysqli, 'utf8mb4');

/* Mostra o conjunto atual de caracteres */
$charset = mysqli_character_set_name($mysqli);
printf("Conjunto atual de caracteres é %s\n", $charset);

Os exemplos acima produzirão:

Conjunto atual de caracteres é utf8mb4

Veja Também

  • mysqli_set_charset() - Define o conjunto de caracteres do cliente
  • mysqli_real_escape_string() - Escape caracteres especiais em uma string para uso em uma instrução SQL, levando em consideração o conjunto de caracteres atual da conexão


Fecha uma conexão ao banco de dados previamente aberta

  • « mysqli::character_set_name
  • mysqli::commit »
  • PHP Manual
  • mysqli
  • Fecha uma conexão ao banco de dados previamente aberta

mysqli::close

mysqli_close

(PHP 5, PHP 7, PHP 8)

mysqli::close -- mysqli_close — Fecha uma conexão ao banco de dados previamente aberta

Descrição

Estilo orientado a objetos

public mysqli::close(): true

Estilo procedural

mysqli_close(mysqli $mysql): true

Fecha uma conexão ao banco de dados previamente aberta.

Conexões MySQL não persistentes e conjuntos de resultados são automaticamente fechados quando seus objetos são destruídos. Fechar as conexões e liberar os conjuntos de resultados explicitamente é opcional. Entretanto, é uma boa prática fechar a conexão assim que o script termina de executar todas as suas operações de banco de dados, se ele ainda tiver muito processamento a realizar depois de obter os resultados.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função sempre retorna true. Anteriormente retornava false em caso de falha.

Exemplos

Exemplo #1 Exemplo de mysqli::close()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "meu_usuario", "minha_senha", "mundo");

$result = $mysqli->query("SELECT Nome, CodigoPais FROM Cidade ORDER BY ID LIMIT 3");

/* Fecha a conexão assim que não for mais necessária */
$mysqli->close();

foreach ($result as $row) {
/* Processando os dados obtidos do banco */
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "meu_usuario", "minha_senha", "mundo");

$result = mysqli_query($mysqli, "SELECT Nome, CodigoPais FROM Cidade ORDER BY ID LIMIT 3");

/* Fecha a conexão assim que não for mais necessária */
mysqli_close($mysqli);

foreach ($result as $row) {
/* Processando os dados obtidos do banco */
}

Notas

Nota:

mysqli_close() não fechará conexões persistentes. Para detalhes adicionais, consulte a página do manual sobre conexões persistentes.

Veja Também

  • mysqli::__construct() - Abre uma nova conexão com o servidor MySQL
  • mysqli_init() - Inicializa o MySQLi e retorna um objeto a ser utilizado com mysqli_real_connect()
  • mysqli_real_connect() - Abre uma conexão com um servidor mysql
  • mysqli_free_result() - Libera memória associada a um resultado


Grava a transação atual

  • « mysqli::close
  • mysqli::$connect_errno »
  • PHP Manual
  • mysqli
  • Grava a transação atual

mysqli::commit

mysqli_commit

(PHP 5, PHP 7, PHP 8)

mysqli::commit -- mysqli_commit — Grava a transação atual

Descrição

Estilo orientado a objetos

public mysqli::commit(int $flags = 0, ?string $name = null): bool

Estilo procedural

mysqli_commit(mysqli $mysql, int $flags = 0, ?string $name = null): bool

Grava a transação atual para a conexão do banco de dados.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

flags

Uma máscara de bits de constantes MYSQLI_TRANS_COR_*.

name

Se fornecido, COMMIT/*name*/ é executado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Registro de Alterações

Versão | Descrição
8.0.0 | name agora pode ser nulo.

Exemplos

Consulto o exemplo de mysqli::begin_transaction().

Notas

Nota:

Esta função não funciona com tipos de tabelas não transacionais (como MyISAM ou ISAM).

Veja Também

  • mysqli_autocommit() - Ativa ou desativa a gravação automática das modificações no banco de dados
  • mysqli_begin_transaction() - Inicia uma transação
  • mysqli_rollback() - Reverte a transação atual
  • mysqli_savepoint() - Define um ponto de salvamento de transação nomeado


Retorna o código de erro da última chamada de conexão

  • « mysqli::commit
  • mysqli::$connect_error »
  • PHP Manual
  • mysqli
  • Retorna o código de erro da última chamada de conexão

mysqli::$connect_errno

mysqli_connect_errno

(PHP 5, PHP 7, PHP 8)

mysqli::$connect_errno -- mysqli_connect_errno — Retorna o código de erro da última chamada de conexão

Descrição

Estilo orientado a objetos

int $mysqli->connect_errno;

Estilo procedural

mysqli_connect_errno(): int

Retorna o código de erro da última tentativa de conexão.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um código de erro para a última tentativa de conexão, se tiver falhado. Zero significa que nenhum erro ocorreu.

Exemplos

Exemplo #1 Exemplo de $mysqli->connect_errno

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_OFF);
/* @ é usado para suprimir avisos */
$mysqli = @new mysqli('localhost', 'usuario_falso', 'senha_errada', 'nao_existe');
if ($mysqli->connect_errno) {
/* Use seu método preferido de registro de erro aqui */
error_log('Erro de conexão: ' . $mysqli->connect_errno);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_OFF);
/* @ é usado para suprimir avisos */
$link = @mysqli_connect('localhost', 'usuario_falso', 'senha_errada', 'nao_existe');
if (!$link) {
/* Use seu método preferido de registro de erro aqui */
error_log('Erro de conexão: ' . mysqli_connect_errno());
}

Veja Também

  • mysqli_connect() - Sinônimo de mysqli::__construct
  • mysqli_connect_error() - Retorna uma descrição do último erro de conexão
  • mysqli_errno() - Retorna o código de erro para a chamada de função mais recente
  • mysqli_error() - Retorna uma string descrevendo o último erro
  • mysqli_sqlstate() - Retorna o erro SQLSTATE da operação MySQL anterior


Retorna uma descrição do último erro de conexão

  • « mysqli::$connect_errno
  • mysqli::__construct »
  • PHP Manual
  • mysqli
  • Retorna uma descrição do último erro de conexão

mysqli::$connect_error

mysqli_connect_error

(PHP 5, PHP 7, PHP 8)

mysqli::$connect_error -- mysqli_connect_error — Retorna uma descrição do último erro de conexão

Descrição

Estilo orientado a objetos

?string $mysqli->connect_error;

Estilo procedural

mysqli_connect_error(): ?string

Retorna a mensagem de erro da última tentativa de conexão.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma string que descreve o erro. null é retornado se nenhum erro tiver ocorrido.

Exemplos

Exemplo #1 Exemplo de $mysqli->connect_error

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_OFF);
/* @ é usado para suprimir avisos */
$mysqli = @new mysqli('localhost', 'usuario_falso', 'senha_errada', 'nao_existe');
if ($mysqli->connect_error) {
/* Use seu método preferido de registro de erro aqui */
error_log('Erro de conexão: ' . $mysqli->connect_error);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_OFF);
/* @ é usado para suprimir avisos */
$link = @mysqli_connect('localhost', 'usuario_falso', 'senha_errada', 'nao_existe');
if (!$link) {
/* Use seu método preferido de registro de erro aqui */
error_log('Erro de conexão: ' . mysqli_connect_error());
}

Veja Também

  • mysqli_connect() - Sinônimo de mysqli::__construct
  • mysqli_connect_errno() - Retorna o código de erro da última chamada de conexão
  • mysqli_errno() - Retorna o código de erro para a chamada de função mais recente
  • mysqli_error() - Retorna uma string descrevendo o último erro
  • mysqli_sqlstate() - Retorna o erro SQLSTATE da operação MySQL anterior


Abre uma nova conexão com o servidor MySQL

  • « mysqli::$connect_error
  • mysqli::debug »
  • PHP Manual
  • mysqli
  • Abre uma nova conexão com o servidor MySQL

mysqli::__construct

mysqli::connect

mysqli_connect

(PHP 5, PHP 7, PHP 8)

mysqli::__construct -- mysqli::connect -- mysqli_connect — Abre uma nova conexão com o servidor MySQL

Descrição

Estilo orientado a objetos

public mysqli::__construct(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
)
public mysqli::connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
): bool

Estilo procedural

mysqli_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
): mysqli|false

Abre uma conexão com o servidor MySQL.

Parâmetros

hostname

Pode ser um nome de host ou um endereço IP. Ao passar null, o valor é recuperado de mysqli.default_host. Quando possível, serão usados pipes em vez do protocolo TCP/IP. O protocolo TCP/IP é usado se um nome de host e um número de porta forem fornecidos juntos, por ex. localhost:3308.

Prefixar o host com p: abre uma conexão persistente. mysqli_change_user() é chamado automaticamente em conexões abertas a partir do pool de conexões.

username

O nome de usuário do MySQL ou null para assumir o nome de usuário com base na opção ini mysqli.default_user.

password

A senha do MySQL ou null para assumir a senha com base na opção ini mysqli.default_pw.

database

O banco de dados padrão a ser utilizado ao realizar consultas ou null.

port

O número da porta para tentar conectar ao servidor MySQL ou null para assumir a porta com base na opção ini mysqli.default_port.

socket

O socket ou pipe nomeado que deve ser usado ou null para assumir o socket com base na opção ini mysqli.default_socket.

Nota:

A especificação do parâmetro socket não determinará explicitamente o tipo de conexão a ser usada ao conectar-se ao servidor MySQL. A maneira com a qual a conexão é feita com o banco de dados MySQL é determinada pelo parâmetro hostname.

Valor Retornado

mysqli_connect() retorna um objeto que representa a conexão com um servidor MySQL, ou false em caso de falha.

mysqli::connect() retorna true em caso de sucesso ou false em caso de falha. Antes do PHP 8.1.0, ele retornava null em caso de sucesso.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Registro de Alterações

Versão | Descrição
8.1.0 | Agora, o método mysqli::connect() retorna true em vez de null em caso de sucesso.
7.4.0 | Todos os parâmetros podem ser null.

Exemplos

Exemplo #1 Exemplo d emysqli::__construct()

Estilo orientado a objetos

<?php

/* Você deve ativar o relatório de erros para mysqli antes de tentar fazer uma conexão */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/* Defina o conjunto de caracteres desejado após estabelecer uma conexão */
$mysqli->set_charset('utf8mb4');

printf("Success... %s\n", $mysqli->host_info);

Estilo procedural

<?php

/* Você deve ativar o relatório de erros para mysqli antes de tentar fazer uma conexão */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

/* Defina o conjunto de caracteres desejado após estabelecer uma conexão */
mysqli_set_charset($mysqli, 'utf8mb4');

printf("Success... %s\n", mysqli_get_host_info($mysqli));

Os exemplos acima produzirão algo semelhante a:

Sucesso... localhost via TCP/IP

Exemplo #2 Estendendo a classe mysqli

<?php

class FooMysqli extends mysqli {
public function __construct($host, $user, $pass, $db, $port, $socket, $charset) {
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
parent::__construct($host, $user, $pass, $db, $port, $socket);
$this->set_charset($charset);
}
}

$db = new FooMysqli('localhost', 'my_user', 'my_password', 'my_db', 3306, null, 'utf8mb4');

Exemplo #3 Tratamento manual de erros

Se o relatório de erros estiver desabilitado, o desenvolvedor é responsável por verificar e tratar as falhas

Estilo orientado a objetos

<?php

error_reporting(0);
mysqli_report(MYSQLI_REPORT_OFF);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
if ($mysqli->connect_errno) {
throw new RuntimeException('mysqli connection error: ' . $mysqli->connect_error);
}

/* Defina o conjunto de caracteres desejado após estabelecer uma conexão */
$mysqli->set_charset('utf8mb4');
if ($mysqli->errno) {
throw new RuntimeException('mysqli error: ' . $mysqli->error);
}

Estilo procedural

<?php

error_reporting(0);
mysqli_report(MYSQLI_REPORT_OFF);
$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
if (mysqli_connect_errno()) {
throw new RuntimeException('mysqli connection error: ' . mysqli_connect_error());
}

/* Defina o conjunto de caracteres desejado após estabelecer uma conexão */
mysqli_set_charset($mysqli, 'utf8mb4');
if (mysqli_errno($mysqli)) {
throw new RuntimeException('mysqli error: ' . mysqli_error($mysqli));
}

Notas

Nota:

O MySQLnd sempre assume o conjunto de caracteres padrão do servidor. Este conjunto de caracteres é enviado durante a criação/autenticação da conexão e será usado pelo mysqlnd.

A libmysqlclient usa o conjunto de caracteres padrão definido no arquivo my.cnf ou definido por uma chamada explícita a mysqli_options() antes de chamar mysqli_real_connect(), mas depois de chamar mysqli_init().

Nota:

Estilo orientado a objetos apenas: Se a conexão falhar, um objeto ainda será retornado. Para verificar se a conexão falhou, use a função mysqli_connect_error() ou a propriedade mysqli->connect_error como nos exemplos anteriores.

Nota:

Se for necessário definir opções, como o tempo limite de conexão, mysqli_real_connect() deve ser usado.

Nota:

Chamar o construtor sem parâmetros é o mesmo que chamar mysqli_init().

Nota:

O erro "Can't create TCP/IP socket (10106)" geralmente significa que a diretiva de configuração variables_order não contém o caractere E. No Windows, se o ambiente não for copiado, a variável de ambiente SYSTEMROOT não estará disponível e o PHP terá problemas para carregar o Winsock.

Veja Também

  • mysqli_real_connect() - Abre uma conexão com um servidor mysql
  • mysqli_options() - Define opções
  • mysqli_connect_errno() - Retorna o código de erro da última chamada de conexão
  • mysqli_connect_error() - Retorna uma descrição do último erro de conexão
  • mysqli_close() - Fecha uma conexão ao banco de dados previamente aberta


Realiza operações de depuração

  • « mysqli::__construct
  • mysqli::dump_debug_info »
  • PHP Manual
  • mysqli
  • Realiza operações de depuração

mysqli::debug

mysqli_debug

(PHP 5, PHP 7, PHP 8)

mysqli::debug -- mysqli_debug — Realiza operações de depuração

Descrição

Estilo orientado a objetos

public mysqli::debug(string $options): true

Estilo procedural

mysqli_debug(string $options): true

Realiza operações de depuração usando a biblioteca Fred Fish.

Parâmetros

options

Uma string representando a operação de depuração a ser executada

A string de opções de depuração é uma sequência de campos separados por dois pontos (:) desta maneira:

<campo_1>:<campo_2>:<campo_N>
Cada campo consiste de um caractere de opção mandatório seguido por uma , opcional e uma lista de modificadores: separados por vírgula: opção[,modificador,modificador,...,modificador]

Caracteres de Opção Reconhecidos
Caractere de options | Descrição
O | MYSQLND_DEBUG_FLUSH
A/a | MYSQLND_DEBUG_APPEND
F | MYSQLND_DEBUG_DUMP_FILE
i | MYSQLND_DEBUG_DUMP_PID
L | MYSQLND_DEBUG_DUMP_LINE
m | MYSQLND_DEBUG_TRACE_MEMORY_CALLS
n | MYSQLND_DEBUG_DUMP_LEVEL
o | saída para arquivo
T | MYSQLND_DEBUG_DUMP_TIME
t | MYSQLND_DEBUG_DUMP_TRACE
x | MYSQLND_DEBUG_PROFILE_CALLS

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora sempre retorna true. Anteriormente retornava false em caso de falha.

Exemplos

Exemplo #1 Gerando um Aqruivo de Rastreamento

<?php

/* Cria um arquivo de rastreamento em '/tmp/client.trace' na máquina local (do cliente): */
mysqli_debug("d:t:o,/tmp/client.trace");

?>

Notas

Nota:

Para usar a função mysqli_debug() deve-se compilar a biblioteca do cliente MySQL com suporte a depuração.

Veja Também

  • mysqli_dump_debug_info() - Descarrega informação de debug no log
  • mysqli_report() - Sinônimo de mysqli_driver->report_mode


Descarrega informação de debug no log

  • « mysqli::debug
  • mysqli->errno »
  • PHP Manual
  • mysqli
  • Descarrega informação de debug no log

mysqli::dump_debug_info

mysqli_dump_debug_info

(PHP 5, PHP 7, PHP 8)

mysqli::dump_debug_info -- mysqli_dump_debug_info — Descarrega informação de debug no log

Descrição

Estilo orientado a objetos

public mysqli::dump_debug_info(): bool

Estilo procedural

mysqli_dump_debug_info(mysqli $mysql): bool

Esta função é projetada para ser executada por um usuário com privilégio SUPER e é usada para descarregar informações de depuração no log, para o servidor MySQL, relacionadas à conexão.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • mysqli_debug() - Realiza operações de depuração


Retorna o código de erro para a chamada de função mais recente

  • « mysqli::dump_debug_info
  • mysqli::$error_list »
  • PHP Manual
  • mysqli
  • Retorna o código de erro para a chamada de função mais recente

mysqli->errno

mysqli_errno

(PHP 5, PHP 7, PHP 8)

mysqli->errno -- mysqli_errno — Retorna o código de erro para a chamada de função mais recente

Descrição

Estilo orientado a objetos

int $mysqli->errno;

Estilo procedural

mysqli_errno(mysqli $mysql): int

Retorna o último código de erro para a chamada de função MySQLi mais recente que pode ter sucesso ou falhar.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Um valor de código de erro para a última chamada, se ela falhou. Zero significa que nenhum erro ocorreu.

Exemplos

Exemplo #1 Exemplo de $mysqli->errno

Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}

if (!$mysqli->query("SET a=1")) {
printf("Errorcode: %d\n", $mysqli->errno);
}

/* close connection */
$mysqli->close();
?>

Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

if (!mysqli_query($link, "SET a=1")) {
printf("Errorcode: %d\n", mysqli_errno($link));
}

/* close connection */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Errorcode: 1193

Veja Também

  • mysqli_connect_errno() - Retorna o código de erro da última chamada de conexão
  • mysqli_connect_error() - Retorna uma descrição do último erro de conexão
  • mysqli_error() - Retorna uma string descrevendo o último erro
  • mysqli_sqlstate() - Retorna o erro SQLSTATE da operação MySQL anterior


Retorna uma lista de erros do último comando executado

  • « mysqli->errno
  • mysqli->error »
  • PHP Manual
  • mysqli
  • Retorna uma lista de erros do último comando executado

mysqli::$error_list

mysqli_error_list

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

mysqli::$error_list -- mysqli_error_list — Retorna uma lista de erros do último comando executado

Descrição

Estilo orientado a objetos

array $mysqli->error_list;

Estilo procedural

mysqli_error_list(mysqli $mysql): array

Retorna uma matriz de erros para a chamada de função MySQLi mais recente que pode ser bem-sucedida ou falhar.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Uma lista de erros, cada um como um array associativo contendo errno, error e sqlstate.

Exemplos

Exemplo #1 $mysqli->error_list exemplo

Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "nobody", "");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

if (!$mysqli->query("SET a=1")) {
print_r($mysqli->error_list);
}

/* fecha a conexão */
$mysqli->close();
?>

Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

if (!mysqli_query($link, "SET a=1")) {
print_r(mysqli_error_list($link));
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Array
(
    [0] => Array
        (
            [errno] => 1193
            [sqlstate] => HY000
            [error] => Unknown system variable 'a'
        )

)

Veja Também

  • mysqli_connect_errno() - Retorna o código de erro da última chamada de conexão
  • mysqli_connect_error() - Retorna uma descrição do último erro de conexão
  • mysqli_error() - Retorna uma string descrevendo o último erro
  • mysqli_sqlstate() - Retorna o erro SQLSTATE da operação MySQL anterior


Retorna uma string descrevendo o último erro

  • « mysqli::$error_list
  • mysqli::execute_query »
  • PHP Manual
  • mysqli
  • Retorna uma string descrevendo o último erro

mysqli->error

mysqli_error

(PHP 5, PHP 7, PHP 8)

mysqli->error -- mysqli_error — Retorna uma string descrevendo o último erro

Descrição

Estilo orientado a objetos

string $mysqli->error;

Estilo procedural

mysqli_error(mysqli $mysql): string

Retorna a última mensagem de erro da chamada de função MySQLi mais recente que possa ter sucesso ou falhar.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Uma string que descreve o erro. Uma string vazia se não houve erro.

Exemplos

Exemplo #1 Exemplo de $mysqli->error

Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}

if (!$mysqli->query("SET a=1")) {
printf("Error message: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

if (!mysqli_query($link, "SET a=1")) {
printf("Error message: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Error message: Unknown system variable 'a'

Veja Também

  • mysqli_connect_errno() - Retorna o código de erro da última chamada de conexão
  • mysqli_connect_error() - Retorna uma descrição do último erro de conexão
  • mysqli_errno() - Retorna o código de erro para a chamada de função mais recente
  • mysqli_sqlstate() - Retorna o erro SQLSTATE da operação MySQL anterior


Prepara, vincula parâmetros e executa a instrução SQL

  • « mysqli->error
  • mysqli::$field_count »
  • PHP Manual
  • mysqli
  • Prepara, vincula parâmetros e executa a instrução SQL

mysqli::execute_query

mysqli_execute_query

(PHP 8 >= 8.2.0)

mysqli::execute_query -- mysqli_execute_query — Prepara, vincula parâmetros e executa a instrução SQL

Descrição

Estilo orientado a objetos

public mysqli::execute_query(string $query, ?array $params = null): mysqli_result|bool

Estilo procedural

mysqli_execute_query(mysqli $mysql, string $query, ?array $params = null): mysqli_result|bool

Prepara a consulta SQL, associa parâmetros e a executa.
O método mysqli::execute_query() é um atalho para
mysqli::prepare(),
mysqli_stmt::bind_param(),
mysqli_stmt::execute()
e mysqli_stmt::get_result().

O modelo de instrução pode conter zero ou mais marcadores de parâmetro de ponto de interrogação (?) também chamados de espaços reservados. Os valores dos parâmetros devem ser fornecidos como um array usando o parâmetro params.

Uma instrução preparada é criada, mas nunca é exposta fora da função. É impossível acessar as propriedades da instrução como faria com o objeto mysqli_stmt. Devido a essa limitação, as informações de status são copiadas para o objeto mysqli e estão disponíveis usando seus métodos, por exemplo mysqli_affected_rows() ou mysqli_error().

Nota:

No caso em que uma instrução é passada para mysqli_execute_query() que é maior que max_allowed_packet do servidor, os códigos de erro retornados são diferentes dependendo do sistema operacional. O comportamento é o seguinte:

  • No Linux retorna um código de erro de 1153. A mensagem de erro significa que o pacote é maior que max_allowed_packet bytes.

  • No Windows retorna um código de erro 2006. Essa mensagem de erro significa que o servidor foi desativado.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

query

A consulta, como uma string. Deve consistir em uma única instrução SQL.

A instrução SQL pode conter zero ou mais marcadores de parâmetro representados por caracteres de ponto de interrogação (?) nas posições apropriadas.

Nota:

Os marcadores são válidos apenas em determinados locais nas instruções SQL. Por exemplo, eles são permitidos na lista VALUES() de uma instrução INSERT (para especificar valores de coluna para uma linha) ou em uma comparação com uma coluna em uma cláusula WHERE para especificar um valor de comparação. No entanto, eles não são permitidos para identificadores (como nomes de tabelas ou colunas).

params

Um array opcional com tantos elementos quantos forem os parâmetros vinculados na instrução SQL que está sendo executada. Cada valor é tratado como uma string.

Valor Retornado

Retorna false em caso de falha. Para consultas bem-sucedidas que produzem um conjunto de resultados, como SELECT, SHOW, DESCRIBE ou EXPLAIN, retorna um objeto mysqli_result. Para outras consultas bem-sucedidas, retorna true.

Exemplos

Exemplo #1 mysqli::execute_query() exemplo

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$query = 'SELECT Name, District FROM City WHERE CountryCode=? ORDER BY Name LIMIT 5';
$result = $mysqli->execute_query($query, ['DEU']);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["District"]);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = 'SELECT Name, District FROM City WHERE CountryCode=? ORDER BY Name LIMIT 5';
$result = mysqli_execute_query($link, $query, ['DEU']);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["District"]);
}

Os exemplos acima produzirão algo semelhante a:

Aachen (Nordrhein-Westfalen)
Augsburg (Baijeri)
Bergisch Gladbach (Nordrhein-Westfalen)
Berlin (Berliini)
Bielefeld (Nordrhein-Westfalen)

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_stmt_execute() - Executa uma instrução preparada
  • mysqli_stmt_bind_param() - Liga variáveis a uma declaração preparada como parâmetros
  • mysqli_stmt_get_result() - Obtém um resultado de uma instrução preparada como um objeto mysqli_result


Retorna o número de campos para a consulta mais recente

  • « mysqli::execute_query
  • mysqli::get_charset »
  • PHP Manual
  • mysqli
  • Retorna o número de campos para a consulta mais recente

mysqli::$field_count

mysqli_field_count

(PHP 5, PHP 7, PHP 8)

mysqli::$field_count -- mysqli_field_count — Retorna o número de campos para a consulta mais recente

Descrição

Estilo orientado a objetos

int $mysqli->field_count;

Estilo procedural

mysqli_field_count(mysqli $mysql): int

Retorna o número de campos para a consulta mais recente na conexão representada pelo parâmetro mysql. Esta função pode ser útil quando a função mysqli_store_result() é usada para determinar se a consulta deveria ou não ter produzido um conjunto não vazio de resultados sem conhecer a natureza da consulta.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Um inteiro representando o número de campos em um conjunto de resultados.

Exemplos

Exemplo #1 Exemplo de $mysqli->field_count

Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "meu_usuario", "minha_senha", "teste");

$mysqli->query( "DROP TABLE IF EXISTS amigos");
$mysqli->query( "CREATE TABLE amigos (id int, nome varchar(20))");

$mysqli->query( "INSERT INTO amigos VALUES (1,'Luiz'), (2, 'Ricardo')");

$mysqli->real_query("SELECT * FROM amigos");

if ($mysqli->field_count) {
/* esta foi uma consulta de select/show ou describe */
$result = $mysqli->store_result();

/* processa o conjunto de resultados */
$row = $result->fetch_row();

/* libera o conjunto de resultados */
$result->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Estilo procedural

<?php
$link = mysqli_connect("localhost", "meu_usuario", "minha_senha", "teste");

mysqli_query($link, "DROP TABLE IF EXISTS amigos");
mysqli_query($link, "CREATE TABLE amigos (id int, nome varchar(20))");

mysqli_query($link, "INSERT INTO amigos VALUES (1,'Luiz'), (2, 'Ricardo')");

mysqli_real_query($link, "SELECT * FROM amigos");

if (mysqli_field_count($link)) {
/* esta foi uma consulta de select/show ou describe */
$result = mysqli_store_result($link);

/* processa o conjunto de resultados */
$row = mysqli_fetch_row($result);

/* libera o conjunto de resultados */
mysqli_free_result($result);
}

/* fecha a conexão */
mysqli_close($link);
?>


Retorna um objeto de conjunto de caracteres

  • « mysqli::$field_count
  • mysqli::$client_info »
  • PHP Manual
  • mysqli
  • Retorna um objeto de conjunto de caracteres

mysqli::get_charset

mysqli_get_charset

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

mysqli::get_charset -- mysqli_get_charset — Retorna um objeto de conjunto de caracteres

Descrição

Estilo orientado a objetos

public mysqli::get_charset(): ?object

Estilo procedural

mysqli_get_charset(mysqli $mysql): ?object

Retorna um objeto de conjunto de caracteres fornecendo várias propriedades do conjunto de caracteres ativo atual.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

A função retorna um objeto de conjunto de caracteres com as seguintes propriedades:

charset

Nome do conjunto de caracteres

collation

Nome do agrupamento

dir

Diretório do qual a descrição do conjunto de caracteres foi obtida (?) ou "" para conjuntos de caracteres integrados

min_length

Comprimento mínimo de caracteres em bytes

max_length

Comprimento máximo de caracteres em bytes

number

Número interno do conjunto de caracteres

state

Status do conjunto de caracteres (?)

Exemplos

Exemplo #1 mysqli::get_charset() exemplo

Estilo orientado a objetos

<?php
$db = mysqli_init();
$db->real_connect("localhost","root","","test");
var_dump($db->get_charset());
?>

Estilo procedural

<?php
$db = mysqli_init();
mysqli_real_connect($db, "localhost","root","","test");
var_dump(mysqli_get_charset($db));
?>

Os exemplos acima produzirão:

object(stdClass)#2 (7) {
  ["charset"]=>
  string(6) "latin1"
  ["collation"]=>
  string(17) "latin1_swedish_ci"
  ["dir"]=>
  string(0) ""
  ["min_length"]=>
  int(1)
  ["max_length"]=>
  int(1)
  ["number"]=>
  int(8)
  ["state"]=>
  int(801)
}

Veja Também

  • mysqli_character_set_name() - Retorna o conjunto de caracteres atual da conexão com o banco de dados
  • mysqli_set_charset() - Define o conjunto de caracteres do cliente


Obtém informação do cliente MySQL

  • « mysqli::get_charset
  • mysqli::$client_version »
  • PHP Manual
  • mysqli
  • Obtém informação do cliente MySQL

mysqli::$client_info

mysqli::get_client_info

mysqli_get_client_info

(PHP 5, PHP 7, PHP 8)

mysqli::$client_info -- mysqli::get_client_info -- mysqli_get_client_info — Obtém informação do cliente MySQL

Descrição

Estilo orientado a objetos

string $mysqli->client_info;
public mysqli::get_client_info(): string

Estilo procedural

mysqli_get_client_info(?mysqli $mysql = null): string

Retorna uma string que representa a versão de biblioteca do cliente MySQL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma string que representa a versão da biblioteca do cliente MySQL.

Registro de Alterações

Versão | Descrição
8.1.0 | Chamar mysqli_get_client_info() com o argumento mysql está defasado. Esta função nunca requereu um parâmetro, mas incorretamente permitia este parâmetro opcional.
8.1.0 | O método orientado a objeto mysqli::get_client_info() está defasado.

Exemplos

Exemplo #1 mysqli_get_client_info

<?php

/* Não é necessária uma conexão para determinar
a versão da biblioteca do cliente mysql */

printf("Client library version: %s\n", mysqli_get_client_info());
?>

Veja Também

  • mysqli_get_client_version() - Retorna a versão do cliente MySQL como um inteiro
  • mysqli_get_server_info() - Retorna a versão do servidor MySQL
  • mysqli_get_server_version() - Retorna a versão do servidor MySQL como um inteiro


Retorna a versão do cliente MySQL como um inteiro

  • « mysqli::$client_info
  • mysqli::get_connection_stats »
  • PHP Manual
  • mysqli
  • Retorna a versão do cliente MySQL como um inteiro

mysqli::$client_version

mysqli_get_client_version

(PHP 5, PHP 7, PHP 8)

mysqli::$client_version -- mysqli_get_client_version — Retorna a versão do cliente MySQL como um inteiro

Descrição

Estilo orientado a objetos

int $mysqli->client_version;

Estilo procedural

mysqli_get_client_version(): int

Retorna a versão do cliente como um inteiro.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um número que representa a versão da biblioteca de cliente MySQL no formato: versão_principal*10000 + versão_menor *100 + sub_versão. Por exemplo, 4.1.0 é retornado como 40100.

Isto é útil para determinar rapidamente a versão da biblioteca de cliente para saber se alguma funcionalidade existe.

Exemplos

Exemplo #1 mysqli_get_client_version

<?php

/* Não é necessária uma conexão para determinar
a versão da biblioteca do cliente mysql */

printf("Client library version: %d\n", mysqli_get_client_version());
?>

Veja Também

  • mysqli_get_client_info() - Obtém informação do cliente MySQL
  • mysqli_get_server_info() - Retorna a versão do servidor MySQL
  • mysqli_get_server_version() - Retorna a versão do servidor MySQL como um inteiro


Retorna estatísticas sobre a conexão do cliente

  • « mysqli::$client_version
  • mysqli::$host_info »
  • PHP Manual
  • mysqli
  • Retorna estatísticas sobre a conexão do cliente

mysqli::get_connection_stats

mysqli_get_connection_stats

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli::get_connection_stats -- mysqli_get_connection_stats — Retorna estatísticas sobre a conexão do cliente

Descrição

Estilo orientado a objetos

public mysqli::get_connection_stats(): array

Estilo procedural

mysqli_get_connection_stats(mysqli $mysql): array

Retorna estatísticas sobre a conexão do cliente.

Nota:

Disponível apenas com o mysqlnd.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna uma matriz com estatísticas de conexão.

Exemplos

Exemplo #1 mysqli_get_connection_stats() exemplo

<?php
$link = mysqli_connect();
print_r(mysqli_get_connection_stats($link));
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Veja Também

  • Stats description


Retorna uma string representando o tipo de conexão utilizada

  • « mysqli::get_connection_stats
  • mysqli::$protocol_version »
  • PHP Manual
  • mysqli
  • Retorna uma string representando o tipo de conexão utilizada

mysqli::$host_info

mysqli_get_host_info

(PHP 5, PHP 7, PHP 8)

mysqli::$host_info -- mysqli_get_host_info — Retorna uma string representando o tipo de conexão utilizada

Descrição

Estilo orientado a objetos

string $mysqli->host_info;

Estilo procedural

mysqli_get_host_info(mysqli $mysql): string

Retorna uma string descrevendo a conexão representada pelo parâmetro mysql (incluindo o nome de host servidor).

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Uma string de caracteres representando o nome de host do servidor e o tipo de conexão.

Exemplos

Exemplo #1 Exemplo de $mysqli->host_info

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* mostra informação do host */
printf("Host info: %s\n", $mysqli->host_info);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* mostra informação do host */
printf("Host info: %s\n", mysqli_get_host_info($link));

Os exemplos acima produzirão:

Host info: Localhost via UNIX socket

Veja Também

  • mysqli_get_proto_info() - Retorna a versão do protocolo MySQL usada


Retorna a versão do protocolo MySQL usada

  • « mysqli::$host_info
  • mysqli::$server_info »
  • PHP Manual
  • mysqli
  • Retorna a versão do protocolo MySQL usada

mysqli::$protocol_version

mysqli_get_proto_info

(PHP 5, PHP 7, PHP 8)

mysqli::$protocol_version -- mysqli_get_proto_info — Retorna a versão do protocolo MySQL usada

Descrição

Estilo orientado a objetos

int $mysqli->protocol_version;

Estilo procedural

mysqli_get_proto_info(mysqli $mysql): int

Retorna um inteiro representando a versão do protocolo MySQL usada pela conexão representada pelo parâmetro mysql.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna um inteiro representando a versão do protocolo.

Exemplos

Exemplo #1 Exemplo de $mysqli->protocol_version

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* mostra a versão do protocolo */
printf("Versão do protocolo: %d\n", $mysqli->protocol_version);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password");

/* mostra a versão do protocolo */
printf("Versão do protocolo: %d\n", mysqli_get_proto_info($link));

Os exemplos acima produzirão:

Versão do protocolo: 10

Veja Também

  • mysqli_get_host_info() - Retorna uma string representando o tipo de conexão utilizada


Retorna a versão do servidor MySQL

  • « mysqli::$protocol_version
  • mysqli::$server_version »
  • PHP Manual
  • mysqli
  • Retorna a versão do servidor MySQL

mysqli::$server_info

mysqli::get_server_info

mysqli_get_server_info

(PHP 5, PHP 7, PHP 8)

mysqli::$server_info -- mysqli::get_server_info -- mysqli_get_server_info — Retorna a versão do servidor MySQL

Descrição

Estilo orientado a objetos

string $mysqli->server_info;
public mysqli::get_server_info(): string

Estilo procedural

mysqli_get_server_info(mysqli $mysql): string

Retorna uma string representando a versão do servidor MySQL ao qual a extensão MySQLi está conectada.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Uma string de caracteres representando a versão do servidor.

Exemplos

Exemplo #1 Exemplo de $mysqli->server_info

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* print server version */
printf("Server version: %s\n", $mysqli->server_info);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password");

/* print server version */
printf("Server version: %s\n", mysqli_get_server_info($link));

Os exemplos acima produzirão algo semelhante a:

Server version: 8.0.21

Veja Também

  • mysqli_get_client_info() - Obtém informação do cliente MySQL
  • mysqli_get_client_version() - Retorna a versão do cliente MySQL como um inteiro
  • mysqli_get_server_version() - Retorna a versão do servidor MySQL como um inteiro


Retorna a versão do servidor MySQL como um inteiro

  • « mysqli::$server_info
  • mysqli::get_warnings »
  • PHP Manual
  • mysqli
  • Retorna a versão do servidor MySQL como um inteiro

mysqli::$server_version

mysqli_get_server_version

(PHP 5, PHP 7, PHP 8)

mysqli::$server_version -- mysqli_get_server_version — Retorna a versão do servidor MySQL como um inteiro

Descrição

Estilo orientado a objetos

int $mysqli->server_version;

Estilo procedural

mysqli_get_server_version(mysqli $mysql): int

A função mysqli_get_server_version() retorna a versão do servidor ao qual se está conectado (representado pelo parâmetro mysql) como um inteiro.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Um inteiro representando a versão do servidor.

A forma deste número de versão é versão_principal * 10000 + versão_menor * 100 + sub_versão (ex. a versão 4.1.0 é 40100).

Exemplos

Exemplo #1 Exemplo de $mysqli->server_version

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* print server version */
printf("Server version: %d\n", $mysqli->server_version);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password");

/* print server version */
printf("Server version: %d\n", mysqli_get_server_version($link));

Os exemplos acima produzirão algo semelhante a:

Server version: 80021

Veja Também

  • mysqli_get_client_info() - Obtém informação do cliente MySQL
  • mysqli_get_client_version() - Retorna a versão do cliente MySQL como um inteiro
  • mysqli_get_server_info() - Retorna a versão do servidor MySQL


Obtém o resultado de SHOW WARNINGS

  • « mysqli::$server_version
  • mysqli::$info »
  • PHP Manual
  • mysqli
  • Obtém o resultado de SHOW WARNINGS

mysqli::get_warnings

mysqli_get_warnings

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

mysqli::get_warnings -- mysqli_get_warnings — Obtém o resultado de SHOW WARNINGS

Descrição

Estilo orientado a objetos

public mysqli::get_warnings(): mysqli_warning|false

Estilo procedural

mysqli_get_warnings(mysqli $mysql): mysqli_warning|false
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Recupera informação sobre a recente consulta executada

  • « mysqli::get_warnings
  • mysqli::init »
  • PHP Manual
  • mysqli
  • Recupera informação sobre a recente consulta executada

mysqli::$info

mysqli_info

(PHP 5, PHP 7, PHP 8)

mysqli::$info -- mysqli_info — Recupera informação sobre a recente consulta executada

Descrição

Estilo orientado a objetos

?string $mysqli->info;

Estilo procedural

mysqli_info(mysqli $mysql): ?string

A função mysqli_info() retorna uma string contendo informação sobre a última consulta executada. A natureza desta string é fornecida abaixo:

Possíveis valores de retorno de mysqli_info
Tipo de consulta | Exemplo da string de resultado
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:

Consultas que não se encaixam em um dos formatos acima não são suportadas. Nesta situação, mysqli_info() irá retornar uma string vazia.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Uma string de caracteres representando informação adicional sobre a mais recente consulta executada.

Exemplos

Exemplo #1 Exemplo de $mysqli->info

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$mysqli->query("CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO ... SELECT */
$mysqli->query("INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", $mysqli->info);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

mysqli_query($link, "CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO ... SELECT */
mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", mysqli_info($link));

Os exemplos acima produzirão:

Records: 150  Duplicates: 0  Warnings: 0

Veja Também

  • mysqli_affected_rows() - Retorna o número de linhas afetadas pela operação MySQL anterior
  • mysqli_warning_count() - Retorna o número de avisos da última consulta para o link fornecido
  • mysqli_num_rows() - Obtém o número de linhas no resultado


Inicializa o MySQLi e retorna um objeto a ser utilizado com mysqli_real_connect()

  • « mysqli::$info
  • mysqli::$insert_id »
  • PHP Manual
  • mysqli
  • Inicializa o MySQLi e retorna um objeto a ser utilizado com mysqli_real_connect()

mysqli::init

mysqli_init

(PHP 5, PHP 7, PHP 8)

mysqli::init -- mysqli_init — Inicializa o MySQLi e retorna um objeto a ser utilizado com mysqli_real_connect()

Descrição

Estilo orientado a objetos

public mysqli::init(): ?bool

Estilo procedural

mysqli_init(): mysqli|false

Aloca ou inicializa um objeto MYSQL adequado para as funções mysqli_options() e mysqli_real_connect().

Nota:

Chamadas subsequentes a quaisquer funções mysqli (exceto mysqli_options() e mysqli_ssl_set()) irão falhar até que mysqli_real_connect() seja chamada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

mysqli::init() retorna null em caso de sucesso, ou false em caso de falha. mysqli_init() retorna um objeto em caso de sucesso, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O método mysqli::init() com estilo orientado a objeto está defasado. Substitua as chamadas a parent::init() por parent::__construct().

Exemplos

Consulte mysqli_real_connect().

Veja Também

  • mysqli_options() - Define opções
  • mysqli_close() - Fecha uma conexão ao banco de dados previamente aberta
  • mysqli_real_connect() - Abre uma conexão com um servidor mysql
  • mysqli_connect() - Sinônimo de mysqli::__construct


Retorna o valor gerado para uma coluna AUTO_INCREMENT pela última consulta

  • « mysqli::init
  • mysqli::kill »
  • PHP Manual
  • mysqli
  • Retorna o valor gerado para uma coluna AUTO_INCREMENT pela última consulta

mysqli::$insert_id

mysqli_insert_id

(PHP 5, PHP 7, PHP 8)

mysqli::$insert_id -- mysqli_insert_id — Retorna o valor gerado para uma coluna AUTO_INCREMENT pela última consulta

Descrição

Estilo orientado a objetos

int|string $mysqli->insert_id;

Estilo procedural

mysqli_insert_id(mysqli $mysql): int|string

Retorna o ID gerado por uma consulta INSERT ou UPDATE em uma tabela que tenha o atributo AUTO_INCREMENT. No caso de uma declaração INSERT de múltiplas linhas, ela retorna o primeiro valor gerado automaticamente que foi inserido com sucesso.

Realizar uma declaração INSERT ou UPDATE usando a função MYSQL LAST_INSERT_ID() também irá modificar o valor retornado por mysqli_insert_id(). Se LAST_INSERT_ID(expr) foi usado para gerar o valor de AUTO_INCREMENT, ela retorna o valor da última expr no lugar do valor AUTO_INCREMENT gerado.

Retorna 0 se a declaração anterior não modificou um valor AUTO_INCREMENT. mysqli_insert_id() deve ser chamada imediatamente após a declaração que gerou o valor.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

O valor do campo AUTO_INCREMENT que foi atualizado pela consulta anterior. Retorna zero se não houve consulta anterior na conexão ou se a consulta não atualizou um valor AUTO_INCREMENT.

Apenas declarações emitidas com a conexão atual afetam o valor de retorno. O valor não é afetado por declarações emitidas usando outras conexões ou clientes.

Nota:

Se o número é maior que o máximo valor de um inteiro, ele será retornado como uma string.

Exemplos

Exemplo #1 Exemplo de $mysqli->insert_id

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf("Novo registro tem ID %d.\n", $mysqli->insert_id);

/* deleta a tabela */
$mysqli->query("DROP TABLE myCity");

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf("Novo registro tem ID %d.\n", mysqli_insert_id($link));

/* deleta a tabela */
mysqli_query($link, "DROP TABLE myCity");

Os exemplos acima produzirão:

Novo registro tem ID 1.


Solicita ao servidor o encerramento de um thread do MySQL

  • « mysqli::$insert_id
  • mysqli::more_results »
  • PHP Manual
  • mysqli
  • Solicita ao servidor o encerramento de um thread do MySQL

mysqli::kill

mysqli_kill

(PHP 5, PHP 7, PHP 8)

mysqli::kill -- mysqli_kill — Solicita ao servidor o encerramento de um thread do MySQL

Descrição

Estilo orientado a objetos

public mysqli::kill(int $process_id): bool

Estilo procedural

mysqli_kill(mysqli $mysql, int $process_id): bool

Esta função é usada para solicitar ao servidor o encerramento de uma thread do MySQL especificada pelo parâmetro process_id. Este valor deve ser recuperado chamando a função mysqli_thread_id().

Para encerrar a execução de uma consulta, você deve usar o comando SQL KILL QUERY processid.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Exemplo de mysqli::kill()

Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifica conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

/* determina o identificador da thread */
$thread_id = $mysqli->thread_id;

/* Encerra a conexão */
$mysqli->kill($thread_id);

/* Isto deve gerar um erro */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
printf("Error: %s\n", $mysqli->error);
exit;
}

/* fecha a conexão */
$mysqli->close();
?>

Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

/* determina o identificador da thread */
$thread_id = mysqli_thread_id($link);

/* Encerra a conexão */
mysqli_kill($link, $thread_id);

/* Isto deve gerar um erro */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
printf("Error: %s\n", mysqli_error($link));
exit;
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Error: MySQL server has gone away

Veja Também

  • mysqli_thread_id() - Retorna o ID da thread para a conexão atual


Verifica se há mais algum resultado de uma consulta múltipla

  • « mysqli::kill
  • mysqli::multi_query »
  • PHP Manual
  • mysqli
  • Verifica se há mais algum resultado de uma consulta múltipla

mysqli::more_results

mysqli_more_results

(PHP 5, PHP 7, PHP 8)

mysqli::more_results -- mysqli_more_results — Verifica se há mais algum resultado de uma consulta múltipla

Descrição

Estilo orientado a objetos

public mysqli::more_results(): bool

Estilo procedural

mysqli_more_results(mysqli $mysql): bool

Indica se um ou mais conjuntos de resultados estão disponíveis de uma chamada anterior a mysqli_multi_query().

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna true se um ou mais conjuntos de resultados (incluindo erros) estão disponíveis de uma chamada anterior a mysqli_multi_query(), caso contrário false.

Exemplos

Consulte mysqli_multi_query().

Veja Também

  • mysqli_multi_query() - Executa uma ou mais consultas no banco de dados
  • mysqli_next_result() - Prepara o próximo resultado de multi_query
  • mysqli_store_result() - Transfere um conjunto de resultados da última consulta
  • mysqli_use_result() - Iniciar uma recuperação de conjunto de resultados


Executa uma ou mais consultas no banco de dados

  • « mysqli::more_results
  • mysqli::next_result »
  • PHP Manual
  • mysqli
  • Executa uma ou mais consultas no banco de dados

mysqli::multi_query

mysqli_multi_query

(PHP 5, PHP 7, PHP 8)

mysqli::multi_query -- mysqli_multi_query — Executa uma ou mais consultas no banco de dados

Descrição

Estilo orientado a objetos

public mysqli::multi_query(string $query): bool

Estilo procedural

mysqli_multi_query(mysqli $mysql, string $query): bool

Executa uma ou múltiplas consultas que são concatenadas com ponto-e-vírgula.

Aviso

Alerta de segurança: injeção de SQL

Se a consulta contiver qualquer entrada de variável, instruções preparadas parametrizadas devem ser usadas. Alternativamente, os dados devem ser formatados corretamente e todas as strings devem ser escapadas usando a função mysqli_real_escape_string().

Consultas são enviadas de forma assíncrona em uma única chamada ao banco, mas o banco de dados processa-as sequencialmente. mysqli_multi_query() espera pela finalização da primeira consulta antes de retornar o controle ao PHP. O servidor MySQL então processará a próxima consulta na sequência. Uma vez que o resultado seguinte ficar pronto, o MySQL esperará pela próxima execução de mysqli_next_result() pelo PHP.

É recomendado usar do-while para processar consultas múltiplas. A conexão estará ocupada enquanto todas as consultas tiverem concluído e seus resultados enviados ao PHP. Nenhuma outra declaração pode ser emitida na mesma conexão até que todas as consultas sejam processadas. Para proceder à consulta seguinte, use mysqli_next_result(). Se a consulta seguinte ainda não estiver pronta, mysqli esperará pela resposta do servidor MySQL. Para verificar se há mais resultados, use mysqli_more_results().

Para consultas que produzem um conjnto de resultados, como em SELECT, SHOW, DESCRIBE ou EXPLAIN, mysqli_use_result() ou mysqli_store_result() podem ser usadas para recuperar o conjunto. Para consultas que não produzem um conjunto de resultados, as mesmas funções podem ser usadas para recuperar informação como o número de linhas afetadas.

Dica

Executar declarações CALL para procedimentos armazenados pode produzir múltiplos conjuntos de resultados. Se o procedimento armazenado contiver declarações SELECT, os conjuntos são retornados na ordem em que são produzidos enquando o procedimento é executado. Em geral, a função que chama não sabe quantos conjuntos de resultados um procedimento irá retornar e deve estar preparada para recuperar múltiplos conjuntos. O resultado final do procedimento é um resultado de estado que não inclui nenhum conjunto. O estado indica se o procedimento teve sucesso ou se ocorreu um erro.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

query

Uma string contendo as consultas que serão executadas. Consultas múltiplas devem ser separadas por ponto-e-vírgula (;).

Valor Retornado

Retorna false se a primeira consulta falhar. Para recuperar erros subsequentes de outras consultas, deve-se chamar mysqli_next_result() primeiro.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Exemplo de mysqli::multi_query()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* executa as consultas múltiplas */
$mysqli->multi_query($query);
do {
/* store the result set in PHP */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* executa as consultas múltiplas */
mysqli_multi_query($link, $query);
do {
/* store the result set in PHP */
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
}
/* print divider */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($link));

Os exemplos acima produzirão algo semelhante a:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Veja Também

  • mysqli_query() - Executa uma consulta no banco de dados
  • mysqli_use_result() - Iniciar uma recuperação de conjunto de resultados
  • mysqli_store_result() - Transfere um conjunto de resultados da última consulta
  • mysqli_next_result() - Prepara o próximo resultado de multi_query
  • mysqli_more_results() - Verifica se há mais algum resultado de uma consulta múltipla


Prepara o próximo resultado de multi_query

  • « mysqli::multi_query
  • mysqli::options »
  • PHP Manual
  • mysqli
  • Prepara o próximo resultado de multi_query

mysqli::next_result

mysqli_next_result

(PHP 5, PHP 7, PHP 8)

mysqli::next_result -- mysqli_next_result — Prepara o próximo resultado de multi_query

Descrição

Estilo orientado a objetos

public mysqli::next_result(): bool

Estilo procedural

mysqli_next_result(mysqli $mysql): bool

Prepara o próximo conjunto de resultado de uma chamada anterior a
mysqli_multi_query() que pode ser recuperado por
mysqli_store_result() ou
mysqli_use_result().

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Também retorna false se a declaração seguinte resultou em erro, diferentemente de mysqli_more_results().

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Consulte mysqli_multi_query().

Veja Também

  • mysqli_multi_query() - Executa uma ou mais consultas no banco de dados
  • mysqli_more_results() - Verifica se há mais algum resultado de uma consulta múltipla
  • mysqli_store_result() - Transfere um conjunto de resultados da última consulta
  • mysqli_use_result() - Iniciar uma recuperação de conjunto de resultados


Define opções

  • « mysqli::next_result
  • mysqli::ping »
  • PHP Manual
  • mysqli
  • Define opções

mysqli::options

mysqli_options

(PHP 5, PHP 7, PHP 8)

mysqli::options -- mysqli_options — Define opções

Descrição

Estilo orientado a objetos

public mysqli::options(int $option, string|int $value): bool

Estilo procedural

mysqli_options(mysqli $mysql, int $option, string|int $value): bool

Usado para definir opções extras de conexão e afetar o comportamento de uma conexão.

Esta função pode ser chamada várias vezes para definir várias opções.

mysqli_options() deve ser chamado depois de
mysqli_init() e antes de
mysqli_real_connect().

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

option

A opção que você deseja definir. Pode ser um dos seguintes valores:

Valid options
Name | Description
MYSQLI_OPT_CONNECT_TIMEOUT | Tempo limite de conexão em segundos
MYSQLI_OPT_READ_TIMEOUT | Tempo limite do resultado da execução do comando em segundos. Disponível a partir do PHP 7.2.0.
MYSQLI_OPT_LOCAL_INFILE | Ativar/desativar o uso de LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND | Comando para executar depois ao conectar ao servidor MySQL
MYSQLI_SET_CHARSET_NAME | O conjunto de caracteres a ser definido como padrão..
MYSQLI_READ_DEFAULT_FILE | Lê as opções do arquivo de opções nomeadas em vez de my.cnf Não suportado por mysqlnd.
MYSQLI_READ_DEFAULT_GROUP | Leia as opções do grupo nomeado de my.cnf ou o arquivo especificado com MYSQL_READ_DEFAULT_FILE. Não suportado pelo mysqlnd.
MYSQLI_SERVER_PUBLIC_KEY | Arquivo de chave pública RSA usado com a autenticação baseada em SHA-256.
MYSQLI_OPT_NET_CMD_BUFFER_SIZE | O tamanho do buffer interno de comando/rede. Válido apenas para mysqlnd.
MYSQLI_OPT_NET_READ_BUFFER_SIZE | Tamanho máximo do bloco de leitura em bytes ao ler o corpo de um pacote de comando do MySQL. Válido apenas para mysqlnd.
MYSQLI_OPT_INT_AND_FLOAT_NATIVE | Converte colunas de números inteiros e pontos flutuantes de volta para números PHP ao usar instruções não preparadas. Válido apenas para mysqlnd.
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT | Se deve-se verificar ou não o certificado do servidor.

value

O valor da opção.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Veja mysqli_real_connect().

Notas

Nota:

O MySQLnd sempre assume o conjunto de caracteres padrão do servidor. Este conjunto de caracteres é enviado durante a criação/autenticação da conexão e será usado pelo mysqlnd.

A libmysqlclient usa o conjunto de caracteres padrão definido no arquivo my.cnf ou definido por uma chamada explícita a mysqli_options() antes de chamar mysqli_real_connect(), mas depois de chamar mysqli_init().

Veja Também

  • mysqli_init() - Inicializa o MySQLi e retorna um objeto a ser utilizado com mysqli_real_connect()
  • mysqli_real_connect() - Abre uma conexão com um servidor mysql


Faz ping em uma conexão de servidor ou tenta reconectar se a conexão cair

  • « mysqli::options
  • mysqli::poll »
  • PHP Manual
  • mysqli
  • Faz ping em uma conexão de servidor ou tenta reconectar se a conexão cair

mysqli::ping

mysqli_ping

(PHP 5, PHP 7, PHP 8)

mysqli::ping -- mysqli_ping — Faz ping em uma conexão de servidor ou tenta reconectar se a conexão cair

Descrição

Estilo orientado a objetos

public mysqli::ping(): bool

Estilo procedural

mysqli_ping(mysqli $mysql): bool

Verifica se a conexão com o servidor está funcionando. Se ele estiver inativo e a opção global mysqli.reconnect estiver habilitada, uma reconexão automática será tentada.

Nota: A configuração mysqli.reconnect do php.ini é ignorada pelo driver mysqlnd, então a reconexão automática nunca é tentada.

Esta função pode ser utilizada por clientes que ficam muito tempo ociosos, para verificar se o servidor encerrou a conexão e reconectar se necessário.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 mysqli::ping() exemplo

Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifique a conexão */
if ($mysqli->connect_errno) {
printf("Falha na conexão: %s\n", $mysqli->connect_error);
exit();
}

/* verifique se o servidor está ativo */
if ($mysqli->ping()) {
printf ("Nossa conexão está ok!\n");
} else {
printf ("Erro: %s\n", $mysqli->error);
}

/* encerra a conexão */
$mysqli->close();
?>

Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifique a conexão */
if (mysqli_connect_errno()) {
printf("Falha na conexão: %s\n", mysqli_connect_error());
exit();
}

/* verifique se o servidor está ativo */
if (mysqli_ping($link)) {
printf ("Nossa conexão está ok!\n");
} else {
printf ("Erro: %s\n", mysqli_error($link));
}

/* encerra a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Nossa conexão está ok!


Sondagem de conexões

  • « mysqli::ping
  • mysqli::prepare »
  • PHP Manual
  • mysqli
  • Sondagem de conexões

mysqli::poll

mysqli_poll

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli::poll -- mysqli_poll — Sondagem de conexões

Descrição

Estilo orientado a objetos

public static mysqli::poll(
?array &$read,
?array &$error,
array &$reject,
int $seconds,
int $microseconds = 0
): int|false

Estilo procedural

mysqli_poll(
?array &$read,
?array &$error,
array &$reject,
int $seconds,
int $microseconds = 0
): int|false

Faz sondagem de conexões. Este método pode ser usado como static.

Nota:

Disponível apenas com o mysqlnd.

Parâmetros

read

Lista de conexões a verificar por resultados marcantes que possam ser lidos.

error

Lista de conexões nas quais um erro ocorreu, por exemplo, falha na consulta ou conexão perdida.

reject

Lista de conexões rejeitadas porque nenhuma consulta assícrona foi executada para que a função pudesse sondar os resultados.

seconds

Número máximo de segundos a esperar, deve ser não negativo.

microseconds

Número máximo de microssegundos a esperar, deve ser não negativo.

Valor Retornado

Retorna o número de conexões prontas em caso de sucesso, false caso contrário.

Erros/Exceções

Uma exceção ValueError é lançada quando nem o parâmetro read nem o parâmetro error são passados.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora lançã uma exceção ValueError quando nem o parâmetro read nem o parâmetro error são passados.

Exemplos

Exemplo #1 Um exemplo de mysqli_poll()

<?php
$link1 = mysqli_connect();
$link1->query("SELECT 'test'", MYSQLI_ASYNC);
$all_links = array($link1);
$processed = 0;
do {
$links = $errors = $reject = array();
foreach ($all_links as $link) {
$links[] = $errors[] = $reject[] = $link;
}
if (!mysqli_poll($links, $errors, $reject, 1)) {
continue;
}
foreach ($links as $link) {
if ($result = $link->reap_async_query()) {
print_r($result->fetch_row());
if (is_object($result))
mysqli_free_result($result);
} else die(sprintf("MySQLi Error: %s", mysqli_error($link)));
$processed++;
}
} while ($processed < count($all_links));
?>

O exemplo acima produzirá:

Array
(
    [0] => test
)

Veja Também

  • mysqli_query() - Executa uma consulta no banco de dados
  • mysqli_reap_async_query() - Obtenha o resultado da consulta assíncrona


Prepara uma instrução SQL para execução

  • « mysqli::poll
  • mysqli::query »
  • PHP Manual
  • mysqli
  • Prepara uma instrução SQL para execução

mysqli::prepare

mysqli_prepare

(PHP 5, PHP 7, PHP 8)

mysqli::prepare -- mysqli_prepare — Prepara uma instrução SQL para execução

Descrição

Estilo orientado a objetos

public mysqli::prepare(string $query): mysqli_stmt|false

Estilo procedural

mysqli_prepare(mysqli $mysql, string $query): mysqli_stmt|false

Prepara a consulta SQL e retorna um identificador de instrução a ser usado para outras operações na instrução. A consulta deve consistir em uma única instrução SQL.

O modelo de instrução pode conter zero ou mais marcadores de parâmetro de ponto de interrogação (?) também chamados de espaços reservados. Os marcadores de parâmetro devem ser vinculados às variáveis do aplicativo usando mysqli_stmt_bind_param() antes de executar a instrução.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

query

A consulta, como uma string. Deve consistir em uma única instrução SQL.

A instrução SQL pode conter zero ou mais marcadores de parâmetro representados por caracteres de ponto de interrogação (?) nas posições apropriadas.

Nota:

Os marcadores são válidos apenas em determinados locais nas instruções SQL. Por exemplo, eles são permitidos na lista VALUES() de uma instrução INSERT (para especificar valores de coluna para uma linha) ou em uma comparação com uma coluna em uma cláusula WHERE para especificar um valor de comparação. No entanto, eles não são permitidos para identificadores (como nomes de tabelas ou colunas).

Valor Retornado

mysqli_prepare() retorna um objeto de instrução ou false se ocorreu um erro.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 mysqli::prepare() exemplo

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* criar uma declaração preparada */
$stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?");

/* parâmetros de ligação para marcadores */
$stmt->bind_param("s", $city);

/* executar consulta */
$stmt->execute();

/* vincular variáveis de resultado */
$stmt->bind_result($district);

/* buscar valor */
$stmt->fetch();

printf("%s está no distrito %s\n", $city, $district);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* criar uma declaração preparada */
$stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?");

/* parâmetros de ligação para marcadores */
mysqli_stmt_bind_param($stmt, "s", $city);

/* executar consulta */
mysqli_stmt_execute($stmt);

/* vincular variáveis de resultado */
mysqli_stmt_bind_result($stmt, $district);

/* buscar valor */
mysqli_stmt_fetch($stmt);

printf("%s está no distrito %s\n", $city, $district);

Os exemplos acima produzirão:

Amersfoort está no distrito de Utrecht

Veja Também

  • mysqli_stmt_execute() - Executa uma instrução preparada
  • mysqli_stmt_fetch() - Recebe resultados de uma instrução preparada nas variáveis vinculadas
  • mysqli_stmt_bind_param() - Liga variáveis a uma declaração preparada como parâmetros
  • mysqli_stmt_bind_result() - Liga variáveis a uma declaração preparada para armazenamento de resultado
  • mysqli_stmt_get_result() - Obtém um resultado de uma instrução preparada como um objeto mysqli_result
  • mysqli_stmt_close() - Fecha uma instrução preparada


Executa uma consulta no banco de dados

  • « mysqli::prepare
  • mysqli::real_connect »
  • PHP Manual
  • mysqli
  • Executa uma consulta no banco de dados

mysqli::query

mysqli_query

(PHP 5, PHP 7, PHP 8)

mysqli::query -- mysqli_query — Executa uma consulta no banco de dados

Descrição

Estilo orientado a objetos

public mysqli::query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool

Estilo procedural

mysqli_query(mysqli $mysql, string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool

Executa uma query no banco de dados.

Aviso

Alerta de segurança: injeção de SQL

Se a consulta contiver qualquer entrada de variável, instruções preparadas parametrizadas devem ser usadas. Alternativamente, os dados devem ser formatados corretamente e todas as strings devem ser escapadas usando a função mysqli_real_escape_string().

Para consultas não-DML (não INSERT, UPDATE ou DELETE),
esta função é semelhante a chamar
mysqli_real_query() seguido por
mysqli_use_result() ou
mysqli_store_result().

Nota:

No caso em que uma instrução é passada para mysqli_query() que é maior que max_allowed_packet do servidor, os códigos de erro retornados são diferentes dependendo se você está usando MySQL Native Driver (mysqlnd)ou MySQL Client Library (libmysqlclient). O comportamento é o seguinte:

  • mysqlnd no Linux retorna um código de erro de 1153. A mensagem de erro significa que recebi um pacote maior que max_allowed_packet bytes.

  • mysqlnd no Windows retorna um código de erro 2006. Esta mensagem de erro significa que o server has gone away.

  • libmysqlclient em todas as plataformas retorna um código de erro 2006. Essa mensagem de erro significa que o servidor foi desativado.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

query

A string de consulta.

result_mode

O modo de resultado pode ser uma das 3 constantes que indicam como o resultado será retornado do servidor MySQL.

MYSQLI_STORE_RESULT (padrão) - retorna um objeto mysqli_resultcom conjunto de resultados em buffer.

MYSQLI_USE_RESULT - retorna um objeto mysqli_result com conjunto de resultados sem buffer. Enquanto houver registros pendentes esperando para serem buscados, a linha de conexão estará ocupada e todas as chamadas subseqüentes retornarão o erro Commands out of sync. Para evitar o erro, todos os registros devem ser buscados no servidor ou o conjunto de resultados deve ser descartado chamando mysqli_free_result().

MYSQLI_ASYNC (disponível com mysqlnd) - a consulta é executada de forma assíncrona e nenhum conjunto de resultados é retornado imediatamente. mysqli_poll() é então usado para obter resultados de tais consultas. Usado em combinação com a constante MYSQLI_STORE_RESULT ou MYSQLI_USE_RESULT.

Valor Retornado

Retorna false em caso de falha. Para consultas bem-sucedidas que produzem um conjunto de resultados, como SELECT, SHOW, DESCRIBE ou EXPLAIN, mysqli_query() retornará um objeto mysqli_result. Para outras consultas bem-sucedidas, mysqli_query() retornará true.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 mysqli::query() exemplo

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Criar tabela não retorna um conjunto de resultados */
$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");
printf("Tabela myCity criada com sucesso.\n");

/* Consultas selecionadas retornam um conjunto de resultados */
$result = $mysqli->query("SELECT Name FROM City LIMIT 10");
printf("Select retornou %d linhas.\n", $result->num_rows);

/* Se tivermos que recuperar uma grande quantidade de dados, usamos MYSQLI_USE_RESULT */
$result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT);

/* Observe que não podemos executar nenhuma função que interaja com o
servidor até que todos os registros tenham sido totalmente recuperados ou o resultado
conjunto foi fechado. Todas as chamadas retornarão um erro 'fora de sincronia'*/
$mysqli->query("SET @a:='isso não vai funcionar'");

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Criar tabela não retorna um conjunto de resultados */
mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");
printf("Tabela myCity criada com sucesso.\n");

/* Select queries return a resultset */
$result = mysqli_query($link, "SELECT Name FROM City LIMIT 10");
printf("Select retornou %d linhas.\n", mysqli_num_rows($result));

/* Se tivermos que recuperar uma grande quantidade de dados, usamos MYSQLI_USE_RESULT */
$result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT);

* Observe que não podemos executar nenhuma função que interaja com o
servidor até que todos os registros tenham sido totalmente recuperados ou o resultado
conjunto foi fechado. Todas as chamadas retornarão um erro 'fora de sincronia'*/
mysqli_query($link, "SET @a:='isso não vai funcionar'");

Os exemplos acima produzirão algo semelhante a:

Tabela myCity criada com sucesso.
Select retornou 10 linhas.

Erro fatal: mysqli_sql_exception não capturado: Comandos fora de sincronia; você não pode executar este comando agora em ...

Veja Também

  • mysqli_execute_query() - Prepara, vincula parâmetros e executa a instrução SQL
  • mysqli_real_query() - Executa uma consulta SQL
  • mysqli_multi_query() - Executa uma ou mais consultas no banco de dados
  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_free_result() - Libera memória associada a um resultado


Abre uma conexão com um servidor mysql

  • « mysqli::query
  • mysqli::real_escape_string »
  • PHP Manual
  • mysqli
  • Abre uma conexão com um servidor mysql

mysqli::real_connect

mysqli_real_connect

(PHP 5, PHP 7, PHP 8)

mysqli::real_connect -- mysqli_real_connect — Abre uma conexão com um servidor mysql

Descrição

Estilo orientado a objetos

public mysqli::real_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
int $flags = 0
): bool

Estilo procedural

mysqli_real_connect(
mysqli $mysql,
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
int $flags = 0
): bool

Estabeleça uma conexão com um mecanismo de banco de dados MySQL.

Esta função difere de mysqli_connect():

  • mysqli_real_connect() precisa de um objeto válido que deve ser criado pela função mysqli_init().

  • Com a função mysqli_options() pode-se definir várias opções de conexão.

  • Existe um parâmetro flags.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

hostname

Pode ser um nome de host ou um endereço IP. Ao passar null, o valor é recuperado de mysqli.default_host. Quando possível, serão usados pipes em vez do protocolo TCP/IP. O protocolo TCP/IP é usado se um nome de host e um número de porta forem fornecidos juntos, por ex. localhost:3308.

username

O nome de usuário do MySQL, ou null para assumir o nome de usuário com base na opção ini mysqli.default_user.

password

A senha do MySQL, ou null para assumir a senha com base na opção ini mysqli.default_pw.

database

O banco de dados padrão a ser usado ao realizar consultas ou null.

port

O número da porta para tentar conectar ao servidor MySQL ou null para assumir a porta com base na opção mysqli.default_port.

socket

O socket ou pipe nomeado que deve ser usado ou null para assumir o socket com base na opção ini mysqli.default_socket.

Nota:

A especificação do parâmetro socket não determinará explicitamente o tipo de conexão a ser usada ao conectar-se ao servidor MySQL. A forma como a conexão é feita com o banco de dados MySQL é determinada pelo parâmetro hostname.

flags

Com o parâmetro flags, pode-se definir diferentes opções de conexão:

Opções suportadas
Nome | Descrição
MYSQLI_CLIENT_COMPRESS | Usa protocolo de compressão
MYSQLI_CLIENT_FOUND_ROWS | Retorna o número de linhas correspondentes, não o número de linhas afetadas
MYSQLI_CLIENT_IGNORE_SPACE | Permite espaços após os nomes das funções. Faz com que todos os nomes de funções sejam palavras reservadas.
MYSQLI_CLIENT_INTERACTIVE | Permite segundos de interactive_timeout (em vez de segundos de wait_timeout) de inatividade antes de fechar a conexão
MYSQLI_CLIENT_SSL | Usa SSL (criptografia)
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT | Como MYSQLI_CLIENT_SSL, mas desabilita a validação do certificado SSL fornecido. Isso é apenas para instalações usando o driver nativo do MySQL e MySQL 5.6 ou posterior.

Nota:

Por motivos de segurança, a opção MULTI_STATEMENT não é suportado no PHP. Se for desejado executar várias consultas, use a função mysqli_multi_query().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Registro de Alterações

Versão | Descrição
7.4.0 | All parameters are now nullable.

Exemplos

Exemplo #1 mysqli::real_connect() exemplo

Estilo orientado a objetos

<?php

$mysqli = mysqli_init();
if (!$mysqli) {
die('mysqli_init falhou');
}

if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Configuração de MYSQLI_INIT_COMMAND falhou');
}

if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Configuração de MYSQLI_OPT_CONNECT_TIMEOUT falhou');
}

if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
die('Erro de conexão (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}

echo 'Sucesso... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

Estilo orientado a objetos ao estender a classe mysqli

<?php

class foo_mysqli extends mysqli {
public function __construct($host, $user, $pass, $db) {
parent::__construct();

if (!parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Configuração de MYSQLI_INIT_COMMAND falhou');
}

if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Configuração de MYSQLI_OPT_CONNECT_TIMEOUT falhou');
}

if (!parent::real_connect($host, $user, $pass, $db)) {
die('Erro de conexão Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
}
}

$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');

echo 'Sucesso... ' . $db->host_info . "\n";

$db->close();
?>

Estilo procedural

<?php

$link = mysqli_init();
if (!$link) {
die('mysqli_init falhou');
}

if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('A configuração MYSQLI_INIT_COMMAND falhou');
}

if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('A configuração MYSQLI_OPT_CONNECT_TIMEOUT falhou');
}

if (!mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db')) {
die('Erro de conexão (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}

echo 'Sucesso... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

Os exemplos acima produzirão:

Sucesso... MySQL host info: localhost via TCP/IP

Notas

Nota:

O MySQLnd sempre assume o conjunto de caracteres padrão do servidor. Este conjunto de caracteres é enviado durante a criação/autenticação da conexão e será usado pelo mysqlnd.

A libmysqlclient usa o conjunto de caracteres padrão definido no arquivo my.cnf ou definido por uma chamada explícita a mysqli_options() antes de chamar mysqli_real_connect(), mas depois de chamar mysqli_init().

Veja Também

  • mysqli_connect() - Sinônimo de mysqli::__construct
  • mysqli_init() - Inicializa o MySQLi e retorna um objeto a ser utilizado com mysqli_real_connect()
  • mysqli_options() - Define opções
  • mysqli_ssl_set() - Usado para estabelecer conexões seguras usando SSL
  • mysqli_close() - Fecha uma conexão ao banco de dados previamente aberta


Escape caracteres especiais em uma string para uso em uma instrução SQL, levando em consideração o conjunto de caracteres atual da conexão

  • « mysqli::real_connect
  • mysqli::real_query »
  • PHP Manual
  • mysqli
  • Escape caracteres especiais em uma string para uso em uma instrução SQL, levando em consideração o conjunto de caracteres atual da conexão

mysqli::real_escape_string

mysqli_real_escape_string

(PHP 5, PHP 7, PHP 8)

mysqli::real_escape_string -- mysqli_real_escape_string — Escape caracteres especiais em uma string para uso em uma instrução SQL, levando em consideração o conjunto de caracteres atual da conexão

Descrição

Estilo orientado a objetos

public mysqli::real_escape_string(string $string): string

Estilo procedural

mysqli_real_escape_string(mysqli $mysql, string $string): string

Esta função é usada para criar uma string SQL legal que você pode usar em uma instrução SQL. A string fornecida é codificada para produzir uma string SQL com escape, levando em consideração o conjunto de caracteres atual da conexão.

Cuidado

Segurança: o conjunto de caracteres padrão

O conjunto de caracteres deve ser definido no nível do servidor ou com a função API mysqli_set_charset() para que afete mysqli_real_escape_string(). Consulte a seção de conceitos sobre conjuntos de caracteres para obter mais informações.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

string

A string a ser escapada.

Os caracteres codificados são NUL (ASCII 0), \n, \r, \, ', ", e CTRL+Z.

Valor Retornado

Retorna uma string com escape.

Exemplos

Exemplo #1 mysqli::real_escape_string() exemplo

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "'s-Hertogenbosch";

/* esta consulta com escape $city funcionará */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
$mysqli->real_escape_string($city));
$result = $mysqli->query($query);
printf("Select retornou %d linhas.\n", $result->num_rows);

/* esta consulta falhará, porque não escapamos de $city */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = $mysqli->query($query);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "'s-Hertogenbosch";

/* esta consulta com escape $city funcionará */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
mysqli_real_escape_string($mysqli, $city));
$result = mysqli_query($mysqli, $query);
printf("Select retornou %d linhas.\n", mysqli_num_rows($result));

/* esta consulta falhará, porque não escapamos de $city*/
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = mysqli_query($mysqli, $query);

Os exemplos acima produzirão algo semelhante a:

Select retornou 1 linhas.

Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's-Hertogenbosch'' at line 1 in...

Veja Também

  • mysqli_set_charset() - Define o conjunto de caracteres do cliente


Executa uma consulta SQL

  • « mysqli::real_escape_string
  • mysqli::reap_async_query »
  • PHP Manual
  • mysqli
  • Executa uma consulta SQL

mysqli::real_query

mysqli_real_query

(PHP 5, PHP 7, PHP 8)

mysqli::real_query -- mysqli_real_query — Executa uma consulta SQL

Descrição

Estilo orientado a objetos

public mysqli::real_query(string $query): bool

Estilo procedural

mysqli_real_query(mysqli $mysql, string $query): bool

Executa uma única consulta no banco de dados cujo resultado pode ser recuperado ou armazenado usando as funções mysqli_store_result() ou mysqli_use_result().

Aviso

Alerta de segurança: injeção de SQL

Se a consulta contiver qualquer entrada de variável, instruções preparadas parametrizadas devem ser usadas. Alternativamente, os dados devem ser formatados corretamente e todas as strings devem ser escapadas usando a função mysqli_real_escape_string().

Para determinar se uma determinada consulta deve retornar um conjunto de resultados ou não, consulte mysqli_field_count().

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

query

A string de consulta.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Veja Também

  • mysqli_query() - Executa uma consulta no banco de dados
  • mysqli_store_result() - Transfere um conjunto de resultados da última consulta
  • mysqli_use_result() - Iniciar uma recuperação de conjunto de resultados


Obtenha o resultado da consulta assíncrona

  • « mysqli::real_query
  • mysqli::refresh »
  • PHP Manual
  • mysqli
  • Obtenha o resultado da consulta assíncrona

mysqli::reap_async_query

mysqli_reap_async_query

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli::reap_async_query -- mysqli_reap_async_query — Obtenha o resultado da consulta assíncrona

Descrição

Estilo orientado a objetos

public mysqli::reap_async_query(): mysqli_result|bool

Estilo procedural

mysqli_reap_async_query(mysqli $mysql): mysqli_result|bool

Obtenha o resultado da consulta assíncrona.

Nota:

Disponível apenas com o mysqlnd.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna false em caso de falha. Para consultas bem-sucedidas que produzem um conjunto de resultados, como SELECT, SHOW, DESCRIBE ou EXPLAIN, mysqli_reap_async_query() retornará um objeto mysqli_result. Para outras consultas bem-sucedidas, mysqli_reap_async_query() retornará true.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Veja Também

  • mysqli_poll() - Sondagem de conexões


Atualiza

  • « mysqli::reap_async_query
  • mysqli::release_savepoint »
  • PHP Manual
  • mysqli
  • Atualiza

mysqli::refresh

mysqli_refresh

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli::refresh -- mysqli_refresh — Atualiza

Descrição

Estilo orientado a objetos

public mysqli::refresh(int $flags): bool

Estilo procedural

mysqli_refresh(mysqli $mysql, int $flags): bool

Libera tabelas ou caches ou redefine as informações do servidor de replicação.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

flags

As opções para atualizar, usando as constantes MYSQLI_REFRESH_* conforme documentado na documentação das MySQLi constantes.

Veja também a documentação oficial do » MySQL Refresh.

Valor Retornado

true se a atualização foi bem-sucedida, caso contrário, false

Veja Também

  • mysqli_poll() - Sondagem de conexões


Remove o ponto de salvamento nomeado do conjunto de pontos de salvamento da transação atual

  • « mysqli::refresh
  • mysqli::rollback »
  • PHP Manual
  • mysqli
  • Remove o ponto de salvamento nomeado do conjunto de pontos de salvamento da transação atual

mysqli::release_savepoint

mysqli_release_savepoint

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

mysqli::release_savepoint -- mysqli_release_savepoint — Remove o ponto de salvamento nomeado do conjunto de pontos de salvamento da transação atual

Descrição

Estilo orientado a objetos

public mysqli::release_savepoint(string $name): bool

Estilo procedural:

mysqli_release_savepoint(mysqli $mysql, string $name): bool

Esta função é idêntica à execução de $mysqli->query("RELEASE SAVEPOINT `$name`");. Esta função não aciona commit ou rollback.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

name

O identificador do ponto de salvamento.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • mysqli_savepoint() - Define um ponto de salvamento de transação nomeado


Reverte a transação atual

  • « mysqli::release_savepoint
  • mysqli::savepoint »
  • PHP Manual
  • mysqli
  • Reverte a transação atual

mysqli::rollback

mysqli_rollback

(PHP 5, PHP 7, PHP 8)

mysqli::rollback -- mysqli_rollback — Reverte a transação atual

Descrição

Estilo orientado a objetos

public mysqli::rollback(int $flags = 0, ?string $name = null): bool

Estilo procedural

mysqli_rollback(mysqli $mysql, int $flags = 0, ?string $name = null): bool

Reverte a transação atual para o banco de dados.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

flags

Uma máscara de bits das constantes MYSQLI_TRANS_COR_*.

name

Se fornecido, então ROLLBACK/*name*/ é executado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Registro de Alterações

Versão | Descrição
8.0.0 | name agora é anulável.

Exemplos

Veja o exemplo mysqli::begin_transaction().

Notas

Nota:

Esta função não funciona com tipos de tabelas não transacionais (como MyISAM ou ISAM).

Veja Também

  • mysqli_begin_transaction() - Inicia uma transação
  • mysqli_commit() - Grava a transação atual
  • mysqli_autocommit() - Ativa ou desativa a gravação automática das modificações no banco de dados
  • mysqli_release_savepoint() - Remove o ponto de salvamento nomeado do conjunto de pontos de salvamento da transação atual


Define um ponto de salvamento de transação nomeado

  • « mysqli::rollback
  • mysqli::select_db »
  • PHP Manual
  • mysqli
  • Define um ponto de salvamento de transação nomeado

mysqli::savepoint

mysqli_savepoint

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

mysqli::savepoint -- mysqli_savepoint — Define um ponto de salvamento de transação nomeado

Descrição

Estilo orientado a objetos

public mysqli::savepoint(string $name): bool

Estilo procedural:

mysqli_savepoint(mysqli $mysql, string $name): bool

Esta função é idêntica à execução de $mysqli->query("SAVEPOINT `$name`");

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

name

O identificador do ponto de salvamento.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • mysqli_release_savepoint() - Remove o ponto de salvamento nomeado do conjunto de pontos de salvamento da transação atual


Seleciona o banco de dados padrão para consultas de banco de dados

  • « mysqli::savepoint
  • mysqli::set_charset »
  • PHP Manual
  • mysqli
  • Seleciona o banco de dados padrão para consultas de banco de dados

mysqli::select_db

mysqli_select_db

(PHP 5, PHP 7, PHP 8)

mysqli::select_db -- mysqli_select_db — Seleciona o banco de dados padrão para consultas de banco de dados

Descrição

Estilo orientado a objetos

public mysqli::select_db(string $database): bool

Estilo procedural

mysqli_select_db(mysqli $mysql, string $database): bool

Seleciona o banco de dados padrão a ser usado ao executar consultas na conexão do banco de dados.

Nota:

Esta função deve ser usada apenas para alterar o banco de dados padrão para a conexão. Você pode selecionar o banco de dados padrão com o 4º parâmetro em mysqli_connect().

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

database

O nome do banco de dados.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 mysqli::select_db() exemplo

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* obtem o nome do banco de dados padrão atual */
$result = $mysqli->query("SELECT DATABASE()");
$row = $result->fetch_row();
printf("O banco de dados padrão é %s.\n", $row[0]);

/* altere o banco de dados padrão para "mundo" */
$mysqli->select_db("world");

/* obtem o nome do banco de dados padrão atual */
$result = $mysqli->query("SELECT DATABASE()");
$row = $result->fetch_row();
printf("O banco de dados padrão é %s.\n", $row[0]);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* obter o nome do banco de dados padrão atual */
$result = mysqli_query($link, "SELECT DATABASE()");
$row = mysqli_fetch_row($result);
printf("O banco de dados padrão és %s.\n", $row[0]);

/* altere o banco de dados padrão para "mundo" */
mysqli_select_db($link, "world");

/* obtem o nome do banco de dados padrão atual */
$result = mysqli_query($link, "SELECT DATABASE()");
$row = mysqli_fetch_row($result);
printf("O banco de dados padrão é %s.\n", $row[0]);

Os exemplos acima produzirão:

O banco de dados padrão é test.
O banco de dados padrão é world.

Veja Também

  • mysqli_connect() - Sinônimo de mysqli::__construct
  • mysqli_real_connect() - Abre uma conexão com um servidor mysql


Define o conjunto de caracteres do cliente

  • « mysqli::select_db
  • mysqli::$sqlstate »
  • PHP Manual
  • mysqli
  • Define o conjunto de caracteres do cliente

mysqli::set_charset

mysqli_set_charset

(PHP 5 >= 5.0.5, PHP 7, PHP 8)

mysqli::set_charset -- mysqli_set_charset — Define o conjunto de caracteres do cliente

Descrição

Estilo orientado a objetos

public mysqli::set_charset(string $charset): bool

Estilo procedural

mysqli_set_charset(mysqli $mysql, string $charset): bool

Define o conjunto de caracteres a ser usado ao enviar dados de e para o servidor de banco de dados.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

charset

O conjunto de caracteres desejado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 mysqli::set_charset() exemplo

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

printf("Conjunto de caracteres inicial: %s\n", $mysqli->character_set_name());

/* alterar conjunto de caracteres para utf8mb4 */
$mysqli->set_charset("utf8mb4");

printf("Conjunto de caracteres atual: %s\n", $mysqli->character_set_name());

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

printf("Conjunto de caracteres inicial: %s\n", mysqli_character_set_name($link));

/* alterar conjunto de caracteres para utf8mb4 */
mysqli_set_charset($link, "utf8mb4");

printf("Conjunto de caracteres atual: %s\n", mysqli_character_set_name($link));

Os exemplos acima produzirão algo semelhante a:

Conjunto de caracteres inicial: latin1
Conjunto de caracteres atual: utf8mb4

Notas

Nota:

Para usar esta função em uma plataforma Windows, você precisa da biblioteca cliente MySQL versão 4.1.11 ou superior (para MySQL 5.0, você precisa da versão 5.0.6 ou superior).

Nota:

Esta é a maneira preferida de alterar o conjunto de caracteres. Usar mysqli_query() para configurá-lo (como SET NAMES utf8) não é recomendado. Consulte a seção de conceitos do conjunto de caracteres do MySQL para obter mais informações.

Veja Também

  • mysqli_character_set_name() - Retorna o conjunto de caracteres atual da conexão com o banco de dados
  • mysqli_real_escape_string() - Escape caracteres especiais em uma string para uso em uma instrução SQL, levando em consideração o conjunto de caracteres atual da conexão
  • Conceitos do conjunto de caracteres do MySQL
  • » Lista de conjuntos de caracteres que o MySQL suporta


Retorna o erro SQLSTATE da operação MySQL anterior

  • « mysqli::set_charset
  • mysqli::ssl_set »
  • PHP Manual
  • mysqli
  • Retorna o erro SQLSTATE da operação MySQL anterior

mysqli::$sqlstate

mysqli_sqlstate

(PHP 5, PHP 7, PHP 8)

mysqli::$sqlstate -- mysqli_sqlstate — Retorna o erro SQLSTATE da operação MySQL anterior

Descrição

Estilo orientado a objetos

string $mysqli->sqlstate;

Estilo procedural

mysqli_sqlstate(mysqli $mysql): string

Retorna uma string contendo o código de erro SQLSTATE para o último erro. O código de erro consiste em cinco caracteres. '00000' significa nenhum erro. Os valores são especificados por ANSI SQL e ODBC. Para obter uma lista de valores possíveis, consulte » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Nota:

Observe que nem todos os erros do MySQL ainda estão mapeados para SQLSTATE. O valor HY000 (erro geral) é usado para erros não mapeados.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna uma string contendo o código de erro SQLSTATE para o último erro. O código de erro consiste em cinco caracteres. '00000' significa nenhum erro.

Exemplos

Exemplo #1 $mysqli->sqlstate example

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Table City já existe, então devemos receber um erro */
try {
$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Erro - SQLSTATE %s.\n", $mysqli->sqlstate);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Table City já existe, então devemos receber um erro */
try {
mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Erro - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

Os exemplos acima produzirão:

Erro - SQLSTATE 42S01.

Veja Também

  • mysqli_errno() - Retorna o código de erro para a chamada de função mais recente
  • mysqli_error() - Retorna uma string descrevendo o último erro


Usado para estabelecer conexões seguras usando SSL

  • « mysqli::$sqlstate
  • mysqli::stat »
  • PHP Manual
  • mysqli
  • Usado para estabelecer conexões seguras usando SSL

mysqli::ssl_set

mysqli_ssl_set

(PHP 5, PHP 7, PHP 8)

mysqli::ssl_set -- mysqli_ssl_set — Usado para estabelecer conexões seguras usando SSL

Descrição

Estilo orientado a objetos

public mysqli::ssl_set(
?string $key,
?string $certificate,
?string $ca_certificate,
?string $ca_path,
?string $cipher_algos
): true

Estilo procedural

mysqli_ssl_set(
mysqli $mysql,
?string $key,
?string $certificate,
?string $ca_certificate,
?string $ca_path,
?string $cipher_algos
): true

Usado para estabelecer conexões seguras usando SSL. Deve ser chamado antes de mysqli_real_connect(). Esta função não faz nada, a menos que o suporte OpenSSL esteja ativado.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

key

O nome do caminho para o arquivo de chave.

certificate

O nome do caminho para o arquivo de certificado.

ca_certificate

O nome do caminho para o arquivo de autoridade de certificação.

ca_path

O nome do caminho para um diretório que contém certificados SSL CA confiáveis no formato PEM.

cipher_algos

Uma lista de cifras permitidas a serem usadas para criptografia SSL.

Valor Retornado

Sempre retorna true. Se a configuração do SSL estiver incorreta, mysqli_real_connect() retornará um erro quando você tentar se conectar.

Veja Também

  • mysqli_options() - Define opções
  • mysqli_real_connect() - Abre uma conexão com um servidor mysql


Obtém o status atual do sistema

  • « mysqli::ssl_set
  • mysqli::stmt_init »
  • PHP Manual
  • mysqli
  • Obtém o status atual do sistema

mysqli::stat

mysqli_stat

(PHP 5, PHP 7, PHP 8)

mysqli::stat -- mysqli_stat — Obtém o status atual do sistema

Descrição

Estilo orientado a objetos

public mysqli::stat(): string|false

Estilo procedural

mysqli_stat(mysqli $mysql): string|false

mysqli_stat() retorna uma string contendo informações semelhantes àquelas fornecidas pelo comando 'mysqladmin status'. Isso inclui o tempo de atividade em segundos e o número de threads em execução, perguntas, recarregamentos e tabelas abertas.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Uma string que descreve o status do servidor. false se ocorreu um erro.

Exemplos

Exemplo #1 mysqli::stat() exemplo

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

printf ("Status do sistema: %s\n", $mysqli->stat());

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

printf("System status: %s\n", mysqli_stat($link));

Os exemplos acima produzirão:

Status do sistema: Uptime: 272  Threads: 1  Questions: 5340  Slow queries: 0
Opens: 13  Flush tables: 1  Open tables: 0  Queries per second avg: 19.632
Memory in use: 8496K  Max memory used: 8560K

Veja Também

  • mysqli_get_server_info() - Retorna a versão do servidor MySQL


Inicializa uma instrução e retorna um objeto para uso com mysqli_stmt_prepare

  • « mysqli::stat
  • mysqli::store_result »
  • PHP Manual
  • mysqli
  • Inicializa uma instrução e retorna um objeto para uso com mysqli_stmt_prepare

mysqli::stmt_init

mysqli_stmt_init

(PHP 5, PHP 7, PHP 8)

mysqli::stmt_init -- mysqli_stmt_init — Inicializa uma instrução e retorna um objeto para uso com mysqli_stmt_prepare

Descrição

Estilo orientado a objetos

public mysqli::stmt_init(): mysqli_stmt|false

Estilo procedural

mysqli_stmt_init(mysqli $mysql): mysqli_stmt|false

Aloca e inicializa um objeto de instrução adequado para mysqli_stmt_prepare().

Nota:

Qualquer chamada subseqüente para qualquer função mysqli_stmt falhará até que mysqli_stmt_prepare() seja chamado.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna um objeto.

Veja Também

  • mysqli_stmt_prepare() - Prepara uma declaração SQL para execução


Transfere um conjunto de resultados da última consulta

  • « mysqli::stmt_init
  • mysqli::$thread_id »
  • PHP Manual
  • mysqli
  • Transfere um conjunto de resultados da última consulta

mysqli::store_result

mysqli_store_result

(PHP 5, PHP 7, PHP 8)

mysqli::store_result -- mysqli_store_result — Transfere um conjunto de resultados da última consulta

Descrição

Estilo orientado a objetos

public mysqli::store_result(int $mode = 0): mysqli_result|false

Estilo procedural

mysqli_store_result(mysqli $mysql, int $mode = 0): mysqli_result|false

Transfere o conjunto de resultados da última consulta na conexão do banco de dados representada pelo parâmetro mysql para ser usado com a função mysqli_data_seek().

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

mode

A opção que você deseja definir. A partir do PHP 8.1, este parâmetro não tem efeito. Pode ser um dos seguintes valores:

Valid options
Nome | Descrição
MYSQLI_STORE_RESULT_COPY_DATA | Copia os resultados do buffer mysqlnd interno nas variáveis PHP buscadas. Por padrão, o mysqlnd usará uma lógica de referência para evitar copiar e duplicar os resultados mantidos na memória. Para certos conjuntos de resultados, por exemplo, conjuntos de resultados com muitas linhas pequenas, a abordagem de cópia pode reduzir o uso geral de memória porque as variáveis PHP que contêm resultados podem ser liberadas mais cedo (disponível apenas com mysqlnd)

Valor Retornado

Retorna um objeto de resultado armazenado em buffer ou false se ocorreu um erro.

Nota:

mysqli_store_result() retorna false caso a consulta não retorne um conjunto de resultados (se a consulta for, por exemplo, uma instrução INSERT). Esta função também retorna false se a leitura do conjunto de resultados falhou. Você pode verificar se houve um erro verificando se mysqli_error() não retorna uma string vazia, se mysqli_errno() retorna um valor diferente de zero ou se mysqli_field_count() retorna um valor diferente de zero. Além disso, a possível razão para esta função retornar false após uma chamada bem-sucedida para mysqli_query() pode ser um conjunto de resultados muito grande (a memória para ele não pode ser alocada). Se mysqli_field_count() retornar um valor diferente de zero, a instrução deve ter produzido um conjunto de resultados não vazio.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Veja mysqli_multi_query().

Notas

Nota:

Embora seja sempre uma boa prática liberar a memória usada pelo resultado de uma consulta usando a função mysqli_free_result(), ao transferir grandes conjuntos de resultados usando mysqli_store_result() isso se torna particularmente importante.

Veja Também

  • mysqli_real_query() - Executa uma consulta SQL
  • mysqli_use_result() - Iniciar uma recuperação de conjunto de resultados


Retorna o ID da thread para a conexão atual

  • « mysqli::store_result
  • mysqli::thread_safe »
  • PHP Manual
  • mysqli
  • Retorna o ID da thread para a conexão atual

mysqli::$thread_id

mysqli_thread_id

(PHP 5, PHP 7, PHP 8)

mysqli::$thread_id -- mysqli_thread_id — Retorna o ID da thread para a conexão atual

Descrição

Estilo orientado a objetos

int $mysqli->thread_id;

Estilo procedural

mysqli_thread_id(mysqli $mysql): int

A função mysqli_thread_id() retorna o ID da thread para a conexão atual que pode então ser eliminada usando a função mysqli_kill(). Se a conexão for perdida e você reconectar com mysqli_ping(), o ID do thread será outro. Portanto, você deve obter o ID do thread somente quando precisar dele.

Nota:

O ID do encadeamento é atribuído conexão por conexão. Portanto, se a conexão for interrompida e restabelecida, um novo ID de thread será atribuído.

Para eliminar uma consulta em execução, você pode usar o comando SQL KILL QUERY processid.

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Retorna o ID da Thread para a conexão atual.

Exemplos

Exemplo #1 $mysqli->thread_id exemplo

Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifique a conexão */
if (mysqli_connect_errno()) {
printf("Falha na conexão: %s\n", mysqli_connect_error());
exit();
}

/* determine nosso id de thread */
$thread_id = $mysqli->thread_id;

/* Matar conexão */
$mysqli->kill($thread_id);

/* Isso deve produzir um erro */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
printf("Erro: %s\n", $mysqli->error);
exit;
}

/* fecha a conexão */
$mysqli->close();
?>

Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifique a conexão*/
if (mysqli_connect_errno()) {
printf("Falha na conexão: %s\n", mysqli_connect_error());
exit();
}

/* determine nosso id de thread */
$thread_id = mysqli_thread_id($link);

/* Matar conexão */
mysqli_kill($link, $thread_id);

/* Isso deve produzir um erro */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
printf("Erro: %s\n", mysqli_error($link));
exit;
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Erro: MySQL server has gone away

Veja Também

  • mysqli_kill() - Solicita ao servidor o encerramento de um thread do MySQL


Retorna se a segurança de thread é dada ou não

  • « mysqli::$thread_id
  • mysqli::use_result »
  • PHP Manual
  • mysqli
  • Retorna se a segurança de thread é dada ou não

mysqli::thread_safe

mysqli_thread_safe

(PHP 5, PHP 7, PHP 8)

mysqli::thread_safe -- mysqli_thread_safe — Retorna se a segurança de thread é dada ou não

Descrição

Estilo orientado a objetos

public mysqli::thread_safe(): bool

Estilo procedural

mysqli_thread_safe(): bool

Informa se a biblioteca cliente é compilada como thread-safe.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true se a biblioteca cliente for thread-safe, caso contrário, false.


Iniciar uma recuperação de conjunto de resultados

  • « mysqli::thread_safe
  • mysqli::$warning_count »
  • PHP Manual
  • mysqli
  • Iniciar uma recuperação de conjunto de resultados

mysqli::use_result

mysqli_use_result

(PHP 5, PHP 7, PHP 8)

mysqli::use_result -- mysqli_use_result — Iniciar uma recuperação de conjunto de resultados

Descrição

Estilo orientado a objetos

public mysqli::use_result(): mysqli_result|false

Estilo procedural

mysqli_use_result(mysqli $mysql): mysqli_result|false

Usado para iniciar a recuperação de um conjunto de resultados da última consulta executada usando a função mysqli_real_query() na conexão com o banco de dados.

Esta ou a função mysqli_store_result() deve ser chamada antes que os resultados de uma consulta possam ser recuperados, e uma ou outra deve ser chamada para evitar que a próxima consulta nessa conexão com o banco de dados falhe.

Nota:

A função mysqli_use_result() não transfere todo o conjunto de resultados do banco de dados e, portanto, não pode ser usada funções como mysqli_data_seek() para mover para uma linha específica dentro do conjunto. Para usar esta funcionalidade, o conjunto de resultados deve ser armazenado usando mysqli_store_result(). Não se deve usar mysqli_use_result() se for feito muito processamento no lado do cliente, pois isso irá sobrecarregar o servidor e evitar que outras threads atualizem quaisquer tabelas das quais os dados estão sendo buscados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um objeto de resultado sem buffer ou false se ocorreu um erro.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 mysqli::use_result() exemplo

Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifique a conexão */
if (mysqli_connect_errno()) {
printf("Falha na conexão: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* executar várias consultas */
if ($mysqli->multi_query($query)) {
do {
/* armazenar primeiro conjunto de resultados */
if ($result = $mysqli->use_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->close();
}
/* divisor de impressão */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
}

/* fecha a conexão */
$mysqli->close();
?>

Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifique a conexão */
if (mysqli_connect_errno()) {
printf("Falha na conexão: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* executar várias consultas */
if (mysqli_multi_query($link, $query)) {
do {
/* armazenar primeiro conjunto de resultados */
if ($result = mysqli_use_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}
/* divisor de impressão */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($link));
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Veja Também

  • mysqli_real_query() - Executa uma consulta SQL
  • mysqli_store_result() - Transfere um conjunto de resultados da última consulta


Retorna o número de avisos da última consulta para o link fornecido

  • « mysqli::use_result
  • mysqli_stmt »
  • PHP Manual
  • mysqli
  • Retorna o número de avisos da última consulta para o link fornecido

mysqli::$warning_count

mysqli_warning_count

(PHP 5, PHP 7, PHP 8)

mysqli::$warning_count -- mysqli_warning_count — Retorna o número de avisos da última consulta para o link fornecido

Descrição

Estilo orientado a objetos

int $mysqli->warning_count;

Estilo procedural

mysqli_warning_count(mysqli $mysql): int

Retorna o número de avisos da última consulta na conexão.

Nota:

Para recuperar mensagens de aviso, você pode usar o comando SQL SHOW WARNINGS [limit row_count].

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

Valor Retornado

Número de avisos ou zero se não houver avisos.

Exemplos

Exemplo #1 $mysqli->warning_count exemplo

Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifique a conexão */
if (mysqli_connect_errno()) {
printf("Falha na conexão: %s\n", mysqli_connect_error());
exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* uma cidade notável no País de Gales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$mysqli->query($query);

if ($mysqli->warning_count) {
if ($result = $mysqli->query("SHOW WARNINGS")) {
$row = $result->fetch_row();
printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
$result->close();
}
}

/* fecha a conexão */
$mysqli->close();
?>

Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifique a conexão */
if (mysqli_connect_errno()) {
printf("Falha na conexão: %s\n", mysqli_connect_error());
exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* uma cidade notável no País de Gales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

mysqli_query($link, $query);

if (mysqli_warning_count($link)) {
if ($result = mysqli_query($link, "SHOW WARNINGS")) {
$row = mysqli_fetch_row($result);
printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
mysqli_free_result($result);
}
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Warning (1264): Data truncated for column 'Name' at row 1

Veja Também

  • mysqli_errno() - Retorna o código de erro para a chamada de função mais recente
  • mysqli_error() - Retorna uma string descrevendo o último erro
  • mysqli_sqlstate() - Retorna o erro SQLSTATE da operação MySQL anterior


A classe mysqli_stmt

(PHP 5, PHP 7, PHP 8)

Introdução

Representa uma declaração preparada.

Resumo da classe

class mysqli_stmt {
/* Propriedades */
public readonly int|string $affected_rows;
public readonly int|string $insert_id;
public readonly int|string $num_rows;
public readonly int $param_count;
public readonly int $field_count;
public readonly int $errno;
public readonly string $error;
public readonly array $error_list;
public readonly string $sqlstate;
public int $id;
/* Métodos */
public __construct(mysqli $mysql, ?string $query = null)
public attr_get(int $attribute): int
public attr_set(int $attribute, int $value): bool
public bind_param(string $types, mixed &$var, mixed &...$vars): bool
public bind_result(mixed &$var, mixed &...$vars): bool
public close(): true
public data_seek(int $offset): void
public execute(?array $params = null): bool
public fetch(): ?bool
public free_result(): void
public get_result(): mysqli_result|false
public get_warnings(): mysqli_warning|false
public more_results(): bool
public next_result(): bool
public num_rows(): int|string
public prepare(string $query): bool
public reset(): bool
public result_metadata(): mysqli_result|false
public send_long_data(int $param_num, string $data): bool
public store_result(): bool
}

Propriedades

id

Armazena o ID da declaração.

Índice

  • mysqli_stmt::$affected_rows — Retorna o número total de linhas modificadas, apagadas, inseridas ou correspondidas pela última instrução executada
  • mysqli_stmt::attr_get — Usado para obter o valor atual de um atributo de instrução
  • mysqli_stmt::attr_set — Usado para modificar o comportamento de uma instrução preparada
  • mysqli_stmt::bind_param — Liga variáveis a uma declaração preparada como parâmetros
  • mysqli_stmt::bind_result — Liga variáveis a uma declaração preparada para armazenamento de resultado
  • mysqli_stmt::close — Fecha uma instrução preparada
  • mysqli_stmt::__construct — Constrói um novo objeto mysqli_stmt
  • mysqli_stmt::data_seek — Ajusta o ponteiro de resultado para uma linha arbitrária no resultado com buffer
  • mysqli_stmt::$errno — Retorna o código de erro para a chamada de instrução mais recente
  • mysqli_stmt::$error_list — Retorna uma lista de erros da última instrução executada
  • mysqli_stmt::$error — Retorna uma descrição em string para o último erro de instrução
  • mysqli_stmt::execute — Executa uma instrução preparada
  • mysqli_stmt::fetch — Recebe resultados de uma instrução preparada nas variáveis vinculadas
  • mysqli_stmt::$field_count — Retorna o número de colunas na instrução informada
  • mysqli_stmt::free_result — Libera memória do resultado armazenado para o manipulador de instrução informado
  • mysqli_stmt::get_result — Obtém um resultado de uma instrução preparada como um objeto mysqli_result
  • mysqli_stmt::get_warnings — Obtém o resultado de SHOW WARNINGS
  • mysqli_stmt::$insert_id — Obtém o ID gerado pela operação INSERT anterior
  • mysqli_stmt::more_results — Verifica se há mais resultados de uma consulta múltipla
  • mysqli_stmt::next_result — Lê o próximo resultado de uma consulta múltipla
  • mysqli_stmt::$num_rows — Retorna o número de linhas recebidas pelo servidor
  • mysqli_stmt::$param_count — Retorna o número de parâmetros para uma instrução fornecida
  • mysqli_stmt::prepare — Prepara uma declaração SQL para execução
  • mysqli_stmt::reset — Redefine uma instrução preparada
  • mysqli_stmt::result_metadata — Retorna os metadados de resultado de uma instrução preparada
  • mysqli_stmt::send_long_data — Envia dados em blocos
  • mysqli_stmt::$sqlstate — Retorna o erro SQLSTATE da operação da instrução anterior
  • mysqli_stmt::store_result — Armazena um conjunto de resultados em um buffer interno


Retorna o número total de linhas modificadas, apagadas, inseridas ou correspondidas pela última instrução executada

  • « mysqli_stmt
  • mysqli_stmt::attr_get »
  • PHP Manual
  • mysqli_stmt
  • Retorna o número total de linhas modificadas, apagadas, inseridas ou correspondidas pela última instrução executada

mysqli_stmt::$affected_rows

mysqli_stmt_affected_rows

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Retorna o número total de linhas modificadas, apagadas, inseridas ou correspondidas pela última instrução executada

Descrição

Estilo orientado a objetos

int|string $mysqli_stmt->affected_rows;

Estilo procedural

mysqli_stmt_affected_rows(mysqli_stmt $statement): int|string

Retorna o número de linhas afetadas por consultas INSERT, UPDATE ou DELETE. Funciona como mysqli_stmt_num_rows() para instruções SELECT.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Um inteiro maior que zero indica o número de linhas afetadas ou recebidas. Zero indica que nenhum registro foi atualizado para uma instrução UPDATE, nenhuma linha correspondeu à cláusula WHERE na consulta ou que nenhuma consulta foi executada. -1 indica que a consulta retornou um erro ou que, para uma consulta SELECT, mysqli_stmt_affected_rows() foi chamada antes de mysqli_stmt_store_result().

Nota:

Se o número de linhas afetadas for maior que o máximo valor inteiro do PHP, o número de linhas afetadas será retornado como uma string.

Exemplos

Exemplo #1 Exemplo de mysqli_stmt_affected_rows()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* cria tabela temporária */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepara a instrução */
$stmt = $mysqli->prepare($query);

/* Vincula variável para o espaço reservado */
$code = 'A%';
$stmt->bind_param("s", $code);

/* executa a instrução */
$stmt->execute();

printf("Linhas inseridas: %d\n", $stmt->affected_rows);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* cria tabela temporária */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepara a instrução */
$stmt = mysqli_prepare($link, $query);

/* Vincula variável para o espaço reservado */
$code = 'A%';
mysqli_stmt_bind_param($stmt, "s", $code);

/* executa a instrução */
mysqli_stmt_execute($stmt);

printf("Linhas inseridas: %d\n", mysqli_stmt_affected_rows($stmt));

Os exemplos acima produzirão:

Linhas inseridas: 17

Veja Também

  • mysqli_stmt_num_rows() - Retorna o número de linhas recebidas pelo servidor
  • mysqli_stmt_store_result() - Armazena um conjunto de resultados em um buffer interno


Usado para obter o valor atual de um atributo de instrução

  • « mysqli_stmt::$affected_rows
  • mysqli_stmt::attr_set »
  • PHP Manual
  • mysqli_stmt
  • Usado para obter o valor atual de um atributo de instrução

mysqli_stmt::attr_get

mysqli_stmt_attr_get

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::attr_get -- mysqli_stmt_attr_get — Usado para obter o valor atual de um atributo de instrução

Descrição

Estilo orientado a objetos

public mysqli_stmt::attr_get(int $attribute): int

Estilo procedural

mysqli_stmt_attr_get(mysqli_stmt $statement, int $attribute): int

Obtém o valor atual de um atributo de instrução.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

attribute

O atributo que se deseja obter.

Valor Retornado

Retorna o valor do atributo.


Usado para modificar o comportamento de uma instrução preparada

  • « mysqli_stmt::attr_get
  • mysqli_stmt::bind_param »
  • PHP Manual
  • mysqli_stmt
  • Usado para modificar o comportamento de uma instrução preparada

mysqli_stmt::attr_set

mysqli_stmt_attr_set

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Usado para modificar o comportamento de uma instrução preparada

Descrição

Estilo orientado a objetos

public mysqli_stmt::attr_set(int $attribute, int $value): bool

Estilo procedural

mysqli_stmt_attr_set(mysqli_stmt $statement, int $attribute, int $value): bool

Usada para modificar o comportamento de uma instrução preparada. Esta função pode ser chamada múltiplas vezes para definir vários atributos.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

attribute

O atributo que se deseja definir. Pode ser um dos seguintes valores:

Valores de atributos
Caractere | Descrição
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | Definir para true faz com que mysqli_stmt_store_result() atualize o valor do metadado MYSQL_FIELD->max_length.
MYSQLI_STMT_ATTR_CURSOR_TYPE | Tipo de cursor a ser aberto para a instrução quando mysqli_stmt_execute() for chamada. value pode ser MYSQLI_CURSOR_TYPE_NO_CURSOR (o padrão) ou MYSQLI_CURSOR_TYPE_READ_ONLY.
MYSQLI_STMT_ATTR_PREFETCH_ROWS | Número de linhas a receber do servidor de cada vez ao usar um cursor. value pode estar na faixa de 1 até o máximo valor de um inteiro longo sem sinal. O padrão é 1.

Se a opção MYSQLI_STMT_ATTR_CURSOR_TYPE for usada com MYSQLI_CURSOR_TYPE_READ_ONLY, um cursor é aberto para a instrução quando mysqli_stmt_execute() é chamada. Se já houver um cursor aberto de uma chamada anterior de mysqli_stmt_execute(), o cursor é fechado antes que um novo seja aberto. mysqli_stmt_reset() também fecha qualquer cursor aberto antes de preparar a instrução para re-execução. mysqli_stmt_free_result() fecha qualquer cursor aberto.

Se for aberto um cursor para uma instrução preparada, a função mysqli_stmt_store_result() é desnecessária.

value

O valor a designar para o atributo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Veja Também

  • » Conector/MySQL mysql_stmt_attr_set()


Liga variáveis a uma declaração preparada como parâmetros

  • « mysqli_stmt::attr_set
  • mysqli_stmt::bind_result »
  • PHP Manual
  • mysqli_stmt
  • Liga variáveis a uma declaração preparada como parâmetros

mysqli_stmt::bind_param

mysqli_stmt_bind_param

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::bind_param -- mysqli_stmt_bind_param — Liga variáveis a uma declaração preparada como parâmetros

Descrição

Estilo orientado a objetos

public mysqli_stmt::bind_param(string $types, mixed &$var, mixed &...$vars): bool

Estilo procedural

mysqli_stmt_bind_param(
mysqli_stmt $statement,
string $types,
mixed &$var,
mixed &...$vars
): bool

Liga variáveis para os marcadores de parâmetros na declaração SQL preparada por mysqli_prepare() ou mysqli_stmt_prepare().

Nota:

Se o tamanho de dados de um variável exceder o tamanho de pacote máximo permitido (max_allowed_packet), deve-se especificar b em types e usar mysqli_stmt_send_long_data() para enviar os dados em pacotes.

Nota:

Deve-se ter cuidado ao usar mysqli_stmt_bind_param() em conjunto com call_user_func_array(). Note que mysqli_stmt_bind_param() requer que os parâmetros sejam passados por referência, enquanto que call_user_func_array() pode aceitar como parâmetro uma lista de variáveis que podem representar referências ou valores.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

types

Uma string que contém um ou mais caracteres que especificam os tipos para as variáveis correspondentes ligadas:

Caracteres de especificação de tipo
Caractere | Descrição
i | variável correspondente tem tipo int
d | variável correspondente tem tipo float
s | variável correspondente tem tipo string
b | variável correspondente é um blob e será enviada em pacotes

var
vars

O número de variáveis e o comprimento da string que o parâmetro types deve corresponder aos parâmetros na declaração.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Exemplo de mysqli_stmt::bind_param()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

$stmt->execute();

printf("%d linha inserida.\n", $stmt->affected_rows);

/* Limpa tabela CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d linha apagada.\n", $mysqli->affected_rows);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

mysqli_stmt_execute($stmt);

printf("%d linha inserida.\n", mysqli_stmt_affected_rows($stmt));

/* Limpa tabela CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d linha apagada.\n", mysqli_affected_rows($link));

Os exemplos acima produzirão:

1 linha inserida.
1 linha apagada.

Exemplo #2 Usando ... para fornecer argumentos

O operador ... pode ser usado para fornecer uma lista de argumentos de comprimento variável, como por exemplo em uma cláusula WHERE IN.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$stmt = $mysqli->prepare("SELECT Language FROM CountryLanguage WHERE CountryCode IN (?, ?)");
/* Usando ... para fornecer argumentos */
$stmt->bind_param('ss', ...['DEU', 'POL']);
$stmt->execute();
$stmt->store_result();

printf("%d linhas encontradas.\n", $stmt->num_rows());

Os exemplos acima produzirão:

10 linhas encontradas.

Veja Também

  • mysqli_stmt_bind_result() - Liga variáveis a uma declaração preparada para armazenamento de resultado
  • mysqli_stmt_execute() - Executa uma instrução preparada
  • mysqli_stmt_fetch() - Recebe resultados de uma instrução preparada nas variáveis vinculadas
  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_stmt_send_long_data() - Envia dados em blocos
  • mysqli_stmt_errno() - Retorna o código de erro para a chamada de instrução mais recente
  • mysqli_stmt_error() - Retorna uma descrição em string para o último erro de instrução


Liga variáveis a uma declaração preparada para armazenamento de resultado

  • « mysqli_stmt::bind_param
  • mysqli_stmt::close »
  • PHP Manual
  • mysqli_stmt
  • Liga variáveis a uma declaração preparada para armazenamento de resultado

mysqli_stmt::bind_result

mysqli_stmt_bind_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Liga variáveis a uma declaração preparada para armazenamento de resultado

Descrição

Estilo orientado a objetos

public mysqli_stmt::bind_result(mixed &$var, mixed &...$vars): bool

Estilo procedural

mysqli_stmt_bind_result(mysqli_stmt $statement, mixed &$var, mixed &...$vars): bool

Liga colunas no conjunto de resultados a variáveis.

Quando mysqli_stmt_fetch() é chamada para obter dados, o protocolo cliente/servidor MySQL coloca os dados das colunas ligadas nas variáveis expecificadas var/vars.

Uma coluna pode ser ligada ou religada a qualquer tempo, mesmo depois que um conjunto de resultados tenha sido parcialmente recebido. A nova ligação tem efeito na próxima vez que mysqli_stmt_fetch() for chamada.

Nota:

Todas as colunas precisam ser ligadas depois da chamada a mysqli_stmt_execute() e antes da chamada a mysqli_stmt_fetch().

Nota:

Dependendo dos tipos das colunas, variáveis ligadas podem silenciosamente ser alteradas para O tipo PHP correspondente.

Dica

Esta função é útil para resultados simples. Para receber conjuntos de resultados iteráveis, ou obter cada linha como um array ou objeto, use a função mysqli_stmt_get_result().

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

var

A primeira variável a ser ligada.

vars

Mais variáveis a serem ligadas.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* prepara a declaração */
$stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5");
$stmt->execute();

/* liga as variáveis à declaração preparada */
$stmt->bind_result($col1, $col2);

/* obtém os valores */
while ($stmt->fetch()) {
printf("%s %s\n", $col1, $col2);
}

Exemplo #2 Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* prepara a declaração */
$stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5");
mysqli_stmt_execute($stmt);

/* liga as variáveis à declaração preparada */
mysqli_stmt_bind_result($stmt, $col1, $col2);

/* obtém os valores */
while (mysqli_stmt_fetch($stmt)) {
printf("%s %s\n", $col1, $col2);
}

Os exemplos acima produzirão algo semelhante a:

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Veja Também

  • mysqli_stmt_get_result() - Obtém um resultado de uma instrução preparada como um objeto mysqli_result
  • mysqli_stmt_bind_param() - Liga variáveis a uma declaração preparada como parâmetros
  • mysqli_stmt_execute() - Executa uma instrução preparada
  • mysqli_stmt_fetch() - Recebe resultados de uma instrução preparada nas variáveis vinculadas
  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_stmt_prepare() - Prepara uma declaração SQL para execução


Fecha uma instrução preparada

  • « mysqli_stmt::bind_result
  • mysqli_stmt::__construct »
  • PHP Manual
  • mysqli_stmt
  • Fecha uma instrução preparada

mysqli_stmt::close

mysqli_stmt_close

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::close -- mysqli_stmt_close — Fecha uma instrução preparada

Descrição

Estilo orientado a objetos

public mysqli_stmt::close(): true

Estilo procedural

mysqli_stmt_close(mysqli_stmt $statement): true

Fecha uma instrução preparada. mysqli_stmt_close() também desaloca da memória o manipulador da instrução. Se a instrução atual tem resultados pendentes ou não lidos, esta função as cancela de forma que a próxima consulta possa ser executada.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora sempre retorna true. Anteriormente retornava false em caso de falha.

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução


Constrói um novo objeto mysqli_stmt

  • « mysqli_stmt::close
  • mysqli_stmt::data_seek »
  • PHP Manual
  • mysqli_stmt
  • Constrói um novo objeto mysqli_stmt

mysqli_stmt::__construct

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::__construct — Constrói um novo objeto mysqli_stmt

Descrição

public mysqli_stmt::__construct(mysqli $mysql, ?string $query = null)

Este método constrói um novo objeto mysqli_stmt.

Parâmetros

link

Om objeto mysqli válido.

query

A consulta, como uma string. Se este parâmetro for null, o construtor se comporta de forma idêntica a mysqli_stmt_init(), caso contrário se comporta como mysqli_prepare().

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Registro de Alterações

Versão | Descrição
8.0.0 | query agora pode ser nulo.

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_stmt_init() - Inicializa uma instrução e retorna um objeto para uso com mysqli_stmt_prepare


Ajusta o ponteiro de resultado para uma linha arbitrária no resultado com buffer

  • « mysqli_stmt::__construct
  • mysqli_stmt::$errno »
  • PHP Manual
  • mysqli_stmt
  • Ajusta o ponteiro de resultado para uma linha arbitrária no resultado com buffer

mysqli_stmt::data_seek

mysqli_stmt_data_seek

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::data_seek -- mysqli_stmt_data_seek — Ajusta o ponteiro de resultado para uma linha arbitrária no resultado com buffer

Descrição

Estilo orientado a objetos

public mysqli_stmt::data_seek(int $offset): void

Estilo procedural

mysqli_stmt_data_seek(mysqli_stmt $statement, int $offset): void

Esta função move o ponteiro do conjunto de resultados com buffer para uma linha arbitrária especificada pelo parâmetro offset.

Esta função funciona somente com o conjunto de resultados interno com buffer. mysqli_stmt_store_result() precisa ser chamada antes de mysqli_stmt_data_seek().

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

offset

Precisa ser entre zero e o número total de linhas menos um (0.. mysqli_stmt_num_rows() - 1).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$stmt = $mysqli->prepare($query);
$stmt->execute();

$stmt->bind_result($name, $code);

$stmt->store_result();

/* aponta para a linha núm. 400 */
$stmt->data_seek(399);

$stmt->fetch();

printf("City: %s Countrycode: %s\n", $name, $code);

Exemplo #2 Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$stmt = mysqli_prepare($link, $query);

mysqli_stmt_execute($stmt);

mysqli_stmt_bind_result($stmt, $name, $code);

mysqli_stmt_store_result($stmt);

/* aponta para a linha núm. 400 */
mysqli_stmt_data_seek($stmt, 399);

mysqli_stmt_fetch($stmt);

printf("City: %s Countrycode: %s\n", $name, $code);

Os exemplos acima produzirão:

City: Benin City  Countrycode: NGA

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_stmt_store_result() - Armazena um conjunto de resultados em um buffer interno
  • mysqli_stmt_num_rows() - Retorna o número de linhas recebidas pelo servidor
  • mysqli_data_seek() - Ajusta o ponteiro do resultado para uma linha arbritária no resultado


Retorna o código de erro para a chamada de instrução mais recente

  • « mysqli_stmt::data_seek
  • mysqli_stmt::$error_list »
  • PHP Manual
  • mysqli_stmt
  • Retorna o código de erro para a chamada de instrução mais recente

mysqli_stmt::$errno

mysqli_stmt_errno

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$errno -- mysqli_stmt_errno — Retorna o código de erro para a chamada de instrução mais recente

Descrição

Estilo orientado a objetos

int $mysqli_stmt->errno;

Estilo procedural

mysqli_stmt_errno(mysqli_stmt $statement): int

Retorna o código de erro para a função de instrução mais recentemente chamada, que possa ter sucesso ou falhar.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Um valor de código de erro. Zero significa que não houve erro.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
/* Abre uma conexão */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

/* apaga a tabela */
$mysqli->query("DROP TABLE myCountry");

/* executa a instrução */
$stmt->execute();

printf("Erro: %d.\n", $stmt->errno);

/* fecha a instrução */
$stmt->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
/* Abre uma conexão */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

/* apaga a tabela */
mysqli_query($link, "DROP TABLE myCountry");

/* executa a instrução */
mysqli_stmt_execute($stmt);

printf("Erro: %d.\n", mysqli_stmt_errno($stmt));

/* fecha a instrução */
mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Erro: 1146.

Veja Também

  • mysqli_stmt_error() - Retorna uma descrição em string para o último erro de instrução
  • mysqli_stmt_sqlstate() - Retorna o erro SQLSTATE da operação da instrução anterior


Retorna uma lista de erros da última instrução executada

  • « mysqli_stmt::$errno
  • mysqli_stmt::$error »
  • PHP Manual
  • mysqli_stmt
  • Retorna uma lista de erros da última instrução executada

mysqli_stmt::$error_list

mysqli_stmt_error_list

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

mysqli_stmt::$error_list -- mysqli_stmt_error_list — Retorna uma lista de erros da última instrução executada

Descrição

Estilo orientado a objetos

array $mysqli_stmt->error_list;

Estilo procedural

mysqli_stmt_error_list(mysqli_stmt $statement): array

Retorna um array de erros para a função de instrução mais recente que possa ter sucesso ou falhar.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Uma lista de erros, cada um como um array associativo contendo o número do erro (errno), o erro (error) e o estado SQL (sqlstate).

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
/* Abre uma conexão */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

/* apaga a tabela */
$mysqli->query("DROP TABLE myCountry");

/* executa a instrução */
$stmt->execute();

echo "Erro:\n";
print_r($stmt->error_list);

/* fecha a instrução */
$stmt->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
/* Abre uma conexão */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

/* apaga a tabela */
mysqli_query($link, "DROP TABLE myCountry");

/* executa a instrução */
mysqli_stmt_execute($stmt);

echo "Erro:\n";
print_r(mysql_stmt_error_list($stmt));

/* fecha a instrução */
mysqli_stmt_close($stmt);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Erro:
Array
(
    [0] => Array
        (
            [errno] => 1146
            [sqlstate] => 42S02
            [error] => Table 'world.myCountry' doesn't exist
        )

)

Veja Também

  • mysqli_stmt_error() - Retorna uma descrição em string para o último erro de instrução
  • mysqli_stmt_errno() - Retorna o código de erro para a chamada de instrução mais recente
  • mysqli_stmt_sqlstate() - Retorna o erro SQLSTATE da operação da instrução anterior


Retorna uma descrição em string para o último erro de instrução

  • « mysqli_stmt::$error_list
  • mysqli_stmt::execute »
  • PHP Manual
  • mysqli_stmt
  • Retorna uma descrição em string para o último erro de instrução

mysqli_stmt::$error

mysqli_stmt_error

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$error -- mysqli_stmt_error — Retorna uma descrição em string para o último erro de instrução

Descrição

Estilo orientado a objetos

string $mysqli_stmt->error;

Estilo procedural

mysqli_stmt_error(mysqli_stmt $statement): string

Retorna uma string contendo a mensagem de erro para a função de instrução mais recentemente chamada, que possa ter sucesso ou falhar.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Uma string que descreve o erro. Uma string vazia se nenhum erro ocorreu.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
/* Abre uma conexão */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

/* apaga a tabela */
$mysqli->query("DROP TABLE myCountry");

/* executa a instrução */
$stmt->execute();

printf("Erro: %s.\n", $stmt->error);

/* fecha a instrução */
$stmt->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
/* Abre uma conexão */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

/* apaga a tabela */
mysqli_query($link, "DROP TABLE myCountry");

/* executa a instrução */
mysqli_stmt_execute($stmt);

printf("Erro: %s.\n", mysqli_stmt_error($stmt));

/* fecha a instrução */
mysqli_stmt_close($stmt);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Erro: Table 'world.myCountry' doesn't exist.

Veja Também

  • mysqli_stmt_errno() - Retorna o código de erro para a chamada de instrução mais recente
  • mysqli_stmt_sqlstate() - Retorna o erro SQLSTATE da operação da instrução anterior


Executa uma instrução preparada

  • « mysqli_stmt::$error
  • mysqli_stmt::fetch »
  • PHP Manual
  • mysqli_stmt
  • Executa uma instrução preparada

mysqli_stmt::execute

mysqli_stmt_execute

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::execute -- mysqli_stmt_execute — Executa uma instrução preparada

Descrição

Estilo orientado a objetos

public mysqli_stmt::execute(?array $params = null): bool

Estilo procedural

mysqli_stmt_execute(mysqli_stmt $statement, ?array $params = null): bool

Executa uma instrução previamente preparada. A instrução precisa ser preparada com sucesso antes da execução, usando a função mysqli_prepare() ou a função mysqli_stmt_prepare(), ou ainda passando o segundo argumento para o método mysqli_stmt::__construct().

Se a instrução for UPDATE, DELETE ou INSERT, o número total de linhas afetadas pode ser determinado usando-se a função mysqli_stmt_affected_rows(). Se a consulta retorna um resultado, ele pode ser recebido pela função mysqli_stmt_get_result() ou linha por linha diretamente da instrução usando a função mysqli_stmt_fetch().

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

params

Um array opcional listando tantos elementos quantos forem os parâmetros vinculados na instrução SQL sendo executada. Cada valor é tratado como uma string.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro optional params foi adicionado.

Exemplos

Exemplo #1 Executa a instrução preparada com variáveis vinculadas

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

/* Prepara uma instrução de inserção */
$stmt = $mysqli->prepare("INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)");

/* Vincula variáveis aos parâmetros */
$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Executa a instrução */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Executa a instrução */
$stmt->execute();

/* Recebe todas as linhas da tabela myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
$result = $mysqli->query($query);
while ($row = $result->fetch_row()) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

/* Prepara uma instrução de inserção */
$stmt = mysqli_prepare($link, "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)");

/* Vincula variáveis aos parâmetros */
mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Executa a instrução */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Executa a instrução */
mysqli_stmt_execute($stmt);

/* Recebe todas as linhas da tabela myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_row($result)) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Os exemplos acima produzirão:

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Exemplo #2 Executa uma isntrução preparada com um array de valores

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$mysqli->query('CREATE TEMPORARY TABLE myCity LIKE City');

/* Prepara uma instrução de inserção */
$stmt = $mysqli->prepare('INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)');

/* Executa a instrução */
$stmt->execute(['Stuttgart', 'DEU', 'Baden-Wuerttemberg']);

/* Recebe todas as linhas da tabela myCity */
$query = 'SELECT Name, CountryCode, District FROM myCity';
$result = $mysqli->query($query);
while ($row = $result->fetch_row()) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

mysqli_query($link, 'CREATE TEMPORARY TABLE myCity LIKE City');

/* Prepara uma instrução de inserção */
$stmt = mysqli_prepare($link, 'INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)');

/* Executa a instrução */
mysqli_stmt_execute($stmt, ['Stuttgart', 'DEU', 'Baden-Wuerttemberg']);

/* Recebe todas as linhas da tabela myCity */
$query = 'SELECT Name, CountryCode, District FROM myCity';
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_row($result)) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Os exemplos acima produzirão:

Stuttgart (DEU,Baden-Wuerttemberg)

Veja Também

  • mysqli_execute_query() - Prepara, vincula parâmetros e executa a instrução SQL
  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_stmt_bind_param() - Liga variáveis a uma declaração preparada como parâmetros
  • mysqli_stmt_get_result() - Obtém um resultado de uma instrução preparada como um objeto mysqli_result


Recebe resultados de uma instrução preparada nas variáveis vinculadas

  • « mysqli_stmt::execute
  • mysqli_stmt::$field_count »
  • PHP Manual
  • mysqli_stmt
  • Recebe resultados de uma instrução preparada nas variáveis vinculadas

mysqli_stmt::fetch

mysqli_stmt_fetch

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::fetch -- mysqli_stmt_fetch — Recebe resultados de uma instrução preparada nas variáveis vinculadas

Descrição

Estilo orientado a objetos

public mysqli_stmt::fetch(): ?bool

Estilo procedural

mysqli_stmt_fetch(mysqli_stmt $statement): ?bool

Recebe o resultado de uma instrução preparada nas variáveis vinculadas por mysqli_stmt_bind_result().

Nota:

Observe que todas as colunas precisam estar vinculadas pela aplicação antes de chamar a função mysqli_stmt_fetch().

Nota:

Os dados são transferidos sem buffer quando não se chama a função mysqli_stmt_store_result(), o que pode reduzir o desempenho (mas reduz o consumo de memória).

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Valor Retornado
Valor | Descrição
true | Sucesso. Dados foram recebidos
false | Error occurred
null | Não há mais linhas/dados ou ocorreu um truncamento de dados

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

/* executa a instrução */
$stmt->execute();

/* vincula as variáveis do resultado */
$stmt->bind_result($name, $code);

/* recebe os valores */
while ($stmt->fetch()) {
printf ("%s (%s)\n", $name, $code);
}

/* fecha a instrução */
$stmt->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = mysqli_prepare($link, $query)) {

/* executa a instrução */
mysqli_stmt_execute($stmt);

/* vincula as variáveis do resultado */
mysqli_stmt_bind_result($stmt, $name, $code);

/* recebe os valores */
while (mysqli_stmt_fetch($stmt)) {
printf ("%s (%s)\n", $name, $code);
}

/* fecha a instrução */
mysqli_stmt_close($stmt);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_stmt_errno() - Retorna o código de erro para a chamada de instrução mais recente
  • mysqli_stmt_error() - Retorna uma descrição em string para o último erro de instrução
  • mysqli_stmt_bind_result() - Liga variáveis a uma declaração preparada para armazenamento de resultado


Retorna o número de colunas na instrução informada

  • « mysqli_stmt::fetch
  • mysqli_stmt::free_result »
  • PHP Manual
  • mysqli_stmt
  • Retorna o número de colunas na instrução informada

mysqli_stmt::$field_count

mysqli_stmt_field_count

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$field_count -- mysqli_stmt_field_count — Retorna o número de colunas na instrução informada

Descrição

Estilo orientado a objetos

int $mysqli_stmt->field_count;

Estilo procedural

mysqli_stmt_field_count(mysqli_stmt $statement): int

Retorna o número de colunas na instrução preparada.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Retorna um inteiro que representa o número de colunas.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$code = 'FR';

$stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Code=?");
$stmt->bind_param('s', $code);
$stmt->execute();
$row = $stmt->get_result()->fetch_row();
for ($i = 0; $i < $stmt->field_count; $i++) {
printf("Valor da coluna número %d é %s", $i, $row[$i]);
}

Exemplo #2 Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$code = 'FR';

$stmt = mysqli_prepare($mysqli, "SELECT Name FROM Country WHERE Code=?");
mysqli_stmt_bind_param($stmt, 's', $code);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_fetch_row($result);
for ($i = 0; $i < mysqli_stmt_field_count($stmt); $i++) {
printf("Valor da coluna número %d é %s", $i, $row[$i]);
}

Os exemplos acima produzirão algo semelhante a:

Valor da coluna número 0 é France

Veja Também

  • mysqli_stmt_num_rows() - Retorna o número de linhas recebidas pelo servidor


Libera memória do resultado armazenado para o manipulador de instrução informado

  • « mysqli_stmt::$field_count
  • mysqli_stmt::get_result »
  • PHP Manual
  • mysqli_stmt
  • Libera memória do resultado armazenado para o manipulador de instrução informado

mysqli_stmt::free_result

mysqli_stmt_free_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::free_result -- mysqli_stmt_free_result — Libera memória do resultado armazenado para o manipulador de instrução informado

Descrição

Estilo orientado a objetos

public mysqli_stmt::free_result(): void

Estilo procedural

mysqli_stmt_free_result(mysqli_stmt $statement): void

Libera a memória do resultado associado à instrução, que foi alocada por mysqli_stmt_store_result().

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • mysqli_stmt_store_result() - Armazena um conjunto de resultados em um buffer interno


Obtém um resultado de uma instrução preparada como um objeto mysqli_result

  • « mysqli_stmt::free_result
  • mysqli_stmt::get_warnings »
  • PHP Manual
  • mysqli_stmt
  • Obtém um resultado de uma instrução preparada como um objeto mysqli_result

mysqli_stmt::get_result

mysqli_stmt_get_result

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_stmt::get_result -- mysqli_stmt_get_result — Obtém um resultado de uma instrução preparada como um objeto mysqli_result

Descrição

Estilo orientado a objetos

public mysqli_stmt::get_result(): mysqli_result|false

Estilo procedural

mysqli_stmt_get_result(mysqli_stmt $statement): mysqli_result|false

Recebe um resultado de uma instrução preparada como um objeto mysqli_result. Os dados serão transportados do servidor MySQL para o PHP. Este método deve ser chamado somente para consultas que produzem um conjunto de resultados.

Nota:

Disponível apenas com o mysqlnd.

Nota:

Esta função não pode ser usada junto com a função mysqli_stmt_store_result(). Ambas estas funções recebem o conjunto completo de resultados do servidor MySQL.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Retorna false em caso de falha. Para consultas bem sucedidas que produzem um resultado, como SELECT, SHOW, DESCRIBE ou EXPLAIN, mysqli_stmt_get_result() retornará um objeto mysqli_result. Para outras consultas bem sucedidas, mysqli_stmt_get_result() retornará false. A função mysqli_stmt_errno() pode ser usada para distinguir entre os dois motivos para false; devido a um problema de software, antes do PHP 7.4.13, mysqli_errno() tinha de ser usada para este propósito.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $continent);

$continentList = array('Europe', 'Africa', 'Asia', 'North America');

foreach ($continentList as $continent) {
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_NUM)) {
foreach ($row as $r) {
print "$r ";
}
print "\n";
}
}

Exemplo #2 Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = mysqli_prepare($link, $query);
mysqli_stmt_bind_param($stmt, "s", $continent);

$continentList= array('Europe', 'Africa', 'Asia', 'North America');

foreach ($continentList as $continent) {
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
foreach ($row as $r) {
print "$r ";
}
print "\n";
}
}

Os exemplos acima produzirão algo semelhante a:

Albania 3401200 Europe
Algeria 31471000 Africa
Afghanistan 22720000 Asia
Anguilla 8000 North America

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_stmt_result_metadata() - Retorna os metadados de resultado de uma instrução preparada
  • mysqli_stmt_fetch() - Recebe resultados de uma instrução preparada nas variáveis vinculadas
  • mysqli_fetch_array() - Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
  • mysqli_stmt_store_result() - Armazena um conjunto de resultados em um buffer interno


Obtém o resultado de SHOW WARNINGS

  • « mysqli_stmt::get_result
  • mysqli_stmt::$insert_id »
  • PHP Manual
  • mysqli_stmt
  • Obtém o resultado de SHOW WARNINGS

mysqli_stmt::get_warnings

mysqli_stmt_get_warnings

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

mysqli_stmt::get_warnings -- mysqli_stmt_get_warnings — Obtém o resultado de SHOW WARNINGS

Descrição

Estilo orientado a objetos

public mysqli_stmt::get_warnings(): mysqli_warning|false

Estilo procedural

mysqli_stmt_get_warnings(mysqli_stmt $statement): mysqli_warning|false
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Obtém o ID gerado pela operação INSERT anterior

  • « mysqli_stmt::get_warnings
  • mysqli_stmt::more_results »
  • PHP Manual
  • mysqli_stmt
  • Obtém o ID gerado pela operação INSERT anterior

mysqli_stmt::$insert_id

mysqli_stmt_insert_id

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$insert_id -- mysqli_stmt_insert_id — Obtém o ID gerado pela operação INSERT anterior

Descrição

Estilo orientado a objetos

int|string $mysqli_stmt->insert_id;

Estilo procedural

mysqli_stmt_insert_id(mysqli_stmt $statement): int|string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Verifica se há mais resultados de uma consulta múltipla

  • « mysqli_stmt::$insert_id
  • mysqli_stmt::next_result »
  • PHP Manual
  • mysqli_stmt
  • Verifica se há mais resultados de uma consulta múltipla

mysqli_stmt::more_results

mysqli_stmt_more_results

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_stmt::more_results -- mysqli_stmt_more_results — Verifica se há mais resultados de uma consulta múltipla

Descrição

Estilo orientado a objetos

public mysqli_stmt::more_results(): bool

Estilo procedural:

mysqli_stmt_more_results(mysqli_stmt $statement): bool

Verifica se há mais resultados de uma consulta múltipla.

Nota:

Disponível apenas com o mysqlnd.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Retorna true se houver mais resultados, caso contrário retorna false.

Veja Também

  • mysqli_stmt::next_result() - Lê o próximo resultado de uma consulta múltipla
  • mysqli::multi_query() - Executa uma ou mais consultas no banco de dados


Lê o próximo resultado de uma consulta múltipla

  • « mysqli_stmt::more_results
  • mysqli_stmt::$num_rows »
  • PHP Manual
  • mysqli_stmt
  • Lê o próximo resultado de uma consulta múltipla

mysqli_stmt::next_result

mysqli_stmt_next_result

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_stmt::next_result -- mysqli_stmt_next_result — Lê o próximo resultado de uma consulta múltipla

Descrição

Estilo orientado a objetos

public mysqli_stmt::next_result(): bool

Estilo procedural:

mysqli_stmt_next_result(mysqli_stmt $statement): bool

Lê o próximo resultado de uma consulta múltipla.

Nota:

Antes do PHP 8.1.0, disponível somente com mysqlnd.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Registro de Alterações

Versão | Descrição
8.1.0 | Agora também disponível com a biblioteca libmysqlclient.

Veja Também

  • mysqli_stmt::more_results() - Verifica se há mais resultados de uma consulta múltipla
  • mysqli::multi_query() - Executa uma ou mais consultas no banco de dados


Retorna o número de linhas recebidas pelo servidor

  • « mysqli_stmt::next_result
  • mysqli_stmt::$param_count »
  • PHP Manual
  • mysqli_stmt
  • Retorna o número de linhas recebidas pelo servidor

mysqli_stmt::$num_rows

mysqli_stmt::num_rows

mysqli_stmt_num_rows

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$num_rows -- mysqli_stmt::num_rows -- mysqli_stmt_num_rows — Retorna o número de linhas recebidas pelo servidor

Descrição

Estilo orientado a objetos

int|string $mysqli_stmt->num_rows;
public mysqli_stmt::num_rows(): int|string

Estilo procedural

mysqli_stmt_num_rows(mysqli_stmt $statement): int|string

Retorna o número de linhas em buffer na instrução. Esta função somente funcionará depois que mysqli_stmt_store_result() for chamara para fazer buffer do conjunto inteiro de resultados no manipulador da instrução.

Esta função retorna 0 a menos que todas as linhas tenham sido recebidas do servidor.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Um int que representa o número de linhas em buffer. Retorna 0 em modo sem buffer a menos que todas as linhas tenham sido recebidas do servidor.

Nota:

Se o número de linhas for maior que PHP_INT_MAX, o número será retornado como uma string.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = $mysqli->prepare($query);
$stmt->execute();

/* armazena o resultado em um buffer interno */
$stmt->store_result();

printf("Número de linhas: %d.\n", $stmt->num_rows);

Exemplo #2 Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_execute($stmt);

/* armazena o resultado em um buffer interno */
mysqli_stmt_store_result($stmt);

printf("Número de linhas: %d.\n", mysqli_stmt_num_rows($stmt));

Os exemplos acima produzirão:

Número de linhas: 20.

Veja Também

  • mysqli_stmt_store_result() - Armazena um conjunto de resultados em um buffer interno
  • mysqli_stmt_affected_rows() - Retorna o número total de linhas modificadas, apagadas, inseridas ou correspondidas pela última instrução executada
  • mysqli_prepare() - Prepara uma instrução SQL para execução


Retorna o número de parâmetros para uma instrução fornecida

  • « mysqli_stmt::$num_rows
  • mysqli_stmt::prepare »
  • PHP Manual
  • mysqli_stmt
  • Retorna o número de parâmetros para uma instrução fornecida

mysqli_stmt::$param_count

mysqli_stmt_param_count

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$param_count -- mysqli_stmt_param_count — Retorna o número de parâmetros para uma instrução fornecida

Descrição

Estilo orientado a objetos

int $mysqli_stmt->param_count;

Estilo procedural

mysqli_stmt_param_count(mysqli_stmt $statement): int

Retorna o número de marcadores de parâmetros presentes na instrução preparada.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Retorna um inteiro que representa o número de parâmetros.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

$marker = $stmt->param_count;
printf("Instrução tem %d marcadores.\n", $marker);

/* fecha a instrução */
$stmt->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

if ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {

$marker = mysqli_stmt_param_count($stmt);
printf("Instrução tem %d marcadores.\n", $marker);

/* fecha a instrução */
mysqli_stmt_close($stmt);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Instrução tem 2 marcadores.

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução


Prepara uma declaração SQL para execução

  • « mysqli_stmt::$param_count
  • mysqli_stmt::reset »
  • PHP Manual
  • mysqli_stmt
  • Prepara uma declaração SQL para execução

mysqli_stmt::prepare

mysqli_stmt_prepare

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::prepare -- mysqli_stmt_prepare — Prepara uma declaração SQL para execução

Descrição

Estilo orientado a objetos

public mysqli_stmt::prepare(string $query): bool

Estilo procedural

mysqli_stmt_prepare(mysqli_stmt $statement, string $query): bool

Prepara uma declaração para execução. A consulta deve consistir de uma única declaração SQL.

O modelo de declaração pode conter zero ou mais marcadores de parâmetro que são os pontos de interrogação (?), também chamados de espaços reservados. Os marcadores de parâmetros devem ser ligados às variáveis da aplicação usando mysqli_stmt_bind_param() antes da execução da declaração.

Nota:

No caso de uma declaração passada a mysqli_stmt_prepare() ser mais longa que o parâmetro max_allowed_packet do servidor, os códigos de erro retornados serão diferentes dependendo se está sendo utilizando o driver nativo MySQL (mysqlnd) ou a biblioteca cliente do MySQL (libmysqlclient). O comportamento é o seguinte:

  • mysqlnd no Linux retorna o código de erro 1153. A mensagem de erro diz got a packet bigger than (recebido pacote maior que) max_allowed_packet bytes.

  • mysqlnd no Windos retorna o código de erro 2006. Esta mensagem de erro diz server has gone away (servidor se foi).

  • libmysqlclient em todas as plataformas a retorna o código de erro 2006. Esta mensagem de erro diz server has gone away (servidor se foi).

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

query

A consulta, como uma string. Deve consistir de uma única declaração SQL.

A declaração SQL pode conter zero ou mais marcadores de parâmetros representados por caracteres de ponto de interrogação (?) nas posições apropriadas.

Nota:

Os marcadores são permitidos somente em alguns lugares das declarações SQL. Por exemplo, eles são permitidos na lista VALUES() de Uma declaração INSERT (para especificar valores de colunas para uma linha), ou em uma comparação com uma coluna em uma cláusula WHERE para especificar um valor de comparação. Entretanto, não são permitidos para identificadores (como tabelas ou nomes de colunas).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Exemplo de mysqli_stmt::prepare()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* cria uma declaração preparada */
$stmt = $mysqli->stmt_init();
$stmt->prepare("SELECT District FROM City WHERE Name=?");

/* liga parâmetros para os marcadores */
$stmt->bind_param("s", $city);

/* executa a consulta */
$stmt->execute();

/* liga o resultado à variável */
$stmt->bind_result($district);

/* obtém o valor */
$stmt->fetch();

printf("%s está no distrito %s\n", $city, $district);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* cria uma declaração preparada */
$stmt = mysqli_stmt_init($link);
mysqli_stmt_prepare($stmt, "SELECT District FROM City WHERE Name=?");

/* liga parâmetros para os marcadores */
mysqli_stmt_bind_param($stmt, "s", $city);

/* executa a consulta */
mysqli_stmt_execute($stmt);

/* liga o resultado à variável */
mysqli_stmt_bind_result($stmt, $district);

/* obtém o valor */
mysqli_stmt_fetch($stmt);

printf("%s está no distrito %s\n", $city, $district);

Os exemplos acima produzirão:

Amersfoort está no distrito Utrecht

Veja Também

  • mysqli_stmt_init() - Inicializa uma instrução e retorna um objeto para uso com mysqli_stmt_prepare
  • mysqli_stmt_execute() - Executa uma instrução preparada
  • mysqli_stmt_fetch() - Recebe resultados de uma instrução preparada nas variáveis vinculadas
  • mysqli_stmt_bind_param() - Liga variáveis a uma declaração preparada como parâmetros
  • mysqli_stmt_bind_result() - Liga variáveis a uma declaração preparada para armazenamento de resultado
  • mysqli_stmt_get_result() - Obtém um resultado de uma instrução preparada como um objeto mysqli_result
  • mysqli_stmt_close() - Fecha uma instrução preparada


Redefine uma instrução preparada

  • « mysqli_stmt::prepare
  • mysqli_stmt::result_metadata »
  • PHP Manual
  • mysqli_stmt
  • Redefine uma instrução preparada

mysqli_stmt::reset

mysqli_stmt_reset

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::reset -- mysqli_stmt_reset — Redefine uma instrução preparada

Descrição

Estilo orientado a objetos

public mysqli_stmt::reset(): bool

Estilo procedural

mysqli_stmt_reset(mysqli_stmt $statement): bool

Redefine uma instrução preparada no cliente e no servidor para um estado pós-preparação.

A função redefine a instrução no servidor, os dados enviados por mysqli_stmt_send_long_data(), os resultados sem buffer e os erros atuais. Ela não limpa vinculações de variáveis ou resultados armazenados. Resultados armazenados serão limpos ao executar a instrução preparada (ou ao fechá-la).

Para preparar uma instrução com outra consulta, utilize a função mysqli_stmt_prepare().

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução


Retorna os metadados de resultado de uma instrução preparada

  • « mysqli_stmt::reset
  • mysqli_stmt::send_long_data »
  • PHP Manual
  • mysqli_stmt
  • Retorna os metadados de resultado de uma instrução preparada

mysqli_stmt::result_metadata

mysqli_stmt_result_metadata

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::result_metadata -- mysqli_stmt_result_metadata — Retorna os metadados de resultado de uma instrução preparada

Descrição

Estilo orientado a objetos

public mysqli_stmt::result_metadata(): mysqli_result|false

Estilo procedural

mysqli_stmt_result_metadata(mysqli_stmt $statement): mysqli_result|false

Se uma instrução passada a mysqli_prepare() for do tipo que produz um conjunto de resultados, mysqli_stmt_result_metadata() retornará o objeto de resultado que pode ser usado para processar a meta informação como o número total de campos e informações individual dos campos.

Nota:

Este ponteiro de conjunto de resultados pode ser passado como argumento para qualquer das funções baseadas em campo que processam metadados de resultados, como:

  • mysqli_num_fields()

  • mysqli_fetch_field()

  • mysqli_fetch_field_direct()

  • mysqli_fetch_fields()

  • mysqli_field_count()

  • mysqli_field_seek()

  • mysqli_field_tell()

  • mysqli_free_result()

A estrutura do resultado deve ser liberada da memória quando seu uso tiver sido concluído, o que pode ser feito passando-a para a função mysqli_free_result()

Nota:

O resultado retornado por mysqli_stmt_result_metadata() contém somente metadados. Não contém nenhum resultado de registros do banco. Os registros são obtidos usando-se o manipulador da instrução com a função mysqli_stmt_fetch().

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Retorna um objeto de resultado ou false se um erro ocorrer.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query("DROP TABLE IF EXISTS friends");
$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = $mysqli->prepare("SELECT id, name FROM friends");
$stmt->execute();

/* obtém o resultado de metadados */
$result = $stmt->result_metadata();

/* obtém informação do campo a partir do resultado de metadados */
$field = $result->fetch_field();

printf("Nome do campo: %s\n", $field->name);

/* fecha o resultado */
$result->close();

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = mysqli_prepare($link, "SELECT id, name FROM friends");
mysqli_stmt_execute($stmt);

/* obtém o resultado de metadados */
$result = mysqli_stmt_result_metadata($stmt);

/* obtém informação do campo a partir do resultado de metadados */
$field = mysqli_fetch_field($result);

printf("Nome do campo: %s\n", $field->name);

/* fecha o resultado */
mysqli_free_result($result);

/* fecha a conexão */
mysqli_close($link);
?>

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_free_result() - Libera memória associada a um resultado


Envia dados em blocos

  • « mysqli_stmt::result_metadata
  • mysqli_stmt::$sqlstate »
  • PHP Manual
  • mysqli_stmt
  • Envia dados em blocos

mysqli_stmt::send_long_data

mysqli_stmt_send_long_data

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_data — Envia dados em blocos

Descrição

Estilo orientado a objetos

public mysqli_stmt::send_long_data(int $param_num, string $data): bool

Estilo procedural

mysqli_stmt_send_long_data(mysqli_stmt $statement, int $param_num, string $data): bool

Permite enviar dados de parâmetros ao servidor em pedaços (ou blocos), por exemplo, se o tamanho de um BLOB exceder o tamanho de max_allowed_packet. Esta função pode ser chamada múltiplas vezes para enviar as partes de um valor de dados binários ou de caracteres para uma coluna, que precisa ser do tipo TEXT ou BLOB.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

param_num

Indica a qual parâmetro os dados serão associados. Parêmetros são numerados a partir de 0.

data

Uma string contendo os dados que devem ser enviados.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$stmt = $mysqli->prepare("INSERT INTO messages (message) VALUES (?)");
$null = NULL;
$stmt->bind_param("b", $null);
$fp = fopen("messages.txt", "r");
while (!feof($fp)) {
$stmt->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
$stmt->execute();
?>

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_stmt_bind_param() - Liga variáveis a uma declaração preparada como parâmetros


Retorna o erro SQLSTATE da operação da instrução anterior

  • « mysqli_stmt::send_long_data
  • mysqli_stmt::store_result »
  • PHP Manual
  • mysqli_stmt
  • Retorna o erro SQLSTATE da operação da instrução anterior

mysqli_stmt::$sqlstate

mysqli_stmt_sqlstate

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate — Retorna o erro SQLSTATE da operação da instrução anterior

Descrição

Estilo orientado a objetos

string $mysqli_stmt->sqlstate;

Estilo procedural

mysqli_stmt_sqlstate(mysqli_stmt $statement): string

Retorna uma string contento o código de erro SQLSTATE para a função de instrução preparada mais recentemente chamada, que possa ter sucesso ou falhar. O código de erro consiste de cinco caracteres. '00000' significa que não houve erro. Os valores são especificados pela ANSI SQL e pela ODBC. Para uma lista de valores possíveis, consulte » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Retorna uma string contendo o código de erro SQLSTATE para o último erro. O código de erro consiste de cinco caracteres. '00000' significa que não houve erro.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
/* abre uma conexão */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

/* apaga a tabela */
$mysqli->query("DROP TABLE myCountry");

/* executa a instrução */
$stmt->execute();

printf("Erro: %s.\n", $stmt->sqlstate);

/* fecha a instrução */
$stmt->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
/* abre uma conexão */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

/* apaga a tabela */
mysqli_query($link, "DROP TABLE myCountry");

/* executa a instrução */
mysqli_stmt_execute($stmt);

printf("Error: %s.\n", mysqli_stmt_sqlstate($stmt));

/* fecha a instrução */
mysqli_stmt_close($stmt);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Erro: 42S02.

Notas

Nota:

Observe que nem todos os erros do MySQL são mapeados para erros SQLSTATE. O valor HY000 (erro geral) é usado para erros não mapeados.

Veja Também

  • mysqli_stmt_errno() - Retorna o código de erro para a chamada de instrução mais recente
  • mysqli_stmt_error() - Retorna uma descrição em string para o último erro de instrução


Armazena um conjunto de resultados em um buffer interno

  • « mysqli_stmt::$sqlstate
  • mysqli_result »
  • PHP Manual
  • mysqli_stmt
  • Armazena um conjunto de resultados em um buffer interno

mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::store_result -- mysqli_stmt_store_result — Armazena um conjunto de resultados em um buffer interno

Descrição

Estilo orientado a objetos

public mysqli_stmt::store_result(): bool

Estilo procedural

mysqli_stmt_store_result(mysqli_stmt $statement): bool

Esta função deve ser chamada, para consultas que produzem com sucesso um conjunto de resultados (ex.: SELECT, SHOW, DESCRIBE, EXPLAIN), seomente se o resultado completo precisa ser mantido em buffer no PHP. Cada chamada subsequente a mysqli_stmt_fetch() retornará dados em buffer.

Nota:

É desnecessário chamar mysqli_stmt_store_result() para outras conultas, mas se isto for feito, não irá causar dano ou qualquer perda notável de desempenho em qualquer caso. Pode-se detectar se a consulta produziu resultado verificando se a função mysqli_stmt_result_metadata() retorna false.

Parâmetros

statement

Somente no estilo procedural: Um objeto mysqli_stmt retornado por mysqli_stmt_init().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = $mysqli->prepare($query);
$stmt->execute();

/* armazena o resultado em um buffer interno */
$stmt->store_result();

printf("Número de linhas: %d.\n", $stmt->num_rows);

Exemplo #2 Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_execute($stmt);

/* armazena o resultado em um buffer interno */
mysqli_stmt_store_result($stmt);

printf("Número de linhas: %d.\n", mysqli_stmt_num_rows($stmt));

Os exemplos acima produzirão:

Número de linhas: 20.

Veja Também

  • mysqli_prepare() - Prepara uma instrução SQL para execução
  • mysqli_stmt_result_metadata() - Retorna os metadados de resultado de uma instrução preparada
  • mysqli_stmt_fetch() - Recebe resultados de uma instrução preparada nas variáveis vinculadas


A classe mysqli_result

(PHP 5, PHP 7, PHP 8)

Introdução

Representa o conjunto de resultados da consulta feita ao banco de dados.

Resumo da classe

class mysqli_result implements IteratorAggregate {
/* Propriedades */
public readonly int $current_field;
public readonly int $field_count;
public readonly ?array $lengths;
public readonly int|string $num_rows;
public int $type;
/* Métodos */
public __construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT)
public data_seek(int $offset): bool
public fetch_all(int $mode = MYSQLI_NUM): array
public fetch_array(int $mode = MYSQLI_BOTH): array|null|false
public fetch_assoc(): array|null|false
public fetch_column(int $column = 0): null|int|float|string|false
public fetch_field_direct(int $index): object|false
public fetch_field(): object|false
public fetch_fields(): array
public fetch_object(string $class = "stdClass", array $constructor_args = []): object|null|false
public fetch_row(): array|null|false
public field_seek(int $index): true
public free(): void
public close(): void
public free_result(): void
public getIterator(): Iterator
}

Propriedades

type

Armazena informação se o o resultado é com ou sem buffer, como um int (MYSQLI_STORE_RESULT ou MYSQLI_USE_RESULT, respectivamente).

Registro de Alterações

Versão | Descrição
8.0.0 | mysqli_result agora implementa IteratorAggregate. Anteriormente, Traversable era implementado.

Índice

  • mysqli_result::__construct — Constrói um objeto mysqli_result
  • mysqli_result::$current_field — Obtém o deslocamento atual de campo de um ponteiro de resultado
  • mysqli_result::data_seek — Ajusta o ponteiro do resultado para uma linha arbritária no resultado
  • mysqli_result::fetch_all — Recebe todas as linhas de resultado como array associativo, numérico, ou ambos
  • mysqli_result::fetch_array — Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
  • mysqli_result::fetch_assoc — Obtém a próxima linha do conjunto de resultados como um array associativo
  • mysqli_result::fetch_column — Recebe uma única coluna da próxima linha de um resultado
  • mysqli_result::fetch_field_direct — Recebe metadados para um único campo
  • mysqli_result::fetch_field — Retorna o próximo campo no conjunto de resultados
  • mysqli_result::fetch_fields — Retorna um array de objetos representando os campos em um conjunto de resultados
  • mysqli_result::fetch_object — Recebe a próxima linha de um resultado como um objeto
  • mysqli_result::fetch_row — Obtém a próxima linha de um resultado como um array enumerado
  • mysqli_result::$field_count — Obtém o número de campos no conjunto de resultados
  • mysqli_result::field_seek — Move o ponteiro do resultado para um campo especificado
  • mysqli_result::free — Libera memória associada a um resultado
  • mysqli_result::getIterator — Obtém um iterador externo
  • mysqli_result::$lengths — Retorna os comprimentos das colunas da linha atual do resultado
  • mysqli_result::$num_rows — Obtém o número de linhas no resultado


Constrói um objeto mysqli_result

  • « mysqli_result
  • mysqli_result::$current_field »
  • PHP Manual
  • mysqli_result
  • Constrói um objeto mysqli_result

mysqli_result::__construct

(PHP 5, PHP 7, PHP 8)

mysqli_result::__construct — Constrói um objeto mysqli_result

Descrição

public mysqli_result::__construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT)

Este método constrói um novo objeto mysqli_result.

Pode ser usado para criar o objeto mysqli_result após a chamada à função mysqli_real_query() ou mysqli_multi_query(). Construir o objeto manualmente é equivalente a chamar a função mysqli_store_result() ou mysqli_use_result().

Parâmetros

mysql

Somente no estilo procedural: Um objeto mysqli retornado por mysqli_connect() ou mysqli_init()

result_mode

O modo de resultado pode ser uma de 2 constantes que indicam como o resultado será retornado do servidor MySQL.

MYSQLI_STORE_RESULT (padrão) - cria um objeto mysqli_result com resultado em buffer.

MYSQLI_USE_RESULT - cria um objetomysqli_result com resultado sem buffer. Enquanto houver registros pendentes esperando ser recebidos, a linha de conexão estará ocupada e todas as chamadas subsequentes retornarão o erro Commands out of sync (comandos fora de sincronismo). Para evitar o erro, todos os registros devem ser recebidos do servidor ou o resultado deve ser descartado através da função mysqli_free_result(). A conexão precisa permanecer aberta para que as linhas sejam recebidas.

Erros/Exceções

Se o relatório de erros da extensão mysqli estiver habilitado (MYSQLI_REPORT_ERROR) e a operação solicitada falhar, um aviso será gerado. Se, além disso, o modo for definido como MYSQLI_REPORT_STRICT, uma exceção mysqli_sql_exception será lançada em vez do aviso.

Exemplos

Exemplo #1 Criação de um objeto mysqli_result

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Consultas SELECT retornam um resultado */
$mysqli->real_query("SELECT Name FROM City LIMIT 10");

$result = new mysqli_result($mysqli);
printf("SELECT retornou %d linhas.\n", $result->num_rows);

Os exemplos acima produzirão algo semelhante a:

SELECT retornou 10 linhas.

Veja Também

  • mysqli_multi_query() - Executa uma ou mais consultas no banco de dados
  • mysqli_real_query() - Executa uma consulta SQL
  • mysqli_store_result() - Transfere um conjunto de resultados da última consulta
  • mysqli_use_result() - Iniciar uma recuperação de conjunto de resultados


Obtém o deslocamento atual de campo de um ponteiro de resultado

  • « mysqli_result::__construct
  • mysqli_result::data_seek »
  • PHP Manual
  • mysqli_result
  • Obtém o deslocamento atual de campo de um ponteiro de resultado

mysqli_result::$current_field

mysqli_field_tell

(PHP 5, PHP 7, PHP 8)

mysqli_result::$current_field -- mysqli_field_tell — Obtém o deslocamento atual de campo de um ponteiro de resultado

Descrição

Estilo orientado a objetos

int $mysqli_result->current_field;

Estilo procedural

mysqli_field_tell(mysqli_result $result): int

Retorna a posição do cursor de campo usado na última chamada a mysqli_fetch_field(). Este valor pode ser usado como um argumento para mysqli_field_seek().

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

Valor Retornado

Retorna o deslocamento atual do cursor de campos.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

/* Obtém informação de campo para todas as colunas */
while ($finfo = $result->fetch_field()) {

/* obtém o deslocamento do ponteiro de campos */
$currentfield = $result->current_field;

printf("Column %d:\n", $currentfield);
printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);
}
$result->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

/* Obtém informação de campo para todas as colunas */
while ($finfo = mysqli_fetch_field($result)) {

/* obtém o deslocamento do ponteiro de campos */
$currentfield = mysqli_field_tell($result);

printf("Column %d:\n", $currentfield);
printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);
}
mysqli_free_result($result);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Column 1:
Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Column 2:
Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Veja Também

  • mysqli_fetch_field() - Retorna o próximo campo no conjunto de resultados
  • mysqli_field_seek() - Move o ponteiro do resultado para um campo especificado


Ajusta o ponteiro do resultado para uma linha arbritária no resultado

  • « mysqli_result::$current_field
  • mysqli_result::fetch_all »
  • PHP Manual
  • mysqli_result
  • Ajusta o ponteiro do resultado para uma linha arbritária no resultado

mysqli_result::data_seek

mysqli_data_seek

(PHP 5, PHP 7, PHP 8)

mysqli_result::data_seek -- mysqli_data_seek — Ajusta o ponteiro do resultado para uma linha arbritária no resultado

Descrição

Estilo orientado a objetos

public mysqli_result::data_seek(int $offset): bool

Estilo procedural

mysqli_data_seek(mysqli_result $result, int $offset): bool

A função mysqli_data_seek() move o ponteiro para uma posição arbritrária especificada pelo parâmetro offset no conjunto de resultados.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

offset

O deslocamento de linha. deve estar entre zero e o número total de linhas menos uma (0..mysqli_num_rows() - 1).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 mysqli::data_seek() example

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$result = $mysqli->query($query);

/* Vai até a linha 401 */
$result->data_seek(400);

/* Recebe uma única linha */
$row = $result->fetch_row();

printf("City: %s Countrycode: %s\n", $row[0], $row[1]);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

$result = mysqli_query($link, $query);

/* Vai até a linha 401 */
mysqli_data_seek($result, 400);

/* Recebe uma única linha */
$row = mysqli_fetch_row($result);

printf ("City: %s Countrycode: %s\n", $row[0], $row[1]);

Os exemplos acima produzirão:

City: Benin City  Countrycode: NGA

Exemplo #2 Ajustando o ponteiro de resultado na iteração

Esta função pode ser útil qo iterar sobre o conjunto de resultados para impor uma ordem customizada ou para retroceder o conjunto de resultados ao iterar múltiplas vezes.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 15,4";
$result = $mysqli->query($query);

/* Itera o conjunto de resultados na ordem inversa */
for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);

/* Recebe uma linha */
$row = $result->fetch_row();

printf("City: %s Countrycode: %s\n", $row[0], $row[1]);
}

/* Redefine o ponteito para o início do conjunto de resultados */
$result->data_seek(0);

print "\n";

/* Itera o mesmo conjunto novamente */
while ($row = $result->fetch_row()) {
printf("City: %s Countrycode: %s\n", $row[0], $row[1]);
}

Os exemplos acima produzirão:

City: Acmbaro  Countrycode: MEX
City: Abuja  Countrycode: NGA
City: Abu Dhabi  Countrycode: ARE
City: Abottabad  Countrycode: PAK

City: Abottabad  Countrycode: PAK
City: Abu Dhabi  Countrycode: ARE
City: Abuja  Countrycode: NGA
City: Acmbaro  Countrycode: MEX

Notas

Nota:

Esta função somente pode ser usada com resultados em buffer obtidos do uso das funções mysqli_store_result(), mysqli_query() ou mysqli_stmt_get_result().

Veja Também

  • mysqli_store_result() - Transfere um conjunto de resultados da última consulta
  • mysqli_fetch_row() - Obtém a próxima linha de um resultado como um array enumerado
  • mysqli_fetch_array() - Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
  • mysqli_fetch_assoc() - Obtém a próxima linha do conjunto de resultados como um array associativo
  • mysqli_fetch_object() - Recebe a próxima linha de um resultado como um objeto
  • mysqli_query() - Executa uma consulta no banco de dados
  • mysqli_num_rows() - Obtém o número de linhas no resultado


Recebe todas as linhas de resultado como array associativo, numérico, ou ambos

  • « mysqli_result::data_seek
  • mysqli_result::fetch_array »
  • PHP Manual
  • mysqli_result
  • Recebe todas as linhas de resultado como array associativo, numérico, ou ambos

mysqli_result::fetch_all

mysqli_fetch_all

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_result::fetch_all -- mysqli_fetch_all — Recebe todas as linhas de resultado como array associativo, numérico, ou ambos

Descrição

Estilo orientado a objetos

public mysqli_result::fetch_all(int $mode = MYSQLI_NUM): array

Estilo procedural

mysqli_fetch_all(mysqli_result $result, int $mode = MYSQLI_NUM): array

Retorna um array bidimensional com todas as linhas do resultado como um array associativo, numérico, ou ambos.

Nota:

Antes do PHP 8.1.0, disponível somente com mysqlnd.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

mode

Este parâmetro opcional é uma constante que indica que tipo de array deve ser produzido a partir dos dados da linha atual. Os valores possíveis para este parâmetro são as constantes MYSQLI_ASSOC, MYSQLI_NUM ou MYSQLI_BOTH.

Valor Retornado

Retorna um array de arrays associativos ou numéricos com as linhas do resultado.

Registro de Alterações

Versão | Descrição
8.1.0 | Agora também disponível com a biblioteca libmysqlclient.

Exemplos

Exemplo #1 Exemplo de mysqli_result::fetch_all()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

$rows = $result->fetch_all(MYSQLI_ASSOC);
foreach ($rows as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($mysqli, "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
foreach ($rows as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Os exemplos acima produzirão:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Veja Também

  • mysqli_fetch_array() - Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
  • mysqli_fetch_column() - Recebe uma única coluna da próxima linha de um resultado
  • mysqli_query() - Executa uma consulta no banco de dados


Recebe a próxima linha de resultado como array associativo, numérico, ou ambos

  • « mysqli_result::fetch_all
  • mysqli_result::fetch_assoc »
  • PHP Manual
  • mysqli_result
  • Recebe a próxima linha de resultado como array associativo, numérico, ou ambos

mysqli_result::fetch_array

mysqli_fetch_array

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_array -- mysqli_fetch_array — Recebe a próxima linha de resultado como array associativo, numérico, ou ambos

Descrição

Estilo orientado a objetos

public mysqli_result::fetch_array(int $mode = MYSQLI_BOTH): array|null|false

Estilo procedural

mysqli_fetch_array(mysqli_result $result, int $mode = MYSQLI_BOTH): array|null|false

Recebe uma linha de dados do conjunto de resultados e retorna-a como um array. Cada chamada subsequente a esta função retornará a linha seguinte dentro do conjunto de resultados, ou null se não houver mais linhas.

Além de armazenar os dados nos índices numéricos do array resultante, esta função também pode armazenar os dados em índices associativos usando os nomes dos campos do conjunto de resultados como chaves.

Se duas ou mais colunas do resultado tiverem o mesmo nome, a última coluna terá precedência e irá sobrescrever os dados anteriores. Para acessar múltiplas colunas com o mesmo nome, deve ser usada a versão da linha indexada numericamente.

Nota: Os nomes de campos retornados por esta função diferenciam maiúsculas e minúsculas.

Nota: Esta função define campos NULL como o valor null do PHP.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

mode

O segundo arqumento é uma constante que indica qual tipo de array deve ser produzido a partir dos dados da linha atual. Os valores possíveis para este parâmetro são as constantes MYSQLI_ASSOC, MYSQLI_NUM ou MYSQLI_BOTH.

Ao usar a constante MYSQLI_ASSOC, esta função irá se comportar de modo idêntico à função mysqli_fetch_assoc(), enquanyo MYSQLI_NUM irá se comportar de modo idêntico à função mysqli_fetch_row(). A opção final MYSQLI_BOTH irá criar um único array com os atributos de ambas.

Valor Retornado

Retorna um array que representa a linha recebida, null se não houver mais linhas no resultado, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de mysqli_result::fetch_array()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3";
$result = $mysqli->query($query);

/* array com índice numérico */
$row = $result->fetch_array(MYSQLI_NUM);
printf("%s (%s)\n", $row[0], $row[1]);

/* array associativo */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* array com índice numérico e associativo */
$row = $result->fetch_array(MYSQLI_BOTH);
printf("%s (%s)\n", $row[0], $row["CountryCode"]);

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($mysqli, $query);

/* array com índice numérico */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf("%s (%s)\n", $row[0], $row[1]);

/* array associativo */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* array com índice numérico e associativo */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf("%s (%s)\n", $row[0], $row["CountryCode"]);

Os exemplos acima produzirão algo semelhante a:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Veja Também

  • mysqli_fetch_assoc() - Obtém a próxima linha do conjunto de resultados como um array associativo
  • mysqli_fetch_column() - Recebe uma única coluna da próxima linha de um resultado
  • mysqli_fetch_row() - Obtém a próxima linha de um resultado como um array enumerado
  • mysqli_fetch_object() - Recebe a próxima linha de um resultado como um objeto
  • mysqli_query() - Executa uma consulta no banco de dados
  • mysqli_data_seek() - Ajusta o ponteiro do resultado para uma linha arbritária no resultado


Obtém a próxima linha do conjunto de resultados como um array associativo

  • « mysqli_result::fetch_array
  • mysqli_result::fetch_column »
  • PHP Manual
  • mysqli_result
  • Obtém a próxima linha do conjunto de resultados como um array associativo

mysqli_result::fetch_assoc

mysqli_fetch_assoc

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Obtém a próxima linha do conjunto de resultados como um array associativo

Descrição

Estilo orientado a objetos

public mysqli_result::fetch_assoc(): array|null|false

Estilo procedural

mysqli_fetch_assoc(mysqli_result $result): array|null|false

Obtém uma linha de dados do conjunto de resultados e retorna-o como um array associativo. Cada chamada subsequente desta função retornará a linha seguinte do conjunto de resultados, ou null se não houver mais linhas.

Se duas ou mais colunas do resultado tiverem o mesmo nome, a última coluna terá precedência e irá sobrescrever qualquer dado anterior. Para acessar múltiplas colunas com o mesmo nome, mysqli_fetch_row() pode ser usada para obter o array indexado numericamente, ou apelidos podem ser usados na lista de seleção da consulta SQL para dar nomes diferentes às colunas.

Nota: Os nomes de campos retornados por esta função diferenciam maiúsculas e minúsculas.

Nota: Esta função define campos NULL como o valor null do PHP.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

Valor Retornado

Retorna um array associativo que representa a linha obtida, onde cada chave no array representa o nome de uma das colunas do conjunto de resultados; null se não houver mais linhas no conjunto de resultados, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de mysqli_result::fetch_assoc()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* obtém o array associativo */
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($mysqli, $query);

/* obtém o array associativo */
while ($row = mysqli_fetch_assoc($result)) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Os exemplos acima produzirão algo semelhante a:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Exemplo #2 Comparação de mysqli_result iterator e uso de mysqli_result::fetch_assoc()

mysqli_result pode ser iterada usando-se foreach. O conjunto de resultados será iterado sempre a partir da primeira linha, independente da posição atual do ponteiro.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = 'SELECT Name, CountryCode FROM City ORDER BY ID DESC';

// Usando iterardores
$result = $mysqli->query($query);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

echo "\n==================\n";

// Não usando iteradores
$result = $mysqli->query($query);
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

O exemplo acima produzirá algo semelhante a:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

==================
Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Veja Também

  • mysqli_fetch_array() - Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
  • mysqli_fetch_column() - Recebe uma única coluna da próxima linha de um resultado
  • mysqli_fetch_row() - Obtém a próxima linha de um resultado como um array enumerado
  • mysqli_fetch_object() - Recebe a próxima linha de um resultado como um objeto
  • mysqli_query() - Executa uma consulta no banco de dados
  • mysqli_data_seek() - Ajusta o ponteiro do resultado para uma linha arbritária no resultado


Recebe uma única coluna da próxima linha de um resultado

  • « mysqli_result::fetch_assoc
  • mysqli_result::fetch_field_direct »
  • PHP Manual
  • mysqli_result
  • Recebe uma única coluna da próxima linha de um resultado

mysqli_result::fetch_column

mysqli_fetch_column

(PHP 8 >= 8.1.0)

mysqli_result::fetch_column -- mysqli_fetch_column — Recebe uma única coluna da próxima linha de um resultado

Descrição

Estilo orientado a objetos

public mysqli_result::fetch_column(int $column = 0): null|int|float|string|false

Estilo procedural

mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|float|string|false

Recebe uma linha de dados do resultado e retorna a coluna indexada a partir de 0. Cada chamada subsequente desta função retornará o valor da linha seguinte dentro do conjunto de resultados, ou false se não houver mais linhas.

Nota: Esta função define campos NULL como o valor null do PHP.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

column

Número da coluna que se deseja receber da linha, sendo que a primeira é indexada em 0. Se nenhum valor for fornecido, a primeira coluna será retornada.

Valor Retornado

Retorna uma única coluna da próxima linha de um conjunto de resultados ou false se não houver mais linhas.

Aviso

Não há como retornar outra coluna da mesma linha se esta função for usada para obter dados.

Exemplos

Exemplo #1 Exemplo de mysqli_result::fetch_column()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT CountryCode, Name FROM City ORDER BY ID DESC LIMIT 5";

$result = $mysqli->query($query);

/* recebe um único valor da segunda coluna */
while ($Name = $result->fetch_column(1)) {
printf("%s\n", $Name);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT CountryCode, Name FROM City ORDER BY ID DESC LIMIT 5";

$result = mysqli_query($mysqli, $query);

/* recebe um único valor da segunda coluna */
while ($Name = mysqli_fetch_column($result, 1)) {
printf("%s\n", $Name);
}

Os exemplos acima produzirão algo semelhante a:

Rafah
Nablus
Jabaliya
Hebron
Khan Yunis

Veja Também

  • mysqli_fetch_all() - Recebe todas as linhas de resultado como array associativo, numérico, ou ambos
  • mysqli_fetch_array() - Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
  • mysqli_fetch_assoc() - Obtém a próxima linha do conjunto de resultados como um array associativo
  • mysqli_fetch_object() - Recebe a próxima linha de um resultado como um objeto
  • mysqli_fetch_row() - Obtém a próxima linha de um resultado como um array enumerado
  • mysqli_data_seek() - Ajusta o ponteiro do resultado para uma linha arbritária no resultado


Recebe metadados para um único campo

  • « mysqli_result::fetch_column
  • mysqli_result::fetch_field »
  • PHP Manual
  • mysqli_result
  • Recebe metadados para um único campo

mysqli_result::fetch_field_direct

mysqli_fetch_field_direct

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_field_direct -- mysqli_fetch_field_direct — Recebe metadados para um único campo

Descrição

Estilo orientado a objetos

public mysqli_result::fetch_field_direct(int $index): object|false

Estilo procedural

mysqli_fetch_field_direct(mysqli_result $result, int $index): object|false

Retorna um objeto que contém informação de definição de campo a partir do conjunto de resultados especificado.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

index

O número do campo. Este valor deve estar na faixa de 0 a número de campos - 1.

Valor Retornado

Retorna um objeto que contém informação de definição de campo ou false se nenhuma informação de campo para o valor especificado em index estiver disponível.

Propriedades dos objetos
Propriedade | Descrição
name | O nome da coluna
orgname | O nome original da coluna se foi especificado um apelido
table | O nome da tabela à qual o campo pertence (se não calculado)
orgtable | Nome da tabela original se foi especificado um apelido
def | Não utilizado. Sempre uma string vazia
db | O nome do banco de dados
catalog | Não utilizado. Sempre "def"
max_length | A largura máxima do campo para o conjunto de resultados. A partir do PHP 8.1, este valor é sempre 0.
length | O comprimento do campo em bytes. Para colunas de strings, o valor do comprimento varia conforme o conjunto de caracteres. Por exemplo, se o conjunto de caracteres for latin1, um conjunto de um byte, o valor de comprimento para uma consulta SELECT 'abc' será 3. Se o conjunto for utf8mb4, um conjunto multi-bytes onde os caracteres podem ter até 4 bytes, o valor de comprimento será 12.
charsetnr | O número do conjunto de caracteres do campo.
flags | Um inteiro representando bits de opções para o campo.
type | O tipo de dados usado para este campo
decimals | O número de decimais para campos numéricos, e a precisão em segundos fracionários para campos temporais.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

/* Obtém informação de campo para a coluna 'SurfaceArea' */
$finfo = $result->fetch_field_direct(1);

printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n", $finfo->type);

$result->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

/* Obtém informação de campo para a coluna 'SurfaceArea' */
$finfo = mysqli_fetch_field_direct($result, 1);

printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n", $finfo->type);

mysqli_free_result($result);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Veja Também

  • mysqli_num_fields() - Obtém o número de campos no conjunto de resultados
  • mysqli_fetch_field() - Retorna o próximo campo no conjunto de resultados
  • mysqli_fetch_fields() - Retorna um array de objetos representando os campos em um conjunto de resultados


Retorna o próximo campo no conjunto de resultados

  • « mysqli_result::fetch_field_direct
  • mysqli_result::fetch_fields »
  • PHP Manual
  • mysqli_result
  • Retorna o próximo campo no conjunto de resultados

mysqli_result::fetch_field

mysqli_fetch_field

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_field -- mysqli_fetch_field — Retorna o próximo campo no conjunto de resultados

Descrição

Estilo orientado a objetos

public mysqli_result::fetch_field(): object|false

Estilo procedural

mysqli_fetch_field(mysqli_result $result): object|false

Retorna a definição de uma coluna de um conjunto de resultados como um objeto. Utilize esta função repetidamente para obter informação sobre todas as colunas no conjunto de resultados.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

Valor Retornado

Retorna um objeto que contém informações sobre a definição do campo ou false se nenhuma informação de campos estiver disponível.

Propriedades dos objetos
Propriedade | Descrição
name | O nome da coluna
orgname | O nome original da coluna se foi especificado um apelido
table | O nome da tabela à qual o campo pertence (se não calculado)
orgtable | Nome da tabela original se foi especificado um apelido
def | Não utilizado. Sempre uma string vazia
db | O nome do banco de dados
catalog | Não utilizado. Sempre "def"
max_length | A largura máxima do campo para o conjunto de resultados. A partir do PHP 8.1, este valor é sempre 0.
length | O comprimento do campo em bytes. Para colunas de strings, o valor do comprimento varia conforme o conjunto de caracteres. Por exemplo, se o conjunto de caracteres for latin1, um conjunto de um byte, o valor de comprimento para uma consulta SELECT 'abc' será 3. Se o conjunto for utf8mb4, um conjunto multi-bytes onde os caracteres podem ter até 4 bytes, o valor de comprimento será 12.
charsetnr | O número do conjunto de caracteres do campo.
flags | Um inteiro representando bits de opções para o campo.
type | O tipo de dados usado para este campo
decimals | O número de decimais para campos numéricos, e a precisão em segundos fracionários para campos temporais.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

/* Obtém informação do campo para todos os campos */
while ($finfo = $result->fetch_field()) {

printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);
}
$result->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

/* Obtém informação do campo para todos os campos */
while ($finfo = mysqli_fetch_field($result)) {

printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);
}
mysqli_free_result($result);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Veja Também

  • mysqli_num_fields() - Obtém o número de campos no conjunto de resultados
  • mysqli_fetch_field_direct() - Recebe metadados para um único campo
  • mysqli_fetch_fields() - Retorna um array de objetos representando os campos em um conjunto de resultados
  • mysqli_field_seek() - Move o ponteiro do resultado para um campo especificado


Retorna um array de objetos representando os campos em um conjunto de resultados

  • « mysqli_result::fetch_field
  • mysqli_result::fetch_object »
  • PHP Manual
  • mysqli_result
  • Retorna um array de objetos representando os campos em um conjunto de resultados

mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_fields -- mysqli_fetch_fields — Retorna um array de objetos representando os campos em um conjunto de resultados

Descrição

Estilo orientado a objetos

public mysqli_result::fetch_fields(): array

Estilo procedural

mysqli_fetch_fields(mysqli_result $result): array

Esta função serve para o mesmo propósito que a função mysqli_fetch_field() com uma simples diferença, ao invés de retornar um objeto de cada vez para cada campo, as colunas são retornadas como um array de objetos.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

Valor Retornado

Retorna um array de objetos contendo informações de definições de campo.

Propriedades dos objetos
Propriedade | Descrição
name | O nome da coluna
orgname | O nome original da coluna se foi especificado um apelido
table | O nome da tabela à qual o campo pertence (se não calculado)
orgtable | Nome da tabela original se foi especificado um apelido
def | Não utilizado. Sempre uma string vazia
db | O nome do banco de dados
catalog | Não utilizado. Sempre "def"
max_length | A largura máxima do campo para o conjunto de resultados. A partir do PHP 8.1, este valor é sempre 0.
length | O comprimento do campo em bytes. Para colunas de strings, o valor do comprimento varia conforme o conjunto de caracteres. Por exemplo, se o conjunto de caracteres for latin1, um conjunto de um byte, o valor de comprimento para uma consulta SELECT 'abc' será 3. Se o conjunto for utf8mb4, um conjunto multi-bytes onde os caracteres podem ter até 4 bytes, o valor de comprimento será 12.
charsetnr | O número do conjunto de caracteres do campo.
flags | Um inteiro representando bits de opções para o campo.
type | O tipo de dados usado para este campo
decimals | O número de decimais para campos numéricos, e a precisão em segundos fracionários para campos temporais.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$mysqli = new mysqli("127.0.0.1", "root", "foofoo", "sakila");

/*verifica a conexão */
if ($mysqli->connect_errno) {
printf("Conexão falhou: %s\n", $mysqli->connect_error);
exit();
}

foreach (array('latin1', 'utf8') as $charset) {

// Define o conjunto de caracteres, para mostrar seu impacto em alguns valores (ex.: comprimento em bytes)
$mysqli->set_charset($charset);

$query = "SELECT actor_id, last_name from actor ORDER BY actor_id";

echo "======================\n";
echo "Conjunto de Caracteres: $charset\n";
echo "======================\n";

if ($result = $mysqli->query($query)) {

/* Obtém informação de campo para todas as colunas */
$finfo = $result->fetch_fields();

foreach ($finfo as $val) {
printf("Nome: %s\n", $val->name);
printf("Tabela: %s\n", $val->table);
printf("Comp. máx: %d\n", $val->max_length);
printf("Comprimento: %d\n", $val->length);
printf("Id conj. carac: %d\n", $val->charsetnr);
printf("Opções: %d\n", $val->flags);
printf("Tipo: %d\n\n", $val->type);
}
$result->free();
}
}
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");

/*verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

foreach (array('latin1', 'utf8') as $charset) {

// Define o conjunto de caracteres, para mostrar seu impacto em alguns valores (ex.: comprimento em bytes)
mysqli_set_charset($link, $charset);

$query = "SELECT actor_id, last_name from actor ORDER BY actor_id";

echo "======================\n";
echo "Conjunto de Caracteres: $charset\n";
echo "======================\n";

if ($result = mysqli_query($link, $query)) {

/* Obtém informação de campo para todas as colunas */
$finfo = mysqli_fetch_fields($result);

foreach ($finfo as $val) {
printf("Nome: %s\n", $val->name);
printf("Tabela: %s\n", $val->table);
printf("Comp. máx: %d\n", $val->max_length);
printf("Comprimento: %d\n", $val->length);
printf("Id conj. carac: %d\n", $val->charsetnr);
printf("Opções: %d\n", $val->flags);
printf("Tipo: %d\n\n", $val->type);
}
mysqli_free_result($result);
}
}

mysqli_close($link);
?>

Os exemplos acima produzirão:

======================
Conjunto de Caracteres: latin1
======================
Nome:        actor_id
Tabela:      actor
Comp. máx:   3
Comprimento: 5
Id conj. carac: 63
Opções:      49699
Tipo:        2

Nome:        last_name
Tabela:      actor
Comp. máx:   12
Comprimento: 45
Id conj. carac: 8
Opções:      20489
Tipo:        253

======================
Conjunto de Caracteres: utf8
======================
Nome:        actor_id
Tabela:      actor
Comp. máx:   3
Comprimento: 5
Id conj. carac: 63
Opções:      49699
Tipo:        2

Nome:        last_name
Tabela:      actor
Comp. máx:   12
Comprimento: 135
Id conj. carac: 33
Opções:      20489

Veja Também

  • mysqli_num_fields() - Obtém o número de campos no conjunto de resultados
  • mysqli_fetch_field_direct() - Recebe metadados para um único campo
  • mysqli_fetch_field() - Retorna o próximo campo no conjunto de resultados


Recebe a próxima linha de um resultado como um objeto

  • « mysqli_result::fetch_fields
  • mysqli_result::fetch_row »
  • PHP Manual
  • mysqli_result
  • Recebe a próxima linha de um resultado como um objeto

mysqli_result::fetch_object

mysqli_fetch_object

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_object -- mysqli_fetch_object — Recebe a próxima linha de um resultado como um objeto

Descrição

Estilo orientado a objetos

public mysqli_result::fetch_object(string $class = "stdClass", array $constructor_args = []): object|null|false

Estilo procedural

mysqli_fetch_object(mysqli_result $result, string $class = "stdClass", array $constructor_args = []): object|null|false

Recebe uma linha de dados do resultado e retorna-a como um objeto, onde cada propriedade representa o nome da coluna do resultado. Cada chamada subsequente a esta função retornará a linha seguinte dentro do conjunto de resultados, ou null se não houver mais linhas.

Se duas ou mais colunas do resultado tiverem o mesmo nome, a última coluna terá precedência e irá sobrescrever os dados anteriores. Para acessar múltiplas colunas com o mesmo nome, mysqli_fetch_row() pode ser usada para receber o array indexado numericamente, ou apelidos podem ser usados na lista de seleção da consulta SQL para dar nomes diferentes às colunas.

Nota: Esta função define as propriedades do objeto antes de chamar o construtor do objeto.

Nota: Os nomes de campos retornados por esta função diferenciam maiúsculas e minúsculas.

Nota: Esta função define campos NULL como o valor null do PHP.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

class

O nome da classe a instanciar, definir propriedades e retornar. Se não especificada, um objeto stdClass é retornado.

constructor_args

Um array opcional de parâmetros para passar ao construtor de objetos da classe definida em class.

Valor Retornado

Retorna um objeto que representa a linha recebida, onde cada propriedade representa o nome da coluna do resultado, null se não houver mais colunas no resultado, ou false em caso de falha.

Erros/Exceções

Um exceção ValueError é lançada quando o parâmetro constructor_args é não vazio com a classe não possuindo construtor.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora lança uma exceção ValueError quando o parâmetro constructor_args é não vazio com a classe não possuindo construtor; anteriormente uma Exception era lançada.
8.0.0 | constructor_args agora aceita [] para construtores sem parâmetros; anteriormente, uma exceção era lançada.

Exemplos

Exemplo #1 Exemplo de mysqli_result::fetch_object()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

while ($obj = $result->fetch_object()) {
printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($link, $query);

while ($obj = mysqli_fetch_object($result)) {
printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}

Os exemplos acima produzirão algo semelhante a:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Veja Também

  • mysqli_fetch_array() - Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
  • mysqli_fetch_assoc() - Obtém a próxima linha do conjunto de resultados como um array associativo
  • mysqli_fetch_column() - Recebe uma única coluna da próxima linha de um resultado
  • mysqli_fetch_row() - Obtém a próxima linha de um resultado como um array enumerado
  • mysqli_query() - Executa uma consulta no banco de dados
  • mysqli_data_seek() - Ajusta o ponteiro do resultado para uma linha arbritária no resultado


Obtém a próxima linha de um resultado como um array enumerado

  • « mysqli_result::fetch_object
  • mysqli_result::$field_count »
  • PHP Manual
  • mysqli_result
  • Obtém a próxima linha de um resultado como um array enumerado

mysqli_result::fetch_row

mysqli_fetch_row

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_row -- mysqli_fetch_row — Obtém a próxima linha de um resultado como um array enumerado

Descrição

Estilo orientado a objetos

public mysqli_result::fetch_row(): array|null|false

Estilo procedural

mysqli_fetch_row(mysqli_result $result): array|null|false

Obtém uma linha de dados do conjunto de resultado e retorna-o como um array enumerado, onde cada coluna é armazenada em um deslocamento do array iniciando de 0 (zero). Cada chamada subsequente a esta função retornará a próxima linha no conjunto de resultados, ou null se não houver mais linhas.

Nota: Esta função define campos NULL como o valor null do PHP.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

Valor Retornado

Retorna um array representando a linha obtida, null se não houver mais linhas no conjunto de resultados, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de mysqli_result::fetch_row()

Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* obtém array de objetos */
while ($row = $result->fetch_row()) {
printf("%s (%s)\n", $row[0], $row[1]);
}

Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($mysqli, $query);

/* obtém array de objetos */
while ($row = mysqli_fetch_row($result)) {
printf("%s (%s)\n", $row[0], $row[1]);
}

Os exemplos acima produzirão algo semelhante a:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Veja Também

  • mysqli_fetch_array() - Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
  • mysqli_fetch_assoc() - Obtém a próxima linha do conjunto de resultados como um array associativo
  • mysqli_fetch_column() - Recebe uma única coluna da próxima linha de um resultado
  • mysqli_fetch_object() - Recebe a próxima linha de um resultado como um objeto
  • mysqli_query() - Executa uma consulta no banco de dados
  • mysqli_data_seek() - Ajusta o ponteiro do resultado para uma linha arbritária no resultado


Obtém o número de campos no conjunto de resultados

  • « mysqli_result::fetch_row
  • mysqli_result::field_seek »
  • PHP Manual
  • mysqli_result
  • Obtém o número de campos no conjunto de resultados

mysqli_result::$field_count

mysqli_num_fields

(PHP 5, PHP 7, PHP 8)

mysqli_result::$field_count -- mysqli_num_fields — Obtém o número de campos no conjunto de resultados

Descrição

Estilo orientado a objetos

int $mysqli_result->field_count;

Estilo procedural

mysqli_num_fields(mysqli_result $result): int

Obtém o número de campos no conjunto de resultados.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

Valor Retornado

Um valor do tipo int que representa o número de campos.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Name, CountryCode, District, Population FROM City ORDER BY ID LIMIT 1");

/* Obtém o número de campos do resultado */
$field_cnt = $result->field_count;

printf("Result set has %d fields.\n", $field_cnt);

Exemplo #2 Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($link, "SELECT Name, CountryCode, District, Population FROM City ORDER BY ID LIMIT 1");

/* Obtém o número de campos do resultado */
$field_cnt = mysqli_num_fields($result);

printf("Result set has %d fields.\n", $field_cnt);

Os exemplos acima produzirão:

Result set has 4 fields.

Veja Também

  • mysqli_fetch_field() - Retorna o próximo campo no conjunto de resultados


Move o ponteiro do resultado para um campo especificado

  • « mysqli_result::$field_count
  • mysqli_result::free »
  • PHP Manual
  • mysqli_result
  • Move o ponteiro do resultado para um campo especificado

mysqli_result::field_seek

mysqli_field_seek

(PHP 5, PHP 7, PHP 8)

mysqli_result::field_seek -- mysqli_field_seek — Move o ponteiro do resultado para um campo especificado

Descrição

Estilo orientado a objetos

public mysqli_result::field_seek(int $index): true

Estilo procedural

mysqli_field_seek(mysqli_result $result, int $index): true

Define o cursor de campo para o índice especificado. A próxima chamada a mysqli_fetch_field() retornará a definição de campo da coluna associada com este índice.

Nota:

Para mover o ponteiro para o início de uma linha, passe um índice de valor zero.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

index

O número do campo. Este valor precisa estar num intervalo de 0 a número de campos - 1.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora sempre retorna true. Anteriormente retornava false em caso de falha.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

/* Obtém informação de campo para a 2ª coluna */
$result->field_seek(1);
$finfo = $result->fetch_field();

printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);

$result->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

/* Obtém informação de campo para a 2ª coluna */
mysqli_field_seek($result, 1);
$finfo = mysqli_fetch_field($result);

printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n\n", $finfo->type);

mysqli_free_result($result);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Veja Também

  • mysqli_fetch_field() - Retorna o próximo campo no conjunto de resultados


Libera memória associada a um resultado

  • « mysqli_result::field_seek
  • mysqli_result::getIterator »
  • PHP Manual
  • mysqli_result
  • Libera memória associada a um resultado

mysqli_result::free

mysqli_result::close

mysqli_result::free_result

mysqli_free_result

(PHP 5, PHP 7, PHP 8)

mysqli_result::free -- mysqli_result::close -- mysqli_result::free_result -- mysqli_free_result — Libera memória associada a um resultado

Descrição

Estilo orientado a objetos

public mysqli_result::free(): void
public mysqli_result::close(): void
public mysqli_result::free_result(): void

Estilo procedural

mysqli_free_result(mysqli_result $result): void

Libera a memória associada ao resultado.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • mysqli_query() - Executa uma consulta no banco de dados
  • mysqli_stmt_get_result() - Obtém um resultado de uma instrução preparada como um objeto mysqli_result
  • mysqli_store_result() - Transfere um conjunto de resultados da última consulta
  • mysqli_use_result() - Iniciar uma recuperação de conjunto de resultados


Obtém um iterador externo

  • « mysqli_result::free
  • mysqli_result::$lengths »
  • PHP Manual
  • mysqli_result
  • Obtém um iterador externo

mysqli_result::getIterator

(PHP 8)

mysqli_result::getIterator — Obtém um iterador externo

Descrição

public mysqli_result::getIterator(): Iterator

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retorna os comprimentos das colunas da linha atual do resultado

  • « mysqli_result::getIterator
  • mysqli_result::$num_rows »
  • PHP Manual
  • mysqli_result
  • Retorna os comprimentos das colunas da linha atual do resultado

mysqli_result::$lengths

mysqli_fetch_lengths

(PHP 5, PHP 7, PHP 8)

mysqli_result::$lengths -- mysqli_fetch_lengths — Retorna os comprimentos das colunas da linha atual do resultado

Descrição

Estilo orientado a objetos

?array $mysqli_result->lengths;

Estilo procedural

mysqli_fetch_lengths(mysqli_result $result): array|false

A função mysqli_fetch_lengths() retorna um array que contém os comprimentos de cada coluna da linha atual dentro do conjunto de resultados.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

Valor Retornado

Um array de números inteiros que representam o tamanho de cada coluna (não incluindo caracteres nulos de terminação). false se ocorrer um erro.

mysqli_fetch_lengths() é válida apenas para a linha atual do resultado. Retorna false se for chamada antes de se chamar mysqli_fetch_row, mysqli_fetch_array, mysqli_fetch_object ou após ter recebido todas as linhas do resultado.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = $mysqli->query($query)) {

$row = $result->fetch_row();

/* mostra os comprimentos das colunas */
foreach ($result->lengths as $i => $val) {
printf("Campo %2d tem comprimento %2d\n", $i+1, $val);
}
$result->close();
}

/* fecha a conexão */
$mysqli->close();
?>

Exemplo #2 Estilo procedural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* verifica a conexão */
if (mysqli_connect_errno()) {
printf("Conexão falhou: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = mysqli_query($link, $query)) {

$row = mysqli_fetch_row($result);

/* mostra os comprimentos das colunas */
foreach (mysqli_fetch_lengths($result) as $i => $val) {
printf("Campo %2d tem comprimento %2d\n", $i+1, $val);
}
mysqli_free_result($result);
}

/* fecha a conexão */
mysqli_close($link);
?>

Os exemplos acima produzirão:

Campo  1 tem comprimento  3
Campo  2 tem comprimento  5
Campo  3 tem comprimento 13
Campo  4 tem comprimento  9
Campo  5 tem comprimento  6
Campo  6 tem comprimento  1
Campo  7 tem comprimento  6
Campo  8 tem comprimento  4
Campo  9 tem comprimento  6
Campo 10 tem comprimento  6
Campo 11 tem comprimento  5
Campo 12 tem comprimento 44
Campo 13 tem comprimento  7
Campo 14 tem comprimento  3
Campo 15 tem comprimento  2


Obtém o número de linhas no resultado

  • « mysqli_result::$lengths
  • mysqli_driver »
  • PHP Manual
  • mysqli_result
  • Obtém o número de linhas no resultado

mysqli_result::$num_rows

mysqli_num_rows

(PHP 5, PHP 7, PHP 8)

mysqli_result::$num_rows -- mysqli_num_rows — Obtém o número de linhas no resultado

Descrição

Estilo orientado a objetos

int|string $mysqli_result->num_rows;

Estilo procedural

mysqli_num_rows(mysqli_result $result): int|string

Retorna o número de linhas no resultado.

O comportamento de mysqli_num_rows() depende se estão sendo usados resultados com buffer ou sem buffer. A função retorna 0 para resultado sem buffer a menos que todas as linhas já tiverem sido recebidas do servidor.

Parâmetros

result

Somente no estilo procedural: Um objeto mysqli_result retornado por mysqli_query(), mysqli_store_result(), mysqli_use_result() ou mysqli_stmt_get_result().

Valor Retornado

Um int que representa o número de linhas recebidas. Retorna 0 em modo sem buffer a menos que todas as linhas tenham sido recebidas do servidor.

Nota:

Se o número de linhas for maior que PHP_INT_MAX, o número será retornado como uma string.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name");

/* Obtém o número de linhas no resultado */
$row_cnt = $result->num_rows;

printf("Resultado contém %d linhas.\n", $row_cnt);

Exemplo #2 Estilo procedural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name");

/* Obtém o número de linhas no resultado */
$row_cnt = mysqli_num_rows($result);

printf("Resultado contém %d linhas.\n", $row_cnt);

Os exemplos acima produzirão:

Resultado contém 239 linhas.

Notas

Nota:

Em contraste à função mysqli_stmt_num_rows(), esta função não tem uma variante de método orientado a objetos. No estilo de linguagem orientada a objetos, use __get().

Veja Também

  • mysqli_affected_rows() - Retorna o número de linhas afetadas pela operação MySQL anterior
  • mysqli_store_result() - Transfere um conjunto de resultados da última consulta
  • mysqli_use_result() - Iniciar uma recuperação de conjunto de resultados
  • mysqli_query() - Executa uma consulta no banco de dados
  • mysqli_stmt_num_rows() - Retorna o número de linhas recebidas pelo servidor


A classe mysqli_driver

(PHP 5, PHP 7, PHP 8)

Introdução

A classe mysqli_driver é uma instância do padrão monostate, ou seja, existe apenas um driver que pode ser acessado por meio de uma quantidade arbitrária de instâncias mysqli_driver.

Resumo da classe

final class mysqli_driver {
/* Propriedades */
public readonly string $client_info;
public readonly int $client_version;
public readonly int $driver_version;
public int $report_mode;
}

Propriedades

client_info

A versão do cabeçalho da API do cliente

client_version

A versão do cliente

driver_version

A versão do driver MySQLi

Aviso

Esta propriedade foi descontinuada a partir do PHP 8.1.0. Confiar nesta propriedade é altamente desencorajado.

embedded

Se o suporte MySQLi Embedded está ativado

Aviso

Esta propriedade foi removida a partir do PHP 8.0.0.

reconnect

Permitir ou impedir a reconexão (consulte a diretiva mysqli.reconnect INI)

Aviso

Esta propriedade foi removida juntamente com a diretiva INI mysqli.reconnect a partir do PHP 8.2.0.

report_mode

Defina como MYSQLI_REPORT_OFF, MYSQLI_REPORT_ALL ou qualquer combinação de MYSQLI_REPORT_STRICT (lança exceções para erros), MYSQLI_REPORT_ERROR (reporta erros) e MYSQLI_REPORT_INDEX (erros relacionados a índices). Veja também mysqli_report().

Registro de Alterações

Versão | Descrição
8.2.0 | mysqli_driver::$reconnect foi removido.
8.1.0 | mysqli_driver::$driver_version foi descontinuada.
8.0.0 | mysqli_driver::$embedded foi removido.
7.4.0 | mysqli_driver::embedded_server_start() e mysqli_driver:embedded_server_end() foram removidos.

Índice

  • mysqli_driver::embedded_server_end — Para o servidor incorporado
  • mysqli_driver::embedded_server_start — Inicializa e dispara o servidor incorporado
  • mysqli_driver::$report_mode — Define o modo de relatório de erros do mysqli


Para o servidor incorporado

  • « mysqli_driver
  • mysqli_driver::embedded_server_start »
  • PHP Manual
  • mysqli_driver
  • Para o servidor incorporado

mysqli_driver::embedded_server_end

mysqli_embedded_server_end

(PHP 5 >= 5.1.0, PHP 7 < 7.4.0)

mysqli_driver::embedded_server_end -- mysqli_embedded_server_end — Para o servidor incorporado

Aviso

Esta função foi REMOVIDA a partir do PHP 7.4.0.

Descrição

Estilo orientado a objetos

public mysqli_driver::embedded_server_end(): void

Estilo procedural

mysqli_embedded_server_end(): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Inicializa e dispara o servidor incorporado

  • « mysqli_driver::embedded_server_end
  • mysqli_driver::$report_mode »
  • PHP Manual
  • mysqli_driver
  • Inicializa e dispara o servidor incorporado

mysqli_driver::embedded_server_start

mysqli_embedded_server_start

(PHP 5 >= 5.1.0, PHP 7 < 7.4.0)

mysqli_driver::embedded_server_start -- mysqli_embedded_server_start — Inicializa e dispara o servidor incorporado

Aviso

Esta função foi REMOVIDA a partir do PHP 7.4.0.

Descrição

Estilo orientado a objetos

public mysqli_driver::embedded_server_start(int $start, array $arguments, array $groups): bool

Estilo procedural

mysqli_embedded_server_start(int $start, array $arguments, array $groups): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Define o modo de relatório de erros do mysqli

  • « mysqli_driver::embedded_server_start
  • mysqli_warning »
  • PHP Manual
  • mysqli_driver
  • Define o modo de relatório de erros do mysqli

mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7, PHP 8)

mysqli_driver::$report_mode -- mysqli_report — Define o modo de relatório de erros do mysqli

Descrição

Estilo orientado a objetos

int $mysqli_driver->report_mode;

Estilo procedural

mysqli_report(int $flags): bool

Dependendo das flags, ele define o modo de relatório de erros do mysqli como exceção, aviso ou nenhum. Quando definido como MYSQLI_REPORT_ALL ou MYSQLI_REPORT_INDEX, ele também informará sobre as consultas que não usam um índice (ou usam um índice incorreto).

A partir do PHP 8.1.0, a configuração padrão é MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Anteriormente, era MYSQLI_REPORT_OFF.

Parâmetros

flags

Flags suportadas
Nome | Descrição
MYSQLI_REPORT_OFF | Desativa os relatórios
MYSQLI_REPORT_ERROR | Relatar erros de chamadas de função mysqli
MYSQLI_REPORT_STRICT | Lance mysqli_sql_exception para erros em vez de avisos
MYSQLI_REPORT_INDEX | Informa se nenhum índice ou índice inválido foi usado em uma consulta
MYSQLI_REPORT_ALL | Define todas as opções (relatar tudo)

Valor Retornado

Retorna true.

Registro de Alterações

Versão | Descrição
8.1.0 | O valor padrão agora é MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Anteriormente, era MYSQLI_REPORT_OFF.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

/* ativar relatórios */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;

try {
/* se a conexão falhar, um mysqli_sql_exception será lançado */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

/* esta consulta deve relatar um erro */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* esta consulta deve relatar um índice ruim se a população da coluna não tiver um índice */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}

Exemplo #2 Estilo procedural

<?php

/* ativar relatórios */
mysqli_report(MYSQLI_REPORT_ALL);

try {
/* se a conexão falhar, um mysqli_sql_exception será lançado */
$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");

/* esta consulta deve relatar um erro */
$result = mysqli_query($link, "SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* esta consulta deve relatar um índice ruim se a população da coluna não tiver um índice */
$result = mysqli_query($link, "SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}

Exemplo #3 Relatório de erros, exceto erros de índice ruim

<?php

/* ativar relatórios */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

try {
/* se a conexão falhar, um mysqli_sql_exception será lançado */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

/* esta consulta deve relatar um erro */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* isso NÃO relatará nenhum erro, mesmo que o índice não esteja disponível */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}

Veja Também

  • mysqli_sql_exception
  • set_exception_handler() - Define uma função de manipulação de exceção definida pelo usuário
  • error_reporting() - Define quais erros do PHP são relatados


A classe mysqli_warning

(PHP 5, PHP 7, PHP 8)

Introdução

Representa um aviso do MySQL.

Resumo da classe

final class mysqli_warning {
/* Propriedades */
public string $message;
public string $sqlstate;
public int $errno;
/* Métodos */
private __construct()
public next(): bool
}

Propriedades

message

string da Mensagem

sqlstate

Estado SQL

errno

Número do erro

Índice

  • mysqli_warning::__construct — Construtor privado para proibir instanciação direta
  • mysqli_warning::next — Busca o próximo aviso


Construtor privado para proibir instanciação direta

  • « mysqli_warning
  • mysqli_warning::next »
  • PHP Manual
  • mysqli_warning
  • Construtor privado para proibir instanciação direta

mysqli_warning::__construct

(PHP 5, PHP 7, PHP 8)

mysqli_warning::__construct — Construtor privado para proibir instanciação direta

Descrição

private mysqli_warning::__construct()

Parâmetros

Esta função não possui parâmetros.


Busca o próximo aviso

  • « mysqli_warning::__construct
  • mysqli_sql_exception »
  • PHP Manual
  • mysqli_warning
  • Busca o próximo aviso

mysqli_warning::next

(PHP 5, PHP 7, PHP 8)

mysqli_warning::next — Busca o próximo aviso

Descrição

public mysqli_warning::next(): bool

Altere as informações de aviso para o próximo aviso, se possível.

Depois que o aviso for definido para o próximo aviso, novos valores de propriedades message, sqlstate e errno de mysqli_warning estarão disponíveis.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o próximo aviso foi obtido com sucesso. Se não houver mais avisos, retornará false


A classe mysqli_sql_exception

(PHP 5, PHP 7, PHP 8)

Introdução

A classe de manipulação de exceção mysqli.

Resumo da classe

final class mysqli_sql_exception extends RuntimeException {
/* Propriedades */
protected string $sqlstate = "00000";
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
public getSqlState(): string
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

sqlstate

O estado sql com o erro.

Índice

  • mysqli_sql_exception::getSqlState — Retorna o código de erro SQLSTATE


Retorna o código de erro SQLSTATE

  • « mysqli_sql_exception
  • Apelidos e Funções descontinuadas da Mysqli »
  • PHP Manual
  • mysqli_sql_exception
  • Retorna o código de erro SQLSTATE

mysqli_sql_exception::getSqlState

(PHP 8 >= 8.1.2)

mysqli_sql_exception::getSqlState — Retorna o código de erro SQLSTATE

Descrição

public mysqli_sql_exception::getSqlState(): string

Retorna uma string contendo o código de erro SQLSTATE para o último erro. O código de erro consiste em cinco caracteres. Os valores são especificados por ANSI SQL e ODBC. Para obter uma lista de valores possíveis, consulte » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Nota:

Observe que nem todos os erros do MySQL ainda estão mapeados para SQLSTATE. O valor HY000 (erro geral) é usado para erros não mapeados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string contendo o código de erro SQLSTATE para o último erro. O código de erro consiste em cinco caracteres.


Apelidos e Funções descontinuadas da Mysqli

Índice

  • mysqli_connect — Sinônimo de mysqli::__construct
  • mysqli::escape_string — Sinônimo de mysqli_real_escape_string
  • mysqli_execute — Sinônimo de mysqli_stmt_execute
  • mysqli_get_client_stats — Retorna as estatísticas do cliente por processo
  • mysqli_get_links_stats — Retorna informações sobre links abertos e em cache
  • mysqli_report — Sinônimo de mysqli_driver->report_mode
  • mysqli::set_opt — Sinônimo de mysqli_options


Sinônimo de mysqli::__construct

  • « Apelidos e Funções descontinuadas da Mysqli
  • mysqli::escape_string »
  • PHP Manual
  • Apelidos e Funções descontinuadas da Mysqli
  • Sinônimo de mysqli::__construct

mysqli_connect

(PHP 5, PHP 7, PHP 8)

mysqli_connect — Sinônimo de mysqli::__construct()

Descrição

Esta função é um apelido para: mysqli::__construct()

Nota:

Se o modo de exceção mysqli não estiver habilitado e uma conexão falhar, então mysqli_connect() retornará false ao invés de um objeto. A função mysqli_connect_error() pode ser usada para buscar o erro de conexão.


Sinônimo de mysqli_real_escape_string

  • « mysqli_connect
  • mysqli_execute »
  • PHP Manual
  • Apelidos e Funções descontinuadas da Mysqli
  • Sinônimo de mysqli_real_escape_string

mysqli::escape_string

mysqli_escape_string

(PHP 5, PHP 7, PHP 8)

mysqli::escape_string -- mysqli_escape_string — Sinônimo de mysqli_real_escape_string()

Descrição

Esta função é um apelido para: mysqli_real_escape_string().


Sinônimo de mysqli_stmt_execute

  • « mysqli::escape_string
  • mysqli_get_client_stats »
  • PHP Manual
  • Apelidos e Funções descontinuadas da Mysqli
  • Sinônimo de mysqli_stmt_execute

mysqli_execute

(PHP 5, PHP 7, PHP 8)

mysqli_execute — Sinônimo de mysqli_stmt_execute()

Descrição

Esta função é um apelido para: mysqli_stmt_execute().

Notas

Nota:

mysqli_execute() foi descontinuada e será removida.

Veja Também

  • mysqli_stmt_execute() - Executa uma instrução preparada


Retorna as estatísticas do cliente por processo

  • « mysqli_execute
  • mysqli_get_links_stats »
  • PHP Manual
  • Apelidos e Funções descontinuadas da Mysqli
  • Retorna as estatísticas do cliente por processo

mysqli_get_client_stats

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_get_client_stats — Retorna as estatísticas do cliente por processo

Descrição

mysqli_get_client_stats(): array

Retorna as estatísticas do cliente por processo.

Nota:

Disponível apenas com o mysqlnd.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma matriz com estatísticas do cliente.

Exemplos

Exemplo #1 mysqli_get_client_stats() exemplo

<?php
$link = mysqli_connect();
print_r(mysqli_get_client_stats());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Veja Também

  • Descrição das estatísticas


Retorna informações sobre links abertos e em cache

  • « mysqli_get_client_stats
  • mysqli_report »
  • PHP Manual
  • Apelidos e Funções descontinuadas da Mysqli
  • Retorna informações sobre links abertos e em cache

mysqli_get_links_stats

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

mysqli_get_links_stats — Retorna informações sobre links abertos e em cache

Descrição

mysqli_get_links_stats(): array

mysqli_get_links_stats() retorna informações sobre links MySQL abertos e em cache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

mysqli_get_links_stats() retorna um array associativo com três elementos, digitados da seguinte forma:

total

Um int que indica o número total de links abertos em qualquer estado.

active_plinks

Um int representando o número de conexões persistentes ativas.

cached_plinks

Um int representando o número de conexões persistentes inativas.


Sinônimo de mysqli_driver->report_mode

  • « mysqli_get_links_stats
  • mysqli::set_opt »
  • PHP Manual
  • Apelidos e Funções descontinuadas da Mysqli
  • Sinônimo de mysqli_driver->report_mode

mysqli_report

(PHP 5, PHP 7, PHP 8)

mysqli_report — Sinônimo de mysqli_driver->report_mode

Descrição

Esta função é um apelido para: mysqli_driver->report_mode


Sinônimo de mysqli_options

  • « mysqli_report
  • Registro de Alterações »
  • PHP Manual
  • Apelidos e Funções descontinuadas da Mysqli
  • Sinônimo de mysqli_options

mysqli::set_opt

mysqli_set_opt

(PHP 5, PHP 7, PHP 8)

mysqli::set_opt -- mysqli_set_opt — Sinônimo de mysqli_options()

Descrição

Esta função é um apelido para: mysqli_options().


Registro de Alterações

As alterações a seguir foram feitas em classes/funções/métodos desta extensão.

Version Function Descrição


Mysql_xdevapi

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Building / Compiling From Source
  • Constantes pré-definidas
  • Registro de Alterações
  • Exemplos
  • Mysql_xdevapi Funções
    • expression — Bind prepared statement variables as parameters
    • getSession — Connect to a MySQL server
  • mysql_xdevapi\BaseResult — BaseResult interface
    • BaseResult::getWarnings — Fetch warnings from last operation
    • BaseResult::getWarningsCount — Fetch warning count from last operation
  • mysql_xdevapi\Client — Client class
    • mysql_xdevapi\Client::close — Close client
    • Client::__construct — Client constructor
    • Client::getClient — Get client session
  • mysql_xdevapi\Collection — Collection class
    • Collection::add — Add collection document
    • Collection::addOrReplaceOne — Add or replace collection document
    • Collection::__construct — Collection constructor
    • Collection::count — Get document count
    • Collection::createIndex — Create collection index
    • Collection::dropIndex — Drop collection index
    • Collection::existsInDatabase — Check if collection exists in database
    • Collection::find — Search for document
    • Collection::getName — Get collection name
    • Collection::getOne — Get one document
    • Collection::getSchema — Get schema object
    • Collection::getSession — Get session object
    • Collection::modify — Modify collection documents
    • Collection::remove — Remove collection documents
    • Collection::removeOne — Remove one collection document
    • Collection::replaceOne — Replace one collection document
  • mysql_xdevapi\CollectionAdd — CollectionAdd class
    • CollectionAdd::__construct — CollectionAdd constructor
    • CollectionAdd::execute — Execute the statement
  • mysql_xdevapi\CollectionFind — CollectionFind class
    • CollectionFind::bind — Bind value to query placeholder
    • CollectionFind::__construct — CollectionFind constructor
    • CollectionFind::execute — Execute the statement
    • CollectionFind::fields — Set document field filter
    • CollectionFind::groupBy — Set grouping criteria
    • CollectionFind::having — Set condition for aggregate functions
    • CollectionFind::limit — Limit number of returned documents
    • CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK
    • CollectionFind::lockShared — Execute operation with SHARED LOCK
    • CollectionFind::offset — Skip given number of elements to be returned
    • CollectionFind::sort — Set the sorting criteria
  • mysql_xdevapi\CollectionModify — CollectionModify class
    • CollectionModify::arrayAppend — Append element to an array field
    • CollectionModify::arrayInsert — Insert element into an array field
    • CollectionModify::bind — Bind value to query placeholder
    • CollectionModify::__construct — CollectionModify constructor
    • CollectionModify::execute — Execute modify operation
    • CollectionModify::limit — Limit number of modified documents
    • CollectionModify::patch — Patch document
    • CollectionModify::replace — Replace document field
    • CollectionModify::set — Set document attribute
    • CollectionModify::skip — Skip elements
    • CollectionModify::sort — Set the sorting criteria
    • CollectionModify::unset — Unset the value of document fields
  • mysql_xdevapi\CollectionRemove — CollectionRemove class
    • CollectionRemove::bind — Bind value to placeholder
    • CollectionRemove::__construct — CollectionRemove constructor
    • CollectionRemove::execute — Execute remove operation
    • CollectionRemove::limit — Limit number of documents to remove
    • CollectionRemove::sort — Set the sorting criteria
  • mysql_xdevapi\ColumnResult — ColumnResult class
    • ColumnResult::__construct — ColumnResult constructor
    • ColumnResult::getCharacterSetName — Get character set
    • ColumnResult::getCollationName — Get collation name
    • ColumnResult::getColumnLabel — Get column label
    • ColumnResult::getColumnName — Get column name
    • ColumnResult::getFractionalDigits — Get fractional digit length
    • ColumnResult::getLength — Get column field length
    • ColumnResult::getSchemaName — Get schema name
    • ColumnResult::getTableLabel — Get table label
    • ColumnResult::getTableName — Get table name
    • ColumnResult::getType — Get column type
    • ColumnResult::isNumberSigned — Check if signed type
    • ColumnResult::isPadded — Check if padded
  • mysql_xdevapi\CrudOperationBindable — CrudOperationBindable interface
    • CrudOperationBindable::bind — Bind value to placeholder
  • mysql_xdevapi\CrudOperationLimitable — CrudOperationLimitable interface
    • CrudOperationLimitable::limit — Set result limit
  • mysql_xdevapi\CrudOperationSkippable — CrudOperationSkippable interface
    • CrudOperationSkippable::skip — Number of operations to skip
  • mysql_xdevapi\CrudOperationSortable — CrudOperationSortable interface
    • CrudOperationSortable::sort — Sort results
  • mysql_xdevapi\DatabaseObject — DatabaseObject interface
    • DatabaseObject::existsInDatabase — Check if object exists in database
    • DatabaseObject::getName — Get object name
    • DatabaseObject::getSession — Get session name
  • mysql_xdevapi\DocResult — DocResult class
    • DocResult::__construct — DocResult constructor
    • DocResult::fetchAll — Get all rows
    • DocResult::fetchOne — Get one row
    • DocResult::getWarnings — Get warnings from last operation
    • DocResult::getWarningsCount — Get warning count from last operation
  • mysql_xdevapi\Exception — Exception class
  • mysql_xdevapi\Executable — Executable interface
    • Executable::execute — Execute statement
  • mysql_xdevapi\ExecutionStatus — ExecutionStatus class
    • ExecutionStatus::__construct — ExecutionStatus constructor
  • mysql_xdevapi\Expression — Expression class
    • Expression::__construct — Expression constructor
  • mysql_xdevapi\Result — Result class
    • Result::__construct — Result constructor
    • Result::getAffectedItemsCount — Get affected row count
    • Result::getAutoIncrementValue — Get autoincremented value
    • Result::getGeneratedIds — Get generated ids
    • Result::getWarnings — Get warnings from last operation
    • Result::getWarningsCount — Get warning count from last operation
  • mysql_xdevapi\RowResult — RowResult class
    • RowResult::__construct — RowResult constructor
    • RowResult::fetchAll — Get all rows from result
    • RowResult::fetchOne — Get row from result
    • RowResult::getColumnsCount — Get column count
    • RowResult::getColumnNames — Get all column names
    • RowResult::getColumns — Get column metadata
    • RowResult::getWarnings — Get warnings from last operation
    • RowResult::getWarningsCount — Get warning count from last operation
  • mysql_xdevapi\Schema — Schema class
    • Schema::__construct — Schema constructor
    • Schema::createCollection — Add collection to schema
    • Schema::dropCollection — Drop collection from schema
    • Schema::existsInDatabase — Check if exists in database
    • Schema::getCollection — Get collection from schema
    • Schema::getCollectionAsTable — Get collection as a Table object
    • Schema::getCollections — Get all schema collections
    • Schema::getName — Get schema name
    • Schema::getSession — Get schema session
    • Schema::getTable — Get schema table
    • Schema::getTables — Get schema tables
  • mysql_xdevapi\SchemaObject — SchemaObject interface
    • SchemaObject::getSchema — Get schema object
  • mysql_xdevapi\Session — Session class
    • Session::close — Close session
    • Session::commit — Commit transaction
    • Session::__construct — Description constructor
    • Session::createSchema — Create new schema
    • Session::dropSchema — Drop a schema
    • Session::generateUUID — Get new UUID
    • Session::getDefaultSchema — Get default schema name
    • Session::getSchema — Get a new schema object
    • Session::getSchemas — Get the schemas
    • Session::getServerVersion — Get server version
    • Session::listClients — Get client list
    • Session::quoteName — Add quotes
    • Session::releaseSavepoint — Release set savepoint
    • Session::rollback — Rollback transaction
    • Session::rollbackTo — Rollback transaction to savepoint
    • Session::setSavepoint — Create savepoint
    • Session::sql — Create SQL query
    • Session::startTransaction — Start transaction
  • mysql_xdevapi\SqlStatement — SqlStatement class
    • SqlStatement::bind — Bind statement parameters
    • SqlStatement::__construct — Description constructor
    • SqlStatement::execute — Execute the operation
    • SqlStatement::getNextResult — Get next result
    • SqlStatement::getResult — Get result
    • SqlStatement::hasMoreResults — Check for more results
  • mysql_xdevapi\SqlStatementResult — SqlStatementResult class
    • SqlStatementResult::__construct — Description constructor
    • SqlStatementResult::fetchAll — Get all rows from result
    • SqlStatementResult::fetchOne — Get single row
    • SqlStatementResult::getAffectedItemsCount — Get affected row count
    • SqlStatementResult::getColumnsCount — Get column count
    • SqlStatementResult::getColumnNames — Get column names
    • SqlStatementResult::getColumns — Get columns
    • SqlStatementResult::getGeneratedIds — Get generated ids
    • SqlStatementResult::getLastInsertId — Get last insert id
    • SqlStatementResult::getWarnings — Get warnings from last operation
    • SqlStatementResult::getWarningsCount — Get warning count from last operation
    • SqlStatementResult::hasData — Check if result has data
    • SqlStatementResult::nextResult — Get next result
  • mysql_xdevapi\Statement — Statement class
    • Statement::__construct — Description constructor
    • Statement::getNextResult — Get next result
    • Statement::getResult — Get result
    • Statement::hasMoreResults — Check if more results
  • mysql_xdevapi\Table — Table class
    • Table::__construct — Table constructor
    • Table::count — Get row count
    • Table::delete — Delete rows from table
    • Table::existsInDatabase — Check if table exists in database
    • Table::getName — Get table name
    • Table::getSchema — Get table schema
    • Table::getSession — Get table session
    • Table::insert — Insert table rows
    • Table::isView — Check if table is view
    • Table::select — Select rows from table
    • Table::update — Update rows in table
  • mysql_xdevapi\TableDelete — TableDelete class
    • TableDelete::bind — Bind delete query parameters
    • TableDelete::__construct — TableDelete constructor
    • TableDelete::execute — Execute delete query
    • TableDelete::limit — Limit deleted rows
    • TableDelete::orderby — Set delete sort criteria
    • TableDelete::where — Set delete search condition
  • mysql_xdevapi\TableInsert — TableInsert class
    • TableInsert::__construct — TableInsert constructor
    • TableInsert::execute — Execute insert query
    • TableInsert::values — Add insert row values
  • mysql_xdevapi\TableSelect — TableSelect class
    • TableSelect::bind — Bind select query parameters
    • TableSelect::__construct — TableSelect constructor
    • TableSelect::execute — Execute select statement
    • TableSelect::groupBy — Set select grouping criteria
    • TableSelect::having — Set select having condition
    • TableSelect::limit — Limit selected rows
    • TableSelect::lockExclusive — Execute EXCLUSIVE LOCK
    • TableSelect::lockShared — Execute SHARED LOCK
    • TableSelect::offset — Set limit offset
    • TableSelect::orderby — Set select sort criteria
    • TableSelect::where — Set select search condition
  • mysql_xdevapi\TableUpdate — TableUpdate class
    • TableUpdate::bind — Bind update query parameters
    • TableUpdate::__construct — TableUpdate constructor
    • TableUpdate::execute — Execute update query
    • TableUpdate::limit — Limit update row count
    • TableUpdate::orderby — Set sorting criteria
    • TableUpdate::set — Add field to be updated
    • TableUpdate::where — Set search filter
  • mysql_xdevapi\Warning — Warning class
    • Warning::__construct — Warning constructor


Introdução

This extension provides access to the MySQL Document Store via the X DevAPI. The X DevAPI is a common API provided by multiple MySQL Connectors providing easy access to relational tables as well as collections of documents, which are represented in JSON, from a API with CRUD-style operations.

The X DevAPI uses the X Protocol, the new generation client-server protocol of the MySQL 8.0 server.

For general information about the MySQL Document Store, please refer to the » MySQL Document Store chapter in the MySQL manual.


Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Configurações em Execução
  • Building / Compiling From Source


Dependências

This extension requires a MySQL 8+ server with the X plugin enabled (default).

Prerequisite libraries for compiling this extension are: Boost (1.53.0 or higher), OpenSSL, and Protobuf.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

An example installation procedure on Ubuntu 18.04 with PHP 7.2:

// Dependencies
$ apt install build-essential libprotobuf-dev libboost-dev openssl protobuf-compiler liblz4-tool zstd

// PHP with the desired extensions; php7.2-dev is required to compile
$ apt install php7.2-cli php7.2-dev php7.2-mysql php7.2-pdo php7.2-xml

// Compile the extension
$ pecl install mysql_xdevapi

The pecl install command does not enable PHP extensions (by default) and enabling PHP extensions can be done in several ways. Another PHP 7.2 on Ubuntu 18.04 example:

// Create its own ini file
$ echo "extension=mysql_xdevapi.so" > /etc/php/7.2/mods-available/mysql_xdevapi.ini

// Use the 'phpenmod' command (note: it's Debian/Ubuntu specific)
$ phpenmod -v 7.2 -s ALL mysql_xdevapi

// A 'phpenmod' alternative is to manually symlink it
// $ ln -s /etc/php/7.2/mods-available/mysql_xdevapi.ini /etc/php/7.2/cli/conf.d/20-mysql_xdevapi.ini

// Let's see which MySQL extensions are enabled now
$ php -m |grep mysql

mysql_xdevapi
mysqli
mysqlnd
pdo_mysql

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/mysql_xdevapi.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Mysql_xdevapi Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
xmysqlnd.collect_memory_statistics | 0 | INI_SYSTEM |
xmysqlnd.collect_statistics | 1 | INI_ALL |
xmysqlnd.debug |  | INI_SYSTEM |
xmysqlnd.mempool_default_size | 16000 | INI_ALL |
xmysqlnd.net_read_timeout | 31536000 | INI_SYSTEM |
xmysqlnd.trace_alloc |  | INI_SYSTEM |

Aqui está uma breve explicação das diretivas de configuração.

xmysqlnd.collect_memory_statistics int

xmysqlnd.collect_statistics int

xmysqlnd.debug string

xmysqlnd.mempool_default_size int

xmysqlnd.net_read_timeout int

xmysqlnd.trace_alloc string


Building / Compiling From Source

Considerations for compiling this extension from source.

  • The extension name is 'mysql_xdevapi', so use --enable-mysql-xdevapi.

  • Boost: required, optionally use the --with-boost=DIR configure option or set the MYSQL_XDEVAPI_BOOST_ROOT environment variable. Only the boost header files are required; not the binaries.

  • Google Protocol Buffers (protobuf): required, optionally use the --with-protobuf=DIR configure option or set the MYSQL_XDEVAPI_PROTOBUF_ROOT environment variable.

    Optionally use make protobufs to generate protobuf files (*.pb.cc/.h), and make clean-protobufs to delete generate protobuf files.

    Windows specific protobuf note: depending on your environment, the static library with a multi-threaded DLL runtime may be needed. To prepare, use the following options: -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF

  • Google Protocol Buffers / protocol compiler (protoc): required, ensure that proper 'protoc' is available in the PATH while building. It is especially important as Windows PHP SDK batch scripts may overwrite the environment.

  • Bison: required, and available from the PATH.

    Windows specific bison note: we strongly recommended that bison delivered with the chosen PHP SDKis used else an error similar to "zend_globals_macros.h(39): error C2375: 'zendparse': redefinition; different linkage Zend/zend_language_parser.h(214): note: see declaration of 'zendparse'" may be the result. Also, Windows PHP SDK batch scripts may overwrite the environment.

  • Windows Specific Notes: To prepare the environment, see the official Windows build documentation for » the current SDK.

    We recommend using the backslash '\\' instead of a slash '/' for all paths.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

MYSQLX_CLIENT_SSL (int)
MYSQLX_TYPE_DECIMAL (int)
MYSQLX_TYPE_TINY (int)
MYSQLX_TYPE_SHORT (int)
MYSQLX_TYPE_SMALLINT (int)
MYSQLX_TYPE_MEDIUMINT (int)
MYSQLX_TYPE_INT (int)
MYSQLX_TYPE_BIGINT (int)
MYSQLX_TYPE_LONG (int)
MYSQLX_TYPE_FLOAT (int)
MYSQLX_TYPE_DOUBLE (int)
MYSQLX_TYPE_NULL (int)
MYSQLX_TYPE_TIMESTAMP (int)
MYSQLX_TYPE_LONGLONG (int)
MYSQLX_TYPE_INT24 (int)
MYSQLX_TYPE_DATE (int)
MYSQLX_TYPE_TIME (int)
MYSQLX_TYPE_DATETIME (int)
MYSQLX_TYPE_YEAR (int)
MYSQLX_TYPE_NEWDATE (int)
MYSQLX_TYPE_ENUM (int)
MYSQLX_TYPE_SET (int)
MYSQLX_TYPE_TINY_BLOB (int)
MYSQLX_TYPE_MEDIUM_BLOB (int)
MYSQLX_TYPE_LONG_BLOB (int)
MYSQLX_TYPE_BLOB (int)
MYSQLX_TYPE_VAR_STRING (int)
MYSQLX_TYPE_STRING (int)
MYSQLX_TYPE_CHAR (int)
MYSQLX_TYPE_BYTES (int)
MYSQLX_TYPE_INTERVAL (int)
MYSQLX_TYPE_GEOMETRY (int)
MYSQLX_TYPE_JSON (int)
MYSQLX_TYPE_NEWDECIMAL (int)
MYSQLX_TYPE_BIT (int)
MYSQLX_LOCK_DEFAULT (int)
MYSQLX_LOCK_NOWAIT (int)
MYSQLX_LOCK_SKIP_LOCKED (int)


Registro de Alterações

As alterações a seguir foram feitas em classes/funções/métodos desta extensão.

General Changelog for the ext/mysql_xdevapi extension

This changelog references the ext/mysql_xdevapi extension.

Global ext/mysql_xdevapi changes

Versão | Descrição
8.0.28 | Removed TLSv1 and TLSv1.1 support. The values "TLSv1", "TLSv1.0", and "TLSv1.1" are now considered invalid for the "tls-versions" connection attribute.
8.0.26 | Deprecated TLSv1 and TLSv1.1 support.


Exemplos

The central entry point to the X DevAPI is the mysql_xdevapi\getSession() function, which receives a URI to a MySQL 8.0 Server and returns a mysql_xdevap\Session object.

Exemplo #1 Connecting to a MySQL Server

<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
die("Connection could not be established: " . $e->getMessage());
}

// ... use $session
?>

The session provides full access to the API. For a new MySQL Server installation, the first step is to create a database schema with a collection to store data:

Exemplo #2 Creating a Schema and Collection on the MySQL Server

<?php
$schema = $session->createSchema("test");
$collection = $schema->createCollection("example");
?>

When storing data, typically json_encode() is used to encode the data into JSON, which can then be stored inside a collection.

The following example stores data into the collection we created earlier, and then retrieve parts of it again.

Exemplo #3 Storing and Retrieving Data

<?php
$marco = [
"name" => "Marco",
"age" => 19,
"job" => "Programmer"
];
$mike = [
"name" => "Mike",
"age" => 39,
"job" => "Manager"
];

$schema = $session->getSchema("test");
$collection = $schema->getCollection("example");

$collection->add($marco, $mike)->execute();

var_dump($collection->find("name = 'Mike'")->execute()->fetchOne());
?>

O exemplo acima produzirá algo semelhante a:

array(4) {
  ["_id"]=>
  string(28) "00005ad66aaf0000000000000003"
  ["age"]=>
  int(39)
  ["job"]=>
  string(7) "Manager"
  ["name"]=>
  string(4) "Mike"
}

The example demonstrates that the MySQL Server adds an extra field named _id, which serves as primary key to the document.

The example also demonstrates that retrieved data is sorted alphabetically. That specific order comes from the efficient binary storage inside the MySQL server, but it should not be relied upon. Refer to the MySQL JSON datatype documentation for details.

Optionally use PHP's iterators to fetch multiple documents:

Exemplo #4 Fetching and Iterating Multiple Documents

<?php
$result = $collection->find()->execute();
foreach ($result as $doc) {
echo "{$doc["name"]} is a {$doc["job"]}.\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Marco is a Programmer.
Mike is a Manager.


Mysql_xdevapi Funções

Índice

  • expression — Bind prepared statement variables as parameters
  • getSession — Connect to a MySQL server


Bind prepared statement variables as parameters

  • « Mysql_xdevapi Funções
  • getSession »
  • PHP Manual
  • Mysql_xdevapi Funções
  • Bind prepared statement variables as parameters

expression

(Não há informação de versão disponível, talvez apenas no Git)

expression — Bind prepared statement variables as parameters

Descrição

mysql_xdevapi\expression(string $expression): object

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

expression

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\Expression() example

<?php
$expression = mysql_xdevapi\Expression("[age,job]");

$res = $coll->find("age > 30")->fields($expression)->limit(3)->execute();
$data = $res->fetchAll();

print_r($data);
?>

O exemplo acima produzirá algo semelhante a:

<?php


Connect to a MySQL server

  • « expression
  • mysql_xdevapi\BaseResult »
  • PHP Manual
  • Mysql_xdevapi Funções
  • Connect to a MySQL server

getSession

(Não há informação de versão disponível, talvez apenas no Git)

getSession — Connect to a MySQL server

Descrição

mysql_xdevapi\getSession(string $uri): mysql_xdevapi\Session

Connects to the MySQL server.

Parâmetros

uri

The URI to the MySQL server, such as mysqlx://user:password@host.

URI format:

scheme://[user[:[password]]@]target[:port][?attribute1=value1&attribute2=value2...

  • scheme: required, the connection protocol

    In mysql_xdevapi it is always 'mysqlx' (for X Protocol)

  • user: optional, the MySQL user account for authentication

  • password: optional, the MySQL user's password for authentication

  • target: required, the server instance the connection refers to:

    * TCP connection (host name, IPv4 address, or IPv6 address)

    * Unix socket path (local file path)

    * Windows named-pipe (local file path)

  • port: optional, network port of MySQL server.

    by default port for X Protocol is 33060

  • ?attribute=value: this element is optional and specifies a data dictionary that contains different options, including:

    • The auth (authentication mechanism) attribute as it relates to encrypted connections. For additional information, see » Command Options for Encrypted Connections. The following 'auth' values are supported: plain, mysql41, external, and sha256_mem.

    • The connect-timeout attribute affects the connection and not subsequent operations. It is set per connection whether on a single or multiple hosts.

      Pass in a positive integer to define the connection timeout in seconds, or pass in 0 (zero) to disable the timeout (infinite). Not defining connect-timeout uses the default value of 10.

      Related, the MYSQLX_CONNECTION_TIMEOUT (timeout in seconds) and MYSQLX_TEST_CONNECTION_TIMEOUT (used while running tests) environment variables can be set and used instead of connect-timeout in the URI. The connect-timeout URI option has precedence over these environment variables.

    • The optional compression attribute accepts these values: preferred (client negotiates with server to find a supported algorithm; connection is uncompressed if a mutually supported algorithm is not found), required (like "preferred", but connection is terminated if a mutually supported algorithm is not found), or disabled (connection is uncompressed). Defaults to preferred.

      This option was added in version 8.0.20.

    • The optional compression-algorithms attribute defines the desired compression algorithms (and their preferred usage order): zstd_stream (alias: zstd), lz4_message (alias: lz4), or deflate_stream (aliases: deflate or zlib). By default, the order used (depending on system availability) is lz4_message, zstd_stream, then deflate_stream. For example, passing in compression-algorithms=[lz4,zstd_stream] uses lz4 if it's available, otherwise zstd_stream is used. If both are unavailable then behavior depends on the compression value e.g., if compression=required then it'll fail with an error.

      This option was added in version 8.0.22.

Exemplo #1 URI examples

mysqlx://foobar
mysqlx://root@localhost?socket=%2Ftmp%2Fmysqld.sock%2F
mysqlx://foo:bar@localhost:33060
mysqlx://foo:bar@localhost:33160?ssl-mode=disabled
mysqlx://foo:bar@localhost:33260?ssl-mode=required
mysqlx://foo:bar@localhost:33360?ssl-mode=required&auth=mysql41
mysqlx://foo:bar@(/path/to/socket)
mysqlx://foo:bar@(/path/to/socket)?auth=sha256_mem
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]
mysqlx://foobar?ssl-ca=(/path/to/ca.pem)&ssl-crl=(/path/to/crl.pem)
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]?ssl-mode=disabled
mysqlx://foo:bar@localhost:33160/?connect-timeout=0
mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required
mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required&compression-algorithms=[lz4,zstd_stream]

For related information, see MySQL Shell's » Connecting using a URI String.

Valor Retornado

A Session object.

Erros/Exceções

A connection failure throws an Exception.

Exemplos

Exemplo #2 mysql_xdevapi\getSession() example

<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
die("Connection could not be established: " . $e->getMessage());
}

$schemas = $session->getSchemas();
print_r($schemas);

$mysql_version = $session->getServerVersion();
print_r($mysql_version);

var_dump($collection->find("name = 'Alfred'")->execute()->fetchOne());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => mysql_xdevapi\Schema Object
        (
            [name] => helloworld
        )
    [1] => mysql_xdevapi\Schema Object
        (
            [name] => information_schema
        )
    [2] => mysql_xdevapi\Schema Object
        (
            [name] => mysql
        )
    [3] => mysql_xdevapi\Schema Object
        (
            [name] => performance_schema
        )
    [4] => mysql_xdevapi\Schema Object
        (
            [name] => sys
        )
)

80012

array(4) {
  ["_id"]=>
  string(28) "00005ad66abf0001000400000003"
  ["age"]=>
  int(42)
  ["job"]=>
  string(7) "Butler"
  ["name"]=>
  string(4) "Alfred"
}


BaseResult interface

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\BaseResult {
/* Métodos */
abstract public getWarnings(): array
abstract public getWarningsCount(): int
}

Índice

  • BaseResult::getWarnings — Fetch warnings from last operation
  • BaseResult::getWarningsCount — Fetch warning count from last operation


Fetch warnings from last operation

  • « mysql_xdevapi\BaseResult
  • BaseResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\BaseResult
  • Fetch warnings from last operation

BaseResult::getWarnings

(Não há informação de versão disponível, talvez apenas no Git)

BaseResult::getWarnings — Fetch warnings from last operation

Descrição

abstract public mysql_xdevapi\BaseResult::getWarnings(): array

Fetches warnings generated by MySQL server's last operation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Fetch warning count from last operation

  • « BaseResult::getWarnings
  • mysql_xdevapi\Client »
  • PHP Manual
  • mysql_xdevapi\BaseResult
  • Fetch warning count from last operation

BaseResult::getWarningsCount

(Não há informação de versão disponível, talvez apenas no Git)

BaseResult::getWarningsCount — Fetch warning count from last operation

Descrição

abstract public mysql_xdevapi\BaseResult::getWarningsCount(): int

Returns the number of warnings raised by the last operation. Specifically, these warnings are raised by the MySQL server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of warnings from the last operation.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

O exemplo acima produzirá algo semelhante a:

2


Client class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

Provides access to the connection pool.

Resumo da classe

class mysql_xdevapi\Client {
/* Métodos */
public close(): bool
public getSession(): mysql_xdevapi\Session
}

Índice

  • mysql_xdevapi\Client::close — Close client
  • Client::__construct — Client constructor
  • Client::getClient — Get client session


Close client

  • « mysql_xdevapi\Client
  • Client::__construct »
  • PHP Manual
  • mysql_xdevapi\Client
  • Close client

mysql_xdevapi\Client::close

(Não há informação de versão disponível, talvez apenas no Git)

mysql_xdevapi\Client::close — Close client

Descrição

public mysql_xdevapi\Client::close(): bool

Close all client connections with the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if connections are closed.


Client constructor

  • « mysql_xdevapi\Client::close
  • Client::getClient »
  • PHP Manual
  • mysql_xdevapi\Client
  • Client constructor

Client::__construct

(Não há informação de versão disponível, talvez apenas no Git)

Client::__construct — Client constructor

Descrição

private mysql_xdevapi\Client::__construct()

Construct a client object.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\Client::__construct() example

<?php
$pooling_options = '{
"enabled": true,
"maxSize": 10,
"maxIdleTime": 3600,
"queueTimeOut": 1000
}';
$client = mysql_xdevapi\getClient($connection_uri, $pooling_options);
$session = $client->getSession();


Get client session

  • « Client::__construct
  • mysql_xdevapi\Collection »
  • PHP Manual
  • mysql_xdevapi\Client
  • Get client session

Client::getClient

(Não há informação de versão disponível, talvez apenas no Git)

Client::getClient — Get client session

Descrição

public mysql_xdevapi\Client::getSession(): mysql_xdevapi\Session

Get session associated with the client.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Session object.


Collection class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\Collection implements mysql_xdevapi\SchemaObject {
/* Propriedades */
public $name;
/* Métodos */
public add(mixed $document): mysql_xdevapi\CollectionAdd
public addOrReplaceOne(string $id, string $doc): mysql_xdevapi\Result
public count(): int
public createIndex(string $index_name, string $index_desc_json): void
public dropIndex(string $index_name): bool
public existsInDatabase(): bool
public find(string $search_condition = ?): mysql_xdevapi\CollectionFind
public getName(): string
public getOne(string $id): Document
public getSchema(): Schema Object
public getSession(): Session
public modify(string $search_condition): mysql_xdevapi\CollectionModify
public remove(string $search_condition): mysql_xdevapi\CollectionRemove
public removeOne(string $id): mysql_xdevapi\Result
public replaceOne(string $id, string $doc): mysql_xdevapi\Result
}

Propriedades

name

Índice

  • Collection::add — Add collection document
  • Collection::addOrReplaceOne — Add or replace collection document
  • Collection::__construct — Collection constructor
  • Collection::count — Get document count
  • Collection::createIndex — Create collection index
  • Collection::dropIndex — Drop collection index
  • Collection::existsInDatabase — Check if collection exists in database
  • Collection::find — Search for document
  • Collection::getName — Get collection name
  • Collection::getOne — Get one document
  • Collection::getSchema — Get schema object
  • Collection::getSession — Get session object
  • Collection::modify — Modify collection documents
  • Collection::remove — Remove collection documents
  • Collection::removeOne — Remove one collection document
  • Collection::replaceOne — Replace one collection document


Add collection document

  • « mysql_xdevapi\Collection
  • Collection::addOrReplaceOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Add collection document

Collection::add

(Não há informação de versão disponível, talvez apenas no Git)

Collection::add — Add collection document

Descrição

public mysql_xdevapi\Collection::add(mixed $document): mysql_xdevapi\CollectionAdd

Triggers the insertion of the given document(s) into the collection, and multiple variants of this method are supported. Options include:

  1. Add a single document as a JSON string.

  2. Add a single document as an array as: [ 'field' => 'value', 'field2' => 'value2' ... ]

  3. A mix of both, and multiple documents can be added in the same operation.

Parâmetros

document

One or multiple documents, and this can be either JSON or an array of fields with their associated values. This cannot be an empty array.

The MySQL server automatically generates unique _id values for each document (recommended), although this can be manually added as well. This value must be unique as otherwise the add operation will fail.

Valor Retornado

A CollectionAdd object. Use execute() to return a Result that can be used to query the number of affected items, the number warnings generated by the operation, or to fetch a list of generated IDs for the inserted documents.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::add() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Add two documents
$collection->add('{"name": "Fred", "age": 21, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Add two documents using a single JSON object
$result = $collection->add(
'{"name": "Bernie",
"jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}')->execute();

// Fetch a list of generated ID's from the last add()
$ids = $result->getGeneratedIds();
print_r($ids);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)

Notas

Nota:

A unique _id is generated by MySQL Server 8.0 or higher, as demonstrated in the example. The _id field must be manually defined if using MySQL Server 5.7.


Add or replace collection document

  • « Collection::add
  • Collection::__construct »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Add or replace collection document

Collection::addOrReplaceOne

(Não há informação de versão disponível, talvez apenas no Git)

Collection::addOrReplaceOne — Add or replace collection document

Descrição

public mysql_xdevapi\Collection::addOrReplaceOne(string $id, string $doc): mysql_xdevapi\Result

Add a new document, or replace a document if it already exists.

Here are several scenarios for this method:

  • If neither the id or any unique key values conflict with any document in the collection, then the document is added.

  • If the id does not match any document but one or more unique key values conflict with a document in the collection, then an error is raised.

  • If id matches an existing document and no unique keys are defined for the collection, then the document is replaced.

  • If id matches an existing document, and either all unique keys in the replacement document match that same document or they don't conflict with any other documents in the collection, then the document is replaced.

  • If id matches an existing document and one or more unique keys match a different document from the collection, then an error is raised.

Parâmetros

id

This is the filter id. If this id or any other field that has a unique index already exists in the collection, then it will update the matching document instead.

By default, this id is automatically generated by MySQL Server when the record was added, and is referenced as a field named '_id'.

doc

This is the document to add or replace, which is a JSON string.

Valor Retornado

A Result object.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::addOrReplaceOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Using add()
$result = $collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Using addOrReplaceOne()
// Note: we're passing in a known _id value here
$result = $collection->addOrReplaceOne('00005b6b53610000000000000056', '{"name": "Fred", "age": 21, "job": "Construction"}');

?>


Collection constructor

  • « Collection::addOrReplaceOne
  • Collection::count »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Collection constructor

Collection::__construct

(Não há informação de versão disponível, talvez apenas no Git)

Collection::__construct — Collection constructor

Descrição

private mysql_xdevapi\Collection::__construct()

Construct a Collection object.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::getOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 42, "job": "Butler"}')->execute();

// A unique _id is (by default, and recommended) generated by MySQL Server
// This retrieves the generated _id's; only one in this example, so $ids[0]
$ids = $result->getGeneratedIds();
$alfreds_id = $ids[0];

// ...

print_r($alfreds_id);
print_r($collection->getOne($alfreds_id));
?>

O exemplo acima produzirá algo semelhante a:

00005b6b536100000000000000b1

Array
(
    [_id] => 00005b6b536100000000000000b1
    [age] => 42
    [job] => Butler
    [name] => Alfred
)


Get document count

  • « Collection::__construct
  • Collection::createIndex »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get document count

Collection::count

(Não há informação de versão disponível, talvez apenas no Git)

Collection::count — Get document count

Descrição

public mysql_xdevapi\Collection::count(): int

This functionality is similar to a SELECT COUNT(*) SQL operation against the MySQL server for the current schema and collection. In other words, it counts the number of documents in the collection.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of documents in the collection.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::count() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"jobs": [
{"title":"Cat Herder","Salary":42000},
{"title":"Father","Salary":0}
],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [
{"title":"Scientist","Salary":18000},
{"title":"Mother","Salary":0}
],
"hobbies": ["Walking","Making pies"]}')
->execute();

var_dump($collection->count());
?>

O exemplo acima produzirá:

int(2)


Create collection index

  • « Collection::count
  • Collection::dropIndex »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Create collection index

Collection::createIndex

(Não há informação de versão disponível, talvez apenas no Git)

Collection::createIndex — Create collection index

Descrição

public mysql_xdevapi\Collection::createIndex(string $index_name, string $index_desc_json): void

Creates an index on the collection.

An exception is thrown if an index with the same name already exists, or if index definition is not correctly formed.

Parâmetros

index_name

The name of the index that to create. This name must be a valid index name as accepted by the CREATE INDEX SQL query.

index_desc_json

Definition of the index to create. It contains an array of IndexField objects, and each object describes a single document member to include in the index, and an optional string for the type of index that might be INDEX (default) or SPATIAL.

A single IndexField description consists of the following fields:

  • field: string, the full document path to the document member or field to be indexed.

  • type: string, one of the supported SQL column types to map the field into. For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for indexing may be added.

  • required: bool, (optional) true if the field is required to exist in the document. Defaults to false, except for GEOJSON where it defaults to true.

  • options: integer, (optional) special option flags for use when decoding GEOJSON data.

  • srid: integer, (optional) srid value for use when decoding GEOJSON data.

It is an error to include other fields not described above in IndexDefinition or IndexField documents.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\Collection::createIndex() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// Creating a text index
$collection->createIndex(
'myindex1',
'{"fields": [{
"field": "$.name",
"type": "TEXT(25)",
"required": true}],
"unique": false}'
);

// A spatial index
$collection->createIndex(
'myindex2',
'{"fields": [{
"field": "$.home",
"type": "GEOJSON",
"required": true}],
"type": "SPATIAL"}'
);

// Index with multiple fields
$collection->createIndex(
'myindex3',
'{"fields": [
{
"field": "$.name",
"type": "TEXT(20)",
"required": true
},
{
"field": "$.age",
"type": "INTEGER"
},
{
"field": "$.job",
"type": "TEXT(30)",
"required": false
}
],
"unique": true
}'
);


Drop collection index

  • « Collection::createIndex
  • Collection::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Drop collection index

Collection::dropIndex

(Não há informação de versão disponível, talvez apenas no Git)

Collection::dropIndex — Drop collection index

Descrição

public mysql_xdevapi\Collection::dropIndex(string $index_name): bool

Drop a collection index.

This operation does not yield an error if the index does not exist, but false is returned in that case.

Parâmetros

index_name

Name of collection index to drop.

Valor Retornado

true if the DROP INDEX operation succeeded, otherwise false.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::dropIndex() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

// ...

$collection = $schema->getCollection("people");

$collection->createIndex(
'myindex',
'{"fields": [{"field": "$.name", "type": "TEXT(25)", "required": true}], "unique": false}'
);

// ...

if ($collection->dropIndex('myindex')) {
echo "An index named 'myindex' was found, and dropped.";
}
?>

O exemplo acima produzirá:

An index named 'myindex' was found, and dropped.


Check if collection exists in database

  • « Collection::dropIndex
  • Collection::find »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Check if collection exists in database

Collection::existsInDatabase

(Não há informação de versão disponível, talvez apenas no Git)

Collection::existsInDatabase — Check if collection exists in database

Descrição

public mysql_xdevapi\Collection::existsInDatabase(): bool

Checks if the Collection object refers to a collection in the database (schema).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if collection exists in the database, else false if it does not.

A table defined with two columns (doc and _id) is considered a collection, and a third _json_schema column as of MySQL 8.0.21. Adding an additional column means existsInDatabase() will no longer see it as a collection.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::existsInDatabase() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

// ...

$collection = $schema->getCollection("people");

// ...

if (!$collection->existsInDatabase()) {
echo "The collection no longer exists in the database named addressbook. What happened?";
}
?>


Search for document

  • « Collection::existsInDatabase
  • Collection::getName »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Search for document

Collection::find

(Não há informação de versão disponível, talvez apenas no Git)

Collection::find — Search for document

Descrição

public mysql_xdevapi\Collection::find(string $search_condition = ?): mysql_xdevapi\CollectionFind

Search a database collection for a document or set of documents. The found documents are returned as a CollectionFind object is to further modify or fetch results from.

Parâmetros

search_condition

Although optional, normally a condition is defined to limit the results to a subset of documents.

Multiple elements might build the condition and the syntax supports parameter binding. The expression used as search condition must be a valid SQL expression. If no search condition is provided (field empty) then find('true') is assumed.

Valor Retornado

A CollectionFind object to verify the operation, or fetch the found documents.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::find() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob", "age": 19, "job": "Swimmer"}')->execute();
$collection->add('{"name": "Fred", "age": 20, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 21, "job": "Teacher"}')->execute();
$collection->add('{"name": "Suki", "age": 22, "job": "Teacher"}')->execute();

$find = $collection->find('job LIKE :job AND age > :age');
$result = $find
->bind(['job' => 'Teacher', 'age' => 20])
->sort('age DESC')
->limit(2)
->execute();

print_r($result->fetchAll());
?>

O exemplo acima produzirá:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b536100000000000000a8
            [age] => 22
            [job] => Teacher
            [name] => Suki
        )
    [1] => Array
        (
            [_id] => 00005b6b536100000000000000a7
            [age] => 21
            [job] => Teacher
            [name] => Wilma
        )
)


Get collection name

  • « Collection::find
  • Collection::getOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get collection name

Collection::getName

(Não há informação de versão disponível, talvez apenas no Git)

Collection::getName — Get collection name

Descrição

public mysql_xdevapi\Collection::getName(): string

Retrieve the collection's name.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The collection name, as a string.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::getName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// ...

var_dump($collection->getName());
?>

O exemplo acima produzirá algo semelhante a:

string(6) "people"


Get one document

  • « Collection::getName
  • Collection::getSchema »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get one document

Collection::getOne

(Não há informação de versão disponível, talvez apenas no Git)

Collection::getOne — Get one document

Descrição

public mysql_xdevapi\Collection::getOne(string $id): Document

Fetches one document from the collection.

This is a shortcut for: Collection.find("_id = :id").bind("id", id).execute().fetchOne();

Parâmetros

id

The document _id in the collection.

Valor Retornado

The collection object, or null if the _id does not match a document.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::getOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 42, "job": "Butler"}')->execute();

// A unique _id is (by default, and recommended) generated by MySQL Server
// This retrieves the generated _id's; only one in this example, so $ids[0]
$ids = $result->getGeneratedIds();
$alfreds_id = $ids[0];

// ...

print_r($alfreds_id);
print_r($collection->getOne($alfreds_id));
?>

O exemplo acima produzirá algo semelhante a:

00005b6b536100000000000000b1

Array
(
    [_id] => 00005b6b536100000000000000b1
    [age] => 42
    [job] => Butler
    [name] => Alfred
)


Get schema object

  • « Collection::getOne
  • Collection::getSession »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get schema object

Collection::getSchema

(Não há informação de versão disponível, talvez apenas no Git)

Collection::getSchema — Get schema object

Descrição

public mysql_xdevapi\Collection::getSchema(): Schema Object

Retrieve the schema object that contains the collection.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The schema object on success, or null if the object cannot be retrieved for the given collection.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

var_dump($collection->getSchema());
?>

O exemplo acima produzirá algo semelhante a:

object(mysql_xdevapi\Schema)#9 (1) {
  ["name"]=>
  string(11) "addressbook"
}


Get session object

  • « Collection::getSchema
  • Collection::modify »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get session object

Collection::getSession

(Não há informação de versão disponível, talvez apenas no Git)

Collection::getSession — Get session object

Descrição

public mysql_xdevapi\Collection::getSession(): Session

Get a new Session object from the Collection object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Session object.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::getSession() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// ...

$newsession = $collection->getSession();

var_dump($session);
var_dump($newsession);
?>

O exemplo acima produzirá algo semelhante a:

object(mysql_xdevapi\Session)#1 (0) {
}
object(mysql_xdevapi\Session)#4 (0) {
}


Modify collection documents

  • « Collection::getSession
  • Collection::remove »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Modify collection documents

Collection::modify

(Não há informação de versão disponível, talvez apenas no Git)

Collection::modify — Modify collection documents

Descrição

public mysql_xdevapi\Collection::modify(string $search_condition): mysql_xdevapi\CollectionModify

Modify the documents of a collection that meet specific search conditions. Multiple operations are allowed, and parameter binding is supported.

Parâmetros

search_condition

Must be a valid SQL expression used to match the documents to modify. This expression might be as simple as true, which matches all documents, or it might use functions and operators such as 'CAST(_id AS SIGNED) >= 10', 'age MOD 2 = 0 OR age MOD 3 = 0', or '_id IN ["2","5","7","10"]'.

Valor Retornado

If the operation is not executed, then the function will return a Modify object that can be used to add additional modify operations.

If the modify operation is executed, then the returned object will contain the result of the operation.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::modify() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob", "age": 19, "job": "Painter"}')->execute();

// Add two new jobs for all Painters: Artist and Crafter
$collection
->modify("job in ('Butler', 'Painter')")
->arrayAppend('job', 'Artist')
->arrayAppend('job', 'Crafter')
->execute();

// Remove the 'beer' field from all documents with the age 21
$collection
->modify('age < 21')
->unset(['beer'])
->execute();
?>


Remove collection documents

  • « Collection::modify
  • Collection::removeOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Remove collection documents

Collection::remove

(Não há informação de versão disponível, talvez apenas no Git)

Collection::remove — Remove collection documents

Descrição

public mysql_xdevapi\Collection::remove(string $search_condition): mysql_xdevapi\CollectionRemove

Removes documents of a collection that meet specific search conditions. Multiple operations are allowed, and parameter binding is supported.

Parâmetros

search_condition

Must be a valid SQL expression used to match the documents to remove. This expression might be as simple as true, which matches all documents, or it might use functions and operators such as 'CAST(_id AS SIGNED) >= 10', 'age MOD 2 = 0 OR age MOD 3 = 0', or '_id IN ["2","5","7","10"]'.

Valor Retornado

If the operation is not executed, then the function will return a Remove object that can be used to add additional remove operations.

If the remove operation is executed, then the returned object will contain the result of the operation.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::remove() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob", "age": 19, "job": "Painter"}')->execute();

// Remove all painters
$collection
->remove("job in ('Painter')")
->execute();

// Remove the oldest butler
$collection
->remove("job in ('Butler')")
->sort('age desc')
->limit(1)
->execute();

// Remove record with lowest age
$collection
->remove('true')
->sort('age desc')
->limit(1)
->execute();
?>


Remove one collection document

  • « Collection::remove
  • Collection::replaceOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Remove one collection document

Collection::removeOne

(Não há informação de versão disponível, talvez apenas no Git)

Collection::removeOne — Remove one collection document

Descrição

public mysql_xdevapi\Collection::removeOne(string $id): mysql_xdevapi\Result

Remove one document from the collection with the correspending ID. This is a shortcut for Collection.remove("_id = :id").bind("id", id).execute().

Parâmetros

id

The ID of the collection document to remove. Typically this is the _id that was generated by MySQL Server when the record was added.

Valor Retornado

A Result object that can be used to query the number of affected items or the number warnings generated by the operation.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::removeOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();

// Normally the _id is known by other means,
// but for this example let's fetch the generated id and use it
$ids = $result->getGeneratedIds();
$alfred_id = $ids[0];

$result = $collection->removeOne($alfred_id);

if(!$result->getAffectedItemsCount()) {
echo "Alfred with id $alfred_id was not removed.";
} else {
echo "Goodbye, Alfred, you can take _id $alfred_id with you.";
}
?>

O exemplo acima produzirá algo semelhante a:

Goodbye, Alfred, you can take _id 00005b6b536100000000000000cb with you.


Replace one collection document

  • « Collection::removeOne
  • mysql_xdevapi\CollectionAdd »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Replace one collection document

Collection::replaceOne

(Não há informação de versão disponível, talvez apenas no Git)

Collection::replaceOne — Replace one collection document

Descrição

public mysql_xdevapi\Collection::replaceOne(string $id, string $doc): mysql_xdevapi\Result

Updates (or replaces) the document identified by ID, if it exists.

Parâmetros

id

ID of the document to replace or update. Typically this is the _id that was generated by MySQL Server when the record was added.

doc

Collection document to update or replace the document matching the id parameter.

This document can be either a document object or a valid JSON string describing the new document.

Valor Retornado

A Result object that can be used to query the number of affected items and the number warnings generated by the operation.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::replaceOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();

// Normally the _id is known by other means,
// but for this example let's fetch the generated id and use it
$ids = $result->getGeneratedIds();
$alfred_id = $ids[0];

// ...

$alfred = $collection->getOne($alfred_id);
$alfred['age'] = 81;
$alfred['job'] = 'Guru';

$collection->replaceOne($alfred_id, $alfred);

?>


CollectionAdd class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\CollectionAdd implements mysql_xdevapi\Executable {
/* Métodos */
public execute(): mysql_xdevapi\Result
}

Índice

  • CollectionAdd::__construct — CollectionAdd constructor
  • CollectionAdd::execute — Execute the statement


CollectionAdd constructor

  • « mysql_xdevapi\CollectionAdd
  • CollectionAdd::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionAdd
  • CollectionAdd constructor

CollectionAdd::__construct

(Não há informação de versão disponível, talvez apenas no Git)

CollectionAdd::__construct — CollectionAdd constructor

Descrição

private mysql_xdevapi\CollectionAdd::__construct()

Use to add a document to a collection; called from a Collection object.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionAdd::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Add two documents
$collection
->add('{"name": "Fred", "age": 21, "job": "Construction"}')
->execute();

$collection
->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')
->execute();

// Add two documents using a single JSON object
$result = $collection
->add(
'{"name": "Bernie",
"jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}')
->execute();

// Fetch a list of generated ID's from the last add()
$ids = $result->getGeneratedIds();
print_r($ids);

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)

Notas

Nota:

A unique _id is generated by MySQL Server 8.0 or higher, as demonstrated in the example. The _id field must be manually defined if using MySQL Server 5.7.


Execute the statement

  • « CollectionAdd::__construct
  • mysql_xdevapi\CollectionFind »
  • PHP Manual
  • mysql_xdevapi\CollectionAdd
  • Execute the statement

CollectionAdd::execute

(Não há informação de versão disponível, talvez apenas no Git)

CollectionAdd::execute — Execute the statement

Descrição

public mysql_xdevapi\CollectionAdd::execute(): mysql_xdevapi\Result

The execute method is required to send the CRUD operation request to the MySQL server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Result object that can be used to verify the status of the operation, such as the number of affected rows.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionAdd::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Add two documents
$collection
->add('{"name": "Fred", "age": 21, "job": "Construction"}')
->execute();

$collection
->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')
->execute();

// Add two documents using a single JSON object
$result = $collection
->add(
'{"name": "Bernie",
"jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}')
->execute();

// Fetch a list of generated ID's from the last add()
$ids = $result->getGeneratedIds();
print_r($ids);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)


CollectionFind class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\CollectionFind implements mysql_xdevapi\Executable, mysql_xdevapi\CrudOperationBindable, mysql_xdevapi\CrudOperationLimitable, mysql_xdevapi\CrudOperationSortable {
/* Métodos */
public bind(array $placeholder_values): mysql_xdevapi\CollectionFind
public execute(): mysql_xdevapi\DocResult
public fields(string $projection): mysql_xdevapi\CollectionFind
public groupBy(string $sort_expr): mysql_xdevapi\CollectionFind
public having(string $sort_expr): mysql_xdevapi\CollectionFind
public limit(int $rows): mysql_xdevapi\CollectionFind
public lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind
public lockShared(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind
public offset(int $position): mysql_xdevapi\CollectionFind
public sort(string $sort_expr): mysql_xdevapi\CollectionFind
}

Índice

  • CollectionFind::bind — Bind value to query placeholder
  • CollectionFind::__construct — CollectionFind constructor
  • CollectionFind::execute — Execute the statement
  • CollectionFind::fields — Set document field filter
  • CollectionFind::groupBy — Set grouping criteria
  • CollectionFind::having — Set condition for aggregate functions
  • CollectionFind::limit — Limit number of returned documents
  • CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK
  • CollectionFind::lockShared — Execute operation with SHARED LOCK
  • CollectionFind::offset — Skip given number of elements to be returned
  • CollectionFind::sort — Set the sorting criteria


Bind value to query placeholder

  • « mysql_xdevapi\CollectionFind
  • CollectionFind::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Bind value to query placeholder

CollectionFind::bind

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::bind — Bind value to query placeholder

Descrição

public mysql_xdevapi\CollectionFind::bind(array $placeholder_values): mysql_xdevapi\CollectionFind

It allows the user to bind a parameter to the placeholder in the search condition of the find operation. The placeholder has the form of :NAME where ':' is a common prefix that must always exists before any NAME, NAME is the actual name of the placeholder. The bind function accepts a list of placeholders if multiple entities have to be substituted in the search condition.

Parâmetros

placeholder_values

Values to substitute in the search condition; multiple values are allowed and are passed as an array where "PLACEHOLDER_NAME => PLACEHOLDER_VALUE".

Valor Retornado

A CollectionFind object, or chain with execute() to return a Result object.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionFind::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$result = $create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->execute();

var_dump($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


CollectionFind constructor

  • « CollectionFind::bind
  • CollectionFind::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • CollectionFind constructor

CollectionFind::__construct

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::__construct — CollectionFind constructor

Descrição

private mysql_xdevapi\CollectionFind::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 CollectionFind example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$result = $create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->execute();

var_dump($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


Execute the statement

  • « CollectionFind::__construct
  • CollectionFind::fields »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Execute the statement

CollectionFind::execute

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::execute — Execute the statement

Descrição

public mysql_xdevapi\CollectionFind::execute(): mysql_xdevapi\DocResult

Execute the find operation; this functionality allows for method chaining.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A mysql_xdevapi\DocResult object that can be used to either fetch results from, or to query the status of the operation.

Exemplos

Exemplo #1 CollectionFind example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->execute();

var_dump($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


Set document field filter

  • « CollectionFind::execute
  • CollectionFind::groupBy »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set document field filter

CollectionFind::fields

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::fields — Set document field filter

Descrição

public mysql_xdevapi\CollectionFind::fields(string $projection): mysql_xdevapi\CollectionFind

Defines the columns for the query to return. If not defined, all columns are used.

Parâmetros

projection

Can either be a single string or an array of strings identifying the columns to be returned for each document that match the search condition.

Valor Retornado

A CollectionFind object that can be used for further processing.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionFind::fields() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->fields('name')
->execute();

var_dump($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(1) {
    ["name"]=>
    string(6) "Alfred"
  }
}


Set grouping criteria

  • « CollectionFind::fields
  • CollectionFind::having »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set grouping criteria

CollectionFind::groupBy

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::groupBy — Set grouping criteria

Descrição

public mysql_xdevapi\CollectionFind::groupBy(string $sort_expr): mysql_xdevapi\CollectionFind

This function can be used to group the result set by one or more columns. It is often used with aggregate functions such as COUNT, MAX, MIN, SUM etc.

Parâmetros

sort_expr

The column or columns that have to be used for the group operation, this can either be a single string or an array of string arguments, one for each column.

Valor Retornado

A CollectionFind object that can be used for further processing.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionFind::groupBy() example

<?php

// Assuming $coll is a valid Collection object

// Extract all the documents from the Collection and group the results by the 'name' field
$res = $coll->find()->groupBy('name')->execute();

?>


Set condition for aggregate functions

  • « CollectionFind::groupBy
  • CollectionFind::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set condition for aggregate functions

CollectionFind::having

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::having — Set condition for aggregate functions

Descrição

public mysql_xdevapi\CollectionFind::having(string $sort_expr): mysql_xdevapi\CollectionFind

This function can be used after the 'field' operation in order to make a selection on the documents to extract.

Parâmetros

sort_expr

This must be a valid SQL expression, the use of aggreate functions is allowed

Valor Retornado

CollectionFind object that can be used for further processing

Exemplos

Exemplo #1 mysql_xdevapi\CollectionFind::having() example

<?php

//Assuming $coll is a valid Collection object

//Find all the documents for which the 'age' is greather than 40,
//Only the columns 'name' and 'age' are returned in the Result object
$res = $coll->find()->fields(['name','age'])->having('age > 40')->execute();

?>


Limit number of returned documents

  • « CollectionFind::having
  • CollectionFind::lockExclusive »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Limit number of returned documents

CollectionFind::limit

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::limit — Limit number of returned documents

Descrição

public mysql_xdevapi\CollectionFind::limit(int $rows): mysql_xdevapi\CollectionFind

Set the maximum number of documents to return.

Parâmetros

rows

Maximum number of documents.

Valor Retornado

A CollectionFind object that can be used for additional processing; chain with the execute() method to return a DocResult object.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionFind::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();
$create
->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->limit(1)
->execute();

var_dump($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Execute operation with EXCLUSIVE LOCK

  • « CollectionFind::limit
  • CollectionFind::lockShared »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Execute operation with EXCLUSIVE LOCK

CollectionFind::lockExclusive

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK

Descrição

public mysql_xdevapi\CollectionFind::lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind

Locks the document exclusively. As long as the document is locked, other transactions can't update the document, use SELECT ... LOCK IN SHARE MODE, or read the data in certain transaction isolation levels. Consistent reads ignore any locks set on the records that exist in the read view.

To avoid concurrency problems, it makes sense to use this function with the mysql_xdevapi\Collection::modify() method. Essentially, this function uses row locks to serialise access to rows.

Parâmetros

lock_waiting_option

Optional waiting option. By default it is MYSQLX_LOCK_DEFAULT. Valid values are these constants:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Valor Retornado

Returns a CollectionFind object that can be used for further processing.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionFind::lockExclusive() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$session->startTransaction();

$result = $collection
->find("age > 50")
->lockExclusive()
->execute();

// ... do an operation on the object

// Complete the transaction and unlock the document
$session->commit();
?>


Execute operation with SHARED LOCK

  • « CollectionFind::lockExclusive
  • CollectionFind::offset »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Execute operation with SHARED LOCK

CollectionFind::lockShared

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::lockShared — Execute operation with SHARED LOCK

Descrição

public mysql_xdevapi\CollectionFind::lockShared(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind

Allows to share the documents between multiple transactions which are locking in shared mode.

Other sessions can read the rows, but cannot modify them until your transaction commits.

If any of these rows were changed by another transaction that hasn't been committed, the query will wait until that transaction has ended to be able to use the latest values.

Parâmetros

lock_waiting_option

Optional waiting option. By default it is MYSQLX_LOCK_DEFAULT. Valid values are these constants:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Valor Retornado

A CollectionFind object that can be used for further processing

Exemplos

Exemplo #1 mysql_xdevapi\CollectionFind::lockShared() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$session->startTransaction();

$result = $collection
->find("age > 50")
->lockShared()
->execute();

// ... read the object in shared mode

// Complete the transaction and unlock the document
$session->commit();
?>


Skip given number of elements to be returned

  • « CollectionFind::lockShared
  • CollectionFind::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Skip given number of elements to be returned

CollectionFind::offset

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::offset — Skip given number of elements to be returned

Descrição

public mysql_xdevapi\CollectionFind::offset(int $position): mysql_xdevapi\CollectionFind

Skip (offset) these number of elements that otherwise would be returned by the find operation. Use with the limit() method.

Defining an offset larger than the result set size results in an empty set.

Parâmetros

position

Number of elements to skip for the limit() operation.

Valor Retornado

A CollectionFind object that can be used for additional processing.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionFind::offset() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();
$create
->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find()
->sort('age asc')
->offset(1)
->limit(1)
->execute();

var_dump($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Set the sorting criteria

  • « CollectionFind::offset
  • mysql_xdevapi\CollectionModify »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set the sorting criteria

CollectionFind::sort

(Não há informação de versão disponível, talvez apenas no Git)

CollectionFind::sort — Set the sorting criteria

Descrição

public mysql_xdevapi\CollectionFind::sort(string $sort_expr): mysql_xdevapi\CollectionFind

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Parâmetros

sort_expr

One or more sorting expressions can be provided. The evaluation is from left to right, and each expression is separated by a comma.

Valor Retornado

A CollectionFind object that can be used to execute the command, or to add additional operations.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionFind::sort() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();
$create
->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find()
->sort('job desc', 'age asc')
->execute();

var_dump($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000106"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
  [1]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000107"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


CollectionModify class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\CollectionModify implements mysql_xdevapi\Executable, mysql_xdevapi\CrudOperationBindable, mysql_xdevapi\CrudOperationLimitable, mysql_xdevapi\CrudOperationSkippable, mysql_xdevapi\CrudOperationSortable {
/* Métodos */
public arrayAppend(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify
public arrayInsert(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify
public bind(array $placeholder_values): mysql_xdevapi\CollectionModify
public execute(): mysql_xdevapi\Result
public limit(int $rows): mysql_xdevapi\CollectionModify
public patch(string $document): mysql_xdevapi\CollectionModify
public replace(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify
public set(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify
public skip(int $position): mysql_xdevapi\CollectionModify
public sort(string $sort_expr): mysql_xdevapi\CollectionModify
public unset(array $fields): mysql_xdevapi\CollectionModify
}

Índice

  • CollectionModify::arrayAppend — Append element to an array field
  • CollectionModify::arrayInsert — Insert element into an array field
  • CollectionModify::bind — Bind value to query placeholder
  • CollectionModify::__construct — CollectionModify constructor
  • CollectionModify::execute — Execute modify operation
  • CollectionModify::limit — Limit number of modified documents
  • CollectionModify::patch — Patch document
  • CollectionModify::replace — Replace document field
  • CollectionModify::set — Set document attribute
  • CollectionModify::skip — Skip elements
  • CollectionModify::sort — Set the sorting criteria
  • CollectionModify::unset — Unset the value of document fields


Append element to an array field

  • « mysql_xdevapi\CollectionModify
  • CollectionModify::arrayInsert »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Append element to an array field

CollectionModify::arrayAppend

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::arrayAppend — Append element to an array field

Descrição

public mysql_xdevapi\CollectionModify::arrayAppend(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify

Add an element to a document's field, as multiple elements of a field are represented as an array. Unlike arrayInsert(), arrayAppend() always appends the new element at the end of the array, whereas arrayInsert() can define the location.

Parâmetros

collection_field

The identifier of the field where the new element is inserted.

expression_or_literal

The new element to insert at the end of the document field array.

Valor Retornado

A CollectionModify object that can be used to execute the command, or to add additional operations.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::arrayAppend() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name in ('Bernie', 'Jane')")
->arrayAppend('traits', 'Happy')
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010c
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


Insert element into an array field

  • « CollectionModify::arrayAppend
  • CollectionModify::bind »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Insert element into an array field

CollectionModify::arrayInsert

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::arrayInsert — Insert element into an array field

Descrição

public mysql_xdevapi\CollectionModify::arrayInsert(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify

Adds an element to a document's field, as multiple elements of a field are represented as an array. Unlike mysql_xdevapi\CollectionModify::arrayAppend() this method allows to specify where the new element is inserted by defining which item it is after, whereas mysql_xdevapi\CollectionModify::arrayAppend() always appends the new element at the end of the array.

Parâmetros

collection_field

Identifies the item in the array after which the new element will be inserted. The format of this parameter is FIELD_NAME[ INDEX ] where FIELD_NAME is the name of the document field to add the element to, and INDEX is the INDEX of the element within the field.

The INDEX field is zero based, so the first item of the array has an index of 0.

expression_or_literal

The new element to insert after FIELD_NAME[ INDEX ]

Valor Retornado

A CollectionModify object that can be used to execute the command, or to add additional operations

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::arrayInsert() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name in ('Bernie', 'Jane')")
->arrayInsert('traits[1]', 'Happy')
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010d
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Happy
                    [2] => Brother
                    [3] => Human
                )
        )
)


Bind value to query placeholder

  • « CollectionModify::arrayInsert
  • CollectionModify::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Bind value to query placeholder

CollectionModify::bind

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::bind — Bind value to query placeholder

Descrição

public mysql_xdevapi\CollectionModify::bind(array $placeholder_values): mysql_xdevapi\CollectionModify

Bind a parameter to the placeholder in the search condition of the modify operation.

The placeholder has the form of :NAME where ':' is a common prefix that must always exists before any NAME where NAME is the name of the placeholder. The bind method accepts a list of placeholders if multiple entities have to be substituted in the search condition of the modify operation.

Parâmetros

placeholder_values

Placeholder values to substitute in the search condition. Multiple values are allowed and have to be passed as an array of mappings PLACEHOLDER_NAME->PLACEHOLDER_VALUE.

Valor Retornado

A CollectionModify object that can be used to execute the command, or to add additional operations.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name = :name")
->bind(['name' => 'Bernie'])
->arrayAppend('traits', 'Happy')
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000110
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


CollectionModify constructor

  • « CollectionModify::bind
  • CollectionModify::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • CollectionModify constructor

CollectionModify::__construct

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::__construct — CollectionModify constructor

Descrição

private mysql_xdevapi\CollectionModify::__construct()

Modifies (updates) a collection and is instantiated by the mysql_xdevapi\Collection::modify() method.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name in ('Bernie', 'Jane')")
->arrayAppend('traits', 'Happy')
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010c
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


Execute modify operation

  • « CollectionModify::__construct
  • CollectionModify::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Execute modify operation

CollectionModify::execute

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::execute — Execute modify operation

Descrição

public mysql_xdevapi\CollectionModify::execute(): mysql_xdevapi\Result

The execute method is required to send the CRUD operation request to the MySQL server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Result object that can be used to verify the status of the operation, such as the number of affected rows.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::execute() example

<?php

/* ... */

?>


Limit number of modified documents

  • « CollectionModify::execute
  • CollectionModify::patch »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Limit number of modified documents

CollectionModify::limit

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::limit — Limit number of modified documents

Descrição

public mysql_xdevapi\CollectionModify::limit(int $rows): mysql_xdevapi\CollectionModify

Limit the number of documents modified by this operation. Optionally combine with skip() to define an offset value.

Parâmetros

rows

The maximum number of documents to modify.

Valor Retornado

A CollectionModify object.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Fred", "age": 21, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();
$collection->add('{"name": "Betty", "age": 24, "job": "Teacher"}')->execute();

$collection
->modify("job = :job")
->bind(['job' => 'Teacher'])
->set('job', 'Principal')
->limit(1)
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000118
            [age] => 21
            [job] => Construction
            [name] => Fred
        )
    [1] => Array
        (
            [_id] => 00005b6b53610000000000000119
            [age] => 23
            [job] => Principal
            [name] => Wilma
        )
    [2] => Array
        (
            [_id] => 00005b6b5361000000000000011a
            [age] => 24
            [job] => Teacher
            [name] => Betty
        )
)


Patch document

  • « CollectionModify::limit
  • CollectionModify::replace »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Patch document

CollectionModify::patch

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::patch — Patch document

Descrição

public mysql_xdevapi\CollectionModify::patch(string $document): mysql_xdevapi\CollectionModify

Takes a patch object and applies it on one or more documents, and can update multiple document properties.

Parâmetros

document

A document with the properties to apply to the matching documents.

Valor Retornado

A CollectionModify object.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::patch() example

<?php

$res = $coll->modify('"Programmatore" IN job')->patch('{"Hobby" : "Programmare"}')->execute();

?>


Replace document field

  • « CollectionModify::patch
  • CollectionModify::set »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Replace document field

CollectionModify::replace

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::replace — Replace document field

Descrição

public mysql_xdevapi\CollectionModify::replace(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify

Replace (update) a given field value with a new one.

Parâmetros

collection_field

The document path of the item to set.

expression_or_literal

The value to set on the specified attribute.

Valor Retornado

A CollectionModify object.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::replace() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name = :name")
->bind(['name' => 'Bernie'])
->replace("name", "Bern")
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000011b
            [name] => Bern
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                )
        )
)


Set document attribute

  • « CollectionModify::replace
  • CollectionModify::skip »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Set document attribute

CollectionModify::set

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::set — Set document attribute

Descrição

public mysql_xdevapi\CollectionModify::set(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify

Sets or updates attributes on documents in a collection.

Parâmetros

collection_field

The document path (name) of the item to set.

expression_or_literal

The value to set it to.

Valor Retornado

A CollectionModify object.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::set() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name = :name")
->bind(['name' => 'Bernie'])
->set("name", "Bern")
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000111
            [name] => Bern
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                )
        )
)


Skip elements

  • « CollectionModify::set
  • CollectionModify::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Skip elements

CollectionModify::skip

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::skip — Skip elements

Descrição

public mysql_xdevapi\CollectionModify::skip(int $position): mysql_xdevapi\CollectionModify

Skips the first N elements that would otherwise be returned by a find operation. If the number of elements skipped is larger than the size of the result set, then the find operation returns an empty set.

Parâmetros

position

Number of elements to skip.

Valor Retornado

A CollectionModify object to use for further processing.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::skip() example

<?php

$coll->modify('age > :age')->sort('age desc')->unset(['age'])->bind(['age' => 20])->limit(4)->skip(1)->execute();

?>


Set the sorting criteria

  • « CollectionModify::skip
  • CollectionModify::unset »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Set the sorting criteria

CollectionModify::sort

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::sort — Set the sorting criteria

Descrição

public mysql_xdevapi\CollectionModify::sort(string $sort_expr): mysql_xdevapi\CollectionModify

Sorts the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Parâmetros

sort_expr

One or more sort expressions can be provided. The evaluation is from left to right and each expression must be separated by a comma.

Valor Retornado

CollectionModify object that can be used for further processing.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::sort() example

<?php

$res = $coll->modify('true')->sort('name desc', 'age asc')->limit(4)->set('Married', 'NO')->execute();

?>


Unset the value of document fields

  • « CollectionModify::sort
  • mysql_xdevapi\CollectionRemove »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Unset the value of document fields

CollectionModify::unset

(Não há informação de versão disponível, talvez apenas no Git)

CollectionModify::unset — Unset the value of document fields

Descrição

public mysql_xdevapi\CollectionModify::unset(array $fields): mysql_xdevapi\CollectionModify

Removes attributes from documents in a collection.

Parâmetros

fields

The attributes to remove from documents in a collection.

Valor Retornado

CollectionModify object that can be used for further processing.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionModify::unset() example

<?php

$res = $coll->modify('job like :job_name')->unset(["age", "name"])->bind(['job_name' => 'Plumber'])->execute();

?>


CollectionRemove class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\CollectionRemove implements mysql_xdevapi\Executable, mysql_xdevapi\CrudOperationBindable, mysql_xdevapi\CrudOperationLimitable, mysql_xdevapi\CrudOperationSortable {
/* Métodos */
public bind(array $placeholder_values): mysql_xdevapi\CollectionRemove
public execute(): mysql_xdevapi\Result
public limit(int $rows): mysql_xdevapi\CollectionRemove
public sort(string $sort_expr): mysql_xdevapi\CollectionRemove
}

Índice

  • CollectionRemove::bind — Bind value to placeholder
  • CollectionRemove::__construct — CollectionRemove constructor
  • CollectionRemove::execute — Execute remove operation
  • CollectionRemove::limit — Limit number of documents to remove
  • CollectionRemove::sort — Set the sorting criteria


Bind value to placeholder

  • « mysql_xdevapi\CollectionRemove
  • CollectionRemove::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Bind value to placeholder

CollectionRemove::bind

(Não há informação de versão disponível, talvez apenas no Git)

CollectionRemove::bind — Bind value to placeholder

Descrição

public mysql_xdevapi\CollectionRemove::bind(array $placeholder_values): mysql_xdevapi\CollectionRemove

Bind a parameter to the placeholder in the search condition of the remove operation.

The placeholder has the form of :NAME where ':' is a common prefix that must always exists before any NAME where NAME is the name of the placeholder. The bind method accepts a list of placeholders if multiple entities have to be substituted in the search condition of the remove operation.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

placeholder_values

Placeholder values to substitute in the search condition. Multiple values are allowed and have to be passed as an array of mappings PLACEHOLDER_NAME->PLACEHOLDER_VALUE.

Valor Retornado

A CollectionRemove object that can be used to execute the command, or to add additional operations.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionRemove::bind() example

<?php

$res = $coll->remove('age > :age_from and age < :age_to')->bind(['age_from' => 20, 'age_to' => 50])->limit(7)->execute();

?>


CollectionRemove constructor

  • « CollectionRemove::bind
  • CollectionRemove::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • CollectionRemove constructor

CollectionRemove::__construct

(Não há informação de versão disponível, talvez apenas no Git)

CollectionRemove::__construct — CollectionRemove constructor

Descrição

private mysql_xdevapi\CollectionRemove::__construct()

Removes collection documents and is instantiated by the mysql_xdevapi\Collection::remove() method.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\Collection::remove() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob", "age": 19, "job": "Painter"}')->execute();

// Remove all painters
$collection
->remove("job in ('Painter')")
->execute();

// Remove the oldest butler
$collection
->remove("job in ('Butler')")
->sort('age desc')
->limit(1)
->execute();

// Remove record with lowest age
$collection
->remove('true')
->sort('age desc')
->limit(1)
->execute();
?>


Execute remove operation

  • « CollectionRemove::__construct
  • CollectionRemove::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Execute remove operation

CollectionRemove::execute

(Não há informação de versão disponível, talvez apenas no Git)

CollectionRemove::execute — Execute remove operation

Descrição

public mysql_xdevapi\CollectionRemove::execute(): mysql_xdevapi\Result

The execute function needs to be invoked in order to trigger the client to send the CRUD operation request to the server.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Result object.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionRemove::execute() example

<?php

$res = $coll->remove('true')->sort('age desc')->limit(2)->execute();

?>


Limit number of documents to remove

  • « CollectionRemove::execute
  • CollectionRemove::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Limit number of documents to remove

CollectionRemove::limit

(Não há informação de versão disponível, talvez apenas no Git)

CollectionRemove::limit — Limit number of documents to remove

Descrição

public mysql_xdevapi\CollectionRemove::limit(int $rows): mysql_xdevapi\CollectionRemove

Sets the maximum number of documents to remove.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

rows

The maximum number of documents to remove.

Valor Retornado

Returns a CollectionRemove object that can be used to execute the command, or to add additional operations.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionRemove::limit() example

<?php

$res = $coll->remove('job in (\'Barista\', \'Programmatore\', \'Ballerino\', \'Programmatrice\')')->limit(5)->sort(['age desc', 'name asc'])->execute();

?>


Set the sorting criteria

  • « CollectionRemove::limit
  • mysql_xdevapi\ColumnResult »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Set the sorting criteria

CollectionRemove::sort

(Não há informação de versão disponível, talvez apenas no Git)

CollectionRemove::sort — Set the sorting criteria

Descrição

public mysql_xdevapi\CollectionRemove::sort(string $sort_expr): mysql_xdevapi\CollectionRemove

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

sort_expr

One or more sorting expressions can be provided. The evaluation is from left to right, and each expression is separated by a comma.

Valor Retornado

A CollectionRemove object that can be used to execute the command, or to add additional operations.

Exemplos

Exemplo #1 mysql_xdevapi\CollectionRemove::sort() example

<?php

$res = $coll->remove('true')->sort('age desc')->limit(2)->execute();

?>


ColumnResult class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\ColumnResult {
/* Métodos */
public getCharacterSetName(): string
public getCollationName(): string
public getColumnLabel(): string
public getColumnName(): string
public getFractionalDigits(): int
public getLength(): int
public getSchemaName(): string
public getTableLabel(): string
public getTableName(): string
public getType(): int
public isNumberSigned(): int
public isPadded(): int
}

Índice

  • ColumnResult::__construct — ColumnResult constructor
  • ColumnResult::getCharacterSetName — Get character set
  • ColumnResult::getCollationName — Get collation name
  • ColumnResult::getColumnLabel — Get column label
  • ColumnResult::getColumnName — Get column name
  • ColumnResult::getFractionalDigits — Get fractional digit length
  • ColumnResult::getLength — Get column field length
  • ColumnResult::getSchemaName — Get schema name
  • ColumnResult::getTableLabel — Get table label
  • ColumnResult::getTableName — Get table name
  • ColumnResult::getType — Get column type
  • ColumnResult::isNumberSigned — Check if signed type
  • ColumnResult::isPadded — Check if padded


ColumnResult constructor

  • « mysql_xdevapi\ColumnResult
  • ColumnResult::getCharacterSetName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • ColumnResult constructor

ColumnResult::__construct

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::__construct — ColumnResult constructor

Descrição

private mysql_xdevapi\ColumnResult::__construct()

Retrieves column metadata, such as its character set; this is instantiated by the mysql_xdevapi\RowResult::getColumns() method.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS nonsense")->execute();
$session->sql("CREATE DATABASE nonsense")->execute();
$session->sql("CREATE TABLE nonsense.numbers (hello int, world float unsigned)")->execute();
$session->sql("INSERT INTO nonsense.numbers values (42, 42)")->execute();

$schema = $session->getSchema("nonsense");
$table = $schema->getTable("numbers");

$result1 = $table->select('hello','world')->execute();

// Returns an array of ColumnResult objects
$columns = $result1->getColumns();

foreach ($columns as $column) {
echo "\nColumn label " , $column->getColumnLabel();
echo " is type " , $column->getType();
echo " and is ", ($column->isNumberSigned() === 0) ? "unsigned." : "signed.";
}

// Alternatively
$result2 = $session->sql("SELECT * FROM nonsense.numbers")->execute();

// Returns an array of FieldMetadata objects
print_r($result2->getColumns());

O exemplo acima produzirá algo semelhante a:

Column label hello is type 19 and is signed.
Column label world is type 4  and is unsigned.

Array
(
    [0] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 1
            [type_name] => SINT
            [name] => hello
            [original_name] => hello
            [table] => numbers
            [original_table] => numbers
            [schema] => nonsense
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 0
            [length] => 11
            [flags] => 0
            [content_type] => 0
        )
    [1] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 6
            [type_name] => FLOAT
            [name] => world
            [original_name] => world
            [table] => numbers
            [original_table] => numbers
            [schema] => nonsense
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 31
            [length] => 12
            [flags] => 1
            [content_type] => 0
        )
)


Get character set

  • « ColumnResult::__construct
  • ColumnResult::getCollationName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get character set

ColumnResult::getCharacterSetName

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::getCharacterSetName — Get character set

Descrição

public mysql_xdevapi\ColumnResult::getCharacterSetName(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::getCharacterSetName() example

<?php

/* ... */

?>


Get collation name

  • « ColumnResult::getCharacterSetName
  • ColumnResult::getColumnLabel »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get collation name

ColumnResult::getCollationName

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::getCollationName — Get collation name

Descrição

public mysql_xdevapi\ColumnResult::getCollationName(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::getCollationName() example

<?php

/* ... */

?>


Get column label

  • « ColumnResult::getCollationName
  • ColumnResult::getColumnName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column label

ColumnResult::getColumnLabel

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::getColumnLabel — Get column label

Descrição

public mysql_xdevapi\ColumnResult::getColumnLabel(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::getColumnLabel() example

<?php

/* ... */

?>


Get column name

  • « ColumnResult::getColumnLabel
  • ColumnResult::getFractionalDigits »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column name

ColumnResult::getColumnName

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::getColumnName — Get column name

Descrição

public mysql_xdevapi\ColumnResult::getColumnName(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::getColumnName() example

<?php

/* ... */

?>


Get fractional digit length

  • « ColumnResult::getColumnName
  • ColumnResult::getLength »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get fractional digit length

ColumnResult::getFractionalDigits

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::getFractionalDigits — Get fractional digit length

Descrição

public mysql_xdevapi\ColumnResult::getFractionalDigits(): int

Fetch the number of fractional digits for column.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::getFractionalDigits() example

<?php

/* ... */

?>


Get column field length

  • « ColumnResult::getFractionalDigits
  • ColumnResult::getSchemaName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column field length

ColumnResult::getLength

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::getLength — Get column field length

Descrição

public mysql_xdevapi\ColumnResult::getLength(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::getLength() example

<?php

/* ... */

?>


Get schema name

  • « ColumnResult::getLength
  • ColumnResult::getTableLabel »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get schema name

ColumnResult::getSchemaName

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::getSchemaName — Get schema name

Descrição

public mysql_xdevapi\ColumnResult::getSchemaName(): string

Fetch the schema name where the column is stored.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::getSchemaName() example

<?php

/* ... */

?>


Get table label

  • « ColumnResult::getSchemaName
  • ColumnResult::getTableName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get table label

ColumnResult::getTableLabel

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::getTableLabel — Get table label

Descrição

public mysql_xdevapi\ColumnResult::getTableLabel(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::getTableLabel() example

<?php

/* ... */

?>


Get table name

  • « ColumnResult::getTableLabel
  • ColumnResult::getType »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get table name

ColumnResult::getTableName

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::getTableName — Get table name

Descrição

public mysql_xdevapi\ColumnResult::getTableName(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Name of the table for the column.

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::getTableName() example

<?php

/* ... */

?>


Get column type

  • « ColumnResult::getTableName
  • ColumnResult::isNumberSigned »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column type

ColumnResult::getType

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::getType — Get column type

Descrição

public mysql_xdevapi\ColumnResult::getType(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::getType() example

<?php

/* ... */

?>


Check if signed type

  • « ColumnResult::getType
  • ColumnResult::isPadded »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Check if signed type

ColumnResult::isNumberSigned

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::isNumberSigned — Check if signed type

Descrição

public mysql_xdevapi\ColumnResult::isNumberSigned(): int

Retrieves a table's column information and is instantiated by the mysql_xdevapi\RowResult::getColumns() method.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if a given column as a signed type.

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::isNumberSigned() example

<?php

/* ... */

?>


Check if padded

  • « ColumnResult::isNumberSigned
  • mysql_xdevapi\CrudOperationBindable »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Check if padded

ColumnResult::isPadded

(Não há informação de versão disponível, talvez apenas no Git)

ColumnResult::isPadded — Check if padded

Descrição

public mysql_xdevapi\ColumnResult::isPadded(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if a given column is padded.

Exemplos

Exemplo #1 mysql_xdevapi\ColumnResult::isPadded() example

<?php

/* ... */

?>


CrudOperationBindable interface

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\CrudOperationBindable {
/* Métodos */
abstract public bind(array $placeholder_values): mysql_xdevapi\CrudOperationBindable
}

Índice

  • CrudOperationBindable::bind — Bind value to placeholder


Bind value to placeholder

  • « mysql_xdevapi\CrudOperationBindable
  • mysql_xdevapi\CrudOperationLimitable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationBindable
  • Bind value to placeholder

CrudOperationBindable::bind

(Não há informação de versão disponível, talvez apenas no Git)

CrudOperationBindable::bind — Bind value to placeholder

Descrição

abstract public mysql_xdevapi\CrudOperationBindable::bind(array $placeholder_values): mysql_xdevapi\CrudOperationBindable

Binds a value to a specific placeholder.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

placeholder_values

The name of the placeholders and the values to bind.

Valor Retornado

A CrudOperationBindable object.

Exemplos

Exemplo #1 mysql_xdevapi\CrudOperationBindable::bind() example

<?php

$res = $coll->modify('name like :name')->arrayInsert('job[0]', 'Calciatore')->bind(['name' => 'ENTITY'])->execute();
$res = $table->delete()->orderby('age desc')->where('age < 20 and age > 12 and name != :name')->bind(['name' => 'Tierney'])->limit(2)->execute();

?>


CrudOperationLimitable interface

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\CrudOperationLimitable {
/* Métodos */
abstract public limit(int $rows): mysql_xdevapi\CrudOperationLimitable
}

Índice

  • CrudOperationLimitable::limit — Set result limit


Set result limit

  • « mysql_xdevapi\CrudOperationLimitable
  • mysql_xdevapi\CrudOperationSkippable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationLimitable
  • Set result limit

CrudOperationLimitable::limit

(Não há informação de versão disponível, talvez apenas no Git)

CrudOperationLimitable::limit — Set result limit

Descrição

abstract public mysql_xdevapi\CrudOperationLimitable::limit(int $rows): mysql_xdevapi\CrudOperationLimitable

Sets the maximum number of records or documents to return.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

rows

The maximum number of records or documents.

Valor Retornado

A CrudOperationLimitable object.

Exemplos

Exemplo #1 mysql_xdevapi\CrudOperationLimitable::limit() example

<?php

$res = $coll->find()->fields(['name as n','age as a','job as j'])->groupBy('j')->limit(11)->execute();
$res = $table->update()->set('age',69)->where('age > 15 and age < 22')->limit(4)->orderby(['age asc','name desc'])->execute();

?>


CrudOperationSkippable interface

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\CrudOperationSkippable {
/* Métodos */
abstract public skip(int $skip): mysql_xdevapi\CrudOperationSkippable
}

Índice

  • CrudOperationSkippable::skip — Number of operations to skip


Number of operations to skip

  • « mysql_xdevapi\CrudOperationSkippable
  • mysql_xdevapi\CrudOperationSortable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationSkippable
  • Number of operations to skip

CrudOperationSkippable::skip

(Não há informação de versão disponível, talvez apenas no Git)

CrudOperationSkippable::skip — Number of operations to skip

Descrição

abstract public mysql_xdevapi\CrudOperationSkippable::skip(int $skip): mysql_xdevapi\CrudOperationSkippable

Skip this number of records in the returned operation.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

skip

Number of elements to skip.

Valor Retornado

A CrudOperationSkippable object.

Exemplos

Exemplo #1 mysql_xdevapi\CrudOperationSkippable::skip() example

<?php

$res = $coll->find('job like \'Programmatore\'')->limit(1)->skip(3)->sort('age asc')->execute();

?>


CrudOperationSortable interface

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\CrudOperationSortable {
/* Métodos */
abstract public sort(string $sort_expr): mysql_xdevapi\CrudOperationSortable
}

Índice

  • CrudOperationSortable::sort — Sort results


Sort results

  • « mysql_xdevapi\CrudOperationSortable
  • mysql_xdevapi\DatabaseObject »
  • PHP Manual
  • mysql_xdevapi\CrudOperationSortable
  • Sort results

CrudOperationSortable::sort

(Não há informação de versão disponível, talvez apenas no Git)

CrudOperationSortable::sort — Sort results

Descrição

abstract public mysql_xdevapi\CrudOperationSortable::sort(string $sort_expr): mysql_xdevapi\CrudOperationSortable

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

sort_expr

One or more sorting expressions can be provided. The evaluation is from left to right, and each expression is separated by a comma.

Valor Retornado

A CrudOperationSortable object.

Exemplos

Exemplo #1 mysql_xdevapi\CrudOperationSortable::sort() example

<?php

$res = $coll->find('job like \'Cavia\'')->sort('age desc', '_id desc')->execute();

?>


DatabaseObject interface

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\DatabaseObject {
/* Métodos */
abstract public existsInDatabase(): bool
abstract public getName(): string
abstract public getSession(): mysql_xdevapi\Session
}

Índice

  • DatabaseObject::existsInDatabase — Check if object exists in database
  • DatabaseObject::getName — Get object name
  • DatabaseObject::getSession — Get session name


Check if object exists in database

  • « mysql_xdevapi\DatabaseObject
  • DatabaseObject::getName »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Check if object exists in database

DatabaseObject::existsInDatabase

(Não há informação de versão disponível, talvez apenas no Git)

DatabaseObject::existsInDatabase — Check if object exists in database

Descrição

abstract public mysql_xdevapi\DatabaseObject::existsInDatabase(): bool

Verifies if the database object refers to an object that exists in the database.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if object exists in the database, else false if it does not.

Exemplos

Exemplo #1 mysql_xdevapi\DatabaseObject::existsInDatabase() example

<?php

$existInDb = $dbObj->existsInDatabase();

?>


Get object name

  • « DatabaseObject::existsInDatabase
  • DatabaseObject::getSession »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Get object name

DatabaseObject::getName

(Não há informação de versão disponível, talvez apenas no Git)

DatabaseObject::getName — Get object name

Descrição

abstract public mysql_xdevapi\DatabaseObject::getName(): string

Fetch name of this database object.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The name of this database object.

Exemplos

Exemplo #1 mysql_xdevapi\DatabaseObject::getName() example

<?php

$dbObjName = $dbObj->getName();

?>


Get session name

  • « DatabaseObject::getName
  • mysql_xdevapi\DocResult »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Get session name

DatabaseObject::getSession

(Não há informação de versão disponível, talvez apenas no Git)

DatabaseObject::getSession — Get session name

Descrição

abstract public mysql_xdevapi\DatabaseObject::getSession(): mysql_xdevapi\Session

Fetch session associated to the database object.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The Session object.

Exemplos

Exemplo #1 mysql_xdevapi\DatabaseObject::getSession() example

<?php

$session = $dbObj->getSession();

?>


DocResult class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\DocResult implements mysql_xdevapi\BaseResult, Traversable {
/* Métodos */
public fetchAll(): array
public fetchOne(): array
public getWarnings(): Array
public getWarningsCount(): int
}

Índice

  • DocResult::__construct — DocResult constructor
  • DocResult::fetchAll — Get all rows
  • DocResult::fetchOne — Get one row
  • DocResult::getWarnings — Get warnings from last operation
  • DocResult::getWarningsCount — Get warning count from last operation


DocResult constructor

  • « mysql_xdevapi\DocResult
  • DocResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • DocResult constructor

DocResult::__construct

(Não há informação de versão disponível, talvez apenas no Git)

DocResult::__construct — DocResult constructor

Descrição

private mysql_xdevapi\DocResult::__construct()

Fetch document results and warnings, and is instantiated by CollectionFind.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 A DocResult example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->limit(1)
->execute();

var_dump($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Get all rows

  • « DocResult::__construct
  • DocResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get all rows

DocResult::fetchAll

(Não há informação de versão disponível, talvez apenas no Git)

DocResult::fetchAll — Get all rows

Descrição

public mysql_xdevapi\DocResult::fetchAll(): array

Fetch all results from a result set.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numerical array with all results from the query; each result is an associative array. An empty array is returned if no rows are present.

Exemplos

Exemplo #1 mysql_xdevapi\DocResult::fetchAll() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->execute();

var_dump($result->fetchAll());
?>

O exemplo acima produzirá algo semelhante a:

array(2) {

  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000123"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }

  [1]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000122"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }

}


Get one row

  • « DocResult::fetchAll
  • DocResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get one row

DocResult::fetchOne

(Não há informação de versão disponível, talvez apenas no Git)

DocResult::fetchOne — Get one row

Descrição

public mysql_xdevapi\DocResult::fetchOne(): array

Fetch one result from a result set.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The result, as an associative array or null if no results are present.

Exemplos

Exemplo #1 mysql_xdevapi\DocResult::fetchOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->execute();

var_dump($result->fetchOne());
?>

O exemplo acima produzirá algo semelhante a:

array(4) {
  ["_id"]=>
  string(28) "00005b6b53610000000000000125"
  ["age"]=>
  int(42)
  ["job"]=>
  string(6) "Butler"
  ["name"]=>
  string(8) "Reginald"
}


Get warnings from last operation

  • « DocResult::fetchOne
  • DocResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get warnings from last operation

DocResult::getWarnings

(Não há informação de versão disponível, talvez apenas no Git)

DocResult::getWarnings — Get warnings from last operation

Descrição

public mysql_xdevapi\DocResult::getWarnings(): Array

Fetches warnings generated by MySQL server's last operation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Exemplos

Exemplo #1 mysql_xdevapi\DocResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->execute();

if (!$result->getWarningsCount()) {
echo "There was an error:\n";
print_r($result->getWarnings());
exit;
}

var_dump($result->fetchOne());
?>

O exemplo acima produzirá algo semelhante a:

There was an error:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Something bad and so on
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Something bad and so on
            [level] => 2
            [code] => 1365
        )
)


Get warning count from last operation

  • « DocResult::getWarnings
  • mysql_xdevapi\Exception »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get warning count from last operation

DocResult::getWarningsCount

(Não há informação de versão disponível, talvez apenas no Git)

DocResult::getWarningsCount — Get warning count from last operation

Descrição

public mysql_xdevapi\DocResult::getWarningsCount(): int

Returns the number of warnings raised by the last operation. Specifically, these warnings are raised by the MySQL server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of warnings from the last operation.

Exemplos

Exemplo #1 mysql_xdevapi\DocResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->execute();

if (!$result->getWarningsCount()) {
echo "There was an error:\n";
print_r($result->getWarnings());
exit;
}

var_dump($result->fetchOne());
?>

O exemplo acima produzirá algo semelhante a:

array(4) {
  ["_id"]=>
  string(28) "00005b6b53610000000000000135"
  ["age"]=>
  int(42)
  ["job"]=>
  string(6) "Butler"
  ["name"]=>
  string(8) "Reginald"
}


Exception class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\Exception extends RuntimeException implements Throwable {
}


Executable interface

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\Executable {
/* Métodos */
abstract public execute(): mysql_xdevapi\Result
}

Índice

  • Executable::execute — Execute statement


Execute statement

  • « mysql_xdevapi\Executable
  • mysql_xdevapi\ExecutionStatus »
  • PHP Manual
  • mysql_xdevapi\Executable
  • Execute statement

Executable::execute

(Não há informação de versão disponível, talvez apenas no Git)

Executable::execute — Execute statement

Descrição

abstract public mysql_xdevapi\Executable::execute(): mysql_xdevapi\Result

Execute the statement from either a collection operation or a table query; this functionality allows for method chaining.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

One of the Result objects, such as Result or SqlStatementResult.

Exemplos

Exemplo #1 execute() examples

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$result_sql = $session->sql("CREATE DATABASE addressbook")->execute();

var_dump($result_sql);

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("humans");

$result_collection = $collection->add(
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}');

$result_collection_executed = $result_collection->execute();

var_dump($result_collection);
var_dump($result_collection_executed);
?>

O exemplo acima produzirá algo semelhante a:

object(mysql_xdevapi\SqlStatementResult)#3 (0) {
}

object(mysql_xdevapi\CollectionAdd)#5 (0) {
}

object(mysql_xdevapi\Result)#7 (0) {
}


ExecutionStatus class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\ExecutionStatus {
/* Propriedades */
public $affectedItems;
public $matchedItems;
public $foundItems;
public $lastInsertId;
public $lastDocumentId;
/* Constructor */
private __construct()
}

Propriedades

affectedItems

matchedItems

foundItems

lastInsertId

lastDocumentId

Índice

  • ExecutionStatus::__construct — ExecutionStatus constructor


ExecutionStatus constructor

  • « mysql_xdevapi\ExecutionStatus
  • mysql_xdevapi\Expression »
  • PHP Manual
  • mysql_xdevapi\ExecutionStatus
  • ExecutionStatus constructor

ExecutionStatus::__construct

(Não há informação de versão disponível, talvez apenas no Git)

ExecutionStatus::__construct — ExecutionStatus constructor

Descrição

private mysql_xdevapi\ExecutionStatus::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\ExecutionStatus::__construct() example

<?php

/* ... */

?>


Expression class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\Expression {
/* Propriedades */
public $name;
/* Constructor */
public __construct(string $expression)
}

Propriedades

name

Índice

  • Expression::__construct — Expression constructor


Expression constructor

  • « mysql_xdevapi\Expression
  • mysql_xdevapi\Result »
  • PHP Manual
  • mysql_xdevapi\Expression
  • Expression constructor

Expression::__construct

(Não há informação de versão disponível, talvez apenas no Git)

Expression::__construct — Expression constructor

Descrição

public mysql_xdevapi\Expression::__construct(string $expression)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

expression

Exemplos

Exemplo #1 mysql_xdevapi\Expression::__construct() example

<?php

/* ... */

?>


Result class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\Result implements mysql_xdevapi\BaseResult, Traversable {
/* Métodos */
public getAffectedItemsCount(): int
public getAutoIncrementValue(): int
public getGeneratedIds(): array
public getWarnings(): array
public getWarningsCount(): int
}

Índice

  • Result::__construct — Result constructor
  • Result::getAffectedItemsCount — Get affected row count
  • Result::getAutoIncrementValue — Get autoincremented value
  • Result::getGeneratedIds — Get generated ids
  • Result::getWarnings — Get warnings from last operation
  • Result::getWarningsCount — Get warning count from last operation


Result constructor

  • « mysql_xdevapi\Result
  • Result::getAffectedItemsCount »
  • PHP Manual
  • mysql_xdevapi\Result
  • Result constructor

Result::__construct

(Não há informação de versão disponível, talvez apenas no Git)

Result::__construct — Result constructor

Descrição

private mysql_xdevapi\Result::__construct()

An object that retrieves generated IDs, AUTO_INCREMENT values, and warnings, for a Result set.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\Result::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("
CREATE TABLE addressbook.names
(id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30), age INT, PRIMARY KEY (id))
")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->insert("name", "age")->values(["Suzanne", 31],["Julie", 43])->execute();
$result = $table->insert("name", "age")->values(["Suki", 34])->execute();

$ai = $result->getAutoIncrementValue();
var_dump($ai);
?>

O exemplo acima produzirá:

int(3)


Get affected row count

  • « Result::__construct
  • Result::getAutoIncrementValue »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get affected row count

Result::getAffectedItemsCount

(Não há informação de versão disponível, talvez apenas no Git)

Result::getAffectedItemsCount — Get affected row count

Descrição

public mysql_xdevapi\Result::getAffectedItemsCount(): int

Get the number of affected rows by the previous operation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number (as an integer) of affected rows.

Exemplos

Exemplo #1 mysql_xdevapi\Result::getAffectedItemsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

var_dump( $res->getAffectedItemsCount() );
?>

O exemplo acima produzirá:

int(1)


Get autoincremented value

  • « Result::getAffectedItemsCount
  • Result::getGeneratedIds »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get autoincremented value

Result::getAutoIncrementValue

(Não há informação de versão disponível, talvez apenas no Git)

Result::getAutoIncrementValue — Get autoincremented value

Descrição

public mysql_xdevapi\Result::getAutoIncrementValue(): int

Get the last AUTO_INCREMENT value (last insert id).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The last AUTO_INCREMENT value.

Exemplos

Exemplo #1 mysql_xdevapi\Result::getAutoIncrementValue() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("
CREATE TABLE addressbook.names
(id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30), age INT, PRIMARY KEY (id))
")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->insert("name", "age")->values(["Suzanne", 31],["Julie", 43])->execute();
$result = $table->insert("name", "age")->values(["Suki", 34])->execute();

$ai = $result->getAutoIncrementValue();
var_dump($ai);
?>

O exemplo acima produzirá:

int(3)


Get generated ids

  • « Result::getAutoIncrementValue
  • Result::getWarnings »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get generated ids

Result::getGeneratedIds

(Não há informação de versão disponível, talvez apenas no Git)

Result::getGeneratedIds — Get generated ids

Descrição

public mysql_xdevapi\Result::getGeneratedIds(): array

Fetch the generated _id values from the last operation. The unique _id field is generated by the MySQL server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of generated _id's from the last operation, or an empty array if there are none.

Exemplos

Exemplo #1 mysql_xdevapi\Result::getGeneratedIds() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection->add(
'{"name": "Bernie",
"jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}')->execute();

$ids = $result->getGeneratedIds();
var_dump($ids);
?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  [0]=>
  string(28) "00005b6b53610000000000000064"
  [1]=>
  string(28) "00005b6b53610000000000000065"
}


Get warnings from last operation

  • « Result::getGeneratedIds
  • Result::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get warnings from last operation

Result::getWarnings

(Não há informação de versão disponível, talvez apenas no Git)

Result::getWarnings — Get warnings from last operation

Descrição

public mysql_xdevapi\Result::getWarnings(): array

Retrieve warnings from the last Result operation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Get warning count from last operation

  • « Result::getWarnings
  • mysql_xdevapi\RowResult »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get warning count from last operation

Result::getWarningsCount

(Não há informação de versão disponível, talvez apenas no Git)

Result::getWarningsCount — Get warning count from last operation

Descrição

public mysql_xdevapi\Result::getWarningsCount(): int

Retrieve the number of warnings from the last Result operation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of warnings generated by the last operation.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

O exemplo acima produzirá algo semelhante a:

2


RowResult class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\RowResult implements mysql_xdevapi\BaseResult, Traversable {
/* Métodos */
public fetchAll(): array
public fetchOne(): array
public getColumnsCount(): int
public getColumnNames(): array
public getColumns(): array
public getWarnings(): array
public getWarningsCount(): int
}

Índice

  • RowResult::__construct — RowResult constructor
  • RowResult::fetchAll — Get all rows from result
  • RowResult::fetchOne — Get row from result
  • RowResult::getColumnsCount — Get column count
  • RowResult::getColumnNames — Get all column names
  • RowResult::getColumns — Get column metadata
  • RowResult::getWarnings — Get warnings from last operation
  • RowResult::getWarningsCount — Get warning count from last operation


RowResult constructor

  • « mysql_xdevapi\RowResult
  • RowResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • RowResult constructor

RowResult::__construct

(Não há informação de versão disponível, talvez apenas no Git)

RowResult::__construct — RowResult constructor

Descrição

private mysql_xdevapi\RowResult::__construct()

Represents the result set obtained from querying the database.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$row = $table->select('name', 'age')->where('age > 18')->execute()->fetchAll();

print_r($row);

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get all rows from result

  • « RowResult::__construct
  • RowResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get all rows from result

RowResult::fetchAll

(Não há informação de versão disponível, talvez apenas no Git)

RowResult::fetchAll — Get all rows from result

Descrição

public mysql_xdevapi\RowResult::fetchAll(): array

Fetch all the rows from the result set.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numerical array with all results from the query; each result is an associative array. An empty array is returned if no rows are present.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::fetchAll() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get row from result

  • « RowResult::fetchAll
  • RowResult::getColumnsCount »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get row from result

RowResult::fetchOne

(Não há informação de versão disponível, talvez apenas no Git)

RowResult::fetchOne — Get row from result

Descrição

public mysql_xdevapi\RowResult::fetchOne(): array

Fetch one result from the result set.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The result, as an associative array or null if no results are present.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::fetchOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$row = $table->select('name', 'age')->where('age < 40')->execute()->fetchOne();

print_r($row);

O exemplo acima produzirá algo semelhante a:

Array
(
    [name] => Sam
    [age] => 33
)


Get column count

  • « RowResult::fetchOne
  • RowResult::getColumnNames »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get column count

RowResult::getColumnsCount

(Não há informação de versão disponível, talvez apenas no Git)

RowResult::getColumnsCount — Get column count

Descrição

public mysql_xdevapi\RowResult::getColumnsCount(): int

Retrieve the column count for columns present in the result set.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of columns; 0 if there are none.

Registro de Alterações

Versão | Descrição
8.0.14 | Method renamed from getColumnCount() to getColumnsCount().

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::getColumnsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

echo $sql->getColumnsCount();

O exemplo acima produzirá algo semelhante a:

2


Get all column names

  • « RowResult::getColumnsCount
  • RowResult::getColumns »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get all column names

RowResult::getColumnNames

(Não há informação de versão disponível, talvez apenas no Git)

RowResult::getColumnNames — Get all column names

Descrição

public mysql_xdevapi\RowResult::getColumnNames(): array

Retrieve column names for columns present in the result set.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numerical array of table columns names, or an empty array if the result set is empty.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::getColumnNames() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

$colnames = $sql->getColumnNames();

print_r($colnames);

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => name
    [1] => age
)


Get column metadata

  • « RowResult::getColumnNames
  • RowResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get column metadata

RowResult::getColumns

(Não há informação de versão disponível, talvez apenas no Git)

RowResult::getColumns — Get column metadata

Descrição

public mysql_xdevapi\RowResult::getColumns(): array

Retrieve column metadata for columns present in the result set.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of FieldMetadata objects representing the columns in the result, or an empty array if the result set is empty.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::getColumns() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

$cols = $sql->getColumns();

print_r($cols);

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 7
            [type_name] => BYTES
            [name] => name
            [original_name] => name
            [table] => names
            [original_table] => names
            [schema] => addressbook
            [catalog] => def
            [collation] => 255
            [fractional_digits] => 0
            [length] => 65535
            [flags] => 0
            [content_type] => 0
        )
    [1] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 1
            [type_name] => SINT
            [name] => age
            [original_name] => age
            [table] => names
            [original_table] => names
            [schema] => addressbook
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 0
            [length] => 11
            [flags] => 0
            [content_type] => 0
        )
)


Get warnings from last operation

  • « RowResult::getColumns
  • RowResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get warnings from last operation

RowResult::getWarnings

(Não há informação de versão disponível, talvez apenas no Git)

RowResult::getWarnings — Get warnings from last operation

Descrição

public mysql_xdevapi\RowResult::getWarnings(): array

Retrieve warnings from the last RowResult operation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Get warning count from last operation

  • « RowResult::getWarnings
  • mysql_xdevapi\Schema »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get warning count from last operation

RowResult::getWarningsCount

(Não há informação de versão disponível, talvez apenas no Git)

RowResult::getWarningsCount — Get warning count from last operation

Descrição

public mysql_xdevapi\RowResult::getWarningsCount(): int

Retrieve the number of warnings from the last RowResult operation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of warnings generated by the last operation.

Exemplos

Exemplo #1 mysql_xdevapi\RowResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

O exemplo acima produzirá algo semelhante a:

2


Schema class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\Schema implements mysql_xdevapi\DatabaseObject {
/* Propriedades */
public $name;
/* Métodos */
public createCollection(string $name, string $validate = ?): mysql_xdevapi\Collection
public dropCollection(string $collection_name): bool
public existsInDatabase(): bool
public getCollection(string $name): mysql_xdevapi\Collection
public getCollectionAsTable(string $name): mysql_xdevapi\Table
public getCollections(): array
public getName(): string
public getSession(): mysql_xdevapi\Session
public getTable(string $name): mysql_xdevapi\Table
public getTables(): array
}

Propriedades

name

Índice

  • Schema::__construct — Schema constructor
  • Schema::createCollection — Add collection to schema
  • Schema::dropCollection — Drop collection from schema
  • Schema::existsInDatabase — Check if exists in database
  • Schema::getCollection — Get collection from schema
  • Schema::getCollectionAsTable — Get collection as a Table object
  • Schema::getCollections — Get all schema collections
  • Schema::getName — Get schema name
  • Schema::getSession — Get schema session
  • Schema::getTable — Get schema table
  • Schema::getTables — Get schema tables


Schema constructor

  • « mysql_xdevapi\Schema
  • Schema::createCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Schema constructor

Schema::__construct

(Não há informação de versão disponível, talvez apenas no Git)

Schema::__construct — Schema constructor

Descrição

private mysql_xdevapi\Schema::__construct()

The Schema object provides full access to the schema (database).

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\Schema::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

print_r($schema->gettables());
print_r($schema->getcollections());

O exemplo acima produzirá algo semelhante a:

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [trees] => mysql_xdevapi\Collection Object
        (
            [name] => trees
        )
)


Add collection to schema

  • « Schema::__construct
  • Schema::dropCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Add collection to schema

Schema::createCollection

(Não há informação de versão disponível, talvez apenas no Git)

Schema::createCollection — Add collection to schema

Descrição

public mysql_xdevapi\Schema::createCollection(string $name, string $validate = ?): mysql_xdevapi\Collection

Create a collection within the schema.

Parâmetros

name

Collection name.

validate

Validation definition, as a JSON object.

Valor Retornado

The Collection object.

Registro de Alterações

Versão | Descrição
8.0.20 | Added the optional validate parameter.

Exemplos

Exemplo #1 mysql_xdevapi\Schema::createCollection() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

print_r($schema->gettables());
print_r($schema->getcollections());

O exemplo acima produzirá algo semelhante a:

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [trees] => mysql_xdevapi\Collection Object
        (
            [name] => trees
        )
)

Exemplo #2 mysql_xdevapi\Schema::createCollection() example

<?php
$collection = $schema->createCollection("mycollection", '{
"validation": {
"level": "strict",
"schema": {
"id": "http://json-schema.org/geo",
"description": "A geographical coordinate",
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
},
"required": ["latitude", "longitude"]
}
}
}');
// Succeeds
$collection->add('{"latitude": 10, "longitude": 20}')->execute();

// Fails, invalid types (not numbers)
$collection->add('{"latitude": "lat", "longitude": "long"}')->execute();


Drop collection from schema

  • « Schema::createCollection
  • Schema::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Drop collection from schema

Schema::dropCollection

(Não há informação de versão disponível, talvez apenas no Git)

Schema::dropCollection — Drop collection from schema

Descrição

public mysql_xdevapi\Schema::dropCollection(string $collection_name): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

collection_name

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\Schema::dropCollection() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");

$schema->createCollection("trees");
$schema->dropCollection("trees");
$schema->createCollection("buildings");

print_r($schema->gettables());
print_r($schema->getcollections());

O exemplo acima produzirá algo semelhante a:

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [buildings] => mysql_xdevapi\Collection Object
        (
            [name] => buildings
        )
)


Check if exists in database

  • « Schema::dropCollection
  • Schema::getCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Check if exists in database

Schema::existsInDatabase

(Não há informação de versão disponível, talvez apenas no Git)

Schema::existsInDatabase — Check if exists in database

Descrição

public mysql_xdevapi\Schema::existsInDatabase(): bool

Checks if the current object (schema, table, collection, or view) exists in the schema object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the schema, table, collection, or view still exists in the schema, else false.

Exemplos

Exemplo #1 mysql_xdevapi\Schema::existsInDatabase() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

// ...

$trees = $schema->getCollection("trees");

// ...

// Is this collection still in the database (schema)?
if ($trees->existsInDatabase()) {
echo "Yes, the 'trees' collection is still present.";
}

O exemplo acima produzirá algo semelhante a:

Yes, the 'trees' collection is still present.


Get collection from schema

  • « Schema::existsInDatabase
  • Schema::getCollectionAsTable »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get collection from schema

Schema::getCollection

(Não há informação de versão disponível, talvez apenas no Git)

Schema::getCollection — Get collection from schema

Descrição

public mysql_xdevapi\Schema::getCollection(string $name): mysql_xdevapi\Collection

Get a collection from the schema.

Parâmetros

name

Collection name to retrieve.

Valor Retornado

The Collection object for the selected collection.

Exemplos

Exemplo #1 mysql_xdevapi\Schema::getCollection() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

// ...

$trees = $schema->getCollection("trees");

var_dump($trees);

O exemplo acima produzirá algo semelhante a:

object(mysql_xdevapi\Collection)#3 (1) {
  ["name"]=>
  string(5) "trees"
}


Get collection as a Table object

  • « Schema::getCollection
  • Schema::getCollections »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get collection as a Table object

Schema::getCollectionAsTable

(Não há informação de versão disponível, talvez apenas no Git)

Schema::getCollectionAsTable — Get collection as a Table object

Descrição

public mysql_xdevapi\Schema::getCollectionAsTable(string $name): mysql_xdevapi\Table

Get a collection, but as a Table object instead of a Collection object.

Parâmetros

name

Name of the collection to instantiate a Table object from.

Valor Retornado

A mysql_xdevapi\Table object for the collection.

Exemplos

Exemplo #1 mysql_xdevapi\Schema::getCollectionAsTable() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collect = $schema->createCollection("people");
$collect->add('{"name": "Fred", "age": 21, "job": "Construction"}')->execute();
$collect->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

$table = $schema->getCollectionAsTable("people");
$collection = $schema->getCollection("people");

var_dump($table);
var_dump($collection);

O exemplo acima produzirá algo semelhante a:

object(mysql_xdevapi\Table)#4 (1) {
  ["name"]=>
  string(6) "people"
}

object(mysql_xdevapi\Collection)#5 (1) {
  ["name"]=>
  string(6) "people"
}


Get all schema collections

  • « Schema::getCollectionAsTable
  • Schema::getName »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get all schema collections

Schema::getCollections

(Não há informação de versão disponível, talvez apenas no Git)

Schema::getCollections — Get all schema collections

Descrição

public mysql_xdevapi\Schema::getCollections(): array

Fetch a list of collections for this schema.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Array of all collections in this schema, where each array element value is a Collection object with the collection name as the key.

Exemplos

Exemplo #1 mysql_xdevapi\Schema::getCollections() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collect = $schema->createCollection("people");
$collect->add('{"name": "Fred", "age": 21, "job": "Construction"}')->execute();
$collect->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

$collections = $schema->getCollections();
var_dump($collections);
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  ["people"]=>
  object(mysql_xdevapi\Collection)#4 (1) {
    ["name"]=>
    string(6) "people"
  }
}


Get schema name

  • « Schema::getCollections
  • Schema::getSession »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema name

Schema::getName

(Não há informação de versão disponível, talvez apenas no Git)

Schema::getName — Get schema name

Descrição

public mysql_xdevapi\Schema::getName(): string

Get the name of the schema.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The name of the schema connected to the schema object, as a string.

Exemplos

Exemplo #1 mysql_xdevapi\Schema::getName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");

// ...

var_dump($schema->getName());
?>

O exemplo acima produzirá algo semelhante a:

string(11) "addressbook"


Get schema session

  • « Schema::getName
  • Schema::getTable »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema session

Schema::getSession

(Não há informação de versão disponível, talvez apenas no Git)

Schema::getSession — Get schema session

Descrição

public mysql_xdevapi\Schema::getSession(): mysql_xdevapi\Session

Get a new Session object from the Schema object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Session object.

Exemplos

Exemplo #1 mysql_xdevapi\Schema::getSession() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");

// ...

$newsession = $schema->getSession();

var_dump($session);
var_dump($newsession);
?>

O exemplo acima produzirá algo semelhante a:

object(mysql_xdevapi\Session)#1 (0) {
}

object(mysql_xdevapi\Session)#3 (0) {
}


Get schema table

  • « Schema::getSession
  • Schema::getTables »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema table

Schema::getTable

(Não há informação de versão disponível, talvez apenas no Git)

Schema::getTable — Get schema table

Descrição

public mysql_xdevapi\Schema::getTable(string $name): mysql_xdevapi\Table

Fetch a Table object for the provided table in the schema.

Parâmetros

name

Name of the table.

Valor Retornado

A Table object.

Exemplos

Exemplo #1 mysql_xdevapi\Schema::getTable() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get schema tables

  • « Schema::getTable
  • mysql_xdevapi\SchemaObject »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema tables

Schema::getTables

(Não há informação de versão disponível, talvez apenas no Git)

Schema::getTables — Get schema tables

Descrição

public mysql_xdevapi\Schema::getTables(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Array of all tables in this schema, where each array element value is a Table object with the table name as the key.

Exemplos

Exemplo #1 mysql_xdevapi\Schema::getTables() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$session->sql("CREATE TABLE addressbook.cities(name text, population int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Portland', 639863), ('Seattle', 704352)")->execute();

$schema = $session->getSchema("addressbook");
$tables = $schema->getTables();

var_dump($tables);
?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  ["cities"]=>
  object(mysql_xdevapi\Table)#3 (1) {
    ["name"]=>
    string(6) "cities"
  }

  ["names"]=>
  object(mysql_xdevapi\Table)#4 (1) {
    ["name"]=>
    string(5) "names"
  }
}


SchemaObject interface

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\SchemaObject implements mysql_xdevapi\DatabaseObject {
/* Métodos */
abstract getSchema(): mysql_xdevapi\Schema
}

Índice

  • SchemaObject::getSchema — Get schema object


Get schema object

  • « mysql_xdevapi\SchemaObject
  • mysql_xdevapi\Session »
  • PHP Manual
  • mysql_xdevapi\SchemaObject
  • Get schema object

SchemaObject::getSchema

(Não há informação de versão disponível, talvez apenas no Git)

SchemaObject::getSchema — Get schema object

Descrição

abstract mysql_xdevapi\SchemaObject::getSchema(): mysql_xdevapi\Schema

Used by other objects to retrieve a schema object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current Schema object.

Exemplos

Exemplo #1 mysql_xdevapi\Session::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schema = $session->getSchema("addressbook");

print_r($schema);

O exemplo acima produzirá algo semelhante a:

mysql_xdevapi\Schema Object
(
    [name] => addressbook
)


Session class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\Session {
/* Métodos */
public close(): bool
public commit(): Object
public createSchema(string $schema_name): mysql_xdevapi\Schema
public dropSchema(string $schema_name): bool
public generateUUID(): string
public getDefaultSchema(): string
public getSchema(string $schema_name): mysql_xdevapi\Schema
public getSchemas(): array
public getServerVersion(): int
public listClients(): array
public quoteName(string $name): string
public releaseSavepoint(string $name): void
public rollback(): void
public rollbackTo(string $name): void
public setSavepoint(string $name = ?): string
public sql(string $query): mysql_xdevapi\SqlStatement
public startTransaction(): void
}

Índice

  • Session::close — Close session
  • Session::commit — Commit transaction
  • Session::__construct — Description constructor
  • Session::createSchema — Create new schema
  • Session::dropSchema — Drop a schema
  • Session::generateUUID — Get new UUID
  • Session::getDefaultSchema — Get default schema name
  • Session::getSchema — Get a new schema object
  • Session::getSchemas — Get the schemas
  • Session::getServerVersion — Get server version
  • Session::listClients — Get client list
  • Session::quoteName — Add quotes
  • Session::releaseSavepoint — Release set savepoint
  • Session::rollback — Rollback transaction
  • Session::rollbackTo — Rollback transaction to savepoint
  • Session::setSavepoint — Create savepoint
  • Session::sql — Create SQL query
  • Session::startTransaction — Start transaction


Close session

  • « mysql_xdevapi\Session
  • Session::commit »
  • PHP Manual
  • mysql_xdevapi\Session
  • Close session

Session::close

(Não há informação de versão disponível, talvez apenas no Git)

Session::close — Close session

Descrição

public mysql_xdevapi\Session::close(): bool

Close the session with the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the session closed.

Exemplos

Exemplo #1 mysql_xdevapi\Session::close() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$session->close();


Commit transaction

  • « Session::close
  • Session::__construct »
  • PHP Manual
  • mysql_xdevapi\Session
  • Commit transaction

Session::commit

(PHP 4 >= 4.4.0, PHP 5, PHP 7, PHP 8)

Session::commit — Commit transaction

Descrição

public mysql_xdevapi\Session::commit(): Object

Commit the transaction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An SqlStatementResult object.

Exemplos

Exemplo #1 mysql_xdevapi\Session::commit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();

$collection->add('{"John":42, "Sam":33}')->execute();
$savepoint = $session->setSavepoint();

$session->commit();
$session->close();


Description constructor

  • « Session::commit
  • Session::createSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Description constructor

Session::__construct

(Não há informação de versão disponível, talvez apenas no Git)

Session::__construct — Description constructor

Descrição

private mysql_xdevapi\Session::__construct()

A Session object, as initiated by getSession().

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\Session::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->close();
?>


Create new schema

  • « Session::__construct
  • Session::dropSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Create new schema

Session::createSchema

(Não há informação de versão disponível, talvez apenas no Git)

Session::createSchema — Create new schema

Descrição

public mysql_xdevapi\Session::createSchema(string $schema_name): mysql_xdevapi\Schema

Creates a new schema.

Parâmetros

schema_name

Name of the schema to create.

Valor Retornado

A Schema object on success, and emits an exception on failure.

Exemplos

Exemplo #1 mysql_xdevapi\Session::createSchema() example

<?php
$uri = 'mysqlx://happyuser:password@127.0.0.1:33060/';
$sess = mysql_xdevapi\getSession($uri);

try {

if ($schema = $sess->createSchema('fruit')) {
echo "Info: I created a schema named 'fruit'\n";
}

} catch (Exception $e) {

echo $e->getMessage();

}
?>

O exemplo acima produzirá algo semelhante a:

Info: I created a schema named 'fruit'


Drop a schema

  • « Session::createSchema
  • Session::generateUUID »
  • PHP Manual
  • mysql_xdevapi\Session
  • Drop a schema

Session::dropSchema

(Não há informação de versão disponível, talvez apenas no Git)

Session::dropSchema — Drop a schema

Descrição

public mysql_xdevapi\Session::dropSchema(string $schema_name): bool

Drop a schema (database).

Parâmetros

schema_name

Name of the schema to drop.

Valor Retornado

true if the schema is dropped, or false if it does not exist or can't be dropped.

An E_WARNING level error is generated if the schema does not exist.

Exemplos

Exemplo #1 mysql_xdevapi\Session::dropSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->dropSchema("addressbook");

$session->close();
?>


Get new UUID

  • « Session::dropSchema
  • Session::getDefaultSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get new UUID

Session::generateUUID

(Não há informação de versão disponível, talvez apenas no Git)

Session::generateUUID — Get new UUID

Descrição

public mysql_xdevapi\Session::generateUUID(): string

Generate a Universal Unique IDentifier (UUID) generated according to » RFC 4122.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The UUID; a string with a length of 32.

Exemplos

Exemplo #1 mysql_xdevapi\Session::generateUuid() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$uuid = $session->generateUuid();

var_dump($uuid);

O exemplo acima produzirá algo semelhante a:

string(32) "484B18AC7980F8D4FE84613CDA5EE84B"


Get default schema name

  • « Session::generateUUID
  • Session::getSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get default schema name

Session::getDefaultSchema

(Não há informação de versão disponível, talvez apenas no Git)

Session::getDefaultSchema — Get default schema name

Descrição

public mysql_xdevapi\Session::getDefaultSchema(): string

Retrieve name of the default schema that's typically set in the connection URI.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Name of the default schema defined by the connection, or null if one was not set.

Exemplos

Exemplo #1 mysql_xdevapi\Session::getSchema() example

<?php
$uri = "mysqlx://testuser:testpasswd@localhost:33160/testx?ssl-mode=disabled";
$session = mysql_xdevapi\getSession($uri);

$schema = $session->getDefaultSchema();
echo $schema;
?>

O exemplo acima produzirá:

testx


Get a new schema object

  • « Session::getDefaultSchema
  • Session::getSchemas »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get a new schema object

Session::getSchema

(Não há informação de versão disponível, talvez apenas no Git)

Session::getSchema — Get a new schema object

Descrição

public mysql_xdevapi\Session::getSchema(string $schema_name): mysql_xdevapi\Schema

A new Schema object for the provided schema name.

Parâmetros

schema_name

Name of the schema (database) to fetch a Schema object for.

Valor Retornado

A Schema object.

Exemplos

Exemplo #1 mysql_xdevapi\Session::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schema = $session->getSchema("addressbook");

print_r($schema);

O exemplo acima produzirá algo semelhante a:

mysql_xdevapi\Schema Object
(
    [name] => addressbook
)


Get the schemas

  • « Session::getSchema
  • Session::getServerVersion »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get the schemas

Session::getSchemas

(Não há informação de versão disponível, talvez apenas no Git)

Session::getSchemas — Get the schemas

Descrição

public mysql_xdevapi\Session::getSchemas(): array

Get schema objects for all schemas available to the session.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array containing objects that represent all of the schemas available to the session.

Exemplos

Exemplo #1 mysql_xdevapi\Session::getSchemas() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schemas = $session->getSchemas();

print_r($schemas);

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => mysql_xdevapi\Schema Object
        (
            [name] => addressbook
        )
    [1] => mysql_xdevapi\Schema Object
        (
            [name] => information_schema
        )
    ...


Get server version

  • « Session::getSchemas
  • Session::listClients »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get server version

Session::getServerVersion

(Não há informação de versão disponível, talvez apenas no Git)

Session::getServerVersion — Get server version

Descrição

public mysql_xdevapi\Session::getServerVersion(): int

Retrieve the MySQL server version for the session.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The MySQL server version for the session, as an integer such as "80012".

Exemplos

Exemplo #1 mysql_xdevapi\Session::getServerVersion() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$version = $session->getServerVersion();

var_dump($version);

O exemplo acima produzirá algo semelhante a:

int(80012)


Get client list

  • « Session::getServerVersion
  • Session::quoteName »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get client list

Session::listClients

(Não há informação de versão disponível, talvez apenas no Git)

Session::listClients — Get client list

Descrição

public mysql_xdevapi\Session::listClients(): array

Get a list of client connections to the session's MySQL server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array containing the currently logged clients. The array elements are "client_id", "user", "host", and "sql_session".

Exemplos

Exemplo #1 mysql_xdevapi\Session::listClients() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$ids = $session->listClients();

var_dump($ids);
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(4) {
    ["client_id"]=>
    int(61)
    ["user"]=>
    string(4) "root"
    ["host"]=>
    string(9) "localhost"
    ["sql_session"]=>
    int(72)
  }
}


Add quotes

  • « Session::listClients
  • Session::releaseSavepoint »
  • PHP Manual
  • mysql_xdevapi\Session
  • Add quotes

Session::quoteName

(Não há informação de versão disponível, talvez apenas no Git)

Session::quoteName — Add quotes

Descrição

public mysql_xdevapi\Session::quoteName(string $name): string

A quoting function to escape SQL names and identifiers. It escapes the identifier given in accordance to the settings of the current connection. This escape function should not be used to escape values.

Parâmetros

name

The string to quote.

Valor Retornado

The quoted string.

Exemplos

Exemplo #1 mysql_xdevapi\Session::quoteName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$first = "MySQL's test";
var_dump($first);
var_dump($session->quoteName($first));

$second = 'Another `test` "like" `this`';
var_dump($second);
var_dump($session->quoteName($second));
?>

O exemplo acima produzirá algo semelhante a:

string(12) "MySQL's test"
string(14) "`MySQL's test`"

string(28) "Another `test` "like" `this`"
string(34) "`Another ``test`` "like" ``this```"


Release set savepoint

  • « Session::quoteName
  • Session::rollback »
  • PHP Manual
  • mysql_xdevapi\Session
  • Release set savepoint

Session::releaseSavepoint

(Não há informação de versão disponível, talvez apenas no Git)

Session::releaseSavepoint — Release set savepoint

Descrição

public mysql_xdevapi\Session::releaseSavepoint(string $name): void

Release a previously set savepoint.

Parâmetros

name

Name of the savepoint to release.

Valor Retornado

An SqlStatementResult object.

Exemplos

Exemplo #1 mysql_xdevapi\Session::releaseSavepoint() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Rollback transaction

  • « Session::releaseSavepoint
  • Session::rollbackTo »
  • PHP Manual
  • mysql_xdevapi\Session
  • Rollback transaction

Session::rollback

(Não há informação de versão disponível, talvez apenas no Git)

Session::rollback — Rollback transaction

Descrição

public mysql_xdevapi\Session::rollback(): void

Rollback the transaction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An SqlStatementResult object.

Exemplos

Exemplo #1 mysql_xdevapi\Session::rollback() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Rollback transaction to savepoint

  • « Session::rollback
  • Session::setSavepoint »
  • PHP Manual
  • mysql_xdevapi\Session
  • Rollback transaction to savepoint

Session::rollbackTo

(Não há informação de versão disponível, talvez apenas no Git)

Session::rollbackTo — Rollback transaction to savepoint

Descrição

public mysql_xdevapi\Session::rollbackTo(string $name): void

Rollback the transaction back to the savepoint.

Parâmetros

name

Name of the savepoint to rollback to; case-insensitive.

Valor Retornado

An SqlStatementResult object.

Exemplos

Exemplo #1 mysql_xdevapi\Session::rollbackTo() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint1 = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$savepoint2 = $session->setSavepoint();

$session->rollbackTo($savepoint1);
?>


Create savepoint

  • « Session::rollbackTo
  • Session::sql »
  • PHP Manual
  • mysql_xdevapi\Session
  • Create savepoint

Session::setSavepoint

(Não há informação de versão disponível, talvez apenas no Git)

Session::setSavepoint — Create savepoint

Descrição

public mysql_xdevapi\Session::setSavepoint(string $name = ?): string

Create a new savepoint for the transaction.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

The name of the savepoint. The name is auto-generated if the optional name parameter is not defined as 'SAVEPOINT1', 'SAVEPOINT2', and so on.

Valor Retornado

The name of the save point.

Exemplos

Exemplo #1 mysql_xdevapi\Session::setSavepoint() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Create SQL query

  • « Session::setSavepoint
  • Session::startTransaction »
  • PHP Manual
  • mysql_xdevapi\Session
  • Create SQL query

Session::sql

(Não há informação de versão disponível, talvez apenas no Git)

Session::sql — Create SQL query

Descrição

public mysql_xdevapi\Session::sql(string $query): mysql_xdevapi\SqlStatement

Create a native SQL statement. Placeholders are supported using the native "?" syntax. Use the execute method to execute the SQL statement.

Parâmetros

query

SQL statement to execute.

Valor Retornado

An SqlStatement object.

Exemplos

Exemplo #1 mysql_xdevapi\Session::sql() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE addressbook")->execute();
?>


Start transaction

  • « Session::sql
  • mysql_xdevapi\SqlStatement »
  • PHP Manual
  • mysql_xdevapi\Session
  • Start transaction

Session::startTransaction

(Não há informação de versão disponível, talvez apenas no Git)

Session::startTransaction — Start transaction

Descrição

public mysql_xdevapi\Session::startTransaction(): void

Start a new transaction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An SqlStatementResult object.

Exemplos

Exemplo #1 mysql_xdevapi\Session::startTransaction() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


SqlStatement class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\SqlStatement {
/* Constantes */
const int EXECUTE_ASYNC = 1;
const int BUFFERED = 2;
/* Propriedades */
public $statement;
/* Métodos */
public bind(string $param): mysql_xdevapi\SqlStatement
public execute(): mysql_xdevapi\Result
public getNextResult(): mysql_xdevapi\Result
public getResult(): mysql_xdevapi\Result
public hasMoreResults(): bool
}

Propriedades

statement

Constantes pré-definidas

mysql_xdevapi\SqlStatement::EXECUTE_ASYNC

mysql_xdevapi\SqlStatement::BUFFERED

Índice

  • SqlStatement::bind — Bind statement parameters
  • SqlStatement::__construct — Description constructor
  • SqlStatement::execute — Execute the operation
  • SqlStatement::getNextResult — Get next result
  • SqlStatement::getResult — Get result
  • SqlStatement::hasMoreResults — Check for more results


Bind statement parameters

  • « mysql_xdevapi\SqlStatement
  • SqlStatement::__construct »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Bind statement parameters

SqlStatement::bind

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatement::bind — Bind statement parameters

Descrição

public mysql_xdevapi\SqlStatement::bind(string $param): mysql_xdevapi\SqlStatement

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

param

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatement::bind() example

<?php

/* ... */

?>


Description constructor

  • « SqlStatement::bind
  • SqlStatement::execute »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Description constructor

SqlStatement::__construct

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatement::__construct — Description constructor

Descrição

private mysql_xdevapi\SqlStatement::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatement::__construct() example

<?php

/* ... */

?>


Execute the operation

  • « SqlStatement::__construct
  • SqlStatement::getNextResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Execute the operation

SqlStatement::execute

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatement::execute — Execute the operation

Descrição

public mysql_xdevapi\SqlStatement::execute(): mysql_xdevapi\Result

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatement::execute() example

<?php

/* ... */

?>


Get next result

  • « SqlStatement::execute
  • SqlStatement::getResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Get next result

SqlStatement::getNextResult

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatement::getNextResult — Get next result

Descrição

public mysql_xdevapi\SqlStatement::getNextResult(): mysql_xdevapi\Result

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatement::getNextResult() example

<?php

/* ... */

?>


Get result

  • « SqlStatement::getNextResult
  • SqlStatement::hasMoreResults »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Get result

SqlStatement::getResult

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatement::getResult — Get result

Descrição

public mysql_xdevapi\SqlStatement::getResult(): mysql_xdevapi\Result

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatement::getResult() example

<?php

/* ... */

?>


Check for more results

  • « SqlStatement::getResult
  • mysql_xdevapi\SqlStatementResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Check for more results

SqlStatement::hasMoreResults

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatement::hasMoreResults — Check for more results

Descrição

public mysql_xdevapi\SqlStatement::hasMoreResults(): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the result set has more objects to fetch.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatement::hasMoreResults() example

<?php

/* ... */

?>


SqlStatementResult class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\SqlStatementResult implements mysql_xdevapi\BaseResult, Traversable {
/* Métodos */
public fetchAll(): array
public fetchOne(): array
public getAffectedItemsCount(): int
public getColumnsCount(): int
public getColumnNames(): array
public getColumns(): Array
public getGeneratedIds(): array
public getLastInsertId(): String
public getWarnings(): array
public getWarningCounts(): int
public hasData(): bool
public nextResult(): mysql_xdevapi\Result
}

Índice

  • SqlStatementResult::__construct — Description constructor
  • SqlStatementResult::fetchAll — Get all rows from result
  • SqlStatementResult::fetchOne — Get single row
  • SqlStatementResult::getAffectedItemsCount — Get affected row count
  • SqlStatementResult::getColumnsCount — Get column count
  • SqlStatementResult::getColumnNames — Get column names
  • SqlStatementResult::getColumns — Get columns
  • SqlStatementResult::getGeneratedIds — Get generated ids
  • SqlStatementResult::getLastInsertId — Get last insert id
  • SqlStatementResult::getWarnings — Get warnings from last operation
  • SqlStatementResult::getWarningsCount — Get warning count from last operation
  • SqlStatementResult::hasData — Check if result has data
  • SqlStatementResult::nextResult — Get next result


Description constructor

  • « mysql_xdevapi\SqlStatementResult
  • SqlStatementResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Description constructor

SqlStatementResult::__construct

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::__construct — Description constructor

Descrição

private mysql_xdevapi\SqlStatementResult::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::__construct() example

<?php

/* ... */

?>


Get all rows from result

  • « SqlStatementResult::__construct
  • SqlStatementResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get all rows from result

SqlStatementResult::fetchAll

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::fetchAll — Get all rows from result

Descrição

public mysql_xdevapi\SqlStatementResult::fetchAll(): array

Fetch all the rows from the result set.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numerical array with all results from the query; each result is an associative array. An empty array is returned if no rows are present.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::fetchAll() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS dbtest")->execute();
$session->sql("CREATE DATABASE dbtest")->execute();
$session->sql("CREATE TABLE dbtest.workers(name text, age int, job text)")->execute();
$session->sql("INSERT INTO dbtest.workers values ('John', 42, 'bricklayer'), ('Sam', 33, 'carpenter')")->execute();

$schema = $session->getSchema("dbtest");
$table = $schema->getTable("workers");

$rows = $session->sql("SELECT * FROM dbtest.workers")->execute()->fetchAll();

print_r($rows);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get single row

  • « SqlStatementResult::fetchAll
  • SqlStatementResult::getAffectedItemsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get single row

SqlStatementResult::fetchOne

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::fetchOne — Get single row

Descrição

public mysql_xdevapi\SqlStatementResult::fetchOne(): array

Fetch one row from the result set.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The result, as an associative array. In case there is not any result, null will be returned.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::fetchOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS dbtest")->execute();
$session->sql("CREATE DATABASE dbtest")->execute();
$session->sql("CREATE TABLE dbtest.workers(name text, age int, job text)")->execute();
$session->sql("INSERT INTO dbtest.workers values ('John', 42, 'bricklayer'), ('Sam', 33, 'carpenter')")->execute();

$schema = $session->getSchema("dbtest");
$table = $schema->getTable("workers");

$rows = $session->sql("SELECT * FROM dbtest.workers")->execute()->fetchOne();

print_r($rows);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [name] => John
    [age] => 42
    [job] => bricklayer
)


Get affected row count

  • « SqlStatementResult::fetchOne
  • SqlStatementResult::getColumnsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get affected row count

SqlStatementResult::getAffectedItemsCount

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::getAffectedItemsCount — Get affected row count

Descrição

public mysql_xdevapi\SqlStatementResult::getAffectedItemsCount(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::getAffectedItemsCount() example

<?php

/* ... */

?>


Get column count

  • « SqlStatementResult::getAffectedItemsCount
  • SqlStatementResult::getColumnNames »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get column count

SqlStatementResult::getColumnsCount

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::getColumnsCount — Get column count

Descrição

public mysql_xdevapi\SqlStatementResult::getColumnsCount(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of columns; 0 if there are none.

Registro de Alterações

Versão | Descrição
8.0.14 | Method renamed from getColumnCount() to getColumnsCount().

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::getColumnsCount() example

<?php

/* ... */

?>


Get column names

  • « SqlStatementResult::getColumnsCount
  • SqlStatementResult::getColumns »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get column names

SqlStatementResult::getColumnNames

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::getColumnNames — Get column names

Descrição

public mysql_xdevapi\SqlStatementResult::getColumnNames(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::getColumnNames() example

<?php

/* ... */

?>


Get columns

  • « SqlStatementResult::getColumnNames
  • SqlStatementResult::getGeneratedIds »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get columns

SqlStatementResult::getColumns

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::getColumns — Get columns

Descrição

public mysql_xdevapi\SqlStatementResult::getColumns(): Array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::getColumns() example

<?php

/* ... */

?>


Get generated ids

  • « SqlStatementResult::getColumns
  • SqlStatementResult::getLastInsertId »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get generated ids

SqlStatementResult::getGeneratedIds

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::getGeneratedIds — Get generated ids

Descrição

public mysql_xdevapi\SqlStatementResult::getGeneratedIds(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of generated _id's from the last operation, or an empty array if there are none.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::getGeneratedIds() example

<?php

/* ... */

?>


Get last insert id

  • « SqlStatementResult::getGeneratedIds
  • SqlStatementResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get last insert id

SqlStatementResult::getLastInsertId

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::getLastInsertId — Get last insert id

Descrição

public mysql_xdevapi\SqlStatementResult::getLastInsertId(): String

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The ID for the last insert operation.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::getLastInsertId() example

<?php

/* ... */

?>


Get warnings from last operation

  • « SqlStatementResult::getLastInsertId
  • SqlStatementResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get warnings from last operation

SqlStatementResult::getWarnings

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::getWarnings — Get warnings from last operation

Descrição

public mysql_xdevapi\SqlStatementResult::getWarnings(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::getWarnings() example

<?php

/* ... */

?>


Get warning count from last operation

  • « SqlStatementResult::getWarnings
  • SqlStatementResult::hasData »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get warning count from last operation

SqlStatementResult::getWarningsCount

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::getWarningsCount — Get warning count from last operation

Descrição

public mysql_xdevapi\SqlStatementResult::getWarningCounts(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of warnings raised during the last CRUD operation.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::getWarningsCount() example

<?php

/* ... */

?>


Check if result has data

  • « SqlStatementResult::getWarningsCount
  • SqlStatementResult::nextResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Check if result has data

SqlStatementResult::hasData

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::hasData — Check if result has data

Descrição

public mysql_xdevapi\SqlStatementResult::hasData(): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the result set has data.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::hasData() example

<?php

/* ... */

?>


Get next result

  • « SqlStatementResult::hasData
  • mysql_xdevapi\Statement »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get next result

SqlStatementResult::nextResult

(Não há informação de versão disponível, talvez apenas no Git)

SqlStatementResult::nextResult — Get next result

Descrição

public mysql_xdevapi\SqlStatementResult::nextResult(): mysql_xdevapi\Result

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The next Result object from the result set.

Exemplos

Exemplo #1 mysql_xdevapi\SqlStatementResult::nextResult() example

<?php

/* ... */

?>


Statement class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\Statement {
/* Constantes */
const int EXECUTE_ASYNC = 1;
const int BUFFERED = 2;
/* Métodos */
public getNextResult(): mysql_xdevapi\Result
public getResult(): mysql_xdevapi\Result
public hasMoreResults(): bool
}

Constantes pré-definidas

mysql_xdevapi\Statement::EXECUTE_ASYNC

mysql_xdevapi\Statement::BUFFERED

Índice

  • Statement::__construct — Description constructor
  • Statement::getNextResult — Get next result
  • Statement::getResult — Get result
  • Statement::hasMoreResults — Check if more results


Description constructor

  • « mysql_xdevapi\Statement
  • Statement::getNextResult »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Description constructor

Statement::__construct

(Não há informação de versão disponível, talvez apenas no Git)

Statement::__construct — Description constructor

Descrição

private mysql_xdevapi\Statement::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\Statement::__construct() example

<?php

/* ... */

?>


Get next result

  • « Statement::__construct
  • Statement::getResult »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Get next result

Statement::getNextResult

(Não há informação de versão disponível, talvez apenas no Git)

Statement::getNextResult — Get next result

Descrição

public mysql_xdevapi\Statement::getNextResult(): mysql_xdevapi\Result

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\Statement::getNextResult() example

<?php

/* ... */

?>


Get result

  • « Statement::getNextResult
  • Statement::hasMoreResults »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Get result

Statement::getResult

(Não há informação de versão disponível, talvez apenas no Git)

Statement::getResult — Get result

Descrição

public mysql_xdevapi\Statement::getResult(): mysql_xdevapi\Result

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\Statement::getResult() example

<?php

/* ... */

?>


Check if more results

  • « Statement::getResult
  • mysql_xdevapi\Table »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Check if more results

Statement::hasMoreResults

(Não há informação de versão disponível, talvez apenas no Git)

Statement::hasMoreResults — Check if more results

Descrição

public mysql_xdevapi\Statement::hasMoreResults(): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 mysql_xdevapi\Statement::hasMoreResults() example

<?php

/* ... */

?>


Table class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Provides access to the table through INSERT/SELECT/UPDATE/DELETE statements.

Resumo da classe

class mysql_xdevapi\Table implements mysql_xdevapi\SchemaObject {
/* Propriedades */
public $name;
/* Métodos */
public count(): int
public delete(): mysql_xdevapi\TableDelete
public existsInDatabase(): bool
public getName(): string
public getSchema(): mysql_xdevapi\Schema
public getSession(): mysql_xdevapi\Session
public insert(mixed $columns, mixed ...$more_columns): mysql_xdevapi\TableInsert
public isView(): bool
public select(mixed $columns, mixed ...$more_columns): mysql_xdevapi\TableSelect
public update(): mysql_xdevapi\TableUpdate
}

Propriedades

name

Índice

  • Table::__construct — Table constructor
  • Table::count — Get row count
  • Table::delete — Delete rows from table
  • Table::existsInDatabase — Check if table exists in database
  • Table::getName — Get table name
  • Table::getSchema — Get table schema
  • Table::getSession — Get table session
  • Table::insert — Insert table rows
  • Table::isView — Check if table is view
  • Table::select — Select rows from table
  • Table::update — Update rows in table


Table constructor

  • « mysql_xdevapi\Table
  • Table::count »
  • PHP Manual
  • mysql_xdevapi\Table
  • Table constructor

Table::__construct

(Não há informação de versão disponível, talvez apenas no Git)

Table::__construct — Table constructor

Descrição

private mysql_xdevapi\Table::__construct()

Construct a table object.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\Table::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");
?>


Get row count

  • « Table::__construct
  • Table::delete »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get row count

Table::count

(Não há informação de versão disponível, talvez apenas no Git)

Table::count — Get row count

Descrição

public mysql_xdevapi\Table::count(): int

Fetch the number of rows in the table.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The total number of rows in the table.

Exemplos

Exemplo #1 mysql_xdevapi\Table::count() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

var_dump($table->count());
?>

O exemplo acima produzirá:

int(2)


Delete rows from table

  • « Table::count
  • Table::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Table
  • Delete rows from table

Table::delete

(Não há informação de versão disponível, talvez apenas no Git)

Table::delete — Delete rows from table

Descrição

public mysql_xdevapi\Table::delete(): mysql_xdevapi\TableDelete

Deletes rows from a table.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A TableDelete object; use the execute() method to execute the delete query.

Exemplos

Exemplo #1 mysql_xdevapi\Table::delete() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()->where("name = :name")->orderby("age DESC")->limit(1)->bind(['name' => 'John'])->execute();
?>


Check if table exists in database

  • « Table::delete
  • Table::getName »
  • PHP Manual
  • mysql_xdevapi\Table
  • Check if table exists in database

Table::existsInDatabase

(Não há informação de versão disponível, talvez apenas no Git)

Table::existsInDatabase — Check if table exists in database

Descrição

public mysql_xdevapi\Table::existsInDatabase(): bool

Verifies if this table exists in the database.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if table exists in the database, else false if it does not.

Exemplos

Exemplo #1 mysql_xdevapi\Table::existsInDatabase() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

if ($table->existsInDatabase()) {
echo "Yes, this table still exists in the session's schema.";
}
?>

O exemplo acima produzirá algo semelhante a:

Yes, this table still exists in the session's schema.


Get table name

  • « Table::existsInDatabase
  • Table::getSchema »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get table name

Table::getName

(Não há informação de versão disponível, talvez apenas no Git)

Table::getName — Get table name

Descrição

public mysql_xdevapi\Table::getName(): string

Returns the name of this database object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The name of this database object.

Exemplos

Exemplo #1 mysql_xdevapi\Table::getName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

var_dump($table->getName());
?>

O exemplo acima produzirá algo semelhante a:

string(5) "names"


Get table schema

  • « Table::getName
  • Table::getSession »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get table schema

Table::getSchema

(Não há informação de versão disponível, talvez apenas no Git)

Table::getSchema — Get table schema

Descrição

public mysql_xdevapi\Table::getSchema(): mysql_xdevapi\Schema

Fetch the schema associated with the table.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Schema object.

Exemplos

Exemplo #1 mysql_xdevapi\Table::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

var_dump($table->getSchema());
?>

O exemplo acima produzirá algo semelhante a:

object(mysql_xdevapi\Schema)#9 (1) {
  ["name"]=>
  string(11) "addressbook"
}


Get table session

  • « Table::getSchema
  • Table::insert »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get table session

Table::getSession

(Não há informação de versão disponível, talvez apenas no Git)

Table::getSession — Get table session

Descrição

public mysql_xdevapi\Table::getSession(): mysql_xdevapi\Session

Get session associated with the table.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Session object.

Exemplos

Exemplo #1 mysql_xdevapi\Table::getSession() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

var_dump($table->getSession());
?>

O exemplo acima produzirá algo semelhante a:

object(mysql_xdevapi\Session)#9 (0) {
}


Insert table rows

  • « Table::getSession
  • Table::isView »
  • PHP Manual
  • mysql_xdevapi\Table
  • Insert table rows

Table::insert

(Não há informação de versão disponível, talvez apenas no Git)

Table::insert — Insert table rows

Descrição

public mysql_xdevapi\Table::insert(mixed $columns, mixed ...$more_columns): mysql_xdevapi\TableInsert

Inserts rows into a table.

Parâmetros

columns

The columns to insert data into. Can be an array with one or more values, or a string.

more_columns

Additional columns definitions.

Valor Retornado

A TableInsert object; use the execute() method to execute the insert statement.

Exemplos

Exemplo #1 mysql_xdevapi\Table::insert() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table ->insert("name", "age")
->values(["Suzanne", 31],["Julie", 43])
->execute();
?>


Check if table is view

  • « Table::insert
  • Table::select »
  • PHP Manual
  • mysql_xdevapi\Table
  • Check if table is view

Table::isView

(Não há informação de versão disponível, talvez apenas no Git)

Table::isView — Check if table is view

Descrição

public mysql_xdevapi\Table::isView(): bool

Determine if the underlying object is a view or not.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the underlying object is a view, otherwise false.

Exemplos

Exemplo #1 mysql_xdevapi\Table::isView() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

if ($table->isView()) {
echo "This is a view.";
} else {
echo "This is not a view.";
}
?>

O exemplo acima produzirá:

This is not a view.


Select rows from table

  • « Table::isView
  • Table::update »
  • PHP Manual
  • mysql_xdevapi\Table
  • Select rows from table

Table::select

(Não há informação de versão disponível, talvez apenas no Git)

Table::select — Select rows from table

Descrição

public mysql_xdevapi\Table::select(mixed $columns, mixed ...$more_columns): mysql_xdevapi\TableSelect

Fetches data from a table.

Parâmetros

columns

The columns to select data from. Can be an array with one or more values, or a string.

more_columns

Additional columns parameter definitions.

Valor Retornado

A TableSelect object; use the execute() method to execute the select and return a RowResult object.

Exemplos

Exemplo #1 mysql_xdevapi\Table::count() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Update rows in table

  • « Table::select
  • mysql_xdevapi\TableDelete »
  • PHP Manual
  • mysql_xdevapi\Table
  • Update rows in table

Table::update

(Não há informação de versão disponível, talvez apenas no Git)

Table::update — Update rows in table

Descrição

public mysql_xdevapi\Table::update(): mysql_xdevapi\TableUpdate

Updates columns in a table.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A TableUpdate object; use the execute() method to execute the update statement.

Exemplos

Exemplo #1 mysql_xdevapi\Table::update() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->update()->set('age',34)->where('name = "Sam"')->limit(1)->execute();
?>


TableDelete class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

A statement for delete operations on Table.

Resumo da classe

class mysql_xdevapi\TableDelete implements mysql_xdevapi\Executable {
/* Métodos */
public bind(array $placeholder_values): mysql_xdevapi\TableDelete
public execute(): mysql_xdevapi\Result
public limit(int $rows): mysql_xdevapi\TableDelete
public orderby(string $orderby_expr): mysql_xdevapi\TableDelete
public where(string $where_expr): mysql_xdevapi\TableDelete
}

Índice

  • TableDelete::bind — Bind delete query parameters
  • TableDelete::__construct — TableDelete constructor
  • TableDelete::execute — Execute delete query
  • TableDelete::limit — Limit deleted rows
  • TableDelete::orderby — Set delete sort criteria
  • TableDelete::where — Set delete search condition


Bind delete query parameters

  • « mysql_xdevapi\TableDelete
  • TableDelete::__construct »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Bind delete query parameters

TableDelete::bind

(Não há informação de versão disponível, talvez apenas no Git)

TableDelete::bind — Bind delete query parameters

Descrição

public mysql_xdevapi\TableDelete::bind(array $placeholder_values): mysql_xdevapi\TableDelete

Binds a value to a specific placeholder.

Parâmetros

placeholder_values

The name of the placeholder and the value to bind.

Valor Retornado

A TableDelete object.

Exemplos

Exemplo #1 mysql_xdevapi\TableDelete::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("name = :name")
->bind(['name' => 'John'])
->orderby("age DESC")
->limit(1)
->execute();

?>


TableDelete constructor

  • « TableDelete::bind
  • TableDelete::execute »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • TableDelete constructor

TableDelete::__construct

(Não há informação de versão disponível, talvez apenas no Git)

TableDelete::__construct — TableDelete constructor

Descrição

private mysql_xdevapi\TableDelete::__construct()

Initiated by using the delete() method.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\TableDelete::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("name = :name")
->bind(['name' => 'John'])
->orderby("age DESC")
->limit(1)
->execute();

?>


Execute delete query

  • « TableDelete::__construct
  • TableDelete::limit »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Execute delete query

TableDelete::execute

(Não há informação de versão disponível, talvez apenas no Git)

TableDelete::execute — Execute delete query

Descrição

public mysql_xdevapi\TableDelete::execute(): mysql_xdevapi\Result

Execute the delete query.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Result object.

Exemplos

Exemplo #1 mysql_xdevapi\TableDelete::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("name = :name")
->bind(['name' => 'John'])
->orderby("age DESC")
->limit(1)
->execute();

?>


Limit deleted rows

  • « TableDelete::execute
  • TableDelete::orderby »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Limit deleted rows

TableDelete::limit

(Não há informação de versão disponível, talvez apenas no Git)

TableDelete::limit — Limit deleted rows

Descrição

public mysql_xdevapi\TableDelete::limit(int $rows): mysql_xdevapi\TableDelete

Sets the maximum number of records or documents to delete.

Parâmetros

rows

The maximum number of records or documents to delete.

Valor Retornado

TableDelete object.

Exemplos

Exemplo #1 mysql_xdevapi\TableDelete::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("name = :name")
->bind(['name' => 'John'])
->orderby("age DESC")
->limit(1)
->execute();

?>


Set delete sort criteria

  • « TableDelete::limit
  • TableDelete::where »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Set delete sort criteria

TableDelete::orderby

(Não há informação de versão disponível, talvez apenas no Git)

TableDelete::orderby — Set delete sort criteria

Descrição

public mysql_xdevapi\TableDelete::orderby(string $orderby_expr): mysql_xdevapi\TableDelete

Set the order options for a result set.

Parâmetros

orderby_expr

The sort definition.

Valor Retornado

A TableDelete object.

Exemplos

Exemplo #1 mysql_xdevapi\TableDelete::orderBy() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("age = :age")
->bind(['age' => 42])
->orderby("name DESC")
->limit(1)
->execute();

?>


Set delete search condition

  • « TableDelete::orderby
  • mysql_xdevapi\TableInsert »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Set delete search condition

TableDelete::where

(Não há informação de versão disponível, talvez apenas no Git)

TableDelete::where — Set delete search condition

Descrição

public mysql_xdevapi\TableDelete::where(string $where_expr): mysql_xdevapi\TableDelete

Sets the search condition to filter.

Parâmetros

where_expr

Define the search condition to filter documents or records.

Valor Retornado

TableDelete object.

Exemplos

Exemplo #1 mysql_xdevapi\TableDelete::where() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("id = :id")
->bind(['id' => 42])
->limit(1)
->execute();

?>


TableInsert class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

A statement for insert operations on Table.

Resumo da classe

class mysql_xdevapi\TableInsert implements mysql_xdevapi\Executable {
/* Métodos */
public execute(): mysql_xdevapi\Result
public values(array $row_values): mysql_xdevapi\TableInsert
}

Índice

  • TableInsert::__construct — TableInsert constructor
  • TableInsert::execute — Execute insert query
  • TableInsert::values — Add insert row values


TableInsert constructor

  • « mysql_xdevapi\TableInsert
  • TableInsert::execute »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • TableInsert constructor

TableInsert::__construct

(Não há informação de versão disponível, talvez apenas no Git)

TableInsert::__construct — TableInsert constructor

Descrição

private mysql_xdevapi\TableInsert::__construct()

Initiated by using the insert() method.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\TableInsert::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table
->insert("name", "age")
->values(["Suzanne", 31],["Julie", 43])
->execute();
?>


Execute insert query

  • « TableInsert::__construct
  • TableInsert::values »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • Execute insert query

TableInsert::execute

(Não há informação de versão disponível, talvez apenas no Git)

TableInsert::execute — Execute insert query

Descrição

public mysql_xdevapi\TableInsert::execute(): mysql_xdevapi\Result

Execute the statement.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Result object.

Exemplos

Exemplo #1 mysql_xdevapi\TableInsert::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table
->insert("name", "age")
->values(["Suzanne", 31],["Julie", 43])
->execute();
?>


Add insert row values

  • « TableInsert::execute
  • mysql_xdevapi\TableSelect »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • Add insert row values

TableInsert::values

(Não há informação de versão disponível, talvez apenas no Git)

TableInsert::values — Add insert row values

Descrição

public mysql_xdevapi\TableInsert::values(array $row_values): mysql_xdevapi\TableInsert

Set the values to be inserted.

Parâmetros

row_values

Values (an array) of columns to insert.

Valor Retornado

A TableInsert object.

Exemplos

Exemplo #1 mysql_xdevapi\TableInsert::values() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table
->insert("name", "age")
->values(["Suzanne", 31],["Julie", 43])
->execute();
?>


TableSelect class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

A statement for record retrieval operations on a Table.

Resumo da classe

class mysql_xdevapi\TableSelect implements mysql_xdevapi\Executable {
/* Métodos */
public bind(array $placeholder_values): mysql_xdevapi\TableSelect
public execute(): mysql_xdevapi\RowResult
public groupBy(mixed $sort_expr): mysql_xdevapi\TableSelect
public having(string $sort_expr): mysql_xdevapi\TableSelect
public limit(int $rows): mysql_xdevapi\TableSelect
public lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\TableSelect
public lockShared(int $lock_waiting_option = ?): mysql_xdevapi\TableSelect
public offset(int $position): mysql_xdevapi\TableSelect
public orderby(mixed $sort_expr, mixed ...$sort_exprs): mysql_xdevapi\TableSelect
public where(string $where_expr): mysql_xdevapi\TableSelect
}

Índice

  • TableSelect::bind — Bind select query parameters
  • TableSelect::__construct — TableSelect constructor
  • TableSelect::execute — Execute select statement
  • TableSelect::groupBy — Set select grouping criteria
  • TableSelect::having — Set select having condition
  • TableSelect::limit — Limit selected rows
  • TableSelect::lockExclusive — Execute EXCLUSIVE LOCK
  • TableSelect::lockShared — Execute SHARED LOCK
  • TableSelect::offset — Set limit offset
  • TableSelect::orderby — Set select sort criteria
  • TableSelect::where — Set select search condition


Bind select query parameters

  • « mysql_xdevapi\TableSelect
  • TableSelect::__construct »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Bind select query parameters

TableSelect::bind

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::bind — Bind select query parameters

Descrição

public mysql_xdevapi\TableSelect::bind(array $placeholder_values): mysql_xdevapi\TableSelect

Binds a value to a specific placeholder.

Parâmetros

placeholder_values

The name of the placeholder, and the value to bind.

Valor Retornado

A TableSelect object.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name','age')
->where('name like :name and age > :age')
->bind(['name' => 'John', 'age' => 42])
->execute();

$row = $result->fetchAll();
print_r($row);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


TableSelect constructor

  • « TableSelect::bind
  • TableSelect::execute »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • TableSelect constructor

TableSelect::__construct

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::__construct — TableSelect constructor

Descrição

private mysql_xdevapi\TableSelect::__construct()

An object returned by the select() method; use execute() to execute the query.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name','age')
->where('name like :name and age > :age')
->bind(['name' => 'John', 'age' => 42])
->orderBy('age desc')
->execute();

$row = $result->fetchAll();
print_r($row);

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Execute select statement

  • « TableSelect::__construct
  • TableSelect::groupBy »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Execute select statement

TableSelect::execute

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::execute — Execute select statement

Descrição

public mysql_xdevapi\TableSelect::execute(): mysql_xdevapi\RowResult

Execute the select statement by chaining it with the execute() method.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A RowResult object.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name','age')
->where('name like :name and age > :age')
->bind(['name' => 'John', 'age' => 42])
->orderBy('age desc')
->execute();

$row = $result->fetchAll();
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Set select grouping criteria

  • « TableSelect::execute
  • TableSelect::having »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select grouping criteria

TableSelect::groupBy

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::groupBy — Set select grouping criteria

Descrição

public mysql_xdevapi\TableSelect::groupBy(mixed $sort_expr): mysql_xdevapi\TableSelect

Sets a grouping criteria for the result set.

Parâmetros

sort_expr

The grouping criteria.

Valor Retornado

A TableSelect object.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::groupBy() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Suki', 31)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('count(*) as count', 'age')
->groupBy('age')->orderBy('age asc')
->execute();

$row = $result->fetchAll();
print_r($row);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [count] => 1
            [age] => 31
        )
    [1] => Array
        (
            [count] => 2
            [age] => 42
        )
)


Set select having condition

  • « TableSelect::groupBy
  • TableSelect::limit »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select having condition

TableSelect::having

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::having — Set select having condition

Descrição

public mysql_xdevapi\TableSelect::having(string $sort_expr): mysql_xdevapi\TableSelect

Sets a condition for records to consider in aggregate function operations.

Parâmetros

sort_expr

A condition on the aggregate functions used on the grouping criteria.

Valor Retornado

A TableSelect object.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::having() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Suki', 31)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('count(*) as count', 'age')
->groupBy('age')->orderBy('age asc')
->having('count > 1')
->execute();

$row = $result->fetchAll();
print_r($row);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [count] => 2
            [age] => 42
        )
)


Limit selected rows

  • « TableSelect::having
  • TableSelect::lockExclusive »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Limit selected rows

TableSelect::limit

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::limit — Limit selected rows

Descrição

public mysql_xdevapi\TableSelect::limit(int $rows): mysql_xdevapi\TableSelect

Sets the maximum number of records or documents to return.

Parâmetros

rows

The maximum number of records or documents.

Valor Retornado

A TableSelect object.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name', 'age')
->limit(1)
->execute();

$row = $result->fetchAll();
print_r($row);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Execute EXCLUSIVE LOCK

  • « TableSelect::limit
  • TableSelect::lockShared »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Execute EXCLUSIVE LOCK

TableSelect::lockExclusive

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::lockExclusive — Execute EXCLUSIVE LOCK

Descrição

public mysql_xdevapi\TableSelect::lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\TableSelect

Execute a read operation with EXCLUSIVE LOCK. Only one lock can be active at a time.

Parâmetros

lock_waiting_option

The optional waiting option that defaults to MYSQLX_LOCK_DEFAULT. Valid values are:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Valor Retornado

TableSelect object.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::lockExclusive() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$session->startTransaction();

$result = $table->select('name', 'age')
->lockExclusive(MYSQLX_LOCK_NOWAIT)
->execute();

$session->commit();

$row = $result->fetchAll();
print_r($row);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Execute SHARED LOCK

  • « TableSelect::lockExclusive
  • TableSelect::offset »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Execute SHARED LOCK

TableSelect::lockShared

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::lockShared — Execute SHARED LOCK

Descrição

public mysql_xdevapi\TableSelect::lockShared(int $lock_waiting_option = ?): mysql_xdevapi\TableSelect

Execute a read operation with SHARED LOCK. Only one lock can be active at a time.

Parâmetros

lock_waiting_option

The optional waiting option that defaults to MYSQLX_LOCK_DEFAULT. Valid values are:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Valor Retornado

A TableSelect object.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::lockShared() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$session->startTransaction();

$result = $table->select('name', 'age')
->lockShared(MYSQLX_LOCK_NOWAIT)
->execute();

$session->commit();

$row = $result->fetchAll();
print_r($row);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Set limit offset

  • « TableSelect::lockShared
  • TableSelect::orderby »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set limit offset

TableSelect::offset

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::offset — Set limit offset

Descrição

public mysql_xdevapi\TableSelect::offset(int $position): mysql_xdevapi\TableSelect

Skip given number of rows in result.

Parâmetros

position

The limit offset.

Valor Retornado

A TableSelect object.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::offset() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name', 'age')
->limit(1)
->offset(1)
->execute();

$row = $result->fetchAll();
print_r($row);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Set select sort criteria

  • « TableSelect::offset
  • TableSelect::where »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select sort criteria

TableSelect::orderby

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::orderby — Set select sort criteria

Descrição

public mysql_xdevapi\TableSelect::orderby(mixed $sort_expr, mixed ...$sort_exprs): mysql_xdevapi\TableSelect

Sets the order by criteria.

Parâmetros

sort_expr

The expressions that define the order by criteria. Can be an array with one or more expressions, or a string.

sort_exprs

Additional sort_expr parameters.

Valor Retornado

A TableSelect object.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::orderBy() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name', 'age')
->orderBy('name desc')
->execute();

$row = $result->fetchAll();
print_r($row);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => Sam
            [age] => 42
        )
    [1] => Array
        (
            [name] => John
            [age] => 42
        )
)


Set select search condition

  • « TableSelect::orderby
  • mysql_xdevapi\TableUpdate »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select search condition

TableSelect::where

(Não há informação de versão disponível, talvez apenas no Git)

TableSelect::where — Set select search condition

Descrição

public mysql_xdevapi\TableSelect::where(string $where_expr): mysql_xdevapi\TableSelect

Sets the search condition to filter.

Parâmetros

where_expr

Define the search condition to filter documents or records.

Valor Retornado

A TableSelect object.

Exemplos

Exemplo #1 mysql_xdevapi\TableSelect::where() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name','age')
->where('name like :name and age > :age')
->bind(['name' => 'John', 'age' => 42])
->execute();

$row = $result->fetchAll();
print_r($row);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


TableUpdate class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

A statement for record update operations on a Table.

Resumo da classe

class mysql_xdevapi\TableUpdate implements mysql_xdevapi\Executable {
/* Métodos */
public bind(array $placeholder_values): mysql_xdevapi\TableUpdate
public execute(): mysql_xdevapi\TableUpdate
public limit(int $rows): mysql_xdevapi\TableUpdate
public orderby(mixed $orderby_expr, mixed ...$orderby_exprs): mysql_xdevapi\TableUpdate
public set(string $table_field, string $expression_or_literal): mysql_xdevapi\TableUpdate
public where(string $where_expr): mysql_xdevapi\TableUpdate
}

Índice

  • TableUpdate::bind — Bind update query parameters
  • TableUpdate::__construct — TableUpdate constructor
  • TableUpdate::execute — Execute update query
  • TableUpdate::limit — Limit update row count
  • TableUpdate::orderby — Set sorting criteria
  • TableUpdate::set — Add field to be updated
  • TableUpdate::where — Set search filter


Bind update query parameters

  • « mysql_xdevapi\TableUpdate
  • TableUpdate::__construct »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Bind update query parameters

TableUpdate::bind

(Não há informação de versão disponível, talvez apenas no Git)

TableUpdate::bind — Bind update query parameters

Descrição

public mysql_xdevapi\TableUpdate::bind(array $placeholder_values): mysql_xdevapi\TableUpdate

Binds a value to a specific placeholder.

Parâmetros

placeholder_values

The name of the placeholder, and the value to bind, defined as a JSON array.

Valor Retornado

A TableUpdate object.

Exemplos

Exemplo #1 mysql_xdevapi\TableUpdate::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->update()
->set('status', 'admin')
->where('name = :name and age > :age')
->bind(['name' => 'Bernie', 'age' => 2000])
->execute();

?>


TableUpdate constructor

  • « TableUpdate::bind
  • TableUpdate::execute »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • TableUpdate constructor

TableUpdate::__construct

(Não há informação de versão disponível, talvez apenas no Git)

TableUpdate::__construct — TableUpdate constructor

Descrição

private mysql_xdevapi\TableUpdate::__construct()

Initiated by using the update() method.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\TableUpdate::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();

?>


Execute update query

  • « TableUpdate::__construct
  • TableUpdate::limit »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Execute update query

TableUpdate::execute

(Não há informação de versão disponível, talvez apenas no Git)

TableUpdate::execute — Execute update query

Descrição

public mysql_xdevapi\TableUpdate::execute(): mysql_xdevapi\TableUpdate

Executes the update statement.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A TableUpdate object.

Exemplos

Exemplo #1 mysql_xdevapi\TableUpdate::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();

?>


Limit update row count

  • « TableUpdate::execute
  • TableUpdate::orderby »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Limit update row count

TableUpdate::limit

(Não há informação de versão disponível, talvez apenas no Git)

TableUpdate::limit — Limit update row count

Descrição

public mysql_xdevapi\TableUpdate::limit(int $rows): mysql_xdevapi\TableUpdate

Set the maximum number of records or documents update.

Parâmetros

rows

The maximum number of records or documents to update.

Valor Retornado

A TableUpdate object.

Exemplos

Exemplo #1 mysql_xdevapi\TableUpdate::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();

?>


Set sorting criteria

  • « TableUpdate::limit
  • TableUpdate::set »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Set sorting criteria

TableUpdate::orderby

(Não há informação de versão disponível, talvez apenas no Git)

TableUpdate::orderby — Set sorting criteria

Descrição

public mysql_xdevapi\TableUpdate::orderby(mixed $orderby_expr, mixed ...$orderby_exprs): mysql_xdevapi\TableUpdate

Sets the sorting criteria.

Parâmetros

orderby_expr

The expressions that define the order by criteria. Can be an array with one or more expressions, or a string.

orderby_exprs

Additional sort_expr parameters.

Valor Retornado

TableUpdate object.

Exemplos

Exemplo #1 mysql_xdevapi\TableUpdate::orderby() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();
?>


Add field to be updated

  • « TableUpdate::orderby
  • TableUpdate::where »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Add field to be updated

TableUpdate::set

(Não há informação de versão disponível, talvez apenas no Git)

TableUpdate::set — Add field to be updated

Descrição

public mysql_xdevapi\TableUpdate::set(string $table_field, string $expression_or_literal): mysql_xdevapi\TableUpdate

Updates the column value on records in a table.

Parâmetros

table_field

The column name to be updated.

expression_or_literal

The value to be set on the specified column.

Valor Retornado

TableUpdate object.

Exemplos

Exemplo #1 mysql_xdevapi\TableUpdate::set() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();

?>


Set search filter

  • « TableUpdate::set
  • mysql_xdevapi\Warning »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Set search filter

TableUpdate::where

(Não há informação de versão disponível, talvez apenas no Git)

TableUpdate::where — Set search filter

Descrição

public mysql_xdevapi\TableUpdate::where(string $where_expr): mysql_xdevapi\TableUpdate

Set the search condition to filter.

Parâmetros

where_expr

The search condition to filter documents or records.

Valor Retornado

A TableUpdate object.

Exemplos

Exemplo #1 mysql_xdevapi\TableUpdate::where() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();

?>


Warning class

(PECL mysql-xdevapi >= 8.0.11)

Introdução

Resumo da classe

class mysql_xdevapi\Warning {
/* Propriedades */
public $message;
public $level;
public $code;
/* Constructor */
private __construct()
}

Propriedades

message

level

code

Índice

  • Warning::__construct — Warning constructor


Warning constructor

  • « mysql_xdevapi\Warning
  • MySQL (Original) »
  • PHP Manual
  • mysql_xdevapi\Warning
  • Warning constructor

Warning::__construct

(Não há informação de versão disponível, talvez apenas no Git)

Warning::__construct — Warning constructor

Descrição

private mysql_xdevapi\Warning::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 mysql_xdevapi\Warning::__construct() example

<?php

/* ... */

?>


Original MySQL API

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Registro de Alterações
  • Constantes pré-definidas
  • Exemplos
    • Exemplo de uso da extensão MySQL
  • Funções da MySQL
    • mysql_affected_rows — Obtém o número de linhas afetadas na operação anterior do MySQL
    • mysql_client_encoding — Returns the name of the character set
    • mysql_close — Fecha a conexão MySQL
    • mysql_connect — Open a connection to a MySQL Server
    • mysql_create_db — Cria um banco de dados MySQL
    • mysql_data_seek — Move o ponteiro interno do resultado
    • mysql_db_name — Obtém o nome do banco de dados a partir da chamada à mysql_list_dbs
    • mysql_db_query — Selects a database and executes a query on it
    • mysql_drop_db — Drop (exclui) um banco de dados MySQL
    • mysql_errno — Retorna o valor numérico da mensagem de erro da operação MySQL anterior
    • mysql_error — Retorna o texto da mensagem de erro da operação MySQL anterior
    • mysql_escape_string — Escapa uma string para usá-la em uma função mysql_query
    • mysql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
    • mysql_fetch_assoc — Obtém uma linha do resultado como um array associativo
    • mysql_fetch_field — Get column information from a result and return as an object
    • mysql_fetch_lengths — Obtém o tamanho de cada saída de um resultado
    • mysql_fetch_object — Obtém o resultado de uma linha como um objeto
    • mysql_fetch_row — Obtém uma linha como um array numérico
    • mysql_field_flags — Get the flags associated with the specified field in a result
    • mysql_field_len — Retorna o tamanho do campo especificado
    • mysql_field_name — Obtém o nome do campo especificado em um resultado
    • mysql_field_seek — Define o ponteiro do resultado para o índice de campo especificado
    • mysql_field_table — Obtém o nome da tabela na qual o campo especificado esta
    • mysql_field_type — Obtém o tipo do campo especificado em um resultado
    • mysql_free_result — Free result memory
    • mysql_get_client_info — Obtém informações do cliente MySQL
    • mysql_get_host_info — Obtém informações do servidor MySQL
    • mysql_get_proto_info — Obtém informações do protocolo MySQL
    • mysql_get_server_info — Obtém informações do servidor MySQL
    • mysql_info — Obtém informação sobre a consulta mais recente
    • mysql_insert_id — Obtém o ID gerado pela operação INSERT anterior
    • mysql_list_dbs — Lista os bancos de dados disponíveis em um servidor MySQL
    • mysql_list_fields — Lista os campos de uma tabela MySQL
    • mysql_list_processes — Lista os processos MySQL
    • mysql_list_tables — List tables in a MySQL database
    • mysql_num_fields — Obtém o numero de campos em um resultado
    • mysql_num_rows — Obtém o número de linhas em um resultado
    • mysql_pconnect — Open a persistent connection to a MySQL server
    • mysql_ping — Pinga uma conexão com o servidor ou reconecta se não houver conexão
    • mysql_query — Send a MySQL query
    • mysql_real_escape_string — Escapes special characters in a string for use in an SQL statement
    • mysql_result — Get result data
    • mysql_select_db — Select a MySQL database
    • mysql_set_charset — Sets the client character set
    • mysql_stat — Get current system status
    • mysql_tablename — Get table name of field
    • mysql_thread_id — Return the current thread ID
    • mysql_unbuffered_query — Send an SQL query to MySQL without fetching and buffering the result rows


Introdução

This extension is deprecated as of PHP 5.5.0, and has been removed as of PHP 7.0.0. Instead, either the mysqli or PDO_MySQL extension should be used. See also the MySQL API Overview for further help while choosing a MySQL API.

These functions allow you to access MySQL database servers. More information about MySQL can be found at » http://www.mysql.com/.

Documentation for MySQL can be found at » http://dev.mysql.com/doc/.


Dependências

Para ter estas funções disponíveis, você deve compilar o PHP com suporte ao MySQL.

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:


Instalação

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

Para compilar, simplesmente use a opção de configuração --with-mysql[=DIR] onde o parâmetro opcional [DIR] aponta para o diretório onde o MySQL está instalado.

Embora esta esta extensão MySQL seja compatível com o MySQL 4.1.0 e posterior, ela não suporta a funcionalidade extra que estas versões fornecem. Para isto, use a extensão MySQLi.

Se você quiser instalar a extensão mysql junto com a extensão mysqli você deve usar a mesma biblioteca de cliente para evitar quaisquer conflitos.

Instalação em Sistemas Linux

Nota: [DIR] é o caminho para os arquivos da biblioteca de cliente MySQL (cabeçalhos e bibliotecas), que podem ser obtidos do site do » MySQL.

Matriz de suporte em tempo de compilação da ext/mysql
Versão do PHP | Padrão | Opções de Configuração: mysqlnd | Opções de Configuração: libmysqlclient | Registro de Alterações
4.x.x | libmysqlclient | Não Disponível | --without-mysql para desabilitar | MySQL habilitado por padrão, bibliotecas de clientes MySQL vêm embutidas
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Não Disponível | --with-mysql=[DIR] | O MySQL não é mais habilitado por padrão, e as bibliotecas de clientes MySQL não vêm mais embutidas
5.3.x | libmysqlclient | --with-mysql=mysqlnd | --with-mysql=[DIR] | mysqlnd agora está disponível
5.4.x | mysqlnd | --with-mysql | --with-mysql=[DIR] | mysqlnd agora é o padrão

Instalação em Sistemas Windows

PHP 5.0.x, 5.1.x, 5.2.x

O MySQL não é mais habilitado por padrão, então a DLL php_mysql.dll deve estar habilitada dentro do php.ini. Além disso, o PHP precisa de acesso à biblioteca de cliente MySQL. Um arquivo chamado libmysql.dll é incluído na distribuição PHP do Windows, e para que o PHP possa conversar com o MySQL este arquivo precisa estar disponível no PATH dos sistemas Windows. Veja a pergunta entitulada "Como adicionar meu diretório PHP ao PATH do Windows" para informações sobre como fazer isso. Embora copiar o arquivo libmysql.dll para o diretório de sistema do Windows também funcione (porque o diretório de sistema está por padrão no PATH do sistema), isto não é recomendado.

Assim como ao habilitar qualquer extensão PHP (como php_mysql.dll), a diretiva PHP extension_dir deve apontar para o diretório onde as extensões PHP estão localizadas. Veja também as Instruções para Instalação Manual no Windows. Um exemplo de valor para extension_dir no PHP 5 é c:\php\ext

Nota:

Se ao iniciar o servidor web um erro similar ao seguinte ocorrer: "Unable to load dynamic library './php_mysql.dll'", é porque o arquivo php_mysql.dll e/ou libmysql.dll não pode ser encontrado pelo sistema.

PHP 5.3.0+

O Driver Nativo MySQL está habilitado por padrão. Inclui php_mysql.dll, mas libmysql.dll não é mais necessário ou usado.

Notas de Instalação do MySQL

Aviso

Falhas e problemas de inicialização do PHP podem ocorrer ao carregar esta extensão em conjunto com a extensão recode. Veja a extensão recode para maiores informações.

Nota:

Se for necessário usar conjuntos de caracteres diferentes de latin (padrão), deve-se instalar uma libmysqlclient externa (não incluída) com o suporte ao conjunto de caracteres compilado.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração do MySQL
Nome | Padrão | Modificável | Registro de Alterações
mysql.allow_local_infile | "1" | INI_SYSTEM |
mysql.allow_persistent | "1" | INI_SYSTEM |
mysql.max_persistent | "-1" | INI_SYSTEM |
mysql.max_links | "-1" | INI_SYSTEM |
mysql.trace_mode | "0" | INI_ALL |
mysql.default_port | NULL | INI_ALL |
mysql.default_socket | NULL | INI_ALL |
mysql.default_host | NULL | INI_ALL |
mysql.default_user | NULL | INI_ALL |
mysql.default_password | NULL | INI_ALL |
mysql.connect_timeout | "60" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

mysql.allow_local_infile int

Permite acessar, da perspectiva do PHP, arquivos locais com declarações LOAD DATA

mysql.allow_persistent bool

Se deve-se permitir conexões persistentes para MySQL.

mysql.max_persistent int

O número máximo de conexões persistentes com o MySQL por processo.

mysql.max_links int

O número máximo de conexões com o MYSQL por processo, incluindo conexões persistentes.

mysql.trace_mode bool

Modo de rastreamento. Quando mysql.trace_mode está ativado, alertas para pesquisas em tabelas/índices, conjuntos de resultados não liberados, e erros de SQL serão exibidos.

mysql.default_port string

O número padrão da porta TCP a usar quando conectar com o servidor do banco de dados se nenhuma outra porta for especificada. Se nenhum padrão for especificado, a porta será obtida da variável de ambiente MYSQL_TCP_PORT, da entrada mysql-tcp em /etc/services ou da constante da compilação MYSQL_PORT, nesta ordem. Windows irá usar somente a constante MYSQL_PORT.

mysql.default_socket string

O nome padrão do socket para usar quando conectar com um servidor de banco de dados local se outro nome de socket não for especificado.

mysql.default_host string

O servidor padrão para usar quando conectar com um servidor de banco de dados se outro servidor não for encontrado. Não se aplica em modo seguro do SQL.

mysql.default_user string

O nome padrão de usuário para conectar ao servidor de banco de dados se outro nome não for especificado. Não se aplica em modo seguro do SQL.

mysql.default_password string

A senha padrão para usar ao conectar ao servidor de banco de dados se outra senha não for especificada. Não se aplica em modo seguro do SQL.

mysql.connect_timeout int

Limite de tempo da conexão em segundos. No Linux este limite é também usado para a espera da primeira resposta do servidor.


Tipos de Recurso

Existem dois tipos de recursos usados no módulo MySQL. O primeiro é o identificador de conexão com o banco de dados, e o segundo é o recurso que guarda o resultado de uma consulta.


Registro de Alterações

As alterações a seguir foram feitas em classes/funções/métodos desta extensão.

General Changelog for the ext/mysql extension

This changelog references the ext/mysql extension.

Global ext/mysql changes

The following is a list of changes to the entire ext/mysql extension.

Versão | Descrição
7.0.0 | This extension was removed from PHP. For details, see Escolhendo uma API.

Changes to existing functions

The following list is a compilation of changelog entries from the ext/mysql functions.

Version Function Descrição


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

It is possible to specify additional client flags for the mysql_connect() and mysql_pconnect() functions. The following constants are defined:

MySQL client constants
Constant | Description
MYSQL_CLIENT_COMPRESS | Use compression protocol
MYSQL_CLIENT_IGNORE_SPACE | Allow space after function names
MYSQL_CLIENT_INTERACTIVE | Allow interactive_timeout seconds (instead of wait_timeout) of inactivity before closing the connection.
MYSQL_CLIENT_SSL | Use SSL encryption. This flag is only available with version 4.x of the MySQL client library or newer. Version 3.23.x is bundled both with PHP 4 and Windows binaries of PHP 5.

The function mysql_fetch_array() uses a constant for the different types of result arrays. The following constants are defined:

MySQL fetch constants
Constant | Description
MYSQL_ASSOC | Columns are returned into the array having the fieldname as the array index.
MYSQL_BOTH | Columns are returned into the array having both a numerical index and the fieldname as the array index.
MYSQL_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.


  • « Constantes pré-definidas
  • Exemplo de uso da extensão MySQL »
  • PHP Manual
  • MySQL (Original)
  • Exemplos

Exemplos

Índice

  • Exemplo de uso da extensão MySQL


Exemplo de uso da extensão MySQL

Este exemplo simples mostra como conectar, executar uma consulta, mostrar as linhas do resultado e disconectar de um banco de dados MySQL.

Exemplo #1 Exemplo de uso da extensão MySQL

<?php
// Connecting, selecting database
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('my_database') or die('Could not select database');

// Performing SQL query
$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);

// Closing connection
mysql_close($link);
?>


Funções da MySQL

Notas

Nota:

A maioria das funções MySQL aceitam link_identifier como o último parâmetro opcional. Se este não for dados, a última conexão aberta é usada. Se não existir, é tentado estabelecer uma conexão com os valores padrão definidos no php.ini. Se não for possível, a função retornará false.

Índice

  • mysql_affected_rows — Obtém o número de linhas afetadas na operação anterior do MySQL
  • mysql_client_encoding — Returns the name of the character set
  • mysql_close — Fecha a conexão MySQL
  • mysql_connect — Open a connection to a MySQL Server
  • mysql_create_db — Cria um banco de dados MySQL
  • mysql_data_seek — Move o ponteiro interno do resultado
  • mysql_db_name — Obtém o nome do banco de dados a partir da chamada à mysql_list_dbs
  • mysql_db_query — Selects a database and executes a query on it
  • mysql_drop_db — Drop (exclui) um banco de dados MySQL
  • mysql_errno — Retorna o valor numérico da mensagem de erro da operação MySQL anterior
  • mysql_error — Retorna o texto da mensagem de erro da operação MySQL anterior
  • mysql_escape_string — Escapa uma string para usá-la em uma função mysql_query
  • mysql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
  • mysql_fetch_assoc — Obtém uma linha do resultado como um array associativo
  • mysql_fetch_field — Get column information from a result and return as an object
  • mysql_fetch_lengths — Obtém o tamanho de cada saída de um resultado
  • mysql_fetch_object — Obtém o resultado de uma linha como um objeto
  • mysql_fetch_row — Obtém uma linha como um array numérico
  • mysql_field_flags — Get the flags associated with the specified field in a result
  • mysql_field_len — Retorna o tamanho do campo especificado
  • mysql_field_name — Obtém o nome do campo especificado em um resultado
  • mysql_field_seek — Define o ponteiro do resultado para o índice de campo especificado
  • mysql_field_table — Obtém o nome da tabela na qual o campo especificado esta
  • mysql_field_type — Obtém o tipo do campo especificado em um resultado
  • mysql_free_result — Free result memory
  • mysql_get_client_info — Obtém informações do cliente MySQL
  • mysql_get_host_info — Obtém informações do servidor MySQL
  • mysql_get_proto_info — Obtém informações do protocolo MySQL
  • mysql_get_server_info — Obtém informações do servidor MySQL
  • mysql_info — Obtém informação sobre a consulta mais recente
  • mysql_insert_id — Obtém o ID gerado pela operação INSERT anterior
  • mysql_list_dbs — Lista os bancos de dados disponíveis em um servidor MySQL
  • mysql_list_fields — Lista os campos de uma tabela MySQL
  • mysql_list_processes — Lista os processos MySQL
  • mysql_list_tables — List tables in a MySQL database
  • mysql_num_fields — Obtém o numero de campos em um resultado
  • mysql_num_rows — Obtém o número de linhas em um resultado
  • mysql_pconnect — Open a persistent connection to a MySQL server
  • mysql_ping — Pinga uma conexão com o servidor ou reconecta se não houver conexão
  • mysql_query — Send a MySQL query
  • mysql_real_escape_string — Escapes special characters in a string for use in an SQL statement
  • mysql_result — Get result data
  • mysql_select_db — Select a MySQL database
  • mysql_set_charset — Sets the client character set
  • mysql_stat — Get current system status
  • mysql_tablename — Get table name of field
  • mysql_thread_id — Return the current thread ID
  • mysql_unbuffered_query — Send an SQL query to MySQL without fetching and buffering the result rows


Obtém o número de linhas afetadas na operação anterior do MySQL

  • « Funções da MySQL
  • mysql_client_encoding »
  • PHP Manual
  • Funções da MySQL
  • Obtém o número de linhas afetadas na operação anterior do MySQL

mysql_affected_rows

(PHP 4, PHP 5)

mysql_affected_rows — Obtém o número de linhas afetadas na operação anterior do MySQL

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_affected_rows()
  • PDOStatement::rowCount()

Descrição

mysql_affected_rows(resource $link_identifier = NULL): int

Obtém o número de linhas afetadas pelo último INSERT, UPDATE, REPLACE ou DELETE associado ao link_identifier.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retona o número de linas afetadas em caso de sucesso, e -1 se a última consulta falhou.

Se a última consulta foi um DELETE sem a claúsula WHERE, todos os registros terão sido excluídos da tabela mas esta função irá retornar zero em versões do MySQL anteriores a 4.1.2.

Ao usar UPDATE, o MySQL não irá atualizar colunas aonde o novo valor é o mesmo que o valor anterior. Isto cria a possibilidade de que mysql_affected_rows() possa não ser igual ao número de linhas encontradas, apenas o número de linhas que literalmente foram afetadas pela consulta.

O comando REPLACE primeiro exclui o registro com a mesma chave primária e então insere o novo registro. Esta função retorna o número de registros excluídos mais o número de registros inseridos.

No caso de consultas "INSERT ... ON DUPLICATE KEY UPDATE", o valor retornado será 1 se um insert foi executado, ou 2 para um update de uma linha existente.

Exemplos

Exemplo #1 Exemplo mysql_affected_rows()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

/* this should return the correct numbers of deleted records */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Records deleted: %d\n", mysql_affected_rows());

/* with a where clause that is never true, it should return 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Records deleted: %d\n", mysql_affected_rows());
?>

O exemplo acima produzirá algo semelhante a:

Records deleted: 10
Records deleted: 0

Exemplo #2 Exemplo de mysql_affected_rows() usando transações

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

/* Update records */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Updated records: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>

O exemplo acima produzirá algo semelhante a:

Updated Records: 10

Notas

Nota: Transações

Se você estiver usando transações, você deve utilizar mysql_affected_rows() depois da sua consulta INSERT, UPDATE, ou DELETE, não depois de COMMIT.

Nota: Comandos SELECT

Para obter o número de linhas retornados por um SELECT, é possível usar mysql_num_rows().

Nota: Chaves estrangeiras em cascata

mysql_affected_rows() não conta linhas afetadas implicitamente pelo uso de ON DELETE CASCADE e/ou ON UPDATE CASCADE em chaves estrangeiras.

Veja Também

  • mysql_num_rows() - Obtém o número de linhas em um resultado
  • mysql_info() - Obtém informação sobre a consulta mais recente


Returns the name of the character set

  • « mysql_affected_rows
  • mysql_close »
  • PHP Manual
  • Funções da MySQL
  • Returns the name of the character set

mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding — Returns the name of the character set

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_character_set_name()

Descrição

mysql_client_encoding(resource $link_identifier = NULL): string

Retrieves the character_set variable from MySQL.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Returns the default character set name for the current connection.

Exemplos

Exemplo #1 mysql_client_encoding() example

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);

echo "The current character set is: $charset\n";
?>

O exemplo acima produzirá algo semelhante a:

The current character set is: latin1

Veja Também

  • mysql_set_charset() - Sets the client character set
  • mysql_real_escape_string() - Escapes special characters in a string for use in an SQL statement


Fecha a conexão MySQL

  • « mysql_client_encoding
  • mysql_connect »
  • PHP Manual
  • Funções da MySQL
  • Fecha a conexão MySQL

mysql_close

(PHP 4, PHP 5)

mysql_close — Fecha a conexão MySQL

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_close()
  • PDO: Assign the value of null to the PDO object

Descrição

mysql_close(resource $link_identifier = NULL): bool

mysql_close() fecha a conexão não persistente ao servidor MySQL que está associado ao identificador de conexão especificado. Se link_identifier não for especificado, a última conexão aberta é usada.

Conexões MySQL não persistentes abertas e conjuntos de resultados são automaticamente destruídos quando um script PHP termina sua execução. Portanto, embora seja opcional fechar conexões abertas e liberar conjuntos de resultados, isso é recomendado. Isso retornará imediatamente os recursos usados ao PHP e MySQL, o que pode melhorar o desempenho. Para obter informações relacionadas, consulte a página liberando recursos.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo mysql_close()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

O exemplo acima produzirá:

Connected successfully

Notas

Nota:

mysql_close() não irá fechar conexões persistentes criadas por mysql_pconnect(). Para detalhes adicionais, veja o manual em persistent connections.

Veja Também

  • mysql_connect() - Open a connection to a MySQL Server
  • mysql_free_result() - Free result memory


Open a connection to a MySQL Server

  • « mysql_close
  • mysql_create_db »
  • PHP Manual
  • Funções da MySQL
  • Open a connection to a MySQL Server

mysql_connect

(PHP 4, PHP 5)

mysql_connect — Open a connection to a MySQL Server

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_connect()
  • PDO::__construct()

Descrição

mysql_connect(
string $server = ini_get("mysql.default_host"),
string $username = ini_get("mysql.default_user"),
string $password = ini_get("mysql.default_password"),
bool $new_link = false,
int $client_flags = 0
): resource|false

Opens or reuses a connection to a MySQL server.

Parâmetros

server

The MySQL server. It can also include a port number. e.g. "hostname:port" or a path to a local socket e.g. ":/path/to/socket" for the localhost.

If the PHP directive mysql.default_host is undefined (default), then the default value is 'localhost:3306'. In modo seguro do SQL, this parameter is ignored and value 'localhost:3306' is always used.

username

The username. Default value is defined by mysql.default_user. In modo seguro do SQL, this parameter is ignored and the name of the user that owns the server process is used.

password

The password. Default value is defined by mysql.default_password. In modo seguro do SQL, this parameter is ignored and empty password is used.

new_link

If a second call is made to mysql_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 new_link parameter modifies this behavior and makes mysql_connect() always open a new link, even if mysql_connect() was called before with the same parameters. In modo seguro do SQL, this parameter is ignored.

client_flags

The client_flags parameter can be a combination of the following constants: 128 (enable LOAD DATA LOCAL handling), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE. Read the section about MySQL client constants for further information. In modo seguro do SQL, this parameter is ignored.

Valor Retornado

Returns a MySQL link identifier on success ou false em caso de falha.

Exemplos

Exemplo #1 mysql_connect() example

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

Exemplo #2 mysql_connect() example using hostname:port syntax

<?php
// we connect to example.com and port 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);

// we connect to localhost at port 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

Exemplo #3 mysql_connect() example using ":/path/to/socket" syntax

<?php
// we connect to localhost and socket e.g. /tmp/mysql.sock

// variant 1: omit localhost
$link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);

// variant 2: with localhost
$link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

Notas

Nota:

Whenever you specify "localhost" or "localhost:port" as server, the MySQL client library will override this and try to connect to a local socket (named pipe on Windows). If you want to use TCP/IP, use "127.0.0.1" instead of "localhost". If the MySQL client library tries to connect to the wrong local socket, the correct path should be set as mysql.default_host in php.ini and the server field left blank.

Nota:

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 mysql_close().

Nota:

Error "Can't create TCP/IP socket (10106)" usually means that the variables_order configure directive doesn't contain character E. On Windows, if the environment is not copied the SYSTEMROOT environment variable won't be available and PHP will have problems loading Winsock.

Veja Também

  • mysql_pconnect() - Open a persistent connection to a MySQL server
  • mysql_close() - Fecha a conexão MySQL


Cria um banco de dados MySQL

  • « mysql_connect
  • mysql_data_seek »
  • PHP Manual
  • Funções da MySQL
  • Cria um banco de dados MySQL

mysql_create_db

(PHP 4, PHP 5)

mysql_create_db — Cria um banco de dados MySQL

Aviso

Esta função tornou-se defasada a partir do PHP 4.3.0 e ela e a extensão MySQL original foram removidas a partir do PHP 7.0.0. Em vez disso, use as extensões MySQLi ou PDO_MySQL, que são desenvolvidas ativamente. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_query()
  • PDO::query()

Descrição

mysql_create_db(string $database_name, resource $link_identifier = NULL): bool

mysql_create_db() tenta criar um novo banco de dados no servidor associado com o identificador de conexão especificado.

Parâmetros

database_name

O nome do banco de dados a ser criado.

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo alternativo de mysql_create_db()

A função mysql_create_db() foi descontinuada. É preferível usar a função mysql_query() para executar o comando CREATE DATABASE.

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}

$sql = 'CREATE DATABASE my_db';
if (mysql_query($sql, $link)) {
echo "Database my_db created successfully\n";
} else {
echo 'Error creating database: ' . mysql_error() . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Database my_db created successfully

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_createdb()

Nota:

Esta função não estará disponível se a extensão MySQL foi compilada com a versão MySQL 4.x da biblioteca de cliente.

Veja Também

  • mysql_query() - Send a MySQL query
  • mysql_select_db() - Select a MySQL database


Move o ponteiro interno do resultado

  • « mysql_create_db
  • mysql_db_name »
  • PHP Manual
  • Funções da MySQL
  • Move o ponteiro interno do resultado

mysql_data_seek

(PHP 4, PHP 5)

mysql_data_seek — Move o ponteiro interno do resultado

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_data_seek()
  • PDO::FETCH_ORI_ABS

Descrição

mysql_data_seek(resource $result, int $row_number): bool

mysql_data_seek() move o ponteiro interno da linha de um resultado MySQL associado ao identificador de resultado informado para o número da linha especificada. A próxima chamada a uma função MySQL que retorna resultado, como mysql_fetch_assoc(), irá retornar esta linha.

row_number começa em 0. O row_number deve ser um valor no intervalo de 0 a mysql_num_rows() - 1. Entretanto, se o conjunto de reseultados for vazio (mysql_num_rows() == 0), uma busca para 0 irá falhar com um E_WARNING e mysql_data_seek() iá retornar false.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

row_number

O número de linha desejado para o ponteiro de resultado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo mysql_data_seek()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db('sample_db');
if (!$db_selected) {
die('Could not select database: ' . mysql_error());
}
$query = 'SELECT last_name, first_name FROM friends';
$result = mysql_query($query);
if (!$result) {
die('Query failed: ' . mysql_error());
}
/* fetch rows in reverse order */
for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
if (!mysql_data_seek($result, $i)) {
echo "Cannot seek to row $i: " . mysql_error() . "\n";
continue;
}

if (!($row = mysql_fetch_assoc($result))) {
continue;
}

echo $row['last_name'] . ' ' . $row['first_name'] . "<br />\n";
}

mysql_free_result($result);
?>

Notas

Nota:

A função mysql_data_seek() pode ser usada apenas em conjunto com a função mysql_query(), não com mysql_unbuffered_query().

Veja Também

  • mysql_query() - Send a MySQL query
  • mysql_num_rows() - Obtém o número de linhas em um resultado
  • mysql_fetch_row() - Obtém uma linha como um array numérico
  • mysql_fetch_assoc() - Obtém uma linha do resultado como um array associativo
  • mysql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mysql_fetch_object() - Obtém o resultado de uma linha como um objeto


Obtém o nome do banco de dados a partir da chamada à mysql_list_dbs

  • « mysql_data_seek
  • mysql_db_query »
  • PHP Manual
  • Funções da MySQL
  • Obtém o nome do banco de dados a partir da chamada à mysql_list_dbs

mysql_db_name

(PHP 4, PHP 5)

mysql_db_name — Obtém o nome do banco de dados a partir da chamada à mysql_list_dbs()

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • Query: SELECT DATABASE()

Descrição

mysql_db_name(resource $result, int $row, mixed $field = NULL): string

Obtém o nome do banco de dados a partir de uma chamada à mysql_list_dbs().

Parâmetros

result

O ponteiro de resultado de uma chamada à mysql_list_dbs().

row

O índice dentro do conjunto de resultados.

field

O nome do campo.

Valor Retornado

Retorna o nome do banco de dados em caso de sucesso, e false em caso de falha. Se for retornado false, utilize mysql_error() para determinar a natureza do erro.

Exemplos

Exemplo #1 Exemplo mysql_db_name()

<?php
error_reporting(E_ALL);

$link = mysql_connect('dbhost', 'username', 'password');
$db_list = mysql_list_dbs($link);

$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i < $cnt) {
echo mysql_db_name($db_list, $i) . "\n";
$i++;
}
?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_dbname()

Veja Também

  • mysql_list_dbs() - Lista os bancos de dados disponíveis em um servidor MySQL
  • mysql_tablename() - Get table name of field


Selects a database and executes a query on it

  • « mysql_db_name
  • mysql_drop_db »
  • PHP Manual
  • Funções da MySQL
  • Selects a database and executes a query on it

mysql_db_query

(PHP 4, PHP 5)

mysql_db_query — Selects a database and executes a query on it

Aviso

Esta função tornou-se defasada a partir do PHP 5.3.0 e ela e a extensão MySQL original foram removidas a partir do PHP 7.0.0. Em vez disso, use as extensões MySQLi ou PDO_MySQL, que são desenvolvidas ativamente. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_select_db() then the query
  • PDO::__construct()

Descrição

mysql_db_query(string $database, string $query, resource $link_identifier = NULL): resource|bool

mysql_db_query() selects a database, and executes a query on it.

Parâmetros

database

The name of the database that will be selected.

query

The MySQL query.

Data inside the query should be properly escaped.

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Returns a positive MySQL result resource to the query result, or false on error. The function also returns true/false for INSERT/UPDATE/DELETE queries to indicate success/failure.

Exemplos

Exemplo #1 mysql_db_query() alternative example

<?php

if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
echo 'Could not connect to mysql';
exit;
}

if (!mysql_select_db('mysql_dbname', $link)) {
echo 'Could not select database';
exit;
}

$sql = 'SELECT foo FROM bar WHERE id = 42';
$result = mysql_query($sql, $link);

if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}

while ($row = mysql_fetch_assoc($result)) {
echo $row['foo'];
}

mysql_free_result($result);

?>

Notas

Nota:

Be aware that this function does NOT switch back to the database you were connected before. In other words, you can't use this function to temporarily run a sql query on another database, you would have to manually switch back. Users are strongly encouraged to use the database.table syntax in their sql queries or mysql_select_db() instead of this function.

Veja Também

  • mysql_query() - Send a MySQL query
  • mysql_select_db() - Select a MySQL database


Drop (exclui) um banco de dados MySQL

  • « mysql_db_query
  • mysql_errno »
  • PHP Manual
  • Funções da MySQL
  • Drop (exclui) um banco de dados MySQL

mysql_drop_db

(PHP 4, PHP 5)

mysql_drop_db — Drop (exclui) um banco de dados MySQL

Aviso

Esta função tornou-se defasada a partir do PHP 4.3.0 e ela e a extensão MySQL original foram removidas a partir do PHP 7.0.0. Em vez disso, use as extensões MySQLi ou PDO_MySQL, que são desenvolvidas ativamente. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • Executa um query DROP DATABASE

Descrição

mysql_drop_db(string $database_name, resource $link_identifier = NULL): bool

mysql_drop_db() tenta executar um drop (remover) todo um banco de dados do servidor associado ao identificador de conexão especificado. Esta função foi descontinuada, é preferível usar mysql_query() para realilar um comando DROP DATABASE.

Parâmetros

database_name

O nome do banco de dados que será excluído.

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo alternativo de mysql_drop_db()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}

$sql = 'DROP DATABASE my_db';
if (mysql_query($sql, $link)) {
echo "Database my_db was successfully dropped\n";
} else {
echo 'Error dropping database: ' . mysql_error() . "\n";
}
?>

Notas

Aviso

Esta função não estará disponível se a extensão MySQL foi compilada com a versão da biblioteca de cliente MySQL 4.x.

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_dropdb()

Veja Também

  • mysql_query() - Send a MySQL query


Retorna o valor numérico da mensagem de erro da operação MySQL anterior

  • « mysql_drop_db
  • mysql_error »
  • PHP Manual
  • Funções da MySQL
  • Retorna o valor numérico da mensagem de erro da operação MySQL anterior

mysql_errno

(PHP 4, PHP 5)

mysql_errno — Retorna o valor numérico da mensagem de erro da operação MySQL anterior

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_errno()
  • PDO::errorCode()

Descrição

mysql_errno(resource $link_identifier = NULL): int

Retorna o número do erro da última função MySQL.

Erros vindos do banco de dados MySQL não geram mais avisos. Ao invés disso, use mysql_errno() para obter o código do erro. Note que esta função retorna o código apenas da função MySQL mais recentemente usada (não incluindo mysql_error() e mysql_errno()), assim se você quiser usá-la, tenha certeza de verificar o valor antes de executar outra função MySQL.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna o número de erro da última função MySQL, ou 0 (zero) se não houve erro.

Exemplos

Exemplo #1 Exemplo mysql_errno()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!mysql_select_db("nonexistentdb", $link)) {
echo mysql_errno($link) . ": " . mysql_error($link). "\n";
}

mysql_select_db("kossu", $link);
if (!mysql_query("SELECT * FROM nonexistenttable", $link)) {
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Veja Também

  • mysql_error() - Retorna o texto da mensagem de erro da operação MySQL anterior
  • » códigos de erro MySQL


Retorna o texto da mensagem de erro da operação MySQL anterior

  • « mysql_errno
  • mysql_escape_string »
  • PHP Manual
  • Funções da MySQL
  • Retorna o texto da mensagem de erro da operação MySQL anterior

mysql_error

(PHP 4, PHP 5)

mysql_error — Retorna o texto da mensagem de erro da operação MySQL anterior

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_error()
  • PDO::errorInfo()

Descrição

mysql_error(resource $link_identifier = NULL): string

Retorna o texto do último erro de funções MySQL. Erros vindos do banco de dados MySQL não geram mais avisos. Ao invés, use mysql_error() para obter o texto do erro. Note que esta função apenas retorna o texto do erro da função MySQL mais recentemente executada (não incluindo mysql_error() e mysql_errno()), assim se você quiser usa-la, tenha certeza de obter o valor antes de utilizar outra função MySQL.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna o texto do erro da ultima função MySQL, ou '' (uma string vazia) se não houve erro.

Exemplos

Exemplo #1 Exemplo mysql_error()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("nonexistentdb", $link);
echo mysql_errno($link) . ": " . mysql_error($link). "\n";

mysql_select_db("kossu", $link);
mysql_query("SELECT * FROM nonexistenttable", $link);
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>

O exemplo acima produzirá algo semelhante a:

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Veja Também

  • mysql_errno() - Retorna o valor numérico da mensagem de erro da operação MySQL anterior
  • » códigos de erro MySQL


Escapa uma string para usá-la em uma função mysql_query

  • « mysql_error
  • mysql_fetch_array »
  • PHP Manual
  • Funções da MySQL
  • Escapa uma string para usá-la em uma função mysql_query

mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string — Escapa uma string para usá-la em uma função mysql_query

Aviso

Esta função tornou-se defasada a partir do PHP 4.3.0 e ela e a extensão MySQL original foram removidas a partir do PHP 7.0.0. Em vez disso, use as extensões MySQLi ou PDO_MySQL, que são desenvolvidas ativamente. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_escape_string()
  • PDO::quote()

Descrição

mysql_escape_string(string $unescaped_string): string

Esta função escapará a string unescaped_string, de modo que seja seguro usá-la em uma função mysql_query(). Esta função foi descontinuada.

Esta função é idêntica a mysql_real_escape_string() exceto que mysql_real_escape_string() recebe um manipulador de conexão e escapa a string de acordo com o conjunto de caracteres atual. mysql_escape_string() não recebe um manipulador de conexão e não respeita a configuração atual do conjunto de caracteres.

Parâmetros

unescaped_string

A string que deve ser escapada.

Valor Retornado

Retorna a string escapada.

Exemplos

Exemplo #1 Exemplo de mysql_escape_string()

<?php
$item = "Zak's Laptop";
$escaped_item = mysql_escape_string($item);
printf("String escapada: %s\n", $escaped_item);
?>

O exemplo acima produzirá:

String escapada: Zak\'s Laptop

Notas

Nota:

mysql_escape_string() não escapa % e _.

Veja Também

  • mysql_real_escape_string() - Escapes special characters in a string for use in an SQL statement


Fetch a result row as an associative array, a numeric array, or both

  • « mysql_escape_string
  • mysql_fetch_assoc »
  • PHP Manual
  • Funções da MySQL
  • Fetch a result row as an associative array, a numeric array, or both

mysql_fetch_array

(PHP 4, PHP 5)

mysql_fetch_array — Fetch a result row as an associative array, a numeric array, or both

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_array()
  • PDOStatement::fetch()

Descrição

mysql_fetch_array(resource $result, int $result_type = MYSQL_BOTH): array

Returns an array that corresponds to the fetched row and moves the internal data pointer ahead.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

result_type

The type of array that is to be fetched. It's a constant and can take the following values: MYSQL_ASSOC, MYSQL_NUM, and MYSQL_BOTH.

Valor Retornado

Returns an array of strings that corresponds to the fetched row, or false if there are no more rows. The type of returned array depends on how result_type is defined. By using MYSQL_BOTH (default), you'll get an array with both associative and number indices. Using MYSQL_ASSOC, you only get associative indices (as mysql_fetch_assoc() works), using MYSQL_NUM, you only get number indices (as mysql_fetch_row() works).

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. For aliased columns, you cannot access the contents with the original column name.

Exemplos

Exemplo #1 Query with aliased duplicate field names

SELECT table1.field AS foo, table2.field AS bar FROM table1, table2

Exemplo #2 mysql_fetch_array() with MYSQL_NUM

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}

mysql_free_result($result);
?>

Exemplo #3 mysql_fetch_array() with MYSQL_ASSOC

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf("ID: %s Name: %s", $row["id"], $row["name"]);
}

mysql_free_result($result);
?>

Exemplo #4 mysql_fetch_array() with MYSQL_BOTH

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("ID: %s Name: %s", $row[0], $row["name"]);
}

mysql_free_result($result);
?>

Notas

Nota: Performance

An important thing to note is that using mysql_fetch_array() is not significantly slower than using mysql_fetch_row(), while it provides a significant added value.

Nota: Os nomes de campos retornados por esta função diferenciam maiúsculas e minúsculas.

Nota: Esta função define campos NULL como o valor null do PHP.

Veja Também

  • mysql_fetch_row() - Obtém uma linha como um array numérico
  • mysql_fetch_assoc() - Obtém uma linha do resultado como um array associativo
  • mysql_data_seek() - Move o ponteiro interno do resultado
  • mysql_query() - Send a MySQL query


Obtém uma linha do resultado como um array associativo

  • « mysql_fetch_array
  • mysql_fetch_field »
  • PHP Manual
  • Funções da MySQL
  • Obtém uma linha do resultado como um array associativo

mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc — Obtém uma linha do resultado como um array associativo

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_assoc()
  • PDOStatement::fetch() com mode como PDO::FETCH_ASSOC

Descrição

mysql_fetch_assoc(resource $result): array

Retorna uma matriz associativa que corresponde a linha obtida e move o ponteiro interno dos dados adiante. mysql_fetch_assoc() é equivalente a utilizar mysql_fetch_array() com MYSQL_ASSOC para o segunto parâmetro, que é opcional. Ela apenas retorna um array associativo.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

Valor Retornado

Retorna uma matriz associativa de strings que corresponde a linha obtida, ou false se não houverem mais linhas.

Se duas ou mais colunas do resultado tiverem o mesmo nome de campo, a ultima coluna terá precedencia. Para acessar as outras coluna(s) com o mesmo nome, você precisa acessar os outros resultados usando índices numéricos com mysql_fetch_row() ou adicionar alias (apelidos). Veja o exemplo em mysql_fetch_array() para uma descrição sobre alias.

Exemplos

Exemplo #1 Um exemplo expandido de mysql_fetch_assoc()

<?php

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}

if (!mysql_select_db("mydbname")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}

$sql = "SELECT id as userid, fullname, userstatus
FROM sometable
WHERE userstatus = 1";

$result = mysql_query($sql);

if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}

if (mysql_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 = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}

mysql_free_result($result);

?>

Notas

Nota: Performance

Uma coisa importante para notar é que usar mysql_fetch_assoc() não é significativamente mais lento do que usar mysql_fetch_row(), enquanto provê um valor agregado significante.

Nota: Os nomes de campos retornados por esta função diferenciam maiúsculas e minúsculas.

Nota: Esta função define campos NULL como o valor null do PHP.

Veja Também

  • mysql_fetch_row() - Obtém uma linha como um array numérico
  • mysql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mysql_data_seek() - Move o ponteiro interno do resultado
  • mysql_query() - Send a MySQL query
  • mysql_error() - Retorna o texto da mensagem de erro da operação MySQL anterior


Get column information from a result and return as an object

  • « mysql_fetch_assoc
  • mysql_fetch_lengths »
  • PHP Manual
  • Funções da MySQL
  • Get column information from a result and return as an object

mysql_fetch_field

(PHP 4, PHP 5)

mysql_fetch_field — Get column information from a result and return as an object

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_field()
  • PDOStatement::getColumnMeta()

Descrição

mysql_fetch_field(resource $result, int $field_offset = 0): object

Returns an object containing field information. This function can be used to obtain information about fields in the provided query result.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

field_offset

The numerical field offset. If the field offset is not specified, the next field that was not yet retrieved by this function is retrieved. The field_offset starts at 0.

Valor Retornado

Returns an object containing field information. The properties of the object are:

  • name - column name
  • table - name of the table the column belongs to, which is the alias name if one is defined
  • max_length - maximum length of the column
  • not_null - 1 if the column cannot be null
  • primary_key - 1 if the column is a primary key
  • unique_key - 1 if the column is a unique key
  • multiple_key - 1 if the column is a non-unique key
  • numeric - 1 if the column is numeric
  • blob - 1 if the column is a BLOB
  • type - the type of the column
  • unsigned - 1 if the column is unsigned
  • zerofill - 1 if the column is zero-filled

Exemplos

Exemplo #1 mysql_fetch_field() example

<?php
$conn = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$conn) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('database');
$result = mysql_query('select * from table');
if (!$result) {
die('Query failed: ' . mysql_error());
}
/* get column metadata */
$i = 0;
while ($i < mysql_num_fields($result)) {
echo "Information for column $i:<br />\n";
$meta = mysql_fetch_field($result, $i);
if (!$meta) {
echo "No information available<br />\n";
}
echo "<pre>
blob: $meta->blob
max_length: $meta->max_length
multiple_key: $meta->multiple_key
name: $meta->name
not_null: $meta->not_null
numeric: $meta->numeric
primary_key: $meta->primary_key
table: $meta->table
type: $meta->type
unique_key: $meta->unique_key
unsigned: $meta->unsigned
zerofill: $meta->zerofill
</pre>";
$i++;
}
mysql_free_result($result);
?>

Notas

Nota: Os nomes de campos retornados por esta função diferenciam maiúsculas e minúsculas.

Nota:

If field or tablenames are aliased in the SQL query the aliased name will be returned. The original name can be retrieved for instance by using mysqli_result::fetch_field().

Veja Também

  • mysql_field_seek() - Define o ponteiro do resultado para o índice de campo especificado


Obtém o tamanho de cada saída de um resultado

  • « mysql_fetch_field
  • mysql_fetch_object »
  • PHP Manual
  • Funções da MySQL
  • Obtém o tamanho de cada saída de um resultado

mysql_fetch_lengths

(PHP 4, PHP 5)

mysql_fetch_lengths — Obtém o tamanho de cada saída de um resultado

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_lengths()
  • PDOStatement::getColumnMeta()

Descrição

mysql_fetch_lengths(resource $result): array|false

Retorna um array que corresponde aos tamanhos de cada campo na ultima linha obtida pelo MySQL.

mysql_fetch_lengths() guarda o tamanho de
cada coluna do resultado na última linha retornada por
mysql_fetch_row(),
mysql_fetch_assoc(),
mysql_fetch_array(), e
mysql_fetch_object() em um array, começando
no índice 0.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

Valor Retornado

Um array de tamanhos em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo mysql_fetch_lengths()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_assoc($result);
$lengths = mysql_fetch_lengths($result);

print_r($row);
print_r($lengths);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [id] => 42
    [email] => user@example.com
)
Array
(
    [0] => 2
    [1] => 16
)

Veja Também

  • mysql_field_len() - Retorna o tamanho do campo especificado
  • mysql_fetch_row() - Obtém uma linha como um array numérico
  • strlen() - Retorna o tamanho de uma string


Obtém o resultado de uma linha como um objeto

  • « mysql_fetch_lengths
  • mysql_fetch_row »
  • PHP Manual
  • Funções da MySQL
  • Obtém o resultado de uma linha como um objeto

mysql_fetch_object

(PHP 4, PHP 5)

mysql_fetch_object — Obtém o resultado de uma linha como um objeto

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_object()
  • PDOStatement::fetch() com mode como PDO::FETCH_OBJ

Descrição

mysql_fetch_object(resource $result, string $class_name = ?, array $params = ?): object

Retorna um objeto com propriedades que correspondem a linha obtida e move o ponteiro interno dos dados adiante.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

class_name

O nome de classe para instanciar, definir as propriedades e retornar. Se não for especificado, um objeto stdClass é retornado.

params

Um array opcional de parâmetros para passar para o construtor do objeto class_name.

Valor Retornado

Retorna um object com propriedades strings que correspondem a linha obtida, ou false se não houverem mais linhas.

Exemplos

Exemplo #1 Exemplo mysql_fetch_object()

<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select * from mytable");
while ($row = mysql_fetch_object($result)) {
echo $row->user_id;
echo $row->fullname;
}
mysql_free_result($result);
?>

Exemplo #2 Exemplo mysql_fetch_object()

<?php
class foo {
public $name;
}

mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");

$result = mysql_query("select name from mytable limit 1");
$obj = mysql_fetch_object($result, 'foo');
var_dump($obj);
?>

Notas

Nota: Performance

Em termos de velocidade, a função é idêntica a mysql_fetch_array(), e quase tão rápida quanto mysql_fetch_row() (a diferença é insignificante).

Nota:

mysql_fetch_object() é similar a mysql_fetch_array(), com uma diferença - um objeto é retornado, ao invés de um array. Indiretamente, isto significa que você pode acessar os dados apenas pelo nome dos campos, e não por seus índices (números são ilegais como nomes de propriedades).

Nota: Os nomes de campos retornados por esta função diferenciam maiúsculas e minúsculas.

Nota: Esta função define campos NULL como o valor null do PHP.

Veja Também

  • mysql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mysql_fetch_assoc() - Obtém uma linha do resultado como um array associativo
  • mysql_fetch_row() - Obtém uma linha como um array numérico
  • mysql_data_seek() - Move o ponteiro interno do resultado
  • mysql_query() - Send a MySQL query


Obtém uma linha como um array numérico

  • « mysql_fetch_object
  • mysql_field_flags »
  • PHP Manual
  • Funções da MySQL
  • Obtém uma linha como um array numérico

mysql_fetch_row

(PHP 4, PHP 5)

mysql_fetch_row — Obtém uma linha como um array numérico

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_row()
  • PDOStatement::fetch() com mode como PDO::FETCH_NUM

Descrição

mysql_fetch_row(resource $result): array

Retorna um array numérico que corresponde a linha obtida e move o ponteiro interno dos dados adiante.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

Valor Retornado

Retorna um array numérico de strings que corresponde linha obtida, ou false se não houverem mais linhas.

mysql_fetch_row() obtém uma linha de dados do resultado associado ao identificador do resultado especificado. A linha é retornada como um array. Cada coluna do resultado é armazenado em um índice do array, começando no índice 0.

Exemplos

Exemplo #1 Obtendo uma linha com mysql_fetch_row()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);

echo $row[0]; // 42
echo $row[1]; // the email value
?>

Notas

Nota: Esta função define campos NULL como o valor null do PHP.

Veja Também

  • mysql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mysql_fetch_assoc() - Obtém uma linha do resultado como um array associativo
  • mysql_fetch_object() - Obtém o resultado de uma linha como um objeto
  • mysql_data_seek() - Move o ponteiro interno do resultado
  • mysql_fetch_lengths() - Obtém o tamanho de cada saída de um resultado
  • mysql_result() - Get result data


Get the flags associated with the specified field in a result

  • « mysql_fetch_row
  • mysql_field_len »
  • PHP Manual
  • Funções da MySQL
  • Get the flags associated with the specified field in a result

mysql_field_flags

(PHP 4, PHP 5)

mysql_field_flags — Get the flags associated with the specified field in a result

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_field_direct() [flags]
  • PDOStatement::getColumnMeta() [flags]

Descrição

mysql_field_flags(resource $result, int $field_offset): string|false

mysql_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().

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

field_offset

O deslocamento numérico do campo. field_offset começa em 0. Se field_offset não existir, um erro de nível E_WARNING também será emitido.

Valor Retornado

Returns a string of flags associated with the result ou false em caso de falha.

The following flags are reported, if your version of MySQL is current enough to support them: "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment" and "timestamp".

Exemplos

Exemplo #1 A mysql_field_flags() example

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$flags = mysql_field_flags($result, 0);

echo $flags;
print_r(explode(' ', $flags));
?>

O exemplo acima produzirá algo semelhante a:

not_null primary_key auto_increment
Array
(
    [0] => not_null
    [1] => primary_key
    [2] => auto_increment
)

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_fieldflags()

Veja Também

  • mysql_field_type() - Obtém o tipo do campo especificado em um resultado
  • mysql_field_len() - Retorna o tamanho do campo especificado


Retorna o tamanho do campo especificado

  • « mysql_field_flags
  • mysql_field_name »
  • PHP Manual
  • Funções da MySQL
  • Retorna o tamanho do campo especificado

mysql_field_len

(PHP 4, PHP 5)

mysql_field_len — Retorna o tamanho do campo especificado

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_field_direct() [length]
  • PDOStatement::getColumnMeta() [len]

Descrição

mysql_field_len(resource $result, int $field_offset): int|false

mysql_field_len() retorna o tamanho do campo especificado.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

field_offset

O deslocamento numérico do campo. field_offset começa em 0. Se field_offset não existir, um erro de nível E_WARNING também será emitido.

Valor Retornado

O tamanho do campo especificado em sucesso ou false em caso de falha.

Exemplos

Exemplo #1 mysql_field_len() example

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}

// Will get the length of the id field as specified in the database
// schema.
$length = mysql_field_len($result, 0);
echo $length;
?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_fieldlen()

Veja Também

  • mysql_fetch_lengths() - Obtém o tamanho de cada saída de um resultado
  • strlen() - Retorna o tamanho de uma string


Obtém o nome do campo especificado em um resultado

  • « mysql_field_len
  • mysql_field_seek »
  • PHP Manual
  • Funções da MySQL
  • Obtém o nome do campo especificado em um resultado

mysql_field_name

(PHP 4, PHP 5)

mysql_field_name — Obtém o nome do campo especificado em um resultado

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_field_direct() [name] or [orgname]
  • PDOStatement::getColumnMeta() [name]

Descrição

mysql_field_name(resource $result, int $field_offset): string|false

mysql_field_name() retorna o nome do campo do índice especificado.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

field_offset

O deslocamento numérico do campo. field_offset começa em 0. Se field_offset não existir, um erro de nível E_WARNING também será emitido.

Valor Retornado

O nome do campo do índice especificado emj caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo mysql_field_name()

<?php
/* The users table consists of three fields:
* user_id
* username
* password.
*/
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect to MySQL server: ' . mysql_error());
}
$dbname = 'mydb';
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
die("Could not set $dbname: " . mysql_error());
}
$res = mysql_query('select * from users', $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>

O exemplo acima produzirá:

user_id
password

Notas

Nota: Os nomes de campos retornados por esta função diferenciam maiúsculas e minúsculas.

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_fieldname()

Veja Também

  • mysql_field_type() - Obtém o tipo do campo especificado em um resultado
  • mysql_field_len() - Retorna o tamanho do campo especificado


Define o ponteiro do resultado para o índice de campo especificado

  • « mysql_field_name
  • mysql_field_table »
  • PHP Manual
  • Funções da MySQL
  • Define o ponteiro do resultado para o índice de campo especificado

mysql_field_seek

(PHP 4, PHP 5)

mysql_field_seek — Define o ponteiro do resultado para o índice de campo especificado

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_field_seek()
  • PDOStatement::fetch() usando os parâmetros cursor_orientation e offset

Descrição

mysql_field_seek(resource $result, int $field_offset): bool

Move para o índice do campo especificado. Se a próxima chamada a mysql_fetch_field() não incluir um índice, o índice de campo especificado em mysql_field_seek() será retornado.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

field_offset

O deslocamento numérico do campo. field_offset começa em 0. Se field_offset não existir, um erro de nível E_WARNING também será emitido.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • mysql_fetch_field() - Get column information from a result and return as an object


Obtém o nome da tabela na qual o campo especificado esta

  • « mysql_field_seek
  • mysql_field_type »
  • PHP Manual
  • Funções da MySQL
  • Obtém o nome da tabela na qual o campo especificado esta

mysql_field_table

(PHP 4, PHP 5)

mysql_field_table — Obtém o nome da tabela na qual o campo especificado esta

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_field_direct() [table] or [orgtable]
  • PDOStatement::getColumnMeta() [table]

Descrição

mysql_field_table(resource $result, int $field_offset): string

Retorna o nome da tabela na qual o campo especificado está.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

field_offset

O deslocamento numérico do campo. field_offset começa em 0. Se field_offset não existir, um erro de nível E_WARNING também será emitido.

Valor Retornado

O nome da tabela em caso de sucesso.

Exemplos

Exemplo #1 Exemplo mysql_field_table()

<?php

$query = "SELECT account.*, country.* FROM account, country WHERE country.name = 'Portugal' AND account.country_id = country.id";

// get the result from the DB
$result = mysql_query($query);

// Lists the table name and then the field name
for ($i = 0; $i < mysql_num_fields($result); ++$i) {
$table = mysql_field_table($result, $i);
$field = mysql_field_name($result, $i);

echo "$table: $field\n";
}

?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_fieldtable()

Veja Também

  • mysql_list_tables() - List tables in a MySQL database


Obtém o tipo do campo especificado em um resultado

  • « mysql_field_table
  • mysql_free_result »
  • PHP Manual
  • Funções da MySQL
  • Obtém o tipo do campo especificado em um resultado

mysql_field_type

(PHP 4, PHP 5)

mysql_field_type — Obtém o tipo do campo especificado em um resultado

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_fetch_field_direct() [type]
  • PDOStatement::getColumnMeta() [driver:decl_type] ou [pdo_type]

Descrição

mysql_field_type(resource $result, int $field_offset): string

mysql_field_type() é similar a função mysql_field_name(). Os argumentos são idênticos, mas é o tipo do campo que é retornado.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

field_offset

O deslocamento numérico do campo. field_offset começa em 0. Se field_offset não existir, um erro de nível E_WARNING também será emitido.

Valor Retornado

O tipo de campo retornado será um de "int", "real", "string", "blob" e outros como detalhado na » documentação do MySQL.

Exemplos

Exemplo #1 Exemplo mysql_field_type()

<?php
mysql_connect("localhost", "mysql_username", "mysql_password");
mysql_select_db("mysql");
$result = mysql_query("SELECT * FROM func");
$fields = mysql_num_fields($result);
$rows = mysql_num_rows($result);
$table = mysql_field_table($result, 0);
echo "Your '" . $table . "' table has " . $fields . " fields and " . $rows . " record(s)\n";
echo "The table has the following fields:\n";
for ($i=0; $i < $fields; $i++) {
$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 . "\n";
}
mysql_free_result($result);
mysql_close();
?>

O exemplo acima produzirá algo semelhante a:

Your 'func' table has 4 fields and 1 record(s)
The table has the following fields:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_fieldtype()

Veja Também

  • mysql_field_name() - Obtém o nome do campo especificado em um resultado
  • mysql_field_len() - Retorna o tamanho do campo especificado


Free result memory

  • « mysql_field_type
  • mysql_get_client_info »
  • PHP Manual
  • Funções da MySQL
  • Free result memory

mysql_free_result

(PHP 4, PHP 5)

mysql_free_result — Free result memory

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_free_result()
  • Assign the value of null to the PDO object, or PDOStatement::closeCursor()

Descrição

mysql_free_result(resource $result): bool

mysql_free_result() will free all memory associated with the result identifier result.

mysql_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.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

If a non-resource is used for the result, an error of level E_WARNING will be emitted. It's worth noting that mysql_query() only returns a resource for SELECT, SHOW, EXPLAIN, and DESCRIBE queries.

Exemplos

Exemplo #1 A mysql_free_result() example

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
/* Use the result, assuming we're done with it afterwards */
$row = mysql_fetch_assoc($result);

/* Now we free up the result and continue on with our script */
mysql_free_result($result);

echo $row['id'];
echo $row['email'];
?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_freeresult()

Veja Também

  • mysql_query() - Send a MySQL query
  • is_resource() - Verifica se uma variável é um recurso


Obtém informações do cliente MySQL

  • « mysql_free_result
  • mysql_get_host_info »
  • PHP Manual
  • Funções da MySQL
  • Obtém informações do cliente MySQL

mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info — Obtém informações do cliente MySQL

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_get_client_info()
  • PDO::getAttribute() com attribute como PDO::ATTR_CLIENT_VERSION

Descrição

mysql_get_client_info(): string

mysql_get_client_info() retorna uma string que representa a versão da biblioteca do cliente.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A versão do cliente MySQL.

Exemplos

Exemplo #1 Exemplo mysql_get_client_info()

<?php
printf("MySQL client info: %s\n", mysql_get_client_info());
?>

O exemplo acima produzirá algo semelhante a:

MySQL client info: 3.23.39

Veja Também

  • mysql_get_host_info() - Obtém informações do servidor MySQL
  • mysql_get_proto_info() - Obtém informações do protocolo MySQL
  • mysql_get_server_info() - Obtém informações do servidor MySQL


Obtém informações do servidor MySQL

  • « mysql_get_client_info
  • mysql_get_proto_info »
  • PHP Manual
  • Funções da MySQL
  • Obtém informações do servidor MySQL

mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info — Obtém informações do servidor MySQL

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_get_host_info()
  • PDO::getAttribute() com attribute como PDO::ATTR_CONNECTION_STATUS

Descrição

mysql_get_host_info(resource $link_identifier = NULL): string|false

Descreve o tipo de conexão em uso para a conexão, incluindo o nome do servidor.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna uma string descrevendo o tipo da conexão MySQL em uso para a conexão ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo mysql_get_host_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
printf("MySQL host info: %s\n", mysql_get_host_info());
?>

O exemplo acima produzirá algo semelhante a:

MySQL host info: Localhost via UNIX socket

Veja Também

  • mysql_get_client_info() - Obtém informações do cliente MySQL
  • mysql_get_proto_info() - Obtém informações do protocolo MySQL
  • mysql_get_server_info() - Obtém informações do servidor MySQL


Obtém informações do protocolo MySQL

  • « mysql_get_host_info
  • mysql_get_server_info »
  • PHP Manual
  • Funções da MySQL
  • Obtém informações do protocolo MySQL

mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info — Obtém informações do protocolo MySQL

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_get_proto_info()

Descrição

mysql_get_proto_info(resource $link_identifier = NULL): int|false

Obtém o protocolo MySQL.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna o protocolo MySQL em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo mysql_get_proto_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
printf("MySQL protocol version: %s\n", mysql_get_proto_info());
?>

O exemplo acima produzirá algo semelhante a:

MySQL protocol version: 10

Veja Também

  • mysql_get_client_info() - Obtém informações do cliente MySQL
  • mysql_get_host_info() - Obtém informações do servidor MySQL
  • mysql_get_server_info() - Obtém informações do servidor MySQL


Obtém informações do servidor MySQL

  • « mysql_get_proto_info
  • mysql_info »
  • PHP Manual
  • Funções da MySQL
  • Obtém informações do servidor MySQL

mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info — Obtém informações do servidor MySQL

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_get_server_info()
  • PDO::getAttribute() com attribute como PDO::ATTR_SERVER_VERSION

Descrição

mysql_get_server_info(resource $link_identifier = NULL): string|false

Obtém a versão do servidor MySQL.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna a versão do servidor MySQL em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo mysql_get_server_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
printf("MySQL server version: %s\n", mysql_get_server_info());
?>

O exemplo acima produzirá algo semelhante a:

MySQL server version: 4.0.1-alpha

Veja Também

  • mysql_get_client_info() - Obtém informações do cliente MySQL
  • mysql_get_host_info() - Obtém informações do servidor MySQL
  • mysql_get_proto_info() - Obtém informações do protocolo MySQL
  • phpversion() - Gets the current PHP version


Obtém informação sobre a consulta mais recente

  • « mysql_get_server_info
  • mysql_insert_id »
  • PHP Manual
  • Funções da MySQL
  • Obtém informação sobre a consulta mais recente

mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info — Obtém informação sobre a consulta mais recente

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_info()

Descrição

mysql_info(resource $link_identifier = NULL): string

Retorna informação detalhada sobre a última consulta.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna informação sobre o comando em caso de sucesso, ou false em caso de falha. Confira o exemplo abaixo para ver quais comandos disponibilizam a informação e qual pode ser o valor retornado. Comandos que não estão listados irão retornar false.

Exemplos

Exemplo #1 Comandos MySQL relevantes

Comandos que retornam valores de string. Os números são apenas para proposito de ilustração; seus valores irão corresponder à consulta.

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

Notas

Nota:

mysql_info() retornará um valor diferente de false para comandos INSERT ... VALUES apenas se múltiplas listas de valores forem especificadas no comando.

Veja Também

  • mysql_affected_rows() - Obtém o número de linhas afetadas na operação anterior do MySQL
  • mysql_insert_id() - Obtém o ID gerado pela operação INSERT anterior
  • mysql_stat() - Get current system status


Obtém o ID gerado pela operação INSERT anterior

  • « mysql_info
  • mysql_list_dbs »
  • PHP Manual
  • Funções da MySQL
  • Obtém o ID gerado pela operação INSERT anterior

mysql_insert_id

(PHP 4, PHP 5)

mysql_insert_id — Obtém o ID gerado pela operação INSERT anterior

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_insert_id()
  • PDO::lastInsertId()

Descrição

mysql_insert_id(resource $link_identifier = NULL): int

Obtém o ID gerado para uma coluna AUTO_INCREMENT pela consulta anterior (normalmente INSERT).

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

O ID gerado para uma coluna AUTO_INCREMENT pela consulta anterior em caso de sucesso, 0 se a consulta anterior não gerou um valor AUTO_INCREMENT, ou false se não foi estabelecido conexão com o MySQL.

Exemplos

Exemplo #1 Exemplo mysql_insert_id()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>

Notas

Cuidado

mysql_insert_id() irá converter o tipo de retorno da API nativa em C do MySQL mysql_insert_id() para um tipo long (chamado int no PHP). Se a sua coluna AUTO_INCREMENT for uma coluna do tipo BIGINT (64 bits), a conversão pode resultar em um valor incorreto. Ao invés disto, use a função LAST_INSERT_ID() interna do MySQL em uma consulta SQL. Para mais informações sobre valores máximos de inteiros do PHP, visite a documentação integer.

Nota:

Devido mysql_insert_id() agir sobre a última consulta realizada, tenha certeza de chamar mysql_insert_id() imediatamente após a consulta que gerou o valor.

Nota:

O valor da função SQL do MySQL LAST_INSERT_ID() sempre contém o valor AUTO_INCREMENT mais recentemente gerado e não é reiniciado entre as consultas.

Veja Também

  • mysql_query() - Send a MySQL query
  • mysql_info() - Obtém informação sobre a consulta mais recente


Lista os bancos de dados disponíveis em um servidor MySQL

  • « mysql_insert_id
  • mysql_list_fields »
  • PHP Manual
  • Funções da MySQL
  • Lista os bancos de dados disponíveis em um servidor MySQL

mysql_list_dbs

(PHP 4, PHP 5)

mysql_list_dbs — Lista os bancos de dados disponíveis em um servidor MySQL

Aviso

Esta função tornou-se defasada a partir do PHP 5.4.0 e ela e a extensão MySQL original foram removidas a partir do PHP 7.0.0. Em vez disso, use as extensões MySQLi ou PDO_MySQL, que são desenvolvidas ativamente. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • SQL Query: SHOW DATABASES

Descrição

mysql_list_dbs(resource $link_identifier = NULL): resource

Retorna um ponteiro de resultado contendo os bancos de dados disponíveis atualmente no servidor MySQL.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna um ponteiro de resultado resource em caso de sucesso, ou false em caso de falha. Use a função mysql_tablename() para lidar com este ponteiro de resultado, ou qualquer função para tabelas com resultados, como mysql_fetch_array().

Exemplos

Exemplo #1 Exemplo mysql_list_dbs()

<?php
// Usage without mysql_list_dbs()
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$res = mysql_query("SHOW DATABASES");

while ($row = mysql_fetch_assoc($res)) {
echo $row['Database'] . "\n";
}

// Deprecated as of PHP 5.4.0
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
echo $row->Database . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

database1
database2
database3

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_listdbs()

Veja Também

  • mysql_db_name() - Obtém o nome do banco de dados a partir da chamada à mysql_list_dbs
  • mysql_select_db() - Select a MySQL database


Lista os campos de uma tabela MySQL

  • « mysql_list_dbs
  • mysql_list_processes »
  • PHP Manual
  • Funções da MySQL
  • Lista os campos de uma tabela MySQL

mysql_list_fields

(PHP 4, PHP 5)

mysql_list_fields — Lista os campos de uma tabela MySQL

Aviso

Esta função tornou-se defasada a partir do PHP 5.4.0 e ela e a extensão MySQL original foram removidas a partir do PHP 7.0.0. Em vez disso, use as extensões MySQLi ou PDO_MySQL, que são desenvolvidas ativamente. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • Consulta SQL: SHOW COLUMNS FROM sometable

Descrição

mysql_list_fields(string $database_name, string $table_name, resource $link_identifier = NULL): resource

Obtém informações sobre a tabela informada.

Esta função foi descontinuada. É preferrível usar mysql_query() para realizar uma consulta SQL SHOW COLUMNS FROM table [LIKE 'name'].

Parâmetros

database_name

O nome do banco de dados que está sendo consultado.

table_name

O nome da tabela que esta sendo consultada.

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Um ponteiro de recurso resource em caso de sucesso, ou false em caso de falha.

O ponteiro de resultado pode ser usado com mysql_field_flags(),
mysql_field_len(),
mysql_field_name() e
mysql_field_type().

Exemplos

Exemplo #1 Alternativa para a função descontinuada mysql_list_fields()

<?php
$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
print_r($row);
}
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [Field] => id
    [Type] => int(7)
    [Null] =>
    [Key] => PRI
    [Default] =>
    [Extra] => auto_increment
)
Array
(
    [Field] => email
    [Type] => varchar(100)
    [Null] =>
    [Key] =>
    [Default] =>
    [Extra] =>
)

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_listfields()

Veja Também

  • mysql_field_flags() - Get the flags associated with the specified field in a result
  • mysql_info() - Obtém informação sobre a consulta mais recente


Lista os processos MySQL

  • « mysql_list_fields
  • mysql_list_tables »
  • PHP Manual
  • Funções da MySQL
  • Lista os processos MySQL

mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes — Lista os processos MySQL

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_thread_id()

Descrição

mysql_list_processes(resource $link_identifier = NULL): resource|false

Obtém as threads atuais do servidor MySQL.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Um ponteiro de resultado resource em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo mysql_list_processes()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_assoc($result)){
printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
$row["Command"], $row["Time"]);
}
mysql_free_result($result);
?>

O exemplo acima produzirá algo semelhante a:

1 localhost test Processlist 0
4 localhost mysql sleep 5

Veja Também

  • mysql_thread_id() - Return the current thread ID
  • mysql_stat() - Get current system status


List tables in a MySQL database

  • « mysql_list_processes
  • mysql_num_fields »
  • PHP Manual
  • Funções da MySQL
  • List tables in a MySQL database

mysql_list_tables

(PHP 4, PHP 5)

mysql_list_tables — List tables in a MySQL database

Aviso

Esta função tornou-se defasada a partir do PHP 4.3.0 e ela e a extensão MySQL original foram removidas a partir do PHP 7.0.0. Em vez disso, use as extensões MySQLi ou PDO_MySQL, que são desenvolvidas ativamente. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • SQL Query: SHOW TABLES FROM dbname

Descrição

mysql_list_tables(string $database, resource $link_identifier = NULL): resource|false

Retrieves a list of table names from a MySQL database.

This function is deprecated. It is preferable to use mysql_query() to issue an SQL SHOW TABLES [FROM db_name] [LIKE 'pattern'] statement instead.

Parâmetros

database

The name of the database

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

A result pointer resource on success ou false em caso de falha.

Use the mysql_tablename() function to traverse this result pointer, or any function for result tables, such as mysql_fetch_array().

Registro de Alterações

Versão | Descrição
4.3.7 | This function became deprecated.

Exemplos

Exemplo #1 mysql_list_tables() alternative example

<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
echo 'Could not connect to mysql';
exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
echo "DB Error, could not list tables\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}

while ($row = mysql_fetch_row($result)) {
echo "Table: {$row[0]}\n";
}

mysql_free_result($result);
?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_listtables()

Veja Também

  • mysql_list_dbs() - Lista os bancos de dados disponíveis em um servidor MySQL
  • mysql_tablename() - Get table name of field


Obtém o numero de campos em um resultado

  • « mysql_list_tables
  • mysql_num_rows »
  • PHP Manual
  • Funções da MySQL
  • Obtém o numero de campos em um resultado

mysql_num_fields

(PHP 4, PHP 5)

mysql_num_fields — Obtém o numero de campos em um resultado

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_num_fields()
  • PDOStatement::columnCount()

Descrição

mysql_num_fields(resource $result): int|false

Obtém o numero de campos de uma consulta.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

Valor Retornado

Retorna o numero de capos em um conjunto de resultados resource em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo mysql_num_fields()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}

/* returns 2 because id,email === two fields */
echo mysql_num_fields($result);
?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_numfields()

Veja Também

  • mysql_select_db() - Select a MySQL database
  • mysql_query() - Send a MySQL query
  • mysql_fetch_field() - Get column information from a result and return as an object
  • mysql_num_rows() - Obtém o número de linhas em um resultado


Obtém o número de linhas em um resultado

  • « mysql_num_fields
  • mysql_pconnect »
  • PHP Manual
  • Funções da MySQL
  • Obtém o número de linhas em um resultado

mysql_num_rows

(PHP 4, PHP 5)

mysql_num_rows — Obtém o número de linhas em um resultado

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_num_rows()
  • mysqli_stmt_num_rows()
  • PDOStatement::rowCount()

Descrição

mysql_num_rows(resource $result): int|false

Obtém o numero de linhas de um conjunto de resultados. Este comando é valido apenas para comandos como SELECT ou SHOW que realmente retornam um conjunto de resultados. Para obter o numero de linhas afetadas por uma consulta INSERT, UPDATE, REPLACE ou DELETE, use mysql_affected_rows().

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

Valor Retornado

O numero de linhas em um conjunto de resultados em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo mysql_num_rows()

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>

Notas

Nota:

Se você usar mysql_unbuffered_query(), mysql_num_rows() não irá retornar o valor correto até que todas as linhas no conjunto de resultado tenham sido obtidas.

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_numrows()

Veja Também

  • mysql_affected_rows() - Obtém o número de linhas afetadas na operação anterior do MySQL
  • mysql_connect() - Open a connection to a MySQL Server
  • mysql_data_seek() - Move o ponteiro interno do resultado
  • mysql_select_db() - Select a MySQL database
  • mysql_query() - Send a MySQL query


Open a persistent connection to a MySQL server

  • « mysql_num_rows
  • mysql_ping »
  • PHP Manual
  • Funções da MySQL
  • Open a persistent connection to a MySQL server

mysql_pconnect

(PHP 4, PHP 5)

mysql_pconnect — Open a persistent connection to a MySQL server

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_connect() with p: host prefix
  • PDO::__construct() with PDO::ATTR_PERSISTENT as a driver option

Descrição

mysql_pconnect(
string $server = ini_get("mysql.default_host"),
string $username = ini_get("mysql.default_user"),
string $password = ini_get("mysql.default_password"),
int $client_flags = 0
): resource

Establishes a persistent connection to a MySQL server.

mysql_pconnect() acts very much like mysql_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 (mysql_close() will not close links established by mysql_pconnect()).

This type of link is therefore called 'persistent'.

Parâmetros

server

The MySQL server. It can also include a port number. e.g. "hostname:port" or a path to a local socket e.g. ":/path/to/socket" for the localhost.

If the PHP directive mysql.default_host is undefined (default), then the default value is 'localhost:3306'

username

The username. Default value is the name of the user that owns the server process.

password

The password. Default value is an empty password.

client_flags

The client_flags parameter can be a combination of the following constants: 128 (enable LOAD DATA LOCAL handling), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE.

Valor Retornado

Returns a MySQL persistent link identifier on success, or false on failure.

Notas

Nota:

Note, that these kind of links only work if you are using a module version of PHP. See the Persistent Database Connections section for more information.

Aviso

Using persistent connections can require a bit of tuning of your Apache and MySQL configurations to ensure that you do not exceed the number of connections allowed by MySQL.

Veja Também

  • mysql_connect() - Open a connection to a MySQL Server
  • Persistent Database Connections


Pinga uma conexão com o servidor ou reconecta se não houver conexão

  • « mysql_pconnect
  • mysql_query »
  • PHP Manual
  • Funções da MySQL
  • Pinga uma conexão com o servidor ou reconecta se não houver conexão

mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping — Pinga uma conexão com o servidor ou reconecta se não houver conexão

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_ping()

Descrição

mysql_ping(resource $link_identifier = NULL): bool

Confere se a conexão com o servidor está funcionando ou não. Se ela tiver caído, tenta realizar uma conexão automática. Esta função pode ser usada em scripts que permanecem inativos por um longo tempo, para verificar se o servidor fechou ou não a conexão e reconectar se necessário.

Nota:

A reconexão automática está desabilitada por padrão em versões do Mysql >= 5.0.3.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna true se a conexão com o servidor MySQL está funcionando, se não retorna false.

Exemplos

Exemplo #1 Exemplo mysql_ping()

<?php
set_time_limit(0);

$conn = mysql_connect('localhost', 'mysqluser', 'mypass');
$db = mysql_select_db('mydb');

/* Assuming this query will take a long time */
$result = mysql_query($sql);
if (!$result) {
echo 'Query #1 failed, exiting.';
exit;
}

/* Make sure the connection is still alive, if not, try to reconnect */
if (!mysql_ping($conn)) {
echo 'Lost connection, exiting after query #1';
exit;
}
mysql_free_result($result);

/* So the connection is still alive, let's run another query */
$result2 = mysql_query($sql2);
?>

Veja Também

  • mysql_thread_id() - Return the current thread ID
  • mysql_list_processes() - Lista os processos MySQL


Send a MySQL query

  • « mysql_ping
  • mysql_real_escape_string »
  • PHP Manual
  • Funções da MySQL
  • Send a MySQL query

mysql_query

(PHP 4, PHP 5)

mysql_query — Send a MySQL query

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_query()
  • PDO::query()

Descrição

mysql_query(string $query, resource $link_identifier = NULL): mixed

mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier.

Parâmetros

query

An SQL query

The query string should not end with a semicolon. Data inside the query should be properly escaped.

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or false on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns true on success or false on error.

The returned result resource should be passed to mysql_fetch_array(), and other functions for dealing with result tables, to access the returned data.

Use mysql_num_rows() to find out how many rows were returned for a SELECT statement or mysql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

mysql_query() will also fail and return false if the user does not have permission to access the table(s) referenced by the query.

Exemplos

Exemplo #1 Invalid Query

The following query is syntactically invalid, so mysql_query() fails and returns false.

<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Invalid query: ' . mysql_error());
}

?>

Exemplo #2 Valid Query

The following query is valid, so mysql_query() returns a resource.

<?php
// This could be supplied by a user, for example
$firstname = 'fred';
$lastname = 'fox';

// Formulate Query
// This is the best way to perform an SQL query
// For more examples, see mysql_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends
WHERE firstname='%s' AND lastname='%s'",
mysql_real_escape_string($firstname),
mysql_real_escape_string($lastname));

// Perform Query
$result = mysql_query($query);

// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if (!$result) {
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}

// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the mysql result functions must be used
// See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($row = mysql_fetch_assoc($result)) {
echo $row['firstname'];
echo $row['lastname'];
echo $row['address'];
echo $row['age'];
}

// Free the resources associated with the result set
// This is done automatically at the end of the script
mysql_free_result($result);
?>

Veja Também

  • mysql_connect() - Open a connection to a MySQL Server
  • mysql_error() - Retorna o texto da mensagem de erro da operação MySQL anterior
  • mysql_real_escape_string() - Escapes special characters in a string for use in an SQL statement
  • mysql_result() - Get result data
  • mysql_fetch_assoc() - Obtém uma linha do resultado como um array associativo
  • mysql_unbuffered_query() - Send an SQL query to MySQL without fetching and buffering the result rows


Escapes special characters in a string for use in an SQL statement

  • « mysql_query
  • mysql_result »
  • PHP Manual
  • Funções da MySQL
  • Escapes special characters in a string for use in an SQL statement

mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string — Escapes special characters in a string for use in an SQL statement

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_real_escape_string()
  • PDO::quote()

Descrição

mysql_real_escape_string(string $unescaped_string, resource $link_identifier = NULL): string

Escapes special characters in the unescaped_string, taking into account the current character set of the connection so that it is safe to place it in a mysql_query(). If binary data is to be inserted, this function must be used.

mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and \x1a.

This function must always (with few exceptions) be used to make data safe before sending a query to MySQL.

Cuidado

Security: the default character set

The character set must be set either at the server level, or with the API function mysql_set_charset() for it to affect mysql_real_escape_string(). See the concepts section on character sets for more information.

Parâmetros

unescaped_string

The string that is to be escaped.

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Returns the escaped string, or false on error.

Erros/Exceções

Executing this function without a MySQL connection present will also emit E_WARNING level PHP errors. Only execute this function with a valid MySQL connection present.

Exemplos

Exemplo #1 Simple mysql_real_escape_string() example

<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>

Exemplo #2 mysql_real_escape_string() requires a connection example

This example demonstrates what happens if a MySQL connection is not present when calling this function.

<?php
// We have not connected to MySQL

$lastname = "O'Reilly";
$_lastname = mysql_real_escape_string($lastname);

$query = "SELECT * FROM actors WHERE last_name = '$_lastname'";

var_dump($_lastname);
var_dump($query);
?>

O exemplo acima produzirá algo semelhante a:

Warning: mysql_real_escape_string(): No such file or directory in /this/test/script.php on line 5
Warning: mysql_real_escape_string(): A link to the server could not be established in /this/test/script.php on line 5

bool(false)
string(41) "SELECT * FROM actors WHERE last_name = ''"

Exemplo #3 An example SQL Injection Attack

<?php
// We didn't check $_POST['password'], it could be anything the user wanted! For example:
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// Query database to check if there are any matching users
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// This means the query sent to MySQL would be:
echo $query;
?>

The query sent to MySQL:

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

This would allow anyone to log in without a valid password.

Notas

Nota:

A MySQL connection is required before using mysql_real_escape_string() otherwise an error of level E_WARNING is generated, and false is returned. If link_identifier isn't defined, the last MySQL connection is used.

Nota:

If this function is not used to escape data, the query is vulnerable to SQL Injection Attacks.

Nota: mysql_real_escape_string() does not escape % and _. These are wildcards in MySQL if combined with LIKE, GRANT, or REVOKE.

Veja Também

  • mysql_set_charset() - Sets the client character set
  • mysql_client_encoding() - Returns the name of the character set


Get result data

  • « mysql_real_escape_string
  • mysql_select_db »
  • PHP Manual
  • Funções da MySQL
  • Get result data

mysql_result

(PHP 4, PHP 5)

mysql_result — Get result data

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_data_seek() in conjunction with
mysqli_field_seek() and
mysqli_fetch_field()
  • PDOStatement::fetchColumn()

Descrição

mysql_result(resource $result, int $row, mixed $field = 0): string

Retrieves the contents of one cell from a MySQL result set.

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 mysql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Parâmetros

result

O resource do resultado que está sendo avaliado. Este resultado vem de uma chamada a mysql_query().

row

The row number from the result that's being retrieved. Row numbers start at 0.

field

The name or offset of the field being retrieved.

It can be the field's offset, the field's name, or the field's table dot field name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name. If undefined, the first field is retrieved.

Valor Retornado

The contents of one cell from a MySQL result set on success, or false on failure.

Exemplos

Exemplo #1 mysql_result() example

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
if (!mysql_select_db('database_name')) {
die('Could not select database: ' . mysql_error());
}
$result = mysql_query('SELECT name FROM work.employee');
if (!$result) {
die('Could not query:' . mysql_error());
}
echo mysql_result($result, 2); // outputs third employee's name

mysql_close($link);
?>

Notas

Nota:

Calls to mysql_result() should not be mixed with calls to other functions that deal with the result set.

Veja Também

  • mysql_fetch_row() - Obtém uma linha como um array numérico
  • mysql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mysql_fetch_assoc() - Obtém uma linha do resultado como um array associativo
  • mysql_fetch_object() - Obtém o resultado de uma linha como um objeto


Select a MySQL database

  • « mysql_result
  • mysql_set_charset »
  • PHP Manual
  • Funções da MySQL
  • Select a MySQL database

mysql_select_db

(PHP 4, PHP 5)

mysql_select_db — Select a MySQL database

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_select_db()
  • PDO::__construct() (part of dsn)

Descrição

mysql_select_db(string $database_name, resource $link_identifier = NULL): bool

Sets the current active database on the server that's associated with the specified link identifier. Every subsequent call to mysql_query() will be made on the active database.

Parâmetros

database_name

The name of the database that is to be selected.

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 mysql_select_db() example

<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}
?>

Notas

Nota:

Para compatibilidade com versões anteriores, o seguinte apelido defasado pode ser usado: mysql_selectdb()

Veja Também

  • mysql_connect() - Open a connection to a MySQL Server
  • mysql_pconnect() - Open a persistent connection to a MySQL server
  • mysql_query() - Send a MySQL query


Sets the client character set

  • « mysql_select_db
  • mysql_stat »
  • PHP Manual
  • Funções da MySQL
  • Sets the client character set

mysql_set_charset

(PHP 5 >= 5.2.3)

mysql_set_charset — Sets the client character set

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_set_charset()
  • PDO: Add charset to the connection string, such as charset=utf8

Descrição

mysql_set_charset(string $charset, resource $link_identifier = NULL): bool

Sets the default character set for the current connection.

Parâmetros

charset

A valid character set name.

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Nota:

This function requires MySQL 5.0.7 or later.

Nota:

This is the preferred way to change the charset. Using mysql_query() to set it (such as SET NAMES utf8) is not recommended. See the MySQL character set concepts section for more information.

Veja Também

  • Setting character sets in MySQL
  • » List of character sets that MySQL supports
  • mysql_client_encoding() - Returns the name of the character set


Get current system status

  • « mysql_set_charset
  • mysql_tablename »
  • PHP Manual
  • Funções da MySQL
  • Get current system status

mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat — Get current system status

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_stat()
  • PDO::getAttribute() with attribute as PDO::ATTR_SERVER_INFO

Descrição

mysql_stat(resource $link_identifier = NULL): string

mysql_stat() returns the current server status.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

Returns a string with the status for uptime, threads, queries, open tables, flush tables and queries per second. For a complete list of other status variables, you have to use the SHOW STATUS SQL command. If link_identifier is invalid, null is returned.

Exemplos

Exemplo #1 mysql_stat() example

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$status = explode(' ', mysql_stat($link));
print_r($status);
?>

O exemplo acima produzirá algo semelhante a:

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
)

Exemplo #2 Alternative mysql_stat() example

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query('SHOW STATUS', $link);
while ($row = mysql_fetch_assoc($result)) {
echo $row['Variable_name'] . ' = ' . $row['Value'] . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

back_log = 50
basedir = /usr/local/
bdb_cache_size = 8388600
bdb_log_buffer_size = 32768
bdb_home = /var/db/mysql/
bdb_max_lock = 10000
bdb_logdir =
bdb_shared_data = OFF
bdb_tmpdir = /var/tmp/
...

Veja Também

  • mysql_get_server_info() - Obtém informações do servidor MySQL
  • mysql_list_processes() - Lista os processos MySQL


Get table name of field

  • « mysql_stat
  • mysql_thread_id »
  • PHP Manual
  • Funções da MySQL
  • Get table name of field

mysql_tablename

(PHP 4, PHP 5)

mysql_tablename — Get table name of field

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • SQL Query: SHOW TABLES

Descrição

mysql_tablename(resource $result, int $i): string|false

Retrieves the table name from a result.

This function is deprecated. It is preferable to use mysql_query() to issue an SQL SHOW TABLES [FROM db_name] [LIKE 'pattern'] statement instead.

Parâmetros

result

A result pointer resource that's returned from mysql_list_tables().

i

The integer index (row/table number)

Valor Retornado

The name of the table on success ou false em caso de falha.

Use the mysql_tablename() function to traverse this result pointer, or any function for result tables, such as mysql_fetch_array().

Exemplos

Exemplo #1 mysql_tablename() example

<?php
mysql_connect("localhost", "mysql_user", "mysql_password");
$result = mysql_list_tables("mydb");
$num_rows = mysql_num_rows($result);
for ($i = 0; $i < $num_rows; $i++) {
echo "Table: ", mysql_tablename($result, $i), "\n";
}

mysql_free_result($result);
?>

Notas

Nota:

The mysql_num_rows() function may be used to determine the number of tables in the result pointer.

Veja Também

  • mysql_list_tables() - List tables in a MySQL database
  • mysql_field_table() - Obtém o nome da tabela na qual o campo especificado esta
  • mysql_db_name() - Obtém o nome do banco de dados a partir da chamada à mysql_list_dbs


Return the current thread ID

  • « mysql_tablename
  • mysql_unbuffered_query »
  • PHP Manual
  • Funções da MySQL
  • Return the current thread ID

mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id — Return the current thread ID

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • mysqli_thread_id()

Descrição

mysql_thread_id(resource $link_identifier = NULL): int|false

Retrieves the current thread ID. If the connection is lost, and a reconnect with mysql_ping() is executed, the thread ID will change. This means only retrieve the thread ID when needed.

Parâmetros

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

The thread ID on success ou false em caso de falha.

Exemplos

Exemplo #1 mysql_thread_id() example

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$thread_id = mysql_thread_id($link);
if ($thread_id){
printf("current thread id is %d\n", $thread_id);
}
?>

O exemplo acima produzirá algo semelhante a:

current thread id is 73

Veja Também

  • mysql_ping() - Pinga uma conexão com o servidor ou reconecta se não houver conexão
  • mysql_list_processes() - Lista os processos MySQL


Send an SQL query to MySQL without fetching and buffering the result rows

  • « mysql_thread_id
  • Mysqlnd »
  • PHP Manual
  • Funções da MySQL
  • Send an SQL query to MySQL without fetching and buffering the result rows

mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query — Send an SQL query to MySQL without fetching and buffering the result rows

Aviso

Esta extensão tornou-se defasada a partir do PHP 5.5.0 e foi removida no PHP 7.0.0. Em vez disso, as extensões MySQLi ou PDO_MySQL devem ser usadas. Veja também o guia MySQL: escolhendo uma API. Alternativas a esta função incluem:

  • See: Buffered and Unbuffered queries

Descrição

mysql_unbuffered_query(string $query, resource $link_identifier = NULL): resource

mysql_unbuffered_query() sends the SQL query query to MySQL without automatically fetching and buffering the result rows as mysql_query() does. This saves a considerable amount of memory with SQL queries that produce large result sets, and you can start working on the result set immediately after the first row has been retrieved as you don't have to wait until the complete SQL query has been performed. To use mysql_unbuffered_query() while multiple database connections are open, you must specify the optional parameter link_identifier to identify which connection you want to use.

Parâmetros

query

The SQL query to execute.

Data inside the query should be properly escaped.

link_identifier

A conexão MySQL. Se o identificador da conexão não for especificado, a última conexão aberta por mysql_connect() será usada. Se não houver uma conexão anterior, haverá uma tentativa de criar uma como se mysql_connect() tivesse sido chamada sem argumentos. Se nenhuma conexão for encontrada ou estabelecida, um erro de nível E_WARNING será gerado.

Valor Retornado

For SELECT, SHOW, DESCRIBE or EXPLAIN statements, mysql_unbuffered_query() returns a resource on success, or false on error.

For other type of SQL statements, UPDATE, DELETE, DROP, etc, mysql_unbuffered_query() returns true on success or false on error.

Notas

Nota:

The benefits of mysql_unbuffered_query() come at a cost: you cannot use mysql_num_rows() and mysql_data_seek() on a result set returned from mysql_unbuffered_query(), until all rows are fetched. You also have to fetch all result rows from an unbuffered SQL query before you can send a new SQL query to MySQL, using the same link_identifier.

Veja Também

  • mysql_query() - Send a MySQL query


Driver Nativo MySQL

  • Introdução
  • Visão Geral
  • Instalação
  • Configurações em Execução
  • Incompatibilidades
  • Conexões Persistentes
  • Estatísticas
  • Notas
  • Gerenciamento de Memória
  • API do plugin do Driver Nativo MySQL
    • Uma comparação de plugins mysqlnd com Proxy MySQL
    • Obtendo a API do plugin mysqlnd
    • Arquitetura do Plugin do Driver Nativo MySQL
    • A API do plugin mysqlnd
    • Começando a construir um plugin mysqlnd


Introdução

O Driver Nativo MySQL é um substituto para a biblioteca cliente MySQL (libmysqlclient). Driver Nativo MySQL faz parte das fontes oficiais do PHP a partir do PHP 5.3.0.

As extensões de banco de dados MySQL, mysqli e PDO MYSQL se comunicam com o servidor MySQL. No passado, isso era feito pela extensão usando os serviços fornecidos pela Biblioteca Cliente MySQL. As extensões foram compiladas na Biblioteca Cliente MySQL para usar seu protocolo cliente-servidor.

Com o Driver Nativo MySQL agora existe uma alternativa, pois as extensões do banco de dados MySQL podem ser compiladas para usar o Driver Nativo MySQL em vez da Biblioteca Cliente MySQL.

O Driver Nativo MySQL é escrito em C como uma extensão do PHP.


Visão Geral

O que o mysqlnd não é

Embora o Driver Nativo MySQL seja escrito como uma extensão PHP, é importante observar que ele não fornece uma nova API para o programador PHP. As APIs do programador para conectividade de banco de dados MySQL são fornecidas pela extensão MySQL, mysqli e PDO MYSQL. Essas extensões agora podem usar os serviços do Driver Nativo MySQL para se comunicar com o servidor MySQL. Portanto, não se deve pensar no Driver Nativo MySQL como uma API.

Por que usá-lo?

A utilização do Driver Nativo MySQL oferece uma série de vantagens em relação à utilização da Biblioteca Cliente MySQL.

A antiga biblioteca cliente MySQL foi escrita pela MySQL AB (agora Oracle Corporation) e, portanto, foi lançada sob a licença MySQL. Isso acabou fazendo com que o suporte ao MySQL fosse desativado por padrão no PHP. Porém, o Driver Nativo MySQL foi desenvolvido como parte do projeto PHP, sendo portanto liberado sob a licença PHP. Isso elimina problemas de licenciamento que foram problemáticos no passado.

Além disso, no passado, era necessário construir as extensões de banco de dados MySQL com uma cópia da biblioteca cliente MySQL. Isso normalmente significava que era necessário ter o MySQL instalado em uma máquina onde o código-fonte PHP estivesse sendo compilado. Além disso, quando o aplicativo PHP estava em execução, as extensões do banco de dados MySQL chamavam o arquivo da biblioteca do cliente MySQL em tempo de execução, portanto, o arquivo precisava estar instalado no sistema. Com o Driver Nativo MySQL isso não acontece mais, pois está incluído como parte da distribuição padrão. Portanto, não é mais necessário o MySQL instalado para construir o PHP ou executar aplicações de banco de dados PHP.

Como o Driver Nativo MySQL é escrito como uma extensão do PHP, ele está fortemente acoplado ao funcionamento do PHP. Isso leva a ganhos de eficiência, principalmente no que diz respeito ao uso de memória, já que o driver utiliza o sistema de gerenciamento de memória PHP. Ele também suporta o limite de memória do PHP. Usar o Driver Nativo MySQL leva a um desempenho comparável ou melhor do que usar a Biblioteca Cliente MySQL, garantindo sempre o uso mais eficiente da memória. Um exemplo de eficiência de memória é o fato de que ao utilizar a Biblioteca Cliente MySQL, cada linha é armazenada na memória duas vezes, enquanto no Driver Nativo MySQL cada linha é armazenada apenas uma vez na memória.

Nota: Reportando o uso da memória

Como o Driver Nativo MySQL utiliza o sistema de gerenciamento de memória PHP, seu uso de memória pode ser rastreado com memory_get_usage(). Isso não é possível com a libmysqlclient porque ela usa a função C malloc().

Special features

O Driver Nativo MySQL também fornece alguns recursos especiais não disponíveis quando as extensões de banco de dados MySQL utilizam a Biblioteca Cliente MySQL. Esses recursos especiais estão listados abaixo:

  • Conexões persistentes melhoradas

  • A função especial mysqli_fetch_all()

  • Chamadas para estatísticas de desempenho: mysqli_get_client_stats(), mysqli_get_connection_stats()

O recurso de estatísticas de desempenho pode ser muito útil na identificação de gargalos de desempenho.

O Driver Nativo MySQL também permite conexões persistentes quando utilizado com a extensão mysqli.

Suporte a SSL

Driver Nativo MySQL suporta SSL.

Suporte a Protocolo com Compressão

Driver Nativo MySQL suporta o protocolo cliente-servidor com compressão. A extensão ext/mysqli, se configurada para usar Driver Nativo MySQL, também pode tomar vantagem deste recurso. Observe que PDO_MYSQL NÃO suporta compressão quando usada junto com mysqlnd.

Suporte a Tubos Nomeados

Tubos nomeados podem ser usado para conexão em ambientes Windows.


Instalação

Instalação em Unix

Para usar o Driver Nativo MySQL, o PHP precisa ser construído especificando que as extensões do banco de dados MySQL são compiladas com suporte ao MySQL Native Driver. Isso é feito através de opções de configuração antes de compilar o código-fonte do PHP.

Por exemplo, para construir a extensão MySQL, mysqli e PDO MYSQL utilizando o Driver Nativo MySQL, seria dado o seguinte comando:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
[other options]

Instalação no Windows

Nas distribuições oficiais do PHP para Windows, o Driver Nativo MySQL está habilitado por padrão, portanto, nenhuma configuração adicional é necessária para usá-lo. Todas as extensões de banco de dados MySQL usarão o Driver Nativo MySQL neste caso.

Suporte ao plug-in de autenticação SHA-256

O Driver Nativo MySQL requer que a funcionalidade OpenSSL do PHP esteja carregada e habilitada para conexão ao MySQL através de contas que utilizam o Plugin de Autenticação MySQL SHA-256. Por exemplo, o PHP pode ser configurado usando:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl
[other options]


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração do Driver Nativo MySQL
Nome | Padrão | Modificável | Registro de Alterações
mysqlnd.collect_statistics | "1" | INI_SYSTEM |
mysqlnd.collect_memory_statistics | "0" | INI_SYSTEM |
mysqlnd.debug | "" | INI_SYSTEM |
mysqlnd.log_mask | 0 | INI_ALL |
mysqlnd.mempool_default_size | 16000 | INI_ALL |
mysqlnd.net_read_timeout | "86400" | INI_ALL | Antes do PHP 7.2.0 o padrão era "31536000" e a mutabilidade era INI_SYSTEM
mysqlnd.net_cmd_buffer_size | "4096" | INI_SYSTEM |
mysqlnd.net_read_buffer_size | "32768" | INI_SYSTEM |
mysqlnd.sha256_server_public_key | "" | INI_PERDIR |
mysqlnd.trace_alloc | "" | INI_SYSTEM |
mysqlnd.fetch_data_copy | 0 | INI_ALL | Removida a partir do PHP 8.1.0
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

mysqlnd.collect_statistics bool

Permite a coleta de várias estatísticas de clientes que podem ser acessadas através de mysqli_get_client_stats() e mysqli_get_connection_stats() e também são mostradas na seção mysqlnd da saída da função phpinfo().

Esta configuração ativa todas as estatísticas do Driver Nativo MySQL exceto aquelas relacionadas ao gerenciamento de memória.

mysqlnd.collect_memory_statistics bool

Permite a coleta de várias estatísticas de clientes que podem ser acessadas através de mysqli_get_client_stats() e mysqli_get_connection_stats() e também são mostradas na seção mysqlnd da saída da função phpinfo().

Esta definição de configuração ativa as estatísticas de gerenciamento de memória dentro do conjunto geral de estatísticas do Driver Nativo MySQL.

mysqlnd.debug string

Grava a comunicação de todas as extenões que usam mysqlnd para o arquivo de registro especificado.

O formato da diretiva é mysqlnd.debug = "opção1[,parâmetro_opção1][:opção2[,parâmetro_opção2]]".

As opções para a string de formato são as seguintes:

  • A[,arquivo] - Acrescenta saída de rastreamento ao arquivo especificado. Também garante que os dados sejam gravados após cada gravação. Isso é feito fechando e reabrindo o arquivo de rastreamento (isso é lento). Isso ajuda a garantir um arquivo de registro completo caso o aplicativo falhe.

  • a[,arquivo] - Acrescenta saída de rastreamento ao arquivo especificado.

  • d - Ativa a saída de macros DBUG_<N> para o estado atual. Pode ser seguido por uma lista de palavras-chave que seleciona a saída apenas para as macros DBUG com essa palavra-chave. Uma lista vazia de palavras-chave implica em saída para todas as macros.

  • f[,funções] - Limita as ações do depurador à lista de funções especificada. Uma lista vazia de funções implica em que todas as funções são selecionadas.

  • F - Marca cada linha de saída do depurador com o nome do arquivo de origem que contém a macro que causa a saída.

  • i - Marca cada linha de saída do depurador com o PID do processo atual.

  • L - Marca cada linha de saída do depurador com o nome do número da linha do arquivo de origem da macro que causa a saída.

  • n - Marca cada linha de saída do depurador com a profundidade de aninhamento da função atual.

  • o[,arquivo] - Similar a a[,arquivo] mas sobrescreve o arquivo antigo, e não anexa.

  • O[,arquivo] - Similar a A[,arquivo] mas sobrescreve o arquivo antigo, e não anexa.

  • t[,N] - Ativa o rastreamento de fluxo de controle de função. A profundidade máxima de aninhamento é especificada por N e o padrão é 200.

  • x - Este opção ativa a criação de perfil de código.

  • m - Rastreia chamadas relacionadas à alocação e desalocação de memória.

Example:

d:t:x:O,/tmp/mysqlnd.trace

Nota:

Este recurso está disponível apenas com uma compilação de depuração do PHP. Funciona no Microsoft Windows se estiver usando uma compilação de depuração de PHP e o PHP foi construído usando o Microsoft Visual C versão 9 ou superior.

mysqlnd.log_mask int

Define quais consultas serão registradas. O padrão é 0, que desativa o registro. Defina usando um número inteiro e não com constantes PHP. Por exemplo, um valor de 48 (16 + 32) registrará consultas lentas que usam 'nenhum índice bom' (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) ou nenhum índice (SERVER_QUERY_NO_INDEX_USED = 32). Um valor de 2.043 (1 + 2 + 8 + ... + 1.024) registrará todos os tipos de consulta lenta.

Os tipos são os seguintes: SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2,
SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32,
SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256,
SERVER_STATUS_NO_BACKSLASH_ESCAPES=512 e SERVER_QUERY_WAS_SLOW=1024.

mysqlnd.mempool_default_size int

Tamanho padrão do pool de memória mysqlnd, que é usado pelos conjuntos de resultados.

mysqlnd.net_read_timeout int

mysqlnd e a Biblioteca Cliente MySQL, libmysqlclient usam APIs de rede diferentes. mysqlnd usa fluxos PHP, enquanto libmysqlclient usa seus próprio encapsulador em torno das chamadas de rede de nível operacional. O PHP, por padrão, define um tempo limite de leitura de 60s para fluxos. Isso é definido via php.ini, default_socket_timeout. Esse padrão se aplica a todos os fluxos que não definem nenhum outro valor de tempo limite. mysqlnd não define nenhum outro valor e, portanto, conexões de consultas de longa execução podem ser desconectadas após default_socket_timeout segundos, resultando em uma mensagem de erro 2006 - MySQL Server has gone away. A biblioteca cliente MySQL define um tempo limite padrão de 24 * 3600 segundos (1 dia) e espera que outros tempos limite ocorram, como tempos limites de TCP/IP. mysqlnd agora usa o mesmo tempo limite muito longo. O valor é configurável através de uma nova configuração php.ini: mysqlnd.net_read_timeout. mysqlnd.net_read_timeout é usado por qualquer extensão (ext/mysql, ext/mysqli, PDO_MySQL) que usa mysqlnd. mysqlnd diz aos fluxos PHP para usar mysqlnd.net_read_timeout. Favor observar que pode haver diferenças sutis entre MYSQL_OPT_READ_TIMEOUT da Biblioteca Cliente MySQL e fluxos PHP, por exemplo MYSQL_OPT_READ_TIMEOUT está documentado para funcionar apenas para conexões TCP/IP e, antes do MySQL 5.1.2, apenas para Windows. Os fluxos PHP podem não ter essa limitação. Por favor, verifique a documentação dos streams, em caso de dúvida.

mysqlnd.net_cmd_buffer_size int

mysqlnd aloca um buffer interno de comando/rede de mysqlnd.net_cmd_buffer_size (no php.ini) bytes para cada conexão. Se um comando do protocolo MySQL cliente-servidor, por exemplo, COM_QUERY (consulta normal), não couber no buffer, mysqlnd aumentará o buffer ao tamanho necessário para enviar o comando. Sempre que o buffer for estendido para uma conexão, command_buffer_too_small será incrementado em um.

Se mysqlnd tiver que aumentar o buffer além do tamanho inicial de mysqlnd.net_cmd_buffer_size bytes para quase todas as conexões, você deve considerar aumentar o tamanho padrão para evitar realocações.

O tamanho do buffer padrão é 4.096 bytes, que é o menor valor possível.

O valor também pode ser definido usando mysqli_options(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).

mysqlnd.net_read_buffer_size int

Tamanho máximo do bloco de leitura em bytes ao ler o corpo de um pacote de comando MySQL. O protocolo cliente-servidor MySQL encapsula todos os seus comandos em pacotes. Os pacotes consistem em um pequeno cabeçalho e um corpo com a carga útil real. O tamanho do corpo está codificado no cabeçalho. mysqlnd lê o corpo em pedaços de MIN(header.size, mysqlnd.net_read_buffer_size) bytes. Se o corpo de um pacote for maior que mysqlnd.net_read_buffer_size bytes, mysqlnd terá que chamar read() múltiplas vezes.

O valor também pode ser definido usando mysqli_options(link, MYSQLI_OPT_NET_READ_BUFFER_SIZE, size).

mysqlnd.sha256_server_public_key string

Relacionado ao plug-in de autenticação SHA-256. Arquivo com a chave RSA pública do servidor MySQL.

Os clientes podem omitir a configuração de uma chave RSA pública, especificar a chave através desta configuração do PHP ou definir a chave em tempo de execução usando mysqli_options(). Se nenhum arquivo de chave RSA pública for fornecido pelo cliente, a chave será trocada como parte do procedimento de autenticação padrão do plug-in de autenticação SHA-256.

mysqlnd.trace_alloc string

mysqlnd.fetch_data_copy int

Impõe cópia de conjuntos de resultados dos buffers internos do conjunto de resultados em variáveis ??PHP em vez de usar a referência padrão e a lógica de cópia na gravação. Por favor, veja as notas de implementação de gerenciamento de memória para mais detalhes.

Copiar conjuntos de resultados em vez de fazer referência a variáveis ??PHP permite liberar a memória ocupada pelas variáveis ??PHP anteriormente. Dependendo do código da API do usuário, das consultas reais do banco de dados e do tamanho de seus conjuntos de resultados, isso pode reduzir o consumo de memória do mysqlnd.

Não defina se estiver usando PDO_MySQL. PDO_MySQL ainda não foi atualizado para suportar o novo modo de busca.

Nota: Removido a partir do PHP 8.1.0


Incompatibilidades

O Driver Nativo MySQL é na maioria dos casos compatível com a Biblioteca Cliente MySQL (libmysql). Esta seção documenta incompatibilidades entre estas bibliotecas.

  • Valores do tipo de dados bit são retornados como strings binárias (por exemplo, "\0" ou "\x1F") com libmysql e como strings decimais (por exemplo, "0" ou "31 ") com mysqlnd. Se for desejado que o código seja compatível com ambas as bibliotecas, então os campos de bits devem ser sempre retornados como números do MySQL com uma consulta como esta: SELECT bit + 0 FROM table.


Conexões Persistentes

Usando Conexões Persistentes

Se mysqli for usada com mysqlnd, quando uma conexão persistente for criada ela gera uma chamada COM_CHANGE_USER (mysql_change_user()) no servidor. Isto assegura que a re-autenticação da conexão aconteça.

Como existe uma certa sobrecarga com a chamada COM_CHANGE_USER, é possível desligar isto em tempo de compilação. O reúso de uma conexão persistente irá gerar uma chamada COM_PING (mysql_ping) para simplesmente testar se a conexão é reutilizável.

A geração de COM_CHANGE_USER pode ser desligada com a opção de compilação MYSQLI_NO_CHANGE_USER_ON_PCONNECT. Por exemplo:

shell# CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" ./configure --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-debug && make clean && make -j6

Ou alternativamente:

shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT"
shell# configure --whatever-option
shell# make clean
shell# make

Observe que somente mysqli sobre mysqlnd usa COM_CHANGE_USER. Outras compinações de extensão-driver usam COM_PING no uso inicial de uma conexão persistente.


Estatísticas

Usando Dados Estatísticos

O Driver Nativo MySQL contém suporte para coleta de estatísticas sobre a comunicação entre o cliente e o servidor. As estatísticas recolhidas são de dois tipos principais:

  • Estatísticas de cliente

  • Estatísticas de conexão

Se extensão mysqli estiver sendo utilizada, essas estatísticas poderão ser obtidas através de duas chamadas de API:

  • mysqli_get_client_stats()

  • mysqli_get_connection_stats()

Nota:

As estatísticas são agregadas entre todas as extensões que utilizam o Driver Nativo MySQL. Por exemplo, ao compilar ext/mysql e ext/mysqli no Driver Nativo MySQL, ambas as chamadas de função de ext/mysql e ext/mysqli mudará as estatísticas. Não há como saber o quanto uma determinada chamada de API de qualquer extensão que tenha sido compilada contra o Driver Nativo MySQL tenha impactado uma determinada estatística. Pode-se configurar o Driver MySQL PDO, ext/mysql e ext/mysqli para opcionalmente utilizar o Driver Nativo MySQL. Ao fazer isso, todas as três extensões alterarão as estatísticas.

Acessando Estatísticas de Cliente

Para acessar as estatísticas do cliente, é necessário chamar mysqli_get_client_stats(). A chamada de função não requer nenhum parâmetro.

A função retorna uma matriz associativa que contém o nome da estatística como chave e os dados estatísticos como valor.

As estatísticas do cliente também podem ser acessadas chamando a função phpinfo().

Acessando Estatísticas de Conexão

Para acessar as estatísticas de conexão, é necessário chamar mysqli_get_connection_stats(). Isso usa o identificador de conexão do banco de dados como parâmetro.

A função retorna uma matriz associativa que contém o nome da estatística como chave e os dados estatísticos como valor.

Conjunto de Resultados com e sem Buffer

Os conjuntos de resultados podem ser armazenados em buffer ou sem buffer. Usando configurações padrão, ext/mysql e ext/mysqli funcionam com conjuntos de resultados armazenados em buffer para consultas normais (instruções não preparadas). Os conjuntos de resultados armazenados em buffer são armazenados em cache no cliente. Após a execução da consulta todos os resultados são buscados no servidor MySQL e armazenados em cache no cliente. A grande vantagem dos conjuntos de resultados em buffer é que eles permitem que o servidor libere todos os recursos alocados para um conjunto de resultados, uma vez que os resultados tenham sido buscados pelo cliente.

Por outro lado, os conjuntos de resultados sem buffer são mantidos por muito mais tempo no servidor. Se for desejado reduzir o consumo de memória no cliente, mas aumentando a carga no servidor, use resultados sem buffer. Se for observada uma carga alta no servidor e os números dos conjuntos de resultados sem buffer forem altos, considere mover a carga para os clientes. Os clientes normalmente escalam melhor que os servidores. Carga não se refere apenas a buffers de memória - o servidor também precisa manter outros recursos abertos, por exemplo, identificadores de arquivos e threads, antes que um conjunto de resultados possa ser liberado.

As instruções preparadas usam conjuntos de resultados sem buffer por padrão. Entretanto, pode-se usar mysqli_stmt_store_result() para habilitar conjuntos de resultados em buffer.

Estetísticas Retornadas pelo Driver Nativo MySQL

A tabela a seguir mostra uma lista de estatísticas retornadas pelas funções mysqli_get_client_stats() e mysqli_get_connection_stats().

Estatísticas mysqlnd retornadas: Rede
Estatística | Escopo | Descrição | Notas
bytes_sent | Conexão | Número de bytes enviados pelo PHP para o servidor MySQL | Pode ser usada para verificar a eficiência do protocolo de compressão
bytes_received | Conexão | Número de bytes recebidos do servidor MySQL | Pode ser usada para verificar a eficiência do protocolo de compressão
packets_sent | Conexão | Número de pacotes do protocolo Cliente-Servidor do MySQL enviados | Usada para depurar a implementação do protocolo Cliente-Servidor
packets_received | Conexão | Número de pacotes do protocolo Cliente-Servidor do MySQL recebidos | Usada para depurar a implementação do protocolo Cliente-Servidor
protocol_overhead_in | Conexão | Sobrecarga do protocolo Cliente-Servidor do MySQL em bytes para tráfego de entrada. Atualmente apenas o Cabeçalho do Pacote (4 bytes) é considerado sobrecarga. protocol_overhead_in = pacotes_recebidos * 4 | Usada para depurar a implementação do protocolo Cliente-Servidor
protocol_overhead_out | Conexão | Sobrecarga do protocolo Cliente-Servidor do MySQL em bytes para tráfego de saída. Atualmente apenas o Cabeçalho do Pacote (4 bytes) é considerado sobrecarga. protocol_overhead_out = pacotes_enviados * 4 | Usada para depurar a implementação do protocolo Cliente-Servidor
bytes_received_ok_packet | Conexão | Tamanho total de bytes de pacotes OK do protocolo Cliente-Servidor do MySQL recebidos. Pacotes OK podem conter uma mensagem de status. O comprimento da mensagem de status pode variar e, portanto, o tamanho de um pacote OK não é fixo. | Usado para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
packets_received_ok | Conexão | Número de pacotes OK recebidos pelo protocolo Cliente-Servidor do MySQL. | Usado para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
bytes_received_eof_packet | Conexão | Tamanho total em bytes dos pacotes EOF do protocolo Cliente-Servidor do MySQL recebidos. O EOF pode variar em tamanho dependendo da versão do servidor. Além disso, o EOF pode transportar uma mensagem de erro. | Usado para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
packets_received_eof | Conexão | Número de pacotes EOF do protocolo Cliente-Servidor do MySQL. Tal como acontece com outras estatísticas de pacotes, o número de pacotes aumentará mesmo se o PHP não receber o pacote esperado, mas, por exemplo, uma mensagem de erro. | Usado para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
bytes_received_rset_header_packet | Conexão | Tamanho total em bytes dos pacotes de cabeçalho do conjunto de resultados do protocolo Cliente-Servidor do MySQL. O tamanho dos pacotes varia dependendo da carga (LOAD LOCAL INFILE, INSERT, UPDATE, SELECT, mensagem de erro). | Usado para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
packets_received_rset_header | Conexão | Número de pacotes de cabeçalho do conjunto de resultados do protocolo Cliente-Servidor do MySQL. | Usado para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
bytes_received_rset_field_meta_packet | Conexão | Tamanho total em bytes dos pacotes (informação de campo) dos metadados do conjunto de resultados do protocolo Cliente-Servidor do MySQL. Obviamente o tamanho varia com os campos do conjunto de resultados. O pacote também pode transportar um erro ou um pacote de EOF no caso de COM_LIST_FIELDS. | Útil somente para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
packets_received_rset_field_meta | Conexão | Número de pacotes (informação de campo) dos metadados do conjunto de resultados do protocolo Cliente-Servidor do MySQL. | Útil somente para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
bytes_received_rset_row_packet | Conexão | Tamanho total em bytes dos pacotes de dados do conjunto de resultados do protocolo Cliente-Servidor do MySQL. O pacote também pode transportar um erro ou um pacote de EOF. Pode-se fazer engenharia reversa do número de erros e pacotes EOF subtraindo rows_fetched_from_server_normal e rows_fetched_from_server_ps de bytes_received_rset_row_packet. | Útil somente para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
packets_received_rset_row | Conexão | Número de pacotes de dados do conjunto de resultados do protocolo Cliente-Servidor do MySQL e seu tamanho total em bytes. | Útil somente para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
bytes_received_prepare_response_packet | Conexão | Tamanho total em bytes dos pacotes OK para Inicialização de Instruções Preparadas do protocolo Cliente-Servidor do MySQL. O pacote também pode transportar um erro. O tamanho do pacote depende da versão MySQL: 9 bytes com MySQL 4.1 e 12 bytes a partir do MySQL 5.0. Não existe maneira segura de saber quantos erros aconteceram. Pode ser possível inferir que um erro ocorreu se, por exemplo, sempre se conectar ao MySQL 5.0 ou superior e bytes_received_prepare_response_packet != packets_received_prepare_response * 12. Consulte também ps_prepared_never_executed e ps_prepared_once_executed. | Útil somente para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
packets_received_prepare_response | Conexão | Número de pacotes OK para Inicialização de Instruções Preparadas do protocolo Cliente-Servidor do MySQL. | Útil somente para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
bytes_received_change_user_packet | Conexão | Tamanho total em bytes dos pacotes COM_CHANGE_USER do protocolo Cliente-Servidor do MySQL. O pacote pode também transportar um erro ou um EOF. | Útil somente para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
packets_received_change_user | Conexão | Number de pacotes COM_CHANGE_USER do protocolo Cliente-Servidor do MySQL | Útil somente para depurar a implementação do protocolo CS. Observe que o tamanho total em bytes inclui o tamanho do pacote de cabeçalho (4 bytes, consulte sobrecarga de protocolo).
packets_sent_command | Conexão | Número de comandos enviados do PHP para o MySQL no protocolo Cliente-Servidor do MySQL. Não há como saber que comandos específicos ou quantos deles foram enviados. No melhor caso pode-se usar esta estatística para verificar se o PHP enviou algum comando para o MySQL, para saber se pode-se considerar desabilitar o suporte ao MySQL no binário PHP. Também não há como fazer engenharia reversa do número de erros que podem ter ocorrido durante envio de dados para o MySQL. O único erro registrado é command_buffer_too_small (veja abaixo). | Útil somente para depurar a implementação do protocolo CS.
bytes_received_real_data_normal Conexão Número de bytes da carga buscada pelo cliente PHP a partir do mysqlnd usando o protocolo de texto. Este é o tamanho dos dados reais contidos nos conjuntos de resultados que não se originam de instruções preparadas e que foram buscados pelo cliente PHP. Observe que embora um conjunto de resultados completo pode ter sido puxado do MySQL pelo mysqlnd, esta estatística conta somente dados reais puxados do mysqlnd pelo cliente PHP. Um exemplo de uma sequência de código que irá aumentar o valor está apresentado abaixo:
$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->fetch_assoc();
$res->close();

Cada operação de busca irá aumentar o valor.

A estatística não aumentará se o conjunto de resultados for apenas armazenado em buffer no cliente, mas não buscado, como no exemplo a seguir:

$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->close();
bytes_received_real_data_ps | Conexão | Número de bytes da carga buscada pelo cliente PHP a partir do mysqlnd usando o protocolo de instruções preparadas. | Este é o tamanho dos dados reais contidos nos conjuntos de resultados que se originam de instruções preparadas e que foram buscados pelo cliente PHP. O valor não será aumentado se o conjunto de resultados não for subsequentemente lido pelo cliente PHP. Observe que embora um conjunto de resultados completo pode ter sido puxado do MySQL pelo mysqlnd, esta estatística conta apenas dados reais puxados do mysqlnd pelo cliente PHP. Consulte também bytes_received_real_data_normal.

Conjunto de Resultados

Estatísticas retornadas pelo mysqlnd: Conjunto de Resultados
Estatística | Escopo | Descrição | Notas
result_set_queries | Conexão | Número de consultas que geraram um conjunto de resultados. Exemplos de consultas que geram um conjunto de resultados: SELECT, SHOW. A estatística não será incrementada se houver um erro ao ler, da linha, o pacote de cabeçalho do conjunto de resultados. | Pode-se usar uma medida indireta para o número de consultas que o PHP enviou ao MySQL, por exemplo, para identificar um cliente que causa uma carga alta no banco de dados.
non_result_set_queries | Conexão | Número de consultas que não geraram um conjunto de resultados. Exemplos de consultas que não geram um conjunto de resultados: INSERT, UPDATE, LOAD DATA. A estatística não será incrementada se houver um erro ao ler, da linha, o pacote de cabeçalho do conjunto de resultados. | Pode-se usar uma medida indireta para o número de consultas que o PHP enviou ao MySQL, por exemplo, para identificar um cliente que causa uma carga alta no banco de dados.
no_index_used | Conexão | Número de consultas que geraram um conjunto de resultados mas não usaram um índice (veja também a opção de início do mysqld –log-queries-not-using-indexes). Se for desejado que estas consultas sejam reportadas pode-se usar mysqli_report(MYSQLI_REPORT_INDEX) para fazer com que ext/mysqli lance uma exceção. Se for preferido um alerta ao invés de uma exceção, use mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT).
bad_index_used | Conexão | Número de consultas que geraram um conjunto de resultados mas não usaram um índice bom (veja também a opção de início do mysqld –log-slow-queries). | Se for desejado que estas consultas sejam reportadas pode-se usar mysqli_report(MYSQLI_REPORT_INDEX) para fazer com que ext/mysqli lance uma exceção. Se for preferido um alerta ao invés de uma exceção, use mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT)
slow_queries | Conexão | Instruções SQL que levaram mais de long_query_time segundos para serem executadas e que precisaram de pelo menos min_examined_row_limit linhas examinadas. | Não reportada através de mysqli_report()
buffered_sets | Conexão | Número de conjuntos de resultados em buffer retornados por consultas normais. Normais significam aquelas que não são instruções preparadas nas notas a seguir. | Examplos de chamadas de API que farão uso de buffer de conjuntos de resultados no cliente: mysql_query(), mysqli_query(), mysqli_store_result(), mysqli_stmt_get_result(). Fazer buffer de resultados no cliente assegura que os recursos do servidor são liberados assim que possível e torna a rolagem do conjunto de resultados mais fácil. A desvantagem é o consumo adicional de memória no cliente para armazenar os dados em buffer. Observe que o mysqlnd (ao contrário da Biblioteca Cliente MySQL) respeita o limite de memória do PHP porque usa as funções de gerenciamento internas do PHP para alocar memória. Esta também é a razão pela qual memory_get_usage() reporta um consumo maior de memória quando usa o mysqlnd ao invés da Biblioteca Cliente do MySQL. memory_get_usage() não mede de maneira nenhuma o consumo de memória da Biblioteca Cliente MySQL porque a biblioteca não usa as funções de gerenciamento de memória internas do PHP, monitoradas pela função!
unbuffered_sets | Conexão | Número de conjuntos de resultados sem buffer retornados por consultas normais (instruções não preparadas). | Examplos de chamadas de API que não farão uso de buffer de conjuntos de resultados no cliente: mysqli_use_result()
ps_buffered_sets | Conexão | Número de conjuntos de resultados com buffer retornados por instruções preparadas. Por padrão, instruções preparadas são sem buffer. | Examplos de chamadas de API que farão uso de buffer de conjuntos de resultados no cliente: mysqli_stmt_store_result
ps_unbuffered_sets | Conexão | Número de conjuntos de resultados sem buffer retornados por instruções preparadas. | Por padrão, instruções preparadas são sem buffer.
flushed_normal_sets Conexão Número de conjuntos de resultados de consultas normais (instrução não preparada) com dados não lidos que foram liberados silenciosamente. A liberação ocorre apenas com conjuntos de resultados sem buffer. Os conjuntos de resultados sem buffer devem ser buscados completamente antes que uma nova consulta possa ser executada na conexão, caso contrário o MySQL gerará um erro. Se a aplicação não buscar todas as linhas de um conjunto de resultados sem buffer, o mysqlnd buscará implicitamente o conjunto de resultados para limpar a linha. Veja também rows_skipped_normal, rows_skipped_ps. Algumas causas possíveis para uma liberação implícita:

  • Aplicação cliente com defeito

  • O cliente parou de ler depois de encontrar o que procurava, mas fez o MySQL calcular mais registros do que o necessário

  • A aplicação cliente parou inesperadamente

flushed_ps_sets Conexão Número de conjuntos de resultados de instruções preparadas com dados não lidos que foram liberados silenciosamente para você. A liberação ocorre apenas com conjuntos de resultados sem buffer. Conjuntos de resultados sem buffer devem ser buscados completamente antes que uma nova consulta possa ser executada na conexão, caso contrário o MySQL irá gerar um erro. Se a aplicação não buscar todas as linhas de um conjunto de resultados sem buffer, o mysqlnd buscará implicitamente o conjunto de resultados para limpar a linha. Veja também rows_skipped_normal, rows_skipped_ps. Algumas causas possíveis para uma liberação implícita:

  • Aplicação cliente com defeito

  • O cliente parou de ler depois de encontrar o que procurava, mas fez o MySQL calcular mais registros do que o necessário

  • A aplicação cliente parou inesperadamente

ps_prepared_never_executed | Conexão | Número de instruções preparadas mas nunca executadas. | As instruções preparadas ocupam recursos do servidor. Não se deve preparar uma declaração se não se planeja executá-la.
ps_prepared_once_executed | Conexão | Número de instruções preparadas executadas apenas uma vez. | Uma das ideias por trás das instruções preparadas é que a mesma consulta seja executada repetidamente (com parâmetros diferentes) e algum trabalho de análise e preparação possa ser salvo, se a execução da instrução for dividida em estágios separados de preparação e execução. A idéia é preparar uma vez e fazer cache dos resultados, por exemplo, da árvore de análise a ser reutilizada durante a execução de múltiplas instruções. Se uma instrução preparada for executada apenas uma vez, o processamento em dois estágios poderá ser ineficiente em comparação com consultas normais porque todo o armazenamento em cache significa trabalho extra e são necessários recursos (limitados) do servidor para armazenar as informações armazenadas em cache. Conseqüentemente, instruções preparadas que são executadas apenas uma vez podem causar danos ao desempenho.
rows_fetched_from_server_normal, rows_fetched_from_server_ps | Conexão | Número total de linhas do conjunto de resultados obtidas com sucesso do MySQL, independentemente da aplicação cliente as ter consumido ou não. Algumas das linhas podem não ter sido buscadas pela aplicação cliente, mas podem ter sido liberadas implicitamente. | Veja também packets_received_rset_row
rows_buffered_from_client_normal, rows_buffered_from_client_ps | Conexão | Número total de linhas armazenadas em buffer com êxito originadas de uma consulta "normal" ou de uma instrução preparada. Este é o número de linhas que foram buscadas no MySQL e armazenadas em buffer no cliente. Observe que existem duas estatísticas distintas sobre linhas que foram armazenadas em buffer (MySQL para buffer interno do mysqlnd) e linhas armazenadas em buffer que foram buscadas pela aplicação cliente (buffer interno do mysqlnd para aplicação cliente). Se o número de linhas em buffer for maior que o número de linhas em buffer buscadas, isso pode significar que a aplicação cliente executa consultas que causam conjuntos de resultados maiores do que o necessário, resultando em linhas não lidas pelo cliente. | Exemplos de consultas que armazenarão resultados em buffer: mysqli_query(), mysqli_store_result()
rows_fetched_from_client_normal_buffered, rows_fetched_from_client_ps_buffered | Conexão | Número total de linhas buscadas pelo cliente de um conjunto de resultados em buffer criado por uma consulta "normal" ou uma instrução preparada.
rows_fetched_from_client_normal_unbuffered, rows_fetched_from_client_ps_unbuffered | Conexão | Número total de linhas buscadas pelo cliente de um conjunto de resultados sem buffer criado por uma consulta "normal" ou uma instrução preparada.
rows_fetched_from_client_ps_cursor | Conexão | Número total de linhas buscadas pelo cliente a partir de um cursor criado por uma instrução preparada.
rows_skipped_normal, rows_skipped_ps | Conexão | Reservada para uso futuro (atualmente não suportada)
copy_on_write_saved, copy_on_write_performed | Process | Com o mysqlnd, as variáveis ??retornadas pelas extensões apontam para os buffers de resultados da rede interna do mysqlnd. Se as variáveis não forem alteradas, os dados buscados serão mantidos apenas uma vez na memória. Se as variáveis forem alteradas, o mysqlnd deverá executar uma cópia na gravação para proteger os buffers de resultados da rede interna contra alterações. Com a Biblioteca Cliente MySQL os dados buscados são sempre mantidos duas vezes na memória. Uma vez nos buffers internos da Biblioteca Cliente MySQL e uma vez nas variáveis ??retornadas pelas extensões. Em teoria, o mysqlnd pode economizar até 40% de memória. Entretanto, observe que a economia de memória não pode ser medida usando memory_get_usage().
explicit_free_result, implicit_free_result | Conexão, Processo (somente durante limpeza de instrução preparada) | Número total de conjuntos de resultados liberados. | A liberação é sempre considerada explícita exceto para conjuntos de resultados criados por um comando init, por exemplo , mysqli_options(MYSQLI_INIT_COMMAND , ...)
proto_text_fetched_null, proto_text_fetched_bit, proto_text_fetched_tinyint proto_text_fetched_short, proto_text_fetched_int24, proto_text_fetched_int proto_text_fetched_bigint, proto_text_fetched_decimal, proto_text_fetched_float proto_text_fetched_double, proto_text_fetched_date, proto_text_fetched_year proto_text_fetched_time, proto_text_fetched_datetime, proto_text_fetched_timestamp proto_text_fetched_string, proto_text_fetched_blob, proto_text_fetched_enum proto_text_fetched_set, proto_text_fetched_geometry, proto_text_fetched_other Conexão Número total de colunas de um certo tipo buscadas por uma consulta normal (protocolo de texto do MySQL). Mapeamento de tipos API C / metadados MySQL para o nome da estatística:

  • MYSQL_TYPE_NULL - proto_text_fetched_null

  • MYSQL_TYPE_BIT - proto_text_fetched_bit

  • MYSQL_TYPE_TINY - proto_text_fetched_tinyint

  • MYSQL_TYPE_SHORT - proto_text_fetched_short

  • MYSQL_TYPE_INT24 - proto_text_fetched_int24

  • MYSQL_TYPE_LONG - proto_text_fetched_int

  • MYSQL_TYPE_LONGLONG - proto_text_fetched_bigint

  • MYSQL_TYPE_DECIMAL, MYSQL_TYPE_NEWDECIMAL - proto_text_fetched_decimal

  • MYSQL_TYPE_FLOAT - proto_text_fetched_float

  • MYSQL_TYPE_DOUBLE - proto_text_fetched_double

  • MYSQL_TYPE_DATE, MYSQL_TYPE_NEWDATE - proto_text_fetched_date

  • MYSQL_TYPE_YEAR - proto_text_fetched_year

  • MYSQL_TYPE_TIME - proto_text_fetched_time

  • MYSQL_TYPE_DATETIME - proto_text_fetched_datetime

  • MYSQL_TYPE_TIMESTAMP - proto_text_fetched_timestamp

  • MYSQL_TYPE_STRING, MYSQL_TYPE_VARSTRING, MYSQL_TYPE_VARCHAR - proto_text_fetched_string

  • MYSQL_TYPE_TINY_BLOB, MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_BLOB - proto_text_fetched_blob

  • MYSQL_TYPE_ENUM - proto_text_fetched_enum

  • MYSQL_TYPE_SET - proto_text_fetched_set

  • MYSQL_TYPE_GEOMETRY - proto_text_fetched_geometry

  • Qualquer MYSQL_TYPE_* não listado antes (não deve ter faltado nenhum) - proto_text_fetched_other

Observe que as constantes MYSQL_*-type podem não estar associadas com os mesmos tipos de colunas SQL em todas as versões do MySQL.

proto_binary_fetched_null, proto_binary_fetched_bit, proto_binary_fetched_tinyint proto_binary_fetched_short, proto_binary_fetched_int24, proto_binary_fetched_int, proto_binary_fetched_bigint, proto_binary_fetched_decimal, proto_binary_fetched_float, proto_binary_fetched_double, proto_binary_fetched_date, proto_binary_fetched_year, proto_binary_fetched_time, proto_binary_fetched_datetime, proto_binary_fetched_timestamp, proto_binary_fetched_string, proto_binary_fetched_blob, proto_binary_fetched_enum, proto_binary_fetched_set, proto_binary_fetched_geometry, proto_binary_fetched_other | Conexão | Número total de colunas de um certo tipo buscadas por uma instrução preparada (protocolo binário do MySQL). | Para mapeamento de tipos, consulte proto_text_* descrito no texto anterior.
Estatísticas retornadas pelo mysqlnd: Conexão
Estatística | Escopo | Descrição | Notas
connect_success, connect_failure | Conexão | Número total de tentativas de conexão bem sucedidas ou falhadas. | Conexões reutilizadas e todos os outros tipos de conexão são incluídos.
reconnect | Processo | Número total de tentativas de (real_)connect feitas em um identificador de conexão já aberta. | A sequência de código $link = new mysqli(...); $link->real_connect(...) causará uma reconexão. Porém, $link = new mysqli(...); $link->connect(...) não causará porque $link->connect(...) irá fechar explicitamente a conexão existente antes que uma nova conexão seja estabelecida.
pconnect_success | Conexão | Número total de tentativas de conexões persistentes bem sucedidas. | Observe que connect_success mantém a soma de tentativas de conexões persistentes e não persistentes. O número de tentativas de conexões não persistentes bem sucedidas é connect_success - pconnect_success.
active_connections | Conexão | Número total de conexões ativas persistentes e não persistentes.
active_persistent_connections | Conexão | Número total de conexões ativas persistentes. | O número total de conexões ativas não persistentes é active_connections - active_persistent_connections.
explicit_close Conexão Número total de conexões fechadas explicitamente (somente ext/mysqli). Exemplos de trechos de código que causam um fechamento explícito:
$link = new mysqli(...); $link->close(...)
$link = new mysqli(...); $link->connect(...)
implicit_close Conexão Número total de conexões fechadas implicitamente (somente ext/mysqli). Exemplos de trecho de código que causam um fechamento implícito:

  • $link = new mysqli(...); $link->real_connect(...)

  • unset($link)

  • Conexão persistente: conexão agrupada foi criada com real_connect e pode haver opções desconhecidas definidas - fecha implicitamente para evitar retorno de uma conexão com opções desconhecidas

  • Conexão persistente: ping/change_user falha e ext/mysqli fecha a conexão

  • Fim de execução do script: fecha conexões que não foram fechadas pelo usuário

disconnect_close | Conexão | Falhas de conexão indicadas pela chamada da API C mysql_real_connect() durante uma tentativa de se estabelecer uma conexão. | É chamada de disconnect_close porque o identificador de conexão passado à chamada da API C será fechado.
in_middle_of_command_close | Processo | Uma conexão foi fechada no meio de uma execução de comando (conjunto de resultados não buscado, após consulta enviada e antes da obtenção de uma resposta, durante busca de dados, enquanto se transfere dados com LOAD DATA). | A menos que consultas assíncronas estejam sendo usadas, isto só deve acontecer se o script parar inesperadamente e o PHP fechar as conexões.
init_command_executed_count | Conexão | Número total de execuções do comando init, por exemplo, mysqli_options(MYSQLI_INIT_COMMAND , ...). | O número de execuções bem sucedidas é init_command_executed_count - init_command_failed_count.
init_command_failed_count | Conexão | Número total de comandos init falhados.
Estatísticas retornadas pelo mysqlnd: Comando COM_*
Estatística Escopo Descrição Notas
com_quit, com_init_db, com_query, com_field_list, com_create_db, com_drop_db, com_refresh, com_shutdown, com_statistics, com_process_info, com_connect, com_process_kill, com_debug, com_ping, com_time, com_delayed_insert, com_change_user, com_binlog_dump, com_table_dump, com_connect_out, com_register_slave, com_stmt_prepare, com_stmt_execute, com_stmt_send_long_data, com_stmt_close, com_stmt_reset, com_stmt_set_option, com_stmt_fetch, com_daemon Conexão Número total de tentativas de envio de um comando COM_* específico do PHP para o MySQL.

As estatísticas são incrementadas após a verificação da linha e imediatamente antes de enviar o pacote de protocolo cliente-servidor MySQL correspondente. Se o mysqlnd falhar ao enviar o pacote pela rede, as estatísticas não serão decrementadas. Em caso de falha, o mysqlnd emite um alerta do PHP Error while sending %s packet. PID=%d. (Erro ao enviar o pacote %s.)

Exemplos de uso:

  • Verificar se o PHP envia certos comando ao MySQL, por exemplo, verificando se o cliente envia COM_PROCESS_KILL

  • Calcular a média de execução de instruções preparadas comparando-se COM_EXECUTE com COM_PREPARE

  • Verificar se o PHP executou alguma instrução SQL não preparada, verificando se COM_QUERY é zero

  • Identificar os scripts PHP que executam um número excessivo de instruções SQL, verificando COM_QUERY e COM_EXECUTE

Miscelâneos

Estatísticas retornadas pelo mysqlnd: Miscelâneos
Estatística | Escopo | Descrição | Notas
explicit_stmt_close, implicit_stmt_close | Processo | Número total de fechamento de instruções preparadas. | Um fechamento é sempre considerado explícito exceto para uma preparação falhada.
mem_emalloc_count, mem_emalloc_ammount, mem_ecalloc_count, mem_ecalloc_ammount, mem_erealloc_count, mem_erealloc_ammount, mem_efree_count, mem_malloc_count, mem_malloc_ammount, mem_calloc_count, mem_calloc_ammount, mem_realloc_count, mem_realloc_ammount, mem_free_count | Processo | Chamadas de gerenciamento de memória. | Somente desenvolvimento.
command_buffer_too_small Conexão Número de extensões de buffer de comando de rede ao enviar comandos do PHP para o MySQL.

mysqlnd aloca um buffer de comando/rede interno com tamanho de mysqlnd.net_cmd_buffer_size (php.ini) bytes para cada conexão. Se um comando do protocolo Cliente-Servidor do MySQL, por exemplo, COM_QUERY (consulta normal), não couber no buffer, o mysqlnd aumentará o tamanho do buffer para o que for necessário para enviar o comando. Sempre que o buffer for estendido para uma conexão, command_buffer_too_small será incrementado em uma unidade.

Se o mysqlnd tiver que aumentar o buffer além de seu tamanho inicial em bytes definido em mysqlnd.net_cmd_buffer_size (php.ini) para quase toda conexão, deve-se considerar aumentar o tamanho padrão para evitar realocações.

O tamanho padrão do buffer é de 4096 bytes, que é o menor valor possível. O padrão pode ser alterado através da configuração mysqlnd.net_cmd_buffer_size do php.ini ou usando mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).

connection_reused


Notas

Esta seção fornece uma coleção de notas miscelâneas sobre o uso do Driver Nativo MySQL.

  • Usar mysqlndsignifica usar fluxos PHP para conectividades subjacente. Para mysqlnd, a documentação de fluxos do PHP (Fluxos) deve ser consultada sobre detalhes como configurações de limites de tempo, e não a documentação para a Biblioteca Cliente do MySQL.


Gerenciamento de Memória

Introdução

O Driver Nativo MySQL gerencia memória diferente da Biblioteca Cliente MySQL. As bibliotecas diferem na forma como a memória é alocada e liberada, como a memória é alocada em pedaços durante a leitura dos resultados do MySQL, quais opções de depuração e desenvolvimento existem e como os resultados lidos do MySQL são vinculados às variáveis ??de usuário do PHP.

As notas a seguir pretendem ser uma introdução e um resumo aos usuários interessados ??em compreender o Driver Nativo MySQL em nível de código C.

Funções de gerenciamento de memória usadas

Toda a alocação e desalocação de memória é feita usando as funções de gerenciamento de memória do PHP. Portanto, o consumo de memória do mysqlnd pode ser rastreado usando chamadas de API PHP, como memory_get_usage(). Como a memória é alocada e liberada usando o gerenciamento de memória do PHP, as alterações podem não se tornar imediatamente visíveis no nível do sistema operacional. O gerenciamento de memória do PHP atua como um proxy que pode atrasar a liberação de memória para o sistema. Devido a isso, é difícil comparar o uso de memória do Driver Nativo MySQL e da Biblioteca Cliente MySQL. A Biblioteca Cliente MySQL está usando as chamadas de gerenciamento de memória do sistema operacional diretamente, portanto, os efeitos podem ser observados imediatamente no nível do sistema operacional.

Qualquer limite de memória imposto pelo PHP também afeta o Driver Nativo MySQL. Isso pode causar erros de falta de memória ao buscar conjuntos de resultados grandes que excedem o tamanho da memória restante disponibilizada pelo PHP. Como a Biblioteca Cliente MySQL não usa funções de gerenciamento de memória PHP, ela não está em conformidade com nenhum limite de memória PHP definido. Se estiver usando a Biblioteca Cliente MySQL, dependendo do modelo de implantação, o consumo de memória do processo PHP pode crescer além do limite de memória do PHP. Mas também os scripts PHP podem processar conjuntos de resultados maiores, pois partes da memória alocada para armazenar os conjuntos de resultados estão além do controle do mecanismo PHP.

As funções de gerenciamento de memória do PHP são invocadas pelo Driver Nativo MySQL através de um encapsulador leve. Entre outros, o encapsulador facilita a depuração.

Lidando com conjuntos de resultados

Os vários servidores MySQL e as diversas APIs do cliente diferenciam entre conjuntos de resultados com buffer e sem buffer. Conjuntos de resultados sem buffer são transferidos linha por linha do MySQL para o cliente à medida que o cliente itera sobre os resultados. Os resultados armazenados em buffer são buscados integralmente pela biblioteca cliente antes de serem repassados ??ao cliente.

O Driver Nativo MySQL está utilizando fluxos PHP para a comunicação da rede com o Servidor MySQL. Os resultados enviados pelo MySQL são buscados dos buffers da rede de fluxos do PHP para o buffer de resultados do mysqlnd. O buffer resultante é composto de zvals. Numa segunda etapa os resultados são disponibilizados para o script PHP. Esta transferência final do buffer de resultados para variáveis ??PHP impacta o consumo de memória e é principalmente perceptível ao usar conjuntos de resultados armazenados em buffer.

Por padrão o Driver Nativo MySQL tenta evitar armazenar resultados em buffer duas vezes na memória. Os resultados são mantidos apenas uma vez nos buffers de resultados internos e seus zvals. Quando os resultados são buscados em variáveis ??PHP pelo script PHP, as variáveis ??farão referência aos buffers de resultados internos. Os resultados da consulta ao banco de dados não são copiados e mantidos na memória apenas uma vez. Caso o usuário modifique o conteúdo de uma variável que contém os resultados do banco de dados, uma cópia na gravação deverá ser executada para evitar a alteração do buffer de resultados interno referenciado. O conteúdo do buffer não deve ser modificado porque o usuário pode decidir ler o conjunto de resultados uma segunda vez. O mecanismo de cópia na gravação é implementado usando uma lista de gerenciamento de referência adicional e o uso de contadores de referência zval padrão. A cópia na gravação também deve ser feita se o usuário ler um conjunto de resultados em variáveis ??PHP e liberar um conjunto de resultados antes que as variáveis ??sejam desdefinidas.

De modo geral, esse padrão funciona bem para scripts que leem um conjunto de resultados uma vez e não modificam variáveis ??que contêm resultados. Sua principal desvantagem é a sobrecarga de memória causada pelo gerenciamento de referência adicional que vem principalmente do fato de que as variáveis ??do usuário que contêm resultados não podem ser totalmente liberadas até que o gerenciamento de referência do mysqlnd pare de referenciá-las. O Driver Nativo MySQL remove a referência às variáveis ??do usuário quando o conjunto de resultados é liberado ou uma cópia na gravação é executada. Um observador verá o consumo total de memória crescer até que o conjunto de resultados seja liberado. Use as estatísticas para verificar se um script libera conjuntos de resultados explicitamente ou se o driver faz liberações implícitas e, portanto, a memória é usada por um tempo maior que o necessário. As estatísticas também ajudam a ver quantas operações de cópia na gravação ocorreram.

Um script PHP lendo muitas linhas pequenas de um conjunto de resultados em buffer usando um trecho de código igual ou equivalente a while ($row = $res->fetch_assoc()) { ... } pode otimizar o consumo de memória solicitando cópias em vez de referências. Embora solicitar cópias signifique manter os resultados duas vezes na memória, isso permite que o PHP libere a cópia contida em $row à medida que o conjunto de resultados está sendo iterado e antes de liberar o próprio conjunto de resultados. Em um servidor carregado, a otimização do uso máximo de memória pode ajudar a melhorar o desempenho geral do sistema, embora para um script individual a abordagem de cópia possa ser mais lenta devido a alocações adicionais e operações de cópia de memória.

Monitoramento e depuração

Existem diversas formas de rastrear o uso de memória do Driver Nativo MySQL. Se o objetivo é obter uma visão geral rápida de alto nível ou verificar a eficiência da memória dos scripts PHP, então verifique as estatísticas coletadas pela biblioteca. As estatísticas permitem, por exemplo, capturar instruções SQL que geram mais resultados do que são processados ??por um script PHP.

O log de rastreamento debug pode ser configurado para registrar chamadas de gerenciamento de memória. Isso ajuda a ver quando a memória está alocada ou liberada. No entanto, o tamanho dos blocos de memória solicitados pode não estar listado.

Algumas versões recentes do Driver Nativo MySQL apresentam a emulação de situações aleatórias de falta de memória. Este recurso deve ser usado apenas pelos desenvolvedores C da biblioteca ou pelos autores do plugin do mysqlnd. Por favor, pesquise no código-fonte as configurações correspondentes do PHP e mais detalhes. O recurso é considerado privado e pode ser modificado a qualquer momento sem aviso prévio.


API do plugin do Driver Nativo MySQL

Índice

  • Uma comparação de plugins mysqlnd com Proxy MySQL
  • Obtendo a API do plugin mysqlnd
  • Arquitetura do Plugin do Driver Nativo MySQL
  • A API do plugin mysqlnd
  • Começando a construir um plugin mysqlnd

A API de plugin do Driver Nativo MySQL é um recurso do Driver Nativo MySQL, ou mysqlnd. Os plugins Mysqlnd operam na camada entre os aplicativos PHP e o servidor MySQL. Isso é comparável ao Proxy MySQL. O Proxy MySQL opera em uma camada entre qualquer aplicativo cliente MySQL, por exemplo, um aplicativo PHP e o servidor MySQL. Os plugins Mysqlnd podem realizar tarefas típicas do Proxy MySQL, como balanceamento de carga, monitoramento e otimizações de desempenho. Devido à arquitetura e localização diferentes, os plugins mysqlnd não apresentam algumas das desvantagens do Proxy MySQL. Por exemplo, com plugins, não há um ponto único de falha, nenhum servidor proxy dedicado para se implantar e nenhuma nova linguagem de programação para aprender (Lua).

Um plugin mysqlnd pode ser pensado como uma extensão do mysqlnd. Plugins podem interceptar a maioria das funções do mysqlnd. As funções mysqlnd são chamadas pelas extensões PHP MySQL como ext/mysql, ext/mysqli e PDO_MYSQL. Como resultado, é possível para um plugin mysqlnd interceptar todas as chamadas feitas para essas extensões a partir da aplicação cliente.

Chamadas internas de função mysqlnd também podem ser interceptadas ou substituídas. Não há restrições na manipulação de tabelas de funções internas do mysqlnd. É possível configurar as coisas para que quando certas funções mysqlnd sejam chamadas pelas extensões que usam mysqlnd, a chamada seja direcionada para a função apropriada no plugin mysqlnd. A capacidade de manipular tabelas de funções internas do mysqlnd desta forma permite máxima flexibilidade para plugins.

Plugins Mysqlnd são na verdade extensões PHP, escritas em C, que usam a API do plugin mysqlnd (que está embutida no Driver Nativo MySQL, mysqlnd) . Os plugins podem ser 100% transparentes para aplicações PHP. Nenhuma alteração na aplicação é necessária porque os plugins operam em uma camada diferente. O plugin mysqlnd pode ser pensado como operando em uma camada abaixo do mysqlnd.

A lista a seguir representa algumas aplicações possíveis de plugins mysqlnd.

  • Balanceamento de Carga

    • Divisão de leitura/gravação. Um exemplo disso é a extensão PECL/mysqlnd_ms (Master Slave). Esta extensão divide consultas de leitura/gravação para uma configuração de replicação.

    • Failover

    • Round-Robin, menos carregado

  • Monitoramento

    • Registro de Consultas

    • Análise de Consultas

    • Auditoria de Consultas. Um exemplo disso é a extensão PECL/mysqlnd_sip (Proteção Contra Injeção SQL). Esta extensão inspeciona consultas e executa apenas aquelas permitidas de acordo com um conjunto de regras.

  • Desempenho

    • Cache. Um exemplo disso é a extensão PECL/mysqlnd_qc (Cache de Consultas).

    • Redução de velocidade

    • Fragmentação. Um exemplo disso é a extensão PECL/mysqlnd_mc (Multi Conecão). Esta extensão tentará dividir uma instrução SELECT em n partes, usando SELECT ... LIMIT part_1, SELECT LIMIT part_n. Ele envia as consultas para servidores MySQL distintos e mescla o resultado no cliente.

Driver Nativo MySQL Plugins Available

Existem vários plug-ins do mysqlnd já disponíveis. Esses incluem:

  • PECL/mysqlnd_mc - plugin Multi Conexão.

  • PECL/mysqlnd_ms - plugin Master Slave.

  • PECL/mysqlnd_qc - plugin Query Cache.

  • PECL/mysqlnd_pscache - plugin de Cache de Manipulador de Instruções Preparadas.

  • PECL/mysqlnd_sip - plugin de Proteção Contra Injeção SQL.

  • PECL/mysqlnd_uh - plugin de Manipulador de Usuário.


Uma comparação de plugins mysqlnd com Proxy MySQL

Plugins Mysqlnd e Proxy MySQL são tecnologias diferentes que usam abordagens diferentes. Ambas são ferramentas válidas para resolver uma variedade de tarefas comuns, como balanceamento de carga, monitoramento e melhorias de desempenho. Uma diferença importante é que o Proxy MySQL funciona com todos os clientes MySQL, enquanto os plugins mysqlnd são específicos para aplicações PHP.

Como uma extensão PHP, um plugin mysqlnd é instalado no servidor de aplicativos PHP, junto com o restante do PHP. O Proxy MySQL pode ser executado no servidor de aplicativos PHP ou pode ser instalado em uma máquina dedicada para lidar com vários servidores de aplicações PHP.

A implantação do Proxy MySQL no servidor de aplicativos tem duas vantagens:

  1. Nenhum ponto único de falha

  2. Fácil de escalonar horizontalmente (escalonar horizontalmente, escalonar por cliente)

O proxy MySQL (e os plugins mysqlnd) podem resolver facilmente problemas que de outra forma exigiriam alterações em aplicações existentes.

No entanto, o Proxy MySQL tem algumas desvantagens:

  • Proxy MySQL é um novo componente e uma nova tecnologia para dominar e implantar.

  • O Proxy MySQL requer conhecimento da linguagem de script Lua.

O proxy MySQL pode ser customizado com programação C e Lua. Lua é a linguagem de script preferida do Proxy MySQL. Para a maioria dos especialistas em PHP, Lua é uma nova linguagem para se aprender. Um plugin mysqlnd pode ser escrito em C. Também é possível escrever plugins em PHP usando » PECL/mysqlnd_uh.

O proxy MySQL é executado como um daemon - um processo em segundo plano. O proxy MySQL pode recuperar decisões anteriores, pois todo o estado pode ser retido. Entretanto, um plugin mysqlnd está vinculado ao ciclo de vida baseado em solicitações do PHP. O Proxy MySQL também pode compartilhar resultados computados únicos entre vários servidores de aplicativos. Um plugin mysqlnd precisaria armazenar dados em um meio persistente para poder fazer isso. Outro daemon precisaria ser usado para essa finalidade, como o Memcache. Isso dá ao Proxy MySQL uma vantagem neste caso.

O proxy MySQL funciona sobre o protocolo de fio. Com o Proxy MySQL é necessário analisar e fazer engenharia reversa do protocolo MySQL Client Server. As ações são limitadas àquelas que podem ser alcançadas através da manipulação do protocolo de comunicação. Se o protocolo de fio for alterado (o que acontece muito raramente), os scripts do proxy MySQL também precisarão ser alterados.

Os plugins Mysqlnd funcionam sobre a API C, que espelha o cliente libmysqlclient. Esta API C é basicamente um encapsulador em torno do protocolo clienten-servidor MySQL, ou protocolo de fio, como às vezes é chamado. Pode-se interceptar todas as chamadas da API C. O PHP faz uso da API C, portanto pode-se conectar todas as chamadas PHP, sem a necessidade de programar no nível do protocolo de fio.

Mysqlnd implementa o protocolo de fio. Os plugins podem, portanto, analisar, fazer engenharia reversa, manipular e até mesmo substituir o protocolo de comunicação. No entanto, isso geralmente não é necessário.

Como os plugins permitem criar implementações que utilizam dois níveis (API C e protocolo de fio), eles têm maior flexibilidade que o Proxy MySQL. Se um plugin mysqlnd for implementado usando a API C, quaisquer alterações subsequentes no protocolo de fio não requerem alterações no próprio plugin.


Obtendo a API do plugin mysqlnd

A API do plugin mysqlnd é simplesmente parte da extensão PHP do Driver Nativo MySQL, ext/mysqlnd. O desenvolvimento da API do plugin mysqlnd começou em dezembro de 2009. Ele é desenvolvido como parte do repositório de código-fonte PHP e, como tal, está disponível ao público via Git ou por meio de downloads de snapshots de código-fonte.

Os desenvolvedores do plugin podem determinar a versão do mysqlnd acessando MYSQLND_VERSION, que é uma string no formato mysqlnd 5.0.7-dev - 091210 - $Revision: 300535 ou por meio de MYSQLND_VERSION_ID, que é um número inteiro como 50007. Os desenvolvedores podem calcular o número da versão da seguinte maneira:

Tabela de cálculo de MYSQLND_VERSION_ID
Versão (parte) | Exemplo
Maior*10000 | 5*10000 = 50000
Menor*100 | 0*100 = 0
Correção | 7 = 7
MYSQLND_VERSION_ID | 50007

Durante o desenvolvimento, os desenvolvedores devem consultar o número da versão do mysqlnd para compatibilidade e testes de versão, já que diversas iterações do mysqlnd podem ocorrer durante o tempo de vida de uma ramificação de desenvolvimento PHP com um único número de versão PHP.


Arquitetura do Plugin do Driver Nativo MySQL

Esta seção fornece uma visão geral da arquitetura do plugin mysqlnd.

Visão Geral do Driver Nativo MySQL

Antes de desenvolver plugins mysqlnd, é útil saber um pouco de como o próprio mysqlnd é organizado. Mysqlnd consiste nos seguintes módulos:

O organograma mysqlnd, por módulo
Estatísticas de Módulos | mysqlnd_statistics.c
Conexão | mysqlnd.c
Conjunto de resultados | mysqlnd_result.c
Metadados do conjunto de resultados | mysqlnd_result_meta.c
Declaração | mysqlnd_ps.c
Rede | mysqlnd_net.c
Protocolo de fio | mysqlnd_wireprotocol.c

Paradigma de C Orientado a Objetos

No nível do código, mysqlnd usa um padrão C para implementar orientação a objetos.

Em C você usa uma struct para representar um objeto. Os membros da estrutura representam propriedades do objeto. Membros da estrutura que apontam para funções representam métodos.

Ao contrário de outras linguagens como C++ ou Java, não existem regras fixas sobre herança no paradigma do C orientado a objetos. No entanto, existem algumas convenções que precisam ser seguidas e que serão discutidas posteriormente.

O Ciclo de Vida do PHP

Ao considerar o ciclo de vida do PHP, existem dois ciclos básicos:

  • Ciclo de inicialização e desligamento do mecanismo PHP

  • Ciclo de requisição

Quando o mecanismo PHP for iniciado ele chamará a função de inicialização do módulo (MINIT) de cada extensão registrada. Isso permite que cada módulo configure variáveis ??e aloque recursos que existirão durante a vida útil do processo do mecanismo PHP. Quando o mecanismo PHP for desligado, ele chamará a função de desligamento do módulo (MSHUTDOWN) de cada extensão.

Durante a vida útil do mecanismo PHP, ele receberá diversas solicitações. Cada solicitação constitui outro ciclo de vida. Em cada solicitação, o mecanismo PHP chamará a função de inicialização de solicitação de cada extensão. A extensão pode executar qualquer configuração de variável e alocação de recursos necessária para o processamento de solicitações. À medida que o ciclo de solicitação termina, o mecanismo chama a função de desligamento de solicitação (RSHUTDOWN) de cada extensão para que ela possa realizar qualquer limpeza necessária.

Como um plugin funciona

Um plugin mysqlnd funciona interceptando chamadas feitas para mysqlnd por extensões que usam mysqlnd. Isto é conseguido obtendo a tabela de funções mysqlnd, fazendo backup dela e substituindo-a por uma tabela de funções customizada, que chama as funções do plugin conforme necessário.

O código a seguir mostra como a tabela de funções mysqlnd é substituída:

/* um lugar para armazenar a tabela de funções original */
struct st_mysqlnd_conn_methods org_methods;

void minit_register_hooks(TSRMLS_D) {
  /* tabela de funções ativas */
  struct st_mysqlnd_conn_methods * current_methods
    = mysqlnd_conn_get_methods();

  /* tabela de funções original de backup */
  memcpy(&org_methods, current_methods,
    sizeof(struct st_mysqlnd_conn_methods);

  /* instala novos métodos */
  current_methods->query = MYSQLND_METHOD(my_conn_class, query);
}

As manipulações da tabela de funções de conexão devem ser feitas durante a inicialização do módulo (MINIT). A tabela de funções é um recurso global compartilhado. Em um ambiente multithread, com construção de TSRM, a manipulação de um recurso global compartilhado durante o processamento da solicitação quase certamente resultará em conflitos.

Nota:

Não use nenhuma lógica de tamanho fixo ao manipular a tabela de funções mysqlnd: novos métodos podem ser adicionados ao final da tabela de funções. A tabela de funções pode mudar a qualquer momento no futuro.

Chamando métodos da classe pai

Se for feito backup das entradas originais da tabela de funções, ainda será possível chamar as entradas originais da tabela de funções - os métodos pai.

Em alguns casos, como em Connection::stmt_init(), é vital chamar o método pai antes de qualquer outra atividade no método derivado.

MYSQLND_METHOD(my_conn_class, query)(MYSQLND *conn,
  const char *query, unsigned int query_len TSRMLS_DC) {

  php_printf("my_conn_class::query(query = %s)\n", query);

  query = "SELECT 'query rewritten' FROM DUAL";
  query_len = strlen(query);

  return org_methods.query(conn, query, query_len); /* retorna com chamada ao método pai */
}

Estendendo propriedades

Um objeto mysqlnd é representado por uma estrutura C. Não é possível adicionar um membro a uma estrutura C em tempo de execução. Usuários de objetos mysqlnd não podem simplesmente adicionar propriedades aos objetos.

Dados arbitrários (propriedades) podem ser adicionados a um objeto mysqlnd usando uma função apropriada da família mysqlnd_plugin_get_plugin_<object>_data(). Ao alocar um objeto, mysqlnd reserva espaço no final do objeto para conter um ponteiro void * para dados arbitrários. mysqlnd reserva espaço para um ponteiro void * por plugin.

A tabela a seguir mostra como calcular a posição do ponteiro para um plugin específico:

Cálculo de ponteiro para mysqlnd
Endereço de memória | Conteúdo
0 | Início da estrutura C do objeto mysqlnd
n | Final da estrutura C do objeto mysqlnd
n + (m x sizeof(void*)) | void* para dados do objeto do m-ésimo plugin

Se for planejada uma sub-classe de qualquer dos construtores de objeto mysqlnd, que é permitido, deve-se ter isto em mente!

O código a seguir mostra extensão de propriedades:

/* qualquer dado que se queira associar */
typedef struct my_conn_properties {
  unsigned long query_counter;
} MY_CONN_PROPERTIES;

/* id do plugin */
unsigned int my_plugin_id;

void minit_register_hooks(TSRMLS_D) {
  /* obtém ID único para o plugin */
  my_plugin_id = mysqlnd_plugin_register();
  /* recorte - consulte Estendendo Conexão: métodos */
}

static MY_CONN_PROPERTIES** get_conn_properties(const MYSQLND *conn TSRMLS_DC) {
  MY_CONN_PROPERTIES** props;
  props = (MY_CONN_PROPERTIES**)mysqlnd_plugin_get_plugin_connection_data(
    conn, my_plugin_id);
  if (!props || !(*props)) {
    *props = mnd_pecalloc(1, sizeof(MY_CONN_PROPERTIES), conn->persistent);
    (*props)->query_counter = 0;
  }
  return props;
}

O desenvolvedor do plugin é responsável pelo gerenciamento de memória dos dados do plugin.

O uso do alocador de memória mysqlnd é recomendado para dados do plugin. Essas funções são nomeadas usando a convenção: mnd_*loc(). O alocador mysqlnd possui alguns recursos úteis, como a capacidade de usar um alocador de depuração em uma compilação sem depuração.

Quando e como usar uma sub-classe
 | Quando usar uma sub-classe? | Cada instância tem sua própria tabela de funções privadas? | Como usar uma sub-classe
Conexão (MYSQLND) | MINIT | Não | mysqlnd_conn_get_methods()
Conjunto de resultados (MYSQLND_RES) | MINIT ou depois | Sim | mysqlnd_result_get_methods() ou manipulação de tabela de funções de métodos de objeto
Resultset Meta (MYSQLND_RES_METADATA) | MINIT | Não | mysqlnd_result_metadata_get_methods()
Statement (MYSQLND_STMT) | MINIT | Não | mysqlnd_stmt_get_methods()
Rede (MYSQLND_NET) | MINIT ou depois | Sim | mysqlnd_net_get_methods() ou manipulação de tabela de funções de métodos de objeto
Protocolo de fio (MYSQLND_PROTOCOL) | MINIT ou depois | Sim | mysqlnd_protocol_get_methods() ou manipulação de tabela de funções de métodos de objeto

Não se deve manipular tabelas de funções em nenhum momento posterior ao MINIT se isso não for permitido de acordo com a tabela acima.

Algumas classes contêm um ponteiro para a tabela de funções do método. Todas as instâncias dessa classe compartilharão a mesma tabela de funções. Para evitar o caos, especialmente em ambientes com threads, tais tabelas de funções só devem ser manipuladas durante o MINIT.

Outras classes usam cópias de uma tabela de funções compartilhada globalmente. A cópia da tabela de funções de classe é criada junto com o objeto. Cada objeto usa sua própria tabela de funções. Isso dá duas opções: pode-se manipular a tabela de funções padrão de um objeto no MINIT, e também pode-se refinar os métodos de um objeto sem afetar outras instâncias da mesma classe.

A vantagem da abordagem de tabela de funções compartilhadas é o desempenho. Não há necessidade de copiar uma tabela de funções para cada objeto.

Estado do construtor
Tipo | Alocação, construção, redefinição | Pode ser modificada? | Chamadora
Conexão (MYSQLND) | mysqlnd_init() | Não | mysqlnd_connect()
Resultset(MYSQLND_RES)

Alocação:

  • Connection::result_init()

Redefinida e reinicializada durante:

  • Result::use_result()

  • Result::store_result

Sim, mas deve-se chamar o método pai!

  • Connection::list_fields()

  • Statement::get_result()

  • Statement::prepare() (Somente metadados)

  • Statement::resultMetaData()

Metadados do conjunto de resultados (MYSQLND_RES_METADATA) | Connection::result_meta_init() | Sim, mas deve-se chamar o método pai! | Result::read_result_metadata()
Instrução (MYSQLND_STMT) | Connection::stmt_init() | Sim, mas deve-se chamar o método pai! | Connection::stmt_init()
Rede (MYSQLND_NET) | mysqlnd_net_init() | Não | Connection::init()
Protocolo de fio (MYSQLND_PROTOCOL) | mysqlnd_protocol_init() | Não | Connection::init()

É altamente recomendável que não se substitua totalmente um construtor. Os construtores realizam alocações de memória. As alocações de memória são vitais para a API do plugin mysqlnd e para a lógica do objeto mysqlnd. Se não houver preocupação com avisos e houver insistência em conectar os construtores, deve-se pelo menos chamar o construtor pai antes de fazer qualquer coisa no construtor.

Independentemente de todos os avisos, pode ser útil criar sub-classes de construtores. Os construtores são o lugar perfeito para modificar as tabelas de funções de objetos com tabelas de objetos não compartilhados, como Conjunto de Resultados, Rede, Protocolo de Fio.

Estado do destruidor
Tipo | Método derivado deve chamar o pai? | Destruidor
Conexão | sim, após execução do método | free_contents(), end_psession()
Conjunto de resultados | sim, após execução do método | free_result()
Metadados do conjunto de resultados | sim, após execução do método | free()
Instrução | sim, após execução do método | dtor(), free_stmt_content()
Rede | sim, após execução do método | free()
Protocolo de fio | sim, após execução do método | free()

Os destruidores são o local apropriado para liberar propriedades, mysqlnd_plugin_get_plugin_<object>_data().

Os destruidores listados podem não ser equivalentes ao método mysqlnd real que libera o próprio objeto. No entanto, eles são o melhor lugar possível para se conectar e liberar os dados do plugin. Tal como acontece com os construtores, pode-se substituir totalmente os métodos, mas isso não é recomendado. Se vários métodos estiverem listados na tabela acima, será necessário conectar todos os métodos listados e liberar os dados do plugin em qualquer método chamado primeiro pelo mysqlnd.

O método recomendado para plugins é simplesmente conectar os métodos, liberar memória e chamar a implementação pai imediatamente após isso.


A API do plugin mysqlnd

A seguir está uma lista de funções fornecidas na API do plugin mysqlnd:

  • mysqlnd_plugin_register()

  • mysqlnd_plugin_count()

  • mysqlnd_plugin_get_plugin_connection_data()

  • mysqlnd_plugin_get_plugin_result_data()

  • mysqlnd_plugin_get_plugin_stmt_data()

  • mysqlnd_plugin_get_plugin_net_data()

  • mysqlnd_plugin_get_plugin_protocol_data()

  • mysqlnd_conn_get_methods()

  • mysqlnd_result_get_methods()

  • mysqlnd_result_meta_get_methods()

  • mysqlnd_stmt_get_methods()

  • mysqlnd_net_get_methods()

  • mysqlnd_protocol_get_methods()

Não existe uma definição formal do que é um plugin e como funciona um mecanismo de plugin.

Os componentes frequentemente encontrados em mecanismos de plugins são:

  • Um gerenciador de plugin

  • Uma API de plugin

  • Serviços (ou módulos) de aplicação

  • APIs de serviço (ou APIs de módulo) de aplicação

O conceito do plugin mysqlnd emprega esses recursos e, adicionalmente, desfruta de uma arquitetura aberta.

Sem Restrições

Um plugin tem acesso total ao funcionamento interno do mysqlnd. Não há limites ou restrições de segurança. Tudo pode ser sobrescrito para implementar algoritmos amigáveis ??ou hostis. É recomendado que se implante apenas plugins de uma fonte confiável.

Conforme discutido anteriormente, os plugins podem usar ponteiros livremente. Esses ponteiros não são restritos de forma alguma e podem apontar para dados de outro plugin. A aritmética de deslocamento simples pode ser usada para ler os dados de outro plugin.

É recomendado que se escreva plugins cooperativos e que sempre se chame o método pai. Os plugins devem sempre cooperar com o próprio mysqlnd.

Questões: um exemplo de encadeamento e cooperação
Extensão | Ponteiro mysqlnd.query() | pilha de chamadas se estiver chamando o pai
ext/mysqlnd | mysqlnd.query() | mysqlnd.query
ext/mysqlnd_cache mysqlnd_cache.query()

  1. mysqlnd_cache.query()

  2. mysqlnd.query

ext/mysqlnd_monitor mysqlnd_monitor.query()

  1. mysqlnd_monitor.query()

  2. mysqlnd_cache.query()

  3. mysqlnd.query

Neste cenário, um cache (ext/mysqlnd_cache) e um plugin de monitor (ext/mysqlnd_monitor) são carregados. Ambas são sub-classes de Connection::query(). O registro do plugin acontece em MINIT usando a lógica mostrada anteriormente. O PHP chama extensões em ordem alfabética por padrão. Os plugins não reconhecem uns aos outros e não definem dependências de extensão.

Por padrão, os plugins chamam a implementação pai do método de consulta em sua versão derivada do método.

Recapitulação de Extensão PHP

Esta é uma recapitulação do que acontece ao usar um plugin de exemplo, ext/mysqlnd_plugin, que expõe a API do plugin C mysqlnd ao PHP:

  • Qualquer aplicação PHP MySQL tenta estabelecer uma conexão com 192.168.2.29

  • A aplicação PHP usará ext/mysql, ext/mysqli ou PDO_MYSQL. Todas as três extensões PHP MySQL usam mysqlnd para estabelecer a conexão com 192.168.2.29.

  • Mysqlnd chama seu método de conexão, que agora é uma sub-classe de ext/mysqlnd_plugin.

  • ext/mysqlnd_plugin chama o gancho do espaço de usuário proxy::connect() registrado pelo usuário.

  • O gancho do espaço de usuário altera o IP do host de conexão de 192.168.2.29 para 127.0.0.1 e retorna a conexão estabelecida por parent::connect().

  • ext/mysqlnd_plugin executa o equivalente a parent::connect(127.0.0.1) chamando o método mysqlnd original para estabelecer uma conexão.

  • ext/mysqlnd estabelece uma conexão e retorna ao ext/mysqlnd_plugin. ext/mysqlnd_plugin também retorna.

  • Qualquer que seja a extensão PHP MySQL utilizada pela aplicação, ela recebe uma conexão com 127.0.0.1. A própria extensão PHP MySQL retorna ao aplicativo PHP. E o ciclo se fecha.


Começando a construir um plugin mysqlnd

É importante lembrar que um plugin mysqlnd é em si uma extensão PHP.

O código a seguir mostra a estrutura básica da função MINIT que será usada no plugin mysqlnd típico:

/* my_php_mysqlnd_plugin.c */

 static PHP_MINIT_FUNCTION(mysqlnd_plugin) {
  /* globais, entradas ini, recursos, classes */

  /* registra o plugin mysqlnd */
  mysqlnd_plugin_id = mysqlnd_plugin_register();

  conn_m = mysqlnd_get_conn_methods();
  memcpy(org_conn_m, conn_m,
    sizeof(struct st_mysqlnd_conn_methods));

  conn_m->query = MYSQLND_METHOD(mysqlnd_plugin_conn, query);
  conn_m->connect = MYSQLND_METHOD(mysqlnd_plugin_conn, connect);
 }

/* my_mysqlnd_plugin.c */

 enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, query)(/* ... */) {
  /* ... */
 }
 enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, connect)(/* ... */) {
  /* ... */
 }

Análise de tarefa: do C ao espaço do usuário

class proxy extends mysqlnd_plugin_connection {
  public function connect($host, ...) { .. }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Processo:

  1. PHP: usuário registra chamada do plugin

  2. PHP: usuário chama qualquer API PHP MySQL para se conectar ao MySQL

  3. C: ext/*mysql* chama o método de mysqlnd

  4. C: mysqlnd chega em ext/mysqlnd_plugin

  5. C: ext/mysqlnd_plugin

    1. Chama a função de retorno no espaço de usuário

    2. Ou o método original de mysqlnd, se a função de retorno no espaço de usuário não estiver definida

Deve-se fazer o seguinte:

  1. Escrever uma classe "mysqlnd_plugin_connection" em C

  2. Aceitar e registrar um objeto proxy através de "mysqlnd_plugin_set_conn_proxy()"

  3. Chamar métodos proxy do espaço do usuário a partir do C (otimização - zend_interfaces.h)

Os métodos de objeto do espaço do usuário podem ser chamados usando call_user_function() ou pode-se operar em um nível mais próximo do Motor Zend e usar zend_call_method().

Otimização: chamando métrodos a partir do C usando zend_call_method

O trecho de código a seguir mostra o protótipo da função zend_call_method, obtido de zend_interfaces.h.

 ZEND_API zval* zend_call_method(
  zval **object_pp, zend_class_entry *obj_ce,
  zend_function **fn_proxy, char *function_name,
  int function_name_len, zval **retval_ptr_ptr,
  int param_count, zval* arg1, zval* arg2 TSRMLS_DC
);

A API Zend suporta apenas dois argumentos. Pode ser necessário mais, por exemplo:

 enum_func_status (*func_mysqlnd_conn__connect)(
  MYSQLND *conn, const char *host,
  const char * user, const char * passwd,
  unsigned int passwd_len, const char * db,
  unsigned int db_len, unsigned int port,
  const char * socket, unsigned int mysql_flags TSRMLS_DC
);

Para contornar esse problema é necessário fazer uma cópia de zend_call_method() e adicionar um recurso para parâmetros adicionais. Pode-se fazer isso criando um conjunto de macros MY_ZEND_CALL_METHOD_WRAPPER.

Chamando o espeço de usuário do PHP

Este trecho de código mostra o método otimizado para chamar uma função de espaço do usuário a partir do C:

/* my_mysqlnd_plugin.c */

MYSQLND_METHOD(my_conn_class,connect)(
  MYSQLND *conn, const char *host /* ... */ TSRMLS_DC) {
  enum_func_status ret = FAIL;
  zval * global_user_conn_proxy = fetch_userspace_proxy();
  if (global_user_conn_proxy) {
    /* chama o proxy de espaço de usuário */
    ret = MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, host, /*...*/);
  } else {
    /* ou o método mysqlnd original = não faz nada, é transparente */
    ret = org_methods.connect(conn, host, user, passwd,
          passwd_len, db, db_len, port,
          socket, mysql_flags TSRMLS_CC);
  }
  return ret;
}

Chamando o espaço de usuário: argumentos simples

/* my_mysqlnd_plugin.c */

 MYSQLND_METHOD(my_conn_class,connect)(
  /* ... */, const char *host, /* ...*/) {
  /* ... */
  if (global_user_conn_proxy) {
    /* ... */
    zval* zv_host;
    MAKE_STD_ZVAL(zv_host);
    ZVAL_STRING(zv_host, host, 1);
    MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, zv_retval, zv_host /*, ...*/);
    zval_ptr_dtor(&zv_host);
    /* ... */
  }
  /* ... */
}

Chamando o espaço de usuário: estruturas como argumentos

/* my_mysqlnd_plugin.c */

MYSQLND_METHOD(my_conn_class, connect)(
  MYSQLND *conn, /* ...*/) {
  /* ... */
  if (global_user_conn_proxy) {
    /* ... */
    zval* zv_conn;
    ZEND_REGISTER_RESOURCE(zv_conn, (void *)conn, le_mysqlnd_plugin_conn);
    MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, zv_retval, zv_conn, zv_host /*, ...*/);
    zval_ptr_dtor(&zv_conn);
    /* ... */
  }
  /* ... */
}

O primeiro argumento de muitos métodos mysqlnd é um "objeto" C. Por exemplo, o primeiro argumento do método connect() é um ponteiro para MYSQLND. A estrutura MYSQLND representa um objeto de conexão mysqlnd.

O ponteiro do objeto de conexão mysqlnd pode ser comparado a um identificador de arquivo de E/S padrão. Como um arquivo de E/S padrão, um objeto de conexão mysqlnd deve ser vinculado ao espaço do usuário usando o tipo de variável de recurso PHP.

Do C para o espaço de usuário e vice-versa

 class proxy extends mysqlnd_plugin_connection {
  public function connect($conn, $host, ...) {
    /* "pre" gancho */
    printf("Conectando-se ao servidor = '%s'\n", $host);
    debug_print_backtrace();
    return parent::connect($conn);
  }

  public function query($conn, $query) {
    /* "pós" gancho */
    $ret = parent::query($conn, $query);
    printf("Consulta = '%s'\n", $query);
    return $ret;
  }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Os usuários de PHP devem ser capazes de chamar a implementação pai de um método substituído.

Como resultado de se criar sub-classes, é possível refinar apenas métodos selecionados e pode-se optar por ter ganchos "pré" ou "pós".

Classe integrada: mysqlnd_plugin_connection::connect()

/*  my_mysqlnd_plugin_classes.c */

 PHP_METHOD("mysqlnd_plugin_connection", connect) {
  /* ... simplificada! ... */
  zval* mysqlnd_rsrc;
  MYSQLND* conn;
  char* host; int host_len;
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs",
    &mysqlnd_rsrc, &host, &host_len) == FAILURE) {
    RETURN_NULL();
  }
  ZEND_FETCH_RESOURCE(conn, MYSQLND* conn, &mysqlnd_rsrc, -1,
    "Mysqlnd Connection", le_mysqlnd_plugin_conn);
  if (PASS == org_methods.connect(conn, host, /* simplificado! */ TSRMLS_CC))
    RETVAL_TRUE;
  else
    RETVAL_FALSE;
}


Oracle OCI8

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Testing
    • Configurações em Execução
  • Constantes pré-definidas
  • Exemplos
  • OCI8 Connection Handling and Connection Pooling
  • OCI8 Fast Application Notification (FAN) Support
  • OCI8 Transparent Application Failover (TAF) Support
  • OCI8 and DTrace Dynamic Tracing
  • Supported Datatypes
  • Funções OCI8
    • oci_bind_array_by_name — Binds a PHP array to an Oracle PL/SQL array parameter
    • oci_bind_by_name — Binds a PHP variable to an Oracle placeholder
    • oci_cancel — Cancels reading from cursor
    • oci_client_version — Returns the Oracle client library version
    • oci_close — Closes an Oracle connection
    • oci_commit — Commits the outstanding database transaction
    • oci_connect — Connect to an Oracle database
    • oci_define_by_name — Associates a PHP variable with a column for query fetches
    • oci_error — Returns the last error found
    • oci_execute — Executes a statement
    • oci_fetch_all — Fetches multiple rows from a query into a two-dimensional array
    • oci_fetch_array — Returns the next row from a query as an associative or numeric array
    • oci_fetch_assoc — Returns the next row from a query as an associative array
    • oci_fetch_object — Returns the next row from a query as an object
    • oci_fetch_row — Returns the next row from a query as a numeric array
    • oci_fetch — Fetches the next row from a query into internal buffers
    • oci_field_is_null — Checks if a field in the currently fetched row is null
    • oci_field_name — Returns the name of a field from the statement
    • oci_field_precision — Tell the precision of a field
    • oci_field_scale — Tell the scale of the field
    • oci_field_size — Returns field's size
    • oci_field_type_raw — Tell the raw Oracle data type of the field
    • oci_field_type — Returns a field's data type name
    • oci_free_descriptor — Frees a descriptor
    • oci_free_statement — Frees all resources associated with statement or cursor
    • oci_get_implicit_resultset — Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets
    • oci_lob_copy — Copies large object
    • oci_lob_is_equal — Compares two LOB/FILE locators for equality
    • oci_new_collection — Allocates new collection object
    • oci_new_connect — Connect to the Oracle server using a unique connection
    • oci_new_cursor — Allocates and returns a new cursor (statement handle)
    • oci_new_descriptor — Initializes a new empty LOB or FILE descriptor
    • oci_num_fields — Returns the number of result columns in a statement
    • oci_num_rows — Returns number of rows affected during statement execution
    • oci_parse — Prepares an Oracle statement for execution
    • oci_password_change — Changes password of Oracle's user
    • oci_pconnect — Connect to an Oracle database using a persistent connection
    • oci_register_taf_callback — Register a user-defined callback function for Oracle Database TAF
    • oci_result — Returns field's value from the fetched row
    • oci_rollback — Rolls back the outstanding database transaction
    • oci_server_version — Returns the Oracle Database version
    • oci_set_action — Sets the action name
    • oci_set_call_timeout — Sets a millisecond timeout for database calls
    • oci_set_client_identifier — Sets the client identifier
    • oci_set_client_info — Sets the client information
    • oci_set_db_operation — Sets the database operation
    • oci_set_edition — Sets the database edition
    • oci_set_module_name — Sets the module name
    • oci_set_prefetch_lob — Sets the amount of data prefetched for each CLOB or BLOB.
    • oci_set_prefetch — Sets number of rows to be prefetched by queries
    • oci_statement_type — Returns the type of a statement
    • oci_unregister_taf_callback — Unregister a user-defined callback function for Oracle Database TAF
  • OCICollection — The OCICollection class
    • OCICollection::append — Appends element to the collection
    • OCICollection::assign — Assigns a value to the collection from another existing collection
    • OCICollection::assignElem — Assigns a value to the element of the collection
    • OCICollection::free — Frees the resources associated with the collection object
    • OCICollection::getElem — Returns value of the element
    • OCICollection::max — Returns the maximum number of elements in the collection
    • OCICollection::size — Returns size of the collection
    • OCICollection::trim — Trims elements from the end of the collection
  • OCILob — A classe OCILob
    • OCILob::append — Appends data from the large object to another large object
    • OCILob::close — Closes LOB descriptor
    • OCILob::eof — Tests for end-of-file on a large object's descriptor
    • OCILob::erase — Erases a specified portion of the internal LOB data
    • OCILob::export — Exports LOB's contents to a file
    • OCILob::flush — Flushes/writes buffer of the LOB to the server
    • OCILob::free — Frees resources associated with the LOB descriptor
    • OCILob::getBuffering — Returns current state of buffering for the large object
    • OCILob::import — Imports file data to the LOB
    • OCILob::load — Returns large object's contents
    • OCILob::read — Reads part of the large object
    • OCILob::rewind — Moves the internal pointer to the beginning of the large object
    • OCILob::save — Saves data to the large object
    • OCILob::saveFile — Sinônimo de OCILob::import
    • OCILob::seek — Sets the internal pointer of the large object
    • OCILob::setBuffering — Changes current state of buffering for the large object
    • OCILob::size — Returns size of large object
    • OCILob::tell — Returns the current position of internal pointer of large object
    • OCILob::truncate — Truncates large object
    • OCILob::write — Writes data to the large object
    • OCILob::writeTemporary — Escreve um large object temporário
    • OCILob::writeToFile — Sinônimo de OCILob::export
  • OCI8 Obsolete Aliases and Functions
    • oci_internal_debug — Enables or disables internal debug output
    • ocibindbyname — Sinônimo de oci_bind_by_name
    • ocicancel — Sinônimo de oci_cancel
    • ocicloselob — Sinônimo de OCILob::close
    • ocicollappend — Sinônimo de OCICollection::append
    • ocicollassign — Sinônimo de OCICollection::assign
    • ocicollassignelem — Sinônimo de OCICollection::assignElem
    • ocicollgetelem — Sinônimo de OCICollection::getElem
    • ocicollmax — Sinônimo de OCICollection::max
    • ocicollsize — Sinônimo de OCICollection::size
    • ocicolltrim — Sinônimo de OCICollection::trim
    • ocicolumnisnull — Sinônimo de oci_field_is_null
    • ocicolumnname — Sinônimo de oci_field_name
    • ocicolumnprecision — Sinônimo de oci_field_precision
    • ocicolumnscale — Sinônimo de oci_field_scale
    • ocicolumnsize — Sinônimo de oci_field_size
    • ocicolumntype — Sinônimo de oci_field_type
    • ocicolumntyperaw — Sinônimo de oci_field_type_raw
    • ocicommit — Sinônimo de oci_commit
    • ocidefinebyname — Sinônimo de oci_define_by_name
    • ocierror — Sinônimo de oci_error
    • ociexecute — Sinônimo de oci_execute
    • ocifetch — Sinônimo de oci_fetch
    • ocifetchinto — Variante obsoleta de oci_fetch_array, oci_fetch_object, oci_fetch_assoc e oci_fetch_row
    • ocifetchstatement — Sinônimo de oci_fetch_all
    • ocifreecollection — Sinônimo de OCICollection::free
    • ocifreecursor — Sinônimo de oci_free_statement
    • ocifreedesc — Sinônimo de OCILob::free
    • ocifreestatement — Sinônimo de oci_free_statement
    • ociinternaldebug — Sinônimo de oci_internal_debug
    • ociloadlob — Sinônimo de OCILob::load
    • ocilogoff — Sinônimo de oci_close
    • ocilogon — Sinônimo de oci_connect
    • ocinewcollection — Sinônimo de oci_new_collection
    • ocinewcursor — Sinônimo de oci_new_cursor
    • ocinewdescriptor — Sinônimo de oci_new_descriptor
    • ocinlogon — Sinônimo de oci_new_connect
    • ocinumcols — Sinônimo de oci_num_fields
    • ociparse — Sinônimo de oci_parse
    • ociplogon — Sinônimo de oci_pconnect
    • ociresult — Sinônimo de oci_result
    • ocirollback — Sinônimo de oci_rollback
    • ocirowcount — Sinônimo de oci_num_rows
    • ocisavelob — Sinônimo de OCILob::save
    • ocisavelobfile — Sinônimo de OCILob::import
    • ociserverversion — Sinônimo de oci_server_version
    • ocisetprefetch — Sinônimo de oci_set_prefetch
    • ocistatementtype — Sinônimo de oci_statement_type
    • ociwritelobtofile — Sinônimo de OCILob::export
    • ociwritetemporarylob — Sinônimo de OCILob::writeTemporary


Introdução

Essas funções permitem acessar bancos de dados Oracle. Suportam instruções SQL e PL/SQL. Recursos básicos incluem o controle de transações, vínculo de variáveis PHP em placeholders Oracle, além do suporte aos tipos de objetos grandes (LOB) e coleções. O recursos de escalabilidade da Oracle, como o Database Resident Connection Pooling (DRCP) e resultados em cache também são suportados.


Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Testing
  • Configurações em Execução


Dependências

OCI8 3.0 is included with PHP 8. It is also available from » PECL. For PHP 7, use OCI8 2.2 from » PECL. OCI8 requires Oracle 10g or later Oracle client libraries.

If the Oracle Database is on the same machine as PHP, the database software already contains the necessary libraries and header files. When PHP is on a different machine, use the free » Oracle Instant Client libraries.

To use Oracle Instant Client, install the Basic or Basic Light Oracle Instant Client ZIP file, RPM package, or DMG package. When building OCI8 from source code, also install the Instant Client SDK.

You must run PHP with the same, or a more recent, version of the Oracle libraries that OCI8 was built with.

Nota:

Oracle's standard client-server network interoperability allows connections between different versions of Oracle Client and Oracle Database. For certified configurations see Oracle Support's Doc ID 207303.1. In summary, Oracle Client 19, 18 and 12.2 can connect to Oracle Database 11.2 or greater. Oracle Client 12.1 can connect to Oracle Database 10.2 or greater. Oracle Client 11.2 can connect to Oracle Database 9.2 or greater.

Nota:

Full OCI8 feature support is only available when using the most recent versions of the Oracle client libraries and database.


Instalação

Configurando o PHP com o OCI8

Consulte a seção anterior sobre requisitos antes de configurar o OCI8.

Antes de inicializar o servidor web, o OCI8 tipicamente requer várias variáveis de ambiente Oracle (veja abaixo) para localizar bibliotecas, apontar para arquivos de configuração e definir algumas propriedades básicas como o conjunto de caracteres utilizado pelas bibliotecas Oracle. As variáveis devem ser definidas antes que qualquer processo PHP inicie.

O binário PHP deve ter sido construído com a mesma versão principal, ou mais recente, das bilbiotecas Oracle com as quais foi configurado. Por exemplo, se o OCI8 estiver utilizando as bilbiotecas Oracle versão 19, o PHP também deve ser construído e executado com as bibliotecas Oracle 19. Aplicações PHP podem se conectar a outras versões de banco de dados Oracle, já que a Oracle tem compatibilidade cliente-servidor com versões diferentes.

Instalando OCI8 com PECL Usando o Comando pecl

A extensão OCI8 pode ser adicionada a uma instalação PHP existente usando o repositório » PECL.

  • Se estiver por trás de um firewall, defina o proxy PEAR, por exemplo:

    pear config-set http_proxy http://my-proxy.example.com:80/

  • Execute

    pecl install oci8

    Para o PHP 7, use pecl install oci8-2.2.0

  • Quando solicitado, entre o valor de $ORACLE_HOME ou instantclient,/caminho/para/biblioteca/instant/client.

    Nota: Não use nomes de variáveis como $ORACLE_HOME ou $HOME porque o pecl não irá interpretá-las. Em vez disso, informa um caminho expandido, por exemplo /opt/oracle/product/19c/dbhome_1 ou instantclient,/Users/myname/Downloads/instantclient_19_8.

  • Se ocorrer um erro do tipo oci8_dtrace_gen.h: No such file or directory, significa que o PHP foi compilado com Rastreamento Dinâmico DTrace habilitado. Instale usando:

    $ export PHP_DTRACE=yes
$ pecl install oci8

  • Edite o arquivo php.ini e adicione a linha:

    extension=oci8.so

    Certifique-se que a diretiva extension_dir do php.ini esteja definida para o diretório onde o arquivo oci8.so tenha sido instalado.

Instalando OCI8 com PECL Usando phpize

Para instalar o OCI8 em uma instalação PHP existente quando o comando pecl não estiver disponível, baixe manualmente o pacote OCI8 » PECL, ex.: oci8-3.0.0.tgz.

  • Extraia o pacote:

    tar -zxf oci8-3.0.0.tgz
cd oci8-3.0.0

  • Prepare o pacote:

    phpize

  • Configure o pacote, usando $ORACLE_HOME ou Instant Client

    ./configure -with-oci8=shared,$ORACLE_HOME

    ou

    ./configure -with-oci8=shared,instantclient,/caminho/para/biblioteca/instant/client

  • Instale o pacote:

    make install

  • Se ocorrer um erro do tipo oci8_dtrace_gen.h: No such file or directory, significa que o PHP foi compilado com Rastreamento Dinâmico DTrace habilitado. Execute novamente os comandos configure e make depois de definir esta variável de ambiente:

    $ export PHP_DTRACE=yes

  • Edite o arquivo php.ini e adicione a linha:

    extension=oci8.so

    Certifique-se que a diretiva extension_dir do php.ini esteja definida para o diretório onde o arquivo oci8.so tenha sido instalado.

Instalando o OCI8 como uma Extensão Compartilhada ao Compilar o PHP

Se o PHP está sendo compilado a partir do código-fonte, a opção de configuração shared pode ser usada para construir o OCI8 como uma biblioteca compartilhada que pode ser carregada dinamicamente no PHP. Construir uma extensão compartilhada permite que o OCI8 seja atualizado facilmente sem impactar o restante do PHP.

Configure o OCI8 usando uma das opções de configuração a seguir.

  • Se as bibliotecas gratuitas do » Oracle Instant Client estiverem sendo usadas, execute:

    ./configure --with-oci8=shared,instantclient,/caminho/para/biblioteca/instant/client

    Se a Instant Client 12.2 (ou anterior) tiver sido instalada a partir de arquivos ZIP, certifique-se de criar as ligações simbólicas da biblioteca primeiro, por exemplo ln -s libclntsh.so.12.1 libclntsh.so.

    Se estiver sendo usada uma instalação baseada em RPM da Oracle Instant Client, a linha de configuração será parecida com:

    ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/<version>/client/lib

    Por exemplo, --with-oci8=shared,instantclient,/usr/lib/oracle/19.9/client/lib

  • Se um banco de dados Oracle ou uma instalação completa do Oracle Client estiverem sendo usados, execute:

    ./configure --with-oci8=shared,$ORACLE_HOME

    Certifique-se que o usuário sob o qual o servidor web esteja sendo executado (nobody, www) tenha acesso às bibliotecas, arquivos de inicialização e tnsnames.ora (se usado) no diretório $ORACLE_HOME. Com o Oracle 10gR2, pode ser necessário executar o utilitário $ORACLE_HOME/install/changePerm.sh para conceder acesso ao diretório.

Depois da configuração, siga o procedimento usual de compilação do PHP, ex.: make install. A biblioteca da extensão compartilhada OCI8 oci8.so será criada. Pode ser necessário movê-la manualmente para o diretório das extensões PHP, especificado pela opção extension_dir no arquivo php.ini.

Para completar a instalação do OCI8, edite o php.ini e adicione a linha:

extension=oci8.so

Instalando o OCI8 como um Extensão Compilada Estaticamente ao Compilar o PHP

Se o PHP estiver sendo compilado a partir do código-fonte, pode-se configurá-lo para incluir o OCI8 como uma extensão estática usando uma das seguintes opções de configuração.

  • Se o Oracle Instant Client estiver sendo utilizado, execute:

    ./configure --with-oci8=instantclient,/caminho/para/biblioteca/instant/client

  • Se um banco de dados Oracle ou uma instalação completa do Oracle Client estiverem sendo usados, execute:

    ./configure --with-oci8=$ORACLE_HOME

Depois da configuração, siga o procedimento usual de compilação do PHP, ex.: make install. Após a compilação bem sucedida, não é necessário incluir oci8.so ao php.ini. Nenhum passo adicional de compilação é requerido.

Instalando o OCI8 no Windows

A extensão OCI8 pode ser adicionada a uma instalação PHP existente usando as DLLs do repositório » PECL ou as bibliotecas no diretório ext da instalação do PHP.

Com as bibliotecas Oracle 12c (ou mais recentes), ative uma das linhas extension=php_oci8_12c.dll, extension=php_oci8_11g.dll ou extension=php_oci8.dll do php.ini. Apenas uma dessas DLLs pode ser habilitada de cada vez. DLLs com versões maiores podem conter mais funcionalidades. Pode ser que nem todas as DLLs estejas disponíveis para todas as versões do PHP. Certifique-se que extension_dir esteja definido para o diretório contendo as DLLs de extensões do PHP.

Se o Instant Client estiver sendo utilizado, defina a variável de ambiente do sistema PATH para o diretório da biblioteca Oracle.

Configurando o Ambiente Oracle

Antes de usar esta extensão, certifique-se que as variáveis de ambiente Oracle estajam adequadamente definidas para o usuário sob o qual o servidor web esteja sendo executado. Se o servidor web estiver sendo automaticamente iniciado quando o sistema é ligado, garanta que o ambiente em tempo de inicialização também esteja configurado corretamente.

Nota:

Não defina as variáveis de ambiente Oracle usando putenv() em um script PHP porque as bilbiotecas Oracle podem estar carregadas e inicializadas antes que o script seja executado. Variáveis definidas com putenv() podem causar conflitos, travamentos ou comportamento imprevisível. Algumas funções podem funcionar mas outras podem dar erros sutis. As variáveis devem ser definidas antes que o servidor web seja iniciado.

No Linux Red Hat e variantes, exporte as variáveis no final do arquivo /etc/sysconfig/httpd. Outros sistemas com Apache 2 pode usar um script envvars no diretório bin do Apache. Uma terceira opção, a diretiva SetEnv do Apache no arquivo httpd.conf, pode funcionar em alguns sistemas mas é sabido que isto é insuficiente em outros.

Para verificar que as variáveis de ambiente estão definidas corretamente, use phpinfo() e verifique se a seção Environment (não a Apache Environment) contém as variáveis esperadas.

As variáveis que devem ser necessárias estão incluídas na tabela a seguir. Consulte a documentação da Oracle para mais informação sobre todas as variáveis disponíveis.

Variáveis de Ambiente Oracle Comuns
Nome | Propósito
ORACLE_HOME | Contém o diretório da instalação completa do Banco de dados Oracle. Não defina esta variável ao usar o Oracle Instant Client pois é desnecessário e pode causar problemas de instalação.
ORACLE_SID | Contém o nome do banco de dados na máquina local ao qual a ser conectado. Não há necessidade de definir esta variável se o Oracle Instant Client estiver sendo usado, ou passe sempre o parâmetro de conexão para a função oci_connect().
LD_LIBRARY_PATH | Defina esta variável (ou sua equivalente dependendo da plataforma, como LIBPATH ou SHLIB_PATH) para a localização das bibliotecas Oracle libraries, por exemplo $ORACLE_HOME/lib ou /usr/lib/oracle/18.5/client/lib. Note que com arquivos ZIP do Instant Client no Linux é mais confiável usar ldconfig, consulte as instruções de instalação do Instant Client. Com o Instant Client 19 (ou posterior) em arquivos RPM, ldconfig é executado automaticamente. Alguns usuários utilizam LD_PRELOAD no lugar de LD_LIBRARY_PATH.
NLS_LANG | Esta é a variável primária para definir o conjunto de caracteres e informação de globalização usados pelas bibliotecas Oracle.
ORA_SDTZ | Define o fuso horário da sessão Oracle.
TNS_ADMIN | Contém o diretório onde os arquivos de configuração do Oracle Net Services como tnsnames.ora e sqlnet.ora são mantidos. Não é necessária se a string de conexão da função oci_connect() usa a sintexe de nomes Easy Connect como localhost/XE. Não é necessária se os arquivos de configuração de rede estiverem em uma das localizações padrões como /usr/lib/oracle/VERSION/client/lib/network/admin, $ORACLE_HOME/network/admin ou /etc.
Variáveis de ambiente utilizadas com menor frequência incluem TWO_TASK, ORA_TZFILE e as várias configuração de globalização Oracle como as variáveis NLS* e ORA_NLS_*.

Solução de Problemas

O problema mais comum na instalação do OCI8 é não ter o ambiente Oracle definido corretamente. Isto tipicamente aparece como um problema ao usar oci_connect() ou oci_pconnect(). O erro pode ser gerado pelo PHP, como Call to undefined function oci_connect(), ou pelo Oracle, como ORA-12705, ou até um travamento do Apache. Verifique se os arquivos de registro do Apache contêm erros de inicialização e consulte as seções acima para resolver este problema.

Enquanto erros de rede como ORA-12154 ou ORA-12514 indicam um problema de nome ou configuração de rede Oracle, a causa raiz pode ser o ambiente PHP incorretamente configurado e a incapacidade das bibliotecas Oracle em localizar o arquivo de configuração tnsnames.ora.

No Windows, múltiplas versões do Oracle instaladas em uma máquina pode facilmente gerar conflitos de bilbiotecas a menos que se tenha cuidado garantindo que o PHP usa apenas a versão correta do Oracle.

Um utilitário para examinar que bibliotecas estão sendo procuradas e carregadas pode ajudar a resolver problemas de bibliotecas ausentes ou conflitantes, particularmente no Windows.

Nota: Se o servidor web não iniciar ou travar na inicialização

Verifique que o Apache foi construído com a biblioteca pthread:

# ldd /www/apache/bin/httpd
  libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
  libm.so.6 => /lib/libm.so.6 (0x4002f000)
  libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
  libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
  libc.so.6 => /lib/libc.so.6 (0x4007e000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Se libpthread não estiver listada, reinstale o Apache:

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Note que em alguns sistemas como UnixWare, o nome é libthread em vez de libpthread. PHP e Apache devem ser configurados com EXTRA_LIBS=-lthread.


Testing

The OCI8 test suite is in ext/oci8/tests. After OCI8 tests are run this directory will also contain logs of any failures.

Before running PHP's tests, edit details.inc and set $user, $password and the $dbase connection string. The OCI8 test suite has been developed using the SYSTEM account. Some tests will fail if the test user does not have equivalent permissions.

If Oracle Database Resident Connection Pooling is being tested, set $test_drcp to true and ensure the connection string uses an appropriate DRCP pooled server.

An alternative to editing details.inc is the set environment variables, for example:

    $ export PHP_OCI8_TEST_USER=system
    $ export PHP_OCI8_TEST_PASS=oracle
    $ export PHP_OCI8_TEST_DB=localhost/XE
    $ export PHP_OCI8_TEST_DRCP=FALSE
Note in some shells these variables are not propagated correctly to the PHP process and tests will fail to connect if this method is used.

Next, set any necessary environment for the Oracle database. If you are running PHP on the same machines as Oracle Database, you can run:

    $ . /usr/local/bin/oraenv

With Oracle 11gR2 XE do:

    $ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

Some shells require that php.ini has E in the variables_order parameter, for example:

    variables_order = "EGPCS"

Run all the PHP tests with:

    $ cd your_php_src_directory
    $ make test
or run only the OCI8 tests with
    $ cd your_php_src_directory
    $ make test TESTS=ext/oci8

When the tests have completed, review any test failures. On slow systems, some tests may take longer than the default test timeout in run-tests.php. To correct this, set the environment variable TEST_TIMEOUT to a larger number of seconds.

On fast machines with a local database configured for light load (e.g. Oracle 11gR2 XE) some tests might fail with ORA-12516 or ORA-12520 errors. To prevent this, increase the database PROCESSES parameter using the following steps:

Connect as the oracle software owner:

    $ su - oracle

Set the necessary Oracle environment with oracle_env.sh or oraenv, as described above.

Start the SQL*Plus command line tool and increase PROCESSES

    $ sqlplus / as sysdba
    SQL> alter system set processes=100 scope=spfile

Restart the database:

    SQL> startup force


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

OCI8 Configuration Options
Nome | Padrão | Modificável | Registro de Alterações
oci8.connection_class | "" | INI_ALL |
oci8.default_prefetch | "100" | INI_SYSTEM |
oci8.events | Off | INI_SYSTEM |
oci8.max_persistent | "-1" | INI_SYSTEM |
oci8.old_oci_close_semantics | Off | INI_SYSTEM | Deprecated as of PHP 8.1.0.
oci8.persistent_timeout | "-1" | INI_SYSTEM |
oci8.ping_interval | "60" | INI_SYSTEM |
oci8.prefetch_lob_size | "0" | INI_SYSTEM | Available since PECL OCI8 3.2.
oci8.privileged_connect | Off | INI_SYSTEM |
oci8.statement_cache_size | "20" | INI_SYSTEM |

Aqui está uma breve explicação das diretivas de configuração.

oci8.connection_class string

This user defined text should always be set when using Oracle Database Resident Connection Pooling (DRCP). It allows sub-partitioning of the DRCP connection pool, allowing OCI8 persistent connections from an application to reuse database sessions from a previous PHP script, giving better scalability. When an application uses a database pooled process previously used with a different connection class, the session settings such as the default Oracle date format are reset. This prevents accidental sharing of information between different applications.

The value can be set at runtime with ini_set() prior to connecting.

To use DRCP, OCI8 must be linked with Oracle 11g (or later) libraries and the database must be Oracle 11g (or later). The DRCP connection pool must be enabled in the database, the oci8.connection_class should be set to the same string for all web servers running the same application, and the OCI8 connection string must specify to use a pooled server. The application should use persistent connections.

oci8.default_prefetch int

This option sets the default number of extra rows that will be fetched and cached automatically whenever a low-level request for data from the database is made. Setting a value of 0 turns off prefetching.

The prefetch value does not alter the number of rows that functions like oci_fetch_array() return to the user; the prefetching and caching of rows is handled internally in OCI8.

The value can be set per-statement with oci_set_prefetch() prior to statement execution.

When using Oracle Database 12c (or later), the prefetch value set by PHP can be overridden by Oracle's client oraaccess.xml configuration file. Refer to Oracle documentation for more detail.

Nota: A larger prefetch can result in improved performance, at the cost of some increased memory usage. For queries that return large amounts of data, the performance benefit can be significant.

oci8.events bool

Using On allows PHP to be notified of database Fast Application Notification (FAN) events.

Without FAN, when a database instance or machine node fails unexpectedly, PHP applications may be blocked waiting for a database response until a TCP timeout expires. With FAN events, PHP applications are quickly notified of failures that affect their established database connections. The OCI8 extension will clean up unusable connections in the persistent connection cache.

When using On, the database must also be configured to post FAN events.

FAN support is available when OCI8 is linked with Oracle 10gR2 (or later) libraries and connected to Oracle Database 10gR2 (or later).

oci8.max_persistent int

The maximum number of persistent OCI8 connections per PHP process. Setting this option to -1 means that there is no limit.

oci8.old_oci_close_semantics bool

This option controls oci_close() behaviour. Enabling it means that oci_close() will do nothing; the connection will not be closed until the end of the script. This is for backward compatibility only. If you find that you need to enable this setting, you are strongly encouraged to adjust the oci_close() calls in your application instead of enabling this option.

oci8.persistent_timeout int

The maximum number of seconds that a PHP process is allowed to keep an idle persistent connection open. Setting this option to -1 means that idle persistent connections will be retained until the PHP process terminates or the connection is explicitly closed with oci_close().

Nota: In PHP, the expiry of idle resources is not alarm-based. It occurs when PHP finishes processing a script and checks the last-used timestamp of resources. Hence there is a paradox that idle connections can only be closed when there is some activity (though not necessarily OCI8 related) in the PHP process. If there is more than one PHP process then each must individually be activated in order to trigger expiry of its idle resources. The introduction of Database Resident Connection Pooling (DRCP) in Oracle 11g resolves the memory and resource issues that oci8.max_persistent and oci8.persistent_timeout previously attempted to overcome.

oci8.ping_interval int

The number of seconds that must pass before issuing a ping during oci_pconnect(). A ping ensures that the database connection is valid. When set to 0, persistent connections will be pinged every time oci_pconnect() is called. To disable pings completely, set this option to -1.

Nota: Disabling pings allows oci_pconnect() to operate at the highest efficiency, but PHP may not be able to detect unusable connections, such as caused by network dropout, or if the Oracle database has gone down since PHP connected, until the connection is used later in the script. Consult the oci_pconnect() documentation for more information.

oci8.prefetch_lob_size int

This is a tuning parameter affecting internal buffering of LOB data. Increasing this value can improve the performance of fetching smaller LOBs by reducing round-trips between PHP and the database. Memory usage will change.

The value affects LOBs returned as OCILob instances and also those returned using OCI_RETURN_LOBS.

The value can be set per-statement with oci_set_prefetch_lob() prior to statement execution.

Nota: Use with Oracle Database 12.2 or later.

oci8.privileged_connect bool

This option allows connections to use the privileged external credentials OCI_SYSOPER or OCI_SYSDBA.

Nota: Seting this On can allow scripts on web servers running with the appropriate OS user privileges to connect as privileged database users without requiring a database password. This can be a security risk.

oci8.statement_cache_size int

This option enables statement caching, and specifies how many statements to cache. To disable statement caching just set this option to 0.

Statement caching removes the need to transmit the statement text to the database and removes the need to transmit any meta data about the statement back to PHP. This can significantly improve overall system performance in applications which reuse statements during the lifetime of a connection. Some extra database "cursors" may be held open under the assumption that statements will be reused.

Set this value to the size of the working set of statements used by your application. Setting too small a value can cause statements to be flushed from the cache before they are reused.

This option is of most use with persistent connections.

When using Oracle Database 12c (or later), this value can be overridden and automatically tuned by Oracle's client oraaccess.xml file. Refer to Oracle documentation for more detail.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Modos de função e métodos do OCI8
Constante | Descrição
OCI_ASSOC | Utilizado com oci_fetch_all() e oci_fetch_array() para obter os resultados em um array associativo.
OCI_BOTH | Utilizado com oci_fetch_all() e oci_fetch_array() para obter os resultados em um array com índices associativos e numéricos.
OCI_COMMIT_ON_SUCCESS | Modo de execução de instruções com oci_execute(). Automaticamente efetiva as alterações (commit) caso a instrução execute.
OCI_CRED_EXT | Utilizado com oci_connect() para ativar a autenticação Oracles' External ou do sistema operacional.
OCI_DEFAULT | Veja OCI_NO_AUTO_COMMIT.
OCI_DESCRIBE_ONLY | Modo de execução de instruções para oci_execute(). Utilize esse modo se deseja meta dados como os nomes de colunas mas não deseja trazer as linhas da consulta.
OCI_EXACT_FETCH | Obsoleto. Modo de execução de instruções. Utilizado quando a aplicação conhece previamente quantas linhas serão lidas. Este modo desliga o prefetching a partir do Oracle release 8. O cursor é cancelado depois da quantidade deseja de linhas é lida o que pode resultar em uma menor quantidade de recursos consumidos no lado do servidor.
OCI_FETCHSTATEMENT_BY_COLUMN | Modo padrão do oci_fetch_all().
OCI_FETCHSTATEMENT_BY_ROW | Modo alternativo do oci_fetch_all().
OCI_LOB_BUFFER_FREE | Utilizado com OCILob::flush para liberar os buffers associados.
OCI_NO_AUTO_COMMIT | Modo de execução de instruções para oci_execute(). A instrução não é efetivada automaticamente nesse modo (modo sem commit). Para a legibilidade de em código, utilize esse valor ao invés da constante antiga equivalente OCI_DEFAULT.
OCI_NUM | Utilizado com oci_fetch_all() e oci_fetch_array() para obter os resultados em um array enumerado.
OCI_RETURN_LOBS | Utilizado com oci_fetch_array() para obter o dado do LOB ao invés do descritor.
OCI_RETURN_NULLS | Utilizado com oci_fetch_array() para obter elementos vazios de array se o item da linha for null.
OCI_SEEK_CUR | Utilizado com OCILob::seek para configurar a posição de leitura.
OCI_SEEK_END | Utilizado com OCILob::seek para configurar a posição de leitura.
OCI_SEEK_SET | Utilizado com OCILob::seek para configurar a posição de leitura.
OCI_SYSDATE | Obsoleto.
OCI_SYSDBA | Utilizad com oci_connect() para conectar com o privilégio SYSDBA. A configuração php.ini oci8.privileged_connect precisa estar ativada.
OCI_SYSOPER | Utilizado com oci_connect() para conectar com o privilégio SYSOPER. A configuração php.ini oci8.privileged_connect precisa estar ativada.
OCI_TEMP_BLOB | Utilizada com OCILob::writeTemporary para indicar que um BLOB temporário deve ser criado.
OCI_TEMP_CLOB | Utilizad com OCILob::writeTemporary para indicar que um CLOB temporário deve ser criado.
Tipos Bind e Define para do OCI8
Constante | Descrição
OCI_B_BFILE | Utilizado com oci_bind_by_name() quando associando (binding) BFILEs.
OCI_B_BIN | Utilizado com oci_bind_by_name() para associar (bind) valores RAW.
OCI_B_BLOB | Utilizado com oci_bind_by_name() quando associando (binding) BLOBs.
OCI_B_BOL | Utilizado com oci_bind_by_name() para associar (bind) uma variável PL/SQL booleana.
OCI_B_CFILEE | Utilizado com oci_bind_by_name() quando associando (binding) CFILEs.
OCI_B_CLOB | Utilizado com oci_bind_by_name() quando associando (binding) CLOBs.
OCI_B_CURSOR | Utilizado com oci_bind_by_name() quando associando (binding) cursores, anteriormente alocados com oci_new_descriptor().
OCI_B_INT | Utilizado com oci_bind_array_by_name() para associar (bind) arrays de INTEGER.
OCI_B_NTY | Utilizado com oci_bind_by_name() quando associando (binding) tipos nomeados.
OCI_B_NUM | Utilizado com oci_bind_array_by_name() para associar (bind) arrays de NUMBER.
OCI_B_ROWID | Utilizado com oci_bind_by_name() quando associando (binding) ROWIDs.
SQLT_AFC | Utilizado com oci_bind_array_by_name() para associar (bind) arrays de CHAR.
SQLT_AVC | Utilizado com oci_bind_array_by_name() para associar (bind) arrays de VARCHAR2.
SQLT_BDOUBLE | Não suportado.
SQLT_BFILEE | O mesmo que OCI_B_BFILE.
SQLT_BFLOAT | Não suportado.
SQLT_BIN | O mesmo que OCI_B_BIN.
SQLT_BLOB | O mesmo que OCI_B_BLOB.
SQLT_BOL | O mesmo que OCI_B_BOL.
SQLT_CFILEE | O mesmo que OCI_B_CFILEE.
SQLT_CHR | Utilizado com oci_bind_array_by_name() para associar (bind) arrays de VARCHAR2. Também utilizado com oci_bind_by_name().
SQLT_CLOB | O mesmo que OCI_B_CLOB.
SQLT_FLT | Utilizado com oci_bind_array_by_name() para associar (bind) arrays de FLOAT.
SQLT_INT | O mesmo que OCI_B_INT.
SQLT_LBI | Utilizado com oci_bind_by_name() para associar (bind) valores LONG RAW.
SQLT_LNG | Utilizado com oci_bind_by_name() para associar (bind) valores LONG.
SQLT_LVC | Utilizado com oci_bind_array_by_name() para associar (bind) arrays de LONG VARCHAR.
SQLT_NTY | O mesmo que OCI_B_NTY.
SQLT_NUM | O mesmo que OCI_B_NUM.
SQLT_ODT | Utilizado com oci_bind_array_by_name() para associar (bind) arrays de LONG.
SQLT_RDD | O mesmo que OCI_B_ROWID.
SQLT_RSET | O mesmo que OCI_B_CURSOR.
SQLT_STR | Utilizado com oci_bind_array_by_name() para associar (bind) arrays de STRING.
SQLT_UIN | Não suportado.
SQLT_VCS | Utilizado com oci_bind_array_by_name() para associar (bind) arrays de VARCHAR.
Tipos de descritores do OCI8
Constante | Descrição
OCI_DTYPE_FILE | Esse indicador faz oci_new_descriptor() inicializar um descritor FILE.
OCI_DTYPE_LOB | Esse indicador faz oci_new_descriptor() inicializar um descritor LOB.
OCI_DTYPE_ROWID | Esse indicador faz oci_new_descriptor() inicializar um descritor ROWID.
OCI_D_FILE | O mesmo que OCI_DTYPE_FILE.
OCI_D_LOB | O mesmo que OCI_DTYPE_LOB.
OCI_D_ROWID | O mesmo que OCI_DTYPE_ROWID.


Exemplos

Estes exemplos utilizam o usuário HR, que faz parte do esquema de exemplo "Human Resources" fornecido com o banco de dados Oracle. A conta precisa ser desbloqueada e a senha redefinida antes de ser usada.

Os exemplos se conectam ao banco de dados XE na máquina local. Modifique a string de conexão para o banco de dados local antes de executar os exemplos.

Exemplo #1 Consulta básica

Este exemplo mostra consulta e resultados. Declaração no OCI8 usam passos na sequência preparação-execução-recebimento.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Prepara a declaração
$stid = oci_parse($conn, 'SELECT * FROM departments');
if (!$stid) {
$e = oci_error($conn);
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Executa a lógica da consulta
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Recebe os resultados da consulta
print "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
print "<tr>\n";
foreach ($row as $item) {
print " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
}
print "</tr>\n";
}
print "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #2 Inserindo com variáveis vinculadas

Vincular variáveis melhora o desempenho por permitir o reúso de contextos de execução e de caches. Vinculação de variáveis melhoram a segurança pois impedem alguns tipos de problemas de Injeção SQL.

<?php

// Antes de executar, cria a tabela:
// CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO MYTABLE (mid, myd) VALUES(:myid, :mydata)');

$id = 60;
$data = 'Alguns dados';

oci_bind_by_name($stid, ':myid', $id);
oci_bind_by_name($stid, ':mydata', $data);

$r = oci_execute($stid); // executa e envia

if ($r) {
print "Uma linha inserida";
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #3 Vinculando em cláusula WHERE de uma consulta

Este exemplo mostra uma simples vinculação de valor escalar.

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE department_id = :didbv ORDER BY last_name';
$stid = oci_parse($conn, $sql);
$didbv = 60;
oci_bind_by_name($stid, ':didbv', $didbv);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
echo $row['LAST_NAME'] ."<br>\n";
}

// Saída:
// Austin
// Ernst
// Hunold
// Lorentz
// Pataballa

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #4 Inserindo e recebendo um CLOB

Para grande quantidade de dados, use os tipos objeto binário longo (BLOB) ou objeto caractere longo (CLOB). Este exemplo usa CLOB.

<?php

// Antes de executar, cria a tabela:
// CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$mykey = 12343; // chave arbitrária para este exemplo;

$sql = "INSERT INTO mytable (mykey, myclob)
VALUES (:mykey, EMPTY_CLOB())
RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_NO_AUTO_COMMIT);
$clob->save("Uma string muito longa");

oci_commit($conn);

// Recebendo dados CLOB

$query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
// Em uma repetição, liberar a variável grande antes do 2º recebimento reduz o pico de uso de memória do PHP
unset($row);
}
print '</table>';

?>

Exemplo #5 Usando uma função armazenada PL/SQL

Deve-se vincular uma variável para o valor de retorno e opcionalmente para quaisquer argumentos de função PL/SQL.

<?php

/*
Antes de executar o programa PHP, crie uma função armazenada no
SQL*Plus ou SQL Developer:

CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
BEGIN
RETURN p * 3;
END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p = 8;

$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);
oci_bind_by_name($stid, ':r', $r, 40);

oci_execute($stid);

print "$r\n"; // mostra 24

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #6 Usando um procedimento armazenado PL/SQL

Com procedimentos armazenados, deve-se vincular variáveis, para quaisquer argumentos.

<?php

/*
Antes de executar o programa PHP, crie um procedimento armazenado no
SQL*Plus ou SQL Developer:

CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
BEGIN
p2 := p1 * 2;
END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 = 8;

$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n"; // mostra 16

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #7 Chamando uma função PL/SQL que retorna um REF CURSOR

Cada valor retornado da consulta é um REF CURSOR que permite o recebimento a partir dele.

<?php
/*
Crie a função armazenada PL/SQL desta forma:

CREATE OR REPLACE FUNCTION myfunc(p1 IN NUMBER) RETURN SYS_REFCURSOR AS
rc SYS_REFCURSOR;
BEGIN
OPEN rc FOR SELECT city FROM locations WHERE ROWNUM < p1;
RETURN rc;
END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT myfunc(5) AS mfrc FROM dual');
oci_execute($stid);

echo "<table border='1'>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC))) {
echo "<tr>\n";
$rc = $row['MFRC'];
oci_execute($rc); // o valor da coluna retornado da consulta é um cursor 'ref'
while (($rc_row = oci_fetch_array($rc, OCI_ASSOC))) {
echo " <td>" . $rc_row['CITY'] . "</td>\n";
}
oci_free_statement($rc);
echo "</tr>\n";
}
echo "</table>\n";

// Saída:
// Beijing
// Bern
// Bombay
// Geneva

oci_free_statement($stid);
oci_close($conn);

?>


OCI8 Connection Handling and Connection Pooling

Connection Functions

The OCI8 extension provides three different functions for connecting to Oracle. The standard connection function is oci_connect(). This creates a connection to an Oracle database and returns a resource used by subsequent database calls.

Connecting to an Oracle server is a reasonably expensive operation in terms of the time that it takes to complete. The oci_pconnect() function uses a persistent cache of connections that can be re-used across different script requests. This means that the connection overhead will typically only occur once per PHP process (or Apache child).

If the application connects to Oracle using a different set of database credentials for each web user, the persistent cache employed by oci_pconnect() will become less useful as the number of concurrent users increases, to the point where it may start to adversely affect the overall performance of the Oracle server due to maintaining too many idle connections. If the application is structured in this way, it is recommended to either tune the application using the oci8.max_persistent and oci8.persistent_timeout configuration settings (these will give control over the persistent connection cache size and lifetime), use Oracle Database Resident Connection Pooling (in Oracle Database 11g or later), or use oci_connect() instead.

Both oci_connect() and oci_pconnect() employ a connection cache; if multiple calls to oci_connect() use the same parameters in a given script, the second and subsequent calls return the existing connection handle. The cache used by oci_connect() is cleaned up at the end of the script run, or when the connection handle is explicitly closed. The function oci_pconnect() has similar behavior, although its cache is maintained separately and survives between HTTP requests.

This caching feature means the two handles are not transactionally isolated (they are in fact the same connection handle, so there is no isolation of any kind). If the application needs two separate, transactionally isolated connections, then use oci_new_connect().

The oci_pconnect() cache is cleared and any database connections closed when the PHP process terminates, so effective use of persistent connections requires that PHP be an Apache module or used with FPM, or similar. Persistent connections will not have any benefits over oci_connect() when PHP is used with CGI or via the command-line.

The function oci_new_connect() always creates a new connection to the Oracle server, regardless of what other connections might already exist. High traffic web applications should avoid using oci_new_connect(), especially in the busiest sections of the application.

Persistent connections can be closed by the user, allowing greater control over connection resource usage. Persistent connections will now also be closed automatically when there is no PHP variable referencing them, such as at the end of scope of a PHP user function. This will rollback any uncommitted transaction. These changes to persistent connections make them behave similarly to non-persistent connections, simplifying the interface, allowing for greater application consistency and predictability. Use oci8.old_oci_close_semantics set to On to retain the historical behavior.

The automatic re-establishment of PHP persistent connections after an Apache or FPM process respawns means Oracle Database LOGON triggers are only recommended for setting session attributes and not for per-application user connection requests.

DRCP Connection Pooling

PHP supports Oracle Database Resident Connection Pooling (DRCP). DRCP allows more efficient use of database machine memory and provides high scalability. No, or minimal, application changes are needed to use DRCP.

DRCP is suited for applications that connect using few database schemas and hold database connections open for a short period of time. Other applications should use Oracle's default Dedicated database server processes, or use Shared servers.

DRCP benefits all three connection functions, but gives the highest scalability when connections are created with oci_pconnect().

For DRCP to be available in OCI8, Oracle client libraries used by PHP and the version of the Oracle Database must both be 11g or greater.

Documentation on DRCP is found in several Oracle manuals. For example, see » Configuring Database Resident Connection Pooling in the Oracle documentation for usage information. A » DRCP white paper contains background information on DRCP.

To use DRCP, install the OCI8 extension and Oracle 11g (or later) libraries and then follow these steps:

  • As a privileged database administrator, use a program like SQL*Plus to start the connection pool in the database:

        SQL> execute dbms_connection_pool.start_pool;

  • Optionally use dbms_connection_pool.alter_param() to configure DRCP settings. The current pool settings can be queried from the DBA_CPOOL_INFO view.

  • Update the connection strings used. For PHP applications that currently connect using a Network Connect Name like MYDB:

        $c = oci_pconnect("myuser", "mypassword", "MYDB");

    modify the tnsnames.ora file and add a (SERVER=POOLED) clause, for example:

        MYDB = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=myhost.dom.com)
           (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales)
           (SERVER=POOLED)))

    Alternatively, modify the Easy Connect syntax in PHP and add :POOLED after the service name:

        $c = oci_pconnect("myuser", "mypassword", "myhost.dom.com:1521/sales:POOLED");

  • Edit php.ini and choose a connection class name. This name indicates a logical division of the connection pool and can be used to isolate pooling for separate applications. Any PHP applications with the same user name and connection class value will be able to share connections in the pool, giving greater scalability.

        oci8.connection_class = "MY_APPLICATION_NAME"

  • Run the application, connecting to the 11g (or later) database.

Nota:

Applications using Oracle Client libraries 10g that require the performance of persistent connections can reduce the amount of database server memory needed by using Oracle Shared servers (previously known as Multi Threaded Servers). Refer to Oracle documentation for information.

Nota:

Changing a password over DRCP connections will fail with the error ORA-56609: Usage not supported with DRCP. This is a documented restriction of Oracle Database 11g.


OCI8 Fast Application Notification (FAN) Support

FAN support gives fast connection failover, an Oracle Database high availability feature. This allows PHP OCI8 scripts to be notified when a database machine or database instance becomes unavailable. Without FAN, OCI8 can hang until a TCP timeout occurs and an error is returned, which might be several minutes. Enabling FAN in OCI8 can allow applications to detect errors and re-connect to an available database instance without the web user being aware of an outage.

FAN support is available when the Oracle client libraries that PHP links with and the Oracle Database are either version 10gR2 or later.

FAN benefits users of Oracle's clustering technology (RAC) because connections to surviving database instances can be immediately made. Users of Oracle's Data Guard with a broker will see the FAN events generated when the standby database goes online. Standalone databases will send FAN events when the database restarts.

For active connections, when a machine or database instance becomes unavailable, a connection failure error will be returned by the OCI8 extension function currently being called. On a subsequent PHP script re-connect, a connection to a surviving database instance will be established. The OCI8 extension also transparently cleans up any idle connections affected by a database machine or instance failure so PHP connect calls will establish a fresh connection without the script being aware of any service disruption.

When oci8.events is On, it is suggested to set oci8.ping_interval to -1 to disable pinging, since enabling FAN events provide pro-active connection management of idle connections made invalid by a service disruption.

To enable FAN support in PHP OCI8, build PHP OCI8 with Oracle 10gR2 or later libraries and then follow these steps:

  • As a privileged database administrator, use a program like SQL*Plus to enable the database service to post FAN events, for example:

        SQL> execute dbms_service.modify_service(
                   SERVICE_NAME        => 'sales',
                   AQ_HA_NOTIFICATIONS => TRUE);

  • Edit php.ini and add

        oci8.events = On

  • If the application does not already handle OCI8 error conditions, modify it to detect failures and take appropriate action. This may include re-connecting and re-executing statements.
  • Run the application, connecting to Oracle Database 10gR2 or later.


OCI8 Transparent Application Failover (TAF) Support

TAF is an Oracle Database feature that provides high availability. It enables PHP OCI8 applications to automatically reconnect to a preconfigured database when database connectivity fails due to instance or network failure.

In a configured Oracle Database system, TAF occurs when the PHP application detects that the database instance is down or unreachable. It establishes a connection to another node in an Oracle » RAC configuration, a hot standby database, or the same database instance itself. See » Oracle Call Interface Programmer's Guide for more information about OCI TAF.

An application callback can be registered with oci_register_taf_callback(). During failover, normal application processing stops and the registered callback is invoked. The callback notifies the application of the failover events. If the failover succeeds, normal processing will be resumed. If the failover aborts, any following database operations in the application will fail due to no connection being available.

When a connection fails over to another database, the callback can reset any necessary connection state, for example replaying any necessary ALTER SESSION commands if the database service did not have -failover_restore enabled.

An application callback can be removed by calling oci_unregister_taf_callback().

Configuring Transparent Application Failover

TAF can be configured on the PHP OCI8 side or in the database configuration. If both are configured, database-side settings take precedence.

Configure TAF in PHP OCI8 (the client side) by including the FAILOVER_MODE parameter in the CONNECT_DATA portion of a connect descriptor. See Configuring Transparent Application Failover in » Oracle Database Net Services Administrator's Guide for more information about client side configuration of TAF.

An example tnsnames.ora to configure TAF reconnecting to the same database instance:

    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = orclpdb1)
          (FAILOVER_MODE =
            (TYPE = SELECT)
            (METHOD = BASIC)
            (RETRIES = 20)
            (DELAY = 15))))

Alternatively configure TAF on the database side by modifying the target service with » srvctl (for RAC) or the » DBMS_SERVICE.MODIFY_SERVICE packaged procedure (for single instance databases).

Using TAF Callbacks in OCI8

A TAF callback is an application function that can be registered to be called during failover. It is called several times while re-establishing the application's connection.

Callback first occurs when a loss of connection is detected. This allows the application to act accordingly for the upcoming delay of the failover. If the failover is successful, the callback is invoked after connection is re-established and usable. At this time, the application can resynchronize session settings and take actions such as informing the user that failover occurred. If failover is unsuccessful, a callback occurs to inform the application that a failover did not take place and the connection is unusable.

The interface of a TAF user-defined callback function is as follows:

userCallbackFn(resource $connection, int $event, int $type): int

connection

The Oracle connection on which the TAF callback was registered via oci_register_taf_callback(). The connection is not valid until the failover completes successfully.

event

The failover event indicates the current status of the failover.

  • OCI_FO_BEGIN indicates that failover has detected a lost connection and failover is starting.

  • OCI_FO_END indicates successful completion of failover.

  • OCI_FO_ABORT indicates that failover was unsuccessful, and there is no option of retrying.

  • OCI_FO_ERROR also indicates that failover was unsuccessful, but it gives the application the opportunity to handle the error and return OCI_FO_RETRY to retry failover.

  • OCI_FO_REAUTH indicates that an Oracle user has been re-authenticated.

type

The failover type. This lets the callback know what type of failover the application has requested. The usual values are as follows:

  • OCI_FO_SESSION indicates that the user has requested only session failover. For example, if a user's connection is lost, then a new session is automatically created for the user on the backup. This type of failover does not attempt to recover SELECTs.

  • OCI_FO_SELECT indicates that the user has requested SELECT failover as well. It allows users with open cursors to continue fetching from them after failure.

return value

  • 0 indicates the failover steps should continue normally.

  • OCI_FO_RETRY indicates that the failover should be attempted again by Oracle. In case of an error while failing over to a new connection, TAF is able to retry the failover. Typically, the application code should sleep for a while before returning OCI_FO_RETRY.

The following example registers a TAF callback

<?php

// Define userspace callback
class MyClass {
public static $retry_count;
public static function TAFCallback($conn, $event, $type)
{
switch ($event) {
case OCI_FO_BEGIN:
printf(" Failing Over ... Please stand by\n");
printf(" Failover type was found to be %s \n",
(($type==OCI_FO_SESSION) ? "SESSION"
:(($type==OCI_FO_SELECT) ? "SELECT" : "UNKNOWN!")));
self::$retry_count = 0;
break;
case OCI_FO_ABORT:
// The application cannot continue using the database
printf(" Failover aborted. Failover will not take place.\n");
break;
case OCI_FO_END:
// Failover completes successfully. Inform users a failover occurs.
printf(" Failover ended ... resuming services\n");
break;
case OCI_FO_REAUTH:
printf(" Failed over user ... resuming services\n");
// Replay any ALTER SESSION commands associated with this connection
// eg. oci_parse($conn, ‘ALTER SESSION …’) ;
break;
case OCI_FO_ERROR:
// Stop retrying if we have already attempted for 20 times.
if (self::$retry_count >= 20)
return 0;
printf(" Failover error received. Sleeping...\n");
sleep(10);
self::$retry_count++;
return OCI_FO_RETRY; // retry failover
break;
default:
printf("Bad Failover Event: %d.\n", $event);
break;
}
return 0;
}
}

$fn_name = 'MyClass::TAFCallback';

$conn = oci_connect('hr', 'welcome', 'orcl');
$sysconn = oci_connect('system', 'oracle', 'orcl');

// Use a privileged connection to construct a SQL statement that will initiate failover
$sql = <<< 'END'
select unique 'alter system disconnect session '''||sid||','||serial#||''''
from v$session_connect_info
where sid = sys_context('USERENV', 'SID')
END;

$s = oci_parse($conn, $sql);
oci_execute($s);
$r = oci_fetch_array($s);
$disconnectssql = $r[0];

oci_register_taf_callback($conn, $fn_name); // Register TAFCallback to Oracle TAF

print "Parsing user query\n";
$sql = "select systimestamp from dual";
$stmt = oci_parse($conn, $sql);

// For example, if a connection loss occurs at this point, oci_execute() will
// detect the loss and failover begins. During failover, oci_execute() will
// invoke the TAF callback function several times. If the failover is successful,
// a new connection is transparently created and oci_execute() will continue as
// usual. The connection session settings can be reset in the TAF callback
// function. If the failover is aborted, oci_execute() will return an error
// because a valid connection is not available.

// Disconnect the user, which initiates failover
print "Disconnecting the user\n";
$discsql = oci_parse($sysconn, $disconnectssql);
oci_execute($discsql);

print "Executing user query\n";
$e = oci_execute($stmt);
if (!$e) {
$m = oci_error($stmt);
trigger_error("Could not execute statement: ". $m['message'], E_USER_ERROR);
}
$row = oci_fetch_array($stmt);
print $row[0] . "\n";

// do other SQL statements with the new connection, if it is valid
// $stmt = oci_parse($conn, . . .);

?>

Veja Também

  • oci_register_taf_callback()
  • oci_unregister_taf_callback()


OCI8 and DTrace Dynamic Tracing

OCI8 2.0 introduced static DTrace probes that can be used on operating systems that support DTrace. See DTrace Dynamic Tracing for an overview of PHP and DTrace.

Installing OCI8 with DTrace Support

To enable DTrace support in PHP OCI8, build OCI8 as a shared extension after setting PHP_DTRACE.

$ export PHP_DTRACE=yes
$ pecl install oci8

Edit php.ini, set extension_dir to the directory with the created oci8.so and also enable the extension by adding:

extension=oci8.so

If you install PHP OCI8 from PECL using phpize and configure (instead of pecl), you will still need to set PHP_DTRACE=yes. This is because the --enable-dtrace option will be ignored by the limited configure script of a PECL bundle.

See Installation of PECL extensions for general PECL installation instructions.

DTrace Static Probes in PHP OCI8

The following static probes are available in PHP OCI8
Probe Name | Probe Description | Probe Arguments
oci8-connect-entry | Initiated by oci_connect(), oci_pconnect() and oci_new_connect(). Fires before database connection is established. | char *username, char *dbname, char *charset, long session_mode, int persistent, int exclusive
oci8-connect-return | Fires at the end of connection. | void *connection
oci8-check-connection | Fires if an Oracle error might have caused the connection to become invalid. | void *connection, char *client_id, int is_open, long errcode, unsigned long server_status
oci8-sqltext | Fires when oci_parse() is executed. | void *connection, char *client_id, void *statement, char *sql
oci8-connection-close | Fires when the connection to the database is completely destroyed. | void *connection
oci8-error | Fires if an Oracle error occurs. | int status, long errcode
oci8-execute-mode | Fires at oci_execute() to show the execution mode. | void *connection, char *client_id, void *statement, unsigned int mode

These probes are useful for tracing OCI8 scripts.

The connection and statement are the pointers to internal structures used for tracking PHP connections and executed statements.

The client_id is the value set by oci_set_client_identifier().

Core PHP also has static probes. See DTrace Static Probes in Core PHP.

Internal Debugging DTrace Probes in OCI8
Probe Name
oci8-connect-expiry
oci8-connect-lookup
oci8-connect-p-dtor-close
oci8-connect-p-dtor-release
oci8-connect-type
oci8-sesspool-create
oci8-sesspool-stats
oci8-sesspool-type

These probes are useful for OCI8 maintainers. Refer to the OCI8 source code for arguments and to see when the will fire.

Listing DTrace Static Probes in PHP OCI8

To list available probes, start a PHP process and then run:

# dtrace -l

The output will be similar to:

   ID   PROVIDER            MODULE                          FUNCTION NAME
   [ . . . ]
   17 phpoci22116           oci8.so   php_oci_dtrace_check_connection oci8-check-connection
   18 phpoci22116           oci8.so                php_oci_do_connect oci8-connect-entry
   19 phpoci22116           oci8.so         php_oci_persistent_helper oci8-connect-expiry
   20 phpoci22116           oci8.so             php_oci_do_connect_ex oci8-connect-lookup
   21 phpoci22116           oci8.so  php_oci_pconnection_list_np_dtor oci8-connect-p-dtor-close
   22 phpoci22116           oci8.so  php_oci_pconnection_list_np_dtor oci8-connect-p-dtor-release
   23 phpoci22116           oci8.so                php_oci_do_connect oci8-connect-return
   24 phpoci22116           oci8.so             php_oci_do_connect_ex oci8-connect-type
   25 phpoci22116           oci8.so          php_oci_connection_close oci8-connection-close
   26 phpoci22116           oci8.so                     php_oci_error oci8-error
   27 phpoci22116           oci8.so         php_oci_statement_execute oci8-execute-mode
   28 phpoci22116           oci8.so              php_oci_create_spool oci8-sesspool-create
   29 phpoci22116           oci8.so            php_oci_create_session oci8-sesspool-stats
   30 phpoci22116           oci8.so            php_oci_create_session oci8-sesspool-type
   31 phpoci22116           oci8.so          php_oci_statement_create oci8-sqltext

The Provider column values consist of phpoci and the process id of the currently running PHP process.

The Function column refers to PHP's internal C implementation function names where each provider is located.

If a PHP process is not running, then no PHP probes will be shown.

DTrace with PHP OCI8 Example

This example shows the basics of the DTrace D scripting language.

Exemplo #1 user_oci8_probes.d for tracing all user-level PHP OCI8 Static Probes with DTrace

#!/usr/sbin/dtrace -Zs

#pragma D option quiet

php*:::oci8-connect-entry
{
    printf("%lld: PHP connect-entry\n", walltimestamp);
    printf("  credentials=\"%s@%s\"\n", arg0 ? copyinstr(arg0) : "", arg1 ? copyinstr(arg1) : "");
    printf("  charset=\"%s\"\n", arg2 ? copyinstr(arg2) : "");
    printf("  session_mode=%ld\n", (long)arg3);
    printf("  persistent=%d\n", (int)arg4);
    printf("  exclusive=%d\n", (int)arg5);
}

php*:::oci8-connect-return
{
    printf("%lld: PHP oci8-connect-return\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
}

php*:::oci8-connection-close
{
    printf("%lld: PHP oci8-connect-close\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
}

php*:::oci8-error
{
    printf("%lld: PHP oci8-error\n", walltimestamp);
    printf("  status=%d\n", (int)arg0);
    printf("  errcode=%ld\n", (long)arg1);
}

php*:::oci8-check-connection
{
    printf("%lld: PHP oci8-check-connection\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  is_open=%d\n", arg2);
    printf("  errcode=%ld\n", (long)arg3);
    printf("  server_status=%lu\n", (unsigned long)arg4);
}

php*:::oci8-sqltext
{
    printf("%lld: PHP oci8-sqltext\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  statement=0x%p\n", (void *)arg2);
    printf("  sql=\"%s\"\n", arg3 ? copyinstr(arg3) : "");
}

php*:::oci8-execute-mode
{
    printf("%lld: PHP oci8-execute-mode\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  statement=0x%p\n", (void *)arg2);
    printf("  mode=0x%x\n", arg3);
}

This script uses the -Z option to dtrace, allowing it to be run when there is no PHP process executing. If this option were omitted the script would immediately terminate when no PHP executable was running because it knows none of the probes to be monitored are in existence.

On multi-CPU machines the probe ordering might not appear to be sequential. This depends on which CPU was processing the probes, and how threads migrate across CPUs. Displaying probe time stamps helps reduce confusion.

The script traces all user-level PHP OCI8 static probe points throughout the duration of a running PHP script. Run the D script:

# ./user_oci8_probes.d

Run a PHP script or application. The monitoring D script will output each probe's arguments as it fires. For example, a simple PHP script that queries a table might produce the following trace output:

1381794982092854582: PHP connect-entry
  credentials="hr@localhost/pdborcl"
  charset=""
  session_mode=0
  persistent=0
  exclusive=0
1381794982183158766: PHP oci8-connect-return
  connection=0x7f4a7907bfb8
1381794982183594576: PHP oci8-sqltext
  connection=0x7f4a7907bfb8
  client_id="Chris"
  statement=0x7f4a7907c2a0
  sql="select * from employees"
1381794982183783706: PHP oci8-execute-mode
  connection=0x7f4a7907bfb8
  client_id="Chris"
  statement=0x7f4a7907c2a0
  mode=0x20
1381794982444344390: PHP oci8-connect-close
  connection=0x7f4a7907bfb8

When monitoring is complete, the D script can be terminated with a CTRL+C.

Veja Também

  • DTrace Dynamic Tracing


Supported Datatypes

The driver supports the following types when binding parameters using the oci_bind_by_name() function:
Type | Mapping
SQLT_NTY | Maps a native collection type from a PHP collection object, such as those created by oci_new_collection().
SQLT_BFILEE | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_CFILEE | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_CLOB | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_BLOB | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_RDD | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_NUM | Converts the PHP parameter to a 'C' long type, and binds to that value.
SQLT_RSET | Maps a native statement handle, such as those created by oci_parse() or those retrieved from other OCI queries.
SQLT_BOL | Bind the PHP parameter to a PL/SQL BOOLEAN
SQLT_CHR and any other type | Converts the PHP parameter to a string type and binds as a string.
The following types are supported when retrieving columns from a result set:
Type | Mapping
SQLT_RSET | Creates an oci statement resource to represent the cursor.
SQLT_RDD | Creates a ROWID object.
SQLT_BLOB | Creates a LOB object.
SQLT_CLOB | Creates a LOB object.
SQLT_BFILE | Creates a LOB object.
SQLT_LNG | Bound as SQLT_CHR, returned as a string
SQLT_LBI | Bound as SQLT_BIN, returned as a string
Any other type | Bound as SQLT_CHR, returned as a string


Funções OCI8

Índice

  • oci_bind_array_by_name — Binds a PHP array to an Oracle PL/SQL array parameter
  • oci_bind_by_name — Binds a PHP variable to an Oracle placeholder
  • oci_cancel — Cancels reading from cursor
  • oci_client_version — Returns the Oracle client library version
  • oci_close — Closes an Oracle connection
  • oci_commit — Commits the outstanding database transaction
  • oci_connect — Connect to an Oracle database
  • oci_define_by_name — Associates a PHP variable with a column for query fetches
  • oci_error — Returns the last error found
  • oci_execute — Executes a statement
  • oci_fetch_all — Fetches multiple rows from a query into a two-dimensional array
  • oci_fetch_array — Returns the next row from a query as an associative or numeric array
  • oci_fetch_assoc — Returns the next row from a query as an associative array
  • oci_fetch_object — Returns the next row from a query as an object
  • oci_fetch_row — Returns the next row from a query as a numeric array
  • oci_fetch — Fetches the next row from a query into internal buffers
  • oci_field_is_null — Checks if a field in the currently fetched row is null
  • oci_field_name — Returns the name of a field from the statement
  • oci_field_precision — Tell the precision of a field
  • oci_field_scale — Tell the scale of the field
  • oci_field_size — Returns field's size
  • oci_field_type_raw — Tell the raw Oracle data type of the field
  • oci_field_type — Returns a field's data type name
  • oci_free_descriptor — Frees a descriptor
  • oci_free_statement — Frees all resources associated with statement or cursor
  • oci_get_implicit_resultset — Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets
  • oci_lob_copy — Copies large object
  • oci_lob_is_equal — Compares two LOB/FILE locators for equality
  • oci_new_collection — Allocates new collection object
  • oci_new_connect — Connect to the Oracle server using a unique connection
  • oci_new_cursor — Allocates and returns a new cursor (statement handle)
  • oci_new_descriptor — Initializes a new empty LOB or FILE descriptor
  • oci_num_fields — Returns the number of result columns in a statement
  • oci_num_rows — Returns number of rows affected during statement execution
  • oci_parse — Prepares an Oracle statement for execution
  • oci_password_change — Changes password of Oracle's user
  • oci_pconnect — Connect to an Oracle database using a persistent connection
  • oci_register_taf_callback — Register a user-defined callback function for Oracle Database TAF
  • oci_result — Returns field's value from the fetched row
  • oci_rollback — Rolls back the outstanding database transaction
  • oci_server_version — Returns the Oracle Database version
  • oci_set_action — Sets the action name
  • oci_set_call_timeout — Sets a millisecond timeout for database calls
  • oci_set_client_identifier — Sets the client identifier
  • oci_set_client_info — Sets the client information
  • oci_set_db_operation — Sets the database operation
  • oci_set_edition — Sets the database edition
  • oci_set_module_name — Sets the module name
  • oci_set_prefetch_lob — Sets the amount of data prefetched for each CLOB or BLOB.
  • oci_set_prefetch — Sets number of rows to be prefetched by queries
  • oci_statement_type — Returns the type of a statement
  • oci_unregister_taf_callback — Unregister a user-defined callback function for Oracle Database TAF


Binds a PHP array to an Oracle PL/SQL array parameter

  • « Funções OCI8
  • oci_bind_by_name »
  • PHP Manual
  • Funções OCI8
  • Binds a PHP array to an Oracle PL/SQL array parameter

oci_bind_array_by_name

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL OCI8 >= 1.2.0)

oci_bind_array_by_name — Binds a PHP array to an Oracle PL/SQL array parameter

Descrição

oci_bind_array_by_name(
resource $statement,
string $param,
array &$var,
int $max_array_length,
int $max_item_length = -1,
int $type = SQLT_AFC
): bool

Binds the PHP array var to the Oracle placeholder param, which points to an Oracle PL/SQL array. Whether it will be used for input or output will be determined at run-time.

Parâmetros

statement

A valid OCI statement identifier.

param

The Oracle placeholder.

var

An array.

max_array_length

Sets the maximum length both for incoming and result arrays.

max_item_length

Sets maximum length for array items. If not specified or equals to -1, oci_bind_array_by_name() will find the longest element in the incoming array and will use it as the maximum length.

type

Should be used to set the type of PL/SQL array items. See list of available types below:

  • SQLT_NUM - for arrays of NUMBER.

  • SQLT_INT - for arrays of INTEGER (Note: INTEGER it is actually a synonym for NUMBER(38), but SQLT_NUM type won't work in this case even though they are synonyms).

  • SQLT_FLT - for arrays of FLOAT.

  • SQLT_AFC - for arrays of CHAR.

  • SQLT_CHR - for arrays of VARCHAR2.

  • SQLT_VCS - for arrays of VARCHAR.

  • SQLT_AVC - for arrays of CHARZ.

  • SQLT_STR - for arrays of STRING.

  • SQLT_LVC - for arrays of LONG VARCHAR.

  • SQLT_ODT - for arrays of DATE.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 oci_bind_array_by_name() example

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$create = "CREATE TABLE bind_example(name VARCHAR(20))";
$stid = oci_parse($conn, $create);
oci_execute($stid);

$create_pkg = "
CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS
TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
PROCEDURE iobind(c1 IN OUT ARRTYPE);
END ARRAYBINDPKG1;";
$stid = oci_parse($conn, $create_pkg);
oci_execute($stid);

$create_pkg_body = "
CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
CURSOR CUR IS SELECT name FROM bind_example;
PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
BEGIN
-- Bulk Insert
FORALL i IN INDICES OF c1
INSERT INTO bind_example VALUES (c1(i));

-- Fetch and reverse
IF NOT CUR%ISOPEN THEN
OPEN CUR;
END IF;
FOR i IN REVERSE 1..5 LOOP
FETCH CUR INTO c1(i);
IF CUR%NOTFOUND THEN
CLOSE CUR;
EXIT;
END IF;
END LOOP;
END iobind;
END ARRAYBINDPKG1;";
$stid = oci_parse($conn, $create_pkg_body);
oci_execute($stid);

$stid = oci_parse($conn, "BEGIN arraybindpkg1.iobind(:c1); END;");
$array = array("one", "two", "three", "four", "five");
oci_bind_array_by_name($stid, ":c1", $array, 5, -1, SQLT_CHR);
oci_execute($stid);

var_dump($array);

?>


Binds a PHP variable to an Oracle placeholder

  • « oci_bind_array_by_name
  • oci_cancel »
  • PHP Manual
  • Funções OCI8
  • Binds a PHP variable to an Oracle placeholder

oci_bind_by_name

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_bind_by_name — Binds a PHP variable to an Oracle placeholder

Descrição

oci_bind_by_name(
resource $statement,
string $param,
mixed &$var,
int $max_length = -1,
int $type = 0
): bool

Binds a PHP variable var to the Oracle bind variable placeholder param. Binding is important for Oracle database performance and also as a way to avoid SQL Injection security issues.

Binding allows the database to reuse the statement context and caches from previous executions of the statement, even if another user or process originally executed it. Binding reduces SQL Injection concerns because the data associated with a bind variable is never treated as part of the SQL statement. It does not need quoting or escaping.

PHP variables that have been bound can be changed and the statement re-executed without needing to re-parse the statement or re-bind.

In Oracle, bind variables are commonly divided into IN binds for values that are passed into the database, and OUT binds for values that are returned to PHP. A bind variable may be both IN and OUT. Whether a bind variable will be used for input or output is determined at run-time.

You must specify max_length when using an OUT bind so that PHP allocates enough memory to hold the returned value.

For IN binds it is recommended to set the max_length length if the statement is re-executed multiple times with different values for the PHP variable. Otherwise Oracle may truncate data to the length of the initial PHP variable value. If you don't know what the maximum length will be, then re-call oci_bind_by_name() with the current data size prior to each oci_execute() call. Binding an unnecessarily large length will have an impact on process memory in the database.

A bind call tells Oracle which memory address to read data from. For IN binds that address needs to contain valid data when oci_execute() is called. This means that the variable bound must remain in scope until execution. If it doesn't, unexpected results or errors such as "ORA-01460: unimplemented or unreasonable conversion requested" may occur. For OUT binds one symptom is no value being set in the PHP variable.

For a statement that is repeatedly executed, binding values that never change may reduce the ability of the Oracle optimizer to choose the best statement execution plan. Long running statements that are rarely re-executed may not benefit from binding. However in both cases, binding might be safer than joining strings into a SQL statement, as this can be a security risk if unfiltered user text is concatenated.

Parâmetros

statement

A valid OCI8 statement identifier.

param

The colon-prefixed bind variable placeholder used in the statement. The colon is optional in param. Oracle does not use question marks for placeholders.

var

The PHP variable to be associated with param

max_length

Sets the maximum length for the data. If you set it to -1, this function will use the current length of var to set the maximum length. In this case the var must exist and contain data when oci_bind_by_name() is called.

type

The datatype that Oracle will treat the data as. The default type used is SQLT_CHR. Oracle will convert the data between this type and the database column (or PL/SQL variable type), when possible.

If you need to bind an abstract datatype (LOB/ROWID/BFILE) you need to allocate it first using the oci_new_descriptor() function. The length is not used for abstract datatypes and should be set to -1.

Possible values for type are:

  • SQLT_BFILEE or OCI_B_BFILE - for BFILEs;

  • SQLT_CFILEE or OCI_B_CFILEE - for CFILEs;

  • SQLT_CLOB or OCI_B_CLOB - for CLOBs;

  • SQLT_BLOB or OCI_B_BLOB - for BLOBs;

  • SQLT_RDD or OCI_B_ROWID - for ROWIDs;

  • SQLT_NTY or OCI_B_NTY - for named datatypes;

  • SQLT_INT or OCI_B_INT - for integers;

  • SQLT_CHR - for VARCHARs;

  • SQLT_BIN or OCI_B_BIN - for RAW columns;

  • SQLT_LNG - for LONG columns;

  • SQLT_LBI - for LONG RAW columns;

  • SQLT_RSET - for cursors created with oci_new_cursor();

  • SQLT_BOL or OCI_B_BOL - for PL/SQL BOOLEANs (Requires Oracle Database 12c)

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Inserting data with oci_bind_by_name()

<?php

// Create the table with:
// CREATE TABLE mytab (id NUMBER, text VARCHAR2(40));

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn,"INSERT INTO mytab (id, text) VALUES(:id_bv, :text_bv)");

$id = 1;
$text = "Data to insert ";
oci_bind_by_name($stid, ":id_bv", $id);
oci_bind_by_name($stid, ":text_bv", $text);
oci_execute($stid);

// Table now contains: 1, 'Data to insert '

?>

Exemplo #2 Binding once for multiple executions

<?php

// Create the table with:
// CREATE TABLE mytab (id NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$a = array(1,3,5,7,11); // data to insert

$stid = oci_parse($conn, 'INSERT INTO mytab (id) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $v, 20);
foreach ($a as $v) {
$r = oci_execute($stid, OCI_DEFAULT); // don't auto commit
}
oci_commit($conn); // commit everything at once

// Table contains five rows: 1, 3, 5, 7, 11

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #3 Binding with a foreach loop

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT * FROM departments WHERE department_name = :dname AND location_id = :loc';
$stid = oci_parse($conn, $sql);

$ba = array(':dname' => 'IT Support', ':loc' => 1700);

foreach ($ba as $key => $val) {

// oci_bind_by_name($stid, $key, $val) does not work
// because it binds each placeholder to the same location: $val
// instead use the actual location of the data: $ba[$key]
oci_bind_by_name($stid, $key, $ba[$key]);
}

oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
foreach ($row as $item) {
print $item."<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #4 Binding in a WHERE clause

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE department_id = :didbv ORDER BY last_name';
$stid = oci_parse($conn, $sql);
$didbv = 60;
oci_bind_by_name($stid, ':didbv', $didbv);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
echo $row['LAST_NAME'] ."<br>\n";
}

// Output is
// Austin
// Ernst
// Hunold
// Lorentz
// Pataballa

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #5 Binding with a LIKE clause

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Find all cities that begin with 'South'
$stid = oci_parse($conn, "SELECT city FROM locations WHERE city LIKE :bv");
$city = 'South%'; // '%' is a wildcard in SQL
oci_bind_by_name($stid, ":bv", $city);
oci_execute($stid);
oci_fetch_all($stid, $res);

foreach ($res['CITY'] as $c) {
print $c . "<br>\n";
}
// Output is
// South Brunswick
// South San Francisco
// Southlake

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #6 Binding with REGEXP_LIKE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Find all cities that contain 'ing'
$stid = oci_parse($conn, "SELECT city FROM locations WHERE REGEXP_LIKE(city, :bv)");
$city = '.*ing.*';
oci_bind_by_name($stid, ":bv", $city);
oci_execute($stid);
oci_fetch_all($stid, $res);

foreach ($res['CITY'] as $c) {
print $c . "<br>\n";
}
// Output is
// Beijing
// Singapore

oci_free_statement($stid);
oci_close($conn);

?>

For a small, fixed number of IN clause conditions, use individual bind variables. Values unknown at run time can be set to NULL. This allows a single statement to be used by all application users, maximizing Oracle DB cache efficiency.

Exemplo #7 Binding Multiple Values in an IN Clause

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE employee_id in (:e1, :e2, :e3)';
$stid = oci_parse($conn, $sql);
$mye1 = 103;
$mye2 = 104;
$mye3 = NULL; // pretend we were not given this value
oci_bind_by_name($stid, ':e1', $mye1);
oci_bind_by_name($stid, ':e2', $mye2);
oci_bind_by_name($stid, ':e3', $mye3);
oci_execute($stid);
oci_fetch_all($stid, $res);
foreach ($res['LAST_NAME'] as $name) {
print $name ."<br>\n";
}

// Output is
// Ernst
// Hunold

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #8 Binding a ROWID returned by a query

<?php

// Create the table with:
// CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
// INSERT INTO mytab (id, salary, name) VALUES (1, 100, 'Chris');
// COMMIT;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT ROWID, name FROM mytab WHERE id = :id_bv FOR UPDATE');
$id = 1;
oci_bind_by_name($stid, ':id_bv', $id);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
$rid = $row['ROWID'];
$name = $row['NAME'];

// Change name to upper case & save the changes
$name = strtoupper($name);
$stid = oci_parse($conn, 'UPDATE mytab SET name = :n_bv WHERE ROWID = :r_bv');
oci_bind_by_name($stid, ':n_bv', $name);
oci_bind_by_name($stid, ':r_bv', $rid, -1, OCI_B_ROWID);
oci_execute($stid);

// The table now contains 1, 100, CHRIS

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #9 Binding a ROWID on INSERT

<?php

// This example inserts an id & name, and then updates the salary
// Create the table with:
// CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//
// Based on original ROWID example by thies at thieso dot net (980221)

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = "INSERT INTO mytab (id, name) VALUES(:id_bv, :name_bv)
RETURNING ROWID INTO :rid";

$ins_stid = oci_parse($conn, $sql);

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
oci_bind_by_name($ins_stid, ":id_bv", $id, 10);
oci_bind_by_name($ins_stid, ":name_bv", $name, 32);
oci_bind_by_name($ins_stid, ":rid", $rowid, -1, OCI_B_ROWID);

$sql = "UPDATE mytab SET salary = :salary WHERE ROWID = :rid";
$upd_stid = oci_parse($conn, $sql);
oci_bind_by_name($upd_stid, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($upd_stid, ":salary", $salary, 32);

// ids and names to insert
$data = array(1111 => "Larry",
2222 => "Bill",
3333 => "Jim");

// Salary of each person
$salary = 10000;

// Insert and immediately update each row
foreach ($data as $id => $name) {
oci_execute($ins_stid);
oci_execute($upd_stid);
}

$rowid->free();
oci_free_statement($upd_stid);
oci_free_statement($ins_stid);

// Show the new rows
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid);
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
var_dump($row);
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #10 Binding for a PL/SQL stored function

<?php

// Before running the PHP program, create a stored function in
// SQL*Plus or SQL Developer:
//
// CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
// BEGIN
// RETURN p * 3;
// END;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p = 8;

$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);

// The return value is an OUT bind. The default type will be a string
// type so binding a length 40 means that at most 40 digits will be
// returned.
oci_bind_by_name($stid, ':r', $r, 40);

oci_execute($stid);

print "$r\n"; // prints 24

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #11 Binding parameters for a PL/SQL stored procedure

<?php

// Before running the PHP program, create a stored procedure in
// SQL*Plus or SQL Developer:
//
// CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
// BEGIN
// p2 := p1 * 2;
// END;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p1 = 8;

$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);

// The second procedure parameter is an OUT bind. The default type
// will be a string type so binding a length 40 means that at most 40
// digits will be returned.
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n"; // prints 16

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #12 Binding a CLOB column

<?php

// Before running, create the table:
// CREATE TABLE mytab (mykey NUMBER, myclob CLOB);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$mykey = 12343; // arbitrary key for this example;

$sql = "INSERT INTO mytab (mykey, myclob)
VALUES (:mykey, EMPTY_CLOB())
RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_DEFAULT);
$clob->save("A very long string");

oci_commit($conn);

// Fetching CLOB data

$query = 'SELECT myclob FROM mytab WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
// In a loop, freeing the large variable before the 2nd fetch reduces PHP's peak memory usage
unset($row);
}
print '</table>';

?>

Exemplo #13 Binding a PL/SQL BOOLEAN

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$plsql =
"begin
:output1 := true;
:output2 := false;
end;";

$s = oci_parse($c, $plsql);
oci_bind_by_name($s, ':output1', $output1, -1, OCI_B_BOL);
oci_bind_by_name($s, ':output2', $output2, -1, OCI_B_BOL);
oci_execute($s);
var_dump($output1); // true
var_dump($output2); // false

?>

Notas

Aviso

Do not use addslashes() and oci_bind_by_name() simultaneously as no quoting is needed. Any magically applied quotes will be written into your database because oci_bind_by_name() inserts data verbatim and does not remove quotes or escape characters.

Nota:

If you bind a string to a CHAR column in a WHERE clause, remember that Oracle uses blank-padded comparison semantics for CHAR columns. Your PHP variable should be blank padded to the same width as the column for the WHERE clause to succeed.

Nota:

The PHP var argument is a reference. Some forms of loops do not work as expected:

<?php
foreach ($myarray as $key => $value) {
oci_bind_by_name($stid, $key, $value);
}
?>

This binds each key to the location of $value, so all bound variables end up pointing to the last loop iteration's value. Instead use the following:

<?php
foreach ($myarray as $key => $value) {
oci_bind_by_name($stid, $key, $myarray[$key]);
}
?>

Veja Também

  • oci_bind_array_by_name() - Binds a PHP array to an Oracle PL/SQL array parameter
  • oci_parse() - Prepares an Oracle statement for execution


Cancels reading from cursor

  • « oci_bind_by_name
  • oci_client_version »
  • PHP Manual
  • Funções OCI8
  • Cancels reading from cursor

oci_cancel

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_cancel — Cancels reading from cursor

Descrição

oci_cancel(resource $statement): bool

Invalidates a cursor, freeing all associated resources and cancels the ability to read from it.

Parâmetros

statement

An OCI statement.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Returns the Oracle client library version

  • « oci_cancel
  • oci_close »
  • PHP Manual
  • Funções OCI8
  • Returns the Oracle client library version

oci_client_version

(PHP 5 >= 5.3.7, PHP 7, PHP 8, PECL OCI8 >= 1.4.6)

oci_client_version — Returns the Oracle client library version

Descrição

oci_client_version(): string

Returns a string containing the version number of the Oracle C client library that PHP is linked with.

Parâmetros

None

Valor Retornado

Returns the version number as a string.

Exemplos

Exemplo #1 oci_client_version() example

<?php
echo "Client Version: " . oci_client_version(); // Client version: 19.9.0.0.0
?>

Notas

Nota:

Oracle libraries before 10gR2 do not have the underlying functionality to get the client library version number. The string "Unknown" will be returned in this case.

Veja Também

  • oci_server_version() - Returns the Oracle Database version


Closes an Oracle connection

  • « oci_client_version
  • oci_commit »
  • PHP Manual
  • Funções OCI8
  • Closes an Oracle connection

oci_close

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_close — Closes an Oracle connection

Descrição

oci_close(resource $connection): ?bool

Unsets connection. The underlying database connection is closed if no other resources are using it and if it was created with oci_connect() or oci_new_connect().

It is recommended to close connections that are no longer needed because this makes database resources available for other users.

Parâmetros

connection

An Oracle connection identifier returned by oci_connect(), oci_pconnect(), or oci_new_connect().

Valor Retornado

Returns null when oci8.old_oci_close_semantics is enabled, or true otherwise.

Exemplos

Exemplo #1 Closing a connection

Resources associated with a connection should be closed to ensure the underlying database connection is properly terminated and the database resources are released.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM departments');
$r = oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);

// Free the statement identifier when closing the connection
oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #2 Database connections are not closed until all references are closed

The internal refcount of a connection identifier must be zero before the underlying connection to the database is closed.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM departments'); // this increases the refcount on $conn
oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);

oci_close($conn);

// $conn is no longer usable in the script but the underlying database
// connection is still held open until $stid is freed.
var_dump($conn); // prints NULL

// While PHP sleeps, querying the Oracle V$SESSION view in a
// terminal window will show that the database user is still connected.
sleep(10);

// When $stid is freed, the database connection is physically closed
oci_free_statement($stid);

// While PHP sleeps, querying the Oracle V$SESSION view in a
// terminal window will show that the database user has disconnected.
sleep(10);

?>

Exemplo #3 Closing a connection opened more than once

When database credentials are reused, both connections must be closed before the underlying database connection is closed.

<?php

$conn1 = oci_connect('hr', 'welcome', 'localhost/XE');

// Using the same credentials reuses the same underlying database connection
// Any uncommitted changes done on $conn1 will be visible in $conn2
$conn2 = oci_connect('hr', 'welcome', 'localhost/XE');

// While PHP sleeps, querying the Oracle V$SESSION view in a
// terminal window will show that only one database user is connected.
sleep(10);

oci_close($conn1); // doesn't close the underlying database connection
var_dump($conn1); // prints NULL because the variable $conn1 is no longer usable
var_dump($conn2); // displays that $conn2 is still a valid connection resource

?>

Exemplo #4 Connections are closed when variables go out of scope

When all variables referencing a connection go out of scope and are freed by PHP, a rollback occurs (if necessary) and the underlying connection to the database is closed.

<?php

function myfunc() {
$conn = oci_connect('hr', 'hrpwd', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'UPDATE mytab SET id = 100');
oci_execute($stid, OCI_NO_AUTO_COMMIT);
return "Finished";
}

$r = myfunc();
// At this point a rollback occurred and the underlying database connection was released.

print $r; // displays the function return value "Finished"

?>

Notas

Nota:

Variables that have a dependency on the connection identifier, such as statement identifiers returned by oci_parse(), must also be freed before the underlying database connection is closed.

Nota:

The oci_close() function does not close the underlying database connections created with oci_pconnect().

Veja Também

  • oci_connect() - Connect to an Oracle database
  • oci_free_statement() - Frees all resources associated with statement or cursor


Commits the outstanding database transaction

  • « oci_close
  • oci_connect »
  • PHP Manual
  • Funções OCI8
  • Commits the outstanding database transaction

oci_commit

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_commit — Commits the outstanding database transaction

Descrição

oci_commit(resource $connection): bool

Commits the outstanding transaction for the Oracle connection. A commit ends the current transaction and makes permanent all changes. It releases all locks held.

A transaction begins when the first SQL statement that changes data is executed with oci_execute() using the OCI_NO_AUTO_COMMIT flag. Further data changes made by other statements become part of the same transaction. Data changes made in a transaction are temporary until the transaction is committed or rolled back. Other users of the database will not see the changes until they are committed.

When inserting or updating data, using transactions is recommended for relational data consistency and for performance reasons.

Parâmetros

connection

An Oracle connection identifier, returned by oci_connect(), oci_pconnect(), or oci_new_connect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 oci_commit() example

<?php

// Insert into several tables, rolling back the changes if an error occurs

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// The OCI_NO_AUTO_COMMIT flag tells Oracle not to commit the INSERT immediately
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
$e = oci_error($stid);
oci_rollback($conn); // rollback changes to both tables
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Commit the changes to both tables
$r = oci_commit($conn);
if (!$r) {
$e = oci_error($conn);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Notas

Nota:

Transactions are automatically rolled back when you close the connection, or when the script ends, whichever is soonest. You need to explicitly call oci_commit() to commit the transaction.

Any call to oci_execute() that uses OCI_COMMIT_ON_SUCCESS mode explicitly or by default will commit any previous uncommitted transaction.

Any Oracle DDL statement such as CREATE or DROP will automatically commit any uncommitted transaction.

Veja Também

  • oci_execute() - Executes a statement
  • oci_rollback() - Rolls back the outstanding database transaction


Connect to an Oracle database

  • « oci_commit
  • oci_define_by_name »
  • PHP Manual
  • Funções OCI8
  • Connect to an Oracle database

oci_connect

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_connect — Connect to an Oracle database

Descrição

oci_connect(
string $username,
string $password,
?string $connection_string = null,
string $encoding = "",
int $session_mode = OCI_DEFAULT
): resource|false

Returns a connection identifier needed for most other OCI8 operations.

For performance, most applications should use persistent connections with oci_pconnect() instead of oci_connect(). See Connection Handling for general information on connection management and connection pooling.

The second and subsequent calls to oci_connect() with the same parameters will return the connection handle returned from the first call. This means that transactions in one handle are also in the other handles, because they use the same underlying database connection. If two handles need to be transactionally isolated from each other, use oci_new_connect() instead.

Parâmetros

username

The Oracle user name.

password

The password for username.

connection_string

Contém a instância do Oracle à qual se conectar. Pode ser uma » string Easy Connect ou um Connect Name do arquivo tnsnames.ora ou o nome de uma instância local do Oracle.

Se não especificado ou null, o PHP usará variáveis de ambiente como TWO_TASK (no Linux) ou LOCAL (no Windows) e ORACLE_SID para determinar a instância do Oracle à qual se conectar.

Para usar o método de nomenclatura Easy Connect, o PHP precisa ter sido compilado com as bibliotecas Oracle Client 10g ou superiores. A string Easy Connect para o Oracle 10g tem o formato: [//]nome_do_servidor[:porta][/nome_do_servico]. A partir do Oracle 11g a sintaxe é: [//]nome_do_servidor[:porta][/nome_do_servico][:tipo_de_servidor][/nome_da_instancia]. Outras opções foram introduzidas com o Oracle 19c, incluindo as configurações de timeout e keep-alive. Consulte a documentação do Oracle. Os nomes dos serviços podem ser encontrados executando o utilitário Oracle lsnrctl status na máquina do servidor de banco de dados.

O arquivo tnsnames.ora pode estar no caminho de pesquisa Oracle Net, que inclui /seu/caminho/para/instantclient/network/admin, $ORACLE_HOME/network/admin e /etc. Como alternativa, defina TNS_ADMIN para que $TNS_ADMIN/tnsnames.ora possa ser lido. Certifique-se de que o servidor web tem acesso de leitura ao arquivo.

encoding

Determina o conjunto de caracteres usado pelas bibliotecas Oracle Client. O conjunto de caracteres não precisa corresponder ao conjunto de caracteres usado pelo banco de dados. Se não corresponderem, o Oracle fará o possível para converter os dados de e para o conjunto de caracteres do banco de dados. Dependendo dos conjuntos de caracteres, isso pode não fornecer resultados utilizáveis. A conversão também adiciona alguma sobrecarga de tempo.

Se não for especificado, as bibliotecas Oracle Client determinam um conjunto de caracteres a partir da variável de ambiente NLS_LANG.

Passar este parâmetro pode reduzir o tempo necessário para conectar.

session_mode

Este parâmetro está disponível a partir do PHP 5 (PECL OCI8 1.1) e aceita os seguintes valores: OCI_DEFAULT, OCI_SYSOPER e OCI_SYSDBA. Se OCI_SYSOPER ou OCI_SYSDBA forem especificadas, esta função tentará estabelecer uma conexão privilegiada usando credenciais externas. Conexões privilegiadas estão desabilitadas por padrão. Para habilitá-las é preciso configurar oci8.privileged_connect para On.

O PHP 5.3 (PECL OCI8 1.3.4) introduziu o valor de modo OCI_CRED_EXT. Ele informa ao Oracle para usar autenticação External ou OS, que deve ser configurada no banco de dados. A flag OCI_CRED_EXT só pode ser usada com o usuário "/" e uma senha vazia. oci8.privileged_connect pode ser On ou Off.

OCI_CRED_EXT pode ser combinado com os modos OCI_SYSOPER ou OCI_SYSDBA.

OCI_CRED_EXT não é suportado no Windows por razões de segurança.

Valor Retornado

Returns a connection identifier or false on error.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | connection_string is now nullable.

Exemplos

Exemplo #1 Basic oci_connect() using Easy Connect syntax

<?php

// Connects to the XE service (i.e. database) on the "localhost" machine
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

?>

Exemplo #2 Basic oci_connect() using a Network Connect name

<?php

// Connects to the MYDB database described in tnsnames.ora file,
// One example tnsnames.ora entry for MYDB could be:
// MYDB =
// (DESCRIPTION =
// (ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.oracle.com)(PORT = 1521))
// (CONNECT_DATA =
// (SERVER = DEDICATED)
// (SERVICE_NAME = XE)
// )
// )

$conn = oci_connect('hr', 'welcome', 'MYDB');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

?>

Exemplo #3 oci_connect() with an explicit character set

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE', 'AL32UTF8');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

?>

Exemplo #4 Using multiple calls to oci_connect()

<?php

$c1 = oci_connect("hr", "welcome", 'localhost/XE');
$c2 = oci_connect("hr", "welcome", 'localhost/XE');

// Both $c1 and $c2 show the same PHP resource id meaning they use the
// same underlying database connection
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";

function create_table($conn)
{
$stmt = oci_parse($conn, "create table hallo (test varchar2(64))");
oci_execute($stmt);
echo "Created table<br>\n";
}

function drop_table($conn)
{
$stmt = oci_parse($conn, "drop table hallo");
oci_execute($stmt);
echo "Dropped table<br>\n";
}

function insert_data($connname, $conn)
{
$stmt = oci_parse($conn, "insert into hallo
values(to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
oci_execute($stmt, OCI_DEFAULT);
echo "$connname inserted row without committing<br>\n";
}

function rollback($connname, $conn)
{
oci_rollback($conn);
echo "$connname rollback<br>\n";
}

function select_data($connname, $conn)
{
$stmt = oci_parse($conn, "select * from hallo");
oci_execute($stmt, OCI_DEFAULT);
echo "$connname ----selecting<br>\n";
while (oci_fetch($stmt)) {
echo " " . oci_result($stmt, "TEST") . "<br>\n";
}
echo "$connname ----done<br>\n";
}

create_table($c1);

insert_data('c1', $c1); // Insert a row using c1
sleep(2); // sleep to show a different timestamp for the 2nd row
insert_data('c2', $c2); // Insert a row using c2

select_data('c1', $c1); // Results of both inserts are returned
select_data('c2', $c2); // Results of both inserts are returned

rollback('c1', $c1); // Rollback using c1

select_data('c1', $c1); // Both inserts have been rolled back
select_data('c2', $c2);

drop_table($c1);

// Closing one of the connections makes the PHP variable unusable, but
// the other could be used
oci_close($c1);
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";

// Output is:
// c1 is Resource id #5
// c2 is Resource id #5
// Created table
// c1 inserted row without committing
// c2 inserted row without committing
// c1 ----selecting
// 09-DEC-09 12:14:43
// 09-DEC-09 12:14:45
// c1 ----done
// c2 ----selecting
// 09-DEC-09 12:14:43
// 09-DEC-09 12:14:45
// c2 ----done
// c1 rollback
// c1 ----selecting
// c1 ----done
// c2 ----selecting
// c2 ----done
// Dropped table
// c1 is
// c2 is Resource id #5

?>

Notas

Nota:

An incorrectly installed or configured OCI8 extension will often manifest itself as a connection problem or error. See Installing/Configuring for troubleshooting information.

Veja Também

  • oci_pconnect() - Connect to an Oracle database using a persistent connection
  • oci_new_connect() - Connect to the Oracle server using a unique connection
  • oci_close() - Closes an Oracle connection


Associates a PHP variable with a column for query fetches

  • « oci_connect
  • oci_error »
  • PHP Manual
  • Funções OCI8
  • Associates a PHP variable with a column for query fetches

oci_define_by_name

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_define_by_name — Associates a PHP variable with a column for query fetches

Descrição

oci_define_by_name(
resource $statement,
string $column,
mixed &$var,
int $type = 0
): bool

Associates a PHP variable with a column for query fetches using oci_fetch().

The oci_define_by_name() call must occur before executing oci_execute().

Parâmetros

statement

Um identificador de declaração OCI8 válida criada por oci_parse() e executada por oci_execute() ou um identificador de declaração REF CURSOR.

column

The column name used in the query.

Use uppercase for Oracle's default, non-case sensitive column names. Use the exact column name case for case-sensitive column names.

var

The PHP variable that will contain the returned column value.

type

The data type to be returned. Generally not needed. Note that Oracle-style data conversions are not performed. For example, SQLT_INT will be ignored and the returned data type will still be SQLT_CHR.

You can optionally use oci_new_descriptor() to allocate LOB/ROWID/BFILE descriptors.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 oci_define_by_name() example

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);

// The defines MUST be done before executing
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);

oci_execute($stid);

// Each fetch populates the previously defined variables with the next row's data
while (oci_fetch($stid)) {
echo "Location id $locid is $city<br>\n";
}

// Displays:
// Location id 1000 is Roma
// Location id 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #2 oci_define_by_name() with case sensitive column names

<?php

/*
Before running, create the table with a case sensitive column name:
CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Use uppercase for non case-sensitive column names
oci_define_by_name($stid, 'ID', $id);

// Use the exact case for case-sensitive column names
oci_define_by_name($stid, 'MyDescription', $mydesc);

oci_execute($stid);

while (oci_fetch($stid)) {
echo "id $id is $mydesc<br>\n";
}

// Displays:
// id 1 is Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #3 oci_define_by_name() with LOB columns

<?php

/*
Before running, create the table:
CREATE TABLE mytab (id NUMBER, fruit CLOB);
INSERT INTO mytab (id, fruit) values (1, 'apple');
INSERT INTO mytab (id, fruit) values (2, 'orange');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// The defines MUST be done before executing
oci_define_by_name($stid, 'ID', $id);
oci_define_by_name($stid, 'FRUIT', $fruit); // $fruit will become a LOB descriptor

oci_execute($stid);

while (oci_fetch($stid)) {
echo $id . " is " . $fruit->load(100) . "<br>\n";
}

// Displays:
// 1 is apple
// 2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #4 oci_define_by_name() with an explicit type

<?php

/*
Before running, create the table:
CREATE TABLE mytab (id NUMBER, fruit CLOB);
INSERT INTO mytab (id, fruit) values (1, 'apple');
INSERT INTO mytab (id, fruit) values (2, 'orange');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// The defines MUST be done before executing
oci_define_by_name($stid, 'ID', $id);

$fruit = oci_new_descriptor($conn, OCI_D_LOB);
oci_define_by_name($stid, 'FRUIT', $fruit, OCI_D_CLOB);

oci_execute($stid);

while (oci_fetch($stid)) {
echo $id . " is " . $fruit->load(100) . "<br>\n";
}

// Displays:
// 1 is apple
// 2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Veja Também

  • oci_fetch() - Fetches the next row from a query into internal buffers
  • oci_new_descriptor() - Initializes a new empty LOB or FILE descriptor


Returns the last error found

  • « oci_define_by_name
  • oci_execute »
  • PHP Manual
  • Funções OCI8
  • Returns the last error found

oci_error

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_error — Returns the last error found

Descrição

oci_error(?resource $connection_or_statement = null): array|false

Returns the last error found.

The function should be called immediately after an error occurs. Errors are cleared by a successful statement.

Parâmetros

connection_or_statement

For most errors, connection_or_statement is the
resource handle that was passed to the failing function call.
For connection errors with oci_connect(),
oci_new_connect() or
oci_pconnect() null should be passed.

Valor Retornado

If no error is found, oci_error() returns false. Otherwise, oci_error() returns the error information as an associative array.

oci_error() Array Description
Array key | Type | Descrição
code | int | The Oracle error number.
message | string | The Oracle error text.
offset | int | The byte position of an error in the SQL statement. If there was no statement, this is 0
sqltext | string | The SQL statement text. If there was no statement, this is an empty string.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | connection_or_statement is now nullable.

Exemplos

Exemplo #1 Displaying the Oracle error message after a connection error

<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
$e = oci_error(); // For oci_connect errors do not pass a handle
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Exemplo #2 Displaying the Oracle error message after a parsing error

<?php
$stid = oci_parse($conn, "select ' from dual"); // note mismatched quote
if (!$stid) {
$e = oci_error($conn); // For oci_parse errors pass the connection handle
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Exemplo #3 Displaying the Oracle error message, the problematic statement, and the position of the problem of an execution error

<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid); // For oci_execute errors pass the statement handle
print htmlentities($e['message']);
print "\n<pre>\n";
print htmlentities($e['sqltext']);
printf("\n%".($e['offset']+1)."s", "^");
print "\n</pre>\n";
}
?>


Executes a statement

  • « oci_error
  • oci_fetch_all »
  • PHP Manual
  • Funções OCI8
  • Executes a statement

oci_execute

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_execute — Executes a statement

Descrição

oci_execute(resource $statement, int $mode = OCI_COMMIT_ON_SUCCESS): bool

Executes a statement previously returned from oci_parse().

After execution, statements like INSERT will have data committed to the database by default. For statements like SELECT, execution performs the logic of the query. Query results can subsequently be fetched in PHP with functions like oci_fetch_array().

Each parsed statement may be executed multiple times, saving the cost of re-parsing. This is commonly used for INSERT statements when data is bound with oci_bind_by_name().

Parâmetros

statement

A valid OCI statement identifier.

mode

An optional second parameter can be one of the following constants:

Execution Modes
Constant | Description
OCI_COMMIT_ON_SUCCESS | Automatically commit all outstanding changes for this connection when the statement has succeeded. This is the default.
OCI_DESCRIBE_ONLY | Make query meta data available to functions like oci_field_name() but do not create a result set. Any subsequent fetch call such as oci_fetch_array() will fail.
OCI_NO_AUTO_COMMIT | Do not automatically commit changes.

Using OCI_NO_AUTO_COMMIT mode starts or continues a transaction. Transactions are automatically rolled back when the connection is closed, or when the script ends. Explicitly call oci_commit() to commit a transaction, or oci_rollback() to abort it.

When inserting or updating data, using transactions is recommended for relational data consistency and for performance reasons.

If OCI_NO_AUTO_COMMIT mode is used for any statement including queries, and oci_commit() or oci_rollback() is not subsequently called, then OCI8 will perform a rollback at the end of the script even if no data was changed. To avoid an unnecessary rollback, many scripts do not use OCI_NO_AUTO_COMMIT mode for queries or PL/SQL. Be careful to ensure the appropriate transactional consistency for the application when using oci_execute() with different modes in the same script.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 oci_execute() for queries

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

?>

Exemplo #2 oci_execute() without specifying a mode example

<?php

// Before running, create the table:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');

oci_execute($stid); // The row is committed and immediately visible to other users

?>

Exemplo #3 oci_execute() with OCI_NO_AUTO_COMMIT example

<?php

// Before running, create the table:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $i, 10);
for ($i = 1; $i <= 5; ++$i) {
oci_execute($stid, OCI_NO_AUTO_COMMIT);
}
oci_commit($conn); // commits all new values: 1, 2, 3, 4, 5

?>

Exemplo #4 oci_execute() with different commit modes example

<?php

// Before running, create the table:
// CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');
oci_execute($stid, OCI_NO_AUTO_COMMIT); // data not committed

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (456)');
oci_execute($stid); // commits both 123 and 456 values

?>

Exemplo #5 oci_execute() with OCI_DESCRIBE_ONLY example

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM locations');
oci_execute($s, OCI_DESCRIBE_ONLY);
for ($i = 1; $i <= oci_num_fields($stid); ++$i) {
echo oci_field_name($stid, $i) . "<br>\n";
}

?>

Notas

Nota:

Transactions are automatically rolled back when connections are closed, or when the script ends, whichever is soonest. Explicitly call oci_commit() to commit a transaction.

Any call to oci_execute() that uses OCI_COMMIT_ON_SUCCESS mode explicitly or by default will commit any previous uncommitted transaction.

Any Oracle DDL statement such as CREATE or DROP will automatically commit any uncommitted transaction.

Nota:

Because the oci_execute() function generally sends the statement to the database, oci_execute() can identify some statement syntax errors that the lightweight, local oci_parse() function does not.

Veja Também

  • oci_parse() - Prepares an Oracle statement for execution


Fetches multiple rows from a query into a two-dimensional array

  • « oci_execute
  • oci_fetch_array »
  • PHP Manual
  • Funções OCI8
  • Fetches multiple rows from a query into a two-dimensional array

oci_fetch_all

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_all — Fetches multiple rows from a query into a two-dimensional array

Descrição

oci_fetch_all(
resource $statement,
array &$output,
int $offset = 0,
int $limit = -1,
int $flags = OCI_FETCHSTATEMENT_BY_COLUMN | OCI_ASSOC
): int

Fetches multiple rows from a query into a two-dimensional array. By default, all rows are returned.

This function can be called only once for each query executed with oci_execute().

Parâmetros

statement

Um identificador de declaração OCI8 válida criada por oci_parse() e executada por oci_execute() ou um identificador de declaração REF CURSOR.

output

The variable to contain the returned rows.

LOB columns are returned as strings, where Oracle supports conversion.

See oci_fetch_array() for more information on how data and types are fetched.

offset

The number of initial rows to discard when fetching the result. The default value is 0, so the first row onwards is returned.

limit

The number of rows to return. The default is -1 meaning return all the rows from offset + 1 onwards.

flags

Parameter flags indicates the array structure and whether associative arrays should be used.

oci_fetch_all() Array Structure Modes
Constant | Description
OCI_FETCHSTATEMENT_BY_ROW | The outer array will contain one sub-array per query row.
OCI_FETCHSTATEMENT_BY_COLUMN | The outer array will contain one sub-array per query column. This is the default.

Arrays can be indexed either by column heading or numerically. Only one index mode will be returned.

oci_fetch_all() Array Index Modes
Constant | Description
OCI_NUM | Numeric indexes are used for each column's array.
OCI_ASSOC | Associative indexes are used for each column's array. This is the default.

Use the addition operator "+" to choose a combination of array structure and index modes.

Oracle's default, non-case sensitive column names will have uppercase array keys. Case-sensitive column names will have array keys using the exact column case. Use var_dump() on output to verify the appropriate case to use for each query.

Queries that have more than one column with the same name should use column aliases. Otherwise only one of the columns will appear in an associative array.

Valor Retornado

Returns the number of rows in output, which may be 0 or more.

Exemplos

Exemplo #1 oci_fetch_all() example

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res);

echo "$nrows rows fetched<br>\n";
var_dump($res);

// var_dump output is:
// 2 rows fetched
// array(2) {
// ["POSTAL_CODE"]=>
// array(2) {
// [0]=>
// string(6) "00989x"
// [1]=>
// string(6) "10934x"
// }
// ["CITY"]=>
// array(2) {
// [0]=>
// string(4) "Roma"
// [1]=>
// string(6) "Venice"
// }
// }

// Pretty-print the results
echo "<table border='1'>\n";
foreach ($res as $col) {
echo "<tr>\n";
foreach ($col as $item) {
echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #2 oci_fetch_all() example with OCI_FETCHSTATEMENT_BY_ROW

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW);

echo "$nrows rows fetched<br>\n";
var_dump($res);

// Output is:
// 2 rows fetched
// array(2) {
// [0]=>
// array(2) {
// ["POSTAL_CODE"]=>
// string(6) "00989x"
// ["CITY"]=>
// string(4) "Roma"
// }
// [1]=>
// array(2) {
// ["POSTAL_CODE"]=>
// string(6) "10934x"
// ["CITY"]=>
// string(6) "Venice"
// }
// }

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #3 oci_fetch_all() with OCI_NUM

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW + OCI_NUM);

echo "$nrows rows fetched<br>\n";
var_dump($res);

// Output is:
// 2 rows fetched
// array(2) {
// [0]=>
// array(2) {
// [0]=>
// string(6) "00989x"
// [1]=>
// string(4) "Roma"
// }
// [1]=>
// array(2) {
// [0]=>
// string(6) "10934x"
// [1]=>
// string(6) "Venice"
// }
// }

oci_free_statement($stid);
oci_close($conn);

?>

Notas

Nota:

Using offset is very inefficient. All the rows to be skipped are included in the result set that is returned from the database to PHP. They are then discarded. It is more efficient to use SQL to restrict the offset and range of rows in the query. See oci_fetch_array() for an example.

Nota:

Queries that return a large number of rows can be more memory efficient if a single-row fetching function like oci_fetch_array() is used.

Nota:

Para consultas que retornam um grande número de linhas, o desempenho pode ser melhorado significativamente aumentando oci8.default_prefetch ou usando oci_set_prefetch().

Nota:

Will not return rows from Oracle Database 12c Implicit Result Sets. Use oci_fetch_array() instead.

Veja Também

  • oci_fetch() - Fetches the next row from a query into internal buffers
  • oci_fetch_array() - Returns the next row from a query as an associative or numeric array
  • oci_fetch_assoc() - Returns the next row from a query as an associative array
  • oci_fetch_object() - Returns the next row from a query as an object
  • oci_fetch_row() - Returns the next row from a query as a numeric array
  • oci_set_prefetch() - Sets number of rows to be prefetched by queries


Returns the next row from a query as an associative or numeric array

  • « oci_fetch_all
  • oci_fetch_assoc »
  • PHP Manual
  • Funções OCI8
  • Returns the next row from a query as an associative or numeric array

oci_fetch_array

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_array — Returns the next row from a query as an associative or numeric array

Descrição

oci_fetch_array(resource $statement, int $mode = OCI_BOTH | OCI_RETURN_NULLS): array|false

Returns an array containing the next result-set row of a query. Each array entry corresponds to a column of the row. This function is typically called in a loop until it returns false, indicating no more rows exist.

If statement corresponds to a PL/SQL block returning Oracle Database Implicit Result Sets, then rows from all sets are consecutively fetched. If statement is returned by oci_get_implicit_resultset(), then only the subset of rows for one child query are returned.

Para obter detalhes sobre o mapeamento dos tipos de dados realizado pela extensão OCI8, consulte os tipos de dados suportados pelo driver.

Parâmetros

statement

Um identificador de declaração OCI8 válida criada por oci_parse() e executada por oci_execute() ou um identificador de declaração REF CURSOR.

Can also be a statement identifier returned by oci_get_implicit_resultset().

mode

An optional second parameter can be any combination of the following constants:

oci_fetch_array() Modes
Constant | Description
OCI_BOTH | Returns an array with both associative and numeric indices. This is the same as OCI_ASSOC + OCI_NUM and is the default behavior.
OCI_ASSOC | Returns an associative array.
OCI_NUM | Returns a numeric array.
OCI_RETURN_NULLS | Creates elements for null fields. The element values will be a PHP null.
OCI_RETURN_LOBS | Returns the contents of LOBs instead of the LOB descriptors.

The default mode is OCI_BOTH.

Use the addition operator "+" to specify more than one mode at a time.

Valor Retornado

Returns an array with associative and/or numeric indices. If there are no more rows in the statement then false is returned.

By default, LOB columns are returned as LOB descriptors.

DATE columns are returned as strings formatted to the current date format. The default format can be changed with Oracle environment variables such as NLS_LANG or by a previously executed ALTER SESSION SET NLS_DATE_FORMAT command.

Oracle's default, non-case sensitive column names will have uppercase associative indices in the result array. Case-sensitive column names will have array indices using the exact column case. Use var_dump() on the result array to verify the appropriate case to use for each query.

The table name is not included in the array index. If your query contains two different columns with the same name, use OCI_NUM or add a column alias to the query to ensure name uniqueness, see example #7. Otherwise only one column will be returned via PHP.

Exemplos

Exemplo #1 oci_fetch_array() with OCI_BOTH

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_BOTH)) != false) {
// Use the uppercase column names for the associative array indices
echo $row[0] . " and " . $row['DEPARTMENT_ID'] . " are the same<br>\n";
echo $row[1] . " and " . $row['DEPARTMENT_NAME'] . " are the same<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #2 oci_fetch_array() with OCI_NUM

<?php

/*
Before running, create the table:
CREATE TABLE mytab (id NUMBER, description CLOB);
INSERT INTO mytab (id, description) values (1, 'A very long string');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_NUM)) != false) {
echo $row[0] . "<br>\n";
echo $row[1]->read(11) . "<br>\n"; // this will output first 11 bytes from DESCRIPTION
}

// Output is:
// 1
// A very long

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #3 oci_fetch_array() with OCI_ASSOC

<?php

/*
Before running, create the table:
CREATE TABLE mytab (id NUMBER, description CLOB);
INSERT INTO mytab (id, description) values (1, 'A very long string');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
echo $row['ID'] . "<br>\n";
echo $row['DESCRIPTION']->read(11) . "<br>\n"; // this will output first 11 bytes from DESCRIPTION
}

// Output is:
// 1
// A very long

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #4 oci_fetch_array() with OCI_RETURN_NULLS

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC)) != false) { // Ignore NULLs
var_dump($row);
}

/*
The above code prints:
array(1) {
[1]=>
string(1) "1"
}
*/

$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { // Fetch NULLs
var_dump($row);
}

/*
The above code prints:
array(2) {
[1]=>
string(1) "1"
["NULL"]=>
NULL
}
*/

?>

Exemplo #5 oci_fetch_array() with OCI_RETURN_LOBS

<?php

/*
Before running, create the table:
CREATE TABLE mytab (id NUMBER, description CLOB);
INSERT INTO mytab (id, description) values (1, 'A very long string');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) != false) {
echo $row['ID'] . "<br>\n";
echo $row['DESCRIPTION'] . "<br>\n"; // this contains all of DESCRIPTION
// In a loop, freeing the large variable before the 2nd fetch reduces PHP's peak memory usage
unset($row);
}

// Output is:
// 1
// A very long string

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #6 oci_fetch_array() with case sensitive column names

<?php

/*
Before running, create the table:
CREATE TABLE mytab ("Name" VARCHAR2(20), city VARCHAR2(20));
INSERT INTO mytab ("Name", city) values ('Chris', 'Melbourne');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);

// Because 'Name' was created as a case-sensitive column, that same
// case is used for the array index. However uppercase 'CITY' must
// be used for the case-insensitive column index
print $row['Name'] . "<br>\n"; // prints Chris
print $row['CITY'] . "<br>\n"; // prints Melbourne

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #7 oci_fetch_array() with columns having duplicate names

<?php

/*
Before running, create the tables:
CREATE TABLE mycity (id NUMBER, name VARCHAR2(20));
INSERT INTO mycity (id, name) values (1, 'Melbourne');
CREATE TABLE mycountry (id NUMBER, name VARCHAR2(20));
INSERT INTO mycountry (id, name) values (1, 'Australia');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT mycity.name, mycountry.name
FROM mycity, mycountry
WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);

// Output only contains one "NAME" entry:
// array(1) {
// ["NAME"]=>
// string(9) "Australia"
// }

// To query a repeated column name, use an SQL column alias like "AS ctnm":
$sql = 'SELECT mycity.name AS ctnm, mycountry.name
FROM mycity, mycountry
WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);

// Output now contains both columns selected:
// array(2) {
// ["CTNM"]=>
// string(9) "Melbourne"
// ["NAME"]=>
// string(9) "Australia"
// }

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #8 oci_fetch_array() with DATE columns

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Set the date format for this connection.
// For performance reasons, consider changing the format
// in a trigger or with environment variables instead
$stid = oci_parse($conn, "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'");
oci_execute($stid);

$stid = oci_parse($conn, 'SELECT hire_date FROM employees WHERE employee_id = 188');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
echo $row['HIRE_DATE'] . "<br>\n"; // prints 1997-06-14

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #9 oci_fetch_array() with REF CURSOR

<?php
/*
Create the PL/SQL stored procedure as:

CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
BEGIN
OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'BEGIN myproc(:rc); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Execute the returned REF CURSOR and fetch from it like a statement identifier
oci_execute($refcur);
echo "<table border='1'>\n";
while (($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #10 Pagination with oci_fetch_array() using a LIMIT-like query

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Find the version of the database
preg_match('/Release ([0-9]+)\./', oci_server_version($conn), $matches);
$oracleversion = $matches[1];

// This is the query you want to "page" through
$sql = 'SELECT city, postal_code FROM locations ORDER BY city';

if ($oracleversion >= 12) {
// Make use of Oracle 12c OFFSET / FETCH NEXT syntax
$sql = $sql . ' OFFSET :offset ROWS FETCH NEXT :numrows ROWS ONLY';
} else {
// Older Oracle versions need a nested query selecting a subset
// from $sql. Or, if the SQL statement is known at development
// time, consider using a row_number() function instead of this
// nested solution. In production environments, be careful to
// avoid SQL Injection issues with concatenation.
$sql = "SELECT * FROM (SELECT a.*, ROWNUM AS my_rnum
FROM ($sql) a
WHERE ROWNUM <= :offset + :numrows)
WHERE my_rnum > :offset";
}

$offset = 0; // skip this many rows
$numrows = 5; // return 5 rows
$stid = oci_parse($conn, $sql);
oci_bind_by_name($stid, ':numrows', $numrows);
oci_bind_by_name($stid, ':offset', $offset);
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
echo $row['CITY'] . " " . $row['POSTAL_CODE'] . "<br>\n";
}

// Output is:
// Beijing 190518
// Bern 3095
// Bombay 490231
// Geneva 1730
// Hiroshima 6823

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #11 oci_fetch_array() with Oracle Database Implicit Result Sets

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Requires OCI8 2.0 (or later) and Oracle Database 12c (or later)
// Also see oci_get_implicit_resultset()
$sql = 'DECLARE
c1 SYS_REFCURSOR;
BEGIN
OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
DBMS_SQL.RETURN_RESULT(c1);
OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
DBMS_SQL.RETURN_RESULT(c1);
END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

// Note: oci_fetch_all and oci_fetch() cannot be used in this manner
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

// Output is:
// Beijing 190518
// Bern 3095
// Bombay 490231
// CN
// CH
// IN

oci_free_statement($stid);
oci_close($conn);

?>

Notas

Nota:

Associative array indices need to be in uppercase for standard Oracle columns that were created with case insensitive names.

Nota:

Para consultas que retornam um grande número de linhas, o desempenho pode ser melhorado significativamente aumentando oci8.default_prefetch ou usando oci_set_prefetch().

Nota:

The function oci_fetch_array() is insignificantly slower than oci_fetch_assoc() or oci_fetch_row(), but is more flexible.

Veja Também

  • oci_fetch() - Fetches the next row from a query into internal buffers
  • oci_fetch_all() - Fetches multiple rows from a query into a two-dimensional array
  • oci_fetch_assoc() - Returns the next row from a query as an associative array
  • oci_fetch_object() - Returns the next row from a query as an object
  • oci_fetch_row() - Returns the next row from a query as a numeric array
  • oci_set_prefetch() - Sets number of rows to be prefetched by queries


Returns the next row from a query as an associative array

  • « oci_fetch_array
  • oci_fetch_object »
  • PHP Manual
  • Funções OCI8
  • Returns the next row from a query as an associative array

oci_fetch_assoc

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_assoc — Returns the next row from a query as an associative array

Descrição

oci_fetch_assoc(resource $statement): array|false

Returns an associative array containing the next result-set row of a query. Each array entry corresponds to a column of the row. This function is typically called in a loop until it returns false, indicating no more rows exist.

Calling oci_fetch_assoc() is identical to calling oci_fetch_array() with OCI_ASSOC + OCI_RETURN_NULLS.

Parâmetros

statement

Um identificador de declaração OCI8 válida criada por oci_parse() e executada por oci_execute() ou um identificador de declaração REF CURSOR.

Valor Retornado

Returns an associative array. If there are no more rows in the statement then false is returned.

Exemplos

Exemplo #1 oci_fetch_assoc() Example

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_assoc($stid)) != false) {
echo $row['DEPARTMENT_ID'] . " " . $row['DEPARTMENT_NAME'] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Notas

Nota:

See oci_fetch_array() for more examples of fetching rows.

Veja Também

  • oci_fetch() - Fetches the next row from a query into internal buffers
  • oci_fetch_all() - Fetches multiple rows from a query into a two-dimensional array
  • oci_fetch_array() - Returns the next row from a query as an associative or numeric array
  • oci_fetch_object() - Returns the next row from a query as an object
  • oci_fetch_row() - Returns the next row from a query as a numeric array


Returns the next row from a query as an object

  • « oci_fetch_assoc
  • oci_fetch_row »
  • PHP Manual
  • Funções OCI8
  • Returns the next row from a query as an object

oci_fetch_object

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_object — Returns the next row from a query as an object

Descrição

oci_fetch_object(resource $statement, int $mode = OCI_ASSOC | OCI_RETURN_NULLS): stdClass|false

Returns an object containing the next result-set row of a query. Each attribute of the object corresponds to a column of the row. This function is typically called in a loop until it returns false, indicating no more rows exist.

Para obter detalhes sobre o mapeamento dos tipos de dados realizado pela extensão OCI8, consulte os tipos de dados suportados pelo driver.

Parâmetros

statement

Um identificador de declaração OCI8 válida criada por oci_parse() e executada por oci_execute() ou um identificador de declaração REF CURSOR.

Valor Retornado

Returns an object. Each attribute of the object corresponds to a column of the row. If there are no more rows in the statement then false is returned.

Any LOB columns are returned as LOB descriptors.

DATE columns are returned as strings formatted to the current date format. The default format can be changed with Oracle environment variables such as NLS_LANG or by a previously executed ALTER SESSION SET NLS_DATE_FORMAT command.

Oracle's default, non-case sensitive column names will have uppercase attribute names. Case-sensitive column names will have attribute names using the exact column case. Use var_dump() on the result object to verify the appropriate case for attribute access.

Attribute values will be null for any NULL data fields.

Exemplos

Exemplo #1 oci_fetch_object() example

<?php

/*
Before running, create the table:
CREATE TABLE mytab (id NUMBER, description VARCHAR2(30));
INSERT INTO mytab (id, description) values (1, 'Fish and Chips');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
// Use upper case attribute names for each standard Oracle column
echo $row->ID . "<br>\n";
echo $row->DESCRIPTION . "<br>\n";
}

// Output is:
// 1
// Fish and Chips

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #2 oci_fetch_object() with case sensitive column names

<?php

/*
Before running, create the table with a case sensitive column name:
CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, "MyDescription" FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
// Use upper case attribute names for each standard Oracle column
echo $row->ID . "<br>\n";
// Use the exact case for the case sensitive column name
echo $row->MyDescription . "<br>\n";
}

// Output is:
// 1
// Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #3 oci_fetch_object() with LOBs

<?php

/*
Before running, create the table:
CREATE TABLE mytab (id NUMBER, description CLOB);
INSERT INTO mytab (id, description) values (1, 'A very long string');
COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
echo $row->ID . "<br>\n";
// The following will output the first 11 bytes from DESCRIPTION
echo $row->DESCRIPTION->read(11) . "<br>\n";
}

// Output is:
// 1
// A very long

oci_free_statement($stid);
oci_close($conn);

?>

Veja Também

  • oci_fetch() - Fetches the next row from a query into internal buffers
  • oci_fetch_all() - Fetches multiple rows from a query into a two-dimensional array
  • oci_fetch_assoc() - Returns the next row from a query as an associative array
  • oci_fetch_array() - Returns the next row from a query as an associative or numeric array
  • oci_fetch_row() - Returns the next row from a query as a numeric array


Returns the next row from a query as a numeric array

  • « oci_fetch_object
  • oci_fetch »
  • PHP Manual
  • Funções OCI8
  • Returns the next row from a query as a numeric array

oci_fetch_row

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_row — Returns the next row from a query as a numeric array

Descrição

oci_fetch_row(resource $statement): array|false

Returns a numerically indexed array containing the next result-set row of a query. Each array entry corresponds to a column of the row. This function is typically called in a loop until it returns false, indicating no more rows exist.

Calling oci_fetch_row() is identical to calling oci_fetch_array() with OCI_NUM + OCI_RETURN_NULLS.

Parâmetros

statement

Um identificador de declaração OCI8 válida criada por oci_parse() e executada por oci_execute() ou um identificador de declaração REF CURSOR.

Valor Retornado

Returns a numerically indexed array. If there are no more rows in the statement then false is returned.

Exemplos

Exemplo #1 oci_fetch_row() Example

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_row($stid)) != false) {
echo $row[0] . " " . $row[1] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Notas

Nota:

See oci_fetch_array() for more examples of fetching rows.

Veja Também

  • oci_fetch() - Fetches the next row from a query into internal buffers
  • oci_fetch_all() - Fetches multiple rows from a query into a two-dimensional array
  • oci_fetch_array() - Returns the next row from a query as an associative or numeric array
  • oci_fetch_assoc() - Returns the next row from a query as an associative array
  • oci_fetch_object() - Returns the next row from a query as an object


Fetches the next row from a query into internal buffers

  • « oci_fetch_row
  • oci_field_is_null »
  • PHP Manual
  • Funções OCI8
  • Fetches the next row from a query into internal buffers

oci_fetch

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch — Fetches the next row from a query into internal buffers

Descrição

oci_fetch(resource $statement): bool

Fetches the next row from a query into internal buffers accessible either with oci_result(), or by using variables previously defined with oci_define_by_name().

See oci_fetch_array() for general information about fetching data.

Parâmetros

statement

Um identificador de declaração OCI8 válida criada por oci_parse() e executada por oci_execute() ou um identificador de declaração REF CURSOR.

Valor Retornado

Returns true on success or false if there are no more rows in the statement.

Exemplos

Exemplo #1 oci_fetch() with defined variables

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);

// The defines MUST be done before executing
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);

oci_execute($stid);

// Each fetch populates the previously defined variables with the next row's data
while (oci_fetch($stid)) {
echo "Location id $locid is $city<br>\n";
}

// Displays:
// Location id 1000 is Roma
// Location id 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #2 oci_fetch() with oci_result()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (oci_fetch($stid)) {
echo oci_result($stid, 'LOCATION_ID') . " is ";
echo oci_result($stid, 'CITY') . "<br>\n";
}

// Displays:
// 1000 is Roma
// 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Notas

Nota:

Will not return rows from Oracle Database Implicit Result Sets. Use oci_fetch_array() instead.

Veja Também

  • oci_define_by_name() - Associates a PHP variable with a column for query fetches
  • oci_fetch_all() - Fetches multiple rows from a query into a two-dimensional array
  • oci_fetch_array() - Returns the next row from a query as an associative or numeric array
  • oci_fetch_assoc() - Returns the next row from a query as an associative array
  • oci_fetch_object() - Returns the next row from a query as an object
  • oci_fetch_row() - Returns the next row from a query as a numeric array
  • oci_result() - Returns field's value from the fetched row


Checks if a field in the currently fetched row is null

  • « oci_fetch
  • oci_field_name »
  • PHP Manual
  • Funções OCI8
  • Checks if a field in the currently fetched row is null

oci_field_is_null

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_is_null — Checks if a field in the currently fetched row is null

Descrição

oci_field_is_null(resource $statement, string|int $column): bool

Checks if the given column from the current row of statement is null.

Parâmetros

statement

A valid OCI statement identifier.

column

Can be the field's index (1-based) or name.

Valor Retornado

Returns true if column is null, false otherwise.

Exemplos

Exemplo #1 oci_field_name() example

<?php

// Create the table with:
// CREATE TABLE mytab (c1 NUMBER);
// INSERT INTO mytab VALUES (1);
// INSERT INTO mytab VALUES (NULL);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) != false) {
$ncols = oci_num_fields($stid);
for ($col = 1; $col <= $ncols; $col++) {
var_dump(oci_field_is_null($stid, $col));
}
}

// Outputs:
// bool(false)
// bool(true)

oci_free_statement($stid);
oci_close($conn);

?>


Returns the name of a field from the statement

  • « oci_field_is_null
  • oci_field_precision »
  • PHP Manual
  • Funções OCI8
  • Returns the name of a field from the statement

oci_field_name

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_name — Returns the name of a field from the statement

Descrição

oci_field_name(resource $statement, string|int $column): string|false

Returns the name of the column.

Parâmetros

statement

A valid OCI statement identifier.

column

Can be the field's index (1-based) or name.

Valor Retornado

Returns the name as a string, ou false em caso de falha

Exemplos

Exemplo #1 oci_field_name() example

<?php

// Create the table with:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
// clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
$column_name = oci_field_name($stid, $i);
$column_type = oci_field_type($stid, $i);

echo "<tr>";
echo "<td>$column_name</td>";
echo "<td>$column_type</td>";
echo "</tr>\n";
}

echo "</table>\n";

// Outputs:
// Name Type
// NUMBER_COL NUMBER
// VARCHAR2_COL VARCHAR2
// CLOB_COL CLOB
// DATE_COL DATE

oci_free_statement($stid);
oci_close($conn);

?>

Veja Também

  • oci_num_fields() - Returns the number of result columns in a statement
  • oci_field_type() - Returns a field's data type name
  • oci_field_size() - Returns field's size


Tell the precision of a field

  • « oci_field_name
  • oci_field_scale »
  • PHP Manual
  • Funções OCI8
  • Tell the precision of a field

oci_field_precision

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_precision — Tell the precision of a field

Descrição

oci_field_precision(resource $statement, string|int $column): int|false

Returns precision of the column.

For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale).

Parâmetros

statement

A valid OCI statement identifier.

column

Can be the field's index (1-based) or name.

Valor Retornado

Returns the precision as an integer, ou false em caso de falha

Exemplos

Exemplo #1 oci_field_precision() Example

<?php

// Create the table with:
// CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
echo oci_field_name($stid, $i) . " "
. oci_field_precision($stid, $i) . " "
. oci_field_scale($stid, $i) . "<br>\n";
}

// Outputs:
// C1 0 -127
// C2 126 -127
// C3 4 0
// C4 5 3

oci_free_statement($stid);
oci_close($conn);

?>

Veja Também

  • oci_field_scale() - Tell the scale of the field
  • oci_field_type() - Returns a field's data type name


Tell the scale of the field

  • « oci_field_precision
  • oci_field_size »
  • PHP Manual
  • Funções OCI8
  • Tell the scale of the field

oci_field_scale

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_scale — Tell the scale of the field

Descrição

oci_field_scale(resource $statement, string|int $column): int|false

Returns the scale of the column with column index.

For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale).

Parâmetros

statement

A valid OCI statement identifier.

column

Can be the field's index (1-based) or name.

Valor Retornado

Returns the scale as an integer, ou false em caso de falha

Exemplos

Exemplo #1 oci_field_scale() Example

<?php

// Create the table with:
// CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
echo oci_field_name($stid, $i) . " "
. oci_field_precision($stid, $i) . " "
. oci_field_scale($stid, $i) . "<br>\n";
}

// Outputs:
// C1 0 -127
// C2 126 -127
// C3 4 0
// C4 5 3

oci_free_statement($stid);
oci_close($conn);

?>

Veja Também

  • oci_field_precision() - Tell the precision of a field
  • oci_field_type() - Returns a field's data type name


Returns field's size

  • « oci_field_scale
  • oci_field_type_raw »
  • PHP Manual
  • Funções OCI8
  • Returns field's size

oci_field_size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_size — Returns field's size

Descrição

oci_field_size(resource $statement, string|int $column): int|false

Returns the size of a column.

Parâmetros

statement

A valid OCI statement identifier.

column

Can be the field's index (1-based) or name.

Valor Retornado

Returns the size of a column in bytes, ou false em caso de falha

Exemplos

Exemplo #1 oci_field_size() example

<?php

// Create the table with:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
// clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
$column_name = oci_field_name($stid, $i);
$column_type = oci_field_type($stid, $i);
$column_size = oci_field_size($stid, $i);

echo "<tr>";
echo "<td>$column_name</td>";
echo "<td>$column_type</td>";
echo "<td>$column_size</td>";
echo "</tr>\n";
}

echo "</table>\n";

// Outputs:
// Name Type Length
// NUMBER_COL NUMBER 22
// VARCHAR2_COL VARCHAR2 1
// CLOB_COL CLOB 4000
// DATE_COL DATE 7

oci_free_statement($stid);
oci_close($conn);

?>

Veja Também

  • oci_num_fields() - Returns the number of result columns in a statement
  • oci_field_name() - Returns the name of a field from the statement


Tell the raw Oracle data type of the field

  • « oci_field_size
  • oci_field_type »
  • PHP Manual
  • Funções OCI8
  • Tell the raw Oracle data type of the field

oci_field_type_raw

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_type_raw — Tell the raw Oracle data type of the field

Descrição

oci_field_type_raw(resource $statement, string|int $column): int|false

Returns Oracle's raw "SQLT" data type of the column.

If you want a field's type name, then use oci_field_type() instead.

Parâmetros

statement

A valid OCI statement identifier.

column

Can be the field's index (1-based) or name.

Valor Retornado

Returns Oracle's raw data type as a number, ou false em caso de falha

Exemplos

Exemplo #1 oci_field_type_raw() Example

<?php

// Create the table with:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1), clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows
$n = oci_num_fields($stid);
for ($i = 1; $i <= $n; ++$i) {
echo oci_field_name($stid, $i) . " is raw type: " . oci_field_type_raw($stid, $i) . "<br>\n";
}

// Output is:
// NUMBER_COL is raw type: 2
// VARCHAR2_COL is raw type: 1
// CLOB_COL is raw type: 112
// DATE_COL is raw type: 12

oci_free_statement($stid);
oci_close($conn);

?>


Returns a field's data type name

  • « oci_field_type_raw
  • oci_free_descriptor »
  • PHP Manual
  • Funções OCI8
  • Returns a field's data type name

oci_field_type

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_type — Returns a field's data type name

Descrição

oci_field_type(resource $statement, string|int $column): string|int|false

Returns a field's data type name.

Parâmetros

statement

A valid OCI statement identifier.

column

Can be the field's index (1-based) or name.

Valor Retornado

Returns the field data type as a string or an int, ou false em caso de falha

Exemplos

Exemplo #1 oci_field_type() example

<?php

// Create the table with:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
// clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
$column_name = oci_field_name($stid, $i);
$column_type = oci_field_type($stid, $i);
$column_size = oci_field_size($stid, $i);

echo "<tr>";
echo "<td>$column_name</td>";
echo "<td>$column_type</td>";
echo "<td>$column_size</td>";
echo "</tr>\n";
}

echo "</table>\n";

// Outputs:
// Name Type Length
// NUMBER_COL NUMBER 22
// VARCHAR2_COL VARCHAR2 1
// CLOB_COL CLOB 4000
// DATE_COL DATE 7

oci_free_statement($stid);
oci_close($conn);

?>

Veja Também

  • oci_num_fields() - Returns the number of result columns in a statement
  • oci_field_name() - Returns the name of a field from the statement
  • oci_field_size() - Returns field's size


Frees a descriptor

  • « oci_field_type
  • oci_free_statement »
  • PHP Manual
  • Funções OCI8
  • Frees a descriptor

oci_free_descriptor

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_free_descriptor — Frees a descriptor

Descrição

oci_free_descriptor(OCILob $lob): bool

Frees a descriptor allocated by oci_new_descriptor().

Parâmetros

descriptor

Descriptor allocated by oci_new_descriptor().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Nota:

This function is commonly used as a method OCILOB::free.

Veja Também

  • OCILOB::free


Frees all resources associated with statement or cursor

  • « oci_free_descriptor
  • oci_get_implicit_resultset »
  • PHP Manual
  • Funções OCI8
  • Frees all resources associated with statement or cursor

oci_free_statement

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_free_statement — Frees all resources associated with statement or cursor

Descrição

oci_free_statement(resource $statement): bool

Frees resources associated with Oracle's cursor or statement, which was received from as a result of oci_parse() or obtained from Oracle.

Parâmetros

statement

A valid OCI statement identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets

  • « oci_free_statement
  • oci_lob_copy »
  • PHP Manual
  • Funções OCI8
  • Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets

oci_get_implicit_resultset

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL OCI8 >= 2.0.0)

oci_get_implicit_resultset — Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets

Descrição

oci_get_implicit_resultset(resource $statement): resource|false

Used to fetch consectutive sets of query results after the execution of a stored or anonymous Oracle PL/SQL block where that block returns query results with the Oracle Database 12 (or later) DBMS_SQL.RETURN_RESULT PL/SQL function. This allows PL/SQL blocks to easily return query results.

The child statement can be used with any of the OCI8 fetching
functions: oci_fetch(), oci_fetch_all(),
oci_fetch_array(), oci_fetch_object(),
oci_fetch_assoc() or oci_fetch_row()

Child statements inherit their parent statement's prefetch value, or it can be explicitly set with oci_set_prefetch().

Parâmetros

statement

A valid OCI8 statement identifier created by oci_parse() and executed by oci_execute(). The statement identifier may or may not be associated with a SQL statement that returns Implicit Result Sets.

Valor Retornado

Returns a statement handle for the next child statement available on statement. Returns false when child statements do not exist, or all child statements have been returned by previous calls to oci_get_implicit_resultset().

Exemplos

Exemplo #1 Fetching Implicit Result Sets in a loop

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
c1 SYS_REFCURSOR;
BEGIN
OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
DBMS_SQL.RETURN_RESULT(c1);
OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
DBMS_SQL.RETURN_RESULT(c1);
END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (($stid_c = oci_get_implicit_resultset($stid))) {
echo "<h2>New Implicit Result Set:</h2>\n";
echo "<table>\n";
while (($row = oci_fetch_array($stid_c, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
}

// Output is:
// New Implicit Result Set:
// Beijing 190518
// Bern 3095
// Bombay 490231
// New Implicit Result Set:
// CN
// CH
// IN

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #2 Getting child statement handles individually

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
c1 SYS_REFCURSOR;
BEGIN
OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
DBMS_SQL.RETURN_RESULT(c1);
OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
DBMS_SQL.RETURN_RESULT(c1);
END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

$stid_1 = oci_get_implicit_resultset($stid);
$stid_2 = oci_get_implicit_resultset($stid);

$row = oci_fetch_array($stid_1, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_2, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_1, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_2, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);

// Output is:
// array(2) {
// ["CITY"]=>
// string(7) "Beijing"
// ["POSTAL_CODE"]=>
// string(6) "190518"
// }
// array(1) {
// ["COUNTRY_ID"]=>
// string(2) "CN"
// }
// array(2) {
// ["CITY"]=>
// string(4) "Bern"
// ["POSTAL_CODE"]=>
// string(4) "3095"
// }
// array(1) {
// ["COUNTRY_ID"]=>
// string(2) "CH"
// }

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #3 Explicitly setting the Prefetch Count

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
c1 SYS_REFCURSOR;
BEGIN
OPEN c1 FOR SELECT city, postal_code FROM locations ORDER BY city;
DBMS_SQL.RETURN_RESULT(c1);
END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

$stid_c = oci_get_implicit_resultset($stid);
oci_set_prefetch($stid_c, 200); // Set the prefetch before fetching from the child statement
echo "<table>\n";
while (($row = oci_fetch_array($stid_c, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #4 Implicit Result Set example without using oci_get_implicit_resultset()

All results from all queries are returned consecutively.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
c1 SYS_REFCURSOR;
BEGIN
OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
DBMS_SQL.RETURN_RESULT(c1);
OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
DBMS_SQL.RETURN_RESULT(c1);
END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

// Note: oci_fetch_all and oci_fetch() cannot be used in this manner
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

// Output is:
// Beijing 190518
// Bern 3095
// Bombay 490231
// CN
// CH
// IN

oci_free_statement($stid);
oci_close($conn);

?>

Notas

Nota:

Para consultas que retornam um grande número de linhas, o desempenho pode ser melhorado significativamente aumentando oci8.default_prefetch ou usando oci_set_prefetch().


Copies large object

  • « oci_get_implicit_resultset
  • oci_lob_is_equal »
  • PHP Manual
  • Funções OCI8
  • Copies large object

oci_lob_copy

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_lob_copy — Copies large object

Descrição

oci_lob_copy(OCILob $to, OCILob $from, ?int $length = null): bool

Copies a large object or a part of a large object to another large object. Old LOB-recipient data will be overwritten.

If you need to copy a particular part of a LOB to a particular position of a LOB, use OCILob::seek() to move LOB internal pointers.

Parâmetros

to

The destination LOB.

from

The copied LOB.

length

Indicates the length of data to be copied.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | length is now nullable.

Notas

Nota:

The OCILob class was called OCI-Lob prior to PHP 8 and PECL OCI8 3.0.0.


Compares two LOB/FILE locators for equality

  • « oci_lob_copy
  • oci_new_collection »
  • PHP Manual
  • Funções OCI8
  • Compares two LOB/FILE locators for equality

oci_lob_is_equal

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_lob_is_equal — Compares two LOB/FILE locators for equality

Descrição

oci_lob_is_equal(OCILob $lob1, OCILob $lob2): bool

Compares two LOB/FILE locators.

Parâmetros

lob1

A LOB identifier.

lob2

A LOB identifier.

Valor Retornado

Returns true if these objects are equal, false otherwise.

Notas

Nota:

The OCILob class was called OCI-Lob prior to PHP 8 and PECL OCI8 3.0.0.


Allocates new collection object

  • « oci_lob_is_equal
  • oci_new_connect »
  • PHP Manual
  • Funções OCI8
  • Allocates new collection object

oci_new_collection

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_collection — Allocates new collection object

Descrição

oci_new_collection(resource $connection, string $type_name, ?string $schema = null): OCICollection|false

Allocates a new collection object.

Parâmetros

connection

An Oracle connection identifier, returned by oci_connect() or oci_pconnect().

type_name

Should be a valid named type (uppercase).

schema

Should point to the scheme, where the named type was created. The name of the current user is used when null is passed.

Valor Retornado

Returns a new OCICollection object or false on error.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | schema is now nullable.

Notas

Nota:

The OCICollection class was called OCI-Collection prior to PHP 8 and OCI8 3.0.0.


Connect to the Oracle server using a unique connection

  • « oci_new_collection
  • oci_new_cursor »
  • PHP Manual
  • Funções OCI8
  • Connect to the Oracle server using a unique connection

oci_new_connect

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_connect — Connect to the Oracle server using a unique connection

Descrição

oci_new_connect(
string $username,
string $password,
?string $connection_string = null,
string $encoding = "",
int $session_mode = OCI_DEFAULT
): resource|false

Establishes a new connection to an Oracle server and logs on.

Unlike oci_connect() and oci_pconnect(), oci_new_connect() does not cache connections and will always return a brand-new freshly opened connection handle. This is useful if your application needs transactional isolation between two sets of queries.

Parâmetros

username

The Oracle user name.

password

The password for username.

connection_string

Contém a instância do Oracle à qual se conectar. Pode ser uma » string Easy Connect ou um Connect Name do arquivo tnsnames.ora ou o nome de uma instância local do Oracle.

Se não especificado ou null, o PHP usará variáveis de ambiente como TWO_TASK (no Linux) ou LOCAL (no Windows) e ORACLE_SID para determinar a instância do Oracle à qual se conectar.

Para usar o método de nomenclatura Easy Connect, o PHP precisa ter sido compilado com as bibliotecas Oracle Client 10g ou superiores. A string Easy Connect para o Oracle 10g tem o formato: [//]nome_do_servidor[:porta][/nome_do_servico]. A partir do Oracle 11g a sintaxe é: [//]nome_do_servidor[:porta][/nome_do_servico][:tipo_de_servidor][/nome_da_instancia]. Outras opções foram introduzidas com o Oracle 19c, incluindo as configurações de timeout e keep-alive. Consulte a documentação do Oracle. Os nomes dos serviços podem ser encontrados executando o utilitário Oracle lsnrctl status na máquina do servidor de banco de dados.

O arquivo tnsnames.ora pode estar no caminho de pesquisa Oracle Net, que inclui /seu/caminho/para/instantclient/network/admin, $ORACLE_HOME/network/admin e /etc. Como alternativa, defina TNS_ADMIN para que $TNS_ADMIN/tnsnames.ora possa ser lido. Certifique-se de que o servidor web tem acesso de leitura ao arquivo.

encoding

Determina o conjunto de caracteres usado pelas bibliotecas Oracle Client. O conjunto de caracteres não precisa corresponder ao conjunto de caracteres usado pelo banco de dados. Se não corresponderem, o Oracle fará o possível para converter os dados de e para o conjunto de caracteres do banco de dados. Dependendo dos conjuntos de caracteres, isso pode não fornecer resultados utilizáveis. A conversão também adiciona alguma sobrecarga de tempo.

Se não for especificado, as bibliotecas Oracle Client determinam um conjunto de caracteres a partir da variável de ambiente NLS_LANG.

Passar este parâmetro pode reduzir o tempo necessário para conectar.

session_mode

Este parâmetro está disponível a partir do PHP 5 (PECL OCI8 1.1) e aceita os seguintes valores: OCI_DEFAULT, OCI_SYSOPER e OCI_SYSDBA. Se OCI_SYSOPER ou OCI_SYSDBA forem especificadas, esta função tentará estabelecer uma conexão privilegiada usando credenciais externas. Conexões privilegiadas estão desabilitadas por padrão. Para habilitá-las é preciso configurar oci8.privileged_connect para On.

O PHP 5.3 (PECL OCI8 1.3.4) introduziu o valor de modo OCI_CRED_EXT. Ele informa ao Oracle para usar autenticação External ou OS, que deve ser configurada no banco de dados. A flag OCI_CRED_EXT só pode ser usada com o usuário "/" e uma senha vazia. oci8.privileged_connect pode ser On ou Off.

OCI_CRED_EXT pode ser combinado com os modos OCI_SYSOPER ou OCI_SYSDBA.

OCI_CRED_EXT não é suportado no Windows por razões de segurança.

Valor Retornado

Returns a connection identifier or false on error.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | connection_string is now nullable.

Exemplos

The following demonstrates how you can separate connections.

Exemplo #1 oci_new_connect() example

<?php

// create table mytab (mycol number);

function query($name, $c)
{
echo "Querying $name\n";
$s = oci_parse($c, "select * from mytab");
oci_execute($s, OCI_NO_AUTO_COMMIT);
$row = oci_fetch_array($s, OCI_ASSOC);
if (!$row) {
echo "No rows\n";
} else {
do {
foreach ($row as $item)
echo $item . " ";
echo "\n";
} while (($row = oci_fetch_array($s, OCI_ASSOC)) != false);
}
}

$c1 = oci_connect("hr", "welcome", "localhost/orcl");
$c2 = oci_new_connect("hr", "welcome", "localhost/orcl");

$s = oci_parse($c1, "insert into mytab values(1234)");
oci_execute($s, OCI_NO_AUTO_COMMIT);

query("basic connection", $c1);
query("new connection", $c2);
oci_commit($c1);
query("new connection after commit", $c2);

// Output is:
// Querying basic connection
// 1234
// Querying new connection
// No rows
// Querying new connection after commit
// 1234

?>

See oci_connect() for further examples of parameter usage.

Veja Também

  • oci_connect() - Connect to an Oracle database
  • oci_pconnect() - Connect to an Oracle database using a persistent connection


Allocates and returns a new cursor (statement handle)

  • « oci_new_connect
  • oci_new_descriptor »
  • PHP Manual
  • Funções OCI8
  • Allocates and returns a new cursor (statement handle)

oci_new_cursor

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_cursor — Allocates and returns a new cursor (statement handle)

Descrição

oci_new_cursor(resource $connection): resource|false

Allocates a new statement handle on the specified connection.

Parâmetros

connection

An Oracle connection identifier, returned by oci_connect() or oci_pconnect().

Valor Retornado

Returns a new statement handle, or false on error.

Exemplos

Exemplo #1 Binding a REF CURSOR in an Oracle stored procedure call

<?php

// Precreate:
// create or replace procedure myproc(myrc out sys_refcursor) as
// begin
// open myrc for select first_name from employees;
// end;

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$curs = oci_new_cursor($conn);
$stid = oci_parse($conn, "begin myproc(:cursbv); end;");
oci_bind_by_name($stid, ":cursbv", $curs, -1, OCI_B_CURSOR);
oci_execute($stid);

oci_execute($curs); // Execute the REF CURSOR like a normal statement id
while (($row = oci_fetch_array($curs, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo $row['FIRST_NAME'] . "<br />\n";
}

oci_free_statement($stid);
oci_free_statement($curs);
oci_close($conn);

?>


Initializes a new empty LOB or FILE descriptor

  • « oci_new_cursor
  • oci_num_fields »
  • PHP Manual
  • Funções OCI8
  • Initializes a new empty LOB or FILE descriptor

oci_new_descriptor

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_descriptor — Initializes a new empty LOB or FILE descriptor

Descrição

oci_new_descriptor(resource $connection, int $type = OCI_DTYPE_LOB): ?OCILob

Allocates resources to hold descriptor or LOB locator.

Parâmetros

connection

An Oracle connection identifier, returned by oci_connect() or oci_pconnect().

type

Valid values for type are: OCI_DTYPE_FILE, OCI_DTYPE_LOB and OCI_DTYPE_ROWID.

Valor Retornado

Returns a new LOB or FILE descriptor on success, or null on failure.

Exemplos

Exemplo #1 oci_new_descriptor() example

<?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 = oci_connect($user, $password);
$stmt = oci_parse($conn, "select rowid from $table $where");
$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
oci_define_by_name($stmt, "ROWID", $rowid);
oci_execute($stmt);
while (oci_fetch($stmt)) {
$nrows = oci_num_rows($stmt);
$delete = oci_parse($conn, "delete from $table where ROWID = :rid");
oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);
oci_execute($delete);
echo "$nrows\n";
if (($nrows % $commitsize) == 0) {
oci_commit($conn);
}
}
$nrows = oci_num_rows($stmt);
echo "$nrows deleted...\n";
oci_free_statement($stmt);
oci_close($conn);
?>
<?php
/* This script demonstrates file upload to LOB columns
* The formfield used for this example looks like this
* <form action="upload.php" method="post" enctype="multipart/form-data">
* <input type="file" name="lob_upload" />
* ...
*/
if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
} else {

// $lob_upload contains the temporary filename of the uploaded file

// see also the features section on file upload,
// if you would like to use secure uploads

$conn = oci_connect($user, $password);
$lob = oci_new_descriptor($conn, OCI_D_LOB);
$stmt = oci_parse($conn, "insert into $table (id, the_blob)
values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB);
oci_execute($stmt, OCI_DEFAULT);
if ($lob->savefile($lob_upload)){
oci_commit($conn);
echo "Blob successfully uploaded\n";
}else{
echo "Couldn't upload Blob\n";
}
$lob->free();
oci_free_statement($stmt);
oci_close($conn);
}
?>

Exemplo #2 oci_new_descriptor() example

<?php
/* Calling PL/SQL stored procedures which contain clobs as input
* parameters.
* Example PL/SQL stored procedure signature is:
*
* PROCEDURE save_data
* Argument Name Type In/Out Default?
* ------------------------------ ----------------------- ------ --------
* KEY NUMBER(38) IN
* DATA CLOB IN
*
*/

$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stmt, ':key', $key);
oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
$clob->write($data);
oci_execute($stmt, OCI_DEFAULT);
oci_commit($conn);
$clob->free();
oci_free_statement($stmt);
?>

Veja Também

  • oci_bind_by_name() - Binds a PHP variable to an Oracle placeholder


Returns the number of result columns in a statement

  • « oci_new_descriptor
  • oci_num_rows »
  • PHP Manual
  • Funções OCI8
  • Returns the number of result columns in a statement

oci_num_fields

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_num_fields — Returns the number of result columns in a statement

Descrição

oci_num_fields(resource $statement): int

Gets the number of columns in the given statement.

Parâmetros

statement

A valid OCI statement identifier.

Valor Retornado

Returns the number of columns as an int.

Exemplos

Exemplo #1 oci_num_fields() example

<?php

// Create the table with:
// CREATE TABLE mytab (id NUMBER, quantity NUMBER);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
echo oci_field_name($stid, $i) . " " . oci_field_type($stid, $i) . "<br>\n";
}

// Outputs:
// ID NUMBER
// QUANTITY NUMBER

oci_free_statement($stid);
oci_close($conn);

?>


Returns number of rows affected during statement execution

  • « oci_num_fields
  • oci_parse »
  • PHP Manual
  • Funções OCI8
  • Returns number of rows affected during statement execution

oci_num_rows

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_num_rows — Returns number of rows affected during statement execution

Descrição

oci_num_rows(resource $statement): int|false

Gets the number of rows affected during statement execution.

Parâmetros

statement

A valid OCI statement identifier.

Valor Retornado

Returns the number of rows affected as an integer, ou false em caso de falha

Exemplos

Exemplo #1 oci_num_rows() example

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "create table emp2 as select * from employees");
oci_execute($stid);
echo oci_num_rows($stid) . " rows inserted.<br />\n";
oci_free_statement($stid);

$stid = oci_parse($conn, "delete from emp2");
oci_execute($stid, OCI_DEFAULT);
echo oci_num_rows($stid) . " rows deleted.<br />\n";
oci_commit($conn);
oci_free_statement($stid);

$stid = oci_parse($conn, "drop table emp2");
oci_execute($stid);
oci_free_statement($stid);

oci_close($conn);

?>

Notas

Nota:

This function does not return number of rows selected! For SELECT statements this function will return the number of rows, that were fetched to the buffer with oci_fetch*() functions.


Prepares an Oracle statement for execution

  • « oci_num_rows
  • oci_password_change »
  • PHP Manual
  • Funções OCI8
  • Prepares an Oracle statement for execution

oci_parse

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_parse — Prepares an Oracle statement for execution

Descrição

oci_parse(resource $connection, string $sql): resource|false

Prepares sql using connection and returns the statement identifier, which can be used with oci_bind_by_name(), oci_execute() and other functions.

Statement identifiers can be freed with oci_free_statement() or by setting the variable to null.

Parâmetros

connection

An Oracle connection identifier, returned by oci_connect(), oci_pconnect(), or oci_new_connect().

sql

The SQL or PL/SQL statement.

SQL statements should not end with a semi-colon (";"). PL/SQL statements should end with a semi-colon (";").

Valor Retornado

Returns a statement handle on success, or false on error.

Exemplos

Exemplo #1 oci_parse() example for SQL statements

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

// Parse the statement. Note there is no final semi-colon in the SQL statement
$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

?>

Exemplo #2 oci_parse() example for PL/SQL statements

<?php

/*
Before running the PHP program, create a stored procedure in
SQL*Plus or SQL Developer:

CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
BEGIN
p2 := p1 * 2;
END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 = 8;

// When parsing PL/SQL programs, there should be a final semi-colon in the string
$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n"; // prints 16

oci_free_statement($stid);
oci_close($conn);

?>

Notas

Nota:

This function does not validate sql. The only way to find out if sql is a valid SQL or PL/SQL statement is to execute it.

Veja Também

  • oci_execute() - Executes a statement
  • oci_free_statement() - Frees all resources associated with statement or cursor


Changes password of Oracle's user

  • « oci_parse
  • oci_pconnect »
  • PHP Manual
  • Funções OCI8
  • Changes password of Oracle's user

oci_password_change

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_password_change — Changes password of Oracle's user

Descrição

oci_password_change(
resource $connection,
string $username,
string $old_password,
string $new_password
): bool
oci_password_change(
string $database_name,
string $username,
string $old_password,
string $new_password
): resource

Changes password for user with username.

The oci_password_change() function is most useful for PHP command-line scripts, or when non-persistent connections are used throughout the PHP application.

Parâmetros

connection

An Oracle connection identifier, returned by oci_connect() or oci_pconnect().

username

The Oracle user name.

old_password

The old password.

new_password

The new password to be set.

database_name

The database name.

Valor Retornado

When database_name is provided, oci_password_change() returns true on success, ou false em caso de falha. When connection is provided, oci_password_change() returns the connection resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 oci_password_change() example changing the password of an already connected user

<?php

$dbase = 'localhost/orcl';
$user = 'cj';
$current_pw = 'welcome';
$new_pw = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
oci_password_change($c, $user, $current_pw, $new_pw);
echo "New password is : " . $new_pw . "\n";

?>

Exemplo #2 oci_password_change() example of connecting and changing the password in one step

<?php

$dbase = 'localhost/orcl';
$user = 'cj';
$current_pw = 'welcome';
$new_pw = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
if (!$c) {
$m = oci_error();
if ($m['code'] == 28001) { // "ORA-28001: the password has expired"
// Login and reset password at the same time
$c = oci_password_change($dbase, $user, $current_pw, $new_pw);
if ($c) {
echo "New password is : " . $new_pw . "\n";
}
}
}

if (!$c) { // The original error wasn't 28001, or the password change failed
$m = oci_error();
trigger_error('Could not connect to database: '. $m['message'], E_USER_ERROR);
}

// Use the connection $c
// ...

?>

Notas

Nota:

Changing the password either with this function or directly in Oracle should be done carefully. This is because PHP applications may continue to successfully reuse persistent connections by authenticating with the old password. The best practice is to restart all web servers whenever the user password is changed.

Nota:

If upgrading the Oracle client libraries or the database from a release prior to 11.2.0.3 to version 11.2.0.3 or higher, oci_password_change() may give the error "ORA-1017: invalid username/password" unless both client and server versions are upgraded at the same time.

Nota:

The second oci_password_change() syntax is available since OCI8 version 1.1.


Connect to an Oracle database using a persistent connection

  • « oci_password_change
  • oci_register_taf_callback »
  • PHP Manual
  • Funções OCI8
  • Connect to an Oracle database using a persistent connection

oci_pconnect

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_pconnect — Connect to an Oracle database using a persistent connection

Descrição

oci_pconnect(
string $username,
string $password,
?string $connection_string = null,
string $encoding = "",
int $session_mode = OCI_DEFAULT
): resource|false

Creates a persistent connection to an Oracle server and logs on.

Persistent connections are cached and re-used between requests, resulting in reduced overhead on each page load; a typical PHP application will have a single persistent connection open against an Oracle server per Apache child process (or PHP FPM process). See the OCI8 Connection Handling and Connection Pooling section for more information.

Parâmetros

username

The Oracle user name.

password

The password for username.

connection_string

Contém a instância do Oracle à qual se conectar. Pode ser uma » string Easy Connect ou um Connect Name do arquivo tnsnames.ora ou o nome de uma instância local do Oracle.

Se não especificado ou null, o PHP usará variáveis de ambiente como TWO_TASK (no Linux) ou LOCAL (no Windows) e ORACLE_SID para determinar a instância do Oracle à qual se conectar.

Para usar o método de nomenclatura Easy Connect, o PHP precisa ter sido compilado com as bibliotecas Oracle Client 10g ou superiores. A string Easy Connect para o Oracle 10g tem o formato: [//]nome_do_servidor[:porta][/nome_do_servico]. A partir do Oracle 11g a sintaxe é: [//]nome_do_servidor[:porta][/nome_do_servico][:tipo_de_servidor][/nome_da_instancia]. Outras opções foram introduzidas com o Oracle 19c, incluindo as configurações de timeout e keep-alive. Consulte a documentação do Oracle. Os nomes dos serviços podem ser encontrados executando o utilitário Oracle lsnrctl status na máquina do servidor de banco de dados.

O arquivo tnsnames.ora pode estar no caminho de pesquisa Oracle Net, que inclui /seu/caminho/para/instantclient/network/admin, $ORACLE_HOME/network/admin e /etc. Como alternativa, defina TNS_ADMIN para que $TNS_ADMIN/tnsnames.ora possa ser lido. Certifique-se de que o servidor web tem acesso de leitura ao arquivo.

encoding

Determina o conjunto de caracteres usado pelas bibliotecas Oracle Client. O conjunto de caracteres não precisa corresponder ao conjunto de caracteres usado pelo banco de dados. Se não corresponderem, o Oracle fará o possível para converter os dados de e para o conjunto de caracteres do banco de dados. Dependendo dos conjuntos de caracteres, isso pode não fornecer resultados utilizáveis. A conversão também adiciona alguma sobrecarga de tempo.

Se não for especificado, as bibliotecas Oracle Client determinam um conjunto de caracteres a partir da variável de ambiente NLS_LANG.

Passar este parâmetro pode reduzir o tempo necessário para conectar.

session_mode

Este parâmetro está disponível a partir do PHP 5 (PECL OCI8 1.1) e aceita os seguintes valores: OCI_DEFAULT, OCI_SYSOPER e OCI_SYSDBA. Se OCI_SYSOPER ou OCI_SYSDBA forem especificadas, esta função tentará estabelecer uma conexão privilegiada usando credenciais externas. Conexões privilegiadas estão desabilitadas por padrão. Para habilitá-las é preciso configurar oci8.privileged_connect para On.

O PHP 5.3 (PECL OCI8 1.3.4) introduziu o valor de modo OCI_CRED_EXT. Ele informa ao Oracle para usar autenticação External ou OS, que deve ser configurada no banco de dados. A flag OCI_CRED_EXT só pode ser usada com o usuário "/" e uma senha vazia. oci8.privileged_connect pode ser On ou Off.

OCI_CRED_EXT pode ser combinado com os modos OCI_SYSOPER ou OCI_SYSDBA.

OCI_CRED_EXT não é suportado no Windows por razões de segurança.

Valor Retornado

Returns a connection identifier or false on error.

Exemplos

Exemplo #1 Basic oci_pconnect() Example using Easy Connect syntax

<?php

// Connects to the XE service (i.e. database) on the "localhost" machine
$conn = oci_pconnect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

?>

See oci_connect() for further examples of parameter usage.

Notas

Nota: The lifetime and maximum number of persistent Oracle connections per PHP process can be tuned by setting the following configuration values: oci8.persistent_timeout, oci8.ping_interval and oci8.max_persistent.

Veja Também

  • oci_connect() - Connect to an Oracle database
  • oci_new_connect() - Connect to the Oracle server using a unique connection


Register a user-defined callback function for Oracle Database TAF

  • « oci_pconnect
  • oci_result »
  • PHP Manual
  • Funções OCI8
  • Register a user-defined callback function for Oracle Database TAF

oci_register_taf_callback

(PHP 7.0 >= 7.0.21, PHP 8, PHP 7 >= 7.1.7, PHP 8, PECL OCI8 >= 2.1.7)

oci_register_taf_callback — Register a user-defined callback function for Oracle Database TAF

Descrição

oci_register_taf_callback(resource $connection, ?callable $callback): bool

Registers a user-defined callback function to connection. If connection fails due to instance or network failure, the registered callback function will be invoked for several times during failover. See OCI8 Transparent Application Failover (TAF) Support for information.

When oci_register_taf_callback() is called multiple times, each registration overwrites the previous one.

Use oci_unregister_taf_callback() to explicitly unregister a user-defined callback.

TAF callback registration will NOT be saved across persistent connections, therefore the callback needs to be re-registered for a new persistent connection.

Parâmetros

connection

An Oracle connection identifier.

callback

A user-defined callback to register for Oracle TAF. It can be a string of the function name or a Closure (anonymous function).

The interface of a TAF user-defined callback function is as follows:

userCallbackFn(resource $connection, int $event, int $type): int

See the parameter description and an example on OCI8 Transparent Application Failover (TAF) Support page.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • oci_unregister_taf_callback() - Unregister a user-defined callback function for Oracle Database TAF


Returns field's value from the fetched row

  • « oci_register_taf_callback
  • oci_rollback »
  • PHP Manual
  • Funções OCI8
  • Returns field's value from the fetched row

oci_result

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_result — Returns field's value from the fetched row

Descrição

oci_result(resource $statement, string|int $column): mixed

Returns the data from column in the current row, fetched by oci_fetch().

Para obter detalhes sobre o mapeamento dos tipos de dados realizado pela extensão OCI8, consulte os tipos de dados suportados pelo driver.

Parâmetros

statement

column

Can be either use the column number (1-based) or the column name. The case of the column name must be the case that Oracle meta data describes the column as, which is uppercase for columns created case insensitively.

Valor Retornado

Returns everything as strings except for abstract types (ROWIDs, LOBs and FILEs). Returns false on error.

Exemplos

Exemplo #1 oci_fetch() with oci_result()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (oci_fetch($stid)) {
echo oci_result($stid, 'LOCATION_ID') . " is ";
echo oci_result($stid, 'CITY') . "<br>\n";
}

// Displays:
// 1000 is Roma
// 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Veja Também

  • oci_fetch_array() - Returns the next row from a query as an associative or numeric array
  • oci_fetch_assoc() - Returns the next row from a query as an associative array
  • oci_fetch_object() - Returns the next row from a query as an object
  • oci_fetch_row() - Returns the next row from a query as a numeric array
  • oci_fetch_all() - Fetches multiple rows from a query into a two-dimensional array


Rolls back the outstanding database transaction

  • « oci_result
  • oci_server_version »
  • PHP Manual
  • Funções OCI8
  • Rolls back the outstanding database transaction

oci_rollback

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_rollback — Rolls back the outstanding database transaction

Descrição

oci_rollback(resource $connection): bool

Reverts all uncommitted changes for the Oracle connection and ends the transaction. It releases all locks held. All Oracle SAVEPOINTS are erased.

A transaction begins when the first SQL statement that changes data is executed with oci_execute() using the OCI_NO_AUTO_COMMIT flag. Further data changes made by other statements become part of the same transaction. Data changes made in a transaction are temporary until the transaction is committed or rolled back. Other users of the database will not see the changes until they are committed.

When inserting or updating data, using transactions is recommended for relational data consistency and for performance reasons.

Parâmetros

connection

An Oracle connection identifier, returned by oci_connect(), oci_pconnect() or oci_new_connect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 oci_rollback() example

<?php

// Insert into several tables, rolling back the changes if an error occurs

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// The OCI_NO_AUTO_COMMIT flag tells Oracle not to commit the INSERT immediately
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
$e = oci_error($stid);
oci_rollback($conn); // rollback changes to both tables
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Commit the changes to both tables
$r = oci_commit($conn);
if (!r) {
$e = oci_error($conn);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Exemplo #2 Rolling back to a SAVEPOINT example

<?php
$stid = oci_parse($conn, 'UPDATE mytab SET id = 1111');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// Create the savepoint
$stid = oci_parse($conn, 'SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

$stid = oci_parse($conn, 'UPDATE mytab SET id = 2222');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// Use an explicit SQL statement to rollback to the savepoint
$stid = oci_parse($conn, 'ROLLBACK TO SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

oci_commit($conn); // mytab now has id of 1111
?>

Notas

Nota:

Transactions are automatically rolled back when you close the connection, or when the script ends, whichever is soonest. You need to explicitly call oci_commit() to commit the transaction.

Any call to oci_execute() that uses OCI_COMMIT_ON_SUCCESS mode explicitly or by default will commit any previous uncommitted transaction.

Any Oracle DDL statement such as CREATE or DROP will automatically commit any uncommitted transaction.

Veja Também

  • oci_commit() - Commits the outstanding database transaction
  • oci_execute() - Executes a statement


Returns the Oracle Database version

  • « oci_rollback
  • oci_set_action »
  • PHP Manual
  • Funções OCI8
  • Returns the Oracle Database version

oci_server_version

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_server_version — Returns the Oracle Database version

Descrição

oci_server_version(resource $connection): string|false

Returns a string with the Oracle Database version and available options

Parâmetros

connection

Valor Retornado

Returns the version information as a string or false on error.

Exemplos

Exemplo #1 oci_server_version() example

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
echo "Server Version: " . oci_server_version($conn);

// Displays:
// Server Version: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
// With the Partitioning, OLAP, Data Mining and Real Application Testing option

oci_close($conn);

?>

Veja Também

  • oci_client_version() - Returns the Oracle client library version


Sets the action name

  • « oci_server_version
  • oci_set_call_timeout »
  • PHP Manual
  • Funções OCI8
  • Sets the action name

oci_set_action

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_action — Sets the action name

Descrição

oci_set_action(resource $connection, string $action): bool

Sets the action name for Oracle tracing.

The action name is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when an SQL statement is executed.

The action name can subsequently be queried from database administration views such as V$SESSION. It can be used for tracing and monitoring such as with V$SQLAREA and DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

The value may be retained across persistent connections.

Parâmetros

connection

Um identificador de conexão Oracle, retornado por oci_connect(), oci_pconnect() ou oci_new_connect().

action

User chosen string up to 32 bytes long.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Setting the action

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Record the action
oci_set_action($c, 'Friend Lookup');

// Code that causes a round-trip, for example a query:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// While the script is running, the administrator can see the actions
// being performed:

sqlplus system/welcome
SQL> select action from v$session;

Notas

Nota: Requisitos de versão do Oracle

Esta função estará disponível quando o PHP for compilado com as bibliotecas do Oracle Database a partir da versão 10g em diante.

Dica

Desempenho

Com versões anteriores do OCI8 ou do Oracle Database, as informações do cliente podem ser definidas usando o pacote Oracle DBMS_APPLICATION_INFO. Isso é menos eficiente do que usar oci_set_client_info().

Cuidado

Pegadinha da Viagem de Ida e Volta

Algumas, mas não todas as funções do OCI8, causam viagens de ida e volta. Viagens de ida e volta ao banco de dados podem não ocorrer com consultas quando o cache de resultados estiver habilitado.

Veja Também

  • oci_set_module_name() - Sets the module name
  • oci_set_client_info() - Sets the client information
  • oci_set_client_identifier() - Sets the client identifier
  • oci_set_db_operation() - Sets the database operation


Sets a millisecond timeout for database calls

  • « oci_set_action
  • oci_set_client_identifier »
  • PHP Manual
  • Funções OCI8
  • Sets a millisecond timeout for database calls

oci_set_call_timeout

(PHP 7.2 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)

oci_set_call_timeout — Sets a millisecond timeout for database calls

Descrição

oci_set_call_timeout(resource $connection, int $timeout): bool

Sets a timeout limiting the maxium time a database round-trip using this connection may take.

Each OCI8 operation may make zero or more calls to Oracle's client library. These internal calls may then may make zero or more round-trips to Oracle Database. If any one of those round-trips takes more than time_out milliseconds, then the operation is cancelled and an error is returned to the application.

The time_out value applies to each round-trip individually, not to the sum of all round-trips. Time spent processing in PHP OCI8 before or after the completion of each round-trip is not counted.

When a call is interrupted, Oracle will attempt to clean up the connection for reuse. This operation is allowed to run for another time_out period. Depending on the outcome of the cleanup, the connection may or may not be reusable.

When persistent connections are used, the timeout value will be retained across PHP requests.

The oci_set_call_timeout() function is available when OCI8 uses Oracle 18 (or later) Client libraries.

Parâmetros

connection

Um identificador de conexão Oracle, retornado por oci_connect(), oci_pconnect() ou oci_new_connect().

timeout

The maximum time in milliseconds that any single round-trip between PHP and Oracle Database may take.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Setting the timeout

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
oci_set_call_timeout($conn, 5000);

?>


Sets the client identifier

  • « oci_set_call_timeout
  • oci_set_client_info »
  • PHP Manual
  • Funções OCI8
  • Sets the client identifier

oci_set_client_identifier

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_client_identifier — Sets the client identifier

Descrição

oci_set_client_identifier(resource $connection, string $client_id): bool

Sets the client identifier used by various database components to identify lightweight application users who authenticate as the same database user.

The client identifier is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when an SQL statement is executed.

The identifier can subsequently be queried, for example with SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL. Database administration views such as V$SESSION will also contain the value. It can be used with DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE for tracing and can also be used for auditing.

The value may be retained across page requests that use the same persistent connection.

Parâmetros

connection

Um identificador de conexão Oracle, retornado por oci_connect(), oci_pconnect() ou oci_new_connect().

client_id

User chosen string up to 64 bytes long.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Setting the client identifier to the application user

<?php

// Find the application user's login name
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');

// Tell Oracle who that user is
oci_set_client_identifier($c, $un);

// The next round-trip to the database will piggyback the identifier
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);

// ...

?>

Notas

Cuidado

Pegadinha da Viagem de Ida e Volta

Algumas, mas não todas as funções do OCI8, causam viagens de ida e volta. Viagens de ida e volta ao banco de dados podem não ocorrer com consultas quando o cache de resultados estiver habilitado.

Veja Também

  • oci_set_module_name() - Sets the module name
  • oci_set_action() - Sets the action name
  • oci_set_client_info() - Sets the client information
  • oci_set_db_operation() - Sets the database operation


Sets the client information

  • « oci_set_client_identifier
  • oci_set_db_operation »
  • PHP Manual
  • Funções OCI8
  • Sets the client information

oci_set_client_info

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_client_info — Sets the client information

Descrição

oci_set_client_info(resource $connection, string $client_info): bool

Sets the client information for Oracle tracing.

The client information is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when an SQL statement is executed.

The client information can subsequently be queried from database administration views such as V$SESSION.

The value may be retained across persistent connections.

Parâmetros

connection

Um identificador de conexão Oracle, retornado por oci_connect(), oci_pconnect() ou oci_new_connect().

client_info

User chosen string up to 64 bytes long.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Setting the client information

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Record the client information
oci_set_client_info($c, 'My Application Version 2');

// Code that causes a round-trip, for example a query:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// While the script is running, the administrator can see the client
// information:

sqlplus system/welcome
SQL> select client_info from v$session;

Notas

Nota: Requisitos de versão do Oracle

Esta função estará disponível quando o PHP for compilado com as bibliotecas do Oracle Database a partir da versão 10g em diante.

Dica

Desempenho

Com versões anteriores do OCI8 ou do Oracle Database, as informações do cliente podem ser definidas usando o pacote Oracle DBMS_APPLICATION_INFO. Isso é menos eficiente do que usar oci_set_client_info().

Cuidado

Pegadinha da Viagem de Ida e Volta

Algumas, mas não todas as funções do OCI8, causam viagens de ida e volta. Viagens de ida e volta ao banco de dados podem não ocorrer com consultas quando o cache de resultados estiver habilitado.

Veja Também

  • oci_set_module_name() - Sets the module name
  • oci_set_action() - Sets the action name
  • oci_set_client_identifier() - Sets the client identifier
  • oci_set_db_operation() - Sets the database operation


Sets the database operation

  • « oci_set_client_info
  • oci_set_edition »
  • PHP Manual
  • Funções OCI8
  • Sets the database operation

oci_set_db_operation

(PHP 7 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)

oci_set_db_operation — Sets the database operation

Descrição

oci_set_db_operation(resource $connection, string $action): bool

Sets the DBOP for Oracle tracing.

The database operation name is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when a SQL statement is executed.

The database operation can subsequently be queried from database administration views such as V$SQL_MONITOR.

The oci_set_db_operation() function is available when OCI8 uses Oracle 12 (or later) Client libraries and Oracle Database 12 (or later).

Parâmetros

connection

Um identificador de conexão Oracle, retornado por oci_connect(), oci_pconnect() ou oci_new_connect().

action

User chosen string.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Setting the DBOP

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Record the operation
oci_set_db_operation($c, 'main query');

// Code that causes a round-trip, for example a query:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// While the script is running, the administrator can see the database operations
// being performed:

sqlplus system/welcome
SQL> select dbop_name from v$sql_monitor;

Notas

Cuidado

Pegadinha da Viagem de Ida e Volta

Algumas, mas não todas as funções do OCI8, causam viagens de ida e volta. Viagens de ida e volta ao banco de dados podem não ocorrer com consultas quando o cache de resultados estiver habilitado.

Veja Também

  • oci_set_action() - Sets the action name
  • oci_set_module_name() - Sets the module name
  • oci_set_client_info() - Sets the client information
  • oci_set_client_identifier() - Sets the client identifier


Sets the database edition

  • « oci_set_db_operation
  • oci_set_module_name »
  • PHP Manual
  • Funções OCI8
  • Sets the database edition

oci_set_edition

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_edition — Sets the database edition

Descrição

oci_set_edition(string $edition): bool

Sets the database "edition" of objects to be used by a subsequent connections.

Oracle Editions allow concurrent versions of applications to run using the same schema and object names. This is useful for upgrading live systems.

Call oci_set_edition() before calling
oci_connect(), oci_pconnect()
or oci_new_connect().

If an edition is set that is not valid in the database, connection will fail even if oci_set_edition() returns success.

When using persistent connections, if a connection with the requested edition setting already exists, it is reused. Otherwise, a different persistent connection is created

Parâmetros

edition

Oracle Database edition name previously created with the SQL "CREATE EDITION" command.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Two scripts can use different versions of myfunc() at the same time

<?php

// File 1

echo "Version 1 of application\n";

oci_set_edition('ORA$BASE');
$c = oci_connect('hr', 'welcome', 'localhost/XE');

$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "The result is $r\n";

?>
<?php

// File 2

echo "Version 2 of application\n";

oci_set_edition('E1');
$c = oci_connect('hr', 'welcome', 'localhost/XE');

$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "The result is $r\n";

?>

Notas

Nota: Oracle version requirement

This function is available from Oracle 11gR2 onwards.

Cuidado

Persistent connections

To avoid inconsistencies and unexpected errors, do not use ALTER SESSION SET EDITION to change the edition on persistent connections.

Cuidado

DRCP Connection Pooling

To avoid inconsistencies and unexpected errors when using editions and DRCP with Oracle 11.2.0.1, keep a one-to-one correspondence between the oci8.connection_class and the edition name used by applications. Each pooled server of a given connection class should only be used with one edition. This restriction has been removed with Oracle 11.2.0.2.


Sets the module name

  • « oci_set_edition
  • oci_set_prefetch_lob »
  • PHP Manual
  • Funções OCI8
  • Sets the module name

oci_set_module_name

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_module_name — Sets the module name

Descrição

oci_set_module_name(resource $connection, string $name): bool

Sets the module name for Oracle tracing.

The module name is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when an SQL statement is executed.

The name can subsequently be queried from database administration views such as V$SESSION. It can be used for tracing and monitoring such as with V$SQLAREA and DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

The value may be retained across persistent connections.

Parâmetros

connection

Um identificador de conexão Oracle, retornado por oci_connect(), oci_pconnect() ou oci_new_connect().

name

User chosen string up to 48 bytes long.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Setting the module name

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Record the module
oci_set_module_name($c, 'Home Page');

// Code that causes a round-trip, for example a query:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);
?>
// While the script is running, the administrator can see the
// modules in use:

sqlplus system/welcome
SQL> select module from v$session;

Notas

Nota: Requisitos de versão do Oracle

Esta função estará disponível quando o PHP for compilado com as bibliotecas do Oracle Database a partir da versão 10g em diante.

Dica

Desempenho

Com versões anteriores do OCI8 ou do Oracle Database, as informações do cliente podem ser definidas usando o pacote Oracle DBMS_APPLICATION_INFO. Isso é menos eficiente do que usar oci_set_client_info().

Cuidado

Pegadinha da Viagem de Ida e Volta

Algumas, mas não todas as funções do OCI8, causam viagens de ida e volta. Viagens de ida e volta ao banco de dados podem não ocorrer com consultas quando o cache de resultados estiver habilitado.

Veja Também

  • oci_set_action() - Sets the action name
  • oci_set_client_info() - Sets the client information
  • oci_set_client_identifier() - Sets the client identifier
  • oci_set_db_operation() - Sets the database operation


Sets the amount of data prefetched for each CLOB or BLOB.

  • « oci_set_module_name
  • oci_set_prefetch »
  • PHP Manual
  • Funções OCI8
  • Sets the amount of data prefetched for each CLOB or BLOB.

oci_set_prefetch_lob

(PHP 8.2, PECL OCI8 >= 3.2)

oci_set_prefetch_lob — Sets the amount of data prefetched for each CLOB or BLOB.

Descrição

oci_set_prefetch_lob(resource $statement, int $prefetch_lob_size): bool

Sets the internal buffer size used to fetch each CLOB or BLOB value when the implementation gets the internal Oracle LOB locator from the database after a successful query call to oci_execute() and for each subsequent internal fetch request to the database. Increasing this value can improve the performance of fetching smaller LOBs by reducing round-trips between PHP and the database. Memory usage will change.

The value affects LOBs returned as OCILob instances and also those returned using OCI_RETURN_LOBS.

Call oci_set_prefetch_lob() before calling oci_execute(). If it is not called, the value of oci8.prefetch_lob_size is used.

The LOB prefetch value should only be set with Oracle Database 12.2 or later.

Parâmetros

statement

Um identificador de declaração OCI8 válida criada por oci_parse() e executada por oci_execute() ou um identificador de declaração REF CURSOR.

prefetch_lob_size

The number of bytes of each LOB to be prefetched, >= 0

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Changing the LOB prefetch value for a query

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT myclob FROM mytable');
oci_set_prefetch_lob($stid, 100000); // Set before calling oci_execute()
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Veja Também

  • oci8.prefetch_lob_size ini option


Sets number of rows to be prefetched by queries

  • « oci_set_prefetch_lob
  • oci_statement_type »
  • PHP Manual
  • Funções OCI8
  • Sets number of rows to be prefetched by queries

oci_set_prefetch

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_set_prefetch — Sets number of rows to be prefetched by queries

Descrição

oci_set_prefetch(resource $statement, int $rows): bool

Sets the number of rows to be buffered by the Oracle Client libraries after a successful query call to oci_execute() and for each subsequent internal fetch request to the database. For queries returning a large number of rows, performance can be significantly improved by increasing the prefetch count above the default oci8.default_prefetch value.

Prefetching is Oracle's efficient way of returning more than one data row from the database in each network request. This can result in better network and CPU utilization. The buffering of rows is internal to OCI8 and the behavior of OCI8 fetching functions is unchanged regardless of the prefetch count. For example, oci_fetch_row() will always return one row. The prefetch buffer is per-statement and is not used by re-executed statements or by other connections.

Call oci_set_prefetch() before calling oci_execute().

A tuning goal is to set the prefetch value to a reasonable size for the network and database to handle. For queries returning a very large number of rows, overall system efficiency might be better if rows are retrieved from the database in several chunks (i.e set the prefetch value smaller than the number of rows). This allows the database to handle other users' statements while the PHP script is processing the current set of rows.

Query prefetching was introduced in Oracle 8i. REF CURSOR prefetching was introduced in Oracle 11gR2 and occurs when PHP is linked with Oracle 11gR2 (or later) Client libraries. Nested cursor prefetching was introduced in Oracle 11gR2 and requires both the Oracle Client libraries and the database to be version 11gR2 or greater.

Prefetching is not supported when queries contain LONG or LOB columns. The prefetch value is ignored and single-row fetches will be used in all the situations when prefetching is not supported.

When using Oracle Database 12c, the prefetch value set by PHP can be overridden by Oracle's client oraaccess.xml configuration file. Refer to Oracle documentation for more detail.

Parâmetros

statement

Um identificador de declaração OCI8 válida criada por oci_parse() e executada por oci_execute() ou um identificador de declaração REF CURSOR.

rows

The number of rows to be prefetched, >= 0

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Changing the default prefetch value for a query

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM myverybigtable');
oci_set_prefetch($stid, 300); // Set before calling oci_execute()
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Exemplo #2 Changing the default prefetch for a REF CURSOR fetch

<?php
/*
Create the PL/SQL stored procedure as:

CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
BEGIN
OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'BEGIN myproc(:rc); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Change the prefetch before executing the cursor.
// REF CURSOR prefetching works when PHP is linked with Oracle 11gR2 or later Client libraries
oci_set_prefetch($refcur, 200);
oci_execute($refcur);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

If PHP OCI8 fetches from a REF CURSOR and then passes the REF CURSOR back to a second PL/SQL procedure for further processing, then set the REF CURSOR prefetch count to 0 to avoid rows being "lost" from the result set. The prefetch value is the number of extra rows fetched in each OCI8 internal request to the database, so setting it to 0 means only fetch one row at a time.

Exemplo #3 Setting the prefetch value when passing a REF CURSOR back to Oracle

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/orcl');

// get the REF CURSOR
$stid = oci_parse($conn, 'BEGIN myproc(:rc_out); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc_out', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Display two rows, but don't prefetch any extra rows otherwise
// those extra rows would not be passed back to myproc_use_rc().
oci_set_prefetch($refcur, 0);
oci_execute($refcur);
$row = oci_fetch_array($refcur);
var_dump($row);
$row = oci_fetch_array($refcur);
var_dump($row);

// pass the REF CURSOR to myproc_use_rc() to do more data processing
// with the result set
$stid = oci_parse($conn, 'begin myproc_use_rc(:rc_in); end;');
oci_bind_by_name($stid, ':rc_in', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

?>

Veja Também

  • oci8.default_prefetch ini option


Returns the type of a statement

  • « oci_set_prefetch
  • oci_unregister_taf_callback »
  • PHP Manual
  • Funções OCI8
  • Returns the type of a statement

oci_statement_type

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_statement_type — Returns the type of a statement

Descrição

oci_statement_type(resource $statement): string|false

Returns a keyword identifying the type of the OCI8 statement.

Parâmetros

statement

A valid OCI8 statement identifier from oci_parse().

Valor Retornado

Returns the type of statement as one of the following strings.

Statement type
Return String | Notes
ALTER |
BEGIN |
CALL |
CREATE |
DECLARE |
DELETE |
DROP |
INSERT |
SELECT |
UPDATE |
UNKNOWN |

Returns false on error.

Exemplos

Exemplo #1 oci_statement_type() example

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'DELETE FROM departments WHERE department_id = 130;');
if (oci_statement_type($stid) == "DELETE") {
trigger_error('You are not allowed to delete from this table', E_USER_ERROR);
}
else {
oci_execute($stid); // delete the row
}

oci_free_statement($stid);
oci_close($conn);

?>


Unregister a user-defined callback function for Oracle Database TAF

  • « oci_statement_type
  • OCICollection »
  • PHP Manual
  • Funções OCI8
  • Unregister a user-defined callback function for Oracle Database TAF

oci_unregister_taf_callback

(PHP 7.0 >= 7.0.23, PHP 8, PHP 7 >= 7.1.9, PHP 8, PECL OCI8 >= 2.1.7)

oci_unregister_taf_callback — Unregister a user-defined callback function for Oracle Database TAF

Descrição

oci_unregister_taf_callback(resource $connection): bool

Unregister the user-defined callback function registered to connection by oci_register_taf_callback(). See OCI8 Transparent Application Failover (TAF) Support for information.

Parâmetros

connection

An Oracle connection identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • oci_register_taf_callback() - Register a user-defined callback function for Oracle Database TAF


The OCICollection class

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

Introdução

Funcionalidade OCI8 Collection.

Nota:

A classe OCI-Collection foi renomeada para OCICollection no PHP 8 e OCI8 3.0.0 para adequação aos padrões de nomes do PHP.

Resumo da classe

class OCICollection {
/* Métodos */
public append(string $value): bool
public assign(OCICollection $from): bool
public assignElem(int $index, string $value): bool
public free(): bool
public getElem(int $index): string|float|null|false
public max(): int|false
public size(): int|false
public trim(int $num): bool
}

Índice

  • OCICollection::append — Appends element to the collection
  • OCICollection::assign — Assigns a value to the collection from another existing collection
  • OCICollection::assignElem — Assigns a value to the element of the collection
  • OCICollection::free — Frees the resources associated with the collection object
  • OCICollection::getElem — Returns value of the element
  • OCICollection::max — Returns the maximum number of elements in the collection
  • OCICollection::size — Returns size of the collection
  • OCICollection::trim — Trims elements from the end of the collection


Appends element to the collection

  • « OCICollection
  • OCICollection::assign »
  • PHP Manual
  • OCICollection
  • Appends element to the collection

OCICollection::append

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::append — Appends element to the collection

Descrição

public OCICollection::append(string $value): bool

Appends element to the end of the collection.

Parâmetros

value

The value to be added to the collection.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Collection class was renamed to OCICollection to align with PHP naming standards.

Veja Também

  • OCICollection::assign


Assigns a value to the collection from another existing collection

  • « OCICollection::append
  • OCICollection::assignElem »
  • PHP Manual
  • OCICollection
  • Assigns a value to the collection from another existing collection

OCICollection::assign

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::assign — Assigns a value to the collection from another existing collection

Descrição

public OCICollection::assign(OCICollection $from): bool

Assigns a value to the collection from another, previously created collection. Both collections must be created with oci_new_collection() prior to using them.

Parâmetros

from

An instance of OCICollection.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Collection class was renamed to OCICollection to align with PHP naming standards.

Veja Também

  • OCICollection::append


Assigns a value to the element of the collection

  • « OCICollection::assign
  • OCICollection::free »
  • PHP Manual
  • OCICollection
  • Assigns a value to the element of the collection

OCICollection::assignElem

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::assignElem — Assigns a value to the element of the collection

Descrição

public OCICollection::assignElem(int $index, string $value): bool

Assigns a value to the element with index index.

Parâmetros

index

The element index. First index is 0.

value

Can be a string or a number.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Collection class was renamed to OCICollection to align with PHP naming standards.

Veja Também

  • OCICollection::getElem


Frees the resources associated with the collection object

  • « OCICollection::assignElem
  • OCICollection::getElem »
  • PHP Manual
  • OCICollection
  • Frees the resources associated with the collection object

OCICollection::free

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::free — Frees the resources associated with the collection object

Descrição

public OCICollection::free(): bool

Frees the resources associated with the collection object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Collection class was renamed to OCICollection to align with PHP naming standards.

Veja Também

  • oci_new_collection


Returns value of the element

  • « OCICollection::free
  • OCICollection::max »
  • PHP Manual
  • OCICollection
  • Returns value of the element

OCICollection::getElem

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::getElem — Returns value of the element

Descrição

public OCICollection::getElem(int $index): string|float|null|false

Returns element's value with the index index (0-based).

Parâmetros

index

The element index. First index is 0.

Valor Retornado

Returns false if such element doesn't exist; null if element is null; string if element is column of a string datatype or number if element is numeric field.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Collection class was renamed to OCICollection to align with PHP naming standards.

Veja Também

  • OCICollection::assignElem


Returns the maximum number of elements in the collection

  • « OCICollection::getElem
  • OCICollection::size »
  • PHP Manual
  • OCICollection
  • Returns the maximum number of elements in the collection

OCICollection::max

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::max — Returns the maximum number of elements in the collection

Descrição

public OCICollection::max(): int|false

Returns the maximum number of elements in the collection.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the maximum number as an integer, or false on errors.

If the returned value is 0, then the number of elements is not limited.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Collection class was renamed to OCICollection to align with PHP naming standards.

Veja Também

  • OCICollection::size


Returns size of the collection

  • « OCICollection::max
  • OCICollection::trim »
  • PHP Manual
  • OCICollection
  • Returns size of the collection

OCICollection::size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::size — Returns size of the collection

Descrição

public OCICollection::size(): int|false

Returns the size of the collection.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of elements in the collection or false on error.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Collection class was renamed to OCICollection to align with PHP naming standards.

Veja Também

  • OCICollection::max


Trims elements from the end of the collection

  • « OCICollection::size
  • OCILob »
  • PHP Manual
  • OCICollection
  • Trims elements from the end of the collection

OCICollection::trim

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::trim — Trims elements from the end of the collection

Descrição

public OCICollection::trim(int $num): bool

Trims num of elements from the end of the collection.

Parâmetros

num

The number of elements to be trimmed.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Collection class was renamed to OCICollection to align with PHP naming standards.

Veja Também

  • OCICollection::size


A classe OCILob

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

Introdução

Funcionalidade OCI8 LOB para objetos binários (BLOB) e caracteres (CLOB) grandes.

Nota:

A classe OCI-Lob foi renomeada para OCILob no PHP 8 e PECL OCI8 3.0.0 para adequação ao padrão de nomes do PHP.

Resumo da classe

class OCILob {
/* Métodos */
public append(OCILob $from): bool
public close(): bool
public eof(): bool
public erase(?int $offset = null, ?int $length = null): int|false
public export(string $filename, ?int $offset = null, ?int $length = null): bool
public flush(int $flag = 0): bool
public free(): bool
public getBuffering(): bool
public import(string $filename): bool
public load(): string|false
public read(int $length): string|false
public rewind(): bool
public save(string $data, int $offset = 0): bool
public seek(int $offset, int $whence = OCI_SEEK_SET): bool
public setBuffering(bool $mode): bool
public size(): int|false
public tell(): int|false
public truncate(int $length = 0): bool
public write(string $data, ?int $length = null): int|false
public writeTemporary(string $data, int $type = OCI_TEMP_CLOB): bool
}

Índice

  • OCILob::append — Appends data from the large object to another large object
  • OCILob::close — Closes LOB descriptor
  • OCILob::eof — Tests for end-of-file on a large object's descriptor
  • OCILob::erase — Erases a specified portion of the internal LOB data
  • OCILob::export — Exports LOB's contents to a file
  • OCILob::flush — Flushes/writes buffer of the LOB to the server
  • OCILob::free — Frees resources associated with the LOB descriptor
  • OCILob::getBuffering — Returns current state of buffering for the large object
  • OCILob::import — Imports file data to the LOB
  • OCILob::load — Returns large object's contents
  • OCILob::read — Reads part of the large object
  • OCILob::rewind — Moves the internal pointer to the beginning of the large object
  • OCILob::save — Saves data to the large object
  • OCILob::saveFile — Sinônimo de OCILob::import
  • OCILob::seek — Sets the internal pointer of the large object
  • OCILob::setBuffering — Changes current state of buffering for the large object
  • OCILob::size — Returns size of large object
  • OCILob::tell — Returns the current position of internal pointer of large object
  • OCILob::truncate — Truncates large object
  • OCILob::write — Writes data to the large object
  • OCILob::writeTemporary — Escreve um large object temporário
  • OCILob::writeToFile — Sinônimo de OCILob::export


Appends data from the large object to another large object

  • « OCILob
  • OCILob::close »
  • PHP Manual
  • OCILob
  • Appends data from the large object to another large object

OCILob::append

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::append — Appends data from the large object to another large object

Descrição

public OCILob::append(OCILob $from): bool

Appends data from the large object to the end of another large object.

Writing to the large object with this method will fail if buffering was previously enabled. You must disable buffering before appending. You may need to flush buffers with OCILob::flush before disabling buffering.

Parâmetros

from

The copied LOB.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::flush
  • OCILob::setBuffering
  • OCILob::getBuffering


Closes LOB descriptor

  • « OCILob::append
  • OCILob::eof »
  • PHP Manual
  • OCILob
  • Closes LOB descriptor

OCILob::close

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::close — Closes LOB descriptor

Descrição

public OCILob::close(): bool

Closes descriptor of LOB or FILE. This function should be used only with OCILob::writeTemporary.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::writeTemporary


Tests for end-of-file on a large object's descriptor

  • « OCILob::close
  • OCILob::erase »
  • PHP Manual
  • OCILob
  • Tests for end-of-file on a large object's descriptor

OCILob::eof

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::eof — Tests for end-of-file on a large object's descriptor

Descrição

public OCILob::eof(): bool

Tells whether the internal pointer of large object is at the end of LOB.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if internal pointer of large object is at the end of LOB. Otherwise returns false.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Notas

Nota:

This function will return an Oracle error if OCILob::setBuffering is enabled on the LOB.

Veja Também

  • OCILob::size


Erases a specified portion of the internal LOB data

  • « OCILob::eof
  • OCILob::export »
  • PHP Manual
  • OCILob
  • Erases a specified portion of the internal LOB data

OCILob::erase

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::erase — Erases a specified portion of the internal LOB data

Descrição

public OCILob::erase(?int $offset = null, ?int $length = null): int|false

Erases a specified portion of the internal LOB data starting at a specified offset. If called without parameters, it erases all LOB data.

For BLOBs, erasing means that the existing LOB value is overwritten with zero-bytes. For CLOBs, the existing LOB value is overwritten with spaces.

Parâmetros

offset

length

Valor Retornado

Returns the actual number of characters/bytes erased ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | offset and length are now nullable.
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::truncate


Exports LOB's contents to a file

  • « OCILob::erase
  • OCILob::flush »
  • PHP Manual
  • OCILob
  • Exports LOB's contents to a file

OCILob::export

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::export — Exports LOB's contents to a file

Descrição

public OCILob::export(string $filename, ?int $offset = null, ?int $length = null): bool

Exports LOB contents to a file.

Parâmetros

filename

Path to the file.

offset

Indicates from where to start exporting.

length

Indicates the length of data to be exported.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | offset and length are now nullable.
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::import


Flushes/writes buffer of the LOB to the server

  • « OCILob::export
  • OCILob::free »
  • PHP Manual
  • OCILob
  • Flushes/writes buffer of the LOB to the server

OCILob::flush

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::flush — Flushes/writes buffer of the LOB to the server

Descrição

public OCILob::flush(int $flag = 0): bool

OCILob::flush() actually writes data to the server.

Parâmetros

flag

By default, resources are not freed, but using flag OCI_LOB_BUFFER_FREE you can do it explicitly. Be sure you know what you're doing - next read/write operation to the same part of LOB will involve a round-trip to the server and initialize new buffer resources. It is recommended to use OCI_LOB_BUFFER_FREE flag only when you are not going to work with the LOB anymore.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Returns false if buffering was not enabled or an error occurred.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::getBuffering
  • OCILob::setBuffering


Frees resources associated with the LOB descriptor

  • « OCILob::flush
  • OCILob::getBuffering »
  • PHP Manual
  • OCILob
  • Frees resources associated with the LOB descriptor

OCILob::free

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::free — Frees resources associated with the LOB descriptor

Descrição

public OCILob::free(): bool

Frees resources associated with the descriptor, previously allocated with oci_new_descriptor().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.


Returns current state of buffering for the large object

  • « OCILob::free
  • OCILob::import »
  • PHP Manual
  • OCILob
  • Returns current state of buffering for the large object

OCILob::getBuffering

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::getBuffering — Returns current state of buffering for the large object

Descrição

public OCILob::getBuffering(): bool

Tells whether the buffering for the large object is on or off.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns false if buffering for the large object is off and true if buffering is used.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::setBuffering


Imports file data to the LOB

  • « OCILob::getBuffering
  • OCILob::load »
  • PHP Manual
  • OCILob
  • Imports file data to the LOB

OCILob::import

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::import — Imports file data to the LOB

Descrição

public OCILob::import(string $filename): bool

Writes data from the filename in to the current position of large object.

Parâmetros

filename

Path to the file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::export
  • OCILob::write


Returns large object's contents

  • « OCILob::import
  • OCILob::read »
  • PHP Manual
  • OCILob
  • Returns large object's contents

OCILob::load

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::load — Returns large object's contents

Descrição

public OCILob::load(): string|false

Returns large object's contents. As script execution is terminated when the memory_limit is reached, ensure that the LOB does not exceed this limit. In most cases it's recommended to use OCILob::read instead.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the contents of the object, or false on errors.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::read


Reads part of the large object

  • « OCILob::load
  • OCILob::rewind »
  • PHP Manual
  • OCILob
  • Reads part of the large object

OCILob::read

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::read — Reads part of the large object

Descrição

public OCILob::read(int $length): string|false

Reads length of bytes (BLOB) or characters (CLOB) from the current position of LOB's internal pointer.

Reading stops when length of bytes have been read for a BLOB, when length of characters have been read for a CLOB, or when the end of the large object is reached. Internal pointer of the large object will be shifted on the amount of bytes/characters read.

Parâmetros

length

The length of data to read, in bytes (BLOB) or characters (CLOB). Large values will be rounded down to 1 MB.

Valor Retornado

Returns the contents as a string, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::load
  • OCILob::write


Moves the internal pointer to the beginning of the large object

  • « OCILob::read
  • OCILob::save »
  • PHP Manual
  • OCILob
  • Moves the internal pointer to the beginning of the large object

OCILob::rewind

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::rewind — Moves the internal pointer to the beginning of the large object

Descrição

public OCILob::rewind(): bool

Sets the internal pointer to the beginning of the large object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::seek
  • OCILob::tell


Saves data to the large object

  • « OCILob::rewind
  • OCILob::saveFile »
  • PHP Manual
  • OCILob
  • Saves data to the large object

OCILob::save

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::save — Saves data to the large object

Descrição

public OCILob::save(string $data, int $offset = 0): bool

Saves data to the large object.

Parâmetros

data

The data to be saved.

offset

Can be used to indicate offset from the beginning of the large object.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::write
  • OCILob::import


Sinônimo de OCILob::import

  • « OCILob::save
  • OCILob::seek »
  • PHP Manual
  • OCILob
  • Sinônimo de OCILob::import

OCILob::saveFile

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::saveFile — Sinônimo de OCILob::import()

Descrição

Esta função é um apelido para: OCILob::import().

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.


Sets the internal pointer of the large object

  • « OCILob::saveFile
  • OCILob::setBuffering »
  • PHP Manual
  • OCILob
  • Sets the internal pointer of the large object

OCILob::seek

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::seek — Sets the internal pointer of the large object

Descrição

public OCILob::seek(int $offset, int $whence = OCI_SEEK_SET): bool

Sets the internal pointer of the large object.

Parâmetros

offset

Indicates the amount of bytes, on which internal pointer should be moved from the position, pointed by whence.

whence

May be one of:

  • OCI_SEEK_SET - sets the position equal to offset
  • OCI_SEEK_CUR - adds offset bytes to the current position
  • OCI_SEEK_END - adds offset bytes to the end of large object (use negative value to move to a position before the end of large object)

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::rewind
  • OCILob::tell
  • OCILob::eof


Changes current state of buffering for the large object

  • « OCILob::seek
  • OCILob::size »
  • PHP Manual
  • OCILob
  • Changes current state of buffering for the large object

OCILob::setBuffering

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::setBuffering — Changes current state of buffering for the large object

Descrição

public OCILob::setBuffering(bool $mode): bool

Sets the buffering for the large object, depending on the value of the mode parameter.

Use of this function may provide performance improvements by buffering small reads and writes of LOBs by reducing the number of network round-trips and LOB versions. OCILob::flush() should be used to flush buffers, when you have finished working with the large object.

Parâmetros

mode

true for on and false for off.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Repeated calls to this method with the same flag will return true.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::getBuffering


Returns size of large object

  • « OCILob::setBuffering
  • OCILob::tell »
  • PHP Manual
  • OCILob
  • Returns size of large object

OCILob::size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::size — Returns size of large object

Descrição

public OCILob::size(): int|false

Gets the size of the large object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns length of large object value ou false em caso de falha. Empty objects have zero length.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.


Returns the current position of internal pointer of large object

  • « OCILob::size
  • OCILob::truncate »
  • PHP Manual
  • OCILob
  • Returns the current position of internal pointer of large object

OCILob::tell

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::tell — Returns the current position of internal pointer of large object

Descrição

public OCILob::tell(): int|false

Gets the current position of a LOB's internal pointer.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns current position of a LOB's internal pointer or false if an error occurred.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::rewind
  • OCILob::size
  • OCILob::eof


Truncates large object

  • « OCILob::tell
  • OCILob::write »
  • PHP Manual
  • OCILob
  • Truncates large object

OCILob::truncate

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::truncate — Truncates large object

Descrição

public OCILob::truncate(int $length = 0): bool

Truncates the LOB.

Parâmetros

length

If provided, this method will truncate the LOB to length bytes. Otherwise, it will completely purge the LOB.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::erase


Writes data to the large object

  • « OCILob::truncate
  • OCILob::writeTemporary »
  • PHP Manual
  • OCILob
  • Writes data to the large object

OCILob::write

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::write — Writes data to the large object

Descrição

public OCILob::write(string $data, ?int $length = null): int|false

Writes data from the parameter data into the current position of LOB's internal pointer.

Parâmetros

data

The data to write in the LOB.

length

If this parameter is an integer, writing will stop after length bytes have been written or the end of data is reached, whichever comes first.

Valor Retornado

Returns the number of bytes written ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | length is now nullable.
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Veja Também

  • OCILob::read


Escreve um large object temporário

  • « OCILob::write
  • OCILob::writeToFile »
  • PHP Manual
  • OCILob
  • Escreve um large object temporário

OCILob::writeTemporary

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::writeTemporary — Escreve um large object temporário

Descrição

public OCILob::writeTemporary(string $data, int $type = OCI_TEMP_CLOB): bool

Cria um large object temporário e escreve data nele.

Você deve usar OCILob::close quando tiver terminado com esse objeto.

Parâmetros

data

Os dados a escrever.

type

Pode ser um dos seguintes:

  • OCI_TEMP_BLOB é utilizado para cirar BLOBs temporários
  • OCI_TEMP_CLOB é utilizado para criar CLOBs temporários

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | A classe OCI-Lob foi renomeada para OCILob para conformidade com padrões do PHP.

Veja Também

  • OCILob::close


Sinônimo de OCILob::export

  • « OCILob::writeTemporary
  • OCI8 Obsolete Aliases and Functions »
  • PHP Manual
  • OCILob
  • Sinônimo de OCILob::export

OCILob::writeToFile

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::writeToFile — Sinônimo de OCILob::export()

Descrição

Esta função é um apelido para: OCILob::export().

Registro de Alterações

Versão | Descrição
8.0.0, PECL OCI8 3.0.0 | offset and length are now nullable.
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.


OCI8 Obsolete Aliases and Functions

Índice

  • oci_internal_debug — Enables or disables internal debug output
  • ocibindbyname — Sinônimo de oci_bind_by_name
  • ocicancel — Sinônimo de oci_cancel
  • ocicloselob — Sinônimo de OCILob::close
  • ocicollappend — Sinônimo de OCICollection::append
  • ocicollassign — Sinônimo de OCICollection::assign
  • ocicollassignelem — Sinônimo de OCICollection::assignElem
  • ocicollgetelem — Sinônimo de OCICollection::getElem
  • ocicollmax — Sinônimo de OCICollection::max
  • ocicollsize — Sinônimo de OCICollection::size
  • ocicolltrim — Sinônimo de OCICollection::trim
  • ocicolumnisnull — Sinônimo de oci_field_is_null
  • ocicolumnname — Sinônimo de oci_field_name
  • ocicolumnprecision — Sinônimo de oci_field_precision
  • ocicolumnscale — Sinônimo de oci_field_scale
  • ocicolumnsize — Sinônimo de oci_field_size
  • ocicolumntype — Sinônimo de oci_field_type
  • ocicolumntyperaw — Sinônimo de oci_field_type_raw
  • ocicommit — Sinônimo de oci_commit
  • ocidefinebyname — Sinônimo de oci_define_by_name
  • ocierror — Sinônimo de oci_error
  • ociexecute — Sinônimo de oci_execute
  • ocifetch — Sinônimo de oci_fetch
  • ocifetchinto — Variante obsoleta de oci_fetch_array, oci_fetch_object, oci_fetch_assoc e oci_fetch_row
  • ocifetchstatement — Sinônimo de oci_fetch_all
  • ocifreecollection — Sinônimo de OCICollection::free
  • ocifreecursor — Sinônimo de oci_free_statement
  • ocifreedesc — Sinônimo de OCILob::free
  • ocifreestatement — Sinônimo de oci_free_statement
  • ociinternaldebug — Sinônimo de oci_internal_debug
  • ociloadlob — Sinônimo de OCILob::load
  • ocilogoff — Sinônimo de oci_close
  • ocilogon — Sinônimo de oci_connect
  • ocinewcollection — Sinônimo de oci_new_collection
  • ocinewcursor — Sinônimo de oci_new_cursor
  • ocinewdescriptor — Sinônimo de oci_new_descriptor
  • ocinlogon — Sinônimo de oci_new_connect
  • ocinumcols — Sinônimo de oci_num_fields
  • ociparse — Sinônimo de oci_parse
  • ociplogon — Sinônimo de oci_pconnect
  • ociresult — Sinônimo de oci_result
  • ocirollback — Sinônimo de oci_rollback
  • ocirowcount — Sinônimo de oci_num_rows
  • ocisavelob — Sinônimo de OCILob::save
  • ocisavelobfile — Sinônimo de OCILob::import
  • ociserverversion — Sinônimo de oci_server_version
  • ocisetprefetch — Sinônimo de oci_set_prefetch
  • ocistatementtype — Sinônimo de oci_statement_type
  • ociwritelobtofile — Sinônimo de OCILob::export
  • ociwritetemporarylob — Sinônimo de OCILob::writeTemporary


Enables or disables internal debug output

  • « OCI8 Obsolete Aliases and Functions
  • ocibindbyname »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Enables or disables internal debug output

oci_internal_debug

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0, PECL OCI8 <= 2.2.0)

oci_internal_debug — Enables or disables internal debug output

Descrição

oci_internal_debug(bool $onoff): void

Enables or disables internal debug output.

Parâmetros

onoff

Set this to false to turn debug output off or true to turn it on.

Valor Retornado

Nenhum valor é retornado.

Notas

Nota:

This function was removed in PHP 8 and PECL OCI8 3.0.


Sinônimo de oci_bind_by_name

  • « oci_internal_debug
  • ocicancel »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_bind_by_name

ocibindbyname

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocibindbyname — Sinônimo de oci_bind_by_name()

Descrição

Sinônimo de oci_bind_by_name()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_cancel

  • « ocibindbyname
  • ocicloselob »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_cancel

ocicancel

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicancel — Sinônimo de oci_cancel()

Descrição

Sinônimo de oci_cancel()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCILob::close

  • « ocicancel
  • ocicollappend »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCILob::close

ocicloselob

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 1.0)

ocicloselob — Sinônimo de OCILob::close()

Descrição

Sinônimo de OCILob::close()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCICollection::append

  • « ocicloselob
  • ocicollassign »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCICollection::append

ocicollappend

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollappend — Sinônimo de OCICollection::append()

Descrição

Sinônimo de OCICollection::append()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCICollection::assign

  • « ocicollappend
  • ocicollassignelem »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCICollection::assign

ocicollassign

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollassign — Sinônimo de OCICollection::assign()

Descrição

Sinônimo de OCICollection::assign()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCICollection::assignElem

  • « ocicollassign
  • ocicollgetelem »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCICollection::assignElem

ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollassignelem — Sinônimo de OCICollection::assignElem()

Descrição

Sinônimo de OCICollection::assignElem()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCICollection::getElem

  • « ocicollassignelem
  • ocicollmax »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCICollection::getElem

ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollgetelem — Sinônimo de OCICollection::getElem()

Descrição

Sinônimo de OCICollection::getElem()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCICollection::max

  • « ocicollgetelem
  • ocicollsize »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCICollection::max

ocicollmax

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollmax — Sinônimo de OCICollection::max()

Descrição

Sinônimo de OCICollection::max()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCICollection::size

  • « ocicollmax
  • ocicolltrim »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCICollection::size

ocicollsize

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollsize — Sinônimo de OCICollection::size()

Descrição

Sinônimo de OCICollection::size()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCICollection::trim

  • « ocicollsize
  • ocicolumnisnull »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCICollection::trim

ocicolltrim

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolltrim — Sinônimo de OCICollection::trim()

Descrição

Sinônimo de OCICollection::trim()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_field_is_null

  • « ocicolltrim
  • ocicolumnname »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_field_is_null

ocicolumnisnull

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnisnull — Sinônimo de oci_field_is_null()

Descrição

Sinônimo de oci_field_is_null()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_field_name

  • « ocicolumnisnull
  • ocicolumnprecision »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_field_name

ocicolumnname

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnname — Sinônimo de oci_field_name()

Descrição

Sinônimo de oci_field_name()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_field_precision

  • « ocicolumnname
  • ocicolumnscale »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_field_precision

ocicolumnprecision

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnprecision — Sinônimo de oci_field_precision()

Descrição

Sinônimo de oci_field_precision()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_field_scale

  • « ocicolumnprecision
  • ocicolumnsize »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_field_scale

ocicolumnscale

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnscale — Sinônimo de oci_field_scale()

Descrição

Sinônimo de oci_field_scale()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_field_size

  • « ocicolumnscale
  • ocicolumntype »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_field_size

ocicolumnsize

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnsize — Sinônimo de oci_field_size()

Descrição

Sinônimo de oci_field_size()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_field_type

  • « ocicolumnsize
  • ocicolumntyperaw »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_field_type

ocicolumntype

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumntype — Sinônimo de oci_field_type()

Descrição

Sinônimo de oci_field_type()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_field_type_raw

  • « ocicolumntype
  • ocicommit »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_field_type_raw

ocicolumntyperaw

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumntyperaw — Sinônimo de oci_field_type_raw()

Descrição

Sinônimo de oci_field_type_raw()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_commit

  • « ocicolumntyperaw
  • ocidefinebyname »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_commit

ocicommit

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicommit — Sinônimo de oci_commit()

Descrição

Sinônimo de oci_commit()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_define_by_name

  • « ocicommit
  • ocierror »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_define_by_name

ocidefinebyname

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocidefinebyname — Sinônimo de oci_define_by_name()

Descrição

Sinônimo de oci_define_by_name()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_error

  • « ocidefinebyname
  • ociexecute »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_error

ocierror

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocierror — Sinônimo de oci_error()

Descrição

Sinônimo de oci_error()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_execute

  • « ocierror
  • ocifetch »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_execute

ociexecute

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociexecute — Sinônimo de oci_execute()

Descrição

Sinônimo de oci_execute()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_fetch

  • « ociexecute
  • ocifetchinto »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_fetch

ocifetch

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifetch — Sinônimo de oci_fetch()

Descrição

Sinônimo de oci_fetch()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Variante obsoleta de oci_fetch_array, oci_fetch_object, oci_fetch_assoc e oci_fetch_row

  • « ocifetch
  • ocifetchstatement »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Variante obsoleta de oci_fetch_array, oci_fetch_object, oci_fetch_assoc e oci_fetch_row

ocifetchinto

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifetchinto — Variante obsoleta de oci_fetch_array(), oci_fetch_object(), oci_fetch_assoc() e oci_fetch_row()

Descrição

Variante obsoleta de oci_fetch_array(), oci_fetch_object(),
  oci_fetch_assoc() e
  oci_fetch_row()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_fetch_all

  • « ocifetchinto
  • ocifreecollection »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_fetch_all

ocifetchstatement

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifetchstatement — Sinônimo de oci_fetch_all()

Descrição

Sinônimo de oci_fetch_all()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCICollection::free

  • « ocifetchstatement
  • ocifreecursor »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCICollection::free

ocifreecollection

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreecollection — Sinônimo de OCICollection::free()

Descrição

Sinônimo de OCICollection::free()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_free_statement

  • « ocifreecollection
  • ocifreedesc »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_free_statement

ocifreecursor

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreecursor — Sinônimo de oci_free_statement()

Descrição

Sinônimo de oci_free_statement()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCILob::free

  • « ocifreecursor
  • ocifreestatement »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCILob::free

ocifreedesc

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreedesc — Sinônimo de OCILob::free()

Descrição

Sinônimo de OCILob::free()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_free_statement

  • « ocifreedesc
  • ociinternaldebug »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_free_statement

ocifreestatement

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreestatement — Sinônimo de oci_free_statement()

Descrição

Sinônimo de oci_free_statement()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_internal_debug

  • « ocifreestatement
  • ociloadlob »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_internal_debug

ociinternaldebug

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0, PECL OCI8 <= 2.2.0)

ociinternaldebug — Sinônimo de oci_internal_debug()

Descrição

Sinônimo de oci_internal_debug()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCILob::load

  • « ociinternaldebug
  • ocilogoff »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCILob::load

ociloadlob

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociloadlob — Sinônimo de OCILob::load()

Descrição

Sinônimo de OCILob::load()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_close

  • « ociloadlob
  • ocilogon »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_close

ocilogoff

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocilogoff — Sinônimo de oci_close()

Descrição

Sinônimo de oci_close()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_connect

  • « ocilogoff
  • ocinewcollection »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_connect

ocilogon

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocilogon — Sinônimo de oci_connect()

Descrição

Sinônimo de oci_connect()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_new_collection

  • « ocilogon
  • ocinewcursor »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_new_collection

ocinewcollection

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocinewcollection — Sinônimo de oci_new_collection()

Descrição

Sinônimo de oci_new_collection()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_new_cursor

  • « ocinewcollection
  • ocinewdescriptor »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_new_cursor

ocinewcursor

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocinewcursor — Sinônimo de oci_new_cursor()

Descrição

Sinônimo de oci_new_cursor()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_new_descriptor

  • « ocinewcursor
  • ocinlogon »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_new_descriptor

ocinewdescriptor

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocinewdescriptor — Sinônimo de oci_new_descriptor()

Descrição

Sinônimo de oci_new_descriptor()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_new_connect

  • « ocinewdescriptor
  • ocinumcols »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_new_connect

ocinlogon

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocinlogon — Sinônimo de oci_new_connect()

Descrição

Sinônimo de oci_new_connect()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_num_fields

  • « ocinlogon
  • ociparse »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_num_fields

ocinumcols

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocinumcols — Sinônimo de oci_num_fields()

Descrição

Sinônimo de oci_num_fields()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_parse

  • « ocinumcols
  • ociplogon »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_parse

ociparse

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociparse — Sinônimo de oci_parse()

Descrição

Sinônimo de oci_parse()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_pconnect

  • « ociparse
  • ociresult »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_pconnect

ociplogon

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociplogon — Sinônimo de oci_pconnect()

Descrição

Sinônimo de oci_pconnect()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_result

  • « ociplogon
  • ocirollback »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_result

ociresult

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociresult — Sinônimo de oci_result()

Descrição

Sinônimo de oci_result()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_rollback

  • « ociresult
  • ocirowcount »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_rollback

ocirollback

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocirollback — Sinônimo de oci_rollback()

Descrição

Sinônimo de oci_rollback()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_num_rows

  • « ocirollback
  • ocisavelob »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_num_rows

ocirowcount

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocirowcount — Sinônimo de oci_num_rows()

Descrição

Sinônimo de oci_num_rows()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCILob::save

  • « ocirowcount
  • ocisavelobfile »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCILob::save

ocisavelob

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocisavelob — Sinônimo de OCILob::save()

Descrição

Sinônimo de OCILob::save()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCILob::import

  • « ocisavelob
  • ociserverversion »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCILob::import

ocisavelobfile

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocisavelobfile — Sinônimo de OCILob::import()

Descrição

Sinônimo de OCILob::import()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_server_version

  • « ocisavelobfile
  • ocisetprefetch »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_server_version

ociserverversion

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociserverversion — Sinônimo de oci_server_version()

Descrição

Sinônimo de oci_server_version()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_set_prefetch

  • « ociserverversion
  • ocistatementtype »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_set_prefetch

ocisetprefetch

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocisetprefetch — Sinônimo de oci_set_prefetch()

Descrição

Sinônimo de oci_set_prefetch()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de oci_statement_type

  • « ocisetprefetch
  • ociwritelobtofile »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de oci_statement_type

ocistatementtype

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocistatementtype — Sinônimo de oci_statement_type()

Descrição

Sinônimo de oci_statement_type()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCILob::export

  • « ocistatementtype
  • ociwritetemporarylob »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCILob::export

ociwritelobtofile

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociwritelobtofile — Sinônimo de OCILob::export()

Descrição

Sinônimo de OCILob::export()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


Sinônimo de OCILob::writeTemporary

  • « ociwritelobtofile
  • PostgreSQL »
  • PHP Manual
  • OCI8 Obsolete Aliases and Functions
  • Sinônimo de OCILob::writeTemporary

ociwritetemporarylob

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 1.0)

ociwritetemporarylob — Sinônimo de OCILob::writeTemporary()

Descrição

Sinônimo de OCILob::writeTemporary()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 5.4.0. O uso deste apelido é fortemente desencorajado.


PostgreSQL

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Uso básico
    • Basic usage
  • Funções PostgreSQL
    • pg_affected_rows — Returns number of affected records (tuples)
    • pg_cancel_query — Cancel an asynchronous query
    • pg_client_encoding — Gets the client encoding
    • pg_close — Closes a PostgreSQL connection
    • pg_connect_poll — Poll the status of an in-progress asynchronous PostgreSQL connection attempt
    • pg_connect — Open a PostgreSQL connection
    • pg_connection_busy — Get connection is busy or not
    • pg_connection_reset — Reset connection (reconnect)
    • pg_connection_status — Get connection status
    • pg_consume_input — Reads input on the connection
    • pg_convert — Convert associative array values into forms suitable for SQL statements
    • pg_copy_from — Insert records into a table from an array
    • pg_copy_to — Copy a table to an array
    • pg_dbname — Get the database name
    • pg_delete — Deletes records
    • pg_end_copy — Sync with PostgreSQL backend
    • pg_escape_bytea — Escape a string for insertion into a bytea field
    • pg_escape_identifier — Escape a identifier for insertion into a text field
    • pg_escape_literal — Escape a literal for insertion into a text field
    • pg_escape_string — Escape a string for query
    • pg_execute — Sends a request to execute a prepared statement with given parameters, and waits for the result
    • pg_fetch_all_columns — Fetches all rows in a particular result column as an array
    • pg_fetch_all — Fetches all rows from a result as an array
    • pg_fetch_array — Fetch a row as an array
    • pg_fetch_assoc — Fetch a row as an associative array
    • pg_fetch_object — Fetch a row as an object
    • pg_fetch_result — Returns values from a result instance
    • pg_fetch_row — Get a row as an enumerated array
    • pg_field_is_null — Test if a field is SQL 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_table — Returns the name or oid of the tables field
    • pg_field_type_oid — Returns the type ID (OID) for the corresponding field number
    • pg_field_type — Returns the type name for the corresponding field number
    • pg_flush — Flush outbound query data on the connection
    • pg_free_result — Free result memory
    • pg_get_notify — Gets SQL NOTIFY message
    • pg_get_pid — Gets the backend's process ID
    • pg_get_result — Get asynchronous query result
    • pg_host — Returns the host name associated with the connection
    • 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 row'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 within a large object
    • pg_lo_tell — Returns current seek position a of large object
    • pg_lo_truncate — Truncates a large object
    • pg_lo_unlink — Delete a large object
    • pg_lo_write — Write to a large object
    • pg_meta_data — Get meta data for table
    • pg_num_fields — Returns the number of fields in a result
    • pg_num_rows — Returns the number of rows in a result
    • pg_options — Get the options associated with the connection
    • pg_parameter_status — Looks up a current parameter setting of the server
    • pg_pconnect — Open a persistent PostgreSQL connection
    • pg_ping — Ping database connection
    • pg_port — Return the port number associated with the connection
    • pg_prepare — Submits a request to create a prepared statement with the given parameters, and waits for completion
    • pg_put_line — Send a NULL-terminated string to PostgreSQL backend
    • pg_query_params — Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text
    • pg_query — Execute a query
    • pg_result_error_field — Returns an individual field of an error report
    • pg_result_error — Get error message associated with result
    • pg_result_seek — Set internal row offset in result instance
    • pg_result_status — Get status of query result
    • pg_select — Select records
    • pg_send_execute — Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)
    • pg_send_prepare — Sends a request to create a prepared statement with the given parameters, without waiting for completion
    • pg_send_query_params — Submits a command and separate parameters to the server without waiting for the result(s)
    • pg_send_query — Sends asynchronous query
    • pg_set_client_encoding — Set the client encoding
    • pg_set_error_context_visibility — Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error
    • pg_set_error_verbosity — Determines the verbosity of messages returned by pg_last_error and pg_result_error
    • pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection
    • pg_trace — Enable tracing a PostgreSQL connection
    • pg_transaction_status — Returns the current in-transaction status of the server
    • pg_tty — Return the TTY name associated with the connection
    • pg_unescape_bytea — Unescape binary for bytea type
    • pg_untrace — Disable tracing of a PostgreSQL connection
    • pg_update — Update table
    • pg_version — Returns an array with client, protocol and server version (when available)
  • PgSql\Connection — The PgSql\Connection class
  • PgSql\Result — The PgSql\Result class
  • PgSql\Lob — The PgSql\Lob class


Introdução

O banco de dados PostgreSQL é um produto de código aberto e disponível gratuitamente. O Postgres, desenvolvido originalmente no Departamento de Ciência da Computação da Universidade da Califórnia em Berkeley, foi pioneiro em muitos dos conceitos objeto-relacionais que agora estão disponíveis em alguns bancos de dados comerciais. Fornece suporte à linguagem SQL92/SQL99, transações, integridade referencial, procedimentos armazenados e extensibilidade de tipos. O PostgreSQL é um descendente de código aberto do original desenvolvido em Berkeley.


Dependências

Para usar usar as funções para PostgreSQL, você precisa do PostgreSQL 6.5 ou superior e PostgreSQL 7.0 ou superior para habilitar todos os recursos deste módulo. PostgreSQL suporta inúmeros tipos de codificação de caracteres incluindo a codificação de caracteres multibyte. A versão mais atual e mais informações sobre PostgreSQL estão disponíveis em » http://www.postgresql.org/ e » Documentação do PostgreSQL.


Instalação

In order to enable PostgreSQL support, --with-pgsql[=DIR] is required when you compile PHP. DIR is the PostgreSQL base install directory, defaults to /usr/local/pgsql. If shared object module is available, PostgreSQL module may be loaded using extension directive in php.ini or dl() function.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração PostgreSQL
Nome | Padrão | Modificável | Registro de Alterações
pgsql.allow_persistent | "1" | INI_SYSTEM |
pgsql.max_persistent | "-1" | INI_SYSTEM |
pgsql.max_links | "-1" | INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | INI_SYSTEM |
pgsql.ignore_notice | "0" | INI_ALL |
pgsql.log_notice | "0" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

pgsql.allow_persistent bool

Define se serão permitidas conexões Postgres persistentes.

pgsql.max_persistent int

O número máximo de conexões Postgres persistentes por processo.

pgsql.max_links int

O número máximo de conexões Postgres por processo, incluindo conexões persistentes.

pgsql.auto_reset_persistent int

Detecta conexões persistentes quebradas com pg_pconnect(). Precisa de um pequeno oberhead.

pgsql.ignore_notice int

Define se as notas do processo interno do PostgreSQL devem ser ignoradas.

pgsql.log_notice int

Define se as mensagens e notas do processo interno do PostgreSQL serão registradas. A diretiva do PHP pgsql.ignore_notice deve estar em "Off" para que as mensagens sejam registradas.


Tipos de Recurso

Antes do PHP 8.1.0, havia dois tipos de recurso usados no módulo PostgreSQL. O primeiro é o identificador de conexão com o banco de dados, o segundo um recurso que guarda o resultado de uma consulta.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

PGSQL_LIBPQ_VERSION (string)
Versão curta da libpq, contendo apenas números e pontos.
PGSQL_LIBPQ_VERSION_STR (string)
Antes do PHP 8.0.0, a versão longa da libpq que incluía informação de compilação. A partir do PHP 8.0.0, o valor é idêntico a PGSQL_LIBPQ_VERSION, e usar PGSQL_LIBPQ_VERSION_STR tornou-se defasado.
PGSQL_ASSOC (int)
Usada em pg_fetch_array(). Retorna um array associativo contendo nomes dos campos e valores.
PGSQL_NUM (int)
Usada em pg_fetch_array(). Retorna um array com índice numérico contendo números dos campos e valores.
PGSQL_BOTH (int)
Usada em pg_fetch_array(). Retorna um array dos valores do campos com índice numérico (por número do campo) e associativo (por nome do campo).
PGSQL_CONNECT_FORCE_NEW (int)
Usado em pg_connect() para forçar a criação de nova conexão, ao invés de reutilizar uma conexão idêntica existente.
PGSQL_CONNECT_ASYNC (int)
Passada para pg_connect() para criar uma conexão assíncrona.
PGSQL_CONNECTION_AUTH_OK (int)
PGSQL_CONNECTION_AWAITING_RESPONSE (int)
PGSQL_CONNECTION_BAD (int)
Retornado pela pg_connection_status() indicando que a conexão com o banco de dados está em um estado inválido.
PGSQL_CONNECTION_MADE (int)
PGSQL_CONNECTION_OK (int)
Retornado pela pg_connection_status() indicando que a conexão com o banco de dados está em um estado válido.
PGSQL_CONNECTION_SETENV (int)
PGSQL_CONNECTION_SSL_STARTUP (int)
PGSQL_CONNECTION_STARTED (int)
PGSQL_SEEK_SET (int)
Passada para pg_lo_seek(). Operação de pesquisa deve iniciar a partir do início do objeto.
PGSQL_SEEK_CUR (int)
Passada para pg_lo_seek(). Operação de pesquisa deve iniciar a partir da posição atual.
PGSQL_SEEK_END (int)
Passada para pg_lo_seek(). Operação de pesquisa deve iniciar a partir do final do objeto.
PGSQL_EMPTY_QUERY (int)
Retornado pela pg_result_status(). A string enviada para o servidor estava vazia.
PGSQL_COMMAND_OK (int)
Retornado pela pg_result_status(). Conclusão bem sucedida de um comando que não retornou dados.
PGSQL_TUPLES_OK (int)
Retornado pela pg_result_status().Conclusão bem sucedida de um retornando dados (como um SELECT ou SHOW).
PGSQL_COPY_OUT (int)
Retornado pela pg_result_status(). Transferência de dados "Copy Out" (do servidor) iniciada.
PGSQL_COPY_IN (int)
Retornado pela pg_result_status(). Transferência de dados "Copy In" (para o servidor) iniciada.
PGSQL_BAD_RESPONSE (int)
Retornado pela pg_result_status(). A resposta do servidor não foi entendida.
PGSQL_NONFATAL_ERROR (int)
Retornado pela pg_result_status(). Um erro não fatal (uma nota ou alerta) ocorreu.
PGSQL_FATAL_ERROR (int)
Retornado pela pg_result_status(). Um erro fatal ocorreu.
PGSQL_TRANSACTION_IDLE (int)
Retornado pela pg_transaction_status(). Conexão está atualmente ociosa, não em uma transação.
PGSQL_TRANSACTION_ACTIVE (int)
Retornado pela pg_transaction_status(). Um comando está em progresso na conexão. Uma consulta foi enviada pela conexão e ainda não foi concluída.
PGSQL_TRANSACTION_INTRANS (int)
Retornado pela pg_transaction_status(). A conexão está ociosa, em um bloco de transação.
PGSQL_TRANSACTION_INERROR (int)
Retornado pela pg_transaction_status(). A conexão está ociosa, em um bloco de transação com falha.
PGSQL_TRANSACTION_UNKNOWN (int)
Retornado pela pg_transaction_status(). A conexão está ruim.
PGSQL_DIAG_SEVERITY (int)
Passada para pg_result_error_field(). A severidade; os conteúdos dos campos são ERROR, FATAL ou PANIC (em uma mensagem de erro); ou WARNING, NOTICE, DEBUG, INFO ou LOG (em uma nota), ou uma tradução de um desses. Sempre presente.
PGSQL_DIAG_SQLSTATE (int)
Passada para pg_result_error_field(). O código SQLSTATE do erro. O código SQLSTATE identifica o tipo do erro ocorrido; ele pode ser usado por aplicações front-end para executar operações específicas (como manipulação de erro) em resposta a um erro particular do banco de dados. Esta campo não muda com a localidade, e está sempre presente.
PGSQL_DIAG_MESSAGE_PRIMARY (int)
Passada para pg_result_error_field(). A mensagem de erro legível primária (tipicamente uma linha). Sempre presente.
PGSQL_DIAG_MESSAGE_DETAIL (int)
Passada para pg_result_error_field(). Detalhe: uma mensagem de erro secundária trazendo mais detalhes sobre o problema. Pode conter múltiplas linhas.
PGSQL_DIAG_MESSAGE_HINT (int)
Passada para pg_result_error_field(). Dica: um sugestão opcional sobre o que fazer em relação ao problema. Tem a intenção de ser diferente da mensagem detalhada de forma a oferecer conselhos (potencialmente inapropriados) ao invés de fatos concretos. Pode conter múltiplas linhas.
PGSQL_DIAG_STATEMENT_POSITION (int)
Passada para pg_result_error_field(). Uma string contendo um inteiro decimal indicando uma posição de cursor de erro como um índice da string da declaração original. O primeiro caractere tem índice 1, e as posições são medidas em caracteres, não em bytes.
PGSQL_DIAG_INTERNAL_POSITION (int)
Passada para pg_result_error_field(). Esta é definida da mesma forma que o campo PG_DIAG_STATEMENT_POSITION, mas ela é usado quando a posição do cursor refere-se a um comando gerado internamente ao invés do enviado pelo cliente. O campo PG_DIAG_INTERNAL_QUERY irá sempre aparecer quando este campo aparecer.
PGSQL_DIAG_INTERNAL_QUERY (int)
Passada para pg_result_error_field(). O texto do comando gerado internamente que falhou. Poderá ser, por exemplo, uma consulta SQL emitida por uma função PL/pgSQL.
PGSQL_DIAG_CONTEXT (int)
Passada para pg_result_error_field(). Um indicador de contexto no qual o erro ocorreu. Atualmente isto inclui um restreamento de pilha de chamadas de funções de linguagem procedural ativas e consultas geradas internamente. O rastreamento é uma entrada por linha, a mais recente primeiro.
PGSQL_DIAG_SOURCE_FILE (int)
Passada para pg_result_error_field(). O nome do arquivo da localização do código-fonte PostgreSQL onde o erro foi reportado.
PGSQL_DIAG_SOURCE_LINE (int)
Passada para pg_result_error_field(). O número da linha da localização do código-fonte PostgreSQL onde o erro foi reportado.
PGSQL_DIAG_SOURCE_FUNCTION (int)
Passada para pg_result_error_field(). O nome da função do código-fonte PostgreSQL que reportou o erro.
PGSQL_DIAG_SCHEMA_NAME (int)
Disponível desde o PHP 7.3.0.
PGSQL_DIAG_TABLE_NAME (int)
Disponível desde o PHP 7.3.0.
PGSQL_DIAG_COLUMN_NAME (int)
Disponível desde o PHP 7.3.0.
PGSQL_DIAG_DATATYPE_NAME (int)
Disponível desde o PHP 7.3.0.
PGSQL_DIAG_CONSTRAINT_NAME (int)
Disponível desde o PHP 7.3.0.
PGSQL_ERRORS_TERSE (int)
Passada para pg_set_error_verbosity(). Especifica que a mensagem retornada inclui severidade, texto primário e posição somente; normalmente em uma única linha.
PGSQL_ERRORS_DEFAULT (int)
Passada para pg_set_error_verbosity(). O modo padrão produz mensagens que incluem as informações do campo acima mais algum detalhe, dica, ou campos de contexto (estes podem ter múltiplas linhas).
PGSQL_ERRORS_VERBOSE (int)
Passada para pg_set_error_verbosity(). Este modo prolixo inclui todos os campos disponíveis.
PGSQL_NOTICE_LAST (int)
Usado por pg_last_notice(). Disponível desde o PHP 7.1.0.
PGSQL_NOTICE_ALL (int)
Usado por pg_last_notice(). Disponível desde o PHP 7.1.0.
PGSQL_NOTICE_CLEAR (int)
Usado por pg_last_notice(). Disponível desde o PHP 7.1.0.
PGSQL_STATUS_LONG (int)
Passada para pg_result_status(). Indica que é desejando um código de resultado numérico.
PGSQL_STATUS_STRING (int)
Passada para pg_result_status(). Indica que é desejado um resultado textual.
PGSQL_CONV_IGNORE_DEFAULT (int)
Passada para pg_convert(). Ignora valores padrão na tabela durante a conversão.
PGSQL_CONV_FORCE_NULL (int)
Passada para pg_convert(). Usa NULL da SQL no lugar de uma string vazia.
PGSQL_CONV_IGNORE_NOT_NULL (int)
Passada para pg_convert(). Ignora conversão de null em colunas SQL NOT NULL.
PGSQL_DML_NO_CONV (int)
Passada para pg_insert(), pg_select(), pg_update() e pg_delete(). Todos os parâmetros passados como são. Escape manual é requeriso se os parâmentros contiverem dados fornecidos pelo usuário. Use pg_escape_string() para isto.
PGSQL_DML_EXEC (int)
Passada para pg_insert(), pg_select(), pg_update() e pg_delete(). Executa consulta através dessas funções.
PGSQL_DML_ASYNC (int)
Passada para pg_insert(), pg_select(), pg_update() e pg_delete(). Executa consulta assíncrona através dessas funções.
PGSQL_DML_STRING (int)
Passada para pg_insert(), pg_select(), pg_update() e pg_delete(). Retorna a string da consulta executada.
PGSQL_DML_ESCAPE (int)
Passada para pg_insert(), pg_select(), pg_update() e pg_delete(). Escapa todos os parâmetros ao invés de chamar pg_convert() internamente. Esta opção omite pesquisa por metadados. A consulta pode ser tão rápida quanto pg_query() e pg_send_query().
PGSQL_POLLING_FAILED (int)
Retornada por pg_connect_poll() para indicar que a tentativa de conexão falhou.
PGSQL_POLLING_READING (int)
Retornada por pg_connect_poll() para indicar que a conexão está esperando que o socket PostgreSQL possa ser lido.
PGSQL_POLLING_WRITING (int)
Retornada por pg_connect_poll() para indicar que a conexão está esperando que o socket PostgreSQL possa ser escrito.
PGSQL_POLLING_OK (int)
Retornada por pg_connect_poll() para indicar que a conexão está pronta para uso.
PGSQL_POLLING_ACTIVE (int)
Retornada por pg_connect_poll() para indicar que a conexão está atualmente ativa.
PGSQL_DIAG_SEVERITY_NONLOCALIZED (int)
A severidade; os conteúdos dos campos são ERROR, FATAL ou PANIC (em uma mensagem de erro); ou WARNING, NOTICE, DEBUG, INFO, ou LOG (em uma nota). Isto é idêntico ao campo PG_DIAG_SEVERITY exceto que o conteúdo nunca é traduzido. Está presente somente em versões 9.6 e posteriores / PHP 7.3.0 e posteriores.
PGSQL_SHOW_CONTEXT_NEVER (int)
Para ser usada com pg_set_error_context_visibility(), o contexto nunca é mostrado. Disponível a partir do PHP 8.3.0.
PGSQL_SHOW_CONTEXT_ERRORS (int)
Para ser usada com pg_set_error_context_visibility(), os campos do contexto são incluídos apenas nas mensagens de erro. Este é o comportamento padrão. Disponível a partir do PHP 8.3.0.
PGSQL_SHOW_CONTEXT_ALWAYS (int)
Para ser usada com pg_set_error_context_visibility(), os campos do contexto são incluídos nas mensagens de erro, notas e alertas. Disponível a partir do PHP 8.3.0.
PGSQL_TRACE_SUPPRESS_TIMESTAMPS (int)
Para ser usada com pg_trace(), o timestamp não é incluído nas mensagens de rastreamento. Disponível a partir do PHP 8.3.0.
PGSQL_TRACE_REGRESS_MODE (int)
Para ser usada com pg_trace(), campos como OIDs são incluídos nas mensagens de rastreamento. Disponível a partir do PHP 8.3.0.


  • « Constantes pré-definidas
  • Uso básico »
  • PHP Manual
  • PostgreSQL
  • Exemplos

Exemplos

Índice

  • Uso básico
  • Basic usage


Uso básico

Este exemplo simples mostra como conectar, executar uma consulta, mostrar linhas de resultados e desconectar de um banco de dados PostgreSQL.

Exemplo #1 Exemplo geral da extensão PostgreSQL

<?php
// Connectando, selectionando o banco
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo")
or die('Could not connect: ' . pg_last_error());

// Executando consulta SQL
$query = 'SELECT * FROM authors';
$result = pg_query($query) or die('Query failed: ' . pg_last_error());

// Mostrando resultados em HTML
echo "<table>\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

// Liberando o conjunto de resultados
pg_free_result($result);

// Fechando a conexão
pg_close($dbconn);
?>


Basic usage

Estes exemplos contêm funções definidas pelo usuário similares às funções legadas do MySQL.

Exemplo #1 Exemplo de funções definidas pelo usuário no PostgreSQL

<?php
// Este função deve ser necessária, já que o a conexão PostgreSQL vincula o banco de dados.
function pg_list_dbs($db)
{
assert(is_resource($db));
$query = '
SELECT
d.datname as "Name",
u.usename as "Owner",
pg_encoding_to_char(d.encoding) as "Encoding"
FROM
pg_database d LEFT JOIN pg_user u ON d.datdba = u.usesysid
ORDER BY 1;
';
return pg_query($db, $query);
}

// Lista tabelas.
function pg_list_tables($db)
{
assert(is_resource($db));
$query = "
SELECT
c.relname as \"Name\",
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as \"Type\",
u.usename as \"Owner\"
FROM
pg_class c LEFT JOIN pg_user u ON c.relowner = u.usesysid
WHERE
c.relkind IN ('r','v','S','')
AND c.relname !~ '^pg_'
ORDER BY 1;
";
return pg_query($db, $query);
}

// Veja também pg_meta_data(). Ela retorna definições de campo em um array.
function pg_list_fields($db, $table)
{
assert(is_resource($db));
$query = "
SELECT
a.attname,
format_type(a.atttypid, a.atttypmod),
a.attnotnull,
a.atthasdef,
a.attnum
FROM
pg_class c,
pg_attribute a
WHERE
c.relname = '".$table."'
AND a.attnum > 0 AND a.attrelid = c.oid
ORDER BY a.attnum;
";
return pg_query($db, $query);
}
?>


Funções PostgreSQL

Notas

Nota:

Nem todas as funções são suportadas por todas as compilações. Isso vai depender da versão da libpq (A interface cliente em C para PostgreSQL) e como esta foi compilada. Se há alguma função ausente, é porque a libpq não suporta a característica exigida por esta função.

Nota:

A maioria das funções do PostgreSQL aceita connection como o primeiro parâmetro opcional. Se ele não é fornecido, a última conexão aberta é usada. Se não existir, a função retorna false.

Nota:

PostgreSQL automaticamente converte todos identificadores (e.g. nomes de tabela/coluna) para minúsculo na criação do objeto e na query. Para força o uso misto de maiúsculo ou minúsculo, você precisa usar escape no identificador usando aspas dupla ("").

Nota:

PostgreSQL não tem comandos especiais para obter informação dos dados do banco de dados (dicionário de dados) (eg. todas as tabelas do banco de dados atual). Ao invés, há um schema padrão chamado information_schema no PostgreSQL 7.4 e superior contendo views do sistema com todas as informações necessárias, em um form fácil de acessá-las. Veja a » Documentação do PostgreSQL para maiores detalhes.

Índice

  • pg_affected_rows — Returns number of affected records (tuples)
  • pg_cancel_query — Cancel an asynchronous query
  • pg_client_encoding — Gets the client encoding
  • pg_close — Closes a PostgreSQL connection
  • pg_connect_poll — Poll the status of an in-progress asynchronous PostgreSQL connection attempt
  • pg_connect — Open a PostgreSQL connection
  • pg_connection_busy — Get connection is busy or not
  • pg_connection_reset — Reset connection (reconnect)
  • pg_connection_status — Get connection status
  • pg_consume_input — Reads input on the connection
  • pg_convert — Convert associative array values into forms suitable for SQL statements
  • pg_copy_from — Insert records into a table from an array
  • pg_copy_to — Copy a table to an array
  • pg_dbname — Get the database name
  • pg_delete — Deletes records
  • pg_end_copy — Sync with PostgreSQL backend
  • pg_escape_bytea — Escape a string for insertion into a bytea field
  • pg_escape_identifier — Escape a identifier for insertion into a text field
  • pg_escape_literal — Escape a literal for insertion into a text field
  • pg_escape_string — Escape a string for query
  • pg_execute — Sends a request to execute a prepared statement with given parameters, and waits for the result
  • pg_fetch_all_columns — Fetches all rows in a particular result column as an array
  • pg_fetch_all — Fetches all rows from a result as an array
  • pg_fetch_array — Fetch a row as an array
  • pg_fetch_assoc — Fetch a row as an associative array
  • pg_fetch_object — Fetch a row as an object
  • pg_fetch_result — Returns values from a result instance
  • pg_fetch_row — Get a row as an enumerated array
  • pg_field_is_null — Test if a field is SQL 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_table — Returns the name or oid of the tables field
  • pg_field_type_oid — Returns the type ID (OID) for the corresponding field number
  • pg_field_type — Returns the type name for the corresponding field number
  • pg_flush — Flush outbound query data on the connection
  • pg_free_result — Free result memory
  • pg_get_notify — Gets SQL NOTIFY message
  • pg_get_pid — Gets the backend's process ID
  • pg_get_result — Get asynchronous query result
  • pg_host — Returns the host name associated with the connection
  • 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 row'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 within a large object
  • pg_lo_tell — Returns current seek position a of large object
  • pg_lo_truncate — Truncates a large object
  • pg_lo_unlink — Delete a large object
  • pg_lo_write — Write to a large object
  • pg_meta_data — Get meta data for table
  • pg_num_fields — Returns the number of fields in a result
  • pg_num_rows — Returns the number of rows in a result
  • pg_options — Get the options associated with the connection
  • pg_parameter_status — Looks up a current parameter setting of the server
  • pg_pconnect — Open a persistent PostgreSQL connection
  • pg_ping — Ping database connection
  • pg_port — Return the port number associated with the connection
  • pg_prepare — Submits a request to create a prepared statement with the given parameters, and waits for completion
  • pg_put_line — Send a NULL-terminated string to PostgreSQL backend
  • pg_query_params — Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text
  • pg_query — Execute a query
  • pg_result_error_field — Returns an individual field of an error report
  • pg_result_error — Get error message associated with result
  • pg_result_seek — Set internal row offset in result instance
  • pg_result_status — Get status of query result
  • pg_select — Select records
  • pg_send_execute — Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)
  • pg_send_prepare — Sends a request to create a prepared statement with the given parameters, without waiting for completion
  • pg_send_query_params — Submits a command and separate parameters to the server without waiting for the result(s)
  • pg_send_query — Sends asynchronous query
  • pg_set_client_encoding — Set the client encoding
  • pg_set_error_context_visibility — Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error
  • pg_set_error_verbosity — Determines the verbosity of messages returned by pg_last_error and pg_result_error
  • pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection
  • pg_trace — Enable tracing a PostgreSQL connection
  • pg_transaction_status — Returns the current in-transaction status of the server
  • pg_tty — Return the TTY name associated with the connection
  • pg_unescape_bytea — Unescape binary for bytea type
  • pg_untrace — Disable tracing of a PostgreSQL connection
  • pg_update — Update table
  • pg_version — Returns an array with client, protocol and server version (when available)


Returns number of affected records (tuples)

  • « Funções PostgreSQL
  • pg_cancel_query »
  • PHP Manual
  • Funções PostgreSQL
  • Returns number of affected records (tuples)

pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_affected_rows — Returns number of affected records (tuples)

Descrição

pg_affected_rows(PgSql\Result $result): int

pg_affected_rows() returns the number of tuples (instances/records/rows) affected by INSERT, UPDATE, and DELETE queries.

Since PostgreSQL 9.0 and above, the server returns the number of SELECTed rows. Older PostgreSQL return 0 for SELECT.

Nota:

This function used to be called pg_cmdtuples().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

Valor Retornado

The number of rows affected by the query. If no tuple is affected, it will return 0.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #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";
?>

O exemplo acima produzirá:

1 tuples are affected.

Veja Também

  • pg_query() - Execute a query
  • pg_query_params() - Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text
  • pg_execute() - Sends a request to execute a prepared statement with given parameters, and waits for the result
  • pg_num_rows() - Returns the number of rows in a result


Cancel an asynchronous query

  • « pg_affected_rows
  • pg_client_encoding »
  • PHP Manual
  • Funções PostgreSQL
  • Cancel an asynchronous query

pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_cancel_query — Cancel an asynchronous query

Descrição

pg_cancel_query(PgSql\Connection $connection): bool

pg_cancel_query() cancels an asynchronous query sent with pg_send_query(), pg_send_query_params() or pg_send_execute(). You cannot cancel a query executed using pg_query().

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_cancel_query() example

<?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";

// Cancel the currently running query. Will be the second query if it is
// still running.
pg_cancel_query($dbconn);
?>

O exemplo acima produzirá:

First call to pg_get_result(): Resource id #3
Resource id #3 has 3 records

Veja Também

  • pg_send_query() - Sends asynchronous query
  • pg_connection_busy() - Get connection is busy or not


Gets the client encoding

  • « pg_cancel_query
  • pg_close »
  • PHP Manual
  • Funções PostgreSQL
  • Gets the client encoding

pg_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_client_encoding — Gets the client encoding

Descrição

pg_client_encoding(?PgSql\Connection $connection = null): string

PostgreSQL supports automatic character set conversion between server and client for certain character sets. pg_client_encoding() returns the client encoding as a string. The returned string will be one of the standard PostgreSQL encoding identifiers.

Nota:

This function requires PostgreSQL 7.0 or higher. If libpq is compiled without multibyte encoding support, pg_client_encoding() always returns SQL_ASCII. Supported encoding depends on PostgreSQL version. Refer to the PostgreSQL Documentation supported encodings.

The function used to be called pg_clientencoding().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

The client encoding.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_client_encoding() example

<?php
// Assume $conn is a connection to a ISO-8859-1 database
$encoding = pg_client_encoding($conn);

echo "Client encoding is: ", $encoding, "\n";
?>

O exemplo acima produzirá:

Client encoding is: ISO-8859-1

Veja Também

  • pg_set_client_encoding() - Set the client encoding


Closes a PostgreSQL connection

  • « pg_client_encoding
  • pg_connect_poll »
  • PHP Manual
  • Funções PostgreSQL
  • Closes a PostgreSQL connection

pg_close

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_close — Closes a PostgreSQL connection

Descrição

pg_close(?PgSql\Connection $connection = null): true

pg_close() closes the non-persistent connection to a PostgreSQL database associated with the given connection instance.

Nota:

Using pg_close() is not usually necessary, as non-persistent open connections are automatically closed at the end of the script.

If there is open PgSql\Lob instance on the connection, do not close the connection before closing all PgSql\Lob instances.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_close() example

<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=mary")
or die("Could not connect");
echo "Connected successfully";
pg_close($dbconn);
?>

O exemplo acima produzirá:

Connected successfully

Veja Também

  • pg_connect() - Open a PostgreSQL connection


Poll the status of an in-progress asynchronous PostgreSQL connection attempt

  • « pg_close
  • pg_connect »
  • PHP Manual
  • Funções PostgreSQL
  • Poll the status of an in-progress asynchronous PostgreSQL connection attempt

pg_connect_poll

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_connect_poll — Poll the status of an in-progress asynchronous PostgreSQL connection attempt

Descrição

pg_connect_poll(PgSql\Connection $connection): int

pg_connect_poll() polls the status of a PostgreSQL connection created by calling pg_connect() with the PGSQL_CONNECT_ASYNC option.

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

Returns PGSQL_POLLING_FAILED, PGSQL_POLLING_READING, PGSQL_POLLING_WRITING, PGSQL_POLLING_OK, or PGSQL_POLLING_ACTIVE.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.


Open a PostgreSQL connection

  • « pg_connect_poll
  • pg_connection_busy »
  • PHP Manual
  • Funções PostgreSQL
  • Open a PostgreSQL connection

pg_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_connect — Open a PostgreSQL connection

Descrição

pg_connect(string $connection_string, int $flags = 0): PgSql\Connection|false

pg_connect() opens a connection to a PostgreSQL database specified by the connection_string.

If a second call is made to pg_connect() with the same connection_string as an existing connection, the existing connection will be returned unless you pass PGSQL_CONNECT_FORCE_NEW as flags.

The old syntax with multiple parameters $conn = pg_connect("host", "port", "options", "tty", "dbname") has been deprecated.

Parâmetros

connection_string

The connection_string can be empty to use all default parameters, or it can contain one or more parameter settings separated by whitespace. Each parameter setting is in the form keyword = value. Spaces around the equal sign are optional. To write an empty value or a value containing spaces, surround it with single quotes, e.g., keyword = 'a value'. Single quotes and backslashes within the value must be escaped with a backslash, i.e., \' and \\.

The currently recognized parameter keywords are: host, hostaddr, port, dbname (defaults to value of user), user, password, connect_timeout, options, tty (ignored), sslmode, requiressl (deprecated in favor of sslmode), and service. Which of these arguments exist depends on your PostgreSQL version.

The options parameter can be used to set command line parameters to be invoked by the server.

flags

If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection is created, even if the connection_string is identical to an existing connection.

If PGSQL_CONNECT_ASYNC is given, then the connection is established asynchronously. The state of the connection can then be checked via pg_connect_poll() or pg_connection_status().

Valor Retornado

Returns an PgSql\Connection instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Returns an PgSql\Connection instance now; previously, a resource was returned.

Exemplos

Exemplo #1 Using pg_connect()

<?php
$dbconn = pg_connect("dbname=mary");
//connect to a database named "mary"

$dbconn2 = pg_connect("host=localhost port=5432 dbname=mary");
// connect to a database named "mary" on "localhost" at port "5432"

$dbconn3 = pg_connect("host=sheep port=5432 dbname=mary user=lamb password=foo");
//connect to a database named "mary" on the host "sheep" with a username and password

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_connect($conn_string);
//connect to a database named "test" on the host "sheep" with a username and password

$dbconn5 = pg_connect("host=localhost options='--client_encoding=UTF8'");
//connect to a database on "localhost" and set the command line parameter which tells the encoding is in UTF-8
?>

Veja Também

  • pg_pconnect() - Open a persistent PostgreSQL connection
  • pg_close() - Closes a PostgreSQL connection
  • pg_host() - Returns the host name associated with the connection
  • pg_port() - Return the port number associated with the connection
  • pg_tty() - Return the TTY name associated with the connection
  • pg_options() - Get the options associated with the connection
  • pg_dbname() - Get the database name


Get connection is busy or not

  • « pg_connect
  • pg_connection_reset »
  • PHP Manual
  • Funções PostgreSQL
  • Get connection is busy or not

pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_connection_busy — Get connection is busy or not

Descrição

pg_connection_busy(PgSql\Connection $connection): bool

pg_connection_busy() determines whether or not a connection is busy. If it is busy, a previous query is still executing. If pg_get_result() is used on the connection, it will be blocked.

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

Returns true if the connection is busy, false otherwise.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #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';
}
?>

Veja Também

  • pg_connection_status() - Get connection status
  • pg_get_result() - Get asynchronous query result


Reset connection (reconnect)

  • « pg_connection_busy
  • pg_connection_status »
  • PHP Manual
  • Funções PostgreSQL
  • Reset connection (reconnect)

pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_connection_reset — Reset connection (reconnect)

Descrição

pg_connection_reset(PgSql\Connection $connection): bool

pg_connection_reset() resets the connection. It is useful for error recovery.

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #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";
}
?>

Veja Também

  • pg_connect() - Open a PostgreSQL connection
  • pg_pconnect() - Open a persistent PostgreSQL connection
  • pg_connection_status() - Get connection status


Get connection status

  • « pg_connection_reset
  • pg_consume_input »
  • PHP Manual
  • Funções PostgreSQL
  • Get connection status

pg_connection_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_connection_status — Get connection status

Descrição

pg_connection_status(PgSql\Connection $connection): int

pg_connection_status() returns the status of the specified connection.

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

PGSQL_CONNECTION_OK or PGSQL_CONNECTION_BAD.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_connection_status() example

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");
$stat = pg_connection_status($dbconn);
if ($stat === PGSQL_CONNECTION_OK) {
echo 'Connection status ok';
} else {
echo 'Connection status bad';
}
?>

Veja Também

  • pg_connection_busy() - Get connection is busy or not


Reads input on the connection

  • « pg_connection_status
  • pg_convert »
  • PHP Manual
  • Funções PostgreSQL
  • Reads input on the connection

pg_consume_input

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_consume_input — Reads input on the connection

Descrição

pg_consume_input(PgSql\Connection $connection): bool

pg_consume_input() consumes any input waiting to be read from the database server.

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

true if no error occurred, or false if there was an error. Note that true does not necessarily indicate that input was waiting to be read.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.


Convert associative array values into forms suitable for SQL statements

  • « pg_consume_input
  • pg_copy_from »
  • PHP Manual
  • Funções PostgreSQL
  • Convert associative array values into forms suitable for SQL statements

pg_convert

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_convert — Convert associative array values into forms suitable for SQL statements

Descrição

pg_convert(
PgSql\Connection $connection,
string $table_name,
array $values,
int $flags = 0
): array|false

pg_convert() checks and converts the values in values into suitable values for use in an SQL statement. Precondition for pg_convert() is the existence of a table table_name which has at least as many columns as values has elements. The fieldnames in table_name must match the indices in values and the corresponding datatypes must be compatible. Returns an array with the converted values on success, false otherwise.

Nota:

Boolean values are accepted and converted to PostgreSQL booleans. String representations of boolean values are also supported. null is converted to PostgreSQL NULL.

Parâmetros

connection

Uma instância de PgSql\Connection.

table_name

Name of the table against which to convert types.

values

Data to be converted.

flags

Any number of PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL or PGSQL_CONV_IGNORE_NOT_NULL, combined.

Valor Retornado

An array of converted values, ou false em caso de falha.

Erros/Exceções

A ValueError or TypeError is thrown when the value or type of field does not match properly with a PostgreSQL's type.

Registro de Alterações

Versão | Descrição
8.3.0 | Now throws a ValueError or TypeError error when the value or type of field does not match properly with a PostgreSQL's type; previously an E_WARNING was emitted.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_convert() example

<?php
$dbconn = pg_connect('dbname=foo');

$tmp = array(
'author' => 'Joe Thackery',
'year' => 2005,
'title' => 'My Life, by Joe Thackery'
);

$vals = pg_convert($dbconn, 'authors', $tmp);
?>

Veja Também

  • pg_meta_data() - Get meta data for table
  • pg_insert() - Insert array into table
  • pg_select() - Select records
  • pg_update() - Update table
  • pg_delete() - Deletes records


Insert records into a table from an array

  • « pg_convert
  • pg_copy_to »
  • PHP Manual
  • Funções PostgreSQL
  • Insert records into a table from an array

pg_copy_from

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_copy_from — Insert records into a table from an array

Descrição

pg_copy_from(
PgSql\Connection $connection,
string $table_name,
array $rows,
string $separator = "\t",
string $null_as = "\\\\N"
): bool

pg_copy_from() inserts records into a table from rows. It issues a COPY FROM SQL command internally to insert records.

Parâmetros

connection

Uma instância de PgSql\Connection.

table_name

Name of the table into which to copy the rows.

rows

An array of data to be copied into table_name. Each value in rows becomes a row in table_name. Each value in rows should be a delimited string of the values to insert into each field. Values should be linefeed terminated.

separator

The token that separates values for each field in each element of rows. Default is \t.

null_as

How SQL NULL values are represented in the rows. Default is \\N ("\\\\N").

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_copy_from() example

<?php
$db = pg_connect("dbname=publisher") or die("Could not connect");

$rows = pg_copy_to($db, $table_name);

pg_query($db, "DELETE FROM $table_name");

pg_copy_from($db, $table_name, $rows);
?>

Veja Também

  • pg_copy_to() - Copy a table to an array


Copy a table to an array

  • « pg_copy_from
  • pg_dbname »
  • PHP Manual
  • Funções PostgreSQL
  • Copy a table to an array

pg_copy_to

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_copy_to — Copy a table to an array

Descrição

pg_copy_to(
PgSql\Connection $connection,
string $table_name,
string $separator = "\t",
string $null_as = "\\\\N"
): array|false

pg_copy_to() copies a table to an array. It issues COPY TO SQL command internally to retrieve records.

Parâmetros

connection

Uma instância de PgSql\Connection.

table_name

Name of the table from which to copy the data into rows.

separator

The token that separates values for each field in each element of rows. Default is \t.

null_as

How SQL NULL values are represented in the rows. Default is \\N ("\\\\N").

Valor Retornado

An array with one element for each line of COPY data, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_copy_to() example

<?php
$db = pg_connect("dbname=publisher") or die("Could not connect");

$rows = pg_copy_to($db, $table_name);

pg_query($db, "DELETE FROM $table_name");

pg_copy_from($db, $table_name, $rows);
?>

Veja Também

  • pg_copy_from() - Insert records into a table from an array


Get the database name

  • « pg_copy_to
  • pg_delete »
  • PHP Manual
  • Funções PostgreSQL
  • Get the database name

pg_dbname

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_dbname — Get the database name

Descrição

pg_dbname(?PgSql\Connection $connection = null): string

pg_dbname() returns the name of the database that the given PostgreSQL connection instance.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

A string containing the name of the database the connection is to.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_dbname() example

<?php
error_reporting(E_ALL);

pg_connect("host=localhost port=5432 dbname=mary");
echo pg_dbname(); // mary
?>


Deletes records

  • « pg_dbname
  • pg_end_copy »
  • PHP Manual
  • Funções PostgreSQL
  • Deletes records

pg_delete

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_delete — Deletes records

Descrição

pg_delete(
PgSql\Connection $connection,
string $table_name,
array $conditions,
int $flags = PGSQL_DML_EXEC
): string|bool

pg_delete() deletes records from a table specified by the keys and values in conditions.

If flags is specified, pg_convert() is applied to conditions with the specified flags.

By default pg_delete() passes raw values. Values must be escaped or the PGSQL_DML_ESCAPE flag must be specified in flags. PGSQL_DML_ESCAPE quotes and escapes parameters/identifiers. Therefore, table/column names become case sensitive.

Note that neither escape nor prepared query can protect LIKE query, JSON, Array, Regex, etc. These parameters should be handled according to their contexts. i.e. Escape/validate values.

Parâmetros

connection

Uma instância de PgSql\Connection.

table_name

Name of the table from which to delete rows.

conditions

An array whose keys are field names in the table table_name, and whose values are the values of those fields that are to be deleted.

flags

Any number of PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC or PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the flags then query string is returned. When PGSQL_DML_NO_CONV or PGSQL_DML_ESCAPE is set, it does not call pg_convert() internally.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Returns string if PGSQL_DML_STRING is passed via flags.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_delete() example

<?php
$db = pg_connect('dbname=foo');
// This is safe somewhat, since all values are escaped.
// However PostgreSQL supports JSON/Array. These are not
// safe by neither escape nor prepared query.
$res = pg_delete($db, 'post_log', $_POST, PG_DML_ESCAPE);
if ($res) {
echo "POST data is deleted: $res\n";
} else {
echo "User must have sent wrong inputs\n";
}
?>

Veja Também

  • pg_convert() - Convert associative array values into forms suitable for SQL statements


Sync with PostgreSQL backend

  • « pg_delete
  • pg_escape_bytea »
  • PHP Manual
  • Funções PostgreSQL
  • Sync with PostgreSQL backend

pg_end_copy

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_end_copy — Sync with PostgreSQL backend

Descrição

pg_end_copy(?PgSql\Connection $connection = null): bool

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.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_end_copy() example

<?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);
?>

Veja Também

  • pg_put_line() - Send a NULL-terminated string to PostgreSQL backend


Escape a string for insertion into a bytea field

  • « pg_end_copy
  • pg_escape_identifier »
  • PHP Manual
  • Funções PostgreSQL
  • Escape a string for insertion into a bytea field

pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_escape_bytea — Escape a string for insertion into a bytea field

Descrição

pg_escape_bytea(PgSql\Connection $connection = ?, string $data): string

pg_escape_bytea() escapes string for bytea datatype. It returns escaped string.

Nota:

When you SELECT a bytea type, PostgreSQL returns octal byte values prefixed with '\' (e.g. \032). Users are supposed to convert back to binary format manually.

This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea values must be cast 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 a cast. The exception is when the client and backend character encoding does not match, and there may be multi-byte stream error. User must then cast to bytea to avoid this error.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

data

A string containing text or binary data to be inserted into a bytea column.

Valor Retornado

A string containing the escaped data.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_escape_bytea() example

<?php
// Connect to the database
$dbconn = pg_connect('dbname=foo');

// Read in a binary file
$data = file_get_contents('image1.jpg');

// Escape the binary data
$escaped = pg_escape_bytea($data);

// Insert it into the database
pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')");
?>

Veja Também

  • pg_unescape_bytea() - Unescape binary for bytea type
  • pg_escape_string() - Escape a string for query


Escape a identifier for insertion into a text field

  • « pg_escape_bytea
  • pg_escape_literal »
  • PHP Manual
  • Funções PostgreSQL
  • Escape a identifier for insertion into a text field

pg_escape_identifier

(PHP 5 >= 5.4.4, PHP 7, PHP 8)

pg_escape_identifier — Escape a identifier for insertion into a text field

Descrição

pg_escape_identifier(PgSql\Connection $connection = ?, string $data): string

pg_escape_identifier() escapes a identifier (e.g. table, field names) for querying the database. It returns an escaped identifier string for PostgreSQL server. pg_escape_identifier() adds double quotes before and after data. Users should not add double quotes. Use of this function is recommended for identifier parameters in query. For SQL literals (i.e. parameters except bytea), pg_escape_literal() or pg_escape_string() must be used. For bytea type fields, pg_escape_bytea() must be used instead.

Nota:

This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

data

A string containing text to be escaped.

Valor Retornado

A string containing the escaped data.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_escape_identifier() example

<?php
// Connect to the database
$dbconn = pg_connect('dbname=foo');

// Escape the table name data
$escaped = pg_escape_identifier($table_name);

// Select rows from $table_name
pg_query("SELECT * FROM {$escaped};");
?>

Veja Também

  • pg_escape_literal() - Escape a literal for insertion into a text field
  • pg_escape_bytea() - Escape a string for insertion into a bytea field
  • pg_escape_string() - Escape a string for query


Escape a literal for insertion into a text field

  • « pg_escape_identifier
  • pg_escape_string »
  • PHP Manual
  • Funções PostgreSQL
  • Escape a literal for insertion into a text field

pg_escape_literal

(PHP 5 >= 5.4.4, PHP 7, PHP 8)

pg_escape_literal — Escape a literal for insertion into a text field

Descrição

pg_escape_literal(PgSql\Connection $connection = ?, string $data): string

pg_escape_literal() escapes a literal for querying the PostgreSQL database. It returns an escaped literal in the PostgreSQL format. pg_escape_literal() adds quotes before and after data. Users should not add quotes. Use of this function is recommended instead of pg_escape_string(). If the type of the column is bytea, pg_escape_bytea() must be used instead. For escaping identifiers (e.g. table, field names), pg_escape_identifier() must be used.

Nota:

This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

data

A string containing text to be escaped.

Valor Retornado

A string containing the escaped data.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_escape_literal() example

<?php
// Connect to the database
$dbconn = pg_connect('dbname=foo');

// Read in a text file (containing apostrophes and backslashes)
$data = file_get_contents('letter.txt');

// Escape the text data
$escaped = pg_escape_literal($data);

// Insert it into the database. Note that no quotes around {$escaped}
pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', {$escaped})");
?>

Veja Também

  • pg_escape_identifier() - Escape a identifier for insertion into a text field
  • pg_escape_bytea() - Escape a string for insertion into a bytea field
  • pg_escape_string() - Escape a string for query


Escape a string for query

  • « pg_escape_literal
  • pg_execute »
  • PHP Manual
  • Funções PostgreSQL
  • Escape a string for query

pg_escape_string

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_escape_string — Escape a string for query

Descrição

pg_escape_string(PgSql\Connection $connection = ?, string $data): string

pg_escape_string() escapes a string for querying the database. It returns an escaped string in the PostgreSQL format without quotes. pg_escape_literal() is more preferred way to escape SQL parameters for PostgreSQL. addslashes() must not be used with PostgreSQL. If the type of the column is bytea, pg_escape_bytea() must be used instead. pg_escape_identifier() must be used to escape identifiers (e.g. table names, field names)

Nota:

This function requires PostgreSQL 7.2 or later.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

data

A string containing text to be escaped.

Valor Retornado

A string containing the escaped data.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_escape_string() example

<?php
// Connect to the database
$dbconn = pg_connect('dbname=foo');

// Read in a text file (containing apostrophes and backslashes)
$data = file_get_contents('letter.txt');

// Escape the text data
$escaped = pg_escape_string($data);

// Insert it into the database
pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', '{$escaped}')");
?>

Veja Também

  • pg_escape_bytea() - Escape a string for insertion into a bytea field


Sends a request to execute a prepared statement with given parameters, and waits for the result

  • « pg_escape_string
  • pg_fetch_all_columns »
  • PHP Manual
  • Funções PostgreSQL
  • Sends a request to execute a prepared statement with given parameters, and waits for the result

pg_execute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_execute — Sends a request to execute a prepared statement with given parameters, and waits for the result

Descrição

pg_execute(PgSql\Connection $connection = ?, string $stmtname, array $params): PgSql\Result|false

Sends a request to execute a prepared statement with given parameters, and waits for the result.

pg_execute() is like pg_query_params(), but the command to be executed is specified by naming a previously-prepared statement, instead of giving a query string. This feature allows commands that will be used repeatedly to be parsed and planned just once, rather than each time they are executed. The statement must have been prepared previously in the current session. pg_execute() is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.

The parameters are identical to pg_query_params(), except that the name of a prepared statement is given instead of a query string.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

stmtname

The name of the prepared statement to execute. if "" is specified, then the unnamed statement is executed. The name must have been previously prepared using pg_prepare(), pg_send_prepare() or a PREPARE SQL command.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

Aviso

Elements are converted to strings by calling this function.

Valor Retornado

An PgSql\Result instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Agora retorna uma instância de PgSql\Result; anteriormente, um resource era retornado.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Using pg_execute()

<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary");

// Prepare a query for execution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Execute the prepared query. Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Execute the same prepared query, this time with a different parameter
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

Veja Também

  • pg_prepare() - Submits a request to create a prepared statement with the given parameters, and waits for completion
  • pg_send_prepare() - Sends a request to create a prepared statement with the given parameters, without waiting for completion
  • pg_query_params() - Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text


Fetches all rows in a particular result column as an array

  • « pg_execute
  • pg_fetch_all »
  • PHP Manual
  • Funções PostgreSQL
  • Fetches all rows in a particular result column as an array

pg_fetch_all_columns

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_fetch_all_columns — Fetches all rows in a particular result column as an array

Descrição

pg_fetch_all_columns(PgSql\Result $result, int $field = 0): array

pg_fetch_all_columns() returns an array that contains all rows (records) in a particular column of the PgSql\Result instance.

Nota: Esta função define campos NULL como o valor null do PHP.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

field

Column number. Defaults to the first column if not specified.

Valor Retornado

An array with all values in the result column.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_fetch_all_columns() example

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}

$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!$result) {
echo "An error occurred.\n";
exit;
}

// Get an array of all author names
$arr = pg_fetch_all_columns($result, 1);

var_dump($arr);

?>

Veja Também

  • pg_fetch_all() - Fetches all rows from a result as an array


Fetches all rows from a result as an array

  • « pg_fetch_all_columns
  • pg_fetch_array »
  • PHP Manual
  • Funções PostgreSQL
  • Fetches all rows from a result as an array

pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_fetch_all — Fetches all rows from a result as an array

Descrição

pg_fetch_all(PgSql\Result $result, int $mode = PGSQL_ASSOC): array

pg_fetch_all() returns an array that contains all rows (records) in the PgSql\Result instance.

Nota: Esta função define campos NULL como o valor null do PHP.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

mode

Um parâmetro opcional que controla como o array retornado será indexado. mode é uma constante e pode assumir os seguintes valores: PGSQL_ASSOC, PGSQL_NUM e PGSQL_BOTH. Usando PGSQL_NUM, a função retornará um array com índices numéricos, usando PGSQL_ASSOC ela retornará apenas índices associativos enquanto PGSQL_BOTH retornará índices numéricos e associativos.

Valor Retornado

An array with all rows in the result. Each row is an array of field values indexed by field name.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.
8.0.0 | pg_fetch_all() will now return an empty array instead of false for result sets with zero rows.
7.1.0 | The mode parameter was added.

Exemplos

Exemplo #1 PostgreSQL fetch all

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
echo "An error occurred.\n";
exit;
}

$arr = pg_fetch_all($result);

print_r($arr);

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Fred
        )

    [1] => Array
        (
            [id] => 2
            [name] => Bob
        )

)

Veja Também

  • pg_fetch_row() - Get a row as an enumerated array
  • pg_fetch_array() - Fetch a row as an array
  • pg_fetch_object() - Fetch a row as an object
  • pg_fetch_result() - Returns values from a result instance


Fetch a row as an array

  • « pg_fetch_all
  • pg_fetch_assoc »
  • PHP Manual
  • Funções PostgreSQL
  • Fetch a row as an array

pg_fetch_array

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_fetch_array — Fetch a row as an array

Descrição

pg_fetch_array(PgSql\Result $result, ?int $row = null, int $mode = PGSQL_BOTH): array|false

pg_fetch_array() returns an array that corresponds to the fetched row (record).

pg_fetch_array() is an extended version of pg_fetch_row(). In addition to storing the data in the numeric indices (field number) to the result array, it can also store the data using associative indices (field name). It stores both indices by default.

Nota: Esta função define campos NULL como o valor null do PHP.

pg_fetch_array() is NOT significantly slower than using pg_fetch_row(), and is significantly easier to use.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted or null, the next row is fetched.

mode

Um parâmetro opcional que controla como o array retornado será indexado. mode é uma constante e pode assumir os seguintes valores: PGSQL_ASSOC, PGSQL_NUM e PGSQL_BOTH. Usando PGSQL_NUM, a função retornará um array com índices numéricos, usando PGSQL_ASSOC ela retornará apenas índices associativos enquanto PGSQL_BOTH retornará índices numéricos e associativos.

Valor Retornado

An array indexed numerically (beginning with 0) or associatively (indexed by field name), or both. Each value in the array is represented as a string. Database NULL values are returned as null.

false is returned if row exceeds the number of rows in the set, there are no more rows, or on any other error. Fetching from the result of a query other than SELECT will also return false.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_fetch_array() example

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "An error occurred.\n";
exit;
}

$arr = pg_fetch_array($result, 0, PGSQL_NUM);
echo $arr[0] . " <- Row 1 Author\n";
echo $arr[1] . " <- Row 1 E-mail\n";

// The row parameter is optional; NULL can be passed instead,
// to pass a result_type. Successive calls to pg_fetch_array
// will return the next row.
$arr = pg_fetch_array($result, NULL, PGSQL_ASSOC);
echo $arr["author"] . " <- Row 2 Author\n";
echo $arr["email"] . " <- Row 2 E-mail\n";

$arr = pg_fetch_array($result);
echo $arr["author"] . " <- Row 3 Author\n";
echo $arr[1] . " <- Row 3 E-mail\n";

?>

Veja Também

  • pg_fetch_row() - Get a row as an enumerated array
  • pg_fetch_object() - Fetch a row as an object
  • pg_fetch_result() - Returns values from a result instance


Fetch a row as an associative array

  • « pg_fetch_array
  • pg_fetch_object »
  • PHP Manual
  • Funções PostgreSQL
  • Fetch a row as an associative array

pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_fetch_assoc — Fetch a row as an associative array

Descrição

pg_fetch_assoc(PgSql\Result $result, ?int $row = null): array|false

pg_fetch_assoc() returns an associative array that corresponds to the fetched row (records).

pg_fetch_assoc() is equivalent to calling pg_fetch_array() with PGSQL_ASSOC as the optional third parameter. It only returns an associative array. If you need the numeric indices, use pg_fetch_row().

Nota: Esta função define campos NULL como o valor null do PHP.

pg_fetch_assoc() is NOT significantly slower than using pg_fetch_row(), and is significantly easier to use.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted or null, the next row is fetched.

Valor Retornado

An array indexed associatively (by field name). Each value in the array is represented as a string. Database NULL values are returned as null.

false is returned if row exceeds the number of rows in the set, there are no more rows, or on any other error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_fetch_assoc() example

<?php
$conn = pg_connect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}

$result = pg_query($conn, "SELECT id, author, email FROM authors");
if (!$result) {
echo "An error occurred.\n";
exit;
}

while ($row = pg_fetch_assoc($result)) {
echo $row['id'];
echo $row['author'];
echo $row['email'];
}
?>

Veja Também

  • pg_fetch_row() - Get a row as an enumerated array
  • pg_fetch_array() - Fetch a row as an array
  • pg_fetch_object() - Fetch a row as an object
  • pg_fetch_result() - Returns values from a result instance


Fetch a row as an object

  • « pg_fetch_assoc
  • pg_fetch_result »
  • PHP Manual
  • Funções PostgreSQL
  • Fetch a row as an object

pg_fetch_object

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_fetch_object — Fetch a row as an object

Descrição

pg_fetch_object(
PgSql\Result $result,
?int $row = null,
string $class = "stdClass",
array $constructor_args = []
): object|false

pg_fetch_object() returns an object with properties that correspond to the fetched row's field names. It can optionally instantiate an object of a specific class, and pass parameters to that class's constructor.

Nota: Esta função define campos NULL como o valor null do PHP.

Speed-wise, the function is identical to pg_fetch_array(), and almost as fast as pg_fetch_row() (the difference is insignificant).

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted or null, the next row is fetched.

class

The name of the class to instantiate, set the properties of and return. If not specified, a stdClass object is returned.

constructor_args

An optional array of parameters to pass to the constructor for class objects.

Valor Retornado

An object with one attribute for each field name in the result. Database NULL values are returned as null.

false is returned if row exceeds the number of rows in the set, there are no more rows, or on any other error.

Erros/Exceções

A ValueError is thrown when the constructor_args is non-empty with the class not having constructor.

Registro de Alterações

Versão | Descrição
8.3.0 | Now throws a ValueError exception when the constructor_args is non-empty with the class not having constructor; previously an Exception was thrown.
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_fetch_object() example

<?php

$database = "store";

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
echo "Failed connecting to postgres database $database\n";
exit;
}

$qu = pg_query($db_conn, "SELECT * FROM books ORDER BY author");

while ($data = pg_fetch_object($qu)) {
echo $data->author . " (";
echo $data->year . "): ";
echo $data->title . "<br />";
}

pg_free_result($qu);
pg_close($db_conn);

?>

Veja Também

  • pg_query() - Execute a query
  • pg_fetch_array() - Fetch a row as an array
  • pg_fetch_assoc() - Fetch a row as an associative array
  • pg_fetch_row() - Get a row as an enumerated array
  • pg_fetch_result() - Returns values from a result instance


Returns values from a result instance

  • « pg_fetch_object
  • pg_fetch_row »
  • PHP Manual
  • Funções PostgreSQL
  • Returns values from a result instance

pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_fetch_result — Returns values from a result instance

Descrição

pg_fetch_result(PgSql\Result $result, string|false|null $row, mixed $field): string|false|null
pg_fetch_result(PgSql\Result $result, mixed $field): string|false|null

pg_fetch_result() returns the value of a particular row and field (column) in an PgSql\Result instance.

Nota:

This function used to be called pg_result().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, next row is fetched.

field

A string representing the name of the field (column) to fetch, otherwise an int representing the field number to fetch. Fields are numbered from 0 upwards.

Valor Retornado

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. Database NULL values are returned as null.

false is returned if row exceeds the number of rows in the set, or on any other error.

Registro de Alterações

Versão | Descrição
8.3.0 | row is now nullable.
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_fetch_result() example

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "First field in the second row is: ", $val, "\n";
?>

O exemplo acima produzirá:

First field in the second row is: 2

Veja Também

  • pg_query() - Execute a query
  • pg_fetch_array() - Fetch a row as an array


Get a row as an enumerated array

  • « pg_fetch_result
  • pg_field_is_null »
  • PHP Manual
  • Funções PostgreSQL
  • Get a row as an enumerated array

pg_fetch_row

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_fetch_row — Get a row as an enumerated array

Descrição

pg_fetch_row(PgSql\Result $result, ?int $row = null, int $mode = PGSQL_NUM): array|false

pg_fetch_row() fetches one row of data from the result associated with the specified result instance.

Nota: Esta função define campos NULL como o valor null do PHP.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted or null, the next row is fetched.

mode

Um parâmetro opcional que controla como o array retornado será indexado. mode é uma constante e pode assumir os seguintes valores: PGSQL_ASSOC, PGSQL_NUM e PGSQL_BOTH. Usando PGSQL_NUM, a função retornará um array com índices numéricos, usando PGSQL_ASSOC ela retornará apenas índices associativos enquanto PGSQL_BOTH retornará índices numéricos e associativos.

Valor Retornado

An array, indexed from 0 upwards, with each value represented as a string. Database NULL values are returned as null.

false is returned if row exceeds the number of rows in the set, there are no more rows, or on any other error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_fetch_row() example

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "An error occurred.\n";
exit;
}

while ($row = pg_fetch_row($result)) {
echo "Author: $row[0] E-mail: $row[1]";
echo "<br />\n";
}

?>

Veja Também

  • pg_query() - Execute a query
  • pg_fetch_array() - Fetch a row as an array
  • pg_fetch_object() - Fetch a row as an object
  • pg_fetch_result() - Returns values from a result instance


Test if a field is SQL NULL

  • « pg_fetch_row
  • pg_field_name »
  • PHP Manual
  • Funções PostgreSQL
  • Test if a field is SQL NULL

pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_is_null — Test if a field is SQL NULL

Descrição

pg_field_is_null(PgSql\Result $result, string|false|null $row, mixed $field): int
pg_field_is_null(PgSql\Result $result, mixed $field): int

pg_field_is_null() tests if a field in an PgSql\Result instance is SQL NULL or not.

Nota:

This function used to be called pg_fieldisnull().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, current row is fetched.

field

Field number (starting from 0) as an int or the field name as a string.

Valor Retornado

Returns 1 if the field in the given row is SQL NULL, 0 if not. false is returned if the row is out of range, or upon any other error.

Registro de Alterações

Versão | Descrição
8.3.0 | row is now nullable.
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #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";
}
}
?>


Returns the name of a field

  • « pg_field_is_null
  • pg_field_num »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the name of a field

pg_field_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_name — Returns the name of a field

Descrição

pg_field_name(PgSql\Result $result, int $field): string

pg_field_name() returns the name of the field occupying the given field in the given result instance. Field numbering starts from 0.

Nota:

This function used to be called pg_fieldname().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

field

Field number, starting from 0.

Valor Retornado

The field name.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Getting information 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";
}
?>

O exemplo acima produzirá:

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

Veja Também

  • pg_field_num() - Returns the field number of the named field


Returns the field number of the named field

  • « pg_field_name
  • pg_field_prtlen »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the field number of the named field

pg_field_num

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_num — Returns the field number of the named field

Descrição

pg_field_num(PgSql\Result $result, string $field): int

pg_field_num() will return the number of the field number that corresponds to the field in the given result instance.

Nota:

This function used to be called pg_fieldnum().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

field

The name of the field. The given name is treated like an identifier in an SQL command, that is, it is downcased unless double-quoted.

Valor Retornado

The field number (numbered from 0), or -1 on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Getting information about fields

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

$res = pg_query($dbconn, "select author, year, title from authors where author = 'Orwell'");

echo "Column 'title' is field number: ", pg_field_num($res, 'title');
?>

O exemplo acima produzirá:

Column 'title' is field number: 2

Veja Também

  • pg_field_name() - Returns the name of a field


Returns the printed length

  • « pg_field_num
  • pg_field_size »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the printed length

pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_prtlen — Returns the printed length

Descrição

pg_field_prtlen(PgSql\Result $result, string|false|null $row, mixed $field_name_or_number): int
pg_field_prtlen(PgSql\Result $result, mixed $field_name_or_number): int

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 false on an error.

field_name_or_number can be passed either as an int or as a string. If it is passed as an int, PHP recognises it as the field number, otherwise as field name.

See the example given at the pg_field_name() page.

Nota:

This function used to be called pg_fieldprtlen().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

row

Row number in result. Rows are numbered from 0 upwards. If omitted, current row is fetched.

Valor Retornado

The field printed length.

Registro de Alterações

Versão | Descrição
8.3.0 | row is now nullable.
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Getting information 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";
}
?>

O exemplo acima produzirá:

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

Veja Também

  • pg_field_size() - Returns the internal storage size of the named field


Returns the internal storage size of the named field

  • « pg_field_prtlen
  • pg_field_table »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the internal storage size of the named field

pg_field_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_size — Returns the internal storage size of the named field

Descrição

pg_field_size(PgSql\Result $result, int $field): int

pg_field_size() returns the internal storage size (in bytes) of the field number in the given PostgreSQL result.

Nota:

This function used to be called pg_fieldsize().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

field

Field number, starting from 0.

Valor Retornado

The internal field storage size (in bytes). -1 indicates a variable length field.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Getting information 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";
}
?>

O exemplo acima produzirá:

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

Veja Também

  • pg_field_prtlen() - Returns the printed length
  • pg_field_type() - Returns the type name for the corresponding field number


Returns the name or oid of the tables field

  • « pg_field_size
  • pg_field_type_oid »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the name or oid of the tables field

pg_field_table

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

pg_field_table — Returns the name or oid of the tables field

Descrição

pg_field_table(PgSql\Result $result, int $field, bool $oid_only = false): string|int|false

pg_field_table() returns the name of the table that field belongs to, or the table's oid if oid_only is true.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

field

Field number, starting from 0.

oid_only

By default the tables name that field belongs to is returned but if oid_only is set to true, then the oid will instead be returned.

Valor Retornado

On success either the fields table name or oid, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Getting table information about a field

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

$res = pg_query($dbconn, "SELECT bar FROM foo");

echo pg_field_table($res, 0);
echo pg_field_table($res, 0, true);

$res = pg_query($dbconn, "SELECT version()");
var_dump(pg_field_table($res, 0));
?>

O exemplo acima produzirá algo semelhante a:

foo
14379580

bool(false)

Notas

Nota:

Returning the oid is much faster than returning the table name because fetching the table name requires a query to the database system table.

Veja Também

  • pg_field_name() - Returns the name of a field
  • pg_field_type() - Returns the type name for the corresponding field number


Returns the type ID (OID) for the corresponding field number

  • « pg_field_table
  • pg_field_type »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the type ID (OID) for the corresponding field number

pg_field_type_oid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_field_type_oid — Returns the type ID (OID) for the corresponding field number

Descrição

pg_field_type_oid(PgSql\Result $result, int $field): string|int

pg_field_type_oid() returns an integer containing the OID of the base type of the given field in the given result instance.

You can get more information about the field type by querying PostgreSQL's pg_type system table using the OID obtained with this function. The PostgreSQL format_type() function will convert a type OID into an SQL standard type name.

Nota:

If the field uses a PostgreSQL domain (rather than a basic type), it is the OID of the domain's underlying type that is returned, rather than the OID of the domain itself.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

field

Field number, starting from 0.

Valor Retornado

The OID of the field's base type.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Getting information about fields

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

// Assume 'title' is a varchar type
$res = pg_query($dbconn, "select title from authors where author = 'Orwell'");

echo "Title field type OID: ", pg_field_type_oid($res, 0);
?>

O exemplo acima produzirá:

Title field type OID: 1043

Veja Também

  • pg_field_type() - Returns the type name for the corresponding field number
  • pg_field_prtlen() - Returns the printed length
  • pg_field_name() - Returns the name of a field


Returns the type name for the corresponding field number

  • « pg_field_type_oid
  • pg_flush »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the type name for the corresponding field number

pg_field_type

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_type — Returns the type name for the corresponding field number

Descrição

pg_field_type(PgSql\Result $result, int $field): string

pg_field_type() returns a string containing the base type name of the given field in the given result instance.

Nota:

If the field uses a PostgreSQL domain (rather than a basic type), it is the name of the domain's underlying type that is returned, rather than the name of the domain itself.

Nota:

This function used to be called pg_fieldtype().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

field

Field number, starting from 0.

Valor Retornado

A string containing the base name of the field's type.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Getting information about fields

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

// Assume 'title' is a varchar type
$res = pg_query($dbconn, "select title from authors where author = 'Orwell'");

echo "Title field type: ", pg_field_type($res, 0);
?>

O exemplo acima produzirá:

Title field type: varchar

Veja Também

  • pg_field_prtlen() - Returns the printed length
  • pg_field_name() - Returns the name of a field
  • pg_field_type_oid() - Returns the type ID (OID) for the corresponding field number


Flush outbound query data on the connection

  • « pg_field_type
  • pg_free_result »
  • PHP Manual
  • Funções PostgreSQL
  • Flush outbound query data on the connection

pg_flush

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_flush — Flush outbound query data on the connection

Descrição

pg_flush(PgSql\Connection $connection): int|bool

pg_flush() flushes any outbound query data waiting to be sent on the connection.

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

Returns true if the flush was successful or no data was waiting to be flushed, 0 if part of the pending data was flushed but more remains ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.


Free result memory

  • « pg_flush
  • pg_get_notify »
  • PHP Manual
  • Funções PostgreSQL
  • Free result memory

pg_free_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_free_result — Free result memory

Descrição

pg_free_result(PgSql\Result $result): bool

pg_free_result() frees the memory and data associated with the specified PgSql\Result instance.

This function need only be called if memory consumption during script execution is a problem. Otherwise, all result memory will be automatically freed when the script ends.

Nota:

This function used to be called pg_freeresult().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_free_result() example

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "First field in the second row is: ", $val, "\n";

pg_free_result($res);
?>

O exemplo acima produzirá:

First field in the second row is: 2

Veja Também

  • pg_query() - Execute a query
  • pg_query_params() - Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text
  • pg_execute() - Sends a request to execute a prepared statement with given parameters, and waits for the result


Gets SQL NOTIFY message

  • « pg_free_result
  • pg_get_pid »
  • PHP Manual
  • Funções PostgreSQL
  • Gets SQL NOTIFY message

pg_get_notify

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_get_notify — Gets SQL NOTIFY message

Descrição

pg_get_notify(PgSql\Connection $connection, int $mode = PGSQL_ASSOC): array|false

pg_get_notify() gets notifications generated by a NOTIFY SQL command. To receive notifications, the LISTEN SQL command must be issued.

Parâmetros

connection

Uma instância de PgSql\Connection.

mode

Um parâmetro opcional que controla como o array retornado será indexado. mode é uma constante e pode assumir os seguintes valores: PGSQL_ASSOC, PGSQL_NUM e PGSQL_BOTH. Usando PGSQL_NUM, a função retornará um array com índices numéricos, usando PGSQL_ASSOC ela retornará apenas índices associativos enquanto PGSQL_BOTH retornará índices numéricos e associativos.

Valor Retornado

An array containing the NOTIFY message name and backend PID. If supported by the server, the array also contains the server version and the payload. Otherwise if no NOTIFY is waiting, then false is returned.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 PostgreSQL NOTIFY message

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\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);
}
?>

Veja Também

  • pg_get_pid() - Gets the backend's process ID


Gets the backend's process ID

  • « pg_get_notify
  • pg_get_result »
  • PHP Manual
  • Funções PostgreSQL
  • Gets the backend's process ID

pg_get_pid

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_get_pid — Gets the backend's process ID

Descrição

pg_get_pid(PgSql\Connection $connection): int

pg_get_pid() gets the backend's (database server process) PID. The PID is useful to determine whether or not a NOTIFY message received via pg_get_notify() is sent from another process or not.

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

The backend database process ID.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 PostgreSQL backend PID

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}

// Backend process PID. Use PID with pg_get_notify()
$pid = pg_get_pid($conn);
?>

Veja Também

  • pg_get_notify() - Gets SQL NOTIFY message


Get asynchronous query result

  • « pg_get_pid
  • pg_host »
  • PHP Manual
  • Funções PostgreSQL
  • Get asynchronous query result

pg_get_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_get_result — Get asynchronous query result

Descrição

pg_get_result(PgSql\Connection $connection): PgSql\Result|false

pg_get_result() gets an PgSql\Result instance from an asynchronous query executed by pg_send_query(), pg_send_query_params() or pg_send_execute().

pg_send_query() and the other asynchronous query functions can send multiple queries to a PostgreSQL server and pg_get_result() is used to get each query's results, one by one.

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

An PgSql\Result instance, or false if no more results are available.

Registro de Alterações

Versão | Descrição
8.1.0 | Agora retorna uma instância de PgSql\Result; anteriormente, um resource era retornado.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_get_result() example

<?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";
?>

O exemplo acima produzirá:

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

Veja Também

  • pg_send_query() - Sends asynchronous query


Returns the host name associated with the connection

  • « pg_get_result
  • pg_insert »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the host name associated with the connection

pg_host

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_host — Returns the host name associated with the connection

Descrição

pg_host(?PgSql\Connection $connection = null): string

pg_host() returns the host name of the given PostgreSQL connection instance is connected to.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

A string containing the name of the host the connection is to, or an empty string on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_host() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
print "Successfully connected to: " . pg_host($pgsql_conn) . "<br/>\n";
} else {
print pg_last_error($pgsql_conn);
exit;
}
?>

Veja Também

  • pg_connect() - Open a PostgreSQL connection
  • pg_pconnect() - Open a persistent PostgreSQL connection


Insert array into table

  • « pg_host
  • pg_last_error »
  • PHP Manual
  • Funções PostgreSQL
  • Insert array into table

pg_insert

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_insert — Insert array into table

Descrição

pg_insert(
PgSql\Connection $connection,
string $table_name,
array $values,
int $flags = PGSQL_DML_EXEC
): PgSql\Result|string|bool

pg_insert() inserts the values of values into the table specified by table_name.

If flags is specified, pg_convert() is applied to values with the specified flags.

By default pg_insert() passes raw values. Values must be escaped or the PGSQL_DML_ESCAPE flag must be specified in flags. PGSQL_DML_ESCAPE quotes and escapes parameters/identifiers. Therefore, table/column names become case sensitive.

Note that neither escape nor prepared query can protect LIKE query, JSON, Array, Regex, etc. These parameters should be handled according to their contexts. i.e. Escape/validate values.

Parâmetros

connection

Uma instância de PgSql\Connection.

table_name

Name of the table into which to insert rows. The table table_name must at least have as many columns as values has elements.

values

An array whose keys are field names in the table table_name, and whose values are the values of those fields that are to be inserted.

flags

Any number of PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC or PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the flags then query string is returned. When PGSQL_DML_NO_CONV or PGSQL_DML_ESCAPE is set, it does not call pg_convert() internally.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.. Or returns a string on success if PGSQL_DML_STRING is passed via flags.

Erros/Exceções

A ValueError is thrown when the specified table is invalid.

A ValueError or TypeError is thrown when the value or type of field does not match properly with a PostgreSQL's type.

Registro de Alterações

Versão | Descrição
8.3.0 | Now throws a ValueError error when the specified table is invalid; previously an E_WARNING was emitted.
8.3.0 | Now throws a ValueError or TypeError error when the value or type of field does not match properly with a PostgreSQL's type; previously an E_WARNING was emitted.
8.1.0 | Agora retorna uma instância de PgSql\Result; anteriormente, um resource era retornado.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_insert() example

<?php
$dbconn = pg_connect('dbname=foo');
// This is safe somewhat, since all values are escaped.
// However PostgreSQL supports JSON/Array. These are not
// safe by neither escape nor prepared query.
$res = pg_insert($dbconn, 'post_log', $_POST, PGSQL_DML_ESCAPE);
if ($res) {
echo "POST data is successfully logged\n";
} else {
echo "User must have sent wrong inputs\n";
}
?>

Veja Também

  • pg_convert() - Convert associative array values into forms suitable for SQL statements


Get the last error message string of a connection

  • « pg_insert
  • pg_last_notice »
  • PHP Manual
  • Funções PostgreSQL
  • Get the last error message string of a connection

pg_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_last_error — Get the last error message string of a connection

Descrição

pg_last_error(?PgSql\Connection $connection = null): string

pg_last_error() returns the last error message for a given connection.

Error messages may be overwritten by internal PostgreSQL (libpq) function calls. It may not return an appropriate error message if multiple errors occur inside a PostgreSQL module function.

Use pg_result_error(), pg_result_error_field(),
pg_result_status() and
pg_connection_status() for better error handling.

Nota:

This function used to be called pg_errormessage().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

A string containing the last error message on the given connection.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_last_error() example

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

// Query that fails
$res = pg_query($dbconn, "select * from doesnotexist");

echo pg_last_error($dbconn);
?>

Veja Também

  • pg_result_error() - Get error message associated with result
  • pg_result_error_field() - Returns an individual field of an error report


Returns the last notice message from PostgreSQL server

  • « pg_last_error
  • pg_last_oid »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the last notice message from PostgreSQL server

pg_last_notice

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

pg_last_notice — Returns the last notice message from PostgreSQL server

Descrição

pg_last_notice(PgSql\Connection $connection, int $mode = PGSQL_NOTICE_LAST): array|string|bool

pg_last_notice() returns the last notice message from the PostgreSQL server on the specified connection. The PostgreSQL server sends notice messages in several cases, for instance when creating a SERIAL column in a table.

With pg_last_notice(), you can avoid issuing useless queries by checking whether or not the notice is related to your transaction.

Notice message tracking can be set to optional by setting 1 for pgsql.ignore_notice in php.ini.

Notice message logging can be set to optional by setting 0 for pgsql.log_notice in php.ini. Unless pgsql.ignore_notice is set to 0, notice message cannot be logged.

Parâmetros

connection

Uma instância de PgSql\Connection.

mode

One of PGSQL_NOTICE_LAST (to return last notice), PGSQL_NOTICE_ALL (to return all notices), or PGSQL_NOTICE_CLEAR (to clear notices).

Valor Retornado

A string containing the last notice on the given connection with PGSQL_NOTICE_LAST, an array with PGSQL_NOTICE_ALL, a bool with PGSQL_NOTICE_CLEAR.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
7.1.0 | The mode parameter was added.

Exemplos

Exemplo #1 pg_last_notice() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

$res = pg_query("CREATE TABLE test (id SERIAL)");

$notice = pg_last_notice($pgsql_conn);

echo $notice;
?>

O exemplo acima produzirá:

CREATE TABLE will create implicit sequence "test_id_seq" for "serial" column "test.id"

Veja Também

  • pg_query() - Execute a query
  • pg_last_error() - Get the last error message string of a connection


Returns the last row's OID

  • « pg_last_notice
  • pg_lo_close »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the last row's OID

pg_last_oid

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_last_oid — Returns the last row's OID

Descrição

pg_last_oid(PgSql\Result $result): string|int|false

pg_last_oid() is used to retrieve the OID assigned to an inserted row.

OID field became an optional field from PostgreSQL 7.2 and will not be present by default in PostgreSQL 8.1. When the OID field is not present in a table, the programmer must use pg_result_status() to check for successful insertion.

To get the value of a SERIAL field in an inserted row, it is necessary to use the PostgreSQL CURRVAL function, naming the sequence whose last value is required. If the name of the sequence is unknown, the pg_get_serial_sequence PostgreSQL 8.0 function is necessary.

PostgreSQL 8.1 has a function LASTVAL that returns the value of the most recently used sequence in the session. This avoids the need for naming the sequence, table or column altogether.

Nota:

This function used to be called pg_getlastoid().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

Valor Retornado

An int or string containing the OID assigned to the most recently inserted row in the specified connection, or false on error or no available OID.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_last_oid() example

<?php
// Connect to the database
pg_connect("dbname=mark host=localhost");

// Create a sample table
pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

// Insert some data into it
$res = pg_query("INSERT INTO test VALUES (1)");

$oid = pg_last_oid($res);
?>

Veja Também

  • pg_query() - Execute a query
  • pg_result_status() - Get status of query result


Close a large object

  • « pg_last_oid
  • pg_lo_create »
  • PHP Manual
  • Funções PostgreSQL
  • Close a large object

pg_lo_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_close — Close a large object

Descrição

pg_lo_close(PgSql\Lob $lob): bool

pg_lo_close() closes a large object.

To use the large object interface, it is necessary to enclose it within a transaction block.

Nota:

This function used to be called pg_loclose().

Parâmetros

lob

Uma instância de PgSql\Lob, retornada por pg_lo_open().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro lob agora espera uma instância de PgSql\Lob; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_close() example

<?php
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$oid = pg_lo_create($database);
echo "$oid\n";
$handle = pg_lo_open($database, $oid, "w");
echo "$handle\n";
pg_lo_write($handle, "large object data");
pg_lo_close($handle);
pg_query($database, "commit");
?>

Veja Também

  • pg_lo_open() - Open a large object
  • pg_lo_create() - Create a large object
  • pg_lo_import() - Import a large object from file


Create a large object

  • « pg_lo_close
  • pg_lo_export »
  • PHP Manual
  • Funções PostgreSQL
  • Create a large object

pg_lo_create

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_create — Create a large object

Descrição

pg_lo_create(PgSql\Connection $connection = ?, mixed $object_id = ?): int
pg_lo_create(mixed $object_id): int

pg_lo_create() creates a large object and returns the OID of the large object. 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).

To use the large object interface, it is necessary to enclose it within a transaction block.

Instead of using the large object interface (which has no access controls and is cumbersome to use), try PostgreSQL's bytea column type and pg_escape_bytea().

Nota:

This function used to be called pg_locreate().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

object_id

If an object_id is given the function will try to create a large object with this id, else a free object id is assigned by the server. The parameter relies on functionality that first appeared in PostgreSQL 8.1.

Valor Retornado

A large object OID, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_create() example

<?php
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$oid = pg_lo_create($database);
echo "$oid\n";
$handle = pg_lo_open($database, $oid, "w");
echo "$handle\n";
pg_lo_write($handle, "large object data");
pg_lo_close($handle);
pg_query($database, "commit");
?>


Export a large object to file

  • « pg_lo_create
  • pg_lo_import »
  • PHP Manual
  • Funções PostgreSQL
  • Export a large object to file

pg_lo_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_export — Export a large object to file

Descrição

pg_lo_export(PgSql\Connection $connection = ?, int $oid, string $pathname): bool

pg_lo_export() takes a large object in a PostgreSQL database and saves its contents to a file on the local filesystem.

To use the large object interface, it is necessary to enclose it within a transaction block.

Nota:

This function used to be called pg_loexport().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

oid

The OID of the large object in the database.

pathname

The full path and file name of the file in which to write the large object on the client filesystem.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_export() example

<?php
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$oid = pg_lo_create($database);
$handle = pg_lo_open($database, $oid, "w");
pg_lo_write($handle, "large object data");
pg_lo_close($handle);
pg_lo_export($database, $oid, '/tmp/lob.dat');
pg_query($database, "commit");
?>

Veja Também

  • pg_lo_import() - Import a large object from file


Import a large object from file

  • « pg_lo_export
  • pg_lo_open »
  • PHP Manual
  • Funções PostgreSQL
  • Import a large object from file

pg_lo_import

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_import — Import a large object from file

Descrição

pg_lo_import(PgSql\Connection $connection = ?, string $pathname, mixed $object_id = ?): int

pg_lo_import() creates a new large object in the database using a file on the filesystem as its data source.

To use the large object interface, it is necessary to enclose it within a transaction block.

Nota:

This function used to be called pg_loimport().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

pathname

The full path and file name of the file on the client filesystem from which to read the large object data.

object_id

If an object_id is given the function will try to create a large object with this id, else a free object id is assigned by the server. The parameter relies on functionality that first appeared in PostgreSQL 8.1.

Valor Retornado

The OID of the newly created large object, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_import() example

<?php
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$oid = pg_lo_import($database, '/tmp/lob.dat');
pg_query($database, "commit");
?>

Veja Também

  • pg_lo_export() - Export a large object to file
  • pg_lo_open() - Open a large object


Open a large object

  • « pg_lo_import
  • pg_lo_read_all »
  • PHP Manual
  • Funções PostgreSQL
  • Open a large object

pg_lo_open

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_open — Open a large object

Descrição

pg_lo_open(PgSql\Connection $connection, int $oid, string $mode): PgSql\Lob|false

pg_lo_open() opens a large object in the database and returns an PgSql\Lob instance so that it can be manipulated.

Aviso

Do not close the database connection before closing the PgSql\Lob instance.

To use the large object interface, it is necessary to enclose it within a transaction block.

Nota:

This function used to be called pg_loopen().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

oid

The OID of the large object in the database.

mode

Can be either "r" for read-only, "w" for write only or "rw" for read and write.

Valor Retornado

An PgSql\Lob instance, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Returns an PgSql\Lob instance now; previously, a resource was returned.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_open() example

<?php
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$oid = pg_lo_create($database);
echo "$oid\n";
$handle = pg_lo_open($database, $oid, "w");
echo "$handle\n";
pg_lo_write($handle, "large object data");
pg_lo_close($handle);
pg_query($database, "commit");
?>

Veja Também

  • pg_lo_close() - Close a large object
  • pg_lo_create() - Create a large object


Reads an entire large object and send straight to browser

  • « pg_lo_open
  • pg_lo_read »
  • PHP Manual
  • Funções PostgreSQL
  • Reads an entire large object and send straight to browser

pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_read_all — Reads an entire large object and send straight to browser

Descrição

pg_lo_read_all(PgSql\Lob $lob): int

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.

To use the large object interface, it is necessary to enclose it within a transaction block.

Nota:

This function used to be called pg_loreadall().

Parâmetros

lob

Uma instância de PgSql\Lob, retornada por pg_lo_open().

Valor Retornado

Number of bytes read.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro lob agora espera uma instância de PgSql\Lob; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_read_all() example

<?php
header('Content-type: image/jpeg');
$image_oid = 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $image_oid, "r");
pg_lo_read_all($handle);
pg_query($database, "commit");
?>

Veja Também

  • pg_lo_read() - Read a large object


Read a large object

  • « pg_lo_read_all
  • pg_lo_seek »
  • PHP Manual
  • Funções PostgreSQL
  • Read a large object

pg_lo_read

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_read — Read a large object

Descrição

pg_lo_read(PgSql\Lob $lob, int $length = 8192): string|false

pg_lo_read() reads at most length bytes from a large object and returns it as a string.

To use the large object interface, it is necessary to enclose it within a transaction block.

Nota:

This function used to be called pg_loread().

Parâmetros

lob

Uma instância de PgSql\Lob, retornada por pg_lo_open().

length

An optional maximum number of bytes to return.

Valor Retornado

A string containing length bytes from the large object, or false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro lob agora espera uma instância de PgSql\Lob; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_read() example

<?php
$doc_oid = 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $doc_oid, "r");
$data = pg_lo_read($handle, 50000);
pg_query($database, "commit");
echo $data;
?>

Veja Também

  • pg_lo_read_all() - Reads an entire large object and send straight to browser


Seeks position within a large object

  • « pg_lo_read
  • pg_lo_tell »
  • PHP Manual
  • Funções PostgreSQL
  • Seeks position within a large object

pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_seek — Seeks position within a large object

Descrição

pg_lo_seek(PgSql\Lob $lob, int $offset, int $whence = SEEK_CUR): bool

pg_lo_seek() seeks a position within an PgSql\Lob instance.

To use the large object interface, it is necessary to enclose it within a transaction block.

Parâmetros

lob

Uma instância de PgSql\Lob, retornada por pg_lo_open().

offset

The number of bytes to seek.

whence

One of the constants PGSQL_SEEK_SET (seek from object start), PGSQL_SEEK_CUR (seek from current position) or PGSQL_SEEK_END (seek from object end) .

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro lob agora espera uma instância de PgSql\Lob; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_seek() example

<?php
$doc_oid = 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $doc_oid, "r");
// Skip first 50000 bytes
pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
// Read the next 10000 bytes
$data = pg_lo_read($handle, 10000);
pg_query($database, "commit");
echo $data;
?>

Veja Também

  • pg_lo_tell() - Returns current seek position a of large object


Returns current seek position a of large object

  • « pg_lo_seek
  • pg_lo_truncate »
  • PHP Manual
  • Funções PostgreSQL
  • Returns current seek position a of large object

pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_tell — Returns current seek position a of large object

Descrição

pg_lo_tell(PgSql\Lob $lob): int

pg_lo_tell() returns the current position (offset from the beginning) of a large object.

To use the large object interface, it is necessary to enclose it within a transaction block.

Parâmetros

lob

Uma instância de PgSql\Lob, retornada por pg_lo_open().

Valor Retornado

The current seek offset (in number of bytes) from the beginning of the large object. If there is an error, the return value is negative.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro lob agora espera uma instância de PgSql\Lob; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_tell() example

<?php
$doc_oid = 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $doc_oid, "r");
// Skip first 50000 bytes
pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
// See how far we've skipped
$offset = pg_lo_tell($handle);
echo "Seek position is: $offset";
pg_query($database, "commit");
?>

O exemplo acima produzirá:

Seek position is: 50000

Veja Também

  • pg_lo_seek() - Seeks position within a large object


Truncates a large object

  • « pg_lo_tell
  • pg_lo_unlink »
  • PHP Manual
  • Funções PostgreSQL
  • Truncates a large object

pg_lo_truncate

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_lo_truncate — Truncates a large object

Descrição

pg_lo_truncate(PgSql\Lob $lob, int $size): bool

pg_lo_truncate() truncates an PgSql\Lob instance.

To use the large object interface, it is necessary to enclose it within a transaction block.

Parâmetros

lob

Uma instância de PgSql\Lob, retornada por pg_lo_open().

size

The number of bytes to truncate.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro lob agora espera uma instância de PgSql\Lob; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_truncate() example

<?php
$doc_oid = 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $doc_oid, "r");
// Truncate to 0
pg_lo_truncate($handle, 0);
pg_query($database, "commit");
echo $data;
?>

Veja Também

  • pg_lo_tell() - Returns current seek position a of large object


Delete a large object

  • « pg_lo_truncate
  • pg_lo_write »
  • PHP Manual
  • Funções PostgreSQL
  • Delete a large object

pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_unlink — Delete a large object

Descrição

pg_lo_unlink(PgSql\Connection $connection, int $oid): bool

pg_lo_unlink() deletes a large object with the oid. Retorna true em caso de sucesso ou false em caso de falha.

To use the large object interface, it is necessary to enclose it within a transaction block.

Nota:

This function used to be called pg_lounlink().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

oid

The OID of the large object in the database.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_lo_unlink() example

<?php
// OID of the large object to delete
$doc_oid = 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
pg_lo_unlink($database, $doc_oid);
pg_query($database, "commit");
?>

Veja Também

  • pg_lo_create() - Create a large object
  • pg_lo_import() - Import a large object from file


Write to a large object

  • « pg_lo_unlink
  • pg_meta_data »
  • PHP Manual
  • Funções PostgreSQL
  • Write to a large object

pg_lo_write

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_write — Write to a large object

Descrição

pg_lo_write(PgSql\Lob $lob, string $data, ?int $length = null): int|false

pg_lo_write() writes data into a large object at the current seek position.

To use the large object interface, it is necessary to enclose it within a transaction block.

Nota:

This function used to be called pg_lowrite().

Parâmetros

lob

Uma instância de PgSql\Lob, retornada por pg_lo_open().

data

The data to be written to the large object. If length is an int and is less than the length of data, only length bytes will be written.

length

An optional maximum number of bytes to write. Must be greater than zero and no greater than the length of data. Defaults to the length of data.

Valor Retornado

The number of bytes written to the large object, or false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro lob agora espera uma instância de PgSql\Lob; anteriormente, um resource era esperado.
8.0.0 | length is now nullable.

Exemplos

Exemplo #1 pg_lo_write() example

<?php
$doc_oid = 189762345;
$data = "This will overwrite the start of the large object.";
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $doc_oid, "w");
$data = pg_lo_write($handle, $data);
pg_query($database, "commit");
?>

Veja Também

  • pg_lo_create() - Create a large object
  • pg_lo_open() - Open a large object


Get meta data for table

  • « pg_lo_write
  • pg_num_fields »
  • PHP Manual
  • Funções PostgreSQL
  • Get meta data for table

pg_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_meta_data — Get meta data for table

Descrição

pg_meta_data(PgSql\Connection $connection, string $table_name, bool $extended = false): array|false

pg_meta_data() returns table definition for table_name as an array.

Parâmetros

connection

Uma instância de PgSql\Connection.

table_name

The name of the table.

extended

Flag for returning extended meta data. Default to false.

Valor Retornado

An array of the table definition, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #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>';
}
?>

O exemplo acima produzirá:

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)
}
}

Veja Também

  • pg_convert() - Convert associative array values into forms suitable for SQL statements


Returns the number of fields in a result

  • « pg_meta_data
  • pg_num_rows »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the number of fields in a result

pg_num_fields

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_num_fields — Returns the number of fields in a result

Descrição

pg_num_fields(PgSql\Result $result): int

pg_num_fields() returns the number of fields (columns) in the PgSql\Result instance.

Nota:

This function used to be called pg_numfields().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

Valor Retornado

The number of fields (columns) in the result. On error, -1 is returned.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_num_fields() example

<?php
$result = pg_query($conn, "SELECT 1, 2");

$num = pg_num_fields($result);

echo $num . " field(s) returned.\n";
?>

O exemplo acima produzirá:

2 field(s) returned.

Veja Também

  • pg_num_rows() - Returns the number of rows in a result
  • pg_affected_rows() - Returns number of affected records (tuples)


Returns the number of rows in a result

  • « pg_num_fields
  • pg_options »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the number of rows in a result

pg_num_rows

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_num_rows — Returns the number of rows in a result

Descrição

pg_num_rows(PgSql\Result $result): int

pg_num_rows() will return the number of rows in an PgSql\Result instance.

Nota:

This function used to be called pg_numrows().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

Valor Retornado

The number of rows in the result. On error, -1 is returned.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_num_rows() example

<?php
$result = pg_query($conn, "SELECT 1");

$rows = pg_num_rows($result);

echo $rows . " row(s) returned.\n";
?>

O exemplo acima produzirá:

1 row(s) returned.

Veja Também

  • pg_num_fields() - Returns the number of fields in a result
  • pg_affected_rows() - Returns number of affected records (tuples)


Get the options associated with the connection

  • « pg_num_rows
  • pg_parameter_status »
  • PHP Manual
  • Funções PostgreSQL
  • Get the options associated with the connection

pg_options

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_options — Get the options associated with the connection

Descrição

pg_options(?PgSql\Connection $connection = null): string

pg_options() will return a string containing the options specified on the given PostgreSQL connection instance.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

A string containing the connection options.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_options() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");
echo pg_options($pgsql_conn);
?>

Veja Também

  • pg_connect() - Open a PostgreSQL connection


Looks up a current parameter setting of the server

  • « pg_options
  • pg_pconnect »
  • PHP Manual
  • Funções PostgreSQL
  • Looks up a current parameter setting of the server

pg_parameter_status

(PHP 5, PHP 7, PHP 8)

pg_parameter_status — Looks up a current parameter setting of the server

Descrição

pg_parameter_status(PgSql\Connection $connection = ?, string $param_name): string

Looks up a current parameter setting of the server.

Certain parameter values are reported by the server automatically at connection startup or whenever their values change. pg_parameter_status() can be used to interrogate these settings. It returns the current value of a parameter if known, or false if the parameter is not known.

Parameters reported as of PostgreSQL 8.0 include server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone, and integer_datetimes. (server_encoding, TimeZone, and integer_datetimes were not reported by releases before 8.0.) Note that server_version, server_encoding and integer_datetimes cannot change after PostgreSQL startup.

PostgreSQL 7.3 or lower servers do not report parameter settings, pg_parameter_status() includes logic to obtain values for server_version and client_encoding anyway. Applications are encouraged to use pg_parameter_status() rather than ad hoc code to determine these values.

Cuidado

On a pre-7.4 PostgreSQL server, changing client_encoding via SET after connection startup will not be reflected by pg_parameter_status().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

param_name

Possible param_name values include server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone, and integer_datetimes. Note that this value is case-sensitive.

Valor Retornado

A string containing the value of the parameter, false on failure or invalid param_name.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_parameter_status() example

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

echo "Server encoding: ", pg_parameter_status($dbconn, "server_encoding");
?>

O exemplo acima produzirá:

Server encoding: SQL_ASCII


Open a persistent PostgreSQL connection

  • « pg_parameter_status
  • pg_ping »
  • PHP Manual
  • Funções PostgreSQL
  • Open a persistent PostgreSQL connection

pg_pconnect

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_pconnect — Open a persistent PostgreSQL connection

Descrição

pg_pconnect(string $connection_string, int $flags = 0): PgSql\Connection|false

pg_pconnect() opens a connection to a PostgreSQL database. It returns an PgSql\Connection instance that is needed by other PostgreSQL functions.

If a second call is made to pg_pconnect() with the same connection_string as an existing connection, the existing connection will be returned unless you pass PGSQL_CONNECT_FORCE_NEW as flags.

To enable persistent connection, the pgsql.allow_persistent php.ini directive must be set to "On" (which is the default). The maximum number of persistent connection can be defined with the pgsql.max_persistent php.ini directive (defaults to -1 for no limit). The total number of connections can be set with the pgsql.max_links php.ini directive.

pg_close() will not close persistent links generated by pg_pconnect().

Parâmetros

connection_string

The connection_string can be empty to use all default parameters, or it can contain one or more parameter settings separated by whitespace. Each parameter setting is in the form keyword = value. Spaces around the equal sign are optional. To write an empty value or a value containing spaces, surround it with single quotes, e.g., keyword = 'a value'. Single quotes and backslashes within the value must be escaped with a backslash, i.e., \' and \\.

The currently recognized parameter keywords are: host, hostaddr, port, dbname, user, password, connect_timeout, options, tty (ignored), sslmode, requiressl (deprecated in favor of sslmode), and service. Which of these arguments exist depends on your PostgreSQL version.

flags

If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection is created, even if the connection_string is identical to an existing connection.

Valor Retornado

Returns an PgSql\Connection instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Returns an PgSql\Connection instance now; previously, a resource was returned.

Exemplos

Exemplo #1 Using pg_pconnect()

<?php
$dbconn = pg_pconnect("dbname=mary");
//connect to a database named "mary"

$dbconn2 = pg_pconnect("host=localhost port=5432 dbname=mary");
// connect to a database named "mary" on "localhost" at port "5432"

$dbconn3 = pg_pconnect("host=sheep port=5432 dbname=mary user=lamb password=foo");
//connect to a database named "mary" on the host "sheep" with a username and password

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_pconnect($conn_string);
//connect to a database named "test" on the host "sheep" with a username and password
?>

Veja Também

  • pg_connect() - Open a PostgreSQL connection
  • Persistent Database Connections


Ping database connection

  • « pg_pconnect
  • pg_port »
  • PHP Manual
  • Funções PostgreSQL
  • Ping database connection

pg_ping

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_ping — Ping database connection

Descrição

pg_ping(?PgSql\Connection $connection = null): bool

pg_ping() pings a database connection and tries to reconnect it if it is broken.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_ping() example

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}

if (!pg_ping($conn))
die("Connection is broken\n");
?>

Veja Também

  • pg_connection_status() - Get connection status
  • pg_connection_reset() - Reset connection (reconnect)


Return the port number associated with the connection

  • « pg_ping
  • pg_prepare »
  • PHP Manual
  • Funções PostgreSQL
  • Return the port number associated with the connection

pg_port

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_port — Return the port number associated with the connection

Descrição

pg_port(?PgSql\Connection $connection = null): string

pg_port() returns the port number that the given PostgreSQL connection instance is connected to.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

A string containing the port number of the database server the connection is to, or empty string on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_port() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
print "Successfully connected to port: " . pg_port($pgsql_conn) . "<br/>\n";
} else {
print pg_last_error($pgsql_conn);
exit;
}
?>


Submits a request to create a prepared statement with the given parameters, and waits for completion

  • « pg_port
  • pg_put_line »
  • PHP Manual
  • Funções PostgreSQL
  • Submits a request to create a prepared statement with the given parameters, and waits for completion

pg_prepare

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_prepare — Submits a request to create a prepared statement with the given parameters, and waits for completion

Descrição

pg_prepare(PgSql\Connection $connection = ?, string $stmtname, string $query): PgSql\Result|false

pg_prepare() creates a prepared statement for later execution with pg_execute() or pg_send_execute(). This feature allows commands that will be used repeatedly to be parsed and planned just once, rather than each time they are executed. pg_prepare() is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.

The function creates a prepared statement named stmtname from the query string, which must contain a single SQL command. stmtname may be "" to create an unnamed statement, in which case any pre-existing unnamed statement is automatically replaced; otherwise it is an error if the statement name is already defined in the current session. If any parameters are used, they are referred to in the query as $1, $2, etc.

Prepared statements for use with pg_prepare() can also be created by executing SQL PREPARE statements. (But pg_prepare() is more flexible since it does not require parameter types to be pre-specified.) Also, although there is no PHP function for deleting a prepared statement, the SQL DEALLOCATE statement can be used for that purpose.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

stmtname

The name to give the prepared statement. Must be unique per-connection. If "" is specified, then an unnamed statement is created, overwriting any previously defined unnamed statement.

query

The parameterized SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

Valor Retornado

An PgSql\Result instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Agora retorna uma instância de PgSql\Result; anteriormente, um resource era retornado.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Using pg_prepare()

<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary");

// Prepare a query for execution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Execute the prepared query. Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Execute the same prepared query, this time with a different parameter
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

Veja Também

  • pg_execute() - Sends a request to execute a prepared statement with given parameters, and waits for the result
  • pg_send_execute() - Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)


Send a NULL-terminated string to PostgreSQL backend

  • « pg_prepare
  • pg_query_params »
  • PHP Manual
  • Funções PostgreSQL
  • Send a NULL-terminated string to PostgreSQL backend

pg_put_line

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_put_line — Send a NULL-terminated string to PostgreSQL backend

Descrição

pg_put_line(PgSql\Connection $connection = ?, string $data): bool

pg_put_line() sends a NULL-terminated string to the PostgreSQL backend server. This is needed in conjunction with PostgreSQL's COPY FROM command.

COPY is a high-speed data loading interface supported by PostgreSQL. Data is passed in without being parsed, and in a single transaction.

An alternative to using raw pg_put_line() commands is to use pg_copy_from(). This is a far simpler interface.

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, before issuing pg_end_copy().

Aviso

Use of the pg_put_line() causes most large object operations, including pg_lo_read() and pg_lo_tell(), to subsequently fail. You can use pg_copy_from() and pg_copy_to() instead.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

data

A line of text to be sent directly to the PostgreSQL backend. A NULL terminator is added automatically.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_put_line() example

<?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);
?>

Veja Também

  • pg_end_copy() - Sync with PostgreSQL backend


Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text

  • « pg_put_line
  • pg_query »
  • PHP Manual
  • Funções PostgreSQL
  • Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text

pg_query_params

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_query_params — Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text

Descrição

pg_query_params(PgSql\Connection $connection = ?, string $query, array $params): PgSql\Result|false

Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text.

pg_query_params() is like pg_query(), but offers additional functionality: parameter values can be specified separately from the command string proper. pg_query_params() is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.

If parameters are used, they are referred to in the query string as $1, $2, etc. The same parameter may appear more than once in the query; the same value will be used in that case. params specifies the actual values of the parameters. A null value in this array means the corresponding parameter is SQL NULL.

The primary advantage of pg_query_params() over pg_query() is that parameter values may be separated from the query string, thus avoiding the need for tedious and error-prone quoting and escaping. Unlike pg_query(), pg_query_params() allows at most one SQL command in the given string. (There can be semicolons in it, but not more than one nonempty command.)

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

query

The parameterized SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

User-supplied values should always be passed as parameters, not interpolated into the query string, where they form possible SQL injection attack vectors and introduce bugs when handling data containing quotes. If for some reason you cannot use a parameter, ensure that interpolated values are properly escaped.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

Values intended for bytea fields are not supported as parameters. Use pg_escape_bytea() instead, or use the large object functions.

Valor Retornado

An PgSql\Result instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Agora retorna uma instância de PgSql\Result; anteriormente, um resource era retornado.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Using pg_query_params()

<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary");

// Find all shops named Joe's Widgets. Note that it is not necessary to
// escape "Joe's Widgets"
$result = pg_query_params($dbconn, 'SELECT * FROM shops WHERE name = $1', array("Joe's Widgets"));

// Compare against just using pg_query
$str = pg_escape_string("Joe's Widgets");
$result = pg_query($dbconn, "SELECT * FROM shops WHERE name = '{$str}'");

?>

Veja Também

  • pg_query() - Execute a query


Execute a query

  • « pg_query_params
  • pg_result_error_field »
  • PHP Manual
  • Funções PostgreSQL
  • Execute a query

pg_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_query — Execute a query

Descrição

pg_query(PgSql\Connection $connection = ?, string $query): PgSql\Result|false

pg_query() executes the query on the specified database connection. pg_query_params() should be preferred in most cases.

If an error occurs, and false is returned, details of the error can be retrieved using the pg_last_error() function if the connection is valid.

Nota: Although connection can be omitted, it is not recommended, since it can be the cause of hard to find bugs in scripts.

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.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

query

The SQL statement or statements to be executed. When multiple statements are passed to the function, they are automatically executed as one transaction, unless there are explicit BEGIN/COMMIT commands included in the query string. However, using multiple transactions in one function call is not recommended.

Aviso

String interpolation of user-supplied data is extremely dangerous and is likely to lead to SQL injection vulnerabilities. In most cases pg_query_params() should be preferred, passing user-supplied values as parameters rather than substituting them into the query string.

Any user-supplied data substituted directly into a query string should be properly escaped.

Valor Retornado

An PgSql\Result instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Agora retorna uma instância de PgSql\Result; anteriormente, um resource era retornado.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_query() example

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "An error occurred.\n";
exit;
}

while ($row = pg_fetch_row($result)) {
echo "Author: $row[0] E-mail: $row[1]";
echo "<br />\n";
}

?>

Exemplo #2 Using pg_query() with multiple statements

<?php

$conn = pg_pconnect("dbname=publisher");

// these statements will be executed as one transaction

$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";

pg_query($conn, $query);

?>

Veja Também

  • pg_connect() - Open a PostgreSQL connection
  • pg_pconnect() - Open a persistent PostgreSQL connection
  • pg_fetch_array() - Fetch a row as an array
  • pg_fetch_object() - Fetch a row as an object
  • pg_num_rows() - Returns the number of rows in a result
  • pg_affected_rows() - Returns number of affected records (tuples)


Returns an individual field of an error report

  • « pg_query
  • pg_result_error »
  • PHP Manual
  • Funções PostgreSQL
  • Returns an individual field of an error report

pg_result_error_field

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_result_error_field — Returns an individual field of an error report

Descrição

pg_result_error_field(PgSql\Result $result, int $field_code): string|false|null

pg_result_error_field() returns one of the detailed error message fields associated with result instance. It is only available against a PostgreSQL 7.4 or above server. The error field is specified by the field_code.

Because pg_query() and pg_query_params() return false if the query fails, you must use pg_send_query() and pg_get_result() to get the result handle.

If you need to get additional error information from failed pg_query() queries, use pg_set_error_verbosity() and pg_last_error() and then parse the result.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

field_code

Possible field_code values are: PGSQL_DIAG_SEVERITY, PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY, PGSQL_DIAG_MESSAGE_DETAIL, PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION, PGSQL_DIAG_INTERNAL_POSITION (PostgreSQL 8.0+ only), PGSQL_DIAG_INTERNAL_QUERY (PostgreSQL 8.0+ only), PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, PGSQL_DIAG_SOURCE_LINE or PGSQL_DIAG_SOURCE_FUNCTION.

Valor Retornado

A string containing the contents of the error field, null if the field does not exist or false on failure.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_result_error_field() example

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

if (!pg_connection_busy($dbconn)) {
pg_send_query($dbconn, "select * from doesnotexist;");
}

$res1 = pg_get_result($dbconn);
echo pg_result_error_field($res1, PGSQL_DIAG_SQLSTATE);
?>

Veja Também

  • pg_result_error() - Get error message associated with result


Get error message associated with result

  • « pg_result_error_field
  • pg_result_seek »
  • PHP Manual
  • Funções PostgreSQL
  • Get error message associated with result

pg_result_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_result_error — Get error message associated with result

Descrição

pg_result_error(PgSql\Result $result): string|false

pg_result_error() returns any error message associated with the result instance. Therefore, the user has a better chance of getting the correct error message than with pg_last_error().

The function pg_result_error_field() can give much greater detail on result errors than pg_result_error().

Because pg_query() returns false if the query fails, you must use pg_send_query() and pg_get_result() to get the result handle.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

Valor Retornado

Returns a string. Returns empty string if there is no error. If there is an error associated with the result parameter, returns false.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_result_error() example

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

if (!pg_connection_busy($dbconn)) {
pg_send_query($dbconn, "select * from doesnotexist;");
}

$res1 = pg_get_result($dbconn);
echo pg_result_error($res1);
?>

Veja Também

  • pg_result_error_field() - Returns an individual field of an error report
  • pg_query() - Execute a query
  • pg_send_query() - Sends asynchronous query
  • pg_get_result() - Get asynchronous query result
  • pg_last_error() - Get the last error message string of a connection
  • pg_last_notice() - Returns the last notice message from PostgreSQL server


Set internal row offset in result instance

  • « pg_result_error
  • pg_result_status »
  • PHP Manual
  • Funções PostgreSQL
  • Set internal row offset in result instance

pg_result_seek

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_result_seek — Set internal row offset in result instance

Descrição

pg_result_seek(PgSql\Result $result, int $row): bool

pg_result_seek() sets the internal row offset in the result instance.

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

row

Row to move the internal offset to in the PgSql\Result instance. Rows are numbered starting from zero.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_result_seek() example

<?php

// Connect to the database
$conn = pg_pconnect("dbname=publisher");

// Execute a query
$result = pg_query($conn, "SELECT author, email FROM authors");

// Seek to the 3rd row (assuming there are 3 rows)
pg_result_seek($result, 2);

// Fetch the 3rd row
$row = pg_fetch_row($result);

?>

Veja Também

  • pg_fetch_row() - Get a row as an enumerated array
  • pg_fetch_assoc() - Fetch a row as an associative array
  • pg_fetch_array() - Fetch a row as an array
  • pg_fetch_object() - Fetch a row as an object
  • pg_fetch_result() - Returns values from a result instance


Get status of query result

  • « pg_result_seek
  • pg_select »
  • PHP Manual
  • Funções PostgreSQL
  • Get status of query result

pg_result_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_result_status — Get status of query result

Descrição

pg_result_status(PgSql\Result $result, int $mode = PGSQL_STATUS_LONG): string|int

pg_result_status() returns the status of the PgSql\Result instance, or the PostgreSQL command completion tag associated with the result

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

mode

Either PGSQL_STATUS_LONG to return the numeric status of the result, or PGSQL_STATUS_STRING to return the command tag of the result. If not specified, PGSQL_STATUS_LONG is the default.

Valor Retornado

Possible return values are PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR and PGSQL_FATAL_ERROR if PGSQL_STATUS_LONG is specified. Otherwise, a string containing the PostgreSQL command tag is returned.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_result_status() example

<?php

// Connect to the database
$conn = pg_pconnect("dbname=publisher");

// Execute a COPY
$result = pg_query($conn, "COPY authors FROM STDIN;");

// Get the result status
$status = pg_result_status($result);

// Determine status
if ($status == PGSQL_COPY_IN)
echo "Copy began.";
else
echo "Copy failed.";

?>

O exemplo acima produzirá:

Copy began.

Veja Também

  • pg_connection_status() - Get connection status


Select records

  • « pg_result_status
  • pg_send_execute »
  • PHP Manual
  • Funções PostgreSQL
  • Select records

pg_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_select — Select records

Descrição

pg_select(
PgSql\Connection $connection,
string $table_name,
array $conditions,
int $flags = PGSQL_DML_EXEC,
int $mode = PGSQL_ASSOC
): array|string|false

pg_select() selects records specified by conditions which has field=>value. For a successful query, it returns an array containing all records and fields that match the condition specified by conditions.

If flags is set, pg_convert() is applied to conditions with the specified flags.

If mode is set, the return value will be in the form of an array with PGSQL_NUM, an associative array with PGSQL_ASSOC (default) or both with PGSQL_BOTH.

By default pg_select() passes raw values. Values must be escaped or PGSQL_DML_ESCAPE option must be specified. PGSQL_DML_ESCAPE quotes and escapes parameters/identifiers. Therefore, table/column names became case sensitive.

Note that neither escape nor prepared query can protect LIKE query, JSON, Array, Regex, etc. These parameters should be handled according to their contexts. i.e. Escape/validate values.

Parâmetros

connection

Uma instância de PgSql\Connection.

table_name

Name of the table from which to select rows.

conditions

An array whose keys are field names in the table table_name, and whose values are the conditions that a row must meet to be retrieved.

flags

Any number of PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC or PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the flags then the query string is returned. When PGSQL_DML_NO_CONV or PGSQL_DML_ESCAPE is set, it does not call pg_convert() internally.

mode

Any number of PGSQL_ASSOC, PGSQL_NUM or PGSQL_BOTH If PGSQL_ASSOC is set the return value will be an associative array, with PGSQL_NUM the return value will be an array, and with PGSQL_BOTH the return value will be both an associative and numerically indexed array.

Valor Retornado

Returns string if PGSQL_DML_STRING is passed via flags, otherwise it returns an array on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
7.1.0 | The mode parameter was added.

Exemplos

Exemplo #1 pg_select() example

<?php
$db = pg_connect('dbname=foo');
// This is safe somewhat, since all values are escaped.
// However PostgreSQL supports JSON/Array. These are not
// safe by neither escape nor prepared query.
$rec = pg_select($db, 'post_log', $_POST, PG_DML_ESCAPE);
if ($rec) {
echo "Records selected\n";
var_dump($rec);
} else {
echo "User must have sent wrong inputs\n";
}
?>

Veja Também

  • pg_convert() - Convert associative array values into forms suitable for SQL statements


Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)

  • « pg_select
  • pg_send_prepare »
  • PHP Manual
  • Funções PostgreSQL
  • Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)

pg_send_execute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_send_execute — Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)

Descrição

pg_send_execute(PgSql\Connection $connection, string $statement_name, array $params): int|bool

Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).

This is similar to pg_send_query_params(), but the command to be executed is specified by naming a previously-prepared statement, instead of giving a query string. The function's parameters are handled identically to pg_execute(). Like pg_execute(), it will not work on pre-7.4 versions of PostgreSQL.

Parâmetros

connection

Uma instância de PgSql\Connection.

statement_name

The name of the prepared statement to execute. If "" is specified, then the unnamed statement is executed. The name must have been previously prepared using pg_prepare(), pg_send_prepare() or a PREPARE SQL command.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

Valor Retornado

Returns true on success, false or 0 on failure. Use pg_get_result() to determine the query result.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Using pg_send_execute()

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

// Prepare a query for execution
if (!pg_connection_busy($dbconn)) {
pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
$res1 = pg_get_result($dbconn);
}

// Execute the prepared query. Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
if (!pg_connection_busy($dbconn)) {
pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
$res2 = pg_get_result($dbconn);
}

// Execute the same prepared query, this time with a different parameter
if (!pg_connection_busy($dbconn)) {
pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
$res3 = pg_get_result($dbconn);
}

?>

Veja Também

  • pg_prepare() - Submits a request to create a prepared statement with the given parameters, and waits for completion
  • pg_send_prepare() - Sends a request to create a prepared statement with the given parameters, without waiting for completion
  • pg_execute() - Sends a request to execute a prepared statement with given parameters, and waits for the result


Sends a request to create a prepared statement with the given parameters, without waiting for completion

  • « pg_send_execute
  • pg_send_query_params »
  • PHP Manual
  • Funções PostgreSQL
  • Sends a request to create a prepared statement with the given parameters, without waiting for completion

pg_send_prepare

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_send_prepare — Sends a request to create a prepared statement with the given parameters, without waiting for completion

Descrição

pg_send_prepare(PgSql\Connection $connection, string $statement_name, string $query): int|bool

Sends a request to create a prepared statement with the given parameters, without waiting for completion.

This is an asynchronous version of pg_prepare(): it returns true if it was able to dispatch the request, and false if not. After a successful call, call pg_get_result() to determine whether the server successfully created the prepared statement. The function's parameters are handled identically to pg_prepare(). Like pg_prepare(), it will not work on pre-7.4 versions of PostgreSQL.

Parâmetros

connection

Uma instância de PgSql\Connection.

statement_name

The name to give the prepared statement. Must be unique per-connection. If "" is specified, then an unnamed statement is created, overwriting any previously defined unnamed statement.

query

The parameterized SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

Valor Retornado

Returns true on success, false or 0 on failure. Use pg_get_result() to determine the query result.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Using pg_send_prepare()

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

// Prepare a query for execution
if (!pg_connection_busy($dbconn)) {
pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
$res1 = pg_get_result($dbconn);
}

// Execute the prepared query. Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
if (!pg_connection_busy($dbconn)) {
pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
$res2 = pg_get_result($dbconn);
}

// Execute the same prepared query, this time with a different parameter
if (!pg_connection_busy($dbconn)) {
pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
$res3 = pg_get_result($dbconn);
}

?>

Veja Também

  • pg_connect() - Open a PostgreSQL connection
  • pg_pconnect() - Open a persistent PostgreSQL connection
  • pg_execute() - Sends a request to execute a prepared statement with given parameters, and waits for the result
  • pg_send_execute() - Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)
  • pg_send_query_params() - Submits a command and separate parameters to the server without waiting for the result(s)


Submits a command and separate parameters to the server without waiting for the result(s)

  • « pg_send_prepare
  • pg_send_query »
  • PHP Manual
  • Funções PostgreSQL
  • Submits a command and separate parameters to the server without waiting for the result(s)

pg_send_query_params

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_send_query_params — Submits a command and separate parameters to the server without waiting for the result(s)

Descrição

pg_send_query_params(PgSql\Connection $connection, string $query, array $params): int|bool

Submits a command and separate parameters to the server without waiting for the result(s).

This is equivalent to pg_send_query() except that query parameters can be specified separately from the query string. The function's parameters are handled identically to pg_query_params(). Like pg_query_params(), it will not work on pre-7.4 PostgreSQL connections, and it allows only one command in the query string.

Parâmetros

connection

Uma instância de PgSql\Connection.

query

The parameterized SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

Valor Retornado

Returns true on success, false or 0 on failure. Use pg_get_result() to determine the query result.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Using pg_send_query_params()

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

// Using parameters. Note that it is not necessary to quote or escape
// the parameter.
pg_send_query_params($dbconn, 'select count(*) from authors where city = $1', array('Perth'));

// Compare against basic pg_send_query usage
$str = pg_escape_string('Perth');
pg_send_query($dbconn, "select count(*) from authors where city = '{$str}'");
?>

Veja Também

  • pg_send_query() - Sends asynchronous query


Sends asynchronous query

  • « pg_send_query_params
  • pg_set_client_encoding »
  • PHP Manual
  • Funções PostgreSQL
  • Sends asynchronous query

pg_send_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_send_query — Sends asynchronous query

Descrição

pg_send_query(PgSql\Connection $connection, string $query): int|bool

pg_send_query() sends a query or queries asynchronously to the connection. Unlike pg_query(), it can send multiple queries at once to PostgreSQL and get the results one by one using pg_get_result().

Script execution is not blocked while the queries are executing. Use pg_connection_busy() to check if the connection is busy (i.e. the query is executing). Queries may be cancelled using pg_cancel_query().

Although the user can send multiple queries at once, multiple queries cannot be sent over a busy connection. If a query is sent while the connection is busy, it waits until the last query is finished and discards all its results.

Parâmetros

connection

Uma instância de PgSql\Connection.

query

The SQL statement or statements to be executed.

Data inside the query should be properly escaped.

Valor Retornado

Returns true on success, false or 0 on failure. Use pg_get_result() to determine the query result.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_send_query() example

<?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";
?>

O exemplo acima produzirá:

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

Veja Também

  • pg_query() - Execute a query
  • pg_cancel_query() - Cancel an asynchronous query
  • pg_get_result() - Get asynchronous query result
  • pg_connection_busy() - Get connection is busy or not


Set the client encoding

  • « pg_send_query
  • pg_set_error_context_visibility »
  • PHP Manual
  • Funções PostgreSQL
  • Set the client encoding

pg_set_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_set_client_encoding — Set the client encoding

Descrição

pg_set_client_encoding(PgSql\Connection $connection = ?, string $encoding): int

pg_set_client_encoding() sets the client encoding and returns 0 if success or -1 if error.

PostgreSQL will automatically convert data in the backend database encoding into the frontend encoding.

Nota:

The function used to be called pg_setclientencoding().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

encoding

The required client encoding. One of SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5 or WIN1250.

The exact list of available encodings depends on your PostgreSQL version, so check your PostgreSQL manual for a more specific list.

Valor Retornado

Returns 0 on success or -1 on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_set_client_encoding() example

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}

// Set the client encoding to UNICODE. Data will be automatically
// converted from the backend encoding to the frontend.
pg_set_client_encoding($conn, "UNICODE");

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "An error occurred.\n";
exit;
}

// Write out UTF-8 data
while ($row = pg_fetch_row($result)) {
echo "Author: $row[0] E-mail: $row[1]";
echo "<br />\n";
}

?>

Veja Também

  • pg_client_encoding() - Gets the client encoding


Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error

  • « pg_set_client_encoding
  • pg_set_error_verbosity »
  • PHP Manual
  • Funções PostgreSQL
  • Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error

pg_set_error_context_visibility

(PHP 8 >= 8.3.0)

pg_set_error_context_visibility — Determines the visibility of the context's error messages returned by pg_last_error() and pg_result_error()

Descrição

pg_set_error_context_visibility(PgSql\Connection $connection, int $visibility): int

Determines the visibility of the context's error messages returned by pg_last_error() and pg_result_error()

Parâmetros

connection

Uma instância de PgSql\Connection.

visibility

The required visibility: PGSQL_SHOW_CONTEXT_NEVER, PGSQL_SHOW_CONTEXT_ERRORS or PGSQL_SHOW_CONTEXT_ALWAYS.

Valor Retornado

The previous visibility level: PGSQL_SHOW_CONTEXT_NEVER, PGSQL_SHOW_CONTEXT_ERRORS or PGSQL_SHOW_CONTEXT_ALWAYS.

Exemplos

Exemplo #1 pg_set_error_context_visibility() example

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

if (!pg_connection_busy($dbconn)) {
pg_send_query($dbconn, "select * from doesnotexist;");
}

pg_set_error_context_visibility($dbconn, PGSQL_SHOW_CONTEXT_ALWAYS);
$res1 = pg_get_result($dbconn);
echo pg_result_error($res1);
?>

Veja Também

  • pg_last_error() - Get the last error message string of a connection
  • pg_result_error() - Get error message associated with result


Determines the verbosity of messages returned by pg_last_error and pg_result_error

  • « pg_set_error_context_visibility
  • pg_socket »
  • PHP Manual
  • Funções PostgreSQL
  • Determines the verbosity of messages returned by pg_last_error and pg_result_error

pg_set_error_verbosity

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_set_error_verbosity — Determines the verbosity of messages returned by pg_last_error() and pg_result_error()

Descrição

pg_set_error_verbosity(PgSql\Connection $connection = ?, int $verbosity): int

Determines the verbosity of messages returned by pg_last_error() and pg_result_error().

pg_set_error_verbosity() sets the verbosity mode, returning the connection's previous setting. In PGSQL_ERRORS_TERSE mode, returned messages include severity, primary text, and position only; this will normally fit on a single line. The default mode (PGSQL_ERRORS_DEFAULT) produces messages that include the above plus any detail, hint, or context fields (these may span multiple lines). The PGSQL_ERRORS_VERBOSE mode includes all available fields. Changing the verbosity does not affect the messages available from already-existing result objects, only subsequently-created ones.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection não for especificado, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

verbosity

The required verbosity: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT or PGSQL_ERRORS_VERBOSE.

Valor Retornado

The previous verbosity level: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT or PGSQL_ERRORS_VERBOSE.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_set_error_verbosity() example

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

if (!pg_connection_busy($dbconn)) {
pg_send_query($dbconn, "select * from doesnotexist;");
}

pg_set_error_verbosity($dbconn, PGSQL_ERRORS_VERBOSE);
$res1 = pg_get_result($dbconn);
echo pg_result_error($res1);
?>

Veja Também

  • pg_last_error() - Get the last error message string of a connection
  • pg_result_error() - Get error message associated with result


Get a read only handle to the socket underlying a PostgreSQL connection

  • « pg_set_error_verbosity
  • pg_trace »
  • PHP Manual
  • Funções PostgreSQL
  • Get a read only handle to the socket underlying a PostgreSQL connection

pg_socket

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection

Descrição

pg_socket(PgSql\Connection $connection): resource|false

pg_socket() returns a read only resource corresponding to the socket underlying the given PostgreSQL connection.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

A socket resource on success ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.


Enable tracing a PostgreSQL connection

  • « pg_socket
  • pg_transaction_status »
  • PHP Manual
  • Funções PostgreSQL
  • Enable tracing a PostgreSQL connection

pg_trace

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

pg_trace — Enable tracing a PostgreSQL connection

Descrição

pg_trace(
string $filename,
string $mode = "w",
?PgSql\Connection $connection = null,
int $trace_mode = 0
): bool

pg_trace() enables tracing of the PostgreSQL frontend/backend communication to a file. 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 queries actually were sent to the PostgreSQL server. For more information, refer to the » PostgreSQL Documentation.

Parâmetros

filename

The full path and file name of the file in which to write the trace log. Same as in fopen().

mode

An optional file access mode, same as for fopen().

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

trace_mode

An optional trace mode with the following constants PGSQL_TRACE_SUPPRESS_TIMESTAMPS and PGSQL_TRACE_REGRESS_MODE

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.0 | trace_mode has been added.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_trace() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
pg_query("SELECT 1");
pg_untrace($pgsql_conn);
// Now /tmp/trace.log will contain backend communication
} else {
print pg_last_error($pgsql_conn);
exit;
}
?>

Veja Também

  • fopen() - Abre um arquivo ou URL
  • pg_untrace() - Disable tracing of a PostgreSQL connection


Returns the current in-transaction status of the server

  • « pg_trace
  • pg_tty »
  • PHP Manual
  • Funções PostgreSQL
  • Returns the current in-transaction status of the server

pg_transaction_status

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_transaction_status — Returns the current in-transaction status of the server

Descrição

pg_transaction_status(PgSql\Connection $connection): int

Returns the current in-transaction status of the server.

Cuidado

pg_transaction_status() will give incorrect results when using a PostgreSQL 7.3 server that has the parameter autocommit set to off. The server-side autocommit feature has been deprecated and does not exist in later server versions.

Parâmetros

connection

Uma instância de PgSql\Connection.

Valor Retornado

The status can be PGSQL_TRANSACTION_IDLE (currently idle), PGSQL_TRANSACTION_ACTIVE (a command is in progress), PGSQL_TRANSACTION_INTRANS (idle, in a valid transaction block), or PGSQL_TRANSACTION_INERROR (idle, in a failed transaction block). PGSQL_TRANSACTION_UNKNOWN is reported if the connection is bad. PGSQL_TRANSACTION_ACTIVE is reported only when a query has been sent to the server and not yet completed.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_transaction_status() example

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");
$stat = pg_transaction_status($dbconn);
if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
echo 'Connection is bad';
} else if ($stat === PGSQL_TRANSACTION_IDLE) {
echo 'Connection is currently idle';
} else {
echo 'Connection is in a transaction state';
}
?>


Return the TTY name associated with the connection

  • « pg_transaction_status
  • pg_unescape_bytea »
  • PHP Manual
  • Funções PostgreSQL
  • Return the TTY name associated with the connection

pg_tty

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_tty — Return the TTY name associated with the connection

Descrição

pg_tty(?PgSql\Connection $connection = null): string

pg_tty() returns the TTY name that server side debugging output is sent to on the given PostgreSQL connection instance.

Nota:

pg_tty() is obsolete, since the server no longer pays attention to the TTY setting, but the function remains for backwards compatibility.

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

A string containing the debug TTY of the connection.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_tty() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
print "Server debug TTY is: " . pg_tty($pgsql_conn) . "<br/>\n";
} else {
print pg_last_error($pgsql_conn);
exit;
}
?>


Unescape binary for bytea type

  • « pg_tty
  • pg_untrace »
  • PHP Manual
  • Funções PostgreSQL
  • Unescape binary for bytea type

pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_unescape_bytea — Unescape binary for bytea type

Descrição

pg_unescape_bytea(string $string): string

pg_unescape_bytea() unescapes PostgreSQL bytea data values. It returns the unescaped string, possibly containing binary data.

Nota:

When you SELECT a bytea type, PostgreSQL returns octal byte values prefixed with '\' (e.g. \032). Users are supposed to convert back to binary format manually.

This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea values must be cast 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 a cast. The exception is when the client and backend character encoding does not match, and there may be multi-byte stream error. User must then cast to bytea to avoid this error.

Parâmetros

string

A string containing PostgreSQL bytea data to be converted into a PHP binary string.

Valor Retornado

A string containing the unescaped data.

Exemplos

Exemplo #1 pg_unescape_bytea() example

<?php
// Connect to the database
$dbconn = pg_connect('dbname=foo');

// Get the bytea data
$res = pg_query("SELECT data FROM gallery WHERE name='Pine trees'");
$raw = pg_fetch_result($res, 'data');

// Convert to binary and send to the browser
header('Content-type: image/jpeg');
echo pg_unescape_bytea($raw);
?>

Veja Também

  • pg_escape_bytea() - Escape a string for insertion into a bytea field
  • pg_escape_string() - Escape a string for query


Disable tracing of a PostgreSQL connection

  • « pg_unescape_bytea
  • pg_update »
  • PHP Manual
  • Funções PostgreSQL
  • Disable tracing of a PostgreSQL connection

pg_untrace

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

pg_untrace — Disable tracing of a PostgreSQL connection

Descrição

pg_untrace(?PgSql\Connection $connection = null): true

Stop tracing started by pg_trace().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_untrace() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
pg_query("SELECT 1");
pg_untrace($pgsql_conn);
// Now tracing of backend communication is disabled
} else {
print pg_last_error($pgsql_conn);
exit;
}
?>

Veja Também

  • pg_trace() - Enable tracing a PostgreSQL connection


Update table

  • « pg_untrace
  • pg_version »
  • PHP Manual
  • Funções PostgreSQL
  • Update table

pg_update

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_update — Update table

Descrição

pg_update(
PgSql\Connection $connection,
string $table_name,
array $values,
array $conditions,
int $flags = PGSQL_DML_EXEC
): string|bool

pg_update() updates records that matches conditions with values.

If flags is specified, pg_convert() is applied to values with the specified flags.

By default pg_update() passes raw values. Values must be escaped or the PGSQL_DML_ESCAPE flag must be specified in flags. PGSQL_DML_ESCAPE quotes and escapes parameters/identifiers. Therefore, table/column names become case sensitive.

Note that neither escape nor prepared query can protect LIKE query, JSON, Array, Regex, etc. These parameters should be handled according to their contexts. i.e. Escape/validate values.

Parâmetros

connection

Uma instância de PgSql\Connection.

table_name

Name of the table into which to update rows.

values

An array whose keys are field names in the table table_name, and whose values are what matched rows are to be updated to.

conditions

An array whose keys are field names in the table table_name, and whose values are the conditions that a row must meet to be updated.

flags

Any number of PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC or PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the flags then query string is returned. When PGSQL_DML_NO_CONV or PGSQL_DML_ESCAPE is set, it does not call pg_convert() internally.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Returns string if PGSQL_DML_STRING is passed via flags.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pg_update() example

<?php
$db = pg_connect('dbname=foo');
$data = array('field1'=>'AA', 'field2'=>'BB');
// This is safe somewhat, since all values are escaped.
// However PostgreSQL supports JSON/Array. These are not
// safe by neither escape nor prepared query.
$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";
}
?>

Veja Também

  • pg_convert() - Convert associative array values into forms suitable for SQL statements


Returns an array with client, protocol and server version (when available)

  • « pg_update
  • PgSql\Connection »
  • PHP Manual
  • Funções PostgreSQL
  • Returns an array with client, protocol and server version (when available)

pg_version

(PHP 5, PHP 7, PHP 8)

pg_version — Returns an array with client, protocol and server version (when available)

Descrição

pg_version(?PgSql\Connection $connection = null): array

pg_version() returns an array with the client, protocol and server version. Protocol and server versions are only available if PHP was compiled with PostgreSQL 7.4 or later.

For more detailed server information, use pg_parameter_status().

Parâmetros

connection

Uma instância de PgSql\Connection. Quando o parâmetro connection for null, a conexão padrão será usada. A conexão padrão é a última conexão feita por pg_connect() ou pg_pconnect().

Aviso

A partir do PHP 8.1.0, usar a conexão padrão tornou-se defasado.

Valor Retornado

Returns an array with client, protocol and server keys and values (if available).

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro connection agora espera uma instância de PgSql\Connection; anteriormente, um resource era esperado.
8.0.0 | connection is now nullable.

Exemplos

Exemplo #1 pg_version() example

<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=mary")
or die("Could not connect");

$v = pg_version($dbconn);

echo $v['client'];
?>

O exemplo acima produzirá:

7.4

Veja Também

  • pg_parameter_status() - Looks up a current parameter setting of the server


The PgSql\Connection class

(PHP 8 >= 8.1.0)

Introdução

A fully opaque class which replaces a pgsql link resource as of PHP 8.1.0.

Resumo da classe

final class PgSql\Connection {
}


The PgSql\Result class

(PHP 8 >= 8.1.0)

Introdução

A fully opaque class which replaces a pgsql result resource as of PHP 8.1.0.

Resumo da classe

final class PgSql\Result {
}


The PgSql\Lob class

(PHP 8 >= 8.1.0)

Introdução

A fully opaque class which replaces a pgsql large object resource as of PHP 8.1.0.

Resumo da classe

final class PgSql\Lob {
}


SQLite3

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • SQLite3 — A classe SQLite3
    • SQLite3::backup — Copia um banco de dados para outro banco de dados
    • SQLite3::busyTimeout — Define o manipulador de conexão ocupada
    • SQLite3::changes — Retorna o número de linhas do banco de dados que foram alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente
    • SQLite3::close — Fecha a conexão com o banco de dados
    • SQLite3::__construct — Instancia um objeto SQLite3 e abre um banco de dados SQLite 3
    • SQLite3::createAggregate — Registra uma função PHP para uso como uma função de agregação SQL
    • SQLite3::createCollation — Registra uma função PHP para uso como uma função de comparação de SQL
    • SQLite3::createFunction — Registra uma função PHP para uso como uma função escalar SQL
    • SQLite3::enableExceptions — Habilita o lançamento de exceções
    • SQLite3::escapeString — Retorna uma string que foi devidamente escapada
    • SQLite3::exec — Executa uma consulta sem resultado em um determinado banco de dados
    • SQLite3::lastErrorCode — Retorna o código de resultado numérico da última solicitação SQLite que falhou
    • SQLite3::lastErrorMsg — Retorna o texto em inglês descrevendo a requisição SQLite mais recente que falhou
    • SQLite3::lastInsertRowID — Retorna o ID da linha mais recentemente INSERIDA no banco de dados
    • SQLite3::loadExtension — Tenta carregar uma biblioteca de extensão do SQLite
    • SQLite3::open — Abre um banco de dados SQLite
    • SQLite3::openBlob — Abre um recurso de fluxo para ler um BLOB
    • SQLite3::prepare — Prepara uma declaração SQL para execução
    • SQLite3::query — Executa uma consulta SQL
    • SQLite3::querySingle — Executa uma consulta e retorna um único resultado
    • SQLite3::setAuthorizer — Configura um retorno de chamada a ser usado como um autorizador para limitar o que uma declaração pode fazer
    • SQLite3::version — Retorna a versão da biblioteca SQLite3 como uma constante de string e como um número
  • SQLite3Exception — A classe SQLite3Exception
  • SQLite3Stmt — A classe SQLite3Stmt
    • SQLite3Stmt::bindParam — Vincula um parâmetro a uma variável de instrução
    • SQLite3Stmt::bindValue — Vincula o valor de um parâmetro a uma variável de instrução
    • SQLite3Stmt::clear — Limpa todos os parâmetros vinculados atuais
    • SQLite3Stmt::close — Fecha a declaração preparada
    • SQLite3Stmt::__construct — Constrói um objeto SQLite3Stmt
    • SQLite3Stmt::execute — Executa uma declaração preparada e retorna um objeto de conjunto de resultados
    • SQLite3Stmt::getSQL — Obtém o SQL da instrução
    • SQLite3Stmt::paramCount — Retorna o número de parâmetros dentro da declaração preparada
    • SQLite3Stmt::readOnly — Retorna se uma declaração é definitivamente somente leitura
    • SQLite3Stmt::reset — Reseta a declaração preparada
  • SQLite3Result — A classe SQLite3Result
    • SQLite3Result::columnName — Retorna o nome da enésima coluna
    • SQLite3Result::columnType — Retorna o tipo da enésima coluna
    • SQLite3Result::__construct — Constrói um SQLite3Result
    • SQLite3Result::fetchArray — Obtém uma linha de resultado como um array associativo, numericamente indexado ou ambos
    • SQLite3Result::finalize — Fecha o conjunto de resultados
    • SQLite3Result::numColumns — Retorna o número de colunas no conjunto de resultados
    • SQLite3Result::reset — Reinicia o conjunto de resultados de volta para a primeira linha


  • « SQLite3
  • Instalação/Configuração »
  • PHP Manual
  • SQLite3
  • Introdução

Introdução

Suporte para bancos de dados SQLite versão 3.


Dependências

A partir do PHP 7.4.0, é necessário o » libsqlite = 3.7.4. Anteriormente, o libsqlite incluso poderia ter sido usado.


Instalação

A extensão SQLite3 está habilitada por padrão. É possível desabilitá-la usando --without-sqlite3 durante a compilação.

Usuários do Windows devem habilitar php_sqlite3.dll para usar esta extensão. Este arquivo DLL está incluído nas distribuições do PHP para Windows.

Nota: Configuração adicional no Windows a partir do PHP 7.4.0

Para que esta extensão funcione, existem arquivos DLL que devem estar disponíveis no PATH do sistema Windows. Para saber como fazer isso, veja a FAQ intitulada "Como eu adiciono o meu diretório PHP ao PATH do Windows". Embora copiar arquivos DLL da pasta do PHP para o diretório system do Windows também funcione (porque o diretório system está, por padrão, no PATH do sistema), isso não é recomendado. Esta extensão requer que os seguintes arquivos estejam no PATH: libsqlite3.dll.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

SQLite3 Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
sqlite3.extension_dir | "" | INI_SYSTEM |
sqlite3.defensive | 1 | INI_USER | Disponível a partir do PHP 7.2.17 e 7.3.4 para libsqlite = 3.26.0. Antes do PHP 8.2.0, essa configuração só podia ser alterada como INI_SYSTEM.

Aqui está uma breve explicação das diretivas de configuração.

sqlite3.extension_dir string

Caminho para o diretório onde as extensões carregáveis para o SQLite estão localizadas.

sqlite3.defensive bool

Quando a flag defensiva está ativada, recursos de linguagem que permitem que SQL ordinário corrompa deliberadamente o arquivo de banco de dados são desabilitados. Isso proíbe a escrita diretamente no esquema, tabelas sombra (por exemplo, tabelas de dados FTS) ou a tabela virtual sqlite_dbpage. Esta configuração do php.ini só é eficaz para libsqlite = 3.26.0.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SQLITE3_ASSOC (int)
Especifica que o método Sqlite3Result::fetchArray() deve retornar uma matriz indexada pelo nome da coluna conforme retornado no conjunto de resultados correspondente.
SQLITE3_NUM (int)
Especifica que o método Sqlite3Result::fetchArray() deve retornar uma matriz indexada pelo número da coluna conforme retornado no conjunto de resultados correspondente, começando na coluna 0.
SQLITE3_BOTH (int)
Especifica que o método Sqlite3Result::fetchArray() deve retornar uma matriz indexada tanto pelo nome quanto pelo número da coluna conforme retornado no conjunto de resultados correspondente, começando na coluna 0.
SQLITE3_INTEGER (int)
Representa a classe de armazenamento INTEGER do SQLite3.
SQLITE3_FLOAT (int)
Representa a classe de armazenamento REAL (FLOAT) do SQLite3.
SQLITE3_TEXT (int)
Representa a classe de armazenamento TEXT do SQLite3.
SQLITE3_BLOB (int)
Representa a classe de armazenamento BLOB do SQLite3.
SQLITE3_NULL (int)
Representa a classe de armazenamento NULL do SQLite3.
SQLITE3_OPEN_READONLY (int)
Especifica que o banco de dados SQLite3 deve ser aberto apenas para leitura.
SQLITE3_OPEN_READWRITE (int)
Especifica que o banco de dados SQLite3 deve ser aberto para leitura e escrita.
SQLITE3_OPEN_CREATE (int)
Especifica que o banco de dados SQLite3 deve ser criado se ainda não existir.
SQLITE3_DETERMINISTIC (int)
Especifica que uma função criada com SQLite3::createFunction() é determinística, ou seja, ela sempre retorna o mesmo resultado dado os mesmos inputs dentro de uma única instrução SQL. (Disponível a partir do PHP 7.1.4.)


A classe SQLite3

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

Uma classe que interage com bancos de dados SQLite 3.

Resumo da classe

class SQLite3 {
/* Constantes */
public const int OK;
public const int DENY;
public const int IGNORE;
public const int CREATE_INDEX;
public const int CREATE_TABLE;
public const int CREATE_TEMP_INDEX;
public const int CREATE_TEMP_TABLE;
public const int CREATE_TEMP_TRIGGER;
public const int CREATE_TEMP_VIEW;
public const int CREATE_TRIGGER;
public const int CREATE_VIEW;
public const int DELETE;
public const int DROP_INDEX;
public const int DROP_TABLE;
public const int DROP_TEMP_INDEX;
public const int DROP_TEMP_TABLE;
public const int DROP_TEMP_TRIGGER;
public const int DROP_TEMP_VIEW;
public const int DROP_TRIGGER;
public const int DROP_VIEW;
public const int INSERT;
public const int PRAGMA;
public const int READ;
public const int SELECT;
public const int TRANSACTION;
public const int UPDATE;
public const int ATTACH;
public const int DETACH;
public const int ALTER_TABLE;
public const int REINDEX;
public const int ANALYZE;
public const int CREATE_VTABLE;
public const int DROP_VTABLE;
public const int FUNCTION;
public const int SAVEPOINT;
public const int COPY;
public const int RECURSIVE;
/* Métodos */
public __construct(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = "")
public backup(SQLite3 $destination, string $sourceDatabase = "main", string $destinationDatabase = "main"): bool
public busyTimeout(int $milliseconds): bool
public changes(): int
public close(): bool
public createAggregate(
string $name,
callable $stepCallback,
callable $finalCallback,
int $argCount = -1
): bool
public createCollation(string $name, callable $callback): bool
public createFunction(
string $name,
callable $callback,
int $argCount = -1,
int $flags = 0
): bool
public enableExceptions(bool $enable = false): bool
public static escapeString(string $string): string
public exec(string $query): bool
public lastErrorCode(): int
public lastErrorMsg(): string
public lastInsertRowID(): int
public loadExtension(string $name): bool
public open(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = ""): void
public openBlob(
string $table,
string $column,
int $rowid,
string $database = "main",
int $flags = SQLITE3_OPEN_READONLY
): resource|false
public prepare(string $query): SQLite3Stmt|false
public query(string $query): SQLite3Result|false
public querySingle(string $query, bool $entireRow = false): mixed
public setAuthorizer(?callable $callback): bool
public static version(): array
}

Constantes pré-definidas

SQLite3::OK

SQLite3::DENY

SQLite3::IGNORE

SQLite3::CREATE_INDEX

SQLite3::CREATE_TABLE

SQLite3::CREATE_TEMP_INDEX

SQLite3::CREATE_TEMP_TABLE

SQLite3::CREATE_TEMP_TRIGGER

SQLite3::CREATE_TEMP_VIEW

SQLite3::CREATE_TRIGGER

SQLite3::CREATE_VIEW

SQLite3::DELETE

SQLite3::DROP_INDEX

SQLite3::DROP_TABLE

SQLite3::DROP_TEMP_INDEX

SQLite3::DROP_TEMP_TABLE

SQLite3::DROP_TEMP_TRIGGER

SQLite3::DROP_TEMP_VIEW

SQLite3::DROP_TRIGGER

SQLite3::DROP_VIEW

SQLite3::INSERT

SQLite3::PRAGMA

SQLite3::READ

SQLite3::SELECT

SQLite3::TRANSACTION

SQLite3::UPDATE

SQLite3::ATTACH

SQLite3::DETACH

SQLite3::ALTER_TABLE

SQLite3::REINDEX

SQLite3::ANALYZE

SQLite3::CREATE_VTABLE

SQLite3::DROP_VTABLE

SQLite3::FUNCTION

SQLite3::SAVEPOINT

SQLite3::COPY

SQLite3::RECURSIVE

Índice

  • SQLite3::backup — Copia um banco de dados para outro banco de dados
  • SQLite3::busyTimeout — Define o manipulador de conexão ocupada
  • SQLite3::changes — Retorna o número de linhas do banco de dados que foram alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente
  • SQLite3::close — Fecha a conexão com o banco de dados
  • SQLite3::__construct — Instancia um objeto SQLite3 e abre um banco de dados SQLite 3
  • SQLite3::createAggregate — Registra uma função PHP para uso como uma função de agregação SQL
  • SQLite3::createCollation — Registra uma função PHP para uso como uma função de comparação de SQL
  • SQLite3::createFunction — Registra uma função PHP para uso como uma função escalar SQL
  • SQLite3::enableExceptions — Habilita o lançamento de exceções
  • SQLite3::escapeString — Retorna uma string que foi devidamente escapada
  • SQLite3::exec — Executa uma consulta sem resultado em um determinado banco de dados
  • SQLite3::lastErrorCode — Retorna o código de resultado numérico da última solicitação SQLite que falhou
  • SQLite3::lastErrorMsg — Retorna o texto em inglês descrevendo a requisição SQLite mais recente que falhou
  • SQLite3::lastInsertRowID — Retorna o ID da linha mais recentemente INSERIDA no banco de dados
  • SQLite3::loadExtension — Tenta carregar uma biblioteca de extensão do SQLite
  • SQLite3::open — Abre um banco de dados SQLite
  • SQLite3::openBlob — Abre um recurso de fluxo para ler um BLOB
  • SQLite3::prepare — Prepara uma declaração SQL para execução
  • SQLite3::query — Executa uma consulta SQL
  • SQLite3::querySingle — Executa uma consulta e retorna um único resultado
  • SQLite3::setAuthorizer — Configura um retorno de chamada a ser usado como um autorizador para limitar o que uma declaração pode fazer
  • SQLite3::version — Retorna a versão da biblioteca SQLite3 como uma constante de string e como um número


Copia um banco de dados para outro banco de dados

  • « SQLite3
  • SQLite3::busyTimeout »
  • PHP Manual
  • SQLite3
  • Copia um banco de dados para outro banco de dados

SQLite3::backup

(PHP 7 >= 7.4.0, PHP 8)

SQLite3::backup — Copia um banco de dados para outro banco de dados

Descrição

public SQLite3::backup(SQLite3 $destination, string $sourceDatabase = "main", string $destinationDatabase = "main"): bool

SQLite3::backup() copia o conteúdo de um banco de dados para outro, sobrescrevendo o conteúdo do banco de dados de destino. É útil tanto para criar backups de bancos de dados quanto para copiar bancos de dados em memória para ou de arquivos persistentes.

Dica

A partir do SQLite 3.27.0 (2019-02-07), também é possível usar a instrução VACUUM INTO 'file.db'; para fazer backup do banco de dados para um novo arquivo.

Parâmetros

destination

Uma conexão de banco de dados aberta com SQLite3::open().

sourceDatabase

O nome do banco de dados é "main" para o banco de dados principal, "temp" para o banco de dados temporário, ou o nome especificado após a palavra-chave AS em uma instrução ATTACH para um banco de dados anexado.

destinationDatabase

Analógico ao sourceDatabase mas para o destination.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Fazer backup de um banco de dados existente

<?php
// $conn é uma conexão a um banco de dados sqlite3 já aberto

$backup = new SQLite3('backup.sqlite');
$conn->backup($backup);
?>


Define o manipulador de conexão ocupada

  • « SQLite3::backup
  • SQLite3::changes »
  • PHP Manual
  • SQLite3
  • Define o manipulador de conexão ocupada

SQLite3::busyTimeout

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

SQLite3::busyTimeout — Define o manipulador de conexão ocupada

Descrição

public SQLite3::busyTimeout(int $milliseconds): bool

Define um manipulador ocupado que irá dormir até que o banco de dados não esteja bloqueado ou o tempo limite seja atingido.

Parâmetros

milliseconds

Os milissegundos para dormir. Definir esse valor como um valor menor ou igual a zero desligará um manipulador de tempo limite já definido.

Valor Retornado

Retorna true em caso de sucesso, ou false em caso de falha.


Retorna o número de linhas do banco de dados que foram alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente

  • « SQLite3::busyTimeout
  • SQLite3::close »
  • PHP Manual
  • SQLite3
  • Retorna o número de linhas do banco de dados que foram alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente

SQLite3::changes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::changes — Retorna o número de linhas do banco de dados que foram alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente

Descrição

public SQLite3::changes(): int

Retorna o número de linhas do banco de dados que foram alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um valor int correspondente ao número de linhas do banco de dados alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente.

Exemplos

Exemplo #1 Exemplo de SQLite3::changes()

<?php
$db = new SQLite3('mysqlitedb.db');

$query = $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if ($query) {
echo 'Number of rows modified: ', $db->changes();
}
?>


Fecha a conexão com o banco de dados

  • « SQLite3::changes
  • SQLite3::__construct »
  • PHP Manual
  • SQLite3
  • Fecha a conexão com o banco de dados

SQLite3::close

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::close — Fecha a conexão com o banco de dados

Descrição

public SQLite3::close(): bool

Fecha a conexão com o banco de dados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SQLite3::close()

<?php
$db = new SQLite3('mysqlitedb.db');
$db->close();
?>


Instancia um objeto SQLite3 e abre um banco de dados SQLite 3

  • « SQLite3::close
  • SQLite3::createAggregate »
  • PHP Manual
  • SQLite3
  • Instancia um objeto SQLite3 e abre um banco de dados SQLite 3

SQLite3::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::__construct — Instancia um objeto SQLite3 e abre um banco de dados SQLite 3

Descrição

public SQLite3::__construct(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = "")

Instancia um objeto SQLite3 e abre uma conexão com um banco de dados SQLite 3. Se a compilação incluir criptografia, ele tentará usar a chave.

Parâmetros

filename

Caminho para o banco de dados SQLite, ou :memory: para usar um banco de dados em memória. Se filename for uma string vazia, então um banco de dados privado, temporário no disco será criado. Este banco de dados privado será automaticamente excluído assim que a conexão com o banco de dados for fechada.

flags

Flags opcionais usadas para determinar como abrir o banco de dados SQLite. Por padrão, abre usando SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY: Abre o banco de dados apenas para leitura.

  • SQLITE3_OPEN_READWRITE: Abre o banco de dados para leitura e escrita.

  • SQLITE3_OPEN_CREATE: Cria o banco de dados se ele não existir.

encryptionKey

Uma chave de criptografia opcional usada ao criptografar e descriptografar um banco de dados SQLite. Se o módulo de criptografia SQLite não estiver instalado, este parâmetro não terá efeito.

Erros/Exceções

Lança uma Exception em caso de falha.

Registro de Alterações

Versão | Descrição
7.0.10 | O filename agora pode estar vazio para usar um banco de dados privado, temporário no disco.

Exemplos

Exemplo #1 Exemplo de SQLite3::__construct()

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (bar TEXT)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>


Registra uma função PHP para uso como uma função de agregação SQL

  • « SQLite3::__construct
  • SQLite3::createCollation »
  • PHP Manual
  • SQLite3
  • Registra uma função PHP para uso como uma função de agregação SQL

SQLite3::createAggregate

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::createAggregate — Registra uma função PHP para uso como uma função de agregação SQL

Descrição

public SQLite3::createAggregate(
string $name,
callable $stepCallback,
callable $finalCallback,
int $argCount = -1
): bool

Registra uma função PHP ou uma função definida pelo usuário para uso como uma função de agregação SQL dentro de declarações SQL.

Parâmetros

name

Nome do agregado SQL a ser criado ou redefinido.

stepCallback

Função de retorno de chamada chamada para cada linha do conjunto de resultados. Sua função PHP deve acumular o resultado e armazená-lo no contexto de agregação.

Esta função deve ser definida como:

step(
mixed $context,
int $rownumber,
mixed $value,
mixed ...$values
): mixed
context

null para a primeira linha; nas linhas subsequentes, terá o valor que foi retornado anteriormente pela função step; você deve usar isso para manter o estado de agregação.

rownumber

O número da linha atual.

value

O primeiro argumento passado para a agregação.

values

Outros argumentos passados para a agregação.

O valor de retorno desta função será usado como o argumento context na próxima chamada das funções step ou finalize.

finalCallback

Função de retorno de chamada para agregar os dados "passados" de cada linha. Depois que todas as linhas forem processadas, esta função será chamada e ela deve então pegar os dados do contexto de agregação e retornar o resultado. Esta função de retorno de chamada deve retornar um tipo compreendido pelo SQLite (ou seja, tipo escalar).

Esta função deve ser definida como:

fini(mixed $context, int $rownumber): mixed
context

Mantém o valor de retorno da última chamada à função step.

rownumber

Sempre 0.

O valor de retorno desta função será usado como o valor de retorno para o agregado.

argCount

O número de argumentos que o agregado SQL recebe. Se este parâmetro for negativo, então o agregado SQL pode receber qualquer número de argumentos.

Valor Retornado

Retorna true após a criação bem-sucedida do agregado, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de função de agregação max_length

<?php
$data = array(
'one',
'two',
'three',
'four',
'five',
'six',
'seven',
'eight',
'nine',
'ten',
);
$db = new SQLite3(':memory:');
$db->exec("CREATE TABLE strings(a)");
$insert = $db->prepare('INSERT INTO strings VALUES (?)');
foreach ($data as $str) {
$insert->bindValue(1, $str);
$insert->execute();
}
$insert = null;

function max_len_step($context, $rownumber, $string)
{
if (strlen($string) > $context) {
$context = strlen($string);
}
return $context;
}

function max_len_finalize($context, $rownumber)
{
return $context === null ? 0 : $context;
}

$db->createAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->querySingle('SELECT max_len(a) from strings'));
?>

O exemplo acima produzirá:

int(5)

Neste exemplo, estamos criando uma função de agregação que calculará o comprimento da string mais longa em uma das colunas da tabela. Para cada linha, a função max_len_step é chamada e passada um parâmetro $context. O parâmetro de contexto é como qualquer outra variável PHP e pode ser definido para conter um array ou até mesmo um valor de objeto. Neste exemplo, estamos simplesmente usando-o para conter o comprimento máximo que vimos até agora; se a $string tiver um comprimento maior do que o máximo atual, atualizamos o contexto para armazenar este novo comprimento máximo.

Depois que todas as linhas forem processadas, o SQLite chama a função max_len_finalize para determinar o resultado da agregação. Aqui, poderíamos realizar algum tipo de cálculo com base nos dados encontrados no $context. Em nosso exemplo simples porém, estivemos calculando o resultado à medida que a consulta progredia, então simplesmente precisamos retornar o valor de contexto.

Dica

NÃO é recomendado que você armazene uma cópia dos valores no contexto e depois os processe no final, pois você faria com que o SQLite usasse muita memória para processar a consulta - apenas pense em quanto de memória você precisaria se um milhão de linhas fossem armazenadas em memória, cada uma contendo uma string de 32 bytes de comprimento.

Dica

Você pode usar SQLite3::createAggregate() para substituir funções SQL nativas do SQLite.


Registra uma função PHP para uso como uma função de comparação de SQL

  • « SQLite3::createAggregate
  • SQLite3::createFunction »
  • PHP Manual
  • SQLite3
  • Registra uma função PHP para uso como uma função de comparação de SQL

SQLite3::createCollation

(PHP 5 >= 5.3.11, PHP 7, PHP 8)

SQLite3::createCollation — Registra uma função PHP para uso como uma função de comparação de SQL

Descrição

public SQLite3::createCollation(string $name, callable $callback): bool

Registra uma função PHP ou função definida pelo usuário para uso como uma função de comparação dentro de instruções SQL.

Parâmetros

name

Nome da função de comparação de SQL a ser criada ou redefinida

callback

O nome de uma função PHP ou função definida pelo usuário para aplicar como um callback, definindo o comportamento da comparação. Ela deve aceitar dois valores e retornar como strcmp() faz, ou seja, deve retornar -1, 1 ou 0 se a primeira string ordena antes, ordena depois ou é igual à segunda.

Esta função precisa ser definida como:

collation(mixed $value1, mixed $value2): int

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SQLite3::createCollation()

Registre a função PHP strnatcmp() como uma sequência de comparação no banco de dados SQLite3.

<?php

$db = new SQLite3(":memory:");
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");

$db->createCollation('NATURAL_CMP', 'strnatcmp');

$defaultSort = $db->query("SELECT col1 FROM test ORDER BY col1");
$naturalSort = $db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP");

echo "default:\n";
while ($row = $defaultSort->fetchArray()){
echo $row['col1'], "\n";
}

echo "\nnatural:\n";
while ($row = $naturalSort->fetchArray()){
echo $row['col1'], "\n";
}

$db->close();

?>

O exemplo acima produzirá:

default:
a1
a10
a2

natural:
a1
a2
a10

Veja Também

  • A documentação de comparação SQLite: » http://sqlite.org/datatype3.html#collation


Registra uma função PHP para uso como uma função escalar SQL

  • « SQLite3::createCollation
  • SQLite3::enableExceptions »
  • PHP Manual
  • SQLite3
  • Registra uma função PHP para uso como uma função escalar SQL

SQLite3::createFunction

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::createFunction — Registra uma função PHP para uso como uma função escalar SQL

Descrição

public SQLite3::createFunction(
string $name,
callable $callback,
int $argCount = -1,
int $flags = 0
): bool

Registra uma função PHP ou função definida pelo usuário para uso como uma função escalar SQL dentro de instruções SQL.

Parâmetros

name

Nome da função SQL a ser criada ou redefinida.

callback

O nome de uma função PHP ou função definida pelo usuário para aplicar como um callback, definindo o comportamento da função SQL.

Esta função precisa ser definida como:

callback(mixed $value, mixed ...$values): mixed
value

O primeiro argumento passado para a função SQL.

values

Mais argumentos passados para a função SQL.

argCount

O número de argumentos que a função SQL recebe. Se este parâmetro for -1, então a função SQL pode receber qualquer número de argumentos.

flags

Uma conjunção bitwise de opções. Atualmente, apenas SQLITE3_DETERMINISTIC é suportado, o que especifica que a função sempre retorna o mesmo resultado dado os mesmos argumentos dentro de uma única instrução SQL.

Valor Retornado

Retorna true após a criação bem-sucedida da função, false em caso de falha.

Registro de Alterações

Versão | Descrição
7.1.4 | O parâmetro flags foi adicionado.

Exemplos

Exemplo #1 Exemplo de SQLite3::createFunction()

<?php
function my_udf_md5($string) {
return md5($string);
}

$db = new SQLite3('mysqlitedb.db');
$db->createFunction('my_udf_md5', 'my_udf_md5');

var_dump($db->querySingle('SELECT my_udf_md5("test")'));
?>

O exemplo acima produzirá algo semelhante a:

string(32) "098f6bcd4621d373cade4e832627b4f6"


Habilita o lançamento de exceções

  • « SQLite3::createFunction
  • SQLite3::escapeString »
  • PHP Manual
  • SQLite3
  • Habilita o lançamento de exceções

SQLite3::enableExceptions

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::enableExceptions — Habilita o lançamento de exceções

Descrição

public SQLite3::enableExceptions(bool $enable = false): bool

Controla se a instância SQLite3 lançará exceções ou avisos em caso de erro.

Parâmetros

enable

Quando true, a instância SQLite3, e as instâncias SQLite3Stmt e SQLite3Result derivadas dela, lançarão exceções em caso de erro.

Quando false, a instância SQLite3, e as instâncias SQLite3Stmt e SQLite3Result derivadas dela, emitirão avisos em caso de erro.

Em qualquer modo, o código de erro e a mensagem, se houver, estarão disponíveis através de SQLite3::lastErrorCode() e SQLite3::lastErrorMsg(), respectivamente.

Valor Retornado

Retorna o valor antigo; true se as exceções estavam habilitadas, false caso contrário.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar SQLite3::enableExceptions() com enable como false irá disparar um aviso E_DEPRECATED.

Exemplos

Exemplo #1 Exemplo de SQLite3::enableExceptions()

<?php
$sqlite = new SQLite3(':memory:');
try {
$sqlite->exec('create table foo');
$sqlite->enableExceptions(true);
$sqlite->exec('create table bar');
} catch (Exception $e) {
echo 'Caught exception: ' . $e->getMessage();
}
?>

O exemplo acima produzirá algo semelhante a:

Warning: SQLite3::exec(): near "foo": syntax error in example.php on line 4
Caught exception: near "bar": syntax error


Retorna uma string que foi devidamente escapada

  • « SQLite3::enableExceptions
  • SQLite3::exec »
  • PHP Manual
  • SQLite3
  • Retorna uma string que foi devidamente escapada

SQLite3::escapeString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::escapeString — Retorna uma string que foi devidamente escapada

Descrição

public static SQLite3::escapeString(string $string): string

Retorna uma string que foi devidamente escapada para inclusão segura em uma instrução SQL.

Aviso

Esta função (ainda) não é compatível com dados binários!

Para lidar adequadamente com campos BLOB que podem conter caracteres NUL, use SQLite3Stmt::bindParam() em vez disso.

Parâmetros

string

A string a ser escapada.

Valor Retornado

Retorna uma string devidamente escapada que pode ser usada com segurança em uma instrução SQL.

Notas

Aviso

addslashes() NÃO deve ser usado para citar suas strings para consultas SQLite; isso levará a resultados estranhos ao recuperar seus dados.


Executa uma consulta sem resultado em um determinado banco de dados

  • « SQLite3::escapeString
  • SQLite3::lastErrorCode »
  • PHP Manual
  • SQLite3
  • Executa uma consulta sem resultado em um determinado banco de dados

SQLite3::exec

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::exec — Executa uma consulta sem resultado em um determinado banco de dados

Descrição

public SQLite3::exec(string $query): bool

Executa uma consulta sem resultado em um determinado banco de dados.

Nota: O SQLite3 pode precisar criar » arquivos temporários durante a execução de consultas, então os diretórios respectivos podem precisar ter permissão de escrita.

Parâmetros

query

A consulta SQL a ser executada (geralmente uma consulta INSERT, UPDATE ou DELETE).

Valor Retornado

Retorna true se a consulta for bem-sucedida, false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SQLite3::exec()

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE bar (bar TEXT)');
?>


Retorna o código de resultado numérico da última solicitação SQLite que falhou

  • « SQLite3::exec
  • SQLite3::lastErrorMsg »
  • PHP Manual
  • SQLite3
  • Retorna o código de resultado numérico da última solicitação SQLite que falhou

SQLite3::lastErrorCode

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::lastErrorCode — Retorna o código de resultado numérico da última solicitação SQLite que falhou

Descrição

public SQLite3::lastErrorCode(): int

Retorna o código de resultado numérico da última solicitação SQLite que falhou.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um valor inteiro representando o código de resultado numérico da solicitação SQLite mais recente que falhou.


Retorna o texto em inglês descrevendo a requisição SQLite mais recente que falhou

  • « SQLite3::lastErrorCode
  • SQLite3::lastInsertRowID »
  • PHP Manual
  • SQLite3
  • Retorna o texto em inglês descrevendo a requisição SQLite mais recente que falhou

SQLite3::lastErrorMsg

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::lastErrorMsg — Retorna o texto em inglês descrevendo a requisição SQLite mais recente que falhou

Descrição

public SQLite3::lastErrorMsg(): string

Retorna o texto em inglês descrevendo a requisição SQLite mais recente que falhou.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string em inglês descrevendo a requisição SQLite mais recente que falhou.


Retorna o ID da linha mais recentemente INSERIDA no banco de dados

  • « SQLite3::lastErrorMsg
  • SQLite3::loadExtension »
  • PHP Manual
  • SQLite3
  • Retorna o ID da linha mais recentemente INSERIDA no banco de dados

SQLite3::lastInsertRowID

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::lastInsertRowID — Retorna o ID da linha mais recentemente INSERIDA no banco de dados

Descrição

public SQLite3::lastInsertRowID(): int

Retorna o ID da linha mais recentemente INSERIDA no banco de dados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o ID da linha mais recentemente inserida no banco de dados. Se nenhuma inserção bem-sucedida em tabelas com rowid já ocorreu nesta conexão de banco de dados, então SQLite3::lastInsertRowID() retorna 0.


Tenta carregar uma biblioteca de extensão do SQLite

  • « SQLite3::lastInsertRowID
  • SQLite3::open »
  • PHP Manual
  • SQLite3
  • Tenta carregar uma biblioteca de extensão do SQLite

SQLite3::loadExtension

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::loadExtension — Tenta carregar uma biblioteca de extensão do SQLite

Descrição

public SQLite3::loadExtension(string $name): bool

Tenta carregar uma biblioteca de extensão do SQLite.

Parâmetros

name

O nome da biblioteca a ser carregada. A biblioteca deve estar localizada no diretório especificado na opção de configuração sqlite3.extension_dir.

Valor Retornado

Retorna true se a extensão for carregada com sucesso, false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SQLite3::loadExtension()

<?php
$db = new SQLite3('mysqlitedb.db');
$db->loadExtension('libagg.so');
?>


Abre um banco de dados SQLite

  • « SQLite3::loadExtension
  • SQLite3::openBlob »
  • PHP Manual
  • SQLite3
  • Abre um banco de dados SQLite

SQLite3::open

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::open — Abre um banco de dados SQLite

Descrição

public SQLite3::open(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = ""): void

Abre um banco de dados SQLite 3. Se a compilação incluir criptografia, então tentará usar a chave.

Parâmetros

filename

Caminho para o banco de dados SQLite, ou :memory: para usar um banco de dados em memória.

flags

Sinalizadores opcionais usados para determinar como abrir o banco de dados SQLite. Por padrão, o método open usa SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY: Abre o banco de dados somente para leitura.

  • SQLITE3_OPEN_READWRITE: Abre o banco de dados para leitura e escrita.

  • SQLITE3_OPEN_CREATE: Cria o banco de dados se ele não existir.

encryptionKey

Uma chave de criptografia opcional usada ao criptografar e descriptografar um banco de dados SQLite. Se o módulo de criptografia SQLite não estiver instalado, este parâmetro não terá efeito.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SQLite3::open()

<?php
/**
* Exemplo simples de extensão da classe SQLite3 e mudança dos parâmetros __construct,
* e então usando o método open para inicializar o DB.
*/
class MyDB extends SQLite3
{
function __construct()
{
$this->open('mysqlitedb.db');
}
}

$db = new MyDB();

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>


Abre um recurso de fluxo para ler um BLOB

  • « SQLite3::open
  • SQLite3::prepare »
  • PHP Manual
  • SQLite3
  • Abre um recurso de fluxo para ler um BLOB

SQLite3::openBlob

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::openBlob — Abre um recurso de fluxo para ler um BLOB

Descrição

public SQLite3::openBlob(
string $table,
string $column,
int $rowid,
string $database = "main",
int $flags = SQLITE3_OPEN_READONLY
): resource|false

Abre um recurso de fluxo para ler ou escrever um BLOB, que seria selecionado por:

SELECT column FROM database.table WHERE rowid = rowid

Nota: Não é possível alterar o tamanho de um BLOB escrevendo no fluxo. Em vez disso, uma declaração UPDATE deve ser executada, possivelmente usando a função zeroblob() do SQLite para definir o tamanho desejado do BLOB.

Parâmetros

table

O nome da tabela.

column

O nome da coluna.

rowid

O ID da linha.

database

O nome simbólico do banco de dados.

flags

Seja SQLITE3_OPEN_READONLY ou SQLITE3_OPEN_READWRITE para abrir o fluxo somente para leitura ou para leitura e escrita, respectivamente.

Valor Retornado

Retorna um recurso de fluxo, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.2.0 | O parâmetro flags foi adicionado, permitindo escrever BLOBs; anteriormente, apenas a leitura era suportada.

Exemplos

Exemplo #1 Exemplo de SQLite3::openBlob()

<?php
$conn = new SQLite3(':memory:');
$conn->exec('CREATE TABLE test (text text)');
$conn->exec("INSERT INTO test VALUES ('Lorem ipsum')");
$stream = $conn->openBlob('test', 'text', 1);
echo stream_get_contents($stream);
fclose($stream); // obrigatório, caso contrário a próxima linha falharia
$conn->close();
?>

O exemplo acima produzirá:

Lorem ipsum

Exemplo #2 Escrevendo incrementalmente um BLOB

<?php
$conn = new SQLite3(':memory:');
$conn->exec('CREATE TABLE test (text text)');
$conn->exec("INSERT INTO test VALUES (zeroblob(36))");
$stream = $conn->openBlob('test', 'text', 1, 'main', SQLITE3_OPEN_READWRITE);
for ($i = 0; $i < 3; $i++) {
fwrite($stream, "Lorem ipsum\n");
}
fclose($stream);
echo $conn->querySingle("SELECT text FROM test");
$conn->close();
?>

O exemplo acima produzirá:

Lorem ipsum
Lorem ipsum
Lorem ipsum


Prepara uma declaração SQL para execução

  • « SQLite3::openBlob
  • SQLite3::query »
  • PHP Manual
  • SQLite3
  • Prepara uma declaração SQL para execução

SQLite3::prepare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::prepare — Prepara uma declaração SQL para execução

Descrição

public SQLite3::prepare(string $query): SQLite3Stmt|false

Prepara uma declaração SQL para execução e retorna um objeto SQLite3Stmt.

Parâmetros

query

A consulta SQL a ser preparada.

Valor Retornado

Retorna um objeto SQLite3Stmt em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SQLite3::prepare()

<?php
unlink('mysqlitedb.db');
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray());
?>

Veja Também

  • SQLite3Stmt::paramCount() - Retorna o número de parâmetros dentro da declaração preparada
  • SQLite3Stmt::bindValue() - Vincula o valor de um parâmetro a uma variável de instrução
  • SQLite3Stmt::bindParam() - Vincula um parâmetro a uma variável de instrução


Executa uma consulta SQL

  • « SQLite3::prepare
  • SQLite3::querySingle »
  • PHP Manual
  • SQLite3
  • Executa uma consulta SQL

SQLite3::query

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::query — Executa uma consulta SQL

Descrição

public SQLite3::query(string $query): SQLite3Result|false

Executa uma consulta SQL, retornando um objeto SQLite3Result. Se a consulta não produzir um resultado (como declarações DML), o objeto SQLite3Result retornado não será realmente utilizável. Use SQLite3::exec() para essas consultas.

Parâmetros

query

A consulta SQL a ser executada.

Valor Retornado

Retorna um objeto SQLite3Result, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SQLite3::query()

<?php
$db = new SQLite3('mysqlitedb.db');

$results = $db->query('SELECT bar FROM foo');
while ($row = $results->fetchArray()) {
var_dump($row);
}
?>


Executa uma consulta e retorna um único resultado

  • « SQLite3::query
  • SQLite3::setAuthorizer »
  • PHP Manual
  • SQLite3
  • Executa uma consulta e retorna um único resultado

SQLite3::querySingle

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::querySingle — Executa uma consulta e retorna um único resultado

Descrição

public SQLite3::querySingle(string $query, bool $entireRow = false): mixed

Executa uma consulta e retorna um único resultado.

Parâmetros

query

A consulta SQL a ser executada.

entireRow

Por padrão, querySingle() retorna o valor da primeira coluna retornada pela consulta. Se entireRow for true, então ele retorna um array da linha inteira.

Valor Retornado

Retorna o valor da primeira coluna dos resultados ou um array da primeira linha inteira (se entireRow for true).

Se a consulta for válida mas nenhum resultado for retornado, então null será retornado se entireRow for false, caso contrário um array vazio é retornado.

Consultas inválidas ou falhadas retornarão false.

Exemplos

Exemplo #1 Exemplo de SQLite3::querySingle()

<?php
$db = new SQLite3('mysqlitedb.db');

var_dump($db->querySingle('SELECT username FROM user WHERE userid=1'));
print_r($db->querySingle('SELECT username, email FROM user WHERE userid=1', true));
?>

O exemplo acima produzirá algo semelhante a:

string(5) "Scott"
Array
(
    [username] => Scott
    [email] => scott@example.com
)


Configura um retorno de chamada a ser usado como um autorizador para limitar o que uma declaração pode fazer

  • « SQLite3::querySingle
  • SQLite3::version »
  • PHP Manual
  • SQLite3
  • Configura um retorno de chamada a ser usado como um autorizador para limitar o que uma declaração pode fazer

SQLite3::setAuthorizer

(PHP 8)

SQLite3::setAuthorizer — Configura um retorno de chamada a ser usado como um autorizador para limitar o que uma declaração pode fazer

Descrição

public SQLite3::setAuthorizer(?callable $callback): bool

Define um retorno de chamada que será chamado pelo SQLite toda vez que uma ação for executada (leitura, exclusão, atualização, etc.). Isso é usado ao preparar uma declaração SQL de uma fonte não confiável para garantir que as declarações SQL não tentem acessar dados aos quais não têm permissão para ver, ou que não tentem executar declarações maliciosas que danifiquem o banco de dados. Por exemplo, um aplicativo pode permitir que um usuário insira consultas SQL arbitrárias para avaliação por um banco de dados. Mas o aplicativo não quer que o usuário possa fazer alterações arbitrárias no banco de dados. Um autorizador poderia então ser colocado em prática enquanto o SQL inserido pelo usuário está sendo preparado, o que proíbe tudo exceto declarações SELECT.

O retorno de chamada do autorizador pode ser chamado várias vezes para cada declaração preparada pelo SQLite. Uma consulta SELECT ou UPDATE chamará o autorizador para cada coluna que seria lida ou atualizada.

O autorizador é chamado com até cinco parâmetros. O primeiro parâmetro é sempre fornecido e é um int (código de ação) correspondente a uma constante de SQLite3. Os outros parâmetros são passados apenas para algumas ações. A tabela a seguir descreve o segundo e o terceiro parâmetros de acordo com a ação:

Lista de códigos de ação e parâmetros
Ação | Segundo parâmetro | Terceiro parâmetro
SQLite3::CREATE_INDEX | Nome do Índice | Nome da Tabela
SQLite3::CREATE_TABLE | Nome da Tabela | null
SQLite3::CREATE_TEMP_INDEX | Nome do Índice | Nome da Tabela
SQLite3::CREATE_TEMP_TABLE | Nome da Tabela | null
SQLite3::CREATE_TEMP_TRIGGER | Nome do Gatilho | Nome da Tabela
SQLite3::CREATE_TEMP_VIEW | Nome da Visualização | null
SQLite3::CREATE_TRIGGER | Nome do Gatilho | Nome da Tabela
SQLite3::CREATE_VIEW | Nome da Visualização | null
SQLite3::DELETE | Nome da Tabela | null
SQLite3::DROP_INDEX | Nome do Índice | Nome da Tabela
SQLite3::DROP_TABLE | Nome da Tabela | null
SQLite3::DROP_TEMP_INDEX | Nome do Índice | Nome da Tabela
SQLite3::DROP_TEMP_TABLE | Nome da Tabela | null
SQLite3::DROP_TEMP_TRIGGER | Nome do Gatilho | Nome da Tabela
SQLite3::DROP_TEMP_VIEW | Nome da Visualização | null
SQLite3::DROP_TRIGGER | Nome do Gatilho | Nome da Tabela
SQLite3::DROP_VIEW | Nome da Visualização | null
SQLite3::INSERT | Nome da Tabela | null
SQLite3::PRAGMA | Nome do Pragma | Primeiro argumento passado ao pragma, ou null
SQLite3::READ | Nome da Tabela | Nome da Coluna
SQLite3::SELECT | null | null
SQLite3::TRANSACTION | Operação | null
SQLite3::UPDATE | Nome da Tabela | Nome da Coluna
SQLite3::ATTACH | Nome do Arquivo | null
SQLite3::DETACH | Nome do Banco de Dados | null
SQLite3::ALTER_TABLE | Nome do Banco de Dados | Nome da Tabela
SQLite3::REINDEX | Nome do Índice | null
SQLite3::ANALYZE | Nome da Tabela | null
SQLite3::CREATE_VTABLE | Nome da Tabela | Nome do Módulo
SQLite3::DROP_VTABLE | Nome da Tabela | Nome do Módulo
SQLite3::FUNCTION | null | Nome da Função
SQLite3::SAVEPOINT | Operação | Nome do Ponto de Salvamento
SQLite3::RECURSIVE | null | null

O 4º parâmetro será o nome do banco de dados ("main", "temp", etc.) se aplicável.

O 5º parâmetro para o retorno de chamada do autorizador é o nome do gatilho ou visualização mais interno responsável pela tentativa de acesso ou null se esta tentativa de acesso é diretamente a partir do código SQL de nível superior.

Quando o retorno de chamada retorna SQLite3::OK, isso significa que a operação solicitada é aceita. Quando o retorno de chamada retorna SQLite3::DENY, a chamada que acionou o autorizador falhará com uma mensagem de erro explicando que o acesso foi negado.

Se o código de ação for SQLite3::READ e o retorno de chamada retornar SQLite3::IGNORE, então a declaração preparada é construída para substituir um valor null no lugar da coluna da tabela que seria lida se SQLite3::OK tivesse sido retornado. O retorno SQLite3::IGNORE pode ser usado para negar a um usuário não confiável o acesso a colunas individuais de uma tabela.

Quando uma tabela é referenciada por um SELECT, mas nenhum valor de coluna é extraído dessa tabela (por exemplo, em uma consulta como "SELECT count(*) FROM table"), então o retorno de chamada do autorizador SQLite3::READ é invocado uma vez para essa tabela com um nome de coluna que é uma string vazia.

Se o código de ação for SQLite3::DELETE e o retorno de chamada retornar SQLite3::IGNORE, então a operação DELETE prossegue, mas a otimização de truncamento é desativada e todas as linhas são excluídas individualmente.

Apenas um autorizador pode estar em vigor em uma conexão de banco de dados de cada vez. Cada chamada para SQLite3::setAuthorizer() substitui a chamada anterior. Desative o autorizador instalando um retorno de chamada null. O autorizador é desativado por padrão.

O retorno de chamada do autorizador não deve fazer nada que modifique a conexão de banco de dados que invocou o retorno de chamada do autorizador.

Observe que o autorizador é chamado apenas quando uma declaração é preparada, não quando ela é executada.

Mais detalhes podem ser encontrados na » documentação do SQLite3.

Parâmetros

callback

O callable a ser chamado.

Se null for passado, isso desativará o retorno de chamada do autorizador atual.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Este método não lança nenhum erro, mas se um autorizador estiver habilitado e retornar um valor inválido, a preparação da declaração lançará um erro (ou exceção, dependendo do uso do método SQLite3::enableExceptions()).

Exemplos

Exemplo #1 Exemplo de SQLite3::setAuthorizer()

Isso permite apenas o acesso à leitura, e apenas algumas colunas da tabela users serão retornadas. Outras colunas serão substituídas por null.

<?php
$db = new SQLite3('data.sqlite');
$db->exec('CREATE TABLE users (id, name, password);');
$db->exec('INSERT INTO users VALUES (1, \'Pauline\', \'Snails4eva\');');

$allowed_columns = ['id', 'name'];

$db->setAuthorizer(function (int $action, ...$args) use ($allowed_columns) {
if ($action === SQLite3::READ) {
list($table, $column) = $args;

if ($table === 'users' && in_array($column, $allowed_columns) {
return SQLite3::OK;
}

return SQLite3::IGNORE;
}

return SQLite3::DENY;
});

print_r($db->querySingle('SELECT * FROM users WHERE id = 1;'));

O exemplo acima produzirá:

Array
(
    [id] => 1
    [name] => Pauline
    [password] =>
)


Retorna a versão da biblioteca SQLite3 como uma constante de string e como um número

  • « SQLite3::setAuthorizer
  • SQLite3Exception »
  • PHP Manual
  • SQLite3
  • Retorna a versão da biblioteca SQLite3 como uma constante de string e como um número

SQLite3::version

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::version — Retorna a versão da biblioteca SQLite3 como uma constante de string e como um número

Descrição

public static SQLite3::version(): array

Retorna a versão da biblioteca SQLite3 como uma constante de string e como um número.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array associativo com as chaves "versionString" e "versionNumber".

Exemplos

Exemplo #1 Exemplo de SQLite3::version()

<?php
print_r(SQLite3::version());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [versionString] => 3.5.9
    [versionNumber] => 3005009
)


A classe SQLite3Exception

(PHP 8 >= 8.3.0)

Introdução

Representa uma exceção específica do SQLite3.

Resumo da classe

class SQLite3Exception extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe SQLite3Stmt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

Uma classe que lida com declarações preparadas para a extensão SQLite 3.

Resumo da classe

class SQLite3Stmt {
/* Métodos */
private __construct(SQLite3 $sqlite3, string $query)
public bindParam(string|int $param, mixed &$var, int $type = SQLITE3_TEXT): bool
public bindValue(string|int $param, mixed $value, int $type = SQLITE3_TEXT): bool
public clear(): bool
public close(): bool
public execute(): SQLite3Result|false
public getSQL(bool $expand = false): string|false
public paramCount(): int
public readOnly(): bool
public reset(): bool
}

Índice

  • SQLite3Stmt::bindParam — Vincula um parâmetro a uma variável de instrução
  • SQLite3Stmt::bindValue — Vincula o valor de um parâmetro a uma variável de instrução
  • SQLite3Stmt::clear — Limpa todos os parâmetros vinculados atuais
  • SQLite3Stmt::close — Fecha a declaração preparada
  • SQLite3Stmt::__construct — Constrói um objeto SQLite3Stmt
  • SQLite3Stmt::execute — Executa uma declaração preparada e retorna um objeto de conjunto de resultados
  • SQLite3Stmt::getSQL — Obtém o SQL da instrução
  • SQLite3Stmt::paramCount — Retorna o número de parâmetros dentro da declaração preparada
  • SQLite3Stmt::readOnly — Retorna se uma declaração é definitivamente somente leitura
  • SQLite3Stmt::reset — Reseta a declaração preparada


Vincula um parâmetro a uma variável de instrução

  • « SQLite3Stmt
  • SQLite3Stmt::bindValue »
  • PHP Manual
  • SQLite3Stmt
  • Vincula um parâmetro a uma variável de instrução

SQLite3Stmt::bindParam

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::bindParam — Vincula um parâmetro a uma variável de instrução

Descrição

public SQLite3Stmt::bindParam(string|int $param, mixed &$var, int $type = SQLITE3_TEXT): bool

Vincula um parâmetro a uma variável de instrução.

Cuidado

Antes do PHP 7.2.14 e 7.3.0, respectivamente, SQLite3Stmt::reset() deve ser chamado após a primeira chamada para SQLite3Stmt::execute() se o valor vinculado deve ser corretamente atualizado nas chamadas seguintes para SQLite3Stmt::execute(). Se SQLite3Stmt::reset() não for chamado, o valor vinculado não será alterado, mesmo que o valor atribuído à variável passada para SQLite3Stmt::bindParam() tenha mudado, ou SQLite3Stmt::bindParam() tenha sido chamado novamente.

Parâmetros

param

Ou uma string (para parâmetros nomeados) ou um int (para parâmetros posicionais) identificando a variável de instrução à qual o valor deve ser vinculado. Se um parâmetro nomeado não começar com dois pontos (:) ou um sinal de arroba (@), dois pontos (:) são automaticamente adicionados. Parâmetros posicionais começam com 1.

var

O parâmetro a ser vinculado a uma variável de instrução.

type

O tipo de dados do parâmetro a ser vinculado.

  • SQLITE3_INTEGER: O valor é um inteiro assinado, armazenado em 1, 2, 3, 4, 6 ou 8 bytes, dependendo da magnitude do valor.

  • SQLITE3_FLOAT: O valor é um valor de ponto flutuante, armazenado como um número de ponto flutuante IEEE de 8 bytes.

  • SQLITE3_TEXT: O valor é uma string de texto, armazenada usando a codificação do banco de dados (UTF-8, UTF-16BE ou UTF-16-LE).

  • SQLITE3_BLOB: O valor é um blob de dados, armazenado exatamente como foi inserido.

  • SQLITE3_NULL: O valor é um valor NULL.

A partir do PHP 7.0.7, se type for omitido, ele é automaticamente detectado a partir do tipo do var: bool e int são tratados como SQLITE3_INTEGER, float como SQLITE3_FLOAT, null como SQLITE3_NULL e todos os outros como SQLITE3_TEXT. Anteriormente, se type fosse omitido, ele era predefinido como SQLITE3_TEXT.

Nota:

Se var for null, ele é sempre tratado como SQLITE3_NULL, independentemente do type fornecido.

Valor Retornado

Retorna true se o parâmetro for vinculado à variável de instrução, false em caso de falha.

Registro de Alterações

Versão | Descrição
7.4.0 | param agora também suporta a notação @param.

Exemplos

Exemplo #1 Uso de SQLite3Stmt::bindParam()

Este exemplo mostra como uma única instrução preparada com uma única vinculação de parâmetro pode ser usada para inserir várias linhas com valores diferentes.

<?php
$db = new SQLite3(':memory:');
$db->exec("CREATE TABLE foo (bar TEXT)");

$stmt = $db->prepare("INSERT INTO foo VALUES (:bar)");
$stmt->bindParam(':bar', $bar, SQLITE3_TEXT);

$bar = 'baz';
$stmt->execute();

$bar = 42;
$stmt->execute();

$res = $db->query("SELECT * FROM foo");
while (($row = $res->fetchArray(SQLITE3_ASSOC))) {
var_dump($row);
}
?>

O exemplo acima produzirá:

array(1) {
  ["bar"]=>
  string(3) "baz"
}
array(1) {
  ["bar"]=>
  string(2) "42"
}

Veja Também

  • SQLite3Stmt::bindValue() - Vincula o valor de um parâmetro a uma variável de instrução
  • SQLite3::prepare() - Prepara uma declaração SQL para execução


Vincula o valor de um parâmetro a uma variável de instrução

  • « SQLite3Stmt::bindParam
  • SQLite3Stmt::clear »
  • PHP Manual
  • SQLite3Stmt
  • Vincula o valor de um parâmetro a uma variável de instrução

SQLite3Stmt::bindValue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::bindValue — Vincula o valor de um parâmetro a uma variável de instrução

Descrição

public SQLite3Stmt::bindValue(string|int $param, mixed $value, int $type = SQLITE3_TEXT): bool

Vincula o valor de um parâmetro a uma variável de instrução.

Cuidado

Antes do PHP 7.2.14 e 7.3.0, respectivamente, uma vez que a instrução foi executada, SQLite3Stmt::reset() precisa ser chamado para poder alterar o valor dos parâmetros vinculados.

Parâmetros

param

Ou uma string (para parâmetros nomeados) ou um int (para parâmetros posicionais) identificando a variável de instrução à qual o valor deve ser vinculado. Se um parâmetro nomeado não começar com dois pontos (:) ou um sinal de arroba (@), dois pontos (:) são automaticamente adicionados. Parâmetros posicionais começam com 1.

value

O valor a ser vinculado a uma variável de instrução.

type

O tipo de dados do valor a ser vinculado.

  • SQLITE3_INTEGER: O valor é um inteiro assinado, armazenado em 1, 2, 3, 4, 6 ou 8 bytes, dependendo da magnitude do valor.

  • SQLITE3_FLOAT: O valor é um valor de ponto flutuante, armazenado como um número de ponto flutuante IEEE de 8 bytes.

  • SQLITE3_TEXT: O valor é uma string de texto, armazenada usando a codificação do banco de dados (UTF-8, UTF-16BE ou UTF-16-LE).

  • SQLITE3_BLOB: O valor é um blob de dados, armazenado exatamente como foi inserido.

  • SQLITE3_NULL: O valor é um valor NULL.

A partir do PHP 7.0.7, se type for omitido, ele é automaticamente detectado a partir do tipo do value: bool e int são tratados como SQLITE3_INTEGER, float como SQLITE3_FLOAT, null como SQLITE3_NULL e todos os outros como SQLITE3_TEXT. Anteriormente, se type fosse omitido, ele era predefinido como SQLITE3_TEXT.

Nota:

Se value for null, ele é sempre tratado como SQLITE3_NULL, independentemente do type fornecido.

Valor Retornado

Retorna true se o valor for vinculado à variável de instrução, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.4.0 | param agora também suporta a notação @param.

Exemplos

Exemplo #1 Exemplo de SQLite3Stmt::bindValue()

<?php
$db = new SQLite3(':memory:');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray(SQLITE3_ASSOC));
?>

O exemplo acima produzirá:

array(1) {
  ["bar"]=>
  string(14) "This is a test"
}

Veja Também

  • SQLite3Stmt::bindParam() - Vincula um parâmetro a uma variável de instrução
  • SQLite3::prepare() - Prepara uma declaração SQL para execução


Limpa todos os parâmetros vinculados atuais

  • « SQLite3Stmt::bindValue
  • SQLite3Stmt::close »
  • PHP Manual
  • SQLite3Stmt
  • Limpa todos os parâmetros vinculados atuais

SQLite3Stmt::clear

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::clear — Limpa todos os parâmetros vinculados atuais

Descrição

public SQLite3Stmt::clear(): bool

Limpa todos os parâmetros vinculados atuais (eles são definidos como null).

Cuidado

Este método precisa ser usado com SQLite3Stmt::reset(). Se usado sozinho, qualquer chamada para SQLite3Stmt::bindValue() ou SQLite3Stmt::bindParam() não terá efeito e todos os parâmetros vinculados terão o valor null.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true após a limpeza bem-sucedida dos parâmetros vinculados, false em caso de falha.


Fecha a declaração preparada

  • « SQLite3Stmt::clear
  • SQLite3Stmt::__construct »
  • PHP Manual
  • SQLite3Stmt
  • Fecha a declaração preparada

SQLite3Stmt::close

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::close — Fecha a declaração preparada

Descrição

public SQLite3Stmt::close(): bool

Fecha a declaração preparada.

Nota: Note que todos os SQLite3Results que foram recuperados executando esta declaração serão invalidados quando a declaração for fechada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true


Constrói um objeto SQLite3Stmt

  • « SQLite3Stmt::close
  • SQLite3Stmt::execute »
  • PHP Manual
  • SQLite3Stmt
  • Constrói um objeto SQLite3Stmt

SQLite3Stmt::__construct

(Não há informação de versão disponível, talvez apenas no Git)

SQLite3Stmt::__construct — Constrói um objeto SQLite3Stmt

Descrição

private SQLite3Stmt::__construct(SQLite3 $sqlite3, string $query)

As instâncias de SQLite3Stmt são criadas por SQLite3::prepare().

Parâmetros

sqlite3

query


Executa uma declaração preparada e retorna um objeto de conjunto de resultados

  • « SQLite3Stmt::__construct
  • SQLite3Stmt::getSQL »
  • PHP Manual
  • SQLite3Stmt
  • Executa uma declaração preparada e retorna um objeto de conjunto de resultados

SQLite3Stmt::execute

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::execute — Executa uma declaração preparada e retorna um objeto de conjunto de resultados

Descrição

public SQLite3Stmt::execute(): SQLite3Result|false

Executa uma declaração preparada e retorna um objeto de conjunto de resultados.

Cuidado

Os objetos de conjunto de resultados recuperados chamando este método no mesmo objeto de declaração não são independentes, mas compartilham a mesma estrutura subjacente. Portanto, é recomendável chamar SQLite3Result::finalize() antes de chamar SQLite3Stmt::execute() novamente no mesmo objeto de declaração.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um objeto SQLite3Result na execução bem-sucedida da declaração preparada, false em caso de falha.

Veja Também

  • SQLite3::prepare() - Prepara uma declaração SQL para execução
  • SQLite3Stmt::bindValue() - Vincula o valor de um parâmetro a uma variável de instrução
  • SQLite3Stmt::bindParam() - Vincula um parâmetro a uma variável de instrução


Obtém o SQL da instrução

  • « SQLite3Stmt::execute
  • SQLite3Stmt::paramCount »
  • PHP Manual
  • SQLite3Stmt
  • Obtém o SQL da instrução

SQLite3Stmt::getSQL

(PHP 7 >= 7.4.0, PHP 8)

SQLite3Stmt::getSQL — Obtém o SQL da instrução

Descrição

public SQLite3Stmt::getSQL(bool $expand = false): string|false

Recupera o SQL da instrução preparada. Se expand for false, o SQL não modificado é recuperado. Se expand for true, todos os parâmetros da consulta são substituídos por seus valores vinculados, ou por um SQL NULL, se ainda não estiverem vinculados.

Parâmetros

expand

Se deseja recuperar o SQL expandido. Passar true só é suportado a partir do libsqlite 3.14.

Valor Retornado

Retorna o SQL da instrução preparada, ou false em caso de falha.

Erros/Exceções

Se expand for true, mas a versão do libsqlite for inferior a 3.14, um erro de nível E_WARNING ou uma Exception é emitido, de acordo com SQLite3::enableExceptions().

Exemplos

Exemplo #1 Inspeção do SQL expandido

<?php
$db = new SQLite3(':memory:');
$stmt = $db->prepare("SELECT :a, ?, :c");
$stmt->bindValue(':a', 'foo');
$answer = 42;
$stmt->bindParam(2, $answer);
var_dump($stmt->getSQL(true));
?>

O exemplo acima produzirá algo semelhante a:

string(24) "SELECT 'foo', '42', NULL"


Retorna o número de parâmetros dentro da declaração preparada

  • « SQLite3Stmt::getSQL
  • SQLite3Stmt::readOnly »
  • PHP Manual
  • SQLite3Stmt
  • Retorna o número de parâmetros dentro da declaração preparada

SQLite3Stmt::paramCount

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::paramCount — Retorna o número de parâmetros dentro da declaração preparada

Descrição

public SQLite3Stmt::paramCount(): int

Retorna o número de parâmetros dentro da declaração preparada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de parâmetros dentro da declaração preparada.

Veja Também

  • SQLite3::prepare() - Prepara uma declaração SQL para execução


Retorna se uma declaração é definitivamente somente leitura

  • « SQLite3Stmt::paramCount
  • SQLite3Stmt::reset »
  • PHP Manual
  • SQLite3Stmt
  • Retorna se uma declaração é definitivamente somente leitura

SQLite3Stmt::readOnly

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

SQLite3Stmt::readOnly — Retorna se uma declaração é definitivamente somente leitura

Descrição

public SQLite3Stmt::readOnly(): bool

Retorna se uma declaração é definitivamente somente leitura. Uma declaração é considerada somente leitura se não fizer alterações diretas no conteúdo do arquivo de banco de dados. Observe que funções SQL definidas pelo usuário podem alterar o banco de dados indiretamente como um efeito colateral.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se uma declaração é definitivamente somente leitura, false caso contrário.


Reseta a declaração preparada

  • « SQLite3Stmt::readOnly
  • SQLite3Result »
  • PHP Manual
  • SQLite3Stmt
  • Reseta a declaração preparada

SQLite3Stmt::reset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::reset — Reseta a declaração preparada

Descrição

public SQLite3Stmt::reset(): bool

Reseta a declaração preparada para seu estado anterior à execução. Todas as ligações permanecem intactas após o reset.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a declaração for resetada com sucesso, ou false em caso de falha.


A classe SQLite3Result

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

Uma classe que manipula conjuntos de resultados para a extensão SQLite 3.

Resumo da classe

class SQLite3Result {
/* Métodos */
private __construct()
public columnName(int $column): string|false
public columnType(int $column): int|false
public fetchArray(int $mode = SQLITE3_BOTH): array|false
public finalize(): bool
public numColumns(): int
public reset(): bool
}

Índice

  • SQLite3Result::columnName — Retorna o nome da enésima coluna
  • SQLite3Result::columnType — Retorna o tipo da enésima coluna
  • SQLite3Result::__construct — Constrói um SQLite3Result
  • SQLite3Result::fetchArray — Obtém uma linha de resultado como um array associativo, numericamente indexado ou ambos
  • SQLite3Result::finalize — Fecha o conjunto de resultados
  • SQLite3Result::numColumns — Retorna o número de colunas no conjunto de resultados
  • SQLite3Result::reset — Reinicia o conjunto de resultados de volta para a primeira linha


Retorna o nome da enésima coluna

  • « SQLite3Result
  • SQLite3Result::columnType »
  • PHP Manual
  • SQLite3Result
  • Retorna o nome da enésima coluna

SQLite3Result::columnName

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::columnName — Retorna o nome da enésima coluna

Descrição

public SQLite3Result::columnName(int $column): string|false

Retorna o nome da coluna especificada pelo column. Observe que o nome de uma coluna de resultado é o valor da cláusula AS para essa coluna, se houver uma cláusula AS. Se não houver uma cláusula AS, então o nome da coluna é não especificado e pode mudar de uma versão para outra do libsqlite3.

Parâmetros

column

O índice baseado em zero, numérico, da coluna.

Valor Retornado

Retorna o string nome da coluna identificada por column, ou false se a coluna não existir.


Retorna o tipo da enésima coluna

  • « SQLite3Result::columnName
  • SQLite3Result::__construct »
  • PHP Manual
  • SQLite3Result
  • Retorna o tipo da enésima coluna

SQLite3Result::columnType

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::columnType — Retorna o tipo da enésima coluna

Descrição

public SQLite3Result::columnType(int $column): int|false

Retorna o tipo da coluna identificada por column.

Parâmetros

column

O índice baseado em zero, numérico, da coluna.

Valor Retornado

Retorna o índice do tipo de dados da coluna identificada por column (um dos SQLITE3_INTEGER, SQLITE3_FLOAT, SQLITE3_TEXT, SQLITE3_BLOB ou SQLITE3_NULL), ou false se a coluna não existir.


Constrói um SQLite3Result

  • « SQLite3Result::columnType
  • SQLite3Result::fetchArray »
  • PHP Manual
  • SQLite3Result
  • Constrói um SQLite3Result

SQLite3Result::__construct

(Não há informação de versão disponível, talvez apenas no Git)

SQLite3Result::__construct — Constrói um SQLite3Result

Descrição

private SQLite3Result::__construct()

As instâncias de SQLite3Result são criadas por SQLite3::query() e SQLite3Stmt::execute().

Parâmetros

Esta função não possui parâmetros.


Obtém uma linha de resultado como um array associativo, numericamente indexado ou ambos

  • « SQLite3Result::__construct
  • SQLite3Result::finalize »
  • PHP Manual
  • SQLite3Result
  • Obtém uma linha de resultado como um array associativo, numericamente indexado ou ambos

SQLite3Result::fetchArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::fetchArray — Obtém uma linha de resultado como um array associativo, numericamente indexado ou ambos

Descrição

public SQLite3Result::fetchArray(int $mode = SQLITE3_BOTH): array|false

Obtém uma linha de resultado como um array associativo, numericamente indexado ou ambos. Por padrão, obtém como ambos.

Parâmetros

mode

Controla como a próxima linha será retornada ao chamador. Este valor deve ser um dos seguintes: SQLITE3_ASSOC, SQLITE3_NUM ou SQLITE3_BOTH.

  • SQLITE3_ASSOC: retorna um array indexado pelo nome da coluna conforme retornado no conjunto de resultados correspondente

  • SQLITE3_NUM: retorna um array indexado pelo número da coluna conforme retornado no conjunto de resultados correspondente, começando na coluna 0

  • SQLITE3_BOTH: retorna um array indexado tanto pelo nome da coluna quanto pelo número da coluna conforme retornado no conjunto de resultados correspondente, começando na coluna 0

Valor Retornado

Retorna uma linha de resultado como um array associativo, numericamente indexado ou ambos. Alternativamente, retornará false se não houver mais linhas.

Os tipos dos valores do array retornado são mapeados a partir dos tipos SQLite3 como segue: inteiros são mapeados para int se estiverem dentro do intervalo PHP_INT_MIN..PHP_INT_MAX, e para string caso contrário. Floats são mapeados para float, valores NULL são mapeados para null, e strings e blobs são mapeados para string.


Fecha o conjunto de resultados

  • « SQLite3Result::fetchArray
  • SQLite3Result::numColumns »
  • PHP Manual
  • SQLite3Result
  • Fecha o conjunto de resultados

SQLite3Result::finalize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::finalize — Fecha o conjunto de resultados

Descrição

public SQLite3Result::finalize(): bool

Fecha o conjunto de resultados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true.


Retorna o número de colunas no conjunto de resultados

  • « SQLite3Result::finalize
  • SQLite3Result::reset »
  • PHP Manual
  • SQLite3Result
  • Retorna o número de colunas no conjunto de resultados

SQLite3Result::numColumns

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::numColumns — Retorna o número de colunas no conjunto de resultados

Descrição

public SQLite3Result::numColumns(): int

Retorna o número de colunas no conjunto de resultados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de colunas no conjunto de resultados.


Reinicia o conjunto de resultados de volta para a primeira linha

  • « SQLite3Result::numColumns
  • SQLSRV »
  • PHP Manual
  • SQLite3Result
  • Reinicia o conjunto de resultados de volta para a primeira linha

SQLite3Result::reset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::reset — Reinicia o conjunto de resultados de volta para a primeira linha

Descrição

public SQLite3Result::reset(): bool

Reinicia o conjunto de resultados de volta para a primeira linha.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o conjunto de resultados for reiniciado com sucesso para a primeira linha, false em caso de falha.


Driver Microsoft SQL Server para PHP

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções SQLSRV
    • sqlsrv_begin_transaction — Inicia uma transação de banco de dados
    • sqlsrv_cancel — Cancela uma declaração
    • sqlsrv_client_info — Retorna informações sobre o cliente e a conexão especificada
    • sqlsrv_close — Fecha uma conexão aberta e libera os recursos associados à conexão
    • sqlsrv_commit — Confirma uma transação que foi iniciada com sqlsrv_begin_transaction
    • sqlsrv_configure — Altera as configurações de tratamento de erros e registro do driver
    • sqlsrv_connect — Abre uma conexão com um banco de dados Microsoft SQL Server
    • sqlsrv_errors — Retorna informações de erro e aviso sobre a última operação SQLSRV executada
    • sqlsrv_execute — Executa uma declaração preparada com sqlsrv_prepare
    • sqlsrv_fetch_array — Retorna uma linha como um array
    • sqlsrv_fetch_object — Recupera a próxima linha de dados em um conjunto de resultados como um objeto
    • sqlsrv_fetch — Torna a próxima linha em um conjunto de resultados disponível para leitura
    • sqlsrv_field_metadata — Recupera metadados para os campos de uma declaração preparada por sqlsrv_prepare ou sqlsrv_query
    • sqlsrv_free_stmt — Libera todos os recursos para a declaração especificada
    • sqlsrv_get_config — Retorna o valor da configuração especificada
    • sqlsrv_get_field — Obtém dados do campo da linha atualmente selecionada
    • sqlsrv_has_rows — Indica se a declaração especificada possui linhas
    • sqlsrv_next_result — Torna o próximo resultado da declaração especificada ativo
    • sqlsrv_num_fields — Recupera o número de campos (colunas) em uma declaração
    • sqlsrv_num_rows — Recupera o número de linhas em um conjunto de resultados
    • sqlsrv_prepare — Prepara uma consulta para execução
    • sqlsrv_query — Prepara e executa uma consulta
    • sqlsrv_rollback — Reverte uma transação que foi iniciada com sqlsrv_begin_transaction
    • sqlsrv_rows_affected — Retorna o número de linhas modificadas pela última consulta INSERT, UPDATE ou DELETE executada
    • sqlsrv_send_stream_data — Envia dados de fluxos de parâmetros para o servidor
    • sqlsrv_server_info — Retorna informações sobre o servidor


Introdução

A extensão SQLSRV permite acessar bancos de dados Microsoft SQL Server e SQL Azure. A versão 3.0 do driver suporta o SQL Server, começando com o SQL Server 2005, incluindo o SQL Server 2012 e o SQL Server 2012 LocalDB. (Para mais informações sobre o LocalDB, consulte » Suporte do Driver PHP para SQL Server para LocalDB e » Informações sobre o SQL Server 2012 Express LocalDB.)

A extensão SQLSRV é suportada pela Microsoft e está disponível para download aqui: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx. O SQL Server 2012 LocalDB pode ser baixado aqui: » http://go.microsoft.com/fwlink/?LinkID=237665.


Dependências

A extensão SQLSRV pode ser usada nos seguintes sistemas operacionais:

  • Windows Vista Service Pack 2 ou posterior
  • Windows Server 2008 Service Pack 2 ou posterior
  • Windows Server 2008 R2
  • Windows 7

A extensão SQLSRV requer que o Microsoft SQL Server 2012 Native Client esteja instalado no mesmo computador que está executando o PHP. Se o Microsoft SQL Server 2012 Native Client ainda não estiver instalado, clique no link apropriado abaixo para baixá-lo:

  • » Baixe o pacote x86
  • » Baixe o pacote x64

O download do SQLSRV inclui 8 arquivos de driver, quatro dos quais são para suporte PDO.

A versão mais recente do driver está disponível para download aqui: » Download do SQLSRV.

Para obter mais informações sobre os requisitos do SQLSRV, consulte » Requisitos do Sistema do SQLSRV.


Instalação

A extensão SQLSRV é habilitada adicionando o arquivo DLL apropriado ao diretório de extensões do seu PHP e a entrada correspondente ao arquivo php.ini. O download do SQLSRV vem com 8 arquivos de driver, sendo quatro deles para suporte PDO.

A versão mais recente do driver está disponível para download aqui: » Download do SQLSRV.

Para obter mais informações sobre os requisitos do SQLSRV, consulte » Requisitos do Sistema SQLSRV.

Desde a versão 4.0, a extensão SQLSRV é compatível apenas com o PHP 7.0 em execução no Linux ou Windows.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

A tabela a seguir lista as opções de configuração disponíveis na extensão SQLSRV. Para obter mais informações sobre essas opções, consulte » Tratamento de Avisos e Erros do SQLSRV.

SQLSRV Opções de Configuração
Nome | Padrão | Modificável | Registro de alterações
sqlsrv.WarningsReturnAsErrors | 1 (true) | INI_ALL | Disponível desde o SQLSRV 1.0
sqlsrv.LogSubsystems | 0 | INI_ALL | Disponível desde o SQLSRV 1.0
sqlsrv.LogSeverity | 1 | INI_ALL | Disponível desde o SQLSRV 1.0


Tipos de Recurso

Recurso de Conexão

Um recurso de conexão retornado por sqlsrv_connect().

Recurso de Declaração

Um recurso de declaração retornado por sqlsrv_query() ou por sqlsrv_prepare().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SQLSRV_FETCH_ASSOC (int)
Força sqlsrv_fetch_array() a retornar um array associativo quando passado como parâmetro.
SQLSRV_FETCH_NUMERIC (int)
Força sqlsrv_fetch_array() a retornar um array numérico quando passado como parâmetro.
SQLSRV_FETCH_BOTH (int)
Força sqlsrv_fetch_array() a retornar um array com chaves associativas e numéricas quando passado como parâmetro (comportamento padrão).
SQLSRV_ERR_ALL (int)
Força sqlsrv_errors() a retornar tanto erros quanto avisos quando passado como parâmetro (comportamento padrão).
SQLSRV_ERR_ERRORS (int)
Força sqlsrv_errors() a retornar apenas erros (sem avisos) quando passado como parâmetro.
SQLSRV_ERR_WARNINGS (int)
Força sqlsrv_errors() a retornar apenas avisos (sem erros) quando passado como parâmetro.
SQLSRV_LOG_SYSTEM_ALL (int)
Ativa o registro de todos os subsistemas quando passado para sqlsrv_configure() como parâmetro.
SQLSRV_LOG_SYSTEM_CONN (int)
Ativa o registro da atividade de conexão quando passado para sqlsrv_configure() como parâmetro.
SQLSRV_LOG_SYSTEM_INIT (int)
Ativa o registro da atividade de inicialização quando passado para sqlsrv_configure() como parâmetro.
SQLSRV_LOG_SYSTEM_OFF (int)
Desativa o registro de todos os subsistemas quando passado para sqlsrv_configure() como parâmetro.
SQLSRV_LOG_SYSTEM_STMT (int)
Ativa o registro da atividade de declarações quando passado para sqlsrv_configure() como parâmetro.
SQLSRV_LOG_SYSTEM_UTIL (int)
Ativa o registro da atividade da função de erro quando passado para sqlsrv_configure() como parâmetro.
SQLSRV_LOG_SEVERITY_ALL (int)
Especifica que erros, avisos e notas serão registrados quando passado para sqlsrv_configure() como parâmetro.
SQLSRV_LOG_SEVERITY_ERROR (int)
Especifica que apenas erros serão registrados quando passado para sqlsrv_configure() como parâmetro.
SQLSRV_LOG_SEVERITY_NOTICE (int)
Especifica que as notificações serão registradas ao serem passadas para sqlsrv_configure() como parâmetro.
SQLSRV_LOG_SEVERITY_WARNING (int)
Especifica que os avisos serão registrados ao serem passados para sqlsrv_configure() como parâmetro.
SQLSRV_NULLABLE_YES (int)
Indica que uma coluna é nula.
SQLSRV_NULLABLE_NO (int)
Indica que uma coluna não é nula.
SQLSRV_NULLABLE_UNKNOWN (int)
Indica que não se sabe se uma coluna é nula.
SQLSRV_PARAM_IN (int)
Indica um parâmetro de entrada ao ser passado para sqlsrv_query() ou sqlsrv_prepare().
SQLSRV_PARAM_INOUT (int)
Indica um parâmetro bidirecional ao ser passado para sqlsrv_query() ou sqlsrv_prepare().
SQLSRV_PARAM_OUT (int)
Indica um parâmetro de saída ao ser passado para sqlsrv_query() ou sqlsrv_prepare().
SQLSRV_PHPTYPE_INT (int)
Especifica um tipo de dados inteiro PHP. Para informações de uso, consulte » Como: Especificar Tipos PHP.
SQLSRV_PHPTYPE_DATETIME (int)
Especifica um tipo de dados de data e hora PHP. Para informações de uso, consulte » Como: Especificar Tipos PHP.
SQLSRV_PHPTYPE_FLOAT (int)
Especifica um tipo de dados de ponto flutuante PHP. Para informações de uso, consulte » Como: Especificar Tipos PHP.
SQLSRV_PHPTYPE_STREAM (int)
Especifica um fluxo PHP. Esta constante funciona como uma função e aceita uma constante de codificação. Consulte as constantes SQLSRV_ENC_*. Para informações de uso, consulte » Como: Especificar Tipos PHP.
SQLSRV_PHPTYPE_STRING (int)
Especifica um tipo de dados de string PHP. Esta constante funciona como uma função e aceita uma constante de codificação. Consulte as constantes SQLSRV_ENC_*. Para informações de uso, consulte » Como: Especificar Tipos PHP.
SQLSRV_ENC_BINARY (int)
Especifica que os dados são retornados como um fluxo de bytes bruto do servidor sem realizar codificação ou tradução. Para informações de uso, consulte » Como: Especificar Tipos PHP.
SQLSRV_ENC_CHAR (int)
Os dados são retornados em caracteres de 8 bits conforme especificado na página de código da localidade do Windows que está configurada no sistema. Qualquer caractere multibyte ou caracteres que não sejam mapeados nesta página de código são substituídos por um caractere de ponto de interrogação (?) de um byte. Esta é a codificação padrão. Para informações de uso, consulte » Como: Especificar Tipos PHP.
UTF-8 (int)
Especifica que os dados são retornados com codificação UTF-8. Para informações de uso, consulte » Como: Especificar Tipos PHP.
SQLSRV_SQLTYPE_BIGINT (int)
Descreve o tipo de dados bigint do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_BINARY (int)
Descreve o tipo de dados binary do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_BIT (int)
Descreve o tipo de dados bit do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_CHAR (int)
Descreve o tipo de dados char do SQL Server. Esta constante funciona como uma função e aceita um parâmetro indicando o número de caracteres. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_DATE (int)
Descreve o tipo de dados date do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_DATETIME (int)
Descreve o tipo de dados datetime do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_DATETIME2 (int)
Descreve o tipo de dados datetime2 do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_DATETIMEOFFSET (int)
Descreve o tipo de dados datetimeoffset do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_DECIMAL (int)
Descreve o tipo de dados decimal do SQL Server. Esta constante funciona como uma função e aceita dois parâmetros indicando (na ordem) precisão e escala. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_FLOAT (int)
Descreve o tipo de dados float do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_IMAGE (int)
Descreve o tipo de dados image do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_INT (int)
Descreve o tipo de dados int do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_MONEY (int)
Descreve o tipo de dados money do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_NCHAR (int)
Descreve o tipo de dados nchar do SQL Server. Esta constante funciona como uma função e aceita um único parâmetro indicando a contagem de caracteres. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_NUMERIC (int)
Descreve o tipo de dados numeric do SQL Server. Esta constante funciona como uma função e aceita dois parâmetros indicando (na ordem) precisão e escala. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_NVARCHAR (int)
Descreve o tipo de dados nvarchar do SQL Server. Esta constante funciona como uma função e aceita um único parâmetro indicando a contagem de caracteres. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_NVARCHAR('max') (int)
Descreve o tipo de dados nvarchar(MAX) do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_NTEXT (int)
Descreve o tipo de dados ntext do SQL Server. Para informações de uso, consulte » Como Especificar Tipos SQL.
SQLSRV_SQLTYPE_REAL (int)
Descreve o tipo de dados real do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_SMALLDATETIME (int)
Descreve o tipo de dados smalldatetime do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_SMALLINT (int)
Descreve o tipo de dados smallint do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_SMALLMONEY (int)
Descreve o tipo de dados smallmoney do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_TEXT (int)
Descreve o tipo de dados text do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_TIME (int)
Descreve o tipo de dados time do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_TIMESTAMP (int)
Descreve o tipo de dados timestamp do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_TINYINT (int)
Descreve o tipo de dados tinyint do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER (int)
Descreve o tipo de dados uniqueidentifier do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_UDT (int)
Descreve o tipo de dados UDT do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_VARBINARY (int)
Descreve o tipo de dados varbinary do SQL Server. Esta constante funciona como uma função e aceita um único parâmetro indicando a contagem de bytes. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_VARBINARY('max') (int)
Descreve o tipo de dados varbinary(MAX) do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_VARCHAR (int)
Descreve o tipo de dados varchar do SQL Server. Esta constante funciona como uma função e aceita um único parâmetro indicando a contagem de caracteres. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_VARCHAR('max') (int)
Descreve o tipo de dados varchar(MAX) do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_SQLTYPE_XML (int)
Descreve o tipo de dados XML do SQL Server. Para informações de uso, consulte » Como: Especificar Tipos SQL.
SQLSRV_TXN_READ_UNCOMMITTED (int)
Indica um nível de isolamento de transação de LEITURA NÃO COMPROMETIDA. Este valor é usado para definir o nível de TransactionIsolation no array $connectionOptions passado para sqlsrv_connect().
SQLSRV_TXN_READ_COMMITTED (int)
Indica um nível de isolamento de transação de LEITURA COMPROMETIDA. Este valor é usado para definir o nível de TransactionIsolation no array $connectionOptions passado para sqlsrv_connect().
SQLSRV_TXN_REPEATABLE_READ (int)
Indica um nível de isolamento de transação de LEITURA REPETÍVEL. Este valor é usado para definir o nível de TransactionIsolation no array $connectionOptions passado para sqlsrv_connect().
SQLSRV_TXN_SNAPSHOT (int)
Indica um nível de isolamento de transação de SNAPSHOT. Este valor é usado para definir o nível de TransactionIsolation no array $connectionOptions passado para sqlsrv_connect().
SQLSRV_TXN_READ_SERIALIZABLE (int)
Indica um nível de isolamento de transação de SERIALIZÁVEL. Este valor é usado para definir o nível de TransactionIsolation no array $connectionOptions passado para sqlsrv_connect().
SQLSRV_CURSOR_FORWARD (int)
Indica um cursor somente para frente. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.
SQLSRV_CURSOR_STATIC (int)
Indica um cursor estático. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.
SQLSRV_CURSOR_DYNAMIC (int)
Indica um cursor dinâmico. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.
SQLSRV_CURSOR_KEYSET (int)
Indica um cursor de conjunto de chaves. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.
SQLSRV_CURSOR_BUFFERED (int)
Cria uma consulta de cursor do lado do cliente. Permite que você acesse linhas em qualquer ordem. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.
SQLSRV_SCROLL_NEXT (int)
Especifica qual linha selecionar em um conjunto de resultados. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.
SQLSRV_SCROLL_PRIOR (int)
Especifica qual linha selecionar em um conjunto de resultados. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.
SQLSRV_SCROLL_FIRST (int)
Especifica qual linha selecionar em um conjunto de resultados. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.
SQLSRV_SCROLL_LAST (int)
Especifica qual linha selecionar em um conjunto de resultados. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.
SQLSRV_SCROLL_ABSOLUTE (int)
Especifica qual linha selecionar em um conjunto de resultados. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.
SQLSRV_SCROLL_RELATIVE (int)
Especifica qual linha selecionar em um conjunto de resultados. Para informações de uso, consulte » Especificando um Tipo de Cursor e Selecionando Linhas.


Funções SQLSRV

Índice

  • sqlsrv_begin_transaction — Inicia uma transação de banco de dados
  • sqlsrv_cancel — Cancela uma declaração
  • sqlsrv_client_info — Retorna informações sobre o cliente e a conexão especificada
  • sqlsrv_close — Fecha uma conexão aberta e libera os recursos associados à conexão
  • sqlsrv_commit — Confirma uma transação que foi iniciada com sqlsrv_begin_transaction
  • sqlsrv_configure — Altera as configurações de tratamento de erros e registro do driver
  • sqlsrv_connect — Abre uma conexão com um banco de dados Microsoft SQL Server
  • sqlsrv_errors — Retorna informações de erro e aviso sobre a última operação SQLSRV executada
  • sqlsrv_execute — Executa uma declaração preparada com sqlsrv_prepare
  • sqlsrv_fetch_array — Retorna uma linha como um array
  • sqlsrv_fetch_object — Recupera a próxima linha de dados em um conjunto de resultados como um objeto
  • sqlsrv_fetch — Torna a próxima linha em um conjunto de resultados disponível para leitura
  • sqlsrv_field_metadata — Recupera metadados para os campos de uma declaração preparada por sqlsrv_prepare ou sqlsrv_query
  • sqlsrv_free_stmt — Libera todos os recursos para a declaração especificada
  • sqlsrv_get_config — Retorna o valor da configuração especificada
  • sqlsrv_get_field — Obtém dados do campo da linha atualmente selecionada
  • sqlsrv_has_rows — Indica se a declaração especificada possui linhas
  • sqlsrv_next_result — Torna o próximo resultado da declaração especificada ativo
  • sqlsrv_num_fields — Recupera o número de campos (colunas) em uma declaração
  • sqlsrv_num_rows — Recupera o número de linhas em um conjunto de resultados
  • sqlsrv_prepare — Prepara uma consulta para execução
  • sqlsrv_query — Prepara e executa uma consulta
  • sqlsrv_rollback — Reverte uma transação que foi iniciada com sqlsrv_begin_transaction
  • sqlsrv_rows_affected — Retorna o número de linhas modificadas pela última consulta INSERT, UPDATE ou DELETE executada
  • sqlsrv_send_stream_data — Envia dados de fluxos de parâmetros para o servidor
  • sqlsrv_server_info — Retorna informações sobre o servidor


Inicia uma transação de banco de dados

  • « Funções SQLSRV
  • sqlsrv_cancel »
  • PHP Manual
  • Funções SQLSRV
  • Inicia uma transação de banco de dados

sqlsrv_begin_transaction

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_begin_transaction — Inicia uma transação de banco de dados

Descrição

sqlsrv_begin_transaction(resource $conn): bool

A transação iniciada por sqlsrv_begin_transaction() inclui todas as instruções que foram executadas após a chamada para sqlsrv_begin_transaction() e antes das chamadas para sqlsrv_rollback() ou sqlsrv_commit(). Transações explícitas devem ser iniciadas e confirmadas ou revertidas usando essas funções em vez de executar instruções SQL que iniciam e confirmam/revertem transações. Para mais informações, consulte » Transações SQLSRV.

Parâmetros

conn

O recurso de conexão retornado por uma chamada para sqlsrv_connect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de sqlsrv_begin_transaction()

O seguinte exemplo demonstra como usar sqlsrv_begin_transaction() junto com sqlsrv_commit() e sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true ));
}

/* Inicia a transação. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
die( print_r( sqlsrv_errors(), true ));
}

/* Inicializa os valores dos parâmetros. */
$orderId = 1; $qty = 10; $productId = 100;

/* Configura e executa a primeira consulta. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Configura e executa a segunda consulta. */
$sql2 = "UPDATE InventoryTable
SET Quantity = (Quantity - ?)
WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* Se ambas as consultas forem bem-sucedidas, confirma a transação. */
/* Caso contrário, reverte a transação. */
if( $stmt1 && $stmt2 ) {
sqlsrv_commit( $conn );
echo "Transaction committed.<br />";
} else {
sqlsrv_rollback( $conn );
echo "Transaction rolled back.<br />";
}
?>

O exemplo acima produzirá algo semelhante a:

Veja Também

  • sqlsrv_commit() - Confirma uma transação que foi iniciada com sqlsrv_begin_transaction
  • sqlsrv_rollback() - Reverte uma transação que foi iniciada com sqlsrv_begin_transaction


Cancela uma declaração

  • « sqlsrv_begin_transaction
  • sqlsrv_client_info »
  • PHP Manual
  • Funções SQLSRV
  • Cancela uma declaração

sqlsrv_cancel

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_cancel — Cancela uma declaração

Descrição

sqlsrv_cancel(resource $stmt): bool

Cancela uma declaração. Quaisquer resultados associados à declaração que não tenham sido consumidos são excluídos. Depois que sqlsrv_cancel() for chamado, a declaração especificada pode ser reexecutada se tiver sido criada com sqlsrv_prepare(). Chamar sqlsrv_cancel() não é necessário se todos os resultados associados à declaração tiverem sido consumidos.

Parâmetros

stmt

O recurso de declaração a ser cancelado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de sqlsrv_cancel()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Sales FROM Table_1";

$stmt = sqlsrv_prepare( $conn, $sql);

if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}

if( sqlsrv_execute( $stmt ) === false) {
die( print_r( sqlsrv_errors(), true));
}

$salesTotal = 0;
$count = 0;

while( ($row = sqlsrv_fetch_array( $stmt)) && $salesTotal <=100000)
{
$qty = $row[0];
$price = $row[1];
$salesTotal += ( $price * $qty);
$count++;
}

echo "$count sales accounted for the first $$salesTotal in revenue.<br />";

// Cancela os resultados pendentes. A declaração pode ser reutilizada.
sqlsrv_cancel( $stmt);
?>

Notas

A principal diferença entre sqlsrv_cancel() e sqlsrv_free_stmt() é que um recurso de declaração cancelado com sqlsrv_cancel() pode ser reexecutado se tiver sido criado com sqlsrv_prepare(). Um recurso de declaração cancelado com sqlsrv_free_statement() não pode ser reexecutado.

Veja Também

  • sqlsrv_free_stmt() - Libera todos os recursos para a declaração especificada
  • sqlsrv_prepare() - Prepara uma consulta para execução


Retorna informações sobre o cliente e a conexão especificada

  • « sqlsrv_cancel
  • sqlsrv_close »
  • PHP Manual
  • Funções SQLSRV
  • Retorna informações sobre o cliente e a conexão especificada

sqlsrv_client_info

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_client_info — Retorna informações sobre o cliente e a conexão especificada

Descrição

sqlsrv_client_info(resource $conn): array

Retorna informações sobre o cliente e a conexão especificada

Parâmetros

conn

A conexão sobre a qual as informações são retornadas.

Valor Retornado

Retorna um array associativo com chaves descritas na tabela abaixo. Retorna false caso contrário.

Array retornado por sqlsrv_client_info
Chave | Descrição
DriverDllName | SQLNCLI10.DLL
DriverODBCVer | Versão ODBC (xx.yy)
DriverVer | Versão do DLL do SQL Server Native Client (10.5.xxx)
ExtensionVer | Versão do php_sqlsrv.dll (2.0.xxx.x)

Exemplos

Exemplo #1 Exemplo de sqlsrv_client_info()

<?php
$serverName = "serverName\sqlexpress";
$connOptions = array("UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connOptions );

if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

if( $client_info = sqlsrv_client_info( $conn)) {
foreach( $client_info as $key => $value) {
echo $key.": ".$value."<br />";
}
} else {
echo "Error in retrieving client info.<br />";
}
?>

Veja Também

  • sqlsrv_server_info() - Retorna informações sobre o servidor


Fecha uma conexão aberta e libera os recursos associados à conexão

  • « sqlsrv_client_info
  • sqlsrv_commit »
  • PHP Manual
  • Funções SQLSRV
  • Fecha uma conexão aberta e libera os recursos associados à conexão

sqlsrv_close

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_close — Fecha uma conexão aberta e libera os recursos associados à conexão

Descrição

sqlsrv_close(resource $conn): bool

Fecha uma conexão aberta e libera os recursos associados à conexão.

Parâmetros

conn

A conexão a ser fechada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de sqlsrv_close()

<?php
$serverName = "serverName\sqlexpres";
$connOptions = array("UID"=>"username", "PWD"=>"password", "Database"=>"dbname");
$conn = sqlsrv_connect( $serverName, $connOptions );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

//-------------------------------------
// Execute operações de banco de dados aqui.
//-------------------------------------

// Fecha a conexão.
sqlsrv_close( $conn );
?>

Veja Também

  • sqlsrv_connect() - Abre uma conexão com um banco de dados Microsoft SQL Server


Confirma uma transação que foi iniciada com sqlsrv_begin_transaction

  • « sqlsrv_close
  • sqlsrv_configure »
  • PHP Manual
  • Funções SQLSRV
  • Confirma uma transação que foi iniciada com sqlsrv_begin_transaction

sqlsrv_commit

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_commit — Confirma uma transação que foi iniciada com sqlsrv_begin_transaction()

Descrição

sqlsrv_commit(resource $conn): bool

Confirma uma transação que foi iniciada com sqlsrv_begin_transaction(). A conexão é retornada ao modo de auto-commit após a chamada de sqlsrv_commit(). A transação que é confirmada inclui todas as declarações que foram executadas após a chamada para sqlsrv_begin_transaction(). Transações explícitas devem ser iniciadas e confirmadas ou revertidas usando essas funções em vez de executar declarações SQL que iniciam e confirmam/revertem transações. Para mais informações, consulte » Transações SQLSRV.

Parâmetros

conn

A conexão na qual a transação será confirmada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de sqlsrv_commit()

O exemplo a seguir demonstra como usar sqlsrv_commit() juntamente com sqlsrv_begin_transaction() e sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true ));
}

/* Inicia a transação. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
die( print_r( sqlsrv_errors(), true ));
}

/* Inicializa os valores dos parâmetros. */
$orderId = 1; $qty = 10; $productId = 100;

/* Configura e executa a primeira consulta. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Configura e executa a segunda consulta. */
$sql2 = "UPDATE InventoryTable
SET Quantity = (Quantity - ?)
WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* Se ambas as consultas forem bem-sucedidas, confirma a transação. */
/* Caso contrário, reverte a transação. */
if( $stmt1 && $stmt2 ) {
sqlsrv_commit( $conn );
echo "Transaction committed.<br />";
} else {
sqlsrv_rollback( $conn );
echo "Transaction rolled back.<br />";
}
?>

Veja Também

  • sqlsrv_begin_transaction() - Inicia uma transação de banco de dados
  • sqlsrv_rollback() - Reverte uma transação que foi iniciada com sqlsrv_begin_transaction


Altera as configurações de tratamento de erros e registro do driver

  • « sqlsrv_commit
  • sqlsrv_connect »
  • PHP Manual
  • Funções SQLSRV
  • Altera as configurações de tratamento de erros e registro do driver

sqlsrv_configure

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_configure — Altera as configurações de tratamento de erros e registro do driver

Descrição

sqlsrv_configure(string $setting, mixed $value): bool

Altera as configurações de tratamento de erros e registro do driver.

Parâmetros

setting

O nome da configuração a ser definida. Os valores possíveis são "WarningsReturnAsErrors", "LogSubsystems" e "LogSeverity".

value

O valor da configuração especificada. A tabela a seguir mostra os valores possíveis:

Opções de Configuração de Erro e Registro
Configuração | Opções
WarningsReturnAsErrors | 1 (true) or 0 (false)
LogSubsystems | SQLSRV_LOG_SYSTEM_ALL (-1) SQLSRV_LOG_SYSTEM_CONN (2) SQLSRV_LOG_SYSTEM_INIT (1) SQLSRV_LOG_SYSTEM_OFF (0) SQLSRV_LOG_SYSTEM_STMT (4) SQLSRV_LOG_SYSTEM_UTIL (8)
LogSeverity | SQLSRV_LOG_SEVERITY_ALL (-1) SQLSRV_LOG_SEVERITY_ERROR (1) SQLSRV_LOG_SEVERITY_NOTICE (4) SQLSRV_LOG_SEVERITY_WARNING (2)

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • » SQLSRV Error Handling.
  • » Logging SQLSRV Activity.


Abre uma conexão com um banco de dados Microsoft SQL Server

  • « sqlsrv_configure
  • sqlsrv_errors »
  • PHP Manual
  • Funções SQLSRV
  • Abre uma conexão com um banco de dados Microsoft SQL Server

sqlsrv_connect

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_connect — Abre uma conexão com um banco de dados Microsoft SQL Server

Descrição

sqlsrv_connect(string $serverName, array $connectionInfo = ?): resource

Abre uma conexão com um banco de dados Microsoft SQL Server. Por padrão, a conexão é tentada usando a Autenticação do Windows. Para conectar usando Autenticação do SQL Server, inclua "UID" e "PWD" no array de opções de conexão.

Parâmetros

serverName

O nome do servidor ao qual uma conexão é estabelecida. Para conectar a uma instância específica, siga o nome do servidor com uma barra invertida e o nome da instância (por exemplo, serverName\sqlexpress).

connectionInfo

Um array associativo que especifica opções para conectar ao servidor. Se os valores para as chaves UID e PWD não forem especificados, a conexão será tentada usando a Autenticação do Windows. Para uma lista completa de chaves suportadas, consulte » Opções de Conexão SQLSRV.

Valor Retornado

Um recurso de conexão. Se uma conexão não puder ser aberta com sucesso, false é retornado.

Exemplos

Exemplo #1 Conectar usando Autenticação do Windows.

<?php
$serverName = "serverName\\sqlexpress"; //serverName\instanceName

// Como UID e PWD não são especificados no array $connectionInfo,
// A conexão será tentada usando a Autenticação do Windows.
$connectionInfo = array( "Database"=>"dbName");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>

Exemplo #2 Conectar especificando um nome de usuário e senha.

<?php
$serverName = "serverName\\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>

Exemplo #3 Conectar em uma porta expecífica.

<?php
$serverName = "serverName\\sqlexpress, 1542"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>

Notas

Por padrão, o sqlsrv_connect() usa pooling de conexão para melhorar o desempenho da conexão. Para desativar o pooling de conexão (ou seja, forçar uma nova conexão em cada chamada), defina a opção "ConnectionPooling" no array $connectionOptions para 0 (ou false). Para mais informações, consulte » Pooling de Conexão SQLSRV.

A extensão SQLSRV não possui uma função dedicada para alterar qual banco de dados está conectado. O banco de dados de destino é especificado no array $connectionOptions que é passado para sqlsrv_connect. Para alterar o banco de dados em uma conexão aberta, execute a seguinte consulta "USE dbName" (por exemplo, sqlsrv_query($conn, "USE dbName")).

Veja Também

  • sqlsrv_close() - Fecha uma conexão aberta e libera os recursos associados à conexão
  • sqlsrv_errors() - Retorna informações de erro e aviso sobre a última operação SQLSRV executada
  • sqlsrv_query() - Prepara e executa uma consulta


Retorna informações de erro e aviso sobre a última operação SQLSRV executada

  • « sqlsrv_connect
  • sqlsrv_execute »
  • PHP Manual
  • Funções SQLSRV
  • Retorna informações de erro e aviso sobre a última operação SQLSRV executada

sqlsrv_errors

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_errors — Retorna informações de erro e aviso sobre a última operação SQLSRV executada

Descrição

sqlsrv_errors(int $errorsOrWarnings = ?): mixed

Retorna informações de erro e aviso sobre a última operação SQLSRV executada.

Parâmetros

errorsOrWarnings

Determina se informações de erro, aviso ou ambos são retornados. Se este parâmetro não for fornecido, tanto as informações de erro quanto de aviso serão retornadas. Os seguintes são os valores suportados para este parâmetro: SQLSRV_ERR_ALL, SQLSRV_ERR_ERRORS, SQLSRV_ERR_WARNINGS.

Valor Retornado

Se ocorrerem erros e/ou avisos na última operação sqlsrv, um array de arrays contendo informações de erro é retornado. Se não houver erros e/ou avisos na última operação sqlsrv, é retornado null. A tabela a seguir descreve a estrutura dos arrays retornados:

Array retornado por sqlsrv_errors
Chave | Descrição
SQLSTATE | Para erros que se originam do driver ODBC, o SQLSTATE retornado pelo ODBC. Para erros que se originam dos Drivers da Microsoft para PHP para SQL Server, um SQLSTATE de IMSSP. Para avisos que se originam dos Drivers da Microsoft para PHP para SQL Server, um SQLSTATE de 01SSP.
code | Para erros que se originam do SQL Server, o código de erro nativo do SQL Server. Para erros que se originam do driver ODBC, o código de erro retornado pelo ODBC. Para erros que se originam dos Drivers da Microsoft para PHP para SQL Server, o código de erro dos Drivers da Microsoft para PHP para SQL Server.
message | Uma descrição do erro.

Exemplos

Exemplo #1 Exemplo de functionname()

<?php
$serverName = "serverName/sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

/* Configura uma consulta para selecionar um nome de coluna inválido. */
$sql = "SELECT BadColumnName FROM Table_1";

/* A execução da consulta falhará devido ao nome da coluna ruim. */
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false ) {
if( ($errors = sqlsrv_errors() ) != null) {
foreach( $errors as $error ) {
echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
echo "code: ".$error[ 'code']."<br />";
echo "message: ".$error[ 'message']."<br />";
}
}
}
?>

Notas

Por padrão, avisos gerados em uma chamada a qualquer função SQLSRV são tratados como erros. Isso significa que se um aviso ocorrer em uma chamada para uma função SQLSRV, a função retorna false. No entanto, avisos que correspondem a valores SQLSTATE 01000, 01001, 01003 e 01S02 nunca são tratados como erros. Para informações sobre como alterar esse comportamento, consulte sqlsrv_configure() e a configuração WarningsReturnAsErrors.

Veja Também

  • sqlsrv_configure() - Altera as configurações de tratamento de erros e registro do driver


Executa uma declaração preparada com sqlsrv_prepare

  • « sqlsrv_errors
  • sqlsrv_fetch_array »
  • PHP Manual
  • Funções SQLSRV
  • Executa uma declaração preparada com sqlsrv_prepare

sqlsrv_execute

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_execute — Executa uma declaração preparada com sqlsrv_prepare()

Descrição

sqlsrv_execute(resource $stmt): bool

Executa uma declaração preparada com sqlsrv_prepare(). Esta função é ideal para executar uma declaração preparada várias vezes com diferentes valores de parâmetro.

Parâmetros

stmt

Um recurso de declaração retornado por sqlsrv_prepare().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de sqlsrv_execute()

Este exemplo demonstra como preparar uma declaração com sqlsrv_prepare() e reexecutá-la várias vezes (com diferentes valores de parâmetro) usando sqlsrv_execute().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1
SET OrderQty = ?
WHERE SalesOrderID = ?";

// Inicializa parâmetros e prepara a declaração.
// Variáveis $qty e $id estão vinculadas à declaração, $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
die( print_r( sqlsrv_errors(), true));
}

// Configura as informações SalesOrderDetailID e OrderQty.
// Este array mapeia o ID do pedido para a quantidade do pedido em pares chave=>valor.
$orders = array( 1=>10, 2=>20, 3=>30);

// Executa a declaração para cada pedido.
foreach( $orders as $id => $qty) {
// Porque $id e $qty estão vinculados a $stmt1, seus valores atualizados
// são usados com cada execução da declaração.
if( sqlsrv_execute( $stmt ) === false ) {
die( print_r( sqlsrv_errors(), true));
}
}
?>

Notas

Quando você prepara uma declaração que usa variáveis como parâmetros, as variáveis são vinculadas à declaração. Isso significa que se você atualizar os valores das variáveis, na próxima vez que executar a declaração, ela será executada com valores de parâmetro atualizados. Para declarações que você planeja executar apenas uma vez, use sqlsrv_query().

Veja Também

  • sqlsrv_prepare() - Prepara uma consulta para execução
  • sqlsrv_query() - Prepara e executa uma consulta


Retorna uma linha como um array

  • « sqlsrv_execute
  • sqlsrv_fetch_object »
  • PHP Manual
  • Funções SQLSRV
  • Retorna uma linha como um array

sqlsrv_fetch_array

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_fetch_array — Retorna uma linha como um array

Descrição

sqlsrv_fetch_array(
resource $stmt,
int $fetchType = ?,
int $row = ?,
int $offset = ?
): array

Retorna a próxima linha disponível de dados como um array associativo, um array numérico ou ambos (o padrão).

Parâmetros

stmt

Um recurso de declaração retornado por sqlsrv_query ou sqlsrv_prepare.

fetchType

Uma constante predefinida especificando o tipo de array a ser retornado. Valores possíveis são SQLSRV_FETCH_ASSOC, SQLSRV_FETCH_NUMERIC e SQLSRV_FETCH_BOTH (o padrão).

Um tipo de busca de SQLSRV_FETCH_ASSOC não deve ser usado ao consumir um conjunto de resultados com várias colunas do mesmo nome.

row

Especifica a linha a ser acessada em um conjunto de resultados que usa um cursor rolável. Os valores possíveis são SQLSRV_SCROLL_NEXT, SQLSRV_SCROLL_PRIOR, SQLSRV_SCROLL_FIRST, SQLSRV_SCROLL_LAST, SQLSRV_SCROLL_ABSOLUTE e, SQLSRV_SCROLL_RELATIVE (o padrão). Quando este parâmetro é especificado, o fetchType deve ser definido explicitamente.

offset

Especifica a linha a ser acessada se o parâmetro row for definido como SQLSRV_SCROLL_ABSOLUTE ou SQLSRV_SCROLL_RELATIVE. Observe que a primeira linha em um conjunto de resultados tem índice 0.

Valor Retornado

Retorna um array em caso de sucesso, null se não houver mais linhas para retornar, e false se ocorrer um erro.

Exemplos

Exemplo #1 Recuperando um array associativo.

<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
echo $row['LastName'].", ".$row['FirstName']."<br />";
}

sqlsrv_free_stmt( $stmt);
?>

Exemplo #2 Recuperando um array numérico.

<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
echo $row[0].", ".$row[1]."<br />";
}

sqlsrv_free_stmt( $stmt);
?>

Notas

Não especificar o fetchType ou usar explicitamente o SQLSRV_FETCH_TYPE constante nos exemplos acima retornará um array que possui chaves associativas e numéricas.

Se mais de uma coluna for retornada com o mesmo nome, a última coluna terá precedência. Para evitar colisões de nomes de campo, use aliases.

Se uma coluna sem nome for retornada, a chave associativa para o elemento do array será uma string vazia ("").

Veja Também

  • sqlsrv_connect() - Abre uma conexão com um banco de dados Microsoft SQL Server
  • sqlsrv_query() - Prepara e executa uma consulta
  • sqlsrv_errors() - Retorna informações de erro e aviso sobre a última operação SQLSRV executada
  • sqlsrv_fetch() - Torna a próxima linha em um conjunto de resultados disponível para leitura


Recupera a próxima linha de dados em um conjunto de resultados como um objeto

  • « sqlsrv_fetch_array
  • sqlsrv_fetch »
  • PHP Manual
  • Funções SQLSRV
  • Recupera a próxima linha de dados em um conjunto de resultados como um objeto

sqlsrv_fetch_object

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_fetch_object — Recupera a próxima linha de dados em um conjunto de resultados como um objeto

Descrição

sqlsrv_fetch_object(
resource $stmt,
string $className = ?,
array $ctorParams = ?,
int $row = ?,
int $offset = ?
): mixed

Recupera a próxima linha de dados em um conjunto de resultados como uma instância da classe especificada com propriedades que correspondem aos nomes dos campos da linha e valores que correspondem aos valores dos campos da linha.

Parâmetros

stmt

Um recurso de declaração criado por sqlsrv_query() ou sqlsrv_execute().

className

O nome da classe a ser instanciada. Se nenhum nome de classe for especificado, stdClass é instanciado.

ctorParams

Valores passados para o construtor da classe especificada. Se o construtor da classe especificada aceitar parâmetros, o array ctorParams deve ser fornecido.

row

A linha a ser acessada. Este parâmetro só pode ser usado se a declaração especificada foi preparada com um cursor rolável. Nesse caso, esse parâmetro pode assumir um dos seguintes valores:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Especifica a linha a ser acessada se o parâmetro row for definido como SQLSRV_SCROLL_ABSOLUTE ou SQLSRV_SCROLL_RELATIVE. Observe que a primeira linha em um conjunto de resultados tem índice 0.

Valor Retornado

Retorna um objeto em caso de sucesso, null se não houver mais linhas para retornar, e false se ocorrer um erro ou se a classe especificada não existir.

Exemplos

Exemplo #1 Exemplo de sqlsrv_fetch_object()

O exemplo a seguir demonstra como recuperar uma linha como um objeto stdClass.

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT fName, lName FROM Table_1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}

// Recupera cada linha como um objeto.
// Como nenhum nome de classe é especificado, cada linha será recuperada como um objeto stdClass.
// Os nomes das propriedades correspondem aos nomes dos campos.
while( $obj = sqlsrv_fetch_object( $stmt)) {
echo $obj->fName.", ".$obj->lName."<br />";
}
?>

Notas

Se um nome de classe for especificado com o parâmetro opcional $className e a classe tiver propriedades cujos nomes correspondam aos nomes dos campos do conjunto de resultados, os valores do conjunto de resultados correspondentes são aplicados às propriedades. Se um nome de campo do conjunto de resultados não corresponder a uma propriedade da classe, uma propriedade com o nome do campo do conjunto de resultados é adicionada ao objeto e o valor do conjunto de resultados é aplicado à propriedade. As seguintes regras se aplicam ao usar o parâmetro $className:

  • A correspondência entre nome de campo e propriedade é sensível a maiúsculas e minúsculas.
  • A correspondência entre nome de campo e propriedade ocorre independentemente dos modificadores de acesso.
  • Os tipos de dados da propriedade da classe são ignorados ao aplicar um valor de campo a uma propriedade.
  • Se a classe não existir, a função retorna false e adiciona um erro à coleção de erros.
Independentemente de o parâmetro $className ser fornecido ou não, se um campo sem nome for retornado, o valor do campo será ignorado e um aviso será adicionado à coleção de erros.

Ao consumir um conjunto de resultados que tenha várias colunas com o mesmo nome, pode ser melhor usar sqlsrv_fetch_array() ou a combinação de sqlsrv_fetch() e sqlsrv_get_field().

Veja Também

  • sqlsrv_fetch() - Torna a próxima linha em um conjunto de resultados disponível para leitura
  • sqlsrv_fetch_array() - Retorna uma linha como um array


Torna a próxima linha em um conjunto de resultados disponível para leitura

  • « sqlsrv_fetch_object
  • sqlsrv_field_metadata »
  • PHP Manual
  • Funções SQLSRV
  • Torna a próxima linha em um conjunto de resultados disponível para leitura

sqlsrv_fetch

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_fetch — Torna a próxima linha em um conjunto de resultados disponível para leitura

Descrição

sqlsrv_fetch(resource $stmt, int $row = ?, int $offset = ?): mixed

Torna a próxima linha em um conjunto de resultados disponível para leitura. Use sqlsrv_get_field() para ler os campos da linha.

Parâmetros

stmt

Um recurso de declaração criado executando sqlsrv_query() ou sqlsrv_execute().

row

A linha a ser acessada. Este parâmetro só pode ser usado se a declaração especificada foi preparada com um cursor rolável. Nesse caso, esse parâmetro pode assumir um dos seguintes valores:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Especifica a linha a ser acessada se o parâmetro row for definido como SQLSRV_SCROLL_ABSOLUTE ou SQLSRV_SCROLL_RELATIVE. Observe que a primeira linha em um conjunto de resultados tem índice 0.

Valor Retornado

Retorna true se a próxima linha de um conjunto de resultados for recuperada com sucesso, false se ocorrer um erro e null se não houver mais linhas no conjunto de resultados.

Exemplos

Exemplo #1 Exemplo de sqlsrv_fetch()

O exemplo a seguir demonstra como recuperar uma linha com sqlsrv_fetch() e obter os campos da linha com sqlsrv_get_field().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Name, Comment
FROM Table_1
WHERE ReviewID=1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}

// Torna a primeira (e neste caso, única) linha do conjunto de resultados disponível para leitura.
if( sqlsrv_fetch( $stmt ) === false) {
die( print_r( sqlsrv_errors(), true));
}

// Obter os campos da linha. Os índices dos campos começam em 0 e devem ser recuperados na ordem.
// A recuperação de campos da linha pelo nome não é suportada por sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Veja Também

  • sqlsrv_get_field() - Obtém dados do campo da linha atualmente selecionada
  • sqlsrv_fetch_array() - Retorna uma linha como um array
  • sqlsrv_fetch_object() - Recupera a próxima linha de dados em um conjunto de resultados como um objeto


Recupera metadados para os campos de uma declaração preparada por sqlsrv_prepare ou sqlsrv_query

  • « sqlsrv_fetch
  • sqlsrv_free_stmt »
  • PHP Manual
  • Funções SQLSRV
  • Recupera metadados para os campos de uma declaração preparada por sqlsrv_prepare ou sqlsrv_query

sqlsrv_field_metadata

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_field_metadata — Recupera metadados para os campos de uma declaração preparada por sqlsrv_prepare() ou sqlsrv_query()

Descrição

sqlsrv_field_metadata(resource $stmt): mixed

Recupera metadados para os campos de uma declaração preparada por sqlsrv_prepare() ou sqlsrv_query(). sqlsrv_field_metadata() pode ser chamado em uma declaração antes ou depois da execução da declaração.

Parâmetros

stmt

O recurso de declaração para o qual os metadados são retornados.

Valor Retornado

Retorna um array de arrays em caso de sucesso. Caso contrário, é retornado false. Cada array retornado é descrito pela seguinte tabela:

Array retornado por sqlsrv_field_metadata
Chave | Descrição
Name | O nome do campo.
Type | O valor numérico para o tipo SQL.
Size | O número de caracteres para campos de tipo caractere, o número de bytes para campos de tipo binário, ou null para outros tipos.
Precision | A precisão para tipos de precisão variável, null para outros tipos.
Scale | A escala para tipos de escala variável, null para outros tipos.
Nullable | Uma enumeração indicando se a coluna é nula, não nula, ou se não é conhecida.
Para mais informações, consulte » sqlsrv_field_metadata na documentação do Microsoft SQLSRV.

Exemplos

Exemplo #1 Exemplo de sqlsrv_field_metadata()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"AdventureWorks", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT * FROM Table_1";
$stmt = sqlsrv_prepare( $conn, $sql );

foreach( sqlsrv_field_metadata( $stmt ) as $fieldMetadata ) {
foreach( $fieldMetadata as $name => $value) {
echo "$name: $value<br />";
}
echo "<br />";
}
?>

Veja Também

  • sqlsrv_client_info() - Retorna informações sobre o cliente e a conexão especificada


Libera todos os recursos para a declaração especificada

  • « sqlsrv_field_metadata
  • sqlsrv_get_config »
  • PHP Manual
  • Funções SQLSRV
  • Libera todos os recursos para a declaração especificada

sqlsrv_free_stmt

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_free_stmt — Libera todos os recursos para a declaração especificada

Descrição

sqlsrv_free_stmt(resource $stmt): bool

Libera todos os recursos para a declaração especificada. A declaração não pode ser usada após sqlsrv_free_stmt() ser chamada nela. Se sqlsrv_free_stmt() for chamada em uma declaração em andamento que altera o estado do servidor, a execução da declaração é interrompida e a declaração é revertida.

Parâmetros

stmt

A declaração para a qual os recursos são liberados. Note que null é um valor de parâmetro válido. Isso permite que a função seja chamada várias vezes em um script.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de sqlsrv_free_stmt()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}

/*-------------------------------
Processar os resultados da consulta aqui.
-------------------------------*/

/* Libere os recursos da declaração. */
sqlsrv_free_stmt( $stmt);

?>

Notas

A principal diferença entre sqlsrv_free_stmt() e sqlsrv_cancel() é que um recurso de declaração cancelado com sqlsrv_cancel() pode ser reexecutado se foi criado com sqlsrv_prepare(). Um recurso de declaração cancelado com sqlsrv_free_statement() não pode ser reexecutado.

Veja Também

  • sqlsrv_cancel() - Cancela uma declaração


Retorna o valor da configuração especificada

  • « sqlsrv_free_stmt
  • sqlsrv_get_field »
  • PHP Manual
  • Funções SQLSRV
  • Retorna o valor da configuração especificada

sqlsrv_get_config

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_get_config — Retorna o valor da configuração especificada

Descrição

sqlsrv_get_config(string $setting): mixed

Retorna o valor da configuração especificada.

Parâmetros

setting

O nome da configuração para a qual o valor é retornado. Para uma lista de configurações configuráveis, consulte sqlsrv_configure().

Valor Retornado

Retorna o valor da configuração especificada. Se uma configuração inválida for especificada, false é retornado.

Veja Também

  • sqlsrv_configure() - Altera as configurações de tratamento de erros e registro do driver


Obtém dados do campo da linha atualmente selecionada

  • « sqlsrv_get_config
  • sqlsrv_has_rows »
  • PHP Manual
  • Funções SQLSRV
  • Obtém dados do campo da linha atualmente selecionada

sqlsrv_get_field

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_get_field — Obtém dados do campo da linha atualmente selecionada

Descrição

sqlsrv_get_field(resource $stmt, int $fieldIndex, int $getAsType = ?): mixed

Obtém dados do campo da linha atualmente selecionada. Os campos devem ser acessados em ordem. Os índices dos campos começam em 0.

Parâmetros

stmt

Um recurso de declaração retornado por sqlsrv_query() ou sqlsrv_execute().

fieldIndex

O índice do campo a ser recuperado. Os índices dos campos começam em 0. Os campos devem ser acessados em ordem. Ou seja, se você acessar o índice do campo 1, então o índice do campo 0 não estará disponível.

getAsType

O tipo de dado PHP para os dados do campo retornados. Se este parâmetro não for definido, os dados do campo serão retornados como seu tipo de dados PHP padrão. Para obter informações sobre os tipos de dados PHP padrão, consulte » Tipos de Dados PHP Padrão na documentação do Microsoft SQLSRV.

Valor Retornado

Retorna os dados do campo especificado com sucesso. Retorna false caso contrário.

Exemplos

Exemplo #1 Exemplo de sqlsrv_get_field()

O exemplo a seguir demonstra como recuperar uma linha com sqlsrv_fetch() e obter os campos da linha com sqlsrv_get_field().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Name, Comment
FROM Table_1
WHERE ReviewID=1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}

// Torna a primeira (e neste caso, única) linha do conjunto de resultados disponível para leitura.
if( sqlsrv_fetch( $stmt ) === false) {
die( print_r( sqlsrv_errors(), true));
}

// Obtém os campos da linha. Os índices de campo começam em 0 e devem ser recuperados em ordem.
// A recuperação de campos de linha por nome não é suportada por sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Veja Também

  • sqlsrv_fetch() - Torna a próxima linha em um conjunto de resultados disponível para leitura
  • sqlsrv_fetch_array() - Retorna uma linha como um array
  • sqlsrv_fetch_object() - Recupera a próxima linha de dados em um conjunto de resultados como um objeto


Indica se a declaração especificada possui linhas

  • « sqlsrv_get_field
  • sqlsrv_next_result »
  • PHP Manual
  • Funções SQLSRV
  • Indica se a declaração especificada possui linhas

sqlsrv_has_rows

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_has_rows — Indica se a declaração especificada possui linhas

Descrição

sqlsrv_has_rows(resource $stmt): bool

Indica se a declaração especificada possui linhas.

Parâmetros

stmt

Um recurso de declaração retornado por sqlsrv_query() ou sqlsrv_execute().

Valor Retornado

Retorna true se a declaração especificada tiver linhas e false se a declaração não tiver linhas ou se ocorrer um erro.

Exemplos

Exemplo #1 Exemplo de sqlsrv_has_rows()

<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $server, $connectionInfo );

$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");

if ($stmt) {
$rows = sqlsrv_has_rows( $stmt );
if ($rows === true)
echo "There are rows. <br />";
else
echo "There are no rows. <br />";
}
?>

Veja Também

  • sqlsrv_num_rows() - Recupera o número de linhas em um conjunto de resultados
  • sqlsrv_query() - Prepara e executa uma consulta


Torna o próximo resultado da declaração especificada ativo

  • « sqlsrv_has_rows
  • sqlsrv_num_fields »
  • PHP Manual
  • Funções SQLSRV
  • Torna o próximo resultado da declaração especificada ativo

sqlsrv_next_result

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_next_result — Torna o próximo resultado da declaração especificada ativo

Descrição

sqlsrv_next_result(resource $stmt): mixed

Torna o próximo resultado da declaração especificada ativo. Os resultados incluem conjuntos de resultados, contagens de linhas e parâmetros de saída.

Parâmetros

stmt

A declaração na qual o próximo resultado está sendo chamado.

Valor Retornado

Retorna true se o próximo resultado foi obtido com sucesso, false se ocorrer um erro e null se não houver mais resultados para recuperar.

Exemplos

Exemplo #1 Exemplo de sqlsrv_next_result()

O exemplo a seguir executa uma consulta em lote que insere em uma tabela e depois seleciona da tabela. Isso produz dois resultados na declaração: um para as linhas afetadas pela INSERT e outro para as linhas retornadas pela SELECT. Para chegar às linhas retornadas pela SELECT, é necessário chamar sqlsrv_next_result() para passar pelo primeiro resultado.

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array("Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

$query = "INSERT INTO Table_1 (id, data) VALUES (?,?); SELECT * FROM TABLE_1;";
$params = array(1, "some data");
$stmt = sqlsrv_query($conn, $query, $params);

// Consome o primeiro resultado (linhas afetadas por INSERT) sem chamar sqlsrv_next_result.
echo "Rows affected: ".sqlsrv_rows_affected($stmt)."<br />";

// Move para o próximo resultado e exibe os resultados.
$next_result = sqlsrv_next_result($stmt);
if( $next_result ) {
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)){
echo $row['id'].": ".$row['data']."<br />";
}
} elseif( is_null($next_result)) {
echo "No more results.<br />";
} else {
die(print_r(sqlsrv_errors(), true));
}
?>

Veja Também

  • sqlsrv_query() - Prepara e executa uma consulta
  • sqlsrv_fetch_array() - Retorna uma linha como um array
  • sqlsrv_rows_affected() - Retorna o número de linhas modificadas pela última consulta INSERT, UPDATE ou DELETE executada


Recupera o número de campos (colunas) em uma declaração

  • « sqlsrv_next_result
  • sqlsrv_num_rows »
  • PHP Manual
  • Funções SQLSRV
  • Recupera o número de campos (colunas) em uma declaração

sqlsrv_num_fields

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_num_fields — Recupera o número de campos (colunas) em uma declaração

Descrição

sqlsrv_num_fields(resource $stmt): mixed

Recupera o número de campos (colunas) em uma declaração.

Parâmetros

stmt

A declaração para a qual o número de campos é retornado. sqlsrv_num_fields() pode ser chamado em uma declaração antes ou depois da execução da declaração.

Valor Retornado

Retorna o número de campos em caso de sucesso. Retorna false caso contrário.

Exemplos

Exemplo #1 Exemplo de sqlsrv_num_fields()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT * FROM Table_1";
$stmt = sqlsrv_query($conn, $sql);
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true));
}

$numFields = sqlsrv_num_fields( $stmt );

while( sqlsrv_fetch( $stmt )) {
// Itere pelos campos de cada linha.
for($i = 0; $i < $numFields; $i++) {
echo sqlsrv_get_field($stmt, $i)." ";
}
echo "<br />";
}
?>

Veja Também

  • sqlsrv_field_metadata() - Recupera metadados para os campos de uma declaração preparada por sqlsrv_prepare ou sqlsrv_query
  • sqlsrv_fetch() - Torna a próxima linha em um conjunto de resultados disponível para leitura
  • sqlsrv_get_field() - Obtém dados do campo da linha atualmente selecionada


Recupera o número de linhas em um conjunto de resultados

  • « sqlsrv_num_fields
  • sqlsrv_prepare »
  • PHP Manual
  • Funções SQLSRV
  • Recupera o número de linhas em um conjunto de resultados

sqlsrv_num_rows

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_num_rows — Recupera o número de linhas em um conjunto de resultados

Descrição

sqlsrv_num_rows(resource $stmt): mixed

Recupera o número de linhas em um conjunto de resultados. Esta função requer que o recurso de declaração seja criado com um cursor estático ou de conjunto de chaves. Para mais informações, consulte sqlsrv_query(), sqlsrv_prepare() ou » Especificar um Tipo de Cursor e Selecionar Linhas na documentação do Microsoft SQLSRV.

Parâmetros

stmt

A declaração para a qual a contagem de linhas é retornada. O recurso de declaração deve ser criado com um cursor estático ou de conjunto de chaves. Para mais informações, consulte sqlsrv_query(), sqlsrv_prepare() ou » Especificar um Tipo de Cursor e Selecionar Linhas na documentação do Microsoft SQLSRV.

Valor Retornado

Retorna o número de linhas recuperadas em caso de sucesso e false se ocorrer um erro. Se um cursor avançado (o padrão) ou dinâmico for usado, false é retornado.

Exemplos

Exemplo #1 Exemplo de sqlsrv_num_rows()

<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $server, $connectionInfo );

$sql = "SELECT * FROM Table_1";
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $conn, $sql , $params, $options );

$row_count = sqlsrv_num_rows( $stmt );

if ($row_count === false)
echo "Error in retrieveing row count.";
else
echo $row_count;
?>

Veja Também

  • sqlsrv_has_rows() - Indica se a declaração especificada possui linhas
  • sqlsrv_rows_affected() - Retorna o número de linhas modificadas pela última consulta INSERT, UPDATE ou DELETE executada


Prepara uma consulta para execução

  • « sqlsrv_num_rows
  • sqlsrv_query »
  • PHP Manual
  • Funções SQLSRV
  • Prepara uma consulta para execução

sqlsrv_prepare

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_prepare — Prepara uma consulta para execução

Descrição

sqlsrv_prepare(
resource $conn,
string $sql,
array $params = ?,
array $options = ?
): mixed

Prepara uma consulta para execução. Esta função é ideal para preparar uma consulta que será executada várias vezes com diferentes valores de parâmetro.

Parâmetros

conn

Um recurso de conexão retornado por sqlsrv_connect().

sql

A string que define a consulta a ser preparada e executada.

params

Um array especificando informações de parâmetro ao executar uma consulta parametrizada. Os elementos do array podem ser um dos seguintes:

  • Um valor literal
  • Uma variável PHP
  • Um array com esta estrutura: array($valor [, $direção [, $tipoPHP [, $tipoSQL]]])
A tabela a seguir descreve os elementos na estrutura do array acima:

Estrutura do array
Elemento | Descrição
$value | Um valor literal, uma variável PHP ou uma variável PHP por referência.
$direction (opcional) | Uma das constantes SQLSRV usadas para indicar a direção do parâmetro: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. O valor padrão é SQLSRV_PARAM_IN.
$phpType (opcional) | Uma constante SQLSRV_PHPTYPE_* que especifica o tipo de dado PHP do valor retornado.
$sqlType (opcional) | Uma constante SQLSRV_SQLTYPE_* que especifica o tipo de dado do SQL Server do valor de entrada.
options

Um array especificando opções de propriedade da consulta. As chaves suportadas são descritas na tabela a seguir:

Opções de Consulta
Chave | Valores | Descrição
QueryTimeout | Um valor inteiro positivo. | Define o tempo limite da consulta em segundos. Por padrão, o driver aguardará indefinidamente por resultados.
SendStreamParamsAtExec | true ou false (o padrão é true) | Configura o driver para enviar todos os dados de fluxo na execução (true), ou para enviar os dados de fluxo em blocos (false). Por padrão, o valor é true. Para mais informações, consulte sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, ou SQLSRV_CURSOR_KEYSET | Veja » Especificar um Tipo de Cursor e Selecionar Linhas na documentação do Microsoft SQLSRV.

Valor Retornado

Retorna um recurso de declaração em caso de sucesso e false se ocorrer um erro.

Exemplos

Exemplo #1 Exemplo de sqlsrv_prepare()

Este exemplo demonstra como preparar uma declaração com sqlsrv_prepare() e reexecutá-la várias vezes (com diferentes valores de parâmetro) usando sqlsrv_execute().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1
SET OrderQty = ?
WHERE SalesOrderID = ?";

// Inicializa os parâmetros e prepara a instrução.
// As variáveis $qty e $id estão vinculadas à instrução $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
die( print_r( sqlsrv_errors(), true));
}

// Configure as informações de SalesOrderDetailID e OrderQty.
// Este array mapeia o ID do pedido para a quantidade do pedido em pares chave=>valor.
$orders = array( 1=>10, 2=>20, 3=>30);

//Executa a instrução para cada pedido.
foreach( $orders as $id => $qty) {
// Como $id e $qty estão vinculados a $stmt1, seus valores atualizados
// valores são usados em cada execução da instrução.
if( sqlsrv_execute( $stmt ) === false ) {
die( print_r( sqlsrv_errors(), true));
}
}
?>

Notas

Ao preparar uma declaração que usa variáveis como parâmetros, as variáveis são vinculadas à declaração. Isso significa que se você atualizar os valores das variáveis, na próxima vez que executar a declaração, ela será executada com valores de parâmetro atualizados. Para declarações que você planeja executar apenas uma vez, use sqlsrv_query().

Veja Também

  • sqlsrv_execute() - Executa uma declaração preparada com sqlsrv_prepare
  • sqlsrv_query() - Prepara e executa uma consulta


Prepara e executa uma consulta

  • « sqlsrv_prepare
  • sqlsrv_rollback »
  • PHP Manual
  • Funções SQLSRV
  • Prepara e executa uma consulta

sqlsrv_query

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_query — Prepara e executa uma consulta

Descrição

sqlsrv_query(
resource $conn,
string $sql,
array $params = ?,
array $options = ?
): mixed

Prepara e executa uma consulta.

Parâmetros

conn

Um recurso de conexão retornado por sqlsrv_connect().

sql

A string que define a consulta a ser preparada e executada.

params

Um array especificando informações de parâmetro ao executar uma consulta parametrizada. Os elementos do array podem ser um dos seguintes:

  • Um valor literal
  • Uma variável PHP
  • Um array com esta estrutura: array($valor [, $direção [, $tipoPHP [, $tipoSQL]]])
A tabela a seguir descreve os elementos na estrutura do array acima:

Estrutura do array
Elemento | Descrição
$value | Um valor literal, uma variável PHP ou uma variável PHP por referência.
$direction (opcional) | Uma das constantes SQLSRV usadas para indicar a direção do parâmetro: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. O valor padrão é SQLSRV_PARAM_IN.
$phpType (opcional) | Uma constante SQLSRV_PHPTYPE_* que especifica o tipo de dado PHP do valor retornado.
$sqlType (opcional) | Uma constante SQLSRV_SQLTYPE_* que especifica o tipo de dado do SQL Server do valor de entrada.
options

Um array especificando opções de propriedade da consulta. As chaves suportadas são descritas na tabela a seguir:

Opções de Consulta
Chave | Valores | Descrição
QueryTimeout | Um valor inteiro positivo. | Define o tempo limite da consulta em segundos. Por padrão, o driver aguardará indefinidamente por resultados.
SendStreamParamsAtExec | true ou false (o padrão é true) | Configura o driver para enviar todos os dados de fluxo na execução (true), ou para enviar os dados de fluxo em blocos (false). Por padrão, o valor é true. Para mais informações, consulte sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, ou SQLSRV_CURSOR_KEYSET | Veja » Especificar um Tipo de Cursor e Selecionar Linhas na documentação do Microsoft SQLSRV.

Valor Retornado

Retorna um recurso de declaração em caso de sucesso e false se ocorrer um erro.

Exemplos

Exemplo #1 Exemplo de sqlsrv_query()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "INSERT INTO Table_1 (id, data) VALUES (?, ?)";
$params = array(1, "some data");

$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
?>

Notas

Para declarações que você planeja executar apenas uma vez, use sqlsrv_query(). Se você pretende reexecutar uma declaração com diferentes valores de parâmetro, use a combinação de sqlsrv_prepare() e sqlsrv_execute().

Veja Também

  • sqlsrv_prepare() - Prepara uma consulta para execução
  • sqlsrv_execute() - Executa uma declaração preparada com sqlsrv_prepare


Reverte uma transação que foi iniciada com sqlsrv_begin_transaction

  • « sqlsrv_query
  • sqlsrv_rows_affected »
  • PHP Manual
  • Funções SQLSRV
  • Reverte uma transação que foi iniciada com sqlsrv_begin_transaction

sqlsrv_rollback

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_rollback — Reverte uma transação que foi iniciada com sqlsrv_begin_transaction()

Descrição

sqlsrv_rollback(resource $conn): bool

Reverte uma transação que foi iniciada com sqlsrv_begin_transaction() e retorna a conexão ao modo de auto-commit.

Parâmetros

conn

O recurso de conexão retornado por uma chamada para sqlsrv_connect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de sqlsrv_rollback()

O exemplo a seguir demonstra como usar sqlsrv_begin_transaction() junto com sqlsrv_commit() e sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true ));
}

/* Inicia a transação. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
die( print_r( sqlsrv_errors(), true ));
}

/* Inicializa os valores dos parâmetros. */
$orderId = 1; $qty = 10; $productId = 100;

/* Configura e executa a primeira consulta. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Configura e executa a segunda consulta. */
$sql2 = "UPDATE InventoryTable
SET Quantity = (Quantity - ?)
WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* Se ambas as consultas foram bem-sucedidas, confirma a transação. */
/* Caso contrário, reverte a transação. */
if( $stmt1 && $stmt2 ) {
sqlsrv_commit( $conn );
echo "Transaction committed.<br />";
} else {
sqlsrv_rollback( $conn );
echo "Transaction rolled back.<br />";
}
?>

Veja Também

  • sqlsrv_begin_transaction() - Inicia uma transação de banco de dados
  • sqlsrv_commit() - Confirma uma transação que foi iniciada com sqlsrv_begin_transaction


Retorna o número de linhas modificadas pela última consulta INSERT, UPDATE ou DELETE executada

  • « sqlsrv_rollback
  • sqlsrv_send_stream_data »
  • PHP Manual
  • Funções SQLSRV
  • Retorna o número de linhas modificadas pela última consulta INSERT, UPDATE ou DELETE executada

sqlsrv_rows_affected

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_rows_affected — Retorna o número de linhas modificadas pela última consulta INSERT, UPDATE ou DELETE executada

Descrição

sqlsrv_rows_affected(resource $stmt): int|false

Retorna o número de linhas modificadas pela última consulta INSERT, UPDATE ou DELETE executada. Para informações sobre o número de linhas retornadas por uma consulta SELECT, consulte sqlsrv_num_rows().

Parâmetros

stmt

O recurso da instrução executada para o qual o número de linhas afetadas é retornado.

Valor Retornado

Retorna o número de linhas afetadas pela última consulta INSERT, UPDATE ou DELETE. Se nenhuma linha foi afetada, 0 é retornado. Se o número de linhas afetadas não puder ser determinado, -1 é retornado. Se ocorreu um erro, false é retornado.

Exemplos

Exemplo #1 Exemplo de sqlsrv_rows_affected()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1 SET data = ? WHERE id = ?";

$params = array("updated data", 1);

$stmt = sqlsrv_query( $conn, $sql, $params);

$rows_affected = sqlsrv_rows_affected( $stmt);
if( $rows_affected === false) {
die( print_r( sqlsrv_errors(), true));
} elseif( $rows_affected == -1) {
echo "No information available.<br />";
} else {
echo $rows_affected." rows were updated.<br />";
}
?>

Veja Também

  • sqlsrv_num_rows() - Recupera o número de linhas em um conjunto de resultados


Envia dados de fluxos de parâmetros para o servidor

  • « sqlsrv_rows_affected
  • sqlsrv_server_info »
  • PHP Manual
  • Funções SQLSRV
  • Envia dados de fluxos de parâmetros para o servidor

sqlsrv_send_stream_data

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_send_stream_data — Envia dados de fluxos de parâmetros para o servidor

Descrição

sqlsrv_send_stream_data(resource $stmt): bool

Envia dados de fluxos de parâmetros para o servidor. Até 8 KB de dados são enviados com cada chamada.

Parâmetros

stmt

Um recurso de instrução retornado por sqlsrv_query() ou sqlsrv_execute().

Valor Retornado

Retorna true se houver mais dados para enviar e false se não houver.

Exemplos

Exemplo #1 Exemplo de sqlsrv_send_stream_data()

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1 SET data = ( ?) WHERE id = 100";

// Abre os dados do parâmetro como um fluxo e coloca-os no array $params.
$data = fopen( "data://text/plain,[ Lengthy content here. ]", "r");
$params = array( &$data);

// Prepara a instrução. Use o array $options para desativar o
// comportamento padrão, que é enviar todos os dados de fluxo no momento da consulta
// execução.
$options = array("SendStreamParamsAtExec"=>0);
$stmt = sqlsrv_prepare( $conn, $sql, $params, $options);

sqlsrv_execute( $stmt);

// Envia até 8 KB de dados de parâmetro para o servidor
// com cada chamada a sqlsrv_send_stream_data.
$i = 1;
while( sqlsrv_send_stream_data( $stmt)) {
$i++;
}
echo "$i calls were made.";
?>

Veja Também

  • sqlsrv_prepare() - Prepara uma consulta para execução
  • sqlsrv_query() - Prepara e executa uma consulta


Retorna informações sobre o servidor

  • « sqlsrv_send_stream_data
  • Extensões Relacionadas a Data e Horário »
  • PHP Manual
  • Funções SQLSRV
  • Retorna informações sobre o servidor

sqlsrv_server_info

(Não há informação de versão disponível, talvez apenas no Git)

sqlsrv_server_info — Retorna informações sobre o servidor

Descrição

sqlsrv_server_info(resource $conn): array

Retorna informações sobre o servidor.

Parâmetros

conn

O recurso de conexão que conecta o cliente e o servidor.

Valor Retornado

Retorna um array conforme descrito na seguinte tabela:

Array retornado
CurrentDatabase | O banco de dados conectado.
SQLServerVersion | A versão do SQL Server.
SQLServerName | O nome do servidor.

Exemplos

Exemplo #1 Exemplo de sqlsrv_server_info()

<?php
$serverName = "serverName\sqlexpress";
$conn = sqlsrv_connect( $serverName);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}

$server_info = sqlsrv_server_info( $conn);
if( $server_info )
{
foreach( $server_info as $key => $value) {
echo $key.": ".$value."<br />";
}
} else {
die( print_r( sqlsrv_errors(), true));
}
?>

Veja Também

  • sqlsrv_client_info() - Retorna informações sobre o cliente e a conexão especificada


Extensões Relacionadas a Data e Horário

  • Calendar
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Calendário Funções
  • Data/Hora — Data e Hora
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • DateTime — A classe DateTime
    • DateTimeImmutable — A classe DateTimeImmutable
    • DateTimeInterface — A interface DateTimeInterface
    • DateTimeZone — A classe DateTimeZone
    • DateInterval — A classe DateInterval
    • DatePeriod — A classe DatePeriod
    • Funções de Data/Hora
    • Erros e Exceções de Data/Hora
    • Formatos de Data e Hora Suportados
    • Lista de Fusos Horários Suportados
    • DateError — A classe DateError
    • DateObjectError — A classe DateObjectError
    • DateRangeError — A classe DateRangeError
    • DateException — A classe DateException
    • DateInvalidOperationException — A classe DateInvalidOperationException
    • DateInvalidTimeZoneException — A classe DateInvalidTimeZoneException
    • DateMalformedIntervalStringException — The DateMalformedIntervalStringException class
    • DateMalformedPeriodStringException — A classe DateMalformedPeriodStringException
    • DateMalformedStringException — A classe DateMalformedStringException
  • HRTime — High resolution timing
    • Introdução
    • Instalação/Configuração
    • Exemplos
    • HRTime\PerformanceCounter — The HRTime\PerformanceCounter class
    • HRTime\StopWatch — The HRTime\StopWatch class
    • HRTime\Unit — The HRTime\Unit class


Calendar

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Calendário Funções
    • cal_days_in_month — Retorna o número de dias em um mês de um calendário e ano requisitado
    • cal_from_jd — Converte de uma Contagem de Dias Julianos para um calendário suportado
    • cal_info — Retorna informação sobre um calendário específico
    • cal_to_jd — Converte um calendário (suportado) para o calendário "Julian Day Count"
    • easter_date — Obtém o timestamp Unix para a meia-noite da Páscoa de um ano informado
    • easter_days — Obtém o número de dias depois de 21 de março no qual a Páscoa cai para um determinado ano
    • frenchtojd — Converte uma data do calendário Republicano Francês para uma contagem de Dias Julianos
    • gregoriantojd — Converte uma data gregoriana para o "Julian Day Count"
    • jddayofweek — Retorna o dia da semana de um dia Juliano
    • jdmonthname — Retorna o nome de um mês
    • jdtofrench — Converte do calendário "Julian Day Count" para o calendário Republicano Francês
    • jdtogregorian — Converte uma data no formato "Julian Day Count" para o formato Gregoriano
    • jdtojewish — Converte uma contagem de dias Julianos para uma data do calendário Judeu
    • jdtojulian — Converte uma data do calendário "Julian Day Count" para o calendário "Julian"
    • jdtounix — Converte do formato de dada Juliana para Unix timestamp
    • jewishtojd — Converte uma data do calendário Judaico para o calendário "Julian Day Count"
    • juliantojd — Converte datas no formato "Julian" para o formato "Julian Day Count"
    • unixtojd — Converte um timestamp Unix para um dia Juliano


Introdução

A extensão de calendário contém uma série de funções para simplificar a conversão de diferentes formatos de calendários. O calendário padrão é baseado no formato "Julian Day Count". A contagem de dias do calendário "Julian Day Count" começa em 1º de Janeiro de 4713 B.C. Para converter um calendário para algum formato, você deve primeiro convertê-lo para o formato "Julian Day Count", então converter para o sistema de calendário de sua escolha. O formato de calendário "Julian Day Count" é muito diferente do "Julian Calendar"! Para mais informações sobre o calendário "Julian Day Count", visite » http://www.hermetic.ch/cal_stud/jdn.htm. Para mais informações sobre sistemas de calendários, visite: » http://www.fourmilab.ch/documents/calendar/. "Excerpts from this page are included in these instructions, and are in quotes".


Instalação

Para estas funções funcionarem, você precisa compilar o PHP com --enable-calendar.

A versão do PHP para Windows tem suporte nativo para esta extensão. Nenhuma extensão adicional precisa ser carregada para usar essas funções.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

CAL_EASTER_DEFAULT (int)
Para a função easter_days(): calcula a data da Páscoa para anos anteriores a 1753 de acordo com o calendário Juliano, e para anos posteriores de acordo com o calendrário Gregoriano.
CAL_EASTER_ROMAN (int)
Para a função easter_days(): calcula a data da Páscoa para anos anteriores a 1583 de acordo com o calendário Juliano, e para anos posteriores de acordo com o calendrário Gregoriano.
CAL_EASTER_ALWAYS_GREGORIAN (int)
Para a função easter_days(): calcula a data da Páscoa de acordo com o calendário Gregoriano proléptico.
CAL_EASTER_ALWAYS_JULIAN (int)
Para a função easter_days(): calcula a data da Páscoa de cordo com o calendário Juliano.
CAL_GREGORIAN (int)
Para as funções cal_days_in_month(),
cal_from_jd(), cal_info() e
cal_to_jd(): usam o calendário Gregoriano proléptico.
CAL_JULIAN (int)
Para as funções cal_days_in_month(),
cal_from_jd(), cal_info() e
cal_to_jd(): usam o calendário Juliano.
CAL_JEWISH (int)
Para as funções cal_days_in_month(),
cal_from_jd(), cal_info() e
cal_to_jd(): usam o calendário Judeu.
CAL_FRENCH (int)
Para as funções cal_days_in_month(),
cal_from_jd(), cal_info() e
cal_to_jd(): usam o calendário Republicano Francês.
CAL_NUM_CALS (int)
O número de calendários disponíveis.
CAL_JEWISH_ADD_ALAFIM_GERESH (int)
Para a função jdtojewish(): adiciona um símbolo de geresh (que lembra um apóstrofo) como separador de milhares ao número do ano.
CAL_JEWISH_ADD_ALAFIM (int)
Para a função jdtojewish(): adiciona a palavra alafim como separadora de milhares ao número do ano.
CAL_JEWISH_ADD_GERESHAYIM (int)
Para a função jdtojewish(): adiciona um símbolo gershayim (que lembra aspas duplas) antes da letra final dos número de dia e ano.
CAL_DOW_DAYNO (int)
Para a função jddayofweek(): o dia da semana como int, onde 0 representa domingo e 6 representa sábado.
CAL_DOW_SHORT (int)
Para a função jddayofweek(): o nome em inglês abreviado do dia da semana.
CAL_DOW_LONG (int)
Para a função jddayofweek(): o nome em inglês do dia da semana.
CAL_MONTH_GREGORIAN_SHORT (int)
Para a função jdmonthname(): o nome do mês Gregoriano abreviado.
CAL_MONTH_GREGORIAN_LONG (int)
Para a função jdmonthname(): o nome do mês Gregoriano.
CAL_MONTH_JULIAN_SHORT (int)
Para a função jdmonthname(): o nome do mês Juliano abreviado.
CAL_MONTH_JULIAN_LONG (int)
Para a função jdmonthname(): o nome do mês Juliano.
CAL_MONTH_JEWISH (int)
Para a função jdmonthname(): o nome do mês Judeu.
CAL_MONTH_FRENCH (int)
Para a função jdmonthname(): o nome do mês Republicano Francês.


Calendário Funções

Índice

  • cal_days_in_month — Retorna o número de dias em um mês de um calendário e ano requisitado
  • cal_from_jd — Converte de uma Contagem de Dias Julianos para um calendário suportado
  • cal_info — Retorna informação sobre um calendário específico
  • cal_to_jd — Converte um calendário (suportado) para o calendário "Julian Day Count"
  • easter_date — Obtém o timestamp Unix para a meia-noite da Páscoa de um ano informado
  • easter_days — Obtém o número de dias depois de 21 de março no qual a Páscoa cai para um determinado ano
  • frenchtojd — Converte uma data do calendário Republicano Francês para uma contagem de Dias Julianos
  • gregoriantojd — Converte uma data gregoriana para o "Julian Day Count"
  • jddayofweek — Retorna o dia da semana de um dia Juliano
  • jdmonthname — Retorna o nome de um mês
  • jdtofrench — Converte do calendário "Julian Day Count" para o calendário Republicano Francês
  • jdtogregorian — Converte uma data no formato "Julian Day Count" para o formato Gregoriano
  • jdtojewish — Converte uma contagem de dias Julianos para uma data do calendário Judeu
  • jdtojulian — Converte uma data do calendário "Julian Day Count" para o calendário "Julian"
  • jdtounix — Converte do formato de dada Juliana para Unix timestamp
  • jewishtojd — Converte uma data do calendário Judaico para o calendário "Julian Day Count"
  • juliantojd — Converte datas no formato "Julian" para o formato "Julian Day Count"
  • unixtojd — Converte um timestamp Unix para um dia Juliano


Retorna o número de dias em um mês de um calendário e ano requisitado

  • « Calendário Funções
  • cal_from_jd »
  • PHP Manual
  • Calendário Funções
  • Retorna o número de dias em um mês de um calendário e ano requisitado

cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cal_days_in_month — Retorna o número de dias em um mês de um calendário e ano requisitado

Descrição

cal_days_in_month(int $calendar, int $month, int $year): int

Esta função irá retornar o número de dias em um month do year para o calendar especificado.

Parâmetros

calendar

Calendário para usar no cálculo

month

Mês a ser selecionado no calendário

year

Ano no selecionado calendário

Valor Retornado

A quantidade de dias do selecionado mês no dado calendário

Exemplos

Exemplo #1 Exemplo da cal_days_in_month()

<?php
$numero = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "Houve {$numero} dias em Agosto de 2003";
?>


Converte de uma Contagem de Dias Julianos para um calendário suportado

  • « cal_days_in_month
  • cal_info »
  • PHP Manual
  • Calendário Funções
  • Converte de uma Contagem de Dias Julianos para um calendário suportado

cal_from_jd

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cal_from_jd — Converte de uma Contagem de Dias Julianos para um calendário suportado

Descrição

cal_from_jd(int $julian_day, int $calendar): array

cal_from_jd() converte o dia Juliano fornecido em julian_day para uma data no calendário especificado em calendar. Valores suportados para calendar são CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH e CAL_FRENCH.

Parâmetros

julian_day

Dia Juliano como um número inteiro

calendar

Calendário para o qual será feita a conversão.

Valor Retornado

Retorna um array contendo informações do calendário como mês, dia, ano, dia da semana (dow), nomes abreviados e completos de meses e dias da semana e a data em string no formato "mês/dia/ano". O dia da semana pode variar de 0 (domingo) a 6 (sábado).

Exemplos

Exemplo #1 Exemplo de cal_from_jd()

<?php
$today = unixtojd(mktime(0, 0, 0, 8, 16, 2003));
print_r(cal_from_jd($today, CAL_GREGORIAN));
?>

O exemplo acima produzirá:

Array
(
    [date] => 8/16/2003
    [month] => 8
    [day] => 16
    [year] => 2003
    [dow] => 6
    [abbrevdayname] => Sat
    [dayname] => Saturday
    [abbrevmonth] => Aug
    [monthname] => August
)

Veja Também

  • cal_to_jd() - Converte um calendário (suportado) para o calendário "Julian Day Count"
  • jdtofrench() - Converte do calendário "Julian Day Count" para o calendário Republicano Francês
  • jdtogregorian() - Converte uma data no formato "Julian Day Count" para o formato Gregoriano
  • jdtojewish() - Converte uma contagem de dias Julianos para uma data do calendário Judeu
  • jdtojulian() - Converte uma data do calendário "Julian Day Count" para o calendário "Julian"
  • jdtounix() - Converte do formato de dada Juliana para Unix timestamp


Retorna informação sobre um calendário específico

  • « cal_from_jd
  • cal_to_jd »
  • PHP Manual
  • Calendário Funções
  • Retorna informação sobre um calendário específico

cal_info

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cal_info — Retorna informação sobre um calendário específico

Descrição

cal_info(int $calendar = -1): array

cal_info() retorna informação sobre o calendário especificado em calendar.

Informação sobre calendário é retornada como um array contendo os elementos calname, calsymbol, month, abbrevmonth e maxdaysinmonth. Os nomes dos diferentes calendários que podem ser usados no parâmetro calendar são os seguintes:

  • 0 ou CAL_GREGORIAN - Calendário Gregoriano
  • 1 ou CAL_JULIAN - Calendário Juliano
  • 2 ou CAL_JEWISH - Calendário Judeu
  • 3 ou CAL_FRENCH - Calendário da Revolução Francesa

Se o parâmetro calendar não for especificado, informação sobre todos os calendários suportados é retornada como um array.

Parâmetros

calendar

Calendário para o qual será retornada a informação. Se nenhum calendário for especificado, informação sobre todos os calendários suportados é retornada.

Valor Retornado

Exemplos

Exemplo #1 Exemplo de cal_info()

<?php
$info = cal_info(0);
print_r($info);
?>

O exemplo acima produzirá:

Array
(
    [months] => Array
        (
            [1] => January
            [2] => February
            [3] => March
            [4] => April
            [5] => May
            [6] => June
            [7] => July
            [8] => August
            [9] => September
            [10] => October
            [11] => November
            [12] => December
        )

    [abbrevmonths] => Array
        (
            [1] => Jan
            [2] => Feb
            [3] => Mar
            [4] => Apr
            [5] => May
            [6] => Jun
            [7] => Jul
            [8] => Aug
            [9] => Sep
            [10] => Oct
            [11] => Nov
            [12] => Dec
        )

    [maxdaysinmonth] => 31
    [calname] => Gregorian
    [calsymbol] => CAL_GREGORIAN
)


Converte um calendário (suportado) para o calendário "Julian Day Count"

  • « cal_info
  • easter_date »
  • PHP Manual
  • Calendário Funções
  • Converte um calendário (suportado) para o calendário "Julian Day Count"

cal_to_jd

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cal_to_jd — Converte um calendário (suportado) para o calendário "Julian Day Count"

Descrição

cal_to_jd(
int $calendar,
int $month,
int $day,
int $year
): int

cal_to_jd() calcula uma data em formato "Julian Day Count" à partir de um calendar suportado especificado. Os calendar suportados são: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH e CAL_FRENCH.

Parâmetros

calendar

Calendário para converter, um dos CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH ou CAL_FRENCH.

month

O mês como um número, o intervalo válido depende do calendar

day

O dia como um número, o intervalo válido depende do calendar

year

O ano como um número, o intervalo válido depende do calendar

Valor Retornado

Um número de data juliana.

Veja Também

  • cal_from_jd() - Converte de uma Contagem de Dias Julianos para um calendário suportado
  • frenchtojd() - Converte uma data do calendário Republicano Francês para uma contagem de Dias Julianos
  • gregoriantojd() - Converte uma data gregoriana para o "Julian Day Count"
  • jewishtojd() - Converte uma data do calendário Judaico para o calendário "Julian Day Count"
  • juliantojd() - Converte datas no formato "Julian" para o formato "Julian Day Count"
  • unixtojd() - Converte um timestamp Unix para um dia Juliano


Obtém o timestamp Unix para a meia-noite da Páscoa de um ano informado

  • « cal_to_jd
  • easter_days »
  • PHP Manual
  • Calendário Funções
  • Obtém o timestamp Unix para a meia-noite da Páscoa de um ano informado

easter_date

(PHP 4, PHP 5, PHP 7, PHP 8)

easter_date — Obtém o timestamp Unix para a meia-noite da Páscoa de um ano informado

Descrição

easter_date(?int $year = null, int $mode = CAL_EASTER_DEFAULT): int

Retorna o timestamp Unix correspondente à meia-noite de Páscoa do ano informado.

A data do Dia de Páscoa foi definida pelo Concílio de Niceia no ano 325 D.C. como o domingo após a primeira lua cheia que caia no Equinócio de Primavera ou depois dele. Assume-se que o Equinócio seja sempre no dia 21 de março, portanto o cálculo se reduz a determinar a data da lua cheia e a data do domingo seguinte. O algoritmo usado aqui foi introduzido por volta do ano 532 por Dionísio, o Exíguo. Sob o calendário Juliano (para anos anteriores a 1753) um ciclo simples de 19 anos é usado para acompanhar as fases da lua. Sob o calendário Gregoriano (para anos posteriores a 1753 - concebido por Cristóvão Clávio e Luís Lílio, e introduzido pelo Papa Gregório XIII em outubro de 1582, e na Grã-Bretanha e suas então colônias em setembro de 1752) dois fatores de correção são adicionados para deixar o ciclo mais preciso.

Parâmetros

year

O ano deve ser um número entre 1970 e 2037 para sistemas de 32 bits, ou entre 1970 e 2.000.000.000 para sistemas de 64 bits. Se omitido ou null, será usado o padrão que é o ano atual conforme o horário local.

mode

Permite que datas de Páscoa sejam calculadas com base no calendário Juliano quando definido para CAL_EASTER_ALWAYS_JULIAN. Consulte também as constantes de calendário.

Valor Retornado

A data de Páscoa como um timestamp Unix.

Erros/Exceções

Uma exceção ValueError é lançada se o ano for anterior a 1970 ou posterior a 2037 em sistemas de 32 bits, ou posterior a 2.000.000.000 em sistemas de 64 bits.

Registro de Alterações

Versão | Descrição
8.3.0 | Em sistemas de 64 bits, o parâmetro year agora aceita valores na faixa de 1970 a 2.000.000.000.
8.0.0 | year agora pode ser nulo.
8.0.0 | Uma exceção ValueError agora é lançada quando year estiver fora do intervalo permitido. Anteriormente, um E_WARNING era emitido e a função retornava false.

Exemplos

Exemplo #1 Exemplo de easter_date()

<?php

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

?>

Exemplo #2 Usando easter_date() com DateTime

<?php

$timestamp = easter_date(2023);

$datetime = new \DateTime();
$datetime->setTimestamp($timestamp);

echo $datetime->format('M-d-Y'); // Apr-09-2023

?>

Notas

Nota:

easter_date() depende das funções de horário da biblioteca C do sistema, ao invés de usar as funções de data e horário internas do PHP. Como uma consequência, easter_date() usa a variável de ambiente TZ para determinar o fuso horário onde ela deve operar, ao invés de usar o fuso horário padrão do PHP, o que pode retultar em comportamento inesperado ao usar esta função em conjunto com outras funções de data no PHP.

Como uma maneira de contornar isso, pode-se usar easter_days() com DateTime e DateInterval para calcular o início da Páscoa no fuso horário do PHP como no exemplo a seguir:

<?php
function get_easter_datetime($year) {
$base = new DateTime("$year-03-21");
$days = easter_days($year);

return $base->add(new DateInterval("P{$days}D"));
}

foreach (range(2012, 2015) as $year) {
printf("Páscoa em %d é no dia %s\n",
$year,
get_easter_datetime($year)->format('d/m'));
}
?>

O exemplo acima produzirá:

Páscoa em 2012 é no dia 08/04
Páscoa em 2013 é no dia 31/03
Páscoa em 2014 é no dia 20/04
Páscoa em 2015 é no dia 05/04

Veja Também

  • easter_days() - Obtém o número de dias depois de 21 de março no qual a Páscoa cai para um determinado ano para cálculo da Páscoa antes de 1970 ou depois de 2037


Obtém o número de dias depois de 21 de março no qual a Páscoa cai para um determinado ano

  • « easter_date
  • frenchtojd »
  • PHP Manual
  • Calendário Funções
  • Obtém o número de dias depois de 21 de março no qual a Páscoa cai para um determinado ano

easter_days

(PHP 4, PHP 5, PHP 7, PHP 8)

easter_days — Obtém o número de dias depois de 21 de março no qual a Páscoa cai para um determinado ano

Descrição

easter_days(?int $year = null, int $mode = CAL_EASTER_DEFAULT): int

Retorna o número de dias depois de 21 de março no qual a Páscoa cai para um determinado ano. Se nenhum ano for especificado, o ano atual é assumido como parâmetro.

Esta função pode ser usada no lugar de easter_date() para calculas a Páscoa para anos que caiam fora do intervalo de timestamps Unix (isto é, antes de 1970 ou depois de 2037).

A data do Dia de Páscoa foi definida pelo Concílio de Niceia no ano 325 D.C. como o domingo após a primeira lua cheia que caia no Equinócio de Primavera ou depois dele. Assume-se que o Equinócio seja sempre no dia 21 de março, portanto o cálculo se reduz a determinar a data da lua cheia e a data do domingo seguinte. O algoritmo usado aqui foi introduzido por volta do ano 532 por Dionísio, o Exíguo. Sob o calendário Juliano (para anos anteriores a 1753) um ciclo simples de 19 anos é usado para acompanhar as fases da lua. Sob o calendário Gregoriano (para anos posteriores a 1753 - concebido por Cristóvão Clávio e Luís Lílio, e introduzido pelo Papa Gregório XIII em outubro de 1582, e na Grã-Bretanha e suas então colônias em setembro de 1752) dois fatores de correção são adicionados para deixar o ciclo mais preciso.

Parâmetros

year

O ano como número positivo. Se omitido ou null, é usado como padrão o ano atual conforme o horário local.

mode

Permite que datas de Páscoa sejam calculadas com base no calendário Gregoriano durante os anos 1582 a 1752 quando definido para CAL_EASTER_ROMAN. Consulte também as constantes de calendário para mais constantes válidas.

Valor Retornado

O número de dias depois de 21 de março onde cai o domingo de Páscoa no ano informado no parâmetro year.

Registro de Alterações

Versão | Descrição
8.0.0 | year agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de easter_days()

<?php

echo easter_days(1999); // 14, isto é, 4 de abril
echo easter_days(1492); // 32, isto é, 22 de abril
echo easter_days(1913); // 2, isto é, 23 de março

?>

Veja Também

  • easter_date() - Obtém o timestamp Unix para a meia-noite da Páscoa de um ano informado


Converte uma data do calendário Republicano Francês para uma contagem de Dias Julianos

  • « easter_days
  • gregoriantojd »
  • PHP Manual
  • Calendário Funções
  • Converte uma data do calendário Republicano Francês para uma contagem de Dias Julianos

frenchtojd

(PHP 4, PHP 5, PHP 7, PHP 8)

frenchtojd — Converte uma data do calendário Republicano Francês para uma contagem de Dias Julianos

Descrição

frenchtojd(int $month, int $day, int $year): int

Converte uma data do calendário Republicano Francês para uma contagem de Dias Julianos.

Estas rotinas convertem apenas datas dos anos 1 ao 14 (datas Gregorianas 22 de setembro de 1792 a 22 de setembro de 1806). Isto cobre mais que o período em que o calendário esteve em uso.

Parâmetros

month

O mês como um número de 1 (para Vendémiaire) a 13 (para o período de 5 a 6 dias no final de cada ano)

day

O dia como um número de 1 a 30

year

O ano como um número entre 1 e 14

Valor Retornado

O dia Juliano para a data informada do calendário revolucionário francês, como um inteiro.

Veja Também

  • jdtofrench() - Converte do calendário "Julian Day Count" para o calendário Republicano Francês
  • cal_to_jd() - Converte um calendário (suportado) para o calendário "Julian Day Count"


Converte uma data gregoriana para o "Julian Day Count"

  • « frenchtojd
  • jddayofweek »
  • PHP Manual
  • Calendário Funções
  • Converte uma data gregoriana para o "Julian Day Count"

gregoriantojd

(PHP 4, PHP 5, PHP 7, PHP 8)

gregoriantojd — Converte uma data gregoriana para o "Julian Day Count"

Descrição

gregoriantojd(int $month, int $day, int $year): int

A escala válida para o Calendário Gregoriano é de 25 de Novembro, 4714 A.C. até pelo menos 31 de Dezembro, 9999 D.C.

Entretanto esta função pode trabalhar com todas datas anteriores à, porém usá-la desta maneira não tem muito sentido. O Calendário Gregoriano não foi instituído até 15 de Outubro de 1582 (ou 5 de Outubro de 1582, no calendário JDC ("Julian Day Count")). Alguns países aceitaram este calendário um pouco mais tarde. Por exemplo, a Grã Bretanha converteu-se em 1752, a URSS em 1918 e a Grécia em 1923. A maioria dos países Europeus usaram o calendário "Julian" (JDC) antes do calendário Gregoriano.

Parâmetros

month

O mês como um número entre 1 (para janeiro) e 12 (para dezembro)

day

O dia como um número entre 1 e 31 Se o mês tem menos dias do que o especificado; veja o exemplo abaixo.

year

O ano como um número entre -4714 e 9999 Números negativos indicam anos A.C., números positivos indicam anos D.C. Note que não existe ano 0; 31 de Dezembro, 1 A.C. é seguido emediatamente por 1 de Janeiro, 1 D.C.

Valor Retornado

A data juliana para a dada data gregoriana como um inteiro. Datas fora da escala válida retornam 0.

Exemplos

Exemplo #1 Funções de Calendário

<?php
$jd = gregoriantojd(10,11,1970);
echo "$jd\n";
$gregorian = jdtogregorian($jd);
echo "$gregorian\n";
?>

O exemplo acima produzirá:

2440871
10/11/1970

Exemplo #2 Overflow behavior

<?php
echo gregoriantojd(2, 31, 2018), PHP_EOL,
gregoriantojd(3, 3, 2018), PHP_EOL;
?>

O exemplo acima produzirá:

2458181
2458181

Veja Também

  • jdtogregorian() - Converte uma data no formato "Julian Day Count" para o formato Gregoriano
  • cal_to_jd() - Converte um calendário (suportado) para o calendário "Julian Day Count"


Retorna o dia da semana de um dia Juliano

  • « gregoriantojd
  • jdmonthname »
  • PHP Manual
  • Calendário Funções
  • Retorna o dia da semana de um dia Juliano

jddayofweek

(PHP 4, PHP 5, PHP 7, PHP 8)

jddayofweek — Retorna o dia da semana de um dia Juliano

Descrição

jddayofweek(int $julian_day, int $mode = CAL_DOW_DAYNO): int|string

Retorna o dia da semana de um dia Juliano. Pode retornar uma string ou um inteiro dependendo do modo.

Parâmetros

julian_day

Um número inteiro do dia Juliano

mode
Modos de semana do calendário
Modo | Significado
0 (Padrão) | Retorna o número do dia como um int (0=domingo, 1=segunda, etc)
1 | Retorna uma string contendo o dia de semana (Inglês-Gregoriano)
2 | Retorna uma string contendo o dia da semana abreviado (Inglês-Gregoriano)

Valor Retornado

O dia da semana gregoriano como um inteiro ou uma string.


Retorna o nome de um mês

  • « jddayofweek
  • jdtofrench »
  • PHP Manual
  • Calendário Funções
  • Retorna o nome de um mês

jdmonthname

(PHP 4, PHP 5, PHP 7, PHP 8)

jdmonthname — Retorna o nome de um mês

Descrição

jdmonthname(int $julian_day, int $mode): string

Retorna uma "string" contendo o nome do mês. O parâmetro mode diz à função qual calendário será convertido para o formato "Julian Day Count", e o tipo do nome do mês.

Calendário (modos)
Modo | Significado | Valores
CAL_MONTH_GREGORIAN_SHORT | Gregoriano - abreviado | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
CAL_MONTH_GREGORIAN_LONG | Gregoriano | January, February, March, April, May, June, July, August, September, October, November, December
CAL_MONTH_JULIAN_SHORT | "Julian" - abreviado | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
CAL_MONTH_JULIAN_LONG | "Julian" | January, February, March, April, May, June, July, August, September, October, November, December
CAL_MONTH_JEWISH | Judeu | Tishri, Heshvan, Kislev, Tevet, Shevat, Adar, Adar I, Adar II, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
CAL_MONTH_FRENCH | Republicano Francês | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

Parâmetros

jday

A data juliana.

mode

O modo do calendário (veja tabela acima).

Valor Retornado

O nome do mês para a dada data juliana e mode.


Converte do calendário "Julian Day Count" para o calendário Republicano Francês

  • « jdmonthname
  • jdtogregorian »
  • PHP Manual
  • Calendário Funções
  • Converte do calendário "Julian Day Count" para o calendário Republicano Francês

jdtofrench

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtofrench — Converte do calendário "Julian Day Count" para o calendário Republicano Francês

Descrição

jdtofrench(int $julian_day): string

Converte do calendário "Julian Day Count" para o calendário Republicano Francês

Parâmetros

julian_day

Um número de data Juliana como inteiro

Valor Retornado

A data republicana francesa como uma string no formato "mês/dia/ano"

Veja Também

  • frenchtojd() - Converte uma data do calendário Republicano Francês para uma contagem de Dias Julianos
  • cal_from_jd() - Converte de uma Contagem de Dias Julianos para um calendário suportado


Converte uma data no formato "Julian Day Count" para o formato Gregoriano

  • « jdtofrench
  • jdtojewish »
  • PHP Manual
  • Calendário Funções
  • Converte uma data no formato "Julian Day Count" para o formato Gregoriano

jdtogregorian

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtogregorian — Converte uma data no formato "Julian Day Count" para o formato Gregoriano

Descrição

jdtogregorian(int $julian_day): string

Converte "Julian Day Count" para uma "string" contendo a data em formato Gregoriano "mês/dia/ano".

Parâmetros

julian_day

O número de uma data Juliana como inteiro

Valor Retornado

A data gregoriana no formato "mês/dia/ano"

Veja Também

  • gregoriantojd() - Converte uma data gregoriana para o "Julian Day Count"
  • cal_from_jd() - Converte de uma Contagem de Dias Julianos para um calendário suportado


Converte uma contagem de dias Julianos para uma data do calendário Judeu

  • « jdtogregorian
  • jdtojulian »
  • PHP Manual
  • Calendário Funções
  • Converte uma contagem de dias Julianos para uma data do calendário Judeu

jdtojewish

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtojewish — Converte uma contagem de dias Julianos para uma data do calendário Judeu

Descrição

jdtojewish(int $julian_day, bool $hebrew = false, int $flags = 0): string

Converte uma contagem de dias Julianos para o calendário Judeu.

Parâmetros

julian_day

O número do dia Juliano como um inteiro

hebrew

Se o parâmetro hebrew for definido para true, o parâmetro flags é usado para o formato de saída hebraico, baseado em string codificado em ISO-8859-8.

flags

Uma máscara de bits que pode consistir em CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM e CAL_JEWISH_ADD_GERESHAYIM.

Valor Retornado

A data Judia como uma string no formato "mês/dia/ano", ou uma data string codificada em em ISO-8859-8, hebraico, de acordo com o parâmetro hebrew.

Exemplos

Exemplo #1 Exemplo de jdtojewish()

<?php
$jd = gregoriantojd(10, 8, 2002);
echo jdtojewish($jd, true), PHP_EOL,
jdtojewish($jd, true, CAL_JEWISH_ADD_GERESHAYIM), PHP_EOL,
jdtojewish($jd, true, CAL_JEWISH_ADD_ALAFIM), PHP_EOL,
jdtojewish($jd, true,CAL_JEWISH_ADD_ALAFIM_GERESH), PHP_EOL;
?>

O exemplo acima produzirá:

? ???? ?????
?' ???? ????"?
? ???? ? ????? ????
? ???? ?'????

Veja Também

  • jewishtojd() - Converte uma data do calendário Judaico para o calendário "Julian Day Count"
  • cal_from_jd() - Converte de uma Contagem de Dias Julianos para um calendário suportado


Converte uma data do calendário "Julian Day Count" para o calendário "Julian"

  • « jdtojewish
  • jdtounix »
  • PHP Manual
  • Calendário Funções
  • Converte uma data do calendário "Julian Day Count" para o calendário "Julian"

jdtojulian

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtojulian — Converte uma data do calendário "Julian Day Count" para o calendário "Julian"

Descrição

jdtojulian(int $julian_day): string

Converte "Julian Day Count" para uma "string" contendo a data do calendário "Julian" no formato "mês/dia/ano".

Parâmetros

julian_day

O número de uma data Juliana como inteiro

Valor Retornado

A data Juliana como uma string no formato "mês/dia/ano"

Veja Também

  • juliantojd() - Converte datas no formato "Julian" para o formato "Julian Day Count"
  • cal_from_jd() - Converte de uma Contagem de Dias Julianos para um calendário suportado


Converte do formato de dada Juliana para Unix timestamp

  • « jdtojulian
  • jewishtojd »
  • PHP Manual
  • Calendário Funções
  • Converte do formato de dada Juliana para Unix timestamp

jdtounix

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtounix — Converte do formato de dada Juliana para Unix timestamp

Descrição

jdtounix(int $julian_day): int

Esta função irá retorna a data do sistema Unix correspondente ao "Julian Day" especificado no parâmetro julian_day A hora retornada é a UTC.

Parâmetros

julian_day

O número de um data juliana entre 2440588 e 106751993607888 em sistemas 64bit, ou entre 2440588 e 2465443 em sistemas 32bit.

Valor Retornado

O unix timestamp para o ínicio (meia noite, não meio dia) da dada data juliana.

Erros/Exceções

Se julian_day está fora do intervalo permitido, o erro ValueError é lançado.

Registro de Alterações

Versão | Descrição
8.0.0 | Essa funcão não retorna mais false em caso de falha, mas lança uma exceção ValueError.
7.3.24, 7.4.12 | O limite superior de julian_day foi extendido. Antes, era 2465342 sem levar a arquitetura em consideração.

Veja Também

  • unixtojd() - Converte um timestamp Unix para um dia Juliano


Converte uma data do calendário Judaico para o calendário "Julian Day Count"

  • « jdtounix
  • juliantojd »
  • PHP Manual
  • Calendário Funções
  • Converte uma data do calendário Judaico para o calendário "Julian Day Count"

jewishtojd

(PHP 4, PHP 5, PHP 7, PHP 8)

jewishtojd — Converte uma data do calendário Judaico para o calendário "Julian Day Count"

Descrição

jewishtojd(int $month, int $day, int $year): int

Entretanto esta função suporta datas anteriores ao ano 1 (3761 A.C.), porém tal uso não faz sentido. O calendário Judaico vem sendo usado por centenas de anos, porém os primeiros dias não tem uma fórmula que determina qual é o começo do mês. Um novo mês começa quando uma lua nova é vista.

Parâmetros

month

O mês como um número entre 1 e 13, onde 1 significa Tishri, 13 significa Elul, e 6 e 7 significa Adar em anos não bissexto, mas Adar I e Adar II, respectivamente, em anos bissextos.

day

O dia como um número entre 1 e 30. Se um mês tem apenas 29 dias, será considerado o primeiro dia do mês seguinte.

year

O ano como um número entre 1 e 9999

Valor Retornado

A data juliana para a dada data judaica como um inteiro.

Veja Também

  • jdtojewish() - Converte uma contagem de dias Julianos para uma data do calendário Judeu
  • cal_to_jd() - Converte um calendário (suportado) para o calendário "Julian Day Count"


Converte datas no formato "Julian" para o formato "Julian Day Count"

  • « jewishtojd
  • unixtojd »
  • PHP Manual
  • Calendário Funções
  • Converte datas no formato "Julian" para o formato "Julian Day Count"

juliantojd

(PHP 4, PHP 5, PHP 7, PHP 8)

juliantojd — Converte datas no formato "Julian" para o formato "Julian Day Count"

Descrição

juliantojd(int $month, int $day, int $year): int

O Calendário "Julian" vai de 4713 A.C. até 9999 D.C.

Entretanto esta função trabalha com datas anteriores à 4713 A.C, porém tal uso não faz muito sentido. O calendário foi criado em 46 A.C., mas os detalhes não foram padronizados até o ano 8 D.C., e talvez mais tarde no 4º século. Além disso, o começo do ano variou de uma cultura para outra - nem todas aceitaram o Janeiro como sendo o primeiro mês.

Cuidado

Lembre-se, o sistema atual de calendário que é usado mundialmente é o Gregoriano. A função gregoriantojd() pode ser usada para converter datas no formato Gregoriano para o formato "Julian Day Count".

Parâmetros

month

O mês como um número entre 1 (para janeiro) a 12 (para dezembro)

day

O dia como um número entre 1 a 31

year

O ano como um número entre -4713 a 9999

Valor Retornado

A data Juliana para a dada data Juliana como um inteiro.

Veja Também

  • jdtojulian() - Converte uma data do calendário "Julian Day Count" para o calendário "Julian"
  • cal_to_jd() - Converte um calendário (suportado) para o calendário "Julian Day Count"


Converte um timestamp Unix para um dia Juliano

  • « juliantojd
  • Data/Hora »
  • PHP Manual
  • Calendário Funções
  • Converte um timestamp Unix para um dia Juliano

unixtojd

(PHP 4, PHP 5, PHP 7, PHP 8)

unixtojd — Converte um timestamp Unix para um dia Juliano

Descrição

unixtojd(?int $timestamp = null): int|false

Retorna o dia Juliano para um timestamp Unix (segundos desde 01/01/1970), ou para o dia atual se nenhum timestamp for informado. De qualquer forma, o horário considerado é o local (não o UTC).

Parâmetros

timestamp

Um timestamp Unix a ser convertido.

Valor Retornado

O dia Juliano como um inteiro, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | timestamp agora pode ser nulo.

Veja Também

  • jdtounix() - Converte do formato de dada Juliana para Unix timestamp


Data e Hora

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Aritmética de Data e Horário
  • DateTime — A classe DateTime
    • DateTime::add — Modifica um objeto DateTime, com adição de dias, meses, anos, horas, minutos e segundos.
    • DateTime::__construct — Retorna um novo objeto DateTime
    • DateTime::createFromFormat — Interpreta um string de data/hora de acordo com um formato especificado.
    • DateTime::createFromImmutable — Retorna uma nova instância de DateTime encapsulando o objeto DateTimeImmutable informado
    • DateTime::createFromInterface — Retorna um novo objeto DateTime encapsulando o objeto DateTimeInterface informado
    • DateTime::getLastErrors — Sinônimo de DateTimeImmutable::getLastErrors
    • DateTime::modify — Altera o timestamp
    • DateTime::__set_state — O manipulador __set_state
    • DateTime::setDate — Define a data
    • DateTime::setISODate — Define uma data ISO
    • DateTime::setTime — Define o horário
    • DateTime::setTimestamp — Define a data e hora baseada em um timestamp Unix
    • DateTime::setTimezone — Define o fuso horário de um objeto DateTime
    • DateTime::sub — Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime
  • DateTimeImmutable — A classe DateTimeImmutable
    • DateTimeImmutable::add — Retorna um novo objeto, com adição de dias, meses, anos, horas, minutos e segundos
    • DateTimeImmutable::__construct — Retorna um novo objeto DateTimeImmutable
    • DateTimeImmutable::createFromFormat — Interpreta um string de data/hora de acordo com o formato especificado
    • DateTimeImmutable::createFromInterface — Retorna um novo objeto DateTimeImmutable encapsulando o objeto DateTimeInterface informado
    • DateTimeImmutable::createFromMutable — Retorna uma nova instância DateTimeImmutable que encapsula um objeto DateTime informado
    • DateTimeImmutable::getLastErrors — Retorna os avisos e erros
    • DateTimeImmutable::modify — Cria um novo objeto com seu timestamp modificado
    • DateTimeImmutable::__set_state — O manipulador __set_state
    • DateTimeImmutable::setDate — Define a data
    • DateTimeImmutable::setISODate — Define a data ISO
    • DateTimeImmutable::setTime — Define um horário
    • DateTimeImmutable::setTimestamp — Define a data e o horário com base em um timestamp Unix
    • DateTimeImmutable::setTimezone — Define o fuso horário
    • DateTimeImmutable::sub — Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos
  • DateTimeInterface — A interface DateTimeInterface
    • DateTimeInterface::diff — Retorna a diferença entre dois objetos DateTime
    • DateTimeInterface::format — Retorna a data formatada de acordo com um formato informado
    • DateTimeInterface::getOffset — Retorna o deslocamento do fuso horário
    • DateTimeInterface::getTimestamp — Obtém o timestamp Unix
    • DateTimeInterface::getTimezone — Retorna o fuso horário correspondente a um DateTime informado
    • DateTime::__wakeup — O manipulador __wakeup
  • DateTimeZone — A classe DateTimeZone
    • DateTimeZone::__construct — Cria um novo objeto DateTimeZone
    • DateTimeZone::getLocation — Retorna informações da localização de um fuso horário
    • DateTimeZone::getName — Retorna o nome do fuso horário
    • DateTimeZone::getOffset — Retorna o deslocamento do fuso horário ao Horário de Greenwish (GMT)
    • DateTimeZone::getTransitions — Retorna todas as transições para o fuso horário
    • DateTimeZone::listAbbreviations — Retorna um array associativo contendo indicativo de horário de verãorão(dst), deslocamento e nome do fuso horário
    • DateTimeZone::listIdentifiers — Retorna um array numericamente indexado contendo todos os indenticadores de fuso horário
  • DateInterval — A classe DateInterval
    • DateInterval::__construct — Cria um novo objeto DateInterval
    • DateInterval::createFromDateString — Cria um DateInterval de porções relativas da string
    • DateInterval::format — Formata um intervalo
  • DatePeriod — A classe DatePeriod
    • DatePeriod::__construct — Cria um novo objeto DatePeriod
    • DatePeriod::createFromISO8601String — Cria um novo objeto DatePeriod a partir de uma string ISO8601
    • DatePeriod::getDateInterval — Obtém o intervalo
    • DatePeriod::getEndDate — Obtém a data final
    • DatePeriod::getRecurrences — Obtém o número de recorrências
    • DatePeriod::getStartDate — Obtém a data inicial
  • Funções de Data/Hora
    • checkdate — Valida uma data gregoriana
    • date_add — Sinônimo de DateTime::add
    • date_create_from_format — Sinônimo de DateTime::createFromFormat
    • date_create_immutable_from_format — Sinônimo de DateTimeImmutable::createFromFormat
    • date_create_immutable — Cria um novo objeto DateTimeImmutable
    • date_create — Cria um novo objeto DateTime
    • date_date_set — Sinônimo de DateTime::setDate
    • date_default_timezone_get — Retorna o fuso horário padrão usado por todas as funções de data e tempo em um script
    • date_default_timezone_set — Configura o fuso horário padrão utilizado por todas as funções de data e hora em um script
    • date_diff — Sinônimo de DateTime::diff
    • date_format — Sinônimo de DateTime::format
    • date_get_last_errors — Sinônimo de DateTimeImmutable::getLastErrors
    • date_interval_create_from_date_string — Sinônimo de DateInterval::createFromDateString
    • date_interval_format — Sinônimo de DateInterval::format
    • date_isodate_set — Sinônimo de DateTime::setISODate
    • date_modify — Sinônimo de DateTime::modify
    • date_offset_get — Sinônimo de DateTime::getOffset
    • date_parse_from_format — Retorna informações sobre uma data informada de acordo com um formato
    • date_parse — Retorna um array associativo com informações detalhadas da data/hora informada
    • date_sub — Sinônimo de DateTime::sub
    • date_sun_info — Retorna um array com informações sobre pôr/nascer do sol e o início/fim do dia
    • date_sunrise — Retorna a hora do nascer do sol para um dia e uma localicação informados
    • date_sunset — Retorna a hora do pôr do sol para um dia e uma localização informados.
    • date_time_set — Sinônimo de DateTime::setTime
    • date_timestamp_get — Sinônimo de DateTime::getTimestamp
    • date_timestamp_set — Sinônimo de DateTime::setTimestamp
    • date_timezone_get — Sinônimo de DateTime::getTimezone
    • date_timezone_set — Sinônimo de DateTime::setTimezone
    • date — Formatar um timestamp Unix
    • getdate — Recupera informações de data/hora
    • gettimeofday — Obtém o horário atual
    • gmdate — Formata uma data/hora GMT/CUT
    • gmmktime — Obtém um timestamp Unix para uma data GMT
    • gmstrftime — Formata uma data/hora GMT/UTC de acordo com as configurações de localidade
    • idate — Formata uma parte de uma hora/data local como um inteiro
    • localtime — Obtém o horário local
    • microtime — Retorna o timestamp Unix atual com microssegundos
    • mktime — Obtém um timestamp Unix de uma data
    • strftime — Formata uma hora/data de acordo com as configurações locais
    • strptime — Interpreta uma hora/data gerada pela função strftime
    • strtotime — Interpreta qualquer descrição textual de data/hora em inglês para timestamp Unix
    • time — Retorna o timestamp Unix atual
    • timezone_abbreviations_list — Sinônimo de DateTimeZone::listAbbreviations
    • timezone_identifiers_list — Sinônimo de DateTimeZone::listIdentifiers
    • timezone_location_get — Sinônimo de DateTimeZone::getLocation
    • timezone_name_from_abbr — Retorna um nome de fuso horário através da abreviatura e do deslocamento UTC
    • timezone_name_get — Sinônimo de DateTimeZone::getName
    • timezone_offset_get — Sinônimo de DateTimeZone::getOffset
    • timezone_open — Sinônimo de DateTimeZone::__construct
    • timezone_transitions_get — Sinônimo de DateTimeZone::getTransitions
    • timezone_version_get — Obtém a versão do banco de dados de fuso horário.
  • Erros e Exceções de Data/Hora
  • Formatos de Data e Hora Suportados
  • Lista de Fusos Horários Suportados
    • África
    • América
    • Antártica
    • Ártico
    • Ásia
    • Atlântico
    • Austrália
    • Europa
    • Índia
    • Pacífico
    • Outros
  • DateError — A classe DateError
  • DateObjectError — A classe DateObjectError
  • DateRangeError — A classe DateRangeError
  • DateException — A classe DateException
  • DateInvalidOperationException — A classe DateInvalidOperationException
  • DateInvalidTimeZoneException — A classe DateInvalidTimeZoneException
  • DateMalformedIntervalStringException — The DateMalformedIntervalStringException class
  • DateMalformedPeriodStringException — A classe DateMalformedPeriodStringException
  • DateMalformedStringException — A classe DateMalformedStringException


Introdução

A classe DateTimeImmutable e classes relacionadas permitem representar informações de data/hora. Os objetos podem ser criados passando-se uma representação de informação de data/hora no formato string, ou a partir do horário atual do sistema.

Existe também um conjunto rico de métodos para modificar e formatar estas informações, incluindo manipulação de fusos horários e transições de horários de verão.

As características de data/hora no PHP implementam o calendários ISO 8601, que é um » calendário gregoriano proléptico que implementa as regras atuais de anos bissextos extendias a períodos anteriores ao que o calendário gregoriano foi adotado, e também inclui o ano 0 como o número do ano entre -1 AEC e 1 EC. Segundos intercalares não são suportados.

A informação de data e hora é armazenada internamente como um número de 64 bits, sendo assim, todas as datas úteis concebíveis (incluindo anos negativos) são suportadas. O intervalo vai de aproximadamente 292 bilhões de anos no passado até o mesmo valor no futuro.

Nota: Os fusos horários referenciados nesta seção podem ser encontrados em Lista de Fusos Horários Suportados.


Instalação

Nenhuma instalação é necessária para usar estas funções; elas fazem parte do núcleo do PHP.

Nota: Recuperando o banco de dados atualizado de fusos horários

A versão mais recente do banco de dados de fusos horários pode ser instalada com o pacote PECL » timezonedb.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração de Data/Hora
Nome | Padrão | Modificável | Registro de Alterações
date.default_latitude | "31.7667" | INI_ALL |
date.default_longitude | "35.2333" | INI_ALL |
date.sunrise_zenith | "90.833333" | INI_ALL | Antes do PHP 8.0.0, o padrão era "90.583333"
date.sunset_zenith | "90.833333" | INI_ALL | Antes do PHP 8.0.0, o padrão era "90.583333"
date.timezone | "UTC" | INI_ALL | A partir do PHP 8.2, um aviso é emitido quando este parâmetros é configurado para um valor inválido ou para um string vazio.
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

date.default_latitude float

A latitude padrão variando de 0 no equador, até +90 para o norte, e -90 para o sul.

date.default_longitude float

A longitude padrão variando de 0 no meridiano primário até +180 para o leste e -180 para o oeste.

date.sunrise_zenith float

O ápice do nascer do sol padrão.

O valor padrão é 90°50'. Os 50' adicionais são devido a dois componentes: o raio aparente do sol, que é 16', e a refração atmosférica aparente, que é de 34'.

date.sunset_zenith float

O ápice do pôr-do-sol padrão.

date.timezone string

O fuso horário padrão usado por todas as funções de data/hora. A ordem de precedência para qual fuso horário será utilizado se nenhum for explicitamente mencionado é descrita na função date_default_timezone_get(). Acesse Lista de Fusos Horários Suportados para uma lista de todos os fusos horários suportados.

Nota: As primeiras quatro opções de configuração são utilizadas somente pelas funções date_sunrise() e date_sunset().


Constantes pré-definidas

As constantes DATE_ estão definidas e oferecem uma representação padrão de datas, que podem ser utilizadas em conjunto com funções de formatação de data (como a função date()).

As seguintes contantes especificam o formato retornado pelas funções date_sunrise() e date_sunset().

SUNFUNCS_RET_TIMESTAMP (int)
Timestamp
SUNFUNCS_RET_STRING (int)
Horas:minutos (examplo: 08:02)
SUNFUNCS_RET_DOUBLE (int)
Horas como número em ponto flutuante (exemplo 8.75)


  • « Constantes pré-definidas
  • Aritmética de Data e Horário »
  • PHP Manual
  • Data/Hora
  • Exemplos

Exemplos

Índice

  • Aritmética de Data e Horário


Aritmética de Data e Horário

Os exemplos a seguir mostram algumas armadilhas da aritmética de Data/Horário em relação a transições de horário de verão e meses que contêm números diferentes de dias.

Exemplo #1 DateTimeImmutable::add/sub adicionando intervalos que tempo decorrido

Adicionar PT24H sobre uma transição de horário de verão irá aparentar uma adição de 23/25 horas (para a maioria dos fusos horários).

<?php
$dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->add(new DateInterval("PT3H"));
echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

O exemplo acima produzirá:

Start: 2015-11-01 00:00:00 -04:00
End:   2015-11-01 02:00:00 -05:00

Exemplo #2 DateTimeImmutable::modify e strtotime incrementando ou decrementando valores de componentes individuais

Adicionar +24 horas sobre uma transição de horário de verão irá adicionar exatamente 24 horas como visto na string de data/hora (a menos que o horário de início ou fim esteja em um ponto de transição).

<?php
$dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("+24 hours");
echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

O exemplo acima produzirá:

Start: 2015-11-01 00:00:00 -04:00
End:   2015-11-02 00:00:00 -05:00

Exemplo #3 Adicionar ou substrair períodos pode causar transferência de datas

Como em 31 de janeiro + 1 mês, irá resultar em 2 de março (em ano bissexto) ou 3 de março (em ano normal).

<?php
echo "Ano normal:\n"; // fevereiro tem 28 dias
$dt = new DateTimeImmutable("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Início: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("+1 month");
echo "Fim: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Ano bissexto:\n"; // fevereiro tem 29 dias
$dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Início: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("+1 month");
echo "Fim: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

O exemplo acima produzirá:

Ano normal:
Início: 2015-01-31 00:00:00 -05:00
Fim:   2015-03-03 00:00:00 -05:00
Ano bissexto:
Início: 2016-01-31 00:00:00 -05:00
Fim:   2016-03-02 00:00:00 -05:00

PAra obter o último dia do mês seguinte (para evitar a transferência), o formato last day of está disponível.

<?php
echo "Ano normal:\n"; // fevereiro tem 28 dias
$dt = new DateTimeImmutable("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Início: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("last day of next month");
echo "Fim: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Ano bissexto:\n"; // fevereiro tem 29 dias
$dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Início: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("last day of next month");
echo "Fim: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

O exemplo acima produzirá:

Normal year:
Start: 2015-01-31 00:00:00 -05:00
End:   2015-02-28 00:00:00 -05:00
Leap year:
Start: 2016-01-31 00:00:00 -05:00
End:   2016-02-29 00:00:00 -05:00


A classe DateTime

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Introdução

Representação de data e hora.

Esta classe se comporta da mesma maneira que a classe DateTimeImmutable, exceto pelo fato de que os objetos se alteram quando métodos de modificação como DateTime::modify() são chamados.

Aviso

Chamar métodos em objetos da classe DateTime irá alterar a informação encapsulada nestes objetos. Se você quiser evitar isso, terá que usar o operador clone para criar um novo objeto. É recomendado usar DateTimeImmutable no lugar de DateTime para obter este comportamento por padrão.

Resumo da classe

class DateTime implements DateTimeInterface {
/* Constantes herdadas */
public const string DateTimeInterface::ATOM = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T";
public const string DateTimeInterface::ISO8601 = "Y-m-d\\TH:i:sO";
public const string DateTimeInterface::ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC822 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T";
public const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC3339 = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string DateTimeInterface::RSS = "D, d M Y H:i:s O";
public const string DateTimeInterface::W3C = "Y-m-d\\TH:i:sP";
/* Métodos */
public __construct(string $datetime = "now", ?DateTimeZone $timezone = null)
public add(DateInterval $interval): DateTime
public static createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false
public static createFromImmutable(DateTimeImmutable $object): static
public static createFromInterface(DateTimeInterface $object): DateTime
public modify(string $modifier): DateTime|false
public static __set_state(array $array): DateTime
public setDate(int $year, int $month, int $day): DateTime
public setISODate(int $year, int $week, int $dayOfWeek = 1): DateTime
public setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTime
public setTimestamp(int $timestamp): DateTime
public setTimezone(DateTimeZone $timezone): DateTime
public sub(DateInterval $interval): DateTime
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone|false
public __wakeup(): void
}

Registro de Alterações

Versão | Descrição
7.2.0 | As constantes da classe DateTime são agora definidas na classe DateTimeInterface.
7.1.0 | O construtor da classe DateTime agora inclui os microssegundos atuais no valor construído. Antes disso, ele sempre inicializava os microssegundos em 0.

Índice

  • DateTime::add — Modifica um objeto DateTime, com adição de dias, meses, anos, horas, minutos e segundos.
  • DateTime::__construct — Retorna um novo objeto DateTime
  • DateTime::createFromFormat — Interpreta um string de data/hora de acordo com um formato especificado.
  • DateTime::createFromImmutable — Retorna uma nova instância de DateTime encapsulando o objeto DateTimeImmutable informado
  • DateTime::createFromInterface — Retorna um novo objeto DateTime encapsulando o objeto DateTimeInterface informado
  • DateTime::getLastErrors — Sinônimo de DateTimeImmutable::getLastErrors
  • DateTime::modify — Altera o timestamp
  • DateTime::__set_state — O manipulador __set_state
  • DateTime::setDate — Define a data
  • DateTime::setISODate — Define uma data ISO
  • DateTime::setTime — Define o horário
  • DateTime::setTimestamp — Define a data e hora baseada em um timestamp Unix
  • DateTime::setTimezone — Define o fuso horário de um objeto DateTime
  • DateTime::sub — Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime


Modifica um objeto DateTime, com adição de dias, meses, anos, horas, minutos e segundos.

  • « DateTime
  • DateTime::__construct »
  • PHP Manual
  • DateTime
  • Modifica um objeto DateTime, com adição de dias, meses, anos, horas, minutos e segundos.

DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::add -- date_add — Modifica um objeto DateTime, com adição de dias, meses, anos, horas, minutos e segundos.

Descrição

Estilo orientado a objetos

public DateTime::add(DateInterval $interval): DateTime

Estilo procedural

date_add(DateTime $object, DateInterval $interval): DateTime

Adiciona o objeto DateInterval informado a um objeto DateTime especificado.

Equivalente a DateTimeImmutable::add() mas funciona com DateTime.

A versão procedural usa o objeto DateTime como primeiro argumento.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.

interval

Um objeto DateInterval

Valor Retornado

Retorna o objeto DateTime modificado para encadeamento de métodos.

Veja Também

  • DateTimeImmutable::add() - Retorna um novo objeto, com adição de dias, meses, anos, horas, minutos e segundos


Retorna um novo objeto DateTime

  • « DateTime::add
  • DateTime::createFromFormat »
  • PHP Manual
  • DateTime
  • Retorna um novo objeto DateTime

DateTime::__construct

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::__construct — Retorna um novo objeto DateTime

Descrição

public DateTime::__construct(string $datetime = "now", ?DateTimeZone $timezone = null)

Equivalente a DateTimeImmutable::__construct() mas funciona com DateTime. Considere usar DateTimeImmutable e suas caracterísitcas.

Retorna um novo objeto DateTime.

Parâmetros

datetime

Uma string de data/hora. Os formatos válidos são explicados em Formatos de Data e Hora.

Coloque "now" neste parâmetro para obter o horário atual quando utilizar o parâmetro $timezone.

timezone

Um objeto DateTimeZone, representando o fuso horário do parâmetro $datetime.

Se $timezone for null ou omitido, o fuso horário atual será utilizado.

Nota:

O parâmetro $timezone e o fuso horário atual são ignorados quando o parâmetro $datetime é um timestamp UNIX (exemplo, @946684800) ou quando o fuso horário é informado (exemplo. 2010-01-28T15:00:00+02:00).

Valor Retornado

Retorna uma nova instância de DateTime.

Erros/Exceções

Se uma string inválida de data/hora for passada, uma exceção DateMalformedStringException é disparada. Antes do PHP 8.3, era uma Exception.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora dispara DateMalformedStringException se uma string inválida é passada, em vez de Exception.

Veja Também

  • DateTimeImmutable::__construct() - Retorna um novo objeto DateTimeImmutable


Interpreta um string de data/hora de acordo com um formato especificado.

  • « DateTime::__construct
  • DateTime::createFromImmutable »
  • PHP Manual
  • DateTime
  • Interpreta um string de data/hora de acordo com um formato especificado.

DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::createFromFormat -- date_create_from_format — Interpreta um string de data/hora de acordo com um formato especificado.

Descrição

Estilo orientado a objetos

public static DateTime::createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false

Estilo procedural

date_create_from_format(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false

Retorna um novo objeto DateTime representando a data e a hora especificadas pelo string datetime, que foi formatado de acordo com o parâmetro format fornecido.

Equivalente a DateTimeImmutable::createFromFormat() e date_create_immutable_from_format(), respectivamente, mas cria um objeto DateTime.

Este método, incluindo parâmetros, exemplos e considerações estão documentados na página DateTimeImmutable::createFromFormat.

Parâmetros

Ver DateTimeImmutable::createFromFormat.

Valor Retornado

Retorna uma nova instância de DateTime ou false em caso de falha.

Erros/Exceções

Este método dispara uma exceção ValueError quando o parâmetro datetime contém bytes nulos.

Registro de Alterações

Versão | Descrição
8.0.21, 8.1.8, 8.2.0 | Agora dispara ValueError quando bytes nulos são passados pelo parâmetro datetime, o que antes era silencioamente ignorado.

Exemplos

Para um conjunto extenso de exemplos, veja DateTimeImmutable::createFromFormat.

Veja Também

  • DateTimeImmutable::createFromFormat() - Interpreta um string de data/hora de acordo com o formato especificado


Retorna uma nova instância de DateTime encapsulando o objeto DateTimeImmutable informado

  • « DateTime::createFromFormat
  • DateTime::createFromInterface »
  • PHP Manual
  • DateTime
  • Retorna uma nova instância de DateTime encapsulando o objeto DateTimeImmutable informado

DateTime::createFromImmutable

(PHP 7 >= 7.3.0, PHP 8)

DateTime::createFromImmutable — Retorna uma nova instância de DateTime encapsulando o objeto DateTimeImmutable informado

Descrição

public static DateTime::createFromImmutable(DateTimeImmutable $object): static

Parâmetros

object

O objeto imutável DateTimeImmutable que necessita ser convertido para uma versão mutável. Este objeto não é modificado, em vez disso uma nova instância DateTime é criada contendo as mesmas informações de data, horário e fuso.

Valor Retornado

Retorna uma nova instância DateTime.

Registro de Alterações

Versão | Descrição
8.0.0 | O método agora retorna uma instância da classe que está sendo chamada. Anteriormente, ele criava uma nova instância de DateTime.

Exemplos

Exemplo #1 Criando um objeto de data/hora mutável

<?php
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");

$mutable = DateTime::createFromImmutable( $date );
?>


Retorna um novo objeto DateTime encapsulando o objeto DateTimeInterface informado

  • « DateTime::createFromImmutable
  • DateTime::getLastErrors »
  • PHP Manual
  • DateTime
  • Retorna um novo objeto DateTime encapsulando o objeto DateTimeInterface informado

DateTime::createFromInterface

(PHP 8)

DateTime::createFromInterface — Retorna um novo objeto DateTime encapsulando o objeto DateTimeInterface informado

Descrição

public static DateTime::createFromInterface(DateTimeInterface $object): DateTime

Parâmetros

object

O objeto DateTimeInterface que necessita ser convertido para uma versão mutável. Este objeto não é modificado, em vez disso uma nova instância DateTime é criada contendo as mesmas informações de data, horário e fuso.

Valor Retornado

Retorna uma nova instância de DateTime.

Exemplos

Exemplo #1 Criando um objeto de data/hora mutável

<?php
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");

$mutable = DateTime::createFromInterface($date);

$date = new DateTime("2014-06-20 11:45 Europe/London");
$also_mutable = DateTime::createFromInterface($date);
?>


Sinônimo de DateTimeImmutable::getLastErrors

  • « DateTime::createFromInterface
  • DateTime::modify »
  • PHP Manual
  • DateTime
  • Sinônimo de DateTimeImmutable::getLastErrors

DateTime::getLastErrors

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::getLastErrors — Sinônimo de DateTimeImmutable::getLastErrors()

Descrição

Esta função é um apelido para: DateTimeImmutable::getLastErrors()


Altera o timestamp

  • « DateTime::getLastErrors
  • DateTime::__set_state »
  • PHP Manual
  • DateTime
  • Altera o timestamp

DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::modify -- date_modify — Altera o timestamp

Descrição

Estilo orientado a objetos

public DateTime::modify(string $modifier): DateTime|false

Estilo procedural

date_modify(DateTime $object, string $modifier): DateTime|false

Altera o timestamp de um objeto DateTime, incrementando-o ou decrementando-o, em um formato aceito pela função DateTimeImmutable::__construct().

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.

modifier

Uma string de data/hora. Os formatos válidos são explicados em Formatos de Data e Hora.

Valor Retornado

Retorna o objeto DateTime modificado para encadeamento de métodos ou false em caso de falha.

Erros/Exceções

Apenas para API orientada a objetos: Se uma string inválida de data/hora for passada, é disparada uma exceção DateMalformedStringException.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora dispara a exceção DateMalformedStringException com DateTime::modify() se uma string inválida for passada, em vez de um aviso. date_modify() não foi modificada.

Exemplos

Exemplo #1 Exemplo do método DateTime::modify()

Estilo orientado a objetos

<?php
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');
?>

Estilo procedural

<?php
$date = date_create('2006-12-12');
date_modify($date, '+1 day');
echo date_format($date, 'Y-m-d');
?>

Os exemplos acima produzirão:

2006-12-13

Exemplo #2 Cuidados na adição ou subtração de meses

<?php
$date = new DateTime('2000-12-31');

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
?>

O exemplo acima produzirá:

2001-01-31
2001-03-03

Exemplo #3 Todos os formatos de data e horário são suportados

<?php
$date = new DateTime('2020-12-31');

$date->modify('July 1st, 2023');
echo $date->format('Y-m-d H:i') . "\n";

$date->modify('Monday next week');
echo $date->format('Y-m-d H:i') . "\n";

$date->modify('17:30');
echo $date->format('Y-m-d H:i') . "\n";
?>

O exemplo acima produzirá:

2023-07-01 00:00
2023-07-03 00:00
2023-07-03 17:30

Veja Também

  • strtotime() - Interpreta qualquer descrição textual de data/hora em inglês para timestamp Unix
  • DateTimeImmutable::modify() - Cria um novo objeto com seu timestamp modificado
  • DateTime::add() - Modifica um objeto DateTime, com adição de dias, meses, anos, horas, minutos e segundos.
  • DateTime::sub() - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime
  • DateTime::setDate() - Define a data
  • DateTime::setISODate() - Define uma data ISO
  • DateTime::setTime() - Define o horário
  • DateTime::setTimestamp() - Define a data e hora baseada em um timestamp Unix


O manipulador __set_state

  • « DateTime::modify
  • DateTime::setDate »
  • PHP Manual
  • DateTime
  • O manipulador __set_state

DateTime::__set_state

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::__set_state — O manipulador __set_state

Descrição

public static DateTime::__set_state(array $array): DateTime

O manipulador __set_state().

Equivalente a DateTimeImmutable::__set_state() mas funciona com DateTime.

Parâmetros

array

Inicialização do array.

Valor Retornado

Retorna uma nova instância de um objeto DateTime.


Define a data

  • « DateTime::__set_state
  • DateTime::setISODate »
  • PHP Manual
  • DateTime
  • Define a data

DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setDate -- date_date_set — Define a data

Descrição

Estilo orientado a objetos

public DateTime::setDate(int $year, int $month, int $day): DateTime

Estilo procedural

date_date_set(
DateTime $object,
int $year,
int $month,
int $day
): DateTime

Redefine a data atual do objeto Datetime para uma diferente.

Equivalente a DateTimeImmutable::setDate() mas funciona com DateTime, e modifica o objeto existente.

A versão procedural usa o objeto DateTime como seu primeiro argumento.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.

year

Ano da data.

month

Mês da data.

day

Dia da data.

Valor Retornado

Retorna o objeto DateTime modificado para encadeamento de métodos.

Veja Também

  • DateTimeImmutable::setDate() - Define a data


Define uma data ISO

  • « DateTime::setDate
  • DateTime::setTime »
  • PHP Manual
  • DateTime
  • Define uma data ISO

DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setISODate -- date_isodate_set — Define uma data ISO

Descrição

Estilo orientado a objetos

public DateTime::setISODate(int $year, int $week, int $dayOfWeek = 1): DateTime

Estilo procedural

date_isodate_set(
DateTime $object,
int $year,
int $week,
int $dayOfWeek = 1
): DateTime

Define uma data, de acordo com o padrão ISO 8601 - utilizando a diferença de semanas e dias em vez de datas específicas.

Equivalente a DateTimeImmutable::setISODate() mas funciona com DateTime.

A versão procedural usa o objeto DateTime como seu primeiro argumento.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.

year

Ano da data.

week

Semana da data.

dayOfWeek

Diferença do primeiro dia da semana.

Valor Retornado

Retorna o objeto DateTime modificado para encadeamento de métodos.

Veja Também

  • DateTimeImmutable::setISODate() - Define a data ISO


Define o horário

  • « DateTime::setISODate
  • DateTime::setTimestamp »
  • PHP Manual
  • DateTime
  • Define o horário

DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setTime -- date_time_set — Define o horário

Descrição

Estilo orientado a objetos

public DateTime::setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTime

Estilo procedural

date_time_set(
DateTime $object,
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTime

Redefine o horário atual do objeto DateTime para um diferente.

Equivalente a DateTimeImmutable::setTime() mas funciona com DateTime.

A versão procedural usa o objeto DateTime como seu primeiro argumento.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.

hour

Horas do horário.

minute

Minutos do horário.

second

Segundos do horário.

microsecond

Microssegundos do horário.

Valor Retornado

Retorna o objeto DateTime modificado para encadeamento de métodos.

Registro de Alterações

Versão | Descrição
8.1.0 | O comportamento com duplicidade de horários existentes (durante um retorno de horário de verão) mudou. Anteriormente, o PHP pegaria a segunda ocorrência (depois do retorno do horário de verão), em vez da primeira ocorrência (antes do retorno do horário de verão).
7.1.0 | O parâmetro microsecond foi adicionado.

Veja Também

  • DateTimeImmutable::setTime() - Define um horário


Define a data e hora baseada em um timestamp Unix

  • « DateTime::setTime
  • DateTime::setTimezone »
  • PHP Manual
  • DateTime
  • Define a data e hora baseada em um timestamp Unix

DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::setTimestamp -- date_timestamp_set — Define a data e hora baseada em um timestamp Unix

Descrição

Estilo orientado a objetos

public DateTime::setTimestamp(int $timestamp): DateTime

Estilo procedural

date_timestamp_set(DateTime $object, int $timestamp): DateTime

Define a data e hora baseada em um timestamp Unix.

Equivalente a DateTimeImmutable::setTimestamp() mas funciona com DateTime.

A versão procedural usa o objeto DateTime como seu primeiro argumento.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.

timestamp

Timestam Unix representando a data. Configurar o timestamp fora dos limites de int é possível utilizando o método DateTimeImmutable::modify() com o formato @.

Valor Retornado

Retorna o objeto DateTime modificado para encadeamento de métodos.

Veja Também

  • DateTimeImmutable::setTimestamp() - Define a data e o horário com base em um timestamp Unix


Define o fuso horário de um objeto DateTime

  • « DateTime::setTimestamp
  • DateTime::sub »
  • PHP Manual
  • DateTime
  • Define o fuso horário de um objeto DateTime

DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setTimezone -- date_timezone_set — Define o fuso horário de um objeto DateTime

Descrição

Estilo orientado a objetos

public DateTime::setTimezone(DateTimeZone $timezone): DateTime

Estilo procedural

date_timezone_set(DateTime $object, DateTimeZone $timezone): DateTime

Define um novo fuso horário a um objeto (object) DateTime.

Equivalente a DateTimeImmutable::setTimezone() mas funciona com DateTime.

A versão procedural usa o objeto DateTime como seu primeiro argumento.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.

timezone

Um objeto DateTimeZone que representa o fuso horário desejado.

Valor Retornado

Retorna o objeto da classe DateTime para ligação de métodos. O ponto no tempo subjacente não é modificado quando este método é chamado.

Exemplos

Exemplo #1 Exemplo do método DateTime::setTimeZone()

Estilo orientado a objetos

<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Estilo procedural

<?php
$date = date_create('2000-01-01', timezone_open('Pacific/Nauru'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";

date_timezone_set($date, timezone_open('Pacific/Chatham'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";
?>

Os exemplos acima produzirão:

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

Veja Também

  • DateTimeImmutable::setTimezone() - Define o fuso horário
  • DateTime::getTimezone() - Retorna o fuso horário correspondente a um DateTime informado
  • DateTimeZone::__construct() - Cria um novo objeto DateTimeZone


Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime

  • « DateTime::setTimezone
  • DateTimeImmutable »
  • PHP Manual
  • DateTime
  • Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime

DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::sub -- date_sub — Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime

Descrição

Estilo orientado a objetos

public DateTime::sub(DateInterval $interval): DateTime

Estilo procedural

date_sub(DateTime $object, DateInterval $interval): DateTime

Modifica o objeto DateTime especificado, subtraindo o objeto DateInterval especificado.

Equivalente a DateTimeImmutable::sub() mas funciona com DateTime.

A versão procedural usa o objeto DateTime como seu primeiro argumento.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.

interval

Um objeto DateInterval

Valor Retornado

Retorna o objeto DateTime modificado para encadeamento de métodos.

Erros/Exceções

Apenas para API orientada a objeto: Se uma operação não suportada for realizada, como o uso de um objeto DateInterval representando especificações de tempo relativo tipo next weekday, uma exceção DateInvalidOperationException é disparada.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora dispara uma exceção DateInvalidOperationException com DateTime::sub(), em vez de um aviso quando uma operação não suportada é realizada. A função date_sub() não foi modificada.

Veja Também

  • DateTimeImmutable::sub() - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos


A classe DateTimeImmutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

Representação de data e hora.

Esta classe se comporta como a classe DateTime exceto pelo fato de que novos objetos são retornados quando métodos de modificação como DateTime::modify() são chamados.

Resumo da classe

class DateTimeImmutable implements DateTimeInterface {
/* Constantes herdadas */
public const string DateTimeInterface::ATOM = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T";
public const string DateTimeInterface::ISO8601 = "Y-m-d\\TH:i:sO";
public const string DateTimeInterface::ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC822 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T";
public const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC3339 = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string DateTimeInterface::RSS = "D, d M Y H:i:s O";
public const string DateTimeInterface::W3C = "Y-m-d\\TH:i:sP";
/* Métodos */
public __construct(string $datetime = "now", ?DateTimeZone $timezone = null)
public add(DateInterval $interval): DateTimeImmutable
public static createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false
public static createFromInterface(DateTimeInterface $object): DateTimeImmutable
public static createFromMutable(DateTime $object): static
public static getLastErrors(): array|false
public modify(string $modifier): DateTimeImmutable|false
public static __set_state(array $array): DateTimeImmutable
public setDate(int $year, int $month, int $day): DateTimeImmutable
public setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable
public setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTimeImmutable
public setTimestamp(int $timestamp): DateTimeImmutable
public setTimezone(DateTimeZone $timezone): DateTimeImmutable
public sub(DateInterval $interval): DateTimeImmutable
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone|false
public __wakeup(): void
}

Registro de Alterações

Versão | Descrição
7.1.0 | O construtor da classe DateTimeImmutable agora inclui os microssegundos atuais no valor construído. Antes disso, ele iria sempre inicializar os microssegundos em 0.

Índice

  • DateTimeImmutable::add — Retorna um novo objeto, com adição de dias, meses, anos, horas, minutos e segundos
  • DateTimeImmutable::__construct — Retorna um novo objeto DateTimeImmutable
  • DateTimeImmutable::createFromFormat — Interpreta um string de data/hora de acordo com o formato especificado
  • DateTimeImmutable::createFromInterface — Retorna um novo objeto DateTimeImmutable encapsulando o objeto DateTimeInterface informado
  • DateTimeImmutable::createFromMutable — Retorna uma nova instância DateTimeImmutable que encapsula um objeto DateTime informado
  • DateTimeImmutable::getLastErrors — Retorna os avisos e erros
  • DateTimeImmutable::modify — Cria um novo objeto com seu timestamp modificado
  • DateTimeImmutable::__set_state — O manipulador __set_state
  • DateTimeImmutable::setDate — Define a data
  • DateTimeImmutable::setISODate — Define a data ISO
  • DateTimeImmutable::setTime — Define um horário
  • DateTimeImmutable::setTimestamp — Define a data e o horário com base em um timestamp Unix
  • DateTimeImmutable::setTimezone — Define o fuso horário
  • DateTimeImmutable::sub — Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos


Retorna um novo objeto, com adição de dias, meses, anos, horas, minutos e segundos

  • « DateTimeImmutable
  • DateTimeImmutable::__construct »
  • PHP Manual
  • DateTimeImmutable
  • Retorna um novo objeto, com adição de dias, meses, anos, horas, minutos e segundos

DateTimeImmutable::add

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::add — Retorna um novo objeto, com adição de dias, meses, anos, horas, minutos e segundos

Descrição

public DateTimeImmutable::add(DateInterval $interval): DateTimeImmutable

Cria um novo objeto DateTimeImmutable, e adiciona o objeto DateInterval a ele, para representar o novo valor.

Parâmetros

interval

Um objeto DateInterval

Valor Retornado

Retorna um novo objeto DateTimeImmutable com os dados modificados.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::add()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable('2000-01-01');
$newDate = $date->add(new DateInterval('P10D'));
echo $newDate->format('Y-m-d') . "\n";
?>

Exemplo #2 Mais exemplos da função DateTimeImmutable::add()

<?php
$date = new DateTimeImmutable('2000-01-01');
$newDate = $date->add(new DateInterval('PT10H30S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";

$date = new DateTimeImmutable('2000-01-01');
$newDate = $date->add(new DateInterval('P7Y5M4DT4H3M2S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";
?>

O exemplo acima produzirá:

2000-01-01 10:00:30
2007-06-05 04:03:02

Exemplo #3 Cuidado ao adicionar meses

<?php
$date = new DateTimeImmutable('2000-12-31');
$interval = new DateInterval('P1M');

$newDate1 = $date->add($interval);
echo $newDate1->format('Y-m-d') . "\n";

$newDate2 = $newDate1->add($interval);
echo $newDate2->format('Y-m-d') . "\n";
?>

O exemplo acima produzirá:

2001-01-31
2001-03-03

Veja Também

  • DateTimeImmutable::sub() - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos
  • DateTimeImmutable::diff() - Retorna a diferença entre dois objetos DateTime
  • DateTimeImmutable::modify() - Cria um novo objeto com seu timestamp modificado


Retorna um novo objeto DateTimeImmutable

  • « DateTimeImmutable::add
  • DateTimeImmutable::createFromFormat »
  • PHP Manual
  • DateTimeImmutable
  • Retorna um novo objeto DateTimeImmutable

DateTimeImmutable::__construct

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::__construct -- date_create_immutable — Retorna um novo objeto DateTimeImmutable

Descrição

Estilo orientado a objetos

public DateTimeImmutable::__construct(string $datetime = "now", ?DateTimeZone $timezone = null)

Estilo procedural

date_create_immutable(string $datetime = "now", ?DateTimeZone $timezone = null): DateTimeImmutable|false

Retorna um novo objeto DateTimeImmutable.

Parâmetros

datetime

Uma string de data/hora. Os formatos válidos são explicados em Formatos de Data e Hora.

Utilize "now" para obter o horário atual quando usar o parâmetro$timezone.

timezone

Um objeto DateTimeZone representando o fuso horário do parâmetro $datetime.

Se $timezone for null ou omitido, o fuso horário atual será utilizado.

Nota:

O parâmetro $timezone e o fuso horário atual são ignorados quando o parâmetro $datetime for um timestamp UNIX (ex.: @946684800) ou especificar um fuso horário (ex.: 2010-01-28T15:00:00+02:00 ou 2010-07-05T06:00:00Z).

Valor Retornado

Retorna uma nova instância de DateTimeImmutable.

Erros/Exceções

Se um string inválido de data/hora for passado, uma exceção DateMalformedStringException é disparada. Antes do PHP 8.3, era Exception.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora dispara DateMalformedStringException se uma string inválida for passada, em vez de Exception.
7.1.0 | De agora em diante os microssegundos são preenchidos com o valor real. Não mais com '00000'.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::__construct()

Estilo orientado a objetos

<?php
try {
$date = new DateTimeImmutable('2000-01-01');
} catch (Exception $e) {
echo $e->getMessage();
exit(1);
}

echo $date->format('Y-m-d');
?>

Estilo procedural

<?php
$date = date_create('2000-01-01');
if (!$date) {
$e = date_get_last_errors();
foreach ($e['errors'] as $error) {
echo "$error\n";
}
exit(1);
}

echo date_format($date, 'Y-m-d');
?>

Os exemplos acima produzirão:

2000-01-01

Exemplo #2 Complexidades de DateTimeImmutable::__construct()

<?php
// Data/hora especificada no fuso horário do seu computador.
$date = new DateTimeImmutable('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Data/hora especificada no fuso horário informado.
$date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Data/hora atual no fuso horário do seu computador.
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:sP') . "\n";

// Data/hora atual no fuso horário informado.
$date = new DateTimeImmutable('now', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Usando um timestamp UNIX. Note que o resultado é no fuso horário UTC.
$date = new DateTimeImmutable('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Valores não existentes são transferidos.
$date = new DateTimeImmutable('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

O exemplo acima produzirá algo semelhante a:

2000-01-01 00:00:00-05:00
2000-01-01 00:00:00+12:00
2010-04-24 10:24:16-04:00
2010-04-25 02:24:16+12:00
2000-01-01 00:00:00+00:00
2000-03-01 00:00:00-05:00

Exemplo #3 Mudando o fuso horário associado

<?php
$timeZone = new \DateTimeZone('Asia/Tokyo');

$time = new \DateTimeImmutable();
$time = $time->setTimezone($timeZone);

echo $time->format('Y/m/d H:i:s'), "\n";
?>

O exemplo acima produzirá algo semelhante a:

2022/08/12 23:49:23

Exemplo #4 Usando uma string relativo de data/hora

<?php
$time = new \DateTimeImmutable("-1 year");

echo $time->format('Y/m/d H:i:s'), "\n";
?>

O exemplo acima produzirá algo semelhante a:

2021/08/12 15:43:51


Interpreta um string de data/hora de acordo com o formato especificado

  • « DateTimeImmutable::__construct
  • DateTimeImmutable::createFromInterface »
  • PHP Manual
  • DateTimeImmutable
  • Interpreta um string de data/hora de acordo com o formato especificado

DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::createFromFormat -- date_create_immutable_from_format — Interpreta um string de data/hora de acordo com o formato especificado

Descrição

Estilo orientado a objetos

public static DateTimeImmutable::createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false

Estilo procedural

date_create_immutable_from_format(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false

Retorna um novo objeto DateTimeImmutable representando a data e o horário especificados pelo string datetime, formatado pelo parâmetro format.

Parâmetros

format

O formato no qual a string passada deve estar. Veja as opções de formatação abaixo. Na maioria dos casos, as mesmas letras da função date() podem ser usadas.

Todos os campos são inicializados com a data/hora atual. Na maioria das vezes, você pode querer "zerá-los" (época Unix, 1970-01-01 00:00:00 UTC). Isto pode ser feito incluindo o caractere ! como o primeiro no parâmetro format, ou | como o último. Favor verificar a documentação para cada caractere abaixo para mais informação.

O formato é analisado da esquerda para a direita, o que significa que em algumas situações a ordem na qual os caracteres de formato estão presents afeta o resultado. No caso de z (o dia do ano), é necessário que um ano já tenha sido analisado, por exemplo através dos caracteres Y ou y.

Letras que são usadas para representar números permitem uma ampla gama de valores, fora do que seria a faixa lógica. Por exemplo, a letra d (dia do mês) aceita valores na faixa de 00 a 99. A única restrição é o número de dígitos. O mecanismo de overflow do analisador é usado quando valores fora da faixa são especificados. Os exemplos abaixo mostram alguns destes comportamentos.

Isto também significa que os dados analisados para um caractere de formatação são ambiciosos, e irão ler até a quantidade de dígitos que o formato permite. Isto pode também então significar que não há mais caracteres suficientes na string do parâmetro datetime para os caracteres de formato seguintes. Um exemplo nesta página também ilustra este problema.

Os seguintes caracteres são reconhecidos na string do parâmetros format
Caractere de format | Descrição | Exemplo de valores analisáveis
Dia --- ---
d e j | Dia do mês, 2 dígitos com ou sem zeros na frente | 01 a 31 ou 1 a 31. (números de 2 dígitos maiores queo número de dias no mês são aceitos, e neste caso irão causar uma transferência no mês. Por exemplo, usar 33 com janeiro, significa 2 de fevereiro)
D e l | Uma representação textual de um dia | Mon a Sun ou Sunday a Saturday. Se o nome do dia informado for diferente do nome do dia pertencente a uma data analisada (ou data padrão), então uma transferência ocorre para a próxima data com o nome do dia informado. Veja os exemplos abaixo para uma explicação.
S | Sufixo em inglês para o ordinal do dia do mês, 2 caracteres. É ignorado durante o processamento. | st, nd, rd ou th.
z | O dia do ano (iniciando em 0); deve ser precedido de Y ou y. | 0 a 365. (números de 3 dígitos maiores que o número de dias em um ano são aceitos, e neste caso case irão causar uma transferência de ano. Por exemplo, usar 366 com 2022, siginifica 2 de janeiro de 2023)
Mês --- ---
F e M | Uma representação textual do mês, como January ou Sept | January a December ou Jan a Dec
m e n | Representação numérica de um mês, com ou sem zeros na frente | 01 a 12 ou 1 a 12. (números de 2 dígitos maiores que 12 são aceitos, e neste caso eles irão causar uma transferência de ano. Por exemplo, usar 13 significa janeiro do ano seguinte)
Ano --- ---
X e x | Uma representação numérica completa de um ano, com até 19 dígitos, opcionalmente prefixada por + ou - | Exemplos: 0055, 787, 1999, -2003, +10191
Y | Uma representação numérica completa de um ano, com até 4 dígitos | Exemplos: 0055, 787, 1999, 2003
y | Uma representação de dois dígitos de um ano (que assume-se estar na faixa 1970-2069, inclusive) | Exemplos: 99 ou 03 (que será interpretado como 1999 e 2003, respectivamente)
Horário --- ---
a e A | Ante meridiem e Post meridiem | am ou pm
g e h | Formato de 12 horas para uma hora com ou sem zeros na frente | 1 a 12 ou 01 a 12 (números de 2 dígitos maiores que 12 são aceitos, e neste caso eles irão causar uma transferência de período AM/PM. Por exemplo, usar 14 significa 02 no próximo período AM/PM)
G e H | Formato de 24 horas para uma hora com ou sem zeros na frente | 0 a 23 ou 00 a 23 (números de 2 dígitos maiores que 24 são aceitos, e neste caso eles irão causar uma transferência de dia. Por exemplo, usar 26 significa 02:00 do dia seguinte)
i | Minutos com zero na frente | 00 a 59. (números de 2 dígitos maiores que 59 são aceitos, e neste caso irão causar uma transferência de hora. Por exemplo, usar 66 significa :06 da hora seguinte)
s | Segundos, com zero na frente | 00 a 59 (números de 2 dígitos maiores que 59 são aceitos, e neste caso irão causar uma transferência de minuto. Por exemplo, usar 90 significa :30 do próximo minuto)
v | Fração em milissegundos (até três dígitos) | Exemplo: 12 (0.12 segundo), 345 (0.345 segundo)
u | Fração em microssegundos (até seis dígitos) | Exemplo: 45 (0.45 segundo) 654321 (0.654321 segundo)
Fuso horário --- ---
e, O, P e T | Identificador do fuso horário, ou a diferença para UTC em horas, ou a diferença para UTC com dois pontos entre horas e minutos, ou abreviação do fuso horário | Exemplos: UTC, GMT, Atlantic/Azores ou +0200 ou +02:00 ou EST, MDT
Data/Hora completa --- ---
U | Segundos desde a Época Unix (1 janeiro 1970 00:00:00 GMT) | Exemplo: 1292177455
Espaços em branco e separadores --- ---
(espaço) | Zero ou mais espaços, tabulações, caracteres NBSP (U+A0), ou NNBSP (U+202F) | Exemplo: "\t", " "
# Um dos símbolos de separação: ;, :, /, ., ,, -, ( ou ) Exemplo: /
;, :, /, ., ,, -, ( or ) | O caractere especificado. | Exemplo: -
? Um byte aleatório Exemplo: ^ (Esteja ciente que para caracteres UTF-8 você poderá precisar de mais de um ?. Neste caso, usar * pode ser o que você precisa na verdade)
* Bytes aleatórios até o próximo separador ou dígito Exemplo: * em Y-*-d com o string 2009-aWord-08 será equivalente a aWord
! Reconfigura todos os campos (ano, mês, dia, hora, minuto, segundo, fração e informação de fuso horário) com valores tipo zero ( 0 para hora, munuto, segundo e fração, 1 para mês e dia, 1970 para ano e UTC para informação de fuso horário) Sem !, todos os campos serão configurados com a data/hora atual.
| Reconfigura todos os campos (ano, mês, dia, hora, minuto, segundo, fração e informação de fuso horário) com valores tipo zero se eles ainda não foram analisados Y-m-d| irá configurar o ano, mês e dia para as informações encontradas na string a ser analisada, e configura a hora, minuto e segundo para 0.
+ Se esta especificação de formato estiver presente, dados no final da string não irão causar um erro, mas sim um aviso Use DateTimeImmutable::getLastErrors() para descobrir se dados no final da string estavam presentes.

Caracteres não reconhecidos na string de formatação irão causar falha na análise e uma mensagem de erro será anexada na estrutura retornada. É possível recuperar a mensagem de erro com DateTimeImmutable::getLastErrors().

Para incluir caracteres literais no parâmetro format, deve-se usar a barra invertida (\) antes deles.

Se format não contiver o caractere ! então partes da data/hora gerada que não foram especificadas em format serão configuradas para a data/hora atual do sistema.

Se format contiver o caractere !, então partes da data/hora gerada não especificada em format, assim como valores à esquerda de !, serão configuradas aos valores correspondentes da época Unix.

Se algum caractere de horário for analisado, então todos os outros campos relacionados a horário são configurados para "0", a menos que também tenham sido analisados.

A Época Unix é 1970-01-01 00:00:00 UTC.

datetime

String representando a data/hora.

timezone

Um objeto DateTimeZone representando o fuso horário desejado.

Se timezone for null ou omitido e datetime não contém o fuso horário, o fuso atual será usado.

Nota:

O parâmetro timezone e o fuso horário atual são ignorados quando o parâmetro datetime contém um timestamp UNIX (ex.: 946684800) ou especifica um fuso horário (ex.: 2010-01-28T15:00:00+02:00).

Valor Retornado

Retorna uma nova instância de DateTimeImmutable ou false em caso de falha.

Erros/Exceções

Este método dispara uma exceção ValueError quando o parâmetro datetime contém bytes nulos.

Registro de Alterações

Versão | Descrição
8.2.9 | O especificador (space) agora também suporta caracteres NBSP (U+A0) e NNBSP (U+202F).
8.2.0 | Os especificadores X e x de format foram adicionados.
8.0.21, 8.1.8, 8.2.0 | Agora dispara a exceção ValueError quando bytes nulos são passados no parâmetro datetime, o que antes era silenciosamente ignorado.
7.3.0 | O especificador v em format foi adicionado.

Exemplos

Exemplo #1 Exemplo de DateTimeImmutable::createFromFormat()

Estilo orientado a objetos

<?php
$date = DateTimeImmutable::createFromFormat('j-M-Y', '15-Feb-2009');
echo $date->format('Y-m-d');
?>

Exemplo #2 Usando constantes predefinidas de formato com DateTimeImmutable::createFromFormat()

Estilo orientado a objetos

<?php
$date = DateTimeImmutable::createFromFormat(DateTimeInterface::ISO8601, '2004-02-12T15:19:21+00:00');
$date = DateTimeImmutable::createFromFormat(DateTimeInterface::RFC3339_EXTENDED, '2013-10-14T09:00:00.000+02:00');
?>

As constantes de formatação como usadas neste exemplo consistem de uma string de caracteres para formatar um objeto DateTimeImmutable. Na maioria dos casos, estas letras são equivalentes aos elementos de data/hora definidos na seção parameters acima, mas elas tendem a ser mais lenientes.

Exemplo #3 Complexidades de DateTimeImmutable::createFromFormat()

<?php
echo 'Horário atual: ' . date('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d';
$date = DateTimeImmutable::createFromFormat($format, '2009-02-15');
echo "Formato: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d H:i:s';
$date = DateTimeImmutable::createFromFormat($format, '2009-02-15 15:16:17');
echo "Formato: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-!d H:i:s';
$date = DateTimeImmutable::createFromFormat($format, '2009-02-15 15:16:17');
echo "Formato: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = '!d';
$date = DateTimeImmutable::createFromFormat($format, '15');
echo "Formato: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'i';
$date = DateTimeImmutable::createFromFormat($format, '15');
echo "Formato: $format; " . $date->format('Y-m-d H:i:s') . "\n";
?>

O exemplo acima produzirá algo semelhante a:

Horário atual: 2022-06-02 15:50:46
Formato: Y-m-d; 2009-02-15 15:50:46
Formato: Y-m-d H:i:s; 2009-02-15 15:16:17
Formato: Y-m-!d H:i:s; 1970-01-15 15:16:17
Formato: !d; 1970-01-15 00:00:00
Formato: i; 2022-06-02 00:15:00

Exemplo #4 String de formatação com caracteres literais

<?php
echo DateTimeImmutable::createFromFormat('H\h i\m s\s','23h 15m 03s')->format('H:i:s');
?>

O exemplo acima produzirá algo semelhante a:

23:15:03

Exemplo #5 Comportamento de transferência

<?php
echo DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2021-17-35 16:60:97')->format(DateTimeImmutable::RFC2822);
?>

O exemplo acima produzirá algo semelhante a:

Sat, 04 Jun 2022 17:01:37 +0000

Embora o resultado pareça estranho, ele está correto, já que as transferências abaixo ocorrem:

  1. 97 segundos transferem para 1 minuto, sobrando 37 segundos.
  2. 61 minutos transferem para 1 hora, sobrando 1 minuto.
  3. 35 dias transferem para 1 mês, sobrando 4 dias. A quantidade de dias que sobram depende do mês, já que nem todo mês tem o mesmo número de dias.
  4. 18 meses transferem para 1 ano, sobrando 6 meses.

Exemplo #6 Comportamento de transferência do nome do dia

<?php
$d = DateTime::createFromFormat(DateTimeInterface::RFC1123, 'Mon, 3 Aug 2020 25:00:00 +0000');
echo $d->format(DateTime::RFC1123), "\n";
?>

O exemplo acima produzirá algo semelhante a:

Mon, 10 Aug 2020 01:00:00 +0000

Embora o resultado pareça estranho, ele está correto, já que as transferências abaixo ocorrem:

  1. 3 Aug 2020 25:00:00 transfere para (Tue) 4 Aug 2020 01:00.
  2. Mon é aplicado, o que avança a data para Mon, 10 Aug 2020 01:00:00. A explicação para as palavras-chaves relativas como Mon está disponível na seção sobre formatos relativos.

Para detectar transferências em datas/horas, pode-se usar o método DateTimeImmutable::getLastErrors(), que irá incluir um aviso se uma transferência tiver ocorrido.

Exemplo #7 Detectando transferência de datas/horas

<?php
$d = DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2021-17-35 16:60:97');
echo $d->format(DateTimeImmutable::RFC2822), "\n\n";

var_dump(DateTimeImmutable::GetLastErrors());
?>

O exemplo acima produzirá algo semelhante a:

Sat, 04 Jun 2022 17:01:37 +0000

array(4) {
  'warning_count' =>
  int(2)
  'warnings' =>
  array(1) {
    [19] =>
    string(27) "The parsed date was invalid"
  }
  'error_count' =>
  int(0)
  'errors' =>
  array(0) {
  }
}

Exemplo #8 Comportamento de análise ambicioso

<?php
print_r(date_parse_from_format('Gis', '60101'));
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [year] =>
    [month] =>
    [day] =>
    [hour] => 60
    [minute] => 10
    [second] => 0
    [fraction] => 0
    [warning_count] => 1
    [warnings] => Array
        (
            [5] => The parsed time was invalid
        )

    [error_count] => 1
    [errors] => Array
        (
            [4] => A two digit second could not be found
        )

    [is_localtime] =>
)

O formato G analisa horas no formato de 24 horas, com ou sem zeros na frente. Isto requer analisar 1 ou 2 dígitos. Como há dois dígitos disponíveis, o analisador ambiciosamente lê o valor como 60.

Os caracteres seguintes i e s ambos requerem dois dígitos. Isto significa que 10 é passado como minutos (i), e que não há então dígitos suficientes restantes para serem analisados como segundos (s).

O array errors indica este problema.

Adicionalmente, um valor de hora de 60 está fora da faixa 0-24, o que faz com que o array de warnings inclua um aviso de que o horário é inválido.

Veja Também

  • DateTimeImmutable::__construct() - Retorna um novo objeto DateTimeImmutable
  • DateTimeImmutable::getLastErrors() - Retorna os avisos e erros
  • checkdate() - Valida uma data gregoriana
  • strptime() - Interpreta uma hora/data gerada pela função strftime


Retorna um novo objeto DateTimeImmutable encapsulando o objeto DateTimeInterface informado

  • « DateTimeImmutable::createFromFormat
  • DateTimeImmutable::createFromMutable »
  • PHP Manual
  • DateTimeImmutable
  • Retorna um novo objeto DateTimeImmutable encapsulando o objeto DateTimeInterface informado

DateTimeImmutable::createFromInterface

(PHP 8)

DateTimeImmutable::createFromInterface — Retorna um novo objeto DateTimeImmutable encapsulando o objeto DateTimeInterface informado

Descrição

public static DateTimeImmutable::createFromInterface(DateTimeInterface $object): DateTimeImmutable

Parâmetros

object

O objeto DateTimeInterface que necessita ser convertido para uma versão mutável. Este objeto não é modificado, em vez disso uma nova instância DateTimeImmutable é criada contendo as mesmas informações de data, horário e fuso.

Valor Retornado

Retorna uma nova instância de DateTimeImmutable.

Exemplos

Exemplo #1 Criando um objeto de data/hora imutável

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromInterface($date);

$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");
$also_immutable = DateTimeImmutable::createFromInterface($date);
?>


Retorna uma nova instância DateTimeImmutable que encapsula um objeto DateTime informado

  • « DateTimeImmutable::createFromInterface
  • DateTimeImmutable::getLastErrors »
  • PHP Manual
  • DateTimeImmutable
  • Retorna uma nova instância DateTimeImmutable que encapsula um objeto DateTime informado

DateTimeImmutable::createFromMutable

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

DateTimeImmutable::createFromMutable — Retorna uma nova instância DateTimeImmutable que encapsula um objeto DateTime informado

Descrição

public static DateTimeImmutable::createFromMutable(DateTime $object): static

Parâmetros

object

O objeto mutável DateTime que se deseja converter para uma versão imutável. Este objeto não é modificado, mas em vez disso uma nova instância de DateTimeImmutable é criado contendo a mesma data/hora e informação de fuso horário.

Valor Retornado

Retorna uma nova instância de DateTimeImmutable.

Registro de Alterações

Versão | Descrição
8.0.0 | O método agora retorna uma instância da classe atualmente chamada. Antes, ele criava um nova instância de DateTimeImmutable.

Exemplos

Exemplo #1 Criando um objeto DateTime imutável

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromMutable( $date );
?>


Retorna os avisos e erros

  • « DateTimeImmutable::createFromMutable
  • DateTimeImmutable::modify »
  • PHP Manual
  • DateTimeImmutable
  • Retorna os avisos e erros

DateTimeImmutable::getLastErrors

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::getLastErrors — Retorna os avisos e erros

Descrição

public static DateTimeImmutable::getLastErrors(): array|false

Retorna um array de avisos e erros encontrados durante a análise de uma string de data/hora.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array contendo informação sobre avisos e erros, ou false se não houver nem avisos nem erros.

Registro de Alterações

Versão | Descrição
8.2.0 | Antes do PHP 8.2.0, esta função não retornava false quando não havia warnings ou erros. Em vez disso, ela sempre retornaria a estrutura de array documentada.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::getLastErrors()

<?php
try {
$date = new DateTimeImmutable('asdfasdf');
} catch (Exception $e) {
// Apenas para propósito de demonstração...
print_r(DateTimeImmutable::getLastErrors());

// A maneira real orientada a objeto de se fazer isto é
// echo $e->getMessage();
}
?>

Os exemplos acima produzirão:

Array
(
   [warning_count] => 1
   [warnings] => Array
       (
           [6] => Double timezone specification
       )

   [error_count] => 1
   [errors] => Array
       (
           [0] => The timezone could not be found in the database
       )

)

Os índices 6 e 0 na saída do exemplo referem-se ao índice do caractere no string onde o erro ocorreu.


Cria um novo objeto com seu timestamp modificado

  • « DateTimeImmutable::getLastErrors
  • DateTimeImmutable::__set_state »
  • PHP Manual
  • DateTimeImmutable
  • Cria um novo objeto com seu timestamp modificado

DateTimeImmutable::modify

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::modify — Cria um novo objeto com seu timestamp modificado

Descrição

public DateTimeImmutable::modify(string $modifier): DateTimeImmutable|false

Cria um novo objeto DateTimeImmutable com seu timestamp modificado. O objeto original não é modificado.

Parâmetros

modifier

Uma string de data/hora. Os formatos válidos são explicados em Formatos de Data e Hora.

Valor Retornado

Retorna um novo objeto DateTimeImmutable modificado ou false em caso de falha.

Erros/Exceções

Se uma string inválida de data/hora for passada, uma exceção DateMalformedStringException é disparada. Antes do PHP 8.3, era um aviso.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora dispara DateMalformedStringException se uma string inválida é passada, em vez de um aviso.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::modify()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable('2006-12-12');
$newDate = $date->modify('+1 day');
echo $newDate->format('Y-m-d');
?>

Os exemplos acima produzirão:

2006-12-13

Exemplo #2 Cuidado na adição ou subtração de meses

<?php
$date = new DateTimeImmutable('2000-12-31');

$newDate1 = $date->modify('+1 month');
echo $newDate1->format('Y-m-d') . "\n";

$newDate2 = $newDate1->modify('+1 month');
echo $newDate2->format('Y-m-d') . "\n";
?>

O exemplo acima produzirá:

2001-01-31
2001-03-03

Veja Também

  • DateTimeImmutable::add() - Retorna um novo objeto, com adição de dias, meses, anos, horas, minutos e segundos
  • DateTimeImmutable::sub() - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos
  • DateTimeImmutable::setDate() - Define a data
  • DateTimeImmutable::setISODate() - Define a data ISO
  • DateTimeImmutable::setTime() - Define um horário
  • DateTimeImmutable::setTimestamp() - Define a data e o horário com base em um timestamp Unix


O manipulador __set_state

  • « DateTimeImmutable::modify
  • DateTimeImmutable::setDate »
  • PHP Manual
  • DateTimeImmutable
  • O manipulador __set_state

DateTimeImmutable::__set_state

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::__set_state — O manipulador __set_state

Descrição

public static DateTimeImmutable::__set_state(array $array): DateTimeImmutable

O manipulador __set_state().

Parâmetros

array

Array de inicialização.

Valor Retornado

Retorna uma nova instância de um objeto DateTimeImmutable.


Define a data

  • « DateTimeImmutable::__set_state
  • DateTimeImmutable::setISODate »
  • PHP Manual
  • DateTimeImmutable
  • Define a data

DateTimeImmutable::setDate

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setDate — Define a data

Descrição

public DateTimeImmutable::setDate(int $year, int $month, int $day): DateTimeImmutable

Retorna um novo objeto DateTimeImmutable com a data atual do objeto DateTimeImmutable configurado com a data fornecida.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.

year

Ano da data.

month

Mês da data.

day

Dia da data.

Valor Retornado

Retorna um novo objeto DateTimeImmutable com os dados modificados.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::setDate()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2001, 2, 3);
echo $newDate->format('Y-m-d');
?>

Os exemplos acima produzirão:

2001-02-03

Exemplo #2 Valores que excedem os limites são adicionados aos valores pai.

<?php
$date = new DateTimeImmutable();

$newDate = $date->setDate(2001, 2, 28);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setDate(2001, 2, 29);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setDate(2001, 14, 3);
echo $newDate->format('Y-m-d') . "\n";
?>

O exemplo acima produzirá:

2001-02-28
2001-03-01
2002-02-03

Veja Também

  • DateTimeImmutable::setISODate() - Define a data ISO
  • DateTimeImmutable::setTime() - Define um horário


Define a data ISO

  • « DateTimeImmutable::setDate
  • DateTimeImmutable::setTime »
  • PHP Manual
  • DateTimeImmutable
  • Define a data ISO

DateTimeImmutable::setISODate

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setISODate — Define a data ISO

Descrição

public DateTimeImmutable::setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable

Retorna um novo objeto DateTimeImmutable com a data configurada de acordo com o padrão ISO 8601 - usa semanas e deslocamentos de dias no lugar de datas específicas.

Parâmetros

year

Year of the date.

week

Week of the date.

dayOfWeek

Offset from the first day of the week.

Valor Retornado

Retorna um novo objeto DateTimeImmutable com os dados modificados.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::setISODate()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable();

$date->setISODate(2008, 2);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";
?>

Estilo procedural

<?php
$date = date_create();

date_isodate_set($date, 2008, 2);
echo date_format($date, 'Y-m-d') . "\n";

date_isodate_set($date, 2008, 2, 7);
echo date_format($date, 'Y-m-d') . "\n";
?>

Os exemplos acima produzirão:

2008-01-07
2008-01-13

Exemplo #2 Valores que excedem os limites são adicionados a seus valores pai.

<?php
$date = new DateTimeImmutable();

$newDate = $date->setISODate(2008, 2, 7);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setISODate(2008, 2, 8);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setISODate(2008, 53, 7);
echo $newDate->format('Y-m-d') . "\n";
?>

O exemplo acima produzirá:

2008-01-13
2008-01-14
2009-01-04

Exemplo #3 Para encontrar o mês no qual uma semana se localiza

<?php
$date = new DateTimeImmutable();
$newDate = $date->setISODate(2008, 14);
echo $newDate->format('n');
?>

Os exemplos acima produzirão:

3

Veja Também

  • DateTimeImmutable::setDate() - Define a data
  • DateTimeImmutable::setTime() - Define um horário


Define um horário

  • « DateTimeImmutable::setISODate
  • DateTimeImmutable::setTimestamp »
  • PHP Manual
  • DateTimeImmutable
  • Define um horário

DateTimeImmutable::setTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTime — Define um horário

Descrição

public DateTimeImmutable::setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTimeImmutable

Retorna um novo objeto DateTimeImmutable configurado com o horário fornecido.

Parâmetros

hour

Hora do horário.

minute

Minuto do horário.

second

Segundo do horário.

microsecond

Microssegundo do horário.

Valor Retornado

Retorna um novo objeto DateTimeImmutable com os dados modificados.

Registro de Alterações

Versão | Descrição
8.1.0 | O comportamento com horários que podem ter duplicidade (durante o retorno do horário de verão) mudou. Anteriormente, o PHP usaria a segunda ocorrência do horário (depois do retorno do horário de verão), em vez da primeira ocorrência (antes do retorno).
7.1.0 | O parâmetro microsecond foi incluído.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::setTime()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable('2001-01-01');

$newDate = $date->setTime(14, 55);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 55, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";
?>

Os exemplos acima produzirão algo semelhante a:

2001-01-01 14:55:00
2001-01-01 14:55:24

Exemplo #2 Valores que excedem os limites são adicionados a seus valores pai

<?php
$date = new DateTimeImmutable('2001-01-01');

$newDate = $date->setTime(14, 55, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 55, 65);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 65, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(25, 55, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";
?>

O exemplo acima produzirá:

2001-01-01 14:55:24
2001-01-01 14:56:05
2001-01-01 15:05:24
2001-01-02 01:55:24

Veja Também

  • DateTimeImmutable::setDate() - Define a data
  • DateTimeImmutable::setISODate() - Define a data ISO


Define a data e o horário com base em um timestamp Unix

  • « DateTimeImmutable::setTime
  • DateTimeImmutable::setTimezone »
  • PHP Manual
  • DateTimeImmutable
  • Define a data e o horário com base em um timestamp Unix

DateTimeImmutable::setTimestamp

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTimestamp — Define a data e o horário com base em um timestamp Unix

Descrição

public DateTimeImmutable::setTimestamp(int $timestamp): DateTimeImmutable

Retorna um novo objeto DateTimeImmutable construído a partir do antigo, com a data e o horário configurados com base em um timestamp Unix.

Parâmetros

timestamp

Timestamp Unix representando a data e horário. Configurar timestamps fora dos limites de int é possível usando DateTimeImmutable::modify() com o formato @.

Valor Retornado

Retorna um novo objeto DateTimeImmutable com os dados modificados.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::setTimestamp()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable();
echo $date->format('U = Y-m-d H:i:s') . "\n";

$newDate = $date->setTimestamp(1171502725);
echo $newDate->format('U = Y-m-d H:i:s') . "\n";
?>

Os exemplos acima produzirão algo semelhante a:

1272508903 = 2010-04-28 22:41:43
1171502725 = 2007-02-14 20:25:25

Veja Também

  • DateTimeImmutable::getTimestamp() - Obtém o timestamp Unix


Define o fuso horário

  • « DateTimeImmutable::setTimestamp
  • DateTimeImmutable::sub »
  • PHP Manual
  • DateTimeImmutable
  • Define o fuso horário

DateTimeImmutable::setTimezone

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTimezone — Define o fuso horário

Descrição

public DateTimeImmutable::setTimezone(DateTimeZone $timezone): DateTimeImmutable

Retorna um novo objeto DateTimeImmutable com um novo fuso horário configurado.

Parâmetros

timezone

Um objeto DateTimeZone representando o fuso horário desejado.

Valor Retornado

Retorna um novo objeto DateTimeImmutable modificado para ligação de método. O ponto no tempo subjacente não é modificado quando este médoto é chamado.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::setTimeZone()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$newDate = $date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $newDate->format('Y-m-d H:i:sP') . "\n";
?>

Os exemplos acima produzirão:

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

Veja Também

  • DateTimeImmutable::getTimezone() - Retorna o fuso horário correspondente a um DateTime informado
  • DateTimeZone::__construct() - Cria um novo objeto DateTimeZone


Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos

  • « DateTimeImmutable::setTimezone
  • DateTimeInterface »
  • PHP Manual
  • DateTimeImmutable
  • Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos

DateTimeImmutable::sub

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::sub — Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos

Descrição

public DateTimeImmutable::sub(DateInterval $interval): DateTimeImmutable

Retorna um novo objeto DateTimeImmutable, com o objeto DateInterval especificado substraído do objeto DateTimeImmutable original.

Parâmetros

interval

Um objeto DateInterval

Valor Retornado

Retorna um novo objeto DateTimeImmutable com os dados modificados.

Erros/Exceções

Se uma operação não suportada for solicitada, por exemplo usando um objeto DateInterval que representa especificação relativa de tempo como next weekday, uma exceção DateInvalidOperationException é disparada.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora dispara uma exceção DateInvalidOperationException em vez de um aviso quando uma operação não suportada for solicitada.

Exemplos

Exemplo #1 Exemplo da função DateTimeImmutable::sub()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P10D'));
echo $newDate->format('Y-m-d') . "\n";
?>

Os exemplos acima produzirão:

2000-01-10

Exemplo #2 Mais exemplos da função DateTimeImmutable::sub()

<?php
$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('PT10H30S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";

$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P7Y5M4DT4H3M2S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";
?>

O exemplo acima produzirá:

2000-01-19 13:59:30
1992-08-15 19:56:58

Exemplo #3 Cuidado ao subtrair meses

<?php
$date = new DateTimeImmutable('2001-04-30');
$interval = new DateInterval('P1M');

$newDate1 = $date->sub($interval);
echo $newDate1->format('Y-m-d') . "\n";

$newDate2 = $newDate1->sub($interval);
echo $newDate2->format('Y-m-d') . "\n";
?>

O exemplo acima produzirá:

2001-03-30
2001-03-02

Veja Também

  • DateTimeImmutable::add() - Retorna um novo objeto, com adição de dias, meses, anos, horas, minutos e segundos
  • DateTimeImmutable::diff() - Retorna a diferença entre dois objetos DateTime
  • DateTimeImmutable::modify() - Cria um novo objeto com seu timestamp modificado


A interface DateTimeInterface

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

DateTimeInterface foi criada para que os parâmetros, variáveis de retorno ou declarações de tipo de propriedades aceitem tanto DateTimeImmutable ou DateTime como um valor. Não é possível implementar esta interface em classes no espaço de usuário.

Constantes comuns que permitem formatar objetos DateTimeImmutable ou DateTime através de DateTimeImmutable::format() e DateTime::format() também são definidas nesta interface.

Resumo da Interface

interface DateTimeInterface {
/* Constantes */
public const string ATOM = "Y-m-d\\TH:i:sP";
public const string COOKIE = "l, d-M-Y H:i:s T";
public const string ISO8601 = "Y-m-d\\TH:i:sO";
public const string ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string RFC822 = "D, d M y H:i:s O";
public const string RFC850 = "l, d-M-y H:i:s T";
public const string RFC1036 = "D, d M y H:i:s O";
public const string RFC1123 = "D, d M Y H:i:s O";
public const string RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string RFC2822 = "D, d M Y H:i:s O";
public const string RFC3339 = "Y-m-d\\TH:i:sP";
public const string RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string RSS = "D, d M Y H:i:s O";
public const string W3C = "Y-m-d\\TH:i:sP";
/* Métodos */
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone|false
public __wakeup(): void
}

Constantes pré-definidas

DateTimeInterface::ATOM
DATE_ATOM
Atom (exemplo: 2005-08-15T15:52:01+00:00)
DateTimeInterface::COOKIE
DATE_COOKIE
Cookies HTTP (exemplo: Monday, 15-Aug-2005 15:52:01 UTC)
DateTimeInterface::ISO8601
DATE_ISO8601
ISO-8601 (exemplo: 2005-08-15T15:52:01+0000)

Nota: Este formato não é compatível com a ISO-8601, mas foi deixado assim por motivo de compatibilidade com versões anteriores. Use DateTimeInterface::ISO8601_EXPANDED, DateTimeInterface::ATOM para compatibilidade com a ISO-8601, alternativamente. (ref ISO8601:2004 seção 4.3.3 cláusula d)

DateTimeInterface::ISO8601_EXPANDED
DATE_ISO8601_EXPANDED
ISO-8601 Expandida (exemplo: +10191-07-26T08:59:52+01:00)

Nota: Este formato permite valores de ano fora do intervalo normal da ISO-8601 de 0000-9999 porque sempre inclui um caractere de sinal. Ele também faz com que que a parte do fuso horário (+01:00) seja compatível com a ISO-8601.

DateTimeInterface::RFC822
DATE_RFC822
RFC 822 (exemplo: Mon, 15 Aug 05 15:52:01 +0000)
DateTimeInterface::RFC850
DATE_RFC850
RFC 850 (exemplo: Monday, 15-Aug-05 15:52:01 UTC)
DateTimeInterface::RFC1036
DATE_RFC1036
RFC 1036 (exemplo: Mon, 15 Aug 05 15:52:01 +0000)
DateTimeInterface::RFC1123
DATE_RFC1123
RFC 1123 (exemplo: Mon, 15 Aug 2005 15:52:01 +0000)
DateTimeInterface::RFC7231
DATE_RFC7231
RFC 7231 (desde PHP 7.0.19 e 7.1.5) (exemplo: Sat, 30 Apr 2016 17:52:13 GMT)
DateTimeInterface::RFC2822
DATE_RFC2822
RFC 2822 (exemplo: Mon, 15 Aug 2005 15:52:01 +0000)
DateTimeInterface::RFC3339
DATE_RFC3339
O mesmo que DATE_ATOM
DateTimeInterface::RFC3339_EXTENDED
DATE_RFC3339_EXTENDED
RFC 3339 formato ESTENDIDO (exemplo: 2005-08-15T15:52:01.000+00:00)
DateTimeInterface::RSS
DATE_RSS
RSS (exemplo: Mon, 15 Aug 2005 15:52:01 +0000)
DateTimeInterface::W3C
DATE_W3C
World Wide Web Consortium (exemplo: 2005-08-15T15:52:01+00:00)

Registro de Alterações

Versão | Descrição
8.2.0 | A constante DateTimeInterface::ISO8601_EXPANDED foi adicionada.
7.2.0 | As constantes da classe DateTime agora são definidas na classe DateTimeInterface.

Índice

  • DateTimeInterface::diff — Retorna a diferença entre dois objetos DateTime
  • DateTimeInterface::format — Retorna a data formatada de acordo com um formato informado
  • DateTimeInterface::getOffset — Retorna o deslocamento do fuso horário
  • DateTimeInterface::getTimestamp — Obtém o timestamp Unix
  • DateTimeInterface::getTimezone — Retorna o fuso horário correspondente a um DateTime informado
  • DateTime::__wakeup — O manipulador __wakeup


Retorna a diferença entre dois objetos DateTime

  • « DateTimeInterface
  • DateTimeInterface::format »
  • PHP Manual
  • DateTimeInterface
  • Retorna a diferença entre dois objetos DateTime

DateTimeInterface::diff

DateTimeImmutable::diff

DateTime::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTimeInterface::diff -- DateTimeImmutable::diff -- DateTime::diff -- date_diff — Retorna a diferença entre dois objetos DateTime

Descrição

Estilo orientado a objetos

public DateTimeInterface::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public DateTimeImmutable::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public DateTime::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval

Estilo procedural

date_diff(DateTimeInterface $baseObject, DateTimeInterface $targetObject, bool $absolute = false): DateInterval

Retorna a diferença entre dois objetos que implementam a classe DateTimeInterface.

Parâmetros

datetime

A data a ser comparada.

absolute

O intervalo deve ser forçado como positivo?

Valor Retornado

O objeto DateInterval representa a diferença entre as duas datas.

O valor de retorno representa mais especificamente o intervalo de tempo a ser aplicado ao objeto original ($this or $originObject) para se chegar ao $targetObject. Este processo nem sempre é reversível.

O método leva em conta mudanças de horário de verão, e por isso pode retornar um intervalo de 24 horas e 30 minutos, por exemplo. Se você quiser fazer cálculos com horários absolutos, você precisa converter tanto $this/$baseObject quanto $targetObject para UTC primeiro.

Exemplos

Exemplo #1 Exemplo do método DateTimeImmutable::diff()

Estilo orientado a objetos

<?php
$origin = new DateTime('2009-10-11');
$target = new DateTime('2009-10-13');
$interval = $origin->diff($target);
echo $interval->format('%R%a dias');
?>

Estilo procedural

<?php
$origin = date_create('2009-10-11');
$target = date_create('2009-10-13');
$interval = date_diff($origin, $target);
echo $interval->format('%R%a dias');
?>

Os exemplos acima produzirão:

+2 dias

Exemplo #2 DateTimeInterface::diff() durante mudança de horário de verão

<?php
$originalTime = new DateTimeImmutable("2021-10-30 09:00:00 Europe/London");
$targetTime = new DateTimeImmutable("2021-10-31 08:30:00 Europe/London");
$interval = $originalTime->diff($targetTime);
echo $interval->format("%H:%I:%S (Dias inteiros: %a)"), "\n";
?>

O exemplo acima produzirá:

24:30:00 (Dias inteiros: 0)

Exemplo #3 Intervalo do método DateTimeInterface::diff()

O valor que o método retorna é a quantidade exata de tempo para sair de $this e chegar em $targetObject. Comparando 1º de janeiro com 31 de dezembro retorna portanto 364, e não 365 dias (para anos não bissextos).

<?php
$originalTime = new DateTimeImmutable("2023-01-01 UTC");
$targetTime = new DateTimeImmutable("2023-12-31 UTC");
$interval = $originalTime->diff($targetTime);
echo "Dias inteiros: ", $interval->format("%a"), "\n";
?>

O exemplo acima produzirá:

Dias inteiros: 364

Exemplo #4 Comparação entre objetos DateTime

Nota:

Objetos das classes DateTimeImmutable e DateTime podem ser comparados utilizando os operadores de comparação.

<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(false)

Veja Também

  • DateInterval::format() - Formata um intervalo
  • DateTime::add() - Modifica um objeto DateTime, com adição de dias, meses, anos, horas, minutos e segundos.
  • DateTime::sub() - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime


Retorna a data formatada de acordo com um formato informado

  • « DateTimeInterface::diff
  • DateTimeInterface::getOffset »
  • PHP Manual
  • DateTimeInterface
  • Retorna a data formatada de acordo com um formato informado

DateTimeInterface::format

DateTimeImmutable::format

DateTime::format

date_format

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::format -- DateTimeImmutable::format -- DateTime::format -- date_format — Retorna a data formatada de acordo com um formato informado

Descrição

Estilo orientado a objetos

public DateTimeInterface::format(string $format): string
public DateTimeImmutable::format(string $format): string
public DateTime::format(string $format): string

Estilo procedural

date_format(DateTimeInterface $object, string $format): string

Retorna a data formatada de acordo com um formato informado.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create()

format

O formato da string de data resultante. Veja abaixo as opções de formatação. Existem também várias constantes de data predefinidas que podem ser usadas, por exemplo, DATE_RSS contém a string de formatação 'D, d M Y H:i:s'.

Os seguintes caracteres são reconhecidos na string do parâmetro format
Caractere format | Descrição | Exemplo de valores retornados
Dia --- ---
d | Dia do mês, 2 digits com zeros à esquerda | 01 a 31
D | Uma representação textual de um dia, três letras | Mon a Sun
j | Dia do mês sem zeros à esquerda | 1 a 31
l (lowercase 'L') | Uma representação textual completa do dia da semana | Sunday a Saturday
N | Representação numérica ISO 8601 do dia da semana | 1 (para segunda-feira) a 7 (para domingo)
S | Sufixo ordinal inglês para o dia do mês, 2 caracteres | st, nd, rd ou th. Funciona bem com j
w | Representação numérica do dia da semana | 0 (para domingo) a 6 (para sábado)
z | O dia do ano (começando em 0) | 0 a 365
Semana --- ---
W | Número da semana do mês ISO 8601, semanas começando na segunda-feira | Exemplo: 42 (a 42ª semana no ano)
Mês --- ---
F | Uma representação textual completa do mês, como January ou March | January a December
m | Representação numérica de um mês, com zeros à esquerda | 01 a 12
M | Uma representação textual curta de um mês, três letras | Jan a Dec
n | Representação numérica de um mês, sem zeros à esquerda | 1 a 12
t | Número de dias em determinado mês | 28 a 31
Ano --- ---
L | Se é um ano bissexto | 1 se for um ano bissexto, 0 caso contrário.
o | Ano de numeração da semana ISO 8601. Tem o mesmo valor que Y, exceto que se o número da semana ISO (W) pertencer ao ano anterior ou seguinte, esse ano será usado. | Exemplos: 1999 ou 2003
X | Uma representação numérica completa expandida de um ano, pelo menos 4 dígitos, com - para anos AEC, e + para anos EC. | Exemplos: -0055, +0787, +1999, +10191
x | Uma representação numérica completa expandida se necessário, ou uma representação numérica completa padrão se possível (como Y). Pelo menos quatro dígitos. Anos AEC são prefixados com um -. Anos além de (e incluindo) 10000 são prefixados com um +. | Exemplos: -0055, 0787, 1999, +10191
Y | Uma representação numérica completa de um ano, pelo menos 4 dígitos, com - para anos AEC. | Exemplos: -0055, 0787, 1999, 2003, 10191
y | Uma representação de dois digitos do ano | Exemplos: 99 ou 03
Hora --- ---
a | Ante meridiem e Post meridiem em letras minúsculas | am ou pm
A | Ante meridiem e Post meridiem em letras maiúsculas | AM ou PM
B | Internet Time da Swatch | 000 a 999
g | Formato de 12 horas de uma hora sem zeros à esquerda | 1 a 12
G | Formato de 24 horas de uma hora sem zeros à esquerda | 0 a 23
h | Formato de 12 horas de uma hora com zeros à esquerda | 01 a 12
H | Formato de 24 horas de uma hora com zeros à esquerda | 00 a 23
i | Minutos com zeros à esquerda | 00 to 59
s | Segundos com zeros à esquerda | 00 a 59
u | Microssegundos. Note que date() sempre irá gerar 000000 uma vez que leva um parâmetro int, enquanto DateTime::format() suporta microssegundos se DateTime foi criada com microssegundos. | Exemplo: 654321
v | Millisegundos. A mesma nota se aplica como no u. | Exemplo: 654
Fuso horário --- ---
e | Identificador do fuso horário | Exemplos: UTC, GMT, Atlantic/Azores
I (i maiúsculo) | Se a data está ou não no horário de verão | 1 se está no horário de verão, 0 caso contrário.
O | Diferença para o horário de Greenwich (GMT) sem dois pontos entre horas e minutos | Example: +0200
P | Diferença para o horário de Greenwich (GMT) com dois pontos entre horas e minutos | Exemplo: +02:00
p | O mesmo que P, mas retorna Z em vez de +00:00 (disponível a partir do PHP 8.0.0) | Exemplo: Z or +02:00
T | Abreviação do fuso horário, se conhecido; ou o deslocamento GMT caso contrário. | Exemplos: EST, MDT, +05
Z | Deslocamento do fuso horário em segundos. O deslocamento para fusos a oeste de UTC é sempre negativo, e para aqueles a leste de UTC é sempre positivo. | -43200 a 50400
Data/Hora completa --- ---
c | Data ISO 8601 | 2004-02-12T15:19:21+00:00
r | Data formatada » RFC 2822/» RFC 5322 | Exemplo: Thu, 21 Dec 2000 16:01:07 +0200
U | Segundos desde a Era Unix (1 de janeiro de 1970 00:00:00 GMT) | Veja também time()

Caracteres não reconhecidos na string de formatação serão impressos como estão. O formato Z sempre retornará 0 ao usar gmdate().

Nota:

Uma vez que esta função só aceita timestamps int, o caractere de formato u só é útil ao usar a função date_format() com timestamps baseados no usuário criados com date_create().

Valor Retornado

Retorna a data formatada em caso de sucesso.

Registro de Alterações

Versão | Descrição
8.2.0 | Os caracteres de formatação X e x foram adicionados.
8.0.0 | O caractere de formatação p foi adicionado.

Exemplos

Exemplo #1 Exemplo de DateTimeInterface::format()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable('2000-01-01');
echo $date->format('Y-m-d H:i:s');
?>

Estilo procedural

<?php
$date = date_create('2000-01-01');
echo date_format($date, 'Y-m-d H:i:s');
?>

O exemplo acima produzirá:

2000-01-01 00:00:00

Exemplo #2 Mais exemplos

<?php
// define o fuso horário padrão a ser usado.
date_default_timezone_set('UTC');

// agora
$date = new DateTimeImmutable();

// Imprime algo como: Wednesday
echo $date->format('l'), "\n";

// Imprime algo como: Wednesday 19th of October 2022 08:40:48 AM
echo $date->format('l jS \o\f F Y h:i:s A'), "\n";

/* usa as constantes no parâmetro format */
// Imprime algo como: Wed, 19 Oct 2022 08:40:48 +0000
echo $date->format(DateTimeInterface::RFC2822), "\n";
?>

Você pode previnir um caractere reconhecido na string de formação de ser expandido escapando-o com uma barra invertida antes. Se o caractere com uma barra invertida já for uma sequência especial, você pode escapar também a barra invertida.

Exemplo #3 Escapando caracteres ao formatar

<?php
$date = new DateTimeImmutable();

// prints something like: Wednesday the 19th
echo $date->format('l \t\h\e jS');
?>

Para formatar datas em outras línguas, IntlDateFormatter::format() pode ser usado em vez do DateTimeInterface::format().

Notas

Este método não utiliza configurações baseadas no idioma. Toda a saída será em Inglês.

Veja Também

  • IntlDateFormatter::format() - Formata data/horário como uma string


Retorna o deslocamento do fuso horário

  • « DateTimeInterface::format
  • DateTimeInterface::getTimestamp »
  • PHP Manual
  • DateTimeInterface
  • Retorna o deslocamento do fuso horário

DateTimeInterface::getOffset

DateTimeImmutable::getOffset

DateTime::getOffset

date_offset_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::getOffset -- DateTimeImmutable::getOffset -- DateTime::getOffset -- date_offset_get — Retorna o deslocamento do fuso horário

Descrição

Estilo orientado a objetos

public DateTimeInterface::getOffset(): int
public DateTimeImmutable::getOffset(): int
public DateTime::getOffset(): int

Estilo procedural

date_offset_get(DateTimeInterface $object): int

Retorna o deslocamento do fuso horário.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create()

Valor Retornado

Retorna o deslocamento do fuso horário, em segundos, para UTC em caso de sucesso.

Exemplos

Exemplo #1 Exemplo do método DateTime::getOffset()

Estilo orientado a objetos

<?php
$winter = new DateTimeImmutable('2010-12-21', new DateTimeZone('America/New_York'));
$summer = new DateTimeImmutable('2008-06-21', new DateTimeZone('America/New_York'));

echo $winter->getOffset() . "\n";
echo $summer->getOffset() . "\n";
?>

Estilo procedural

<?php
$winter = date_create('2010-12-21', timezone_open('America/New_York'));
$summer = date_create('2008-06-21', timezone_open('America/New_York'));

echo date_offset_get($winter) . "\n";
echo date_offset_get($summer) . "\n";
?>

Os exemplos acima produzirão:

-18000
-14400

Nota: -18000 = -5 horas, -14400 = -4 horas.


Obtém o timestamp Unix

  • « DateTimeInterface::getOffset
  • DateTimeInterface::getTimezone »
  • PHP Manual
  • DateTimeInterface
  • Obtém o timestamp Unix

DateTimeInterface::getTimestamp

DateTimeImmutable::getTimestamp

DateTime::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTimeInterface::getTimestamp -- DateTimeImmutable::getTimestamp -- DateTime::getTimestamp -- date_timestamp_get — Obtém o timestamp Unix

Descrição

Estilo orientado a objetos

public DateTimeInterface::getTimestamp(): int
public DateTimeImmutable::getTimestamp(): int
public DateTime::getTimestamp(): int

Estilo procedural

date_timestamp_get(DateTimeInterface $object): int

Obtém o timestamp Unix.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o timestamp Unix que representa a data.

Erros/Exceções

Se o timestamp não puder ser representado como um int, uma exceção DateRangeError é disparada. Antes do PHP 8.3.0, uma exceção ValueError era disparada. E, antes do PHP 8.0.0, false era retornado neste caso. Ainda, o timestamp pode ser recuperado como string usando o método DateTimeInterface::format() com o formato literal U.

Registro de Alterações

Versão | Descrição
8.3.0 | A exceção fora do intervalo é agora DateRangeError.
8.0.0 | Esta função não mais retorna false em caso de falha.

Exemplos

Exemplo #1 Exemplo do método DateTime::getTimestamp()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable();
echo $date->getTimestamp();
?>

Estilo procedural

<?php
$date = date_create();
echo date_timestamp_get($date);
?>

Os exemplos acima produzirão algo semelhante a:

1272509157

Se você precisa recuperar o timestamp com resolução de milissegundos ou microssegundos, você pode uitilizar a função DateTimeInterface::format().

Exemplo #2 Recuperando o timestamp com resolução de mili e microssegundos

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable();
$mili = (int)$date->format('Uv'); // Timestamp em milissegundos
$micro = (int)$date->format('Uu'); // Timestamp em microssegundos

echo $mili, "\n", $micro, "\n";
?>

Os exemplos acima produzirão algo semelhante a:

1674057635586
1674057635586918

Veja Também

  • DateTime::setTimestamp() - Define a data e hora baseada em um timestamp Unix
  • DateTimeImmutable::setTimestamp() - Define a data e o horário com base em um timestamp Unix
  • DateTimeInterface::format() - Retorna a data formatada de acordo com um formato informado


Retorna o fuso horário correspondente a um DateTime informado

  • « DateTimeInterface::getTimestamp
  • DateTime::__wakeup »
  • PHP Manual
  • DateTimeInterface
  • Retorna o fuso horário correspondente a um DateTime informado

DateTimeInterface::getTimezone

DateTimeImmutable::getTimezone

DateTime::getTimezone

date_timezone_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::getTimezone -- DateTimeImmutable::getTimezone -- DateTime::getTimezone -- date_timezone_get — Retorna o fuso horário correspondente a um DateTime informado

Descrição

Estilo orientado a objetos

public DateTimeInterface::getTimezone(): DateTimeZone|false
public DateTimeImmutable::getTimezone(): DateTimeZone|false
public DateTime::getTimezone(): DateTimeZone|false

Estilo procedural

date_timezone_get(DateTimeInterface $object): DateTimeZone|false

Retorna o fuso horário de um DateTime informado

Parâmetros

object

Somente no estilo procedural: Um objeto DateTime retornado por date_create()

Valor Retornado

Retorna um objeto DateTimeZone em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo do método DateTime::getTimezone()

Estilo orientado a objetos

<?php
$date = new DateTimeImmutable(null, new DateTimeZone('Europe/London'));
$tz = $date->getTimezone();
echo $tz->getName();
?>

Estilo procedural

<?php
$date = date_create(null, timezone_open('Europe/London'));
$tz = date_timezone_get($date);
echo timezone_name_get($tz);
?>

Os exemplos acima produzirão:

Europe/London

Veja Também

  • DateTime::setTimezone() - Define o fuso horário de um objeto DateTime


O manipulador __wakeup

  • « DateTimeInterface::getTimezone
  • DateTimeZone »
  • PHP Manual
  • DateTimeInterface
  • O manipulador __wakeup

DateTime::__wakeup

DateTimeImmutable::__wakeup

DateTimeInterface::__wakeup

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::__wakeup -- DateTimeImmutable::__wakeup -- DateTimeInterface::__wakeup — O manipulador __wakeup

Descrição

public DateTime::__wakeup(): void
public DateTimeImmutable::__wakeup(): void
public DateTimeInterface::__wakeup(): void

O manipulador __wakeup().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Inicializa o objeto DateTime.


A classe DateTimeZone

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Introdução

Representação de um fuso horário.

Resumo da classe

class DateTimeZone {
/* Constantes */
public const int AFRICA;
public const int AMERICA;
public const int ANTARCTICA;
public const int ARCTIC;
public const int ASIA;
public const int ATLANTIC;
public const int AUSTRALIA;
public const int EUROPE;
public const int INDIAN;
public const int PACIFIC;
public const int UTC;
public const int ALL;
public const int ALL_WITH_BC;
public const int PER_COUNTRY;
/* Métodos */
public __construct(string $timezone)
public getLocation(): array|false
public getName(): string
public getOffset(DateTimeInterface $datetime): int
public getTransitions(int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false
public static listAbbreviations(): array
public static listIdentifiers(int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode = null): array
}

Constantes pré-definidas

DateTimeZone::AFRICA

Fusos horários da África.

DateTimeZone::AMERICA

Fusos horários da América.

DateTimeZone::ANTARCTICA

Fusos horários da Antártida.

DateTimeZone::ARCTIC

Fusos horários do Ártico.

DateTimeZone::ASIA

Fusos horários da Ásia.

DateTimeZone::ATLANTIC

Fusos horários do Atlântico.

DateTimeZone::AUSTRALIA

Fusos horários da Austrália.

DateTimeZone::EUROPE

Fusos horários da Europa.

DateTimeZone::INDIAN

Fusos horários da Índia.

DateTimeZone::PACIFIC

Fusos horários do Pacífico.

DateTimeZone::UTC

Fusos horários UTC.

DateTimeZone::ALL

Todos os fusos horários.

DateTimeZone::ALL_WITH_BC

Todos os fusos horários, incluindo retrocompatíveis.

DateTimeZone::PER_COUNTRY

Fusos horários por país.

Índice

  • DateTimeZone::__construct — Cria um novo objeto DateTimeZone
  • DateTimeZone::getLocation — Retorna informações da localização de um fuso horário
  • DateTimeZone::getName — Retorna o nome do fuso horário
  • DateTimeZone::getOffset — Retorna o deslocamento do fuso horário ao Horário de Greenwish (GMT)
  • DateTimeZone::getTransitions — Retorna todas as transições para o fuso horário
  • DateTimeZone::listAbbreviations — Retorna um array associativo contendo indicativo de horário de verãorão(dst), deslocamento e nome do fuso horário
  • DateTimeZone::listIdentifiers — Retorna um array numericamente indexado contendo todos os indenticadores de fuso horário


Cria um novo objeto DateTimeZone

  • « DateTimeZone
  • DateTimeZone::getLocation »
  • PHP Manual
  • DateTimeZone
  • Cria um novo objeto DateTimeZone

DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::__construct -- timezone_open — Cria um novo objeto DateTimeZone

Descrição

Estilo orientado a objetos

public DateTimeZone::__construct(string $timezone)

Estilo procedural

timezone_open(string $timezone): DateTimeZone|false

Cria um novo objeto DateTimeZone.

Um objeto DateTimeZone dá acesso a três diferentes tipos de regras de fuso horário: deslocamento UTC (tipo 1), abreviação de fuso (tipo 2), e identificadores de fuso horário como publicado no banco de dados de fusos horários da IANA (tipo 3).

O objeto DateTimeZone pode ser anexado aos objetos DateTime e DateTimeImmutable para que sejam capazes de mostrar o fuso horário encapsulado por estes objetos em um fuso horário local.

Parâmetros

timezone

Um dos nomes de fuso horário suportados, um valor de deslocamento (+0200), ou um identificador de fuso (BST).

Valor Retornado

Retorna um objeto DateTimeZone em caso de sucesso. Estilo procedural retorna false em caso de falha.

Erros/Exceções

Este método lança uma exceção DateInvalidTimeZoneException se o fuso horário informado não for reconhecido com um fuso horário válido. Antes do PHP 8.3, era uma exceção Exception.

Registro de Alterações

Versão | Descrição
8.3.0 | Invalid values now return a DateInvalidTimeZoneException instead of a generic Exception.

Exemplos

Exemplo #1 Criando e anexando DateTimeZone a um DateTimeImmutable

<?php
$d = new DateTimeImmutable("2022-06-02 15:44:48 UTC");

$timezones = [ 'Europe/London', 'GMT+04:45', '-06:00', 'CEST' ];

foreach ($timezones as $tz) {
$tzo = new DateTimeZone($tz);

$local = $d->setTimezone($tzo);
echo $local->format(DateTimeInterface::RFC2822 . ' — e'), "\n";
}
?>

O exemplo acima produzirá:

Thu, 02 Jun 2022 16:44:48 +0100 — Europe/London
Thu, 02 Jun 2022 20:29:48 +0445 — +04:45
Thu, 02 Jun 2022 09:44:48 -0600 — -06:00
Thu, 02 Jun 2022 17:44:48 +0200 — CEST

Exemplo #2 Capturando erros na instanciação de DateTimeZone

<?php
// Lidando com erros através de captura de exceções
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');

foreach ($timezones as $tz) {
try {
$mars = new DateTimeZone($tz);
} catch(Exception $e) {
echo $e->getMessage() . '<br />';
}
}
?>

O exemplo acima produzirá:

DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)


Retorna informações da localização de um fuso horário

  • « DateTimeZone::__construct
  • DateTimeZone::getName »
  • PHP Manual
  • DateTimeZone
  • Retorna informações da localização de um fuso horário

DateTimeZone::getLocation

timezone_location_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTimeZone::getLocation -- timezone_location_get — Retorna informações da localização de um fuso horário

Descrição

Estilo orientado a objetos

public DateTimeZone::getLocation(): array|false

Estilo procedural

timezone_location_get(DateTimeZone $object): array|false

Retorna informações da localização de um fuso horário, incluindo o código do país, latitude/longitude e comentários.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTimeZone retornado por timezone_open()

Valor Retornado

Array contendo informações da localização de um fuso horário ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo do método DateTimeZone::getLocation()

<?php
$tz = new DateTimeZone("Europe/Prague");
print_r($tz->getLocation());
print_r(timezone_location_get($tz));
?>

O exemplo acima produzirá:

Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)
Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)

Veja Também

  • DateTimeZone::listIdentifiers() - Retorna um array numericamente indexado contendo todos os indenticadores de fuso horário para obter uma lista completa ou parcial de todos os identificadores de fuso horário suportados


Retorna o nome do fuso horário

  • « DateTimeZone::getLocation
  • DateTimeZone::getOffset »
  • PHP Manual
  • DateTimeZone
  • Retorna o nome do fuso horário

DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::getName -- timezone_name_get — Retorna o nome do fuso horário

Descrição

Estilo orientado a objetos

public DateTimeZone::getName(): string

Estilo procedural

timezone_name_get(DateTimeZone $object): string

Retorna o nome do fuso horário.

Parâmetros

object

O objeto DateTimeZone do qual se deseja obter o nome.

Valor Retornado

Dependendo do tipo do fuso horário, deslocamento UTC (tipo 1), abreviação do fuso (tipo 2), e identificadores de fuso como publicado no banco de dados da IANA (tipo 3), o valor retornado será um descritor string para criar um novo objeto DateTimeZone com o mesmo deslocamento e/ou regras. Por exemplo 02:00, CEST, ou um dos nomes na lista de fusos horários.


Retorna o deslocamento do fuso horário ao Horário de Greenwish (GMT)

  • « DateTimeZone::getName
  • DateTimeZone::getTransitions »
  • PHP Manual
  • DateTimeZone
  • Retorna o deslocamento do fuso horário ao Horário de Greenwish (GMT)

DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::getOffset -- timezone_offset_get — Retorna o deslocamento do fuso horário ao Horário de Greenwish (GMT)

Descrição

Estilo orientado a objetos

public DateTimeZone::getOffset(DateTimeInterface $datetime): int

Estilo procedural

timezone_offset_get(DateTimeZone $object, DateTimeInterface $datetime): int

Esta função retorna o deslocamento em relação ao GMT para a data/hora especificada no parâmetro datetime. O deslocamento GMT é calculado com informação do fuso horário contido no objeto DateTimeZone utilizado.

Parâmetros

object

Somente no estilo procedural: Um objeto DateTimeZone retornado por timezone_open()

datetime

DateTime que contém a data/hora a partir da qual será computado o deslocamento.

Valor Retornado

Retorna o deslocamento do fuso horário em segundos.

Exemplos

Exemplo #1 Exemplos do método DateTimeZone::getOffset()

<?php
// Cria dois objetos de fuso horário, um para Taipei (Taiwan) e um para
// Tokyo (Japão)
$dateTimeZoneTaipei = new DateTimeZone("Asia/Taipei");
$dateTimeZoneJapan = new DateTimeZone("Asia/Tokyo");

// Cria dois objetos DateTime que irão conter o mesmo timestamp Unix, mas
// têm fusos horários diferentes anexados a eles.
$dateTimeTaipei = new DateTime("now", $dateTimeZoneTaipei);
$dateTimeJapan = new DateTime("now", $dateTimeZoneJapan);

// Calcula o deslocamento GMT para a data/hora contida no objeto $dateTimeTaipei,
// mas usando as regras de fuso horário como definidas para Tokyo
// ($dateTimeZoneJapan).
$timeOffset = $dateTimeZoneJapan->getOffset($dateTimeTaipei);

// Deve mostrar int(32400) (para datas após Sat Sep 8 01:00:00 1951 JST).
var_dump($timeOffset);
?>


Retorna todas as transições para o fuso horário

  • « DateTimeZone::getOffset
  • DateTimeZone::listAbbreviations »
  • PHP Manual
  • DateTimeZone
  • Retorna todas as transições para o fuso horário

DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::getTransitions -- timezone_transitions_get — Retorna todas as transições para o fuso horário

Descrição

Estilo orientado a objetos

public DateTimeZone::getTransitions(int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false

Estilo procedural

timezone_transitions_get(DateTimeZone $object, int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false

Parâmetros

object

Somente no estilo procedural: Um objeto DateTimeZone retornado por timezone_open()

timestampBegin

Timestamp inicial.

timestampEnd

Timestamp final.

Valor Retornado

Retorna um array numericamente indexado de arrays de transições em caso de sucesso, ou false em caso de falha. Objetos DataTimeZone do tipo 1 (deslocamento UTC) e tipo 2 (abreviações) não contêm transições, e se tiverem este método chamado irão retornar false.

Se o parâmetro timestampBegin for informado, a primeira entrada no array de retorno irá contrer um elemento de transição no horário de timestampBegin.

Estrutura do Array de Transição
Key | Type | Description
ts | int | Timestamp Unix
time | string | string de horário DateTimeInterface::ISO8601_EXPANDED (PHP 8.2 e seguintes), ou DateTimeInterface::ISO8601 (PHP 8.1 e anteriores)
offset | int | Deslocamento UTC em segundos
isdst | bool | Se o horário de verão está ativo
abbr | string | Abreviação do fuso horário

Exemplos

Exemplo #1 Exemplo do método timezone_transitions_get()

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [ts] => -9223372036854775808
            [time] => -292277022657-01-27T08:29:52+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [1] => Array
        (
            [ts] => -1691964000
            [time] => 1916-05-21T02:00:00+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [2] => Array
        (
            [ts] => -1680472800
            [time] => 1916-10-01T02:00:00+0000
            [offset] => 0
            [isdst] =>
            [abbr] => GMT
        )

)

Exemplo #2 Um exemplo da função timezone_transitions_get() com o parâmetro timestampBegin

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions(time());
print_r(array_slice($transitions, 0, 3));
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [ts] => 1654184161
            [time] => 2022-06-02T15:36:01+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [1] => Array
        (
            [ts] => 1667091600
            [time] => 2022-10-30T01:00:00+0000
            [offset] => 0
            [isdst] =>
            [abbr] => GMT
        )

    [2] => Array
        (
            [ts] => 1679792400
            [time] => 2023-03-26T01:00:00+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

)


Retorna um array associativo contendo indicativo de horário de verãorão(dst), deslocamento e nome do fuso horário

  • « DateTimeZone::getTransitions
  • DateTimeZone::listIdentifiers »
  • PHP Manual
  • DateTimeZone
  • Retorna um array associativo contendo indicativo de horário de verãorão(dst), deslocamento e nome do fuso horário

DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::listAbbreviations -- timezone_abbreviations_list — Retorna um array associativo contendo indicativo de horário de verãorão(dst), deslocamento e nome do fuso horário

Descrição

Estilo orientado a objetos

public static DateTimeZone::listAbbreviations(): array

Estilo procedural

timezone_abbreviations_list(): array

A lista de abreviações retornada inclui todo o uso histórico de abreviações, o que pode levar a entradas corretas, porém confusas. Também existem conflitos, já que PST é usado tanto nos EUA como nas Filipinas.

A lista que esta função retora não é portanto adequada para construir um array com opções para apresentar ao usuário para escolha de fusos horários.

Nota:

Os dados desta função são pré compilados por razões de desempenho, e não são atualizadas quado é usado um novo » timezonedb.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o array de abreviações de fuso horário.

Exemplos

Exemplo #1 Exemplo da função timezone_abbreviations_list()

<?php
$timezone_abbreviations = DateTimeZone::listAbbreviations();
print_r($timezone_abbreviations["acst"]);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Porto_Acre
        )

    [1] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Eirunepe
        )

    [2] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Rio_Branco
        )

    [3] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => Brazil/Acre
        )

)

Veja Também

  • timezone_identifiers_list() - Sinônimo de DateTimeZone::listIdentifiers


Retorna um array numericamente indexado contendo todos os indenticadores de fuso horário

  • « DateTimeZone::listAbbreviations
  • DateInterval »
  • PHP Manual
  • DateTimeZone
  • Retorna um array numericamente indexado contendo todos os indenticadores de fuso horário

DateTimeZone::listIdentifiers

timezone_identifiers_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::listIdentifiers -- timezone_identifiers_list — Retorna um array numericamente indexado contendo todos os indenticadores de fuso horário

Descrição

Estilo orientado a objetos

public static DateTimeZone::listIdentifiers(int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode = null): array

Estilo procedural

timezone_identifiers_list(int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode = null): array

Parâmetros

timezoneGroup

Uma das constantes da classe DateTimeZone (ou uma combinação).

countryCode

Um código de país, com duas letras (maiúsculas), compatível com a ISO 3166-1.

Nota: Esta opção é utilizada somente quando o parâmetro timezoneGroup é configurado como DateTimeZone::PER_COUNTRY.

Valor Retornado

Retorna o array de identificadores de fuso horário. Apenas itens não desatualizados são retornados. Para obter todos, incluindo identificadores desatualizados, use DateTimeZone::ALL_WITH_BC no valor de timezoneGroup.

Registro de Alterações

Versão | Descrição
8.0.0 | Antes desta versão, false era retornado em caso de falha.
7.1.0 | O parâmetro countryCode agora pode ser nulo.

Exemplos

Exemplo #1 Um exemplo do método DateTimeZone::listIdentifiers()

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
for ($i=0; $i < 5; $i++) {
echo "$timezone_identifiers[$i]\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

Exemplo #2 Listando identificadores para uma região específica

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA );
for ($i=0; $i < 5; $i++) {
echo "$timezone_identifiers[$i]\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau

Exemplo #3 Listando identificadores para múltiplas regiões

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA | DateTimeZone::PACIFIC );
echo join( ', ', $timezone_identifiers );
?>

O exemplo acima produzirá algo semelhante a:

Asia/Aden, Asia/Almaty, Asia/Amman, Asia/Anadyr, Asia/Aqtau, Asia/Aqtobe,
Asia/Ashgabat, Asia/Atyrau, Asia/Baghdad, Asia/Bahrain, Asia/Baku,
Asia/Bangkok, Asia/Barnaul, Asia/Beirut, Asia/Bishkek, Asia/Brunei,
Asia/Chita, Asia/Choibalsan, Asia/Colombo, Asia/Damascus, Asia/Dhaka,
Asia/Dili, Asia/Dubai, Asia/Dushanbe, Asia/Famagusta, Asia/Gaza, Asia/Hebron,
Asia/Ho_Chi_Minh, Asia/Hong_Kong, Asia/Hovd, Asia/Irkutsk, Asia/Jakarta,
Asia/Jayapura, Asia/Jerusalem, Asia/Kabul, Asia/Kamchatka, Asia/Karachi,
Asia/Kathmandu, Asia/Khandyga, Asia/Kolkata, Asia/Krasnoyarsk,
Asia/Kuala_Lumpur, Asia/Kuching, Asia/Kuwait, Asia/Macau, Asia/Magadan,
Asia/Makassar, Asia/Manila, Asia/Muscat, Asia/Nicosia, Asia/Novokuznetsk,
Asia/Novosibirsk, Asia/Omsk, Asia/Oral, Asia/Phnom_Penh, Asia/Pontianak,
Asia/Pyongyang, Asia/Qatar, Asia/Qostanay, Asia/Qyzylorda, Asia/Riyadh,
Asia/Sakhalin, Asia/Samarkand, Asia/Seoul, Asia/Shanghai, Asia/Singapore,
Asia/Srednekolymsk, Asia/Taipei, Asia/Tashkent, Asia/Tbilisi, Asia/Tehran,
Asia/Thimphu, Asia/Tokyo, Asia/Tomsk, Asia/Ulaanbaatar, Asia/Urumqi,
Asia/Ust-Nera, Asia/Vientiane, Asia/Vladivostok, Asia/Yakutsk, Asia/Yangon,
Asia/Yekaterinburg, Asia/Yerevan, Pacific/Apia, Pacific/Auckland,
Pacific/Bougainville, Pacific/Chatham, Pacific/Chuuk, Pacific/Easter,
Pacific/Efate, Pacific/Fakaofo, Pacific/Fiji, Pacific/Funafuti,
Pacific/Galapagos, Pacific/Gambier, Pacific/Guadalcanal, Pacific/Guam,
Pacific/Honolulu, Pacific/Kanton, Pacific/Kiritimati, Pacific/Kosrae,
Pacific/Kwajalein, Pacific/Majuro, Pacific/Marquesas, Pacific/Midway,
Pacific/Nauru, Pacific/Niue, Pacific/Norfolk, Pacific/Noumea,
Pacific/Pago_Pago, Pacific/Palau, Pacific/Pitcairn, Pacific/Pohnpei,
Pacific/Port_Moresby, Pacific/Rarotonga, Pacific/Saipan, Pacific/Tahiti,
Pacific/Tarawa, Pacific/Tongatapu, Pacific/Wake, Pacific/Wallis

Exemplo #4 Listando identificadores para um único país

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::PER_COUNTRY, "UA" );
foreach( $timezone_identifiers as $identifier ) {
echo "$identifier\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Europe/Kyiv
Europe/Simferopol
Europe/Uzhgorod
Europe/Zaporozhye

Veja Também

  • timezone_abbreviations_list() - Sinônimo de DateTimeZone::listAbbreviations


A classe DateInterval

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

Representa um intervalo entre datas.

Um intervalo de data armazena, tanto uma quantidade de tempo (em anos, meses, dias, horas, etc), quanto uma string de tempo relativo no formato que os construtores das classes DateTimeImmutable e DateTime suportam.

Mais especificamente, a informação em um objeto da classe DateInterval é uma instrução para mover de uma data/hora para outra data/hora. Este processo nem sempre é reversível.

Uma maneira comum de criar um objeto DateInterval é calculando a diferença entre dois objetos data/hora através do método DateTimeInterface::diff().

Como não existe uma maneira bem definida de comparar intervalos de datas, as instâncias de DateInterval são incomparáveis.

Resumo da classe

class DateInterval {
/* Propriedades */
public int $y;
public int $m;
public int $d;
public int $h;
public int $i;
public int $s;
public float $f;
public int $invert;
public mixed $days;
public bool $from_string;
public string $date_string;
/* Métodos */
public __construct(string $duration)
public static createFromDateString(string $datetime): DateInterval|false
public format(string $format): string
}

Propriedades

Aviso

As propriedades disponíveis listadas abaixo dependem da versão do PHP, e devem ser consideradas como somente-leitura.

y

Número de anos.

m

Número de meses.

d

Número de dias.

h

Número de horas.

i

Número de minutos.

s

Número de segundos.

f

Número de microssegundos, como uma fração de um segundo.

invert

Será 1 se o intervalo representa um período negativo de tempo e 0 caso contrário. Veja DateInterval::format().

days

Se o objeto DateInterval foi criado por DateTimeImmutable::diff() ou DateTime::diff(), então ele representará o número total de dias inteiros entre a data inicial e final. Caso contrário, days será false.

from_string

Se o objeto DateInterval foi criado por DateInterval::createFromDateString(), então o valor desta propriedade será true e a propriedade date_string será populada. Caso contrário, o valor será false e as propriedades y a f, invert e days serão populadas.

date_string

String usado como argumento para DateInterval::createFromDateString().

Registro de Alterações

Versão | Descrição
8.2.0 | As propriedades from_string e date_string foram adicionadas para instâncias DateInterval que foram criadas usando o método DateInterval::createFromDateString().
8.2.0 | Apenas as propriedades y a f, invert, e days serão visíveis.
7.4.0 | As instâncias de DateInterval agora são incomparáveis; antes, todas as instâncias de DateInterval eram consideradas iguais.
7.1.0 | A propriedade f foi adicionada.

Índice

  • DateInterval::__construct — Cria um novo objeto DateInterval
  • DateInterval::createFromDateString — Cria um DateInterval de porções relativas da string
  • DateInterval::format — Formata um intervalo


Cria um novo objeto DateInterval

  • « DateInterval
  • DateInterval::createFromDateString »
  • PHP Manual
  • DateInterval
  • Cria um novo objeto DateInterval

DateInterval::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::__construct — Cria um novo objeto DateInterval

Descrição

public DateInterval::__construct(string $duration)

Cria um novo objeto DateInterval.

Parâmetros

duration

Uma especificação de intervalo.

O formato inicia-se com a letra P, de período. Cada período de duração é representado por um valor inteiro seguido do designador de período. Se a duração conter elementos de tempo, essa porção da especificação é precedida pela letra T.

duration Designadores de Período
Designador de Período | Descrição
Y | anos
M | meses
D | dias
W | semanas. Convertidas em dias. Antes do PHP 8.0.0, não pode ser combinada com D.
H | horas
M | minutos
S | segundos

Alguns exemplos simples. Dois dias é representado com P2D. Dois segundos é representado com PT2S. Seis anos e cinco minutos é representado com P6YT5M.

Nota:

O tipo de unidade deve ser inserida da unidade de maior escala a esquerda da de menor escala, essa a direta. Então, anos antes de meses, meses antes de dias, dias antes de minutos, e etc. Assim, um ano e quatro dias deve ser representado com P1Y4D, e não P4D1Y.

A especificação também pode ser representada como data e hora. Um exemplo de um ano e quatro dias seria P0001-00-04T00:00:00. Porém, valores neste formato não podem exceder o tamanho máximo do período (por exemplo 25 horas é inválido).

Estes formatos são baseados na » ISO 8601 duration specification.

Erros/Exceções

Dispara uma exceção DateMalformedIntervalStringException quando o parâmetro duration não puder ser interpretado como um intervalo. Antes do PHP 8.3, era uma Exception.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora dispara DateMalformedIntervalStringException em vez de Exception.
8.2.0 | Apenas as propriedades y a f, invert e days estarão visíveis, incluindo uma nova propriedade booleana from_string.
8.0.0 | W pode ser combinado com D.

Exemplos

Exemplo #1 Construindo e usando objetos da classe DateInterval

<?php
// Cria uma data específica
$someDate = \DateTime::createFromFormat("Y-m-d H:i", "2022-08-25 14:18");

// Cria um intervalo
$interval = new \DateInterval("P7D");

// Adiciona o intervalo
$someDate->add($interval);

// Converte o intervalo para string
echo $interval->format("%d");

O exemplo acima produzirá:

7

Exemplo #2 Exemplo da classe DateInterval

<?php

$interval = new DateInterval('P1W2D');
var_dump($interval);

?>

Saída do exemplo acima no PHP 8.2:

object(DateInterval)#1 (10) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(9)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["from_string"]=>
  bool(false)
}

Saída do exemplo acima no PHP 8:

object(DateInterval)#1 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(9)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}

Saída do exemplo acima no PHP 7:

object(DateInterval)#1 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(2)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}

Veja Também

  • DateInterval::format() - Formata um intervalo
  • DateTime::add() - Modifica um objeto DateTime, com adição de dias, meses, anos, horas, minutos e segundos.
  • DateTime::sub() - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime
  • DateTime::diff() - Retorna a diferença entre dois objetos DateTime


Cria um DateInterval de porções relativas da string

  • « DateInterval::__construct
  • DateInterval::format »
  • PHP Manual
  • DateInterval
  • Cria um DateInterval de porções relativas da string

DateInterval::createFromDateString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::createFromDateString — Cria um DateInterval de porções relativas da string

Descrição

Estilo orientado a objetos

public static DateInterval::createFromDateString(string $datetime): DateInterval|false

Estilo procedural

date_interval_create_from_date_string(string $datetime): DateInterval|false

Utiliza o interpretador de data/hora como no construtor da classe DateTimeImmutable para criar um DateInterval a partir das partes relacionadas de uma string analisada.

Parâmetros

datetime

Uma data com porções relativas. Especificamente, os formatos relativos suportados pelo analisador utilizados em DateTimeImmutable, DateTime e strtotime() serão utilizados para construir o DateInterval.

Para usar um string no formato ISO-8601 como P7D, você deve usar o construtor.

Valor Retornado

Retorna uma nova instância de DateInterval em caso de sucesso, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.2.0 | Apenas as propriedades from_string e date_string estarão visíveis quando um DateInterval for criado com este método.

Exemplos

Exemplo #1 Analisando intervalos de datas válidos

<?php
// Each set of intervals is equal.
$i = new DateInterval('P1D');
$i = DateInterval::createFromDateString('1 day');

$i = new DateInterval('P2W');
$i = DateInterval::createFromDateString('2 weeks');

$i = new DateInterval('P3M');
$i = DateInterval::createFromDateString('3 months');

$i = new DateInterval('P4Y');
$i = DateInterval::createFromDateString('4 years');

$i = new DateInterval('P1Y1D');
$i = DateInterval::createFromDateString('1 year + 1 day');

$i = new DateInterval('P1DT12H');
$i = DateInterval::createFromDateString('1 day + 12 hours');

$i = new DateInterval('PT3600S');
$i = DateInterval::createFromDateString('3600 seconds');
?>

Exemplo #2 Analisando combinações e intervalos negativos

<?php
$i = DateInterval::createFromDateString('62 weeks + 1 day + 2 weeks + 2 hours + 70 minutes');
echo $i->format('%d %h %i'), "\n";

$i = DateInterval::createFromDateString('1 year - 10 days');
echo $i->format('%y %d'), "\n";
?>

O exemplo acima produzirá:

449 2 70
1 -10

Exemplo #3 Analisando intervalos de data especiais

<?php
$i = DateInterval::createFromDateString('last day of next month');
var_dump($i);

$i = DateInterval::createFromDateString('last weekday');
var_dump($i);

Saída do exemplo acima no PHP 8.2:

object(DateInterval)#1 (2) {
  ["from_string"]=>
  bool(true)
  ["date_string"]=>
  string(22) "last day of next month"
}
object(DateInterval)#2 (2) {
  ["from_string"]=>
  bool(true)
  ["date_string"]=>
  string(12) "last weekday"
}

A saída do exemplo acima no PHP 8 é semelhante a:

object(DateInterval)#1 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(1)
  ["d"]=>
  int(0)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(2)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}
object(DateInterval)#2 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(0)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(1)
  ["special_amount"]=>
  int(-1)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(1)
}


Formata um intervalo

  • « DateInterval::createFromDateString
  • DatePeriod »
  • PHP Manual
  • DateInterval
  • Formata um intervalo

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::format — Formata um intervalo

Descrição

public DateInterval::format(string $format): string

Formata um intervalo.

Parâmetros

format

Os caracteres a seguir são reconhecidos como string no parâmetro format. Cada um dos caracteres de formato deve ser precedidos com o sinal de porcento (%).
Caracter de format | Descrição | Exemplo de valores
% % literal %
Y | Anos, em representação numérica, com dois dígitos e zero à esquerda | 01, 03
y | Anos, em representação numérica | 1, 3
M | Meses, em representação numérica, com dois dígitos e zero à esquerda | 01, 03, 12
m | Meses, em representação numérica | 1, 3, 12
D | Dias, em representação numérica, com dois dígitos e zero à esquerda | 01, 03, 31
d | Dias, em representação numérica | 1, 3, 31
a | Número total de dias resultante de DateTime::diff() ou (unknown), caso contrário | 4, 18, 8123
H | Horas, em representação numérica, com dois dígitos e zero à esquerda | 01, 03, 23
h | Horas, em representação numérica | 1, 3, 23
I | Minutos, em representação numérica, com dois dígitos e zero à esquerda | 01, 03, 59
i | Minutos, em representação numérica | 1, 3, 59
S | Segundos, em representação numérica, com dois dígitos e zero à esquerda | 01, 03, 57
s | Segundos, em representação numérica | 1, 3, 57
F | Microssegundos, numérico, pelo menos 6 dígitos precedidos com 0 | 007701, 052738, 428291
f | Microssegundos, numérico | 7701, 52738, 428291
R Sinal "-" quando negativo, "+" quando positivo -, +
r Sinal "-" quando negativo, sem sinal quando positivo -,

Valor Retornado

Retorna o intervalo formatado.

Registro de Alterações

Versão | Descrição
7.2.12 | Os formatos F e f serão agora sempre positivos.
7.1.0 | Os formatos F e f foram adicionados.

Exemplos

Exemplo #1 Exemplo da classe DateInterval

<?php

$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d days');

?>

O exemplo acima produzirá:

4 days

Exemplo #2 A classe DateInterval e os pontos de transferência

<?php

$interval = new DateInterval('P32D');
echo $interval->format('%d days');

?>

O exemplo acima produzirá:

32 days

Exemplo #3 DateInterval e DateTime::diff() com os modificadores %a e %d

<?php

$janeiro = new DateTime('2010-01-01');
$fevereiro = new DateTime('2010-02-01');
$intervalo = $fevereiro->diff($janeiro);

// %a irá resultar no número total de dias.
echo $intervalo->format('%a dias totais')."\n";

// Enquanto %d irá apenas resultar no número de dias ainda não cobertos pelo
// mês.
echo $intervalo->format('%m mês, %d dias');

?>

O exemplo acima produzirá:

31 total days
1 month, 0 days

Notas

Nota:

O método DateInterval::format() não recalcula pontos de transferência em strings de data/hora. Isto é esperado porque não é possível extrapolar valores como "32 days", o que poderia ser interpretado como qualquer coisa entre "1 month and 4 days" e "1 month and 1 day".

Veja Também

  • DateTime::diff() - Retorna a diferença entre dois objetos DateTime


A classe DatePeriod

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

Representa um período entre datas.

O período entre datas permite a interação entre um conjunto de datas e horários recorrentes a intervalos regulares, durante um determinado período.

Resumo da classe

class DatePeriod implements IteratorAggregate {
/* Constantes */
public const int EXCLUDE_START_DATE;
public const int INCLUDE_END_DATE;
/* Propriedades */
public readonly ?DateTimeInterface $start;
public readonly ?DateTimeInterface $current;
public readonly ?DateTimeInterface $end;
public readonly ?DateInterval $interval;
public readonly int $recurrences;
public readonly bool $include_start_date;
public readonly bool $include_end_date;
/* Métodos */
public __construct(
DateTimeInterface $start,
DateInterval $interval,
int $recurrences,
int $options = 0
)
public __construct(
DateTimeInterface $start,
DateInterval $interval,
DateTimeInterface $end,
int $options = 0
)
public __construct(string $isostr, int $options = 0)
public static createFromISO8601String(string $specification, int $options = 0): static
public getDateInterval(): DateInterval
public getEndDate(): ?DateTimeInterface
public getRecurrences(): ?int
public getStartDate(): DateTimeInterface
}

Constantes pré-definidas

DatePeriod::EXCLUDE_START_DATE

Exclui a data inicial, utilizada em DatePeriod::__construct().

DatePeriod::INCLUDE_END_DATE

Inclui a data final, utilizado em DatePeriod::__construct().

Propriedades

recurrences

O número mínimo de instâncias retornadas pelo iterator.

O número de recorrências que foi informado explicitamente no parâmetro recurrences no construtor da instância de DatePeriod, de forma que essa propriedade contém este valor, mais um se a data inicial não foi excluída através de DatePeriod::EXCLUDE_START_DATE, mais um se a data final foi incluída através de DatePeriod::INCLUDE_END_DATE.

Se o número de recorrências não foi informado explicitamente, então esta propriedade conte o número mínimo de recorrências a retornar. Isto pode ser 0, mais um se a data inicial não foi excluída através de DatePeriod::EXCLUDE_START_DATE, mais um se a data finnal não foi incluída através de DatePeriod::INCLUDE_END_DATE.

<?php
$start = new DateTime('2018-12-31 00:00:00');
$end = new DateTime('2021-12-31 00:00:00');
$interval = new DateInterval('P1M');
$recurrences = 5;

// recorrências informadas no construtor
$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::EXCLUDE_START_DATE);
echo $period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $recurrences);
echo $period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::INCLUDE_END_DATE);
echo $period->recurrences, "\n";

// recorrências não informadas no construtor
$period = new DatePeriod($start, $interval, $end);
echo $period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
echo $period->recurrences, "\n";
?>

O exemplo acima produzirá:

5
6
7
1
0

Veja também DatePeriod::getRecurrences().

include_end_date

Se inclui a data final no conjunto de datas a retornar.

include_start_date

Se inclui a data inicial no conjunto de datas a retornar.

start

A data inicial do período.

current

Contém a data atual dentro do período.

end

Data final do período.

interval

Uma especificação ISO 8601 do intervalo repetidor.

Registro de Alterações

Versão | Descrição
8.2.0 | A constante DatePeriod::INCLUDE_END_DATE e a propriedade include_end_date foram adicionados.
8.0.0 | DatePeriod agora implementa IteratorAggregate. Anteriormente implementava Traversable.

Índice

  • DatePeriod::__construct — Cria um novo objeto DatePeriod
  • DatePeriod::createFromISO8601String — Cria um novo objeto DatePeriod a partir de uma string ISO8601
  • DatePeriod::getDateInterval — Obtém o intervalo
  • DatePeriod::getEndDate — Obtém a data final
  • DatePeriod::getRecurrences — Obtém o número de recorrências
  • DatePeriod::getStartDate — Obtém a data inicial


Cria um novo objeto DatePeriod

  • « DatePeriod
  • DatePeriod::createFromISO8601String »
  • PHP Manual
  • DatePeriod
  • Cria um novo objeto DatePeriod

DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DatePeriod::__construct — Cria um novo objeto DatePeriod

Descrição

public DatePeriod::__construct(
DateTimeInterface $start,
DateInterval $interval,
int $recurrences,
int $options = 0
)
public DatePeriod::__construct(
DateTimeInterface $start,
DateInterval $interval,
DateTimeInterface $end,
int $options = 0
)
Aviso
public DatePeriod::__construct(string $isostr, int $options = 0)

Esta variante do construtor foi descontinuada, use o método DatePeriod::createFromISO8601String().

Cria um objeto DatePeriod.

Objetos DatePeriod podem ser usados como um iterador para gerar um número de objetos DateTimeImmutable ou DateTime a partir de uma data inicial (start), um intervalo (interval), e uma data final (end) ou o número de recorrências (recurrences).

A classe do objeto retornado é equivalente à classe ancestral DateTimeImmutable ou DateTime do objeto do parâmetro start.

Parâmetros

start

A data inicial do período. Incluído por padrão no conjunto de resultados.

interval

A recorrência de intervalos entre os períodos.

recurrences

O número de recorrências. O número do resultado retornado é uma unidade a mais que isto, já que a data de início é incluída no conjunto de resultados por padrão. Deve ser maior que 0.

end

A data final do período.

isostr

Um sobconjunto da » ISO 8601 repeating interval specification.

Exemplos de algumas características de especificação de intervalos ISO 8601 que o PHP não suporta são:

  1. zero ocorrências (R0/)
  2. fusos horários diferentes de UTC (Z), como +02:00.
options

Um campo de bits que pode ser usado para controlar certos comportamentos com datas de início e fim.

Com DatePeriod::EXCLUDE_START_DATE você exclui a data inicial do conjunto de datas recorrentes dentro do período.

Com DatePeriod::INCLUDE_END_DATE você inclui a data final do conjunto de datas recorrentes dentro do período.

Erros/Exceções

Dispara uma exceção DateMalformedPeriodStringException quando o parâmetro isostr não pode ser interpretado como um período ISO 8601 válido. Antes do PHP 8.3, isto era uma Exception.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora dispara DateMalformedPeriodStringException em vez de Exception.
8.2.0 | A constante DatePeriod::INCLUDE_END_DATE foi incluída.
7.2.19, 7.3.6, 7.4.0 | O parâmetro recurrences agora deve ser maior que 0.

Exemplos

Exemplo #1 Exemplos de DatePeriod

<?php
$inicio = new DateTime('2012-07-01');
$intervalo = new DateInterval('P7D');
$fim = new DateTime('2012-07-31');
$recorrencias = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';

// Todos estes períodos são equivalentes.
$periodo = new DatePeriod($inicio, $intervalo, $recorrencias);
$periodo = new DatePeriod($inicio, $intervalo, $fim);
$periodo = new DatePeriod($iso);

// Ao iterar sobre o objeto DatePeriod, todas as
// datas recorrentes dentro do período são exibidas.
foreach ($periodo as $data) {
echo $data->format('Y-m-d')."\n";
}
?>

O exemplo acima produzirá:

2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-29

Exemplo #2 Exemplo de DatePeriod com DatePeriod::EXCLUDE_START_DATE

<?php
$inicio = new DateTime('2012-07-01');
$intervalo = new DateInterval('P7D');
$fim = new DateTime('2012-07-31');

$periodo = new DatePeriod($inicio, $intervalo, $fim,
DatePeriod::EXCLUDE_START_DATE);

// Ao iterar sobre o objeto DatePeriod, todas as
// datas recorrentes dentro do período são exibidas.
// Note que, neste caso, 2012-07-01 não é mostrada.
foreach ($periodo as $data) {
echo $data->format('Y-m-d')."\n";
}
?>

O exemplo acima produzirá:

2012-07-08
2012-07-15
2012-07-22
2012-07-29

Exemplo #3 Exemplo de DatePeriod mostrando todas as últimas quintas-feiras do ano

<?php
$inicio = new DateTime('2021-12-31');
$fim = new DateTime('2022-12-31 23:59:59');

$intervalo = DateInterval::createFromDateString('last thursday of next month');
$periodo = new DatePeriod($inicio, $intervalo, $fim, DatePeriod::EXCLUDE_START_DATE);

foreach ($periodo as $data) {
echo $data->format('l Y-m-d'), "\n";
}
?>

O exemplo acima produzirá:

Thursday 2022-01-27
Thursday 2022-02-24
Thursday 2022-03-31
Thursday 2022-04-28
Thursday 2022-05-26
Thursday 2022-06-30
Thursday 2022-07-28
Thursday 2022-08-25
Thursday 2022-09-29
Thursday 2022-10-27
Thursday 2022-11-24
Thursday 2022-12-29

Notas

Npumeros de repetições não vinculados como especificado pela ISO 8601 seção 4.5 "Recurring time interval" não são suportados, ex.: nem passando passando "R/..." como parâmetro isostr nem passando null como parâmetro end funcionaria.


Cria um novo objeto DatePeriod a partir de uma string ISO8601

  • « DatePeriod::__construct
  • DatePeriod::getDateInterval »
  • PHP Manual
  • DatePeriod
  • Cria um novo objeto DatePeriod a partir de uma string ISO8601

DatePeriod::createFromISO8601String

(PHP 8 >= 8.3.0)

DatePeriod::createFromISO8601String — Cria um novo objeto DatePeriod a partir de uma string ISO8601

Descrição

public static DatePeriod::createFromISO8601String(string $specification, int $options = 0): static

Cria um novo objeto DatePeriod a partir de uma string ISO8601, como especificado no parâmetro specification.

Parâmetros

specification

Um subconjunto da » especificação ISO 8601 de intervalos repetitivos.

Um exemplo de uma especificação de intervalo ISO 8601 aceitável é R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M, que especifica:

  • 5 iterações (R5/)
  • Inicia em 2008-03-01T13:00:00Z.
  • Cada iteração ocorrem em um intervalo de 1 ano, 2 meses, 10 dias, 2 horas e 30 minutos (/P1Y2M10DT2H30M).

Exemplo de recursos de especificação de intervalos ISO 8601 que o PHP não suporta são:

  1. zero ocorrências (R0/)
  2. deslocamento de fuso horário que não seja UTC (Z), como em +02:00.
options

Um campo de bits que pode ser utilizado para controlar certos comportamentos com datas iniciais e finais.

Com DatePeriod::EXCLUDE_START_DATE, pode-se excluir a data inicial do conjunto de datas recorrentes dentro do período.

Com DatePeriod::INCLUDE_END_DATE, pode-se incluir a data final no conjunto de datas recorrentes dentro do período.

Valor Retornado

Retorna um novo objeto DatePeriod.

Objetos DatePeriod criados com este método podem ser usador como um iterador para gerar um número de objetos DateTimeImmutable.

Erros/Exceções

Dispara DateMalformedPeriodStringException quando o parâmetro specification não puder ser analisado como um período ISO 8601 válido.

Exemplos

Exemplo #1 Exemplo de DatePeriod::createFromISO8601String

<?php
$iso = 'R4/2023-07-01T00:00:00Z/P7D';

$period = DatePeriod::createFromISO8601String($iso);

// Iterando pelo objeto DatePeriod, todas as
// datas recorrentes dentro do período são exibidas.
foreach ($period as $date) {
echo $date->format('Y-m-d'), "\n";
}
?>

O exemplo acima produzirá:

2023-07-01
2023-07-08
2023-07-15
2023-07-22
2023-07-29


Obtém o intervalo

  • « DatePeriod::createFromISO8601String
  • DatePeriod::getEndDate »
  • PHP Manual
  • DatePeriod
  • Obtém o intervalo

DatePeriod::getDateInterval

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getDateInterval — Obtém o intervalo

Descrição

Estilo orientado a objetos

public DatePeriod::getDateInterval(): DateInterval

Obtém um object da classe DateInterval representando o intervalo usado para o período.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um object DateInterval.

Exemplos

Exemplo #1 Exemplo de DatePeriod::getDateInterval()

<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$interval = $period->getDateInterval();
echo $interval->format('%d day');
?>

O exemplo acima produzirá:

1 day

Veja Também

  • DatePeriod::getStartDate() - Obtém a data inicial
  • DatePeriod::getEndDate() - Obtém a data final


Obtém a data final

  • « DatePeriod::getDateInterval
  • DatePeriod::getRecurrences »
  • PHP Manual
  • DatePeriod
  • Obtém a data final

DatePeriod::getEndDate

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getEndDate — Obtém a data final

Descrição

Estilo orientado a objetos

public DatePeriod::getEndDate(): ?DateTimeInterface

Obtém a data final do período.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna null se o DatePeriod não tiver uma data final. Por exemplo, quando inicializado com o parâmetro recurrences ou isostr sem uma data final.

Retorna um object DateTimeImmutable quando o DatePeriod é inicializado com um object DateTimeImmutable no parâmetro end.

Caso contrário, retorna um clone do object DateTime representando a data final.

Exemplos

Exemplo #1 Exemplo de DatePeriod::getEndDate()

<?php
$period = new DatePeriod(
new DateTime('2016-05-16T00:00:00Z'),
new DateInterval('P1D'),
new DateTime('2016-05-20T00:00:00Z')
);
$start = $period->getEndDate();
echo $start->format(DateTime::ISO8601);
?>

Os exemplos acima produzirão:

2016-05-20T00:00:00+0000

Exemplo #2 Exemplo de DatePeriod::getEndDate() sem uma data final

<?php
$period = new DatePeriod(
new DateTime('2016-05-16T00:00:00Z'),
new DateInterval('P1D'),
7
);
var_dump($period->getEndDate());
?>

O exemplo acima produzirá:

NULL

Veja Também

  • DatePeriod::getStartDate() - Obtém a data inicial
  • DatePeriod::getDateInterval() - Obtém o intervalo


Obtém o número de recorrências

  • « DatePeriod::getEndDate
  • DatePeriod::getStartDate »
  • PHP Manual
  • DatePeriod
  • Obtém o número de recorrências

DatePeriod::getRecurrences

(PHP 7 >= 7.2.17/7.3.4, PHP 8)

DatePeriod::getRecurrences — Obtém o número de recorrências

Descrição

Estilo orientado a objetos

public DatePeriod::getRecurrences(): ?int

Obtém Obtém o número de recorrências.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O número de recorrências como definido explicitamente pelo parâmetro $recurrences passado ao contrutor da classe DatePeriod, ou null caso não tenha sido definido.

Exemplos

Exemplo #1 Diferentes valores para DatePeriod::getRecurrences()

<?php
$start = new DateTime('2018-12-31 00:00:00');
$end = new DateTime('2021-12-31 00:00:00');
$interval = new DateInterval('P1M');
$recurrences = 5;

// recorrências definidas explicitamente através do construtor
$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::EXCLUDE_START_DATE);
echo $period->getRecurrences(), "\n";

$period = new DatePeriod($start, $interval, $recurrences);
echo $period->getRecurrences(), "\n";

$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::INCLUDE_END_DATE);
echo $period->getRecurrences(), "\n\n";

// recorrências não definidas no construtor
$period = new DatePeriod($start, $interval, $end);
var_dump($period->getRecurrences());

$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
var_dump($period->getRecurrences());
?>

O exemplo acima produzirá:

5
5
5

NULL
NULL

Veja Também

  • DatePeriod::$recurrences


Obtém a data inicial

  • « DatePeriod::getRecurrences
  • Funções de Data/Hora »
  • PHP Manual
  • DatePeriod
  • Obtém a data inicial

DatePeriod::getStartDate

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getStartDate — Obtém a data inicial

Descrição

Estilo orientado a objetos

public DatePeriod::getStartDate(): DateTimeInterface

Obtém a data inicial do período.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um object DateTimeImmutable quando o DatePeriod é inicializado com um object DateTimeImmutable no parâmetro start.

Caso contrário, retorna um object DateTime.

Exemplos

Exemplo #1 Exemplo de DatePeriod::getStartDate()

<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$start = $period->getStartDate();
echo $start->format(DateTime::ISO8601);
?>

O exemplo acima produzirá:

2016-05-16T00:00:00+0000

Veja Também

  • DatePeriod::getEndDate() - Obtém a data final
  • DatePeriod::getDateInterval() - Obtém o intervalo


Funções de Data/Hora

Índice

  • checkdate — Valida uma data gregoriana
  • date_add — Sinônimo de DateTime::add
  • date_create_from_format — Sinônimo de DateTime::createFromFormat
  • date_create_immutable_from_format — Sinônimo de DateTimeImmutable::createFromFormat
  • date_create_immutable — Cria um novo objeto DateTimeImmutable
  • date_create — Cria um novo objeto DateTime
  • date_date_set — Sinônimo de DateTime::setDate
  • date_default_timezone_get — Retorna o fuso horário padrão usado por todas as funções de data e tempo em um script
  • date_default_timezone_set — Configura o fuso horário padrão utilizado por todas as funções de data e hora em um script
  • date_diff — Sinônimo de DateTime::diff
  • date_format — Sinônimo de DateTime::format
  • date_get_last_errors — Sinônimo de DateTimeImmutable::getLastErrors
  • date_interval_create_from_date_string — Sinônimo de DateInterval::createFromDateString
  • date_interval_format — Sinônimo de DateInterval::format
  • date_isodate_set — Sinônimo de DateTime::setISODate
  • date_modify — Sinônimo de DateTime::modify
  • date_offset_get — Sinônimo de DateTime::getOffset
  • date_parse_from_format — Retorna informações sobre uma data informada de acordo com um formato
  • date_parse — Retorna um array associativo com informações detalhadas da data/hora informada
  • date_sub — Sinônimo de DateTime::sub
  • date_sun_info — Retorna um array com informações sobre pôr/nascer do sol e o início/fim do dia
  • date_sunrise — Retorna a hora do nascer do sol para um dia e uma localicação informados
  • date_sunset — Retorna a hora do pôr do sol para um dia e uma localização informados.
  • date_time_set — Sinônimo de DateTime::setTime
  • date_timestamp_get — Sinônimo de DateTime::getTimestamp
  • date_timestamp_set — Sinônimo de DateTime::setTimestamp
  • date_timezone_get — Sinônimo de DateTime::getTimezone
  • date_timezone_set — Sinônimo de DateTime::setTimezone
  • date — Formatar um timestamp Unix
  • getdate — Recupera informações de data/hora
  • gettimeofday — Obtém o horário atual
  • gmdate — Formata uma data/hora GMT/CUT
  • gmmktime — Obtém um timestamp Unix para uma data GMT
  • gmstrftime — Formata uma data/hora GMT/UTC de acordo com as configurações de localidade
  • idate — Formata uma parte de uma hora/data local como um inteiro
  • localtime — Obtém o horário local
  • microtime — Retorna o timestamp Unix atual com microssegundos
  • mktime — Obtém um timestamp Unix de uma data
  • strftime — Formata uma hora/data de acordo com as configurações locais
  • strptime — Interpreta uma hora/data gerada pela função strftime
  • strtotime — Interpreta qualquer descrição textual de data/hora em inglês para timestamp Unix
  • time — Retorna o timestamp Unix atual
  • timezone_abbreviations_list — Sinônimo de DateTimeZone::listAbbreviations
  • timezone_identifiers_list — Sinônimo de DateTimeZone::listIdentifiers
  • timezone_location_get — Sinônimo de DateTimeZone::getLocation
  • timezone_name_from_abbr — Retorna um nome de fuso horário através da abreviatura e do deslocamento UTC
  • timezone_name_get — Sinônimo de DateTimeZone::getName
  • timezone_offset_get — Sinônimo de DateTimeZone::getOffset
  • timezone_open — Sinônimo de DateTimeZone::__construct
  • timezone_transitions_get — Sinônimo de DateTimeZone::getTransitions
  • timezone_version_get — Obtém a versão do banco de dados de fuso horário.


Valida uma data gregoriana

  • « Funções de Data/Hora
  • date_add »
  • PHP Manual
  • Funções de Data/Hora
  • Valida uma data gregoriana

checkdate

(PHP 4, PHP 5, PHP 7, PHP 8)

checkdate — Valida uma data gregoriana

Descrição

checkdate(int $month, int $day, int $year): bool

Verifica a validade da data formada pelos argumentos. Uma data é considerada válida se cada parâmetro é adequadamente definido.

Parâmetros

month

O mês entre 1 e 12.

day

O dia está dentro do número permitido de dias para o mês (month). Anos (year) bissextos são levados em consideração.

year

O ano está entre 1 e 32767, inclusive.

Valor Retornado

Retorna true se a data informada é valida; caso contrário retorna false.

Exemplos

Exemplo #1 Exemplo da checkdate()

<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Veja Também

  • mktime() - Obtém um timestamp Unix de uma data
  • strtotime() - Interpreta qualquer descrição textual de data/hora em inglês para timestamp Unix


Sinônimo de DateTime::add

  • « checkdate
  • date_create_from_format »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_add — Sinônimo de DateTime::add()

Descrição

Esta função é um apelido para: DateTime::add()


Sinônimo de DateTime::createFromFormat

  • « date_add
  • date_create_immutable_from_format »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_create_from_format — Sinônimo de DateTime::createFromFormat()

Descrição

Esta função é um apelido para: DateTime::createFromFormat()


Sinônimo de DateTimeImmutable::createFromFormat

  • « date_create_from_format
  • date_create_immutable »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

date_create_immutable_from_format — Sinônimo de DateTimeImmutable::createFromFormat()

Descrição

Esta função é um apelido para: DateTimeImmutable::createFromFormat()


Cria um novo objeto DateTimeImmutable

  • « date_create_immutable_from_format
  • date_create »
  • PHP Manual
  • Funções de Data/Hora
  • Cria um novo objeto DateTimeImmutable

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

date_create_immutable — Cria um novo objeto DateTimeImmutable

Descrição

date_create_immutable(string $datetime = "now", ?DateTimeZone $timezone = null): DateTimeImmutable|false

Esta é a versão procedural de DateTimeImmutable::__construct().

Diferentemente do construtor de DateTimeImmutable, irá retornar false em vez de uma exceção se a string datetime for inválida.

Parâmetros

Ver DateTimeImmutable::__construct.

Valor Retornado

Retorna uma nova instância de DateTimeImmutable ou false em caso de falha

Veja Também

  • DateTimeImmutable::createFromFormat() - Interpreta um string de data/hora de acordo com o formato especificado


Cria um novo objeto DateTime

  • « date_create_immutable
  • date_date_set »
  • PHP Manual
  • Funções de Data/Hora
  • Cria um novo objeto DateTime

date_create

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_create — Cria um novo objeto DateTime

Descrição

date_create(string $datetime = "now", ?DateTimeZone $timezone = null): DateTime|false

Esta é a versão procedural de DateTime::__construct().

Diferentemente do construtor de DateTime, irá retornar false em vez de uma exceção se a string datetime for inválida.

Parâmetros

Ver DateTimeImmutable::__construct.

Valor Retornado

Retorna uma nova instância de DateTime ou false em caso de falha

Veja Também

  • DateTimeImmutable::__construct() - Retorna um novo objeto DateTimeImmutable
  • DateTimeImmutable::createFromFormat() - Interpreta um string de data/hora de acordo com o formato especificado
  • DateTime::__construct() - Retorna um novo objeto DateTime


Sinônimo de DateTime::setDate

  • « date_create
  • date_default_timezone_get »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_date_set — Sinônimo de DateTime::setDate()

Descrição

Esta função é um apelido para: DateTime::setDate()


Retorna o fuso horário padrão usado por todas as funções de data e tempo em um script

  • « date_date_set
  • date_default_timezone_set »
  • PHP Manual
  • Funções de Data/Hora
  • Retorna o fuso horário padrão usado por todas as funções de data e tempo em um script

date_default_timezone_get

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

date_default_timezone_get — Retorna o fuso horário padrão usado por todas as funções de data e tempo em um script

Descrição

date_default_timezone_get(): string

Em ordem de preferência, essa função retorna o fuso horário padrão:

  • Lendo o fuso horário configurado pela função date_default_timezone_set() (se existir)

  • Lendo o valor da opção date.timezone do arquivo ini (se configurada)

Se nenhuma das opções acima obter êxito, a função date_default_timezone_get() retornará o fuso horário padrão UTC

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string.

Exemplos

Exemplo #1 Lendo o fuso horário padrão

<?php
date_default_timezone_set('Europe/London');

if (date_default_timezone_get()) {
echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />';
}

if (ini_get('date.timezone')) {
echo 'date.timezone: ' . ini_get('date.timezone');
}

?>

O exemplo acima produzirá algo semelhante a:

date_default_timezone_set: Europe/London
date.timezone: Europe/London

Exemplo #2 Lendo a abreviação de um fuso horário

<?php
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');
?>

O exemplo acima produzirá:

America/Los_Angeles => America/Los_Angeles => PST

Veja Também

  • date_default_timezone_set() - Configura o fuso horário padrão utilizado por todas as funções de data e hora em um script
  • Lista de Fusos Horários Suportados


Configura o fuso horário padrão utilizado por todas as funções de data e hora em um script

  • « date_default_timezone_get
  • date_diff »
  • PHP Manual
  • Funções de Data/Hora
  • Configura o fuso horário padrão utilizado por todas as funções de data e hora em um script

date_default_timezone_set

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

date_default_timezone_set — Configura o fuso horário padrão utilizado por todas as funções de data e hora em um script

Descrição

date_default_timezone_set(string $timezoneId): bool

date_default_timezone_set() configura o fuso horário padrão utilizado por todas as funções de data e hora.

Em vez de utilizar essa função para setar o fuso horário padrão no seu script, você pode também utilizar a configuração INI date.timezone para configurar o fuso horário padrão.

Parâmetros

timezoneId

O identificador do fuso horário, como UTC, Africa/Lagos, Asia/Hong_Kong, ou Europe/Lisbon. A lista de identificadores válidos está disponível em Lista de Fusos Horários Suportados.

Valor Retornado

A função retorna false se o timezoneId não for válido, ou true caso contrário.

Exemplos

Exemplo #1 Lendo o fuso horário padrão

<?php
date_default_timezone_set('America/Los_Angeles');

$script_tz = date_default_timezone_get();

if (strcmp($script_tz, ini_get('date.timezone'))){
echo 'Script timezone differs from ini-set timezone.';
} else {
echo 'Script timezone and ini-set timezone match.';
}
?>

Veja Também

  • date_default_timezone_get() - Retorna o fuso horário padrão usado por todas as funções de data e tempo em um script
  • Lista de Fusos Horários Suportados


Sinônimo de DateTime::diff

  • « date_default_timezone_set
  • date_format »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_diff — Sinônimo de DateTime::diff()

Descrição

Esta função é um apelido para: DateTime::diff()


Sinônimo de DateTime::format

  • « date_diff
  • date_get_last_errors »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::format

date_format

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_format — Sinônimo de DateTime::format()

Descrição

Esta função é um apelido para: DateTime::format()


Sinônimo de DateTimeImmutable::getLastErrors

  • « date_format
  • date_interval_create_from_date_string »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTimeImmutable::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_get_last_errors — Sinônimo de DateTimeImmutable::getLastErrors()

Descrição

Esta função é um apelido para: DateTimeImmutable::getLastErrors()


Sinônimo de DateInterval::createFromDateString

  • « date_get_last_errors
  • date_interval_format »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateInterval::createFromDateString

date_interval_create_from_date_string

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_interval_create_from_date_string — Sinônimo de DateInterval::createFromDateString()

Descrição

Esta função é um apelido para: DateInterval::createFromDateString()


Sinônimo de DateInterval::format

  • « date_interval_create_from_date_string
  • date_isodate_set »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateInterval::format

date_interval_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_interval_format — Sinônimo de DateInterval::format()

Descrição

Esta função é um apelido para: DateInterval::format()


Sinônimo de DateTime::setISODate

  • « date_interval_format
  • date_modify »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_isodate_set — Sinônimo de DateTime::setISODate()

Descrição

Esta função é um apelido para: DateTime::setISODate()


Sinônimo de DateTime::modify

  • « date_isodate_set
  • date_offset_get »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_modify — Sinônimo de DateTime::modify()

Descrição

Esta função é um apelido para: DateTime::modify()


Sinônimo de DateTime::getOffset

  • « date_modify
  • date_parse_from_format »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::getOffset

date_offset_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_offset_get — Sinônimo de DateTime::getOffset()

Descrição

Esta função é um apelido para: DateTime::getOffset()


Retorna informações sobre uma data informada de acordo com um formato

  • « date_offset_get
  • date_parse »
  • PHP Manual
  • Funções de Data/Hora
  • Retorna informações sobre uma data informada de acordo com um formato

date_parse_from_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_parse_from_format — Retorna informações sobre uma data informada de acordo com um formato

Descrição

date_parse_from_format(string $format, string $datetime): array

Retorna um array associativo com informação detalhada sobre a data/hora informada.

Parâmetros

format

Para documentação sobre como o parâmetro format é usado, favor se referir à documentação da função DateTimeImmutable::createFromFormat(). As mesmas regras se aplicam.

datetime

String que representa a data/hora.

Valor Retornado

Retorna um array associativo com informação detalhada da data/hora informada.

O array de retorno tem chaves para year, month, day, hour, minute, second, fraction, e is_localtime.

Se is_localtime estiver presente então zone_type indica o tipo do fuso horário. Para o tipo 1 (deslocamento UTC), os campos zone e is_dst são incluídos; para o tipo 2 (abreviação), os campos tz_abbr e is_dst são incluídos; e para tipo 3 (identificador de fuso), os campos tz_abbr e tz_id são incluídos.

O array inclui os campos warning_count e warnings. O primeiro indica quantos avisos ocorreram. As chaves dos elementos do array warnings indicam as posições na string datetime onde os avisos ocorreram, com o valor da string descrevendo o aviso em si. Um exemplo abaixo mostra tal aviso.

O array também contém os campos error_count e errors. O primeiro indica quantos erros foram encontrados. As chaves dos elementos do array errors indicam posição na string datetime onde os erros ocorreram, com o valor da string descrevendo o erro em si. Um exemplo abaixo mostra tal erro.

Aviso

O número de elementos do arrays warnings ou errors pode ser menor que warning_count ou error_count se eles ocorreram na mesma posição.

Erros/Exceções

Esta função dispara a exceção ValueError quando o parâmetro datetime contém bytes nulos.

Registro de Alterações

Versão | Descrição
8.0.21, 8.1.8, 8.2.0 | Agora dispara ValueError quando bytes nulos são passados por datetime, o que antes era silenciosamente ignorado.
7.2.0 | O elemento zone do array retornado agora representa segundos em vez de minutos, e seu sinal é invertido. Por exemplo, -120 agora é 7200.

Exemplos

Exemplo #1 Exemplo da função date_parse_from_format()

<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>

O exemplo acima produzirá:

Array
(
    [year] => 2009
    [month] => 1
    [day] => 6
    [hour] => 13
    [minute] => 0
    [second] => 0
    [fraction] =>
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 1
    [zone_type] => 1
    [zone] => 3600
    [is_dst] =>
)

Exemplo #2 Exemplo da função date_parse_from_format() com avisos

<?php
$date = "26 August 2022 22:30 pm";
$parsed = date_parse_from_format("j F Y G:i a", $date);

echo "Contagem de avisos: ", $parsed['warning_count'], "\n";
foreach ($parsed['warnings'] as $position => $message) {
echo "\tNa posição {$position}: {$message}\n";
}
?>

O exemplo acima produzirá:

Contagem de avisos: 1
Na posição 23: The parsed time was invalid

Exemplo #3 Exemplo da função date_parse_from_format() com erros

<?php
$date = "26 August 2022 CEST";
$parsed = date_parse_from_format("j F Y H:i", $date);

echo "Contagem de erros: ", $parsed['error_count'], "\n";
foreach ($parsed['errors'] as $position => $message) {
echo "\tNa posição {$position}: {$message}\n";
}
?>

O exemplo acima produzirá:

Contagem de erros: 3
Na posição 15: A two digit hour could not be found
Na posição 19: Data missing

Veja Também

  • DateTimeImmutable::createFromFormat() - Interpreta um string de data/hora de acordo com o formato especificado
  • checkdate() - Valida uma data gregoriana


Retorna um array associativo com informações detalhadas da data/hora informada

  • « date_parse_from_format
  • date_sub »
  • PHP Manual
  • Funções de Data/Hora
  • Retorna um array associativo com informações detalhadas da data/hora informada

date_parse

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_parse — Retorna um array associativo com informações detalhadas da data/hora informada

Descrição

date_parse(string $datetime): array

A função date_parse() analisa a string datetime informada conforme as mesmas regras de strtotime() e DateTimeImmutable::__construct(). Ao invés de retornar um timestamp Unix (com strtotime()) ou objeto DateTimeImmutable (com a função DateTimeImmutable::__construct()), ela retorna um array associativo com a informação que ela poderia detectar na string datetime fornecida.

Se nenhuma informação sobre um certo grupo de elementos puder ser encontrada, estes elementos do array serão configurados para false or omitidos. Se necessário para construção de um timestamp ou objeto DateTimeImmutable a partir da mesma string datetime, mais campos podem ser configurados para um valor não-false. Veja os exemplos para casos onde isso acontece..

Parâmetros

datetime

Data/hora no formato aceito pela função DateTimeImmutable::__construct().

Valor Retornado

Retorna um array com informações da data/hora analisada.

O array de retorno tem chaves para year, month, day, hour, minute, second, fraction, e is_localtime.

Se is_localtime estiver presente então zone_type indica o tipo do fuso horário. Para o tipo 1 (deslocamento UTC), os campos zone e is_dst são incluídos; para o tipo 2 (abreviação), os campos tz_abbr e is_dst são incluídos; e para tipo 3 (identificador de fuso), os campos tz_abbr e tz_id são incluídos.

Se elementos de tempo relativo estiverem presentes na string datetime como +3 days, então o array retornado incluirá um array aninhado com a chave relative. Este array então conterá as chaves year, month, day, hour, minute, second, e se necessário weekday e weekdays, dependendo da string que foi passada.

O array inclui os campos warning_count e warnings. O primeiro indica quantos avisos ocorreram. As chaves dos elementos do array warnings indicam as posições na string datetime onde os avisos ocorreram, com o valor da string descrevendo o aviso em si.

O array também contém os campos error_count e errors. O primeiro indica quantos erros foram encontrados. As chaves dos elementos do array errors indicam posição na string datetime onde os erros ocorreram, com o valor da string descrevendo o erro em si.

Aviso

O número de elementos do arrays warnings ou errors pode ser menor que warning_count ou error_count se eles ocorreram na mesma posição.

Erros/Exceções

Se o formato da data/hora contiver erro, o elemento 'errors' conterá as mensagens de erro.

Registro de Alterações

Versão | Descrição
7.2.0 | O elemento zone do array de retorno agora representa segundos no lugar de minutos, e seu sinal é invertido. Por exemplo, -120 é agora 7200.

Exemplos

Exemplo #1 Um exemplo da função date_parse()com um string datetime compreensivo

<?php
var_dump(date_parse("2006-12-12 10:00:00.5"));
?>

O exemplo acima produzirá:

array(12) {
  ["year"]=>
  int(2006)
  ["month"]=>
  int(12)
  ["day"]=>
  int(12)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(0)
  ["second"]=>
  int(0)
  ["fraction"]=>
  float(0.5)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
}

Os elementos de fuso horário só aparecem se eles forem incluídos no parâmetro datetime. Neste caso sempre haverá um elemento zone_type e alguns mais dependendo do seu valor.

Exemplo #2 Exemplo da função date_parse() com informação de abreviação de fuso horário

<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 BST"));
?>

O exemplo acima produzirá:

array(16) {
  ["year"]=>
  int(2022)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(28)
  ["second"]=>
  int(17)
  ["fraction"]=>
  float(0)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(true)
  ["zone_type"]=>
  int(2)
  ["zone"]=>
  int(0)
  ["is_dst"]=>
  bool(true)
  ["tz_abbr"]=>
  string(3) "BST"
}

Exemplo #3 Exemplo da função date_parse() com informação de identificador de fuso horário

<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 Europe/London"));
?>

O exemplo acima produzirá:

array(14) {
  ["year"]=>
  int(2022)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(28)
  ["second"]=>
  int(17)
  ["fraction"]=>
  float(0)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(true)
  ["zone_type"]=>
  int(3)
  ["tz_id"]=>
  string(13) "Europe/London"
}

Se uma string mais enxuta de datetime for analisada, menos informação estará disponível. Neste exemplo, todas as partes de horário são retornadas como false.

Exemplo #4 Função date_parse() com um string minimizado

<?php
var_dump(date_parse("June 2nd, 2022"));
?>

O exemplo acima produzirá:

array(12) {
  ["year"]=>
  int(2022)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  bool(false)
  ["minute"]=>
  bool(false)
  ["second"]=>
  bool(false)
  ["fraction"]=>
  bool(false)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
}

Formatos relativos não influenciam valores interpretados de formatos absolutos, mas são analisados no elemento "relative".

Exemplo #5 date_parse() com formatos relativos

<?php
var_dump(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
?>

O exemplo acima produzirá:

array(13) {
  ["year"]=>
  int(2006)
  ["month"]=>
  int(12)
  ["day"]=>
  int(12)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(0)
  ["second"]=>
  int(0)
  ["fraction"]=>
  float(0.5)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
  ["relative"]=>
  array(6) {
    ["year"]=>
    int(0)
    ["month"]=>
    int(0)
    ["day"]=>
    int(7)
    ["hour"]=>
    int(1)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
  }
}

Algumas estrofes, como Thursday irão configurar a parte de horário da string para 0. Se Thursday for passado para a função DateTimeImmutable::__construct(), ela também teria resultado em hora, minuto, segundo e fração configurados para 0. No exemplo abaixo, o elemento do ano também é configurado como false.

Exemplo #6 Função date_parse() com efeitos colaterais

<?php
var_dump(date_parse("Thursday, June 2nd"));
?>

O exemplo acima produzirá:

array(13) {
  ["year"]=>
  bool(false)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  int(0)
  ["minute"]=>
  int(0)
  ["second"]=>
  int(0)
  ["fraction"]=>
  float(0)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
  ["relative"]=>
  array(7) {
    ["year"]=>
    int(0)
    ["month"]=>
    int(0)
    ["day"]=>
    int(0)
    ["hour"]=>
    int(0)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
    ["weekday"]=>
    int(4)
  }
}

Veja Também

  • date_parse_from_format() - Retorna informações sobre uma data informada de acordo com um formato para analisar um datetime com um formato específico
  • checkdate() - Valida uma data gregoriana para validação da data do calendário gregoriano
  • getdate() - Recupera informações de data/hora


Sinônimo de DateTime::sub

  • « date_parse
  • date_sun_info »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_sub — Sinônimo de DateTime::sub()

Descrição

Esta função é um apelido para: DateTime::sub()

Veja Também

  • DateTimeImmutable::sub() - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos
  • DateTime::sub() - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime


Retorna um array com informações sobre pôr/nascer do sol e o início/fim do dia

  • « date_sub
  • date_sunrise »
  • PHP Manual
  • Funções de Data/Hora
  • Retorna um array com informações sobre pôr/nascer do sol e o início/fim do dia

date_sun_info

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

date_sun_info — Retorna um array com informações sobre pôr/nascer do sol e o início/fim do dia

Descrição

date_sun_info(int $timestamp, float $latitude, float $longitude): array

Parâmetros

timestamp

Timestamp Unix.

latitude

Latitude em graus.

longitude

Longitude em graus.

Valor Retornado

Retorna um array em caso de sucesso ou false em caso de falha. A estrutura do array é detalhada na lista abaixo:

sunrise
O timestamp do nascer do sol (ângulo em relação ao zênite = 90°35').
sunset
O timestamp do pôr do sol (ângulo em relação ao zênite = 90°35').
transit
O timestamp quando o sol está em seu zênite, ou seja, atingiu seu ponto mais alto.
civil_twilight_begin
O início do amanhecer civil (ângulo em relação ao zênite = 96°). Termina no sunrise.
civil_twilight_end
O final do crepúsculo civil (ângulo em relação ao zênite = 96°). Começa no sunset.
nautical_twilight_begin
O início do amanhecer náutico (ângulo em relação ao zênite = 102°). Termina no civil_twilight_begin.
nautical_twilight_end
O final do crepúsculo náutico (ângulo em relação ao zênite = 102°). Começa no civil_twilight_end.
astronomical_twilight_begin
O início do amanhecer astronômico (ângulo em relação ao zênite = 108°). Termina no nautical_twilight_begin.
astronomical_twilight_end
O final do crepúsculo astronômico (ângulo em relação ao zênite = 108°). Começa no nautical_twilight_end.

Os valores dos elementos do array podem ser timestamps UNIX, false se o sol estiver abaixo do respectivo ângulo durante todo o dia, or true se o sol estiver acima do respectivo ângulo durante todo o dia.

Registro de Alterações

Versão | Descrição
7.2.0 | Os cálculos foram corrigidos com base na meia-noite local em vez do meio-dia local, o que muda os resultados um pouco.

Exemplos

Exemplo #1 Um exemplo de date_sun_info()

<?php
$sun_info = date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333);
foreach ($sun_info as $key => $val) {
echo "$key: " . date("H:i:s", $val) . "\n";
}
?>

O exemplo acima produzirá:

sunrise: 05:52:11
sunset: 15:41:21
transit: 10:46:46
civil_twilight_begin: 05:24:08
civil_twilight_end: 16:09:24
nautical_twilight_begin: 04:52:25
nautical_twilight_end: 16:41:06
astronomical_twilight_begin: 04:21:32
astronomical_twilight_end: 17:12:00

Exemplo #2 Noite polar, com algum processamento

<?php
$tz = new \DateTimeZone('America/Anchorage');

$si = date_sun_info(strtotime("2022-12-21"), 70.21, -148.51);
foreach ($si as $key => $value) {
echo
match ($value) {
true => 'always',
false => 'never',
default => date_create("@{$value}")->setTimeZone($tz)->format( 'H:i:s T' ),
},
": {$key}",
"\n";
}
?>

O exemplo acima produzirá:

never: sunrise
never: sunset
12:52:18 AKST: transit
10:53:19 AKST: civil_twilight_begin
14:51:17 AKST: civil_twilight_end
09:01:47 AKST: nautical_twilight_begin
16:42:48 AKST: nautical_twilight_end
07:40:47 AKST: astronomical_twilight_begin
18:03:49 AKST: astronomical_twilight_end

Exemplo #3 Sol da meia-noite (Tromsø, Norway)

<?php
$si = date_sun_info(strtotime("2022-06-26"), 69.68, 18.94);
print_r($si);
?>

O exemplo acima produzirá:

Array
(
    [sunrise] => 1
    [sunset] => 1
    [transit] => 1656240426
    [civil_twilight_begin] => 1
    [civil_twilight_end] => 1
    [nautical_twilight_begin] => 1
    [nautical_twilight_end] => 1
    [astronomical_twilight_begin] => 1
    [astronomical_twilight_end] => 1
)

Exemplo #4 Calculando a duração do dia (Kiev)

<?php
$si = date_sun_info(strtotime('2022-08-26'), 50.45, 30.52);
$diff = $si['sunset'] - $si['sunrise'];
echo "Duração do dia: ",
floor($diff / 3600), "h ",
floor(($diff % 3600) / 60), "s\n";
?>

O exemplo acima produzirá:

Duração do dia: 13h 56s


Retorna a hora do nascer do sol para um dia e uma localicação informados

  • « date_sun_info
  • date_sunset »
  • PHP Manual
  • Funções de Data/Hora
  • Retorna a hora do nascer do sol para um dia e uma localicação informados

date_sunrise

(PHP 5, PHP 7, PHP 8)

date_sunrise — Retorna a hora do nascer do sol para um dia e uma localicação informados

Aviso

Esta função foi DESCONTINUADA desde o PHP 8.1.0. Confiar nesta função é altamente desencorajado. Use date_sun_info() no lugar.

Descrição

date_sunrise(
int $timestamp,
int $returnFormat = SUNFUNCS_RET_STRING,
?float $latitude = null,
?float $longitude = null,
?float $zenith = null,
?float $utcOffset = null
): string|int|float|false

A função date_sunrise() retorna a hora do nascer do sol para um dia (especificado como um timestamp) e uma localização informados.

Parâmetros

timestamp

O timestamp do nascer do sol do dia desejado.

returnFormat

Constantes de returnFormat
Constante | Descrição | Exemplo
SUNFUNCS_RET_STRING | Retorna o resultado como uma string | 16:46
SUNFUNCS_RET_DOUBLE | Retorna o resultado como um float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | Retorna o resultado como um int (timestamp) | 1095034606

latitude

Padronizado para o norte, passe um valor negativo para o sul. Veja também: date.default_latitude

longitude

Padronizado para o leste, passe um valor negativado para o oeste. Veja também: date.default_longitude

zenith

zenith é o ângulo entre o centro do sol e uma linha perpendicular à superfície da Terra. É padronizado para date.sunrise_zenith

Ângulos comuns em relação ao zenith
Ângulo | Descrição
90°50' | Nascer do sol: o ponto onde o sol se torna visível.
96° | Amanhecer civil: convencionado para significar o início do amanhecer.
102° | Amanhecer náutico: o ponto no qual o horizonte começa a ficar visível no mar.
108° | Amanhecer astronômico: o ponto no qual o sol começa a se tornar fonte de iluminação.

utcOffset

Especificado em horas. O parâmetro utcOffset é ignorado se returnFormat for SUNFUNCS_RET_TIMESTAMP.

Valor Retornado

Retorna o horário do nascer do sol no returnFormat especificado em caso de sucesso ou false em caso de falha. Um potencial motivo para falha é quando o sol não nasce, o que acontece dentro dos círculos polares durante parte do ano.

Erros/Exceções

Toda chamada a uma função de data/hora gerará um E_WARNING se o fuso horário não for válido. Veja também date_default_timezone_set()

Registro de Alterações

Versão | Descrição
8.1.0 | Esta função foi descontinuada em favor de date_sun_info().
8.0.0 | latitude, longitude, zenith e utcOffset agora podem ser nulos.

Exemplos

Exemplo #1 Exemplo da função date_sunrise()

<?php

/* Calcula o nascer do sol em Lisboa, Portugal
Latitude: 38.4 norte
Longitude: 9 oeste
Zênite ~= 90
deslocamento UTC: +01:00
*/

echo date("D M d Y"). ', horário do nascer do sol : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

O exemplo acima produzirá algo semelhante a:

Mon Dec 20 2004, horário do nascer do sol : 08:54

Exemplo #2 Sem nascer do sol

<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunrise($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>

O exemplo acima produzirá:

bool(false)

Veja Também

  • date_sun_info() - Retorna um array com informações sobre pôr/nascer do sol e o início/fim do dia


Retorna a hora do pôr do sol para um dia e uma localização informados.

  • « date_sunrise
  • date_time_set »
  • PHP Manual
  • Funções de Data/Hora
  • Retorna a hora do pôr do sol para um dia e uma localização informados.

date_sunset

(PHP 5, PHP 7, PHP 8)

date_sunset — Retorna a hora do pôr do sol para um dia e uma localização informados.

Aviso

Esta função foi DESCONTINUADA desde o PHP 8.1.0. Confiar nesta função é altamente desencorajado. Use date_sun_info() no lugar.

Descrição

date_sunset(
int $timestamp,
int $returnFormat = SUNFUNCS_RET_STRING,
?float $latitude = null,
?float $longitude = null,
?float $zenith = null,
?float $utcOffset = null
): string|int|float|false

A função date_sunset() retorna o horário do pôr do sol para um dia (especificado como um timestamp) e uma localização informados.

Parâmetros

timestamp

O timestamp do dia do pôr do sol desejado.

returnFormat

Constantes de returnFormat
Constante | Descrição | Exemplo
SUNFUNCS_RET_STRING | Retorna o resultado como uma string | 16:46
SUNFUNCS_RET_DOUBLE | Retorna o resultado como um float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | Retorna o resultado como um int (timestamp) | 1095034606

latitude

Padronizado para o leste, passe um valor negativado para o oeste. Veja também: date.default_latitude

longitude

Padronizado para o leste, passe um valor negativado para o oeste. Veja também: date.default_longitude

zenith

zenith é o ângulo entre o centro do sol e uma linha perpendicular à superfície da Terra. É padronizado para date.sunset_zenith

Ângulos comuns em relação ao zenith
Ângulo | Descrição
90°50' | Pôr do sol: o ponto onde o sol se torna invisível.
96° | Crepúsculo civil: convencionado para significar o final do crepúsculo.
102° | Crepúsculo náutico: o ponto no qual o horizonte termina de ficar visível no mar.
108° | Crepúsculo astronômico: o ponto no qual o sol termina se tornar fonte de iluminação.

utcOffset

Especificado em horas. O parâmetro utcOffset é ignorado se returnFormat for SUNFUNCS_RET_TIMESTAMP.

Valor Retornado

Retorna o horário do pôr do sol no returnFormat especificado em caso de sucesso ou false em caso de falha. Um potencial motivo para falha é quando o sol não se põe, o que acontece dentro dos círculos polares durante parte do ano.

Erros/Exceções

Toda chamada a uma função de data/hora gerará um E_WARNING se o fuso horário não for válido. Veja também date_default_timezone_set()

Registro de Alterações

Versão | Descrição
8.1.0 | Esta função foi descontinuada em favor de date_sun_info().
8.0.0 | latitude, longitude, zenith e utcOffset agora podem ser nulos.

Exemplos

Exemplo #1 Exemplo da função date_sunset()

<?php

/* Calcula o horário do pôr do sol para Lisboa, Portugal
Latitude: 38.4 norte
Longitude: 9 oeste
Zênite ~= 90
deslocamento UTC: +01:00 GMT
*/

echo date("D M d Y"). ', horário do pôr do sol : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

O exemplo acima produzirá algo semelhante a:

Mon Dec 20 2004, horário do pôr do sol : 18:13

Exemplo #2 Sem pôr do sol

<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunset($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>

O exemplo acima produzirá:

bool(false)

Veja Também

  • date_sun_info() - Retorna um array com informações sobre pôr/nascer do sol e o início/fim do dia


Sinônimo de DateTime::setTime

  • « date_sunset
  • date_timestamp_get »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_time_set — Sinônimo de DateTime::setTime()

Descrição

Esta função é um apelido para: DateTime::setTime()


Sinônimo de DateTime::getTimestamp

  • « date_time_set
  • date_timestamp_set »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_timestamp_get — Sinônimo de DateTime::getTimestamp()

Descrição

Esta função é um apelido para: DateTime::getTimestamp()


Sinônimo de DateTime::setTimestamp

  • « date_timestamp_get
  • date_timezone_get »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_timestamp_set — Sinônimo de DateTime::setTimestamp()

Descrição

Esta função é um apelido para: DateTime::setTimestamp()


Sinônimo de DateTime::getTimezone

  • « date_timestamp_set
  • date_timezone_set »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::getTimezone

date_timezone_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_timezone_get — Sinônimo de DateTime::getTimezone()

Descrição

Esta função é um apelido para: DateTime::getTimezone()


Sinônimo de DateTime::setTimezone

  • « date_timezone_get
  • date »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_timezone_set — Sinônimo de DateTime::setTimezone()

Descrição

Esta função é um apelido para: DateTime::setTimezone()


Formatar um timestamp Unix

  • « date_timezone_set
  • getdate »
  • PHP Manual
  • Funções de Data/Hora
  • Formatar um timestamp Unix

date

(PHP 4, PHP 5, PHP 7, PHP 8)

date — Formatar um timestamp Unix

Descrição

date(string $format, ?int $timestamp = null): string

Retorna uma string de acordo com a string de formato informada usando o inteiro timestamp (timestamp Unix) informado, ou a hora atual local se nenhum timestamp for informado. Em outras palavras, o parâmetro timestamp é opcional e padronizado para o valor de time().

Aviso

Timestamps Unix não lidam com fusos horários. Use a classe DateTimeImmutable e seu método de formatação DateTimeInterface::format() para formatar informações de data/hora com um fuso horário anexado.

Parâmetros

format

Formato aceito pelo DateTimeInterface::format().

Nota: date() irá sempre gerar 000000 para os microssegundos já que ele usa um parâmetro int, enquanto que DateTime::format() suporta microssegundos se DateTime foi criado com microssegundos.

timestamp

O parâmetro opcional timestamp é um int de timestamp Unix cujo padrão é a hora local atual se timestamp não for informado ou for null. Em outras palavras, o padrão é o valor de time().

Valor Retornado

Retorna uma string formatada de data.

Erros/Exceções

Toda chamada a uma função de data/hora gerará um E_WARNING se o fuso horário não for válido. Veja também date_default_timezone_set()

Registro de Alterações

Versão | Descrição
8.0.0 | timestamp agora pode ser nulo.

Exemplos

Exemplo #1 Exemplos da função date()

<?php
// Modifica o fuso horário a ser utilizado.
date_default_timezone_set('UTC');

// Exibe algo coisa como: Monday
echo date("l");

// Exibe algo como: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Exibe: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

/* Utiliza as constantes do parâmetro de formato */
// Exibe algo como: Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);

// Exibe algo como: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>

Para evitar que um caractere reconhecido na string de formatação seja expandido, prefixe-o com uma barra invertida. Se o caractere com a barra invertida já for uma sequência especial, você pode precisa também prefixar com a barra invertida.

Exemplo #2 Caracteres de escape em date()

<?php
// Exibe algo como: Wednesday the 15th
echo date("l \\t\h\e jS");
?>

É possível utilizar as funções date() e mktime() juntas para encontrar datas no futuro ou no passado.

Exemplo #3 Exemplo da date() e mktime()

<?php
$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);
?>

Nota:

Isso pode ser mais confiável do que simplesmente adicionar ou subtrair o número de segundos em um dia ou mês para um timestamp, devido o horário de verão.

Alguns exemplos de formatação de date(). Note que você deve escapar qualquer outro caractere, pois qualquer um que possua um significado especial produzirá resultados indesejáveis, e outros caracteres podem assumir significado em futuras versões do PHP. Quando usar escape, certifique-se de usar aspas simples para evitar que caracteres como \n virem novas linhas.

Exemplo #4 Formatação com a função date()

<?php
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
?>

Para formatar datas em outros idiomas, IntlDateFormatter::format() pode ser utilizada em vez de date().

Notas

Nota:

Para gerar um timestamp de uma string da representação da data, pode-se utilizar as funções strtotime(). Adicionalmente, alguns banco de dados tem funções para converter os formatos de data para timestamps (como a função » UNIX_TIMESTAMP do MySQL).

Dica

O timestamp do início da requisição está disponível na variável $_SERVER['REQUEST_TIME'].

Veja Também

  • DateTimeImmutable::__construct() - Retorna um novo objeto DateTimeImmutable
  • DateTimeInterface::format() - Retorna a data formatada de acordo com um formato informado
  • gmdate() - Formata uma data/hora GMT/CUT
  • idate() - Formata uma parte de uma hora/data local como um inteiro
  • getdate() - Recupera informações de data/hora
  • getlastmod() - Obtém o horário da última modificação na página
  • mktime() - Obtém um timestamp Unix de uma data
  • IntlDateFormatter::format() - Formata data/horário como uma string
  • time() - Retorna o timestamp Unix atual
  • Constantes Predefinidas da Classe DateTime


Recupera informações de data/hora

  • « date
  • gettimeofday »
  • PHP Manual
  • Funções de Data/Hora
  • Recupera informações de data/hora

getdate

(PHP 4, PHP 5, PHP 7, PHP 8)

getdate — Recupera informações de data/hora

Descrição

getdate(?int $timestamp = null): array

Retorna um array associativo contendo a informação da data do timestamp, ou o horário atual local se timestamp for null ou omitido.

Parâmetros

timestamp

O parâmetro opcional timestamp é um int de timestamp Unix cujo padrão é a hora local atual se timestamp não for informado ou for null. Em outras palavras, o padrão é o valor de time().

Valor Retornado

Retorna um array associativo de informação sobre o timestamp. Os elementos do array associativo são os seguintes:

Elementos chave de retorno do array associativo
Chave | Descrição | Exemplo dos valores retornados
"seconds" | Representação numérica dos segundos | 0 a 59
"minutes" | Representação numérica dos minutos | 0 a 59
"hours" | Representação numérica das horas | 0 a 23
"mday" | Representação numérica do dia do mês | 1 a 31
"wday" | Representação numérica do dia da semana | 0 (para Sunday) a 6 (para Saturday)
"mon" | Representação numérica de um mês | 1 a 12
"year" | Representação numérica completa do ano, 4 dígitos | Exemplos: 1999 ou 2003
"yday" | Representação numérica do dia do ano | 0 a 365
"weekday" | Representação textual completa do dia da semana | Sunday a Saturday
"month" | Representação textual completa de um mês, tal como January ou March | January a December
0 | Segundos desde a época UNIX, similar ao valor retornados pela função time() e utilizado pela função date(). | Dependente do sistema, tipicamente -2147483648 à 2147483647.

Registro de Alterações

Versão | Descrição
8.0.0 | timestamp agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo da função getdate()

<?php
$today = getdate();
print_r($today);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [seconds] => 40
    [minutes] => 58
    [hours]   => 21
    [mday]    => 17
    [wday]    => 2
    [mon]     => 6
    [year]    => 2003
    [yday]    => 167
    [weekday] => Tuesday
    [month]   => June
    [0]       => 1055901520
)

Veja Também

  • date() - Formatar um timestamp Unix
  • idate() - Formata uma parte de uma hora/data local como um inteiro
  • localtime() - Obtém o horário local
  • time() - Retorna o timestamp Unix atual
  • setlocale() - Set locale information


Obtém o horário atual

  • « getdate
  • gmdate »
  • PHP Manual
  • Funções de Data/Hora
  • Obtém o horário atual

gettimeofday

(PHP 4, PHP 5, PHP 7, PHP 8)

gettimeofday — Obtém o horário atual

Descrição

gettimeofday(bool $as_float = false): array|float

Esta é uma interface para gettimeofday(2). Retorna um array contendo os dados retornando a chamada ao sistema.

Parâmetros

as_float

Quando definido como true, um float, ao invés de array, é retornado.

Valor Retornado

Por padrão, um array é retornado. Se o parâmetro as_float é definido, então um float é retornado.

Array keys:

  • "sec" - segundos desde a época Unix
  • "usec" - microsegundos
  • "minuteswest" - minutos a oeste de Greenwich
  • "dsttime" - tipo de correção dst

Exemplos

Exemplo #1 Exemplo da função gettimeofday()

<?php
print_r(gettimeofday());

echo gettimeofday(true);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [sec] => 1073504408
    [usec] => 238215
    [minuteswest] => 0
    [dsttime] => 1
)

1073504408.23910


Formata uma data/hora GMT/CUT

  • « gettimeofday
  • gmmktime »
  • PHP Manual
  • Funções de Data/Hora
  • Formata uma data/hora GMT/CUT

gmdate

(PHP 4, PHP 5, PHP 7, PHP 8)

gmdate — Formata uma data/hora GMT/CUT

Descrição

gmdate(string $format, ?int $timestamp = null): string

Idêntica à função date(), exceto que a hora retornada será baseada no Horário de Greenwich (GMT).

Parâmetros

format

O formato da saída da string da data. Veja as opções de formatação para a função date().

timestamp

O parâmetro opcional timestamp é um int de timestamp Unix cujo padrão é a hora local atual se timestamp não for informado ou for null. Em outras palavras, o padrão é o valor de time().

Valor Retornado

Retorna uma string da data formatada.

Registro de Alterações

Versão | Descrição
8.0.0 | timestamp agora é anulável.

Exemplos

Exemplo #1 Exemplo da gmdate()

Quando executado na Finlândia (GMT +0200), a primeira linha abaixo imprime "Jan 01 1998 00:00:00", enquando a segunda imprime "Dec 31 1997 22:00:00".

<?php
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));
?>

Veja Também

  • DateTimeImmutable::__construct() - Retorna um novo objeto DateTimeImmutable
  • DateTimeInterface::format() - Retorna a data formatada de acordo com um formato informado
  • date() - Formatar um timestamp Unix
  • mktime() - Obtém um timestamp Unix de uma data
  • gmmktime() - Obtém um timestamp Unix para uma data GMT
  • IntlDateFormatter::format() - Formata data/horário como uma string


Obtém um timestamp Unix para uma data GMT

  • « gmdate
  • gmstrftime »
  • PHP Manual
  • Funções de Data/Hora
  • Obtém um timestamp Unix para uma data GMT

gmmktime

(PHP 4, PHP 5, PHP 7, PHP 8)

gmmktime — Obtém um timestamp Unix para uma data GMT

Descrição

gmmktime(
int $hour,
?int $minute = null,
?int $second = null,
?int $month = null,
?int $day = null,
?int $year = null
): int|false

Idêntico ao mktime() exceto que os parâmetros representam uma data GMT. A função gmmktime() usa internamente a função mktime(), significando que somente horários válidos derivados de horários locais podem ser utilizados.

Como em mktime(), argumentos opcionais podem ser omitidos da direita para esquerda, com todos os argumentos omitidos sendo definidos para o valor GMT correspondente.

Chamar gmmktime() sem nenhum argumento não é suportado, e vai resultar em um ArgumentCountError. time() pode ser usado para obter o horário atual.

Parâmetros

hour

O número de horas relativas ao início do dia determinadas pelos parâmetros month, day and year. Valores negativos são referenciados à horas antes da meia noite do dia em questão. Valores maiores que 23 referenciam horas correspondentes ao(s) próximo(s) dia(s).

minute

O número de minutos relativos ao início da hour. Valores negativos referenciam minutos da hora anterior. Valores maiores que 23 referenciam os minutos correspondentes a(s) próxima(s) horas(s).

second

O número de segundos relativos ao início do minute. Valores negativos referenciam segundos do minuto anterior. Valores maiores que 23 referenciam os segundos correspondentes ao(s) próximo(s) minuto(s).

month

O número do mês relativo ao fim do anterior. Valores de 1 a 12 referenciam o calendário normal de meses do ano em questão. Valores menores que 1 (valores negativos, incluso) referenciam meses do ano anterior em ordem reversa, então 0 é Dezembro, -1 Novembro, e etc. Valores maiores que 12 referenciam meses correspondentes ao(s) próximo(s) ano(s).

day

O número do dia relativo ao final do mês anterior. Valores de 1 a 28, 29, 30 e 31 (dependendo do mês) corresponde a dias normais no mês. Valores menores que 1 (valores negativos, incluso) corresponde a dias no mês anterior, então 0 é o último dia do mês anterior, -1 é o dia anterior a este, e etc. Valores maiores que o número de dias do mês, referenciam dias correspondentes ao(s) próximo(s) mês(es).

year

O ano

Valor Retornado

Retorna um int timestamp Unix em caso de sucesso, ou false se o timestamp não couber em um número inteiro do PHP.

Registro de Alterações

Versão | Descrição
8.0.0 | hour não é mais opcional. Se você precisar de um timestamp Unix, use time().
8.0.0 | minute, second, month, day e year agora podem ser nulos.

Exemplos

Exemplo #1 A função gmmktime() no Windows

<?php
// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", gmmktime(0, 0, 0, 7, 1, 2000));
?>

Veja Também

  • A classe DateTimeImmutable
  • mktime() - Obtém um timestamp Unix de uma data
  • date() - Formatar um timestamp Unix
  • time() - Retorna o timestamp Unix atual


Formata uma data/hora GMT/UTC de acordo com as configurações de localidade

  • « gmmktime
  • idate »
  • PHP Manual
  • Funções de Data/Hora
  • Formata uma data/hora GMT/UTC de acordo com as configurações de localidade

gmstrftime

(PHP 4, PHP 5, PHP 7, PHP 8)

gmstrftime — Formata uma data/hora GMT/UTC de acordo com as configurações de localidade

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.1.0. O uso desta função é fortemente desencorajado.

Alternativas a esta função incluem:

  • gmdate()
  • IntlDateFormatter::format()

Descrição

gmstrftime(string $format, ?int $timestamp = null): string|false

Possui o mesmo comportamento que a função strftime() exceto que o tempo retornado será no Horário de Greenwich (GMT). Por exemplo, quando executada no fuso horário EST (GMT -0500), a primeira linha abaixo imprime "Dec 31 1998 20:00:00", enquanto a segunda linha imprime "Jan 01 1999 01:00:00".

Aviso

Esta função depende das informações de localidade do sistema operacional, que podem ser inconsistentes ou não disponíveis. Ao invés disso, use o método IntlDateFormatter::format().

Parâmetros

format

Veja a descrição em strftime().

timestamp

O parâmetro opcional timestamp é um int de timestamp Unix cujo padrão é a hora local atual se timestamp não for informado ou for null. Em outras palavras, o padrão é o valor de time().

Valor Retornado

Retorna uma string formatada de acordo com a string de formatação, usando o timestamp informado, ou o horário local se nenhum timestamp é informado. Nomes de meses, dias da semana e outras strings que dependem do idioma respeitam a configuração de localidade atual definido com a função setlocale(). Em caso de falha, é retornado false.

Registro de Alterações

Versão | Descrição
8.0.0 | timestamp agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo da função gmstrftime()

<?php
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";
?>

Veja Também

  • IntlDateFormatter::format() - Formata data/horário como uma string
  • DateTimeInterface::format() - Retorna a data formatada de acordo com um formato informado
  • strftime() - Formata uma hora/data de acordo com as configurações locais


Formata uma parte de uma hora/data local como um inteiro

  • « gmstrftime
  • localtime »
  • PHP Manual
  • Funções de Data/Hora
  • Formata uma parte de uma hora/data local como um inteiro

idate

(PHP 5, PHP 7, PHP 8)

idate — Formata uma parte de uma hora/data local como um inteiro

Descrição

idate(string $format, ?int $timestamp = null): int|false

Retorna um número formatado de acordo com um formato informado utilizando o inteiro timestamp, ou o horário local atual se nenhum timestamp foi informado. Em outras palavras, timestamp é opcional e tem como padrão o valor da função time().

Ao contrário da função date(), a idate(), aceita apenas um caractere no parâmetro format.

Parâmetros

format

Os caracteres a seguir são reconhecidos como válidos no parâmetro format
Caractere format | Descrição
B | Swatch Beat/Horário da Internet
d | Dia do mês
h | Hora (no formato de 12 horas)
H | Hora (no formato de 24 horas)
i | Minutos
I (i maiúsculo) | retorna 1 se o horário de verão está ativo, 0, caso contrário
L (l maiúsculo) | retorna 1 para anos bissextos, 0, caso contrário
m | Número do mês
N | Dia da semana, baseado na ISO-8601 (1 para segunda-feira até7 para domingo)
o | ISO-8601 year (4 digits)
s | Segundos
t | Dias do mês atual
U | Segundos desde a época Unix - January 1 1970 00:00:00 UTC - isso é o mesmo que a função time()
w | Dia da semana (0 para domingo)
W | Semana do ano, baseado na ISO-8601, com a semana começando na segunda-feira
y | Ano (1 ou 2 dígitos - veja a nota abaixo)
Y | Ano (4 dígitos)
z | Dia do ano
Z | Deslocamento do fuso horário em segundos

timestamp

O parâmetro opcional timestamp é um int de timestamp Unix cujo padrão é a hora local atual se timestamp não for informado ou for null. Em outras palavras, o padrão é o valor de time().

Valor Retornado

Retorna um int em caso de sucesso, ou false em caso de falha.

Como a função idate() sempre retorna um int e como ela não começa com um "0", idate() pode retornar menos dígitos do que se espera. Veja o exemplo abaixo.

Erros/Exceções

Toda chamada a uma função de data/hora gerará um E_WARNING se o fuso horário não for válido. Veja também date_default_timezone_set()

Registro de Alterações

Versão | Descrição
8.2.0 | Inclui os caracteres de formato N (dia da semana ISO-8601) e o (ano ISO-8601).
8.0.0 | timestamp agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo da função idate()

<?php
$timestamp = strtotime('1st January 2004'); //1072915200

// este código imprime o ano em um formato de dois dígitos
// entretanto, como começaria com um "0", ele
// só imprime "4"
echo idate('y', $timestamp);
?>

Veja Também

  • DateTimeInterface::format() - Retorna a data formatada de acordo com um formato informado
  • date() - Formatar um timestamp Unix
  • getdate() - Recupera informações de data/hora
  • time() - Retorna o timestamp Unix atual


Obtém o horário local

  • « idate
  • microtime »
  • PHP Manual
  • Funções de Data/Hora
  • Obtém o horário local

localtime

(PHP 4, PHP 5, PHP 7, PHP 8)

localtime — Obtém o horário local

Descrição

localtime(?int $timestamp = null, bool $associative = false): array

A função localtime() retorna um array idêntico à estrutura retornada pela chamada da função em C.

Parâmetros

timestamp

O parâmetro opcional timestamp é um int de timestamp Unix cujo padrão é a hora local atual se timestamp não for informado ou for null. Em outras palavras, o padrão é o valor de time().

associative

Valor Retornado

Se associative for definido para false ou não fornecido, o retorno é um array normal, indexado numericamente. Se associative for definido para true, então localtime() retorna um array associativo contendo os elementos da estrutura retornados pela chamada da função C para o horário local. Os nomes das chaves do array associativo são as seguintes:

  • "tm_sec" - segundos, 0 a 59
  • "tm_min" - minutos, 0 a 59
  • "tm_hour" - horas, 0 a 23
  • "tm_mday" - dia do mês, 1 a 31
  • "tm_mon" - mês do ano, 0 (Jan) a 11 (Dez)
  • "tm_year" - anos desde 1900
  • "tm_wday" - dia da semana, 0 (Dom) a 6 (Sáb)
  • "tm_yday" - dia do ano, 0 a 365
  • "tm_isdst" - Se está em horário de verão Positivo se sim, 0 se não, negativo se é desconhecido.

Erros/Exceções

Toda chamada a uma função de data/hora gerará um E_WARNING se o fuso horário não for válido. Veja também date_default_timezone_set()

Registro de Alterações

Versão | Descrição
8.0.0 | timestamp agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo da função localtime()

<?php
$localtime = localtime();
$localtime_assoc = localtime(time(), true);
print_r($localtime);
print_r($localtime_assoc);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => 24
    [1] => 3
    [2] => 19
    [3] => 3
    [4] => 3
    [5] => 105
    [6] => 0
    [7] => 92
    [8] => 1
)

Array
(
    [tm_sec] => 24
    [tm_min] => 3
    [tm_hour] => 19
    [tm_mday] => 3
    [tm_mon] => 3
    [tm_year] => 105
    [tm_wday] => 0
    [tm_yday] => 92
    [tm_isdst] => 1
)

Veja Também

  • getdate() - Recupera informações de data/hora


Retorna o timestamp Unix atual com microssegundos

  • « localtime
  • mktime »
  • PHP Manual
  • Funções de Data/Hora
  • Retorna o timestamp Unix atual com microssegundos

microtime

(PHP 4, PHP 5, PHP 7, PHP 8)

microtime — Retorna o timestamp Unix atual com microssegundos

Descrição

microtime(bool $as_float = false): string|float

A função microtime() retorna o timestamp atual com microssegundos. Esta função está disponível apenas em sistemas operacionais que suportam a chamada de sistema gettimeofday().

Para medições de desempenho, é recomendado utilizar hrtime().

Parâmetros

as_float

Se utilizada e definida como true, a função microtime() retornará um float em vez de uma string, como descrito na seção de valores de retorno a seguir.

Valor Retornado

Por padrão, a função microtime() retorna uma string no formato "msec sec", onde sec é o número de segundos desde a época Unix (1 de Janeiro de 1970, 00:00:00 GMT), e msec mensura os microssegundos que se passaram desde sec e também é expressa em segundos, na forma de fração decimal.

Se o parâmetro opcional as_float for definido para true, a função microtime() retorna um float que representa a hora atual em segundos desde a época Unix com precisão de microssegundos.

Exemplos

Exemplo #1 Cronometrando a execução do script

<?php
$time_start = microtime(true);

// Espera um momento
usleep(100);

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "Nada foi feito em $time segundo(s).\n";
?>

Exemplo #2 microtime() e REQUEST_TIME_FLOAT

<?php
// Tempo de espera aleatório
usleep(mt_rand(100, 10000));

// REQUEST_TIME_FLOAT está disponível no array superglobal $_SERVER.
// Ele contém o timestamp do início da requisição com precisão de microssegundos.
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];

echo "Nada foi feito em $time segundo(s).\n";
?>

Veja Também

  • time() - Retorna o timestamp Unix atual
  • hrtime() - Obtém o tempo de alta resolução do sistema


Obtém um timestamp Unix de uma data

  • « microtime
  • strftime »
  • PHP Manual
  • Funções de Data/Hora
  • Obtém um timestamp Unix de uma data

mktime

(PHP 4, PHP 5, PHP 7, PHP 8)

mktime — Obtém um timestamp Unix de uma data

Descrição

mktime(
int $hour,
?int $minute = null,
?int $second = null,
?int $month = null,
?int $day = null,
?int $year = null
): int|false

Retorna o timestamp Unix correspondente aos argumentos informados. Este timestamp é um inteiro longo contendo o número de segundos entre a Era Unix (January 1 1970 00:00:00 GMT), e o tempo especificado.

Quaisquer argumentos opcionais omitidos ou null serão definidos para os valores correntes de acordo com a data e horário locais.

Aviso

Favor notar que os argumentos estão em uma ordem não usual: month, day, year, e não na ordem mais razoável year, month, day.

Chamar mktime() sem argumentos não é suportado, e irá resultar em um ArgumentCountError. time() pode ser usada para obter o timestamp atual.

Parâmetros

hour

O número da hora relativa ao início de determinado dia do month, day e year. Valores negativos referenciam a hora anterior a meia noite do dia em questão. Valores maiores que 23 referenciam a hora correspondente no(s) próximo(s) dia(s).

minute

O número de minutos relativos ao início da hour. Valores negativos referenciam minutos da hora anterior. Valores maiores que 23 referenciam os minutos correspondentes a(s) próxima(s) horas(s).

second

O número de segundos relativos ao início do minute. Valores negativos referenciam segundos do minuto anterior. Valores maiores que 23 referenciam os segundos correspondentes ao(s) próximo(s) minuto(s).

month

O número do mês relativo ao fim do anterior. Valores de 1 a 12 referenciam o calendário normal de meses do ano em questão. Valores menores que 1 (valores negativos, inclusos) referenciam meses do ano anterior em ordem reversa, então 0 é Dezembro, -1 Novembro, e etc. Valores maiores que 12 referenciam meses correspondentes ao(s) próximo(s) ano(s).

day

O número do dia relativo ao final do mês anterior. Valores de 1 a 28, 29, 30 e 31 (dependendo do mês) corresponde a dias normais no mês. Valores menores que 1 (valores negativos, inclusos) corresponde a dias no mês anterior, então 0 é o último dia do mês anterior, -1 é o dia anterior a este, e etc. Valores maiores que o número de dias do mês, referenciam dias correspondentes ao(s) próximo(s) mês(es).

year

O número do ano. Pode conter dois ou quatro dígitos, com os valores entre 0-69 significando 2000-2069 e 70-100 para 1970-2000. Em sistemas aonde o time_t é um inteiro assinado de 32 bit, como é mais comum, o faixa de valores para year é algo entre 1901 e 2038.

Valor Retornado

A função mktime() retorna o timestamp Unix dos argumentos informados ou false se o timestamp não couber em um inteiro do PHP.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro hour não é mais opcional. Se for necessário um timestamp Unix, use a função time().
8.0.0 | minute, second, month, day e year agora podem ser nulos.

Exemplos

Exemplo #1 Exemplo básico da função mktime()

<?php
// Configura o fuso horário padrão a ser utilizado.
date_default_timezone_set('UTC');

// Imprime: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

// Imprime algo como: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>

Exemplo #2 Exemplo da mktime()

mktime() é útil para a aritmética e validação de data, já que calculará automaticamente o valor correto para a entrada fora do intervalo. Por exemplo, cada uma das seguintes linhas produzirá a string "Jan-01-1998".

<?php
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));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>

Exemplo #3 Último dia do próximo mês

O último dia de um mês informado pode ser expressado como o dia "0" do mês seguinte, não o dia -1. Os dois exemplos seguintes produzirão a string "The last day in Feb 2000 is: 29".

<?php
$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);
?>

Veja Também

  • The DateTimeImmutable class
  • checkdate() - Valida uma data gregoriana
  • gmmktime() - Obtém um timestamp Unix para uma data GMT
  • date() - Formatar um timestamp Unix
  • time() - Retorna o timestamp Unix atual


Formata uma hora/data de acordo com as configurações locais

  • « mktime
  • strptime »
  • PHP Manual
  • Funções de Data/Hora
  • Formata uma hora/data de acordo com as configurações locais

strftime

(PHP 4, PHP 5, PHP 7, PHP 8)

strftime — Formata uma hora/data de acordo com as configurações locais

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.1.0. O uso desta função é fortemente desencorajado.

Alternativas a esta função incluem:

  • date()
  • IntlDateFormatter::format()

Descrição

strftime(string $format, ?int $timestamp = null): string|false

Formata uma hora/data local de acordo com a configuração do idioma. Nome do mês e dia da semana e outras strings respeitam o idioma corrente definido com a função setlocale().

Aviso

Nem todas os especificadores de conversão podem ser suportados pela sua biblioteca C, e nestes casos eles não serão suportadas pela função do PHP strftime(). Além disso, nem todas as plataformas suportam timestamps negativos, então sua faixa de datas pode ficar limitada a um valor não anterior à época Unix. Isto significa que %e, %T, %R e %D (e possivelmente outras) - assim como datas anteriores a 1 de janeiro de 1970 - não funcionarão no Windows, algumas distribuições Linux, e alguns outros sistemas operacionais. Para sistemas Windows, uma visão completa dos especificadores de conversão suportados podem ser encontrados em » MSDN. No lugar desta função, use o método IntlDateFormatter::format().

Parâmetros

format

Os seguintes caracteres são reconhecidos na string do parâmetro format
format | Descrição | Exemplo de valores retornados
Dia --- ---
%a | Representação textual abreviada do dia | Sun até Sat
%A | Representação textual completa do dia | Sunday até Saturday
%d | Dia do mês, com dois dígitos (com zeros à esquerda) | 01 a 31
%e | Dia do mês com um dígito, precedido com um espaço. Não implementado como descrito no Windows. Veja abaixo para mais informações. | 1 a 31
%j | Dia do ano, com 3 dígitos e zeros à esquerda | 001 a 366
%u | Representação numérica, do dia da semana, compatível com a ISO-8601 | 1 (para segunda-feira) até 7 (para domingo)
%w | Representação numérica do dia da semana | 0 (para domingo) até 6 (para sábado)
Semana --- ---
%U | Número da semana de um dado ano, iniciado com o primeiro domingo sendo a primeira semana | 13 (como a 13ª semana completa do ano)
%V | Número da semana, compatível com a ISO-8601:1988 de um dado ano, iniciada com a primeira semana do ano com pelo menos 4 finais de semana, sendo a segunda-feira como o início da semana. | 01 até 53 (onde 53 é responsável por uma sobreposição)
%W | Representação numérica da semana do ano, começando pela primeira segunda-feira como primeira semana | 46 (como a 46ª semana do do ano iniciando na segunda-feira)
Mês --- ---
%b | Nome do mês abreviado, baseado no idioma | jan até dez
%B | Nome completo do mês, baseado no idioma | janeiro até dezembro
%h | Nome do mês abreviado, baseado no idioma (sinônimo de %b) | jan até dez
%m | Representação com dois dígitos do mês | 01 (para janeiro) até 12 (para dezembro)
Ano --- ---
%C | Representação, com dois dígitos, do século (ano dividido por 100, truncado como inteiro) | 19 para o século 20
%g | Representação do ano, com dois dígitos, seguindo o padrão ISO-8601:1988 (veja %V) | Exemplo: 09 de 6 de janeiro de 2009
%G | Versão de 4 dígitos de %g | Exemplo: 2008 de 3 de janeiro de 2009
%y | Representação, com dois dígitos, do ano | Exemplo: 09 de 2009, 79 de 1979
%Y | Representação, com quatro dígitos, do ano | Exemplo: 2038
Hora --- ---
%H | Representação, com dois dígitos, da hora no formato 24 horas | 00 até 23
%k | Representação da hora no formato 24 horas, com um espaço precedendo dígito único | 0 até 23
%I | Representação, com dois dígitos, da hora no formato 12 horas | 01 até 12
%l ('L' minúsculo) | Representação da hora no formato 12 horas, com um espaço precedendo dígito único | 1 até 12
%M | Representação, com dois dígitos, do minuto | 00 até 59
%p | 'AM' ou 'PM' maiúsculo baseado na hora informada | Exemplo: AM para 00:31, PM para 22:23. O resultado exato depende do sistema operacional, e pode retornar variantes em minúsculoas, ou variantes com pontos (como a.m.).
%P | 'am' ou 'pm' maiúsculo baseado na hora informada | Exemplo: am para 00:31, pm para 22:23. Não suportado por todos os sistemas operacionais.
%r | O mesmo que "%I:%M:%S %p" | Exemplo: 09:34:17 PM de 21:34:17
%R | O mesmo que "%H:%M" | Exemplo: 00:35 de 12:35 AM, 16:44 de 4:44 PM
%S | Representação, com dois dígitos, do segundo | 00 até 59
%T | O mesmo que "%H:%M:%S" | Exemplo: 21:34:17 para 09:34:17 PM
%X | Representação escolhida baseada no idioma, sem a data | Exemplo: 03:59:16 ou 15:59:16
%z | O deslocamento do fuso horário. Não implementado como descrito no Windows. Veja mais informações a seguir. | Exemplo: -0500 para hora à leste dos EUA
%Z | A abreviação do fuso horário. Não implementado como descrito no Windows. Veja mais informações a seguir. | Exemplo: EST para Eastern Time
Carimbos de Data e Hora --- ---
%c | Carimbo escolhido de data e hora baseado no idioma | Exemplo: Ter Fev 5 00:45:10 2009 de February 5, 2009 at 12:45:10 AM
%D | O mesmo que "%m/%d/%y" | Exemplo: 02/05/09 de February 5, 2009
%F | O mesmo que "%Y-%m-%d" (geralmente utilizado em carimbos de data em bancos de dados) | Exemplo: 2009-02-05 de February 5, 2009
%s | Timestamp Unix(o mesmo que a função time() function) | Exemplo: 305815200 de September 10, 1979 08:40:00 AM
%x | Representação da data baseada na preferência da localidade, sem a hora | Exemplo: 02/05/09 de February 5, 2009
Miscelânea --- ---
%n Uma nova linha ("\n") ---
%t Um caractere TAB ("\t") ---
%% Um caractere literal de porcento ("%") ---

Aviso

Contrário a ISO-9899:1999, o sistema Sun Solaris começa a semana no Domingo, como 1. Resultando em %u não funcionando como descrito neste manual.

Aviso

Somente no Windows:

O modificador %e não possui suporte a implementação desta função no Windows. Para conseguir este valor, o modificador %#d pode ser utilizado em substituição. O exemplo a seguir ilustra como escrever uma função com compatibilidade multiplataforma.

Os modificadores %z e %Z retornam o nome do fuso horário em vez do deslocamento ou abreviação do mesmo.

Aviso

macOS and musl only: O modificador %P não é suportado na implementação macOS desta função.

timestamp

O parâmetro opcional timestamp é um int de timestamp Unix cujo padrão é a hora local atual se timestamp não for informado ou for null. Em outras palavras, o padrão é o valor de time().

Valor Retornado

Retorna uma string formatada de acordo com o format informado em timestamp ou o horário local atual se nenhum timestamp foi informado. Nomes de meses e dia da semana, e outras strings dependentes de linguagens respeitam o idioma definido com a função setlocale(). A função retorna false se format for vazio, contém especificadores de conversão não suportados, ou se o comprimento da string retornada fosse maior que 4095.

Erros/Exceções

Toda chamada a uma função de data/hora gerará um E_WARNING se o fuso horário não for válido. Veja também date_default_timezone_set()

Como a saída depende da biblioteca C disponível, alguns especificadores de conversão não possuem suporte. No Windows, informar especificadores de conversão desconhecidos resultará em mensagens E_WARNING e retornará false. Em outros sistemas operacionais você pode não receber nenhuma mensagem E_WARNING e a saída poderá conter os especificadores de conversão não convertidos.

Registro de Alterações

Versão | Descrição
8.0.0 | timestamp agora pode ser nulo.

Exemplos

Este exemplo funciona se você tem os respectivos idiomas instalados em seu sistema.

Exemplo #1 Exemplo da função strftime() com idiomas

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" in Finnish is %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A and");
setlocale(LC_TIME, "de_DE");
echo strftime(" in German %A.\n");
?>

Exemplo #2 Exemplo do número de semana ISO 8601:1988

<?php
/* December 2002 / January 2003
ISOWk M Tu W Thu F Sa Su
----- ----------------------------
51 16 17 18 19 20 21 22
52 23 24 25 26 27 28 29
1 30 31 1 2 3 4 5
2 6 7 8 9 10 11 12
3 13 14 15 16 17 18 19 */

// Outputs: 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";

// Outputs: 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";

// Outputs: 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Outputs: 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";

/* December 2004 / January 2005
ISOWk M Tu W Thu F Sa Su
----- ----------------------------
51 13 14 15 16 17 18 19
52 20 21 22 23 24 25 26
53 27 28 29 30 31 1 2
1 3 4 5 6 7 8 9
2 10 11 12 13 14 15 16 */

// Outputs: 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Outputs: 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Outputs: 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Outputs: 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>

Exemplo #3 Exemplo do uso do modificador %e compatível com múltiplas plataformas

<?php

// Jan 1: results in: '%e%1%' (%%, e, %%, %e, %%)
$format = '%%e%%%e%%';

// Check for Windows to find and replace the %e
// modifier correctly
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
$format = preg_replace('#(?<!%)((?:%%)*)%e#', '\1%#d', $format);
}

echo strftime($format);
?>

Exemplo #4 Mostra os formatos conhecidos e desconhecidos

<?php
// Describe the formats.
$strftimeFormats = array(
'A' => 'A full textual representation of the day',
'B' => 'Full month name, based on the locale',
'C' => 'Two digit representation of the century (year divided by 100, truncated to an integer)',
'D' => 'Same as "%m/%d/%y"',
'E' => '',
'F' => 'Same as "%Y-%m-%d"',
'G' => 'The full four-digit version of %g',
'H' => 'Two digit representation of the hour in 24-hour format',
'I' => 'Two digit representation of the hour in 12-hour format',
'J' => '',
'K' => '',
'L' => '',
'M' => 'Two digit representation of the minute',
'N' => '',
'O' => '',
'P' => 'lower-case "am" or "pm" based on the given time',
'Q' => '',
'R' => 'Same as "%H:%M"',
'S' => 'Two digit representation of the second',
'T' => 'Same as "%H:%M:%S"',
'U' => 'Week number of the given year, starting with the first Sunday as the first week',
'V' => 'ISO-8601:1988 week number of the given year, starting with the first week of the year with at least 4 weekdays, with Monday being the start of the week',
'W' => 'A numeric representation of the week of the year, starting with the first Monday as the first week',
'X' => 'Preferred time representation based on locale, without the date',
'Y' => 'Four digit representation for the year',
'Z' => 'The time zone offset/abbreviation option NOT given by %z (depends on operating system)',
'a' => 'An abbreviated textual representation of the day',
'b' => 'Abbreviated month name, based on the locale',
'c' => 'Preferred date and time stamp based on local',
'd' => 'Two-digit day of the month (with leading zeros)',
'e' => 'Day of the month, with a space preceding single digits',
'f' => '',
'g' => 'Two digit representation of the year going by ISO-8601:1988 standards (see %V)',
'h' => 'Abbreviated month name, based on the locale (an alias of %b)',
'i' => '',
'j' => 'Day of the year, 3 digits with leading zeros',
'k' => 'Hour in 24-hour format, with a space preceding single digits',
'l' => 'Hour in 12-hour format, with a space preceding single digits',
'm' => 'Two digit representation of the month',
'n' => 'A newline character ("\n")',
'o' => '',
'p' => 'UPPER-CASE "AM" or "PM" based on the given time',
'q' => '',
'r' => 'Same as "%I:%M:%S %p"',
's' => 'Unix Epoch Time timestamp',
't' => 'A Tab character ("\t")',
'u' => 'ISO-8601 numeric representation of the day of the week',
'v' => '',
'w' => 'Numeric representation of the day of the week',
'x' => 'Preferred date representation based on locale, without the time',
'y' => 'Two digit representation of the year',
'z' => 'Either the time zone offset from UTC or the abbreviation (depends on operating system)',
'%' => 'A literal percentage character ("%")',
);

// Results.
$strftimeValues = array();

// Evaluate the formats whilst suppressing any errors.
foreach($strftimeFormats as $format => $description){
if (False !== ($value = @strftime("%{$format}"))){
$strftimeValues[$format] = $value;
}
}

// Find the longest value.
$maxValueLength = 2 + max(array_map('strlen', $strftimeValues));

// Report known formats.
foreach($strftimeValues as $format => $value){
echo "Known format : '{$format}' = ", str_pad("'{$value}'", $maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}

// Report unknown formats.
foreach(array_diff_key($strftimeFormats, $strftimeValues) as $format => $description){
echo "Unknown format : '{$format}' ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Known format   : 'A' = 'Friday'            ( A full textual representation of the day )
Known format   : 'B' = 'December'          ( Full month name, based on the locale )
Known format   : 'H' = '11'                ( Two digit representation of the hour in 24-hour format )
Known format   : 'I' = '11'                ( Two digit representation of the hour in 12-hour format )
Known format   : 'M' = '24'                ( Two digit representation of the minute )
Known format   : 'S' = '44'                ( Two digit representation of the second )
Known format   : 'U' = '48'                ( Week number of the given year, starting with the first Sunday as the first week )
Known format   : 'W' = '48'                ( A numeric representation of the week of the year, starting with the first Monday as the first week )
Known format   : 'X' = '11:24:44'          ( Preferred time representation based on locale, without the date )
Known format   : 'Y' = '2010'              ( Four digit representation for the year )
Known format   : 'Z' = 'GMT Standard Time' ( The time zone offset/abbreviation option NOT given by %z (depends on operating system) )
Known format   : 'a' = 'Fri'               ( An abbreviated textual representation of the day )
Known format   : 'b' = 'Dec'               ( Abbreviated month name, based on the locale )
Known format   : 'c' = '12/03/10 11:24:44' ( Preferred date and time stamp based on local )
Known format   : 'd' = '03'                ( Two-digit day of the month (with leading zeros) )
Known format   : 'j' = '337'               ( Day of the year, 3 digits with leading zeros )
Known format   : 'm' = '12'                ( Two digit representation of the month )
Known format   : 'p' = 'AM'                ( UPPER-CASE "AM" or "PM" based on the given time )
Known format   : 'w' = '5'                 ( Numeric representation of the day of the week )
Known format   : 'x' = '12/03/10'          ( Preferred date representation based on locale, without the time )
Known format   : 'y' = '10'                ( Two digit representation of the year )
Known format   : 'z' = 'GMT Standard Time' ( Either the time zone offset from UTC or the abbreviation (depends on operating system) )
Known format   : '%' = '%'                 ( A literal percentage character ("%") )
Unknown format : 'C'                       ( Two digit representation of the century (year divided by 100, truncated to an integer) )
Unknown format : 'D'                       ( Same as "%m/%d/%y" )
Unknown format : 'E'
Unknown format : 'F'                       ( Same as "%Y-%m-%d" )
Unknown format : 'G'                       ( The full four-digit version of %g )
Unknown format : 'J'
Unknown format : 'K'
Unknown format : 'L'
Unknown format : 'N'
Unknown format : 'O'
Unknown format : 'P'                       ( lower-case "am" or "pm" based on the given time )
Unknown format : 'Q'
Unknown format : 'R'                       ( Same as "%H:%M" )
Unknown format : 'T'                       ( Same as "%H:%M:%S" )
Unknown format : 'V'                       ( ISO-8601:1988 week number of the given year, starting with the first week of the year with at least 4 weekdays, with Monday being the start of the week )
Unknown format : 'e'                       ( Day of the month, with a space preceding single digits )
Unknown format : 'f'
Unknown format : 'g'                       ( Two digit representation of the year going by ISO-8601:1988 standards (see %V) )
Unknown format : 'h'                       ( Abbreviated month name, based on the locale (an alias of %b) )
Unknown format : 'i'
Unknown format : 'k'                       ( Hour in 24-hour format, with a space preceding single digits )
Unknown format : 'l'                       ( Hour in 12-hour format, with a space preceding single digits )
Unknown format : 'n'                       ( A newline character ("\n") )
Unknown format : 'o'
Unknown format : 'q'
Unknown format : 'r'                       ( Same as "%I:%M:%S %p" )
Unknown format : 's'                       ( Unix Epoch Time timestamp )
Unknown format : 't'                       ( A Tab character ("\t") )
Unknown format : 'u'                       ( ISO-8601 numeric representation of the day of the week )
Unknown format : 'v'

Notas

Nota: %G e %V, que são baseadas nos números de semana da ISO 8601:1988, podem dar resultados inesperados (embora corretos), se o sistema numérico não for reconhecido perfeitamente. Veja exemplos da %V nesta página do manual.

Veja Também

  • IntlDateFormatter::format() - Formata data/horário como uma string
  • DateTimeInterface::format() - Retorna a data formatada de acordo com um formato informado
  • » Ferramenta online para criação de formatos compatíveis com o strftime()
  • setlocale() - Set locale information
  • mktime() - Obtém um timestamp Unix de uma data
  • strptime() - Interpreta uma hora/data gerada pela função strftime
  • gmstrftime() - Formata uma data/hora GMT/UTC de acordo com as configurações de localidade
  • » Especificação Open Group da strftime()


Interpreta uma hora/data gerada pela função strftime

  • « strftime
  • strtotime »
  • PHP Manual
  • Funções de Data/Hora
  • Interpreta uma hora/data gerada pela função strftime

strptime

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

strptime — Interpreta uma hora/data gerada pela função strftime()

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.1.0. O uso desta função é fortemente desencorajado.

Descrição

strptime(string $timestamp, string $format): array|false

strptime() retorna um array com a timestamp analisada, ou false em caso de erro.

Nomes de meses e semanas, e outras strings que dependem do idioma, respeitam o idioma corrente definido com a função setlocale() (LC_TIME).

Parâmetros

timestamp (string)

A string a ser interpretada (retornada da função strftime()).

format (string)

O formato utilizado em timestamp (o mesmo utilizado na função strftime()). Note que algumas opções de formato disponíveis na função strftime() podem não ter nenhum efeito com strptime(); o subconjunto exato que é suportado vai variar por ser baseado no sistema operacional e biblioteca C em uso.

Para mais informações sobre as opções de formato, veja a página da função strftime().

Valor Retornado

Retorna um array ou false em caso de falha.

Os seguintes parâmetros são retornados no array
Parâmetro | Descrição
"tm_sec" | Segundos após o minuto (0-61)
"tm_min" | Minutos após a hora (0-59)
"tm_hour" | Horas passadas desde a meia-noite (0-23)
"tm_mday" | Dia do mês (1-31)
"tm_mon" | Meses passados desde janeiro (0-11)
"tm_year" | Anos passados desde 1900
"tm_wday" | Dias passados desde domingo (0-6)
"tm_yday" | Dias passados desde 1º de janeiro 1 (0-365)
"unparsed" | A parte timestamp que não foi reconhecida usando o format especificado

Registro de Alterações

Versão | Descrição
8.1.0 | Esta função foi descontinuada. Use date_parse_from_format() no lugar (para análise independente de localidade), ou IntlDateFormatter::parse() (para análise dependente de localidade).

Exemplos

Exemplo #1 Exemplo da função strptime()

<?php
$format = '%d/%m/%Y %H:%M:%S';
$strf = strftime($format);

echo "$strf\n";

print_r(strptime($strf, $format));
?>

O exemplo acima produzirá algo semelhante a:

03/10/2004 15:54:19

Array
(
    [tm_sec] => 19
    [tm_min] => 54
    [tm_hour] => 15
    [tm_mday] => 3
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 0
    [tm_yday] => 276
    [unparsed] =>
)

Notas

Nota: Esta função não foi implementada em plataformas Windows.

Nota:

Internamente, esta função chama a função strptime() presente na biblioteca C do sistema. Esta função pode apresentar um comportamento diferente entre diferentes sistemas operacionais. A utilização da função date_parse_from_format(), que não é afetada por esta questão, é recomendada.

Nota:

"tm_sec" inclui todos os segundos do ano bissexto (atualmente 2 por ano). Para mais informações sobre segundos do ano bissexto, veja o » o artigo da Wikipedia sobre segundos Bissexto.

Veja Também

  • IntlDateFormatter::parse() - Interpreta uma string para uma valor de timestamp
  • DateTime::createFromFormat() - Interpreta um string de data/hora de acordo com um formato especificado.
  • checkdate() - Valida uma data gregoriana
  • strftime() - Formata uma hora/data de acordo com as configurações locais
  • date_parse_from_format() - Retorna informações sobre uma data informada de acordo com um formato


Interpreta qualquer descrição textual de data/hora em inglês para timestamp Unix

  • « strptime
  • time »
  • PHP Manual
  • Funções de Data/Hora
  • Interpreta qualquer descrição textual de data/hora em inglês para timestamp Unix

strtotime

(PHP 4, PHP 5, PHP 7, PHP 8)

strtotime — Interpreta qualquer descrição textual de data/hora em inglês para timestamp Unix

Descrição

strtotime(string $datetime, ?int $baseTimestamp = null): int|false

A função espera que seja informada uma string contendo um formato de data em inglês US, e tentará interpretá-lo para um timestamp Unix (o número de segundos desde 1º de janeiro de 1970 00:00:00 GMT), relativo ao timestamp dado em baseTimestamp, ou o horário atual se baseTimestamp não for fornecido. A interpretação da string de data está definida em Formatos de Data e Horário, e tem várias considerações sutis. Rever os detalhes completos dessas definições é fortemente recomendado.

Aviso

O timestamp Unix que esta função retorna não contém informação sobre fuso horário. Para realizar cálculos com informação de data/hora, deve-se usar a classe com mais capacidade DateTimeImmutable.

Cada parâmetro desta função utiliza o fuso horário padrão, a não ser que um fuso horário seja especificado neste parâmetro. Tome cuidado para não utilizar fusos horários diferentes em cada um dos parâmetros a não ser que seja o pretendido. Veja a função date_default_timezone_get() para verificar as diversas formas de definir um fuso horário padrão.

Parâmetros

datetime

Uma string de data/hora. Os formatos válidos são explicados em Formatos de Data e Hora.

baseTimestamp

O timestamp que será utilizado como base no cálculo das datas relativas.

Valor Retornado

Retorna um timestamp em sucesso, false caso contrário.

Erros/Exceções

Toda chamada a uma função de data/hora gerará um E_WARNING se o fuso horário não for válido. Veja também date_default_timezone_set()

Registro de Alterações

Versão | Descrição
8.0.0 | baseTimestamp agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo da função strtotime()

<?php
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";
?>

Exemplo #2 Checando por falha

<?php
$str = 'Not Good';

if (($timestamp = strtotime($str)) === false) {
echo "The string ($str) is bogus";
} else {
echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
?>

Notas

Nota:

Data "relativa" neste caso também significa que se um componente em particular do timestamp de data/hora não for fornecido, ele será removido literalmente do parâmetro baseTimestamp. Isto é, strtotime('February'), se executado em 31 de maio de 2022, será interpretado como 31 de fevereiro de 2022, o que vai transferir para um timestamp de 3 de março (em um ano bissexto, seria 2 de março). Usar strtotime('1 February') or strtotime('first day of February') evitaria este problema.

Nota:

Se o número do ano for especificado no formato com dois dígitos, o valor entre 00-60 será mapeado para 2000-2069 e 70-99 para 1970-1999. Veja as notas a seguir para possíveis diferenças em sistemas 32bit (as datas possíveis acabam em 2038-01-19 03:14:07),

Nota:

O intervalo válido de um timestamp é tipicamente de Sex, 13 Dez 1901 20:45:54 GMT até Ter, 19 Jan 2038 03:14:07 GMT. (Estas são datas que correspondem aos valores máximos e mínimos para um inteiro sem sinal em sistemas 32-bit.)

Em versões do PHP em 64-bit, a faixa válida de um timestamp é praticamente infinita, já que 64 bits pode representar aproximadamente 293 bilhões de anos em ambas direções.

Nota:

O uso desta função para operações matemáticas não é recomendado. É melhor a utilização dos métodos DateTime::add() e DateTime::sub().

Veja Também

  • DateTimeImmutable
  • DateTimeImmutable::createFromFormat() - Interpreta um string de data/hora de acordo com o formato especificado
  • Formatos de Data e Hora
  • checkdate() - Valida uma data gregoriana
  • strptime() - Interpreta uma hora/data gerada pela função strftime


Retorna o timestamp Unix atual

  • « strtotime
  • timezone_abbreviations_list »
  • PHP Manual
  • Funções de Data/Hora
  • Retorna o timestamp Unix atual

time

(PHP 4, PHP 5, PHP 7, PHP 8)

time — Retorna o timestamp Unix atual

Descrição

time(): int

Retorna o horário atual medido como o número de segundos desde a Época Unix (1 de janeiro de 1970 00:00:00 GMT).

Nota:

Timestamps Unix não contêm nenhuma informação sobre fuso horário local. Recomenda-se usar a classe DateTimeImmutable para lidar com informações de data e horário para evitar as armadilhas que vêm com o uso exclusivo de timestamps Unix.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o timestamp atual.

Exemplos

Exemplo #1 Exemplo de time()

<?php
echo 'Now: '. time();
?>

O exemplo acima produzirá algo semelhante a:

Now: 1660338149

Notas

Dica

O timestamp do início da requisição está disponível na variável $_SERVER['REQUEST_TIME'].

Veja Também

  • DateTimeImmutable
  • date() - Formatar um timestamp Unix
  • microtime() - Retorna o timestamp Unix atual com microssegundos


Sinônimo de DateTimeZone::listAbbreviations

  • « time
  • timezone_identifiers_list »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_abbreviations_list — Sinônimo de DateTimeZone::listAbbreviations()

Descrição

Esta função é um apelido para: DateTimeZone::listAbbreviations()


Sinônimo de DateTimeZone::listIdentifiers

  • « timezone_abbreviations_list
  • timezone_location_get »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTimeZone::listIdentifiers

timezone_identifiers_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_identifiers_list — Sinônimo de DateTimeZone::listIdentifiers()

Descrição

Esta função é um apelido para: DateTimeZone::listIdentifiers()


Sinônimo de DateTimeZone::getLocation

  • « timezone_identifiers_list
  • timezone_name_from_abbr »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTimeZone::getLocation

timezone_location_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

timezone_location_get — Sinônimo de DateTimeZone::getLocation()

Descrição

Esta função é um apelido para: DateTimeZone::getLocation()


Retorna um nome de fuso horário através da abreviatura e do deslocamento UTC

  • « timezone_location_get
  • timezone_name_get »
  • PHP Manual
  • Funções de Data/Hora
  • Retorna um nome de fuso horário através da abreviatura e do deslocamento UTC

timezone_name_from_abbr

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

timezone_name_from_abbr — Retorna um nome de fuso horário através da abreviatura e do deslocamento UTC

Descrição

timezone_name_from_abbr(string $abbr, int $utcOffset = -1, int $isDST = -1): string|false

Parâmetros

abbr

A abreviação do fuso horário.

utcOffset

Deslocamento ao Horário de Greenwish(GMT) em segundos. Sendo -1 o padrão, que significa que o primeiro fuso horário correspondente encontrado com abbr é retornado. Caso contrário o deslocamento é buscao, e caso não encontrado, o o primeiro fuso horário, com qualquer deslocamento, é retornado.

isDST

Indicador do horário de verão. O padrão é -1, e informa que tendo o fuso horário horário de verão, ou não, este não será levado em consideração na busca. Se configurado para 1, então utcOffset é utilizado como diferença no horário de verão; se 0, então utcOffset é utilizado sem a diferença do horário de verão. Se abbr não existir, o fuso horário será buscado exclusivamente pelo utcOffset e isDST.

Valor Retornado

Retorna o fuso horário em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Um exemplo da função timezone_name_from_abbr()

<?php
echo timezone_name_from_abbr("CET") . "\n";
echo timezone_name_from_abbr("", 3600, 0) . "\n";
?>

O exemplo acima produzirá algo semelhante a:

Europe/Berlin
Europe/Paris

Veja Também

  • timezone_abbreviations_list() - Sinônimo de DateTimeZone::listAbbreviations


Sinônimo de DateTimeZone::getName

  • « timezone_name_from_abbr
  • timezone_offset_get »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_name_get — Sinônimo de DateTimeZone::getName()

Descrição

Esta função é um apelido para: DateTimeZone::getName()


Sinônimo de DateTimeZone::getOffset

  • « timezone_name_get
  • timezone_open »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_offset_get — Sinônimo de DateTimeZone::getOffset()

Descrição

Esta função é um apelido para: DateTimeZone::getOffset()


Sinônimo de DateTimeZone::__construct

  • « timezone_offset_get
  • timezone_transitions_get »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_open — Sinônimo de DateTimeZone::__construct()

Descrição

Esta função é um apelido para: DateTimeZone::__construct()


Sinônimo de DateTimeZone::getTransitions

  • « timezone_open
  • timezone_version_get »
  • PHP Manual
  • Funções de Data/Hora
  • Sinônimo de DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_transitions_get — Sinônimo de DateTimeZone::getTransitions()

Descrição

Esta função é um apelido para: DateTimeZone::getTransitions()


Obtém a versão do banco de dados de fuso horário.

  • « timezone_transitions_get
  • Erros e Exceções de Data/Hora »
  • PHP Manual
  • Funções de Data/Hora
  • Obtém a versão do banco de dados de fuso horário.

timezone_version_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

timezone_version_get — Obtém a versão do banco de dados de fuso horário.

Descrição

timezone_version_get(): string

Obtém a versão atual do banco de dados de fuso horário.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string no formato YYYY.incremento, como em 2022.2.

Se você tem uma versão de banco de dados de fuso horário que é antiga (por exemplo, ela não mostra o ano atual), pode-se atualizar a informação do fuso horário tanto atualizando a versão do PHP, ou instalando o pacote PECL » timezonedb.

Algumas distribuições Linux alteram o suporte do PHP para data/hora para usar uma fonte alternativa de informação de fuso horário. Neste caso, esta função irá retornar 0.system. Recomenda-se instalar o pacote PECL » timezonedb neste caso também.

Exemplos

Exemplo #1 Obtendo a versão do banco de dados de fuso horário

<?php
echo timezone_version_get();
?>

O exemplo acima produzirá algo semelhante a:

2022.2

Veja Também

  • Lista de fusos horários suportados


Erros e Exceções de Data/Hora

  • DateError (extends Error)
    • DateObjectError DateRangeError
  • DateException (extends Exception)
      • DateInvalidOperationException
      • DateInvalidTimezoneException
      • DateMalformedIntervalStringException
      • DateMalformedPeriodStringException
      • DateMalformedStringException


Formatos de Data e Hora Suportados

Esta seção descreve todos os diferentes formatos em uma sintaxe BNF, que os analisadores de DateTimeImmutable, DateTime, date_create_immutable(), date_create(), date_parse() e strtotime() entendem. Os formatos estão agrupados por seção. Na maioria dos casos, formatos de diferentes seções, separados por espaços, vírgula ou ponto, podem ser utilizados com a mesma string data/hora. Para cada um dos formatos suportados, um ou mais exemplos estão disponíveis, assim como a descrição do formato. Nos formatos, caracteres entre aspas simples são insensíveis a maiúsculas/minúsculas ('t' pode ser t ou T), caracteres entre aspas duplas são sensíveis a maiúsculas/minúsculas ("T" só pode ser T).

Para formatar objetos DateTimeImmutable e DateTime, favor se referir à documentação do método DateTimeInterface::format().

Um conjunto geral de regras deve ser considerado.

  1. O analisador permite para cada unidade (ano, mês, dia, hora, minuto, segundo) o intervalo completo de valores. Para um ano são apenas 4 dígitos, para um mês o intervalo é 0-12, dia é 0-31, hora é 0-24, e minuto é 0-59.
  2. 60 é permitido para segundos, e algumas vezes strings com este segundo adicional aparecem. Porém, o PHP implementa o horário Unix onde "60" não é um segundo válido e por isso ocorre sobrecarga.
  3. strtotime() retorna false se quaisquer números estiverem fora dos intervalos, e DateTimeImmutable::__construct() dispara uma exceção.
  4. Se um string contém somente uma data, todos os elementos de horário são inicializados em 0.
  5. Todos os elementos menos significativos são inicializados em 0 se alguma parte do horário estiver presente no string.
  6. O analisador é muito simples, e não faz verificações adicionais, o que o torna mais rápido (e mais genérico).
  7. Além das regras para os elementos de horário individuais, o analisador também entende formatos compostos mais específicos, como análise de timestamps Unix (@1690388256) e números de semana ISO (2008-W28-3).

  8. Há uma verificação adicional se uma data inválida é fornecida:

    <?php
    $res     = date_parse("2015-09-31");
    var_dump($res["warnings"]);
    ?>

    O exemplo acima produzirá:

    array(1) {
  [11] =>
  string(27) "The parsed date was invalid"
}

  9. Já é possível lidar com casos extremos, mas neste caso a função DateTimeImmutable::createFromFormat() deve ser usada e o formato correto fornecido.

    <?php
    $res     = DateTimeImmutable::createFromFormat("Y-m-d", "2015-09-34");
    var_dump($res);

    O exemplo acima produzirá:

    object(DateTimeImmutable)#1 (3) {
  ["date"]=>
  string(26) "2015-10-04 17:24:43.000000"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(13) "Europe/London"
}

Formatos de Hora

Esta página descreve os diferentes formatos de data/hora em uma sintaxe BNF,
que os analisadores de DateTimeImmutable,
DateTime, date_create(),
date_create_immutable() e
strtotime() entendem.

Para formatar objetos DateTimeImmutable e DateTime, favor se referir à documentação do método DateTimeInterface::format().

Símbolos utilizados
Descrição | Formatos | Examplos
frac | . [0-9]+ | ".21342", ".85"
hh | "0"?[1-9] | "1"[0-2] | "04", "7", "12"
HH | [01][0-9] | "2"[0-4] | "04", "07", "19"
meridian | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am."
MM | [0-5][0-9] | "00", "12", "59"
II | [0-5][0-9] | "00", "12", "59"
space | [ \t] |
tz | "("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+ | "CEST", "Europe/Amsterdam", "America/Indiana/Knox"
tzcorrection | "GMT"? [+-] hh ":"? MM? | "+0400", "GMT-07:00", "-07:00"
Notação de 12 Horas
Descrição | Formatos | Examplos
Somente as horas, com o meridiano | hh space? meridian | "4 am", "5PM"
Horas e minutos, com o meridiano | hh [.:] MM space? meridian | "4:08 am", "7:19P.M."
Horas, minutos e segundos, com o meridiano | hh [.:] MM [.:] II space? meridian | "4:08:37 am", "7:19:19P.M."
MS SQL (Horas, minutos, segundos e a fração com o meridiano) | hh ":" MM ":" II [.:] [0-9]+ meridian | "4:08:39:12313am"
Notação de 24 Horas
Descrição | Formato | Exemplos
Horas e minutos | 't'? HH [.:] MM | "04:08", "19.19", "T23:43"
Horas e minutos, sem dois-pontos | 't'? HH MM | "0408", "t1919", "T2343"
Horas, minutos e segundos | 't'? HH [.:] MM [.:] II | "04.08.37", "t19:19:19"
Horas, minutos e segundos, sem dois-pontos | 't'? HH MM II | "040837", "T191919"
Horas, minutos, segundos e fuso horário | 't'? HH [.:] MM [.:] II space? ( tzcorrection | tz ) | "040837CEST", "T191919-0700"
Horas, minutos, segundos e fração | 't'? HH [.:] MM [.:] II frac | "04.08.37.81412", "19:19:19.532453"
Informações do fuso horário | tz | tzcorrection | "CEST", "Europe/Amsterdam", "+0430", "GMT-06:00"

Formatos de Data

Esta página descreve os diferentes formatos de data em uma sintaxe BNF, que
os analisadores de DateTimeImmutable,
DateTime, date_create(),
date_create_immutable() e
strtotime() entendem.

Para formatar objetos DateTimeImmutable e DateTime, favor se referir à documentação do método DateTimeInterface::format().

Simbolos Utilizados
Descrição | Formato | Exemplos
daysuf | "st" | "nd" | "rd" | "th" |
dd | ([0-2]?[0-9] | "3"[01]) daysuf? | "7th", "22nd", "31"
DD | "0" [0-9] | [1-2][0-9] | "3" [01] | "07", "31"
m | 'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december' | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI" | "VII" | "VIII" | "IX" | "X" | "XI" | "XII" |
M | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' |
mm | "0"? [0-9] | "1"[0-2] | "0", "04", "7", "12"
MM | "0" [0-9] | "1"[0-2] | "00", "04", "07", "12"
y | [0-9]{1,4} | "00", "78", "08", "8", "2008"
yy | [0-9]{2} | "00", "08", "78"
YY | [0-9]{4} | "2000", "2008", "1978"
YYY | [0-9]{5,19} | "81412", "20192"
Notações Localizadas
Descrição | Formato | Exemplos
Dia e mês americano | mm "/" dd | "5/12", "10/27"
Dia, mês e ano americano | mm "/" dd "/" y | "12/22/78", "1/17/2006", "1/17/6"
Ano com quatro dígitos, mês e dia com barras | YY "/" mm "/" dd | "2008/6/30", "1978/12/22"
Ano com quatro dígitos e mês (GNU) | YY "-" mm | "2008-6", "2008-06", "1978-12"
Ano, mês e dia com traços | y "-" mm "-" dd | "2008-6-30", "78-12-22", "8-6-21"
Dia, mês e ano, com quatro dígitos, com pontos, tabulações ou traços | dd [.\t-] mm [.-] YY | "30-6-2008", "22.12.1978"
Dia, mês e ano, com dois dígitos, com pontos ou tabulações | dd [.\t] mm "." yy | "30.6.08", "22\t12.78"
Dia, mês textual e ano | dd ([ \t.-])* m ([ \t.-])* y | "30-June 2008", "22DEC78", "14 III 1879"
Mês textual e ano com quatro dígitos (O dia é redefinido para 1) | m ([ \t.-])* YY | "June 2008", "DEC1978", "March 1879"
Ano com quatro dígitos e mês textual (O dia é redefinido para 1) | YY ([ \t.-])* m | "2008 June", "1978-XII", "1879.MArCH"
Mês textual, dia e ano | m ([ .\t-])* dd [,.stndrh\t ]+ y | "July 1st, 2008", "April 17, 1790", "May.9,78"
Mês textual e dia | m ([ .\t-])* dd [,.stndrh\t ]* | "July 1st,", "Apr 17", "May.9"
Dia e mês textual | dd ([ .\t-])* m | "1 July", "17 Apr", "9.May"
Mês abreviado, dia e ano | M "-" DD "-" y | "May-09-78", "Apr-17-1790"
Ano, mês abreviado e dia | y "-" M "-" DD | "78-Dec-22", "1814-MAY-17"
Ano (somente o ano) | YY | "1978", "2008"
Year (expandido, 5-19 dígitos com sinal) | [+-] YYY | "-81120", "+20192"
Mês textual (somente o mês) | m | "March", "jun", "DEC"
Notação ISO8601
Descrição | Formato | Exemplos
Ano com oito dígitos, mês e dia | YY MM DD | "15810726", "19780417", "18140517"
Ano com quatro dígitos, mês e dia com barras | YY "/" MM "/" DD | "2008/06/30", "1978/12/22"
Ano com dois dígitos, mês e dia com traços | yy "-" MM "-" DD | "08-06-30", "78-12-22"
Ano com quatro dígitos, com sinal opcional, mês e dia | [+-]? YY "-" MM "-" DD | "-0002-07-26", "+1978-04-17", "1814-05-17"
Ano com 5+ dígitos com sinal, mês e dia | [+-] YYY "-" MM "-" DD | "-81120-02-26", "+20192-04-17"

Nota:

Para os formatos y e yy, anos abaixo de 100 são manipulados de maneira especial quando os símbolos y ou yy são utilizados. Se o ano cair no período de 0 (incluso) a 69 (incluso), 2000 anos são adicionados. Se o ano cair no período de 70 (incluso) a 99 (incluso), então 1900 são adicionados. Isso significa que "00-01-01" será interpretado como "2000-01-01".

Nota:

O formato "Dia, mês e ano com dois dígitos, com pontos ou tabulações" (dd [.\t] mm "." yy) somente funciona para valores de ano que variam 61 (incluso) até 99 (incluso) - fora destes anos, o formato de tempo "HH [.:] MM [.:] SS" possui precedência.

Nota:

O formato "Ano (somente o ano)", somente funcionará se uma string de tempo já foi encontrada -- caso contrário o formato será reconhecida como HH MM.

Cuidado

É possível exceder positivamente e negativamente os formatos dd e DD. Dia 0 corresponde a último dia do mês anterior, assim como excedências positivas contam no próximo mês. Isso faz com que "2008-08-00" seja equivalente a "2008-07-31" e "2008-07-31" seja equivalente a "2008-07-01" (Junho possui somente 30 dias).

Note que o intervalo de dia é restrito a 0-31 como indicado pela expressão regular acima. Por isso, "2008-06-32" não é um string de data válida, por exemplo.

É possível exceder negativamente os formatos mm and MM com o valor 0. O valor de mês 0 corresponde a Dezembro do mês anterior. Como exemplo, "2008-00-22" é equivalente a "2007-12-22".

Se você combinar os dois fatos e exceder negativamente o dia e o mês, o que segue acontece: "2008-00-00" primeiro será convertido para "2007-12-00" que então será convertido para "2007-11-30". Isso também acontece com a string "0000-00-00", que é transformada em "-0001-11-30" (o ano -1 ano calendário ISO 8601, que é 2 anos DC no calendário que antecede o calendário Gregoriano).

Formatos Compostos

Esta página descreve os diferentes formatos compostos de data/hora em uma sintaxe
BNF, que os analisadores de DateTimeImmutable,
DateTime, date_create(),
date_create_immutable() e
strtotime() entendem.

Para formatar objetos DateTimeImmutable e DateTime, favor se referir à documentação do método DateTimeInterface::format().

Símbolos Utilizados
Descrição | Formato | Exemplos
DD | "0" [0-9] | [1-2][0-9] | "3" [01] | "02", "12", "31"
doy | "00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6] | "001", "012", "180", "350", "366"
frac | . [0-9]+ | ".21342", ".85"
hh | "0"?[1-9] | "1"[0-2] | "04", "7", "12"
HH | [01][0-9] | "2"[0-4] | "04", "07", "19"
meridian | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am."
ii | [0-5]?[0-9] | "04", "8", "59"
II | [0-5][0-9] | "04", "08", "59"
M | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' |
MM | [0-1][0-9] | "00", "12"
space | [ \t] |
ss | [0-5]?[0-9]|60 | "04", "8", "59"
SS | [0-5][0-9] | "04", "08", "59", "60" (segundo intercalar)
W | "0"[1-9] | [1-4][0-9] | "5"[0-3] | "05", "17", "53"
tzcorrection | "GMT"? [+-] hh ":"? II? | "+0400", "GMT-07:00", "-07:00"
YY | [0-9]{4} | "2000", "2008", "1978"
Formatos padrões
Descrição | Exemplos
ATOM | "2022-06-02T16:58:35+00:00"
COOKIE | "Thursday, 02-Jun-2022 16:58:35 UTC"
ISO8601 | "2022-06-02T16:58:35+0000"
» RFC 822 | "Thu, 02 Jun 22 16:58:35 +0000"
» RFC 850 | "Thursday, 02-Jun-22 16:58:35 UTC"
» RFC 1036 | "Thu, 02 Jun 22 16:58:35 +0000"
» RFC 1123 | "Thu, 02 Jun 2022 16:58:35 +0000"
» RFC 2822 | "Thu, 02 Jun 2022 16:58:35 +0000"
» RFC 3339 | "2022-06-02T16:58:35+00:00"
» RFC 3339 Extended | "2022-06-02T16:58:35.698+00:00"
» RFC 7231 | "Thu, 02 Jun 2022 16:58:35 GMT"
RSS | "Thu, 02 Jun 2022 16:58:35 +0000"
W3C | "2022-06-02T16:58:35+00:00"
Notações Localizadas
Descrição | Formato | Exemplos
Formato de Log Popular | dd "/" M "/" YY : HH ":" II ":" SS space tzcorrection | "10/Oct/2000:13:55:36 -0700"
EXIF | YY ":" MM ":" DD " " HH ":" II ":" SS | "2008:08:07 18:11:31"
Ano ISO com Semana ISO | YY "-"? "W" W | "2008W27", "2008-W28"
Ano ISO com Semana ISO e dia | YY "-"? "W" W "-"? [0-7] | "2008W273", "2008-W28-3"
MySQL | YY "-" MM "-" DD " " HH ":" II ":" SS | "2008-08-07 18:11:31"
PostgreSQL: Ano com dia do ano | YY "."? doy | "2008.197", "2008197"
SOAP | YY "-" MM "-" DD "T" HH ":" II ":" SS frac tzcorrection? | "2008-07-01T22:35:17.02", "2008-07-01T22:35:17.03+08:00"
Timestamp Unix | "@" "-"? [0-9]+ | "@1215282385"
Timestamp Unix com microssegundos | "@" "-"? [0-9]+ "." [0-9]{0,6} | "@1607974647.503686"
XMLRPC | YY MM DD "T" hh ":" II ":" SS | "20080701T22:38:07", "20080701T9:38:07"
XMLRPC (Compacto) | YY MM DD 't' hh II SS | "20080701t223807", "20080701T093807"
WDDX | YY "-" mm "-" dd "T" hh ":" ii ":" ss | "2008-7-1T9:3:37"

Nota:

O "W" nos formatos "Ano ISO com semana ISO" e "Ano ISO com semana ISO e dia" são case-sensitive, você só pode usar o "W" maiúsculo.

O "T", nos formatos SOAP, XMLRPC e WDDX é case-sensitive, só se pode utilizar o "T" maiúsculo.

O formato "Timestamp Unix" define o fuso horário para UTC.

Formatos relativos

Esta página descreve os diferentes formatos de data/hora relativos em uma sintaxe BNF,
que os analisadores de DateTimeImmutable,
DateTime, date_create(),
date_create_immutable() e
strtotime() entendem.

Para formatar objetos DateTimeImmutable e DateTime, favor se referir à documentação do método DateTimeInterface::format().

Símbolos Utilizados
Descrição | Formato
dayname | 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat'
daytext | 'weekday' | 'weekdays'
number | [+-]?[0-9]+
ordinal | 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' | 'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' | 'next' | 'last' | 'previous' | 'this'
reltext | 'next' | 'last' | 'previous' | 'this'
space | [ \t]+
unit | 'ms' | 'µs' | (( 'msec' | 'millisecond' | 'µsec' | 'microsecond' | 'usec' | 'sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | 'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' | daytext
Notação baseada no dia
Formato | Descrição | Examplos
'yesterday' | Meia-noite de ontem | "yesterday 14:00"
'midnight' | A hora é configurada para 00:00:00 |
'today' | A hora é configurada para 00:00:00 |
'now' | Agora - isto é simplesmente ignorado |
'noon' | A hora é configurada para 12:00:00 | "yesterday noon"
'tomorrow' | Meia-noite de amanhã |
'back of' hour | 15 minutos após a hora informada | "back of 7pm", "back of 15"
'front of' hour | 15 minutos antes da hora informada | "front of 5am", "front of 23"
'first day of' | Define o dia para o primeiro dia do mês atual. Essa frase é normalmente usada da melhor forma em conjunto com um nome de mês, já que ela somente afeta o mês atual. | "first day of January 2008"
'last day of' | Define o dia para o último do mês corrente. Essa frase é normalmente usada da melhor forma em conjunto com um nome de mês, já que ela somente afeta o mês atual. | "last day of next month"
ordinal space dayname space 'of' | Calcula o número ordinal x-th da semana do mês corrente. | "first sat of July 2008"
'last' space dayname space 'of' | Calcular o último dia da semana do mês corrente. | "last sat of July 2008"
number space? (unit | 'week') | Manipula porções de tempo relativas onde o valor seja um número. | "+5 weeks", "12 day", "-7 weekdays"
(ordinal | reltext) space unit | Manipula porções de tempo relativas onde o valor seja um texto. last e previous são equivalentes a -1, this equivalente a nada, e next equivamente a +1. | "fifth day", "second month", "last day", "previous year"
'ago' | Nega todos os valores das porções de tempo relativas anteriores. | "2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago"
dayname | Move para o próximo dia deste nome.(See note) | "Monday"
reltext space 'week' | Manipula o formato especial "weekday + last/this/next week". | "Monday next week"

Nota:

Declarações relativas são sempre processadas depois de declarações não relativas. Isso faz com que "+1 week july 2008" e "july 2008 +1 week" sejam equivalentes.

As exceções desta regra são "yesterday", "midnight", "today", "noon" e "tomorrow". Observe que "tomorrow 11:00" e "11:00 tomorrow" são diferentes. Considerando que a data hoje como "July 23rd, 2008", o primeiro produzirá "2008-07-24 11:00" assim como o segundo produzirá "2008-07-24 00:00". Isso acontece por que as cinco declarações influenciam diretamente o tempo corrente.

Palavras-chave como "first day of" dependem do contexto no qual o string de formato relativo é usado. Se usado com um método ou funcão estáticos, a referência é o timestamp atual do sistema. Entretanto, se usado em DateTime::modify() ou DateTimeImmutable::modify(), a referência é o objeto no qual o método modify() é chamado.

Nota:

Observe as seguintes considerações quando o dia da semana corrente é o mesmo que o dia da semana utilizada na string date/hora. O dia da semana corrente pode ser (re-)calculado para porções não relativas de strings de data/hora.

  1. "dayname" não avança para outro dia. (Examplo: "Wed July 23rd, 2008" referencia "2008-07-23").
  2. "number dayname" não avança para outro dia. (Exemplo: "1 wednesday july 23rd, 2008" referencia "2008-07-23").
  3. "number week dayname" adicionará primeiro o dia da semana, mas not avançará para outro dia. Neste caso, "number week" e "dayname" são dois blocos distintos. (Exemplo: "+1 week wednesday july 23rd, 2008" referencia "2008-07-30").
  4. "ordinal dayname" avançarápara outro dia. (Exemplo "first wednesday july 23rd, 2008" referencia "2008-07-30").
  5. "number week ordinal dayname" adicionará primeiro o número de semanas, e então avançará para outro dia. Neste caso "number week" e "ordinal dayname são dois blocos distintos. (Exemplo: "+1 week first wednesday july 23rd, 2008" referencia "2008-08-06").
  6. "ordinal dayname 'of' " não avança para outro dia. (Exemplo: "first wednesday of july 23rd, 2008" referencia "2008-07-02" porque a frase específica com 'of' redefine o dia do mês para '1' e o '23rd' é ignorado).

Também observe que o "of" em "ordinal space dayname space 'of' " e "'last' space dayname space 'of' " fazem coisas especiais.

  1. Ele definirá o dia do mês para 1.
  2. "ordinal dayname 'of' " não avançará para outro dia. (Exemplo: "first tuesday of july 2008" referencia "2008-07-01").
  3. "ordinal dayname " avançará para outro dia. (Exemplo: "first tuesday july 2008" referencia "2008-07-08", veja também o item 4 na lista acima).
  4. "'last' dayname 'of' " captura o último dayname do mês corrente. (Exemplo: "last wed of july 2008" referencia "2008-07-30")
  5. "'last' dayname" captura o último dayname do mês corrente. (Exemplo: "last wed july 2008" referencia "2008-06-25"; "july 2008" primeiro definirá a data corrente para "2008-07-01" e então "last wed" moverá para a última Quarta-feira que será "2008-06-25").

Nota:

Meses com valores relativos são calculados baseados no tamanho do mês passado. Um exemplo seria "+2 month 2011-11-30",que produziria "2012-01-30". Isso é devido a Novembro tendo 30 dias como tamanho, e Dezembro tendo 31, produzindo um total de 61 dias.

Nota:

number é um número inteiro; se um número decimal é informado, o ponto (ou vírgula) provavelmente será interpretado como delimitador. Por exemplo, '+1.5 hours' é analisado como '+1 5 hours', não como '+1 hour +30 minutes'.

Registro de Alterações

Versão | Descrição
8.2.0 | number não aceita mais múltiplos sinais, ex.: +-2.
7.0.8 | Semanas sempre começam na segunda-feira. Antes, considerava-se que o domingo também poderia começar uma semana.


Lista de Fusos Horários Suportados

Índice

  • África
  • América
  • Antártica
  • Ártico
  • Ásia
  • Atlântico
  • Austrália
  • Europa
  • Índia
  • Pacífico
  • Outros

Aqui pode ser encontrada a lista completa de fusos horários suportados pelo PHP, os quais podem ser usados, por exemplo, com date_default_timezone_set().

Cuidado

O comportamento dos fusos horários não listados aqui é indefinido.

Nota: A versão mais recente do banco de dados de fusos horários pode ser instalada através do pacote PECL » timezonedb.

Nota: Esta lista é baseada na versão do banco de dados de fusos horários 2024.1.


África

África
Africa/Abidjan | Africa/Accra | Africa/Addis_Ababa | Africa/Algiers
Africa/Asmara | Africa/Bamako | Africa/Bangui | Africa/Banjul
Africa/Bissau | Africa/Blantyre | Africa/Brazzaville | Africa/Bujumbura
Africa/Cairo | Africa/Casablanca | Africa/Ceuta | Africa/Conakry
Africa/Dakar | Africa/Dar_es_Salaam | Africa/Djibouti | Africa/Douala
Africa/El_Aaiun | Africa/Freetown | Africa/Gaborone | Africa/Harare
Africa/Johannesburg | Africa/Juba | Africa/Kampala | Africa/Khartoum
Africa/Kigali | Africa/Kinshasa | Africa/Lagos | Africa/Libreville
Africa/Lome | Africa/Luanda | Africa/Lubumbashi | Africa/Lusaka
Africa/Malabo | Africa/Maputo | Africa/Maseru | Africa/Mbabane
Africa/Mogadishu | Africa/Monrovia | Africa/Nairobi | Africa/Ndjamena
Africa/Niamey | Africa/Nouakchott | Africa/Ouagadougou | Africa/Porto-Novo
Africa/Sao_Tome | Africa/Tripoli | Africa/Tunis | Africa/Windhoek


América

América
America/Adak | America/Anchorage | America/Anguilla | America/Antigua
America/Araguaina | America/Argentina/Buenos_Aires | America/Argentina/Catamarca | America/Argentina/Cordoba
America/Argentina/Jujuy | America/Argentina/La_Rioja | America/Argentina/Mendoza | America/Argentina/Rio_Gallegos
America/Argentina/Salta | America/Argentina/San_Juan | America/Argentina/San_Luis | America/Argentina/Tucuman
America/Argentina/Ushuaia | America/Aruba | America/Asuncion | America/Atikokan
America/Bahia | America/Bahia_Banderas | America/Barbados | America/Belem
America/Belize | America/Blanc-Sablon | America/Boa_Vista | America/Bogota
America/Boise | America/Cambridge_Bay | America/Campo_Grande | America/Cancun
America/Caracas | America/Cayenne | America/Cayman | America/Chicago
America/Chihuahua | America/Ciudad_Juarez | America/Costa_Rica | America/Creston
America/Cuiaba | America/Curacao | America/Danmarkshavn | America/Dawson
America/Dawson_Creek | America/Denver | America/Detroit | America/Dominica
America/Edmonton | America/Eirunepe | America/El_Salvador | America/Fort_Nelson
America/Fortaleza | America/Glace_Bay | America/Goose_Bay | America/Grand_Turk
America/Grenada | America/Guadeloupe | America/Guatemala | America/Guayaquil
America/Guyana | America/Halifax | America/Havana | America/Hermosillo
America/Indiana/Indianapolis | America/Indiana/Knox | America/Indiana/Marengo | America/Indiana/Petersburg
America/Indiana/Tell_City | America/Indiana/Vevay | America/Indiana/Vincennes | America/Indiana/Winamac
America/Inuvik | America/Iqaluit | America/Jamaica | America/Juneau
America/Kentucky/Louisville | America/Kentucky/Monticello | America/Kralendijk | America/La_Paz
America/Lima | America/Los_Angeles | America/Lower_Princes | America/Maceio
America/Managua | America/Manaus | America/Marigot | America/Martinique
America/Matamoros | America/Mazatlan | America/Menominee | America/Merida
America/Metlakatla | America/Mexico_City | America/Miquelon | America/Moncton
America/Monterrey | America/Montevideo | America/Montserrat | America/Nassau
America/New_York | America/Nome | America/Noronha | America/North_Dakota/Beulah
America/North_Dakota/Center | America/North_Dakota/New_Salem | America/Nuuk | America/Ojinaga
America/Panama | America/Paramaribo | America/Phoenix | America/Port-au-Prince
America/Port_of_Spain | America/Porto_Velho | America/Puerto_Rico | America/Punta_Arenas
America/Rankin_Inlet | America/Recife | America/Regina | America/Resolute
America/Rio_Branco | America/Santarem | America/Santiago | America/Santo_Domingo
America/Sao_Paulo | America/Scoresbysund | America/Sitka | America/St_Barthelemy
America/St_Johns | America/St_Kitts | America/St_Lucia | America/St_Thomas
America/St_Vincent | America/Swift_Current | America/Tegucigalpa | America/Thule
America/Tijuana | America/Toronto | America/Tortola | America/Vancouver
America/Whitehorse | America/Winnipeg | America/Yakutat |


Antártica

Antártica
Antarctica/Casey | Antarctica/Davis | Antarctica/DumontDUrville | Antarctica/Macquarie
Antarctica/Mawson | Antarctica/McMurdo | Antarctica/Palmer | Antarctica/Rothera
Antarctica/Syowa | Antarctica/Troll | Antarctica/Vostok |


  • « Antártica
  • Ásia »
  • PHP Manual
  • Lista de Fusos Horários Suportados
  • Ártico

Ártico

Ártico
Arctic/Longyearbyen


Ásia

Ásia
Asia/Aden | Asia/Almaty | Asia/Amman | Asia/Anadyr
Asia/Aqtau | Asia/Aqtobe | Asia/Ashgabat | Asia/Atyrau
Asia/Baghdad | Asia/Bahrain | Asia/Baku | Asia/Bangkok
Asia/Barnaul | Asia/Beirut | Asia/Bishkek | Asia/Brunei
Asia/Chita | Asia/Choibalsan | Asia/Colombo | Asia/Damascus
Asia/Dhaka | Asia/Dili | Asia/Dubai | Asia/Dushanbe
Asia/Famagusta | Asia/Gaza | Asia/Hebron | Asia/Ho_Chi_Minh
Asia/Hong_Kong | Asia/Hovd | Asia/Irkutsk | Asia/Jakarta
Asia/Jayapura | Asia/Jerusalem | Asia/Kabul | Asia/Kamchatka
Asia/Karachi | Asia/Kathmandu | Asia/Khandyga | Asia/Kolkata
Asia/Krasnoyarsk | Asia/Kuala_Lumpur | Asia/Kuching | Asia/Kuwait
Asia/Macau | Asia/Magadan | Asia/Makassar | Asia/Manila
Asia/Muscat | Asia/Nicosia | Asia/Novokuznetsk | Asia/Novosibirsk
Asia/Omsk | Asia/Oral | Asia/Phnom_Penh | Asia/Pontianak
Asia/Pyongyang | Asia/Qatar | Asia/Qostanay | Asia/Qyzylorda
Asia/Riyadh | Asia/Sakhalin | Asia/Samarkand | Asia/Seoul
Asia/Shanghai | Asia/Singapore | Asia/Srednekolymsk | Asia/Taipei
Asia/Tashkent | Asia/Tbilisi | Asia/Tehran | Asia/Thimphu
Asia/Tokyo | Asia/Tomsk | Asia/Ulaanbaatar | Asia/Urumqi
Asia/Ust-Nera | Asia/Vientiane | Asia/Vladivostok | Asia/Yakutsk
Asia/Yangon | Asia/Yekaterinburg | Asia/Yerevan |


Atlântico

Atlântico
Atlantic/Azores | Atlantic/Bermuda | Atlantic/Canary | Atlantic/Cape_Verde
Atlantic/Faroe | Atlantic/Madeira | Atlantic/Reykjavik | Atlantic/South_Georgia
Atlantic/St_Helena | Atlantic/Stanley |  |


Austrália

Austrália
Australia/Adelaide | Australia/Brisbane | Australia/Broken_Hill | Australia/Darwin
Australia/Eucla | Australia/Hobart | Australia/Lindeman | Australia/Lord_Howe
Australia/Melbourne | Australia/Perth | Australia/Sydney |


Europa

Europa
Europe/Amsterdam | Europe/Andorra | Europe/Astrakhan | Europe/Athens
Europe/Belgrade | Europe/Berlin | Europe/Bratislava | Europe/Brussels
Europe/Bucharest | Europe/Budapest | Europe/Busingen | Europe/Chisinau
Europe/Copenhagen | Europe/Dublin | Europe/Gibraltar | Europe/Guernsey
Europe/Helsinki | Europe/Isle_of_Man | Europe/Istanbul | Europe/Jersey
Europe/Kaliningrad | Europe/Kirov | Europe/Kyiv | Europe/Lisbon
Europe/Ljubljana | Europe/London | Europe/Luxembourg | Europe/Madrid
Europe/Malta | Europe/Mariehamn | Europe/Minsk | Europe/Monaco
Europe/Moscow | Europe/Oslo | Europe/Paris | Europe/Podgorica
Europe/Prague | Europe/Riga | Europe/Rome | Europe/Samara
Europe/San_Marino | Europe/Sarajevo | Europe/Saratov | Europe/Simferopol
Europe/Skopje | Europe/Sofia | Europe/Stockholm | Europe/Tallinn
Europe/Tirane | Europe/Ulyanovsk | Europe/Vaduz | Europe/Vatican
Europe/Vienna | Europe/Vilnius | Europe/Volgograd | Europe/Warsaw
Europe/Zagreb | Europe/Zurich |  |


Índia

Índia
Indian/Antananarivo | Indian/Chagos | Indian/Christmas | Indian/Cocos
Indian/Comoro | Indian/Kerguelen | Indian/Mahe | Indian/Maldives
Indian/Mauritius | Indian/Mayotte | Indian/Reunion |


Pacífico

Pacífico
Pacific/Apia | Pacific/Auckland | Pacific/Bougainville | Pacific/Chatham
Pacific/Chuuk | Pacific/Easter | Pacific/Efate | Pacific/Fakaofo
Pacific/Fiji | Pacific/Funafuti | Pacific/Galapagos | Pacific/Gambier
Pacific/Guadalcanal | Pacific/Guam | Pacific/Honolulu | Pacific/Kanton
Pacific/Kiritimati | Pacific/Kosrae | Pacific/Kwajalein | Pacific/Majuro
Pacific/Marquesas | Pacific/Midway | Pacific/Nauru | Pacific/Niue
Pacific/Norfolk | Pacific/Noumea | Pacific/Pago_Pago | Pacific/Palau
Pacific/Pitcairn | Pacific/Pohnpei | Pacific/Port_Moresby | Pacific/Rarotonga
Pacific/Saipan | Pacific/Tahiti | Pacific/Tarawa | Pacific/Tongatapu
Pacific/Wake | Pacific/Wallis |  |


Outros

Aviso

Não use nenhum dos fusos horários listados aqui (exceto o UTC), pois eles existem apenas por motivos de compatibilidade com versões anteriores e podem ter comportamento errôneo. Além disso, esses fusos horários podem ser removidos do banco de dados de fusos horários da IANA a qualquer momento.

Aviso

Se o aviso acima for desconsiderado, observe também que o banco de dados de fusos horários da IANA que fornece suporte aos fusos horários do PHP usa sinais no estilo POSIX, o que resulta nos fusos horários Etc/GMT+n e Etc/GMT-n sendo invertidos do uso comum.

Por exemplo, o fuso horário 8 horas à frente do GMT usado na China e na Austrália Ocidental (entre outros lugares) é, na verdade, Etc/GMT-8 neste banco de dados, e não Etc/GMT+8, como normalmente esperado.

Novamente, é altamente recomendável que seja usado o fuso horário correto para sua localização, como Asia/Shanghai ou Australia/Perth nos exemplos acima.

Outros
Africa/Asmera | Africa/Timbuktu | America/Argentina/ComodRivadavia | America/Atka
America/Buenos_Aires | America/Catamarca | America/Coral_Harbour | America/Cordoba
America/Ensenada | America/Fort_Wayne | America/Godthab | America/Indianapolis
America/Jujuy | America/Knox_IN | America/Louisville | America/Mendoza
America/Montreal | America/Nipigon | America/Pangnirtung | America/Porto_Acre
America/Rainy_River | America/Rosario | America/Santa_Isabel | America/Shiprock
America/Thunder_Bay | America/Virgin | America/Yellowknife | Antarctica/South_Pole
Asia/Ashkhabad | Asia/Calcutta | Asia/Chongqing | Asia/Chungking
Asia/Dacca | Asia/Harbin | Asia/Istanbul | Asia/Kashgar
Asia/Katmandu | Asia/Macao | Asia/Rangoon | Asia/Saigon
Asia/Tel_Aviv | Asia/Thimbu | Asia/Ujung_Pandang | Asia/Ulan_Bator
Atlantic/Faeroe | Atlantic/Jan_Mayen | Australia/ACT | Australia/Canberra
Australia/Currie | Australia/LHI | Australia/North | Australia/NSW
Australia/Queensland | Australia/South | Australia/Tasmania | Australia/Victoria
Australia/West | Australia/Yancowinna | Brazil/Acre | Brazil/DeNoronha
Brazil/East | Brazil/West | Canada/Atlantic | Canada/Central
Canada/Eastern | Canada/Mountain | Canada/Newfoundland | Canada/Pacific
Canada/Saskatchewan | Canada/Yukon | CET | Chile/Continental
Chile/EasterIsland | CST6CDT | Cuba | EET
Egypt | Eire | EST | EST5EDT
Etc/GMT | Etc/GMT+0 | Etc/GMT+1 | Etc/GMT+10
Etc/GMT+11 | Etc/GMT+12 | Etc/GMT+2 | Etc/GMT+3
Etc/GMT+4 | Etc/GMT+5 | Etc/GMT+6 | Etc/GMT+7
Etc/GMT+8 | Etc/GMT+9 | Etc/GMT-0 | Etc/GMT-1
Etc/GMT-10 | Etc/GMT-11 | Etc/GMT-12 | Etc/GMT-13
Etc/GMT-14 | Etc/GMT-2 | Etc/GMT-3 | Etc/GMT-4
Etc/GMT-5 | Etc/GMT-6 | Etc/GMT-7 | Etc/GMT-8
Etc/GMT-9 | Etc/GMT0 | Etc/Greenwich | Etc/UCT
Etc/Universal | Etc/UTC | Etc/Zulu | Europe/Belfast
Europe/Kiev | Europe/Nicosia | Europe/Tiraspol | Europe/Uzhgorod
Europe/Zaporozhye | Factory | GB | GB-Eire
GMT | GMT+0 | GMT-0 | GMT0
Greenwich | Hongkong | HST | Iceland
Iran | Israel | Jamaica | Japan
Kwajalein | Libya | MET | Mexico/BajaNorte
Mexico/BajaSur | Mexico/General | MST | MST7MDT
Navajo | NZ | NZ-CHAT | Pacific/Enderbury
Pacific/Johnston | Pacific/Ponape | Pacific/Samoa | Pacific/Truk
Pacific/Yap | Poland | Portugal | PRC
PST8PDT | ROC | ROK | Singapore
Turkey | UCT | Universal | US/Alaska
US/Aleutian | US/Arizona | US/Central | US/East-Indiana
US/Eastern | US/Hawaii | US/Indiana-Starke | US/Michigan
US/Mountain | US/Pacific | US/Samoa | UTC
W-SU | WET | Zulu |


A classe DateError

(PHP 8 >= 8.3.0)

Introdução

Disparada quando o banco de dados de fuso horário não for encontrado ou contiver dados inválidos.

Este erro nunca deveria ocorrer, e não é dependente do código. Existem duas exceções-filhas (DateObjectError e DateRangeError) que são disparadas dependendo do erro do programados ou de problemas relacionados a faixas de datas.

Resumo da classe

class DateError extends Error {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Veja Também

  • DateObjectError
  • DateRangeError


A classe DateObjectError

(PHP 8 >= 8.3.0)

Introdução

Disparada quando uma das classe de Data/Hora não foi corretamente inicializada.

Como as classes de Data/Hora não são finais, eles podem ser herdadas. Quando um construtor da classe pai não é chamado, este erro é disparado. Este é sempre um erro de programação.

Resumo da classe

class DateObjectError extends DateError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Veja Também

  • DateError
  • DateRangeError


A classe DateRangeError

(PHP 8 >= 8.3.0)

Introdução

Disparada por DateTime::getTimestamp(), DateTimeImmutable::getTimestamp() e date_timestamp_get()em plataformas de 32 bits se o objeto representa uma data fora da faixa de inteiros de 32 bits com sinal.

Resumo da classe

class DateRangeError extends DateError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Veja Também

  • DateError
  • DateObjectError


A classe DateException

(PHP 8 >= 8.3.0)

Introdução

Classe pai das exceções de Data/Hora, para problemas que surgem devido a entradas do usuário ou argumentos texto em formato livre que precisam ser analisados.

As exceções-filhas a seguir são disparadas pela extensão:

  • DateInvalidOperationException
  • DateInvalidTimezoneException
  • DateMalformedIntervalStringException
  • DateMalformedPeriodStringException
  • DateMalformedStringException

Resumo da classe

class DateException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe DateInvalidOperationException

(PHP 8 >= 8.3.0)

Introdução

Disparada por DateTimeImmutable::sub() e DateTime::sub() quando uma operação não suportada é solicitada.

Um exemplo de operação não suportada é o uso de um objeto DateInterval representando especificação de tempo relativo como next weekday, que não permite construir um objeto por ser inválido.

Resumo da classe

class DateInvalidOperationException extends DateException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe DateInvalidTimeZoneException

(PHP 8 >= 8.3.0)

Introdução

Disparada quando um valor incorreto é passado para DateTimeZone::__construct().

Resumo da classe

class DateInvalidTimeZoneException extends DateException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The DateMalformedIntervalStringException class

(PHP 8 >= 8.3.0)

Introdução

Disparada quando um argumento duration inválido é passado para DateInterval::__construct().

Resumo da classe

class DateMalformedIntervalStringException extends DateException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe DateMalformedPeriodStringException

(PHP 8 >= 8.3.0)

Introdução

Disparaqa quando um argumento isostr inválido é passado para DatePeriod::__construct().

Resumo da classe

class DateMalformedPeriodStringException extends DateException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe DateMalformedStringException

(PHP 8 >= 8.3.0)

Introdução

Disparada quando uma string inválida de Data/Hora é detectada.

Pode ser um valor para
DateTimeImmutable::__construct(),
DateTimeImmutable::modify(),
DateTime::__construct() ou
DateTime::modify().

Resumo da classe

class DateMalformedStringException extends DateException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


High resolution timing

  • Introdução
  • Instalação/Configuração
    • Instalação
  • Exemplos
    • Basic usage
  • HRTime\PerformanceCounter — The HRTime\PerformanceCounter class
    • HRTime\PerformanceCounter::getFrequency — Timer frequency in ticks per second
    • HRTime\PerformanceCounter::getTicks — Current ticks from the system
    • HRTime\PerformanceCounter::getTicksSince — Ticks elapsed since the given value
  • HRTime\StopWatch — The HRTime\StopWatch class
    • HRTime\StopWatch::getElapsedTicks — Get elapsed ticks for all intervals
    • HRTime\StopWatch::getElapsedTime — Get elapsed time for all intervals
    • HRTime\StopWatch::getLastElapsedTicks — Get elapsed ticks for the last interval
    • HRTime\StopWatch::getLastElapsedTime — Get elapsed time for the last interval
    • HRTime\StopWatch::isRunning — Whether the measurement is running
    • HRTime\StopWatch::start — Start time measurement
    • HRTime\StopWatch::stop — Stop time measurement
  • HRTime\Unit — The HRTime\Unit class


Introdução

The HRTime extension implements a high resolution StopWatch class. It uses the best possible APIs on different platforms which brings resolution up to nanoseconds. It also makes possible to implement a custom stopwatch using low level ticks delivered by the underlying APIs.

Nota: As of PHP 7.3.0 the related function hrtime() is part of the core.


  • « Introdução
  • Instalação »
  • PHP Manual
  • HRTime
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Instalação


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/hrtime.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/hrtime/.


  • « Instalação
  • Basic usage »
  • PHP Manual
  • HRTime
  • Exemplos

Exemplos

Índice

  • Basic usage


Basic usage

The example illustrates the basic StopWatch class usage

Exemplo #1 Measure several code blocks execution and get the total

<?php

$c = new HRTime\StopWatch;

$c->start();
/* measure this code block execution */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed0 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

/* measurement is not running here*/
for ($i = 0; $i < 1024*1024; $i++);

$c->start();
/* measure this code block execution */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed1 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

$elapsed_total = $c->getElapsedTime(HRTime\Unit::NANOSECOND);

?>


The HRTime\PerformanceCounter class

(PECL hrtime >= 0.4.3)

Introdução

Resumo da classe

class HRTime\PerformanceCounter {
/* Métodos */
public static getFrequency(): int
public static getTicks(): int
public static getTicksSince(int $start): int
}

Índice

  • HRTime\PerformanceCounter::getFrequency — Timer frequency in ticks per second
  • HRTime\PerformanceCounter::getTicks — Current ticks from the system
  • HRTime\PerformanceCounter::getTicksSince — Ticks elapsed since the given value


Timer frequency in ticks per second

  • « HRTime\PerformanceCounter
  • HRTime\PerformanceCounter::getTicks »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Timer frequency in ticks per second

HRTime\PerformanceCounter::getFrequency

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::getFrequency — Timer frequency in ticks per second

Descrição

public static HRTime\PerformanceCounter::getFrequency(): int

Returns the timer frequency in ticks per second. This value is constant after the system start on almost any operating system.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns int indicating the timer frequency.


Current ticks from the system

  • « HRTime\PerformanceCounter::getFrequency
  • HRTime\PerformanceCounter::getTicksSince »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Current ticks from the system

HRTime\PerformanceCounter::getTicks

(PECL hrtime >= 0.6.0)

HRTime\PerformanceCounter::getTicks — Current ticks from the system

Descrição

public static HRTime\PerformanceCounter::getTicks(): int

Returns the ticks count.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns int indicating the ticks count.


Ticks elapsed since the given value

  • « HRTime\PerformanceCounter::getTicks
  • HRTime\StopWatch »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Ticks elapsed since the given value

HRTime\PerformanceCounter::getTicksSince

(PECL hrtime >= 0.6.0)

HRTime\PerformanceCounter::getTicksSince — Ticks elapsed since the given value

Descrição

public static HRTime\PerformanceCounter::getTicksSince(int $start): int

Returns the ticks count elapsed since the given start value.

Parâmetros

start

Starting ticks value.

Valor Retornado

Returns int indicating the ticks count.


The HRTime\StopWatch class

(PECL hrtime >= 0.4.3)

Introdução

Resumo da classe

class HRTime\StopWatch extends HRTime\PerformanceCounter {
/* Métodos */
public getElapsedTicks(): int
public getElapsedTime(int $unit = ?): float
public getLastElapsedTicks(): int
public getLastElapsedTime(int $unit = ?): float
public isRunning(): bool
public start(): void
public stop(): void
/* Métodos herdados */
public static HRTime\PerformanceCounter::getFrequency(): int
public static HRTime\PerformanceCounter::getTicks(): int
public static HRTime\PerformanceCounter::getTicksSince(int $start): int
}

Índice

  • HRTime\StopWatch::getElapsedTicks — Get elapsed ticks for all intervals
  • HRTime\StopWatch::getElapsedTime — Get elapsed time for all intervals
  • HRTime\StopWatch::getLastElapsedTicks — Get elapsed ticks for the last interval
  • HRTime\StopWatch::getLastElapsedTime — Get elapsed time for the last interval
  • HRTime\StopWatch::isRunning — Whether the measurement is running
  • HRTime\StopWatch::start — Start time measurement
  • HRTime\StopWatch::stop — Stop time measurement


Get elapsed ticks for all intervals

  • « HRTime\StopWatch
  • HRTime\StopWatch::getElapsedTime »
  • PHP Manual
  • HRTime\StopWatch
  • Get elapsed ticks for all intervals

HRTime\StopWatch::getElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getElapsedTicks — Get elapsed ticks for all intervals

Descrição

public HRTime\StopWatch::getElapsedTicks(): int

Get elapsed ticks for all the previously closed intervals.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns int indicating elapsed ticks.


Get elapsed time for all intervals

  • « HRTime\StopWatch::getElapsedTicks
  • HRTime\StopWatch::getLastElapsedTicks »
  • PHP Manual
  • HRTime\StopWatch
  • Get elapsed time for all intervals

HRTime\StopWatch::getElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getElapsedTime — Get elapsed time for all intervals

Descrição

public HRTime\StopWatch::getElapsedTime(int $unit = ?): float

Get elapsed time for all the previously closed intervals.

Parâmetros

unit

Time unit represented by a HRTime\Unit constant. Default is HRTime\Unit::SECOND.

Valor Retornado

Returns float indicating elapsed time.


Get elapsed ticks for the last interval

  • « HRTime\StopWatch::getElapsedTime
  • HRTime\StopWatch::getLastElapsedTime »
  • PHP Manual
  • HRTime\StopWatch
  • Get elapsed ticks for the last interval

HRTime\StopWatch::getLastElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getLastElapsedTicks — Get elapsed ticks for the last interval

Descrição

public HRTime\StopWatch::getLastElapsedTicks(): int

Get elapsed ticks for the previously closed interval.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns int indicating elapsed ticks.


Get elapsed time for the last interval

  • « HRTime\StopWatch::getLastElapsedTicks
  • HRTime\StopWatch::isRunning »
  • PHP Manual
  • HRTime\StopWatch
  • Get elapsed time for the last interval

HRTime\StopWatch::getLastElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getLastElapsedTime — Get elapsed time for the last interval

Descrição

public HRTime\StopWatch::getLastElapsedTime(int $unit = ?): float

Get elapsed time for the previously closed interval.

Parâmetros

unit

Time unit represented by a HRTime\Unit constant. Default is HRTime\Unit::SECOND.

Valor Retornado

Returns float indicating elapsed time.


Whether the measurement is running

  • « HRTime\StopWatch::getLastElapsedTime
  • HRTime\StopWatch::start »
  • PHP Manual
  • HRTime\StopWatch
  • Whether the measurement is running

HRTime\StopWatch::isRunning

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::isRunning — Whether the measurement is running

Descrição

public HRTime\StopWatch::isRunning(): bool

Reveals whether the measurement was started.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns bool indicating whether the measurement is running.


Start time measurement

  • « HRTime\StopWatch::isRunning
  • HRTime\StopWatch::stop »
  • PHP Manual
  • HRTime\StopWatch
  • Start time measurement

HRTime\StopWatch::start

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::start — Start time measurement

Descrição

public HRTime\StopWatch::start(): void

Starts the time measurement. It has no effect if the measurement was already started. The measurement will be continued if it was previously stopped.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns void.


Stop time measurement

  • « HRTime\StopWatch::start
  • HRTime\Unit »
  • PHP Manual
  • HRTime\StopWatch
  • Stop time measurement

HRTime\StopWatch::stop

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::stop — Stop time measurement

Descrição

public HRTime\StopWatch::stop(): void

Stop the time measurement for the previously started interval.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns void.


The HRTime\Unit class

(PECL hrtime >= 0.4.3)

Introdução

Resumo da classe

class HRTime\Unit {
/* Constantes */
const int SECOND = 0;
const int MILLISECOND = 1;
const int MICROSECOND = 2;
const int NANOSECOND = 3;
/* Métodos */
}

Constantes pré-definidas

HRTime\Unit::SECOND

HRTime\Unit::MILLISECOND

HRTime\Unit::MICROSECOND

HRTime\Unit::NANOSECOND


Extensões Relacionadas a Sistema de Arquivo

  • IO Direto
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • IO Direto Funções
  • Diretórios
    • Instalação/Configuração
    • Constantes pré-definidas
    • Directory — A classe Directory
    • Funções de Diretórios
  • Fileinfo — Informações do arquivo
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções da Fileinfo
    • finfo — A classe finfo
  • Extensão Filesystem (Sistema de Arquivos)
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções do sistema de arquivos
  • Inotify
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Inotify Funções
  • xattr
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções da xattr
  • xdiff
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • xdiff Funções


IO Direto

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • IO Direto Funções
    • dio_close — Fecha o descritor de arquivo fornecido por fd
    • dio_fcntl — Realiza uma chamada à função fcntl da biblioteca C em fd
    • dio_open — Abre um arquivo (criando-o, se necessário) em um nível mais baixo do que as funções de entrada/saída da biblioteca C permitem
    • dio_read — Lê bytes de um descritor de arquivo
    • dio_seek — Move-se para a posição pos no descritor de arquivo (fd) a partir de whence
    • dio_stat — Obtém informações estatísticas sobre o descritor de arquivo fd
    • dio_tcsetattr — Define os atributos do terminal e a taxa de transmissão para uma porta serial
    • dio_truncate — Trunca o descritor de arquivo fd para o deslocamento em bytes
    • dio_write — Escreve dados em fd com opção de truncamento no comprimento


Introdução

O PHP oferece suporte às funções de I/O direto, conforme descrito no Padrão Posix (Seção 6), para realizar funções de I/O em um nível mais baixo do que as funções de I/O de fluxo da linguagem C (fopen(), fread(),..). O uso das funções DIO deve ser considerado apenas quando é necessário o controle direto de um dispositivo. Em todos os outros casos, as funções padrão do sistema de arquivos são mais do que adequadas.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/dio.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Um tipo de recurso é definido por esta extensão: um descritor de arquivo retornado por dio_open().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

F_DUPFD (int)

F_GETFD (int)

F_GETFL (int)

F_GETLK (int)

F_GETOWN (int)

F_RDLCK (int)

F_SETFL (int)

F_SETLK (int)

F_SETLKW (int)

F_SETOWN (int)

F_UNLCK (int)

F_WRLCK (int)

O_APPEND (int)

O_ASYNC (int)

O_CREAT (int)

O_EXCL (int)

O_NDELAY (int)

O_NOCTTY (int)

O_NONBLOCK (int)

O_RDONLY (int)

O_RDWR (int)

O_SYNC (int)

O_TRUNC (int)

O_WRONLY (int)

S_IRGRP (int)

S_IROTH (int)

S_IRUSR (int)

S_IRWXG (int)

S_IRWXO (int)

S_IRWXU (int)

S_IWGRP (int)

S_IWOTH (int)

S_IWUSR (int)

S_IXGRP (int)

S_IXOTH (int)

S_IXUSR (int)


IO Direto Funções

Índice

  • dio_close — Fecha o descritor de arquivo fornecido por fd
  • dio_fcntl — Realiza uma chamada à função fcntl da biblioteca C em fd
  • dio_open — Abre um arquivo (criando-o, se necessário) em um nível mais baixo do que as funções de entrada/saída da biblioteca C permitem
  • dio_read — Lê bytes de um descritor de arquivo
  • dio_seek — Move-se para a posição pos no descritor de arquivo (fd) a partir de whence
  • dio_stat — Obtém informações estatísticas sobre o descritor de arquivo fd
  • dio_tcsetattr — Define os atributos do terminal e a taxa de transmissão para uma porta serial
  • dio_truncate — Trunca o descritor de arquivo fd para o deslocamento em bytes
  • dio_write — Escreve dados em fd com opção de truncamento no comprimento


Fecha o descritor de arquivo fornecido por fd

  • « IO Direto Funções
  • dio_fcntl »
  • PHP Manual
  • IO Direto Funções
  • Fecha o descritor de arquivo fornecido por fd

dio_close

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_close — Fecha o descritor de arquivo fornecido por fd

Descrição

dio_close(resource $fd): void

A função dio_close() fecha o descritor de arquivo fd.

Parâmetros

fd

O descritor de arquivo retornado por dio_open().

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Fechando um descritor de arquivo aberto

<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_close($fd);
?>

Veja Também

  • dio_open() - Abre um arquivo (criando-o, se necessário) em um nível mais baixo do que as funções de entrada/saída da biblioteca C permitem


Realiza uma chamada à função fcntl da biblioteca C em fd

  • « dio_close
  • dio_open »
  • PHP Manual
  • IO Direto Funções
  • Realiza uma chamada à função fcntl da biblioteca C em fd

dio_fcntl

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_fcntl — Realiza uma chamada à função fcntl da biblioteca C em fd

Descrição

dio_fcntl(resource $fd, int $cmd, mixed $args = ?): mixed

A função dio_fcntl() realiza a operação especificada por cmd no descritor de arquivo fd. Alguns comandos exigem que argumentos adicionais args sejam fornecidos.

Parâmetros

fd

O descritor de arquivo retornado por dio_open().

cmd

Pode ser uma das seguintes operações:

  • F_SETLK - A trava é definida ou removida. Se a trava estiver sendo mantida por outra pessoa, dio_fcntl() retorna -1.

  • F_SETLKW - semelhante a F_SETLK, mas caso a trava esteja sendo mantida por outra pessoa, dio_fcntl() aguarda até que a trava seja liberada.

  • F_GETLK - dio_fcntl() retorna um array associativo (conforme descrito abaixo) se alguém mais estiver impedindo a trava. Se não houver obstrução, a chave "type" será definida como F_UNLCK.

  • F_DUPFD - encontra o menor número de descritor de arquivo disponível maior ou igual a args e os retorna.

  • F_SETFL - Define as flags do descritor de arquivo para o valor especificado por args, que pode ser O_APPEND, O_NONBLOCK ou O_ASYNC. Para usar O_ASYNC você precisará usar PCNTL (extensão).

args

args é um array associativo, quando cmd é F_SETLK ou F_SETLLW, com as seguintes chaves:

  • start - offset onde a trava começa

  • length - tamanho da área travada. Zero significa até o final do arquivo

  • whence - Onde l_start é relativo a: pode ser SEEK_SET, SEEK_END e SEEK_CUR

  • type - tipo de trava: pode ser F_RDLCK (trava de leitura), F_WRLCK (trava de escrita) ou F_UNLCK (destrava)

Valor Retornado

Retorna o resultado da chamada C.

Exemplos

Exemplo #1 Definindo e removendo uma trava

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
// o descritor de arquivo parece estar trancado
echo "The lock can not be cleared. It is held by someone else.";
} else {
echo "Lock successfully set/cleared";
}

dio_close($fd);
?>

Notas

Nota: Esta função não foi implementada em plataformas Windows.


Abre um arquivo (criando-o, se necessário) em um nível mais baixo do que as funções de entrada/saída da biblioteca C permitem

  • « dio_fcntl
  • dio_read »
  • PHP Manual
  • IO Direto Funções
  • Abre um arquivo (criando-o, se necessário) em um nível mais baixo do que as funções de entrada/saída da biblioteca C permitem

dio_open

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_open — Abre um arquivo (criando-o, se necessário) em um nível mais baixo do que as funções de entrada/saída da biblioteca C permitem

Descrição

dio_open(string $filename, int $flags, int $mode = 0): resource

dio_open() abre um arquivo e retorna um novo descritor de arquivo para ele.

Parâmetros

filename

O caminho do arquivo a ser aberto.

flags

O parâmetro flags é um valor resultante da operação OR bit a bit compreendendo flags da seguinte lista. Esse valor deve incluir um dos O_RDONLY, O_WRONLY ou O_RDWR. Adicionalmente, pode incluir qualquer combinação de outras flags desta lista.

  • O_RDONLY - abre o arquivo para acesso somente leitura.

  • O_WRONLY - abre o arquivo para escrita.

  • O_RDWR - abre o arquivo para leitura e escrita.

  • O_CREAT - cria o arquivo, se ele ainda não existe.

  • O_EXCL - se ambos O_CREAT e O_EXCL estiverem definidos e o arquivo já existir, dio_open() falhará.

  • O_TRUNC - se o arquivo existir e for aberto para acesso de escrita, o arquivo será truncado para o comprimento zero.

  • O_APPEND - operações de escrita gravam dados no final do arquivo.

  • O_NONBLOCK - define o modo não bloqueante.

  • O_NOCTTY - impede que o sistema operacional atribua o arquivo aberto como o terminal de controle do processo ao abrir um arquivo de dispositivo TTY.

mode

Se flags contiver O_CREAT, mode definirá as permissões do arquivo (permissões de criação). mode é necessário para a operação correta quando O_CREAT é especificado em flags e é ignorado caso contrário.

As permissões reais atribuídas ao arquivo criado serão afetadas pela configuração do umask do processo como de costume.

Valor Retornado

Um descritor de arquivo ou false em caso de erro.

Exemplos

Exemplo #1 Abrindo um descritor de arquivo

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_close($fd);
?>

Veja Também

  • dio_close() - Fecha o descritor de arquivo fornecido por fd


Lê bytes de um descritor de arquivo

  • « dio_open
  • dio_seek »
  • PHP Manual
  • IO Direto Funções
  • Lê bytes de um descritor de arquivo

dio_read

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_read — Lê bytes de um descritor de arquivo

Descrição

dio_read(resource $fd, int $len = 1024): string

A função dio_read() lê e retorna len bytes do arquivo com descritor fd.

Parâmetros

fd

O descritor de arquivo retornado por dio_open().

len

O número de bytes a serem lidos. Se não especificado, dio_read() lê um bloco de tamanho 1K.

Valor Retornado

Os bytes lidos de fd.

Veja Também

  • dio_write() - Escreve dados em fd com opção de truncamento no comprimento


Move-se para a posição pos no descritor de arquivo (fd) a partir de whence

  • « dio_read
  • dio_stat »
  • PHP Manual
  • IO Direto Funções
  • Move-se para a posição pos no descritor de arquivo (fd) a partir de whence

dio_seek

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_seek — Move-se para a posição pos no descritor de arquivo (fd) a partir de whence

Descrição

dio_seek(resource $fd, int $pos, int $whence = SEEK_SET): int

A função dio_seek() é usada para alterar a posição do arquivo associada ao descritor de arquivo fornecido.

Parâmetros

fd

O descritor de arquivo retornado por dio_open().

pos

A nova posição.

whence

Especifica como a posição pos deve ser interpretada:

  • SEEK_SET (padrão) - especifica que pos é especificado a partir do início do arquivo.

  • SEEK_CUR - Especifica que pos é um contador de caracteres a partir da posição atual do arquivo. Esse contador pode ser positivo ou negativo.

  • SEEK_END - Especifica que pos é um contador de caracteres a partir do final do arquivo. Um contador negativo especifica uma posição dentro da extensão atual do arquivo; um contador positivo especifica uma posição além do final atual. Se você definir a posição além do final atual e realmente gravar dados, você estenderá o arquivo com zeros até aquela posição.

Valor Retornado

Exemplos

Exemplo #1 Posicionamento em um arquivo

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_seek($fd, 10, SEEK_SET);
// a posição agora está em 10 caracteres a partir do início do arquivo

dio_seek($fd, -2, SEEK_CUR);
// a posição agora está em 8 caracteres a partir do início do arquivo

dio_seek($fd, -5, SEEK_END);
// a posição agora está em 5 caracteres do final do arquivo

dio_seek($fd, 10, SEEK_END);
// a posição agora está em 10 caracteres além do final do arquivo.
// Os 10 caracteres entre o final do arquivo e a posição atual
// são preenchidos com zeros.

dio_close($fd);
?>


Obtém informações estatísticas sobre o descritor de arquivo fd

  • « dio_seek
  • dio_tcsetattr »
  • PHP Manual
  • IO Direto Funções
  • Obtém informações estatísticas sobre o descritor de arquivo fd

dio_stat

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_stat — Obtém informações estatísticas sobre o descritor de arquivo fd

Descrição

dio_stat(resource $fd): array

dio_stat() retorna informações sobre o descritor de arquivo fornecido.

Parâmetros

fd

O descritor de arquivo retornado por dio_open().

Valor Retornado

Retorna um array associativo com as seguintes chaves:

  • "device" - dispositivo

  • "inode" - inode

  • "mode" - modo

  • "nlink" - número de links físicos

  • "uid" - id do usuário

  • "gid" - id do grupo

  • "device_type" - tipo de dispositivo (se inode for um dispositivo)

  • "size" - tamanho total em bytes

  • "blocksize" - tamanho do bloco

  • "blocks" - número de blocos alocados

  • "atime" - hora do último acesso

  • "mtime" - hora da última modificação

  • "ctime" - hora da última alteração

Em caso de erro dio_stat() retorna null.


Define os atributos do terminal e a taxa de transmissão para uma porta serial

  • « dio_stat
  • dio_truncate »
  • PHP Manual
  • IO Direto Funções
  • Define os atributos do terminal e a taxa de transmissão para uma porta serial

dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5 < 5.1.0)

dio_tcsetattr — Define os atributos do terminal e a taxa de transmissão para uma porta serial

Descrição

dio_tcsetattr(resource $fd, array $options): bool

dio_tcsetattr() define os atributos do terminal e a taxa de transmissão do fd aberto.

Parâmetros

fd

O descritor de arquivo retornado por dio_open().

options

As opções atualmente disponíveis são:

  • 'baud' - taxa de transmissão da porta - pode ser 38400,19200,9600,4800,2400,1800, 1200,600,300,200,150,134,110,75 ou 50. O valor padrão é 9600.

  • 'bits' - bits de dados - pode ser 8,7,6 ou 5. O valor padrão é 8.

  • 'stop' - bits de parada - pode ser 1 ou 2. O valor padrão é 1.

  • 'parity' - pode ser 0,1 ou 2. O valor padrão é 0.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Configurando a taxa de transmissão em uma porta serial

<?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;
}
}

?>

Notas

Nota: Esta função não foi implementada em plataformas Windows.


Trunca o descritor de arquivo fd para o deslocamento em bytes

  • « dio_tcsetattr
  • dio_write »
  • PHP Manual
  • IO Direto Funções
  • Trunca o descritor de arquivo fd para o deslocamento em bytes

dio_truncate

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_truncate — Trunca o descritor de arquivo fd para o deslocamento em bytes

Descrição

dio_truncate(resource $fd, int $offset): bool

dio_truncate() trunca um arquivo para no máximo offset bytes de tamanho.

Se o arquivo era anteriormente maior do que esse tamanho, os dados extras são perdidos. Se o arquivo era anteriormente menor, não é especificado se o arquivo permanece inalterado ou é estendido. No último caso, a parte estendida é preenchida com bytes zero.

Parâmetros

fd

O descritor de arquivo retornado por dio_open().

offset

O deslocamento (offset) em bytes

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Nota: Esta função não foi implementada em plataformas Windows.


Escreve dados em fd com opção de truncamento no comprimento

  • « dio_truncate
  • Diretórios »
  • PHP Manual
  • IO Direto Funções
  • Escreve dados em fd com opção de truncamento no comprimento

dio_write

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_write — Escreve dados em fd com opção de truncamento no comprimento

Descrição

dio_write(resource $fd, string $data, int $len = 0): int

A função dio_write() escreve até len bytes de data para o arquivo fd.

Parâmetros

fd

O descritor de arquivo retornado por dio_open().

data

Os dados a serem escritos.

len

O comprimento dos dados a serem escritos em bytes. Se não especificado, a função escreve todos os dados no arquivo especificado.

Valor Retornado

Retorna o número de bytes escritos em fd.

Veja Também

  • dio_read() - Lê bytes de um descritor de arquivo


Diretórios

  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Directory — A classe Directory
    • Directory::close — Fecha o manipulador de diretório
    • Directory::read — Lê entrada de um manipulador de diretório
    • Directory::rewind — Retrocede um manipulador de diretório
  • Funções de Diretórios
    • chdir — Muda o diretório
    • chroot — Muda o diretório raiz
    • closedir — Fecha o manipulador do diretório
    • dir — Retorna uma instância da classe Directory
    • getcwd — Obtém o diretório atual
    • opendir — Abre um manipulador de diretório
    • readdir — Lê entrada do manipulador do diretório
    • rewinddir — Retroceder o manipulador de diretório
    • scandir — Lista arquivos e diretórios dentro do caminho especificado


Constantes pré-definidas

DIRECTORY_SEPARATOR (string)
PATH_SEPARATOR (string)
Ponto-e-vírgula no Windows, dois-pontos nos demais.


A classe Directory

(PHP 4, PHP 5, PHP 7, PHP 8)

Introdução

Instâncias de Directory são criadas chamando-se a função dir(), e não através do operador new.

Resumo da classe

class Directory {
/* Propriedades */
public readonly string $path;
public readonly resource $handle;
/* Métodos */
public close(): void
public read(): string|false
public rewind(): void
}

Propriedades

path

O diretórioque foi aberto.

handle

Pode ser usada com outras funções de diretório como readdir(), rewinddir() e closedir().

Registro de Alterações

Versão | Descrição
8.1.0 | As propriedades path e handle agora são somente-leitura.

Índice

  • Directory::close — Fecha o manipulador de diretório
  • Directory::read — Lê entrada de um manipulador de diretório
  • Directory::rewind — Retrocede um manipulador de diretório


Fecha o manipulador de diretório

  • « Directory
  • Directory::read »
  • PHP Manual
  • Directory
  • Fecha o manipulador de diretório

Directory::close

(PHP 4, PHP 5, PHP 7, PHP 8)

Directory::close — Fecha o manipulador de diretório

Descrição

public Directory::close(): void

Registro de Alterações

Versão | Descrição
8.0.0 | Nenhum parâmetro é aceito. Anteriormente, um manipulador de diretório poderia ser passado como argumento.


Lê entrada de um manipulador de diretório

  • « Directory::close
  • Directory::rewind »
  • PHP Manual
  • Directory
  • Lê entrada de um manipulador de diretório

Directory::read

(PHP 4, PHP 5, PHP 7, PHP 8)

Directory::read — Lê entrada de um manipulador de diretório

Descrição

public Directory::read(): string|false

Registro de Alterações

Versão | Descrição
8.0.0 | Nenhum parâmetro é aceito. Anteriormente, um manipulador de diretório poderia ser passado como argumento.


Retrocede um manipulador de diretório

  • « Directory::read
  • Funções de Diretórios »
  • PHP Manual
  • Directory
  • Retrocede um manipulador de diretório

Directory::rewind

(PHP 4, PHP 5, PHP 7, PHP 8)

Directory::rewind — Retrocede um manipulador de diretório

Descrição

public Directory::rewind(): void

Registro de Alterações

Versão | Descrição
8.0.0 | Nenhum parâmetro é aceito. Anteriormente, um manipulador de diretório poderia ser passado como argumento.


Funções de Diretórios

Veja Também

Para funções relacionadas como dirname(),
is_dir(), mkdir() e
rmdir(), consulte a seção
Filesystem.

Índice

  • chdir — Muda o diretório
  • chroot — Muda o diretório raiz
  • closedir — Fecha o manipulador do diretório
  • dir — Retorna uma instância da classe Directory
  • getcwd — Obtém o diretório atual
  • opendir — Abre um manipulador de diretório
  • readdir — Lê entrada do manipulador do diretório
  • rewinddir — Retroceder o manipulador de diretório
  • scandir — Lista arquivos e diretórios dentro do caminho especificado


Muda o diretório

  • « Funções de Diretórios
  • chroot »
  • PHP Manual
  • Funções de Diretórios
  • Muda o diretório

chdir

(PHP 4, PHP 5, PHP 7, PHP 8)

chdir — Muda o diretório

Descrição

chdir(string $directory): bool

Muda o diretório atual do PHP para directory.

Parâmetros

directory

O novo diretório atual

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Dispara um aviso E_WARNING em caso de falha.

Exemplos

Exemplo #1 Exemplo de chdir()

<?php

// diretório atual
echo getcwd() . "\n";

chdir('public_html');

// diretório atual
echo getcwd() . "\n";

?>

O exemplo acima produzirá algo semelhante a:

/home/vincent
/home/vincent/public_html

Notas

Cuidado

Se o interpretador PHP foi compilado com ZTS (Zend Thread Safety) habilitado, quaisquer mudanças ao diretório atual através de chdir() serão invisíveis ao sistema operacional. Todas as funções internas do PHP ainda irão respeitar a mudança do diretório atual; mas funções de bibliotecas externas, chamadas usando FFI não irão. Pode-se verificar se a cópia do PHP foi compilada com ZTS habilitado usando o comando php -i ou a constante interna PHP_ZTS.

Veja Também

  • getcwd() - Obtém o diretório atual


Muda o diretório raiz

  • « chdir
  • closedir »
  • PHP Manual
  • Funções de Diretórios
  • Muda o diretório raiz

chroot

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

chroot — Muda o diretório raiz

Descrição

chroot(string $directory): bool

Muda o diretório raiz do processo atual para directory, e muda o diretório de trabalho atual para "/".

Esta função está disponível somente para sistemas GNU e BSD, e apenas quando CLI, CGI ou Embed SAPI estiverem sendo usados. Além disso, esta função requer privilégio de administrador.

Chamar esta função não muda os valores das constantes mágicas __DIR__ e __FILE__.

Parâmetros

directory

O caminho para o qual apontar o novo diretório raiz.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de chroot()

<?php
chroot("/caminho/para/seu/chroot/");
echo getcwd();
?>

O exemplo acima produzirá:

/

Notas

Nota: Esta função não foi implementada em plataformas Windows.

Nota: Esta função não está disponível em interpretadores PHP compilados com o recurso ZTS (Zend Thread Safety) habilitado. Para verificar se sua cópia do PHP foi compilada com o ZTS habilitado, use o comando php -i ou teste a constante PHP_ZTS.


Fecha o manipulador do diretório

  • « chroot
  • dir »
  • PHP Manual
  • Funções de Diretórios
  • Fecha o manipulador do diretório

closedir

(PHP 4, PHP 5, PHP 7, PHP 8)

closedir — Fecha o manipulador do diretório

Descrição

closedir(?resource $dir_handle = null): void

Fecha o fluxo de diretório indicado por dir_handle. O fluxo deve ter sido previamente aberto por opendir().

Parâmetros

dir_handle

O manipulador de diretório do tipo resource aberto previamente com opendir(). Se o manipulador de diretório não for especificado, o último manipulador aberto por opendir() será o assumido.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo da closedir()

<?php
$dir = "/etc/php5/";

// Abre um diretório conhecido, lê na variável e depois fecha
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
$directory = readdir($dh);
closedir($dh);
}
}
?>


Retorna uma instância da classe Directory

  • « closedir
  • getcwd »
  • PHP Manual
  • Funções de Diretórios
  • Retorna uma instância da classe Directory

dir

(PHP 4, PHP 5, PHP 7, PHP 8)

dir — Retorna uma instância da classe Directory

Descrição

dir(string $directory, ?resource $context = null): Directory|false

Um mecanismo pseudo-orientado a objeto para ler um diretório. O diretório fornecido pelo parâmetro directory é aberto.

Parâmetros

directory

Diretório a ser aberto

context

Um resource de contexto de stream.

Valor Retornado

Retorna uma instância de Directory, ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.0.0 | context agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo da dir()

Repare nos detalhes de como o valor retornado de Directory::read() é verificado no exemplo abaixo. É testado explicitamente se o valor de retorno é idêntico a (igual e do mesmo tipo que - consulte operadores de comparação para mais informação) false, caso contrário, qualquer entrada de diretório cujo nome seja interpretado como false fará parar o loop.

<?php
$d = dir("/etc/php5");
echo "Handle: " . $d->handle . "\n";
echo "Caminho: " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
echo $entry."\n";
}
$d->close();
?>

O exemplo acima produzirá algo semelhante a:

Handle: Resource id #2
Caminho: /etc/php5
.
..
apache
cgi
cli

Notas

Nota:

A ordem em que as entradas do diretório são retornadas pelo método de leitura é dependente do sistema operacional.


Obtém o diretório atual

  • « dir
  • opendir »
  • PHP Manual
  • Funções de Diretórios
  • Obtém o diretório atual

getcwd

(PHP 4, PHP 5, PHP 7, PHP 8)

getcwd — Obtém o diretório atual

Descrição

getcwd(): string|false

Obtém o diretório atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o diretório atual em sucesso, ou false em falha.

Em algunmas variantes Unix, getcwd() irá retornar false se qualquer um dos diretórios-pai não tiver o modo leitura ou pesquisa definidos, mesmo se diretório atual tiver. Consulte chmod() para mais informação sobre modos e permissões.

Exemplos

Exemplo #1 Exemplo de getcwd()

<?php

// current directory
echo getcwd() . "\n";

chdir('cvs');

// current directory
echo getcwd() . "\n";

?>

O exemplo acima produzirá algo semelhante a:

/home/didou
/home/didou/cvs

Notas

Cuidado

Se o interpretador PHP foi compilado com ZTS (Zend Thread Safety) habilitado, o diretório de trabalho atual retornado por getcwd() pode ser diferente do retornado pelas interfaces do sistema operacional. Bibliotecas externas (chamadas usando FFI) que dependem do diretório de trabalho atual serão afetadas.

Veja Também

  • chdir() - Muda o diretório
  • chmod() - Modifica as permissões do arquivo


Abre um manipulador de diretório

  • « getcwd
  • readdir »
  • PHP Manual
  • Funções de Diretórios
  • Abre um manipulador de diretório

opendir

(PHP 4, PHP 5, PHP 7, PHP 8)

opendir — Abre um manipulador de diretório

Descrição

opendir(string $directory, ?resource $context = null): resource|false

Abre um manipulador de diretório para ser usado em chamadas subsequentes de closedir(), readdir() e rewinddir().

Parâmetros

directory

O caminho do diretório a ser aberto

context

Para descrição do parâmetro context, consulte a seção sobre fluxos do manual.

Valor Retornado

Retorna um manipulador de diretório do tipo resource em caso de sucesso, ou false em caso de falha

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Isto pode ocorrer se directory não for um nome de diretório válido, o diretório não puder ser aberto por restrições de permissão, ou por erros no sistema de arquivos.

Registro de Alterações

Versão | Descrição
8.0.0 | context agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de opendir()

<?php
$dir = "/etc/php5/";

// Abre um diretório existente, e faz a leitura de seu conteúdo
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
}
closedir($dh);
}
}
?>

O exemplo acima produzirá algo semelhante a:

filename: . : filetype: dir
filename: .. : filetype: dir
filename: apache : filetype: dir
filename: cgi : filetype: dir
filename: cli : filetype: dir

Veja Também

  • is_dir() - Diz se o caminho é um diretório
  • readdir() - Lê entrada do manipulador do diretório
  • dir() - Retorna uma instância da classe Directory


Lê entrada do manipulador do diretório

  • « opendir
  • rewinddir »
  • PHP Manual
  • Funções de Diretórios
  • Lê entrada do manipulador do diretório

readdir

(PHP 4, PHP 5, PHP 7, PHP 8)

readdir — Lê entrada do manipulador do diretório

Descrição

readdir(?resource $dir_handle = null): string|false

Retorna o nome da próxima entrada do diretório. As entradas são retornadas na ordem em que estão armazenadas no sistema de arquivos.

Parâmetros

dir_handle

O manipulador de diretório do tipo resource previamente aberto com opendir(). Se o manipulador de diretório não for especificado, o último manipulador aberto por opendir() será o assumido.

Valor Retornado

Retorna o nome do arquivo em caso de sucesso ou false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.0.0 | dir_handle agora pode ser nulo.

Exemplos

Exemplo #1 Listando todas as entradas de um diretório

Note a maneira com que o valor de retorno de readdir() é verificado nos exemplos abaixo. Está sendo explicitamente testado se o valor de retorno é idêntico a (igual e do mesmo tipo que--consulte Operadores de Comparação para maiores detalhes) false, caso contrário, qualquer entrada de diretório cujo nome seja interpretado como false irá parar o loop (por exemplo, um diretório com nome "0").

<?php

if ($handle = opendir('/caminho/para/arquivos')) {
echo "Manipulador de diretório: $handle\n";
echo "Arquivos:\n";

/* Esta é a forma correta de percorrer o diretório */
while (false !== ($entry = readdir($handle))) {
echo "$entry\n";
}

/* Esta é a forma INCORRETA de percorrer o diretório */
while ($entry = readdir($handle)) {
echo "$entry\n";
}

closedir($handle);
}
?>

Exemplo #2 Lista todas as entradas no diretório atual e remove . e ..

<?php
if ($handle = opendir('.')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo "$entry\n";
}
}
closedir($handle);
}
?>

Veja Também

  • is_dir() - Diz se o caminho é um diretório
  • glob() - Acha caminhos que combinam com um padrão
  • opendir() - Abre um manipulador de diretório
  • scandir() - Lista arquivos e diretórios dentro do caminho especificado


Retroceder o manipulador de diretório

  • « readdir
  • scandir »
  • PHP Manual
  • Funções de Diretórios
  • Retroceder o manipulador de diretório

rewinddir

(PHP 4, PHP 5, PHP 7, PHP 8)

rewinddir — Retroceder o manipulador de diretório

Descrição

rewinddir(?resource $dir_handle = null): void

Reinicia o fluxo do diretório indicado por dir_handle para o início do diretório.

Parâmetros

dir_handle

O manipulador de diretório do tipo resource aberto previamente com opendir(). Se o manipulador de diretório não for especificado, o último manipulador aberto por opendir() será o assumido.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | dir_handle agora pode ser nulo.


Lista arquivos e diretórios dentro do caminho especificado

  • « rewinddir
  • Fileinfo »
  • PHP Manual
  • Funções de Diretórios
  • Lista arquivos e diretórios dentro do caminho especificado

scandir

(PHP 5, PHP 7, PHP 8)

scandir — Lista arquivos e diretórios dentro do caminho especificado

Descrição

scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, ?resource $context = null): array|false

Retorna um array de arquivos e diretórios dentro de directory.

Parâmetros

directory

O diretório que será pesquisado.

sorting_order

Por padrão, a lista está em ordem alfabética crescente. Se o parâmetro opcional sorting_order for definido para SCANDIR_SORT_DESCENDING, a ordenação será alfabética decrescente. Se definida para SCANDIR_SORT_NONE, o resultado não será ordenado.

context

Para uma descrição do parâmetro context refira-se à seção de fluxos do manual.

Valor Retornado

Retorna um array com nomes de arquivos em caso de sucesso, ou false em caso de falha. Se directory não for um diretório, false é retornado e um aviso E_WARNING é gerado.

Registro de Alterações

Versão | Descrição
8.0.0 | context agora pode ser nulo.

Exemplos

Exemplo #1 Um exemplo simples de scandir()

<?php
$dir = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => algumdiretorio
)
Array
(
    [0] => algumdiretorio
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Notas

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Veja Também

  • opendir() - Abre um manipulador de diretório
  • readdir() - Lê entrada do manipulador do diretório
  • glob() - Acha caminhos que combinam com um padrão
  • is_dir() - Diz se o caminho é um diretório
  • sort() - Ordena um array em ordem ascendente


Informações do arquivo

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções da Fileinfo
    • finfo_buffer — Retorna informações sobre um buffer de string
    • finfo_close — Fecha uma instância de finfo
    • finfo_file — Retorna informações sobre um arquivo
    • finfo_open — Cria uma instância de finfo
    • finfo_set_flags — Define as opções de configuração da libmagic
    • mime_content_type — Detecta o tipo de conteúdo MIME de um arquivo
  • finfo — A classe finfo
    • finfo::buffer — Sinônimo de finfo_buffer()
    • finfo::__construct — Sinônimo de finfo_open
    • finfo::file — Sinônimo de finfo_file()
    • finfo::set_flags — Sinônimo de finfo_set_flags()


Introdução

As funções nesta extensão tentam adivinhar o tipo de conteúdo e a codificação de um arquivo procurando por algumas sequências mágicas de bytes em posições específicas no arquivo. Embora esta não seja uma abordagem à prova de balas, a heurística usada faz um excelente trabalho.


Instalação

Esta extensão está habilitada por padrão.

Usuários do Windows devem incluir a DLL fornecida php_fileinfo.dll no php.ini para habilitar esta extensão.

A biblioteca libmagic é fornecida com o PHP, mas inclui alterações específicas do PHP. Uma alteração para libmagic chamada libmagic.patch é mantido e pode ser encontrada no diretório de arquivos fontes da extensão fileinfo.


Tipos de Recurso

Antes do PHP 8.1.0, um recurso era usado na extensão Fileinfo: um descritor de banco de dados mágico retornado por finfo_open().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

FILEINFO_NONE (int)
Nenhum tratamento especial.
FILEINFO_SYMLINK (int)
Segue links simbólicos.
FILEINFO_MIME_TYPE (int)
Retorna o tipo MIME.
FILEINFO_MIME_ENCODING (int)
Retorna a codificação MIME do arquivo.
FILEINFO_MIME (int)
Retorna o tipo e a codificação MIME conforme definido pela RFC 2045.
FILEINFO_COMPRESS (int)
Descompacta arquivos compactados. Desabilitada devido a problemas com thread safety.
FILEINFO_DEVICES (int)
Verifica o conteúdo dos dispositivos especiais de blocos ou caracteres.
FILEINFO_CONTINUE (int)
Retorne todas as correspondências, não apenas a primeira.
FILEINFO_PRESERVE_ATIME (int)
Se possível, preserva o tempo de acesso original.
FILEINFO_RAW (int)
Não traduz caracteres não imprimíveis para uma representação octal \ooo.
FILEINFO_EXTENSION (int)
Retorna a extensão de arquivo apropriada para o tipo MIME detectado no arquivo. Para tipos que normalmente possuem múltiplas extensões de arquivo, como imagens JPEG, o valor retornado é composto por múltiplas extensões separadas por uma barra, por exemplo: "jpeg/jpg/jpe/jfif". Para tipos desconhecidos indisponíveis no banco de dados magic.mime, o valor de retorno é "???". Disponível desde o PHP 7.2.0.


Funções da Fileinfo

Índice

  • finfo_buffer — Retorna informações sobre um buffer de string
  • finfo_close — Fecha uma instância de finfo
  • finfo_file — Retorna informações sobre um arquivo
  • finfo_open — Cria uma instância de finfo
  • finfo_set_flags — Define as opções de configuração da libmagic
  • mime_content_type — Detecta o tipo de conteúdo MIME de um arquivo


Retorna informações sobre um buffer de string

  • « Funções da Fileinfo
  • finfo_close »
  • PHP Manual
  • Funções da Fileinfo
  • Retorna informações sobre um buffer de string

finfo_buffer

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_buffer -- finfo::buffer — Retorna informações sobre um buffer de string

Descrição

Estilo procedural

finfo_buffer(
finfo $finfo,
string $string,
int $flags = FILEINFO_NONE,
?resource $context = null
): string|false

Estilo orientado a objetos

public finfo::buffer(string $string, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Esta função é usada para obter informações sobre dados binários em uma string.

Parâmetros

finfo

Uma instância de finfo, retornada por finfo_open().

string

Conteúdo do arquivo a ser verificado.

flags

Uma ou disjunção de mais constantes Fileinfo.

context

Valor Retornado

Retorna uma descrição textual do parâmetro string, ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro finfo agora espera uma instância de finfo; anteriormente, um resource era esperado.
8.0.0 | O parâmetro context agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de finfo_buffer()

<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>

O exemplo acima produzirá algo semelhante a:

application/x-sh; charset=us-ascii

Veja Também

  • finfo_file() - Sinônimo de finfo_file()


Fecha uma instância de finfo

  • « finfo_buffer
  • finfo_file »
  • PHP Manual
  • Funções da Fileinfo
  • Fecha uma instância de finfo

finfo_close

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_close — Fecha uma instância de finfo

Descrição

finfo_close(finfo $finfo): bool

Esta função fecha uma instância aberta por finfo_open().

Parâmetros

finfo

Uma instância de finfo, retornada por finfo_open().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro finfo agora espera uma instância de finfo; anteriormente, um resource era esperado.


Retorna informações sobre um arquivo

  • « finfo_close
  • finfo_open »
  • PHP Manual
  • Funções da Fileinfo
  • Retorna informações sobre um arquivo

finfo_file

finfo::file

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_file -- finfo::file — Retorna informações sobre um arquivo

Descrição

Estilo procedural

finfo_file(
finfo $finfo,
string $filename,
int $flags = FILEINFO_NONE,
?resource $context = null
): string|false

Estilo orientado a objetos

public finfo::file(string $filename, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Esta função é usada para obter informações sobre um arquivo.

Parâmetros

finfo

Uma instância de finfo, retornada por finfo_open().

filename

Nome do arquivo a ser verificado.

flags

Uma ou disjunção de mais constantes Fileinfo.

context

Para uma descrição de contexts, consulte Funções de Fluxo.

Valor Retornado

Retorna uma descrição textual do conteúdo do argumento filename ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro finfo agora espera uma instância de finfo; anteriormente, um resource era esperado.
8.0.0 | O parâmetro context agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de finfo_file()

<?php
// retorna o tipo MIME, também conhecido como extensão mimetype
$finfo = finfo_open(FILEINFO_MIME_TYPE);
foreach (glob("*") as $nome_do_arquivo) {
echo finfo_file($finfo, $nome_do_arquivo) . "\n";
}
finfo_close($finfo);
?>

O exemplo acima produzirá algo semelhante a:

text/html
image/gif
application/vnd.ms-excel

Veja Também

  • finfo_buffer() - Sinônimo de finfo_buffer()


Cria uma instância de finfo

  • « finfo_file
  • finfo_set_flags »
  • PHP Manual
  • Funções da Fileinfo
  • Cria uma instância de finfo

finfo_open

finfo::__construct

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_open -- finfo::__construct — Cria uma instância de finfo

Descrição

Estilo procedural

finfo_open(int $flags = FILEINFO_NONE, ?string $magic_database = null): finfo|false

Estilo orientado a objetos (construtor):

public finfo::__construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)

Esta função abre um banco de dados mágico e retorna a instância.

Parâmetros

flags

Uma ou disjunção de mais constantes Fileinfo.

magic_database

Nome de um arquivo de banco de dados mágico, geralmente algo como /caminho/para/magic.mime. Se não for especificado, a variável de ambiente MAGIC será usada. O banco de dados mágico incluído no PHP será usado se a variável de ambiente não estiver definida.

Passar null ou uma string vazia será equivalente ao valor padrão.

Valor Retornado

(Apenas no estilo procedural) Retorna uma instância de finfo em caso de sucesso, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Agora retorna uma instância de finfo; anteriormente, um resource era retornado.
8.0.3 | O parâmetro magic_database agora pode ser nulo.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php
// retorna o tipo MIME, também conhecido como extensão mimetype
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic");

/* Obtém o tipo MIME de arquivo específico */
$nome_do_arquivo = "/usr/local/alguma_coisa.txt";
echo $finfo->file($nome_do_arquivo);

?>

Exemplo #2 Estilo procedural

<?php
// retorna o tipo MIME, também conhecido como extensão mimetype
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic");

if (!$finfo) {
echo "Falha ao abrir banco de dados fileinfo";
exit();
}

/* Obtém o tipo MIME de arquivo específico */
$nome_do_arquivo = "/usr/local/alguma_coisa.txt";
echo finfo_file($finfo, $nome_do_arquivo);

/* fecha a conexão */
finfo_close($finfo);
?>

O exemplo acima produzirá:

text/plain; charset=us-ascii

Notas

Nota:

Geralmente, usar o banco de dados mágico incluído no PHP (deixando o parâmetro magic_database e as variáveis de ambiente MAGIC indefinidos) é o melhor caminho a seguir, a menos que um banco de dados mágico personalizado seja necessário.

Veja Também

  • finfo_close() - Fecha uma instância de finfo


Define as opções de configuração da libmagic

  • « finfo_open
  • mime_content_type »
  • PHP Manual
  • Funções da Fileinfo
  • Define as opções de configuração da libmagic

finfo_set_flags

finfo::set_flags

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_set_flags -- finfo::set_flags — Define as opções de configuração da libmagic

Descrição

Estilo procedural

finfo_set_flags(finfo $finfo, int $flags): bool

Estilo orientado a objetos

public finfo::set_flags(int $flags): bool

Esta função define várias opções de Fileinfo. As opções também podem ser definidas diretamente em finfo_open() ou em outras funções da Fileinfo.

Parâmetros

finfo

Uma instância de finfo, retornada por finfo_open().

flags

Uma ou disjunção de mais constantes Fileinfo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro finfo agora espera uma instância de finfo; anteriormente, um resource era esperado.


Detecta o tipo de conteúdo MIME de um arquivo

  • « finfo_set_flags
  • finfo »
  • PHP Manual
  • Funções da Fileinfo
  • Detecta o tipo de conteúdo MIME de um arquivo

mime_content_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mime_content_type — Detecta o tipo de conteúdo MIME de um arquivo

Descrição

mime_content_type(resource|string $filename): string|false

Retorna o tipo de conteúdo MIME de um arquivo conforme determinado usando informações do arquivo magic.mime.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Retorna o tipo de conteúdo no formato MIME, como text/plain ou application/octet-stream, ou false em caso de falha.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo de mime_content_type()

<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('teste.php');
?>

O exemplo acima produzirá:

image/gif
text/plain

Veja Também

  • finfo_file() - Sinônimo de finfo_file()
  • finfo_buffer() - Sinônimo de finfo_buffer()


A classe finfo

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

Introdução

Esta classe fornece uma interface orientada a objetos para as funções fileinfo.

Resumo da classe

class finfo {
/* Métodos */
public __construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)
public buffer(string $string, int $flags = FILEINFO_NONE, ?resource $context = null): string|false
public file(string $filename, int $flags = FILEINFO_NONE, ?resource $context = null): string|false
public set_flags(int $flags): bool
}

Índice

  • finfo::buffer — Sinônimo de finfo_buffer()
  • finfo::__construct — Sinônimo de finfo_open
  • finfo::file — Sinônimo de finfo_file()
  • finfo::set_flags — Sinônimo de finfo_set_flags()


Sinônimo de finfo_buffer()

  • « finfo
  • finfo::__construct »
  • PHP Manual
  • finfo
  • Sinônimo de finfo_buffer()

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::buffer — Sinônimo de finfo_buffer()

Descrição

public finfo::buffer(string $string, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Esta função é um apelido para: finfo_buffer()


Sinônimo de finfo_open

  • « finfo::buffer
  • finfo::file »
  • PHP Manual
  • finfo
  • Sinônimo de finfo_open

finfo::__construct

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::__construct — Sinônimo de finfo_open()

Descrição

public finfo::__construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)

Esta função é um apelido para: finfo_open()

Registro de Alterações

Versão | Descrição
8.0.3 | O parâmetro magic_database agora pode ser nulo.


Sinônimo de finfo_file()

  • « finfo::__construct
  • finfo::set_flags »
  • PHP Manual
  • finfo
  • Sinônimo de finfo_file()

finfo::file

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::file — Sinônimo de finfo_file()

Descrição

public finfo::file(string $filename, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Esta função é um apelido para: finfo_file()


Sinônimo de finfo_set_flags()

  • « finfo::file
  • Extensão Filesystem (Sistema de Arquivos) »
  • PHP Manual
  • finfo
  • Sinônimo de finfo_set_flags()

finfo::set_flags

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::set_flags — Sinônimo de finfo_set_flags()

Descrição

public finfo::set_flags(int $flags): bool

Esta função é um apelido para: finfo_set_flags()


Extensão Filesystem (Sistema de Arquivos)

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções do sistema de arquivos
    • basename — Retorna a última parte do caminho
    • chgrp — Altera o grupo do arquivo
    • chmod — Modifica as permissões do arquivo
    • chown — Modifica o proprietário do arquivo
    • clearstatcache — Limpa o cache de estado de arquivos
    • copy — Copia arquivo
    • delete — Consulte unlink ou unset
    • dirname — Retorna o caminho para o diretório pai
    • disk_free_space — Retorna o espaço disponível no sistema de arquivos ou partição de disco
    • disk_total_space — Retorna o tamanho total de um sistema de arquivos ou partição de disco
    • diskfreespace — Sinônimo de disk_free_space
    • fclose — Fecha um ponteiro de arquivo aberto
    • fdatasync — Sincroniza dados (mas não metadados) ao arquivo
    • feof — Testa pelo fim-de-arquivo em um ponteiro de arquivo
    • fflush — Força a liberação do buffer para um arquivo
    • fgetc — Lê um caractere do ponteiro de arquivo
    • fgetcsv — Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV
    • fgets — Lê uma linha de um ponteiro de arquivo
    • fgetss — Ler uma linha de um ponteiro de arquivo e retira as tags HTML
    • file_exists — Verifica se um arquivo ou diretório existe
    • file_get_contents — Lê todo o conteúdo de um arquivo para uma string
    • file_put_contents — Escreve dados em um arquivo
    • file — Lê todo o arquivo para um array
    • fileatime — Obtém o último horário de acesso do arquivo
    • filectime — Obtém o horário de modificação de inode do arquivo
    • filegroup — Lê o grupo do arquivo
    • fileinode — Lê o inode do arquivo
    • filemtime — Obtém o horário de modificação do arquivo
    • fileowner — Obtem o proprietário do arquivo
    • fileperms — Obtém permissões de arquivo
    • filesize — Obtém o tamanho do arquivo
    • filetype — Lê o tipo do arquivo
    • flock — Travamento consultivo portável de arquivo
    • fnmatch — Compara nome de arquivo com um padrão
    • fopen — Abre um arquivo ou URL
    • fpassthru — Imprime todo os dados restantes de um ponteiro de arquivo
    • fputcsv — Formata a linha como CSV e a escreve em um ponteiro de arquivo
    • fputs — Sinônimo de fwrite
    • fread — Leitura de arquivo segura para binário
    • fscanf — Interpreta a leitura de um arquivo de acordo com um formato
    • fseek — Procura (seeks) em um ponteiro de arquivo
    • fstat — Lê informações sobre um arquivo usando um ponteiro de arquivo aberto
    • fsync — Sincroniza mudanças ao arquivo (incluindo metadados)
    • ftell — Retorna a posição atual do ponteiro de leitura/gravação do arquivo
    • ftruncate — Trunca um arquivo a um tamanho especificado
    • fwrite — Escrita binary-safe em arquivos
    • glob — Acha caminhos que combinam com um padrão
    • is_dir — Diz se o caminho é um diretório
    • is_executable — Diz se um arquivo é executável
    • is_file — Informa se o arquivo é um arquivo comum
    • is_link — Informa se o arquivo é uma ligação simbólica
    • is_readable — Diz se o arquivo existe e se ele pode ser lido
    • is_uploaded_file — Informa se o arquivo foi enviado por POST HTTP
    • is_writable — Diz se o arquivo pode ser modificado
    • is_writeable — Sinônimo de is_writable
    • lchgrp — Modifica o grupo de porprietário da ligação simbólica
    • lchown — Modifica o proprietário da ligação simbólica
    • link — Criando uma ligação rígida
    • linkinfo — Obtém informação sobre uma ligação
    • lstat — Obtém informações sobre um arquivo ou ligação simbólica
    • mkdir — Cria um diretório
    • move_uploaded_file — Move um arquivo enviado para uma nova localização
    • parse_ini_file — Interpreta um arquivo de configuração
    • parse_ini_string — Interpreta uma string de configuração
    • pathinfo — Retorna informações sobre um caminho de arquivo
    • pclose — Fecha o ponteiro de arquivo de processo
    • popen — Abre um processo como ponteiro de arquivo
    • readfile — Exibe o conteúdo de um arquivo
    • readlink — Retornar o alvo de uma ligação simbólica
    • realpath_cache_get — Obter entradas de cache do caminho absoluto
    • realpath_cache_size — Obter o tamanho do cache do caminho absoluto
    • realpath — Retorna o path absoluto canonizado
    • rename — Renomeia um arquivo ou diretório
    • rewind — Retrocede a posição de um ponteiro de arquivos
    • rmdir — Remove um diretório
    • set_file_buffer — Sinônimo de stream_set_write_buffer
    • stat — Obtém informações sobre um arquivo
    • symlink — Cria uma ligação simbólica
    • tempnam — Cria arquivo com nome único
    • tmpfile — Cria um arquivo temporário
    • touch — Define horário de acesso e de modificação de arquivo
    • umask — Modificar a umask atual
    • unlink — Apaga um arquivo


Introdução

Nenhuma bilbioteca externa é necessária para compilar esta extensão, porém se for desejado que o PHP suporte LFS (grandes arquivos) no Linux, será necessária uma biblioteca glibc recente e o PHP precisa ser compilado com as seguintes opções: -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.


  • « Introdução
  • Dependências »
  • PHP Manual
  • Extensão Filesystem (Sistema de Arquivos)
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Configurações em Execução
  • Tipos de Recurso


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração de Filesystem (Sistema de Arquivos) e Streams (Fluxos)
Nome | Padrão | Modificável | Registro de Alterações
allow_url_fopen | "1" | INI_SYSTEM |
allow_url_include | "0" | INI_SYSTEM | Defasada a partir do PHP 7.4.0.
user_agent | NULL | INI_ALL |
default_socket_timeout | "60" | INI_ALL |
from | "" | INI_ALL |
auto_detect_line_endings | "0" | INI_ALL | Defasada a partir do PHP 8.1.0.
sys_temp_dir | "" | INI_SYSTEM |

Aqui está uma breve explicação das diretivas de configuração.

allow_url_fopen bool

Esta opção habilita os empacotadores fopen sensíveis a URL que permitem acessar objetos URL como se fossem arquivos. Empacotadores padrão são fornecidos para o acesso a arquivos remotos usando o protocolo ftp ou http, e algumas extensões como zlib podem registrar empacotadores adicionais.

allow_url_include bool

Esta opção permite o uso de empacotadores fopen sensíveis a URL com as seguintes funções: include, include_once, require e require_once.

Nota:

Esta configuração requer que a opção allow_url_fopen esteja habilitada.

user_agent string

Define o agente do usuário que o PHP irá enviar.

default_socket_timeout int

Limite padrão de tempo (em segundos) para fluxos baseados em soquete. Especificar um valor negativo significa um limite de tempo infinito.

from string

O endereço de e-mail que será usado em conexões FTP não autenticadas e como o valor do cabeçalho From em conexões HTTP, ao usar os empacotadores ftp e http, respectivamente.

auto_detect_line_endings bool

Quando habilitada, o PHP examinará os dados lidos por fgets() e file() para verificar se está usando a convenção de fim de linha do Unix, MS-Dos ou Macintosh.

Isso permite que o PHP interopere com sistemas Macintosh, mas o padrão é Off (desligado), pois há uma penalidade de desempenho muito pequena ao detectar as convenções de fim de linha para a primeira linha, e também porque as pessoas que usam retornos de carro como separadores de itens nos sistemas Unix podem experimentar problemas de incompatibilidade com versões anteriores.

sys_temp_dir string


Tipos de Recurso

O sistema de arquivos usa fluxos (streams) como seu tipo de recurso. Fluxos estão documentados em seu próprio capítulo de referência, Fluxos.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SEEK_SET (int)
SEEK_CUR (int)
SEEK_END (int)
LOCK_SH (int)
LOCK_EX (int)
LOCK_UN (int)
LOCK_NB (int)
GLOB_BRACE (int)
Expande {a,b,c} para corresponder a 'a', 'b', ou 'c'

Nota: GLOB_BRACE não está disponível em alguns sistemas não-GNU, como Solaris ou Alpine Linux.

GLOB_ERR (int)
Para em erros de leitura (como diretórios não legíveis), por padrão erros são ignorados.
GLOB_ONLYDIR (int)
Retorna somente entradas de diretório que correspondem ao padrão
GLOB_MARK (int)
Adiciona uma barra (ou barra invertida no Windows) para cada diretório retornado
GLOB_NOSORT (int)
Retorna os arquivos conforme aparecem no diretório (sem ordenação). Quando esta opção não é usada, os nomes são ordenados alfabeticamente.
GLOB_NOCHECK (int)
Retorna o padrão de busca se nenhum arquivo correspondente a ele for encontrado.
GLOB_NOESCAPE (int)
Barras invertidas não escapam meta-caracteres
GLOB_AVAILABLE_FLAGS (int)
Todas as opções GLOB_* combinadas. Equivalente a 0 | GLOB_BRACE | GLOB_MARK | GLOB_NOSORT | GLOB_NOCHECK | GLOB_NOESCAPE | GLOB_ERR | GLOB_ONLYDIR
PATHINFO_DIRNAME (int)
PATHINFO_BASENAME (int)
PATHINFO_EXTENSION (int)
PATHINFO_FILENAME (int)
FILE_USE_INCLUDE_PATH (int)
Procura por filename no include_path.
FILE_NO_DEFAULT_CONTEXT (int)
FILE_APPEND (int)
Adiciona conteúdo ao arquivo existente.
FILE_IGNORE_NEW_LINES (int)
Remove caracteres de fim de linha.
FILE_SKIP_EMPTY_LINES (int)
Pula linhas em branco.
FILE_BINARY (int)

Modo binário.

Nota:

Esta constante não tem efeito e está disponível apenas para compatibilidade futura (forward compatibility).

FILE_TEXT (int)

Modo texto.

Nota:

Esta constante não tem efeito e está disponível apenas para compatibilidade futura (forward compatibility).

INI_SCANNER_NORMAL (int)
Modo de scanner INI normal.
INI_SCANNER_RAW (int)
Modo de scanner INI original.
INI_SCANNER_TYPED (int)
Modo de scanner INI tipado.
FNM_NOESCAPE (int)
Desativa o escape de barra invertida.
FNM_PATHNAME (int)
A barra na string corresponde apenas à barra no padrão fornecido.
FNM_PERIOD (int)
O ponto inicial na string deve corresponder exatamente ao ponto no padrão fornecido.
FNM_CASEFOLD (int)
Corresponde sem diferenciar maiúsculas e minúsculas. Parte da extensão GNU.


Funções do sistema de arquivos

Veja Também

Para funções relacionadas, consulte também as seções Diretório e Execução de Programas.

Para obter uma lista e a descrição dos vários empacotadors de URL que podem ser usados como arquivos remotos, veja também Protocolos e Wrappers suportados.

Índice

  • basename — Retorna a última parte do caminho
  • chgrp — Altera o grupo do arquivo
  • chmod — Modifica as permissões do arquivo
  • chown — Modifica o proprietário do arquivo
  • clearstatcache — Limpa o cache de estado de arquivos
  • copy — Copia arquivo
  • delete — Consulte unlink ou unset
  • dirname — Retorna o caminho para o diretório pai
  • disk_free_space — Retorna o espaço disponível no sistema de arquivos ou partição de disco
  • disk_total_space — Retorna o tamanho total de um sistema de arquivos ou partição de disco
  • diskfreespace — Sinônimo de disk_free_space
  • fclose — Fecha um ponteiro de arquivo aberto
  • fdatasync — Sincroniza dados (mas não metadados) ao arquivo
  • feof — Testa pelo fim-de-arquivo em um ponteiro de arquivo
  • fflush — Força a liberação do buffer para um arquivo
  • fgetc — Lê um caractere do ponteiro de arquivo
  • fgetcsv — Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV
  • fgets — Lê uma linha de um ponteiro de arquivo
  • fgetss — Ler uma linha de um ponteiro de arquivo e retira as tags HTML
  • file_exists — Verifica se um arquivo ou diretório existe
  • file_get_contents — Lê todo o conteúdo de um arquivo para uma string
  • file_put_contents — Escreve dados em um arquivo
  • file — Lê todo o arquivo para um array
  • fileatime — Obtém o último horário de acesso do arquivo
  • filectime — Obtém o horário de modificação de inode do arquivo
  • filegroup — Lê o grupo do arquivo
  • fileinode — Lê o inode do arquivo
  • filemtime — Obtém o horário de modificação do arquivo
  • fileowner — Obtem o proprietário do arquivo
  • fileperms — Obtém permissões de arquivo
  • filesize — Obtém o tamanho do arquivo
  • filetype — Lê o tipo do arquivo
  • flock — Travamento consultivo portável de arquivo
  • fnmatch — Compara nome de arquivo com um padrão
  • fopen — Abre um arquivo ou URL
  • fpassthru — Imprime todo os dados restantes de um ponteiro de arquivo
  • fputcsv — Formata a linha como CSV e a escreve em um ponteiro de arquivo
  • fputs — Sinônimo de fwrite
  • fread — Leitura de arquivo segura para binário
  • fscanf — Interpreta a leitura de um arquivo de acordo com um formato
  • fseek — Procura (seeks) em um ponteiro de arquivo
  • fstat — Lê informações sobre um arquivo usando um ponteiro de arquivo aberto
  • fsync — Sincroniza mudanças ao arquivo (incluindo metadados)
  • ftell — Retorna a posição atual do ponteiro de leitura/gravação do arquivo
  • ftruncate — Trunca um arquivo a um tamanho especificado
  • fwrite — Escrita binary-safe em arquivos
  • glob — Acha caminhos que combinam com um padrão
  • is_dir — Diz se o caminho é um diretório
  • is_executable — Diz se um arquivo é executável
  • is_file — Informa se o arquivo é um arquivo comum
  • is_link — Informa se o arquivo é uma ligação simbólica
  • is_readable — Diz se o arquivo existe e se ele pode ser lido
  • is_uploaded_file — Informa se o arquivo foi enviado por POST HTTP
  • is_writable — Diz se o arquivo pode ser modificado
  • is_writeable — Sinônimo de is_writable
  • lchgrp — Modifica o grupo de porprietário da ligação simbólica
  • lchown — Modifica o proprietário da ligação simbólica
  • link — Criando uma ligação rígida
  • linkinfo — Obtém informação sobre uma ligação
  • lstat — Obtém informações sobre um arquivo ou ligação simbólica
  • mkdir — Cria um diretório
  • move_uploaded_file — Move um arquivo enviado para uma nova localização
  • parse_ini_file — Interpreta um arquivo de configuração
  • parse_ini_string — Interpreta uma string de configuração
  • pathinfo — Retorna informações sobre um caminho de arquivo
  • pclose — Fecha o ponteiro de arquivo de processo
  • popen — Abre um processo como ponteiro de arquivo
  • readfile — Exibe o conteúdo de um arquivo
  • readlink — Retornar o alvo de uma ligação simbólica
  • realpath_cache_get — Obter entradas de cache do caminho absoluto
  • realpath_cache_size — Obter o tamanho do cache do caminho absoluto
  • realpath — Retorna o path absoluto canonizado
  • rename — Renomeia um arquivo ou diretório
  • rewind — Retrocede a posição de um ponteiro de arquivos
  • rmdir — Remove um diretório
  • set_file_buffer — Sinônimo de stream_set_write_buffer
  • stat — Obtém informações sobre um arquivo
  • symlink — Cria uma ligação simbólica
  • tempnam — Cria arquivo com nome único
  • tmpfile — Cria um arquivo temporário
  • touch — Define horário de acesso e de modificação de arquivo
  • umask — Modificar a umask atual
  • unlink — Apaga um arquivo


Retorna a última parte do caminho

  • « Funções do sistema de arquivos
  • chgrp »
  • PHP Manual
  • Funções do sistema de arquivos
  • Retorna a última parte do caminho

basename

(PHP 4, PHP 5, PHP 7, PHP 8)

basename — Retorna a última parte do caminho

Descrição

basename(string $path, string $suffix = ""): string

Dada uma string contendo o caminho para um arquivo ou diretório, esta função retornará a última parte do caminho.

Nota:

A função basename() opera de forma ingênua na string fornecida e não tem conhecimento do sistema de arquivos real ou dos componentes de caminho como "..".

Cuidado

A função basename() reconhece a localidade, portanto, para obter o nome correto ao usar caminhos com caracteres multibyte, a localidade correspondente deve ser definida com a função setlocale(). Se o parâmetro path contiver caracteres inválidos para a localidade atual, o comportamento de basename() será indefinido.

Parâmetros

path

Um caminho.

No Windows, tanto a barra (/) quanto a barra invertida (\) são usadas como caractere separador de diretório. Em outros ambientes, apenas a barra (/) é usada.

suffix

Se a última parte do caminho terminar em suffix, ele será removido.

Valor Retornado

Retorna a última parte de um dado path.

Exemplos

Exemplo #1 Exemplo de basename()

<?php
echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
echo "2) ".basename("/etc/sudoers.d").PHP_EOL;
echo "3) ".basename("/etc/passwd").PHP_EOL;
echo "4) ".basename("/etc/").PHP_EOL;
echo "5) ".basename(".").PHP_EOL;
echo "6) ".basename("/");
?>

O exemplo acima produzirá:

1) sudoers
2) sudoers.d
3) passwd
4) etc
5) .
6)

Veja Também

  • dirname() - Retorna o caminho para o diretório pai
  • pathinfo() - Retorna informações sobre um caminho de arquivo


Altera o grupo do arquivo

  • « basename
  • chmod »
  • PHP Manual
  • Funções do sistema de arquivos
  • Altera o grupo do arquivo

chgrp

(PHP 4, PHP 5, PHP 7, PHP 8)

chgrp — Altera o grupo do arquivo

Descrição

chgrp(string $filename, string|int $group): bool

Tenta alterar o grupo do arquivo filename para group.

Somente o superusuário pode alterar arbitrariamente o grupo de um arquivo; outros usuários podem alterar o grupo de um arquivo para qualquer grupo do qual sejam membros.

Parâmetros

filename

Caminho para o arquivo.

group

O nome ou número do grupo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Alterando o grupo de um arquivo

<?php
$arquivo = 'arquivo_compartilhado.txt';
$formato = "ID do grupo de %s em %s: %d\n";
printf($formato, $arquivo, date('r'), filegroup($arquivo));
chgrp($arquivo, 8);
clearstatcache(); // não armazena em cache os resultados de filegroup()
printf($formato, $arquivo, date('r'), filegroup($arquivo));
?>

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Nota: No Windows, esta função falha silenciosamente quando aplicada em um arquivo normal.

Veja Também

  • chown() - Modifica o proprietário do arquivo
  • chmod() - Modifica as permissões do arquivo


Modifica as permissões do arquivo

  • « chgrp
  • chown »
  • PHP Manual
  • Funções do sistema de arquivos
  • Modifica as permissões do arquivo

chmod

(PHP 4, PHP 5, PHP 7, PHP 8)

chmod — Modifica as permissões do arquivo

Descrição

chmod(string $filename, int $permissions): bool

Tenta mudar as permissões do arquivo especificado para o especificado em permissions.

Parâmetros

filename

O caminho para o arquivo.

permissions

Note que permissions não é automaticamente assumido como valor em octal, então para assegurar a operação esperada, é necessário prefixar permissions com um zero (0). Strings como "g+w" naõ irão funcionar adequadamente.

<?php
chmod ("/arquivo/diretorio", 755); // decimal; provavelmente incorreto
chmod ("/arquivo/diretorio", "u+rwx,go+rx"); // string; incorreto
chmod ("/arquivo/diretorio", 0755); // octal; representação correta do modo
?>

O parâmetro permissions consiste de três componentes numéricos em octal especificando restrições de acesso para o proprietário, para o grupo de usuário onde está o proprietário e para todos os outros usuários, nesta ordem. Um componente pode ser calculado adicionando-se as permissões necessárias para o usuário alvo. O número 1 significa direito de execução, 2 significa direito de escrita, 4 significa direito de leitura. Some esses números para especificar os direitos desejados. Pode-se consultar mais sobre modos em sistemas Unix com os comandos 'man 1 chmod' e 'man 2 chmod'.

<?php
// Escrita e leitura para o proprietário, nada mais para ninguém
chmod ("/somedir/somefile", 0600);

// Escrita e leitura para o proprietário, leitura para todos os outros
chmod ("/somedir/somefile", 0644);

// Tudo para o proprietário, leitura e execução para os outros
chmod ("/somedir/somefile", 0755);

// Tudo para o proprietário, leitura e execução para o grupo do prop
chmod ("/somedir/somefile", 0750);
?>

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Em caso de falha, um aviso E_WARNING é emitido.

Notas

Nota:

O usuário atual é aquele sob o qual o PHP é executado. Provavelmente não é o mesmo usuário que acessa linha de comando ou FTP. O modo pode ser modificado apenas pelo usuário proprietário do arquivo na maioria dos sistemas.

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Veja Também

  • chown() - Modifica o proprietário do arquivo
  • chgrp() - Altera o grupo do arquivo
  • fileperms() - Obtém permissões de arquivo
  • stat() - Obtém informações sobre um arquivo


Modifica o proprietário do arquivo

  • « chmod
  • clearstatcache »
  • PHP Manual
  • Funções do sistema de arquivos
  • Modifica o proprietário do arquivo

chown

(PHP 4, PHP 5, PHP 7, PHP 8)

chown — Modifica o proprietário do arquivo

Descrição

chown(string $filename, string|int $user): bool

Tenta modificar o proprietário do filename para user. Somente o superusuário pode modificar o proprietário de um arquivo.

Parâmetros

filename

Caminho para o arquivo.

user

O nome do usuário ou número.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Uso simples de chown()

<?php

// Nome de usuário e do arquivo que serão usados
$file_name= "foo.php";
$path = "/home/sites/php.net/public_html/sandbox/" . $file_name ;
$user_name = "root";

// Define o usuário proprietário
chown($path, $user_name);

// Verifica o resultado
$stat = stat($path);
print_r(posix_getpwuid($stat['uid']));

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [name] => root
    [passwd] => x
    [uid] => 0
    [gid] => 0
    [gecos] => root
    [dir] => /root
    [shell] => /bin/bash
)

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Nota: No Windows, esta função falha silenciosamente quando aplicada a um arquivo normal.

Veja Também

  • chmod() - Modifica as permissões do arquivo
  • chgrp() - Altera o grupo do arquivo


Limpa o cache de estado de arquivos

  • « chown
  • copy »
  • PHP Manual
  • Funções do sistema de arquivos
  • Limpa o cache de estado de arquivos

clearstatcache

(PHP 4, PHP 5, PHP 7, PHP 8)

clearstatcache — Limpa o cache de estado de arquivos

Descrição

clearstatcache(bool $clear_realpath_cache = false, string $filename = ""): void

Quando são chamadas as funções stat(), lstat() ou qualquer uma das funções afetadas (listadas abaixo), o PHP mantém em cache as informações que essas funções retornam para fornecer desempenho mais rápido. Entretanto, em certos casos pode ser necessário limpar as informações em cache. Por exemplo, se um mesmo arquivo é verificado várias vezes em um único script, e esse arquivo corre o risco de ser apagado ou modificado durante a operação do script, pode ser necessário limpar os dados do cache. Nesses casos, pode-se utilizar a função clearstatcache() para limpar as informações que o PHP mantém em cache sobre um arquivo.

Deve-se notar também que o PHP não guarda informação em cache sobre arquivos não existente. Assim, a função file_exists() for chamada em um arquivo que não existe, ela retornará false até que o arquivo seja criado. Se o arquivo for criado, ela retornará true mesmo que o arquivo seja removido. Entretanto, a função unlink() limpa o cache automaticamente.

Nota:

Esta função guarda infomações em cache sobre nomes de arquivos específicos, de forma que somente será necessário chamar clearstatcache() se estão sendo realizadas várias operações sobre o mesmo nome de arquivo e seja necessário que a informação sobre esse arquivo em particular não seja armazenada em cache.

As funções afetadas incluem stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype(), e
fileperms().

Parâmetros

clear_realpath_cache

Se deve-se também limpar o cache de caminho real.

filename

Limpa o cache de caminho real para um arquivo específico somente; apenas usado se clear_realpath_cache for true.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de clearstatcache()

<?php
$file = 'output_log.txt';

function get_owner($file)
{
$stat = stat($file);
$user = posix_getpwuid($stat['uid']);
return $user['name'];
}

$format = "UID @ %s: %s\n";

printf($format, date('r'), get_owner($file));

chown($file, 'ross');
printf($format, date('r'), get_owner($file));

clearstatcache();
printf($format, date('r'), get_owner($file));
?>

O exemplo acima produzirá algo semelhante a:

UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross


Copia arquivo

  • « clearstatcache
  • delete »
  • PHP Manual
  • Funções do sistema de arquivos
  • Copia arquivo

copy

(PHP 4, PHP 5, PHP 7, PHP 8)

copy — Copia arquivo

Descrição

copy(string $from, string $to, ?resource $context = null): bool

Faz uma cópia do arquivo informado em from para o arquivo informado em to.

Se o pretendido for mover um arquivo, utilize a função rename().

Parâmetros

from

Caminho para o arquivo de origem.

to

O caminho de destino. Se o parâmetro to for uma URL, a operação de cópia pode falhar se o empacotador não suportar a sobrescrita de arquivos existentes.

Aviso

Se o arquivo de destino já existir, ele será sobrescrito.

context

Um resource válido de contexto criado com stream_context_create().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de copy()

<?php
$file = 'example.txt';
$newfile = 'example.txt.bak';

if (!copy($file, $newfile)) {
echo "falha ao copiar $file...\n";
}
?>

Veja Também

  • move_uploaded_file() - Move um arquivo enviado para uma nova localização
  • rename() - Renomeia um arquivo ou diretório
  • A seção do manual sobre Gerenciamento de envio de arquivos


Consulte unlink ou unset

  • « copy
  • dirname »
  • PHP Manual
  • Funções do sistema de arquivos
  • Consulte unlink ou unset

delete

delete — Consulte unlink() ou unset()

Descrição

Não existe função ou instrução "delete" no PHP. Se você chegou nesta página procurando por deletar arquivos, veja unlink(). Para deletar uma variável de um escopo local, veja unset().

Veja Também

  • unlink() - Apaga um arquivo
  • unset() - Remove a definição de uma variável informada


Retorna o caminho para o diretório pai

  • « delete
  • disk_free_space »
  • PHP Manual
  • Funções do sistema de arquivos
  • Retorna o caminho para o diretório pai

dirname

(PHP 4, PHP 5, PHP 7, PHP 8)

dirname — Retorna o caminho para o diretório pai

Descrição

dirname(string $path, int $levels = 1): string

Dada uma string contendo um caminho para um arquivo ou diretório, esta função irá retornar o caminho do diretório pai que é levels acima do diretório atual.

Nota:

dirname() opera ingenuamente sobre a string de entrada, e não tem conhecimento do sistema de arquivos real, ou componentes de caminho de diretório como "..".

Cuidado

No Windows, dirname() assume o código de página atual, portanto para que possa ver os nomes corretos de diretório com caracteres multi-byte, o código de página correspondente deve ser configurado. Se path contiver caracteres que são inválidos para o código de página ativo, o comportamento de dirname() será indefinido.

Em outros sistemas, dirname() assume que path estará codificado em formato compatível com ASCII. Caso contrário o comportamento da função será indefinido.

Parâmetros

path

Um caminho.

No Windows, tanto a barra (/) quanto a barra invertida (\) são usadas como caractere separador de diretório. Em outros ambientes, é utilizada a barra (/).

levels

O número de diretórios pai para subir.

Deve ser um inteiro maior que 0.

Valor Retornado

Retorna o caminho do diretório pai. Se não houver nenhuma barra no path, um ponto ('.') é retornado, indicando o diretório atual. Do contrário, a string retornada é o path com qualquer /componente ao final da string removido.

Cuidado

Deve-se tomar cuidado ao usar esta função em um loop que alcança o diretório raiz pois isto pode resultar em um loop infinito.

<?php
dirname('.'); // Retornará '.'.
dirname('/'); // Retornará `\` no Windows e '/' em sistemas *nix.
dirname('\\'); // Retornará `\` no Windows e '.' em sistemas *nix.
dirname('C:\\'); // Retornará 'C:\' no Windows e '.' em sistemas *nix.
?>

Registro de Alterações

Versão | Descrição
7.0.0 | Adicionado o parâmetro opcional levels.

Exemplos

Exemplo #1 Exemplo de dirname()

<?php
echo dirname("/etc/passwd") . PHP_EOL;
echo dirname("/etc/") . PHP_EOL;
echo dirname(".") . PHP_EOL;
echo dirname("C:\\") . PHP_EOL;
echo dirname("/usr/local/lib", 2);

O exemplo acima produzirá algo semelhante a:

/etc
 / (ou \ no Windows)
 .
 C:\
 /usr

Veja Também

  • basename() - Retorna a última parte do caminho
  • pathinfo() - Retorna informações sobre um caminho de arquivo
  • realpath() - Retorna o path absoluto canonizado


Retorna o espaço disponível no sistema de arquivos ou partição de disco

  • « dirname
  • disk_total_space »
  • PHP Manual
  • Funções do sistema de arquivos
  • Retorna o espaço disponível no sistema de arquivos ou partição de disco

disk_free_space

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

disk_free_space — Retorna o espaço disponível no sistema de arquivos ou partição de disco

Descrição

disk_free_space(string $directory): float|false

Dado uma string contendo um diretório, esta função retornará o número de bytes disponíveis no sistema de arquivos ou partição de disco.

Parâmetros

directory

Um diretório do sistema de arquivos ou partição de disco.

Nota:

Dado um nome de arquivo ao invés de um diretório, o comportamento da função não é especificado e pode ser diferente entre sistemas operacionais e versões do PHP.

Valor Retornado

Retorna o número de bytes disponíveis como um float ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de disk_free_space()

<?php
// $df contém o número de bytes disponíveis em "/"
$df = disk_free_space("/");

// No Windows:
$df_c = disk_free_space("C:");
$df_d = disk_free_space("D:");
?>

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Veja Também

  • disk_total_space() - Retorna o tamanho total de um sistema de arquivos ou partição de disco


Retorna o tamanho total de um sistema de arquivos ou partição de disco

  • « disk_free_space
  • diskfreespace »
  • PHP Manual
  • Funções do sistema de arquivos
  • Retorna o tamanho total de um sistema de arquivos ou partição de disco

disk_total_space

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

disk_total_space — Retorna o tamanho total de um sistema de arquivos ou partição de disco

Descrição

disk_total_space(string $directory): float|false

Dado uma string contendo um diretório, esta função retornará o número total de bytes do sistema de arquivos ou da partição de disco.

Parâmetros

directory

Um diretório do sistema de arquivos ou uma partição de disco.

Valor Retornado

Retorna o número total de bytes como um float ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de disk_total_space()

<?php
// $ds contém o numero total de bytes disponíveis em "/"
$ds = disk_total_space("/");

// No Windows:
disk_total_space("C:");
disk_total_space("D:");
?>

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Veja Também

  • disk_free_space() - Retorna o espaço disponível no sistema de arquivos ou partição de disco


Sinônimo de disk_free_space

  • « disk_total_space
  • fclose »
  • PHP Manual
  • Funções do sistema de arquivos
  • Sinônimo de disk_free_space

diskfreespace

(PHP 4, PHP 5, PHP 7, PHP 8)

diskfreespace — Sinônimo de disk_free_space()

Descrição

Esta função é um apelido para: disk_free_space().


Fecha um ponteiro de arquivo aberto

  • « diskfreespace
  • fdatasync »
  • PHP Manual
  • Funções do sistema de arquivos
  • Fecha um ponteiro de arquivo aberto

fclose

(PHP 4, PHP 5, PHP 7, PHP 8)

fclose — Fecha um ponteiro de arquivo aberto

Descrição

fclose(resource $stream): bool

O arquivo apontado por stream é fechado.

Parâmetros

stream

O ponteiro para o arquivo tem que ser válido e tem que apontar para um arquivo aberto por fopen() ou fsockopen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de fclose()

<?php

$handle = fopen('qualquerarquivo.txt', 'r');

fclose($handle);

?>

Veja Também

  • fopen() - Abre um arquivo ou URL
  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet


Sincroniza dados (mas não metadados) ao arquivo

  • « fclose
  • feof »
  • PHP Manual
  • Funções do sistema de arquivos
  • Sincroniza dados (mas não metadados) ao arquivo

fdatasync

(PHP 8 >= 8.1.0)

fdatasync — Sincroniza dados (mas não metadados) ao arquivo

Descrição

fdatasync(resource $stream): bool

Esta função sincroniza o conteúdo do fluxo definido em stream para a mídia de armazenamento, da mesma forma que fsync(), mas não sincroniza os metadados de arquivo. Note que esta função só é efetivamente diferente em sistemas POSIX. No Windows, esta função é apelidada de fsync().

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de fdatasync()

<?php

$file = 'test.txt';

$stream = fopen($file, 'w');
fwrite($stream, 'test data');
fwrite($stream, "\r\n");
fwrite($stream, 'dados adicionais');

fdatasync($stream);
fclose($stream);
?>

Veja Também

  • fflush() - Força a liberação do buffer para um arquivo
  • fsync() - Sincroniza mudanças ao arquivo (incluindo metadados)


Testa pelo fim-de-arquivo em um ponteiro de arquivo

  • « fdatasync
  • fflush »
  • PHP Manual
  • Funções do sistema de arquivos
  • Testa pelo fim-de-arquivo em um ponteiro de arquivo

feof

(PHP 4, PHP 5, PHP 7, PHP 8)

feof — Testa pelo fim-de-arquivo em um ponteiro de arquivo

Descrição

feof(resource $stream): bool

Testa pelo fim-do-arquivo em um ponteiro de arquivo.

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

Valor Retornado

Retorna true se o ponteiro estiver no fim do arquivo ou um erro ocorrer (incluindo um limite de tempo de socket); caso contrário retorna false.

Notas

Aviso

Se uma conexão aberta por fsockopen() não foi fechada pelo servidor, feof() irá travar. Para contornar isto, veja o exemplo abaixo:

Exemplo #1 Handling timeouts with feof()

<?php
function safe_feof($fp, &$start = NULL) {
$start = microtime(true);

return feof($fp);
}

/* Assumindo que $fp foi previamente aberto por fsockopen() */

$start = NULL;
$timeout = ini_get('default_socket_timeout');

while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
/* Handle */
}
?>

Aviso

Se o ponteiro de arquivo passado não for válido pode-se chegar a um loop infinito, porque feof() falha em retornar true.

Exemplo #2 Exemplo de feof() com um ponteiro de arquivo inválido

<?php
// se o arquivo não puder ser lido ou não existir a função fopen retorna FALSE
$file = @fopen("no_such_file", "r");

// FALSE a partir do fopen irá emitir um aviso (warning) e resultar em um loop infinito aqui
while (!feof($file)) {
}

fclose($file);
?>


Força a liberação do buffer para um arquivo

  • « feof
  • fgetc »
  • PHP Manual
  • Funções do sistema de arquivos
  • Força a liberação do buffer para um arquivo

fflush

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

fflush — Força a liberação do buffer para um arquivo

Descrição

fflush(resource $stream): bool

Esta função força a escrita de toda saída cacheada para o recurso apontado fluxo de arquivo stream.

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 File write example using fflush()

<?php
$filename = 'bar.txt';

$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
?>

Veja Também

  • clearstatcache() - Limpa o cache de estado de arquivos
  • fwrite() - Escrita binary-safe em arquivos


Lê um caractere do ponteiro de arquivo

  • « fflush
  • fgetcsv »
  • PHP Manual
  • Funções do sistema de arquivos
  • Lê um caractere do ponteiro de arquivo

fgetc

(PHP 4, PHP 5, PHP 7, PHP 8)

fgetc — Lê um caractere do ponteiro de arquivo

Descrição

fgetc(resource $stream): string|false

Obtém um caractere de um dado ponteiro de arquivo.

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

Valor Retornado

Retorna uma string contendo um único caractere lido do ponteiro do arquivo passado por stream. Retorna false em EOF.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Exemplos

Exemplo #1 Um exemplo da fgetc()

<?php
$fp = fopen('algumarquivo.txt', 'r');
if (!$fp) {
echo 'Não é possivel abrir algumarquivo.txt';
}
while (false !== ($char = fgetc($fp))) {
echo "$char\n";
}
?>

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • fread() - Leitura de arquivo segura para binário
  • fopen() - Abre um arquivo ou URL
  • popen() - Abre um processo como ponteiro de arquivo
  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet
  • fgets() - Lê uma linha de um ponteiro de arquivo


Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV

  • « fgetc
  • fgets »
  • PHP Manual
  • Funções do sistema de arquivos
  • Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV

fgetcsv

(PHP 4, PHP 5, PHP 7, PHP 8)

fgetcsv — Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV

Descrição

fgetcsv(
resource $stream,
?int $length = null,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\"
): array|false

Similar à função fgets(), exceto que a fgetcsv() interpreta a linha em busca de campos no formato CSV e retorna um array contendo os campos lidos.

Nota:

As configurações de localidade são consideradas por esta função. Se LC_CTYPE for por exemplo en_US.UTF-8, arquivos em codificação de um byte podem ser lidos incorretamente por esta função.

Parâmetros

stream

Um ponteiro de arquivo válido para um arquivo aberto com sucesso por fopen(), popen() ou fsockopen().

length

Deve ser maior do que a maior linha (em caracteres) a ser encontrada no arquivo CSV (considerando também os caracteres de fim-de-linha). Caso contrário a linha é dividida em partes de length caracteres, a não ser que a divisão ocorra dentro de um caractere que cerca os campos (enclosure).

Se este parâmetro for omitido (ou definido em 0 ou null a partir do PHP 8.0.0), o tamanho máximo das linhas não é limitado, o que é um pouco mais lento.

separator

O parâmetro opcional separator define o delimitador de campo (somente um caractere de um byte).

enclosure

O parâmetro opctional enclosure define o caractere que cerca um campo (somente um caractere de um byte).

escape

O parâmetro opcional escape define o caractere de escape (no máximo um caractere de um byte). Uma string vazia ("") desabilita o mecanismo de escape proprietário.

Nota: Normalmente um caractere de enclosure sofre escape dentro de um campo através da duplicação; entretanto, o caractere escape pode ser usado como uma alternativa. Portanto, para os parâmetros padrões os valores "" e \" têm o mesmo significado. Além de permitir fazer escape no caractere enclosure, o caractere escape não tem nenhum significado especial adicional; muito menos foi projetado para fazer escape de si mesmo.

Valor Retornado

Retorna um array indexado contendo os campos lidos em caso de sucesso, ou false em caso de falha.

Nota:

Uma linha em branco em um arquivo CSV será retornada como um array contendo um único campo nulo (null) e não será tratada como um erro.

Nota: Se o PHP não estiver reconhecendo corretamente os finais de linha ao ler arquivos em um computador Macintosh ou que foram criados em um, habilitar a opção de configuração em tempo de execução auto_detect_line_endings pode ajudar a resolver o problema.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro length agora pode ser nulo.
7.4.0 | O parâmetro escape agora aceita uma string vazia para desabilitar o mecanismo de escape proprietário.

Exemplos

Exemplo #1 Lê e imprime todo o conteúdo de um arquivo CSV

<?php
$row = 1;
if (($handle = fopen("teste.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num campos na linha $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>

Veja Também

  • str_getcsv() - Analisa uma string CSV e retorna os dados em um array
  • explode() - Split a string by a string
  • file() - Lê todo o arquivo para um array
  • pack() - Empacota dados em uma string binária
  • fputcsv() - Formata a linha como CSV e a escreve em um ponteiro de arquivo


Lê uma linha de um ponteiro de arquivo

  • « fgetcsv
  • fgetss »
  • PHP Manual
  • Funções do sistema de arquivos
  • Lê uma linha de um ponteiro de arquivo

fgets

(PHP 4, PHP 5, PHP 7, PHP 8)

fgets — Lê uma linha de um ponteiro de arquivo

Descrição

fgets(resource $stream, ?int $length = null): string|false

Retorna uma linha do ponteiro do arquivo.

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

length

A leitura termina quando length - 1 bytes tenham sido lidos, ou uma quebra de linha (que é incluída no retorno), ou no final do arquivo (EOF), o que acontecer primeiro. Se nenhum comprimento for especificado, a leitura do fluxo continuará até chegar ao final da linha.

Valor Retornado

Retorna uma string de até length - 1 bytes lida do arquivo apontado por stream. Se não tiver mais dados para ler no ponteiro do arquivo, então retorna false.

Se um erro ocorrer, é retornado false.

Exemplos

Exemplo #1 Lendo um arquivo linha por linha

<?php
$fp = @fopen("/tmp/arquivodeentrada.txt", "r");
if ($fp) {
while (($buffer = fgets($fp, 4096)) !== false) {
echo $buffer;
}
if (!feof($fp)) {
echo "Erro: falha inexperada de fgets()\n";
}
fclose($fp);
}
?>

Notas

Nota: Se o PHP não estiver reconhecendo corretamente os finais de linha ao ler arquivos em um computador Macintosh ou que foram criados em um, habilitar a opção de configuração em tempo de execução auto_detect_line_endings pode ajudar a resolver o problema.

Nota:

Pessoas acostumadas à semântica do fgets() em 'C' devem notar a diferença em como o fim do arquivo (EOF) é retornado.

Veja Também

  • fgetss() - Ler uma linha de um ponteiro de arquivo e retira as tags HTML
  • fread() - Leitura de arquivo segura para binário
  • fgetc() - Lê um caractere do ponteiro de arquivo
  • stream_get_line() - Obtém uma linha do recurso do fluxo até um delimitador informado
  • fopen() - Abre um arquivo ou URL
  • popen() - Abre um processo como ponteiro de arquivo
  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet
  • stream_set_timeout() - Define o limite de tempo em um fluxo


Ler uma linha de um ponteiro de arquivo e retira as tags HTML

  • « fgets
  • file_exists »
  • PHP Manual
  • Funções do sistema de arquivos
  • Ler uma linha de um ponteiro de arquivo e retira as tags HTML

fgetss

(PHP 4, PHP 5, PHP 7)

fgetss — Ler uma linha de um ponteiro de arquivo e retira as tags HTML

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.3.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

fgetss(resource $handle, int $length = ?, string $allowable_tags = ?): string

Idêntico a fgets(), exceto que fgetss() tenta retirar qualquer byte NUL, tag HTML ou PHP do texto que ela lê. A função retém o estado de interpretação de chamada para chamada, e desta forma não É equivalente a chamar strip_tags() no valor de retorno de fgets().

Parâmetros

handle

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

length

Tamanho da informação a ser recebida.

allowable_tags

Pode-se usar o terceiro parâmetro opcional para especificar as tags que não devem ser removidas. Consulte strip_tags() para detalhes sobre allowable_tags.

Valor Retornado

Retorna uma stirng de até length - 1 bytes lidos do arquivo apontado por handle, com todo o código HTML e PHP removidos.

Se um erro ocorrer, retorna false.

Exemplos

Exemplo #1 Reading a PHP file line-by-line

<?php
$str = <<<EOD
<html><body>
<p>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
Text outside of the HTML block.
EOD;
file_put_contents('sample.php', $str);

$handle = @fopen("sample.php", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgetss($handle, 4096);
echo $buffer;
}
fclose($handle);
}
?>

O exemplo acima produzirá algo semelhante a:

Welcome! Today is the  of .

Text outside of the HTML block.

Notas

Nota: Se o PHP não estiver reconhecendo corretamente os finais de linha ao ler arquivos em um computador Macintosh ou que foram criados em um, habilitar a opção de configuração em tempo de execução auto_detect_line_endings pode ajudar a resolver o problema.

Veja Também

  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fopen() - Abre um arquivo ou URL
  • popen() - Abre um processo como ponteiro de arquivo
  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet
  • strip_tags() - Retira as tags HTML e PHP de uma string
  • SplFileObject::fgetss() - Obtém linha do arquivo e remove tags HTML
  • O filtro string.strip_tags


Verifica se um arquivo ou diretório existe

  • « fgetss
  • file_get_contents »
  • PHP Manual
  • Funções do sistema de arquivos
  • Verifica se um arquivo ou diretório existe

file_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

file_exists — Verifica se um arquivo ou diretório existe

Descrição

file_exists(string $filename): bool

Verifica se um arquivo ou diretório existe.

Parâmetros

filename

Caminho para o arquivo ou diretório.

No Windows, use //computername/share/filename ou \\computername\share\filename para checar arquivos em compartilhamentos de rede.

Valor Retornado

Retorna true se o arquivo ou diretório especificado por filename existe; false caso contrário.

Nota:

Esta função retorna false para ligações simbólicas apontando para arquivos inexistentes.

Nota:

O teste é realizado utilizando o UID/GID real, em vez de outro valor efetivo.

Nota: Como o tipo inteiro do PHP possui sinal e muitas plataformas usam números inteiros de 32 bits, algumas funções do sistema de arquivos podem retornar resultados inesperados para arquivos maiores que 2GB.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Testando se um arquivo existe

<?php
$filename = '/caminho/para/arquivo.txt';

if (file_exists($filename)) {
echo "O arquivo $filename existe";
} else {
echo "O arquivo $filename não existe";
}
?>

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • is_readable() - Diz se o arquivo existe e se ele pode ser lido
  • is_writable() - Diz se o arquivo pode ser modificado
  • is_file() - Informa se o arquivo é um arquivo comum
  • file() - Lê todo o arquivo para um array
  • SplFileInfo


Lê todo o conteúdo de um arquivo para uma string

  • « file_exists
  • file_put_contents »
  • PHP Manual
  • Funções do sistema de arquivos
  • Lê todo o conteúdo de um arquivo para uma string

file_get_contents

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

file_get_contents — Lê todo o conteúdo de um arquivo para uma string

Descrição

file_get_contents(
string $filename,
bool $use_include_path = false,
?resource $context = null,
int $offset = 0,
?int $length = null
): string|false

Esta função é semelhante à file(), exceto que file_get_contents() retorna o arquivo em uma string, começando a partir de offset até length bytes. Em caso de falha, file_get_contents() retornará false.

file_get_contents() é o método preferível para ler o conteúdo de um arquivo em uma string. Ela usa técnicas de mapeamento de memória suportadas pelo sistema operacional para melhorar o desempenho.

Nota:

Se for aberta uma URI com caracteres especiais, como espaços, é necessário codificar a URI com urlencode().

Parâmetros

filename

Nome do arquivo para ler.

use_include_path

Nota:

A constante FILE_USE_INCLUDE_PATH pode ser usada para acionar a busca no include path. Isto não é possível se a tipagem estrita estiver habilitada, já que FILE_USE_INCLUDE_PATH é um int. Em vez disso, use true.

context

Um recurso de contexto válido, criado com stream_context_create(). Se você não precisa usar um contexto personalizado, você pode ignorar este parâmetro passando null.

offset

O ponto onde a leitura deve começar no fluxo original. Offsets negativos contam a partir do final do fluxo.

offset não é suportado em arquivos remotos. Tentar fazer busca em arquivos não locais pode funcionar com offsets pequenos, mas isso é imprevisível pois só funciona no fluxo com buffer.

length

Comprimento máximo dos dados lidos. O padrão é ler até que o fim do arquivo seja alcançado. Note que este parâmetro é aplicado para o fluxo processado pelos filtros.

Valor Retornado

A função retorna os dados lidos ou false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Erros/Exceções

Um erro de nível E_WARNING é gerado se filename não puder ser encontrado, length é menor que zero, ou se a busca no fluxo pelo offset especificado falhar.

Quando file_get_contents() é chamada em um diretório, um erro nível E_WARNING é gerado no Windows, e a partir do PHP 7.4 em outros sistemas operacionais também.

Registro de Alterações

Versão | Descrição
8.0.0 | length agora é anulável.
7.1.0 | Suporte para offsets negativos foi adicionado.

Exemplos

Exemplo #1 Obtém e exibe o código-fonte da página inicial de um website

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

Exemplo #2 Buscando no include_path

<?php
// Se strict types estiver ativado com declare(strict_types=1);
$file = file_get_contents('./people.txt', true);
// Se não
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>

Exemplo #3 Lendo uma sessão de um arquivo

<?php
// Le 14 letras começando da letra 21
$section = file_get_contents('./people.txt', FALSE, NULL, 20, 14);
var_dump($section);
?>

O exemplo acima produzirá algo semelhante a:

string(14) "lle Bjori Ro"

Exemplo #4 Usando contextos de fluxo

<?php
// Criam um fluxo
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);

$context = stream_context_create($opts);

// Abre o arquivo utilizando os headers HTTP craidos acima
$file = file_get_contents('http://www.example.com/', false, $context);
?>

Notas

Nota: Esta função é compatível com dados binários.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Aviso

Ao usar SSL, o Microsoft IIS violará o protocolo fechando a conexão sem enviar uma notificação close_notify. O PHP reportará isso como "SSL: Fatal Protocol Error" quando chegar ao final dos dados. Para contornar isso, o valor de error_reporting deve ser reduzido a um nível que não inclua avisos. O PHP pode detectar servidores IIS defeituosos quando o stream é aberto usando o wrapper https:// e suprimirá o aviso. Ao usar fsockopen() para criar um soquete ssl://, o desenvolvedor é responsável por detectar e suprimir este aviso.

Veja Também

  • file() - Lê todo o arquivo para um array
  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fread() - Leitura de arquivo segura para binário
  • readfile() - Exibe o conteúdo de um arquivo
  • file_put_contents() - Escreve dados em um arquivo
  • stream_get_contents() - Lê o restante de um fluxo em uma string
  • stream_context_create() - Cria um contexto de fluxo
  • $http_response_header


Escreve dados em um arquivo

  • « file_get_contents
  • file »
  • PHP Manual
  • Funções do sistema de arquivos
  • Escreve dados em um arquivo

file_put_contents

(PHP 5, PHP 7, PHP 8)

file_put_contents — Escreve dados em um arquivo

Descrição

file_put_contents(
string $filename,
mixed $data,
int $flags = 0,
?resource $context = null
): int|false

Esta função é idêntica a chamar fopen(), fwrite() e fclose() sucessivamente para escrever dados em um arquivo.

Se o arquivo informado em filename não existir, o arquivo é criado. Do contrário, o arquivo existente é sobrescrito, a não ser que a opção FILE_APPEND seja definida.

Parâmetros

filename

O caminho para o arquivo onde os dados serão escritos.

data

Os dados a serem escritos. Pode ser uma string, um array ou um recurso stream.

Se data for um recurso stream, o buffer restante desse fluxo será copiado para o arquivo especificado, semelhante à utilização de stream_copy_to_stream().

Você também pode especificar o parâmetro data como um array unidimensional. Isso é equivalente a file_put_contents($filename, implode('', $array)).

flags

O valor de flags pode ser qualquer combinação das seguintes opções, adicionadas com o operador binário OR (|).

Opções disponíveis
Opção | Descrição
FILE_USE_INCLUDE_PATH | Procura o arquivo filename nos diretórios de include. Consulte include_path para mais informações.
FILE_APPEND | Se o arquivo filename já existir, acrescenta os dados ao arquivo ao invés de sobrescrevê-lo.
LOCK_EX | Adquire uma trava exclusiva no arquivo ao prosseguir para a escrita. Em outras palavras, uma chamada a flock() acontece entre a chamada fopen() e a chamada fwrite(). Isso não é idêntico à uma chamada fopen() com modo "x".

context

Um recurso de contexto válido criado com stream_context_create().

Valor Retornado

Esta função retorna a quantidade de bytes que foi escrita no arquivo ou false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Exemplos

Exemplo #1 Exemplo de uso simples

<?php
$file = 'people.txt';
// Abre o arquivo para obter o conteúdo existente
$current = file_get_contents($file);
// Acrescenta a nova pessoa no arquivo
$current .= "John Smith\n";
// Escreve o conteúdo de volta no arquivo
file_put_contents($file, $current);
?>

Exemplo #2 Usando flags

<?php
$file = 'people.txt';
// A nova pessoa para adicionar no arquivo
$person = "John Smith\n";
// Escreve o conteúdo no arquivo,
// usando a flag FILE_APPEND para acrescentar o conteúdo no fim do arquivo
// e a flag LOCK_EX para evitar que outra pessoa escreva no arquivo ao mesmo tempo
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>

Notas

Nota: Esta função é compatível com dados binários.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Veja Também

  • fopen() - Abre um arquivo ou URL
  • fwrite() - Escrita binary-safe em arquivos
  • file_get_contents() - Lê todo o conteúdo de um arquivo para uma string
  • stream_context_create() - Cria um contexto de fluxo


Lê todo o arquivo para um array

  • « file_put_contents
  • fileatime »
  • PHP Manual
  • Funções do sistema de arquivos
  • Lê todo o arquivo para um array

file

(PHP 4, PHP 5, PHP 7, PHP 8)

file — Lê todo o arquivo para um array

Descrição

file(string $filename, int $flags = 0, ?resource $context = null): array|false

Carrega todo um arquivo em um array.

Nota:

Pode-se utilizar file_get_contents() para retornar o conteúdo de um arquivo como uma string.

Parâmetros

filename

Caminho para o arquivo.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

flags

O parâmetro opcional flags pode ser uma ou mais das seguintes constantes:

FILE_USE_INCLUDE_PATH
Procurar pelo arquivo no include_path.
FILE_IGNORE_NEW_LINES
Omite a quebra de linha no final de cada elemento do array
FILE_SKIP_EMPTY_LINES
Pula linhas vazias
FILE_NO_DEFAULT_CONTEXT
Não usa o contexto padrão

context

Um resource de contexto de stream.

Valor Retornado

Retorna o arquivo em um array. Cada elemento do array corresponde a uma linha no arquivo, ainda com a quebra de linha. Em caso de falha, file() retorna false

Nota:

Cada linha no array incluirá a quebra de linha, a não ser que FILE_IGNORE_NEW_LINES seja usado.

Nota: Se o PHP não estiver reconhecendo corretamente os finais de linha ao ler arquivos em um computador Macintosh ou que foram criados em um, habilitar a opção de configuração em tempo de execução auto_detect_line_endings pode ajudar a resolver o problema.

Erros/Exceções

Emite um aviso E_WARNING se o arquivo não existe.

Exemplos

Exemplo #1 Exemplo de file()

<?php
// Lê um arquivo em um array. Nesse exemplo será obtido o código fonte HTML de
// uma URL via HTTP
$lines = file ('http://www.example.com/');

// Percorre o array, mostrando o fonte HTML com numeração de linhas.
foreach ($lines as $line_num => $line) {
echo "Linha #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}

// Usando o parâmetro de opções opcionais
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

Notas

Aviso

Ao usar SSL, o Microsoft IIS violará o protocolo fechando a conexão sem enviar uma notificação close_notify. O PHP reportará isso como "SSL: Fatal Protocol Error" quando chegar ao final dos dados. Para contornar isso, o valor de error_reporting deve ser reduzido a um nível que não inclua avisos. O PHP pode detectar servidores IIS defeituosos quando o stream é aberto usando o wrapper https:// e suprimirá o aviso. Ao usar fsockopen() para criar um soquete ssl://, o desenvolvedor é responsável por detectar e suprimir este aviso.

Veja Também

  • file_get_contents() - Lê todo o conteúdo de um arquivo para uma string
  • readfile() - Exibe o conteúdo de um arquivo
  • fopen() - Abre um arquivo ou URL
  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet
  • popen() - Abre um processo como ponteiro de arquivo
  • include - include
  • stream_context_create() - Cria um contexto de fluxo


Obtém o último horário de acesso do arquivo

  • « file
  • filectime »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obtém o último horário de acesso do arquivo

fileatime

(PHP 4, PHP 5, PHP 7, PHP 8)

fileatime — Obtém o último horário de acesso do arquivo

Descrição

fileatime(string $filename): int|false

Obtém o último horário de acesso do arquivo.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Retorna o horário em que um arquivo foi acessado pela última vez, ou false em caso de falha. O horário é retornado como um timestamp Unix.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo de fileatime()

<?php

// Exibe algo como: arquivo.txt teve o último acesso em: December 29 2002 22:16:23.

$filename = 'arquivo.txt';
if (file_exists($filename)) {
echo "$filename teve o último acesso em: " . date ("F d Y H:i:s.", fileatime($filename));
}

?>

Notas

Nota:

O horário de acesso de um arquivo deve mudar sempre os blocos de dados de um arquivo estão sendo lidos. Isto pode ser custoso do ponto de vista de desempenho quando uma aplicação acessa regularmente um grande número de arquivos ou diretórios.

Alguns sistemas de arquivos Unix podem ser montados com atualizações de horário de acesso desabilitadas para aumentar o desempenho de tais aplicações; os spools de notícias da USENET são um exemplo comum. Nestes sistemas de arquivos esta função não terá utilidade.

Nota:

Note que a resolução de tempo pode variar de um sistema de arquivos para outro.

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • filemtime() - Obtém o horário de modificação do arquivo
  • fileinode() - Lê o inode do arquivo
  • date() - Formatar um timestamp Unix


Obtém o horário de modificação de inode do arquivo

  • « fileatime
  • filegroup »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obtém o horário de modificação de inode do arquivo

filectime

(PHP 4, PHP 5, PHP 7, PHP 8)

filectime — Obtém o horário de modificação de inode do arquivo

Descrição

filectime(string $filename): int|false

Obtém o horário de modificação do inode de um arquivo.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Retorna o horário em que o arquivo foi modificado pela última vez, ou false em caso de falha. O horário é retornado como um timestamp Unix.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo de filectime()

<?php

// Exibe algo como: arquivo.txt foi modificado em: December 29 2002 22:16:23.

$filename = 'arquivo.txt';
if (file_exists($filename)) {
echo "$filename foi modificado em: " . date ("F d Y H:i:s.", filectime($filename));
}

?>

Notas

Nota:

Nota: Na maioria dos sistemas de arquivos Unix, um arquivo é considerado modificado quando seus dados de inode são modificados; isto é, quando as permissões, proprietário, grupo ou outros metadados do inode são atualizados. Consulte também filemtime() (que é usado quando se deseja criar rodapés de páginas web do tipo "Última Modificação") e fileatime().

Nota:

Note também que em alguns textos sobre Unix o horário de modificação de um arquivo é definido como sendo o horário de criação do arquivo. Isto está errado. Não existe horário de criação para arquivos na maioria dos sistemas de arquivos Unix.

Nota:

Note que a resolução de tempo pode variar de um sistema de arquivos para outro.

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • filemtime() - Obtém o horário de modificação do arquivo


Lê o grupo do arquivo

  • « filectime
  • fileinode »
  • PHP Manual
  • Funções do sistema de arquivos
  • Lê o grupo do arquivo

filegroup

(PHP 4, PHP 5, PHP 7, PHP 8)

filegroup — Lê o grupo do arquivo

Descrição

filegroup(string $filename): int|false

Obtém o grupo do arquivo. O ID do grupo é retornado no formato numérico, use posix_getgrgid() para resolvê-lo para um nome do grupo.

Parâmetros

filename

Caminho do arquivo.

Valor Retornado

Retorna o group ID do arquivo, ou false no caso de um erro. O group ID é retornado em um formato numérico. Use posix_getgrgid() para resolver para o nome do grupo. Em caso de falha, false é retornado.

Erros/Exceções

Em caso de falha. um E_WARNING é emitido.

Exemplos

Exemplo #1 Descobrindo o grupo de um arquivo

<?php
$filename = 'index.php';
print_r(posix_getgrgid(filegroup($filename)));
?>

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • fileowner() - Obtem o proprietário do arquivo
  • posix_getgrgid() - Return info about a group by group id


Lê o inode do arquivo

  • « filegroup
  • filemtime »
  • PHP Manual
  • Funções do sistema de arquivos
  • Lê o inode do arquivo

fileinode

(PHP 4, PHP 5, PHP 7, PHP 8)

fileinode — Lê o inode do arquivo

Descrição

fileinode(string $filename): int|false

Obtém o inode do arquivo.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Retorna o número do inode do arquivo, ou false em caso de falha.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Comparando o inode de um arquivo com o arquivo atual

<?php
$filename = 'index.php';
if (getmyinode() == fileinode($filename)) {
echo 'Você está verificando o arquivo atual.';
}
?>

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • getmyinode() - Gets the inode of the current script
  • stat() - Obtém informações sobre um arquivo


Obtém o horário de modificação do arquivo

  • « fileinode
  • fileowner »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obtém o horário de modificação do arquivo

filemtime

(PHP 4, PHP 5, PHP 7, PHP 8)

filemtime — Obtém o horário de modificação do arquivo

Descrição

filemtime(string $filename): int|false

Esta função retorna o horário em que os blocos de dados de um arquivo estavam sendo escritos, isto é, o horário em que o conteúdo do arquivo foi modificado.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Retorna o horário em que o arquivo foi modificado pela última vez, ou false em caso de falha. O horário é retornado como um timestamp Unix, que é adequado para a função date().

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo de filemtime()

<?php
// exibe algo como: arquivo.txt foi modificado em December 29 2002 22:16:23.

$filename = 'arquivo.txt';
if (file_exists($filename)) {
echo "$filename foi modificado em " . date ("F d Y H:i:s.", filemtime($filename));
}
?>

Notas

Nota:

Note que a resolução de tempo pode variar de um sistema de arquivos para outro.

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • filectime() - Obtém o horário de modificação de inode do arquivo
  • stat() - Obtém informações sobre um arquivo
  • touch() - Define horário de acesso e de modificação de arquivo
  • getlastmod() - Obtém o horário da última modificação na página


Obtem o proprietário do arquivo

  • « filemtime
  • fileperms »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obtem o proprietário do arquivo

fileowner

(PHP 4, PHP 5, PHP 7, PHP 8)

fileowner — Obtem o proprietário do arquivo

Descrição

fileowner(string $filename): int|false

Obtém o proprietário do arquivo.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Retorna a ID do usuário do proprietário do arquivo, ou false em caso de falha. A ID do usuário é retornada em formato numérico, use a função posix_getpwuid() para obter o nome do usuário.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Encontrando o proprietário de um arquivo

<?php
$filename = 'index.php';
print_r(posix_getpwuid(fileowner($filename)));
?>

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • filegroup() - Lê o grupo do arquivo
  • stat() - Obtém informações sobre um arquivo
  • posix_getpwuid() - Return info about a user by user id


Obtém permissões de arquivo

  • « fileowner
  • filesize »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obtém permissões de arquivo

fileperms

(PHP 4, PHP 5, PHP 7, PHP 8)

fileperms — Obtém permissões de arquivo

Descrição

fileperms(string $filename): int|false

Obtém as permissões para o arquivo informado.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Retorna as permissões do arquivo em modo numérico. Os bits menos significativos deste modo são os mesmos das permissões esperadas por chmod(), entretanto na maioria das plataformas o valor de retorno também inclui informação sobre o tipo do arquivo informado em filename. Os exemplo abaixo demonstram como testar o valor de retorno para permissões e tipos de arquivos específicos em sistemas POSIX, incluindo Linux e macOS.

Para aquivos locais, o valor de retorno específico é o do membro st_mode da estrutura retornada pela função stat() da biblioteca C. Exatamenta quais bits são definidos pode variar de plataforma para plataforma, e é recomendado consultar a documentação específica da plataforma se for necessária uma interpretação dos bits de não-permissão do valor de retorno.

Retorna false em caso de falha.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Mostra as permissões como um valor em octal

<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>

O exemplo acima produzirá:

1777
0644

Exemplo #2 Mostra as permissões completas

<?php
$perms = fileperms('/etc/passwd');

switch ($perms & 0xF000) {
case 0xC000: // socket
$info = 's';
break;
case 0xA000: // ligação simbólica
$info = 'l';
break;
case 0x8000: // regular
$info = 'r';
break;
case 0x6000: // bloco special
$info = 'b';
break;
case 0x4000: // diretório
$info = 'd';
break;
case 0x2000: // caractere especial
$info = 'c';
break;
case 0x1000: // tubo FIFO
$info = 'p';
break;
default: // desconhecido
$info = 'u';
}

// Owner
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? 's' : 'x' ) :
(($perms & 0x0800) ? 'S' : '-'));

// Group
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? 's' : 'x' ) :
(($perms & 0x0400) ? 'S' : '-'));

// World
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? 't' : 'x' ) :
(($perms & 0x0200) ? 'T' : '-'));

echo $info;
?>

O exemplo acima produzirá:

-rw-r--r--

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • chmod() - Modifica as permissões do arquivo
  • is_readable() - Diz se o arquivo existe e se ele pode ser lido
  • stat() - Obtém informações sobre um arquivo


Obtém o tamanho do arquivo

  • « fileperms
  • filetype »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obtém o tamanho do arquivo

filesize

(PHP 4, PHP 5, PHP 7, PHP 8)

filesize — Obtém o tamanho do arquivo

Descrição

filesize(string $filename): int|false

Obtém o tamanho do arquivo.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Retorna o tamanho do arquivo em bytes, ou false (e gera um aviso E_WARNING) em caso de erro.

Nota: Como o tipo inteiro do PHP possui sinal e muitas plataformas usam números inteiros de 32 bits, algumas funções do sistema de arquivos podem retornar resultados inesperados para arquivos maiores que 2GB.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo de filesize()

<?php

// Exibe algo como: arquivo.txt: 1024 bytes

$filename = 'arquivo.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • file_exists() - Verifica se um arquivo ou diretório existe


Lê o tipo do arquivo

  • « filesize
  • flock »
  • PHP Manual
  • Funções do sistema de arquivos
  • Lê o tipo do arquivo

filetype

(PHP 4, PHP 5, PHP 7, PHP 8)

filetype — Lê o tipo do arquivo

Descrição

filetype(string $filename): string|false

Retorna o tipo do arquivo.

Parâmetros

filename

Caminho até o arquivo.

Valor Retornado

Retorna o tipo do arquivo. Os valores possíveis são fifo, char, dir, block, link, file, socket e unknown (desconhecido).

Retorna false se ocorrer algum erro. filetype() também produzirá uma mensagem E_NOTICE se a chamada stat falhar ou se o tipo do arquivo for desconhecido.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo de filetype()

<?php

echo filetype('/etc/passwd');
echo "\n";
echo filetype('/etc/');

?>

O exemplo acima produzirá:

file
dir

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • is_dir() - Diz se o caminho é um diretório
  • is_file() - Informa se o arquivo é um arquivo comum
  • is_link() - Informa se o arquivo é uma ligação simbólica
  • file_exists() - Verifica se um arquivo ou diretório existe
  • mime_content_type() - Detecta o tipo de conteúdo MIME de um arquivo
  • pathinfo() - Retorna informações sobre um caminho de arquivo
  • stat() - Obtém informações sobre um arquivo


Travamento consultivo portável de arquivo

  • « filetype
  • fnmatch »
  • PHP Manual
  • Funções do sistema de arquivos
  • Travamento consultivo portável de arquivo

flock

(PHP 4, PHP 5, PHP 7, PHP 8)

flock — Travamento consultivo portável de arquivo

Descrição

flock(resource $stream, int $operation, int &$would_block = null): bool

flock() permite realizar um modelo simple de leitura/escrita que pode ser usado virtualmente em qualquer plataforma (incluindo na maioria dos derivados Unix e até mesmo no Windows).

A trava é liberada também por fclose(), ou quando o fluxo stream sofrer coleta de lixo.

O PHP suporta uma maneira portável de travamento de arquivos completos de forma consultiva (que significa que todos programas de acesso devem usar a mesma forma de travamento ou ela não irá funcionar). Por padrão, esta função irá bloquear até que a trava solicitada seja adquirida; isto pode ser controlado com a opção LOCK_NB documentada abaixo.

Parâmetros

stream

Um resource de ponteiro do sistema de arquivos que normalmente é criado usando fopen().

operation

operation deve ser uma das opções a seguir:

  • LOCK_SH para obter uma trava compartilhada (leitura).
  • LOCK_EX para obter uma trava exclusiva (escrita).
  • LOCK_UN para liberar uma trava (compartilhada ou exclusiva).

É possível também adicionar LOCK_NB como uma máscara de bits a uma das operações acima, caso seja necessário que flock() não bloqueie durante a tentativa de travamento.

would_block

O terceiro argumento opcional é definido como 1 se a trava for bloquear (condição de erro número EWOULDBLOCK).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de flock()

<?php

$fp = fopen("/tmp/lock.txt", "r+");

if (flock($fp, LOCK_EX)) { // adquire uma trava exclusiva
ftruncate($fp, 0); // trunca o arquivo
fwrite($fp, "Escreve alguma coisa aqui\n");
fflush($fp); // descarrega a saída antes de liberar a trava
flock($fp, LOCK_UN); // libera a trava
} else {
echo "Não foi possível obter a trava!";
}

fclose($fp);

?>

Exemplo #2 flock() usando a opção LOCK_NB

<?php
$fp = fopen('/tmp/lock.txt', 'r+');

/* Ativa a opção LOCK_NB em uma operação LOCK_EX */
if(!flock($fp, LOCK_EX | LOCK_NB)) {
echo 'Não foi possível obter a trava';
exit(-1);
}

/* ... */

fclose($fp);
?>

Notas

Nota:

flock() usa travamento mandatório no lugar de travamento consultivo no Windows. Travamento mandatório também é suportado no Linux e em sistemas operacionais baseados em System V através do mecanismo usual suportado pela chamada de sistema fcntl(): isto é, se o arquivo em questão tem a o bit de permissão setgid ligado e o bit de execução do grupo desligado. No Linux, o sistema de arquivos também precisará ser montado com a opção mand para que isto funcione.

Nota:

Pelo motivo de flock() requerer um ponteiro de arquivo, pode ser necessário usar um arquivo de trava especial para proteger o acesso a um aqruivo que deseja-se truncar abrindo-o em modo de escrita (com um argumento "w" ou "w+" para fopen()).

Nota:

Pode somente ser usado em ponteiros de arquivos retornados por fopen() para arquivos locais, ou ponteiros de arquivos que apontam para fluxo no espaço do usuário que implementam o método streamWrapper::stream_lock().

Aviso

Atribuir outro valor ao argumento stream em código subsequente irá liberar a trava.

Aviso

Em alguns sistemas operacionais, flock() é implementado no nível de processos. Ao usar uma API de servidor multi-tarefa pode ser que se consiga confiar em flock() para proteger arquivos contra outros scripts PHP sendo executados em tarefas parelelas da mesma instância do servidor!

flock() não é suportado em sistemas de arquivos antiquados como FAT e seus derivativos e portanto sempre retornará false nestes ambientes.

Nota:

No Windows, se o processo de travamento abrir o arquivo uma segunda vez, ele não poderá acessar o arquivo através deste segundo manipulador até que destrave o arquivo.


Compara nome de arquivo com um padrão

  • « flock
  • fopen »
  • PHP Manual
  • Funções do sistema de arquivos
  • Compara nome de arquivo com um padrão

fnmatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

fnmatch — Compara nome de arquivo com um padrão

Descrição

fnmatch(string $pattern, string $filename, int $flags = 0): bool

fnmatch() verifica se o parâmetro filename informado corresponde com o padrão de curingas shell pattern.

Parâmetros

pattern

O parâmetro pattern deve conter o padrão para correspondência. Normalmente, pattern conterá curingas como '?' e '*'.

Curingas a serem usados no parâmetro pattern
Curinga Descrição
? Ponto de interrogação irá corresponder a um caractere único. Por exemplo, o padrão "file?.txt" corresponderá a "file1.txt" e "fileA.txt", mas não a "file10.txt".
* Asteriscos corresponderá zero ou mais caracteres. Por exemplo, o padrão "foo*.xml" corresponderá a "foo.xml" e "foobar.xml".
[ ] Colchetes são usados para criar intervalos de caracteres ASCII ou conjuntos de caracteres. Por exemplo, o padrão "index.php[45]" corresponderá a "index.php4" e "index.php5", mas não a "index.phpt". Intervalos bem conhecidos são [0-9], [a-z] e [A-Z]. Conjuntos e intervalos múltiplos podem ser usados ao mesmo tempo, por exemplo [0-9a-zABC].
! Ponto de exclamação é usado para negar caracteres dentro de colchetes. Por exemplo, "[!A-Z]*.html" corresponderá a "demo.html", mas não a "Demo.html".
\ Barra invertida é usada para escapar caracteres especiais. Por exemplo, "Name\?" corresponderá a "Name?", mas não a "Names".

filename

A string testada. Esta função é especialmente útil para nomes de arquivo, mas também pode ser usada em strings normais.

O usuário comum pode estar acostumado com padrões shell ou pelo menos, na sua forma mais simples, aos curingas '?' e '*'. Então usar fnmatch() ao invés de preg_match() para entrada de expressões de busca na interface com o usuário pode ser muito mais conveniente para não programadores.

flags

O valor do parâmetro flags pode ser qualquer combinação das opções a seguir, unidos com o operador binário OR (|).

Uma lista de opções possíveis para fnmatch()
Flag | Descrição
FNM_NOESCAPE | Desabilita escape por barra invertida.
FNM_PATHNAME | Barra na string somente corresponde a barra no padrão fornecido.
FNM_PERIOD | Um ponto no início da string deve corresponder a exatamente um ponto no padrão fornecido.
FNM_CASEFOLD | Não diferencia maiúsculas de minúsculas. Parte da extensão GNU.

Valor Retornado

Retorna true se houver correspondência, false caso contrário.

Exemplos

Exemplo #1 Comparando uma cor com um padrão de curingas shell

<?php
if (fnmatch("*gr[ae]y", $color)) {
echo "alguma forma de cinza (grey ou gray) ...";
}
?>

Notas

Aviso

Por enquanto esta função não está disponível em sistemas não-POSIX exceto pelo Windows.

Veja Também

  • glob() - Acha caminhos que combinam com um padrão
  • preg_match() - Perform a regular expression match
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato
  • printf() - Output a formatted string
  • sprintf() - Return a formatted string


Abre um arquivo ou URL

  • « fnmatch
  • fpassthru »
  • PHP Manual
  • Funções do sistema de arquivos
  • Abre um arquivo ou URL

fopen

(PHP 4, PHP 5, PHP 7, PHP 8)

fopen — Abre um arquivo ou URL

Descrição

fopen(
string $filename,
string $mode,
bool $use_include_path = false,
?resource $context = null
): resource|false

fopen() conecta um recurso nomeado, especificado por filename, a um fluxo.

Parâmetros

filename

Se filename estiver na forma de "esquema://...", assume-se que seja uma URL, e o PHP buscará por um manipulador de protocolo (também conhecido como empacotador) para aquele esquema. Se nenhum empacotador para aquele protocolo estiver registrado, o PHP emitirá uma aviso para auxiliar no rastreio de potenciais problemas no script, e então continuará presumindo que filename especifica um arquivo normal.

Se o PHP decidiu que filename se refere a um arquivo local, então ele tentará abrir um fluxo para aquele arquivo. O arquivo precisa ser acessível pelo PHP, portanto é necessário garantir que as permissões de acesso do arquivo possibilitem este acesso. Se estiver habilitado open_basedir, outras restrições podem se aplicar.

Se o PHP decidiu que filename se refere a um protocolo registrado e esse protocolo estiver registrado como uma URL de rede, o PHP irá verificar para ter certeza que allow_url_fopen está habilitado. Se não estiver, o PHP emitirá um alerta e a chamada ao fopen irá falhar.

Nota:

A lista de protocolos suportados pode ser encontrada em Protocolos e Wrappers suportados. Alguns protocolos (também mencionados como wrappers) suportam context e/ou opções do php.ini. Recorra à página específica do protocolo em uso para uma lista das opções que podem ser definidas. (ex.: o valor php.ini user_agent utilizado pelo protocolo http).

Na plataforma Windows, tenha cuidado de escapar qualquer barra invertida usada no caminho do arquivo, ou use barras normais.

<?php
$handle = fopen("c:\\data\\info.txt", "r");
?>

mode

O parâmetro mode especifica o tipo de acesso que você precisa ao fluxo. Pode ser um dos seguintes:

Lista dos possíveis modos de fopen() utilizando mode
mode | Descrição
'r' | Abre somente para leitura; coloca o ponteiro do arquivo no começo do arquivo.
'r+' | Abre para leitura e escrita; coloca o ponteiro do arquivo no começo do arquivo.
'w' | Abre somente para escrita; coloca o ponteiro do arquivo no começo do arquivo e reduz o comprimento do arquivo para zero. Se o arquivo não existir, tenta criá-lo.
'w+' | Abre para leitura e escrita; fora isso, tem o mesmo comportamento de 'w'.
'a' | Abre somente para escrita; coloca o ponteiro do arquivo no final do arquivo. Se o arquivo não existir, tenta criá-lo. Neste modo, fseek() não tem efeito, a escrita é sempre adicionada.
'a+' | Abre para leitura e escrita; coloca o ponteiro do arquivo no final do arquivo. Se o arquivo não existir, tenta criá-lo. Neste modo, fseek() somente afeta a posição de leitura, escrita é sempre adicionada.
'x' | Cria e abre o arquivo somente para escrita; coloca o ponteiro no começo do arquivo. Se o arquivo já existir, a chamada a fopen() falhará, retornando false e gerando um erro de nível E_WARNING. Se o arquivo não existir, tenta criá-lo. Isto é equivalente a especificar as opções O_EXCL|O_CREAT para a chamada de sistema open(2) subjacente.
'x+' | Cria e abre o arquivo para leitura e escrita; fora isso, tem o mesmo comportamento de 'x'.
'c' | Abre o arquivo somente para escrita. Se o arquivo não existir, ele é criado. Se existir, ele não é truncado (ao contrário de 'w') e nem a chamada a esta função falha (como no caso de 'x'). O ponteiro é posicionado no início do arquivo. Isto pode ser útil se for desejado obter uma trava consultiva (consulte flock()) antes de tentar modificar o arquivo, já que usar 'w' poderia trincar o arquivo antes que a trava fosse obtida (se o truncamento for desejado, ftruncate() pode ser usando depois que a trava for requisitada).
'c+' | Abre o arquivo para leitura e escrita; fora isso, tem o mesmo comportamento de 'c'.
'e' | Define a opção close-on-exec no descritor do arquivo aberto. Somente disponível no PHP compilado em sistemas conforme POSIX.1-2008.

Nota:

Diferentes famílias de sistemas operacionais têm diferentes convenções de final de linha. Quando um arquivo texto é escrito e deseja-se inserir uma quebra de linha, é necessário usar o caractere correto de fim de linha para o sistema operacional. Sistemas baseados no Unix utilizam \n como o caractere de fim de linha, sistemas baseados no Windows utilizam \r\n e sistemas baseados no Macintosh (Mac OS Classic) utilizavam \r.

Se forem usados os caracteres de fim de linha inadequados em seus arquivos, pode ser que esses arquivos "parecer estranhos" quando forem abertos em outras aplicações.

O Windows oferece uma opção de tradução do modo texto ('t') que traduz, transparentemente, \n para \r\n quando estiver trabalhando com o arquivo. Em contraste, pode-se também utilizar 'b' para forçar o modo binário, que não irá traduzir os dados. Para usar essas opções, especifique 'b' ou 't' como o último caractere do parâmetro mode.

O modo de tradução padrão é 'b'. Pode-se usar o modo 't' ao trabalhar com arquivos texto e usar \n para delimitar as linhas no script, de forma que pode-se esperar que eles sejam lidos em aplicações como versões antigas do bloco de notas. Deve-se usar 'b' em todos os outros casos.

Se for especificada a opção 't' ao trabalhar com arquivos binários, pode-se experimentar problemas estranhos com os dados, incluindo arquivos de imagens corrompidos e problemas estranhos com os caracteres \r\n.

Nota:

Para portabilidade, é fortemente recomendado que se reescreva códigos que usem ou dependam do modo 't' de forma que passem a usar o fim de linha correto e o modo 'b' em seu lugar.

Nota: O parâmetro mode é ignorado para os empacotadores de fluxo php://output, php://input, php://stdin, php://stdout, php://stderr e php://fd.

use_include_path

O terceiro parâmetro opcional use_include_path pode ser definido para '1' ou true se for desejado buscar o arquivo também no include_path.

context

Um resource de contexto de stream.

Valor Retornado

Retorna um recurso de ponteiro de arquivo em caso de sucesso, ou false em caso de falha

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Registro de Alterações

Versão | Descrição
7.0.16, 7.1.2 | A opção 'e' foi adicionada.

Exemplos

Exemplo #1 Exemplos de fopen()

<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

Notas

Aviso

Ao usar SSL, o Microsoft IIS violará o protocolo fechando a conexão sem enviar uma notificação close_notify. O PHP reportará isso como "SSL: Fatal Protocol Error" quando chegar ao final dos dados. Para contornar isso, o valor de error_reporting deve ser reduzido a um nível que não inclua avisos. O PHP pode detectar servidores IIS defeituosos quando o stream é aberto usando o wrapper https:// e suprimirá o aviso. Ao usar fsockopen() para criar um soquete ssl://, o desenvolvedor é responsável por detectar e suprimir este aviso.

Nota:

Se houver problemas com leitura e gravação de arquivos e a versão de módulo de servidor do PHP estiver sendo usada, deve-se garantir que os arquivos e diretórios sendo usados são acessíveis ao processo do servidor.

Nota:

Esta função também pode ter sucesso quando filename for um diretório. Se não houver certeza se filename é um arquivo ou um diretório, pode ser necessário usar a função is_dir() antes de chamar fopen().

Veja Também

  • Protocolos e Wrappers suportados
  • fclose() - Fecha um ponteiro de arquivo aberto
  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fread() - Leitura de arquivo segura para binário
  • fwrite() - Escrita binary-safe em arquivos
  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet
  • file() - Lê todo o arquivo para um array
  • file_exists() - Verifica se um arquivo ou diretório existe
  • is_readable() - Diz se o arquivo existe e se ele pode ser lido
  • stream_set_timeout() - Define o limite de tempo em um fluxo
  • popen() - Abre um processo como ponteiro de arquivo
  • stream_context_create() - Cria um contexto de fluxo
  • umask() - Modificar a umask atual
  • SplFileObject


Imprime todo os dados restantes de um ponteiro de arquivo

  • « fopen
  • fputcsv »
  • PHP Manual
  • Funções do sistema de arquivos
  • Imprime todo os dados restantes de um ponteiro de arquivo

fpassthru

(PHP 4, PHP 5, PHP 7, PHP 8)

fpassthru — Imprime todo os dados restantes de um ponteiro de arquivo

Descrição

fpassthru(resource $stream): int

Lê até o fim do arquivo (EOF) do ponteiro de arquivo dado e imprime os resultados para a buffer de saída.

Pode ser necessário chamar rewind() para redefinir o ponteiro do arquivo para início do arquivo se dados já tiverem sido escritos no arquivo.

Se for desejado apenas descarregar o conteúdo de um arquivo para o buffer de saída, sem primeiro modificá-lo ou deslocar o ponteiro até uma posição, pode-se usar a função readfile(), que vai economizar uma chamada à função fopen().

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

Valor Retornado

Retorna o número de caracteres lidos do fluxo stream e passados para a saída.

Exemplos

Exemplo #1 Usando fpassthru() com arquivo binário

<?php

// Abre o arquivo em modo binário
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// Rnvia os headers
header("Content-Type: image/png");
header("Content-Length: ".filesize($name));

// Manda a imagem e para o script
fpassthru($fp);
exit;

?>

Notas

Nota:

Ao utilizar fpassthru() em um arquivo binário em sistemas Windows, assegure-se de abrir o arquivo em modo binário, acrescentando um b ao modo informado na chamada a fopen().

Recomenda-se utilizar o modo b ao lidar com arquivos binários, mesmo que seu sistema não exiga isso, de forma que seus scripts se tornem mais portáveis.

Veja Também

  • readfile() - Exibe o conteúdo de um arquivo
  • fopen() - Abre um arquivo ou URL
  • popen() - Abre um processo como ponteiro de arquivo
  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet


Formata a linha como CSV e a escreve em um ponteiro de arquivo

  • « fpassthru
  • fputs »
  • PHP Manual
  • Funções do sistema de arquivos
  • Formata a linha como CSV e a escreve em um ponteiro de arquivo

fputcsv

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

fputcsv — Formata a linha como CSV e a escreve em um ponteiro de arquivo

Descrição

fputcsv(
resource $stream,
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false

fputcsv() formata uma linha (passada como um array de campos fields) como CSV e a escreve (terminando com uma nova linha) no fluxo de arquivo especificado por stream.

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

fields

Um array de strings.

separator

O parâmetro opcional separator configura o caractere delimitador (apenas um caractere de um byte).

enclosure

O parâmetro opcional enclosure configura o caractere que envolve os dados (apenas um caractere de um byte).

escape

O parâmetro opcional escape configura o caractere de escape (no máximo um caractere de um byte). Uma string vazia ("") desabilita o mecanismo de escape proprietário.

eol

O parâmetro opcional eol define uma sequencia customizada de Fim de Linha.

Nota:

Se um caractere enclosure estiver contido em um campo, ele sofrerá escape por duplicação, a menos que seja imadiatamente precedido por um escape.

Valor Retornado

Retorna o comprimento da string escrita ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro opcional eol foi adicionado.
7.4.0 | O parâmetro escape agora aceita uma string vazia para desabilitar o mecanismo de escape proprietário.

Exemplos

Exemplo #1 Exemplo da fputcsv()

<?php

$lista = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($lista as $linha) {
fputcsv($fp, $linha);
}

fclose($fp);
?>

O exemplo acima irá escrever o seguinte no arquivo file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Notas

Nota: Se o PHP não estiver reconhecendo corretamente os finais de linha ao ler arquivos em um computador Macintosh ou que foram criados em um, habilitar a opção de configuração em tempo de execução auto_detect_line_endings pode ajudar a resolver o problema.

Veja Também

  • fgetcsv() - Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV


Sinônimo de fwrite

  • « fputcsv
  • fread »
  • PHP Manual
  • Funções do sistema de arquivos
  • Sinônimo de fwrite

fputs

(PHP 4, PHP 5, PHP 7, PHP 8)

fputs — Sinônimo de fwrite()

Descrição

Esta função é um apelido para: fwrite().


Leitura de arquivo segura para binário

  • « fputs
  • fscanf »
  • PHP Manual
  • Funções do sistema de arquivos
  • Leitura de arquivo segura para binário

fread

(PHP 4, PHP 5, PHP 7, PHP 8)

fread — Leitura de arquivo segura para binário

Descrição

fread(resource $stream, int $length): string|false

fread() lê até length bytes do ponteiro de arquivo informado em stream. A leitura é interrompida quando uma das seguintes condições são satisfeitas:

  • length bytes foram lidos
  • EOF (final do arquivo) é alcançado
  • um pacote tornou-se disponível ou o limite de tempo de socket foi atingido (para fluxos de rede)
  • se o fluxo é lido com buffer e não representa um arquivo, é realizada no máximo uma leitura de até o número de bytes igual ao tamanho do bloco (normalmente 8192); dependendo dos dados previamente armazenados em buffer, o tamanho dos dados retornados pode ser maior que o tamanho do bloco.

Parâmetros

stream

Um resource de ponteiro do sistema de arquivos que normalmente é criado usando fopen().

length

Limite de até length bytes lidos.

Valor Retornado

Retorna a string lida ou false em caso de falha.

Exemplos

Exemplo #1 Um simples exemplo de fread()

<?php
// lê o conteúdo do arquivo para uma string
$filename = "/usr/local/qualquer.txt";
$handle = fopen ($filename, "r");
$conteudo = fread ($handle, filesize ($filename));
fclose ($handle);
?>

Exemplo #2 Exemplo de fread() binário

Aviso

Em sistemas que diferenciam entre arquivos binários e texto (por exemplo Windows) o arquivo tem que ser aberto com 'b' incluído no parâmetro 'mode' da função fopen().

<?php
$filename = "c:\\files\\figura.gif";
$handle = fopen ($filename, "rb");
$conteudo = fread ($handle, filesize ($filename));
fclose ($handle);
?>

Exemplo #3 Exemplos de fread() remoto

Aviso

Ao ler de qualquer coisa que não seja um arquivo local comum, tal como de fluxos retornados ao ler arquivos remotos, ou de popen() e fsockopen(), a leitura irá parar depois que um pacote estiver disponível. Isto significa que deve-se juntar os dados em blocos como demonstrado nos exemplos abaixo.

<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>
<?php
$handle = fopen("http://www.example.com/", "rb");
if (FALSE === $handle) {
exit("Falha ao abrir fluxo para a URL");
}

$contents = '';

while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>

Notas

Nota:

Se for desejado apenas obter o conteúdo de um arquivo para uma string, utilize file_get_contents() que tem um desempenho muito melhor que o código acima.

Nota:

Note que fread() lê da posição atual do ponteiro de arquivo. Use ftell() para encontrar a posição atual do ponteiro e rewind() para retroceder a posição do ponteiro.

Veja Também

  • fwrite() - Escrita binary-safe em arquivos
  • fopen() - Abre um arquivo ou URL
  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet
  • popen() - Abre um processo como ponteiro de arquivo
  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fgetss() - Ler uma linha de um ponteiro de arquivo e retira as tags HTML
  • fscanf() - Interpreta a leitura de um arquivo de acordo com um formato
  • file() - Lê todo o arquivo para um array
  • fpassthru() - Imprime todo os dados restantes de um ponteiro de arquivo
  • fseek() - Procura (seeks) em um ponteiro de arquivo
  • ftell() - Retorna a posição atual do ponteiro de leitura/gravação do arquivo
  • rewind() - Retrocede a posição de um ponteiro de arquivos
  • unpack() - Desempacota dados de uma string binária


Interpreta a leitura de um arquivo de acordo com um formato

  • « fread
  • fseek »
  • PHP Manual
  • Funções do sistema de arquivos
  • Interpreta a leitura de um arquivo de acordo com um formato

fscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

fscanf — Interpreta a leitura de um arquivo de acordo com um formato

Descrição

fscanf(resource $stream, string $format, mixed &...$vars): array|int|false|null

A função fscanf() é semelhante à sscanf(), mas usa como entrada um arquivo associado com o fluxo stream e interpreta a entrada de acordo com o especificado em format.

Qualquer espaço em branco na string do formato corresponde a quaisquer espaços em branco no fluxo de entrada. Isto significa que até mesmo uma tabulação (\t) na string do formato pode corresponder a um único caractere de espaço no fluxo de entrada.

Cada chamada a fscanf() lê uma linha do arquivo.

Parâmetros

stream

Um resource de ponteiro do sistema de arquivos que normalmente é criado usando fopen().

format

O formato interpretado para string, que é descrito na documentação para sprintf() com as seguintes diferenças:

  • A função não reconhece a localidade.
  • F, g, G e b não são suportados.
  • D significa número decimal.
  • i significa inteiro com detecção de base.
  • n representa o número de caracteres processados até o momento.
  • s pára de ler em qualquer caractere de espaço em branco.
  • * em vez de argnum$ suprime a atribuição desta especificação de conversão.

vars

Os valores opcionais atribuídos.

Valor Retornado

Se somente dois parâmetros forem passados a esta função, os valores interpretados serão retornados como um array. Do contrário, se parâmetros opcionais forem passados, a função retornará o número de valores atribuídos. Os parâmetros opcionais devem ser passados por referência.

Se houver mais substrings esperadas no parâmetro format do que estiverem disponíveis na string, null será retornado. Para outros erros, false será retornado.

Exemplos

Exemplo #1 Exemplo de fscanf()

<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
list ($name, $profession, $countrycode) = $userinfo;
//... faz algo com os valores
}
fclose($handle);
?>

Exemplo #2 Conteúdo de users.txt

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it

Veja Também

  • fread() - Leitura de arquivo segura para binário
  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fgetss() - Ler uma linha de um ponteiro de arquivo e retira as tags HTML
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato
  • printf() - Output a formatted string
  • sprintf() - Return a formatted string


Procura (seeks) em um ponteiro de arquivo

  • « fscanf
  • fstat »
  • PHP Manual
  • Funções do sistema de arquivos
  • Procura (seeks) em um ponteiro de arquivo

fseek

(PHP 4, PHP 5, PHP 7, PHP 8)

fseek — Procura (seeks) em um ponteiro de arquivo

Descrição

fseek(resource $stream, int $offset, int $whence = SEEK_SET): int

Modifica o indicador de posição do arquivo referenciado por stream. A nova posição, medida em bytes a partir do início do arquivo, é obtida ao adicionar offset à posição especificada por whence.

Geralmente é permitido procurar (seek) além do fim-do-arquivo; se algum dado for então escrito, leituras além de qualquer região escrita entre o fim-do-arquivo e a região desejada irão trazer bytes com valor 0. Entretanto, alguns fluxos (streams) podem não suportar esse comportamento, especialmente quando têm definido um tamanho de armazenamento fixo.

Parâmetros

stream

Um resource de ponteiro do sistema de arquivos que normalmente é criado usando fopen().

offset

A posição.

Para mover até uma posição anterior ao fim-do-arquivo, você precisa passar um valor negativo no offset e definir o parâmetro whence para SEEK_END.

whence

Valores de whence são:

  • SEEK_SET - Define a posição igual ao offset bytes.
  • SEEK_CUR - Define a posição para a atual localização mais offset.
  • SEEK_END - Define a posição para o final do arquivo mais offset.

Valor Retornado

Em caso de sucesso, retorna 0; caso contrário, retorna -1.

Exemplos

Exemplo #1 Exemplo de fseek()

<?php

$fp = fopen('arquivo.txt');

// lê alguns dados
$data = fgets($fp, 4096);

// move de volta para o inicio do arquivo
// o mesmo que rewind($fp);
fseek($fp, 0);

?>

Notas

Nota:

Se você abriu o arquivo em modo de adição (a ou a+), quaisquer dados que você escreva no arquivo serão sempre acrescentados ao final, independente da posição do arquivo, e o resultado da chamada de fseek() será undefined.

Nota:

Nem todos os fluxos (streams) suportam procura (seek). Para aqueles que não suportam, procuras além da posição atual podem ser feitas através da leitura e descarte de dados; outras formas de procura vão falhar.

Veja Também

  • ftell() - Retorna a posição atual do ponteiro de leitura/gravação do arquivo
  • rewind() - Retrocede a posição de um ponteiro de arquivos


Lê informações sobre um arquivo usando um ponteiro de arquivo aberto

  • « fseek
  • fsync »
  • PHP Manual
  • Funções do sistema de arquivos
  • Lê informações sobre um arquivo usando um ponteiro de arquivo aberto

fstat

(PHP 4, PHP 5, PHP 7, PHP 8)

fstat — Lê informações sobre um arquivo usando um ponteiro de arquivo aberto

Descrição

fstat(resource $stream): array|false

Obtêm estatísticas do arquivo aberto pelo ponteiro de arquivos stream. Esta função é similar à função stat() exceto que ela opera em um ponteiro de arquivo aberto ao invés de um nome de arquivo.

Parâmetros

stream

Um resource de ponteiro do sistema de arquivos que normalmente é criado usando fopen().

Valor Retornado

Retorna um array com as estatísticas de um arquivo. O formato do array é descrito em detalhes na página do manual sobre stat(). Returns false on failure.

Exemplos

Exemplo #1 Exemplo fstat()

<?php

// abre um arquivo
$fp = fopen("/etc/passwd", "r");

// colhe as estatísticas
$fstat = fstat($fp);

// fecha o arquivo
fclose($fp);

// imprime somente a parte de índices associativos
print_r(array_slice($fstat, 13));

?>

O exemplo acima produzirá algo semelhante a:

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
)

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.


Sincroniza mudanças ao arquivo (incluindo metadados)

  • « fstat
  • ftell »
  • PHP Manual
  • Funções do sistema de arquivos
  • Sincroniza mudanças ao arquivo (incluindo metadados)

fsync

(PHP 8 >= 8.1.0)

fsync — Sincroniza mudanças ao arquivo (incluindo metadados)

Descrição

fsync(resource $stream): bool

Este função sincroniza mudanças ao arquivo, incluindo seus metadados. Isto é semelhante a fflush(), mas também instrui o sistema operacional a escrever na mídia de armazenamento.

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de fsync()

<?php

$file = 'test.txt';

$stream = fopen($file, 'w');
fwrite($stream, 'dados de teste');
fwrite($stream, "\r\n");
fwrite($stream, 'dados adicionais');

fsync($stream);
fclose($stream);
?>

Veja Também

  • fdatasync() - Sincroniza dados (mas não metadados) ao arquivo
  • fflush() - Força a liberação do buffer para um arquivo


Retorna a posição atual do ponteiro de leitura/gravação do arquivo

  • « fsync
  • ftruncate »
  • PHP Manual
  • Funções do sistema de arquivos
  • Retorna a posição atual do ponteiro de leitura/gravação do arquivo

ftell

(PHP 4, PHP 5, PHP 7, PHP 8)

ftell — Retorna a posição atual do ponteiro de leitura/gravação do arquivo

Descrição

ftell(resource $stream): int|false

Retorna a posição do ponteiro do arquivo referenciado por stream.

Parâmetros

stream

O ponteiro de arquivo precisa ser válido, e deve apontar para um arquivo aberto com sucesso por fopen() ou popen(). ftell() dá resultados indefinidos para fluxos no modo de acréscimo (abertos com a opção "a").

Valor Retornado

Retorna a posição do ponteiro do arquivo referenciado por stream como um inteiro; isto é, seu deslocamento no fluxo do arquivo.

Se um erro ocorrer, retorna false.

Nota: Como o tipo inteiro do PHP possui sinal e muitas plataformas usam números inteiros de 32 bits, algumas funções do sistema de arquivos podem retornar resultados inesperados para arquivos maiores que 2GB.

Exemplos

Exemplo #1 Exemplo de ftell()

<?php

// abre o arquivo e lê alguns dados
$fp = fopen("/etc/passwd", "r");
$data = fgets($fp, 12);

// onde estamos?
echo ftell($fp); // 11

fclose($fp);

?>

Veja Também

  • fopen() - Abre um arquivo ou URL
  • popen() - Abre um processo como ponteiro de arquivo
  • fseek() - Procura (seeks) em um ponteiro de arquivo
  • rewind() - Retrocede a posição de um ponteiro de arquivos


Trunca um arquivo a um tamanho especificado

  • « ftell
  • fwrite »
  • PHP Manual
  • Funções do sistema de arquivos
  • Trunca um arquivo a um tamanho especificado

ftruncate

(PHP 4, PHP 5, PHP 7, PHP 8)

ftruncate — Trunca um arquivo a um tamanho especificado

Descrição

ftruncate(resource $stream, int $size): bool

Toma o ponteiro de arquivo stream e trunca o arquivo para o comprimento definido em size.

Parâmetros

stream

O ponteiro do arquivo.

Nota:

O fluxo stream deve estar aberto para escrita.

size

O tamanho para o qual será truncado.

Nota:

Se o parâmetro size for maior que o arquivo, o arquivo será estendido com bytes nulos.

Se o parâmetro size for menor que o arquivo, o arquivo será truncado para este tamanho.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 File truncation example

<?php
$filename = 'lorem_ipsum.txt';

$handle = fopen($filename, 'r+');
ftruncate($handle, rand(1, filesize($filename)));
rewind($handle);
echo fread($handle, filesize($filename));
fclose($handle);
?>

Notas

Nota:

O ponteiro do arquivo não é alterado.

Veja Também

  • fopen() - Abre um arquivo ou URL
  • fseek() - Procura (seeks) em um ponteiro de arquivo


Escrita binary-safe em arquivos

  • « ftruncate
  • glob »
  • PHP Manual
  • Funções do sistema de arquivos
  • Escrita binary-safe em arquivos

fwrite

(PHP 4, PHP 5, PHP 7, PHP 8)

fwrite — Escrita binary-safe em arquivos

Descrição

fwrite(resource $stream, string $data, ?int $length = null): int|false

fwrite() grava o conteúdo de data no ponteiro de arquivo informado em stream.

Parâmetros

stream

Um resource de ponteiro do sistema de arquivos que normalmente é criado usando fopen().

data

A string a ser escrita.

length

Se length for um int, a escrita irá parar depois quelength forem escritos, ou o o fim de data for alcançado, o que ocorrer primeiro.

Valor Retornado

fwrite() retorna o número de bytes escritos, ou false em caso de falha.

Erros/Exceções

fwrite() emite um E_WARNING em caso falhas.

Registro de Alterações

Versão | Descrição
8.0.0 | length pode ser null.

Exemplos

Exemplo #1 Exemplo de fwrite()

<?php
$filename = 'test.txt';
$somecontent = "Acrescente isso no arquivo\n";

// Vamos garantir que o arquivo existe e pode ser escrito
if (is_writable($filename)) {

// Nesse exemplo estamos abrindo o $filename em modo append.
// O ponteiro do arquivo estará no final do arquivo
// e portanto é aqui que $somecontent será posicionado pelo fwrite().
if (!$fp = fopen($filename, 'a')) {
echo "Erro ao abrir o ($filename)";
exit;
}

// Escrever alguma coisa no arquivo.
if (fwrite($fp, $somecontent) === FALSE) {
echo "Erro ao escrever no arquivo ($filename)";
exit;
}

echo "Sucesso, escrito ($somecontent) no arquivo ($filename)";

fclose($fp);

} else {
echo "O arquivo não permite escrita";
}
?>

Notas

Nota:

Escrever em um fluxo de rede pode acabar antes de toda a string ser transmitida. O retorno de fwrite() precisa ser inspecionado:

<?php
function fwrite_stream($fp, $string) {
for ($written = 0; $written < strlen($string); $written += $fwrite) {
$fwrite = fwrite($fp, substr($string, $written));
if ($fwrite === false) {
return $written;
}
}
return $written;
}
?>

Nota:

Em sistemas que diferenciam entre arquivos binários e texto (por exemplo Windows) o arquivo tem que ser aberto com 'b' incluído no parâmetro 'mode' na fopen().

Nota:

Se o stream foi aberto com fopen() em modo de adição, escritas com fwrite() são atômicas (a não ser que o tamanho da data exceda o tamanho de bloco do sistema de arquivos, em algumas plataformas, e contanto que o arquivo esteja em um sistema de arquivos local). Sendo assim, não há necessidade de bloquear um recurso com flock() antes de chamar fwrite(); todos os dados serão escritos sem interrupção.

Nota:

Se escrever duas vezes no ponteiro do arquivo, então a informação será adicionado ao final do contéudo do arquivo:

<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// O conteúdo de 'data.txt' é 123, e não 23
?>

Veja Também

  • fread() - Leitura de arquivo segura para binário
  • fopen() - Abre um arquivo ou URL
  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet
  • popen() - Abre um processo como ponteiro de arquivo
  • file_get_contents() - Lê todo o conteúdo de um arquivo para uma string
  • pack() - Empacota dados em uma string binária


Acha caminhos que combinam com um padrão

  • « fwrite
  • is_dir »
  • PHP Manual
  • Funções do sistema de arquivos
  • Acha caminhos que combinam com um padrão

glob

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

glob — Acha caminhos que combinam com um padrão

Descrição

glob(string $pattern, int $flags = 0): array|false

A função glob() procura por todos os caminhos que combinem com o padrão pattern de acordo com as regras usadas pela função glob() da libc, que é semelhante às regras usadas por shells comuns.

Parâmetros

pattern

O padrão. Não é feita nenhuma expansão de til ou substituição de parâmetros.

Caracteres especiais:

  • * - Corresponde a zero ou mais caracteres.
  • ? - Corresponde a exatamente um caractere (qualquer caractere).
  • [...] - Corresponde a um caractere de um grupo de caracteres. Se o primeiro caractere for !, corresponde a qualquer caractere que não estiver no grupo.
  • \ - Faz escape no caractere seguinte, exceto quando a opção GLOB_NOESCAPE for usada.

flags

Opções válidas:

GLOB_BRACE (int)
Expande {a,b,c} para corresponder a 'a', 'b', ou 'c'

Nota: GLOB_BRACE não está disponível em alguns sistemas não-GNU, como Solaris ou Alpine Linux.

GLOB_ERR (int)
Para em erros de leitura (como diretórios não legíveis), por padrão erros são ignorados.
GLOB_ONLYDIR (int)
Retorna somente entradas de diretório que correspondem ao padrão
GLOB_MARK (int)
Adiciona uma barra (ou barra invertida no Windows) para cada diretório retornado
GLOB_NOSORT (int)
Retorna os arquivos conforme aparecem no diretório (sem ordenação). Quando esta opção não é usada, os nomes são ordenados alfabeticamente.
GLOB_NOCHECK (int)
Retorna o padrão de busca se nenhum arquivo correspondente a ele for encontrado.
GLOB_NOESCAPE (int)
Barras invertidas não escapam meta-caracteres
GLOB_AVAILABLE_FLAGS (int)
Todas as opções GLOB_* combinadas. Equivalente a 0 | GLOB_BRACE | GLOB_MARK | GLOB_NOSORT | GLOB_NOCHECK | GLOB_NOESCAPE | GLOB_ERR | GLOB_ONLYDIR

Valor Retornado

Retorna um array contendo os arquivos/diretórios que corresponderam, um array vazio se nenhum arquivo correspondeu ou false em caso de erro.

Nota:

Em alguns sistemas é impossível distinguir entre resultado vazio ou um erro.

Exemplos

Exemplo #1 Modo conveniente de como glob() pode susbstituir opendir() e companhia.

<?php
foreach (glob("*.txt") as $arquivo) {
echo "tamanho de $arquivo " . filesize($arquivo) . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

tamanho de funclist.txt 44686
tamanho de funcsummary.txt 267625
tamanho de quickref.txt 137820

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Nota: Esta função não está disponível em alguns sistemas (ex.: antigo Sun OS).

Veja Também

  • opendir() - Abre um manipulador de diretório
  • readdir() - Lê entrada do manipulador do diretório
  • closedir() - Fecha o manipulador do diretório
  • fnmatch() - Compara nome de arquivo com um padrão


Diz se o caminho é um diretório

  • « glob
  • is_executable »
  • PHP Manual
  • Funções do sistema de arquivos
  • Diz se o caminho é um diretório

is_dir

(PHP 4, PHP 5, PHP 7, PHP 8)

is_dir — Diz se o caminho é um diretório

Descrição

is_dir(string $filename): bool

Informa se o dado nome de arquivo é um diretório.

Parâmetros

filename

Caminho para o arquivo. Se filename for um nome de arquivo relativo, será verificado relativamente ao diretório atual de trabalho. Se filename for uma ligação simbólica ou ligação rígida então a ligação será resolvida e validado. Se open_basedir estiver habilitado restrições adicionais podem ser aplicáveis.

Valor Retornado

Retorna true se o nome do arquivo existe e é um diretório, false caso contrário.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo da is_dir()

<?php
var_dump(is_dir('a_file.txt'));
var_dump(is_dir('bogus_dir/abc'));

var_dump(is_dir('..')); // um diretório acima
?>

O exemplo acima produzirá:

bool(false)
bool(false)
bool(true)

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • chdir() - Muda o diretório
  • dir() - Retorna uma instância da classe Directory
  • opendir() - Abre um manipulador de diretório
  • is_file() - Informa se o arquivo é um arquivo comum
  • is_link() - Informa se o arquivo é uma ligação simbólica


Diz se um arquivo é executável

  • « is_dir
  • is_file »
  • PHP Manual
  • Funções do sistema de arquivos
  • Diz se um arquivo é executável

is_executable

(PHP 4, PHP 5, PHP 7, PHP 8)

is_executable — Diz se um arquivo é executável

Descrição

is_executable(string $filename): bool

Diz se um arquivo é executável.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Retorna true se o arquivo existe e é executável, ou false em caso de erro. Em sistemas POSIX, um arquivo é executável se o bit de executável das permissões de arquivo estiver ligado. Para Windows, veja a nota abaixo.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo da is_executable()

<?php

$file = '/home/vincent/arquivo.sh';

if (is_executable($file)) {
echo $file.' é executável';
} else {
echo $file.' não é executável';
}

?>

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Nota: No Windows, um arquivo é considerado executável se for assim reportado pela função GetBinaryType() da API do Windows; por razões de compatibilidade, arquivos com extensões .bat ou .cmd também são considerados executáveis. Antes do PHP 7.4.0, qualquer arquivo não vazio com extensão .exe ou .com era considerado executável. Note que PATHEXT é irrelevante para a função is_executable().

Veja Também

  • is_file() - Informa se o arquivo é um arquivo comum
  • is_link() - Informa se o arquivo é uma ligação simbólica


Informa se o arquivo é um arquivo comum

  • « is_executable
  • is_link »
  • PHP Manual
  • Funções do sistema de arquivos
  • Informa se o arquivo é um arquivo comum

is_file

(PHP 4, PHP 5, PHP 7, PHP 8)

is_file — Informa se o arquivo é um arquivo comum

Descrição

is_file(string $filename): bool

Informa se o arquivo é um arquivo comum.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Retorna true se o arquivo existe e é um arquivo comum, false caso contrário.

Nota: Como o tipo inteiro do PHP possui sinal e muitas plataformas usam números inteiros de 32 bits, algumas funções do sistema de arquivos podem retornar resultados inesperados para arquivos maiores que 2GB.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo da is_file()

<?php
var_dump(is_file('a_file.txt')) . "\n";
var_dump(is_file('/usr/bin/')) . "\n";
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • is_dir() - Diz se o caminho é um diretório
  • is_link() - Informa se o arquivo é uma ligação simbólica
  • SplFileInfo


Informa se o arquivo é uma ligação simbólica

  • « is_file
  • is_readable »
  • PHP Manual
  • Funções do sistema de arquivos
  • Informa se o arquivo é uma ligação simbólica

is_link

(PHP 4, PHP 5, PHP 7, PHP 8)

is_link — Informa se o arquivo é uma ligação simbólica

Descrição

is_link(string $filename): bool

Informa se o arquivo informado é uma ligação simbólica (symbolic link).

Parâmetros

filename

O caminho para o arquivo.

Valor Retornado

Retorna true se o nome do arquivo existe e se é uma ligação simbólica, false caso contrário.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Cria e confirma se um arquivo é uma ligação simbólica

<?php
$link = 'uploads';

if (is_link($link)) {
echo readlink($link);
} else {
symlink('uploads.php', $link);
}
?>

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • is_dir() - Diz se o caminho é um diretório
  • is_file() - Informa se o arquivo é um arquivo comum
  • readlink() - Retornar o alvo de uma ligação simbólica


Diz se o arquivo existe e se ele pode ser lido

  • « is_link
  • is_uploaded_file »
  • PHP Manual
  • Funções do sistema de arquivos
  • Diz se o arquivo existe e se ele pode ser lido

is_readable

(PHP 4, PHP 5, PHP 7, PHP 8)

is_readable — Diz se o arquivo existe e se ele pode ser lido

Descrição

is_readable(string $filename): bool

Diz se o arquivo existe e se ele pode ser lido

Parâmetros

filename

Caminho do arquivo.

Valor Retornado

Retorna true se o arquivo ou diretório especificado por filename existe e pode ser lido, false do contrário.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo de is_readable()

<?php
$filename = 'teste.txt';
if (is_readable($filename)) {
echo 'O arquivo pode ser lido.';
} else {
echo 'O arquivo não pode ser lido.';
}
?>

Notas

Lembre-se que o PHP pode acessar o arquivo como o usuário com o qual o servidor web é executado (geralmente 'nobody').

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Nota:

A verificação é feita usando os UID/GID reais ao invés dos efetivos.

Essa função pode retornar true para diretórios. Use a is_dir() para diferenciar entre arquivo e diretório.

Veja Também

  • is_writable() - Diz se o arquivo pode ser modificado
  • file_exists() - Verifica se um arquivo ou diretório existe
  • fgets() - Lê uma linha de um ponteiro de arquivo


Informa se o arquivo foi enviado por POST HTTP

  • « is_readable
  • is_writable »
  • PHP Manual
  • Funções do sistema de arquivos
  • Informa se o arquivo foi enviado por POST HTTP

is_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

is_uploaded_file — Informa se o arquivo foi enviado por POST HTTP

Descrição

is_uploaded_file(string $filename): bool

Retorna true se o arquivo com o nome filename foi enviado por POST HTTP. Isto é útil para garantir que um usuário malicioso não está tentando levar o script a trabalhar em arquivos que não deveria estar trabalhando -- por exemplo, /etc/passwd.

Este tipo de confirmação é importante principalmente se existe alguma chance que qualquer coisa feita com os arquivos enviados possa revelar seu conteúdo para o usuário, ou mesmo para outros usuários no mesmo sistema.

Para o funcionamento apropriado, a função is_uploaded_file() precisa de um argumento como $_FILES['userfile']['tmp_name'], - o nome do arquivo enviado na máquina do cliente $_FILES['userfile']['name'] não funciona.

Parâmetros

filename

O nome do arquivo sendo verificado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de is_uploaded_file()

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "O arquivo ". $_FILES['userfile']['name'] ." foi enviado com sucesso.\n";
echo "Mostrando o conteúdo\n";
readfile($_FILES['userfile']['tmp_name']);
} else {
echo "Possível ataque de envio de arquivo: ";
echo "nome do arquivo '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

Veja Também

  • move_uploaded_file() - Move um arquivo enviado para uma nova localização
  • $_FILES
  • Consulte Gerenciando Envio de Arquivos para um exemplo de uso básico.


Diz se o arquivo pode ser modificado

  • « is_uploaded_file
  • is_writeable »
  • PHP Manual
  • Funções do sistema de arquivos
  • Diz se o arquivo pode ser modificado

is_writable

(PHP 4, PHP 5, PHP 7, PHP 8)

is_writable — Diz se o arquivo pode ser modificado

Descrição

is_writable(string $filename): bool

Retorna true se o arquivo em filename existe e pode ser modificado. O argumento filename pode ser um diretório, permitindo que você verifique se o diretório tem permissão de escrita.

Lembre-se que o PHP pode acessar o arquivo como o usuário com o qual o servidor web é executado (geralmente 'nobody').

Parâmetros

filename

O arquivo sendo verificado.

Valor Retornado

Retorna true se o arquivo em filename existe e pode ser modificado.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Exemplo de is_writable()

<?php
$filename = 'teste.txt';
if (is_writable($filename)) {
echo 'O arquivo possui permissão de escrita';
} else {
echo 'O arquivo não possui permissão de escrita';
}
?>

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • is_readable() - Diz se o arquivo existe e se ele pode ser lido
  • file_exists() - Verifica se um arquivo ou diretório existe
  • fwrite() - Escrita binary-safe em arquivos


Sinônimo de is_writable

  • « is_writable
  • lchgrp »
  • PHP Manual
  • Funções do sistema de arquivos
  • Sinônimo de is_writable

is_writeable

(PHP 4, PHP 5, PHP 7, PHP 8)

is_writeable — Sinônimo de is_writable()

Descrição

Esta função é um apelido para: is_writable().


Modifica o grupo de porprietário da ligação simbólica

  • « is_writeable
  • lchown »
  • PHP Manual
  • Funções do sistema de arquivos
  • Modifica o grupo de porprietário da ligação simbólica

lchgrp

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

lchgrp — Modifica o grupo de porprietário da ligação simbólica

Descrição

lchgrp(string $filename, string|int $group): bool

Tenta modificar o grupo da ligação simbólica filename para o valor do parâmetro group.

Somente o superusuário pode alterar arbitrariamente o grupo de uma ligação simbólica; outros usuários podem alterar o grupo de uma ligação simbólica para qualquer grupo do qual esse usuário seja um membro.

Parâmetros

filename

Caminho para a ligação simbólica.

group

O grupo especificado por nome ou número.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Alterando um grupo de um ligação simbólica

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchgrp($link, 8);
?>

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Nota: Esta função não foi implementada em plataformas Windows.

Veja Também

  • chgrp() - Altera o grupo do arquivo
  • lchown() - Modifica o proprietário da ligação simbólica
  • chown() - Modifica o proprietário do arquivo
  • chmod() - Modifica as permissões do arquivo


Modifica o proprietário da ligação simbólica

  • « lchgrp
  • link »
  • PHP Manual
  • Funções do sistema de arquivos
  • Modifica o proprietário da ligação simbólica

lchown

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

lchown — Modifica o proprietário da ligação simbólica

Descrição

lchown(string $filename, string|int $user): bool

Tenta modificar o proprietário da ligação simbólica filename para o usuário user.

Somente o superusuário pode mudar o proprietário de uma ligação simbólica.

Parâmetros

filename

Caminho para o arquivo.

user

O nome do usuário ou número.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Alterando o proprietário de uma ligação simbólica

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchown($link, 8);
?>

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Nota: Esta função não foi implementada em plataformas Windows.

Veja Também

  • chown() - Modifica o proprietário do arquivo
  • lchgrp() - Modifica o grupo de porprietário da ligação simbólica
  • chgrp() - Altera o grupo do arquivo
  • chmod() - Modifica as permissões do arquivo


Criando uma ligação rígida

  • « lchown
  • linkinfo »
  • PHP Manual
  • Funções do sistema de arquivos
  • Criando uma ligação rígida

link

(PHP 4, PHP 5, PHP 7, PHP 8)

link — Criando uma ligação rígida

Descrição

link(string $target, string $link): bool

link() cria uma ligação rígida.

Parâmetros

target

Alvo da ligação.

link

O nome da ligação.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

A função falha e emite um E_WARNING se link já existir, ou se target não existir.

Exemplos

Exemplo #1 Criando uma ligação rígida

<?php
$target = 'source.ext'; // Esse é o arquivo existente
$link = 'newfile.ext'; // Esse é o nome da ligação

link($target, $link);
?>

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Nota: No Windows, essa função requer o PHP rodando em nível elevado de privilégios ou com o UAC desabilitado.

Veja Também

  • symlink() - Cria uma ligação simbólica
  • readlink() - Retornar o alvo de uma ligação simbólica
  • linkinfo() - Obtém informação sobre uma ligação
  • unlink() - Apaga um arquivo


Obtém informação sobre uma ligação

  • « link
  • lstat »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obtém informação sobre uma ligação

linkinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

linkinfo — Obtém informação sobre uma ligação

Descrição

linkinfo(string $path): int|false

Obtém informação sobre uma ligação.

Esta função é usada para verificar se uma ligação (apontada por path) realmente existe (usando o mesmo método da macro S_ISLNK definida em stat.h).

Parâmetros

path

Caminho para a ligação.

Valor Retornado

linkinfo() retorna o campo st_dev da estrutura stat do Unix C retornado pela chamada de sistema lstat. Retorna um inteiro não negativo em caso de sucesso, -1 caso a ligação não seja encontrada, ou false se uma violação de open.base_dir ocorrer.

Exemplos

Exemplo #1 Exemplo de linkinfo()

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Veja Também

  • symlink() - Cria uma ligação simbólica
  • link() - Criando uma ligação rígida
  • readlink() - Retornar o alvo de uma ligação simbólica


Obtém informações sobre um arquivo ou ligação simbólica

  • « linkinfo
  • mkdir »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obtém informações sobre um arquivo ou ligação simbólica

lstat

(PHP 4, PHP 5, PHP 7, PHP 8)

lstat — Obtém informações sobre um arquivo ou ligação simbólica

Descrição

lstat(string $filename): array|false

Obtém estatísticas do arquivo ou ligação simbólica com o nome de filename.

Parâmetros

filename

Caminho para um arquivo ou ligação simbólica.

Valor Retornado

Veja a página do manual para stat() para informações sobre a estrutura do array retornado que lstat() retorna. Esta função é idêntica a stat() exceto que se o parâmetro filename é uma ligação simbólica, e o status da ligação simbólica é retornado e não o status do arquivo apontado pela ligação simbólica.

Em caso de falhas retorna false.

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Comparação de stat() e lstat()

<?php
symlink('uploads.php', 'uploads');

// Compara a informação de uploads.php e uploads
array_diff(stat('uploads'), lstat('uploads'));
?>

O exemplo acima produzirá algo semelhante a:

Informação que difere entre os dois arquivos:

Array
(
    [ino] => 97236376
    [mode] => 33188
    [size] => 34
    [atime] => 1223580003
    [mtime] => 1223581848
    [ctime] => 1223581848
    [blocks] => 8
)

Notas

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • stat() - Obtém informações sobre um arquivo


Cria um diretório

  • « lstat
  • move_uploaded_file »
  • PHP Manual
  • Funções do sistema de arquivos
  • Cria um diretório

mkdir

(PHP 4, PHP 5, PHP 7, PHP 8)

mkdir — Cria um diretório

Descrição

mkdir(
string $directory,
int $permissions = 0777,
bool $recursive = false,
?resource $context = null
): bool

Tenta criar o diretório especificado pelo parâmetro directory.

Parâmetros

directory

O caminho do diretório.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

permissions

A permissão padrão é o octal 0777, que significa o acesso mais abrangente possível. Para mais informações sobre permissões, leia os detalhes na página da função chmod().

Nota:

O parâmetro permissions é ignorado no Windows.

Note que provavelmente será desejado especificar permissions como um número octal, o que significa que ele deve ser precedido por zero. permissions também é modificado inicial. O mode é também modificado pela umaks atual, pela umask atual, que pode ser modificada usando umask().

recursive

Se for true, quaisquer diretórios acima do especificado em directory serão criados, com as mesmas permissões.

context

Um resource de contexto de stream.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Nota:

Se o diretório a ser criado já existir, será considerado um erro e false será retornado. Use is_dir() ou file_exists() para verificar se o diretório já existe antes de tentar criá-lo.

Erros/Exceções

Emite um erro de nível E_WARNING se o diretório já existir.

Emite um erro de nível E_WARNING se as permissões relevantes impedem a criação do diretório.

Exemplos

Exemplo #1 Exemplo de mkdir()

<?php
mkdir("/caminho/para/meu/diretorio", 0700);
?>

Exemplo #2 mkdir() usando o parâmetro recursive

<?php
// Estrutura de diretório desejada
$structure = './profundidade1/profundidade2/profundidade3/';

// Para criar a estrutura aninhada, o parâmetro $recursive
// para mkdir() deve ser especificado.

if (!mkdir($structure, 0777, true)) {
die('Falha ao criar os diretórios...');
}

// ...
?>

Veja Também

  • is_dir() - Diz se o caminho é um diretório
  • rmdir() - Remove um diretório
  • umask() - Modificar a umask atual


Move um arquivo enviado para uma nova localização

  • « mkdir
  • parse_ini_file »
  • PHP Manual
  • Funções do sistema de arquivos
  • Move um arquivo enviado para uma nova localização

move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

move_uploaded_file — Move um arquivo enviado para uma nova localização

Descrição

move_uploaded_file(string $from, string $to): bool

Esta função faz uma verificação para garantir que o arquivo designado por from é um arquivo de envio válido (que tenha sido enviado pelo mecanismo de envio POST HTTP do PHP). Se o arquivo for válido, ele será movido para o nome de arquivo dado por to.

Este tipo de verificação é especialmente imporante se existir alguma chance de que qualquer coisa feita com os arquivos enviados possa revelar seus conteúdos ao usuário, ou mesmo para outros usuários no mesmo sistema.

Parâmetros

from

O nome do arquivo enviado.

to

O destino do arquivo movido.

Valor Retornado

Retorna true em caso de sucesso.

Se from não for um arquivo enviado válido, nenhuma ação ocorrerá e move_uploaded_file() retornará false.

Se from for um arquivo enviado válido, mas não puder ser movido por alguma razão, nenhuma ação ocorrerá e move_uploaded_file() retornará false. Adicionalmente, um alerta será emitido.

Exemplos

Exemplo #1 Enviando múltiplos arquivos

<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() pode evitar ataques no sistema de arquivos;
// valização e sanitização adicionais no nome do arquivo podem ser necessárias
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>

Notas

Nota:

move_uploaded_file() é afetada por open_basedir. Entretanto, restrições são aplicadas apenas no caminho de to para permitir a movimentação de arquivos enviados nos quais from possa conflitar com tais restrições. move_uploaded_file() assegura a segurança desta operação permitindo que apenas arquivos enviados através do PHP possam ser movidos.

Aviso

Se o arquivo de destino já existir, ele será sobrescrito.

Veja Também

  • is_uploaded_file() - Informa se o arquivo foi enviado por POST HTTP
  • rename() - Renomeia um arquivo ou diretório
  • Consulteja Gerenciando envio de arquivos para um exemplo de uso básico


Interpreta um arquivo de configuração

  • « move_uploaded_file
  • parse_ini_string »
  • PHP Manual
  • Funções do sistema de arquivos
  • Interpreta um arquivo de configuração

parse_ini_file

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_ini_file — Interpreta um arquivo de configuração

Descrição

parse_ini_file(string $filename, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false

parse_ini_file() carrega o arquivo INI especificado em filename e retorna as configurações contidas nele em um array associativo.

A estrutura do arquivo INI é a mesma do php.ini.

Parâmetros

filename

O nome do arquivo INI sendo interpretado. Se um caminho relativo for usado, será avaliado relativamente ao diretório atual de trabalho, e depois no caminho include_path.

process_sections

Definindo o parâmetro process_sections para true, obtém-se um array multidimensional com os nomes das seções e configurações incluídos. O padrão para process_sections é false

scanner_mode

Pode ser INI_SCANNER_NORMAL (padrão) ou INI_SCANNER_RAW. Se INI_SCANNER_RAW for fornecido, os valores das opções não serão interpretados.

A partir do PHP 5.6.1, também pode ser especificado como INI_SCANNER_TYPED. Nesse modo, os tipos boolean, null e integer são preservados quando possível. Os valores string "true", "on" e "yes" são convertidos em true. "false", "off", "no" e "none" são considerados false. "null" é convertido para null no modo tipado. Além disso, todas as strings numéricas são convertidas para o tipo inteiro, se possível.

Valor Retornado

As configurações são retornadas como um array associativo em caso de sucesso, and false on failure.

Exemplos

Exemplo #1 Conteúdo de sample.ini

; Este é um arquivo de configuração de exemplo
; Comentários iniciam com ';', como no php.ini

[primeira_secao]
um = 1
cinco = 5
animal = PASSARO

[segunda_secao]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

[terceira_secao]
versaophp[] = "5.0"
versaophp[] = "5.1"
versaophp[] = "5.2"
versaophp[] = "5.3"

urls[svn] = "http://svn.php.net"
urls[git] = "http://git.php.net"

Exemplo #2 Exemplo de parse_ini_file()

Constantes (mas não "constantes mágicas" como __FILE__) também podem ser interpretadas no arquivo INI. Se for definida uma constante como um valor INI antes de executar parse_ini_file(), ela será intergrada aos resultados. Somente valores INI são avaliados e o valor deve ser apenas a constante. Por exemplo:

<?php

define('PASSARO', 'Pássaro Dodo');

// Interpreta sem as seções
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Interpreta com as seções
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [um] => 1
    [cinco] => 5
    [animal] => Pássaro Dodo
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
    [versaophp] => Array
        (
            [0] => 5.0
            [1] => 5.1
            [2] => 5.2
            [3] => 5.3
        )

    [urls] => Array
        (
            [svn] => http://svn.php.net
            [git] => http://git.php.net
        )

)
Array
(
    [primeira_secao] => Array
        (
            [um] => 1
            [cinco] => 5
            [animal] = Pássaro Dodo
        )

    [segunda_secao] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

    [terceira_secao] => Array
        (
            [versaophp] => Array
                (
                    [0] => 5.0
                    [1] => 5.1
                    [2] => 5.2
                    [3] => 5.3
                )

            [urls] => Array
                (
                    [svn] => http://svn.php.net
                    [git] => http://git.php.net
                )

        )

)

Exemplo #3 parse_ini_file() interpretando um arquivo php.ini

<?php
// Uma função simples usada para comparar os resultados abaixo
function sim_nao($expression)
{
return($expression ? 'Sim' : 'Não');
}

// Obtém o caminho para o php.ini usando a função php_ini_loaded_file()
$ini_path = php_ini_loaded_file();

// Interpreta o php.ini
$ini = parse_ini_file($ini_path);

// Mostra e compara os valores, note que usar get_cfg_var()
// levará aos mesmos resultados para interpretado e carregado aqui
echo '(interpretado) magic_quotes_gpc = ' . sim_nao($ini['magic_quotes_gpc']) . PHP_EOL;
echo '(carregado) magic_quotes_gpc = ' . sim_nao(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
?>

O exemplo acima produzirá algo semelhante a:

(parsed) magic_quotes_gpc = Sim
(loaded) magic_quotes_gpc = Sim

Exemplo #4 Interpolação de Valor

Além de avaliar constantes, alguns caracteres possuem significado especial em um valor INI. Adicionamente, variáveis de ambiente e opções de configuração previamente definidas (consulte get_cfg_var()) podem ser lidas usando a sintaxe ${}.

; | é usado par OR bit a bit
tres = 2|3

; & é usado para AND bit a bit
quatro = 6&5

; ^ é usado para XOR bit a bit
cinco = 3^6

; ~ é usado para inversão bit a bit
dois_negativo = ~1

; () é usado para agrupamento
sete = (8|7)&(6|5)

; Interpola a variável de ambiente PATH
path = ${PATH}

; Interpola a opção de configuração 'memory_limit'
limite_de_memoria_configurado = ${memory_limit}

Exemplo #5 Fazendo Escape de Caracteres

Alguns caracteres têm significado especial em strings com aspas duplas e devem ser escapados pela barra invertida prefixada. Primeiramente, eles são as aspas duplas " como marcação dos limites, e a barra invertida \ em si (se seguida por um dos caracteres especiais):

fala = "Ela disse \"Exatamente meu ponto\"." ; Resulta em uma string contendo aspas duplas.
dica = "Use \\\" para escapar aspas duplas" ; Resulta em: Use \" para escapar aspas duplas

Há uma excecão feita para caminhos do tipo Windows: é possível não escapar barra invertida no final se a string entre aspas for diretamente seguida por uma quebra de linha:

save_path = "C:\Temp\"

Se for necessário escapar aspas duplas seguidas pode quebra de linha em um valor com várias linhas, é possível usar concatenação de valores da seguinte forma (há uma string com aspas duplas diretamente seguida por outra):

long_text = "Lorem \"ipsum\"""
 dolor" ; Resulta em: Lorem "ipsum"\n dolor

Outro caractere com significado especial é $ (sinal de cifrão). Deve ser escapado se for seguido de chave:

code = "\${test}"

Escapar caracteres não é suportado no modo INI_SCANNER_RAW (neste modo todos os caracateres são processados como eles são).

Note que o interpretador INI não suporta sequências escape padrões (\n, \t etc.). Se necessário, faça pós processamento do resultado de parse_ini_file() com a função stripcslashes().

Notas

Nota:

Essa função não tem relação nenhuma com o arquivo php.ini. Ele já está processado no momento em o script é executado. Esta função pode ser usada para ler os arquivos de configuração da própria aplicação do usuário.

Nota:

Se um valor no arquivo INI tiver algum caractere não alfanumérico, ele precisará ser envolvido em aspas duplas (").

Nota: Existem algumas palavras reservadas que não podem ser usadas como chaves em arquivos INI. Elas incluem: null, yes, no, true, false, on, off e none. Valores null, off, no e false resultam em "", e os valores on, yes e true resultam em "1", a menos que o modo INI_SCANNER_TYPED seja usado. Os caracteres ?{}|&~!()^" não devem ser usados em nenhum lugar da chave e têm um significado especial no valor.

Nota:

Entradas sem um sinal de igualdade são ignoradas. Por exemplo, "foo" é ignorado enquanto que "bar =" é interpretado e adicionado com um valor vazio. Por exemplo, o MySQL tem uma configuração "no-auto-rehash" no arquivo my.cnf que não leva um valor, portanto ela é ignorada.

Nota:

Arquivos INI são feralmente tratados como texto puro por servidores web e depois enviados aos navegadores se requisitados. Isto quer dizer que para segurança deve-se manter os arquivos INI fora da raiz de documentos da web ou reconfigurar seu servidor web para não disponibilizá-los. Falha em fazer isso pode introduzir um risco de segurança.

Veja Também

  • parse_ini_string() - Interpreta uma string de configuração


Interpreta uma string de configuração

  • « parse_ini_file
  • pathinfo »
  • PHP Manual
  • Funções do sistema de arquivos
  • Interpreta uma string de configuração

parse_ini_string

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

parse_ini_string — Interpreta uma string de configuração

Descrição

parse_ini_string(string $ini_string, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false

parse_ini_string() retorna as configurações da string ini_string em um array associativo.

A estrutura da string INI é a mesma dos php.ini's.

Parâmetros

ini_string

O conteúdo do arquivo ini sendo interpretado.

process_sections

Definindo o último parâmetro process_sections como true, você recupera um array multidimensional com o nome das seções e configurações inclusas. O padrão para process_sections é false

scanner_mode

O parâmetro pode ser INI_SCANNER_NORMAL (default) ou INI_SCANNER_RAW. Se INI_SCANNER_RAW for fornecido, então os valores das opçoes não serão analisados.

A partir do PHP 5.6.1, também pode ser especificado como INI_SCANNER_TYPED. Nesse modo, os tipos boolean, null e integer são preservados quando possível. Os valores string "true", "on" e "yes" são convertidos em true. "false", "off", "no" e "none" são considerados false. "null" é convertido para null no modo tipado. Além disso, todas as strings numéricas são convertidas para o tipo inteiro, se possível.

Valor Retornado

As configurações são retornadas como um array associativo, se sucesso e false caso falhe.

Notas

Nota: Existem algumas palavras reservadas que não podem ser usadas como chaves em arquivos INI. Elas incluem: null, yes, no, true e false, on, off, none. Valores null, off, no e false retornam como "", e valores on, yes e true resultam em "1", a menos que o modo INI_SCANNER_TYPED seja usado. Os caracteres ?{}|&~![()^" não podem ser usados em lugar algum na chave e têm significado especial no valor.

Veja Também

  • parse_ini_file() - Interpreta um arquivo de configuração


Retorna informações sobre um caminho de arquivo

  • « parse_ini_string
  • pclose »
  • PHP Manual
  • Funções do sistema de arquivos
  • Retorna informações sobre um caminho de arquivo

pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pathinfo — Retorna informações sobre um caminho de arquivo

Descrição

pathinfo(string $path, int $flags = PATHINFO_ALL): array|string

pathinfo() retorna informações sobre o caminho em path: ou um array associativo ou uma string, dependendo das opções em flags.

Nota:

Para informação sobre obtenção de informação sobre o caminho atual, leia a seção sobre variáveis reservadas predefinidas.

Nota:

pathinfo() opera ingenuamente na string de entrada, e não tem ciência sobre o sistema de arquivos real, ou componentes de caminho como "..".

Nota:

Apenas nos sistemas Windows, o caractere \ será interpretado como um separador de diretório. Em outros sistemas será tratado como qualquer outro caractere.

Cuidado

pathinfo() é afetado pela localidade, então para que seja interpretado corretamente um caminho contendo caracteres multibyte, a localização correspondente deve ser definida pela função setlocale().

Parâmetros

path

O caminho a ser analisado.

flags

Se presente, define o elemento expecífico a ser retornado; pode ser PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION ou PATHINFO_FILENAME.

Se flags não for especificado, retorna todos os elementos disponíveis.

Valor Retornado

Se o parâmetro flags não for passado, um array associativo contendo os seguintes elementos é retornado: dirname, basename, extension (se houver), e filename.

Nota:

Se path tiver mais de uma extensão, PATHINFO_EXTENSION retorna apenas a última e PATHINFO_FILENAME apenas remove a última. (veja o primeiro exemplo abaixo).

Nota:

Se path não tiver uma extensão, nenhum elemento extension será retornado (veja o segundo exemplo abaixo).

Nota:

Se o basename do parâmetro path começa com um ponto, os seguintes caracteres são interpretados como extension, e o filename estará vazio (veja o terceiro exemplo abaixo).

Se flags estiver presente, retorna uma string contendo o elemento solicitado.

Exemplos

Exemplo #1 Exemplo de pathinfo()

<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
?>

O exemplo acima produzirá:

/www/htdocs/inc
lib.inc.php
php
lib.inc

Exemplo #2 Exemplo de pathinfo() mostrando a diferença entre null e nenhuma extensão

<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);

$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>

O exemplo acima produzirá algo semelhante a:

string(0) ""

Notice: Undefined index: extension in test.php on line 6
NULL

Exemplo #3 Exemplo de pathinfo() para um arquivo iniciado por ponto

<?php
print_r(pathinfo('/some/path/.test'));
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [dirname] => /some/path
    [basename] => .test
    [extension] => test
    [filename] =>
)

Exemplo #4 Exemplo de pathinfo() com desreferenciação de array

O parâmetro flags não é uma máscara de bits. Apenas um único valor pode ser fornecido. Para selecionar apenas um conjunto limitado de valores interpretados, use desestruturação de array desta forma:

<?php
['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');

var_dump($basename, $dirname);
?>

O exemplo acima produzirá algo semelhante a:

string(11) "lib.inc.php"
string(15) "/www/htdocs/inc"

Veja Também

  • dirname() - Retorna o caminho para o diretório pai
  • basename() - Retorna a última parte do caminho
  • parse_url() - Parse a URL and return its components
  • realpath() - Retorna o path absoluto canonizado


Fecha o ponteiro de arquivo de processo

  • « pathinfo
  • popen »
  • PHP Manual
  • Funções do sistema de arquivos
  • Fecha o ponteiro de arquivo de processo

pclose

(PHP 4, PHP 5, PHP 7, PHP 8)

pclose — Fecha o ponteiro de arquivo de processo

Descrição

pclose(resource $handle): int

Fecha um ponteiro de arquivo a um tubo aberto por popen().

Parâmetros

handle

O ponteiro de arquivo deve ser válido e deve ter sido retornado por uma chamada bem sucedida à função popen().

Valor Retornado

Retorna o estado da finalização do processo que estava em execução. Em caso de erro, -1 é retornado.

Nota:

Se o PHP foi compilado com --enable-sigchild, o valor retornado por esta função é indefinido.

Exemplos

Exemplo #1 Exemplo de pclose()

<?php
$handle = popen('/bin/ls', 'r');
pclose($handle);
?>

Notas

Nota: Somente Unix:

pclose() é implementada internamente usando a chamada de sistema waitpid(3). Para obter o código real do estado de saída, a função pcntl_wexitstatus() deve ser usada.

Veja Também

  • popen() - Abre um processo como ponteiro de arquivo


Abre um processo como ponteiro de arquivo

  • « pclose
  • readfile »
  • PHP Manual
  • Funções do sistema de arquivos
  • Abre um processo como ponteiro de arquivo

popen

(PHP 4, PHP 5, PHP 7, PHP 8)

popen — Abre um processo como ponteiro de arquivo

Descrição

popen(string $command, string $mode): resource|false

Abre uma pipe para um processo executado ao se dar um fork para o comando dado por command.

Parâmetros

command

O comando

mode

O modo. Pode ser 'r' para leitura ou 'w' para escrita.

No Windows, o padrão de popen() é modo texto, isto é, qualquer caractere \n escrito ou lido do tubo será traduzido para \r\n. Se isto não for desejado, o modo binário pode ser forçado definindo-se o mode para 'rb' e 'wb', respectivamente.

Valor Retornado

Retorna um ponteiro de arquivo idêntico ao retornado por fopen(), exceto que ele é unidirecional (pode ser usado somente para leitura ou gravação) e tem que ser fechado com pclose(). Este ponteiro pode ser usado com fgets(), fgetss() e fwrite(). Quando o modo é 'r', o ponteiro de arquivo retornado é igual ao STDOUT do comando; quando o modo é 'w', o ponteiro de arquivo é igual ao STDIN do comando.

Se um erro ocorrer, retorna false.

Exemplos

Exemplo #1 Exemplo de popen()

<?php
$handle = popen("/bin/ls", "r");
?>

Se o comando a ser executado não for encontrado, um resource válido é retornado. Isso pode parecer estranho, mas tem sentido: permite que você acesse qualquer mensagem de erro retornado pelo sistema operacional.

Exemplo #2 Exemplo da popen()

<?php
error_reporting(E_ALL);

/* Adiciona redirecionamento para que seja obtido stderr. */
$handle = popen('/caminho/para/executavel 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

Notas

Nota:

Se for necessário suporte bidirecional (duas mãos), use proc_open().

Veja Também

  • pclose() - Fecha o ponteiro de arquivo de processo
  • fopen() - Abre um arquivo ou URL
  • proc_open() - Executa um comando e abre ponteiros de arquivo para entrada/saída


Exibe o conteúdo de um arquivo

  • « popen
  • readlink »
  • PHP Manual
  • Funções do sistema de arquivos
  • Exibe o conteúdo de um arquivo

readfile

(PHP 4, PHP 5, PHP 7, PHP 8)

readfile — Exibe o conteúdo de um arquivo

Descrição

readfile(string $filename, bool $use_include_path = false, ?resource $context = null): int|false

Lê um arquivo e escreve o seu conteúdo para o buffer de saída.

Parâmetros

filename

O nome do arquivo a ser lido.

use_include_path

Pode-se usar o segundo parâmetro opcional e configurá-lo para true, se for desejado procurar o arquivo no include_path também.

context

Um resource de contexto de stream.

Valor Retornado

Retorna o número de bytes lidos do arquivo em caso de sucesso, ou false em caso de falha

Erros/Exceções

Em caso de falha, um E_WARNING será emitido.

Exemplos

Exemplo #1 Forçando um recebimento usando readfile()

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
?>

O exemplo acima produzirá algo semelhante a:

Diálogo de Abrir / Salvar

Notas

Nota:

readfile() não apresentará por si só nenhum problema de memória, mesmo no envio de grandes arquivos. Se for encontrado um erro de falta de memória, certifique-se que o buffer de saída está desligado com ob_get_level().

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Veja Também

  • fpassthru() - Imprime todo os dados restantes de um ponteiro de arquivo
  • file() - Lê todo o arquivo para um array
  • fopen() - Abre um arquivo ou URL
  • include - include
  • require - require
  • virtual() - Realiza uma sub-requisição Apache
  • file_get_contents() - Lê todo o conteúdo de um arquivo para uma string
  • Protocolos e Wrappers suportados


Retornar o alvo de uma ligação simbólica

  • « readfile
  • realpath_cache_get »
  • PHP Manual
  • Funções do sistema de arquivos
  • Retornar o alvo de uma ligação simbólica

readlink

(PHP 4, PHP 5, PHP 7, PHP 8)

readlink — Retornar o alvo de uma ligação simbólica

Descrição

readlink(string $path): string|false

readlink() faz o mesmo que a função do C.

Parâmetros

path

O caminho para a ligação simbólica.

Valor Retornado

Retorna o conteúdo do caminho da ligação simbólica ou false em erro.

Nota: Esta função falha se path não é um symlink, exceto no Windows, onde o caminho normalizado é retornado.

Exemplos

Exemplo #1 Exemplo de readlink()

<?php

// Exibe algo como /boot/vmlinux-2.4.20-xfs
echo readlink('/vmlinuz');

?>

Veja Também

  • is_link() - Informa se o arquivo é uma ligação simbólica
  • symlink() - Cria uma ligação simbólica
  • linkinfo() - Obtém informação sobre uma ligação


Obter entradas de cache do caminho absoluto

  • « readlink
  • realpath_cache_size »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obter entradas de cache do caminho absoluto

realpath_cache_get

(PHP 5 >= 5.3.2, PHP 7, PHP 8)

realpath_cache_get — Obter entradas de cache do caminho absoluto

Descrição

realpath_cache_get(): array

Obtém o conteúdo do cache do caminho absoluto.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array com as entradas do caminho absoluto. As chaves são o caminho absoluto, e os valores são arrays de informações dos dados, contendo o caminho absoluto, data de expiração, e outras informações mantidas no cache.

Exemplos

Exemplo #1 realpath_cache_get() exemplo

<?php
var_dump(realpath_cache_get());
?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  ["/test"]=>
  array(4) {
    ["key"]=>
    int(123456789)
    ["is_dir"]=>
    bool(true)
    ["realpath"]=>
    string(5) "/test"
    ["expires"]=>
    int(1260318939)
  }
  ["/test/test.php"]=>
  array(4) {
    ["key"]=>
    int(987654321)
    ["is_dir"]=>
    bool(false)
    ["realpath"]=>
    string(12) "/root/test.php"
    ["expires"]=>
    int(1260318939)
  }
}

Veja Também

  • realpath_cache_size() - Obter o tamanho do cache do caminho absoluto


Obter o tamanho do cache do caminho absoluto

  • « realpath_cache_get
  • realpath »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obter o tamanho do cache do caminho absoluto

realpath_cache_size

(PHP 5 >= 5.3.2, PHP 7, PHP 8)

realpath_cache_size — Obter o tamanho do cache do caminho absoluto

Descrição

realpath_cache_size(): int

Obtém a quantidade de memória utilizada pelo cache do caminho absoluto.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna quanta memória o cache do caminho absoluto está utilizando.

Exemplos

Exemplo #1 Exemplo de realpath_cache_size()

<?php
var_dump(realpath_cache_size());
?>

O exemplo acima produzirá algo semelhante a:

int(412)

Veja Também

  • realpath_cache_get() - Obter entradas de cache do caminho absoluto
  • As opções de configurações de realpath_cache_size


Retorna o path absoluto canonizado

  • « realpath_cache_size
  • rename »
  • PHP Manual
  • Funções do sistema de arquivos
  • Retorna o path absoluto canonizado

realpath

(PHP 4, PHP 5, PHP 7, PHP 8)

realpath — Retorna o path absoluto canonizado

Descrição

realpath(string $path): string|false

realpath() expande todas as ligações simbólicas e resolve referências para /./, /../ e caracteres / extras no caminho path, e retorna o caminho absoluto canonizado.

Parâmetros

path

O caminho a ser verificado.

Nota:

Ainda que caminho precise ser fornecido, o valor pode ser uma string vazia. Neste caso, o valor é interpretado como o diretório atual.

Valor Retornado

Retorna o caminho absouto canonizado em caso de sucesso. O caminho resultante não conterá nenhuma ligação simbólica ou componentes /./ e /../. Delimitadores no final da string, como \ e /, também são removidos.

realpath() retorna false em caso de falha, por exemplo, se o caminho não existir.

Nota:

O script em execução deve ter permissões de executável em todos os diretórios na hierarquia, caso contrário realpath() retornará false.

Nota:

Para sistemas de arquivos insensíveis a maiúsculas/minúsculas, realpath() pode ou não normalizar a forma maiúscula/minúscula do caractere.

Nota:

A função realpath() não funcionará para um arquivo que estiver dentro de um Phar pois este caminho será virtual, e não real.

Nota:

No Windows, junções e ligações simbólicas a diretórios somente são expandidas em um nível.

Nota: Como o tipo inteiro do PHP possui sinal e muitas plataformas usam números inteiros de 32 bits, algumas funções do sistema de arquivos podem retornar resultados inesperados para arquivos maiores que 2GB.

Exemplos

Exemplo #1 Exemplo de realpath()

<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;

echo realpath('/tmp/') . PHP_EOL;
?>

O exemplo acima produzirá:

/etc/passwd

Exemplo #2 realpath() no Windows

No Windows, realpath() modificará o estilo Unix de diretórios para o estilo Windows.

<?php
echo realpath('/windows/system32'), PHP_EOL;

echo realpath('C:\Program Files\\'), PHP_EOL;
?>

O exemplo acima produzirá:

C:\WINDOWS\System32
C:\Program Files

Veja Também

  • basename() - Retorna a última parte do caminho
  • dirname() - Retorna o caminho para o diretório pai
  • pathinfo() - Retorna informações sobre um caminho de arquivo


Renomeia um arquivo ou diretório

  • « realpath
  • rewind »
  • PHP Manual
  • Funções do sistema de arquivos
  • Renomeia um arquivo ou diretório

rename

(PHP 4, PHP 5, PHP 7, PHP 8)

rename — Renomeia um arquivo ou diretório

Descrição

rename(string $from, string $to, ?resource $context = null): bool

Tenta renomear from para to, movendo entre diretórios se necessário. Se o arquivo to já existir, ele será sobrescrito. Se renomeando um diretório e to já existir, esta função emite um warning.

Parâmetros

from

O nome anterior.

Nota:

O empacotador utilizado em from precisa ser o mesmo empacotador utilizado em to.

to

O novo nome.

Nota: No Windows, se to já existir, ele precisa ter permissão de escrita. Se não a função rename() falhará e emitirá um E_WARNING.

context

Um resource de contexto de stream.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo da rename()

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

Veja Também

  • copy() - Copia arquivo
  • unlink() - Apaga um arquivo
  • move_uploaded_file() - Move um arquivo enviado para uma nova localização


Retrocede a posição de um ponteiro de arquivos

  • « rename
  • rmdir »
  • PHP Manual
  • Funções do sistema de arquivos
  • Retrocede a posição de um ponteiro de arquivos

rewind

(PHP 4, PHP 5, PHP 7, PHP 8)

rewind — Retrocede a posição de um ponteiro de arquivos

Descrição

rewind(resource $stream): bool

Define o indicador de posição de arquivo de stream para o início do fluxo do arquivo.

Nota:

Se o arquivo foi aberto no modo de acréscimo ("a" ou "a+"), qualquer dado que for escrito no arquivo será sempre acrescentado, independente da posição do ponteiro.

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de rewind() sobrescrevendo

<?php
$handle = fopen('output.txt', 'r+');

fwrite($handle, 'Frase realmente longa.');
rewind($handle);
fwrite($handle, 'Foo');
rewind($handle);

echo fread($handle, filesize('output.txt'));

fclose($handle);
?>

O exemplo acima produzirá algo semelhante a:

Foose realmente longa.

Veja Também

  • fread() - Leitura de arquivo segura para binário
  • fseek() - Procura (seeks) em um ponteiro de arquivo
  • ftell() - Retorna a posição atual do ponteiro de leitura/gravação do arquivo
  • fwrite() - Escrita binary-safe em arquivos


Remove um diretório

  • « rewind
  • set_file_buffer »
  • PHP Manual
  • Funções do sistema de arquivos
  • Remove um diretório

rmdir

(PHP 4, PHP 5, PHP 7, PHP 8)

rmdir — Remove um diretório

Descrição

rmdir(string $directory, ?resource $context = null): bool

Tenta remover o diretório com o nome de directory. O diretório deve estar vazio e as permissões relevantes devem autorizar a operação. Um erro de nível E_WARNING será gerado em caso de falha.

Parâmetros

directory

Caminho para o diretório.

context

Um resource de contexto de stream.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de rmdir()

<?php
if (!is_dir('examples')) {
mkdir('examples');
}

rmdir('examples');
?>

Veja Também

  • is_dir() - Diz se o caminho é um diretório
  • mkdir() - Cria um diretório
  • unlink() - Apaga um arquivo


Sinônimo de stream_set_write_buffer

  • « rmdir
  • stat »
  • PHP Manual
  • Funções do sistema de arquivos
  • Sinônimo de stream_set_write_buffer

set_file_buffer

(PHP 4, PHP 5, PHP 7, PHP 8)

set_file_buffer — Sinônimo de stream_set_write_buffer()

Descrição

Esta função é um apelido para: stream_set_write_buffer().


Obtém informações sobre um arquivo

  • « set_file_buffer
  • symlink »
  • PHP Manual
  • Funções do sistema de arquivos
  • Obtém informações sobre um arquivo

stat

(PHP 4, PHP 5, PHP 7, PHP 8)

stat — Obtém informações sobre um arquivo

Descrição

stat(string $filename): array|false

Coleta estatísticas do arquivo informado em filename. Se filename for uma ligação simbólica, estatísticas serão do próprio arquivo, não da ligação. Antes do PHP 7.4.0, nas compilações NTS do Windows, as estatísticas size, atime, mtime e ctime statistics são da ligação simbólica, neste caso.

lstat() é idêntica a stat() exceto que ela foi baseada no estado de ligações simbólicas.

Parâmetros

filename

Caminho para o arquivo.

Valor Retornado

Formato de retorno de stat() e fstat()
Numérico | Associativo | Descrição
0 | dev | número do dispositivo ***
1 | ino | número do inode ***
2 | mode | modo de proteção do inode *****
3 | nlink | número de ligações
4 | uid | id de usuário do proprietário *
5 | gid | id de grupo do proprietário *
6 | rdev | tipo de dispositivo, se for inode
7 | size | tamanho em bytes
8 | atime | horário do último acesso (timestamp Unix)
9 | mtime | horário da última modificação (timestamp Unix)
10 | ctime | hora da última modificação do inode (timestamp Unix)
11 | blksize | tamanho do bloco de E/S no sistema de arquivos **
12 | blocks | número de blocos de 512 bytes alocados **

* No Windows será sempre 0.

** Válido apenas em sistemas que suportam o tipo st_blksize type - outros sistemas (ex.: Windows) retornam -1.

*** No Windows, a partir do PHP 7.4.0, este é o número de série do volume que contém o arquivo, que é um inteiro de 64-bits sem sinal, ou seja, pode sobrecarregar. Anteriormente, era uma representação numérica da letra do dispositivo (ex.: 2 para C:) para stat(), e 0 para lstat().

**** No Windows, a partir do PHP 7.4.0, este é o identificador associado com o arquivo, que é um inteiro de 64-bits sem sinal, ou seja, pode sobrecarregar. Anteriormente, era sempre 0.

***** No Windows, o bit de permissão de escrita é definido de acordo com o atributo de somente-leitura do arquivo, e o mesmo valor é reportado para todos os usuários, grupos e proprietários. A ACL não é levada em consideração, contrário a is_writable().

O valor de mode contém informação lida por várias funções. Quando escrita em octal, começando da direita, os primeiros três dígitos são retornados por chmod(). O dígito seguinte é ignorado pelo PHP. Os dois dígitos seguintes indicam o tipo de arquivo:

Tipos de arquivo para mode
mode em octal | Significado
0140000 | socket
0120000 | ligação
0100000 | arquivo normal
0060000 | dispositivo de bloco
0040000 | diretório
0020000 | dispositivo de caracteres
0010000 | fifo
Por exemplo, um arquivo normal poderia ser 0100644 e um diretório poderia ser 0040755.

Em caso de erro, stat() retorna false.

Nota: Como o tipo inteiro do PHP possui sinal e muitas plataformas usam números inteiros de 32 bits, algumas funções do sistema de arquivos podem retornar resultados inesperados para arquivos maiores que 2GB.

Erros/Exceções

Em caso de falha, um E_WARNING é emitido.

Registro de Alterações

Versão | Descrição
7.4.0 | No Windows, o número do dispositivo agora é o número de série do volume que contém o arquivo, e o número do inode é o identificador associado com o arquivo.
7.4.0 | As estatísticas size, atime, mtime e ctime de ligações simbólicas agora são sempre aquelas do alvo. Anteriormente não era o caso para compilações NTS do Windows.

Exemplos

Exemplo #1 stat() example

<?php
/* Obtém estatística sobre o arquivo */
$stat = stat('C:\php\php.exe');

/*
* Mostra o horário de acesso ao arquivo, é o mesmo que
* chamar fileatime()
*/
echo 'Horário de acesso: ' . $stat['atime'];

/*
* Mostra o horário de modificação do arquivo, é o mesmo que
* chamar filemtime()
*/
echo 'Horário de modificação: ' . $stat['mtime'];

/* Mostra o número de dispositivo */
echo 'Número de dispositivo: ' . $stat['dev'];
?>

Exemplo #2 Usando informação de stat() junto com a função touch()

<?php
/* Obtém estatística sobre o arquivo */
$stat = stat('C:\php\php.exe');

/* Falhou a obtenção de estatística? */
if (!$stat) {
echo 'stat() falhou...';
} else {
/*
* Queremos o horário de acesso 1 semana
* depois do atual.
*/
$atime = $stat['atime'] + 604800;

/* Toca o arquivo */
if (!touch('some_file.txt', time(), $atime)) {
echo 'Falha ao tocar o arquivo...';
} else {
echo 'touch() retorno com sucesso...';
}
}
?>

Notas

Nota:

Note que a resolução de tempo pode variar de um sistema de arquivos para outro.

Nota: Os resultados desta função são armazenados em cache. Consulte a função clearstatcache() para mais detalhes.

Dica

A partir do PHP 5.0.0, esta função também pode ser usada com alguns wrappers URL. Consulte os Protocolos e Wrappers suportados para determinar quais wrappers suportam a família de funções stat().

Veja Também

  • lstat() - Obtém informações sobre um arquivo ou ligação simbólica
  • fstat() - Lê informações sobre um arquivo usando um ponteiro de arquivo aberto
  • filemtime() - Obtém o horário de modificação do arquivo
  • filegroup() - Lê o grupo do arquivo
  • SplFileInfo


Cria uma ligação simbólica

  • « stat
  • tempnam »
  • PHP Manual
  • Funções do sistema de arquivos
  • Cria uma ligação simbólica

symlink

(PHP 4, PHP 5, PHP 7, PHP 8)

symlink — Cria uma ligação simbólica

Descrição

symlink(string $target, string $link): bool

symlink() cria uma ligação simbólica ao alvo existente em target com o nome especificado em link.

Parâmetros

target

Alvo da ligação.

link

O nome da ligação.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

A função falha e emite um E_WARNING, se link já existir. No Windows, a função também falha e emite um E_WARNING se target não existir.

Exemplos

Exemplo #1 Cria uma ligação simbólica

<?php
$target = 'uploads.php';
$link = 'uploads';
symlink($target, $link);

echo readlink($link);
?>

Veja Também

  • link() - Criando uma ligação rígida
  • readlink() - Retornar o alvo de uma ligação simbólica
  • linkinfo() - Obtém informação sobre uma ligação
  • unlink() - Apaga um arquivo


Cria arquivo com nome único

  • « symlink
  • tmpfile »
  • PHP Manual
  • Funções do sistema de arquivos
  • Cria arquivo com nome único

tempnam

(PHP 4, PHP 5, PHP 7, PHP 8)

tempnam — Cria arquivo com nome único

Descrição

tempnam(string $directory, string $prefix): string|false

Cria um arquivo com nome único, com permissões de acesso definidas para 0600, no diretório especificado. Se o diretório não existir ou não puder ser escrito, tempnam() pode gerar um arquivo no diretório temporário do sistema e retornar o caminho completo ao arquivo, incluindo seu nome.

Parâmetros

directory

O diretório onde o arquivo temporário será criado.

prefix

O prefixo do nome do arquivo temporário gerado.

Nota: Apenas os primeiros 63 caracteres do prefixo são usados, o restante é ignorado. Windows usa apenas os primeiros três caracteres do prefixo.

Valor Retornado

Retorna o novo nome do arquivo temporário (com caminho), ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.1.0 | tempnam() agora emite um aviso ao cair de volta no diretório temporário do sistema.

Exemplos

Exemplo #1 Exemplo de tempnam()

<?php
$tmpfname = tempnam ("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, "writing to tempfile");
fclose($handle);

// faz alguma coisa

unlink($tmpfname);
?>

Notas

Nota: Se o PHP não conseguir criar um arquivo no diretório informado directory, ele cria no diretório padrão do sistema. No sistema de arquivos NTFS isto também acontece se o diretório especificado em directory contiver mais que 65534 arquivos.

Veja Também

  • tmpfile() - Cria um arquivo temporário
  • sys_get_temp_dir() - Returns directory path used for temporary files
  • unlink() - Apaga um arquivo


Cria um arquivo temporário

  • « tempnam
  • touch »
  • PHP Manual
  • Funções do sistema de arquivos
  • Cria um arquivo temporário

tmpfile

(PHP 4, PHP 5, PHP 7, PHP 8)

tmpfile — Cria um arquivo temporário

Descrição

tmpfile(): resource|false

Cria um arquivo temporário com um nome único em modo de leitura-gravação-binário (w+b) e retorna um manipulador do arquivo.

O arquivo é automaticamente removido quando ele é fechado (por exemplo, ao chamar fclose(), ou quando não há mais referências para o manipulador do arquivo retornado por tmpfile()), ou quando o script finalizar.

Cuidado

Se o script terminar inesperadamente, o arquivo temporário pode não ser removido.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o manipulador de arquivo, similar ao que é retornado por fopen(), para o novo arquivo ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo da tmpfile()

<?php
$temp = tmpfile();
fwrite($temp, "escrevendo no arquivo temporario");
fseek($temp, 0);
echo fread($temp, 1024);
fclose($temp); // isto remove o arquivo
?>

O exemplo acima produzirá:

writing to tempfile

Veja Também

  • tempnam() - Cria arquivo com nome único
  • sys_get_temp_dir() - Returns directory path used for temporary files


Define horário de acesso e de modificação de arquivo

  • « tmpfile
  • umask »
  • PHP Manual
  • Funções do sistema de arquivos
  • Define horário de acesso e de modificação de arquivo

touch

(PHP 4, PHP 5, PHP 7, PHP 8)

touch — Define horário de acesso e de modificação de arquivo

Descrição

touch(string $filename, ?int $mtime = null, ?int $atime = null): bool

Tenta mudar os horários de acesso e modificação do arquivo no parâmetro filename para o valor informado em mtime. Note que o horário de acesso é sempre modificado, independente do número de parâmetros.

Se o arquivo não existe, ele será criado.

Parâmetros

filename

O nome do arquivo a ser atualizado.

mtime

Horário da atualização. Se mtime for null, o horário atual do sistema (time()) é usado.

atime

Se não null, o horário de acesso do arquivo é definido para o valor de atime. Caso contrário, é definido para o valor passado ao parâmetro mtime. Se ambos forem null, o horário atual do sistema é usado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | mtime e atime agora podem ser nulos.

Exemplos

Exemplo #1 Exemplo da função touch()

<?php
if (touch ($nomedoarquivo)) {
echo 'O horário de ' . $nomedoarquivo . ' foi modificado para o horário atual';
} else {
echo 'Desculpe, não foi possivel modificar o horário de ' . $nomedoarquivo;
}
?>

Exemplo #2 touch() usando o parâmetro mtime

<?php
// Este é o horário de modificação, vamos defini-lo para uma hora no passado.
$hora = time() - 3600;

// Toca o arquivo
if (!touch('algum_arquivo.txt', $hora)) {
echo 'Opa, algo deu errado...';
} else {
echo 'Horário modificado com sucesso';
}
?>

Notas

Nota:

Note que a resolução de tempo pode variar de um sistema de arquivos para outro.


Modificar a umask atual

  • « touch
  • unlink »
  • PHP Manual
  • Funções do sistema de arquivos
  • Modificar a umask atual

umask

(PHP 4, PHP 5, PHP 7, PHP 8)

umask — Modificar a umask atual

Descrição

umask(?int $mask = null): int

umask() modifica o umask do PHP para a mask & 0777 e retorna o umask antigo. Quando o PHP está sendo usado como um módulo de servidor, o umask é restaurado ao final de cada requisição.

Parâmetros

mask

A nova máscara.

Valor Retornado

Se mask for null, umask() simplesmente retorna a umask atual senão a umask antiga é retornada.

Registro de Alterações

Versão | Descrição
8.0.0 | mask agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo da umask()

<?php
$umaskAntigo = umask(0);
chmod("/caminho/diretorio/arquivo.txt", 0755);
umask($umaskAntigo);

// Checking
if ($umaskAntigo != umask()) {
die('Ocorreu um erro ao voltar para o umask antigo');
}
?>

Notas

Nota:

Evite usar esta função em servidores web multithreaded. É melhor modificar as permissões do arquivo com chmod() depois de criar o arquivo. Usando umask() pode levar a comportamento inesperado de scripts executados concorrentemente e do próprio webserver porque todos eles usam a mesma umask.


Apaga um arquivo

  • « umask
  • Inotify »
  • PHP Manual
  • Funções do sistema de arquivos
  • Apaga um arquivo

unlink

(PHP 4, PHP 5, PHP 7, PHP 8)

unlink — Apaga um arquivo

Descrição

unlink(string $filename, ?resource $context = null): bool

Apaga o arquivo filename. Similar a função do C no Unix unlink(). Emite um erro E_WARNING level no caso de falha.

Parâmetros

filename

Caminho para o arquivo.

Se o arquivo for uma ligação simbólica, a ligação será apagada. No Windows, para apagar uma ligação para um diretório, deve ser utilizada a função rmdir().

context

Um resource de contexto de stream.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.3.0 | No Windows, agora é possível realizar o unlink() em arquivos abertos, quando antes isso falhava. Entretanto, ainda não é possível de recriar o arquivo apagado, até que o acessos ao arquivo anterior tenham sido fechados.

Exemplos

Exemplo #1 Exemplo de unlink()

<?php
$fh = fopen('test.html', 'a');
fwrite($fh, '<h1>Hello world!</h1>');
fclose($fh);

unlink('test.html');
?>

Veja Também

  • rmdir() - Remove um diretório


Inotify

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação/Configuração
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Inotify Funções
    • inotify_add_watch — Add a watch to an initialized inotify instance
    • inotify_init — Initialize an inotify instance
    • inotify_queue_len — Return a number upper than zero if there are pending events
    • inotify_read — Read events from an inotify instance
    • inotify_rm_watch — Remove an existing watch from an inotify instance


Introdução

The inotify extension exposes the inotify functions inotify_init(), inotify_add_watch() and inotify_rm_watch().

As the C inotify_init() function returns a file descriptor, PHP's inotify_init() returns a stream resource, usable with standard stream functions, like stream_select(), stream_set_blocking() and fclose(). inotify_read() replaces the C way of reading inotify events.


Instalação/Configuração

Índice

  • Dependências
  • Instalação/Configuração
  • Configurações em Execução
  • Tipos de Recurso


  • « Instalação/Configuração
  • Instalação/Configuração »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

This extension requires Linux 2.6.13 or newer, and a recent libC.


Instalação/Configuração

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/inotify.


  • « Instalação/Configuração
  • Tipos de Recurso »
  • PHP Manual
  • Instalação/Configuração
  • Configurações em Execução

Configurações em Execução

Esta extensão não possui diretivas de configuração definidas no php.ini.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

This extension defines a stream resource returned by inotify_init().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Inotify constants usable with inotify_add_watch() and/or returned by inotify_read()
IN_ACCESS (int)
File was accessed (read) (*)
IN_MODIFY (int)
File was modified (*)
IN_ATTRIB (int)
Metadata changed (e.g. permissions, mtime, etc.) (*)
IN_CLOSE_WRITE (int)
File opened for writing was closed (*)
IN_CLOSE_NOWRITE (int)
File not opened for writing was closed (*)
IN_OPEN (int)
File was opened (*)
IN_MOVED_TO (int)
File moved into watched directory (*)
IN_MOVED_FROM (int)
File moved out of watched directory (*)
IN_CREATE (int)
File or directory created in watched directory (*)
IN_DELETE (int)
File or directory deleted in watched directory (*)
IN_DELETE_SELF (int)
Watched file or directory was deleted
IN_MOVE_SELF (int)
Watch file or directory was moved
IN_CLOSE (int)
Equals to IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
IN_MOVE (int)
Equals to IN_MOVED_FROM | IN_MOVED_TO
IN_ALL_EVENTS (int)
Bitmask of all the above constants
IN_UNMOUNT (int)
File system containing watched object was unmounted
IN_Q_OVERFLOW (int)
Event queue overflowed (wd is -1 for this event)
IN_IGNORED (int)
Watch was removed (explicitly by inotify_rm_watch() or because file was removed or filesystem unmounted
IN_ISDIR (int)
Subject of this event is a directory
IN_ONLYDIR (int)
Only watch pathname if it is a directory (Since Linux 2.6.15)
IN_DONT_FOLLOW (int)
Do not dereference pathname if it is a symlink (Since Linux 2.6.15)
IN_MASK_ADD (int)
Add events to watch mask for this pathname if it already exists (instead of replacing mask).
IN_ONESHOT (int)
Monitor pathname for one event, then remove from watch list.

Nota: The events marked with an asterisk (*) above can occur for files in watched directories.


Inotify Funções

Índice

  • inotify_add_watch — Add a watch to an initialized inotify instance
  • inotify_init — Initialize an inotify instance
  • inotify_queue_len — Return a number upper than zero if there are pending events
  • inotify_read — Read events from an inotify instance
  • inotify_rm_watch — Remove an existing watch from an inotify instance


Add a watch to an initialized inotify instance

  • « Inotify Funções
  • inotify_init »
  • PHP Manual
  • Inotify Funções
  • Add a watch to an initialized inotify instance

inotify_add_watch

(PECL inotify >= 0.1.2)

inotify_add_watch — Add a watch to an initialized inotify instance

Descrição

inotify_add_watch(resource $inotify_instance, string $pathname, int $mask): int|false

inotify_add_watch() adds a new watch or modify an existing watch for the file or directory specified in pathname.

Using inotify_add_watch() on a watched object replaces the existing watch. Using the IN_MASK_ADD constant adds (OR) events to the existing watch.

Parâmetros

inotify_instance

Um resource retornado por inotify_init()

pathname

File or directory to watch

mask

Events to watch for. See Constantes Pré-definidas.

Valor Retornado

The return value is a unique (inotify instance wide) watch descriptor, ou false em caso de falha.

Veja Também

  • inotify_init() - Initialize an inotify instance


Initialize an inotify instance

  • « inotify_add_watch
  • inotify_queue_len »
  • PHP Manual
  • Inotify Funções
  • Initialize an inotify instance

inotify_init

(PECL inotify >= 0.1.2)

inotify_init — Initialize an inotify instance

Descrição

inotify_init(): resource|false

Initialize an inotify instance for use with inotify_add_watch()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A stream resource or false on error.

Exemplos

Exemplo #1 Example usage of inotify

<?php
// Open an inotify instance
$fd = inotify_init();

// Watch __FILE__ for metadata changes (e.g. mtime)
$watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);

// generate an event
touch(__FILE__);

// Read events
$events = inotify_read($fd);
print_r($events);

// The following methods allows to use inotify functions without blocking on inotify_read():

// - Using stream_select() on $fd:
$read = array($fd);
$write = null;
$except = null;
stream_select($read,$write,$except,0);

// - Using stream_set_blocking() on $fd
stream_set_blocking($fd, 0);
inotify_read($fd); // Does no block, and return false if no events are pending

// - Using inotify_queue_len() to check if event queue is not empty
$queue_len = inotify_queue_len($fd); // If > 0, inotify_read() will not block

// Stop watching __FILE__ for metadata changes
inotify_rm_watch($fd, $watch_descriptor);

// Close the inotify instance
// This may have closed all watches if this was not already done
fclose($fd);

?>

O exemplo acima produzirá algo semelhante a:

array(
  array(
    'wd' => 1,     // Equals $watch_descriptor
    'mask' => 4,   // IN_ATTRIB bit is set
    'cookie' => 0, // unique id to connect related events (e.g.
                   // IN_MOVE_FROM and IN_MOVE_TO events)
    'name' => '',  // the name of a file (e.g. if we monitored changes
                   // in a directory)
  ),
);

Veja Também

  • inotify_add_watch() - Add a watch to an initialized inotify instance
  • inotify_rm_watch() - Remove an existing watch from an inotify instance
  • inotify_queue_len() - Return a number upper than zero if there are pending events
  • inotify_read() - Read events from an inotify instance
  • fclose() - Fecha um ponteiro de arquivo aberto


Return a number upper than zero if there are pending events

  • « inotify_init
  • inotify_read »
  • PHP Manual
  • Inotify Funções
  • Return a number upper than zero if there are pending events

inotify_queue_len

(PECL inotify >= 0.1.2)

inotify_queue_len — Return a number upper than zero if there are pending events

Descrição

inotify_queue_len(resource $inotify_instance): int

This function allows to know if inotify_read() will block or not. If a number upper than zero is returned, there are pending events and inotify_read() will not block.

Parâmetros

inotify_instance

Um resource retornado por inotify_init()

Valor Retornado

Returns a number upper than zero if there are pending events.

Veja Também

  • inotify_init() - Initialize an inotify instance
  • stream_select() - Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos
  • stream_set_blocking() - Definir modo de bloqueio/não-bloqueio em um fluxo


Read events from an inotify instance

  • « inotify_queue_len
  • inotify_rm_watch »
  • PHP Manual
  • Inotify Funções
  • Read events from an inotify instance

inotify_read

(PECL inotify >= 0.1.2)

inotify_read — Read events from an inotify instance

Descrição

inotify_read(resource $inotify_instance): array

Read inotify events from an inotify instance.

Parâmetros

inotify_instance

Um resource retornado por inotify_init()

Valor Retornado

An array of inotify events or false if no events was pending and inotify_instance is non-blocking. Each event is an array with the following keys:

  • wd is a watch descriptor returned by inotify_add_watch()
  • mask is a bit mask of events
  • cookie is a unique id to connect related events (e.g. IN_MOVE_FROM and IN_MOVE_TO)
  • name is the name of a file (e.g. if a file was modified in a watched directory)

Veja Também

  • inotify_init() - Initialize an inotify instance
  • stream_select() - Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos
  • stream_set_blocking() - Definir modo de bloqueio/não-bloqueio em um fluxo
  • inotify_queue_len() - Return a number upper than zero if there are pending events


Remove an existing watch from an inotify instance

  • « inotify_read
  • xattr »
  • PHP Manual
  • Inotify Funções
  • Remove an existing watch from an inotify instance

inotify_rm_watch

(PECL inotify >= 0.1.2)

inotify_rm_watch — Remove an existing watch from an inotify instance

Descrição

inotify_rm_watch(resource $inotify_instance, int $watch_descriptor): bool

inotify_rm_watch() removes the watch watch_descriptor from the inotify instance inotify_instance.

Parâmetros

inotify_instance

Um resource retornado por inotify_init()

watch_descriptor

Watch to remove from the instance

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • inotify_init() - Initialize an inotify instance


xattr

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções da xattr
    • xattr_get — Get an extended attribute
    • xattr_list — Get a list of extended attributes
    • xattr_remove — Remove an extended attribute
    • xattr_set — Set an extended attribute
    • xattr_supported — Check if filesystem supports extended attributes


Introdução

A extensão xattr permite a manipulação de atributos extendidos em um sistema de arquivos.


Dependências

Para usar xattr, você precisará ter a biblioteca libattr instalada no seu sistema. Ela está disponível em » http://savannah.nongnu.org/projects/attr/.

Nota:

Essas funções só funcionarão em sistemas de arquivos que suportam atributos extendidos, e os quais tenham esses atributos habilitados no momento da montagem. Alguns sistemas de arquivos que suportam atributos extendidos são ext2, ext3, reiserfs, jfs, e xfs.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/xattr.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

XATTR_ROOT (int)
Edita atributo no namespace do administrador. Requer privilégios de root.
XATTR_DONTFOLLOW (int)
Não segue o link simbólico mas opera no link em si.
XATTR_CREATE (int)
Função falhará se o atributo estendido já existir.
XATTR_REPLACE (int)
Função falhará se atributo estendido não existir.


Funções da xattr

Índice

  • xattr_get — Get an extended attribute
  • xattr_list — Get a list of extended attributes
  • xattr_remove — Remove an extended attribute
  • xattr_set — Set an extended attribute
  • xattr_supported — Check if filesystem supports extended attributes


Get an extended attribute

  • « Funções da xattr
  • xattr_list »
  • PHP Manual
  • Funções da xattr
  • Get an extended attribute

xattr_get

(PECL xattr >= 0.9.0)

xattr_get — Get an extended attribute

Descrição

xattr_get(string $filename, string $name, int $flags = 0): string

This function gets the value of an extended attribute of a file.

Os atributos estendidos têm dois namespaces diferentes: usuário e root. O namespace de usuário está disponível para todos os usuários, enquanto o namespace de root está disponível apenas para o usuário com privilégios de root. xattr opera no namespace de usuário por padrão, mas isso pode ser alterado com o parâmetro flags.

Parâmetros

filename

The file from which we get the attribute.

name

The name of the attribute.

flags

Supported xattr flags
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Valor Retornado

Returns a string containing the value or false if the attribute doesn't exist.

Exemplos

Exemplo #1 Checks if system administrator has signed the file

<?php
$file = '/usr/local/sbin/some_binary';
$signature = xattr_get($file, 'Root signature', XATTR_ROOT);

/* ... check if $signature is valid ... */

?>

Veja Também

  • xattr_list() - Get a list of extended attributes
  • xattr_set() - Set an extended attribute
  • xattr_remove() - Remove an extended attribute


Get a list of extended attributes

  • « xattr_get
  • xattr_remove »
  • PHP Manual
  • Funções da xattr
  • Get a list of extended attributes

xattr_list

(PECL xattr >= 0.9.0)

xattr_list — Get a list of extended attributes

Descrição

xattr_list(string $filename, int $flags = 0): array

This functions gets a list of names of extended attributes of a file.

Os atributos estendidos têm dois namespaces diferentes: usuário e root. O namespace de usuário está disponível para todos os usuários, enquanto o namespace de root está disponível apenas para o usuário com privilégios de root. xattr opera no namespace de usuário por padrão, mas isso pode ser alterado com o parâmetro flags.

Parâmetros

filename

The path of the file.

flags

Supported xattr flags
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Valor Retornado

This function returns an array with names of extended attributes.

Exemplos

Exemplo #1 Prints names of all extended attributes of file

<?php
$file = 'some_file';
$root_attributes = xattr_list($file, XATTR_ROOT);
$user_attributes = xattr_list($file);

echo "Root attributes: \n";
foreach ($root_attributes as $attr_name) {
printf("%s\n", $attr_name);
}

echo "\n User attributes: \n";
foreach ($attributes as $attr_name) {
printf("%s\n", $attr_name);
}

?>

Veja Também

  • xattr_get() - Get an extended attribute


Remove an extended attribute

  • « xattr_list
  • xattr_set »
  • PHP Manual
  • Funções da xattr
  • Remove an extended attribute

xattr_remove

(PECL xattr >= 0.9.0)

xattr_remove — Remove an extended attribute

Descrição

xattr_remove(string $filename, string $name, int $flags = 0): bool

This function removes an extended attribute of a file.

Os atributos estendidos têm dois namespaces diferentes: usuário e root. O namespace de usuário está disponível para todos os usuários, enquanto o namespace de root está disponível apenas para o usuário com privilégios de root. xattr opera no namespace de usuário por padrão, mas isso pode ser alterado com o parâmetro flags.

Parâmetros

filename

The file from which we remove the attribute.

name

The name of the attribute to remove.

flags

Supported xattr flags
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Removes all extended attributes of a file

<?php
$file = 'some_file';
$attributes = xattr_list($file);

foreach ($attributes as $attr_name) {
xattr_remove($file, $attr_name);
}
?>

Veja Também

  • xattr_list() - Get a list of extended attributes
  • xattr_set() - Set an extended attribute
  • xattr_get() - Get an extended attribute


Set an extended attribute

  • « xattr_remove
  • xattr_supported »
  • PHP Manual
  • Funções da xattr
  • Set an extended attribute

xattr_set

(PECL xattr >= 0.9.0)

xattr_set — Set an extended attribute

Descrição

xattr_set(
string $filename,
string $name,
string $value,
int $flags = 0
): bool

This function sets the value of an extended attribute of a file.

Os atributos estendidos têm dois namespaces diferentes: usuário e root. O namespace de usuário está disponível para todos os usuários, enquanto o namespace de root está disponível apenas para o usuário com privilégios de root. xattr opera no namespace de usuário por padrão, mas isso pode ser alterado com o parâmetro flags.

Parâmetros

filename

The file in which we set the attribute.

name

The name of the extended attribute. This attribute will be created if it doesn't exist or replaced otherwise. You can change this behaviour by using the flags parameter.

value

The value of the attribute.

flags

Supported xattr flags
XATTR_CREATE | Function will fail if extended attribute already exists.
XATTR_REPLACE | Function will fail if extended attribute doesn't exist.
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Sets extended attributes on .wav file

<?php
$file = 'my_favourite_song.wav';
xattr_set($file, 'Artist', 'Someone');
xattr_set($file, 'My ranking', 'Good');
xattr_set($file, 'Listen count', '34');

/* ... other code ... */

printf("You've played this song %d times", xattr_get($file, 'Listen count'));
?>

Veja Também

  • xattr_get() - Get an extended attribute
  • xattr_remove() - Remove an extended attribute


Check if filesystem supports extended attributes

  • « xattr_set
  • xdiff »
  • PHP Manual
  • Funções da xattr
  • Check if filesystem supports extended attributes

xattr_supported

(PECL xattr >= 1.0.0)

xattr_supported — Check if filesystem supports extended attributes

Descrição

xattr_supported(string $filename, int $flags = 0): bool

This functions checks if the filesystem holding the given file supports extended attributes. Read access to the file is required.

Parâmetros

filename

The path of the tested file.

flags

Supported xattr flags
XATTR_DONTFOLLOW Do not follow the symbolic link but operate on symbolic link itself.

Valor Retornado

This function returns true if filesystem supports extended attributes, false if it doesn't and null if it can't be determined (for example wrong path or lack of permissions to file).

Exemplos

Exemplo #1 xattr_supported() example

The following code checks if we can use extended attributes.

<?php
$file = 'some_file';

if (xattr_supported($file)) {
/* ... make use of some xattr_* functions ... */
}

?>

Veja Também

  • xattr_get() - Get an extended attribute
  • xattr_list() - Get a list of extended attributes


xdiff

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • xdiff Funções
    • xdiff_file_bdiff_size — Read a size of file created by applying a binary diff
    • xdiff_file_bdiff — Make binary diff of two files
    • xdiff_file_bpatch — Patch a file with a binary diff
    • xdiff_file_diff_binary — Sinônimo de xdiff_file_bdiff
    • xdiff_file_diff — Make unified diff of two files
    • xdiff_file_merge3 — Merge 3 files into one
    • xdiff_file_patch_binary — Sinônimo de xdiff_file_bpatch
    • xdiff_file_patch — Patch a file with an unified diff
    • xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
    • xdiff_string_bdiff_size — Read a size of file created by applying a binary diff
    • xdiff_string_bdiff — Make binary diff of two strings
    • xdiff_string_bpatch — Patch a string with a binary diff
    • xdiff_string_diff_binary — Sinônimo de xdiff_string_bdiff
    • xdiff_string_diff — Make unified diff of two strings
    • xdiff_string_merge3 — Merge 3 strings into one
    • xdiff_string_patch_binary — Sinônimo de xdiff_string_bpatch
    • xdiff_string_patch — Patch a string with an unified diff
    • xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Introdução

xdiff extension enables you to create and apply patch files containing differences between different revisions of files.

This extension supports two modes of operation - on strings and on files, as well as two different patch formats - unified and binary. Unified patches are excellent for text files as they are human-readable and easy to review. For binary files like archives or images, binary patches will be adequate choice as they are binary safe and handle non-printable characters well.

Starting from version 1.5.0 there are two different sets of functions for generating binary patches. New functions - xdiff_string_rabdiff() and xdiff_file_rabdiff() generate output compatible with older functions but are typically faster and generate smaller results. For more details about methods of generating binary patches and differences between them, please check » libxdiff website.

This extension uses libxdiff to implement these functions. Please see » http://www.xmailserver.org/xdiff-lib.html for more information.


Dependências

To use xdiff, you will need libxdiff installed, available on the libxdiff homepage » http://www.xmailserver.org/xdiff-lib.html.

Nota:

You'll need at least libxdiff 0.7 for these functions to be aware of memory_limit.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/xdiff.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

XDIFF_PATCH_NORMAL (int)
This flag indicates that xdiff_string_patch() and xdiff_file_patch() functions should create result by applying patch to original content thus creating newer version of file. This is the default mode of operation.
XDIFF_PATCH_REVERSE (int)
This flag indicated that xdiff_string_patch() and xdiff_file_patch() functions should create result by reversing patch changed from newer content thus creating original version.


xdiff Funções

Índice

  • xdiff_file_bdiff_size — Read a size of file created by applying a binary diff
  • xdiff_file_bdiff — Make binary diff of two files
  • xdiff_file_bpatch — Patch a file with a binary diff
  • xdiff_file_diff_binary — Sinônimo de xdiff_file_bdiff
  • xdiff_file_diff — Make unified diff of two files
  • xdiff_file_merge3 — Merge 3 files into one
  • xdiff_file_patch_binary — Sinônimo de xdiff_file_bpatch
  • xdiff_file_patch — Patch a file with an unified diff
  • xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
  • xdiff_string_bdiff_size — Read a size of file created by applying a binary diff
  • xdiff_string_bdiff — Make binary diff of two strings
  • xdiff_string_bpatch — Patch a string with a binary diff
  • xdiff_string_diff_binary — Sinônimo de xdiff_string_bdiff
  • xdiff_string_diff — Make unified diff of two strings
  • xdiff_string_merge3 — Merge 3 strings into one
  • xdiff_string_patch_binary — Sinônimo de xdiff_string_bpatch
  • xdiff_string_patch — Patch a string with an unified diff
  • xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Read a size of file created by applying a binary diff

  • « xdiff Funções
  • xdiff_file_bdiff »
  • PHP Manual
  • xdiff Funções
  • Read a size of file created by applying a binary diff

xdiff_file_bdiff_size

(PECL xdiff >= 1.5.0)

xdiff_file_bdiff_size — Read a size of file created by applying a binary diff

Descrição

xdiff_file_bdiff_size(string $file): int

Returns a size of a result file that would be created after applying binary patch from file file to the original file.

Parâmetros

file

The path to the binary patch created by xdiff_string_bdiff() or xdiff_string_rabdiff() function.

Valor Retornado

Returns the size of file that would be created.

Exemplos

Exemplo #1 xdiff_file_bdiff_size() example

The following code applies reads a size of file that would be created after applying a binary diff.

<?php
$length = xdiff_string_bdiff_size('file.bdiff');
echo "Resulting file will be $length bytes long";
?>

Veja Também

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_rabdiff() - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
  • xdiff_file_bpatch() - Patch a file with a binary diff


Make binary diff of two files

  • « xdiff_file_bdiff_size
  • xdiff_file_bpatch »
  • PHP Manual
  • xdiff Funções
  • Make binary diff of two files

xdiff_file_bdiff

(PECL xdiff >= 1.5.0)

xdiff_file_bdiff — Make binary diff of two files

Descrição

xdiff_file_bdiff(string $old_file, string $new_file, string $dest): bool

Makes a binary diff of two files and stores the result in a patch file. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch()/xdiff_string_bpatch().

Parâmetros

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 xdiff_file_bdiff() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_bdiff($old_version, $new_version, 'my_script.bdiff');
?>

Notas

Nota:

Both files will be loaded into memory so ensure that your memory_limit is set high enough.

Veja Também

  • xdiff_file_bpatch() - Patch a file with a binary diff


Patch a file with a binary diff

  • « xdiff_file_bdiff
  • xdiff_file_diff_binary »
  • PHP Manual
  • xdiff Funções
  • Patch a file with a binary diff

xdiff_file_bpatch

(PECL xdiff >= 1.5.0)

xdiff_file_bpatch — Patch a file with a binary diff

Descrição

xdiff_file_bpatch(string $file, string $patch, string $dest): bool

Patches a file with a binary patch and stores the result in a file dest. This function accepts patches created both via xdiff_file_bdiff() and xdiff_file_rabdiff() functions or their string counterparts.

Parâmetros

file

The original file.

patch

The binary patch file.

dest

Path of the resulting file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 xdiff_file_bpatch() example

The following code applies binary diff to a file.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_bpatch($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
echo "File patched";
} else {
echo "File couldn't be patched";
}

?>

Notas

Nota:

Both files (file and patch) will be loaded into memory so ensure that your memory_limit is set high enough.

Veja Também

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_rabdiff() - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm


Sinônimo de xdiff_file_bdiff

  • « xdiff_file_bpatch
  • xdiff_file_diff »
  • PHP Manual
  • xdiff Funções
  • Sinônimo de xdiff_file_bdiff

xdiff_file_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_file_diff_binary — Sinônimo de xdiff_file_bdiff()

Descrição

xdiff_file_diff_binary(string $old_file, string $new_file, string $dest): bool

Makes a binary diff of two files and stores the result in a patch file. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch().

Starting with version 1.5.0 this function is an alias of xdiff_file_bdiff().

Parâmetros

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 xdiff_file_diff_binary() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_diff_binary($old_version, $new_version, 'my_script.bdiff');
?>

Notas

Nota:

Both files will be loaded into memory so ensure that your memory_limit is set high enough.

Veja Também

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_bpatch() - Patch a file with a binary diff


Make unified diff of two files

  • « xdiff_file_diff_binary
  • xdiff_file_merge3 »
  • PHP Manual
  • xdiff Funções
  • Make unified diff of two files

xdiff_file_diff

(PECL xdiff >= 0.2.0)

xdiff_file_diff — Make unified diff of two files

Descrição

xdiff_file_diff(
string $old_file,
string $new_file,
string $dest,
int $context = 3,
bool $minimal = false
): bool

Makes an unified diff containing differences between old_file and new_file and stores it in dest file. The resulting file is human-readable. An optional context parameter specifies how many lines of context should be added around each change. Setting minimal parameter to true will result in outputting the shortest patch file possible (can take a long time).

Parâmetros

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file.

context

Indicates how many lines of context you want to include in diff result.

minimal

Set this parameter to true if you want to minimalize size of the result (can take a long time).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 xdiff_file_diff() example

The following code makes unified diff of two php files with context length of 2.

<?php
$old_version = 'my_script.php';
$new_version = 'my_new_script.php';

xdiff_file_diff($old_version, $new_version, 'my_script.diff', 2);
?>

Notas

Nota:

This function doesn't work well with binary files. To make diff of binary files use xdiff_file_bdiff()/xdiff_file_rabdiff() function.

Veja Também

  • xdiff_file_patch() - Patch a file with an unified diff


Merge 3 files into one

  • « xdiff_file_diff
  • xdiff_file_patch_binary »
  • PHP Manual
  • xdiff Funções
  • Merge 3 files into one

xdiff_file_merge3

(PECL xdiff >= 0.2.0)

xdiff_file_merge3 — Merge 3 files into one

Descrição

xdiff_file_merge3(
string $old_file,
string $new_file1,
string $new_file2,
string $dest
): mixed

Merges three files into one and stores the result in a file dest. The old_file is an original version while new_file1 and new_file2 are modified versions of an original.

Parâmetros

old_file

Path to the first file. It acts as "old" file.

new_file1

Path to the second file. It acts as modified version of old_file.

new_file2

Path to the third file. It acts as modified version of old_file.

dest

Path of the resulting file, containing merged changed from both new_file1 and new_file2.

Valor Retornado

Returns true if merge was successful, string with rejected chunks if it was not or false if an internal error happened.

Exemplos

Exemplo #1 xdiff_file_merge3() example

The following code merges three files into one.

<?php
$old_version = 'original_script.php';
$fix1 = 'script_with_fix1.php';
$fix2 = 'script_with_fix2.php';

$errors = xdiff_file_merge3($old_version, $fix1, $fix2, 'fixed_script.php');
if (is_string($errors)) {
echo "Rejects:\n";
echo $errors;
}
?>

Veja Também

  • xdiff_string_merge3() - Merge 3 strings into one


Sinônimo de xdiff_file_bpatch

  • « xdiff_file_merge3
  • xdiff_file_patch »
  • PHP Manual
  • xdiff Funções
  • Sinônimo de xdiff_file_bpatch

xdiff_file_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_file_patch_binary — Sinônimo de xdiff_file_bpatch()

Descrição

xdiff_file_patch_binary(string $file, string $patch, string $dest): bool

Patches a file with a binary patch and stores the result in a file dest. This function accepts patches created both via xdiff_file_bdiff() or xdiff_file_rabdiff() functions or their string counterparts.

Starting with version 1.5.0 this function is an alias of xdiff_file_bpatch().

Parâmetros

file

The original file.

patch

The binary patch file.

dest

Path of the resulting file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 xdiff_file_patch_binary() example

The following code applies binary diff to a file.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_patch_binary($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
echo "File patched";
} else {
echo "File couldn't be patched";
}

?>

Notas

Nota:

Both files (file and patch) will be loaded into memory so ensure that your memory_limit is set high enough.

Veja Também

  • xdiff_string_patch_binary() - Sinônimo de xdiff_string_bpatch


Patch a file with an unified diff

  • « xdiff_file_patch_binary
  • xdiff_file_rabdiff »
  • PHP Manual
  • xdiff Funções
  • Patch a file with an unified diff

xdiff_file_patch

(PECL xdiff >= 0.2.0)

xdiff_file_patch — Patch a file with an unified diff

Descrição

xdiff_file_patch(
string $file,
string $patch,
string $dest,
int $flags = DIFF_PATCH_NORMAL
): mixed

Patches a file with a patch and stores the result in a file. patch has to be an unified diff created by xdiff_file_diff()/xdiff_string_diff() function. An optional flags parameter specifies mode of operation.

Parâmetros

file

The original file.

patch

The unified patch file. It has to be created using xdiff_string_diff(), xdiff_file_diff() functions or compatible tools.

dest

Path of the resulting file.

flags

Can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Starting from version 1.5.0, you can also use binary OR to enable XDIFF_PATCH_IGNORESPACE flag.

Valor Retornado

Returns false if an internal error happened, string with rejected chunks if patch couldn't be applied or true if patch has been successfully applied.

Exemplos

Exemplo #1 xdiff_file_patch() example

The following code applies unified diff to a file.

<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
echo "Rejects:\n";
echo $errors;
}

?>

Exemplo #2 Patch reversing example

The following code reverses a patch.

<?php
$new_version = 'my_script-1.1.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
echo "Rejects:\n";
echo $errors;
}

?>

Veja Também

  • xdiff_file_diff() - Make unified diff of two files


Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

  • « xdiff_file_patch
  • xdiff_string_bdiff_size »
  • PHP Manual
  • xdiff Funções
  • Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

xdiff_file_rabdiff

(PECL xdiff >= 1.5.0)

xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

Descrição

xdiff_file_rabdiff(string $old_file, string $new_file, string $dest): bool

Makes a binary diff of two files and stores the result in a patch file. The difference between this function and xdiff_file_bdiff() is different algorithm used which should result in faster execution and smaller diff produced. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch()/xdiff_string_bpatch().

For more details about differences between algorithm used please check » libxdiff website.

Parâmetros

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 xdiff_file_rabdiff() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_rabdiff($old_version, $new_version, 'my_script.bdiff');
?>

Notas

Nota:

Both files will be loaded into memory so ensure that your memory_limit is set high enough.

Veja Também

  • xdiff_file_bpatch() - Patch a file with a binary diff


Read a size of file created by applying a binary diff

  • « xdiff_file_rabdiff
  • xdiff_string_bdiff »
  • PHP Manual
  • xdiff Funções
  • Read a size of file created by applying a binary diff

xdiff_string_bdiff_size

(PECL xdiff >= 1.5.0)

xdiff_string_bdiff_size — Read a size of file created by applying a binary diff

Descrição

xdiff_string_bdiff_size(string $patch): int

Returns a size of a result file that would be created after applying binary patch to the original file.

Parâmetros

patch

The binary patch created by xdiff_string_bdiff() or xdiff_string_rabdiff() function.

Valor Retornado

Returns the size of file that would be created.

Exemplos

Exemplo #1 xdiff_string_bdiff_size() example

The following code applies reads a size of file that would be created after applying a binary diff.

<?php
$binary_patch = file_get_contents('file.bdiff');
$length = xdiff_string_bdiff_size($binary_patch);
echo "Resulting file will be $length bytes long";
?>

Veja Também

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm
  • xdiff_string_bpatch() - Patch a string with a binary diff


Make binary diff of two strings

  • « xdiff_string_bdiff_size
  • xdiff_string_bpatch »
  • PHP Manual
  • xdiff Funções
  • Make binary diff of two strings

xdiff_string_bdiff

(PECL xdiff >= 1.5.0)

xdiff_string_bdiff — Make binary diff of two strings

Descrição

xdiff_string_bdiff(string $old_data, string $new_data): string

Makes a binary diff of two strings and returns the result. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

Parâmetros

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

Valor Retornado

Returns string with binary diff containing differences between "old" and "new" data or false if an internal error occurred.

Veja Também

  • xdiff_string_bpatch() - Patch a string with a binary diff


Patch a string with a binary diff

  • « xdiff_string_bdiff
  • xdiff_string_diff_binary »
  • PHP Manual
  • xdiff Funções
  • Patch a string with a binary diff

xdiff_string_bpatch

(PECL xdiff >= 1.5.0)

xdiff_string_bpatch — Patch a string with a binary diff

Descrição

xdiff_string_bpatch(string $str, string $patch): string

Patches a string str with a binary patch. This function accepts patches created both via xdiff_string_bdiff() and xdiff_string_rabdiff() functions or their file counterparts.

Parâmetros

str

The original binary string.

patch

The binary patch string.

Valor Retornado

Returns the patched string, or false on error.

Veja Também

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Sinônimo de xdiff_string_bdiff

  • « xdiff_string_bpatch
  • xdiff_string_diff »
  • PHP Manual
  • xdiff Funções
  • Sinônimo de xdiff_string_bdiff

xdiff_string_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_string_diff_binary — Sinônimo de xdiff_string_bdiff()

Descrição

xdiff_string_bdiff(string $old_data, string $new_data): string

Makes a binary diff of two strings and returns the result. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

Starting with version 1.5.0 this function is an alias of xdiff_string_bdiff().

Parâmetros

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

Valor Retornado

Returns string with result or false if an internal error happened.

Veja Também

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_bpatch() - Patch a string with a binary diff


Make unified diff of two strings

  • « xdiff_string_diff_binary
  • xdiff_string_merge3 »
  • PHP Manual
  • xdiff Funções
  • Make unified diff of two strings

xdiff_string_diff

(PECL xdiff >= 0.2.0)

xdiff_string_diff — Make unified diff of two strings

Descrição

xdiff_string_diff(
string $old_data,
string $new_data,
int $context = 3,
bool $minimal = false
): string

Makes an unified diff containing differences between old_data string and new_data string and returns it. The resulting diff is human-readable. An optional context parameter specifies how many lines of context should be added around each change. Setting minimal parameter to true will result in outputting the shortest patch file possible (can take a long time).

Parâmetros

old_data

First string with data. It acts as "old" data.

new_data

Second string with data. It acts as "new" data.

context

Indicates how many lines of context you want to include in the diff result.

minimal

Set this parameter to true if you want to minimalize the size of the result (can take a long time).

Valor Retornado

Returns string with resulting diff or false if an internal error happened.

Exemplos

Exemplo #1 xdiff_string_diff() example

The following code makes unified diff of two articles.

<?php
$old_article = file_get_contents('./old_article.txt');
$new_article = $_REQUEST['article']; /* Let's say that someone pasted a new article to html form */

$diff = xdiff_string_diff($old_article, $new_article, 1);
if (is_string($diff)) {
echo "Differences between two articles:\n";
echo $diff;
}

?>

Notas

Nota:

This function doesn't work well with binary strings. To make diff of binary strings use xdiff_string_bdiff()/xdiff_string_rabdiff().

Veja Também

  • xdiff_string_patch() - Patch a string with an unified diff


Merge 3 strings into one

  • « xdiff_string_diff
  • xdiff_string_patch_binary »
  • PHP Manual
  • xdiff Funções
  • Merge 3 strings into one

xdiff_string_merge3

(PECL xdiff >= 0.2.0)

xdiff_string_merge3 — Merge 3 strings into one

Descrição

xdiff_string_merge3(
string $old_data,
string $new_data1,
string $new_data2,
string &$error = ?
): mixed

Merges three strings into one and returns the result. The old_data is an original version of data while new_data1 and new_data2 are modified versions of an original. An optional error is used to pass any rejected parts during merging process.

Parâmetros

old_data

First string with data. It acts as "old" data.

new_data1

Second string with data. It acts as modified version of old_data.

new_data2

Third string with data. It acts as modified version of old_data.

error

If provided then rejected parts are stored inside this variable.

Valor Retornado

Returns the merged string, false if an internal error happened, or true if merged string is empty.

Veja Também

  • xdiff_file_merge3() - Merge 3 files into one


Sinônimo de xdiff_string_bpatch

  • « xdiff_string_merge3
  • xdiff_string_patch »
  • PHP Manual
  • xdiff Funções
  • Sinônimo de xdiff_string_bpatch

xdiff_string_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_string_patch_binary — Sinônimo de xdiff_string_bpatch()

Descrição

xdiff_string_patch_binary(string $str, string $patch): string

Patches a string str with a binary patch. This function accepts patches created both via xdiff_string_bdiff() and xdiff_string_rabdiff() functions or their file counterparts.

Starting with version 1.5.0 this function is an alias of xdiff_string_bpatch().

Parâmetros

str

The original binary string.

patch

The binary patch string.

Valor Retornado

Returns the patched string, or false on error.

Veja Também

  • xdiff_string_bpatch() - Patch a string with a binary diff
  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Patch a string with an unified diff

  • « xdiff_string_patch_binary
  • xdiff_string_rabdiff »
  • PHP Manual
  • xdiff Funções
  • Patch a string with an unified diff

xdiff_string_patch

(PECL xdiff >= 0.2.0)

xdiff_string_patch — Patch a string with an unified diff

Descrição

xdiff_string_patch(
string $str,
string $patch,
int $flags = ?,
string &$error = ?
): string

Patches a str string with an unified patch in patch parameter and returns the result. patch has to be an unified diff created by xdiff_file_diff()/xdiff_string_diff() function. An optional flags parameter specifies mode of operation. Any rejected parts of the patch will be stored inside error variable if it is provided.

Parâmetros

str

The original string.

patch

The unified patch string. It has to be created using xdiff_string_diff(), xdiff_file_diff() functions or compatible tools.

flags

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Starting from version 1.5.0, you can also use binary OR to enable XDIFF_PATCH_IGNORESPACE flag.

error

If provided then rejected parts are stored inside this variable.

Valor Retornado

Returns the patched string, or false on error.

Exemplos

Exemplo #1 xdiff_string_patch() example

The following code applies changes to some article.

<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* Let's say that someone pasted a patch to html form */

$errors = '';

$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
echo "New article:\n";
echo $new_article;
}

if (strlen($errors)) {
echo "Rejects: \n";
echo $errors;
}

?>

Veja Também

  • xdiff_string_diff() - Make unified diff of two strings


Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

  • « xdiff_string_patch
  • Linguagem Humana e Suporte a Codificação de Caracteres »
  • PHP Manual
  • xdiff Funções
  • Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

xdiff_string_rabdiff

(PECL xdiff >= 1.5.0)

xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

Descrição

xdiff_string_bdiff(string $old_data, string $new_data): string

Makes a binary diff of two strings and returns the result. The difference between this function and xdiff_string_bdiff() is different algorithm used which should result in faster execution and smaller diff produced. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

For more details about differences between algorithm used please check » libxdiff website.

Parâmetros

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

Valor Retornado

Returns string with binary diff containing differences between "old" and "new" data or false if an internal error occurred.

Veja Também

  • xdiff_string_bpatch() - Patch a string with a binary diff


Linguagem Humana e Suporte a Codificação de Caracteres

  • Enchant — Enchant spelling library
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Enchant Funções
    • EnchantBroker — The EnchantBroker class
    • EnchantDictionary — The EnchantDictionary class
  • Gender — Determine gender of firstnames
    • Introdução
    • Instalação/Configuração
    • Exemplos
    • Gender\Gender — The Gender\Gender class
  • Gettext
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções da Gettext
  • iconv
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • iconv Funções
  • intl — Funções de Internacionalização
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Collator — A classe Collator
    • NumberFormatter — A classe NumberFormatter
    • Locale — A classe Locale
    • Normalizer — A classe Normalizer
    • MessageFormatter — A classe MessageFormatter
    • IntlCalendar — A classe IntlCalendar
    • IntlGregorianCalendar — A classe IntlGregorianCalendar
    • IntlTimeZone — A classe IntlTimeZone
    • IntlDateFormatter — A classe IntlDateFormatter
    • ResourceBundle — A classe ResourceBundle
    • Spoofchecker — A classe Spoofchecker
    • Transliterator — A classe Transliterator
    • IntlBreakIterator — A classe IntlBreakIterator
    • IntlRuleBasedBreakIterator — A classe IntlRuleBasedBreakIterator
    • IntlCodePointBreakIterator — A classe IntlCodePointBreakIterator
    • IntlDatePatternGenerator — A classe IntlDatePatternGenerator
    • IntlPartsIterator — A classe IntlPartsIterator
    • UConverter — A classe UConverter
    • Funções de Grapheme
    • Funções de IDN
    • IntlChar
    • IntlException — Classe de exceção para erros da extensão Intl
    • IntlIterator — A classe IntlIterator
    • Funções de Intl
  • String Multibyte
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Sumários de Codificações Suportadas
    • Noções Básicas de Codificações Multibyte Japonesas
    • Entrada e Saída HTTP
    • Codificações de Caracteres Suportadas
    • Recurso de Sobrecarga de Funções
    • Requisitos de Codificação de Caracteres em PHP
    • Strings Multibyte e Funções
  • Pspell
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Pspell Funções
    • PSpell\Dictionary — The PSpell\Dictionary class
    • PSpell\Config — The PSpell\Config class
  • Recode — GNU Recode
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Recode Funções


Enchant spelling library

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Enchant Funções
    • enchant_broker_describe — Enumerates the Enchant providers
    • enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag
    • enchant_broker_free_dict — Free a dictionary resource
    • enchant_broker_free — Free the broker resource and its dictionaries
    • enchant_broker_get_dict_path — Get the directory path for a given backend
    • enchant_broker_get_error — Returns the last error of the broker
    • enchant_broker_init — Create a new broker object capable of requesting
    • enchant_broker_list_dicts — Returns a list of available dictionaries
    • enchant_broker_request_dict — Create a new dictionary using a tag
    • enchant_broker_request_pwl_dict — Creates a dictionary using a PWL file
    • enchant_broker_set_dict_path — Set the directory path for a given backend
    • enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language
    • enchant_dict_add_to_personal — Sinônimo de enchant_dict_add
    • enchant_dict_add_to_session — Add 'word' to this spell-checking session
    • enchant_dict_add — Add a word to personal word list
    • enchant_dict_check — Check whether a word is correctly spelled or not
    • enchant_dict_describe — Describes an individual dictionary
    • enchant_dict_get_error — Returns the last error of the current spelling-session
    • enchant_dict_is_added — Whether or not 'word' exists in this spelling-session
    • enchant_dict_is_in_session — Sinônimo de enchant_dict_is_added
    • enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions
    • enchant_dict_store_replacement — Add a correction for a word
    • enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met
  • EnchantBroker — The EnchantBroker class
  • EnchantDictionary — The EnchantDictionary class


Introdução

Enchant is the PHP binding for the » Enchant library. Enchant steps in to provide uniformity and conformity on top of all spelling libraries, and implement certain features that may be lacking in any individual provider library. Everything should "just work" for any and every definition of "just working."

Enchant supports the following backends:

  • Aspell/Pspell (intends to replace Ispell)

  • Ispell (old as sin, could be interpreted as a defacto standard)

  • MySpell/Hunspell (an OOo projects, also used by Mozilla)

  • Uspell (primarily Yiddish, Hebrew, and Eastern European languages - hosted in AbiWord's CVS under the module "uspell")

  • Hspell (Hebrew)

  • AppleSpell (Mac OSX)


Dependências

This version uses the functions of the » Enchant library by Dom Lachowicz. You need Enchant 1.2.4 or later. Enchant 2.0.0 or later is only supported as of PHP 8.0.0.

Enchant also requires » Glib 2.6 or greater. Pre-compiled Windows libraries are available from » http://ftp.gnome.org/pub/gnome/binaries/win32/glib/.


Instalação

Provided the required libraries are installed, users may enable enchant by adding the --with-enchant[=dir] option when compiling PHP.

Windows users must enable php_enchant.dll in order to use this extension.

Nota: Additional setup on Windows

Para que esta extensão funcione, existem arquivos DLL que devem estar disponíveis no PATH do sistema Windows. Para saber como fazer isso, veja a FAQ intitulada "Como eu adiciono o meu diretório PHP ao PATH do Windows". Embora copiar arquivos DLL da pasta do PHP para o diretório system do Windows também funcione (porque o diretório system está, por padrão, no PATH do sistema), isso não é recomendado. Esta extensão requer que os seguintes arquivos estejam no PATH: libenchant.dll, glib-2.dll, gmodule-2.dll.

Furthermore, it is necessary to copy at least one of the shipped providers in lib\enchant to \usr\local\lib\enchant-2 (which is an absolute path from the root of the current drive). Prior to PHP 8.0.0, i.e. using Enchant v1, the providers had to be copied to C:\enchant_plugins instead, where this path could be customized by creating the registry value HKEY_CURRENT_USER\SOFTWARE\Enchant\Config\Module_Dir and setting it to the desired path.


Tipos de Recurso

Prior to PHP 8.0.0, there are two types of resources in this extension. The first one is the broker (backends manager) and the second is for the dictionary.


Constantes pré-definidas

LIBENCHANT_VERSION (string)
The version of libenchant. Available as of PHP 8.0.0.
ENCHANT_MYSPELL (int)
Dictionary type for MySpell. Used with enchant_broker_get_dict_path() and enchant_broker_set_dict_path(). Deprecated as of PHP 8.0.0.
ENCHANT_ISPELL (int)
Dictionary type for Ispell. Used with enchant_broker_get_dict_path() and enchant_broker_set_dict_path(). Deprecated as of PHP 8.0.0.


Exemplos

Exemplo #1 Enchant Usage Example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Current broker provides the following backend(s):\n";
print_r($bprovides);

$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
if (enchant_broker_dict_exists($r,$tag)) {
$d = enchant_broker_request_dict($r, $tag);
$dprovides = enchant_dict_describe($d);
echo "dictionary $tag provides:\n";
$wordcorrect = enchant_dict_check($d, "soong");
print_r($dprovides);
if (!$wordcorrect) {
$suggs = enchant_dict_suggest($d, "soong");
echo "Suggestions for 'soong':";
print_r($suggs);
}
enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>


Enchant Funções

Índice

  • enchant_broker_describe — Enumerates the Enchant providers
  • enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict — Free a dictionary resource
  • enchant_broker_free — Free the broker resource and its dictionaries
  • enchant_broker_get_dict_path — Get the directory path for a given backend
  • enchant_broker_get_error — Returns the last error of the broker
  • enchant_broker_init — Create a new broker object capable of requesting
  • enchant_broker_list_dicts — Returns a list of available dictionaries
  • enchant_broker_request_dict — Create a new dictionary using a tag
  • enchant_broker_request_pwl_dict — Creates a dictionary using a PWL file
  • enchant_broker_set_dict_path — Set the directory path for a given backend
  • enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language
  • enchant_dict_add_to_personal — Sinônimo de enchant_dict_add
  • enchant_dict_add_to_session — Add 'word' to this spell-checking session
  • enchant_dict_add — Add a word to personal word list
  • enchant_dict_check — Check whether a word is correctly spelled or not
  • enchant_dict_describe — Describes an individual dictionary
  • enchant_dict_get_error — Returns the last error of the current spelling-session
  • enchant_dict_is_added — Whether or not 'word' exists in this spelling-session
  • enchant_dict_is_in_session — Sinônimo de enchant_dict_is_added
  • enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions
  • enchant_dict_store_replacement — Add a correction for a word
  • enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met


Enumerates the Enchant providers

  • « Enchant Funções
  • enchant_broker_dict_exists »
  • PHP Manual
  • Enchant Funções
  • Enumerates the Enchant providers

enchant_broker_describe

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0)

enchant_broker_describe — Enumerates the Enchant providers

Descrição

enchant_broker_describe(EnchantBroker $broker): array

Enumerates the Enchant providers and tells you some rudimentary information about them. The same info is provided through phpinfo().

Parâmetros

broker

Um agente Enchant retornado por enchant_broker_init().

Valor Retornado

Returns an array of available Enchant providers with their details.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro broker agora espera uma instância de EnchantBroker; anteriormente, um resource era esperado.
8.0.0 | Prior to this version, the function returned false on failure.

Exemplos

Exemplo #1 List the backends provided by the given broker

<?php
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Current broker provides the following backend(s):\n";
print_r($bprovides);

?>

O exemplo acima produzirá algo semelhante a:

Current broker provides the following backend(s):
Array
(
    [0] => Array
        (
            [name] => aspell
            [desc] => Aspell Provider
            [file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [name] => hspell
            [desc] => Hspell Provider
            [file] => /usr/lib/enchant/libenchant_hspell.so
        )

    [2] => Array
        (
            [name] => ispell
            [desc] => Ispell Provider
            [file] => /usr/lib/enchant/libenchant_ispell.so
        )

    [3] => Array
        (
            [name] => myspell
            [desc] => Myspell Provider
            [file] => /usr/lib/enchant/libenchant_myspell.so
        )

)


Whether a dictionary exists or not. Using non-empty tag

  • « enchant_broker_describe
  • enchant_broker_free_dict »
  • PHP Manual
  • Enchant Funções
  • Whether a dictionary exists or not. Using non-empty tag

enchant_broker_dict_exists

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag

Descrição

enchant_broker_dict_exists(EnchantBroker $broker, string $tag): bool

Tells if a dictionary exists or not, using a non-empty tags

Parâmetros

broker

Um agente Enchant retornado por enchant_broker_init().

tag

non-empty tag in the LOCALE format, ex: us_US, ch_DE, etc.

Valor Retornado

Returns true when the tag exist or false when not.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro broker agora espera uma instância de EnchantBroker; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 A enchant_broker_dict_exists() example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
echo $tag . " dictionary found.\n";
}
?>

Veja Também

  • enchant_broker_describe() - Enumerates the Enchant providers


Free a dictionary resource

  • « enchant_broker_dict_exists
  • enchant_broker_free »
  • PHP Manual
  • Enchant Funções
  • Free a dictionary resource

enchant_broker_free_dict

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_free_dict — Free a dictionary resource

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

enchant_broker_free_dict(EnchantDictionary $dictionary): bool

Free a dictionary. As of PHP 8.0.0, it is recommended to unset the object instead of calling this function.

Parâmetros

dictionary

Um dicionário Enchant retornado por enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | dictionary expects a EnchantDictionary now; previoulsy, a resource was expected.

Veja Também

  • enchant_broker_request_dict() - Create a new dictionary using a tag
  • enchant_broker_request_pwl_dict() - Creates a dictionary using a PWL file


Free the broker resource and its dictionaries

  • « enchant_broker_free_dict
  • enchant_broker_get_dict_path »
  • PHP Manual
  • Enchant Funções
  • Free the broker resource and its dictionaries

enchant_broker_free

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_free — Free the broker resource and its dictionaries

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

enchant_broker_free(EnchantBroker $broker): bool

Free a broker with all its dictionaries. As of PHP 8.0.0, it is recommended to unset the object instead of calling this function.

Parâmetros

broker

Um agente Enchant retornado por enchant_broker_init().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro broker agora espera uma instância de EnchantBroker; anteriormente, um resource era esperado.

Veja Também

  • enchant_broker_init() - Create a new broker object capable of requesting


Get the directory path for a given backend

  • « enchant_broker_free
  • enchant_broker_get_error »
  • PHP Manual
  • Enchant Funções
  • Get the directory path for a given backend

enchant_broker_get_dict_path

(PHP 5 >= 5.3.1, PHP 7, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_get_dict_path — Get the directory path for a given backend

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

enchant_broker_get_dict_path(EnchantBroker $broker, int $type): string|false

Get the directory path for a given backend.

Parâmetros

broker

Um agente Enchant retornado por enchant_broker_init().

type

The type of the dictionaries, i.e. ENCHANT_MYSPELL or ENCHANT_ISPELL.

Valor Retornado

Returns the path of the dictionary directory on success ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro broker agora espera uma instância de EnchantBroker; anteriormente, um resource era esperado.

Notas

Nota:

This function is only available if the extension has been compiled with Enchant v1.

Veja Também

  • enchant_broker_set_dict_path() - Set the directory path for a given backend


Returns the last error of the broker

  • « enchant_broker_get_dict_path
  • enchant_broker_init »
  • PHP Manual
  • Enchant Funções
  • Returns the last error of the broker

enchant_broker_get_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_get_error — Returns the last error of the broker

Descrição

enchant_broker_get_error(EnchantBroker $broker): string|false

Returns the last error which occurred in this broker.

Parâmetros

broker

Um agente Enchant retornado por enchant_broker_init().

Valor Retornado

Return the msg string if an error was found or false

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro broker agora espera uma instância de EnchantBroker; anteriormente, um resource era esperado.


Create a new broker object capable of requesting

  • « enchant_broker_get_error
  • enchant_broker_list_dicts »
  • PHP Manual
  • Enchant Funções
  • Create a new broker object capable of requesting

enchant_broker_init

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_init — Create a new broker object capable of requesting

Descrição

enchant_broker_init(): EnchantBroker|false

Parâmetros

Valor Retornado

Returns a broker resource on success or false.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns an EnchantBroker instance now; previously, a resource was returned.

Veja Também

  • enchant_broker_free() - Free the broker resource and its dictionaries


Returns a list of available dictionaries

  • « enchant_broker_init
  • enchant_broker_request_dict »
  • PHP Manual
  • Enchant Funções
  • Returns a list of available dictionaries

enchant_broker_list_dicts

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_list_dicts — Returns a list of available dictionaries

Descrição

enchant_broker_list_dicts(EnchantBroker $broker): array

Returns a list of available dictionaries with their details.

Parâmetros

broker

Um agente Enchant retornado por enchant_broker_init().

Valor Retornado

Returns an array of available dictionaries with their details.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro broker agora espera uma instância de EnchantBroker; anteriormente, um resource era esperado.
8.0.0 | Prior to this version, the function returned false on failure.

Exemplos

Exemplo #1 List all available dictionaries for one broker

<?php
$r = enchant_broker_init();
$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [lang_tag] => de
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [lang_tag] => de_DE
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [3] => Array
        (
            [lang_tag] => en
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [4] => Array
        (
            [lang_tag] => en_GB
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [5] => Array
        (
            [lang_tag] => en_US
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [6] => Array
        (
            [lang_tag] => hi_IN
            [provider_name] => myspell
            [provider_desc] => Myspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_myspell.so
        )

)

Veja Também

  • enchant_broker_describe() - Enumerates the Enchant providers


Create a new dictionary using a tag

  • « enchant_broker_list_dicts
  • enchant_broker_request_pwl_dict »
  • PHP Manual
  • Enchant Funções
  • Create a new dictionary using a tag

enchant_broker_request_dict

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_request_dict — Create a new dictionary using a tag

Descrição

enchant_broker_request_dict(EnchantBroker $broker, string $tag): EnchantDictionary|false

create a new dictionary using tag, the non-empty language tag you wish to request a dictionary for ("en_US", "de_DE", ...)

Parâmetros

broker

Um agente Enchant retornado por enchant_broker_init().

tag

A tag describing the locale, for example en_US, de_DE

Valor Retornado

Returns a dictionary resource on success ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro broker agora espera uma instância de EnchantBroker; anteriormente, um resource era esperado.
8.0.0 | On success, this function returns an EnchantDictionary instance now; previoulsy, a resource was retured.

Exemplos

Exemplo #1 A enchant_broker_request_dict() example

Check if a dictionary exists using enchant_broker_dict_exists() and request it.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
$dict = enchant_broker_request_dict($r, $tag);
}
?>

Veja Também

  • enchant_dict_describe() - Describes an individual dictionary
  • enchant_broker_dict_exists() - Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict() - Free a dictionary resource


Creates a dictionary using a PWL file

  • « enchant_broker_request_dict
  • enchant_broker_set_dict_path »
  • PHP Manual
  • Enchant Funções
  • Creates a dictionary using a PWL file

enchant_broker_request_pwl_dict

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_request_pwl_dict — Creates a dictionary using a PWL file

Descrição

enchant_broker_request_pwl_dict(EnchantBroker $broker, string $filename): EnchantDictionary|false

Creates a dictionary using a PWL file. A PWL file is personal word file one word per line.

Parâmetros

broker

Um agente Enchant retornado por enchant_broker_init().

filename

Path to the PWL file. If there is no such file, a new one will be created if possible.

Valor Retornado

Returns a dictionary resource on success ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro broker agora espera uma instância de EnchantBroker; anteriormente, um resource era esperado.
8.0.0 | On success, this function returns an EnchantDictionary instance now; previoulsy, a resource was retured.

Veja Também

  • enchant_dict_describe() - Describes an individual dictionary
  • enchant_broker_dict_exists() - Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict() - Free a dictionary resource


Set the directory path for a given backend

  • « enchant_broker_request_pwl_dict
  • enchant_broker_set_ordering »
  • PHP Manual
  • Enchant Funções
  • Set the directory path for a given backend

enchant_broker_set_dict_path

(PHP 5 >= 5.3.1, PHP 7, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_set_dict_path — Set the directory path for a given backend

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

enchant_broker_set_dict_path(EnchantBroker $broker, int $type, string $path): bool

Set the directory path for a given backend.

Parâmetros

broker

Um agente Enchant retornado por enchant_broker_init().

type

The type of the dictionaries, i.e. ENCHANT_MYSPELL or ENCHANT_ISPELL.

path

The path of the dictionary directory.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro broker agora espera uma instância de EnchantBroker; anteriormente, um resource era esperado.

Notas

Nota:

This function is only available if the extension has been compiled with Enchant v1.

Veja Também

  • enchant_broker_get_dict_path() - Get the directory path for a given backend


Declares a preference of dictionaries to use for the language

  • « enchant_broker_set_dict_path
  • enchant_dict_add_to_personal »
  • PHP Manual
  • Enchant Funções
  • Declares a preference of dictionaries to use for the language

enchant_broker_set_ordering

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language

Descrição

enchant_broker_set_ordering(EnchantBroker $broker, string $tag, string $ordering): bool

Declares a preference of dictionaries to use for the language described/referred to by 'tag'. The ordering is a comma delimited list of provider names. As a special exception, the "*" tag can be used as a language tag to declare a default ordering for any language that does not explicitly declare an ordering.

Parâmetros

broker

Um agente Enchant retornado por enchant_broker_init().

tag

Language tag. The special "*" tag can be used as a language tag to declare a default ordering for any language that does not explicitly declare an ordering.

ordering

Comma delimited list of provider names

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro broker agora espera uma instância de EnchantBroker; anteriormente, um resource era esperado.


Sinônimo de enchant_dict_add

  • « enchant_broker_set_ordering
  • enchant_dict_add_to_session »
  • PHP Manual
  • Enchant Funções
  • Sinônimo de enchant_dict_add

enchant_dict_add_to_personal

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_add_to_personal — Sinônimo de enchant_dict_add()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 8.0.0.

Descrição

Esta função é um apelido para: enchant_dict_add().


Add 'word' to this spell-checking session

  • « enchant_dict_add_to_personal
  • enchant_dict_add »
  • PHP Manual
  • Enchant Funções
  • Add 'word' to this spell-checking session

enchant_dict_add_to_session

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_add_to_session — Add 'word' to this spell-checking session

Descrição

enchant_dict_add_to_session(EnchantDictionary $dictionary, string $word): void

Add a word to the given dictionary. It will be added only for the active spell-checking session.

Parâmetros

dictionary

Um dicionário Enchant retornado por enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

The word to add

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro dictionary agora espera uma instância de EnchantDictionary; anteriormente, um resource era esperado.

Veja Também

  • enchant_broker_request_dict() - Create a new dictionary using a tag


Add a word to personal word list

  • « enchant_dict_add_to_session
  • enchant_dict_check »
  • PHP Manual
  • Enchant Funções
  • Add a word to personal word list

enchant_dict_add

(PHP 8)

enchant_dict_add — Add a word to personal word list

Descrição

enchant_dict_add(EnchantDictionary $dictionary, string $word): void

Add a word to personal word list of the given dictionary.

Parâmetros

dictionary

Um dicionário Enchant retornado por enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

The word to add

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro dictionary agora espera uma instância de EnchantDictionary; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Adding a word to a PWL

<?php

$filename = './my_word_list.pwl';
$word = 'Supercalifragilisticexpialidocious';

$broker = enchant_broker_init();
$dict = enchant_broker_request_pwl_dict($broker, $filename);

enchant_dict_add($dict, $word);

enchant_broker_free($broker);

?>

Veja Também

  • enchant_broker_request_pwl_dict() - Creates a dictionary using a PWL file
  • enchant_broker_request_dict() - Create a new dictionary using a tag


Check whether a word is correctly spelled or not

  • « enchant_dict_add
  • enchant_dict_describe »
  • PHP Manual
  • Enchant Funções
  • Check whether a word is correctly spelled or not

enchant_dict_check

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_check — Check whether a word is correctly spelled or not

Descrição

enchant_dict_check(EnchantDictionary $dictionary, string $word): bool

If the word is correctly spelled return true, otherwise return false

Parâmetros

dictionary

Um dicionário Enchant retornado por enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

The word to check

Valor Retornado

Returns true if the word is spelled correctly, false if not.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro dictionary agora espera uma instância de EnchantDictionary; anteriormente, um resource era esperado.


Describes an individual dictionary

  • « enchant_dict_check
  • enchant_dict_get_error »
  • PHP Manual
  • Enchant Funções
  • Describes an individual dictionary

enchant_dict_describe

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_describe — Describes an individual dictionary

Descrição

enchant_dict_describe(EnchantDictionary $dictionary): array

Returns the details of the dictionary.

Parâmetros

dictionary

Um dicionário Enchant retornado por enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro dictionary agora espera uma instância de EnchantDictionary; anteriormente, um resource era esperado.
8.0.0 | Prior to this version, the function returned false on failure.

Exemplos

Exemplo #1 A enchant_dict_describe() example

Check if a dictionary exists using enchant_broker_dict_exists() and show the detail of it.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
$dict = enchant_broker_request_dict($r, $tag);
$dict_details = enchant_dict_describe($dict);
print_r($dict_details);
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [lang] => en_US
    [name] => aspell
    [desc] => Aspell Provider
    [file] => /usr/lib/enchant/libenchant_aspell.so
)


Returns the last error of the current spelling-session

  • « enchant_dict_describe
  • enchant_dict_is_added »
  • PHP Manual
  • Enchant Funções
  • Returns the last error of the current spelling-session

enchant_dict_get_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_get_error — Returns the last error of the current spelling-session

Descrição

enchant_dict_get_error(EnchantDictionary $dictionary): string|false

Returns the last error of the current spelling-session

Parâmetros

dictionary

Um dicionário Enchant retornado por enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

Valor Retornado

Returns the error message as string or false if no error occurred.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro dictionary agora espera uma instância de EnchantDictionary; anteriormente, um resource era esperado.


Whether or not 'word' exists in this spelling-session

  • « enchant_dict_get_error
  • enchant_dict_is_in_session »
  • PHP Manual
  • Enchant Funções
  • Whether or not 'word' exists in this spelling-session

enchant_dict_is_added

(PHP 8)

enchant_dict_is_added — Whether or not 'word' exists in this spelling-session

Descrição

enchant_dict_is_added(EnchantDictionary $dictionary, string $word): bool

Tells whether or not a word already exists in the current session.

Parâmetros

dictionary

Um dicionário Enchant retornado por enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

The word to lookup

Valor Retornado

Returns true if the word exists or false

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro dictionary agora espera uma instância de EnchantDictionary; anteriormente, um resource era esperado.

Veja Também

  • enchant_dict_add_to_session() - Add 'word' to this spell-checking session


Sinônimo de enchant_dict_is_added

  • « enchant_dict_is_added
  • enchant_dict_quick_check »
  • PHP Manual
  • Enchant Funções
  • Sinônimo de enchant_dict_is_added

enchant_dict_is_in_session

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_is_in_session — Sinônimo de enchant_dict_is_added()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 8.0.0.

Descrição

Esta função é um apelido para: enchant_dict_is_added().


Check the word is correctly spelled and provide suggestions

  • « enchant_dict_is_in_session
  • enchant_dict_store_replacement »
  • PHP Manual
  • Enchant Funções
  • Check the word is correctly spelled and provide suggestions

enchant_dict_quick_check

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant:0.2.0-1.0.1)

enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions

Descrição

enchant_dict_quick_check(EnchantDictionary $dictionary, string $word, array &$suggestions = null): bool

If the word is correctly spelled return true, otherwise return false, if suggestions variable is provided, fill it with spelling alternatives.

Parâmetros

dictionary

Um dicionário Enchant retornado por enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

The word to check

suggestions

If the word is not correctly spelled, this variable will contain an array of suggestions.

Valor Retornado

Returns true if the word is correctly spelled or false

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro dictionary agora espera uma instância de EnchantDictionary; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 A enchant_dict_quick_check() example

<?php
$tag = 'en_US';
$r = enchant_broker_init();

if (enchant_broker_dict_exists($r,$tag)) {
$d = enchant_broker_request_dict($r, $tag);
enchant_dict_quick_check($d, 'soong', $suggs);
print_r($suggs);
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => song
    [1] => snog
    [2] => soon
    [3] => Sang
    [4] => Sung
    [5] => sang
    [6] => sung
    [7] => sponge
    [8] => spongy
    [9] => snag
    [10] => snug
    [11] => sonic
    [12] => sing
    [13] => songs
    [14] => Son
    [15] => Sonja
    [16] => Synge
    [17] => son
    [18] => Sejong
    [19] => sarong
    [20] => sooner
    [21] => Sony
    [22] => sown
    [23] => scone
    [24] => song's
)

Veja Também

  • enchant_dict_check() - Check whether a word is correctly spelled or not
  • enchant_dict_suggest() - Will return a list of values if any of those pre-conditions are not met


Add a correction for a word

  • « enchant_dict_quick_check
  • enchant_dict_suggest »
  • PHP Manual
  • Enchant Funções
  • Add a correction for a word

enchant_dict_store_replacement

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_store_replacement — Add a correction for a word

Descrição

enchant_dict_store_replacement(EnchantDictionary $dictionary, string $misspelled, string $correct): void

Add a correction for 'mis' using 'cor'. Notes that you replaced @mis with @cor, so it's possibly more likely that future occurrences of @mis will be replaced with @cor. So it might bump @cor up in the suggestion list.

Parâmetros

dictionary

Um dicionário Enchant retornado por enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

misspelled

The work to fix

correct

The correct word

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro dictionary agora espera uma instância de EnchantDictionary; anteriormente, um resource era esperado.


Will return a list of values if any of those pre-conditions are not met

  • « enchant_dict_store_replacement
  • EnchantBroker »
  • PHP Manual
  • Enchant Funções
  • Will return a list of values if any of those pre-conditions are not met

enchant_dict_suggest

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met

Descrição

enchant_dict_suggest(EnchantDictionary $dictionary, string $word): array

Parâmetros

dictionary

Um dicionário Enchant retornado por enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

Word to use for the suggestions.

Valor Retornado

Will returns an array of suggestions if the word is bad spelled.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro dictionary agora espera uma instância de EnchantDictionary; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 A enchant_dict_suggest() example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
$d = enchant_broker_request_dict($r, $tag);

$wordcorrect = enchant_dict_check($d, "soong");
if (!$wordcorrect) {
$suggs = enchant_dict_suggest($d, "soong");
echo "Suggestions for 'soong':";
print_r($suggs);
}
enchant_broker_free_dict($d);
}
enchant_broker_free($r);
?>

Veja Também

  • enchant_dict_check() - Check whether a word is correctly spelled or not
  • enchant_dict_quick_check() - Check the word is correctly spelled and provide suggestions


The EnchantBroker class

(PHP 8)

Introdução

A fully opaque class which replaces enchant_broker resources as of PHP 8.0.0.

Resumo da classe

final class EnchantBroker {
}


The EnchantDictionary class

(PHP 8)

Introdução

A fully opaque class which replaces enchant_dict resources as of PHP 8.0.0.

Resumo da classe

final class EnchantDictionary {
}


Determine gender of firstnames

  • Introdução
  • Instalação/Configuração
    • Instalação
  • Exemplos
    • Usage example.
  • Gender\Gender — The Gender\Gender class
    • Gender\Gender::connect — Connect to an external name dictionary
    • Gender\Gender::__construct — Construct the Gender object
    • Gender\Gender::country — Get textual country representation
    • Gender\Gender::get — Get gender of a name
    • Gender\Gender::isNick — Check if the name0 is an alias of the name1
    • Gender\Gender::similarNames — Get similar names


Introdução

Gender PHP extension is a port of the gender.c program originally written by Joerg Michael. The main purpose is to find out the gender of firstnames. The current database contains >40000 firstnames from 54 countries.


  • « Introdução
  • Instalação »
  • PHP Manual
  • Gender
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Instalação


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/gender.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/gender/.


  • « Instalação
  • Usage example. »
  • PHP Manual
  • Gender
  • Exemplos

Exemplos

Índice

  • Usage example.


Usage example.

Gender class usage example.

Exemplo #1 Usage example.

<?php

namespace Gender;

$gender = new Gender;

$name = "Milene";
$country = Gender::FRANCE;

$result = $gender->get($name, $country);

$data = $gender->country($country);

switch($result) {
case Gender::IS_FEMALE:
printf("The name %s is female in %s\n", $name, $data['country']);
break;

case Gender::IS_MOSTLY_FEMALE:
printf("The name %s is mostly female in %s\n", $name, $data['country']);
break;

case Gender::IS_MALE:
printf("The name %s is male in %s\n", $name, $data['country']);
break;

case Gender::IS_MOSTLY_MALE:
printf("The name %s is mostly male in %s\n", $name, $data['country']);
break;

case Gender::IS_UNISEX_NAME:
printf("The name %s is unisex in %s\n", $name, $data['country']);
break;

case Gender::IS_A_COUPLE:
printf("The name %s is both male and female in %s\n", $name, $data['country']);
break;

case Gender::NAME_NOT_FOUND:
printf("The name %s was not found for %s\n", $name, $data['country']);
break;

case Gender::ERROR_IN_NAME:
echo "There is an error in the given name!\n";
break;

default:
echo "An error occurred!\n";
break;

}


The Gender\Gender class

(PECL gender >= 0.6.0)

Introdução

Resumo da classe

class Gender\Gender {
/* Constantes */
const int IS_FEMALE = 70;
const int IS_MOSTLY_FEMALE = 102;
const int IS_MALE = 77;
const int IS_MOSTLY_MALE = 109;
const int IS_UNISEX_NAME = 63;
const int IS_A_COUPLE = 67;
const int NAME_NOT_FOUND = 32;
const int ERROR_IN_NAME = 69;
const int ANY_COUNTRY = 0;
const int BRITAIN = 1;
const int IRELAND = 2;
const int USA = 3;
const int SPAIN = 4;
const int PORTUGAL = 5;
const int ITALY = 6;
const int MALTA = 7;
const int FRANCE = 8;
const int BELGIUM = 9;
const int LUXEMBOURG = 10;
const int NETHERLANDS = 11;
const int GERMANY = 12;
const int EAST_FRISIA = 13;
const int AUSTRIA = 14;
const int SWISS = 15;
const int ICELAND = 16;
const int DENMARK = 17;
const int NORWAY = 18;
const int SWEDEN = 19;
const int FINLAND = 20;
const int ESTONIA = 21;
const int LATVIA = 22;
const int LITHUANIA = 23;
const int POLAND = 24;
const int CZECH_REP = 25;
const int SLOVAKIA = 26;
const int HUNGARY = 27;
const int ROMANIA = 28;
const int BULGARIA = 29;
const int BOSNIA = 30;
const int CROATIA = 31;
const int KOSOVO = 32;
const int MACEDONIA = 33;
const int MONTENEGRO = 34;
const int SERBIA = 35;
const int SLOVENIA = 36;
const int ALBANIA = 37;
const int GREECE = 38;
const int RUSSIA = 39;
const int BELARUS = 40;
const int MOLDOVA = 41;
const int UKRAINE = 42;
const int ARMENIA = 43;
const int AZERBAIJAN = 44;
const int GEORGIA = 45;
const int KAZAKH_UZBEK = 46;
const int TURKEY = 47;
const int ARABIA = 48;
const int ISRAEL = 49;
const int CHINA = 50;
const int INDIA = 51;
const int JAPAN = 52;
const int KOREA = 53;
/* Métodos */
public __construct(string $dsn = ?)
public connect(string $dsn): bool
public country(int $country): array|false
public get(string $name, int $country = ?): int
public isNick(string $name0, string $name1, int $country = ?): array
public similarNames(string $name, int $country = ?): array
}

Constantes pré-definidas

Gender\Gender::IS_FEMALE

Gender\Gender::IS_MOSTLY_FEMALE

Gender\Gender::IS_MALE

Gender\Gender::IS_MOSTLY_MALE

Gender\Gender::IS_UNISEX_NAME

Gender\Gender::IS_A_COUPLE

Gender\Gender::NAME_NOT_FOUND

Gender\Gender::ERROR_IN_NAME

Gender\Gender::ANY_COUNTRY

Gender\Gender::BRITAIN

Gender\Gender::IRELAND

Gender\Gender::USA

Gender\Gender::SPAIN

Gender\Gender::PORTUGAL

Gender\Gender::ITALY

Gender\Gender::MALTA

Gender\Gender::FRANCE

Gender\Gender::BELGIUM

Gender\Gender::LUXEMBOURG

Gender\Gender::NETHERLANDS

Gender\Gender::GERMANY

Gender\Gender::EAST_FRISIA

Gender\Gender::AUSTRIA

Gender\Gender::SWISS

Gender\Gender::ICELAND

Gender\Gender::DENMARK

Gender\Gender::NORWAY

Gender\Gender::SWEDEN

Gender\Gender::FINLAND

Gender\Gender::ESTONIA

Gender\Gender::LATVIA

Gender\Gender::LITHUANIA

Gender\Gender::POLAND

Gender\Gender::CZECH_REP

Gender\Gender::SLOVAKIA

Gender\Gender::HUNGARY

Gender\Gender::ROMANIA

Gender\Gender::BULGARIA

Gender\Gender::BOSNIA

Gender\Gender::CROATIA

Gender\Gender::KOSOVO

Gender\Gender::MACEDONIA

Gender\Gender::MONTENEGRO

Gender\Gender::SERBIA

Gender\Gender::SLOVENIA

Gender\Gender::ALBANIA

Gender\Gender::GREECE

Gender\Gender::RUSSIA

Gender\Gender::BELARUS

Gender\Gender::MOLDOVA

Gender\Gender::UKRAINE

Gender\Gender::ARMENIA

Gender\Gender::AZERBAIJAN

Gender\Gender::GEORGIA

Gender\Gender::KAZAKH_UZBEK

Gender\Gender::TURKEY

Gender\Gender::ARABIA

Gender\Gender::ISRAEL

Gender\Gender::CHINA

Gender\Gender::INDIA

Gender\Gender::JAPAN

Gender\Gender::KOREA

Índice

  • Gender\Gender::connect — Connect to an external name dictionary
  • Gender\Gender::__construct — Construct the Gender object
  • Gender\Gender::country — Get textual country representation
  • Gender\Gender::get — Get gender of a name
  • Gender\Gender::isNick — Check if the name0 is an alias of the name1
  • Gender\Gender::similarNames — Get similar names


Connect to an external name dictionary

  • « Gender\Gender
  • Gender\Gender::__construct »
  • PHP Manual
  • Gender\Gender
  • Connect to an external name dictionary

Gender\Gender::connect

(PECL gender >= 0.6.0)

Gender\Gender::connect — Connect to an external name dictionary

Descrição

public Gender\Gender::connect(string $dsn): bool

Connect to an external name dictionary. Currently only streams are supported.

Parâmetros

dsn

DSN to open.

Valor Retornado

Boolean as success of failure.


Construct the Gender object

  • « Gender\Gender::connect
  • Gender\Gender::country »
  • PHP Manual
  • Gender\Gender
  • Construct the Gender object

Gender\Gender::__construct

(PECL gender >= 0.6.0)

Gender\Gender::__construct — Construct the Gender object

Descrição

public Gender\Gender::__construct(string $dsn = ?)

Create a Gender object optionally connecting to an external name dictionary. When no external database was given, compiled in data will be used.

Parâmetros

dsn

DSN to open.


Get textual country representation

  • « Gender\Gender::__construct
  • Gender\Gender::get »
  • PHP Manual
  • Gender\Gender
  • Get textual country representation

Gender\Gender::country

(PECL gender >= 0.8.0)

Gender\Gender::country — Get textual country representation

Descrição

public Gender\Gender::country(int $country): array|false

Returns the textual representation of a country from a Gender class constant.

Parâmetros

country

A country ID specified by a Gender\Gender class constant.

Valor Retornado

Returns an array with the short and full names of the country on success ou false em caso de falha.

Exemplos

Exemplo #1 Using Gender\Gender::country()

$gender = new Gender\Gender;
var_dump($gender->country(Gender\Gender::BRITAIN));

O exemplo acima produzirá:

array(2) {
  'country_short' =>
  string(2) "UK"
  'country' =>
  string(13) "Great Britain"
}


Get gender of a name

  • « Gender\Gender::country
  • Gender\Gender::isNick »
  • PHP Manual
  • Gender\Gender
  • Get gender of a name

Gender\Gender::get

(PECL gender >= 0.6.0)

Gender\Gender::get — Get gender of a name

Descrição

public Gender\Gender::get(string $name, int $country = ?): int

Get the gender of the name in a particular country.

Parâmetros

name

Name to check.

country

Country id identified by Gender class constant.

Valor Retornado

Returns gender of the name.


Check if the name0 is an alias of the name1

  • « Gender\Gender::get
  • Gender\Gender::similarNames »
  • PHP Manual
  • Gender\Gender
  • Check if the name0 is an alias of the name1

Gender\Gender::isNick

(PECL gender >= 0.9.0)

Gender\Gender::isNick — Check if the name0 is an alias of the name1

Descrição

public Gender\Gender::isNick(string $name0, string $name1, int $country = ?): array

Check whether the name0 is a nick of the name1.

Parâmetros

name0

Name to check.

name1

Name to check.

country

Country id identified by Gender class constant. If ommited ANY_COUNTRY is used.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Get similar names

  • « Gender\Gender::isNick
  • Gettext »
  • PHP Manual
  • Gender\Gender
  • Get similar names

Gender\Gender::similarNames

(PECL gender >= 0.9.0)

Gender\Gender::similarNames — Get similar names

Descrição

public Gender\Gender::similarNames(string $name, int $country = ?): array

Get similar names for the given name and country.

Parâmetros

name

Name to check.

country

Country id identified by Gender class constant. If ommited ANY_COUNTRY is used.

Valor Retornado

Returns an array with the similar names found.


Gettext

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções da Gettext
    • bind_textdomain_codeset — Especifica ou obtém a codificação de caracteres na qual as mensagens do catálogo de mensagens de DOMÍNIO serão retornadas
    • bindtextdomain — Define ou obtém o caminho para um domínio
    • dcgettext — Substitui o domínio por um lookup
    • dcngettext — Plural version of dcgettext
    • dgettext — Override the current domain
    • dngettext — Plural version of dgettext
    • gettext — Lookup a message in the current domain
    • ngettext — Versão plural de gettext
    • textdomain — Sets the default domain


Introdução

As funções gettext implementam uma API NLS (Native Language Support) que pode ser usada para internacionalizar aplicações PHP. Consulte a documentação da gettext para seu sistema para uma maior explicação destas funções ou acesse a documentação em » http://www.gnu.org/software/gettext/manual/gettext.html.


Dependências

Para usar estas funções você precisa fazer download e instalar o pacote GNU gettext de » http://www.gnu.org/software/gettext/gettext.html


Instalação

Para incluir o suporte ao GNU gettext na sua instalação PHP você deve adicionar a opção --with-gettext[=DIR] onde DIR é o diretório de instalação do gettext, o diretório padrão é /usr/local.


  • « Tipos de Recurso
  • Funções da Gettext »
  • PHP Manual
  • Gettext
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Funções da Gettext

Índice

  • bind_textdomain_codeset — Especifica ou obtém a codificação de caracteres na qual as mensagens do catálogo de mensagens de DOMÍNIO serão retornadas
  • bindtextdomain — Define ou obtém o caminho para um domínio
  • dcgettext — Substitui o domínio por um lookup
  • dcngettext — Plural version of dcgettext
  • dgettext — Override the current domain
  • dngettext — Plural version of dgettext
  • gettext — Lookup a message in the current domain
  • ngettext — Versão plural de gettext
  • textdomain — Sets the default domain


Especifica ou obtém a codificação de caracteres na qual as mensagens do catálogo de mensagens de DOMÍNIO serão retornadas

  • « Funções da Gettext
  • bindtextdomain »
  • PHP Manual
  • Funções da Gettext
  • Especifica ou obtém a codificação de caracteres na qual as mensagens do catálogo de mensagens de DOMÍNIO serão retornadas

bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

bind_textdomain_codeset — Especifica ou obtém a codificação de caracteres na qual as mensagens do catálogo de mensagens de DOMÍNIO serão retornadas

Descrição

bind_textdomain_codeset(string $domain, ?string $codeset): string|false

bind_textdomain_codeset() permite definir ou obter a codificação na qual as mensagens de domain serão retornadas por gettext() e funções similares.

Parâmetros

domain

O domínio.

codeset

O conjunto de caracteres. Se null, a codificação atualmente definida é retornada.

Valor Retornado

Uma string em caso de sucesso.

Registro de Alterações

Versão | Descrição
8.0.3 | codeset agora pode ser nulo. Anteriormente, não era possível recuperar a codificação definida.

Notas

Nota:

A informação de bind_textdomain_codeset() é mantida por processo, não por thread.


Define ou obtém o caminho para um domínio

  • « bind_textdomain_codeset
  • dcgettext »
  • PHP Manual
  • Funções da Gettext
  • Define ou obtém o caminho para um domínio

bindtextdomain

(PHP 4, PHP 5, PHP 7, PHP 8)

bindtextdomain — Define ou obtém o caminho para um domínio

Descrição

bindtextdomain(string $domain, ?string $directory): string|false

A função bindtextdomain() define ou obtém um caminho para um domínio.

Parâmetros

domain

O domínio.

directory

O caminho do diretório. Uma string vazia significa o diretório atual. Se null, o diretório definido para o domínio é retornado.

Valor Retornado

O caminho completo para o domínio definido por domain, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.3 | directory agora pode ser nulo. Anteriormente, não era possível recuperar o diretório definido para o domínio.

Exemplos

Exemplo #1 Exemplo de bindtextdomain()

<?php

$domain = 'myapp';
echo bindtextdomain($domain, '/usr/share/myapp/locale');

?>

O exemplo acima produzirá:

/usr/share/myapp/locale

Notas

Nota:

A informação de bindtextdomain() é mantida por processo, não por thread.


Substitui o domínio por um lookup

  • « bindtextdomain
  • dcngettext »
  • PHP Manual
  • Funções da Gettext
  • Substitui o domínio por um lookup

dcgettext

(PHP 4, PHP 5, PHP 7, PHP 8)

dcgettext — Substitui o domínio por um lookup

Descrição

dcgettext(string $domain, string $message, int $category): string

Esta função permite que você sobreescreva o domínio atual por uma simples mensagem de lookup.

Parâmetros

domain

O domínio

message

A mensagem

category

A categoria

Valor Retornado

Uma string em sucesso.

Veja Também

  • gettext() - Lookup a message in the current domain


Plural version of dcgettext

  • « dcgettext
  • dgettext »
  • PHP Manual
  • Funções da Gettext
  • Plural version of dcgettext

dcngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

dcngettext — Plural version of dcgettext

Descrição

dcngettext(
string $domain,
string $singular,
string $plural,
int $count,
int $category
): string

This function allows you to override the current domain for a single plural message lookup.

Parâmetros

domain

The domain

singular

plural

count

category

Valor Retornado

A string on success.

Veja Também

  • ngettext() - Versão plural de gettext


Override the current domain

  • « dcngettext
  • dngettext »
  • PHP Manual
  • Funções da Gettext
  • Override the current domain

dgettext

(PHP 4, PHP 5, PHP 7, PHP 8)

dgettext — Override the current domain

Descrição

dgettext(string $domain, string $message): string

The dgettext() function allows you to override the current domain for a single message lookup.

Parâmetros

domain

The domain

message

The message

Valor Retornado

A string on success.

Veja Também

  • gettext() - Lookup a message in the current domain


Plural version of dgettext

  • « dgettext
  • gettext »
  • PHP Manual
  • Funções da Gettext
  • Plural version of dgettext

dngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

dngettext — Plural version of dgettext

Descrição

dngettext(
string $domain,
string $singular,
string $plural,
int $count
): string

The dngettext() function allows you to override the current domain for a single plural message lookup.

Parâmetros

domain

The domain

singular

plural

count

Valor Retornado

A string on success.

Veja Também

  • ngettext() - Versão plural de gettext


Lookup a message in the current domain

  • « dngettext
  • ngettext »
  • PHP Manual
  • Funções da Gettext
  • Lookup a message in the current domain

gettext

(PHP 4, PHP 5, PHP 7, PHP 8)

gettext — Lookup a message in the current domain

Descrição

gettext(string $message): string

Looks up a message in the current domain.

Parâmetros

message

The message being translated.

Valor Retornado

Returns a translated string if one is found in the translation table, or the submitted message if not found.

Exemplos

Exemplo #1 gettext()-check

<?php
// Set language to German
putenv('LC_ALL=de_DE');
setlocale(LC_ALL, 'de_DE');

// Specify location of translation tables
bindtextdomain("myPHPApp", "./locale");

// Choose domain
textdomain("myPHPApp");

// Translation is looking for in ./locale/de_DE/LC_MESSAGES/myPHPApp.mo now

// Print a test message
echo gettext("Welcome to My PHP Application");

// Or use the alias _() for gettext()
echo _("Have a nice day");
?>

Notas

Nota:

You may use the underscore character '_' as an alias to this function.

Nota:

Setting a language isn't enough for some systems and the putenv() should be used to define the current locale.

Veja Também

  • setlocale() - Set locale information


Versão plural de gettext

  • « gettext
  • textdomain »
  • PHP Manual
  • Funções da Gettext
  • Versão plural de gettext

ngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ngettext — Versão plural de gettext

Descrição

ngettext(string $singular, string $plural, int $count): string

A versão plural de gettext(). Algumas línguas têm mais de uma forma para mensagens no plural dependendo da quantidade.

Parâmetros

singular

O ID da mensagem singular.

plural

O ID da mensagem plural.

count

O número (ex.: contagem de itens) para determinar a translação para o respectivo número gramatical.

Valor Retornado

Retorna a forma plural correta da mensagem identificada por singular e plural para a quantidade em count.

Exemplos

Exemplo #1 Exemplo de ngettext()

<?php

setlocale(LC_ALL, 'cs_CZ');
printf(ngettext("%d window", "%d windows", 1), 1); // 1 okno
printf(ngettext("%d window", "%d windows", 2), 2); // 2 okna
printf(ngettext("%d window", "%d windows", 5), 5); // 5 oken

?>


Sets the default domain

  • « ngettext
  • iconv »
  • PHP Manual
  • Funções da Gettext
  • Sets the default domain

textdomain

(PHP 4, PHP 5, PHP 7, PHP 8)

textdomain — Sets the default domain

Descrição

textdomain(?string $domain): string

This function sets the domain to search within when calls are made to gettext(), usually the named after an application.

Parâmetros

domain

The new message domain, or null to get the current setting without changing it

Valor Retornado

If successful, this function returns the current message domain, after possibly changing it.

Notas

Nota:

The textdomain() information is maintained per process, not per thread.


iconv

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • iconv Funções
    • iconv_get_encoding — Recuperar variáveis de configuração internas da extensão iconv
    • iconv_mime_decode_headers — Decodifica vários campos de cabeçalho MIME de uma só vez
    • iconv_mime_decode — Decodifica um campo de cabeçalho MIME
    • iconv_mime_encode — Compõe um campo de cabeçalho MIME
    • iconv_set_encoding — Define a configuração atual para conversão de codificação de caracteres
    • iconv_strlen — Retorna a contagem de caracteres da string
    • iconv_strpos — Localiza a posição da primeira ocorrência de um caractere em uma string
    • iconv_strrpos — Localiza a última ocorrência de um caractere em uma string
    • iconv_substr — Corta parte de uma string
    • iconv — Converte uma string de uma codificação de caracteres para outra
    • ob_iconv_handler — Converte codificação de caracteres como manipulador de buffer de saída


Introdução

Este módulo contém uma interface para o recurso de conversão do conjunto de caracteres iconv. Com este módulo, você pode transformar uma string representada por um conjunto de caracteres local em outra representada por outro conjunto de caracteres, que pode ser o conjunto de caracteres Unicode. Os conjuntos de caracteres suportados dependem da implementação iconv do seu sistema. Observe que a função iconv em alguns sistemas pode não funcionar conforme o esperado. Nesse caso, seria uma boa ideia instalar a biblioteca » GNU libiconv. Provavelmente acabará com resultados mais consistentes.

Esta extensão vem com várias funções utilitárias que ajudam você a escrever scripts multilíngues. Vamos dar uma olhada nas seções a seguir para explorar os novos recursos.


Dependências

Você não precisará de nada se o sistema que estiver usando for um dos sistemas compatíveis com POSIX recentes porque as bibliotecas C padrão fornecidas neles devem fornecer o recurso iconv. Caso contrário, você deve ter a biblioteca » libiconv instalada em seu sistema.


Instalação

Esta extensão é ativada por padrão, embora possa ser desativada compilando com --without-iconv.

A diretiva opcional --with-iconv[=DIR] é usada para especificar a localização do iconv no sistema em que o PHP está sendo compilado, caso contrário, apenas as localizações padrão são verificadas.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Iconv Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
iconv.input_encoding | "" | INI_ALL | Descontinuado no PHP 5.6.0.
iconv.output_encoding | "" | INI_ALL | Descontinuado no PHP 5.6.0.
iconv.internal_encoding | "" | INI_ALL | Descontinuado no PHP 5.6.0.

Aqui está uma breve explicação das diretivas de configuração.

Aviso

Alguns sistemas (como o IBM AIX) usam "ISO8859-1" em vez de "ISO-8859-1", então esse valor deve ser usado em opções de configuração e parâmetros de função.

iconv.input_encoding string
Aviso

Este recurso tornou-se DEFASADO a partir do PHP 5.6.0. O uso deste recurso é fortemente desencorajado.

Os usuários do PHP 5.6 e posteriores devem deixar em branco e definir input_encoding .

iconv.output_encoding string
Aviso

Este recurso tornou-se DEFASADO a partir do PHP 5.6.0. O uso deste recurso é fortemente desencorajado.

Os usuários do PHP 5.6 e posteriores devem deixar em branco e definir output_encoding

iconv.internal_encoding string
Aviso

Este recurso tornou-se DEFASADO a partir do PHP 5.6.0. O uso deste recurso é fortemente desencorajado.

Os usuários do PHP 5.6 e posteriores devem deixar em branco e definir default_charset em seu lugar.


Constantes pré-definidas

É possível identificar em tempo de execução qual implementação do iconv é adotada por esta extensão.

Constantes de implementação iconv
Nome | Tipo | Descrição
ICONV_IMPL | string | O nome da implementação
ICONV_VERSION | string | A versão de implementação

Nota:

Escrever scripts dependentes de implementação com essas constantes é fortemente desencorajado.

As seguintes constantes são também disponível:

Other iconv constants
Nome | Tipo | Descrição
ICONV_MIME_DECODE_STRICT | int | Uma máscara de bits usada para iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | int | Uma máscara de bits usada para iconv_mime_decode()


iconv Funções

Veja Também

Veja também as funções do GNU Recode.

Índice

  • iconv_get_encoding — Recuperar variáveis de configuração internas da extensão iconv
  • iconv_mime_decode_headers — Decodifica vários campos de cabeçalho MIME de uma só vez
  • iconv_mime_decode — Decodifica um campo de cabeçalho MIME
  • iconv_mime_encode — Compõe um campo de cabeçalho MIME
  • iconv_set_encoding — Define a configuração atual para conversão de codificação de caracteres
  • iconv_strlen — Retorna a contagem de caracteres da string
  • iconv_strpos — Localiza a posição da primeira ocorrência de um caractere em uma string
  • iconv_strrpos — Localiza a última ocorrência de um caractere em uma string
  • iconv_substr — Corta parte de uma string
  • iconv — Converte uma string de uma codificação de caracteres para outra
  • ob_iconv_handler — Converte codificação de caracteres como manipulador de buffer de saída


Recuperar variáveis de configuração internas da extensão iconv

  • « iconv Funções
  • iconv_mime_decode_headers »
  • PHP Manual
  • iconv Funções
  • Recuperar variáveis de configuração internas da extensão iconv

iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

iconv_get_encoding — Recuperar variáveis de configuração internas da extensão iconv

Descrição

iconv_get_encoding(string $type = "all"): array|string|false

Recuperar variáveis de configuração internas da extensão iconv

Parâmetros

type

O valor do parâmetro opcional type pode ser:

  • all
  • input_encoding
  • output_encoding
  • internal_encoding

Valor Retornado

Retorna o valor atual da variável de configuração interna se bem sucedido ou false em caso de falha.

Se type for omitido ou definido como "all", iconv_get_encoding() retorna um array que armazena todas essas variáveis.

Exemplos

Exemplo #1 Exemplo iconv_get_encoding()

<pre>
<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
var_dump(iconv_get_encoding('all'));
?>
</pre>

O exemplo acima produzirá:

Array
(
    [input_encoding] => ISO-8859-1
    [output_encoding] => ISO-8859-1
    [internal_encoding] => UTF-8
)

Veja Também

  • iconv_set_encoding() - Define a configuração atual para conversão de codificação de caracteres
  • ob_iconv_handler() - Converte codificação de caracteres como manipulador de buffer de saída


Decodifica vários campos de cabeçalho MIME de uma só vez

  • « iconv_get_encoding
  • iconv_mime_decode »
  • PHP Manual
  • iconv Funções
  • Decodifica vários campos de cabeçalho MIME de uma só vez

iconv_mime_decode_headers

(PHP 5, PHP 7, PHP 8)

iconv_mime_decode_headers — Decodifica vários campos de cabeçalho MIME de uma só vez

Descrição

iconv_mime_decode_headers(string $headers, int $mode = 0, ?string $encoding = null): array|false

Decodifica vários campos de cabeçalho MIME de uma só vez.

Parâmetros

headers

Os cabeçalhos codificados como uma string.

mode

mode determina o comportamento no caso de iconv_mime_decode_headers() encontrar um campo de cabeçalho MIME malformado. Você pode especificar qualquer combinação das seguintes máscaras de bits.

Máscaras de bits aceitáveis para iconv_mime_decode_headers()
Valor | Constante | Descrição
1 | ICONV_MIME_DECODE_STRICT | Se definido, o cabeçalho fornecido é decodificado em total conformidade com os padrões definidos em » RFC2047. Esta opção está desativada por padrão porque há muitos agentes de usuário de e-mail quebrados que não seguem a especificação e não produzem cabeçalhos MIME corretos.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | Se definido, iconv_mime_decode_headers() tenta ignorar quaisquer erros gramaticais e continuar a processar um determinado cabeçalho.

encoding

O parâmetro opcional encoding especifica o conjunto de caracteres pelo qual representar o resultado. Se omitido ou null, iconv.internal_encoding será usado.

Valor Retornado

Retorna uma matriz associativa que contém todo um conjunto de campos de cabeçalho MIME especificados por headers em caso de sucesso ou false se ocorrer um erro durante a decodificação.

Cada chave do valor de retorno representa um nome de campo individual e o elemento correspondente representa um valor de campo. Se mais de um campo com o mesmo nome estiver presente, iconv_mime_decode_headers() os incorporará automaticamente em uma matriz indexada numericamente na ordem de ocorrência. Observe que os nomes de cabeçalhos não são case-insensitive.

Registro de Alterações

Versão | Descrição
8.0.0 | encoding é anulável agora.

Exemplos

Exemplo #1 Exemplo iconv_mime_decode_headers()

<?php
$headers_string = <<<EOF
Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
To: example@example.com
Date: Thu, 1 Jan 1970 00:00:00 +0000
Message-Id: <example@example.com>
Received: from localhost (localhost [127.0.0.1]) by localhost
with SMTP id example for <example@example.com>;
Thu, 1 Jan 1970 00:00:00 +0000 (UTC)
(envelope-from example-return-0000-example=example.com@example.com)
Received: (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000

EOF;

$headers = iconv_mime_decode_headers($headers_string, 0, "ISO-8859-1");
print_r($headers);
?>

O exemplo acima produzirá:

Array
(
    [Subject] => Prüfung Prüfung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => <example@example.com>
    [Received] => Array
        (
            [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id example for <example@example.com>; Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (envelope-from example-return-0000-example=example.com@example.com)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)

Veja Também

  • iconv_mime_decode() - Decodifica um campo de cabeçalho MIME
  • mb_decode_mimeheader() - Decodifica string no campo de cabeçalho MIME
  • imap_mime_header_decode() - Decode MIME header elements
  • imap_base64() - Decode BASE64 encoded text
  • imap_qprint() - Convert a quoted-printable string to an 8 bit string


Decodifica um campo de cabeçalho MIME

  • « iconv_mime_decode_headers
  • iconv_mime_encode »
  • PHP Manual
  • iconv Funções
  • Decodifica um campo de cabeçalho MIME

iconv_mime_decode

(PHP 5, PHP 7, PHP 8)

iconv_mime_decode — Decodifica um campo de cabeçalho MIME

Descrição

iconv_mime_decode(string $string, int $mode = 0, ?string $encoding = null): string|false

Decodifica um campo de cabeçalho MIME.

Parâmetros

string

O cabeçalho codificado, como uma string.

mode

mode determina o comportamento no caso de iconv_mime_decode() encontrar um campo de cabeçalho MIME malformado. Você pode especificar qualquer combinação das seguintes máscaras de bits.

Máscaras de bits aceitáveis para iconv_mime_decode()
Valor | Constante | Descrição
1 | ICONV_MIME_DECODE_STRICT | Se definido, o cabeçalho fornecido é decodificado em total conformidade com os padrões definidos em » RFC2047. Esta opção está desativada por padrão porque há muitos agentes de usuário de e-mail quebrados que não seguem a especificação e não produzem cabeçalhos MIME corretos.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | Se definido, iconv_mime_decode_headers() tenta ignorar quaisquer erros gramaticais e continuar a processar um determinado cabeçalho.

encoding

O parâmetro opcional encoding especifica o conjunto de caracteres pelo qual representar o resultado. Se omitido ou null, iconv.internal_encoding será usado.

Valor Retornado

Retorna um campo MIME decodificado em caso de sucesso ou false se ocorrer um erro durante a decodificação.

Registro de Alterações

Versão | Descrição
8.0.0 | encoding é anulável agora.

Exemplos

Exemplo #1 Exemplo iconv_mime_decode()

<?php
// This yields "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
0, "ISO-8859-1");
?>

Veja Também

  • iconv_mime_decode_headers() - Decodifica vários campos de cabeçalho MIME de uma só vez
  • mb_decode_mimeheader() - Decodifica string no campo de cabeçalho MIME
  • imap_mime_header_decode() - Decode MIME header elements
  • imap_base64() - Decode BASE64 encoded text
  • imap_qprint() - Convert a quoted-printable string to an 8 bit string


Compõe um campo de cabeçalho MIME

  • « iconv_mime_decode
  • iconv_set_encoding »
  • PHP Manual
  • iconv Funções
  • Compõe um campo de cabeçalho MIME

iconv_mime_encode

(PHP 5, PHP 7, PHP 8)

iconv_mime_encode — Compõe um campo de cabeçalho MIME

Descrição

iconv_mime_encode(string $field_name, string $field_value, array $options = []): string|false

Compõe e retorna uma string que representa um campo de cabeçalho MIME válido, semelhante ao seguinte:

Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
No exemplo acima, "Subject" é o nome do campo e a parte que começa com "=?ISO-8859-1?..." é o valor do campo.

Parâmetros

field_name

O nome do campo.

field_value

O valor do campo.

options

Você pode controlar o comportamento de iconv_mime_encode() especificando uma matriz associativa que contém itens de configuração para as options opcionais do terceiro parâmetro. Os itens suportados por iconv_mime_encode() estão listados abaixo. Observe que os nomes dos itens são tratados com distinção entre maiúsculas e minúsculas.

Itens de configuração suportados por iconv_mime_encode()
Item | Tipo | Descrição | Valor padrão | Exemplo
scheme | string | Especifica o método para codificar um valor de campo. O valor deste item pode ser "B" ou "Q", onde "B" significa esquema de codificação base64 e "Q" significa esquema de codificação quoted-printable. | B | B
input-charset | string | Especifica o conjunto de caracteres no qual o primeiro parâmetro field_name e o segundo parâmetro field_value são apresentados. Se não for fornecido, iconv_mime_encode() assume que esses parâmetros são apresentados a ele na configuração ini iconv.internal_encoding . | iconv.internal_encoding | ISO-8859-1
output-charset | string | Especifica o conjunto de caracteres a ser usado para compor o cabeçalho MIME. | iconv.internal_encoding | UTF-8
line-length | int | Especifica o comprimento máximo das linhas de cabeçalho. O cabeçalho resultante é "dobrado" em um conjunto de múltiplas linhas caso o campo do cabeçalho resultante seja maior que o valor deste parâmetro, de acordo com » RFC2822 - Internet Message Format. Se não for fornecido, o comprimento será limitado a 76 caracteres. | 76 | 996
line-break-chars | string | Especifica a sequência de caracteres a ser anexada a cada linha como um sinal de fim de linha quando a "dobragem" é executada em um campo de cabeçalho longo. Se não fornecido, o padrão é "\r\n" (CR LF). Observe que esse parâmetro é sempre tratado como uma string ASCII, independentemente do valor de input-charset. | \r\n | \n

Valor Retornado

Retorna um campo MIME codificado em caso de sucesso ou false se ocorrer um erro durante a codificação.

Exemplos

Exemplo #1 Exemplo iconv_mime_encode()

<?php
$preferences = array(
"input-charset" => "ISO-8859-1",
"output-charset" => "UTF-8",
"line-length" => 76,
"line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// This yields "Subject: =?UTF-8?Q?Pr=C3=BCfung=20Pr=C3=BCfung?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);

$preferences["scheme"] = "B";
// This yields "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);
?>

Veja Também

  • imap_binary() - Convert an 8bit string to a base64 string
  • mb_encode_mimeheader() - Codificar string para cabeçalho MIME
  • imap_8bit() - Convert an 8bit string to a quoted-printable string
  • quoted_printable_encode() - Converte uma string de 8 bits para uma string Quoted-Printable


Define a configuração atual para conversão de codificação de caracteres

  • « iconv_mime_encode
  • iconv_strlen »
  • PHP Manual
  • iconv Funções
  • Define a configuração atual para conversão de codificação de caracteres

iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

iconv_set_encoding — Define a configuração atual para conversão de codificação de caracteres

Descrição

iconv_set_encoding(string $type, string $encoding): bool

Altera o valor da variável de configuração interna especificada por type para encoding.

Parâmetros

type

O valor de type pode ser qualquer um destes:

  • input_encoding
  • output_encoding
  • internal_encoding

encoding

O conjunto de caracteres.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo iconv_set_encoding()

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
?>

Veja Também

  • iconv_get_encoding() - Recuperar variáveis de configuração internas da extensão iconv
  • ob_iconv_handler() - Converte codificação de caracteres como manipulador de buffer de saída


Retorna a contagem de caracteres da string

  • « iconv_set_encoding
  • iconv_strpos »
  • PHP Manual
  • iconv Funções
  • Retorna a contagem de caracteres da string

iconv_strlen

(PHP 5, PHP 7, PHP 8)

iconv_strlen — Retorna a contagem de caracteres da string

Descrição

iconv_strlen(string $string, ?string $encoding = null): int|false

Ao contrário de strlen(), iconv_strlen() conta as ocorrências de caracteres na string de sequência de bytes fornecida com base no conjunto de caracteres especificado, cujo resultado não é necessariamente idêntico ao comprimento da string em bytes.

Parâmetros

string

A string.

encoding

Se o parâmetro encoding for omitido ou null, presume-se que a string esteja codificada em iconv.internal_encoding.

Valor Retornado

Retorna a contagem de caracteres da string, como um número inteiro, ou false se ocorrer um erro durante a codificação.

Registro de Alterações

Versão | Descrição
8.0.0 | encoding é anulável agora.

Veja Também

  • grapheme_strlen() - Obtém o comprimento de uma string em unidade de grafema
  • mb_strlen() - Obtém o comprimento da string
  • strlen() - Retorna o tamanho de uma string


Localiza a posição da primeira ocorrência de um caractere em uma string

  • « iconv_strlen
  • iconv_strrpos »
  • PHP Manual
  • iconv Funções
  • Localiza a posição da primeira ocorrência de um caractere em uma string

iconv_strpos

(PHP 5, PHP 7, PHP 8)

iconv_strpos — Localiza a posição da primeira ocorrência de um caractere em uma string

Descrição

iconv_strpos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

Localiza a posição da primeira ocorrência de um needle em um haystack.

Em contraste com strpos(), o valor de retorno de iconv_strpos() é o número de caracteres que aparecem antes da agulha, em vez do deslocamento em bytes para a posição onde a agulha foi encontrada. Os caracteres são contados com base no encoding do conjunto de caracteres especificado.

Parâmetros

haystack

A string inteira.

needle

A substring pesquisada.

offset

O parâmetro offset opcional especifica a posição a partir da qual a pesquisa deve ser realizada. Se o offset for negativo, ele será contado a partir do final da string.

encoding

Se o parâmetro encoding for omitido ou null, presume-se que a string esteja codificada em iconv.internal_encoding.

Se haystack ou needle não for uma string, ela será convertida em uma string e aplicada como o valor ordinal de um caractere.

Valor Retornado

Retorna a posição numérica da primeira ocorrência de needle em haystack.

Se needle não for encontrada, iconv_strpos() retornará false.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.0.0 | encoding é anulável agora.
7.1.0 | O suporte para offsets negativas foi adicionado.

Veja Também

  • strpos() - Find the position of the first occurrence of a substring in a string
  • iconv_strrpos() - Localiza a última ocorrência de um caractere em uma string
  • mb_strpos() - Encontrar a posição da primeira ocorrência de uma string em outra


Localiza a última ocorrência de um caractere em uma string

  • « iconv_strpos
  • iconv_substr »
  • PHP Manual
  • iconv Funções
  • Localiza a última ocorrência de um caractere em uma string

iconv_strrpos

(PHP 5, PHP 7, PHP 8)

iconv_strrpos — Localiza a última ocorrência de um caractere em uma string

Descrição

iconv_strrpos(string $haystack, string $needle, ?string $encoding = null): int|false

Localiza a última ocorrência de needle em haystack.

Em contraste com strrpos(), o valor de retorno de iconv_strrpos() é o número de caracteres que aparecem antes de needle, em vez do deslocamento em bytes para a posição onde needle foi encontrada. Os caracteres são contados com base no encoding do conjunto de caracteres especificado.

Parâmetros

haystack

The string inteira.

needle

A substring pesquisada.

encoding

Se o parâmetro encoding for omitido ou null, presume-se que a string esteja codificada em iconv.internal_encoding.

Se haystack ou needle não for uma string, ela será convertida em uma string e aplicada como o valor ordinal de um caractere.

Valor Retornado

Retorna a posição numérica da última ocorrência de needle em haystack.

Se needle não for encontrada, iconv_strrpos() retornará false.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.0.0 | encoding é anulável agora.

Veja Também

  • strrpos() - Find the position of the last occurrence of a substring in a string
  • iconv_strpos() - Localiza a posição da primeira ocorrência de um caractere em uma string
  • mb_strrpos() - Encontra a posição da última ocorrência de uma string em outra string


Corta parte de uma string

  • « iconv_strrpos
  • iconv »
  • PHP Manual
  • iconv Funções
  • Corta parte de uma string

iconv_substr

(PHP 5, PHP 7, PHP 8)

iconv_substr — Corta parte de uma string

Descrição

iconv_substr(
string $string,
int $offset,
?int $length = null,
?string $encoding = null
): string|false

Corta uma parte da string especificada pelos parâmetros offset e length.

Parâmetros

string

A string original.

offset

Se offset não for negativo, iconv_substr() corta a parte da string começando no offset'th caractere, contando a partir de zero.

Se offset for negativo, iconv_substr() corta a parte que começa na posição, desloca offset caracteres para longe do final da string.

length

Se length for fornecido e for positivo, o valor de retorno conterá no máximo caracteres de length da parte que começa no offset (dependendo do comprimento da string).

Se length for negativo, iconv_substr() cortará a parte da string desde o caractere offset'th até o caractere do length final da string. Caso offset também seja negativo, a posição inicial é calculada antecipadamente de acordo com a regra explicada acima.

encoding

Se o parâmetro encoding for omitido ou null, presume-se que a string esteja codificada em iconv.internal_encoding.

Observe que os parâmetros offset e length são sempre considerados como representando deslocamentos que são calculados com base no conjunto de caracteres determinado por encoding, enquanto a contraparte substr() sempre os considera deslocamentos de byte.

Valor Retornado

Retorna a parte da string especificada pelos parâmetros offset e length.

Se string for menor que os caracteres de offset, false será retornado. Se string tiver exatamente o comprimento de caracteres de offset, uma string vazia será retornada.

Registro de Alterações

Versão | Descrição
8.0.0 | length e encoding são anuláveis agora.
7.0.11 | Se string for igual ao comprimento dos caracteres de offset, uma string vazia será retornada. Antes desta versão, false era retornado neste caso.

Veja Também

  • substr() - Retorna parte de uma string
  • mb_substr() - Obtém parte da string
  • mb_strcut() - Obtém parte da string


Converte uma string de uma codificação de caracteres para outra

  • « iconv_substr
  • ob_iconv_handler »
  • PHP Manual
  • iconv Funções
  • Converte uma string de uma codificação de caracteres para outra

iconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

iconv — Converte uma string de uma codificação de caracteres para outra

Descrição

iconv(string $from_encoding, string $to_encoding, string $string): string|false

Converte string de from_encoding para to_encoding.

Parâmetros

from_encoding

A codificação atual usada para interpretar string.

to_encoding

A codificação desejada do resultado.

Se a string //TRANSLIT for anexada a to_encoding, a transliteração será ativada. Isso significa que, quando um caractere não pode ser representado no conjunto de caracteres de destino, ele pode ser aproximado por meio de um ou vários caracteres de aparência semelhante. Se a string //IGNORE for anexada, os caracteres que não podem ser representados no charset de destino são descartados silenciosamente. Caso contrário, E_NOTICE é gerado e a função retornará false.

Cuidado

Como //TRANSLIT funciona exatamente depende da implementação do iconv() do sistema (cf. ICONV_IMPL). Algumas implementações são conhecidas por ignorar //TRANSLIT, então a conversão provavelmente falhará para caracteres que são ilegais para to_encoding.

string

A string a ser convertida

Valor Retornado

Retorna a string convertida, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo iconv()

<?php
$text = "This is the Euro symbol '€'.";

echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Plain : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

Original : This is the Euro symbol '€'.
TRANSLIT : This is the Euro symbol 'EUR'.
IGNORE   : This is the Euro symbol ''.
Plain    :
Notice: iconv(): Detected an illegal character in input string in .\iconv-example.php on line 7

Notas

Nota:

As codificações de caracteres e as opções disponíveis dependem da implementação instalada do iconv. Se o argumento para from_encoding ou to_encoding não for suportado no sistema atual, false será retornado.

Veja Também

  • mb_convert_encoding() - Converte uma string de uma codificação de caracteres para outra
  • UConverter::transcode() - Converte uma string de uma codificação de caracteres para outra


Converte codificação de caracteres como manipulador de buffer de saída

  • « iconv
  • intl »
  • PHP Manual
  • iconv Funções
  • Converte codificação de caracteres como manipulador de buffer de saída

ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ob_iconv_handler — Converte codificação de caracteres como manipulador de buffer de saída

Descrição

ob_iconv_handler(string $contents, int $status): string

Converte a string codificada em internal_encoding em output_encoding.

internal_encoding e output_encoding devem ser definidos no arquivo php.ini ou em iconv_set_encoding().

Parâmetros

Consulte ob_start() para obter informações sobre os parâmetros desse manipulador.

Valor Retornado

Consulte ob_start() para obter informações sobre os valores de retorno desse manipulador.

Exemplos

Exemplo #1 Exemplo ob_iconv_handler():

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
ob_start("ob_iconv_handler"); // start output buffering
?>

Veja Também

  • iconv_get_encoding() - Recuperar variáveis de configuração internas da extensão iconv
  • iconv_set_encoding() - Define a configuração atual para conversão de codificação de caracteres
  • output-control functions


Funções de Internacionalização

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Uso básico desta extensão
  • Collator — A classe Collator
    • Collator::asort — Ordena array mantendo associação de índice
    • Collator::compare — Compara duas strings Unicode
    • Collator::__construct — Cria um agrupador (Collator)
    • Collator::create — Cria um agrupador
    • Collator::getAttribute — Obtém o valor de atributo de um agrupador
    • Collator::getErrorCode — Obtém o último código de erro do agrupador
    • Collator::getErrorMessage — Obtém o texto para o último código de erro do agrupador
    • Collator::getLocale — Obtém o nome da localidade do agrupador
    • Collator::getSortKey — Obtém a chave de ordenação de uma string
    • Collator::getStrength — Obtém a força atual de agrupamento
    • Collator::setAttribute — Define atributo do agrupador
    • Collator::setStrength — Define a força do agrupador
    • Collator::sortWithSortKeys — Ordena um array usando agrupador e chaves de ordenação especificados
    • Collator::sort — Ordena um array usando o agrupador especificado
  • NumberFormatter — A classe NumberFormatter
    • NumberFormatter::create — Cria um formatador de número
    • NumberFormatter::formatCurrency — Formata um valor de moeda
    • NumberFormatter::format — Formata um número
    • NumberFormatter::getAttribute — Obtém um atributo
    • NumberFormatter::getErrorCode — Obtém o último código de erro do formatador
    • NumberFormatter::getErrorMessage — Obtém a última mensagem de erro do formatador
    • NumberFormatter::getLocale — Obtém a localidade do formatador
    • NumberFormatter::getPattern — Obtém padrão do formatador
    • NumberFormatter::getSymbol — Obtém um valor de símbolo
    • NumberFormatter::getTextAttribute — Obtém um atributo de texto
    • NumberFormatter::parseCurrency — Interpreta um valor monetário
    • NumberFormatter::parse — Interpreta um número
    • NumberFormatter::setAttribute — Define um atributo
    • NumberFormatter::setPattern — Define o padrão do formatador
    • NumberFormatter::setSymbol — Define um valor de símbolo
    • NumberFormatter::setTextAttribute — Define um atributo de texto
  • Locale — A classe Locale
    • Locale::acceptFromHttp — Tenta descobrir a melhor localidade disponível baseado no cabeçalho HTTP "Accept-Language"
    • Locale::canonicalize — Canoniza a string de localidade
    • Locale::composeLocale — Retorna ID de localidade corretamente ordenado e delimitado
    • Locale::filterMatches — Verifica se um filtro de etiqueta de língua corresponde à localidade
    • Locale::getAllVariants — Obtém as variantes para a localidade
    • Locale::getDefault — Obtém o valor de localidade padrão da variável global de INTL 'default_locale'
    • Locale::getDisplayLanguage — Retorna um nome apropriadamente localizado para a língua da localidade
    • Locale::getDisplayName — Retorna um nome apropriadamente localizado para a localidade
    • Locale::getDisplayRegion — Retorna um nome apropriadamente localizado para a região da localidade
    • Locale::getDisplayScript — Retorna um nome apropriadamente localizado para o tipo de escrita da localidade
    • Locale::getDisplayVariant — Retorna um nome apropriadamente localizado para as variantes da localidade
    • Locale::getKeywords — Obtém as palavras-chave para a localidade
    • Locale::getPrimaryLanguage — Obtém a língua primária para a localidade
    • Locale::getRegion — Obtém a região para a localidade
    • Locale::getScript — Obtém o tipo de escrita para a localidade
    • Locale::lookup — Pesquisa a lista de etiquetas de língua pela melhor correspondência à língua
    • Locale::parseLocale — Retorna um array de chaves-valores de elementos de sub-etiquetas de ID de localidade
    • Locale::setDefault — Define a localidade padrão em tempo de execução
  • Normalizer — A classe Normalizer
    • Normalizer::getRawDecomposition — Obtém a propriedade Decomposition_Mapping para o ponto de código UTF-8 fornecido
    • Normalizer::isNormalized — Verifica se a string fornecida já está na forma normalizada na forma especificada.
    • Normalizer::normalize — Normaliza a entrada fornecida e retorna a string normalizada
  • MessageFormatter — A classe MessageFormatter
    • MessageFormatter::create — Constrói um novo formatador de mensagem
    • MessageFormatter::formatMessage — Formata uma mensagem rapidamente
    • MessageFormatter::format — Formata a mensagem
    • MessageFormatter::getErrorCode — Obtém o código de erro da última operação
    • MessageFormatter::getErrorMessage — Obtém o texto do erro da última operação
    • MessageFormatter::getLocale — Obtém a localidade para a qual o formatador foi criado
    • MessageFormatter::getPattern — Obtém o modelo usado pelo formatador
    • MessageFormatter::parseMessage — Interpreta rapidamente a string de entrada
    • MessageFormatter::parse — Interpreta a string de entrada de acordo com o modelo
    • MessageFormatter::setPattern — Define o modelo usado pelo formatador
  • IntlCalendar — A classe IntlCalendar
    • IntlCalendar::add — Adiciona uma quantidade de tempo (com sinal) a um campo
    • IntlCalendar::after — Informa se o instante de tempo deste objeto é posterior ao instante do objeto passado
    • IntlCalendar::before — Informa se o instante de tempo deste objeto é anterior ao instante do objeto passado
    • IntlCalendar::clear — Limpa um campo ou todos os campos
    • IntlCalendar::__construct — Construtor privado para não permitir instanciação
    • IntlCalendar::createInstance — Cria um novo IntlCalendar
    • IntlCalendar::equals — Compara horários de dois objetos IntlCalendar para igualidade
    • IntlCalendar::fieldDifference — Calcula a diferença entre o horário fornecido e o horário deste objeto
    • IntlCalendar::fromDateTime — Cria um IntlCalendar a partir de um objeto DateTime ou uma string
    • IntlCalendar::get — Obtém o valor de um campo
    • IntlCalendar::getActualMaximum — O valor máximo para um campo, considerando o horário atual do objeto
    • IntlCalendar::getActualMinimum — O valor mínimo para um campo, considerando o horário atual do objeto
    • IntlCalendar::getAvailableLocales — Obtém um array de localidades para as quais existem dados
    • IntlCalendar::getDayOfWeekType — Informa se o dia é dia de semana, de final de semana ou de transição entre os dois
    • IntlCalendar::getErrorCode — Obtém o último código de erro no objeto
    • IntlCalendar::getErrorMessage — Obtém a última mensagem de erro no objeto
    • IntlCalendar::getFirstDayOfWeek — Obtém o primeiro dia da semana para a localidade do calendário
    • IntlCalendar::getGreatestMinimum — Obtém o maior valor mínimo local para um campo
    • IntlCalendar::getKeywordValuesForLocale — Obtém um conjunto de valores de palavras-chaves de localidade
    • IntlCalendar::getLeastMaximum — Obtém o menor máximo local para um campo
    • IntlCalendar::getLocale — Obtém a localidade associada com o objeto
    • IntlCalendar::getMaximum — Obtém o valor máximo global para um campo
    • IntlCalendar::getMinimalDaysInFirstWeek — Obtém o número mínimo de dias que a primeira semana do ano ou do mês pode ter
    • IntlCalendar::getMinimum — Obtém o mínimo global para um campo
    • IntlCalendar::getNow — Get number representing the current time
    • IntlCalendar::getRepeatedWallTimeOption — Obtém o comportamento ao lidar com o horário de relógio repetido
    • IntlCalendar::getSkippedWallTimeOption — Obtém o comportamento para o horário de relógio saltado
    • IntlCalendar::getTime — Obtém o horário atualmente representado pelo objeto
    • IntlCalendar::getTimeZone — Obtém o fuso horário do objeto
    • IntlCalendar::getType — Obtém o tipo de calendário
    • IntlCalendar::getWeekendTransition — Obtém o horário do dia no qual o final de semana inicia ou termina
    • IntlCalendar::inDaylightTime — Whether the object's time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo — Verifica se outro calendário é igual exceto pelo horário
    • IntlCalendar::isLenient — Verifica se a interpretação de data/horário está no modo leniente
    • IntlCalendar::isSet — Verifica se um campo está definido
    • IntlCalendar::isWeekend — Verifica se uma data e um horário estão no final de semana
    • IntlCalendar::roll — Adiciona valor ao campo sem transferir para campos mais significativos
    • IntlCalendar::set — Define um campo de horário ou vários campos comuns de uma vez
    • IntlCalendar::setDate — Define campos de data
    • IntlCalendar::setDateTime — Define campos de data e horário
    • IntlCalendar::setFirstDayOfWeek — Define o dia da semana no qual a semana inicia
    • IntlCalendar::setLenient — Define se a interpretação de data/horário deve ser leniente
    • IntlCalendar::setMinimalDaysInFirstWeek — Define o número mínimo de dias que a primeira semana do ano ou do mês pode ter
    • IntlCalendar::setRepeatedWallTimeOption — Define o comportamento ao lidar com horário de relógio repetido ao sair do horário de verão
    • IntlCalendar::setSkippedWallTimeOption — Define o comportamento ao lidar com horário de relógio saltado ao entrar no horário de verão
    • IntlCalendar::setTime — Define o horário do calendário em milissegundos desde a época de referência
    • IntlCalendar::setTimeZone — Define o fuso horário usado por este calendário
    • IntlCalendar::toDateTime — Converte um objeto IntlCalendar para um DateTime
  • IntlGregorianCalendar — A classe IntlGregorianCalendar
    • IntlGregorianCalendar::__construct — Cria um objeto de calendário gregoriano
    • IntlGregorianCalendar::createFromDate — Cria uma nova instância de IntlGregorianCalendar a partir de uma data
    • IntlGregorianCalendar::createFromDateTime — Cria uma instância de IntlGregorianCalendar a partir de data e horário
    • IntlGregorianCalendar::getGregorianChange — Obtém a data de mudança do calendário gregoriano
    • IntlGregorianCalendar::isLeapYear — Determina se o ano é bissexto
    • IntlGregorianCalendar::setGregorianChange — Define a data de mudança do calendário gregoriano
  • IntlTimeZone — A classe IntlTimeZone
    • IntlTimeZone::__construct — Construtor privado para não permitir instanciação direta
    • IntlTimeZone::countEquivalentIDs — Obtém o número de IDs no grupo de equivalÇencia que inclui o ID informado
    • IntlTimeZone::createDefault — Create a new copy of the default timezone for this host
    • IntlTimeZone::createEnumeration — Obtém uma enumeração a partir de IDs de fuso horário associados com o país informado ou com o deslocamento UTC
    • IntlTimeZone::createTimeZone — Cria um objeto IntlTimeZone para o ID informado
    • IntlTimeZone::createTimeZoneIDEnumeration — Obtém uma enumeração a partir de IDs de fuso horário do sistema com as condições de filtro informadas
    • IntlTimeZone::fromDateTimeZone — Cria um objeto IntlTimeZone a partir de um DateTimeZone
    • IntlTimeZone::getCanonicalID — Obtém o ID do fuso horário de sistema canônico ou o cutomizado normalizado para o ID de fuso horário informado
    • IntlTimeZone::getDisplayName — Obtém o nome do fuso horário adequado para apresentação ao usuário
    • IntlTimeZone::getDSTSavings — Obtém a quantidade de tempo a ser adicionado ao horário local padrão para obter o horário local real de relógio
    • IntlTimeZone::getEquivalentID — Obtém um ID no grupo de equivalência que inclui o ID informado
    • IntlTimeZone::getErrorCode — Obtém o último código de erro no objeto
    • IntlTimeZone::getErrorMessage — Obtém a última mensagem de erro no objeto
    • IntlTimeZone::getGMT — Cria um fuso horário GMT (UTC)
    • IntlTimeZone::getID — Obtém o ID do fuso horário
    • IntlTimeZone::getIDForWindowsID — Traduz um fuso horário do Windows para um fuso horário de sistema
    • IntlTimeZone::getOffset — Obtém o deslocamento UTC padrão e o deslocamento com horário de verão para um determinado timestamp Unix
    • IntlTimeZone::getRawOffset — Obtém o deslocamento UTC puro (antes de considerar horário de verão)
    • IntlTimeZone::getRegion — Obtém o código da região associada com o ID de fuso horário de sistema informado
    • IntlTimeZone::getTZDataVersion — Obtém a versão de dados de fuso horário atualmente usados pela ICU
    • IntlTimeZone::getUnknown — Obtém o fuso horário "desconhecido"
    • IntlTimeZone::getWindowsID — Traduz um fuso horário de sistema em um fuso horário do Windows
    • IntlTimeZone::hasSameRules — Verifica se um fuso horário tem as mesmas regras e deslocamentos de um outro
    • IntlTimeZone::toDateTimeZone — Converte em um objeto DateTimeZone
    • IntlTimeZone::useDaylightTime — Verifica se o fuso horário usa horário de verão
  • IntlDateFormatter — A classe IntlDateFormatter
    • IntlDateFormatter::create — Cria um formatador de data
    • IntlDateFormatter::format — Formata data/horário como uma string
    • IntlDateFormatter::formatObject — Formata um objeto
    • IntlDateFormatter::getCalendar — Obtém o tipo de calendário usado para o IntlDateFormatter
    • IntlDateFormatter::getDateType — Obtém o tipo de data usado para o IntlDateFormatter
    • IntlDateFormatter::getErrorCode — Obtém o código de erro da última operação
    • IntlDateFormatter::getErrorMessage — Obtém a mensagem de erro da última operação
    • IntlDateFormatter::getLocale — Obtém a localidade usada pelo formatador
    • IntlDateFormatter::getPattern — Obtém o modelo usado para o IntlDateFormatter
    • IntlDateFormatter::getTimeType — Obtém o tipo de horário usado para o IntlDateFormatter
    • IntlDateFormatter::getTimeZoneId — Obtém o identificador de fuso horário usado para o IntlDateFormatter
    • IntlDateFormatter::getCalendarObject — Obtém uma cópia do objeto de calendário do formatador
    • IntlDateFormatter::getTimeZone — Obtem o fuso horário do formatador
    • IntlDateFormatter::isLenient — Obtém a leniência usada para o IntlDateFormatter
    • IntlDateFormatter::localtime — Interpreta uma string para um valor de horário baseado em campos
    • IntlDateFormatter::parse — Interpreta uma string para uma valor de timestamp
    • IntlDateFormatter::setCalendar — Define o tipo de calendário usado pelo formatador
    • IntlDateFormatter::setLenient — Define a leniência do interpretador
    • IntlDateFormatter::setPattern — Define o modelo usado para o IntlDateFormatter
    • IntlDateFormatter::setTimeZone — Define o fuso horário do formatador
  • ResourceBundle — A classe ResourceBundle
    • ResourceBundle::count — Obtém o número de elementos no pacote
    • ResourceBundle::create — Cria um pacote de recursos
    • ResourceBundle::getErrorCode — Obtém o código do último erro gerado pelo pacote.
    • ResourceBundle::getErrorMessage — Obtém a última mensagem de erro gerada pelo pacote
    • ResourceBundle::get — Obtém os dados do pacote
    • ResourceBundle::getLocales — Obtém as localidades suportadas
  • Spoofchecker — A classe Spoofchecker
    • Spoofchecker::areConfusable — Verifica se as strings fornecidas podem ser confundidas
    • Spoofchecker::__construct — Construtor
    • Spoofchecker::isSuspicious — Verifica se um texto fornecido contém algum caractere suspeito
    • Spoofchecker::setAllowedLocales — Localidades a usar nas verificações executadas
    • Spoofchecker::setChecks — Define as verificações que serão executadas
    • Spoofchecker::setRestrictionLevel — Define o nível de restrição
  • Transliterator — A classe Transliterator
    • Transliterator::__construct — Construtor privado para proibir instanciação
    • Transliterator::create — Cria um transliterador
    • Transliterator::createFromRules — Cria um transliterador a partir de regras
    • Transliterator::createInverse — Cria um transliterador inverso
    • Transliterator::getErrorCode — Obtém o último código de erro
    • Transliterator::getErrorMessage — Obtém a última mensagem de erro
    • Transliterator::listIDs — Obtém IDs de transliteradores
    • Transliterator::transliterate — Translitera uma string
  • IntlBreakIterator — A classe IntlBreakIterator
    • IntlBreakIterator::__construct — Construtor privado para não permitir instanciação
    • IntlBreakIterator::createCharacterInstance — Cria um iterador de quebra para limites de sequências de combinação de caracteres
    • IntlBreakIterator::createCodePointInstance — Cria um iterador de quebra para limites de pontos de código
    • IntlBreakIterator::createLineInstance — Cria um iterador de quebra para quebras de linha logicamente possíveis
    • IntlBreakIterator::createSentenceInstance — Cria um iterador de quebra para separação de sentenças
    • IntlBreakIterator::createTitleInstance — Cria um iterador para quebras de letras de título
    • IntlBreakIterator::createWordInstance — Cria um iterador de quebra para separação de palavras
    • IntlBreakIterator::current — Obtém o índice da posição atual
    • IntlBreakIterator::first — Define a posição para o primeiro caractere no texto
    • IntlBreakIterator::following — Avança o iterador para o primeiro limite após o deslocamento especificado
    • IntlBreakIterator::getErrorCode — Obtém o último código de erro no objeto
    • IntlBreakIterator::getErrorMessage — Obtém a última mensagem de erro no objeto
    • IntlBreakIterator::getLocale — Obtém a localidade associada com o objeto
    • IntlBreakIterator::getPartsIterator — Cria um iterador para navegar por fragmentos entre limites
    • IntlBreakIterator::getText — Obtém o texto sendo percorrido
    • IntlBreakIterator::isBoundary — Indica se uma posição é um posição de limite
    • IntlBreakIterator::last — Define a posição do iterador para um índice além do último caractere
    • IntlBreakIterator::next — Avança o iterador para o próximo limite
    • IntlBreakIterator::preceding — Define a posição do iterador para o primeiro limite depois de um deslocamento
    • IntlBreakIterator::previous — Define a posição do iterador para o limite imediatamente anterior ao atual
    • IntlBreakIterator::setText — Define o texto a ser percorrido
  • IntlRuleBasedBreakIterator — A classe IntlRuleBasedBreakIterator
    • IntlRuleBasedBreakIterator::__construct — Creia um iderador a partir de um conjunto de regras
    • IntlRuleBasedBreakIterator::getBinaryRules — Obtém a forma binária de regras compiladas
    • IntlRuleBasedBreakIterator::getRules — Obtém o conjunto de regras usado para criar este objeto
    • IntlRuleBasedBreakIterator::getRuleStatus — Obtém o maior valor de status a partir de regras de quebras que determinaram a posição de quebra atual
    • IntlRuleBasedBreakIterator::getRuleStatusVec — Obtém os valores de status das regras de quebra que determinaram a posição de quebra atual
  • IntlCodePointBreakIterator — A classe IntlCodePointBreakIterator
    • IntlCodePointBreakIterator::getLastCodePoint — Obtém o último code point passado após avançar ou retroceder o iterador
  • IntlDatePatternGenerator — A classe IntlDatePatternGenerator
    • IntlDatePatternGenerator::create — Cria uma nova instância de IntlDatePatternGenerator
    • IntlDatePatternGenerator::getBestPattern — Determina o formato de data/horário mais adequado
  • IntlPartsIterator — A classe IntlPartsIterator
    • IntlPartsIterator::getBreakIterator — Obtém o IntlBreakIterator que é utilizado pelo iterador
  • UConverter — A classe UConverter
    • UConverter::__construct — Cria um objeto UConverter
    • UConverter::convert — Converte uma string de um conjunto de caracteres (charset) para outro
    • UConverter::fromUCallback — Função de retorno de origem padrão
    • UConverter::getAliases — Obtém o pseudônimo de um nome
    • UConverter::getAvailable — Obtém os nomes canônicos dos conversores disponíveis
    • UConverter::getDestinationEncoding — Obtém a codificação de destino
    • UConverter::getDestinationType — Obtém o tipo do conversor de destino
    • UConverter::getErrorCode — Obtém o código do último erro gerado pelo objeto
    • UConverter::getErrorMessage — Obtém a mensagem do último erro gerado pelo objeto
    • UConverter::getSourceEncoding — Obtém a codificação de origem
    • UConverter::getSourceType — Obtém o tipo do conversor de origem
    • UConverter::getStandards — Obtém os nomes dos conversores padrão associados
    • UConverter::getSubstChars — Obtém os caracteres de substituição
    • UConverter::reasonText — Obtém uma representação em string da razão da chamada de retorno
    • UConverter::setDestinationEncoding — Define a codificação de destino
    • UConverter::setSourceEncoding — Define a codificação da origem
    • UConverter::setSubstChars — Define os caracteres de substituição
    • UConverter::toUCallback — Função de retorno padrão de destino
    • UConverter::transcode — Converte uma string de uma codificação de caracteres para outra
  • Funções de Grapheme
    • grapheme_extract — Extrai uma sequência de grupos padrão de grafemas de um buffer de texto em UTF-8
    • grapheme_stripos — Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas
    • grapheme_stristr — Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final
    • grapheme_strlen — Obtém o comprimento de uma string em unidade de grafema
    • grapheme_strpos — Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string
    • grapheme_strripos — Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)
    • grapheme_strrpos — Encontra a posição (em unidades de grafema) da última ocorrência de uma string
    • grapheme_strstr — Retorna parte de uma string a partir da primeira ocorrência de outra string até o final
    • grapheme_substr — Retorna parte de uma string
  • Funções de IDN
    • idn_to_ascii — Converte nome de domínio para a forma ASCII IDNA
    • idn_to_utf8 — Converte nome de domínio de ASCII IDNA para Unicode
  • IntlChar
    • IntlChar::charAge — Obtém a "idade" do ponto de código
    • IntlChar::charDigitValue — Obtém o valor do dígito decimal de um caractere de dígito decimal
    • IntlChar::charDirection — Obtém o valor de categoria bidirecional para um ponto de código
    • IntlChar::charFromName — Encontra um caractere Unicode pelo nome e retorna seu valor de ponto de código
    • IntlChar::charMirror — Obtém o caractere "espelho" para um ponto de código
    • IntlChar::charName — Obtém o nome de um caractere Unicode
    • IntlChar::charType — Obtém o valor da categoria geral para um ponto de código
    • IntlChar::chr — Retorna um caractere Unicode por valor de ponto de código
    • IntlChar::digit — Obtém o valor de dígito decimal de um ponto de código para uma base fornecida
    • IntlChar::enumCharNames — Enumera todos os caracteres Unicode atribuídos dentro de um intervalo
    • IntlChar::enumCharTypes — Enumera todos os pontos de código com suas categorias gerais Unicode
    • IntlChar::foldCase — Converte maiúscula/minúscula em um ponto de código
    • IntlChar::forDigit — Obtém a representação em caractere para um dígito e uma base fornecidos
    • IntlChar::getBidiPairedBracket — Obtém o caractere par de abertura/fechamento para um ponto de código
    • IntlChar::getBlockCode — Obtém o bloco de alocação Unicode contendo um ponto de código
    • IntlChar::getCombiningClass — Obtém a classe de combinação de um ponto de código
    • IntlChar::getFC_NFKC_Closure — Obtém a propriedade FC_NFKC_Closure para um ponto de código
    • IntlChar::getIntPropertyMaxValue — Obtém o valor máximo para uma propriedade Unicode
    • IntlChar::getIntPropertyMinValue — Obtém o valor mínimo para uma propriedade Unicode
    • IntlChar::getIntPropertyValue — Obtém o valor de uma propriedade Unicode de um ponto de código
    • IntlChar::getNumericValue — Obtém o valor numérico para um ponto de código Unicode
    • IntlChar::getPropertyEnum — Obtém o valor da contante da propriedade para uma propriedade informada
    • IntlChar::getPropertyName — Obtém o nome Unicode de uma propriedade
    • IntlChar::getPropertyValueEnum — Obtém o valor da propriedade para um nome de valor fornecido
    • IntlChar::getPropertyValueName — Obtém o nome Unicode para um valor de propriedade
    • IntlChar::getUnicodeVersion — Obtém a versão do Unicode
    • IntlChar::hasBinaryProperty — Verifica uma propriedade binária Unicode para um ponto de código
    • IntlChar::isalnum — Verifica se um ponto de código é um caractere alfanumérico
    • IntlChar::isalpha — Verifica se um ponto de código é uma letra
    • IntlChar::isbase — Verifica se um ponto de código é um caractere base
    • IntlChar::isblank — Verifica se um ponto de código é um caractere "vazio" ou um "espaço horizontal"
    • IntlChar::iscntrl — Verifica se um ponto de código é um caractere de controle
    • IntlChar::isdefined — Verifica se o ponto de código está definido
    • IntlChar::isdigit — Verifica se um ponto de código é um caractere de dígito
    • IntlChar::isgraph — Verifica se um ponto de código é um caractere gráfico
    • IntlChar::isIDIgnorable — Verifica se um ponto de código é um caractere ignorável
    • IntlChar::isIDPart — Verifica se um ponto de código é permissível em um identificador
    • IntlChar::isIDStart — Verifica se um ponto de código é permissível como o primeiro caractere em um identificador
    • IntlChar::isISOControl — Verifica se o ponto de código é um código de controle ISO
    • IntlChar::isJavaIDPart — Verifica se um ponto de código é permissível em um identificador Java
    • IntlChar::isJavaIDStart — Veririca se um ponto de código é permissível como o primeiro caractere em um identificador Java
    • IntlChar::isJavaSpaceChar — Veririca se um ponto de código é um caractere de espaçamento de acordo com o Java
    • IntlChar::islower — Verifica se um ponto de código é uma letra minúscula
    • IntlChar::isMirrored — Verifica se um ponto de código tem a propriedade Bidi_Mirrored
    • IntlChar::isprint — Verifica se um ponto de código é um caractere imprimível
    • IntlChar::ispunct — Verifica se um ponto de código é um caractere de pontuação
    • IntlChar::isspace — Verifica se um ponto de código é um caractere de espaçamento
    • IntlChar::istitle — Verifica se um ponto de código é uma letra com grafia mista
    • IntlChar::isUAlphabetic — Verifica se um ponto de código tem a propriedade Alphabetic do Unicode
    • IntlChar::isULowercase — Verifica se um ponto de código tem a propriedade Lowercase do Unicode
    • IntlChar::isupper — Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)
    • IntlChar::isUUppercase — Veririca se um ponto de código tem a propriedade Uppercase do Unicode
    • IntlChar::isUWhiteSpace — Verifica se um ponto de código tem a propriedade White_Space do Unicode
    • IntlChar::isWhitespace — Verifica se um ponto de código é um caractere de espaço em branco de acordo com a ICU
    • IntlChar::isxdigit — Verifica se um ponto de código é um dígito hexadecimal
    • IntlChar::ord — Retorna o valor do ponto de código Unicode do caractere
    • IntlChar::tolower — Transforma o caractere Unicode em minúscula
    • IntlChar::totitle — Transforma o caractere Unicode em letra de título
    • IntlChar::toupper — Transforma um caractere Unicode em maiúscula
  • IntlException — Classe de exceção para erros da extensão Intl
  • IntlIterator — A classe IntlIterator
    • IntlIterator::current — Retorna o elemento atual
    • IntlIterator::key — Retorna a chave do elemento atual
    • IntlIterator::next — Avança para o próximo elemento
    • IntlIterator::rewind — Rebobina o iterador para o primeiro elemento
    • IntlIterator::valid — Verifica se a posição atual é válida
  • Funções de Intl
    • intl_error_name — Obtém nome simbólico para um código de erro informado
    • intl_get_error_code — Obtém o último código de erro
    • intl_get_error_message — Obtém a descrição do último erro
    • intl_is_failure — Verifica se o código de erro fornecido indica falha


Introdução

A extensão de Internacionalização (referenciada a partir daqui como Intl) é um empacotador para a biblioteca » ICU, e permite que programadores de PHP realizem várias operações dependentes de localidade, incluindo mas não limitadas a formatação, transliteração, conversão de codificação, operações de calendário, colação em conformidade com » UCA, localização de limites de texto e tarefas com identificadores de localidade, de fusos horários e de grafemas.

A extensão tende a seguir de perto as APIs da ICU, para que as pessoas com experiência em ICU com C/C++ ou Java possam facilmente usar a API do PHP. Além disso, dessa forma a documentação da ICU torna-se útil para se compreender várias funções da ICU.

Intl consiste de vários módulos, cada um expondo a correspondente API da ICU:

  • Agrupador: fornece capacidade de comparação de strings com suporte ao ordenamento adequado, dependente da localidade.
  • Formatador de Números: permite apresentar um número de acordo com o formato da localidade ou com um padrão ou conjunto de regras fornecido, e interpretar strings como números.
  • Formatador de Mensagem: permite criar mensagens incorporando dados (como números ou datas) formatados de acordo com um padrão fornecido e com regras de localidade, e analisar mensagens extraindo dados delas. Pode lidar com plurais, números dependentes de localidade, moedas, condições e muito mais.
  • Normalizador: fornece uma função para transformar texto em uma das formas de normalização Unicode, e fornece uma rotina para testar se uma string fornecida já está normalizada.
  • Localidade: fornece interação com identificadores de localidade na forma de funções para obter sub-etiquetas a partir deles; analisar, compor e comparar (pesquisa e filtro) identificadores de localidade.
  • Calendário: fornece uma classe que pode ser usada para operações de calendário dependentes de localidade e obtenção de várias informações como fuso horário para a localidade escolhida, primeiro dia da semana ou horário de verão.
  • Fuso Horário: fornece um empacotador sobre o » banco de dados "Olson" que tem informação sobre todos os fusos horário ao redor do mundo.
  • Formatador de Data: permite apresetar data e horário de acordo com o formato da localidade, ou um padrão ou um conjunto de regras fornecido, e converter strings como data e hora.
  • Transliterador: permite obter representação latina de strings em várias línguas.

Links

  • » Documentos ICU miscelâneos

  • » Guia do Usuário ICU

  • » Algoritmo de Agrupamento Unicode


Dependências

Para construir a extensão é necessário instalar a biblioteca » ICU. Versão 4.0.0 ou posterior é requerida. A partir do PHP 7.4.0, ICU 50.1 ou posterior é requerida.


Instalação

--enable-intl habilitará a extensão ao compilar o PHP.

Se a ICU estiver instalada em um diretório fora do padrão, sua localização pode ser especificada na variável de ambiente LD_LIBRARY_PATH para que o vinculador dinâmico possa encontrá-lo:

$ export LD_LIBRARY_PATH=/opt/icu/lib

Caso o PHP e a ICU estejam instalados em suas localizações padrão, as opções adicionais para o comando configure não são necessárias.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração de Intl
Nome | Padrão | Modificável | Registro de Alterações
intl.default_locale |  | INI_ALL |
intl.error_level | 0 | INI_ALL |
intl.use_exceptions | 0 | INI_ALL | Disponível desde o PECL 3.0.0a1

Aqui está uma breve explicação das diretivas de configuração.

intl.default_locale string

A localidade que será utilizada quando nenhuma for especificada (omitindo o argumento correspondente ou passando-se NULL). Estas são localidades ICU, não localidades de sistema. As localidades ICU embutidas e seus dados podem ser explorados em » https://icu4c-demos.unicode.org/icu-bin/locexp.

O valor padrão é vazio, o que força o uso da localidade ICU padrão. Uma vez definida, a configuração ini não pode ser redefinida para este valor padrão. Não é recomendado confiar neste padrão, pois seu valor efetivo depende do ambiente do servidor.

intl.error_level int

O tipo de mensagens de erro geradas quando um erro ocorre em funções ICU. Isto é um nível de erro PHP, como E_WARNING por exemplo. Pode ser definida para 0 para inibir as mensagens. Não afeta os valores de retorno que indicam erro ou os valores retornados por intl_get_error_code() ou pelos métodos específicos da classe para recuperar códigos e mensagens de erro.

O valor padrão é 0.

intl.use_exceptions int

Se definido para true, uma exceção será lançada quando um erro ocorrer em uma função intl. A exceção será do tipo IntlException. É possível fazer isto em adição à mensagem de erro gerada devido à configuração intl.error_level.

O valor padrão é false.


Constantes pré-definidas

INTL_ICU_VERSION (string)
A versão da biblioteca ICU atual como uma string decimal com pontos.
INTL_MAX_LOCALE_LEN (int)
Limite de comprimento do nome da localidade, definido para 80 no código PHP. Nomes mais longos que este limite não serão aceitos.
IDNA_DEFAULT (int)
Proíbe o processamento de pontos de código não atribuídos na entrada para funções IDN e não verifica se a entrada está conforme as regras ASCII de nome de domínio.
IDNA_ALLOW_UNASSIGNED (int)
Permite o processamento de pontos de código não atribuídos na entrada para funções IDN.
IDNA_USE_STD3_RULES (int)
Verifica se a entrada para funções IDN está conforme as regras ASCII de nome de domínio.
IDNA_CHECK_BIDI (int)
Verifica se a entrada está conforme as regras BiDi. Ignorada pela implementação IDNA2003, que sempre faz esta verificação.
IDNA_CHECK_CONTEXTJ (int)
Verifica se a entrada está conforme as regras CONTEXTJ. Ignorada pela implementação IDNA2003, pois é uma verificação nova na IDNA2008.
IDNA_NONTRANSITIONAL_TO_ASCII (int)
Opção para processamento não transicional na função idn_to_ascii(). Processamento transicional é ativado por padrão. Esta opção é ignorada pela implementação IDNA2003.
IDNA_NONTRANSITIONAL_TO_UNICODE (int)
Opção para processamento não transicional na função idn_to_utf8(). Processamento transicional é ativado por padrão. Esta opção é ignorada pela implementação IDNA2003.
INTL_IDNA_VARIANT_2003 (int)
Usa o algoritmo IDNA 2003 nas funções idn_to_utf8() e idn_to_ascii(). Este é o padrão. Esta constante e o uso do padrão tornaram-se defasados a partir do PHP 7.2.0.
INTL_IDNA_VARIANT_UTS46 (int)
Usa o algoritmo UTS #46 nas funções idn_to_utf8() e idn_to_ascii(). Disponível a partir da ICU 4.6.

Os erros a seguir são parte de uma máscara de bits retornada pelo algoritmo UTS #46 nas funções idn_to_utf8() e idn_to_ascii().

IDNA_ERROR_EMPTY_LABEL (int)
IDNA_ERROR_LABEL_TOO_LONG (int)
IDNA_ERROR_DOMAIN_NAME_TOO_LONG (int)
IDNA_ERROR_LEADING_HYPHEN (int)
IDNA_ERROR_TRAILING_HYPHEN (int)
IDNA_ERROR_HYPHEN_3_4 (int)
IDNA_ERROR_LEADING_COMBINING_MARK (int)
IDNA_ERROR_DISALLOWED (int)
IDNA_ERROR_PUNYCODE (int)
IDNA_ERROR_LABEL_HAS_DOT (int)
IDNA_ERROR_INVALID_ACE_LABEL (int)
IDNA_ERROR_BIDI (int)
IDNA_ERROR_CONTEXTJ (int)


  • « Constantes pré-definidas
  • Uso básico desta extensão »
  • PHP Manual
  • intl
  • Exemplos

Exemplos

Índice

  • Uso básico desta extensão


Uso básico desta extensão

Cada módulo fornece dois tipos de API: um procedural e um orientado a objeto. Ambos são na realidade idênticos e descritos no documento correspondente.

Nota:

Todos as strings de entrada devem estar na codificação UTF-8. Todas as strings de saída também estarão em UTF-8.

Exemplo #1 Exemplo de uso da API procedural

<?php
$coll = collator_create('pt_BR');
$result = collator_compare($coll, "string#1", "string#2");
?>

Exemplo #2 Exemplo de uso da API procedural orientada a objeto

<?php
$coll = new Collator('pt_BR');
$al = $coll->getLocale(Locale::ACTUAL_LOCALE);
echo "Localidade atual: $al\n";

$formatter = new NumberFormatter('pt_BR', NumberFormatter::DECIMAL);
echo $formatter->format(1234567);
?>


A classe Collator

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Introdução

Fornece capacidade de comparação de strings com suporte ao ordenamento apropriado de acordo com a localidade.

Resumo da classe

class Collator {
/* Constantes */
const int DEFAULT_VALUE;
const int PRIMARY;
const int SECONDARY;
const int TERTIARY;
const int DEFAULT_STRENGTH;
const int QUATERNARY;
const int IDENTICAL;
const int OFF;
const int ON;
const int SHIFTED;
const int NON_IGNORABLE;
const int LOWER_FIRST;
const int UPPER_FIRST;
const int FRENCH_COLLATION;
const int ALTERNATE_HANDLING;
const int CASE_FIRST;
const int CASE_LEVEL;
const int NORMALIZATION_MODE;
const int STRENGTH;
const int HIRAGANA_QUATERNARY_MODE;
const int NUMERIC_COLLATION;
const int SORT_REGULAR;
const int SORT_STRING;
const int SORT_NUMERIC;
/* Métodos */
public __construct(string $locale)
public asort(array &$array, int $flags = Collator::SORT_REGULAR): bool
public compare(string $string1, string $string2): int|false
public static create(string $locale): ?Collator
public getAttribute(int $attribute): int|false
public getErrorCode(): int|false
public getErrorMessage(): string|false
public getLocale(int $type): string|false
public getSortKey(string $string): string|false
public getStrength(): int
public setAttribute(int $attribute, int $value): bool
public setStrength(int $strength): bool
public sortWithSortKeys(array &$array): bool
public sort(array &$array, int $flags = Collator::SORT_REGULAR): bool
}

Constantes pré-definidas

Collator::FRENCH_COLLATION

Ordena strings com diferentes acentuações a partir do final da string. Este atributo é automaticamente definido para ON (ligado) para as localidades francesas e algumas outras. Usuários normalmente não precisam definir explicitamente este atributo. Há um custo de desempenho de comparação de strings quando definida para ON, mas o comprimento da chave de ordenação não é afetado. Os valores possíveis são:

  • Collator::ON
  • Collator::OFF(padrão)
  • Collator::DEFAULT_VALUE

Exemplo #1 Regras da FRENCH_COLLATION

  • F=OFF cote < coté < côte < côté
  • F=ON cote < côte < coté < côté

Collator::ALTERNATE_HANDLING

O atributo alternativo é usado para controlar o gerenciamento dos chamados caracteres variáveis na UCA: espaços em branco, pontuações e símbolos. Se ALTERNATE_HANDLING (A) for definido para NON_IGNORABLE (N), as diferenças entre estes caracteres são da mesma importância que as diferenças entre letras. Se ALTERNATE_HANDLING for definida para SHIFTED (S), estes caracteres são somente de importância menor. O valor SHIFTED é frequentemente usado em combinação com STRENGTH definida para set to QUATERNARY. Neste caso, espaços em branco, pontuações e símbolos são considerados ao comparar strings, mas somente se todos os outros aspectos das strings (letras base, acentos e forma) forem idênticos. Se ALTERNATE_HANDLING não for definida para SHIFTED, não haverá diferença entre uma STRENGTH de 3 e uma STRENGTH de 4. Para mais informações e exemplos, consulte "Variable_Weighting" na » UCA. A razão pela qual os valores para ALTERNATE_HANDLING não são simplesmente ON (ligado) e OFF (desligado) é que valores adicionais podem ser necessários no futuro. A opção BLANKED da UCA é expressa com STRENGTH de 3, e ALTERNATE_HANDLING definida para SHIFTED. O padrão para a maioria das localidades é NON_IGNORABLE. Se SHIFTED for selecionado, pode ser mais lento se houver muitas strings que são as mesmas exceto pela pontuação; o comprimento da chave de ordenação não será afetado a menos que o nível de STRENGHT seja também aumentado.

Os valores possíveis são:

  • Collator::NON_IGNORABLE(padrão)
  • Collator::SHIFTED
  • Collator::DEFAULT_VALUE

Exemplo #2 Regras de ALTERNATE_HANDLING

  • S=3, A=N di Silva < Di Silva < diSilva < U.S.A. < USA
  • S=3, A=S di Silva = diSilva < Di Silva < U.S.A. = USA
  • S=4, A=S di Silva < diSilva < Di Silva < U.S.A. < USA

Collator::CASE_FIRST

O atributo CASE_FIRST é usado para controlar se letras maiúsculas vêm antes de letras minúsculas ou vice-versa, na ausência de outras diferenças nas strings. Os valores possíveis são UPPER_FIRST (maiúsculas primeiro - U) e LOWER_FIRST (minúsculas primeiro - L), mais o DEFAULT (padrão) e OFF (desligado - X). Quase não há diferença entre as opções OFF e LOWER_FIRST em termos de resultados, portanto tipicamente os usuários não usarão LOWER_FIRST: apenas OFF ou UPPER_FIRST. (Os interessados nas diferenças detalhadas entre X e L devem consultar a Collation Customization - Customização de Agrupamento). Especificar L ou U não afetará o desempenho de comparação de strings, mas afetará o comprimento da chave de ordenação.

Os valores possíveis são:

  • Collator::OFF(padrão)
  • Collator::LOWER_FIRST
  • Collator::UPPER_FIRST
  • Collator:DEFAULT

Exemplo #3 Regras de CASE_FIRST

  • C=X or C=L "china" < "China" < "denmark" < "Denmark"
  • C=U "China" < "china" < "Denmark" < "denmark"

Collator::CASE_LEVEL

O atributo CASE_LEVEL é usado quando os acentos são ignorados mas as maiúsculas/minúsculas não são. Nesta situação, deve-se definir STRENGTH para PRIMARY, e CASE_LEVEL para ON. Na maioria das localidades, esta configuração é OFF por padrão. Existe um pequeno impacto no desempenho de comparação de strings e na chave de ordenação se este atributo for definido para ON.

Os valores possíveis são:

  • Collator::OFF(padrão)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Exemplo #4 Regras de CASE_LEVEL

  • S=1, E=X role = Role = rôle
  • S=1, E=O role = rôle < Role

Collator::NORMALIZATION_MODE

A configuração NORMALIZATION_MODE determina se o texto está completamente normalizado ou não na comparação. Mesmo se a configuração esteja em OFF (que é o padrão para muitas localidades), texto como representado em uso comum irá comparar corretamente (para detalhes, consulte UTN #5). Somente se as marcas de acentos estiverem em ordem não canônica haverá problema. Se a configuração estiver em ON, os melhores resultados são garantidos para todas as entradas de texto possíveis. Existe um custo médio de desempenho na comparação de strings se este atributo estiver em ON, dependendo da frequência de sequências que requerem normalização. Não há efeito significativo no comprimento da chave de ordenação. Se for sabido que o texto de entrada está nas formas de normalização NFD ou NFKD, não há necessidade de habilitar esta opção de normalização.

Os valores possíveis são:

  • Collator::OFF(padrão)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::STRENGTH

O Serviço de Agrupamento ICU suporta vários níveis de comparação, chamados também de "Strengths" (forças). Ter estas categorias possibilita à ICU ordenar as strings de forma precisa conforme as convenções locais. Entretanto, ao permitir que os níveis sejam seletivamente empregados, a pesquisa por uma string no texto pode ser realizada com várias condições de correspondência. Para informações mais detalhadas, consulte o capítulo collator_set_strength().

Os valores possíveis são:

  • Collator::PRIMARY
  • Collator::SECONDARY
  • Collator::TERTIARY(padrão)
  • Collator::QUATERNARY
  • Collator::IDENTICAL
  • Collator::DEFAULT_VALUE

Collator::HIRAGANA_QUATERNARY_MODE

Compatibilidade com JIS x 4061 requer a introdução de um nível adicional para distinguir caracteres Hiragana e Katakana. Se for requerida compatibilidade com o esse padrão, este atributo deve ser definido para ON, e a STRENGTH deve ser definida para QUATERNARY. Isto afetará o comprimento da chave de ordenação e desempenho de comparação de strings.

Os valores possíveis são:

  • Collator::OFF(padrão)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::NUMERIC_COLLATION

Quando definido para ON, este atributo gera uma chave de agrupamento para o valor numérico de substrings de dígitos. Esta é uma maneira de obter '100' ordenado DEPOIS de '2'.

Os valores possíveis são:

  • Collator::OFF(padrão)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::DEFAULT_VALUE
Collator::PRIMARY
Collator::SECONDARY
Collator::TERTIARY
Collator::DEFAULT_STRENGTH
Collator::QUATERNARY
Collator::IDENTICAL
Collator::OFF
Collator::ON
Collator::SHIFTED
Collator::NON_IGNORABLE
Collator::LOWER_FIRST
Collator::UPPER_FIRST
Collator::SORT_REGULAR

Collator::SORT_STRING

Collator::SORT_NUMERIC

Índice

  • Collator::asort — Ordena array mantendo associação de índice
  • Collator::compare — Compara duas strings Unicode
  • Collator::__construct — Cria um agrupador (Collator)
  • Collator::create — Cria um agrupador
  • Collator::getAttribute — Obtém o valor de atributo de um agrupador
  • Collator::getErrorCode — Obtém o último código de erro do agrupador
  • Collator::getErrorMessage — Obtém o texto para o último código de erro do agrupador
  • Collator::getLocale — Obtém o nome da localidade do agrupador
  • Collator::getSortKey — Obtém a chave de ordenação de uma string
  • Collator::getStrength — Obtém a força atual de agrupamento
  • Collator::setAttribute — Define atributo do agrupador
  • Collator::setStrength — Define a força do agrupador
  • Collator::sortWithSortKeys — Ordena um array usando agrupador e chaves de ordenação especificados
  • Collator::sort — Ordena um array usando o agrupador especificado


Ordena array mantendo associação de índice

  • « Collator
  • Collator::compare »
  • PHP Manual
  • Collator
  • Ordena array mantendo associação de índice

Collator::asort

collator_asort

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::asort -- collator_asort — Ordena array mantendo associação de índice

Descrição

Estilo orientado a objetos

public Collator::asort(array &$array, int $flags = Collator::SORT_REGULAR): bool

Estilo procedural

collator_asort(Collator $object, array &$array, int $flags = Collator::SORT_REGULAR): bool

Esta função ordena um array de forma que seus índices mantenham as correlações com os elementos aos quais estão associados. Isto é usado principalmente ao ordenar arrays associativos onde a ordem real dos elementos é significativa. Elementos dos arrays terão a ordenação conforme as regras atuais da localidade.

Equivalente à função padrão do PHP asort().

Parâmetros

object

Objeto Collator.

array

Array de strings a ordenar.

flags

Tipo de ordenação opcional, um dos seguintes:

  • Collator::SORT_REGULAR - compara os itens normalmente (não altera os tipos)

  • Collator::SORT_NUMERIC - compara os itens numericamente

  • Collator::SORT_STRING - compara os itens como strings

O valor padrão de flags é Collator::SORT_REGULAR. Também é usado se um valor inválido de flags tiver sido especificado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de collator_asort()

<?php
$coll = collator_create( 'en_US' );
$arr = array(
'a' => '100',
'b' => '50',
'c' => '7'
);
collator_asort( $coll, $arr, Collator::SORT_NUMERIC );
var_export( $arr );

collator_asort( $coll, $arr, Collator::SORT_STRING );
var_export( $arr );
?>

O exemplo acima produzirá:

array (
  'c' => '7',
  'b' => '50',
  'a' => '100',
)array (
  'a' => '100',
  'b' => '50',
  'c' => '7',
)

Veja Também

  • Constantes de Collator
  • collator_sort() - Ordena um array usando o agrupador especificado
  • collator_sort_with_sort_keys() - Ordena um array usando agrupador e chaves de ordenação especificados


Compara duas strings Unicode

  • « Collator::asort
  • Collator::__construct »
  • PHP Manual
  • Collator
  • Compara duas strings Unicode

Collator::compare

collator_compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::compare -- collator_compare — Compara duas strings Unicode

Descrição

Estilo orientado a objetos

public Collator::compare(string $string1, string $string2): int|false

Estilo procedural

collator_compare(Collator $object, string $string1, string $string2): int|false

Compara duas strings Unicode de acordo com as regras de agrupamento.

Parâmetros

object

Objeto Collator.

string1

A primeira string a comparar.

string2

A segunda string a comparar.

Valor Retornado

Retorna o resultado da comparação:

  • 1 se string1 for maior que string2;

  • 0 se string1 for igual a string2;

  • -1 se string1 for menor que string2.

Retorna false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Exemplos

Exemplo #1 Exemplo de collator_compare()

<?php
$s1 = 'Hello';
$s2 = 'hello';

$coll = collator_create( 'en_US' );
$res = collator_compare( $coll, $s1, $s2 );

if ($res === false) {
echo collator_get_error_message( $coll );
} else if( $res > 0 ) {
echo "s1 é maior que s2\n";
} else if( $res < 0 ) {
echo "s1 é menor que s2\n";
} else {
echo "s1 é igual a s2\n";
}
?>

O exemplo acima produzirá:

s1 é maior que s2

Exemplo #2 Comparando strings sem diacríticos ou diferenciação entre maiúsculas/minúsculas

<?php
$c = new Collator( 'en' );
$c->setStrength( Collator::PRIMARY );

if ( $c->compare( 'Séan', 'Sean' ) == 0 )
{
echo "Iguais\n";
}

O exemplo acima produzirá:

Iguais

Este exemplo instrui o agrupador a comparar levando em conta apenas os caracteres base. A documentação da função Collator->setStrength() explica as diferentes forças ("strengths").

Veja Também

  • collator_sort() - Ordena um array usando o agrupador especificado


Cria um agrupador (Collator)

  • « Collator::compare
  • Collator::create »
  • PHP Manual
  • Collator
  • Cria um agrupador (Collator)

Collator::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::__construct — Cria um agrupador (Collator)

Descrição

public Collator::__construct(string $locale)

Cria uma nova instância de Collator.

Parâmetros

locale

A localidade cujas regras de agrupamento devem ser usadas. Valores especiais para localidades podem ser passadas - se uma string vazia for passada, as regras de agrupamento da localidade padrão serão usadas. Se "root" for passado, as regras » UCA serão usadas.

O atributo locale é tipicamente o mais importante para ordenação e correspondências corretas, conforme expectativas do usuário em diferentes países e regiões. A ordenação » UCA padrão ordenará somente poucas línguas como holandês e português corretamente ("corretamente" significa de acordo com a expectativa normal para os usuários da língua). Em outras situações, é necessário fornecer a localidade para a UCA para agrupar adequadamente o texto para uma língua específica. Portanto, uma localidade precisa ser informada para que seja escolhido um agrupador que tenha sido corretamente elaborado para aquela localidade. A escolha de uma localidade irá predefinir automaticamente os valores de todos os atributos para algo que seja razoável para a localidade. Por isso, na maior parte do tempo os outros atributos não precisam ser definidos explicitamente. Em alguns casos, a escolha de localidade fará diferença em desempenho de comparação de strings e/ou em comprimento de chave de ordenação.

Erros/Exceções

Retorna um objeto "vazio" em caso de erro. User as funções intl_get_error_code() e/ou intl_get_error_message() para descobrir o que ocorreu.

Exemplos

Exemplo #1 Exemplo de Collator::__construct()

<?php
$coll = new Collator('en_CA');
?>

Veja Também

  • Collator::create() - Cria um agrupador
  • collator_create() - Cria um agrupador


Cria um agrupador

  • « Collator::__construct
  • Collator::getAttribute »
  • PHP Manual
  • Collator
  • Cria um agrupador

Collator::create

collator_create

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::create -- collator_create — Cria um agrupador

Descrição

Estilo orientado a objetos

public static Collator::create(string $locale): ?Collator

Estilo procedural

collator_create(string $locale): ?Collator

As strings serão comparadas usando as opções já especificadas.

Parâmetros

locale

A localidade contendo as regras de agrupamento requeridas. Valores especiais para localidades podem ser passadas - se uma string vazia for passada, as regras de agrupamento da localidade padrão serão usadas. Se "root" for passado, as regras » UCA serão usadas.

Valor Retornado

Retorna uma nova instância de Collator, ou null em caso de erro.

Exemplos

Exemplo #1 Exemplo de collator_create()

<?php
$coll = collator_create( 'en_US' );

if( !isset( $coll ) ) {
printf( "Criação do agrupador falhou: %s\n", intl_get_error_message() );
exit( 1 );
}
?>

Veja Também

  • Collator::__construct() - Cria um agrupador (Collator)


Obtém o valor de atributo de um agrupador

  • « Collator::create
  • Collator::getErrorCode »
  • PHP Manual
  • Collator
  • Obtém o valor de atributo de um agrupador

Collator::getAttribute

collator_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::getAttribute -- collator_get_attribute — Obtém o valor de atributo de um agrupador

Descrição

Estilo orientado a objetos

public Collator::getAttribute(int $attribute): int|false

Estilo procedural

collator_get_attribute(Collator $object, int $attribute): int|false

Obtém um valor de um atributo inteiro de um agrupador.

Parâmetros

object

Objeto Collator.

attribute

Atributo do qual o valor será obtido.

Valor Retornado

Valor do atributo, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de collator_get_attribute()

<?php
$coll = collator_create( 'en_CA' );
$val = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if( $val === false )
{
// Gerencia o erro.
}
?>

Veja Também

  • Constantes de Collator
  • collator_set_attribute() - Define atributo do agrupador
  • collator_get_strength() - Obtém a força atual de agrupamento


Obtém o último código de erro do agrupador

  • « Collator::getAttribute
  • Collator::getErrorMessage »
  • PHP Manual
  • Collator
  • Obtém o último código de erro do agrupador

Collator::getErrorCode

collator_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::getErrorCode -- collator_get_error_code — Obtém o último código de erro do agrupador

Descrição

Estilo orientado a objetos

public Collator::getErrorCode(): int|false

Estilo procedural

collator_get_error_code(Collator $object): int|false

Obtém o último código de erro do agrupador.

Parâmetros

object

Objeto Collator.

Valor Retornado

Código de erro retornado pela última chamada a uma função da API Collator, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de collator_get_error_code()

<?php
$coll = collator_create( 'en_US' );
if( collator_get_attribute( $coll, Collator::FRENCH_COLLATION ) === false )
handle_error( collator_get_error_code() );
?>

Veja Também

  • collator_get_error_message() - Obtém o texto para o último código de erro do agrupador


Obtém o texto para o último código de erro do agrupador

  • « Collator::getErrorCode
  • Collator::getLocale »
  • PHP Manual
  • Collator
  • Obtém o texto para o último código de erro do agrupador

Collator::getErrorMessage

collator_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::getErrorMessage -- collator_get_error_message — Obtém o texto para o último código de erro do agrupador

Descrição

Estilo orientado a objetos

public Collator::getErrorMessage(): string|false

Estilo procedural

collator_get_error_message(Collator $object): string|false

Obtém a mensagem para o último erro.

Parâmetros

object

Objeto Collator.

Valor Retornado

Descrição de um erro que ocorreu na última chamada de uma função da API Collator, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de collator_get_error_message()

<?php
$coll = collator_create( 'lt' );
if( collator_compare( $coll, 'y', 'k' ) === false ) {
echo collator_get_error_message( $coll );
}
?>

Veja Também

  • collator_get_error_code() - Obtém o último código de erro do agrupador


Obtém o nome da localidade do agrupador

  • « Collator::getErrorMessage
  • Collator::getSortKey »
  • PHP Manual
  • Collator
  • Obtém o nome da localidade do agrupador

Collator::getLocale

collator_get_locale

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::getLocale -- collator_get_locale — Obtém o nome da localidade do agrupador

Descrição

Estilo orientado a objetos

public Collator::getLocale(int $type): string|false

Estilo procedural

collator_get_locale(Collator $object, int $type): string|false

Obtém o nome da localidade do agrupador.

Parâmetros

object

Objeto Collator.

type

Pode-se escolher entre localidae válida ou real ( Locale::VALID_LOCALE e Locale::ACTUAL_LOCALE, respectivamente).

Valor Retornado

Nome real de localidade de onde se originam os dados do agrupador. Se o agrupador tiver sido instanciado a partir de regras ou se um erro tiver ocorrido, retornará false.

Exemplos

Exemplo #1 Exemplo de collator_get_locale()

<?php
$coll = collator_create( 'en_US_California' );
$res_val = collator_get_locale( $coll, Locale::VALID_LOCALE );
$res_act = collator_get_locale( $coll, Locale::ACTUAL_LOCALE );
printf( "Nome de localidade válido: %s\nNome de localidade real: %s\n",
$res_val, $res_act );
?>

O exemplo acima produzirá:

Nome de localidade válido: en_US
Nome de localidade real: root

Veja Também

  • collator_create() - Cria um agrupador


Obtém a chave de ordenação de uma string

  • « Collator::getLocale
  • Collator::getStrength »
  • PHP Manual
  • Collator
  • Obtém a chave de ordenação de uma string

Collator::getSortKey

collator_get_sort_key

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 1.0.3)

Collator::getSortKey -- collator_get_sort_key — Obtém a chave de ordenação de uma string

Descrição

Estilo orientado a objetos

public Collator::getSortKey(string $string): string|false

Estilo procedural

collator_get_sort_key(Collator $object, string $string): string|false

Retorna a chave de agrupamento de uma string. Chaves de agrupamento podem ser comparadas diretamente ao invés de se comparar strings, mas são específicas de implementação e podem mudar entre versões de biblioteca ICU. Chaver de ordenação geralmente são úteis apenas em bancos de dados ou em outras circunstâncias onde chamadas a funções são extremamente custosas.

Parâmetros

object

Objeto de Collator.

string

A string a partir da qual a chave será produzida.

Valor Retornado

Retorna a chave de agrupamento para a string, ou false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Exemplos

Exemplo #1 Exemplo de collator_get_sort_key()

<?php
$s1 = 'Hello';

$coll = collator_create('en_US');
$res = collator_get_sort_key($coll, $s1);

echo bin2hex($res);
?>

O exemplo acima produzirá algo semelhante a:

3832404046010901dc08

Veja Também

  • collator_sort() - Ordena um array usando o agrupador especificado
  • collator_sort_with_sort_keys() - Ordena um array usando agrupador e chaves de ordenação especificados


Obtém a força atual de agrupamento

  • « Collator::getSortKey
  • Collator::setAttribute »
  • PHP Manual
  • Collator
  • Obtém a força atual de agrupamento

Collator::getStrength

collator_get_strength

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::getStrength -- collator_get_strength — Obtém a força atual de agrupamento

Descrição

Estilo orientado a objetos

public Collator::getStrength(): int

Estilo procedural

collator_get_strength(Collator $object): int

Parâmetros

object

Objeto Collator.

Valor Retornado

Retorna a força atual de agrupamento, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de collator_get_strength()

<?php
$coll = collator_create( 'en_US' );
$strength = collator_get_strength( $coll );
?>

Veja Também

  • Constantes de Collator
  • collator_set_strength() - Define a força do agrupador
  • collator_get_attribute() - Obtém o valor de atributo de um agrupador


Define atributo do agrupador

  • « Collator::getStrength
  • Collator::setStrength »
  • PHP Manual
  • Collator
  • Define atributo do agrupador

Collator::setAttribute

collator_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::setAttribute -- collator_set_attribute — Define atributo do agrupador

Descrição

Estilo orientado a objetos

public Collator::setAttribute(int $attribute, int $value): bool

Estilo procedural

collator_set_attribute(Collator $object, int $attribute, int $value): bool

Define atributo do agrupador.

Parâmetros

object

Objeto Collator.

attribute

Atributo.

value

Valor do atributo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de collator_set_attribute()

<?php
$coll = collator_create( 'en_CA' );
$val = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if ($val === false) {
// Lida com o erro.
} elseif ($val === Collator::ON) {
// Faz algo útil.
}
?>

Veja Também

  • Constantes de Collator
  • collator_get_attribute() - Obtém o valor de atributo de um agrupador
  • collator_set_strength() - Define a força do agrupador


Define a força do agrupador

  • « Collator::setAttribute
  • Collator::sortWithSortKeys »
  • PHP Manual
  • Collator
  • Define a força do agrupador

Collator::setStrength

collator_set_strength

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::setStrength -- collator_set_strength — Define a força do agrupador

Descrição

Estilo orientado a objetos

public Collator::setStrength(int $strength): bool

Estilo procedural

collator_set_strength(Collator $object, int $strength): bool

O Serviço de Agrupamento » ICU suporta vários níveis de comparação, também chamados de "forças" ("strengths"). Estas categorias permitem à ICU ordenar strings com precisão conforme convenções locais. Entretanto, ao permitir que os níveis sejam seletivamente empregados, a pesquisa por uma string em um texto pode ser realizada com várias condições de correspondência.

  1. Nível primário: Tipicamento usado para indicar diferenças entre caracteres base (por exemplo "a" < "b"). É a diferença mais forte. Por exemplo, dicionários são divididos em seções por caractere base. É também chamado de força nível 1 (level 1).

  2. Nível secundário: Acentuações nos caracteres são consideradas diferenças secundárias (por exemplo, "as" < "às" < "at"). Outras diferenças entre letras podem também ser consideradas secundárias, dependendo da língua. Uma diferença secundária é ignorada quando existir uma diferença primária em qualquer lugar nas strings. Também chamado de força nível 2 (level 2).

    Nota:

    Nota: Em algumas línguas (como o dinamarquês), certas letras acentuadas são consideradas como caracteres base separados. Na maioria da línguas, entretanto, uma letra com acentuação tem apenas diferença secundária em relação à versão não acentuada dessa letra.

  3. Nível terciário: Diferenças de maiúsculas e minúsculas são distinguidas no nível terciário (por exemplo, "ao" < "Ao" < "aò"). Além disso, uma variante de uma letra se diferencia da forma base no nível terciário (como "a" e "??"). Outro exemplo é a diferença entre o Kana grande e o pequeno. Uma diferença terciária é ignorada quando existir uma diferença primária ou secundária em qualquer lugar nas strings. Também chamado de força nível 3 (level 3).

  4. Nível quaternário: Quando a pontuação é ignorada (consulte Ignorando Pontuaçõs) em níveis 1-3, um nível adicional pode ser usado para distinguir palavras com e sem pontuação (por exemplo, "ab" < "a-b" < "aB"). Esta diferença é ignorada quando há uma diferença primária, secundária ou terciária. Também conhecida como força nível 4 (level 4). O nível quaternário deve ser usado apenas se for requerido ignorar a pontuação ou ao processar texto em japonês (consulte processamento de Hiragana).

  5. Nível idêntico: Quando todos os outros níveis são iguais, o nível idêntico é usado como um desempate. Os valores de ponto de código Unicode para a forma NFD de cada string são comparados neste nível, apenas caso não haja nenhuma diferença nos níveis 1 a 4. Por exemplo, os sinais hebraicos de cantilação somente são distinguidos neste nível. Este nível deve ser usado com moderação, já que diferenças somente de valores de ponto de código entre duas strings é uma ocorrência extremamente rara. Usar este nível diminui consideravelmente o desempenho tanto para comparação incremental quanto para geração de chave de ordenação (e também aumenta o comprimento da chave). Também conhecido como força nível 5 (level 5).

Por exemplo, pode-se decidir por ignorar acentuação ou ignorar tanto acentuação quanto maiúsculas e minúsculas ao pesquisar por texto. Quase todos os caracteres são diferenciáveis pelos primeiros três níveis e por isso, na maior parte das localidades, o valor padrão é o terciário. Entratanto, se a opção ALTERNATE for definida para SHIFTED, a força quaternária pode ser usada para desempatar entre espaços em branco, pontuação e símbolos que em outros casos seriam ignorados. Se uma distinção muito fina entre caracteres for necessária, o nível idêntico pode ser usado (por exemplo, o nível idêntico distingue entre a letra "a" minúscula matemática em negrito e a letra "a" minúscula matemática em itálico). Entretanto, usar níveis mais altos que o terciário resulta em chaves de ordenação significativamente mais longas, e desempenho mais lento de comparação para strings iguais.

Parâmetros

object

Objeto Collator.

strength

Força a ser definida.

Valores possíveis são:

  • Collator::PRIMARY

  • Collator::SECONDARY

  • Collator::TERTIARY

  • Collator::QUATERNARY

  • Collator::IDENTICAL

  • Collator::DEFAULT_STRENGTH

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de collator_set_strength()

<?php
$arr = array( 'aò', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );

// Ordena o array usando a força padrão.
collator_sort( $coll, $arr );
var_export( $arr );

// Ordena o array usando a força primária.
collator_set_strength( $coll, Collator::PRIMARY );
collator_sort( $coll, $arr );
var_export( $arr );
?>

O exemplo acima produzirá:

array (
  0 => 'ao',
  1 => 'Ao',
  2 => 'aò',
)
array (
  0 => 'aò',
  1 => 'Ao',
  2 => 'ao',
)

Veja Também

  • Constantes de Collator
  • collator_get_strength() - Obtém a força atual de agrupamento


Ordena um array usando agrupador e chaves de ordenação especificados

  • « Collator::setStrength
  • Collator::sort »
  • PHP Manual
  • Collator
  • Ordena um array usando agrupador e chaves de ordenação especificados

Collator::sortWithSortKeys

collator_sort_with_sort_keys

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::sortWithSortKeys -- collator_sort_with_sort_keys — Ordena um array usando agrupador e chaves de ordenação especificados

Descrição

Estilo orientado a objetos

public Collator::sortWithSortKeys(array &$array): bool

Estilo procedural

collator_sort_with_sort_keys(Collator $object, array &$array): bool

Similar à função collator_sort() mas usa chaves de ordenação ICU produzidas por ucol_getSortKey() para ganhar mais velocidade em arrays grandes.

Parâmetros

object

Objeto Collator.

array

Array de strings a ordenar

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de collator_sort_with_sort_keys()

<?php
$arr = array( 'Köpfe', 'Kypper', 'Kopfe' );
$coll = collator_create( 'sv' );

collator_sort_with_sort_keys( $coll, $arr );
var_export( $arr );
?>

O exemplo acima produzirá:

array (
  0 => 'Kopfe',
  1 => 'Kypper',
  2 => 'Köpfe',
)

Veja Também

  • Constantes Collator
  • collator_sort() - Ordena um array usando o agrupador especificado
  • collator_asort() - Ordena array mantendo associação de índice


Ordena um array usando o agrupador especificado

  • « Collator::sortWithSortKeys
  • NumberFormatter »
  • PHP Manual
  • Collator
  • Ordena um array usando o agrupador especificado

Collator::sort

collator_sort

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::sort -- collator_sort — Ordena um array usando o agrupador especificado

Descrição

Estilo orientado a objetos

public Collator::sort(array &$array, int $flags = Collator::SORT_REGULAR): bool

Estilo procedural

collator_sort(Collator $object, array &$array, int $flags = Collator::SORT_REGULAR): bool

Esta função ordena um array conforme as regras da localidade atual.

Equivalente à função padrão do PHP sort() .

Parâmetros

object

Objeto Collator.

array

Array de strings a ordenar.

flags

Tipo de ordenação opcional, um dos seguintes:

  • Collator::SORT_REGULAR - compara os itens normalmente (não altera os tipos)

  • Collator::SORT_NUMERIC - compara os itens numericamente

  • Collator::SORT_STRING - compara os itens como strings

O tipo de ordenação padrão é Collator::SORT_REGULAR. Também é usado se um valor inválido de flags tiver sido especificado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de collator_sort()

<?php
$coll = collator_create( 'en_US' );
$arr = array( 'at', 'às', 'as' );

var_export( $arr );
collator_sort( $coll, $arr );
var_export( $arr );
?>

O exemplo acima produzirá:

array (
  0 => 'at',
  1 => 'às',
  2 => 'as',
)array (
  0 => 'as',
  1 => 'às',
  2 => 'at',
)

Veja Também

  • Constantes de Collator
  • collator_asort() - Ordena array mantendo associação de índice
  • collator_sort_with_sort_keys() - Ordena um array usando agrupador e chaves de ordenação especificados


A classe NumberFormatter

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Introdução

Programas armazenam e operam números usando uma representação binária que não depende da localidade. Ao apresentar ou imprimir um número, ele é convertido para uma string específica para a localidade. Por exemplo, o número 12345.67 é "12,345.67" nos Estados Unidos, "12 345,67" na França e "12.345,67" na Alemanha e no Brasil.

Ao invocar os métodos fornecidos pela classe NumberFormatter, pode-se formatar números, moedas, e percentagens de acordo com o especificado ou com a localidade padrão. NumberFormatter é sensível à localidade, portanto é necessário criar um novo objeto NumberFormatter para cada localidade. Métodos NumberFormatter formatam números com tipos primitivos, como 'double' e mostram o número como uma string específica para a localidade

Para moedas, pode-se usar o tipo de formato de moeda para criar um formatador que retorne uma string com o número formatado e com o sinal apropriado para a moeda. Obviamente, a classe NumberFormatter não tem ciência de taxas de câmbio, portanto, a saída é a mesma independente da moeda especificada. Isto significa que o mesmo número tem diferentes valores monteários dependendo da moeda da localidade. Se o número for 9988776.65, os resultados serão:

  • 9 988 776,65 € na França
  • 9.988.776,65 € na Alemanha
  • $9,988,776.65 nos Estados Unidos

Para formatar percentagens, deve-se criar um formatador específico da localidade com o tipo de formato de percentual. Com este formatados, uma fração decimal como 0.75 é mostrada como 75%.

Para formatações mais complexas, como números por extenso, os formatadores de número baseados em regras são utilizados.

Resumo da classe

class NumberFormatter {
/* Constantes */
public const int PATTERN_DECIMAL;
public const int DECIMAL;
public const int CURRENCY;
public const int PERCENT;
public const int SCIENTIFIC;
public const int SPELLOUT;
public const int ORDINAL;
public const int DURATION;
public const int PATTERN_RULEBASED;
public const int IGNORE;
public const int CURRENCY_ACCOUNTING;
public const int DEFAULT_STYLE;
public const int ROUND_CEILING;
public const int ROUND_FLOOR;
public const int ROUND_DOWN;
public const int ROUND_UP;
public const int ROUND_HALFEVEN;
public const int ROUND_HALFDOWN;
public const int ROUND_HALFUP;
public const int PAD_BEFORE_PREFIX;
public const int PAD_AFTER_PREFIX;
public const int PAD_BEFORE_SUFFIX;
public const int PAD_AFTER_SUFFIX;
public const int PARSE_INT_ONLY;
public const int GROUPING_USED;
public const int DECIMAL_ALWAYS_SHOWN;
public const int MAX_INTEGER_DIGITS;
public const int MIN_INTEGER_DIGITS;
public const int INTEGER_DIGITS;
public const int MAX_FRACTION_DIGITS;
public const int MIN_FRACTION_DIGITS;
public const int FRACTION_DIGITS;
public const int MULTIPLIER;
public const int GROUPING_SIZE;
public const int ROUNDING_MODE;
public const int ROUNDING_INCREMENT;
public const int FORMAT_WIDTH;
public const int PADDING_POSITION;
public const int SECONDARY_GROUPING_SIZE;
public const int SIGNIFICANT_DIGITS_USED;
public const int MIN_SIGNIFICANT_DIGITS;
public const int MAX_SIGNIFICANT_DIGITS;
public const int LENIENT_PARSE;
public const int POSITIVE_PREFIX;
public const int POSITIVE_SUFFIX;
public const int NEGATIVE_PREFIX;
public const int NEGATIVE_SUFFIX;
public const int PADDING_CHARACTER;
public const int CURRENCY_CODE;
public const int DEFAULT_RULESET;
public const int PUBLIC_RULESETS;
public const int DECIMAL_SEPARATOR_SYMBOL;
public const int GROUPING_SEPARATOR_SYMBOL;
public const int PATTERN_SEPARATOR_SYMBOL;
public const int PERCENT_SYMBOL;
public const int ZERO_DIGIT_SYMBOL;
public const int DIGIT_SYMBOL;
public const int MINUS_SIGN_SYMBOL;
public const int PLUS_SIGN_SYMBOL;
public const int CURRENCY_SYMBOL;
public const int INTL_CURRENCY_SYMBOL;
public const int MONETARY_SEPARATOR_SYMBOL;
public const int EXPONENTIAL_SYMBOL;
public const int PERMILL_SYMBOL;
public const int PAD_ESCAPE_SYMBOL;
public const int INFINITY_SYMBOL;
public const int NAN_SYMBOL;
public const int SIGNIFICANT_DIGIT_SYMBOL;
public const int MONETARY_GROUPING_SEPARATOR_SYMBOL;
public const int TYPE_DEFAULT;
public const int TYPE_INT32;
public const int TYPE_INT64;
public const int TYPE_DOUBLE;
public const int TYPE_CURRENCY;
/* Métodos */
public __construct(string $locale, int $style, ?string $pattern = null)
public static create(string $locale, int $style, ?string $pattern = null): ?NumberFormatter
public formatCurrency(float $amount, string $currency): string|false
public format(int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false
public getAttribute(int $attribute): int|float|false
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false
public getPattern(): string|false
public getSymbol(int $symbol): string|false
public getTextAttribute(int $attribute): string|false
public parseCurrency(string $string, string &$currency, int &$offset = null): float|false
public parse(string $string, int $type = NumberFormatter::TYPE_DOUBLE, int &$offset = null): int|float|false
public setAttribute(int $attribute, int|float $value): bool
public setPattern(string $pattern): bool
public setSymbol(int $symbol, string $value): bool
public setTextAttribute(int $attribute, string $value): bool
}

Constantes pré-definidas

Estes estilos são usados pela função numfmt_create() para definir o tipo do formatador.

NumberFormatter::PATTERN_DECIMAL
Formato decimal definido por modelo
NumberFormatter::DECIMAL
Formato decimal
NumberFormatter::CURRENCY
Formato de moeda
NumberFormatter::PERCENT
Formato de percentual
NumberFormatter::SCIENTIFIC
Formato científico
NumberFormatter::SPELLOUT
Formato baseado em regras ortográficas
NumberFormatter::ORDINAL
Formato baseado em regras ordinais
NumberFormatter::DURATION
Formato baseado em regras de duração
NumberFormatter::PATTERN_RULEBASED
Formato baseado em regras definido por modelo
NumberFormatter::CURRENCY_ACCOUNTING
Formato de moeda para contabilidade, ex.: ($3.00) para quantidade negativa de moeda ao invés de -$3.00. Disponível a partir do PHP 7.4.1 e ICU 53.
NumberFormatter::DEFAULT_STYLE
Formato padrão para a localidade
NumberFormatter::IGNORE
Apelido para PATTERN_DECIMAL

Estas constantes definem como os números são analisados ou formatados. Eles devem ser usados como argumentos para as funções numfmt_format() e numfmt_parse().

NumberFormatter::TYPE_DEFAULT
Deriva o tipo a partir do tipo da variável
NumberFormatter::TYPE_INT32
Formata/analisa como um inteiro de 32 bits
NumberFormatter::TYPE_INT64
Formata/analisa como um inteiro de 64 bits
NumberFormatter::TYPE_DOUBLE
Formata/analisa como um valor de ponto flutuante
NumberFormatter::TYPE_CURRENCY
Formata/analisa como um valor de moeda. Defasado a partir do PHP 8.3.0

Atributo de formato de número usado pelas funções numfmt_get_attribute() e numfmt_set_attribute().

NumberFormatter::PARSE_INT_ONLY
Analisa inteiros somente.
NumberFormatter::GROUPING_USED
Usa separador de agrupamento.
NumberFormatter::DECIMAL_ALWAYS_SHOWN
Sempre mostra o separador de decimais.
NumberFormatter::MAX_INTEGER_DIGITS
Máximo de dígitos inteiros.
NumberFormatter::MIN_INTEGER_DIGITS
Mínimo de dígitos inteiros.
NumberFormatter::INTEGER_DIGITS
Dígitos inteiros.
NumberFormatter::MAX_FRACTION_DIGITS
Máximo de dígitos decimais.
NumberFormatter::MIN_FRACTION_DIGITS
Mínimo de dígitos decimais.
NumberFormatter::FRACTION_DIGITS
Dígitos decimais.
NumberFormatter::MULTIPLIER
Multiplicador.
NumberFormatter::GROUPING_SIZE
Tamanho do agrupamento.
NumberFormatter::ROUNDING_MODE
Modo de arredondamento.
NumberFormatter::ROUNDING_INCREMENT
Incremento de arredondamento.
NumberFormatter::FORMAT_WIDTH
A largura para a qual a saída de format() será preenchida.
NumberFormatter::PADDING_POSITION
A posição na qual o preenchimento acontecerá. Consulte as constantes de posição de preenchimento para possíveis valores de argumentos.
NumberFormatter::SECONDARY_GROUPING_SIZE
Tamanho de agrupamento secundário.
NumberFormatter::SIGNIFICANT_DIGITS_USED
Usa dígitos significativos.
NumberFormatter::MIN_SIGNIFICANT_DIGITS
Mínimo de dígitos significativos.
NumberFormatter::MAX_SIGNIFICANT_DIGITS
Máximo de dígitos significativos.
NumberFormatter::LENIENT_PARSE
Modo de análise brando usado por formatos baseados em regras.

Atributo de texto de formato numérico usado por numfmt_get_text_attribute() e numfmt_set_text_attribute().

NumberFormatter::POSITIVE_PREFIX
Prefixo positivo.
NumberFormatter::POSITIVE_SUFFIX
Sufixo positivo.
NumberFormatter::NEGATIVE_PREFIX
Prefixo negativo.
NumberFormatter::NEGATIVE_SUFFIX
Sufixo negativo.
NumberFormatter::PADDING_CHARACTER
O caractere usado para preencher a largura do formato.
NumberFormatter::CURRENCY_CODE
O código de moeda ISO.
NumberFormatter::DEFAULT_RULESET
O conjunto de regras padrão. Isso está disponível apenas com formatadores baseados em regras.
NumberFormatter::PUBLIC_RULESETS
Os conjuntos de regras públicas. Isso está disponível apenas com formatadores baseados em regras. Este é um atributo somente leitura. Os conjuntos de regras públicos são retornados como uma única string, com cada nome de conjunto de regras delimitado por ';' (ponto e vírgula).

Símbolos de formato de número usados por numfmt_get_symbol() e numfmt_set_symbol().

NumberFormatter::DECIMAL_SEPARATOR_SYMBOL
O separador de decimais.
NumberFormatter::GROUPING_SEPARATOR_SYMBOL
O separador de agrupamento.
NumberFormatter::PATTERN_SEPARATOR_SYMBOL
O separador de padrão.
NumberFormatter::PERCENT_SYMBOL
O sinal de percentagem.
NumberFormatter::ZERO_DIGIT_SYMBOL
Zero.
NumberFormatter::DIGIT_SYMBOL
Caractere representando um dígito no padrão.
NumberFormatter::MINUS_SIGN_SYMBOL
O sinal de menos.
NumberFormatter::PLUS_SIGN_SYMBOL
O sinal de mais.
NumberFormatter::CURRENCY_SYMBOL
O símbolo da moeda.
NumberFormatter::INTL_CURRENCY_SYMBOL
O símbolo internacional da moeda.
NumberFormatter::MONETARY_SEPARATOR_SYMBOL
O separador monetário.
NumberFormatter::EXPONENTIAL_SYMBOL
O símbolo exponencial.
NumberFormatter::PERMILL_SYMBOL
O símbolo de permilagem.
NumberFormatter::PAD_ESCAPE_SYMBOL
Caractere de preenchimento de escape.
NumberFormatter::INFINITY_SYMBOL
Símbolo de infinito.
NumberFormatter::NAN_SYMBOL
Símbolo representando que o valor não é um número.
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL
Símbolo de dígito significativo.
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL
O separador de agrupamento monetário.

Valores de modo de arredondamento usados por numfmt_get_attribute() e numfmt_set_attribute() com o atributo NumberFormatter::ROUNDING_MODE.

NumberFormatter::ROUND_CEILING
Modo de arredondamento para arredondar em direção ao infinito positivo.
NumberFormatter::ROUND_DOWN
Modo de arredondamento para arredondar para zero.
NumberFormatter::ROUND_FLOOR
Modo de arredondamento para arredondar em direção ao infinito negativo.
NumberFormatter::ROUND_HALFDOWN
Modo de arredondamento para arredondar para o "vizinho mais próximo", a menos que ambos os vizinhos sejam equidistantes, caso em que arredonda para baixo.
NumberFormatter::ROUND_HALFEVEN
Modo de arredondamento para arredondar em direção ao "vizinho mais próximo", a menos que ambos os vizinhos sejam equidistantes; nesse caso, arredondar em direção ao vizinho par.
NumberFormatter::ROUND_HALFUP
Modo de arredondamento para arredondar para o "vizinho mais próximo", a menos que ambos os vizinhos sejam equidistantes; nesse caso, arredondar para cima.
NumberFormatter::ROUND_UP
Modo de arredondamento para arredondar a partir de zero.

Valores de posição de preenchimento usados por numfmt_get_attribute() e numfmt_set_attribute() com o atributo NumberFormatter::PADDING_POSITION.

NumberFormatter::PAD_AFTER_PREFIX
Caracteres de preenchimento inseridos após o prefixo.
NumberFormatter::PAD_AFTER_SUFFIX
Caracteres de preenchimento inseridos após o sufixo.
NumberFormatter::PAD_BEFORE_PREFIX
Caracteres de preenchimento inseridos antes do prefixo.
NumberFormatter::PAD_BEFORE_SUFFIX
Caracteres de preenchimento inseridos antes do sufixo.

Veja Também

  • » Documentação de formatação ICU
  • » Formatadores de números ICU
  • » Formatadores de decimais ICU
  • » Formatadores de números baseados em regras ICU

Índice

  • NumberFormatter::create — Cria um formatador de número
  • NumberFormatter::formatCurrency — Formata um valor de moeda
  • NumberFormatter::format — Formata um número
  • NumberFormatter::getAttribute — Obtém um atributo
  • NumberFormatter::getErrorCode — Obtém o último código de erro do formatador
  • NumberFormatter::getErrorMessage — Obtém a última mensagem de erro do formatador
  • NumberFormatter::getLocale — Obtém a localidade do formatador
  • NumberFormatter::getPattern — Obtém padrão do formatador
  • NumberFormatter::getSymbol — Obtém um valor de símbolo
  • NumberFormatter::getTextAttribute — Obtém um atributo de texto
  • NumberFormatter::parseCurrency — Interpreta um valor monetário
  • NumberFormatter::parse — Interpreta um número
  • NumberFormatter::setAttribute — Define um atributo
  • NumberFormatter::setPattern — Define o padrão do formatador
  • NumberFormatter::setSymbol — Define um valor de símbolo
  • NumberFormatter::setTextAttribute — Define um atributo de texto


Cria um formatador de número

  • « NumberFormatter
  • NumberFormatter::formatCurrency »
  • PHP Manual
  • NumberFormatter
  • Cria um formatador de número

NumberFormatter::create

numfmt_create

NumberFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::create -- numfmt_create -- NumberFormatter::__construct — Cria um formatador de número

Descrição

Estilo orientado a objetos (método)

public static NumberFormatter::create(string $locale, int $style, ?string $pattern = null): ?NumberFormatter

Estilo procedural

numfmt_create(string $locale, int $style, ?string $pattern = null): ?NumberFormatter

Estilo orientado a objetos (construtor):

public NumberFormatter::__construct(string $locale, int $style, ?string $pattern = null)

Cria um formatador de número.

Parâmetros

locale

Localidade na qual o número deve ser formatado (nome da localidade, ex.: pt_BR).

style

Estilo da formatação, uma das contantes de estilo de formatação. Se NumberFormatter::PATTERN_DECIMAL ou NumberFormatter::PATTERN_RULEBASED forem passadas, o formato do número será aberto usando o modelo fornecido, que deve estar conforme a sintaxe descrita na » documentação de formato decimal da ICU ou na » documentação de formato de número com base em regras da ICU, respectively.

pattern

String de modelo se o estilo escolhido requerer um modelo.

Valor Retornado

Retorna um objeto NumberFormatter ou null em caso de erro.

Registro de Alterações

Versão | Descrição
8.0.0 | pattern agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de numfmt_create()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
$fmt = numfmt_create( 'it', NumberFormatter::SPELLOUT );
echo numfmt_format($fmt, 1142)."\n";
?>

Exemplo #2 Exemplo de NumberFormatter::create()

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo $fmt->format(1234567.891234567890000)."\n";
$fmt = new NumberFormatter( 'it', NumberFormatter::SPELLOUT );
echo $fmt->format(1142)."\n";
?>

O exemplo acima produzirá:

1.234.567,891
millicentoquarantadue

Veja Também

  • numfmt_format() - Formata um número
  • numfmt_parse() - Interpreta um número


Formata um valor de moeda

  • « NumberFormatter::create
  • NumberFormatter::format »
  • PHP Manual
  • NumberFormatter
  • Formata um valor de moeda

NumberFormatter::formatCurrency

numfmt_format_currency

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::formatCurrency -- numfmt_format_currency — Formata um valor de moeda

Descrição

Estilo orientado a objetos

public NumberFormatter::formatCurrency(float $amount, string $currency): string|false

Estilo procedural

numfmt_format_currency(NumberFormatter $formatter, float $amount, string $currency): string|false

Formata o valor de moeda de acordo com as regras de formatação.

Parâmetros

formatter

Objeto NumberFormatter.

amount

O valor numérico monetário.

currency

O código de moeda de 3 letras ISO 4217 indicando a moeda a ser usada.

Valor Retornado

String representando o valor monetário formatado, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de numfmt_format_currency()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
?>

O exemplo acima produzirá:

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89?.

Notas

Nota:

Formatos possíveis por este método não usam todas as possibilidades da biblioteca ICU subjacente, como por exemplo usar o símbolo da moeda em sua forma curta ou abreviada.

Para usar todas as possibilidades, use a função msgfmt_format_message().

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_format() - Formata um número
  • numfmt_parse_currency() - Interpreta um valor monetário
  • msgfmt_format_message() - Formata uma mensagem rapidamente


Formata um número

  • « NumberFormatter::formatCurrency
  • NumberFormatter::getAttribute »
  • PHP Manual
  • NumberFormatter
  • Formata um número

NumberFormatter::format

numfmt_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::format -- numfmt_format — Formata um número

Descrição

Estilo orientado a objetos

public NumberFormatter::format(int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

Estilo procedural

numfmt_format(NumberFormatter $formatter, int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

Formata um valor numérico de acordo com as regras de formatação.

Parâmetros

formatter

Objeto NumberFormatter.

num

O valor a formatar. Pode ser int ou float, outros tipos serão convertidos para valores numéricos.

type

O tipo de formatação a ser usado. Observe que NumberFormatter::TYPE_CURRENCY não é suportado; use NumberFormatter::formatCurrency() em seu lugar.

Valor Retornado

Retorna a string contendo o valor formatado, ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de numfmt_format()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_format($fmt))) {
report_error("Formatter error");
}
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
report_error("Formatter error");
}
?>

O exemplo acima produzirá:

1.234.567,891

Notas

Nota:

Formatos possíveis por este método não usam todas as possibilidades da biblioteca ICU subjacente, como por exemplo usar o símbolo da moeda em sua forma curta ou abreviada.

Para usar todas as possibilidades, use a função msgfmt_format_message().

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_format_currency() - Formata um valor de moeda
  • numfmt_parse() - Interpreta um número
  • msgfmt_format_message() - Formata uma mensagem rapidamente


Obtém um atributo

  • « NumberFormatter::format
  • NumberFormatter::getErrorCode »
  • PHP Manual
  • NumberFormatter
  • Obtém um atributo

NumberFormatter::getAttribute

numfmt_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getAttribute -- numfmt_get_attribute — Obtém um atributo

Descrição

Estilo orientado a objetos

public NumberFormatter::getAttribute(int $attribute): int|float|false

Estilo procedural

numfmt_get_attribute(NumberFormatter $formatter, int $attribute): int|float|false

Obtém um atributo numérico associado com o formatador. Um exemplo de um atributo numérico é o número de dígitos inteiros que o formatador irá produzir.

Parâmetros

formatter

Objeto NumberFormatter.

attribute

Especificador de atributo - uma das constantes de atributo numérico.

Valor Retornado

Retorna o valor do atributo em caso de sucesso, ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de numfmt_get_attribute()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Dígitos: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Dígitos: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Dígitos: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Dígitos: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

O exemplo acima produzirá:

Dígitos: 3
1.234.567,891
Dígitos: 2
1.234.567,89

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_get_text_attribute() - Obtém um atributo de texto
  • numfmt_set_attribute() - Define um atributo


Obtém o último código de erro do formatador

  • « NumberFormatter::getAttribute
  • NumberFormatter::getErrorMessage »
  • PHP Manual
  • NumberFormatter
  • Obtém o último código de erro do formatador

NumberFormatter::getErrorCode

numfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getErrorCode -- numfmt_get_error_code — Obtém o último código de erro do formatador

Descrição

Estilo orientado a objetos

public NumberFormatter::getErrorCode(): int

Estilo procedural

numfmt_get_error_code(NumberFormatter $formatter): int

Obtém o código de erro da última função realizada pelo formatador.

Parâmetros

formatter

Objeto NumberFormatter.

Valor Retornado

Retorna o código de erro da última chamada ao formatador.

Exemplos

Exemplo #1 Exemplo de numfmt_get_error_code()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_get_error_code($fmt))) {
report_error("Formatter error");
}
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
report_error("Formatter error");
}
?>

Veja Também

  • numfmt_get_error_message() - Obtém a última mensagem de erro do formatador
  • intl_get_error_code() - Obtém o último código de erro
  • intl_is_failure() - Verifica se o código de erro fornecido indica falha


Obtém a última mensagem de erro do formatador

  • « NumberFormatter::getErrorCode
  • NumberFormatter::getLocale »
  • PHP Manual
  • NumberFormatter
  • Obtém a última mensagem de erro do formatador

NumberFormatter::getErrorMessage

numfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getErrorMessage -- numfmt_get_error_message — Obtém a última mensagem de erro do formatador

Descrição

Estilo orientado a objetos

public NumberFormatter::getErrorMessage(): string

Estilo procedural

numfmt_get_error_message(NumberFormatter $formatter): string

Obtém a mensagem de erro da última função realizada pelo formatador.

Parâmetros

formatter

Objeto NumberFormatter.

Valor Retornado

Retorna a mensagem de erro da última chamada ao formatador.

Exemplos

Exemplo #1 Exemplo de numfmt_get_error_message()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
var_dump(numfmt_get_error_message($fmt));
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
var_dump(numfmt_get_error_message($fmt));
?>

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • intl_get_error_code() - Obtém o último código de erro
  • intl_is_failure() - Verifica se o código de erro fornecido indica falha


Obtém a localidade do formatador

  • « NumberFormatter::getErrorMessage
  • NumberFormatter::getPattern »
  • PHP Manual
  • NumberFormatter
  • Obtém a localidade do formatador

NumberFormatter::getLocale

numfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getLocale -- numfmt_get_locale — Obtém a localidade do formatador

Descrição

Estilo orientado a objetos

public NumberFormatter::getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false

Estilo procedural

numfmt_get_locale(NumberFormatter $formatter, int $type = ULOC_ACTUAL_LOCALE): string|false

Obtém o nome da localidade do formatador.

Parâmetros

formatter

Objeto NumberFormatter.

type

Pode-se escolher entre localidade válida e localidade real ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectivamente). O padrão é a localidade real.

Valor Retornado

O nome da localidade usada para criar o formatador, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de numfmt_get_locale()

<?php
$req = 'fr_FR_PARIS';
$fmt = numfmt_create( $req, NumberFormatter::DECIMAL);
$res_val = numfmt_get_locale( $fmt, Locale::VALID_LOCALE );
$res_act = numfmt_get_locale( $fmt, Locale::ACTUAL_LOCALE );
printf( "Nome de localidade requisitado: %s\nNome de localidade válido: %s\nNome de localidade atual: %s\n",
$req, $res_val, $res_act );
?>

O exemplo acima produzirá:

Nome de localidade requisitado: fr_FR_PARIS
Nome de localidade válido: fr_FR
Nome de localidade atual: fr

Veja Também

  • numfmt_create() - Cria um formatador de número
  • numfmt_get_error_code() - Obtém o último código de erro do formatador


Obtém padrão do formatador

  • « NumberFormatter::getLocale
  • NumberFormatter::getSymbol »
  • PHP Manual
  • NumberFormatter
  • Obtém padrão do formatador

NumberFormatter::getPattern

numfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getPattern -- numfmt_get_pattern — Obtém padrão do formatador

Descrição

Estilo orientado a objetos

public NumberFormatter::getPattern(): string|false

Estilo procedural

numfmt_get_pattern(NumberFormatter $formatter): string|false

Extrai o padrão usado pelo formatador.

Parâmetros

formatter

Objeto NumberFormatter.

Valor Retornado

string do padrão usado pelo formatador, ou false se um erro acontecer.

Exemplos

Exemplo #1 Exemplo de numfmt_get_pattern()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Padrão: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Padrão: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Padrão: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Padrão: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

O exemplo acima produzirá:

Padrão: #,##0.###
1.234.567,891
Padrão: #0.# kg
1234567,9 kg

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_set_pattern() - Define o padrão do formatador
  • numfmt_create() - Cria um formatador de número


Obtém um valor de símbolo

  • « NumberFormatter::getPattern
  • NumberFormatter::getTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Obtém um valor de símbolo

NumberFormatter::getSymbol

numfmt_get_symbol

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getSymbol -- numfmt_get_symbol — Obtém um valor de símbolo

Descrição

Estilo orientado a objetos

public NumberFormatter::getSymbol(int $symbol): string|false

Estilo procedural

numfmt_get_symbol(NumberFormatter $formatter, int $symbol): string|false

Obtém um símbolo associado ao formatador. O formatador usa símbolos para representar os caracteres especiais dependentes de localidade em um número, por exemplo o sinal de percentagem. Esta API não é suportada para formatadores baseados em regras.

Parâmetros

formatter

Objeto NumberFormatter.

symbol

Especificador de símbolo, uma das constantes de símbolo de formatação.

Valor Retornado

A string do símbolo ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de numfmt_get_symbol()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

O exemplo acima produzirá:

Sep: .
1.234.567,891
Sep: *
1*234*567,891

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_set_symbol() - Define um valor de símbolo


Obtém um atributo de texto

  • « NumberFormatter::getSymbol
  • NumberFormatter::parseCurrency »
  • PHP Manual
  • NumberFormatter
  • Obtém um atributo de texto

NumberFormatter::getTextAttribute

numfmt_get_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getTextAttribute -- numfmt_get_text_attribute — Obtém um atributo de texto

Descrição

Estilo orientado a objetos

public NumberFormatter::getTextAttribute(int $attribute): string|false

Estilo procedural

numfmt_get_text_attribute(NumberFormatter $formatter, int $attribute): string|false

Obtém um atributo de texto associado ao formatador. Um exemplo de um atributo de texto é o sufixo para números positivos. Se o formatador não entender o atributo, o erro U_UNSUPPORTED_ERROR é produzido. Formatadores baseados em regras entendem apenas NumberFormatter::DEFAULT_RULESET e NumberFormatter::PUBLIC_RULESETS.

Parâmetros

formatter

Objeto NumberFormatter.

attribute

Especificador de atributo - uma das constantes de atributo de texto.

Valor Retornado

Retorna o valor do atributo em caso de sucesso, ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de numfmt_get_text_attribute()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefixo: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MENOS");
echo "Prefixo: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefixo: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MENOS");
echo "Prefixo: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

O exemplo acima produzirá:

Prefixo: -
-1.234.567,891
Prefixo: MENOS
MENOS1.234.567,891

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_get_attribute() - Obtém um atributo
  • numfmt_set_text_attribute() - Define um atributo de texto


Interpreta um valor monetário

  • « NumberFormatter::getTextAttribute
  • NumberFormatter::parse »
  • PHP Manual
  • NumberFormatter
  • Interpreta um valor monetário

NumberFormatter::parseCurrency

numfmt_parse_currency

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::parseCurrency -- numfmt_parse_currency — Interpreta um valor monetário

Descrição

Estilo orientado a objetos

public NumberFormatter::parseCurrency(string $string, string &$currency, int &$offset = null): float|false

Estilo procedural

numfmt_parse_currency(
NumberFormatter $formatter,
string $string,
string &$currency,
int &$offset = null
): float|false

Interpreta uma string em um valor decimal e uma moeda usando o formatador atual.

Parâmetros

formatter

Objeto NumberFormatter.

currency

Parâmetro que irá receber o nome da moeda (código de moeda de 3 letras ISO 4217).

offset

Deslocamento na string a partir do qual a interpretação será iniciada. Ao retornar, este valor conterá o deslocamento no qual a interpretação terminou.

Valor Retornado

O valor numérico interpretado ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de numfmt_parse_currency()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "Temos ".numfmt_parse_currency($fmt, $num, $curr)." em $curr\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "Temos ".$fmt->parseCurrency($num, $curr)." em $curr\n";
?>

O exemplo acima produzirá:

Temos 1234567.89 em USD

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_parse() - Interpreta um número
  • numfmt_format_currency() - Formata um valor de moeda


Interpreta um número

  • « NumberFormatter::parseCurrency
  • NumberFormatter::setAttribute »
  • PHP Manual
  • NumberFormatter
  • Interpreta um número

NumberFormatter::parse

numfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parse — Interpreta um número

Descrição

Estilo orientado a objetos

public NumberFormatter::parse(string $string, int $type = NumberFormatter::TYPE_DOUBLE, int &$offset = null): int|float|false

Estilo procedural

numfmt_parse(
NumberFormatter $formatter,
string $string,
int $type = NumberFormatter::TYPE_DOUBLE,
int &$offset = null
): int|float|false

Converte uma string em um número usando as regras atuais do formatador.

Parâmetros

formatter

Objeto NumberFormatter.

string

A string a ser convertida para um número.

type

O

tipo de formatação a ser usado. Por padrão,
NumberFormatter::TYPE_DOUBLE é usado.
Observe que NumberFormatter::TYPE_CURRENCY não é suportado;
use NumberFormatter::parseCurrency() em seu lugar.

offset

Deslocamento na string a partir do qual a interpretação será iniciada. Ao retornar, este valor conterá o deslocamento no qual a interpretação terminou.

Valor Retornado

O valor numérico convertido ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de numfmt_parse()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo numfmt_parse($fmt, $num)."\n";
echo numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo $fmt->parse($num)."\n";
echo $fmt->parse($num, NumberFormatter::TYPE_INT32)."\n";
?>

O exemplo acima produzirá:

1234567.891
1234567

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_format() - Formata um número
  • numfmt_parse_currency() - Interpreta um valor monetário


Define um atributo

  • « NumberFormatter::parse
  • NumberFormatter::setPattern »
  • PHP Manual
  • NumberFormatter
  • Define um atributo

NumberFormatter::setAttribute

numfmt_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attribute — Define um atributo

Descrição

Estilo orientado a objetos

public NumberFormatter::setAttribute(int $attribute, int|float $value): bool

Estilo procedural

numfmt_set_attribute(NumberFormatter $formatter, int $attribute, int|float $value): bool

Define um atributo numérico associado ao formatador. Um exemplo de atributo numérico é o número de dígitos inteiros que o formatador irá produzir.

Parâmetros

formatter

Objeto NumberFormatter.

attribute

Especificador de atributo - uma das constantes de atributo numérico.

value

O valor do atributo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de numfmt_set_attribute()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Dígitos: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Dígitos: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Dígitos: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Dígitos: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

O exemplo acima produzirá:

Dígitos: 3
1.234.567,891
Dígitos: 2
1.234.567,89

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_get_attribute() - Obtém um atributo
  • numfmt_set_text_attribute() - Define um atributo de texto


Define o padrão do formatador

  • « NumberFormatter::setAttribute
  • NumberFormatter::setSymbol »
  • PHP Manual
  • NumberFormatter
  • Define o padrão do formatador

NumberFormatter::setPattern

numfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setPattern -- numfmt_set_pattern — Define o padrão do formatador

Descrição

Estilo orientado a objetos

public NumberFormatter::setPattern(string $pattern): bool

Estilo procedural

numfmt_set_pattern(NumberFormatter $formatter, string $pattern): bool

Define o padrão a ser usado pelo formatador. Não pode ser usado em um formatador baseado em regras.

Parâmetros

formatter

Objeto NumberFormatter.

pattern

O padrão na sintaxe descrita na » Documentação DecimalFormat da ICU.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de numfmt_set_pattern()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Padrão: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Padrão: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Padrão: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Padrão: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

O exemplo acima produzirá:

Padrão: #,##0.###
1.234.567,891
Padrão: #0.# kg
1234567,9 kg

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_create() - Cria um formatador de número
  • numfmt_get_pattern() - Obtém padrão do formatador


Define um valor de símbolo

  • « NumberFormatter::setPattern
  • NumberFormatter::setTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Define um valor de símbolo

NumberFormatter::setSymbol

numfmt_set_symbol

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setSymbol -- numfmt_set_symbol — Define um valor de símbolo

Descrição

Estilo orientado a objetos

public NumberFormatter::setSymbol(int $symbol, string $value): bool

Estilo procedural

numfmt_set_symbol(NumberFormatter $formatter, int $symbol, string $value): bool

Define um símbolo associado ao formatador. O formatador usa símbolos para representar os caracteres especiais dependentes de localidade em um número, por exemplo o sinal de percentagem. Esta API não é suportada para formatadores baseados em regras.

Parâmetros

formatter

Objeto NumberFormatter.

symbol

Especificador de símbolo, uma das constantes de símbolo de formatação.

value

Texto para o símbolo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de numfmt_set_symbol()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

O exemplo acima produzirá:

Sep: .
1.234.567,891
Sep: *
1*234*567,891

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_get_symbol() - Obtém um valor de símbolo


Define um atributo de texto

  • « NumberFormatter::setSymbol
  • Locale »
  • PHP Manual
  • NumberFormatter
  • Define um atributo de texto

NumberFormatter::setTextAttribute

numfmt_set_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setTextAttribute -- numfmt_set_text_attribute — Define um atributo de texto

Descrição

Estilo orientado a objetos

public NumberFormatter::setTextAttribute(int $attribute, string $value): bool

Estilo procedural

numfmt_set_text_attribute(NumberFormatter $formatter, int $attribute, string $value): bool

Define um atributo de texto associado ao formatador. Um exemplo de um atributo de texto é o sufixo para números positivos. Se o formatador não entender o atributo, o erro U_UNSUPPORTED_ERROR é produzido. Formatadores baseados em regras somente entendem NumberFormatter::DEFAULT_RULESET e NumberFormatter::PUBLIC_RULESETS.

Parâmetros

formatter

Objeto NumberFormatter.

attribute

Especificador de atributo - uma das constantes de atributo de texto.

value

Texto para o valor do atributo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de numfmt_set_text_attribute()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefixo: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MENOS");
echo "Prefixo: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefixo: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MENOS");
echo "Prefixo: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

O exemplo acima produzirá:

Prefixo: -
-1.234.567,891
Prefixo: MENOS
MENOS1.234.567,891

Veja Também

  • numfmt_get_error_code() - Obtém o último código de erro do formatador
  • numfmt_get_text_attribute() - Obtém um atributo de texto
  • numfmt_set_attribute() - Define um atributo


A classe Locale

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Introdução

Uma "Locale" (localidade) é um identificador usado para se obter língua, cultura ou comportamento regional específico a partir de uma API. Localidades PHP são organizadas e identificadas da mesma forma que as localidades CLDR usadas pela ICU (e por muitos fornecedores de sistemas operacionais do tipo Unix, Mac, Java e assim por diante). Localidades são identificadas usando-se etiquetas de linguagem RFC 4646 (que usa hífen, e não sublinhado) em adição aos identificadores mais tradicionais que usam sublinhado. As funções desta classe são tolerantes a ambos os formatos, a não ser que seja especificado o contrário.

Exemplos de identificadores incluem:

  • en-US (Ingês, Estados Unidos)
  • zh-Hant-TW (Chinês, Tradicional, Taiwan)
  • fr-CA, fr-FR (Francês para Canadá e França respectivamente)

A classe Locale (e funções procedurais relacionadas) são usadas para interagir com identificadores de localidade--para verificar que um ID está bem formado, válido, etc. As extensões usadas pela CLDR na UAX #35 (e herdadas pela ICU) são válidas e utilizadas em qualquer lugar que seriam normalmente usadas na ICU.

A classe Locale não pode ser instanciada como objeto. Todas as funções e métodos fornecidos são estáticos.

A string nula ou vazia obtém a localidade "raiz". A localidade "raiz" é equivalente a "en_US_POSIX" na CLDR. Etiquetas de língua (e portanto identificadores de localidade) são sensíveis a maiúsculas/minúsculas. Existe uma função de canonização para fazer com que as maiúsculas/minúsculas correspondam à especificação.

Resumo da classe

class Locale {
/* Constantes */
public const int ACTUAL_LOCALE;
public const int VALID_LOCALE;
public const null DEFAULT_LOCALE = null;
public const string LANG_TAG;
public const string EXTLANG_TAG;
public const string SCRIPT_TAG;
public const string REGION_TAG;
public const string VARIANT_TAG;
public const string GRANDFATHERED_LANG_TAG;
public const string PRIVATE_TAG;
/* Métodos */
public static acceptFromHttp(string $header): string|false
public static canonicalize(string $locale): ?string
public static composeLocale(array $subtags): string|false
public static filterMatches(string $languageTag, string $locale, bool $canonicalize = false): ?bool
public static getAllVariants(string $locale): ?array
public static getDefault(): string
public static getDisplayLanguage(string $locale, ?string $displayLocale = null): string|false
public static getDisplayName(string $locale, ?string $displayLocale = null): string|false
public static getDisplayRegion(string $locale, ?string $displayLocale = null): string|false
public static getDisplayScript(string $locale, ?string $displayLocale = null): string|false
public static getDisplayVariant(string $locale, ?string $displayLocale = null): string|false
public static getKeywords(string $locale): array|false|null
public static getPrimaryLanguage(string $locale): ?string
public static getRegion(string $locale): ?string
public static getScript(string $locale): ?string
public static lookup(
array $languageTag,
string $locale,
bool $canonicalize = false,
?string $defaultLocale = null
): ?string
public static parseLocale(string $locale): ?array
public static setDefault(string $locale): bool
}

Constantes pré-definidas

Locale::DEFAULT_LOCALE
Usada como parâmetro de localidade com os métodos das várias classes afetadas por localidade, como NumberFormatter por exemplo. Esta constante faz com que os métodos utilizem a localidade padrão.

Estas constantes descrevem a escolha da localidade para o método getLocale de diferentes classes.

Locale::ACTUAL_LOCALE
Esta é a localidade de onde os dados realmente vieram.
Locale::VALID_LOCALE
Esta é a localidade mais específica suportada pela ICU.

Estas constantes definem como as localidades são analisadas ou compostas. Elas devem ser usadas como chaves no array de argumento para a função locale_compose() e são retornadas de locale_parse() como chaves do array associativo retornado.

Locale::LANG_TAG
Sub-etiqueta de língua
Locale::EXTLANG_TAG
Sub-etiqueta de língua estendida
Locale::SCRIPT_TAG
Sub-etiqueta de script
Locale::REGION_TAG
Sub-etiqueta de região
Locale::VARIANT_TAG
Sub-etiqueta de variante
Locale::GRANDFATHERED_LANG_TAG
Sub-etiqueta de idioma antigo
Locale::PRIVATE_TAG
Sub-etiqueta privada

Veja Também

  • » RFC 4646 - Etiquetas para Identificação de Línguas
  • » RFC 4647 - Correspondência de Etiquetas de Línguas
  • » Projeto CLDR Unicode: Repositório da Dados de Localidades Comuns
  • » Registro de Sub-etiquetas de Línguas IANA
  • » Guia do Usuário ICU - Localidade
  • » API de Localidade ICU

Índice

  • Locale::acceptFromHttp — Tenta descobrir a melhor localidade disponível baseado no cabeçalho HTTP "Accept-Language"
  • Locale::canonicalize — Canoniza a string de localidade
  • Locale::composeLocale — Retorna ID de localidade corretamente ordenado e delimitado
  • Locale::filterMatches — Verifica se um filtro de etiqueta de língua corresponde à localidade
  • Locale::getAllVariants — Obtém as variantes para a localidade
  • Locale::getDefault — Obtém o valor de localidade padrão da variável global de INTL 'default_locale'
  • Locale::getDisplayLanguage — Retorna um nome apropriadamente localizado para a língua da localidade
  • Locale::getDisplayName — Retorna um nome apropriadamente localizado para a localidade
  • Locale::getDisplayRegion — Retorna um nome apropriadamente localizado para a região da localidade
  • Locale::getDisplayScript — Retorna um nome apropriadamente localizado para o tipo de escrita da localidade
  • Locale::getDisplayVariant — Retorna um nome apropriadamente localizado para as variantes da localidade
  • Locale::getKeywords — Obtém as palavras-chave para a localidade
  • Locale::getPrimaryLanguage — Obtém a língua primária para a localidade
  • Locale::getRegion — Obtém a região para a localidade
  • Locale::getScript — Obtém o tipo de escrita para a localidade
  • Locale::lookup — Pesquisa a lista de etiquetas de língua pela melhor correspondência à língua
  • Locale::parseLocale — Retorna um array de chaves-valores de elementos de sub-etiquetas de ID de localidade
  • Locale::setDefault — Define a localidade padrão em tempo de execução


Tenta descobrir a melhor localidade disponível baseado no cabeçalho HTTP "Accept-Language"

  • « Locale
  • Locale::canonicalize »
  • PHP Manual
  • Locale
  • Tenta descobrir a melhor localidade disponível baseado no cabeçalho HTTP "Accept-Language"

Locale::acceptFromHttp

locale_accept_from_http

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::acceptFromHttp -- locale_accept_from_http — Tenta descobrir a melhor localidade disponível baseado no cabeçalho HTTP "Accept-Language"

Descrição

Estilo orientado a objetos

public static Locale::acceptFromHttp(string $header): string|false

Estilo procedural

locale_accept_from_http(string $header): string|false

Tenta encontrar a localidade que satisfaça a lista de línguas que é requisitada pelo cabeçalho HTTP "Accept-Language".

Parâmetros

header

A string contendo o cabeçalho "Accept-Language" de acordo com o formato RFC 2616.

Valor Retornado

O identificador de localidade correspondente.

Retorna false quendo o comprimento de header exceder INTL_MAX_LOCALE_LEN.

Exemplos

Exemplo #1 Exemplo de locale_accept_from_http()

<?php
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
?>

Exemplo #2 Exemplo OO

<?php
$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
?>

O exemplo acima produzirá:

en_US

Veja Também

  • locale_lookup() - Pesquisa a lista de etiquetas de língua pela melhor correspondência à língua


Canoniza a string de localidade

  • « Locale::acceptFromHttp
  • Locale::composeLocale »
  • PHP Manual
  • Locale
  • Canoniza a string de localidade

Locale::canonicalize

locale_canonicalize

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::canonicalize -- locale_canonicalize — Canoniza a string de localidade

Descrição

public static Locale::canonicalize(string $locale): ?string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

locale

Valor Retornado

A string de localidade canonizada.

Retorna null quando o comprimento de locale excede INTL_MAX_LOCALE_LEN.


Retorna ID de localidade corretamente ordenado e delimitado

  • « Locale::canonicalize
  • Locale::filterMatches »
  • PHP Manual
  • Locale
  • Retorna ID de localidade corretamente ordenado e delimitado

Locale::composeLocale

locale_compose

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::composeLocale -- locale_compose — Retorna ID de localidade corretamente ordenado e delimitado

Descrição

Estilo orientado a objetos

public static Locale::composeLocale(array $subtags): string|false

Estilo procedural

locale_compose(array $subtags): string|false

Retorna um ID de localidade corretamente ordenado e delimitado. As chaves identificam as sub-etiquetas de ID da localidade em particular, e os valores são associados às sub-etiquetas.

Parâmetros

subtags

Um array contendo uma lista de pares de chave-valor, onde as chaves identificam as sub-etiquetas de ID da localidade em particular, e os valores são os associados às sub-etiquetas.

Nota:

As sub-etiquetas 'variant' e 'private' suportam no máximo 15 valores enquanto que 'extlang' suporta no máximo 3. Por exemplo, variantes são permitiras com sufixo no intervalo 0-14. Por isso as chaver para o array de entrada podem ser variant0, variant1, …,variant14. No ID de localidade retornado, a sub-etiqueta é ordenada pelo sufixo resultando em variant0 seguida por variant1, seguida por variant2 e assim por diante.

Alternativamente, os valores de 'variant', 'private' e 'extlang' podem ser especificados como array sob chave específica (ex.: 'variant'). Neste caso não se aplica limite ao número de sub-etiquetas reconhecidas.

Valor Retornado

O identificador de localidade correspondente, ou false quando subtags estiver vazio.

Exemplos

Exemplo #1 Exemplo de locale_compose()

<?php
$arr = array(
'language'=>'en',
'script' =>'Hans',
'region' =>'CN',
'variant2'=>'rozaj',
'variant1'=>'nedis',
'private1'=>'prv1',
'private2'=>'prv2',
);
echo locale_compose($arr);
?>

Exemplo #2 Exemplo OO

<?php
$arr = array(
'language'=>'en' ,
'script' =>'Hans',
'region' =>'CN',
'variant2'=>'rozaj',
'variant1'=>'nedis',
'private1'=>'prv1',
'private2'=>'prv2',
);
echo Locale::composeLocale($arr);
?>

O exemplo acima produzirá:

Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2

Exemplo #3 Limites de sub-etiquetas

Se subtags são fornecidas como chaves separadas com sufixo numérico, chaves não suportadas são silenciosamente ignoradas (neste caso 'extlang3'), e ordenadas no resultado pelo sufixo numérico. Não é limites se as sub-etiquetas são informadas como array; a ordem é conforme informada.

<?php
$arr = array(
'language' => 'en',
'script' => 'Hans',
'region' => 'CN',
'extlang3' => 'd',
'extlang2' => 'c',
'extlang1' => 'b',
'extlang0' => 'a',
);
echo locale_compose($arr), PHP_EOL;

$arr = array(
'language' => 'en',
'script' => 'Hans',
'region' => 'CN',
'extlang' => ['a', 'b', 'c', 'd'],
);
echo locale_compose($arr), PHP_EOL;
?>

O exemplo acima produzirá:

en_a_b_c_Hans_CN
en_a_b_c_d_Hans_CN

Veja Também

  • locale_parse() - Retorna um array de chaves-valores de elementos de sub-etiquetas de ID de localidade


Verifica se um filtro de etiqueta de língua corresponde à localidade

  • « Locale::composeLocale
  • Locale::getAllVariants »
  • PHP Manual
  • Locale
  • Verifica se um filtro de etiqueta de língua corresponde à localidade

Locale::filterMatches

locale_filter_matches

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::filterMatches -- locale_filter_matches — Verifica se um filtro de etiqueta de língua corresponde à localidade

Descrição

Estilo orientado a objetos

public static Locale::filterMatches(string $languageTag, string $locale, bool $canonicalize = false): ?bool

Estilo procedural

locale_filter_matches(string $languageTag, string $locale, bool $canonicalize = false): ?bool

Verifica se um filtro languageTag corresponde à localidade locale de acordo com O algortimo básico de filtragem da RFC 4647.

Parâmetros

languageTag

A etiqueta de língua a ser verificada

locale

O intervalo de línguas contra o qual será feita a verificação

canonicalize

Se verdadeiro, os argumentos serão convertidos à forma canônica antes da correspondência.

Valor Retornado

true se locale corresponder a languageTag, false caso contrário.

Retorna null quando o comprimento de locale excede INTL_MAX_LOCALE_LEN.

Exemplos

Exemplo #1 Exemplo de locale_filter_matches()

<?php
echo (locale_filter_matches('de-DEVA','de-DE', false)) ? "Corresponde" : "Não corresponde";
echo '; ';
echo (locale_filter_matches('de-DE_1996','de-DE', false)) ? "Corresponde" : "Não corresponde";
?>

Exemplo #2 Exemplo OO

<?php
echo (Locale::filterMatches('de-DEVA','de-DE', false)) ? "Corresponde" : "Não corresponde";
echo '; ';
echo (Locale::filterMatches('de-DE-1996','de-DE', false)) ? "Corresponde" : "Não corresponde";
?>

O exemplo acima produzirá:

Não corresponde; Corresponde

Veja Também

  • locale_lookup() - Pesquisa a lista de etiquetas de língua pela melhor correspondência à língua


Obtém as variantes para a localidade

  • « Locale::filterMatches
  • Locale::getDefault »
  • PHP Manual
  • Locale
  • Obtém as variantes para a localidade

Locale::getAllVariants

locale_get_all_variants

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getAllVariants -- locale_get_all_variants — Obtém as variantes para a localidade

Descrição

Estilo orientado a objetos

public static Locale::getAllVariants(string $locale): ?array

Estilo procedural

locale_get_all_variants(string $locale): ?array

Obtém as variantes para a localidade.

Parâmetros

locale

A localidade da qual serão extraídas as variantes.

Valor Retornado

O array contendo a lista de todas as sub-etiquetas de variantes para a localidade ou null se não houver.

Retorna null quando o comprimento de locale excede INTL_MAX_LOCALE_LEN.

Exemplos

Exemplo #1 Exemplo de locale_get_all_variants()

<?php
$arr = locale_get_all_variants('sl_IT_NEDIS_ROJAZ_1901');
var_export( $arr );
?>

Exemplo #2 Exemplo OO

<?php
$arr = Locale::getAllVariants('sl_IT_NEDIS_ROJAZ_1901');
var_export( $arr );
?>

O exemplo acima produzirá:

array (
    0 => 'NEDIS',
    1 => 'ROJAZ',
    2 => '1901',
)

Veja Também

  • locale_get_primary_language() - Obtém a língua primária para a localidade
  • locale_get_script() - Obtém o tipo de escrita para a localidade
  • locale_get_region() - Obtém a região para a localidade


Obtém o valor de localidade padrão da variável global de INTL 'default_locale'

  • « Locale::getAllVariants
  • Locale::getDisplayLanguage »
  • PHP Manual
  • Locale
  • Obtém o valor de localidade padrão da variável global de INTL 'default_locale'

Locale::getDefault

locale_get_default

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getDefault -- locale_get_default — Obtém o valor de localidade padrão da variável global de INTL 'default_locale'

Descrição

Estilo orientado a objetos

public static Locale::getDefault(): string

Estilo procedural

locale_get_default(): string

Obtém o valor de localidade padrão. Na inicialização do PHP este valor é definido para o valor do php.ini em 'intl.default_locale' se esse valor existir ou da função da ICU, uloc_getDefault().

Parâmetros

Valor Retornado

A localidade atual em tempo de execução.

Exemplos

Exemplo #1 Exemplo de locale_get_default()

<?php
ini_set('intl.default_locale', 'de-DE');
echo locale_get_default();
echo '; ';
locale_set_default('fr');
echo locale_get_default();
?>

Exemplo #2 Exemplo OO

<?php
ini_set('intl.default_locale', 'de-DE');
echo Locale::getDefault();
echo '; ';
Locale::setDefault('fr');
echo Locale::getDefault();
?>

O exemplo acima produzirá:

de-DE; fr

Veja Também

  • locale_set_default() - Define a localidade padrão em tempo de execução


Retorna um nome apropriadamente localizado para a língua da localidade

  • « Locale::getDefault
  • Locale::getDisplayName »
  • PHP Manual
  • Locale
  • Retorna um nome apropriadamente localizado para a língua da localidade

Locale::getDisplayLanguage

locale_get_display_language

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayLanguage -- locale_get_display_language — Retorna um nome apropriadamente localizado para a língua da localidade

Descrição

Estilo orientado a objetos

public static Locale::getDisplayLanguage(string $locale, ?string $displayLocale = null): string|false

Estilo procedural

locale_get_display_language(string $locale, ?string $displayLocale = null): string|false

Retorna um nome apropriadamente localizado para a língua da localidade. Se a localidade de entrada for null, a localidade padrão será usada.

Parâmetros

locale

A localidade para a qual será mostrada a língua

displayLocale

Formato de localidade, opcional, para mostrar o nome da língua

Valor Retornado

Nome da língua para a localidade locale no formato apropriado para displayLocale, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | displayLocale agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de locale_get_display_language()

<?php
echo locale_get_display_language('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_language('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_language('sl-Latn-IT-nedis', 'de');
?>

Exemplo #2 Exemplo OO

<?php
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'de');
?>

O exemplo acima produzirá:

Slovenian;
slov\xc3\xa8ne;
Slowenisch

Veja Também

  • locale_get_display_name() - Retorna um nome apropriadamente localizado para a localidade
  • locale_get_display_script() - Retorna um nome apropriadamente localizado para o tipo de escrita da localidade
  • locale_get_display_region() - Retorna um nome apropriadamente localizado para a região da localidade
  • locale_get_display_variant() - Retorna um nome apropriadamente localizado para as variantes da localidade


Retorna um nome apropriadamente localizado para a localidade

  • « Locale::getDisplayLanguage
  • Locale::getDisplayRegion »
  • PHP Manual
  • Locale
  • Retorna um nome apropriadamente localizado para a localidade

Locale::getDisplayName

locale_get_display_name

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayName -- locale_get_display_name — Retorna um nome apropriadamente localizado para a localidade

Descrição

Estilo orientado a objetos

public static Locale::getDisplayName(string $locale, ?string $displayLocale = null): string|false

Estilo procedural

locale_get_display_name(string $locale, ?string $displayLocale = null): string|false

Retorna um nome apropriadamente localizado para a localidade. Se locale for null, a localidade padrão é usada.

Parâmetros

locale

A localidade para a qual o nome será mostrado

displayLocale

Localidade de formatação, opcional

Valor Retornado

Nome da localidade no formato apropriado para displayLocale, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | displayLocale agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de locale_get_display_name()

<?php
echo locale_get_display_name('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_name('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_name('sl-Latn-IT-nedis', 'de');
?>

Exemplo #2 Exemplo OO

<?php
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'de');
?>

O exemplo acima produzirá:

Slovenian (Latin, Italy, Natisone dialect);
slov\xc3\xa8ne (latin, Italie, dialecte de Natisone;
Slowenisch (Lateinisch, Italien, NEDIS)

Veja Também

  • locale_get_display_language() - Retorna um nome apropriadamente localizado para a língua da localidade
  • locale_get_display_script() - Retorna um nome apropriadamente localizado para o tipo de escrita da localidade
  • locale_get_display_region() - Retorna um nome apropriadamente localizado para a região da localidade
  • locale_get_display_variant() - Retorna um nome apropriadamente localizado para as variantes da localidade


Retorna um nome apropriadamente localizado para a região da localidade

  • « Locale::getDisplayName
  • Locale::getDisplayScript »
  • PHP Manual
  • Locale
  • Retorna um nome apropriadamente localizado para a região da localidade

Locale::getDisplayRegion

locale_get_display_region

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayRegion -- locale_get_display_region — Retorna um nome apropriadamente localizado para a região da localidade

Descrição

Estilo orientado a objetos

public static Locale::getDisplayRegion(string $locale, ?string $displayLocale = null): string|false

Estilo procedural

locale_get_display_region(string $locale, ?string $displayLocale = null): string|false

Retorna um nome apropriadamente localizado para a região da localidade. Se a localidade for null, a padrão é usada.

Parâmetros

locale

A localidade para a qual será retornada a região

displayLocale

Localidade de formatação, opcional, para mostrar o nome da região

Valor Retornado

O nome da região para a localidade locale no formato apropriado para displayLocale, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | displayLocale agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de locale_get_display_region()

<?php
echo locale_get_display_region('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'de');
?>

Exemplo #2 Exemplo OO

<?php
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'de');
?>

O exemplo acima produzirá:

Italy;
Italie;
Italien

Veja Também

  • locale_get_display_name() - Retorna um nome apropriadamente localizado para a localidade
  • locale_get_display_language() - Retorna um nome apropriadamente localizado para a língua da localidade
  • locale_get_display_script() - Retorna um nome apropriadamente localizado para o tipo de escrita da localidade
  • locale_get_display_variant() - Retorna um nome apropriadamente localizado para as variantes da localidade


Retorna um nome apropriadamente localizado para o tipo de escrita da localidade

  • « Locale::getDisplayRegion
  • Locale::getDisplayVariant »
  • PHP Manual
  • Locale
  • Retorna um nome apropriadamente localizado para o tipo de escrita da localidade

Locale::getDisplayScript

locale_get_display_script

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayScript -- locale_get_display_script — Retorna um nome apropriadamente localizado para o tipo de escrita da localidade

Descrição

Estilo orientado a objetos

public static Locale::getDisplayScript(string $locale, ?string $displayLocale = null): string|false

Estilo procedural

locale_get_display_script(string $locale, ?string $displayLocale = null): string|false

Retorna um nome apropriadamente localizado para o tipo de escrita da localidade. Se for null, a localidade padrão é usada.

Parâmetros

locale

A localidade para a qual será retornado o tipo de escrita

displayLocale

Localidade de formatação, opcional, para mostrar o nome do tipo de escrita

Valor Retornado

Tipo de escrita para a localidade (locale) no formato apropriado para displayLocale, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | displayLocale agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de locale_get_display_script()

<?php
echo locale_get_display_script('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_script('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_script('sl-Latn-IT-nedis', 'de');
?>

Exemplo #2 Exemplo OO

<?php
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'de');
?>

O exemplo acima produzirá:

Latin;
latin;
Lateinisch

Veja Também

  • locale_get_display_name() - Retorna um nome apropriadamente localizado para a localidade
  • locale_get_display_language() - Retorna um nome apropriadamente localizado para a língua da localidade
  • locale_get_display_region() - Retorna um nome apropriadamente localizado para a região da localidade
  • locale_get_display_variant() - Retorna um nome apropriadamente localizado para as variantes da localidade


Retorna um nome apropriadamente localizado para as variantes da localidade

  • « Locale::getDisplayScript
  • Locale::getKeywords »
  • PHP Manual
  • Locale
  • Retorna um nome apropriadamente localizado para as variantes da localidade

Locale::getDisplayVariant

locale_get_display_variant

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayVariant -- locale_get_display_variant — Retorna um nome apropriadamente localizado para as variantes da localidade

Descrição

Estilo orientado a objetos

public static Locale::getDisplayVariant(string $locale, ?string $displayLocale = null): string|false

Estilo procedural

locale_get_display_variant(string $locale, ?string $displayLocale = null): string|false

Retorna um nome apropriadamente localizado para as variantes da localidade. Se for null, a localidade padrão será usada.

Parâmetros

locale

A localidade para a qual será mostrada a variante

displayLocale

Localidade de formatação, opcional, usada para mostrar o nome da variante

Valor Retornado

Nome da variante para a localidade (locale) no formato apropriado para displayLocale, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | displayLocale agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de locale_get_display_variant()

<?php
echo locale_get_display_variant('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_variant('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_variant('sl-Latn-IT-nedis', 'de');
?>

Exemplo #2 Exemplo OO

<?php
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'de');
?>

O exemplo acima produzirá:

Natisone dialect;
dialecte de Natisone;
NEDIS

Veja Também

  • locale_get_display_name() - Retorna um nome apropriadamente localizado para a localidade
  • locale_get_display_language() - Retorna um nome apropriadamente localizado para a língua da localidade
  • locale_get_display_script() - Retorna um nome apropriadamente localizado para o tipo de escrita da localidade
  • locale_get_display_region() - Retorna um nome apropriadamente localizado para a região da localidade


Obtém as palavras-chave para a localidade

  • « Locale::getDisplayVariant
  • Locale::getPrimaryLanguage »
  • PHP Manual
  • Locale
  • Obtém as palavras-chave para a localidade

Locale::getKeywords

locale_get_keywords

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getKeywords -- locale_get_keywords — Obtém as palavras-chave para a localidade

Descrição

Estilo orientado a objetos

public static Locale::getKeywords(string $locale): array|false|null

Estilo procedural

locale_get_keywords(string $locale): array|false|null

Obtém as palavras-chave para a localidade.

Parâmetros

locale

A localidade da qual as palavras-chave serão extraídas

Valor Retornado

array associativo contendo pares chave-valor para a localidade.

Retorna null quando o comprimento de locale excede INTL_MAX_LOCALE_LEN.

Exemplos

Exemplo #1 Exemplo de locale_get_keywords()

<?php
$keywords_arr = locale_get_keywords('de_DE@currency=EUR;collation=PHONEBOOK');
if ($keywords_arr) {
foreach ($keywords_arr as $key => $value) {
echo "$key = $value\n";
}
}
?>

Exemplo #2 Exemplo OO

<?php
$keywords_arr = Locale::getKeywords('de_DE@currency=EUR;collation=PHONEBOOK');
if ($keywords_arr) {
foreach ($keywords_arr as $key => $value) {
echo "$key = $value\n";
}
}
?>

O exemplo acima produzirá:

collation = PHONEBOOK
currency = EUR

Veja Também

  • locale_get_all_variants() - Obtém as variantes para a localidade


Obtém a língua primária para a localidade

  • « Locale::getKeywords
  • Locale::getRegion »
  • PHP Manual
  • Locale
  • Obtém a língua primária para a localidade

Locale::getPrimaryLanguage

locale_get_primary_language

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getPrimaryLanguage -- locale_get_primary_language — Obtém a língua primária para a localidade

Descrição

Estilo orientado a objetos

public static Locale::getPrimaryLanguage(string $locale): ?string

Estilo procedural

locale_get_primary_language(string $locale): ?string

Obtém a língua primária para a localidade

Parâmetros

locale

A localidade da qual será extraída a língua primária

Valor Retornado

O código da língua associada com a localidade.

Retorna null quando o comprimento de locale excede INTL_MAX_LOCALE_LEN.

Exemplos

Exemplo #1 locale_get_primary_language() example

<?php
echo locale_get_primary_language('zh-Hant');
?>

Exemplo #2 Exemplo OO

<?php
echo Locale::getPrimaryLanguage('zh-Hant');
?>

O exemplo acima produzirá:

zh

Veja Também

  • locale_get_script() - Obtém o tipo de escrita para a localidade
  • locale_get_region() - Obtém a região para a localidade
  • locale_get_all_variants() - Obtém as variantes para a localidade


Obtém a região para a localidade

  • « Locale::getPrimaryLanguage
  • Locale::getScript »
  • PHP Manual
  • Locale
  • Obtém a região para a localidade

Locale::getRegion

locale_get_region

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getRegion -- locale_get_region — Obtém a região para a localidade

Descrição

Estilo orientado a objetos

public static Locale::getRegion(string $locale): ?string

Estilo procedural

locale_get_region(string $locale): ?string

Obtém a região para a localidade.

Parâmetros

locale

A localidade da qual a região será extraída.

Valor Retornado

A sub-etiqueta da região para a localidade ou null se não existir.

Retorna null quando o comprimento de locale excede INTL_MAX_LOCALE_LEN.

Exemplos

Exemplo #1 Exemplo de locale_get_region()

<?php
echo locale_get_region('de-CH-1901');
?>

Exemplo #2 Exemplo OO

<?php
echo Locale::getRegion('de-CH-1901');
?>

O exemplo acima produzirá:

CH

Veja Também

  • locale_get_primary_language() - Obtém a língua primária para a localidade
  • locale_get_script() - Obtém o tipo de escrita para a localidade
  • locale_get_all_variants() - Obtém as variantes para a localidade


Obtém o tipo de escrita para a localidade

  • « Locale::getRegion
  • Locale::lookup »
  • PHP Manual
  • Locale
  • Obtém o tipo de escrita para a localidade

Locale::getScript

locale_get_script

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::getScript -- locale_get_script — Obtém o tipo de escrita para a localidade

Descrição

Estilo orientado a objetos

public static Locale::getScript(string $locale): ?string

Estilo procedural

locale_get_script(string $locale): ?string

Obtém o tipo de escrita para a localidade.

Parâmetros

locale

A localidade da qual o tipo de escrita será extraído

Valor Retornado

A sub-etiqueta de tipo de escrita para a localidade ou null se não estiver presente.

Exemplos

Exemplo #1 Exemplo de locale_get_script()

<?php
echo locale_get_script('sr-Cyrl');
?>

Exemplo #2 Exemplo OO

<?php
echo Locale::getScript('sr-Cyrl');
?>

O exemplo acima produzirá:

Cyrl

Veja Também

  • locale_get_primary_language() - Obtém a língua primária para a localidade
  • locale_get_region() - Obtém a região para a localidade
  • locale_get_all_variants() - Obtém as variantes para a localidade


Pesquisa a lista de etiquetas de língua pela melhor correspondência à língua

  • « Locale::getScript
  • Locale::parseLocale »
  • PHP Manual
  • Locale
  • Pesquisa a lista de etiquetas de língua pela melhor correspondência à língua

Locale::lookup

locale_lookup

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookup — Pesquisa a lista de etiquetas de língua pela melhor correspondência à língua

Descrição

Estilo orientado a objetos

public static Locale::lookup(
array $languageTag,
string $locale,
bool $canonicalize = false,
?string $defaultLocale = null
): ?string

Estilo procedural

locale_lookup(
array $languageTag,
string $locale,
bool $canonicalize = false,
?string $defaultLocale = null
): ?string

Pesquisa os itens em languageTag pela melhor correspondência ao intervalo de línguas especificado em locale de acordo com o algoritmo de procura da RFC 4647.

Parâmetros

languageTag

Um array contendo uma lista de etiquetas de língua para comparar a locale. Máximo de 100 itens permitidos.

locale

A localidade a ser usada como faixa de línguas na pesquisa.

canonicalize

Se verdedeiro, os argumentos serão convertidos para a forma canônica antes de se fazer a correspondência.

defaultLocale

A localidade a ser usada se nenhuma correspondência for encontrada.

Valor Retornado

A etiqueta de língua que melhor corresponder ou o valor padrão.

Retorna null quando o comprimento de locale excede INTL_MAX_LOCALE_LEN.

Registro de Alterações

Versão | Descrição
7.4.0 | defaultLocale agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de locale_lookup()

<?php
$arr = array(
'de-DEVA',
'de-DE-1996',
'de',
'de-De'
);
echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

Exemplo #2 Exemplo OO

<?php
$arr = array(
'de-DEVA',
'de-DE-1996',
'de',
'de-De'
);
echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

O exemplo acima produzirá:

de_de_1996

Veja Também

  • locale_filter_matches() - Verifica se um filtro de etiqueta de língua corresponde à localidade


Retorna um array de chaves-valores de elementos de sub-etiquetas de ID de localidade

  • « Locale::lookup
  • Locale::setDefault »
  • PHP Manual
  • Locale
  • Retorna um array de chaves-valores de elementos de sub-etiquetas de ID de localidade

Locale::parseLocale

locale_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::parseLocale -- locale_parse — Retorna um array de chaves-valores de elementos de sub-etiquetas de ID de localidade

Descrição

Estilo orientado a objetos

public static Locale::parseLocale(string $locale): ?array

Estilo procedural

locale_parse(string $locale): ?array

Retorna um array de chaves-valores de elementos de sub-etiquetas de ID de localidade.

Parâmetros

locale

A localidade da qual será extraído o array de sub-etiquetas. Nota: as sub-etiquetas 'variant' e 'private' podem ter no máximo 15 valores enquanto que 'extlang' pode ter no máximo 3 valores.

Valor Retornado

Retorna um array contendo uma lista de pares de chave-valor, onde as chaves identificam as sub-etiquetas do ID de localidade em particular, e os valores são os associados às sub-etiquetas. O array será ordenado como nas sub-etiquetas do ID de localidade, por exemplo, se as variantes são '-varX-varY-varZ', o array retornado terá variant0=>varX, variant1=>varY, variant2=>varZ.

Retorna null quando o comprimento de locale exceder INTL_MAX_LOCALE_LEN.

Exemplos

Exemplo #1 Exemplo de locale_parse()

<?php
$arr = locale_parse('sl-Latn-IT-nedis');
if ($arr) {
foreach ($arr as $key => $value) {
echo "$key : $value , ";
}
}
?>

Exemplo #2 Exemplo OO

<?php
$arr = Locale::parseLocale('sl-Latn-IT-nedis');
if ($arr) {
foreach ($arr as $key => $value) {
echo "$key : $value , ";
}
}
?>

O exemplo acima produzirá:

language : sl , script : Latn , region : IT , variant0 : NEDIS ,

Veja Também

  • locale_compose() - Retorna ID de localidade corretamente ordenado e delimitado


Define a localidade padrão em tempo de execução

  • « Locale::parseLocale
  • Normalizer »
  • PHP Manual
  • Locale
  • Define a localidade padrão em tempo de execução

Locale::setDefault

locale_set_default

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::setDefault -- locale_set_default — Define a localidade padrão em tempo de execução

Descrição

Estilo orientado a objetos

public static Locale::setDefault(string $locale): bool

Estilo procedural

locale_set_default(string $locale): bool

Define a localidade padrão em tempo de execução para locale. Isto altera o valor do identificador de localidade global 'default_locale' da extensão INTL. Extensões UAX #35 são aceitas.

Parâmetros

locale

Uma etiqueta de localidade conforme a BCP 47.

Valor Retornado

Retorna true.

Exemplos

Exemplo #1 Exemplo de locale_set_default()

<?php
locale_set_default('de-DE');
echo locale_get_default();
?>

Exemplo #2 Exemplo OO

<?php
Locale::setDefault('de-DE');
echo Locale::getDefault();
?>

O exemplo acima produzirá:

de-DE

Veja Também

  • locale_get_default() - Obtém o valor de localidade padrão da variável global de INTL 'default_locale'


A classe Normalizer

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Introdução

Normalização é um processo que envolve transformar caracteres e sequências de caracteres em uma representação subjacente formalmente definida. Este processo é mais importante quando o texto precisa ser comparado para ordenação e pesquisa, mas também é usado ao armazenar texto para garantir que seja armazenado em uma representação consistente.

O Consórcio Unicode definiu um número de formas de normalização refletindo as várias necessidades das aplicações:

  • Forma de Normalização D (NFD) - Decomposição Canônica
  • Forma de Normalização C (NFC) - Decomposição Canônica seguida por Composição Canônica
  • Forma de Normalização KD (NFKD) - Decomposição de Compatibilidade
  • Forma de Normalização KC (NFKC) - Decomposição de Compatibilidade seguida por Composição Canônica
As diferentes formas são definidas em termos de um conjunto de transformações no texto, que são expressas por um algoritmo em por um conjunto de arquivos de dados.

Resumo da classe

class Normalizer {
/* Constantes */
public const int FORM_D;
public const int NFD;
public const int FORM_KD;
public const int NFKD;
public const int FORM_C;
public const int NFC;
public const int FORM_KC;
public const int NFKC;
public const int FORM_KC_CF;
public const int NFKC_CF;
/* Métodos */
public static getRawDecomposition(string $string, int $form = Normalizer::FORM_C): ?string
public static isNormalized(string $string, int $form = Normalizer::FORM_C): bool
public static normalize(string $string, int $form = Normalizer::FORM_C): string|false
}

Constantes pré-definidas

As seguintes constantes definem a forma de normalização usada pelo normalizador:

Normalizer::FORM_C
Forma de Normalização C (NFC) - Decomposição Canônica seguida por Composição Canônica
Normalizer::FORM_D
Forma de Normalização D (NFD) - Decomposição Canônica
Normalizer::NFD

Normalizer::FORM_KC
Forma de Normalização KC (NFKC) - Decomposição de Compatibilidade, seguida por Composição Canônica
Normalizer::NFKC

Normalizer::FORM_KC_CF

Normalizer::FORM_KD
Forma de Normalização KD (NFKD) - Decomposição de Compatibilidade
Normalizer::NFKD

Normalizer::NFC

Normalizer::NFKC_CF

Veja Também

  • » Normalização Unicode
  • » Perguntas Frequentes sobre Normalização Unicode
  • » Guia do Usuário ICU - Normalização
  • » Referência da API ICU - Normalização

Registro de Alterações

Versão | Descrição
8.0.0 | Normalizer::NONE foi removida.

Índice

  • Normalizer::getRawDecomposition — Obtém a propriedade Decomposition_Mapping para o ponto de código UTF-8 fornecido
  • Normalizer::isNormalized — Verifica se a string fornecida já está na forma normalizada na forma especificada.
  • Normalizer::normalize — Normaliza a entrada fornecida e retorna a string normalizada


Obtém a propriedade Decomposition_Mapping para o ponto de código UTF-8 fornecido

  • « Normalizer
  • Normalizer::isNormalized »
  • PHP Manual
  • Normalizer
  • Obtém a propriedade Decomposition_Mapping para o ponto de código UTF-8 fornecido

Normalizer::getRawDecomposition

normalizer_get_raw_decomposition

(PHP 7 >= 7.3, PHP 8)

Normalizer::getRawDecomposition -- normalizer_get_raw_decomposition — Obtém a propriedade Decomposition_Mapping para o ponto de código UTF-8 fornecido

Descrição

Estilo orientado a objetos

public static Normalizer::getRawDecomposition(string $string, int $form = Normalizer::FORM_C): ?string

Estilo procedural

normalizer_get_raw_decomposition(string $string, int $form = Normalizer::FORM_C): ?string

Obtém a propriedade Decomposition_Mapping, como especificada no Banco de Dados de Caracteres Unicode (UCD), para o ponto de código fornecido, codificado em UTF-8.

Parâmetros

string

A string de entrada, que deve ser um único ponto de código, codificado em UTF-8.

Valor Retornado

Retorna uma string contendo a propriedade Decomposition_Mapping, caso presente na UCD.

Retorna null se não houver propriedade Decomposition_Mapping para o caractere.

Exemplos

Exemplo #1 Exemplo de Normalizer::getRawDecomposition()

<?php

$result = "";
$strings = [
"a",
"\u{FFDA}",
"\u{FDFA}",
"",
"aa",
"\xF5",
];

foreach ($strings as $string) {
$decomposition = Normalizer::getRawDecomposition($string);
// $decomposition = normalizer_get_raw_decomposition($string); Modo procedural

$error_code = intl_get_error_code();
$error_message = intl_get_error_message();

$string_hex = bin2hex($string);
$result .= "---------------------\n";

if ($decomposition === null) {
$result .= "'$string_hex' não tem mapeamento de decomposição\n" ;
} else {
$result .= "'$string_hex' tem o mapeamento de decomposição '" . bin2hex($decomposition) . "'\n" ;
}

$result .= "informação de erro: '$error_message' ($error_code)\n";
}

echo $result;
?>

O exemplo acima produzirá:

---------------------
'61' não tem mapeamento de decomposição
informação de erro: 'U_ZERO_ERROR' (0)
---------------------
'efbf9a' tem o mapeamento de decomposição 'e385a1'
informação de erro: 'U_ZERO_ERROR' (0)
---------------------
'efb7ba' tem o mapeamento de decomposição 'd8b5d984d98920d8a7d984d984d98720d8b9d984d98ad98720d988d8b3d984d985'
informação de erro: 'U_ZERO_ERROR' (0)
---------------------
'' não tem mapeamento de decomposição
informação de erro: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
---------------------
'6161' não tem mapeamento de decomposição
informação de erro: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
---------------------
'f5' não tem mapeamento de decomposição
informação de erro: 'Code point out of range: U_ILLEGAL_ARGUMENT_ERROR' (1)

Veja Também

  • Normalizer::normalize() - Normaliza a entrada fornecida e retorna a string normalizada
  • Normalizer::isNormalized() - Verifica se a string fornecida já está na forma normalizada na forma especificada.


Verifica se a string fornecida já está na forma normalizada na forma especificada.

  • « Normalizer::getRawDecomposition
  • Normalizer::normalize »
  • PHP Manual
  • Normalizer
  • Verifica se a string fornecida já está na forma normalizada na forma especificada.

Normalizer::isNormalized

normalizer_is_normalized

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Normalizer::isNormalized -- normalizer_is_normalized — Verifica se a string fornecida já está na forma normalizada na forma especificada.

Descrição

Estilo orientado a objetos

public static Normalizer::isNormalized(string $string, int $form = Normalizer::FORM_C): bool

Estilo procedural

normalizer_is_normalized(string $string, int $form = Normalizer::FORM_C): bool

Verifica se a string fornecida já está na forma normalizada na forma especificada.

Parâmetros

string

A string de entrada para verificar a normalização

form

Uma das formas de normalização.

Valor Retornado

true se a string estiver normalizada, false caso contrário ou se houver um erro

Exemplos

Exemplo #1 Exemplo de normalizer_is_normalized()

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A"; // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( normalizer_is_normalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( normalizer_is_normalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

Exemplo #2 Exemplo orientado a objetos

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A"; // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( Normalizer::isNormalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( Normalizer::isNormalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

O exemplo acima produzirá:

not normalized; normalized

Veja Também

  • normalizer_normalize() - Normaliza a entrada fornecida e retorna a string normalizada


Normaliza a entrada fornecida e retorna a string normalizada

  • « Normalizer::isNormalized
  • MessageFormatter »
  • PHP Manual
  • Normalizer
  • Normaliza a entrada fornecida e retorna a string normalizada

Normalizer::normalize

normalizer_normalize

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Normalizer::normalize -- normalizer_normalize — Normaliza a entrada fornecida e retorna a string normalizada

Descrição

Estilo orientado a objetos

public static Normalizer::normalize(string $string, int $form = Normalizer::FORM_C): string|false

Estilo procedural

normalizer_normalize(string $string, int $form = Normalizer::FORM_C): string|false

Normaliza a entrada fornecida e retorna a string normalizada

Parâmetros

string

A string de entrada a ser normalizada

form

Uma das formas de normalização.

Valor Retornado

A string normalizada ou false se ocorrer um erro.

Exemplos

Exemplo #1 Exemplo de normalizer_normalize()

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A"; // 'COMBINING RING ABOVE' (U+030A)

$char_1 = normalizer_normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

Exemplo #2 Exemplo orientado a objetos

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A"; // 'COMBINING RING ABOVE' (U+030A)

$char_1 = Normalizer::normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

O exemplo acima produzirá:

%C3%85 %C3%85

Veja Também

  • normalizer_is_normalized() - Verifica se a string fornecida já está na forma normalizada na forma especificada.


A classe MessageFormatter

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Introdução

MessageFormatter é uma classe concreta que permite aos usuários produzir mensagens concatenadas, neutras do ponto de vista da língua. Os métodos fornecido nesta classe são usados para construir todas as mensagens que são vistas pelos usuários finais.

A classe MessageFormatter monta mensagens a partir de vários fragmentos (como fragmentos de texto, números e datas) fornecidos pelo programa. Por causa da classe MessageFormatter, o programa não precisa saber a ordem dos fragmentos. A classe usa as especificações de formatação para os fragmentos para montá-los em uma mensagem que fica contida em uma única string dentro de um pacote de recurso. Por exemplo, MessageFormatter permite mostrar a frase "Concluída a impressão de x arquivos em um total de y..." de uma maneira que ainda permita flexibilidade na tradução.

Anterioremente, uma mensagem para o usuário final era criada como uma frase e manipulada como uma string. Este procedimento criava problemas para localizadores porque a estrutura da frase, ordem de palavras, formato de números e outros mais são muito diferentes de língua para língua. A maneira neutra de criar mensagens mantém cada parte da mensagem separada e fornece chaves para os dados. Usando estas chaves, a classe MessageFormatter pode concatenar as partes da mensagem, localizá-las, e monstrar uma string bem formada ao usuário final.

MessageFormatter toma um conjunto de objetos, formata-os, e depois insere as strings formatadas no modelo nos locais apropriados. Formatos de escolha podem ser usados em conjunto com MessageFormatter para manipular plurais, fazer correspondência de números, e fazer seleção a partir de um array de itens. Tipicamente, o formato da mensagem virá de recursos e os argumentos serão definidos dinamicamente em tempo de execução.

Resumo da classe

class MessageFormatter {
/* Métodos */
public __construct(string $locale, string $pattern)
public static create(string $locale, string $pattern): ?MessageFormatter
public static formatMessage(string $locale, string $pattern, array $values): string|false
public format(array $values): string|false
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(): string
public getPattern(): string|false
public static parseMessage(string $locale, string $pattern, string $message): array|false
public parse(string $string): array|false
public setPattern(string $pattern): bool
}

Veja Também

  • » Documentação de formatação ICU
  • » Descrição de formatação de mensagens ICU
  • » Formatadores de mensagem ICU
  • » Formatadores de escolha ICU

Índice

  • MessageFormatter::create — Constrói um novo formatador de mensagem
  • MessageFormatter::formatMessage — Formata uma mensagem rapidamente
  • MessageFormatter::format — Formata a mensagem
  • MessageFormatter::getErrorCode — Obtém o código de erro da última operação
  • MessageFormatter::getErrorMessage — Obtém o texto do erro da última operação
  • MessageFormatter::getLocale — Obtém a localidade para a qual o formatador foi criado
  • MessageFormatter::getPattern — Obtém o modelo usado pelo formatador
  • MessageFormatter::parseMessage — Interpreta rapidamente a string de entrada
  • MessageFormatter::parse — Interpreta a string de entrada de acordo com o modelo
  • MessageFormatter::setPattern — Define o modelo usado pelo formatador


Constrói um novo formatador de mensagem

  • « MessageFormatter
  • MessageFormatter::formatMessage »
  • PHP Manual
  • MessageFormatter
  • Constrói um novo formatador de mensagem

MessageFormatter::create

MessageFormatter::__construct

msgfmt_create

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::create -- MessageFormatter::__construct -- msgfmt_create — Constrói um novo formatador de mensagem

Descrição

Estilo orientado a objetos (method)

public static MessageFormatter::create(string $locale, string $pattern): ?MessageFormatter

Estilo orientado a objetos (construtor):

public MessageFormatter::__construct(string $locale, string $pattern)

Estilo procedural

msgfmt_create(string $locale, string $pattern): ?MessageFormatter

Constrói um novo formatador de mensagem.

Parâmetros

locale

A localidade a ser utilizada ao formatar argumentos

pattern

A string com o modelo para formatar os argumentos. O modelo usa uma sintaxe adequada para tratar apóstrofos/aspas; consulte » Aspas/Escape para detalhes.

Valor Retornado

O formatador do tipo object, ou null em caso de falha.

Erros/Exceções

Quando invocado como construtor, em caso de falha uma exceção IntlException é lançada.

Exemplos

Exemplo #1 Exemplo de msgfmt_create()

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

O exemplo acima produzirá:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum

Veja Também

  • msgfmt_format() - Formata a mensagem
  • msgfmt_parse() - Interpreta a string de entrada de acordo com o modelo
  • msgfmt_get_error_code() - Obtém o código de erro da última operação
  • msgfmt_get_error_message() - Obtém o texto do erro da última operação


Formata uma mensagem rapidamente

  • « MessageFormatter::create
  • MessageFormatter::format »
  • PHP Manual
  • MessageFormatter
  • Formata uma mensagem rapidamente

MessageFormatter::formatMessage

msgfmt_format_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::formatMessage -- msgfmt_format_message — Formata uma mensagem rapidamente

Descrição

Estilo orientado a objetos

public static MessageFormatter::formatMessage(string $locale, string $pattern, array $values): string|false

Estilo procedural

msgfmt_format_message(string $locale, string $pattern, array $values): string|false

Função de formatação rápida que não precisa criar explicitamente o objeto formatador. Use esta função quando a operação de formatação for feita apenas uma vez, não precisar de parâmetros, não precisar manter estados ou quando for desejado customizar a saída fornecendo contexto adicional diretamente à ICU.

Parâmetros

locale

A localidade a ser utilizada para formatar as partes que dependem dela.

pattern

A string com o modelo para inserir os valores. O modelo usa uma sintaxe adequada para tratar apóstrofos/aspas; consulte » Aspas/Escape para detalhes.

values

O array de valores a inserir na string do modelo.

Valor Retornado

A string formatada de acordo com o modelo ou false se ocorrer um erro.

Exemplos

Exemplo #1 Exemplo de msgfmt_format_message()

<?php
echo msgfmt_format_message("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo msgfmt_format_message("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
echo msgfmt_format_message("en", 'You finished {place, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}!', ['place' => 3]), "\n";
echo msgfmt_format_message("en",
"There {apple, plural,
=0 {are no apples}
=1 {is one apple...}
other {are # apples!}
}",
['apple' => 0]
), "\n";

Exemplo #2 OO example

<?php
echo MessageFormatter::formatMessage("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo MessageFormatter::formatMessage("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
echo MessageFormatter::formatMessage("en", 'You finished {place, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}!', ['place' => 3]), "\n";
echo MessageFormatter::formatMessage("en",
"There {apple, plural,
=0 {are no apples}
=1 {is one apple...}
other {are # apples!}
}",
['apple' => 0]
), "\n";

O exemplo acima produzirá:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum
You finished 3rd!
There are no apples

Exemplo #3 Instruindo a ICU a formatar moeda com símbolo normal e símbolo abreviado

Requer a ICU = 67.

<?php
echo msgfmt_format_message("cs_CZ", "{0, number, :: currency/CAD}", array(123.45));
echo msgfmt_format_message("cs_CZ", "{0, number, :: currency/CAD unit-width-narrow}", array(123.45));

O exemplo acima produzirá:

123,45 CA$
123,45 $

Veja Também

  • msgfmt_create() - Constrói um novo formatador de mensagem
  • msgfmt_parse() - Interpreta a string de entrada de acordo com o modelo
  • msgfmt_get_error_code() - Obtém o código de erro da última operação
  • msgfmt_get_error_message() - Obtém o texto do erro da última operação


Formata a mensagem

  • « MessageFormatter::formatMessage
  • MessageFormatter::getErrorCode »
  • PHP Manual
  • MessageFormatter
  • Formata a mensagem

MessageFormatter::format

msgfmt_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::format -- msgfmt_format — Formata a mensagem

Descrição

Estilo orientado a objetos

public MessageFormatter::format(array $values): string|false

Estilo procedural

msgfmt_format(MessageFormatter $formatter, array $values): string|false

Formata a mensagem substituindo os dados na string de formato de acordo com as regras da localidade.

Parâmetros

formatter

O formatador de mensagem

values

Argumentos a inserir na string de formato

Valor Retornado

A string formatada, ou false se ocorrer um erro.

Exemplos

Exemplo #1 Exemplo de msgfmt_format()

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

O exemplo acima produzirá:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum

Veja Também

  • msgfmt_create() - Constrói um novo formatador de mensagem
  • msgfmt_parse() - Interpreta a string de entrada de acordo com o modelo
  • msgfmt_format_message() - Formata uma mensagem rapidamente
  • msgfmt_get_error_code() - Obtém o código de erro da última operação
  • msgfmt_get_error_message() - Obtém o texto do erro da última operação


Obtém o código de erro da última operação

  • « MessageFormatter::format
  • MessageFormatter::getErrorMessage »
  • PHP Manual
  • MessageFormatter
  • Obtém o código de erro da última operação

MessageFormatter::getErrorCode

msgfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::getErrorCode -- msgfmt_get_error_code — Obtém o código de erro da última operação

Descrição

Estilo orientado a objetos

public MessageFormatter::getErrorCode(): int

Estilo procedural

msgfmt_get_error_code(MessageFormatter $formatter): int

Obtém o código de erro da última operação.

Parâmetros

formatter

O formatador de mensagem

Valor Retornado

O código de erro, um dos valores UErrorCode. O valor inicial (sem erro) é U_ZERO_ERROR.

Veja Também

  • msgfmt_get_error_message() - Obtém o texto do erro da última operação
  • intl_get_error_code() - Obtém o último código de erro
  • intl_is_failure() - Verifica se o código de erro fornecido indica falha


Obtém o texto do erro da última operação

  • « MessageFormatter::getErrorCode
  • MessageFormatter::getLocale »
  • PHP Manual
  • MessageFormatter
  • Obtém o texto do erro da última operação

MessageFormatter::getErrorMessage

msgfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::getErrorMessage -- msgfmt_get_error_message — Obtém o texto do erro da última operação

Descrição

Estilo orientado a objetos

public MessageFormatter::getErrorMessage(): string

Estilo procedural

msgfmt_get_error_message(MessageFormatter $formatter): string

Obtém o texto do erro da última operação.

Parâmetros

formatter

O formatador de mensagem

Valor Retornado

A descrição do último erro.

Exemplos

Exemplo #1 Exemplo de msgfmt_get_error_message()

<?php
$fmt = msgfmt_create("en_US", "{0, number} monkeys on {1, number} trees");
$str = msgfmt_format($fmt, array());
if(!$str) {
echo "ERROR: ".msgfmt_get_error_message($fmt) . " (" . msgfmt_get_error_code($fmt) . ")\n";
}
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new MessageFormatter("en_US", "{0, number} monkeys on {1, number} trees");
$str = $fmt->format(array());
if(!$str) {
echo "ERROR: ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}
?>

O exemplo acima produzirá:

ERROR: msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

Veja Também

  • msgfmt_get_error_code() - Obtém o código de erro da última operação
  • intl_get_error_code() - Obtém o último código de erro
  • intl_is_failure() - Verifica se o código de erro fornecido indica falha


Obtém a localidade para a qual o formatador foi criado

  • « MessageFormatter::getErrorMessage
  • MessageFormatter::getPattern »
  • PHP Manual
  • MessageFormatter
  • Obtém a localidade para a qual o formatador foi criado

MessageFormatter::getLocale

msgfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::getLocale -- msgfmt_get_locale — Obtém a localidade para a qual o formatador foi criado

Descrição

Estilo orientado a objetos

public MessageFormatter::getLocale(): string

Estilo procedural

msgfmt_get_locale(MessageFormatter $formatter): string

Obtém a localidade para a qual o formatador foi criado.

Parâmetros

formatter

O formatador de mensagem

Valor Retornado

O nome da localidade.

Exemplos

Exemplo #1 Exemplo de msgfmt_get_locale()

<?php
$fmt = msgfmt_create('en_US', "Number {0,number}");
echo msgfmt_get_locale($fmt);
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new MessageFormatter('en_US', "Number {0,number}");
echo $fmt->getLocale();
?>

O exemplo acima produzirá:

en_US

Veja Também

  • msgfmt_create() - Constrói um novo formatador de mensagem


Obtém o modelo usado pelo formatador

  • « MessageFormatter::getLocale
  • MessageFormatter::parseMessage »
  • PHP Manual
  • MessageFormatter
  • Obtém o modelo usado pelo formatador

MessageFormatter::getPattern

msgfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::getPattern -- msgfmt_get_pattern — Obtém o modelo usado pelo formatador

Descrição

Estilo orientado a objetos

public MessageFormatter::getPattern(): string|false

Estilo procedural

msgfmt_get_pattern(MessageFormatter $formatter): string|false

Obtém o modelo usado pelo formatador.

Parâmetros

formatter

O formatador de mensagem

Valor Retornado

A string de modelo usada para o formatador de mensagem, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de msgfmt_get_pattern()

<?php
$fmt = msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Modelo atual: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Resultado da formatação: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo "Novo modelo: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Número formatado: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Modelo atual: '" . $fmt->getPattern() . "'\n";
echo "Resultado da formatação: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo "Novo modelo: '" . $fmt->getPattern() . "'\n";
echo "Número formatado: " . $fmt->format(array(123, 456)) . "\n";
?>

O exemplo acima produzirá:

Modelo atual: '{0,number} monkeys on {1,number} trees'
Resultado da formatação: 123 monkeys on 456 trees
Novo modelo: '{0,number} trees hosting {1,number} monkeys'
Número formatado: 123 trees hosting 456 monkeys

Veja Também

  • msgfmt_create() - Constrói um novo formatador de mensagem
  • msgfmt_set_pattern() - Define o modelo usado pelo formatador


Interpreta rapidamente a string de entrada

  • « MessageFormatter::getPattern
  • MessageFormatter::parse »
  • PHP Manual
  • MessageFormatter
  • Interpreta rapidamente a string de entrada

MessageFormatter::parseMessage

msgfmt_parse_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::parseMessage -- msgfmt_parse_message — Interpreta rapidamente a string de entrada

Descrição

Estilo orientado a objetos

public static MessageFormatter::parseMessage(string $locale, string $pattern, string $message): array|false

Estilo procedural

msgfmt_parse_message(string $locale, string $pattern, string $message): array|false

Interpreta a string de entrada sem criar explicitamente o objeto formatador. Use esta função quando a operação de formatação é feita apenas uma vez e não precisa de parâmetros ou de manter estados.

Parâmetros

locale

A localidade a ser usada para interpretação das partes que dependem dela.

pattern

O modelo com o qual o parâmetro message será interpretado.

message

A string a ser interpretada, conforme definido em pattern.

Valor Retornado

Um array contendo os itens extraídos, ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de msgfmt_parse_message()

<?php
$fmt = msgfmt_parse_message('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
"4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);

$fmt = msgfmt_parse_message('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum",
"4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
var_export($fmt);
?>

Exemplo #2 Exemplo OO

<?php
$fmt = MessageFormatter::parseMessage('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
"4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);

$fmt = MessageFormatter::parseMessage('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum",
"4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
var_export($fmt);
?>

O exemplo acima produzirá:

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Veja Também

  • msgfmt_create() - Constrói um novo formatador de mensagem
  • msgfmt_format_message() - Formata uma mensagem rapidamente
  • msgfmt_parse() - Interpreta a string de entrada de acordo com o modelo


Interpreta a string de entrada de acordo com o modelo

  • « MessageFormatter::parseMessage
  • MessageFormatter::setPattern »
  • PHP Manual
  • MessageFormatter
  • Interpreta a string de entrada de acordo com o modelo

MessageFormatter::parse

msgfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::parse -- msgfmt_parse — Interpreta a string de entrada de acordo com o modelo

Descrição

Estilo orientado a objetos

public MessageFormatter::parse(string $string): array|false

Estilo procedural

msgfmt_parse(MessageFormatter $formatter, string $string): array|false

Interpreta a string de entrada e retorna os itens extraídos como um array.

Parâmetros

formatter

O formatador de mensagem

string

A string a ser interpretada

Valor Retornado

Um array contendo os itens extraídos, ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de msgfmt_parse()

<?php
$fmt = msgfmt_create('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
$res = msgfmt_parse($fmt, "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($res);

$fmt = msgfmt_create('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
$res = msgfmt_parse($fmt, "4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
var_export($res);
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new MessageFormatter('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
$res = $fmt->parse("4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($res);

$fmt = new MessageFormatter('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
$res = $fmt->parse("4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
var_export($res);
?>

O exemplo acima produzirá:

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Veja Também

  • msgfmt_create() - Constrói um novo formatador de mensagem
  • msgfmt_format() - Formata a mensagem
  • msgfmt_parse_message() - Interpreta rapidamente a string de entrada


Define o modelo usado pelo formatador

  • « MessageFormatter::parse
  • IntlCalendar »
  • PHP Manual
  • MessageFormatter
  • Define o modelo usado pelo formatador

MessageFormatter::setPattern

msgfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::setPattern -- msgfmt_set_pattern — Define o modelo usado pelo formatador

Descrição

Estilo orientado a objetos

public MessageFormatter::setPattern(string $pattern): bool

Estilo procedural

msgfmt_set_pattern(MessageFormatter $formatter, string $pattern): bool

Define o modelo a ser usado pelo formatador.

Parâmetros

formatter

O formatador de mensagem

pattern

A string com o modelo a ser usado no formatador. O modelo usa uma sintaxe adequada para tratar apóstrofos/aspas; consulte » Aspas/Escape para detalhes.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de msgfmt_set_pattern()

<?php
$fmt = msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Modelo atual: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Resultado da formatação: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo "Novo modelo: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Número formatado: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Exemplo #2 OO example

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Modelo atual: '" . $fmt->getPattern() . "'\n";
echo "Resultado da formatação: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo "Novo modelo: '" . $fmt->getPattern() . "'\n";
echo "Número formatado: " . $fmt->format(array(123, 456)) . "\n";
?>

O exemplo acima produzirá:

Modelo atual: '{0,number} monkeys on {1,number} trees'
Resultado da formatação: 123 monkeys on 456 trees
Novo modelo: '{0,number} trees hosting {1,number} monkeys'
Número formatado: 123 trees hosting 456 monkeys

Veja Também

  • msgfmt_create() - Constrói um novo formatador de mensagem
  • msgfmt_get_pattern() - Obtém o modelo usado pelo formatador


A classe IntlCalendar

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

Introdução

Resumo da classe

class IntlCalendar {
/* Constantes */
public const int FIELD_ERA;
public const int FIELD_YEAR;
public const int FIELD_MONTH;
public const int FIELD_WEEK_OF_YEAR;
public const int FIELD_WEEK_OF_MONTH;
public const int FIELD_DATE;
public const int FIELD_DAY_OF_YEAR;
public const int FIELD_DAY_OF_WEEK;
public const int FIELD_DAY_OF_WEEK_IN_MONTH;
public const int FIELD_AM_PM;
public const int FIELD_HOUR;
public const int FIELD_HOUR_OF_DAY;
public const int FIELD_MINUTE;
public const int FIELD_SECOND;
public const int FIELD_MILLISECOND;
public const int FIELD_ZONE_OFFSET;
public const int FIELD_DST_OFFSET;
public const int FIELD_YEAR_WOY;
public const int FIELD_DOW_LOCAL;
public const int FIELD_EXTENDED_YEAR;
public const int FIELD_JULIAN_DAY;
public const int FIELD_MILLISECONDS_IN_DAY;
public const int FIELD_IS_LEAP_MONTH;
public const int FIELD_FIELD_COUNT;
public const int FIELD_DAY_OF_MONTH;
public const int DOW_SUNDAY;
public const int DOW_MONDAY;
public const int DOW_TUESDAY;
public const int DOW_WEDNESDAY;
public const int DOW_THURSDAY;
public const int DOW_FRIDAY;
public const int DOW_SATURDAY;
public const int DOW_TYPE_WEEKDAY;
public const int DOW_TYPE_WEEKEND;
public const int DOW_TYPE_WEEKEND_OFFSET;
public const int DOW_TYPE_WEEKEND_CEASE;
public const int WALLTIME_FIRST;
public const int WALLTIME_LAST;
public const int WALLTIME_NEXT_VALID;
/* Métodos */
private __construct()
public add(int $field, int $value): bool
public after(IntlCalendar $other): bool
public before(IntlCalendar $other): bool
public clear(?int $field = null): true
public static createInstance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar
public equals(IntlCalendar $other): bool
public fieldDifference(float $timestamp, int $field): int|false
public static fromDateTime(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar
public get(int $field): int|false
public getActualMaximum(int $field): int|false
public getActualMinimum(int $field): int|false
public static getAvailableLocales(): array
public getDayOfWeekType(int $dayOfWeek): int|false
public getErrorCode(): int|false
public getErrorMessage(): string|false
public getFirstDayOfWeek(): int|false
public getGreatestMinimum(int $field): int|false
public static getKeywordValuesForLocale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false
public getLeastMaximum(int $field): int|false
public getLocale(int $type): string|false
public getMaximum(int $field): int|false
public getMinimalDaysInFirstWeek(): int|false
public getMinimum(int $field): int|false
public static getNow(): float
public getRepeatedWallTimeOption(): int
public getSkippedWallTimeOption(): int
public getTime(): float|false
public getTimeZone(): IntlTimeZone|false
public getType(): string
public getWeekendTransition(int $dayOfWeek): int|false
public inDaylightTime(): bool
public isEquivalentTo(IntlCalendar $other): bool
public isLenient(): bool
public isSet(int $field): bool
public isWeekend(?float $timestamp = null): bool
public roll(int $field, int|bool $value): bool
public set(int $field, int $value): true
public set(
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): true
public setDate(int $year, int $month, int $dayOfMonth): void
public setDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
?int $second = null
): void
public setFirstDayOfWeek(int $dayOfWeek): true
public setLenient(bool $lenient): true
public setMinimalDaysInFirstWeek(int $days): true
public setRepeatedWallTimeOption(int $option): true
public setSkippedWallTimeOption(int $option): true
public setTime(float $timestamp): bool
public setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool
public toDateTime(): DateTime|false
}

Constantes pré-definidas

IntlCalendar::FIELD_ERA

Campo de calendário que representa uma era numericamente, por exemplo 1 para DC e 0 para AC nos calendários gregorianos/julianos e 235 para a era Heisei (??) no calendário japonês. Nem todos os calendários têm mais de uma era.

IntlCalendar::FIELD_YEAR

Campo de calendário para o ano. Isto não é único através das eras. Se o tipo do calendário tem mais que uma era, geralmente o valor mínimo para este campo será 1.

IntlCalendar::FIELD_MONTH

Campo de calendário para o mês. A sequência de meses é baseada em zero, portanto janeiro (aqui usado com o significado do primeiro mês do calendário; mas pode ser chamado outro nome, como Moarrão no calendário islâmico) é representado por 0, fevereiro por 1, …, dezembro por 11 e, para calendários que o têm, o 13º ou mês adicional por 12.

IntlCalendar::FIELD_WEEK_OF_YEAR

Campo de calendário para o número da semana no ano. Isto depende de que dia da semana é definido para começar a semana e o número mínimo de dias em uma semana.

IntlCalendar::FIELD_WEEK_OF_MONTH

Campo de calendário para o número da semana no mês. Isto depende de que dia da semana é definido para começar a semana e o número mínimo de dias em uma semana.

IntlCalendar::FIELD_DATE

Campo de calendário para o dia do mês. O mesmo que IntlCalendar::FIELD_DAY_OF_MONTH, que tem um nome mais claro.

IntlCalendar::FIELD_DAY_OF_YEAR

Campo de calendário para o dia no ano. Para o calendário gregoriano, começa com 1 e termina com 365 ou 366.

IntlCalendar::FIELD_DAY_OF_WEEK

Campo de calendário para o dia da semana. Seus valores começam com 1 (domingo, consulte IntlCalendar::DOW_SUNDAY e constantes subsequentes) e o último valor válido é 7 (sábado).

IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH

Dado um dia da semana (domingo, segunda-feira, …), este campo de calendário atribui um ordinal ao dia da semana em um mês específico. Portanto, se o valor deste campo for 1 e o valor do dia da semana for 2 (segunda-feira), o dia do mês será a 1ª segunda-feira do mês; o valor máximo é 5.

Adicionalmente, o valor 0 e números negativos também são permitidos. O valor 0 abrange os sete dias que ocorrem imediatamente antes dos primeiros sete dias de um mês (que por sua vez têm o ‘dia da semana no mês’ com valor 1). Valores negativos começam a contagem do final do mês – -1 aponta para a última ocorrência de um dia da semana em um mês, -2 para a penúltima, e assim por diante.

Diferentemente de IntlCalendar::FIELD_WEEK_OF_MONTH e IntlCalendar::FIELD_WEEK_OF_YEAR, este valor não depende de IntlCalendar::getFirstDayOfWeek() ou de IntlCalendar::getMinimalDaysInFirstWeek(). A primeira segunda-feira é a primeira segunda-feira, mesmo se ela ocorrer em uma semana que pertença ao mês anterior.

IntlCalendar::FIELD_AM_PM

Campo de calendário que indica se um horário é antes de meio-dia (valor 0, a.m.) ou depois (1). Meia-noite é a.m., meio-dia é p.m..

IntlCalendar::FIELD_HOUR

Campo de calendário para a hora, sem especificar se é antes ou depois do meio-dia. Valores válidos são 0 a 11.

IntlCalendar::FIELD_HOUR_OF_DAY

Campo de calendário para as horas integrais do dia (24h). Valores válidos são 0 a 23.

IntlCalendar::FIELD_MINUTE

Campo de calendário para o componente de minutos do horário.

IntlCalendar::FIELD_SECOND

Campo de calendário para o componente de segundos do horário.

IntlCalendar::FIELD_MILLISECOND

Campo de calendário para o componente de milissegundos do horário.

IntlCalendar::FIELD_ZONE_OFFSET

Campo de calendário que indica o deslocamento puro do fuso horário, em milissegundos. O deslocamento puro é o deslocamento do fuso horário, excluindo qualquer deslocamento devido a horário de verão.

IntlCalendar::FIELD_DST_OFFSET

Campo de calendário para o deslocamento de horário de verão do fuso horário do calendário, em milissegundos, se ativo para o horário do calendário.

IntlCalendar::FIELD_YEAR_WOY

Campo de calendário que represente o ano para propósito de semana do ano

IntlCalendar::FIELD_DOW_LOCAL

Campo de calendário para o dia da semana da localidade. Este é um valor entre 1 e 7, 1 é usado para o dia da semana que corresponde ao valor retornado por IntlCalendar::getFirstDayOfWeek().

IntlCalendar::FIELD_EXTENDED_YEAR

Campo de calendário para uma representação numérica do ano que é contínua através das eras. Para o calendário gregoriano, o valor deste campo corresponde ao de IntlCalendar::FIELD_YEAR para anos DC; um ano AC y é representando por -y + 1.

IntlCalendar::FIELD_JULIAN_DAY

Campo de calendário para um número de dia juliano modificado. É diferente de um número de dia juliano convencional pois sua transição ocorre à meia-noite do fuso horário local ao invés da meia-noite UTC. Identifica unicamente uma data.

IntlCalendar::FIELD_MILLISECONDS_IN_DAY

Campo de calendário que abrange a informação em IntlCalendar::FIELD_HOUR_OF_DAY, IntlCalendar::FIELD_MINUTE, IntlCalendar::FIELD_SECOND and IntlCalendar::FIELD_MILLISECOND. O intervalor é de 0 a 24 * 3600 * 1000 - 1. Não é a quantidade de milissegundos decorridos no dia pois em transições de horário de verão haverá descontinuidades análogas àquelas do horário do relógio de parede.

IntlCalendar::FIELD_IS_LEAP_MONTH

Campo de calendário cujo valor é 1 para indicar um mês adicional e 0 caso contrário.

IntlCalendar::FIELD_FIELD_COUNT

O número total de campos.

IntlCalendar::FIELD_DAY_OF_MONTH

Apelido para IntlCalendar::FIELD_DATE.

IntlCalendar::DOW_SUNDAY

Domingo.

IntlCalendar::DOW_MONDAY

Segunda-feira.

IntlCalendar::DOW_TUESDAY

Terça-feira.

IntlCalendar::DOW_WEDNESDAY

Quarta-feira.

IntlCalendar::DOW_THURSDAY

Quinta-feira.

IntlCalendar::DOW_FRIDAY

Sexta-feira.

IntlCalendar::DOW_SATURDAY

Sábado.

IntlCalendar::DOW_TYPE_WEEKDAY

Saída de IntlCalendar::getDayOfWeekType() que indica se o dia é um dia da semana (e não do final de semana).

IntlCalendar::DOW_TYPE_WEEKEND

Saída de IntlCalendar::getDayOfWeekType() que indica se o dia pertence ao final de semana.

IntlCalendar::DOW_TYPE_WEEKEND_OFFSET

Saída de IntlCalendar::getDayOfWeekType() que indica que o final de semana começa no dia da semana informado.

IntlCalendar::DOW_TYPE_WEEKEND_CEASE

Saída de IntlCalendar::getDayOfWeekType() que indica que o final de semana termina no dia da semana informado.

IntlCalendar::WALLTIME_FIRST

Saída de IntlCalendar::getSkippedWallTimeOption() que indica que o horário de relógio na faixa pulada deve se referir ao mesmo instante que o relógio com uma hora a menos; e a saída de IntlCalendar::getRepeatedWallTimeOption() que indica que o horário do relógio na faixa repetida deve se referir ao instante da primeira ocorrência do horário em questão.

IntlCalendar::WALLTIME_LAST

Saída de IntlCalendar::getSkippedWallTimeOption() que indica que o horário de relógio na faixa pulada deve se referir ao mesmo instante que o relógio com uma hora a mais; e a saída de IntlCalendar::getRepeatedWallTimeOption() que indica que o horário do relógio na faixa repetida deve se referir ao instante da segunda ocorrência do horário em questão.

IntlCalendar::WALLTIME_NEXT_VALID

Saída de IntlCalendar::getSkippedWallTimeOption() que indica que o horário de relógio na faixa pulada deve se referir ao intante em que a transição de horário de verão ocorre (inicia).

Índice

  • IntlCalendar::add — Adiciona uma quantidade de tempo (com sinal) a um campo
  • IntlCalendar::after — Informa se o instante de tempo deste objeto é posterior ao instante do objeto passado
  • IntlCalendar::before — Informa se o instante de tempo deste objeto é anterior ao instante do objeto passado
  • IntlCalendar::clear — Limpa um campo ou todos os campos
  • IntlCalendar::__construct — Construtor privado para não permitir instanciação
  • IntlCalendar::createInstance — Cria um novo IntlCalendar
  • IntlCalendar::equals — Compara horários de dois objetos IntlCalendar para igualidade
  • IntlCalendar::fieldDifference — Calcula a diferença entre o horário fornecido e o horário deste objeto
  • IntlCalendar::fromDateTime — Cria um IntlCalendar a partir de um objeto DateTime ou uma string
  • IntlCalendar::get — Obtém o valor de um campo
  • IntlCalendar::getActualMaximum — O valor máximo para um campo, considerando o horário atual do objeto
  • IntlCalendar::getActualMinimum — O valor mínimo para um campo, considerando o horário atual do objeto
  • IntlCalendar::getAvailableLocales — Obtém um array de localidades para as quais existem dados
  • IntlCalendar::getDayOfWeekType — Informa se o dia é dia de semana, de final de semana ou de transição entre os dois
  • IntlCalendar::getErrorCode — Obtém o último código de erro no objeto
  • IntlCalendar::getErrorMessage — Obtém a última mensagem de erro no objeto
  • IntlCalendar::getFirstDayOfWeek — Obtém o primeiro dia da semana para a localidade do calendário
  • IntlCalendar::getGreatestMinimum — Obtém o maior valor mínimo local para um campo
  • IntlCalendar::getKeywordValuesForLocale — Obtém um conjunto de valores de palavras-chaves de localidade
  • IntlCalendar::getLeastMaximum — Obtém o menor máximo local para um campo
  • IntlCalendar::getLocale — Obtém a localidade associada com o objeto
  • IntlCalendar::getMaximum — Obtém o valor máximo global para um campo
  • IntlCalendar::getMinimalDaysInFirstWeek — Obtém o número mínimo de dias que a primeira semana do ano ou do mês pode ter
  • IntlCalendar::getMinimum — Obtém o mínimo global para um campo
  • IntlCalendar::getNow — Get number representing the current time
  • IntlCalendar::getRepeatedWallTimeOption — Obtém o comportamento ao lidar com o horário de relógio repetido
  • IntlCalendar::getSkippedWallTimeOption — Obtém o comportamento para o horário de relógio saltado
  • IntlCalendar::getTime — Obtém o horário atualmente representado pelo objeto
  • IntlCalendar::getTimeZone — Obtém o fuso horário do objeto
  • IntlCalendar::getType — Obtém o tipo de calendário
  • IntlCalendar::getWeekendTransition — Obtém o horário do dia no qual o final de semana inicia ou termina
  • IntlCalendar::inDaylightTime — Whether the object's time is in Daylight Savings Time
  • IntlCalendar::isEquivalentTo — Verifica se outro calendário é igual exceto pelo horário
  • IntlCalendar::isLenient — Verifica se a interpretação de data/horário está no modo leniente
  • IntlCalendar::isSet — Verifica se um campo está definido
  • IntlCalendar::isWeekend — Verifica se uma data e um horário estão no final de semana
  • IntlCalendar::roll — Adiciona valor ao campo sem transferir para campos mais significativos
  • IntlCalendar::set — Define um campo de horário ou vários campos comuns de uma vez
  • IntlCalendar::setDate — Define campos de data
  • IntlCalendar::setDateTime — Define campos de data e horário
  • IntlCalendar::setFirstDayOfWeek — Define o dia da semana no qual a semana inicia
  • IntlCalendar::setLenient — Define se a interpretação de data/horário deve ser leniente
  • IntlCalendar::setMinimalDaysInFirstWeek — Define o número mínimo de dias que a primeira semana do ano ou do mês pode ter
  • IntlCalendar::setRepeatedWallTimeOption — Define o comportamento ao lidar com horário de relógio repetido ao sair do horário de verão
  • IntlCalendar::setSkippedWallTimeOption — Define o comportamento ao lidar com horário de relógio saltado ao entrar no horário de verão
  • IntlCalendar::setTime — Define o horário do calendário em milissegundos desde a época de referência
  • IntlCalendar::setTimeZone — Define o fuso horário usado por este calendário
  • IntlCalendar::toDateTime — Converte um objeto IntlCalendar para um DateTime


Adiciona uma quantidade de tempo (com sinal) a um campo

  • « IntlCalendar
  • IntlCalendar::after »
  • PHP Manual
  • IntlCalendar
  • Adiciona uma quantidade de tempo (com sinal) a um campo

IntlCalendar::add

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::add — Adiciona uma quantidade de tempo (com sinal) a um campo

Descrição

Estilo orientado a objetos

public IntlCalendar::add(int $field, int $value): bool

Estilo procedural

intlcal_add(IntlCalendar $calendar, int $field, int $value): bool

Adiciona uma quantidade de tempo com sinal a um campo. Adicionar uma quantidade positiva permite avançar no tempo, mesmo se o valor numérico do campo diminua (por exemplo, ao trabalhar com anos em datas AC).

Outros campos podem precisar de ajuste – por exemplo, adicionar um mês a 31 de janeiro irá resultar em 28 (ou 29) de fevereiro. Contrário ao que ocorre em IntlCalendar::roll(), quando um valor passa do limite, mais campos significativos podem ser alterados. Por exemplo, adicionar um dia a 31 de janeiro irá resultar em 1º de fevereiro, e não em 1º de janeiro.

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

value

A quantidade com sinal a ser adicionada ao campo atual. Se a quantidade for positiva, o instantes de tempo será movido para a frente; se for negativa, o instante será movido para o passado. A unidade é implícita ao tipo do campo. Por exemplo, horas para IntlCalendar::FIELD_HOUR_OF_DAY.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::add()

<?php
ini_set('intl.default_locale', 'fr_FR');
ini_set('date.timezone', 'UTC');

$cal = new IntlGregorianCalendar(2012, 0 /* janeiro */, 31);
echo IntlDateFormatter::formatObject($cal), "\n";

$cal->add(IntlCalendar::FIELD_MONTH, 1);
echo IntlDateFormatter::formatObject($cal), "\n";

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
echo IntlDateFormatter::formatObject($cal), "\n";

O exemplo acima produzirá:

31 janv. 2012 00:00:00
29 févr. 2012 00:00:00
1 mars 2012 00:00:00


Informa se o instante de tempo deste objeto é posterior ao instante do objeto passado

  • « IntlCalendar::add
  • IntlCalendar::before »
  • PHP Manual
  • IntlCalendar
  • Informa se o instante de tempo deste objeto é posterior ao instante do objeto passado

IntlCalendar::after

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::after — Informa se o instante de tempo deste objeto é posterior ao instante do objeto passado

Descrição

Estilo orientado a objetos

public IntlCalendar::after(IntlCalendar $other): bool

Estilo procedural

intlcal_after(IntlCalendar $calendar, IntlCalendar $other): bool

Retorna se o instante de tempo deste objeto sucede o instante do argumento.

Parâmetros

calendar

Uma instância de IntlCalendar.

other

O calendário cujo instante será verificado em relação ao instante do objeto primário.

Valor Retornado

Retorna true se o instante deste objeto for posterior ao do argumento calendar. Retorna false caso contrário.

Em caso de falha, false também é retornado. Para detectar condições de erro, use intl_get_error_code() ou configure Intl para lançar exceções.

Exemplos

Exemplo #1 IntlCalendar::after()

<?php
$cal1 = IntlCalendar::createInstance();
$cal2 = clone $cal1;

var_dump($cal1->after($cal2), // falso
$cal2->after($cal1)); // falso

$cal1->roll(IntlCalendar::FIELD_MILLISECOND, true);

var_dump($cal1->after($cal2), // verdadeiro
$cal2->after($cal1)); // falso


Informa se o instante de tempo deste objeto é anterior ao instante do objeto passado

  • « IntlCalendar::after
  • IntlCalendar::clear »
  • PHP Manual
  • IntlCalendar
  • Informa se o instante de tempo deste objeto é anterior ao instante do objeto passado

IntlCalendar::before

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::before — Informa se o instante de tempo deste objeto é anterior ao instante do objeto passado

Descrição

Estilo orientado a objetos

public IntlCalendar::before(IntlCalendar $other): bool

Estilo procedural

intlcal_before(IntlCalendar $calendar, IntlCalendar $other): bool

Retorna se o instante de tempo deste objeto precede o instante do argumento.

Parâmetros

calendar

Uma instância de IntlCalendar.

other

O calendário cujo instante será verificado em relação ao instante do objeto primário.

Valor Retornado

Retorna true se o instante deste objeto for anterior ao do argumento calendar. Retorna false caso contrário.

Em caso de falha, false também é retornado. Para detectar condições de erro, use intl_get_error_code() ou configure Intl para lançar exceções.


Limpa um campo ou todos os campos

  • « IntlCalendar::before
  • IntlCalendar::__construct »
  • PHP Manual
  • IntlCalendar
  • Limpa um campo ou todos os campos

IntlCalendar::clear

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::clear — Limpa um campo ou todos os campos

Descrição

Estilo orientado a objetos

public IntlCalendar::clear(?int $field = null): true

Estilo procedural

intlcal_clear(IntlCalendar $calendar, ?int $field = null): true

Limpa todos os campos ou um campo específico. Um campo limpo é marcado como indefinido, dando a ele a menor prioridade em relação a campos sobrepostos ou mesmo a valores padrões ao calcular o instante de tempo. Adicionalmente, seu valor é definido para 0, embora devido à baixa prioridade do campo, seu valor poderá ter sido definido internamente para outro valor no momento que o campo tenha terminado de ser consultado.

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplos de IntlCalendar::clear()

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'UTC');

$fields = array(
'FIELD_ERA' => 0,
'FIELD_YEAR' => 1,
'FIELD_MONTH' => 2,
'FIELD_WEEK_OF_YEAR' => 3,
'FIELD_WEEK_OF_MONTH' => 4,
'FIELD_DATE' => 5,
'FIELD_DAY_OF_YEAR' => 6,
'FIELD_DAY_OF_WEEK' => 7,
'FIELD_DAY_OF_WEEK_IN_MONTH' => 8,
'FIELD_AM_PM' => 9,
'FIELD_HOUR' => 10,
'FIELD_HOUR_OF_DAY' => 11,
'FIELD_MINUTE' => 12,
'FIELD_SECOND' => 13,
'FIELD_MILLISECOND' => 14,
'FIELD_ZONE_OFFSET' => 15,
'FIELD_DST_OFFSET' => 16,
'FIELD_YEAR_WOY' => 17,
'FIELD_DOW_LOCAL' => 18,
'FIELD_EXTENDED_YEAR' => 19,
'FIELD_JULIAN_DAY' => 20,
'FIELD_MILLISECONDS_IN_DAY' => 21,
'FIELD_IS_LEAP_MONTH' => 22,
'FIELD_FIELD_COUNT' => 23,
);
function getSetFields(IntlCalendar $cal) {
global $fields;
$ret = array();
foreach ($fields as $name => $value) {
if ($cal->isSet($value)) {
$ret[] = $name;
}
}
return $ret;
}

$cal = new IntlGregorianCalendar(2013, 2 /* março */, 15);
echo "Depois da criação do calendário gregoriano\n";
print_r(getSetFields($cal));
echo "\n";

echo IntlDateFormatter::formatObject($cal), "\n";
echo "Depois do formatador requisitar o ano estendido\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear(IntlCalendar::FIELD_YEAR);
echo "Depois do ano ter sido limpo, a data fica a mesma\n";
echo IntlDateFormatter::formatObject($cal), "\n";
echo "porque FIELD_EXTENDED_YEAR ainda está definida\n";
print_r(getSetFields($cal));
echo "\n";

var_dump($cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR));
echo "Depois que o ano estendido foi limpo\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";
echo "\n";

echo "Depois que os campos são recalculados,\n"
. " o ano estendido é definido novamente (para 1970)\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear();
echo "Depois de chamar a variante sem argumentos\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";

O exemplo acima produzirá:

Depois da criação do calendário gregoriano
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
)

15/03/2013 00:00:00
Depois do formatador requisitar o ano estendido
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
    [4] => FIELD_EXTENDED_YEAR
)

Depois do ano ter sido limpo, a data fica a mesma
15/03/2013 00:00:00
porque FIELD_EXTENDED_YEAR ainda está definida
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

bool(true)
Depois que o ano estendido foi limpo
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
)
15/03/1970 00:00:00

Depois que os campos são recalculados,
 o ano estendido é definido novamente (para 1970)
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

Depois de chamar a variante sem argumentos
Array
(
)
01/01/1970 00:00:00


Construtor privado para não permitir instanciação

  • « IntlCalendar::clear
  • IntlCalendar::createInstance »
  • PHP Manual
  • IntlCalendar
  • Construtor privado para não permitir instanciação

IntlCalendar::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::__construct — Construtor privado para não permitir instanciação

Descrição

private IntlCalendar::__construct()

Um construtor privado para não permitir instanciação com o operador new.

Chame IntlCalendar::createInstance() em seu lugar.

Parâmetros

Esta função não possui parâmetros.


Cria um novo IntlCalendar

  • « IntlCalendar::__construct
  • IntlCalendar::equals »
  • PHP Manual
  • IntlCalendar
  • Cria um novo IntlCalendar

IntlCalendar::createInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::createInstance — Cria um novo IntlCalendar

Descrição

Estilo orientado a objetos

public static IntlCalendar::createInstance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar

Estilo procedural

intlcal_create_instance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar

Informados um fuso horário e uma localidade, este método cria um objeto IntlCalendar. Este método de criação pode retornar uma sub-classe de IntlCalendar.

O calendário criado representará o instante de tempo no qual foi criado, baseado no horário do sistema. Os campos podem ser todos limpos chamando-se IntCalendar::clear() sem argumentos. Veja também IntlGregorianCalendar::__construct().

Parâmetros

timezone

O fuso horário a ser utilizado.

  • null, neste caso o fuso horário padrão será usado, como especificado na configuração ini date.timezone ou através da função date_default_timezone_set() e como retornado por date_default_timezone_get().

  • Um objeto IntlTimeZone, que será usado diretamente.

  • Um objeto DateTimeZone. Seu identificador será extraído e um objeto de fuso horário ICU será criado; o fuso horário será apoiado pelo banco de dados da ICU, não pelo do PHP.

  • Uma string, que deve ser um identificador de fuso horário ICU válido. Consulte a função IntlTimeZone::createTimeZoneIDEnumeration(). Deslocamentos puros como "GMT+08:30" também são aceitos.

locale

A localidade a ser utilizada ou null para usar a localidade padrão.

Valor Retornado

A instância IntlCalendar criada ou null em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::createInstance()

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'Europe/Madrid');

$cal = IntlCalendar::createInstance();
echo "Sem argumentos\n";
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Fuso horário explicitado\n";
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT());
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Localidade explicitada (com calendário)\n";
$cal = IntlCalendar::createInstance(NULL, 'es_ES@calendar=persian');
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));

O exemplo acima produzirá:

Sem argumentos
string(21) "IntlGregorianCalendar"
string(68) "martes 18 de junio de 2013 14:11:02 Hora de verano de Europa Central"

Fuso horário explicitado
string(21) "IntlGregorianCalendar"
string(45) "martes 18 de junio de 2013 12:11:02 GMT+00:00"

Localidade explicitada (com calendário)
string(12) "IntlCalendar"
string(70) "martes 28 de Khordad de 1392 14:11:02 Hora de verano de Europa Central"

Veja Também

  • IntlGregorianCalendar::__construct() - Cria um objeto de calendário gregoriano


Compara horários de dois objetos IntlCalendar para igualidade

  • « IntlCalendar::createInstance
  • IntlCalendar::fieldDifference »
  • PHP Manual
  • IntlCalendar
  • Compara horários de dois objetos IntlCalendar para igualidade

IntlCalendar::equals

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::equals — Compara horários de dois objetos IntlCalendar para igualidade

Descrição

Estilo orientado a objetos

public IntlCalendar::equals(IntlCalendar $other): bool

Estilo procedural

intlcal_equals(IntlCalendar $calendar, IntlCalendar $other): bool

Retorna verdadeiro se este calendário e o calendário informadao tiverem o mesmo horário. As configurações, tipos de calendário e estados de campos não precisam ser os mesmos.

Parâmetros

calendar

Uma instância de IntlCalendar.

other

O calendário a ser comparado com o objeto primário.

Valor Retornado

Retorna true se os horário de ambos os objetos IntlCalendar forem o mesmo, ou false caso contrário.

Em caso de falha, false também é retornado. Para detectar condições de erro, use intl_get_error_code() ou configure Intl para lançar exceções.

Exemplos

Exemplo #1 IntlCalendar::equals()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
$cal2 = clone $cal1;

var_dump($cal1->equals($cal2)); //TRUE

//A localidade não é incluída na comparação
$cal2 = IntlCalendar::createInstance(NULL, 'pt_PT');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

//E os estados definidos para os campos também não são incluídos
$cal2->clear(IntlCalendar::FIELD_YEAR);
var_dump($cal1->isSet(IntlCalendar::FIELD_YEAR) ==
$cal2->isSet(IntlCalendar::FIELD_YEAR)); //FALSE
var_dump($cal1->equals($cal2)); //TRUE

//E nem o tipo do calendário
$cal2 = IntlCalendar::createInstance(NULL, 'es_ES@calendar=islamic');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

//Apenas o instante de tempo é incluído
$cal2 = clone $cal1;
$cal2->setTime($cal1->getTime() + 1.);
var_dump($cal1->equals($cal2)); //FALSE


Calcula a diferença entre o horário fornecido e o horário deste objeto

  • « IntlCalendar::equals
  • IntlCalendar::fromDateTime »
  • PHP Manual
  • IntlCalendar
  • Calcula a diferença entre o horário fornecido e o horário deste objeto

IntlCalendar::fieldDifference

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::fieldDifference — Calcula a diferença entre o horário fornecido e o horário deste objeto

Descrição

Estilo orientado a objetos

public IntlCalendar::fieldDifference(float $timestamp, int $field): int|false

Estilo procedural

intlcal_field_difference(IntlCalendar $calendar, float $timestamp, int $field): int|false

RCalcula a diferença entre o horário fornecido e o horário definido para este objeto, com respeito à quantidade especificada pelo parâmetro field.

Este método foi projetado para ser chamado sucessivamente, primeiro com o campo de interesse mais significativo até o menos significativo. Para isto, como efeito colateral, o valor do campo para este calendário é avançado na quantidade retornada.

Parâmetros

calendar

Uma instância de IntlCalendar.

timestamp

O horário com o qual a quantidade representada pelo field será comparada. Para que o resultado seja positivo, o horário informado para este parâmetro deve ser posterior ao do objeto em que este método está sendo chamado.

field

O campos que representa a quantidade sendo comparada.

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

Valor Retornado

Retorna uma diferença (com sinal) de tempo na unidade associada com o campo especificado ou false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::fieldDifference()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');

$cal1 = IntlCalendar::fromDateTime('2012-02-29 09:00:11');
$cal2 = IntlCalendar::fromDateTime('2013-03-01 09:19:29');
$time = $cal2->getTime();

echo "Horário antes: ", IntlDateFormatter::formatObject($cal1), "\n";

printf(
"A diferença de tempo é de %d ano(s), %d mês(es), "
. "%d dia(s), %d hora(s) e %d minutos(s)\n",
$cal1->fieldDifference($time, IntlCalendar::FIELD_YEAR),
$cal1->fieldDifference($time, IntlCalendar::FIELD_MONTH),
$cal1->fieldDifference($time, IntlCalendar::FIELD_DAY_OF_MONTH),
$cal1->fieldDifference($time, IntlCalendar::FIELD_HOUR_OF_DAY),
$cal1->fieldDifference($time, IntlCalendar::FIELD_MINUTE)
);

//agora o objeto avançou para o tempo alvo, exteto pelos segundos,
//para os quais não foram medidas as diferenças
echo "Horário depois: ", IntlDateFormatter::formatObject($cal1), "\n";

O exemplo acima produzirá:

Horário antes: 29 févr. 2012 09:00:11
A diferença de tempo é de 1 ano(s), 0 mês(es), 1 dia(s), 0 hora(s) e 19 minutos(s)
Horário depois: 1 mars 2013 09:19:11


Cria um IntlCalendar a partir de um objeto DateTime ou uma string

  • « IntlCalendar::fieldDifference
  • IntlCalendar::get »
  • PHP Manual
  • IntlCalendar
  • Cria um IntlCalendar a partir de um objeto DateTime ou uma string

IntlCalendar::fromDateTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a2)

IntlCalendar::fromDateTime — Cria um IntlCalendar a partir de um objeto DateTime ou uma string

Descrição

Estilo orientado a objetos

public static IntlCalendar::fromDateTime(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar

Estilo procedural

intlcal_from_date_time(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar

Cria um objeto IntlCalendar a partir de um objeto DateTime ou a partir de uma string da qual seja possível criar um objeto DateTime.

O novo calendário representará não somente o mesmo instante do DateTime informado (sujeito a perda de precisão para datas muito distantes no passado ou no futuro), mas também o mesmo fuso horário (sujeito à ressalva de que diferentes bancos de dados de fuso horário serão usados, e portanto os resultados podem ser diferentes).

Parâmetros

datetime

Um objeto DateTime ou uma string que possa ser passada a DateTime::__construct().

Valor Retornado

O objeto IntlCalendar criado ou null em caso de falha. Se uma string for informada, qualquer exceção que ocorrer dentro do construtor DateTime será propagada.

Exemplos

Exemplo #1 IntlCalendar::fromDateTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

//o mesmo que IntlCalendar::fromDateTime(new DateTime(...))
$cal1 = IntlCalendar::fromDateTime('2013-02-28 00:01:02 Europe/Berlin');

//Note que o fuso horário é Europe/Berlin, e não o padrão Europe/Lisbon
echo IntlDateFormatter::formatObject($cal1, 'yyyy MMMM d HH:mm:ss VVVV', 'de_DE'), "\n";

O exemplo acima produzirá:

2013 Februar 28 00:01:02 Deutschland Zeit


Obtém o valor de um campo

  • « IntlCalendar::fromDateTime
  • IntlCalendar::getActualMaximum »
  • PHP Manual
  • IntlCalendar
  • Obtém o valor de um campo

IntlCalendar::get

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::get — Obtém o valor de um campo

Descrição

Estilo orientado a objetos

public IntlCalendar::get(int $field): int|false

Estilo procedural

intlcal_get(IntlCalendar $calendar, int $field): int|false

Obtém o valor de um campo específico.

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

Valor Retornado

Um inteiro com o valor do campo de horário.

Exemplos

Exemplo #1 IntlCalendar::get()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$class = new ReflectionClass('IntlCalendar');
$fields = array();
foreach ($class->getConstants() as $name => $val) {
if (strpos($name, 'FIELD_') !== 0 || $val > 22)
continue;
$fields[$val] = $name;
}

$cal = IntlCalendar::createInstance(); // horário atual
var_dump(IntlDateFormatter::formatObject($cal));
foreach ($fields as $val => $name) {
echo "$val ($name)", "\n ", $cal->get($val), "\n";
}

O exemplo acima produzirá:

string(23) "Jul 1, 2013, 4:44:44 AM"
0 (FIELD_ERA)
    1
1 (FIELD_YEAR)
    2013
2 (FIELD_MONTH)
    6
3 (FIELD_WEEK_OF_YEAR)
    27
4 (FIELD_WEEK_OF_MONTH)
    1
5 (FIELD_DAY_OF_MONTH)
    1
6 (FIELD_DAY_OF_YEAR)
    182
7 (FIELD_DAY_OF_WEEK)
    2
8 (FIELD_DAY_OF_WEEK_IN_MONTH)
    1
9 (FIELD_AM_PM)
    0
10 (FIELD_HOUR)
    4
11 (FIELD_HOUR_OF_DAY)
    4
12 (FIELD_MINUTE)
    44
13 (FIELD_SECOND)
    44
14 (FIELD_MILLISECOND)
    551
15 (FIELD_ZONE_OFFSET)
    0
16 (FIELD_DST_OFFSET)
    3600000
17 (FIELD_YEAR_WOY)
    2013
18 (FIELD_DOW_LOCAL)
    2
19 (FIELD_EXTENDED_YEAR)
    2013
20 (FIELD_JULIAN_DAY)
    2456475
21 (FIELD_MILLISECONDS_IN_DAY)
    17084551
22 (FIELD_IS_LEAP_MONTH)
    0


O valor máximo para um campo, considerando o horário atual do objeto

  • « IntlCalendar::get
  • IntlCalendar::getActualMinimum »
  • PHP Manual
  • IntlCalendar
  • O valor máximo para um campo, considerando o horário atual do objeto

IntlCalendar::getActualMaximum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getActualMaximum — O valor máximo para um campo, considerando o horário atual do objeto

Descrição

Estilo orientado a objetos

public IntlCalendar::getActualMaximum(int $field): int|false

Estilo procedural

intlcal_get_actual_maximum(IntlCalendar $calendar, int $field): int|false

Retorna o valor máximo relativo de um campo em relação ao horário atual. A semântica exata varia por campo, mas em geral é o valor que seria obtido se fosse definido o valor do campo para o menor máximo relativo para o campo e fosse incrementado até alcançar o máximo global ou até que o valor do campo retorne ao inicial, no qual o valor retornado seria o máximo global ou o valor antes de retornar ao incial, respectivamente.

Por exemplo, no calendário gregoriano, o valor máximo real para o dia do mês pode variar entre 28 e 31, dependendo do mês e do ano do horário atual.

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

Valor Retornado

Um número int representando o valor máximo na unidade associada ao parâmetro field informado ou false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::getActualMaximum()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = IntlCalendar::fromDateTime('2013-02-15');
var_dump($cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)); //28

$cal->add(IntlCalendar::FIELD_EXTENDED_YEAR, -1);
var_dump($cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)); //29

O exemplo acima produzirá:

int(28)
int(29)

Veja Também

  • IntlCalendar::getMaximum() - Obtém o valor máximo global para um campo
  • IntlCalendar::getLeastMaximum() - Obtém o menor máximo local para um campo
  • IntlCalendar::getActualMinimum() - O valor mínimo para um campo, considerando o horário atual do objeto


O valor mínimo para um campo, considerando o horário atual do objeto

  • « IntlCalendar::getActualMaximum
  • IntlCalendar::getAvailableLocales »
  • PHP Manual
  • IntlCalendar
  • O valor mínimo para um campo, considerando o horário atual do objeto

IntlCalendar::getActualMinimum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getActualMinimum — O valor mínimo para um campo, considerando o horário atual do objeto

Descrição

Estilo orientado a objetos

public IntlCalendar::getActualMinimum(int $field): int|false

Estilo procedural

intlcal_get_actual_minimum(IntlCalendar $calendar, int $field): int|false

Retorna o valor mínimo relativo de um campo em relação ao horário atual. A semântica exata varia por campo, mas em geral é o valor que seria obtido se fosse definido o valor do campo para o maior mínimo relativo para o campo e fosse decrementado até alcançar o mínimo global ou até que o valor do campo retorne ao final da escala, no qual o valor retornado seria o mínimo global ou o valor antes de retornar ao final da escala, respectivamente.

Para o calendário gregoriano, será sempre o mesmo que IntlCalendar::getMinimum().

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

Valor Retornado

Um número int representando o valor mínimo na unidade do campo ou false em caso de falha.

Veja Também

  • IntlCalendar::getMinimum() - Obtém o mínimo global para um campo
  • IntlCalendar::getGreatestMinimum() - Obtém o maior valor mínimo local para um campo
  • IntlCalendar::getActualMaximum() - O valor máximo para um campo, considerando o horário atual do objeto


Obtém um array de localidades para as quais existem dados

  • « IntlCalendar::getActualMinimum
  • IntlCalendar::getDayOfWeekType »
  • PHP Manual
  • IntlCalendar
  • Obtém um array de localidades para as quais existem dados

IntlCalendar::getAvailableLocales

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getAvailableLocales — Obtém um array de localidades para as quais existem dados

Descrição

Estilo orientado a objetos

public static IntlCalendar::getAvailableLocales(): array

Estilo procedural

intlcal_get_available_locales(): array

Fornece a lista de localidades para as quais existem calendários instalados. A partir da ICU 51, esta é a list de todas as localidades ICU instaladas.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array de strings, uma para cada localidade.

Exemplos

Exemplo #1 IntlCalendar::getAvailableLocales()

<?php
print_r(IntlCalendar::getAvailableLocales());

O exemplo acima produzirá:

Array
(
    [0] => af
    [1] => af_NA
    [2] => af_ZA
    [3] => agq
    [4] => agq_CM
    [5] => ak
    [6] => ak_GH
    [7] => am
    [8] => am_ET
    [9] => ar
    [10] => ar_001
    [11] => ar_AE
    [12] => ar_BH
    [13] => ar_DJ
    … output abbreviated …
    [595] => zh_Hant_HK
    [596] => zh_Hant_MO
    [597] => zh_Hant_TW
    [598] => zu
    [599] => zu_ZA
)


Informa se o dia é dia de semana, de final de semana ou de transição entre os dois

  • « IntlCalendar::getAvailableLocales
  • IntlCalendar::getErrorCode »
  • PHP Manual
  • IntlCalendar
  • Informa se o dia é dia de semana, de final de semana ou de transição entre os dois

IntlCalendar::getDayOfWeekType

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getDayOfWeekType — Informa se o dia é dia de semana, de final de semana ou de transição entre os dois

Descrição

Estilo orientado a objetos

public IntlCalendar::getDayOfWeekType(int $dayOfWeek): int|false

Estilo procedural

intlcal_get_day_of_week_type(IntlCalendar $calendar, int $dayOfWeek): int|false

Retorna se o dia informado é um dia de semana (IntlCalendar::DOW_TYPE_WEEKDAY), de final de semana (IntlCalendar::DOW_TYPE_WEEKEND), ou um dia durante o qual uma transição ocorre entrando no final de semana (IntlCalendar::DOW_TYPE_WEEKEND_OFFSET) ou um dia durante o qual o final de semana termina (IntlCalendar::DOW_TYPE_WEEKEND_CEASE).

Se o valor de retorno for
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET ou
IntlCalendar::DOW_TYPE_WEEKEND_CEASE, então
pode-se chamar IntlCalendar::getWeekendTransition() para
se obter o horário da transição.

Esta função requer a ICU 4.4 ou posterior.

Parâmetros

calendar

Uma instância de IntlCalendar.

dayOfWeek

Uma das constantes IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAY.

Valor Retornado

Retorna uma das constantes
IntlCalendar::DOW_TYPE_WEEKDAY,
IntlCalendar::DOW_TYPE_WEEKEND,
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET ou
IntlCalendar::DOW_TYPE_WEEKEND_CEASE ou false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::getDayOfWeekType()

<?php
foreach (array('en_US', 'ar_SA') as $locale) {
echo "Localidade: ", Locale::getDisplayName($locale, "en_US"), "\n";

$cal = IntlCalendar::createInstance('UTC', $locale);

for ($i = IntlCalendar::DOW_SUNDAY; $i <= IntlCalendar::DOW_SATURDAY; $i++) {
$type = $cal->getDayOfWeekType($i);
$transition = ($type !== IntlCalendar::DOW_TYPE_WEEKDAY)
? $cal->getWeekendTransition($i)
: '';
echo $i, " ", $type, " ", $transition, "\n";
}
echo "\n";
}
?>

O exemplo acima produzirá:

Localidade: English (United States)
1 1 86400000
2 0
3 0
4 0
5 0
6 0
7 1 0

Localidade: Arabic (Saudi Arabia)
1 0
2 0
3 0
4 0
5 0
6 1 0
7 1 86400000


Obtém o último código de erro no objeto

  • « IntlCalendar::getDayOfWeekType
  • IntlCalendar::getErrorMessage »
  • PHP Manual
  • IntlCalendar
  • Obtém o último código de erro no objeto

IntlCalendar::getErrorCode

intlcal_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getErrorCode -- intlcal_get_error_code — Obtém o último código de erro no objeto

Descrição

Estilo orientado a objetos (method):

public IntlCalendar::getErrorCode(): int|false

Estilo procedural:

intlcal_get_error_code(IntlCalendar $calendar): int|false

Retorna o código de erro numérico da ICU para a última chamada neste objeto (incluindo clonagem) ou no objeto IntlCalendar informado no parâmetro calendar (na versão em estilo procedural). Pode indicar apenas um alerta (código de erro negativo) ou nenhum erro (U_ZERO_ERROR). A presença real de erro pode ser testada com intl_is_failure().

Argumentos inválidos detectados no lado do PHP (antes de chamar funções da biblioteca ICU) não são registradas para o propósito desta função.

O último erro que ocorreu em qualquer chamada a uma função da extensão Intl, incluindo erros de argumentos, podem ser obtidos com intl_get_error_code(). Esta função redefine o código de erro global, mas não o código de erro do objeto.

Parâmetros

calendar

O objeto calendário, na interface em estilo procedural.

Valor Retornado

Um código de erro ICU indicando sucesso, falha ou um alerta. Retorna false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::getErrorCode() e IntlCalendar::getErrorMessage()

<?php
ini_set("intl.error_level", E_WARNING);
ini_set("intl.default_locale", "nl");

$intlcal = new IntlGregorianCalendar(2012, 1, 29);
var_dump(
$intlcal->getErrorCode(),
$intlcal->getErrorMessage()
);
$intlcal->fieldDifference(-1e100, IntlCalendar::FIELD_SECOND);

var_dump(
$intlcal->getErrorCode(),
$intlcal->getErrorMessage()
);

O exemplo acima produzirá:

int(0)
string(12) "U_ZERO_ERROR"

Warning: IntlCalendar::fieldDifference(): intlcal_field_difference: Call to ICU method has failed in /home/glopes/php/ws/example.php on line 10
int(1)
string(81) "intlcal_field_difference: Call to ICU method has failed: U_ILLEGAL_ARGUMENT_ERROR"

Veja Também

  • IntlCalendar::getErrorMessage() - Obtém a última mensagem de erro no objeto
  • intl_is_failure() - Verifica se o código de erro fornecido indica falha
  • intl_error_name() - Obtém nome simbólico para um código de erro informado
  • intl_get_error_code() - Obtém o último código de erro
  • intl_get_error_message() - Obtém a descrição do último erro


Obtém a última mensagem de erro no objeto

  • « IntlCalendar::getErrorCode
  • IntlCalendar::getFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Obtém a última mensagem de erro no objeto

IntlCalendar::getErrorMessage

intlcal_get_error_message

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getErrorMessage -- intlcal_get_error_message — Obtém a última mensagem de erro no objeto

Descrição

Estilo orientado a objetos (method):

public IntlCalendar::getErrorMessage(): string|false

Estilo procedural:

intlcal_get_error_message(IntlCalendar $calendar): string|false

Retorna a mensagem de erro (se houver) associada com o erro reportado por IntlCalendar::getErrorCode() ou intlcal_get_error_code(). Se não houver mensagem de erro associada, apenas a represetnação em string do nome da constante de erro será retornada. Caso contrário, o texto também incluirá uma mensagem definida no lado da ligação com o PHP.

Parâmetros

calendar

O objeto calendário, na interface de estilo procedural.

Valor Retornado

A mensagem de erro associada com o último erro ocorrido em uma chamada de função neste objeto, ou uma string indicando a não existência de erro. Retorna false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::getErrorMessage()

<?php
$cal = IntlCalendar::createInstance('UTC', 'en_US');
var_dump($cal->getErrorMessage());

$cal->getWeekendTransition(IntlCalendar::DOW_WEDNESDAY);
var_dump($cal->getErrorMessage());

O exemplo acima produzirá:

string(12) "U_ZERO_ERROR"
string(82) "intlcal_get_weekend_transition: Error calling ICU method: U_ILLEGAL_ARGUMENT_ERROR"


Obtém o primeiro dia da semana para a localidade do calendário

  • « IntlCalendar::getErrorMessage
  • IntlCalendar::getGreatestMinimum »
  • PHP Manual
  • IntlCalendar
  • Obtém o primeiro dia da semana para a localidade do calendário

IntlCalendar::getFirstDayOfWeek

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getFirstDayOfWeek — Obtém o primeiro dia da semana para a localidade do calendário

Descrição

Estilo orientado a objetos

public IntlCalendar::getFirstDayOfWeek(): int|false

Estilo procedural

intlcal_get_first_day_of_week(IntlCalendar $calendar): int|false

O dia da semana que inicia a semana, pode ser o valor padrão para esta localidade ou o valor definido com IntlCalendar::setFirstDayOfWeek().

Parâmetros

calendar

Uma instância de IntlCalendar.

Valor Retornado

Uma das constantes IntlCalendar::DOW_SUNDAY, IntlCalendar::DOW_MONDAY, …, IntlCalendar::DOW_SATURDAY ou false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::getFirstDayOfWeek()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
var_dump($cal1->getFirstDayOfWeek()); // segunda-feira
$cal1->set(2013, 1 /* fevereiro */, 3); // um domingo
var_dump($cal1->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 5

$cal2 = IntlCalendar::createInstance(NULL, 'en_US');
var_dump($cal2->getFirstDayOfWeek()); // domingo
$cal2->set(2013, 1 /* fevereiro */, 3); // um domingo
var_dump($cal2->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 6

O exemplo acima produzirá:

int(2)
int(5)
int(1)
int(6)

Veja Também

  • IntlCalendar::setFirstDayOfWeek() - Define o dia da semana no qual a semana inicia


Obtém o maior valor mínimo local para um campo

  • « IntlCalendar::getFirstDayOfWeek
  • IntlCalendar::getKeywordValuesForLocale »
  • PHP Manual
  • IntlCalendar
  • Obtém o maior valor mínimo local para um campo

IntlCalendar::getGreatestMinimum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getGreatestMinimum — Obtém o maior valor mínimo local para um campo

Descrição

Estilo orientado a objetos

public IntlCalendar::getGreatestMinimum(int $field): int|false

Estilo procedural

intlcal_get_greatest_minimum(IntlCalendar $calendar, int $field): int|false

Returns o maior mínimo local para um campo. Este deverá ser um valor maior ou igual ao retornado por IntlCalendar::getActualMinimum(), que por sua vez é maior ou igual ao retornado por IntlCalendar::getMinimum(). Todas estas três funções retornam o mesmo valor para o calendário gregoriano.

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

Valor Retornado

Um número int representando um valor de campo, na unidade do campo, ou false em caso de falha.


Obtém um conjunto de valores de palavras-chaves de localidade

  • « IntlCalendar::getGreatestMinimum
  • IntlCalendar::getLeastMaximum »
  • PHP Manual
  • IntlCalendar
  • Obtém um conjunto de valores de palavras-chaves de localidade

IntlCalendar::getKeywordValuesForLocale

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getKeywordValuesForLocale — Obtém um conjunto de valores de palavras-chaves de localidade

Descrição

Estilo orientado a objetos

public static IntlCalendar::getKeywordValuesForLocale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false

Estilo procedural

intlcal_get_keyword_values_for_locale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false

Para uma chave de localidade informada, obtém o conjunto de valores para essa chave que resultaria em um comportamento diferente. Por agora, apenas a palavra-chave 'calendar' é suportada.

Esta função requer a ICU 4.2 ou posterior.

Parâmetros

keyword

A palavra-chave de localidade para a qual valores relevantes serão consultados. Apenas 'calendar' é suportada.

locale

A localidade na qual o par palavra-chave/valor será anexado.

onlyCommon

Determina se deve-se mostrar apenas os valores comumente usados para a localidade especificada.

Valor Retornado

Um iterador que gera strings com os valores de palavra-chave da localidade ou false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::getKeyworkValuesForLocale()

<?php
print_r(
iterator_to_array(
IntlCalendar::getKeywordValuesForLocale(
'calendar', 'fa_IR', true)));
print_r(
iterator_to_array(
IntlCalendar::getKeywordValuesForLocale(
'calendar', 'fa_IR', false)));

O exemplo acima produzirá:

Array
(
    [0] => persian
    [1] => gregorian
    [2] => islamic
    [3] => islamic-civil
)
Array
(
    [0] => persian
    [1] => gregorian
    [2] => islamic
    [3] => islamic-civil
    [4] => japanese
    [5] => buddhist
    [6] => roc
    [7] => hebrew
    [8] => chinese
    [9] => indian
    [10] => coptic
    [11] => ethiopic
    [12] => ethiopic-amete-alem
)


Obtém o menor máximo local para um campo

  • « IntlCalendar::getKeywordValuesForLocale
  • IntlCalendar::getLocale »
  • PHP Manual
  • IntlCalendar
  • Obtém o menor máximo local para um campo

IntlCalendar::getLeastMaximum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getLeastMaximum — Obtém o menor máximo local para um campo

Descrição

Estilo orientado a objetos

public IntlCalendar::getLeastMaximum(int $field): int|false

Estilo procedural

intlcal_get_least_maximum(IntlCalendar $calendar, int $field): int|false

Retorna o menor máximo local para um campo. Deve ser um valor menor ou igual ao retornado por IntlCalendar::getActualMaxmimum(), que por usa vez é menor ou igual ao retornado por IntlCalendar::getMaximum().

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

Valor Retornado

Um número int representando um valor de campo na unidade do campo ou false em caso de falha.

Exemplos

Exemplo #1 Exemplos de máximos

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'it_IT');

$cal = new IntlGregorianCalendar(2013, 3 /* abril */, 6);
var_dump(
$cal->getLeastMaximum(IntlCalendar::FIELD_DAY_OF_MONTH), // 28
$cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH), // 30
$cal->getMaximum(IntlCalendar::FIELD_DAY_OF_MONTH) // 31
);

O exemplo acima produzirá:

int(28)
int(30)
int(31)

Veja Também

  • IntlCalendar::getActualMaximum() - O valor máximo para um campo, considerando o horário atual do objeto
  • IntlCalendar::getMaximum() - Obtém o valor máximo global para um campo
  • IntlCalendar::getGreatestMinimum() - Obtém o maior valor mínimo local para um campo


Obtém a localidade associada com o objeto

  • « IntlCalendar::getLeastMaximum
  • IntlCalendar::getMaximum »
  • PHP Manual
  • IntlCalendar
  • Obtém a localidade associada com o objeto

IntlCalendar::getLocale

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getLocale — Obtém a localidade associada com o objeto

Descrição

Estilo orientado a objetos

public IntlCalendar::getLocale(int $type): string|false

Estilo procedural

intlcal_get_locale(IntlCalendar $calendar, int $type): string|false

Retorna a localidade usada por este objeto calendário.

Parâmetros

calendar

Uma instância de IntlCalendar.

type

Determina se deve-se obter a localidade real (a localidade da qual os dados do calendário se originam, com Locale::ACTUAL_LOCALE) ou a localidade válida, isto é, a localidade mais específica suportada pela ICU em relação à localidade solicitada – veja Locale::VALID_LOCALE. Da mais geral à mais específica, as localidades são ordenadas desta forma – localidade real, localidade válida, localidade solicitada.

Valor Retornado

Uma string de localidade ou false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::getLocale()

<?php
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT(), 'en_US_CALIFORNIA');
var_dump(
$cal->getLocale(Locale::ACTUAL_LOCALE),
$cal->getLocale(Locale::VALID_LOCALE)
);

O exemplo acima produzirá:

string(2) "en"
string(5) "en_US"


Obtém o valor máximo global para um campo

  • « IntlCalendar::getLocale
  • IntlCalendar::getMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Obtém o valor máximo global para um campo

IntlCalendar::getMaximum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getMaximum — Obtém o valor máximo global para um campo

Descrição

Estilo orientado a objetos

public IntlCalendar::getMaximum(int $field): int|false

Estilo procedural

intlcal_get_maximum(IntlCalendar $calendar, int $field): int|false

Obtém o máximo global para um campo, neste calendário específico. Este valor é maior ou igual ao retornado por IntlCalendar::getActualMaximum(), que por usa vez é maior ou igual ao retornado por IntlCalendar::getLeastMaximum().

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

Valor Retornado

Um int representando um valor de campo na unidade do campo ou false em caso de falha.

Veja Também

  • IntlCalendar::getActualMaximum() - O valor máximo para um campo, considerando o horário atual do objeto
  • IntlCalendar::getLeastMaximum() - Obtém o menor máximo local para um campo
  • IntlCalendar::getMinimum() - Obtém o mínimo global para um campo


Obtém o número mínimo de dias que a primeira semana do ano ou do mês pode ter

  • « IntlCalendar::getMaximum
  • IntlCalendar::getMinimum »
  • PHP Manual
  • IntlCalendar
  • Obtém o número mínimo de dias que a primeira semana do ano ou do mês pode ter

IntlCalendar::getMinimalDaysInFirstWeek

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getMinimalDaysInFirstWeek — Obtém o número mínimo de dias que a primeira semana do ano ou do mês pode ter

Descrição

Estilo orientado a objetos

public IntlCalendar::getMinimalDaysInFirstWeek(): int|false

Estilo procedural

intlcal_get_minimal_days_in_first_week(IntlCalendar $calendar): int|false

Retorna o menor número de dias que a primeira semana do ano ou do mês deve ter no novo ano ou no novo mês. Por exemplo, no calendário gregoriano, se este valor for 1, então a primeira semana do ano necessariamente incluirá 1º de janeiro, enquanto que se este valor for 7, então a semana que contém 1º de janeiro será a primeira semana do ano somente se o dia da semana para 1º de janeiro corresponder ao dia da semana retornado por IntlCalendar::getFirstDayOfWeek(); caso contrário será a última semana do ano anterior.

Parâmetros

calendar

Uma instância de IntlCalendar.

Valor Retornado

Um int representando o número de dias ou false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::getMinimalDaysInFirstWeek()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 0 /* janeiro */, 2);
var_dump(IntlDateFormatter::formatObject($cal, 'cccc')); // quarta-feira

var_dump($cal->getMinimalDaysInFirstWeek(), // 1
$cal->getFirstDayofWeek()); // 1 (domingo)

// Semana 1 de 2013
var_dump(IntlDateFormatter::formatObject($cal, "'Semana 'w' de 'Y"));

$cal->setMinimalDaysInFirstWeek(4);
// Ainda na semana 1 de 2013 (1ª semana tem 5 dias no novo ano)
var_dump(IntlDateFormatter::formatObject($cal, "'Semana 'w' de 'Y"));

$cal->setMinimalDaysInFirstWeek(6);
// Semana 53 de 2012
var_dump(IntlDateFormatter::formatObject($cal, "'Semana 'w' de 'Y"));

O exemplo acima produzirá:

string(9) "Wednesday"
int(1)
int(1)
string(14) "Semana 1 de 2013"
string(14) "Semana 1 de 2013"
string(15) "Semana 53 de 2012"


Obtém o mínimo global para um campo

  • « IntlCalendar::getMinimalDaysInFirstWeek
  • IntlCalendar::getNow »
  • PHP Manual
  • IntlCalendar
  • Obtém o mínimo global para um campo

IntlCalendar::getMinimum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getMinimum — Obtém o mínimo global para um campo

Descrição

Estilo orientado a objetos

public IntlCalendar::getMinimum(int $field): int|false

Estilo procedural

intlcal_get_minimum(IntlCalendar $calendar, int $field): int|false

Obtém o mínimo global para um campo, neste calendário específico. Este valor é menos ou igual ao retornado por IntlCalendar::getActualMinimum(), que por sua vez é menor ou igual ao retornado por IntlCalendar::getGreatestMinimum(). Para o calendário gregoriano, estas três funções sempre retornam o mesmo valor (para cada campo).

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

Valor Retornado

Um int representando um valor para o campo fornecido, na unidade do campo ou false em caso de falha.


Get number representing the current time

  • « IntlCalendar::getMinimum
  • IntlCalendar::getRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Get number representing the current time

IntlCalendar::getNow

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getNow — Get number representing the current time

Descrição

Estilo orientado a objetos

public static IntlCalendar::getNow(): float

Estilo procedural

intlcal_get_now(): float

The number of milliseconds that have passed since the reference date. This number is derived from the system time.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A float representing a number of milliseconds since the epoch, not counting leap seconds.

Exemplos

Exemplo #1 IntlCalendar::getNow()

<?php
$formatter = IntlDateFormatter::create('es_ES',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'Europe/Madrid');

$val = IntlCalendar::getNow();

var_dump($val);
echo $formatter->format(IntlCalendar::getNow() / 1000.), "\n";

O exemplo acima produzirá:

float(1371425814666)
lunes, 17 de junio de 2013 01:36:54 Hora de verano de Europa central


Obtém o comportamento ao lidar com o horário de relógio repetido

  • « IntlCalendar::getNow
  • IntlCalendar::getSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Obtém o comportamento ao lidar com o horário de relógio repetido

IntlCalendar::getRepeatedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getRepeatedWallTimeOption — Obtém o comportamento ao lidar com o horário de relógio repetido

Descrição

Estilo orientado a objetos

public IntlCalendar::getRepeatedWallTimeOption(): int

Estilo procedural

intlcal_get_repeated_wall_time_option(IntlCalendar $calendar): int

Obtém a estratégia atual para lidar com horários de relógio que se repetem toda vez que o relógio é atrasado durante o retorno de um horário de verão. O valor padrão é IntlCalendar::WALLTIME_LAST.

Esta função requer a ICU 4.9 ou posterior.

Parâmetros

calendar

Uma instância de IntlCalendar.

Valor Retornado

Uma das constantes IntlCalendar::WALLTIME_FIRST ou IntlCalendar::WALLTIME_LAST.

Exemplos

Exemplo #1 IntlCalendar::getRepeatedWallTimeOption()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_BR');
ini_set('intl.error_level', E_WARNING);

//Em Lisboa, 27 de outubro às 02:00, o relógio volta 1 hora no tempo, de GMT+01 para GMT+00
$cal = new IntlGregorianCalendar(2013, 9 /* outubro */, 27, 1, 30);

var_dump($cal->getRepeatedWalltimeOption()); // 0 WALLTIME_LAST

$formatter = IntlDateFormatter::create(
NULL,
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000.));

$cal->setRepeatedWalltimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getRepeatedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000.));

O exemplo acima produzirá:

int(0)
string(69) "domingo, 27 de outubro de 2013 01:30:00 Horário Universal Coordenado"
int(1)
string(69) "domingo, 27 de outubro de 2013 00:30:00 Horário Universal Coordenado"

Veja Também

  • IntlCalendar::getSkippedWallTimeOption() - Obtém o comportamento para o horário de relógio saltado
  • IntlCalendar::setSkippedWallTimeOption() - Define o comportamento ao lidar com horário de relógio saltado ao entrar no horário de verão
  • IntlCalendar::setRepeatedWallTimeOption() - Define o comportamento ao lidar com horário de relógio repetido ao sair do horário de verão


Obtém o comportamento para o horário de relógio saltado

  • « IntlCalendar::getRepeatedWallTimeOption
  • IntlCalendar::getTime »
  • PHP Manual
  • IntlCalendar
  • Obtém o comportamento para o horário de relógio saltado

IntlCalendar::getSkippedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getSkippedWallTimeOption — Obtém o comportamento para o horário de relógio saltado

Descrição

Estilo orientado a objetos

public IntlCalendar::getSkippedWallTimeOption(): int

Estilo procedural

intlcal_get_skipped_wall_time_option(IntlCalendar $calendar): int

Obtém a estratégia atual para lidar com horários de relógio saltados quando o relógio é adiantado durante a transição para o horário de verão. O valor padrão é IntlCalendar::WALLTIME_LAST.

O calendário precisa ser leniente para que esta opção tenha algum efeito, caso contrário a tentativa de definir um horário não existente causará um erro.

Esta função requer a ICU 4.9 ou posterior.

Parâmetros

calendar

Uma instância de IntlCalendar.

Valor Retornado

Uma das constantes IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST ou
IntlCalendar::WALLTIME_NEXT_VALID.

Exemplos

Exemplo #1 IntlCalendar::getSkippedWallTimeOption()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_BR');
ini_set('intl.error_level', E_WARNING);

//Em Lisboa, no dia 31 de março de 2013 à 01:00, o relógio é adiantado 1 hora, de GMT+00 para GMT+01
$cal = new IntlGregorianCalendar(2013, 2 /* março */, 31, 1, 30);

var_dump(
$cal->isLenient(), // true
$cal->getSkippedWalltimeOption() // 0 WALLTIME_LAST
);

$formatter = IntlDateFormatter::create(
NULL,
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getSkippedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_NEXT_VALID);
var_dump($cal->getSkippedWalltimeOption()); // 2 WALLTIME_NEXT_VALID
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

O exemplo acima produzirá:

bool(true)
int(0)
string(68) "domingo, 31 de março de 2013 01:30:00 Horário Universal Coordenado"
int(1)
string(68) "domingo, 31 de março de 2013 00:30:00 Horário Universal Coordenado"
int(2)
string(68) "domingo, 31 de março de 2013 01:00:00 Horário Universal Coordenado"

Veja Também

  • IntlCalendar::getRepeatedWallTimeOption() - Obtém o comportamento ao lidar com o horário de relógio repetido
  • IntlCalendar::setSkippedWallTimeOption() - Define o comportamento ao lidar com horário de relógio saltado ao entrar no horário de verão
  • IntlCalendar::setRepeatedWallTimeOption() - Define o comportamento ao lidar com horário de relógio repetido ao sair do horário de verão


Obtém o horário atualmente representado pelo objeto

  • « IntlCalendar::getSkippedWallTimeOption
  • IntlCalendar::getTimeZone »
  • PHP Manual
  • IntlCalendar
  • Obtém o horário atualmente representado pelo objeto

IntlCalendar::getTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getTime — Obtém o horário atualmente representado pelo objeto

Descrição

Estilo orientado a objetos

public IntlCalendar::getTime(): float|false

Estilo procedural

intlcal_get_time(IntlCalendar $calendar): float|false

Retorna o horário associado a este objeto, expresso como o número de milissegundos desde a época de referência.

Parâmetros

calendar

Uma instância de IntlCalendar.

Valor Retornado

Um float representando o número de milissegundos decorridos desde o horário de referência (1 Jan 1970 00:00:00 UTC), ou false em caso de falha

Exemplos

Exemplo #1 IntlCalendar::getTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_BR');

$cal = new IntlGregorianCalendar(2013, 4 /* maio */, 1, 0, 0, 0);
$time = $cal->getTime();
var_dump($time, $time / 1000 == strtotime('2013-05-01 00:00:00')); //true

O exemplo acima produzirá:

float(1367362800000)
bool(true)

Veja Também

  • IntlCalendar::getNow() - Get number representing the current time


Obtém o fuso horário do objeto

  • « IntlCalendar::getTime
  • IntlCalendar::getType »
  • PHP Manual
  • IntlCalendar
  • Obtém o fuso horário do objeto

IntlCalendar::getTimeZone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getTimeZone — Obtém o fuso horário do objeto

Descrição

Estilo orientado a objetos

public IntlCalendar::getTimeZone(): IntlTimeZone|false

Estilo procedural

intlcal_get_time_zone(IntlCalendar $calendar): IntlTimeZone|false

Retorna o objeto IntlTimeZone associado a este calendário.

Parâmetros

calendar

Uma instância de IntlCalendar.

Valor Retornado

Um objeto IntlTimeZone correspondendo ao usado internamente neste objeto. Retorna false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::getTimeZone()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_BR');

$cal = IntlCalendar::createInstance();
print_r($cal->getTimeZone());

$cal->setTimeZone('UTC');
print_r($cal->getTimeZone());

$cal = IntlCalendar::fromDateTime('2012-01-01 00:00:00 GMT+03:33');
print_r($cal->getTimeZone());

O exemplo acima produzirá:

IntlTimeZone Object
(
    [valid] => 1
    [id] => Europe/Lisbon
    [rawOffset] => 0
    [currentOffset] => 0
)
IntlTimeZone Object
(
    [valid] => 1
    [id] => UTC
    [rawOffset] => 0
    [currentOffset] => 0
)
IntlTimeZone Object
(
    [valid] => 1
    [id] => GMT+03:33
    [rawOffset] => 12780000
    [currentOffset] => 12780000
)

Veja Também

  • IntlCalendar::setTimeZone() - Define o fuso horário usado por este calendário
  • IntlCalendar::createInstance() - Cria um novo IntlCalendar
  • IntlGregorianCalendar::__construct() - Cria um objeto de calendário gregoriano


Obtém o tipo de calendário

  • « IntlCalendar::getTimeZone
  • IntlCalendar::getWeekendTransition »
  • PHP Manual
  • IntlCalendar
  • Obtém o tipo de calendário

IntlCalendar::getType

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getType — Obtém o tipo de calendário

Descrição

Estilo orientado a objetos

public IntlCalendar::getType(): string

Estilo procedural

intlcal_get_type(IntlCalendar $calendar): string

Uma string descrevendo o tipo deste calendário. Será um dos valores válidos para a palavra-chave 'calendar'.

Parâmetros

calendar

Uma instância de IntlCalendar.

Valor Retornado

Uma string representando o tipo de calendário, como 'gregorian', 'islamic', etc.

Exemplos

Exemplo #1 IntlCalendar::getType()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pr_BR');

$cal = IntlCalendar::createInstance(NULL, '@calendar=ethiopic-amete-alem');
var_dump($cal->getType());

$cal = new IntlGregorianCalendar();
var_dump($cal->getType());

O exemplo acima produzirá:

string(19) "ethiopic-amete-alem"
string(9) "gregorian"


Obtém o horário do dia no qual o final de semana inicia ou termina

  • « IntlCalendar::getType
  • IntlCalendar::inDaylightTime »
  • PHP Manual
  • IntlCalendar
  • Obtém o horário do dia no qual o final de semana inicia ou termina

IntlCalendar::getWeekendTransition

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getWeekendTransition — Obtém o horário do dia no qual o final de semana inicia ou termina

Descrição

Estilo orientado a objetos

public IntlCalendar::getWeekendTransition(int $dayOfWeek): int|false

Estilo procedural

intlcal_get_weekend_transition(IntlCalendar $calendar, int $dayOfWeek): int|false

Retorna o número de milissegundos após a meia-noite quando o final de semana inicia ou termina.

É aplicável somente para dias da semana para os quais
IntlCalendar::getDayOfWeekType() retorna
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET ou
IntlCalendar::DOW_TYPE_WEEKEND_CEASE. Chamar estas funções
para outros dias da semana é uma condição de erro.

Esta função requer a ICU 4.4 ou posterior.

Parâmetros

calendar

Uma instância de IntlCalendar.

dayOfWeek

Uma das constantes IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAY.

Valor Retornado

O número de milissegundos no dia quando o final de semana inicia ou termina ou false em caso de falha.

Exemplos

Vaja exemplo em IntlCalendar::getDayOfWeekType().


Whether the object's time is in Daylight Savings Time

  • « IntlCalendar::getWeekendTransition
  • IntlCalendar::isEquivalentTo »
  • PHP Manual
  • IntlCalendar
  • Whether the object's time is in Daylight Savings Time

IntlCalendar::inDaylightTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::inDaylightTime — Whether the object's time is in Daylight Savings Time

Descrição

Estilo orientado a objetos

public IntlCalendar::inDaylightTime(): bool

Estilo procedural

intlcal_in_daylight_time(IntlCalendar $calendar): bool

Whether, for the instant represented by this object and for this object's timezone, daylight saving time is in place.

Parâmetros

calendar

Uma instância de IntlCalendar.

Valor Retornado

Returns true if the date is in Daylight Savings Time, false otherwise.

Em caso de falha, false também é retornado. Para detectar condições de erro, use intl_get_error_code() ou configure Intl para lançar exceções.

Exemplos

Exemplo #1 IntlCalendar::inDaylightTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1, 4, 56, 31);
var_dump($cal->inDaylightTime()); // true
$cal->set(IntlCalendar::FIELD_MONTH, 11 /* December */);
var_dump($cal->inDaylightTime()); // false

//DST end transition on 2013-10-27 at 0200 (wall time back 1 hour)
$cal = new IntlGregorianCalendar(2013, 9 /* October */, 27, 1, 30, 0);

var_dump($cal->inDaylightTime()); // false (default WALLTIME_LAST)

$cal->setRepeatedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1); // force time recalculation
var_dump($cal->inDaylightTime()); // true


Verifica se outro calendário é igual exceto pelo horário

  • « IntlCalendar::inDaylightTime
  • IntlCalendar::isLenient »
  • PHP Manual
  • IntlCalendar
  • Verifica se outro calendário é igual exceto pelo horário

IntlCalendar::isEquivalentTo

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isEquivalentTo — Verifica se outro calendário é igual exceto pelo horário

Descrição

Estilo orientado a objetos

public IntlCalendar::isEquivalentTo(IntlCalendar $other): bool

Estilo procedural

intlcal_is_equivalent_to(IntlCalendar $calendar, IntlCalendar $other): bool

Retorna se este objeto e o objeto informado são equivalentes para todos os propósitos exceto pelo horário definido neles. As localidades não precisam corresponder, desde que nenhuma mudança no comportamento resulte em diferenças. Isto inclui o fuso horário, se o modo leniente está definido, as configurações de horários de relógio repetidos e saltados, os dias da semana onde o final de semana inicia e termina e os horários onde tais transições ocorrem. A comparação também pode incluir outras configurações específicas de calendário, tal como o instante de transição do calendário juliano para o gregoriano.

Parâmetros

calendar

Uma instância de IntlCalendar.

other

O outro calendário com o qual a comparação será realizada.

Valor Retornado

Assumindo que não haja erros de argumentos, retorna true se os calendários forem equivalentes exceto possivelmente pelo horário definido neles.

Exemplos

Exemplo #1 IntlCalendar::isEquivalentTo()

<?php
$cal1 = IntlCalendar::createInstance('Europe/Lisbon', 'pt_BR');
$cal2 = IntlCalendar::createInstance('Europe/Lisbon', 'en_US');
$cal2->clear();

var_dump($cal1->isEquivalentTo($cal2)); // true

$cal3 = IntlCalendar::createInstance('Europe/Lisbon', 'es_ES');
var_dump($cal1->isEquivalentTo($cal3)); // false
var_dump($cal1->getFirstDayOfWeek(), // 1 (domingo)
$cal3->getFirstDayOfWeek()); // 2 (segunda-feira)

O exemplo acima produzirá:

bool(true)
bool(false)
int(1)
int(2)

Veja Também

  • IntlCalendar::equals() - Compara horários de dois objetos IntlCalendar para igualidade


Verifica se a interpretação de data/horário está no modo leniente

  • « IntlCalendar::isEquivalentTo
  • IntlCalendar::isSet »
  • PHP Manual
  • IntlCalendar
  • Verifica se a interpretação de data/horário está no modo leniente

IntlCalendar::isLenient

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isLenient — Verifica se a interpretação de data/horário está no modo leniente

Descrição

Estilo orientado a objetos

public IntlCalendar::isLenient(): bool

Estilo procedural

intlcal_is_lenient(IntlCalendar $calendar): bool

Retorna se a interpretação atual de data/horário está no modo leniente (o padrão). Se for este o caso, alguns valores que estejam fora dos limites para seus campos serão aceitos ao invés de disparar um erro.

Parâmetros

calendar

Uma instância de IntlCalendar.

Valor Retornado

Um bool representando se o calendário está definido para modo leniente.

Exemplos

Exemplo #1 IntlCalendar::isLenient()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');
ini_set('intl.use_exceptions', '1');

$cal = new IntlGregorianCalendar(2013, 6 /* julho */, 1);
var_dump(IntlDateFormatter::formatObject($cal), // 01/07/2013, 00:00:00
$cal->isLenient()); // true

$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 33);
var_dump(IntlDateFormatter::formatObject($cal)); // 02/08/2013, 00:00:00

$cal->setLenient(false);
var_dump($cal->isLenient()); // false
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 33);
var_dump(IntlDateFormatter::formatObject($cal)); // erro

O exemplo acima produzirá:

string(20) "01/07/2013, 00:00:00"
bool(true)
string(20) "02/08/2013, 00:00:00"
bool(false)

Fatal error: Uncaught IntlException: datefmt_format_object: error obtaining instant from IntlCalendar in /home/foobar/example.php:16
Stack trace:
#0 /home/foobar/example.php(16): IntlDateFormatter::formatObject()
#1 {main}
  thrown in /home/foobar/example.php on line 16


Verifica se um campo está definido

  • « IntlCalendar::isLenient
  • IntlCalendar::isWeekend »
  • PHP Manual
  • IntlCalendar
  • Verifica se um campo está definido

IntlCalendar::isSet

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isSet — Verifica se um campo está definido

Descrição

Estilo orientado a objetos

public IntlCalendar::isSet(int $field): bool

Estilo procedural

intlcal_is_set(IntlCalendar $calendar, int $field): bool

Retorna se um campo está definido (o oposto de clear). Campos definidos têm prioridade sobre campos indefinidos e sobre seus valores padrão quando a data e horário estão sendo calculados. Campos definidos mais tarde têm prioridade sobre campos definidos mais cedo.

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

Valor Retornado

Assumindo que não haja erros de argumentos, retorna true se o campo estiver definido.

Exemplos

Veja o exemplo em IntlCalendar::clear().

Veja Também

  • IntlCalendar::clear() - Limpa um campo ou todos os campos
  • IntlCalendar::set() - Define um campo de horário ou vários campos comuns de uma vez


Verifica se uma data e um horário estão no final de semana

  • « IntlCalendar::isSet
  • IntlCalendar::roll »
  • PHP Manual
  • IntlCalendar
  • Verifica se uma data e um horário estão no final de semana

IntlCalendar::isWeekend

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isWeekend — Verifica se uma data e um horário estão no final de semana

Descrição

Estilo orientado a objetos

public IntlCalendar::isWeekend(?float $timestamp = null): bool

Estilo procedural

intlcal_is_weekend(IntlCalendar $calendar, ?float $timestamp = null): bool

Retorna se o horário atual do objeto ou o timestamp fornecido ocorrem durante um final de semana no sistema de calendário deste objeto.

Esta função requer a ICU 4.4 ou posterior.

Parâmetros

calendar

Uma instância de IntlCalendar.

timestamp

Um timestamp opcional representando o número de milissegundos desde a época de referência, excluindo os segundos intercalares. Se for null, o horário atual do objeto é utilizado.

Valor Retornado

Um bool indicaando se o horário fornecido ou do objeto ocorre em um final de semana.

Em caso de falha, false também é retornado. Para detectar condições de erro, use intl_get_error_code() ou configure Intl para lançar exceções.

Exemplos

Exemplo #1 IntlCalendar::isWeekend()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = new IntlGregorianCalendar(NULL, 'en_US');
$cal->set(2013, 6 /* julho */, 7); // um domingo

var_dump($cal->isWeekend()); // true
var_dump($cal->isWeekend(strtotime('2013-07-01 00:00:00'))); // false, segunda-feira

$cal = new IntlGregorianCalendar(NULL, 'ar_SA');
$cal->set(2013, 6 /* julho */, 7); // um domingo
var_dump($cal->isWeekend()); // false, domingo não está no final de semana neste calendário

Veja Também

  • IntlCalendar::getDayOfWeekType() - Informa se o dia é dia de semana, de final de semana ou de transição entre os dois
  • IntlCalendar::getWeekendTransition() - Obtém o horário do dia no qual o final de semana inicia ou termina


Adiciona valor ao campo sem transferir para campos mais significativos

  • « IntlCalendar::isWeekend
  • IntlCalendar::set »
  • PHP Manual
  • IntlCalendar
  • Adiciona valor ao campo sem transferir para campos mais significativos

IntlCalendar::roll

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::roll — Adiciona valor ao campo sem transferir para campos mais significativos

Descrição

Estilo orientado a objetos

public IntlCalendar::roll(int $field, int|bool $value): bool

Estilo procedural

intlcal_roll(IntlCalendar $calendar, int $field, int|bool $value): bool

Adiciona uma quantidade (com sinal) a um campo. A diferença em relação a IntlCalendar::add() é que quando o valor do campo passar do limite, a função não transfere este transbordamento para campos mais significativos.

Parâmetros

calendar

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

value

A quantidade (com sinal) para adicionar ao campo, true para aumentar (adicionar 1), ou false para reduzir (subtrair 1).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::roll()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 5 /* junho */, 30);

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"

$cal->set(2013, 5 /* junho */, 30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTH, true); // soma +1
var_dump(IntlDateFormatter::formatObject($cal)); // "01/06/2013, 00:00:00"

O exemplo acima produzirá:

string(20) "01/07/2013, 00:00:00"
string(20) "01/06/2013, 00:00:00"

Veja Também

  • IntlCalendar::add() - Adiciona uma quantidade de tempo (com sinal) a um campo
  • IntlCalendar::set() - Define um campo de horário ou vários campos comuns de uma vez


Define um campo de horário ou vários campos comuns de uma vez

  • « IntlCalendar::roll
  • IntlCalendar::setDate »
  • PHP Manual
  • IntlCalendar
  • Define um campo de horário ou vários campos comuns de uma vez

IntlCalendar::set

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::set — Define um campo de horário ou vários campos comuns de uma vez

Descrição

Estilo orientado a objetos

public IntlCalendar::set(int $field, int $value): true
public IntlCalendar::set(
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): true

Estilo procedural

intlcal_set(IntlCalendar $cal, int $field, int $value): true
intlcal_set(
IntlCalendar $cal,
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): bool

Define um campo específico para o valor fornecido, ou define de uma só vez vários campos comuns. O intervalo de valores aceitos depende se o calendário está usado o modo leniente.

Para campos que conflitarem entre si, os campos que forem definidos mais tarde têm prioridade.

Este método não pode ser chamado com exatamente quatro argumentos.

Parâmetros

cal

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

value

O novo valor para o campo informado.

year

O novo valor para IntlCalendar::FIELD_YEAR.

month

O novo valor para IntlCalendar::FIELD_MONTH. A sequência de meses é baseada em zero, isto é, janeiro é representado por 0, fevereiro por 1, …, dezembro é 11 e undecember (se o calendário tiver) é 12.

dayOfMonth

O novo valor para IntlCalendar::FIELD_DAY_OF_MONTH.

hour

O novo valor para IntlCalendar::FIELD_HOUR_OF_DAY.

minute

O novo valor para IntlCalendar::FIELD_MINUTE.

second

O novo valor para IntlCalendar::FIELD_SECOND.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 IntlCalendar::set()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

// Chamadas feitas mais tarde têm prioridade
$cal = new IntlGregorianCalendar(2013, 6 /* julho */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));

$cal = new IntlGregorianCalendar(2013, 6 /* julho */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
// O horário não foi recalculado ainda. Se o ano estendido for limpo,
// o ano definido anteriormente será usado
$cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
var_dump(IntlDateFormatter::formatObject($cal));

O exemplo acima produzirá:

string(20) "01/07/2011, 00:00:00"
string(20) "01/07/2012, 00:00:00"

Veja Também

  • IntlCalendar::get() - Obtém o valor de um campo
  • IntlCalendar::add() - Adiciona uma quantidade de tempo (com sinal) a um campo
  • IntlCalendar::roll() - Adiciona valor ao campo sem transferir para campos mais significativos


Define campos de data

  • « IntlCalendar::set
  • IntlCalendar::setDateTime »
  • PHP Manual
  • IntlCalendar
  • Define campos de data

IntlCalendar::setDate

(PHP 8 >= 8.3.0)

IntlCalendar::setDate — Define campos de data

Descrição

public IntlCalendar::setDate(int $year, int $month, int $dayOfMonth): void

Define os campos de data para os valores fornecidos.

Parâmetros

year

O novo valor para IntlCalendar::FIELD_YEAR.

month

O novo valor para IntlCalendar::FIELD_MONTH. A sequência de meses é baseada em zero, isto é, janeiro é representado por 0, fevereiro por 1, …, dezembro é 11 e undecember (se o calendário tiver) é 12.

dayOfMonth

O novo valor para IntlCalendar::FIELD_DAY_OF_MONTH.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de IntlCalendar::setDate()

<?php
$intlCal = IntlCalendar::createInstance('UTC');

$intlCal->setDate(2012, 1 /* fevereiro */, 29);
?>


Define campos de data e horário

  • « IntlCalendar::setDate
  • IntlCalendar::setFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Define campos de data e horário

IntlCalendar::setDateTime

(PHP 8 >= 8.3.0)

IntlCalendar::setDateTime — Define campos de data e horário

Descrição

public IntlCalendar::setDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
?int $second = null
): void

Define campos de data e horário para os valores fornecidos.

Parâmetros

year

O novo valor para IntlCalendar::FIELD_YEAR.

month

O novo valor para IntlCalendar::FIELD_MONTH. A sequência de meses é baseada em zero, isto é, janeiro é representado por 0, fevereiro por 1, …, dezembro é 11 e undecember (se o calendário tiver) é 12.

dayOfMonth

O novo valor para IntlCalendar::FIELD_DAY_OF_MONTH.

hour

O novo valor para IntlCalendar::FIELD_HOUR_OF_DAY.

minute

O novo valor para IntlCalendar::FIELD_MINUTE.

second

O novo valor para IntlCalendar::FIELD_SECOND.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de IntlCalendar::setDateTime()

<?php
$intlCal = IntlCalendar::createInstance('UTC');

$intlCal->setDateTime(2012, 1 /* fevereiro */, 29, 23, 58);
?>


Define o dia da semana no qual a semana inicia

  • « IntlCalendar::setDateTime
  • IntlCalendar::setLenient »
  • PHP Manual
  • IntlCalendar
  • Define o dia da semana no qual a semana inicia

IntlCalendar::setFirstDayOfWeek

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setFirstDayOfWeek — Define o dia da semana no qual a semana inicia

Descrição

Estilo orientado a objetos

public IntlCalendar::setFirstDayOfWeek(int $dayOfWeek): true

Estilo procedural

intlcal_set_first_day_of_week(IntlCalendar $calendar, int $dayOfWeek): true

Define o dia da semana no qual a semana inicia. Isto afeta o comportamento de campos que dependem do conceito de início e fim da semana tais como IntlCalendar::FIELD_WEEK_OF_YEAR e IntlCalendar::FIELD_YEAR_WOY.

Parâmetros

calendar

Uma instância de IntlCalendar.

dayOfWeek

Uma das constantes IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAY.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 IntlCalendar::setFirstDayOfWeek()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = IntlCalendar::createInstance();
$cal->set(2013, 5 /* junho */, 30); // um domingo

var_dump($cal->getFirstDayOfWeek()); // 2 (segunda-feira)

echo IntlDateFormatter::formatObject($cal, <<<EOD
'dia da semana local: 'cc'
semana do mês : 'W'
semana do ano : 'ww
EOD
), "\n";

$cal->setFirstDayOfWeek(IntlCalendar::DOW_SUNDAY);

echo IntlDateFormatter::formatObject($cal, <<<EOD
'dia da semana local: 'cc'
semana do mês : 'W'
semana do ano : 'ww
EOD
), "\n";

O exemplo acima produzirá:

int(2)
dia da semana local: 7
semana do mês    : 4
semana do ano     : 26
dia da semana local: 1
semana do mês    : 5
semana do ano     : 27


Define se a interpretação de data/horário deve ser leniente

  • « IntlCalendar::setFirstDayOfWeek
  • IntlCalendar::setMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Define se a interpretação de data/horário deve ser leniente

IntlCalendar::setLenient

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setLenient — Define se a interpretação de data/horário deve ser leniente

Descrição

Estilo orientado a objetos

public IntlCalendar::setLenient(bool $lenient): true

Estilo procedural

intlcal_set_lenient(IntlCalendar $calendar, bool $lenient): true

Define se o calendário deve estar no ‘modo leniente’. Neste modo, alguns valores fora dos limites para alguns campos são aceitos, com comportamento similar ao da função IntlCalendar::add() (isto é, o valor transborda, carregando os campos mais significativos a cada vez que isso acontece). Se o modo leniente estiver desabilitado, tais valores irão gerar um erro.

Parâmetros

calendar

Uma instância de IntlCalendar.

lenient

Use true para habilitar o modo leniente; false para desabilitar.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Veja o exemplo em IntlCalendar::isLenient().


Define o número mínimo de dias que a primeira semana do ano ou do mês pode ter

  • « IntlCalendar::setLenient
  • IntlCalendar::setRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Define o número mínimo de dias que a primeira semana do ano ou do mês pode ter

IntlCalendar::setMinimalDaysInFirstWeek

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

IntlCalendar::setMinimalDaysInFirstWeek — Define o número mínimo de dias que a primeira semana do ano ou do mês pode ter

Descrição

Estilo orientado a objetos

public IntlCalendar::setMinimalDaysInFirstWeek(int $days): true

Estilo procedural

intlcal_set_minimal_days_in_first_week(IntlCalendar $calendar, int $days): true

Define o menor número de dias que a primeira semana do ano ou do mês precisa ter no novo ano ou no novo mês. Por exemplo, no calendário gregoriano, se este valor for 1, então a primeira semana do ano incluirá necessariamente o dia 1º de janeiro, enquanto que se este valor for 7, então a semana com o dia 1º de janeiro será a primeira semana do ano somente se o dia da semana para 1º de janeiro corresponder ao dia da semana retornado por IntlCalendar::getFirstDayOfWeek(); caso contrário será a última semana do ano anterior.

Parâmetros

calendar

Uma instância de IntlCalendar.

days

O número mínimo de dias a ser definido.

Valor Retornado

Sempre retorna true.

Erros/Exceções

ValueError se days estiver fora do intervalo (menos que 1 ou mais que 7).

Registro de Alterações

Versão | Descrição
8.0.0 | Um ValueError agora é lançado em caso de entrada inválida. Anteriormente, false era retornado.


Define o comportamento ao lidar com horário de relógio repetido ao sair do horário de verão

  • « IntlCalendar::setMinimalDaysInFirstWeek
  • IntlCalendar::setSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Define o comportamento ao lidar com horário de relógio repetido ao sair do horário de verão

IntlCalendar::setRepeatedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setRepeatedWallTimeOption — Define o comportamento ao lidar com horário de relógio repetido ao sair do horário de verão

Descrição

Estilo orientado a objetos

public IntlCalendar::setRepeatedWallTimeOption(int $option): true

Estilo procedural

intlcal_set_repeated_wall_time_option(IntlCalendar $calendar, int $option): true

Define a estratégia atual para lidar com horários de relógio que se repetem ao voltar o relógio no final do horário de verão. O valor padrão é IntlCalendar::WALLTIME_LAST (considera o instante após a transição). O outro valor possível é IntlCalendar::WALLTIME_FIRST (considera o instante que ocorre antes da transição).

Esta função requer a ICU 4.9 ou posterior.

Parâmetros

calendar

Uma instância de IntlCalendar.

option

Uma das constantes IntlCalendar::WALLTIME_FIRST ou IntlCalendar::WALLTIME_LAST.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Veja o exemplo em IntlCalendar::getRepeatedWallTimeOption().

Veja Também

  • intlCalendar::getRepeatedWallTimeOption() - Obtém o comportamento ao lidar com o horário de relógio repetido
  • intlCalendar::setSkippedWallTimeOption() - Define o comportamento ao lidar com horário de relógio saltado ao entrar no horário de verão
  • intlCalendar::getSkippedWallTimeOption() - Obtém o comportamento para o horário de relógio saltado


Define o comportamento ao lidar com horário de relógio saltado ao entrar no horário de verão

  • « IntlCalendar::setRepeatedWallTimeOption
  • IntlCalendar::setTime »
  • PHP Manual
  • IntlCalendar
  • Define o comportamento ao lidar com horário de relógio saltado ao entrar no horário de verão

IntlCalendar::setSkippedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setSkippedWallTimeOption — Define o comportamento ao lidar com horário de relógio saltado ao entrar no horário de verão

Descrição

Estilo orientado a objetos

public IntlCalendar::setSkippedWallTimeOption(int $option): true

Estilo procedural

intlcal_set_skipped_wall_time_option(IntlCalendar $calendar, int $option): true

Define a estratégia atual para lidar com horários de relógio que são saltados ao adiantar o relógio no início do horário de verão. O valor padrão é IntlCalendar::WALLTIME_LAST (considera como o mesmo instante do tempo em que o horário do relógio é uma hora a mais). Valores alternativos são IntlCalendar::WALLTIME_FIRST (mesmo instante daquele com horário de relógio com uma hora a menos) e IntlCalendar::WALLTIME_NEXT_VALID (mesmo instante em que o horário de verão inicia).

Isto afeta apenas o instante representado pelo calendário (como reportado por IntlCalendar::getTime()), os valores de campo não serão re-escritos de acordo.

O calendário precisa estar em modo leniente para que esta opção tenha algum efeito, caso contrário a tentativa de se definir um horário não existente irá causar um erro.

Esta função requer a ICU 4.9 ou posterior.

Parâmetros

calendar

Uma instância de IntlCalendar.

option

Uma das constantes IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST ou
IntlCalendar::WALLTIME_NEXT_VALID.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Veja o exemplo em IntlCalendar::getSkippedWallTimeOption().

Veja Também

  • intlCalendar::getSkippedWallTimeOption() - Obtém o comportamento para o horário de relógio saltado
  • intlCalendar::setRepeatedWallTimeOption() - Define o comportamento ao lidar com horário de relógio repetido ao sair do horário de verão
  • intlCalendar::getRepeatedWallTimeOption() - Obtém o comportamento ao lidar com o horário de relógio repetido


Define o horário do calendário em milissegundos desde a época de referência

  • « IntlCalendar::setSkippedWallTimeOption
  • IntlCalendar::setTimeZone »
  • PHP Manual
  • IntlCalendar
  • Define o horário do calendário em milissegundos desde a época de referência

IntlCalendar::setTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setTime — Define o horário do calendário em milissegundos desde a época de referência

Descrição

Estilo orientado a objetos

public IntlCalendar::setTime(float $timestamp): bool

Estilo procedural

intlcal_set_time(IntlCalendar $calendar, float $timestamp): bool

Define o instante representado por este objeto. O instante é representado por um float cujo valor deve ser um número inteiro de milissegundos desde a época de referência (1 Jan 1970 00:00:00.000 UTC), ignorando segundos intercalares. Todos os valores de campo serão recalculados de acordo.

Parâmetros

calendar

Uma instância de IntlCalendar.

timestamp

Um instante representado pelo número de milissegundos desde a época de referência, ignorando segundos intercalares.

Valor Retornado

Retorna true em caso de sucesso e false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::setTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');

$cal = new IntlGregorianCalendar(2013, 5 /* maio */, 1, 12, 0, 0);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

/* Em Lisboa, em 2013-10-27 at 0200, o relógio volta uma hora e
o fuso horário passa de UTC+01 para UTC+00 */

$cal->setTime(strtotime('2013-10-27 00:30:00 UTC') * 1000.);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

$cal->setTime(strtotime('2013-10-27 01:30:00 UTC') * 1000.);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

O exemplo acima produzirá:

samedi 1 juin 2013 12:00:00 heure avancée d’Europe de l’Ouest
dimanche 27 octobre 2013 01:30:00 heure avancée d’Europe de l’Ouest
dimanche 27 octobre 2013 01:30:00 heure normale d’Europe de l’Ouest


Define o fuso horário usado por este calendário

  • « IntlCalendar::setTime
  • IntlCalendar::toDateTime »
  • PHP Manual
  • IntlCalendar
  • Define o fuso horário usado por este calendário

IntlCalendar::setTimeZone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setTimeZone — Define o fuso horário usado por este calendário

Descrição

Estilo orientado a objetos

public IntlCalendar::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool

Estilo procedural

intlcal_set_time_zone(IntlCalendar $calendar, IntlTimeZone|DateTimeZone|string|null $timezone): bool

Define um novo fuso horário para este calendário. O horário representado pelo objeto é preservado em detrimento dos valores de campo.

Parâmetros

calendar

Uma instância de IntlCalendar.

timezone

O novo fuso horário a ser usado por este calendário. Pode ser especificado das seguintes maneiras:

  • null, neste caso o fuso horário padrão será usado, como especificado na configuração ini date.timezone ou através da função date_default_timezone_set() e como retornado por date_default_timezone_get().

  • Um objeto IntlTimeZone, que será usado diretamente.

  • Um objeto DateTimeZone. Seu identificador será extraído e um objeto de fuso horário ICU será criado; o fuso horário será apoiado pelo banco de dados da ICU, não pelo do PHP.

  • Uma string, que deve ser um identificador de fuso horário ICU válido. Consulte a função IntlTimeZone::createTimeZoneIDEnumeration(). Deslocamentos puros como "GMT+08:30" também são aceitos.

Valor Retornado

Retorna true em caso de sucesso e false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::setTimeZone()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = new IntlGregorianCalendar(2013, 5 /* maio */, 1, 12, 0, 0);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

$cal->setTimeZone(IntlTimeZone::getGMT());
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

$cal->setTimeZone('GMT+03:33');
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

O exemplo acima produzirá:

sábado, 1 de junio de 2013 12:00:00 Hora de verano de Europa occidental
(instant 1370084400000)
sábado, 1 de junio de 2013 11:00:00 GMT
(instant 1370084400000)
sábado, 1 de junio de 2013 14:33:00 GMT+03:33
(instant 1370084400000)


Converte um objeto IntlCalendar para um DateTime

  • « IntlCalendar::setTimeZone
  • IntlGregorianCalendar »
  • PHP Manual
  • IntlCalendar
  • Converte um objeto IntlCalendar para um DateTime

IntlCalendar::toDateTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a2)

IntlCalendar::toDateTime — Converte um objeto IntlCalendar para um DateTime

Descrição

Estilo orientado a objetos

public IntlCalendar::toDateTime(): DateTime|false

Estilo procedural

intlcal_to_date_time(IntlCalendar $calendar): DateTime|false

Cria um objeto DateTime que representa o mesmo instante (até a precisão de segundos, com um erro de arredondamento de menos de 1 segundo) e que tenha um fuso horário análogo a este objeto (a diferença sendo que o fuso horário de DateTime será suportado pelo PHP enquanto que o fuso horário de IntlCalendar será suportado pela ICU).

Parâmetros

calendar

Uma instância de IntlCalendar.

Valor Retornado

Um objeto DateTime com o mesmo fuso horário deste objeto (embora usando o banco de dados do PHP no lugar do banco da ICU) e com o mesmo horário, exceto pela precisão menos (precisão de segundos ao invés de milissegundos). Retorna false em caso de falha.

Exemplos

Exemplo #1 IntlCalendar::toDateTime()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'pt_PT');

$cal = IntlCalendar::createInstance('Europe/Lisbon'); //horário atual

$dt = $cal->toDateTime();
print_r($dt);

O exemplo acima produzirá:

DateTime Object
(
    [date] => 2024-01-24 13:32:05.000000
    [timezone_type] => 3
    [timezone] => Europe/Lisbon
)

Veja Também

  • IntlCalendar::fromDateTime() - Cria um IntlCalendar a partir de um objeto DateTime ou uma string
  • IntlCalendar::getTime() - Obtém o horário atualmente representado pelo objeto
  • IntlCalendar::createInstance() - Cria um novo IntlCalendar
  • DateTime::__construct() - Retorna um novo objeto DateTime


A classe IntlGregorianCalendar

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

Resumo da classe

class IntlGregorianCalendar extends IntlCalendar {
/* Constantes herdadas */
public const int IntlCalendar::FIELD_ERA;
public const int IntlCalendar::FIELD_YEAR;
public const int IntlCalendar::FIELD_MONTH;
public const int IntlCalendar::FIELD_WEEK_OF_YEAR;
public const int IntlCalendar::FIELD_WEEK_OF_MONTH;
public const int IntlCalendar::FIELD_DATE;
public const int IntlCalendar::FIELD_DAY_OF_YEAR;
public const int IntlCalendar::FIELD_DAY_OF_WEEK;
public const int IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH;
public const int IntlCalendar::FIELD_AM_PM;
public const int IntlCalendar::FIELD_HOUR;
public const int IntlCalendar::FIELD_HOUR_OF_DAY;
public const int IntlCalendar::FIELD_MINUTE;
public const int IntlCalendar::FIELD_SECOND;
public const int IntlCalendar::FIELD_MILLISECOND;
public const int IntlCalendar::FIELD_ZONE_OFFSET;
public const int IntlCalendar::FIELD_DST_OFFSET;
public const int IntlCalendar::FIELD_YEAR_WOY;
public const int IntlCalendar::FIELD_DOW_LOCAL;
public const int IntlCalendar::FIELD_EXTENDED_YEAR;
public const int IntlCalendar::FIELD_JULIAN_DAY;
public const int IntlCalendar::FIELD_MILLISECONDS_IN_DAY;
public const int IntlCalendar::FIELD_IS_LEAP_MONTH;
public const int IntlCalendar::FIELD_FIELD_COUNT;
public const int IntlCalendar::FIELD_DAY_OF_MONTH;
public const int IntlCalendar::DOW_SUNDAY;
public const int IntlCalendar::DOW_MONDAY;
public const int IntlCalendar::DOW_TUESDAY;
public const int IntlCalendar::DOW_WEDNESDAY;
public const int IntlCalendar::DOW_THURSDAY;
public const int IntlCalendar::DOW_FRIDAY;
public const int IntlCalendar::DOW_SATURDAY;
public const int IntlCalendar::DOW_TYPE_WEEKDAY;
public const int IntlCalendar::DOW_TYPE_WEEKEND;
public const int IntlCalendar::DOW_TYPE_WEEKEND_OFFSET;
public const int IntlCalendar::DOW_TYPE_WEEKEND_CEASE;
public const int IntlCalendar::WALLTIME_FIRST;
public const int IntlCalendar::WALLTIME_LAST;
public const int IntlCalendar::WALLTIME_NEXT_VALID;
/* Métodos */
public __construct(IntlTimeZone $tz = ?, string $locale = ?)
public __construct(int $timeZoneOrYear, int $localeOrMonth, int $dayOfMonth)
public __construct(
int $timeZoneOrYear,
int $localeOrMonth,
int $dayOfMonth,
int $hour,
int $minute,
int $second = ?
)
public static createFromDate(int $year, int $month, int $dayOfMonth): static
public static createFromDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
?int $second = null
): static
public getGregorianChange(): float
public isLeapYear(int $year): bool
public setGregorianChange(float $timestamp): bool
/* Métodos herdados */
public IntlCalendar::add(int $field, int $value): bool
public IntlCalendar::after(IntlCalendar $other): bool
public IntlCalendar::before(IntlCalendar $other): bool
public IntlCalendar::clear(?int $field = null): true
public static IntlCalendar::createInstance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar
public IntlCalendar::equals(IntlCalendar $other): bool
public IntlCalendar::fieldDifference(float $timestamp, int $field): int|false
public static IntlCalendar::fromDateTime(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar
public IntlCalendar::get(int $field): int|false
public IntlCalendar::getActualMaximum(int $field): int|false
public IntlCalendar::getActualMinimum(int $field): int|false
public static IntlCalendar::getAvailableLocales(): array
public IntlCalendar::getDayOfWeekType(int $dayOfWeek): int|false
public IntlCalendar::getErrorCode(): int|false
public IntlCalendar::getErrorMessage(): string|false
public IntlCalendar::getFirstDayOfWeek(): int|false
public IntlCalendar::getGreatestMinimum(int $field): int|false
public static IntlCalendar::getKeywordValuesForLocale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false
public IntlCalendar::getLeastMaximum(int $field): int|false
public IntlCalendar::getLocale(int $type): string|false
public IntlCalendar::getMaximum(int $field): int|false
public IntlCalendar::getMinimalDaysInFirstWeek(): int|false
public IntlCalendar::getMinimum(int $field): int|false
public static IntlCalendar::getNow(): float
public IntlCalendar::getRepeatedWallTimeOption(): int
public IntlCalendar::getSkippedWallTimeOption(): int
public IntlCalendar::getTime(): float|false
public IntlCalendar::getTimeZone(): IntlTimeZone|false
public IntlCalendar::getType(): string
public IntlCalendar::getWeekendTransition(int $dayOfWeek): int|false
public IntlCalendar::inDaylightTime(): bool
public IntlCalendar::isEquivalentTo(IntlCalendar $other): bool
public IntlCalendar::isLenient(): bool
public IntlCalendar::isSet(int $field): bool
public IntlCalendar::isWeekend(?float $timestamp = null): bool
public IntlCalendar::roll(int $field, int|bool $value): bool
public IntlCalendar::set(int $field, int $value): true
public IntlCalendar::set(
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): true
public IntlCalendar::setDate(int $year, int $month, int $dayOfMonth): void
public IntlCalendar::setDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
?int $second = null
): void
public IntlCalendar::setFirstDayOfWeek(int $dayOfWeek): true
public IntlCalendar::setLenient(bool $lenient): true
public IntlCalendar::setMinimalDaysInFirstWeek(int $days): true
public IntlCalendar::setRepeatedWallTimeOption(int $option): true
public IntlCalendar::setSkippedWallTimeOption(int $option): true
public IntlCalendar::setTime(float $timestamp): bool
public IntlCalendar::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool
public IntlCalendar::toDateTime(): DateTime|false
}

Índice

  • IntlGregorianCalendar::__construct — Cria um objeto de calendário gregoriano
  • IntlGregorianCalendar::createFromDate — Cria uma nova instância de IntlGregorianCalendar a partir de uma data
  • IntlGregorianCalendar::createFromDateTime — Cria uma instância de IntlGregorianCalendar a partir de data e horário
  • IntlGregorianCalendar::getGregorianChange — Obtém a data de mudança do calendário gregoriano
  • IntlGregorianCalendar::isLeapYear — Determina se o ano é bissexto
  • IntlGregorianCalendar::setGregorianChange — Define a data de mudança do calendário gregoriano


Cria um objeto de calendário gregoriano

  • « IntlGregorianCalendar
  • IntlGregorianCalendar::createFromDate »
  • PHP Manual
  • IntlGregorianCalendar
  • Cria um objeto de calendário gregoriano

IntlGregorianCalendar::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::__construct — Cria um objeto de calendário gregoriano

Descrição

public IntlGregorianCalendar::__construct(IntlTimeZone $tz = ?, string $locale = ?)
public IntlGregorianCalendar::__construct(int $timeZoneOrYear, int $localeOrMonth, int $dayOfMonth)
public IntlGregorianCalendar::__construct(
int $timeZoneOrYear,
int $localeOrMonth,
int $dayOfMonth,
int $hour,
int $minute,
int $second = ?
)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

tz

locale

timeZoneOrYear

localeOrMonth

dayOfMonth

hour

minute

second


Cria uma nova instância de IntlGregorianCalendar a partir de uma data

  • « IntlGregorianCalendar::__construct
  • IntlGregorianCalendar::createFromDateTime »
  • PHP Manual
  • IntlGregorianCalendar
  • Cria uma nova instância de IntlGregorianCalendar a partir de uma data

IntlGregorianCalendar::createFromDate

(PHP 8 >= 8.3.0)

IntlGregorianCalendar::createFromDate — Cria uma nova instância de IntlGregorianCalendar a partir de uma data

Descrição

public static IntlGregorianCalendar::createFromDate(int $year, int $month, int $dayOfMonth): static

Cria uma nova instância de IntlGregorianCalendar a partir de uma data.

Parâmetros

year

O novo valor para o ano, IntlGregorianCalendar::FIELD_YEAR.

month

O novo valor para o mês, IntlGregorianCalendar::FIELD_MONTH. A sequência de meses é baseada em zero, isto é, janeiro é representado por 0, fevereiro por 1, …, dezembro é 11 e December is 11 and Undecember (se o calendário o tiver) é 12.

dayOfMonth

O novo valor para o dia, IntlGregorianCalendar::FIELD_DAY_OF_MONTH.

Valor Retornado

Retorna uma nova instância de IntlGregorianCalendar.

Exemplos

Exemplo #1 Exemplo de IntlGregorianCalendar::createFromDate()

<?php

$intlCalendar = IntlGregorianCalendar::createFromDate(2023, 11, 23);
var_dump($intlCalendar);
?>

O exemplo acima produzirá algo semelhante a:

object(IntlGregorianCalendar)#1 (5) {
  ["valid"]=>
  bool(true)
  ["type"]=>
  string(9) "gregorian"
  ["timeZone"]=>
  array(4) {
    ["valid"]=>
    bool(true)
    ["id"]=>
    string(16) "Europe/Amsterdam"
    ["rawOffset"]=>
    int(3600000)
    ["currentOffset"]=>
    int(3600000)
  }
  ["locale"]=>
  string(11) "en_US_POSIX"
  ["fields"]=>
  array(23) {
    ["era"]=>
    int(1)
    ["year"]=>
    int(2023)
    ["month"]=>
    int(11)
    ["week of year"]=>
    int(51)
    ["week of month"]=>
    int(4)
    ["day of year"]=>
    int(357)
    ["day of month"]=>
    int(23)
    ["day of week"]=>
    int(7)
    ["day of week in month"]=>
    int(4)
    ["AM/PM"]=>
    int(0)
    ["hour"]=>
    int(0)
    ["hour of day"]=>
    int(0)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
    ["millisecond"]=>
    int(0)
    ["zone offset"]=>
    int(3600000)
    ["DST offset"]=>
    int(0)
    ["year for week of year"]=>
    int(2023)
    ["localized day of week"]=>
    int(7)
    ["extended year"]=>
    int(2023)
    ["julian day"]=>
    int(2460302)
    ["milliseconds in day"]=>
    int(0)
    ["is leap month"]=>
    int(0)
  }
}

Veja Também

  • IntlGregorianCalendar::createFromDateTime() - Cria uma instância de IntlGregorianCalendar a partir de data e horário


Cria uma instância de IntlGregorianCalendar a partir de data e horário

  • « IntlGregorianCalendar::createFromDate
  • IntlGregorianCalendar::getGregorianChange »
  • PHP Manual
  • IntlGregorianCalendar
  • Cria uma instância de IntlGregorianCalendar a partir de data e horário

IntlGregorianCalendar::createFromDateTime

(PHP 8 >= 8.3.0)

IntlGregorianCalendar::createFromDateTime — Cria uma instância de IntlGregorianCalendar a partir de data e horário

Descrição

public static IntlGregorianCalendar::createFromDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
?int $second = null
): static

Cria uma nova instância de IntlGregorianCalendar a partir de data e horário.

Parâmetros

year

O novo valor para o ano, IntlGregorianCalendar::FIELD_YEAR.

month

O novo valor para o mês, IntlGregorianCalendar::FIELD_MONTH. A sequência de meses é baseada em zero, isto é, janeiro é representado por 0, fevereiro por 1, …, dezembro é 11 e December is 11 and Undecember (se o calendário o tiver) é 12.

dayOfMonth

O novo valor para o dia, IntlGregorianCalendar::FIELD_DAY_OF_MONTH.

hour

O novo valor para a hora, IntlGregorianCalendar::FIELD_HOUR_OF_DAY.

minute

O novo valor para o minuto, IntlGregorianCalendar::FIELD_MINUTE.

second

O novo valor para o segundo, IntlGregorianCalendar::FIELD_SECOND.

Valor Retornado

Retorna uma nova instância de IntlGregorianCalendar.

Exemplos

Exemplo #1 Exemplo de IntlGregorianCalendar::createFromDateTime()

<?php

$intlCalendar = IntlGregorianCalendar::createFromDateTime(2023, 11, 23, 12, 00);
var_dump($intlCalendar);
?>

O exemplo acima produzirá algo semelhante a:

object(IntlGregorianCalendar)#1 (5) {
  ["valid"]=>
  bool(true)
  ["type"]=>
  string(9) "gregorian"
  ["timeZone"]=>
  array(4) {
    ["valid"]=>
    bool(true)
    ["id"]=>
    string(16) "Europe/Amsterdam"
    ["rawOffset"]=>
    int(3600000)
    ["currentOffset"]=>
    int(3600000)
  }
  ["locale"]=>
  string(11) "en_US_POSIX"
  ["fields"]=>
  array(23) {
    ["era"]=>
    int(1)
    ["year"]=>
    int(2023)
    ["month"]=>
    int(11)
    ["week of year"]=>
    int(51)
    ["week of month"]=>
    int(4)
    ["day of year"]=>
    int(357)
    ["day of month"]=>
    int(23)
    ["day of week"]=>
    int(7)
    ["day of week in month"]=>
    int(4)
    ["AM/PM"]=>
    int(1)
    ["hour"]=>
    int(0)
    ["hour of day"]=>
    int(12)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
    ["millisecond"]=>
    int(0)
    ["zone offset"]=>
    int(3600000)
    ["DST offset"]=>
    int(0)
    ["year for week of year"]=>
    int(2023)
    ["localized day of week"]=>
    int(7)
    ["extended year"]=>
    int(2023)
    ["julian day"]=>
    int(2460302)
    ["milliseconds in day"]=>
    int(43200000)
    ["is leap month"]=>
    int(0)
  }
}

Veja Também

  • IntlGregorianCalendar::createFromDate() - Cria uma nova instância de IntlGregorianCalendar a partir de uma data


Obtém a data de mudança do calendário gregoriano

  • « IntlGregorianCalendar::createFromDateTime
  • IntlGregorianCalendar::isLeapYear »
  • PHP Manual
  • IntlGregorianCalendar
  • Obtém a data de mudança do calendário gregoriano

IntlGregorianCalendar::getGregorianChange

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::getGregorianChange — Obtém a data de mudança do calendário gregoriano

Descrição

public IntlGregorianCalendar::getGregorianChange(): float

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a data de mudança.


Determina se o ano é bissexto

  • « IntlGregorianCalendar::getGregorianChange
  • IntlGregorianCalendar::setGregorianChange »
  • PHP Manual
  • IntlGregorianCalendar
  • Determina se o ano é bissexto

IntlGregorianCalendar::isLeapYear

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::isLeapYear — Determina se o ano é bissexto

Descrição

public IntlGregorianCalendar::isLeapYear(int $year): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

year

Valor Retornado

Retorna true para anos bissextos, false caso contrário e em caso de falha.


Define a data de mudança do calendário gregoriano

  • « IntlGregorianCalendar::isLeapYear
  • IntlTimeZone »
  • PHP Manual
  • IntlGregorianCalendar
  • Define a data de mudança do calendário gregoriano

IntlGregorianCalendar::setGregorianChange

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::setGregorianChange — Define a data de mudança do calendário gregoriano

Descrição

public IntlGregorianCalendar::setGregorianChange(float $timestamp): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timestamp

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


A classe IntlTimeZone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

Introdução

Resumo da classe

class IntlTimeZone {
/* Constantes */
public const int DISPLAY_SHORT;
public const int DISPLAY_LONG;
public const int DISPLAY_SHORT_GENERIC;
public const int DISPLAY_LONG_GENERIC;
public const int DISPLAY_SHORT_GMT;
public const int DISPLAY_LONG_GMT;
public const int DISPLAY_SHORT_COMMONLY_USED;
public const int DISPLAY_GENERIC_LOCATION;
public const int TYPE_ANY;
public const int TYPE_CANONICAL;
public const int TYPE_CANONICAL_LOCATION;
/* Métodos */
private __construct()
public static countEquivalentIDs(string $timezoneId): int|false
public static createDefault(): IntlTimeZone
public static createEnumeration(IntlTimeZone|string|int|float|null $countryOrRawOffset = null): IntlIterator|false
public static createTimeZone(string $timezoneId): ?IntlTimeZone
public static createTimeZoneIDEnumeration(int $type, ?string $region = null, ?int $rawOffset = null): IntlIterator|false
public static fromDateTimeZone(DateTimeZone $timezone): ?IntlTimeZone
public static getCanonicalID(string $timezoneId, bool &$isSystemId = null): string|false
public getDisplayName(bool $dst = false, int $style = IntlTimeZone::DISPLAY_LONG, ?string $locale = null): string|false
public getDSTSavings(): int
public static getEquivalentID(string $timezoneId, int $offset): string|false
public getErrorCode(): int|false
public getErrorMessage(): string|false
public static getGMT(): IntlTimeZone
public getID(): string|false
public static getIDForWindowsID(string $timezoneId, ?string $region = null): string|false
public getOffset(
float $timestamp,
bool $local,
int &$rawOffset,
int &$dstOffset
): bool
public getRawOffset(): int
public static getRegion(string $timezoneId): string|false
public static getTZDataVersion(): string|false
public static getUnknown(): IntlTimeZone
public static getWindowsID(string $timezoneId): string|false
public hasSameRules(IntlTimeZone $other): bool
public toDateTimeZone(): DateTimeZone|false
public useDaylightTime(): bool
}

Constantes pré-definidas

IntlTimeZone::DISPLAY_SHORT

IntlTimeZone::DISPLAY_LONG

IntlTimeZone::DISPLAY_SHORT_GENERIC

IntlTimeZone::DISPLAY_LONG_GENERIC

IntlTimeZone::DISPLAY_SHORT_GMT

IntlTimeZone::DISPLAY_LONG_GMT

IntlTimeZone::DISPLAY_SHORT_COMMONLY_USED

IntlTimeZone::DISPLAY_GENERIC_LOCATION

IntlTimeZone::TYPE_ANY

IntlTimeZone::TYPE_CANONICAL

IntlTimeZone::TYPE_CANONICAL_LOCATION

Índice

  • IntlTimeZone::__construct — Construtor privado para não permitir instanciação direta
  • IntlTimeZone::countEquivalentIDs — Obtém o número de IDs no grupo de equivalÇencia que inclui o ID informado
  • IntlTimeZone::createDefault — Create a new copy of the default timezone for this host
  • IntlTimeZone::createEnumeration — Obtém uma enumeração a partir de IDs de fuso horário associados com o país informado ou com o deslocamento UTC
  • IntlTimeZone::createTimeZone — Cria um objeto IntlTimeZone para o ID informado
  • IntlTimeZone::createTimeZoneIDEnumeration — Obtém uma enumeração a partir de IDs de fuso horário do sistema com as condições de filtro informadas
  • IntlTimeZone::fromDateTimeZone — Cria um objeto IntlTimeZone a partir de um DateTimeZone
  • IntlTimeZone::getCanonicalID — Obtém o ID do fuso horário de sistema canônico ou o cutomizado normalizado para o ID de fuso horário informado
  • IntlTimeZone::getDisplayName — Obtém o nome do fuso horário adequado para apresentação ao usuário
  • IntlTimeZone::getDSTSavings — Obtém a quantidade de tempo a ser adicionado ao horário local padrão para obter o horário local real de relógio
  • IntlTimeZone::getEquivalentID — Obtém um ID no grupo de equivalência que inclui o ID informado
  • IntlTimeZone::getErrorCode — Obtém o último código de erro no objeto
  • IntlTimeZone::getErrorMessage — Obtém a última mensagem de erro no objeto
  • IntlTimeZone::getGMT — Cria um fuso horário GMT (UTC)
  • IntlTimeZone::getID — Obtém o ID do fuso horário
  • IntlTimeZone::getIDForWindowsID — Traduz um fuso horário do Windows para um fuso horário de sistema
  • IntlTimeZone::getOffset — Obtém o deslocamento UTC padrão e o deslocamento com horário de verão para um determinado timestamp Unix
  • IntlTimeZone::getRawOffset — Obtém o deslocamento UTC puro (antes de considerar horário de verão)
  • IntlTimeZone::getRegion — Obtém o código da região associada com o ID de fuso horário de sistema informado
  • IntlTimeZone::getTZDataVersion — Obtém a versão de dados de fuso horário atualmente usados pela ICU
  • IntlTimeZone::getUnknown — Obtém o fuso horário "desconhecido"
  • IntlTimeZone::getWindowsID — Traduz um fuso horário de sistema em um fuso horário do Windows
  • IntlTimeZone::hasSameRules — Verifica se um fuso horário tem as mesmas regras e deslocamentos de um outro
  • IntlTimeZone::toDateTimeZone — Converte em um objeto DateTimeZone
  • IntlTimeZone::useDaylightTime — Verifica se o fuso horário usa horário de verão


Construtor privado para não permitir instanciação direta

  • « IntlTimeZone
  • IntlTimeZone::countEquivalentIDs »
  • PHP Manual
  • IntlTimeZone
  • Construtor privado para não permitir instanciação direta

IntlTimeZone::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::__construct — Construtor privado para não permitir instanciação direta

Descrição

private IntlTimeZone::__construct()

Parâmetros

Esta função não possui parâmetros.


Obtém o número de IDs no grupo de equivalÇencia que inclui o ID informado

  • « IntlTimeZone::__construct
  • IntlTimeZone::createDefault »
  • PHP Manual
  • IntlTimeZone
  • Obtém o número de IDs no grupo de equivalÇencia que inclui o ID informado

IntlTimeZone::countEquivalentIDs

intltz_count_equivalent_ids

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::countEquivalentIDs -- intltz_count_equivalent_ids — Obtém o número de IDs no grupo de equivalÇencia que inclui o ID informado

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::countEquivalentIDs(string $timezoneId): int|false

Estilo procedural:

intltz_count_equivalent_ids(string $timezoneId): int|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timezoneId

Valor Retornado


Create a new copy of the default timezone for this host

  • « IntlTimeZone::countEquivalentIDs
  • IntlTimeZone::createEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Create a new copy of the default timezone for this host

IntlTimeZone::createDefault

intltz_create_default

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::createDefault -- intltz_create_default — Create a new copy of the default timezone for this host

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::createDefault(): IntlTimeZone

Estilo procedural:

intltz_create_default(): IntlTimeZone

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém uma enumeração a partir de IDs de fuso horário associados com o país informado ou com o deslocamento UTC

  • « IntlTimeZone::createDefault
  • IntlTimeZone::createTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Obtém uma enumeração a partir de IDs de fuso horário associados com o país informado ou com o deslocamento UTC

IntlTimeZone::createEnumeration

intltz_create_enumeration

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::createEnumeration -- intltz_create_enumeration — Obtém uma enumeração a partir de IDs de fuso horário associados com o país informado ou com o deslocamento UTC

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::createEnumeration(IntlTimeZone|string|int|float|null $countryOrRawOffset = null): IntlIterator|false

Estilo procedural:

intltz_create_enumeration(IntlTimeZone|string|int|float|null $countryOrRawOffset = null): IntlIterator|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

countryOrRawOffset

Valor Retornado


Cria um objeto IntlTimeZone para o ID informado

  • « IntlTimeZone::createEnumeration
  • IntlTimeZone::createTimeZoneIDEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Cria um objeto IntlTimeZone para o ID informado

IntlTimeZone::createTimeZone

intltz_create_time_zone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::createTimeZone -- intltz_create_time_zone — Cria um objeto IntlTimeZone para o ID informado

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::createTimeZone(string $timezoneId): ?IntlTimeZone

Estilo procedural:

intltz_create_time_zone(string $timezoneId): ?IntlTimeZone

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timezoneId

Valor Retornado


Obtém uma enumeração a partir de IDs de fuso horário do sistema com as condições de filtro informadas

  • « IntlTimeZone::createTimeZone
  • IntlTimeZone::fromDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Obtém uma enumeração a partir de IDs de fuso horário do sistema com as condições de filtro informadas

IntlTimeZone::createTimeZoneIDEnumeration

intltz_create_time_zone_id_enumeration

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlTimeZone::createTimeZoneIDEnumeration -- intltz_create_time_zone_id_enumeration — Obtém uma enumeração a partir de IDs de fuso horário do sistema com as condições de filtro informadas

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::createTimeZoneIDEnumeration(int $type, ?string $region = null, ?int $rawOffset = null): IntlIterator|false

Estilo procedural:

intltz_create_time_zone_id_enumeration(int $type, ?string $region = null, ?int $rawOffset = null): IntlIterator|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

type

region

rawOffset

Valor Retornado

Retorna um objeto IntlIterator ou false em caso de falha.


Cria um objeto IntlTimeZone a partir de um DateTimeZone

  • « IntlTimeZone::createTimeZoneIDEnumeration
  • IntlTimeZone::getCanonicalID »
  • PHP Manual
  • IntlTimeZone
  • Cria um objeto IntlTimeZone a partir de um DateTimeZone

IntlTimeZone::fromDateTimeZone

intltz_from_date_time_zone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::fromDateTimeZone -- intltz_from_date_time_zone — Cria um objeto IntlTimeZone a partir de um DateTimeZone

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::fromDateTimeZone(DateTimeZone $timezone): ?IntlTimeZone

Estilo procedural:

intltz_from_date_time_zone(DateTimeZone $timezone): ?IntlTimeZone

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timezone

Valor Retornado


Obtém o ID do fuso horário de sistema canônico ou o cutomizado normalizado para o ID de fuso horário informado

  • « IntlTimeZone::fromDateTimeZone
  • IntlTimeZone::getDisplayName »
  • PHP Manual
  • IntlTimeZone
  • Obtém o ID do fuso horário de sistema canônico ou o cutomizado normalizado para o ID de fuso horário informado

IntlTimeZone::getCanonicalID

intltz_get_canonical_id

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getCanonicalID -- intltz_get_canonical_id — Obtém o ID do fuso horário de sistema canônico ou o cutomizado normalizado para o ID de fuso horário informado

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::getCanonicalID(string $timezoneId, bool &$isSystemId = null): string|false

Estilo procedural:

intltz_get_canonical_id(string $timezoneId, bool &$isSystemId = null): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timezoneId

isSystemId

Valor Retornado


Obtém o nome do fuso horário adequado para apresentação ao usuário

  • « IntlTimeZone::getCanonicalID
  • IntlTimeZone::getDSTSavings »
  • PHP Manual
  • IntlTimeZone
  • Obtém o nome do fuso horário adequado para apresentação ao usuário

IntlTimeZone::getDisplayName

intltz_get_display_name

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getDisplayName -- intltz_get_display_name — Obtém o nome do fuso horário adequado para apresentação ao usuário

Descrição

Estilo orientado a objetos (método):

public IntlTimeZone::getDisplayName(bool $dst = false, int $style = IntlTimeZone::DISPLAY_LONG, ?string $locale = null): string|false

Estilo procedural:

intltz_get_display_name(
IntlTimeZone $timezone,
bool $dst = false,
int $style = IntlTimeZone::DISPLAY_LONG,
?string $locale = null
): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

dst

style

locale

Valor Retornado


Obtém a quantidade de tempo a ser adicionado ao horário local padrão para obter o horário local real de relógio

  • « IntlTimeZone::getDisplayName
  • IntlTimeZone::getEquivalentID »
  • PHP Manual
  • IntlTimeZone
  • Obtém a quantidade de tempo a ser adicionado ao horário local padrão para obter o horário local real de relógio

IntlTimeZone::getDSTSavings

intltz_get_dst_savings

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getDSTSavings -- intltz_get_dst_savings — Obtém a quantidade de tempo a ser adicionado ao horário local padrão para obter o horário local real de relógio

Descrição

Estilo orientado a objetos (método):

public IntlTimeZone::getDSTSavings(): int

Estilo procedural:

intltz_get_dst_savings(IntlTimeZone $timezone): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém um ID no grupo de equivalência que inclui o ID informado

  • « IntlTimeZone::getDSTSavings
  • IntlTimeZone::getErrorCode »
  • PHP Manual
  • IntlTimeZone
  • Obtém um ID no grupo de equivalência que inclui o ID informado

IntlTimeZone::getEquivalentID

intltz_get_equivalent_id

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getEquivalentID -- intltz_get_equivalent_id — Obtém um ID no grupo de equivalência que inclui o ID informado

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::getEquivalentID(string $timezoneId, int $offset): string|false

Estilo procedural:

intltz_get_equivalent_id(string $timezoneId, int $offset): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timezoneId

offset

Valor Retornado


Obtém o último código de erro no objeto

  • « IntlTimeZone::getEquivalentID
  • IntlTimeZone::getErrorMessage »
  • PHP Manual
  • IntlTimeZone
  • Obtém o último código de erro no objeto

IntlTimeZone::getErrorCode

intltz_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getErrorCode -- intltz_get_error_code — Obtém o último código de erro no objeto

Descrição

Estilo orientado a objetos (método):

public IntlTimeZone::getErrorCode(): int|false

Estilo procedural:

intltz_get_error_code(IntlTimeZone $timezone): int|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém a última mensagem de erro no objeto

  • « IntlTimeZone::getErrorCode
  • IntlTimeZone::getGMT »
  • PHP Manual
  • IntlTimeZone
  • Obtém a última mensagem de erro no objeto

IntlTimeZone::getErrorMessage

intltz_get_error_message

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getErrorMessage -- intltz_get_error_message — Obtém a última mensagem de erro no objeto

Descrição

Estilo orientado a objetos (método):

public IntlTimeZone::getErrorMessage(): string|false

Estilo procedural:

intltz_get_error_message(IntlTimeZone $timezone): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Cria um fuso horário GMT (UTC)

  • « IntlTimeZone::getErrorMessage
  • IntlTimeZone::getID »
  • PHP Manual
  • IntlTimeZone
  • Cria um fuso horário GMT (UTC)

IntlTimeZone::getGMT

intltz_get_gmt

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getGMT -- intltz_get_gmt — Cria um fuso horário GMT (UTC)

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::getGMT(): IntlTimeZone

Estilo procedural:

intltz_get_gmt(): IntlTimeZone

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém o ID do fuso horário

  • « IntlTimeZone::getGMT
  • IntlTimeZone::getIDForWindowsID »
  • PHP Manual
  • IntlTimeZone
  • Obtém o ID do fuso horário

IntlTimeZone::getID

intltz_get_id

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getID -- intltz_get_id — Obtém o ID do fuso horário

Descrição

Estilo orientado a objetos (método):

public IntlTimeZone::getID(): string|false

Estilo procedural:

intltz_get_id(IntlTimeZone $timezone): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Traduz um fuso horário do Windows para um fuso horário de sistema

  • « IntlTimeZone::getID
  • IntlTimeZone::getOffset »
  • PHP Manual
  • IntlTimeZone
  • Traduz um fuso horário do Windows para um fuso horário de sistema

IntlTimeZone::getIDForWindowsID

intltz_get_id_for_windows_id

(PHP 7 >= 7.1.0, PHP 8)

IntlTimeZone::getIDForWindowsID -- intltz_get_id_for_windows_id — Traduz um fuso horário do Windows para um fuso horário de sistema

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::getIDForWindowsID(string $timezoneId, ?string $region = null): string|false

Estilo procedural:

intltz_get_id_for_windows_id(string $timezoneId, ?string $region = null): string|false

Traduz um fuso horário do Windows (ex.: "Pacific Standard Time") para um fuso horário de sistema (ex.: "America/Los_Angeles").

Nota: Esta função requer a ICU versão = 52.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timezoneId

region

Valor Retornado

Retorna o fuso horário de sistema ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | region agora pode ser nulo.

Veja Também

  • IntlTimeZone::getWindowsID() - Traduz um fuso horário de sistema em um fuso horário do Windows


Obtém o deslocamento UTC padrão e o deslocamento com horário de verão para um determinado timestamp Unix

  • « IntlTimeZone::getIDForWindowsID
  • IntlTimeZone::getRawOffset »
  • PHP Manual
  • IntlTimeZone
  • Obtém o deslocamento UTC padrão e o deslocamento com horário de verão para um determinado timestamp Unix

IntlTimeZone::getOffset

intltz_get_offset

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getOffset -- intltz_get_offset — Obtém o deslocamento UTC padrão e o deslocamento com horário de verão para um determinado timestamp Unix

Descrição

Estilo orientado a objetos (método):

public IntlTimeZone::getOffset(
float $timestamp,
bool $local,
int &$rawOffset,
int &$dstOffset
): bool

Estilo procedural:

intltz_get_offset(
IntlTimeZone $timezone,
float $timestamp,
bool $local,
int &$rawOffset,
int &$dstOffset
): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timestamp

local

rawOffset

dstOffset

Valor Retornado


Obtém o deslocamento UTC puro (antes de considerar horário de verão)

  • « IntlTimeZone::getOffset
  • IntlTimeZone::getRegion »
  • PHP Manual
  • IntlTimeZone
  • Obtém o deslocamento UTC puro (antes de considerar horário de verão)

IntlTimeZone::getRawOffset

intltz_get_raw_offset

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getRawOffset -- intltz_get_raw_offset — Obtém o deslocamento UTC puro (antes de considerar horário de verão)

Descrição

Estilo orientado a objetos (método):

public IntlTimeZone::getRawOffset(): int

Estilo procedural:

intltz_get_raw_offset(IntlTimeZone $timezone): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém o código da região associada com o ID de fuso horário de sistema informado

  • « IntlTimeZone::getRawOffset
  • IntlTimeZone::getTZDataVersion »
  • PHP Manual
  • IntlTimeZone
  • Obtém o código da região associada com o ID de fuso horário de sistema informado

IntlTimeZone::getRegion

intltz_get_region

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlTimeZone::getRegion -- intltz_get_region — Obtém o código da região associada com o ID de fuso horário de sistema informado

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::getRegion(string $timezoneId): string|false

Estilo procedural:

intltz_get_region(string $timezoneId): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timezoneId

Valor Retornado

Retorna a região ou false em caso de falha.


Obtém a versão de dados de fuso horário atualmente usados pela ICU

  • « IntlTimeZone::getRegion
  • IntlTimeZone::getUnknown »
  • PHP Manual
  • IntlTimeZone
  • Obtém a versão de dados de fuso horário atualmente usados pela ICU

IntlTimeZone::getTZDataVersion

intltz_get_tz_data_version

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getTZDataVersion -- intltz_get_tz_data_version — Obtém a versão de dados de fuso horário atualmente usados pela ICU

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::getTZDataVersion(): string|false

Estilo procedural:

intltz_get_tz_data_version(): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém o fuso horário "desconhecido"

  • « IntlTimeZone::getTZDataVersion
  • IntlTimeZone::getWindowsID »
  • PHP Manual
  • IntlTimeZone
  • Obtém o fuso horário "desconhecido"

IntlTimeZone::getUnknown

intltz_get_unknown

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlTimeZone::getUnknown -- intltz_get_unknown — Obtém o fuso horário "desconhecido"

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::getUnknown(): IntlTimeZone

Estilo procedural:

intltz_get_unknown(): IntlTimeZone

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um objeto IntlTimeZone ou null em caso de falha.


Traduz um fuso horário de sistema em um fuso horário do Windows

  • « IntlTimeZone::getUnknown
  • IntlTimeZone::hasSameRules »
  • PHP Manual
  • IntlTimeZone
  • Traduz um fuso horário de sistema em um fuso horário do Windows

IntlTimeZone::getWindowsID

intltz_get_windows_id

(PHP 7 >= 7.1.0, PHP 8)

IntlTimeZone::getWindowsID -- intltz_get_windows_id — Traduz um fuso horário de sistema em um fuso horário do Windows

Descrição

Estilo orientado a objetos (método):

public static IntlTimeZone::getWindowsID(string $timezoneId): string|false

Estilo procedural:

intltz_get_windows_id(string $timezoneId): string|false

Traduz um fuso horário de sistema (ex;: "America/Los_Angeles") em um fuso horário do Windows (e.: "Pacific Standard Time").

Nota: Esta função requer a ICU versão = 52.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timezoneId

Valor Retornado

Retorna o fuso horário do Windows ou false em caso de falha.

Veja Também

  • IntlTimeZone::getIDForWindowsID() - Traduz um fuso horário do Windows para um fuso horário de sistema


Verifica se um fuso horário tem as mesmas regras e deslocamentos de um outro

  • « IntlTimeZone::getWindowsID
  • IntlTimeZone::toDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Verifica se um fuso horário tem as mesmas regras e deslocamentos de um outro

IntlTimeZone::hasSameRules

intltz_has_same_rules

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::hasSameRules -- intltz_has_same_rules — Verifica se um fuso horário tem as mesmas regras e deslocamentos de um outro

Descrição

Estilo orientado a objetos (método):

public IntlTimeZone::hasSameRules(IntlTimeZone $other): bool

Estilo procedural:

intltz_has_same_rules(IntlTimeZone $timezone, IntlTimeZone $other): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

other

Valor Retornado


Converte em um objeto DateTimeZone

  • « IntlTimeZone::hasSameRules
  • IntlTimeZone::useDaylightTime »
  • PHP Manual
  • IntlTimeZone
  • Converte em um objeto DateTimeZone

IntlTimeZone::toDateTimeZone

intltz_to_date_time_zone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::toDateTimeZone -- intltz_to_date_time_zone — Converte em um objeto DateTimeZone

Descrição

Estilo orientado a objetos (método):

public IntlTimeZone::toDateTimeZone(): DateTimeZone|false

Estilo procedural:

intltz_to_date_time_zone(IntlTimeZone $timezone): DateTimeZone|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Verifica se o fuso horário usa horário de verão

  • « IntlTimeZone::toDateTimeZone
  • IntlDateFormatter »
  • PHP Manual
  • IntlTimeZone
  • Verifica se o fuso horário usa horário de verão

IntlTimeZone::useDaylightTime

intltz_use_daylight_time

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::useDaylightTime -- intltz_use_daylight_time — Verifica se o fuso horário usa horário de verão

Descrição

Estilo orientado a objetos (método):

public IntlTimeZone::useDaylightTime(): bool

Estilo procedural:

intltz_use_daylight_time(IntlTimeZone $timezone): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe IntlDateFormatter

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Introdução

O formatador de datas é uma classe concreta que habilita formatação/interpretação dependetes de localidade de datas usando strings de padrões e/ou padrões já existentes.

Esta classe representa a funcionalidade de formatação de datas da ICU. Permite aos usuários apresentar datas em formato dependente de localidade ou converter strings em valores de datas do PHP usando strings de padrões e/ou padrões já existentes.

Resumo da classe

class IntlDateFormatter {
/* Constantes */
public const int FULL;
public const int LONG;
public const int MEDIUM;
public const int SHORT;
public const int NONE;
public const int RELATIVE_FULL;
public const int RELATIVE_LONG;
public const int RELATIVE_MEDIUM;
public const int RELATIVE_SHORT;
public const int GREGORIAN;
public const int TRADITIONAL;
/* Métodos */
public __construct(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
)
public static create(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
): ?IntlDateFormatter
public format(IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false
public static formatObject(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false
public getCalendar(): int|false
public getDateType(): int|false
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false
public getPattern(): string|false
public getTimeType(): int|false
public getTimeZoneId(): string|false
public getCalendarObject(): IntlCalendar|false|null
public getTimeZone(): IntlTimeZone|false
public isLenient(): bool
public localtime(string $string, int &$offset = null): array|false
public parse(string $string, int &$offset = null): int|float|false
public setCalendar(IntlCalendar|int|null $calendar): bool
public setLenient(bool $lenient): void
public setPattern(string $pattern): bool
public setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool
}

Veja Também

  • » Formatador de Datas ICU
  • » Formatos de Datas ICU

Constantes pré-definidas

Estas constantes são usadas para especificar diferentes formatos nos construtores para DateType e TimeType.

IntlDateFormatter::NONE
Não incluir este elemento
IntlDateFormatter::FULL
Estilo completamente especificado (Tuesday, April 12, 1952 AD ou 3:30:42pm PST)
IntlDateFormatter::LONG
Estilo longo (January 12, 1952 ou 3:30:32pm)
IntlDateFormatter::MEDIUM
Estilo médio (Jan 12, 1952)
IntlDateFormatter::SHORT
O estilo mais abreviado, apenas dados essenciais (12/13/52 ou 3:30pm)
IntlDateFormatter::RELATIVE_FULL
O mesmo que IntlDateFormatter::FULL, porém ontem, hoje e amanhã são mostrados como yesterday, today, e tomorrow, respectivamente. Disponível a partir do PHP 8.0.0, somente para dateType.
IntlDateFormatter::RELATIVE_LONG
O mesmo que IntlDateFormatter::LONG, porém ontem, hoje e amanhã são mostrados como yesterday, today, e tomorrow, respectivamente. Disponível a partir do PHP 8.0.0, somente para dateType.
IntlDateFormatter::RELATIVE_MEDIUM
O mesmo que IntlDateFormatter::MEDIUM, porém ontem, hoje e amanhã são mostrados como yesterday, today, e tomorrow, respectivamente. Disponível a partir do PHP 8.0.0, somente para dateType.
IntlDateFormatter::RELATIVE_SHORT
O mesmo que IntlDateFormatter::SHORT, porém ontem, hoje e amanhã são mostrados como yesterday, today, e tomorrow, respectivamente. Disponível a partir do PHP 8.0.0, somente para dateType.

As constantes inteiras a seguir são usadas para especificar o calendário. Estes calendários são todos baseados diretamente no calendário gregoriano. Calendários não gregorianos precisam ser especificados na localidade. Exemplos podem incluir locale="hi@calendar=BUDDHIST".

IntlDateFormatter::TRADITIONAL
Calendário Não Gregoriano
IntlDateFormatter::GREGORIAN
Calendário Gregoriano

Índice

  • IntlDateFormatter::create — Cria um formatador de data
  • IntlDateFormatter::format — Formata data/horário como uma string
  • IntlDateFormatter::formatObject — Formata um objeto
  • IntlDateFormatter::getCalendar — Obtém o tipo de calendário usado para o IntlDateFormatter
  • IntlDateFormatter::getDateType — Obtém o tipo de data usado para o IntlDateFormatter
  • IntlDateFormatter::getErrorCode — Obtém o código de erro da última operação
  • IntlDateFormatter::getErrorMessage — Obtém a mensagem de erro da última operação
  • IntlDateFormatter::getLocale — Obtém a localidade usada pelo formatador
  • IntlDateFormatter::getPattern — Obtém o modelo usado para o IntlDateFormatter
  • IntlDateFormatter::getTimeType — Obtém o tipo de horário usado para o IntlDateFormatter
  • IntlDateFormatter::getTimeZoneId — Obtém o identificador de fuso horário usado para o IntlDateFormatter
  • IntlDateFormatter::getCalendarObject — Obtém uma cópia do objeto de calendário do formatador
  • IntlDateFormatter::getTimeZone — Obtem o fuso horário do formatador
  • IntlDateFormatter::isLenient — Obtém a leniência usada para o IntlDateFormatter
  • IntlDateFormatter::localtime — Interpreta uma string para um valor de horário baseado em campos
  • IntlDateFormatter::parse — Interpreta uma string para uma valor de timestamp
  • IntlDateFormatter::setCalendar — Define o tipo de calendário usado pelo formatador
  • IntlDateFormatter::setLenient — Define a leniência do interpretador
  • IntlDateFormatter::setPattern — Define o modelo usado para o IntlDateFormatter
  • IntlDateFormatter::setTimeZone — Define o fuso horário do formatador


Cria um formatador de data

  • « IntlDateFormatter
  • IntlDateFormatter::format »
  • PHP Manual
  • IntlDateFormatter
  • Cria um formatador de data

IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Cria um formatador de data

Descrição

Estilo orientado a objetos

public static IntlDateFormatter::create(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
): ?IntlDateFormatter

Estilo orientado a objetos (construtor)

public IntlDateFormatter::__construct(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
)

Estilo procedural

datefmt_create(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
): ?IntlDateFormatter

Cria um formatador de data.

Parâmetros

locale

Localidade a ser utilizada ao formatar ou interpretar, ou null para utilizar o valor especificado na configuração ini intl.default_locale.

dateType

Formato da data determinado por uma das constantes IntlDateFormatter. O valor padrão é IntlDateFormatter::FULL.

timeType

Formato do horário determinado por uma das constantes IntlDateFormatter. O valor padrão é IntlDateFormatter::FULL.

timezone

ID do fuso horário. O padrão (que também é usado se null for fornecido) é o retornado por date_default_timezone_get() ou, se aplicável, o do objeto IntlCalendar passado para o parâmetro calendar. Este ID precisa ser um identificador válido no banco de dados da ICU ou um ID representando um deslocamento específico, como em GMT-05:30.

Este parâmetro tammbém pode ser um objeto IntlTimeZone ou DateTimeZone.

calendar

Calendário a ser utilizado para formatação ou interpretação. O valor padrão é null, que corresponde a IntlDateFormatter::GREGORIAN. Pode ser uma das constantes de calendário IntlDateFormatter ou um objeto IntlCalendar. Qualquer objeto IntlCalendar passado será clonado; ele não será alterado por IntlDateFormatter. Este parâmetro determinará o tipo de calendário utilizado (gregoriano, islâmico, persa, etc.) e, se null for fornecido para o parâmetro timezone, também definirá o fuso horário utilizado.

pattern

Modelo opcional a ser utilizado ao formatar ou interpretar. Modelos possíveis estão documentados em » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

Valor Retornado

O objeto IntlDateFormatter criado ou null em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Parêmatros dateType e timeType agora são opcionais.

Exemplos

Exemplo #1 Exemplo de datefmt_create()

<?php
$fmt = datefmt_create( "pt_BR" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Sao_Paulo', IntlDateFormatter::GREGORIAN );
echo "Primeira saída formatada é ".datefmt_format( $fmt , 0)."\n";
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Sao_Paulo',IntlDateFormatter::GREGORIAN );
echo "Segunda saída formatada é ".datefmt_format( $fmt , 0)."\n";

$fmt = datefmt_create( "pt_BR" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Sao_Paulo',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "Primeira saída formatada com modelo é ".datefmt_format( $fmt , 0)."\n";
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Sao_Paulo',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "Segunda saída formatada com modelo é ".datefmt_format( $fmt , 0)."\n";
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter( "pt_BR" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Sao_Paulo',IntlDateFormatter::GREGORIAN );
echo "Primeira saída formatada é ".$fmt->format(0)."\n";
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Sao_Paulo',IntlDateFormatter::GREGORIAN );
echo "Segunda saída formatada é ".$fmt->format(0)."\n";

$fmt = new IntlDateFormatter( "pt_BR" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Sao_Paulo',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "Primeira saída formatada com modelo é ".$fmt->format(0)."\n";
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Sao_Paulo',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Segunda saída formatada com modelo é ".$fmt->format(0)."\n";
?>

Exemplo #3 Exemplo de manipulação de localidade inválida

<?php
try {
$fmt = new IntlDateFormatter(
'invalid_locale',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'dunno',
IntlDateFormatter::GREGORIAN,
);
} catch (\Error $e) {
// ...
}
?>

O exemplo acima produzirá:

Primeira saída formatada é quarta-feira, 31 de dezembro de 1969 21:00:00 Horário Padrão de Brasília
Segunda saída formatada é Mittwoch, 31. Dezember 1969 um 21:00:00 Brasília-Normalzeit
Primeira saída formatada com modelo é 12/31/1969
Segunda saída formatada com modelo é 12/31/1969

Veja Também

  • datefmt_format() - Formata data/horário como uma string
  • datefmt_parse() - Interpreta uma string para uma valor de timestamp
  • datefmt_get_error_code() - Obtém o código de erro da última operação
  • datefmt_get_error_message() - Obtém a mensagem de erro da última operação


Formata data/horário como uma string

  • « IntlDateFormatter::create
  • IntlDateFormatter::formatObject »
  • PHP Manual
  • IntlDateFormatter
  • Formata data/horário como uma string

IntlDateFormatter::format

datefmt_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::format -- datefmt_format — Formata data/horário como uma string

Descrição

Estilo orientado a objetos

public IntlDateFormatter::format(IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false

Estilo procedural

datefmt_format(IntlDateFormatter $formatter, IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false

Formata o valor de data/horário como uma string.

Parâmetros

formatter

O recurso de formatador de data.

datetime

O valor a ser formatado. Pode ser um objeto DateTimeInterface, um objeto IntlCalendar, um valor do tipo numeric representando um número (possivelmente fracionário) de segundos desde a época ou um array no formato da saída de localtime().

Se um objeto DateTime ou IntlCalendar for passado, seu fuso horário não será considerado. O objeto será formatado usando o fuso horário configurado pelo formatador. Se for desejado usar o fuso horário do objeto a ser formatado, IntlDateFormatter::setTimeZone() deve ser chamada antes com o fuso horário do objeto. Alternativamente, a função estática IntlDateFormatter::formatObject() pode ser usada em seu lugar.

Valor Retornado

A string formatada ou, se ocorrer um erro, false.

Registro de Alterações

Versão | Descrição
7.1.5 | Suporte para fornecer objetos DateTimeInterface ao parâmetro datetime foi adicionado. Anteriormente, somente objetos DateTime eram suportados.
PECL 3.0.0 | Suporte para fornecer objetos IntlCalendar ao parâmetro datetime foi adicionado.

Exemplos

Exemplo #1 Exemplo de datefmt_format()

<?php
$fmt = datefmt_create(
'pt_BR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN
);
echo 'Primeira saída formatada é ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN
);
echo 'Segunda saída formatada é ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'pt_BR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Primeira saída formatada com modelo é ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo "Segunda saída formatada com modelo é " . datefmt_format($fmt, 0);
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'pt_BR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN
);
echo 'Primeira saída formatada é ' . $fmt->format(0), "\n";

$fmt = new IntlDateFormatter(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN
);
echo 'Segunda saída formatada é ' . $fmt->format(0), "\n";

$fmt = new IntlDateFormatter(
'pt_BR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Primeira saída formatada com modelo é ' . $fmt->format(0), "\n";

$fmt = new IntlDateFormatter(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Segunda saída formatada com modelo é ' . $fmt->format(0), "\n";
?>

O exemplo acima produzirá:

Primeira saída formatada é quarta-feira, 31 de dezembro de 1969 21:00:00 Horário Padrão de Brasília
Segunda saída formatada é Mittwoch, 31. Dezember 1969 um 21:00:00 Brasília-Normalzeit
Primeira saída formatada com modelo é 12/31/1969
Segunda saída formatada com modelo é 12/31/1969

Exemplo #3 Com objeto IntlCalendar

<?php
$tz = reset(iterator_to_array(IntlTimeZone::createEnumeration('FR')));
$formatter = IntlDateFormatter::create(
'fr_FR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
$tz,
IntlDateFormatter::GREGORIAN
);

$cal = IntlCalendar::createInstance($tz, '@calendar=islamic-civil');
$cal->set(IntlCalendar::FIELD_MONTH, 8); //9º mês, Ramadã
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //1º dia
$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);
$cal->clear(IntlCalendar::FIELD_MINUTE);
$cal->clear(IntlCalendar::FIELD_SECOND);
$cal->clear(IntlCalendar::FIELD_MILLISECOND);

echo "Neste ano islâmico, o Ramadã começou/começará em:\n\t",
$formatter->format($cal), "\n";

//O fuso horário do formatador será o o utilizado:
$formatter->setTimeZone('Asia/Tokyo');
echo "Após alterar o fuso horário:\n\t",
$formatter->format($cal), "\n";

O exemplo acima produzirá:

Neste ano islâmico, o Ramadã começou/começará em:
    mardi 9 juillet 2013 19:00:00 heure avancée d’Europe centrale
Após alterar o fuso horário:
    mercredi 10 juillet 2013 02:00:00 heure normale du Japon

Veja Também

  • datefmt_create() - Cria um formatador de data
  • datefmt_parse() - Interpreta uma string para uma valor de timestamp
  • datefmt_get_error_code() - Obtém o código de erro da última operação
  • datefmt_get_error_message() - Obtém a mensagem de erro da última operação
  • datefmt_format_object() - Formata um objeto


Formata um objeto

  • « IntlDateFormatter::format
  • IntlDateFormatter::getCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Formata um objeto

IntlDateFormatter::formatObject

datefmt_format_object

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::formatObject -- datefmt_format_object — Formata um objeto

Descrição

Estilo orientado a objetos

public static IntlDateFormatter::formatObject(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false

Estilo procedural

datefmt_format_object(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false

Esta função permite formatar um objeto IntlCalendar ou DateTime sem que antes seja criado um objeto IntlDateFormatter explicitamente.

O objeto IntlDateFormatter temporário que será criado irá receber o fuso horário do objeto passado. O banco de dados de fuso horário incluído com o PHP não será utilizado - o banco da ICU será usado no lugar. O identificador de fuso horário usado em objetos DateTime precisa, portanto, existir também no banco de dados da ICU.

Parâmetros

datetime

Um objeto da classe IntlCalendar ou DateTime. A informação de fuso horário no objeto será utilizada.

format

Este parâmetro indica como formatar a data/horário. Pode ser um array com dois elementos (primeiro o estilo de data, depois o de horário, com uma das constantes IntlDateFormatter::NONE, IntlDateFormatter::SHORT, IntlDateFormatter::MEDIUM, IntlDateFormatter::LONG, IntlDateFormatter::FULL), um int com o valor de uma dessas constantes (que no caso será usado tanto para o horário como para a data) ou uma string com o formato descrito na » documentação ICU. Caso seja null, o estilo padrão será usado.

locale

A localidade a ser utilizada, ou null para usar a localidade padrão.

Valor Retornado

Uma string com o resultado ou false em caso de falha.

Exemplos

Exemplo #1 Exemplos de IntlDateFormatter::formatObject()

<?php
/* fuso horário padrão é irrelevante; o fuso horário vem do objeto */
ini_set('date.timezone', 'UTC');
/* localidade padrão é lida desta configuração ini */
ini_set('intl.default_locale', 'fr_FR');

$cal = IntlCalendar::fromDateTime("2013-06-06 17:05:06 Europe/Dublin");
echo "padrão:\n\t",
IntlDateFormatter::formatObject($cal),
"\n";

echo "\$format longo (FULL):\n\t",
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL),
"\n";

echo "\$format array (NONE, FULL):\n\t",
IntlDateFormatter::formatObject($cal, array(
IntlDateFormatter::NONE,
IntlDateFormatter::FULL)),
"\n";

echo "\$format string (d 'of' MMMM y):\n\t",
IntlDateFormatter::formatObject($cal, "d 'of' MMMM y", 'en_US'),
"\n";

echo "com DateTime:\n\t",
IntlDateFormatter::formatObject(
new DateTime("2013-09-09 09:09:09 Europe/Madrid"),
IntlDateFormatter::FULL,
'es_ES'),
"\n";

O exemplo acima produzirá:

default:
    6 juin 2013 17:05:06
$format longo (FULL):
    jeudi 6 juin 2013 17:05:06 heure d’été irlandaise
$format array (NONE, FULL):
    17:05:06 heure d’été irlandaise
$format string (d 'of' MMMM y):
    6 of June 2013
com DateTime:
    lunes, 9 de septiembre de 2013 09:09:09 Hora de verano de Europa central


Obtém o tipo de calendário usado para o IntlDateFormatter

  • « IntlDateFormatter::formatObject
  • IntlDateFormatter::getDateType »
  • PHP Manual
  • IntlDateFormatter
  • Obtém o tipo de calendário usado para o IntlDateFormatter

IntlDateFormatter::getCalendar

datefmt_get_calendar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getCalendar -- datefmt_get_calendar — Obtém o tipo de calendário usado para o IntlDateFormatter

Descrição

Estilo orientado a objetos

public IntlDateFormatter::getCalendar(): int|false

Estilo procedural

datefmt_get_calendar(IntlDateFormatter $formatter): int|false

Parâmetros

formatter

O recurso do formatador

Valor Retornado

O tipo de calendário sendo usado pelo formatador. Pode ser IntlDateFormatter::TRADITIONAL ou IntlDateFormatter::GREGORIAN. Retorna false em caso de falha.

Exemplos

Exemplo #1 Exemplo de datefmt_get_calendar()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'O calendário do formatador é : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Agora o calendário do formatador é : ' . datefmt_get_calendar($fmt);
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'O calendário do formatador é : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Agora o calendário do formatador é : ' . $fmt->getCalendar();

?>

Exemplo #3 Exemplo de manipulação de localidade inválida

<?php
try {
$fmt = new IntlDateFormatter(
'invalid_locale',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'dunno',
IntlDateFormatter::GREGORIAN,
);
$cal = $fmt->getCalendar();
} catch (\Error $e) {
// ...
}
?>

O exemplo acima produzirá:

O calendário do formatador é : 1
Agora o calendário do formatador é : 0

Veja Também

  • datefmt_get_calendar_object() - Obtém uma cópia do objeto de calendário do formatador
  • datefmt_set_calendar() - Define o tipo de calendário usado pelo formatador
  • datefmt_create() - Cria um formatador de data


Obtém o tipo de data usado para o IntlDateFormatter

  • « IntlDateFormatter::getCalendar
  • IntlDateFormatter::getErrorCode »
  • PHP Manual
  • IntlDateFormatter
  • Obtém o tipo de data usado para o IntlDateFormatter

IntlDateFormatter::getDateType

datefmt_get_datetype

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getDateType -- datefmt_get_datetype — Obtém o tipo de data usado para o IntlDateFormatter

Descrição

Estilo orientado a objetos

public IntlDateFormatter::getDateType(): int|false

Estilo procedural

datefmt_get_datetype(IntlDateFormatter $formatter): int|false

Retorna o tipo de data usado pelo formatador.

Parâmetros

formatter

O recurso do formatador.

Valor Retornado

O valor de tipo de data atual do formatador, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de datefmt_get_datetype()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Tipo de data do formatador é: ' . datefmt_get_datetype($fmt);
echo 'A primeira saída formatada é ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'en_US',
IntlDateFormatter::SHORT,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Agora o tipo de data do formatador é: ' . datefmt_get_datetype($fmt);
echo 'A segunda saída formatada com o tipo de data é ' . datefmt_format($fmt, 0);

?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Tipo de data do formatador é: ' . $fmt->getDateType();
echo 'A primeira saída formatada é ' . $fmt->format(0);
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::SHORT,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Agora o tipo de data do formatador é: ' . $fmt->getDateType();
echo 'A segunda saída formatada com o tipo de data é ' . $fmt->format(0);

?>

O exemplo acima produzirá:

Tipo de data do formatador é: 0
A primeira saída formatada é Wednesday, December 31, 1969 4:00:00 PM PT
Agora o tipo de data do formatador é: 2
A segunda saída formatada com o tipo de data é 12/31/69 4:00:00 PM PT

Veja Também

  • datefmt_get_timetype() - Obtém o tipo de horário usado para o IntlDateFormatter
  • datefmt_create() - Cria um formatador de data


Obtém o código de erro da última operação

  • « IntlDateFormatter::getDateType
  • IntlDateFormatter::getErrorMessage »
  • PHP Manual
  • IntlDateFormatter
  • Obtém o código de erro da última operação

IntlDateFormatter::getErrorCode

datefmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorCode -- datefmt_get_error_code — Obtém o código de erro da última operação

Descrição

Estilo orientado a objetos

public IntlDateFormatter::getErrorCode(): int

Estilo procedural

datefmt_get_error_code(IntlDateFormatter $formatter): int

Retorn o código de erro da última operação de formatação.

Parâmetros

formatter

O recurso do formatador.

Valor Retornado

O código de erro, um dos valores de UErrorCode. Se não houver erro, o valor é U_ZERO_ERROR.

Exemplos

Exemplo #1 Exemplo de datefmt_get_error_code()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt,0);

printf(
"ERRO: %s (%d)\n",
datefmt_get_error_message($fmt),
datefmt_get_error_code($fmt)
);
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
$str = $fmt->format(0);

printf(
"ERRO: %s (%d)\n",
$fmt->getErrorMessage(),
$fmt->getErrorCode()
);
?>

O exemplo acima produzirá:

ERRO: U_ZERO_ERROR (0)

Veja Também

  • datefmt_get_error_message() - Obtém a mensagem de erro da última operação
  • intl_get_error_code() - Obtém o último código de erro
  • intl_is_failure() - Verifica se o código de erro fornecido indica falha


Obtém a mensagem de erro da última operação

  • « IntlDateFormatter::getErrorCode
  • IntlDateFormatter::getLocale »
  • PHP Manual
  • IntlDateFormatter
  • Obtém a mensagem de erro da última operação

IntlDateFormatter::getErrorMessage

datefmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorMessage -- datefmt_get_error_message — Obtém a mensagem de erro da última operação

Descrição

Estilo orientado a objetos

public IntlDateFormatter::getErrorMessage(): string

Estilo procedural

datefmt_get_error_message(IntlDateFormatter $formatter): string

Retorna a mensagem de erro da última operação de formatação.

Parâmetros

formatter

O recurso do formatador.

Valor Retornado

Descrição do último erro.

Exemplos

Exemplo #1 Exemplo de datefmt_get_error_message()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt, 0);

printf(
"ERRO: %s (%d)\n",
datefmt_get_error_message($fmt),
datefmt_get_error_code($fmt)
);
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
$str = $fmt->format(0);

printf(
"ERRO: %s (%d)\n",
$fmt->getErrorMessage(),
$fmt->getErrorCode()
);
?>

O exemplo acima produzirá:

ERRO: U_ZERO_ERROR (0)

Veja Também

  • datefmt_get_error_code() - Obtém o código de erro da última operação
  • intl_get_error_code() - Obtém o último código de erro
  • intl_is_failure() - Verifica se o código de erro fornecido indica falha


Obtém a localidade usada pelo formatador

  • « IntlDateFormatter::getErrorMessage
  • IntlDateFormatter::getPattern »
  • PHP Manual
  • IntlDateFormatter
  • Obtém a localidade usada pelo formatador

IntlDateFormatter::getLocale

datefmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getLocale -- datefmt_get_locale — Obtém a localidade usada pelo formatador

Descrição

Estilo orientado a objetos

public IntlDateFormatter::getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false

Estilo procedural

datefmt_get_locale(IntlDateFormatter $formatter, int $type = ULOC_ACTUAL_LOCALE): string|false

Obtém a localidade usada pelo formatador.

Parâmetros

formatter

O recurso do formatador

type

Pode-se escolher entre localidade válida e real ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectivamente). O padrão é a localidade real.

Valor Retornado

A localidade do formatador, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de datefmt_get_locale()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Localidade do formatador é: ' . datefmt_get_locale($fmt), "\n";
echo 'Primeira saída formatada é ' . datefmt_format($fmt, 0), "\n";

$fmt = datefmt_create(
'pt_BR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Localidade do formatador é: ' . datefmt_get_locale($fmt), "\n";
echo 'Segunda saída formatada é ' . datefmt_format($fmt, 0), "\n";

?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Localidade do formatador é: ' . $fmt->getLocale(), "\n";
echo 'Primeira saída formatada é ' . $fmt->format(0), "\n";

$fmt = new IntlDateFormatter(
'pt_BR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Localidade do formatador é: ' . $fmt->getLocale(), "\n";
echo 'Segunda saída formatada é ' . $fmt->format(0), "\n";

?>

O exemplo acima produzirá:

Localidade do formatador é: en
Primeira saída formatada é Wednesday, December 31, 1969 at 4:00:00 PM Pacific Standard Time
Localidade do formatador é: pt
Segunda saída formatada é quarta-feira, 31 de dezembro de 1969 16:00:00 Horário Padrão do Pacífico

Veja Também

  • datefmt_create() - Cria um formatador de data


Obtém o modelo usado para o IntlDateFormatter

  • « IntlDateFormatter::getLocale
  • IntlDateFormatter::getTimeType »
  • PHP Manual
  • IntlDateFormatter
  • Obtém o modelo usado para o IntlDateFormatter

IntlDateFormatter::getPattern

datefmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getPattern -- datefmt_get_pattern — Obtém o modelo usado para o IntlDateFormatter

Descrição

Estilo orientado a objetos

public IntlDateFormatter::getPattern(): string|false

Estilo procedural

datefmt_get_pattern(IntlDateFormatter $formatter): string|false

Obtém o modelo usado pelo formatador.

Parâmetros

formatter

O recurso do formatador.

Valor Retornado

A string do modelo sendo usado para formatar/interpretar, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de datefmt_get_pattern() example

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Modelo do formatador é : ' . datefmt_get_pattern($fmt);
echo 'Primeira saída formatada com o modelo é ' . datefmt_format($fmt, 0);
datefmt_set_pattern($fmt,'yyyymmdd hh:mm:ss z');
echo 'Agora o modelo do formatador é : ' . datefmt_get_pattern($fmt);
echo 'Segunda saída formatada com o modelo é ' . datefmt_format($fmt, 0);

?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Modelo do formatador é : ' . $fmt->getPattern();
echo 'Primeira saída formatada com o modelo é ' . $fmt->format(0);
$fmt->setPattern('yyyyMMdd hh:mm:ss z');
echo 'Agora o modelo do formatador é : ' . $fmt->getPattern();
echo 'Segunda saída formatada com o modelo é ' . $fmt->format(0);
?>

O exemplo acima produzirá:

Modelo do formatador é : MM/dd/yyyy
Primeira saída formatada com o modelo é 12/31/1969
Agora o modelo do formatador é : yyyyMMdd hh:mm:ss z
Segunda saída formatada com o modelo é 19691231 04:00:00 PST

Veja Também

  • datefmt_set_pattern() - Define o modelo usado para o IntlDateFormatter
  • datefmt_create() - Cria um formatador de data


Obtém o tipo de horário usado para o IntlDateFormatter

  • « IntlDateFormatter::getPattern
  • IntlDateFormatter::getTimeZoneId »
  • PHP Manual
  • IntlDateFormatter
  • Obtém o tipo de horário usado para o IntlDateFormatter

IntlDateFormatter::getTimeType

datefmt_get_timetype

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeType -- datefmt_get_timetype — Obtém o tipo de horário usado para o IntlDateFormatter

Descrição

Estilo orientado a objetos

public IntlDateFormatter::getTimeType(): int|false

Estilo procedural

datefmt_get_timetype(IntlDateFormatter $formatter): int|false

Retorna o tipo de horário usado pelo formatador.

Parâmetros

formatter

O recurso do formatador.

Valor Retornado

O valor do tipo de horário atual do formatador, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de datefmt_get_timetype()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Tipo de horário do formatador é : ' . datefmt_get_timetype($fmt), "\n";
echo 'Primeira saída formatada com o tipo de horário é ' . datefmt_format($fmt, 0), "\n";

$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::SHORT,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Agora o tipo de horário do formatador é : ' . datefmt_get_timetype($fmt), "\n";
echo 'Segunda saída formatada com o tipo de horário é ' . datefmt_format($fmt, 0), "\n";

?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Tipo de horário do formatador é : ' . $fmt->getTimeType(), "\n";
echo 'Primeira saída formatada com o tipo de horário é ' . $fmt->format(0), "\n";

$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::SHORT,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Agora o tipo de horário do formatador é : ' . $fmt->getTimeType(), "\n";
echo 'Segunda saída formatada com o tipo de horário é ' . $fmt->format(0), "\n";

?>

O exemplo acima produzirá:

Tipo de horário do formatador é : 0
Primeira saída formatada com o tipo de horário é Wednesday, December 31, 1969 at 4:00:00 PM Pacific Standard Time
Agora o tipo de horário do formatador é : 3
Segunda saída formatada com o tipo de horário é Wednesday, December 31, 1969 at 4:00 PM

Veja Também

  • datefmt_get_datetype() - Obtém o tipo de data usado para o IntlDateFormatter
  • datefmt_create() - Cria um formatador de data


Obtém o identificador de fuso horário usado para o IntlDateFormatter

  • « IntlDateFormatter::getTimeType
  • IntlDateFormatter::getCalendarObject »
  • PHP Manual
  • IntlDateFormatter
  • Obtém o identificador de fuso horário usado para o IntlDateFormatter

IntlDateFormatter::getTimeZoneId

datefmt_get_timezone_id

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeZoneId -- datefmt_get_timezone_id — Obtém o identificador de fuso horário usado para o IntlDateFormatter

Descrição

Estilo orientado a objetos

public IntlDateFormatter::getTimeZoneId(): string|false

Estilo procedural

datefmt_get_timezone_id(IntlDateFormatter $formatter): string|false

Obtém o identificador de fuso horário usado para o IntlDateFormatter.

Parâmetros

formatter

O recurso do formatador.

Valor Retornado

String contendo o ID para o fuso horário usado pelo formatador, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de datefmt_get_timezone_id()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'ID de fuso horário do formatador é: ' . datefmt_get_timezone_id($fmt) . "\n";
datefmt_set_timezone($fmt, 'Europe/Madrid');
echo 'Agora, o ID de fuso horário do formatador é: ' . datefmt_get_timezone_id($fmt);

?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'ID de fuso horário do formatador é: ' . $fmt->getTimezoneId() . "\n";
$fmt->setTimezone('Europe/Madrid');
echo 'Agora, o ID de fuso horário do formatador é: ' . $fmt->getTimezoneId();

?>

O exemplo acima produzirá:

ID de fuso horário do formatador é: America/Los_Angeles
Agora, o ID de fuso horário do formatador é: Europe/Madrid

Veja Também

  • datefmt_set_timezone() - Define o fuso horário do formatador
  • datefmt_create() - Cria um formatador de data


Obtém uma cópia do objeto de calendário do formatador

  • « IntlDateFormatter::getTimeZoneId
  • IntlDateFormatter::getTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Obtém uma cópia do objeto de calendário do formatador

IntlDateFormatter::getCalendarObject

datefmt_get_calendar_object

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::getCalendarObject -- datefmt_get_calendar_object — Obtém uma cópia do objeto de calendário do formatador

Descrição

Estilo orientado a objetos

public IntlDateFormatter::getCalendarObject(): IntlCalendar|false|null

Estilo procedural

datefmt_get_calendar_object(IntlDateFormatter $formatter): IntlCalendar|false|null

Obtém uma cópia do objeto de calendário usado internamente pelo formatador. Este calendário terá um tipo (como gregoriano, japonês, budista, persa, islâmico, etc.) e um fuso horário que corresponde ao tipo e ao fuso usados pelo formatador. A data e o horário do objeto não são especificados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma cópia do objeto de calendário interno usado pelo formatador, ou null se nenhum foi definido, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de IntlDateFormatter::getCalendarObject()

<?php
$formatter = IntlDateFormatter::create(
"fr_FR@calendar=islamic",
NULL,
NULL,
"GMT-01:00",
IntlDateFormatter::TRADITIONAL
);

$cal = $formatter->getCalendarObject();

var_dump(
$cal->getType(),
$cal->getTimeZone(),
$cal->getLocale(Locale::VALID_LOCALE)
);

O exemplo acima produzirá:

string(7) "islamic"
object(IntlTimeZone)#3 (4) {
  ["valid"]=>
  bool(true)
  ["id"]=>
  string(9) "GMT-01:00"
  ["rawOffset"]=>
  int(-3600000)
  ["currentOffset"]=>
  int(-3600000)
}
string(5) "fr_FR"

Veja Também

  • IntlDateFormatter::getCalendar() - Obtém o tipo de calendário usado para o IntlDateFormatter
  • IntlDateFormatter::setCalendar() - Define o tipo de calendário usado pelo formatador
  • IntlCalendar


Obtem o fuso horário do formatador

  • « IntlDateFormatter::getCalendarObject
  • IntlDateFormatter::isLenient »
  • PHP Manual
  • IntlDateFormatter
  • Obtem o fuso horário do formatador

IntlDateFormatter::getTimeZone

datefmt_get_timezone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::getTimeZone -- datefmt_get_timezone — Obtem o fuso horário do formatador

Descrição

Estilo orientado a objetos

public IntlDateFormatter::getTimeZone(): IntlTimeZone|false

Estilo procedural

datefmt_get_timezone(IntlDateFormatter $formatter): IntlTimeZone|false

Retorna um objeto IntlTimeZone representando o fuso horário que será usado por este objeto para formatar datas e horários. Ao formatar objetos IntlCalendar e DateTime com esta classe IntlDateFormatter, o fuso horário usado será o retornado por este método, e não o associado com os objetos sendo formatados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O objeto IntlTimeZone associado ou false em caso de falha.

Exemplos

Exemplo #1 Exemplos de IntlDateFormatter::getTimeZone()

<?php

$madrid = IntlDateFormatter::create(NULL, NULL, NULL, 'Europe/Madrid');
$lisbon = IntlDateFormatter::create(NULL, NULL, NULL, 'Europe/Lisbon');

var_dump($madrid->getTimezone());
echo $madrid->getTimezone()->getDisplayName(
false, IntlTimeZone::DISPLAY_GENERIC_LOCATION, "en_US"), "\n";
echo $lisbon->getTimeZone()->getId(), "\n";
//O id também pode ser obtido com ->getTimezoneId()
echo $lisbon->getTimeZoneId(), "\n";

O exemplo acima produzirá:

object(IntlTimeZone)#4 (4) {
  ["valid"]=>
  bool(true)
  ["id"]=>
  string(13) "Europe/Madrid"
  ["rawOffset"]=>
  int(3600000)
  ["currentOffset"]=>
  int(7200000)
}
Spain Time
Europe/Lisbon
Europe/Lisbon

Veja Também

  • IntlDateFormatter::getTimeZoneId() - Obtém o identificador de fuso horário usado para o IntlDateFormatter
  • IntlDateFormatter::setTimeZone() - Define o fuso horário do formatador
  • IntlTimeZone


Obtém a leniência usada para o IntlDateFormatter

  • « IntlDateFormatter::getTimeZone
  • IntlDateFormatter::localtime »
  • PHP Manual
  • IntlDateFormatter
  • Obtém a leniência usada para o IntlDateFormatter

IntlDateFormatter::isLenient

datefmt_is_lenient

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::isLenient -- datefmt_is_lenient — Obtém a leniência usada para o IntlDateFormatter

Descrição

Estilo orientado a objetos

public IntlDateFormatter::isLenient(): bool

Estilo procedural

datefmt_is_lenient(IntlDateFormatter $formatter): bool

Verifica se o interpretador é estrito ou leniente ao interpretar entradas que não correspondem exatamente ao modelo.

Parâmetros

formatter

O recurso do formatador.

Valor Retornado

true se o interpretador for leniente, false se for estrito. Por padrão o interpretador é leniente.

Exemplos

Exemplo #1 Exemplo de datefmt_is_lenient()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/MM/yyyy'
);
echo 'Leniência do formatador é : ';
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo "\nAgora a leniência do formatador é: ";
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}

?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
"dd/MM/yyyy"
);
echo "Leniência do formatador é : ";
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0){
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo "\nAgora a leniência do formatador é: ";
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}

?>

O exemplo acima produzirá:

Leniência do formatador é : TRUE
Tentando interpretar '35/13/1971'.
O resultado é: 66038400
Agora a leniência do formatador é: FALSE
Tentando interpretar '35/13/1971'.
O resultado é:
Mensagem de erro: Date parsing failed: U_PARSE_ERROR
Código de erro: 9

Veja Também

  • datefmt_set_lenient() - Define a leniência do interpretador
  • datefmt_create() - Cria um formatador de data


Interpreta uma string para um valor de horário baseado em campos

  • « IntlDateFormatter::isLenient
  • IntlDateFormatter::parse »
  • PHP Manual
  • IntlDateFormatter
  • Interpreta uma string para um valor de horário baseado em campos

IntlDateFormatter::localtime

datefmt_localtime

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::localtime -- datefmt_localtime — Interpreta uma string para um valor de horário baseado em campos

Descrição

Estilo orientado a objetos

public IntlDateFormatter::localtime(string $string, int &$offset = null): array|false

Estilo procedural

datefmt_localtime(IntlDateFormatter $formatter, string $string, int &$offset = null): array|false

Converte o valor da string para um valor de horário baseado em campos (um array com vários campos), iniciando em offset e consumindo o máximo possível do valor de entrada.

Parâmetros

formatter

O recurso do formatador

string

A string a ser convertida para um horário

offset

Posição na qual a interpretação da string será iniciada (baseada em zero). Se não ocorrer erros antes que a string seja consumida, offset conterá -1, caso contrário conterá a posição na qual a interpretação terminou. Se offset > strlen(string), a interpretação falha imediatamente.

Valor Retornado

Array de inteiros compatível com o horário da localidade: contém valor de hora no formato de 24 horas no campo tm_hour, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de datefmt_localtime()

<?php

$fmt = datefmt_create(
'pt_BR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN
);
$arr = datefmt_localtime($fmt, 'Quarta-feira, 23 de novembro de 1977 16:10:00 GMT-03:00');
echo 'Valor interpretado: ';
if ($arr) {
foreach ($arr as $key => $value) {
echo "$key : $value , ";
}
}

?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'pt_BR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN
);
$arr = $fmt->localtime('Quarta-feira, 23 de novembro de 1977 16:10:00 GMT-03:00');
echo 'Valor interpretado: ';
if ($arr) {
foreach ($arr as $key => $value) {
echo "$key : $value , ";
}
}

?>

O exemplo acima produzirá:

Valor interpretado: tm_sec : 0 , tm_min : 10 , tm_hour : 16 , tm_year : 77 ,
tm_mday : 23 , tm_wday : 3 , tm_yday : 327 , tm_mon : 10 , tm_isdst : 0 ,

Veja Também

  • datefmt_create() - Cria um formatador de data
  • datefmt_format() - Formata data/horário como uma string
  • datefmt_parse() - Interpreta uma string para uma valor de timestamp
  • datefmt_get_error_code() - Obtém o código de erro da última operação
  • datefmt_get_error_message() - Obtém a mensagem de erro da última operação


Interpreta uma string para uma valor de timestamp

  • « IntlDateFormatter::localtime
  • IntlDateFormatter::setCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Interpreta uma string para uma valor de timestamp

IntlDateFormatter::parse

datefmt_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parse — Interpreta uma string para uma valor de timestamp

Descrição

Estilo orientado a objetos

public IntlDateFormatter::parse(string $string, int &$offset = null): int|float|false

Estilo procedural

datefmt_parse(IntlDateFormatter $formatter, string $string, int &$offset = null): int|float|false

Converte string para um valor de tempo incremental, iniciando em offset e consumindo o máximo possível do valor de entrada.

Parâmetros

formatter

O recurso do formatador

string

String a ser convertida para um horário.

offset

Posição na qual será iniciada a interpretação da string (baseada em zero). Se nenhum erro ocorrer antes que a string seja consumida, offset conterá -1, caso contrário conterá a posição na qual a interpretação terminou (e onde o erro ocorreu). Se offset > strlen($string), a interpretação falha imediatamente.

Valor Retornado

Timestamp do valor interpretado, ou false se o valor não puder ser interpretado.

Exemplos

Exemplo #1 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'pt_BR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo', IntlDateFormatter::GREGORIAN
);
echo 'Primeira saída interpretada: ' . $fmt->parse('quinta-feira, 20 de julho de 1989 21:00:00 Horário Padrão de Brasília');
$fmt = new IntlDateFormatter(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN
);
echo 'Segunda saída interpretada: ' . datefmt_parse($fmt, 'Donnerstag, 20. Juli 1989 um 21:00:00 Brasília-Normalzeit');
?>

Exemplo #2 datefmt_parse() example

<?php
$fmt = datefmt_create(
'pt_BR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN
);
echo 'Primeira saída interpretada: ' . datefmt_parse($fmt, 'quinta-feira, 20 de julho de 1989 21:00:00 Horário Padrão de Brasília');
$fmt = datefmt_create(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Sao_Paulo',
IntlDateFormatter::GREGORIAN
);
echo 'Segunda saída interpretada: ' . datefmt_parse($fmt, 'Donnerstag, 20. Juli 1989 um 21:00:00 Brasília-Normalzeit');
?>

O exemplo acima produzirá:

Primeira saída interpretada: 616982400
Segunda saída interpretada: 616982400

Veja Também

  • datefmt_create() - Cria um formatador de data
  • datefmt_format() - Formata data/horário como uma string
  • datefmt_localtime() - Interpreta uma string para um valor de horário baseado em campos
  • datefmt_get_error_code() - Obtém o código de erro da última operação
  • datefmt_get_error_message() - Obtém a mensagem de erro da última operação


Define o tipo de calendário usado pelo formatador

  • « IntlDateFormatter::parse
  • IntlDateFormatter::setLenient »
  • PHP Manual
  • IntlDateFormatter
  • Define o tipo de calendário usado pelo formatador

IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendar — Define o tipo de calendário usado pelo formatador

Descrição

Estilo orientado a objetos

public IntlDateFormatter::setCalendar(IntlCalendar|int|null $calendar): bool

Estilo procedural

datefmt_set_calendar(IntlDateFormatter $formatter, IntlCalendar|int|null $calendar): bool

Define o tipo de calendário usado pelo formatador.

Parâmetros

formatter

O recurso do formatador.

calendar

Pode ser: o tipo de calendário a ser usado (o padrão é IntlDateFormatter::GREGORIAN, que também é usado se null for especificado) ou um objeto IntlCalendar.

Qualquer objeto IntlCalendar passado será clonado; nenhuma modificação será feita no objeto do argumento.

O fuso horário do formatador somente será mantido se um objeto IntlCalendar não for passado, caso contrário o novo fuso horário será o do objeto passado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
5.5.0/PECL 3.0.0 | Tornou-se possível passar um objeto IntlCalendar.

Exemplos

Exemplo #1 Exemplo de datefmt_set_calendar()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'O calendário do formatador é: ' . datefmt_get_calendar($fmt), "\n";
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Agora, o calendário do formatador é: ' . datefmt_get_calendar($fmt);
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'O calendário do formatador é: ' . $fmt->getCalendar(), "\n";
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Agora, o calendário do formatador é: ' . $fmt->getCalendar();
?>

O exemplo acima produzirá:

O calendário do formatador é: 1
Agora, o calendário do formatador é: 0

Exemplo #3 Exemplo com argumento IntlCalendar

<?php
$time = strtotime("2013-03-03 00:00:00 UTC");
$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");

echo "antes: ", $formatter->format($time), "\n";

/* note que a localidade do calendário não é usada! */
$formatter->setCalendar(IntlCalendar::createInstance(
"America/New_York", "pt_BR@calendar=islamic"));

echo "depois: ", $formatter->format($time), "\n";
?>

O exemplo acima produzirá:

antes: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time
depois:  Saturday, Rabi? II 20, 1434 at 7:00:00 PM Eastern Standard Time

Veja Também

  • datefmt_get_calendar() - Obtém o tipo de calendário usado para o IntlDateFormatter
  • datefmt_get_calendar_object() - Obtém uma cópia do objeto de calendário do formatador
  • datefmt_create() - Cria um formatador de data


Define a leniência do interpretador

  • « IntlDateFormatter::setCalendar
  • IntlDateFormatter::setPattern »
  • PHP Manual
  • IntlDateFormatter
  • Define a leniência do interpretador

IntlDateFormatter::setLenient

datefmt_set_lenient

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setLenient -- datefmt_set_lenient — Define a leniência do interpretador

Descrição

Estilo orientado a objetos

public IntlDateFormatter::setLenient(bool $lenient): void

Estilo procedural

datefmt_set_lenient(IntlDateFormatter $formatter, bool $lenient): void

Define se o interpretador é estrito ou leniente ao interpretar entradas que não correspondem exatamente ao modelo. Habilitar interpretação leniente permite ao interpretador aceitar modelos de data e horário que poderiam falhar, analisando o máximo possível para obter um valor. Espaços extras, marcadores não reconhecidos ou valores inválidos ("30 de fevereiro") não são aceitos.

Parâmetros

formatter

O recurso do formatador

lenient

Define de o interpretador é leniente ou não, o padrão é true (leniente).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de datefmt_set_lenient()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/MM/yyyy'
);
echo 'Leniência do formatador é : ';
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo "\nAgora a leniência do formatador é: ";
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}

?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
"dd/MM/yyyy"
);
echo "Leniência do formatador é : ";
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0){
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo "\nAgora a leniência do formatador é: ";
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}

?>

O exemplo acima produzirá:

Leniência do formatador é : TRUE
Tentando interpretar '35/13/1971'.
O resultado é: 66038400
Agora a leniência do formatador é: FALSE
Tentando interpretar '35/13/1971'.
O resultado é:
Mensagem de erro: Date parsing failed: U_PARSE_ERROR
Código de erro: 9

Veja Também

  • datefmt_is_lenient() - Obtém a leniência usada para o IntlDateFormatter
  • datefmt_create() - Cria um formatador de data


Define o modelo usado para o IntlDateFormatter

  • « IntlDateFormatter::setLenient
  • IntlDateFormatter::setTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Define o modelo usado para o IntlDateFormatter

IntlDateFormatter::setPattern

datefmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setPattern -- datefmt_set_pattern — Define o modelo usado para o IntlDateFormatter

Descrição

Estilo orientado a objetos

public IntlDateFormatter::setPattern(string $pattern): bool

Estilo procedural

datefmt_set_pattern(IntlDateFormatter $formatter, string $pattern): bool

Define o modelo usado para o IntlDateFormatter.

Parâmetros

formatter

O recurso do formatador.

pattern

Nova string de modelo a ser utilizado. Os modelos possíveis estão documentados em » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Strings de formato mal formadas são normalmente as causas de falhas.

Exemplos

Exemplo #1 Exemplo de datefmt_set_pattern()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Modelo do formatador é: ', datefmt_get_pattern($fmt), PHP_EOL;
echo 'Primeira saída formatada é ', datefmt_format($fmt, 0), PHP_EOL;
datefmt_set_pattern($fmt, 'yyyyMMdd hh:mm:ss z');
echo 'Agora o modelo do formatador é: ', datefmt_get_pattern($fmt), PHP_EOL;
echo 'Segunda saída formatada com o modelo é ', datefmt_format($fmt, 0), PHP_EOL;
?>

Exemplo #2 Exemplo OO

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Modelo do formatador é: ', $fmt->getPattern(), PHP_EOL;
echo 'Primeira saída formatada é ', $fmt->format(0), PHP_EOL;
$fmt->setPattern('yyyyMMdd hh:mm:ss z');
echo 'Agora o modelo do formatador é: ', $fmt->getPattern(), PHP_EOL;
echo 'Segunda saída formatada com o modelo é ', $fmt->format(0), PHP_EOL;
?>

O exemplo acima produzirá:

Modelo do formatador é: MM/dd/yyyy
Primeira saída formatada é 12/31/1969
Agora o modelo do formatador é: yyyyMMdd hh:mm:ss z
Segunda saída formatada com o modelo é 19691231 04:00:00 PST

Veja Também

  • datefmt_get_pattern() - Obtém o modelo usado para o IntlDateFormatter
  • datefmt_create() - Cria um formatador de data


Define o fuso horário do formatador

  • « IntlDateFormatter::setPattern
  • ResourceBundle »
  • PHP Manual
  • IntlDateFormatter
  • Define o fuso horário do formatador

IntlDateFormatter::setTimeZone

datefmt_set_timezone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::setTimeZone -- datefmt_set_timezone — Define o fuso horário do formatador

Descrição

Estilo orientado a objetos

public IntlDateFormatter::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool

Estilo procedural

datefmt_set_timezone(IntlDateFormatter $formatter, IntlTimeZone|DateTimeZone|string|null $timezone): bool

Define o fuso horário usado para o objeto IntlDateFormatter.

Parâmetros

formatter

O recurso do formatador.

timezone

O fuso horário a ser utilizado para este formatador. Pode ser especificado nas formas a seguir:

  • null, neste caso o fuso horário padrão será usado, como especificado na configuração ini date.timezone ou através da função date_default_timezone_set() e como retornado por date_default_timezone_get().

  • Um objeto IntlTimeZone, que será usado diretamente.

  • Um objeto DateTimeZone. Seu identificador será extraído e um objeto de fuso horário ICU será criado; o fuso horário será apoiado pelo banco de dados da ICU, não pelo do PHP.

  • Uma string, que deve ser um identificador de fuso horário ICU válido. Consulte a função IntlTimeZone::createTimeZoneIDEnumeration(). Deslocamentos puros como "GMT+08:30" também são aceitos.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.0 | Esta função agora retorna true em caso de sucesso; anteriormente, retornava null.

Exemplos

Exemplo #1 Exemplos de IntlDateFormatter::setTimeZone()

<?php
ini_set('date.timezone', 'Europe/Amsterdam');

$formatter = IntlDateFormatter::create(NULL, NULL, NULL, "UTC");

$formatter->setTimeZone(NULL);
echo "NULL\n ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone(IntlTimeZone::createTimeZone('Europe/Lisbon'));
echo "IntlTimeZone\n ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone(new DateTimeZone('Europe/Paris'));
echo "DateTimeZone\n ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone('Europe/Rome');
echo "String\n ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone('GMT+00:30');
print_r($formatter->getTimeZone());

O exemplo acima produzirá:

NULL
    Europe/Amsterdam
IntlTimeZone
    Europe/Lisbon
DateTimeZone
    Europe/Paris
String
    Europe/Rome
IntlTimeZone Object
(
    [valid] => 1
    [id] => GMT+00:30
    [rawOffset] => 1800000
    [currentOffset] => 1800000
)

Veja Também

  • IntlDateFormatter::getTimeZone() - Obtem o fuso horário do formatador


A classe ResourceBundle

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

Introdução

Produtos de software específicos para localiades frequentemente requerem conjuntos de dados que devem ser customizados dependendo da localidade atual, ex.: mensagens, etiquetas, modelos de formatação. O mecanismo de recursos da ICU permite definir conjuntos de recursos que a aplicação pode carregar com base na localidade, enquanto acessa-as em uma maneira unificada, independente de localidade.

Esta classe implemente o acesso aos arquivos de dados de recursos ICU. Estes arquivos são arrays de dados binários que a ICU usa para armazenar os dados de localidade.

O pacote de recursos ICU pode ter recursos simples e complexos. Recursos complexos são contêineres que podem ser indexados com números inteiros ou strings (da mesma forma que arrays PHP). Recursos simples podem ser dos seguintes tipos: string, inteiro, campo de dado binário ou array inteiro.

ResourceBundle suporta acesso direto aos dados através de padrão de acesso a array e iteração através de foreach, assim como acesso por métodos de classe. O resultado será um valor PHP para os recursos simples e um objeto ResourceBundle para os complexos. Todos os recursos são somente-leitura.

Resumo da classe

class ResourceBundle implements IteratorAggregate, Countable {
/* Métodos */
public __construct(?string $locale, ?string $bundle, bool $fallback = true)
public count(): int
public static create(?string $locale, ?string $bundle, bool $fallback = true): ?ResourceBundle
public getErrorCode(): int
public getErrorMessage(): string
public get(string|int $index, bool $fallback = true): mixed
public static getLocales(string $bundle): array|false
}

Registro de Alterações

Versão | Descrição
8.0.0 | ResourceBundle implementa IteratorAggregate agora. Anteriormente, Traversable era implementado no lugar.
7.4.0 | ResourceBundle implementa Countable agora.

Veja Também

  • » Gereciamento de Recursos ICU
  • » Dados ICU

Índice

  • ResourceBundle::count — Obtém o número de elementos no pacote
  • ResourceBundle::create — Cria um pacote de recursos
  • ResourceBundle::getErrorCode — Obtém o código do último erro gerado pelo pacote.
  • ResourceBundle::getErrorMessage — Obtém a última mensagem de erro gerada pelo pacote
  • ResourceBundle::get — Obtém os dados do pacote
  • ResourceBundle::getLocales — Obtém as localidades suportadas


Obtém o número de elementos no pacote

  • « ResourceBundle
  • ResourceBundle::create »
  • PHP Manual
  • ResourceBundle
  • Obtém o número de elementos no pacote

ResourceBundle::count

resourcebundle_count

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::count -- resourcebundle_count — Obtém o número de elementos no pacote

Descrição

Estilo orientado a objetos

public ResourceBundle::count(): int

Estilo procedural

resourcebundle_count(ResourceBundle $bundle): int

Obtém o número de elementos no pacote.

Parâmetros

bundle

Um objeto ResourceBundle.

Valor Retornado

Retorna o número de elementos no pacote.

Exemplos

Exemplo #1 Exempo da função resourcebundle_count()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/meuapp");
echo resourcebundle_count($r);
?>

Exemplo #2 Exemplo orientado a objeto

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/meuapp");
echo $r->count();
?>

O exemplo acima produzirá:

42

Veja Também

  • resourcebundle_get() - Obtém os dados do pacote


Cria um pacote de recursos

  • « ResourceBundle::count
  • ResourceBundle::getErrorCode »
  • PHP Manual
  • ResourceBundle
  • Cria um pacote de recursos

ResourceBundle::create

resourcebundle_create

ResourceBundle::__construct

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::create -- resourcebundle_create -- ResourceBundle::__construct — Cria um pacote de recursos

Descrição

Estilo orientado a objetos (method)

public static ResourceBundle::create(?string $locale, ?string $bundle, bool $fallback = true): ?ResourceBundle

Estilo procedural

resourcebundle_create(?string $locale, ?string $bundle, bool $fallback = true): ?ResourceBundle

Estilo orientado a objetos (constructor):

public ResourceBundle::__construct(?string $locale, ?string $bundle, bool $fallback = true)

Cria um pacote de recursos.

Parâmetros

locale

Localidade para a qual os recursos devem ser carregados (nome da localidade, ex. en_CA).

bundle

O diretório onde os dados estão armazenados ou o nome do arquivo .dat.

fallback

Indica se a localidade deve ser uma correspondência exata ou se a retroação para a localidade base é permitida.

Valor Retornado

Retorna um objeto ResourceBundle ou null caso haja erro.

Exemplos

Exemplo #1 Exemplo de resourcebundle_create()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>

Exemplo #2 Exemplo de ResourceBundle::create()

<?php
$r = ResourceBundle::create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>

O exemplo acima produzirá:

¡Hola, mundo!

Veja Também

  • resourcebundle_get() - Obtém os dados do pacote


Obtém o código do último erro gerado pelo pacote.

  • « ResourceBundle::create
  • ResourceBundle::getErrorMessage »
  • PHP Manual
  • ResourceBundle
  • Obtém o código do último erro gerado pelo pacote.

ResourceBundle::getErrorCode

resourcebundle_get_error_code

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::getErrorCode -- resourcebundle_get_error_code — Obtém o código do último erro gerado pelo pacote.

Descrição

Estilo orientado a objetos

public ResourceBundle::getErrorCode(): int

Estilo procedural

resourcebundle_get_error_code(ResourceBundle $bundle): int

Obtém o código do erro gerado pela última função realizada pelo objeto pacote.

Parâmetros

bundle

Um objeto ResourceBundle.

Valor Retornado

Retorna o código de erro da última chamada do objeto pacote.

Exemplos

Exemplo #1 Exemplo da função resourcebundle_get_error_code()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(resourcebundle_get_error_code($r))) {
report_error("Bundle error");
}
?>

Exemplo #2 Exemplo orientado à objeto

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(ResourceBundle::getErrorCode($r))) {
report_error("Bundle error");
}
?>

Veja Também

  • resourcebundle_get_error_message() - Obtém a última mensagem de erro gerada pelo pacote
  • intl_get_error_code() - Obtém o último código de erro
  • intl_is_failure() - Verifica se o código de erro fornecido indica falha


Obtém a última mensagem de erro gerada pelo pacote

  • « ResourceBundle::getErrorCode
  • ResourceBundle::get »
  • PHP Manual
  • ResourceBundle
  • Obtém a última mensagem de erro gerada pelo pacote

ResourceBundle::getErrorMessage

resourcebundle_get_error_message

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::getErrorMessage -- resourcebundle_get_error_message — Obtém a última mensagem de erro gerada pelo pacote

Descrição

Estilo orientado a objetos

public ResourceBundle::getErrorMessage(): string

Estilo procedural

resourcebundle_get_error_message(ResourceBundle $bundle): string

Obtém a mensagem do erro gerado pela última função realizada pelo objeto pacote.

Parâmetros

bundle

Um objeto ResourceBundle.

Valor Retornado

Retorna a mensagem de erro da última chamada do objeto pacote.

Exemplos

Exemplo #1 Exemplo da função resourcebundle_get_error_message()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(resourcebundle_get_error_code($r))) {
report_error("Bundle error: ".resourcebundle_get_error_message($r));
}
?>

Exemplo #2 Exemplo orientado à objeto

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(ResourceBundle::getErrorCode($r))) {
report_error("Bundle error: ".ResourceBundle::getErrorMessage($r));
}
?>

Veja Também

  • resourcebundle_get_error_code() - Obtém o código do último erro gerado pelo pacote.
  • intl_get_error_code() - Obtém o último código de erro
  • intl_is_failure() - Verifica se o código de erro fornecido indica falha


Obtém os dados do pacote

  • « ResourceBundle::getErrorMessage
  • ResourceBundle::getLocales »
  • PHP Manual
  • ResourceBundle
  • Obtém os dados do pacote

ResourceBundle::get

resourcebundle_get

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::get -- resourcebundle_get — Obtém os dados do pacote

Descrição

Estilo orientado a objetos

public ResourceBundle::get(string|int $index, bool $fallback = true): mixed

Estilo procedural

resourcebundle_get(ResourceBundle $bundle, string|int $index, bool $fallback = true): mixed

Obtém os dados do pacote através de um índice ou de uma string chave.

Parâmetros

bundle

Um objeto ResourceBundle.

index

O índice onde os dados estão. Pode ser uma string ou um intero.

fallback

O locale alternativo no caso de não encontrar o item exato ou outra alternativa.

Valor Retornado

Retorna os dados localizados no índice informado ou null caso haja erro. Strings, inteiros e dados em binário são retornados como seus tipo correspondentes em PHP. Um array de inteiros é retornado como um array PHP. Tipos complexos são retornados como objetos ResourceBundle.

Exemplos

Exemplo #1 Exemplo da função resourcebundle_get()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo resourcebundle_get($r, 'somestring');
?>

Exemplo #2 Exemplo orientado à objeto

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r->get('somestring');
?>

O exemplo acima produzirá:

?Hola, mundo!

Veja Também

  • resourcebundle_count() - Obtém o número de elementos no pacote


Obtém as localidades suportadas

  • « ResourceBundle::get
  • Spoofchecker »
  • PHP Manual
  • ResourceBundle
  • Obtém as localidades suportadas

ResourceBundle::getLocales

resourcebundle_locales

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::getLocales -- resourcebundle_locales — Obtém as localidades suportadas

Descrição

Estilo orientado a objetos

public static ResourceBundle::getLocales(string $bundle): array|false

Estilo procedural

resourcebundle_locales(string $bundle): array|false

Obtém as localidades disponíveis a partir do pacote informado.

Parâmetros

bundle

Caminho do ResourceBundle de onde se obterão as localidades disponíveis, ou uma string vazia para a lista padrão de localidades.

Valor Retornado

Retorna a lista de localidades suportadas pelo pacote, ou false em caso de erros.

Exemplos

Exemplo #1 Exemplo da função resourcebundle_locales()

<?php
$bundle = "/user/share/data/myapp";
echo join(PHP_EOL, resourcebundle_locales($bundle));
?>

O exemplo acima produzirá algo semelhante a:

es
root

Exemplo #2 Exemplo orientado à objetos

<?php
$bundle = "/usr/share/data/myapp";
$r = new ResourceBundle( 'es', $bundle);
echo join("\n", $r->getLocales($bundle));
?>

O exemplo acima produzirá algo semelhante a:

es
root

Veja Também

  • resourcebundle_get() - Obtém os dados do pacote


A classe Spoofchecker

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Introdução

Esta classe é fornecida porque o Unicode contém um grande número de caractares e incorpora sistemas variados de escrita de todo o mundo e seu uso incorreto pode expor programas ou sistemas a possíveis ataques à segurança usando similaridade de caracteres.

Os métodos fornecidos permitem verificar se uma string individual pode ser uma tentativa de confundir o leitor (spoof detection), como em "p?yp?l" escrito com caracteres cirílicos '?'.

Resumo da classe

class Spoofchecker {
/* Constantes */
public const int SINGLE_SCRIPT_CONFUSABLE;
public const int MIXED_SCRIPT_CONFUSABLE;
public const int WHOLE_SCRIPT_CONFUSABLE;
public const int ANY_CASE;
public const int SINGLE_SCRIPT;
public const int INVISIBLE;
public const int CHAR_LIMIT;
public const int ASCII;
public const int HIGHLY_RESTRICTIVE;
public const int MODERATELY_RESTRICTIVE;
public const int MINIMALLY_RESTRICTIVE;
public const int UNRESTRICTIVE;
public const int SINGLE_SCRIPT_RESTRICTIVE;
public const int MIXED_NUMBERS;
public const int HIDDEN_OVERLAY;
/* Métodos */
public __construct()
public areConfusable(string $string1, string $string2, int &$errorCode = null): bool
public isSuspicious(string $string, int &$errorCode = null): bool
public setAllowedLocales(string $locales): void
public setChecks(int $checks): void
public setRestrictionLevel(int $level): void
}

Constantes pré-definidas

Spoofchecker::SINGLE_SCRIPT_CONFUSABLE

Spoofchecker::MIXED_SCRIPT_CONFUSABLE

Spoofchecker::WHOLE_SCRIPT_CONFUSABLE

Spoofchecker::ANY_CASE

Spoofchecker::SINGLE_SCRIPT

Spoofchecker::INVISIBLE

Spoofchecker::CHAR_LIMIT

Spoofchecker::ASCII

Spoofchecker::HIGHLY_RESTRICTIVE

Spoofchecker::MODERATELY_RESTRICTIVE

Spoofchecker::MINIMALLY_RESTRICTIVE

Spoofchecker::UNRESTRICTIVE

Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE

Spoofchecker::MIXED_NUMBERS

Spoofchecker::HIDDEN_OVERLAY

Registro de Alterações

Versão | Descrição
7.3.0 | Constantes de classe usadas por Spoofchecker::setRestrictionLevel() como Spoofchecker::ASCII, Spoofchecker::HIGHLY_RESTRICTIVE, Spoofchecker::MODERATELY_RESTRICTIVE, Spoofchecker::MINIMALLY_RESTRICTIVE, Spoofchecker::UNRESTRICTIVE, Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE foram adicionadas.

Índice

  • Spoofchecker::areConfusable — Verifica se as strings fornecidas podem ser confundidas
  • Spoofchecker::__construct — Construtor
  • Spoofchecker::isSuspicious — Verifica se um texto fornecido contém algum caractere suspeito
  • Spoofchecker::setAllowedLocales — Localidades a usar nas verificações executadas
  • Spoofchecker::setChecks — Define as verificações que serão executadas
  • Spoofchecker::setRestrictionLevel — Define o nível de restrição


Verifica se as strings fornecidas podem ser confundidas

  • « Spoofchecker
  • Spoofchecker::__construct »
  • PHP Manual
  • Spoofchecker
  • Verifica se as strings fornecidas podem ser confundidas

Spoofchecker::areConfusable

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::areConfusable — Verifica se as strings fornecidas podem ser confundidas

Descrição

public Spoofchecker::areConfusable(string $string1, string $string2, int &$errorCode = null): bool

Verifica se duas strings fornecidas podem ser facilmente confundidas.

Parâmetros

string1

Primeira string a verificar.

string2

Segunda string a verificar.

errorCode

Esta variável é definida por referência para int contendo um erro, se houver algum.

Valor Retornado

Retorna true se as duas strings podem ser confundidas, false caso contrário.

Exemplos

Exemplo #1 Exemplo de Spoofchecker::areConfusable()

<?php
$checker = new Spoofchecker();

$checker->areConfusable('google.com', 'goog1e.com'); // verdadeiro
// L minúsculo pode ser confundido com o número 1

$checker->areConfusable('google.com', 'g00g1e.com'); // falso
// Zero (0) não é facilmente confundido com a letra "o" minúscula


Construtor

  • « Spoofchecker::areConfusable
  • Spoofchecker::isSuspicious »
  • PHP Manual
  • Spoofchecker
  • Construtor

Spoofchecker::__construct

(Não há informação de versão disponível, talvez apenas no Git)

Spoofchecker::__construct — Construtor

Descrição

public Spoofchecker::__construct()

Cria uma nova instância de Spoofchecker.

Parâmetros

Esta função não possui parâmetros.


Verifica se um texto fornecido contém algum caractere suspeito

  • « Spoofchecker::__construct
  • Spoofchecker::setAllowedLocales »
  • PHP Manual
  • Spoofchecker
  • Verifica se um texto fornecido contém algum caractere suspeito

Spoofchecker::isSuspicious

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::isSuspicious — Verifica se um texto fornecido contém algum caractere suspeito

Descrição

public Spoofchecker::isSuspicious(string $string, int &$errorCode = null): bool

Verifica se uma string contém algum caractere suspeito como letras que são quase idênticas visualmente, mas são caracteres Unicode de conjuntos diferentes.

Parâmetros

string

String a ser testada.

errorCode

Esta variável é definida por referência para int contendo um erro, se houver algum.

Valor Retornado

Retorna true se houver caracteres suspeitos, false caso contrário.

Exemplos

Exemplo #1 Exemplo de Spoofchecker::isSuspicious()

<?php
$checker = new Spoofchecker();

$checker->isSuspicious('google.com'); // FALSO: apenas caracteres ASCII

$checker->isSuspicious('?aypal.com'); // VERDADEIRO
// A primeira letra é do alfabeto cirílico, e não um "P" latino


Localidades a usar nas verificações executadas

  • « Spoofchecker::isSuspicious
  • Spoofchecker::setChecks »
  • PHP Manual
  • Spoofchecker
  • Localidades a usar nas verificações executadas

Spoofchecker::setAllowedLocales

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::setAllowedLocales — Localidades a usar nas verificações executadas

Descrição

public Spoofchecker::setAllowedLocales(string $locales): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

locales

Valor Retornado


Define as verificações que serão executadas

  • « Spoofchecker::setAllowedLocales
  • Spoofchecker::setRestrictionLevel »
  • PHP Manual
  • Spoofchecker
  • Define as verificações que serão executadas

Spoofchecker::setChecks

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::setChecks — Define as verificações que serão executadas

Descrição

public Spoofchecker::setChecks(int $checks): void

Define as verificações que serão executadas por SpoofChecker::isSuspicious().

Parâmetros

checks

As verificações que serão executadas por SpoofChecker::isSuspicious().
Uma máscara de bits das constantes
Spoofchecker::SINGLE_SCRIPT_CONFUSABLE,
Spoofchecker::MIXED_SCRIPT_CONFUSABLE,
Spoofchecker::WHOLE_SCRIPT_CONFUSABLE,
Spoofchecker::ANY_CASE,
Spoofchecker::SINGLE_SCRIPT,
Spoofchecker::INVISIBLE, ou
Spoofchecker::CHAR_LIMIT.
O padrão é realizar todas as verificações a partir da ICU 58; antes desta versão,
Spoofchecker::SINGLE_SCRIPT era excluída.

Valor Retornado

Nenhum valor é retornado.


Define o nível de restrição

  • « Spoofchecker::setChecks
  • Transliterator »
  • PHP Manual
  • Spoofchecker
  • Define o nível de restrição

Spoofchecker::setRestrictionLevel

(PHP 7 >= 7.3.0, PHP 8)

Spoofchecker::setRestrictionLevel — Define o nível de restrição

Descrição

public Spoofchecker::setRestrictionLevel(int $level): void

Define o nível de restrição de SpoofChecker::isSuspicious().

Parâmetros

level

O nível de restrição de SpoofChecker::isSuspicious().
Uma das constantes
Spoofchecker::ASCII,
Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE,
Spoofchecker::HIGHLY_RESTRICTIVE,
Spoofchecker::MODERATELY_RESTRICTIVE,
Spoofchecker::MINIMALLY_RESTRICTIVE ou
Spoofchecker::UNRESTRICTIVE.
O padrão é Spoofchecker::HIGHLY_RESTRICTIVE.

Valor Retornado

Nenhum valor é retornado.


A classe Transliterator

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Introdução

Transliterator fornece transliteração de strings.

Resumo da classe

class Transliterator {
/* Constantes */
public const int FORWARD;
public const int REVERSE;
/* Propriedades */
public readonly string $id;
/* Métodos */
final private __construct()
public static create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator
public static createFromRules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator
public createInverse(): ?Transliterator
public getErrorCode(): int|false
public getErrorMessage(): string|false
public static listIDs(): array|false
public transliterate(string $string, int $start = 0, int $end = -1): string|false
}

Propriedades

id

Constantes pré-definidas

Transliterator::FORWARD

Transliterator::REVERSE

Registro de Alterações

Versão | Descrição
8.2.0 | A propriedade id agora é somente-leitura.

Índice

  • Transliterator::__construct — Construtor privado para proibir instanciação
  • Transliterator::create — Cria um transliterador
  • Transliterator::createFromRules — Cria um transliterador a partir de regras
  • Transliterator::createInverse — Cria um transliterador inverso
  • Transliterator::getErrorCode — Obtém o último código de erro
  • Transliterator::getErrorMessage — Obtém a última mensagem de erro
  • Transliterator::listIDs — Obtém IDs de transliteradores
  • Transliterator::transliterate — Translitera uma string


Construtor privado para proibir instanciação

  • « Transliterator
  • Transliterator::create »
  • PHP Manual
  • Transliterator
  • Construtor privado para proibir instanciação

Transliterator::__construct

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::__construct — Construtor privado para proibir instanciação

Descrição

final private Transliterator::__construct()

Este método não deve ser chamado. Seu único propósito é inibir instanciação com o operador new.

Use os métodos de criação Transliterator::create() ou Transliterator::createFromRules() em seu lugar.

Parâmetros

Esta função não possui parâmetros.

Veja Também

  • Transliterator::create() - Cria um transliterador
  • Transliterator::createFromRules() - Cria um transliterador a partir de regras


Cria um transliterador

  • « Transliterator::__construct
  • Transliterator::createFromRules »
  • PHP Manual
  • Transliterator
  • Cria um transliterador

Transliterator::create

transliterator_create

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::create -- transliterator_create — Cria um transliterador

Descrição

Estilo orientado a objetos

public static Transliterator::create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator

Estilo procedural

transliterator_create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator

Abre um Transliterador por ID.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

id

O ID. Uma lista de todos os IDs de transliteradores registrador pode ser obtido usando-se Transliterator::listIDs().

direction

A direção, o padrão é Transliterator::FORWARD. Também pode ser definido para Transliterator::REVERSE.

Valor Retornado

Retorna um objeto Transliterator em caso de sucesso, ou null em caso de falha.

Veja Também

  • Transliterator::getErrorMessage() - Obtém a última mensagem de erro
  • Transliterator::__construct() - Construtor privado para proibir instanciação


Cria um transliterador a partir de regras

  • « Transliterator::create
  • Transliterator::createInverse »
  • PHP Manual
  • Transliterator
  • Cria um transliterador a partir de regras

Transliterator::createFromRules

transliterator_create_from_rules

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::createFromRules -- transliterator_create_from_rules — Cria um transliterador a partir de regras

Descrição

Estilo orientado a objetos

public static Transliterator::createFromRules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator

Estilo procedural

transliterator_create_from_rules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator

Cria um transliterador a partir de regras.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

rules

As regras como definidas na Sintaxe de Regras de Transformação da UTS #35: LDML Unicode.

direction

A direção, o padrão é Transliterator::FORWARD. Também pode ser definido para Transliterator::REVERSE.

Valor Retornado

Retorna um objeto Transliterator em caso de sucesso, ou null em caso de falha.

Veja Também

  • Transliterator::getErrorMessage() - Obtém a última mensagem de erro
  • Transliterator::create() - Cria um transliterador


Cria um transliterador inverso

  • « Transliterator::createFromRules
  • Transliterator::getErrorCode »
  • PHP Manual
  • Transliterator
  • Cria um transliterador inverso

Transliterator::createInverse

transliterator_create_inverse

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::createInverse -- transliterator_create_inverse — Cria um transliterador inverso

Descrição

Estilo orientado a objetos

public Transliterator::createInverse(): ?Transliterator

Estilo procedural

transliterator_create_inverse(Transliterator $transliterator): ?Transliterator

Abre o transliterador inverso.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um objeto Transliterator em caso de sucesso ou null em caso de falha.

Veja Também

  • Transliterator::getErrorMessage() - Obtém a última mensagem de erro
  • Transliterator::create() - Cria um transliterador


Obtém o último código de erro

  • « Transliterator::createInverse
  • Transliterator::getErrorMessage »
  • PHP Manual
  • Transliterator
  • Obtém o último código de erro

Transliterator::getErrorCode

transliterator_get_error_code

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::getErrorCode -- transliterator_get_error_code — Obtém o último código de erro

Descrição

Estilo orientado a objetos

public Transliterator::getErrorCode(): int|false

Estilo procedural

transliterator_get_error_code(Transliterator $transliterator): int|false

Obtém o último código de erro para este transliterador.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

transliterator

Valor Retornado

O código de erro em caso de sucesso, ou false se nenhum existir ou em caso de falha.

Veja Também

  • Transliterator::getErrorMessage() - Obtém a última mensagem de erro
  • Transliterator::listIDs() - Obtém IDs de transliteradores


Obtém a última mensagem de erro

  • « Transliterator::getErrorCode
  • Transliterator::listIDs »
  • PHP Manual
  • Transliterator
  • Obtém a última mensagem de erro

Transliterator::getErrorMessage

transliterator_get_error_message

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::getErrorMessage -- transliterator_get_error_message — Obtém a última mensagem de erro

Descrição

Estilo orientado a objetos

public Transliterator::getErrorMessage(): string|false

Estilo procedural

transliterator_get_error_message(Transliterator $transliterator): string|false

Obtém a última mensagem de erro para este transliterador.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

transliterator

Valor Retornado

A mensagem de erro em caso de sucesso, ou false se nenhuma existir ou em caso de falha.

Veja Também

  • Transliterator::getErrorCode() - Obtém o último código de erro
  • Transliterator::listIDs() - Obtém IDs de transliteradores


Obtém IDs de transliteradores

  • « Transliterator::getErrorMessage
  • Transliterator::transliterate »
  • PHP Manual
  • Transliterator
  • Obtém IDs de transliteradores

Transliterator::listIDs

transliterator_list_ids

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::listIDs -- transliterator_list_ids — Obtém IDs de transliteradores

Descrição

Estilo orientado a objetos

public static Transliterator::listIDs(): array|false

Estilo procedural

transliterator_list_ids(): array|false

Retorna um array com os IDs de transliteradores registrados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array de IDs de transliteradores registrados em caso de sucesso, ou false em caso de falha.

Exemplos

Exemplo #1 Obtendo os IDs de transliteradores registrados

<?php
print_r(Transliterator::listIDs());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => ASCII-Latin
    [1] => Accents-Any
    [2] => Amharic-Latin/BGN
    [3] => Any-Accents
    [4] => Any-Publishing
...
    [650] => Any-ps_Latn/BGN
    [651] => Any-tk/BGN
    [652] => Any-ch_FONIPA
    [653] => Any-cs_FONIPA
    [654] => Any-cy_FONIPA
)

Veja Também

  • Transliterator::getErrorMessage() - Obtém a última mensagem de erro
  • Transliterator::transliterate() - Translitera uma string


Translitera uma string

  • « Transliterator::listIDs
  • IntlBreakIterator »
  • PHP Manual
  • Transliterator
  • Translitera uma string

Transliterator::transliterate

transliterator_transliterate

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::transliterate -- transliterator_transliterate — Translitera uma string

Descrição

Estilo orientado a objetos

public Transliterator::transliterate(string $string, int $start = 0, int $end = -1): string|false

Estilo procedural

transliterator_transliterate(
Transliterator|string $transliterator,
string $string,
int $start = 0,
int $end = -1
): string|false

Transforma uma string ou parte dela usando um transliterador ICU.

Parâmetros

transliterator

Na versão procedura, pode ser um objeto Transliterator ou uma string a partir da qual um objeto Transliterator possa ser construído.

string

A string a ser transformada.

start

O índice do início (em unidades de código UTF-16) a partir do qual a string começará a ser transformada, inclusive. A indexação inicia em 0. O texto anterior a este índice será mantido sem alteração.

end

O índice do final (em unidades de código UTF-16) até o qual a string será transformada, exclusive. A indexação inicia em 0. O texto neste índice e posteriores será mantido sem alteração.

Valor Retornado

A string transformada em caso de sucesso, ou false em caso de falha.

Exemplos

Exemplo #1 Convertendo unidades de código UTF-16 escapados

<?php
$s = "\u304A\u65E9\u3046\u3054\u3056\u3044\u307E\u3059";
echo transliterator_transliterate("Hex-Any/Java", $s), "\n";

//agora a operação reversa com um caractere suplementar
$supplChar = html_entity_decode('&#x1D11E;');
echo mb_strlen($supplChar, "UTF-8"), "\n";
$encSupplChar = transliterator_transliterate("Any-Hex/Java", $supplChar);
//mostra duas unidades de código UTF-16 codificadas
echo $encSupplChar, "\n";
//e de volta
echo transliterator_transliterate("Hex-Any/Java", $encSupplChar), "\n";
?>

O exemplo acima produzirá algo semelhante a:

????????
1
\uD834\uDD1E
??

Veja Também

  • Transliterator::getErrorMessage() - Obtém a última mensagem de erro
  • Transliterator::__construct() - Construtor privado para proibir instanciação


A classe IntlBreakIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

Um “iterador de quebra” é um objeto ICU que expõe métodos para localização de limites no texto (ex.: início/fim de palavras ou frases). A classe IntlBreakIterator do PHP serve como classe base para todos os tipos de iteradores de quebra ICU. Onde existir funcionalidade extra, a extensão Intl pode expor o iterador de quebra ICU com subclasses convenientes, como IntlRuleBasedBreakIterator ou IntlCodePointBreakIterator.

Esta classe implementa a interface IteratorAggregate. Percorrer um IntlBreakIterator produz valores inteiros não negativos que representam as localizações sucessivas dos limites do texto, expressos como contagem de unidades de código (bytes) UTF-8, tomadas do início do texto (que tem a localização 0). As chaves geradas pelo iterador formam simplesmente a sequência de números naturais {0, 1, 2, …}.

Resumo da classe

class IntlBreakIterator implements IteratorAggregate {
/* Constantes */
public const int DONE;
public const int WORD_NONE;
public const int WORD_NONE_LIMIT;
public const int WORD_NUMBER;
public const int WORD_NUMBER_LIMIT;
public const int WORD_LETTER;
public const int WORD_LETTER_LIMIT;
public const int WORD_KANA;
public const int WORD_KANA_LIMIT;
public const int WORD_IDEO;
public const int WORD_IDEO_LIMIT;
public const int LINE_SOFT;
public const int LINE_SOFT_LIMIT;
public const int LINE_HARD;
public const int LINE_HARD_LIMIT;
public const int SENTENCE_TERM;
public const int SENTENCE_TERM_LIMIT;
public const int SENTENCE_SEP;
public const int SENTENCE_SEP_LIMIT;
/* Métodos */
private __construct()
public static createCharacterInstance(?string $locale = null): ?IntlBreakIterator
public static createCodePointInstance(): IntlCodePointBreakIterator
public static createLineInstance(?string $locale = null): ?IntlBreakIterator
public static createSentenceInstance(?string $locale = null): ?IntlBreakIterator
public static createTitleInstance(?string $locale = null): ?IntlBreakIterator
public static createWordInstance(?string $locale = null): ?IntlBreakIterator
public current(): int
public first(): int
public following(int $offset): int
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(int $type): string|false
public getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator
public getText(): ?string
public isBoundary(int $offset): bool
public last(): int
public next(?int $offset = null): int
public preceding(int $offset): int
public previous(): int
public setText(string $text): bool
}

Constantes pré-definidas

IntlBreakIterator::DONE

IntlBreakIterator::WORD_NONE

IntlBreakIterator::WORD_NONE_LIMIT

IntlBreakIterator::WORD_NUMBER

IntlBreakIterator::WORD_NUMBER_LIMIT

IntlBreakIterator::WORD_LETTER

IntlBreakIterator::WORD_LETTER_LIMIT

IntlBreakIterator::WORD_KANA

IntlBreakIterator::WORD_KANA_LIMIT

IntlBreakIterator::WORD_IDEO

IntlBreakIterator::WORD_IDEO_LIMIT

IntlBreakIterator::LINE_SOFT

IntlBreakIterator::LINE_SOFT_LIMIT

IntlBreakIterator::LINE_HARD

IntlBreakIterator::LINE_HARD_LIMIT

IntlBreakIterator::SENTENCE_TERM

IntlBreakIterator::SENTENCE_TERM_LIMIT

IntlBreakIterator::SENTENCE_SEP

IntlBreakIterator::SENTENCE_SEP_LIMIT

Registro de Alterações

Versão | Descrição
8.0.0 | IntlBreakIterator agora implementa IteratorAggregate. Anteriormente, Traversable era implementado.

Índice

  • IntlBreakIterator::__construct — Construtor privado para não permitir instanciação
  • IntlBreakIterator::createCharacterInstance — Cria um iterador de quebra para limites de sequências de combinação de caracteres
  • IntlBreakIterator::createCodePointInstance — Cria um iterador de quebra para limites de pontos de código
  • IntlBreakIterator::createLineInstance — Cria um iterador de quebra para quebras de linha logicamente possíveis
  • IntlBreakIterator::createSentenceInstance — Cria um iterador de quebra para separação de sentenças
  • IntlBreakIterator::createTitleInstance — Cria um iterador para quebras de letras de título
  • IntlBreakIterator::createWordInstance — Cria um iterador de quebra para separação de palavras
  • IntlBreakIterator::current — Obtém o índice da posição atual
  • IntlBreakIterator::first — Define a posição para o primeiro caractere no texto
  • IntlBreakIterator::following — Avança o iterador para o primeiro limite após o deslocamento especificado
  • IntlBreakIterator::getErrorCode — Obtém o último código de erro no objeto
  • IntlBreakIterator::getErrorMessage — Obtém a última mensagem de erro no objeto
  • IntlBreakIterator::getLocale — Obtém a localidade associada com o objeto
  • IntlBreakIterator::getPartsIterator — Cria um iterador para navegar por fragmentos entre limites
  • IntlBreakIterator::getText — Obtém o texto sendo percorrido
  • IntlBreakIterator::isBoundary — Indica se uma posição é um posição de limite
  • IntlBreakIterator::last — Define a posição do iterador para um índice além do último caractere
  • IntlBreakIterator::next — Avança o iterador para o próximo limite
  • IntlBreakIterator::preceding — Define a posição do iterador para o primeiro limite depois de um deslocamento
  • IntlBreakIterator::previous — Define a posição do iterador para o limite imediatamente anterior ao atual
  • IntlBreakIterator::setText — Define o texto a ser percorrido


Construtor privado para não permitir instanciação

  • « IntlBreakIterator
  • IntlBreakIterator::createCharacterInstance »
  • PHP Manual
  • IntlBreakIterator
  • Construtor privado para não permitir instanciação

IntlBreakIterator::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::__construct — Construtor privado para não permitir instanciação

Descrição

private IntlBreakIterator::__construct()

Instâncias de IntlBreakIterator devem ser criadas usando um dos métodos estáticos de fabricação.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • IntlBreakIterator::createCharacterInstance() - Cria um iterador de quebra para limites de sequências de combinação de caracteres
  • IntlBreakIterator::createCodePointInstance() - Cria um iterador de quebra para limites de pontos de código
  • IntlBreakIterator::createLineInstance() - Cria um iterador de quebra para quebras de linha logicamente possíveis
  • IntlBreakIterator::createSentenceInstance() - Cria um iterador de quebra para separação de sentenças
  • IntlBreakIterator::createTitleInstance() - Cria um iterador para quebras de letras de título
  • IntlBreakIterator::createWordInstance() - Cria um iterador de quebra para separação de palavras


Cria um iterador de quebra para limites de sequências de combinação de caracteres

  • « IntlBreakIterator::__construct
  • IntlBreakIterator::createCodePointInstance »
  • PHP Manual
  • IntlBreakIterator
  • Cria um iterador de quebra para limites de sequências de combinação de caracteres

IntlBreakIterator::createCharacterInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createCharacterInstance — Cria um iterador de quebra para limites de sequências de combinação de caracteres

Descrição

public static IntlBreakIterator::createCharacterInstance(?string $locale = null): ?IntlBreakIterator

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

locale

Valor Retornado


Cria um iterador de quebra para limites de pontos de código

  • « IntlBreakIterator::createCharacterInstance
  • IntlBreakIterator::createLineInstance »
  • PHP Manual
  • IntlBreakIterator
  • Cria um iterador de quebra para limites de pontos de código

IntlBreakIterator::createCodePointInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createCodePointInstance — Cria um iterador de quebra para limites de pontos de código

Descrição

public static IntlBreakIterator::createCodePointInstance(): IntlCodePointBreakIterator

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Cria um iterador de quebra para quebras de linha logicamente possíveis

  • « IntlBreakIterator::createCodePointInstance
  • IntlBreakIterator::createSentenceInstance »
  • PHP Manual
  • IntlBreakIterator
  • Cria um iterador de quebra para quebras de linha logicamente possíveis

IntlBreakIterator::createLineInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createLineInstance — Cria um iterador de quebra para quebras de linha logicamente possíveis

Descrição

public static IntlBreakIterator::createLineInstance(?string $locale = null): ?IntlBreakIterator

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

locale

Valor Retornado


Cria um iterador de quebra para separação de sentenças

  • « IntlBreakIterator::createLineInstance
  • IntlBreakIterator::createTitleInstance »
  • PHP Manual
  • IntlBreakIterator
  • Cria um iterador de quebra para separação de sentenças

IntlBreakIterator::createSentenceInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createSentenceInstance — Cria um iterador de quebra para separação de sentenças

Descrição

public static IntlBreakIterator::createSentenceInstance(?string $locale = null): ?IntlBreakIterator

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

locale

Valor Retornado


Cria um iterador para quebras de letras de título

  • « IntlBreakIterator::createSentenceInstance
  • IntlBreakIterator::createWordInstance »
  • PHP Manual
  • IntlBreakIterator
  • Cria um iterador para quebras de letras de título

IntlBreakIterator::createTitleInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createTitleInstance — Cria um iterador para quebras de letras de título

Descrição

public static IntlBreakIterator::createTitleInstance(?string $locale = null): ?IntlBreakIterator

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

locale

Valor Retornado


Cria um iterador de quebra para separação de palavras

  • « IntlBreakIterator::createTitleInstance
  • IntlBreakIterator::current »
  • PHP Manual
  • IntlBreakIterator
  • Cria um iterador de quebra para separação de palavras

IntlBreakIterator::createWordInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createWordInstance — Cria um iterador de quebra para separação de palavras

Descrição

public static IntlBreakIterator::createWordInstance(?string $locale = null): ?IntlBreakIterator

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

locale

Valor Retornado


Obtém o índice da posição atual

  • « IntlBreakIterator::createWordInstance
  • IntlBreakIterator::first »
  • PHP Manual
  • IntlBreakIterator
  • Obtém o índice da posição atual

IntlBreakIterator::current

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::current — Obtém o índice da posição atual

Descrição

public IntlBreakIterator::current(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Define a posição para o primeiro caractere no texto

  • « IntlBreakIterator::current
  • IntlBreakIterator::following »
  • PHP Manual
  • IntlBreakIterator
  • Define a posição para o primeiro caractere no texto

IntlBreakIterator::first

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::first — Define a posição para o primeiro caractere no texto

Descrição

public IntlBreakIterator::first(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Avança o iterador para o primeiro limite após o deslocamento especificado

  • « IntlBreakIterator::first
  • IntlBreakIterator::getErrorCode »
  • PHP Manual
  • IntlBreakIterator
  • Avança o iterador para o primeiro limite após o deslocamento especificado

IntlBreakIterator::following

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::following — Avança o iterador para o primeiro limite após o deslocamento especificado

Descrição

public IntlBreakIterator::following(int $offset): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

offset

Valor Retornado


Obtém o último código de erro no objeto

  • « IntlBreakIterator::following
  • IntlBreakIterator::getErrorMessage »
  • PHP Manual
  • IntlBreakIterator
  • Obtém o último código de erro no objeto

IntlBreakIterator::getErrorCode

intl_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getErrorCode -- intl_get_error_code — Obtém o último código de erro no objeto

Descrição

Estilo orientado a objetos (método):

public IntlBreakIterator::getErrorCode(): int

Estilo procedural:

intl_get_error_code(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém a última mensagem de erro no objeto

  • « IntlBreakIterator::getErrorCode
  • IntlBreakIterator::getLocale »
  • PHP Manual
  • IntlBreakIterator
  • Obtém a última mensagem de erro no objeto

IntlBreakIterator::getErrorMessage

intl_get_error_message

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getErrorMessage -- intl_get_error_message — Obtém a última mensagem de erro no objeto

Descrição

Estilo orientado a objetos (método):

public IntlBreakIterator::getErrorMessage(): string

Estilo procedural:

intl_get_error_message(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém a localidade associada com o objeto

  • « IntlBreakIterator::getErrorMessage
  • IntlBreakIterator::getPartsIterator »
  • PHP Manual
  • IntlBreakIterator
  • Obtém a localidade associada com o objeto

IntlBreakIterator::getLocale

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getLocale — Obtém a localidade associada com o objeto

Descrição

public IntlBreakIterator::getLocale(int $type): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

type

Valor Retornado


Cria um iterador para navegar por fragmentos entre limites

  • « IntlBreakIterator::getLocale
  • IntlBreakIterator::getText »
  • PHP Manual
  • IntlBreakIterator
  • Cria um iterador para navegar por fragmentos entre limites

IntlBreakIterator::getPartsIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getPartsIterator — Cria um iterador para navegar por fragmentos entre limites

Descrição

public IntlBreakIterator::getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

type

Tipo de chave, opcional. Os valores possíveis são:

  • IntlPartsIterator::KEY_SEQUENTIAL - O padrão. Inteiros sequenciais usados como chave.
  • IntlPartsIterator::KEY_LEFT - Deslocamento em bytes à esquerda da parte atual usado como chave.
  • IntlPartsIterator::KEY_RIGHT - Deslocamento em bytes à direita da parte atual usado como chave.

Valor Retornado


Obtém o texto sendo percorrido

  • « IntlBreakIterator::getPartsIterator
  • IntlBreakIterator::isBoundary »
  • PHP Manual
  • IntlBreakIterator
  • Obtém o texto sendo percorrido

IntlBreakIterator::getText

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getText — Obtém o texto sendo percorrido

Descrição

public IntlBreakIterator::getText(): ?string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Indica se uma posição é um posição de limite

  • « IntlBreakIterator::getText
  • IntlBreakIterator::last »
  • PHP Manual
  • IntlBreakIterator
  • Indica se uma posição é um posição de limite

IntlBreakIterator::isBoundary

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::isBoundary — Indica se uma posição é um posição de limite

Descrição

public IntlBreakIterator::isBoundary(int $offset): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

offset

Valor Retornado


Define a posição do iterador para um índice além do último caractere

  • « IntlBreakIterator::isBoundary
  • IntlBreakIterator::next »
  • PHP Manual
  • IntlBreakIterator
  • Define a posição do iterador para um índice além do último caractere

IntlBreakIterator::last

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::last — Define a posição do iterador para um índice além do último caractere

Descrição

public IntlBreakIterator::last(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Avança o iterador para o próximo limite

  • « IntlBreakIterator::last
  • IntlBreakIterator::preceding »
  • PHP Manual
  • IntlBreakIterator
  • Avança o iterador para o próximo limite

IntlBreakIterator::next

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::next — Avança o iterador para o próximo limite

Descrição

public IntlBreakIterator::next(?int $offset = null): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

offset

Valor Retornado


Define a posição do iterador para o primeiro limite depois de um deslocamento

  • « IntlBreakIterator::next
  • IntlBreakIterator::previous »
  • PHP Manual
  • IntlBreakIterator
  • Define a posição do iterador para o primeiro limite depois de um deslocamento

IntlBreakIterator::preceding

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::preceding — Define a posição do iterador para o primeiro limite depois de um deslocamento

Descrição

public IntlBreakIterator::preceding(int $offset): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

offset

Valor Retornado


Define a posição do iterador para o limite imediatamente anterior ao atual

  • « IntlBreakIterator::preceding
  • IntlBreakIterator::setText »
  • PHP Manual
  • IntlBreakIterator
  • Define a posição do iterador para o limite imediatamente anterior ao atual

IntlBreakIterator::previous

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::previous — Define a posição do iterador para o limite imediatamente anterior ao atual

Descrição

public IntlBreakIterator::previous(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Define o texto a ser percorrido

  • « IntlBreakIterator::previous
  • IntlRuleBasedBreakIterator »
  • PHP Manual
  • IntlBreakIterator
  • Define o texto a ser percorrido

IntlBreakIterator::setText

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::setText — Define o texto a ser percorrido

Descrição

public IntlBreakIterator::setText(string $text): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

text

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.0 | Este método agora retorna false em caso de falha; anteriormente retornava null.


A classe IntlRuleBasedBreakIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

Uma subclasse de IntlBreakIterator que faz encapsulamento de iteradores de quebra ICU cujo comportamento é especificado usando-se um conjunto de regras. Este é o tipo mais comum de iteradores de quebra.

Estas regras estão descritas no » Guia do Usuário de Análise de Limites ICU.

Resumo da classe

class IntlRuleBasedBreakIterator extends IntlBreakIterator {
/* Constantes herdadas */
public const int IntlBreakIterator::DONE;
public const int IntlBreakIterator::WORD_NONE;
public const int IntlBreakIterator::WORD_NONE_LIMIT;
public const int IntlBreakIterator::WORD_NUMBER;
public const int IntlBreakIterator::WORD_NUMBER_LIMIT;
public const int IntlBreakIterator::WORD_LETTER;
public const int IntlBreakIterator::WORD_LETTER_LIMIT;
public const int IntlBreakIterator::WORD_KANA;
public const int IntlBreakIterator::WORD_KANA_LIMIT;
public const int IntlBreakIterator::WORD_IDEO;
public const int IntlBreakIterator::WORD_IDEO_LIMIT;
public const int IntlBreakIterator::LINE_SOFT;
public const int IntlBreakIterator::LINE_SOFT_LIMIT;
public const int IntlBreakIterator::LINE_HARD;
public const int IntlBreakIterator::LINE_HARD_LIMIT;
public const int IntlBreakIterator::SENTENCE_TERM;
public const int IntlBreakIterator::SENTENCE_TERM_LIMIT;
public const int IntlBreakIterator::SENTENCE_SEP;
public const int IntlBreakIterator::SENTENCE_SEP_LIMIT;
/* Métodos */
public __construct(string $rules, bool $compiled = false)
public getBinaryRules(): string|false
public getRules(): string|false
public getRuleStatus(): int
public getRuleStatusVec(): array|false
/* Métodos herdados */
public static IntlBreakIterator::createCharacterInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createCodePointInstance(): IntlCodePointBreakIterator
public static IntlBreakIterator::createLineInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createSentenceInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createTitleInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createWordInstance(?string $locale = null): ?IntlBreakIterator
public IntlBreakIterator::current(): int
public IntlBreakIterator::first(): int
public IntlBreakIterator::following(int $offset): int
public IntlBreakIterator::getErrorCode(): int
public IntlBreakIterator::getErrorMessage(): string
public IntlBreakIterator::getLocale(int $type): string|false
public IntlBreakIterator::getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator
public IntlBreakIterator::getText(): ?string
public IntlBreakIterator::isBoundary(int $offset): bool
public IntlBreakIterator::last(): int
public IntlBreakIterator::next(?int $offset = null): int
public IntlBreakIterator::preceding(int $offset): int
public IntlBreakIterator::previous(): int
public IntlBreakIterator::setText(string $text): bool
}

Índice

  • IntlRuleBasedBreakIterator::__construct — Creia um iderador a partir de um conjunto de regras
  • IntlRuleBasedBreakIterator::getBinaryRules — Obtém a forma binária de regras compiladas
  • IntlRuleBasedBreakIterator::getRules — Obtém o conjunto de regras usado para criar este objeto
  • IntlRuleBasedBreakIterator::getRuleStatus — Obtém o maior valor de status a partir de regras de quebras que determinaram a posição de quebra atual
  • IntlRuleBasedBreakIterator::getRuleStatusVec — Obtém os valores de status das regras de quebra que determinaram a posição de quebra atual


Creia um iderador a partir de um conjunto de regras

  • « IntlRuleBasedBreakIterator
  • IntlRuleBasedBreakIterator::getBinaryRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Creia um iderador a partir de um conjunto de regras

IntlRuleBasedBreakIterator::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::__construct — Creia um iderador a partir de um conjunto de regras

Descrição

public IntlRuleBasedBreakIterator::__construct(string $rules, bool $compiled = false)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

rules

compiled

Valor Retornado


Obtém a forma binária de regras compiladas

  • « IntlRuleBasedBreakIterator::__construct
  • IntlRuleBasedBreakIterator::getRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Obtém a forma binária de regras compiladas

IntlRuleBasedBreakIterator::getBinaryRules

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::getBinaryRules — Obtém a forma binária de regras compiladas

Descrição

public IntlRuleBasedBreakIterator::getBinaryRules(): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém o conjunto de regras usado para criar este objeto

  • « IntlRuleBasedBreakIterator::getBinaryRules
  • IntlRuleBasedBreakIterator::getRuleStatus »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Obtém o conjunto de regras usado para criar este objeto

IntlRuleBasedBreakIterator::getRules

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::getRules — Obtém o conjunto de regras usado para criar este objeto

Descrição

public IntlRuleBasedBreakIterator::getRules(): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém o maior valor de status a partir de regras de quebras que determinaram a posição de quebra atual

  • « IntlRuleBasedBreakIterator::getRules
  • IntlRuleBasedBreakIterator::getRuleStatusVec »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Obtém o maior valor de status a partir de regras de quebras que determinaram a posição de quebra atual

IntlRuleBasedBreakIterator::getRuleStatus

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::getRuleStatus — Obtém o maior valor de status a partir de regras de quebras que determinaram a posição de quebra atual

Descrição

public IntlRuleBasedBreakIterator::getRuleStatus(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém os valores de status das regras de quebra que determinaram a posição de quebra atual

  • « IntlRuleBasedBreakIterator::getRuleStatus
  • IntlCodePointBreakIterator »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Obtém os valores de status das regras de quebra que determinaram a posição de quebra atual

IntlRuleBasedBreakIterator::getRuleStatusVec

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::getRuleStatusVec — Obtém os valores de status das regras de quebra que determinaram a posição de quebra atual

Descrição

public IntlRuleBasedBreakIterator::getRuleStatusVec(): array|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe IntlCodePointBreakIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

Este iterador de quebra identifica os limites entre os pontos de código UTF-8.

Resumo da classe

class IntlCodePointBreakIterator extends IntlBreakIterator {
/* Constantes herdadas */
public const int IntlBreakIterator::DONE;
public const int IntlBreakIterator::WORD_NONE;
public const int IntlBreakIterator::WORD_NONE_LIMIT;
public const int IntlBreakIterator::WORD_NUMBER;
public const int IntlBreakIterator::WORD_NUMBER_LIMIT;
public const int IntlBreakIterator::WORD_LETTER;
public const int IntlBreakIterator::WORD_LETTER_LIMIT;
public const int IntlBreakIterator::WORD_KANA;
public const int IntlBreakIterator::WORD_KANA_LIMIT;
public const int IntlBreakIterator::WORD_IDEO;
public const int IntlBreakIterator::WORD_IDEO_LIMIT;
public const int IntlBreakIterator::LINE_SOFT;
public const int IntlBreakIterator::LINE_SOFT_LIMIT;
public const int IntlBreakIterator::LINE_HARD;
public const int IntlBreakIterator::LINE_HARD_LIMIT;
public const int IntlBreakIterator::SENTENCE_TERM;
public const int IntlBreakIterator::SENTENCE_TERM_LIMIT;
public const int IntlBreakIterator::SENTENCE_SEP;
public const int IntlBreakIterator::SENTENCE_SEP_LIMIT;
/* Métodos */
public getLastCodePoint(): int
/* Métodos herdados */
public static IntlBreakIterator::createCharacterInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createCodePointInstance(): IntlCodePointBreakIterator
public static IntlBreakIterator::createLineInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createSentenceInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createTitleInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createWordInstance(?string $locale = null): ?IntlBreakIterator
public IntlBreakIterator::current(): int
public IntlBreakIterator::first(): int
public IntlBreakIterator::following(int $offset): int
public IntlBreakIterator::getErrorCode(): int
public IntlBreakIterator::getErrorMessage(): string
public IntlBreakIterator::getLocale(int $type): string|false
public IntlBreakIterator::getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator
public IntlBreakIterator::getText(): ?string
public IntlBreakIterator::isBoundary(int $offset): bool
public IntlBreakIterator::last(): int
public IntlBreakIterator::next(?int $offset = null): int
public IntlBreakIterator::preceding(int $offset): int
public IntlBreakIterator::previous(): int
public IntlBreakIterator::setText(string $text): bool
}

Índice

  • IntlCodePointBreakIterator::getLastCodePoint — Obtém o último code point passado após avançar ou retroceder o iterador


Obtém o último code point passado após avançar ou retroceder o iterador

  • « IntlCodePointBreakIterator
  • IntlDatePatternGenerator »
  • PHP Manual
  • IntlCodePointBreakIterator
  • Obtém o último code point passado após avançar ou retroceder o iterador

IntlCodePointBreakIterator::getLastCodePoint

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlCodePointBreakIterator::getLastCodePoint — Obtém o último code point passado após avançar ou retroceder o iterador

Descrição

public IntlCodePointBreakIterator::getLastCodePoint(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe IntlDatePatternGenerator

(PHP 8 >= 8.1.0)

Introdução

Gera strings de padrão de formatação para data e/ou horário dependentes de localidade, adequadas para uso em IntlDateFormatter.

Resumo da classe

class IntlDatePatternGenerator {
/* Métodos */
public __construct(?string $locale = null)
public static create(?string $locale = null): ?IntlDatePatternGenerator
public getBestPattern(string $skeleton): string|false
}

Índice

  • IntlDatePatternGenerator::create — Cria uma nova instância de IntlDatePatternGenerator
  • IntlDatePatternGenerator::getBestPattern — Determina o formato de data/horário mais adequado


Cria uma nova instância de IntlDatePatternGenerator

  • « IntlDatePatternGenerator
  • IntlDatePatternGenerator::getBestPattern »
  • PHP Manual
  • IntlDatePatternGenerator
  • Cria uma nova instância de IntlDatePatternGenerator

IntlDatePatternGenerator::create

IntlDatePatternGenerator::__construct

(PHP 8 >= 8.1.0)

IntlDatePatternGenerator::create -- IntlDatePatternGenerator::__construct — Cria uma nova instância de IntlDatePatternGenerator

Descrição

public static IntlDatePatternGenerator::create(?string $locale = null): ?IntlDatePatternGenerator
public IntlDatePatternGenerator::__construct(?string $locale = null)

Cria uma nova instância de IntlDatePatternGenerator.

Parâmetros

locale

A localidade. Se null for passado, usa a configuração ini intl.default_locale.

Valor Retornado

Retorna uma instância de IntlDatePatternGenerator em caso de sucesso ou null em caso de falha.


Determina o formato de data/horário mais adequado

  • « IntlDatePatternGenerator::create
  • IntlPartsIterator »
  • PHP Manual
  • IntlDatePatternGenerator
  • Determina o formato de data/horário mais adequado

IntlDatePatternGenerator::getBestPattern

(PHP 8 >= 8.1.0)

IntlDatePatternGenerator::getBestPattern — Determina o formato de data/horário mais adequado

Descrição

public IntlDatePatternGenerator::getBestPattern(string $skeleton): string|false

Determina que formato de data/horário é mais adequado para uma localidade em particular.

Parâmetros

skeleton

O esqueleto.

Valor Retornado

Retorna um formato, aceito por DateTimeInterface::format() em caso de sucesso, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de IntlDatePatternGenerator::getBestPattern()

<?php

$skeleton = 'YYYYMMdd';
$today = \DateTimeImmutable::createFromFormat('Y-m-d', '2021-04-24');

$patternGenerator = new \IntlDatePatternGenerator('de_DE');
$pattern = $patternGenerator->getBestPattern($skeleton);
echo 'de: ', \IntlDateFormatter::formatObject($today, $pattern, 'de_DE'), "\n";

$patternGenerator = new \IntlDatePatternGenerator('en_US');
$pattern = $patternGenerator->getBestPattern($skeleton);
echo 'en: ', \IntlDateFormatter::formatObject($today, $pattern, 'en_US');
?>

O exemplo acima produzirá:

de: 24.04.2021
en: 04/24/2021


A classe IntlPartsIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

Objetos desta classe podem ser obtidos a partir de objetos IntlBreakIterator. Enquanto os iteradores de quebra fornecem uma sequência de posições de limites quando iterados, objetos IntlPartsIterator fornecem, por conveniência, os fragmentos de texto compreendidos entre dois limites consecutivos.

As chaves podem representar o deslocamento do limite esquerdo, do limite direito, ou podem ser apenas a sequência de inteiros não negativos. Consulte IntlBreakIterator::getPartsIterator().

Resumo da classe

class IntlPartsIterator extends IntlIterator {
/* Constantes */
public const int KEY_SEQUENTIAL;
public const int KEY_LEFT;
public const int KEY_RIGHT;
/* Métodos */
public getBreakIterator(): IntlBreakIterator
/* Métodos herdados */
public IntlIterator::current(): mixed
public IntlIterator::key(): mixed
public IntlIterator::next(): void
public IntlIterator::rewind(): void
public IntlIterator::valid(): bool
}

Constantes pré-definidas

IntlPartsIterator::KEY_SEQUENTIAL

IntlPartsIterator::KEY_LEFT

IntlPartsIterator::KEY_RIGHT

Índice

  • IntlPartsIterator::getBreakIterator — Obtém o IntlBreakIterator que é utilizado pelo iterador


Obtém o IntlBreakIterator que é utilizado pelo iterador

  • « IntlPartsIterator
  • UConverter »
  • PHP Manual
  • IntlPartsIterator
  • Obtém o IntlBreakIterator que é utilizado pelo iterador

IntlPartsIterator::getBreakIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlPartsIterator::getBreakIterator — Obtém o IntlBreakIterator que é utilizado pelo iterador

Descrição

public IntlPartsIterator::getBreakIterator(): IntlBreakIterator

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe UConverter

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

Introdução

Resumo da classe

class UConverter {
/* Constantes */
public const int REASON_UNASSIGNED;
public const int REASON_ILLEGAL;
public const int REASON_IRREGULAR;
public const int REASON_RESET;
public const int REASON_CLOSE;
public const int REASON_CLONE;
public const int UNSUPPORTED_CONVERTER;
public const int SBCS;
public const int DBCS;
public const int MBCS;
public const int LATIN_1;
public const int UTF8;
public const int UTF16_BigEndian;
public const int UTF16_LittleEndian;
public const int UTF32_BigEndian;
public const int UTF32_LittleEndian;
public const int EBCDIC_STATEFUL;
public const int ISO_2022;
public const int LMBCS_1;
public const int LMBCS_2;
public const int LMBCS_3;
public const int LMBCS_4;
public const int LMBCS_5;
public const int LMBCS_6;
public const int LMBCS_8;
public const int LMBCS_11;
public const int LMBCS_16;
public const int LMBCS_17;
public const int LMBCS_18;
public const int LMBCS_19;
public const int LMBCS_LAST;
public const int HZ;
public const int SCSU;
public const int ISCII;
public const int US_ASCII;
public const int UTF7;
public const int BOCU1;
public const int UTF16;
public const int UTF32;
public const int CESU8;
public const int IMAP_MAILBOX;
/* Métodos */
public __construct(?string $destination_encoding = null, ?string $source_encoding = null)
public convert(string $str, bool $reverse = false): string|false
public fromUCallback(
int $reason,
array $source,
int $codePoint,
int &$error
): string|int|array|null
public static getAliases(string $name): array|false|null
public static getAvailable(): array
public getDestinationEncoding(): string|false|null
public getDestinationType(): int|false|null
public getErrorCode(): int
public getErrorMessage(): ?string
public getSourceEncoding(): string|false|null
public getSourceType(): int|false|null
public static getStandards(): ?array
public getSubstChars(): string|false|null
public static reasonText(int $reason): string
public setDestinationEncoding(string $encoding): bool
public setSourceEncoding(string $encoding): bool
public setSubstChars(string $chars): bool
public toUCallback(
int $reason,
string $source,
string $codeUnits,
int &$error
): string|int|array|null
public static transcode(
string $str,
string $toEncoding,
string $fromEncoding,
?array $options = null
): string|false
}

Constantes pré-definidas

UConverter::REASON_UNASSIGNED

UConverter::REASON_ILLEGAL

UConverter::REASON_IRREGULAR

UConverter::REASON_RESET

UConverter::REASON_CLOSE

UConverter::REASON_CLONE

UConverter::UNSUPPORTED_CONVERTER

UConverter::SBCS

UConverter::DBCS

UConverter::MBCS

UConverter::LATIN_1

UConverter::UTF8

UConverter::UTF16_BigEndian

UConverter::UTF16_LittleEndian

UConverter::UTF32_BigEndian

UConverter::UTF32_LittleEndian

UConverter::EBCDIC_STATEFUL

UConverter::ISO_2022

UConverter::LMBCS_1

UConverter::LMBCS_2

UConverter::LMBCS_3

UConverter::LMBCS_4

UConverter::LMBCS_5

UConverter::LMBCS_6

UConverter::LMBCS_8

UConverter::LMBCS_11

UConverter::LMBCS_16

UConverter::LMBCS_17

UConverter::LMBCS_18

UConverter::LMBCS_19

UConverter::LMBCS_LAST

UConverter::HZ

UConverter::SCSU

UConverter::ISCII

UConverter::US_ASCII

UConverter::UTF7

UConverter::BOCU1

UConverter::UTF16

UConverter::UTF32

UConverter::CESU8

UConverter::IMAP_MAILBOX

Índice

  • UConverter::__construct — Cria um objeto UConverter
  • UConverter::convert — Converte uma string de um conjunto de caracteres (charset) para outro
  • UConverter::fromUCallback — Função de retorno de origem padrão
  • UConverter::getAliases — Obtém o pseudônimo de um nome
  • UConverter::getAvailable — Obtém os nomes canônicos dos conversores disponíveis
  • UConverter::getDestinationEncoding — Obtém a codificação de destino
  • UConverter::getDestinationType — Obtém o tipo do conversor de destino
  • UConverter::getErrorCode — Obtém o código do último erro gerado pelo objeto
  • UConverter::getErrorMessage — Obtém a mensagem do último erro gerado pelo objeto
  • UConverter::getSourceEncoding — Obtém a codificação de origem
  • UConverter::getSourceType — Obtém o tipo do conversor de origem
  • UConverter::getStandards — Obtém os nomes dos conversores padrão associados
  • UConverter::getSubstChars — Obtém os caracteres de substituição
  • UConverter::reasonText — Obtém uma representação em string da razão da chamada de retorno
  • UConverter::setDestinationEncoding — Define a codificação de destino
  • UConverter::setSourceEncoding — Define a codificação da origem
  • UConverter::setSubstChars — Define os caracteres de substituição
  • UConverter::toUCallback — Função de retorno padrão de destino
  • UConverter::transcode — Converte uma string de uma codificação de caracteres para outra


Cria um objeto UConverter

  • « UConverter
  • UConverter::convert »
  • PHP Manual
  • UConverter
  • Cria um objeto UConverter

UConverter::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::__construct — Cria um objeto UConverter

Descrição

public UConverter::__construct(?string $destination_encoding = null, ?string $source_encoding = null)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

destination_encoding

source_encoding

Valor Retornado


Converte uma string de um conjunto de caracteres (charset) para outro

  • « UConverter::__construct
  • UConverter::fromUCallback »
  • PHP Manual
  • UConverter
  • Converte uma string de um conjunto de caracteres (charset) para outro

UConverter::convert

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::convert — Converte uma string de um conjunto de caracteres (charset) para outro

Descrição

public UConverter::convert(string $str, bool $reverse = false): string|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

str

reverse

Valor Retornado


Função de retorno de origem padrão

  • « UConverter::convert
  • UConverter::getAliases »
  • PHP Manual
  • UConverter
  • Função de retorno de origem padrão

UConverter::fromUCallback

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::fromUCallback — Função de retorno de origem padrão

Descrição

public UConverter::fromUCallback(
int $reason,
array $source,
int $codePoint,
int &$error
): string|int|array|null

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

reason

source

codePoint

error

Valor Retornado


Obtém o pseudônimo de um nome

  • « UConverter::fromUCallback
  • UConverter::getAvailable »
  • PHP Manual
  • UConverter
  • Obtém o pseudônimo de um nome

UConverter::getAliases

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getAliases — Obtém o pseudônimo de um nome

Descrição

public static UConverter::getAliases(string $name): array|false|null

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


Obtém os nomes canônicos dos conversores disponíveis

  • « UConverter::getAliases
  • UConverter::getDestinationEncoding »
  • PHP Manual
  • UConverter
  • Obtém os nomes canônicos dos conversores disponíveis

UConverter::getAvailable

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getAvailable — Obtém os nomes canônicos dos conversores disponíveis

Descrição

public static UConverter::getAvailable(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém a codificação de destino

  • « UConverter::getAvailable
  • UConverter::getDestinationType »
  • PHP Manual
  • UConverter
  • Obtém a codificação de destino

UConverter::getDestinationEncoding

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getDestinationEncoding — Obtém a codificação de destino

Descrição

public UConverter::getDestinationEncoding(): string|false|null

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém o tipo do conversor de destino

  • « UConverter::getDestinationEncoding
  • UConverter::getErrorCode »
  • PHP Manual
  • UConverter
  • Obtém o tipo do conversor de destino

UConverter::getDestinationType

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getDestinationType — Obtém o tipo do conversor de destino

Descrição

public UConverter::getDestinationType(): int|false|null

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém o código do último erro gerado pelo objeto

  • « UConverter::getDestinationType
  • UConverter::getErrorMessage »
  • PHP Manual
  • UConverter
  • Obtém o código do último erro gerado pelo objeto

UConverter::getErrorCode

intl_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getErrorCode -- intl_get_error_code — Obtém o código do último erro gerado pelo objeto

Descrição

public UConverter::getErrorCode(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém a mensagem do último erro gerado pelo objeto

  • « UConverter::getErrorCode
  • UConverter::getSourceEncoding »
  • PHP Manual
  • UConverter
  • Obtém a mensagem do último erro gerado pelo objeto

UConverter::getErrorMessage

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getErrorMessage — Obtém a mensagem do último erro gerado pelo objeto

Descrição

public UConverter::getErrorMessage(): ?string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém a codificação de origem

  • « UConverter::getErrorMessage
  • UConverter::getSourceType »
  • PHP Manual
  • UConverter
  • Obtém a codificação de origem

UConverter::getSourceEncoding

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getSourceEncoding — Obtém a codificação de origem

Descrição

public UConverter::getSourceEncoding(): string|false|null

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém o tipo do conversor de origem

  • « UConverter::getSourceEncoding
  • UConverter::getStandards »
  • PHP Manual
  • UConverter
  • Obtém o tipo do conversor de origem

UConverter::getSourceType

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getSourceType — Obtém o tipo do conversor de origem

Descrição

public UConverter::getSourceType(): int|false|null

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém os nomes dos conversores padrão associados

  • « UConverter::getSourceType
  • UConverter::getSubstChars »
  • PHP Manual
  • UConverter
  • Obtém os nomes dos conversores padrão associados

UConverter::getStandards

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getStandards — Obtém os nomes dos conversores padrão associados

Descrição

public static UConverter::getStandards(): ?array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém os caracteres de substituição

  • « UConverter::getStandards
  • UConverter::reasonText »
  • PHP Manual
  • UConverter
  • Obtém os caracteres de substituição

UConverter::getSubstChars

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getSubstChars — Obtém os caracteres de substituição

Descrição

public UConverter::getSubstChars(): string|false|null

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém uma representação em string da razão da chamada de retorno

  • « UConverter::getSubstChars
  • UConverter::setDestinationEncoding »
  • PHP Manual
  • UConverter
  • Obtém uma representação em string da razão da chamada de retorno

UConverter::reasonText

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::reasonText — Obtém uma representação em string da razão da chamada de retorno

Descrição

public static UConverter::reasonText(int $reason): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

reason

Valor Retornado


Define a codificação de destino

  • « UConverter::reasonText
  • UConverter::setSourceEncoding »
  • PHP Manual
  • UConverter
  • Define a codificação de destino

UConverter::setDestinationEncoding

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::setDestinationEncoding — Define a codificação de destino

Descrição

public UConverter::setDestinationEncoding(string $encoding): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

encoding

Valor Retornado


Define a codificação da origem

  • « UConverter::setDestinationEncoding
  • UConverter::setSubstChars »
  • PHP Manual
  • UConverter
  • Define a codificação da origem

UConverter::setSourceEncoding

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::setSourceEncoding — Define a codificação da origem

Descrição

public UConverter::setSourceEncoding(string $encoding): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

encoding

Valor Retornado


Define os caracteres de substituição

  • « UConverter::setSourceEncoding
  • UConverter::toUCallback »
  • PHP Manual
  • UConverter
  • Define os caracteres de substituição

UConverter::setSubstChars

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::setSubstChars — Define os caracteres de substituição

Descrição

public UConverter::setSubstChars(string $chars): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

chars

Valor Retornado


Função de retorno padrão de destino

  • « UConverter::setSubstChars
  • UConverter::transcode »
  • PHP Manual
  • UConverter
  • Função de retorno padrão de destino

UConverter::toUCallback

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::toUCallback — Função de retorno padrão de destino

Descrição

public UConverter::toUCallback(
int $reason,
string $source,
string $codeUnits,
int &$error
): string|int|array|null

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

reason

source

codeUnits

error

Valor Retornado


Converte uma string de uma codificação de caracteres para outra

  • « UConverter::toUCallback
  • Funções de Grapheme »
  • PHP Manual
  • UConverter
  • Converte uma string de uma codificação de caracteres para outra

UConverter::transcode

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::transcode — Converte uma string de uma codificação de caracteres para outra

Descrição

public static UConverter::transcode(
string $str,
string $toEncoding,
string $fromEncoding,
?array $options = null
): string|false

Converte str de fromEncoding para toEncoding.

Parâmetros

str

A string a ser convertida.

toEncoding

A codificação desejada do resultado.

fromEncoding

A codificação atual usada para interpretar str.

options

Um array opcional, que pode conter as seguintes chaves:

  • 'to_subst' - o caractere de substituição a ser usado no lugar de qualquer caractere de str que não possa ser codificado com toEncoding. Se especificado, deve representar um único caractere na codificação de destino.

Valor Retornado

Retorna a string convertida ou false em caso de falha.

Exemplos

Exemplo #1 Convertendo de UTF-8 para UTF-16 e vice-versa

<?php
$utf8_string = "\x5A\x6F\xC3\xAB"; // 'Zoë' em UTF-8
$utf16_string = UConverter::transcode($utf8_string, 'UTF-16BE', 'UTF-8');
echo bin2hex($utf16_string), "\n";

$new_utf8_string = UConverter::transcode($utf16_string, 'UTF-8', 'UTF-16BE');
echo bin2hex($new_utf8_string), "\n";
?>

O exemplo acima produzirá:

005a006f00eb
5a6fc3ab

Exemplo #2 Caracteres inválidos na entrada

Se a string de entrada contiver uma sequência de bytes que não seja válida na codificação especificada por fromEncoding, eles são substituídos pelo código do ponto em Unicode U+FFFD (Caractere de Substituição) antes da conversão para toEncoding.

<?php
$invalid_utf8_string = "\xC3"; // sequência UTF-8 multi-bytes incompleta
$utf16_string = UConverter::transcode($invalid_utf8_string, 'UTF-16BE', 'UTF-8');
echo bin2hex($utf16_string), "\n";
?>

O exemplo acima produzirá:

fffd

Exemplo #3 Caracteres que não podem ser codificados

Se a string de entrada contiver caracteres que não possam ser representados na codificação especificada por toEncoding, eles são substituídos por um caractere simples. O caractere padrão a ser usado depende da codificação e pode ser controlado usando a opção 'to_subst'.

<?php
$utf8_string = "\xE2\x82\xAC"; // € (sinal de Euro) não existe na ISO 8859-1

// Substituição padrão na ISO 8859-1 é "\x1A" (Substituto)
$iso8859_1_string = UConverter::transcode($utf8_string, 'ISO-8859-1', 'UTF-8');
echo bin2hex($iso8859_1_string), "\n";

// Especifica uma substituição por '?' ("\x3F") alternativamente
$iso8859_1_string = UConverter::transcode(
$utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
echo bin2hex($iso8859_1_string), "\n";

// Como a ISO 8859-1 não consegue mapear U+FFFD, a entrada inválida também é substituída por to_subst
$invalid_utf8_string = "\xC3"; // sequência UTF-8 multi-bytes incompleta
$iso8859_1_string = UConverter::transcode(
$invalid_utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
echo bin2hex($iso8859_1_string), "\n";
?>

O exemplo acima produzirá:

1a
3f
3f

Veja Também

  • mb_convert_encoding() - Converte uma string de uma codificação de caracteres para outra
  • iconv() - Converte uma string de uma codificação de caracteres para outra


Funções de Grapheme

Índice

  • grapheme_extract — Extrai uma sequência de grupos padrão de grafemas de um buffer de texto em UTF-8
  • grapheme_stripos — Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas
  • grapheme_stristr — Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final
  • grapheme_strlen — Obtém o comprimento de uma string em unidade de grafema
  • grapheme_strpos — Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string
  • grapheme_strripos — Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)
  • grapheme_strrpos — Encontra a posição (em unidades de grafema) da última ocorrência de uma string
  • grapheme_strstr — Retorna parte de uma string a partir da primeira ocorrência de outra string até o final
  • grapheme_substr — Retorna parte de uma string


Extrai uma sequência de grupos padrão de grafemas de um buffer de texto em UTF-8

  • « Funções de Grapheme
  • grapheme_stripos »
  • PHP Manual
  • Funções de Grapheme
  • Extrai uma sequência de grupos padrão de grafemas de um buffer de texto em UTF-8

grapheme_extract

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_extract — Extrai uma sequência de grupos padrão de grafemas de um buffer de texto em UTF-8

Descrição

Estilo procedural

grapheme_extract(
string $haystack,
int $size,
int $type = GRAPHEME_EXTR_COUNT,
int $offset = 0,
int &$next = null
): string|false

Esta função extrai uma sequência de grupos padrão de grafemas a partir de um buffer de texto codificado em UTF-8.

Parâmetros

haystack

A string onde a pesquisa será feita.

size

Número máximo de itens - baseado no tipo type - a retornar.

type

Define o tipo de unidades referidas pelo parâmetro size:

  • GRAPHEME_EXTR_COUNT (padrão) - size é o número de grupos padrão de grafemas a extrair.
  • GRAPHEME_EXTR_MAXBYTES - size é o número máximo de bytes retornados.
  • GRAPHEME_EXTR_MAXCHARS - size é o número máximo de caracteres UTF-8 retornados.

offset

Posição inicial no haystack em bytes - se informado, precisa ser zero ou um inteiro positivo que seja menor ou igual ao comprimento de haystack em bytes, ou um valor negativo que conta a partir do final de haystack. Se offset não apontar para o primeiro byte de um caractere UTF-8, a posição de início é movida para o primeiro byte do caractere seguinte.

next

Referência a um valor que será definido para a próxima posição de início. Quando a chamada retornar, esta variável poderá apontar para a primeira posição em bytes após o final da string.

Valor Retornado

Um string com deslocamento em offset e terminando em um limite de grupo padrão de grafema que esteja em conformidade com os parâmetros size e type especificados, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.1.0 | Suporte para offset negativo foi adicionado.

Exemplos

Exemplo #1 Exemplo de grapheme_extract()

<?php

$char_a_ring_nfd = "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) NFD
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) NFD

print urlencode(grapheme_extract( $char_a_ring_nfd . $char_o_diaeresis_nfd, 1, GRAPHEME_EXTR_COUNT, 2));

?>

O exemplo acima produzirá:

o%CC%88

Veja Também

  • grapheme_substr() - Retorna parte de uma string
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas

  • « grapheme_extract
  • grapheme_stristr »
  • PHP Manual
  • Funções de Grapheme
  • Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas

grapheme_stripos

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_stripos — Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas

Descrição

Estilo procedural

grapheme_stripos(string $haystack, string $needle, int $offset = 0): int|false

Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas.

Parâmetros

haystack

A string onde ocorrerá a pesquisa. Deve ser em UTF-8 válido.

needle

A string a ser procurada. Deve ser em UTF-8 válido.

offset

O parâmetro opcional offset permite especificar onde no haystack deve-se iniciar a pesquisa, como uma posição em unidades de grafema (não em bytes ou caracteres). Se a posição for negativa, será tratada como relativa ao final da string. A posição retornada ainda será relativa ao início do haystack independentemente do valor de offset.

Valor Retornado

Retora a posição como um inteiro. Se needle não for encontrado, grapheme_stripos() retornará false.

Registro de Alterações

Versão | Descrição
7.1.0 | Suporte para offset negativo foi adicionado.

Exemplos

Exemplo #1 Exemplo de grapheme_stripos()

<?php

$char_a_ring_nfd = "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) NFD
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) NFD
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) NFD

print grapheme_stripos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

O exemplo acima produzirá:

2

Veja Também

  • grapheme_stristr() - Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final
  • grapheme_strpos() - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string
  • grapheme_strripos() - Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)
  • grapheme_strrpos() - Encontra a posição (em unidades de grafema) da última ocorrência de uma string
  • grapheme_strstr() - Retorna parte de uma string a partir da primeira ocorrência de outra string até o final
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final

  • « grapheme_stripos
  • grapheme_strlen »
  • PHP Manual
  • Funções de Grapheme
  • Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final

grapheme_stristr

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_stristr — Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final

Descrição

Estilo procedural

grapheme_stristr(string $haystack, string $needle, bool $beforeNeedle = false): string|false

Retorna parte da string haystack iniciando da primeira ocorrência de uma outra string (insensível a maiúsculas/minúsculas) até o final de haystack.

Parâmetros

haystack

A string de entrada. Deve ser em UTF-8 válido.

needle

A string a ser procurada. Deve ser em UTF-8 válido.

beforeNeedle

Caso seja true, grapheme_stristr() retorna a parte da string haystack antes da primeira ocorrência da string procurada (excluindo needle).

Valor Retornado

Retorna a parte de haystack, ou false se needle não for encontrada.

Exemplos

Exemplo #1 Exemplo de grapheme_stristr()

<?php

$char_a_ring_nfd = "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) NFD
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) NFD
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) NFD

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_O_diaeresis_nfd));

?>

O exemplo acima produzirá:

o%CC%88a%CC%8A

Veja Também

  • grapheme_stripos() - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas
  • grapheme_strpos() - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string
  • grapheme_strripos() - Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)
  • grapheme_strrpos() - Encontra a posição (em unidades de grafema) da última ocorrência de uma string
  • grapheme_strstr() - Retorna parte de uma string a partir da primeira ocorrência de outra string até o final
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Obtém o comprimento de uma string em unidade de grafema

  • « grapheme_stristr
  • grapheme_strpos »
  • PHP Manual
  • Funções de Grapheme
  • Obtém o comprimento de uma string em unidade de grafema

grapheme_strlen

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strlen — Obtém o comprimento de uma string em unidade de grafema

Descrição

Estilo procedural

grapheme_strlen(string $string): int|false|null

Obtém o comprimento de uma string em unidade de grafema (não em bytes ou caracteres).

Parâmetros

string

A string sendo medida. Deve ser em UTF-8 válido.

Valor Retornado

O comprimento da string em caso de sucesso, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de grapheme_strlen()

<?php

$char_a_ring_nfd = "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) NFD
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) NFD

print grapheme_strlen( 'abc' . $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd);

?>

O exemplo acima produzirá:

6

Veja Também

  • » Unicode Text Segmentation: Grapheme Cluster Boundaries
  • iconv_strlen() - Retorna a contagem de caracteres da string
  • mb_strlen() - Obtém o comprimento da string
  • strlen() - Retorna o tamanho de uma string


Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string

  • « grapheme_strlen
  • grapheme_strripos »
  • PHP Manual
  • Funções de Grapheme
  • Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string

grapheme_strpos

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strpos — Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string

Descrição

Estilo procedural

grapheme_strpos(string $haystack, string $needle, int $offset = 0): int|false

Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string.

Parâmetros

haystack

A string onde ocorrerá a pesquisa. Deve ser em UTF-8 válido.

needle

A string a ser procurada. Deve ser em UTF-8 válido.

offset

O parâmetro opcional offset permite especificar onde no haystack deve-se iniciar a pesquisa, como uma posição em unidades de grafema (não em bytes ou caracteres). Se a posição for negativa, será tratada como relativa ao final da string. A posição retornada ainda será relativa ao início do haystack independentemente do valor de offset.

Valor Retornado

Retora a posição como um inteiro. Se needle não for encontrado, grapheme_strpos() retornará false.

Registro de Alterações

Versão | Descrição
7.1.0 | Suporte para offset negativo foi adicionado.

Exemplos

Exemplo #1 Exemplo de grapheme_strpos()

<?php

$char_a_ring_nfd = "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) NFD
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) NFD

print grapheme_strpos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);

?>

O exemplo acima produzirá:

2

Veja Também

  • grapheme_stripos() - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas
  • grapheme_stristr() - Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final
  • grapheme_strripos() - Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)
  • grapheme_strrpos() - Encontra a posição (em unidades de grafema) da última ocorrência de uma string
  • grapheme_strstr() - Retorna parte de uma string a partir da primeira ocorrência de outra string até o final
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)

  • « grapheme_strpos
  • grapheme_strrpos »
  • PHP Manual
  • Funções de Grapheme
  • Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)

grapheme_strripos

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strripos — Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)

Descrição

Estilo procedural

grapheme_strripos(string $haystack, string $needle, int $offset = 0): int|false

Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas).

Parâmetros

haystack

A string onde ocorrerá a pesquisa. Deve ser em UTF-8 válido.

needle

A string a ser procurada. Deve ser em UTF-8 válido.

offset

O parâmetro opcional offset permite especificar onde no haystack deve-se iniciar a pesquisa, como uma posição em unidades de grafema (não em bytes ou caracteres). A posição retornada ainda será relativa ao início do haystack independentemente do valor de offset.

Valor Retornado

Retora a posição como um inteiro. Se needle não for encontrado, grapheme_strripos() retornará false.

Exemplos

Exemplo #1 Exemplo de grapheme_strripos()

<?php

$char_a_ring_nfd = "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) NFD
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) NFD
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) NFD

print grapheme_strripos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

O exemplo acima produzirá:

2

Veja Também

  • grapheme_stripos() - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas
  • grapheme_stristr() - Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final
  • grapheme_strpos() - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string
  • grapheme_strrpos() - Encontra a posição (em unidades de grafema) da última ocorrência de uma string
  • grapheme_strstr() - Retorna parte de uma string a partir da primeira ocorrência de outra string até o final
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Encontra a posição (em unidades de grafema) da última ocorrência de uma string

  • « grapheme_strripos
  • grapheme_strstr »
  • PHP Manual
  • Funções de Grapheme
  • Encontra a posição (em unidades de grafema) da última ocorrência de uma string

grapheme_strrpos

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strrpos — Encontra a posição (em unidades de grafema) da última ocorrência de uma string

Descrição

Estilo procedural

grapheme_strrpos(string $haystack, string $needle, int $offset = 0): int|false

Encontra a posição (em unidades de grafema) da última ocorrência de uma string.

Parâmetros

haystack

A string onde ocorrerá a pesquisa. Deve ser em UTF-8 válido.

needle

A string a ser procurada. Deve ser em UTF-8 válido.

offset

O parâmetro opcional offset permite especificar onde no haystack deve-se iniciar a pesquisa, como uma posição em unidades de grafema (não em bytes ou caracteres). A posição retornada ainda será relativa ao início do haystack independentemente do valor de offset.

Valor Retornado

Retora a posição como um inteiro. Se needle não for encontrado, grapheme_strrpos() retornará false.

Exemplos

Exemplo #1 Exemplo de grapheme_strrpos()

<?php
$char_a_ring_nfd = "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' NFD
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) NFD

print grapheme_strrpos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);
?>

O exemplo acima produzirá:

2

Veja Também

  • grapheme_stripos() - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas
  • grapheme_stristr() - Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final
  • grapheme_strpos() - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string
  • grapheme_strripos() - Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)
  • grapheme_strstr() - Retorna parte de uma string a partir da primeira ocorrência de outra string até o final
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Retorna parte de uma string a partir da primeira ocorrência de outra string até o final

  • « grapheme_strrpos
  • grapheme_substr »
  • PHP Manual
  • Funções de Grapheme
  • Retorna parte de uma string a partir da primeira ocorrência de outra string até o final

grapheme_strstr

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strstr — Retorna parte de uma string a partir da primeira ocorrência de outra string até o final

Descrição

Estilo procedural

grapheme_strstr(string $haystack, string $needle, bool $beforeNeedle = false): string|false

Retorna parte de uma string a partir da primeira ocorrência de outra string (inclusive) até o final.

Parâmetros

haystack

A string onde ocorrerá a pesquisa. Deve ser em UTF-8 válido.

needle

A string a ser procurada. Deve ser em UTF-8 válido.

beforeNeedle

Caso seja true, grapheme_strstr() retorna a parte da string haystack antes da primeira ocorrência de needle (excluindo needle).

Valor Retornado

Retorna a parte de haystack, ou false se needle não for encontrada.

Exemplos

Exemplo #1 Exemplo de grapheme_strstr()

<?php

$char_a_ring_nfd = "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) NFD
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) NFD

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_o_diaeresis_nfd));

?>

O exemplo acima produzirá:

o%CC%88a%CC%8A

Veja Também

  • grapheme_stristr() - Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final
  • grapheme_stripos() - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas
  • grapheme_strpos() - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string
  • grapheme_strripos() - Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)
  • grapheme_strrpos() - Encontra a posição (em unidades de grafema) da última ocorrência de uma string
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Retorna parte de uma string

  • « grapheme_strstr
  • Funções de IDN »
  • PHP Manual
  • Funções de Grapheme
  • Retorna parte de uma string

grapheme_substr

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_substr — Retorna parte de uma string

Descrição

Estilo procedural

grapheme_substr(string $string, int $offset, ?int $length = null): string|false

Retorna parte de uma string.

Parâmetros

string

A string de entrada. Deve ser em UTF-8 válido.

offset

Posição de início em unidades padrão de grafema. Se offset for não negativo, a string retornada iniciará na posição offset da string, contando a partir de zero. Se offset for negativo, a string retornada iniciará no posição offset em unidades de grafema contada a partir do final da string.

length

Comprimento em unidades de grafema. Se length for informado e positivo, a string retornada conterá, no máximo, a quantidade de grafemas informada em length, iniciando de offset (dependendo do comprimento da string). Se length for informado e negativo, representará as unidades de grafema que serão omitidas no final da string (depois da posição de início calculada quando offset é negativo). Se offset denotar uma posição além deste truncamento, uma string vazia será retornada.

Valor Retornado

Retorna a parte extraída da string, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | A função agora consistentemente function now consistently clamps out-of-bounds offsets to the string boundary. Previously, false was returned instead of the empty string in some cases.

Exemplos

Exemplo #1 Exemplo de grapheme_substr()

<?php

$char_a_ring_nfd = "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) NFD
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) NFD

print urlencode(grapheme_substr( "ao" . $char_a_ring_nfd . "bc" . $char_o_diaeresis_nfd . "O", 2, -1 ));
?>

O exemplo acima produzirá:

a%CC%8Abco%CC%88

Veja Também

  • grapheme_extract() - Extrai uma sequência de grupos padrão de grafemas de um buffer de texto em UTF-8
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Funções de IDN

Índice

  • idn_to_ascii — Converte nome de domínio para a forma ASCII IDNA
  • idn_to_utf8 — Converte nome de domínio de ASCII IDNA para Unicode


Converte nome de domínio para a forma ASCII IDNA

  • « Funções de IDN
  • idn_to_utf8 »
  • PHP Manual
  • Funções de IDN
  • Converte nome de domínio para a forma ASCII IDNA

idn_to_ascii

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_ascii — Converte nome de domínio para a forma ASCII IDNA

Descrição

Estilo procedural

idn_to_ascii(
string $domain,
int $flags = IDNA_DEFAULT,
int $variant = INTL_IDNA_VARIANT_UTS46,
array &$idna_info = null
): string|false

Esta função converte um nome de domínio Unicode para um formato compatível com ASCII IDNA.

Parâmetros

domain

O domínio a converter, que precisa ser codificado em UTF-8.

flags

Opções de conversão - combinação de constantes IDNA_* (exceto cosntantes IDNA_ERROR_*).

variant

Pode ser INTL_IDNA_VARIANT_2003 (defasado a partir do PHP 7.2.0) para IDNA 2003 ou INTL_IDNA_VARIANT_UTS46 (disponível apenas a partir da ICU 4.6) para UTS #46.

idna_info

Este parâmetro pode ser usado somente se INTL_IDNA_VARIANT_UTS46 foi usado no parâmetro variant. Neste caso, será preenchido com um array com as chaves 'result', o possível resultado ilegal da transformação, 'isTransitionalDifferent', um booleano indicando se o uso de mecanismos transicionais da UTS #46 mudou ou teria mudado o resultado e 'errors', que é um int representando um conjunto de bits das contantes de erro IDNA_ERROR_*.

Valor Retornado

O nome de domínio codificado em forma compatível com ASCII-compatible, ou false em caso de falha

Registro de Alterações

Versão | Descrição
7.4.0 | O valor padrão de variant agora é INTL_IDNA_VARIANT_UTS46 ao invés do defasado INTL_IDNA_VARIANT_2003.
7.2.0 | INTL_IDNA_VARIANT_2003 se tornou defasado; use INTL_IDNA_VARIANT_UTS46 em seu lugar.

Exemplos

Exemplo #1 Exemplo de idn_to_ascii()

<?php

echo idn_to_ascii('täst.de');

?>

O exemplo acima produzirá:

xn--tst-qla.de

Veja Também

  • idn_to_utf8() - Converte nome de domínio de ASCII IDNA para Unicode


Converte nome de domínio de ASCII IDNA para Unicode

  • « idn_to_ascii
  • IntlChar »
  • PHP Manual
  • Funções de IDN
  • Converte nome de domínio de ASCII IDNA para Unicode

idn_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_utf8 — Converte nome de domínio de ASCII IDNA para Unicode

Descrição

Estilo procedural

idn_to_utf8(
string $domain,
int $flags = IDNA_DEFAULT,
int $variant = INTL_IDNA_VARIANT_UTS46,
array &$idna_info = null
): string|false

Esta função converte um nome de domínio Unicode a partir de um formato compatível com ASCII IDNA para Unicode puro, codificado em UTF-8.

Parâmetros

domain

Domínio em formato compatível com ASCII IDNA a ser convertido.

flags

Opções de conversão - combinação de constantes IDNA_* (exceto constantes IDNA_ERROR_*).

variant

Pode ser INTL_IDNA_VARIANT_2003 (defasado a partir do PHP 7.2.0) para IDNA 2003 ou INTL_IDNA_VARIANT_UTS46 (disponível apenas a partir da ICU 4.6) para UTS #46.

idna_info

Este parâmetro pode ser usado somente se INTL_IDNA_VARIANT_UTS46 foi usado no parâmetro variant. Neste caso, será preenchido com um array com as chaves 'result', o possível resultado ilegal da transformação, 'isTransitionalDifferent', um booleano indicando se o uso de mecanismos transicionais da UTS #46 mudou ou teria mudado o resultado e 'errors', que é um int representando um conjunto de bits das contantes de erro IDNA_ERROR_*.

Valor Retornado

O nome de domínio em Unicode, codificado em UTF-8, ou false em caso de falha

Registro de Alterações

Versão | Descrição
7.4.0 | O valor padrão de variant agora é INTL_IDNA_VARIANT_UTS46 ao invés do defasado INTL_IDNA_VARIANT_2003.
7.2.0 | INTL_IDNA_VARIANT_2003 tornou-se defasado; use INTL_IDNA_VARIANT_UTS46 em seu lugar.

Exemplos

Exemplo #1 Exemplo de idn_to_utf8()

<?php

echo idn_to_utf8('xn--tst-qla.de');

?>

O exemplo acima produzirá:

täst.de

Veja Também

  • idn_to_ascii() - Converte nome de domínio para a forma ASCII IDNA


IntlChar

(PHP 7, PHP 8)

Introdução

IntlChar fornece acesso a um número de métodos utilitários que podem ser usados para acessar informações sobre caracteres Unicode.

Os métodos e constantes são aderentes de maneira muito próxima aos nomes e comportamentos utilizados pela biblioteca ICU subjacente.

Resumo da classe

class IntlChar {
/* Constantes */
public const string UNICODE_VERSION;
public const int CODEPOINT_MIN;
public const int CODEPOINT_MAX;
public const float NO_NUMERIC_VALUE;
public const int PROPERTY_ALPHABETIC;
public const int PROPERTY_BINARY_START;
public const int PROPERTY_ASCII_HEX_DIGIT;
public const int PROPERTY_BIDI_CONTROL;
public const int PROPERTY_BIDI_MIRRORED;
public const int PROPERTY_DASH;
public const int PROPERTY_DEFAULT_IGNORABLE_CODE_POINT;
public const int PROPERTY_DEPRECATED;
public const int PROPERTY_DIACRITIC;
public const int PROPERTY_EXTENDER;
public const int PROPERTY_FULL_COMPOSITION_EXCLUSION;
public const int PROPERTY_GRAPHEME_BASE;
public const int PROPERTY_GRAPHEME_EXTEND;
public const int PROPERTY_GRAPHEME_LINK;
public const int PROPERTY_HEX_DIGIT;
public const int PROPERTY_HYPHEN;
public const int PROPERTY_ID_CONTINUE;
public const int PROPERTY_ID_START;
public const int PROPERTY_IDEOGRAPHIC;
public const int PROPERTY_IDS_BINARY_OPERATOR;
public const int PROPERTY_IDS_TRINARY_OPERATOR;
public const int PROPERTY_JOIN_CONTROL;
public const int PROPERTY_LOGICAL_ORDER_EXCEPTION;
public const int PROPERTY_LOWERCASE;
public const int PROPERTY_MATH;
public const int PROPERTY_NONCHARACTER_CODE_POINT;
public const int PROPERTY_QUOTATION_MARK;
public const int PROPERTY_RADICAL;
public const int PROPERTY_SOFT_DOTTED;
public const int PROPERTY_TERMINAL_PUNCTUATION;
public const int PROPERTY_UNIFIED_IDEOGRAPH;
public const int PROPERTY_UPPERCASE;
public const int PROPERTY_WHITE_SPACE;
public const int PROPERTY_XID_CONTINUE;
public const int PROPERTY_XID_START;
public const int PROPERTY_CASE_SENSITIVE;
public const int PROPERTY_S_TERM;
public const int PROPERTY_VARIATION_SELECTOR;
public const int PROPERTY_NFD_INERT;
public const int PROPERTY_NFKD_INERT;
public const int PROPERTY_NFC_INERT;
public const int PROPERTY_NFKC_INERT;
public const int PROPERTY_SEGMENT_STARTER;
public const int PROPERTY_PATTERN_SYNTAX;
public const int PROPERTY_PATTERN_WHITE_SPACE;
public const int PROPERTY_POSIX_ALNUM;
public const int PROPERTY_POSIX_BLANK;
public const int PROPERTY_POSIX_GRAPH;
public const int PROPERTY_POSIX_PRINT;
public const int PROPERTY_POSIX_XDIGIT;
public const int PROPERTY_CASED;
public const int PROPERTY_CASE_IGNORABLE;
public const int PROPERTY_CHANGES_WHEN_LOWERCASED;
public const int PROPERTY_CHANGES_WHEN_UPPERCASED;
public const int PROPERTY_CHANGES_WHEN_TITLECASED;
public const int PROPERTY_CHANGES_WHEN_CASEFOLDED;
public const int PROPERTY_CHANGES_WHEN_CASEMAPPED;
public const int PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED;
public const int PROPERTY_BINARY_LIMIT;
public const int PROPERTY_BIDI_CLASS;
public const int PROPERTY_INT_START;
public const int PROPERTY_BLOCK;
public const int PROPERTY_CANONICAL_COMBINING_CLASS;
public const int PROPERTY_DECOMPOSITION_TYPE;
public const int PROPERTY_EAST_ASIAN_WIDTH;
public const int PROPERTY_GENERAL_CATEGORY;
public const int PROPERTY_JOINING_GROUP;
public const int PROPERTY_JOINING_TYPE;
public const int PROPERTY_LINE_BREAK;
public const int PROPERTY_NUMERIC_TYPE;
public const int PROPERTY_SCRIPT;
public const int PROPERTY_HANGUL_SYLLABLE_TYPE;
public const int PROPERTY_NFD_QUICK_CHECK;
public const int PROPERTY_NFKD_QUICK_CHECK;
public const int PROPERTY_NFC_QUICK_CHECK;
public const int PROPERTY_NFKC_QUICK_CHECK;
public const int PROPERTY_LEAD_CANONICAL_COMBINING_CLASS;
public const int PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS;
public const int PROPERTY_GRAPHEME_CLUSTER_BREAK;
public const int PROPERTY_SENTENCE_BREAK;
public const int PROPERTY_WORD_BREAK;
public const int PROPERTY_BIDI_PAIRED_BRACKET_TYPE;
public const int PROPERTY_INT_LIMIT;
public const int PROPERTY_GENERAL_CATEGORY_MASK;
public const int PROPERTY_MASK_START;
public const int PROPERTY_MASK_LIMIT;
public const int PROPERTY_NUMERIC_VALUE;
public const int PROPERTY_DOUBLE_START;
public const int PROPERTY_DOUBLE_LIMIT;
public const int PROPERTY_AGE;
public const int PROPERTY_STRING_START;
public const int PROPERTY_BIDI_MIRRORING_GLYPH;
public const int PROPERTY_CASE_FOLDING;
public const int PROPERTY_ISO_COMMENT;
public const int PROPERTY_LOWERCASE_MAPPING;
public const int PROPERTY_NAME;
public const int PROPERTY_SIMPLE_CASE_FOLDING;
public const int PROPERTY_SIMPLE_LOWERCASE_MAPPING;
public const int PROPERTY_SIMPLE_TITLECASE_MAPPING;
public const int PROPERTY_SIMPLE_UPPERCASE_MAPPING;
public const int PROPERTY_TITLECASE_MAPPING;
public const int PROPERTY_UNICODE_1_NAME;
public const int PROPERTY_UPPERCASE_MAPPING;
public const int PROPERTY_BIDI_PAIRED_BRACKET;
public const int PROPERTY_STRING_LIMIT;
public const int PROPERTY_SCRIPT_EXTENSIONS;
public const int PROPERTY_OTHER_PROPERTY_START;
public const int PROPERTY_OTHER_PROPERTY_LIMIT;
public const int PROPERTY_INVALID_CODE;
public const int CHAR_CATEGORY_UNASSIGNED;
public const int CHAR_CATEGORY_GENERAL_OTHER_TYPES;
public const int CHAR_CATEGORY_UPPERCASE_LETTER;
public const int CHAR_CATEGORY_LOWERCASE_LETTER;
public const int CHAR_CATEGORY_TITLECASE_LETTER;
public const int CHAR_CATEGORY_MODIFIER_LETTER;
public const int CHAR_CATEGORY_OTHER_LETTER;
public const int CHAR_CATEGORY_NON_SPACING_MARK;
public const int CHAR_CATEGORY_ENCLOSING_MARK;
public const int CHAR_CATEGORY_COMBINING_SPACING_MARK;
public const int CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER;
public const int CHAR_CATEGORY_LETTER_NUMBER;
public const int CHAR_CATEGORY_OTHER_NUMBER;
public const int CHAR_CATEGORY_SPACE_SEPARATOR;
public const int CHAR_CATEGORY_LINE_SEPARATOR;
public const int CHAR_CATEGORY_PARAGRAPH_SEPARATOR;
public const int CHAR_CATEGORY_CONTROL_CHAR;
public const int CHAR_CATEGORY_FORMAT_CHAR;
public const int CHAR_CATEGORY_PRIVATE_USE_CHAR;
public const int CHAR_CATEGORY_SURROGATE;
public const int CHAR_CATEGORY_DASH_PUNCTUATION;
public const int CHAR_CATEGORY_START_PUNCTUATION;
public const int CHAR_CATEGORY_END_PUNCTUATION;
public const int CHAR_CATEGORY_CONNECTOR_PUNCTUATION;
public const int CHAR_CATEGORY_OTHER_PUNCTUATION;
public const int CHAR_CATEGORY_MATH_SYMBOL;
public const int CHAR_CATEGORY_CURRENCY_SYMBOL;
public const int CHAR_CATEGORY_MODIFIER_SYMBOL;
public const int CHAR_CATEGORY_OTHER_SYMBOL;
public const int CHAR_CATEGORY_INITIAL_PUNCTUATION;
public const int CHAR_CATEGORY_FINAL_PUNCTUATION;
public const int CHAR_CATEGORY_CHAR_CATEGORY_COUNT;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT;
public const int CHAR_DIRECTION_EUROPEAN_NUMBER;
public const int CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR;
public const int CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR;
public const int CHAR_DIRECTION_ARABIC_NUMBER;
public const int CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR;
public const int CHAR_DIRECTION_BLOCK_SEPARATOR;
public const int CHAR_DIRECTION_SEGMENT_SEPARATOR;
public const int CHAR_DIRECTION_WHITE_SPACE_NEUTRAL;
public const int CHAR_DIRECTION_OTHER_NEUTRAL;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE;
public const int CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT;
public const int CHAR_DIRECTION_DIR_NON_SPACING_MARK;
public const int CHAR_DIRECTION_BOUNDARY_NEUTRAL;
public const int CHAR_DIRECTION_FIRST_STRONG_ISOLATE;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE;
public const int CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE;
public const int CHAR_DIRECTION_CHAR_DIRECTION_COUNT;
public const int BLOCK_CODE_NO_BLOCK;
public const int BLOCK_CODE_BASIC_LATIN;
public const int BLOCK_CODE_LATIN_1_SUPPLEMENT;
public const int BLOCK_CODE_LATIN_EXTENDED_A;
public const int BLOCK_CODE_LATIN_EXTENDED_B;
public const int BLOCK_CODE_IPA_EXTENSIONS;
public const int BLOCK_CODE_SPACING_MODIFIER_LETTERS;
public const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS;
public const int BLOCK_CODE_GREEK;
public const int BLOCK_CODE_CYRILLIC;
public const int BLOCK_CODE_ARMENIAN;
public const int BLOCK_CODE_HEBREW;
public const int BLOCK_CODE_ARABIC;
public const int BLOCK_CODE_SYRIAC;
public const int BLOCK_CODE_THAANA;
public const int BLOCK_CODE_DEVANAGARI;
public const int BLOCK_CODE_BENGALI;
public const int BLOCK_CODE_GURMUKHI;
public const int BLOCK_CODE_GUJARATI;
public const int BLOCK_CODE_ORIYA;
public const int BLOCK_CODE_TAMIL;
public const int BLOCK_CODE_TELUGU;
public const int BLOCK_CODE_KANNADA;
public const int BLOCK_CODE_MALAYALAM;
public const int BLOCK_CODE_SINHALA;
public const int BLOCK_CODE_THAI;
public const int BLOCK_CODE_LAO;
public const int BLOCK_CODE_TIBETAN;
public const int BLOCK_CODE_MYANMAR;
public const int BLOCK_CODE_GEORGIAN;
public const int BLOCK_CODE_HANGUL_JAMO;
public const int BLOCK_CODE_ETHIOPIC;
public const int BLOCK_CODE_CHEROKEE;
public const int BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS;
public const int BLOCK_CODE_OGHAM;
public const int BLOCK_CODE_RUNIC;
public const int BLOCK_CODE_KHMER;
public const int BLOCK_CODE_MONGOLIAN;
public const int BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL;
public const int BLOCK_CODE_GREEK_EXTENDED;
public const int BLOCK_CODE_GENERAL_PUNCTUATION;
public const int BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS;
public const int BLOCK_CODE_CURRENCY_SYMBOLS;
public const int BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS;
public const int BLOCK_CODE_LETTERLIKE_SYMBOLS;
public const int BLOCK_CODE_NUMBER_FORMS;
public const int BLOCK_CODE_ARROWS;
public const int BLOCK_CODE_MATHEMATICAL_OPERATORS;
public const int BLOCK_CODE_MISCELLANEOUS_TECHNICAL;
public const int BLOCK_CODE_CONTROL_PICTURES;
public const int BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION;
public const int BLOCK_CODE_ENCLOSED_ALPHANUMERICS;
public const int BLOCK_CODE_BOX_DRAWING;
public const int BLOCK_CODE_BLOCK_ELEMENTS;
public const int BLOCK_CODE_GEOMETRIC_SHAPES;
public const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS;
public const int BLOCK_CODE_DINGBATS;
public const int BLOCK_CODE_BRAILLE_PATTERNS;
public const int BLOCK_CODE_CJK_RADICALS_SUPPLEMENT;
public const int BLOCK_CODE_KANGXI_RADICALS;
public const int BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS;
public const int BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION;
public const int BLOCK_CODE_HIRAGANA;
public const int BLOCK_CODE_KATAKANA;
public const int BLOCK_CODE_BOPOMOFO;
public const int BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO;
public const int BLOCK_CODE_KANBUN;
public const int BLOCK_CODE_BOPOMOFO_EXTENDED;
public const int BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS;
public const int BLOCK_CODE_CJK_COMPATIBILITY;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS;
public const int BLOCK_CODE_YI_SYLLABLES;
public const int BLOCK_CODE_YI_RADICALS;
public const int BLOCK_CODE_HANGUL_SYLLABLES;
public const int BLOCK_CODE_HIGH_SURROGATES;
public const int BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES;
public const int BLOCK_CODE_LOW_SURROGATES;
public const int BLOCK_CODE_PRIVATE_USE_AREA;
public const int BLOCK_CODE_PRIVATE_USE;
public const int BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS;
public const int BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS;
public const int BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A;
public const int BLOCK_CODE_COMBINING_HALF_MARKS;
public const int BLOCK_CODE_CJK_COMPATIBILITY_FORMS;
public const int BLOCK_CODE_SMALL_FORM_VARIANTS;
public const int BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B;
public const int BLOCK_CODE_SPECIALS;
public const int BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS;
public const int BLOCK_CODE_OLD_ITALIC;
public const int BLOCK_CODE_GOTHIC;
public const int BLOCK_CODE_DESERET;
public const int BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS;
public const int BLOCK_CODE_MUSICAL_SYMBOLS;
public const int BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B;
public const int BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT;
public const int BLOCK_CODE_TAGS;
public const int BLOCK_CODE_CYRILLIC_SUPPLEMENT;
public const int BLOCK_CODE_CYRILLIC_SUPPLEMENTARY;
public const int BLOCK_CODE_TAGALOG;
public const int BLOCK_CODE_HANUNOO;
public const int BLOCK_CODE_BUHID;
public const int BLOCK_CODE_TAGBANWA;
public const int BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A;
public const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_A;
public const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_B;
public const int BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B;
public const int BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS;
public const int BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS;
public const int BLOCK_CODE_VARIATION_SELECTORS;
public const int BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A;
public const int BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B;
public const int BLOCK_CODE_LIMBU;
public const int BLOCK_CODE_TAI_LE;
public const int BLOCK_CODE_KHMER_SYMBOLS;
public const int BLOCK_CODE_PHONETIC_EXTENSIONS;
public const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS;
public const int BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS;
public const int BLOCK_CODE_LINEAR_B_SYLLABARY;
public const int BLOCK_CODE_LINEAR_B_IDEOGRAMS;
public const int BLOCK_CODE_AEGEAN_NUMBERS;
public const int BLOCK_CODE_UGARITIC;
public const int BLOCK_CODE_SHAVIAN;
public const int BLOCK_CODE_OSMANYA;
public const int BLOCK_CODE_CYPRIOT_SYLLABARY;
public const int BLOCK_CODE_TAI_XUAN_JING_SYMBOLS;
public const int BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT;
public const int BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION;
public const int BLOCK_CODE_ANCIENT_GREEK_NUMBERS;
public const int BLOCK_CODE_ARABIC_SUPPLEMENT;
public const int BLOCK_CODE_BUGINESE;
public const int BLOCK_CODE_CJK_STROKES;
public const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT;
public const int BLOCK_CODE_COPTIC;
public const int BLOCK_CODE_ETHIOPIC_EXTENDED;
public const int BLOCK_CODE_ETHIOPIC_SUPPLEMENT;
public const int BLOCK_CODE_GEORGIAN_SUPPLEMENT;
public const int BLOCK_CODE_GLAGOLITIC;
public const int BLOCK_CODE_KHAROSHTHI;
public const int BLOCK_CODE_MODIFIER_TONE_LETTERS;
public const int BLOCK_CODE_NEW_TAI_LUE;
public const int BLOCK_CODE_OLD_PERSIAN;
public const int BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT;
public const int BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION;
public const int BLOCK_CODE_SYLOTI_NAGRI;
public const int BLOCK_CODE_TIFINAGH;
public const int BLOCK_CODE_VERTICAL_FORMS;
public const int BLOCK_CODE_NKO;
public const int BLOCK_CODE_BALINESE;
public const int BLOCK_CODE_LATIN_EXTENDED_C;
public const int BLOCK_CODE_LATIN_EXTENDED_D;
public const int BLOCK_CODE_PHAGS_PA;
public const int BLOCK_CODE_PHOENICIAN;
public const int BLOCK_CODE_CUNEIFORM;
public const int BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION;
public const int BLOCK_CODE_COUNTING_ROD_NUMERALS;
public const int BLOCK_CODE_SUNDANESE;
public const int BLOCK_CODE_LEPCHA;
public const int BLOCK_CODE_OL_CHIKI;
public const int BLOCK_CODE_CYRILLIC_EXTENDED_A;
public const int BLOCK_CODE_VAI;
public const int BLOCK_CODE_CYRILLIC_EXTENDED_B;
public const int BLOCK_CODE_SAURASHTRA;
public const int BLOCK_CODE_KAYAH_LI;
public const int BLOCK_CODE_REJANG;
public const int BLOCK_CODE_CHAM;
public const int BLOCK_CODE_ANCIENT_SYMBOLS;
public const int BLOCK_CODE_PHAISTOS_DISC;
public const int BLOCK_CODE_LYCIAN;
public const int BLOCK_CODE_CARIAN;
public const int BLOCK_CODE_LYDIAN;
public const int BLOCK_CODE_MAHJONG_TILES;
public const int BLOCK_CODE_DOMINO_TILES;
public const int BLOCK_CODE_SAMARITAN;
public const int BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED;
public const int BLOCK_CODE_TAI_THAM;
public const int BLOCK_CODE_VEDIC_EXTENSIONS;
public const int BLOCK_CODE_LISU;
public const int BLOCK_CODE_BAMUM;
public const int BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS;
public const int BLOCK_CODE_DEVANAGARI_EXTENDED;
public const int BLOCK_CODE_HANGUL_JAMO_EXTENDED_A;
public const int BLOCK_CODE_JAVANESE;
public const int BLOCK_CODE_MYANMAR_EXTENDED_A;
public const int BLOCK_CODE_TAI_VIET;
public const int BLOCK_CODE_MEETEI_MAYEK;
public const int BLOCK_CODE_HANGUL_JAMO_EXTENDED_B;
public const int BLOCK_CODE_IMPERIAL_ARAMAIC;
public const int BLOCK_CODE_OLD_SOUTH_ARABIAN;
public const int BLOCK_CODE_AVESTAN;
public const int BLOCK_CODE_INSCRIPTIONAL_PARTHIAN;
public const int BLOCK_CODE_INSCRIPTIONAL_PAHLAVI;
public const int BLOCK_CODE_OLD_TURKIC;
public const int BLOCK_CODE_RUMI_NUMERAL_SYMBOLS;
public const int BLOCK_CODE_KAITHI;
public const int BLOCK_CODE_EGYPTIAN_HIEROGLYPHS;
public const int BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT;
public const int BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C;
public const int BLOCK_CODE_MANDAIC;
public const int BLOCK_CODE_BATAK;
public const int BLOCK_CODE_ETHIOPIC_EXTENDED_A;
public const int BLOCK_CODE_BRAHMI;
public const int BLOCK_CODE_BAMUM_SUPPLEMENT;
public const int BLOCK_CODE_KANA_SUPPLEMENT;
public const int BLOCK_CODE_PLAYING_CARDS;
public const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS;
public const int BLOCK_CODE_EMOTICONS;
public const int BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS;
public const int BLOCK_CODE_ALCHEMICAL_SYMBOLS;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D;
public const int BLOCK_CODE_ARABIC_EXTENDED_A;
public const int BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS;
public const int BLOCK_CODE_CHAKMA;
public const int BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS;
public const int BLOCK_CODE_MEROITIC_CURSIVE;
public const int BLOCK_CODE_MEROITIC_HIEROGLYPHS;
public const int BLOCK_CODE_MIAO;
public const int BLOCK_CODE_SHARADA;
public const int BLOCK_CODE_SORA_SOMPENG;
public const int BLOCK_CODE_SUNDANESE_SUPPLEMENT;
public const int BLOCK_CODE_TAKRI;
public const int BLOCK_CODE_BASSA_VAH;
public const int BLOCK_CODE_CAUCASIAN_ALBANIAN;
public const int BLOCK_CODE_COPTIC_EPACT_NUMBERS;
public const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_EXTENDED;
public const int BLOCK_CODE_DUPLOYAN;
public const int BLOCK_CODE_ELBASAN;
public const int BLOCK_CODE_GEOMETRIC_SHAPES_EXTENDED;
public const int BLOCK_CODE_GRANTHA;
public const int BLOCK_CODE_KHOJKI;
public const int BLOCK_CODE_KHUDAWADI;
public const int BLOCK_CODE_LATIN_EXTENDED_E;
public const int BLOCK_CODE_LINEAR_A;
public const int BLOCK_CODE_MAHAJANI;
public const int BLOCK_CODE_MANICHAEAN;
public const int BLOCK_CODE_MENDE_KIKAKUI;
public const int BLOCK_CODE_MODI;
public const int BLOCK_CODE_MRO;
public const int BLOCK_CODE_MYANMAR_EXTENDED_B;
public const int BLOCK_CODE_NABATAEAN;
public const int BLOCK_CODE_OLD_NORTH_ARABIAN;
public const int BLOCK_CODE_OLD_PERMIC;
public const int BLOCK_CODE_ORNAMENTAL_DINGBATS;
public const int BLOCK_CODE_PAHAWH_HMONG;
public const int BLOCK_CODE_PALMYRENE;
public const int BLOCK_CODE_PAU_CIN_HAU;
public const int BLOCK_CODE_PSALTER_PAHLAVI;
public const int BLOCK_CODE_SHORTHAND_FORMAT_CONTROLS;
public const int BLOCK_CODE_SIDDHAM;
public const int BLOCK_CODE_SINHALA_ARCHAIC_NUMBERS;
public const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_C;
public const int BLOCK_CODE_TIRHUTA;
public const int BLOCK_CODE_WARANG_CITI;
public const int BLOCK_CODE_COUNT;
public const int BLOCK_CODE_INVALID_CODE;
public const int BPT_NONE;
public const int BPT_OPEN;
public const int BPT_CLOSE;
public const int BPT_COUNT;
public const int EA_NEUTRAL;
public const int EA_AMBIGUOUS;
public const int EA_HALFWIDTH;
public const int EA_FULLWIDTH;
public const int EA_NARROW;
public const int EA_WIDE;
public const int EA_COUNT;
public const int UNICODE_CHAR_NAME;
public const int UNICODE_10_CHAR_NAME;
public const int EXTENDED_CHAR_NAME;
public const int CHAR_NAME_ALIAS;
public const int CHAR_NAME_CHOICE_COUNT;
public const int SHORT_PROPERTY_NAME;
public const int LONG_PROPERTY_NAME;
public const int PROPERTY_NAME_CHOICE_COUNT;
public const int DT_NONE;
public const int DT_CANONICAL;
public const int DT_COMPAT;
public const int DT_CIRCLE;
public const int DT_FINAL;
public const int DT_FONT;
public const int DT_FRACTION;
public const int DT_INITIAL;
public const int DT_ISOLATED;
public const int DT_MEDIAL;
public const int DT_NARROW;
public const int DT_NOBREAK;
public const int DT_SMALL;
public const int DT_SQUARE;
public const int DT_SUB;
public const int DT_SUPER;
public const int DT_VERTICAL;
public const int DT_WIDE;
public const int DT_COUNT;
public const int JT_NON_JOINING;
public const int JT_JOIN_CAUSING;
public const int JT_DUAL_JOINING;
public const int JT_LEFT_JOINING;
public const int JT_RIGHT_JOINING;
public const int JT_TRANSPARENT;
public const int JT_COUNT;
public const int JG_NO_JOINING_GROUP;
public const int JG_AIN;
public const int JG_ALAPH;
public const int JG_ALEF;
public const int JG_BEH;
public const int JG_BETH;
public const int JG_DAL;
public const int JG_DALATH_RISH;
public const int JG_E;
public const int JG_FEH;
public const int JG_FINAL_SEMKATH;
public const int JG_GAF;
public const int JG_GAMAL;
public const int JG_HAH;
public const int JG_TEH_MARBUTA_GOAL;
public const int JG_HAMZA_ON_HEH_GOAL;
public const int JG_HE;
public const int JG_HEH;
public const int JG_HEH_GOAL;
public const int JG_HETH;
public const int JG_KAF;
public const int JG_KAPH;
public const int JG_KNOTTED_HEH;
public const int JG_LAM;
public const int JG_LAMADH;
public const int JG_MEEM;
public const int JG_MIM;
public const int JG_NOON;
public const int JG_NUN;
public const int JG_PE;
public const int JG_QAF;
public const int JG_QAPH;
public const int JG_REH;
public const int JG_REVERSED_PE;
public const int JG_SAD;
public const int JG_SADHE;
public const int JG_SEEN;
public const int JG_SEMKATH;
public const int JG_SHIN;
public const int JG_SWASH_KAF;
public const int JG_SYRIAC_WAW;
public const int JG_TAH;
public const int JG_TAW;
public const int JG_TEH_MARBUTA;
public const int JG_TETH;
public const int JG_WAW;
public const int JG_YEH;
public const int JG_YEH_BARREE;
public const int JG_YEH_WITH_TAIL;
public const int JG_YUDH;
public const int JG_YUDH_HE;
public const int JG_ZAIN;
public const int JG_FE;
public const int JG_KHAPH;
public const int JG_ZHAIN;
public const int JG_BURUSHASKI_YEH_BARREE;
public const int JG_FARSI_YEH;
public const int JG_NYA;
public const int JG_ROHINGYA_YEH;
public const int JG_MANICHAEAN_ALEPH;
public const int JG_MANICHAEAN_AYIN;
public const int JG_MANICHAEAN_BETH;
public const int JG_MANICHAEAN_DALETH;
public const int JG_MANICHAEAN_DHAMEDH;
public const int JG_MANICHAEAN_FIVE;
public const int JG_MANICHAEAN_GIMEL;
public const int JG_MANICHAEAN_HETH;
public const int JG_MANICHAEAN_HUNDRED;
public const int JG_MANICHAEAN_KAPH;
public const int JG_MANICHAEAN_LAMEDH;
public const int JG_MANICHAEAN_MEM;
public const int JG_MANICHAEAN_NUN;
public const int JG_MANICHAEAN_ONE;
public const int JG_MANICHAEAN_PE;
public const int JG_MANICHAEAN_QOPH;
public const int JG_MANICHAEAN_RESH;
public const int JG_MANICHAEAN_SADHE;
public const int JG_MANICHAEAN_SAMEKH;
public const int JG_MANICHAEAN_TAW;
public const int JG_MANICHAEAN_TEN;
public const int JG_MANICHAEAN_TETH;
public const int JG_MANICHAEAN_THAMEDH;
public const int JG_MANICHAEAN_TWENTY;
public const int JG_MANICHAEAN_WAW;
public const int JG_MANICHAEAN_YODH;
public const int JG_MANICHAEAN_ZAYIN;
public const int JG_STRAIGHT_WAW;
public const int JG_COUNT;
public const int GCB_OTHER;
public const int GCB_CONTROL;
public const int GCB_CR;
public const int GCB_EXTEND;
public const int GCB_L;
public const int GCB_LF;
public const int GCB_LV;
public const int GCB_LVT;
public const int GCB_T;
public const int GCB_V;
public const int GCB_SPACING_MARK;
public const int GCB_PREPEND;
public const int GCB_REGIONAL_INDICATOR;
public const int GCB_COUNT;
public const int WB_OTHER;
public const int WB_ALETTER;
public const int WB_FORMAT;
public const int WB_KATAKANA;
public const int WB_MIDLETTER;
public const int WB_MIDNUM;
public const int WB_NUMERIC;
public const int WB_EXTENDNUMLET;
public const int WB_CR;
public const int WB_EXTEND;
public const int WB_LF;
public const int WB_MIDNUMLET;
public const int WB_NEWLINE;
public const int WB_REGIONAL_INDICATOR;
public const int WB_HEBREW_LETTER;
public const int WB_SINGLE_QUOTE;
public const int WB_DOUBLE_QUOTE;
public const int WB_COUNT;
public const int SB_OTHER;
public const int SB_ATERM;
public const int SB_CLOSE;
public const int SB_FORMAT;
public const int SB_LOWER;
public const int SB_NUMERIC;
public const int SB_OLETTER;
public const int SB_SEP;
public const int SB_SP;
public const int SB_STERM;
public const int SB_UPPER;
public const int SB_CR;
public const int SB_EXTEND;
public const int SB_LF;
public const int SB_SCONTINUE;
public const int SB_COUNT;
public const int LB_UNKNOWN;
public const int LB_AMBIGUOUS;
public const int LB_ALPHABETIC;
public const int LB_BREAK_BOTH;
public const int LB_BREAK_AFTER;
public const int LB_BREAK_BEFORE;
public const int LB_MANDATORY_BREAK;
public const int LB_CONTINGENT_BREAK;
public const int LB_CLOSE_PUNCTUATION;
public const int LB_COMBINING_MARK;
public const int LB_CARRIAGE_RETURN;
public const int LB_EXCLAMATION;
public const int LB_GLUE;
public const int LB_HYPHEN;
public const int LB_IDEOGRAPHIC;
public const int LB_INSEPARABLE;
public const int LB_INSEPERABLE;
public const int LB_INFIX_NUMERIC;
public const int LB_LINE_FEED;
public const int LB_NONSTARTER;
public const int LB_NUMERIC;
public const int LB_OPEN_PUNCTUATION;
public const int LB_POSTFIX_NUMERIC;
public const int LB_PREFIX_NUMERIC;
public const int LB_QUOTATION;
public const int LB_COMPLEX_CONTEXT;
public const int LB_SURROGATE;
public const int LB_SPACE;
public const int LB_BREAK_SYMBOLS;
public const int LB_ZWSPACE;
public const int LB_NEXT_LINE;
public const int LB_WORD_JOINER;
public const int LB_H2;
public const int LB_H3;
public const int LB_JL;
public const int LB_JT;
public const int LB_JV;
public const int LB_CLOSE_PARENTHESIS;
public const int LB_CONDITIONAL_JAPANESE_STARTER;
public const int LB_HEBREW_LETTER;
public const int LB_REGIONAL_INDICATOR;
public const int LB_COUNT;
public const int NT_NONE;
public const int NT_DECIMAL;
public const int NT_DIGIT;
public const int NT_NUMERIC;
public const int NT_COUNT;
public const int HST_NOT_APPLICABLE;
public const int HST_LEADING_JAMO;
public const int HST_VOWEL_JAMO;
public const int HST_TRAILING_JAMO;
public const int HST_LV_SYLLABLE;
public const int HST_LVT_SYLLABLE;
public const int HST_COUNT;
public const int FOLD_CASE_DEFAULT;
public const int FOLD_CASE_EXCLUDE_SPECIAL_I;
/* Métodos */
public static charAge(int|string $codepoint): ?array
public static charDigitValue(int|string $codepoint): ?int
public static charDirection(int|string $codepoint): ?int
public static charFromName(string $name, int $type = IntlChar::UNICODE_CHAR_NAME): ?int
public static charMirror(int|string $codepoint): int|string|null
public static charName(int|string $codepoint, int $type = IntlChar::UNICODE_CHAR_NAME): ?string
public static charType(int|string $codepoint): ?int
public static chr(int|string $codepoint): ?string
public static digit(int|string $codepoint, int $base = 10): int|false|null
public static enumCharNames(
int|string $start,
int|string $end,
callable $callback,
int $type = IntlChar::UNICODE_CHAR_NAME
): bool
public static enumCharTypes(callable $callback): void
public static foldCase(int|string $codepoint, int $options = IntlChar::FOLD_CASE_DEFAULT): int|string|null
public static forDigit(int $digit, int $base = 10): int
public static getBidiPairedBracket(int|string $codepoint): int|string|null
public static getBlockCode(int|string $codepoint): ?int
public static getCombiningClass(int|string $codepoint): ?int
public static getFC_NFKC_Closure(int|string $codepoint): string|false|null
public static getIntPropertyMaxValue(int $property): int
public static getIntPropertyMinValue(int $property): int
public static getIntPropertyValue(int|string $codepoint, int $property): ?int
public static getNumericValue(int|string $codepoint): ?float
public static getPropertyEnum(string $alias): int
public static getPropertyName(int $property, int $type = IntlChar::LONG_PROPERTY_NAME): string|false
public static getPropertyValueEnum(int $property, string $name): int
public static getPropertyValueName(int $property, int $value, int $type = IntlChar::LONG_PROPERTY_NAME): string|false
public static getUnicodeVersion(): array
public static hasBinaryProperty(int|string $codepoint, int $property): ?bool
public static isalnum(int|string $codepoint): ?bool
public static isalpha(int|string $codepoint): ?bool
public static isbase(int|string $codepoint): ?bool
public static isblank(int|string $codepoint): ?bool
public static iscntrl(int|string $codepoint): ?bool
public static isdefined(int|string $codepoint): ?bool
public static isdigit(int|string $codepoint): ?bool
public static isgraph(int|string $codepoint): ?bool
public static isIDIgnorable(int|string $codepoint): ?bool
public static isIDPart(int|string $codepoint): ?bool
public static isIDStart(int|string $codepoint): ?bool
public static isISOControl(int|string $codepoint): ?bool
public static isJavaIDPart(int|string $codepoint): ?bool
public static isJavaIDStart(int|string $codepoint): ?bool
public static isJavaSpaceChar(int|string $codepoint): ?bool
public static islower(int|string $codepoint): ?bool
public static isMirrored(int|string $codepoint): ?bool
public static isprint(int|string $codepoint): ?bool
public static ispunct(int|string $codepoint): ?bool
public static isspace(int|string $codepoint): ?bool
public static istitle(int|string $codepoint): ?bool
public static isUAlphabetic(int|string $codepoint): ?bool
public static isULowercase(int|string $codepoint): ?bool
public static isupper(int|string $codepoint): ?bool
public static isUUppercase(int|string $codepoint): ?bool
public static isUWhiteSpace(int|string $codepoint): ?bool
public static isWhitespace(int|string $codepoint): ?bool
public static isxdigit(int|string $codepoint): ?bool
public static ord(int|string $character): ?int
public static tolower(int|string $codepoint): int|string|null
public static totitle(int|string $codepoint): int|string|null
public static toupper(int|string $codepoint): int|string|null
}

Constantes pré-definidas

IntlChar::UNICODE_VERSION

IntlChar::CODEPOINT_MIN

IntlChar::CODEPOINT_MAX

IntlChar::NO_NUMERIC_VALUE

Valor especial retornado por IntlChar::getNumericValue() quando nenhum valor numérico estiver difinido para um ponto de código.

IntlChar::PROPERTY_ALPHABETIC

IntlChar::PROPERTY_BINARY_START

IntlChar::PROPERTY_ASCII_HEX_DIGIT

IntlChar::PROPERTY_BIDI_CONTROL

IntlChar::PROPERTY_BIDI_MIRRORED

IntlChar::PROPERTY_DASH

IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT

IntlChar::PROPERTY_DEPRECATED

IntlChar::PROPERTY_DIACRITIC

IntlChar::PROPERTY_EXTENDER

IntlChar::PROPERTY_FULL_COMPOSITION_EXCLUSION

IntlChar::PROPERTY_GRAPHEME_BASE

IntlChar::PROPERTY_GRAPHEME_EXTEND

IntlChar::PROPERTY_GRAPHEME_LINK

IntlChar::PROPERTY_HEX_DIGIT

IntlChar::PROPERTY_HYPHEN

IntlChar::PROPERTY_ID_CONTINUE

IntlChar::PROPERTY_ID_START

IntlChar::PROPERTY_IDEOGRAPHIC

IntlChar::PROPERTY_IDS_BINARY_OPERATOR

IntlChar::PROPERTY_IDS_TRINARY_OPERATOR

IntlChar::PROPERTY_JOIN_CONTROL

IntlChar::PROPERTY_LOGICAL_ORDER_EXCEPTION

IntlChar::PROPERTY_LOWERCASE

IntlChar::PROPERTY_MATH

IntlChar::PROPERTY_NONCHARACTER_CODE_POINT

IntlChar::PROPERTY_QUOTATION_MARK

IntlChar::PROPERTY_RADICAL

IntlChar::PROPERTY_SOFT_DOTTED

IntlChar::PROPERTY_TERMINAL_PUNCTUATION

IntlChar::PROPERTY_UNIFIED_IDEOGRAPH

IntlChar::PROPERTY_UPPERCASE

IntlChar::PROPERTY_WHITE_SPACE

IntlChar::PROPERTY_XID_CONTINUE

IntlChar::PROPERTY_XID_START

IntlChar::PROPERTY_CASE_SENSITIVE

IntlChar::PROPERTY_S_TERM

IntlChar::PROPERTY_VARIATION_SELECTOR

IntlChar::PROPERTY_NFD_INERT

IntlChar::PROPERTY_NFKD_INERT

IntlChar::PROPERTY_NFC_INERT

IntlChar::PROPERTY_NFKC_INERT

IntlChar::PROPERTY_SEGMENT_STARTER

IntlChar::PROPERTY_PATTERN_SYNTAX

IntlChar::PROPERTY_PATTERN_WHITE_SPACE

IntlChar::PROPERTY_POSIX_ALNUM

IntlChar::PROPERTY_POSIX_BLANK

IntlChar::PROPERTY_POSIX_GRAPH

IntlChar::PROPERTY_POSIX_PRINT

IntlChar::PROPERTY_POSIX_XDIGIT

IntlChar::PROPERTY_CASED

IntlChar::PROPERTY_CASE_IGNORABLE

IntlChar::PROPERTY_CHANGES_WHEN_LOWERCASED

IntlChar::PROPERTY_CHANGES_WHEN_UPPERCASED

IntlChar::PROPERTY_CHANGES_WHEN_TITLECASED

IntlChar::PROPERTY_CHANGES_WHEN_CASEFOLDED

IntlChar::PROPERTY_CHANGES_WHEN_CASEMAPPED

IntlChar::PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED

IntlChar::PROPERTY_BINARY_LIMIT

IntlChar::PROPERTY_BIDI_CLASS

IntlChar::PROPERTY_INT_START

IntlChar::PROPERTY_BLOCK

IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_DECOMPOSITION_TYPE

IntlChar::PROPERTY_EAST_ASIAN_WIDTH

IntlChar::PROPERTY_GENERAL_CATEGORY

IntlChar::PROPERTY_JOINING_GROUP

IntlChar::PROPERTY_JOINING_TYPE

IntlChar::PROPERTY_LINE_BREAK

IntlChar::PROPERTY_NUMERIC_TYPE

IntlChar::PROPERTY_SCRIPT

IntlChar::PROPERTY_HANGUL_SYLLABLE_TYPE

IntlChar::PROPERTY_NFD_QUICK_CHECK

IntlChar::PROPERTY_NFKD_QUICK_CHECK

IntlChar::PROPERTY_NFC_QUICK_CHECK

IntlChar::PROPERTY_NFKC_QUICK_CHECK

IntlChar::PROPERTY_LEAD_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_GRAPHEME_CLUSTER_BREAK

IntlChar::PROPERTY_SENTENCE_BREAK

IntlChar::PROPERTY_WORD_BREAK

IntlChar::PROPERTY_BIDI_PAIRED_BRACKET_TYPE

IntlChar::PROPERTY_INT_LIMIT

IntlChar::PROPERTY_GENERAL_CATEGORY_MASK

IntlChar::PROPERTY_MASK_START

IntlChar::PROPERTY_MASK_LIMIT

IntlChar::PROPERTY_NUMERIC_VALUE

IntlChar::PROPERTY_DOUBLE_START

IntlChar::PROPERTY_DOUBLE_LIMIT

IntlChar::PROPERTY_AGE

IntlChar::PROPERTY_STRING_START

IntlChar::PROPERTY_BIDI_MIRRORING_GLYPH

IntlChar::PROPERTY_CASE_FOLDING

IntlChar::PROPERTY_ISO_COMMENT

IntlChar::PROPERTY_LOWERCASE_MAPPING

IntlChar::PROPERTY_NAME

IntlChar::PROPERTY_SIMPLE_CASE_FOLDING

IntlChar::PROPERTY_SIMPLE_LOWERCASE_MAPPING

IntlChar::PROPERTY_SIMPLE_TITLECASE_MAPPING

IntlChar::PROPERTY_SIMPLE_UPPERCASE_MAPPING

IntlChar::PROPERTY_TITLECASE_MAPPING

IntlChar::PROPERTY_UNICODE_1_NAME

IntlChar::PROPERTY_UPPERCASE_MAPPING

IntlChar::PROPERTY_BIDI_PAIRED_BRACKET

IntlChar::PROPERTY_STRING_LIMIT

IntlChar::PROPERTY_SCRIPT_EXTENSIONS

IntlChar::PROPERTY_OTHER_PROPERTY_START

IntlChar::PROPERTY_OTHER_PROPERTY_LIMIT

IntlChar::PROPERTY_INVALID_CODE

IntlChar::CHAR_CATEGORY_UNASSIGNED

IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES

IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER

IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER

IntlChar::CHAR_CATEGORY_TITLECASE_LETTER

IntlChar::CHAR_CATEGORY_MODIFIER_LETTER

IntlChar::CHAR_CATEGORY_OTHER_LETTER

IntlChar::CHAR_CATEGORY_NON_SPACING_MARK

IntlChar::CHAR_CATEGORY_ENCLOSING_MARK

IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK

IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER

IntlChar::CHAR_CATEGORY_LETTER_NUMBER

IntlChar::CHAR_CATEGORY_OTHER_NUMBER

IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR

IntlChar::CHAR_CATEGORY_LINE_SEPARATOR

IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR

IntlChar::CHAR_CATEGORY_CONTROL_CHAR

IntlChar::CHAR_CATEGORY_FORMAT_CHAR

IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR

IntlChar::CHAR_CATEGORY_SURROGATE

IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION

IntlChar::CHAR_CATEGORY_START_PUNCTUATION

IntlChar::CHAR_CATEGORY_END_PUNCTUATION

IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION

IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION

IntlChar::CHAR_CATEGORY_MATH_SYMBOL

IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL

IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL

IntlChar::CHAR_CATEGORY_OTHER_SYMBOL

IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION

IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION

IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR

IntlChar::CHAR_DIRECTION_ARABIC_NUMBER

IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR

IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR

IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR

IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL

IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE

IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT

IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK

IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL

IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE

IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE

IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT

IntlChar::BLOCK_CODE_NO_BLOCK

IntlChar::BLOCK_CODE_BASIC_LATIN

IntlChar::BLOCK_CODE_LATIN_1_SUPPLEMENT

IntlChar::BLOCK_CODE_LATIN_EXTENDED_A

IntlChar::BLOCK_CODE_LATIN_EXTENDED_B

IntlChar::BLOCK_CODE_IPA_EXTENSIONS

IntlChar::BLOCK_CODE_SPACING_MODIFIER_LETTERS

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS

IntlChar::BLOCK_CODE_GREEK

IntlChar::BLOCK_CODE_CYRILLIC

IntlChar::BLOCK_CODE_ARMENIAN

IntlChar::BLOCK_CODE_HEBREW

IntlChar::BLOCK_CODE_ARABIC

IntlChar::BLOCK_CODE_SYRIAC

IntlChar::BLOCK_CODE_THAANA

IntlChar::BLOCK_CODE_DEVANAGARI

IntlChar::BLOCK_CODE_BENGALI

IntlChar::BLOCK_CODE_GURMUKHI

IntlChar::BLOCK_CODE_GUJARATI

IntlChar::BLOCK_CODE_ORIYA

IntlChar::BLOCK_CODE_TAMIL

IntlChar::BLOCK_CODE_TELUGU

IntlChar::BLOCK_CODE_KANNADA

IntlChar::BLOCK_CODE_MALAYALAM

IntlChar::BLOCK_CODE_SINHALA

IntlChar::BLOCK_CODE_THAI

IntlChar::BLOCK_CODE_LAO

IntlChar::BLOCK_CODE_TIBETAN

IntlChar::BLOCK_CODE_MYANMAR

IntlChar::BLOCK_CODE_GEORGIAN

IntlChar::BLOCK_CODE_HANGUL_JAMO

IntlChar::BLOCK_CODE_ETHIOPIC

IntlChar::BLOCK_CODE_CHEROKEE

IntlChar::BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS

IntlChar::BLOCK_CODE_OGHAM

IntlChar::BLOCK_CODE_RUNIC

IntlChar::BLOCK_CODE_KHMER

IntlChar::BLOCK_CODE_MONGOLIAN

IntlChar::BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL

IntlChar::BLOCK_CODE_GREEK_EXTENDED

IntlChar::BLOCK_CODE_GENERAL_PUNCTUATION

IntlChar::BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS

IntlChar::BLOCK_CODE_CURRENCY_SYMBOLS

IntlChar::BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS

IntlChar::BLOCK_CODE_LETTERLIKE_SYMBOLS

IntlChar::BLOCK_CODE_NUMBER_FORMS

IntlChar::BLOCK_CODE_ARROWS

IntlChar::BLOCK_CODE_MATHEMATICAL_OPERATORS

IntlChar::BLOCK_CODE_MISCELLANEOUS_TECHNICAL

IntlChar::BLOCK_CODE_CONTROL_PICTURES

IntlChar::BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION

IntlChar::BLOCK_CODE_ENCLOSED_ALPHANUMERICS

IntlChar::BLOCK_CODE_BOX_DRAWING

IntlChar::BLOCK_CODE_BLOCK_ELEMENTS

IntlChar::BLOCK_CODE_GEOMETRIC_SHAPES

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS

IntlChar::BLOCK_CODE_DINGBATS

IntlChar::BLOCK_CODE_BRAILLE_PATTERNS

IntlChar::BLOCK_CODE_CJK_RADICALS_SUPPLEMENT

IntlChar::BLOCK_CODE_KANGXI_RADICALS

IntlChar::BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS

IntlChar::BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION

IntlChar::BLOCK_CODE_HIRAGANA

IntlChar::BLOCK_CODE_KATAKANA

IntlChar::BLOCK_CODE_BOPOMOFO

IntlChar::BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO

IntlChar::BLOCK_CODE_KANBUN

IntlChar::BLOCK_CODE_BOPOMOFO_EXTENDED

IntlChar::BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS

IntlChar::BLOCK_CODE_YI_SYLLABLES

IntlChar::BLOCK_CODE_YI_RADICALS

IntlChar::BLOCK_CODE_HANGUL_SYLLABLES

IntlChar::BLOCK_CODE_HIGH_SURROGATES

IntlChar::BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES

IntlChar::BLOCK_CODE_LOW_SURROGATES

IntlChar::BLOCK_CODE_PRIVATE_USE_AREA

IntlChar::BLOCK_CODE_PRIVATE_USE

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS

IntlChar::BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS

IntlChar::BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A

IntlChar::BLOCK_CODE_COMBINING_HALF_MARKS

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_FORMS

IntlChar::BLOCK_CODE_SMALL_FORM_VARIANTS

IntlChar::BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B

IntlChar::BLOCK_CODE_SPECIALS

IntlChar::BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS

IntlChar::BLOCK_CODE_OLD_ITALIC

IntlChar::BLOCK_CODE_GOTHIC

IntlChar::BLOCK_CODE_DESERET

IntlChar::BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS

IntlChar::BLOCK_CODE_MUSICAL_SYMBOLS

IntlChar::BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT

IntlChar::BLOCK_CODE_TAGS

IntlChar::BLOCK_CODE_CYRILLIC_SUPPLEMENT

IntlChar::BLOCK_CODE_CYRILLIC_SUPPLEMENTARY

IntlChar::BLOCK_CODE_TAGALOG

IntlChar::BLOCK_CODE_HANUNOO

IntlChar::BLOCK_CODE_BUHID

IntlChar::BLOCK_CODE_TAGBANWA

IntlChar::BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_A

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_B

IntlChar::BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B

IntlChar::BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS

IntlChar::BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS

IntlChar::BLOCK_CODE_VARIATION_SELECTORS

IntlChar::BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A

IntlChar::BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B

IntlChar::BLOCK_CODE_LIMBU

IntlChar::BLOCK_CODE_TAI_LE

IntlChar::BLOCK_CODE_KHMER_SYMBOLS

IntlChar::BLOCK_CODE_PHONETIC_EXTENSIONS

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS

IntlChar::BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS

IntlChar::BLOCK_CODE_LINEAR_B_SYLLABARY

IntlChar::BLOCK_CODE_LINEAR_B_IDEOGRAMS

IntlChar::BLOCK_CODE_AEGEAN_NUMBERS

IntlChar::BLOCK_CODE_UGARITIC

IntlChar::BLOCK_CODE_SHAVIAN

IntlChar::BLOCK_CODE_OSMANYA

IntlChar::BLOCK_CODE_CYPRIOT_SYLLABARY

IntlChar::BLOCK_CODE_TAI_XUAN_JING_SYMBOLS

IntlChar::BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT

IntlChar::BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION

IntlChar::BLOCK_CODE_ANCIENT_GREEK_NUMBERS

IntlChar::BLOCK_CODE_ARABIC_SUPPLEMENT

IntlChar::BLOCK_CODE_BUGINESE

IntlChar::BLOCK_CODE_CJK_STROKES

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT

IntlChar::BLOCK_CODE_COPTIC

IntlChar::BLOCK_CODE_ETHIOPIC_EXTENDED

IntlChar::BLOCK_CODE_ETHIOPIC_SUPPLEMENT

IntlChar::BLOCK_CODE_GEORGIAN_SUPPLEMENT

IntlChar::BLOCK_CODE_GLAGOLITIC

IntlChar::BLOCK_CODE_KHAROSHTHI

IntlChar::BLOCK_CODE_MODIFIER_TONE_LETTERS

IntlChar::BLOCK_CODE_NEW_TAI_LUE

IntlChar::BLOCK_CODE_OLD_PERSIAN

IntlChar::BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT

IntlChar::BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION

IntlChar::BLOCK_CODE_SYLOTI_NAGRI

IntlChar::BLOCK_CODE_TIFINAGH

IntlChar::BLOCK_CODE_VERTICAL_FORMS

IntlChar::BLOCK_CODE_NKO

IntlChar::BLOCK_CODE_BALINESE

IntlChar::BLOCK_CODE_LATIN_EXTENDED_C

IntlChar::BLOCK_CODE_LATIN_EXTENDED_D

IntlChar::BLOCK_CODE_PHAGS_PA

IntlChar::BLOCK_CODE_PHOENICIAN

IntlChar::BLOCK_CODE_CUNEIFORM

IntlChar::BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION

IntlChar::BLOCK_CODE_COUNTING_ROD_NUMERALS

IntlChar::BLOCK_CODE_SUNDANESE

IntlChar::BLOCK_CODE_LEPCHA

IntlChar::BLOCK_CODE_OL_CHIKI

IntlChar::BLOCK_CODE_CYRILLIC_EXTENDED_A

IntlChar::BLOCK_CODE_VAI

IntlChar::BLOCK_CODE_CYRILLIC_EXTENDED_B

IntlChar::BLOCK_CODE_SAURASHTRA

IntlChar::BLOCK_CODE_KAYAH_LI

IntlChar::BLOCK_CODE_REJANG

IntlChar::BLOCK_CODE_CHAM

IntlChar::BLOCK_CODE_ANCIENT_SYMBOLS

IntlChar::BLOCK_CODE_PHAISTOS_DISC

IntlChar::BLOCK_CODE_LYCIAN

IntlChar::BLOCK_CODE_CARIAN

IntlChar::BLOCK_CODE_LYDIAN

IntlChar::BLOCK_CODE_MAHJONG_TILES

IntlChar::BLOCK_CODE_DOMINO_TILES

IntlChar::BLOCK_CODE_SAMARITAN

IntlChar::BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED

IntlChar::BLOCK_CODE_TAI_THAM

IntlChar::BLOCK_CODE_VEDIC_EXTENSIONS

IntlChar::BLOCK_CODE_LISU

IntlChar::BLOCK_CODE_BAMUM

IntlChar::BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS

IntlChar::BLOCK_CODE_DEVANAGARI_EXTENDED

IntlChar::BLOCK_CODE_HANGUL_JAMO_EXTENDED_A

IntlChar::BLOCK_CODE_JAVANESE

IntlChar::BLOCK_CODE_MYANMAR_EXTENDED_A

IntlChar::BLOCK_CODE_TAI_VIET

IntlChar::BLOCK_CODE_MEETEI_MAYEK

IntlChar::BLOCK_CODE_HANGUL_JAMO_EXTENDED_B

IntlChar::BLOCK_CODE_IMPERIAL_ARAMAIC

IntlChar::BLOCK_CODE_OLD_SOUTH_ARABIAN

IntlChar::BLOCK_CODE_AVESTAN

IntlChar::BLOCK_CODE_INSCRIPTIONAL_PARTHIAN

IntlChar::BLOCK_CODE_INSCRIPTIONAL_PAHLAVI

IntlChar::BLOCK_CODE_OLD_TURKIC

IntlChar::BLOCK_CODE_RUMI_NUMERAL_SYMBOLS

IntlChar::BLOCK_CODE_KAITHI

IntlChar::BLOCK_CODE_EGYPTIAN_HIEROGLYPHS

IntlChar::BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT

IntlChar::BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C

IntlChar::BLOCK_CODE_MANDAIC

IntlChar::BLOCK_CODE_BATAK

IntlChar::BLOCK_CODE_ETHIOPIC_EXTENDED_A

IntlChar::BLOCK_CODE_BRAHMI

IntlChar::BLOCK_CODE_BAMUM_SUPPLEMENT

IntlChar::BLOCK_CODE_KANA_SUPPLEMENT

IntlChar::BLOCK_CODE_PLAYING_CARDS

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS

IntlChar::BLOCK_CODE_EMOTICONS

IntlChar::BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS

IntlChar::BLOCK_CODE_ALCHEMICAL_SYMBOLS

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D

IntlChar::BLOCK_CODE_ARABIC_EXTENDED_A

IntlChar::BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS

IntlChar::BLOCK_CODE_CHAKMA

IntlChar::BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS

IntlChar::BLOCK_CODE_MEROITIC_CURSIVE

IntlChar::BLOCK_CODE_MEROITIC_HIEROGLYPHS

IntlChar::BLOCK_CODE_MIAO

IntlChar::BLOCK_CODE_SHARADA

IntlChar::BLOCK_CODE_SORA_SOMPENG

IntlChar::BLOCK_CODE_SUNDANESE_SUPPLEMENT

IntlChar::BLOCK_CODE_TAKRI

IntlChar::BLOCK_CODE_BASSA_VAH

IntlChar::BLOCK_CODE_CAUCASIAN_ALBANIAN

IntlChar::BLOCK_CODE_COPTIC_EPACT_NUMBERS

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_EXTENDED

IntlChar::BLOCK_CODE_DUPLOYAN

IntlChar::BLOCK_CODE_ELBASAN

IntlChar::BLOCK_CODE_GEOMETRIC_SHAPES_EXTENDED

IntlChar::BLOCK_CODE_GRANTHA

IntlChar::BLOCK_CODE_KHOJKI

IntlChar::BLOCK_CODE_KHUDAWADI

IntlChar::BLOCK_CODE_LATIN_EXTENDED_E

IntlChar::BLOCK_CODE_LINEAR_A

IntlChar::BLOCK_CODE_MAHAJANI

IntlChar::BLOCK_CODE_MANICHAEAN

IntlChar::BLOCK_CODE_MENDE_KIKAKUI

IntlChar::BLOCK_CODE_MODI

IntlChar::BLOCK_CODE_MRO

IntlChar::BLOCK_CODE_MYANMAR_EXTENDED_B

IntlChar::BLOCK_CODE_NABATAEAN

IntlChar::BLOCK_CODE_OLD_NORTH_ARABIAN

IntlChar::BLOCK_CODE_OLD_PERMIC

IntlChar::BLOCK_CODE_ORNAMENTAL_DINGBATS

IntlChar::BLOCK_CODE_PAHAWH_HMONG

IntlChar::BLOCK_CODE_PALMYRENE

IntlChar::BLOCK_CODE_PAU_CIN_HAU

IntlChar::BLOCK_CODE_PSALTER_PAHLAVI

IntlChar::BLOCK_CODE_SHORTHAND_FORMAT_CONTROLS

IntlChar::BLOCK_CODE_SIDDHAM

IntlChar::BLOCK_CODE_SINHALA_ARCHAIC_NUMBERS

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_C

IntlChar::BLOCK_CODE_TIRHUTA

IntlChar::BLOCK_CODE_WARANG_CITI

IntlChar::BLOCK_CODE_COUNT

IntlChar::BLOCK_CODE_INVALID_CODE

IntlChar::BPT_NONE

IntlChar::BPT_OPEN

IntlChar::BPT_CLOSE

IntlChar::BPT_COUNT

IntlChar::EA_NEUTRAL

IntlChar::EA_AMBIGUOUS

IntlChar::EA_HALFWIDTH

IntlChar::EA_FULLWIDTH

IntlChar::EA_NARROW

IntlChar::EA_WIDE

IntlChar::EA_COUNT

IntlChar::UNICODE_CHAR_NAME

IntlChar::UNICODE_10_CHAR_NAME

IntlChar::EXTENDED_CHAR_NAME

IntlChar::CHAR_NAME_ALIAS

IntlChar::CHAR_NAME_CHOICE_COUNT

IntlChar::SHORT_PROPERTY_NAME

IntlChar::LONG_PROPERTY_NAME

IntlChar::PROPERTY_NAME_CHOICE_COUNT

IntlChar::DT_NONE

IntlChar::DT_CANONICAL

IntlChar::DT_COMPAT

IntlChar::DT_CIRCLE

IntlChar::DT_FINAL

IntlChar::DT_FONT

IntlChar::DT_FRACTION

IntlChar::DT_INITIAL

IntlChar::DT_ISOLATED

IntlChar::DT_MEDIAL

IntlChar::DT_NARROW

IntlChar::DT_NOBREAK

IntlChar::DT_SMALL

IntlChar::DT_SQUARE

IntlChar::DT_SUB

IntlChar::DT_SUPER

IntlChar::DT_VERTICAL

IntlChar::DT_WIDE

IntlChar::DT_COUNT

IntlChar::JT_NON_JOINING

IntlChar::JT_JOIN_CAUSING

IntlChar::JT_DUAL_JOINING

IntlChar::JT_LEFT_JOINING

IntlChar::JT_RIGHT_JOINING

IntlChar::JT_TRANSPARENT

IntlChar::JT_COUNT

IntlChar::JG_NO_JOINING_GROUP

IntlChar::JG_AIN

IntlChar::JG_ALAPH

IntlChar::JG_ALEF

IntlChar::JG_BEH

IntlChar::JG_BETH

IntlChar::JG_DAL

IntlChar::JG_DALATH_RISH

IntlChar::JG_E

IntlChar::JG_FEH

IntlChar::JG_FINAL_SEMKATH

IntlChar::JG_GAF

IntlChar::JG_GAMAL

IntlChar::JG_HAH

IntlChar::JG_TEH_MARBUTA_GOAL

IntlChar::JG_HAMZA_ON_HEH_GOAL

IntlChar::JG_HE

IntlChar::JG_HEH

IntlChar::JG_HEH_GOAL

IntlChar::JG_HETH

IntlChar::JG_KAF

IntlChar::JG_KAPH

IntlChar::JG_KNOTTED_HEH

IntlChar::JG_LAM

IntlChar::JG_LAMADH

IntlChar::JG_MEEM

IntlChar::JG_MIM

IntlChar::JG_NOON

IntlChar::JG_NUN

IntlChar::JG_PE

IntlChar::JG_QAF

IntlChar::JG_QAPH

IntlChar::JG_REH

IntlChar::JG_REVERSED_PE

IntlChar::JG_SAD

IntlChar::JG_SADHE

IntlChar::JG_SEEN

IntlChar::JG_SEMKATH

IntlChar::JG_SHIN

IntlChar::JG_SWASH_KAF

IntlChar::JG_SYRIAC_WAW

IntlChar::JG_TAH

IntlChar::JG_TAW

IntlChar::JG_TEH_MARBUTA

IntlChar::JG_TETH

IntlChar::JG_WAW

IntlChar::JG_YEH

IntlChar::JG_YEH_BARREE

IntlChar::JG_YEH_WITH_TAIL

IntlChar::JG_YUDH

IntlChar::JG_YUDH_HE

IntlChar::JG_ZAIN

IntlChar::JG_FE

IntlChar::JG_KHAPH

IntlChar::JG_ZHAIN

IntlChar::JG_BURUSHASKI_YEH_BARREE

IntlChar::JG_FARSI_YEH

IntlChar::JG_NYA

IntlChar::JG_ROHINGYA_YEH

IntlChar::JG_MANICHAEAN_ALEPH

IntlChar::JG_MANICHAEAN_AYIN

IntlChar::JG_MANICHAEAN_BETH

IntlChar::JG_MANICHAEAN_DALETH

IntlChar::JG_MANICHAEAN_DHAMEDH

IntlChar::JG_MANICHAEAN_FIVE

IntlChar::JG_MANICHAEAN_GIMEL

IntlChar::JG_MANICHAEAN_HETH

IntlChar::JG_MANICHAEAN_HUNDRED

IntlChar::JG_MANICHAEAN_KAPH

IntlChar::JG_MANICHAEAN_LAMEDH

IntlChar::JG_MANICHAEAN_MEM

IntlChar::JG_MANICHAEAN_NUN

IntlChar::JG_MANICHAEAN_ONE

IntlChar::JG_MANICHAEAN_PE

IntlChar::JG_MANICHAEAN_QOPH

IntlChar::JG_MANICHAEAN_RESH

IntlChar::JG_MANICHAEAN_SADHE

IntlChar::JG_MANICHAEAN_SAMEKH

IntlChar::JG_MANICHAEAN_TAW

IntlChar::JG_MANICHAEAN_TEN

IntlChar::JG_MANICHAEAN_TETH

IntlChar::JG_MANICHAEAN_THAMEDH

IntlChar::JG_MANICHAEAN_TWENTY

IntlChar::JG_MANICHAEAN_WAW

IntlChar::JG_MANICHAEAN_YODH

IntlChar::JG_MANICHAEAN_ZAYIN

IntlChar::JG_STRAIGHT_WAW

IntlChar::JG_COUNT

IntlChar::GCB_OTHER

IntlChar::GCB_CONTROL

IntlChar::GCB_CR

IntlChar::GCB_EXTEND

IntlChar::GCB_L

IntlChar::GCB_LF

IntlChar::GCB_LV

IntlChar::GCB_LVT

IntlChar::GCB_T

IntlChar::GCB_V

IntlChar::GCB_SPACING_MARK

IntlChar::GCB_PREPEND

IntlChar::GCB_REGIONAL_INDICATOR

IntlChar::GCB_COUNT

IntlChar::WB_OTHER

IntlChar::WB_ALETTER

IntlChar::WB_FORMAT

IntlChar::WB_KATAKANA

IntlChar::WB_MIDLETTER

IntlChar::WB_MIDNUM

IntlChar::WB_NUMERIC

IntlChar::WB_EXTENDNUMLET

IntlChar::WB_CR

IntlChar::WB_EXTEND

IntlChar::WB_LF

IntlChar::WB_MIDNUMLET

IntlChar::WB_NEWLINE

IntlChar::WB_REGIONAL_INDICATOR

IntlChar::WB_HEBREW_LETTER

IntlChar::WB_SINGLE_QUOTE

IntlChar::WB_DOUBLE_QUOTE

IntlChar::WB_COUNT

IntlChar::SB_OTHER

IntlChar::SB_ATERM

IntlChar::SB_CLOSE

IntlChar::SB_FORMAT

IntlChar::SB_LOWER

IntlChar::SB_NUMERIC

IntlChar::SB_OLETTER

IntlChar::SB_SEP

IntlChar::SB_SP

IntlChar::SB_STERM

IntlChar::SB_UPPER

IntlChar::SB_CR

IntlChar::SB_EXTEND

IntlChar::SB_LF

IntlChar::SB_SCONTINUE

IntlChar::SB_COUNT

IntlChar::LB_UNKNOWN

IntlChar::LB_AMBIGUOUS

IntlChar::LB_ALPHABETIC

IntlChar::LB_BREAK_BOTH

IntlChar::LB_BREAK_AFTER

IntlChar::LB_BREAK_BEFORE

IntlChar::LB_MANDATORY_BREAK

IntlChar::LB_CONTINGENT_BREAK

IntlChar::LB_CLOSE_PUNCTUATION

IntlChar::LB_COMBINING_MARK

IntlChar::LB_CARRIAGE_RETURN

IntlChar::LB_EXCLAMATION

IntlChar::LB_GLUE

IntlChar::LB_HYPHEN

IntlChar::LB_IDEOGRAPHIC

IntlChar::LB_INSEPARABLE

IntlChar::LB_INSEPERABLE

IntlChar::LB_INFIX_NUMERIC

IntlChar::LB_LINE_FEED

IntlChar::LB_NONSTARTER

IntlChar::LB_NUMERIC

IntlChar::LB_OPEN_PUNCTUATION

IntlChar::LB_POSTFIX_NUMERIC

IntlChar::LB_PREFIX_NUMERIC

IntlChar::LB_QUOTATION

IntlChar::LB_COMPLEX_CONTEXT

IntlChar::LB_SURROGATE

IntlChar::LB_SPACE

IntlChar::LB_BREAK_SYMBOLS

IntlChar::LB_ZWSPACE

IntlChar::LB_NEXT_LINE

IntlChar::LB_WORD_JOINER

IntlChar::LB_H2

IntlChar::LB_H3

IntlChar::LB_JL

IntlChar::LB_JT

IntlChar::LB_JV

IntlChar::LB_CLOSE_PARENTHESIS

IntlChar::LB_CONDITIONAL_JAPANESE_STARTER

IntlChar::LB_HEBREW_LETTER

IntlChar::LB_REGIONAL_INDICATOR

IntlChar::LB_COUNT

IntlChar::NT_NONE

IntlChar::NT_DECIMAL

IntlChar::NT_DIGIT

IntlChar::NT_NUMERIC

IntlChar::NT_COUNT

IntlChar::HST_NOT_APPLICABLE

IntlChar::HST_LEADING_JAMO

IntlChar::HST_VOWEL_JAMO

IntlChar::HST_TRAILING_JAMO

IntlChar::HST_LV_SYLLABLE

IntlChar::HST_LVT_SYLLABLE

IntlChar::HST_COUNT

IntlChar::FOLD_CASE_DEFAULT

IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I

Registro de Alterações

Versão | Descrição
7.0.6 | A constante IntlChar::NO_NUMERIC_VALUE foi adicionada.

Índice

  • IntlChar::charAge — Obtém a "idade" do ponto de código
  • IntlChar::charDigitValue — Obtém o valor do dígito decimal de um caractere de dígito decimal
  • IntlChar::charDirection — Obtém o valor de categoria bidirecional para um ponto de código
  • IntlChar::charFromName — Encontra um caractere Unicode pelo nome e retorna seu valor de ponto de código
  • IntlChar::charMirror — Obtém o caractere "espelho" para um ponto de código
  • IntlChar::charName — Obtém o nome de um caractere Unicode
  • IntlChar::charType — Obtém o valor da categoria geral para um ponto de código
  • IntlChar::chr — Retorna um caractere Unicode por valor de ponto de código
  • IntlChar::digit — Obtém o valor de dígito decimal de um ponto de código para uma base fornecida
  • IntlChar::enumCharNames — Enumera todos os caracteres Unicode atribuídos dentro de um intervalo
  • IntlChar::enumCharTypes — Enumera todos os pontos de código com suas categorias gerais Unicode
  • IntlChar::foldCase — Converte maiúscula/minúscula em um ponto de código
  • IntlChar::forDigit — Obtém a representação em caractere para um dígito e uma base fornecidos
  • IntlChar::getBidiPairedBracket — Obtém o caractere par de abertura/fechamento para um ponto de código
  • IntlChar::getBlockCode — Obtém o bloco de alocação Unicode contendo um ponto de código
  • IntlChar::getCombiningClass — Obtém a classe de combinação de um ponto de código
  • IntlChar::getFC_NFKC_Closure — Obtém a propriedade FC_NFKC_Closure para um ponto de código
  • IntlChar::getIntPropertyMaxValue — Obtém o valor máximo para uma propriedade Unicode
  • IntlChar::getIntPropertyMinValue — Obtém o valor mínimo para uma propriedade Unicode
  • IntlChar::getIntPropertyValue — Obtém o valor de uma propriedade Unicode de um ponto de código
  • IntlChar::getNumericValue — Obtém o valor numérico para um ponto de código Unicode
  • IntlChar::getPropertyEnum — Obtém o valor da contante da propriedade para uma propriedade informada
  • IntlChar::getPropertyName — Obtém o nome Unicode de uma propriedade
  • IntlChar::getPropertyValueEnum — Obtém o valor da propriedade para um nome de valor fornecido
  • IntlChar::getPropertyValueName — Obtém o nome Unicode para um valor de propriedade
  • IntlChar::getUnicodeVersion — Obtém a versão do Unicode
  • IntlChar::hasBinaryProperty — Verifica uma propriedade binária Unicode para um ponto de código
  • IntlChar::isalnum — Verifica se um ponto de código é um caractere alfanumérico
  • IntlChar::isalpha — Verifica se um ponto de código é uma letra
  • IntlChar::isbase — Verifica se um ponto de código é um caractere base
  • IntlChar::isblank — Verifica se um ponto de código é um caractere "vazio" ou um "espaço horizontal"
  • IntlChar::iscntrl — Verifica se um ponto de código é um caractere de controle
  • IntlChar::isdefined — Verifica se o ponto de código está definido
  • IntlChar::isdigit — Verifica se um ponto de código é um caractere de dígito
  • IntlChar::isgraph — Verifica se um ponto de código é um caractere gráfico
  • IntlChar::isIDIgnorable — Verifica se um ponto de código é um caractere ignorável
  • IntlChar::isIDPart — Verifica se um ponto de código é permissível em um identificador
  • IntlChar::isIDStart — Verifica se um ponto de código é permissível como o primeiro caractere em um identificador
  • IntlChar::isISOControl — Verifica se o ponto de código é um código de controle ISO
  • IntlChar::isJavaIDPart — Verifica se um ponto de código é permissível em um identificador Java
  • IntlChar::isJavaIDStart — Veririca se um ponto de código é permissível como o primeiro caractere em um identificador Java
  • IntlChar::isJavaSpaceChar — Veririca se um ponto de código é um caractere de espaçamento de acordo com o Java
  • IntlChar::islower — Verifica se um ponto de código é uma letra minúscula
  • IntlChar::isMirrored — Verifica se um ponto de código tem a propriedade Bidi_Mirrored
  • IntlChar::isprint — Verifica se um ponto de código é um caractere imprimível
  • IntlChar::ispunct — Verifica se um ponto de código é um caractere de pontuação
  • IntlChar::isspace — Verifica se um ponto de código é um caractere de espaçamento
  • IntlChar::istitle — Verifica se um ponto de código é uma letra com grafia mista
  • IntlChar::isUAlphabetic — Verifica se um ponto de código tem a propriedade Alphabetic do Unicode
  • IntlChar::isULowercase — Verifica se um ponto de código tem a propriedade Lowercase do Unicode
  • IntlChar::isupper — Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)
  • IntlChar::isUUppercase — Veririca se um ponto de código tem a propriedade Uppercase do Unicode
  • IntlChar::isUWhiteSpace — Verifica se um ponto de código tem a propriedade White_Space do Unicode
  • IntlChar::isWhitespace — Verifica se um ponto de código é um caractere de espaço em branco de acordo com a ICU
  • IntlChar::isxdigit — Verifica se um ponto de código é um dígito hexadecimal
  • IntlChar::ord — Retorna o valor do ponto de código Unicode do caractere
  • IntlChar::tolower — Transforma o caractere Unicode em minúscula
  • IntlChar::totitle — Transforma o caractere Unicode em letra de título
  • IntlChar::toupper — Transforma um caractere Unicode em maiúscula


Obtém a "idade" do ponto de código

  • « IntlChar
  • IntlChar::charDigitValue »
  • PHP Manual
  • IntlChar
  • Obtém a "idade" do ponto de código

IntlChar::charAge

(PHP 7, PHP 8)

IntlChar::charAge — Obtém a "idade" do ponto de código

Descrição

public static IntlChar::charAge(int|string $codepoint): ?array

Obtém a "idade" do ponto de código.

A "idade" é a versão Unicode de quando o ponto de código foi primeiramente designado (como um não-caractere para Uso Privado) ou atribuído a um caractere. Isto pode ser útil para evitar emitir pontos de código para receber processos que não aceitam novos caracteres.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

O número da versão Unicode, como um array. Por exemplo, a versão 1.3.31.2 seria representada como [1, 3, 31, 2]. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::charage("\u{2603}"));
var_dump(IntlChar::charage("\u{1F576}"));
?>

O exemplo acima produzirá:

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(1)
  [2]=>
  int(0)
  [3]=>
  int(0)
}
array(4) {
  [0]=>
  int(7)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
}

Veja Também

  • IntlChar::getUnicodeVersion() - Obtém a versão do Unicode
  • IntlChar::getIntPropertyMinValue() - Obtém o valor mínimo para uma propriedade Unicode
  • IntlChar::getIntPropertyValue() - Obtém o valor de uma propriedade Unicode de um ponto de código


Obtém o valor do dígito decimal de um caractere de dígito decimal

  • « IntlChar::charAge
  • IntlChar::charDirection »
  • PHP Manual
  • IntlChar
  • Obtém o valor do dígito decimal de um caractere de dígito decimal

IntlChar::charDigitValue

(PHP 7, PHP 8)

IntlChar::charDigitValue — Obtém o valor do dígito decimal de um caractere de dígito decimal

Descrição

public static IntlChar::charDigitValue(int|string $codepoint): ?int

Retorna o valor do dígito decimal de um caractere de dígito decimal.

Tais caracteres têm a categoria geral "Nd" (números de dígitos decimais) e um Numeric_Type igual a Decimal.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

O valor de dígito decimal de codepoint, ou -1 se não for um caractere de dígito decimal. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::charDigitValue("1"));
var_dump(IntlChar::charDigitValue("\u{0662}"));
var_dump(IntlChar::charDigitValue("\u{0E53}"));
?>

O exemplo acima produzirá:

int(1)
int(2)
int(3)

Veja Também

  • IntlChar::getNumericValue() - Obtém o valor numérico para um ponto de código Unicode


Obtém o valor de categoria bidirecional para um ponto de código

  • « IntlChar::charDigitValue
  • IntlChar::charFromName »
  • PHP Manual
  • IntlChar
  • Obtém o valor de categoria bidirecional para um ponto de código

IntlChar::charDirection

(PHP 7, PHP 8)

IntlChar::charDirection — Obtém o valor de categoria bidirecional para um ponto de código

Descrição

public static IntlChar::charDirection(int|string $codepoint): ?int

Retorna o valor de categoria bidirecional para um ponto de código, que é usado no » Algoritmo Bidirecional Unicode (UAX #9).

Nota:

Alguns pontos de código não atribuídos têm valores bidirecionais de R ou AL porque estão em blocos reservador para escrita da direita para a esquerda.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

O valor da categoria bidirecional; uma das constantes a seguir:

  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR
  • IntlChar::CHAR_DIRECTION_ARABIC_NUMBER
  • IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR
  • IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR
  • IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR
  • IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL
  • IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE
  • IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT
  • IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK
  • IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL
  • IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE
  • IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE
  • IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT
Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::charDirection("A") === IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT);
var_dump(IntlChar::charDirection("\u{05E9}") === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::charDirection("+") === IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR);
var_dump(IntlChar::charDirection(".") === IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR);
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(true)
bool(true)


Encontra um caractere Unicode pelo nome e retorna seu valor de ponto de código

  • « IntlChar::charDirection
  • IntlChar::charMirror »
  • PHP Manual
  • IntlChar
  • Encontra um caractere Unicode pelo nome e retorna seu valor de ponto de código

IntlChar::charFromName

(PHP 7, PHP 8)

IntlChar::charFromName — Encontra um caractere Unicode pelo nome e retorna seu valor de ponto de código

Descrição

public static IntlChar::charFromName(string $name, int $type = IntlChar::UNICODE_CHAR_NAME): ?int

Encontra um caractere Unicode pelo nome e retorna seu valor de ponto de código.

O nome deve corresponder de forma exata e completa. Se o nome não corresponder a um ponto de código, null é retornado.

Um nome Unicode 1.0 é correspondido somente se ele for diferente do nome moderno. Os nomes Unicode são todos em letras maiúsculas. Nomes estendidos são em letras minúsculas seguidos por um número hexadecimal em maiúsculas, e dentro de colchetes angulares.

Parâmetros

name

Nome completo do caractere Unicode.

type

Informa qual deve ser o conjunto de nomes usados na pesquisa. Pode ser uma destas constantes:

  • IntlChar::UNICODE_CHAR_NAME (padrão)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Valor Retornado

O valor Unicode do ponto de código do nome fornecido (como um int), ou null se não houver tal ponto de código.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::charFromName("LATIN CAPITAL LETTER A"));
var_dump(IntlChar::charFromName("SNOWMAN"));
var_dump(IntlChar::charFromName("RECYCLING SYMBOL FOR TYPE-1 PLASTICS"));
var_dump(IntlChar::charFromName("UM TEXTO ALEATÓRIO QUE NÃO CORRESPONDE A NENHUM CARACTERE UNICODE"));
?>

O exemplo acima produzirá:

int(65)
int(9731)
int(9843)
NULL

Veja Também

  • IntlChar::charName() - Obtém o nome de um caractere Unicode
  • IntlChar::enumCharNames() - Enumera todos os caracteres Unicode atribuídos dentro de um intervalo


Obtém o caractere "espelho" para um ponto de código

  • « IntlChar::charFromName
  • IntlChar::charName »
  • PHP Manual
  • IntlChar
  • Obtém o caractere "espelho" para um ponto de código

IntlChar::charMirror

(PHP 7, PHP 8)

IntlChar::charMirror — Obtém o caractere "espelho" para um ponto de código

Descrição

public static IntlChar::charMirror(int|string $codepoint): int|string|null

Mapeia o caractere especificado para um caractere "espelho".

Para caracteres com a propriedade Bidi_Mirrored (bidirecional espelhado), as implementações algumas vezes precisam de um mapeamento simples para outro caractere Unicode (ponto de código) de forma que o glifo padrão possa servir como espelho do glifo padrão do caractere especificado. Isto é útil para conversão de texto de páginas de código com ordenamento visual, e para telas sem capacidades de seleção de glifos.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna outro ponto de código Unicode que possa servir como substituto espelho, ou o parâmetro codepoint em si, se não houver tal mapeamento ou se codepoint não tiver a propriedade Bidi_Mirrored.

O tipo do retorno é int, a menos que o ponto de código tenha sido passado como uma string UTF-8, caso em que uma string é retornada. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::charMirror("A"));
var_dump(IntlChar::charMirror("<"));
var_dump(IntlChar::charMirror("("));
?>

O exemplo acima produzirá:

string(1) "A"
string(1) ">"
string(2) ")"

Veja Também

  • IntlChar::isMirrored() - Verifica se um ponto de código tem a propriedade Bidi_Mirrored
  • IntlChar::PROPERTY_BIDI_MIRRORED


Obtém o nome de um caractere Unicode

  • « IntlChar::charMirror
  • IntlChar::charType »
  • PHP Manual
  • IntlChar
  • Obtém o nome de um caractere Unicode

IntlChar::charName

(PHP 7, PHP 8)

IntlChar::charName — Obtém o nome de um caractere Unicode

Descrição

public static IntlChar::charName(int|string $codepoint, int $type = IntlChar::UNICODE_CHAR_NAME): ?string

Obtém o nome de um caractere Unicode.

Dependendo do parâmetro type, o nome resultante do caractere será o nome "moderno" ou o nome que foi definido na versão 1.0 do Unicode. O nome contém apenas caracteres "invariantes" como A-Z, 0-9, espaço e '-'. Nomes do Unicode 1.0 somente são obtidos se eles fores diferentes dos nomes modernos e se a ICU contiver dados para eles.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

type

Define qual o conjunto de nomes usado na pesquisa. Pode ser uma destas contantes:

  • IntlChar::UNICODE_CHAR_NAME (padrão)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Valor Retornado

O nome correspondente, ou uma string vazia se não houver nome para este caractere, ou null se não houver tal ponto de código.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::charName("."));
var_dump(IntlChar::charName(".", IntlChar::UNICODE_CHAR_NAME));
var_dump(IntlChar::charName("\u{2603}"));
var_dump(IntlChar::charName("\u{0000}"));
?>

O exemplo acima produzirá:

string(9) "FULL STOP"
string(9) "FULL STOP"
string(7) "SNOWMAN"
string(0) ""

Veja Também

  • IntlChar::charFromName() - Encontra um caractere Unicode pelo nome e retorna seu valor de ponto de código
  • IntlChar::enumCharNames() - Enumera todos os caracteres Unicode atribuídos dentro de um intervalo


Obtém o valor da categoria geral para um ponto de código

  • « IntlChar::charName
  • IntlChar::chr »
  • PHP Manual
  • IntlChar
  • Obtém o valor da categoria geral para um ponto de código

IntlChar::charType

(PHP 7, PHP 8)

IntlChar::charType — Obtém o valor da categoria geral para um ponto de código

Descrição

public static IntlChar::charType(int|string $codepoint): ?int

Retorna o valor da categoria geral para um ponto de código.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna o tipo de categoria geral, que pode ser uma das constantes a seguir:

  • IntlChar::CHAR_CATEGORY_UNASSIGNED
  • IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES
  • IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER
  • IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER
  • IntlChar::CHAR_CATEGORY_TITLECASE_LETTER
  • IntlChar::CHAR_CATEGORY_MODIFIER_LETTER
  • IntlChar::CHAR_CATEGORY_OTHER_LETTER
  • IntlChar::CHAR_CATEGORY_NON_SPACING_MARK
  • IntlChar::CHAR_CATEGORY_ENCLOSING_MARK
  • IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK
  • IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER
  • IntlChar::CHAR_CATEGORY_LETTER_NUMBER
  • IntlChar::CHAR_CATEGORY_OTHER_NUMBER
  • IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR
  • IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR
  • IntlChar::CHAR_CATEGORY_SURROGATE
  • IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_START_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_END_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_MATH_SYMBOL
  • IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL
  • IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL
  • IntlChar::CHAR_CATEGORY_OTHER_SYMBOL
  • IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::charType("A") === IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER);
var_dump(IntlChar::charType(".") === IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION);
var_dump(IntlChar::charType("\t") === IntlChar::CHAR_CATEGORY_CONTROL_CHAR);
var_dump(IntlChar::charType("\u{2603}") === IntlChar::CHAR_CATEGORY_OTHER_SYMBOL);
var_dump(IntlChar::charType("multiple chars") === null);
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(true)
bool(true)
bool(true)


Retorna um caractere Unicode por valor de ponto de código

  • « IntlChar::charType
  • IntlChar::digit »
  • PHP Manual
  • IntlChar
  • Retorna um caractere Unicode por valor de ponto de código

IntlChar::chr

(PHP 7, PHP 8)

IntlChar::chr — Retorna um caractere Unicode por valor de ponto de código

Descrição

public static IntlChar::chr(int|string $codepoint): ?string

Retorna uma string contendo o caractere especificado pelo valor de ponto de código Unicode.

Esta função é complementar à IntlChar::ord().

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Uma string contendo o caractere único especificado pelo valor de ponto de código, ou null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
$values = ["A", 63, 123, 9731];
foreach ($values as $value) {
var_dump(IntlChar::chr($value));
}
?>

O exemplo acima produzirá:

string(1) "A"
string(1) "?"
string(1) "{"
string(3) "?"

Veja Também

  • IntlChar::ord() - Retorna o valor do ponto de código Unicode do caractere
  • mb_chr() - Retorna um caractere pelo valor do ponto de código Unicode
  • chr() - Generate a single-byte string from a number


Obtém o valor de dígito decimal de um ponto de código para uma base fornecida

  • « IntlChar::chr
  • IntlChar::enumCharNames »
  • PHP Manual
  • IntlChar
  • Obtém o valor de dígito decimal de um ponto de código para uma base fornecida

IntlChar::digit

(PHP 7, PHP 8)

IntlChar::digit — Obtém o valor de dígito decimal de um ponto de código para uma base fornecida

Descrição

public static IntlChar::digit(int|string $codepoint, int $base = 10): int|false|null

Retorna o valor de dígito decimal de um ponto de código para uma base numérica fornecida.

Se a base (radix) não estiver no intervalo 2<=radix<=36 ou se o valor de codepoint não for um dígito válido na base especificada, false é retornado. Um caractere é um dígito válido se pelo menos uma das condições a seguir for verdadeira:

  • O caractere tem um valor de dígito decimal. Tais caracteres têm a categoria geral "Nd" (número de dígito decimal) e um Numeric_Type igual a Decimal. Neste caso o valor é o valor do dígito decimal do caractere.
  • O caractare é uma das letras latinas maiúsculas de 'A' a 'Z'. Neste caso, o valor é c-'A'+10.
  • O caractere é uma das letras latinas minúsculas de 'a' a 'z'. Neste caso, o valor e c-'a'+10.
  • Letras latinas do intervalo ASCII (0061..007A, 0041..005A) e do intervalo ASCII de escopo completo (FF41..FF5A, FF21..FF3A) são reconhecidos.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

base

A base numérica (o padrão é 10).

Valor Retornado

Retorna o valor numérico representado pelo caractere na base especificada, ou false se o valor não existir ou se o valor exceder a base. Retorna null em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::digit("0"));
var_dump(IntlChar::digit("3"));
var_dump(IntlChar::digit("A"));
var_dump(IntlChar::digit("A", 16));
?>

O exemplo acima produzirá:

int(0)
int(3)
bool(false)
int(10)

Veja Também

  • IntlChar::forDigit() - Obtém a representação em caractere para um dígito e uma base fornecidos
  • IntlChar::charDigitValue() - Obtém o valor do dígito decimal de um caractere de dígito decimal
  • IntlChar::isdigit() - Verifica se um ponto de código é um caractere de dígito
  • IntlChar::PROPERTY_NUMERIC_TYPE


Enumera todos os caracteres Unicode atribuídos dentro de um intervalo

  • « IntlChar::digit
  • IntlChar::enumCharTypes »
  • PHP Manual
  • IntlChar
  • Enumera todos os caracteres Unicode atribuídos dentro de um intervalo

IntlChar::enumCharNames

(PHP 7, PHP 8)

IntlChar::enumCharNames — Enumera todos os caracteres Unicode atribuídos dentro de um intervalo

Descrição

public static IntlChar::enumCharNames(
int|string $start,
int|string $end,
callable $callback,
int $type = IntlChar::UNICODE_CHAR_NAME
): bool

Enumera todos os caracteres Unicode atribuídos entre o início e os pontos de código limite (início inclusive, pontos de código exclusive) e chama uma função para cada, passando o valor de ponto de código e o nome do caractere.

Para nomes Unicode 1.0, são enumerados somente os que são diferentes dos nomes modernos.

Parâmetros

start

O primeiro ponto de código no intervalo de enumeração.

end

Um a mais que o último ponto de código no intervalo da enumeração (o primeiro depois do intervalo).

callback

A função que deve ser chamada para cada nome de caractere. Os três argumentos a seguir serão passados na função:

  • int $codepoint - O valor numérico do ponto de código
  • int $nameChoice - O mesmo valor do parâmetro type abaixo
  • string $name - O nome do caractere

type

Seletor para o tipo de nomes e enumerar. Pode ser uma destas constantes:

  • IntlChar::UNICODE_CHAR_NAME (padrão)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.0 | Este método agora retorna false em caso de falha; anteriormente retornava null.

Exemplos

Exemplo #1 Enumerando em uma faixa de pontos de código de exemplo

<?php
IntlChar::enumCharNames(0x2600, 0x2610, function($codepoint, $nameChoice, $name) {
printf("U+%04x %s\n", $codepoint, $name);
});
?>

O exemplo acima produzirá:

U+2600 BLACK SUN WITH RAYS
U+2601 CLOUD
U+2602 UMBRELLA
U+2603 SNOWMAN
U+2604 COMET
U+2605 BLACK STAR
U+2606 WHITE STAR
U+2607 LIGHTNING
U+2608 THUNDERSTORM
U+2609 SUN
U+260a ASCENDING NODE
U+260b DESCENDING NODE
U+260c CONJUNCTION
U+260d OPPOSITION
U+260e BLACK TELEPHONE
U+260f WHITE TELEPHONE

Veja Também

  • IntlChar::charName() - Obtém o nome de um caractere Unicode
  • IntlChar::charFromName() - Encontra um caractere Unicode pelo nome e retorna seu valor de ponto de código


Enumera todos os pontos de código com suas categorias gerais Unicode

  • « IntlChar::enumCharNames
  • IntlChar::foldCase »
  • PHP Manual
  • IntlChar
  • Enumera todos os pontos de código com suas categorias gerais Unicode

IntlChar::enumCharTypes

(PHP 7, PHP 8)

IntlChar::enumCharTypes — Enumera todos os pontos de código com suas categorias gerais Unicode

Descrição

public static IntlChar::enumCharTypes(callable $callback): void

Enumera de maneira eficiente todos os pontos de código com suas categorias gerais Unicode. É útil para construir estruturas de dados, para enumerar todos os pontos de código atribuídos, etc.

Para cada invervalo contíguo de pontos de código com uma categoria geral fornecida ("tipo de caractere"), a função callback é chamada. Intervalos adjacentes têm tipos diferentes. O Padrão Unicode garante que o valor numérico do tipo esteja na faixa 0..31.

Parâmetros

callback

A função que deve er chamada para cada intervalo contíguo de pontos de código com a mesma categoria geral. Os três argumentos a seguir serão passadoa à função:

  • int $start - O ponto de código inicial do intervalo
  • int $end - O ponto de código final do intervalo
  • int $name - O tipo da categoria (uma das constantes IntlChar::CHAR_CATEGORY_*)

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Enumerando um intervalo de pontos de código de exemplo

<?php
IntlChar::enumCharTypes(function($start, $end, $type) {
printf("U+%04x até U+%04x estão na categoria %d\n", $start, $end, $type);
});
?>

O exemplo acima produzirá:

U+0000 até U+0020 estão na categoria 15
U+0020 até U+0021 estão na categoria 12
U+0021 até U+0024 estão na categoria 23
U+0024 até U+0025 estão na categoria 25
U+0025 até U+0028 estão na categoria 23
U+0028 até U+0029 estão na categoria 20
U+0029 até U+002a estão na categoria 21
U+002a até U+002b estão na categoria 23
U+002b até U+002c estão na categoria 24
U+002c até U+002d estão na categoria 23
U+002d até U+002e estão na categoria 19
U+002e até U+0030 estão na categoria 23
U+0030 até U+003a estão na categoria 9
...


Converte maiúscula/minúscula em um ponto de código

  • « IntlChar::enumCharTypes
  • IntlChar::forDigit »
  • PHP Manual
  • IntlChar
  • Converte maiúscula/minúscula em um ponto de código

IntlChar::foldCase

(PHP 7, PHP 8)

IntlChar::foldCase — Converte maiúscula/minúscula em um ponto de código

Descrição

public static IntlChar::foldCase(int|string $codepoint, int $options = IntlChar::FOLD_CASE_DEFAULT): int|string|null

O caractere fornecido é mapeados para a sua maiúscula ou minúscula equivalente; se o caractere não tiver este mapeamento, o prórpio caractere é retornado.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

options

Pode ser IntlChar::FOLD_CASE_DEFAULT (padrão) ou IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I.

Valor Retornado

Retorna a Conversão Simples (cujo mapeamento não altera o tamanho da string) do ponto de código, se houver; caso contrário retorna o próprio ponto de código em caso de sucesso, ou null em caso de falha.


Obtém a representação em caractere para um dígito e uma base fornecidos

  • « IntlChar::foldCase
  • IntlChar::getBidiPairedBracket »
  • PHP Manual
  • IntlChar
  • Obtém a representação em caractere para um dígito e uma base fornecidos

IntlChar::forDigit

(PHP 7, PHP 8)

IntlChar::forDigit — Obtém a representação em caractere para um dígito e uma base fornecidos

Descrição

public static IntlChar::forDigit(int $digit, int $base = 10): int

Determina a representação em caractere para um dígito específico na base fornecida.

E o valor de base não for válido, ou se o valor do dígito não for válido na base especificada, o caractere nulo (U+0000) é retornado.

A base (radix) é válida se for maior ou igual a 2 e menor ou igual a 36. O dígito (digit) é válido se 0 <= digit < radix.

Se o dígito for menor que 10, '0' + dígito é retornado. Caso contrário, o valor 'a' + dígito - 10 é retornado.

Parâmetros

digit

O número a ser convertido para um caractere.

base

A base (o padrão é 10).

Valor Retornado

A representação em caractere (como uma string) do dígito especificado na base fornecida.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::forDigit(0));
var_dump(IntlChar::forDigit(3));
var_dump(IntlChar::forDigit(3, 10));
var_dump(IntlChar::forDigit(10));
var_dump(IntlChar::forDigit(10, 16));
?>

O exemplo acima produzirá:

int(48)
int(51)
int(51)
int(0)
int(97)

Veja Também

  • IntlChar::digit() - Obtém o valor de dígito decimal de um ponto de código para uma base fornecida
  • IntlChar::charDigitValue() - Obtém o valor do dígito decimal de um caractere de dígito decimal
  • IntlChar::isdigit() - Verifica se um ponto de código é um caractere de dígito
  • IntlChar::PROPERTY_NUMERIC_TYPE


Obtém o caractere par de abertura/fechamento para um ponto de código

  • « IntlChar::forDigit
  • IntlChar::getBlockCode »
  • PHP Manual
  • IntlChar
  • Obtém o caractere par de abertura/fechamento para um ponto de código

IntlChar::getBidiPairedBracket

(PHP 7, PHP 8)

IntlChar::getBidiPairedBracket — Obtém o caractere par de abertura/fechamento para um ponto de código

Descrição

public static IntlChar::getBidiPairedBracket(int|string $codepoint): int|string|null

Mapeia o caractere especificado para o seu par de abertura/fechamento.

Para Bidi_Paired_Bracket_Type!=None, é o mesmo que IntlChar::charMirror(). Caso contrário, o próprio codepoint é retornado.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna o ponto de código do caractere par de abertura/fechamento, ou o próprio codepoint se não existir este mapeamento. Retorna null em caso de falha.

O tipo do retorno é int, a menos que o ponto de código tenha sido passado como uma string UTF-8, caso em que uma string é retornada. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::getBidiPairedBracket(91));
var_dump(IntlChar::getBidiPairedBracket('['));
?>

O exemplo acima produzirá:

int(93)
string(1) "]"

Veja Também

  • IntlChar::charMirror() - Obtém o caractere "espelho" para um ponto de código
  • IntlChar::PROPERTY_BIDI_PAIRED_BRACKET
  • IntlChar::PROPERTY_BIDI_PAIRED_BRACKET_TYPE


Obtém o bloco de alocação Unicode contendo um ponto de código

  • « IntlChar::getBidiPairedBracket
  • IntlChar::getCombiningClass »
  • PHP Manual
  • IntlChar
  • Obtém o bloco de alocação Unicode contendo um ponto de código

IntlChar::getBlockCode

(PHP 7, PHP 8)

IntlChar::getBlockCode — Obtém o bloco de alocação Unicode contendo um ponto de código

Descrição

public static IntlChar::getBlockCode(int|string $codepoint): ?int

Obtém o bloco de alocação Unicode que contém o caractere.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna o valor do bloco para o codepoint. Veja as constantes IntlChar::BLOCK_CODE_* para possíveis valores de retorno. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::getBlockCode("A") === IntlChar::BLOCK_CODE_BASIC_LATIN);
var_dump(IntlChar::getBlockCode("F") === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getBlockCode("\u{2603}") === IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS);
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(true)


Obtém a classe de combinação de um ponto de código

  • « IntlChar::getBlockCode
  • IntlChar::getFC_NFKC_Closure »
  • PHP Manual
  • IntlChar
  • Obtém a classe de combinação de um ponto de código

IntlChar::getCombiningClass

(PHP 7, PHP 8)

IntlChar::getCombiningClass — Obtém a classe de combinação de um ponto de código

Descrição

public static IntlChar::getCombiningClass(int|string $codepoint): ?int

Retorna a classe de combinação de um ponto de código.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna a classe de combinação do caractere. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::getCombiningClass("A"));
var_dump(IntlChar::getCombiningClass("\u{0334}"));
var_dump(IntlChar::getCombiningClass("\u{0358}"));
?>

O exemplo acima produzirá:

int(0)
int(1)
int(232)


Obtém a propriedade FC_NFKC_Closure para um ponto de código

  • « IntlChar::getCombiningClass
  • IntlChar::getIntPropertyMaxValue »
  • PHP Manual
  • IntlChar
  • Obtém a propriedade FC_NFKC_Closure para um ponto de código

IntlChar::getFC_NFKC_Closure

(PHP 7, PHP 8)

IntlChar::getFC_NFKC_Closure — Obtém a propriedade FC_NFKC_Closure para um ponto de código

Descrição

public static IntlChar::getFC_NFKC_Closure(int|string $codepoint): string|false|null

Obtém a string da propriedade FC_NFKC_Closure para um caractere.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna a string da propriedade FC_NFKC_Closure para o codepoint, ou uma string vazia se não houver. Retorna null ou false em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::getFC_NFKC_Closure("\u{2121}"));
var_dump(IntlChar::getFC_NFKC_Closure("\u{1D2D}"));
?>

O exemplo acima produzirá:

string(3) "tel"
string(2) "æ"


Obtém o valor máximo para uma propriedade Unicode

  • « IntlChar::getFC_NFKC_Closure
  • IntlChar::getIntPropertyMinValue »
  • PHP Manual
  • IntlChar
  • Obtém o valor máximo para uma propriedade Unicode

IntlChar::getIntPropertyMaxValue

(PHP 7, PHP 8)

IntlChar::getIntPropertyMaxValue — Obtém o valor máximo para uma propriedade Unicode

Descrição

public static IntlChar::getIntPropertyMaxValue(int $property): int

Obtém o valor máximo para uma propriedade enumarada/inteira/binária Unicode.

Parâmetros

property

A propriedade Unicode a ser pesquisada (consulte as constantes IntlChar::PROPERTY_*).

Valor Retornado

O valor máximo retornado por IntlChar::getIntPropertyValue() para uma propriedade Unicode. <=0 se o seletor de propriedade estiver fora do intervalo.

Exemplos

Exemplo #1 Testando diferentes propriedades

<?php
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_SCRIPT));
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_IDEOGRAPHIC));
var_dump(IntlChar::getIntPropertyMaxValue(999999999)); // Um valor inventado
?>

O exemplo acima produzirá:

int(22)
int(166)
int(1)
int(-1)

Veja Também

  • IntlChar::hasBinaryProperty() - Verifica uma propriedade binária Unicode para um ponto de código
  • IntlChar::getIntPropertyMinValue() - Obtém o valor mínimo para uma propriedade Unicode
  • IntlChar::getIntPropertyValue() - Obtém o valor de uma propriedade Unicode de um ponto de código
  • IntlChar::getUnicodeVersion() - Obtém a versão do Unicode


Obtém o valor mínimo para uma propriedade Unicode

  • « IntlChar::getIntPropertyMaxValue
  • IntlChar::getIntPropertyValue »
  • PHP Manual
  • IntlChar
  • Obtém o valor mínimo para uma propriedade Unicode

IntlChar::getIntPropertyMinValue

(PHP 7, PHP 8)

IntlChar::getIntPropertyMinValue — Obtém o valor mínimo para uma propriedade Unicode

Descrição

public static IntlChar::getIntPropertyMinValue(int $property): int

Obtém o valor mínimo para uma propriedade Unicode enumerada/inteira/binária.

Parâmetros

property

A propriedade Unicode a ser pesquisada (consulte as constantes IntlChar::PROPERTY_*).

Valor Retornado

O valor mínimo retornado por IntlChar::getIntPropertyValue() para uma propriedade Unicode. 0 se o seletor de propriedade estiver fora do intervalo.

Exemplos

Exemplo #1 Testando diferentes propriedades

<?php
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_SCRIPT));
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_IDEOGRAPHIC));
var_dump(IntlChar::getIntPropertyMinValue(999999999)); // Um valor inventado
?>

O exemplo acima produzirá:

int(0)
int(0)
int(0)
int(0)

Veja Também

  • IntlChar::hasBinaryProperty() - Verifica uma propriedade binária Unicode para um ponto de código
  • IntlChar::getIntPropertyMaxValue() - Obtém o valor máximo para uma propriedade Unicode
  • IntlChar::getIntPropertyValue() - Obtém o valor de uma propriedade Unicode de um ponto de código
  • IntlChar::getUnicodeVersion() - Obtém a versão do Unicode


Obtém o valor de uma propriedade Unicode de um ponto de código

  • « IntlChar::getIntPropertyMinValue
  • IntlChar::getNumericValue »
  • PHP Manual
  • IntlChar
  • Obtém o valor de uma propriedade Unicode de um ponto de código

IntlChar::getIntPropertyValue

(PHP 7, PHP 8)

IntlChar::getIntPropertyValue — Obtém o valor de uma propriedade Unicode de um ponto de código

Descrição

public static IntlChar::getIntPropertyValue(int|string $codepoint, int $property): ?int

Obtém o valor de uma propriedade Unicode inteira ou enumerada para um ponto de código. Também retorna valores de propriedades binárias e de máscara.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

property

A propriedade Unicode a ser pesquisada (consulte as constantes IntlChar::PROPERTY_*).

Valor Retornado

Retorna o valor numérico que é diretamente o valor da propriedade ou, para propriedade enumeradas, o que corresponde ao valor numérico da constante enumerada do tipo de enumeração do valor da propriedade respectiva. Retorna null em caso de falha.

Retorna 0 ou 1 (para false/true) para propriedades Unicode binárias.

Retorna uma máscara de bits para propriedades de máscara.

Retorna 0 se property estiver fora dos limites ou se a versão Unicode não tiver nenhum dado para a propriedade, ou não tiver para este ponto de código.

Exemplos

Exemplo #1 Testando diferentes propriedades

<?php
var_dump(IntlChar::getIntPropertyValue("A", IntlChar::PROPERTY_ALPHABETIC) === 1);
var_dump(IntlChar::getIntPropertyValue("[", IntlChar::PROPERTY_BIDI_MIRRORED) === 1);
var_dump(IntlChar::getIntPropertyValue("F", IntlChar::PROPERTY_BLOCK) === IntlChar::BLOCK_CODE_GREEK);
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(true)

Veja Também

  • IntlChar::hasBinaryProperty() - Verifica uma propriedade binária Unicode para um ponto de código
  • IntlChar::getIntPropertyMinValue() - Obtém o valor mínimo para uma propriedade Unicode
  • IntlChar::getIntPropertyMaxValue() - Obtém o valor máximo para uma propriedade Unicode
  • IntlChar::getUnicodeVersion() - Obtém a versão do Unicode


Obtém o valor numérico para um ponto de código Unicode

  • « IntlChar::getIntPropertyValue
  • IntlChar::getPropertyEnum »
  • PHP Manual
  • IntlChar
  • Obtém o valor numérico para um ponto de código Unicode

IntlChar::getNumericValue

(PHP 7, PHP 8)

IntlChar::getNumericValue — Obtém o valor numérico para um ponto de código Unicode

Descrição

public static IntlChar::getNumericValue(int|string $codepoint): ?float

Obtém o valor numérico para um ponto de código Unicode como definido no Banco de Dados de Caracteres Unicode.

Para caracteres sem nenhum valor numérico no Banco de Dados de Caracteres Unicode, esta função retornará IntlChar::NO_NUMERIC_VALUE.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Valor numérico de codepoint, ou IntlChar::NO_NUMERIC_VALUE se nenhum estiver definido. Esta constantes foi adicionada no 7.0.6, antes dessa versão o valor literal (float)-123456789 pode ser usado no lugar. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::getNumericValue("4"));
var_dump(IntlChar::getNumericValue("x"));
var_dump(IntlChar::getNumericValue("\u{216C}"));
?>

O exemplo acima produzirá:

float(4)
float(-123456789)
float(50)


Obtém o valor da contante da propriedade para uma propriedade informada

  • « IntlChar::getNumericValue
  • IntlChar::getPropertyName »
  • PHP Manual
  • IntlChar
  • Obtém o valor da contante da propriedade para uma propriedade informada

IntlChar::getPropertyEnum

(PHP 7, PHP 8)

IntlChar::getPropertyEnum — Obtém o valor da contante da propriedade para uma propriedade informada

Descrição

public static IntlChar::getPropertyEnum(string $alias): int

Obtém o valor da contante da propriedade para uma propriedade informada, como especificado no arquivo de banco de dados Unicode PropertyAliases.txt. Curtas, longas, e outras variantes são reconhecidas.

Além disso, esta função mapeia os nomes sintéticos "gcm" / "General_Category_Mask" para a propriedade IntlChar::PROPERTY_GENERAL_CATEGORY_MASK. Estes nomes não estão no arquivo PropertyAliases.txt.

Esta função é complementar à IntlChar::getPropertyName().

Parâmetros

alias

O nome da propriedade a ser correspondida. O nome é comparado usando o modo "loose matching" (correspondência solta) como descrito no arquivo PropertyAliases.txt.

Valor Retornado

Retorna um valor de constante IntlChar::PROPERTY_, ou IntlChar::PROPERTY_INVALID_CODE se o nome fornecido não corresponder a nenhuma propriedade.

Exemplos

Exemplo #1 Testando diferentes propriedades

<?php
var_dump(IntlChar::getPropertyEnum('Bidi_Class') === IntlChar::PROPERTY_BIDI_CLASS);
var_dump(IntlChar::getPropertyEnum('script') === IntlChar::PROPERTY_SCRIPT);
var_dump(IntlChar::getPropertyEnum('IDEOGRAPHIC') === IntlChar::PROPERTY_IDEOGRAPHIC);
var_dump(IntlChar::getPropertyEnum('Uma string inventada') === IntlChar::PROPERTY_INVALID_CODE);
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(true)
bool(true)

Veja Também

  • IntlChar::getPropertyName() - Obtém o nome Unicode de uma propriedade


Obtém o nome Unicode de uma propriedade

  • « IntlChar::getPropertyEnum
  • IntlChar::getPropertyValueEnum »
  • PHP Manual
  • IntlChar
  • Obtém o nome Unicode de uma propriedade

IntlChar::getPropertyName

(PHP 7, PHP 8)

IntlChar::getPropertyName — Obtém o nome Unicode de uma propriedade

Descrição

public static IntlChar::getPropertyName(int $property, int $type = IntlChar::LONG_PROPERTY_NAME): string|false

Returns o nome Unicode de uma propriedade fornecida, como especificado no arquivo de banco de dados PropertyAliases.txt.

Além disso, esta função mapeia a propriedade IntlChar::PROPERTY_GENERAL_CATEGORY_MASK para os nomes sintéticos "gcm" / "General_Category_Mask". Estes nomes não estão no arquivo PropertyAliases.txt.

Esta função é complementar à IntlChar::getPropertyEnum().

Parâmetros

property

A propriedade Unicode a ser pesquisada (consulte as constantes IntlChar::PROPERTY_*).

IntlChar::PROPERTY_INVALID_CODE não deve ser usada. Além disso, se property estiver fora do intervalo, false é retornado.

type

Selector para o nome que deve ser obtido. Se for do intervalo, false é retornado.

Todas as propriedades têm um nome longo. A maioria tem um nome curto, mas algumas não têm. Unicode permite nomes adicionais; caso presentes, estes serão retornados adicionando-se 1, 2, etc. a IntlChar::LONG_PROPERTY_NAME.

Valor Retornado

Retorna o nome, ou false se property ou type estiverem fora de seus intervalos.

Se um type retornar false, todos os valores maiores de type retornarão false, com uma exceção: se false for retornado para IntlChar::SHORT_PROPERTY_NAME, então IntlChar::LONG_PROPERTY_NAME (e maiores) podem ainda retornar valores não-false.

Exemplos

Exemplo #1 Testando diferentes propriedades

<?php
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::LONG_PROPERTY_NAME + 1));
?>

O exemplo acima produzirá:

string(10) "Bidi_Class"
string(2) "bc"
string(10) "Bidi_Class"
bool(false)

Veja Também

  • IntlChar::getPropertyEnum() - Obtém o valor da contante da propriedade para uma propriedade informada


Obtém o valor da propriedade para um nome de valor fornecido

  • « IntlChar::getPropertyName
  • IntlChar::getPropertyValueName »
  • PHP Manual
  • IntlChar
  • Obtém o valor da propriedade para um nome de valor fornecido

IntlChar::getPropertyValueEnum

(PHP 7, PHP 8)

IntlChar::getPropertyValueEnum — Obtém o valor da propriedade para um nome de valor fornecido

Descrição

public static IntlChar::getPropertyValueEnum(int $property, string $name): int

Retorna o valor inteiro da propriedade para um nome de valor fornecido, como especificado no arquivo de dados Unicode PropertyValueAliases.txt. Nomes curtos, longos e outras variantes são reconhecidos.

Nota:

Alguns dos nomes em PropertyValueAliases.txt somente serão reconhecidos com IntlChar::PROPERTY_GENERAL_CATEGORY_MASK e não com IntlChar::PROPERTY_GENERAL_CATEGORY. Estes incluem:

  • "C" / "Other"
  • "L" / "Letter"
  • "LC" / "Cased_Letter"
  • "M" / "Mark"
  • "N" / "Number"
  • "P" / "Punctuation"
  • "S" / "Symbol"
  • "Z" / "Separator"

Parâmetros

property

A propriedade Unicode a ser pesquisada (consulte as constantes IntlChar::PROPERTY_*).

Se estiver fora do intervalo, ou se este método não funcionar com o valor fornecido, IntlChar::PROPERTY_INVALID_CODE é retornado.

name

O valor a ser correspondido. O nome é comparado usando "loose matching" (correspondência solta) como descrito em PropertyValueAliases.txt.

Valor Retornado

Retorna o valor inteiro correspondente ou IntlChar::PROPERTY_INVALID_CODE se o nome fornecido não corresponder a nenhum valor da propriedade informada ou se a propriedade for inválida.

Exemplos

Exemplo #1 Testando diferentes propriedades

<?php
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BLOCK, 'greek') === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'RIGHT_TO_LEFT') === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'uma string inventada') === IntlChar::PROPERTY_INVALID_CODE);
var_dump(IntlChar::getPropertyValueEnum(123456789, 'RIGHT_TO_LEFT') === IntlChar::PROPERTY_INVALID_CODE);
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(true)
bool(true)


Obtém o nome Unicode para um valor de propriedade

  • « IntlChar::getPropertyValueEnum
  • IntlChar::getUnicodeVersion »
  • PHP Manual
  • IntlChar
  • Obtém o nome Unicode para um valor de propriedade

IntlChar::getPropertyValueName

(PHP 7, PHP 8)

IntlChar::getPropertyValueName — Obtém o nome Unicode para um valor de propriedade

Descrição

public static IntlChar::getPropertyValueName(int $property, int $value, int $type = IntlChar::LONG_PROPERTY_NAME): string|false

Retorna o nome Unicode para um valor de propriedade fornecido, como especificado no arquivo de dados Unicode PropertyValueAliases.txt.

Nota:

Alguns nomes no PropertyValueAliases.txt somente podem ser obtidos usando-se IntlChar::PROPERTY_GENERAL_CATEGORY_MASK, e não IntlChar::PROPERTY_GENERAL_CATEGORY. Estes incluem:

  • "C" / "Other"
  • "L" / "Letter"
  • "LC" / "Cased_Letter"
  • "M" / "Mark"
  • "N" / "Number"
  • "P" / "Punctuation"
  • "S" / "Symbol"
  • "Z" / "Separator"

Parâmetros

property

A propriedade Unicode a ser pesquisada (consulte as constantes IntlChar::PROPERTY_*).

Se estiver fora do intervalo ou se este método não funcionar com o valor fornecido, false é retornado.

value

Seletor para um valor para a propriedade fornecida. Se fora dos limites, false é retornado.

Em geral, nomes válidos variam de 0 até um máximo. Existem exceções:

  • Valores de IntlChar::PROPERTY_BLOCK começam no valor diferente de zero IntlChar::BLOCK_CODE_BASIC_LATIN
  • Valores IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS não são contíguos e variam de 0 a 240.

type

Seletor para o nome a ser obtido. Se estiver fora dos limites, false é retornado.

Todos os valores têm um nome longo. A maioria tem um nome curto, mas alguns não têm. Unicode permite nomes adicionais; se presentes, estes serão retornados adicionando-se 1, 2, etc. a IntlChar::LONG_PROPERTY_NAME.

Valor Retornado

Retorna o nome ou false se property ou type estiverem fora de seus intervalos. Retorna null em caso de falha.

Se um type retonar false, todos os valores maiores de type retornarão false, com uma exceção: se false for retornado para IntlChar::SHORT_PROPERTY_NAME, então IntlChar::LONG_PROPERTY_NAME (e acima) podem ainda retornar valor não-false.

Exemplos

Exemplo #1 Testando diferentes propriedades

<?php
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME + 1));
?>

O exemplo acima produzirá:

string(16) "Greek_And_Coptic"
string(5) "Greek"
string(16) "Greek_And_Coptic"
bool(false)


Obtém a versão do Unicode

  • « IntlChar::getPropertyValueName
  • IntlChar::hasBinaryProperty »
  • PHP Manual
  • IntlChar
  • Obtém a versão do Unicode

IntlChar::getUnicodeVersion

(PHP 7, PHP 8)

IntlChar::getUnicodeVersion — Obtém a versão do Unicode

Descrição

public static IntlChar::getUnicodeVersion(): array

Obtém informação sobre a versão do Unicode.

O array é preenchido com a informação de versão do padrão Unicode atualmente usado pela ICU. Por exemplo, Unicode versão 3.1.1 é representado por um array com os valores [3, 1, 1, 0].

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo o número de versão Unicode.

Exemplos

Exemplo #1 Testando diferentes propriedades

<?php
var_dump(IntlChar::getUnicodeVersion());
?>

O exemplo acima produzirá:

array(4) {
  [0]=>
  int(7)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
}

Veja Também

  • IntlChar::charAge() - Obtém a "idade" do ponto de código


Verifica uma propriedade binária Unicode para um ponto de código

  • « IntlChar::getUnicodeVersion
  • IntlChar::isalnum »
  • PHP Manual
  • IntlChar
  • Verifica uma propriedade binária Unicode para um ponto de código

IntlChar::hasBinaryProperty

(PHP 7, PHP 8)

IntlChar::hasBinaryProperty — Verifica uma propriedade binária Unicode para um ponto de código

Descrição

public static IntlChar::hasBinaryProperty(int|string $codepoint, int $property): ?bool

Verifica uma propriedade binária Unicode para um ponto de código.

Unicode, especialmente na versão 3.2, define muito mais propriedades que as originais definidas em UnicodeData.txt.

As APIs de propriedades têm o objetivo de refletir as propriedades Unicode como definidas no Banco de Dados de Caracteres Unicode (UCD) e nos Relatórios Técnicos Unicode. Para detalhes sobre as propriedades consulte » http://www.unicode.org/ucd/. Para nomes de propriedades Unicode consulte o arquivo da UCD, PropertyAliases.txt.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

property

A propriedade Unicode a ser pesquisada (consulte as constantes IntlChar::PROPERTY_*).

Valor Retornado

Retorna true ou false de acordo com o valor binário da propriedade Unicode para o codepoint. Também retorna false se property estiver fora dos limites ou se a versão Unicode não tiver dados desta propriedade ou se não tiver para este ponto de código. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes propriedades

<?php
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_ALPHABETIC));
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_CASE_SENSITIVE));
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_BIDI_MIRRORED));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_ALPHABETIC));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_CASE_SENSITIVE));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_BIDI_MIRRORED));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)

Veja Também

  • IntlChar::getIntPropertyValue() - Obtém o valor de uma propriedade Unicode de um ponto de código
  • IntlChar::getUnicodeVersion() - Obtém a versão do Unicode


Verifica se um ponto de código é um caractere alfanumérico

  • « IntlChar::hasBinaryProperty
  • IntlChar::isalpha »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere alfanumérico

IntlChar::isalnum

(PHP 7, PHP 8)

IntlChar::isalnum — Verifica se um ponto de código é um caractere alfanumérico

Descrição

public static IntlChar::isalnum(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um caractere alfanumérico (letra ou dígito). true para caracteres com categoria geral "L" (letras) e "Nd" (números de dígito decimal).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere alfanumérico, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isalnum("A"));
var_dump(IntlChar::isalnum("1"));
var_dump(IntlChar::isalnum("\u{2603}"));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)

Veja Também

  • IntlChar::isalpha() - Verifica se um ponto de código é uma letra
  • IntlChar::isdigit() - Verifica se um ponto de código é um caractere de dígito
  • ctype_alnum() - Verifica se os caracteres são alfanuméricos


Verifica se um ponto de código é uma letra

  • « IntlChar::isalnum
  • IntlChar::isbase »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é uma letra

IntlChar::isalpha

(PHP 7, PHP 8)

IntlChar::isalpha — Verifica se um ponto de código é uma letra

Descrição

public static IntlChar::isalpha(int|string $codepoint): ?bool

Determina se o ponto de código especificado é uma letra. true para categorial geral "L" (letras).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint é uma letra, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isalpha("A"));
var_dump(IntlChar::isalpha("1"));
var_dump(IntlChar::isalpha("\u{2603}"));
?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(false)

Veja Também

  • IntlChar::isalnum() - Verifica se um ponto de código é um caractere alfanumérico
  • IntlChar::isdigit() - Verifica se um ponto de código é um caractere de dígito
  • ctype_alpha() - Verifica se os caracteres são alfabéticos


Verifica se um ponto de código é um caractere base

  • « IntlChar::isalpha
  • IntlChar::isblank »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere base

IntlChar::isbase

(PHP 7, PHP 8)

IntlChar::isbase — Verifica se um ponto de código é um caractere base

Descrição

public static IntlChar::isbase(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um caractere base. true para categorial geral "L" (letras), "N" (números), "Mc" (marcas de combinação de espaçamento) e "Me" (marcas de envoltório).

Nota:

Isto é diferente da definição Unicode no capítulo 3.5, cláusula de conformidade clause D13, que define que caracteres base são todos os caracteres (não Cn) que não combinam graficamente com os caracteres precedentes (M) e que não são de controle (Cc) enm de formatação (Cf).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere base, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isbase("A"));
var_dump(IntlChar::isbase("1"));
var_dump(IntlChar::isbase("\u{2603}"));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)

Veja Também

  • IntlChar::isalpha() - Verifica se um ponto de código é uma letra
  • IntlChar::isdigit() - Verifica se um ponto de código é um caractere de dígito


Verifica se um ponto de código é um caractere "vazio" ou um "espaço horizontal"

  • « IntlChar::isbase
  • IntlChar::iscntrl »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere "vazio" ou um "espaço horizontal"

IntlChar::isblank

(PHP 7, PHP 8)

IntlChar::isblank — Verifica se um ponto de código é um caractere "vazio" ou um "espaço horizontal"

Descrição

public static IntlChar::isblank(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um "vazio" ou um "espaço horizontal", um caractere que visivelmente separa palavras em uma linha.

As definições a seguir são equivalentes:

  • true para caracteres Unicode White_Space (espaço em branco) exceto para "controles de espaço vertical" que são os seguintes caracteres: U+000A (LF), U+000B (VT), U+000C (FF), U+000D (CR), U+0085 (NEL), U+2028 (LS) e U+2029 (PS)
  • true para U+0009 (TAB) e caracteres com categoria geral "Zs" (separadores de espaço) exceto o Espaço de Largura Zero (ZWSP, U+200B).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere "vazio" ou de "espaço horizontal", false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isblank("A"));
var_dump(IntlChar::isblank(" "));
var_dump(IntlChar::isblank("\t"));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(true)

Veja Também

  • IntlChar::isspace() - Verifica se um ponto de código é um caractere de espaçamento
  • IntlChar::isJavaSpaceChar() - Veririca se um ponto de código é um caractere de espaçamento de acordo com o Java
  • IntlChar::isUWhiteSpace() - Verifica se um ponto de código tem a propriedade White_Space do Unicode
  • IntlChar::isWhitespace() - Verifica se um ponto de código é um caractere de espaço em branco de acordo com a ICU


Verifica se um ponto de código é um caractere de controle

  • « IntlChar::isblank
  • IntlChar::isdefined »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere de controle

IntlChar::iscntrl

(PHP 7, PHP 8)

IntlChar::iscntrl — Verifica se um ponto de código é um caractere de controle

Descrição

public static IntlChar::iscntrl(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um caractere de controle.

Um caractere de controle é um dos seguintes:

  • Caractere de controle ISO de 8 bits (U+0000..U+001f and U+007f..U+009f)
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR (Cc)
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR (Cf)
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR (Zl)
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR (Zp)

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere de controle, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::iscntrl("A"));
var_dump(IntlChar::iscntrl(" "));
var_dump(IntlChar::iscntrl("\n"));
var_dump(IntlChar::iscntrl("\u{200e}"));
?>

O exemplo acima produzirá:

bool(false)
bool(false)
bool(true)
bool(true)

Veja Também

  • IntlChar::isprint() - Verifica se um ponto de código é um caractere imprimível
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT
  • ctype_cntrl() - Verifica se os caracteres são de controle


Verifica se o ponto de código está definido

  • « IntlChar::iscntrl
  • IntlChar::isdigit »
  • PHP Manual
  • IntlChar
  • Verifica se o ponto de código está definido

IntlChar::isdefined

(PHP 7, PHP 8)

IntlChar::isdefined — Verifica se o ponto de código está definido

Descrição

public static IntlChar::isdefined(int|string $codepoint): ?bool

Determina se o ponto de código especificado está "definido", o que normalmente significa que está atribuído a um caractere.

true para categorias gerais diferentes de "Cn" (outros, não atribuídos).

Nota:

Observe que pontos de código que não são caracteres (ex.: U+FDD0) não estão "definidos" (eles são Cn), mas os pontos de código substitutos estão "definidos" (Cs).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere definido, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isdefined("A"));
var_dump(IntlChar::isdefined(" "));
var_dump(IntlChar::isdefined("\u{FDD0}"));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)

Veja Também

  • IntlChar::isdigit() - Verifica se um ponto de código é um caractere de dígito
  • IntlChar::isalpha() - Verifica se um ponto de código é uma letra
  • IntlChar::isalnum() - Verifica se um ponto de código é um caractere alfanumérico
  • IntlChar::isupper() - Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)
  • IntlChar::islower() - Verifica se um ponto de código é uma letra minúscula
  • IntlChar::istitle() - Verifica se um ponto de código é uma letra com grafia mista


Verifica se um ponto de código é um caractere de dígito

  • « IntlChar::isdefined
  • IntlChar::isgraph »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere de dígito

IntlChar::isdigit

(PHP 7, PHP 8)

IntlChar::isdigit — Verifica se um ponto de código é um caractere de dígito

Descrição

public static IntlChar::isdigit(int|string $codepoint): ?bool

Determina se um ponto de código especificado é um caractere de dígito.

true para caracteres com categoria geral "Nd" (números de dígito decimal). A partir do Unicode 4, isto é o mesmo que testar se a propriedade Numeric_Type é Decimal.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint é um caractere de dígito, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isdigit("A"));
var_dump(IntlChar::isdigit("1"));
var_dump(IntlChar::isdigit("\t"));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(false)

Veja Também

  • IntlChar::isalpha() - Verifica se um ponto de código é uma letra
  • IntlChar::isalnum() - Verifica se um ponto de código é um caractere alfanumérico
  • IntlChar::isxdigit() - Verifica se um ponto de código é um dígito hexadecimal
  • ctype_digit() - Verifica se os caracteres são numéricos


Verifica se um ponto de código é um caractere gráfico

  • « IntlChar::isdigit
  • IntlChar::isIDIgnorable »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere gráfico

IntlChar::isgraph

(PHP 7, PHP 8)

IntlChar::isgraph — Verifica se um ponto de código é um caractere gráfico

Descrição

public static IntlChar::isgraph(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um caractere "gráfico" (imprimível, excluindo espaços).

true para todos os caracteres exceto aqueles com categoria geral "Cc" (códigos de controle), "Cf" (códigos de formatação), "Cs" (substitutos), "Cn" (não atribuídos), and "Z" (separadores).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere "gráfico", false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isgraph("A"));
var_dump(IntlChar::isgraph("1"));
var_dump(IntlChar::isgraph("\u{2603}"));
var_dump(IntlChar::isgraph("\n"));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(true)
bool(false)

Veja Também

  • ctype_graph() - Verifica se os caracteres são imprimíveis exceto espaço


Verifica se um ponto de código é um caractere ignorável

  • « IntlChar::isgraph
  • IntlChar::isIDPart »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere ignorável

IntlChar::isIDIgnorable

(PHP 7, PHP 8)

IntlChar::isIDIgnorable — Verifica se um ponto de código é um caractere ignorável

Descrição

public static IntlChar::isIDIgnorable(int|string $codepoint): ?bool

Determina se o caractere especificado deve ser considerado um caractere ignorável em um identificador.

true para caracteres com categoria geral "Cf" (códigos de formatação) assim como controles ISO que não são espaços em branco (U+0000..U+0008, U+000E..U+001B, U+007F..U+009F).

Nota:

Observe que o Unicode recomenda ignorar Cf (códigos de formatação).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for ignorável em identificadores, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isIDIgnorable("A"));
var_dump(IntlChar::isIDIgnorable(" "));
var_dump(IntlChar::isIDIgnorable("\u{007F}"));
?>

O exemplo acima produzirá:

bool(false)
bool(false)
bool(true)

Veja Também

  • IntlChar::isIDStart() - Verifica se um ponto de código é permissível como o primeiro caractere em um identificador
  • IntlChar::isIDPart() - Verifica se um ponto de código é permissível em um identificador
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Verifica se um ponto de código é permissível em um identificador

  • « IntlChar::isIDIgnorable
  • IntlChar::isIDStart »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é permissível em um identificador

IntlChar::isIDPart

(PHP 7, PHP 8)

IntlChar::isIDPart — Verifica se um ponto de código é permissível em um identificador

Descrição

public static IntlChar::isIDPart(int|string $codepoint): ?bool

Determina se o caractere especificado é permissível em um identificador.

true para caracteres com categoria geral "L" (letras), "Nl" (números letras), "Nd" (dígitos decimais), "Mc" e "Mn" (marcas de combinação), "Pc" (pontuação de conexão) e u_isIDIgnorable(c).

Nota:

Isto é quase o mesmo que o ID_Continue do Unicode (IntlChar::PROPERTY_ID_CONTINUE) exceto que o Unicode recomenda ignorar Cf que seja menor que IntlChar::isIDIgnorable().

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint puder ocorrer em um identificador, false se não puder. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isIDPart("A"));
var_dump(IntlChar::isIDPart("$"));
var_dump(IntlChar::isIDPart("\n"));
var_dump(IntlChar::isIDPart("\u{2603}"));
?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(false)
bool(false)

Veja Também

  • IntlChar::isIDIgnorable() - Verifica se um ponto de código é um caractere ignorável
  • IntlChar::isIDStart() - Verifica se um ponto de código é permissível como o primeiro caractere em um identificador
  • IntlChar::PROPERTY_ID_CONTINUE


Verifica se um ponto de código é permissível como o primeiro caractere em um identificador

  • « IntlChar::isIDPart
  • IntlChar::isISOControl »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é permissível como o primeiro caractere em um identificador

IntlChar::isIDStart

(PHP 7, PHP 8)

IntlChar::isIDStart — Verifica se um ponto de código é permissível como o primeiro caractere em um identificador

Descrição

public static IntlChar::isIDStart(int|string $codepoint): ?bool

Determina se o caractere especificado é permissível como o primeiro caractere em um identificador de acordo com o Unicode (O Padrão Unicode, Versão 3.0, capítulo 5.16, Identificadores).

true para caracteres com categoria geral "L" (letras) e "Nl" (letras números).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint puder iniciar um identificador, false se não puder. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isIDStart("A"));
var_dump(IntlChar::isIDStart("$"));
var_dump(IntlChar::isIDStart("\n"));
var_dump(IntlChar::isIDStart("\u{2603}"));
?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(false)
bool(false)

Veja Também

  • IntlChar::isalpha() - Verifica se um ponto de código é uma letra
  • IntlChar::isIDPart() - Verifica se um ponto de código é permissível em um identificador
  • IntlChar::PROPERTY_ID_START


Verifica se o ponto de código é um código de controle ISO

  • « IntlChar::isIDStart
  • IntlChar::isJavaIDPart »
  • PHP Manual
  • IntlChar
  • Verifica se o ponto de código é um código de controle ISO

IntlChar::isISOControl

(PHP 7, PHP 8)

IntlChar::isISOControl — Verifica se o ponto de código é um código de controle ISO

Descrição

public static IntlChar::isISOControl(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um código de controle ISO.

true para U+0000..U+001f e U+007f..U+009f (categoria geral "Cc").

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um código de controle ISO, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isISOControl(" "));
var_dump(IntlChar::isISOControl("\n"));
var_dump(IntlChar::isISOControl("\u{200e}"));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(false)

Veja Também

  • IntlChar::iscntrl() - Verifica se um ponto de código é um caractere de controle


Verifica se um ponto de código é permissível em um identificador Java

  • « IntlChar::isISOControl
  • IntlChar::isJavaIDStart »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é permissível em um identificador Java

IntlChar::isJavaIDPart

(PHP 7, PHP 8)

IntlChar::isJavaIDPart — Verifica se um ponto de código é permissível em um identificador Java

Descrição

public static IntlChar::isJavaIDPart(int|string $codepoint): ?bool

Determina se o caractere especificado é permissível em um identificador Java.

Em adição a IntlChar::isIDPart(), true para caracteres com categoria geral "Sc" (símbolos de moeda).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint puder ocorrer em um identificador Java, false se não puder. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isJavaIDPart("A"));
var_dump(IntlChar::isJavaIDPart("$"));
var_dump(IntlChar::isJavaIDPart("\n"));
var_dump(IntlChar::isJavaIDPart("\u{2603}"));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)
bool(false)

Veja Também

  • IntlChar::isIDIgnorable() - Verifica se um ponto de código é um caractere ignorável
  • IntlChar::isIDPart() - Verifica se um ponto de código é permissível em um identificador
  • IntlChar::isJavaIDStart() - Veririca se um ponto de código é permissível como o primeiro caractere em um identificador Java
  • IntlChar::isalpha() - Verifica se um ponto de código é uma letra
  • IntlChar::isdigit() - Verifica se um ponto de código é um caractere de dígito


Veririca se um ponto de código é permissível como o primeiro caractere em um identificador Java

  • « IntlChar::isJavaIDPart
  • IntlChar::isJavaSpaceChar »
  • PHP Manual
  • IntlChar
  • Veririca se um ponto de código é permissível como o primeiro caractere em um identificador Java

IntlChar::isJavaIDStart

(PHP 7, PHP 8)

IntlChar::isJavaIDStart — Veririca se um ponto de código é permissível como o primeiro caractere em um identificador Java

Descrição

public static IntlChar::isJavaIDStart(int|string $codepoint): ?bool

Determina se o caractere especificado é permissível como o início de um identificador Java.

Em adição a IntlChar::isIDStart(), true para caracteres com categoria geral "Sc" (símbolos de moeda) e "Pc" (pontuação de conexão).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint puder iniciar um identificador Java, false se não puder. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isJavaIDStart("A"));
var_dump(IntlChar::isJavaIDStart("$"));
var_dump(IntlChar::isJavaIDStart("\n"));
var_dump(IntlChar::isJavaIDStart("\u{2603}"));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)
bool(false)

Veja Também

  • IntlChar::isIDStart() - Verifica se um ponto de código é permissível como o primeiro caractere em um identificador
  • IntlChar::isJavaIDPart() - Verifica se um ponto de código é permissível em um identificador Java
  • IntlChar::isalpha() - Verifica se um ponto de código é uma letra


Veririca se um ponto de código é um caractere de espaçamento de acordo com o Java

  • « IntlChar::isJavaIDStart
  • IntlChar::islower »
  • PHP Manual
  • IntlChar
  • Veririca se um ponto de código é um caractere de espaçamento de acordo com o Java

IntlChar::isJavaSpaceChar

(PHP 7, PHP 8)

IntlChar::isJavaSpaceChar — Veririca se um ponto de código é um caractere de espaçamento de acordo com o Java

Descrição

public static IntlChar::isJavaSpaceChar(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um caractere de espaçamento de acordo com o Java.

true para caracteres com categoria geral "Z" (separadores), que não incluem códigos de controle (ex.:., TAB ou LF).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere de espaçamento de acordo com o Java, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isJavaSpaceChar("A"));
var_dump(IntlChar::isJavaSpaceChar(" "));
var_dump(IntlChar::isJavaSpaceChar("\n"));
var_dump(IntlChar::isJavaSpaceChar("\t"));
var_dump(IntlChar::isJavaSpaceChar("\u{00A0}"));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(false)
bool(false)
bool(true)

Veja Também

  • IntlChar::isspace() - Verifica se um ponto de código é um caractere de espaçamento
  • IntlChar::isWhitespace() - Verifica se um ponto de código é um caractere de espaço em branco de acordo com a ICU
  • IntlChar::isUWhiteSpace() - Verifica se um ponto de código tem a propriedade White_Space do Unicode


Verifica se um ponto de código é uma letra minúscula

  • « IntlChar::isJavaSpaceChar
  • IntlChar::isMirrored »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é uma letra minúscula

IntlChar::islower

(PHP 7, PHP 8)

IntlChar::islower — Verifica se um ponto de código é uma letra minúscula

Descrição

public static IntlChar::islower(int|string $codepoint): ?bool

Determina se o ponto de código especificado tem a categoria geral "Ll" (letra minúscula).

Nota:

Isto deixa passar alguns caracteres que também são letras minúsculas mas têm uma categoria geral diferente. Para incluir esses, use a função IntlChar::isULowercase().

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for uma letra minúscula (Ll), false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::islower("A"));
var_dump(IntlChar::islower("a"));
var_dump(IntlChar::islower("F"));
var_dump(IntlChar::islower("f"));
var_dump(IntlChar::islower("1"));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Veja Também

  • IntlChar::isupper() - Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)
  • IntlChar::istitle() - Verifica se um ponto de código é uma letra com grafia mista
  • IntlChar::tolower() - Transforma o caractere Unicode em minúscula
  • IntlChar::toupper() - Transforma um caractere Unicode em maiúscula
  • IntlChar::PROPERTY_LOWERCASE
  • ctype_lower() - Verifica se os caracteres estão minúsculos


Verifica se um ponto de código tem a propriedade Bidi_Mirrored

  • « IntlChar::islower
  • IntlChar::isprint »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código tem a propriedade Bidi_Mirrored

IntlChar::isMirrored

(PHP 7, PHP 8)

IntlChar::isMirrored — Verifica se um ponto de código tem a propriedade Bidi_Mirrored

Descrição

public static IntlChar::isMirrored(int|string $codepoint): ?bool

Determina se o ponto de código têm a propriedade Bidi_Mirrored (espelhado bidirecional).

Esta propriedade é definida para caracteres que são normalmente usados em contextos da direita para a esquerda e precisam ser mostrados com um glifo "espelhado".

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint tiver a propriedade Bidi_Mirrored property, false se não tiver. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isMirrored("A"));
var_dump(IntlChar::isMirrored("<"));
var_dump(IntlChar::isMirrored("("));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(true)

Veja Também

  • IntlChar::charMirror() - Obtém o caractere "espelho" para um ponto de código
  • IntlChar::PROPERTY_BIDI_MIRRORED


Verifica se um ponto de código é um caractere imprimível

  • « IntlChar::isMirrored
  • IntlChar::ispunct »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere imprimível

IntlChar::isprint

(PHP 7, PHP 8)

IntlChar::isprint — Verifica se um ponto de código é um caractere imprimível

Descrição

public static IntlChar::isprint(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um caractere imprimível.

true para categoria geral diferente de "C" (controles).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere imprimível, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isprint("A"));
var_dump(IntlChar::isprint(" "));
var_dump(IntlChar::isprint("\n"));
var_dump(IntlChar::isprint("\u{200e}"));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)
bool(false)

Veja Também

  • IntlChar::iscntrl() - Verifica se um ponto de código é um caractere de controle
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT
  • ctype_print() - Verifica se os caracteres são imprimíveis


Verifica se um ponto de código é um caractere de pontuação

  • « IntlChar::isprint
  • IntlChar::isspace »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere de pontuação

IntlChar::ispunct

(PHP 7, PHP 8)

IntlChar::ispunct — Verifica se um ponto de código é um caractere de pontuação

Descrição

public static IntlChar::ispunct(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um caractere de pontuação.

true para caracteres com categoria geral "P" (pontuação).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere de pontuação, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::ispunct("."));
var_dump(IntlChar::ispunct(","));
var_dump(IntlChar::ispunct("\n"));
var_dump(IntlChar::ispunct("$"));

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)
bool(false)

Veja Também

  • ctype_punct() - Verifica se é um caractere imprimível que não é whitespace ou alfanumério


Verifica se um ponto de código é um caractere de espaçamento

  • « IntlChar::ispunct
  • IntlChar::istitle »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere de espaçamento

IntlChar::isspace

(PHP 7, PHP 8)

IntlChar::isspace — Verifica se um ponto de código é um caractere de espaçamento

Descrição

public static IntlChar::isspace(int|string $codepoint): ?bool

Determina se o caractere especificado é um caractere de espaçamento ou não.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere de espaçamento, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isspace("A"));
var_dump(IntlChar::isspace(" "));
var_dump(IntlChar::isspace("\n"));
var_dump(IntlChar::isspace("\t"));
var_dump(IntlChar::isspace("\u{00A0}"));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)

Veja Também

  • IntlChar::isJavaSpaceChar() - Veririca se um ponto de código é um caractere de espaçamento de acordo com o Java
  • IntlChar::isWhitespace() - Verifica se um ponto de código é um caractere de espaço em branco de acordo com a ICU
  • IntlChar::isUWhiteSpace() - Verifica se um ponto de código tem a propriedade White_Space do Unicode
  • ctype_space() - Verifica se os caracteres são whitespace


Verifica se um ponto de código é uma letra com grafia mista

  • « IntlChar::isspace
  • IntlChar::isUAlphabetic »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é uma letra com grafia mista

IntlChar::istitle

(PHP 7, PHP 8)

IntlChar::istitle — Verifica se um ponto de código é uma letra com grafia mista

Descrição

public static IntlChar::istitle(int|string $codepoint): ?bool

Determina se o ponto de código especificado é uma letra com grafia de título (um só caractere Unicode com dois glifos combinados, o primeiro maiúsculo e o segundo minúsculo, presente em algumas línguas como grego e croata).

true para a categoria geral "Lt" (letra com grafia de título).

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for uma letra com grafia de título, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
// Latin Capital Letter Dz with Caron U+01C4
var_dump(IntlChar::istitle("?"));
// Latin Capital Letter D with Small Letter Z with Caron U+01C5
var_dump(IntlChar::istitle("?"));
// Latin Small Letter Dz with Caron U+01C6
var_dump(IntlChar::istitle("?"));

// Greek Capital Letter Alpha with Prosgegrammeni U+1FBC
var_dump(IntlChar::istitle("?"));
// Greek Small Letter Alpha with Ypogegrammeni U+1FB3
var_dump(IntlChar::istitle("?"));
// Greek Capital Letter Alpha U+0391
var_dump(IntlChar::istitle("?"));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Veja Também

  • IntlChar::isupper() - Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)
  • IntlChar::islower() - Verifica se um ponto de código é uma letra minúscula
  • IntlChar::totitle() - Transforma o caractere Unicode em letra de título


Verifica se um ponto de código tem a propriedade Alphabetic do Unicode

  • « IntlChar::istitle
  • IntlChar::isULowercase »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código tem a propriedade Alphabetic do Unicode

IntlChar::isUAlphabetic

(PHP 7, PHP 8)

IntlChar::isUAlphabetic — Verifica se um ponto de código tem a propriedade Alphabetic do Unicode

Descrição

public static IntlChar::isUAlphabetic(int|string $codepoint): ?bool

Verifica se um ponto de código tem a propriedade Alphabetic do Unicode.

É o mesmo que IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_ALPHABETIC)

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint tiver a propriedade Alphabetic do Unicode, false se não tiver. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isUAlphabetic("A"));
var_dump(IntlChar::isUAlphabetic("1"));
var_dump(IntlChar::isUAlphabetic("\u{2603}"));
?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(false)

Veja Também

  • IntlChar::isalpha() - Verifica se um ponto de código é uma letra
  • IntlChar::hasBinaryProperty() - Verifica uma propriedade binária Unicode para um ponto de código
  • IntlChar::PROPERTY_ALPHABETIC


Verifica se um ponto de código tem a propriedade Lowercase do Unicode

  • « IntlChar::isUAlphabetic
  • IntlChar::isupper »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código tem a propriedade Lowercase do Unicode

IntlChar::isULowercase

(PHP 7, PHP 8)

IntlChar::isULowercase — Verifica se um ponto de código tem a propriedade Lowercase do Unicode

Descrição

public static IntlChar::isULowercase(int|string $codepoint): ?bool

Verifica se um ponto de código tem a propriedade Lowercase do Unicode.

É o mesmo que IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_LOWERCASE)

Nota:

É diferente de IntlChar::islower() e retornará true para mais caracteres.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint tiver a propriedade Lowercase do Unicode, false se não tiver. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isULowercase("A"));
var_dump(IntlChar::isULowercase("a"));
var_dump(IntlChar::isULowercase("F"));
var_dump(IntlChar::isULowercase("f"));
var_dump(IntlChar::isULowercase("1"));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Veja Também

  • IntlChar::islower() - Verifica se um ponto de código é uma letra minúscula
  • IntlChar::hasBinaryProperty() - Verifica uma propriedade binária Unicode para um ponto de código
  • IntlChar::PROPERTY_LOWERCASE


Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)

  • « IntlChar::isULowercase
  • IntlChar::isUUppercase »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)

IntlChar::isupper

(PHP 7, PHP 8)

IntlChar::isupper — Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)

Descrição

public static IntlChar::isupper(int|string $codepoint): ?bool

Determina se o ponto de código especificado tem a categoria geral "Lu" (letra maiúscula).

Nota:

Esta função deixa passar alguns caracteres que também são letras maiúsculas mas têm um valor diferente de categoria geral. Para incluir esses, use IntlChar::isUUppercase().

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for uma letra maiúscula (Lu), false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isupper("A"));
var_dump(IntlChar::isupper("a"));
var_dump(IntlChar::isupper("F"));
var_dump(IntlChar::isupper("f"));
var_dump(IntlChar::isupper("1"));
?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Veja Também

  • IntlChar::islower() - Verifica se um ponto de código é uma letra minúscula
  • IntlChar::istitle() - Verifica se um ponto de código é uma letra com grafia mista
  • IntlChar::tolower() - Transforma o caractere Unicode em minúscula
  • IntlChar::toupper() - Transforma um caractere Unicode em maiúscula
  • IntlChar::PROPERTY_UPPERCASE
  • ctype_upper() - Verifica se os caracteres são maiúsculos


Veririca se um ponto de código tem a propriedade Uppercase do Unicode

  • « IntlChar::isupper
  • IntlChar::isUWhiteSpace »
  • PHP Manual
  • IntlChar
  • Veririca se um ponto de código tem a propriedade Uppercase do Unicode

IntlChar::isUUppercase

(PHP 7, PHP 8)

IntlChar::isUUppercase — Veririca se um ponto de código tem a propriedade Uppercase do Unicode

Descrição

public static IntlChar::isUUppercase(int|string $codepoint): ?bool

Verifica se um ponto de código tem a propriedade Uppercase do Unicode.

É o mesmo que IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_UPPERCASE)

Nota:

É diferente de IntlChar::isupper() e retornará true para mais caracteres.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint tiver a propriedade Uppercase do Unicode, false se não tiver. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isUUppercase("A"));
var_dump(IntlChar::isUUppercase("a"));
var_dump(IntlChar::isUUppercase("F"));
var_dump(IntlChar::isUUppercase("f"));
var_dump(IntlChar::isUUppercase("1"));
?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Veja Também

  • IntlChar::isupper() - Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)
  • IntlChar::hasBinaryProperty() - Verifica uma propriedade binária Unicode para um ponto de código
  • IntlChar::PROPERTY_UPPERCASE


Verifica se um ponto de código tem a propriedade White_Space do Unicode

  • « IntlChar::isUUppercase
  • IntlChar::isWhitespace »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código tem a propriedade White_Space do Unicode

IntlChar::isUWhiteSpace

(PHP 7, PHP 8)

IntlChar::isUWhiteSpace — Verifica se um ponto de código tem a propriedade White_Space do Unicode

Descrição

public static IntlChar::isUWhiteSpace(int|string $codepoint): ?bool

Verifica se um ponto de código tem a propriedade White_Space do Unicode.

É o mesmo que IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_WHITE_SPACE)

Nota:

É diferente de IntlChar::isspace() e de IntlChar::isWhitespace().

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint tiver a propriedade White_Space do Unicode, false se não tiver. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isUWhiteSpace("A"));
var_dump(IntlChar::isUWhiteSpace(" "));
var_dump(IntlChar::isUWhiteSpace("\n"));
var_dump(IntlChar::isUWhiteSpace("\t"));
var_dump(IntlChar::isUWhiteSpace("\u{00A0}"));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)

Veja Também

  • IntlChar::isspace() - Verifica se um ponto de código é um caractere de espaçamento
  • IntlChar::isWhitespace() - Verifica se um ponto de código é um caractere de espaço em branco de acordo com a ICU
  • IntlChar::isJavaSpaceChar() - Veririca se um ponto de código é um caractere de espaçamento de acordo com o Java
  • IntlChar::hasBinaryProperty() - Verifica uma propriedade binária Unicode para um ponto de código
  • IntlChar::PROPERTY_WHITE_SPACE


Verifica se um ponto de código é um caractere de espaço em branco de acordo com a ICU

  • « IntlChar::isUWhiteSpace
  • IntlChar::isxdigit »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um caractere de espaço em branco de acordo com a ICU

IntlChar::isWhitespace

(PHP 7, PHP 8)

IntlChar::isWhitespace — Verifica se um ponto de código é um caractere de espaço em branco de acordo com a ICU

Descrição

public static IntlChar::isWhitespace(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um caractere de espaço em branco de acordo com a ICU.

Um caractere é considerado como um espaço em branco pela ICU se e somente se satisfizer um dos seguintes critérios:

  • É um caractere separador Unicode (categorias "Z" = "Zs" ou "Zl" ou "Zp"), mas não pode ser também um espaço sem quebra (U+00A0 NBSP ou U+2007 Figure Space ou U+202F Narrow NBSP).
  • É um U+0009 HORIZONTAL TABULATION.
  • É um U+000A LINE FEED.
  • É um U+000B VERTICAL TABULATION.
  • É um U+000C FORM FEED.
  • É um U+000D CARRIAGE RETURN.
  • É um U+001C FILE SEPARATOR.
  • É um U+001D GROUP SEPARATOR.
  • É um U+001E RECORD SEPARATOR.
  • É um U+001F UNIT SEPARATOR.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere de espaço em branco de acordo com a ICU, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::iswhitespace("A"));
var_dump(IntlChar::iswhitespace(" "));
var_dump(IntlChar::iswhitespace("\n"));
var_dump(IntlChar::iswhitespace("\t"));
var_dump(IntlChar::iswhitespace("\u{00A0}"));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)

Veja Também

  • IntlChar::isspace() - Verifica se um ponto de código é um caractere de espaçamento
  • IntlChar::isJavaSpaceChar() - Veririca se um ponto de código é um caractere de espaçamento de acordo com o Java
  • IntlChar::isUWhiteSpace() - Verifica se um ponto de código tem a propriedade White_Space do Unicode


Verifica se um ponto de código é um dígito hexadecimal

  • « IntlChar::isWhitespace
  • IntlChar::ord »
  • PHP Manual
  • IntlChar
  • Verifica se um ponto de código é um dígito hexadecimal

IntlChar::isxdigit

(PHP 7, PHP 8)

IntlChar::isxdigit — Verifica se um ponto de código é um dígito hexadecimal

Descrição

public static IntlChar::isxdigit(int|string $codepoint): ?bool

Determina se o ponto de código especificado é um dígito hexadecimal.

true para caracteres com categoria geral "Nd" (números de dígitos decimais) e também para letras latinas a-f e A-F tanto em ASCII quanto em ASCII de largura completa. (Isto é, para letras com pontos de código 0041..0046, 0061..0066, FF21..FF26, FF41..FF46.)

É equivalente a IntlChar::digit($codepoint, 16) >= 0.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna true se codepoint for um caractere hexadecimal, false se não for. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::isxdigit("A"));
var_dump(IntlChar::isxdigit("1"));
var_dump(IntlChar::isxdigit("\u{2603}"));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)

Notas

Nota:

In order to narrow the definition of hexadecimal digits to only ASCII characters use:

<?php
$isASCIIHexadecimal = IntlChar::ord($codepoint) <= 0x7F && IntlChar::isxdigit($codepoint);
?>

Veja Também

  • IntlChar::isdigit() - Verifica se um ponto de código é um caractere de dígito
  • ctype_xdigit() - Verifica se os caracteres representam um dígito hexadecimal


Retorna o valor do ponto de código Unicode do caractere

  • « IntlChar::isxdigit
  • IntlChar::tolower »
  • PHP Manual
  • IntlChar
  • Retorna o valor do ponto de código Unicode do caractere

IntlChar::ord

(PHP 7, PHP 8)

IntlChar::ord — Retorna o valor do ponto de código Unicode do caractere

Descrição

public static IntlChar::ord(int|string $character): ?int

Retorna o valor do ponto de código Unicode do caractere fornecido.

Esta função é complementar à IntlChar::chr().

Parâmetros

character

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna o valor do ponto de código Unicode como um inteiro.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::ord("A"));
var_dump(IntlChar::ord(" "));
var_dump(IntlChar::ord("\u{2603}"));
?>

O exemplo acima produzirá:

int(65)
int(32)
int(9731)

Veja Também

  • IntlChar::chr() - Retorna um caractere Unicode por valor de ponto de código
  • mb_ord() - Obtém o ponto de código Unicode do caractere
  • ord() - Converte o primeiro byte de uma string para um valor entre 0 e 255


Transforma o caractere Unicode em minúscula

  • « IntlChar::ord
  • IntlChar::totitle »
  • PHP Manual
  • IntlChar
  • Transforma o caractere Unicode em minúscula

IntlChar::tolower

(PHP 7, PHP 8)

IntlChar::tolower — Transforma o caractere Unicode em minúscula

Descrição

public static IntlChar::tolower(int|string $codepoint): int|string|null

O caractere é mapeado para a sua letra minúscula equivalente. Se o caractere não tiver minúscula equivalente, o caractere original em si é retornado.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna o mapeamento do tipo Simple_Lowercase_Mapping do ponto de código, se houver; caso contrário, o próprio ponto de código. Retorna null em caso de falha.

O tipo do retorno é int, a menos que o ponto de código tenha sido passado como uma string UTF-8, caso em que uma string é retornada. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::tolower("A"));
var_dump(IntlChar::tolower("a"));
var_dump(IntlChar::tolower("F"));
var_dump(IntlChar::tolower("f"));
var_dump(IntlChar::tolower("1"));
var_dump(IntlChar::tolower(ord("A")));
var_dump(IntlChar::tolower(ord("a")));
?>

O exemplo acima produzirá:

string(1) "a"
string(1) "a"
string(2) "f"
string(2) "f"
string(1) "1"
int(97)
int(97)

Veja Também

  • IntlChar::totitle() - Transforma o caractere Unicode em letra de título
  • IntlChar::toupper() - Transforma um caractere Unicode em maiúscula
  • mb_strtolower() - Torna uma string minúscula


Transforma o caractere Unicode em letra de título

  • « IntlChar::tolower
  • IntlChar::toupper »
  • PHP Manual
  • IntlChar
  • Transforma o caractere Unicode em letra de título

IntlChar::totitle

(PHP 7, PHP 8)

IntlChar::totitle — Transforma o caractere Unicode em letra de título

Descrição

public static IntlChar::totitle(int|string $codepoint): int|string|null

O caractere informado é mapeado para seu equivalente em letra de título. Se o caractere não tiver letra de título equivalente, o caractere original em si é retornado.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna o mapeamento Simple_Titlecase_Mapping do ponto de código, se houver; caso contrário, o próprio ponto de código. Retorna null em caso de falha.

O tipo do retorno é int, a menos que o ponto de código tenha sido passado como uma string UTF-8, caso em que uma string é retornada. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::totitle("?"));
var_dump(IntlChar::totitle("?"));
var_dump(IntlChar::totitle("F"));
var_dump(IntlChar::totitle("f"));
var_dump(IntlChar::totitle("1"));
var_dump(IntlChar::totitle("?");
var_dump(IntlChar::totitle(ord("A")));
?>

O exemplo acima produzirá:

string(1) "?"
string(1) "?"
string(2) "F"
string(2) "f"
string(1) "1"
string(1) "?"
int(65)

Veja Também

  • IntlChar::tolower() - Transforma o caractere Unicode em minúscula
  • IntlChar::toupper() - Transforma um caractere Unicode em maiúscula
  • IntlChar::istitle() - Verifica se um ponto de código é uma letra com grafia mista
  • mb_convert_case() - Realiza a conversão de caixa em uma string


Transforma um caractere Unicode em maiúscula

  • « IntlChar::totitle
  • IntlException »
  • PHP Manual
  • IntlChar
  • Transforma um caractere Unicode em maiúscula

IntlChar::toupper

(PHP 7, PHP 8)

IntlChar::toupper — Transforma um caractere Unicode em maiúscula

Descrição

public static IntlChar::toupper(int|string $codepoint): int|string|null

O caractere fornecido é mapeado para seu equivalente maiúsuculo. Se o caractere não tiver equivalente maiúsculo, o próprio caractere é retornado.

Parâmetros

codepoint

O valor int do ponto de código (por exemplo, 0x2603 para U+2603 SNOWMAN) ou o caractere codificado como uma string UTF-8 (por exemplo, "\u{2603}").

Valor Retornado

Retorna o mapeamento Simple_Uppercase_Mapping do ponto de código, se houver; caso contrário o próprio ponto de código.

O tipo do retorno é int, a menos que o ponto de código tenha sido passado como uma string UTF-8, caso em que uma string é retornada. Retorna null em caso de falha.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
var_dump(IntlChar::toupper("A"));
var_dump(IntlChar::toupper("a"));
var_dump(IntlChar::toupper("F"));
var_dump(IntlChar::toupper("f"));
var_dump(IntlChar::toupper("1"));
var_dump(IntlChar::toupper(ord("A")));
var_dump(IntlChar::toupper(ord("a")));
?>

O exemplo acima produzirá:

string(1) "A"
string(1) "A"
string(2) "F"
string(2) "F"
string(1) "1"
int(65)
int(65)

Veja Também

  • IntlChar::tolower() - Transforma o caractere Unicode em minúscula
  • IntlChar::totitle() - Transforma o caractere Unicode em letra de título
  • mb_strtoupper() - Faz uma string ficar em maiúsculas


Classe de exceção para erros da extensão Intl

(PHP 5 > 5.5.0, PHP 7, PHP 8, PECL intl > 3.0.0a1)

Introdução

Esta classe é usada para gerar exceções quando erros ocorrerem dentro das funções Intl. Tais exceções somente são geradas quando a opção intl.use_exceptions estiver habilitada.

Resumo da classe

class IntlException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe IntlIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

Essa classe representa objetos iteradores em toda extensão intl sempre que o iterador não puder ser identificado com qualquer outro objeto fornecido pela extensão. O objeto iterador distinto usado internamente pelo construtor foreach só pode ser obtido (na parte relevante aqui) a partir de objetos, então objetos dessa classe tem o propósito de fornecer o gancho através da qual este objeto interno pode ser obtido. Como uma conveniência, essa classe também implementa a interface Iterator, permitindo que a coleção de valores sejam navegados usando os métodos definidos nessa interface. Ambos os métodos e objetos iteradores internos fornecidos pelo foreach são apoiados pelo mesmo estado (ex. a posição do iterador e o seu valor atual).

As subclasses podem fornecer funcionalidades mais valiosas.

Resumo da classe

class IntlIterator implements Iterator {
/* Métodos */
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
}

Índice

  • IntlIterator::current — Retorna o elemento atual
  • IntlIterator::key — Retorna a chave do elemento atual
  • IntlIterator::next — Avança para o próximo elemento
  • IntlIterator::rewind — Rebobina o iterador para o primeiro elemento
  • IntlIterator::valid — Verifica se a posição atual é válida


Retorna o elemento atual

  • « IntlIterator
  • IntlIterator::key »
  • PHP Manual
  • IntlIterator
  • Retorna o elemento atual

IntlIterator::current

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::current — Retorna o elemento atual

Descrição

public IntlIterator::current(): mixed

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retorna a chave do elemento atual

  • « IntlIterator::current
  • IntlIterator::next »
  • PHP Manual
  • IntlIterator
  • Retorna a chave do elemento atual

IntlIterator::key

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::key — Retorna a chave do elemento atual

Descrição

public IntlIterator::key(): mixed

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Avança para o próximo elemento

  • « IntlIterator::key
  • IntlIterator::rewind »
  • PHP Manual
  • IntlIterator
  • Avança para o próximo elemento

IntlIterator::next

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::next — Avança para o próximo elemento

Descrição

public IntlIterator::next(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Rebobina o iterador para o primeiro elemento

  • « IntlIterator::next
  • IntlIterator::valid »
  • PHP Manual
  • IntlIterator
  • Rebobina o iterador para o primeiro elemento

IntlIterator::rewind

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::rewind — Rebobina o iterador para o primeiro elemento

Descrição

public IntlIterator::rewind(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Verifica se a posição atual é válida

  • « IntlIterator::rewind
  • Funções de Intl »
  • PHP Manual
  • IntlIterator
  • Verifica se a posição atual é válida

IntlIterator::valid

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::valid — Verifica se a posição atual é válida

Descrição

public IntlIterator::valid(): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Funções de Intl

Índice

  • intl_error_name — Obtém nome simbólico para um código de erro informado
  • intl_get_error_code — Obtém o último código de erro
  • intl_get_error_message — Obtém a descrição do último erro
  • intl_is_failure — Verifica se o código de erro fornecido indica falha


Obtém nome simbólico para um código de erro informado

  • « Funções de Intl
  • intl_get_error_code »
  • PHP Manual
  • Funções de Intl
  • Obtém nome simbólico para um código de erro informado

intl_error_name

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

intl_error_name — Obtém nome simbólico para um código de erro informado

Descrição

intl_error_name(int $errorCode): string

Retorna o nome do código de erro ICU.

Parâmetros

errorCode

Código de erro ICU.

Valor Retornado

A string retornada será igual ao nome da constante do código de erro..

Exemplos

Exemplo #1 Exemplo de intl_error_name()

<?php
$coll = collator_create( 'en_RU' );
$err_code = collator_get_error_code( $coll );

printf( "Nome simbólico para %d é %s\n.", $err_code, intl_error_name( $err_code ) );
?>

O exemplo acima produzirá algo semelhante a:

Nome simbólico para -128 é U_USING_FALLBACK_WARNING.

Veja Também

  • intl_is_failure() - Verifica se o código de erro fornecido indica falha
  • intl_get_error_code() - Obtém o último código de erro
  • intl_get_error_message() - Obtém a descrição do último erro


Obtém o último código de erro

  • « intl_error_name
  • intl_get_error_message »
  • PHP Manual
  • Funções de Intl
  • Obtém o último código de erro

intl_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

intl_get_error_code — Obtém o último código de erro

Descrição

intl_get_error_code(): int

Útil para lidar com erros ocorridos em métods estáticos quando não existe objeto a partir do qual o erro seria obtido.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Código de erro retornado pela última chamada de função da API.

Exemplos

Exemplo #1 Exemplo de intl_get_error_code()

<?php
$coll = collator_create( '<bad_param>' );
if( !$coll ) {
handle_error( intl_get_error_code() );
}
?>

Veja Também

  • intl_is_failure() - Verifica se o código de erro fornecido indica falha
  • intl_error_name() - Obtém nome simbólico para um código de erro informado
  • intl_get_error_message() - Obtém a descrição do último erro
  • collator_get_error_code() - Obtém o último código de erro do agrupador
  • numfmt_get_error_code() - Obtém o último código de erro do formatador


Obtém a descrição do último erro

  • « intl_get_error_code
  • intl_is_failure »
  • PHP Manual
  • Funções de Intl
  • Obtém a descrição do último erro

intl_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

intl_get_error_message — Obtém a descrição do último erro

Descrição

intl_get_error_message(): string

Obtém mensagem de erro da última função de internacionalização chamada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Descrição de um erro ocorrido na última chamada de função da API.

Exemplos

Exemplo #1 Exemplo de intl_get_error_message()

<?php
if( Collator::getAvailableLocales() === false ) {
show_error( intl_get_error_message() );
}
?>

Veja Também

  • intl_error_name() - Obtém nome simbólico para um código de erro informado
  • intl_get_error_code() - Obtém o último código de erro
  • intl_is_failure() - Verifica se o código de erro fornecido indica falha
  • collator_get_error_message() - Obtém o texto para o último código de erro do agrupador
  • numfmt_get_error_message() - Obtém a última mensagem de erro do formatador


Verifica se o código de erro fornecido indica falha

  • « intl_get_error_message
  • String Multibyte »
  • PHP Manual
  • Funções de Intl
  • Verifica se o código de erro fornecido indica falha

intl_is_failure

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

intl_is_failure — Verifica se o código de erro fornecido indica falha

Descrição

intl_is_failure(int $errorCode): bool

Verifica se o código de erro fornecido indica falha

Parâmetros

errorCode

É um valor retornado pelas funções intl_get_error_code() ou collator_get_error_code() .

Valor Retornado

true se o código indica alguma falha e false em caso de sucesso ou de um alerta.

Exemplos

Exemplo #1 Exemplo de intl_is_failure()

<?php
function check( $err_code )
{
var_export( intl_is_failure( $err_code ) );
echo "\n";
}

check( U_ZERO_ERROR );
check( U_USING_FALLBACK_WARNING );
check( U_ILLEGAL_ARGUMENT_ERROR );
?>

O exemplo acima produzirá algo semelhante a:

false
false
true

Veja Também

  • intl_get_error_code() - Obtém o último código de erro
  • collator_get_error_code() - Obtém o último código de erro do agrupador
  • Collator-getErrorCode() - Obtém o último código de erro do agrupador


String Multibyte

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Sumários de Codificações Suportadas
  • Noções Básicas de Codificações Multibyte Japonesas
  • Entrada e Saída HTTP
  • Codificações de Caracteres Suportadas
  • Recurso de Sobrecarga de Funções
  • Requisitos de Codificação de Caracteres em PHP
  • Strings Multibyte e Funções
    • mb_check_encoding — Verifica se as strings são válidas para a codificação especificada
    • mb_chr — Retorna um caractere pelo valor do ponto de código Unicode
    • mb_convert_case — Realiza a conversão de caixa em uma string
    • mb_convert_encoding — Converte uma string de uma codificação de caracteres para outra
    • mb_convert_kana — Converte "kana" de um tipo para outro ("zen-kaku", "han-kaku" e mais)
    • mb_convert_variables — Converte o código de caracteres em variável(is)
    • mb_decode_mimeheader — Decodifica string no campo de cabeçalho MIME
    • mb_decode_numericentity — Decodifica referência de string numérica HTML para caractere
    • mb_detect_encoding — Detectar a codificação de caracteres
    • mb_detect_order — Define/Obtém a ordem de detecção de codificação de caracteres
    • mb_encode_mimeheader — Codificar string para cabeçalho MIME
    • mb_encode_numericentity — Codificar caractere para referência numérica HTML
    • mb_encoding_aliases — Obtém aliases de um tipo de codificação conhecido
    • mb_ereg_match — Coincidência de expressão regular para string multibyte
    • mb_ereg_replace_callback — Realiza uma busca e substituição de expressão regular com suporte a string multibyte usando um callback
    • mb_ereg_replace — Substituir expressão regular com suporte a multibyte
    • mb_ereg_search_getpos — Retorna o ponto de início para a próxima correspondência de expressão regular
    • mb_ereg_search_getregs — Recupera o resultado da última correspondência de expressão regular multibyte
    • mb_ereg_search_init — Configura a string e a expressão regular para uma correspondência de expressão regular multibyte
    • mb_ereg_search_pos — Retorna a posição e o comprimento de uma parte correspondida da expressão regular multibyte para uma string multibyte predefinida
    • mb_ereg_search_regs — Retorna a parte correspondida de uma expressão regular multibyte
    • mb_ereg_search_setpos — Define o ponto de início para a próxima correspondência de expressão regular
    • mb_ereg_search — Correspondência de expressão regular multibyte para uma string multibyte predefinida
    • mb_ereg — Correspondência de expressão regular com suporte multibyte
    • mb_eregi_replace — Substituir expressão regular com suporte multibyte, ignorando maiúsculas e minúsculas
    • mb_eregi — Correspondência de expressão regular sem diferenciar maiúsculas e minúsculas com suporte multibyte
    • mb_get_info — Obtém configurações internas do mbstring
    • mb_http_input — Detecta a codificação de caracteres de entrada HTTP
    • mb_http_output — Define/Obtém a codificação de caracteres de saída HTTP
    • mb_internal_encoding — Define/Obtém a codificação de caracteres interna
    • mb_language — Define/Obtém o idioma atual
    • mb_list_encodings — Retorna um array de todas as codificações suportadas
    • mb_ord — Obtém o ponto de código Unicode do caractere
    • mb_output_handler — Callback converte a codificação de caracteres no buffer de saída
    • mb_parse_str — Analisa dados GET/POST/COOKIE e define variável global
    • mb_preferred_mime_name — Obter uma string MIME charset
    • mb_regex_encoding — Define/Obtém codificação de caracteres para regex multibyte
    • mb_regex_set_options — Define/Obtém as opções padrão para funções mbregex
    • mb_scrub — Substitui sequências de bytes malformadas pelo caractere substituto
    • mb_send_mail — Envia email codificado
    • mb_split — Divide uma string multibyte usando expressão regular
    • mb_str_pad — Preenche uma string multibyte para um comprimento específico com outra string multibyte
    • mb_str_split — Dada uma string multibyte, retorna um array de seus caracteres
    • mb_strcut — Obtém parte da string
    • mb_strimwidth — Obtém string truncada com largura especificada
    • mb_stripos — Encontra a posição da primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
    • mb_stristr — Encontra a primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
    • mb_strlen — Obtém o comprimento da string
    • mb_strpos — Encontrar a posição da primeira ocorrência de uma string em outra
    • mb_strrchr — Encontrar a última ocorrência de um caractere em uma string dentro de outra
    • mb_strrichr — Encontra a última ocorrência de um caractere em uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
    • mb_strripos — Encontra a posição da última ocorrência de uma string em outra, sem diferenciar maiúsculas de minúsculas
    • mb_strrpos — Encontra a posição da última ocorrência de uma string em outra string
    • mb_strstr — Encontra a primeira ocorrência de uma string em outra
    • mb_strtolower — Torna uma string minúscula
    • mb_strtoupper — Faz uma string ficar em maiúsculas
    • mb_strwidth — Retorna a largura da string
    • mb_substitute_character — Define/Obtém caractere de substituição
    • mb_substr_count — Conta o número de ocorrências de substring
    • mb_substr — Obtém parte da string


Introdução

Embora existam muitas linguagens nas quais cada caractere necessário pode ser representado por um mapeamento de um para um para um valor de 8 bits, há também várias linguagens que exigem tantos caracteres para a comunicação escrita que não podem ser contidos dentro da faixa que um simples byte pode codificar (um byte é composto por oito bits. Cada bit pode conter apenas dois valores distintos, um ou zero. Devido a isso, um byte só pode representar 256 valores únicos (dois elevado à potência de oito)). Esquemas de codificação de caracteres multibyte foram desenvolvidos para expressar mais de 256 caracteres no sistema de codificação de bytes regular.

Ao manipular (cortar, dividir, emendar, etc.) strings codificadas em uma codificação multibyte, você precisa usar funções especiais, pois dois ou mais bytes consecutivos podem representar um único caractere em tais esquemas de codificação. Caso contrário, se você aplicar uma função de string que não é sensível a multibyte à string, ela provavelmente falhará em detectar o início ou o final do caractere multibyte e acabará com uma string corrompida e inútil que provavelmente perde seu significado original.

mbstring fornece funções de string específicas para multibyte que ajudam a lidar com codificações multibyte em PHP. Além disso, mbstring lida com a conversão de codificação de caracteres entre os pares de codificação possíveis. mbstring é projetada para lidar com codificações baseadas em Unicode, como UTF-8 e UCS-2, e muitas codificações de byte único por conveniência (listadas em Codificações de Caracteres Suportadas).


Instalação

mbstring é uma extensão não padrão. Isso significa que ela não está habilitada por padrão. Você deve habilitar explicitamente o módulo com a opção configure. Veja a seção Instalação para detalhes.

As seguintes opções de configuração estão relacionadas ao módulo mbstring.

  • --enable-mbstring: Habilita as funções do mbstring. Esta opção é necessária para usar as funções do mbstring.

    libmbfl é necessário para o mbstring. libmbfl é incluído com o mbstring. Antes do PHP 7.3.0, se libmbfl já está instalado no sistema, --with-libmbfl[=DIR] pode ser especificado para usar a biblioteca instalada.

  • --disable-mbregex: Desabilita funções de expressão regular com suporte a caracteres multibyte.

    Oniguruma é necessário para as funções de expressão regular com suporte a caracteres multibyte. A partir do PHP 7.4.0, pkg-config é usado para detectar a biblioteca libonig. Antes do PHP 7.4.0, Oniguruma estava incluído com o mbstring, mas era possível compilá-lo com uma libonig já instalada passando --with-onig[=DIR].

    É possível desabilitar a verificação de retrocesso multibyte na expressão regular especificando --disable-mbregex-backtrack.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração do mbstring
Nome | Padrão | Modificável | Registro de Alterações
mbstring.language | "neutral" | INI_ALL |
mbstring.detect_order | NULL | INI_ALL |
mbstring.http_input | "pass" | INI_ALL | Descontinuado
mbstring.http_output | "pass" | INI_ALL | Descontinuado
mbstring.internal_encoding | NULL | INI_ALL | Descontinuado
mbstring.substitute_character | NULL | INI_ALL |
mbstring.func_overload | "0" | INI_SYSTEM | Descontinuado a partir do PHP 7.2.0; removido a partir do PHP 8.0.0.
mbstring.encoding_translation | "0" | INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | INI_ALL |
mbstring.strict_detection | "0" | INI_ALL |
mbstring.regex_retry_limit | "1000000" | INI_ALL | Disponível a partir do PHP 7.4.0.
mbstring.regex_stack_limit | "100000" | INI_ALL | Disponível a partir do PHP 7.3.5.
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

mbstring.language string

A configuração padrão do idioma nacional (NLS) usada no mbstring. Note que esta opção define automaticamente mbstring.internal_encoding e mbstring.internal_encoding deve ser colocada após mbstring.language no php.ini

mbstring.encoding_translation bool

Ativa o filtro de codificação de caracteres transparente para as consultas HTTP de entrada, que realiza a detecção e conversão da codificação de entrada para a codificação de caracteres interna.

mbstring.internal_encoding string
Aviso

Este recurso defasado certamente será removido no futuro.

Define a codificação de caracteres interna padrão.

Os usuários devem deixar isso vazio e definir default_charset em vez disso.

mbstring.http_input string
Aviso

Este recurso defasado certamente será removido no futuro.

Define a codificação de caracteres de entrada HTTP padrão.

Os usuários devem deixar isso vazio e definir default_charset em vez disso.

mbstring.http_output string
Aviso

Este recurso defasado certamente será removido no futuro.

Define a codificação de caracteres de saída HTTP padrão (a saída será convertida da codificação interna para a codificação de saída HTTP na saída).

Os usuários devem deixar isso vazio e definir default_charset em vez disso.

mbstring.detect_order string

Define a ordem padrão de detecção de código de caracteres. Veja também mb_detect_order().

mbstring.substitute_character string

Define o caractere a ser substituído por codificação de caracteres inválida. Veja mb_substitute_character() para os valores suportados.

mbstring.func_overload string
Aviso

Este recurso tornou-se DEFASADO a partir do PHP 7.2.0 e foi REMOVIDO a partir do PHP 8.0.0. O uso deste recurso é fortemente desencorajado.

Sobrecarrega um conjunto de funções de byte único pelas contrapartes do mbstring. Veja Sobrecarga de Funções para mais informações.

Esta configuração só pode ser alterada no arquivo php.ini.

mbstring.http_output_conv_mimetypes string

mbstring.strict_detection bool

Ativa a detecção estrita de codificação. Veja mb_detect_encoding() para uma descrição e exemplos.

mbstring.regex_retry_limit int

Limita a quantidade de retrocesso que pode ser executada durante uma correspondência de mbregex.

Esta configuração só tem efeito ao vincular contra oniguruma >= 6.8.0.

mbstring.regex_stack_limit int

Limita a profundidade da pilha de expressões regulares mbstring.

De acordo com a » especificação HTML 4.01, os navegadores da web podem codificar um formulário sendo enviado com uma codificação de caracteres diferente da usada para a página. Veja mb_http_input() para detectar a codificação de caracteres usada pelos navegadores.

Embora os navegadores populares sejam capazes de fazer uma suposição razoavelmente precisa sobre a codificação de caracteres de um documento HTML específico, seria melhor definir o parâmetro charset no cabeçalho HTTP Content-Type para o valor apropriado usando a função header() ou a configuração ini default_charset.

Exemplo #1 Exemplos de configuração do php.ini

; 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 according to mbstring.language
mbstring.http_input           = SJIS    ; Set HTTP 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

Exemplo #2 php.ini configuração para usuários EUC-JP

;; 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

Exemplo #3 php.ini configuração para usuários SJIS

;; 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


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

MB_OVERLOAD_MAIL (int)
Removido a partir do PHP 8.0.0
MB_OVERLOAD_STRING (int)
Removido a partir do PHP 8.0.0
MB_OVERLOAD_REGEX (int)
Removido a partir do PHP 8.0.0
MB_CASE_UPPER (int)
Realiza uma dobragem completa em maiúsculas. Isso pode alterar o comprimento da string. Este é o modo usado por mb_strtoupper().
MB_CASE_LOWER (int)
Realiza uma dobragem completa em minúsculas. Isso pode alterar o comprimento da string. Este é o modo usado por mb_strtolower().
MB_CASE_TITLE (int)
Realiza uma conversão completa de título com base nas propriedades Unicode derivadas de Cased e CaseIgnorable. Em particular, isso melhora o manuseio de aspas e apóstrofos. Isso pode alterar o comprimento da string.
MB_CASE_FOLD (int)
Realiza uma conversão completa de dobragem de caso que remove distinções de caso presentes na string. Isso é usado para correspondência sem distinção de maiúsculas e minúsculas. Isso pode alterar o comprimento da string. Disponível desde o PHP 7.3.
MB_CASE_LOWER_SIMPLE (int)
Realiza uma conversão simples de dobragem em minúsculas. Isso não altera o comprimento da string. Disponível desde o PHP 7.3.
MB_CASE_UPPER_SIMPLE (int)
Realiza uma conversão simples de dobragem em maiúsculas. Isso não altera o comprimento da string. Disponível desde o PHP 7.3.
MB_CASE_TITLE_SIMPLE (int)
Realiza uma conversão simples de dobragem de título. Isso não altera o comprimento da string. Disponível desde o PHP 7.3.
MB_CASE_FOLD_SIMPLE (int)
Realiza uma conversão simples de dobragem de caso que remove distinções de caso presentes na string. Isso é usado para correspondência sem distinção de maiúsculas e minúsculas. Isso não altera o comprimento da string. Usado internamente pela extensão MBString em operações insensíveis a maiúsculas e minúsculas. Disponível desde o PHP 7.3.
MB_ONIGURUMA_VERSION (string)
A versão do Oniguruma, por exemplo, 6.9.4. Disponível desde o PHP 7.4.


Sumários de Codificações Suportadas

Sumários de Codificações Suportadas
Nome no registro de conjunto de caracteres da IANA | Conjunto de caracteres subjacente | Descrição | Nota Adicional
ISO-10646-UCS-4 | ISO 10646 | O Conjunto de Caracteres Universal com espaço de código de 31 bits, padronizado como UCS-4 pela ISO/IEC 10646. Mantido sincronizado com a versão mais recente do mapa de códigos Unicode. | Se este nome for usado na facilidade de conversão de codificação, o conversor tenta identificar pelo BOM precedente (marcador de ordem de byte) em qual endian os bytes subsequentes estão representados.
ISO-10646-UCS-4 | UCS-4 | Ver acima. | Ao contrário do UCS-4, as strings são sempre assumidas estar na forma big endian.
ISO-10646-UCS-4 | UCS-4 | Ver acima. | Ao contrário do UCS-4, as strings são sempre assumidas estar na forma little endian.
ISO-10646-UCS-2 | UCS-2 | O Conjunto de Caracteres Universal com espaço de código de 16 bits, padronizado como UCS-2 pela ISO/IEC 10646. Mantido sincronizado com a versão mais recente do mapa de códigos Unicode. | Se este nome for usado na facilidade de conversão de codificação, o conversor tenta identificar pelo BOM precedente (marcador de ordem de byte) em qual endian os bytes subsequentes estão representados.
ISO-10646-UCS-2 | UCS-2 | Ver acima. | Ao contrário do UCS-2, as strings são sempre assumidas estar na forma big endian.
ISO-10646-UCS-2 | UCS-2 | Ver acima. | Ao contrário do UCS-2, as strings são sempre assumidas estar na forma big endian.
UTF-32 | Unicode | Formato de Transformação Unicode de largura de unidade de 32 bits, cujo espaço de codificação refere-se ao padrão de conjunto de códigos Unicode. Este esquema de codificação não era idêntico ao UCS-4 porque o espaço de código do Unicode era limitado a um valor de 21 bits. | Se este nome for usado na facilidade de conversão de codificação, o conversor tenta identificar pelo BOM precedente (marcador de ordem de byte) em qual endian os bytes subsequentes estão representados.
UTF-32BE | Unicode | Ver acima | Ao contrário do UTF-32, as strings são sempre assumidas estar na forma big endian.
UTF-32LE | Unicode | Ver acima | Ao contrário do UTF-32, as strings são sempre assumidas estar na forma little endian.
UTF-16 | Unicode | Formato de Transformação Unicode de largura de unidade de 16 bits. Vale a pena observar que o UTF-16 não é mais a mesma especificação que UCS-2 porque o mecanismo de substituição foi introduzido desde o Unicode 2.0 e UTF-16 agora se refere a um espaço de código de 21 bits. | Se este nome for usado na facilidade de conversão de codificação, o conversor tenta identificar pelo BOM precedente (marcador de ordem de byte) em qual endian os bytes subsequentes estão representados.
UTF-16BE | Unicode | Ver acima. | Ao contrário do UTF-16, as strings são sempre assumidas estar na forma big endian.
UTF-16LE | Unicode | Ver acima. | Ao contrário do UTF-16, as strings são sempre assumidas estar na forma little endian.
UTF-8 | Unicode / UCS | Formato de Transformação Unicode de largura de unidade de 8 bits. | none
UTF-7 | Unicode | Um formato de transformação seguro para e-mails do Unicode, especificado em » RFC2152. | none
(none) | Unicode | Uma variante de UTF-7 especializada para uso no » protocolo IMAP. | none
US-ASCII (preferred MIME name) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII | ASCII / ISO 646 | Código Padrão Americano para Intercâmbio de Informações é uma codificação comumente usada de 7 bits. Também padronizado como um padrão internacional, ISO 646. | (none)
EUC-JP (preferred MIME name) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese | Compound of US-ASCII / JIS X0201:1997 (hankaku kana part) / JIS X0208:1990 / JIS X0212:1990 | Como você pode ver, o nome é derivado de uma abreviação de Formato Padrão de Código UNIX Packed para Japonês, esta codificação é principalmente usada em UNIX ou plataformas semelhantes. O esquema de codificação original, Extended UNIX Code, é projetado com base no ISO 2022. | O conjunto de caracteres referido pelo EUC-JP é diferente do IBM932 / CP932, que são usados pelo OS/2® e Microsoft® Windows®. Para a troca de informações com essas plataformas, use EUCJP-WIN em vez disso.
Shift_JIS (preferred MIME name) / MS_Kanji / csShift_JIS | Compound of JIS X0201:1997 / JIS X0208:1997 | Shift_JIS foi desenvolvido no início dos anos 80, na época dos processadores de palavras japoneses pessoais foram lançados no mercado, a fim de manter compatibilidades com o esquema de codificação legado JIS X 0201:1976. De acordo com a definição da IANA, o conjunto de códigos do Shift_JIS é ligeiramente diferente de IBM932 / CP932. No entanto, os nomes "SJIS" / "Shift_JIS" são frequentemente usados erroneamente para se referir a esses conjuntos de códigos. | Para o mapa de código CP932, use SJIS-WIN em vez disso.
(nenhum) | Composto de JIS X0201:1997 / JIS X0208:1997 / extensões IBM / extensões NEC | Embora esta "codificação" use o mesmo esquema de codificação que EUC-JP, o conjunto de caracteres subjacente é diferente. Ou seja, alguns pontos de código mapeiam para caracteres diferentes do EUC-JP. | nenhum
Windows-31J / csWindows31J | Composto de JIS X0201:1997 / JIS X0208:1997 / extensões IBM / extensões NEC | Embora esta "codificação" use o mesmo esquema de codificação que Shift_JIS, o conjunto de caracteres subjacente é diferente. Isso significa que alguns códigos pontos mapeiam para caracteres diferentes do Shift_JIS. | (none)
ISO-2022-JP (preferred MIME name) / csISO2022JP | US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983 | » RFC1468 | (nenhum)
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 |  |  |
ISO-8859-16 |  |  |
byte2be |  |  |
byte2le |  |  |
byte4be |  |  |
byte4le |  |  |
BASE64 |  |  |
HTML-ENTITIES |  |  |
7bit |  |  |
8bit |  |  |
EUC-CN |  |  |
CP936 |  |  |
HZ |  |  |
EUC-TW |  |  |
CP950 |  |  |
BIG-5 |  |  |
EUC-KR |  |  |
UHC (CP949) |  |  |
ISO-2022-KR |  |  |
Windows-1251 (CP1251) |  |  |
Windows-1252 (CP1252) |  |  |
CP866 (IBM866) |  |  |
KOI8-R |  |  |
KOI8-U |  |  |


Noções Básicas de Codificações Multibyte Japonesas

Os caracteres japoneses só podem ser representados por codificações multibyte, e vários padrões de codificação são usados dependendo da plataforma e da finalidade do texto. Para piorar a situação, esses padrões de codificação diferem um pouco um do outro. Para criar uma aplicação web que possa ser usada em um ambiente japonês, essas complexidades devem ser consideradas para garantir que as codificações de caracteres adequadas sejam usadas.

  • O armazenamento de um caractere pode ter até seis bytes.
  • A maioria dos caracteres multibyte japoneses aparece com o dobro da largura dos caracteres de byte único. Esses caracteres são chamados "zen-kaku" em japonês, que significa "largura total". Outros caracteres mais estreitos, são chamados "han-kaku", que significa "meia largura". As propriedades gráficas dos caracteres, no entanto, dependem das fontes usadas para exibi-los.
  • Algumas codificações de caracteres usam sequências de deslocamento (escape) definidas na ISO-2022 para alternar o mapa de código da área de código específica (00h a 7fh).
  • A ISO-2022-JP deve ser usada no SMTP/NNTP, e cabeçalhos e entidades devem ser recodificados de acordo com os requisitos da RFC. Embora esses não sejam requisitos, ainda é uma boa ideia porque vários agentes de usuário populares não podem reconhecer nenhum outro método de codificação.
  • As páginas web criadas para serviços de telefonia móvel, como » i-mode ou » EZweb devem usar Shift_JIS.
  • Emoji usados em serviços de telefonia móvel, como » i-mode ou » EZweb são suportados.


Entrada e Saída HTTP

A conversão de codificação de caracteres de entrada/saída HTTP pode converter dados binários também. Os usuários devem controlar a conversão de codificação de caracteres se dados binários forem usados para entrada/saída HTTP.

Nota:

Se enctype para o formulário HTML estiver configurado como multipart/form-data e mbstring.encoding_translation estiver ativado no php.ini, as variáveis POST'ed e os nomes dos arquivos enviados serão convertidos para a codificação de caracteres interna também. No entanto, a conversão não é aplicada às chaves de consulta.

  • Entrada HTTP

    Não há maneira de controlar a conversão de caracteres de entrada HTTP a partir de um script PHP. Para desativar a conversão de caracteres de entrada HTTP, isso deve ser feito no php.ini.

    Exemplo #1 Desative a conversão de entrada HTTP no php.ini

    ;; Disable HTTP Input conversion
mbstring.http_input = pass
;; Disable HTTP Input conversion
mbstring.encoding_translation = Off

    Ao usar o PHP como um módulo do Apache, é possível substituir essas configurações em cada diretiva Virtual Host no httpd.conf ou por diretório com .htaccess. Consulte a seção Configuração e o Manual do Apache para obter detalhes.

  • Saída HTTP

    Existem várias maneiras de habilitar a conversão de codificação de caracteres de saída. Uma é usando o php.ini, outra é usando ob_start() com mb_output_handler() como a ob_start função de retorno de chamada.

Exemplo #2 Exemplo de configuração no php.ini

;; 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

Exemplo #3 Exemplo de script

<?php

// Habilitar a conversão de codificação de caracteres de saída apenas para esta página

// Definir a codificação de caracteres de saída HTTP para SJIS
mb_http_output('SJIS');

// Iniciar o buffer e especificar "mb_output_handler" como
// função de callback
ob_start('mb_output_handler');

?>


Codificações de Caracteres Suportadas

Atualmente, as seguintes codificações de caracteres são suportadas pelo módulo mbstring. Qualquer uma dessas codificações pode ser especificada no parâmetro encoding das funções mbstring.

As seguintes codificações de caracteres são suportadas nesta extensão PHP:

  • UCS-4*
  • UCS-4BE
  • UCS-4LE*
  • UCS-2
  • UCS-2BE
  • UCS-2LE
  • UTF-32*
  • UTF-32BE*
  • UTF-32LE*
  • UTF-16*
  • UTF-16BE*
  • UTF-16LE*
  • UTF-7
  • UTF7-IMAP
  • UTF-8*
  • ASCII*
  • EUC-JP*
  • SJIS*
  • eucJP-win*
  • SJIS-win*
  • ISO-2022-JP
  • ISO-2022-JP-MS
  • CP932
  • CP51932
  • SJIS-mac (alias: MacJapanese)
  • SJIS-Mobile#DOCOMO (alias: SJIS-DOCOMO)
  • SJIS-Mobile#KDDI (alias: SJIS-KDDI)
  • SJIS-Mobile#SOFTBANK (alias: SJIS-SOFTBANK)
  • UTF-8-Mobile#DOCOMO (alias: UTF-8-DOCOMO)
  • UTF-8-Mobile#KDDI-A
  • UTF-8-Mobile#KDDI-B (alias: UTF-8-KDDI)
  • UTF-8-Mobile#SOFTBANK (alias: UTF-8-SOFTBANK)
  • ISO-2022-JP-MOBILE#KDDI (alias: ISO-2022-JP-KDDI)
  • JIS
  • JIS-ms
  • CP50220
  • CP50220raw
  • CP50221
  • CP50222
  • 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*
  • ISO-8859-16*
  • byte2be
  • byte2le
  • byte4be
  • byte4le
  • BASE64
  • HTML-ENTITIES (alias: HTML)
  • 7bit
  • 8bit
  • EUC-CN*
  • CP936
  • GB18030
  • HZ
  • EUC-TW*
  • CP950
  • BIG-5*
  • EUC-KR*
  • UHC (alias: CP949)
  • ISO-2022-KR
  • Windows-1251 (alias: CP1251)
  • Windows-1252 (alias: CP1252)
  • CP866 (alias: IBM866)
  • KOI8-R*
  • KOI8-U*
  • ArmSCII-8 (alias: ArmSCII8)

* denota codificações também utilizáveis em expressões regulares.

Qualquer entrada php.ini que aceite um nome de codificação também pode usar os valores "auto" e "pass". Funções mbstring que aceitam um nome de codificação também podem usar o valor "auto".

Se "pass" estiver definido, nenhuma conversão de codificação de caracteres será realizada.

Se "auto" estiver definido, ele é expandido para a lista de codificações definidas de acordo com o NLS. Por exemplo, se o NLS estiver definido como Japanese, o valor é assumido como "ASCII,JIS,UTF-8,EUC-JP,SJIS".

Veja também mb_detect_order()


Recurso de Sobrecarga de Funções

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 7.2.0 e foi REMOVIDO a partir do PHP 8.0.0. O uso deste recurso é fortemente desencorajado.

Você pode frequentemente encontrar dificuldades ao fazer com que uma aplicação PHP existente funcione em um ambiente multibyte específico. Isso acontece porque a maioria das aplicações PHP por aí são escritas com funções de string padrão como substr(), que são conhecidas por não lidar corretamente com strings codificadas em multibyte.

mbstring suporta um recurso de 'sobrecarga de funções' que permite adicionar suporte a multibyte a uma aplicação dessas sem modificar o código, sobrecarregando as contrapartes multibyte das funções de string padrão. Por exemplo, mb_substr() é chamada em vez de substr() se a sobrecarga de funções estiver ativada. Esse recurso facilita a migração de aplicações que suportam apenas codificações de byte único para um ambiente multibyte em muitos casos.

Para usar a sobrecarga de funções, defina mbstring.func_overload no php.ini para um valor positivo que represente uma combinação de máscaras de bits especificando as categorias de funções a serem sobrecarregadas. Deve ser definido como 1 para sobrecarregar a função mail(), 2 para funções de string, 4 para funções de expressão regular. Por exemplo, se for definido como 7, as funções de correio, strings e expressões regulares serão sobrecarregadas. A lista de funções sobrecarregadas é mostrada abaixo.

Funções a serem sobrecarregadas
valor de mbstring.func_overload | função original | função sobrecarregada
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 | stripos() | mb_stripos()
2 | strripos() | mb_strripos()
2 | strstr() | mb_strstr()
2 | stristr() | mb_stristr()
2 | strrchr() | mb_strrchr()
2 | substr_count() | mb_substr_count()

Nota:

Não é recomendado usar a opção de sobrecarga de funções no contexto por diretório, porque ainda não foi confirmado como sendo estável o suficiente em um ambiente de produção e pode levar a um comportamento indefinido.


Requisitos de Codificação de Caracteres em PHP

As codificações dos seguintes tipos são seguras para uso com o PHP.

  • Uma codificação de byte único,

    • que possui mapeamentos compatíveis com ASCII (compatíveis com ISO646) para os caracteres no intervalo de 00h a 7fh.

  • Uma codificação multibyte,

    • que possui mapeamentos compatíveis com ASCII para os caracteres no intervalo de 00h a 7fh.
    • que não usa sequências de escape ISO2022.
    • que não usa um valor de 00h a 7fh em nenhum dos bytes compostos que representam um único caractere.

Esses são exemplos de codificações de caracteres que provavelmente não funcionarão corretamente com o PHP.

JIS, SJIS, ISO-2022-JP, BIG-5

Embora scripts PHP escritos em qualquer uma dessas codificações possam não funcionar, especialmente no caso em que strings codificadas aparecem como identificadores ou literais no script, você pode evitar o uso dessas codificações configurando a função de filtro de codificação transparente do mbstring para consultas HTTP de entrada.

Nota:

É altamente desencorajado usar SJIS, BIG5, CP936, CP949 e GB18030 para a codificação interna, a menos que você esteja familiarizado com o analisador, o scanner e a codificação de caracteres.

Nota:

Se você estiver se conectando a um banco de dados com PHP, é recomendável que você use a mesma codificação de caracteres para tanto o banco de dados quanto o codificação interna para facilitar o uso e obter melhor desempenho.

Se estiver usando o PostgreSQL, a codificação de caracteres usada no banco de dados e aquela usada no PHP podem diferir, pois ele oferece suporte à conversão automática de conjunto de caracteres entre o backend e o frontend.


Strings Multibyte e Funções

Referências

Esquemas de codificação de caracteres multibyte e seus problemas relacionados são bastante complicados e estão além do escopo desta documentação. Consulte as seguintes URLs e outros recursos para obter mais informações sobre esses tópicos.

  • Materiais Unicode

    » http://www.unicode.org/

  • Informações sobre caracteres Japoneses/Coreanos/Chineses

    » https://resources.oreilly.com/examples/9781565922242/blob/master/doc/cjk.inf

Índice

  • mb_check_encoding — Verifica se as strings são válidas para a codificação especificada
  • mb_chr — Retorna um caractere pelo valor do ponto de código Unicode
  • mb_convert_case — Realiza a conversão de caixa em uma string
  • mb_convert_encoding — Converte uma string de uma codificação de caracteres para outra
  • mb_convert_kana — Converte "kana" de um tipo para outro ("zen-kaku", "han-kaku" e mais)
  • mb_convert_variables — Converte o código de caracteres em variável(is)
  • mb_decode_mimeheader — Decodifica string no campo de cabeçalho MIME
  • mb_decode_numericentity — Decodifica referência de string numérica HTML para caractere
  • mb_detect_encoding — Detectar a codificação de caracteres
  • mb_detect_order — Define/Obtém a ordem de detecção de codificação de caracteres
  • mb_encode_mimeheader — Codificar string para cabeçalho MIME
  • mb_encode_numericentity — Codificar caractere para referência numérica HTML
  • mb_encoding_aliases — Obtém aliases de um tipo de codificação conhecido
  • mb_ereg_match — Coincidência de expressão regular para string multibyte
  • mb_ereg_replace_callback — Realiza uma busca e substituição de expressão regular com suporte a string multibyte usando um callback
  • mb_ereg_replace — Substituir expressão regular com suporte a multibyte
  • mb_ereg_search_getpos — Retorna o ponto de início para a próxima correspondência de expressão regular
  • mb_ereg_search_getregs — Recupera o resultado da última correspondência de expressão regular multibyte
  • mb_ereg_search_init — Configura a string e a expressão regular para uma correspondência de expressão regular multibyte
  • mb_ereg_search_pos — Retorna a posição e o comprimento de uma parte correspondida da expressão regular multibyte para uma string multibyte predefinida
  • mb_ereg_search_regs — Retorna a parte correspondida de uma expressão regular multibyte
  • mb_ereg_search_setpos — Define o ponto de início para a próxima correspondência de expressão regular
  • mb_ereg_search — Correspondência de expressão regular multibyte para uma string multibyte predefinida
  • mb_ereg — Correspondência de expressão regular com suporte multibyte
  • mb_eregi_replace — Substituir expressão regular com suporte multibyte, ignorando maiúsculas e minúsculas
  • mb_eregi — Correspondência de expressão regular sem diferenciar maiúsculas e minúsculas com suporte multibyte
  • mb_get_info — Obtém configurações internas do mbstring
  • mb_http_input — Detecta a codificação de caracteres de entrada HTTP
  • mb_http_output — Define/Obtém a codificação de caracteres de saída HTTP
  • mb_internal_encoding — Define/Obtém a codificação de caracteres interna
  • mb_language — Define/Obtém o idioma atual
  • mb_list_encodings — Retorna um array de todas as codificações suportadas
  • mb_ord — Obtém o ponto de código Unicode do caractere
  • mb_output_handler — Callback converte a codificação de caracteres no buffer de saída
  • mb_parse_str — Analisa dados GET/POST/COOKIE e define variável global
  • mb_preferred_mime_name — Obter uma string MIME charset
  • mb_regex_encoding — Define/Obtém codificação de caracteres para regex multibyte
  • mb_regex_set_options — Define/Obtém as opções padrão para funções mbregex
  • mb_scrub — Substitui sequências de bytes malformadas pelo caractere substituto
  • mb_send_mail — Envia email codificado
  • mb_split — Divide uma string multibyte usando expressão regular
  • mb_str_pad — Preenche uma string multibyte para um comprimento específico com outra string multibyte
  • mb_str_split — Dada uma string multibyte, retorna um array de seus caracteres
  • mb_strcut — Obtém parte da string
  • mb_strimwidth — Obtém string truncada com largura especificada
  • mb_stripos — Encontra a posição da primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
  • mb_stristr — Encontra a primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
  • mb_strlen — Obtém o comprimento da string
  • mb_strpos — Encontrar a posição da primeira ocorrência de uma string em outra
  • mb_strrchr — Encontrar a última ocorrência de um caractere em uma string dentro de outra
  • mb_strrichr — Encontra a última ocorrência de um caractere em uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
  • mb_strripos — Encontra a posição da última ocorrência de uma string em outra, sem diferenciar maiúsculas de minúsculas
  • mb_strrpos — Encontra a posição da última ocorrência de uma string em outra string
  • mb_strstr — Encontra a primeira ocorrência de uma string em outra
  • mb_strtolower — Torna uma string minúscula
  • mb_strtoupper — Faz uma string ficar em maiúsculas
  • mb_strwidth — Retorna a largura da string
  • mb_substitute_character — Define/Obtém caractere de substituição
  • mb_substr_count — Conta o número de ocorrências de substring
  • mb_substr — Obtém parte da string


Verifica se as strings são válidas para a codificação especificada

  • « Strings Multibyte e Funções
  • mb_chr »
  • PHP Manual
  • Strings Multibyte e Funções
  • Verifica se as strings são válidas para a codificação especificada

mb_check_encoding

(PHP 4 >= 4.4.3, PHP 5 >= 5.1.3, PHP 7, PHP 8)

mb_check_encoding — Verifica se as strings são válidas para a codificação especificada

Descrição

mb_check_encoding(array|string|null $value = null, ?string $encoding = null): bool

Verifica se o fluxo de bytes especificado é válido para a codificação especificada. Se value for do tipo array, todas as chaves e valores são validados recursivamente. É útil para prevenir ataques chamados "Invalid Encoding Attack".

Parâmetros

value

O fluxo de bytes ou array a ser verificado. Se omitido, esta função verifica toda a entrada desde o início da requisição.

Aviso

A partir do PHP 8.1.0, omitir este parâmetro ou passar null está descontinuado.

encoding

A codificação esperada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Chamar esta função com null como value ou sem argumento está descontinuado.
8.0.0 | value e encoding são anuláveis agora.
7.2.0 | Esta função agora aceita também um array como value. Anteriormente, apenas strings eram suportadas.


Retorna um caractere pelo valor do ponto de código Unicode

  • « mb_check_encoding
  • mb_convert_case »
  • PHP Manual
  • Strings Multibyte e Funções
  • Retorna um caractere pelo valor do ponto de código Unicode

mb_chr

(PHP 7 >= 7.2.0, PHP 8)

mb_chr — Retorna um caractere pelo valor do ponto de código Unicode

Descrição

mb_chr(int $codepoint, ?string $encoding = null): string|false

Retorna uma string contendo o caractere especificado pelo valor do ponto de código Unicode, codificado na codificação especificada.

Esta função complementa mb_ord().

Parâmetros

codepoint

Um valor de ponto de código Unicode, por exemplo, 128024 para U+1F418 ELEPHANT

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

Uma string contendo o caractere solicitado, se puder ser representado na codificação especificada ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Exemplos

Exemplo #1 Testando diferentes pontos de código

<?php
$values = [65, 63, 0x20AC, 128024];
foreach ($values as $value) {
var_dump(mb_chr($value, 'UTF-8'));
var_dump(mb_chr($value, 'ISO-8859-1'));
}
?>

O exemplo acima produzirá:

string(1) "A"
string(1) "A"
string(1) "?"
string(1) "?"
string(3) "€"
bool(false)
string(4) "??"
bool(false)

Veja Também

  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna
  • mb_ord() - Obtém o ponto de código Unicode do caractere
  • IntlChar::ord() - Retorna o valor do ponto de código Unicode do caractere
  • chr() - Generate a single-byte string from a number


Realiza a conversão de caixa em uma string

  • « mb_chr
  • mb_convert_encoding »
  • PHP Manual
  • Strings Multibyte e Funções
  • Realiza a conversão de caixa em uma string

mb_convert_case

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_convert_case — Realiza a conversão de caixa em uma string

Descrição

mb_convert_case(string $string, int $mode, ?string $encoding = null): string

Realiza a conversão de caixa em uma string, convertida da maneira especificada por mode.

Parâmetros

string

A string sendo convertida.

mode

O modo de conversão. Pode ser um dos MB_CASE_UPPER, MB_CASE_LOWER, MB_CASE_TITLE, MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, MB_CASE_FOLD_SIMPLE.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

Uma versão da string com conversão de caixa conforme especificado por mode.

Registro de Alterações

Versão | Descrição
7.3.0 | Adicionado suporte para MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, e MB_CASE_FOLD_SIMPLE como mode.

Exemplos

Exemplo #1 Exemplo de mb_convert_case()

<?php
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Prints Mary Had A Little Lamb And She Loved It So
?>

Exemplo #2 Exemplo de mb_convert_case() com texto UTF-8 não latino

<?php
$str = "????st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Imprime ????S?? ?????? ??F?S ?????? G?, ???S??????? ???? ?OT??? ????S
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Imprime ????st? ???p?? ?af?s ??µ??? G?, ??as?e???e? ?p?? ?????? ????s
?>

Notas

Ao contrário das funções padrão de conversão de caixa, como strtolower() e strtoupper(), a conversão de caixa é realizada com base nas propriedades dos caracteres Unicode. Assim, o comportamento desta função não é afetado pelas configurações de localidade e ela pode converter qualquer caractere que tenha a propriedade 'alfabética', como o a-umlaut (ä).

Para obter mais informações sobre as propriedades Unicode, consulte » http://www.unicode.org/reports/tr21/.

Veja Também

  • mb_strtolower() - Torna uma string minúscula
  • mb_strtoupper() - Faz uma string ficar em maiúsculas
  • strtolower() - Converte uma string para minúsculas
  • strtoupper() - Make a string uppercase
  • ucfirst() - Make a string's first character uppercase
  • ucwords() - Converte para maiúsculas o primeiro caractere de cada palavra


Converte uma string de uma codificação de caracteres para outra

  • « mb_convert_case
  • mb_convert_kana »
  • PHP Manual
  • Strings Multibyte e Funções
  • Converte uma string de uma codificação de caracteres para outra

mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_encoding — Converte uma string de uma codificação de caracteres para outra

Descrição

mb_convert_encoding(array|string $string, string $to_encoding, array|string|null $from_encoding = null): array|string|false

Converte string de from_encoding, ou a codificação interna atual, para to_encoding. Se string for um array, todos os seus valores string serão convertidos recursivamente.

Parâmetros

string

A string ou array a ser convertida.

to_encoding

A codificação desejada para o resultado.

from_encoding

A codificação atual usada para interpretar string. Múltiplas codificações podem ser especificadas como um array ou uma lista separada por vírgulas, nesse caso, a codificação correta será detectada usando o mesmo algoritmo que mb_detect_encoding().

Se from_encoding for omitida ou null, a configuração mbstring.internal_encoding será usada se definida, caso contrário, a configuração default_charset.

Consulte codificações suportadas para os valores válidos de to_encoding e from_encoding.

Valor Retornado

A string ou array codificada em caso de sucesso, ou false em caso de falha.

Erros/Exceções

A partir do PHP 8.0.0, um ValueError é lançado se o valor de to_encoding ou from_encoding for uma codificação inválida. Antes do PHP 8.0.0, um E_WARNING era emitido.

Registro de Alterações

Versão | Descrição
8.2.0 | mb_convert_encoding() não retornará mais as seguintes codificações não textuais: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" e "8 bit".
8.0.0 | mb_convert_encoding() agora lançará um ValueError quando to_encoding receber uma codificação inválida.
8.0.0 | mb_convert_encoding() agora lançará um ValueError quando from_encoding receber uma codificação inválida.
8.0.0 | from_encoding agora é anulável.
7.2.0 | Esta função agora aceita um array como string. Anteriormente, apenas strings eram suportadas.

Exemplos

Exemplo #1 Exemplo de mb_convert_encoding()

<?php
/* Converte a codificação interna para SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Converte EUC-JP para UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Detecta automaticamente a codificação a partir de JIS, eucjp-win, sjis-win, e converte str para UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* Se mbstring.language for "Japanese", "auto" é expandido para "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

Veja Também

  • mb_detect_order() - Define/Obtém a ordem de detecção de codificação de caracteres
  • UConverter::transcode() - Converte uma string de uma codificação de caracteres para outra
  • iconv() - Converte uma string de uma codificação de caracteres para outra


Converte "kana" de um tipo para outro ("zen-kaku", "han-kaku" e mais)

  • « mb_convert_encoding
  • mb_convert_variables »
  • PHP Manual
  • Strings Multibyte e Funções
  • Converte "kana" de um tipo para outro ("zen-kaku", "han-kaku" e mais)

mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_kana — Converte "kana" de um tipo para outro ("zen-kaku", "han-kaku" e mais)

Descrição

mb_convert_kana(string $string, string $mode = "KV", ?string $encoding = null): string

Realiza uma conversão "han-kaku" - "zen-kaku" para a string string. Esta função é útil apenas para o japonês.

Parâmetros

string

A string a ser convertida.

mode

A opção de conversão.

Especifique com uma combinação das seguintes opções.

Opções de Conversão Aplicáveis
Opção | Significado
r | Converte alfabetos "zen-kaku" para "han-kaku"
R | Converte alfabetos "han-kaku" para "zen-kaku"
n | Converte números "zen-kaku" para "han-kaku"
N | Converte números "han-kaku" para "zen-kaku"
a | Converte alfabetos e números "zen-kaku" para "han-kaku"
A | Converte alfabetos e números "han-kaku" para "zen-kaku" (Caracteres incluídos nas opções "a", "A" são U+0021 - U+007E, excluindo U+0022, U+0027, U+005C, U+007E)
s | Converte espaço "zen-kaku" para "han-kaku" (U+3000 -> U+0020)
S | Converte espaço "han-kaku" para "zen-kaku" (U+0020 -> U+3000)
k | Converte "zen-kaku kata-kana" para "han-kaku kata-kana"
K | Converte "han-kaku kata-kana" para "zen-kaku kata-kana"
h | Converte "zen-kaku hira-gana" para "han-kaku kata-kana"
H | Converte "han-kaku kata-kana" para "zen-kaku hira-gana"
c | Converte "zen-kaku kata-kana" para "zen-kaku hira-gana"
C | Converte "zen-kaku hira-gana" para "zen-kaku kata-kana"
V | Colapsa a notação de som sonoro e converte-os em um caractere. Use com "K","H"

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

A string convertida.

Erros/Exceções

Gera um ValueError se a combinação de diferentes modes for inválida. Por exemplo, "sS".

Registro de Alterações

Versão | Descrição
8.2.0 | Um ValueError agora é gerado se a combinação de diferentes modes for inválida.
8.0.0 | O parâmetro encoding agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de mb_convert_kana()

<?php
/* Converte todo "kana" para "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Converte "han-kaku" "kata-kana" para "zen-kaku" "kata-kana"
e alfanuméricos "zen-kaku" para "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>


Converte o código de caracteres em variável(is)

  • « mb_convert_kana
  • mb_decode_mimeheader »
  • PHP Manual
  • Strings Multibyte e Funções
  • Converte o código de caracteres em variável(is)

mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_variables — Converte o código de caracteres em variável(is)

Descrição

mb_convert_variables(
string $to_encoding,
array|string $from_encoding,
mixed &$var,
mixed &...$vars
): string|false

Converte a codificação de caracteres das variáveis var e vars de codificação from_encoding para a codificação to_encoding.

mb_convert_variables() une strings em Arrays ou Objetos para detectar a codificação, já que a detecção de codificação tende a falhar para strings curtas. Portanto, é impossível misturar codificações em um único array ou objeto.

Parâmetros

to_encoding

A codificação para a qual a string está sendo convertida.

from_encoding

Se from_encoding for especificado como um array ou uma string separada por vírgula, ele tenta detectar a codificação de from-coding. Quando from_encoding é omitido, é usado detect_order.

var

var é a referência para a variável sendo convertida. String, Array e Object são aceitos. mb_convert_variables() assume que todos os parâmetros têm a mesma codificação.

vars

Variáveis adicionais vars.

Valor Retornado

A codificação de caracteres antes da conversão para sucesso, ou false para falha.

Exemplos

Exemplo #1 Exemplo de mb_convert_variables()

<?php
/* Converte as variáveis $post1, $post2 para a codificação interna */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>


Decodifica string no campo de cabeçalho MIME

  • « mb_convert_variables
  • mb_decode_numericentity »
  • PHP Manual
  • Strings Multibyte e Funções
  • Decodifica string no campo de cabeçalho MIME

mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_decode_mimeheader — Decodifica string no campo de cabeçalho MIME

Descrição

mb_decode_mimeheader(string $string): string

Decodifica a string codificada string no cabeçalho MIME.

Parâmetros

string

A string sendo decodificada.

Valor Retornado

A string decodificada na codificação interna de caracteres.

Veja Também

  • mb_encode_mimeheader() - Codificar string para cabeçalho MIME


Decodifica referência de string numérica HTML para caractere

  • « mb_decode_mimeheader
  • mb_detect_encoding »
  • PHP Manual
  • Strings Multibyte e Funções
  • Decodifica referência de string numérica HTML para caractere

mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_decode_numericentity — Decodifica referência de string numérica HTML para caractere

Descrição

mb_decode_numericentity(string $string, array $map, ?string $encoding = null): string

Converte a referência de string numérica de string string em um bloco especificado para caractere.

Parâmetros

string

A string sendo decodificada.

map

map é um array que especifica a área de código a ser convertida.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

is_hex

Este parâmetro não é utilizado.

Valor Retornado

A string convertida.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de map

<?php
$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 );
// Especifique o valor Unicode para start_codeN e end_codeN
// Adicione offsetN ao valor e faça 'AND' bit a bit com maskN,
// em seguida, converta o valor para referência de string numérica.
?>

Exemplo #2 map exemplo de escape de string JavaScript

<?php
function escape_javascript_string($str) {
$map = [
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,0,0, // 49
0,0,0,0,0,0,0,0,1,1,
1,1,1,1,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,1,1,1,1,1,1,0,0,0, // 99
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1, // 149
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1, // 199
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1, // 249
1,1,1,1,1,1,1, // 255
];
// Codificação de caractere é UTF-8
$mblen = mb_strlen($str, 'UTF-8');
$utf32 = bin2hex(mb_convert_encoding($str, 'UTF-32', 'UTF-8'));
for ($i=0, $encoded=''; $i < $mblen; $i++) {
$u = substr($utf32, $i*8, 8);
$v = base_convert($u, 16, 10);
if ($v < 256 && $map[$v]) {
$encoded .= '\\x'.substr($u, 6,2);
} else if ($v == 2028) {
$encoded .= '\\u2028';
} else if ($v == 2029) {
$encoded .= '\\u2029';
} else {
$encoded .= mb_convert_encoding(hex2bin($u), 'UTF-8', 'UTF-32');
}
}
return $encoded;
}

// Dados de teste
$convmap = [ 0x0, 0xffff, 0, 0xffff ];
$msg = '';
for ($i=0; $i < 1000; $i++) {
// chr() não pode gerar dados UTF-8 corretos com valor maior que 128, use mb_decode_numericentity().
$msg .= mb_decode_numericentity('&#'.$i.';', $convmap, 'UTF-8');
}

// var_dump($msg);
var_dump(escape_javascript_string($msg));

Veja Também

  • mb_encode_numericentity() - Codificar caractere para referência numérica HTML


Detectar a codificação de caracteres

  • « mb_decode_numericentity
  • mb_detect_order »
  • PHP Manual
  • Strings Multibyte e Funções
  • Detectar a codificação de caracteres

mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_detect_encoding — Detectar a codificação de caracteres

Descrição

mb_detect_encoding(string $string, array|string|null $encodings = null, bool $strict = false): string|false

Detecta a codificação de caracteres mais provável para a string string a partir de uma lista ordenada de candidatos.

A detecção automática da codificação de caracteres pretendida nunca pode ser totalmente confiável; sem informações adicionais, é semelhante a decodificar uma string criptografada sem a chave. É sempre preferível usar uma indicação de codificação de caracteres armazenada ou transmitida com os dados, como um cabeçalho HTTP "Content-Type".

Esta função é mais útil com codificações multibyte, onde nem todas as sequências de bytes formam uma string válida. Se a string de entrada contiver tal sequência, essa codificação será rejeitada e a próxima codificação será verificada.

Parâmetros

string

A string sendo inspecionada.

encodings

Uma lista de codificações de caracteres para tentar, em ordem. A lista pode ser especificada como um array de strings ou uma única string separada por vírgulas.

Se encodings for omitido ou null, a detect_order atual (definida com a opção de configuração mbstring.detect_order, ou função mb_detect_order()) será usada.

strict

Controla o comportamento quando string não é válida em nenhuma das encodings listadas. Se strict for definido como false, a codificação mais próxima correspondente será retornada; se strict for definido como true, false será retornado.

O valor padrão para strict pode ser definido com a opção de configuração mbstring.strict_detection.

Valor Retornado

A codificação de caracteres detectada ou false se a string não for válida em nenhuma das codificações listadas.

Registro de Alterações

Versão | Descrição
8.2.0 | mb_detect_encoding() não retornará mais as seguintes codificações não textuais: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" e "8 bit".

Exemplos

Exemplo #1 Exemplo de mb_detect_encoding()

<?php
// Detectar codificação de caracteres com a detect_order atual
echo mb_detect_encoding($str);

// "auto" é expandido de acordo com mbstring.language
echo mb_detect_encoding($str, "auto");

// Especificar parâmetro "encodings" por lista separada por vírgula
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

// Usar array para especificar parâmetro "encodings"
$encodings = [
"ASCII",
"JIS",
"EUC-JP"
];
echo mb_detect_encoding($str, $encodings);
?>

Exemplo #2 Efeito do parâmetro strict

<?php
// 'áéóú' codificado em ISO-8859-1
$str = "\xE1\xE9\xF3\xFA";

// A string não é válida em ASCII ou UTF-8, mas UTF-8 é considerado uma correspondência mais próxima
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8'], false));
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8'], true));

// Se uma codificação válida for encontrada, o parâmetro strict não muda o resultado
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8', 'ISO-8859-1'], false));
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8', 'ISO-8859-1'], true));
?>

O exemplo acima produzirá:

string(5) "UTF-8"
bool(false)
string(10) "ISO-8859-1"
string(10) "ISO-8859-1"

Em alguns casos, a mesma sequência de bytes pode formar uma string válida em várias codificações de caracteres, e é impossível saber qual interpretação foi pretendida. Por exemplo, entre muitos outros, a sequência de bytes "\xC4\xA2" poderia ser:

  • "Ä¢" (U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS seguido por U+00A2 CENT SIGN) codificado em qualquer um de of ISO-8859-1, ISO-8859-15, or Windows-1252
  • "??" (U+0424 CYRILLIC CAPITAL LETTER EF seguido por U+0402 CYRILLIC CAPITAL LETTER DJE) codificado em ISO-8859-5
  • "G" (U+0122 LATIN CAPITAL LETTER G WITH CEDILLA) codificado em UTF-8

Exemplo #3 Efeito da ordem quando várias codificações correspondem

<?php
$str = "\xC4\xA2";

// A string é válida em todas as três codificações, então a primeira listada será retornada
var_dump(mb_detect_encoding($str, ['UTF-8', 'ISO-8859-1', 'ISO-8859-5']));
var_dump(mb_detect_encoding($str, ['ISO-8859-1', 'ISO-8859-5', 'UTF-8']));
var_dump(mb_detect_encoding($str, ['ISO-8859-5', 'UTF-8', 'ISO-8859-1']));
?>

O exemplo acima produzirá:

string(5) "UTF-8"
string(10) "ISO-8859-1"
string(10) "ISO-8859-5"

Veja Também

  • mb_detect_order() - Define/Obtém a ordem de detecção de codificação de caracteres


Define/Obtém a ordem de detecção de codificação de caracteres

  • « mb_detect_encoding
  • mb_encode_mimeheader »
  • PHP Manual
  • Strings Multibyte e Funções
  • Define/Obtém a ordem de detecção de codificação de caracteres

mb_detect_order

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_detect_order — Define/Obtém a ordem de detecção de codificação de caracteres

Descrição

mb_detect_order(array|string|null $encoding = null): array|bool

Define a ordem automática de detecção de codificação de caracteres para encoding.

Parâmetros

encoding

encoding é um array ou lista de codificações de caracteres separadas por vírgula. Veja codificações suportadas.

Se encoding for omitido ou null, ele retorna a ordem atual de detecção de codificação de caracteres como um array.

Essa configuração afeta mb_detect_encoding() e mb_send_mail().

mbstring implementa atualmente os seguintes filtros de detecção de codificação. Se houver uma sequência de bytes inválida para as seguintes codificações, a detecção de codificação falhará.

UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

Para ISO-8859-*, mbstring sempre detecta como ISO-8859-*.

Para UTF-16, UTF-32, UCS2 e UCS4, a detecção de codificação sempre falhará.

Valor Retornado

Ao definir a ordem de detecção de codificação, true é retornado em caso de sucesso ou false em caso de falha.

Ao obter a ordem de detecção de codificação, um array ordenado das codificações é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Exemplos

Exemplo #1 Exemplos de mb_detect_order()

<?php
/* Definir ordem de detecção por lista enumerada */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Definir ordem de detecção por array */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Exibir ordem de detecção atual */
echo implode(", ", mb_detect_order());
?>

Exemplo #2 Exemplo mostrando ordens de detecção inúteis

; 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

Veja Também

  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna
  • mb_http_input() - Detecta a codificação de caracteres de entrada HTTP
  • mb_http_output() - Define/Obtém a codificação de caracteres de saída HTTP
  • mb_send_mail() - Envia email codificado


Codificar string para cabeçalho MIME

  • « mb_detect_order
  • mb_encode_numericentity »
  • PHP Manual
  • Strings Multibyte e Funções
  • Codificar string para cabeçalho MIME

mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_encode_mimeheader — Codificar string para cabeçalho MIME

Descrição

mb_encode_mimeheader(
string $string,
?string $charset = null,
?string $transfer_encoding = null,
string $newline = "\r\n",
int $indent = 0
): string

Codifica uma string string pelo esquema de codificação de cabeçalho MIME.

Parâmetros

string

A string a ser codificada. Sua codificação deve ser a mesma que mb_internal_encoding().

charset

charset especifica o nome do conjunto de caracteres no qual string está representada. O valor padrão é determinado pela configuração NLS atual (mbstring.language).

transfer_encoding

transfer_encoding especifica o esquema de codificação MIME. Deve ser ou "B" (Base64) ou "Q" (Quoted-Printable). Retrocede para "B" se não fornecido.

newline

newline especifica o marcador de EOL (end-of-line) com o qual mb_encode_mimeheader() realiza a quebra de linha (um termo » RFC, o ato de quebrar uma linha mais longa que um certo comprimento em várias linhas. O comprimento é atualmente codificado como 74 caracteres). Retrocede para "\r\n" (CRLF) se não fornecido.

indent

Recuo da primeira linha (número de caracteres no cabeçalho antes de string).

Valor Retornado

Uma versão convertida da string representada em ASCII.

Registro de Alterações

Versão | Descrição
8.0.0 | charset e transfer_encoding agora são anuláveis.

Exemplos

Exemplo #1 Exemplo de mb_encode_mimeheader()

<?php
$name = "??"; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = '"' . addcslashes(mb_encode_mimeheader($name, "UTF-7", "Q"), '"') . '" <' . $mbox . "@" . $doma . ">";
echo $addr;
?>

O exemplo acima produzirá:

"=?UTF-7?Q?+WSqQzg-?=" <kru@gtinn.mon>

Notas

Nota:

Esta função não é projetada para quebrar linhas em pontos de quebra de contexto de nível superior (limites de palavra, etc.). Esse comportamento pode poluir a string original com espaços inesperados.

Veja Também

  • mb_decode_mimeheader() - Decodifica string no campo de cabeçalho MIME


Codificar caractere para referência numérica HTML

  • « mb_encode_mimeheader
  • mb_encoding_aliases »
  • PHP Manual
  • Strings Multibyte e Funções
  • Codificar caractere para referência numérica HTML

mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_encode_numericentity — Codificar caractere para referência numérica HTML

Descrição

mb_encode_numericentity(
string $string,
array $map,
?string $encoding = null,
bool $hex = false
): string

Converte códigos de caractere especificados em string string de códigos de caractere para referência numérica de caractere HTML.

Parâmetros

string

A string a ser codificada.

map

map é um array que especifica a área de código para converter.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

hex

Se a referência de entidade retornada deve estar em notação hexadecimal (caso contrário, estará em notação decimal).

Valor Retornado

A string convertida.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Exemplos

Exemplo #1 map example

<?php
$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 );
// Especifique o valor Unicode para start_codeN e end_codeN
// Adicione offsetN ao valor e faça um 'E' bit a bit com maskN, então
// converte o valor para referência numérica de string.
?>

Exemplo #2 Exemplo de mb_encode_numericentity()

<?php
/* Converte o lado esquerdo do ISO-8859-1 para referência numérica de caractere HTML */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Converte o código definido pelo usuário em SJIS-win no bloco 95-104 para referência numérica
de string */
$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");
?>

Veja Também

  • mb_decode_numericentity() - Decodifica referência de string numérica HTML para caractere


Obtém aliases de um tipo de codificação conhecido

  • « mb_encode_numericentity
  • mb_ereg_match »
  • PHP Manual
  • Strings Multibyte e Funções
  • Obtém aliases de um tipo de codificação conhecido

mb_encoding_aliases

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mb_encoding_aliases — Obtém aliases de um tipo de codificação conhecido

Descrição

mb_encoding_aliases(string $encoding): array

Retorna um array de aliases para um tipo de encoding conhecido.

Parâmetros

encoding

O tipo de codificação a ser verificado, para aliases.

Valor Retornado

Retorna um array indexada numericamente de aliases de codificação.

Erros/Exceções

Lança um ValueError se encoding for desconhecido.

Registro de Alterações

Versão | Descrição
8.0.0 | Se o encoding for desconhecido, agora é lançado um ValueError; anteriormente, um E_WARNING era emitido, e a função retornava false.

Exemplos

Exemplo #1 Exemplo de mb_encoding_aliases()

<?php
$encoding = 'ASCII';
$known_encodings = mb_list_encodings();

if (in_array($encoding, $known_encodings)) {

$aliases = mb_encoding_aliases($encoding);
print_r($aliases);

} else {

echo "Unknown ($encoding) encoding.\n";

}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => ANSI_X3.4-1968
    [1] => iso-ir-6
    [2] => ANSI_X3.4-1986
    [3] => ISO_646.irv:1991
    [4] => US-ASCII
    [5] => ISO646-US
    [6] => us
    [7] => IBM367
    [8] => cp367
    [9] => csASCII
)

Veja Também

  • mb_list_encodings() - Retorna um array de todas as codificações suportadas


Coincidência de expressão regular para string multibyte

  • « mb_encoding_aliases
  • mb_ereg_replace_callback »
  • PHP Manual
  • Strings Multibyte e Funções
  • Coincidência de expressão regular para string multibyte

mb_ereg_match

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_match — Coincidência de expressão regular para string multibyte

Descrição

mb_ereg_match(string $pattern, string $string, ?string $options = null): bool

Uma correspondência de expressão regular para uma string multibyte

Nota: pattern só é correspondido no início de string.

Parâmetros

pattern

O padrão de expressão regular.

string

A string sendo avaliada.

options

A opção de pesquisa. Consulte mb_regex_set_options() para explicação.

Valor Retornado

Retorna true se string coincide com a expressão regular pattern, false se não.

Registro de Alterações

Versão | Descrição
8.0.0 | options é anulável agora.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg() - Correspondência de expressão regular com suporte multibyte


Realiza uma busca e substituição de expressão regular com suporte a string multibyte usando um callback

  • « mb_ereg_match
  • mb_ereg_replace »
  • PHP Manual
  • Strings Multibyte e Funções
  • Realiza uma busca e substituição de expressão regular com suporte a string multibyte usando um callback

mb_ereg_replace_callback

(PHP 5 >= 5.4.1, PHP 7, PHP 8)

mb_ereg_replace_callback — Realiza uma busca e substituição de expressão regular com suporte a string multibyte usando um callback

Descrição

mb_ereg_replace_callback(
string $pattern,
callable $callback,
string $string,
?string $options = null
): string|false|null

Examina string em busca de correspondências com pattern, em seguida, substitui o texto correspondido pelo resultado da função callback.

O comportamento desta função é quase idêntico ao de mb_ereg_replace(), exceto pelo fato de que, em vez de replacement, deve-se especificar um callback.

Parâmetros

pattern

O padrão de expressão regular.

Caracteres multibyte podem ser usados em pattern.

callback

Um callback que será chamado e receberá um array de elementos correspondidos na string. O callback deve retornar a string de substituição.

Você frequentemente precisará da função callback para um mb_ereg_replace_callback() em apenas um lugar. Nesse caso, você pode usar uma função anônima para declarar o retorno de chamada dentro da chamada para mb_ereg_replace_callback(). Fazendo isso, você tem todas as informações para a chamada em um só lugar e não polui o namespace da função com o nome de uma função de callback não utilizada em nenhum outro lugar.

string

A string sendo verificada.

options

A opção de pesquisa. Consulte mb_regex_set_options() para explicação.

Valor Retornado

A string resultante em caso de sucesso ou false em caso de erro. Se string não for válida para a codificação atual, null é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | options é anulável agora.
7.1.0 | A função verifica se string é válida para a codificação atual.

Exemplos

Exemplo #1 Exemplo de mb_ereg_replace_callback()

<?php
// este texto foi usado em 2002
// queremos atualizá-lo para 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// a função callback
function next_year($matches)
{
// como de costume: $matches[0] é a correspondência completa
// $matches[1] é a correspondência para o primeiro subpadrão
// cercado por '(...)' e assim por diante
return $matches[1].($matches[2]+1);
}
echo mb_ereg_replace_callback(
"(\d{2}/\d{2}/)(\d{4})",
"next_year",
$text);

?>

O exemplo acima produzirá:

April fools day is 04/01/2003
Last christmas was 12/24/2002

Exemplo #2 mb_ereg_replace_callback() usando função anônima

<?php
// este texto foi usado em 2002
// queremos atualizá-lo para 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";

echo mb_ereg_replace_callback(
"(\d{2}/\d{2}/)(\d{4})",
function ($matches) {
return $matches[1].($matches[2]+1);
},
$text);
?>

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg_replace() - Substituir expressão regular com suporte a multibyte
  • Funções Anônimas


Substituir expressão regular com suporte a multibyte

  • « mb_ereg_replace_callback
  • mb_ereg_search_getpos »
  • PHP Manual
  • Strings Multibyte e Funções
  • Substituir expressão regular com suporte a multibyte

mb_ereg_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_replace — Substituir expressão regular com suporte a multibyte

Descrição

mb_ereg_replace(
string $pattern,
string $replacement,
string $string,
?string $options = null
): string|false|null

Examina string em busca de correspondências com pattern, em seguida, substitui o texto correspondido por replacement

Parâmetros

pattern

O padrão de expressão regular.

Caracteres multibyte podem ser usados em pattern.

replacement

O texto de substituição.

string

A string sendo verificada.

options
A opção de pesquisa. Consulte mb_regex_set_options() para explicação.

Valor Retornado

A string resultante em caso de sucesso, ou false em caso de erro. Se string não for válida para a codificação atual, null é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | options é anulável agora.
7.1.0 | A função verifica se string é válida para a codificação atual.
7.1.0 | O modificador e foi depreciado.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Aviso

Nunca use o modificador e ao trabalhar com entradas não confiáveis. Nenhum escape automático acontecerá (como é conhecido em preg_replace()). Não cuidar disso provavelmente criará vulnerabilidades de execução remota de código na sua aplicação.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_eregi_replace() - Substituir expressão regular com suporte multibyte, ignorando maiúsculas e minúsculas


Retorna o ponto de início para a próxima correspondência de expressão regular

  • « mb_ereg_replace
  • mb_ereg_search_getregs »
  • PHP Manual
  • Strings Multibyte e Funções
  • Retorna o ponto de início para a próxima correspondência de expressão regular

mb_ereg_search_getpos

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_getpos — Retorna o ponto de início para a próxima correspondência de expressão regular

Descrição

mb_ereg_search_getpos(): int

Retorna o ponto de início para a próxima correspondência de expressão regular.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

mb_ereg_search_getpos() retorna
o ponto de início da correspondência de expressão regular para
mb_ereg_search(),
mb_ereg_search_pos(),
mb_ereg_search_regs(). A posição é
representada em bytes a partir do início da string.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg_search_setpos() - Define o ponto de início para a próxima correspondência de expressão regular


Recupera o resultado da última correspondência de expressão regular multibyte

  • « mb_ereg_search_getpos
  • mb_ereg_search_init »
  • PHP Manual
  • Strings Multibyte e Funções
  • Recupera o resultado da última correspondência de expressão regular multibyte

mb_ereg_search_getregs

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_getregs — Recupera o resultado da última correspondência de expressão regular multibyte

Descrição

mb_ereg_search_getregs(): array|false

Recupera o resultado da última correspondência de expressão regular multibyte

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array incluindo a sub-string da parte correspondente pela última mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). Se houver algumas correspondências, o primeiro elemento terá a sub-string correspondente, o segundo elemento terá a primeira parte agrupada com colchetes, o terceiro elemento terá a segunda parte agrupada com colchetes, e assim por diante. Retorna false em caso de erro.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg_search_init() - Configura a string e a expressão regular para uma correspondência de expressão regular multibyte


Configura a string e a expressão regular para uma correspondência de expressão regular multibyte

  • « mb_ereg_search_getregs
  • mb_ereg_search_pos »
  • PHP Manual
  • Strings Multibyte e Funções
  • Configura a string e a expressão regular para uma correspondência de expressão regular multibyte

mb_ereg_search_init

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_init — Configura a string e a expressão regular para uma correspondência de expressão regular multibyte

Descrição

mb_ereg_search_init(string $string, ?string $pattern = null, ?string $options = null): bool

mb_ereg_search_init() configura
string e pattern
para uma expressão regular multibyte. Esses valores são usados para
mb_ereg_search(),
mb_ereg_search_pos() e
mb_ereg_search_regs().

Parâmetros

string

A string de busca.

pattern

O padrão de busca.

options

A opção de busca. Consulte mb_regex_set_options() para obter uma explicação.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | pattern e options são anuláveis agora.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg_search_regs() - Retorna a parte correspondida de uma expressão regular multibyte


Retorna a posição e o comprimento de uma parte correspondida da expressão regular multibyte para uma string multibyte predefinida

  • « mb_ereg_search_init
  • mb_ereg_search_regs »
  • PHP Manual
  • Strings Multibyte e Funções
  • Retorna a posição e o comprimento de uma parte correspondida da expressão regular multibyte para uma string multibyte predefinida

mb_ereg_search_pos

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_pos — Retorna a posição e o comprimento de uma parte correspondida da expressão regular multibyte para uma string multibyte predefinida

Descrição

mb_ereg_search_pos(?string $pattern = null, ?string $options = null): array|false

Retorna a posição e o comprimento de uma parte correspondida da expressão regular multibyte para uma string multibyte predefinida.

A string para a correspondência é especificada por mb_ereg_search_init(). Se não for especificada, a anterior será usada.

Parâmetros

pattern

O padrão de busca.

options

A opção de busca. Consulte mb_regex_set_options() para obter uma explicação.

Valor Retornado

Um array contendo dois elementos. O primeiro elemento é o deslocamento, em bytes, onde a correspondência começa em relação ao início da string de busca, e o segundo elemento é o comprimento, em bytes, da correspondência.

Se ocorrer um erro, é retornado false.

Registro de Alterações

Versão | Descrição
8.0.0 | pattern e options são anuláveis agora.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg_search_init() - Configura a string e a expressão regular para uma correspondência de expressão regular multibyte


Retorna a parte correspondida de uma expressão regular multibyte

  • « mb_ereg_search_pos
  • mb_ereg_search_setpos »
  • PHP Manual
  • Strings Multibyte e Funções
  • Retorna a parte correspondida de uma expressão regular multibyte

mb_ereg_search_regs

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_regs — Retorna a parte correspondida de uma expressão regular multibyte

Descrição

mb_ereg_search_regs(?string $pattern = null, ?string $options = null): array|false

Retorna a parte correspondida de uma expressão regular multibyte.

Parâmetros

pattern

O padrão de busca.

options

A opção de busca. Consulte mb_regex_set_options() para obter uma explicação.

Valor Retornado

mb_ereg_search_regs() executa a correspondência da expressão regular multibyte e, se houver alguma parte correspondida, ela retorna um array contendo a substring da parte correspondida como primeiro elemento, a primeira parte agrupada com colchetes como segundo elemento, a segunda parte agrupada como terceiro elemento, e assim por diante. Retorna false em caso de erro.

Registro de Alterações

Versão | Descrição
8.0.0 | pattern e options agora são anuláveis.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg_search_init() - Configura a string e a expressão regular para uma correspondência de expressão regular multibyte


Define o ponto de início para a próxima correspondência de expressão regular

  • « mb_ereg_search_regs
  • mb_ereg_search »
  • PHP Manual
  • Strings Multibyte e Funções
  • Define o ponto de início para a próxima correspondência de expressão regular

mb_ereg_search_setpos

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_setpos — Define o ponto de início para a próxima correspondência de expressão regular

Descrição

mb_ereg_search_setpos(int $offset): bool

mb_ereg_search_setpos() define o ponto de início de uma correspondência para mb_ereg_search().

Parâmetros

offset

A posição a definir. Se for negativo, conta a partir do final da string.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.1.0 | Suporte para offsets negativo foi adicionado.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg_search_init() - Configura a string e a expressão regular para uma correspondência de expressão regular multibyte


Correspondência de expressão regular multibyte para uma string multibyte predefinida

  • « mb_ereg_search_setpos
  • mb_ereg »
  • PHP Manual
  • Strings Multibyte e Funções
  • Correspondência de expressão regular multibyte para uma string multibyte predefinida

mb_ereg_search

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search — Correspondência de expressão regular multibyte para uma string multibyte predefinida

Descrição

mb_ereg_search(?string $pattern = null, ?string $options = null): bool

Realiza uma correspondência de expressão regular multibyte para uma string multibyte predefinida.

Parâmetros

pattern

O padrão de busca.

options

A opção de busca. Veja mb_regex_set_options() para explicação.

Valor Retornado

mb_ereg_search() retorna true se a string multibyte corresponder à expressão regular, ou false caso contrário. A string para correspondência é definida por mb_ereg_search_init(). Se pattern não for especificado, o anterior é utilizado.

Registro de Alterações

Versão | Descrição
8.0.0 | pattern e options agora são anuláveis.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg_search_init() - Configura a string e a expressão regular para uma correspondência de expressão regular multibyte


Correspondência de expressão regular com suporte multibyte

  • « mb_ereg_search
  • mb_eregi_replace »
  • PHP Manual
  • Strings Multibyte e Funções
  • Correspondência de expressão regular com suporte multibyte

mb_ereg

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg — Correspondência de expressão regular com suporte multibyte

Descrição

mb_ereg(string $pattern, string $string, array &$matches = null): bool

Executa a correspondência de expressão regular com suporte multibyte..

Parâmetros

pattern

O padrão de busca.

string

A string de busca.

matches

Se forem encontradas correspondências para substrings entre parênteses de pattern e a função for chamada com o terceiro argumento matches, as correspondências serão armazenadas nos elementos do array matches. Se não forem encontradas correspondências, matches é definido como um array vazio.

$matches[1] conterá a substring que começa no primeiro parêntese à esquerda; $matches[2] conterá a substring que começa no segundo parêntese, e assim por diante. $matches[0] conterá uma cópia da string completa correspondida.

Valor Retornado

Retorna se pattern corresponde a string.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora retorna true em caso de sucesso. Anteriormente, ela retornava o comprimento em bytes da string correspondida se uma correspondência para pattern fosse encontrada em string e matches fosse passado. Se o parâmetro opcional matches não fosse passado ou o comprimento da string correspondida fosse 0, esta função retornava 1.
7.1.0 | mb_ereg() agora define matches como um array vazio se nada for correspondido. Anteriormente, matches não era modificado nesse caso.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_eregi() - Correspondência de expressão regular sem diferenciar maiúsculas e minúsculas com suporte multibyte


Substituir expressão regular com suporte multibyte, ignorando maiúsculas e minúsculas

  • « mb_ereg
  • mb_eregi »
  • PHP Manual
  • Strings Multibyte e Funções
  • Substituir expressão regular com suporte multibyte, ignorando maiúsculas e minúsculas

mb_eregi_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_eregi_replace — Substituir expressão regular com suporte multibyte, ignorando maiúsculas e minúsculas

Descrição

mb_eregi_replace(
string $pattern,
string $replacement,
string $string,
?string $options = null
): string|false|null

Examina string em busca de correspondências com pattern, e substitui o texto correspondido por replacement.

Parâmetros

pattern

O padrão de expressão regular. Caracteres multibyte podem ser usados. A diferenciação entre maiúsculas e minúsculas será ignorada.

replacement

O texto de substituição.

string

A string pesquisada.

options
A opção de pesquisa. Veja mb_regex_set_options() para explicação.

Valor Retornado

A string resultante ou false em caso de erro. Se string não for válida para a codificação atual, null é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | options é anulável agora.
7.1.0 | A função verifica se string é válida para a codificação atual.
7.1.0 | O modificador e foi depreciado.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Aviso

Nunca use o modificador e ao trabalhar com entradas não confiáveis. Nenhum escape automático acontecerá (como é conhecido em preg_replace()). Não cuidar disso provavelmente criará vulnerabilidades de execução remota de código na sua aplicação.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg_replace() - Substituir expressão regular com suporte a multibyte


Correspondência de expressão regular sem diferenciar maiúsculas e minúsculas com suporte multibyte

  • « mb_eregi_replace
  • mb_get_info »
  • PHP Manual
  • Strings Multibyte e Funções
  • Correspondência de expressão regular sem diferenciar maiúsculas e minúsculas com suporte multibyte

mb_eregi

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_eregi — Correspondência de expressão regular sem diferenciar maiúsculas e minúsculas com suporte multibyte

Descrição

mb_eregi(string $pattern, string $string, array &$matches = null): bool

Executa a correspondência de expressão regular sem diferenciar maiúsculas e minúsculas com suporte multibyte.

Parâmetros

pattern

O padrão de expressão regular.

string

A string sendo pesquisada.

matches

Se correspondências forem encontradas para substrings entre parênteses de pattern e a função for chamada com o terceiro argumento matches, as correspondências serão armazenadas nos elementos do array matches. Se nenhuma correspondência for encontrada, matches será configurado como um array vazio.

$matches[1] conterá a substring que começa em o primeiro parêntese à esquerda; $matches[2] conterá a substring que começa no segundo, e assim por diante. $matches[0] conterá uma cópia da string completa correspondida.

Valor Retornado

Retorna se pattern corresponde a string.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora retorna true em caso de sucesso. Anteriormente, ela retornava o comprimento em bytes da string correspondida se uma correspondência para pattern fosse encontrada em string e matches fosse passado. Se o parâmetro opcional matches não fosse passado ou o comprimento da string correspondida fosse 0, esta função retornava 1.
7.1.0 | mb_eregi() agora define matches como um array vazio, se nada coincidir. Anteriormente, matches não era modificado nesse caso.

Notas

Nota:

A codificação interna ou a codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg() - Correspondência de expressão regular com suporte multibyte


Obtém configurações internas do mbstring

  • « mb_eregi
  • mb_http_input »
  • PHP Manual
  • Strings Multibyte e Funções
  • Obtém configurações internas do mbstring

mb_get_info

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_get_info — Obtém configurações internas do mbstring

Descrição

mb_get_info(string $type = "all"): array|string|int|false

mb_get_info() retorna os parâmetros de configuração internos do mbstring.

Parâmetros

type

Se type não for especificado ou for especificado como "all", "internal_encoding", "http_input", "http_output", "http_output_conv_mimetypes", "mail_charset", "mail_header_encoding", "mail_body_encoding", "illegal_chars", "encoding_translation", "language", "detect_order", "substitute_character" e "strict_detection" serão retornados.

Se type for especificado como "internal_encoding", "http_input", "http_output", "http_output_conv_mimetypes", "mail_charset", "mail_header_encoding", "mail_body_encoding", "illegal_chars", "encoding_translation", "language", "detect_order", "substitute_character" ou "strict_detection", o parâmetro de configuração especificado será retornado.

Valor Retornado

Um array de informações do tipo se type não for especificado, caso contrário, um type específico, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Os types "func_overload" e "func_overload_list" não são mais suportados.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_http_output() - Define/Obtém a codificação de caracteres de saída HTTP


Detecta a codificação de caracteres de entrada HTTP

  • « mb_get_info
  • mb_http_output »
  • PHP Manual
  • Strings Multibyte e Funções
  • Detecta a codificação de caracteres de entrada HTTP

mb_http_input

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_http_input — Detecta a codificação de caracteres de entrada HTTP

Descrição

mb_http_input(?string $type = null): array|string|false

Detecta a codificação de caracteres de entrada HTTP.

Parâmetros

type

A string de entrada especifica o tipo de entrada. "G" para GET, "P" para POST, "C" para COOKIE, "S" para string, "L" para lista, e "I" para a lista inteira (retornará um array). Se o tipo for omitido, ele retorna o último tipo de entrada processado.

Valor Retornado

O nome da codificação de caracteres, conforme o type, ou um array de nomes de codificação de caracteres, se type for "I". Se mb_http_input() não processar a entrada HTTP especificada, ele retorna false.

Registro de Alterações

Versão | Descrição
8.0.0 | type é anulável agora.

Veja Também

  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna
  • mb_http_output() - Define/Obtém a codificação de caracteres de saída HTTP
  • mb_detect_order() - Define/Obtém a ordem de detecção de codificação de caracteres


Define/Obtém a codificação de caracteres de saída HTTP

  • « mb_http_input
  • mb_internal_encoding »
  • PHP Manual
  • Strings Multibyte e Funções
  • Define/Obtém a codificação de caracteres de saída HTTP

mb_http_output

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_http_output — Define/Obtém a codificação de caracteres de saída HTTP

Descrição

mb_http_output(?string $encoding = null): string|bool

Define/obtém a codificação de caracteres de saída HTTP. A saída após a chamada desta função será convertida da codificação interna definida para encoding.

Parâmetros

encoding

Se encoding estiver definido, mb_http_output() define a codificação de caracteres de saída HTTP para encoding.

Se encoding for omitido, mb_http_output() retorna a codificação de caracteres de saída HTTP atual.

Valor Retornado

Se encoding for omitido, mb_http_output() retorna a codificação de caracteres de saída HTTP atual. Caso contrário, Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna
  • mb_http_input() - Detecta a codificação de caracteres de entrada HTTP
  • mb_detect_order() - Define/Obtém a ordem de detecção de codificação de caracteres


Define/Obtém a codificação de caracteres interna

  • « mb_http_output
  • mb_language »
  • PHP Manual
  • Strings Multibyte e Funções
  • Define/Obtém a codificação de caracteres interna

mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_internal_encoding — Define/Obtém a codificação de caracteres interna

Descrição

mb_internal_encoding(?string $encoding = null): string|bool

Define/Obtém a codificação de caracteres interna

Parâmetros

encoding

encoding é o nome da codificação de caracteres usado para a conversão de codificação de caracteres de entrada HTTP, conversão de codificação de caracteres de saída HTTP, e a codificação de caracteres padrão para funções de string definidas pelo módulo mbstring. Deve-se observar que a codificação interna é totalmente diferente da utilizada em regex multibyte.

Valor Retornado

Se encoding for definido, então Retorna true em caso de sucesso ou false em caso de falha. Nesse caso, a codificação de caracteres para regex multibyte NÃO é alterada. Se encoding for omitido, então o nome atual da codificação de caracteres é retornado.

Erros/Exceções

A partir do PHP 8.0.0, um ValueError é lançado se o valor de encoding for uma codificação inválida. Antes do PHP 8.0.0, um E_WARNING era emitido.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.
8.0.0 | Agora lança um ValueError se encoding for uma codificação inválida. Anteriormente, um E_WARNING era emitido.

Exemplos

Exemplo #1 Exemplo de mb_internal_encoding()

<?php
/* Define a codificação de caracteres interna como UTF-8 */
mb_internal_encoding("UTF-8");

/* Exibe a codificação de caracteres interna atual */
echo mb_internal_encoding();
?>

Veja Também

  • mb_http_input() - Detecta a codificação de caracteres de entrada HTTP
  • mb_http_output() - Define/Obtém a codificação de caracteres de saída HTTP
  • mb_detect_order() - Define/Obtém a ordem de detecção de codificação de caracteres
  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte


Define/Obtém o idioma atual

  • « mb_internal_encoding
  • mb_list_encodings »
  • PHP Manual
  • Strings Multibyte e Funções
  • Define/Obtém o idioma atual

mb_language

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_language — Define/Obtém o idioma atual

Descrição

mb_language(?string $language = null): string|bool

Define/Obtém o idioma atual.

Parâmetros

language

Usado para codificar mensagens de e-mail. Os idiomas válidos estão listados na tabela a seguir. mb_send_mail() usa essa configuração para codificar e-mails.

Idioma | Charset | Codificação | Alias
German/de | ISO-8859-15 | Quoted-Printable | Deutsch
English/en | ISO-8859-1 | Quoted-Printable
Armenian/hy | ArmSCII-8 | Quoted-Printable
Japanese/ja | ISO-2022-JP | BASE64
Korean/ko | ISO-2022-KR | BASE64
neutral | UTF-8 | BASE64
Russian/ru | KOI8-R | Quoted-Printable
Turkish/tr | ISO-8859-9 | Quoted-Printable
Ukrainian/ua | KOI8-U | Quoted-Printable
uni | UTF-8 | BASE64 | universal
Simplified Chinese/zh-cn | HZ | BASE64
Traditional Chinese/zh-tw | BIG-5 | BASE64

Valor Retornado

Se language for definido e language for válido, retorna true. Caso contrário, retorna false. Quando language é omitido ou null, retorna o nome do idioma como uma string.

Registro de Alterações

Versão | Descrição
8.0.0 | language é anulável agora.

Veja Também

  • mb_send_mail() - Envia email codificado


Retorna um array de todas as codificações suportadas

  • « mb_language
  • mb_ord »
  • PHP Manual
  • Strings Multibyte e Funções
  • Retorna um array de todas as codificações suportadas

mb_list_encodings

(PHP 5, PHP 7, PHP 8)

mb_list_encodings — Retorna um array de todas as codificações suportadas

Descrição

mb_list_encodings(): array

Retorna um array contendo todas as codificações suportadas.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array indexado numericamente.

Erros/Exceções

Esta função não emite erros.

Exemplos

Exemplo #1 Exemplo de mb_list_encodings()

<?php

print_r(mb_list_encodings());

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => pass
    [1] => auto
    [2] => wchar
    [3] => byte2be
    [4] => byte2le
    [5] => byte4be
    [6] => byte4le
    [7] => BASE64
    [8] => UUENCODE
    [9] => HTML-ENTITIES
    [10] => Quoted-Printable
    [11] => 7bit
    [12] => 8bit
    [13] => UCS-4
    [14] => UCS-4BE
    [15] => UCS-4LE
    [16] => UCS-2
    [17] => UCS-2BE
    [18] => UCS-2LE
    [19] => UTF-32
    [20] => UTF-32BE
    [21] => UTF-32LE
    [22] => UTF-16
    [23] => UTF-16BE
    [24] => UTF-16LE
    [25] => UTF-8
    [26] => UTF-7
    [27] => UTF7-IMAP
    [28] => ASCII
    [29] => EUC-JP
    [30] => SJIS
    [31] => eucJP-win
    [32] => SJIS-win
    [33] => JIS
    [34] => ISO-2022-JP
    [35] => Windows-1252
    [36] => ISO-8859-1
    [37] => ISO-8859-2
    [38] => ISO-8859-3
    [39] => ISO-8859-4
    [40] => ISO-8859-5
    [41] => ISO-8859-6
    [42] => ISO-8859-7
    [43] => ISO-8859-8
    [44] => ISO-8859-9
    [45] => ISO-8859-10
    [46] => ISO-8859-13
    [47] => ISO-8859-14
    [48] => ISO-8859-15
    [49] => EUC-CN
    [50] => CP936
    [51] => HZ
    [52] => EUC-TW
    [53] => BIG-5
    [54] => EUC-KR
    [55] => UHC
    [56] => ISO-2022-KR
    [57] => Windows-1251
    [58] => CP866
    [59] => KOI8-R
)

Veja Também

  • mb_encoding_aliases() - Obtém aliases de um tipo de codificação conhecido


Obtém o ponto de código Unicode do caractere

  • « mb_list_encodings
  • mb_output_handler »
  • PHP Manual
  • Strings Multibyte e Funções
  • Obtém o ponto de código Unicode do caractere

mb_ord

(PHP 7 >= 7.2.0, PHP 8)

mb_ord — Obtém o ponto de código Unicode do caractere

Descrição

mb_ord(string $string, ?string $encoding = null): int|false

Retorna o valor do ponto de código Unicode do caractere fornecido.

Esta função complementa mb_chr().

Parâmetros

string

Uma string

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

O ponto de código Unicode para o primeiro caractere de string ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Exemplos

Exemplo #1 Um exemplo básico de mb_ord()

<?php
var_dump(mb_ord("A", "UTF-8"));
var_dump(mb_ord("??", "UTF-8"));
var_dump(mb_ord("\x80", "ISO-8859-1"));
var_dump(mb_ord("\x80", "Windows-1252"));
?>

O exemplo acima produzirá:

int(65)
int(128024)
int(128)
int(8364)

Veja Também

  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna
  • mb_chr() - Retorna um caractere pelo valor do ponto de código Unicode
  • IntlChar::ord() - Retorna o valor do ponto de código Unicode do caractere
  • ord() - Converte o primeiro byte de uma string para um valor entre 0 e 255


Callback converte a codificação de caracteres no buffer de saída

  • « mb_ord
  • mb_parse_str »
  • PHP Manual
  • Strings Multibyte e Funções
  • Callback converte a codificação de caracteres no buffer de saída

mb_output_handler

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_output_handler — Callback converte a codificação de caracteres no buffer de saída

Descrição

mb_output_handler(string $string, int $status): string

mb_output_handler() é
um callback ob_start().
mb_output_handler() converte
caracteres no buffer de saída da codificação de caracteres interna para
a codificação de caracteres de saída HTTP.

Parâmetros

string

O conteúdo do buffer de saída.

status

O status do buffer de saída.

Valor Retornado

A string convertida.

Exemplos

Exemplo #1 Exemplo de mb_output_handler()

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

Notas

Nota:

Se você deseja enviar dados binários, como uma imagem, um cabeçalho Content-Type: deve ser definido usando header() antes que quaisquer dados binários sejam enviados ao cliente (por exemplo, header("Content-Type: image/png")). Se o cabeçalho Content-Type: for enviado, a conversão de codificação de caracteres de saída não será realizada.

Observe que se 'Content-Type: text/*' for enviado, o corpo do conteúdo é considerado como texto; a conversão será realizada.

Veja Também

  • ob_start() - Ativa o buffer de saída


Analisa dados GET/POST/COOKIE e define variável global

  • « mb_output_handler
  • mb_preferred_mime_name »
  • PHP Manual
  • Strings Multibyte e Funções
  • Analisa dados GET/POST/COOKIE e define variável global

mb_parse_str

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_parse_str — Analisa dados GET/POST/COOKIE e define variável global

Descrição

mb_parse_str(string $string, array &$result): bool

Analisa dados GET/POST/COOKIE e define variáveis globais. Como o PHP não fornece dados brutos POST/COOKIE, ele só pode ser usado para dados GET por enquanto. Analisa dados codificados em URL, detecta a codificação, converte a codificação para a codificação interna e define valores para o result array ou variáveis globais.

Parâmetros

string

Os dados codificados em URL.

result

Um array contendo valores decodificados e convertidos de caracteres.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O segundo parâmetro não é mais opcional.
7.2.0 | Chamar mb_parse_str() sem o segundo parâmetro foi descontinuado.

Veja Também

  • mb_detect_order() - Define/Obtém a ordem de detecção de codificação de caracteres
  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna


Obter uma string MIME charset

  • « mb_parse_str
  • mb_regex_encoding »
  • PHP Manual
  • Strings Multibyte e Funções
  • Obter uma string MIME charset

mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_preferred_mime_name — Obter uma string MIME charset

Descrição

mb_preferred_mime_name(string $encoding): string|false

Obtém MIME charset string para uma codificação específica.

Parâmetros

encoding

A codificação que está sendo verificada.

Valor Retornado

A cadeia MIME charset string para a codificação de caracteres encoding, ou false se nenhum conjunto de caracteres for preferido para a encoding fornecida.

Exemplos

Exemplo #1 Exemplo de mb_preferred_mime_name()

<?php
$outputenc = "sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>


Define/Obtém codificação de caracteres para regex multibyte

  • « mb_preferred_mime_name
  • mb_regex_set_options »
  • PHP Manual
  • Strings Multibyte e Funções
  • Define/Obtém codificação de caracteres para regex multibyte

mb_regex_encoding

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_regex_encoding — Define/Obtém codificação de caracteres para regex multibyte

Descrição

mb_regex_encoding(?string $encoding = null): string|bool

Define/obtém a codificação de caracteres para uma regex multibyte.

Parâmetros

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

Se encoding for definido, então Retorna true em caso de sucesso ou false em caso de falha. Neste caso, a codificação de caracteres interna NÃO é alterada. Se encoding for omitido, então o nome da codificação de caracteres atual para uma regex multibyte é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna
  • mb_ereg() - Correspondência de expressão regular com suporte multibyte


Define/Obtém as opções padrão para funções mbregex

  • « mb_regex_encoding
  • mb_scrub »
  • PHP Manual
  • Strings Multibyte e Funções
  • Define/Obtém as opções padrão para funções mbregex

mb_regex_set_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_regex_set_options — Define/Obtém as opções padrão para funções mbregex

Descrição

mb_regex_set_options(?string $options = null): string

Define/obtém as opções padrão descritas por options para funções de regex multibyte.

Parâmetros

options

As opções a serem definidas. Esta é uma string onde cada caractere é uma opção. Para definir um modo, o caractere de modo deve ser o último a ser definido, no entanto, pode haver apenas um modo, mas várias opções podem ser definidas.

Opções de Regex
Opção | Significado | Registro de Alterações
i | correspondência ambígua ativada
x | Ativa a forma de padrão estendida
m | '.' corresponde a quebras de linha
s | '^' -> '\A', '$' -> '\Z'
p | Mesmo que as opçõe m e s
l | Encontrar as correspondências mais longas
n | Ignorar correspondências vazias
e | eval() código resultante | Descontinuado desde o PHP 7.1.0 e removido a partir do PHP 8.0.0

Nota:

A opção "e" não tem efeito quando definida através de mb_regex_set_options(). Use-a com mb_ereg_replace() ou mb_eregi_replace().

Modos de sintaxe Regex (apenas um pode ser definido)
Modo | Significado
j | Java (Sun java.util.regex)
u | GNU regex
g | grep
c | Emacs
r | Ruby
z | Perl
b | Regex Básico POSIX
d | Regex Estendido POSIX

Valor Retornado

As opções anteriores. Se options for omitido ou null, retorna a string que descreve as opções atuais.

Registro de Alterações

Versão | Descrição
8.0.0 | Se o parâmetro options for fornecido e não for null, as opções anteriores são retornadas. Anteriormente, as opções atuais eram retornadas.
8.0.0 | options é anulável agora.
8.0.0 | A opção "e" agora lança um ValueError.
7.1.0 | A opção "e" agora emite um E_DEPRECATED.

Veja Também

  • mb_split() - Divide uma string multibyte usando expressão regular
  • mb_ereg() - Correspondência de expressão regular com suporte multibyte
  • mb_eregi() - Correspondência de expressão regular sem diferenciar maiúsculas e minúsculas com suporte multibyte


Substitui sequências de bytes malformadas pelo caractere substituto

  • « mb_regex_set_options
  • mb_send_mail »
  • PHP Manual
  • Strings Multibyte e Funções
  • Substitui sequências de bytes malformadas pelo caractere substituto

mb_scrub

(PHP 7 >= 7.2.0, PHP 8)

mb_scrub — Substitui sequências de bytes malformadas pelo caractere substituto

Descrição

mb_scrub(string $string, ?string $encoding = null): string

Realiza uma conversão de conjunto de caracteres a partir da codificação especificada, ou a codificação padrão se nenhuma codificação for especificada, para a mesma codificação. Isso tem o efeito de substituir qualquer sequência de bytes inválida pelo caractere substituto.

Parâmetros

string

A string de entrada.

encoding

A codificação usada para interpretar string. Se for omitida ou null, o mbstring.internal_encoding setting será usado se configurado, caso contrário, o default_charset setting será usado.

Valor Retornado

O resultado string com sequências de bytes inválidas substituídas.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.


Envia email codificado

  • « mb_scrub
  • mb_split »
  • PHP Manual
  • Strings Multibyte e Funções
  • Envia email codificado

mb_send_mail

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_send_mail — Envia email codificado

Descrição

mb_send_mail(
string $to,
string $subject,
string $message,
array|string $additional_headers = [],
?string $additional_params = null
): bool

Envia e-mails. Cabeçalhos e mensagens são convertidos e codificados de acordo com a configuração de mb_language(). É uma função wrapper para mail(), então veja também mail() para detalhes.

Parâmetros

to

Os endereços de e-mail para os quais o e-mail será enviado. Múltiplos destinatários podem ser especificados separando cada endereço em to por vírgula. Este parâmetro não é automaticamente codificado.

subject

O assunto do e-mail.

message

A mensagem do e-mail.

additional_headers (opcional)

String ou array a ser inserido no final do cabeçalho do e-mail.

Isso é tipicamente usado para adicionar cabeçalhos extras (De, Cc e Bcc). Múltiplos cabeçalhos extras devem ser separados por um CRLF (\r\n). Valide o parâmetro para não injetar cabeçalhos indesejados por atacantes.

Se um array for passado, suas chaves são os nomes dos cabeçalhos e seus valores são os respectivos valores dos cabeçalhos.

Nota:

Ao enviar e-mails, o e-mail deve conter um cabeçalho From. Isso pode ser configurado com o parâmetro additional_headers, ou um padrão pode ser configurado no php.ini.

Falhar em fazer isso resultará em uma mensagem de erro semelhante a Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. O cabeçalho From também define Return-Path no Windows.

Nota:

Se as mensagens não forem recebidas, tente usar apenas LF (\n). Alguns agentes de transferência de email Unix (notavelmente » qmail) substituem LF por CRLF automaticamente (o que leva a duplicação de CR se CRLF for usado). Isso deve ser usado apenas como último recurso, pois não está em conformidade com » RFC 2822.

additional_params

additional_params é um parâmetro de linha de comando MTA útil ao definir o cabeçalho Return-Path correto ao usar sendmail.

Este parâmetro é escapado internamente por escapeshellcmd() para evitar a execução de comandos. escapeshellcmd() evita a execução de comandos, mas permite adicionar parâmetros adicionais. Por razões de segurança, este parâmetro deve ser validado.

Como escapeshellcmd() é aplicado automaticamente, alguns caracteres que são permitidos como endereços de e-mail por RFCs da Internet não podem ser usados. Programas que são obrigados a usar esses caracteres mail() não podem ser usados.

O usuário que o servidor da web executa deve ser adicionado como um usuário confiável para o arquivo de configuração do sendmail para evitar a adição de um cabeçalho 'X-Warning' à mensagem quando o remetente do envelope (-f) é definido usando este método. Para usuários do sendmail, este arquivo é /etc/mail/trusted-users.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | additional_params é anulável agora.
7.2.0 | O parâmetro additional_headers agora também aceita um array.

Veja Também

  • mail() - Envia e-mail
  • mb_encode_mimeheader() - Codificar string para cabeçalho MIME
  • mb_language() - Define/Obtém o idioma atual


Divide uma string multibyte usando expressão regular

  • « mb_send_mail
  • mb_str_pad »
  • PHP Manual
  • Strings Multibyte e Funções
  • Divide uma string multibyte usando expressão regular

mb_split

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_split — Divide uma string multibyte usando expressão regular

Descrição

mb_split(string $pattern, string $string, int $limit = -1): array|false

Divide uma string multibyte usando expressão regular pattern e retorna o resultado como um array.

Parâmetros

pattern

O padrão da expressão regular.

string

A string sendo dividida.

limit
Se o parâmetro opcional limit for especificado, ele será dividido em limit elementos no máximo.

Valor Retornado

O resultado como um array, ou false em caso de falha.

Notas

Nota:

A codificação de caracteres especificada por mb_regex_encoding() será usada como a codificação de caracteres para esta função por padrão.

Veja Também

  • mb_regex_encoding() - Define/Obtém codificação de caracteres para regex multibyte
  • mb_ereg() - Correspondência de expressão regular com suporte multibyte


Preenche uma string multibyte para um comprimento específico com outra string multibyte

  • « mb_split
  • mb_str_split »
  • PHP Manual
  • Strings Multibyte e Funções
  • Preenche uma string multibyte para um comprimento específico com outra string multibyte

mb_str_pad

(PHP 8 >= PHP 8.3.0)

mb_str_pad — Preenche uma string multibyte para um comprimento específico com outra string multibyte

Descrição

mb_str_pad(
string $string,
int $length,
string $pad_string = " ",
int $pad_type = STR_PAD_RIGHT,
?string $encoding = null
): string

Esta função retorna a string preenchida à esquerda, à direita ou em ambos os lados até o comprimento de preenchimento especificado, onde o comprimento é medido em pontos de código Unicode. Se o argumento opcional pad_string não for fornecido, a string será preenchida com espaços, caso contrário, ela será preenchida com caracteres de pad_string até o limite.

Parâmetros

string

A string de entrada.

length

Se o valor de length for negativo, menor ou igual ao comprimento da string de entrada, nenhum preenchimento ocorre, e a string será retornada.

pad_string

Nota:

O pad_string pode ser truncado se o número necessário de caracteres de preenchimento não puder ser dividido uniformemente pelo comprimento de pad_string.

pad_type

O argumento opcional pad_type pode ser STR_PAD_RIGHT, STR_PAD_LEFT, ou STR_PAD_BOTH. Por padrão, STR_PAD_RIGHT.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

Retorna a string preenchida.

Exemplos

Exemplo #1 Exemplo de mb_str_pad()

<?php
var_dump(mb_str_pad('??', 6, '???', STR_PAD_RIGHT)); // string(18) "??????"
var_dump(mb_str_pad('??', 6, '???', STR_PAD_LEFT)); // string(18) "??????"
var_dump(mb_str_pad('??', 6, '???', STR_PAD_BOTH)); // string(18) "??????"

var_dump(mb_str_pad("??", 3, "?", STR_PAD_LEFT)); // string(10) "????"
?>


Dada uma string multibyte, retorna um array de seus caracteres

  • « mb_str_pad
  • mb_strcut »
  • PHP Manual
  • Strings Multibyte e Funções
  • Dada uma string multibyte, retorna um array de seus caracteres

mb_str_split

(PHP 7 >= 7.4.0, PHP 8)

mb_str_split — Dada uma string multibyte, retorna um array de seus caracteres

Descrição

mb_str_split(string $string, int $length = 1, ?string $encoding = null): array

Esta função retornará um array de strings, sendo uma versão de str_split() com suporte para codificações de tamanho de caractere variável, bem como codificações de tamanho fixo de caracteres de 1, 2 ou 4 bytes. Se o parâmetro length for especificado, a string será dividida em partes do comprimento especificado em caracteres (não bytes). O parâmetro encoding pode ser especificado opcionalmente e é uma boa prática fazê-lo.

Parâmetros

string

A string para dividir em caracteres ou partes.

length

Se especificado, cada elemento do array retornado será composto por vários caracteres em vez de um único caractere.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Uma string especificando uma das codificações suportadas.

Valor Retornado

mb_str_split() retorna um array de strings.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.
8.0.0 | Esta função não retorna mais false em caso de falha.

Veja Também

  • str_split() - Convert a string to an array


Obtém parte da string

  • « mb_str_split
  • mb_strimwidth »
  • PHP Manual
  • Strings Multibyte e Funções
  • Obtém parte da string

mb_strcut

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strcut — Obtém parte da string

Descrição

mb_strcut(
string $string,
int $start,
?int $length = null,
?string $encoding = null
): string

mb_strcut() extrai uma substring de uma string de forma semelhante a mb_substr(), mas opera em bytes em vez de caracteres. Se a posição de corte estiver entre dois bytes de um caractere multibyte, o corte é realizado a partir do primeiro byte desse caractere. Essa também é a diferença para a função substr(), que simplesmente cortaria a string entre os bytes e resultaria em uma sequência de bytes malformada.

Parâmetros

string

A string a ser cortada.

start

Se start for não negativo, a string retornada começará na posição de byte start em string, contando a partir do zero. Por exemplo, na string 'abcdef', o byte na posição 0 é 'a', o byte na posição 2 é 'c', e assim por diante.

Se start for negativo, a string retornada começará no byte start contando a partir do final de string. No entanto, se o valor absoluto de um start negativo for maior que o comprimento da string, a parte retornada começará do início de string.

length

Comprimento em bytes. Se omitido ou NULL for passado, extrai todos os bytes até o final da string.

Se length for negativo, a string retornada terminará no byte de número length contando a partir do final de string. No entanto, se o valor absoluto de um length negativo for maior que o número de caracteres após a posição de start, uma string vazia será retornada.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

mb_strcut() retorna a parte de string especificada pelos parâmetros start e length.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • mb_substr() - Obtém parte da string
  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna


Obtém string truncada com largura especificada

  • « mb_strcut
  • mb_stripos »
  • PHP Manual
  • Strings Multibyte e Funções
  • Obtém string truncada com largura especificada

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strimwidth — Obtém string truncada com largura especificada

Descrição

mb_strimwidth(
string $string,
int $start,
int $width,
string $trim_marker = "",
?string $encoding = null
): string

Trunca a string string para a largura especificada width, onde caracteres de meia largura contam como 1, e caracteres de largura total contam como 2. Consulte » http://www.unicode.org/reports/tr11/ para detalhes sobre larguras de caracteres do leste asiático.

Parâmetros

string

A string a ser decodificada.

start

O deslocamento da posição inicial. Número de caracteres a partir do início da string (o primeiro caractere é 0), ou se start for negativo, o número de caracteres a partir do final da string.

width

A largura do corte desejado. Se uma largura negativa for especificada, conta a partir do final da string.

Nota:

Passar uma largura negativa foi descontinuado a partir do PHP 8.3.0.

trim_marker

Uma string que é adicionada ao final de string quando a string é truncada.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

A string truncada. Se trim_marker estiver definido, trim_marker substitui os últimos caracteres para corresponder à width.

Registro de Alterações

Versão | Descrição
8.3.0 | Passar uma largura negativa width para mb_strimwidth() agora foi descontinuado.
8.0.0 | O parâmetro encoding agora pode ser nulo.
7.1.0 | Adicionado suporte para starts e widths negativos.

Exemplos

Exemplo #1 Exemplo de mb_strimwidth()

<?php
echo mb_strimwidth("Hello World", 0, 10, "...");
// saída: "Hello W..."
?>

Veja Também

  • mb_strwidth() - Retorna a largura da string
  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna


Encontra a posição da primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas

  • « mb_strimwidth
  • mb_stristr »
  • PHP Manual
  • Strings Multibyte e Funções
  • Encontra a posição da primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas

mb_stripos

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_stripos — Encontra a posição da primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas

Descrição

mb_stripos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

mb_stripos() retorna a posição numérica da primeira ocorrência de needle na string haystack. Ao contrário de mb_strpos(), mb_stripos() não faz distinção entre maiúsculas e minúsculas. Se needle não for encontrado, retorna false.

Parâmetros

haystack

A string da qual obter a posição da primeira ocorrência de needle

needle

A string a ser encontrada em haystack

offset

A posição em haystack para iniciar a pesquisa. Um offset negativo conta a partir do final da string.

encoding

Nome da codificação de caracteres a ser usada. Se omitido, a codificação interna de caracteres é usada.

Valor Retornado

Retorna a posição numérica da primeira ocorrência de needle na string haystack, ou false se needle não for encontrado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | O parâmetro encoding agora pode ser nulo.
7.1.0 | Adicionado suporte para offset negativo.

Veja Também

  • stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
  • strpos() - Find the position of the first occurrence of a substring in a string
  • mb_strpos() - Encontrar a posição da primeira ocorrência de uma string em outra


Encontra a primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas

  • « mb_stripos
  • mb_strlen »
  • PHP Manual
  • Strings Multibyte e Funções
  • Encontra a primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas

mb_stristr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_stristr — Encontra a primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas

Descrição

mb_stristr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

mb_stristr() encontra a primeira ocorrência de needle em haystack e retorna a parte de haystack. Ao contrário de mb_strstr(), mb_stristr() não faz distinção entre maiúsculas e minúsculas. Se needle não for encontrado, retorna false.

Parâmetros

haystack

A string da qual obter a primeira ocorrência de needle

needle

A string a ser encontrada em haystack

before_needle

Determina qual parte de haystack esta função retorna. Se definido como true, retorna toda haystack desde o início até a primeira ocorrência de needle (excluindo needle). Se definido como false, retorna toda haystack desde a primeira ocorrência de needle até o final (incluindo needle).

encoding

Nome da codificação de caracteres a ser usada. Se omitido, a codificação interna de caracteres é usada.

Valor Retornado

Retorna a parte de haystack, ou false se needle não for encontrado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • stristr() - Case-insensitive strstr
  • strstr() - Find the first occurrence of a string
  • mb_strstr() - Encontra a primeira ocorrência de uma string em outra


Obtém o comprimento da string

  • « mb_stristr
  • mb_strpos »
  • PHP Manual
  • Strings Multibyte e Funções
  • Obtém o comprimento da string

mb_strlen

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strlen — Obtém o comprimento da string

Descrição

mb_strlen(string $string, ?string $encoding = null): int

Obtém o comprimento de uma string.

Parâmetros

string

A string sendo verificada quanto ao comprimento.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

Retorna o número de caracteres em string string tendo codificação de caracteres encoding. Um caractere multibyte é contado como 1.

Erros/Exceções

Se a codificação for desconhecida, um erro do nível E_WARNING é gerado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna
  • grapheme_strlen() - Obtém o comprimento de uma string em unidade de grafema
  • iconv_strlen() - Retorna a contagem de caracteres da string
  • strlen() - Retorna o tamanho de uma string


Encontrar a posição da primeira ocorrência de uma string em outra

  • « mb_strlen
  • mb_strrchr »
  • PHP Manual
  • Strings Multibyte e Funções
  • Encontrar a posição da primeira ocorrência de uma string em outra

mb_strpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strpos — Encontrar a posição da primeira ocorrência de uma string em outra

Descrição

mb_strpos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

Encontra a posição da primeira ocorrência de uma string em outra string.

Realiza uma operação strpos() segura para multibyte com base no número de caracteres. A posição do primeiro caractere é 0, a posição do segundo caractere é 1, e assim por diante.

Parâmetros

haystack

A string sendo verificada.

needle

A string a ser encontrada em haystack. Em contraste com strpos(), valores numéricos não são aplicados como o valor ordinal de um caractere..

offset

O deslocamento da pesquisa. Se não for especificado, 0 é usado. Um deslocamento negativo conta a partir do final da string.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

Retorna a posição numérica da primeira ocorrência de needle na haystack string. Se needle não for encontrada, retorna false.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | O parâmetro encoding agora pode ser nulo.
7.1.0 | Suporte para deslocamentos negativos offset foi adicionado.

Veja Também

  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna
  • strpos() - Find the position of the first occurrence of a substring in a string


Encontrar a última ocorrência de um caractere em uma string dentro de outra

  • « mb_strpos
  • mb_strrichr »
  • PHP Manual
  • Strings Multibyte e Funções
  • Encontrar a última ocorrência de um caractere em uma string dentro de outra

mb_strrchr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strrchr — Encontrar a última ocorrência de um caractere em uma string dentro de outra

Descrição

mb_strrchr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

mb_strrchr() encontra a última ocorrência de needle em haystack e retorna a porção de haystack. Se needle não for encontrada, retorna false.

Parâmetros

haystack

A string da qual obter a última ocorrência de needle

needle

A string a ser encontrada em haystack.

before_needle

Determina qual porção de haystack esta função retorna. Se definido como true, retorna toda haystack desde o início até a última ocorrência de needle. Se definido como false, retorna toda haystack desde a última ocorrência de needle até o final.

encoding

Nome do conjunto de caracteres a ser usado. Se omitido, é usado o conjunto de caracteres interno.

Valor Retornado

Retorna a porção de haystack. ou false se needle não for encontrada.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • strrchr() - Find the last occurrence of a character in a string
  • mb_strstr() - Encontra a primeira ocorrência de uma string em outra
  • mb_strrichr() - Encontra a última ocorrência de um caractere em uma string dentro de outra, sem diferenciar maiúsculas de minúsculas


Encontra a última ocorrência de um caractere em uma string dentro de outra, sem diferenciar maiúsculas de minúsculas

  • « mb_strrchr
  • mb_strripos »
  • PHP Manual
  • Strings Multibyte e Funções
  • Encontra a última ocorrência de um caractere em uma string dentro de outra, sem diferenciar maiúsculas de minúsculas

mb_strrichr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strrichr — Encontra a última ocorrência de um caractere em uma string dentro de outra, sem diferenciar maiúsculas de minúsculas

Descrição

mb_strrichr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

mb_strrichr() encontra a última ocorrência de needle em haystack e retorna a porção de haystack. Ao contrário de mb_strrchr(), mb_strrichr() é insensível a maiúsculas e minúsculas. Se needle não for encontrada, retorna false.

Parâmetros

haystack

A string da qual obter a última ocorrência de needle

needle

A string a ser encontrada em haystack

before_needle

Determina qual porção de haystack esta função retorna. Se definido como true, retorna toda haystack desde o início até a última ocorrência de needle. Se definido como false, retorna toda haystack desde a última ocorrência de needle até o final.

encoding

Nome do conjunto de caracteres a ser usado. Se omitido, é usado o conjunto de caracteres interno.

Valor Retornado

Retorna a porção de haystack. ou false se needle não for encontrada.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • mb_stristr() - Encontra a primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
  • mb_strrchr() - Encontrar a última ocorrência de um caractere em uma string dentro de outra


Encontra a posição da última ocorrência de uma string em outra, sem diferenciar maiúsculas de minúsculas

  • « mb_strrichr
  • mb_strrpos »
  • PHP Manual
  • Strings Multibyte e Funções
  • Encontra a posição da última ocorrência de uma string em outra, sem diferenciar maiúsculas de minúsculas

mb_strripos

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strripos — Encontra a posição da última ocorrência de uma string em outra, sem diferenciar maiúsculas de minúsculas

Descrição

mb_strripos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

mb_strripos() realiza uma operação multi-byte segura de strripos() com base no número de caracteres. A posição de needle é contada a partir do início de haystack. A posição do primeiro caractere é 0. A posição do segundo caractere é 1. Ao contrário de mb_strrpos(), mb_strripos() é insensível a maiúsculas e minúsculas.

Parâmetros

haystack

A string da qual obter a posição da última ocorrência de needle

needle

A string a ser encontrada em haystack

offset

A posição em haystack para começar a busca

encoding

Nome do conjunto de caracteres a ser usado. Se omitido, é usado o conjunto de caracteres interno.

Valor Retornado

Retorna a posição numérica da última ocorrência de needle na string haystack, ou false se needle não for encontrada.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • strripos() - Find the position of the last occurrence of a case-insensitive substring in a string
  • strrpos() - Find the position of the last occurrence of a substring in a string
  • mb_strrpos() - Encontra a posição da última ocorrência de uma string em outra string


Encontra a posição da última ocorrência de uma string em outra string

  • « mb_strripos
  • mb_strstr »
  • PHP Manual
  • Strings Multibyte e Funções
  • Encontra a posição da última ocorrência de uma string em outra string

mb_strrpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strrpos — Encontra a posição da última ocorrência de uma string em outra string

Descrição

mb_strrpos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

Realiza uma operação multi-byte segura strrpos() com base no número de caracteres. A posição de needle é contada a partir do início de haystack. A posição do primeiro caractere é 0. A posição do segundo caractere é 1.

Parâmetros

haystack

A string que está sendo verificada, para a última ocorrência de needle

needle

A string a ser encontrada em haystack.

offset
Pode ser especificado para começar a busca em um número arbitrário de caracteres na string. Valores negativos interromperão a busca em um ponto arbitrário antes do final da string.
encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

Retorna a posição numérica da última ocorrência de needle na string haystack. Se needle não for encontrada, retorna false.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | O envio do encoding como terceiro argumento em vez de um deslocamento foi removido.
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • mb_strpos() - Encontrar a posição da primeira ocorrência de uma string em outra
  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna
  • strrpos() - Find the position of the last occurrence of a substring in a string


Encontra a primeira ocorrência de uma string em outra

  • « mb_strrpos
  • mb_strtolower »
  • PHP Manual
  • Strings Multibyte e Funções
  • Encontra a primeira ocorrência de uma string em outra

mb_strstr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strstr — Encontra a primeira ocorrência de uma string em outra

Descrição

mb_strstr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

mb_strstr() encontra a primeira ocorrência de needle em haystack e retorna a porção de haystack. Se needle não for encontrado, retorna false.

Parâmetros

haystack

A string da qual obter a primeira ocorrência de needle

needle

A string a ser encontrada em haystack

before_needle

Determina qual parte de haystack essa função retorna. Se definido como true, retorna toda a haystack desde o início até a primeira ocorrência de needle (excluindo needle). Se definido como false, retorna toda a haystack da primeira ocorrência de needle até o final (incluindo needle).

encoding

Nome do conjunto de caracteres a ser usado. Se omitido, é utilizado o conjunto de caracteres interno.

Valor Retornado

Retorna a porção de haystack, ou false se needle não for encontrado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • stristr() - Case-insensitive strstr
  • strstr() - Find the first occurrence of a string
  • mb_stristr() - Encontra a primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas


Torna uma string minúscula

  • « mb_strstr
  • mb_strtoupper »
  • PHP Manual
  • Strings Multibyte e Funções
  • Torna uma string minúscula

mb_strtolower

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_strtolower — Torna uma string minúscula

Descrição

mb_strtolower(string $string, ?string $encoding = null): string

Retorna string com todos os caracteres alfabéticos convertidos em minúsculas.

Parâmetros

string

A string a ser convertida em minúsculas.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

string com todos os caracteres alfabéticos convertidos em minúsculas.

Exemplos

Exemplo #1 Exemplo de mb_strtolower()

<?php
$str = "Maria Tinha Um Cordeirinho e Ela O AMAVA";
$str = mb_strtolower($str);
echo $str; // Imprime maria tinha um cordeirinho e ela o amava
?>

Exemplo #2 Exemplo de mb_strtolower() com texto UTF-8 não-Latin

<?php
$str = "????st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????";
$str = mb_strtolower($str, 'UTF-8');
echo $str; // Imprime t???st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????
?>

Notas

Ao contrário de strtolower(), 'alphabetic' é determinado pelas propriedades de caractere Unicode. Portanto, o comportamento desta função não é afetado pelas configurações de localidade e pode converter qualquer caractere com uma propriedade 'alphabetic', como um trema (ä).

Para obter mais informações sobre as propriedades Unicode, consulte » http://www.unicode.org/reports/tr21/.

Veja Também

  • mb_strtoupper() - Faz uma string ficar em maiúsculas
  • mb_convert_case() - Realiza a conversão de caixa em uma string
  • strtolower() - Converte uma string para minúsculas


Faz uma string ficar em maiúsculas

  • « mb_strtolower
  • mb_strwidth »
  • PHP Manual
  • Strings Multibyte e Funções
  • Faz uma string ficar em maiúsculas

mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_strtoupper — Faz uma string ficar em maiúsculas

Descrição

mb_strtoupper(string $string, ?string $encoding = null): string

Retorna string com todos os caracteres alfabéticos convertidos para maiúsculas.

Parâmetros

string

A string que será convertida para maiúsculas.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

string com todos os caracteres alfabéticos convertidos para maiúsculas.

Exemplos

Exemplo #1 Exemplo de mb_strtoupper()

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtoupper($str);
echo $str; // Imprime MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Exemplo #2 Exemplo de mb_strtoupper() com texto UTF-8 não latino

<?php
$str = "????st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????";
$str = mb_strtoupper($str, 'UTF-8');
echo $str; // Imprime ????S?? ?????? ??F?S ?????? G?, ???S??????? ???? ?OT??? ????S
?>

Notas

Ao contrário de strtoupper(), 'alfabético' é determinado pelas propriedades de caracteres Unicode. Assim, o comportamento desta função não é afetado pelas configurações de localidade e pode converter qualquer caractere que tenha a propriedade 'alfabético', como a-umlaut (ä).

Para obter mais informações sobre as propriedades Unicode, consulte » http://www.unicode.org/reports/tr21/.

Veja Também

  • mb_strtolower() - Torna uma string minúscula
  • mb_convert_case() - Realiza a conversão de caixa em uma string
  • strtoupper() - Make a string uppercase


Retorna a largura da string

  • « mb_strtoupper
  • mb_substitute_character »
  • PHP Manual
  • Strings Multibyte e Funções
  • Retorna a largura da string

mb_strwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strwidth — Retorna a largura da string

Descrição

mb_strwidth(string $string, ?string $encoding = null): int

Retorna a largura da string string, onde os caracteres de meia largura contam como 1, e os caracteres de largura total contam como 2. Consulte » http://www.unicode.org/reports/tr11/ para detalhes sobre larguras de caracteres no leste asiático.

Os caracteres de largura total são: U+1100-U+115F, U+11A3-U+11A7, U+11FA-U+11FF, U+2329-U+232A, U+2E80-U+2E99, U+2E9B-U+2EF3, U+2F00-U+2FD5, U+2FF0-U+2FFB, U+3000-U+303E, U+3041-U+3096, U+3099-U+30FF, U+3105-U+312D, U+3131-U+318E, U+3190-U+31BA, U+31C0-U+31E3, U+31F0-U+321E, U+3220-U+3247, U+3250-U+32FE, U+3300-U+4DBF, U+4E00-U+A48C, U+A490-U+A4C6, U+A960-U+A97C, U+AC00-U+D7A3, U+D7B0-U+D7C6, U+D7CB-U+D7FB, U+F900-U+FAFF, U+FE10-U+FE19, U+FE30-U+FE52, U+FE54-U+FE66, U+FE68-U+FE6B, U+FF01-U+FF60, U+FFE0-U+FFE6, U+1B000-U+1B001, U+1F200-U+1F202, U+1F210-U+1F23A, U+1F240-U+1F248, U+1F250-U+1F251, U+20000-U+2FFFD, U+30000-U+3FFFD. Todos os outros caracteres são de meia largura.

Parâmetros

string

A string a ser decodificada.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

A largura da string string.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de mb_strwidth()

<?php
var_dump(
mb_strwidth('a'), // LATIN SMALL LETTER A
mb_strwidth("\u{ff41}") // FULLWIDTH LATIN SMALL LETTER A
);
?>

O exemplo acima produzirá:

int(1)
int(2)

Veja Também

  • mb_strimwidth() - Obtém string truncada com largura especificada
  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna


Define/Obtém caractere de substituição

  • « mb_strwidth
  • mb_substr_count »
  • PHP Manual
  • Strings Multibyte e Funções
  • Define/Obtém caractere de substituição

mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_substitute_character — Define/Obtém caractere de substituição

Descrição

mb_substitute_character(string|int|null $substitute_character = null): string|int|bool

Especifica um caractere de substituição quando a codificação de caracteres de entrada é inválida ou o código de caractere não existe na codificação de caracteres de saída. Caracteres inválidos podem ser substituídos por "none" (sem saída), string ou valor int (valor do código de caractere Unicode).

Essa configuração afeta as funções mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler()
e mb_send_mail().

Parâmetros

substitute_character

Especifique o valor Unicode como um int, ou como uma das seguintes strings:

  • "none": sem saída
  • "long": Valor do código de caractere de saída (Exemplo: U+3000, JIS+7E7E)
  • "entity": Entidade de caractere de saída (Exemplo: &#x200;)

Valor Retornado

Se substitute_character for configurado, retorna true para sucesso, caso contrário, retorna false. Se substitute_character não estiver configurado, retorna a configuração atual.

Registro de Alterações

Versão | Descrição
8.0.0 | Passar uma string vazia para substitute_character não é mais suportado; deve-se passar "none" em vez disso.
8.0.0 | O parâmetro encoding agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de mb_substitute_character()

<?php
/* Definir com Unicode U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Definir no formato hexadecimal */
mb_substitute_character("long");

/* Exibir configuração atual */
echo mb_substitute_character();
?>


Conta o número de ocorrências de substring

  • « mb_substitute_character
  • mb_substr »
  • PHP Manual
  • Strings Multibyte e Funções
  • Conta o número de ocorrências de substring

mb_substr_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_substr_count — Conta o número de ocorrências de substring

Descrição

mb_substr_count(string $haystack, string $needle, ?string $encoding = null): int

Conta o número de vezes que a substring needle ocorre na haystack string.

Parâmetros

haystack

A string sendo verificada.

needle

A string sendo procurada.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

O número de vezes que a substring needle ocorre na haystack string.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de mb_substr_count()

<?php
echo mb_substr_count("This is a test", "is"); // Imprime 2
?>

Veja Também

  • mb_strpos() - Encontrar a posição da primeira ocorrência de uma string em outra
  • mb_substr() - Obtém parte da string
  • substr_count() - Conta o número de ocorrências de uma substring


Obtém parte da string

  • « mb_substr_count
  • Pspell »
  • PHP Manual
  • Strings Multibyte e Funções
  • Obtém parte da string

mb_substr

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_substr — Obtém parte da string

Descrição

mb_substr(
string $string,
int $start,
?int $length = null,
?string $encoding = null
): string

Realiza uma operação de substr() segura para múltiplos bytes baseada no número de caracteres. A posição é contada a partir do início de string. A posição do primeiro caractere é 0. A posição do segundo caractere é 1, e assim por diante.

Parâmetros

string

A string da qual extrair a substring.

start

Se start for não negativo, a string retornada começará na posição start-ésima em string, contando a partir de zero. Por exemplo, na string 'abcdef', o caractere na posição 0 é 'a', o caractere na posição 2 é 'c', e assim por diante.

Se start for negativo, a string retornada começará no caractere start-ésimo a partir do final de string.

length

Número máximo de caracteres a serem usados de string. Se omitido ou NULL for passado, extrai todos os caracteres até o final da string.

encoding

O parâmetro encoding é a codificação de caracteres. Se for omitido ou null, o valor da codificação de caracteres interna será usado.

Valor Retornado

mb_substr() retorna a porção de string especificada pelos parâmetros start e length.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro encoding agora pode ser nulo.

Veja Também

  • mb_strcut() - Obtém parte da string
  • mb_internal_encoding() - Define/Obtém a codificação de caracteres interna


Pspell

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Pspell Funções
    • pspell_add_to_personal — Add the word to a personal wordlist
    • pspell_add_to_session — Add the word to the wordlist in the current session
    • pspell_check — Check a word
    • pspell_clear_session — Clear the current session
    • pspell_config_create — Create a config used to open a dictionary
    • pspell_config_data_dir — Location of language data files
    • pspell_config_dict_dir — Location of the main word list
    • 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
  • PSpell\Dictionary — The PSpell\Dictionary class
  • PSpell\Config — The PSpell\Config class


Introdução

These functions allow you to check the spelling of a word and offer suggestions.


Dependências

To compile PHP with pspell support, you need the aspell library, available from » http://aspell.net/.


Instalação

If you have the libraries needed add the --with-pspell[=dir] option when compiling PHP.

Nota: Note to Win32 Users

Para que esta extensão funcione, existem arquivos DLL que devem estar disponíveis no PATH do sistema Windows. Para saber como fazer isso, veja a FAQ intitulada "Como eu adiciono o meu diretório PHP ao PATH do Windows". Embora copiar arquivos DLL da pasta do PHP para o diretório system do Windows também funcione (porque o diretório system está, por padrão, no PATH do sistema), isso não é recomendado. Esta extensão requer que os seguintes arquivos estejam no PATH: aspell-15.dll from the bin folder of the aspell installation.

Win32 support requires at least aspell version 0.50.


Tipos de Recurso

Prior to PHP 8.1.0, there were two resource types used in this extension. The first one is the dictionary link identifier, the second is a resource which holds pspell config.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

PSPELL_FAST (int)
PSPELL_NORMAL (int)
PSPELL_BAD_SPELLERS (int)
PSPELL_RUN_TOGETHER (int)


Pspell Funções

Índice

  • pspell_add_to_personal — Add the word to a personal wordlist
  • pspell_add_to_session — Add the word to the wordlist in the current session
  • pspell_check — Check a word
  • pspell_clear_session — Clear the current session
  • pspell_config_create — Create a config used to open a dictionary
  • pspell_config_data_dir — Location of language data files
  • pspell_config_dict_dir — Location of the main word list
  • 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


Add the word to a personal wordlist

  • « Pspell Funções
  • pspell_add_to_session »
  • PHP Manual
  • Pspell Funções
  • Add the word to a personal wordlist

pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_add_to_personal — Add the word to a personal wordlist

Descrição

pspell_add_to_personal(PSpell\Dictionary $dictionary, string $word): bool

pspell_add_to_personal() adds a word to the personal wordlist. If you used pspell_new_config() with pspell_config_personal() to open the dictionary, you can save the wordlist later with pspell_save_wordlist().

Parâmetros

dictionary

Uma instância de PSpell\Dictionary.

word

The added word.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro dictionary agora espera uma instância de PSpell\Dictionary; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell, "Vlad");
pspell_save_wordlist($pspell);
?>

Notas

Nota:

This function will not work unless you have pspell .11.2 and aspell .32.5 or later.


Add the word to the wordlist in the current session

  • « pspell_add_to_personal
  • pspell_check »
  • PHP Manual
  • Pspell Funções
  • Add the word to the wordlist in the current session

pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_add_to_session — Add the word to the wordlist in the current session

Descrição

pspell_add_to_session(PSpell\Dictionary $dictionary, string $word): bool

pspell_add_to_session() adds a word to the wordlist associated with the current session. It is very similar to pspell_add_to_personal()

Parâmetros

dictionary

Uma instância de PSpell\Dictionary.

word

The added word.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro dictionary agora espera uma instância de PSpell\Dictionary; anteriormente, um resource era esperado.


Check a word

  • « pspell_add_to_session
  • pspell_clear_session »
  • PHP Manual
  • Pspell Funções
  • Check a word

pspell_check

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_check — Check a word

Descrição

pspell_check(PSpell\Dictionary $dictionary, string $word): bool

pspell_check() checks the spelling of a word.

Parâmetros

dictionary

Uma instância de PSpell\Dictionary.

word

The tested word.

Valor Retornado

Returns true if the spelling is correct, false if not.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro dictionary agora espera uma instância de PSpell\Dictionary; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pspell_check() Example

<?php
$pspell = pspell_new("en");

if (pspell_check($pspell, "testt")) {
echo "This is a valid spelling";
} else {
echo "Sorry, wrong spelling";
}
?>


Clear the current session

  • « pspell_check
  • pspell_config_create »
  • PHP Manual
  • Pspell Funções
  • Clear the current session

pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_clear_session — Clear the current session

Descrição

pspell_clear_session(PSpell\Dictionary $dictionary): bool

pspell_clear_session() clears the current session. The current wordlist becomes blank, and, for example, if you try to save it with pspell_save_wordlist(), nothing happens.

Parâmetros

dictionary

Uma instância de PSpell\Dictionary.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro dictionary agora espera uma instância de PSpell\Dictionary; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pspell_add_to_personal() Example

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell, "Vlad");
pspell_clear_session($pspell);
pspell_save_wordlist($pspell); //"Vlad" will not be saved
?>


Create a config used to open a dictionary

  • « pspell_clear_session
  • pspell_config_data_dir »
  • PHP Manual
  • Pspell Funções
  • Create a config used to open a dictionary

pspell_config_create

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_create — Create a config used to open a dictionary

Descrição

pspell_config_create(
string $language,
string $spelling = "",
string $jargon = "",
string $encoding = ""
): PSpell\Config

Create a config used to open a dictionary.

pspell_config_create() has a very similar syntax to pspell_new(). In fact, using pspell_config_create() immediately 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.

For more information and examples, check out inline manual pspell website:» http://aspell.net/.

Parâmetros

language

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.

spelling

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

jargon

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

encoding

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.

Valor Retornado

Returns an PSpell\Config instance.

Registro de Alterações

Versão | Descrição
8.1.0 | Returns an PSpell\Config instance now; previously, a resource was returned.

Exemplos

Exemplo #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 = pspell_new_personal($pspell_config, "en");
?>


Location of language data files

  • « pspell_config_create
  • pspell_config_dict_dir »
  • PHP Manual
  • Pspell Funções
  • Location of language data files

pspell_config_data_dir

(PHP 5, PHP 7, PHP 8)

pspell_config_data_dir — Location of language data files

Descrição

pspell_config_data_dir(PSpell\Config $config, string $directory): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro config agora espera uma instância de PSpell\Config; anteriormente, um resource era esperado.


Location of the main word list

  • « pspell_config_data_dir
  • pspell_config_ignore »
  • PHP Manual
  • Pspell Funções
  • Location of the main word list

pspell_config_dict_dir

(PHP 5, PHP 7, PHP 8)

pspell_config_dict_dir — Location of the main word list

Descrição

pspell_config_dict_dir(PSpell\Config $config, string $directory): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro config agora espera uma instância de PSpell\Config; anteriormente, um resource era esperado.


Ignore words less than N characters long

  • « pspell_config_dict_dir
  • pspell_config_mode »
  • PHP Manual
  • Pspell Funções
  • Ignore words less than N characters long

pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_ignore — Ignore words less than N characters long

Descrição

pspell_config_ignore(PSpell\Config $config, int $min_length): bool

pspell_config_ignore() should be used on a config before calling pspell_new_config(). This function allows short words to be skipped by the spell checker.

Parâmetros

config

Uma instância de PSpell\Config.

min_length

Words less than min_length characters will be skipped.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro config agora espera uma instância de PSpell\Config; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pspell_config_ignore()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_ignore($pspell_config, 5);
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "abcd"); //will not result in an error
?>


Change the mode number of suggestions returned

  • « pspell_config_ignore
  • pspell_config_personal »
  • PHP Manual
  • Pspell Funções
  • Change the mode number of suggestions returned

pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_mode — Change the mode number of suggestions returned

Descrição

pspell_config_mode(PSpell\Config $config, int $mode): bool

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().

Parâmetros

config

Uma instância de PSpell\Config.

mode

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)

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro config agora espera uma instância de PSpell\Config; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pspell_config_mode() Example

<?php
$pspell_config = pspell_config_create("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "thecat");
?>


Set a file that contains personal wordlist

  • « pspell_config_mode
  • pspell_config_repl »
  • PHP Manual
  • Pspell Funções
  • Set a file that contains personal wordlist

pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_personal — Set a file that contains personal wordlist

Descrição

pspell_config_personal(PSpell\Config $config, string $filename): bool

Set a file that contains personal wordlist. The personal wordlist will be loaded and used in addition to the standard one after you call pspell_new_config(). The file is also the file where pspell_save_wordlist() will save personal wordlist to.

pspell_config_personal() should be used on a config before calling pspell_new_config().

Parâmetros

config

Uma instância de PSpell\Config.

filename

The personal wordlist. If the file does not exist, it will be created. The file should be writable by whoever PHP runs as (e.g. nobody).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro config agora espera uma instância de PSpell\Config; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pspell_config_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "thecat");
?>

Notas

Nota:

This function will not work unless you have pspell .11.2 and aspell .32.5 or later.


Set a file that contains replacement pairs

  • « pspell_config_personal
  • pspell_config_runtogether »
  • PHP Manual
  • Pspell Funções
  • Set a file that contains replacement pairs

pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_repl — Set a file that contains replacement pairs

Descrição

pspell_config_repl(PSpell\Config $config, string $filename): bool

Set a file that contains replacement pairs.

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.

pspell_config_repl() should be used on a config before calling pspell_new_config().

Parâmetros

config

Uma instância de PSpell\Config.

filename

The file should be writable by whoever PHP runs as (e.g. nobody).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro config agora espera uma instância de PSpell\Config; anteriormente, um resource era esperado.

Exemplos

Exemplo #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 = pspell_new_config($pspell_config);
pspell_check($pspell, "thecat");
?>

Notas

Nota:

This function will not work unless you have pspell .11.2 and aspell .32.5 or later.


Consider run-together words as valid compounds

  • « pspell_config_repl
  • pspell_config_save_repl »
  • PHP Manual
  • Pspell Funções
  • Consider run-together words as valid compounds

pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_runtogether — Consider run-together words as valid compounds

Descrição

pspell_config_runtogether(PSpell\Config $config, bool $allow): bool

This function determines whether run-together words will be treated as legal compounds. That is, "thecat" will be a legal compound, although 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.

pspell_config_runtogether() should be used on a config before calling pspell_new_config().

Parâmetros

config

Uma instância de PSpell\Config.

allow

true if run-together words should be treated as legal compounds, false otherwise.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro config agora espera uma instância de PSpell\Config; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_runtogether($pspell_config, true);
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "thecat");
?>


Determine whether to save a replacement pairs list along with the wordlist

  • « pspell_config_runtogether
  • pspell_new_config »
  • PHP Manual
  • Pspell Funções
  • Determine whether to save a replacement pairs list along with the wordlist

pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_save_repl — Determine whether to save a replacement pairs list along with the wordlist

Descrição

pspell_config_save_repl(PSpell\Config $config, bool $save): bool

pspell_config_save_repl() 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.

pspell_config_save_repl() should be used on a config before calling pspell_new_config().

Parâmetros

config

Uma instância de PSpell\Config.

save

true if replacement pairs should be saved, false otherwise.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro config agora espera uma instância de PSpell\Config; anteriormente, um resource era esperado.

Notas

Nota:

This function will not work unless you have pspell .11.2 and aspell .32.5 or later.


Load a new dictionary with settings based on a given config

  • « pspell_config_save_repl
  • pspell_new_personal »
  • PHP Manual
  • Pspell Funções
  • Load a new dictionary with settings based on a given config

pspell_new_config

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_new_config — Load a new dictionary with settings based on a given config

Descrição

pspell_new_config(PSpell\Config $config): PSpell\Dictionary|false

pspell_new_config() opens up a new dictionary with settings specified in a config, created 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().

Parâmetros

config

The config parameter is the one returned by pspell_config_create() when the config was created.

Valor Retornado

Returns an PSpell\Dictionary instance on success, ou false em caso de falha

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro config agora espera uma instância de PSpell\Config; anteriormente, um resource era esperado.
8.1.0 | Returns an PSpell\Dictionary instance now; previously, a resource was returned.

Exemplos

Exemplo #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 = pspell_new_config($pspell_config);
?>


Load a new dictionary with personal wordlist

  • « pspell_new_config
  • pspell_new »
  • PHP Manual
  • Pspell Funções
  • Load a new dictionary with personal wordlist

pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_new_personal — Load a new dictionary with personal wordlist

Descrição

pspell_new_personal(
string $filename,
string $language,
string $spelling = "",
string $jargon = "",
string $encoding = "",
int $mode = 0
): PSpell\Dictionary|false

pspell_new_personal() opens up a new dictionary with a personal wordlist. 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().

For more information and examples, check out inline manual pspell website:» http://aspell.net/.

Parâmetros

filename

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.

language

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.

spelling

The requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

jargon

Extra information to distinguish two different words lists that have the same language and spelling parameters.

encoding

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.

mode

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, although 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.

Valor Retornado

Returns an PSpell\Dictionary instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Returns an PSpell\Dictionary instance now; previously, a resource was returned.

Exemplos

Exemplo #1 pspell_new_personal()

<?php
$pspell = pspell_new_personal ("/var/dictionaries/custom.pws",
"en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>


Load a new dictionary

  • « pspell_new_personal
  • pspell_save_wordlist »
  • PHP Manual
  • Pspell Funções
  • Load a new dictionary

pspell_new

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_new — Load a new dictionary

Descrição

pspell_new(
string $language,
string $spelling = "",
string $jargon = "",
string $encoding = "",
int $mode = 0
): PSpell\Dictionary|false

pspell_new() opens up a new dictionary and returns an PSpell\Dictionary instance for use in other pspell functions.

For more information and examples, check out inline manual pspell website:» http://aspell.net/.

Parâmetros

language

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.

spelling

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

jargon

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

encoding

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.

mode

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, although 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.

Valor Retornado

Returns an PSpell\Dictionary instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Returns an PSpell\Dictionary instance now; previously, a resource was returned.

Exemplos

Exemplo #1 pspell_new()

<?php
$pspell = pspell_new("en", "", "", "",
(PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>


Save the personal wordlist to a file

  • « pspell_new
  • pspell_store_replacement »
  • PHP Manual
  • Pspell Funções
  • Save the personal wordlist to a file

pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_save_wordlist — Save the personal wordlist to a file

Descrição

pspell_save_wordlist(PSpell\Dictionary $dictionary): bool

pspell_save_wordlist() saves the personal wordlist from the current session. The location of files to be saved specified with pspell_config_personal() and (optionally) pspell_config_repl().

Parâmetros

dictionary

Uma instância de PSpell\Dictionary.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro dictionary agora espera uma instância de PSpell\Dictionary; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell, "Vlad");
pspell_save_wordlist($pspell);
?>

Notas

Nota:

This function will not work unless you have pspell .11.2 and aspell .32.5 or later.


Store a replacement pair for a word

  • « pspell_save_wordlist
  • pspell_suggest »
  • PHP Manual
  • Pspell Funções
  • Store a replacement pair for a word

pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_store_replacement — Store a replacement pair for a word

Descrição

pspell_store_replacement(PSpell\Dictionary $dictionary, string $misspelled, string $correct): bool

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.

Parâmetros

dictionary

Uma instância de PSpell\Dictionary.

misspelled

The misspelled word.

correct

The fixed spelling for the misspelled word.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro dictionary agora espera uma instância de PSpell\Dictionary; anteriormente, um resource era esperado.

Exemplos

Exemplo #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 = pspell_new_config($pspell_config);

pspell_store_replacement($pspell, $misspelled, $correct);
pspell_save_wordlist($pspell);
?>

Notas

Nota:

This function will not work unless you have pspell .11.2 and aspell .32.5 or later.


Suggest spellings of a word

  • « pspell_store_replacement
  • PSpell\Dictionary »
  • PHP Manual
  • Pspell Funções
  • Suggest spellings of a word

pspell_suggest

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_suggest — Suggest spellings of a word

Descrição

pspell_suggest(PSpell\Dictionary $dictionary, string $word): array|false

pspell_suggest() returns an array of possible spellings for the given word.

Parâmetros

dictionary

Uma instância de PSpell\Dictionary.

word

The tested word.

Valor Retornado

Returns an array of possible spellings.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro dictionary agora espera uma instância de PSpell\Dictionary; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 pspell_suggest() example

<?php
$pspell = pspell_new("en");

if (!pspell_check($pspell, "testt")) {
$suggestions = pspell_suggest($pspell, "testt");

foreach ($suggestions as $suggestion) {
echo "Possible spelling: $suggestion<br />";
}
}
?>


The PSpell\Dictionary class

(PHP 8 >= 8.1.0)

Introdução

A fully opaque class which replaces a pspell resource as of PHP 8.1.0.

Resumo da classe

final class PSpell\Dictionary {
}


The PSpell\Config class

(PHP 8 >= 8.1.0)

Introdução

A fully opaque class which replaces a pspell config resource as of PHP 8.1.0.

Resumo da classe

final class PSpell\Config {
}


GNU Recode

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Recode Funções
    • recode_file — Recode from file to file according to recode request
    • recode_string — Recode a string according to a recode request
    • recode — Sinônimo de recode_string


Introdução

This module contains an interface to the GNU Recode library. The GNU Recode library converts files between various coded character sets and surface encodings. When this cannot be achieved exactly, it may get rid of the offending characters or fall back on approximations. The library recognises or produces nearly 150 different character sets and is able to convert files between almost any pair. Most » RFC 1345 character sets are supported.

Nota: This extension is unbundled and moved to » PECL as of PHP 7.4.0. Consider to use the Multibyte String or iconv extensions instead.

Nota: Esta extensão não está disponível em plataformas Windows.


Dependências

You must have GNU Recode 3.5 or higher installed on your system. You can download the package from » http://directory.fsf.org/All_GNU_Packages/recode.html.

Aviso

The Recode library version 3.6 adds weird characters behind converted strings under certain circumstances. Thus it's safer to use Recode v3.5 or one of the available alternatives like the iconv or mbstring extension.


Instalação

PHP 7.4

Esta extensão foi movida para o repositório » PECL e não é mais distribuída com o PHP desde a versão 7.4.0

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/recode.

PHP < 7.4

To be able to use the functions defined in this module you must compile your PHP interpreter using the --with-recode[=DIR] option.

Aviso

Crashes and startup problems of PHP may be encountered when loading the recode as extension after loading any extension of mysql or imap. Loading the recode before those extension has proved to fix the problem. This is due a technical problem that both the c-client library used by imap and recode have their own hash_lookup() function and both mysql and recode have their own hash_insert function.

Aviso

As extensões IMAP, recode e YAZ não podem ser usadas em conjunto, pois compartilham os mesmos símbolos internos. Observação: a Yaz 2.0 e superiores não sofrem deste problema.


  • « Tipos de Recurso
  • Recode Funções »
  • PHP Manual
  • Recode
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Recode Funções

Índice

  • recode_file — Recode from file to file according to recode request
  • recode_string — Recode a string according to a recode request
  • recode — Sinônimo de recode_string


Recode from file to file according to recode request

  • « Recode Funções
  • recode_string »
  • PHP Manual
  • Recode Funções
  • Recode from file to file according to recode request

recode_file

(PHP 4, PHP 5, PHP 7 < 7.4.0)

recode_file — Recode from file to file according to recode request

Descrição

recode_file(string $request, resource $input, resource $output): bool

Recode the file referenced by file handle input into the file referenced by file handle output according to the recode request.

Parâmetros

request

The desired recode request type

input

A local file handle resource for the input

output

A local file handle resource for the output

Valor Retornado

Returns false, if unable to comply, true otherwise.

Exemplos

Exemplo #1 Basic recode_file() example

<?php
$input = fopen('input.txt', 'r');
$output = fopen('output.txt', 'w');
recode_file("us..flat", $input, $output);
?>

Notas

This function does not currently process file handles referencing remote files (URLs). Both file handles must refer to local files.

Veja Também

  • fopen() - Abre um arquivo ou URL


Recode a string according to a recode request

  • « recode_file
  • recode »
  • PHP Manual
  • Recode Funções
  • Recode a string according to a recode request

recode_string

(PHP 4, PHP 5, PHP 7 < 7.4.0)

recode_string — Recode a string according to a recode request

Descrição

recode_string(string $request, string $string): string

Recode the string string according to the recode request request.

Parâmetros

request

The desired recode request type

string

The string to be recoded

Valor Retornado

Returns the recoded string or false, if unable to perform the recode request.

Exemplos

Exemplo #1 Basic recode_string() example

<?php
echo recode_string("us..flat", "The following character has a diacritical mark: á");
?>

Notas

A simple recode request may be "lat1..iso646-de".

Veja Também

  • The GNU Recode documentation of your installation for detailed instructions about recode requests.
  • mb_convert_encoding() - Converte uma string de uma codificação de caracteres para outra
  • UConverter::transcode() - Converte uma string de uma codificação de caracteres para outra
  • iconv() - Converte uma string de uma codificação de caracteres para outra


Sinônimo de recode_string

  • « recode_string
  • Processamento e Geração de Imagem »
  • PHP Manual
  • Recode Funções
  • Sinônimo de recode_string

recode

(PHP 4, PHP 5, PHP 7 < 7.4.0)

recode — Sinônimo de recode_string()

Descrição

Esta função é um apelido para: recode_string().


Processamento e Geração de Imagem

  • Exif — Informações de imagem
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções do módulo Exif
  • GD — Processamento de Imagem e GD
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções de GD e Image
    • GdImage — A classe GdImage
    • GdFont — A classe GdFont
  • Gmagick
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Gmagick — The Gmagick class
    • GmagickDraw — The GmagickDraw class
    • GmagickPixel — The GmagickPixel class
  • ImageMagick — Image Processing (ImageMagick)
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Imagick — The Imagick class
    • ImagickDraw — The ImagickDraw class
    • ImagickPixel — The ImagickPixel class
    • ImagickPixelIterator — The ImagickPixelIterator class
    • ImagickKernel — The ImagickKernel class


Informações de imagem

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções do módulo Exif
    • exif_imagetype — Verifica o tipo de uma imagem
    • exif_read_data — Lê os cabeçalhos EXIF de um arquivo de imagen
    • exif_tagname — Obtém o nome do cabeçalho para um índice
    • exif_thumbnail — Recupera a miniatura embutida de uma imagem
    • read_exif_data — Sinônimo de exif_read_data


Introdução

Com a extensão exif pode-se trabalhar com metadados de imagem. Por exemplo, pode-se usar funções exif para ler metadados de fotografias obtidas de câmeras digitais com informações armazenadas no cabeçalho do aqruivo. Estas informações são usualmente encontradas em imagens JPEG e TIFF.


Dependências

O PHP precisa ser compilado com --enable-exif. Para habilitar suporte a caracteres multi-byte em etiquetas EXIF, a extensão mbstring precisa estar habilitada, compilando o PHP com --enable-mbstring. O PHP não requer bilbioteca adicional para o módulo exif.

Somente Windows: A extensão mbstring deve estar sempre habilitada. Note que a extensão mbstring deve ser carregada antes de EXIF no php.ini.


Instalação

Para habilitar suporte a exif configure o PHP com --enable-exif

Usuários Windows precisam habilitar as DLLs php_mbstring.dll e php_exif.dll no php.ini. A DLL php_mbstring.dll precisa ser carregada antes da php_exif.dll então ajuste seu php.ini corretamente.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Exif suporta conversão automática para codificações de caracteres Unicode e JIS de comentários de usuários quando o módulo mbstring está disponível. Isto é feito primeiro decodificando-se o comentário usando o conjunto de caracteres especificado. o resultado é então codificado com outro conjunto de caracteres que deve corresponder à saída HTTP.

Opções de configuração de Exif
Nome | Padrão | Modificável | Registro de Alterações
exif.encode_unicode | "ISO-8859-15" | INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | INI_ALL |
exif.encode_jis | "" | INI_ALL |
exif.decode_jis_motorola | "JIS" | INI_ALL |
exif.decode_jis_intel | "JIS" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

exif.encode_unicode string

exif.encode_unicode define o conjunto de caracteres UNICODE para lidar com os comentários de usuário. O padrão é ISO-8859-15 que deve funcionar para a maioria dos países não asiáticos. A configuração pode ser vazia ou deve ser uma codificação suportada por mbstring. Se for vazia,a codificação interna atual de mbstring é usada.

exif.decode_unicode_motorola string

exif.decode_unicode_motorola define o conjunto de caracteres internos da imagem para os comentários de usuário codificados em Unicode se a imagem está na ordem de bytes Motorola (Big Endian). Esta configuração não pode ser vazia mas pode-se especificar uma lista de codificações suportadas por. O padrão é UCS-2BE.

exif.decode_unicode_intel string

exif.decode_unicode_intel define o conjunto de caracteres internos da imagem para os comentários de usuário se a imagem está na ordem de bytes Intel (Little Endian). Esta configuração não pode ser vazia mas pode-se especificar uma lista de codificações suportadas por. O padrão é UCS-2LE.

exif.encode_jis string

exif.encode_jis define o conjunto de caracteres JIS com o qual os comentários são lidos. O padrão é um valor vazio que força as funções a usarem a codificação interna atual de mbstring.

exif.decode_jis_motorola string

exif.decode_jis_motorola define o conjunto de caracteres internos da imagem para comentários codificados com JIS se a imagem está na ordem de bytes Motorola (Big Endian). Esta configuração não pode ser vazia mas pode-se especificar uma lista de codificações suportadas por. O padrão é JIS.

exif.decode_jis_intel string

exif.decode_jis_intel define o conjunto de caracteres internos da imagem para comentários codificados com JIS se a imagem está na ordem de bytes Intel (Little Endian). Esta configuração não pode ser vazia mas pode-se especificar uma lista de codificações suportadas por. O padrão é JIS.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

EXIF_USE_MBSTRING (int)
Esta constante tem o valor igual a 1 se mbstring estiver habilidado, caso contrário tem o valor igual a 0.

A função exif_imagetype() lista várias contantes internas relacionadas.


Funções do módulo Exif

Índice

  • exif_imagetype — Verifica o tipo de uma imagem
  • exif_read_data — Lê os cabeçalhos EXIF de um arquivo de imagen
  • exif_tagname — Obtém o nome do cabeçalho para um índice
  • exif_thumbnail — Recupera a miniatura embutida de uma imagem
  • read_exif_data — Sinônimo de exif_read_data


Verifica o tipo de uma imagem

  • « Funções do módulo Exif
  • exif_read_data »
  • PHP Manual
  • Funções do módulo Exif
  • Verifica o tipo de uma imagem

exif_imagetype

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

exif_imagetype — Verifica o tipo de uma imagem

Descrição

exif_imagetype(string $filename): int|false

exif_imagetype() lê os primeiros bytes de uma imagem e verifica sua assinatura.

exif_imagetype() pode ser usada para evitar chamadas a outras funções exif que não têm suporte a certos tipos de arquivos ou um conjunção com $_SERVER['HTTP_ACCEPT'] para verificar se o visualizador é capaz de mostrar uma imagem específica no browser.

Parâmetros

filename
A imagem a ser verificada.

Valor Retornado

Quando uma assinatura correta é encontrada, o valor da constante associada será retornado, caso contrário o valor de retorno será false. O valor retornado é o mesmo valor que getimagesize() retorna no índice 2, mas exif_imagetype() é bem mais rápida.

As seguintes constantes estão definidas, e representam os possíveis valores de retorno de exif_imagetype():

Constantes Imagetype
Valor | Constante
1 | IMAGETYPE_GIF
2 | IMAGETYPE_JPEG
3 | IMAGETYPE_PNG
4 | IMAGETYPE_SWF
5 | IMAGETYPE_PSD
6 | IMAGETYPE_BMP
7 | IMAGETYPE_TIFF_II (ordem de bytes Intel)
8 | IMAGETYPE_TIFF_MM (ordem de bytes Motorola)
9 | IMAGETYPE_JPC
10 | IMAGETYPE_JP2
11 | IMAGETYPE_JPX
12 | IMAGETYPE_JB2
13 | IMAGETYPE_SWC
14 | IMAGETYPE_IFF
15 | IMAGETYPE_WBMP
16 | IMAGETYPE_XBM
17 | IMAGETYPE_ICO
18 | IMAGETYPE_WEBP
19 | IMAGETYPE_AVIF

Nota:

exif_imagetype() emitirá um erro de nível E_NOTICE e retornará false se for incapaz de ler bytes suficientes do arquivo para determinar o tipo da imagem.

Registro de Alterações

Versão | Descrição
7.1.0 | Adicionado suporte a WebP.
8.1.0 | Adicionado suporte a AVIF.

Exemplos

Exemplo #1 Exemplo de exif_imagetype()

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
echo 'A imagem não é do tipo gif';
}
?>

Veja Também

  • image_type_to_mime_type() - Obtém o Mime-Type para o tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail e exif_imagetype
  • getimagesize() - Obtém o tamanho de uma imagem


Lê os cabeçalhos EXIF de um arquivo de imagen

  • « exif_imagetype
  • exif_tagname »
  • PHP Manual
  • Funções do módulo Exif
  • Lê os cabeçalhos EXIF de um arquivo de imagen

exif_read_data

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

exif_read_data — Lê os cabeçalhos EXIF de um arquivo de imagen

Descrição

exif_read_data(
resource|string $file,
?string $required_sections = null,
bool $as_arrays = false,
bool $read_thumbnail = false
): array|false

A função exif_read_data() lê os cabeçalhos EXIF de um arquivo de imagem. Desta forma é possível ler metadados gerados por câmeras digitais.

Cabeçalhos EXIF tendem a estar presentes em imagens JPEG/TIFF geradas por camêras digitais, mas infelizmente, cada fabricante de camêra digital tem uma idéia diferente de como marcar as suas imagens, então não se pode confiar sempre que um cabeçalho EXIF específico estará presente.

Altura (Height) e largura (Width) sao computadas da mesma maneira que getimagesize() faz, então seus valores não devem ser parte de nenhum cabeçalho retornado. Além disso, html é uma string de texto com altura/largura a ser usado dentro de umHTML normal.

Quando um cabeçalho Exif contém uma nota de direitos autorais, esta nota pode conter dois valores. Como a solução é inconsistente com o padrão Exif 2.10 a seção COMPUTED irá retornar ambas as entradas Copyright.Photographer e Copyright.Editor enquando que as seções IFD0 contém um array de bytes com o caractere NULL que separa as duas entradas. Ou apenas a primeira entrada se o tipo de dados estiver errado (funcionamento normal do Exif). COMPUTED irá conter também a entrada Copyright que será a string original do copyright ou uma lista separada por vírgula dos direitos autorais da foto e do editor.

A marca UserComment tem o mesmo problema que a marca de Copyright. Ela pode guardar dois valores. Primeiro a codificação usada e em segundo o valor em si. Então a seção IFD contém somente a codificação ou um array de bytes. A seção COMPUTED irá guardar ambos nas entradas UserCommentEncoding e UserComment. A entrada UserComment está disponível em ambos os casos então deve ser usada em preferência ao valor da seção IFD0.

exif_read_data() também valida marcas de dados EXIF de acordo com a especificação EXIF (» http://exif.org/Exif2-2.PDF, página 20).

Parâmetros

file

A localização do arquivo de imagem. Pode ser uma caminho para o arquivo (empacotadores de fluxo são também suportados) ou um fluxo do tipo resource.

required_sections

Uma lista de seções separadas por vírgula que precisam estar presentes no arquivo para produzir o resultado do tipo array. Se nenhuma das seções informadas puder ser encontrada o valor de retorno é false.

FILE | FileName, FileSize, FileDateTime, SectionsFound
COMPUTED | html, Width, Height, IsColor, e mais se disponíveis. Height e Width são computadas da mesma maneira que getimagesize() faz, portanto seus valores não deve ser parte de nenhum cabeçalho retornado. Além disso, html é uma string de texto com altura/largura a ser usado dentro de um HTML normal.
ANY_TAG | Qualquer informação que tenha uma marca, ex.: IFD0, EXIF, ...
IFD0 | Todos os dados marcados de IFD0. Em arquivos de imagem normais, contém o tamanho da imagem e outros dados.
THUMBNAIL | Um arquivo deveria ter uma miniatura se tiver um segundo IFD. Todas as informações marcadas sobre a miniatura embutida estão gravadas nesta seção.
COMMENT | Cabeçalho de comentários de imagens JPEG.
EXIF | A seção EXIF é uma sub-seção de IFD0. Contém informação mais detalhada sobre uma imagem. A maior parte destas entradas são relacionadas a câmeras digitais.

as_arrays

Especifica se cada seção se torna ou não um array. As seções COMPUTED, THUMBNAIL E COMMENT de required_sections sempre se toranm arrays por que contêm valores cujos nomes conflitam com outras seções.

read_thumbnail

Quando definida para true a miniatura em si é lida. Caso contrário, apenas os dados marcados são ligos.

Valor Retornado

Retorna um array associativo onde os índices são os nomes dos cabeçalhos e os valores são os associados com esses cabeçalhos. Se nenhum dado puder ser retornado, exif_read_data() retornará false.

Erros/Exceções

Erros de nível E_WARNING e/ou E_NOTICE podem ser disparados para marcas não suportadas ou outras condições de erros potenciais, mas a função ainda tenta lêr toda a informação compreensível.

Registro de Alterações

Versão | Descrição
8.0.0 | required_sections agora pode ser nulo.
7.2.0 | O parâmetro file agora suporta tanto arquivo localparameter now supports both local files quanto recursos de fluxo.
7.2.0

Adicionado suporte aos seguintes formatos EXIF:

  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

Exemplos

Exemplo #1 Exemplo exif_read_data()

<?php
echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "Dados de cabeçalho não encontrados.<br />\n" : "Imagem contém cabeçalhos<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";
}
}
?>

A primeira chamada falha porque a imagem não tem informações no cabeçalho.

O exemplo acima produzirá algo semelhante a:

test1.jpg:
Dados de cabeçalho não encontrados.
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

Exemplo #2 exif_read_data() com fluxos, disponível a partir do PHP 7.2.0

<?php
// Abre um arquivos, deve ser em modo binário
$fp = fopen('/path/to/image.jpg', 'rb');

if (!$fp) {
echo 'Erro: Não foi possível abrir a imagem para leitura';
exit;
}

// Tenta ler o cabeçalhos exif
$headers = exif_read_data($fp);

if (!$headers) {
echo 'Erro: Não foi possível ler os cabeçalhos exif';
exit;
}

// Mostra os cabeçalhos de 'COMPUTED'
echo 'Cabeçalhos EXIF:' . PHP_EOL;

foreach ($headers['COMPUTED'] as $header => $value) {
printf(' %s => %s%s', $header, $value, PHP_EOL);
}
?>

O exemplo acima produzirá algo semelhante a:

Cabeçalhos EXIF:
 Height => 576
 Width => 1024
 IsColor => 1
 ByteOrderMotorola => 0
 ApertureFNumber => f/5.6
 UserComment =>
 UserCommentEncoding => UNDEFINED
 Copyright => Denis
 Thumbnail.FileType => 2
 Thumbnail.MimeType => image/jpeg

Notas

Nota:

Se mbstring estiver habilitado, exif tentará processar em codificação unicode e escolher um conjunto de caracteres como especificado por exif.decode_unicode_motorola e exif.decode_unicode_intel. A extensão exif não tentará descobrir a codificação por si mesma, é responsabilidade do programador especificar corretamente a codificação a ser usada, configurando uma das duas diretivas ini antes de chamar exif_read_data().

Nota:

Se file for usado para passar um fluxo a esta função, o fluxo deve ser do tipo pesquisável. Note que a posição do ponteiro do arquivo não é alterada depois que esta função retorna.

Veja Também

  • exif_thumbnail() - Recupera a miniatura embutida de uma imagem
  • getimagesize() - Obtém o tamanho de uma imagem
  • Protocolos e Wrappers suportados


Obtém o nome do cabeçalho para um índice

  • « exif_read_data
  • exif_thumbnail »
  • PHP Manual
  • Funções do módulo Exif
  • Obtém o nome do cabeçalho para um índice

exif_tagname

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

exif_tagname — Obtém o nome do cabeçalho para um índice

Descrição

exif_tagname(int $index): string|false

Parâmetros

index

O ID da marca para o qual o nome do cabeçalho será pesquisado

Valor Retornado

Retorna o nome do cabeçalho, ou false se index não for um id de marca EXIF definido.

Exemplos

Exemplo #1 Exemplo de exif_tagname()

<?php
echo "256: ".exif_tagname(256).PHP_EOL;
echo "257: ".exif_tagname(257).PHP_EOL;
?>

O exemplo acima produzirá:

256: ImageWidth
257: ImageLength

Veja Também

  • exif_imagetype() - Verifica o tipo de uma imagem
  • » EXIF Specification
  • » EXIF Tags


Recupera a miniatura embutida de uma imagem

  • « exif_tagname
  • read_exif_data »
  • PHP Manual
  • Funções do módulo Exif
  • Recupera a miniatura embutida de uma imagem

exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

exif_thumbnail — Recupera a miniatura embutida de uma imagem

Descrição

exif_thumbnail(
resource|string $file,
int &$width = null,
int &$height = null,
int &$image_type = null
): string|false

exif_thumbnail() lê a miniatura embutida de uma imagem.

Se for desejado exibir miniaturas através desta função, deve-se enviar a informação do tipo de mídia usando a função header().

É possível que exif_thumbnail() não possa criar uma imagem mas possa determinar seu tamanho. Neste caso, o valor retornado é false mas a largura (width) e altura (height) serão definidos.

Parâmetros

file

A localização do arquivo de imagem. Pode ser um caminho ou um fluxo do tipo resource.

width

A largura da miniatura retornada.

height

A altura da miniatura retornada.

image_type

O tipo da imagem da miniatura retornada. Pode ser TIFF ou JPEG.

Valor Retornado

Retorna a miniatura embutida, ou false se a imagem não contiver miniatura.

Registro de Alterações

Versão | Descrição
7.2.0 | O parâmetro file agora suporta arquivos locais e recursos de fluxo.

Exemplos

Exemplo #1 Exemplo de exif_thumbnail()

<?php
$image = exif_thumbnail('/path/to/image.jpg', $width, $height, $type);

if ($image!==false) {
header('Content-type: ' .image_type_to_mime_type($type));
echo $image;
exit;
} else {
// sem miniatura, gerencia o erro aqui
echo 'Não há miniatura disponível';
}
?>

Notas

Nota:

Se o parâmetro file for usado para passar um fluxo a esta função, ele deve ser do tipo pesquisável. Note que a posição do ponteiro do arquivo não é alterada após o retorno desta função.

Veja Também

  • exif_read_data() - Lê os cabeçalhos EXIF de um arquivo de imagen
  • image_type_to_mime_type() - Obtém o Mime-Type para o tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail e exif_imagetype


Sinônimo de exif_read_data

  • « exif_thumbnail
  • GD »
  • PHP Manual
  • Funções do módulo Exif
  • Sinônimo de exif_read_data

read_exif_data

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

read_exif_data — Sinônimo de exif_read_data()

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 7.2.0 e foi REMOVIDO a partir do PHP 8.0.0.

Descrição

Esta função é um apelido para: exif_read_data().

Registro de Alterações

Versão | Descrição
7.2.0 | O apelido desta função tornou-se defasado.


Processamento de Imagem e GD

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Criação de PNG com PHP
    • Adicionando marcas d'água a imagens usando canais alfa
    • Usando imagecopymerge para criar uma marca d'água translúcida
  • Funções de GD e Image
    • gd_info — Obtém informações sobre a biblioteca GD instalada atualmente
    • getimagesize — Obtém o tamanho de uma imagem
    • getimagesizefromstring — Obtém o tamanho de uma imagem a partir de uma string
    • image_type_to_extension — Obtém a extensão de arquivo para o tipo da imagem
    • image_type_to_mime_type — Obtém o Mime-Type para o tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail e exif_imagetype
    • image2wbmp — Envia a imagem para o navegador ou para um arquivo
    • imageaffine — Retorna uma imagem contendo a imagem fonte com transformação afim, usando uma área de recorte opcional
    • imageaffinematrixconcat — Concatena duas matrizes de transformação afim
    • imageaffinematrixget — Obtém uma matriz de transformação afim
    • imagealphablending — Define o modo de combinação para uma imagem
    • imageantialias — Define se as funções de suavização de serrilhado devem ser usadas ou não
    • imagearc — Desenha um arco
    • imageavif — Envia a imagem para o navegador ou para um arquivo
    • imagebmp — Mostra ou grava uma imagem BMP
    • imagechar — Desenha um caractere horizontalmente
    • imagecharup — Desenha um caractere verticalmente
    • imagecolorallocate — Aloca uma cor para uma imagem
    • imagecolorallocatealpha — Aloca uma cor para uma imagem
    • imagecolorat — Obtém o índica da cor de um pixel
    • imagecolorclosest — Obtém o índice da cor mais próxima à especificada
    • imagecolorclosestalpha — Obtém o índice da cor mais próxima à especificada (incluindo alfa)
    • imagecolorclosesthwb — Obtém o índice da cor que tem a matiz, brancura e negritude mais próximas de uma cor informada
    • imagecolordeallocate — Desaloca uma cor de uma imagem
    • imagecolorexact — Obtém o índice da cor especificada
    • imagecolorexactalpha — Obtém o índice da cor e alfa especificados
    • imagecolormatch — Faz com que as cores da versão em paleta da imagem fiquem mais próximas da versão em cores verdadeiras
    • imagecolorresolve — Obtém o índice da cor especificada ou a alternativa mais próxima
    • imagecolorresolvealpha — Obtém o índice da cor + alfa especificados ou a alternativa mais próxima
    • imagecolorset — Define a cor para o índice da paleta especificado
    • imagecolorsforindex — Obtém as cores para um índice
    • imagecolorstotal — Obtém o número de cores em uma paleta de imagem
    • imagecolortransparent — Define uma cor como transparente
    • imageconvolution — Aplica uma matriz de convolução 3x3, usando coeficiente e deslocamento
    • imagecopy — Copiar uma parte de uma imagem
    • imagecopymerge — Copia e funde parte de uma imagem
    • imagecopymergegray — Copia e funde parte de uma imagem com escala de cinza
    • imagecopyresampled — Copia e redimensiona parte de uma imagem com reamostragem
    • imagecopyresized — Copia e redimensiona parte de uma imagem
    • imagecreate — Crie uma nova imagem baseada em paleta
    • imagecreatefromavif — Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefrombmp — Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromgd2 — Cria uma nova imagem a partir de um arquivo GD2 ou URL
    • imagecreatefromgd2part — Cria uma nova imagem a partir de uma parte de um arquivo GD2 ou URL
    • imagecreatefromgd — Cria uma nova imagem a partir de um arquivo GD ou URL
    • imagecreatefromgif — Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromjpeg — Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefrompng — Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromstring — Cria uma nova imagem a partir de um fluxo de imagem na string
    • imagecreatefromtga — Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromwbmp — Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromwebp — Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromxbm — Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromxpm — Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatetruecolor — Cria uma nova imagem em cores verdadeiras
    • imagecrop — Recorta uma imagem no retângulo informado
    • imagecropauto — Recorta uma imagem automaticamente usando um dos modos disponíveis
    • imagedashedline — Desenha uma linha tracejada
    • imagedestroy — Destruir uma imagem
    • imageellipse — Desenha uma elipse
    • imagefill — Preenchimento
    • imagefilledarc — Desenha um arco parcial preenchido
    • imagefilledellipse — Desenha uma elipse preenchida
    • imagefilledpolygon — Desenha um polígono preenchido
    • imagefilledrectangle — Desenha um retângulo preenchido
    • imagefilltoborder — Preenche até encontrar uma cor especificada
    • imagefilter — Aplica um filtro a uma imagem
    • imageflip — Vira uma imagem usando um modo especificado
    • imagefontheight — Obtém a altura da fonte
    • imagefontwidth — Obtém a largura da fonte
    • imageftbbox — Fornece a caixa limite de um texto usando fontes via freetype2
    • imagefttext — Escreve texto em uma imagem usando fontes FreeType 2
    • imagegammacorrect — Aplica uma correção de gama a uma imagem GD
    • imagegd2 — Envia uma imagem GD2 ao navegador ou a um arquivo
    • imagegd — Envia uma imagem GD para o navegador ou para um arquivo
    • imagegetclip — Obtém o retângulo de recorte
    • imagegetinterpolation — Obtém o método de interpolação
    • imagegif — Envia a imagem para o navegador ou para um arquivo
    • imagegrabscreen — Captura toda a tela
    • imagegrabwindow — Captura uma janela
    • imageinterlace — Habilita ou desabilita entrelace
    • imageistruecolor — Descobre se uma imagem está em cores verdadeiras
    • imagejpeg — Envia a imagem para o navegador ou para um arquivo
    • imagelayereffect — Define a opção de mesclagem alfa para usar efeitos de camada
    • imageline — Desenha uma linha
    • imageloadfont — Carrega uma nova fonte
    • imageopenpolygon — Desenha um polígono aberto
    • imagepalettecopy — Copia a paleta de uma imagem para outra
    • imagepalettetotruecolor — Converte uma imagem baseada em paleta para cores verdadeiras
    • imagepng — Envia uma imagem PNG para o navegador ou arquivo
    • imagepolygon — Desenha um polígono
    • imagerectangle — Desenha um retângulo
    • imageresolution — Obtém ou define a resolução da imagem
    • imagerotate — Rotaciona uma imagem em um ângulo informado
    • imagesavealpha — Informa se a informação de canal alfa deve ser retida ao gravar imagens
    • imagescale — Muda a escala de uma imagem usando largura e altura informadas
    • imagesetbrush — Define o tipo de pincel para desenho de linhas
    • imagesetclip — Define o retângulo de recorte
    • imagesetinterpolation — Define o método de interpolação
    • imagesetpixel — Desenha um pixel
    • imagesetstyle — Define o estilo para desenho de linhas
    • imagesetthickness — Define a espessura para desenho de linhas
    • imagesettile — Define a imagem de ladrilho para preenchimento
    • imagestring — Desenha uma string na horizontal
    • imagestringup — Desenha uma string na vertical
    • imagesx — Obtém a largura da imagem
    • imagesy — Obtém a altura da imagem
    • imagetruecolortopalette — Converte uma imagem em cores verdadeiras em uma imagem de paleta
    • imagettfbbox — Fornece a os limites retangulares de um texto usando fontes TrueType
    • imagettftext — Escreve texto na imagem usando fontes TrueType
    • imagetypes — Retorna os tipos de imagens suportados pela instalação do PHP
    • imagewbmp — Envia a imagem para o navegador ou para um arquivo
    • imagewebp — Mostra uma imagem WebP no navegador ou grava em arquivo
    • imagexbm — Mostra uma imagem XBM em um navegador ou grava em arquivo
    • iptcembed — Incorpora dados binários IPTC em uma imagem JPEG
    • iptcparse — Interpreta um bloco IPTC binário em etiquetas simples
    • jpeg2wbmp — Converte arquivo de imagem JPEG para WBMP
    • png2wbmp — Converte arquivo de imagem PNG em WBMP
  • GdImage — A classe GdImage
  • GdFont — A classe GdFont


Introdução

O PHP não está limitado a criar apenas saída em HTML. Ele também pode ser usado para criar e manipular arquivos de imagem em uma diversidade de formatos, incluindo GIF, PNG, JPEG, WBMP, and XPM. E ainda mais convenientemente, o PHP pode enviar fluxos de imagem diretamente para o navegador. É necessário compilar o PHP com a biblioteca GD de funções de imagens para que isto funcione. GD e o PHP podem também requerer outras bibliotecas, dependendo de quais formatos de imagens serão trabalhados.

Pode-se usar as funções de imagem no PHP para obter o tamanho de imagens JPEG, GIF, PNG, SWF, TIFF e JPEG2000.

Com a extensão exif, pode-se trabalhar com informações armazenadas nos cabeçalhos de imagens JPEG e TIFF. Desta forma, pode-se ler metadados gerados por câmeras digitais. As funções exif não requerem a biblioteca GD.

Nota: Leia a seção de requerimentos sobre como expandir a capacidade de leitura, escrita e modificação de imagens. Para ler metadados de fotografias tiradas de uma câmera digital, é necessária a extensão exif mencionada acima.

Nota: A função getimagesize() não requqer a extensão GD.

Cuidado

Enquanto que a versão da biblioteca GD fornecida com o PHP usa o gerenciador de memória Zend para alocar memória, as versões de sistema não o fazem, de forma que memory_limit não se aplica.

GD suporta uma diversidade de formatos. Veja abaixo uma lista de formatos suportados por GD e notas sobre suas disponibilidades incluindo suporte a leitura/escrita.

Formatos suportados por GD
Formato | Suporte a leitura | Suporte a escrita | Notas
JPEG | true | true |
PNG | true | true |
GIF | true | true |
XBM | true | true |
XPM | true | false |
WBMP | true | true |
WebP | true | true |
BMP | true | true | Disponível a partir do PHP 7.2.0

Embora a maioria dos formatos esteja disponível para leitura e escrita na tabela acima, isto não significa que o PHP foi compilado com suporte a eles. Para descobrir quais formatos estavam disponíveis para o GD durante a compilação, use a função gd_info(). Para mais informação sobre compilação de suporte a um ou mais formantos, consulte o capítulo sobre instalação.


Dependências

Se a biblioteca GD estiver presente (disponível em » http://www.libgd.org/) será possível criar e manipular imagens.

Os formatos de imagens possíveis de ser manipulados dependem da versão da GD instalada, e de quaisquer outras bibliotecas GD possivelmente necessárias para acessar esses formatos.

Nota: libgd-2.1.0 ou superior é requerida. Alternativamente, pode-se usar a biblioteca GD fornecida com o PHP.

Nota: A biblioteca GD requer a zlib >= 1.2.0.4.

Pode ser desejado melhorar a GD para lidar com mais formatos de imagens.

Formatos de imagem suportados
Formato de imagem | Biblioteca a ser instalada | Notas
gif |  |
avif |  |
jpeg | » http://www.ijg.org/ | Ao compilar a biblioteca jpeg (antes de compilar o PHP) deve-se usar a opção --enable-shared no passo de configuração. Senão, ocorrerá um erro dizendo libjpeg.(a|so) not found (biblioteca não encontrada) quando chegar o passo de configuração na compilação do PHP.
png | » http://www.libpng.org/pub/png/libpng.html |
xpm | » http://www.ibiblio.org/pub/Linux/libs/X/!INDEX.html | Em ambientes Unix, muito provavelmente a biblioteca já deve estar disponível, se o sistema tiver um ambiente X instalado.
webp |  |

Pode-se melhorar a GD para lidar com fontes diferentes. A biblioteca » FreeType 2 é suportada.


Instalação

Para ativar suporte ao GD, configure o PHP com --with-gd[=DIR], aonde DIR é o diretório de instalação. Para usar a versão recomendada da biblioteca GD que acompanha o PHP, use a opção de configuração --with-gd. Biblioteca GD requer libpng e libjpeg para compilar. Desde o PHP 7.4.0, --with-gd se torna --enable-gd (para simplesmente abilitar a extensão) e --with-external-gd (para selecionar uma instalação libgd externa, diferente da que acompanha o PHP).

No Windows, você irá incluir a DLL do GD php_gd.dll como uma extensão no php.ini. Antes do PHP 8.0.0 a DLL se chamava php_gd2.dll.

Melhore as capacidades do GD para manipular mais formatos de imagens especificando a opção --with-XXXX na sua linha de configuração do PHP.

Formatos de imagens suportados
Formato de Imagem | Opção de Configuração
avif | Para habilitar suporte a avif aicione --with-avif. Disponível a partir do PHP 8.1.0.
jpeg | Para ativar suporte a jpeg adicione --with-jpeg-dir=DIR. Jpeg 6b, 7 ou 8 são suportados. A partir do PHP 7.4.0, use --with-jpeg.
png | Para ativar suporte para png adicione --with-png-dir=DIR. Note que, libpng precisa de zlib library, portanto adicione a opção --with-zlib-dir[=DIR] na sua linha de configuração. A partir do PHP 7.4.0, --with-png-dir e --with-zlib-dir foram removidas. libpng e zlib são necessárias.
xpm | Para ativar suporte a xpm adicione --with-xpm-dir=DIR. Se o configure não for capaz de encontrar as bibliotecas necessárias, você deverá adicionar o caminho até as suas bibliotecas X11. A partir do PHP 7.4.0, use --with-xpm.
webp | Para habilitar suporte a webp, adicione --with-webp-dir=DIR. A partir do PHP 7.4.0, use --with-webp.

Nota: Ao compilar o PHP com a libpng, você deve usar a mesma versão que foi ligada com a biblioteca GD.

Melhore as capacidades do GD para lidar com fontes diferentes especificando a opção de configuração --with-XXXX na linha de configuração do PHP.

Bibliotecas de Fontes Suportadas
Biblioteca de Fonte | Opção de Configuração
FreeType 2 | Para ativar suporte a FreeType 2 adicione --with-freetype-dir=DIR. A partir do PHP 7.4.0, use --with-freetype, que usa pkg-config.
Native TrueType string function | Para ativar suporte a native TrueType string function adicione --enable-gd-native-ttf. (Essa opção não tem efeito e foi removida no PHP 7.2.0).


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração de Image
Nome | Padrão | Modificável | Registro de Alterações
gd.jpeg_ignore_warning | "1" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

gd.jpeg_ignore_warning bool

Ignora os avisos (mas não os erros) criado por libjpeg(-turbo).

Registro de alterações para gd.jpeg_ignore_warning
Versão | Descrição
7.1.0 | O padrão de gd.jpeg_ignore_warning foi alterado de 0 para 1.

Veja também as diretivas de configuração exif.

Aviso

As funções para imagem usam bastante memória. Certifique-se de definir memory_limit grande o bastante, se você estiver usando a versão fornecida da biblioteca GD.


Tipos de Recurso

Esta extensão define os seguintes tipos de recursos:

Lista de tipos de recursos na GD
Nome | Descrição | Notas
gd | Recurso de imagem, usado por funções como imagecreatefrompng() | Antes do PHP 8.0.0
gd font | Recurso de fonte criado internamente por imageloadfont() | Antes do PHP 8.1.0


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

GD_VERSION (string)
A versão da biblioteca GD que foi compilada com o PHP.
GD_MAJOR_VERSION (int)
A maior versão da biblioteca GD compilada com o PHP.
GD_MINOR_VERSION (int)
A menor versão da biblioteca GD compilada com o PHP.
GD_RELEASE_VERSION (int)
A versão release da biblioteca GD compilada com o PHP.
GD_EXTRA_VERSION (string)
A versão "extra" da biblioteca GD (beta/rc..) compilada com o PHP.
GD_BUNDLED (int)
1 quando for uma versão incorporada do GD e 0 nos demais casos.
IMG_AVIF (int)
Usada como valor retornado por imagetypes(). (Disponível a partir do PHP 8.1.0.)
IMG_BMP (int)
Usada como valor retornado por imagetypes().
IMG_GIF (int)
Usada como valor retornado por imagetypes().
IMG_JPG (int)
Usada como valor retornado por imagetypes().
IMG_JPEG (int)
Usada como valor retornado por imagetypes().

Nota:

Esta constante tem o mesmo valor que IMG_JPG

IMG_PNG (int)
Usada como valor retornado por imagetypes().
IMG_WBMP (int)
Usada como valor retornado por imagetypes().
IMG_XPM (int)
Usada como valor retornado por imagetypes().
IMG_WEBP (int)
Usada como valor retornado por imagetypes(). (Disponível a partir do PHP 7.0.10.)
IMG_WEBP_LOSSLESS (int)
(Disponível a partir do PHP 8.1.0.)
IMG_COLOR_TILED (int)
Opção de cor especial que pode ser usada em vez de uma cor alocada com imagecolorallocate() ou imagecolorallocatealpha().
IMG_COLOR_STYLED (int)
Opção de cor especial que pode ser usada em vez de uma cor alocada com imagecolorallocate() ou imagecolorallocatealpha().
IMG_COLOR_BRUSHED (int)
Opção de cor especial que pode ser usada em vez de uma cor alocada com imagecolorallocate() ou imagecolorallocatealpha().
IMG_COLOR_STYLEDBRUSHED (int)
Opção de cor especial que pode ser usada em vez de uma cor alocada com imagecolorallocate() ou imagecolorallocatealpha().
IMG_COLOR_TRANSPARENT (int)
Opção de cor especial que pode ser usada em vez de uma cor alocada com imagecolorallocate() ou imagecolorallocatealpha().
IMG_AFFINE_TRANSLATE (int)
Uma constante de tipo de transformação afim usada pela função imageaffinematrixget().
IMG_AFFINE_SCALE (int)
Uma constante de tipo de transformação afim usada pela função imageaffinematrixget().
IMG_AFFINE_ROTATE (int)
Uma constante de tipo de transformação afim usada pela função imageaffinematrixget().
IMG_AFFINE_SHEAR_HORIZONTAL (int)
Uma constante de tipo de transformação afim usada pela função imageaffinematrixget().
IMG_AFFINE_SHEAR_VERTICAL (int)
Uma constante de tipo de transformação afim usada pela função imageaffinematrixget().
IMG_ARC_ROUNDED (int)
Uma constante de estilo usada pela função imagefilledarc().

Nota:

Esta constante tem o mesmo valor de IMG_ARC_PIE

IMG_ARC_PIE (int)
Uma constante de estilo usada pela função imagefilledarc().
IMG_ARC_CHORD (int)
Uma constante de estilo usada pela função imagefilledarc().
IMG_ARC_NOFILL (int)
Uma constante de estilo usada pela função imagefilledarc().
IMG_ARC_EDGED (int)
Uma constante de estilo usada pela função imagefilledarc().
IMG_GD2_RAW (int)
Uma constante de tipo usada pela função imagegd2().
IMG_GD2_COMPRESSED (int)
Uma constante de tipo usada pela função imagegd2().
IMG_EFFECT_REPLACE (int)
Efeito de mesclagem alfa usado pela função imagelayereffect().
IMG_EFFECT_ALPHABLEND (int)
Efeito de mesclagem alfa usado pela função imagelayereffect().
IMG_EFFECT_NORMAL (int)
Efeito de mesclagem alfa usado pela função imagelayereffect().
IMG_EFFECT_OVERLAY (int)
Efeito de mesclagem alfa usado pela função imagelayereffect().
IMG_EFFECT_MULTIPLY (int)
Efeito de mesclagem alfa usado pela função imagelayereffect().
IMG_FILTER_NEGATE (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_GRAYSCALE (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_BRIGHTNESS (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_CONTRAST (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_COLORIZE (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_EDGEDETECT (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_GAUSSIAN_BLUR (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_SELECTIVE_BLUR (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_EMBOSS (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_MEAN_REMOVAL (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_SMOOTH (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_PIXELATE (int)
Filtro GD especial usado pela função imagefilter().
IMG_FILTER_SCATTER (int)
Filtro GD especial usado pela função imagefilter(). (Disponível desde o PHP 7.4.0)
IMAGETYPE_GIF (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_JPEG (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_JPEG2000 (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_PNG (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_SWF (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_PSD (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_BMP (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_WBMP (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_XBM (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_TIFF_II (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_TIFF_MM (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_IFF (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_JB2 (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_JPC (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_JP2 (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_JPX (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_SWC (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_ICO (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension().
IMAGETYPE_WEBP (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension(). (Diponível no PHP 7.1.0)
IMAGETYPE_AVIF (int)
Constante do tipo de imagem usada pelas funções image_type_to_mime_type() e image_type_to_extension(). (Disponível desde o PHP 8.1.0)
PNG_NO_FILTER (int)
Um filtro PNG especial usado pela função imagepng().
PNG_FILTER_NONE (int)
Um filtro PNG especial usado pela função imagepng().
PNG_FILTER_SUB (int)
Um filtro PNG especial usado pela função imagepng().
PNG_FILTER_UP (int)
Um filtro PNG especial usado pela função imagepng().
PNG_FILTER_AVG (int)
Um filtro PNG especial usado pela função imagepng().
PNG_FILTER_PAETH (int)
Um filtro PNG especial usado pela função imagepng().
PNG_ALL_FILTERS (int)
Um filtro PNG especial usado pela função imagepng().
IMG_FLIP_VERTICAL (int)
Usada junto com imageflip(), disponível a partir do PHP 5.5.0.
IMG_FLIP_HORIZONTAL (int)
Usada junto com imageflip(), disponível a partir do PHP 5.5.0.
IMG_FLIP_BOTH (int)
Usada junto com imageflip(), disponível a partir do PHP 5.5.0.
IMG_BELL (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_BESSEL (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_BILINEAR_FIXED (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_BICUBIC (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_BICUBIC_FIXED (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_BLACKMAN (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_BOX (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_BSPLINE (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_CATMULLROM (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_GAUSSIAN (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_GENERALIZED_CUBIC (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_HERMITE (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_HAMMING (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_HANNING (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_MITCHELL (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_POWER (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_QUADRATIC (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_SINC (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_NEAREST_NEIGHBOUR (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_WEIGHTED4 (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.
IMG_TRIANGLE (int)
Usada junto com imagesetinterpolation(), disponível a partir do PHP 5.5.0.


Exemplos

Índice

  • Criação de PNG com PHP
  • Adicionando marcas d'água a imagens usando canais alfa
  • Usando imagecopymerge para criar uma marca d'água translúcida


Criação de PNG com PHP

Exemplo #1 Criação de PNG com PHP

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>
Este exemplo seria chamado de uma página com uma etiqueta HTML parecida com: <img src="button.php?text=text">. O script button.php acima usa essa string "text" e o sobrepõe uma camada na imagem base que neste caso é "images/button1.png" e produz a imagem resultante. Esta é uma forma muito conveniente de evitar que se desenhe novas imagens de botões toda vez que se deseja alterar o texto de um botão. Com este método, eles são gerados dinamicamente.


Adicionando marcas d'água a imagens usando canais alfa

Exemplo #1 Adicionando marcas d'água a imagens usando canais alfa

<?php
// Carrega o carimbo e a foto para aplicar a marca d'água
$stamp = imagecreatefrompng('stamp.png'); // carimbo
$im = imagecreatefromjpeg('photo.jpeg'); // foto

// Define as margens para o carimbo e obtém a altura/largura da imagem
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Copia a imagem do carimbo na foto usando os deslocamentos das margens e a largura
// da foto para calcular o posicionamento do carimbo.
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

// Mostra a imagem e libera a memória
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Adicionando marcas d'água a imagens usando canais alfa
Este exemplo é uma forma comum de adicionar marcas d'água e carimbos a fotos e imagens com direitos autorais. Note que a presença de um canal alfa na imagem do carimbo tem suavização de serrilhado. Isto é preservado durante a cópia.


Usando imagecopymerge para criar uma marca d'água translúcida

  • « Adicionando marcas d'água a imagens usando canais alfa
  • Funções de GD e Image »
  • PHP Manual
  • Exemplos
  • Usando imagecopymerge para criar uma marca d'água translúcida

Usando imagecopymerge() para criar uma marca d'água translúcida

Exemplo #1 Usando imagecopymerge() para criar uma marca d'água translúcida

<?php
// Carrega o carimbo e a foto para aplicar a marca d'água
$im = imagecreatefromjpeg('photo.jpeg');

// Primeiro cria-se a imagem do carimbo manualmente a partir da GD
$stamp = imagecreatetruecolor(100, 70);
imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF);
imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF);
imagestring($stamp, 5, 20, 20, 'libGD', 0x0000FF);
imagestring($stamp, 3, 20, 40, '(c) 2007-9', 0x0000FF);

// Define-se as margens para o carimbo e obtém-se a altura/largura da imagem do carimbo
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Funde o carimbo com a foto usando uma opacidade de 50%
imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50);

// Salva a imagem em arquivo e libera memória
imagepng($im, 'photo_stamp.png');
imagedestroy($im);

?>
Usando imagecopymerge() para criar uma marca d'água translúcida
Este exemplo usa imagecopymerge() para fundir a estampa com a imagem original. Desta forma pode-se definir a opacidade do carimbo - no exemplo foi definido para 50%. Na prática isto pode ser útil em proteção contra cópia já que marcas d'água semi-transparentes são difíceis de se remover mas ainda permitem que a imagem seja visualizada.


Funções de GD e Image

Índice

  • gd_info — Obtém informações sobre a biblioteca GD instalada atualmente
  • getimagesize — Obtém o tamanho de uma imagem
  • getimagesizefromstring — Obtém o tamanho de uma imagem a partir de uma string
  • image_type_to_extension — Obtém a extensão de arquivo para o tipo da imagem
  • image_type_to_mime_type — Obtém o Mime-Type para o tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail e exif_imagetype
  • image2wbmp — Envia a imagem para o navegador ou para um arquivo
  • imageaffine — Retorna uma imagem contendo a imagem fonte com transformação afim, usando uma área de recorte opcional
  • imageaffinematrixconcat — Concatena duas matrizes de transformação afim
  • imageaffinematrixget — Obtém uma matriz de transformação afim
  • imagealphablending — Define o modo de combinação para uma imagem
  • imageantialias — Define se as funções de suavização de serrilhado devem ser usadas ou não
  • imagearc — Desenha um arco
  • imageavif — Envia a imagem para o navegador ou para um arquivo
  • imagebmp — Mostra ou grava uma imagem BMP
  • imagechar — Desenha um caractere horizontalmente
  • imagecharup — Desenha um caractere verticalmente
  • imagecolorallocate — Aloca uma cor para uma imagem
  • imagecolorallocatealpha — Aloca uma cor para uma imagem
  • imagecolorat — Obtém o índica da cor de um pixel
  • imagecolorclosest — Obtém o índice da cor mais próxima à especificada
  • imagecolorclosestalpha — Obtém o índice da cor mais próxima à especificada (incluindo alfa)
  • imagecolorclosesthwb — Obtém o índice da cor que tem a matiz, brancura e negritude mais próximas de uma cor informada
  • imagecolordeallocate — Desaloca uma cor de uma imagem
  • imagecolorexact — Obtém o índice da cor especificada
  • imagecolorexactalpha — Obtém o índice da cor e alfa especificados
  • imagecolormatch — Faz com que as cores da versão em paleta da imagem fiquem mais próximas da versão em cores verdadeiras
  • imagecolorresolve — Obtém o índice da cor especificada ou a alternativa mais próxima
  • imagecolorresolvealpha — Obtém o índice da cor + alfa especificados ou a alternativa mais próxima
  • imagecolorset — Define a cor para o índice da paleta especificado
  • imagecolorsforindex — Obtém as cores para um índice
  • imagecolorstotal — Obtém o número de cores em uma paleta de imagem
  • imagecolortransparent — Define uma cor como transparente
  • imageconvolution — Aplica uma matriz de convolução 3x3, usando coeficiente e deslocamento
  • imagecopy — Copiar uma parte de uma imagem
  • imagecopymerge — Copia e funde parte de uma imagem
  • imagecopymergegray — Copia e funde parte de uma imagem com escala de cinza
  • imagecopyresampled — Copia e redimensiona parte de uma imagem com reamostragem
  • imagecopyresized — Copia e redimensiona parte de uma imagem
  • imagecreate — Crie uma nova imagem baseada em paleta
  • imagecreatefromavif — Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefrombmp — Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefromgd2 — Cria uma nova imagem a partir de um arquivo GD2 ou URL
  • imagecreatefromgd2part — Cria uma nova imagem a partir de uma parte de um arquivo GD2 ou URL
  • imagecreatefromgd — Cria uma nova imagem a partir de um arquivo GD ou URL
  • imagecreatefromgif — Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefromjpeg — Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefrompng — Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefromstring — Cria uma nova imagem a partir de um fluxo de imagem na string
  • imagecreatefromtga — Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefromwbmp — Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefromwebp — Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefromxbm — Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefromxpm — Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatetruecolor — Cria uma nova imagem em cores verdadeiras
  • imagecrop — Recorta uma imagem no retângulo informado
  • imagecropauto — Recorta uma imagem automaticamente usando um dos modos disponíveis
  • imagedashedline — Desenha uma linha tracejada
  • imagedestroy — Destruir uma imagem
  • imageellipse — Desenha uma elipse
  • imagefill — Preenchimento
  • imagefilledarc — Desenha um arco parcial preenchido
  • imagefilledellipse — Desenha uma elipse preenchida
  • imagefilledpolygon — Desenha um polígono preenchido
  • imagefilledrectangle — Desenha um retângulo preenchido
  • imagefilltoborder — Preenche até encontrar uma cor especificada
  • imagefilter — Aplica um filtro a uma imagem
  • imageflip — Vira uma imagem usando um modo especificado
  • imagefontheight — Obtém a altura da fonte
  • imagefontwidth — Obtém a largura da fonte
  • imageftbbox — Fornece a caixa limite de um texto usando fontes via freetype2
  • imagefttext — Escreve texto em uma imagem usando fontes FreeType 2
  • imagegammacorrect — Aplica uma correção de gama a uma imagem GD
  • imagegd2 — Envia uma imagem GD2 ao navegador ou a um arquivo
  • imagegd — Envia uma imagem GD para o navegador ou para um arquivo
  • imagegetclip — Obtém o retângulo de recorte
  • imagegetinterpolation — Obtém o método de interpolação
  • imagegif — Envia a imagem para o navegador ou para um arquivo
  • imagegrabscreen — Captura toda a tela
  • imagegrabwindow — Captura uma janela
  • imageinterlace — Habilita ou desabilita entrelace
  • imageistruecolor — Descobre se uma imagem está em cores verdadeiras
  • imagejpeg — Envia a imagem para o navegador ou para um arquivo
  • imagelayereffect — Define a opção de mesclagem alfa para usar efeitos de camada
  • imageline — Desenha uma linha
  • imageloadfont — Carrega uma nova fonte
  • imageopenpolygon — Desenha um polígono aberto
  • imagepalettecopy — Copia a paleta de uma imagem para outra
  • imagepalettetotruecolor — Converte uma imagem baseada em paleta para cores verdadeiras
  • imagepng — Envia uma imagem PNG para o navegador ou arquivo
  • imagepolygon — Desenha um polígono
  • imagerectangle — Desenha um retângulo
  • imageresolution — Obtém ou define a resolução da imagem
  • imagerotate — Rotaciona uma imagem em um ângulo informado
  • imagesavealpha — Informa se a informação de canal alfa deve ser retida ao gravar imagens
  • imagescale — Muda a escala de uma imagem usando largura e altura informadas
  • imagesetbrush — Define o tipo de pincel para desenho de linhas
  • imagesetclip — Define o retângulo de recorte
  • imagesetinterpolation — Define o método de interpolação
  • imagesetpixel — Desenha um pixel
  • imagesetstyle — Define o estilo para desenho de linhas
  • imagesetthickness — Define a espessura para desenho de linhas
  • imagesettile — Define a imagem de ladrilho para preenchimento
  • imagestring — Desenha uma string na horizontal
  • imagestringup — Desenha uma string na vertical
  • imagesx — Obtém a largura da imagem
  • imagesy — Obtém a altura da imagem
  • imagetruecolortopalette — Converte uma imagem em cores verdadeiras em uma imagem de paleta
  • imagettfbbox — Fornece a os limites retangulares de um texto usando fontes TrueType
  • imagettftext — Escreve texto na imagem usando fontes TrueType
  • imagetypes — Retorna os tipos de imagens suportados pela instalação do PHP
  • imagewbmp — Envia a imagem para o navegador ou para um arquivo
  • imagewebp — Mostra uma imagem WebP no navegador ou grava em arquivo
  • imagexbm — Mostra uma imagem XBM em um navegador ou grava em arquivo
  • iptcembed — Incorpora dados binários IPTC em uma imagem JPEG
  • iptcparse — Interpreta um bloco IPTC binário em etiquetas simples
  • jpeg2wbmp — Converte arquivo de imagem JPEG para WBMP
  • png2wbmp — Converte arquivo de imagem PNG em WBMP


Obtém informações sobre a biblioteca GD instalada atualmente

  • « Funções de GD e Image
  • getimagesize »
  • PHP Manual
  • Funções de GD e Image
  • Obtém informações sobre a biblioteca GD instalada atualmente

gd_info

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

gd_info — Obtém informações sobre a biblioteca GD instalada atualmente

Descrição

gd_info(): array

Obtém informação sobre a versão e as capacidades da biblioteca GD instalada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array associativo.

Elementos de array retornados por gd_info()
Atributo | Significado
GD Version | Valor string descrevendo a versão da libgd instalada.
FreeType Support | Valor bool. true se o suporte FreeType estiver instalado.
FreeType Linkage | Valor string dewscrevendo a maneira que FreeType foi linkado. Os valores esperados são: 'with freetype', 'with TTF library', e 'with unknown library'. Este elemento será definido apenas se FreeType Support for true.
GIF Read Support | Valor bool. true se o suporte para ler imagens GIF estiver incluso.
GIF Create Support | Valor bool. true se o suporte para criação de imagens GIF estiver incluso.
JPEG Support | Valor bool. true se o suporte a JPEG estiver incluso.
PNG Support | Valor bool. true se o suporte a PNG estiver incluso.
WBMP Support | Valor bool. true se o suporte a WBMP estiver incluso.
XBM Support | Valor bool. true se o suporte a XBM estiver incluso.
WebP Support | Valor bool. true se o suporte a WebP estiver incluso.
AVIF Support | Valor bool. true se o suporte a AVIF estiver incluso. Disponível a partir do PHP 8.1.0.

Exemplos

Exemplo #1 Usando gd_info()

<?php
var_dump(gd_info());
?>

O exemplo acima produzirá algo semelhante a:

array(10) {
  ["GD Version"]=>
  string(24) "bundled (2.1.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPEG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
  ["WebP Support"]=>
  bool(false)
  ["AVIF Support"]=>
  bool(false)
}

Veja Também

  • imagepng() - Envia uma imagem PNG para o navegador ou arquivo
  • imagejpeg() - Envia a imagem para o navegador ou para um arquivo
  • imagegif() - Envia a imagem para o navegador ou para um arquivo
  • imagewbmp() - Envia a imagem para o navegador ou para um arquivo
  • imagewebp() - Mostra uma imagem WebP no navegador ou grava em arquivo
  • imageavif() - Envia a imagem para o navegador ou para um arquivo
  • imagetypes() - Retorna os tipos de imagens suportados pela instalação do PHP


Obtém o tamanho de uma imagem

  • « gd_info
  • getimagesizefromstring »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o tamanho de uma imagem

getimagesize

(PHP 4, PHP 5, PHP 7, PHP 8)

getimagesize — Obtém o tamanho de uma imagem

Descrição

getimagesize(string $filename, array &$image_info = null): array|false

A função getimagesize() irá determinar o tamanho de qualquer arquivo de imagem suportado fornecido e retornar as dimensões, juntamente com o tipo de arquivo e uma string de texto height/width a ser usada dentro de uma tagHTML IMG normal, juntamente com o tipo de conteúdo HTTP correspondente.

getimagesize() também pode retornar mais informações no parâmetro image_info.

Cuidado

Essa função espera que filename seja um arquivo de imagem válido. Se um arquivo que não seja uma imagem for fornecido, ele pode ser incorretamente detectado como uma imagem, e a função será bem-sucedida, mas o array pode conter valores sem sentido.

Não utilize a função getimagesize() para verificar se um determinado arquivo é uma imagem válida. Em vez disso, utilize uma solução específica para essa finalidade, como a extensão Fileinfo.

Nota: Observe que os formatos JPC e JP2 podem ter componentes com diferentes profundidades de bits. Nesse caso, o valor "bits" representa a maior profundidade de bits encontrada. Além disso, arquivos JP2 podem conter multiple JPEG 2000 codestreams. Nesse caso, a função getimagesize() retorna os valores do primeiro codestream que encontra na raiz do arquivo.

Nota: As informações sobre ícones são obtidas a partir do ícone com a maior taxa de bits.

Nota: As imagens GIF consistem em um ou mais frames, em que cada frame pode ocupar apenas uma parte da imagem. O tamanho da imagem relatado pela função getimagesize() é o tamanho geral (lido do descritor da tela lógica).

Parâmetros

filename

Este parâmetro especifica o arquivo do qual você deseja obter informações. Ele pode fazer referência a um arquivo local ou (se a configuração permitir) a um arquivo remoto usando um dos streams suportados.

image_info

Este parâmetro opcional permite extrair informações estendidas do arquivo de imagem. Atualmente, isso retornará os diferentes marcadores APP JPG como um array associativo. Alguns programas usam esses marcadores APP para incorporar informações de texto em imagens. Um dos usos comuns é incorporar informações » IPTC no marcador APP13. Você pode usar a função iptcparse() para analisar o marcador binário APP13 em algo legível.

Nota:

O parâmetro image_info suporta apenas arquivos no formato JFIF.

Valor Retornado

Retorna um array com até 7 elementos. Nem todos os tipos de imagem incluirão os elementos channels e bits.

O índice 0 e 1 contém, respectivamente, a largura e a altura da imagem.

Nota:

Alguns formatos podem não conter nenhuma imagem ou podem conter várias imagens. Nesses casos, a função getimagesize() pode não ser capaz de determinar corretamente o tamanho da imagem. A função getimagesize() retornará zero para largura e altura nesses casos.

O índice 2 é uma das constantes IMAGETYPE_XXX, que indica o tipo da imagem.

O índice 3 é uma sequência de texto com a string correta height="yyy" width="xxx" que pode ser usada diretamente em uma tag IMG.

mime é o tipo MIME correspondente da imagem. Essa informação pode ser usada para fornecer imagens com o cabeçalho Content-type HTTP correto:

Exemplo #1 getimagesize() e tipos MIME.

<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp);
exit;
} else {
// erro
}
?>

channels Será 3 para imagens RGB e 4 para imagens CMYK.

bits é o número de bits para cada cor.

Para alguns tipos de imagem, a presença dos valores de channels e bits pode ser um pouco confusa. Por exemplo, o formato GIF sempre utiliza 3 canais por pixel, mas o número de bits por pixel não pode ser calculado para um GIF animado com uma tabela de cores global.

Em caso de falha, é retornado false.

Erros/Exceções

Se for impossível acessar a imagem do filename, a função getimagesize() gerará um erro de nível E_WARNING. Em caso de erro de leitura, getimagesize() gerará um erro de nível E_NOTICE.

Registro de Alterações

Versão | Descrição
8.2.0 | Agora, a função retorna as dimensões reais da imagem, bits e canais de imagens AVIF; anteriormente, as dimensões eram relatadas como 0x0, e bits e channels não eram relatados de forma alguma.
7.1.0 | Foi adicionado suporte para WebP.

Exemplos

Exemplo #2 getimagesize()exemplo

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>

Exemplo #3 getimagesize (URL)

<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// se o nome do arquivo contiver espaços, ele será codificado adequadamente.
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

Exemplo #4 getimagesize() retornando IPTC.

<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
var_dump($iptc);
}
?>

Notas

Nota:

Esta função não requer a biblioteca de imagens GD.

Veja Também

  • image_type_to_mime_type() - Obtém o Mime-Type para o tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail e exif_imagetype
  • exif_imagetype() - Verifica o tipo de uma imagem
  • exif_read_data() - Lê os cabeçalhos EXIF de um arquivo de imagen
  • exif_thumbnail() - Recupera a miniatura embutida de uma imagem
  • imagesx() - Obtém a largura da imagem
  • imagesy() - Obtém a altura da imagem


Obtém o tamanho de uma imagem a partir de uma string

  • « getimagesize
  • image_type_to_extension »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o tamanho de uma imagem a partir de uma string

getimagesizefromstring

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

getimagesizefromstring — Obtém o tamanho de uma imagem a partir de uma string

Descrição

getimagesizefromstring(string $string, array &$image_info = null): array|false

Idêntica a getimagesize() exceto que getimagesizefromstring() aceita uma string ao invés de um nome de arquivo como o primeiro parâmetro.

Consulte a documentação de getimagesize() para detalhes de como esta função opera.

Parâmetros

string

Os dados da imagem, como uma string.

image_info

Consulte getimagesize().

Valor Retornado

Consulte getimagesize().

Exemplos

Exemplo #1 Exemplo de getimagesizefromstring()

<?php
$img = '/path/to/test.png';

// Abre como um arquivo
$size_info1 = getimagesize($img);

// Ou abre como uma string
$data = file_get_contents($img);
$size_info2 = getimagesizefromstring($data);
?>

Veja Também

  • getimagesize() - Obtém o tamanho de uma imagem


Obtém a extensão de arquivo para o tipo da imagem

  • « getimagesizefromstring
  • image_type_to_mime_type »
  • PHP Manual
  • Funções de GD e Image
  • Obtém a extensão de arquivo para o tipo da imagem

image_type_to_extension

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

image_type_to_extension — Obtém a extensão de arquivo para o tipo da imagem

Descrição

image_type_to_extension(int $image_type, bool $include_dot = true): string|false

Retorna a extensão de arquivo para a constante IMAGETYPE_XXX informada.

Parâmetros

image_type

Uma das constantes IMAGETYPE_XXX.

include_dot

Informa se deve-se prefixar um ponto à extensão ou não. O padrão é true (prefixar).

Valor Retornado

Uma string com a extensão correspondente ao tipo de imagem informado, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de image_type_to_extension()

<?php
// Cria instância da imagem
$im = imagecreatetruecolor(100, 100);

// Salva a imagem
imagepng($im, './test' . image_type_to_extension(IMAGETYPE_PNG));
imagedestroy($im);
?>

Notas

Nota:

Esta função não requer a biblioteca de imagens GD.


Obtém o Mime-Type para o tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail e exif_imagetype

  • « image_type_to_extension
  • image2wbmp »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o Mime-Type para o tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail e exif_imagetype

image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

image_type_to_mime_type — Obtém o Mime-Type para o tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail e exif_imagetype

Descrição

image_type_to_mime_type(int $image_type): string

A função image_type_to_mime_type() determina o Mime-Type (tipo de mídia) para uma constante IMAGETYPE.

Parâmetros

image_type

Uma das constantes IMAGETYPE_XXX.

Valor Retornado

Os valores retornados são os seguintes:

Constantes de valores de retorno
image_type | Valor retornado
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 (ordem de bytes Intel - little endian) | image/tiff
IMAGETYPE_TIFF_MM (ordem de bytes Motorola - big endian) | 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
IMAGETYPE_ICO | image/vnd.microsoft.icon
IMAGETYPE_WEBP | image/webp
IMAGETYPE_AVIF | image/avif

Exemplos

Exemplo #1 Exemplo de image_type_to_mime_type()

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

Notas

Nota:

Esta função não requer a biblioteca de imagens GD.

Veja Também

  • getimagesize() - Obtém o tamanho de uma imagem
  • exif_imagetype() - Verifica o tipo de uma imagem
  • exif_read_data() - Lê os cabeçalhos EXIF de um arquivo de imagen
  • exif_thumbnail() - Recupera a miniatura embutida de uma imagem


Envia a imagem para o navegador ou para um arquivo

  • « image_type_to_mime_type
  • imageaffine »
  • PHP Manual
  • Funções de GD e Image
  • Envia a imagem para o navegador ou para um arquivo

image2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

image2wbmp — Envia a imagem para o navegador ou para um arquivo

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.3.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

image2wbmp(resource $image, string $filename = ?, int $foreground = ?): bool

image2wbmp() mostra ou grava uma versão WBMP da imagem informada no parâmetro image.

Parâmetros

image

Um recurso de imagem, retornado por uma das funções de criação de imagem, tal como imagecreatetruecolor().

filename

Caminho para o arquivo gravado. Se não fornecido, o fluxo de imagem puro será mostrado/gravado diretamente.

foreground

Pode-se definir a cor de primeiro plano com este parâmetro configurando um identificador obtido a partir de imagecolorallocate(). A cor padrão de primeiro plano é preta.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Exemplos

Exemplo #1 Exemplo de image2wbmp()

<?php
$file = 'php.png';
$image = imagecreatefrompng($file);

header('Content-Type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // mostra o fluxo diretamente
imagedestroy($image);
?>

Veja Também

  • imagewbmp() - Envia a imagem para o navegador ou para um arquivo


Retorna uma imagem contendo a imagem fonte com transformação afim, usando uma área de recorte opcional

  • « image2wbmp
  • imageaffinematrixconcat »
  • PHP Manual
  • Funções de GD e Image
  • Retorna uma imagem contendo a imagem fonte com transformação afim, usando uma área de recorte opcional

imageaffine

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffine — Retorna uma imagem contendo a imagem fonte com transformação afim, usando uma área de recorte opcional

Descrição

imageaffine(GdImage $image, array $affine, ?array $clip = null): GdImage|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

affine

Array com chaves de 0 a 5.

clip

Array com chaves "x", "y", "width" (largura) e "height" (altura); ou null.

Valor Retornado

Retorna o objeto da imagem com transformação afim em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | clip agora pode ser nulo.
8.0.0 | Em caso de sucesso, esta função retorna uma instância de GDImage agora; anteriormente, um resource era retornado.


Concatena duas matrizes de transformação afim

  • « imageaffine
  • imageaffinematrixget »
  • PHP Manual
  • Funções de GD e Image
  • Concatena duas matrizes de transformação afim

imageaffinematrixconcat

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffinematrixconcat — Concatena duas matrizes de transformação afim

Descrição

imageaffinematrixconcat(array $matrix1, array $matrix2): array|false

Retorna a concatenação de duas matrizes de transformação afim, que é útil se múltiplas transformações devem ser aplicadas na mesma imagem diretamente.

Parâmetros

matrix1

Uma matriz de transformação afim (um array com chaves de 0 a 5 e valores float).

matrix2

Uma matriz de transformação afim (um array com chaves de 0 a 5 e valores float).

Valor Retornado

Uma matriz de transformação afim (um array com chaves de 0 a 5 e valores float) ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de imageaffinematrixconcat()

<?php
$m1 = imageaffinematrixget(IMG_AFFINE_TRANSLATE, array('x' => 2, 'y' => 3));
$m2 = imageaffinematrixget(IMG_AFFINE_SCALE, array('x' => 4, 'y' => 5));
$matrix = imageaffinematrixconcat($m1, $m2);
print_r($matrix);
?>

O exemplo acima produzirá:

Array
(
    [0] => 4
    [1] => 0
    [2] => 0
    [3] => 5
    [4] => 8
    [5] => 15
)

Veja Também

  • imageaffine() - Retorna uma imagem contendo a imagem fonte com transformação afim, usando uma área de recorte opcional
  • imageaffinematrixget() - Obtém uma matriz de transformação afim


Obtém uma matriz de transformação afim

  • « imageaffinematrixconcat
  • imagealphablending »
  • PHP Manual
  • Funções de GD e Image
  • Obtém uma matriz de transformação afim

imageaffinematrixget

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffinematrixget — Obtém uma matriz de transformação afim

Descrição

imageaffinematrixget(int $type, array|float $options): array|false

Retorna uma matriz de transformação afim.

Parâmetros

type

Uma das constantes IMG_AFFINE_*.

options

Se type for IMG_AFFINE_TRANSLATE ou IMG_AFFINE_SCALE, options deve ser um array com chaves x e y, ambas tendo valores float.

Se type for IMG_AFFINE_ROTATE, IMG_AFFINE_SHEAR_HORIZONTAL ou IMG_AFFINE_SHEAR_VERTICAL, options deve ser um float especificando o ângulo em graus.

Valor Retornado

Uma matriz de transformação afim (um array com chaves de 0 a 5 e valores float) ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de imageaffinematrixget()

<?php
$matrix = imageaffinematrixget(IMG_AFFINE_TRANSLATE, array('x' => 2, 'y' => 3));
print_r($matrix);
?>

O exemplo acima produzirá:

Array
(
    [0] => 1
    [1] => 0
    [2] => 0
    [3] => 1
    [4] => 2
    [5] => 3
)

Veja Também

  • imageaffine() - Retorna uma imagem contendo a imagem fonte com transformação afim, usando uma área de recorte opcional
  • imageaffinematrixconcat() - Concatena duas matrizes de transformação afim


Define o modo de combinação para uma imagem

  • « imageaffinematrixget
  • imageantialias »
  • PHP Manual
  • Funções de GD e Image
  • Define o modo de combinação para uma imagem

imagealphablending

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagealphablending — Define o modo de combinação para uma imagem

Descrição

imagealphablending(GdImage $image, bool $enable): bool

imagealphablending() permite dois modos diferentes para desenhar em imagens com cores verdadeiras. No modo de combinação, o componente alfa da cor fornecida para todas as funções de desenho, tal como imagesetpixel(), determina o quanto da cor subjacente deve ser permitido passar. Como resultado, GD automaticamente combina a cor existente naquele ponto com a cor de desenho, e grava o resultado na imagem. O pixel resultante é opaco. Em modo de não-combinação, a cor de desenho é copiada literalmente com sua informação do canal alfa, substituindo o pixel de destino. O modo de combinação não está disponível ao desenhar em imagens com paletas de cores.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

enable

Informa se o modo de combinação deve ser habilitado ou não. Em imagens com cores verdadeiras, o padrão é true caso contrário o valor padrão é false.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de uso de imagealphablending()

<?php
// Cria a imagem
$im = imagecreatetruecolor(100, 100);

// Define a combinação de alfa para habilitado
imagealphablending($im, true);

// Desenha um quadrado
imagefilledrectangle($im, 30, 30, 70, 70, imagecolorallocate($im, 255, 0, 0));

// Mostra o resultado
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>


Define se as funções de suavização de serrilhado devem ser usadas ou não

  • « imagealphablending
  • imagearc »
  • PHP Manual
  • Funções de GD e Image
  • Define se as funções de suavização de serrilhado devem ser usadas ou não

imageantialias

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imageantialias — Define se as funções de suavização de serrilhado devem ser usadas ou não

Descrição

imageantialias(GdImage $image, bool $enable): bool

Ativa os métodos rápidos de suavização de serrilhado para linhas e polígonos. Não suporta componentes alfa. Funciona usando um operação de combinação direta, e somente com imagens de cores verdadeiras.

Linhas com espessura e com estilos não são suportadas.

Usar primitivas com redução de serrilhado em plano de fundo transparente pode gerar alguns resultados inesperados. O método de combinação usa a cor de fundo como qualquer outra. A falta de suporte ao componente alfa não permite um método de redução de serrilhado baseado no canal alfa.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

enable

Informa se a redução de serrilhado deve ser habilitada ou não.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
7.2.0 | imageantialias() agora está disponível de forma geral. Anteriormente estava disponível somente se o PHP fosse compilado com a versão já incluída da biblioteca GD.

Exemplos

Exemplo #1 Uma comparação de duas linhas, uma delas com redução de serrilhado

<?php
// Comfigura uma imagem com redução de serrilhado e outra normal
$aa = imagecreatetruecolor(400, 100);
$normal = imagecreatetruecolor(200, 100);

// Habilita redução de serrilhado em uma imagem
imageantialias($aa, true);

// Aloca cores
$red = imagecolorallocate($normal, 255, 0, 0);
$red_aa = imagecolorallocate($aa, 255, 0, 0);

// Desenha duas linhas, uma com RS habilitada
imageline($normal, 0, 0, 200, 100, $red);
imageline($aa, 0, 0, 200, 100, $red_aa);

// Funde as duas imagens lado a lado para saída (RS: esquerda, Normal: direita)
imagecopymerge($aa, $normal, 200, 0, 0, 0, 200, 100, 100);

// Mostra a imagem
header('Content-type: image/png');

imagepng($aa);
imagedestroy($aa);
imagedestroy($normal);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Uma comparação de duas linhas, uma delas com redução de serrilhado

Veja Também

  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras


Desenha um arco

  • « imageantialias
  • imageavif »
  • PHP Manual
  • Funções de GD e Image
  • Desenha um arco

imagearc

(PHP 4, PHP 5, PHP 7, PHP 8)

imagearc — Desenha um arco

Descrição

imagearc(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $start_angle,
int $end_angle,
int $color
): bool

imagearc() desenha um arco de círculo centrado nas coordenadas fornecidas.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

center_x

Coordenada x do centro.

center_y

Coordenada y do centro.

width

Largura do arco.

height

Altura do arco.

start_angle

Ângulo inicial do arco, em graus.

end_angle

Ângulo final do arco, em graus. 0° está localizado na posição de 3 horas, e o arco é desenhado no sentido horário.

color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Desenhando um círculo com imagearc()

<?php

// cria uma imagem 200x200
$img = imagecreatetruecolor(200, 200);

// aloca algumas cores
$white = imagecolorallocate($img, 255, 255, 255);
$red = imagecolorallocate($img, 255, 0, 0);
$green = imagecolorallocate($img, 0, 255, 0);
$blue = imagecolorallocate($img, 0, 0, 255);

// desenha a cabeça
imagearc($img, 100, 100, 200, 200, 0, 360, $white);
// boca
imagearc($img, 100, 100, 150, 150, 25, 155, $red);
// olho esquerdo e olho direito
imagearc($img, 60, 75, 50, 50, 0, 360, $green);
imagearc($img, 140, 75, 50, 50, 0, 360, $blue);

// mostra a imagem no navegador
header("Content-type: image/png");
imagepng($img);

// libera a memória
imagedestroy($img);

?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Desenhando um círculo com imagearc()

Veja Também

  • imagefilledarc() - Desenha um arco parcial preenchido
  • imageellipse() - Desenha uma elipse
  • imagefilledellipse() - Desenha uma elipse preenchida


Envia a imagem para o navegador ou para um arquivo

  • « imagearc
  • imagebmp »
  • PHP Manual
  • Funções de GD e Image
  • Envia a imagem para o navegador ou para um arquivo

imageavif

(PHP 8 >= 8.1.0)

imageavif — Envia a imagem para o navegador ou para um arquivo

Descrição

imageavif(
GdImage $image,
resource|string|null $file = null,
int $quality = -1,
int $speed = -1
): bool

Mostra ou grava uma imagem rasterizada AVIF a partir da imagem fornecida em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

file

O caminho ou um recurso de stream aberto (que será fechado automaticamente após o retorno desta função) para salvar o arquivo. Se não for definido ou for null, o stream da imagem bruta será enviado diretamente.

quality

quality é opcional, e varia de 0 (pior qualidade, arquivo menor) a 100 (melhor qualidade, arquivo maior). Se -1 for fornecido, o valor padrão de 30 será usado.

speed

speed é opcional, e varia de 0 (lento, arquivo menor) a 10 (rápido, arquivo maior). Se -1 for fornecido, o valor padrão 6 será usado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Veja Também

  • imagepng() - Envia uma imagem PNG para o navegador ou arquivo
  • imagewbmp() - Envia a imagem para o navegador ou para um arquivo
  • imagejpeg() - Envia a imagem para o navegador ou para um arquivo
  • imagetypes() - Retorna os tipos de imagens suportados pela instalação do PHP


Mostra ou grava uma imagem BMP

  • « imageavif
  • imagechar »
  • PHP Manual
  • Funções de GD e Image
  • Mostra ou grava uma imagem BMP

imagebmp

(PHP 7 >= 7.2.0, PHP 8)

imagebmp — Mostra ou grava uma imagem BMP

Descrição

imagebmp(GdImage $image, resource|string|null $file = null, bool $compressed = true): bool

Mostra ou grava uma versão BMP da imagem fornecida em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

file

O caminho ou um recurso de stream aberto (que será fechado automaticamente após o retorno desta função) para salvar o arquivo. Se não for definido ou for null, o stream da imagem bruta será enviado diretamente.

Nota:

null é inválido se o parâmetro compressed não for usado.

compressed

Define se o BMP deve ser comprimido com codificação run-length (RLE), ou não.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
8.0.0 | O tipo de compressed agora é bool; anteriormente era int.

Exemplos

Exemplo #1 Gravando um arquivo BMP

<?php
// Cria uma imagem vazia e adiciona texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5, 'BMP com PHP', $text_color);

// Grava a imagem
imagebmp($im, 'php.bmp');

// Libera a memória
imagedestroy($im);
?>


Desenha um caractere horizontalmente

  • « imagebmp
  • imagecharup »
  • PHP Manual
  • Funções de GD e Image
  • Desenha um caractere horizontalmente

imagechar

(PHP 4, PHP 5, PHP 7, PHP 8)

imagechar — Desenha um caractere horizontalmente

Descrição

imagechar(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $char,
int $color
): bool

imagechar() desenha o primeiro caractere de char na imagem identificada por image com seu canto superior esquerdo em x,y (superior esquerdo é 0, 0) com a cor color.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

font

Pode ser 1, 2, 3, 4, 5 para as fontes nativas na codificação latin2 (onde números maiores correspondem a fontes maiores) ou uma instância de GdFont, retornada por imageloadfont().

x

Coordenada x do início.

y

Coordenada y do início.

char

O caractere a ser desenhado.

color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro font agora aceita uma instância de GdFont ou um int; anteriormente, apenas int era aceito.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagechar()

<?php

$im = imagecreate(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// mostra um "P" na cor preta no canto superior esquerdo
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagechar()

Veja Também

  • imagecharup() - Desenha um caractere verticalmente
  • imageloadfont() - Carrega uma nova fonte


Desenha um caractere verticalmente

  • « imagechar
  • imagecolorallocate »
  • PHP Manual
  • Funções de GD e Image
  • Desenha um caractere verticalmente

imagecharup

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecharup — Desenha um caractere verticalmente

Descrição

imagecharup(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $char,
int $color
): bool

Desenha o caractere char verticalmente na coordenada especificada na imagem informada em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

font

Pode ser 1, 2, 3, 4, 5 para as fontes nativas na codificação latin2 (onde números maiores correspondem a fontes maiores) ou uma instância de GdFont, retornada por imageloadfont().

x

Coordenada x do início.

y

Coordenada y do início.

char

O caractere a ser desenhado.

color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro font agora aceita uma instância de GdFont ou um int; anteriormente, apenas int era aceito.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagecharup()

<?php

$im = imagecreate(100, 100);

$string = 'Note que a primeira letra é um N';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// mostra um "Z" na cor preta em um fundo branco
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagecharup()

Veja Também

  • imagechar() - Desenha um caractere horizontalmente
  • imageloadfont() - Carrega uma nova fonte


Aloca uma cor para uma imagem

  • « imagecharup
  • imagecolorallocatealpha »
  • PHP Manual
  • Funções de GD e Image
  • Aloca uma cor para uma imagem

imagecolorallocate

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorallocate — Aloca uma cor para uma imagem

Descrição

imagecolorallocate(
GdImage $image,
int $red,
int $green,
int $blue
): int|false

Retorna um identificador de cor representando a cor composta pelos componentes RGB.

imagecolorallocate() precisa ser chamada para criar cada cor que será usada na imagem representada por image.

Nota:

A primeira chamada a imagecolorallocate() preenche a cor de fundo em imagens com base em paletas - imagens criadas usando imagecreate().

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

red

Valor do componente vermelho.

green

Valor do componente verde.

blue

Valor do componente azul.

Estes parâmetros são inteiros entre 0 e 255 ou hexadecimais entre 0x00 e 0xFF.

Valor Retornado

Um identificadore de cor ou false se a alocação falhar.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagecolorallocate()

<?php

$im = imagecreate(100, 100);

// define a cor de fundo para vermelha
$background = imagecolorallocate($im, 255, 0, 0);

// define algumas cores
$white = imagecolorallocate($im, 255, 255, 255); //branca
$black = imagecolorallocate($im, 0, 0, 0); //preta

// com hexadecimais
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF); //branca
$black = imagecolorallocate($im, 0x00, 0x00, 0x00); //preta

?>

Veja Também

  • imagecolorallocatealpha() - Aloca uma cor para uma imagem
  • imagecolordeallocate() - Desaloca uma cor de uma imagem


Aloca uma cor para uma imagem

  • « imagecolorallocate
  • imagecolorat »
  • PHP Manual
  • Funções de GD e Image
  • Aloca uma cor para uma imagem

imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imagecolorallocatealpha — Aloca uma cor para uma imagem

Descrição

imagecolorallocatealpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int|false

imagecolorallocatealpha() se comporta de forma idêntica a imagecolorallocate() com a adição do parâmetro de transparência alpha.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

red

Valor do componente vermelho.

green

Valor do componente verde.

blue

Valor do componente azul.

alpha

Um valor entre 0 e 127. 0 indica completamente opaco enquanto que 127 indica completamente transparente.

Os parâmetros red, green e blue são inteiros entre 0 e 255 ou haxadecimais entre 0x00 e 0xFF.

Valor Retornado

Um identificador de cor ou false se a alocação falhar.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de uso de imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// algo para obter fundo branco com borda preta
$back = imagecolorallocate($image, 255, 255, 255); //fundo
$border = imagecolorallocate($image, 0, 0, 0); //borda
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;

// aloca cores com valores de alfa
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);

// desenhando 3 círculos sobrepostos
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);

// não esquecer de emitir um cabeçalho corretamente!
header('Content-Type: image/png');

// e finalmente, mostra o resultado
imagepng($image);
imagedestroy($image);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Exemplo de uso de imagecolorallocatealpha()

Exemplo #2 Converte valores típicos de alfa para uso com imagecolorallocatealpha()

Normalmente, valores de alfa 0 designam pixels totalmente transparentes, e o canal alfa tem 8 bits. Para converter taia valores de alfa para que sejam compatíveis com imagecolorallocatealpha(), uma aritmética simples é suficiente:

<?php
$alpha8 = 0; // totalmente transparente
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // totalmente opaco
var_dump(127 - ($alpha8 >> 1));
?>

O exemplo acima produzirá:

int(127)
int(0)

Veja Também

  • imagecolorallocate() - Aloca uma cor para uma imagem
  • imagecolordeallocate() - Desaloca uma cor de uma imagem


Obtém o índica da cor de um pixel

  • « imagecolorallocatealpha
  • imagecolorclosest »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o índica da cor de um pixel

imagecolorat

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorat — Obtém o índica da cor de um pixel

Descrição

imagecolorat(GdImage $image, int $x, int $y): int|false

Retorna o índice da cor do pixel na localização especificada na imagem informada em image.

Se a imagem for em cores verdadeiras, esta função retorna o valor RGB do pixel como inteiro. Use deslocamentos de bits e máscaras para distinguir os componentes de vermelho, verde e azul:

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

x

Coordenada x do pixel.

y

Coordenada y do pixel.

Valor Retornado

Retorna o índice da cor ou false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Acessando valores decompostos de RGB

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

var_dump($r, $g, $b);
?>

O exemplo acima produzirá algo semelhante a:

int(119)
int(123)
int(180)

Exemplo #2 Valores legíveis de RGB usando imagecolorsforindex()

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);

$colors = imagecolorsforindex($im, $rgb);

var_dump($colors);
?>

O exemplo acima produzirá algo semelhante a:

array(4) {
  ["red"]=>
  int(119)
  ["green"]=>
  int(123)
  ["blue"]=>
  int(180)
  ["alpha"]=>
  int(127)
}

Veja Também

  • imagecolorset() - Define a cor para o índice da paleta especificado
  • imagecolorsforindex() - Obtém as cores para um índice
  • imagesetpixel() - Desenha um pixel


Obtém o índice da cor mais próxima à especificada

  • « imagecolorat
  • imagecolorclosestalpha »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o índice da cor mais próxima à especificada

imagecolorclosest

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorclosest — Obtém o índice da cor mais próxima à especificada

Descrição

imagecolorclosest(
GdImage $image,
int $red,
int $green,
int $blue
): int

Retorna o índice da cor na paleta da imagem que for a mais "próxima" ao valor RGB especificado.

A "distância" entre a cor desejada em relação a cada cor da paleta é calculada como se os valores RGB representassem pontos no espaço tridimensional.

Se a imagem foi criada a partir de um arquivo, apenas as cores usadas na imagem são resolvidas. As cores presentes apenas na paleta não serão resolvidas.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

red

Valor do componente vermelho.

green

Valor do componente verde.

blue

Valor do componente azul.

Os parâmetros de cores são inteiros entre 0 e 255 ou hexadecimais entre 0x00 e 0xFF.

Valor Retornado

Retorna o índice na paleta da imagem da cor mais próxima à especificada.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Procura por um conjunto de cores em uma imagem

<?php
// Inicia com uma imagem e converte-a para uma baseada em paleta
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);

// Cores que serão procuradas (RGB)
$colors = array(
array(254, 145, 154),
array(153, 145, 188),
array(153, 90, 145),
array(255, 137, 92)
);

// Faz uma repeticação para cada procura e encontra a cor mais próxima na paleta.
// Retorna o número da procura, a cor RGB sendo procurada e a cor correspondente encontrada, convertida para RGB
foreach($colors as $id => $rgb)
{
$result = imagecolorclosest($im, $rgb[0], $rgb[1], $rgb[2]);
$result = imagecolorsforindex($im, $result);
$result = "({$result['red']}, {$result['green']}, {$result['blue']})";

echo "#$id: Cor procurada: ($rgb[0], $rgb[1], $rgb[2]); Cor mais próxima: $result.\n";
}

imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

#0: Cor procurada: (254, 145, 154); Cor mais próxima: (252, 150, 148).
#1: Cor procurada: (153, 145, 188); Cor mais próxima: (148, 150, 196).
#2: Cor procurada: (153, 90, 145); Cor mais próxima: (148, 90, 156).
#3: Cor procurada: (255, 137, 92); Cor mais próxima: (252, 150, 92).

Veja Também

  • imagecolorexact() - Obtém o índice da cor especificada
  • imagecolorclosestalpha() - Obtém o índice da cor mais próxima à especificada (incluindo alfa)
  • imagecolorclosesthwb() - Obtém o índice da cor que tem a matiz, brancura e negritude mais próximas de uma cor informada


Obtém o índice da cor mais próxima à especificada (incluindo alfa)

  • « imagecolorclosest
  • imagecolorclosesthwb »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o índice da cor mais próxima à especificada (incluindo alfa)

imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecolorclosestalpha — Obtém o índice da cor mais próxima à especificada (incluindo alfa)

Descrição

imagecolorclosestalpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int

Retorna o índice da cor na paleta da imagem que for a mais "próxima" ao valor RGB e ao nível alpha especificados.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

red

Valor do componente vermelho.

green

Valor do componente verde.

blue

Valor do componente azul.

alpha

Um valor entre 0 e 127. 0 indica completamente opaco enquanto que 127 indica completamente transparente.

Os parâmetros de cores são inteiros entre 0 e 255 ou hexadecimais entre 0x00 e 0xFF.

Valor Retornado

Retorna o índice na paleta da imagem da cor mais próxima à especificada.

Exemplos

Exemplo #1 Procura por um conjunto de cores em uma imagem

<?php
// Inicia com uma imagem e converte-a para uma baseada em paleta
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);

// Cores que serão procuradas (RGB)
$colors = array(
array(254, 145, 154, 50),
array(153, 145, 188, 127),
array(153, 90, 145, 0),
array(255, 137, 92, 84)
);

// Faz uma repeticação para cada procura e encontra a cor mais próxima na paleta.
// Retorna o número da procura, a cor RGB sendo procurada e a cor correspondente encontrada, convertida para RGB
foreach($colors as $id => $rgb)
{
$result = imagecolorclosestalpha($im, $rgb[0], $rgb[1], $rgb[2], $rgb[3]);
$result = imagecolorsforindex($im, $result);
$result = "({$result['red']}, {$result['green']}, {$result['blue']}, {$result['alpha']})";

echo "#$id: Cor procurada: ($rgb[0], $rgb[1], $rgb[2], $rgb[3]); Cor mais próxima: $result.\n";
}

imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

#0: Cor procurada: (254, 145, 154, 50); Cor mais próxima: (252, 150, 148, 0).
#1: Cor procurada: (153, 145, 188, 127); Cor mais próxima: (148, 150, 196, 0).
#2: Cor procurada: (153, 90, 145, 0); Cor mais próxima: (148, 90, 156, 0).
#3: Cor procurada: (255, 137, 92, 84); Cor mais próxima: (252, 150, 92, 0).

Veja Também

  • imagecolorexactalpha() - Obtém o índice da cor e alfa especificados
  • imagecolorclosest() - Obtém o índice da cor mais próxima à especificada
  • imagecolorclosesthwb() - Obtém o índice da cor que tem a matiz, brancura e negritude mais próximas de uma cor informada


Obtém o índice da cor que tem a matiz, brancura e negritude mais próximas de uma cor informada

  • « imagecolorclosestalpha
  • imagecolordeallocate »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o índice da cor que tem a matiz, brancura e negritude mais próximas de uma cor informada

imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecolorclosesthwb — Obtém o índice da cor que tem a matiz, brancura e negritude mais próximas de uma cor informada

Descrição

imagecolorclosesthwb(
GdImage $image,
int $red,
int $green,
int $blue
): int

Obtém o índice da cor que tem a matiz, a brancura e a negritude mais próximas da cor informada.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

red

Valor do componente vermelho.

green

Valor do componente verde.

blue

Valor do componente azul.

Valor Retornado

Retorna um inteiro com o índice da cor que tem a matiz, a brancura e a negritude mais próxima da cor informada.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de uso de imagecolorclosesthwb()

<?php
$im = imagecreatefromgif('php.gif');

echo 'HWB: ' . imagecolorclosesthwb($im, 116, 115, 152);

imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

HWB: 33

Veja Também

  • imagecolorclosest() - Obtém o índice da cor mais próxima à especificada


Desaloca uma cor de uma imagem

  • « imagecolorclosesthwb
  • imagecolorexact »
  • PHP Manual
  • Funções de GD e Image
  • Desaloca uma cor de uma imagem

imagecolordeallocate

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolordeallocate — Desaloca uma cor de uma imagem

Descrição

imagecolordeallocate(GdImage $image, int $color): bool

Desaloca uma cor previamente alocada com imagecolorallocate() ou imagecolorallocatealpha().

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

color

O identificador da cor.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Usando imagecolordeallocate()

<?php
$white = imagecolorallocate($im, 255, 255, 255);
imagecolordeallocate($im, $white);
?>

Veja Também

  • imagecolorallocate() - Aloca uma cor para uma imagem
  • imagecolorallocatealpha() - Aloca uma cor para uma imagem


Obtém o índice da cor especificada

  • « imagecolordeallocate
  • imagecolorexactalpha »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o índice da cor especificada

imagecolorexact

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorexact — Obtém o índice da cor especificada

Descrição

imagecolorexact(
GdImage $image,
int $red,
int $green,
int $blue
): int

Retorna o índice, na paleta da imagem, da cor especificada.

Se a imagem foi criada a partir de um arquivo, apenas as cores usadas na imagem são resolvidas. As cores presentes apenas na paleta não serão resolvidas.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

red

Valor do componente vermelho.

green

Valor do componente verde.

blue

Valor do componente azul.

Valor Retornado

Retorna o índice, na paleta da imagem, da cor especificada, ou -1 se a cor não existir.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Obtém cores da logomarca GD

<?php
// Configura uma imagem
$im = imagecreatefrompng('./gdlogo.png');

$colors = Array();
$colors[] = imagecolorexact($im, 255, 0, 0);
$colors[] = imagecolorexact($im, 0, 0, 0);
$colors[] = imagecolorexact($im, 255, 255, 255);
$colors[] = imagecolorexact($im, 100, 255, 52);

print_r($colors);

// Libera da memória
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => 16711680
    [1] => 0
    [2] => 16777215
    [3] => 6618932
)

Veja Também

  • imagecolorclosest() - Obtém o índice da cor mais próxima à especificada


Obtém o índice da cor e alfa especificados

  • « imagecolorexact
  • imagecolormatch »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o índice da cor e alfa especificados

imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecolorexactalpha — Obtém o índice da cor e alfa especificados

Descrição

imagecolorexactalpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int

Retorna o índice, na paleta da imagem, da cor e do alfa especificados.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

red

Valor do componente vermelho.

green

Valor do componente verde.

blue

Valor do componente azul.

alpha

Um valor entre 0 e 127. 0 indica completamente opaco enquanto que 127 indica completamente transparente.

Os parâmetros de cores são inteiros entre 0 e 255 ou hexadecimais entre 0x00 e 0xFF.

Valor Retornado

Retorna o índice, na paleta da imagem, da cor + alfa especificados, ou -1 se a cor + alfa não existir na paleta.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Obtém cores da logomarca GD

<?php

// Configura uma imagem
$im = imagecreatefrompng('./gdlogo.png');

$colors = Array();
$colors[] = imagecolorexactalpha($im, 255, 0, 0, 0);
$colors[] = imagecolorexactalpha($im, 0, 0, 0, 127);
$colors[] = imagecolorexactalpha($im, 255, 255, 255, 55);
$colors[] = imagecolorexactalpha($im, 100, 255, 52, 20);

print_r($colors);

// Libera da memória
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => 16711680
    [1] => 2130706432
    [2] => 939524095
    [3] => 342163252
)

Veja Também

  • imagecolorclosestalpha() - Obtém o índice da cor mais próxima à especificada (incluindo alfa)


Faz com que as cores da versão em paleta da imagem fiquem mais próximas da versão em cores verdadeiras

  • « imagecolorexactalpha
  • imagecolorresolve »
  • PHP Manual
  • Funções de GD e Image
  • Faz com que as cores da versão em paleta da imagem fiquem mais próximas da versão em cores verdadeiras

imagecolormatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

imagecolormatch — Faz com que as cores da versão em paleta da imagem fiquem mais próximas da versão em cores verdadeiras

Descrição

imagecolormatch(GdImage $image1, GdImage $image2): bool

Faz com que as cores da versão em paleta da imagem fiquem mais próximas da versão em cores verdadeiras.

Parâmetros

image1

Um objeto de imagem em cores verdadeiras.

image2

Um objeto de imagem em paleta apontando para uma imagem que tenha o mesmo tamanho da image1.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | image1 e image2 agora esperam instâncias de GdImage; anteriormente, resources eram esperados.

Exemplos

Exemplo #1 Exemplo de imagecolormatch()

<?php
// Configura as imagens com cores verdadeiras e com paleta
$im1 = imagecreatefrompng('./gdlogo.png');
$im2 = imagecreate(imagesx($im1), imagesy($im1));

// Adiciona algumas cores a $im2
$colors = Array();
$colors[] = imagecolorallocate($im2, 255, 36, 74);
$colors[] = imagecolorallocate($im2, 40, 0, 240);
$colors[] = imagecolorallocate($im2, 82, 100, 255);
$colors[] = imagecolorallocate($im2, 84, 63, 44);

// Faz correspondência dessas cores com a imagem em cores verdadeiras
imagecolormatch($im1, $im2);

// Libera a memória
imagedestroy($im1);
imagedestroy($im2);
?>

Veja Também

  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras


Obtém o índice da cor especificada ou a alternativa mais próxima

  • « imagecolormatch
  • imagecolorresolvealpha »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o índice da cor especificada ou a alternativa mais próxima

imagecolorresolve

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorresolve — Obtém o índice da cor especificada ou a alternativa mais próxima

Descrição

imagecolorresolve(
GdImage $image,
int $red,
int $green,
int $blue
): int

Esta função garantidamente retorna um índice para uma cor solicitada, pode ser a cor exata ou a cor mais alternativa mais próxima.

Se a imagem foi criada a partir de um arquivo, apenas as cores usadas na imagem são resolvidas. As cores presentes apenas na paleta não serão resolvidas.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

red

Valor do componente vermelho.

green

Valor do componente verde.

blue

Valor do componente azul.

Valor Retornado

Retorna um índice de cor.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Usando imagecoloresolve() para obter cores de uma imagem

<?php
// Carrega uma imagem
$im = imagecreatefromgif('phplogo.gif');

// Obtém as cores mais próximas da imagem
$colors = array();
$colors[] = imagecolorresolve($im, 255, 255, 255);
$colors[] = imagecolorresolve($im, 0, 0, 200);

// Saída
print_r($colors);

imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => 89
    [1] => 85
)

Veja Também

  • imagecolorclosest() - Obtém o índice da cor mais próxima à especificada


Obtém o índice da cor + alfa especificados ou a alternativa mais próxima

  • « imagecolorresolve
  • imagecolorset »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o índice da cor + alfa especificados ou a alternativa mais próxima

imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecolorresolvealpha — Obtém o índice da cor + alfa especificados ou a alternativa mais próxima

Descrição

imagecolorresolvealpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int

Esta função garantidamente retorna um índice para uma cor solicitada, pode ser a cor exata ou a cor mais alternativa mais próxima.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

red

Valor do componente vermelho.

green

Valor do componente verde.

blue

Valor do componente azul.

alpha

Um valor entre 0 e 127. 0 indica completamente opaco enquanto que 127 indica completamente transparente.

Os parâmetros de cores são inteiros entre 0 e 255 ou haxadecimais entre 0x00 e 0xFF.

Valor Retornado

Retorna um índice de cor.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Usando imagecoloresolvealpha() para obter cores de uma imagem

<?php
// Carrega uma imagem
$im = imagecreatefromgif('phplogo.gif');

// Obtém as cores mais próximas da imagem
$colors = array();
$colors[] = imagecolorresolvealpha($im, 255, 255, 255, 0);
$colors[] = imagecolorresolvealpha($im, 0, 0, 200, 127);

// Saída
print_r($colors);

imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => 89
    [1] => 85
)

Veja Também

  • imagecolorclosestalpha() - Obtém o índice da cor mais próxima à especificada (incluindo alfa)


Define a cor para o índice da paleta especificado

  • « imagecolorresolvealpha
  • imagecolorsforindex »
  • PHP Manual
  • Funções de GD e Image
  • Define a cor para o índice da paleta especificado

imagecolorset

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorset — Define a cor para o índice da paleta especificado

Descrição

imagecolorset(
GdImage $image,
int $color,
int $red,
int $green,
int $blue,
int $alpha = 0
): ?false

Esta função atribui a cor especificada ao índice especificado na paleta. Isto é útil para criar efeitos de preenchimento em imagens de paleta sem a sobrecarga de realizar verdadeiramente o preenchimento.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

color

Um índice na paleta.

red

Valor do componente vermelho.

green

Valor do componente verde.

blue

Valor do componente azul.

alpha

Valor do componente alfa.

Valor Retornado

A função retorna null em caso de sucesso, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagecolorset()

<?php
// Cria uma imagem 300x100
$im = imagecreate(300, 100);

// Define o plano de fundo para vermelho
imagecolorallocate($im, 255, 0, 0);

// Obtém o índice de cor para o plano de fundo
$bg = imagecolorat($im, 0, 0);

// Define o plano de fundo para azul
imagecolorset($im, $bg, 0, 0, 255);

// Mostra a imagem no navegador
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Veja Também

  • imagecolorat() - Obtém o índica da cor de um pixel


Obtém as cores para um índice

  • « imagecolorset
  • imagecolorstotal »
  • PHP Manual
  • Funções de GD e Image
  • Obtém as cores para um índice

imagecolorsforindex

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorsforindex — Obtém as cores para um índice

Descrição

imagecolorsforindex(GdImage $image, int $color): array

Obtém a cor para um índice especificado.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

color

O índice de cor.

Valor Retornado

Retorna um array associativo com chaves para vermelho, verde, azul e alfa que contêm os valores correspondentes à cor do índice especificado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
8.0.0 | imagecolorsforindex() agora lança uma exceção ValueError se color estiver fora dos limites; anteriormente, false era retornado.

Exemplos

Exemplo #1 Exemplo de imagecolorsforindex()

<?php

// abre uma imagem
$im = imagecreatefrompng('nexen.png');

// obtém uma cor
$start_x = 40;
$start_y = 50;
$color_index = imagecolorat($im, $start_x, $start_y);

// torna legível
$color_tran = imagecolorsforindex($im, $color_index);

// que cor é essa ?
print_r($color_tran);

?>

O exemplo acima produzirá algo semelhante a:

Array
(
   [red] => 226
   [green] => 222
   [blue] => 252
   [alpha] => 0
)

Veja Também

  • imagecolorat() - Obtém o índica da cor de um pixel
  • imagecolorexact() - Obtém o índice da cor especificada


Obtém o número de cores em uma paleta de imagem

  • « imagecolorsforindex
  • imagecolortransparent »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o número de cores em uma paleta de imagem

imagecolorstotal

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorstotal — Obtém o número de cores em uma paleta de imagem

Descrição

imagecolorstotal(GdImage $image): int

Retorna o número de cores em uma paleta de imagem.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

Valor Retornado

Retorna o número de cores em uma paleta de imagem especificada ou 0 para imagens em cores verdadeiras.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Obtendo o número total de cores em uma imagem usando imagecolorstotal()

<?php
// Cria uma instência de imagem
$im = imagecreatefromgif('php.gif');

echo 'Total de cores na imagem: ' . imagecolorstotal($im);

// Libera a memória
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Total de cores na imagem: 128

Veja Também

  • imagecolorat() - Obtém o índica da cor de um pixel
  • imagecolorsforindex() - Obtém as cores para um índice
  • imageistruecolor() - Descobre se uma imagem está em cores verdadeiras


Define uma cor como transparente

  • « imagecolorstotal
  • imageconvolution »
  • PHP Manual
  • Funções de GD e Image
  • Define uma cor como transparente

imagecolortransparent

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolortransparent — Define uma cor como transparente

Descrição

imagecolortransparent(GdImage $image, ?int $color = null): int

Obtém ou define a cor transparente na imagem fornecida em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

O identificador da nova (ou atual se nenhuma for especificada) cor transparente é retornado. Se color for null, e a imagem não tiver cor transparente, o identificador retornado será -1.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
8.0.0 | color agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de imagecolortransparent()

<?php
// Cria uma image 55 x 30
$im = imagecreatetruecolor(55, 30);
$red = imagecolorallocate($im, 255, 0, 0);
$black = imagecolorallocate($im, 0, 0, 0);

// Define o fundo para transparente
imagecolortransparent($im, $black);

// Desenha um retângulo vermelho
imagefilledrectangle($im, 4, 4, 50, 25, $red);

// Grava a imagem
imagepng($im, './imagecolortransparent.png');
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagecolortransparent()

Notas

Nota:

Transparênia é copiada apenas com imagecopymerge() e imagens em cores verdadeiras, e não com imagecopy() ou imagens com paleta.

Nota:

A cor transparente é uma propriedade da imagem, a transparência não é uma propriedade da cor. Uma ver definida uma cor transparente, as regiões da imagem com essa cor que foram desenhadas anteriormente serão transparentes.


Aplica uma matriz de convolução 3x3, usando coeficiente e deslocamento

  • « imagecolortransparent
  • imagecopy »
  • PHP Manual
  • Funções de GD e Image
  • Aplica uma matriz de convolução 3x3, usando coeficiente e deslocamento

imageconvolution

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

imageconvolution — Aplica uma matriz de convolução 3x3, usando coeficiente e deslocamento

Descrição

imageconvolution(
GdImage $image,
array $matrix,
float $divisor,
float $offset
): bool

Aplica uma matriz de convolução à imagem, usando o coeficiente e o deslocamento fornecidos.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

matrix

Um matriz 3x3: um array de três arrays de três números em ponto flutuante.

divisor

O divisor do resultado da convolução, usado para normalização.

offset

Deslocamento de cor.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Gravando em relevo a logomarca do PHP.net

<?php
$image = imagecreatefromgif('http://www.php.net/images/php.gif');

$emboss = array(array(2, 0, 0), array(0, -1, 0), array(0, 0, -1));
imageconvolution($image, $emboss, 1, 127);

header('Content-Type: image/png');
imagepng($image, null, 9);
?>

O exemplo acima produzirá:

Saída do exemplo: of example: Gravando em relevo a logomarca do PHP.net

Exemplo #2 Desfoque gaussiano

<?php
$image = imagecreatetruecolor(180,40);

// Escreve o texto e aplica um desfoque gaussiano na imagem
imagestring($image, 5, 10, 8, 'Gaussian Blur Text', 0x00ff00);
$gaussian = array(array(1.0, 2.0, 1.0), array(2.0, 4.0, 2.0), array(1.0, 2.0, 1.0));
imageconvolution($image, $gaussian, 16, 0);

// Re-escreve o texto para comparação
imagestring($image, 5, 10, 18, 'Gaussian Blur Text', 0x00ff00);

header('Content-Type: image/png');
imagepng($image, null, 9);
?>

O exemplo acima produzirá:

Saída do exemplo: Desfoque gaussiano

Veja Também

  • imagefilter() - Aplica um filtro a uma imagem


Copiar uma parte de uma imagem

  • « imageconvolution
  • imagecopymerge »
  • PHP Manual
  • Funções de GD e Image
  • Copiar uma parte de uma imagem

imagecopy

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecopy — Copiar uma parte de uma imagem

Descrição

imagecopy(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $src_width,
int $src_height
): bool

Copiar uma parte de src_image para dst_image, começando nas coordenadas x, y src_x, src_y com uma largura de src_width e uma altura de src_height. A porção definida será copiada para as coordenadas x, y, dst_x e dst_y.

Parâmetros

dst_image

Recurso da imagem de destino.

src_image

Recurso da imagem de origem.

dst_x

Coordenada x do ponto de destino.

dst_y

Coordenada y do ponto de destino.

src_x

Coordenada x do ponto de origem.

src_y

Coordenada y do ponto de origem.

src_width

Largura da imagem de origem.

src_height

Altura da imagem de origem.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | dst_image e src_image esperam instâncias de GdImage; anteriormente, esperavam resource.

Exemplos

Exemplo #1 Recortando o logotipo do PHP.net

<?php
// Criar instâncias de imagens
$src = imagecreatefromgif('php.gif');
$dest = imagecreatetruecolor(80, 40);

// Copiar
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40);

// Exibir e liberar da memória
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Recortando o logotipo do PHP.net

Veja Também

  • imagecrop() - Recorta uma imagem no retângulo informado


Copia e funde parte de uma imagem

  • « imagecopy
  • imagecopymergegray »
  • PHP Manual
  • Funções de GD e Image
  • Copia e funde parte de uma imagem

imagecopymerge

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecopymerge — Copia e funde parte de uma imagem

Descrição

imagecopymerge(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $src_width,
int $src_height,
int $pct
): bool

Copia uma parte de src_image sobre dst_image iniciando nas coordenadas x,y src_x, src_y com uma largura de src_width e uma altura de src_height. A porção definida será copiada nas coordenadas x,y, dst_x e dst_y.

Parâmetros

dst_image

Recurso da imagem de destino.

src_image

Recurso da imagem de origem.

dst_x

Coordenada x do ponto de destino.

dst_y

Coordenada y do ponto de destino.

src_x

Coordenada x do ponto de origem.

src_y

Coordenada y do ponto de origem.

src_width

Largura da imagem de origem.

src_height

Altura da imagem de origem.

pct

As duas imagens podem ser fundidas de acord com o parâmetro pct que vai de 0 a 100. Quando pct = 0, nenhuma ação é tomada, e quando for 100 esta função se comporta de forma idêntica a imagecopy() para imagens de paleta, exceto por ignorar componentes alfa, enquanto implementa transparência alfa para imagens em cores verdadeiras.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | dst_image e src_image esperam instâncias GdImage agora; anteriormente, resources eram esperados.

Exemplos

Exemplo #1 Funde duas cópias da logomarca PHP.net com 75% de transparência

<?php
// Cria instâncias de imagens
$dest = imagecreatefromgif('php.gif');
$src = imagecreatefromgif('php.gif');

// Copia e funde
imagecopymerge($dest, $src, 10, 10, 0, 0, 100, 47, 75);

// Mostra e libera da memória
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>


Copia e funde parte de uma imagem com escala de cinza

  • « imagecopymerge
  • imagecopyresampled »
  • PHP Manual
  • Funções de GD e Image
  • Copia e funde parte de uma imagem com escala de cinza

imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecopymergegray — Copia e funde parte de uma imagem com escala de cinza

Descrição

imagecopymergegray(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $src_width,
int $src_height,
int $pct
): bool

imagecopymergegray() copia uma parte de src_image sobre dst_image iniciando nas coordenadas x,y src_x, src_y com uma largura de src_width e uma altura de src_height. A porção definida será copiada nas coordenadas x,y, dst_x e dst_y.

Esta função é idêntica a imagecopymerge() exceto que ao fundir ela preserva a matiz da origem convertendo os pixels de destino para escala de cinza antes da operação de cópia.

Parâmetros

dst_image

Recurso da imagem de destino.

src_image

Recurso da imagem de origem.

dst_x

Coordenada x do ponto de destino.

dst_y

Coordenada y do ponto de destino.

src_x

Coordenada x do ponto de origem.

src_y

Coordenada y do ponto de origem.

src_width

Largura da imagem de origem.

src_height

Altura da imagem de origem.

pct

O parâmetro src_image será alterado para escala de cinza de acordo com pct, onde 0 é totalmente em cinza e 100 é sem alteração. Quando pct = 100, esta função é idêntica a imagecopy() para imagems de paleta, exceto por ignorar componentes alfa, enquanto implementa transparência alfa para imagens em cores verdadeiras.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | dst_image e src_image esperam instâncias GdImage agora; anteriormente, resources eram esperados.

Exemplos

Exemplo #1 Uso de imagecopymergegray()

<?php
// Cria instâncias de imagens
$dest = imagecreatefromgif('php.gif');
$src = imagecreatefromgif('php.gif');

// Copia e funde - Cinza = 20%
imagecopymergegray($dest, $src, 10, 10, 0, 0, 100, 47, 20);

// Mostra e libera da memória
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>


Copia e redimensiona parte de uma imagem com reamostragem

  • « imagecopymergegray
  • imagecopyresized »
  • PHP Manual
  • Funções de GD e Image
  • Copia e redimensiona parte de uma imagem com reamostragem

imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecopyresampled — Copia e redimensiona parte de uma imagem com reamostragem

Descrição

imagecopyresampled(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $dst_width,
int $dst_height,
int $src_width,
int $src_height
): bool

imagecopyresampled() copia uma porção retangular de uma imagem em outra imagem, suavemente interpolando valores de pixels de forma que, em particular, a redução do tamanho de uma imagem ainda retenha bastante clareza.

Em outras palavras, imagecopyresampled() pegará uma área retangular de src_image, de largura src_width e altura src_height na posição (src_x,src_y), e posicionará esta área em uma outra área retangular de dst_image, de largura dst_width e altura dst_height, na posição (dst_x,dst_y).

Se as coordenadas de origem e destino e larguras e alturas forem diferentes, um alongamento ou um encolhimento apropriado do fragmento da imagem será realizado. As coordenadas se referem ao canto superior esquerdo. Esta função pode ser usada para copiar regiões dentro da mesma imagem (se dst_image for igual a src_image) mas se as regiões se sobrepuserem, os resultados serão imprevisíveis.

Parâmetros

dst_image

Recurso da imagem de destino.

src_image

Recurso da imagem de origem.

dst_x

Coordenada x do ponto de destino.

dst_y

Coordenada y do ponto de destino.

src_x

Coordenada x do ponto de origem.

src_y

Coordenada y do ponto de origem.

dst_width

Largura do destino.

dst_height

Altura do destino.

src_width

Largura da imagem de origem.

src_height

Altura da imagem de origem.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | dst_image e src_image esperam instâncias GdImage agora; anteriormente, resources eram esperadas.

Exemplos

Exemplo #1 Exemplo simples

Este exemplo irá reamostrar uma imagem para metade de seu tamanho original.

<?php
// O arquivo
$filename = 'test.jpg';
$percent = 0.5;

// Tipo de conteúdo
header('Content-Type: image/jpeg');

// Obtém novas dimensões
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Reamostra
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Mostra
imagejpeg($image_p, null, 100);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Exemplo simples

Exemplo #2 Reamostrando uma imagem proporcionalmente

Este exemplo irá mostrar uma imagem com a largura e altura máximas de 200 pixels.

<?php
// O arquivo
$filename = 'test.jpg';

// Define altura e largura máximas
$width = 200;
$height = 200;

// Tipo de conteúdo
header('Content-Type: image/jpeg');

// Obtém novas dimensões
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}

// Reamostra
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Mostra
imagejpeg($image_p, null, 100);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Reamostrando uma imagem proporcionalmente

Notas

Nota:

Existe um problema devido a limitações de imagem de paleta (255+1 cores). A reamostragem ou a filtragem de uma imagem normalmente precisa de mais cores que 255, um tipo de aproximação é usada para calculara o novo pixel reamostrado e sua cor. Com imagem de paleta tenta-se alocar uma nova cor, se isso falhar, escolhe-se a cor computada mais próxima (em teoria). Isto nem sempre é a cor mais próxima visualmente. Isto pode produzir um resultado estranho, tal como imagem vazia (ou visualmente vazia). Para evitar esse problema, favor utilizar uma imagem em cores verdadeiras como imagem de destino, tal como a criada por imagecreatetruecolor().

Veja Também

  • imagecopyresized() - Copia e redimensiona parte de uma imagem
  • imagescale() - Muda a escala de uma imagem usando largura e altura informadas
  • imagecrop() - Recorta uma imagem no retângulo informado


Copia e redimensiona parte de uma imagem

  • « imagecopyresampled
  • imagecreate »
  • PHP Manual
  • Funções de GD e Image
  • Copia e redimensiona parte de uma imagem

imagecopyresized

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecopyresized — Copia e redimensiona parte de uma imagem

Descrição

imagecopyresized(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $dst_width,
int $dst_height,
int $src_width,
int $src_height
): bool

imagecopyresized() copia uma porção retangular de uma imagem para outra imagem. dst_image é a imagem de destino, src_image é a imagem de origem.

Em outras palavras, imagecopyresized() pegará uma área retangular de src_image, de largura src_width e altura src_height na posição (src_x,src_y), e posicionará esta área em uma outra área retangular de dst_image, de largura dst_width e altura dst_height, na posição (dst_x,dst_y).

Se as coordenadas de origem e destino e larguras e alturas forem diferentes, um alongamento ou um encolhimento apropriado do fragmento da imagem será realizado. As coordenadas se referem ao canto superior esquerdo. Esta função pode ser usada para copiar regiões dentro da mesma imagem (se dst_image for igual a src_image) mas se as regiões se sobrepuserem, os resultados serão imprevisíveis.

Parâmetros

dst_image

Recurso da imagem de destino.

src_image

Recurso da imagem de origem.

dst_x

Coordenada x do ponto de destino.

dst_y

Coordenada y do ponto de destino.

src_x

Coordenada x do ponto de origem.

src_y

Coordenada y do ponto de origem.

dst_width

Largura do destino.

dst_height

Altura do destino.

src_width

Largura da imagem de origem.

src_height

Altura da imagem de origem.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | dst_image e src_image esperam instâncias GdImage agora; anteriormente, resources eram esperadas.

Exemplos

Exemplo #1 Redimensionando uma imagem

Este exemplo irá mostrar a imagem com a metade do tamanho.

<?php
// Arquivo e novo tamanho
$filename = 'test.jpg';
$percent = 0.5;

// Tipo de conteúdo
header('Content-Type: image/jpeg');

// Obtém novos tamanhos
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Carrega
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Redimensiona
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Mostra
imagejpeg($thumb);
?>

O exemplo acima produzirá algo semelhante a:

Output of example: Redimensionando uma imagem

A imagem será mostrada com a metade do tamanho, mas uma qualidade melhor poderia ser obtida usando a função imagecopyresampled().

Notas

Nota:

Existe um problema devido a limitações de imagem de paleta (255+1 cores). A reamostragem ou a filtragem de uma imagem normalmente precisa de mais cores que 255, um tipo de aproximação é usada para calculara o novo pixel reamostrado e sua cor. Com imagem de paleta tenta-se alocar uma nova cor, se isso falhar, escolhe-se a cor computada mais próxima (em teoria). Isto nem sempre é a cor mais próxima visualmente. Isto pode produzir um resultado estranho, tal como imagem vazia (ou visualmente vazia). Para evitar esse problema, favor utilizar uma imagem em cores verdadeiras como imagem de destino, tal como a criada por imagecreatetruecolor().

Veja Também

  • imagecopyresampled() - Copia e redimensiona parte de uma imagem com reamostragem
  • imagescale() - Muda a escala de uma imagem usando largura e altura informadas
  • imagecrop() - Recorta uma imagem no retângulo informado


Crie uma nova imagem baseada em paleta

  • « imagecopyresized
  • imagecreatefromavif »
  • PHP Manual
  • Funções de GD e Image
  • Crie uma nova imagem baseada em paleta

imagecreate

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreate — Crie uma nova imagem baseada em paleta

Descrição

imagecreate(int $width, int $height): GdImage|false

imagecreate() retorna um identificador de imagem que representa uma imagem em branco do tamanho especificado.

Em geral, recomendamos o uso de imagecreatetruecolor() em vez de imagecreate() para que o processamento da imagem ocorra na mais alta qualidade possível. Se você deseja gerar uma imagem paletizada, então imagetruecolortopalette() deve ser chamada imediatamente antes de salvar a imagem com imagepng() ou imagegif().

Parâmetros

width

A largura da imagem.

height

A altura da imagem.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna uma instância de GDImage; anteriormente, era retornado um resource.

Exemplos

Exemplo #1 Criando um novo stream de imagem GD e exibindo uma imagem.

<?php
header("Content-Type: image/png");
$im = @imagecreate(110, 20)
or die("Não é possível inicializar um novo stream de imagem GD.");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: criando um novo stream de imagem GD e exibindo uma imagem.

Veja Também

  • imagedestroy() - Destruir uma imagem
  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras


Cria uma nova imagem a partir de um arquivo ou URL

  • « imagecreate
  • imagecreatefrombmp »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo ou URL

imagecreatefromavif

(PHP 8 >= 8.1.0)

imagecreatefromavif — Cria uma nova imagem a partir de um arquivo ou URL

Descrição

imagecreatefromavif(string $filename): GdImage|false

imagecreatefromavif() retorna um objeto de imagem representando a imagem obtida pelo nome de arquivo fornecido.

Parâmetros

filename

Caminho para a imagem rasterizada AVIF.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.


Cria uma nova imagem a partir de um arquivo ou URL

  • « imagecreatefromavif
  • imagecreatefromgd2 »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo ou URL

imagecreatefrombmp

(PHP 7 >= 7.2.0, PHP 8)

imagecreatefrombmp — Cria uma nova imagem a partir de um arquivo ou URL

Descrição

imagecreatefrombmp(string $filename): GdImage|false

imagecreatefrombmp() retorna um identificador de imagem representando a imagem obtida pelo nome de arquivo fornecido.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para a imagem BMP.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.

Exemplos

Exemplo #1 Converte uma imagem BMP para PNG usando imagecreatefrombmp()

<?php
// Carrega o arquivo BMP
$im = imagecreatefrombmp('./example.bmp');

// Converte para um PNG com a configuração padrão
imagepng($im, './example.png');
imagedestroy($im);
?>


Cria uma nova imagem a partir de um arquivo GD2 ou URL

  • « imagecreatefrombmp
  • imagecreatefromgd2part »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo GD2 ou URL

imagecreatefromgd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagecreatefromgd2 — Cria uma nova imagem a partir de um arquivo GD2 ou URL

Descrição

imagecreatefromgd2(string $filename): GdImage|false

Cria uma nova imagem a partir de um arquivo GD2 ou URL.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para o arquivo GD2.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna uma instância de GDImage; anteriormente, era retornado um resource.

Exemplos

Exemplo #1 Exemplo de imagecreatefromgd2()

<?php
// Carregar a imagem GD2
$im = imagecreatefromgd2('./test.gd2');

// Aplica um efeito, neste caso
// aplica um filtro que negativa a imagem
if(function_exists('imagefilter'))
{
imagefilter($im, IMG_FILTER_NEGATE);
}

// Grava a imagem
imagegd2($im, './test_updated.gd2');
imagedestroy($im);
?>

Notas

Aviso

Os formatos de imagem GD e GD2 são formatos de imagem proprietários da biblioteca libgd. Eles devem ser considerados obsoletos e só devem ser usados para propósitos de desenvolvimento e testes.


Cria uma nova imagem a partir de uma parte de um arquivo GD2 ou URL

  • « imagecreatefromgd2
  • imagecreatefromgd »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de uma parte de um arquivo GD2 ou URL

imagecreatefromgd2part

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagecreatefromgd2part — Cria uma nova imagem a partir de uma parte de um arquivo GD2 ou URL

Descrição

imagecreatefromgd2part(
string $filename,
int $x,
int $y,
int $width,
int $height
): GdImage|false

Cria uma nova imagem a partir de uma parte de um arquivo GD2 ou URL.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para a imagem GD2.

x

Coordenada x do ponto de origem.

y

Coordenada y do ponto de origem.

width

Largura da imagem de origem.

height

Altura da imagem de origem.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.

Exemplos

Exemplo #1 Exemplo de imagecreatefromgd2part()

<?php
// Para este exemplo é necessário obter antes o tamanho da imagem
$image = getimagesize('./test.gd2');

// Cria a instância de imagem agora que já foi obtido o tamanho
// da imagem
$im = imagecreatefromgd2part('./test.gd2', 4, 4, ($image[0] / 2) - 6, ($image[1] / 2) - 6);

// Faz uma operação, neste caso transforma a imagem em alto relevo
if(function_exists('imagefilter'))
{
imagefilter($im, IMG_FILTER_EMBOSS);
}

// Grava a imagem transformada
imagegd2($im, './test_emboss.gd2');
imagedestroy($im);
?>

Notas

Aviso

Os formatos de imagem GD e GD2 são formatos de imagem proprietários da biblioteca libgd. Eles devem ser considerados obsoletos e só devem ser usados para propósitos de desenvolvimento e testes.


Cria uma nova imagem a partir de um arquivo GD ou URL

  • « imagecreatefromgd2part
  • imagecreatefromgif »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo GD ou URL

imagecreatefromgd

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagecreatefromgd — Cria uma nova imagem a partir de um arquivo GD ou URL

Descrição

imagecreatefromgd(string $filename): GdImage|false

Cria uma nova imagem a partir de um arquivo GD ou URL.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para o arquivo GD.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna uma instância de GDImage; anteriormente, era retornado um resource.

Exemplos

Exemplo #1 Exemplo de imagecreatefromgd()

<?php
// Carregar a imagem GD
$im = @imagecreatefromgd('./test.gd');

// Testar se a imagem foi carregada
if(!$im)
{
die('Incapaz de carregar a imagem GD!');
}

// Realize operações na imagem aqui

// Salve a imagem
imagegd($im, './test_updated.gd');
imagedestroy($im);
?>

Notas

Aviso

Os formatos de imagem GD e GD2 são formatos de imagem proprietários da biblioteca libgd. Eles devem ser considerados obsoletos e só devem ser usados para propósitos de desenvolvimento e testes.


Cria uma nova imagem a partir de um arquivo ou URL

  • « imagecreatefromgd
  • imagecreatefromjpeg »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo ou URL

imagecreatefromgif

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreatefromgif — Cria uma nova imagem a partir de um arquivo ou URL

Descrição

imagecreatefromgif(string $filename): GdImage|false

imagecreatefromgif() retorna um identificador de imagem representando a imagem obtida a partir do arquivo informado.

Cuidado

Ao carregar arquivos GIF na memória, apenas o primeiro quadro é retornado ao objeto da imagem. O tamanho da imagem não é necessariamente o reportado por getimagesize().

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para a imagem GIF.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.

Exemplos

Exemplo #1 Exemplo de gerenciamento de erro durante carregamento de um GIF

<?php
function LoadGif($imgname)
{
/* Tenta abrir */
$im = @imagecreatefromgif($imgname);

/* Ver se falhou */
if(!$im)
{
/* Cria uma imagem vazia */
$im = imagecreatetruecolor (150, 30);
$bgc = imagecolorallocate ($im, 255, 255, 255);
$tc = imagecolorallocate ($im, 0, 0, 0);

imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);

/* Mostra uma mensagem de erro */
imagestring ($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
}

return $im;
}

header('Content-Type: image/gif');

$img = LoadGif('bogus.image');

imagegif($img);
imagedestroy($img);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Exemplo de gerenciamento de erro durante carregamento de um GIF


Cria uma nova imagem a partir de um arquivo ou URL

  • « imagecreatefromgif
  • imagecreatefrompng »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo ou URL

imagecreatefromjpeg

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreatefromjpeg — Cria uma nova imagem a partir de um arquivo ou URL

Descrição

imagecreatefromjpeg(string $filename): GdImage|false

imagecreatefromjpeg() retorna um identificador de imagem que representa a imagem obtida a partir do nome de arquivo fornecido.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para a imagem JPEG.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Caso for sucesso, esta função agora retorna uma instância de GDImage; anteriormente, era retornado um resource.

Exemplos

Exemplo #1 Exemplo de como lidar com um erro durante o carregamento de uma imagem JPEG.

<?php
function LoadJpeg($imgname)
{
/* Tentativa de abrir */
$im = @imagecreatefromjpeg($imgname);

/* Verificar se falhou */
if(!$im)
{
/* Crie uma imagem preta */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);

imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

/* Exibir uma mensagem de erro */
imagestring($im, 1, 5, 5, 'Erro ao carregar ' . $imgname, $tc);
}

return $im;
}

header('Content-Type: image/jpeg');

$img = LoadJpeg('bogus.image');

imagejpeg($img);
imagedestroy($img);
?>

O exemplo acima produzirá algo semelhante a:

OSaída do exemplo: Exemplo de como lidar com um erro durante o carregamento de um JPEG.


Cria uma nova imagem a partir de um arquivo ou URL

  • « imagecreatefromjpeg
  • imagecreatefromstring »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo ou URL

imagecreatefrompng

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreatefrompng — Cria uma nova imagem a partir de um arquivo ou URL

Descrição

imagecreatefrompng(string $filename): GdImage|false

imagecreatefrompng() retorna um identificador de imagem que representa a imagem obtida a partir do nome de arquivo fornecido.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para a imagem PNG

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Caso for sucesso, esta função agora retorna uma instância de GDImage; anteriormente, era retornado um resource.

Exemplos

Exemplo #1 Exemplo de como lidar com um erro durante o carregamento de uma imagem PNG

<?php
function LoadPNG($imgname)
{
/* Tentativa de abrir */
$im = @imagecreatefrompng($imgname);

/* Verificar se falhou */
if(!$im)
{
/* Crie uma imagem em branco */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);

imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

/* Output an error message */
imagestring($im, 1, 5, 5, 'Erro ao carregar ' . $imgname, $tc);
}

return $im;
}

header('Content-Type: image/png');

$img = LoadPNG('bogus.image');

imagepng($img);
imagedestroy($img);
?>

O exemplo acima produzirá algo semelhante a:


Cria uma nova imagem a partir de um fluxo de imagem na string

  • « imagecreatefrompng
  • imagecreatefromtga »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um fluxo de imagem na string

imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

imagecreatefromstring — Cria uma nova imagem a partir de um fluxo de imagem na string

Descrição

imagecreatefromstring(string $data): GdImage|false

imagecreatefromstring() retorna um identificador de imagem representando a imagem obtida pelos dados informados no parâmetro data. Estes tipos serão automaticamente detectados se a compilação do PHP suportá-los: JPEG, PNG, GIF, BMP, WBMP, GD2, WEBP e AVIF.

Parâmetros

data

Uma string contendo os dados da imagem.

Valor Retornado

Um objeto de imagem será retornado em caso de sucesso. false é retornado se o tipo da imagem não for suportado, se os dados não estiverem em formato reconhecido, ou se a imagem estiver corrompida e não puder ser carregada.

Erros/Exceções

imagecreatefromstring() emite um erro de nível E_WARNING, se os dados não estiverem em um formato reconhecido.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns a GDImage instance now; previously, a resource was returned.
7.3.0 | WEBP agora é suportado (caso seja suportado pela libgd em uso).

Exemplos

Exemplo #1 Exemplo de imagecreatefromstring()

<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
. 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
. 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
. '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'Ocorreu um erro.';
}
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagecreatefromstring()

Veja Também

  • imagecreatefromjpeg() - Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefrompng() - Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatefromgif() - Cria uma nova imagem a partir de um arquivo ou URL
  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras


Cria uma nova imagem a partir de um arquivo ou URL

  • « imagecreatefromstring
  • imagecreatefromwbmp »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo ou URL

imagecreatefromtga

(PHP 7 >= 7.4.0, PHP 8)

imagecreatefromtga — Cria uma nova imagem a partir de um arquivo ou URL

Descrição

imagecreatefromtga(string $filename): GdImage|false

imagecreatefromtga() retorna um identificador de imagem representando a imagem obtida a partir do arquivo informado.

Parâmetros

filename

Caminho para a imagem Truevision TGA.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.


Cria uma nova imagem a partir de um arquivo ou URL

  • « imagecreatefromtga
  • imagecreatefromwebp »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo ou URL

imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecreatefromwbmp — Cria uma nova imagem a partir de um arquivo ou URL

Descrição

imagecreatefromwbmp(string $filename): GdImage|false

imagecreatefromwbmp() retorna um identificador de imagem representando a imagem obtida a partir do arquivo informado.

Nota: Imagen WBMP é um Bitmap "Wireless", e não um Bitmap do Windows. Este último pode ser carregado com imagecreatefrombmp().

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para a imagem WBMP.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.

Exemplos

Exemplo #1 Examplo de gerenciamento de erro ao carregar um WBMP

<?php
function LoadWBMP($imgname)
{
/* Tenta abrir */
$im = @imagecreatefromwbmp($imgname);

/* Vê se falhou */
if(!$im)
{
/* Cria uma imagem vazia */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);

imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

/* Mostra mensagem de erro */
imagestring($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
}

return $im;
}

header('Content-Type: image/vnd.wap.wbmp');

$img = LoadWBMP('bogus.image');

imagewbmp($img);
imagedestroy($img);
?>


Cria uma nova imagem a partir de um arquivo ou URL

  • « imagecreatefromwbmp
  • imagecreatefromxbm »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo ou URL

imagecreatefromwebp

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

imagecreatefromwebp — Cria uma nova imagem a partir de um arquivo ou URL

Descrição

imagecreatefromwebp(string $filename): GdImage|false

imagecreatefromwebp() retorna um identificador de imagem representando a imagem obtida a partir do arquivo informado. Observe que arquivos WebP animados não podem ser lidos.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para a imagem WebP.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.

Exemplos

Exemplo #1 Converte uma imagem WebP para jpeg usando imagecreatefromwebp()

<?php
// Carrega o arquivo WebP
$im = imagecreatefromwebp('./example.webp');

// Converte para um jpeg com 100% de qualidade
imagejpeg($im, './example.jpeg', 100);
imagedestroy($im);
?>


Cria uma nova imagem a partir de um arquivo ou URL

  • « imagecreatefromwebp
  • imagecreatefromxpm »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo ou URL

imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecreatefromxbm — Cria uma nova imagem a partir de um arquivo ou URL

Descrição

imagecreatefromxbm(string $filename): GdImage|false

imagecreatefromxbm() retorna um identificador de imagem representando a imagem obtida a partir do arquivo informado.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para a imagem XBM.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.

Exemplos

Exemplo #1 Converte uma imagem XBM para um png usando imagecreatefromxbm()

<?php
// Carrega o arquivo xbm
$xbm = imagecreatefromxbm('./example.xbm');

// Converte para um arquivo png
imagepng($xbm, './example.png');
imagedestroy($xbm);
?>


Cria uma nova imagem a partir de um arquivo ou URL

  • « imagecreatefromxbm
  • imagecreatetruecolor »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem a partir de um arquivo ou URL

imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecreatefromxpm — Cria uma nova imagem a partir de um arquivo ou URL

Descrição

imagecreatefromxpm(string $filename): GdImage|false

imagecreatefromxpm() retorna um identificador de imagem representando a imagem obtida a partir do arquivo informado.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

Parâmetros

filename

Caminho para a imagem XPM.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.

Exemplos

Exemplo #1 Cria uma instância de imagem usando imagecreatefromxpm()

<?php
// Verifica se existe suporte para XPM
if(!(imagetypes() & IMG_XPM))
{
die('Suporte para xpm não encontrado!');
}

// Cria a instância da imagem
$xpm = imagecreatefromxpm('./example.xpm');

// Aqui são feitas as operações na imagem

// PHP não tem suporte para gravar imagens xpm
// portanto neste caso uma imagem jpeg é
// gravada com 100% de qualidade
imagejpeg($xpm, './example.jpg', 100);
imagedestroy($xpm);
?>


Cria uma nova imagem em cores verdadeiras

  • « imagecreatefromxpm
  • imagecrop »
  • PHP Manual
  • Funções de GD e Image
  • Cria uma nova imagem em cores verdadeiras

imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecreatetruecolor — Cria uma nova imagem em cores verdadeiras

Descrição

imagecreatetruecolor(int $width, int $height): GdImage|false

imagecreatetruecolor() retorna um objeto de imagem representando uma imagem em preto do tamanho especificado.

Parâmetros

width

Largura da imagem.

height

Altura da imagem.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.

Exemplos

Exemplo #1 Criando uma novo fluxo de imagem GD e mostrando uma imagem.

<?php
header ('Content-Type: image/png');
$im = @imagecreatetruecolor(120, 20)
or die('Não foi possível inicializar um novo fluxo de imagem');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
imagepng($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Output of example: Criando uma novo fluxo de imagem GD e mostrando uma imagem.

Veja Também

  • imagedestroy() - Destruir uma imagem
  • imagecreate() - Crie uma nova imagem baseada em paleta


Recorta uma imagem no retângulo informado

  • « imagecreatetruecolor
  • imagecropauto »
  • PHP Manual
  • Funções de GD e Image
  • Recorta uma imagem no retângulo informado

imagecrop

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagecrop — Recorta uma imagem no retângulo informado

Descrição

imagecrop(GdImage $image, array $rectangle): GdImage|false

Recorta uma imagem na área retangular informada e retorna a imagem resultante. A imagem fornecida em image não é modificada.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

rectangle

O retângulo de recorte com um array com chaves x, y, width e height.

Valor Retornado

Retorna o objeto da imagem recortada em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.

Exemplos

Exemplo #1 imagecrop() example

Este exemplo mostra como recortar uma imagem em uma área quadrada.

<?php
$im = imagecreatefrompng('example.png');
$size = min(imagesx($im), imagesy($im));
$im2 = imagecrop($im, ['x' => 0, 'y' => 0, 'width' => $size, 'height' => $size]);
if ($im2 !== FALSE) {
imagepng($im2, 'example-cropped.png');
imagedestroy($im2);
}
imagedestroy($im);
?>

Veja Também

  • imagecropauto() - Recorta uma imagem automaticamente usando um dos modos disponíveis


Recorta uma imagem automaticamente usando um dos modos disponíveis

  • « imagecrop
  • imagedashedline »
  • PHP Manual
  • Funções de GD e Image
  • Recorta uma imagem automaticamente usando um dos modos disponíveis

imagecropauto

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagecropauto — Recorta uma imagem automaticamente usando um dos modos disponíveis

Descrição

imagecropauto(
GdImage $image,
int $mode = IMG_CROP_DEFAULT,
float $threshold = 0.5,
int $color = -1
): GdImage|false

Automaticamente recorta uma imagem de acordo com o modo informado no parâmetro mode.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

mode

Uma das constantes a seguir:

IMG_CROP_DEFAULT
O mesmo que IMG_CROP_TRANSPARENT. Antes do PHP 7.4.0, a libgd fornecida retrocedia para IMG_CROP_SIDES, se a imagem não tivesse cor transparente.
IMG_CROP_TRANSPARENT
Corta um plano de fundo transparente.
IMG_CROP_BLACK
Corta um plano de fundo preto.
IMG_CROP_WHITE
Corta um plano de fundo branco.
IMG_CROP_SIDES
Usa os 4 cantos da imagem para tentar detectar o plano de fundo a ser cortado.
IMG_CROP_THRESHOLD
Corta uma imagem usando os parâmetros threshold e color fornecidos.
threshold

Especifica a tolerância em percentagem que será usada ao comparar a cor da imagem com a cor a ser cortada. O método usado para calcular a diferença de cor é baseado na distância de cores no cubo RGB(a).

Usado somente no modo IMG_CROP_THRESHOLD.

Nota: Antes do PHP 7.4.0, a libgd fornecida usava um algotitmo ligeiramente diferente, por isso o mesmo threshold gerava resultados diferentes para a libgd de sistema e a fornecida.

color

Um valor de cor RGB ou um índice de paleta.

Usado somente no modo IMG_CROP_THRESHOLD.

Valor Retornado

Retorna um objeto de imagem cortada em caso de sucesso ou false em caso de falha. false também é retornado se a imagem for inteiramente cortada.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
8.0.0 | Em caso de sucesso, esta função agora retorna um objeto GDImage; anteriormente, um resource era retornado.
7.4.0 | O comportamento de imagecropauto() na libgd fornecida foi sincronizado com o da libgd de sistema: IMG_CROP_DEFAULT não mais retrocede para IMG_CROP_SIDES e o recorte de limites agora usa o mesmo algoritmo da libgd de sistema.
7.4.0 | O valor padrão de mode mudou para IMG_CROP_AUTO. Anteriormente, o valor padrão era -1 que corresponde a IMG_CROP_DEFAULT, mas passar -1 agora foi descontinuado.

Exemplos

Exemplo #1 Gerenciamento adequado de auto-recorte

Como percebido na seção de valores de retorno, imagecropauto() retorna false se a imagem inteira foi recortada. Neste exemplo será trabalho o objeto de imagem $im que deve ser automaticamente recortado somente se houver algo a ser recortado; caso contrário será mantida a imagem original.

<?php
$cropped = imagecropauto($im, IMG_CROP_DEFAULT);
if ($cropped !== false) { // caso om novo objeto de imagem tenha sido retornado
imagedestroy($im); // a imagem original é destruída
$im = $cropped; // e a imagem recortada é atribuída a $im
}
?>

Veja Também

  • imagecrop() - Recorta uma imagem no retângulo informado


Desenha uma linha tracejada

  • « imagecropauto
  • imagedestroy »
  • PHP Manual
  • Funções de GD e Image
  • Desenha uma linha tracejada

imagedashedline

(PHP 4, PHP 5, PHP 7, PHP 8)

imagedashedline — Desenha uma linha tracejada

Descrição

imagedashedline(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

Esta função foi descontinuada. Use uma combinação de imagesetstyle() e imageline() em seu lugar.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

x1

Coordenada x do ponto inicial.

y1

Coordenada y do ponto inicial. 0, 0 é o canto superior esquerdo da imagem.

x2

Coordenada x do ponto final.

y2

Coordenada y do ponto final.

color

A cor de preenchimento. Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagedashedline()

<?php
// Cria uma imagem 100x100
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Desenha uma linha tracejada vertical
imagedashedline($im, 50, 25, 50, 75, $white);

// Grava a imagem
imagepng($im, './dashedline.png');
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagedashedline()

Exemplo #2 Alternativa a imagedashedline()

<?php
// Cria uma imagem 100x100
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Define o estilo: primeiros 4 pixels brancos e os 4
// seguintes transparentes. Isto cria o efeito tracejado.
$style = Array(
$white,
$white,
$white,
$white,
IMG_COLOR_TRANSPARENT,
IMG_COLOR_TRANSPARENT,
IMG_COLOR_TRANSPARENT,
IMG_COLOR_TRANSPARENT
);

imagesetstyle($im, $style);

// Desenha a linha tracejada
imageline($im, 50, 25, 50, 75, IMG_COLOR_STYLED);

// Grava a imagem
imagepng($im, './imageline.png');
imagedestroy($im);
?>

Veja Também

  • imagesetstyle() - Define o estilo para desenho de linhas
  • imageline() - Desenha uma linha


Destruir uma imagem

  • « imagedashedline
  • imageellipse »
  • PHP Manual
  • Funções de GD e Image
  • Destruir uma imagem

imagedestroy

(PHP 4, PHP 5, PHP 7, PHP 8)

imagedestroy — Destruir uma imagem

Descrição

imagedestroy(GdImage $image): bool

Nota:

Esta função não tem efeito. Antes do PHP 8.0.0, esta função era usada para fechar o recurso.

Antes do PHP 8.0.0, a função imagedestroy() liberava qualquer memória associada à imagem image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Essa função é um NOP agora.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Usando imagedestroy() antes do PHP 8.0.0.

<?php
// criar uma imagem de 100 x 100 pixels
$im = imagecreatetruecolor(100, 100);

// alterar ou salvar a imagem

// libera a imagem da memória
imagedestroy($im);
?>


Desenha uma elipse

  • « imagedestroy
  • imagefill »
  • PHP Manual
  • Funções de GD e Image
  • Desenha uma elipse

imageellipse

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imageellipse — Desenha uma elipse

Descrição

imageellipse(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $color
): bool

Desenha uma elipse centrada nas coordenadas especificadas.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

center_x

Coordenada x do centro.

center_y

Coordenada y do centro.

width

Largura da elipse.

height

Altura da elipse.

color

Cor da elipse. Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imageellipse()

<?php

// Cria uma imagem vazia.
$image = imagecreatetruecolor(400, 300);

// Seleciona a cor de fundo.
$bg = imagecolorallocate($image, 0, 0, 0);

// Preenche o fundo com a cor selecionada acima.
imagefill($image, 0, 0, $bg);

// Escolhe uma cor para a elipse.
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// Desenha a elipse.
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// Mostra a imagem.
header("Content-type: image/png");
imagepng($image);

?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imageellipse()

Notas

Nota:

imageellipse() ignora imagesetthickness().

Veja Também

  • imagefilledellipse() - Desenha uma elipse preenchida
  • imagearc() - Desenha um arco


Preenchimento

  • « imageellipse
  • imagefilledarc »
  • PHP Manual
  • Funções de GD e Image
  • Preenchimento

imagefill

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefill — Preenchimento

Descrição

imagefill(
GdImage $image,
int $x,
int $y,
int $color
): bool

Esta função realiza um preenchimento iniciando na coordenada fornecida (canto superior esquerdo é 0, 0) com a cor especificada em color, na imagem image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

x

Coordenada x do ponto de partida.

y

Coordenada y do ponto de partida.

color

A cor de preenchimento. Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagefill()

<?php

$im = imagecreatetruecolor(100, 100);

// define o fundo vermelho
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagefill()

Veja Também

  • imagecolorallocate() - Aloca uma cor para uma imagem


Desenha um arco parcial preenchido

  • « imagefill
  • imagefilledellipse »
  • PHP Manual
  • Funções de GD e Image
  • Desenha um arco parcial preenchido

imagefilledarc

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagefilledarc — Desenha um arco parcial preenchido

Descrição

imagefilledarc(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $start_angle,
int $end_angle,
int $color,
int $style
): bool

Desenha um arco parcial centrado na coordenada especificada na imagem fornecida em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

center_x

Coordenada x do centro.

center_y

Coordenada y do centro.

width

Largura do arco.

height

Altura do arco.

start_angle

O ângulo inicial do arco, em graus.

end_angle

O ângulo final do arco, em graus. 0° está localizado na posição 3 horas do relógio, e o arco é desenhado no sentido horário.

color

Um identificador de cor criado com imagecolorallocate().

style

Um OR binário das seguinte possibilidades:

  1. IMG_ARC_PIE
  2. IMG_ARC_CHORD
  3. IMG_ARC_NOFILL
  4. IMG_ARC_EDGED
IMG_ARC_PIE e IMG_ARC_CHORD são mutualmente exclusivas; IMG_ARC_CHORD apenas conecta os ângulos inicial e final com uma linha reta, enquanto que IMG_ARC_PIE produz uma borda arredondada. IMG_ARC_NOFILL indica que o arco ou corda devem ser contornados, não preenchidos. IMG_ARC_EDGED, usado em conjunto com IMG_ARC_NOFILL, indica que o ângulo inicial e o final devem ser conectados ao centro - é uma boa forma de se contornar (em vez de preencher) uma 'fatia de pizza'.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Criando uma pizza em 3D

<?php

// cria a imagem
$image = imagecreatetruecolor(100, 100);

// aloca algumas cores
$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);

// faz o efeito 3D
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);

// descarrega a imagem
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Criando uma pizza em 3D


Desenha uma elipse preenchida

  • « imagefilledarc
  • imagefilledpolygon »
  • PHP Manual
  • Funções de GD e Image
  • Desenha uma elipse preenchida

imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagefilledellipse — Desenha uma elipse preenchida

Descrição

imagefilledellipse(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $color
): bool

Desenha uma elipse centrada nas coordenadas especificadas na imagem informada em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

center_x

Coordenada x do centro da elipse.

center_y

Coordenada y do centro da elipse.

width

Largura da elipse.

height

Altura da elipse.

color

Cor de preenchimento. Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagefilledellipse()

<?php

// cria uma imagem vazia
$image = imagecreatetruecolor(400, 300);

// preenche a cor de fundo
$bg = imagecolorallocate($image, 0, 0, 0);

// escolhe uma cor para a elipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// desenha a elipse branca
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// mostra a figura
header("Content-type: image/png");
imagepng($image);

?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagefilledellipse()

Notas

Nota:

imagefilledellipse() ignora imagesetthickness().

Veja Também

  • imageellipse() - Desenha uma elipse
  • imagefilledarc() - Desenha um arco parcial preenchido


Desenha um polígono preenchido

  • « imagefilledellipse
  • imagefilledrectangle »
  • PHP Manual
  • Funções de GD e Image
  • Desenha um polígono preenchido

imagefilledpolygon

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefilledpolygon — Desenha um polígono preenchido

Descrição

Assinatura a partir do PHP 8.0.0 (sem suporte a argumentos com nome)

imagefilledpolygon(GdImage $image, array $points, int $color): bool

Assinatura alternativa (descontinuada a partir do PHP 8.1.0)

imagefilledpolygon(
GdImage $image,
array $points,
int $num_points,
int $color
): bool

imagefilledpolygon() cria um polígono preenchido na imagem fornecida em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

points

Um array contendo as coordenadas x e y dos vértices consecutivos do polígono.

num_points

Número total de pontos (vértices), que devem ser pelo menos 3.

Se este parâmetro for omitido na segunda assinatura, points deve ter um número par de elementos, e num_points será assumido como count($points)/2.
color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro num_points foi descontinuado.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagefilledpolygon()

<?php
// configura o array de pontos para o polígono
$values = array(
40, 50, // Ponto 1 (x, y)
20, 240, // Ponto 2 (x, y)
60, 60, // Ponto 3 (x, y)
240, 20, // Ponto 4 (x, y)
50, 40, // Ponto 5 (x, y)
10, 10 // Ponto 6 (x, y)
);

// cria imagem
$image = imagecreatetruecolor(250, 250);

// aloca cores
$bg = imagecolorallocate($image, 0, 0, 0);
$blue = imagecolorallocate($image, 0, 0, 255);

// preenche o fundo
imagefilledrectangle($image, 0, 0, 249, 249, $bg);

// desenha um polígono
imagefilledpolygon($image, $values, 6, $blue);

// descarrega a imagem
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagefilledpolygon()

Veja Também

  • imagepolygon() - Desenha um polígono


Desenha um retângulo preenchido

  • « imagefilledpolygon
  • imagefilltoborder »
  • PHP Manual
  • Funções de GD e Image
  • Desenha um retângulo preenchido

imagefilledrectangle

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefilledrectangle — Desenha um retângulo preenchido

Descrição

imagefilledrectangle(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

Cria um retângulo preenchido com a cor informada no parâmetro color na imagem fornecida em image, iniciando no ponto 1 e terminando no ponto 2. 0, 0 é o canto superior esquerdo da imagem.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

x1

Coordenada x do ponto 1.

y1

Coordenada y do ponto 1.

x2

Coordenada x do ponto 2.

y2

Coordenada y do ponto 2.

color

A cor de preenchimento. Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Uso de imagefilledrectangle()

<?php
// Cria uma imagem 55x30
$im = imagecreatetruecolor(55, 30);
$white = imagecolorallocate($im, 255, 255, 255);

// Desenha um retângulo branco
imagefilledrectangle($im, 4, 4, 50, 25, $white);

// Grava a imagem
imagepng($im, './imagefilledrectangle.png');
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagefilledrectangle()


Preenche até encontrar uma cor especificada

  • « imagefilledrectangle
  • imagefilter »
  • PHP Manual
  • Funções de GD e Image
  • Preenche até encontrar uma cor especificada

imagefilltoborder

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefilltoborder — Preenche até encontrar uma cor especificada

Descrição

imagefilltoborder(
GdImage $image,
int $x,
int $y,
int $border_color,
int $color
): bool

imagefilltoborder() realiza um preenchimento cuja cor de borda é definida por border_color. O ponto de início do preenchimento é x, y (canto superior esquero é 0, 0) e a região é preenchida com a cor informada em color.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

x

Coordenada x do início.

y

Coordenada y do início.

border_color

A cor da borda. Um identificador de cor criado com imagecolorallocate().

color

A cor de preenchimento. Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Preenchendo uma elipse com uma cor

<?php
// Cria a imagem, com fundo branco
$im = imagecreatetruecolor(100, 100);
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 255, 255, 255));

// Desenha uma elipse com borda preta para ser preenchida
imageellipse($im, 50, 50, 50, 50, imagecolorallocate($im, 0, 0, 0));

// Define a borda e a cor de preenchimento
$border = imagecolorallocate($im, 0, 0, 0);
$fill = imagecolorallocate($im, 255, 0, 0);

// Preenche a seleção
imagefilltoborder($im, 50, 50, $border, $fill);

// Mostra e libera memória
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Preenchendo uma elipse com uma cor

Notas

O algoritmo não se lembra explicitamente de quais pixels já foram definidos, mas infere isso a partir da cor do pixel, portanto ele não consegue distinguir entre pixels que acabaram de ser definidos de pixels que já estavam lá. Isto significa que ao escolher uma cor de preenchimento que já existe na imagem pode gerar resultados indesejados.


Aplica um filtro a uma imagem

  • « imagefilltoborder
  • imageflip »
  • PHP Manual
  • Funções de GD e Image
  • Aplica um filtro a uma imagem

imagefilter

(PHP 5, PHP 7, PHP 8)

imagefilter — Aplica um filtro a uma imagem

Descrição

imagefilter(GdImage $image, int $filter, array|int|float|bool ...$args): bool

imagefilter() aplica o filtro informado em filter na imagem fornecida em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

filter

filter pode ser uma das seguintes constantes:

  • IMG_FILTER_NEGATE: Inverte todas as cores da imagem.
  • IMG_FILTER_GRAYSCALE: Converte a imagem em escala de cinza alterando os componentes vermelho, verde e azul para suas respectivas somas ponderadas, usando os mesmos coeficientes de cálculo de luminância (Y') da REC.601. Os componentes alfa são retidos. Para imagens de paleta, o resultado pode ser diferente devido a limitações da paleta.
  • IMG_FILTER_BRIGHTNESS: Altera o brilho da imagem. Use args para definir o nível de brilho. O intervalo de brilho é de -255 a 255.
  • IMG_FILTER_CONTRAST: Altera o contraste da imagem. Use args para definir o nível de contraste.
  • IMG_FILTER_COLORIZE: Parecida com IMG_FILTER_GRAYSCALE, exceto que pode-se especificar a cor. Use args, arg2 e arg3 na forma de red (vermelho), green (verde), blue (azul) e arg4 para o canal alpha (alfa). O intervalo de cada cor é de 0 a 255.
  • IMG_FILTER_EDGEDETECT: Usa detecção de borda para destacar as bordas da imagem.
  • IMG_FILTER_EMBOSS: Faz alto relevo da imagem.
  • IMG_FILTER_GAUSSIAN_BLUR: Desfoca a imagem usando o método gaussiano.
  • IMG_FILTER_SELECTIVE_BLUR: Desfoca a imagem.
  • IMG_FILTER_MEAN_REMOVAL: Usa a remoção de média para alcançar um efeito de "esboço".
  • IMG_FILTER_SMOOTH: Torna a imagem mais suave. Use args para definir o nível de suavidade.
  • IMG_FILTER_PIXELATE: Aplica efeito de pixelização à imagem, use args para definir o tamanho do bloco e arg2 para definir o modo do efeito de pixelização.
  • IMG_FILTER_SCATTER: Aplica efeito de dispersão à imagem, use args e arg2 para definir a intensidade do efeito e adicionalmente arg3 para aplicar o efeito somente em cores de pixels selecionadas.

args

  • IMG_FILTER_BRIGHTNESS: Nível de brilho.
  • IMG_FILTER_CONTRAST: Nível de contraste.
  • IMG_FILTER_COLORIZE: Valor do componente vermelho.
  • IMG_FILTER_SMOOTH: Nível de suavidade.
  • IMG_FILTER_PIXELATE: Tamanho do bloco em pixels.
  • IMG_FILTER_SCATTER: Nível de subtração de efeito. Não pode ser maior ou igual ao nível de adição de efeito definido com arg2.

arg2

  • IMG_FILTER_COLORIZE: Valor do componente verde.
  • IMG_FILTER_PIXELATE: Informa se deve ser usada efeito de pixelização avançada ou não (o padrão é false).
  • IMG_FILTER_SCATTER: Nível de adição de efeito.

arg3

  • IMG_FILTER_COLORIZE: Valor do componente azul.
  • IMG_FILTER_SCATTER: Array opcional indexado com valores de cores nas quais os efeitos serão aplicados.

arg4

  • IMG_FILTER_COLORIZE: Canal alfa, um valor entre 0 e 127. 0 indica completamente opaco e 127 indica completamente transparente.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
7.4.0 | Suporte a dispersão (IMG_FILTER_SCATTER) foi adicionado.

Exemplos

Exemplo #1 Exemplo de escala de cinza com imagefilter()

<?php
$im = imagecreatefrompng('dave.png');

if($im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
echo 'Imagem convertida para escala de cinza.';

imagepng($im, 'dave.png');
}
else
{
echo 'Conversão para escala de cinza falhou.';
}

imagedestroy($im);
?>

Exemplo #2 Exemplo de brilho com imagefilter()

<?php
$im = imagecreatefrompng('sean.png');

if($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20))
{
echo 'Brilho da imagem alterado.';

imagepng($im, 'sean.png');
imagedestroy($im);
}
else
{
echo 'Alteração no brilho da imagem falhou.';
}
?>

Exemplo #3 Exemplo de colorização com imagefilter()

<?php
$im = imagecreatefrompng('philip.png');

/* R, G, B, portanto 0, 255, 0 é verde */
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
echo 'Imagem tonalizada em verde com sucesso.';

imagepng($im, 'philip.png');
imagedestroy($im);
}
else
{
echo 'Tonalização em verde falhou.';
}
?>

Exemplo #4 Exemplo de inversão com imagefilter()

<?php
// Define a função de inversão de forma que seja portável
// para versões de php sem imagefilter()
function negate($im)
{
if(function_exists('imagefilter'))
{
return imagefilter($im, IMG_FILTER_NEGATE);
}

for($x = 0; $x < imagesx($im); ++$x)
{
for($y = 0; $y < imagesy($im); ++$y)
{
$index = imagecolorat($im, $x, $y);
$rgb = imagecolorsforindex($index);
$color = imagecolorallocate($im, 255 - $rgb['red'], 255 - $rgb['green'], 255 - $rgb['blue']);

imagesetpixel($im, $x, $y, $color);
}
}

return(true);
}

$im = imagecreatefromjpeg('kalle.jpg');

if($im && negate($im))
{
echo 'Imagem convertida com sucesso para cores invertidas.';

imagejpeg($im, 'kalle.jpg', 100);
imagedestroy($im);
}
else
{
echo 'Conversão para cores invertidas falhou.';
}
?>

Exemplo #5 Exemplo de pixelização com imagefilter()

<?php
// Carrega a logomarca do PHP, necessáio criar duas instâncias
// para mostrar as diferenças
$logo1 = imagecreatefrompng('./php.png');
$logo2 = imagecreatefrompng('./php.png');

// Cria a instância da imagem onde as diferenças serão
// mostradas
$output = imagecreatetruecolor(imagesx($logo1) * 2, imagesy($logo1));

// Aplica a pixelização para cada instância, com um bloco
// de tamanho 3
imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);

// Funde as diferenças na imagem de saída
imagecopy($output, $logo1, 0, 0, 0, 0, imagesx($logo1) - 1, imagesy($logo1) - 1);
imagecopy($output, $logo2, imagesx($logo2), 0, 0, 0, imagesx($logo2) - 1, imagesy($logo2) - 1);
imagedestroy($logo1);
imagedestroy($logo2);

// Mostra a diferença
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Pixelização com imagefilter()

Exemplo #6 Exemplo de dispersão com imagefilter()

<?php
// Carrega a imagem
$logo = imagecreatefrompng('./php.png');

// Aplica um efeito bem leve de dispersão à imagem
imagefilter($logo, IMG_FILTER_SCATTER, 3, 5);

// Mostra a imagem com o efeito de dispersão
header('Content-Type: image/png');
imagepng($logo);
imagedestroy($logo);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: dispersão com imagefilter()

Notas

Nota: O resultado de IMG_FILTER_SCATTER é sempre aleatório.

Veja Também

  • imageconvolution() - Aplica uma matriz de convolução 3x3, usando coeficiente e deslocamento


Vira uma imagem usando um modo especificado

  • « imagefilter
  • imagefontheight »
  • PHP Manual
  • Funções de GD e Image
  • Vira uma imagem usando um modo especificado

imageflip

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageflip — Vira uma imagem usando um modo especificado

Descrição

imageflip(GdImage $image, int $mode): bool

Vira a imagem definida por image usando o modo informado em mode.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

mode

Modo para virar a imagem, pode ser uma das constantes IMG_FLIP_*:

Constante | Significado
IMG_FLIP_HORIZONTAL | Vira a imagem horizontalmente.
IMG_FLIP_VERTICAL | Vira a imagem verticalmente.
IMG_FLIP_BOTH | Vira a imagem tanto verticalmente quanto horizontalmente.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Vira uma imagem verticalmente

Este exemplo usa a constante IMG_FLIP_VERTICAL.

<?php
// Arquivo
$filename = 'phplogo.png';

// Tipo de conteúdo
header('Content-type: image/png');

// Carrega
$im = imagecreatefrompng($filename);

// Vira verticalmente
imageflip($im, IMG_FLIP_VERTICAL);

// Mostra
imagejpeg($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Imagem virada verticalmente

Exemplo #2 Vira uma imagem horizontalmente

Este exemplo usa a constante IMG_FLIP_HORIZONTAL.

<?php
// Arquivo
$filename = 'phplogo.png';

// Tipo de conteúdo
header('Content-type: image/png');

// Carrega
$im = imagecreatefrompng($filename);

// Vira horizontalmente
imageflip($im, IMG_FLIP_HORIZONTAL);

// Mostra
imagejpeg($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Imagem virada horizontalmente


Obtém a altura da fonte

  • « imageflip
  • imagefontwidth »
  • PHP Manual
  • Funções de GD e Image
  • Obtém a altura da fonte

imagefontheight

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefontheight — Obtém a altura da fonte

Descrição

imagefontheight(GdFont|int $font): int

Retorna a altura da fonte, em pixels, de um caractere em determinada fonte.

Parâmetros

font

Pode ser 1, 2, 3, 4, 5 para as fontes nativas na codificação latin2 (onde números maiores correspondem a fontes maiores) ou uma instância de GdFont, retornada por imageloadfont().

Valor Retornado

Retorna a altura da fonte em pixels.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro font agora aceita uma instância de GdFont ou um int; anteriormente, apenas int era aceito.

Exemplos

Exemplo #1 Usando imagefontheight() em fontes internas

<?php
echo 'Altura da fonte: ' . imagefontheight(4);
?>

O exemplo acima produzirá algo semelhante a:

Altura da fonte: 16

Exemplo #2 Usando imagefontheight() junto com imageloadfont()

<?php
// Carrega uma fonte .gdf
$font = imageloadfont('anonymous.gdf');

echo 'Altura da fonte: ' . imagefontheight($font);
?>

O exemplo acima produzirá algo semelhante a:

Altura da fonte: 43

Veja Também

  • imagefontwidth() - Obtém a largura da fonte
  • imageloadfont() - Carrega uma nova fonte


Obtém a largura da fonte

  • « imagefontheight
  • imageftbbox »
  • PHP Manual
  • Funções de GD e Image
  • Obtém a largura da fonte

imagefontwidth

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefontwidth — Obtém a largura da fonte

Descrição

imagefontwidth(GdFont|int $font): int

Retorna a largura da fonte, em pixels, de um caractere em determinada fonte.

Parâmetros

font

Pode ser 1, 2, 3, 4, 5 para as fontes nativas na codificação latin2 (onde números maiores correspondem a fontes maiores) ou uma instância de GdFont, retornada por imageloadfont().

Valor Retornado

Retorna a largura da fonte em pixels.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro font agora aceita uma instância de GdFont ou um int; anteriormente, apenas int era aceito.

Exemplos

Exemplo #1 Usando imagefontwidth() em fontes internas

<?php
echo 'Largura da fonte: ' . imagefontwidth(4);
?>

O exemplo acima produzirá algo semelhante a:

Largura da fonte: 8

Exemplo #2 Usando imagefontwidth() junto com imageloadfont()

<?php
// Carrega uma fonte .gdf
$font = imageloadfont('anonymous.gdf');

echo 'Largura da fonte: ' . imagefontwidth($font);
?>

O exemplo acima produzirá algo semelhante a:

Largura da fonte: 23

Veja Também

  • imagefontheight() - Obtém a altura da fonte
  • imageloadfont() - Carrega uma nova fonte


Fornece a caixa limite de um texto usando fontes via freetype2

  • « imagefontwidth
  • imagefttext »
  • PHP Manual
  • Funções de GD e Image
  • Fornece a caixa limite de um texto usando fontes via freetype2

imageftbbox

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imageftbbox — Fornece a caixa limite de um texto usando fontes via freetype2

Descrição

imageftbbox(
float $size,
float $angle,
string $font_filename,
string $string,
array $options = []
): array|false

Esta função calcula e retorna a caixa limite em pixels para um texto em FreeType.

Nota:

Antes do PHP 8.0.0, imageftbbox() era uma variante estendida de imagettfbbox() que suportava adicionalmente o parâmetro options. A partir do PHP 8.0.0, imagettfbbox() é um apelido de imageftbbox().

Parâmetros

size

O tamanho da fonte em pontos.

angle

Ângulo em graus no qual a string será medida.

font_filename

O nome do arquivo da fonte TrueType (pode ser uma URL). Dependendo de qual versão da biblioteca GD que o PHP estiver usando, pode ser que ele tente pesquisar por arquivos que não iniciem com uma barra '/', anexando a extensão '.ttf' ao nome do arquivo e pesquisando ao longo de um caminho de fonte definido pela biblioteca.

string

A string a ser medida.

options

Índices de array possíveis para options
Chave | Tipo | Significado
linespacing | float | Define o espaçamento entre linhas

Valor Retornado

imageftbbox() retorna um array com 8 elementos representando os quatro pontos que definem os limites do texto:

0 | canto inferior esquerdo, posição X
1 | canto inferior esquerdo, posição Y
2 | canto inferior direito, posição X
3 | canto inferior direito, posição Y
4 | canto superior direito, posição X
5 | canto superior direito, posição Y
6 | canto superior esquerdo, posição X
7 | canto superior esquerdo, posição Y

Os pontos são relativos ao texto independente do parâmetro angle, portanto "superior esquerdo" significa no canto da parte superior esquerda vendo o texto horizontalmente.

Em caso de falha, false é retornado.

Exemplos

Exemplo #1 Exemplo de imageftbbox()

<?php
// Cria uma imagem 300x150
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Define o fundo para branco
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// Caminho para o arquivo da fonte
$font = './arial.ttf';

// Primeiramente cria-se a caixa limite
$bbox = imageftbbox(10, 0, $font, 'The PHP Documentation Group');

// Estas são as coordenadas para X e Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 5;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

imagefttext($im, 10, 0, $x, $y, $black, $font, 'The PHP Documentation Group');

// Mostra no navegador
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notas

Nota: Esta função só estará disponível se o PHP for compilado com suporte ao freetype (--with-freetype-dir=DIR).

Veja Também

  • imagefttext() - Escreve texto em uma imagem usando fontes FreeType 2
  • imagettfbbox() - Fornece a os limites retangulares de um texto usando fontes TrueType


Escreve texto em uma imagem usando fontes FreeType 2

  • « imageftbbox
  • imagegammacorrect »
  • PHP Manual
  • Funções de GD e Image
  • Escreve texto em uma imagem usando fontes FreeType 2

imagefttext

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagefttext — Escreve texto em uma imagem usando fontes FreeType 2

Descrição

imagefttext(
GdImage $image,
float $size,
float $angle,
int $x,
int $y,
int $color,
string $font_filename,
string $text,
array $options = []
): array|false

Nota:

Antes do PHP 8.0.0, imagefttext() era uma variante estendida de imagettftext() que suportava adicionalmente o parâmetro options. A partir do PHP 8.0.0, imagettftext() é um apelido de imagefttext().

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

size

O tamanho da fonte a ser usado, em pontos.

angle

O ângulo em graus, com 0 grau sendo a leitura da esquerda para a direita. Valores maiores representam a rotação no sentido anti-horário. Por exemplo, um valor de 90 resultaria em uma leitura de baixo para cima.

x

As coordenadas dadas por x e y definirão o ponto base do primeiro caractere (aproximadamente o canto inferior esquerdo do caractere. Isto é diferente de imagestring(), onde x e y definem o canto superior esquerdo do primeiro caractere. Por exemplo, "superior esquerdo" é 0, 0.

y

A ordenada y. Isto define a posição da linha de base da fonte, e não a parte mais baixa do caractere.

color

O índice da cor desejada para o texto, veja imagecolorexact().

font_filename

O caminho para a fonte TrueType a ser usada.

Dependendo de qual versão da biblioteca GD que o PHP estiver usando, quando font_filename não iniciar com uma barra /. a extensão .ttf será anexada ao nome do arquivo e a biblioteca tentará pesquisar por este arquivo ao longo do caminho definido pela biblioteca.

Em muitos casos onde uma fonte reside no mesmo diretório que o script que está sendo executado, o truque a seguir aliviará problemas ao incluir arquivos.

<?php
//Define a variável de ambiente para GD
putenv('GDFONTPATH=' . realpath('.'));

// Nomeia a fonte a ser usada (note a falta da extensão .ttf)
$font = 'SomeFont';
?>

text

Texto a ser inserido na imagem.

options

Índices de array possíveis para options
Chave | Tipo | Significado
linespacing | float | Define espaçamento entre linhas

Valor Retornado

Esta função retorna um array com os quatro pontos que definem os limites do texto, iniciando no canto inferior esquerdo e seguindo no sentido anti-horário:

0 | canto inferior esquerdo, posição X
1 | canto inferior esquerdo, posição Y
2 | canto inferior direito, posição X
3 | canto inferior direito, posição Y
4 | canto superior direito, posição X
5 | canto superior direito, posição Y
6 | canto superior esquerdo, posição X
7 | canto superior esquerdo, posição Y

Em caso de falha, false é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagefttext()

<?php
// Cria uma imagem 300x100
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Deixa o fundo vermelho
imagefilledrectangle($im, 0, 0, 299, 99, $red);

// Caminho para o arquivo de fonte ttf
$font_file = './arial.ttf';

// Desenha o texto 'PHP Manual' usando fonte tamanho 13
imagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');

// Mostr a imagem no navegador
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notas

Nota: Esta função só estará disponível se o PHP for compilado com suporte ao freetype (--with-freetype-dir=DIR).

Veja Também

  • imageftbbox() - Fornece a caixa limite de um texto usando fontes via freetype2
  • imagettftext() - Escreve texto na imagem usando fontes TrueType


Aplica uma correção de gama a uma imagem GD

  • « imagefttext
  • imagegd2 »
  • PHP Manual
  • Funções de GD e Image
  • Aplica uma correção de gama a uma imagem GD

imagegammacorrect

(PHP 4, PHP 5, PHP 7, PHP 8)

imagegammacorrect — Aplica uma correção de gama a uma imagem GD

Descrição

imagegammacorrect(GdImage $image, float $input_gamma, float $output_gamma): bool

Aplica uma correção de gama à imagem GD informada em image, sendo fornecido um gama de entrada e de saída.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

input_gamma

O gama de entrada.

output_gamma

O gama de saída.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Uso de imagegammacorrect()

<?php
// Cria a instância de imagem
$im = imagecreatefromgif('php.gif');

// Corrige o gama, saída = 1.537
imagegammacorrect($im, 1.0, 1.537);

// Grava e libera a imagem
imagegif($im, './php_gamma_corrected.gif');
imagedestroy($im);
?>


Envia uma imagem GD2 ao navegador ou a um arquivo

  • « imagegammacorrect
  • imagegd »
  • PHP Manual
  • Funções de GD e Image
  • Envia uma imagem GD2 ao navegador ou a um arquivo

imagegd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagegd2 — Envia uma imagem GD2 ao navegador ou a um arquivo

Descrição

imagegd2(
GdImage $image,
?string $file = null,
int $chunk_size = 128,
int $mode = IMG_GD2_RAW
): bool

Envia uma imagem GD2 para o arquivo informado em file.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

file

O caminho ou um recurso de stream aberto (que será fechado automaticamente após o retorno desta função) para salvar o arquivo. Se não for definido ou for null, o stream da imagem bruta será enviado diretamente.

chunk_size

Tamanho do pacote.

mode

Pode ser IMG_GD2_RAW ou IMG_GD2_COMPRESSED. O padrão é IMG_GD2_RAW.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Registro de Alterações

Versão | Descrição
8.0.3 | file agora pode ser nulo.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Mostrando uma imagem GD2

<?php
// Cria uma imagem vazia e adiciona algum texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);

// Mostra a imagem
imagegd2($im);

// Libera memória
imagedestroy($im);
?>

Exemplo #2 Saving a GD2 image

<?php
// Cria uma imagem vazia e adiciona algum texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);

// Grava a imagem GD2
// O formato de arquivo para imagens GD2 é .gd2, consulte http://www.libgd.org/GdFileFormats
imagegd2($im, 'simple.gd2');

// Libera memória
imagedestroy($im);
?>

Notas

Nota:

O formato GD2 é usado normalmente para permitir carregamento rápido de partes de imagens. Observe que o formato GD é utilizável somente em aplicações compatíveis com GD2.

Aviso

Os formatos de imagem GD e GD2 são formatos de imagem proprietários da biblioteca libgd. Eles devem ser considerados obsoletos e só devem ser usados para propósitos de desenvolvimento e testes.

Veja Também

  • imagegd() - Envia uma imagem GD para o navegador ou para um arquivo


Envia uma imagem GD para o navegador ou para um arquivo

  • « imagegd2
  • imagegetclip »
  • PHP Manual
  • Funções de GD e Image
  • Envia uma imagem GD para o navegador ou para um arquivo

imagegd

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagegd — Envia uma imagem GD para o navegador ou para um arquivo

Descrição

imagegd(GdImage $image, ?string $file = null): bool

Envia uma imagem GD para o arquivo informado em file.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

file

O caminho ou um recurso de stream aberto (que será fechado automaticamente após o retorno desta função) para salvar o arquivo. Se não for definido ou for null, o stream da imagem bruta será enviado diretamente.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Registro de Alterações

Versão | Descrição
8.0.3 | file agora pode ser nulo.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
7.2.0 | imagegd() agora permite gerar imagens em cores verdadeiras. Anteriormente, elas eram convertidas implicitamente para paleta.

Exemplos

Exemplo #1 Mostrando uma imagem GD

<?php
// Cria uma imagem vazia e adiciona algum texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);

// Mostra a imagem
imagegd($im);

// Libera memória
imagedestroy($im);
?>

Exemplo #2 Saving a GD image

<?php
// Cria uma imagem vazia e adiciona algum texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);

// Grava a imagem GD
// O formato de arquivo para imagens GD é .gd, consulte http://www.libgd.org/GdFileFormats
imagegd($im, 'simple.gd');

// Libera memória
imagedestroy($im);
?>

Notas

Nota:

O formato GD é usado normalmente para permitir carregamento rápido de partes de imagens. Observe que o formato GD é utilizável somente em aplicações compatíveis com GD.

Aviso

Os formatos de imagem GD e GD2 são formatos de imagem proprietários da biblioteca libgd. Eles devem ser considerados obsoletos e só devem ser usados para propósitos de desenvolvimento e testes.

Veja Também

  • imagegd2() - Envia uma imagem GD2 ao navegador ou a um arquivo


Obtém o retângulo de recorte

  • « imagegd
  • imagegetinterpolation »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o retângulo de recorte

imagegetclip

(PHP 7 >= 7.2.0, PHP 8)

imagegetclip — Obtém o retângulo de recorte

Descrição

imagegetclip(GdImage $image): array

imagegetclip() obtém o retângulo de recorte atual, isto é, a área além da qual nenhum pixel será desenhado.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

Valor Retornado

A função retorna um array indexado com as coordenadas do retângulo de recorte, com as seguintes entradas:

  • Coordenada x do canto superior esquerdo
  • Coordenada y do canto superior esquerdo
  • Coordenada x do canto inferior direito
  • Coordenada y do canto inferior direito

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagegetclip()

Definindo e obtendo o retângulo de recorte.

<?php
$im = imagecreate(100, 100);
imagesetclip($im, 10,10, 89,89);
print_r(imagegetclip($im));

O exemplo acima produzirá:

Array
(
    [0] => 10
    [1] => 10
    [2] => 89
    [3] => 89
)

Veja Também

  • imagesetclip() - Define o retângulo de recorte


Obtém o método de interpolação

  • « imagegetclip
  • imagegif »
  • PHP Manual
  • Funções de GD e Image
  • Obtém o método de interpolação

imagegetinterpolation

(PHP 8)

imagegetinterpolation — Obtém o método de interpolação

Descrição

imagegetinterpolation(GdImage $image): int

Obtém o método de interpolação atualmente definido para a imagem informada em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

Valor Retornado

Retorna o método de interpolação.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Veja Também

  • imagesetinterpolation() - Define o método de interpolação


Envia a imagem para o navegador ou para um arquivo

  • « imagegetinterpolation
  • imagegrabscreen »
  • PHP Manual
  • Funções de GD e Image
  • Envia a imagem para o navegador ou para um arquivo

imagegif

(PHP 4, PHP 5, PHP 7, PHP 8)

imagegif — Envia a imagem para o navegador ou para um arquivo

Descrição

imagegif(GdImage $image, resource|string|null $file = null): bool

imagegif() cria o arquivo GIF especificado em file a partir da imagem em image. O argumento image é o retorno da função imagecreate() ou imagecreatefrom*.

O formato da imagem será GIF87a a menos que a imagem tenha se tornado transparente com imagecolortransparent(), e neste caso o formato da imagem será GIF89a.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

file

O caminho ou um recurso de stream aberto (que será fechado automaticamente após o retorno desta função) para salvar o arquivo. Se não for definido ou for null, o stream da imagem bruta será enviado diretamente.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Mostrando uma imagem usando imagegif()

<?php
// Cria uma nova instância de imagem
$im = imagecreatetruecolor(100, 100);

// Deixa o fundo branco
imagefilledrectangle($im, 0, 0, 99, 99, 0xFFFFFF);

// Desenha uma string na imagem
imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00);

// Mostra a imagem no navegador
header('Content-Type: image/gif');

imagegif($im);
imagedestroy($im);
?>

Exemplo #2 Convertendo uma imagem PNG para GIF usando imagegif()

<?php

// Carrega o PNG
$png = imagecreatefrompng('./php.png');

// Grava a imagem como GIF
imagegif($png, './php.gif');

// Libera a memória
imagedestroy($png);

// Pronto
echo 'Convertida a imagem PNG para GIF com sucesso!';
?>

Notas

Nota:

O extrato de código a seguir permite esrever aplicações PHP mais portáveis através de auto-detecção do tipo de suporte GD disponível. Substitua sequência header ("Content-Type: image/gif"); imagegif ($im); pela sequência mais flexível:

<?php
// Cria uma nova instância de imagem
$im = imagecreatetruecolor(100, 100);

// Faz aqui algumas operações

// Lida com a saída
if(function_exists('imagegif'))
{
// Para GIF
header('Content-Type: image/gif');

imagegif($im);
}
elseif(function_exists('imagejpeg'))
{
// Para JPEG
header('Content-Type: image/jpeg');

imagejpeg($im, NULL, 100);
}
elseif(function_exists('imagepng'))
{
// Para PNG
header('Content-Type: image/png');

imagepng($im);
}
elseif(function_exists('imagewbmp'))
{
// Para WBMP
header('Content-Type: image/vnd.wap.wbmp');

imagewbmp($im);
}
else
{
imagedestroy($im);

die('Não existe suporte para imagem neste servidor PHP');
}

// Se o suporte a imagem foi encontrado para um destes
// formatos, libera-se a memória
if($im)
{
imagedestroy($im);
}
?>

Nota:

Pode-se usar a função imagetypes() para verificar a presenção de vários formatos de imagem suportados:

<?php
if(imagetypes() & IMG_GIF)
{
header('Content-Type: image/gif');
imagegif($im);
}
elseif(imagetypes() & IMG_JPG)
{
/* ... etc. */
}
?>

Veja Também

  • imagepng() - Envia uma imagem PNG para o navegador ou arquivo
  • imagewbmp() - Envia a imagem para o navegador ou para um arquivo
  • imagejpeg() - Envia a imagem para o navegador ou para um arquivo
  • imagetypes() - Retorna os tipos de imagens suportados pela instalação do PHP


Captura toda a tela

  • « imagegif
  • imagegrabwindow »
  • PHP Manual
  • Funções de GD e Image
  • Captura toda a tela

imagegrabscreen

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

imagegrabscreen — Captura toda a tela

Descrição

imagegrabscreen(): GdImage|false

Captura uma fotografia de toda a tela.

Nota:

Esta função está disponível apenas no Windows.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função retorna agora uma instância de GDImage; anteriormente, um resource era retornado.

Exemplos

Exemplo #1 Exemplo de imagegrabscreen()

Este exemplo demonstra como tirar uma fotografia da tela atual e gravá-la como uma imagem PNG.

<?php
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
imagedestroy($im);
?>

Veja Também

  • imagegrabwindow() - Captura uma janela


Captura uma janela

  • « imagegrabscreen
  • imageinterlace »
  • PHP Manual
  • Funções de GD e Image
  • Captura uma janela

imagegrabwindow

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

imagegrabwindow — Captura uma janela

Descrição

imagegrabwindow(int $handle, bool $client_area = false): GdImage|false

Captura uma janela ou sua área de cliente usando um manipulador do Windows (propriedade HWND na instância COM)

Nota:

Esta função está disponível apenas no Windows.

Parâmetros

handle

O ID da janela HWND.

client_area

Inclui a área de cliente da janela da aplicação.

Valor Retornado

Retorna um objeto de imagem em caso de sucesso, false em caso de falha.

Erros/Exceções

E_NOTICE é emitido se handle for um manipulador de janela inválido. E_WARNING é emitido se a API do Windows for muito antiga.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função retorna agora uma instância de GDImage; anteriormente, um resource era retornado.
8.0.0 | client_area agora espera um valor do tipo bool; anteriormente era esperado um valor do tipo int.

Exemplos

Exemplo #1 Exemplo de imagegrabwindow()

Captura uma janela (IE por exemplo)

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$im = imagegrabwindow($handle);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Captura uma janela (IE por exemplo) mas com seu conteúdo

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://www.libgd.org");

/* Ainda funcionando? */
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Veja Também

  • imagegrabscreen() - Captura toda a tela


Habilita ou desabilita entrelace

  • « imagegrabwindow
  • imageistruecolor »
  • PHP Manual
  • Funções de GD e Image
  • Habilita ou desabilita entrelace

imageinterlace

(PHP 4, PHP 5, PHP 7, PHP 8)

imageinterlace — Habilita ou desabilita entrelace

Descrição

imageinterlace(GdImage $image, ?bool $enable = null): bool

imageinterlace() liga ou desliga o bit de entrelace.

Se o bit de entrelace estiver ligado e a imagem for usada como JPEG, a imagem é criada como um JPEG progressivo.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

interlace

Se true, a imagem será entrelaçada, se false o bit de entrelace é desligado. Passar null fará com que o comportamento de entrelace não seja alterado.

Valor Retornado

Retorna true se o bit de entrelace estiver ligador para a imagem, false caso contrário.

Registro de Alterações

Versão | Descrição
8.0.5 | imageinterlace() agora retorna um bool; anteriormente retornava um int (não zero para imagens entrelaçadas, zero caso contrário).
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
8.0.0 | enable agora espera um bool; anteriormente esperava um int.

Exemplos

Exemplo #1 Ligando o entrelace usando imageinterlace()

<?php
// Cria uma instância de imagem
$im = imagecreatefromgif('php.gif');

// Habilita entrelace
imageinterlace($im, true);

// Grava a imagem entrelaçada
imagegif($im, './php_interlaced.gif');
imagedestroy($im);
?>


Descobre se uma imagem está em cores verdadeiras

  • « imageinterlace
  • imagejpeg »
  • PHP Manual
  • Funções de GD e Image
  • Descobre se uma imagem está em cores verdadeiras

imageistruecolor

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imageistruecolor — Descobre se uma imagem está em cores verdadeiras

Descrição

imageistruecolor(GdImage $image): bool

imageistruecolor() Descobre se a imagem definida em image está em cores verdadeiras.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

Valor Retornado

Retorna true se image estiver em cores verdadeiras, false caso contrário.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Detecção simples de instâncias de imagem em cores verdadeiras usando imageistruecolor()

<?php
// $im é uma instância de imagem

// Verifica se a imagem está ou não em cores verdadeiras
if(!imageistruecolor($im))
{
// Cria uma nova instância de imagem em cores verdadeiras
$tc = imagecreatetruecolor(imagesx($im), imagesy($im));

// Copia os pixels
imagecopy($tc, $im, 0, 0, 0, 0, imagesx($im), imagesy($im));
imagedestroy($im);

$im = $tc;
$tc = NULL;

// OU use imagepalettetotruecolor()
}

// Continua trabalhando com a instância de imagem
?>

Veja Também

  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras
  • imagepalettetotruecolor() - Converte uma imagem baseada em paleta para cores verdadeiras


Envia a imagem para o navegador ou para um arquivo

  • « imageistruecolor
  • imagelayereffect »
  • PHP Manual
  • Funções de GD e Image
  • Envia a imagem para o navegador ou para um arquivo

imagejpeg

(PHP 4, PHP 5, PHP 7, PHP 8)

imagejpeg — Envia a imagem para o navegador ou para um arquivo

Descrição

imagejpeg(GdImage $image, resource|string|null $file = null, int $quality = -1): bool

imagejpeg() cria um arquivo JPEG a partir da imagem informada em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

file

O caminho ou um recurso de stream aberto (que será fechado automaticamente após o retorno desta função) para salvar o arquivo. Se não for definido ou for null, o stream da imagem bruta será enviado diretamente.

quality

quality é opcional e varia de 0 (pior qualidade, arquivo menor) a 100 (melhor qualidade, arquivo maior). O padrão (-1) usa o valor de qualidade IJG padrão (por volta de 75).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Mostrando uma imagem JPEG no navegador

<?php
// Cria uma imagem vazia e adiciona um texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// Define o cabeçalho de tipo de conteúdo - neste caso image/jpeg
header('Content-Type: image/jpeg');

// Mostra a imagem
imagejpeg($im);

// Libera a memória
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Mostrando uma imagem JPEG

Exemplo #2 Gravando uma imagem JPEG em um arquivo

<?php
// Cria uma imagem vazia e adiciona um texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// Grava a imagem como 'simpletext.jpg'
imagejpeg($im, 'simpletext.jpg');

// Libera a memória
imagedestroy($im);
?>

Exemplo #3 Mostrando a imagem com 75% de qualidade no navegador

<?php
// Cria uma imagem vazia e adiciona um texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// Define o cabeçalho de tipo de conteúdo - neste caso image/jpeg
header('Content-Type: image/jpeg');

// Ignora o parâmetro arquivo usando NULL, e então define a qualidade para 75%
imagejpeg($im, NULL, 75);

// Libera a memória
imagedestroy($im);
?>

Notas

Nota:

Se for desejado mostrar JPEGs progressivos, deve-se habilitar entrelace com a função imageinterlace().

Veja Também

  • imagepng() - Envia uma imagem PNG para o navegador ou arquivo
  • imagegif() - Envia a imagem para o navegador ou para um arquivo
  • imagewbmp() - Envia a imagem para o navegador ou para um arquivo
  • imageinterlace() - Habilita ou desabilita entrelace
  • imagetypes() - Retorna os tipos de imagens suportados pela instalação do PHP


Define a opção de mesclagem alfa para usar efeitos de camada

  • « imagejpeg
  • imageline »
  • PHP Manual
  • Funções de GD e Image
  • Define a opção de mesclagem alfa para usar efeitos de camada

imagelayereffect

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

imagelayereffect — Define a opção de mesclagem alfa para usar efeitos de camada

Descrição

imagelayereffect(GdImage $image, int $effect): bool

Define a opção de mesclagem alfa para usar efeitos de camada.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

effect

Uma das constantes a seguir:

IMG_EFFECT_REPLACE
Usa substituição de pixel (equivalente a passar true para imagealphablending())
IMG_EFFECT_ALPHABLEND
Usa mesclagem de pixel normal (equivalent a passar false para imagealphablending())
IMG_EFFECT_NORMAL
O mesmo que IMG_EFFECT_ALPHABLEND.
IMG_EFFECT_OVERLAY
Sobreposição tem o efeito em que os pixels do fundo preto permanecerão pretos, pixels de fundo branco permanecerão brancos, mas pixels de fundo cinza tomarão a cor do pixel de primeiro plano.
IMG_EFFECT_MULTIPLY
Sobrepõe com efeito de multiplicação.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
7.2.0 | Adicionada a constante IMG_EFFECT_MULTIPLY (requer libgd de sistema >= 2.1.1 ou a libgd incluída no pacote).

Exemplos

Exemplo #1 Exemplo de imagelayereffect()

<?php
// Configura uma imagem
$im = imagecreatetruecolor(100, 100);

// Define a cor de fundo
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 220, 220, 220));

// Applica a opção de mesclagem alfa de sobreposição
imagelayereffect($im, IMG_EFFECT_OVERLAY);

// Desenha duas elipses cinzas
imagefilledellipse($im, 50, 50, 40, 40, imagecolorallocate($im, 100, 255, 100));
imagefilledellipse($im, 50, 50, 50, 80, imagecolorallocate($im, 100, 100, 255));
imagefilledellipse($im, 50, 50, 80, 50, imagecolorallocate($im, 255, 100, 100));

// Mostra
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagelayereffect()


Desenha uma linha

  • « imagelayereffect
  • imageloadfont »
  • PHP Manual
  • Funções de GD e Image
  • Desenha uma linha

imageline

(PHP 4, PHP 5, PHP 7, PHP 8)

imageline — Desenha uma linha

Descrição

imageline(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

Desenha uma linha entre dois pontos informados.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

x1

Coordenada x do primeiro ponto.

y1

Coordenada y do primeiro ponto.

x2

Coordenada x do segundo ponto.

y2

Coordenada y do segundo ponto.

color

A cor da linha. Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Desenhando uma linha espessa

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
/* desta forma só funciona bem com linhas ortogonais
imagesetthickness($image, $thick);
return imageline($image, $x1, $y1, $x2, $y2, $color);
*/
if ($thick == 1) {
return imageline($image, $x1, $y1, $x2, $y2, $color);
}
$t = $thick / 2 - 0.5;
if ($x1 == $x2 || $y1 == $y2) {
return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
}
$k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
$a = $t / sqrt(1 + pow($k, 2));
$points = array(
round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
);
imagefilledpolygon($image, $points, 4, $color);
return imagepolygon($image, $points, 4, $color);
}

?>

Veja Também

  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras
  • imagecolorallocate() - Aloca uma cor para uma imagem


Carrega uma nova fonte

  • « imageline
  • imageopenpolygon »
  • PHP Manual
  • Funções de GD e Image
  • Carrega uma nova fonte

imageloadfont

(PHP 4, PHP 5, PHP 7, PHP 8)

imageloadfont — Carrega uma nova fonte

Descrição

imageloadfont(string $filename): GdFont|false

imageloadfont() carrega um mapa de bits definido pelo usuário e retorna seu identificador.

Parâmetros

filename

O formato de arquivo de fonte atualmente é binário e dependente de arquitetura. Isto significa que os arquivos de fonte devem ser gerados no mesmo tipo de CPU da máquina onde o PHP estiver sendo executado.

Formato de arquivo de fonte
posição do byte | tipo de dados C | descrição
bytes 0-3 | int | número de caracteres na fonte
bytes 4-7 | int | valor do primeiro caractere na fonte (normalmente 32 para espaço)
bytes 8-11 | int | largura em pixel para cada caractere
bytes 12-15 | int | altura em pixel para cada caractere
bytes 16- | char | array com dados de caracteres, um byte por pixel em cada caractere, para um total de (num_caracteres * largura * altura) bytes.

Valor Retornado

Retorna uma instância GdFont, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Retorna uma instância GdFont agora; anteriormente, um int era retornado.

Exemplos

Exemplo #1 Exemplo de uso de imageloadfont()

<?php
// Cria uma nova instância de imagem
$im = imagecreatetruecolor(50, 20);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Torna o fundo branco
imagefilledrectangle($im, 0, 0, 49, 19, $white);

// Carrega a fonte GD e escreve 'Hello'
$font = imageloadfont('./04b.gdf');
imagestring($im, $font, 0, 0, 'Hello', $black);

// Mostra no navegador
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Veja Também

  • imagefontwidth() - Obtém a largura da fonte
  • imagefontheight() - Obtém a altura da fonte


Desenha um polígono aberto

  • « imageloadfont
  • imagepalettecopy »
  • PHP Manual
  • Funções de GD e Image
  • Desenha um polígono aberto

imageopenpolygon

(PHP 7 >= 7.2.0, PHP 8)

imageopenpolygon — Desenha um polígono aberto

Descrição

Assinatura a partir do PHP 8.0.0 (não suportada com argumentos nomeados)

imageopenpolygon(GdImage $image, array $points, int $color): bool

Assinatura alternativa (defasada a partir do PHP 8.1.0)

imageopenpolygon(
GdImage $image,
array $points,
int $num_points,
int $color
): bool

imageopenpolygon() desenha um polígono aberto na imagem informada em image. A contrário de imagepolygon(), nenhuma linha é desenhada entre o último ponto e o primeiro ponto.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

points

Um array contendo os vértices do polígono, por exemplo:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Número total de pontos (vértices), que devem ser pelo menos 3.

Se este parâmetro for omitido conforme a segunda assinatura, points precisa ter um número par de elementos, e será assumido que num_points será igual a count($points)/2.
color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro num_points foi descontinuado.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imageopenpolygon()

<?php
// Cria uma imagem vazia
$image = imagecreatetruecolor(400, 300);

// Aloca uma cor para o polígono
$col_poly = imagecolorallocate($image, 255, 255, 255);

// Desenha o polígono
imageopenpolygon($image, array(
0, 0,
100, 200,
300, 200
),
3,
$col_poly);

// Mostra a imagem no navegador
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imageopenpolygon()

Veja Também

  • imagepolygon() - Desenha um polígono


Copia a paleta de uma imagem para outra

  • « imageopenpolygon
  • imagepalettetotruecolor »
  • PHP Manual
  • Funções de GD e Image
  • Copia a paleta de uma imagem para outra

imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagepalettecopy — Copia a paleta de uma imagem para outra

Descrição

imagepalettecopy(GdImage $dst, GdImage $src): void

imagepalettecopy() copia a paleta da imagem src para a imagem dst.

Parâmetros

dst

O objeto imagem de destino.

src

O objeto imagem de origem.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | dst e src agora esperam instâncias GdImage; anteriormente, recursos do tipo resource eram esperados.

Exemplos

Exemplo #1 Exemplo de imagepalettecopy()

<?php
// Cria duas imagens de paleta
$palette1 = imagecreate(100, 100);
$palette2 = imagecreate(100, 100);

// Aloca a cor verde para o
// fundo da primeira imagem de paleta
$green = imagecolorallocate($palette1, 0, 255, 0);

// Copia a paleta da imagem 1 para a imagem 2
imagepalettecopy($palette2, $palette1);

// Agora que a paleta está copiada, pode-se usar
// a cor verde alocada à imagem 1 sem usar
// imagecolorallocate() duas vezes
imagefilledrectangle($palette2, 0, 0, 99, 99, $green);

// Mostra a imagem no navegador
header('Content-type: image/png');

imagepng($palette2);
imagedestroy($palette1);
imagedestroy($palette2);
?>


Converte uma imagem baseada em paleta para cores verdadeiras

  • « imagepalettecopy
  • imagepng »
  • PHP Manual
  • Funções de GD e Image
  • Converte uma imagem baseada em paleta para cores verdadeiras

imagepalettetotruecolor

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagepalettetotruecolor — Converte uma imagem baseada em paleta para cores verdadeiras

Descrição

imagepalettetotruecolor(GdImage $image): bool

Converte uma imagem baseada em paleta, criada por funções como imagecreate(), para uma imagem em cores verdadeiras, como imagecreatetruecolor().

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

Valor Retornado

Retorna true se a conversão for concluída, ou se a imagem de origem já estiver em cores verdadeiras, caso contrário é retornado false.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Converte qualquer objeto de imagem para cores verdadeiras

<?php
// Compatibilidade com versões anteriores
if(!function_exists('imagepalettetotruecolor'))
{
function imagepalettetotruecolor(&$src)
{
if(imageistruecolor($src))
{
return(true);
}

$dst = imagecreatetruecolor(imagesx($src), imagesy($src));

imagecopy($dst, $src, 0, 0, 0, 0, imagesx($src), imagesy($src));
imagedestroy($src);

$src = $dst;

return(true);
}
}

// Closure de apoio
$typeof = function() use($im)
{
echo 'typeof($im) = ' . (imageistruecolor($im) ? 'cores verdadeiras' : 'paleta'), PHP_EOL;
};

// Cria uma imagem baseada em paleta
$im = imagecreate(100, 100);
$typeof();

// Converte para cores verdadeiras
imagepalettetotruecolor($im);
$typeof();

// Libera a memória
imagedestroy($im);
?>

O exemplo acima produzirá:

typeof($im) = paleta
typeof($im) = cores verdadeiras

Veja Também

  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras
  • imageistruecolor() - Descobre se uma imagem está em cores verdadeiras


Envia uma imagem PNG para o navegador ou arquivo

  • « imagepalettetotruecolor
  • imagepolygon »
  • PHP Manual
  • Funções de GD e Image
  • Envia uma imagem PNG para o navegador ou arquivo

imagepng

(PHP 4, PHP 5, PHP 7, PHP 8)

imagepng — Envia uma imagem PNG para o navegador ou arquivo

Descrição

imagepng(
GdImage $image,
resource|string|null $file = null,
int $quality = -1,
int $filters = -1
): bool

Envia ou grava uma imagemPNG a partir do parâmetro image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

file

O caminho ou um recurso de stream aberto (que será fechado automaticamente após o retorno desta função) para salvar o arquivo. Se não for definido ou for null, o stream da imagem bruta será enviado diretamente.

Nota:

null é inválido se os argumentos quality e filters não forem informados.

quality

Nível de compressão: de 0 (sem compressão) a 9. O padrão (-1) utiliza a compressão padrão da zlib. Para mais informações, consulte o » manual zlib.

filters

Permite reduzir o tamanho do arquivo PNG. Uma máscara de bits pode ser informada por qualquer combinação das contantes PNG_FILTER_XXX. PNG_NO_FILTER ou PNG_ALL_FILTERS também podem ser utilizados, respectivamente, para desativar ou ativar todos os filtros. O valor padrão (-1) desativa os filtros.

Cuidado

O parâmetro filters é ignorado pela libgd de sistema.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

<?php
$im = imagecreatefrompng("test.png");

header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Veja Também

  • imagegif() - Envia a imagem para o navegador ou para um arquivo
  • imagewbmp() - Envia a imagem para o navegador ou para um arquivo
  • imagejpeg() - Envia a imagem para o navegador ou para um arquivo
  • imagetypes() - Retorna os tipos de imagens suportados pela instalação do PHP
  • imagesavealpha() - Informa se a informação de canal alfa deve ser retida ao gravar imagens


Desenha um polígono

  • « imagepng
  • imagerectangle »
  • PHP Manual
  • Funções de GD e Image
  • Desenha um polígono

imagepolygon

(PHP 4, PHP 5, PHP 7, PHP 8)

imagepolygon — Desenha um polígono

Descrição

Assinatura a partir do PHP 8.0.0 (não suportada com argumentos nomeados)

imagepolygon(GdImage $image, array $points, int $color): bool

Assinatura alternativa (defasada a partir do PHP 8.1.0)

imagepolygon(
GdImage $image,
array $points,
int $num_points,
int $color
): bool

imagepolygon() cria um polígono na imagem informada em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

points

Um array contendo os vértices do polígono, por exemplo:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Número total de pontos (vértices), que devem ser pelo menos 3.

Se este parâmetro for omitido conforme a segunda assinatura, points precisa ter um número par de elementos, e será assumido que num_points será igual a count($points)/2.
color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro num_points tornou-se defasado.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagepolygon()

<?php
// Cria uma imagem vazia
$image = imagecreatetruecolor(400, 300);

// Aloca uma cor para o polígono
$col_poly = imagecolorallocate($image, 255, 255, 255);

// Desenha o polígono
imagepolygon($image, array(
0, 0,
100, 200,
300, 200
),
3,
$col_poly);

// Mostra a imagem no navegador
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagepolygon()

Veja Também

  • imagefilledpolygon() - Desenha um polígono preenchido
  • imageopenpolygon() - Desenha um polígono aberto
  • imagecreate() - Crie uma nova imagem baseada em paleta
  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras


Desenha um retângulo

  • « imagepolygon
  • imageresolution »
  • PHP Manual
  • Funções de GD e Image
  • Desenha um retângulo

imagerectangle

(PHP 4, PHP 5, PHP 7, PHP 8)

imagerectangle — Desenha um retângulo

Descrição

imagerectangle(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

imagerectangle() cria um retângulo nas coordenadas especificadas.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

x1

Coordenada x do canto superior esquerdo.

y1

Coordenada y do canto superior esquerdo. 0, 0 é o canto superior esquerdo da imagem.

x2

Coordenada x do canto inferior direito.

y2

Coordenada y do canto inferior direito.

color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo simples de imagerectangle()

<?php
// Cria uma imagem 200 x 200
$canvas = imagecreatetruecolor(200, 200);

// Aloca cores
$pink = imagecolorallocate($canvas, 255, 105, 180);
$white = imagecolorallocate($canvas, 255, 255, 255);
$green = imagecolorallocate($canvas, 132, 135, 28);

// Desenha três retângulos cada um com sua própria cor
imagerectangle($canvas, 50, 50, 150, 150, $pink);
imagerectangle($canvas, 45, 60, 120, 100, $white);
imagerectangle($canvas, 100, 120, 75, 160, $green);

// Mostra e libera da memória
header('Content-Type: image/jpeg');

imagejpeg($canvas);
imagedestroy($canvas);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Exemplo simples de imagerectangle()


Obtém ou define a resolução da imagem

  • « imagerectangle
  • imagerotate »
  • PHP Manual
  • Funções de GD e Image
  • Obtém ou define a resolução da imagem

imageresolution

(PHP 7 >= 7.2.0, PHP 8)

imageresolution — Obtém ou define a resolução da imagem

Descrição

imageresolution(GdImage $image, ?int $resolution_x = null, ?int $resolution_y = null): array|bool

imageresolution() permite definir ou obter a resolução de uma imagem em PPP (pontos por polegada). Se os parâmetros opcionais forem null, a resolução atual é retornada como um array indexado. Se somente resolution_x não for null, as resoluções horizontal e vertical são definidas para este valor. Se nenhum dos parâmetros opcionais for null, as resoluções horizontal e vertical são definidas para estes valores, respectivamente.

A resolução é usada somente como meta-informação quando imagens são lidas e gravadas de/para formatos que suportam este tipo de informação (atualmente PNG e JPEG). Ela não afeta nenhuma operação de desenho. A resolução padrão para novas imagens é 96 PPP.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

resolution_x

A resolução horizontal em PPP.

resolution_y

A resolução vertical em PPP.

Valor Retornado

Quando usado para obter a resolução, retorna um array indexado das resoluções horizontal e vertical em caso de sucesso, ou false em caso de falha. Quando usado para definir a resolução, retorna true em caso de sucesso, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | resolution_x e resolution_y agora podem ser nulos.

Exemplos

Exemplo #1 Definindo e obtendo a resolução de uma imagem

<?php
$im = imagecreatetruecolor(100, 100);
imageresolution($im, 200);
print_r(imageresolution($im));
imageresolution($im, 300, 72);
print_r(imageresolution($im));
?>

O exemplo acima produzirá:

Array
(
    [0] => 200
    [1] => 200
)
Array
(
    [0] => 300
    [1] => 72
)


Rotaciona uma imagem em um ângulo informado

  • « imageresolution
  • imagesavealpha »
  • PHP Manual
  • Funções de GD e Image
  • Rotaciona uma imagem em um ângulo informado

imagerotate

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

imagerotate — Rotaciona uma imagem em um ângulo informado

Descrição

imagerotate(GdImage $image, float $angle, int $background_color): GdImage|false

Rotaciona a imagem informada em image usando o ângulo, em graus, definido por angle.

O centro de rotação é o centro da image, e a imagem rotacionada pode ter dimensões diferentes da imagem original.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

angle

Ângulo de rotação, em graus. O ângulo de rotação é interpretado como o número de graus a rotacionar a imagem no sentido anti-horário.

background_color

Especifica a cor da área não coberta após a rotação.

Valor Retornado

Retorna um objeto de imagem para a imagem rotacionada, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.0 | O parâmetro não utilizado ignore_transparent foi completamente removido.
8.0.0 | Em caso de sucesso, a função agora retorna uma instância GDImage; anteriormente, um resource era retornado.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
8.0.0 | O parâmetrop não utilizado ignore_transparent agora espera um bool; anteriormente era esperado um int.

Exemplos

Exemplo #1 Rotaciona a imagem em 180 graus

Este exemplo rotaciona a imagem em 180 graus - de cabeça para baixo.

<?php
// Arquivo e rotação
$filename = 'test.jpg';
$degrees = 180;

// Tipo de conteúdo
header('Content-type: image/jpeg');

// Carrega
$source = imagecreatefromjpeg($filename);

// Rotaciona
$rotate = imagerotate($source, $degrees, 0);

// Mostra
imagejpeg($rotate);

// Libera a memória
imagedestroy($source);
imagedestroy($rotate);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: Rotaciona uma imagem em 180 graus

Notas

Nota:

Esta função é afetada pelo método de interpolação definido por imagesetinterpolation().

Veja Também

  • imagesetinterpolation() - Define o método de interpolação


Informa se a informação de canal alfa deve ser retida ao gravar imagens

  • « imagerotate
  • imagescale »
  • PHP Manual
  • Funções de GD e Image
  • Informa se a informação de canal alfa deve ser retida ao gravar imagens

imagesavealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imagesavealpha — Informa se a informação de canal alfa deve ser retida ao gravar imagens

Descrição

imagesavealpha(GdImage $image, bool $enable): bool

imagesavealpha() define a opção que determina se a informação completa do canal alfa deve ser retida (ao contrário de manter transparência de uma cor) ao gravar imagens. Isto somente é suportado para formatos de imagem que suportam informação de canal alfa completo, isto é, PNG, WebP e AVIF.

Nota: imagesavealpha() só faz sentido para imagens PNG, já que o canal alfa completo é sempre gravado para WebP e AVIF. Não pe recomendado confiar neste comportamento, pois ele pode mudar no futuro. Por isso, imagesavealpha() deve ser chamada deliberadamente também para imagens WebP e AVIF.

Mesclagem de alfa tem que ser desabilitada (imagealphablending($im, false)) para reter o canal alfa em primeiro lugar.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

enable

Informa se o canal alfa deve ou não ser retido. O padrão é false.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Uso básico de imagesavealpha()

<?php
// Carrega uma imagem PNG com canal alfa
$png = imagecreatefrompng('./alphachannel_example.png');

// Desabilita mesclagem alfa
imagealphablending($png, false);

// Faz as operações desejadas

// Define a opção de gravação alfa
imagesavealpha($png, true);

// Mostra imagem no navegador
header('Content-Type: image/png');

imagepng($png);
imagedestroy($png);
?>

Veja Também

  • imagealphablending() - Define o modo de combinação para uma imagem


Muda a escala de uma imagem usando largura e altura informadas

  • « imagesavealpha
  • imagesetbrush »
  • PHP Manual
  • Funções de GD e Image
  • Muda a escala de uma imagem usando largura e altura informadas

imagescale

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagescale — Muda a escala de uma imagem usando largura e altura informadas

Descrição

imagescale(
GdImage $image,
int $width,
int $height = -1,
int $mode = IMG_BILINEAR_FIXED
): GdImage|false

imagescale() escala de uma imagem usando o algoritmo de interpolação informado.

Nota:

Diferentemente de muitas outras funções de imagem, imagescale() não modifica o argumento image informado; ao invés disso, uma nova imagem é retornada.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

width

A largura que a imagem terá na nova escala.

height

A altura que a imagem terá na nova escala. Se for omitida ou se for negativa, a razão de aspecto será preservada.

mode

Uma das constantes IMG_NEAREST_NEIGHBOUR, IMG_BILINEAR_FIXED (o padrão), IMG_BICUBIC, IMG_BICUBIC_FIXED ou qualquer outro valor (neste caso será feita dupla passagem).

Nota: IMG_WEIGHTED4 ainda não é suportada.

Valor Retornado

Retorna o objeto imagem com a escala modificada em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna uma instância de GDImage; anteriormente, um resource era retornado.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Veja Também

  • imagecopyresized() - Copia e redimensiona parte de uma imagem
  • imagecopyresampled() - Copia e redimensiona parte de uma imagem com reamostragem


Define o tipo de pincel para desenho de linhas

  • « imagescale
  • imagesetclip »
  • PHP Manual
  • Funções de GD e Image
  • Define o tipo de pincel para desenho de linhas

imagesetbrush

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesetbrush — Define o tipo de pincel para desenho de linhas

Descrição

imagesetbrush(GdImage $image, GdImage $brush): bool

imagesetbrush() define a imagem de pincel para ser usada por todas as funções de desenho de linhas (como imageline() e imagepolygon()) ao desenhar com as cores especiais IMG_COLOR_BRUSHED ou IMG_COLOR_STYLEDBRUSHED.

Cuidado

Não é necessário tomar medidas especiais ao terminar de usar um pincel, mas se a imagem do pincel for destruída (ou se o PHP destruí-la), as cores IMG_COLOR_BRUSHED ou IMG_COLOR_STYLEDBRUSHED não podem ser usadas até que uma nova imagem de pincel seja definida!

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

brush

Um objeto de imagem.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | image e brush agora esperam instâncias de GdImage anteriormente, resources eram esperados.

Exemplos

Exemplo #1 Exemplo de imagesetbrush()

<?php
// Carrega uma mini logomarca do PHP
$php = imagecreatefrompng('./php.png');

// Cria a imagem principal, 100x100
$im = imagecreatetruecolor(100, 100);

// Preenche o fundo com a cor branca
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Define o pincel
imagesetbrush($im, $php);

// Desenha um par de pincéis, um sobrepondo o outro
imageline($im, 50, 50, 50, 60, IMG_COLOR_BRUSHED);

// Mostra a imagem no navegador
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($php);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagesetbrush()


Define o retângulo de recorte

  • « imagesetbrush
  • imagesetinterpolation »
  • PHP Manual
  • Funções de GD e Image
  • Define o retângulo de recorte

imagesetclip

(PHP 7 >= 7.2.0, PHP 8)

imagesetclip — Define o retângulo de recorte

Descrição

imagesetclip(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2
): bool

imagesetclip() define o retêngulo de recorte atual, isto é, a área além da qual nenhum pixel será desenhado.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

x1

A coordenada x do canto superior esquerdo.

y1

A coordenada y do canto superior esquerdo.

x2

A coordenada x do canto inferior direito.

y2

A coordenada y do canto inferior direito.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Veja Também

  • imagegetclip() - Obtém o retângulo de recorte


Define o método de interpolação

  • « imagesetclip
  • imagesetpixel »
  • PHP Manual
  • Funções de GD e Image
  • Define o método de interpolação

imagesetinterpolation

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagesetinterpolation — Define o método de interpolação

Descrição

imagesetinterpolation(GdImage $image, int $method = IMG_BILINEAR_FIXED): bool

Define o método de interpolação, que afeta a renderização de várias funções da GD, tal como a função imagerotate().

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

method

O método de interpolação, que pode ser um dos seguintes:

  • IMG_BELL: Filtro Bell.
  • IMG_BESSEL: Filtro Bessel.
  • IMG_BICUBIC: Interpolação bicúbica.
  • IMG_BICUBIC_FIXED: Implementação de ponto fixo da interpolação bicúbica.
  • IMG_BILINEAR_FIXED: Implementação de ponto fixo da interpolação bilinear (padrão (também na criação da imagem)).
  • IMG_BLACKMAN: Função de janela Blackman.
  • IMG_BOX: Filtro de desfoque de caixa.
  • IMG_BSPLINE: Interpolação Spline.
  • IMG_CATMULLROM: Interpolação Spline Hermite cúbica.
  • IMG_GAUSSIAN: Função gaussiana.
  • IMG_GENERALIZED_CUBIC: Interpolação fractal spline cúbica generalizada.
  • IMG_HERMITE: Interpolação Hermite.
  • IMG_HAMMING: Filtro Hamming.
  • IMG_HANNING: Filtro Hanning.
  • IMG_MITCHELL: Filtro Mitchell.
  • IMG_POWER: Interpolation de potência.
  • IMG_QUADRATIC: Interpolação quadrática inversa.
  • IMG_SINC: Função sinc.
  • IMG_NEAREST_NEIGHBOUR: Interpolação do ponto mais próximo.
  • IMG_WEIGHTED4: Filtro ponderado.
  • IMG_TRIANGLE: Interpolação triangular.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagesetinterpolation()

<?php
// Carrega uma imagem
$im = imagecreate(500, 500);

// Por padrão a interpolação é IMG_BILINEAR_FIXED, trocando
// para o filtro 'Mitchell':
imagesetinterpolation($im, IMG_MITCHELL);

// Continua o trabalho com $im ...
?>

Notas

Alterar o método de interpolação afeta as seguintes funções durante a renderização:

  • imageaffine()
  • imagerotate()

Veja Também

  • imagegetinterpolation() - Obtém o método de interpolação


Desenha um pixel

  • « imagesetinterpolation
  • imagesetstyle »
  • PHP Manual
  • Funções de GD e Image
  • Desenha um pixel

imagesetpixel

(PHP 4, PHP 5, PHP 7, PHP 8)

imagesetpixel — Desenha um pixel

Descrição

imagesetpixel(
GdImage $image,
int $x,
int $y,
int $color
): bool

imagesetpixel() desenha um pixel na coordenada especificada.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

x

Coordenada x.

y

Coordenada y.

color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagesetpixel()

Um desenho aleatório que termina com uma imagem normal.

<?php

$x = 200;
$y = 200;

$gd = imagecreatetruecolor($x, $y);

$corners[0] = array('x' => 100, 'y' => 10);
$corners[1] = array('x' => 0, 'y' => 190);
$corners[2] = array('x' => 200, 'y' => 190);

$red = imagecolorallocate($gd, 255, 0, 0);

for ($i = 0; $i < 100000; $i++) {
imagesetpixel($gd, round($x), round($y), $red);
$a = rand(0, 2);
$x = ($x + $corners[$a]['x']) / 2;
$y = ($y + $corners[$a]['y']) / 2;
}

header('Content-Type: image/png');
imagepng($gd);

?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagesetpixel()

Veja Também

  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras
  • imagecolorallocate() - Aloca uma cor para uma imagem
  • imagecolorat() - Obtém o índica da cor de um pixel


Define o estilo para desenho de linhas

  • « imagesetpixel
  • imagesetthickness »
  • PHP Manual
  • Funções de GD e Image
  • Define o estilo para desenho de linhas

imagesetstyle

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesetstyle — Define o estilo para desenho de linhas

Descrição

imagesetstyle(GdImage $image, array $style): bool

imagesetstyle() define o estilo para ser usado por todas as funções de desenho de linhas (tal como imageline() e imagepolygon()) ao desenhar com as cores especiais IMG_COLOR_STYLED ou linhas de imagens com a cor IMG_COLOR_STYLEDBRUSHED.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

style

Um array de cores de pixel. Pode-se usar a constante IMG_COLOR_TRANSPARENT para adicionar um pixel transparente. Observe que style não pode ser um array vazio.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

O exemplo a seguir desenha uma linha tracejada do canto superior esquerdo para o inferior direito da imagem:

Exemplo #1 Exemplo de imagesetstyle()

<?php
header("Content-type: image/jpeg");
$im = imagecreatetruecolor(100, 100);
$w = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* Desenha uma linha tracejada, 5 pixels vermelhos, 5 brancos */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Desenha uma linha de rostos felizes usando imagesetbrush() com 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);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagesetstyle()

Veja Também

  • imagesetbrush() - Define o tipo de pincel para desenho de linhas
  • imageline() - Desenha uma linha


Define a espessura para desenho de linhas

  • « imagesetstyle
  • imagesettile »
  • PHP Manual
  • Funções de GD e Image
  • Define a espessura para desenho de linhas

imagesetthickness

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesetthickness — Define a espessura para desenho de linhas

Descrição

imagesetthickness(GdImage $image, int $thickness): bool

imagesetthickness() define a espessur para as linhas ao desenhar retângulos, polígonos, arcos, etc. para o valor de thickness em pixels.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

thickness

Espessura, em pixels.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagesetthickness()

<?php
// Cria uma imagem 200x100
$im = imagecreatetruecolor(200, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Fundo branco
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Espessura da linha de 5 pixels
imagesetthickness($im, 5);

// Desenha o retângulo
imagerectangle($im, 14, 14, 185, 85, $black);

// Mostra no navegador
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagesetthickness()


Define a imagem de ladrilho para preenchimento

  • « imagesetthickness
  • imagestring »
  • PHP Manual
  • Funções de GD e Image
  • Define a imagem de ladrilho para preenchimento

imagesettile

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesettile — Define a imagem de ladrilho para preenchimento

Descrição

imagesettile(GdImage $image, GdImage $tile): bool

imagesettile() define a imagem de ladrilho para ser usada por todas as funções de preenchimento de região (tal como imagefill() e imagefilledpolygon()) ao preencher com a cor especial IMG_COLOR_TILED.

O ladrilho é uma imagem usada para preencher uma área com um padrão repetido. Qualquer imagem GD pode ser usada como ladrilho, e ao definir o índice de cor transparente da imagem de ladrilho com imagecolortransparent(), permite-se que certas partes da área subjacente apareçam.

Cuidado

Não é necessário tomar ações especiais ao terminar de usar uma imagem de ladrilho, mas se ela for destruída, a cor IMG_COLOR_TILED não poderá ser usada até que uma nova imagem de ladrilho seja definida!

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

tile

O objeto imagem a ser usado como ladrilho.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | image e tile agora esperam instâncias GdImage; anteriormente, resources eram esperados.

Exemplos

Exemplo #1 Exemplo de imagesettile()

<?php
// Carrega uma imagem externa
$zend = imagecreatefromgif('./zend.gif');

// Cria uma imagem 200x200
$im = imagecreatetruecolor(200, 200);

// Define o ladrilho
imagesettile($im, $zend);

// Faz a imagem se repetir
imagefilledrectangle($im, 0, 0, 199, 199, IMG_COLOR_TILED);

// Mostra a imagem no navegador
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($zend);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagesettile()


Desenha uma string na horizontal

  • « imagesettile
  • imagestringup »
  • PHP Manual
  • Funções de GD e Image
  • Desenha uma string na horizontal

imagestring

(PHP 4, PHP 5, PHP 7, PHP 8)

imagestring — Desenha uma string na horizontal

Descrição

imagestring(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $string,
int $color
): bool

Desenha uma string nas coordenadas informadas.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

font

Pode ser 1, 2, 3, 4, 5 para as fontes nativas na codificação latin2 (onde números maiores correspondem a fontes maiores) ou uma instância de GdFont, retornada por imageloadfont().

x

Coordenada x do canto superior esquerdo.

y

Coordenada y do canto superior esquerdo.

string

A string a ser desenhada.

color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro font agora aceita uma instância de GdFont ou um int; anteriormente, apenas int era aceito.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagestring()

<?php
// Cria uma imagem 100*30
$im = imagecreate(100, 30);

// Fundo branco e texto azul
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// Desenha o texto no canto superior esquerdo
imagestring($im, 5, 0, 0, 'Hello world!', $textcolor);

// Mostra a imagem
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagestring()

Veja Também

  • imagestringup() - Desenha uma string na vertical
  • imageloadfont() - Carrega uma nova fonte
  • imagettftext() - Escreve texto na imagem usando fontes TrueType


Desenha uma string na vertical

  • « imagestring
  • imagesx »
  • PHP Manual
  • Funções de GD e Image
  • Desenha uma string na vertical

imagestringup

(PHP 4, PHP 5, PHP 7, PHP 8)

imagestringup — Desenha uma string na vertical

Descrição

imagestringup(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $string,
int $color
): bool

Desenha uma string na vertical nas coordenadas informadas.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

font

Pode ser 1, 2, 3, 4, 5 para as fontes nativas na codificação latin2 (onde números maiores correspondem a fontes maiores) ou uma instância de GdFont, retornada por imageloadfont().

x

Coordenada x do canto inferior esquerdo.

y

Coordenada y do canto inferior esquerdo.

string

O texto a ser desenhado.

color

Um identificador de cor criado com imagecolorallocate().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro font agora aceita uma instância de GdFont ou um int; anteriormente, apenas int era aceito.
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Exemplo de imagestringup()

<?php
// cria uma imagem 100*100
$im = imagecreatetruecolor(100, 100);

// Desenha o texto
$textcolor = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
imagestringup($im, 3, 40, 80, 'gd library', $textcolor);

// Grava a imagem
imagepng($im, './stringup.png');
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagestringup()

Veja Também

  • imagestring() - Desenha uma string na horizontal
  • imageloadfont() - Carrega uma nova fonte


Obtém a largura da imagem

  • « imagestringup
  • imagesy »
  • PHP Manual
  • Funções de GD e Image
  • Obtém a largura da imagem

imagesx

(PHP 4, PHP 5, PHP 7, PHP 8)

imagesx — Obtém a largura da imagem

Descrição

imagesx(GdImage $image): int

Retorna a largura do objeto informado em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

Valor Retornado

Retorna a largura de image.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Usando imagesx()

<?php

// cria uma imagem de 300*200
$img = imagecreatetruecolor(300, 200);

echo imagesx($img); // 300

?>

Veja Também

  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras
  • getimagesize() - Obtém o tamanho de uma imagem
  • imagesy() - Obtém a altura da imagem


Obtém a altura da imagem

  • « imagesx
  • imagetruecolortopalette »
  • PHP Manual
  • Funções de GD e Image
  • Obtém a altura da imagem

imagesy

(PHP 4, PHP 5, PHP 7, PHP 8)

imagesy — Obtém a altura da imagem

Descrição

imagesy(GdImage $image): int

Retorna a altura do objeto informado em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

Valor Retornado

Retorna a altura de image.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Usando imagesy()

<?php

// create a 300*200 image
$img = imagecreatetruecolor(300, 200);

echo imagesy($img); // 200

?>

Veja Também

  • imagecreatetruecolor() - Cria uma nova imagem em cores verdadeiras
  • getimagesize() - Obtém o tamanho de uma imagem
  • imagesx() - Obtém a largura da imagem


Converte uma imagem em cores verdadeiras em uma imagem de paleta

  • « imagesy
  • imagettfbbox »
  • PHP Manual
  • Funções de GD e Image
  • Converte uma imagem em cores verdadeiras em uma imagem de paleta

imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagetruecolortopalette — Converte uma imagem em cores verdadeiras em uma imagem de paleta

Descrição

imagetruecolortopalette(GdImage $image, bool $dither, int $num_colors): bool

imagetruecolortopalette() converte uma imagem em cores verdadeiras em uma imagem de paleta. O código para esta função foi originalmente escrito a partir do código da biblioteca do Independent JPEG Group, que é excelente. O código foi modificado para presevar o máximo possível de informação do canal alfa na paleta resultante, além de preservar as cores da melhor maneira possível. Isto não funciona tão bem quanto esperado. Normalmente é melhor simplesmente produzir uma imagem em cores verdadeiras, o que garante a qualidade de saída mais alta possível.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

dither

Indica se a imagem deve ser pontilhada - se for true o pontilhamento será usado, o que resultará em uma imagem mais salpicada mas com uma melhor aproximação de cores.

num_colors

Define o número máximo de cores que deve sem mantido na paleta.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Convertendo uma imagem em cores verdadeiras em uma imagem de paleta

<?php
// Cria uma nova imagem em cores verdadeiras
$im = imagecreatetruecolor(100, 100);

// Converte para paleta sem pontilhamento e com 255 cores
imagetruecolortopalette($im, false, 255);

// Grava a imagem
imagepng($im, './paletteimage.png');
imagedestroy($im);
?>


Fornece a os limites retangulares de um texto usando fontes TrueType

  • « imagetruecolortopalette
  • imagettftext »
  • PHP Manual
  • Funções de GD e Image
  • Fornece a os limites retangulares de um texto usando fontes TrueType

imagettfbbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imagettfbbox — Fornece a os limites retangulares de um texto usando fontes TrueType

Descrição

imagettfbbox(
float $size,
float $angle,
string $font_filename,
string $string,
array $options = []
): array|false

Esta função calcula e retorna os limites retangulares em pixels para um texto TrueType.

Nota:

Antes do PHP 8.0.0, imageftbbox() era uma variante estendida de imagettfbbox() que adicionalmente suportava o parâmetro extrainfo. A partir do PHP 8.0.0, imagettfbbox() é um apelido de imageftbbox().

Parâmetros

size

O tamanho da fonte em pontos.

angle

Ângulo em graus em que a string será medida.

fontfile

O caminho para a fonte TrueType que será usada.

Dependendo de qual versão da biblioteca GD o PHP estiver usando, quando fontfile não começar com uma / então .ttf será adicionado ao nome do arquivo e a biblioteca tentará procurá-lo em um caminho de fontes definido pela biblioteca.

Ao usar versões da biblioteca GD anteriores à versão 2.0.18, um caractere espaço, em vez de um ponto-e-vírgula, foi usado como 'separador de caminho' para diferentes arquivos de fonte. O uso não intencional desse recurso resultará na mensagem de aviso: Warning: Could not find/open font. Para essas versões afetadas, a única solução é mover a fonte para um caminho que não contenha espaços.

Em muitos casos em que uma fonte reside no mesmo diretório que o script que a usa, o truque a seguir aliviará qualquer problema de inclusão.

<?php
// Define a variável de ambiente GDFONTPATH
putenv('GDFONTPATH=' . realpath('.'));

// Define a fonte a ser usada (observe a ausência da extensão .ttf)
$font = 'SomeFont';
?>

Nota:

Note que open_basedir não se aplica a fontfile.

string

A string a ser medida.

Valor Retornado

imagettfbbox() retorna um array com 8 elementos representando quatro pontos que definem os limites retangulares do texto em caso de sucesso e false em caso de erro.

key | contents
0 | canto inferior esquerdo, posição X
1 | canto inferior esquerdo, posição Y
2 | canto inferior direito, posição X
3 | canto inferior direito, posição Y
4 | canto superior direito, posição X
5 | canto superior direito, posição Y
6 | canto superior esquerdo, posição X
7 | canto superior esquerdo, posição Y

Os pontos são relativos ao texto, independente do parâmetro angle, portanto "superior esquerdo" significa no canto superior esquerdo ao ver o texto na horizontal.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro options foi adicionado.

Exemplos

Exemplo #1 Exemplo de imagettfbbox()

<?php
// Cria uma imagem 300x150
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Fundo branco
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// Caminho para o arquivo da fonte
$font = './arial.ttf';

// Primeiro é criado o retângulo limite para o primeiro texto
$bbox = imagettfbbox(10, 45, $font, 'Powered by PHP ' . phpversion());

// Estas são as coordenadas de X e Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Escreve
imagettftext($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());

// O próximo retângulo limite é criado para o segundo texto
$bbox = imagettfbbox(10, 45, $font, 'and Zend Engine ' . zend_version());

// Define as coordenadas de forma que fique próxima ao primeiro texto
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Escreve
imagettftext($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());

// Mostra no navegador
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Notas

Nota: Esta função só estará disponível se o PHP for compilado com suporte ao freetype (--with-freetype-dir=DIR).

Veja Também

  • imagettftext() - Escreve texto na imagem usando fontes TrueType
  • imageftbbox() - Fornece a caixa limite de um texto usando fontes via freetype2


Escreve texto na imagem usando fontes TrueType

  • « imagettfbbox
  • imagetypes »
  • PHP Manual
  • Funções de GD e Image
  • Escreve texto na imagem usando fontes TrueType

imagettftext

(PHP 4, PHP 5, PHP 7, PHP 8)

imagettftext — Escreve texto na imagem usando fontes TrueType

Descrição

imagettftext(
GdImage $image,
float $size,
float $angle,
int $x,
int $y,
int $color,
string $font_filename,
string $text,
array $options = []
): array|false

Escreve o texto definido em text na imagem, usando fontes TrueType.

Nota:

Antes do PHP 8.0.0, imagefttext() era uma variante estendida de imagettftext() que adicionalmente suportava o parâmetro extrainfo. A partir do PHP 8.0.0, imagettftext() é um apelido de imagefttext().

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

size

O tamanho da fonte em pontos.

angle

O ângulo em graus, com 0 grau sendo um texto lido da esquerda para a direita. Valores mais altos representam uma rotação no sentido anti-horário. Por exemplo, um valor de 90 resultaria em um texto lido de baixo para cima.

x

A coordenada fornecida por x e y definirá o ponto base do primeiro caractere (aproximadamente o canto inferior esquerdo do caractere). Isto é diferente de imagestring(), onde x e y definem o canto superior esquerdo do primeiro caractere. Por exemplo, "superior esquerdo" é 0, 0.

y

A ordenada y. Define a posição da linha base das fontes, e não a parte mais baixa do caractere.

color

O índica de cor. Usar o valor negativo de um índice de cor tem o efeito de desligar a redução de serrilhado. Consulte imagecolorallocate().

fontfile

O caminho para a fonte TrueType que será usada.

Dependendo de qual versão da biblioteca GD o PHP estiver usando, quando fontfile não começar com uma / então .ttf será adicionado ao nome do arquivo e a biblioteca tentará procurá-lo em um caminho de fontes definido pela biblioteca.

Ao usar versões da biblioteca GD anteriores à versão 2.0.18, um caractere espaço, em vez de um ponto-e-vírgula, foi usado como 'separador de caminho' para diferentes arquivos de fonte. O uso não intencional desse recurso resultará na mensagem de aviso: Warning: Could not find/open font. Para essas versões afetadas, a única solução é mover a fonte para um caminho que não contenha espaços.

Em muitos casos em que uma fonte reside no mesmo diretório que o script que a usa, o truque a seguir aliviará qualquer problema de inclusão.

<?php
// Define a variável de ambiente GDFONTPATH
putenv('GDFONTPATH=' . realpath('.'));

// Define a fonte a ser usada (observe a ausência da extensão .ttf)
$font = 'SomeFont';
?>

Nota:

Note que open_basedir não se aplica a fontfile.

text

A string de texto em codificação UTF-8.

Pode incluir referências a caracteres numéricos decimais (na forma: &#8364;) para acessar caracteres em uma fonte além da posição 127. O formato hexadecimal (como &#xA9;) é suportado. Strings em codificação UTF-8 pode ser passado diretamente.

Entidades nomeadas, tal como &copy;, não são suportadas. Considere usar html_entity_decode() para decodificar estas entidades nomeadas em strings UTF-8.

Se um caractere usado na string não for suportado pela fonte, um retêngulo vazado substituirá o caractere.

Valor Retornado

Retorna um array com 8 elementos representando quatro pontos que formam o retângulo limite do texto. A ordem dos pontos é inferior esquerdo, inferior direito, superior direito, superior esquerdo. Os pontos são relativos ao texto independente do ângulo, portanto "superior esquerdo" significa o canto superior esquerdo quando o texto é visto na horizontal. Retorna false em caso de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro options foi adicionado.

Exemplos

Exemplo #1 Exemplo de imagettftext()

Este script de exemplo produz um PNG branco de 400x30 pixels, com a palavra "Testing..." em preto (com sombra cinza), na fonte Arial.

<?php
// Define o tipo de conteúdo
header('Content-Type: image/png');

// Cria a imagem
$im = imagecreatetruecolor(400, 30);

// Cria algumas cores
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// O texto a ser desenhado
$text = 'Testing...';
// Substitui o caminho da fonte
$font = 'arial.ttf';

// Adiciona sombra ao texto
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Adiciona o texto
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Usar imagepng() resulta em um texto mais nítido comparado com imagejpeg()
imagepng($im);
imagedestroy($im);
?>

O exemplo acima produzirá algo semelhante a:

Saída do exemplo: imagettftext()

Notas

Nota: Esta função só estará disponível se o PHP for compilado com suporte ao freetype (--with-freetype-dir=DIR).

Veja Também

  • imagettfbbox() - Fornece a os limites retangulares de um texto usando fontes TrueType
  • imagefttext() - Escreve texto em uma imagem usando fontes FreeType 2


Retorna os tipos de imagens suportados pela instalação do PHP

  • « imagettftext
  • imagewbmp »
  • PHP Manual
  • Funções de GD e Image
  • Retorna os tipos de imagens suportados pela instalação do PHP

imagetypes

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

imagetypes — Retorna os tipos de imagens suportados pela instalação do PHP

Descrição

imagetypes(): int

Retorna os tipos de imagens suportados pela instalação atual do PHP.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um campo de bits correspondente aos formatos de imagem suportados pela versão da GD linkada no PHP. Os seguintes bits são retornados: IMG_AVIF | IMG_BMP | IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM | IMG_WEBP.

Registro de Alterações

Versão | Descrição
8.1.0 | IMG_AVIF adicionado.
7.2.0 | IMG_BMP adicionado.
7.0.10 | IMG_WEBP adicionado.

Exemplos

Exemplo #1 Verificando o suporte a PNG

<?php
if (imagetypes() & IMG_PNG) {
echo "O suporte a PNG está ativado";
}
?>

Veja Também

  • gd_info() - Obtém informações sobre a biblioteca GD instalada atualmente


Envia a imagem para o navegador ou para um arquivo

  • « imagetypes
  • imagewebp »
  • PHP Manual
  • Funções de GD e Image
  • Envia a imagem para o navegador ou para um arquivo

imagewbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagewbmp — Envia a imagem para o navegador ou para um arquivo

Descrição

imagewbmp(GdImage $image, resource|string|null $file = null, ?int $foreground_color = null): bool

imagewbmp() mostra ou grava uma versão WBMP da imagem informada em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

file

O caminho ou um recurso de stream aberto (que será fechado automaticamente após o retorno desta função) para salvar o arquivo. Se não for definido ou for null, o stream da imagem bruta será enviado diretamente.

foreground_color

Pode-se definir a cor de primeiro plano com este parâmetro, configurando-se um identificador obtido a partir da função imagecolorallocate(). A cor de primeiro plano padrão é preta.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
8.0.0 | foreground_color agora pode ser nulo.

Exemplos

Exemplo #1 Mostrando uma imagem WBMP

<?php
// Cria uma imagem vazia e adiciona texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// Define o cabeçalho de tipo de conteúdo - neste caso image/vnd.wap.wbmp
// Dica: veja image_type_to_mime_type() para tipos de conteúdo
header('Content-Type: image/vnd.wap.wbmp');

// Mostra a imagem
imagewbmp($im);

// Libera a memória
imagedestroy($im);
?>

Exemplo #2 Gravando a imagem WBMP

<?php
// Cria uma imagem vazia e adiciona texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// Grava a imagem
imagewbmp($im, 'simpletext.wbmp');

// Libera a memória
imagedestroy($im);
?>

Exemplo #3 Mostrando a imagem com primeiro plano diferente

<?php
// Cria uma imagem vazia e adiciona texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// Define o cabeçalho de tipo de conteúdo - neste caso image/vnd.wap.wbmp
// Dica: veja image_type_to_mime_type() para tipos de conteúdo
header('Content-Type: image/vnd.wap.wbmp');

// Define uma cor substituta para primeiro plano
$foreground_color = imagecolorallocate($im, 255, 0, 0);

imagewbmp($im, NULL, $foreground_color);

// Libera a memória
imagedestroy($im);
?>

Veja Também

  • image2wbmp() - Envia a imagem para o navegador ou para um arquivo
  • imagepng() - Envia uma imagem PNG para o navegador ou arquivo
  • imagegif() - Envia a imagem para o navegador ou para um arquivo
  • imagejpeg() - Envia a imagem para o navegador ou para um arquivo
  • imagetypes() - Retorna os tipos de imagens suportados pela instalação do PHP


Mostra uma imagem WebP no navegador ou grava em arquivo

  • « imagewbmp
  • imagexbm »
  • PHP Manual
  • Funções de GD e Image
  • Mostra uma imagem WebP no navegador ou grava em arquivo

imagewebp

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

imagewebp — Mostra uma imagem WebP no navegador ou grava em arquivo

Descrição

imagewebp(GdImage $image, resource|string|null $file = null, int $quality = -1): bool

Motra ou grava uma versão WebP da imagem informada em image.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

file

O caminho ou um recurso de stream aberto (que será fechado automaticamente após o retorno desta função) para salvar o arquivo. Se não for definido ou for null, o stream da imagem bruta será enviado diretamente.

quality

quality varia de 0 (pior qualidade, arquivo menor) a 100 (melhor qualidade, arquivo maior).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.

Exemplos

Exemplo #1 Gravando um arquivo WebP

<?php
// Cria uma imagem vazia e adiciona texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5, 'WebP with PHP', $text_color);

// Grava a imagem
imagewebp($im, 'php.webp');

// Libera a memória
imagedestroy($im);
?>


Mostra uma imagem XBM em um navegador ou grava em arquivo

  • « imagewebp
  • iptcembed »
  • PHP Manual
  • Funções de GD e Image
  • Mostra uma imagem XBM em um navegador ou grava em arquivo

imagexbm

(PHP 5, PHP 7, PHP 8)

imagexbm — Mostra uma imagem XBM em um navegador ou grava em arquivo

Descrição

imagexbm(GdImage $image, ?string $filename, ?int $foreground_color = null): bool

Mostra ou grava uma versão XBM da imagem informada em image.

Nota: imagexbm() não aplica nenhum deslocamento, portanto a largura da imagem deve ser um múltiplo de 8. Esta restrição não se aplica mais a partir do PHP 7.0.9.

Parâmetros

image

Um objeto GdImage, retornado por uma das funções de criação de imagem, como imagecreatetruecolor().

filename

O caminho do arquivo a ser gravado, fornecido como string. Se for null, o fluxo bruto da imagem será enviado diretamente.

O nome de arquivo em filename (sem a extensão .xbm) também é usado para o identificadores C do XBM, onde caracteres não alfanuméricos da localidade atual são substituídos por sublinhados. Se filename for definido para null, image é usado para construir os identificadores C.

foreground_color

Pode-se definir a cor de primeiro plano com este parâmetro configurando um identificador obtido a partir da função imagecolorallocate(). A cor de primeir plano padrão é preta. Todas as outras cores são tratadas como cores de fundo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro image agora espera uma instância de GdImage; anteriormente, um resource gd válido era esperado.
8.0.0 | foreground_color agora pode ser nulo.
8.0.0 | O quarto parâmetro, que não era usado, foi removido.

Exemplos

Exemplo #1 Gravando um arquivo XBM

<?php
// Cria uma imagem vazia e adiciona texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// Grava a imagem
imagexbm($im, 'simpletext.xbm');

// Libera a memória
imagedestroy($im);
?>

Exemplo #2 Saving an XBM file with a different foreground color

<?php
// Cria uma imagem vazia e adiciona texto
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);

// Define uma cor substituta para primeiro plano
$foreground_color = imagecolorallocate($im, 255, 0, 0);

// Grava a imagem
imagexbm($im, NULL, $foreground_color);

// Libera a memória
imagedestroy($im);
?>


Incorpora dados binários IPTC em uma imagem JPEG

  • « imagexbm
  • iptcparse »
  • PHP Manual
  • Funções de GD e Image
  • Incorpora dados binários IPTC em uma imagem JPEG

iptcembed

(PHP 4, PHP 5, PHP 7, PHP 8)

iptcembed — Incorpora dados binários IPTC em uma imagem JPEG

Descrição

iptcembed(string $iptc_data, string $filename, int $spool = 0): string|bool

Incorpora dados binários IPTC em uma imagem JPEG.

Parâmetros

iptc_data

Os dados a serem escritos.

filename

Caminho para a imagem JPEG.

spool

Opção de enfileiramento. Se esta opção for menor que 2, o JPEG será retornado como uma string. Caso contrário será mostrado em STDOUT.

Valor Retornado

Se spool for menor que 2, o JPEG será retornado, ou false em caso de falha. Caso contrário, retorna true se bem sucedido ou false em caso de falha.

Exemplos

Exemplo #1 Incorporando dados IPTC em um JPEG

<?php

// função iptc_make_tag() por Thies C. Arntzen
function iptc_make_tag($rec, $data, $value)
{
$length = strlen($value);
$retval = chr(0x1C) . chr($rec) . chr($data);

if($length < 0x8000)
{
$retval .= chr($length >> 8) . chr($length & 0xFF);
}
else
{
$retval .= chr(0x80) .
chr(0x04) .
chr(($length >> 24) & 0xFF) .
chr(($length >> 16) & 0xFF) .
chr(($length >> 8) & 0xFF) .
chr($length & 0xFF);
}

return $retval . $value;
}

// Caminho para o arquivo JPEG
$path = './phplogo.jpg';

// Define as etiquetas IPTC
$iptc = array(
'2#120' => 'Test image',
'2#116' => 'Copyright 2008-2009, The PHP Group'
);

// Converte as etiquetas IPTC em código binário
$data = '';

foreach($iptc as $tag => $string)
{
$tag = substr($tag, 2);
$data .= iptc_make_tag(2, $tag, $string);
}

// Incorpora os dados IPTC
$content = iptcembed($data, $path);

// Grava os novos dados de imagem no arquivo.
$fp = fopen($path, "wb");
fwrite($fp, $content);
fclose($fp);
?>

Notas

Nota:

Esta função não requer a biblioteca de imagens GD.


Interpreta um bloco IPTC binário em etiquetas simples

  • « iptcembed
  • jpeg2wbmp »
  • PHP Manual
  • Funções de GD e Image
  • Interpreta um bloco IPTC binário em etiquetas simples

iptcparse

(PHP 4, PHP 5, PHP 7, PHP 8)

iptcparse — Interpreta um bloco IPTC binário em etiquetas simples

Descrição

iptcparse(string $iptc_block): array|false

Interpreta um bloco » IPTC em etiquetas simples.

Parâmetros

iptc_block

Um bloco binário IPTC.

Valor Retornado

Retorna um array usando o marcador de etiquetas como um índice e o valor como o valor. Retorna false em caso de erro ou se nenhum dado IPTC for encontrado.

Exemplos

Exemplo #1 iptcparse() usado junto com getimagesize()

<?php
$size = getimagesize('./test.jpg', $info);
if(isset($info['APP13']))
{
$iptc = iptcparse($info['APP13']);
var_dump($iptc);
}
?>

Notas

Nota:

Esta função não requer a biblioteca de imagens GD.


Converte arquivo de imagem JPEG para WBMP

  • « iptcparse
  • png2wbmp »
  • PHP Manual
  • Funções de GD e Image
  • Converte arquivo de imagem JPEG para WBMP

jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

jpeg2wbmp — Converte arquivo de imagem JPEG para WBMP

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.2.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

jpeg2wbmp(
string $jpegname,
string $wbmpname,
int $dest_height,
int $dest_width,
int $threshold
): bool

Converte um arquivo JPEG em um WBMP.

Parâmetros

jpegname

Caminho para o arquivo JPEG.

wbmpname

Caminho para o arquivo WBMP de destino.

dest_height

Altura da imagem de destino.

dest_width

Largura da imagem de destino.

threshold

Valor de limite, entre 0 e 8 (inclusive).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Exemplos

Exemplo #1 Exemplo de jpeg2wbmp()

<?php
// Caminho para o JPEG alvo
$path = './test.jpg';

// Obtém o tamanho da imagem
$image = getimagesize($path);

// Converte a imagem
jpeg2wbmp($path, './test.wbmp', $image[1], $image[0], 5);
?>

Veja Também

  • png2wbmp() - Converte arquivo de imagem PNG em WBMP


Converte arquivo de imagem PNG em WBMP

  • « jpeg2wbmp
  • GdImage »
  • PHP Manual
  • Funções de GD e Image
  • Converte arquivo de imagem PNG em WBMP

png2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

png2wbmp — Converte arquivo de imagem PNG em WBMP

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.2.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

png2wbmp(
string $pngname,
string $wbmpname,
int $dest_height,
int $dest_width,
int $threshold
): bool

Converte um arquivo PNG em um WBMP.

Parâmetros

pngname

Caminho para o arquivo PNG.

wbmpname

Caminho para o arquivo WBMP de destino.

dest_height

Altura da imagem de destino.

dest_width

Largura da imagem de destino.

threshold

Valor de limite, entre 0 e 8 (inclusive).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Cuidado

Entretanto, se a biblioteca libgd falhar ao gerar a imagem, esta função retornará true.

Exemplos

Exemplo #1 Exemplo de png2wbmp()

<?php
// Caminho para o PNG alvo
$path = './test.png';

// Obtém o tamanho da imagem
$image = getimagesize($path);

// Converte a imagem
png2wbmp($path, './test.wbmp', $image[1], $image[0], 7);
?>

Veja Também

  • jpeg2wbmp() - Converte arquivo de imagem JPEG para WBMP


A classe GdImage

(PHP 8)

Introdução

Um classe completamente opaca que substitui recursos gd a partir do PHP 8.0.0.

Resumo da classe

final class GdImage {
}


A classe GdFont

(PHP 8 >= 8.1.0)

Introdução

Um classe completamente opaca que substitui recursos gd font a partir do PHP 8.1.0.

Resumo da classe

final class GdFont {
}


Gmagick

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
  • Constantes pré-definidas
  • Exemplos
  • Gmagick — The Gmagick class
    • Gmagick::addimage — Adds new image to Gmagick object image list
    • Gmagick::addnoiseimage — Adds random noise to the image
    • Gmagick::annotateimage — Annotates an image with text
    • Gmagick::blurimage — Adds blur filter to image
    • Gmagick::borderimage — Surrounds the image with a border
    • Gmagick::charcoalimage — Simulates a charcoal drawing
    • Gmagick::chopimage — Removes a region of an image and trims
    • Gmagick::clear — Clears all resources associated to Gmagick object
    • Gmagick::commentimage — Adds a comment to your image
    • Gmagick::compositeimage — Composite one image onto another
    • Gmagick::__construct — The Gmagick constructor
    • Gmagick::cropimage — Extracts a region of the image
    • Gmagick::cropthumbnailimage — Creates a crop thumbnail
    • Gmagick::current — The current purpose
    • Gmagick::cyclecolormapimage — Displaces an image's colormap
    • Gmagick::deconstructimages — Returns certain pixel differences between images
    • Gmagick::despeckleimage — The despeckleimage purpose
    • Gmagick::destroy — The destroy purpose
    • Gmagick::drawimage — Renders the GmagickDraw object on the current image
    • Gmagick::edgeimage — Enhance edges within the image
    • Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect
    • Gmagick::enhanceimage — Improves the quality of a noisy image
    • Gmagick::equalizeimage — Equalizes the image histogram
    • Gmagick::flipimage — Creates a vertical mirror image
    • Gmagick::flopimage — Creates a horizontal mirror image
    • Gmagick::frameimage — Adds a simulated three-dimensional border
    • Gmagick::gammaimage — Gamma-corrects an image
    • Gmagick::getcopyright — Returns the GraphicsMagick API copyright as a string
    • Gmagick::getfilename — The filename associated with an image sequence
    • Gmagick::getimagebackgroundcolor — Returns the image background color
    • Gmagick::getimageblueprimary — Returns the chromaticy blue primary point
    • Gmagick::getimagebordercolor — Returns the image border color
    • Gmagick::getimagechanneldepth — Gets the depth for a particular image channel
    • Gmagick::getimagecolors — Returns the color of the specified colormap index
    • Gmagick::getimagecolorspace — Gets the image colorspace
    • Gmagick::getimagecompose — Returns the composite operator associated with the image
    • Gmagick::getimagedelay — Gets the image delay
    • Gmagick::getimagedepth — Gets the depth of the image
    • Gmagick::getimagedispose — Gets the image disposal method
    • Gmagick::getimageextrema — Gets the extrema for the image
    • Gmagick::getimagefilename — Returns the filename of a particular image in a sequence
    • Gmagick::getimageformat — Returns the format of a particular image in a sequence
    • Gmagick::getimagegamma — Gets the image gamma
    • Gmagick::getimagegreenprimary — Returns the chromaticy green primary point
    • Gmagick::getimageheight — Returns the image height
    • Gmagick::getimagehistogram — Gets the image histogram
    • Gmagick::getimageindex — Gets the index of the current active image
    • Gmagick::getimageinterlacescheme — Gets the image interlace scheme
    • Gmagick::getimageiterations — Gets the image iterations
    • Gmagick::getimagematte — Check if the image has a matte channel
    • Gmagick::getimagemattecolor — Returns the image matte color
    • Gmagick::getimageprofile — Returns the named image profile
    • Gmagick::getimageredprimary — Returns the chromaticity red primary point
    • Gmagick::getimagerenderingintent — Gets the image rendering intent
    • Gmagick::getimageresolution — Gets the image X and Y resolution
    • Gmagick::getimagescene — Gets the image scene
    • Gmagick::getimagesignature — Generates an SHA-256 message digest
    • Gmagick::getimagetype — Gets the potential image type
    • Gmagick::getimageunits — Gets the image units of resolution
    • Gmagick::getimagewhitepoint — Returns the chromaticity white point
    • Gmagick::getimagewidth — Returns the width of the image
    • Gmagick::getpackagename — Returns the GraphicsMagick package name
    • Gmagick::getquantumdepth — Returns the Gmagick quantum depth as a string
    • Gmagick::getreleasedate — Returns the GraphicsMagick release date as a string
    • Gmagick::getsamplingfactors — Gets the horizontal and vertical sampling factor
    • Gmagick::getsize — Returns the size associated with the Gmagick object
    • Gmagick::getversion — Returns the GraphicsMagick API version
    • Gmagick::hasnextimage — Checks if the object has more images
    • Gmagick::haspreviousimage — Checks if the object has a previous image
    • Gmagick::implodeimage — Creates a new image as a copy
    • Gmagick::labelimage — Adds a label to an image
    • Gmagick::levelimage — Adjusts the levels of an image
    • Gmagick::magnifyimage — Scales an image proportionally 2x
    • Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image
    • Gmagick::medianfilterimage — Applies a digital filter
    • Gmagick::minifyimage — Scales an image proportionally to half its size
    • Gmagick::modulateimage — Control the brightness, saturation, and hue
    • Gmagick::motionblurimage — Simulates motion blur
    • Gmagick::newimage — Creates a new image
    • Gmagick::nextimage — Moves to the next image
    • Gmagick::normalizeimage — Enhances the contrast of a color image
    • Gmagick::oilpaintimage — Simulates an oil painting
    • Gmagick::previousimage — Move to the previous image in the object
    • Gmagick::profileimage — Adds or removes a profile from an image
    • Gmagick::quantizeimage — Analyzes the colors within a reference image
    • Gmagick::quantizeimages — The quantizeimages purpose
    • Gmagick::queryfontmetrics — Returns an array representing the font metrics
    • Gmagick::queryfonts — Returns the configured fonts
    • Gmagick::queryformats — Returns formats supported by Gmagick
    • Gmagick::radialblurimage — Radial blurs an image
    • Gmagick::raiseimage — Creates a simulated 3d button-like effect
    • Gmagick::read — Reads image from filename
    • Gmagick::readimage — Reads image from filename
    • Gmagick::readimageblob — Reads image from a binary string
    • Gmagick::readimagefile — The readimagefile purpose
    • Gmagick::reducenoiseimage — Smooths the contours of an image
    • Gmagick::removeimage — Removes an image from the image list
    • Gmagick::removeimageprofile — Removes the named image profile and returns it
    • Gmagick::resampleimage — Resample image to desired resolution
    • Gmagick::resizeimage — Scales an image
    • Gmagick::rollimage — Offsets an image
    • Gmagick::rotateimage — Rotates an image
    • Gmagick::scaleimage — Scales the size of an image
    • Gmagick::separateimagechannel — Separates a channel from the image
    • Gmagick::setCompressionQuality — Sets the object's default compression quality
    • Gmagick::setfilename — Sets the filename before you read or write the image
    • Gmagick::setimagebackgroundcolor — Sets the image background color
    • Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point
    • Gmagick::setimagebordercolor — Sets the image border color
    • Gmagick::setimagechanneldepth — Sets the depth of a particular image channel
    • Gmagick::setimagecolorspace — Sets the image colorspace
    • Gmagick::setimagecompose — Sets the image composite operator
    • Gmagick::setimagedelay — Sets the image delay
    • Gmagick::setimagedepth — Sets the image depth
    • Gmagick::setimagedispose — Sets the image disposal method
    • Gmagick::setimagefilename — Sets the filename of a particular image in a sequence
    • Gmagick::setimageformat — Sets the format of a particular image
    • Gmagick::setimagegamma — Sets the image gamma
    • Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point
    • Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter
    • Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image
    • Gmagick::setimageiterations — Sets the image iterations
    • Gmagick::setimageprofile — Adds a named profile to the Gmagick object
    • Gmagick::setimageredprimary — Sets the image chromaticity red primary point
    • Gmagick::setimagerenderingintent — Sets the image rendering intent
    • Gmagick::setimageresolution — Sets the image resolution
    • Gmagick::setimagescene — Sets the image scene
    • Gmagick::setimagetype — Sets the image type
    • Gmagick::setimageunits — Sets the image units of resolution
    • Gmagick::setimagewhitepoint — Sets the image chromaticity white point
    • Gmagick::setsamplingfactors — Sets the image sampling factors
    • Gmagick::setsize — Sets the size of the Gmagick object
    • Gmagick::shearimage — Creating a parallelogram
    • Gmagick::solarizeimage — Applies a solarizing effect to the image
    • Gmagick::spreadimage — Randomly displaces each pixel in a block
    • Gmagick::stripimage — Strips an image of all profiles and comments
    • Gmagick::swirlimage — Swirls the pixels about the center of the image
    • Gmagick::thumbnailimage — Changes the size of an image
    • Gmagick::trimimage — Remove edges from the image
    • Gmagick::write — Sinônimo de Gmagick::writeimage
    • Gmagick::writeimage — Writes an image to the specified filename
  • GmagickDraw — The GmagickDraw class
    • GmagickDraw::annotate — Draws text on the image
    • GmagickDraw::arc — Draws an arc
    • GmagickDraw::bezier — Draws a bezier curve
    • GmagickDraw::ellipse — Draws an ellipse on the image
    • GmagickDraw::getfillcolor — Returns the fill color
    • GmagickDraw::getfillopacity — Returns the opacity used when drawing
    • GmagickDraw::getfont — Returns the font
    • GmagickDraw::getfontsize — Returns the font pointsize
    • GmagickDraw::getfontstyle — Returns the font style
    • GmagickDraw::getfontweight — Returns the font weight
    • GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines
    • GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines
    • GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines
    • GmagickDraw::gettextdecoration — Returns the text decoration
    • GmagickDraw::gettextencoding — Returns the code set used for text annotations
    • GmagickDraw::line — Draws a line
    • GmagickDraw::point — Draws a point
    • GmagickDraw::polygon — Draws a polygon
    • GmagickDraw::polyline — Draws a polyline
    • GmagickDraw::rectangle — Draws a rectangle
    • GmagickDraw::rotate — Applies the specified rotation to the current coordinate space
    • GmagickDraw::roundrectangle — Draws a rounded rectangle
    • GmagickDraw::scale — Adjusts the scaling factor
    • GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects
    • GmagickDraw::setfillopacity — The setfillopacity purpose
    • GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text
    • GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text
    • GmagickDraw::setfontstyle — Sets the font style to use when annotating with text
    • GmagickDraw::setfontweight — Sets the font weight
    • GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines
    • GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines
    • GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines
    • GmagickDraw::settextdecoration — Specifies a decoration
    • GmagickDraw::settextencoding — Specifies the text code set
  • GmagickPixel — The GmagickPixel class
    • GmagickPixel::__construct — The GmagickPixel constructor
    • GmagickPixel::getcolor — Returns the color
    • GmagickPixel::getcolorcount — Returns the color count associated with this color
    • GmagickPixel::getcolorvalue — Gets the normalized value of the provided color channel
    • GmagickPixel::setcolor — Sets the color
    • GmagickPixel::setcolorvalue — Sets the normalized value of one of the channels


Introdução

Gmagick is a php extension to create, modify and obtain meta information of images using the GraphicsMagick API.

GraphicsMagick prides itself as the swiss army knife of image processing. It works with over 88 major formats including important formats like DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM, and TIFF.

Gmagick consists of a main Gmagick class, a GmagickDraw class which is in effect a drawing wand and a GmagickPixel class of which instances represent a single pixel of an image (color, opacity).


Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Configurações em Execução


Dependências

This extension works best with GraphicsMagick version 1.4+. Gmagick should work with earlier versions up to GraphicsMagick 1.2.6 but some features and formats are not supported for these versions. Windows version of GraphicsMagick is available from the GraphicsMagick website. To read about the difference between ImageMagick and GraphicsMagick, check this out: » FAQ .


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/gmagick.

Nota: The official name of this extension is gmagick.

For Windows, the build of the Gmagick extension is available » here


  • « Instalação
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Configurações em Execução

Configurações em Execução

Esta extensão não possui diretivas de configuração definidas no php.ini.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Colortype constants
Gmagick::COLOR_BLACK (int)
Black
Gmagick::COLOR_BLUE (int)
Blue
Gmagick::COLOR_CYAN (int)
Cyan
Gmagick::COLOR_GREEN (int)
Green
Gmagick::COLOR_RED (int)
Red
Gmagick::COLOR_YELLOW (int)
Yellow
Gmagick::COLOR_MAGENTA (int)
Magenta
Gmagick::COLOR_OPACITY (int)
Opacity
Gmagick::COLOR_ALPHA (int)
Alpha
Gmagick::COLOR_FUZZ (int)
Fuzz
Composite Operator Constants
Gmagick::COMPOSITE_DEFAULT (int)
The default composite operator
Gmagick::COMPOSITE_UNDEFINED (int)
Undefined composite operator
Gmagick::COMPOSITE_NO (int)
No composite operator defined
Gmagick::COMPOSITE_ADD (int)
The result of image + image
Gmagick::COMPOSITE_ATOP (int)
The result is the same shape as image, with composite image obscuring image where the image shapes overlap
Gmagick::COMPOSITE_BLEND (int)
Blends the image
Gmagick::COMPOSITE_BUMPMAP (int)
The same as COMPOSITE_MULTIPLY, except the source is converted to grayscale first.
Gmagick::COMPOSITE_CLEAR (int)
Makes the target image transparent
Gmagick::COMPOSITE_COLORBURN (int)
Darkens the destination image to reflect the source image
Gmagick::COMPOSITE_COLORDODGE (int)
Brightens the destination image to reflect the source image
Gmagick::COMPOSITE_COLORIZE (int)
Colorizes the target image using the composite image
Gmagick::COMPOSITE_COPYBLACK (int)
Copies black from the source to target
Gmagick::COMPOSITE_COPYBLUE (int)
Copies blue from the source to target
Gmagick::COMPOSITE_COPY (int)
Copies the source image on the target image
Gmagick::COMPOSITE_COPYCYAN (int)
Copies cyan from the source to target
Gmagick::COMPOSITE_COPYGREEN (int)
Copies green from the source to target
Gmagick::COMPOSITE_COPYMAGENTA (int)
Copies magenta from the source to target
Gmagick::COMPOSITE_COPYOPACITY (int)
Copies opacity from the source to target
Gmagick::COMPOSITE_COPYRED (int)
Copies red from the source to target
Gmagick::COMPOSITE_COPYYELLOW (int)
Copies yellow from the source to target
Gmagick::COMPOSITE_DARKEN (int)
Darkens the target image
Gmagick::COMPOSITE_DSTATOP (int)
The part of the destination lying inside of the source is composited over the source and replaces the destination
Gmagick::COMPOSITE_DST (int)
The target is left untouched
Gmagick::COMPOSITE_DSTIN (int)
The parts inside the source replace the target
Gmagick::COMPOSITE_DSTOUT (int)
The parts outside the source replace the target
Gmagick::COMPOSITE_DSTOVER (int)
Target replaces the source
Gmagick::COMPOSITE_DIFFERENCE (int)
Subtracts the darker of the two constituent colors from the lighter
Gmagick::COMPOSITE_DISPLACE (int)
Shifts target image pixels as defined by the source
Gmagick::COMPOSITE_DISSOLVE (int)
Dissolves the source in to the target
Gmagick::COMPOSITE_EXCLUSION (int)
Produces an effect similar to that of Gmagick::COMPOSITE_DIFFERENCE, but appears as lower contrast
Gmagick::COMPOSITE_HARDLIGHT (int)
Multiplies or screens the colors, dependent on the source color value
Gmagick::COMPOSITE_HUE (int)
Modifies the hue of the target as defined by source
Gmagick::COMPOSITE_IN (int)
Composites source into the target
Gmagick::COMPOSITE_LIGHTEN (int)
Lightens the target as defined by source
Gmagick::COMPOSITE_LUMINIZE (int)
Luminizes the target as defined by source
Gmagick::COMPOSITE_MINUS (int)
Subtracts the source from the target
Gmagick::COMPOSITE_MODULATE (int)
Modulates the target brightness, saturation and hue as defined by source
Gmagick::COMPOSITE_MULTIPLY (int)
Multiplies the target to the source
Gmagick::COMPOSITE_OUT (int)
Composites outer parts of the source on the target
Gmagick::COMPOSITE_OVER (int)
Composites source over the target
Gmagick::COMPOSITE_OVERLAY (int)
Overlays the source on the target
Gmagick::COMPOSITE_PLUS (int)
Adds the source to the target
Gmagick::COMPOSITE_REPLACE (int)
Replaces the target with the source
Gmagick::COMPOSITE_SATURATE (int)
Saturates the target as defined by the source
Gmagick::COMPOSITE_SCREEN (int)
The source and destination are complemented and then multiplied and then replace the destination
Gmagick::COMPOSITE_SOFTLIGHT (int)
Darkens or lightens the colors, dependent on the source
Gmagick::COMPOSITE_SRCATOP (int)
The part of the source lying inside of the destination is composited onto the destination
Gmagick::COMPOSITE_SRC (int)
The source is copied to the destination
Gmagick::COMPOSITE_SRCIN (int)
The part of the source lying inside of the destination replaces the destination
Gmagick::COMPOSITE_SRCOUT (int)
The part of the source lying outside of the destination replaces the destination
Gmagick::COMPOSITE_SRCOVER (int)
The source replaces the destination
Gmagick::COMPOSITE_SUBTRACT (int)
Subtract the colors in the source image from the destination image
Gmagick::COMPOSITE_THRESHOLD (int)
The source is composited on the target as defined by source threshold
Gmagick::COMPOSITE_XOR (int)
The part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source
Montage Mode constants
Gmagick::MONTAGEMODE_FRAME (int)
Gmagick::MONTAGEMODE_UNFRAME (int)
Gmagick::MONTAGEMODE_CONCATENATE (int)
Style constants
Gmagick::STYLE_NORMAL (int)
Gmagick::STYLE_ITALIC (int)
Gmagick::STYLE_OBLIQUE (int)
Gmagick::STYLE_ANY (int)
Filter constants
Gmagick::FILTER_UNDEFINED (int)
Gmagick::FILTER_POINT (int)
Gmagick::FILTER_BOX (int)
Gmagick::FILTER_TRIANGLE (int)
Gmagick::FILTER_HERMITE (int)
Gmagick::FILTER_HANNING (int)
Gmagick::FILTER_HAMMING (int)
Gmagick::FILTER_BLACKMAN (int)
Gmagick::FILTER_GAUSSIAN (int)
Gmagick::FILTER_QUADRATIC (int)
Gmagick::FILTER_CUBIC (int)
Gmagick::FILTER_CATROM (int)
Gmagick::FILTER_MITCHELL (int)
Gmagick::FILTER_LANCZOS (int)
Gmagick::FILTER_BESSEL (int)
Gmagick::FILTER_SINC (int)
Image type constants
Gmagick::IMGTYPE_UNDEFINED (int)
Gmagick::IMGTYPE_BILEVEL (int)
Gmagick::IMGTYPE_GRAYSCALE (int)
Gmagick::IMGTYPE_GRAYSCALEMATTE (int)
Gmagick::IMGTYPE_PALETTE (int)
Gmagick::IMGTYPE_PALETTEMATTE (int)
Gmagick::IMGTYPE_TRUECOLOR (int)
Gmagick::IMGTYPE_TRUECOLORMATTE (int)
Gmagick::IMGTYPE_COLORSEPARATION (int)
Gmagick::IMGTYPE_COLORSEPARATIONMATTE (int)
Gmagick::IMGTYPE_OPTIMIZE (int)
Resolution constants
Gmagick::RESOLUTION_UNDEFINED (int)
Gmagick::RESOLUTION_PIXELSPERINCH (int)
Gmagick::RESOLUTION_PIXELSPERCENTIMETER (int)
Compression constants
Gmagick::COMPRESSION_UNDEFINED (int)
Gmagick::COMPRESSION_NO (int)
Gmagick::COMPRESSION_BZIP (int)
Gmagick::COMPRESSION_FAX (int)
Gmagick::COMPRESSION_GROUP4 (int)
Gmagick::COMPRESSION_JPEG (int)
Gmagick::COMPRESSION_JPEG2000 (int)
Gmagick::COMPRESSION_LOSSLESSJPEG (int)
Gmagick::COMPRESSION_LZW (int)
Gmagick::COMPRESSION_RLE (int)
Gmagick::COMPRESSION_ZIP (int)
Paint constants
Gmagick::PAINT_POINT (int)
Gmagick::PAINT_REPLACE (int)
Gmagick::PAINT_FLOODFILL (int)
Gmagick::PAINT_FILLTOBORDER (int)
Gmagick::PAINT_RESET (int)
Gravity constants
Gmagick::GRAVITY_NORTHWEST (int)
Gmagick::GRAVITY_NORTH (int)
Gmagick::GRAVITY_NORTHEAST (int)
Gmagick::GRAVITY_WEST (int)
Gmagick::GRAVITY_CENTER (int)
Gmagick::GRAVITY_EAST (int)
Gmagick::GRAVITY_SOUTHWEST (int)
Gmagick::GRAVITY_SOUTH (int)
Gmagick::GRAVITY_SOUTHEAST (int)
Stretch constants
Gmagick::STRETCH_NORMAL (int)
Gmagick::STRETCH_ULTRACONDENSED (int)
Gmagick::STRETCH_CONDENSED (int)
Gmagick::STRETCH_SEMICONDENSED (int)
Gmagick::STRETCH_SEMIEXPANDED (int)
Gmagick::STRETCH_EXPANDED (int)
Gmagick::STRETCH_EXTRAEXPANDED (int)
Gmagick::STRETCH_ULTRAEXPANDED (int)
Gmagick::STRETCH_ANY (int)
Align constants
Gmagick::ALIGN_UNDEFINED (int)
Gmagick::ALIGN_LEFT (int)
Gmagick::ALIGN_CENTER (int)
Gmagick::ALIGN_RIGHT (int)
Decoration constants
Gmagick::DECORATION_NO (int)
Gmagick::DECORATION_UNDERLINE (int)
Gmagick::DECORATION_OVERLINE (int)
Gmagick::DECORATION_LINETROUGH (int)
Noise constants
Gmagick::NOISE_UNIFORM (int)
Gmagick::NOISE_GAUSSIAN (int)
Gmagick::NOISE_MULTIPLICATIVEGAUSSIAN (int)
Gmagick::NOISE_IMPULSE (int)
Gmagick::NOISE_LAPLACIAN (int)
Gmagick::NOISE_POISSON (int)
Channel constants
Gmagick::CHANNEL_UNDEFINED (int)
Gmagick::CHANNEL_RED (int)
Gmagick::CHANNEL_GRAY (int)
Gmagick::CHANNEL_CYAN (int)
Gmagick::CHANNEL_GREEN (int)
Gmagick::CHANNEL_MAGENTA (int)
Gmagick::CHANNEL_BLUE (int)
Gmagick::CHANNEL_YELLOW (int)
Gmagick::CHANNEL_ALPHA (int)
Gmagick::CHANNEL_OPACITY (int)
Gmagick::CHANNEL_MATTE (int)
Gmagick::CHANNEL_BLACK (int)
Gmagick::CHANNEL_INDEX (int)
Gmagick::CHANNEL_ALL (int)
Metric constants
Gmagick::METRIC_UNDEFINED (int)
Gmagick::METRIC_MEANABSOLUTEERROR (int)
Gmagick::METRIC_MEANSQUAREERROR (int)
Gmagick::METRIC_PEAKABSOLUTEERROR (int)
Gmagick::METRIC_PEAKSIGNALTONOISERATIO (int)
Gmagick::METRIC_ROOTMEANSQUAREDERROR (int)
Pixel constants
Gmagick::PIXEL_CHAR (int)
Gmagick::PIXEL_DOUBLE (int)
Gmagick::PIXEL_FLOAT (int)
Gmagick::PIXEL_INTEGER (int)
Gmagick::PIXEL_LONG (int)
Gmagick::PIXEL_QUANTUM (int)
Gmagick::PIXEL_SHORT (int)
Colorspace constants
Gmagick::COLORSPACE_UNDEFINED (int)
Gmagick::COLORSPACE_RGB (int)
Gmagick::COLORSPACE_GRAY (int)
Gmagick::COLORSPACE_TRANSPARENT (int)
Gmagick::COLORSPACE_OHTA (int)
Gmagick::COLORSPACE_LAB (int)
Gmagick::COLORSPACE_XYZ (int)
Gmagick::COLORSPACE_YCBCR (int)
Gmagick::COLORSPACE_YCC (int)
Gmagick::COLORSPACE_YIQ (int)
Gmagick::COLORSPACE_YPBPR (int)
Gmagick::COLORSPACE_YUV (int)
Gmagick::COLORSPACE_CMYK (int)
Gmagick::COLORSPACE_SRGB (int)
Gmagick::COLORSPACE_HSB (int)
Gmagick::COLORSPACE_HSL (int)
Gmagick::COLORSPACE_HWB (int)
Gmagick::COLORSPACE_REC601LUMA (int)
Gmagick::COLORSPACE_REC709LUMA (int)
Gmagick::COLORSPACE_LOG (int)
Virtual Pixel Method constants
Gmagick::VIRTUALPIXELMETHOD_UNDEFINED (int)
Gmagick::VIRTUALPIXELMETHOD_BACKGROUND (int)
Gmagick::VIRTUALPIXELMETHOD_CONSTANT (int)
Gmagick::VIRTUALPIXELMETHOD_EDGE (int)
Gmagick::VIRTUALPIXELMETHOD_MIRROR (int)
Gmagick::VIRTUALPIXELMETHOD_TILE (int)
Gmagick::VIRTUALPIXELMETHOD_TRANSPARENT (int)
Preview constants
Gmagick::PREVIEW_UNDEFINED (int)
Gmagick::PREVIEW_ROTATE (int)
Gmagick::PREVIEW_SHEAR (int)
Gmagick::PREVIEW_ROLL (int)
Gmagick::PREVIEW_HUE (int)
Gmagick::PREVIEW_SATURATION (int)
Gmagick::PREVIEW_BRIGHTNESS (int)
Gmagick::PREVIEW_GAMMA (int)
Gmagick::PREVIEW_SPIFF (int)
Gmagick::PREVIEW_DULL (int)
Gmagick::PREVIEW_GRAYSCALE (int)
Gmagick::PREVIEW_QUANTIZE (int)
Gmagick::PREVIEW_DESPECKLE (int)
Gmagick::PREVIEW_REDUCENOISE (int)
Gmagick::PREVIEW_ADDNOISE (int)
Gmagick::PREVIEW_SHARPEN (int)
Gmagick::PREVIEW_BLUR (int)
Gmagick::PREVIEW_THRESHOLD (int)
Gmagick::PREVIEW_EDGEDETECT (int)
Gmagick::PREVIEW_SPREAD (int)
Gmagick::PREVIEW_SOLARIZE (int)
Gmagick::PREVIEW_SHADE (int)
Gmagick::PREVIEW_RAISE (int)
Gmagick::PREVIEW_SEGMENT (int)
Gmagick::PREVIEW_SWIRL (int)
Gmagick::PREVIEW_IMPLODE (int)
Gmagick::PREVIEW_WAVE (int)
Gmagick::PREVIEW_OILPAINT (int)
Gmagick::PREVIEW_CHARCOALDRAWING (int)
Gmagick::PREVIEW_JPEG (int)
Rendering Intent constants
Gmagick::RENDERINGINTENT_UNDEFINED (int)
Gmagick::RENDERINGINTENT_SATURATION (int)
Gmagick::RENDERINGINTENT_PERCEPTUAL (int)
Gmagick::RENDERINGINTENT_ABSOLUTE (int)
Gmagick::RENDERINGINTENT_RELATIVE (int)
Fillrule constants
Gmagick::FILLRULE_UNDEFINED (int)
Gmagick::FILLRULE_EVENODD (int)
Gmagick::FILLRULE_NONZERO (int)
Pathunit constants
Gmagick::PATHUNITS_UNDEFINED (int)
Gmagick::PATHUNITS_USERSPACE (int)
Gmagick::PATHUNITS_USERSPACEONUSE (int)
Gmagick::PATHUNITS_OBJECTBOUNDINGBOX (int)
Linecap constants
Gmagick::LINECAP_UNDEFINED (int)
Gmagick::LINECAP_BUTT (int)
Gmagick::LINECAP_ROUND (int)
Gmagick::LINECAP_SQUARE (int)
Line Join constants
Gmagick::LINEJOIN_UNDEFINED (int)
Gmagick::LINEJOIN_MITER (int)
Gmagick::LINEJOIN_ROUND (int)
Gmagick::LINEJOIN_BEVEL (int)
Resourcetype constants
Gmagick::RESOURCETYPE_UNDEFINED (int)
Gmagick::RESOURCETYPE_AREA (int)
Gmagick::RESOURCETYPE_DISK (int)
Gmagick::RESOURCETYPE_FILE (int)
Gmagick::RESOURCETYPE_MAP (int)
Gmagick::RESOURCETYPE_MEMORY (int)
Orientation constants
Gmagick::ORIENTATION_UNDEFINED (int)
Gmagick::ORIENTATION_TOPLEFT (int)
Gmagick::ORIENTATION_TOPRIGHT (int)
Gmagick::ORIENTATION_BOTTOMRIGHT (int)
Gmagick::ORIENTATION_BOTTOMLEFT (int)
Gmagick::ORIENTATION_LEFTTOP (int)
Gmagick::ORIENTATION_RIGHTTOP (int)
Gmagick::ORIENTATION_RIGHTBOTTOM (int)
Gmagick::ORIENTATION_LEFTBOTTOM (int)
Interlace constants
Gmagick::INTERLACE_UNDEFINED (int)
Gmagick::INTERLACE_NO (int)
Gmagick::INTERLACE_NONE (int)
Gmagick::INTERLACE_LINE (int)
Gmagick::INTERLACE_PLANE (int)
Gmagick::INTERLACE_PARTITION (int)


Exemplos

The following shows some common Gmagick image operations.

Exemplo #1 Gmagick Example

<?php
//Instantiate a new Gmagick object
$image = new Gmagick('example.jpg');

//Make thumbnail from image loaded. 0 for either axes preserves aspect ratio
$image->thumbnailimage(100, 0);

//Create a border around the image, then simulate how the image will look like as an oil painting
//Notice the chaining of mutator methods which is supported in gmagick
$image->borderimage("yellow", 8, 8)->oilpaintimage(0.3);

//Write the current image at the current state to a file
$image->write('example_thumbnail.jpg');
?>


The Gmagick class

(PECL gmagick >= Unknown)

Introdução

Resumo da classe

class Gmagick {
/* Métodos */
public __construct(string $filename = ?)
public addimage(Gmagick $source): Gmagick
public addnoiseimage(int $noise_type): Gmagick
public annotateimage(
GmagickDraw $GmagickDraw,
float $x,
float $y,
float $angle,
string $text
): Gmagick
public blurimage(float $radius, float $sigma, int $channel = ?): Gmagick
public borderimage(GmagickPixel $color, int $width, int $height): Gmagick
public charcoalimage(float $radius, float $sigma): Gmagick
public chopimage(
int $width,
int $height,
int $x,
int $y
): Gmagick
public clear(): Gmagick
public commentimage(string $comment): Gmagick
public compositeimage(
Gmagick $source,
int $COMPOSE,
int $x,
int $y
): Gmagick
public cropimage(
int $width ,
int $height ,
int $x,
int $y
): Gmagick
public cropthumbnailimage(int $width, int $height): Gmagick
public current(): Gmagick
public cyclecolormapimage(int $displace): Gmagick
public deconstructimages(): Gmagick
public despeckleimage(): Gmagick
public destroy(): bool
public drawimage(GmagickDraw $GmagickDraw): Gmagick
public edgeimage(float $radius): Gmagick
public embossimage(float $radius, float $sigma): Gmagick
public enhanceimage(): Gmagick
public equalizeimage(): Gmagick
public flipimage(): Gmagick
public flopimage(): Gmagick
public frameimage(
GmagickPixel $color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): Gmagick
public gammaimage(float $gamma): Gmagick
public getcopyright(): string
public getfilename(): string
public getimagebackgroundcolor(): GmagickPixel
public getimageblueprimary(): array
public getimagebordercolor(): GmagickPixel
public getimagechanneldepth(int $channel_type): int
public getimagecolors(): int
public getimagecolorspace(): int
public getimagecompose(): int
public getimagedelay(): int
public getimagedepth(): int
public getimagedispose(): int
public getimageextrema(): array
public getimagefilename(): string
public getimageformat(): string
public getimagegamma(): float
public getimagegreenprimary(): array
public getimageheight(): int
public getimagehistogram(): array
public getimageindex(): int
public getimageinterlacescheme(): int
public getimageiterations(): int
public getimagematte(): int
public getimagemattecolor(): GmagickPixel
public getimageprofile(string $name): string
public getimageredprimary(): array
public getimagerenderingintent(): int
public getimageresolution(): array
public getimagescene(): int
public getimagesignature(): string
public getimagetype(): int
public getimageunits(): int
public getimagewhitepoint(): array
public getimagewidth(): int
public getpackagename(): string
public getquantumdepth(): array
public getreleasedate(): string
public getsamplingfactors(): array
public getsize(): array
public getversion(): array
public hasnextimage(): mixed
public haspreviousimage(): mixed
public implodeimage(float $radius): mixed
public labelimage(string $label): mixed
public levelimage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Gmagick::CHANNEL_DEFAULT
): mixed
public magnifyimage(): mixed
public mapimage(gmagick $gmagick, bool $dither): Gmagick
public medianfilterimage(float $radius): void
public minifyimage(): Gmagick
public modulateimage(float $brightness, float $saturation, float $hue): Gmagick
public motionblurimage(float $radius, float $sigma, float $angle): Gmagick
public newimage(
int $width,
int $height,
string $background,
string $format = ?
): Gmagick
public nextimage(): bool
public normalizeimage(int $channel = ?): Gmagick
public oilpaintimage( float $radius ): Gmagick
public previousimage(): bool
public profileimage(string $name, string $profile): Gmagick
public quantizeimage(
int $numColors,
int $colorspace,
int $treeDepth,
bool $dither,
bool $measureError
): Gmagick
public quantizeimages(
int $numColors,
int $colorspace,
int $treeDepth,
bool $dither,
bool $measureError
): Gmagick
public queryfontmetrics(GmagickDraw $draw, string $text): array
public queryfonts(string $pattern = "*"): array
public queryformats(string $pattern = "*"): array
public radialblurimage(float $angle, int $channel = Gmagick::CHANNEL_DEFAULT): Gmagick
public raiseimage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): Gmagick
public read(string $filename): Gmagick
public readimage(string $filename): Gmagick
public readimageblob(string $imageContents, string $filename = ?): Gmagick
public readimagefile(resource $fp, string $filename = ?): Gmagick
public reducenoiseimage(float $radius): Gmagick
public removeimage(): Gmagick
public removeimageprofile(string $name): string
public resampleimage(
float $xResolution,
float $yResolution,
int $filter,
float $blur
): Gmagick
public resizeimage(
int $width,
int $height,
int $filter,
float $blur,
bool $fit = false
): Gmagick
public rollimage(int $x, int $y): Gmagick
public rotateimage(mixed $color, float $degrees): Gmagick
public scaleimage(int $width, int $height, bool $fit = false): Gmagick
public separateimagechannel(int $channel): Gmagick
setCompressionQuality( int $quality = 75 ): Gmagick
public setfilename(string $filename): Gmagick
public setimagebackgroundcolor(GmagickPixel $color): Gmagick
public setimageblueprimary(float $x, float $y): Gmagick
public setimagebordercolor(GmagickPixel $color): Gmagick
public setimagechanneldepth(int $channel, int $depth): Gmagick
public setimagecolorspace(int $colorspace): Gmagick
public setimagecompose(int $composite): Gmagick
public setimagedelay(int $delay): Gmagick
public setimagedepth(int $depth): Gmagick
public setimagedispose(int $disposeType): Gmagick
public setimagefilename(string $filename): Gmagick
public setimageformat(string $imageFormat): Gmagick
public setimagegamma(float $gamma): Gmagick
public setimagegreenprimary(float $x, float $y): Gmagick
public setimageindex(int $index): Gmagick
public setimageinterlacescheme(int $interlace): Gmagick
public setimageiterations(int $iterations): Gmagick
public setimageprofile(string $name, string $profile): Gmagick
public setimageredprimary(float $x, float $y): Gmagick
public setimagerenderingintent(int $rendering_intent): Gmagick
public setimageresolution(float $xResolution, float $yResolution): Gmagick
public setimagescene(int $scene): Gmagick
public setimagetype(int $imgType): Gmagick
public setimageunits(int $resolution): Gmagick
public setimagewhitepoint(float $x, float $y): Gmagick
public setsamplingfactors(array $factors): Gmagick
public setsize(int $columns, int $rows): Gmagick
public shearimage(mixed $color, float $xShear, float $yShear): Gmagick
public solarizeimage(int $threshold): Gmagick
public spreadimage(float $radius): Gmagick
public stripimage(): Gmagick
public swirlimage(float $degrees): Gmagick
public thumbnailimage(int $width, int $height, bool $fit = false): Gmagick
public trimimage(float $fuzz): Gmagick
public writeimage(string $filename, bool $all_frames = false): Gmagick
}

Índice

  • Gmagick::addimage — Adds new image to Gmagick object image list
  • Gmagick::addnoiseimage — Adds random noise to the image
  • Gmagick::annotateimage — Annotates an image with text
  • Gmagick::blurimage — Adds blur filter to image
  • Gmagick::borderimage — Surrounds the image with a border
  • Gmagick::charcoalimage — Simulates a charcoal drawing
  • Gmagick::chopimage — Removes a region of an image and trims
  • Gmagick::clear — Clears all resources associated to Gmagick object
  • Gmagick::commentimage — Adds a comment to your image
  • Gmagick::compositeimage — Composite one image onto another
  • Gmagick::__construct — The Gmagick constructor
  • Gmagick::cropimage — Extracts a region of the image
  • Gmagick::cropthumbnailimage — Creates a crop thumbnail
  • Gmagick::current — The current purpose
  • Gmagick::cyclecolormapimage — Displaces an image's colormap
  • Gmagick::deconstructimages — Returns certain pixel differences between images
  • Gmagick::despeckleimage — The despeckleimage purpose
  • Gmagick::destroy — The destroy purpose
  • Gmagick::drawimage — Renders the GmagickDraw object on the current image
  • Gmagick::edgeimage — Enhance edges within the image
  • Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect
  • Gmagick::enhanceimage — Improves the quality of a noisy image
  • Gmagick::equalizeimage — Equalizes the image histogram
  • Gmagick::flipimage — Creates a vertical mirror image
  • Gmagick::flopimage — Creates a horizontal mirror image
  • Gmagick::frameimage — Adds a simulated three-dimensional border
  • Gmagick::gammaimage — Gamma-corrects an image
  • Gmagick::getcopyright — Returns the GraphicsMagick API copyright as a string
  • Gmagick::getfilename — The filename associated with an image sequence
  • Gmagick::getimagebackgroundcolor — Returns the image background color
  • Gmagick::getimageblueprimary — Returns the chromaticy blue primary point
  • Gmagick::getimagebordercolor — Returns the image border color
  • Gmagick::getimagechanneldepth — Gets the depth for a particular image channel
  • Gmagick::getimagecolors — Returns the color of the specified colormap index
  • Gmagick::getimagecolorspace — Gets the image colorspace
  • Gmagick::getimagecompose — Returns the composite operator associated with the image
  • Gmagick::getimagedelay — Gets the image delay
  • Gmagick::getimagedepth — Gets the depth of the image
  • Gmagick::getimagedispose — Gets the image disposal method
  • Gmagick::getimageextrema — Gets the extrema for the image
  • Gmagick::getimagefilename — Returns the filename of a particular image in a sequence
  • Gmagick::getimageformat — Returns the format of a particular image in a sequence
  • Gmagick::getimagegamma — Gets the image gamma
  • Gmagick::getimagegreenprimary — Returns the chromaticy green primary point
  • Gmagick::getimageheight — Returns the image height
  • Gmagick::getimagehistogram — Gets the image histogram
  • Gmagick::getimageindex — Gets the index of the current active image
  • Gmagick::getimageinterlacescheme — Gets the image interlace scheme
  • Gmagick::getimageiterations — Gets the image iterations
  • Gmagick::getimagematte — Check if the image has a matte channel
  • Gmagick::getimagemattecolor — Returns the image matte color
  • Gmagick::getimageprofile — Returns the named image profile
  • Gmagick::getimageredprimary — Returns the chromaticity red primary point
  • Gmagick::getimagerenderingintent — Gets the image rendering intent
  • Gmagick::getimageresolution — Gets the image X and Y resolution
  • Gmagick::getimagescene — Gets the image scene
  • Gmagick::getimagesignature — Generates an SHA-256 message digest
  • Gmagick::getimagetype — Gets the potential image type
  • Gmagick::getimageunits — Gets the image units of resolution
  • Gmagick::getimagewhitepoint — Returns the chromaticity white point
  • Gmagick::getimagewidth — Returns the width of the image
  • Gmagick::getpackagename — Returns the GraphicsMagick package name
  • Gmagick::getquantumdepth — Returns the Gmagick quantum depth as a string
  • Gmagick::getreleasedate — Returns the GraphicsMagick release date as a string
  • Gmagick::getsamplingfactors — Gets the horizontal and vertical sampling factor
  • Gmagick::getsize — Returns the size associated with the Gmagick object
  • Gmagick::getversion — Returns the GraphicsMagick API version
  • Gmagick::hasnextimage — Checks if the object has more images
  • Gmagick::haspreviousimage — Checks if the object has a previous image
  • Gmagick::implodeimage — Creates a new image as a copy
  • Gmagick::labelimage — Adds a label to an image
  • Gmagick::levelimage — Adjusts the levels of an image
  • Gmagick::magnifyimage — Scales an image proportionally 2x
  • Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image
  • Gmagick::medianfilterimage — Applies a digital filter
  • Gmagick::minifyimage — Scales an image proportionally to half its size
  • Gmagick::modulateimage — Control the brightness, saturation, and hue
  • Gmagick::motionblurimage — Simulates motion blur
  • Gmagick::newimage — Creates a new image
  • Gmagick::nextimage — Moves to the next image
  • Gmagick::normalizeimage — Enhances the contrast of a color image
  • Gmagick::oilpaintimage — Simulates an oil painting
  • Gmagick::previousimage — Move to the previous image in the object
  • Gmagick::profileimage — Adds or removes a profile from an image
  • Gmagick::quantizeimage — Analyzes the colors within a reference image
  • Gmagick::quantizeimages — The quantizeimages purpose
  • Gmagick::queryfontmetrics — Returns an array representing the font metrics
  • Gmagick::queryfonts — Returns the configured fonts
  • Gmagick::queryformats — Returns formats supported by Gmagick
  • Gmagick::radialblurimage — Radial blurs an image
  • Gmagick::raiseimage — Creates a simulated 3d button-like effect
  • Gmagick::read — Reads image from filename
  • Gmagick::readimage — Reads image from filename
  • Gmagick::readimageblob — Reads image from a binary string
  • Gmagick::readimagefile — The readimagefile purpose
  • Gmagick::reducenoiseimage — Smooths the contours of an image
  • Gmagick::removeimage — Removes an image from the image list
  • Gmagick::removeimageprofile — Removes the named image profile and returns it
  • Gmagick::resampleimage — Resample image to desired resolution
  • Gmagick::resizeimage — Scales an image
  • Gmagick::rollimage — Offsets an image
  • Gmagick::rotateimage — Rotates an image
  • Gmagick::scaleimage — Scales the size of an image
  • Gmagick::separateimagechannel — Separates a channel from the image
  • Gmagick::setCompressionQuality — Sets the object's default compression quality
  • Gmagick::setfilename — Sets the filename before you read or write the image
  • Gmagick::setimagebackgroundcolor — Sets the image background color
  • Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point
  • Gmagick::setimagebordercolor — Sets the image border color
  • Gmagick::setimagechanneldepth — Sets the depth of a particular image channel
  • Gmagick::setimagecolorspace — Sets the image colorspace
  • Gmagick::setimagecompose — Sets the image composite operator
  • Gmagick::setimagedelay — Sets the image delay
  • Gmagick::setimagedepth — Sets the image depth
  • Gmagick::setimagedispose — Sets the image disposal method
  • Gmagick::setimagefilename — Sets the filename of a particular image in a sequence
  • Gmagick::setimageformat — Sets the format of a particular image
  • Gmagick::setimagegamma — Sets the image gamma
  • Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point
  • Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter
  • Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image
  • Gmagick::setimageiterations — Sets the image iterations
  • Gmagick::setimageprofile — Adds a named profile to the Gmagick object
  • Gmagick::setimageredprimary — Sets the image chromaticity red primary point
  • Gmagick::setimagerenderingintent — Sets the image rendering intent
  • Gmagick::setimageresolution — Sets the image resolution
  • Gmagick::setimagescene — Sets the image scene
  • Gmagick::setimagetype — Sets the image type
  • Gmagick::setimageunits — Sets the image units of resolution
  • Gmagick::setimagewhitepoint — Sets the image chromaticity white point
  • Gmagick::setsamplingfactors — Sets the image sampling factors
  • Gmagick::setsize — Sets the size of the Gmagick object
  • Gmagick::shearimage — Creating a parallelogram
  • Gmagick::solarizeimage — Applies a solarizing effect to the image
  • Gmagick::spreadimage — Randomly displaces each pixel in a block
  • Gmagick::stripimage — Strips an image of all profiles and comments
  • Gmagick::swirlimage — Swirls the pixels about the center of the image
  • Gmagick::thumbnailimage — Changes the size of an image
  • Gmagick::trimimage — Remove edges from the image
  • Gmagick::write — Sinônimo de Gmagick::writeimage
  • Gmagick::writeimage — Writes an image to the specified filename


Adds new image to Gmagick object image list

  • « Gmagick
  • Gmagick::addnoiseimage »
  • PHP Manual
  • Gmagick
  • Adds new image to Gmagick object image list

Gmagick::addimage

(PECL gmagick >= Unknown)

Gmagick::addimage — Adds new image to Gmagick object image list

Descrição

public Gmagick::addimage(Gmagick $source): Gmagick

Adds new image to Gmagick object from the current position of the source object. After the operation iterator position is moved at the end of the list.

Parâmetros

source

The source Gmagick object

Valor Retornado

The Gmagick object with image added

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Adds random noise to the image

  • « Gmagick::addimage
  • Gmagick::annotateimage »
  • PHP Manual
  • Gmagick
  • Adds random noise to the image

Gmagick::addnoiseimage

(PECL gmagick >= Unknown)

Gmagick::addnoiseimage — Adds random noise to the image

Descrição

public Gmagick::addnoiseimage(int $noise_type): Gmagick

Adds random noise to the image.

Parâmetros

noise_type

The type of the noise. Refer to this list of noise constants.

Valor Retornado

The Gmagick object with noise added.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Annotates an image with text

  • « Gmagick::addnoiseimage
  • Gmagick::blurimage »
  • PHP Manual
  • Gmagick
  • Annotates an image with text

Gmagick::annotateimage

(PECL gmagick >= Unknown)

Gmagick::annotateimage — Annotates an image with text

Descrição

public Gmagick::annotateimage(
GmagickDraw $GmagickDraw,
float $x,
float $y,
float $angle,
string $text
): Gmagick

Annotates an image with text.

Parâmetros

GmagickDraw

The GmagickDraw object that contains settings for drawing the text.

x

Horizontal offset in pixels to the left of text.

y

Vertical offset in pixels to the baseline of text.

angle

The angle at which to write the text.

text

The string to draw.

Valor Retornado

The Gmagick object with annotation made.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Adds blur filter to image

  • « Gmagick::annotateimage
  • Gmagick::borderimage »
  • PHP Manual
  • Gmagick
  • Adds blur filter to image

Gmagick::blurimage

(PECL gmagick >= Unknown)

Gmagick::blurimage — Adds blur filter to image

Descrição

public Gmagick::blurimage(float $radius, float $sigma, int $channel = ?): Gmagick

Adds blur filter to image.

Parâmetros

radius

Blur radius

sigma

Standard deviation

Valor Retornado

The blurred Gmagick object

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Surrounds the image with a border

  • « Gmagick::blurimage
  • Gmagick::charcoalimage »
  • PHP Manual
  • Gmagick
  • Surrounds the image with a border

Gmagick::borderimage

(PECL gmagick >= Unknown)

Gmagick::borderimage — Surrounds the image with a border

Descrição

public Gmagick::borderimage(GmagickPixel $color, int $width, int $height): Gmagick

Surrounds the image with a border of the color defined by the bordercolor GmagickPixel object or a color string.

Parâmetros

color

GmagickPixel object or a string containing the border color.

width

Border width.

height

Border height.

Valor Retornado

The Gmagick object with border defined.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Simulates a charcoal drawing

  • « Gmagick::borderimage
  • Gmagick::chopimage »
  • PHP Manual
  • Gmagick
  • Simulates a charcoal drawing

Gmagick::charcoalimage

(PECL gmagick >= Unknown)

Gmagick::charcoalimage — Simulates a charcoal drawing

Descrição

public Gmagick::charcoalimage(float $radius, float $sigma): Gmagick

Simulates a charcoal drawing.

Parâmetros

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

Valor Retornado

The Gmagick object with charcoal simulation.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Removes a region of an image and trims

  • « Gmagick::charcoalimage
  • Gmagick::clear »
  • PHP Manual
  • Gmagick
  • Removes a region of an image and trims

Gmagick::chopimage

(PECL gmagick >= Unknown)

Gmagick::chopimage — Removes a region of an image and trims

Descrição

public Gmagick::chopimage(
int $width,
int $height,
int $x,
int $y
): Gmagick

Removes a region of an image and collapses the image to occupy the removed portion.

Parâmetros

width

Width of the chopped area.

height

Height of the chopped area.

x

X origo of the chopped area.

y

Y origo of the chopped area.

Valor Retornado

The chopped Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Clears all resources associated to Gmagick object

  • « Gmagick::chopimage
  • Gmagick::commentimage »
  • PHP Manual
  • Gmagick
  • Clears all resources associated to Gmagick object

Gmagick::clear

(PECL gmagick >= Unknown)

Gmagick::clear — Clears all resources associated to Gmagick object

Descrição

public Gmagick::clear(): Gmagick

Clears all resources associated to Gmagick object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The cleared Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Adds a comment to your image

  • « Gmagick::clear
  • Gmagick::compositeimage »
  • PHP Manual
  • Gmagick
  • Adds a comment to your image

Gmagick::commentimage

(PECL gmagick >= Unknown)

Gmagick::commentimage — Adds a comment to your image

Descrição

public Gmagick::commentimage(string $comment): Gmagick

Adds a comment to your image.

Parâmetros

comment

The comment to add.

Valor Retornado

The Gmagick object with comment added.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Composite one image onto another

  • « Gmagick::commentimage
  • Gmagick::__construct »
  • PHP Manual
  • Gmagick
  • Composite one image onto another

Gmagick::compositeimage

(PECL gmagick >= Unknown)

Gmagick::compositeimage — Composite one image onto another

Descrição

public Gmagick::compositeimage(
Gmagick $source,
int $COMPOSE,
int $x,
int $y
): Gmagick

Composite one image onto another at the specified offset.

Parâmetros

source

Gmagick object which holds the composite image.

compose

Composite operator.

x

The column offset of the composited image.

y

The row offset of the composited image.

Valor Retornado

The Gmagick object with compositions.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


The Gmagick constructor

  • « Gmagick::compositeimage
  • Gmagick::cropimage »
  • PHP Manual
  • Gmagick
  • The Gmagick constructor

Gmagick::__construct

(PECL gmagick >= Unknown)

Gmagick::__construct — The Gmagick constructor

Descrição

public Gmagick::__construct(string $filename = ?)

The Gmagick constructor.

Parâmetros

filename

The path to an image to load or array of paths.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Extracts a region of the image

  • « Gmagick::__construct
  • Gmagick::cropthumbnailimage »
  • PHP Manual
  • Gmagick
  • Extracts a region of the image

Gmagick::cropimage

(PECL gmagick >= Unknown)

Gmagick::cropimage — Extracts a region of the image

Descrição

public Gmagick::cropimage(
int $width ,
int $height ,
int $x,
int $y
): Gmagick

Extracts a region of the image.

Parâmetros

width

The width of the crop.

height

The height of the crop.

x

The X coordinate of the cropped region's top left corner.

y

The Y coordinate of the cropped region's top left corner.

Valor Retornado

The cropped Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Creates a crop thumbnail

  • « Gmagick::cropimage
  • Gmagick::current »
  • PHP Manual
  • Gmagick
  • Creates a crop thumbnail

Gmagick::cropthumbnailimage

(PECL gmagick >= Unknown)

Gmagick::cropthumbnailimage — Creates a crop thumbnail

Descrição

public Gmagick::cropthumbnailimage(int $width, int $height): Gmagick

Creates a fixed size thumbnail by first scaling the image down and cropping a specified area from the center.

Parâmetros

width

The width of the thumbnail.

height

The Height of the thumbnail.

Valor Retornado

The cropped Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


The current purpose

  • « Gmagick::cropthumbnailimage
  • Gmagick::cyclecolormapimage »
  • PHP Manual
  • Gmagick
  • The current purpose

Gmagick::current

(PECL gmagick >= Unknown)

Gmagick::current — The current purpose

Descrição

public Gmagick::current(): Gmagick

Returns reference to the current gmagick object with image pointer at the correct sequence.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns self on success.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Displaces an image's colormap

  • « Gmagick::current
  • Gmagick::deconstructimages »
  • PHP Manual
  • Gmagick
  • Displaces an image's colormap

Gmagick::cyclecolormapimage

(PECL gmagick >= Unknown)

Gmagick::cyclecolormapimage — Displaces an image's colormap

Descrição

public Gmagick::cyclecolormapimage(int $displace): Gmagick

Displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychedelic effect.

Parâmetros

displace

The amount to displace the colormap.

Valor Retornado

Returns self on success.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns certain pixel differences between images

  • « Gmagick::cyclecolormapimage
  • Gmagick::despeckleimage »
  • PHP Manual
  • Gmagick
  • Returns certain pixel differences between images

Gmagick::deconstructimages

(PECL gmagick >= Unknown)

Gmagick::deconstructimages — Returns certain pixel differences between images

Descrição

public Gmagick::deconstructimages(): Gmagick

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a new Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


The despeckleimage purpose

  • « Gmagick::deconstructimages
  • Gmagick::destroy »
  • PHP Manual
  • Gmagick
  • The despeckleimage purpose

Gmagick::despeckleimage

(PECL gmagick >= Unknown)

Gmagick::despeckleimage — The despeckleimage purpose

Descrição

public Gmagick::despeckleimage(): Gmagick

Reduces the speckle noise in an image while preserving the edges of the original image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The despeckled Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.

Exemplos

Exemplo #1 Gmagick::despeckleimage() example

<?php
/* ... */
?>

O exemplo acima produzirá algo semelhante a:

...


The destroy purpose

  • « Gmagick::despeckleimage
  • Gmagick::drawimage »
  • PHP Manual
  • Gmagick
  • The destroy purpose

Gmagick::destroy

(PECL gmagick >= Unknown)

Gmagick::destroy — The destroy purpose

Descrição

public Gmagick::destroy(): bool

Destroys the Gmagick object and frees all resources associated with it

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Renders the GmagickDraw object on the current image

  • « Gmagick::destroy
  • Gmagick::edgeimage »
  • PHP Manual
  • Gmagick
  • Renders the GmagickDraw object on the current image

Gmagick::drawimage

(PECL gmagick >= Unknown)

Gmagick::drawimage — Renders the GmagickDraw object on the current image

Descrição

public Gmagick::drawimage(GmagickDraw $GmagickDraw): Gmagick

Renders the GmagickDraw object on the current image.

Parâmetros

GmagickDraw

The drawing operations to render on the image.

Valor Retornado

The drawn Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Enhance edges within the image

  • « Gmagick::drawimage
  • Gmagick::embossimage »
  • PHP Manual
  • Gmagick
  • Enhance edges within the image

Gmagick::edgeimage

(PECL gmagick >= Unknown)

Gmagick::edgeimage — Enhance edges within the image

Descrição

public Gmagick::edgeimage(float $radius): Gmagick

Enhance edges within the image with a convolution filter of the given radius. Use radius 0 and it will be auto-selected.

Parâmetros

radius

The radius of the operation.

Valor Retornado

The Gmagick object with edges enhanced.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns a grayscale image with a three-dimensional effect

  • « Gmagick::edgeimage
  • Gmagick::enhanceimage »
  • PHP Manual
  • Gmagick
  • Returns a grayscale image with a three-dimensional effect

Gmagick::embossimage

(PECL gmagick >= Unknown)

Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect

Descrição

public Gmagick::embossimage(float $radius, float $sigma): Gmagick

Returns a grayscale image with a three-dimensional effect. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and it will choose a suitable radius for you.

Parâmetros

radius

The radius of the effect.

sigma

The sigma of the effect.

Valor Retornado

The embossed Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Improves the quality of a noisy image

  • « Gmagick::embossimage
  • Gmagick::equalizeimage »
  • PHP Manual
  • Gmagick
  • Improves the quality of a noisy image

Gmagick::enhanceimage

(PECL gmagick >= Unknown)

Gmagick::enhanceimage — Improves the quality of a noisy image

Descrição

public Gmagick::enhanceimage(): Gmagick

Applies a digital filter that improves the quality of a noisy image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The enhanced Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Equalizes the image histogram

  • « Gmagick::enhanceimage
  • Gmagick::flipimage »
  • PHP Manual
  • Gmagick
  • Equalizes the image histogram

Gmagick::equalizeimage

(PECL gmagick >= Unknown)

Gmagick::equalizeimage — Equalizes the image histogram

Descrição

public Gmagick::equalizeimage(): Gmagick

Equalizes the image histogram.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The equalized Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Creates a vertical mirror image

  • « Gmagick::equalizeimage
  • Gmagick::flopimage »
  • PHP Manual
  • Gmagick
  • Creates a vertical mirror image

Gmagick::flipimage

(PECL gmagick >= Unknown)

Gmagick::flipimage — Creates a vertical mirror image

Descrição

public Gmagick::flipimage(): Gmagick

Creates a vertical mirror image by reflecting the pixels around the central x-axis.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The flipped Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.

Veja Também

  • Gmagick::flopimage() - Creates a horizontal mirror image


Creates a horizontal mirror image

  • « Gmagick::flipimage
  • Gmagick::frameimage »
  • PHP Manual
  • Gmagick
  • Creates a horizontal mirror image

Gmagick::flopimage

(PECL gmagick >= Unknown)

Gmagick::flopimage — Creates a horizontal mirror image

Descrição

public Gmagick::flopimage(): Gmagick

Creates a horizontal mirror image by reflecting the pixels around the central y-axis.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The flopped Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.

Veja Também

  • Gmagick::flipimage() - Creates a vertical mirror image


Adds a simulated three-dimensional border

  • « Gmagick::flopimage
  • Gmagick::gammaimage »
  • PHP Manual
  • Gmagick
  • Adds a simulated three-dimensional border

Gmagick::frameimage

(PECL gmagick >= Unknown)

Gmagick::frameimage — Adds a simulated three-dimensional border

Descrição

public Gmagick::frameimage(
GmagickPixel $color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): Gmagick

Adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

Parâmetros

color

GmagickPixel object or a float representing the matte color.

width

The width of the border.

height

The height of the border.

inner_bevel

The inner bevel width.

outer_bevel

The outer bevel width.

Valor Retornado

The framed Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gamma-corrects an image

  • « Gmagick::frameimage
  • Gmagick::getcopyright »
  • PHP Manual
  • Gmagick
  • Gamma-corrects an image

Gmagick::gammaimage

(PECL gmagick >= Unknown)

Gmagick::gammaimage — Gamma-corrects an image

Descrição

public Gmagick::gammaimage(float $gamma): Gmagick

Gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

Parâmetros

gamma

The amount of gamma-correction.

Valor Retornado

The gamma corrected Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the GraphicsMagick API copyright as a string

  • « Gmagick::gammaimage
  • Gmagick::getfilename »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick API copyright as a string

Gmagick::getcopyright

(PECL gmagick >= Unknown)

Gmagick::getcopyright — Returns the GraphicsMagick API copyright as a string

Descrição

public Gmagick::getcopyright(): string

Returns the GraphicsMagick API copyright as a string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string containing the copyright notice of GraphicsMagick and Magickwand C API.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


The filename associated with an image sequence

  • « Gmagick::getcopyright
  • Gmagick::getimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • The filename associated with an image sequence

Gmagick::getfilename

(PECL gmagick >= Unknown)

Gmagick::getfilename — The filename associated with an image sequence

Descrição

public Gmagick::getfilename(): string

Returns the filename associated with an image sequence.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string on success.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the image background color

  • « Gmagick::getfilename
  • Gmagick::getimageblueprimary »
  • PHP Manual
  • Gmagick
  • Returns the image background color

Gmagick::getimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::getimagebackgroundcolor — Returns the image background color

Descrição

public Gmagick::getimagebackgroundcolor(): GmagickPixel

Returns the image background color.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an GmagickPixel set to the background color of the image.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the chromaticy blue primary point

  • « Gmagick::getimagebackgroundcolor
  • Gmagick::getimagebordercolor »
  • PHP Manual
  • Gmagick
  • Returns the chromaticy blue primary point

Gmagick::getimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::getimageblueprimary — Returns the chromaticy blue primary point

Descrição

public Gmagick::getimageblueprimary(): array

Returns the chromaticity blue primary point for the image.

Parâmetros

x

The chromaticity blue primary x-point.

y

The chromaticity blue primary y-point.

Valor Retornado

Array consisting of "x" and "y" coordinates of point.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the image border color

  • « Gmagick::getimageblueprimary
  • Gmagick::getimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Returns the image border color

Gmagick::getimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::getimagebordercolor — Returns the image border color

Descrição

public Gmagick::getimagebordercolor(): GmagickPixel

Returns the image border color.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

GmagickPixel object representing the color of the border.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the depth for a particular image channel

  • « Gmagick::getimagebordercolor
  • Gmagick::getimagecolors »
  • PHP Manual
  • Gmagick
  • Gets the depth for a particular image channel

Gmagick::getimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::getimagechanneldepth — Gets the depth for a particular image channel

Descrição

public Gmagick::getimagechanneldepth(int $channel_type): int

Gets the depth for a particular image channel.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Depth of image channel

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the color of the specified colormap index

  • « Gmagick::getimagechanneldepth
  • Gmagick::getimagecolorspace »
  • PHP Manual
  • Gmagick
  • Returns the color of the specified colormap index

Gmagick::getimagecolors

(PECL gmagick >= Unknown)

Gmagick::getimagecolors — Returns the color of the specified colormap index

Descrição

public Gmagick::getimagecolors(): int

Returns the color of the specified colormap index.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of colors in image.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image colorspace

  • « Gmagick::getimagecolors
  • Gmagick::getimagecompose »
  • PHP Manual
  • Gmagick
  • Gets the image colorspace

Gmagick::getimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::getimagecolorspace — Gets the image colorspace

Descrição

public Gmagick::getimagecolorspace(): int

Gets the image colorspace.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Colorspace

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the composite operator associated with the image

  • « Gmagick::getimagecolorspace
  • Gmagick::getimagedelay »
  • PHP Manual
  • Gmagick
  • Returns the composite operator associated with the image

Gmagick::getimagecompose

(PECL gmagick >= Unknown)

Gmagick::getimagecompose — Returns the composite operator associated with the image

Descrição

public Gmagick::getimagecompose(): int

Returns the composite operator associated with the image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the composite operator associated with the image.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image delay

  • « Gmagick::getimagecompose
  • Gmagick::getimagedepth »
  • PHP Manual
  • Gmagick
  • Gets the image delay

Gmagick::getimagedelay

(PECL gmagick >= Unknown)

Gmagick::getimagedelay — Gets the image delay

Descrição

public Gmagick::getimagedelay(): int

Gets the image delay

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the composite operator associated with the image.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the depth of the image

  • « Gmagick::getimagedelay
  • Gmagick::getimagedispose »
  • PHP Manual
  • Gmagick
  • Gets the depth of the image

Gmagick::getimagedepth

(PECL gmagick >= Unknown)

Gmagick::getimagedepth — Gets the depth of the image

Descrição

public Gmagick::getimagedepth(): int

Gets the depth of the image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Image depth

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image disposal method

  • « Gmagick::getimagedepth
  • Gmagick::getimageextrema »
  • PHP Manual
  • Gmagick
  • Gets the image disposal method

Gmagick::getimagedispose

(PECL gmagick >= Unknown)

Gmagick::getimagedispose — Gets the image disposal method

Descrição

public Gmagick::getimagedispose(): int

Gets the image disposal method

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the dispose method on success.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the extrema for the image

  • « Gmagick::getimagedispose
  • Gmagick::getimagefilename »
  • PHP Manual
  • Gmagick
  • Gets the extrema for the image

Gmagick::getimageextrema

(PECL gmagick >= Unknown)

Gmagick::getimageextrema — Gets the extrema for the image

Descrição

public Gmagick::getimageextrema(): array

Returns an associative array with the keys "min" and "max". Lança uma exceção GmagickException em caso de erro.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an associative array with the keys "min" and "max".

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the filename of a particular image in a sequence

  • « Gmagick::getimageextrema
  • Gmagick::getimageformat »
  • PHP Manual
  • Gmagick
  • Returns the filename of a particular image in a sequence

Gmagick::getimagefilename

(PECL gmagick >= Unknown)

Gmagick::getimagefilename — Returns the filename of a particular image in a sequence

Descrição

public Gmagick::getimagefilename(): string

Returns the filename of a particular image in a sequence

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string with the filename of the image

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the format of a particular image in a sequence

  • « Gmagick::getimagefilename
  • Gmagick::getimagegamma »
  • PHP Manual
  • Gmagick
  • Returns the format of a particular image in a sequence

Gmagick::getimageformat

(PECL gmagick >= Unknown)

Gmagick::getimageformat — Returns the format of a particular image in a sequence

Descrição

public Gmagick::getimageformat(): string

Returns the format of a particular image in a sequence.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string containing the image format on success.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image gamma

  • « Gmagick::getimageformat
  • Gmagick::getimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Gets the image gamma

Gmagick::getimagegamma

(PECL gmagick >= Unknown)

Gmagick::getimagegamma — Gets the image gamma

Descrição

public Gmagick::getimagegamma(): float

Gets the image gamma

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image gamma on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the chromaticy green primary point

  • « Gmagick::getimagegamma
  • Gmagick::getimageheight »
  • PHP Manual
  • Gmagick
  • Returns the chromaticy green primary point

Gmagick::getimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::getimagegreenprimary — Returns the chromaticy green primary point

Descrição

public Gmagick::getimagegreenprimary(): array

Returns the chromaticity green primary point. Returns an array with the keys "x" and "y".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with the keys "x" and "y" on success.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the image height

  • « Gmagick::getimagegreenprimary
  • Gmagick::getimagehistogram »
  • PHP Manual
  • Gmagick
  • Returns the image height

Gmagick::getimageheight

(PECL gmagick >= Unknown)

Gmagick::getimageheight — Returns the image height

Descrição

public Gmagick::getimageheight(): int

Returns the image height

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image height in pixels.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image histogram

  • « Gmagick::getimageheight
  • Gmagick::getimageindex »
  • PHP Manual
  • Gmagick
  • Gets the image histogram

Gmagick::getimagehistogram

(PECL gmagick >= Unknown)

Gmagick::getimagehistogram — Gets the image histogram

Descrição

public Gmagick::getimagehistogram(): array

Returns the image histogram as an array of GmagickPixel objects. Throw an GmagickException on error.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image histogram as an array of GmagickPixel objects.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the index of the current active image

  • « Gmagick::getimagehistogram
  • Gmagick::getimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Gets the index of the current active image

Gmagick::getimageindex

(PECL gmagick >= Unknown)

Gmagick::getimageindex — Gets the index of the current active image

Descrição

public Gmagick::getimageindex(): int

Returns the index of the current active image within the Gmagick object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Index of current active image.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image interlace scheme

  • « Gmagick::getimageindex
  • Gmagick::getimageiterations »
  • PHP Manual
  • Gmagick
  • Gets the image interlace scheme

Gmagick::getimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::getimageinterlacescheme — Gets the image interlace scheme

Descrição

public Gmagick::getimageinterlacescheme(): int

Gets the image interlace scheme.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the interlace scheme as an integer on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image iterations

  • « Gmagick::getimageinterlacescheme
  • Gmagick::getimagematte »
  • PHP Manual
  • Gmagick
  • Gets the image iterations

Gmagick::getimageiterations

(PECL gmagick >= Unknown)

Gmagick::getimageiterations — Gets the image iterations

Descrição

public Gmagick::getimageiterations(): int

Gets the image iterations.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image iterations as an integer.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Check if the image has a matte channel

  • « Gmagick::getimageiterations
  • Gmagick::getimagemattecolor »
  • PHP Manual
  • Gmagick
  • Check if the image has a matte channel

Gmagick::getimagematte

(PECL gmagick >= Unknown)

Gmagick::getimagematte — Check if the image has a matte channel

Descrição

public Gmagick::getimagematte(): int

Returns true if the image has a matte channel, otherwise false.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the image has a matte channel, otherwise false.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the image matte color

  • « Gmagick::getimagematte
  • Gmagick::getimageprofile »
  • PHP Manual
  • Gmagick
  • Returns the image matte color

Gmagick::getimagemattecolor

(PECL gmagick >= Unknown)

Gmagick::getimagemattecolor — Returns the image matte color

Descrição

public Gmagick::getimagemattecolor(): GmagickPixel

Returns GmagickPixel object on success. Throw an GmagickException on error.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns GmagickPixel object on success.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the named image profile

  • « Gmagick::getimagemattecolor
  • Gmagick::getimageredprimary »
  • PHP Manual
  • Gmagick
  • Returns the named image profile

Gmagick::getimageprofile

(PECL gmagick >= Unknown)

Gmagick::getimageprofile — Returns the named image profile

Descrição

public Gmagick::getimageprofile(string $name): string

Returns the named image profile.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string containing the image profile.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the chromaticity red primary point

  • « Gmagick::getimageprofile
  • Gmagick::getimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Returns the chromaticity red primary point

Gmagick::getimageredprimary

(PECL gmagick >= Unknown)

Gmagick::getimageredprimary — Returns the chromaticity red primary point

Descrição

public Gmagick::getimageredprimary(): array

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image rendering intent

  • « Gmagick::getimageredprimary
  • Gmagick::getimageresolution »
  • PHP Manual
  • Gmagick
  • Gets the image rendering intent

Gmagick::getimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::getimagerenderingintent — Gets the image rendering intent

Descrição

public Gmagick::getimagerenderingintent(): int

Gets the image rendering intent

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Extracts a region of the image and returns it as a new wand

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image X and Y resolution

  • « Gmagick::getimagerenderingintent
  • Gmagick::getimagescene »
  • PHP Manual
  • Gmagick
  • Gets the image X and Y resolution

Gmagick::getimageresolution

(PECL gmagick >= Unknown)

Gmagick::getimageresolution — Gets the image X and Y resolution

Descrição

public Gmagick::getimageresolution(): array

Returns the resolution as an array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the resolution as an array.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image scene

  • « Gmagick::getimageresolution
  • Gmagick::getimagesignature »
  • PHP Manual
  • Gmagick
  • Gets the image scene

Gmagick::getimagescene

(PECL gmagick >= Unknown)

Gmagick::getimagescene — Gets the image scene

Descrição

public Gmagick::getimagescene(): int

Gets the image scene.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image scene.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Generates an SHA-256 message digest

  • « Gmagick::getimagescene
  • Gmagick::getimagetype »
  • PHP Manual
  • Gmagick
  • Generates an SHA-256 message digest

Gmagick::getimagesignature

(PECL gmagick >= Unknown)

Gmagick::getimagesignature — Generates an SHA-256 message digest

Descrição

public Gmagick::getimagesignature(): string

Generates an SHA-256 message digest for the image pixel stream.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string containing the SHA-256 hash of the file.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the potential image type

  • « Gmagick::getimagesignature
  • Gmagick::getimageunits »
  • PHP Manual
  • Gmagick
  • Gets the potential image type

Gmagick::getimagetype

(PECL gmagick >= Unknown)

Gmagick::getimagetype — Gets the potential image type

Descrição

public Gmagick::getimagetype(): int

Gets the potential image type.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the potential image type.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the image units of resolution

  • « Gmagick::getimagetype
  • Gmagick::getimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Gets the image units of resolution

Gmagick::getimageunits

(PECL gmagick >= Unknown)

Gmagick::getimageunits — Gets the image units of resolution

Descrição

public Gmagick::getimageunits(): int

Gets the image units of resolution.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image units of resolution.


Returns the chromaticity white point

  • « Gmagick::getimageunits
  • Gmagick::getimagewidth »
  • PHP Manual
  • Gmagick
  • Returns the chromaticity white point

Gmagick::getimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::getimagewhitepoint — Returns the chromaticity white point

Descrição

public Gmagick::getimagewhitepoint(): array

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the width of the image

  • « Gmagick::getimagewhitepoint
  • Gmagick::getpackagename »
  • PHP Manual
  • Gmagick
  • Returns the width of the image

Gmagick::getimagewidth

(PECL gmagick >= Unknown)

Gmagick::getimagewidth — Returns the width of the image

Descrição

public Gmagick::getimagewidth(): int

Returns the width of the image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image width.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the GraphicsMagick package name

  • « Gmagick::getimagewidth
  • Gmagick::getquantumdepth »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick package name

Gmagick::getpackagename

(PECL gmagick >= Unknown)

Gmagick::getpackagename — Returns the GraphicsMagick package name

Descrição

public Gmagick::getpackagename(): string

Returns the GraphicsMagick package name.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the GraphicsMagick package name as a string.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the Gmagick quantum depth as a string

  • « Gmagick::getpackagename
  • Gmagick::getreleasedate »
  • PHP Manual
  • Gmagick
  • Returns the Gmagick quantum depth as a string

Gmagick::getquantumdepth

(PECL gmagick >= Unknown)

Gmagick::getquantumdepth — Returns the Gmagick quantum depth as a string

Descrição

public Gmagick::getquantumdepth(): array

Returns the Gmagick quantum depth as a string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the Gmagick quantum depth as a string.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the GraphicsMagick release date as a string

  • « Gmagick::getquantumdepth
  • Gmagick::getsamplingfactors »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick release date as a string

Gmagick::getreleasedate

(PECL gmagick >= Unknown)

Gmagick::getreleasedate — Returns the GraphicsMagick release date as a string

Descrição

public Gmagick::getreleasedate(): string

Returns the GraphicsMagick release date as a string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the GraphicsMagick release date as a string.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Gets the horizontal and vertical sampling factor

  • « Gmagick::getreleasedate
  • Gmagick::getsize »
  • PHP Manual
  • Gmagick
  • Gets the horizontal and vertical sampling factor

Gmagick::getsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::getsamplingfactors — Gets the horizontal and vertical sampling factor

Descrição

public Gmagick::getsamplingfactors(): array

Gets the horizontal and vertical sampling factor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an associative array with the horizontal and vertical sampling factors of the image.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the size associated with the Gmagick object

  • « Gmagick::getsamplingfactors
  • Gmagick::getversion »
  • PHP Manual
  • Gmagick
  • Returns the size associated with the Gmagick object

Gmagick::getsize

(PECL gmagick >= Unknown)

Gmagick::getsize — Returns the size associated with the Gmagick object

Descrição

public Gmagick::getsize(): array

Returns the size associated with the Gmagick object as an array with the keys "columns" and "rows".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the size associated with the Gmagick object as an array with the keys "columns" and "rows".

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the GraphicsMagick API version

  • « Gmagick::getsize
  • Gmagick::hasnextimage »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick API version

Gmagick::getversion

(PECL gmagick >= Unknown)

Gmagick::getversion — Returns the GraphicsMagick API version

Descrição

public Gmagick::getversion(): array

Returns the GraphicsMagick API version as a string and as a number.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the GraphicsMagick API version as a string and as a number.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Checks if the object has more images

  • « Gmagick::getversion
  • Gmagick::haspreviousimage »
  • PHP Manual
  • Gmagick
  • Checks if the object has more images

Gmagick::hasnextimage

(PECL gmagick >= Unknown)

Gmagick::hasnextimage — Checks if the object has more images

Descrição

public Gmagick::hasnextimage(): mixed

Returns true if the object has more images when traversing the list in the forward direction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the object has more images when traversing the list in the forward direction, returns false if there are none.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Checks if the object has a previous image

  • « Gmagick::hasnextimage
  • Gmagick::implodeimage »
  • PHP Manual
  • Gmagick
  • Checks if the object has a previous image

Gmagick::haspreviousimage

(PECL gmagick >= Unknown)

Gmagick::haspreviousimage — Checks if the object has a previous image

Descrição

public Gmagick::haspreviousimage(): mixed

Returns true if the object has more images when traversing the list in the reverse direction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the object has more images when traversing the list in the reverse direction, returns false if there are none.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Creates a new image as a copy

  • « Gmagick::haspreviousimage
  • Gmagick::labelimage »
  • PHP Manual
  • Gmagick
  • Creates a new image as a copy

Gmagick::implodeimage

(PECL gmagick >= Unknown)

Gmagick::implodeimage — Creates a new image as a copy

Descrição

public Gmagick::implodeimage(float $radius): mixed

Creates a new image that is a copy of an existing one with the image pixels "imploded" by the specified percentage.

Parâmetros

radius

The radius of the implode.

Valor Retornado

Returns imploded Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Adds a label to an image

  • « Gmagick::implodeimage
  • Gmagick::levelimage »
  • PHP Manual
  • Gmagick
  • Adds a label to an image

Gmagick::labelimage

(PECL gmagick >= Unknown)

Gmagick::labelimage — Adds a label to an image

Descrição

public Gmagick::labelimage(string $label): mixed

Adds a label to an image.

Parâmetros

label

The label to add

Valor Retornado

Gmagick with label.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Adjusts the levels of an image

  • « Gmagick::labelimage
  • Gmagick::magnifyimage »
  • PHP Manual
  • Gmagick
  • Adjusts the levels of an image

Gmagick::levelimage

(PECL gmagick >= Unknown)

Gmagick::levelimage — Adjusts the levels of an image

Descrição

public Gmagick::levelimage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Gmagick::CHANNEL_DEFAULT
): mixed

Adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

Parâmetros

blackPoint

The image black point.

gamma

The gamma value.

whitePoint

The image white point.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Gmagick object with image leveled.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Scales an image proportionally 2x

  • « Gmagick::levelimage
  • Gmagick::mapimage »
  • PHP Manual
  • Gmagick
  • Scales an image proportionally 2x

Gmagick::magnifyimage

(PECL gmagick >= Unknown)

Gmagick::magnifyimage — Scales an image proportionally 2x

Descrição

public Gmagick::magnifyimage(): mixed

Conveniently scales an image proportionally to twice its original size.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Magnified Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Replaces the colors of an image with the closest color from a reference image

  • « Gmagick::magnifyimage
  • Gmagick::medianfilterimage »
  • PHP Manual
  • Gmagick
  • Replaces the colors of an image with the closest color from a reference image

Gmagick::mapimage

(PECL gmagick >= Unknown)

Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image

Descrição

public Gmagick::mapimage(gmagick $gmagick, bool $dither): Gmagick

Replaces the colors of an image with the closest color from a reference image.

Parâmetros

gmagick

The reference image.

dither

Set this integer value to something other than zero to dither the mapped image.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Applies a digital filter

  • « Gmagick::mapimage
  • Gmagick::minifyimage »
  • PHP Manual
  • Gmagick
  • Applies a digital filter

Gmagick::medianfilterimage

(PECL gmagick >= Unknown)

Gmagick::medianfilterimage — Applies a digital filter

Descrição

public Gmagick::medianfilterimage(float $radius): void

Applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

Parâmetros

radius

The radius of the pixel neighborhood.

Valor Retornado

Gmagick object with median filter applied.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Scales an image proportionally to half its size

  • « Gmagick::medianfilterimage
  • Gmagick::modulateimage »
  • PHP Manual
  • Gmagick
  • Scales an image proportionally to half its size

Gmagick::minifyimage

(PECL gmagick >= Unknown)

Gmagick::minifyimage — Scales an image proportionally to half its size

Descrição

public Gmagick::minifyimage(): Gmagick

A convenient method that scales an image proportionally to one-half its original size.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Control the brightness, saturation, and hue

  • « Gmagick::minifyimage
  • Gmagick::motionblurimage »
  • PHP Manual
  • Gmagick
  • Control the brightness, saturation, and hue

Gmagick::modulateimage

(PECL gmagick >= Unknown)

Gmagick::modulateimage — Control the brightness, saturation, and hue

Descrição

public Gmagick::modulateimage(float $brightness, float $saturation, float $hue): Gmagick

Lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

Parâmetros

brightness

The percent change in brighness (-100 thru +100).

saturation

The percent change in saturation (-100 thru +100)

hue

The percent change in hue (-100 thru +100)

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Simulates motion blur

  • « Gmagick::modulateimage
  • Gmagick::newimage »
  • PHP Manual
  • Gmagick
  • Simulates motion blur

Gmagick::motionblurimage

(PECL gmagick >= Unknown)

Gmagick::motionblurimage — Simulates motion blur

Descrição

public Gmagick::motionblurimage(float $radius, float $sigma, float $angle): Gmagick

Simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Gmagick::motionblurimage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

Parâmetros

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Creates a new image

  • « Gmagick::motionblurimage
  • Gmagick::nextimage »
  • PHP Manual
  • Gmagick
  • Creates a new image

Gmagick::newimage

(PECL gmagick >= Unknown)

Gmagick::newimage — Creates a new image

Descrição

public Gmagick::newimage(
int $width,
int $height,
string $background,
string $format = ?
): Gmagick

Creates a new image with the specified background color.

Parâmetros

width

Width of the new image.

height

Height of the new image.

background

The background color used for this image (as float).

format

Image format.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Moves to the next image

  • « Gmagick::newimage
  • Gmagick::normalizeimage »
  • PHP Manual
  • Gmagick
  • Moves to the next image

Gmagick::nextimage

(PECL gmagick >= Unknown)

Gmagick::nextimage — Moves to the next image

Descrição

public Gmagick::nextimage(): bool

Associates the next image in the image list with an Gmagick object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Enhances the contrast of a color image

  • « Gmagick::nextimage
  • Gmagick::oilpaintimage »
  • PHP Manual
  • Gmagick
  • Enhances the contrast of a color image

Gmagick::normalizeimage

(PECL gmagick >= Unknown)

Gmagick::normalizeimage — Enhances the contrast of a color image

Descrição

public Gmagick::normalizeimage(int $channel = ?): Gmagick

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available.

Parâmetros

channel

Identify which channel to normalize.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Simulates an oil painting

  • « Gmagick::normalizeimage
  • Gmagick::previousimage »
  • PHP Manual
  • Gmagick
  • Simulates an oil painting

Gmagick::oilpaintimage

(PECL gmagick >= Unknown)

Gmagick::oilpaintimage — Simulates an oil painting

Descrição

public Gmagick::oilpaintimage( float $radius ): Gmagick

Applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

Parâmetros

radius

The radius of the circular neighborhood.

Valor Retornado

The Gmagick object on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Move to the previous image in the object

  • « Gmagick::oilpaintimage
  • Gmagick::profileimage »
  • PHP Manual
  • Gmagick
  • Move to the previous image in the object

Gmagick::previousimage

(PECL gmagick >= Unknown)

Gmagick::previousimage — Move to the previous image in the object

Descrição

public Gmagick::previousimage(): bool

Associates the previous image in an image list with the Gmagick object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Adds or removes a profile from an image

  • « Gmagick::previousimage
  • Gmagick::quantizeimage »
  • PHP Manual
  • Gmagick
  • Adds or removes a profile from an image

Gmagick::profileimage

(PECL gmagick >= Unknown)

Gmagick::profileimage — Adds or removes a profile from an image

Descrição

public Gmagick::profileimage(string $name, string $profile): Gmagick

Adds or removes a ICC, IPTC, or generic profile from an image. If the profile is null, it is removed from the image otherwise added. Use a name of * and a profile of null to remove all profiles from the image.

Parâmetros

name

Name of profile to add or remove: ICC, IPTC, or generic profile.

profile

The profile.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Analyzes the colors within a reference image

  • « Gmagick::profileimage
  • Gmagick::quantizeimages »
  • PHP Manual
  • Gmagick
  • Analyzes the colors within a reference image

Gmagick::quantizeimage

(PECL gmagick >= Unknown)

Gmagick::quantizeimage — Analyzes the colors within a reference image

Descrição

public Gmagick::quantizeimage(
int $numColors,
int $colorspace,
int $treeDepth,
bool $dither,
bool $measureError
): Gmagick

Analyzes the colors within a reference image and chooses a fixed number of colors to represent the image. The goal of the algorithm is to minimize the color difference between the input and output image while minimizing the processing time.

Parâmetros

numColors

The number of colors.

colorspace

Perform color reduction in this colorspace, typically RGBColorspace.

treeDepth

Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors).% A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.

dither

A value other than zero distributes the difference between an original image and the corresponding color reduced algorithm to neighboring pixels along a Hilbert curve.

measureError

A value other than zero measures the difference between the original and quantized images. This difference is the total quantization error. The error is computed by summing over all pixels in an image the distance squared in RGB space between each reference pixel value and its quantized value.

Valor Retornado

The Gmagick object on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


The quantizeimages purpose

  • « Gmagick::quantizeimage
  • Gmagick::queryfontmetrics »
  • PHP Manual
  • Gmagick
  • The quantizeimages purpose

Gmagick::quantizeimages

(PECL gmagick >= Unknown)

Gmagick::quantizeimages — The quantizeimages purpose

Descrição

public Gmagick::quantizeimages(
int $numColors,
int $colorspace,
int $treeDepth,
bool $dither,
bool $measureError
): Gmagick

Analyzes the colors within a sequence of images and chooses a fixed number of colors to represent the image. The goal of the algorithm is to minimize the color difference between the input and output image while minimizing the processing time.

Parâmetros

numColors

The number of colors.

colorspace

Perform color reduction in this colorspace, typically RGBColorspace.

treeDepth

Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors).% A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.

dither

A value other than zero distributes the difference between an original image and the corresponding color reduced algorithm to neighboring pixels along a Hilbert curve.

measureError

A value other than zero measures the difference between the original and quantized images. This difference is the total quantization error. The error is computed by summing over all pixels in an image the distance squared in RGB space between each reference pixel value and its quantized value.

Valor Retornado

The Gmagick object on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns an array representing the font metrics

  • « Gmagick::quantizeimages
  • Gmagick::queryfonts »
  • PHP Manual
  • Gmagick
  • Returns an array representing the font metrics

Gmagick::queryfontmetrics

(PECL gmagick >= Unknown)

Gmagick::queryfontmetrics — Returns an array representing the font metrics

Descrição

public Gmagick::queryfontmetrics(GmagickDraw $draw, string $text): array

MagickQueryFontMetrics() returns an array representing the font metrics.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The Gmagick object on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns the configured fonts

  • « Gmagick::queryfontmetrics
  • Gmagick::queryformats »
  • PHP Manual
  • Gmagick
  • Returns the configured fonts

Gmagick::queryfonts

(PECL gmagick >= Unknown)

Gmagick::queryfonts — Returns the configured fonts

Descrição

public Gmagick::queryfonts(string $pattern = "*"): array

Returns fonts supported by Gmagick.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The Gmagick object on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Returns formats supported by Gmagick

  • « Gmagick::queryfonts
  • Gmagick::radialblurimage »
  • PHP Manual
  • Gmagick
  • Returns formats supported by Gmagick

Gmagick::queryformats

(PECL gmagick >= Unknown)

Gmagick::queryformats — Returns formats supported by Gmagick

Descrição

public Gmagick::queryformats(string $pattern = "*"): array

Returns formats supported by Gmagick.

Parâmetros

pattern

Specifies a string containing a pattern.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Radial blurs an image

  • « Gmagick::queryformats
  • Gmagick::raiseimage »
  • PHP Manual
  • Gmagick
  • Radial blurs an image

Gmagick::radialblurimage

(PECL gmagick >= Unknown)

Gmagick::radialblurimage — Radial blurs an image

Descrição

public Gmagick::radialblurimage(float $angle, int $channel = Gmagick::CHANNEL_DEFAULT): Gmagick

Radial blurs an image.

Parâmetros

angle

The angle of the blur in degrees.

channel

Related channel.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Creates a simulated 3d button-like effect

  • « Gmagick::radialblurimage
  • Gmagick::read »
  • PHP Manual
  • Gmagick
  • Creates a simulated 3d button-like effect

Gmagick::raiseimage

(PECL gmagick >= Unknown)

Gmagick::raiseimage — Creates a simulated 3d button-like effect

Descrição

public Gmagick::raiseimage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): Gmagick

Creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

Parâmetros

width

Width of the area to raise.

height

Height of the area to raise.

x

X coordinate.

y

Y coordinate.

raise

A value other than zero creates a 3-D raise effect, otherwise it has a lowered effect.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Reads image from filename

  • « Gmagick::raiseimage
  • Gmagick::readimage »
  • PHP Manual
  • Gmagick
  • Reads image from filename

Gmagick::read

(PECL gmagick >= Unknown)

Gmagick::read — Reads image from filename

Descrição

public Gmagick::read(string $filename): Gmagick

Reads image from filename.

Parâmetros

filename

The image filename.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Reads image from filename

  • « Gmagick::read
  • Gmagick::readimageblob »
  • PHP Manual
  • Gmagick
  • Reads image from filename

Gmagick::readimage

(PECL gmagick >= Unknown)

Gmagick::readimage — Reads image from filename

Descrição

public Gmagick::readimage(string $filename): Gmagick

Reads image from filename.

Parâmetros

filename

The image filename.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Reads image from a binary string

  • « Gmagick::readimage
  • Gmagick::readimagefile »
  • PHP Manual
  • Gmagick
  • Reads image from a binary string

Gmagick::readimageblob

(PECL gmagick >= Unknown)

Gmagick::readimageblob — Reads image from a binary string

Descrição

public Gmagick::readimageblob(string $imageContents, string $filename = ?): Gmagick

Reads image from a binary string.

Parâmetros

imageContents

Content of image.

filename

The image filename.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


The readimagefile purpose

  • « Gmagick::readimageblob
  • Gmagick::reducenoiseimage »
  • PHP Manual
  • Gmagick
  • The readimagefile purpose

Gmagick::readimagefile

(PECL gmagick >= Unknown)

Gmagick::readimagefile — The readimagefile purpose

Descrição

public Gmagick::readimagefile(resource $fp, string $filename = ?): Gmagick

Reads an image or image sequence from an open file descriptor.

Parâmetros

fp

The file descriptor.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Smooths the contours of an image

  • « Gmagick::readimagefile
  • Gmagick::removeimage »
  • PHP Manual
  • Gmagick
  • Smooths the contours of an image

Gmagick::reducenoiseimage

(PECL gmagick >= Unknown)

Gmagick::reducenoiseimage — Smooths the contours of an image

Descrição

public Gmagick::reducenoiseimage(float $radius): Gmagick

Smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and Gmagick::reducenoiseimage() selects a suitable radius for you.

Parâmetros

radius

The radius of the pixel neighborhood.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Removes an image from the image list

  • « Gmagick::reducenoiseimage
  • Gmagick::removeimageprofile »
  • PHP Manual
  • Gmagick
  • Removes an image from the image list

Gmagick::removeimage

(PECL gmagick >= Unknown)

Gmagick::removeimage — Removes an image from the image list

Descrição

public Gmagick::removeimage(): Gmagick

Removes an image from the image list.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Removes the named image profile and returns it

  • « Gmagick::removeimage
  • Gmagick::resampleimage »
  • PHP Manual
  • Gmagick
  • Removes the named image profile and returns it

Gmagick::removeimageprofile

(PECL gmagick >= Unknown)

Gmagick::removeimageprofile — Removes the named image profile and returns it

Descrição

public Gmagick::removeimageprofile(string $name): string

Removes the named image profile and returns it.

Parâmetros

name

Name of profile to return: ICC, IPTC, or generic profile.

Valor Retornado

The named profile.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Resample image to desired resolution

  • « Gmagick::removeimageprofile
  • Gmagick::resizeimage »
  • PHP Manual
  • Gmagick
  • Resample image to desired resolution

Gmagick::resampleimage

(PECL gmagick >= Unknown)

Gmagick::resampleimage — Resample image to desired resolution

Descrição

public Gmagick::resampleimage(
float $xResolution,
float $yResolution,
int $filter,
float $blur
): Gmagick

Resample image to desired resolution.

Parâmetros

xResolution

The new image x resolution.

yResolution

The new image y resolution.

filter

Image filter to use.

blur

The blur factor where larger than 1 is blurry, smaller than 1 is sharp.

Valor Retornado

The Gmagick object on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Scales an image

  • « Gmagick::resampleimage
  • Gmagick::rollimage »
  • PHP Manual
  • Gmagick
  • Scales an image

Gmagick::resizeimage

(PECL gmagick >= Unknown)

Gmagick::resizeimage — Scales an image

Descrição

public Gmagick::resizeimage(
int $width,
int $height,
int $filter,
float $blur,
bool $fit = false
): Gmagick

Scales an image to the desired dimensions with a filter.

Parâmetros

width

The number of columns in the scaled image.

height

The number of rows in the scaled image.

filter

Image filter to use.

blur

The blur factor where larger than 1 is blurry, lesser than 1 is sharp.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Offsets an image

  • « Gmagick::resizeimage
  • Gmagick::rotateimage »
  • PHP Manual
  • Gmagick
  • Offsets an image

Gmagick::rollimage

(PECL gmagick >= Unknown)

Gmagick::rollimage — Offsets an image

Descrição

public Gmagick::rollimage(int $x, int $y): Gmagick

Offsets an image as defined by x and y.

Parâmetros

x

The x offset.

y

The y offset.

Valor Retornado

The Gmagick object on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Rotates an image

  • « Gmagick::rollimage
  • Gmagick::scaleimage »
  • PHP Manual
  • Gmagick
  • Rotates an image

Gmagick::rotateimage

(PECL gmagick >= Unknown)

Gmagick::rotateimage — Rotates an image

Descrição

public Gmagick::rotateimage(mixed $color, float $degrees): Gmagick

Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

Parâmetros

color

The background pixel.

degrees

The number of degrees to rotate the image.

Valor Retornado

The Gmagick object on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Scales the size of an image

  • « Gmagick::rotateimage
  • Gmagick::separateimagechannel »
  • PHP Manual
  • Gmagick
  • Scales the size of an image

Gmagick::scaleimage

(PECL gmagick >= Unknown)

Gmagick::scaleimage — Scales the size of an image

Descrição

public Gmagick::scaleimage(int $width, int $height, bool $fit = false): Gmagick

Scales the size of an image to the given dimensions. The other parameter will be calculated if 0 is passed as either param.

Parâmetros

width

The number of columns in the scaled image.

height

The number of rows in the scaled image.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Separates a channel from the image

  • « Gmagick::scaleimage
  • Gmagick::setCompressionQuality »
  • PHP Manual
  • Gmagick
  • Separates a channel from the image

Gmagick::separateimagechannel

(PECL gmagick >= Unknown)

Gmagick::separateimagechannel — Separates a channel from the image

Descrição

public Gmagick::separateimagechannel(int $channel): Gmagick

Separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

Parâmetros

channel

One of the Channel constant (Gmagick::CHANNEL_*).

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the object's default compression quality

  • « Gmagick::separateimagechannel
  • Gmagick::setfilename »
  • PHP Manual
  • Gmagick
  • Sets the object's default compression quality

Gmagick::setCompressionQuality

(Não há informação de versão disponível, talvez apenas no Git)

Gmagick::setCompressionQuality — Sets the object's default compression quality

Descrição

Gmagick::setCompressionQuality( int $quality = 75 ): Gmagick

Sets the object's default compression quality.

Parâmetros

quality

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.

Exemplos

Exemplo #1 Gmagick::setCompressionQuality()

<?php
$gm = new Gmagick();
$gm->read("magick:rose");
$gm->setCompressionQuality(2);
?>


Sets the filename before you read or write the image

  • « Gmagick::setCompressionQuality
  • Gmagick::setimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • Sets the filename before you read or write the image

Gmagick::setfilename

(PECL gmagick >= Unknown)

Gmagick::setfilename — Sets the filename before you read or write the image

Descrição

public Gmagick::setfilename(string $filename): Gmagick

Sets the filename before you read or write an image file.

Parâmetros

filename

The image filename.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image background color

  • « Gmagick::setfilename
  • Gmagick::setimageblueprimary »
  • PHP Manual
  • Gmagick
  • Sets the image background color

Gmagick::setimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::setimagebackgroundcolor — Sets the image background color

Descrição

public Gmagick::setimagebackgroundcolor(GmagickPixel $color): Gmagick

Sets the image background color.

Parâmetros

color

The background pixel wand.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image chromaticity blue primary point

  • « Gmagick::setimagebackgroundcolor
  • Gmagick::setimagebordercolor »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity blue primary point

Gmagick::setimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point

Descrição

public Gmagick::setimageblueprimary(float $x, float $y): Gmagick

Sets the image chromaticity blue primary point.

Parâmetros

x

The blue primary x-point.

y

The blue primary y-point.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image border color

  • « Gmagick::setimageblueprimary
  • Gmagick::setimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Sets the image border color

Gmagick::setimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::setimagebordercolor — Sets the image border color

Descrição

public Gmagick::setimagebordercolor(GmagickPixel $color): Gmagick

Sets the image border color.

Parâmetros

color

The border pixel wand.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the depth of a particular image channel

  • « Gmagick::setimagebordercolor
  • Gmagick::setimagecolorspace »
  • PHP Manual
  • Gmagick
  • Sets the depth of a particular image channel

Gmagick::setimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::setimagechanneldepth — Sets the depth of a particular image channel

Descrição

public Gmagick::setimagechanneldepth(int $channel, int $depth): Gmagick

Sets the depth of a particular image channel.

Parâmetros

channel

One of the Channel constant (Gmagick::CHANNEL_*).

depth

The image depth in bits.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image colorspace

  • « Gmagick::setimagechanneldepth
  • Gmagick::setimagecompose »
  • PHP Manual
  • Gmagick
  • Sets the image colorspace

Gmagick::setimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::setimagecolorspace — Sets the image colorspace

Descrição

public Gmagick::setimagecolorspace(int $colorspace): Gmagick

Sets the image colorspace.

Parâmetros

colorspace

One of the Colorspace constant (Gmagick::COLORSPACE_*).

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image composite operator

  • « Gmagick::setimagecolorspace
  • Gmagick::setimagedelay »
  • PHP Manual
  • Gmagick
  • Sets the image composite operator

Gmagick::setimagecompose

(PECL gmagick >= Unknown)

Gmagick::setimagecompose — Sets the image composite operator

Descrição

public Gmagick::setimagecompose(int $composite): Gmagick

Sets the image composite operator.

Parâmetros

composite

The image composite operator.

Valor Retornado

The Gmagick object on success

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image delay

  • « Gmagick::setimagecompose
  • Gmagick::setimagedepth »
  • PHP Manual
  • Gmagick
  • Sets the image delay

Gmagick::setimagedelay

(PECL gmagick >= Unknown)

Gmagick::setimagedelay — Sets the image delay

Descrição

public Gmagick::setimagedelay(int $delay): Gmagick

Sets the image delay.

Parâmetros

delay

The image delay in 1/100th of a second.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image depth

  • « Gmagick::setimagedelay
  • Gmagick::setimagedispose »
  • PHP Manual
  • Gmagick
  • Sets the image depth

Gmagick::setimagedepth

(PECL gmagick >= Unknown)

Gmagick::setimagedepth — Sets the image depth

Descrição

public Gmagick::setimagedepth(int $depth): Gmagick

Sets the image depth.

Parâmetros

depth

The image depth in bits: 8, 16, or 32.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image disposal method

  • « Gmagick::setimagedepth
  • Gmagick::setimagefilename »
  • PHP Manual
  • Gmagick
  • Sets the image disposal method

Gmagick::setimagedispose

(PECL gmagick >= Unknown)

Gmagick::setimagedispose — Sets the image disposal method

Descrição

public Gmagick::setimagedispose(int $disposeType): Gmagick

Sets the image disposal method.

Parâmetros

disposeType

The image disposal type.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the filename of a particular image in a sequence

  • « Gmagick::setimagedispose
  • Gmagick::setimageformat »
  • PHP Manual
  • Gmagick
  • Sets the filename of a particular image in a sequence

Gmagick::setimagefilename

(PECL gmagick >= Unknown)

Gmagick::setimagefilename — Sets the filename of a particular image in a sequence

Descrição

public Gmagick::setimagefilename(string $filename): Gmagick

Sets the filename of a particular image in a sequence.

Parâmetros

filename

The image filename.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the format of a particular image

  • « Gmagick::setimagefilename
  • Gmagick::setimagegamma »
  • PHP Manual
  • Gmagick
  • Sets the format of a particular image

Gmagick::setimageformat

(PECL gmagick >= Unknown)

Gmagick::setimageformat — Sets the format of a particular image

Descrição

public Gmagick::setimageformat(string $imageFormat): Gmagick

Sets the format of a particular image in a sequence.

Parâmetros

imageFormat

The image format.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image gamma

  • « Gmagick::setimageformat
  • Gmagick::setimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Sets the image gamma

Gmagick::setimagegamma

(PECL gmagick >= Unknown)

Gmagick::setimagegamma — Sets the image gamma

Descrição

public Gmagick::setimagegamma(float $gamma): Gmagick

Sets the image gamma.

Parâmetros

gamma

The image gamma.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image chromaticity green primary point

  • « Gmagick::setimagegamma
  • Gmagick::setimageindex »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity green primary point

Gmagick::setimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point

Descrição

public Gmagick::setimagegreenprimary(float $x, float $y): Gmagick

Sets the image chromaticity green primary point.

Parâmetros

x

The chromaticity green primary x-point.

y

The chromaticity green primary y-point.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Set the iterator to the position in the image list specified with the index parameter

  • « Gmagick::setimagegreenprimary
  • Gmagick::setimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Set the iterator to the position in the image list specified with the index parameter

Gmagick::setimageindex

(PECL gmagick >= Unknown)

Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter

Descrição

public Gmagick::setimageindex(int $index): Gmagick

Set the iterator to the position in the image list specified with the index parameter.

Parâmetros

index

The scene number.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the interlace scheme of the image

  • « Gmagick::setimageindex
  • Gmagick::setimageiterations »
  • PHP Manual
  • Gmagick
  • Sets the interlace scheme of the image

Gmagick::setimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image

Descrição

public Gmagick::setimageinterlacescheme(int $interlace): Gmagick

Sets the interlace scheme of the image.

Parâmetros

interlace

One of the Interlace constant (Gmagick::INTERLACE_*).

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image iterations

  • « Gmagick::setimageinterlacescheme
  • Gmagick::setimageprofile »
  • PHP Manual
  • Gmagick
  • Sets the image iterations

Gmagick::setimageiterations

(PECL gmagick >= Unknown)

Gmagick::setimageiterations — Sets the image iterations

Descrição

public Gmagick::setimageiterations(int $iterations): Gmagick

Sets the image iterations.

Parâmetros

iterations

The image delay in 1/100th of a second.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Adds a named profile to the Gmagick object

  • « Gmagick::setimageiterations
  • Gmagick::setimageredprimary »
  • PHP Manual
  • Gmagick
  • Adds a named profile to the Gmagick object

Gmagick::setimageprofile

(PECL gmagick >= Unknown)

Gmagick::setimageprofile — Adds a named profile to the Gmagick object

Descrição

public Gmagick::setimageprofile(string $name, string $profile): Gmagick

Adds a named profile to the Gmagick object. If a profile with the same name already exists, it is replaced. This method differs from the Gmagick::profileimage() method in that it does not apply any CMS color profiles.

Parâmetros

name

Name of profile to add or remove: ICC, IPTC, or generic profile.

profile

The profile.

Valor Retornado

The Gmagick object on success.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image chromaticity red primary point

  • « Gmagick::setimageprofile
  • Gmagick::setimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity red primary point

Gmagick::setimageredprimary

(PECL gmagick >= Unknown)

Gmagick::setimageredprimary — Sets the image chromaticity red primary point

Descrição

public Gmagick::setimageredprimary(float $x, float $y): Gmagick

Sets the image chromaticity red primary point.

Parâmetros

x

The red primary x-point.

y

The red primary y-point.

Valor Retornado

The Gmagick object on success.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image rendering intent

  • « Gmagick::setimageredprimary
  • Gmagick::setimageresolution »
  • PHP Manual
  • Gmagick
  • Sets the image rendering intent

Gmagick::setimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::setimagerenderingintent — Sets the image rendering intent

Descrição

public Gmagick::setimagerenderingintent(int $rendering_intent): Gmagick

Sets the image rendering intent.

Parâmetros

rendering_intent

One of the Rendering Intent constant (Gmagick::RENDERINGINTENT_*).

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image resolution

  • « Gmagick::setimagerenderingintent
  • Gmagick::setimagescene »
  • PHP Manual
  • Gmagick
  • Sets the image resolution

Gmagick::setimageresolution

(PECL gmagick >= Unknown)

Gmagick::setimageresolution — Sets the image resolution

Descrição

public Gmagick::setimageresolution(float $xResolution, float $yResolution): Gmagick

Sets the image resolution.

Parâmetros

xResolution

The image x resolution.

yResolution

The image y resolution.

Valor Retornado

The Gmagick object on success.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image scene

  • « Gmagick::setimageresolution
  • Gmagick::setimagetype »
  • PHP Manual
  • Gmagick
  • Sets the image scene

Gmagick::setimagescene

(PECL gmagick >= Unknown)

Gmagick::setimagescene — Sets the image scene

Descrição

public Gmagick::setimagescene(int $scene): Gmagick

Sets the image scene.

Parâmetros

scene

The image scene number.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image type

  • « Gmagick::setimagescene
  • Gmagick::setimageunits »
  • PHP Manual
  • Gmagick
  • Sets the image type

Gmagick::setimagetype

(PECL gmagick >= Unknown)

Gmagick::setimagetype — Sets the image type

Descrição

public Gmagick::setimagetype(int $imgType): Gmagick

Sets the image type.

Parâmetros

imgType

One of the Image type constant (Gmagick::IMGTYPE_*).

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image units of resolution

  • « Gmagick::setimagetype
  • Gmagick::setimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Sets the image units of resolution

Gmagick::setimageunits

(PECL gmagick >= Unknown)

Gmagick::setimageunits — Sets the image units of resolution

Descrição

public Gmagick::setimageunits(int $resolution): Gmagick

Sets the image units of resolution.

Parâmetros

resolution

One of the Resolution constant (Gmagick::RESOLUTION_*).

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image chromaticity white point

  • « Gmagick::setimageunits
  • Gmagick::setsamplingfactors »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity white point

Gmagick::setimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::setimagewhitepoint — Sets the image chromaticity white point

Descrição

public Gmagick::setimagewhitepoint(float $x, float $y): Gmagick

Sets the image chromaticity white point.

Parâmetros

x

The white x-point.

y

The white y-point.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the image sampling factors

  • « Gmagick::setimagewhitepoint
  • Gmagick::setsize »
  • PHP Manual
  • Gmagick
  • Sets the image sampling factors

Gmagick::setsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::setsamplingfactors — Sets the image sampling factors

Descrição

public Gmagick::setsamplingfactors(array $factors): Gmagick

Sets the image sampling factors.

Parâmetros

factors

An array of floats representing the sampling factor for each color component (in RGB order).

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sets the size of the Gmagick object

  • « Gmagick::setsamplingfactors
  • Gmagick::shearimage »
  • PHP Manual
  • Gmagick
  • Sets the size of the Gmagick object

Gmagick::setsize

(PECL gmagick >= Unknown)

Gmagick::setsize — Sets the size of the Gmagick object

Descrição

public Gmagick::setsize(int $columns, int $rows): Gmagick

Sets the size of the Gmagick object. Set it before you read a raw image format such as Gmagick::COLORSPACE_RGB, Gmagick::COLORSPACE_GRAY, or Gmagick::COLORSPACE_CMYK.

Parâmetros

columns

The width in pixels.

rows

The height in pixels.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Creating a parallelogram

  • « Gmagick::setsize
  • Gmagick::solarizeimage »
  • PHP Manual
  • Gmagick
  • Creating a parallelogram

Gmagick::shearimage

(PECL gmagick >= Unknown)

Gmagick::shearimage — Creating a parallelogram

Descrição

public Gmagick::shearimage(mixed $color, float $xShear, float $yShear): Gmagick

Slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

Parâmetros

color

The background pixel wand.

xShear

The number of degrees to shear the image.

yShear

The number of degrees to shear the image.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Applies a solarizing effect to the image

  • « Gmagick::shearimage
  • Gmagick::spreadimage »
  • PHP Manual
  • Gmagick
  • Applies a solarizing effect to the image

Gmagick::solarizeimage

(PECL gmagick >= Unknown)

Gmagick::solarizeimage — Applies a solarizing effect to the image

Descrição

public Gmagick::solarizeimage(int $threshold): Gmagick

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

Parâmetros

threshold

Define the extent of the solarization.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Randomly displaces each pixel in a block

  • « Gmagick::solarizeimage
  • Gmagick::stripimage »
  • PHP Manual
  • Gmagick
  • Randomly displaces each pixel in a block

Gmagick::spreadimage

(PECL gmagick >= Unknown)

Gmagick::spreadimage — Randomly displaces each pixel in a block

Descrição

public Gmagick::spreadimage(float $radius): Gmagick

Special effects method that randomly displaces each pixel in a block defined by the radius parameter.

Parâmetros

radius

Choose a random pixel in a neighborhood of this extent.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Strips an image of all profiles and comments

  • « Gmagick::spreadimage
  • Gmagick::swirlimage »
  • PHP Manual
  • Gmagick
  • Strips an image of all profiles and comments

Gmagick::stripimage

(PECL gmagick >= Unknown)

Gmagick::stripimage — Strips an image of all profiles and comments

Descrição

public Gmagick::stripimage(): Gmagick

Strips an image of all profiles and comments.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Swirls the pixels about the center of the image

  • « Gmagick::stripimage
  • Gmagick::thumbnailimage »
  • PHP Manual
  • Gmagick
  • Swirls the pixels about the center of the image

Gmagick::swirlimage

(PECL gmagick >= Unknown)

Gmagick::swirlimage — Swirls the pixels about the center of the image

Descrição

public Gmagick::swirlimage(float $degrees): Gmagick

Swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

Parâmetros

degrees

Define the tightness of the swirling effect.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Changes the size of an image

  • « Gmagick::swirlimage
  • Gmagick::trimimage »
  • PHP Manual
  • Gmagick
  • Changes the size of an image

Gmagick::thumbnailimage

(PECL gmagick >= Unknown)

Gmagick::thumbnailimage — Changes the size of an image

Descrição

public Gmagick::thumbnailimage(int $width, int $height, bool $fit = false): Gmagick

Changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small low cost thumbnail images suited for display on the Web. If true is given as a third parameter then columns and rows parameters are used as maximums for each side. Both sides will be scaled down until the match or are smaller than the parameter given for the side.

Parâmetros

width

Image width.

height

Image height.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Remove edges from the image

  • « Gmagick::thumbnailimage
  • Gmagick::write »
  • PHP Manual
  • Gmagick
  • Remove edges from the image

Gmagick::trimimage

(PECL gmagick >= Unknown)

Gmagick::trimimage — Remove edges from the image

Descrição

public Gmagick::trimimage(float $fuzz): Gmagick

Remove edges that are the background color from the image.

Parâmetros

fuzz

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. This parameter represents the variation on the quantum range.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


Sinônimo de Gmagick::writeimage

  • « Gmagick::trimimage
  • Gmagick::writeimage »
  • PHP Manual
  • Gmagick
  • Sinônimo de Gmagick::writeimage

Gmagick::write

(PECL gmagick >= Unknown)

Gmagick::write — Sinônimo de Gmagick::writeimage()

Descrição

Este método é um apelido para: Gmagick::writeimage().


Writes an image to the specified filename

  • « Gmagick::write
  • GmagickDraw »
  • PHP Manual
  • Gmagick
  • Writes an image to the specified filename

Gmagick::writeimage

(PECL gmagick >= Unknown)

Gmagick::writeimage — Writes an image to the specified filename

Descrição

public Gmagick::writeimage(string $filename, bool $all_frames = false): Gmagick

Writes an image to the specified filename. If the filename parameter is null, the image is written to the filename set by Gmagick::readimage() or Gmagick::setimagefilename().

Parâmetros

filename

The image filename.

Valor Retornado

The Gmagick object.

Erros/Exceções

Lança uma exceção GmagickException em caso de erro.


The GmagickDraw class

(PECL gmagick >= Unknown)

Introdução

Resumo da classe

class GmagickDraw {
/* Métodos */
public annotate(float $x, float $y, string $text): GmagickDraw
public arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): GmagickDraw
public bezier(array $coordinate_array): GmagickDraw
public ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): GmagickDraw
public getfillcolor(): GmagickPixel
public getfillopacity(): float
public getfont(): mixed
public getfontsize(): float
public getfontstyle(): int
public getfontweight(): int
public getstrokecolor(): GmagickPixel
public getstrokeopacity(): float
public getstrokewidth(): float
public gettextdecoration(): int
public gettextencoding(): mixed
public line(
float $sx,
float $sy,
float $ex,
float $ey
): GmagickDraw
public point(float $x, float $y): GmagickDraw
public polygon(array $coordinates): GmagickDraw
public polyline(array $coordinate_array): GmagickDraw
public rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): GmagickDraw
public rotate(float $degrees): GmagickDraw
public roundrectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): GmagickDraw
public scale(float $x, float $y): GmagickDraw
public setfillcolor(mixed $color): GmagickDraw
public setfillopacity(float $fill_opacity): GmagickDraw
public setfont(string $font): GmagickDraw
public setfontsize(float $pointsize): GmagickDraw
public setfontstyle(int $style): GmagickDraw
public setfontweight(int $weight): GmagickDraw
public setstrokecolor(mixed $color): GmagickDraw
public setstrokeopacity(float $stroke_opacity): GmagickDraw
public setstrokewidth(float $width): GmagickDraw
public settextdecoration(int $decoration): GmagickDraw
public settextencoding(string $encoding): GmagickDraw
}

Índice

  • GmagickDraw::annotate — Draws text on the image
  • GmagickDraw::arc — Draws an arc
  • GmagickDraw::bezier — Draws a bezier curve
  • GmagickDraw::ellipse — Draws an ellipse on the image
  • GmagickDraw::getfillcolor — Returns the fill color
  • GmagickDraw::getfillopacity — Returns the opacity used when drawing
  • GmagickDraw::getfont — Returns the font
  • GmagickDraw::getfontsize — Returns the font pointsize
  • GmagickDraw::getfontstyle — Returns the font style
  • GmagickDraw::getfontweight — Returns the font weight
  • GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines
  • GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines
  • GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines
  • GmagickDraw::gettextdecoration — Returns the text decoration
  • GmagickDraw::gettextencoding — Returns the code set used for text annotations
  • GmagickDraw::line — Draws a line
  • GmagickDraw::point — Draws a point
  • GmagickDraw::polygon — Draws a polygon
  • GmagickDraw::polyline — Draws a polyline
  • GmagickDraw::rectangle — Draws a rectangle
  • GmagickDraw::rotate — Applies the specified rotation to the current coordinate space
  • GmagickDraw::roundrectangle — Draws a rounded rectangle
  • GmagickDraw::scale — Adjusts the scaling factor
  • GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects
  • GmagickDraw::setfillopacity — The setfillopacity purpose
  • GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text
  • GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text
  • GmagickDraw::setfontstyle — Sets the font style to use when annotating with text
  • GmagickDraw::setfontweight — Sets the font weight
  • GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines
  • GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines
  • GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines
  • GmagickDraw::settextdecoration — Specifies a decoration
  • GmagickDraw::settextencoding — Specifies the text code set


Draws text on the image

  • « GmagickDraw
  • GmagickDraw::arc »
  • PHP Manual
  • GmagickDraw
  • Draws text on the image

GmagickDraw::annotate

(PECL gmagick >= Unknown)

GmagickDraw::annotate — Draws text on the image

Descrição

public GmagickDraw::annotate(float $x, float $y, string $text): GmagickDraw

Draws text on the image.

Parâmetros

x

x ordinate to left of text

y

y ordinate to text baseline

text

text to draw

Valor Retornado

The GmagickDraw object.


Draws an arc

  • « GmagickDraw::annotate
  • GmagickDraw::bezier »
  • PHP Manual
  • GmagickDraw
  • Draws an arc

GmagickDraw::arc

(PECL gmagick >= Unknown)

GmagickDraw::arc — Draws an arc

Descrição

public GmagickDraw::arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): GmagickDraw

Draws an arc falling within a specified bounding rectangle on the image.

Parâmetros

sx

starting x ordinate of bounding rectangle

sy

starting y ordinate of bounding rectangle

ex

ending x ordinate of bounding rectangle

ey

ending y ordinate of bounding rectangle

sd

starting degrees of rotation

ed

ending degrees of rotation

Valor Retornado

The GmagickDraw object.


Draws a bezier curve

  • « GmagickDraw::arc
  • GmagickDraw::ellipse »
  • PHP Manual
  • GmagickDraw
  • Draws a bezier curve

GmagickDraw::bezier

(PECL gmagick >= Unknown)

GmagickDraw::bezier — Draws a bezier curve

Descrição

public GmagickDraw::bezier(array $coordinate_array): GmagickDraw

Draws a bezier curve through a set of points on the image.

Parâmetros

coordinate_array

Coordinates array

Valor Retornado

The GmagickDraw object.


Draws an ellipse on the image

  • « GmagickDraw::bezier
  • GmagickDraw::getfillcolor »
  • PHP Manual
  • GmagickDraw
  • Draws an ellipse on the image

GmagickDraw::ellipse

(PECL gmagick >= Unknown)

GmagickDraw::ellipse — Draws an ellipse on the image

Descrição

public GmagickDraw::ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): GmagickDraw

Draws an ellipse on the image.

Parâmetros

ox

origin x ordinate

oy

origin y ordinate

rx

radius in x

ry

radius in y

start

starting rotation in degrees

end

ending rotation in degrees

Valor Retornado

The GmagickDraw object.


Returns the fill color

  • « GmagickDraw::ellipse
  • GmagickDraw::getfillopacity »
  • PHP Manual
  • GmagickDraw
  • Returns the fill color

GmagickDraw::getfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::getfillcolor — Returns the fill color

Descrição

public GmagickDraw::getfillcolor(): GmagickPixel

Returns the fill color used for drawing filled objects.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The GmagickPixel fill color used for drawing filled objects.


Returns the opacity used when drawing

  • « GmagickDraw::getfillcolor
  • GmagickDraw::getfont »
  • PHP Manual
  • GmagickDraw
  • Returns the opacity used when drawing

GmagickDraw::getfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::getfillopacity — Returns the opacity used when drawing

Descrição

public GmagickDraw::getfillopacity(): float

Returns the opacity used when drawing

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the opacity used when drawing using the fill color or fill texture. Fully opaque is 1.0.


Returns the font

  • « GmagickDraw::getfillopacity
  • GmagickDraw::getfontsize »
  • PHP Manual
  • GmagickDraw
  • Returns the font

GmagickDraw::getfont

(PECL gmagick >= Unknown)

GmagickDraw::getfont — Returns the font

Descrição

public GmagickDraw::getfont(): mixed

Returns a string specifying the font used when annotating with text.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string on success and false if no font is set.


Returns the font pointsize

  • « GmagickDraw::getfont
  • GmagickDraw::getfontstyle »
  • PHP Manual
  • GmagickDraw
  • Returns the font pointsize

GmagickDraw::getfontsize

(PECL gmagick >= Unknown)

GmagickDraw::getfontsize — Returns the font pointsize

Descrição

public GmagickDraw::getfontsize(): float

Returns the font pointsize used when annotating with text.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the font size associated with the current GmagickDraw object.


Returns the font style

  • « GmagickDraw::getfontsize
  • GmagickDraw::getfontweight »
  • PHP Manual
  • GmagickDraw
  • Returns the font style

GmagickDraw::getfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::getfontstyle — Returns the font style

Descrição

public GmagickDraw::getfontstyle(): int

Returns the font style used when annotating with text.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the font style constant (STYLE_) associated with the GmagickDraw object or 0 if no style is set.


Returns the font weight

  • « GmagickDraw::getfontstyle
  • GmagickDraw::getstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Returns the font weight

GmagickDraw::getfontweight

(PECL gmagick >= Unknown)

GmagickDraw::getfontweight — Returns the font weight

Descrição

public GmagickDraw::getfontweight(): int

Returns the font weight used when annotating with text.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an int on success and 0 if no weight is set.


Returns the color used for stroking object outlines

  • « GmagickDraw::getfontweight
  • GmagickDraw::getstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Returns the color used for stroking object outlines

GmagickDraw::getstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines

Descrição

public GmagickDraw::getstrokecolor(): GmagickPixel

Returns the color used for stroking object outlines.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an GmagickPixel object which describes the color.


Returns the opacity of stroked object outlines

  • « GmagickDraw::getstrokecolor
  • GmagickDraw::getstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Returns the opacity of stroked object outlines

GmagickDraw::getstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines

Descrição

public GmagickDraw::getstrokeopacity(): float

Returns the opacity of stroked object outlines.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a float describing the opacity.


Returns the width of the stroke used to draw object outlines

  • « GmagickDraw::getstrokeopacity
  • GmagickDraw::gettextdecoration »
  • PHP Manual
  • GmagickDraw
  • Returns the width of the stroke used to draw object outlines

GmagickDraw::getstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines

Descrição

public GmagickDraw::getstrokewidth(): float

Returns the width of the stroke used to draw object outlines.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a float describing the stroke width.


Returns the text decoration

  • « GmagickDraw::getstrokewidth
  • GmagickDraw::gettextencoding »
  • PHP Manual
  • GmagickDraw
  • Returns the text decoration

GmagickDraw::gettextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::gettextdecoration — Returns the text decoration

Descrição

public GmagickDraw::gettextdecoration(): int

Returns the decoration applied when annotating with text.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns one of the DECORATION_ constants and 0 if no decoration is set.


Returns the code set used for text annotations

  • « GmagickDraw::gettextdecoration
  • GmagickDraw::line »
  • PHP Manual
  • GmagickDraw
  • Returns the code set used for text annotations

GmagickDraw::gettextencoding

(PECL gmagick >= Unknown)

GmagickDraw::gettextencoding — Returns the code set used for text annotations

Descrição

public GmagickDraw::gettextencoding(): mixed

Returns a string which specifies the code set used for text annotations.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string specifying the code set or false if text encoding is not set.


Draws a line

  • « GmagickDraw::gettextencoding
  • GmagickDraw::point »
  • PHP Manual
  • GmagickDraw
  • Draws a line

GmagickDraw::line

(PECL gmagick >= Unknown)

GmagickDraw::line — Draws a line

Descrição

public GmagickDraw::line(
float $sx,
float $sy,
float $ex,
float $ey
): GmagickDraw

Draws a line on the image using the current stroke color, stroke opacity, and stroke width.

Parâmetros

sx

starting x ordinate

sy

starting y ordinate

ex

ending x ordinate

ey

ending y ordinate

Valor Retornado

The GmagickDraw object.


Draws a point

  • « GmagickDraw::line
  • GmagickDraw::polygon »
  • PHP Manual
  • GmagickDraw
  • Draws a point

GmagickDraw::point

(PECL gmagick >= Unknown)

GmagickDraw::point — Draws a point

Descrição

public GmagickDraw::point(float $x, float $y): GmagickDraw

Draws a point using the current stroke color and stroke thickness at the specified coordinates.

Parâmetros

x

target x coordinate

y

target y coordinate

Valor Retornado

The GmagickDraw object.


Draws a polygon

  • « GmagickDraw::point
  • GmagickDraw::polyline »
  • PHP Manual
  • GmagickDraw
  • Draws a polygon

GmagickDraw::polygon

(PECL gmagick >= Unknown)

GmagickDraw::polygon — Draws a polygon

Descrição

public GmagickDraw::polygon(array $coordinates): GmagickDraw

Draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Parâmetros

coordinates

coordinate array

Valor Retornado

The GmagickDraw object.


Draws a polyline

  • « GmagickDraw::polygon
  • GmagickDraw::rectangle »
  • PHP Manual
  • GmagickDraw
  • Draws a polyline

GmagickDraw::polyline

(PECL gmagick >= Unknown)

GmagickDraw::polyline — Draws a polyline

Descrição

public GmagickDraw::polyline(array $coordinate_array): GmagickDraw

Draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Parâmetros

coordinate_array

The array of coordinates

Valor Retornado

The GmagickDraw object.


Draws a rectangle

  • « GmagickDraw::polyline
  • GmagickDraw::rotate »
  • PHP Manual
  • GmagickDraw
  • Draws a rectangle

GmagickDraw::rectangle

(PECL gmagick >= Unknown)

GmagickDraw::rectangle — Draws a rectangle

Descrição

public GmagickDraw::rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): GmagickDraw

Draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

Parâmetros

x1

x ordinate of first coordinate

y1

y ordinate of first coordinate

x2

x ordinate of second coordinate

y2

y ordinate of second coordinate

Valor Retornado

The GmagickDraw object.


Applies the specified rotation to the current coordinate space

  • « GmagickDraw::rectangle
  • GmagickDraw::roundrectangle »
  • PHP Manual
  • GmagickDraw
  • Applies the specified rotation to the current coordinate space

GmagickDraw::rotate

(PECL gmagick >= Unknown)

GmagickDraw::rotate — Applies the specified rotation to the current coordinate space

Descrição

public GmagickDraw::rotate(float $degrees): GmagickDraw

Applies the specified rotation to the current coordinate space.

Parâmetros

degrees

degrees of rotation

Valor Retornado

The GmagickDraw object.


Draws a rounded rectangle

  • « GmagickDraw::rotate
  • GmagickDraw::scale »
  • PHP Manual
  • GmagickDraw
  • Draws a rounded rectangle

GmagickDraw::roundrectangle

(PECL gmagick >= Unknown)

GmagickDraw::roundrectangle — Draws a rounded rectangle

Descrição

public GmagickDraw::roundrectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): GmagickDraw

Draws a rounded rectangle given two coordinates, x and y corner radiuses and using the current stroke, stroke width, and fill settings.

Parâmetros

x1

x ordinate of first coordinate

y1

y ordinate of first coordinate

x2

x ordinate of second coordinate

y2

y ordinate of second coordinate

rx

radius of corner in horizontal direction

ry

radius of corner in vertical direction

Valor Retornado

The GmagickDraw object.


Adjusts the scaling factor

  • « GmagickDraw::roundrectangle
  • GmagickDraw::setfillcolor »
  • PHP Manual
  • GmagickDraw
  • Adjusts the scaling factor

GmagickDraw::scale

(PECL gmagick >= Unknown)

GmagickDraw::scale — Adjusts the scaling factor

Descrição

public GmagickDraw::scale(float $x, float $y): GmagickDraw

Adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

Parâmetros

x

horizontal scale factor

y

vertical scale factor

Valor Retornado

The GmagickDraw object.


Sets the fill color to be used for drawing filled objects

  • « GmagickDraw::scale
  • GmagickDraw::setfillopacity »
  • PHP Manual
  • GmagickDraw
  • Sets the fill color to be used for drawing filled objects

GmagickDraw::setfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects

Descrição

public GmagickDraw::setfillcolor(mixed $color): GmagickDraw

Sets the fill color to be used for drawing filled objects.

Parâmetros

color

GmagickPixel or string indicating color to use for filling.

Valor Retornado

The GmagickDraw object on success.


The setfillopacity purpose

  • « GmagickDraw::setfillcolor
  • GmagickDraw::setfont »
  • PHP Manual
  • GmagickDraw
  • The setfillopacity purpose

GmagickDraw::setfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::setfillopacity — The setfillopacity purpose

Descrição

public GmagickDraw::setfillopacity(float $fill_opacity): GmagickDraw

Sets the opacity to use when drawing using the fill color or fill texture. Setting it to 1.0 will make fill full opaque.

Parâmetros

fill_opacity

Fill opacity

Valor Retornado

The GmagickDraw object.


Sets the fully-specified font to use when annotating with text

  • « GmagickDraw::setfillopacity
  • GmagickDraw::setfontsize »
  • PHP Manual
  • GmagickDraw
  • Sets the fully-specified font to use when annotating with text

GmagickDraw::setfont

(PECL gmagick >= Unknown)

GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text

Descrição

public GmagickDraw::setfont(string $font): GmagickDraw

Sets the fully-specified font to use when annotating with text

Parâmetros

font

font name

Valor Retornado

The GmagickDraw object.


Sets the font pointsize to use when annotating with text

  • « GmagickDraw::setfont
  • GmagickDraw::setfontstyle »
  • PHP Manual
  • GmagickDraw
  • Sets the font pointsize to use when annotating with text

GmagickDraw::setfontsize

(PECL gmagick >= Unknown)

GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text

Descrição

public GmagickDraw::setfontsize(float $pointsize): GmagickDraw

Sets the font pointsize to use when annotating with text.

Parâmetros

pointsize

Text pointsize

Valor Retornado

The GmagickDraw object.


Sets the font style to use when annotating with text

  • « GmagickDraw::setfontsize
  • GmagickDraw::setfontweight »
  • PHP Manual
  • GmagickDraw
  • Sets the font style to use when annotating with text

GmagickDraw::setfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::setfontstyle — Sets the font style to use when annotating with text

Descrição

public GmagickDraw::setfontstyle(int $style): GmagickDraw

Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

Parâmetros

style

Font style (NormalStyle, ItalicStyle, ObliqueStyle, AnyStyle)

Valor Retornado

The GmagickDraw object.


Sets the font weight

  • « GmagickDraw::setfontstyle
  • GmagickDraw::setstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Sets the font weight

GmagickDraw::setfontweight

(PECL gmagick >= Unknown)

GmagickDraw::setfontweight — Sets the font weight

Descrição

public GmagickDraw::setfontweight(int $weight): GmagickDraw

Sets the font weight to use when annotating with text.

Parâmetros

weight

Font weight (valid range 100-900)

Valor Retornado

The GmagickDraw object.


Sets the color used for stroking object outlines

  • « GmagickDraw::setfontweight
  • GmagickDraw::setstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Sets the color used for stroking object outlines

GmagickDraw::setstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines

Descrição

public GmagickDraw::setstrokecolor(mixed $color): GmagickDraw

Sets the color used for stroking object outlines.

Parâmetros

color

GmagickPixel or string representing the color for the stroke.

Valor Retornado

The GmagickDraw object on success.


Specifies the opacity of stroked object outlines

  • « GmagickDraw::setstrokecolor
  • GmagickDraw::setstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Specifies the opacity of stroked object outlines

GmagickDraw::setstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines

Descrição

public GmagickDraw::setstrokeopacity(float $stroke_opacity): GmagickDraw

Specifies the opacity of stroked object outlines.

Parâmetros

stroke_opacity

Stroke opacity. The value 1.0 is opaque.

Valor Retornado

The GmagickDraw object.


Sets the width of the stroke used to draw object outlines

  • « GmagickDraw::setstrokeopacity
  • GmagickDraw::settextdecoration »
  • PHP Manual
  • GmagickDraw
  • Sets the width of the stroke used to draw object outlines

GmagickDraw::setstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines

Descrição

public GmagickDraw::setstrokewidth(float $width): GmagickDraw

Sets the width of the stroke used to draw object outlines

Parâmetros

width

Stroke width

Valor Retornado

The GmagickDraw object.


Specifies a decoration

  • « GmagickDraw::setstrokewidth
  • GmagickDraw::settextencoding »
  • PHP Manual
  • GmagickDraw
  • Specifies a decoration

GmagickDraw::settextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::settextdecoration — Specifies a decoration

Descrição

public GmagickDraw::settextdecoration(int $decoration): GmagickDraw

Specifies a decoration to be applied when annotating with text.

Parâmetros

int

Text decoration. One of NoDecoration, UnderlineDecoration, OverlineDecoration, or LineThroughDecoration

Valor Retornado

The GmagickDraw object.


Specifies the text code set

  • « GmagickDraw::settextdecoration
  • GmagickPixel »
  • PHP Manual
  • GmagickDraw
  • Specifies the text code set

GmagickDraw::settextencoding

(PECL gmagick >= Unknown)

GmagickDraw::settextencoding — Specifies the text code set

Descrição

public GmagickDraw::settextencoding(string $encoding): GmagickDraw

Specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

Parâmetros

encoding

Character string specifying text encoding

Valor Retornado

The GmagickDraw object.


The GmagickPixel class

(PECL gmagick >= Unknown)

Introdução

Resumo da classe

class GmagickPixel {
/* Métodos */
public __construct(string $color = ?)
public getcolor(bool $as_array = false, bool $normalize_array = false): mixed
public getcolorcount(): int
public getcolorvalue(int $color): float
public setcolor(string $color): GmagickPixel
public setcolorvalue(int $color, float $value): GmagickPixel
}

Índice

  • GmagickPixel::__construct — The GmagickPixel constructor
  • GmagickPixel::getcolor — Returns the color
  • GmagickPixel::getcolorcount — Returns the color count associated with this color
  • GmagickPixel::getcolorvalue — Gets the normalized value of the provided color channel
  • GmagickPixel::setcolor — Sets the color
  • GmagickPixel::setcolorvalue — Sets the normalized value of one of the channels


The GmagickPixel constructor

  • « GmagickPixel
  • GmagickPixel::getcolor »
  • PHP Manual
  • GmagickPixel
  • The GmagickPixel constructor

GmagickPixel::__construct

(PECL gmagick >= Unknown)

GmagickPixel::__construct — The GmagickPixel constructor

Descrição

public GmagickPixel::__construct(string $color = ?)

Constructs an GmagickPixel object. If a color is specified, the object is constructed and then initialised with that color before being returned.

Parâmetros

color

The optional color string to use as the initial value of this object.


Returns the color

  • « GmagickPixel::__construct
  • GmagickPixel::getcolorcount »
  • PHP Manual
  • GmagickPixel
  • Returns the color

GmagickPixel::getcolor

(PECL gmagick >= Unknown)

GmagickPixel::getcolor — Returns the color

Descrição

public GmagickPixel::getcolor(bool $as_array = false, bool $normalize_array = false): mixed

Returns the color described by the GmagickPixel object, as a string or an array. If the color has an opacity channel set, this is provided as a fourth value in the list.

Parâmetros

as_array

true to indicate return of array instead of string.

normalize_array

true to normalize the color values.

Valor Retornado

A string or an array of channel values, each normalized if true is given as normalize_array. Throws GmagickPixelException on error.


Returns the color count associated with this color

  • « GmagickPixel::getcolor
  • GmagickPixel::getcolorvalue »
  • PHP Manual
  • GmagickPixel
  • Returns the color count associated with this color

GmagickPixel::getcolorcount

(PECL gmagick >= Unknown)

GmagickPixel::getcolorcount — Returns the color count associated with this color

Descrição

public GmagickPixel::getcolorcount(): int

Returns the color count associated with this color.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the color count as an integer on success, throws GmagickPixelException on failure.


Gets the normalized value of the provided color channel

  • « GmagickPixel::getcolorcount
  • GmagickPixel::setcolor »
  • PHP Manual
  • GmagickPixel
  • Gets the normalized value of the provided color channel

GmagickPixel::getcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::getcolorvalue — Gets the normalized value of the provided color channel

Descrição

public GmagickPixel::getcolorvalue(int $color): float

Retrieves the value of the color channel specified, as a floating-point number between 0 and 1.

Parâmetros

color

The channel to check, specified as one of the Gmagick channel constants.

Valor Retornado

The value of the channel, as a normalized floating-point number, throwing GmagickPixelException on error.


Sets the color

  • « GmagickPixel::getcolorvalue
  • GmagickPixel::setcolorvalue »
  • PHP Manual
  • GmagickPixel
  • Sets the color

GmagickPixel::setcolor

(PECL gmagick >= Unknown)

GmagickPixel::setcolor — Sets the color

Descrição

public GmagickPixel::setcolor(string $color): GmagickPixel

Sets the color described by the GmagickPixel object, with a string (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

Parâmetros

color

The color definition to use in order to initialise the GmagickPixel object.

Valor Retornado

The GmagickPixel object.


Sets the normalized value of one of the channels

  • « GmagickPixel::setcolor
  • ImageMagick »
  • PHP Manual
  • GmagickPixel
  • Sets the normalized value of one of the channels

GmagickPixel::setcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::setcolorvalue — Sets the normalized value of one of the channels

Descrição

public GmagickPixel::setcolorvalue(int $color, float $value): GmagickPixel

Sets the value of the specified channel of this object to the provided value, which should be between 0 and 1. This function can be used to provide an opacity channel to a GmagickPixel object.

Parâmetros

color

One of the Gmagick channel color constants.

value

The value to set this channel to, ranging from 0 to 1.

Valor Retornado

The GmagickPixel object.


Image Processing (ImageMagick)

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Basic usage
  • Imagick — The Imagick class
    • Imagick::adaptiveBlurImage — Adds adaptive blur filter to image
    • Imagick::adaptiveResizeImage — Adaptively resize image with data dependent triangulation
    • Imagick::adaptiveSharpenImage — Adaptively sharpen the image
    • Imagick::adaptiveThresholdImage — Selects a threshold for each pixel based on a range of intensity
    • Imagick::addImage — Adds new image to Imagick object image list
    • Imagick::addNoiseImage — Adds random noise to the image
    • Imagick::affineTransformImage — Transforms an image
    • Imagick::animateImages — Animates an image or images
    • Imagick::annotateImage — Annotates an image with text
    • Imagick::appendImages — Append a set of images
    • Imagick::autoLevelImage — Adjusts the levels of a particular image channel
    • Imagick::averageImages — Average a set of images
    • Imagick::blackThresholdImage — Forces all pixels below the threshold into black
    • Imagick::blueShiftImage — Mutes the colors of the image
    • Imagick::blurImage — Adds blur filter to image
    • Imagick::borderImage — Surrounds the image with a border
    • Imagick::brightnessContrastImage — Change the brightness and/or contrast of an image
    • Imagick::charcoalImage — Simulates a charcoal drawing
    • Imagick::chopImage — Removes a region of an image and trims
    • Imagick::clampImage — Restricts the color range from 0 to the quantum depth.
    • Imagick::clear — Clears all resources associated to Imagick object
    • Imagick::clipImage — Clips along the first path from the 8BIM profile
    • Imagick::clipImagePath — Clips along the named paths from the 8BIM profile, if present
    • Imagick::clipPathImage — Clips along the named paths from the 8BIM profile
    • Imagick::clone — Makes an exact copy of the Imagick object
    • Imagick::clutImage — Replaces colors in the image
    • Imagick::coalesceImages — Composites a set of images
    • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
    • Imagick::colorizeImage — Blends the fill color with the image
    • Imagick::colorMatrixImage — Apply color transformation to an image
    • Imagick::combineImages — Combines one or more images into a single image
    • Imagick::commentImage — Adds a comment to your image
    • Imagick::compareImageChannels — Returns the difference in one or more images
    • Imagick::compareImageLayers — Returns the maximum bounding region between images
    • Imagick::compareImages — Compares an image to a reconstructed image
    • Imagick::compositeImage — Composite one image onto another
    • Imagick::__construct — The Imagick constructor
    • Imagick::contrastImage — Change the contrast of the image
    • Imagick::contrastStretchImage — Enhances the contrast of a color image
    • Imagick::convolveImage — Applies a custom convolution kernel to the image
    • Imagick::count — Get the number of images
    • Imagick::cropImage — Extracts a region of the image
    • Imagick::cropThumbnailImage — Creates a crop thumbnail
    • Imagick::current — Returns a reference to the current Imagick object
    • Imagick::cycleColormapImage — Displaces an image's colormap
    • Imagick::decipherImage — Deciphers an image
    • Imagick::deconstructImages — Returns certain pixel differences between images
    • Imagick::deleteImageArtifact — Delete image artifact
    • Imagick::deleteImageProperty — Deletes an image property
    • Imagick::deskewImage — Removes skew from the image
    • Imagick::despeckleImage — Reduces the speckle noise in an image
    • Imagick::destroy — Destroys the Imagick object
    • Imagick::displayImage — Displays an image
    • Imagick::displayImages — Displays an image or image sequence
    • Imagick::distortImage — Distorts an image using various distortion methods
    • Imagick::drawImage — Renders the ImagickDraw object on the current image
    • Imagick::edgeImage — Enhance edges within the image
    • Imagick::embossImage — Returns a grayscale image with a three-dimensional effect
    • Imagick::encipherImage — Enciphers an image
    • Imagick::enhanceImage — Improves the quality of a noisy image
    • Imagick::equalizeImage — Equalizes the image histogram
    • Imagick::evaluateImage — Applies an expression to an image
    • Imagick::exportImagePixels — Exports raw image pixels
    • Imagick::extentImage — Set image size
    • Imagick::filter — Applies a custom convolution kernel to the image
    • Imagick::flattenImages — Merges a sequence of images
    • Imagick::flipImage — Creates a vertical mirror image
    • Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target
    • Imagick::flopImage — Creates a horizontal mirror image
    • Imagick::forwardFourierTransformImage — Implements the discrete Fourier transform (DFT)
    • Imagick::frameImage — Adds a simulated three-dimensional border
    • Imagick::functionImage — Applies a function on the image
    • Imagick::fxImage — Evaluate expression for each pixel in the image
    • Imagick::gammaImage — Gamma-corrects an image
    • Imagick::gaussianBlurImage — Blurs an image
    • Imagick::getColorspace — Gets the colorspace
    • Imagick::getCompression — Gets the object compression type
    • Imagick::getCompressionQuality — Gets the object compression quality
    • Imagick::getCopyright — Returns the ImageMagick API copyright as a string
    • Imagick::getFilename — The filename associated with an image sequence
    • Imagick::getFont — Gets font
    • Imagick::getFormat — Returns the format of the Imagick object
    • Imagick::getGravity — Gets the gravity
    • Imagick::getHomeURL — Returns the ImageMagick home URL
    • Imagick::getImage — Returns a new Imagick object
    • Imagick::getImageAlphaChannel — Checks if the image has an alpha channel
    • Imagick::getImageArtifact — Get image artifact
    • Imagick::getImageAttribute — Returns a named attribute
    • Imagick::getImageBackgroundColor — Returns the image background color
    • Imagick::getImageBlob — Returns the image sequence as a blob
    • Imagick::getImageBluePrimary — Returns the chromaticy blue primary point
    • Imagick::getImageBorderColor — Returns the image border color
    • Imagick::getImageChannelDepth — Gets the depth for a particular image channel
    • Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image
    • Imagick::getImageChannelDistortions — Gets channel distortions
    • Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels
    • Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose
    • Imagick::getImageChannelMean — Gets the mean and standard deviation
    • Imagick::getImageChannelRange — Gets channel range
    • Imagick::getImageChannelStatistics — Returns statistics for each channel in the image
    • Imagick::getImageClipMask — Gets image clip mask
    • Imagick::getImageColormapColor — Returns the color of the specified colormap index
    • Imagick::getImageColors — Gets the number of unique colors in the image
    • Imagick::getImageColorspace — Gets the image colorspace
    • Imagick::getImageCompose — Returns the composite operator associated with the image
    • Imagick::getImageCompression — Gets the current image's compression type
    • Imagick::getImageCompressionQuality — Gets the current image's compression quality
    • Imagick::getImageDelay — Gets the image delay
    • Imagick::getImageDepth — Gets the image depth
    • Imagick::getImageDispose — Gets the image disposal method
    • Imagick::getImageDistortion — Compares an image to a reconstructed image
    • Imagick::getImageExtrema — Gets the extrema for the image
    • Imagick::getImageFilename — Returns the filename of a particular image in a sequence
    • Imagick::getImageFormat — Returns the format of a particular image in a sequence
    • Imagick::getImageGamma — Gets the image gamma
    • Imagick::getImageGeometry — Gets the width and height as an associative array
    • Imagick::getImageGravity — Gets the image gravity
    • Imagick::getImageGreenPrimary — Returns the chromaticy green primary point
    • Imagick::getImageHeight — Returns the image height
    • Imagick::getImageHistogram — Gets the image histogram
    • Imagick::getImageIndex — Gets the index of the current active image
    • Imagick::getImageInterlaceScheme — Gets the image interlace scheme
    • Imagick::getImageInterpolateMethod — Returns the interpolation method
    • Imagick::getImageIterations — Gets the image iterations
    • Imagick::getImageLength — Returns the image length in bytes
    • Imagick::getImageMatte — Return if the image has a matte channel
    • Imagick::getImageMatteColor — Returns the image matte color
    • Imagick::getImageMimeType — Returns the image mime-type
    • Imagick::getImageOrientation — Gets the image orientation
    • Imagick::getImagePage — Returns the page geometry
    • Imagick::getImagePixelColor — Returns the color of the specified pixel
    • Imagick::getImageProfile — Returns the named image profile
    • Imagick::getImageProfiles — Returns the image profiles
    • Imagick::getImageProperties — Returns the image properties
    • Imagick::getImageProperty — Returns the named image property
    • Imagick::getImageRedPrimary — Returns the chromaticity red primary point
    • Imagick::getImageRegion — Extracts a region of the image
    • Imagick::getImageRenderingIntent — Gets the image rendering intent
    • Imagick::getImageResolution — Gets the image X and Y resolution
    • Imagick::getImagesBlob — Returns all image sequences as a blob
    • Imagick::getImageScene — Gets the image scene
    • Imagick::getImageSignature — Generates an SHA-256 message digest
    • Imagick::getImageSize — Returns the image length in bytes
    • Imagick::getImageTicksPerSecond — Gets the image ticks-per-second
    • Imagick::getImageTotalInkDensity — Gets the image total ink density
    • Imagick::getImageType — Gets the potential image type
    • Imagick::getImageUnits — Gets the image units of resolution
    • Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method
    • Imagick::getImageWhitePoint — Returns the chromaticity white point
    • Imagick::getImageWidth — Returns the image width
    • Imagick::getInterlaceScheme — Gets the object interlace scheme
    • Imagick::getIteratorIndex — Gets the index of the current active image
    • Imagick::getNumberImages — Returns the number of images in the object
    • Imagick::getOption — Returns a value associated with the specified key
    • Imagick::getPackageName — Returns the ImageMagick package name
    • Imagick::getPage — Returns the page geometry
    • Imagick::getPixelIterator — Returns a MagickPixelIterator
    • Imagick::getPixelRegionIterator — Get an ImagickPixelIterator for an image section
    • Imagick::getPointSize — Gets point size
    • Imagick::getQuantum — Returns the ImageMagick quantum range
    • Imagick::getQuantumDepth — Gets the quantum depth
    • Imagick::getQuantumRange — Returns the Imagick quantum range
    • Imagick::getRegistry — Get a StringRegistry entry
    • Imagick::getReleaseDate — Returns the ImageMagick release date
    • Imagick::getResource — Returns the specified resource's memory usage
    • Imagick::getResourceLimit — Returns the specified resource limit
    • Imagick::getSamplingFactors — Gets the horizontal and vertical sampling factor
    • Imagick::getSize — Returns the size associated with the Imagick object
    • Imagick::getSizeOffset — Returns the size offset
    • Imagick::getVersion — Returns the ImageMagick API version
    • Imagick::haldClutImage — Replaces colors in the image
    • Imagick::hasNextImage — Checks if the object has more images
    • Imagick::hasPreviousImage — Checks if the object has a previous image
    • Imagick::identifyFormat — Formats a string with image details
    • Imagick::identifyImage — Identifies an image and fetches attributes
    • Imagick::implodeImage — Creates a new image as a copy
    • Imagick::importImagePixels — Imports image pixels
    • Imagick::inverseFourierTransformImage — Implements the inverse discrete Fourier transform (DFT)
    • Imagick::labelImage — Adds a label to an image
    • Imagick::levelImage — Adjusts the levels of an image
    • Imagick::linearStretchImage — Stretches with saturation the image intensity
    • Imagick::liquidRescaleImage — Animates an image or images
    • Imagick::listRegistry — List all the registry settings
    • Imagick::magnifyImage — Scales an image proportionally 2x
    • Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image
    • Imagick::matteFloodfillImage — Changes the transparency value of a color
    • Imagick::medianFilterImage — Applies a digital filter
    • Imagick::mergeImageLayers — Merges image layers
    • Imagick::minifyImage — Scales an image proportionally to half its size
    • Imagick::modulateImage — Control the brightness, saturation, and hue
    • Imagick::montageImage — Creates a composite image
    • Imagick::morphImages — Method morphs a set of images
    • Imagick::morphology — Applies a user supplied kernel to the image according to the given morphology method.
    • Imagick::mosaicImages — Forms a mosaic from images
    • Imagick::motionBlurImage — Simulates motion blur
    • Imagick::negateImage — Negates the colors in the reference image
    • Imagick::newImage — Creates a new image
    • Imagick::newPseudoImage — Creates a new image
    • Imagick::nextImage — Moves to the next image
    • Imagick::normalizeImage — Enhances the contrast of a color image
    • Imagick::oilPaintImage — Simulates an oil painting
    • Imagick::opaquePaintImage — Changes the color value of any pixel that matches target
    • Imagick::optimizeImageLayers — Removes repeated portions of images to optimize
    • Imagick::orderedPosterizeImage — Performs an ordered dither
    • Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target
    • Imagick::paintOpaqueImage — Change any pixel that matches color
    • Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill
    • Imagick::pingImage — Fetch basic attributes about the image
    • Imagick::pingImageBlob — Quickly fetch attributes
    • Imagick::pingImageFile — Get basic image attributes in a lightweight manner
    • Imagick::polaroidImage — Simulates a Polaroid picture
    • Imagick::posterizeImage — Reduces the image to a limited number of color level
    • Imagick::previewImages — Quickly pin-point appropriate parameters for image processing
    • Imagick::previousImage — Move to the previous image in the object
    • Imagick::profileImage — Adds or removes a profile from an image
    • Imagick::quantizeImage — Analyzes the colors within a reference image
    • Imagick::quantizeImages — Analyzes the colors within a sequence of images
    • Imagick::queryFontMetrics — Returns an array representing the font metrics
    • Imagick::queryFonts — Returns the configured fonts
    • Imagick::queryFormats — Returns formats supported by Imagick
    • Imagick::radialBlurImage — Radial blurs an image
    • Imagick::raiseImage — Creates a simulated 3d button-like effect
    • Imagick::randomThresholdImage — Creates a high-contrast, two-color image
    • Imagick::readImage — Reads image from filename
    • Imagick::readImageBlob — Reads image from a binary string
    • Imagick::readImageFile — Reads image from open filehandle
    • Imagick::readimages — Reads image from an array of filenames
    • Imagick::recolorImage — Recolors image
    • Imagick::reduceNoiseImage — Smooths the contours of an image
    • Imagick::remapImage — Remaps image colors
    • Imagick::removeImage — Removes an image from the image list
    • Imagick::removeImageProfile — Removes the named image profile and returns it
    • Imagick::render — Renders all preceding drawing commands
    • Imagick::resampleImage — Resample image to desired resolution
    • Imagick::resetImagePage — Reset image page
    • Imagick::resizeImage — Scales an image
    • Imagick::rollImage — Offsets an image
    • Imagick::rotateImage — Rotates an image
    • Imagick::rotationalBlurImage — Rotational blurs an image
    • Imagick::roundCorners — Rounds image corners
    • Imagick::sampleImage — Scales an image with pixel sampling
    • Imagick::scaleImage — Scales the size of an image
    • Imagick::segmentImage — Segments an image
    • Imagick::selectiveBlurImage — Selectively blur an image within a contrast threshold
    • Imagick::separateImageChannel — Separates a channel from the image
    • Imagick::sepiaToneImage — Sepia tones an image
    • Imagick::setBackgroundColor — Sets the object's default background color
    • Imagick::setColorspace — Set colorspace
    • Imagick::setCompression — Sets the object's default compression type
    • Imagick::setCompressionQuality — Sets the object's default compression quality
    • Imagick::setFilename — Sets the filename before you read or write the image
    • Imagick::setFirstIterator — Sets the Imagick iterator to the first image
    • Imagick::setFont — Sets font
    • Imagick::setFormat — Sets the format of the Imagick object
    • Imagick::setGravity — Sets the gravity
    • Imagick::setImage — Replaces image in the object
    • Imagick::setImageAlphaChannel — Sets image alpha channel
    • Imagick::setImageArtifact — Set image artifact
    • Imagick::setImageAttribute — Sets an image attribute
    • Imagick::setImageBackgroundColor — Sets the image background color
    • Imagick::setImageBias — Sets the image bias for any method that convolves an image
    • Imagick::setImageBiasQuantum — Sets the image bias
    • Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point
    • Imagick::setImageBorderColor — Sets the image border color
    • Imagick::setImageChannelDepth — Sets the depth of a particular image channel
    • Imagick::setImageClipMask — Sets image clip mask
    • Imagick::setImageColormapColor — Sets the color of the specified colormap index
    • Imagick::setImageColorspace — Sets the image colorspace
    • Imagick::setImageCompose — Sets the image composite operator
    • Imagick::setImageCompression — Sets the image compression
    • Imagick::setImageCompressionQuality — Sets the image compression quality
    • Imagick::setImageDelay — Sets the image delay
    • Imagick::setImageDepth — Sets the image depth
    • Imagick::setImageDispose — Sets the image disposal method
    • Imagick::setImageExtent — Sets the image size
    • Imagick::setImageFilename — Sets the filename of a particular image
    • Imagick::setImageFormat — Sets the format of a particular image
    • Imagick::setImageGamma — Sets the image gamma
    • Imagick::setImageGravity — Sets the image gravity
    • Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point
    • Imagick::setImageIndex — Set the iterator position
    • Imagick::setImageInterlaceScheme — Sets the image compression
    • Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method
    • Imagick::setImageIterations — Sets the image iterations
    • Imagick::setImageMatte — Sets the image matte channel
    • Imagick::setImageMatteColor — Sets the image matte color
    • Imagick::setImageOpacity — Sets the image opacity level
    • Imagick::setImageOrientation — Sets the image orientation
    • Imagick::setImagePage — Sets the page geometry of the image
    • Imagick::setImageProfile — Adds a named profile to the Imagick object
    • Imagick::setImageProperty — Sets an image property
    • Imagick::setImageRedPrimary — Sets the image chromaticity red primary point
    • Imagick::setImageRenderingIntent — Sets the image rendering intent
    • Imagick::setImageResolution — Sets the image resolution
    • Imagick::setImageScene — Sets the image scene
    • Imagick::setImageTicksPerSecond — Sets the image ticks-per-second
    • Imagick::setImageType — Sets the image type
    • Imagick::setImageUnits — Sets the image units of resolution
    • Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method
    • Imagick::setImageWhitePoint — Sets the image chromaticity white point
    • Imagick::setInterlaceScheme — Sets the image compression
    • Imagick::setIteratorIndex — Set the iterator position
    • Imagick::setLastIterator — Sets the Imagick iterator to the last image
    • Imagick::setOption — Set an option
    • Imagick::setPage — Sets the page geometry of the Imagick object
    • Imagick::setPointSize — Sets point size
    • Imagick::setProgressMonitor — Set a callback to be called during processing
    • Imagick::setRegistry — Sets the ImageMagick registry entry named key to value
    • Imagick::setResolution — Sets the image resolution
    • Imagick::setResourceLimit — Sets the limit for a particular resource
    • Imagick::setSamplingFactors — Sets the image sampling factors
    • Imagick::setSize — Sets the size of the Imagick object
    • Imagick::setSizeOffset — Sets the size and offset of the Imagick object
    • Imagick::setType — Sets the image type attribute
    • Imagick::shadeImage — Creates a 3D effect
    • Imagick::shadowImage — Simulates an image shadow
    • Imagick::sharpenImage — Sharpens an image
    • Imagick::shaveImage — Shaves pixels from the image edges
    • Imagick::shearImage — Creating a parallelogram
    • Imagick::sigmoidalContrastImage — Adjusts the contrast of an image
    • Imagick::sketchImage — Simulates a pencil sketch
    • Imagick::smushImages — Takes all images from the current image pointer to the end of the image list and smushs them
    • Imagick::solarizeImage — Applies a solarizing effect to the image
    • Imagick::sparseColorImage — Interpolates colors
    • Imagick::spliceImage — Splices a solid color into the image
    • Imagick::spreadImage — Randomly displaces each pixel in a block
    • Imagick::statisticImage — Modifies image using a statistics function
    • Imagick::steganoImage — Hides a digital watermark within the image
    • Imagick::stereoImage — Composites two images
    • Imagick::stripImage — Strips an image of all profiles and comments
    • Imagick::subImageMatch — Searches for a subimage in the current image and returns a similarity image
    • Imagick::swirlImage — Swirls the pixels about the center of the image
    • Imagick::textureImage — Repeatedly tiles the texture image
    • Imagick::thresholdImage — Changes the value of individual pixels based on a threshold
    • Imagick::thumbnailImage — Changes the size of an image
    • Imagick::tintImage — Applies a color vector to each pixel in the image
    • Imagick::__toString — Returns the image as a string
    • Imagick::transformImage — Convenience method for setting crop size and the image geometry
    • Imagick::transformImageColorspace — Transforms an image to a new colorspace
    • Imagick::transparentPaintImage — Paints pixels transparent
    • Imagick::transposeImage — Creates a vertical mirror image
    • Imagick::transverseImage — Creates a horizontal mirror image
    • Imagick::trimImage — Remove edges from the image
    • Imagick::uniqueImageColors — Discards all but one of any pixel color
    • Imagick::unsharpMaskImage — Sharpens an image
    • Imagick::valid — Checks if the current item is valid
    • Imagick::vignetteImage — Adds vignette filter to the image
    • Imagick::waveImage — Applies wave filter to the image
    • Imagick::whiteThresholdImage — Force all pixels above the threshold into white
    • Imagick::writeImage — Writes an image to the specified filename
    • Imagick::writeImageFile — Writes an image to a filehandle
    • Imagick::writeImages — Writes an image or image sequence
    • Imagick::writeImagesFile — Writes frames to a filehandle
  • ImagickDraw — The ImagickDraw class
    • ImagickDraw::affine — Adjusts the current affine transformation matrix
    • ImagickDraw::annotation — Draws text on the image
    • ImagickDraw::arc — Draws an arc
    • ImagickDraw::bezier — Draws a bezier curve
    • ImagickDraw::circle — Draws a circle
    • ImagickDraw::clear — Clears the ImagickDraw
    • ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object
    • ImagickDraw::color — Draws color on image
    • ImagickDraw::comment — Adds a comment
    • ImagickDraw::composite — Composites an image onto the current image
    • ImagickDraw::__construct — The ImagickDraw constructor
    • ImagickDraw::destroy — Frees all associated resources
    • ImagickDraw::ellipse — Draws an ellipse on the image
    • ImagickDraw::getClipPath — Obtains the current clipping path ID
    • ImagickDraw::getClipRule — Returns the current polygon fill rule
    • ImagickDraw::getClipUnits — Returns the interpretation of clip path units
    • ImagickDraw::getFillColor — Returns the fill color
    • ImagickDraw::getFillOpacity — Returns the opacity used when drawing
    • ImagickDraw::getFillRule — Returns the fill rule
    • ImagickDraw::getFont — Returns the font
    • ImagickDraw::getFontFamily — Returns the font family
    • ImagickDraw::getFontSize — Returns the font pointsize
    • ImagickDraw::getFontStretch — Gets the font stretch to use when annotating with text
    • ImagickDraw::getFontStyle — Returns the font style
    • ImagickDraw::getFontWeight — Returns the font weight
    • ImagickDraw::getGravity — Returns the text placement gravity
    • ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting
    • ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines
    • ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash
    • ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit
    • ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines
    • ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines
    • ImagickDraw::getTextAlignment — Returns the text alignment
    • ImagickDraw::getTextAntialias — Returns the current text antialias setting
    • ImagickDraw::getTextDecoration — Returns the text decoration
    • ImagickDraw::getTextEncoding — Returns the code set used for text annotations
    • ImagickDraw::getTextInterlineSpacing — Gets the text interword spacing
    • ImagickDraw::getTextInterwordSpacing — Gets the text interword spacing
    • ImagickDraw::getTextKerning — Gets the text kerning
    • ImagickDraw::getTextUnderColor — Returns the text under color
    • ImagickDraw::getVectorGraphics — Returns a string containing vector graphics
    • ImagickDraw::line — Draws a line
    • ImagickDraw::matte — Paints on the image's opacity channel
    • ImagickDraw::pathClose — Adds a path element to the current path
    • ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve
    • ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc
    • ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc
    • ImagickDraw::pathFinish — Terminates the current path
    • ImagickDraw::pathLineToAbsolute — Draws a line path
    • ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path
    • ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line
    • ImagickDraw::pathLineToRelative — Draws a line path
    • ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line
    • ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path
    • ImagickDraw::pathMoveToAbsolute — Starts a new sub-path
    • ImagickDraw::pathMoveToRelative — Starts a new sub-path
    • ImagickDraw::pathStart — Declares the start of a path drawing list
    • ImagickDraw::point — Draws a point
    • ImagickDraw::polygon — Draws a polygon
    • ImagickDraw::polyline — Draws a polyline
    • ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
    • ImagickDraw::popClipPath — Terminates a clip path definition
    • ImagickDraw::popDefs — Terminates a definition list
    • ImagickDraw::popPattern — Terminates a pattern definition
    • ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack
    • ImagickDraw::pushClipPath — Starts a clip path definition
    • ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing
    • ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
    • ImagickDraw::rectangle — Draws a rectangle
    • ImagickDraw::render — Renders all preceding drawing commands onto the image
    • ImagickDraw::resetVectorGraphics — Resets the vector graphics
    • ImagickDraw::rotate — Applies the specified rotation to the current coordinate space
    • ImagickDraw::roundRectangle — Draws a rounded rectangle
    • ImagickDraw::scale — Adjusts the scaling factor
    • ImagickDraw::setClipPath — Associates a named clipping path with the image
    • ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path
    • ImagickDraw::setClipUnits — Sets the interpretation of clip path units
    • ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects
    • ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects
    • ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons
    • ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text
    • ImagickDraw::setFontFamily — Sets the font family to use when annotating with text
    • ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text
    • ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text
    • ImagickDraw::setFontStyle — Sets the font style to use when annotating with text
    • ImagickDraw::setFontWeight — Sets the font weight
    • ImagickDraw::setGravity — Sets the text placement gravity
    • ImagickDraw::setResolution — Sets the resolution
    • ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased
    • ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines
    • ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash
    • ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::setStrokeMiterLimit — Specifies the miter limit
    • ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines
    • ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines
    • ImagickDraw::setTextAlignment — Specifies a text alignment
    • ImagickDraw::setTextAntialias — Controls whether text is antialiased
    • ImagickDraw::setTextDecoration — Specifies a decoration
    • ImagickDraw::setTextEncoding — Specifies the text code set
    • ImagickDraw::setTextInterlineSpacing — Sets the text interline spacing
    • ImagickDraw::setTextInterwordSpacing — Sets the text interword spacing
    • ImagickDraw::setTextKerning — Sets the text kerning
    • ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle
    • ImagickDraw::setVectorGraphics — Sets the vector graphics
    • ImagickDraw::setViewbox — Sets the overall canvas size
    • ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction
    • ImagickDraw::skewY — Skews the current coordinate system in the vertical direction
    • ImagickDraw::translate — Applies a translation to the current coordinate system
  • ImagickPixel — The ImagickPixel class
    • ImagickPixel::clear — Clears resources associated with this object
    • ImagickPixel::__construct — The ImagickPixel constructor
    • ImagickPixel::destroy — Deallocates resources associated with this object
    • ImagickPixel::getColor — Returns the color
    • ImagickPixel::getColorAsString — Returns the color as a string
    • ImagickPixel::getColorCount — Returns the color count associated with this color
    • ImagickPixel::getColorQuantum — Returns the color of the pixel in an array as Quantum values
    • ImagickPixel::getColorValue — Gets the normalized value of the provided color channel
    • ImagickPixel::getColorValueQuantum — Gets the quantum value of a color in the ImagickPixel
    • ImagickPixel::getHSL — Returns the normalized HSL color of the ImagickPixel object
    • ImagickPixel::getIndex — Gets the colormap index of the pixel wand
    • ImagickPixel::isPixelSimilar — Check the distance between this color and another
    • ImagickPixel::isPixelSimilarQuantum — Returns whether two colors differ by less than the specified distance
    • ImagickPixel::isSimilar — Check the distance between this color and another
    • ImagickPixel::setColor — Sets the color
    • ImagickPixel::setColorCount — Sets the color count associated with this color
    • ImagickPixel::setColorValue — Sets the normalized value of one of the channels
    • ImagickPixel::setColorValueQuantum — Sets the quantum value of a color element of the ImagickPixel
    • ImagickPixel::setHSL — Sets the normalized HSL color
    • ImagickPixel::setIndex — Sets the colormap index of the pixel wand
  • ImagickPixelIterator — The ImagickPixelIterator class
    • ImagickPixelIterator::clear — Clear resources associated with a PixelIterator
    • ImagickPixelIterator::__construct — The ImagickPixelIterator constructor
    • ImagickPixelIterator::destroy — Deallocates resources associated with a PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow — Returns the current row of ImagickPixel objects
    • ImagickPixelIterator::getIteratorRow — Returns the current pixel iterator row
    • ImagickPixelIterator::getNextIteratorRow — Returns the next row of the pixel iterator
    • ImagickPixelIterator::getPreviousIteratorRow — Returns the previous row
    • ImagickPixelIterator::newPixelIterator — Returns a new pixel iterator
    • ImagickPixelIterator::newPixelRegionIterator — Returns a new pixel iterator
    • ImagickPixelIterator::resetIterator — Resets the pixel iterator
    • ImagickPixelIterator::setIteratorFirstRow — Sets the pixel iterator to the first pixel row
    • ImagickPixelIterator::setIteratorLastRow — Sets the pixel iterator to the last pixel row
    • ImagickPixelIterator::setIteratorRow — Set the pixel iterator row
    • ImagickPixelIterator::syncIterator — Syncs the pixel iterator
  • ImagickKernel — The ImagickKernel class
    • ImagickKernel::addKernel — Attach another kernel to a kernel list
    • ImagickKernel::addUnityKernel — Adds a Unity Kernel to the kernel list
    • ImagickKernel::fromBuiltIn — Create a kernel from a builtin in kernel
    • ImagickKernel::fromMatrix — Create a kernel from a 2d matrix of values
    • ImagickKernel::getMatrix — Get the 2d matrix of values used in this kernel
    • ImagickKernel::scale — Scales a kernel list by the given amount
    • ImagickKernel::separate — Separates a linked set of kernels and returns an array of ImagickKernels


Introdução

Imagick is a native php extension to create and modify images using the ImageMagick API.

About ImageMagick

ImageMagick is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF.

ImageMagick Studio LLC is a non-profit organization dedicated to making software imaging solutions freely available.


Dependências

Installation requirements on non-Windows platforms

ImageMagick >= 6.2.4 is required. The amount of file formats supported by Imagick depends entirely upon the amount of formats supported by your ImageMagick installation. For example, Imagemagick requires ghostscript to conduct PDF operations.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/imagick.

Nota: The official name of this extension is imagick.

Windows users can download prebuilt DLL from the » PECL website. These packages already contain the extension DLL (php_imagick.dll) which needs to be put into the extension_dir. They also contain the ImageMagick DLLs, which need to be put somewhere in the PATH. As of Imagick 3.6.0, they also contain XML configuration files in config; to use these instead of the built-in defaults, they need to put into %USERPROFILE%/.config/ImageMagick, or alternatively in the path given by the environment variable MAGICK_CONFIGURE_PATH. Refer to the » ImageMagick configuration files documentation for further details.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Imagick configuration options
Nome | Padrão | Modificável | Registro de Alterações
imagick.locale_fix | false | INI_ALL | Available since Imagick 2.1.0
imagick.progress_monitor | false | INI_SYSTEM | Available since Imagick 2.2.2
imagick.skip_version_check | false | INI_SYSTEM | Available since Imagick 3.3.0
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

imagick.locale_fix bool

Fixes a drawing bug with locales that use ',' as float separators.

imagick.progress_monitor bool

Used to enable the image progress monitor.

imagick.skip_version_check bool

When Imagick is loaded, it checks the version number of ImageMagick that it was compiled against, with the version number that is currently being used and will give a warning if they don't match. This warning can be suppressed by enabling this ini setting.

Using a version of Imagick that was compiled against a different version of ImageMagick than the one being used is not recommended. Although it may appear to work, it can lead to random crashes or other undefined behaviour.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

COLOR_* constants

Colortype constants. These constants are mainly used with ImagickPixel.

imagick::COLOR_BLACK (int)
Black color
imagick::COLOR_BLUE (int)
Blue color
imagick::COLOR_CYAN (int)
Cyan color
imagick::COLOR_GREEN (int)
Green color
imagick::COLOR_RED (int)
Red color
imagick::COLOR_YELLOW (int)
Yellow color
imagick::COLOR_MAGENTA (int)
Magenta color
imagick::COLOR_OPACITY (int)
Color's opacity
imagick::COLOR_ALPHA (int)
Color's alpha
imagick::COLOR_FUZZ (int)
Color's fuzz
DISPOSE constants

Dispose type constants

imagick::DISPOSE_UNRECOGNIZED (int)
Unrecognized dispose type
imagick::DISPOSE_UNDEFINED (int)
Undefined dispose type
imagick::DISPOSE_NONE (int)
No dispose type defined
imagick::DISPOSE_BACKGROUND (int)
Dispose background
imagick::DISPOSE_PREVIOUS (int)
Dispose previous
Composite Operator Constants
imagick::COMPOSITE_DEFAULT (int)
The default composite operator
imagick::COMPOSITE_UNDEFINED (int)
Undefined composite operator
imagick::COMPOSITE_NO (int)
No composite operator defined
imagick::COMPOSITE_ADD (int)
The result of image + image
imagick::COMPOSITE_ATOP (int)
The result is the same shape as image, with composite image obscuring image where the image shapes overlap
imagick::COMPOSITE_BLEND (int)
Blends the image
imagick::COMPOSITE_BUMPMAP (int)
The same as COMPOSITE_MULTIPLY, except the source is converted to grayscale first.
imagick::COMPOSITE_CLEAR (int)
Makes the target image transparent
imagick::COMPOSITE_COLORBURN (int)
Darkens the destination image to reflect the source image
imagick::COMPOSITE_COLORDODGE (int)
Brightens the destination image to reflect the source image
imagick::COMPOSITE_COLORIZE (int)
Colorizes the target image using the composite image
imagick::COMPOSITE_COPYBLACK (int)
Copies black from the source to target
imagick::COMPOSITE_COPYBLUE (int)
Copies blue from the source to target
imagick::COMPOSITE_COPY (int)
Copies the source image on the target image
imagick::COMPOSITE_COPYCYAN (int)
Copies cyan from the source to target
imagick::COMPOSITE_COPYGREEN (int)
Copies green from the source to target
imagick::COMPOSITE_COPYMAGENTA (int)
Copies magenta from the source to target
imagick::COMPOSITE_COPYOPACITY (int)
Copies opacity from the source to target
imagick::COMPOSITE_COPYRED (int)
Copies red from the source to target
imagick::COMPOSITE_COPYYELLOW (int)
Copies yellow from the source to target
imagick::COMPOSITE_DARKEN (int)
Darkens the target image
imagick::COMPOSITE_DSTATOP (int)
The part of the destination lying inside of the source is composited over the source and replaces the destination
imagick::COMPOSITE_DST (int)
The target is left untouched
imagick::COMPOSITE_DSTIN (int)
The parts inside the source replace the target
imagick::COMPOSITE_DSTOUT (int)
The parts outside the source replace the target
imagick::COMPOSITE_DSTOVER (int)
Target replaces the source
imagick::COMPOSITE_DIFFERENCE (int)
Subtracts the darker of the two constituent colors from the lighter
imagick::COMPOSITE_DISPLACE (int)
Shifts target image pixels as defined by the source
imagick::COMPOSITE_DISSOLVE (int)
Dissolves the source in to the target
imagick::COMPOSITE_EXCLUSION (int)
Produces an effect similar to that of imagick::COMPOSITE_DIFFERENCE, but appears as lower contrast
imagick::COMPOSITE_HARDLIGHT (int)
Multiplies or screens the colors, dependent on the source color value
imagick::COMPOSITE_HUE (int)
Modifies the hue of the target as defined by source
imagick::COMPOSITE_IN (int)
Composites source into the target
imagick::COMPOSITE_LIGHTEN (int)
Lightens the target as defined by source
imagick::COMPOSITE_LUMINIZE (int)
Luminizes the target as defined by source
imagick::COMPOSITE_MINUS (int)
Subtracts the source from the target
imagick::COMPOSITE_MODULATE (int)
Modulates the target brightness, saturation and hue as defined by source
imagick::COMPOSITE_MULTIPLY (int)
Multiplies the target to the source
imagick::COMPOSITE_OUT (int)
Composites outer parts of the source on the target
imagick::COMPOSITE_OVER (int)
Composites source over the target
imagick::COMPOSITE_OVERLAY (int)
Overlays the source on the target
imagick::COMPOSITE_PLUS (int)
Adds the source to the target
imagick::COMPOSITE_REPLACE (int)
Replaces the target with the source
imagick::COMPOSITE_SATURATE (int)
Saturates the target as defined by the source
imagick::COMPOSITE_SCREEN (int)
The source and destination are complemented and then multiplied and then replace the destination
imagick::COMPOSITE_SOFTLIGHT (int)
Darkens or lightens the colors, dependent on the source
imagick::COMPOSITE_SRCATOP (int)
The part of the source lying inside of the destination is composited onto the destination
imagick::COMPOSITE_SRC (int)
The source is copied to the destination
imagick::COMPOSITE_SRCIN (int)
The part of the source lying inside of the destination replaces the destination
imagick::COMPOSITE_SRCOUT (int)
The part of the source lying outside of the destination replaces the destination
imagick::COMPOSITE_SRCOVER (int)
The source replaces the destination
imagick::COMPOSITE_SUBTRACT (int)
Subtract the colors in the source image from the destination image
imagick::COMPOSITE_THRESHOLD (int)
The source is composited on the target as defined by source threshold
imagick::COMPOSITE_XOR (int)
The part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source
MONTAGEMODE constants

imagick::MONTAGEMODE_FRAME (int)
imagick::MONTAGEMODE_UNFRAME (int)
imagick::MONTAGEMODE_CONCATENATE (int)
STYLE constants

imagick::STYLE_NORMAL (int)
imagick::STYLE_ITALIC (int)
imagick::STYLE_OBLIQUE (int)
imagick::STYLE_ANY (int)
FILTER constants

imagick::FILTER_UNDEFINED (int)
imagick::FILTER_POINT (int)
imagick::FILTER_BOX (int)
imagick::FILTER_TRIANGLE (int)
imagick::FILTER_HERMITE (int)
imagick::FILTER_HANNING (int)
imagick::FILTER_HAMMING (int)
imagick::FILTER_BLACKMAN (int)
imagick::FILTER_GAUSSIAN (int)
imagick::FILTER_QUADRATIC (int)
imagick::FILTER_CUBIC (int)
imagick::FILTER_CATROM (int)
imagick::FILTER_MITCHELL (int)
imagick::FILTER_LANCZOS (int)
imagick::FILTER_BESSEL (int)
imagick::FILTER_SINC (int)
IMGTYPE constants

imagick::IMGTYPE_UNDEFINED (int)
imagick::IMGTYPE_BILEVEL (int)
imagick::IMGTYPE_GRAYSCALE (int)
imagick::IMGTYPE_GRAYSCALEMATTE (int)
imagick::IMGTYPE_PALETTE (int)
imagick::IMGTYPE_PALETTEMATTE (int)
imagick::IMGTYPE_TRUECOLOR (int)
imagick::IMGTYPE_TRUECOLORMATTE (int)
imagick::IMGTYPE_COLORSEPARATION (int)
imagick::IMGTYPE_COLORSEPARATIONMATTE (int)
imagick::IMGTYPE_OPTIMIZE (int)
RESOLUTION constants

imagick::RESOLUTION_UNDEFINED (int)
imagick::RESOLUTION_PIXELSPERINCH (int)
imagick::RESOLUTION_PIXELSPERCENTIMETER (int)
COMPRESSION constants

imagick::COMPRESSION_UNDEFINED (int)
imagick::COMPRESSION_NO (int)
imagick::COMPRESSION_BZIP (int)
imagick::COMPRESSION_FAX (int)
imagick::COMPRESSION_GROUP4 (int)
imagick::COMPRESSION_JPEG (int)
imagick::COMPRESSION_JPEG2000 (int)
imagick::COMPRESSION_LOSSLESSJPEG (int)
imagick::COMPRESSION_LZW (int)
imagick::COMPRESSION_RLE (int)
imagick::COMPRESSION_ZIP (int)
imagick::COMPRESSION_DXT1 (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.0 or higher.
imagick::COMPRESSION_DXT3 (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.0 or higher.
imagick::COMPRESSION_DXT5 (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.0 or higher.
PAINT constants

imagick::PAINT_POINT (int)
imagick::PAINT_REPLACE (int)
imagick::PAINT_FLOODFILL (int)
imagick::PAINT_FILLTOBORDER (int)
imagick::PAINT_RESET (int)
GRAVITY constants

imagick::GRAVITY_NORTHWEST (int)
imagick::GRAVITY_NORTH (int)
imagick::GRAVITY_NORTHEAST (int)
imagick::GRAVITY_WEST (int)
imagick::GRAVITY_CENTER (int)
imagick::GRAVITY_EAST (int)
imagick::GRAVITY_SOUTHWEST (int)
imagick::GRAVITY_SOUTH (int)
imagick::GRAVITY_SOUTHEAST (int)
STRETCH constants

imagick::STRETCH_NORMAL (int)
imagick::STRETCH_ULTRACONDENSED (int)
imagick::STRETCH_CONDENSED (int)
imagick::STRETCH_SEMICONDENSED (int)
imagick::STRETCH_SEMIEXPANDED (int)
imagick::STRETCH_EXPANDED (int)
imagick::STRETCH_EXTRAEXPANDED (int)
imagick::STRETCH_ULTRAEXPANDED (int)
imagick::STRETCH_ANY (int)
ALIGN constants

imagick::ALIGN_UNDEFINED (int)
imagick::ALIGN_LEFT (int)
imagick::ALIGN_CENTER (int)
imagick::ALIGN_RIGHT (int)
DECORATION constants

imagick::DECORATION_NO (int)
imagick::DECORATION_UNDERLINE (int)
imagick::DECORATION_OVERLINE (int)
imagick::DECORATION_LINETROUGH (int)
NOISE constants

imagick::NOISE_UNIFORM (int)
imagick::NOISE_GAUSSIAN (int)
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (int)
imagick::NOISE_IMPULSE (int)
imagick::NOISE_LAPLACIAN (int)
imagick::NOISE_POISSON (int)
imagick::NOISE_RANDOM (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 or higher.
CHANNEL constants

imagick::CHANNEL_UNDEFINED (int)
imagick::CHANNEL_RED (int)
imagick::CHANNEL_GRAY (int)
imagick::CHANNEL_CYAN (int)
imagick::CHANNEL_GREEN (int)
imagick::CHANNEL_MAGENTA (int)
imagick::CHANNEL_BLUE (int)
imagick::CHANNEL_YELLOW (int)
imagick::CHANNEL_ALPHA (int)
imagick::CHANNEL_OPACITY (int)
imagick::CHANNEL_MATTE (int)
imagick::CHANNEL_BLACK (int)
imagick::CHANNEL_INDEX (int)
imagick::CHANNEL_ALL (int)
imagick::CHANNEL_DEFAULT (int)
METRIC constants

imagick::METRIC_UNDEFINED (int)
imagick::METRIC_MEANABSOLUTEERROR (int)
imagick::METRIC_MEANSQUAREERROR (int)
imagick::METRIC_PEAKABSOLUTEERROR (int)
imagick::METRIC_PEAKSIGNALTONOISERATIO (int)
imagick::METRIC_ROOTMEANSQUAREDERROR (int)
PIXEL constants

imagick::PIXEL_CHAR (int)
imagick::PIXEL_DOUBLE (int)
imagick::PIXEL_FLOAT (int)
imagick::PIXEL_INTEGER (int)
Only available for ImageMagick < 7.
imagick::PIXEL_LONG (int)
imagick::PIXEL_QUANTUM (int)
imagick::PIXEL_SHORT (int)
EVALUATE constants

imagick::EVALUATE_UNDEFINED (int)
imagick::EVALUATE_ADD (int)
imagick::EVALUATE_AND (int)
imagick::EVALUATE_DIVIDE (int)
imagick::EVALUATE_LEFTSHIFT (int)
imagick::EVALUATE_MAX (int)
imagick::EVALUATE_MIN (int)
imagick::EVALUATE_MULTIPLY (int)
imagick::EVALUATE_OR (int)
imagick::EVALUATE_RIGHTSHIFT (int)
imagick::EVALUATE_SET (int)
imagick::EVALUATE_SUBTRACT (int)
imagick::EVALUATE_XOR (int)
imagick::EVALUATE_POW (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_LOG (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_THRESHOLD (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_THRESHOLDBLACK (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_THRESHOLDWHITE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_GAUSSIANNOISE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_IMPULSENOISE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_LAPLACIANNOISE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_MULTIPLICATIVENOISE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_POISSONNOISE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_UNIFORMNOISE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_COSINE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_SINE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
imagick::EVALUATE_ADDMODULUS (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 or higher.
COLORSPACE constants

imagick::COLORSPACE_UNDEFINED (int)
imagick::COLORSPACE_RGB (int)
imagick::COLORSPACE_GRAY (int)
imagick::COLORSPACE_TRANSPARENT (int)
imagick::COLORSPACE_OHTA (int)
imagick::COLORSPACE_LAB (int)
imagick::COLORSPACE_XYZ (int)
imagick::COLORSPACE_YCBCR (int)
imagick::COLORSPACE_YCC (int)
imagick::COLORSPACE_YIQ (int)
imagick::COLORSPACE_YPBPR (int)
imagick::COLORSPACE_YUV (int)
imagick::COLORSPACE_CMYK (int)
imagick::COLORSPACE_SRGB (int)
imagick::COLORSPACE_HSB (int)
imagick::COLORSPACE_HSL (int)
imagick::COLORSPACE_HWB (int)
imagick::COLORSPACE_REC601LUMA (int)
imagick::COLORSPACE_REC709LUMA (int)
imagick::COLORSPACE_LOG (int)
imagick::COLORSPACE_CMY (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.2 or higher.
VIRTUALPIXELMETHOD constants

imagick::VIRTUALPIXELMETHOD_UNDEFINED (int)
imagick::VIRTUALPIXELMETHOD_BACKGROUND (int)
imagick::VIRTUALPIXELMETHOD_CONSTANT (int)
imagick::VIRTUALPIXELMETHOD_EDGE (int)
imagick::VIRTUALPIXELMETHOD_MIRROR (int)
imagick::VIRTUALPIXELMETHOD_TILE (int)
imagick::VIRTUALPIXELMETHOD_TRANSPARENT (int)
imagick::VIRTUALPIXELMETHOD_MASK (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.2 or higher.
imagick::VIRTUALPIXELMETHOD_BLACK (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.2 or higher.
imagick::VIRTUALPIXELMETHOD_GRAY (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.2 or higher.
imagick::VIRTUALPIXELMETHOD_WHITE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.2 or higher.
imagick::VIRTUALPIXELMETHOD_HORIZONTALTILE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.3 or higher.
imagick::VIRTUALPIXELMETHOD_VERTICALTILE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.3 or higher.
PREVIEW constants

imagick::PREVIEW_UNDEFINED (int)
imagick::PREVIEW_ROTATE (int)
imagick::PREVIEW_SHEAR (int)
imagick::PREVIEW_ROLL (int)
imagick::PREVIEW_HUE (int)
imagick::PREVIEW_SATURATION (int)
imagick::PREVIEW_BRIGHTNESS (int)
imagick::PREVIEW_GAMMA (int)
imagick::PREVIEW_SPIFF (int)
imagick::PREVIEW_DULL (int)
imagick::PREVIEW_GRAYSCALE (int)
imagick::PREVIEW_QUANTIZE (int)
imagick::PREVIEW_DESPECKLE (int)
imagick::PREVIEW_REDUCENOISE (int)
imagick::PREVIEW_ADDNOISE (int)
imagick::PREVIEW_SHARPEN (int)
imagick::PREVIEW_BLUR (int)
imagick::PREVIEW_THRESHOLD (int)
imagick::PREVIEW_EDGEDETECT (int)
imagick::PREVIEW_SPREAD (int)
imagick::PREVIEW_SOLARIZE (int)
imagick::PREVIEW_SHADE (int)
imagick::PREVIEW_RAISE (int)
imagick::PREVIEW_SEGMENT (int)
imagick::PREVIEW_SWIRL (int)
imagick::PREVIEW_IMPLODE (int)
imagick::PREVIEW_WAVE (int)
imagick::PREVIEW_OILPAINT (int)
imagick::PREVIEW_CHARCOALDRAWING (int)
imagick::PREVIEW_JPEG (int)
RENDERINGINTENT constants

imagick::RENDERINGINTENT_UNDEFINED (int)
imagick::RENDERINGINTENT_SATURATION (int)
imagick::RENDERINGINTENT_PERCEPTUAL (int)
imagick::RENDERINGINTENT_ABSOLUTE (int)
imagick::RENDERINGINTENT_RELATIVE (int)
INTERLACE constants

imagick::INTERLACE_UNDEFINED (int)
imagick::INTERLACE_NO (int)
imagick::INTERLACE_LINE (int)
imagick::INTERLACE_PLANE (int)
imagick::INTERLACE_PARTITION (int)
imagick::INTERLACE_GIF (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.4 or higher.
imagick::INTERLACE_JPEG (int)
imagick::INTERLACE_PNG (int)
FILLRULE constants

imagick::FILLRULE_UNDEFINED (int)
imagick::FILLRULE_EVENODD (int)
imagick::FILLRULE_NONZERO (int)
PATHUNITS constants

imagick::PATHUNITS_UNDEFINED (int)
imagick::PATHUNITS_USERSPACE (int)
imagick::PATHUNITS_USERSPACEONUSE (int)
imagick::PATHUNITS_OBJECTBOUNDINGBOX (int)
LINECAP constants

imagick::LINECAP_UNDEFINED (int)
imagick::LINECAP_BUTT (int)
imagick::LINECAP_ROUND (int)
imagick::LINECAP_SQUARE (int)
LINEJOIN constants

imagick::LINEJOIN_UNDEFINED (int)
imagick::LINEJOIN_MITER (int)
imagick::LINEJOIN_ROUND (int)
imagick::LINEJOIN_BEVEL (int)
RESOURCETYPE constants

imagick::RESOURCETYPE_UNDEFINED (int)
imagick::RESOURCETYPE_AREA (int)
Set the maximum width * height of an image that can reside in the pixel cache memory.
imagick::RESOURCETYPE_DISK (int)
Set maximum amount of disk space in bytes permitted for use by the pixel cache.
imagick::RESOURCETYPE_FILE (int)
Set maximum number of open pixel cache files.
imagick::RESOURCETYPE_MAP (int)
Set maximum amount of memory map in bytes to allocate for the pixel cache.
imagick::RESOURCETYPE_MEMORY (int)
Set maximum amount of memory in bytes to allocate for the pixel cache from the heap.
imagick::RESOURCETYPE_THREAD (int)
Set maximum parallel threads. Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.7.8 or higher.
LAYERMETHOD constants

imagick::LAYERMETHOD_UNDEFINED (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 or higher.
imagick::LAYERMETHOD_COALESCE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 or higher.
imagick::LAYERMETHOD_COMPAREANY (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 or higher.
imagick::LAYERMETHOD_COMPARECLEAR (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 or higher.
imagick::LAYERMETHOD_COMPAREOVERLAY (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 or higher.
imagick::LAYERMETHOD_DISPOSE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 or higher.
imagick::LAYERMETHOD_OPTIMIZE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 or higher.
imagick::LAYERMETHOD_OPTIMIZEPLUS (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 or higher.
imagick::LAYERMETHOD_OPTIMIZEIMAGE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::LAYERMETHOD_OPTIMIZETRANS (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::LAYERMETHOD_REMOVEDUPS (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::LAYERMETHOD_REMOVEZERO (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::LAYERMETHOD_COMPOSITE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::LAYERMETHOD_MERGE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.7 or higher.
imagick::LAYERMETHOD_FLATTEN (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.7 or higher.
imagick::LAYERMETHOD_MOSAIC (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.7 or higher.
ORIENTATION constants

imagick::ORIENTATION_UNDEFINED (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::ORIENTATION_TOPLEFT (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::ORIENTATION_TOPRIGHT (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::ORIENTATION_BOTTOMRIGHT (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::ORIENTATION_BOTTOMLEFT (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::ORIENTATION_LEFTTOP (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::ORIENTATION_RIGHTTOP (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::ORIENTATION_RIGHTBOTTOM (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
imagick::ORIENTATION_LEFTBOTTOM (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.0 or higher.
DISTORTION constants

imagick::DISTORTION_UNDEFINED (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 or higher.
imagick::DISTORTION_AFFINE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 or higher.
imagick::DISTORTION_AFFINEPROJECTION (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 or higher.
imagick::DISTORTION_ARC (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 or higher.
imagick::DISTORTION_BILINEAR (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 or higher.
imagick::DISTORTION_PERSPECTIVE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 or higher.
imagick::DISTORTION_PERSPECTIVEPROJECTION (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 or higher.
imagick::DISTORTION_SCALEROTATETRANSLATE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 or higher.
imagick::DISTORTION_POLYNOMIAL (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::DISTORTION_POLAR (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::DISTORTION_DEPOLAR (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::DISTORTION_BARREL (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::DISTORTION_BARRELINVERSE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::DISTORTION_SHEPARDS (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::DISTORTION_SENTINEL (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
ALPHACHANNEL constants

imagick::ALPHACHANNEL_ACTIVATE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.8 or higher.
imagick::ALPHACHANNEL_DEACTIVATE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.8 or higher.
imagick::ALPHACHANNEL_RESET (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.8 or higher.
imagick::ALPHACHANNEL_SET (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.8 or higher.
imagick::ALPHACHANNEL_UNDEFINED (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::ALPHACHANNEL_COPY (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::ALPHACHANNEL_EXTRACT (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::ALPHACHANNEL_OPAQUE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::ALPHACHANNEL_SHAPE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::ALPHACHANNEL_TRANSPARENT (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::ALPHACHANNEL_BACKGROUND (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.5.3 or higher.
imagick::ALPHACHANNEL_REMOVE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.7.8 or higher.
imagick::ALPHACHANNEL_ASSOCIATE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.9.0 or higher.
imagick::ALPHACHANNEL_DISSOCIATE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.9.0 or higher.
imagick::ALPHACHANNEL_ON (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 7.0.0 or higher.
imagick::ALPHACHANNEL_OFF (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 7.0.0 or higher.
imagick::ALPHACHANNEL_DISCRETE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 7.0.0 or higher.
SPARSECOLORMETHOD constants

imagick::SPARSECOLORMETHOD_UNDEFINED (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::SPARSECOLORMETHOD_BARYCENTRIC (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::SPARSECOLORMETHOD_BILINEAR (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::SPARSECOLORMETHOD_POLYNOMIAL (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::SPARSECOLORMETHOD_SPEPARDS (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::SPARSECOLORMETHOD_VORONOI (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
FUNCTION constants

imagick::FUNCTION_UNDEFINED (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.9 or higher.
imagick::FUNCTION_POLYNOMIAL (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.9 or higher.
imagick::FUNCTION_SINUSOID (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.9 or higher.
INTERPOLATE constants

imagick::INTERPOLATE_UNDEFINED (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 or higher.
imagick::INTERPOLATE_AVERAGE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 or higher.
imagick::INTERPOLATE_BICUBIC (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 or higher.
imagick::INTERPOLATE_BILINEAR (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 or higher.
imagick::INTERPOLATE_FILTER (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 or higher.
imagick::INTERPOLATE_INTEGER (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 or higher.
imagick::INTERPOLATE_MESH (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 or higher.
imagick::INTERPOLATE_NEARESTNEIGHBOR (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 or higher.
imagick::INTERPOLATE_SPLINE (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.4 or higher.
DITHERMETHOD constants

imagick::DITHERMETHOD_UNDEFINED (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::DITHERMETHOD_NO (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::DITHERMETHOD_RIEMERSMA (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.
imagick::DITHERMETHOD_FLOYDSTEINBERG (int)
Esta constante estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.6 or higher.


  • « Constantes pré-definidas
  • Basic usage »
  • PHP Manual
  • ImageMagick
  • Exemplos

Exemplos

Índice

  • Basic usage


Basic usage

Imagick makes image manipulation in PHP extremely easy through an OO interface. Here is a quick example on how to make a thumbnail:

Exemplo #1 Creating a thumbnail in Imagick

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// If 0 is provided as a width or height parameter,
// aspect ratio is maintained
$image->thumbnailImage(100, 0);

echo $image;

?>

Using SPL and other OO features supported in Imagick, it can be simple to resize all files in a directory (useful for batch resizing large digital camera images to be web viewable). Here we use resize, as we might want to retain certain meta-data:

Exemplo #2 Make a thumbnail of all JPG files in a directory

<?php

$images = new Imagick(glob('images/*.JPG'));

foreach($images as $image) {

// Providing 0 forces thumbnailImage to maintain aspect ratio
$image->thumbnailImage(1024,0);

}

$images->writeImages();

?>

This is an example of creating a reflection of an image. The reflection is created by flipping the image and overlaying a gradient on it. Then both, the original image and the reflection is overlayed on a canvas.

Exemplo #3 Creating a reflection of an image

<?php
/* Read the image */
$im = new Imagick("test.png");

/* Thumbnail the image */
$im->thumbnailImage(200, null);

/* Create a border for the image */
$im->borderImage(new ImagickPixel("white"), 5, 5);

/* Clone the image and flip it */
$reflection = $im->clone();
$reflection->flipImage();

/* Create gradient. It will be overlayed on the reflection */
$gradient = new Imagick();

/* Gradient needs to be large enough for the image and the borders */
$gradient->newPseudoImage($reflection->getImageWidth() + 10, $reflection->getImageHeight() + 10, "gradient:transparent-black");

/* Composite the gradient on the reflection */
$reflection->compositeImage($gradient, imagick::COMPOSITE_OVER, 0, 0);

/* Add some opacity. Requires ImageMagick 6.2.9 or later */
$reflection->setImageOpacity( 0.3 );

/* Create an empty canvas */
$canvas = new Imagick();

/* Canvas needs to be large enough to hold the both images */
$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width, $height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

/* Composite the original image and the reflection on the canvas */
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);
$canvas->compositeImage($reflection, imagick::COMPOSITE_OVER, 20, $im->getImageHeight() + 10);

/* Output the image*/
header("Content-Type: image/png");
echo $canvas;
?>

O exemplo acima produzirá algo semelhante a:

Output of example : Creating a reflection of an image

This example illustrates how to use fill patterns during drawing.

Exemplo #4 Filling text with gradient

<?php

/* Create a new imagick object */
$im = new Imagick();

/* Create new image. This will be used as fill pattern */
$im->newPseudoImage(50, 50, "gradient:red-black");

/* Create imagickdraw object */
$draw = new ImagickDraw();

/* Start a new pattern called "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);

/* Composite the gradient on the pattern */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Close the pattern */
$draw->popPattern();

/* Use the pattern called "gradient" as the fill */
$draw->setFillPatternURL('#gradient');

/* Set font size to 52 */
$draw->setFontSize(52);

/* Annotate some text */
$draw->annotation(20, 50, "Hello World!");

/* Create a new canvas object and a white image */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");

/* Draw the ImagickDraw on to the canvas */
$canvas->drawImage($draw);

/* 1px black border around the image */
$canvas->borderImage('black', 1, 1);

/* Set the format to PNG */
$canvas->setImageFormat('png');

/* Output the image */
header("Content-Type: image/png");
echo $canvas;
?>

O exemplo acima produzirá algo semelhante a:

Output of example : Filling text with gradient

Working with animated GIF images

Exemplo #5 Read in GIF image and resize all frames

<?php

/* Create a new imagick object and read in GIF */
$im = new Imagick("example.gif");

/* Resize all frames */
foreach ($im as $frame) {
/* 50x50 frames */
$frame->thumbnailImage(50, 50);

/* Set the virtual canvas to correct size */
$frame->setImagePage(50, 50, 0, 0);
}

/* Notice writeImages instead of writeImage */
$im->writeImages("example_small.gif", true);
?>

Working with ellipse primitive and custom fonts

Exemplo #6 Create a PHP logo

<?php
/* Set width and height in proportion of genuine PHP logo */
$width = 400;
$height = 210;

/* Create an Imagick object with transparent canvas */
$img = new Imagick();
$img->newImage($width, $height, new ImagickPixel('transparent'));

/* New ImagickDraw instance for ellipse draw */
$draw = new ImagickDraw();
/* Set purple fill color for ellipse */
$draw->setFillColor('#777bb4');
/* Set ellipse dimensions */
$draw->ellipse($width / 2, $height / 2, $width / 2, $height / 2, 0, 360);
/* Draw ellipse onto the canvas */
$img->drawImage($draw);

/* Reset fill color from purple to black for text (note: we are reusing ImagickDraw object) */
$draw->setFillColor('black');
/* Set stroke border to white color */
$draw->setStrokeColor('white');
/* Set stroke border thickness */
$draw->setStrokeWidth(2);
/* Set font kerning (negative value means that letters are closer to each other) */
$draw->setTextKerning(-8);
/* Set font and font size used in PHP logo */
$draw->setFont('Handel Gothic.ttf');
$draw->setFontSize(150);
/* Center text horizontally and vertically */
$draw->setGravity(Imagick::GRAVITY_CENTER);

/* Add center "php" with Y offset of -10 to canvas (inside ellipse) */
$img->annotateImage($draw, 0, -10, 0, 'php');
$img->setImageFormat('png');

/* Set appropriate header for PNG and output the image */
header('Content-Type: image/png');
echo $img;
?>

O exemplo acima produzirá algo semelhante a:

Output of example : Creating PHP logo with Imagick


The Imagick class

(PECL imagick 2, PECL imagick 3)

Resumo da classe

class Imagick implements Iterator {
public __construct(mixed $files = ?)
public adaptiveBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public adaptiveResizeImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $legacy = false
): bool
public adaptiveSharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public adaptiveThresholdImage(int $width, int $height, int $offset): bool
public addImage(Imagick $source): bool
public addNoiseImage(int $noise_type, int $channel = Imagick::CHANNEL_DEFAULT): bool
public affineTransformImage(ImagickDraw $matrix): bool
public animateImages(string $x_server): bool
public annotateImage(
ImagickDraw $draw_settings,
float $x,
float $y,
float $angle,
string $text
): bool
public appendImages(bool $stack): Imagick
public autoLevelImage(int $channel = Imagick::CHANNEL_DEFAULT): bool
public averageImages(): Imagick
public blackThresholdImage(mixed $threshold): bool
public blueShiftImage(float $factor = 1.5): bool
public blurImage(float $radius, float $sigma, int $channel = ?): bool
public borderImage(mixed $bordercolor, int $width, int $height): bool
public brightnessContrastImage(float $brightness, float $contrast, int $channel = Imagick::CHANNEL_DEFAULT): bool
public charcoalImage(float $radius, float $sigma): bool
public chopImage(
int $width,
int $height,
int $x,
int $y
): bool
public clampImage(int $channel = Imagick::CHANNEL_DEFAULT): bool
public clear(): bool
public clipImage(): bool
public clipImagePath(string $pathname, string $inside): void
public clipPathImage(string $pathname, bool $inside): bool
public clone(): Imagick
public clutImage(Imagick $lookup_table, int $channel = Imagick::CHANNEL_DEFAULT): bool
public coalesceImages(): Imagick
public colorFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool
public colorizeImage(mixed $colorize, mixed $opacity, bool $legacy = false): bool
public colorMatrixImage(array $color_matrix = Imagick::CHANNEL_DEFAULT): bool
public combineImages(int $channelType): Imagick
public commentImage(string $comment): bool
public compareImageChannels(Imagick $image, int $channelType, int $metricType): array
public compareImageLayers(int $method): Imagick
public compareImages(Imagick $compare, int $metric): array
public compositeImage(
Imagick $composite_object,
int $composite,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public contrastImage(bool $sharpen): bool
public contrastStretchImage(float $black_point, float $white_point, int $channel = Imagick::CHANNEL_DEFAULT): bool
public convolveImage(array $kernel, int $channel = Imagick::CHANNEL_DEFAULT): bool
public count(int $mode = 0): int
public cropImage(
int $width,
int $height,
int $x,
int $y
): bool
public cropThumbnailImage(int $width, int $height, bool $legacy = false): bool
public current(): Imagick
public cycleColormapImage(int $displace): bool
public decipherImage(string $passphrase): bool
public deconstructImages(): Imagick
public deleteImageArtifact(string $artifact): bool
public deleteImageProperty(string $name): bool
public deskewImage(float $threshold): bool
public despeckleImage(): bool
public destroy(): bool
public displayImage(string $servername): bool
public displayImages(string $servername): bool
public distortImage(int $method, array $arguments, bool $bestfit): bool
public drawImage(ImagickDraw $draw): bool
public edgeImage(float $radius): bool
public embossImage(float $radius, float $sigma): bool
public encipherImage(string $passphrase): bool
public enhanceImage(): bool
public equalizeImage(): bool
public evaluateImage(int $op, float $constant, int $channel = Imagick::CHANNEL_DEFAULT): bool
public exportImagePixels(
int $x,
int $y,
int $width,
int $height,
string $map,
int $STORAGE
): array
public extentImage(
int $width,
int $height,
int $x,
int $y
): bool
public filter(ImagickKernel $ImagickKernel, int $channel = Imagick::CHANNEL_UNDEFINED): bool
public flattenImages(): Imagick
public flipImage(): bool
public floodFillPaintImage(
mixed $fill,
float $fuzz,
mixed $target,
int $x,
int $y,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public flopImage(): bool
public forwardFourierTransformimage(bool $magnitude): bool
public frameImage(
mixed $matte_color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): bool
public functionImage(int $function, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool
public fxImage(string $expression, int $channel = Imagick::CHANNEL_DEFAULT): Imagick
public gammaImage(float $gamma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public gaussianBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public getColorspace(): int
public getCompression(): int
public getCompressionQuality(): int
public static getCopyright(): string
public getFilename(): string
public getFont(): string
public getFormat(): string
public getGravity(): int
public static getHomeURL(): string
public getImage(): Imagick
public getImageAlphaChannel(): bool
public getImageArtifact(string $artifact): string
public getImageAttribute(string $key): string
public getImageBackgroundColor(): ImagickPixel
public getImageBlob(): string
public getImageBluePrimary(): array
public getImageBorderColor(): ImagickPixel
public getImageChannelDepth(int $channel): int
public getImageChannelDistortion(Imagick $reference, int $channel, int $metric): float
public getImageChannelDistortions(Imagick $reference, int $metric, int $channel = Imagick::CHANNEL_DEFAULT): float
public getImageChannelExtrema(int $channel): array
public getImageChannelKurtosis(int $channel = Imagick::CHANNEL_DEFAULT): array
public getImageChannelMean(int $channel): array
public getImageChannelRange(int $channel): array
public getImageChannelStatistics(): array
public getImageClipMask(): Imagick
public getImageColormapColor(int $index): ImagickPixel
public getImageColors(): int
public getImageColorspace(): int
public getImageCompose(): int
public getImageCompression(): int
public getImageCompressionQuality(): int
public getImageDelay(): int
public getImageDepth(): int
public getImageDispose(): int
public getImageDistortion(MagickWand $reference, int $metric): float
public getImageExtrema(): array
public getImageFilename(): string
public getImageFormat(): string
public getImageGamma(): float
public getImageGeometry(): array
public getImageGravity(): int
public getImageGreenPrimary(): array
public getImageHeight(): int
public getImageHistogram(): array
public getImageIndex(): int
public getImageInterlaceScheme(): int
public getImageInterpolateMethod(): int
public getImageIterations(): int
public getImageLength(): int
public getImageMatte(): bool
public getImageMatteColor(): ImagickPixel
public getImageMimeType(): string
public getImageOrientation(): int
public getImagePage(): array
public getImagePixelColor(int $x, int $y): ImagickPixel
public getImageProfile(string $name): string
public getImageProfiles(string $pattern = "*", bool $include_values = true): array
public getImageProperties(string $pattern = "*", bool $include_values = true): array
public getImageProperty(string $name): string
public getImageRedPrimary(): array
public getImageRegion(
int $width,
int $height,
int $x,
int $y
): Imagick
public getImageRenderingIntent(): int
public getImageResolution(): array
public getImagesBlob(): string
public getImageScene(): int
public getImageSignature(): string
public getImageSize(): int
public getImageTicksPerSecond(): int
public getImageTotalInkDensity(): float
public getImageType(): int
public getImageUnits(): int
public getImageVirtualPixelMethod(): int
public getImageWhitePoint(): array
public getImageWidth(): int
public getInterlaceScheme(): int
public getIteratorIndex(): int
public getNumberImages(): int
public getOption(string $key): string
public static getPackageName(): string
public getPage(): array
public getPixelIterator(): ImagickPixelIterator
public getPixelRegionIterator(
int $x,
int $y,
int $columns,
int $rows
): ImagickPixelIterator
public getPointSize(): float
public static getQuantum(): int
public static getQuantumDepth(): array
public static getQuantumRange(): array
public static getRegistry(string $key): string
public static getReleaseDate(): string
public static getResource(int $type): int
public static getResourceLimit(int $type): int
public getSamplingFactors(): array
public getSize(): array
public getSizeOffset(): int
public static getVersion(): array
public haldClutImage(Imagick $clut, int $channel = Imagick::CHANNEL_DEFAULT): bool
public hasNextImage(): bool
public hasPreviousImage(): bool
public identifyFormat(string $embedText): string|false
public identifyImage(bool $appendRawOutput = false): array
public implodeImage(float $radius): bool
public importImagePixels(
int $x,
int $y,
int $width,
int $height,
string $map,
int $storage,
array $pixels
): bool
public inverseFourierTransformImage(Imagick $complement, bool $magnitude): bool
public labelImage(string $label): bool
public levelImage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public linearStretchImage(float $blackPoint, float $whitePoint): bool
public liquidRescaleImage(
int $width,
int $height,
float $delta_x,
float $rigidity
): bool
public static listRegistry(): array
public magnifyImage(): bool
public mapImage(Imagick $map, bool $dither): bool
public matteFloodfillImage(
float $alpha,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool
public medianFilterImage(float $radius): bool
public mergeImageLayers(int $layer_method): Imagick
public minifyImage(): bool
public modulateImage(float $brightness, float $saturation, float $hue): bool
public montageImage(
ImagickDraw $draw,
string $tile_geometry,
string $thumbnail_geometry,
int $mode,
string $frame
): Imagick
public morphImages(int $number_frames): Imagick
public morphology(
int $morphologyMethod,
int $iterations,
ImagickKernel $ImagickKernel,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public mosaicImages(): Imagick
public motionBlurImage(
float $radius,
float $sigma,
float $angle,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public negateImage(bool $gray, int $channel = Imagick::CHANNEL_DEFAULT): bool
public newImage(
int $cols,
int $rows,
mixed $background,
string $format = ?
): bool
public newPseudoImage(int $columns, int $rows, string $pseudoString): bool
public nextImage(): bool
public normalizeImage(int $channel = Imagick::CHANNEL_DEFAULT): bool
public oilPaintImage(float $radius): bool
public opaquePaintImage(
mixed $target,
mixed $fill,
float $fuzz,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public optimizeImageLayers(): bool
public orderedPosterizeImage(string $threshold_map, int $channel = Imagick::CHANNEL_DEFAULT): bool
public paintFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public paintOpaqueImage(
mixed $target,
mixed $fill,
float $fuzz,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public paintTransparentImage(mixed $target, float $alpha, float $fuzz): bool
public pingImage(string $filename): bool
public pingImageBlob(string $image): bool
public pingImageFile(resource $filehandle, string $fileName = ?): bool
public polaroidImage(ImagickDraw $properties, float $angle): bool
public posterizeImage(int $levels, bool $dither): bool
public previewImages(int $preview): bool
public previousImage(): bool
public profileImage(string $name, ?string $profile): bool
public quantizeImage(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool
public quantizeImages(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool
public queryFontMetrics(ImagickDraw $properties, string $text, bool $multiline = ?): array
public static queryFonts(string $pattern = "*"): array
public static queryFormats(string $pattern = "*"): array
public radialBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool
public raiseImage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): bool
public randomThresholdImage(float $low, float $high, int $channel = Imagick::CHANNEL_DEFAULT): bool
public readImage(string $filename): bool
public readImageBlob(string $image, string $filename = ?): bool
public readImageFile(resource $filehandle, string $fileName = null): bool
public readImages(array $filenames): bool
public recolorImage(array $matrix): bool
public reduceNoiseImage(float $radius): bool
public remapImage(Imagick $replacement, int $DITHER): bool
public removeImage(): bool
public removeImageProfile(string $name): string
public render(): bool
public resampleImage(
float $x_resolution,
float $y_resolution,
int $filter,
float $blur
): bool
public resetImagePage(string $page): bool
public resizeImage(
int $columns,
int $rows,
int $filter,
float $blur,
bool $bestfit = false,
bool $legacy = false
): bool
public rollImage(int $x, int $y): bool
public rotateImage(mixed $background, float $degrees): bool
public rotationalBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool
public roundCorners(
float $x_rounding,
float $y_rounding,
float $stroke_width = 10,
float $displace = 5,
float $size_correction = -6
): bool
public sampleImage(int $columns, int $rows): bool
public scaleImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $legacy = false
): bool
public segmentImage(
int $COLORSPACE,
float $cluster_threshold,
float $smooth_threshold,
bool $verbose = false
): bool
public selectiveBlurImage(
float $radius,
float $sigma,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public separateImageChannel(int $channel): bool
public sepiaToneImage(float $threshold): bool
public setBackgroundColor(mixed $background): bool
public setColorspace(int $COLORSPACE): bool
public setCompression(int $compression): bool
public setCompressionQuality(int $quality): bool
public setFilename(string $filename): bool
public setFirstIterator(): bool
public setFont(string $font): bool
public setFormat(string $format): bool
public setGravity(int $gravity): bool
public setImage(Imagick $replace): bool
public setImageAlphaChannel(int $mode): bool
public setImageArtifact(string $artifact, string $value): bool
public setImageAttribute(string $key, string $value): bool
public setImageBackgroundColor(mixed $background): bool
public setImageBias(float $bias): bool
public setImageBiasQuantum(float $bias): void
public setImageBluePrimary(float $x, float $y): bool
public setImageBorderColor(mixed $border): bool
public setImageChannelDepth(int $channel, int $depth): bool
public setImageClipMask(Imagick $clip_mask): bool
public setImageColormapColor(int $index, ImagickPixel $color): bool
public setImageColorspace(int $colorspace): bool
public setImageCompose(int $compose): bool
public setImageCompression(int $compression): bool
public setImageCompressionQuality(int $quality): bool
public setImageDelay(int $delay): bool
public setImageDepth(int $depth): bool
public setImageDispose(int $dispose): bool
public setImageExtent(int $columns, int $rows): bool
public setImageFilename(string $filename): bool
public setImageFormat(string $format): bool
public setImageGamma(float $gamma): bool
public setImageGravity(int $gravity): bool
public setImageGreenPrimary(float $x, float $y): bool
public setImageIndex(int $index): bool
public setImageInterlaceScheme(int $interlace_scheme): bool
public setImageInterpolateMethod(int $method): bool
public setImageIterations(int $iterations): bool
public setImageMatte(bool $matte): bool
public setImageMatteColor(mixed $matte): bool
public setImageOpacity(float $opacity): bool
public setImageOrientation(int $orientation): bool
public setImagePage(
int $width,
int $height,
int $x,
int $y
): bool
public setImageProfile(string $name, string $profile): bool
public setImageProperty(string $name, string $value): bool
public setImageRedPrimary(float $x, float $y): bool
public setImageRenderingIntent(int $rendering_intent): bool
public setImageResolution(float $x_resolution, float $y_resolution): bool
public setImageScene(int $scene): bool
public setImageTicksPerSecond(int $ticks_per_second): bool
public setImageType(int $image_type): bool
public setImageUnits(int $units): bool
public setImageVirtualPixelMethod(int $method): bool
public setImageWhitePoint(float $x, float $y): bool
public setInterlaceScheme(int $interlace_scheme): bool
public setIteratorIndex(int $index): bool
public setLastIterator(): bool
public setOption(string $key, string $value): bool
public setPage(
int $width,
int $height,
int $x,
int $y
): bool
public setPointSize(float $point_size): bool
public setProgressMonitor(callable $callback): bool
public static setRegistry(string $key, string $value): bool
public setResolution(float $x_resolution, float $y_resolution): bool
public static setResourceLimit(int $type, int $limit): bool
public setSamplingFactors(array $factors): bool
public setSize(int $columns, int $rows): bool
public setSizeOffset(int $columns, int $rows, int $offset): bool
public setType(int $image_type): bool
public shadeImage(bool $gray, float $azimuth, float $elevation): bool
public shadowImage(
float $opacity,
float $sigma,
int $x,
int $y
): bool
public sharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public shaveImage(int $columns, int $rows): bool
public shearImage(mixed $background, float $x_shear, float $y_shear): bool
public sigmoidalContrastImage(
bool $sharpen,
float $alpha,
float $beta,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public sketchImage(float $radius, float $sigma, float $angle): bool
public smushImages(bool $stack, int $offset): Imagick
public solarizeImage(int $threshold): bool
public sparseColorImage(int $SPARSE_METHOD, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool
public spliceImage(
int $width,
int $height,
int $x,
int $y
): bool
public spreadImage(float $radius): bool
public statisticImage(
int $type,
int $width,
int $height,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public steganoImage(Imagick $watermark_wand, int $offset): Imagick
public stereoImage(Imagick $offset_wand): bool
public stripImage(): bool
public subImageMatch(Imagick $Imagick, array &$offset = ?, float &$similarity = ?): Imagick
swirlImage(float $degrees): bool
textureImage(Imagick $texture_wand): Imagick
public thresholdImage(float $threshold, int $channel = Imagick::CHANNEL_DEFAULT): bool
public thumbnailImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $fill = false,
bool $legacy = false
): bool
public tintImage(mixed $tint, mixed $opacity, bool $legacy = false): bool
public __toString(): string
public transformImage(string $crop, string $geometry): Imagick
public transformImageColorspace(int $colorspace): bool
public transparentPaintImage(
mixed $target,
float $alpha,
float $fuzz,
bool $invert
): bool
public transposeImage(): bool
public transverseImage(): bool
public trimImage(float $fuzz): bool
public uniqueImageColors(): bool
public unsharpMaskImage(
float $radius,
float $sigma,
float $amount,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public valid(): bool
public vignetteImage(
float $blackPoint,
float $whitePoint,
int $x,
int $y
): bool
public waveImage(float $amplitude, float $length): bool
public whiteThresholdImage(mixed $threshold): bool
public writeImage(string $filename = NULL): bool
public writeImageFile(resource $filehandle, string $format = ?): bool
public writeImages(string $filename, bool $adjoin): bool
public writeImagesFile(resource $filehandle, string $format = ?): bool
}

Image methods and global methods

The Imagick class has the ability to hold and operate on multiple images simultaneously. This is achieved through an internal stack. There is always an internal pointer that points at the current image. Some functions operate on all images in the Imagick class, but most operate only on the current image in the internal stack. As a convention, method names can contain the word Image to denote they affect only the current image in the stack.

Class Methods

Because there are so many methods, here is a handy list of methods, somewhat reduced to their general purpose:

Class methods by purpose
Image effects | Get methods | Set methods | Read/write images | Other
Imagick::adaptiveBlurImage() | Imagick::getCompression() | Imagick::setBackgroundColor() | Imagick::__construct() | Imagick::clear()
Imagick::adaptiveResizeImage() | Imagick::getFilename() | Imagick::setCompressionQuality() | Imagick::addImage() | Imagick::clone()
Imagick::adaptiveSharpenImage() | Imagick::getFormat() | Imagick::setCompression() | Imagick::appendImages() | Imagick::current()
Imagick::adaptiveThresholdImage() | Imagick::getImageBackgroundColor() | Imagick::setFilename() | Imagick::getFilename() | Imagick::destroy()
Imagick::addNoiseImage() | Imagick::getImageBlob() | Imagick::getImagesBlob() | Imagick::setFormat() | Imagick::getFormat()
Imagick::affinetransformimage() | Imagick::getImageBluePrimary() | Imagick::setImageBackgroundColor() | Imagick::getImageFilename() | Imagick::getHomeURL()
Imagick::annotateImage() | Imagick::getImageBorderColor() | Imagick::setFirstIterator() | Imagick::getImageFormat() | Imagick::commentImage()
Imagick::averageImages() | Imagick::getImageChannelDepth() | Imagick::setImageBias() | Imagick::getImage() | Imagick::getNumberImages()
Imagick::blackThresholdImage() | Imagick::getImageChannelDistortion() | Imagick::setImageBluePrimary() | Imagick::setImageFilename() | Imagick::getReleaseDate()
Imagick::blurImage() | Imagick::getImageChannelExtrema() | Imagick::setImageBorderColor() | Imagick::setImageFormat() | Imagick::getVersion()
Imagick::borderImage() | Imagick::getImageChannelMean() | Imagick::setImageChannelDepth() | Imagick::readImageFile() | Imagick::hasNextImage()
Imagick::charcoalImage() | Imagick::getImageChannelStatistics() | Imagick::setImageColormapColor() | Imagick::readImage() | Imagick::hasPreviousImage()
Imagick::chopImage() | Imagick::getImageColormapColor() | Imagick::setImageColorSpace() | Imagick::writeImages() | Imagick::labelImage()
Imagick::clipImage() | Imagick::getImageColorspace() | Imagick::setImageCompose() | Imagick::writeImage() | Imagick::newImage()
Imagick::clipPathImage() | Imagick::getImageColors() | Imagick::setImageCompression() |  | Imagick::newPseudoImage()
Imagick::coalesceImages() | Imagick::getImageCompose() | Imagick::setImageDelay() |  | Imagick::nextImage()
Imagick::colorFloodFillImage() | Imagick::getImageDelay() | Imagick::setImageDepth() |  | Imagick::pingImageBlob()
Imagick::colorizeImage() | Imagick::getImageDepth() | Imagick::setImageDispose() |  | Imagick::pingImageFile()
Imagick::combineImages() | Imagick::getImageDispose() | Imagick::setImageDispose() |  | Imagick::pingImage()
Imagick::compareImageChannels() | Imagick::getImageDistortion() | Imagick::setImageExtent() |  | Imagick::previousImage()
Imagick::compareImageLayers() | Imagick::getImageExtrema() | Imagick::setImageFilename() |  | Imagick::profileImage()
Imagick::compositeImage() | Imagick::getImageFilename() | Imagick::setImageFormat() |  | Imagick::queryFormats()
Imagick::contrastImage() | Imagick::getImageFormat() | Imagick::setImageGamma() |  | Imagick::removeImageProfile()
Imagick::contrastStretchImage() | Imagick::getImageGamma() | Imagick::setImageGreenPrimary() |  | Imagick::removeImage()
Imagick::convolveImage() | Imagick::getImageGeometry() | Imagick::setImageIndex() |  | Imagick::setFirstIterator()
Imagick::cropImage() | Imagick::getImageGreenPrimary() | Imagick::setImageInterpolateMethod() |  | Imagick::setImageIndex()
Imagick::cycleColormapImage() | Imagick::getImageHeight() | Imagick::setImageIterations() |  | Imagick::valid()
Imagick::deconstructImages() | Imagick::getImageHistogram() | Imagick::setImageMatteColor() |  | Imagick::getCopyright()
Imagick::drawImage() | Imagick::getImageIndex() | Imagick::setImageMatte() |  |
Imagick::edgeImage() | Imagick::getImageInterlaceScheme() | Imagick::setImagePage() |  |
Imagick::embossImage() | Imagick::getImageInterpolateMethod() | Imagick::setImageProfile() |  |
Imagick::enhanceImage() | Imagick::getImageIterations() | Imagick::setImageProperty() |  |
Imagick::equalizeImage() | Imagick::getImageMatteColor() | Imagick::setImageRedPrimary() |  |
Imagick::evaluateImage() | Imagick::getImageMatte() | Imagick::setImageRenderingIntent() |  |
Imagick::flattenImages() | Imagick::getImagePage() | Imagick::setImageResolution() |  |
Imagick::flipImage() | Imagick::getImagePixelColor() | Imagick::setImageScene() |  |
Imagick::flopImage() | Imagick::getImageProfile() | Imagick::setImageTicksPerSecond() |  |
 | Imagick::getImageProperty() | Imagick::setImageType() |  |
Imagick::fxImage() | Imagick::getImageRedPrimary() | Imagick::setImageUnits() |  |
Imagick::gammaImage() | Imagick::getImageRegion() | Imagick::setImageVirtualPixelMethod() |  |
Imagick::gaussianBlurImage() | Imagick::getImageRenderingIntent() | Imagick::setImageWhitepoint() |  |
Imagick::implodeImage() | Imagick::getImageResolution() | Imagick::setInterlaceScheme() |  |
Imagick::levelImage() | Imagick::getImageScene() | Imagick::setOption() |  |
Imagick::linearStretchImage() | Imagick::getImageSignature() | Imagick::setPage() |  |
Imagick::magnifyImage() | Imagick::getImageTicksPerSecond() | Imagick::setResolution() |  |
Imagick::matteFloodFillImage() | Imagick::getImageTotalInkDensity() | Imagick::setResourceLimit() |  |
Imagick::medianFilterImage() | Imagick::getImageType() | Imagick::setSamplingFactors() |  |
Imagick::minifyImage() | Imagick::getImageUnits() | Imagick::setSizeOffset() |  |
Imagick::modulateImage() | Imagick::getImageVirtualPixelMethod() | Imagick::setSize() |  |
Imagick::montageImage() | Imagick::getImageWhitepoint() | Imagick::setType() |  |
Imagick::morphImages() | Imagick::getImageWidth() |  |  |
Imagick::mosaicImages() | Imagick::getImage() |  |  |
Imagick::motionBlurImage() | Imagick::getInterlaceScheme() |  |  |
Imagick::negateImage() | Imagick::getNumberImages() |  |  |
Imagick::normalizeImage() | Imagick::getOption() |  |  |
Imagick::oilPaintImage() | Imagick::getPackageName() |  |  |
Imagick::optimizeImageLayers() | Imagick::getPage() |  |  |
Imagick::paintOpaqueImage() | Imagick::getPixelIterator() |  |  |
Imagick::paintTransparentImage() | Imagick::getPixelRegionIterator() |  |  |
Imagick::posterizeImage() | Imagick::getQuantumDepth() |  |  |
Imagick::radialBlurImage() | Imagick::getQuantumRange() |  |  |
Imagick::raiseImage() | Imagick::getResourceLimit() |  |  |
Imagick::randomThresholdImage() | Imagick::getResource() |  |  |
Imagick::reduceNoiseImage() | Imagick::getSamplingFactors() |  |  |
Imagick::render() | Imagick::getSizeOffset() |  |  |
Imagick::resampleImage() | Imagick::getSize() |  |  |
Imagick::resizeImage() | Imagick::identifyImage() |  |  |
Imagick::rollImage() | Imagick::getImageSize() |  |  |
Imagick::rotateImage() |  |  |  |
Imagick::sampleImage() |  |  |  |
Imagick::scaleImage() |  |  |  |
Imagick::separateImageChannel() |  |  |  |
Imagick::sepiaToneImage() |  |  |  |
Imagick::shadeImage() |  |  |  |
Imagick::shadowImage() |  |  |  |
Imagick::sharpenImage() |  |  |  |
Imagick::shaveImage() |  |  |  |
Imagick::shearImage() |  |  |  |
Imagick::sigmoidalContrastImage() |  |  |  |
Imagick::sketchImage() |  |  |  |
Imagick::solarizeImage() |  |  |  |
Imagick::spliceImage() |  |  |  |
Imagick::spreadImage() |  |  |  |
Imagick::steganoImage() |  |  |  |
Imagick::stereoImage() |  |  |  |
Imagick::stripImage() |  |  |  |
Imagick::swirlImage() |  |  |  |
Imagick::textureImage() |  |  |  |
Imagick::thresholdImage() |  |  |  |
Imagick::thumbnailImage() |  |  |  |
Imagick::tintImage() |  |  |  |
Imagick::transverseImage() |  |  |  |
Imagick::trimImage() |  |  |  |
Imagick::uniqueImageColors() |  |  |  |
Imagick::unsharpMaskImage() |  |  |  |
Imagick::vignetteImage() |  |  |  |
Imagick::waveImage() |  |  |  |
Imagick::whiteThresholdImage() |  |  |  |

Índice

  • Imagick::adaptiveBlurImage — Adds adaptive blur filter to image
  • Imagick::adaptiveResizeImage — Adaptively resize image with data dependent triangulation
  • Imagick::adaptiveSharpenImage — Adaptively sharpen the image
  • Imagick::adaptiveThresholdImage — Selects a threshold for each pixel based on a range of intensity
  • Imagick::addImage — Adds new image to Imagick object image list
  • Imagick::addNoiseImage — Adds random noise to the image
  • Imagick::affineTransformImage — Transforms an image
  • Imagick::animateImages — Animates an image or images
  • Imagick::annotateImage — Annotates an image with text
  • Imagick::appendImages — Append a set of images
  • Imagick::autoLevelImage — Adjusts the levels of a particular image channel
  • Imagick::averageImages — Average a set of images
  • Imagick::blackThresholdImage — Forces all pixels below the threshold into black
  • Imagick::blueShiftImage — Mutes the colors of the image
  • Imagick::blurImage — Adds blur filter to image
  • Imagick::borderImage — Surrounds the image with a border
  • Imagick::brightnessContrastImage — Change the brightness and/or contrast of an image
  • Imagick::charcoalImage — Simulates a charcoal drawing
  • Imagick::chopImage — Removes a region of an image and trims
  • Imagick::clampImage — Restricts the color range from 0 to the quantum depth.
  • Imagick::clear — Clears all resources associated to Imagick object
  • Imagick::clipImage — Clips along the first path from the 8BIM profile
  • Imagick::clipImagePath — Clips along the named paths from the 8BIM profile, if present
  • Imagick::clipPathImage — Clips along the named paths from the 8BIM profile
  • Imagick::clone — Makes an exact copy of the Imagick object
  • Imagick::clutImage — Replaces colors in the image
  • Imagick::coalesceImages — Composites a set of images
  • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
  • Imagick::colorizeImage — Blends the fill color with the image
  • Imagick::colorMatrixImage — Apply color transformation to an image
  • Imagick::combineImages — Combines one or more images into a single image
  • Imagick::commentImage — Adds a comment to your image
  • Imagick::compareImageChannels — Returns the difference in one or more images
  • Imagick::compareImageLayers — Returns the maximum bounding region between images
  • Imagick::compareImages — Compares an image to a reconstructed image
  • Imagick::compositeImage — Composite one image onto another
  • Imagick::__construct — The Imagick constructor
  • Imagick::contrastImage — Change the contrast of the image
  • Imagick::contrastStretchImage — Enhances the contrast of a color image
  • Imagick::convolveImage — Applies a custom convolution kernel to the image
  • Imagick::count — Get the number of images
  • Imagick::cropImage — Extracts a region of the image
  • Imagick::cropThumbnailImage — Creates a crop thumbnail
  • Imagick::current — Returns a reference to the current Imagick object
  • Imagick::cycleColormapImage — Displaces an image's colormap
  • Imagick::decipherImage — Deciphers an image
  • Imagick::deconstructImages — Returns certain pixel differences between images
  • Imagick::deleteImageArtifact — Delete image artifact
  • Imagick::deleteImageProperty — Deletes an image property
  • Imagick::deskewImage — Removes skew from the image
  • Imagick::despeckleImage — Reduces the speckle noise in an image
  • Imagick::destroy — Destroys the Imagick object
  • Imagick::displayImage — Displays an image
  • Imagick::displayImages — Displays an image or image sequence
  • Imagick::distortImage — Distorts an image using various distortion methods
  • Imagick::drawImage — Renders the ImagickDraw object on the current image
  • Imagick::edgeImage — Enhance edges within the image
  • Imagick::embossImage — Returns a grayscale image with a three-dimensional effect
  • Imagick::encipherImage — Enciphers an image
  • Imagick::enhanceImage — Improves the quality of a noisy image
  • Imagick::equalizeImage — Equalizes the image histogram
  • Imagick::evaluateImage — Applies an expression to an image
  • Imagick::exportImagePixels — Exports raw image pixels
  • Imagick::extentImage — Set image size
  • Imagick::filter — Applies a custom convolution kernel to the image
  • Imagick::flattenImages — Merges a sequence of images
  • Imagick::flipImage — Creates a vertical mirror image
  • Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target
  • Imagick::flopImage — Creates a horizontal mirror image
  • Imagick::forwardFourierTransformImage — Implements the discrete Fourier transform (DFT)
  • Imagick::frameImage — Adds a simulated three-dimensional border
  • Imagick::functionImage — Applies a function on the image
  • Imagick::fxImage — Evaluate expression for each pixel in the image
  • Imagick::gammaImage — Gamma-corrects an image
  • Imagick::gaussianBlurImage — Blurs an image
  • Imagick::getColorspace — Gets the colorspace
  • Imagick::getCompression — Gets the object compression type
  • Imagick::getCompressionQuality — Gets the object compression quality
  • Imagick::getCopyright — Returns the ImageMagick API copyright as a string
  • Imagick::getFilename — The filename associated with an image sequence
  • Imagick::getFont — Gets font
  • Imagick::getFormat — Returns the format of the Imagick object
  • Imagick::getGravity — Gets the gravity
  • Imagick::getHomeURL — Returns the ImageMagick home URL
  • Imagick::getImage — Returns a new Imagick object
  • Imagick::getImageAlphaChannel — Checks if the image has an alpha channel
  • Imagick::getImageArtifact — Get image artifact
  • Imagick::getImageAttribute — Returns a named attribute
  • Imagick::getImageBackgroundColor — Returns the image background color
  • Imagick::getImageBlob — Returns the image sequence as a blob
  • Imagick::getImageBluePrimary — Returns the chromaticy blue primary point
  • Imagick::getImageBorderColor — Returns the image border color
  • Imagick::getImageChannelDepth — Gets the depth for a particular image channel
  • Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image
  • Imagick::getImageChannelDistortions — Gets channel distortions
  • Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels
  • Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose
  • Imagick::getImageChannelMean — Gets the mean and standard deviation
  • Imagick::getImageChannelRange — Gets channel range
  • Imagick::getImageChannelStatistics — Returns statistics for each channel in the image
  • Imagick::getImageClipMask — Gets image clip mask
  • Imagick::getImageColormapColor — Returns the color of the specified colormap index
  • Imagick::getImageColors — Gets the number of unique colors in the image
  • Imagick::getImageColorspace — Gets the image colorspace
  • Imagick::getImageCompose — Returns the composite operator associated with the image
  • Imagick::getImageCompression — Gets the current image's compression type
  • Imagick::getImageCompressionQuality — Gets the current image's compression quality
  • Imagick::getImageDelay — Gets the image delay
  • Imagick::getImageDepth — Gets the image depth
  • Imagick::getImageDispose — Gets the image disposal method
  • Imagick::getImageDistortion — Compares an image to a reconstructed image
  • Imagick::getImageExtrema — Gets the extrema for the image
  • Imagick::getImageFilename — Returns the filename of a particular image in a sequence
  • Imagick::getImageFormat — Returns the format of a particular image in a sequence
  • Imagick::getImageGamma — Gets the image gamma
  • Imagick::getImageGeometry — Gets the width and height as an associative array
  • Imagick::getImageGravity — Gets the image gravity
  • Imagick::getImageGreenPrimary — Returns the chromaticy green primary point
  • Imagick::getImageHeight — Returns the image height
  • Imagick::getImageHistogram — Gets the image histogram
  • Imagick::getImageIndex — Gets the index of the current active image
  • Imagick::getImageInterlaceScheme — Gets the image interlace scheme
  • Imagick::getImageInterpolateMethod — Returns the interpolation method
  • Imagick::getImageIterations — Gets the image iterations
  • Imagick::getImageLength — Returns the image length in bytes
  • Imagick::getImageMatte — Return if the image has a matte channel
  • Imagick::getImageMatteColor — Returns the image matte color
  • Imagick::getImageMimeType — Returns the image mime-type
  • Imagick::getImageOrientation — Gets the image orientation
  • Imagick::getImagePage — Returns the page geometry
  • Imagick::getImagePixelColor — Returns the color of the specified pixel
  • Imagick::getImageProfile — Returns the named image profile
  • Imagick::getImageProfiles — Returns the image profiles
  • Imagick::getImageProperties — Returns the image properties
  • Imagick::getImageProperty — Returns the named image property
  • Imagick::getImageRedPrimary — Returns the chromaticity red primary point
  • Imagick::getImageRegion — Extracts a region of the image
  • Imagick::getImageRenderingIntent — Gets the image rendering intent
  • Imagick::getImageResolution — Gets the image X and Y resolution
  • Imagick::getImagesBlob — Returns all image sequences as a blob
  • Imagick::getImageScene — Gets the image scene
  • Imagick::getImageSignature — Generates an SHA-256 message digest
  • Imagick::getImageSize — Returns the image length in bytes
  • Imagick::getImageTicksPerSecond — Gets the image ticks-per-second
  • Imagick::getImageTotalInkDensity — Gets the image total ink density
  • Imagick::getImageType — Gets the potential image type
  • Imagick::getImageUnits — Gets the image units of resolution
  • Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method
  • Imagick::getImageWhitePoint — Returns the chromaticity white point
  • Imagick::getImageWidth — Returns the image width
  • Imagick::getInterlaceScheme — Gets the object interlace scheme
  • Imagick::getIteratorIndex — Gets the index of the current active image
  • Imagick::getNumberImages — Returns the number of images in the object
  • Imagick::getOption — Returns a value associated with the specified key
  • Imagick::getPackageName — Returns the ImageMagick package name
  • Imagick::getPage — Returns the page geometry
  • Imagick::getPixelIterator — Returns a MagickPixelIterator
  • Imagick::getPixelRegionIterator — Get an ImagickPixelIterator for an image section
  • Imagick::getPointSize — Gets point size
  • Imagick::getQuantum — Returns the ImageMagick quantum range
  • Imagick::getQuantumDepth — Gets the quantum depth
  • Imagick::getQuantumRange — Returns the Imagick quantum range
  • Imagick::getRegistry — Get a StringRegistry entry
  • Imagick::getReleaseDate — Returns the ImageMagick release date
  • Imagick::getResource — Returns the specified resource's memory usage
  • Imagick::getResourceLimit — Returns the specified resource limit
  • Imagick::getSamplingFactors — Gets the horizontal and vertical sampling factor
  • Imagick::getSize — Returns the size associated with the Imagick object
  • Imagick::getSizeOffset — Returns the size offset
  • Imagick::getVersion — Returns the ImageMagick API version
  • Imagick::haldClutImage — Replaces colors in the image
  • Imagick::hasNextImage — Checks if the object has more images
  • Imagick::hasPreviousImage — Checks if the object has a previous image
  • Imagick::identifyFormat — Formats a string with image details
  • Imagick::identifyImage — Identifies an image and fetches attributes
  • Imagick::implodeImage — Creates a new image as a copy
  • Imagick::importImagePixels — Imports image pixels
  • Imagick::inverseFourierTransformImage — Implements the inverse discrete Fourier transform (DFT)
  • Imagick::labelImage — Adds a label to an image
  • Imagick::levelImage — Adjusts the levels of an image
  • Imagick::linearStretchImage — Stretches with saturation the image intensity
  • Imagick::liquidRescaleImage — Animates an image or images
  • Imagick::listRegistry — List all the registry settings
  • Imagick::magnifyImage — Scales an image proportionally 2x
  • Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image
  • Imagick::matteFloodfillImage — Changes the transparency value of a color
  • Imagick::medianFilterImage — Applies a digital filter
  • Imagick::mergeImageLayers — Merges image layers
  • Imagick::minifyImage — Scales an image proportionally to half its size
  • Imagick::modulateImage — Control the brightness, saturation, and hue
  • Imagick::montageImage — Creates a composite image
  • Imagick::morphImages — Method morphs a set of images
  • Imagick::morphology — Applies a user supplied kernel to the image according to the given morphology method.
  • Imagick::mosaicImages — Forms a mosaic from images
  • Imagick::motionBlurImage — Simulates motion blur
  • Imagick::negateImage — Negates the colors in the reference image
  • Imagick::newImage — Creates a new image
  • Imagick::newPseudoImage — Creates a new image
  • Imagick::nextImage — Moves to the next image
  • Imagick::normalizeImage — Enhances the contrast of a color image
  • Imagick::oilPaintImage — Simulates an oil painting
  • Imagick::opaquePaintImage — Changes the color value of any pixel that matches target
  • Imagick::optimizeImageLayers — Removes repeated portions of images to optimize
  • Imagick::orderedPosterizeImage — Performs an ordered dither
  • Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target
  • Imagick::paintOpaqueImage — Change any pixel that matches color
  • Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill
  • Imagick::pingImage — Fetch basic attributes about the image
  • Imagick::pingImageBlob — Quickly fetch attributes
  • Imagick::pingImageFile — Get basic image attributes in a lightweight manner
  • Imagick::polaroidImage — Simulates a Polaroid picture
  • Imagick::posterizeImage — Reduces the image to a limited number of color level
  • Imagick::previewImages — Quickly pin-point appropriate parameters for image processing
  • Imagick::previousImage — Move to the previous image in the object
  • Imagick::profileImage — Adds or removes a profile from an image
  • Imagick::quantizeImage — Analyzes the colors within a reference image
  • Imagick::quantizeImages — Analyzes the colors within a sequence of images
  • Imagick::queryFontMetrics — Returns an array representing the font metrics
  • Imagick::queryFonts — Returns the configured fonts
  • Imagick::queryFormats — Returns formats supported by Imagick
  • Imagick::radialBlurImage — Radial blurs an image
  • Imagick::raiseImage — Creates a simulated 3d button-like effect
  • Imagick::randomThresholdImage — Creates a high-contrast, two-color image
  • Imagick::readImage — Reads image from filename
  • Imagick::readImageBlob — Reads image from a binary string
  • Imagick::readImageFile — Reads image from open filehandle
  • Imagick::readimages — Reads image from an array of filenames
  • Imagick::recolorImage — Recolors image
  • Imagick::reduceNoiseImage — Smooths the contours of an image
  • Imagick::remapImage — Remaps image colors
  • Imagick::removeImage — Removes an image from the image list
  • Imagick::removeImageProfile — Removes the named image profile and returns it
  • Imagick::render — Renders all preceding drawing commands
  • Imagick::resampleImage — Resample image to desired resolution
  • Imagick::resetImagePage — Reset image page
  • Imagick::resizeImage — Scales an image
  • Imagick::rollImage — Offsets an image
  • Imagick::rotateImage — Rotates an image
  • Imagick::rotationalBlurImage — Rotational blurs an image
  • Imagick::roundCorners — Rounds image corners
  • Imagick::sampleImage — Scales an image with pixel sampling
  • Imagick::scaleImage — Scales the size of an image
  • Imagick::segmentImage — Segments an image
  • Imagick::selectiveBlurImage — Selectively blur an image within a contrast threshold
  • Imagick::separateImageChannel — Separates a channel from the image
  • Imagick::sepiaToneImage — Sepia tones an image
  • Imagick::setBackgroundColor — Sets the object's default background color
  • Imagick::setColorspace — Set colorspace
  • Imagick::setCompression — Sets the object's default compression type
  • Imagick::setCompressionQuality — Sets the object's default compression quality
  • Imagick::setFilename — Sets the filename before you read or write the image
  • Imagick::setFirstIterator — Sets the Imagick iterator to the first image
  • Imagick::setFont — Sets font
  • Imagick::setFormat — Sets the format of the Imagick object
  • Imagick::setGravity — Sets the gravity
  • Imagick::setImage — Replaces image in the object
  • Imagick::setImageAlphaChannel — Sets image alpha channel
  • Imagick::setImageArtifact — Set image artifact
  • Imagick::setImageAttribute — Sets an image attribute
  • Imagick::setImageBackgroundColor — Sets the image background color
  • Imagick::setImageBias — Sets the image bias for any method that convolves an image
  • Imagick::setImageBiasQuantum — Sets the image bias
  • Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point
  • Imagick::setImageBorderColor — Sets the image border color
  • Imagick::setImageChannelDepth — Sets the depth of a particular image channel
  • Imagick::setImageClipMask — Sets image clip mask
  • Imagick::setImageColormapColor — Sets the color of the specified colormap index
  • Imagick::setImageColorspace — Sets the image colorspace
  • Imagick::setImageCompose — Sets the image composite operator
  • Imagick::setImageCompression — Sets the image compression
  • Imagick::setImageCompressionQuality — Sets the image compression quality
  • Imagick::setImageDelay — Sets the image delay
  • Imagick::setImageDepth — Sets the image depth
  • Imagick::setImageDispose — Sets the image disposal method
  • Imagick::setImageExtent — Sets the image size
  • Imagick::setImageFilename — Sets the filename of a particular image
  • Imagick::setImageFormat — Sets the format of a particular image
  • Imagick::setImageGamma — Sets the image gamma
  • Imagick::setImageGravity — Sets the image gravity
  • Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point
  • Imagick::setImageIndex — Set the iterator position
  • Imagick::setImageInterlaceScheme — Sets the image compression
  • Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method
  • Imagick::setImageIterations — Sets the image iterations
  • Imagick::setImageMatte — Sets the image matte channel
  • Imagick::setImageMatteColor — Sets the image matte color
  • Imagick::setImageOpacity — Sets the image opacity level
  • Imagick::setImageOrientation — Sets the image orientation
  • Imagick::setImagePage — Sets the page geometry of the image
  • Imagick::setImageProfile — Adds a named profile to the Imagick object
  • Imagick::setImageProperty — Sets an image property
  • Imagick::setImageRedPrimary — Sets the image chromaticity red primary point
  • Imagick::setImageRenderingIntent — Sets the image rendering intent
  • Imagick::setImageResolution — Sets the image resolution
  • Imagick::setImageScene — Sets the image scene
  • Imagick::setImageTicksPerSecond — Sets the image ticks-per-second
  • Imagick::setImageType — Sets the image type
  • Imagick::setImageUnits — Sets the image units of resolution
  • Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method
  • Imagick::setImageWhitePoint — Sets the image chromaticity white point
  • Imagick::setInterlaceScheme — Sets the image compression
  • Imagick::setIteratorIndex — Set the iterator position
  • Imagick::setLastIterator — Sets the Imagick iterator to the last image
  • Imagick::setOption — Set an option
  • Imagick::setPage — Sets the page geometry of the Imagick object
  • Imagick::setPointSize — Sets point size
  • Imagick::setProgressMonitor — Set a callback to be called during processing
  • Imagick::setRegistry — Sets the ImageMagick registry entry named key to value
  • Imagick::setResolution — Sets the image resolution
  • Imagick::setResourceLimit — Sets the limit for a particular resource
  • Imagick::setSamplingFactors — Sets the image sampling factors
  • Imagick::setSize — Sets the size of the Imagick object
  • Imagick::setSizeOffset — Sets the size and offset of the Imagick object
  • Imagick::setType — Sets the image type attribute
  • Imagick::shadeImage — Creates a 3D effect
  • Imagick::shadowImage — Simulates an image shadow
  • Imagick::sharpenImage — Sharpens an image
  • Imagick::shaveImage — Shaves pixels from the image edges
  • Imagick::shearImage — Creating a parallelogram
  • Imagick::sigmoidalContrastImage — Adjusts the contrast of an image
  • Imagick::sketchImage — Simulates a pencil sketch
  • Imagick::smushImages — Takes all images from the current image pointer to the end of the image list and smushs them
  • Imagick::solarizeImage — Applies a solarizing effect to the image
  • Imagick::sparseColorImage — Interpolates colors
  • Imagick::spliceImage — Splices a solid color into the image
  • Imagick::spreadImage — Randomly displaces each pixel in a block
  • Imagick::statisticImage — Modifies image using a statistics function
  • Imagick::steganoImage — Hides a digital watermark within the image
  • Imagick::stereoImage — Composites two images
  • Imagick::stripImage — Strips an image of all profiles and comments
  • Imagick::subImageMatch — Searches for a subimage in the current image and returns a similarity image
  • Imagick::swirlImage — Swirls the pixels about the center of the image
  • Imagick::textureImage — Repeatedly tiles the texture image
  • Imagick::thresholdImage — Changes the value of individual pixels based on a threshold
  • Imagick::thumbnailImage — Changes the size of an image
  • Imagick::tintImage — Applies a color vector to each pixel in the image
  • Imagick::__toString — Returns the image as a string
  • Imagick::transformImage — Convenience method for setting crop size and the image geometry
  • Imagick::transformImageColorspace — Transforms an image to a new colorspace
  • Imagick::transparentPaintImage — Paints pixels transparent
  • Imagick::transposeImage — Creates a vertical mirror image
  • Imagick::transverseImage — Creates a horizontal mirror image
  • Imagick::trimImage — Remove edges from the image
  • Imagick::uniqueImageColors — Discards all but one of any pixel color
  • Imagick::unsharpMaskImage — Sharpens an image
  • Imagick::valid — Checks if the current item is valid
  • Imagick::vignetteImage — Adds vignette filter to the image
  • Imagick::waveImage — Applies wave filter to the image
  • Imagick::whiteThresholdImage — Force all pixels above the threshold into white
  • Imagick::writeImage — Writes an image to the specified filename
  • Imagick::writeImageFile — Writes an image to a filehandle
  • Imagick::writeImages — Writes an image or image sequence
  • Imagick::writeImagesFile — Writes frames to a filehandle


Adds adaptive blur filter to image

  • « Imagick
  • Imagick::adaptiveResizeImage »
  • PHP Manual
  • Imagick
  • Adds adaptive blur filter to image

Imagick::adaptiveBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveBlurImage — Adds adaptive blur filter to image

Descrição

public Imagick::adaptiveBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool

Adds an adaptive blur filter to image. The intensity of an adaptive blur depends is dramatically decreased at edge of the image, whereas a standard blur is uniform across the image. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

radius

The radius of the Gaussian, in pixels, not counting the center pixel. Provide a value of 0 and the radius will be chosen automagically.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::adaptiveBlurImage():

Adaptively blur an image, then display to the browser.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->adaptiveBlurImage(5,3);
echo $image;

?>

O exemplo acima produzirá algo semelhante a:

Output of example : Using Imagick::adaptiveBlurImage()

Veja Também

  • Imagick::blurImage() - Adds blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Adaptively resize image with data dependent triangulation

  • « Imagick::adaptiveBlurImage
  • Imagick::adaptiveSharpenImage »
  • PHP Manual
  • Imagick
  • Adaptively resize image with data dependent triangulation

Imagick::adaptiveResizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveResizeImage — Adaptively resize image with data dependent triangulation

Descrição

public Imagick::adaptiveResizeImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $legacy = false
): bool

Adaptively resize image with data-dependent triangulation. Avoids blurring across sharp color changes. Most useful when used to shrink images slightly to a slightly smaller "web size"; may not look good when a full-sized image is adaptively resized to a thumbnail. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Nota: O comportamento do parâmetro bestfit mudou na Imagick 3.0.0. Antes desta versão, dadas as dimensões 400x400, uma imagem de dimensões 200x150 permaneceria intocada. Na Imagick 3.0.0 e superiores, a imagem será escalada para 400x300, pois este é o "melhor ajuste" para as dimensões fornecidas. Se o parâmetro bestfit for usado, tanto a largura quanto a altura devem ser informadas.

Parâmetros

columns

The number of columns in the scaled image.

rows

The number of rows in the scaled image.

bestfit

Whether to fit the image inside a bounding box.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Added optional fit parameter.
PECL imagick 2.1.0 | This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Exemplos

Exemplo #1 Using Imagick::adaptiveResizeImage()

Resize an image to a standard size for the web. This method works best when resizing to a size only slightly smaller than the previous image size.

<?php
header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');
$image->adaptiveResizeImage(1024,768);

echo $image;
?>

Veja Também

  • Imagick::chopImage() - Removes a region of an image and trims
  • Imagick::cropImage() - Extracts a region of the image
  • Imagick::magnifyImage() - Scales an image proportionally 2x
  • Imagick::minifyImage() - Scales an image proportionally to half its size
  • Imagick::resizeImage() - Scales an image
  • Imagick::scaleImage() - Scales the size of an image
  • Imagick::shaveImage() - Shaves pixels from the image edges
  • Imagick::thumbnailImage() - Changes the size of an image
  • Imagick::trimImage() - Remove edges from the image


Adaptively sharpen the image

  • « Imagick::adaptiveResizeImage
  • Imagick::adaptiveThresholdImage »
  • PHP Manual
  • Imagick
  • Adaptively sharpen the image

Imagick::adaptiveSharpenImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveSharpenImage — Adaptively sharpen the image

Descrição

public Imagick::adaptiveSharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool

Adaptively sharpen the image by sharpening more intensely near image edges and less intensely far from edges. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

radius

The radius of the Gaussian, in pixels, not counting the center pixel. Use 0 for auto-select.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 A Imagick::adaptiveSharpenImage() example

Adaptively sharpen the image with radius 2 and sigma 1.

<?php
try {
$image = new Imagick('image.png');
$image->adaptiveSharpenImage(2,1);
} catch(ImagickException $e) {
echo 'Error: ' , $e->getMessage();
die();
}
header('Content-type: image/png');
echo $image;
?>

Veja Também

  • Imagick::sharpenImage() - Sharpens an image


Selects a threshold for each pixel based on a range of intensity

  • « Imagick::adaptiveSharpenImage
  • Imagick::addImage »
  • PHP Manual
  • Imagick
  • Selects a threshold for each pixel based on a range of intensity

Imagick::adaptiveThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveThresholdImage — Selects a threshold for each pixel based on a range of intensity

Descrição

public Imagick::adaptiveThresholdImage(int $width, int $height, int $offset): bool

Selects an individual threshold for each pixel based on the range of intensity values in its local neighborhood. This allows for thresholding of an image whose global intensity histogram doesn't contain distinctive peaks.

Parâmetros

width

Width of the local neighborhood.

height

Height of the local neighborhood.

offset

The mean offset

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::adaptiveThresholdImage()

<?php
function adaptiveThresholdImage($imagePath, $width, $height, $adaptiveOffset) {
$imagick = new \Imagick(realpath($imagePath));
$adaptiveOffsetQuantum = intval($adaptiveOffset * \Imagick::getQuantum());
$imagick->adaptiveThresholdImage($width, $height, $adaptiveOffsetQuantum);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Adds new image to Imagick object image list

  • « Imagick::adaptiveThresholdImage
  • Imagick::addNoiseImage »
  • PHP Manual
  • Imagick
  • Adds new image to Imagick object image list

Imagick::addImage

(PECL imagick 2, PECL imagick 3)

Imagick::addImage — Adds new image to Imagick object image list

Descrição

public Imagick::addImage(Imagick $source): bool

Adds new image to Imagick object from the current position of the source object. After the operation iterator position is moved at the end of the list.

Parâmetros

source

The source Imagick object

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Adds random noise to the image

  • « Imagick::addImage
  • Imagick::affineTransformImage »
  • PHP Manual
  • Imagick
  • Adds random noise to the image

Imagick::addNoiseImage

(PECL imagick 2, PECL imagick 3)

Imagick::addNoiseImage — Adds random noise to the image

Descrição

public Imagick::addNoiseImage(int $noise_type, int $channel = Imagick::CHANNEL_DEFAULT): bool

Adds random noise to the image.

Parâmetros

noise_type

The type of the noise. Refer to this list of noise constants.

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::addNoiseImage()

<?php
function addNoiseImage($noiseType, $imagePath, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->addNoiseImage($noiseType, $channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Transforms an image

  • « Imagick::addNoiseImage
  • Imagick::animateImages »
  • PHP Manual
  • Imagick
  • Transforms an image

Imagick::affineTransformImage

(PECL imagick 2, PECL imagick 3)

Imagick::affineTransformImage — Transforms an image

Descrição

public Imagick::affineTransformImage(ImagickDraw $matrix): bool

Transforms an image as dictated by the affine matrix.

Parâmetros

matrix

The affine matrix

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::affineTransformImage()

<?php
function affineTransformImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$draw = new \ImagickDraw();

$angle = deg2rad(40);

$affineRotate = array(
"sx" => cos($angle), "sy" => cos($angle),
"rx" => sin($angle), "ry" => -sin($angle),
"tx" => 0, "ty" => 0,
);

$draw->affine($affineRotate);

$imagick->affineTransformImage($draw);

header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Animates an image or images

  • « Imagick::affineTransformImage
  • Imagick::annotateImage »
  • PHP Manual
  • Imagick
  • Animates an image or images

Imagick::animateImages

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::animateImages — Animates an image or images

Descrição

public Imagick::animateImages(string $x_server): bool

This method animates the image onto a local or remote X server. This method is not available on Windows. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

x_server

X server address

Valor Retornado

Retorna true em caso de sucesso.

Veja Também

  • Imagick::displayImage() - Displays an image


Annotates an image with text

  • « Imagick::animateImages
  • Imagick::appendImages »
  • PHP Manual
  • Imagick
  • Annotates an image with text

Imagick::annotateImage

(PECL imagick 2, PECL imagick 3)

Imagick::annotateImage — Annotates an image with text

Descrição

public Imagick::annotateImage(
ImagickDraw $draw_settings,
float $x,
float $y,
float $angle,
string $text
): bool

Annotates an image with text.

Parâmetros

draw_settings

The ImagickDraw object that contains settings for drawing the text

x

Horizontal offset in pixels to the left of text

y

Vertical offset in pixels to the baseline of text

angle

The angle at which to write the text

text

The string to draw

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Using Imagick::annotateImage():

Annotate text on an empty image

<?php
/* Create some objects */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'gray' );

/* New image */
$image->newImage(800, 75, $pixel);

/* Black text */
$draw->setFillColor('black');

/* Font properties */
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );

/* Create text */
$image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog');

/* Give image a format */
$image->setImageFormat('png');

/* Output the image with headers */
header('Content-type: image/png');
echo $image;

?>

Veja Também

  • ImagickDraw::annotation() - Draws text on the image
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text


Append a set of images

  • « Imagick::annotateImage
  • Imagick::autoLevelImage »
  • PHP Manual
  • Imagick
  • Append a set of images

Imagick::appendImages

(PECL imagick 2, PECL imagick 3)

Imagick::appendImages — Append a set of images

Descrição

public Imagick::appendImages(bool $stack): Imagick

Append a set of images into one larger image.

Parâmetros

stack

Whether to stack the images vertically. By default (or if false is specified) images are stacked left-to-right. If stack is true, images are stacked top-to-bottom.

Valor Retornado

Returns Imagick instance on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::appendImages() example

<?php

/* Create new imagick object */
$im = new Imagick();

/* create red, green and blue images */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Append the images into one */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Output the image */
$combined->setImageFormat("png");
header("Content-Type: image/png");
echo $combined;
?>

O exemplo acima produzirá algo semelhante a:

Output of example : Imagick::appendImages()


Adjusts the levels of a particular image channel

  • « Imagick::appendImages
  • Imagick::averageImages »
  • PHP Manual
  • Imagick
  • Adjusts the levels of a particular image channel

Imagick::autoLevelImage

(PECL imagick 3 >= 3.3.0)

Imagick::autoLevelImage — Adjusts the levels of a particular image channel

Descrição

public Imagick::autoLevelImage(int $channel = Imagick::CHANNEL_DEFAULT): bool

Adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range.

Parâmetros

channel

Which channel should the auto-levelling should be done on.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::autoLevelImage()

<?php
function autoLevelImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->autoLevelImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Average a set of images

  • « Imagick::autoLevelImage
  • Imagick::blackThresholdImage »
  • PHP Manual
  • Imagick
  • Average a set of images

Imagick::averageImages

(PECL imagick 2, PECL imagick 3)

Imagick::averageImages — Average a set of images

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::averageImages(): Imagick

Average a set of images.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a new Imagick object on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Forces all pixels below the threshold into black

  • « Imagick::averageImages
  • Imagick::blueShiftImage »
  • PHP Manual
  • Imagick
  • Forces all pixels below the threshold into black

Imagick::blackThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::blackThresholdImage — Forces all pixels below the threshold into black

Descrição

public Imagick::blackThresholdImage(mixed $threshold): bool

Is like Imagick::thresholdImage() but forces all pixels below the threshold into black while leaving all pixels above the threshold unchanged.

Parâmetros

threshold

The threshold below which everything turns black

Valor Retornado

Retorna true em caso de sucesso.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.

Exemplos

Exemplo #1 Imagick::blackThresholdImage()

<?php
function blackThresholdImage($imagePath, $thresholdColor) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->blackthresholdimage($thresholdColor);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Mutes the colors of the image

  • « Imagick::blackThresholdImage
  • Imagick::blurImage »
  • PHP Manual
  • Imagick
  • Mutes the colors of the image

Imagick::blueShiftImage

(PECL imagick 3 >= 3.3.0)

Imagick::blueShiftImage — Mutes the colors of the image

Descrição

public Imagick::blueShiftImage(float $factor = 1.5): bool

Mutes the colors of the image to simulate a scene at nighttime in the moonlight.

Parâmetros

factor

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::blueShiftImage()

<?php
function blueShiftImage($imagePath, $blueShift) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->blueShiftImage($blueShift);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Adds blur filter to image

  • « Imagick::blueShiftImage
  • Imagick::borderImage »
  • PHP Manual
  • Imagick
  • Adds blur filter to image

Imagick::blurImage

(PECL imagick 2, PECL imagick 3)

Imagick::blurImage — Adds blur filter to image

Descrição

public Imagick::blurImage(float $radius, float $sigma, int $channel = ?): bool

Adds blur filter to image. Optional third parameter to blur a specific channel.

Parâmetros

radius

Blur radius

sigma

Standard deviation

channel

The Channeltype constant. When not supplied, all channels are blurred.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::blurImage():

Blur an image, then display to the browser.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->blurImage(5,3);
echo $image;

?>

Veja Também

  • Imagick::adaptiveBlurImage() - Adds adaptive blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Surrounds the image with a border

  • « Imagick::blurImage
  • Imagick::brightnessContrastImage »
  • PHP Manual
  • Imagick
  • Surrounds the image with a border

Imagick::borderImage

(PECL imagick 2, PECL imagick 3)

Imagick::borderImage — Surrounds the image with a border

Descrição

public Imagick::borderImage(mixed $bordercolor, int $width, int $height): bool

Surrounds the image with a border of the color defined by the bordercolor ImagickPixel object.

Parâmetros

bordercolor

ImagickPixel object or a string containing the border color

width

Border width

height

Border height

Valor Retornado

Retorna true em caso de sucesso.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Exemplos

Exemplo #1 Imagick::borderImage()

<?php
function borderImage($imagePath, $color, $width, $height) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->borderImage($color, $width, $height);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Change the brightness and/or contrast of an image

  • « Imagick::borderImage
  • Imagick::charcoalImage »
  • PHP Manual
  • Imagick
  • Change the brightness and/or contrast of an image

Imagick::brightnessContrastImage

(PECL imagick 3 >= 3.3.0)

Imagick::brightnessContrastImage — Change the brightness and/or contrast of an image

Descrição

public Imagick::brightnessContrastImage(float $brightness, float $contrast, int $channel = Imagick::CHANNEL_DEFAULT): bool

Change the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image.

Parâmetros

brightness

contrast

channel

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::brightnessContrastImage()

<?php
function brightnessContrastImage($imagePath, $brightness, $contrast, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->brightnessContrastImage($brightness, $contrast, $channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Simulates a charcoal drawing

  • « Imagick::brightnessContrastImage
  • Imagick::chopImage »
  • PHP Manual
  • Imagick
  • Simulates a charcoal drawing

Imagick::charcoalImage

(PECL imagick 2, PECL imagick 3)

Imagick::charcoalImage — Simulates a charcoal drawing

Descrição

public Imagick::charcoalImage(float $radius, float $sigma): bool

Simulates a charcoal drawing.

Parâmetros

radius

The radius of the Gaussian, in pixels, not counting the center pixel

sigma

The standard deviation of the Gaussian, in pixels

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::charcoalImage()

<?php
function charcoalImage($imagePath, $radius, $sigma) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->charcoalImage($radius, $sigma);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Removes a region of an image and trims

  • « Imagick::charcoalImage
  • Imagick::clampImage »
  • PHP Manual
  • Imagick
  • Removes a region of an image and trims

Imagick::chopImage

(PECL imagick 2, PECL imagick 3)

Imagick::chopImage — Removes a region of an image and trims

Descrição

public Imagick::chopImage(
int $width,
int $height,
int $x,
int $y
): bool

Removes a region of an image and collapses the image to occupy the removed portion.

Parâmetros

width

Width of the chopped area

height

Height of the chopped area

x

X origo of the chopped area

y

Y origo of the chopped area

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::chopImage():

Example of using Imagick::chopImage

<?php
/* Create some objects */
$image = new Imagick();
$pixel = new ImagickPixel( 'gray' );

/* New image */
$image->newImage(400, 200, $pixel);

/* Chop image */
$image->chopImage(200, 200, 0, 0);

/* Give image a format */
$image->setImageFormat('png');

/* Output the image with headers */
header('Content-type: image/png');
echo $image;

?>

Veja Também

  • Imagick::cropImage() - Extracts a region of the image


Restricts the color range from 0 to the quantum depth.

  • « Imagick::chopImage
  • Imagick::clear »
  • PHP Manual
  • Imagick
  • Restricts the color range from 0 to the quantum depth.

Imagick::clampImage

(PECL imagick 3 >= 3.3.0)

Imagick::clampImage — Restricts the color range from 0 to the quantum depth.

Descrição

public Imagick::clampImage(int $channel = Imagick::CHANNEL_DEFAULT): bool

Restricts the color range from 0 to the quantum depth.

Parâmetros

channel

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Clears all resources associated to Imagick object

  • « Imagick::clampImage
  • Imagick::clipImage »
  • PHP Manual
  • Imagick
  • Clears all resources associated to Imagick object

Imagick::clear

(PECL imagick 2, PECL imagick 3)

Imagick::clear — Clears all resources associated to Imagick object

Descrição

public Imagick::clear(): bool

Clears all resources associated to Imagick object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Clips along the first path from the 8BIM profile

  • « Imagick::clear
  • Imagick::clipImagePath »
  • PHP Manual
  • Imagick
  • Clips along the first path from the 8BIM profile

Imagick::clipImage

(PECL imagick 2, PECL imagick 3)

Imagick::clipImage — Clips along the first path from the 8BIM profile

Descrição

public Imagick::clipImage(): bool

Clips along the first path from the 8BIM profile, if present.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Clips along the named paths from the 8BIM profile, if present

  • « Imagick::clipImage
  • Imagick::clipPathImage »
  • PHP Manual
  • Imagick
  • Clips along the named paths from the 8BIM profile, if present

Imagick::clipImagePath

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::clipImagePath — Clips along the named paths from the 8BIM profile, if present

Descrição

public Imagick::clipImagePath(string $pathname, string $inside): void

Clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. Id may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

pathname

inside

Valor Retornado


Clips along the named paths from the 8BIM profile

  • « Imagick::clipImagePath
  • Imagick::clone »
  • PHP Manual
  • Imagick
  • Clips along the named paths from the 8BIM profile

Imagick::clipPathImage

(PECL imagick 2, PECL imagick 3)

Imagick::clipPathImage — Clips along the named paths from the 8BIM profile

Descrição

public Imagick::clipPathImage(string $pathname, bool $inside): bool

Clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. It may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

Parâmetros

pathname

The name of the path

inside

If true later operations take effect inside clipping path. Otherwise later operations take effect outside clipping path.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Makes an exact copy of the Imagick object

  • « Imagick::clipPathImage
  • Imagick::clutImage »
  • PHP Manual
  • Imagick
  • Makes an exact copy of the Imagick object

Imagick::clone

(PECL imagick 2, PECL imagick 3)

Imagick::clone — Makes an exact copy of the Imagick object

Descrição

public Imagick::clone(): Imagick

Makes an exact copy of the Imagick object.

Aviso

This function has been DEPRECATED as of imagick 3.1.0 in favour of using the clone keyword.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A copy of the Imagick object is returned.

Registro de Alterações

Versão | Descrição
PECL imagick 3.1.0 | The method was deprecated in favour of the clone keyword.

Exemplos

Exemplo #1 Imagick object cloning in different versions of imagick

<?php
// Cloning an Imagick object in imagick 2.x and 3.0:
$newImage = $image->clone();

// Cloning an Imagick object from 3.1.0 on:
$newImage = clone $image;
?>


Replaces colors in the image

  • « Imagick::clone
  • Imagick::coalesceImages »
  • PHP Manual
  • Imagick
  • Replaces colors in the image

Imagick::clutImage

(PECL imagick 2, PECL imagick 3)

Imagick::clutImage — Replaces colors in the image

Descrição

public Imagick::clutImage(Imagick $lookup_table, int $channel = Imagick::CHANNEL_DEFAULT): bool

Replaces colors in the image from a color lookup table. Optional second parameter to replace colors in a specific channel. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

lookup_table

Imagick object containing the color lookup table

channel

The Channeltype constant. When not supplied, default channels are replaced.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Using Imagick::clutImage():

Replace colors in the image from a color lookup table.

<?php
$image = new Imagick('test.jpg');
$clut = new Imagick();
$clut->newImage(1, 1, new ImagickPixel('black'));
$image->clutImage($clut);
$image->writeImage('test_out.jpg');
?>

Veja Também

  • Imagick::adaptiveBlurImage() - Adds adaptive blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Composites a set of images

  • « Imagick::clutImage
  • Imagick::colorFloodfillImage »
  • PHP Manual
  • Imagick
  • Composites a set of images

Imagick::coalesceImages

(PECL imagick 2, PECL imagick 3)

Imagick::coalesceImages — Composites a set of images

Descrição

public Imagick::coalesceImages(): Imagick

Composites a set of images while respecting any page offsets and disposal methods. GIF, MIFF, and MNG animation sequences typically start with an image background and each subsequent image varies in size and offset. Returns a new Imagick object where each image in the sequence is the same size as the first and composited with the next image in the sequence.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a new Imagick object on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Changes the color value of any pixel that matches target

  • « Imagick::coalesceImages
  • Imagick::colorizeImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::colorFloodfillImage

(PECL imagick 2, PECL imagick 3)

Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::colorFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool

Changes the color value of any pixel that matches target and is an immediate neighbor.

Parâmetros

fill

ImagickPixel object containing the fill color

fuzz

The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

bordercolor

ImagickPixel object containing the border color

x

X start position of the floodfill

y

Y start position of the floodfill

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as first and third parameter. Previous versions allow only an ImagickPixel object.


Blends the fill color with the image

  • « Imagick::colorFloodfillImage
  • Imagick::colorMatrixImage »
  • PHP Manual
  • Imagick
  • Blends the fill color with the image

Imagick::colorizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::colorizeImage — Blends the fill color with the image

Descrição

public Imagick::colorizeImage(mixed $colorize, mixed $opacity, bool $legacy = false): bool

Blends the fill color with each pixel in the image.

Parâmetros

colorize

ImagickPixel object or a string containing the colorize color

opacity

ImagickPixel object or an float containing the opacity value. 1.0 is fully opaque and 0.0 is fully transparent.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter and a float representing the opacity value as the second parameter. Previous versions allow only an ImagickPixel objects.

Exemplos

Exemplo #1 Imagick::colorizeImage()

<?php
function colorizeImage($imagePath, $color, $opacity) {
$imagick = new \Imagick(realpath($imagePath));
$opacity = $opacity / 255.0;
$opacityColor = new \ImagickPixel("rgba(0, 0, 0, $opacity)");
$imagick->colorizeImage($color, $opacityColor);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Apply color transformation to an image

  • « Imagick::colorizeImage
  • Imagick::combineImages »
  • PHP Manual
  • Imagick
  • Apply color transformation to an image

Imagick::colorMatrixImage

(PECL imagick 3 >= 3.3.0)

Imagick::colorMatrixImage — Apply color transformation to an image

Descrição

public Imagick::colorMatrixImage(array $color_matrix = Imagick::CHANNEL_DEFAULT): bool

Apply color transformation to an image. The method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255)

Parâmetros

color_matrix

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::colorMatrixImage()

<?php
function colorMatrixImage($imagePath, $colorMatrix) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageOpacity(1);

//A color matrix should look like:
// $colorMatrix = [
// 1.5, 0.0, 0.0, 0.0, 0.0, -0.157,
// 0.0, 1.0, 0.5, 0.0, 0.0, -0.157,
// 0.0, 0.0, 1.5, 0.0, 0.0, -0.157,
// 0.0, 0.0, 0.0, 1.0, 0.0, 0.0,
// 0.0, 0.0, 0.0, 0.0, 1.0, 0.0,
// 0.0, 0.0, 0.0, 0.0, 0.0, 1.0
// ];

$background = new \Imagick();
$background->newPseudoImage($imagick->getImageWidth(), $imagick->getImageHeight(), "pattern:checkerboard");

$background->setImageFormat('png');

$imagick->setImageFormat('png');
$imagick->colorMatrixImage($colorMatrix);

$background->compositeImage($imagick, \Imagick::COMPOSITE_ATOP, 0, 0);

header("Content-Type: image/png");
echo $background->getImageBlob();
}

?>


Combines one or more images into a single image

  • « Imagick::colorMatrixImage
  • Imagick::commentImage »
  • PHP Manual
  • Imagick
  • Combines one or more images into a single image

Imagick::combineImages

(PECL imagick 2, PECL imagick 3)

Imagick::combineImages — Combines one or more images into a single image

Descrição

public Imagick::combineImages(int $channelType): Imagick

Combines one or more images into a single image. The grayscale value of the pixels of each image in the sequence is assigned in order to the specified channels of the combined image. The typical ordering would be image 1 => Red, 2 => Green, 3 => Blue, etc.

Parâmetros

channelType

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Adds a comment to your image

  • « Imagick::combineImages
  • Imagick::compareImageChannels »
  • PHP Manual
  • Imagick
  • Adds a comment to your image

Imagick::commentImage

(PECL imagick 2, PECL imagick 3)

Imagick::commentImage — Adds a comment to your image

Descrição

public Imagick::commentImage(string $comment): bool

Adds a comment to your image.

Parâmetros

comment

The comment to add

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::commentImage():

Commenting an image and retrieving the comment:

<?php

/* Create new Imagick object */
$im = new imagick();

/* Create an empty image */
$im->newImage(100, 100, new ImagickPixel("red"));

/* Add comment to the image */
$im->commentImage("Hello World!");

/* Display the comment */
echo $im->getImageProperty("comment");

?>


Returns the difference in one or more images

  • « Imagick::commentImage
  • Imagick::compareImageLayers »
  • PHP Manual
  • Imagick
  • Returns the difference in one or more images

Imagick::compareImageChannels

(PECL imagick 2, PECL imagick 3)

Imagick::compareImageChannels — Returns the difference in one or more images

Descrição

public Imagick::compareImageChannels(Imagick $image, int $channelType, int $metricType): array

Compares one or more images and returns the difference image.

Parâmetros

image

Imagick object containing the image to compare.

channelType

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

metricType

One of the metric type constants.

Valor Retornado

Array consisting of new_wand and distortion.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the maximum bounding region between images

  • « Imagick::compareImageChannels
  • Imagick::compareImages »
  • PHP Manual
  • Imagick
  • Returns the maximum bounding region between images

Imagick::compareImageLayers

(PECL imagick 2, PECL imagick 3)

Imagick::compareImageLayers — Returns the maximum bounding region between images

Descrição

public Imagick::compareImageLayers(int $method): Imagick

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

method

One of the layer method constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::compareImageLayers()

Comparing image layers

<?php
/* create new imagick object */
$im = new Imagick("test.gif");

/* optimize the image layers */
$result = $im->compareImageLayers(imagick::LAYERMETHOD_COALESCE);

/* work on the $result */
?>

Veja Também

  • Imagick::optimizeImageLayers() - Removes repeated portions of images to optimize
  • Imagick::writeImages() - Writes an image or image sequence
  • Imagick::writeImage() - Writes an image to the specified filename


Compares an image to a reconstructed image

  • « Imagick::compareImageLayers
  • Imagick::compositeImage »
  • PHP Manual
  • Imagick
  • Compares an image to a reconstructed image

Imagick::compareImages

(PECL imagick 2, PECL imagick 3)

Imagick::compareImages — Compares an image to a reconstructed image

Descrição

public Imagick::compareImages(Imagick $compare, int $metric): array

Returns an array containing a reconstructed image and the difference between images.

Parâmetros

compare

An image to compare to.

metric

Provide a valid metric type constant. Refer to this list of metric constants.

Valor Retornado

Returns an array containing a reconstructed image and the difference between images.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::compareImages():

Compare images and display the reconstructed image

<?php

$image1 = new imagick("image1.png");
$image2 = new imagick("image2.png");

$result = $image1->compareImages($image2, Imagick::METRIC_MEANSQUAREERROR);
$result[0]->setImageFormat("png");

header("Content-Type: image/png");
echo $result[0];

?>


Composite one image onto another

  • « Imagick::compareImages
  • Imagick::__construct »
  • PHP Manual
  • Imagick
  • Composite one image onto another

Imagick::compositeImage

(PECL imagick 2, PECL imagick 3)

Imagick::compositeImage — Composite one image onto another

Descrição

public Imagick::compositeImage(
Imagick $composite_object,
int $composite,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Composite one image onto another at the specified offset. Any extra arguments needed for the compose algorithm should passed to setImageArtifact with 'compose:args' as the first parameter and the data as the second parameter.

Parâmetros

composite_object

Imagick object which holds the composite image

compose

Composite operator. See Composite Operator Constants

x

The column offset of the composited image

y

The row offset of the composited image

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Using Imagick::compositeImage():

Composite two images with the 'mathematics' compose method

<?php

// Equivalent to running the command
// convert src1.png src2.png -compose mathematics -define compose:args="1,0,-0.5,0.5" -composite output.png

$src1 = new \Imagick("./src1.png");
$src2 = new \Imagick("./src2.png");

$src1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$src1->setImageArtifact('compose:args', "1,0,-0.5,0.5");
$src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);
$src1->writeImage("./output.png");

?>

Veja Também

  • Imagick::setImageArtifact() - Set image artifact


The Imagick constructor

  • « Imagick::compositeImage
  • Imagick::contrastImage »
  • PHP Manual
  • Imagick
  • The Imagick constructor

Imagick::__construct

(PECL imagick 2, PECL imagick 3)

Imagick::__construct — The Imagick constructor

Descrição

public Imagick::__construct(mixed $files = ?)

Creates an Imagick instance for a specified image or set of images.

Parâmetros

files

The path to an image to load or an array of paths. Paths can include wildcards for file names, or can be URLs.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Change the contrast of the image

  • « Imagick::__construct
  • Imagick::contrastStretchImage »
  • PHP Manual
  • Imagick
  • Change the contrast of the image

Imagick::contrastImage

(PECL imagick 2, PECL imagick 3)

Imagick::contrastImage — Change the contrast of the image

Descrição

public Imagick::contrastImage(bool $sharpen): bool

Enhances the intensity differences between the lighter and darker elements of the image. Set sharpen to a value other than 0 to increase the image contrast otherwise the contrast is reduced.

Parâmetros

sharpen

The sharpen value

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::contrastImage()

<?php
function contrastImage($imagePath, $contrastType) {
$imagick = new \Imagick(realpath($imagePath));
if ($contrastType != 2) {
$imagick->contrastImage($contrastType);
}

header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Enhances the contrast of a color image

  • « Imagick::contrastImage
  • Imagick::convolveImage »
  • PHP Manual
  • Imagick
  • Enhances the contrast of a color image

Imagick::contrastStretchImage

(PECL imagick 2, PECL imagick 3)

Imagick::contrastStretchImage — Enhances the contrast of a color image

Descrição

public Imagick::contrastStretchImage(float $black_point, float $white_point, int $channel = Imagick::CHANNEL_DEFAULT): bool

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

black_point

The black point.

white_point

The white point.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Imagick::CHANNEL_ALL. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.


Applies a custom convolution kernel to the image

  • « Imagick::contrastStretchImage
  • Imagick::count »
  • PHP Manual
  • Imagick
  • Applies a custom convolution kernel to the image

Imagick::convolveImage

(PECL imagick 2, PECL imagick 3)

Imagick::convolveImage — Applies a custom convolution kernel to the image

Descrição

public Imagick::convolveImage(array $kernel, int $channel = Imagick::CHANNEL_DEFAULT): bool

Applies a custom convolution kernel to the image.

Parâmetros

kernel

The convolution kernel

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::convolveImage()

<?php
function convolveImage($imagePath, $bias, $kernelMatrix) {
$imagick = new \Imagick(realpath($imagePath));
//$edgeFindingKernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1,];
$imagick->setImageBias($bias * \Imagick::getQuantum());
$imagick->convolveImage($kernelMatrix);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Get the number of images

  • « Imagick::convolveImage
  • Imagick::cropImage »
  • PHP Manual
  • Imagick
  • Get the number of images

Imagick::count

(PECL imagick 3 >= 3.3.0)

Imagick::count — Get the number of images

Descrição

public Imagick::count(int $mode = 0): int

Returns the number of images.

Parâmetros

mode

An unused argument. Currently there is a non-particularly well defined feature in PHP where calling count() on a countable object might (or might not) require this method to accept a parameter. This parameter is here to be conformant with the interface of countable, even though the param is not used.

Valor Retornado

Returns the number of images.


Extracts a region of the image

  • « Imagick::count
  • Imagick::cropThumbnailImage »
  • PHP Manual
  • Imagick
  • Extracts a region of the image

Imagick::cropImage

(PECL imagick 2, PECL imagick 3)

Imagick::cropImage — Extracts a region of the image

Descrição

public Imagick::cropImage(
int $width,
int $height,
int $x,
int $y
): bool

Extracts a region of the image.

Parâmetros

width

The width of the crop

height

The height of the crop

x

The X coordinate of the cropped region's top left corner

y

The Y coordinate of the cropped region's top left corner

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::cropImage()

<?php
function cropImage($imagePath, $startX, $startY, $width, $height) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->cropImage($width, $height, $startX, $startY);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Creates a crop thumbnail

  • « Imagick::cropImage
  • Imagick::current »
  • PHP Manual
  • Imagick
  • Creates a crop thumbnail

Imagick::cropThumbnailImage

(PECL imagick 2, PECL imagick 3)

Imagick::cropThumbnailImage — Creates a crop thumbnail

Descrição

public Imagick::cropThumbnailImage(int $width, int $height, bool $legacy = false): bool

Creates a fixed size thumbnail by first scaling the image up or down and cropping a specified area from the center.

Parâmetros

width

The width of the thumbnail

height

The Height of the thumbnail

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns a reference to the current Imagick object

  • « Imagick::cropThumbnailImage
  • Imagick::cycleColormapImage »
  • PHP Manual
  • Imagick
  • Returns a reference to the current Imagick object

Imagick::current

(PECL imagick 2, PECL imagick 3)

Imagick::current — Returns a reference to the current Imagick object

Descrição

public Imagick::current(): Imagick

Returns reference to the current imagick object with image pointer at the correct sequence.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns self on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Displaces an image's colormap

  • « Imagick::current
  • Imagick::decipherImage »
  • PHP Manual
  • Imagick
  • Displaces an image's colormap

Imagick::cycleColormapImage

(PECL imagick 2, PECL imagick 3)

Imagick::cycleColormapImage — Displaces an image's colormap

Descrição

public Imagick::cycleColormapImage(int $displace): bool

Displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychedelic effect.

Parâmetros

displace

The amount to displace the colormap.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Deciphers an image

  • « Imagick::cycleColormapImage
  • Imagick::deconstructImages »
  • PHP Manual
  • Imagick
  • Deciphers an image

Imagick::decipherImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::decipherImage — Deciphers an image

Descrição

public Imagick::decipherImage(string $passphrase): bool

Deciphers image that has been enciphered before. The image must be enciphered using Imagick::encipherImage(). Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.9 ou superior.

Parâmetros

passphrase

The passphrase

Valor Retornado

Retorna true em caso de sucesso.

Veja Também

  • Imagick::encipherImage() - Enciphers an image


Returns certain pixel differences between images

  • « Imagick::decipherImage
  • Imagick::deleteImageArtifact »
  • PHP Manual
  • Imagick
  • Returns certain pixel differences between images

Imagick::deconstructImages

(PECL imagick 2, PECL imagick 3)

Imagick::deconstructImages — Returns certain pixel differences between images

Descrição

public Imagick::deconstructImages(): Imagick

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a new Imagick object on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Delete image artifact

  • « Imagick::deconstructImages
  • Imagick::deleteImageProperty »
  • PHP Manual
  • Imagick
  • Delete image artifact

Imagick::deleteImageArtifact

(PECL imagick 3)

Imagick::deleteImageArtifact — Delete image artifact

Descrição

public Imagick::deleteImageArtifact(string $artifact): bool

Deletes an artifact associated with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.5.7 ou superior.

Parâmetros

artifact

The name of the artifact to delete

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Veja Também

  • Imagick::setImageArtifact() - Set image artifact
  • Imagick::getImageArtifact() - Get image artifact


Deletes an image property

  • « Imagick::deleteImageArtifact
  • Imagick::deskewImage »
  • PHP Manual
  • Imagick
  • Deletes an image property

Imagick::deleteImageProperty

(PECL imagick 3 >= 3.3.0)

Imagick::deleteImageProperty — Deletes an image property

Descrição

public Imagick::deleteImageProperty(string $name): bool

Deletes an image property.

Parâmetros

name

The name of the property to delete.

Valor Retornado

Retorna true em caso de sucesso.


Removes skew from the image

  • « Imagick::deleteImageProperty
  • Imagick::despeckleImage »
  • PHP Manual
  • Imagick
  • Removes skew from the image

Imagick::deskewImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.3.0)

Imagick::deskewImage — Removes skew from the image

Descrição

public Imagick::deskewImage(float $threshold): bool

This method can be used to remove skew from for example scanned images where the paper was not properly placed on the scanning surface. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.5 ou superior.

Parâmetros

threshold

Deskew threshold

Valor Retornado

Exemplos

Exemplo #1 Imagick::deskewImage()

<?php
function deskewImage($threshold) {
$imagick = new \Imagick(realpath("images/NYTimes-Page1-11-11-1918.jpg"));
$deskewImagick = clone $imagick;

//This is the only thing required for deskewing.
$deskewImagick->deskewImage($threshold);

//The rest of this example is to make the result obvious - because
//otherwise the result is not obvious.
$trim = 9;

$deskewImagick->cropImage($deskewImagick->getImageWidth() - $trim, $deskewImagick->getImageHeight(), $trim, 0);
$imagick->cropImage($imagick->getImageWidth() - $trim, $imagick->getImageHeight(), $trim, 0);
$deskewImagick->resizeimage($deskewImagick->getImageWidth() / 2, $deskewImagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
$imagick->resizeimage($imagick->getImageWidth() / 2, $imagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
$newCanvas = new \Imagick();
$newCanvas->newimage($imagick->getImageWidth() + $deskewImagick->getImageWidth() + 20, $imagick->getImageHeight(), 'red', 'jpg');
$newCanvas->compositeimage($imagick, \Imagick::COMPOSITE_COPY, 5, 0);
$newCanvas->compositeimage($deskewImagick, \Imagick::COMPOSITE_COPY, $imagick->getImageWidth() + 10, 0);

header("Content-Type: image/jpg");
echo $newCanvas->getImageBlob();
}

?>


Reduces the speckle noise in an image

  • « Imagick::deskewImage
  • Imagick::destroy »
  • PHP Manual
  • Imagick
  • Reduces the speckle noise in an image

Imagick::despeckleImage

(PECL imagick 2, PECL imagick 3)

Imagick::despeckleImage — Reduces the speckle noise in an image

Descrição

public Imagick::despeckleImage(): bool

Reduces the speckle noise in an image while preserving the edges of the original image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::despeckleImage()

<?php
function despeckleImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->despeckleImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Destroys the Imagick object

  • « Imagick::despeckleImage
  • Imagick::displayImage »
  • PHP Manual
  • Imagick
  • Destroys the Imagick object

Imagick::destroy

(PECL imagick 2, PECL imagick 3)

Imagick::destroy — Destroys the Imagick object

Descrição

public Imagick::destroy(): bool

Destroys the Imagick object and frees all resources associated with it. This method is deprecated in favour of Imagick::clear.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Displays an image

  • « Imagick::destroy
  • Imagick::displayImages »
  • PHP Manual
  • Imagick
  • Displays an image

Imagick::displayImage

(PECL imagick 2, PECL imagick 3)

Imagick::displayImage — Displays an image

Descrição

public Imagick::displayImage(string $servername): bool

This method displays an image on a X server.

Parâmetros

servername

The X server name

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Displays an image or image sequence

  • « Imagick::displayImage
  • Imagick::distortImage »
  • PHP Manual
  • Imagick
  • Displays an image or image sequence

Imagick::displayImages

(PECL imagick 2, PECL imagick 3)

Imagick::displayImages — Displays an image or image sequence

Descrição

public Imagick::displayImages(string $servername): bool

Displays an image or image sequence on a X server.

Parâmetros

servername

The X server name

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Distorts an image using various distortion methods

  • « Imagick::displayImages
  • Imagick::drawImage »
  • PHP Manual
  • Imagick
  • Distorts an image using various distortion methods

Imagick::distortImage

(PECL imagick 2 >= 2.0.1, PECL imagick 3)

Imagick::distortImage — Distorts an image using various distortion methods

Descrição

public Imagick::distortImage(int $method, array $arguments, bool $bestfit): bool

Distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usually of the same size as the source image, unless 'bestfit' is set to true.

If 'bestfit' is enabled, and distortion allows it, the destination image is adjusted to ensure the whole source 'image' will just fit within the final destination image, which will be sized and offset accordingly. Also in many cases the virtual offset of the source image will be taken into account in the mapping.

Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

method

The method of image distortion. See distortion constants

arguments

The arguments for this distortion method

bestfit

Attempt to resize destination to fit distorted source

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::distortImage():

Distort an image and display to the browser.

<?php
/* Create new object */
$im = new Imagick();

/* Create new checkerboard pattern */
$im->newPseudoImage(100, 100, "pattern:checkerboard");

/* Set the image format to png */
$im->setImageFormat('png');

/* Fill new visible areas with transparent */
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);

/* Activate matte */
$im->setImageMatte(true);

/* Control points for the distortion */
$controlPoints = array( 10, 10,
10, 5,

10, $im->getImageHeight() - 20,
10, $im->getImageHeight() - 5,

$im->getImageWidth() - 10, 10,
$im->getImageWidth() - 10, 20,

$im->getImageWidth() - 10, $im->getImageHeight() - 10,
$im->getImageWidth() - 10, $im->getImageHeight() - 30);

/* Perform the distortion */
$im->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);

/* Ouput the image */
header("Content-Type: image/png");
echo $im;
?>

O exemplo acima produzirá algo semelhante a:

Output of example : Using Imagick::distortImage()

Veja Também

  • Imagick::blurImage() - Adds blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Renders the ImagickDraw object on the current image

  • « Imagick::distortImage
  • Imagick::edgeImage »
  • PHP Manual
  • Imagick
  • Renders the ImagickDraw object on the current image

Imagick::drawImage

(PECL imagick 2, PECL imagick 3)

Imagick::drawImage — Renders the ImagickDraw object on the current image

Descrição

public Imagick::drawImage(ImagickDraw $draw): bool

Renders the ImagickDraw object on the current image.

Parâmetros

draw

The drawing operations to render on the image.

Valor Retornado

Retorna true em caso de sucesso.


Enhance edges within the image

  • « Imagick::drawImage
  • Imagick::embossImage »
  • PHP Manual
  • Imagick
  • Enhance edges within the image

Imagick::edgeImage

(PECL imagick 2, PECL imagick 3)

Imagick::edgeImage — Enhance edges within the image

Descrição

public Imagick::edgeImage(float $radius): bool

Enhance edges within the image with a convolution filter of the given radius. Use radius 0 and it will be auto-selected.

Parâmetros

radius

The radius of the operation.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::edgeImage()

<?php
function edgeImage($imagePath, $radius) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->edgeImage($radius);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Returns a grayscale image with a three-dimensional effect

  • « Imagick::edgeImage
  • Imagick::encipherImage »
  • PHP Manual
  • Imagick
  • Returns a grayscale image with a three-dimensional effect

Imagick::embossImage

(PECL imagick 2, PECL imagick 3)

Imagick::embossImage — Returns a grayscale image with a three-dimensional effect

Descrição

public Imagick::embossImage(float $radius, float $sigma): bool

Returns a grayscale image with a three-dimensional effect. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and it will choose a suitable radius for you.

Parâmetros

radius

The radius of the effect

sigma

The sigma of the effect

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::embossImage()

<?php
function embossImage($imagePath, $radius, $sigma) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->embossImage($radius, $sigma);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Enciphers an image

  • « Imagick::embossImage
  • Imagick::enhanceImage »
  • PHP Manual
  • Imagick
  • Enciphers an image

Imagick::encipherImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::encipherImage — Enciphers an image

Descrição

public Imagick::encipherImage(string $passphrase): bool

Converts plain pixels to enciphered pixels. The image is not readable until it has been deciphered using Imagick::decipherImage() Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.9 ou superior.

Parâmetros

passphrase

The passphrase

Valor Retornado

Retorna true em caso de sucesso.

Veja Também

  • Imagick::decipherImage() - Deciphers an image


Improves the quality of a noisy image

  • « Imagick::encipherImage
  • Imagick::equalizeImage »
  • PHP Manual
  • Imagick
  • Improves the quality of a noisy image

Imagick::enhanceImage

(PECL imagick 2, PECL imagick 3)

Imagick::enhanceImage — Improves the quality of a noisy image

Descrição

public Imagick::enhanceImage(): bool

Applies a digital filter that improves the quality of a noisy image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::enhanceImage()

<?php
function enhanceImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->enhanceImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Equalizes the image histogram

  • « Imagick::enhanceImage
  • Imagick::evaluateImage »
  • PHP Manual
  • Imagick
  • Equalizes the image histogram

Imagick::equalizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::equalizeImage — Equalizes the image histogram

Descrição

public Imagick::equalizeImage(): bool

Equalizes the image histogram.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::equalizeImage()

<?php
function equalizeImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->equalizeImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Applies an expression to an image

  • « Imagick::equalizeImage
  • Imagick::exportImagePixels »
  • PHP Manual
  • Imagick
  • Applies an expression to an image

Imagick::evaluateImage

(PECL imagick 2, PECL imagick 3)

Imagick::evaluateImage — Applies an expression to an image

Descrição

public Imagick::evaluateImage(int $op, float $constant, int $channel = Imagick::CHANNEL_DEFAULT): bool

Applys an arithmetic, relational, or logical expression to an image. Use these operators to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

Parâmetros

op

The evaluation operator

constant

The value of the operator

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::evaluateImage()

Using evaluateImage to reduce opacity in an image.

<?php
// Create new object with the image
$im = new Imagick('example-alpha.png');

// Reduce the alpha by 50%
$im->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);

// Output the image
header("Content-Type: image/png");
echo $im;
?>


Exports raw image pixels

  • « Imagick::evaluateImage
  • Imagick::extentImage »
  • PHP Manual
  • Imagick
  • Exports raw image pixels

Imagick::exportImagePixels

(PECL imagick 2 >=2.3.0, PECL imagick 3)

Imagick::exportImagePixels — Exports raw image pixels

Descrição

public Imagick::exportImagePixels(
int $x,
int $y,
int $width,
int $height,
string $map,
int $STORAGE
): array

Exports image pixels into an array. The map defines the ordering of the exported pixels. The size of the returned array is width * height * strlen(map). Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.7 ou superior.

Parâmetros

x

X-coordinate of the exported area

y

Y-coordinate of the exported area

width

Width of the exported aread

height

Height of the exported area

map

Ordering of the exported pixels. For example "RGB". Valid characters for the map are R, G, B, A, O, C, Y, M, K, I and P.

STORAGE

Refer to this list of pixel type constants

Valor Retornado

Returns an array containing the pixels values.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::exportImagePixels()

Export image pixels into an array

<?php

/* Create new object */
$im = new Imagick();

/* Create new image */
$im->newPseudoImage(0, 0, "magick:rose");

/* Export the image pixels */
$pixels = $im->exportImagePixels(10, 10, 2, 2, "RGB", Imagick::PIXEL_CHAR);

/* Output */
var_dump($pixels);
?>

O exemplo acima produzirá:

array(12) {
  [0]=>
  int(72)
  [1]=>
  int(64)
  [2]=>
  int(57)
  [3]=>
  int(69)
  [4]=>
  int(59)
  [5]=>
  int(43)
  [6]=>
  int(124)
  [7]=>
  int(120)
  [8]=>
  int(-96)
  [9]=>
  int(91)
  [10]=>
  int(84)
  [11]=>
  int(111)
}


Set image size

  • « Imagick::exportImagePixels
  • Imagick::filter »
  • PHP Manual
  • Imagick
  • Set image size

Imagick::extentImage

(PECL imagick 2, PECL imagick 3)

Imagick::extentImage — Set image size

Descrição

public Imagick::extentImage(
int $width,
int $height,
int $x,
int $y
): bool

Comfortability method for setting image size. The method sets the image size and allows setting x,y coordinates where the new area begins. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.1 ou superior.

Cuidado

Prior to ImageMagick 6.5.7-8 (1623), $x was positive when shifting to the left and negative when shifting to the right, and $y was positive when shifting an image up and negative when shifting an image down. Somewhere betwen ImageMagick 6.3.7 (1591) and ImageMagick 6.5.7-8 (1623), the axes of $x and $y were flipped, so that $x was negative when shifting to the left and positive when shifting to the right, and $y was negative when shifting an image up and positive when shifting an image down. Somewhere between ImageMagick 6.5.7-8 (1623) and ImageMagick 6.6.9-7 (1641), the axes of $x and $y were flipped back to pre-ImageMagick 6.5.7-8 (1623) functionality.

Parâmetros

width

The new width

height

The new height

x

X position for the new size

y

Y position for the new size

Valor Retornado

Retorna true em caso de sucesso.

Veja Também

  • Imagick::resizeImage() - Scales an image
  • Imagick::thumbnailImage() - Changes the size of an image
  • Imagick::cropImage() - Extracts a region of the image


Applies a custom convolution kernel to the image

  • « Imagick::extentImage
  • Imagick::flattenImages »
  • PHP Manual
  • Imagick
  • Applies a custom convolution kernel to the image

Imagick::filter

(PECL imagick 3 >= 3.3.0)

Imagick::filter — Applies a custom convolution kernel to the image

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::filter(ImagickKernel $ImagickKernel, int $channel = Imagick::CHANNEL_UNDEFINED): bool

Applies a custom convolution kernel to the image.

Parâmetros

ImagickKernel

An instance of ImagickKernel that represents either a single kernel or a linked series of kernels.

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::filter()

<?php
function filter($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$matrix = [
[-1, 0, -1],
[0, 5, 0],
[-1, 0, -1],
];

$kernel = \ImagickKernel::fromMatrix($matrix);
$strength = 0.5;
$kernel->scale($strength, \Imagick::NORMALIZE_KERNEL_VALUE);
$kernel->addUnityKernel(1 - $strength);

$imagick->filter($kernel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Merges a sequence of images

  • « Imagick::filter
  • Imagick::flipImage »
  • PHP Manual
  • Imagick
  • Merges a sequence of images

Imagick::flattenImages

(PECL imagick 2, PECL imagick 3)

Imagick::flattenImages — Merges a sequence of images

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::flattenImages(): Imagick

Merges a sequence of images. This is useful for combining Photoshop layers into a single image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Creates a vertical mirror image

  • « Imagick::flattenImages
  • Imagick::floodFillPaintImage »
  • PHP Manual
  • Imagick
  • Creates a vertical mirror image

Imagick::flipImage

(PECL imagick 2, PECL imagick 3)

Imagick::flipImage — Creates a vertical mirror image

Descrição

public Imagick::flipImage(): bool

Creates a vertical mirror image by reflecting the pixels around the central x-axis.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::flipImage()

<?php
function flipImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->flipImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>

Veja Também

  • Imagick::flopimage() - Creates a horizontal mirror image


Changes the color value of any pixel that matches target

  • « Imagick::flipImage
  • Imagick::flopImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::floodFillPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target

Descrição

public Imagick::floodFillPaintImage(
mixed $fill,
float $fuzz,
mixed $target,
int $x,
int $y,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Changes the color value of any pixel that matches target and is an immediate neighbor. This method is a replacement for deprecated Imagick::paintFloodFillImage(). Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.8 ou superior.

Parâmetros

fill

ImagickPixel object or a string containing the fill color

fuzz

A quantidade de fuzz. Por exemplo, definir fuzz como 10 e a cor vermelha nas intensidades de 100 e 102, respectivamente, agora são interpretadas como a mesma cor.

target

ImagickPixel object or a string containing the target color to paint

x

X start position of the floodfill

y

Y start position of the floodfill

invert

If true paints any pixel that does not match the target color.

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::floodfillPaintImage() example

<?php

/* Create new imagick object */
$im = new Imagick();

/* create red, green and blue images */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Append the images into one */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Save the intermediate image for comparison */
$combined->writeImage("floodfillpaint_intermediate.png");

/* The target pixel to paint */
$x = 1;
$y = 1;

/* Get the color we are painting */
$target = $combined->getImagePixelColor($x, $y);

/* Paints pixel in position 1,1 black and all neighboring
pixels that match the target color */
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);

/* Save the result */
$combined->writeImage("floodfillpaint_result.png");
?>

O exemplo acima produzirá algo semelhante a:

Output of example : Imagick::floodfillPaintImage()
Output of example : Imagick::floodfillPaintImage()


Creates a horizontal mirror image

  • « Imagick::floodFillPaintImage
  • Imagick::forwardFourierTransformImage »
  • PHP Manual
  • Imagick
  • Creates a horizontal mirror image

Imagick::flopImage

(PECL imagick 2, PECL imagick 3)

Imagick::flopImage — Creates a horizontal mirror image

Descrição

public Imagick::flopImage(): bool

Creates a horizontal mirror image by reflecting the pixels around the central y-axis.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::flopImage()

<?php
function flopImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->flopImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>

Veja Também

  • Imagick::flipimage() - Creates a vertical mirror image


Implements the discrete Fourier transform (DFT)

  • « Imagick::flopImage
  • Imagick::frameImage »
  • PHP Manual
  • Imagick
  • Implements the discrete Fourier transform (DFT)

Imagick::forwardFourierTransformImage

(PECL imagick 3 >= 3.3.0)

Imagick::forwardFourierTransformImage — Implements the discrete Fourier transform (DFT)

Descrição

public Imagick::forwardFourierTransformimage(bool $magnitude): bool

Implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Parâmetros

magnitude

If true, return as magnitude / phase pair otherwise a real / imaginary image pair.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::forwardFourierTransformImage()

<?php
//Utility function for forwardTransformImage
function createMask() {
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(0);
$draw->setStrokeColor('rgb(255, 255, 255)');
$draw->setFillColor('rgb(255, 255, 255)');

//Draw a circle on the y-axis, with it's centre
//at x, y that touches the origin
$draw->circle(250, 250, 220, 250);

$imagick = new \Imagick();
$imagick->newImage(512, 512, "black");
$imagick->drawImage($draw);
$imagick->gaussianBlurImage(20, 20);
$imagick->autoLevelImage();

return $imagick;
}

function forwardFourierTransformImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->resizeimage(512, 512, \Imagick::FILTER_LANCZOS, 1);

$mask = createMask();
$imagick->forwardFourierTransformImage(true);

@$imagick->setimageindex(0);
$magnitude = $imagick->getimage();

@$imagick->setimageindex(1);
$imagickPhase = $imagick->getimage();

if (true) {
$imagickPhase->compositeImage($mask, \Imagick::COMPOSITE_MULTIPLY, 0, 0);
}

if (false) {
$output = clone $imagickPhase;
$output->setimageformat('png');
header("Content-Type: image/png");
echo $output->getImageBlob();
}

$magnitude->inverseFourierTransformImage($imagickPhase, true);

$magnitude->setimageformat('png');
header("Content-Type: image/png");
echo $magnitude->getImageBlob();
}

?>


Adds a simulated three-dimensional border

  • « Imagick::forwardFourierTransformImage
  • Imagick::functionImage »
  • PHP Manual
  • Imagick
  • Adds a simulated three-dimensional border

Imagick::frameImage

(PECL imagick 2, PECL imagick 3)

Imagick::frameImage — Adds a simulated three-dimensional border

Descrição

public Imagick::frameImage(
mixed $matte_color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): bool

Adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

Parâmetros

matte_color

ImagickPixel object or a string representing the matte color

width

The width of the border

height

The height of the border

inner_bevel

The inner bevel width

outer_bevel

The outer bevel width

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Exemplos

Exemplo #1 Imagick::frameImage()

<?php
function frameImage($imagePath, $color, $width, $height, $innerBevel, $outerBevel) {
$imagick = new \Imagick(realpath($imagePath));

$width = $width + $innerBevel + $outerBevel;
$height = $height + $innerBevel + $outerBevel;

$imagick->frameimage(
$color,
$width,
$height,
$innerBevel,
$outerBevel
);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Applies a function on the image

  • « Imagick::frameImage
  • Imagick::fxImage »
  • PHP Manual
  • Imagick
  • Applies a function on the image

Imagick::functionImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::functionImage — Applies a function on the image

Descrição

public Imagick::functionImage(int $function, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool

Applies an arithmetic, relational, or logical expression to a pseudo image.

See also » ImageMagick v6 Examples - Image Transformations — Function, Multi-Argument Evaluate

Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.9 ou superior.

Parâmetros

function

Refer to this list of function constants

arguments

Array of arguments to pass to this function.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Create a sinusoidal gradient

<?php
$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(3, -90);
$imagick->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);

header("Content-Type: image/png");
$imagick->setImageFormat("png");
echo $imagick->getImageBlob();
?>

O exemplo acima produzirá algo semelhante a:

Output of create a sinusoidal gradient

Exemplo #2 Create a gradient from the polynomial (4x^2 - 4x + 1)

<?php
$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(4, -4, 1);
$imagick->functionImage(Imagick::FUNCTION_POLYNOMIAL, $arguments);

header("Content-Type: image/png");
$imagick->setimageformat("png");
echo $imagick->getImageBlob();
?>

O exemplo acima produzirá algo semelhante a:

Output of create a polynomial gradient

Exemplo #3 Create a complex gradient from the polynomial (4x^2 - 4x^2 + 1) modulated by a sinusoidal gradient

<?php
$imagick1 = new Imagick();
$imagick1->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(9, -90);
$imagick1->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);

$imagick2 = new Imagick();
$imagick2->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(0.5, 0);
$imagick2->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);
$imagick1->compositeimage($imagick2, Imagick::COMPOSITE_MULTIPLY, 0, 0);

header("Content-Type: image/png");
$imagick1->setImageFormat("png");
echo $imagick1->getImageBlob();
?>

O exemplo acima produzirá algo semelhante a:

Output of create complex gradient


Evaluate expression for each pixel in the image

  • « Imagick::functionImage
  • Imagick::gammaImage »
  • PHP Manual
  • Imagick
  • Evaluate expression for each pixel in the image

Imagick::fxImage

(PECL imagick 2, PECL imagick 3)

Imagick::fxImage — Evaluate expression for each pixel in the image

Descrição

public Imagick::fxImage(string $expression, int $channel = Imagick::CHANNEL_DEFAULT): Imagick

Evaluate expression for each pixel in the image. Consult » The Fx Special Effects Image Operator for more information.

Parâmetros

expression

The expression.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::fxImage()

<?php
function fxImage() {
$imagick = new \Imagick();
$imagick->newPseudoImage(200, 200, "xc:white");

$fx = 'xx=i-w/2; yy=j-h/2; rr=hypot(xx,yy); (.5-rr/140)*1.2+.5';
$fxImage = $imagick->fxImage($fx);

header("Content-Type: image/png");
$fxImage->setimageformat('png');
echo $fxImage->getImageBlob();
}

?>


Gamma-corrects an image

  • « Imagick::fxImage
  • Imagick::gaussianBlurImage »
  • PHP Manual
  • Imagick
  • Gamma-corrects an image

Imagick::gammaImage

(PECL imagick 2, PECL imagick 3)

Imagick::gammaImage — Gamma-corrects an image

Descrição

public Imagick::gammaImage(float $gamma, int $channel = Imagick::CHANNEL_DEFAULT): bool

Gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

Parâmetros

gamma

The amount of gamma-correction.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::gammaImage()

<?php
function gammaImage($imagePath, $gamma, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->gammaImage($gamma, $channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Blurs an image

  • « Imagick::gammaImage
  • Imagick::getColorspace »
  • PHP Manual
  • Imagick
  • Blurs an image

Imagick::gaussianBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::gaussianBlurImage — Blurs an image

Descrição

public Imagick::gaussianBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool

Blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and selects a suitable radius for you.

Parâmetros

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::gaussianBlurImage()

<?php
function gaussianBlurImage($imagePath, $radius, $sigma, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->gaussianBlurImage($radius, $sigma, $channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Gets the colorspace

  • « Imagick::gaussianBlurImage
  • Imagick::getCompression »
  • PHP Manual
  • Imagick
  • Gets the colorspace

Imagick::getColorspace

(PECL imagick 3)

Imagick::getColorspace — Gets the colorspace

Descrição

public Imagick::getColorspace(): int

Gets the global colorspace value. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.5.7 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer which can be compared against COLORSPACE constants.


Gets the object compression type

  • « Imagick::getColorspace
  • Imagick::getCompressionQuality »
  • PHP Manual
  • Imagick
  • Gets the object compression type

Imagick::getCompression

(PECL imagick 2, PECL imagick 3)

Imagick::getCompression — Gets the object compression type

Descrição

public Imagick::getCompression(): int

Gets the object compression type.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the compression constant


Gets the object compression quality

  • « Imagick::getCompression
  • Imagick::getCopyright »
  • PHP Manual
  • Imagick
  • Gets the object compression quality

Imagick::getCompressionQuality

(PECL imagick 2, PECL imagick 3)

Imagick::getCompressionQuality — Gets the object compression quality

Descrição

public Imagick::getCompressionQuality(): int

Gets the object compression quality.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns integer describing the compression quality


Returns the ImageMagick API copyright as a string

  • « Imagick::getCompressionQuality
  • Imagick::getFilename »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick API copyright as a string

Imagick::getCopyright

(PECL imagick 2, PECL imagick 3)

Imagick::getCopyright — Returns the ImageMagick API copyright as a string

Descrição

public static Imagick::getCopyright(): string

Returns the ImageMagick API copyright as a string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string containing the copyright notice of Imagemagick and Magickwand C API.


The filename associated with an image sequence

  • « Imagick::getCopyright
  • Imagick::getFont »
  • PHP Manual
  • Imagick
  • The filename associated with an image sequence

Imagick::getFilename

(PECL imagick 2, PECL imagick 3)

Imagick::getFilename — The filename associated with an image sequence

Descrição

public Imagick::getFilename(): string

Returns the filename associated with an image sequence.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets font

  • « Imagick::getFilename
  • Imagick::getFormat »
  • PHP Manual
  • Imagick
  • Gets font

Imagick::getFont

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::getFont — Gets font

Descrição

public Imagick::getFont(): string

Returns the objects font property. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.7 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string containing the font name or false if not font is set.

Veja Também

  • Imagick::setFont() - Sets font
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text
  • ImagickDraw::getFont() - Returns the font


Returns the format of the Imagick object

  • « Imagick::getFont
  • Imagick::getGravity »
  • PHP Manual
  • Imagick
  • Returns the format of the Imagick object

Imagick::getFormat

(PECL imagick 2, PECL imagick 3)

Imagick::getFormat — Returns the format of the Imagick object

Descrição

public Imagick::getFormat(): string

Returns the format of the Imagick object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the format of the image.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the gravity

  • « Imagick::getFormat
  • Imagick::getHomeURL »
  • PHP Manual
  • Imagick
  • Gets the gravity

Imagick::getGravity

(PECL imagick 2, PECL imagick 3)

Imagick::getGravity — Gets the gravity

Descrição

public Imagick::getGravity(): int

Gets the global gravity property for the Imagick object. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.0 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the gravity property. Refer to the list of gravity constants.


Returns the ImageMagick home URL

  • « Imagick::getGravity
  • Imagick::getImage »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick home URL

Imagick::getHomeURL

(PECL imagick 2, PECL imagick 3)

Imagick::getHomeURL — Returns the ImageMagick home URL

Descrição

public static Imagick::getHomeURL(): string

Returns the ImageMagick home URL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a link to the imagemagick homepage.


Returns a new Imagick object

  • « Imagick::getHomeURL
  • Imagick::getImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Returns a new Imagick object

Imagick::getImage

(PECL imagick 2, PECL imagick 3)

Imagick::getImage — Returns a new Imagick object

Descrição

public Imagick::getImage(): Imagick

Returns a new Imagick object with the current image sequence.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a new Imagick object with the current image sequence.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Checks if the image has an alpha channel

  • « Imagick::getImage
  • Imagick::getImageArtifact »
  • PHP Manual
  • Imagick
  • Checks if the image has an alpha channel

Imagick::getImageAlphaChannel

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageAlphaChannel — Checks if the image has an alpha channel

Descrição

public Imagick::getImageAlphaChannel(): bool

Returns whether the image has an alpha channel.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the image has an alpha channel value and false if not, i.e. the image is RGB rather than RGBA or CMYK rather than CMYKA.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
imagick 3.6.0 | Returns a bool now; previously, an int was returned.


Get image artifact

  • « Imagick::getImageAlphaChannel
  • Imagick::getImageAttribute »
  • PHP Manual
  • Imagick
  • Get image artifact

Imagick::getImageArtifact

(PECL imagick 3)

Imagick::getImageArtifact — Get image artifact

Descrição

public Imagick::getImageArtifact(string $artifact): string

Gets an artifact associated with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.5.7 ou superior.

Parâmetros

artifact

The name of the artifact

Valor Retornado

Returns the artifact value on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Veja Também

  • Imagick::setImageArtifact() - Set image artifact
  • Imagick::deleteImageArtifact() - Delete image artifact


Returns a named attribute

  • « Imagick::getImageArtifact
  • Imagick::getImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Returns a named attribute

Imagick::getImageAttribute

(PECL imagick 2, PECL imagick 3)

Imagick::getImageAttribute — Returns a named attribute

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::getImageAttribute(string $key): string

Returns a named attribute.

Parâmetros

key

The key of the attribute to get.

Valor Retornado


Returns the image background color

  • « Imagick::getImageAttribute
  • Imagick::getImageBlob »
  • PHP Manual
  • Imagick
  • Returns the image background color

Imagick::getImageBackgroundColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBackgroundColor — Returns the image background color

Descrição

public Imagick::getImageBackgroundColor(): ImagickPixel

Returns the image background color.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an ImagickPixel set to the background color of the image.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the image sequence as a blob

  • « Imagick::getImageBackgroundColor
  • Imagick::getImageBluePrimary »
  • PHP Manual
  • Imagick
  • Returns the image sequence as a blob

Imagick::getImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBlob — Returns the image sequence as a blob

Descrição

public Imagick::getImageBlob(): string

Implements direct to memory image formats. It returns the image sequence as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string containing the image.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the chromaticy blue primary point

  • « Imagick::getImageBlob
  • Imagick::getImageBorderColor »
  • PHP Manual
  • Imagick
  • Returns the chromaticy blue primary point

Imagick::getImageBluePrimary

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBluePrimary — Returns the chromaticy blue primary point

Descrição

public Imagick::getImageBluePrimary(): array

Returns the chromaticity blue primary point for the image.

Parâmetros

x

The chromaticity blue primary x-point.

y

The chromaticity blue primary y-point.

Valor Retornado

Array consisting of "x" and "y" coordinates of point.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the image border color

  • « Imagick::getImageBluePrimary
  • Imagick::getImageChannelDepth »
  • PHP Manual
  • Imagick
  • Returns the image border color

Imagick::getImageBorderColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBorderColor — Returns the image border color

Descrição

public Imagick::getImageBorderColor(): ImagickPixel

Returns the image border color.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the depth for a particular image channel

  • « Imagick::getImageBorderColor
  • Imagick::getImageChannelDistortion »
  • PHP Manual
  • Imagick
  • Gets the depth for a particular image channel

Imagick::getImageChannelDepth

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelDepth — Gets the depth for a particular image channel

Descrição

public Imagick::getImageChannelDepth(int $channel): int

Gets the depth for a particular image channel.

Parâmetros

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.


Compares image channels of an image to a reconstructed image

  • « Imagick::getImageChannelDepth
  • Imagick::getImageChannelDistortions »
  • PHP Manual
  • Imagick
  • Compares image channels of an image to a reconstructed image

Imagick::getImageChannelDistortion

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image

Descrição

public Imagick::getImageChannelDistortion(Imagick $reference, int $channel, int $metric): float

Compares one or more image channels of an image to a reconstructed image and returns the specified distortion metric.

Parâmetros

reference

Imagick object to compare to.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

metric

One of the metric type constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets channel distortions

  • « Imagick::getImageChannelDistortion
  • Imagick::getImageChannelExtrema »
  • PHP Manual
  • Imagick
  • Gets channel distortions

Imagick::getImageChannelDistortions

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageChannelDistortions — Gets channel distortions

Descrição

public Imagick::getImageChannelDistortions(Imagick $reference, int $metric, int $channel = Imagick::CHANNEL_DEFAULT): float

Compares one or more image channels of an image to a reconstructed image and returns the specified distortion metrics Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 ou superior.

Parâmetros

reference

Imagick object containing the reference image

metric

Refer to this list of metric type constants.

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Returns a float describing the channel distortion.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the extrema for one or more image channels

  • « Imagick::getImageChannelDistortions
  • Imagick::getImageChannelKurtosis »
  • PHP Manual
  • Imagick
  • Gets the extrema for one or more image channels

Imagick::getImageChannelExtrema

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::getImageChannelExtrema(int $channel): array

Gets the extrema for one or more image channels. Return value is an associative array with the keys "minima" and "maxima".

Parâmetros

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


The getImageChannelKurtosis purpose

  • « Imagick::getImageChannelExtrema
  • Imagick::getImageChannelMean »
  • PHP Manual
  • Imagick
  • The getImageChannelKurtosis purpose

Imagick::getImageChannelKurtosis

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose

Descrição

public Imagick::getImageChannelKurtosis(int $channel = Imagick::CHANNEL_DEFAULT): array

Get the kurtosis and skewness of a specific channel. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.9 ou superior.

Parâmetros

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Returns an array with kurtosis and skewness members.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the mean and standard deviation

  • « Imagick::getImageChannelKurtosis
  • Imagick::getImageChannelRange »
  • PHP Manual
  • Imagick
  • Gets the mean and standard deviation

Imagick::getImageChannelMean

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelMean — Gets the mean and standard deviation

Descrição

public Imagick::getImageChannelMean(int $channel): array

Gets the mean and standard deviation of one or more image channels.

Parâmetros

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Returns an array with "mean" and "standardDeviation" members.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets channel range

  • « Imagick::getImageChannelMean
  • Imagick::getImageChannelStatistics »
  • PHP Manual
  • Imagick
  • Gets channel range

Imagick::getImageChannelRange

(PECL imagick 2 >= 2.2.1, PECL imagick 3)

Imagick::getImageChannelRange — Gets channel range

Descrição

public Imagick::getImageChannelRange(int $channel): array

Gets the range for one or more image channels. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.0 ou superior.

Parâmetros

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Returns an array containing minima and maxima values of the channel(s).

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns statistics for each channel in the image

  • « Imagick::getImageChannelRange
  • Imagick::getImageClipMask »
  • PHP Manual
  • Imagick
  • Returns statistics for each channel in the image

Imagick::getImageChannelStatistics

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelStatistics — Returns statistics for each channel in the image

Descrição

public Imagick::getImageChannelStatistics(): array

Returns statistics for each channel in the image. The statistics include the channel depth, its minima and maxima, the mean, and the standard deviation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Gets image clip mask

  • « Imagick::getImageChannelStatistics
  • Imagick::getImageColormapColor »
  • PHP Manual
  • Imagick
  • Gets image clip mask

Imagick::getImageClipMask

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageClipMask — Gets image clip mask

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::getImageClipMask(): Imagick

Returns the image clip mask. The clip mask is an Imagick object containing the clip mask. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an Imagick object containing the clip mask.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the color of the specified colormap index

  • « Imagick::getImageClipMask
  • Imagick::getImageColors »
  • PHP Manual
  • Imagick
  • Returns the color of the specified colormap index

Imagick::getImageColormapColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageColormapColor — Returns the color of the specified colormap index

Descrição

public Imagick::getImageColormapColor(int $index): ImagickPixel

Returns the color of the specified colormap index.

Parâmetros

index

The offset into the image colormap.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the number of unique colors in the image

  • « Imagick::getImageColormapColor
  • Imagick::getImageColorspace »
  • PHP Manual
  • Imagick
  • Gets the number of unique colors in the image

Imagick::getImageColors

(PECL imagick 2, PECL imagick 3)

Imagick::getImageColors — Gets the number of unique colors in the image

Descrição

public Imagick::getImageColors(): int

Gets the number of unique colors in the image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an int, the number of unique colors in the image.


Gets the image colorspace

  • « Imagick::getImageColors
  • Imagick::getImageCompose »
  • PHP Manual
  • Imagick
  • Gets the image colorspace

Imagick::getImageColorspace

(PECL imagick 2, PECL imagick 3)

Imagick::getImageColorspace — Gets the image colorspace

Descrição

public Imagick::getImageColorspace(): int

Gets the image colorspace.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer which can be compared against COLORSPACE constants.


Returns the composite operator associated with the image

  • « Imagick::getImageColorspace
  • Imagick::getImageCompression »
  • PHP Manual
  • Imagick
  • Returns the composite operator associated with the image

Imagick::getImageCompose

(PECL imagick 2, PECL imagick 3)

Imagick::getImageCompose — Returns the composite operator associated with the image

Descrição

public Imagick::getImageCompose(): int

Returns the composite operator associated with the image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Gets the current image's compression type

  • « Imagick::getImageCompose
  • Imagick::getImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Gets the current image's compression type

Imagick::getImageCompression

(PECL imagick 3 >= 3.3.0)

Imagick::getImageCompression — Gets the current image's compression type

Descrição

public Imagick::getImageCompression(): int

Gets the current image's compression type.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the compression constant


Gets the current image's compression quality

  • « Imagick::getImageCompression
  • Imagick::getImageDelay »
  • PHP Manual
  • Imagick
  • Gets the current image's compression quality

Imagick::getImageCompressionQuality

(PECL imagick 2 >= 2.2.2, PECL imagick 3)

Imagick::getImageCompressionQuality — Gets the current image's compression quality

Descrição

public Imagick::getImageCompressionQuality(): int

Gets the current image's compression quality

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns integer describing the images compression quality


Gets the image delay

  • « Imagick::getImageCompressionQuality
  • Imagick::getImageDepth »
  • PHP Manual
  • Imagick
  • Gets the image delay

Imagick::getImageDelay

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDelay — Gets the image delay

Descrição

public Imagick::getImageDelay(): int

Gets the image delay.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image delay.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the image depth

  • « Imagick::getImageDelay
  • Imagick::getImageDispose »
  • PHP Manual
  • Imagick
  • Gets the image depth

Imagick::getImageDepth

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDepth — Gets the image depth

Descrição

public Imagick::getImageDepth(): int

Gets the image depth.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The image depth.


Gets the image disposal method

  • « Imagick::getImageDepth
  • Imagick::getImageDistortion »
  • PHP Manual
  • Imagick
  • Gets the image disposal method

Imagick::getImageDispose

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDispose — Gets the image disposal method

Descrição

public Imagick::getImageDispose(): int

Gets the image disposal method.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the dispose method on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Compares an image to a reconstructed image

  • « Imagick::getImageDispose
  • Imagick::getImageExtrema »
  • PHP Manual
  • Imagick
  • Compares an image to a reconstructed image

Imagick::getImageDistortion

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDistortion — Compares an image to a reconstructed image

Descrição

public Imagick::getImageDistortion(MagickWand $reference, int $metric): float

Compares an image to a reconstructed image and returns the specified distortion metric.

Parâmetros

reference

Imagick object to compare to.

metric

One of the metric type constants.

Valor Retornado

Returns the distortion metric used on the image (or the best guess thereof).

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the extrema for the image

  • « Imagick::getImageDistortion
  • Imagick::getImageFilename »
  • PHP Manual
  • Imagick
  • Gets the extrema for the image

Imagick::getImageExtrema

(PECL imagick 2, PECL imagick 3)

Imagick::getImageExtrema — Gets the extrema for the image

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::getImageExtrema(): array

Gets the extrema for the image. Returns an associative array with the keys "min" and "max".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an associative array with the keys "min" and "max".

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the filename of a particular image in a sequence

  • « Imagick::getImageExtrema
  • Imagick::getImageFormat »
  • PHP Manual
  • Imagick
  • Returns the filename of a particular image in a sequence

Imagick::getImageFilename

(PECL imagick 2, PECL imagick 3)

Imagick::getImageFilename — Returns the filename of a particular image in a sequence

Descrição

public Imagick::getImageFilename(): string

Returns the filename of a particular image in a sequence.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string with the filename of the image.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the format of a particular image in a sequence

  • « Imagick::getImageFilename
  • Imagick::getImageGamma »
  • PHP Manual
  • Imagick
  • Returns the format of a particular image in a sequence

Imagick::getImageFormat

(PECL imagick 2, PECL imagick 3)

Imagick::getImageFormat — Returns the format of a particular image in a sequence

Descrição

public Imagick::getImageFormat(): string

Returns the format of a particular image in a sequence.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string containing the image format on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the image gamma

  • « Imagick::getImageFormat
  • Imagick::getImageGeometry »
  • PHP Manual
  • Imagick
  • Gets the image gamma

Imagick::getImageGamma

(PECL imagick 2, PECL imagick 3)

Imagick::getImageGamma — Gets the image gamma

Descrição

public Imagick::getImageGamma(): float

Gets the image gamma.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image gamma on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the width and height as an associative array

  • « Imagick::getImageGamma
  • Imagick::getImageGravity »
  • PHP Manual
  • Imagick
  • Gets the width and height as an associative array

Imagick::getImageGeometry

(PECL imagick 2, PECL imagick 3)

Imagick::getImageGeometry — Gets the width and height as an associative array

Descrição

public Imagick::getImageGeometry(): array

Returns the width and height as an associative array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with the width/height of the image.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::getImageGeometry()

<?php
$imagick = new Imagick();
$imagick->newImage(100, 200, "black");
print_r($imagick->getImageGeometry());
?>

O exemplo acima produzirá:

Array
(
    [width] => 100
    [height] => 200
)


Gets the image gravity

  • « Imagick::getImageGeometry
  • Imagick::getImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Gets the image gravity

Imagick::getImageGravity

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageGravity — Gets the image gravity

Descrição

public Imagick::getImageGravity(): int

Gets the current gravity value of the image. Unlike Imagick::getGravity(), this method returns the gravity defined for the current image sequence. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the images gravity property. Refer to the list of gravity constants.


Returns the chromaticy green primary point

  • « Imagick::getImageGravity
  • Imagick::getImageHeight »
  • PHP Manual
  • Imagick
  • Returns the chromaticy green primary point

Imagick::getImageGreenPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::getImageGreenPrimary — Returns the chromaticy green primary point

Descrição

public Imagick::getImageGreenPrimary(): array

Returns the chromaticity green primary point. Returns an array with the keys "x" and "y".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with the keys "x" and "y" on success, throws an ImagickException on failure.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the image height

  • « Imagick::getImageGreenPrimary
  • Imagick::getImageHistogram »
  • PHP Manual
  • Imagick
  • Returns the image height

Imagick::getImageHeight

(PECL imagick 2, PECL imagick 3)

Imagick::getImageHeight — Returns the image height

Descrição

public Imagick::getImageHeight(): int

Returns the image height.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image height in pixels.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the image histogram

  • « Imagick::getImageHeight
  • Imagick::getImageIndex »
  • PHP Manual
  • Imagick
  • Gets the image histogram

Imagick::getImageHistogram

(PECL imagick 2, PECL imagick 3)

Imagick::getImageHistogram — Gets the image histogram

Descrição

public Imagick::getImageHistogram(): array

Returns the image histogram as an array of ImagickPixel objects.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image histogram as an array of ImagickPixel objects.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Generates Imagick::getImageHistogram()

<?php
function getColorStatistics($histogramElements, $colorChannel) {
$colorStatistics = [];

foreach ($histogramElements as $histogramElement) {
$color = $histogramElement->getColorValue($colorChannel);
$color = intval($color * 255);
$count = $histogramElement->getColorCount();

if (array_key_exists($color, $colorStatistics)) {
$colorStatistics[$color] += $count;
}
else {
$colorStatistics[$color] = $count;
}
}

ksort($colorStatistics);

return $colorStatistics;
}

function getImageHistogram($imagePath) {

$backgroundColor = 'black';

$draw = new \ImagickDraw();
$draw->setStrokeWidth(0); //make the lines be as thin as possible

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

$histogramWidth = 256;
$histogramHeight = 100; // the height for each RGB segment

$imagick = new \Imagick(realpath($imagePath));
//Resize the image to be small, otherwise PHP tends to run out of memory
//This might lead to bad results for images that are pathologically 'pixelly'
$imagick->adaptiveResizeImage(200, 200, true);
$histogramElements = $imagick->getImageHistogram();

$histogram = new \Imagick();
$histogram->newpseudoimage($histogramWidth, $histogramHeight * 3, 'xc:black');
$histogram->setImageFormat('png');

$getMax = function ($carry, $item) {
if ($item > $carry) {
return $item;
}
return $carry;
};

$colorValues = [
'red' => getColorStatistics($histogramElements, \Imagick::COLOR_RED),
'lime' => getColorStatistics($histogramElements, \Imagick::COLOR_GREEN),
'blue' => getColorStatistics($histogramElements, \Imagick::COLOR_BLUE),
];

$max = array_reduce($colorValues['red'] , $getMax, 0);
$max = array_reduce($colorValues['lime'] , $getMax, $max);
$max = array_reduce($colorValues['blue'] , $getMax, $max);

$scale = $histogramHeight / $max;

$count = 0;
foreach ($colorValues as $color => $values) {
$draw->setstrokecolor($color);

$offset = ($count + 1) * $histogramHeight;

foreach ($values as $index => $value) {
$draw->line($index, $offset, $index, $offset - ($value * $scale));
}
$count++;
}

$histogram->drawImage($draw);

header( "Content-Type: image/png" );
echo $histogram;
}

?>


Gets the index of the current active image

  • « Imagick::getImageHistogram
  • Imagick::getImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Gets the index of the current active image

Imagick::getImageIndex

(PECL imagick 2, PECL imagick 3)

Imagick::getImageIndex — Gets the index of the current active image

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::getImageIndex(): int

Returns the index of the current active image within the Imagick object. This method has been deprecated. See Imagick::getIteratorIndex().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer containing the index of the image in the stack.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the image interlace scheme

  • « Imagick::getImageIndex
  • Imagick::getImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Gets the image interlace scheme

Imagick::getImageInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::getImageInterlaceScheme — Gets the image interlace scheme

Descrição

public Imagick::getImageInterlaceScheme(): int

Gets the image interlace scheme.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the interlace scheme as an integer on success. Lança uma exceção ImagickException em caso de erro.


Returns the interpolation method

  • « Imagick::getImageInterlaceScheme
  • Imagick::getImageIterations »
  • PHP Manual
  • Imagick
  • Returns the interpolation method

Imagick::getImageInterpolateMethod

(PECL imagick 2, PECL imagick 3)

Imagick::getImageInterpolateMethod — Returns the interpolation method

Descrição

public Imagick::getImageInterpolateMethod(): int

Returns the interpolation method for the specified image. The method is one of the Imagick::INTERPOLATE_* constants.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the interpolate method on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the image iterations

  • « Imagick::getImageInterpolateMethod
  • Imagick::getImageLength »
  • PHP Manual
  • Imagick
  • Gets the image iterations

Imagick::getImageIterations

(PECL imagick 2, PECL imagick 3)

Imagick::getImageIterations — Gets the image iterations

Descrição

public Imagick::getImageIterations(): int

Gets the image iterations.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image iterations as an integer.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the image length in bytes

  • « Imagick::getImageIterations
  • Imagick::getImageMatte »
  • PHP Manual
  • Imagick
  • Returns the image length in bytes

Imagick::getImageLength

(PECL imagick 2, PECL imagick 3)

Imagick::getImageLength — Returns the image length in bytes

Descrição

public Imagick::getImageLength(): int

Returns the image length in bytes

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an int containing the current image size.

Exemplos

Exemplo #1 Using Imagick::getImageLength():

Getting image length in bytes

<?php
$image = new Imagick('test.jpg');
echo $image->getImageLength() . ' bytes';
?>


Return if the image has a matte channel

  • « Imagick::getImageLength
  • Imagick::getImageMatteColor »
  • PHP Manual
  • Imagick
  • Return if the image has a matte channel

Imagick::getImageMatte

(PECL imagick 2, PECL imagick 3)

Imagick::getImageMatte — Return if the image has a matte channel

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::getImageMatte(): bool

Returns true if the image has a matte channel otherwise false. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Returns the image matte color

  • « Imagick::getImageMatte
  • Imagick::getImageMimeType »
  • PHP Manual
  • Imagick
  • Returns the image matte color

Imagick::getImageMatteColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageMatteColor — Returns the image matte color

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::getImageMatteColor(): ImagickPixel

Returns the image matte color.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns ImagickPixel object on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the image mime-type

  • « Imagick::getImageMatteColor
  • Imagick::getImageOrientation »
  • PHP Manual
  • Imagick
  • Returns the image mime-type

Imagick::getImageMimeType

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageMimeType — Returns the image mime-type

Descrição

public Imagick::getImageMimeType(): string

Returns the image mime-type.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Gets the image orientation

  • « Imagick::getImageMimeType
  • Imagick::getImagePage »
  • PHP Manual
  • Imagick
  • Gets the image orientation

Imagick::getImageOrientation

(PECL imagick 2, PECL imagick 3)

Imagick::getImageOrientation — Gets the image orientation

Descrição

public Imagick::getImageOrientation(): int

Gets the image orientation. The return value is one of the orientation constants.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an int on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the page geometry

  • « Imagick::getImageOrientation
  • Imagick::getImagePixelColor »
  • PHP Manual
  • Imagick
  • Returns the page geometry

Imagick::getImagePage

(PECL imagick 2, PECL imagick 3)

Imagick::getImagePage — Returns the page geometry

Descrição

public Imagick::getImagePage(): array

Returns the page geometry associated with the image in an array with the keys "width", "height", "x", and "y".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the page geometry associated with the image in an array with the keys "width", "height", "x", and "y".

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the color of the specified pixel

  • « Imagick::getImagePage
  • Imagick::getImageProfile »
  • PHP Manual
  • Imagick
  • Returns the color of the specified pixel

Imagick::getImagePixelColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImagePixelColor — Returns the color of the specified pixel

Descrição

public Imagick::getImagePixelColor(int $x, int $y): ImagickPixel

Returns the color of the specified pixel.

Parâmetros

x

The x-coordinate of the pixel

y

The y-coordinate of the pixel

Valor Retornado

Returns an ImagickPixel instance for the color at the coordinates given.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the named image profile

  • « Imagick::getImagePixelColor
  • Imagick::getImageProfiles »
  • PHP Manual
  • Imagick
  • Returns the named image profile

Imagick::getImageProfile

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProfile — Returns the named image profile

Descrição

public Imagick::getImageProfile(string $name): string

Returns the named image profile.

Parâmetros

name

The name of the profile to return.

Valor Retornado

Returns a string containing the image profile.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the image profiles

  • « Imagick::getImageProfile
  • Imagick::getImageProperties »
  • PHP Manual
  • Imagick
  • Returns the image profiles

Imagick::getImageProfiles

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProfiles — Returns the image profiles

Descrição

public Imagick::getImageProfiles(string $pattern = "*", bool $include_values = true): array

Returns all associated profiles that match the pattern. If false is passed as second parameter only the profile names are returned. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

pattern

The pattern for profile names.

include_values

Whether to return only profile names. If false then only profile names will be returned.

Valor Retornado

Returns an array containing the image profiles or profile names.


Returns the image properties

  • « Imagick::getImageProfiles
  • Imagick::getImageProperty »
  • PHP Manual
  • Imagick
  • Returns the image properties

Imagick::getImageProperties

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProperties — Returns the image properties

Descrição

public Imagick::getImageProperties(string $pattern = "*", bool $include_values = true): array

Returns all associated properties that match the pattern. If false is passed as second parameter only the property names are returned. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

pattern

The pattern for property names.

include_values

Whether to return only property names. If false then only property names will be returned.

Valor Retornado

Returns an array containing the image properties or property names.

Exemplos

Exemplo #1 Using Imagick::getImageProperties():

An example of extracting EXIF information.

<?php

/* Create the object */
$im = new imagick("/path/to/example.jpg");

/* Get the EXIF information */
$exifArray = $im->getImageProperties("exif:*");

/* Loop trough the EXIF properties */
foreach ($exifArray as $name => $property)
{
echo "{$name} => {$property}<br />\n";
}

?>


Returns the named image property

  • « Imagick::getImageProperties
  • Imagick::getImageRedPrimary »
  • PHP Manual
  • Imagick
  • Returns the named image property

Imagick::getImageProperty

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProperty — Returns the named image property

Descrição

public Imagick::getImageProperty(string $name): string

Returns the named image property. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 ou superior.

Parâmetros

name

name of the property (for example Exif:DateTime)

Valor Retornado

Returns a string containing the image property, false if a property with the given name does not exist.

Exemplos

Exemplo #1 Using Imagick::getImageProperty():

Setting and getting image property

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Veja Também

  • Imagick::setImageProperty() - Sets an image property


Returns the chromaticity red primary point

  • « Imagick::getImageProperty
  • Imagick::getImageRegion »
  • PHP Manual
  • Imagick
  • Returns the chromaticity red primary point

Imagick::getImageRedPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::getImageRedPrimary — Returns the chromaticity red primary point

Descrição

public Imagick::getImageRedPrimary(): array

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the chromaticity red primary point as an array with the keys "x" and "y". Lança uma exceção ImagickException em caso de erro.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Extracts a region of the image

  • « Imagick::getImageRedPrimary
  • Imagick::getImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Extracts a region of the image

Imagick::getImageRegion

(PECL imagick 2, PECL imagick 3)

Imagick::getImageRegion — Extracts a region of the image

Descrição

public Imagick::getImageRegion(
int $width,
int $height,
int $x,
int $y
): Imagick

Extracts a region of the image and returns it as a new Imagick object.

Parâmetros

width

The width of the extracted region.

height

The height of the extracted region.

x

X-coordinate of the top-left corner of the extracted region.

y

Y-coordinate of the top-left corner of the extracted region.

Valor Retornado

Extracts a region of the image and returns it as a new wand.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the image rendering intent

  • « Imagick::getImageRegion
  • Imagick::getImageResolution »
  • PHP Manual
  • Imagick
  • Gets the image rendering intent

Imagick::getImageRenderingIntent

(PECL imagick 2, PECL imagick 3)

Imagick::getImageRenderingIntent — Gets the image rendering intent

Descrição

public Imagick::getImageRenderingIntent(): int

Gets the image rendering intent.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image rendering intent.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the image X and Y resolution

  • « Imagick::getImageRenderingIntent
  • Imagick::getImagesBlob »
  • PHP Manual
  • Imagick
  • Gets the image X and Y resolution

Imagick::getImageResolution

(PECL imagick 2, PECL imagick 3)

Imagick::getImageResolution — Gets the image X and Y resolution

Descrição

public Imagick::getImageResolution(): array

Gets the image X and Y resolution.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the resolution as an array.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns all image sequences as a blob

  • « Imagick::getImageResolution
  • Imagick::getImageScene »
  • PHP Manual
  • Imagick
  • Returns all image sequences as a blob

Imagick::getImagesBlob

(PECL imagick 2, PECL imagick 3)

Imagick::getImagesBlob — Returns all image sequences as a blob

Descrição

public Imagick::getImagesBlob(): string

Implements direct to memory image formats. It returns all image sequences as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string containing the images. On failure, throws ImagickException.


Gets the image scene

  • « Imagick::getImagesBlob
  • Imagick::getImageSignature »
  • PHP Manual
  • Imagick
  • Gets the image scene

Imagick::getImageScene

(PECL imagick 2, PECL imagick 3)

Imagick::getImageScene — Gets the image scene

Descrição

public Imagick::getImageScene(): int

Gets the image scene.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image scene.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Generates an SHA-256 message digest

  • « Imagick::getImageScene
  • Imagick::getImageSize »
  • PHP Manual
  • Imagick
  • Generates an SHA-256 message digest

Imagick::getImageSignature

(PECL imagick 2, PECL imagick 3)

Imagick::getImageSignature — Generates an SHA-256 message digest

Descrição

public Imagick::getImageSignature(): string

Generates an SHA-256 message digest for the image pixel stream.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string containing the SHA-256 hash of the file.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the image length in bytes

  • « Imagick::getImageSignature
  • Imagick::getImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Returns the image length in bytes

Imagick::getImageSize

(PECL imagick 2, PECL imagick 3)

Imagick::getImageSize — Returns the image length in bytes

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::getImageSize(): int

Returns the image length in bytes. Deprecated in favour of Imagick::getImageLength()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an int containing the current image size.


Gets the image ticks-per-second

  • « Imagick::getImageSize
  • Imagick::getImageTotalInkDensity »
  • PHP Manual
  • Imagick
  • Gets the image ticks-per-second

Imagick::getImageTicksPerSecond

(PECL imagick 2, PECL imagick 3)

Imagick::getImageTicksPerSecond — Gets the image ticks-per-second

Descrição

public Imagick::getImageTicksPerSecond(): int

Gets the image ticks-per-second.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image ticks-per-second.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the image total ink density

  • « Imagick::getImageTicksPerSecond
  • Imagick::getImageType »
  • PHP Manual
  • Imagick
  • Gets the image total ink density

Imagick::getImageTotalInkDensity

(PECL imagick 2, PECL imagick 3)

Imagick::getImageTotalInkDensity — Gets the image total ink density

Descrição

public Imagick::getImageTotalInkDensity(): float

Gets the image total ink density.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image total ink density of the image. Lança uma exceção ImagickException em caso de erro.


Gets the potential image type

  • « Imagick::getImageTotalInkDensity
  • Imagick::getImageUnits »
  • PHP Manual
  • Imagick
  • Gets the potential image type

Imagick::getImageType

(PECL imagick 2, PECL imagick 3)

Imagick::getImageType — Gets the potential image type

Descrição

public Imagick::getImageType(): int

Gets the potential image type.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the potential image type.

  • imagick::IMGTYPE_UNDEFINED
  • imagick::IMGTYPE_BILEVEL
  • imagick::IMGTYPE_GRAYSCALE
  • imagick::IMGTYPE_GRAYSCALEMATTE
  • imagick::IMGTYPE_PALETTE
  • imagick::IMGTYPE_PALETTEMATTE
  • imagick::IMGTYPE_TRUECOLOR
  • imagick::IMGTYPE_TRUECOLORMATTE
  • imagick::IMGTYPE_COLORSEPARATION
  • imagick::IMGTYPE_COLORSEPARATIONMATTE
  • imagick::IMGTYPE_OPTIMIZE

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the image units of resolution

  • « Imagick::getImageType
  • Imagick::getImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Gets the image units of resolution

Imagick::getImageUnits

(PECL imagick 2, PECL imagick 3)

Imagick::getImageUnits — Gets the image units of resolution

Descrição

public Imagick::getImageUnits(): int

Gets the image units of resolution.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image units of resolution.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the virtual pixel method

  • « Imagick::getImageUnits
  • Imagick::getImageWhitePoint »
  • PHP Manual
  • Imagick
  • Returns the virtual pixel method

Imagick::getImageVirtualPixelMethod

(PECL imagick 2, PECL imagick 3)

Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method

Descrição

public Imagick::getImageVirtualPixelMethod(): int

Returns the virtual pixel method for the specified image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the virtual pixel method on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the chromaticity white point

  • « Imagick::getImageVirtualPixelMethod
  • Imagick::getImageWidth »
  • PHP Manual
  • Imagick
  • Returns the chromaticity white point

Imagick::getImageWhitePoint

(PECL imagick 2, PECL imagick 3)

Imagick::getImageWhitePoint — Returns the chromaticity white point

Descrição

public Imagick::getImageWhitePoint(): array

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the image width

  • « Imagick::getImageWhitePoint
  • Imagick::getInterlaceScheme »
  • PHP Manual
  • Imagick
  • Returns the image width

Imagick::getImageWidth

(PECL imagick 2, PECL imagick 3)

Imagick::getImageWidth — Returns the image width

Descrição

public Imagick::getImageWidth(): int

Returns the image width.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the image width.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the object interlace scheme

  • « Imagick::getImageWidth
  • Imagick::getIteratorIndex »
  • PHP Manual
  • Imagick
  • Gets the object interlace scheme

Imagick::getInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::getInterlaceScheme — Gets the object interlace scheme

Descrição

public Imagick::getInterlaceScheme(): int

Gets the object interlace scheme.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Gets the wand interlace scheme.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Gets the index of the current active image

  • « Imagick::getInterlaceScheme
  • Imagick::getNumberImages »
  • PHP Manual
  • Imagick
  • Gets the index of the current active image

Imagick::getIteratorIndex

(PECL imagick 2, PECL imagick 3)

Imagick::getIteratorIndex — Gets the index of the current active image

Descrição

public Imagick::getIteratorIndex(): int

Returns the index of the current active image within the Imagick object. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer containing the index of the image in the stack.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::getIteratorIndex():

Create images, set and get the iterator index

<?php
$im = new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo $im->getIteratorIndex();
?>

Veja Também

  • Imagick::setIteratorIndex() - Set the iterator position
  • Imagick::getImageIndex() - Gets the index of the current active image
  • Imagick::setImageIndex() - Set the iterator position


Returns the number of images in the object

  • « Imagick::getIteratorIndex
  • Imagick::getOption »
  • PHP Manual
  • Imagick
  • Returns the number of images in the object

Imagick::getNumberImages

(PECL imagick 2, PECL imagick 3)

Imagick::getNumberImages — Returns the number of images in the object

Descrição

public Imagick::getNumberImages(): int

Returns the number of images associated with Imagick object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of images associated with Imagick object.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns a value associated with the specified key

  • « Imagick::getNumberImages
  • Imagick::getPackageName »
  • PHP Manual
  • Imagick
  • Returns a value associated with the specified key

Imagick::getOption

(PECL imagick 2, PECL imagick 3)

Imagick::getOption — Returns a value associated with the specified key

Descrição

public Imagick::getOption(string $key): string

Returns a value associated within the object for the specified key.

Parâmetros

key

The name of the option

Valor Retornado

Returns a value associated with a wand and the specified key.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the ImageMagick package name

  • « Imagick::getOption
  • Imagick::getPage »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick package name

Imagick::getPackageName

(PECL imagick 2, PECL imagick 3)

Imagick::getPackageName — Returns the ImageMagick package name

Descrição

public static Imagick::getPackageName(): string

Returns the ImageMagick package name.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the ImageMagick package name as a string.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the page geometry

  • « Imagick::getPackageName
  • Imagick::getPixelIterator »
  • PHP Manual
  • Imagick
  • Returns the page geometry

Imagick::getPage

(PECL imagick 2, PECL imagick 3)

Imagick::getPage — Returns the page geometry

Descrição

public Imagick::getPage(): array

Returns the page geometry associated with the Imagick object in an associative array with the keys "width", "height", "x", and "y".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the page geometry associated with the Imagick object in an associative array with the keys "width", "height", "x", and "y", throwing ImagickException on error.


Returns a MagickPixelIterator

  • « Imagick::getPage
  • Imagick::getPixelRegionIterator »
  • PHP Manual
  • Imagick
  • Returns a MagickPixelIterator

Imagick::getPixelIterator

(PECL imagick 2, PECL imagick 3)

Imagick::getPixelIterator — Returns a MagickPixelIterator

Descrição

public Imagick::getPixelIterator(): ImagickPixelIterator

Returns a MagickPixelIterator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an ImagickPixelIterator on success.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::getPixelIterator()

<?php
function getPixelIterator($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imageIterator = $imagick->getPixelIterator();

foreach ($imageIterator as $row => $pixels) { /* Loop through pixel rows */
foreach ($pixels as $column => $pixel) { /* Loop through the pixels in the row (columns) */
/** @var $pixel \ImagickPixel */
if ($column % 2) {
$pixel->setColor("rgba(0, 0, 0, 0)"); /* Paint every second pixel black*/
}
}
$imageIterator->syncIterator(); /* Sync the iterator, this is important to do on each iteration */
}

header("Content-Type: image/jpg");
echo $imagick;
}

?>


Get an ImagickPixelIterator for an image section

  • « Imagick::getPixelIterator
  • Imagick::getPointSize »
  • PHP Manual
  • Imagick
  • Get an ImagickPixelIterator for an image section

Imagick::getPixelRegionIterator

(PECL imagick 2, PECL imagick 3)

Imagick::getPixelRegionIterator — Get an ImagickPixelIterator for an image section

Descrição

public Imagick::getPixelRegionIterator(
int $x,
int $y,
int $columns,
int $rows
): ImagickPixelIterator

Get an ImagickPixelIterator for an image section.

Parâmetros

x

The x-coordinate of the region.

y

The y-coordinate of the region.

columns

The width of the region.

rows

The height of the region.

Valor Retornado

Returns an ImagickPixelIterator for an image section.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::getPixelRegionIterator() example

Iterate over the pixels in the top left of the image, changing them to be black.

<?php
$im = new Imagick(realpath("./testImage.png"));
$areaIterator = $im->getPixelRegionIterator(0, 0, 10, 10);

foreach ($areaIterator as $rowIterator) {
foreach ($rowIterator as $pixel) {
// Paint every pixel black
$pixel->setColor("rgba(0, 0, 0, 0)");
}
$areaIterator->syncIterator();
}
$im->writeImage("./output.png");
?>


Gets point size

  • « Imagick::getPixelRegionIterator
  • Imagick::getQuantum »
  • PHP Manual
  • Imagick
  • Gets point size

Imagick::getPointSize

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::getPointSize — Gets point size

Descrição

public Imagick::getPointSize(): float

Returns the objects point size property. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.7 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a float containing the point size.

Veja Também

  • Imagick::setPointSize() - Sets point size


Returns the ImageMagick quantum range

  • « Imagick::getPointSize
  • Imagick::getQuantumDepth »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick quantum range

Imagick::getQuantum

(PECL imagick 3 >= 3.3.0)

Imagick::getQuantum — Returns the ImageMagick quantum range

Descrição

public static Imagick::getQuantum(): int

Returns the ImageMagick quantum range. If HDRI was enabled then the type is a float, if not it is an int.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Gets the quantum depth

  • « Imagick::getQuantum
  • Imagick::getQuantumRange »
  • PHP Manual
  • Imagick
  • Gets the quantum depth

Imagick::getQuantumDepth

(PECL imagick 2, PECL imagick 3)

Imagick::getQuantumDepth — Gets the quantum depth

Descrição

public static Imagick::getQuantumDepth(): array

Returns the Imagick quantum depth.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with "quantumDepthLong" and "quantumDepthString" members.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the Imagick quantum range

  • « Imagick::getQuantumDepth
  • Imagick::getRegistry »
  • PHP Manual
  • Imagick
  • Returns the Imagick quantum range

Imagick::getQuantumRange

(PECL imagick 2, PECL imagick 3)

Imagick::getQuantumRange — Returns the Imagick quantum range

Descrição

public static Imagick::getQuantumRange(): array

Returns the quantum range for the Imagick instance.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an associative array containing the quantum range as an int ("quantumRangeLong") and as a string ("quantumRangeString").

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Get a StringRegistry entry

  • « Imagick::getQuantumRange
  • Imagick::getReleaseDate »
  • PHP Manual
  • Imagick
  • Get a StringRegistry entry

Imagick::getRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::getRegistry — Get a StringRegistry entry

Descrição

public static Imagick::getRegistry(string $key): string

Get the StringRegistry entry for the named key or false if not set.

Parâmetros

key

The entry to get.

Valor Retornado


Returns the ImageMagick release date

  • « Imagick::getRegistry
  • Imagick::getResource »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick release date

Imagick::getReleaseDate

(PECL imagick 2, PECL imagick 3)

Imagick::getReleaseDate — Returns the ImageMagick release date

Descrição

public static Imagick::getReleaseDate(): string

Returns the ImageMagick release date as a string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the ImageMagick release date as a string.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the specified resource's memory usage

  • « Imagick::getReleaseDate
  • Imagick::getResourceLimit »
  • PHP Manual
  • Imagick
  • Returns the specified resource's memory usage

Imagick::getResource

(PECL imagick 2, PECL imagick 3)

Imagick::getResource — Returns the specified resource's memory usage

Descrição

public static Imagick::getResource(int $type): int

Returns the specified resource's memory usage in megabytes.

Parâmetros

type

Refer to the list of resourcetype constants.

Valor Retornado

Returns the specified resource's memory usage in megabytes.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the specified resource limit

  • « Imagick::getResource
  • Imagick::getSamplingFactors »
  • PHP Manual
  • Imagick
  • Returns the specified resource limit

Imagick::getResourceLimit

(PECL imagick 2, PECL imagick 3)

Imagick::getResourceLimit — Returns the specified resource limit

Descrição

public static Imagick::getResourceLimit(int $type): int

Returns the specified resource limit.

Parâmetros

type

One of the resourcetype constants. The unit depends on the type of the resource being limited.

Valor Retornado

Returns the specified resource limit in megabytes.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Veja Também

  • Imagick::setResourceLimit() - Sets the limit for a particular resource


Gets the horizontal and vertical sampling factor

  • « Imagick::getResourceLimit
  • Imagick::getSize »
  • PHP Manual
  • Imagick
  • Gets the horizontal and vertical sampling factor

Imagick::getSamplingFactors

(PECL imagick 2, PECL imagick 3)

Imagick::getSamplingFactors — Gets the horizontal and vertical sampling factor

Descrição

public Imagick::getSamplingFactors(): array

Gets the horizontal and vertical sampling factor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an associative array with the horizontal and vertical sampling factors of the image.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the size associated with the Imagick object

  • « Imagick::getSamplingFactors
  • Imagick::getSizeOffset »
  • PHP Manual
  • Imagick
  • Returns the size associated with the Imagick object

Imagick::getSize

(PECL imagick 2, PECL imagick 3)

Imagick::getSize — Returns the size associated with the Imagick object

Descrição

public Imagick::getSize(): array

Get the size in pixels associated with the Imagick object, previously set by Imagick::setSize().

Nota:

This method just returns the size that was set using Imagick::setSize(). If you want to get the actual width / height of the image, use Imagick::getImageWidth() and Imagick::getImageHeight().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the size associated with the Imagick object as an array with the keys "columns" and "rows".

Exemplos

Exemplo #1 Getting the size of a raw RGB image set at 200x400, after scaling to 400x800 (compared to width / height)

<?php
//Set size first and then load the raw image
$img = new Imagick();
$img->setSize(200, 400);
$img->readImage("image.rgb");

$img->scaleImage(400, 800);

$size = $img->getSize();
print_r($size);

echo $img->getImageWidth()."x".$img->getImageHeight();
?>

O exemplo acima produzirá:

Array
(
    [columns] => 200
    [rows] => 400
)
400x800


Returns the size offset

  • « Imagick::getSize
  • Imagick::getVersion »
  • PHP Manual
  • Imagick
  • Returns the size offset

Imagick::getSizeOffset

(PECL imagick 2, PECL imagick 3)

Imagick::getSizeOffset — Returns the size offset

Descrição

public Imagick::getSizeOffset(): int

Returns the size offset associated with the Imagick object. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the size offset associated with the Imagick object.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns the ImageMagick API version

  • « Imagick::getSizeOffset
  • Imagick::haldClutImage »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick API version

Imagick::getVersion

(PECL imagick 2, PECL imagick 3)

Imagick::getVersion — Returns the ImageMagick API version

Descrição

public static Imagick::getVersion(): array

Returns the ImageMagick API version as a string and as a number.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the ImageMagick API version as a string and as a number.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Replaces colors in the image

  • « Imagick::getVersion
  • Imagick::hasNextImage »
  • PHP Manual
  • Imagick
  • Replaces colors in the image

Imagick::haldClutImage

(PECL imagick 3)

Imagick::haldClutImage — Replaces colors in the image

Descrição

public Imagick::haldClutImage(Imagick $clut, int $channel = Imagick::CHANNEL_DEFAULT): bool

Replaces colors in the image using a Hald lookup table. Hald images can be created using HALD color coder.

Parâmetros

clut

Imagick object containing the Hald lookup image.

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::haldClutImage()

<?php
function haldClutImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagickPalette = new \Imagick(realpath("images/hald/hald_8.png"));
$imagickPalette->sepiatoneImage(55);
$imagick->haldClutImage($imagickPalette);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Checks if the object has more images

  • « Imagick::haldClutImage
  • Imagick::hasPreviousImage »
  • PHP Manual
  • Imagick
  • Checks if the object has more images

Imagick::hasNextImage

(PECL imagick 2, PECL imagick 3)

Imagick::hasNextImage — Checks if the object has more images

Descrição

public Imagick::hasNextImage(): bool

Returns true if the object has more images when traversing the list in the forward direction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the object has more images when traversing the list in the forward direction, returns false if there are none.


Checks if the object has a previous image

  • « Imagick::hasNextImage
  • Imagick::identifyFormat »
  • PHP Manual
  • Imagick
  • Checks if the object has a previous image

Imagick::hasPreviousImage

(PECL imagick 2, PECL imagick 3)

Imagick::hasPreviousImage — Checks if the object has a previous image

Descrição

public Imagick::hasPreviousImage(): bool

Returns true if the object has more images when traversing the list in the reverse direction

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the object has more images when traversing the list in the reverse direction, returns false if there are none.


Formats a string with image details

  • « Imagick::hasPreviousImage
  • Imagick::identifyImage »
  • PHP Manual
  • Imagick
  • Formats a string with image details

Imagick::identifyFormat

(PECL imagick 3 >= 3.3.0)

Imagick::identifyFormat — Formats a string with image details

Descrição

public Imagick::identifyFormat(string $embedText): string|false

Replaces any embedded formatting characters with the appropriate image property and returns the interpreted text. See http://www.imagemagick.org/script/escape.php for escape sequences.

Parâmetros

embedText

A string containing formatting sequences e.g. "Trim box: %@ number of unique colors: %k".

Valor Retornado

Returns format ou false em caso de falha.

Exemplos

Exemplo #1 Imagick::identifyFormat()

<?php
$output = "Output of 'Trim box: %@ number of unique colors: %k' is: <br/>";
$imagick = new \Imagick(realpath("./images/artifact/mask.png"));
$output .= $imagick->identifyFormat("Trim box: %@ number of unique colors: %k");

?>


Identifies an image and fetches attributes

  • « Imagick::identifyFormat
  • Imagick::implodeImage »
  • PHP Manual
  • Imagick
  • Identifies an image and fetches attributes

Imagick::identifyImage

(PECL imagick 2, PECL imagick 3)

Imagick::identifyImage — Identifies an image and fetches attributes

Descrição

public Imagick::identifyImage(bool $appendRawOutput = false): array

Identifies an image and returns the attributes. Attributes include the image width, height, size, and others.

Parâmetros

appendRawOutput

If true then the raw output is appended to the array.

Valor Retornado

Identifies an image and returns the attributes. Attributes include the image width, height, size, and others.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Example Result Format

Array
(
    [imageName] => /some/path/image.jpg
    [format] => JPEG (Joint Photographic Experts Group JFIF format)
    [geometry] => Array
        (
            [width] => 90
            [height] => 90
        )

    [type] => TrueColor
    [colorSpace] => RGB
    [resolution] => Array
        (
            [x] => 300
            [y] => 300
        )

    [units] => PixelsPerInch
    [fileSize] => 1.88672kb
    [compression] => JPEG
    [signature] => 9a6dc8f604f97d0d691c0286176ddf992e188f0bebba98494b2146ee2d7118da
)


Creates a new image as a copy

  • « Imagick::identifyImage
  • Imagick::importImagePixels »
  • PHP Manual
  • Imagick
  • Creates a new image as a copy

Imagick::implodeImage

(PECL imagick 2, PECL imagick 3)

Imagick::implodeImage — Creates a new image as a copy

Descrição

public Imagick::implodeImage(float $radius): bool

Creates a new image that is a copy of an existing one with the image pixels "imploded" by the specified percentage.

Parâmetros

radius

The radius of the implode

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::implodeImage()

<?php
function implodeImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->implodeImage(0.0001);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();

}

?>


Imports image pixels

  • « Imagick::implodeImage
  • Imagick::inverseFourierTransformImage »
  • PHP Manual
  • Imagick
  • Imports image pixels

Imagick::importImagePixels

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::importImagePixels — Imports image pixels

Descrição

public Imagick::importImagePixels(
int $x,
int $y,
int $width,
int $height,
string $map,
int $storage,
array $pixels
): bool

Imports pixels from an array into an image. The map is usually 'RGB'. This method imposes the following constraints for the parameters: amount of pixels in the array must match width x height x length of the map. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.5 ou superior.

Parâmetros

x

The image x position

y

The image y position

width

The image width

height

The image height

map

Map of pixel ordering as a string. This can be for example RGB. The value can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.

storage

The pixel storage method. Refer to this list of pixel constants.

pixels

The array of pixels

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::importImagePixels() example

<?php

/* Generate array of pixels. 2000 pixels per color stripe */
$count = 2000 * 3;

$pixels =
array_merge(array_pad(array(), $count, 0),
array_pad(array(), $count, 255),
array_pad(array(), $count, 0),
array_pad(array(), $count, 255),
array_pad(array(), $count, 0));

/* Width and height. The area is amount of pixels divided
by three. Three comes from 'RGB', three values per pixel */
$width = $height = pow((count($pixels) / 3), 0.5);

/* Create empty image */
$im = new Imagick();
$im->newImage($width, $height, 'gray');

/* Import the pixels into image.
width * height * strlen("RGB") must match count($pixels) */
$im->importImagePixels(0, 0, $width, $height, "RGB", Imagick::PIXEL_CHAR, $pixels);

/* output as jpeg image */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $im;

?>

O exemplo acima produzirá algo semelhante a:

Output of example : Imagick::importImagePixels()


Implements the inverse discrete Fourier transform (DFT)

  • « Imagick::importImagePixels
  • Imagick::labelImage »
  • PHP Manual
  • Imagick
  • Implements the inverse discrete Fourier transform (DFT)

Imagick::inverseFourierTransformImage

(PECL imagick 3 >= 3.3.0)

Imagick::inverseFourierTransformImage — Implements the inverse discrete Fourier transform (DFT)

Descrição

public Imagick::inverseFourierTransformImage(Imagick $complement, bool $magnitude): bool

Implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

complement

The second image to combine with this one to form either the magnitude / phase or real / imaginary image pair.

magnitude

If true, combine as magnitude / phase pair otherwise a real / imaginary image pair.

Valor Retornado

Retorna true em caso de sucesso.


Adds a label to an image

  • « Imagick::inverseFourierTransformImage
  • Imagick::levelImage »
  • PHP Manual
  • Imagick
  • Adds a label to an image

Imagick::labelImage

(PECL imagick 2, PECL imagick 3)

Imagick::labelImage — Adds a label to an image

Descrição

public Imagick::labelImage(string $label): bool

Adds a label to an image.

Parâmetros

label

The label to add

Valor Retornado

Retorna true em caso de sucesso.


Adjusts the levels of an image

  • « Imagick::labelImage
  • Imagick::linearStretchImage »
  • PHP Manual
  • Imagick
  • Adjusts the levels of an image

Imagick::levelImage

(PECL imagick 2, PECL imagick 3)

Imagick::levelImage — Adjusts the levels of an image

Descrição

public Imagick::levelImage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

Parâmetros

blackPoint

The image black point

gamma

The gamma value

whitePoint

The image white point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::levelImage()

<?php
function levelImage($blackPoint, $gamma, $whitePoint) {
$imagick = new \Imagick();
$imagick->newPseudoimage(500, 500, 'gradient:black-white');

$imagick->setFormat('png');
$quantum = $imagick->getQuantum();
$imagick->levelImage($blackPoint / 100 , $gamma, $quantum * $whitePoint / 100);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Stretches with saturation the image intensity

  • « Imagick::levelImage
  • Imagick::liquidRescaleImage »
  • PHP Manual
  • Imagick
  • Stretches with saturation the image intensity

Imagick::linearStretchImage

(PECL imagick 2, PECL imagick 3)

Imagick::linearStretchImage — Stretches with saturation the image intensity

Descrição

public Imagick::linearStretchImage(float $blackPoint, float $whitePoint): bool

Stretches with saturation the image intensity.

Parâmetros

blackPoint

The image black point

whitePoint

The image white point

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::linearStretchImage()

<?php
function linearStretchImage($imagePath, $blackThreshold, $whiteThreshold) {
$imagick = new \Imagick(realpath($imagePath));
$pixels = $imagick->getImageWidth() * $imagick->getImageHeight();
$imagick->linearStretchImage($blackThreshold * $pixels, $whiteThreshold * $pixels);

header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Animates an image or images

  • « Imagick::linearStretchImage
  • Imagick::listRegistry »
  • PHP Manual
  • Imagick
  • Animates an image or images

Imagick::liquidRescaleImage

(PECL imagick 2 >= 2.2.0, PECL imagick 3)

Imagick::liquidRescaleImage — Animates an image or images

Descrição

public Imagick::liquidRescaleImage(
int $width,
int $height,
float $delta_x,
float $rigidity
): bool

This method scales the images using liquid rescaling method. This method is an implementation of a technique called seam carving. In order for this method to work as expected ImageMagick must be compiled with liblqr support. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.9 ou superior.

Parâmetros

width

The width of the target size

height

The height of the target size

delta_x

How much the seam can traverse on x-axis. Passing 0 causes the seams to be straight.

rigidity

Introduces a bias for non-straight seams. This parameter is typically 0.

Valor Retornado

Retorna true em caso de sucesso.

Veja Também

  • Imagick::resizeImage() - Scales an image


List all the registry settings

  • « Imagick::liquidRescaleImage
  • Imagick::magnifyImage »
  • PHP Manual
  • Imagick
  • List all the registry settings

Imagick::listRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::listRegistry — List all the registry settings

Descrição

public static Imagick::listRegistry(): array

List all the registry settings. Returns an array of all the key/value pairs in the registry

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array containing the key/values from the registry.


Scales an image proportionally 2x

  • « Imagick::listRegistry
  • Imagick::mapImage »
  • PHP Manual
  • Imagick
  • Scales an image proportionally 2x

Imagick::magnifyImage

(PECL imagick 2, PECL imagick 3)

Imagick::magnifyImage — Scales an image proportionally 2x

Descrição

public Imagick::magnifyImage(): bool

Is a convenience method that scales an image proportionally to twice its original size.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::magnifyImage()

<?php
function magnifyImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->magnifyImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Replaces the colors of an image with the closest color from a reference image

  • « Imagick::magnifyImage
  • Imagick::matteFloodfillImage »
  • PHP Manual
  • Imagick
  • Replaces the colors of an image with the closest color from a reference image

Imagick::mapImage

(PECL imagick 2, PECL imagick 3)

Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::mapImage(Imagick $map, bool $dither): bool

Parâmetros

map

dither

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Changes the transparency value of a color

  • « Imagick::mapImage
  • Imagick::medianFilterImage »
  • PHP Manual
  • Imagick
  • Changes the transparency value of a color

Imagick::matteFloodfillImage

(PECL imagick 2, PECL imagick 3)

Imagick::matteFloodfillImage — Changes the transparency value of a color

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::matteFloodfillImage(
float $alpha,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool

Changes the transparency value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the transparency value is changed for any neighbor pixel that does not match the bordercolor member of image.

Parâmetros

alpha

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

bordercolor

An ImagickPixel object or string representing the border color.

x

The starting x coordinate of the operation.

y

The starting y coordinate of the operation.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.


Applies a digital filter

  • « Imagick::matteFloodfillImage
  • Imagick::mergeImageLayers »
  • PHP Manual
  • Imagick
  • Applies a digital filter

Imagick::medianFilterImage

(PECL imagick 2, PECL imagick 3)

Imagick::medianFilterImage — Applies a digital filter

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::medianFilterImage(float $radius): bool

Applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

Parâmetros

radius

The radius of the pixel neighborhood.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::medianFilterImage()

<?php
function medianFilterImage($radius, $imagePath) {
$imagick = new \Imagick(realpath($imagePath));
@$imagick->medianFilterImage($radius);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Merges image layers

  • « Imagick::medianFilterImage
  • Imagick::minifyImage »
  • PHP Manual
  • Imagick
  • Merges image layers

Imagick::mergeImageLayers

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::mergeImageLayers — Merges image layers

Descrição

public Imagick::mergeImageLayers(int $layer_method): Imagick

Merges image layers into one. This method is useful when working with image formats that use multiple layers such as PSD. The merging is controlled using the layer_method which defines how the layers are merged. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.7 ou superior.

Parâmetros

layer_method

One of the Imagick::LAYERMETHOD_* constants

Valor Retornado

Returns an Imagick object containing the merged image.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::mergeImageLayers()

<?php
function mergeImageLayers($layerMethodType, $imagePath1, $imagePath2) {

$imagick = new \Imagick(realpath($imagePath));

$imagick2 = new \Imagick(realpath($imagePath2));
$imagick->addImage($imagick2);
$imagick->setImageFormat('png');

$result = $imagick->mergeImageLayers($layerMethodType);
header("Content-Type: image/png");
echo $result->getImageBlob();
}

?>

Veja Também

  • Imagick::flattenImages() - Merges a sequence of images


Scales an image proportionally to half its size

  • « Imagick::mergeImageLayers
  • Imagick::modulateImage »
  • PHP Manual
  • Imagick
  • Scales an image proportionally to half its size

Imagick::minifyImage

(PECL imagick 2, PECL imagick 3)

Imagick::minifyImage — Scales an image proportionally to half its size

Descrição

public Imagick::minifyImage(): bool

Is a convenience method that scales an image proportionally to one-half its original size

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Control the brightness, saturation, and hue

  • « Imagick::minifyImage
  • Imagick::montageImage »
  • PHP Manual
  • Imagick
  • Control the brightness, saturation, and hue

Imagick::modulateImage

(PECL imagick 2, PECL imagick 3)

Imagick::modulateImage — Control the brightness, saturation, and hue

Descrição

public Imagick::modulateImage(float $brightness, float $saturation, float $hue): bool

Lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

Parâmetros

brightness

saturation

hue

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::modulateImage()

<?php
function modulateImage($imagePath, $hue, $brightness, $saturation) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->modulateImage($brightness, $saturation, $hue);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Creates a composite image

  • « Imagick::modulateImage
  • Imagick::morphImages »
  • PHP Manual
  • Imagick
  • Creates a composite image

Imagick::montageImage

(PECL imagick 2, PECL imagick 3)

Imagick::montageImage — Creates a composite image

Descrição

public Imagick::montageImage(
ImagickDraw $draw,
string $tile_geometry,
string $thumbnail_geometry,
int $mode,
string $frame
): Imagick

Creates a composite image by combining several separate images. The images are tiled on the composite image with the name of the image optionally appearing just below the individual tile.

Parâmetros

draw

The font name, size, and color are obtained from this object.

tile_geometry

The number of tiles per row and page (e.g. 6x4+0+0).

thumbnail_geometry

Preferred image size and border size of each thumbnail (e.g. 120x120+4+3).

mode

Thumbnail framing mode, see Montage Mode constants.

frame

Surround the image with an ornamental border (e.g. 15x15+3+3). The frame color is that of the thumbnail's matte color.

Valor Retornado

Creates a composite image and returns it as a new Imagick object.


Method morphs a set of images

  • « Imagick::montageImage
  • Imagick::morphology »
  • PHP Manual
  • Imagick
  • Method morphs a set of images

Imagick::morphImages

(PECL imagick 2, PECL imagick 3)

Imagick::morphImages — Method morphs a set of images

Descrição

public Imagick::morphImages(int $number_frames): Imagick

Method morphs a set of images. Both the image pixels and size are linearly interpolated to give the appearance of a meta-morphosis from one image to the next.

Parâmetros

number_frames

The number of in-between images to generate.

Valor Retornado

This method returns a new Imagick object on success. Lança uma exceção ImagickException em caso de erro.


Applies a user supplied kernel to the image according to the given morphology method.

  • « Imagick::morphImages
  • Imagick::mosaicImages »
  • PHP Manual
  • Imagick
  • Applies a user supplied kernel to the image according to the given morphology method.

Imagick::morphology

(PECL imagick 3 >= 3.3.0)

Imagick::morphology — Applies a user supplied kernel to the image according to the given morphology method.

Descrição

public Imagick::morphology(
int $morphologyMethod,
int $iterations,
ImagickKernel $ImagickKernel,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Applies a user supplied kernel to the image according to the given morphology method.

Parâmetros

morphologyMethod

Which morphology method to use one of the \Imagick::MORPHOLOGY_* constants.

iterations

The number of iteration to apply the morphology function. A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.

ImagickKernel

channel

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Convolve Imagick::morphology()

<?php
$imagick = $this->getCharacter();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_GAUSSIAN, "5,1");
$imagick->morphology(\Imagick::MORPHOLOGY_CONVOLVE, 2, $kernel);
header("Content-Type: image/png");
echo $imagick->getImageBlob();

?>

Exemplo #2 Correlate Imagick::morphology()

<?php

// Top-left pixel must be black
// Bottom right pixel must be white
// We don't care about the rest.

$imagick = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromMatrix(self::$correlateMatrix, [2, 2]);
$imagick->morphology(\Imagick::MORPHOLOGY_CORRELATE, 1, $kernel);
header("Content-Type: image/png");
echo $imagick->getImageBlob();

?>

Exemplo #3 Erode Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
$canvas->morphology(\Imagick::MORPHOLOGY_ERODE, 2, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #4 Erode Intensity Imagick::morphology()

<?php
$canvas = $this->getCharacter();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "1");
$canvas->morphology(\Imagick::MORPHOLOGY_ERODE_INTENSITY, 2, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #5 Dilate Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
$canvas->morphology(\Imagick::MORPHOLOGY_DILATE, 4, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #6 Dilate intensity Imagick::morphology()

<?php
$canvas = $this->getCharacter();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "1");
$canvas->morphology(\Imagick::MORPHOLOGY_DILATE_INTENSITY, 4, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #7 Distance with Chebyshev kernel Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CHEBYSHEV, "3");
$canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
$canvas->autoLevelImage();
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #8 Distance with Manhattan kernel Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_MANHATTAN, "5");
$canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
$canvas->autoLevelImage();
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #9 Distance with ocatagonal kernel Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGONAL, "5");
$canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
$canvas->autoLevelImage();
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #10 Distance with Euclidean kernel Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_EUCLIDEAN, "4");
$canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
$canvas->autoLevelImage();
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #11 Edge Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
$canvas->morphology(\Imagick::MORPHOLOGY_EDGE, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #12 Open Imagick::morphology()

<?php
// As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
$canvas->morphology(\Imagick::MORPHOLOGY_OPEN, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #13 Open intensity Imagick::morphology()

<?php
// As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.

$canvas = $this->getCharacter();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
$canvas->morphology(\Imagick::MORPHOLOGY_OPEN_INTENSITY, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #14 Close Imagick::morphology()

<?php
//The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
$canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #15 Close Intensity Imagick::morphology()

<?php
//The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.
$canvas = $this->getCharacter();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
$canvas->morphology(\Imagick::MORPHOLOGY_CLOSE_INTENSITY, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #16 Smooth Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
$canvas->morphology(\Imagick::MORPHOLOGY_SMOOTH, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #17 Edge in Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
$canvas->morphology(\Imagick::MORPHOLOGY_EDGE_IN, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #18 Edge out Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
$canvas->morphology(\Imagick::MORPHOLOGY_EDGE_OUT, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #19 The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "5");
$canvas->morphology(\Imagick::MORPHOLOGY_TOP_HAT, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #20 The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology()

<?php

$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "5");
$canvas->morphology(\Imagick::MORPHOLOGY_BOTTOM_HAT, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #21 Hit and Miss Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
//This finds all the pixels with 3 pixels of the right edge
$matrix = [[1, false, false, 0]];
$kernel = \ImagickKernel::fromMatrix(
$matrix,
[0, 0]
);
$canvas->morphology(\Imagick::MORPHOLOGY_HIT_AND_MISS, 1, $kernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #22 Thinning Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]);
$rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]);
$leftEdgeKernel->addKernel($rightEdgeKernel);

$canvas->morphology(\Imagick::MORPHOLOGY_THINNING, 3, $leftEdgeKernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #23 Thicken Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]);
$rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]);
$leftEdgeKernel->addKernel($rightEdgeKernel);

$canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, 3, $leftEdgeKernel);
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #24 Thick to generate a convex hull Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$diamondKernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "1");
$convexKernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CONVEX_HULL, "");

// The thicken morphology doesn't handle small gaps. We close them
// with the close morphology.
$canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $diamondKernel);
$canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, -1, $convexKernel);
$canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $diamondKernel);

header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #25 Iterative morphology Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "2");
$canvas->morphology(\Imagick::MORPHOLOGY_ITERATIVE, 3, $kernel);
$canvas->autoLevelImage();
header("Content-Type: image/png");
echo $canvas->getImageBlob();

?>

Exemplo #26 Helper function to get an image silhouette Imagick::morphology()

<?php
function getCharacterOutline() {
$imagick = new \Imagick(realpath("./images/character.png"));
$character = new \Imagick();
$character->newPseudoImage(
$imagick->getImageWidth(),
$imagick->getImageHeight(),
"canvas:white"
);
$canvas = new \Imagick();
$canvas->newPseudoImage(
$imagick->getImageWidth(),
$imagick->getImageHeight(),
"canvas:black"
);

$character->compositeimage(
$imagick,
\Imagick::COMPOSITE_COPYOPACITY,
0, 0
);
$canvas->compositeimage(
$character,
\Imagick::COMPOSITE_ATOP,
0, 0
);
$canvas->setFormat('png');

return $canvas;
}
?>


Forms a mosaic from images

  • « Imagick::morphology
  • Imagick::motionBlurImage »
  • PHP Manual
  • Imagick
  • Forms a mosaic from images

Imagick::mosaicImages

(PECL imagick 2, PECL imagick 3)

Imagick::mosaicImages — Forms a mosaic from images

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::mosaicImages(): Imagick

Inlays an image sequence to form a single coherent picture. It returns a wand with each image in the sequence composited at the location defined by the page offset of the image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Simulates motion blur

  • « Imagick::mosaicImages
  • Imagick::negateImage »
  • PHP Manual
  • Imagick
  • Simulates motion blur

Imagick::motionBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::motionBlurImage — Simulates motion blur

Descrição

public Imagick::motionBlurImage(
float $radius,
float $sigma,
float $angle,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

Parâmetros

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants. The channel argument affects only if Imagick is compiled against ImageMagick version 6.4.4 or greater.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::motionBlurImage()

<?php
function motionBlurImage($imagePath, $radius, $sigma, $angle, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->motionBlurImage($radius, $sigma, $angle, $channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Negates the colors in the reference image

  • « Imagick::motionBlurImage
  • Imagick::newImage »
  • PHP Manual
  • Imagick
  • Negates the colors in the reference image

Imagick::negateImage

(PECL imagick 2, PECL imagick 3)

Imagick::negateImage — Negates the colors in the reference image

Descrição

public Imagick::negateImage(bool $gray, int $channel = Imagick::CHANNEL_DEFAULT): bool

Negates the colors in the reference image. The Grayscale option means that only grayscale values within the image are negated.

Parâmetros

gray

Whether to only negate grayscale pixels within the image.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::negateImage()

<?php
function negateImage($imagePath, $grayOnly, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->negateImage($grayOnly, $channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Creates a new image

  • « Imagick::negateImage
  • Imagick::newPseudoImage »
  • PHP Manual
  • Imagick
  • Creates a new image

Imagick::newImage

(PECL imagick 2, PECL imagick 3)

Imagick::newImage — Creates a new image

Descrição

public Imagick::newImage(
int $cols,
int $rows,
mixed $background,
string $format = ?
): bool

Creates a new image and associates ImagickPixel value as background color

Parâmetros

cols

Columns in the new image

rows

Rows in the new image

background

The background color used for this image

format

Image format. This parameter was added in Imagick version 2.0.1.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.

Exemplos

Exemplo #1 Using Imagick::newImage():

Create a new image and display it.

<?php

$image = new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('png');

header('Content-type: image/png');
echo $image;

?>


Creates a new image

  • « Imagick::newImage
  • Imagick::nextImage »
  • PHP Manual
  • Imagick
  • Creates a new image

Imagick::newPseudoImage

(PECL imagick 2, PECL imagick 3)

Imagick::newPseudoImage — Creates a new image

Descrição

public Imagick::newPseudoImage(int $columns, int $rows, string $pseudoString): bool

Creates a new image using ImageMagick pseudo-formats.

Parâmetros

columns

columns in the new image

rows

rows in the new image

pseudoString

string containing pseudo image definition.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::newPseudoImage()

<?php
function newPseudoImage($canvasType) {
$imagick = new \Imagick();
$imagick->newPseudoImage(300, 300, $canvasType);
$imagick->setImageFormat("png");
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

//newPseudoImage('gradient:red-rgba(64, 255, 255, 0.5)');
//newPseudoImage("radial-gradient:red-blue");
newPseudoImage("plasma:fractal");

?>


Moves to the next image

  • « Imagick::newPseudoImage
  • Imagick::normalizeImage »
  • PHP Manual
  • Imagick
  • Moves to the next image

Imagick::nextImage

(PECL imagick 2, PECL imagick 3)

Imagick::nextImage — Moves to the next image

Descrição

public Imagick::nextImage(): bool

Associates the next image in the image list with an Imagick object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Enhances the contrast of a color image

  • « Imagick::nextImage
  • Imagick::oilPaintImage »
  • PHP Manual
  • Imagick
  • Enhances the contrast of a color image

Imagick::normalizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::normalizeImage — Enhances the contrast of a color image

Descrição

public Imagick::normalizeImage(int $channel = Imagick::CHANNEL_DEFAULT): bool

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available.

Parâmetros

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::normalizeImage()

<?php
function normalizeImage($imagePath, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$original = clone $imagick;
$original->cropimage($original->getImageWidth() / 2, $original->getImageHeight(), 0, 0);
$imagick->normalizeImage($channel);
$imagick->compositeimage($original, \Imagick::COMPOSITE_ATOP, 0, 0);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Simulates an oil painting

  • « Imagick::normalizeImage
  • Imagick::opaquePaintImage »
  • PHP Manual
  • Imagick
  • Simulates an oil painting

Imagick::oilPaintImage

(PECL imagick 2, PECL imagick 3)

Imagick::oilPaintImage — Simulates an oil painting

Descrição

public Imagick::oilPaintImage(float $radius): bool

Applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

Parâmetros

radius

The radius of the circular neighborhood.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::oilPaintImage()

<?php
function oilPaintImage($imagePath, $radius) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->oilPaintImage($radius);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Changes the color value of any pixel that matches target

  • « Imagick::oilPaintImage
  • Imagick::optimizeImageLayers »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::opaquePaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::opaquePaintImage — Changes the color value of any pixel that matches target

Descrição

public Imagick::opaquePaintImage(
mixed $target,
mixed $fill,
float $fuzz,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Changes any pixel that matches color with the color defined by fill. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.8 ou superior.

Parâmetros

target

ImagickPixel object or a string containing the color to change

fill

The replacement color

fuzz

A quantidade de fuzz. Por exemplo, definir fuzz como 10 e a cor vermelha nas intensidades de 100 e 102, respectivamente, agora são interpretadas como a mesma cor.

invert

If true paints any pixel that does not match the target color.

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.


Removes repeated portions of images to optimize

  • « Imagick::opaquePaintImage
  • Imagick::orderedPosterizeImage »
  • PHP Manual
  • Imagick
  • Removes repeated portions of images to optimize

Imagick::optimizeImageLayers

(PECL imagick 2, PECL imagick 3)

Imagick::optimizeImageLayers — Removes repeated portions of images to optimize

Descrição

public Imagick::optimizeImageLayers(): bool

Compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the animation. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::optimizeImageLayers()

Reading, optimizing and writing a GIF image

<?php
/* create new imagick object */
$im = new Imagick("test.gif");

/* optimize the image layers */
$im->optimizeImageLayers();

/* write the image back */
$im->writeImages("test_optimized.gif", true);
?>

Veja Também

  • Imagick::compareImageLayers() - Returns the maximum bounding region between images
  • Imagick::writeImages() - Writes an image or image sequence
  • Imagick::writeImage() - Writes an image to the specified filename


Performs an ordered dither

  • « Imagick::optimizeImageLayers
  • Imagick::paintFloodfillImage »
  • PHP Manual
  • Imagick
  • Performs an ordered dither

Imagick::orderedPosterizeImage

(PECL imagick 2 >= 2.2.2, PECL imagick 3)

Imagick::orderedPosterizeImage — Performs an ordered dither

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::orderedPosterizeImage(string $threshold_map, int $channel = Imagick::CHANNEL_DEFAULT): bool

Performs an ordered dither based on a number of pre-defined dithering threshold maps, but over multiple intensity levels, which can be different for different channels, according to the input arguments. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.1 ou superior.

Parâmetros

threshold_map

A string containing the name of the threshold dither map to use

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::orderedPosterizeImage()

<?php
function orderedPosterizeImage($imagePath, $orderedPosterizeType) {
$imagick = new \Imagick(realpath($imagePath));

$imagick->orderedPosterizeImage($orderedPosterizeType);
$imagick->setImageFormat('png');

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

//orderedPosterizeImage($imagePath, 'o4x4,3,3');
//orderedPosterizeImage($imagePath, 'o8x8,6,6');
orderedPosterizeImage($imagePath, 'h8x8a');

?>


Changes the color value of any pixel that matches target

  • « Imagick::orderedPosterizeImage
  • Imagick::paintOpaqueImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::paintFloodfillImage

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::paintFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Changes the color value of any pixel that matches target and is an immediate neighbor. As of ImageMagick 6.3.8 this method has been deprecated and Imagick::floodfillPaintImage() should be used instead.

Parâmetros

fill

ImagickPixel object or a string containing the fill color

fuzz

The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

bordercolor

ImagickPixel object or a string containing the border color

x

X start position of the floodfill

y

Y start position of the floodfill

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.


Change any pixel that matches color

  • « Imagick::paintFloodfillImage
  • Imagick::paintTransparentImage »
  • PHP Manual
  • Imagick
  • Change any pixel that matches color

Imagick::paintOpaqueImage

(PECL imagick 2, PECL imagick 3)

Imagick::paintOpaqueImage — Change any pixel that matches color

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::paintOpaqueImage(
mixed $target,
mixed $fill,
float $fuzz,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Changes any pixel that matches color with the color defined by fill.

Parâmetros

target

Change this target color to the fill color within the image. An ImagickPixel object or a string representing the target color.

fill

An ImagickPixel object or a string representing the fill color.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as first and second parameter. Previous versions allow only an ImagickPixel object.


Changes any pixel that matches color with the color defined by fill

  • « Imagick::paintOpaqueImage
  • Imagick::pingImage »
  • PHP Manual
  • Imagick
  • Changes any pixel that matches color with the color defined by fill

Imagick::paintTransparentImage

(PECL imagick 2, PECL imagick 3)

Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::paintTransparentImage(mixed $target, float $alpha, float $fuzz): bool

Changes any pixel that matches color with the color defined by fill.

Parâmetros

target

Change this target color to specified opacity value within the image.

alpha

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.


Fetch basic attributes about the image

  • « Imagick::paintTransparentImage
  • Imagick::pingImageBlob »
  • PHP Manual
  • Imagick
  • Fetch basic attributes about the image

Imagick::pingImage

(PECL imagick 2, PECL imagick 3)

Imagick::pingImage — Fetch basic attributes about the image

Descrição

public Imagick::pingImage(string $filename): bool

This method can be used to query image width, height, size, and format without reading the whole image in to memory.

Parâmetros

filename

The filename to read the information from.

Valor Retornado

Retorna true em caso de sucesso.


Quickly fetch attributes

  • « Imagick::pingImage
  • Imagick::pingImageFile »
  • PHP Manual
  • Imagick
  • Quickly fetch attributes

Imagick::pingImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::pingImageBlob — Quickly fetch attributes

Descrição

public Imagick::pingImageBlob(string $image): bool

This method can be used to query image width, height, size, and format without reading the whole image to memory. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

image

A string containing the image.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Using Imagick::pingImageBlob()

Pinging an image from a string

<?php
/* read image contents */
$image = file_get_contents("test.jpg");

/* create new imagick object */
$im = new Imagick();

/* pass the string to the imagick object */
$im->pingImageBlob($image);

/* output image width and height */
echo $im->getImageWidth() . 'x' . $im->getImageHeight();
?>

Veja Também

  • Imagick::pingImage() - Fetch basic attributes about the image
  • Imagick::pingImageFile() - Get basic image attributes in a lightweight manner
  • Imagick::readImage() - Reads image from filename
  • Imagick::readImageBlob() - Reads image from a binary string
  • Imagick::readImageFile() - Reads image from open filehandle


Get basic image attributes in a lightweight manner

  • « Imagick::pingImageBlob
  • Imagick::polaroidImage »
  • PHP Manual
  • Imagick
  • Get basic image attributes in a lightweight manner

Imagick::pingImageFile

(PECL imagick 2, PECL imagick 3)

Imagick::pingImageFile — Get basic image attributes in a lightweight manner

Descrição

public Imagick::pingImageFile(resource $filehandle, string $fileName = ?): bool

This method can be used to query image width, height, size, and format without reading the whole image to memory. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

filehandle

An open filehandle to the image.

fileName

Optional filename for this image.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Using Imagick::pingImageFile()

Opening a remote location

<?php
/* fopen a remote location */
$fp = fopen("http://example.com/test.jpg");

/* create new imagick object */
$im = new Imagick();

/* pass the handle to imagick */
$im->pingImageFile($fp);
?>

Veja Também

  • Imagick::pingImage() - Fetch basic attributes about the image
  • Imagick::pingImageBlob() - Quickly fetch attributes
  • Imagick::readImage() - Reads image from filename
  • Imagick::readImageBlob() - Reads image from a binary string
  • Imagick::readImageFile() - Reads image from open filehandle


Simulates a Polaroid picture

  • « Imagick::pingImageFile
  • Imagick::posterizeImage »
  • PHP Manual
  • Imagick
  • Simulates a Polaroid picture

Imagick::polaroidImage

(PECL imagick 2, PECL imagick 3)

Imagick::polaroidImage — Simulates a Polaroid picture

Descrição

public Imagick::polaroidImage(ImagickDraw $properties, float $angle): bool

Simulates a Polaroid picture. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 ou superior.

Parâmetros

properties

The polaroid properties

angle

The polaroid angle

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 A Imagick::polaroidImage() example

An example of using Imagick::polaroidImage()

<?php
/* Create the object */
$image = new Imagick('source.png');

/* Set the opacity */
$image->polaroidImage(new ImagickDraw(), 25);

/* output the image */
header('Content-type: image/png');
echo $image;

?>


Reduces the image to a limited number of color level

  • « Imagick::polaroidImage
  • Imagick::previewImages »
  • PHP Manual
  • Imagick
  • Reduces the image to a limited number of color level

Imagick::posterizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::posterizeImage — Reduces the image to a limited number of color level

Descrição

public Imagick::posterizeImage(int $levels, bool $dither): bool

Reduces the image to a limited number of color level.

Parâmetros

levels

dither

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::posterizeImage()

<?php
function posterizeImage($imagePath, $posterizeType, $numberLevels) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->posterizeImage($numberLevels, $posterizeType);
$imagick->setImageFormat('png');
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

posterizeImage($imagePath, \Imagick::DITHERMETHOD_RIEMERSMA, 8);

?>


Quickly pin-point appropriate parameters for image processing

  • « Imagick::posterizeImage
  • Imagick::previousImage »
  • PHP Manual
  • Imagick
  • Quickly pin-point appropriate parameters for image processing

Imagick::previewImages

(PECL imagick 2, PECL imagick 3)

Imagick::previewImages — Quickly pin-point appropriate parameters for image processing

Descrição

public Imagick::previewImages(int $preview): bool

Tiles 9 thumbnails of the specified image with an image processing operation applied at varying strengths. This is helpful to quickly pin-point an appropriate parameter for an image processing operation.

Parâmetros

preview

Preview type. See Preview type constants

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Move to the previous image in the object

  • « Imagick::previewImages
  • Imagick::profileImage »
  • PHP Manual
  • Imagick
  • Move to the previous image in the object

Imagick::previousImage

(PECL imagick 2, PECL imagick 3)

Imagick::previousImage — Move to the previous image in the object

Descrição

public Imagick::previousImage(): bool

Associates the previous image in an image list with the Imagick object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Adds or removes a profile from an image

  • « Imagick::previousImage
  • Imagick::quantizeImage »
  • PHP Manual
  • Imagick
  • Adds or removes a profile from an image

Imagick::profileImage

(PECL imagick 2, PECL imagick 3)

Imagick::profileImage — Adds or removes a profile from an image

Descrição

public Imagick::profileImage(string $name, ?string $profile): bool

Adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

Parâmetros

name

profile

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Analyzes the colors within a reference image

  • « Imagick::profileImage
  • Imagick::quantizeImages »
  • PHP Manual
  • Imagick
  • Analyzes the colors within a reference image

Imagick::quantizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::quantizeImage — Analyzes the colors within a reference image

Descrição

public Imagick::quantizeImage(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool

Parâmetros

numberColors

colorspace

treedepth

dither

measureError

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::quantizeImage()

<?php
function quantizeImage($imagePath, $numberColors, $colorSpace, $treeDepth, $dither) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->quantizeImage($numberColors, $colorSpace, $treeDepth, $dither, false);
$imagick->setImageFormat('png');
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Analyzes the colors within a sequence of images

  • « Imagick::quantizeImage
  • Imagick::queryFontMetrics »
  • PHP Manual
  • Imagick
  • Analyzes the colors within a sequence of images

Imagick::quantizeImages

(PECL imagick 2, PECL imagick 3)

Imagick::quantizeImages — Analyzes the colors within a sequence of images

Descrição

public Imagick::quantizeImages(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool

Parâmetros

numberColors

colorspace

treedepth

dither

measureError

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Returns an array representing the font metrics

  • « Imagick::quantizeImages
  • Imagick::queryFonts »
  • PHP Manual
  • Imagick
  • Returns an array representing the font metrics

Imagick::queryFontMetrics

(PECL imagick 2, PECL imagick 3)

Imagick::queryFontMetrics — Returns an array representing the font metrics

Descrição

public Imagick::queryFontMetrics(ImagickDraw $properties, string $text, bool $multiline = ?): array

Returns a multi-dimensional array representing the font metrics.

Parâmetros

properties

ImagickDraw object containing font properties

text

The text

multiline

Multiline parameter. If left empty it is autodetected

Valor Retornado

Returns a multi-dimensional array representing the font metrics.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::queryFontMetrics():

Query the metrics for the text and dump the results on the screen.

<?php
/* Create a new Imagick object */
$im = new Imagick();

/* Create an ImagickDraw object */
$draw = new ImagickDraw();

/* Set the font */
$draw->setFont('/path/to/font.ttf');

/* Dump the font metrics, autodetect multiline */
var_dump($im->queryFontMetrics($draw, "Hello World!"));
?>


Returns the configured fonts

  • « Imagick::queryFontMetrics
  • Imagick::queryFormats »
  • PHP Manual
  • Imagick
  • Returns the configured fonts

Imagick::queryFonts

(PECL imagick 2, PECL imagick 3)

Imagick::queryFonts — Returns the configured fonts

Descrição

public static Imagick::queryFonts(string $pattern = "*"): array

Returns the configured fonts.

Parâmetros

pattern

The query pattern

Valor Retornado

Returns an array containing the configured fonts.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::queryFonts()

<?php
$output = '';
$output .= "Fonts that match 'Helvetica*' are:<br/>";

$fontList = \Imagick::queryFonts("Helvetica*");

foreach ($fontList as $fontName) {
$output .= '<li>'. $fontName."</li>";
}

return $output;

?>


Returns formats supported by Imagick

  • « Imagick::queryFonts
  • Imagick::radialBlurImage »
  • PHP Manual
  • Imagick
  • Returns formats supported by Imagick

Imagick::queryFormats

(PECL imagick 2, PECL imagick 3)

Imagick::queryFormats — Returns formats supported by Imagick

Descrição

public static Imagick::queryFormats(string $pattern = "*"): array

Returns formats supported by Imagick.

Parâmetros

pattern

Valor Retornado

Returns an array containing the formats supported by Imagick.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::queryFormats()

<?php
function render() {
$output = "";
$input = \Imagick::queryformats();
$columns = 6;

$output .= "<table border='2'>";

for ($i=0; $i < count($input); $i += $columns) {
$output .= "<tr>";
for ($c=0; $c<$columns; $c++) {
$output .= "<td>";
if (($i + $c) < count($input)) {
$output .= $input[$i + $c];
}
$output .= "</td>";
}
$output .= "</tr>";
}

$output .= "</table>";

return $output;
}

?>


Radial blurs an image

  • « Imagick::queryFormats
  • Imagick::raiseImage »
  • PHP Manual
  • Imagick
  • Radial blurs an image

Imagick::radialBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::radialBlurImage — Radial blurs an image

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::radialBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool

Radial blurs an image.

Parâmetros

angle

channel

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::radialBlurImage()

<?php
function radialBlurImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
//Blur 3 times with different radii
$imagick->radialBlurImage(3);
$imagick->radialBlurImage(5);
$imagick->radialBlurImage(7);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Creates a simulated 3d button-like effect

  • « Imagick::radialBlurImage
  • Imagick::randomThresholdImage »
  • PHP Manual
  • Imagick
  • Creates a simulated 3d button-like effect

Imagick::raiseImage

(PECL imagick 2, PECL imagick 3)

Imagick::raiseImage — Creates a simulated 3d button-like effect

Descrição

public Imagick::raiseImage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): bool

Creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

Parâmetros

width

height

x

y

raise

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::raiseImage()

<?php
function raiseImage($imagePath, $width, $height, $x, $y, $raise) {
$imagick = new \Imagick(realpath($imagePath));

//x and y do nothing?
$imagick->raiseImage($width, $height, $x, $y, $raise);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Creates a high-contrast, two-color image

  • « Imagick::raiseImage
  • Imagick::readImage »
  • PHP Manual
  • Imagick
  • Creates a high-contrast, two-color image

Imagick::randomThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::randomThresholdImage — Creates a high-contrast, two-color image

Descrição

public Imagick::randomThresholdImage(float $low, float $high, int $channel = Imagick::CHANNEL_DEFAULT): bool

Changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

low

The low point

high

The high point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::randomThresholdImage()

<?php
function randomThresholdimage($imagePath, $lowThreshold, $highThreshold, $channel) {
$imagick = new \Imagick(realpath($imagePath));

$imagick->randomThresholdimage(
$lowThreshold * \Imagick::getQuantum(),
$highThreshold * \Imagick::getQuantum(),
$channel
);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Reads image from filename

  • « Imagick::randomThresholdImage
  • Imagick::readImageBlob »
  • PHP Manual
  • Imagick
  • Reads image from filename

Imagick::readImage

(PECL imagick 2, PECL imagick 3)

Imagick::readImage — Reads image from filename

Descrição

public Imagick::readImage(string $filename): bool

Reads image from filename

Parâmetros

filename

Valor Retornado

Retorna true em caso de sucesso.


Reads image from a binary string

  • « Imagick::readImage
  • Imagick::readImageFile »
  • PHP Manual
  • Imagick
  • Reads image from a binary string

Imagick::readImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::readImageBlob — Reads image from a binary string

Descrição

public Imagick::readImageBlob(string $image, string $filename = ?): bool

Reads image from a binary string

Parâmetros

image

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::readImageBlob()

<?php
function readImageBlob() {
$base64 = "iVBORw0KGgoAAAANSUhEUgAAAM0AAAD
NCAMAAAAsYgRbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5c
cllPAAAABJQTFRF3NSmzMewPxIG//ncJEJsldTou1jHgAAAARBJREFUeNrs2EEK
gCAQBVDLuv+V20dENbMY831wKz4Y/VHb/5RGQ0NDQ0NDQ0NDQ0NDQ0NDQ
0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0PzMWtyaGhoaGhoaGhoaGhoaGhoxtb0QGho
aGhoaGhoaGhoaGhoaMbRLEvv50VTQ9OTQ5OpyZ01GpM2g0bfmDQaL7S+ofFC6x
v3ZpxJiywakzbvd9r3RWPS9I2+MWk0+kbf0Hih9Y17U0nTHibrDDQ0NDQ0NDQ0
NDQ0NDQ0NTXbRSL/AK72o6GhoaGhoRlL8951vwsNDQ0NDQ1NDc0WyHtDTEhD
Q0NDQ0NTS5MdGhoaGhoaGhoaGhoaGhoaGhoaGhoaGposzSHAAErMwwQ2HwRQ
AAAAAElFTkSuQmCC";

$imageBlob = base64_decode($base64);

$imagick = new Imagick();
$imagick->readImageBlob($imageBlob);

header("Content-Type: image/png");
echo $imagick;
}

?>


Reads image from open filehandle

  • « Imagick::readImageBlob
  • Imagick::readimages »
  • PHP Manual
  • Imagick
  • Reads image from open filehandle

Imagick::readImageFile

(PECL imagick 2, PECL imagick 3)

Imagick::readImageFile — Reads image from open filehandle

Descrição

public Imagick::readImageFile(resource $filehandle, string $fileName = null): bool

Reads image from open filehandle

Parâmetros

filehandle

fileName

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Reads image from an array of filenames

  • « Imagick::readImageFile
  • Imagick::recolorImage »
  • PHP Manual
  • Imagick
  • Reads image from an array of filenames

Imagick::readimages

(PECL imagick 2, PECL imagick 3)

Imagick::readimages — Reads image from an array of filenames

Descrição

public Imagick::readImages(array $filenames): bool

Reads image from an array of filenames. All the images are held in a single Imagick object.

Parâmetros

filenames

Valor Retornado

Retorna true em caso de sucesso.


Recolors image

  • « Imagick::readimages
  • Imagick::reduceNoiseImage »
  • PHP Manual
  • Imagick
  • Recolors image

Imagick::recolorImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::recolorImage — Recolors image

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::recolorImage(array $matrix): bool

Translate, scale, shear, or rotate image colors. This method supports variable sized matrices but normally 5x5 matrix is used for RGBA and 6x6 is used for CMYK. The last row should contain the normalized values. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

matrix

The matrix containing the color values

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::recolorImage()

<?php
function recolorImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$remapColor = [ 1, 0, 0,
0, 0, 1,
0, 1, 0,];

//$remapColor = [
// 1.438, -0.122, -0.016, 0, 0, -0.03,
// -0.062, 1.378, -0.016, 0, 0, 0.05,
// -0.062, -0.122, 1.483, 0, 0, -0.02,
//];

@$imagick->recolorImage($remapColor);

header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>

Veja Também

  • Imagick::displayImage() - Displays an image


Smooths the contours of an image

  • « Imagick::recolorImage
  • Imagick::remapImage »
  • PHP Manual
  • Imagick
  • Smooths the contours of an image

Imagick::reduceNoiseImage

(PECL imagick 2, PECL imagick 3)

Imagick::reduceNoiseImage — Smooths the contours of an image

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::reduceNoiseImage(float $radius): bool

Smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and Imagick::reduceNoiseImage() selects a suitable radius for you.

Parâmetros

radius

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::reduceNoiseImage()

<?php
function reduceNoiseImage($imagePath, $reduceNoise) {
$imagick = new \Imagick(realpath($imagePath));
@$imagick->reduceNoiseImage($reduceNoise);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Remaps image colors

  • « Imagick::reduceNoiseImage
  • Imagick::removeImage »
  • PHP Manual
  • Imagick
  • Remaps image colors

Imagick::remapImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::remapImage — Remaps image colors

Descrição

public Imagick::remapImage(Imagick $replacement, int $DITHER): bool

Replaces colors an image with those defined by replacement. The colors are replaced with the closest possible color. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.5 ou superior.

Parâmetros

replacement

An Imagick object containing the replacement colors

DITHER

Refer to this list of dither method constants

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Removes an image from the image list

  • « Imagick::remapImage
  • Imagick::removeImageProfile »
  • PHP Manual
  • Imagick
  • Removes an image from the image list

Imagick::removeImage

(PECL imagick 2, PECL imagick 3)

Imagick::removeImage — Removes an image from the image list

Descrição

public Imagick::removeImage(): bool

Removes an image from the image list.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Removes the named image profile and returns it

  • « Imagick::removeImage
  • Imagick::render »
  • PHP Manual
  • Imagick
  • Removes the named image profile and returns it

Imagick::removeImageProfile

(PECL imagick 2, PECL imagick 3)

Imagick::removeImageProfile — Removes the named image profile and returns it

Descrição

public Imagick::removeImageProfile(string $name): string

Removes the named image profile and returns it.

Parâmetros

name

Valor Retornado

Returns a string containing the profile of the image.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Renders all preceding drawing commands

  • « Imagick::removeImageProfile
  • Imagick::resampleImage »
  • PHP Manual
  • Imagick
  • Renders all preceding drawing commands

Imagick::render

(PECL imagick 2, PECL imagick 3)

Imagick::render — Renders all preceding drawing commands

Descrição

public Imagick::render(): bool

Renders all preceding drawing commands.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Resample image to desired resolution

  • « Imagick::render
  • Imagick::resetImagePage »
  • PHP Manual
  • Imagick
  • Resample image to desired resolution

Imagick::resampleImage

(PECL imagick 2, PECL imagick 3)

Imagick::resampleImage — Resample image to desired resolution

Descrição

public Imagick::resampleImage(
float $x_resolution,
float $y_resolution,
int $filter,
float $blur
): bool

Resample image to desired resolution.

Parâmetros

x_resolution

y_resolution

filter

blur

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::resampleImage()

<?php
function resampleImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));

$imagick->resampleImage(200, 200, \Imagick::FILTER_LANCZOS, 1);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Reset image page

  • « Imagick::resampleImage
  • Imagick::resizeImage »
  • PHP Manual
  • Imagick
  • Reset image page

Imagick::resetImagePage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::resetImagePage — Reset image page

Descrição

public Imagick::resetImagePage(string $page): bool

The page definition as a string. The string is in format WxH+x+y. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

page

The page definition. For example 7168x5147+0+0

Valor Retornado

Retorna true em caso de sucesso.


Scales an image

  • « Imagick::resetImagePage
  • Imagick::rollImage »
  • PHP Manual
  • Imagick
  • Scales an image

Imagick::resizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::resizeImage — Scales an image

Descrição

public Imagick::resizeImage(
int $columns,
int $rows,
int $filter,
float $blur,
bool $bestfit = false,
bool $legacy = false
): bool

Scales an image to the desired dimensions with a filter.

Nota: O comportamento do parâmetro bestfit mudou na Imagick 3.0.0. Antes desta versão, dadas as dimensões 400x400, uma imagem de dimensões 200x150 permaneceria intocada. Na Imagick 3.0.0 e superiores, a imagem será escalada para 400x300, pois este é o "melhor ajuste" para as dimensões fornecidas. Se o parâmetro bestfit for usado, tanto a largura quanto a altura devem ser informadas.

Parâmetros

columns

Width of the image

rows

Height of the image

filter

Refer to the list of filter constants.

blur

The blur factor where > 1 is blurry, < 1 is sharp.

bestfit

Optional fit parameter.

Valor Retornado

Retorna true em caso de sucesso.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Exemplos

Exemplo #1 Imagick::resizeImage()

<?php
function resizeImage($imagePath, $width, $height, $filterType, $blur, $bestFit, $cropZoom) {
//The blur factor where > 1 is blurry, < 1 is sharp.
$imagick = new \Imagick(realpath($imagePath));

$imagick->resizeImage($width, $height, $filterType, $blur, $bestFit);

$cropWidth = $imagick->getImageWidth();
$cropHeight = $imagick->getImageHeight();

if ($cropZoom) {
$newWidth = $cropWidth / 2;
$newHeight = $cropHeight / 2;

$imagick->cropimage(
$newWidth,
$newHeight,
($cropWidth - $newWidth) / 2,
($cropHeight - $newHeight) / 2
);

$imagick->scaleimage(
$imagick->getImageWidth() * 4,
$imagick->getImageHeight() * 4
);
}

header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Offsets an image

  • « Imagick::resizeImage
  • Imagick::rotateImage »
  • PHP Manual
  • Imagick
  • Offsets an image

Imagick::rollImage

(PECL imagick 2, PECL imagick 3)

Imagick::rollImage — Offsets an image

Descrição

public Imagick::rollImage(int $x, int $y): bool

Offsets an image as defined by x and y.

Parâmetros

x

The X offset.

y

The Y offset.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::rollImage()

<?php
function rollImage($imagePath, $rollX, $rollY) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->rollimage($rollX, $rollY);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Rotates an image

  • « Imagick::rollImage
  • Imagick::rotationalBlurImage »
  • PHP Manual
  • Imagick
  • Rotates an image

Imagick::rotateImage

(PECL imagick 2, PECL imagick 3)

Imagick::rotateImage — Rotates an image

Descrição

public Imagick::rotateImage(mixed $background, float $degrees): bool

Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

Parâmetros

background

The background color

degrees

Rotation angle, in degrees. The rotation angle is interpreted as the number of degrees to rotate the image clockwise.

Valor Retornado

Retorna true em caso de sucesso.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Exemplos

Exemplo #1 Imagick::rotateImage()

<?php
function rotateImage($imagePath, $angle, $color) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->rotateimage($color, $angle);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Rotational blurs an image

  • « Imagick::rotateImage
  • Imagick::roundCorners »
  • PHP Manual
  • Imagick
  • Rotational blurs an image

Imagick::rotationalBlurImage

(PECL imagick 3 >= 3.3.0)

Imagick::rotationalBlurImage — Rotational blurs an image

Descrição

public Imagick::rotationalBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool

Rotational blurs an image.

Parâmetros

angle

The angle to apply the blur over.

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::rotationalBlurImage()

<?php
function rotationalBlurImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->rotationalBlurImage(3);
$imagick->rotationalBlurImage(5);
$imagick->rotationalBlurImage(7);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Rounds image corners

  • « Imagick::rotationalBlurImage
  • Imagick::sampleImage »
  • PHP Manual
  • Imagick
  • Rounds image corners

Imagick::roundCorners

(PECL imagick 2, PECL imagick 3)

Imagick::roundCorners — Rounds image corners

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::roundCorners(
float $x_rounding,
float $y_rounding,
float $stroke_width = 10,
float $displace = 5,
float $size_correction = -6
): bool

Rounds image corners. The first two parameters control the amount of rounding and the three last parameters can be used to fine-tune the rounding process. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior. Este método não estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 7.0.0 ou superior.

Parâmetros

x_rounding

x rounding

y_rounding

y rounding

stroke_width

stroke width

displace

image displace

size_correction

size correction

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Using Imagick::roundCorners():

Rounds the image corners

<?php

$image = new Imagick();
$image->newPseudoImage(100, 100, "magick:rose");
$image->setImageFormat("png");

$image->roundCorners(5,3);
$image->writeImage("rounded.png");
?>


Scales an image with pixel sampling

  • « Imagick::roundCorners
  • Imagick::scaleImage »
  • PHP Manual
  • Imagick
  • Scales an image with pixel sampling

Imagick::sampleImage

(PECL imagick 2, PECL imagick 3)

Imagick::sampleImage — Scales an image with pixel sampling

Descrição

public Imagick::sampleImage(int $columns, int $rows): bool

Scales an image to the desired dimensions with pixel sampling. Unlike other scaling methods, this method does not introduce any additional color into the scaled image.

Parâmetros

columns

rows

Valor Retornado

Retorna true em caso de sucesso.


Scales the size of an image

  • « Imagick::sampleImage
  • Imagick::segmentImage »
  • PHP Manual
  • Imagick
  • Scales the size of an image

Imagick::scaleImage

(PECL imagick 2, PECL imagick 3)

Imagick::scaleImage — Scales the size of an image

Descrição

public Imagick::scaleImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $legacy = false
): bool

Scales the size of an image to the given dimensions. The other parameter will be calculated if 0 is passed as either param.

Nota: O comportamento do parâmetro bestfit mudou na Imagick 3.0.0. Antes desta versão, dadas as dimensões 400x400, uma imagem de dimensões 200x150 permaneceria intocada. Na Imagick 3.0.0 e superiores, a imagem será escalada para 400x300, pois este é o "melhor ajuste" para as dimensões fornecidas. Se o parâmetro bestfit for usado, tanto a largura quanto a altura devem ser informadas.

Parâmetros

columns

rows

bestfit

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Exemplos

Exemplo #1 Imagick::scaleImage()

<?php
function scaleImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->scaleImage(150, 150, true);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Segments an image

  • « Imagick::scaleImage
  • Imagick::selectiveBlurImage »
  • PHP Manual
  • Imagick
  • Segments an image

Imagick::segmentImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::segmentImage — Segments an image

Descrição

public Imagick::segmentImage(
int $COLORSPACE,
float $cluster_threshold,
float $smooth_threshold,
bool $verbose = false
): bool

Analyses the image and identifies units that are similar. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.5 ou superior.

Parâmetros

COLORSPACE

One of the COLORSPACE constants.

cluster_threshold

A percentage describing minimum number of pixels contained in hexedra before it is considered valid.

smooth_threshold

Eliminates noise from the histogram.

verbose

Whether to output detailed information about recognised classes.

Valor Retornado

Exemplos

Exemplo #1 Imagick::segmentImage()

<?php
function segmentImage($imagePath, $colorSpace, $clusterThreshold, $smoothThreshold) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->segmentImage($colorSpace, $clusterThreshold, $smoothThreshold);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

segmentImage($imagePath, \Imagick::COLORSPACE_RGB, 5, 5);

?>


Selectively blur an image within a contrast threshold

  • « Imagick::segmentImage
  • Imagick::separateImageChannel »
  • PHP Manual
  • Imagick
  • Selectively blur an image within a contrast threshold

Imagick::selectiveBlurImage

(PECL imagick 3 >= 3.3.0)

Imagick::selectiveBlurImage — Selectively blur an image within a contrast threshold

Descrição

public Imagick::selectiveBlurImage(
float $radius,
float $sigma,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Selectively blur an image within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.

Parâmetros

radius

sigma

threshold

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::selectiveBlurImage()

<?php
function selectiveBlurImage($imagePath, $radius, $sigma, $threshold, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->selectiveBlurImage($radius, $sigma, $threshold, $channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Separates a channel from the image

  • « Imagick::selectiveBlurImage
  • Imagick::sepiaToneImage »
  • PHP Manual
  • Imagick
  • Separates a channel from the image

Imagick::separateImageChannel

(PECL imagick 2, PECL imagick 3)

Imagick::separateImageChannel — Separates a channel from the image

Descrição

public Imagick::separateImageChannel(int $channel): bool

Separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

Parâmetros

channel

Which 'channel' to return. For colorspaces other than RGB, you can still use the CHANNEL_RED, CHANNEL_GREEN, CHANNEL_BLUE constants to indicate the 1st, 2nd and 3rd channels.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::separateImageChannel()

<?php
function separateImageChannel($imagePath, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->separateimagechannel($channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

separateImageChannel($imagePath, \Imagick::CHANNEL_GREEN);

?>


Sepia tones an image

  • « Imagick::separateImageChannel
  • Imagick::setBackgroundColor »
  • PHP Manual
  • Imagick
  • Sepia tones an image

Imagick::sepiaToneImage

(PECL imagick 2, PECL imagick 3)

Imagick::sepiaToneImage — Sepia tones an image

Descrição

public Imagick::sepiaToneImage(float $threshold): bool

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by sepia toning. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the sepia toning. A threshold of 80 is a good starting point for a reasonable tone.

Parâmetros

threshold

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::sepiaToneImage()

<?php
function sepiaToneImage($imagePath, $sepia) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->sepiaToneImage($sepia);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Sets the object's default background color

  • « Imagick::sepiaToneImage
  • Imagick::setColorspace »
  • PHP Manual
  • Imagick
  • Sets the object's default background color

Imagick::setBackgroundColor

(PECL imagick 2, PECL imagick 3)

Imagick::setBackgroundColor — Sets the object's default background color

Descrição

public Imagick::setBackgroundColor(mixed $background): bool

Sets the object's default background color.

Parâmetros

background

Valor Retornado

Retorna true em caso de sucesso.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.


Set colorspace

  • « Imagick::setBackgroundColor
  • Imagick::setCompression »
  • PHP Manual
  • Imagick
  • Set colorspace

Imagick::setColorspace

(PECL imagick 3)

Imagick::setColorspace — Set colorspace

Descrição

public Imagick::setColorspace(int $COLORSPACE): bool

Sets the global colorspace value for the object. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.5.7 ou superior.

Parâmetros

COLORSPACE

One of the COLORSPACE constants

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the object's default compression type

  • « Imagick::setColorspace
  • Imagick::setCompressionQuality »
  • PHP Manual
  • Imagick
  • Sets the object's default compression type

Imagick::setCompression

(PECL imagick 2, PECL imagick 3)

Imagick::setCompression — Sets the object's default compression type

Descrição

public Imagick::setCompression(int $compression): bool

Sets the object's default compression type

Parâmetros

compression

The compression type. See the Imagick::COMPRESSION_* constants.

Valor Retornado

Retorna true em caso de sucesso.


Sets the object's default compression quality

  • « Imagick::setCompression
  • Imagick::setFilename »
  • PHP Manual
  • Imagick
  • Sets the object's default compression quality

Imagick::setCompressionQuality

(PECL imagick 2, PECL imagick 3)

Imagick::setCompressionQuality — Sets the object's default compression quality

Descrição

public Imagick::setCompressionQuality(int $quality): bool

Sets the object's default compression quality.

Cuidado

This method only works for new images e.g. those created through Imagick::newPseudoImage. For existing images you should use Imagick::setImageCompressionQuality().

Parâmetros

quality

An int between 1 and 100, 1 = high compression, 100 low compression.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::setCompressionQuality()

<?php
function setCompressionQuality($imagePath, $quality) {

$backgroundImagick = new \Imagick(realpath($imagePath));
$imagick = new \Imagick();
$imagick->setCompressionQuality($quality);
$imagick->newPseudoImage(
$backgroundImagick->getImageWidth(),
$backgroundImagick->getImageHeight(),
'canvas:white'
);

$imagick->compositeImage(
$backgroundImagick,
\Imagick::COMPOSITE_ATOP,
0,
0
);

$imagick->setFormat("jpg");
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Sets the filename before you read or write the image

  • « Imagick::setCompressionQuality
  • Imagick::setFirstIterator »
  • PHP Manual
  • Imagick
  • Sets the filename before you read or write the image

Imagick::setFilename

(PECL imagick 2, PECL imagick 3)

Imagick::setFilename — Sets the filename before you read or write the image

Descrição

public Imagick::setFilename(string $filename): bool

Sets the filename before you read or write an image file.

Parâmetros

filename

Valor Retornado

Retorna true em caso de sucesso.


Sets the Imagick iterator to the first image

  • « Imagick::setFilename
  • Imagick::setFont »
  • PHP Manual
  • Imagick
  • Sets the Imagick iterator to the first image

Imagick::setFirstIterator

(PECL imagick 2, PECL imagick 3)

Imagick::setFirstIterator — Sets the Imagick iterator to the first image

Descrição

public Imagick::setFirstIterator(): bool

Sets the Imagick iterator to the first image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Sets font

  • « Imagick::setFirstIterator
  • Imagick::setFormat »
  • PHP Manual
  • Imagick
  • Sets font

Imagick::setFont

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::setFont — Sets font

Descrição

public Imagick::setFont(string $font): bool

Sets object's font property. This method can be used for example to set font for caption: pseudo-format. The font needs to be configured in ImageMagick configuration or a file by the name of font must exist. This method should not be confused with ImagickDraw::setFont() which sets the font for a specific ImagickDraw object. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.7 ou superior.

Parâmetros

font

Font name or a filename

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 A Imagick::setFont() example

Example of using Imagick::setFont

<?php
/* Create new imagick object */
$im = new Imagick();

/* Set the font for the object */
$im->setFont("example.ttf");

/* Create new caption */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Do something with the image */
?>

Veja Também

  • Imagick::getFont() - Gets font
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text
  • ImagickDraw::getFont() - Returns the font


Sets the format of the Imagick object

  • « Imagick::setFont
  • Imagick::setGravity »
  • PHP Manual
  • Imagick
  • Sets the format of the Imagick object

Imagick::setFormat

(PECL imagick 2, PECL imagick 3)

Imagick::setFormat — Sets the format of the Imagick object

Descrição

public Imagick::setFormat(string $format): bool

Sets the format of the Imagick object.

Parâmetros

format

Valor Retornado

Retorna true em caso de sucesso.


Sets the gravity

  • « Imagick::setFormat
  • Imagick::setImage »
  • PHP Manual
  • Imagick
  • Sets the gravity

Imagick::setGravity

(PECL imagick 2 >= 2.2.0, PECL imagick 3)

Imagick::setGravity — Sets the gravity

Descrição

public Imagick::setGravity(int $gravity): bool

Sets the global gravity property for the Imagick object. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.0 ou superior.

Parâmetros

gravity

The gravity property. Refer to the list of gravity constants.

Valor Retornado

Nenhum valor é retornado.


Replaces image in the object

  • « Imagick::setGravity
  • Imagick::setImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Replaces image in the object

Imagick::setImage

(PECL imagick 2, PECL imagick 3)

Imagick::setImage — Replaces image in the object

Descrição

public Imagick::setImage(Imagick $replace): bool

Replaces the current image sequence with the image from replace object.

Parâmetros

replace

The replace Imagick object

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 A Imagick::setImage() example

An example of using Imagick::setImage()

<?php
/* Create the objects */
$image = new Imagick('source.jpg');
$replace = new Imagick('replace.jpg');

/* source.jpg is replaced with replace.jpg */
$image->setImage($replace);

/* output the image */
header('Content-type: image/jpeg');
echo $image;

?>


Sets image alpha channel

  • « Imagick::setImage
  • Imagick::setImageArtifact »
  • PHP Manual
  • Imagick
  • Sets image alpha channel

Imagick::setImageAlphaChannel

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::setImageAlphaChannel — Sets image alpha channel

Descrição

public Imagick::setImageAlphaChannel(int $mode): bool

Activate or deactivate image alpha channel. The mode is one of the Imagick::ALPHACHANNEL_* constants. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.8 ou superior.

Parâmetros

mode

One of the Imagick::ALPHACHANNEL_* constants

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Veja Também

  • Imagick::setImageMatte() - Sets the image matte channel
  • Imagick Alpha Channel Constants


Set image artifact

  • « Imagick::setImageAlphaChannel
  • Imagick::setImageAttribute »
  • PHP Manual
  • Imagick
  • Set image artifact

Imagick::setImageArtifact

(PECL imagick 3)

Imagick::setImageArtifact — Set image artifact

Descrição

public Imagick::setImageArtifact(string $artifact, string $value): bool

Associates an artifact with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.5.7 ou superior.

Parâmetros

artifact

The name of the artifact

value

The value of the artifact

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::setImageArtifact()

<?php
function setImageArtifact() {

$src1 = new \Imagick(realpath("./images/artifact/source1.png"));
$src2 = new \Imagick(realpath("./images/artifact/source2.png"));

$src2->setImageVirtualPixelMethod(\Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$src2->setImageArtifact('compose:args', "1,0,-0.5,0.5");
$src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);

$src1->setImageFormat('png');
header("Content-Type: image/png");
echo $src1->getImagesBlob();
}

?>

Veja Também

  • Imagick::getImageArtifact() - Get image artifact
  • Imagick::deleteImageArtifact() - Delete image artifact


Sets an image attribute

  • « Imagick::setImageArtifact
  • Imagick::setImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Sets an image attribute

Imagick::setImageAttribute

(PECL imagick 2, PECL imagick 3)

Imagick::setImageAttribute — Sets an image attribute

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::setImageAttribute(string $key, string $value): bool

Sets an image attribute.

Parâmetros

key

value

Valor Retornado

Retorna true em caso de sucesso.


Sets the image background color

  • « Imagick::setImageAttribute
  • Imagick::setImageBias »
  • PHP Manual
  • Imagick
  • Sets the image background color

Imagick::setImageBackgroundColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBackgroundColor — Sets the image background color

Descrição

public Imagick::setImageBackgroundColor(mixed $background): bool

Sets the image background color.

Parâmetros

background

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the parameter. Previous versions allow only an ImagickPixel object.


Sets the image bias for any method that convolves an image

  • « Imagick::setImageBackgroundColor
  • Imagick::setImageBiasQuantum »
  • PHP Manual
  • Imagick
  • Sets the image bias for any method that convolves an image

Imagick::setImageBias

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBias — Sets the image bias for any method that convolves an image

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::setImageBias(float $bias): bool

Sets the image bias for any method that convolves an image (e.g. Imagick::ConvolveImage()).

Parâmetros

bias

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::setImageBias()

<?php
//requires ImageMagick version 6.9.0-1 to have an effect on convolveImage
function setImageBias($bias) {
$imagick = new \Imagick(realpath("images/stack.jpg"));

$xKernel = array(
-0.70, 0, 0.70,
-0.70, 0, 0.70,
-0.70, 0, 0.70
);

$imagick->setImageBias($bias * \Imagick::getQuantum());
$imagick->convolveImage($xKernel, \Imagick::CHANNEL_ALL);

$imagick->setImageFormat('png');

header('Content-type: image/png');
echo $imagick->getImageBlob();
}

?>


Sets the image bias

  • « Imagick::setImageBias
  • Imagick::setImageBluePrimary »
  • PHP Manual
  • Imagick
  • Sets the image bias

Imagick::setImageBiasQuantum

(PECL imagick 3 >= 3.3.0)

Imagick::setImageBiasQuantum — Sets the image bias

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::setImageBiasQuantum(float $bias): void

Sets the image bias. Bias should be scaled with 0 (no adjustment) to 1 (quantum value).

Parâmetros

bias

Valor Retornado


Sets the image chromaticity blue primary point

  • « Imagick::setImageBiasQuantum
  • Imagick::setImageBorderColor »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity blue primary point

Imagick::setImageBluePrimary

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point

Descrição

public Imagick::setImageBluePrimary(float $x, float $y): bool

Sets the image chromaticity blue primary point.

Parâmetros

x

y

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image border color

  • « Imagick::setImageBluePrimary
  • Imagick::setImageChannelDepth »
  • PHP Manual
  • Imagick
  • Sets the image border color

Imagick::setImageBorderColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBorderColor — Sets the image border color

Descrição

public Imagick::setImageBorderColor(mixed $border): bool

Sets the image border color.

Parâmetros

border

The border color

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.


Sets the depth of a particular image channel

  • « Imagick::setImageBorderColor
  • Imagick::setImageClipMask »
  • PHP Manual
  • Imagick
  • Sets the depth of a particular image channel

Imagick::setImageChannelDepth

(PECL imagick 2, PECL imagick 3)

Imagick::setImageChannelDepth — Sets the depth of a particular image channel

Descrição

public Imagick::setImageChannelDepth(int $channel, int $depth): bool

Sets the depth of a particular image channel.

Parâmetros

channel

depth

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets image clip mask

  • « Imagick::setImageChannelDepth
  • Imagick::setImageColormapColor »
  • PHP Manual
  • Imagick
  • Sets image clip mask

Imagick::setImageClipMask

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::setImageClipMask — Sets image clip mask

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::setImageClipMask(Imagick $clip_mask): bool

Sets image clip mask from another Imagick object. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

clip_mask

The Imagick object containing the clip mask

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::setImageClipMask()

<?php
function setImageClipMask($imagePath) {
$imagick = new \Imagick();
$imagick->readImage(realpath($imagePath));

$width = $imagick->getImageWidth();
$height = $imagick->getImageHeight();

$clipMask = new \Imagick();
$clipMask->newPseudoImage(
$width,
$height,
"canvas:transparent"
);

$draw = new \ImagickDraw();
$draw->setFillColor('white');
$draw->circle(
$width / 2,
$height / 2,
($width / 2) + ($width / 4),
$height / 2
);
$clipMask->drawImage($draw);
$imagick->setImageClipMask($clipMask);

$imagick->negateImage(false);
$imagick->setFormat("png");

header("Content-Type: image/png");
echo $imagick->getImagesBlob();

}

?>


Sets the color of the specified colormap index

  • « Imagick::setImageClipMask
  • Imagick::setImageColorspace »
  • PHP Manual
  • Imagick
  • Sets the color of the specified colormap index

Imagick::setImageColormapColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageColormapColor — Sets the color of the specified colormap index

Descrição

public Imagick::setImageColormapColor(int $index, ImagickPixel $color): bool

Sets the color of the specified colormap index.

Parâmetros

index

color

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image colorspace

  • « Imagick::setImageColormapColor
  • Imagick::setImageCompose »
  • PHP Manual
  • Imagick
  • Sets the image colorspace

Imagick::setImageColorspace

(PECL imagick 2, PECL imagick 3)

Imagick::setImageColorspace — Sets the image colorspace

Descrição

public Imagick::setImageColorspace(int $colorspace): bool

Sets the image colorspace. This method should be used when creating new images. To change the colorspace of an existing image, you should use Imagick::transformImageColorspace().

Parâmetros

colorspace

One of the COLORSPACE constants

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image composite operator

  • « Imagick::setImageColorspace
  • Imagick::setImageCompression »
  • PHP Manual
  • Imagick
  • Sets the image composite operator

Imagick::setImageCompose

(PECL imagick 2, PECL imagick 3)

Imagick::setImageCompose — Sets the image composite operator

Descrição

public Imagick::setImageCompose(int $compose): bool

Sets the image composite operator, useful for specifying how to composite the image thumbnail when using the Imagick::montageImage() method.

Parâmetros

compose

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image compression

  • « Imagick::setImageCompose
  • Imagick::setImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setImageCompression

(PECL imagick 2, PECL imagick 3)

Imagick::setImageCompression — Sets the image compression

Descrição

public Imagick::setImageCompression(int $compression): bool

Parâmetros

compression

One of the COMPRESSION constants

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image compression quality

  • « Imagick::setImageCompression
  • Imagick::setImageDelay »
  • PHP Manual
  • Imagick
  • Sets the image compression quality

Imagick::setImageCompressionQuality

(PECL imagick 2, PECL imagick 3)

Imagick::setImageCompressionQuality — Sets the image compression quality

Descrição

public Imagick::setImageCompressionQuality(int $quality): bool

Sets the image compression quality.

Parâmetros

quality

The image compression quality as an integer

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::setImageCompressionQuality()

<?php
function setImageCompressionQuality($imagePath, $quality) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageCompressionQuality($quality);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Sets the image delay

  • « Imagick::setImageCompressionQuality
  • Imagick::setImageDepth »
  • PHP Manual
  • Imagick
  • Sets the image delay

Imagick::setImageDelay

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDelay — Sets the image delay

Descrição

public Imagick::setImageDelay(int $delay): bool

Sets the image delay. For an animated image this is the amount of time that this frame of the image should be displayed for, before displaying the next frame.

The delay can be set individually for each frame in an image.

Parâmetros

delay

The amount of time expressed in 'ticks' that the image should be displayed for. For animated GIFs there are 100 ticks per second, so a value of 20 would be 20/100 of a second aka 1/5th of a second.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Modify animated Gif with Imagick::setImageDelay()

<?php

// Modify an animated Gif so that it's frames are played at a variable speed,
// varying between being shown for 50ms down to 0ms, which will cause the frame
// to be skipped in most browsers.
$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$frameCount = 0;

foreach ($imagick as $frame) {
$imagick->setImageDelay((($frameCount % 11) * 5));
$frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/path/to/save/output.gif", true);

?>


Sets the image depth

  • « Imagick::setImageDelay
  • Imagick::setImageDispose »
  • PHP Manual
  • Imagick
  • Sets the image depth

Imagick::setImageDepth

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDepth — Sets the image depth

Descrição

public Imagick::setImageDepth(int $depth): bool

Sets the image depth.

Parâmetros

depth

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image disposal method

  • « Imagick::setImageDepth
  • Imagick::setImageExtent »
  • PHP Manual
  • Imagick
  • Sets the image disposal method

Imagick::setImageDispose

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDispose — Sets the image disposal method

Descrição

public Imagick::setImageDispose(int $dispose): bool

Sets the image disposal method.

Parâmetros

dispose

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image size

  • « Imagick::setImageDispose
  • Imagick::setImageFilename »
  • PHP Manual
  • Imagick
  • Sets the image size

Imagick::setImageExtent

(PECL imagick 2, PECL imagick 3)

Imagick::setImageExtent — Sets the image size

Descrição

public Imagick::setImageExtent(int $columns, int $rows): bool

Sets the image size (i.e. columns & rows).

Parâmetros

columns

rows

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the filename of a particular image

  • « Imagick::setImageExtent
  • Imagick::setImageFormat »
  • PHP Manual
  • Imagick
  • Sets the filename of a particular image

Imagick::setImageFilename

(PECL imagick 2, PECL imagick 3)

Imagick::setImageFilename — Sets the filename of a particular image

Descrição

public Imagick::setImageFilename(string $filename): bool

Sets the filename of a particular image in a sequence.

Parâmetros

filename

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the format of a particular image

  • « Imagick::setImageFilename
  • Imagick::setImageGamma »
  • PHP Manual
  • Imagick
  • Sets the format of a particular image

Imagick::setImageFormat

(PECL imagick 2, PECL imagick 3)

Imagick::setImageFormat — Sets the format of a particular image

Descrição

public Imagick::setImageFormat(string $format): bool

Sets the format of a particular image in a sequence.

Parâmetros

format

String presentation of the image format. Format support depends on the ImageMagick installation.

Valor Retornado

Retorna true em caso de sucesso.


Sets the image gamma

  • « Imagick::setImageFormat
  • Imagick::setImageGravity »
  • PHP Manual
  • Imagick
  • Sets the image gamma

Imagick::setImageGamma

(PECL imagick 2, PECL imagick 3)

Imagick::setImageGamma — Sets the image gamma

Descrição

public Imagick::setImageGamma(float $gamma): bool

Sets the image gamma.

Parâmetros

gamma

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image gravity

  • « Imagick::setImageGamma
  • Imagick::setImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Sets the image gravity

Imagick::setImageGravity

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::setImageGravity — Sets the image gravity

Descrição

public Imagick::setImageGravity(int $gravity): bool

Sets the gravity property for the current image. This method can be used to set the gravity property for a single image sequence. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.4 ou superior.

Parâmetros

gravity

The gravity property. Refer to the list of gravity constants.

Valor Retornado

Nenhum valor é retornado.


Sets the image chromaticity green primary point

  • « Imagick::setImageGravity
  • Imagick::setImageIndex »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity green primary point

Imagick::setImageGreenPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point

Descrição

public Imagick::setImageGreenPrimary(float $x, float $y): bool

Sets the image chromaticity green primary point.

Parâmetros

x

y

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Set the iterator position

  • « Imagick::setImageGreenPrimary
  • Imagick::setImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Set the iterator position

Imagick::setImageIndex

(PECL imagick 2, PECL imagick 3)

Imagick::setImageIndex — Set the iterator position

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::setImageIndex(int $index): bool

Set the iterator to the position in the image list specified with the index parameter.

This method has been deprecated. See Imagick::setIteratorIndex().

Parâmetros

index

The position to set the iterator to

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image compression

  • « Imagick::setImageIndex
  • Imagick::setImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setImageInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::setImageInterlaceScheme — Sets the image compression

Descrição

public Imagick::setImageInterlaceScheme(int $interlace_scheme): bool

Sets the image compression.

Parâmetros

interlace_scheme

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image interpolate pixel method

  • « Imagick::setImageInterlaceScheme
  • Imagick::setImageIterations »
  • PHP Manual
  • Imagick
  • Sets the image interpolate pixel method

Imagick::setImageInterpolateMethod

(PECL imagick 2, PECL imagick 3)

Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method

Descrição

public Imagick::setImageInterpolateMethod(int $method): bool

Sets the image interpolate pixel method.

Parâmetros

method

The method is one of the Imagick::INTERPOLATE_* constants

Valor Retornado

Retorna true em caso de sucesso.


Sets the image iterations

  • « Imagick::setImageInterpolateMethod
  • Imagick::setImageMatte »
  • PHP Manual
  • Imagick
  • Sets the image iterations

Imagick::setImageIterations

(PECL imagick 2, PECL imagick 3)

Imagick::setImageIterations — Sets the image iterations

Descrição

public Imagick::setImageIterations(int $iterations): bool

Sets the number of iterations an animated image is repeated.

Parâmetros

iterations

The number of iterations the image should loop over. Set to '0' to loop continuously.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Basic Imagick::setImageIterations() usage

<?php

$imagick = new Imagick(realpath("Test.gif"));

$imagick = $imagick->coalesceImages();
$imagick->setImageIterations(1);
$imagick = $imagick->deconstructImages();

$imagick->writeImages('/path/to/save/OnceOnly.gif', true);

?>


Sets the image matte channel

  • « Imagick::setImageIterations
  • Imagick::setImageMatteColor »
  • PHP Manual
  • Imagick
  • Sets the image matte channel

Imagick::setImageMatte

(PECL imagick 2, PECL imagick 3)

Imagick::setImageMatte — Sets the image matte channel

Descrição

public Imagick::setImageMatte(bool $matte): bool

Sets the image matte channel. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

matte

True activates the matte channel and false disables it.

Valor Retornado

Retorna true em caso de sucesso.


Sets the image matte color

  • « Imagick::setImageMatte
  • Imagick::setImageOpacity »
  • PHP Manual
  • Imagick
  • Sets the image matte color

Imagick::setImageMatteColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageMatteColor — Sets the image matte color

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::setImageMatteColor(mixed $matte): bool

Sets the image matte color.

Parâmetros

matte

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the parameter. Previous versions allow only an ImagickPixel object.


Sets the image opacity level

  • « Imagick::setImageMatteColor
  • Imagick::setImageOrientation »
  • PHP Manual
  • Imagick
  • Sets the image opacity level

Imagick::setImageOpacity

(PECL imagick 2, PECL imagick 3)

Imagick::setImageOpacity — Sets the image opacity level

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::setImageOpacity(float $opacity): bool

Sets the image to the specified opacity level. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.1 ou superior. This method operates on all channels, which means that for example opacity value of 0.5 will set all transparent areas to partially opaque. To add transparency to areas that are not already transparent use Imagick::evaluateImage()

Parâmetros

opacity

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 A Imagick::setImageOpacity() example

An example of using Imagick::setImageOpacity()

<?php
/* Create the object */
$image = new Imagick('source.png');

/* Set the opacity */
$image->setImageOpacity(0.7);

/* output the image */
header('Content-type: image/png');
echo $image;

?>


Sets the image orientation

  • « Imagick::setImageOpacity
  • Imagick::setImagePage »
  • PHP Manual
  • Imagick
  • Sets the image orientation

Imagick::setImageOrientation

(PECL imagick 2, PECL imagick 3)

Imagick::setImageOrientation — Sets the image orientation

Descrição

public Imagick::setImageOrientation(int $orientation): bool

Sets the image orientation.

Parâmetros

orientation

One of the orientation constants

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::setImageOrientation()

<?php
//Doesn't appear to do anything
function setImageOrientation($imagePath, $orientationType) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageOrientation($orientationType);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Sets the page geometry of the image

  • « Imagick::setImageOrientation
  • Imagick::setImageProfile »
  • PHP Manual
  • Imagick
  • Sets the page geometry of the image

Imagick::setImagePage

(PECL imagick 2, PECL imagick 3)

Imagick::setImagePage — Sets the page geometry of the image

Descrição

public Imagick::setImagePage(
int $width,
int $height,
int $x,
int $y
): bool

Sets the page geometry of the image.

Parâmetros

width

height

x

y

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Adds a named profile to the Imagick object

  • « Imagick::setImagePage
  • Imagick::setImageProperty »
  • PHP Manual
  • Imagick
  • Adds a named profile to the Imagick object

Imagick::setImageProfile

(PECL imagick 2, PECL imagick 3)

Imagick::setImageProfile — Adds a named profile to the Imagick object

Descrição

public Imagick::setImageProfile(string $name, string $profile): bool

Adds a named profile to the Imagick object. If a profile with the same name already exists, it is replaced. This method differs from the Imagick::ProfileImage() method in that it does not apply any CMS color profiles.

Parâmetros

name

profile

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets an image property

  • « Imagick::setImageProfile
  • Imagick::setImageRedPrimary »
  • PHP Manual
  • Imagick
  • Sets an image property

Imagick::setImageProperty

(PECL imagick 2, PECL imagick 3)

Imagick::setImageProperty — Sets an image property

Descrição

public Imagick::setImageProperty(string $name, string $value): bool

Sets a named property to the image. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.2 ou superior.

Parâmetros

name

value

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Using Imagick::setImageProperty():

Setting and getting image properties

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Veja Também

  • Imagick::getImageProperty() - Returns the named image property


Sets the image chromaticity red primary point

  • « Imagick::setImageProperty
  • Imagick::setImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity red primary point

Imagick::setImageRedPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::setImageRedPrimary — Sets the image chromaticity red primary point

Descrição

public Imagick::setImageRedPrimary(float $x, float $y): bool

Sets the image chromaticity red primary point.

Parâmetros

x

y

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image rendering intent

  • « Imagick::setImageRedPrimary
  • Imagick::setImageResolution »
  • PHP Manual
  • Imagick
  • Sets the image rendering intent

Imagick::setImageRenderingIntent

(PECL imagick 2, PECL imagick 3)

Imagick::setImageRenderingIntent — Sets the image rendering intent

Descrição

public Imagick::setImageRenderingIntent(int $rendering_intent): bool

Sets the image rendering intent.

Parâmetros

rendering_intent

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image resolution

  • « Imagick::setImageRenderingIntent
  • Imagick::setImageScene »
  • PHP Manual
  • Imagick
  • Sets the image resolution

Imagick::setImageResolution

(PECL imagick 2, PECL imagick 3)

Imagick::setImageResolution — Sets the image resolution

Descrição

public Imagick::setImageResolution(float $x_resolution, float $y_resolution): bool

Sets the image resolution.

Parâmetros

x_resolution

y_resolution

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::setImageResolution()

<?php
function setImageResolution($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageResolution(50, 50);

header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Sets the image scene

  • « Imagick::setImageResolution
  • Imagick::setImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Sets the image scene

Imagick::setImageScene

(PECL imagick 2, PECL imagick 3)

Imagick::setImageScene — Sets the image scene

Descrição

public Imagick::setImageScene(int $scene): bool

Sets the image scene.

Parâmetros

scene

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image ticks-per-second

  • « Imagick::setImageScene
  • Imagick::setImageType »
  • PHP Manual
  • Imagick
  • Sets the image ticks-per-second

Imagick::setImageTicksPerSecond

(PECL imagick 2, PECL imagick 3)

Imagick::setImageTicksPerSecond — Sets the image ticks-per-second

Descrição

public Imagick::setImageTicksPerSecond(int $ticks_per_second): bool

Adjust the amount of time that a frame of an animated image is displayed for.

Nota:

For animated GIFs, this function does not change the number of 'image ticks' per second, which is always defined as 100. Instead it adjusts the amount of time that the frame is displayed for to simulate the change in 'ticks per second'.

For example, for an animated GIF where each frame is displayed for 20 ticks (1/5 of a second) when this method is called on each frame of that image with an argument of 50 the frames are adjusted to be displayed for 40 ticks (2/5 of a second) and the animation will play at half the original speed.

Parâmetros

ticks_per_second

The duration for which an image should be displayed expressed in ticks per second.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Modify animated Gif with Imagick::setImageTicksPerSecond()

<?php

// Modify an animated gif so the first half of the gif is played at half the
// speed it currently is, and the second half to be played at double the speed
// it currently is

$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$totalFrames = $imagick->getNumberImages();

$frameCount = 0;

foreach ($imagick as $frame) {
$imagick->setImageTicksPerSecond(50);

if ($frameCount < ($totalFrames / 2)) {
// Modify the frame to be displayed for twice as long as it currently is
$imagick->setImageTicksPerSecond(50);
} else {
// Modify the frame to be displayed for half as long as it currently is
$imagick->setImageTicksPerSecond(200);
}

$frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/path/to/save/output.gif", true);

?>


Sets the image type

  • « Imagick::setImageTicksPerSecond
  • Imagick::setImageUnits »
  • PHP Manual
  • Imagick
  • Sets the image type

Imagick::setImageType

(PECL imagick 2, PECL imagick 3)

Imagick::setImageType — Sets the image type

Descrição

public Imagick::setImageType(int $image_type): bool

Sets the image type.

Parâmetros

image_type

Valor Retornado

Retorna true em caso de sucesso.


Sets the image units of resolution

  • « Imagick::setImageType
  • Imagick::setImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Sets the image units of resolution

Imagick::setImageUnits

(PECL imagick 2, PECL imagick 3)

Imagick::setImageUnits — Sets the image units of resolution

Descrição

public Imagick::setImageUnits(int $units): bool

Sets the image units of resolution.

Parâmetros

units

Valor Retornado

Retorna true em caso de sucesso.


Sets the image virtual pixel method

  • « Imagick::setImageUnits
  • Imagick::setImageWhitePoint »
  • PHP Manual
  • Imagick
  • Sets the image virtual pixel method

Imagick::setImageVirtualPixelMethod

(PECL imagick 2, PECL imagick 3)

Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method

Descrição

public Imagick::setImageVirtualPixelMethod(int $method): bool

Sets the image virtual pixel method.

Parâmetros

method

Valor Retornado

Retorna true em caso de sucesso.


Sets the image chromaticity white point

  • « Imagick::setImageVirtualPixelMethod
  • Imagick::setInterlaceScheme »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity white point

Imagick::setImageWhitePoint

(PECL imagick 2, PECL imagick 3)

Imagick::setImageWhitePoint — Sets the image chromaticity white point

Descrição

public Imagick::setImageWhitePoint(float $x, float $y): bool

Sets the image chromaticity white point.

Parâmetros

x

y

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Sets the image compression

  • « Imagick::setImageWhitePoint
  • Imagick::setIteratorIndex »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::setInterlaceScheme — Sets the image compression

Descrição

public Imagick::setInterlaceScheme(int $interlace_scheme): bool

Sets the image compression.

Parâmetros

interlace_scheme

Valor Retornado

Retorna true em caso de sucesso.


Set the iterator position

  • « Imagick::setInterlaceScheme
  • Imagick::setLastIterator »
  • PHP Manual
  • Imagick
  • Set the iterator position

Imagick::setIteratorIndex

(PECL imagick 2, PECL imagick 3)

Imagick::setIteratorIndex — Set the iterator position

Descrição

public Imagick::setIteratorIndex(int $index): bool

Set the iterator to the position in the image list specified with the index parameter. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

index

The position to set the iterator to

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Using Imagick::setIteratorIndex():

Create images, set and get the iterator index

<?php
$im = new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo $im->getIteratorIndex();
?>

Veja Também

  • Imagick::getIteratorIndex() - Gets the index of the current active image
  • Imagick::getImageIndex() - Gets the index of the current active image
  • Imagick::setImageIndex() - Set the iterator position


Sets the Imagick iterator to the last image

  • « Imagick::setIteratorIndex
  • Imagick::setOption »
  • PHP Manual
  • Imagick
  • Sets the Imagick iterator to the last image

Imagick::setLastIterator

(PECL imagick 2 >= 2.0.1, PECL imagick 3)

Imagick::setLastIterator — Sets the Imagick iterator to the last image

Descrição

public Imagick::setLastIterator(): bool

Sets the Imagick iterator to the last image.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Set an option

  • « Imagick::setLastIterator
  • Imagick::setPage »
  • PHP Manual
  • Imagick
  • Set an option

Imagick::setOption

(PECL imagick 2, PECL imagick 3)

Imagick::setOption — Set an option

Descrição

public Imagick::setOption(string $key, string $value): bool

Associates one or more options with the wand.

Parâmetros

key

value

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Attempt to reach '$extent' sizeImagick::setOption()

<?php
function renderJPG($extent) {
$imagePath = $this->control->getImagePath();
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageFormat('jpg');
$imagick->setOption('jpeg:extent', $extent);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>

Exemplo #2 Imagick::setOption()

<?php
function renderPNG($imagePath, $format) {

$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageFormat('png');
$imagick->setOption('png:format', $format);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

//Save as 64bit PNG.
renderPNG($imagePath, 'png64');

?>

Exemplo #3 Imagick::setOption()

<?php
function renderCustomBitDepthPNG() {
$imagePath = $this->control->getImagePath();
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageFormat('png');

$imagick->setOption('png:bit-depth', '16');
$imagick->setOption('png:color-type', 6);
header("Content-Type: image/png");
$crash = true;
if ($crash) {
echo $imagick->getImageBlob();
}
else {
$tempFilename = tempnam('./', 'imagick');
$imagick->writeimage(realpath($tempFilename));
echo file_get_contents($tempFilename);
}
}

?>


Sets the page geometry of the Imagick object

  • « Imagick::setOption
  • Imagick::setPointSize »
  • PHP Manual
  • Imagick
  • Sets the page geometry of the Imagick object

Imagick::setPage

(PECL imagick 2, PECL imagick 3)

Imagick::setPage — Sets the page geometry of the Imagick object

Descrição

public Imagick::setPage(
int $width,
int $height,
int $x,
int $y
): bool

Sets the page geometry of the Imagick object.

Parâmetros

width

height

x

y

Valor Retornado

Retorna true em caso de sucesso.


Sets point size

  • « Imagick::setPage
  • Imagick::setProgressMonitor »
  • PHP Manual
  • Imagick
  • Sets point size

Imagick::setPointSize

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::setPointSize — Sets point size

Descrição

public Imagick::setPointSize(float $point_size): bool

Sets object's point size property. This method can be used for example to set font size for caption: pseudo-format. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.7 ou superior.

Parâmetros

point_size

Point size

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 A Imagick::setPointSize() example

Example of using Imagick::setPointSize

<?php
/* Create new imagick object */
$im = new Imagick();

/* Set the font for the object */
$im->setFont("example.ttf");

/* Set the point size */
$im->setPointSize(12);

/* Create new caption */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Do something with the image */
?>

Veja Também

  • Imagick::getPointSize() - Gets point size


Set a callback to be called during processing

  • « Imagick::setPointSize
  • Imagick::setRegistry »
  • PHP Manual
  • Imagick
  • Set a callback to be called during processing

Imagick::setProgressMonitor

(PECL imagick 3 >= 3.3.0)

Imagick::setProgressMonitor — Set a callback to be called during processing

Descrição

public Imagick::setProgressMonitor(callable $callback): bool

Set a callback that will be called during the processing of the Imagick image.

Parâmetros

callback

The progress function to call. It should return true if image processing should continue, or false if it should be cancelled. The offset parameter indicates the progress and the span parameter indicates the total amount of work needed to be done.

callback ( mixed $offset , mixed $span ): bool
Cuidado

The values passed to the callback function are not consistent. In particular the span parameter can increase during image processing. Because of this calculating the percentage complete of an image operation is not trivial.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::setProgressMonitor()

<?php
$abortReason = null;

try {
$imagick = new \Imagick(realpath($this->control->getImagePath()));
$startTime = time();

$callback = function ($offset, $span) use ($startTime, &$abortReason) {
if (((100 * $offset) / $span) > 20) {
$abortReason = "Processing reached 20%";
return false;
}

$nowTime = time();

if ($nowTime - $startTime > 5) {
$abortReason = "Image processing took more than 5 seconds";
return false;
}
if (($offset % 5) == 0) {
echo "Progress: $offset / $span <br/>";
}
return true;
};

$imagick->setProgressMonitor($callback);

$imagick->waveImage(2, 15);

echo "Data len is: ".strlen($imagick->getImageBlob());
}
catch(\ImagickException $e) {
if ($abortReason != null) {
echo "Image processing was aborted: ".$abortReason."<br/>";
}
else {
echo "ImagickException caught: ".$e->getMessage()." Exception type is ".get_class($e);
}
}

?>


Sets the ImageMagick registry entry named key to value

  • « Imagick::setProgressMonitor
  • Imagick::setResolution »
  • PHP Manual
  • Imagick
  • Sets the ImageMagick registry entry named key to value

Imagick::setRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::setRegistry — Sets the ImageMagick registry entry named key to value

Descrição

public static Imagick::setRegistry(string $key, string $value): bool

Sets the ImageMagick registry entry named key to value. This is most useful for setting "temporary-path" which controls where ImageMagick creates temporary images e.g. while processing PDFs.

Parâmetros

key

value

Valor Retornado

Retorna true em caso de sucesso.


Sets the image resolution

  • « Imagick::setRegistry
  • Imagick::setResourceLimit »
  • PHP Manual
  • Imagick
  • Sets the image resolution

Imagick::setResolution

(PECL imagick 2, PECL imagick 3)

Imagick::setResolution — Sets the image resolution

Descrição

public Imagick::setResolution(float $x_resolution, float $y_resolution): bool

Sets the image resolution.

Parâmetros

x_resolution

The horizontal resolution.

y_resolution

The vertical resolution.

Valor Retornado

Retorna true em caso de sucesso.

Notas

Imagick::setResolution() must be called before loading or creating an image.

Veja Também

  • Imagick::setImageResolution() - Sets the image resolution
  • Imagick::getImageResolution() - Gets the image X and Y resolution


Sets the limit for a particular resource

  • « Imagick::setResolution
  • Imagick::setSamplingFactors »
  • PHP Manual
  • Imagick
  • Sets the limit for a particular resource

Imagick::setResourceLimit

(PECL imagick 2, PECL imagick 3)

Imagick::setResourceLimit — Sets the limit for a particular resource

Descrição

public static Imagick::setResourceLimit(int $type, int $limit): bool

This method is used to modify the resource limits of the underlying ImageMagick library.

Parâmetros

type

Refer to the list of resourcetype constants.

limit

One of the resourcetype constants. The unit depends on the type of the resource being limited.

Valor Retornado

Retorna true em caso de sucesso.

Veja Também

  • Imagick::getResourceLimit() - Returns the specified resource limit


Sets the image sampling factors

  • « Imagick::setResourceLimit
  • Imagick::setSize »
  • PHP Manual
  • Imagick
  • Sets the image sampling factors

Imagick::setSamplingFactors

(PECL imagick 2, PECL imagick 3)

Imagick::setSamplingFactors — Sets the image sampling factors

Descrição

public Imagick::setSamplingFactors(array $factors): bool

Sets the image sampling factors.

Parâmetros

factors

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::setSamplingFactors()

<?php
function setSamplingFactors($imagePath) {

$imagePath = "../imagick/images/FineDetail.png";
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageFormat('jpg');
$imagick->setSamplingFactors(array('2x2', '1x1', '1x1'));

$compressed = $imagick->getImageBlob();

$reopen = new \Imagick();
$reopen->readImageBlob($compressed);

$reopen->resizeImage(
$reopen->getImageWidth() * 4,
$reopen->getImageHeight() * 4,
\Imagick::FILTER_POINT,
1
);

header("Content-Type: image/jpg");
echo $reopen->getImageBlob();
}

?>


Sets the size of the Imagick object

  • « Imagick::setSamplingFactors
  • Imagick::setSizeOffset »
  • PHP Manual
  • Imagick
  • Sets the size of the Imagick object

Imagick::setSize

(PECL imagick 2, PECL imagick 3)

Imagick::setSize — Sets the size of the Imagick object

Descrição

public Imagick::setSize(int $columns, int $rows): bool

Sets the size of the Imagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

Parâmetros

columns

rows

Valor Retornado

Retorna true em caso de sucesso.


Sets the size and offset of the Imagick object

  • « Imagick::setSize
  • Imagick::setType »
  • PHP Manual
  • Imagick
  • Sets the size and offset of the Imagick object

Imagick::setSizeOffset

(PECL imagick 2, PECL imagick 3)

Imagick::setSizeOffset — Sets the size and offset of the Imagick object

Descrição

public Imagick::setSizeOffset(int $columns, int $rows, int $offset): bool

Sets the size and offset of the Imagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

columns

The width in pixels.

rows

The height in pixels.

offset

The image offset.

Valor Retornado

Retorna true em caso de sucesso.


Sets the image type attribute

  • « Imagick::setSizeOffset
  • Imagick::shadeImage »
  • PHP Manual
  • Imagick
  • Sets the image type attribute

Imagick::setType

(PECL imagick 2, PECL imagick 3)

Imagick::setType — Sets the image type attribute

Descrição

public Imagick::setType(int $image_type): bool

Sets the image type attribute.

Parâmetros

image_type

Valor Retornado

Retorna true em caso de sucesso.


Creates a 3D effect

  • « Imagick::setType
  • Imagick::shadowImage »
  • PHP Manual
  • Imagick
  • Creates a 3D effect

Imagick::shadeImage

(PECL imagick 2, PECL imagick 3)

Imagick::shadeImage — Creates a 3D effect

Descrição

public Imagick::shadeImage(bool $gray, float $azimuth, float $elevation): bool

Shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

gray

A value other than zero shades the intensity of each pixel.

azimuth

Defines the light source direction.

elevation

Defines the light source direction.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Throws ImagickException on failure.

Exemplos

Exemplo #1 Imagick::shadeImage()

<?php
function shadeImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->shadeImage(true, 45, 20);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Simulates an image shadow

  • « Imagick::shadeImage
  • Imagick::sharpenImage »
  • PHP Manual
  • Imagick
  • Simulates an image shadow

Imagick::shadowImage

(PECL imagick 2, PECL imagick 3)

Imagick::shadowImage — Simulates an image shadow

Descrição

public Imagick::shadowImage(
float $opacity,
float $sigma,
int $x,
int $y
): bool

Simulates an image shadow.

Parâmetros

opacity

sigma

x

y

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::shadowImage()

<?php
function shadowImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->shadowImage(0.4, 10, 50, 5);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Sharpens an image

  • « Imagick::shadowImage
  • Imagick::shaveImage »
  • PHP Manual
  • Imagick
  • Sharpens an image

Imagick::sharpenImage

(PECL imagick 2, PECL imagick 3)

Imagick::sharpenImage — Sharpens an image

Descrição

public Imagick::sharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool

Sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and Imagick::sharpenImage() selects a suitable radius for you.

Parâmetros

radius

sigma

channel

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::sharpenImage()

<?php
function sharpenImage($imagePath, $radius, $sigma, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->sharpenimage($radius, $sigma, $channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Shaves pixels from the image edges

  • « Imagick::sharpenImage
  • Imagick::shearImage »
  • PHP Manual
  • Imagick
  • Shaves pixels from the image edges

Imagick::shaveImage

(PECL imagick 2, PECL imagick 3)

Imagick::shaveImage — Shaves pixels from the image edges

Descrição

public Imagick::shaveImage(int $columns, int $rows): bool

Shaves pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

Parâmetros

columns

rows

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::shaveImage()

<?php
function shaveImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->shaveImage(100, 50);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Creating a parallelogram

  • « Imagick::shaveImage
  • Imagick::sigmoidalContrastImage »
  • PHP Manual
  • Imagick
  • Creating a parallelogram

Imagick::shearImage

(PECL imagick 2, PECL imagick 3)

Imagick::shearImage — Creating a parallelogram

Descrição

public Imagick::shearImage(mixed $background, float $x_shear, float $y_shear): bool

Slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

Parâmetros

background

The background color

x_shear

The number of degrees to shear on the x axis

y_shear

The number of degrees to shear on the y axis

Valor Retornado

Retorna true em caso de sucesso.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Exemplos

Exemplo #1 Imagick::shearImage()

<?php
function shearImage($imagePath, $color, $shearX, $shearY) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->shearimage($color, $shearX, $shearY);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Adjusts the contrast of an image

  • « Imagick::shearImage
  • Imagick::sketchImage »
  • PHP Manual
  • Imagick
  • Adjusts the contrast of an image

Imagick::sigmoidalContrastImage

(PECL imagick 2, PECL imagick 3)

Imagick::sigmoidalContrastImage — Adjusts the contrast of an image

Descrição

public Imagick::sigmoidalContrastImage(
bool $sharpen,
float $alpha,
float $beta,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Adjusts the contrast of an image with a non-linear sigmoidal contrast algorithm. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is pushing it); mid-point indicates where midtones fall in the resultant image (0 is white; 50 is middle-gray; 100 is black). Set sharpen to true to increase the image contrast otherwise the contrast is reduced.

See also » ImageMagick v6 Examples - Image Transformations — Sigmoidal Non-linearity Contrast

Parâmetros

sharpen

If true increase the contrast, if false decrease the contrast.

alpha

The amount of contrast to apply. 1 is very little, 5 is a significant amount, 20 is extreme.

beta

Where the midpoint of the gradient will be. This value should be in the range 0 to 1 - mutliplied by the quantum value for ImageMagick.

channel

Which color channels the contrast will be applied to.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Create a gradient image using Imagick::sigmoidalContrastImage() suitable for blending two images together smoothly, with the blending defined by $contrast and $the midpoint

<?php

function generateBlendImage($width, $height, $contrast = 10, $midpoint = 0.5) {
$imagick = new Imagick();
$imagick->newPseudoImage($width, $height, 'gradient:black-white');
$quanta = $imagick->getQuantumRange();
$imagick->sigmoidalContrastImage(true, $contrast, $midpoint * $quanta["quantumRangeLong"]);

return $imagick;
}

?>


Simulates a pencil sketch

  • « Imagick::sigmoidalContrastImage
  • Imagick::smushImages »
  • PHP Manual
  • Imagick
  • Simulates a pencil sketch

Imagick::sketchImage

(PECL imagick 2, PECL imagick 3)

Imagick::sketchImage — Simulates a pencil sketch

Descrição

public Imagick::sketchImage(float $radius, float $sigma, float $angle): bool

Simulates a pencil sketch. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Imagick::sketchImage() selects a suitable radius for you. Angle gives the angle of the blurring motion. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

radius

The radius of the Gaussian, in pixels, not counting the center pixel

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::sketchImage()

<?php
function sketchImage($imagePath, $radius, $sigma, $angle) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->sketchimage($radius, $sigma, $angle);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Takes all images from the current image pointer to the end of the image list and smushs them

  • « Imagick::sketchImage
  • Imagick::solarizeImage »
  • PHP Manual
  • Imagick
  • Takes all images from the current image pointer to the end of the image list and smushs them

Imagick::smushImages

(PECL imagick 3 >= 3.3.0)

Imagick::smushImages — Takes all images from the current image pointer to the end of the image list and smushs them

Descrição

public Imagick::smushImages(bool $stack, int $offset): Imagick

Takes all images from the current image pointer to the end of the image list and smushs them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

Parâmetros

stack

offset

Valor Retornado

The new smushed image.

Exemplos

Exemplo #1 Imagick::smushImages()

<?php
function smushImages($imagePath, $imagePath2) {

$imagick = new \Imagick(realpath($imagePath));
$imagick2 = new \Imagick(realpath($imagePath2));

$imagick->addimage($imagick2);
$smushed = $imagick->smushImages(false, 50);
$smushed->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $smushed->getImageBlob();
}

?>


Applies a solarizing effect to the image

  • « Imagick::smushImages
  • Imagick::sparseColorImage »
  • PHP Manual
  • Imagick
  • Applies a solarizing effect to the image

Imagick::solarizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::solarizeImage — Applies a solarizing effect to the image

Descrição

public Imagick::solarizeImage(int $threshold): bool

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

Parâmetros

threshold

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::solarizeImage()

<?php
function solarizeImage($imagePath, $solarizeThreshold) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->solarizeImage($solarizeThreshold * \Imagick::getQuantum());
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Interpolates colors

  • « Imagick::solarizeImage
  • Imagick::spliceImage »
  • PHP Manual
  • Imagick
  • Interpolates colors

Imagick::sparseColorImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::sparseColorImage — Interpolates colors

Descrição

public Imagick::sparseColorImage(int $SPARSE_METHOD, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool

Given the arguments array containing numeric values this method interpolates the colors found at those coordinates across the whole image using sparse_method. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.4.5 ou superior.

Parâmetros

SPARSE_METHOD

Refer to this list of sparse method constants

arguments

An array containing the coordinates. The array is in format array(1,1, 2,45)

channel

Fornece qualquer constante de canal que seja válida no modo de canal. Para aplicar a mais de um canal, constantes de canal devem ser combinadas usando operadores bit a bit. O padrão é Imagick::CHANNEL_DEFAULT. Consulte esta lista de constantes de canal

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php
function renderImageBarycentric2() {
$points = [
[0.30, 0.10, 'red'],
[0.10, 0.80, 'blue'],
[0.70, 0.60, 'lime'],
[0.80, 0.20, 'yellow'],
];
$imagick = createGradientImage(
400, 400,
$points,
\Imagick::SPARSECOLORMETHOD_BARYCENTRIC
);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>

Exemplo #2 SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage()

<?php
function renderImageBilinear() {
$points = [[0.30, 0.10, 'red'], [0.10, 0.80, 'blue'], [0.70, 0.60, 'lime'], [0.80, 0.20, 'yellow'],];
$imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_BILINEAR);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>

Exemplo #3 SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage()

<?php
function renderImageShepards() {
$points = [
[0.30, 0.10, 'red'],
[0.10, 0.80, 'blue'],
[0.70, 0.60, 'lime'],
[0.80, 0.20, 'yellow'],
];
$imagick = createGradientImage(600, 600, $points, \Imagick::SPARSECOLORMETHOD_SPEPARDS);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>

Exemplo #4 SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage()

<?php
function renderImageVoronoi() {
$points = [
[0.30, 0.10, 'red'],
[0.10, 0.80, 'blue'],
[0.70, 0.60, 'lime'],
[0.80, 0.20, 'yellow'],
];
$imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_VORONOI);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>

Exemplo #5 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php
function renderImageBarycentric() {
$points = [
[0, 0, 'skyblue'],
[-1, 1, 'skyblue'],
[1, 1, 'black'],
];
$imagick = createGradientImage(600, 200, $points, \Imagick::SPARSECOLORMETHOD_BARYCENTRIC);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>

Exemplo #6 createGradientImage is used by other examples. Imagick::sparseColorImage()

<?php
function createGradientImage($width, $height, $colorPoints, $sparseMethod, $absolute = false) {

$imagick = new \Imagick();
$imagick->newImage($width, $height, "white");
$imagick->setImageFormat("png");

$barycentricPoints = array();

foreach ($colorPoints as $colorPoint) {

if ($absolute == true) {
$barycentricPoints[] = $colorPoint[0];
$barycentricPoints[] = $colorPoint[1];
}
else {
$barycentricPoints[] = $colorPoint[0] * $width;
$barycentricPoints[] = $colorPoint[1] * $height;
}

if (is_string($colorPoint[2])) {
$imagickPixel = new \ImagickPixel($colorPoint[2]);
}
else if ($colorPoint[2] instanceof \ImagickPixel) {
$imagickPixel = $colorPoint[2];
}
else{
$errorMessage = sprintf(
"Value %s is neither a string nor an ImagickPixel class. Cannot use as a color.",
$colorPoint[2]
);

throw new \InvalidArgumentException(
$errorMessage
);
}

$red = $imagickPixel->getColorValue(\Imagick::COLOR_RED);
$green = $imagickPixel->getColorValue(\Imagick::COLOR_GREEN);
$blue = $imagickPixel->getColorValue(\Imagick::COLOR_BLUE);
$alpha = $imagickPixel->getColorValue(\Imagick::COLOR_ALPHA);

$barycentricPoints[] = $red;
$barycentricPoints[] = $green;
$barycentricPoints[] = $blue;
$barycentricPoints[] = $alpha;
}

$imagick->sparseColorImage($sparseMethod, $barycentricPoints);

return $imagick;
}

?>


Splices a solid color into the image

  • « Imagick::sparseColorImage
  • Imagick::spreadImage »
  • PHP Manual
  • Imagick
  • Splices a solid color into the image

Imagick::spliceImage

(PECL imagick 2, PECL imagick 3)

Imagick::spliceImage — Splices a solid color into the image

Descrição

public Imagick::spliceImage(
int $width,
int $height,
int $x,
int $y
): bool

Splices a solid color into the image.

Parâmetros

width

height

x

y

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::spliceImage()

<?php
function spliceImage($imagePath, $startX, $startY, $width, $height) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->spliceImage($width, $height, $startX, $startY);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Randomly displaces each pixel in a block

  • « Imagick::spliceImage
  • Imagick::statisticImage »
  • PHP Manual
  • Imagick
  • Randomly displaces each pixel in a block

Imagick::spreadImage

(PECL imagick 2, PECL imagick 3)

Imagick::spreadImage — Randomly displaces each pixel in a block

Descrição

public Imagick::spreadImage(float $radius): bool

Special effects method that randomly displaces each pixel in a block defined by the radius parameter.

Parâmetros

radius

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::spreadImage()

<?php
function spreadImage($imagePath, $radius) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->spreadImage($radius);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Modifies image using a statistics function

  • « Imagick::spreadImage
  • Imagick::steganoImage »
  • PHP Manual
  • Imagick
  • Modifies image using a statistics function

Imagick::statisticImage

(PECL imagick 3 >= 3.3.0)

Imagick::statisticImage — Modifies image using a statistics function

Descrição

public Imagick::statisticImage(
int $type,
int $width,
int $height,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Replace each pixel with corresponding statistic from the neighborhood of the specified width and height.

Parâmetros

type

width

height

channel

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::statisticImage()

<?php
function statisticImage($imagePath, $statisticType, $width, $height, $channel) {
$imagick = new \Imagick(realpath($imagePath));

$imagick->statisticImage(
$statisticType,
$width,
$height,
$channel
);

header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

statisticImage($imagePath, \Imagick::STATISTIC_MEDIAN, 5, 5, \Imagick::CHANNEL_DEFAULT);

?>


Hides a digital watermark within the image

  • « Imagick::statisticImage
  • Imagick::stereoImage »
  • PHP Manual
  • Imagick
  • Hides a digital watermark within the image

Imagick::steganoImage

(PECL imagick 2, PECL imagick 3)

Imagick::steganoImage — Hides a digital watermark within the image

Descrição

public Imagick::steganoImage(Imagick $watermark_wand, int $offset): Imagick

Hides a digital watermark within the image. Recover the hidden watermark later to prove that the authenticity of an image. Offset defines the start position within the image to hide the watermark.

Parâmetros

watermark_wand

offset

Valor Retornado

Retorna true em caso de sucesso.


Composites two images

  • « Imagick::steganoImage
  • Imagick::stripImage »
  • PHP Manual
  • Imagick
  • Composites two images

Imagick::stereoImage

(PECL imagick 2, PECL imagick 3)

Imagick::stereoImage — Composites two images

Descrição

public Imagick::stereoImage(Imagick $offset_wand): bool

Composites two images and produces a single image that is the composite of a left and right image of a stereo pair.

Parâmetros

offset_wand

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Strips an image of all profiles and comments

  • « Imagick::stereoImage
  • Imagick::subImageMatch »
  • PHP Manual
  • Imagick
  • Strips an image of all profiles and comments

Imagick::stripImage

(PECL imagick 2, PECL imagick 3)

Imagick::stripImage — Strips an image of all profiles and comments

Descrição

public Imagick::stripImage(): bool

Strips an image of all profiles and comments.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.


Searches for a subimage in the current image and returns a similarity image

  • « Imagick::stripImage
  • Imagick::swirlImage »
  • PHP Manual
  • Imagick
  • Searches for a subimage in the current image and returns a similarity image

Imagick::subImageMatch

(PECL imagick 3 >= 3.3.0)

Imagick::subImageMatch — Searches for a subimage in the current image and returns a similarity image

Descrição

public Imagick::subImageMatch(Imagick $Imagick, array &$offset = ?, float &$similarity = ?): Imagick

Searches for a subimage in the current image and returns a similarity image such that an exact match location is completely white and if none of the pixels match, black, otherwise some gray level in-between. You can also pass in the optional parameters bestMatch and similarity. After calling the function similarity will be set to the 'score' of the similarity between the subimage and the matching position in the larger image, bestMatch will contain an associative array with elements x, y, width, height that describe the matching region.

Parâmetros

Imagick

offset

similarity

A new image that displays the amount of similarity at each pixel.

Valor Retornado

Exemplos

Exemplo #1 Imagick::subImageMatch()

<?php
function subImageMatch($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick2 = clone $imagick;
$imagick2->cropimage(40, 40, 250, 110);
$imagick2->vignetteimage(0, 1, 3, 3);

$similarity = null;
$bestMatch = null;
$comparison = $imagick->subImageMatch($imagick2, $bestMatch, $similarity);

$comparison->setImageFormat('png');
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Swirls the pixels about the center of the image

  • « Imagick::subImageMatch
  • Imagick::textureImage »
  • PHP Manual
  • Imagick
  • Swirls the pixels about the center of the image

Imagick::swirlImage

(PECL imagick 2, PECL imagick 3)

Imagick::swirlImage — Swirls the pixels about the center of the image

Descrição

Imagick::swirlImage(float $degrees): bool

Swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

Parâmetros

degrees

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::swirlImage()

<?php
function swirlImage($imagePath, $swirl) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->swirlImage($swirl);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Repeatedly tiles the texture image

  • « Imagick::swirlImage
  • Imagick::thresholdImage »
  • PHP Manual
  • Imagick
  • Repeatedly tiles the texture image

Imagick::textureImage

(PECL imagick 2, PECL imagick 3)

Imagick::textureImage — Repeatedly tiles the texture image

Descrição

Imagick::textureImage(Imagick $texture_wand): Imagick

Repeatedly tiles the texture image across and down the image canvas.

Parâmetros

texture_wand

Imagick object to use as texture image

Valor Retornado

Returns a new Imagick object that has the repeated texture applied.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::textureImage()

<?php
function textureImage($imagePath) {
$image = new \Imagick();
$image->newImage(640, 480, new \ImagickPixel('pink'));
$image->setImageFormat("jpg");
$texture = new \Imagick(realpath($imagePath));
$texture->scaleimage($image->getimagewidth() / 4, $image->getimageheight() / 4);
$image = $image->textureImage($texture);
header("Content-Type: image/jpg");
echo $image;
}

?>


Changes the value of individual pixels based on a threshold

  • « Imagick::textureImage
  • Imagick::thumbnailImage »
  • PHP Manual
  • Imagick
  • Changes the value of individual pixels based on a threshold

Imagick::thresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::thresholdImage — Changes the value of individual pixels based on a threshold

Descrição

public Imagick::thresholdImage(float $threshold, int $channel = Imagick::CHANNEL_DEFAULT): bool

Changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image.

Parâmetros

threshold

channel

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::thresholdImage()

<?php
function thresholdimage($imagePath, $threshold, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->thresholdimage($threshold * \Imagick::getQuantum(), $channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Changes the size of an image

  • « Imagick::thresholdImage
  • Imagick::tintImage »
  • PHP Manual
  • Imagick
  • Changes the size of an image

Imagick::thumbnailImage

(PECL imagick 2, PECL imagick 3)

Imagick::thumbnailImage — Changes the size of an image

Descrição

public Imagick::thumbnailImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $fill = false,
bool $legacy = false
): bool

Changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small, low cost thumbnail images suited for display on the Web. If true is given as a third parameter then columns and rows parameters are used as maximums for each side. Both sides will be scaled down until they match or are smaller than the parameter given for the side.

Nota: O comportamento do parâmetro bestfit mudou na Imagick 3.0.0. Antes desta versão, dadas as dimensões 400x400, uma imagem de dimensões 200x150 permaneceria intocada. Na Imagick 3.0.0 e superiores, a imagem será escalada para 400x300, pois este é o "melhor ajuste" para as dimensões fornecidas. Se o parâmetro bestfit for usado, tanto a largura quanto a altura devem ser informadas.

Parâmetros

columns

Image width

rows

Image height

bestfit

Whether to force maximum values

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::thumbnailImage()

<?php
function thumbnailImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setbackgroundcolor('rgb(64, 64, 64)');
$imagick->thumbnailImage(100, 100, true, true);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Applies a color vector to each pixel in the image

  • « Imagick::thumbnailImage
  • Imagick::__toString »
  • PHP Manual
  • Imagick
  • Applies a color vector to each pixel in the image

Imagick::tintImage

(PECL imagick 2, PECL imagick 3)

Imagick::tintImage — Applies a color vector to each pixel in the image

Descrição

public Imagick::tintImage(mixed $tint, mixed $opacity, bool $legacy = false): bool

Applies a color vector to each pixel in the image. The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighing function is f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).

Parâmetros

tint

opacity

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter and a float representing the opacity value as the second parameter. Previous versions allow only an ImagickPixel objects.

Exemplos

Exemplo #1 Imagick::tintImage()

<?php
function tintImage($r, $g, $b, $a) {
$a = $a / 100;

$imagick = new \Imagick();
$imagick->newPseudoImage(400, 400, 'gradient:black-white');

$tint = new \ImagickPixel("rgb($r, $g, $b)");
$opacity = new \ImagickPixel("rgb(128, 128, 128, $a)");
$imagick->tintImage($tint, $opacity);
$imagick->setImageFormat('png');
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Returns the image as a string

  • « Imagick::tintImage
  • Imagick::transformImage »
  • PHP Manual
  • Imagick
  • Returns the image as a string

Imagick::__toString

(PECL imagick 2, PECL imagick 3)

Imagick::__toString — Returns the image as a string

Descrição

public Imagick::__toString(): string

Returns the current image as string. This will only return a single image; it should not be used for Imagick objects that contain multiple images e.g. an animated GIF or PDF with multiple pages.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the string content on success or an empty string on failure.

Veja Também

  • Imagick::getImageBlob() - Returns the image sequence as a blob
  • Imagick::getImagesBlob() - Returns all image sequences as a blob


Convenience method for setting crop size and the image geometry

  • « Imagick::__toString
  • Imagick::transformImageColorspace »
  • PHP Manual
  • Imagick
  • Convenience method for setting crop size and the image geometry

Imagick::transformImage

(PECL imagick 2, PECL imagick 3)

Imagick::transformImage — Convenience method for setting crop size and the image geometry

Aviso

Esta função tornou-se DEFASADA a partir da Imagick 3.4.4. O uso desta função é fortemente desencorajado.

Descrição

public Imagick::transformImage(string $crop, string $geometry): Imagick

A convenience method for setting crop size and the image geometry from strings. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

crop

A crop geometry string. This geometry defines a subregion of the image to crop.

geometry

An image geometry string. This geometry defines the final size of the image.

Valor Retornado

Returns an Imagick object containing the transformed image.

Exemplos

Exemplo #1 Using Imagick::transformImage():

The example creates a 100x100 black image.

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");
$new_image = $image->transformImage("100x100", "100x100");
$new_image->writeImage('test_out.jpg');
?>

Veja Também

  • Imagick::cropImage() - Extracts a region of the image
  • Imagick::resizeImage() - Scales an image
  • Imagick::thumbnailImage() - Changes the size of an image


Transforms an image to a new colorspace

  • « Imagick::transformImage
  • Imagick::transparentPaintImage »
  • PHP Manual
  • Imagick
  • Transforms an image to a new colorspace

Imagick::transformImageColorspace

(PECL imagick 3)

Imagick::transformImageColorspace — Transforms an image to a new colorspace

Descrição

public Imagick::transformImageColorspace(int $colorspace): bool

Transforms an image to a new colorspace.

Parâmetros

colorspace

The colorspace the image should be transformed to, one of the COLORSPACE constants e.g. Imagick::COLORSPACE_CMYK.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::transformImageColorspace() example

Transforms an image to a new colorspace, and then extracts a single channel so that the individual channel values can be viewed.

<?php
function transformImageColorspace($imagePath, $colorSpace, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->transformimagecolorspace($colorSpace);
//channel should be one of the channel constants e.g. \Imagick::CHANNEL_BLUE
$imagick->separateImageChannel($channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}
?>

Veja Também

  • Imagick::setColorSpace() - Set colorspace


Paints pixels transparent

  • « Imagick::transformImageColorspace
  • Imagick::transposeImage »
  • PHP Manual
  • Imagick
  • Paints pixels transparent

Imagick::transparentPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::transparentPaintImage — Paints pixels transparent

Descrição

public Imagick::transparentPaintImage(
mixed $target,
float $alpha,
float $fuzz,
bool $invert
): bool

Paints pixels matching the target color transparent. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.8 ou superior.

Parâmetros

target

The target color to paint

alpha

O nível de transparência: 1.0 é totalmente opaco e 0.0 é totalmente transparente.

fuzz

A quantidade de fuzz. Por exemplo, definir fuzz como 10 e a cor vermelha nas intensidades de 100 e 102, respectivamente, agora são interpretadas como a mesma cor.

invert

If true paints any pixel that does not match the target color.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::transparentPaintImage()

<?php
function transparentPaintImage($color, $alpha, $fuzz) {
$imagick = new \Imagick(realpath("images/BlueScreen.jpg"));

//Need to be in a format that supports transparency
$imagick->setimageformat('png');

$imagick->transparentPaintImage(
$color, $alpha, $fuzz * \Imagick::getQuantum(), false
);

//Not required, but helps tidy up left over pixels
$imagick->despeckleimage();

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Creates a vertical mirror image

  • « Imagick::transparentPaintImage
  • Imagick::transverseImage »
  • PHP Manual
  • Imagick
  • Creates a vertical mirror image

Imagick::transposeImage

(PECL imagick 2, PECL imagick 3)

Imagick::transposeImage — Creates a vertical mirror image

Descrição

public Imagick::transposeImage(): bool

Creates a vertical mirror image by reflecting the pixels around the central x-axis while rotating them 90-degrees. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::transposeImage()

<?php
function transposeImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->transposeImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>

Veja Também

  • Imagick::transverseImage() - Creates a horizontal mirror image


Creates a horizontal mirror image

  • « Imagick::transposeImage
  • Imagick::trimImage »
  • PHP Manual
  • Imagick
  • Creates a horizontal mirror image

Imagick::transverseImage

(PECL imagick 2, PECL imagick 3)

Imagick::transverseImage — Creates a horizontal mirror image

Descrição

public Imagick::transverseImage(): bool

Creates a horizontal mirror image by reflecting the pixels around the central y-axis while rotating them 270-degrees. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::transverseImage()

<?php
function transverseImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->transverseImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>

Veja Também

  • Imagick::transposeImage() - Creates a vertical mirror image


Remove edges from the image

  • « Imagick::transverseImage
  • Imagick::uniqueImageColors »
  • PHP Manual
  • Imagick
  • Remove edges from the image

Imagick::trimImage

(PECL imagick 2, PECL imagick 3)

Imagick::trimImage — Remove edges from the image

Descrição

public Imagick::trimImage(float $fuzz): bool

Remove edges that are the background color from the image. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

fuzz

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. This parameter represents the variation on the quantum range.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Using Imagick::trimImage():

Trim an image, then display to the browser.

<?php
/* Create the object and read the image in */
$im = new Imagick("image.jpg");

/* Trim the image. */
$im->trimImage(0);

/* Ouput the image */
header("Content-Type: image/" . $im->getImageFormat());
echo $im;
?>

Veja Também

  • Imagick::getQuantumDepth() - Gets the quantum depth
  • Imagick::getQuantumRange() - Returns the Imagick quantum range
  • imagecropauto() - Recorta uma imagem automaticamente usando um dos modos disponíveis


Discards all but one of any pixel color

  • « Imagick::trimImage
  • Imagick::unsharpMaskImage »
  • PHP Manual
  • Imagick
  • Discards all but one of any pixel color

Imagick::uniqueImageColors

(PECL imagick 2,PECL imagick 3)

Imagick::uniqueImageColors — Discards all but one of any pixel color

Descrição

public Imagick::uniqueImageColors(): bool

Discards all but one of any pixel color. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::uniqueImageColors()

<?php
function uniqueImageColors($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
//Reduce the image to 256 colours nicely.
$imagick->quantizeImage(256, \Imagick::COLORSPACE_YIQ, 0, false, false);
$imagick->uniqueImageColors();
$imagick->scaleimage($imagick->getImageWidth(), $imagick->getImageHeight() * 20);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sharpens an image

  • « Imagick::uniqueImageColors
  • Imagick::valid »
  • PHP Manual
  • Imagick
  • Sharpens an image

Imagick::unsharpMaskImage

(PECL imagick 2, PECL imagick 3)

Imagick::unsharpMaskImage — Sharpens an image

Descrição

public Imagick::unsharpMaskImage(
float $radius,
float $sigma,
float $amount,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Imagick::UnsharpMaskImage() selects a suitable radius for you.

Parâmetros

radius

sigma

amount

threshold

channel

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 Imagick::unsharpMaskImage()

<?php
function unsharpMaskImage($imagePath, $radius, $sigma, $amount, $unsharpThreshold) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->unsharpMaskImage($radius, $sigma, $amount, $unsharpThreshold);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Checks if the current item is valid

  • « Imagick::unsharpMaskImage
  • Imagick::vignetteImage »
  • PHP Manual
  • Imagick
  • Checks if the current item is valid

Imagick::valid

(PECL imagick 2, PECL imagick 3)

Imagick::valid — Checks if the current item is valid

Descrição

public Imagick::valid(): bool

Checks if the current item is valid.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Adds vignette filter to the image

  • « Imagick::valid
  • Imagick::waveImage »
  • PHP Manual
  • Imagick
  • Adds vignette filter to the image

Imagick::vignetteImage

(PECL imagick 2, PECL imagick 3)

Imagick::vignetteImage — Adds vignette filter to the image

Descrição

public Imagick::vignetteImage(
float $blackPoint,
float $whitePoint,
int $x,
int $y
): bool

Softens the edges of the image in vignette style. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

blackPoint

The black point.

whitePoint

The white point

x

X offset of the ellipse

y

Y offset of the ellipse

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Imagick::vignetteImage()

<?php
function vignetteImage($imagePath, $blackPoint, $whitePoint, $x, $y) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->vignetteImage($blackPoint, $whitePoint, $x, $y);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>

Veja Também

  • Imagick::waveImage() - Applies wave filter to the image
  • Imagick::swirlImage() - Swirls the pixels about the center of the image


Applies wave filter to the image

  • « Imagick::vignetteImage
  • Imagick::whiteThresholdImage »
  • PHP Manual
  • Imagick
  • Applies wave filter to the image

Imagick::waveImage

(PECL imagick 2, PECL imagick 3)

Imagick::waveImage — Applies wave filter to the image

Descrição

public Imagick::waveImage(float $amplitude, float $length): bool

Applies a wave filter to the image. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.

Parâmetros

amplitude

The amplitude of the wave.

length

The length of the wave.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

Exemplos

Exemplo #1 WaveImage can be quite slow Imagick::waveImage()

<?php
function waveImage($imagePath, $amplitude, $length) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->waveImage($amplitude, $length);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>

Veja Também

  • Imagick::solarizeImage() - Applies a solarizing effect to the image
  • Imagick::oilpaintImage() - Simulates an oil painting
  • Imagick::embossImage() - Returns a grayscale image with a three-dimensional effect
  • Imagick::addNoiseImage() - Adds random noise to the image
  • Imagick::swirlImage() - Swirls the pixels about the center of the image


Force all pixels above the threshold into white

  • « Imagick::waveImage
  • Imagick::writeImage »
  • PHP Manual
  • Imagick
  • Force all pixels above the threshold into white

Imagick::whiteThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::whiteThresholdImage — Force all pixels above the threshold into white

Descrição

public Imagick::whiteThresholdImage(mixed $threshold): bool

Is like Imagick::ThresholdImage() but force all pixels above the threshold into white while leaving all pixels below the threshold unchanged.

Parâmetros

threshold

Valor Retornado

Retorna true em caso de sucesso.

Registro de Alterações

Versão | Descrição
PECL imagick 2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.

Exemplos

Exemplo #1 Imagick::whiteThresholdImage()

<?php
function whiteThresholdImage($imagePath, $color) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->whiteThresholdImage($color);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Writes an image to the specified filename

  • « Imagick::whiteThresholdImage
  • Imagick::writeImageFile »
  • PHP Manual
  • Imagick
  • Writes an image to the specified filename

Imagick::writeImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImage — Writes an image to the specified filename

Descrição

public Imagick::writeImage(string $filename = NULL): bool

Writes an image to the specified filename. If the filename parameter is NULL, the image is written to the filename set by Imagick::readImage() or Imagick::setImageFilename().

Parâmetros

filename

Filename where to write the image. The extension of the filename defines the type of the file. Format can be forced regardless of file extension using format: prefix, for example "jpg:test.png".

Valor Retornado

Retorna true em caso de sucesso.


Writes an image to a filehandle

  • « Imagick::writeImage
  • Imagick::writeImages »
  • PHP Manual
  • Imagick
  • Writes an image to a filehandle

Imagick::writeImageFile

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImageFile — Writes an image to a filehandle

Descrição

public Imagick::writeImageFile(resource $filehandle, string $format = ?): bool

Writes the image sequence to an open filehandle. The handle must be opened with for example fopen. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

filehandle

Filehandle where to write the image.

format

The image format. The list of valid format specifiers depends on the compiled feature set of ImageMagick, and can be queried at runtime via Imagick::queryFormats().

Valor Retornado

Retorna true em caso de sucesso.

Veja Também

  • Imagick::queryFormats() - Returns formats supported by Imagick


Writes an image or image sequence

  • « Imagick::writeImageFile
  • Imagick::writeImagesFile »
  • PHP Manual
  • Imagick
  • Writes an image or image sequence

Imagick::writeImages

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImages — Writes an image or image sequence

Descrição

public Imagick::writeImages(string $filename, bool $adjoin): bool

Writes an image or image sequence.

Parâmetros

filename

adjoin

Valor Retornado

Retorna true em caso de sucesso.


Writes frames to a filehandle

  • « Imagick::writeImages
  • ImagickDraw »
  • PHP Manual
  • Imagick
  • Writes frames to a filehandle

Imagick::writeImagesFile

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImagesFile — Writes frames to a filehandle

Descrição

public Imagick::writeImagesFile(resource $filehandle, string $format = ?): bool

Writes all image frames into an open filehandle. This method can be used to write animated gifs or other multiframe images into open filehandle. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

filehandle

Filehandle where to write the images.

format

The image format. The list of valid format specifiers depends on the compiled feature set of ImageMagick, and can be queried at runtime via Imagick::queryFormats().

Valor Retornado

Retorna true em caso de sucesso.

Veja Também

  • Imagick::queryFormats() - Returns formats supported by Imagick


The ImagickDraw class

(PECL imagick 2, PECL imagick 3)

Resumo da classe

class ImagickDraw {
public affine(array $affine): bool
public annotation(float $x, float $y, string $text): bool
public arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): bool
public bezier(array $coordinates): bool
public circle(
float $ox,
float $oy,
float $px,
float $py
): bool
public clear(): bool
public clone(): ImagickDraw
public color(float $x, float $y, int $paintMethod): bool
public comment(string $comment): bool
public composite(
int $compose,
float $x,
float $y,
float $width,
float $height,
Imagick $compositeWand
): bool
public __construct()
public destroy(): bool
public ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): bool
public getClipPath(): string
public getClipRule(): int
public getClipUnits(): int
public getFillColor(): ImagickPixel
public getFillOpacity(): float
public getFillRule(): int
public getFont(): string
public getFontFamily(): string
public getFontSize(): float
public getFontStretch(): int
public getFontStyle(): int
public getFontWeight(): int
public getGravity(): int
public getStrokeAntialias(): bool
public getStrokeColor(): ImagickPixel
public getStrokeDashArray(): array
public getStrokeDashOffset(): float
public getStrokeLineCap(): int
public getStrokeLineJoin(): int
public getStrokeMiterLimit(): int
public getStrokeOpacity(): float
public getStrokeWidth(): float
public getTextAlignment(): int
public getTextAntialias(): bool
public getTextDecoration(): int
public getTextEncoding(): string
public getTextInterlineSpacing(): float
public getTextInterwordSpacing(): float
public getTextKerning(): float
public getTextUnderColor(): ImagickPixel
public getVectorGraphics(): string
public line(
float $sx,
float $sy,
float $ex,
float $ey
): bool
public matte(float $x, float $y, int $paintMethod): bool
public pathClose(): bool
public pathCurveToAbsolute(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
public pathCurveToQuadraticBezierAbsolute(
float $x1,
float $y1,
float $x,
float $y
): bool
public pathCurveToQuadraticBezierRelative(
float $x1,
float $y1,
float $x,
float $y
): bool
public pathCurveToQuadraticBezierSmoothAbsolute(float $x, float $y): bool
public pathCurveToQuadraticBezierSmoothRelative(float $x, float $y): bool
public pathCurveToRelative(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
public pathCurveToSmoothAbsolute(
float $x2,
float $y2,
float $x,
float $y
): bool
public pathCurveToSmoothRelative(
float $x2,
float $y2,
float $x,
float $y
): bool
public pathEllipticArcAbsolute(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
public pathEllipticArcRelative(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
public pathFinish(): bool
public pathLineToAbsolute(float $x, float $y): bool
public pathLineToHorizontalAbsolute(float $x): bool
public pathLineToHorizontalRelative(float $x): bool
public pathLineToRelative(float $x, float $y): bool
public pathLineToVerticalAbsolute(float $y): bool
public pathLineToVerticalRelative(float $y): bool
public pathMoveToAbsolute(float $x, float $y): bool
public pathMoveToRelative(float $x, float $y): bool
public pathStart(): bool
public point(float $x, float $y): bool
public polygon(array $coordinates): bool
public polyline(array $coordinates): bool
public pop(): bool
public popClipPath(): bool
public popDefs(): bool
public popPattern(): bool
public push(): bool
public pushClipPath(string $clip_mask_id): bool
public pushDefs(): bool
public pushPattern(
string $pattern_id,
float $x,
float $y,
float $width,
float $height
): bool
public rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): bool
public render(): bool
public resetVectorGraphics(): bool
public rotate(float $degrees): bool
public roundRectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): bool
public scale(float $x, float $y): bool
public setClipPath(string $clip_mask): bool
public setClipRule(int $fill_rule): bool
public setClipUnits(int $clip_units): bool
public setFillAlpha(float $opacity): bool
public setFillColor(ImagickPixel $fill_pixel): bool
public setFillOpacity(float $fillOpacity): bool
public setFillPatternURL(string $fill_url): bool
public setFillRule(int $fill_rule): bool
public setFont(string $font_name): bool
public setFontFamily(string $font_family): bool
public setFontSize(float $pointsize): bool
public setFontStretch(int $fontStretch): bool
public setFontStyle(int $style): bool
public setFontWeight(int $font_weight): bool
public setGravity(int $gravity): bool
public setResolution(float $x_resolution, float $y_resolution): bool
public setStrokeAlpha(float $opacity): bool
public setStrokeAntialias(bool $stroke_antialias): bool
public setStrokeColor(ImagickPixel $stroke_pixel): bool
public setStrokeDashArray(array $dashArray): bool
public setStrokeDashOffset(float $dash_offset): bool
public setStrokeLineCap(int $linecap): bool
public setStrokeLineJoin(int $linejoin): bool
public setStrokeMiterLimit(int $miterlimit): bool
public setStrokeOpacity(float $stroke_opacity): bool
public setStrokePatternURL(string $stroke_url): bool
public setStrokeWidth(float $stroke_width): bool
public setTextAlignment(int $alignment): bool
public setTextAntialias(bool $antiAlias): bool
public setTextDecoration(int $decoration): bool
public setTextEncoding(string $encoding): bool
public setTextInterlineSpacing(float $spacing): bool
public setTextInterwordSpacing(float $spacing): bool
public setTextKerning(float $kerning): bool
public setTextUnderColor(ImagickPixel $under_color): bool
public setVectorGraphics(string $xml): bool
public setViewbox(
int $x1,
int $y1,
int $x2,
int $y2
): bool
public skewX(float $degrees): bool
public skewY(float $degrees): bool
public translate(float $x, float $y): bool
}

Índice

  • ImagickDraw::affine — Adjusts the current affine transformation matrix
  • ImagickDraw::annotation — Draws text on the image
  • ImagickDraw::arc — Draws an arc
  • ImagickDraw::bezier — Draws a bezier curve
  • ImagickDraw::circle — Draws a circle
  • ImagickDraw::clear — Clears the ImagickDraw
  • ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object
  • ImagickDraw::color — Draws color on image
  • ImagickDraw::comment — Adds a comment
  • ImagickDraw::composite — Composites an image onto the current image
  • ImagickDraw::__construct — The ImagickDraw constructor
  • ImagickDraw::destroy — Frees all associated resources
  • ImagickDraw::ellipse — Draws an ellipse on the image
  • ImagickDraw::getClipPath — Obtains the current clipping path ID
  • ImagickDraw::getClipRule — Returns the current polygon fill rule
  • ImagickDraw::getClipUnits — Returns the interpretation of clip path units
  • ImagickDraw::getFillColor — Returns the fill color
  • ImagickDraw::getFillOpacity — Returns the opacity used when drawing
  • ImagickDraw::getFillRule — Returns the fill rule
  • ImagickDraw::getFont — Returns the font
  • ImagickDraw::getFontFamily — Returns the font family
  • ImagickDraw::getFontSize — Returns the font pointsize
  • ImagickDraw::getFontStretch — Gets the font stretch to use when annotating with text
  • ImagickDraw::getFontStyle — Returns the font style
  • ImagickDraw::getFontWeight — Returns the font weight
  • ImagickDraw::getGravity — Returns the text placement gravity
  • ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting
  • ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines
  • ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths
  • ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash
  • ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked
  • ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked
  • ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit
  • ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines
  • ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines
  • ImagickDraw::getTextAlignment — Returns the text alignment
  • ImagickDraw::getTextAntialias — Returns the current text antialias setting
  • ImagickDraw::getTextDecoration — Returns the text decoration
  • ImagickDraw::getTextEncoding — Returns the code set used for text annotations
  • ImagickDraw::getTextInterlineSpacing — Gets the text interword spacing
  • ImagickDraw::getTextInterwordSpacing — Gets the text interword spacing
  • ImagickDraw::getTextKerning — Gets the text kerning
  • ImagickDraw::getTextUnderColor — Returns the text under color
  • ImagickDraw::getVectorGraphics — Returns a string containing vector graphics
  • ImagickDraw::line — Draws a line
  • ImagickDraw::matte — Paints on the image's opacity channel
  • ImagickDraw::pathClose — Adds a path element to the current path
  • ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve
  • ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc
  • ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc
  • ImagickDraw::pathFinish — Terminates the current path
  • ImagickDraw::pathLineToAbsolute — Draws a line path
  • ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path
  • ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line
  • ImagickDraw::pathLineToRelative — Draws a line path
  • ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line
  • ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path
  • ImagickDraw::pathMoveToAbsolute — Starts a new sub-path
  • ImagickDraw::pathMoveToRelative — Starts a new sub-path
  • ImagickDraw::pathStart — Declares the start of a path drawing list
  • ImagickDraw::point — Draws a point
  • ImagickDraw::polygon — Draws a polygon
  • ImagickDraw::polyline — Draws a polyline
  • ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
  • ImagickDraw::popClipPath — Terminates a clip path definition
  • ImagickDraw::popDefs — Terminates a definition list
  • ImagickDraw::popPattern — Terminates a pattern definition
  • ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack
  • ImagickDraw::pushClipPath — Starts a clip path definition
  • ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing
  • ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
  • ImagickDraw::rectangle — Draws a rectangle
  • ImagickDraw::render — Renders all preceding drawing commands onto the image
  • ImagickDraw::resetVectorGraphics — Resets the vector graphics
  • ImagickDraw::rotate — Applies the specified rotation to the current coordinate space
  • ImagickDraw::roundRectangle — Draws a rounded rectangle
  • ImagickDraw::scale — Adjusts the scaling factor
  • ImagickDraw::setClipPath — Associates a named clipping path with the image
  • ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path
  • ImagickDraw::setClipUnits — Sets the interpretation of clip path units
  • ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture
  • ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects
  • ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture
  • ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects
  • ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons
  • ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text
  • ImagickDraw::setFontFamily — Sets the font family to use when annotating with text
  • ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text
  • ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text
  • ImagickDraw::setFontStyle — Sets the font style to use when annotating with text
  • ImagickDraw::setFontWeight — Sets the font weight
  • ImagickDraw::setGravity — Sets the text placement gravity
  • ImagickDraw::setResolution — Sets the resolution
  • ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines
  • ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased
  • ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines
  • ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths
  • ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash
  • ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked
  • ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked
  • ImagickDraw::setStrokeMiterLimit — Specifies the miter limit
  • ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines
  • ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines
  • ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines
  • ImagickDraw::setTextAlignment — Specifies a text alignment
  • ImagickDraw::setTextAntialias — Controls whether text is antialiased
  • ImagickDraw::setTextDecoration — Specifies a decoration
  • ImagickDraw::setTextEncoding — Specifies the text code set
  • ImagickDraw::setTextInterlineSpacing — Sets the text interline spacing
  • ImagickDraw::setTextInterwordSpacing — Sets the text interword spacing
  • ImagickDraw::setTextKerning — Sets the text kerning
  • ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle
  • ImagickDraw::setVectorGraphics — Sets the vector graphics
  • ImagickDraw::setViewbox — Sets the overall canvas size
  • ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction
  • ImagickDraw::skewY — Skews the current coordinate system in the vertical direction
  • ImagickDraw::translate — Applies a translation to the current coordinate system


Adjusts the current affine transformation matrix

  • « ImagickDraw
  • ImagickDraw::annotation »
  • PHP Manual
  • ImagickDraw
  • Adjusts the current affine transformation matrix

ImagickDraw::affine

(PECL imagick 2, PECL imagick 3)

ImagickDraw::affine — Adjusts the current affine transformation matrix

Descrição

public ImagickDraw::affine(array $affine): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Adjusts the current affine transformation matrix with the specified affine transformation matrix.

Parâmetros

affine

Affine matrix parameters

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::affine() example

<?php
function affine($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeWidth(1);
$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(2);

$PI = 3.141592653589794;
$angle = 60 * $PI / 360;

//Scale the drawing co-ordinates.
$affineScale = array("sx" => 1.75, "sy" => 1.75, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

//Shear the drawing co-ordinates.
$affineShear = array("sx" => 1, "sy" => 1, "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0);

//Rotate the drawing co-ordinates. The shear affine matrix
//produces incorrectly scaled drawings.
$affineRotate = array("sx" => cos($angle), "sy" => cos($angle), "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0,);

//Translate (offset) the drawing
$affineTranslate = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 30, "ty" => 30);

//The identiy affine matrix
$affineIdentity = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

$examples = [$affineScale, $affineShear, $affineRotate, $affineTranslate, $affineIdentity,];

$count = 0;

foreach ($examples as $example) {
$draw->push();
$draw->translate(($count % 2) * 250, intval($count / 2) * 250);
$draw->translate(100, 100);
$draw->affine($example);
$draw->rectangle(-50, -50, 50, 50);
$draw->pop();
$count++;
}

//Create an image object which the draw commands can be rendered into
$image = new \Imagick();
$image->newImage(500, 750, $backgroundColor);
$image->setImageFormat("png");

//Render the draw commands in the ImagickDraw object
//into the image.
$image->drawImage($draw);

//Send the image to the browser
header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Draws text on the image

  • « ImagickDraw::affine
  • ImagickDraw::arc »
  • PHP Manual
  • ImagickDraw
  • Draws text on the image

ImagickDraw::annotation

(PECL imagick 2, PECL imagick 3)

ImagickDraw::annotation — Draws text on the image

Descrição

public ImagickDraw::annotation(float $x, float $y, string $text): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws text on the image.

Parâmetros

x

The x coordinate where text is drawn

y

The y coordinate where text is drawn

text

The text to draw on the image

Valor Retornado

Nenhum valor é retornado.


Draws an arc

  • « ImagickDraw::annotation
  • ImagickDraw::bezier »
  • PHP Manual
  • ImagickDraw
  • Draws an arc

ImagickDraw::arc

(PECL imagick 2, PECL imagick 3)

ImagickDraw::arc — Draws an arc

Descrição

public ImagickDraw::arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws an arc falling within a specified bounding rectangle on the image.

Parâmetros

sx

Starting x ordinate of bounding rectangle

sy

starting y ordinate of bounding rectangle

ex

ending x ordinate of bounding rectangle

ey

ending y ordinate of bounding rectangle

sd

starting degrees of rotation

ed

ending degrees of rotation

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::arc() example

<?php
function arc($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $startAngle, $endAngle) {

//Create a ImagickDraw object to draw into.
$draw = new \ImagickDraw();
$draw->setStrokeWidth(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);

$draw->arc($startX, $startY, $endX, $endY, $startAngle, $endAngle);

//Create an image object which the draw commands can be rendered into
$image = new \Imagick();
$image->newImage(IMAGE_WIDTH, IMAGE_HEIGHT, $backgroundColor);
$image->setImageFormat("png");

//Render the draw commands in the ImagickDraw object
//into the image.
$image->drawImage($draw);

//Send the image to the browser
header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Draws a bezier curve

  • « ImagickDraw::arc
  • ImagickDraw::circle »
  • PHP Manual
  • ImagickDraw
  • Draws a bezier curve

ImagickDraw::bezier

(PECL imagick 2, PECL imagick 3)

ImagickDraw::bezier — Draws a bezier curve

Descrição

public ImagickDraw::bezier(array $coordinates): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a bezier curve through a set of points on the image.

Parâmetros

coordinates

Multidimensional array like array( array( 'x' => 1, 'y' => 2 ), array( 'x' => 3, 'y' => 4 ) )

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::bezier() example

<?php
function bezier($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$strokeColor = new \ImagickPixel($strokeColor);
$fillColor = new \ImagickPixel($fillColor);

$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(2);

$smoothPointsSet = [
[
['x' => 10.0 * 5, 'y' => 10.0 * 5],
['x' => 30.0 * 5, 'y' => 90.0 * 5],
['x' => 25.0 * 5, 'y' => 10.0 * 5],
['x' => 50.0 * 5, 'y' => 50.0 * 5],
],
[
['x' => 50.0 * 5, 'y' => 50.0 * 5],
['x' => 75.0 * 5, 'y' => 90.0 * 5],
['x' => 70.0 * 5, 'y' => 10.0 * 5],
['x' => 90.0 * 5, 'y' => 40.0 * 5],
],
];

foreach ($smoothPointsSet as $points) {
$draw->bezier($points);
}

$disjointPoints = [
[
['x' => 10 * 5, 'y' => 10 * 5],
['x' => 30 * 5, 'y' => 90 * 5],
['x' => 25 * 5, 'y' => 10 * 5],
['x' => 50 * 5, 'y' => 50 * 5],
],
[
['x' => 50 * 5, 'y' => 50 * 5],
['x' => 80 * 5, 'y' => 50 * 5],
['x' => 70 * 5, 'y' => 10 * 5],
['x' => 90 * 5, 'y' => 40 * 5],
]
];
$draw->translate(0, 200);

foreach ($disjointPoints as $points) {
$draw->bezier($points);
}

//Create an image object which the draw commands can be rendered into
$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

//Render the draw commands in the ImagickDraw object
//into the image.
$imagick->drawImage($draw);

//Send the image to the browser
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Draws a circle

  • « ImagickDraw::bezier
  • ImagickDraw::clear »
  • PHP Manual
  • ImagickDraw
  • Draws a circle

ImagickDraw::circle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::circle — Draws a circle

Descrição

public ImagickDraw::circle(
float $ox,
float $oy,
float $px,
float $py
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a circle on the image.

Parâmetros

ox

origin x coordinate

oy

origin y coordinate

px

perimeter x coordinate

py

perimeter y coordinate

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::circle() example

<?php
function circle($strokeColor, $fillColor, $backgroundColor, $originX, $originY, $endX, $endY) {

//Create a ImagickDraw object to draw into.
$draw = new \ImagickDraw();

$strokeColor = new \ImagickPixel($strokeColor);
$fillColor = new \ImagickPixel($fillColor);

$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->circle($originX, $originY, $endX, $endY);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Clears the ImagickDraw

  • « ImagickDraw::circle
  • ImagickDraw::clone »
  • PHP Manual
  • ImagickDraw
  • Clears the ImagickDraw

ImagickDraw::clear

(PECL imagick 2, PECL imagick 3)

ImagickDraw::clear — Clears the ImagickDraw

Descrição

public ImagickDraw::clear(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Clears the ImagickDraw object of any accumulated commands, and resets the settings it contains to their defaults.

Valor Retornado

Returns an ImagickDraw object.


Makes an exact copy of the specified ImagickDraw object

  • « ImagickDraw::clear
  • ImagickDraw::color »
  • PHP Manual
  • ImagickDraw
  • Makes an exact copy of the specified ImagickDraw object

ImagickDraw::clone

(PECL imagick 2, PECL imagick 3)

ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object

Descrição

public ImagickDraw::clone(): ImagickDraw
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Makes an exact copy of the specified ImagickDraw object.

Valor Retornado

returns an exact copy of the specified ImagickDraw object.


Draws color on image

  • « ImagickDraw::clone
  • ImagickDraw::comment »
  • PHP Manual
  • ImagickDraw
  • Draws color on image

ImagickDraw::color

(PECL imagick 2, PECL imagick 3)

ImagickDraw::color — Draws color on image

Descrição

public ImagickDraw::color(float $x, float $y, int $paintMethod): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws color on image using the current fill color, starting at specified position, and using specified paint method.

Parâmetros

x

x coordinate of the paint

y

y coordinate of the paint

paintMethod

One of the PAINT constant (imagick::PAINT_*).

Valor Retornado

Nenhum valor é retornado.


Adds a comment

  • « ImagickDraw::color
  • ImagickDraw::composite »
  • PHP Manual
  • ImagickDraw
  • Adds a comment

ImagickDraw::comment

(PECL imagick 2, PECL imagick 3)

ImagickDraw::comment — Adds a comment

Descrição

public ImagickDraw::comment(string $comment): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Adds a comment to a vector output stream.

Parâmetros

comment

The comment string to add to vector output stream

Valor Retornado

Nenhum valor é retornado.


Composites an image onto the current image

  • « ImagickDraw::comment
  • ImagickDraw::__construct »
  • PHP Manual
  • ImagickDraw
  • Composites an image onto the current image

ImagickDraw::composite

(PECL imagick 2, PECL imagick 3)

ImagickDraw::composite — Composites an image onto the current image

Descrição

public ImagickDraw::composite(
int $compose,
float $x,
float $y,
float $width,
float $height,
Imagick $compositeWand
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Composites an image onto the current image, using the specified composition operator, specified position, and at the specified size.

Parâmetros

compose

composition operator. One of the Composite Operator constant (imagick::COMPOSITE_*).

x

x coordinate of the top left corner.

y

y coordinate of the top left corner.

width

width of the composition image.

height

height of the composition image.

compositeWand

the Imagick object where composition image is taken from.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickDraw::composite() example

<?php
function composite($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setFillOpacity(1);
$draw->setStrokeWidth(2);
$draw->setFontSize(72);
$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setStrokeWidth(2);
$draw->setFont("../fonts/CANDY.TTF");
$draw->setFontSize(140);
$draw->rectangle(0, 0, 1000, 300);
$draw->setFillColor('white');
$draw->setfillopacity(1);
$draw->annotation(50, 180, "Lorem Ipsum!");

//Create an image object which the draw commands can be rendered into
$imagick = new \Imagick();
$imagick->newImage(1000, 302, $backgroundColor);
$imagick->setImageFormat("png");

//Render the draw commands in the ImagickDraw object
//into the image.
$imagick->drawImage($draw);

//Send the image to the browser
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


The ImagickDraw constructor

  • « ImagickDraw::composite
  • ImagickDraw::destroy »
  • PHP Manual
  • ImagickDraw
  • The ImagickDraw constructor

ImagickDraw::__construct

(PECL imagick 2, PECL imagick 3)

ImagickDraw::__construct — The ImagickDraw constructor

Descrição

public ImagickDraw::__construct()
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

The ImagickDraw constructor.

Valor Retornado

Nenhum valor é retornado.


Frees all associated resources

  • « ImagickDraw::__construct
  • ImagickDraw::ellipse »
  • PHP Manual
  • ImagickDraw
  • Frees all associated resources

ImagickDraw::destroy

(PECL imagick 2, PECL imagick 3)

ImagickDraw::destroy — Frees all associated resources

Descrição

public ImagickDraw::destroy(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Frees all resources associated with the ImagickDraw object.

Valor Retornado

Nenhum valor é retornado.


Draws an ellipse on the image

  • « ImagickDraw::destroy
  • ImagickDraw::getClipPath »
  • PHP Manual
  • ImagickDraw
  • Draws an ellipse on the image

ImagickDraw::ellipse

(PECL imagick 2, PECL imagick 3)

ImagickDraw::ellipse — Draws an ellipse on the image

Descrição

public ImagickDraw::ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws an ellipse on the image.

Parâmetros

ox

oy

rx

ry

start

end

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::ellipse() example

<?php
function ellipse($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->ellipse(125, 70, 100, 50, 0, 360);
$draw->ellipse(350, 70, 100, 50, 0, 315);

$draw->push();
$draw->translate(125, 250);
$draw->rotate(30);
$draw->ellipse(0, 0, 100, 50, 0, 360);
$draw->pop();

$draw->push();
$draw->translate(350, 250);
$draw->rotate(30);
$draw->ellipse(0, 0, 100, 50, 0, 315);
$draw->pop();

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Obtains the current clipping path ID

  • « ImagickDraw::ellipse
  • ImagickDraw::getClipRule »
  • PHP Manual
  • ImagickDraw
  • Obtains the current clipping path ID

ImagickDraw::getClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getClipPath — Obtains the current clipping path ID

Descrição

public ImagickDraw::getClipPath(): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Obtains the current clipping path ID.

Valor Retornado

Returns a string containing the clip path ID or false if no clip path exists.


Returns the current polygon fill rule

  • « ImagickDraw::getClipPath
  • ImagickDraw::getClipUnits »
  • PHP Manual
  • ImagickDraw
  • Returns the current polygon fill rule

ImagickDraw::getClipRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getClipRule — Returns the current polygon fill rule

Descrição

public ImagickDraw::getClipRule(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the current polygon fill rule to be used by the clipping path.

Valor Retornado

Returns a FILLRULE constant (imagick::FILLRULE_*).


Returns the interpretation of clip path units

  • « ImagickDraw::getClipRule
  • ImagickDraw::getFillColor »
  • PHP Manual
  • ImagickDraw
  • Returns the interpretation of clip path units

ImagickDraw::getClipUnits

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getClipUnits — Returns the interpretation of clip path units

Descrição

public ImagickDraw::getClipUnits(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the interpretation of clip path units.

Valor Retornado

Returns an int on success.


Returns the fill color

  • « ImagickDraw::getClipUnits
  • ImagickDraw::getFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Returns the fill color

ImagickDraw::getFillColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFillColor — Returns the fill color

Descrição

public ImagickDraw::getFillColor(): ImagickPixel
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the fill color used for drawing filled objects.

Valor Retornado

Returns an ImagickPixel object.


Returns the opacity used when drawing

  • « ImagickDraw::getFillColor
  • ImagickDraw::getFillRule »
  • PHP Manual
  • ImagickDraw
  • Returns the opacity used when drawing

ImagickDraw::getFillOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFillOpacity — Returns the opacity used when drawing

Descrição

public ImagickDraw::getFillOpacity(): float
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the opacity used when drawing using the fill color or fill texture. Fully opaque is 1.0.

Valor Retornado

The opacity.


Returns the fill rule

  • « ImagickDraw::getFillOpacity
  • ImagickDraw::getFont »
  • PHP Manual
  • ImagickDraw
  • Returns the fill rule

ImagickDraw::getFillRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFillRule — Returns the fill rule

Descrição

public ImagickDraw::getFillRule(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the fill rule used while drawing polygons.

Valor Retornado

Returns a FILLRULE constant (imagick::FILLRULE_*).


Returns the font

  • « ImagickDraw::getFillRule
  • ImagickDraw::getFontFamily »
  • PHP Manual
  • ImagickDraw
  • Returns the font

ImagickDraw::getFont

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFont — Returns the font

Descrição

public ImagickDraw::getFont(): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns a string specifying the font used when annotating with text.

Valor Retornado

Returns a string on success and false if no font is set.


Returns the font family

  • « ImagickDraw::getFont
  • ImagickDraw::getFontSize »
  • PHP Manual
  • ImagickDraw
  • Returns the font family

ImagickDraw::getFontFamily

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontFamily — Returns the font family

Descrição

public ImagickDraw::getFontFamily(): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the font family to use when annotating with text.

Valor Retornado

Returns the font family currently selected or false if font family is not set.


Returns the font pointsize

  • « ImagickDraw::getFontFamily
  • ImagickDraw::getFontStretch »
  • PHP Manual
  • ImagickDraw
  • Returns the font pointsize

ImagickDraw::getFontSize

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontSize — Returns the font pointsize

Descrição

public ImagickDraw::getFontSize(): float
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the font pointsize used when annotating with text.

Valor Retornado

Returns the font size associated with the current ImagickDraw object.


Gets the font stretch to use when annotating with text

  • « ImagickDraw::getFontSize
  • ImagickDraw::getFontStyle »
  • PHP Manual
  • ImagickDraw
  • Gets the font stretch to use when annotating with text

ImagickDraw::getFontStretch

(PECL imagick 2 >=2.3.0, PECL imagick 3)

ImagickDraw::getFontStretch — Gets the font stretch to use when annotating with text

Descrição

public ImagickDraw::getFontStretch(): int

Gets the font stretch to use when annotating with text. Returns a StretchType.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Returns the font style

  • « ImagickDraw::getFontStretch
  • ImagickDraw::getFontWeight »
  • PHP Manual
  • ImagickDraw
  • Returns the font style

ImagickDraw::getFontStyle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontStyle — Returns the font style

Descrição

public ImagickDraw::getFontStyle(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the font style used when annotating with text.

Valor Retornado

Returns a STYLE constant (imagick::STYLE_*) associated with the ImagickDraw object or 0 if no style is set.


Returns the font weight

  • « ImagickDraw::getFontStyle
  • ImagickDraw::getGravity »
  • PHP Manual
  • ImagickDraw
  • Returns the font weight

ImagickDraw::getFontWeight

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontWeight — Returns the font weight

Descrição

public ImagickDraw::getFontWeight(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the font weight used when annotating with text.

Valor Retornado

Returns an int on success and 0 if no weight is set.


Returns the text placement gravity

  • « ImagickDraw::getFontWeight
  • ImagickDraw::getStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Returns the text placement gravity

ImagickDraw::getGravity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getGravity — Returns the text placement gravity

Descrição

public ImagickDraw::getGravity(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the text placement gravity used when annotating with text.

Valor Retornado

Returns a GRAVITY constant (imagick::GRAVITY_*) on success and 0 if no gravity is set.


Returns the current stroke antialias setting

  • « ImagickDraw::getGravity
  • ImagickDraw::getStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Returns the current stroke antialias setting

ImagickDraw::getStrokeAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting

Descrição

public ImagickDraw::getStrokeAntialias(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the current stroke antialias setting. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

Valor Retornado

Returns true if antialiasing is on and false if it is off.


Returns the color used for stroking object outlines

  • « ImagickDraw::getStrokeAntialias
  • ImagickDraw::getStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Returns the color used for stroking object outlines

ImagickDraw::getStrokeColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines

Descrição

public ImagickDraw::getStrokeColor(): ImagickPixel
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the color used for stroking object outlines.

Parâmetros

stroke_color

Valor Retornado

Returns an ImagickPixel object which describes the color.


Returns an array representing the pattern of dashes and gaps used to stroke paths

  • « ImagickDraw::getStrokeColor
  • ImagickDraw::getStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Returns an array representing the pattern of dashes and gaps used to stroke paths

ImagickDraw::getStrokeDashArray

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths

Descrição

public ImagickDraw::getStrokeDashArray(): array
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns an array representing the pattern of dashes and gaps used to stroke paths.

Valor Retornado

Returns an array on success and empty array if not set.


Returns the offset into the dash pattern to start the dash

  • « ImagickDraw::getStrokeDashArray
  • ImagickDraw::getStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Returns the offset into the dash pattern to start the dash

ImagickDraw::getStrokeDashOffset

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash

Descrição

public ImagickDraw::getStrokeDashOffset(): float
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the offset into the dash pattern to start the dash.

Valor Retornado

Returns a float representing the offset and 0 if it's not set.


Returns the shape to be used at the end of open subpaths when they are stroked

  • « ImagickDraw::getStrokeDashOffset
  • ImagickDraw::getStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Returns the shape to be used at the end of open subpaths when they are stroked

ImagickDraw::getStrokeLineCap

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked

Descrição

public ImagickDraw::getStrokeLineCap(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the shape to be used at the end of open subpaths when they are stroked.

Valor Retornado

Returns a LINECAP constant (imagick::LINECAP_*), or 0 if stroke linecap is not set.


Returns the shape to be used at the corners of paths when they are stroked

  • « ImagickDraw::getStrokeLineCap
  • ImagickDraw::getStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Returns the shape to be used at the corners of paths when they are stroked

ImagickDraw::getStrokeLineJoin

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked

Descrição

public ImagickDraw::getStrokeLineJoin(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

Valor Retornado

Returns a LINEJOIN constant (imagick::LINEJOIN_*), or 0 if stroke line join is not set.


Returns the stroke miter limit

  • « ImagickDraw::getStrokeLineJoin
  • ImagickDraw::getStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Returns the stroke miter limit

ImagickDraw::getStrokeMiterLimit

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit

Descrição

public ImagickDraw::getStrokeMiterLimit(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The 'miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

Valor Retornado

Returns an int describing the miter limit and 0 if no miter limit is set.


Returns the opacity of stroked object outlines

  • « ImagickDraw::getStrokeMiterLimit
  • ImagickDraw::getStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Returns the opacity of stroked object outlines

ImagickDraw::getStrokeOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines

Descrição

public ImagickDraw::getStrokeOpacity(): float
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the opacity of stroked object outlines.

Valor Retornado

Returns a float describing the opacity.


Returns the width of the stroke used to draw object outlines

  • « ImagickDraw::getStrokeOpacity
  • ImagickDraw::getTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Returns the width of the stroke used to draw object outlines

ImagickDraw::getStrokeWidth

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines

Descrição

public ImagickDraw::getStrokeWidth(): float
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the width of the stroke used to draw object outlines.

Valor Retornado

Returns a float describing the stroke width.


Returns the text alignment

  • « ImagickDraw::getStrokeWidth
  • ImagickDraw::getTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Returns the text alignment

ImagickDraw::getTextAlignment

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextAlignment — Returns the text alignment

Descrição

public ImagickDraw::getTextAlignment(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the alignment applied when annotating with text.

Valor Retornado

Returns a ALIGN constant (imagick::ALIGN_*), and 0 if no align is set.


Returns the current text antialias setting

  • « ImagickDraw::getTextAlignment
  • ImagickDraw::getTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Returns the current text antialias setting

ImagickDraw::getTextAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextAntialias — Returns the current text antialias setting

Descrição

public ImagickDraw::getTextAntialias(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the current text antialias setting, which determines whether text is antialiased. Text is antialiased by default.

Valor Retornado

Returns true if text is antialiased and false if not.


Returns the text decoration

  • « ImagickDraw::getTextAntialias
  • ImagickDraw::getTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Returns the text decoration

ImagickDraw::getTextDecoration

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextDecoration — Returns the text decoration

Descrição

public ImagickDraw::getTextDecoration(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the decoration applied when annotating with text.

Valor Retornado

Returns a DECORATION constant (imagick::DECORATION_*), and 0 if no decoration is set.


Returns the code set used for text annotations

  • « ImagickDraw::getTextDecoration
  • ImagickDraw::getTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Returns the code set used for text annotations

ImagickDraw::getTextEncoding

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextEncoding — Returns the code set used for text annotations

Descrição

public ImagickDraw::getTextEncoding(): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns a string which specifies the code set used for text annotations.

Valor Retornado

Returns a string specifying the code set or false if text encoding is not set.


Gets the text interword spacing

  • « ImagickDraw::getTextEncoding
  • ImagickDraw::getTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Gets the text interword spacing

ImagickDraw::getTextInterlineSpacing

(PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextInterlineSpacing — Gets the text interword spacing

Descrição

public ImagickDraw::getTextInterlineSpacing(): float

Gets the text interword spacing.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Gets the text interword spacing

  • « ImagickDraw::getTextInterlineSpacing
  • ImagickDraw::getTextKerning »
  • PHP Manual
  • ImagickDraw
  • Gets the text interword spacing

ImagickDraw::getTextInterwordSpacing

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextInterwordSpacing — Gets the text interword spacing

Descrição

public ImagickDraw::getTextInterwordSpacing(): float

Gets the text interword spacing.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Gets the text kerning

  • « ImagickDraw::getTextInterwordSpacing
  • ImagickDraw::getTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Gets the text kerning

ImagickDraw::getTextKerning

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextKerning — Gets the text kerning

Descrição

public ImagickDraw::getTextKerning(): float

Gets the text kerning.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Returns the text under color

  • « ImagickDraw::getTextKerning
  • ImagickDraw::getVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Returns the text under color

ImagickDraw::getTextUnderColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextUnderColor — Returns the text under color

Descrição

public ImagickDraw::getTextUnderColor(): ImagickPixel
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the color of a background rectangle to place under text annotations.

Valor Retornado

Returns an ImagickPixel object describing the color.


Returns a string containing vector graphics

  • « ImagickDraw::getTextUnderColor
  • ImagickDraw::line »
  • PHP Manual
  • ImagickDraw
  • Returns a string containing vector graphics

ImagickDraw::getVectorGraphics

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getVectorGraphics — Returns a string containing vector graphics

Descrição

public ImagickDraw::getVectorGraphics(): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns a string which specifies the vector graphics generated by any graphics calls made since the ImagickDraw object was instantiated.

Valor Retornado

Returns a string containing the vector graphics.


Draws a line

  • « ImagickDraw::getVectorGraphics
  • ImagickDraw::matte »
  • PHP Manual
  • ImagickDraw
  • Draws a line

ImagickDraw::line

(PECL imagick 2, PECL imagick 3)

ImagickDraw::line — Draws a line

Descrição

public ImagickDraw::line(
float $sx,
float $sy,
float $ex,
float $ey
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a line on the image using the current stroke color, stroke opacity, and stroke width.

Parâmetros

sx

starting x coordinate

sy

starting y coordinate

ex

ending x coordinate

ey

ending y coordinate

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::line() example

<?php
function line($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->line(125, 70, 100, 50);
$draw->line(350, 170, 100, 150);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Paints on the image's opacity channel

  • « ImagickDraw::line
  • ImagickDraw::pathClose »
  • PHP Manual
  • ImagickDraw
  • Paints on the image's opacity channel

ImagickDraw::matte

(PECL imagick 2, PECL imagick 3)

ImagickDraw::matte — Paints on the image's opacity channel

Descrição

public ImagickDraw::matte(float $x, float $y, int $paintMethod): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Paints on the image's opacity channel in order to set effected pixels to transparent, to influence the opacity of pixels.

Parâmetros

x

x coordinate of the matte

y

y coordinate of the matte

paintMethod

One of the PAINT constant (imagick::PAINT_*).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ImagickDraw::matte() example

<?php
function matte($strokeColor, $fillColor, $backgroundColor, $paintType) {
$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->matte(120, 120, $paintType);
$draw->rectangle(100, 100, 300, 200);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Adds a path element to the current path

  • « ImagickDraw::matte
  • ImagickDraw::pathCurveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Adds a path element to the current path

ImagickDraw::pathClose

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathClose — Adds a path element to the current path

Descrição

public ImagickDraw::pathClose(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Adds a path element to the current path which closes the current subpath by drawing a straight line from the current point to the current subpath's most recent starting point (usually, the most recent moveto point).

Valor Retornado

Nenhum valor é retornado.


Draws a cubic Bezier curve

  • « ImagickDraw::pathClose
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve

Descrição

public ImagickDraw::pathCurveToAbsolute(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parâmetros

x1

x coordinate of the first control point

y1

y coordinate of the first control point

x2

x coordinate of the second control point

y2

y coordinate of the first control point

x

x coordinate of the curve end

y

y coordinate of the curve end

Valor Retornado

Nenhum valor é retornado.


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve

Descrição

public ImagickDraw::pathCurveToQuadraticBezierAbsolute(
float $x1,
float $y1,
float $x,
float $y
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parâmetros

x1

x coordinate of the control point

y1

y coordinate of the control point

x

x coordinate of the end point

y

y coordinate of the end point

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::pathCurveToQuadraticBezierAbsolute() example

<?php
function pathCurveToQuadraticBezierAbsolute($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is the first two params, and the end point is the last two params.
$draw->pathCurveToQuadraticBezierAbsolute(
150,50,
250,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
450,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined relative from the current position by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothRelative(
200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();

}

?>


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve

Descrição

public ImagickDraw::pathCurveToQuadraticBezierRelative(
float $x1,
float $y1,
float $x,
float $y
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parâmetros

x1

starting x coordinate

y1

starting y coordinate

x

ending x coordinate

y

ending y coordinate

Valor Retornado

Nenhum valor é retornado.


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierRelative
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve

Descrição

public ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute(float $x, float $y): bool

Draws a quadratic Bezier curve (using absolute coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolut or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

This function cannot be used to continue a cubic Bezier curve smoothly. It can only continue from a quadratic curve smoothly.

Parâmetros

x

ending x coordinate

y

ending y coordinate

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute() example

<?php
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("black");
$draw->setFillColor("blue");

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is the first two params, and the end point is the last two params.
$draw->pathCurveToQuadraticBezierAbsolute(
150,50,
250,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
450,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined relative from the current position by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothRelative(
200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • ImagickDraw::pathCurveToRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve

Descrição

public ImagickDraw::pathCurveToQuadraticBezierSmoothRelative(float $x, float $y): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a quadratic Bezier curve (using relative coordinates) from the current point to (x, y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolut or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point). At the end of the command, the new current point becomes the final (x, y) coordinate pair used in the polybezier.

This function cannot be used to continue a cubic Bezier curve smoothly. It can only continue from a quadratic curve smoothly.

Parâmetros

x

ending x coordinate

y

ending y coordinate

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::pathCurveToQuadraticBezierSmoothRelative() example

<?php
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("black");
$draw->setFillColor("blue");

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is the first two params, and the end point is the last two params.
$draw->pathCurveToQuadraticBezierAbsolute(
150,50,
250,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
450,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined relative from the current position by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothRelative(
200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • ImagickDraw::pathCurveToSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve

Descrição

public ImagickDraw::pathCurveToRelative(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parâmetros

x1

x coordinate of starting control point

y1

y coordinate of starting control point

x2

x coordinate of ending control point

y2

y coordinate of ending control point

x

ending x coordinate

y

ending y coordinate

Valor Retornado

Nenhum valor é retornado.


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToRelative
  • ImagickDraw::pathCurveToSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToSmoothAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve

Descrição

public ImagickDraw::pathCurveToSmoothAbsolute(
float $x2,
float $y2,
float $x,
float $y
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a cubic Bezier curve from the current point to (x,y) using absolute coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parâmetros

x2

x coordinate of the second control point

y2

y coordinate of the second control point

x

x coordinate of the ending point

y

y coordinate of the ending point

Valor Retornado

Nenhum valor é retornado.


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToSmoothAbsolute
  • ImagickDraw::pathEllipticArcAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToSmoothRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve

Descrição

public ImagickDraw::pathCurveToSmoothRelative(
float $x2,
float $y2,
float $x,
float $y
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a cubic Bezier curve from the current point to (x,y) using relative coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parâmetros

x2

x coordinate of the second control point

y2

y coordinate of the second control point

x

x coordinate of the ending point

y

y coordinate of the ending point

Valor Retornado

Nenhum valor é retornado.


Draws an elliptical arc

  • « ImagickDraw::pathCurveToSmoothRelative
  • ImagickDraw::pathEllipticArcRelative »
  • PHP Manual
  • ImagickDraw
  • Draws an elliptical arc

ImagickDraw::pathEllipticArcAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc

Descrição

public ImagickDraw::pathEllipticArcAbsolute(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws an elliptical arc from the current point to (x, y) using absolute coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If large_arc_flag is true then draw the larger of the available arcs. If sweep_flag is true, then draw the arc matching a clock-wise rotation.

Parâmetros

rx

x radius

ry

y radius

x_axis_rotation

x axis rotation

large_arc_flag

large arc flag

sweep_flag

sweep flag

x

x coordinate

y

y coordinate

Valor Retornado

Nenhum valor é retornado.


Draws an elliptical arc

  • « ImagickDraw::pathEllipticArcAbsolute
  • ImagickDraw::pathFinish »
  • PHP Manual
  • ImagickDraw
  • Draws an elliptical arc

ImagickDraw::pathEllipticArcRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc

Descrição

public ImagickDraw::pathEllipticArcRelative(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws an elliptical arc from the current point to (x, y) using relative coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If large_arc_flag is true then draw the larger of the available arcs. If sweep_flag is true, then draw the arc matching a clock-wise rotation.

Parâmetros

rx

x radius

ry

y radius

x_axis_rotation

x axis rotation

large_arc_flag

large arc flag

sweep_flag

sweep flag

x

x coordinate

y

y coordinate

Valor Retornado

Nenhum valor é retornado.


Terminates the current path

  • « ImagickDraw::pathEllipticArcRelative
  • ImagickDraw::pathLineToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Terminates the current path

ImagickDraw::pathFinish

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathFinish — Terminates the current path

Descrição

public ImagickDraw::pathFinish(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Terminates the current path.

Valor Retornado

Nenhum valor é retornado.


Draws a line path

  • « ImagickDraw::pathFinish
  • ImagickDraw::pathLineToHorizontalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a line path

ImagickDraw::pathLineToAbsolute

(PECL imagick 2)

ImagickDraw::pathLineToAbsolute — Draws a line path

Descrição

public ImagickDraw::pathLineToAbsolute(float $x, float $y): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a line path from the current point to the given coordinate using absolute coordinates. The coordinate then becomes the new current point.

Parâmetros

x

starting x coordinate

y

ending x coordinate

Valor Retornado

Nenhum valor é retornado.


Draws a horizontal line path

  • « ImagickDraw::pathLineToAbsolute
  • ImagickDraw::pathLineToHorizontalRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a horizontal line path

ImagickDraw::pathLineToHorizontalAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path

Descrição

public ImagickDraw::pathLineToHorizontalAbsolute(float $x): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a horizontal line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

Parâmetros

x

x coordinate

Valor Retornado

Nenhum valor é retornado.


Draws a horizontal line

  • « ImagickDraw::pathLineToHorizontalAbsolute
  • ImagickDraw::pathLineToRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a horizontal line

ImagickDraw::pathLineToHorizontalRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line

Descrição

public ImagickDraw::pathLineToHorizontalRelative(float $x): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a horizontal line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

Parâmetros

x

x coordinate

Valor Retornado

Nenhum valor é retornado.


Draws a line path

  • « ImagickDraw::pathLineToHorizontalRelative
  • ImagickDraw::pathLineToVerticalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a line path

ImagickDraw::pathLineToRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToRelative — Draws a line path

Descrição

public ImagickDraw::pathLineToRelative(float $x, float $y): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a line path from the current point to the given coordinate using relative coordinates. The coordinate then becomes the new current point.

Parâmetros

x

starting x coordinate

y

starting y coordinate

Valor Retornado

Nenhum valor é retornado.


Draws a vertical line

  • « ImagickDraw::pathLineToRelative
  • ImagickDraw::pathLineToVerticalRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a vertical line

ImagickDraw::pathLineToVerticalAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line

Descrição

public ImagickDraw::pathLineToVerticalAbsolute(float $y): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a vertical line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

Parâmetros

y

y coordinate

Valor Retornado

Nenhum valor é retornado.


Draws a vertical line path

  • « ImagickDraw::pathLineToVerticalAbsolute
  • ImagickDraw::pathMoveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a vertical line path

ImagickDraw::pathLineToVerticalRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path

Descrição

public ImagickDraw::pathLineToVerticalRelative(float $y): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a vertical line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

Parâmetros

y

y coordinate

Valor Retornado

Nenhum valor é retornado.


Starts a new sub-path

  • « ImagickDraw::pathLineToVerticalRelative
  • ImagickDraw::pathMoveToRelative »
  • PHP Manual
  • ImagickDraw
  • Starts a new sub-path

ImagickDraw::pathMoveToAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathMoveToAbsolute — Starts a new sub-path

Descrição

public ImagickDraw::pathMoveToAbsolute(float $x, float $y): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Starts a new sub-path at the given coordinate using absolute coordinates. The current point then becomes the specified coordinate.

Parâmetros

x

x coordinate of the starting point

y

y coordinate of the starting point

Valor Retornado

Nenhum valor é retornado.


Starts a new sub-path

  • « ImagickDraw::pathMoveToAbsolute
  • ImagickDraw::pathStart »
  • PHP Manual
  • ImagickDraw
  • Starts a new sub-path

ImagickDraw::pathMoveToRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathMoveToRelative — Starts a new sub-path

Descrição

public ImagickDraw::pathMoveToRelative(float $x, float $y): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Starts a new sub-path at the given coordinate using relative coordinates. The current point then becomes the specified coordinate.

Parâmetros

x

target x coordinate

y

target y coordinate

Valor Retornado

Nenhum valor é retornado.


Declares the start of a path drawing list

  • « ImagickDraw::pathMoveToRelative
  • ImagickDraw::point »
  • PHP Manual
  • ImagickDraw
  • Declares the start of a path drawing list

ImagickDraw::pathStart

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathStart — Declares the start of a path drawing list

Descrição

public ImagickDraw::pathStart(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Declares the start of a path drawing list which is terminated by a matching DrawPathFinish() command. All other DrawPath commands must be enclosed between a and a DrawPathFinish() command. This is because path drawing commands are subordinate commands and they do not function by themselves.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::pathStart() example

<?php
function pathStart($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50, 50);
$draw->pathLineToAbsolute(100, 50);
$draw->pathLineToRelative(0, 50);
$draw->pathLineToHorizontalRelative(-50);
$draw->pathFinish();

$draw->pathStart();
$draw->pathMoveToAbsolute(50, 50);
$draw->pathMoveToRelative(300, 0);
$draw->pathLineToRelative(50, 0);
$draw->pathLineToVerticalRelative(50);
$draw->pathLineToHorizontalAbsolute(350);
$draw->pathclose();
$draw->pathFinish();

$draw->pathStart();
$draw->pathMoveToAbsolute(50, 300);
$draw->pathCurveToAbsolute(50, 300, 100, 200, 300, 300);
$draw->pathLineToVerticalAbsolute(350);
$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Draws a point

  • « ImagickDraw::pathStart
  • ImagickDraw::polygon »
  • PHP Manual
  • ImagickDraw
  • Draws a point

ImagickDraw::point

(PECL imagick 2, PECL imagick 3)

ImagickDraw::point — Draws a point

Descrição

public ImagickDraw::point(float $x, float $y): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a point using the current stroke color and stroke thickness at the specified coordinates.

Parâmetros

x

point's x coordinate

y

point's y coordinate

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::point() example

<?php
function point($fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setFillColor($fillColor);

for ($x = 0; $x < 10000; $x++) {
$draw->point(rand(0, 500), rand(0, 500));
}

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Draws a polygon

  • « ImagickDraw::point
  • ImagickDraw::polyline »
  • PHP Manual
  • ImagickDraw
  • Draws a polygon

ImagickDraw::polygon

(PECL imagick 2, PECL imagick 3)

ImagickDraw::polygon — Draws a polygon

Descrição

public ImagickDraw::polygon(array $coordinates): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Parâmetros

coordinates

multidimensional array like array( array( 'x' => 3, 'y' => 4 ), array( 'x' => 2, 'y' => 6 ) );

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickDraw::polygon() example

<?php
function polygon($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setStrokeWidth(4);

$draw->setFillColor($fillColor);

$points = [
['x' => 40 * 5, 'y' => 10 * 5],
['x' => 20 * 5, 'y' => 20 * 5],
['x' => 70 * 5, 'y' => 50 * 5],
['x' => 60 * 5, 'y' => 15 * 5],
];

$draw->polygon($points);

$image = new \Imagick();
$image->newImage(500, 300, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Draws a polyline

  • « ImagickDraw::polygon
  • ImagickDraw::pop »
  • PHP Manual
  • ImagickDraw
  • Draws a polyline

ImagickDraw::polyline

(PECL imagick 2, PECL imagick 3)

ImagickDraw::polyline — Draws a polyline

Descrição

public ImagickDraw::polyline(array $coordinates): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Parâmetros

coordinates

array of x and y coordinates: array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) )

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickDraw::polyline() example

<?php
function polyline($strokeColor, $fillColor, $backgroundColor) {
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(5);

$points = [
['x' => 40 * 5, 'y' => 10 * 5],
['x' => 20 * 5, 'y' => 20 * 5],
['x' => 70 * 5, 'y' => 50 * 5],
['x' => 60 * 5, 'y' => 15 * 5]
];

$draw->polyline($points);

$image = new \Imagick();
$image->newImage(500, 300, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

  • « ImagickDraw::polyline
  • ImagickDraw::popClipPath »
  • PHP Manual
  • ImagickDraw
  • Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

ImagickDraw::pop

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

Descrição

public ImagickDraw::pop(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw. Multiple ImagickDraws may exist. It is an error to attempt to pop more ImagickDraws than have been pushed, and it is proper form to pop all ImagickDraws which have been pushed.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Terminates a clip path definition

  • « ImagickDraw::pop
  • ImagickDraw::popDefs »
  • PHP Manual
  • ImagickDraw
  • Terminates a clip path definition

ImagickDraw::popClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::popClipPath — Terminates a clip path definition

Descrição

public ImagickDraw::popClipPath(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Terminates a clip path definition.

Valor Retornado

Nenhum valor é retornado.


Terminates a definition list

  • « ImagickDraw::popClipPath
  • ImagickDraw::popPattern »
  • PHP Manual
  • ImagickDraw
  • Terminates a definition list

ImagickDraw::popDefs

(PECL imagick 2, PECL imagick 3)

ImagickDraw::popDefs — Terminates a definition list

Descrição

public ImagickDraw::popDefs(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Terminates a definition list.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::popDefs() example

<?php
function popDefs($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setstrokeOpacity(1);
$draw->setStrokeWidth(2);
$draw->setFontSize(72);
$draw->pushDefs();
$draw->setStrokeColor('white');
$draw->rectangle(50, 50, 200, 200);
$draw->popDefs();

$draw->rectangle(300, 50, 450, 200);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Terminates a pattern definition

  • « ImagickDraw::popDefs
  • ImagickDraw::push »
  • PHP Manual
  • ImagickDraw
  • Terminates a pattern definition

ImagickDraw::popPattern

(PECL imagick 2, PECL imagick 3)

ImagickDraw::popPattern — Terminates a pattern definition

Descrição

public ImagickDraw::popPattern(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Terminates a pattern definition.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Clones the current ImagickDraw and pushes it to the stack

  • « ImagickDraw::popPattern
  • ImagickDraw::pushClipPath »
  • PHP Manual
  • ImagickDraw
  • Clones the current ImagickDraw and pushes it to the stack

ImagickDraw::push

(PECL imagick 2, PECL imagick 3)

ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack

Descrição

public ImagickDraw::push(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Clones the current ImagickDraw to create a new ImagickDraw, which is then added to the ImagickDraw stack. The original drawing ImagickDraw(s) may be returned to by invoking ImagickDraw::pop(). The ImagickDraws are stored on a ImagickDraw stack. For every Pop there must have already been an equivalent Push.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ImagickDraw::push() example

<?php
function push($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {

$draw = new \ImagickDraw();
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillModifiedColor);
$draw->setStrokeWidth(2);
$draw->setFontSize(72);
$draw->push();
$draw->translate(50, 50);
$draw->rectangle(200, 200, 300, 300);
$draw->pop();
$draw->setFillColor($fillColor);
$draw->rectangle(200, 200, 300, 300);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Starts a clip path definition

  • « ImagickDraw::push
  • ImagickDraw::pushDefs »
  • PHP Manual
  • ImagickDraw
  • Starts a clip path definition

ImagickDraw::pushClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pushClipPath — Starts a clip path definition

Descrição

public ImagickDraw::pushClipPath(string $clip_mask_id): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Starts a clip path definition which is comprised of any number of drawing commands and terminated by a ImagickDraw::popClipPath() command.

Parâmetros

clip_mask_id

Clip mask Id

Valor Retornado

Nenhum valor é retornado.


Indicates that following commands create named elements for early processing

  • « ImagickDraw::pushClipPath
  • ImagickDraw::pushPattern »
  • PHP Manual
  • ImagickDraw
  • Indicates that following commands create named elements for early processing

ImagickDraw::pushDefs

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing

Descrição

public ImagickDraw::pushDefs(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Indicates that commands up to a terminating ImagickDraw::popDefs() command create named elements (e.g. clip-paths, textures, etc.) which may safely be processed earlier for the sake of efficiency.

Valor Retornado

Nenhum valor é retornado.


Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

  • « ImagickDraw::pushDefs
  • ImagickDraw::rectangle »
  • PHP Manual
  • ImagickDraw
  • Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

ImagickDraw::pushPattern

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

Descrição

public ImagickDraw::pushPattern(
string $pattern_id,
float $x,
float $y,
float $width,
float $height
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Indicates that subsequent commands up to a DrawPopPattern() command comprise the definition of a named pattern. The pattern space is assigned top left corner coordinates, a width and height, and becomes its own drawing space. Anything which can be drawn may be used in a pattern definition. Named patterns may be used as stroke or brush definitions.

Parâmetros

pattern_id

the pattern Id

x

x coordinate of the top-left corner

y

y coordinate of the top-left corner

width

width of the pattern

height

height of the pattern

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ImagickDraw::pushPattern() example

<?php
function pushPattern($strokeColor, $fillColor, $backgroundColor) {
$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(1);
$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(1);

$draw->pushPattern("MyFirstPattern", 0, 0, 50, 50);
for ($x = 0; $x < 50; $x += 10) {
for ($y = 0; $y < 50; $y += 5) {
$positionX = $x + (($y / 5) % 5);
$draw->rectangle($positionX, $y, $positionX + 5, $y + 5);
}
}
$draw->popPattern();

$draw->setFillOpacity(0);
$draw->rectangle(100, 100, 400, 400);
$draw->setFillOpacity(1);

$draw->setFillOpacity(1);

$draw->push();
$draw->setFillPatternURL('#MyFirstPattern');
$draw->setFillColor('yellow');
$draw->rectangle(100, 100, 400, 400);
$draw->pop();

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Draws a rectangle

  • « ImagickDraw::pushPattern
  • ImagickDraw::render »
  • PHP Manual
  • ImagickDraw
  • Draws a rectangle

ImagickDraw::rectangle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::rectangle — Draws a rectangle

Descrição

public ImagickDraw::rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

Parâmetros

x1

x coordinate of the top left corner

y1

y coordinate of the top left corner

x2

x coordinate of the bottom right corner

y2

y coordinate of the bottom right corner

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::rectangle() example

<?php
function rectangle($strokeColor, $fillColor, $backgroundColor) {
$draw = new \ImagickDraw();
$strokeColor = new \ImagickPixel($strokeColor);
$fillColor = new \ImagickPixel($fillColor);

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeOpacity(1);
$draw->setStrokeWidth(2);

$draw->rectangle(200, 200, 300, 300);
$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Renders all preceding drawing commands onto the image

  • « ImagickDraw::rectangle
  • ImagickDraw::resetVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Renders all preceding drawing commands onto the image

ImagickDraw::render

(PECL imagick 2, PECL imagick 3)

ImagickDraw::render — Renders all preceding drawing commands onto the image

Descrição

public ImagickDraw::render(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Renders all preceding drawing commands onto the image.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Resets the vector graphics

  • « ImagickDraw::render
  • ImagickDraw::rotate »
  • PHP Manual
  • ImagickDraw
  • Resets the vector graphics

ImagickDraw::resetVectorGraphics

(PECL imagick 2, PECL imagick 3)

ImagickDraw::resetVectorGraphics — Resets the vector graphics

Descrição

public ImagickDraw::resetVectorGraphics(): bool

Resets the vector graphics.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso.


Applies the specified rotation to the current coordinate space

  • « ImagickDraw::resetVectorGraphics
  • ImagickDraw::roundRectangle »
  • PHP Manual
  • ImagickDraw
  • Applies the specified rotation to the current coordinate space

ImagickDraw::rotate

(PECL imagick 2, PECL imagick 3)

ImagickDraw::rotate — Applies the specified rotation to the current coordinate space

Descrição

public ImagickDraw::rotate(float $degrees): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Applies the specified rotation to the current coordinate space.

Parâmetros

degrees

degrees to rotate.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::rotate() example

<?php
function rotate($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {
$draw = new \ImagickDraw();
$draw->setStrokeColor($strokeColor);
$draw->setStrokeOpacity(1);
$draw->setFillColor($fillColor);
$draw->rectangle(200, 200, 300, 300);
$draw->setFillColor($fillModifiedColor);
$draw->rotate(15);
$draw->rectangle(200, 200, 300, 300);

$image = new \Imagick();
$image->newImage(500, 500, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Draws a rounded rectangle

  • « ImagickDraw::rotate
  • ImagickDraw::scale »
  • PHP Manual
  • ImagickDraw
  • Draws a rounded rectangle

ImagickDraw::roundRectangle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::roundRectangle — Draws a rounded rectangle

Descrição

public ImagickDraw::roundRectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Draws a rounded rectangle given two coordinates, x & y corner radiuses and using the current stroke, stroke width, and fill settings.

Parâmetros

x1

x coordinate of the top left corner

y1

y coordinate of the top left corner

x2

x coordinate of the bottom right

y2

y coordinate of the bottom right

rx

x rounding

ry

y rounding

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::roundRectangle() example

<?php
function roundRectangle($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $roundX, $roundY) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeOpacity(1);
$draw->setStrokeWidth(2);

$draw->roundRectangle($startX, $startY, $endX, $endY, $roundX, $roundY);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Adjusts the scaling factor

  • « ImagickDraw::roundRectangle
  • ImagickDraw::setClipPath »
  • PHP Manual
  • ImagickDraw
  • Adjusts the scaling factor

ImagickDraw::scale

(PECL imagick 2, PECL imagick 3)

ImagickDraw::scale — Adjusts the scaling factor

Descrição

public ImagickDraw::scale(float $x, float $y): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

Parâmetros

x

horizontal factor

y

vertical factor

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::scale() example

<?php
function scale($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {

$draw = new \ImagickDraw();
$draw->setStrokeColor($strokeColor);
$draw->setStrokeWidth(4);
$draw->setFillColor($fillColor);
$draw->rectangle(200, 200, 300, 300);
$draw->setFillColor($fillModifiedColor);
$draw->scale(1.4, 1.4);
$draw->rectangle(200, 200, 300, 300);

$image = new \Imagick();
$image->newImage(500, 500, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Associates a named clipping path with the image

  • « ImagickDraw::scale
  • ImagickDraw::setClipRule »
  • PHP Manual
  • ImagickDraw
  • Associates a named clipping path with the image

ImagickDraw::setClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setClipPath — Associates a named clipping path with the image

Descrição

public ImagickDraw::setClipPath(string $clip_mask): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Associates a named clipping path with the image. Only the areas drawn on by the clipping path will be modified as long as it remains in effect.

Parâmetros

clip_mask

the clipping path name

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setClipPath() example

<?php
function setClipPath($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeOpacity(1);
$draw->setStrokeWidth(2);

$clipPathName = 'testClipPath';

$draw->pushClipPath($clipPathName);
$draw->rectangle(0, 0, 250, 250);
$draw->popClipPath();
$draw->setClipPath($clipPathName);
$draw->rectangle(100, 100, 400, 400);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Set the polygon fill rule to be used by the clipping path

  • « ImagickDraw::setClipPath
  • ImagickDraw::setClipUnits »
  • PHP Manual
  • ImagickDraw
  • Set the polygon fill rule to be used by the clipping path

ImagickDraw::setClipRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path

Descrição

public ImagickDraw::setClipRule(int $fill_rule): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Set the polygon fill rule to be used by the clipping path.

Parâmetros

fill_rule

One of the FILLRULE constant (imagick::FILLRULE_*).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setClipRule() example

<?php
function setClipRule($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeOpacity(1);
$draw->setStrokeWidth(2);
//\Imagick::FILLRULE_EVENODD
//\Imagick::FILLRULE_NONZERO

$clipPathName = 'testClipPath';
$draw->pushClipPath($clipPathName);
$draw->setClipRule(\Imagick::FILLRULE_EVENODD);
$draw->rectangle(0, 0, 300, 500);
$draw->rectangle(200, 0, 500, 500);
$draw->popClipPath();
$draw->setClipPath($clipPathName);
$draw->rectangle(200, 200, 300, 300);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the interpretation of clip path units

  • « ImagickDraw::setClipRule
  • ImagickDraw::setFillAlpha »
  • PHP Manual
  • ImagickDraw
  • Sets the interpretation of clip path units

ImagickDraw::setClipUnits

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setClipUnits — Sets the interpretation of clip path units

Descrição

public ImagickDraw::setClipUnits(int $clip_units): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the interpretation of clip path units.

Parâmetros

clip_units

the number of clip units

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setClipUnits() example

<?php
function setClipUnits($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeOpacity(1);
$draw->setStrokeWidth(2);
$clipPathName = 'testClipPath';
$draw->setClipUnits(\Imagick::RESOLUTION_PIXELSPERINCH);
$draw->pushClipPath($clipPathName);
$draw->rectangle(0, 0, 250, 250);
$draw->popClipPath();
$draw->setClipPath($clipPathName);

//RESOLUTION_PIXELSPERINCH
//RESOLUTION_PIXELSPERCENTIMETER

$draw->rectangle(200, 200, 300, 300);
$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the opacity to use when drawing using the fill color or fill texture

  • « ImagickDraw::setClipUnits
  • ImagickDraw::setFillColor »
  • PHP Manual
  • ImagickDraw
  • Sets the opacity to use when drawing using the fill color or fill texture

ImagickDraw::setFillAlpha

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture

Descrição

public ImagickDraw::setFillAlpha(float $opacity): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

Parâmetros

opacity

fill alpha

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setFillAlpha() example

<?php
function setFillAlpha($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeOpacity(1);
$draw->setStrokeWidth(2);
$draw->rectangle(100, 200, 200, 300);
@$draw->setFillAlpha(0.4);
$draw->rectangle(300, 200, 400, 300);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the fill color to be used for drawing filled objects

  • « ImagickDraw::setFillAlpha
  • ImagickDraw::setFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Sets the fill color to be used for drawing filled objects

ImagickDraw::setFillColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects

Descrição

public ImagickDraw::setFillColor(ImagickPixel $fill_pixel): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the fill color to be used for drawing filled objects.

Parâmetros

fill_pixel

ImagickPixel to use to set the color

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setFillColor()

<?php
function setFillColor($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeWidth(1.5);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->rectangle(50, 50, 150, 150);

$draw->setFillColor("rgb(200, 32, 32)");
$draw->rectangle(200, 50, 300, 150);

$image = new \Imagick();
$image->newImage(500, 500, $backgroundColor);
$image->setImageFormat("png");

$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Sets the opacity to use when drawing using the fill color or fill texture

  • « ImagickDraw::setFillColor
  • ImagickDraw::setFillPatternURL »
  • PHP Manual
  • ImagickDraw
  • Sets the opacity to use when drawing using the fill color or fill texture

ImagickDraw::setFillOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture

Descrição

public ImagickDraw::setFillOpacity(float $fillOpacity): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

Parâmetros

fillOpacity

the fill opacity

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setFillOpacity()

<?php
function setFillOpacity($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeOpacity(1);
$draw->setStrokeWidth(2);

$draw->rectangle(100, 200, 200, 300);

$draw->setFillOpacity(0.4);
$draw->rectangle(300, 200, 400, 300);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the URL to use as a fill pattern for filling objects

  • « ImagickDraw::setFillOpacity
  • ImagickDraw::setFillRule »
  • PHP Manual
  • ImagickDraw
  • Sets the URL to use as a fill pattern for filling objects

ImagickDraw::setFillPatternURL

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects

Descrição

public ImagickDraw::setFillPatternURL(string $fill_url): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the URL to use as a fill pattern for filling objects. Only local URLs ("#identifier") are supported at this time. These local URLs are normally created by defining a named fill pattern with DrawPushPattern/DrawPopPattern.

Parâmetros

fill_url

URL to use to obtain fill pattern.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sets the fill rule to use while drawing polygons

  • « ImagickDraw::setFillPatternURL
  • ImagickDraw::setFont »
  • PHP Manual
  • ImagickDraw
  • Sets the fill rule to use while drawing polygons

ImagickDraw::setFillRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons

Descrição

public ImagickDraw::setFillRule(int $fill_rule): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the fill rule to use while drawing polygons.

Parâmetros

fill_rule

One of the FILLRULE constant (imagick::FILLRULE_*).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setFillRule() example

<?php
function setFillRule($fillColor, $strokeColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeWidth(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$fillRules = [\Imagick::FILLRULE_NONZERO, \Imagick::FILLRULE_EVENODD];

$points = 11;
$size = 150;

$draw->translate(175, 160);

for ($x = 0; $x < 2; $x++) {
$draw->setFillRule($fillRules[$x]);
$draw->pathStart();
for ($n = 0; $n < $points * 2; $n++) {

if ($n >= $points) {
$angle = fmod($n * 360 * 4 / $points, 360) * pi() / 180;
}
else {
$angle = fmod($n * 360 * 3 / $points, 360) * pi() / 180;
}

$positionX = $size * sin($angle);
$positionY = $size * cos($angle);

if ($n == 0) {
$draw->pathMoveToAbsolute($positionX, $positionY);
}
else {
$draw->pathLineToAbsolute($positionX, $positionY);
}
}

$draw->pathClose();
$draw->pathFinish();

$draw->translate(325, 0);
}

$image = new \Imagick();
$image->newImage(700, 320, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Sets the fully-specified font to use when annotating with text

  • « ImagickDraw::setFillRule
  • ImagickDraw::setFontFamily »
  • PHP Manual
  • ImagickDraw
  • Sets the fully-specified font to use when annotating with text

ImagickDraw::setFont

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text

Descrição

public ImagickDraw::setFont(string $font_name): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the fully-specified font to use when annotating with text.

Parâmetros

font_name

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickDraw::setFont() example

<?php
function setFont($fillColor, $strokeColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(2);
$draw->setFontSize(36);

$draw->setFont("../fonts/Arial.ttf");
$draw->annotation(50, 50, "Lorem Ipsum!");

$draw->setFont("../fonts/Consolas.ttf");
$draw->annotation(50, 100, "Lorem Ipsum!");

$draw->setFont("../fonts/CANDY.TTF");
$draw->annotation(50, 150, "Lorem Ipsum!");

$draw->setFont("../fonts/Inconsolata-dz.otf");
$draw->annotation(50, 200, "Lorem Ipsum!");

$imagick = new \Imagick();
$imagick->newImage(500, 300, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the font family to use when annotating with text

  • « ImagickDraw::setFont
  • ImagickDraw::setFontSize »
  • PHP Manual
  • ImagickDraw
  • Sets the font family to use when annotating with text

ImagickDraw::setFontFamily

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontFamily — Sets the font family to use when annotating with text

Descrição

public ImagickDraw::setFontFamily(string $font_family): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the font family to use when annotating with text.

Parâmetros

font_family

the font family

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickDraw::setFontFamily() example

<?php
function setFontFamily($fillColor, $strokeColor, $backgroundColor) {

$draw = new \ImagickDraw();

$strokeColor = new \ImagickPixel($strokeColor);
$fillColor = new \ImagickPixel($fillColor);

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(2);

$draw->setFontSize(48);

$draw->setFontFamily("Times");
$draw->annotation(50, 50, "Lorem Ipsum!");

$draw->setFontFamily("AvantGarde");
$draw->annotation(50, 100, "Lorem Ipsum!");

$draw->setFontFamily("NewCenturySchlbk");
$draw->annotation(50, 150, "Lorem Ipsum!");

$draw->setFontFamily("Palatino");
$draw->annotation(50, 200, "Lorem Ipsum!");

$imagick = new \Imagick();
$imagick->newImage(450, 250, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the font pointsize to use when annotating with text

  • « ImagickDraw::setFontFamily
  • ImagickDraw::setFontStretch »
  • PHP Manual
  • ImagickDraw
  • Sets the font pointsize to use when annotating with text

ImagickDraw::setFontSize

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text

Descrição

public ImagickDraw::setFontSize(float $pointsize): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the font pointsize to use when annotating with text.

Parâmetros

pointsize

the point size

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setFontSize() example

<?php
function setFontSize($fillColor, $strokeColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);
$draw->setFont("../fonts/Arial.ttf");

$sizes = [24, 36, 48, 60, 72];

foreach ($sizes as $size) {
$draw->setFontSize($size);
$draw->annotation(50, ($size * $size / 16), "Lorem Ipsum!");
}

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the font stretch to use when annotating with text

  • « ImagickDraw::setFontSize
  • ImagickDraw::setFontStyle »
  • PHP Manual
  • ImagickDraw
  • Sets the font stretch to use when annotating with text

ImagickDraw::setFontStretch

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text

Descrição

public ImagickDraw::setFontStretch(int $fontStretch): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the font stretch to use when annotating with text. The AnyStretch enumeration acts as a wild-card "don't care" option.

Parâmetros

fontStretch

One of the STRETCH constant (imagick::STRETCH_*).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setFontStretch() example

<?php
function setFontStretch($fillColor, $strokeColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);
$draw->setFontSize(36);

$fontStretchTypes = [
\Imagick::STRETCH_ULTRACONDENSED,
\Imagick::STRETCH_CONDENSED,
\Imagick::STRETCH_SEMICONDENSED,
\Imagick::STRETCH_SEMIEXPANDED,
\Imagick::STRETCH_EXPANDED,
\Imagick::STRETCH_EXTRAEXPANDED,
\Imagick::STRETCH_ULTRAEXPANDED,
\Imagick::STRETCH_ANY
];

$offset = 0;
foreach ($fontStretchTypes as $fontStretch) {
$draw->setFontStretch($fontStretch);
$draw->annotation(50, 75 + $offset, "Lorem Ipsum!");
$offset += 50;
}

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the font style to use when annotating with text

  • « ImagickDraw::setFontStretch
  • ImagickDraw::setFontWeight »
  • PHP Manual
  • ImagickDraw
  • Sets the font style to use when annotating with text

ImagickDraw::setFontStyle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontStyle — Sets the font style to use when annotating with text

Descrição

public ImagickDraw::setFontStyle(int $style): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

Parâmetros

style

One of the STYLE constant (imagick::STYLE_*).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setFontStyle() example

<?php
function setFontStyle($fillColor, $strokeColor, $backgroundColor) {
$draw = new \ImagickDraw();
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(1);
$draw->setFontSize(36);
$draw->setFontStyle(\Imagick::STYLE_NORMAL);
$draw->annotation(50, 50, "Lorem Ipsum!");

$draw->setFontStyle(\Imagick::STYLE_ITALIC);
$draw->annotation(50, 100, "Lorem Ipsum!");

$draw->setFontStyle(\Imagick::STYLE_OBLIQUE);
$draw->annotation(50, 150, "Lorem Ipsum!");

$imagick = new \Imagick();
$imagick->newImage(350, 300, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the font weight

  • « ImagickDraw::setFontStyle
  • ImagickDraw::setGravity »
  • PHP Manual
  • ImagickDraw
  • Sets the font weight

ImagickDraw::setFontWeight

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontWeight — Sets the font weight

Descrição

public ImagickDraw::setFontWeight(int $font_weight): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the font weight to use when annotating with text.

Parâmetros

font_weight

Valor Retornado

Exemplos

Exemplo #1 ImagickDraw::setFontWeight() example

<?php
function setFontWeight($fillColor, $strokeColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(1);

$draw->setFontSize(36);

$draw->setFontWeight(100);
$draw->annotation(50, 50, "Lorem Ipsum!");

$draw->setFontWeight(200);
$draw->annotation(50, 100, "Lorem Ipsum!");

$draw->setFontWeight(400);
$draw->annotation(50, 150, "Lorem Ipsum!");

$draw->setFontWeight(800);
$draw->annotation(50, 200, "Lorem Ipsum!");

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the text placement gravity

  • « ImagickDraw::setFontWeight
  • ImagickDraw::setResolution »
  • PHP Manual
  • ImagickDraw
  • Sets the text placement gravity

ImagickDraw::setGravity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setGravity — Sets the text placement gravity

Descrição

public ImagickDraw::setGravity(int $gravity): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the text placement gravity to use when annotating with text.

Parâmetros

gravity

One of the GRAVITY constant (imagick::GRAVITY_*).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setGravity() example

<?php
function setGravity($fillColor, $strokeColor, $backgroundColor) {

$draw = new \ImagickDraw();
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(1);
$draw->setFontSize(24);

$gravitySettings = array(
\Imagick::GRAVITY_NORTHWEST => 'NorthWest',
\Imagick::GRAVITY_NORTH => 'North',
\Imagick::GRAVITY_NORTHEAST => 'NorthEast',
\Imagick::GRAVITY_WEST => 'West',
\Imagick::GRAVITY_CENTER => 'Centre',
\Imagick::GRAVITY_SOUTHWEST => 'SouthWest',
\Imagick::GRAVITY_SOUTH => 'South',
\Imagick::GRAVITY_SOUTHEAST => 'SouthEast',
\Imagick::GRAVITY_EAST => 'East'
);

$draw->setFont("../fonts/Arial.ttf");

foreach ($gravitySettings as $type => $description) {
$draw->setGravity($type);
$draw->annotation(50, 50, '"' . $description . '"');
}

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the resolution

  • « ImagickDraw::setGravity
  • ImagickDraw::setStrokeAlpha »
  • PHP Manual
  • ImagickDraw
  • Sets the resolution

ImagickDraw::setResolution

(PECL imagick 3 >= 3.1.0)

ImagickDraw::setResolution — Sets the resolution

Descrição

public ImagickDraw::setResolution(float $x_resolution, float $y_resolution): bool

Sets the resolution.

Parâmetros

x_resolution

y_resolution

Valor Retornado

Retorna true em caso de sucesso.


Specifies the opacity of stroked object outlines

  • « ImagickDraw::setResolution
  • ImagickDraw::setStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Specifies the opacity of stroked object outlines

ImagickDraw::setStrokeAlpha

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines

Descrição

public ImagickDraw::setStrokeAlpha(float $opacity): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies the opacity of stroked object outlines.

Parâmetros

opacity

opacity

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setStrokeAlpha() example

<?php
function setStrokeAlpha($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(4);
$draw->line(100, 100, 400, 145);
$draw->rectangle(100, 200, 225, 350);
$draw->setStrokeOpacity(0.1);
$draw->line(100, 120, 400, 165);
$draw->rectangle(275, 200, 400, 350);

$image = new \Imagick();
$image->newImage(500, 400, $backgroundColor);
$image->setImageFormat("png");

$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Controls whether stroked outlines are antialiased

  • « ImagickDraw::setStrokeAlpha
  • ImagickDraw::setStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Controls whether stroked outlines are antialiased

ImagickDraw::setStrokeAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased

Descrição

public ImagickDraw::setStrokeAntialias(bool $stroke_antialias): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Controls whether stroked outlines are antialiased. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

Parâmetros

stroke_antialias

the antialias setting

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setStrokeAntialias() example

<?php
function setStrokeAntialias($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(1);
$draw->setStrokeAntialias(false);
$draw->line(100, 100, 400, 105);

$draw->line(100, 140, 400, 185);

$draw->setStrokeAntialias(true);
$draw->line(100, 110, 400, 115);
$draw->line(100, 150, 400, 195);

$image = new \Imagick();
$image->newImage(500, 250, $backgroundColor);
$image->setImageFormat("png");

$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Sets the color used for stroking object outlines

  • « ImagickDraw::setStrokeAntialias
  • ImagickDraw::setStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Sets the color used for stroking object outlines

ImagickDraw::setStrokeColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines

Descrição

public ImagickDraw::setStrokeColor(ImagickPixel $stroke_pixel): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the color used for stroking object outlines.

Parâmetros

stroke_pixel

the stroke color

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setStrokeColor() example

<?php
function setStrokeColor($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(5);

$draw->line(100, 100, 400, 145);
$draw->rectangle(100, 200, 225, 350);

$draw->setStrokeOpacity(0.1);
$draw->line(100, 120, 400, 165);
$draw->rectangle(275, 200, 400, 350);

$image = new \Imagick();
$image->newImage(500, 400, $backgroundColor);
$image->setImageFormat("png");

$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Specifies the pattern of dashes and gaps used to stroke paths

  • « ImagickDraw::setStrokeColor
  • ImagickDraw::setStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Specifies the pattern of dashes and gaps used to stroke paths

ImagickDraw::setStrokeDashArray

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths

Descrição

public ImagickDraw::setStrokeDashArray(array $dashArray): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies the pattern of dashes and gaps used to stroke paths. The strokeDashArray represents an array of numbers that specify the lengths of alternating dashes and gaps in pixels. If an odd number of values is provided, then the list of values is repeated to yield an even number of values. To remove an existing dash array, pass a zero number_elements argument and null dash_array. A typical strokeDashArray_ array might contain the members 5 3 2.

Parâmetros

dashArray

array of floats

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickDraw::setStrokeDashArray() example

<?php
function setStrokeDashArray($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(4);

$draw->setStrokeDashArray([10, 10]);
$draw->rectangle(100, 50, 225, 175);

$draw->setStrokeDashArray([20, 5, 20, 5, 5, 5,]);
$draw->rectangle(275, 50, 400, 175);

$draw->setStrokeDashArray([20, 5, 20, 5, 5]);
$draw->rectangle(100, 200, 225, 350);

$draw->setStrokeDashArray([1, 1, 1, 1, 2, 2, 3, 3, 5, 5, 8, 8, 13, 13, 21, 21, 34, 34, 55, 55, 89, 89, 144, 144, 233, 233, 377, 377, 610, 610, 987, 987, 1597, 1597, 2584, 2584, 4181, 4181,]);

$draw->rectangle(275, 200, 400, 350);

$image = new \Imagick();
$image->newImage(500, 400, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Specifies the offset into the dash pattern to start the dash

  • « ImagickDraw::setStrokeDashArray
  • ImagickDraw::setStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Specifies the offset into the dash pattern to start the dash

ImagickDraw::setStrokeDashOffset

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash

Descrição

public ImagickDraw::setStrokeDashOffset(float $dash_offset): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies the offset into the dash pattern to start the dash.

Parâmetros

dash_offset

dash offset

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setStrokeDashOffset() example

<?php
function setStrokeDashOffset($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(4);
$draw->setStrokeDashArray([20, 20]);
$draw->setStrokeDashOffset(0);
$draw->rectangle(100, 50, 225, 175);

//Start the dash effect halfway through the solid portion
$draw->setStrokeDashOffset(10);
$draw->rectangle(275, 50, 400, 175);

//Start the dash effect on the space portion
$draw->setStrokeDashOffset(20);
$draw->rectangle(100, 200, 225, 350);
$draw->setStrokeDashOffset(5);
$draw->rectangle(275, 200, 400, 350);

$image = new \Imagick();
$image->newImage(500, 400, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Specifies the shape to be used at the end of open subpaths when they are stroked

  • « ImagickDraw::setStrokeDashOffset
  • ImagickDraw::setStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Specifies the shape to be used at the end of open subpaths when they are stroked

ImagickDraw::setStrokeLineCap

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked

Descrição

public ImagickDraw::setStrokeLineCap(int $linecap): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies the shape to be used at the end of open subpaths when they are stroked.

Parâmetros

linecap

One of the LINECAP constant (imagick::LINECAP_*).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setStrokeLineCap() example

<?php
function setStrokeLineCap($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(25);

$lineTypes = [\Imagick::LINECAP_BUTT, \Imagick::LINECAP_ROUND, \Imagick::LINECAP_SQUARE,];

$offset = 0;

foreach ($lineTypes as $lineType) {
$draw->setStrokeLineCap($lineType);
$draw->line(50 + $offset, 50, 50 + $offset, 250);
$offset += 50;
}

$imagick = new \Imagick();
$imagick->newImage(300, 300, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Specifies the shape to be used at the corners of paths when they are stroked

  • « ImagickDraw::setStrokeLineCap
  • ImagickDraw::setStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Specifies the shape to be used at the corners of paths when they are stroked

ImagickDraw::setStrokeLineJoin

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked

Descrição

public ImagickDraw::setStrokeLineJoin(int $linejoin): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

Parâmetros

linejoin

One of the LINEJOIN constant (imagick::LINEJOIN_*).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setStrokeLineJoin() example

<?php
function setStrokeLineJoin($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();
$draw->setStrokeWidth(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(20);

$offset = 220;

$lineJoinStyle = [
\Imagick::LINEJOIN_MITER,
\Imagick::LINEJOIN_ROUND,
\Imagick::LINEJOIN_BEVEL,
];

for ($x = 0; $x < count($lineJoinStyle); $x++) {
$draw->setStrokeLineJoin($lineJoinStyle[$x]);
$points = [
['x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
['x' => 20 * 5, 'y' => 20 * 5 + $x * $offset],
['x' => 70 * 5, 'y' => 50 * 5 + $x * $offset],
['x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
];

$draw->polyline($points);
}

$image = new \Imagick();
$image->newImage(500, 700, $backgroundColor);
$image->setImageFormat("png");

$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Specifies the miter limit

  • « ImagickDraw::setStrokeLineJoin
  • ImagickDraw::setStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Specifies the miter limit

ImagickDraw::setStrokeMiterLimit

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeMiterLimit — Specifies the miter limit

Descrição

public ImagickDraw::setStrokeMiterLimit(int $miterlimit): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

Parâmetros

miterlimit

the miter limit

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setStrokeMiterLimit() example

<?php
function setStrokeMiterLimit($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setStrokeOpacity(0.6);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(10);

$yOffset = 100;

$draw->setStrokeLineJoin(\Imagick::LINEJOIN_MITER);

for ($y = 0; $y < 3; $y++) {

$draw->setStrokeMiterLimit(40 * $y);

$points = [
['x' => 22 * 3, 'y' => 15 * 4 + $y * $yOffset],
['x' => 20 * 3, 'y' => 20 * 4 + $y * $yOffset],
['x' => 70 * 5, 'y' => 45 * 4 + $y * $yOffset],
];

$draw->polygon($points);
}

$image = new \Imagick();
$image->newImage(500, 500, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

$image->setImageType(\Imagick::IMGTYPE_PALETTE);
$image->setImageCompressionQuality(100);
$image->stripImage();

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Specifies the opacity of stroked object outlines

  • « ImagickDraw::setStrokeMiterLimit
  • ImagickDraw::setStrokePatternURL »
  • PHP Manual
  • ImagickDraw
  • Specifies the opacity of stroked object outlines

ImagickDraw::setStrokeOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines

Descrição

public ImagickDraw::setStrokeOpacity(float $stroke_opacity): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies the opacity of stroked object outlines.

Parâmetros

stroke_opacity

stroke opacity. 1.0 is fully opaque

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setStrokeOpacity() example

<?php
function setStrokeOpacity($strokeColor, $fillColor, $backgroundColor) {
$draw = new \ImagickDraw();

$draw->setStrokeWidth(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(10);
$draw->setStrokeOpacity(1);
$draw->line(100, 80, 400, 125);
$draw->rectangle(25, 200, 150, 350);
$draw->setStrokeOpacity(0.5);
$draw->line(100, 100, 400, 145);
$draw->rectangle(200, 200, 325, 350);
$draw->setStrokeOpacity(0.2);
$draw->line(100, 120, 400, 165);
$draw->rectangle(375, 200, 500, 350);

$image = new \Imagick();
$image->newImage(550, 400, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Sets the pattern used for stroking object outlines

  • « ImagickDraw::setStrokeOpacity
  • ImagickDraw::setStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Sets the pattern used for stroking object outlines

ImagickDraw::setStrokePatternURL

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines

Descrição

public ImagickDraw::setStrokePatternURL(string $stroke_url): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the pattern used for stroking object outlines.

Parâmetros

stroke_url

stroke URL

Valor Retornado

Retorna true em caso de sucesso.


Sets the width of the stroke used to draw object outlines

  • « ImagickDraw::setStrokePatternURL
  • ImagickDraw::setTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Sets the width of the stroke used to draw object outlines

ImagickDraw::setStrokeWidth

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines

Descrição

public ImagickDraw::setStrokeWidth(float $stroke_width): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the width of the stroke used to draw object outlines.

Parâmetros

stroke_width

stroke width

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setStrokeWidth() example

<?php
function setStrokeWidth($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeWidth(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->line(100, 100, 400, 145);
$draw->rectangle(100, 200, 225, 350);
$draw->setStrokeWidth(5);
$draw->line(100, 120, 400, 165);
$draw->rectangle(275, 200, 400, 350);

$image = new \Imagick();
$image->newImage(500, 400, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Specifies a text alignment

  • « ImagickDraw::setStrokeWidth
  • ImagickDraw::setTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Specifies a text alignment

ImagickDraw::setTextAlignment

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextAlignment — Specifies a text alignment

Descrição

public ImagickDraw::setTextAlignment(int $alignment): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies a text alignment to be applied when annotating with text.

Parâmetros

alignment

One of the ALIGN constant (imagick::ALIGN_*).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setTextAlignment() example

<?php
function setTextAlignment($strokeColor, $fillColor, $backgroundColor) {
$draw = new \ImagickDraw();
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(1);
$draw->setFontSize(36);

$draw->setTextAlignment(\Imagick::ALIGN_LEFT);
$draw->annotation(250, 75, "Lorem Ipsum!");
$draw->setTextAlignment(\Imagick::ALIGN_CENTER);
$draw->annotation(250, 150, "Lorem Ipsum!");
$draw->setTextAlignment(\Imagick::ALIGN_RIGHT);
$draw->annotation(250, 225, "Lorem Ipsum!");
$draw->line(250, 0, 250, 500);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Controls whether text is antialiased

  • « ImagickDraw::setTextAlignment
  • ImagickDraw::setTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Controls whether text is antialiased

ImagickDraw::setTextAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextAntialias — Controls whether text is antialiased

Descrição

public ImagickDraw::setTextAntialias(bool $antiAlias): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Controls whether text is antialiased. Text is antialiased by default.

Parâmetros

antiAlias

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setTextAntialias() example

<?php
function setTextAntialias($fillColor, $backgroundColor) {

$draw = new \ImagickDraw();
$draw->setStrokeColor('none');
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(1);
$draw->setFontSize(32);
$draw->setTextAntialias(false);
$draw->annotation(5, 30, "Lorem Ipsum!");
$draw->setTextAntialias(true);
$draw->annotation(5, 65, "Lorem Ipsum!");

$imagick = new \Imagick();
$imagick->newImage(220, 80, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

//Scale the image so that people can see the aliasing.
$imagick->scaleImage(220 * 6, 80 * 6);
$imagick->cropImage(640, 480, 0, 0);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Specifies a decoration

  • « ImagickDraw::setTextAntialias
  • ImagickDraw::setTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Specifies a decoration

ImagickDraw::setTextDecoration

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextDecoration — Specifies a decoration

Descrição

public ImagickDraw::setTextDecoration(int $decoration): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies a decoration to be applied when annotating with text.

Parâmetros

decoration

One of the DECORATION constant (imagick::DECORATION_*).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setTextDecoration() example

<?php
function setTextDecoration($strokeColor, $fillColor, $backgroundColor, $textDecoration) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);
$draw->setFontSize(72);
$draw->setTextDecoration($textDecoration);
$draw->annotation(50, 75, "Lorem Ipsum!");

$imagick = new \Imagick();
$imagick->newImage(500, 200, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Specifies the text code set

  • « ImagickDraw::setTextDecoration
  • ImagickDraw::setTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Specifies the text code set

ImagickDraw::setTextEncoding

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextEncoding — Specifies the text code set

Descrição

public ImagickDraw::setTextEncoding(string $encoding): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

Parâmetros

encoding

the encoding name

Valor Retornado

Nenhum valor é retornado.


Sets the text interline spacing

  • « ImagickDraw::setTextEncoding
  • ImagickDraw::setTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Sets the text interline spacing

ImagickDraw::setTextInterlineSpacing

(PECL imagick 3 >= 3.1.0)

ImagickDraw::setTextInterlineSpacing — Sets the text interline spacing

Descrição

public ImagickDraw::setTextInterlineSpacing(float $spacing): bool

Sets the text interline spacing.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

spacing

Valor Retornado

Retorna true em caso de sucesso.


Sets the text interword spacing

  • « ImagickDraw::setTextInterlineSpacing
  • ImagickDraw::setTextKerning »
  • PHP Manual
  • ImagickDraw
  • Sets the text interword spacing

ImagickDraw::setTextInterwordSpacing

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickDraw::setTextInterwordSpacing — Sets the text interword spacing

Descrição

public ImagickDraw::setTextInterwordSpacing(float $spacing): bool

Sets the text interword spacing.

Parâmetros

spacing

Valor Retornado

Retorna true em caso de sucesso.


Sets the text kerning

  • « ImagickDraw::setTextInterwordSpacing
  • ImagickDraw::setTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Sets the text kerning

ImagickDraw::setTextKerning

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickDraw::setTextKerning — Sets the text kerning

Descrição

public ImagickDraw::setTextKerning(float $kerning): bool

Sets the text kerning

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

kerning

Valor Retornado

Retorna true em caso de sucesso.


Specifies the color of a background rectangle

  • « ImagickDraw::setTextKerning
  • ImagickDraw::setVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Specifies the color of a background rectangle

ImagickDraw::setTextUnderColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle

Descrição

public ImagickDraw::setTextUnderColor(ImagickPixel $under_color): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Specifies the color of a background rectangle to place under text annotations.

Parâmetros

under_color

the under color

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setTextUnderColor() example

<?php
function setTextUnderColor($strokeColor, $fillColor, $backgroundColor, $textUnderColor) {
$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);
$draw->setFontSize(72);
$draw->annotation(50, 75, "Lorem Ipsum!");
$draw->setTextUnderColor($textUnderColor);
$draw->annotation(50, 175, "Lorem Ipsum!");

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the vector graphics

  • « ImagickDraw::setTextUnderColor
  • ImagickDraw::setViewbox »
  • PHP Manual
  • ImagickDraw
  • Sets the vector graphics

ImagickDraw::setVectorGraphics

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setVectorGraphics — Sets the vector graphics

Descrição

public ImagickDraw::setVectorGraphics(string $xml): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the vector graphics associated with the specified ImagickDraw object. Use this method with ImagickDraw::getVectorGraphics() as a method to persist the vector graphics state.

Parâmetros

xml

xml containing the vector graphics

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ImagickDraw::setVectorGraphics() example

<?php
function setVectorGraphics() {
//Setup a draw object with some drawing in it.
$draw = new \ImagickDraw();
$draw->setFillColor("red");
$draw->circle(20, 20, 50, 50);
$draw->setFillColor("blue");
$draw->circle(50, 70, 50, 50);
$draw->rectangle(50, 120, 80, 150);

//Get the drawing as a string
$SVG = $draw->getVectorGraphics();

//$svg is a string, and could be saved anywhere a string can be saved

//Use the saved drawing to generate a new draw object
$draw2 = new \ImagickDraw();
//Apparently the SVG text is missing the root element.
$draw2->setVectorGraphics("<root>".$SVG."</root>");

$imagick = new \Imagick();
$imagick->newImage(200, 200, 'white');
$imagick->setImageFormat("png");

$imagick->drawImage($draw2);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Sets the overall canvas size

  • « ImagickDraw::setVectorGraphics
  • ImagickDraw::skewX »
  • PHP Manual
  • ImagickDraw
  • Sets the overall canvas size

ImagickDraw::setViewbox

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setViewbox — Sets the overall canvas size

Descrição

public ImagickDraw::setViewbox(
int $x1,
int $y1,
int $x2,
int $y2
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

Parâmetros

x1

left x coordinate

y1

left y coordinate

x2

right x coordinate

y2

right y coordinate

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::setViewBox() example

<?php
function setViewBox($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);
$draw->setFontSize(72);

/*

Sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

*/

$draw->circle(250, 250, 250, 0);
$draw->setviewbox(0, 0, 200, 200);
$draw->circle(125, 250, 250, 250);
$draw->translate(250, 125);
$draw->circle(0, 0, 125, 0);

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Skews the current coordinate system in the horizontal direction

  • « ImagickDraw::setViewbox
  • ImagickDraw::skewY »
  • PHP Manual
  • ImagickDraw
  • Skews the current coordinate system in the horizontal direction

ImagickDraw::skewX

(PECL imagick 2, PECL imagick 3)

ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction

Descrição

public ImagickDraw::skewX(float $degrees): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Skews the current coordinate system in the horizontal direction.

Parâmetros

degrees

degrees to skew

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::skewX() example

<?php
function skewX($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
$startX, $startY, $endX, $endY, $skew) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setStrokeWidth(2);
$draw->setFillColor($fillColor);
$draw->rectangle($startX, $startY, $endX, $endY);
$draw->setFillColor($fillModifiedColor);
$draw->skewX($skew);
$draw->rectangle($startX, $startY, $endX, $endY);

$image = new \Imagick();
$image->newImage(500, 500, $backgroundColor);
$image->setImageFormat("png");

$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Skews the current coordinate system in the vertical direction

  • « ImagickDraw::skewX
  • ImagickDraw::translate »
  • PHP Manual
  • ImagickDraw
  • Skews the current coordinate system in the vertical direction

ImagickDraw::skewY

(PECL imagick 2, PECL imagick 3)

ImagickDraw::skewY — Skews the current coordinate system in the vertical direction

Descrição

public ImagickDraw::skewY(float $degrees): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Skews the current coordinate system in the vertical direction.

Parâmetros

degrees

degrees to skew

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::skewY() example

<?php
function skewY($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
$startX, $startY, $endX, $endY, $skew) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setStrokeWidth(2);
$draw->setFillColor($fillColor);
$draw->rectangle($startX, $startY, $endX, $endY);
$draw->setFillColor($fillModifiedColor);
$draw->skewY($skew);
$draw->rectangle($startX, $startY, $endX, $endY);

$image = new \Imagick();
$image->newImage(500, 500, $backgroundColor);
$image->setImageFormat("png");
$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Applies a translation to the current coordinate system

  • « ImagickDraw::skewY
  • ImagickPixel »
  • PHP Manual
  • ImagickDraw
  • Applies a translation to the current coordinate system

ImagickDraw::translate

(PECL imagick 2, PECL imagick 3)

ImagickDraw::translate — Applies a translation to the current coordinate system

Descrição

public ImagickDraw::translate(float $x, float $y): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Applies a translation to the current coordinate system which moves the coordinate system origin to the specified coordinate.

Parâmetros

x

horizontal translation

y

vertical translation

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 ImagickDraw::translate() example

<?php
function translate($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
$startX, $startY, $endX, $endY, $translateX, $translateY) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->rectangle($startX, $startY, $endX, $endY);

$draw->setFillColor($fillModifiedColor);
$draw->translate($translateX, $translateY);
$draw->rectangle($startX, $startY, $endX, $endY);

$image = new \Imagick();
$image->newImage(500, 500, $backgroundColor);
$image->setImageFormat("png");

$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


The ImagickPixel class

(PECL imagick 2, PECL imagick 3)

Resumo da classe

class ImagickPixel {
public clear(): bool
public __construct(string $color = ?)
public destroy(): bool
public getColor(int $normalized = 0): array
public getColorAsString(): string
public getColorCount(): int
public getColorQuantum(): array
public getColorValue(int $color): float
public getColorValueQuantum(int $color): int|float
public getHSL(): array
public getIndex(): int
public isPixelSimilar(ImagickPixel $color, float $fuzz): bool
public isPixelSimilarQuantum(string $color, string $fuzz = ?): bool
public isSimilar(ImagickPixel $color, float $fuzz): bool
public setColor(string $color): bool
public setcolorcount(int $colorCount): bool
public setColorValue(int $color, float $value): bool
public setColorValueQuantum(int $color, int|float $value): bool
public setHSL(float $hue, float $saturation, float $luminosity): bool
public setIndex(int $index): bool
}

Índice

  • ImagickPixel::clear — Clears resources associated with this object
  • ImagickPixel::__construct — The ImagickPixel constructor
  • ImagickPixel::destroy — Deallocates resources associated with this object
  • ImagickPixel::getColor — Returns the color
  • ImagickPixel::getColorAsString — Returns the color as a string
  • ImagickPixel::getColorCount — Returns the color count associated with this color
  • ImagickPixel::getColorQuantum — Returns the color of the pixel in an array as Quantum values
  • ImagickPixel::getColorValue — Gets the normalized value of the provided color channel
  • ImagickPixel::getColorValueQuantum — Gets the quantum value of a color in the ImagickPixel
  • ImagickPixel::getHSL — Returns the normalized HSL color of the ImagickPixel object
  • ImagickPixel::getIndex — Gets the colormap index of the pixel wand
  • ImagickPixel::isPixelSimilar — Check the distance between this color and another
  • ImagickPixel::isPixelSimilarQuantum — Returns whether two colors differ by less than the specified distance
  • ImagickPixel::isSimilar — Check the distance between this color and another
  • ImagickPixel::setColor — Sets the color
  • ImagickPixel::setColorCount — Sets the color count associated with this color
  • ImagickPixel::setColorValue — Sets the normalized value of one of the channels
  • ImagickPixel::setColorValueQuantum — Sets the quantum value of a color element of the ImagickPixel
  • ImagickPixel::setHSL — Sets the normalized HSL color
  • ImagickPixel::setIndex — Sets the colormap index of the pixel wand


Clears resources associated with this object

  • « ImagickPixel
  • ImagickPixel::__construct »
  • PHP Manual
  • ImagickPixel
  • Clears resources associated with this object

ImagickPixel::clear

(PECL imagick 2, PECL imagick 3)

ImagickPixel::clear — Clears resources associated with this object

Descrição

public ImagickPixel::clear(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Clears the ImagickPixel object, leaving it in a fresh state. This also unsets any color associated with the object.

Valor Retornado

Retorna true em caso de sucesso.


The ImagickPixel constructor

  • « ImagickPixel::clear
  • ImagickPixel::destroy »
  • PHP Manual
  • ImagickPixel
  • The ImagickPixel constructor

ImagickPixel::__construct

(PECL imagick 2, PECL imagick 3)

ImagickPixel::__construct — The ImagickPixel constructor

Descrição

public ImagickPixel::__construct(string $color = ?)
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Constructs an ImagickPixel object. If a color is specified, the object is constructed and then initialised with that color before being returned.

Parâmetros

color

The optional color string to use as the initial value of this object.

Valor Retornado

Returns an ImagickPixel object on success, throwing ImagickPixelException on failure.

Exemplos

Exemplo #1 ImagickPixel::construct()

<?php
function construct() {

$columns = 4;

$exampleColors = array(
"rgba(100%, 0%, 0%, 0.5)",
"hsb(33.3333%, 100%, 75%)", // medium green
"hsl(120, 255, 191.25)", //medium green
"graya(50%, 0.5)", // semi-transparent mid gray
"LightCoral", "none", //"cmyk(0.9, 0.48, 0.83, 0.50)",
"#f00", // #rgb
"#ff0000", // #rrggbb
"#ff0000ff", // #rrggbbaa
"#ffff00000000", // #rrrrggggbbbb
"#ffff00000000ffff", // #rrrrggggbbbbaaaa
"rgb(255, 0, 0)", // an integer in the range 0—255 for each component
"rgb(100.0%, 0.0%, 0.0%)", // a float in the range 0—100% for each component
"rgb(255, 0, 0)", // range 0 - 255
"rgba(255, 0, 0, 1.0)", // the same, with an explicit alpha value
"rgb(100%, 0%, 0%)", // range 0.0% - 100.0%
"rgba(100%, 0%, 0%, 1.0)", // the same, with an explicit alpha value
);

$draw = new \ImagickDraw();
$count = 0;
$black = new \ImagickPixel('rgb(0, 0, 0)');

foreach ($exampleColors as $exampleColor) {
$color = new \ImagickPixel($exampleColor);

$draw->setstrokewidth(1.0);
$draw->setStrokeColor($black);
$draw->setFillColor($color);
$offsetX = ($count % $columns) * 50 + 5;
$offsetY = intval($count / $columns) * 50 + 5;
$draw->rectangle(0 + $offsetX, 0 + $offsetY, 40 + $offsetX, 40 + $offsetY);
$count++;
}

$image = new \Imagick();
$image->newImage(350, 350, "blue");
$image->setImageFormat("png");
$image->drawImage($draw);
header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Deallocates resources associated with this object

  • « ImagickPixel::__construct
  • ImagickPixel::getColor »
  • PHP Manual
  • ImagickPixel
  • Deallocates resources associated with this object

ImagickPixel::destroy

(PECL imagick 2, PECL imagick 3)

ImagickPixel::destroy — Deallocates resources associated with this object

Descrição

public ImagickPixel::destroy(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Deallocates any resources used by the ImagickPixel object, and unsets any associated color. The object should not be used after the destroy function has been called.

Valor Retornado

Retorna true em caso de sucesso.


Returns the color

  • « ImagickPixel::destroy
  • ImagickPixel::getColorAsString »
  • PHP Manual
  • ImagickPixel
  • Returns the color

ImagickPixel::getColor

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getColor — Returns the color

Descrição

public ImagickPixel::getColor(int $normalized = 0): array

Returns the color described by the ImagickPixel object, as an array. If the color has an opacity channel set, this is provided as a fourth value in the list.

Parâmetros

normalized

Normalize the color values. Possible values are 0, 1 or 2.

List of possible values for normalized
normalized | Description
0 | The RGB values are returned as ints in the range 0 to 255 (inclusive.) The alpha value is returned as int and is either 0 or 1.
1 | The RGBA values are returned as floats in the range 0 to 1 (inclusive.)
2 | The RGBA values are returned as ints in the range 0 to 255 (inclusive.)

Valor Retornado

An array of channel values. Throws ImagickPixelException on error.

Exemplos

Exemplo #1 Basic Imagick::getColor() usage

<?php

//Create an ImagickPixel with the predefined color 'brown'
$color = new ImagickPixel('brown');

//Set the color to have an alpha of 25%
$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);

$colorInfo = $color->getColor();

echo "Standard values".PHP_EOL;
print_r($colorInfo);

$colorInfo = $color->getColor(1);

echo "Normalized values:".PHP_EOL;
print_r($colorInfo);

?>

O exemplo acima produzirá:

Standard values
Array
(
    [r] => 165
    [g] => 42
    [b] => 42
    [a] => 0
)
Normalized values:
Array
(
    [r] => 0.64705882352941
    [g] => 0.16470588235294
    [b] => 0.16470588235294
    [a] => 0.25000381475547
)


Returns the color as a string

  • « ImagickPixel::getColor
  • ImagickPixel::getColorCount »
  • PHP Manual
  • ImagickPixel
  • Returns the color as a string

ImagickPixel::getColorAsString

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

ImagickPixel::getColorAsString — Returns the color as a string

Descrição

public ImagickPixel::getColorAsString(): string

Returns the color of the ImagickPixel object as a string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the color of the ImagickPixel object as a string.

Exemplos

Exemplo #1 Basic Imagick::getColorAsString() usage

<?php

//Create an ImagickPixel with the predefined color 'brown'
$color = new ImagickPixel('brown');

$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);

$colorInfo = $color->getColorAsString();

print_r($colorInfo);
?>

O exemplo acima produzirá:

rgb(165,42,42)

Notas

Nota: Alpha not returned

This function does not return the alpha value of the color in the string.


Returns the color count associated with this color

  • « ImagickPixel::getColorAsString
  • ImagickPixel::getColorQuantum »
  • PHP Manual
  • ImagickPixel
  • Returns the color count associated with this color

ImagickPixel::getColorCount

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getColorCount — Returns the color count associated with this color

Descrição

public ImagickPixel::getColorCount(): int

Returns the color count associated with this color.

The color count is the number of pixels in the image that have the same color as this ImagickPixel.

ImagickPixel::getColorCount appears to only work for ImagickPixel objects created through Imagick::getImageHistogram()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the color count as an integer on success, throws ImagickPixelException on failure.

Exemplos

Exemplo #1 ImagickPixel getColorCount()

<?php
$imagick = new \Imagick();
$imagick->newPseudoImage(640, 480, "magick:logo");
$histogramElements = $imagick->getImageHistogram();
$lastColor = array_pop($histogramElements);
echo "Last pixel color count is: ".$lastColor->getColorCount();
?>

The output for this will be similar to:

Last pixel color count is: 256244


Returns the color of the pixel in an array as Quantum values

  • « ImagickPixel::getColorCount
  • ImagickPixel::getColorValue »
  • PHP Manual
  • ImagickPixel
  • Returns the color of the pixel in an array as Quantum values

ImagickPixel::getColorQuantum

(Não há informação de versão disponível, talvez apenas no Git)

ImagickPixel::getColorQuantum — Returns the color of the pixel in an array as Quantum values

Descrição

public ImagickPixel::getColorQuantum(): array

Returns the color of the pixel in an array as Quantum values. If ImageMagick was compiled as HDRI these will be floats, otherwise they will be integers.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with keys "r", "g", "b", "a".


Gets the normalized value of the provided color channel

  • « ImagickPixel::getColorQuantum
  • ImagickPixel::getColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Gets the normalized value of the provided color channel

ImagickPixel::getColorValue

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getColorValue — Gets the normalized value of the provided color channel

Descrição

public ImagickPixel::getColorValue(int $color): float

Retrieves the value of the color channel specified, as a floating-point number between 0 and 1.

Parâmetros

color

The color to get the value of, specified as one of the Imagick color constants. This can be one of the RGB colors, CMYK colors, alpha and opacity e.g (Imagick::COLOR_BLUE, Imagick::COLOR_MAGENTA).

Valor Retornado

The value of the channel, as a normalized floating-point number, throwing ImagickPixelException on error.

Exemplos

Exemplo #1 Basic Imagick::getColorValue() usage

<?php

$color = new ImagickPixel('rgba(90%, 20%, 20%, 0.75)');

echo "Alpha value is ".$color->getColorValue(Imagick::COLOR_ALPHA).PHP_EOL;
echo "".PHP_EOL;
echo "Red value is ".$color->getColorValue(Imagick::COLOR_RED).PHP_EOL;
echo "Green value is ".$color->getColorValue(Imagick::COLOR_GREEN).PHP_EOL;
echo "Blue value is ".$color->getColorValue(Imagick::COLOR_BLUE).PHP_EOL;
echo "".PHP_EOL;
echo "Cyan value is ".$color->getColorValue(Imagick::COLOR_CYAN).PHP_EOL;
echo "Magenta value is ".$color->getColorValue(Imagick::COLOR_MAGENTA).PHP_EOL;
echo "Yellow value is ".$color->getColorValue(Imagick::COLOR_YELLOW).PHP_EOL;
echo "Black value is ".$color->getColorValue(Imagick::COLOR_BLACK).PHP_EOL;

?>

O exemplo acima produzirá:

Alpha value is 0.74999618524453

Red value is 0.90000762951095
Green value is 0.2
Blue value is 0.2

Cyan value is 0.90000762951095
Magenta value is 0.2
Yellow value is 0.2
Black value is 0


Gets the quantum value of a color in the ImagickPixel

  • « ImagickPixel::getColorValue
  • ImagickPixel::getHSL »
  • PHP Manual
  • ImagickPixel
  • Gets the quantum value of a color in the ImagickPixel

ImagickPixel::getColorValueQuantum

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::getColorValueQuantum — Gets the quantum value of a color in the ImagickPixel

Descrição

public ImagickPixel::getColorValueQuantum(int $color): int|float

Gets the quantum value of a color in the ImagickPixel. Return value is a float if ImageMagick was compiled with HDRI, otherwise an integer.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The quantum value of the color element. Float if ImageMagick was compiled with HDRI, otherwise an int.

Exemplos

Exemplo #1 ImagickPixel::getColorValueQuantum()

<?php
$color = new \ImagickPixel('rgb(128, 5, 255)');
$colorRed = $color->getColorValueQuantum(\Imagick::COLOR_RED);
$colorGreen = $color->getColorValueQuantum(\Imagick::COLOR_GREEN);
$colorBlue = $color->getColorValueQuantum(\Imagick::COLOR_BLUE);
$colorAlpha = $color->getColorValueQuantum(\Imagick::COLOR_ALPHA);

printf(
"Red: %s Green: %s Blue %s Alpha: %s",
$colorRed,
$colorGreen,
$colorBlue,
$colorAlpha
);

?>


Returns the normalized HSL color of the ImagickPixel object

  • « ImagickPixel::getColorValueQuantum
  • ImagickPixel::getIndex »
  • PHP Manual
  • ImagickPixel
  • Returns the normalized HSL color of the ImagickPixel object

ImagickPixel::getHSL

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getHSL — Returns the normalized HSL color of the ImagickPixel object

Descrição

public ImagickPixel::getHSL(): array

Returns the normalized HSL color described by the ImagickPixel object, with each of the three values as floating point numbers between 0.0 and 1.0.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the HSL value in an array with the keys "hue", "saturation", and "luminosity". Throws ImagickPixelException on failure.

Exemplos

Exemplo #1 Basic Imagick::getHSL() example

<?php

$color = new ImagickPixel('rgb(90%, 10%, 10%)');

$colorInfo = $color->getHSL();

print_r($colorInfo);

?>

O exemplo acima produzirá:

Array
(
    [hue] => 0
    [saturation] => 0.80001220740379
    [luminosity] => 0.50000762951095
)

Notas

Nota:

Available with ImageMagick library version 6.2.9 and higher.


Gets the colormap index of the pixel wand

  • « ImagickPixel::getHSL
  • ImagickPixel::isPixelSimilar »
  • PHP Manual
  • ImagickPixel
  • Gets the colormap index of the pixel wand

ImagickPixel::getIndex

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::getIndex — Gets the colormap index of the pixel wand

Descrição

public ImagickPixel::getIndex(): int

Gets the colormap index of the pixel wand.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Check the distance between this color and another

  • « ImagickPixel::getIndex
  • ImagickPixel::isPixelSimilarQuantum »
  • PHP Manual
  • ImagickPixel
  • Check the distance between this color and another

ImagickPixel::isPixelSimilar

(PECL imagick 3 >= 3.3.0)

ImagickPixel::isPixelSimilar — Check the distance between this color and another

Descrição

public ImagickPixel::isPixelSimilar(ImagickPixel $color, float $fuzz): bool

Checks the distance between the color described by this ImagickPixel object and that of the provided object, by plotting their RGB values on the color cube. If the distance between the two points is less than the fuzz value given, the colors are similar. This method replaces ImagickPixel::isSimilar() and correctly normalises the fuzz value to ImageMagick QuantumRange.

Parâmetros

color

The ImagickPixel object to compare this object against.

fuzz

The maximum distance within which to consider these colors as similar. The theoretical maximum for this value is the square root of three (1.732).

Valor Retornado

Retorna true em caso de sucesso.


Returns whether two colors differ by less than the specified distance

  • « ImagickPixel::isPixelSimilar
  • ImagickPixel::isSimilar »
  • PHP Manual
  • ImagickPixel
  • Returns whether two colors differ by less than the specified distance

ImagickPixel::isPixelSimilarQuantum

(PECL imagick 3 >= 3.3.0)

ImagickPixel::isPixelSimilarQuantum — Returns whether two colors differ by less than the specified distance

Descrição

public ImagickPixel::isPixelSimilarQuantum(string $color, string $fuzz = ?): bool

Returns true if the distance between two colors is less than the specified distance. The fuzz value should be in the range 0-QuantumRange. The maximum value represents the longest possible distance in the colorspace. e.g. from RGB(0, 0, 0) to RGB(255, 255, 255) for the RGB colorspace

Parâmetros

color

fuzz

Valor Retornado


Check the distance between this color and another

  • « ImagickPixel::isPixelSimilarQuantum
  • ImagickPixel::setColor »
  • PHP Manual
  • ImagickPixel
  • Check the distance between this color and another

ImagickPixel::isSimilar

(PECL imagick 2, PECL imagick 3)

ImagickPixel::isSimilar — Check the distance between this color and another

Descrição

public ImagickPixel::isSimilar(ImagickPixel $color, float $fuzz): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Checks the distance between the color described by this ImagickPixel object and that of the provided object, by plotting their RGB values on the color cube. If the distance between the two points is less than the fuzz value given, the colors are similar. Deprecated in favour of ImagickPixel::isPixelSimilar().

Parâmetros

color

The ImagickPixel object to compare this object against.

fuzz

The maximum distance within which to consider these colors as similar. The theoretical maximum for this value is the square root of three (1.732).

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickPixel::isSimilar()

<?php
// The tests below are written with the maximum distance expressed as 255
// so we need to scale them by the square root of 3 - the diagonal length
// of a unit cube.
$root3 = 1.732050807568877;

$tests = array(
['rgb(245, 0, 0)', 'rgb(255, 0, 0)', 9 / $root3, false,],
['rgb(245, 0, 0)', 'rgb(255, 0, 0)', 10 / $root3, true,],
['rgb(0, 0, 0)', 'rgb(7, 7, 0)', 9 / $root3, false,],
['rgb(0, 0, 0)', 'rgb(7, 7, 0)', 10 / $root3, true,],
['rgba(0, 0, 0, 1)', 'rgba(7, 7, 0, 1)', 9 / $root3, false,],
['rgba(0, 0, 0, 1)', 'rgba(7, 7, 0, 1)', 10 / $root3, true,],
['rgb(128, 128, 128)', 'rgb(128, 128, 120)', 7 / $root3, false,],
['rgb(128, 128, 128)', 'rgb(128, 128, 120)', 8 / $root3, true,],
['rgb(0, 0, 0)', 'rgb(255, 255, 255)', 254.9, false,],
['rgb(0, 0, 0)', 'rgb(255, 255, 255)', 255, true,],
['rgb(255, 0, 0)', 'rgb(0, 255, 255)', 254.9, false,],
['rgb(255, 0, 0)', 'rgb(0, 255, 255)', 255, true,],
['black', 'rgba(0, 0, 0)', 0.0, true],
['black', 'rgba(10, 0, 0, 1.0)', 10.0 / $root3, true],);

$output = "<table width='100%' class='infoTable'><thead>
<tr>
<th>
Color 1
</th>
<th>
Color 2
</th>
<th>
Test distance * 255
</th>
<th>
Is within distance
</th>
</tr>
</thead>";

$output .= "<tbody>";

foreach ($tests as $testInfo) {
$color1 = $testInfo[0];
$color2 = $testInfo[1];
$distance = $testInfo[2];
$expectation = $testInfo[3];
$testDistance = ($distance / 255.0);

$color1Pixel = new \ImagickPixel($color1);
$color2Pixel = new \ImagickPixel($color2);

$isSimilar = $color1Pixel->isPixelSimilar($color2Pixel, $testDistance);

if ($isSimilar !== $expectation) {
echo "Test distance failed. Color [$color1] compared to color [$color2] is not within distance $testDistance FAILED.".NL;
}

$layout = "<tr>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td style='text-align: center;'>%s</td>
</tr>";

$output .= sprintf(
$layout,
$color1,
$color2,
$distance,
$isSimilar ? 'yes' : 'no'
);
}

$output .= "</tbody></table>";

return $output;

?>


Sets the color

  • « ImagickPixel::isSimilar
  • ImagickPixel::setColorCount »
  • PHP Manual
  • ImagickPixel
  • Sets the color

ImagickPixel::setColor

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setColor — Sets the color

Descrição

public ImagickPixel::setColor(string $color): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the color described by the ImagickPixel object, with a string (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

Parâmetros

color

The color definition to use in order to initialise the ImagickPixel object.

Valor Retornado

Returns true if the specified color was set, false otherwise.

Exemplos

Exemplo #1 ImagickPixel::setColor()

<?php
function setColor() {
$draw = new \ImagickDraw();

$strokeColor = new \ImagickPixel('green');
$fillColor = new \ImagickPixel();
$fillColor->setColor('rgba(100%, 75%, 0%, 1.0)');

$draw->setstrokewidth(3.0);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->rectangle(200, 200, 300, 300);

$image = new \Imagick();
$image->newImage(500, 500, "SteelBlue2");
$image->setImageFormat("png");

$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Sets the color count associated with this color

  • « ImagickPixel::setColor
  • ImagickPixel::setColorValue »
  • PHP Manual
  • ImagickPixel
  • Sets the color count associated with this color

ImagickPixel::setColorCount

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setColorCount — Sets the color count associated with this color

Descrição

public ImagickPixel::setcolorcount(int $colorCount): bool

Sets the color count associated with this color.

Parâmetros

colorCount

Valor Retornado

Retorna true em caso de sucesso.


Sets the normalized value of one of the channels

  • « ImagickPixel::setColorCount
  • ImagickPixel::setColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Sets the normalized value of one of the channels

ImagickPixel::setColorValue

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setColorValue — Sets the normalized value of one of the channels

Descrição

public ImagickPixel::setColorValue(int $color, float $value): bool

Sets the value of the specified channel of this object to the provided value, which should be between 0 and 1. This function can be used to provide an opacity channel to an ImagickPixel object.

Parâmetros

color

One of the Imagick color constants e.g. \Imagick::COLOR_GREEN or \Imagick::COLOR_ALPHA.

value

The value to set this channel to, ranging from 0 to 1.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Basic Imagick::setColorValue() usage

<?php

$color = new \ImagickPixel('firebrick');

$color->setColorValue(Imagick::COLOR_ALPHA, 0.5);

print_r($color->getcolor(true));
?>

O exemplo acima produzirá:

Array
(
    [r] => 0.69803921568627
    [g] => 0.13333333333333
    [b] => 0.13333333333333
    [a] => 0.50000762951095
)


Sets the quantum value of a color element of the ImagickPixel

  • « ImagickPixel::setColorValue
  • ImagickPixel::setHSL »
  • PHP Manual
  • ImagickPixel
  • Sets the quantum value of a color element of the ImagickPixel

ImagickPixel::setColorValueQuantum

(PECL imagick 2 >=2.3.0, PECL imagick 3)

ImagickPixel::setColorValueQuantum — Sets the quantum value of a color element of the ImagickPixel

Descrição

public ImagickPixel::setColorValueQuantum(int $color, int|float $value): bool

Sets the quantum value of a color element of the ImagickPixel.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

color

Which color element to set e.g. \Imagick::COLOR_GREEN.

value

The quantum value to set the color element to. This should be a float if ImageMagick was compiled with HDRI otherwise an int in the range 0 to Imagick::getQuantum().

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickPixel::setColorValueQuantum()

<?php
function setColorValueQuantum() {
$image = new \Imagick();

$quantumRange = $image->getQuantumRange();

$draw = new \ImagickDraw();
$color = new \ImagickPixel('blue');
$color->setcolorValueQuantum(\Imagick::COLOR_RED, 128 * $quantumRange['quantumRangeLong'] / 256);

$draw->setstrokewidth(1.0);
$draw->setStrokeColor($color);
$draw->setFillColor($color);
$draw->rectangle(200, 200, 300, 300);

$image->newImage(500, 500, "SteelBlue2");
$image->setImageFormat("png");

$image->drawImage($draw);

header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Sets the normalized HSL color

  • « ImagickPixel::setColorValueQuantum
  • ImagickPixel::setIndex »
  • PHP Manual
  • ImagickPixel
  • Sets the normalized HSL color

ImagickPixel::setHSL

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setHSL — Sets the normalized HSL color

Descrição

public ImagickPixel::setHSL(float $hue, float $saturation, float $luminosity): bool

Sets the color described by the ImagickPixel object using normalized values for hue, saturation and luminosity.

Parâmetros

hue

The normalized value for hue, described as a fractional arc (between 0 and 1) of the hue circle, where the zero value is red.

saturation

The normalized value for saturation, with 1 as full saturation.

luminosity

The normalized value for luminosity, on a scale from black at 0 to white at 1, with the full HS value at 0.5 luminosity.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 Use ImagickPixel::setHSL() to modify a color

<?php

//Create an almost pure red color
$color = new ImagickPixel('rgb(90%, 10%, 10%)');

//Get it's HSL values
$colorInfo = $color->getHSL();

//Rotate the hue by 180 degrees
$newHue = $colorInfo['hue'] + 0.5;
if ($newHue > 1) {
$newHue = $newHue - 1;
}

//Set the ImagickPixel to the new color
$colorInfo = $color->setHSL($newHue, $colorInfo['saturation'], $colorInfo['luminosity']);

//Check that the new color is blue/green
$colorInfo = $color->getcolor();
print_r($colorInfo);

?>

O exemplo acima produzirá:

Array
(
    [r] => 26
    [g] => 230
    [b] => 230
    [a] => 255
)

Notas

Nota:

Available with ImageMagick library version 6.2.9 and higher.


Sets the colormap index of the pixel wand

  • « ImagickPixel::setHSL
  • ImagickPixelIterator »
  • PHP Manual
  • ImagickPixel
  • Sets the colormap index of the pixel wand

ImagickPixel::setIndex

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::setIndex — Sets the colormap index of the pixel wand

Descrição

public ImagickPixel::setIndex(int $index): bool

Sets the colormap index of the pixel wand.

Parâmetros

index

Valor Retornado

Retorna true em caso de sucesso.


The ImagickPixelIterator class

(PECL imagick 2, PECL imagick 3)

Resumo da classe

class ImagickPixelIterator {
public clear(): bool
public __construct(Imagick $wand)
public destroy(): bool
public getCurrentIteratorRow(): array
public getIteratorRow(): int
public getNextIteratorRow(): array
public getPreviousIteratorRow(): array
public newPixelIterator(Imagick $wand): bool
public newPixelRegionIterator(
Imagick $wand,
int $x,
int $y,
int $columns,
int $rows
): bool
public resetIterator(): bool
public setIteratorFirstRow(): bool
public setIteratorLastRow(): bool
public setIteratorRow(int $row): bool
public syncIterator(): bool
}

Índice

  • ImagickPixelIterator::clear — Clear resources associated with a PixelIterator
  • ImagickPixelIterator::__construct — The ImagickPixelIterator constructor
  • ImagickPixelIterator::destroy — Deallocates resources associated with a PixelIterator
  • ImagickPixelIterator::getCurrentIteratorRow — Returns the current row of ImagickPixel objects
  • ImagickPixelIterator::getIteratorRow — Returns the current pixel iterator row
  • ImagickPixelIterator::getNextIteratorRow — Returns the next row of the pixel iterator
  • ImagickPixelIterator::getPreviousIteratorRow — Returns the previous row
  • ImagickPixelIterator::newPixelIterator — Returns a new pixel iterator
  • ImagickPixelIterator::newPixelRegionIterator — Returns a new pixel iterator
  • ImagickPixelIterator::resetIterator — Resets the pixel iterator
  • ImagickPixelIterator::setIteratorFirstRow — Sets the pixel iterator to the first pixel row
  • ImagickPixelIterator::setIteratorLastRow — Sets the pixel iterator to the last pixel row
  • ImagickPixelIterator::setIteratorRow — Set the pixel iterator row
  • ImagickPixelIterator::syncIterator — Syncs the pixel iterator


Clear resources associated with a PixelIterator

  • « ImagickPixelIterator
  • ImagickPixelIterator::__construct »
  • PHP Manual
  • ImagickPixelIterator
  • Clear resources associated with a PixelIterator

ImagickPixelIterator::clear

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::clear — Clear resources associated with a PixelIterator

Descrição

public ImagickPixelIterator::clear(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Clear resources associated with a PixelIterator.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickPixelIterator::clear()

<?php
function clear($imagePath) {
$imagick = new \Imagick(realpath($imagePath));

$imageIterator = $imagick->getPixelRegionIterator(100, 100, 250, 200);

/* Loop through pixel rows */
foreach ($imageIterator as $pixels) {
/** @var $pixel \ImagickPixel */
/* Loop through the pixels in the row (columns) */
foreach ($pixels as $column => $pixel) {
if ($column % 2) {
/* Paint every second pixel black*/
$pixel->setColor("rgba(0, 0, 0, 0)");
}
}
/* Sync the iterator, this is important to do on each iteration */
$imageIterator->syncIterator();
}

$imageIterator->clear();

header("Content-Type: image/jpg");
echo $imagick;
}

?>


The ImagickPixelIterator constructor

  • « ImagickPixelIterator::clear
  • ImagickPixelIterator::destroy »
  • PHP Manual
  • ImagickPixelIterator
  • The ImagickPixelIterator constructor

ImagickPixelIterator::__construct

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::__construct — The ImagickPixelIterator constructor

Descrição

public ImagickPixelIterator::__construct(Imagick $wand)
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

The ImagickPixelIterator constructor

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickPixelIterator::construct()

<?php
function construct($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imageIterator = new \ImagickPixelIterator($imagick);

/* Loop through pixel rows */
foreach ($imageIterator as $pixels) {
/* Loop through the pixels in the row (columns) */
foreach ($pixels as $column => $pixel) {
/** @var $pixel \ImagickPixel */
if ($column % 2) {
/* Paint every second pixel black*/
$pixel->setColor("rgba(0, 0, 0, 0)");
}
}
/* Sync the iterator, this is important to do on each iteration */
$imageIterator->syncIterator();
}

header("Content-Type: image/jpg");
echo $imagick;
}

?>


Deallocates resources associated with a PixelIterator

  • « ImagickPixelIterator::__construct
  • ImagickPixelIterator::getCurrentIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Deallocates resources associated with a PixelIterator

ImagickPixelIterator::destroy

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::destroy — Deallocates resources associated with a PixelIterator

Descrição

public ImagickPixelIterator::destroy(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Deallocates resources associated with a PixelIterator.

Valor Retornado

Retorna true em caso de sucesso.


Returns the current row of ImagickPixel objects

  • « ImagickPixelIterator::destroy
  • ImagickPixelIterator::getIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Returns the current row of ImagickPixel objects

ImagickPixelIterator::getCurrentIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getCurrentIteratorRow — Returns the current row of ImagickPixel objects

Descrição

public ImagickPixelIterator::getCurrentIteratorRow(): array
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the current row as an array of ImagickPixel objects from the pixel iterator.

Valor Retornado

Returns a row as an array of ImagickPixel objects that can themselves be iterated.


Returns the current pixel iterator row

  • « ImagickPixelIterator::getCurrentIteratorRow
  • ImagickPixelIterator::getNextIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Returns the current pixel iterator row

ImagickPixelIterator::getIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getIteratorRow — Returns the current pixel iterator row

Descrição

public ImagickPixelIterator::getIteratorRow(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the current pixel iterator row.

Valor Retornado

Returns the integer offset of the row, throwing ImagickPixelIteratorException on error.


Returns the next row of the pixel iterator

  • « ImagickPixelIterator::getIteratorRow
  • ImagickPixelIterator::getPreviousIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Returns the next row of the pixel iterator

ImagickPixelIterator::getNextIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getNextIteratorRow — Returns the next row of the pixel iterator

Descrição

public ImagickPixelIterator::getNextIteratorRow(): array
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the next row as an array of pixel wands from the pixel iterator.

Valor Retornado

Returns the next row as an array of ImagickPixel objects, throwing ImagickPixelIteratorException on error.

Exemplos

Exemplo #1 ImagickPixelIterator::getNextIteratorRow()

<?php
function getNextIteratorRow($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imageIterator = $imagick->getPixelIterator();

$count = 0;
while ($pixels = $imageIterator->getNextIteratorRow()) {
if (($count % 3) == 0) {
/* Loop through the pixels in the row (columns) */
foreach ($pixels as $column => $pixel) {
/** @var $pixel \ImagickPixel */
if ($column % 2) {
/* Paint every second pixel black*/
$pixel->setColor("rgba(0, 0, 0, 0)");
}
}
/* Sync the iterator, this is important to do on each iteration */
$imageIterator->syncIterator();
}

$count += 1;
}

header("Content-Type: image/jpg");
echo $imagick;
}

?>


Returns the previous row

  • « ImagickPixelIterator::getNextIteratorRow
  • ImagickPixelIterator::newPixelIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Returns the previous row

ImagickPixelIterator::getPreviousIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getPreviousIteratorRow — Returns the previous row

Descrição

public ImagickPixelIterator::getPreviousIteratorRow(): array
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the previous row as an array of pixel wands from the pixel iterator.

Valor Retornado

Returns the previous row as an array of ImagickPixelWand objects from the ImagickPixelIterator, throwing ImagickPixelIteratorException on error.


Returns a new pixel iterator

  • « ImagickPixelIterator::getPreviousIteratorRow
  • ImagickPixelIterator::newPixelRegionIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Returns a new pixel iterator

ImagickPixelIterator::newPixelIterator

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::newPixelIterator — Returns a new pixel iterator

Descrição

public ImagickPixelIterator::newPixelIterator(Imagick $wand): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns a new pixel iterator.

Valor Retornado

Retorna true em caso de sucesso. Throwing ImagickPixelIteratorException.


Returns a new pixel iterator

  • « ImagickPixelIterator::newPixelIterator
  • ImagickPixelIterator::resetIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Returns a new pixel iterator

ImagickPixelIterator::newPixelRegionIterator

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::newPixelRegionIterator — Returns a new pixel iterator

Descrição

public ImagickPixelIterator::newPixelRegionIterator(
Imagick $wand,
int $x,
int $y,
int $columns,
int $rows
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns a new pixel iterator.

Parâmetros

wand

x

y

columns

rows

Valor Retornado

Returns a new ImagickPixelIterator on success; on failure, throws ImagickPixelIteratorException.


Resets the pixel iterator

  • « ImagickPixelIterator::newPixelRegionIterator
  • ImagickPixelIterator::setIteratorFirstRow »
  • PHP Manual
  • ImagickPixelIterator
  • Resets the pixel iterator

ImagickPixelIterator::resetIterator

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::resetIterator — Resets the pixel iterator

Descrição

public ImagickPixelIterator::resetIterator(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Resets the pixel iterator. Use it in conjunction with ImagickPixelIterator::getNextIteratorRow() to iterate over all the pixels in a pixel container.

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickPixelIterator::resetIterator()

<?php
function resetIterator($imagePath) {

$imagick = new \Imagick(realpath($imagePath));

$imageIterator = $imagick->getPixelIterator();

/* Loop trough pixel rows */
foreach ($imageIterator as $pixels) {
/* Loop through the pixels in the row (columns) */
foreach ($pixels as $column => $pixel) {
/** @var $pixel \ImagickPixel */
if ($column % 2) {

/* Make every second pixel 25% red*/
$pixel->setColorValue(\Imagick::COLOR_RED, 64);
}
}
/* Sync the iterator, this is important to do on each iteration */
$imageIterator->syncIterator();
}

$imageIterator->resetiterator();

/* Loop trough pixel rows */
foreach ($imageIterator as $pixels) {
/* Loop through the pixels in the row (columns) */
foreach ($pixels as $column => $pixel) {
/** @var $pixel \ImagickPixel */
if ($column % 3) {
$pixel->setColorValue(\Imagick::COLOR_BLUE, 64); /* Make every second pixel a little blue*/
//$pixel->setColor("rgba(0, 0, 128, 0)"); /* Paint every second pixel black*/
}
}
$imageIterator->syncIterator(); /* Sync the iterator, this is important to do on each iteration */
}

$imageIterator->clear();

header("Content-Type: image/jpg");
echo $imagick;
}

?>


Sets the pixel iterator to the first pixel row

  • « ImagickPixelIterator::resetIterator
  • ImagickPixelIterator::setIteratorLastRow »
  • PHP Manual
  • ImagickPixelIterator
  • Sets the pixel iterator to the first pixel row

ImagickPixelIterator::setIteratorFirstRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::setIteratorFirstRow — Sets the pixel iterator to the first pixel row

Descrição

public ImagickPixelIterator::setIteratorFirstRow(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the pixel iterator to the first pixel row.

Valor Retornado

Retorna true em caso de sucesso.


Sets the pixel iterator to the last pixel row

  • « ImagickPixelIterator::setIteratorFirstRow
  • ImagickPixelIterator::setIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Sets the pixel iterator to the last pixel row

ImagickPixelIterator::setIteratorLastRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::setIteratorLastRow — Sets the pixel iterator to the last pixel row

Descrição

public ImagickPixelIterator::setIteratorLastRow(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Sets the pixel iterator to the last pixel row.

Valor Retornado

Retorna true em caso de sucesso.


Set the pixel iterator row

  • « ImagickPixelIterator::setIteratorLastRow
  • ImagickPixelIterator::syncIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Set the pixel iterator row

ImagickPixelIterator::setIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::setIteratorRow — Set the pixel iterator row

Descrição

public ImagickPixelIterator::setIteratorRow(int $row): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Set the pixel iterator row.

Parâmetros

row

Valor Retornado

Retorna true em caso de sucesso.

Exemplos

Exemplo #1 ImagickPixelIterator::setIteratorRow()

<?php
function setIteratorRow($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imageIterator = $imagick->getPixelRegionIterator(200, 100, 200, 200);

for ($x = 0; $x < 20; $x++) {
$imageIterator->setIteratorRow($x * 5);
$pixels = $imageIterator->getCurrentIteratorRow();
/* Loop through the pixels in the row (columns) */
foreach ($pixels as $pixel) {
/** @var $pixel \ImagickPixel */
/* Paint every second pixel black*/
$pixel->setColor("rgba(0, 0, 0, 0)");
}

/* Sync the iterator, this is important to do on each iteration */
$imageIterator->syncIterator();
}

header("Content-Type: image/jpg");
echo $imagick;
}

?>


Syncs the pixel iterator

  • « ImagickPixelIterator::setIteratorRow
  • ImagickKernel »
  • PHP Manual
  • ImagickPixelIterator
  • Syncs the pixel iterator

ImagickPixelIterator::syncIterator

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::syncIterator — Syncs the pixel iterator

Descrição

public ImagickPixelIterator::syncIterator(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Syncs the pixel iterator.

Valor Retornado

Retorna true em caso de sucesso.


The ImagickKernel class

(PECL imagick >= 3.3.0)

Introdução

Resumo da classe

class ImagickKernel {
/* Métodos */
public addKernel(ImagickKernel $ImagickKernel): void
public addUnityKernel(float $scale): void
public static fromBuiltin(int $kernelType, string $kernelString): ImagickKernel
public static fromMatrix(array $matrix, array $origin = ?): ImagickKernel
public getMatrix(): array
public scale(float $scale, int $normalizeFlag = ?): void
public separate(): array
}

Índice

  • ImagickKernel::addKernel — Attach another kernel to a kernel list
  • ImagickKernel::addUnityKernel — Adds a Unity Kernel to the kernel list
  • ImagickKernel::fromBuiltIn — Create a kernel from a builtin in kernel
  • ImagickKernel::fromMatrix — Create a kernel from a 2d matrix of values
  • ImagickKernel::getMatrix — Get the 2d matrix of values used in this kernel
  • ImagickKernel::scale — Scales a kernel list by the given amount
  • ImagickKernel::separate — Separates a linked set of kernels and returns an array of ImagickKernels


Attach another kernel to a kernel list

  • « ImagickKernel
  • ImagickKernel::addUnityKernel »
  • PHP Manual
  • ImagickKernel
  • Attach another kernel to a kernel list

ImagickKernel::addKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addKernel — Attach another kernel to a kernel list

Descrição

public ImagickKernel::addKernel(ImagickKernel $ImagickKernel): void

Attach another kernel to this kernel to allow them to both be applied in a single morphology or filter function. Returns the new combined kernel.

Parâmetros

ImagickKernel

Valor Retornado

Exemplos

Exemplo #1 ImagickKernel::addKernel()

<?php
function addKernel($imagePath) {
$matrix1 = [
[-1, -1, -1],
[ 0, 0, 0],
[ 1, 1, 1],
];

$matrix2 = [
[-1, 0, 1],
[-1, 0, 1],
[-1, 0, 1],
];

$kernel1 = ImagickKernel::fromMatrix($matrix1);
$kernel2 = ImagickKernel::fromMatrix($matrix2);
$kernel1->addKernel($kernel2);

$imagick = new \Imagick(realpath($imagePath));
$imagick->filter($kernel1);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();

}

?>


Adds a Unity Kernel to the kernel list

  • « ImagickKernel::addKernel
  • ImagickKernel::fromBuiltIn »
  • PHP Manual
  • ImagickKernel
  • Adds a Unity Kernel to the kernel list

ImagickKernel::addUnityKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addUnityKernel — Adds a Unity Kernel to the kernel list

Descrição

public ImagickKernel::addUnityKernel(float $scale): void

Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel. This in effect adds that amount of the original image into the resulting convolution kernel. The resulting effect is to convert the defined kernels into blended soft-blurs, unsharp kernels or into sharpening kernels.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 ImagickKernel::addUnityKernel()

<?php

function renderKernelTable($matrix) {
$output = "<table class='infoTable'>";

foreach ($matrix as $row) {
$output .= "<tr>";
foreach ($row as $cell) {
$output .= "<td style='text-align:left'>";
if ($cell === false) {
$output .= "false";
}
else {
$output .= round($cell, 3);
}
$output .= "</td>";
}
$output .= "</tr>";
}

$output .= "</table>";

return $output;
}

$matrix = [
[-1, 0, -1],
[ 0, 4, 0],
[-1, 0, -1],
];

$kernel = \ImagickKernel::fromMatrix($matrix);
$kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
$output = "Before adding unity kernel: <br/>";
$output .= renderKernelTable($kernel->getMatrix());
$kernel->addUnityKernel(0.5);
$output .= "After adding unity kernel: <br/>";
$output .= renderKernelTable($kernel->getMatrix());

$kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
$output .= "After renormalizing kernel: <br/>";
$output .= renderKernelTable($kernel->getMatrix());

echo $output;

?>

Exemplo #2 ImagickKernel::addUnityKernel()

<?php
function addUnityKernel($imagePath) {

$matrix = [
[-1, 0, -1],
[ 0, 4, 0],
[-1, 0, -1],
];

$kernel = ImagickKernel::fromMatrix($matrix);

$kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
$kernel->addUnityKernel(0.5);

$imagick = new \Imagick(realpath($imagePath));
$imagick->filter($kernel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();

}

?>


Create a kernel from a builtin in kernel

  • « ImagickKernel::addUnityKernel
  • ImagickKernel::fromMatrix »
  • PHP Manual
  • ImagickKernel
  • Create a kernel from a builtin in kernel

ImagickKernel::fromBuiltIn

(PECL imagick >= 3.3.0)

ImagickKernel::fromBuiltIn — Create a kernel from a builtin in kernel

Descrição

public static ImagickKernel::fromBuiltin(int $kernelType, string $kernelString): ImagickKernel

Create a kernel from a builtin in kernel. See http://www.imagemagick.org/Usage/morphology/#kernel for examples. Currently the 'rotation' symbols are not supported. Example: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2");

Parâmetros

kerneltype

The type of kernel to build e.g. \Imagick::KERNEL_DIAMOND

kernelString

A string that describes the parameters e.g. "4,2.5"

Valor Retornado

Exemplos

Exemplo #1 ImagickKernel::fromBuiltin()

<?php

function renderKernel(ImagickKernel $imagickKernel) {
$matrix = $imagickKernel->getMatrix();

$imageMargin = 20;

$tileSize = 20;
$tileSpace = 4;
$shadowSigma = 4;
$shadowDropX = 20;
$shadowDropY = 0;

$radius = ($tileSize / 2) * 0.9;

$rows = count($matrix);
$columns = count($matrix[0]);

$imagickDraw = new \ImagickDraw();

$imagickDraw->setFillColor('#afafaf');
$imagickDraw->setStrokeColor('none');

$imagickDraw->translate($imageMargin, $imageMargin);
$imagickDraw->push();

ksort($matrix);

foreach ($matrix as $row) {
ksort($row);
$imagickDraw->push();
foreach ($row as $cell) {
if ($cell !== false) {
$color = intval(255 * $cell);
$colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
$imagickDraw->setFillColor($colorString);
$imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
}
$imagickDraw->translate(($tileSize + $tileSpace), 0);
}
$imagickDraw->pop();
$imagickDraw->translate(0, ($tileSize + $tileSpace));
}

$imagickDraw->pop();

$width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
$height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

$imagickDraw->push();
$imagickDraw->translate($width/2 , $height/2);
$imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
$imagickDraw->setStrokeColor('white');
$imagickDraw->circle(0, 0, $radius - 1, 0);
$imagickDraw->setStrokeColor('black');
$imagickDraw->circle(0, 0, $radius, 0);
$imagickDraw->pop();

$canvasWidth = $width + (2 * $imageMargin);
$canvasHeight = $height + (2 * $imageMargin);

$kernel = new \Imagick();
$kernel->newPseudoImage(
$canvasWidth,
$canvasHeight,
'canvas:none'
);

$kernel->setImageFormat('png');
$kernel->drawImage($imagickDraw);

/* create drop shadow on it's own layer */
$canvas = $kernel->clone();
$canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
$canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

$canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
$canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

/* composite original text_layer onto shadow_layer */
$canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
$canvas->setImageFormat('png');

return $canvas;
}

function createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
$string = '';

if ($kernelFirstTerm != false && strlen(trim($kernelFirstTerm)) != 0) {
$string .= $kernelFirstTerm;

if ($kernelSecondTerm != false && strlen(trim($kernelSecondTerm)) != 0) {
$string .= ','.$kernelSecondTerm;
if ($kernelThirdTerm != false && strlen(trim($kernelThirdTerm)) != 0) {
$string .= ','.$kernelThirdTerm;
}
}
}

$kernel = ImagickKernel::fromBuiltIn(
$kernelType,
$string
);

return $kernel;
}

function fromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
$diamondKernel = createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm);
$imagick = renderKernel($diamondKernel);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

fromBuiltin(\Imagick::KERNEL_DIAMOND, 2, false, false);

?>


Create a kernel from a 2d matrix of values

  • « ImagickKernel::fromBuiltIn
  • ImagickKernel::getMatrix »
  • PHP Manual
  • ImagickKernel
  • Create a kernel from a 2d matrix of values

ImagickKernel::fromMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::fromMatrix — Create a kernel from a 2d matrix of values

Descrição

public static ImagickKernel::fromMatrix(array $matrix, array $origin = ?): ImagickKernel

Create a kernel from an 2d matrix of values. Each value should either be a float (if the element should be used) or 'false' if the element should be skipped. For matrices that are odd sizes in both dimensions the origin pixel will default to the centre of the kernel. For all other kernel sizes the origin pixel must be specified.

Parâmetros

array

A matrix (i.e. 2d array) of values that define the kernel. Each element should be either a float value, or FALSE if that element shouldn't be used by the kernel.

array

Which element of the kernel should be used as the origin pixel. e.g. For a 3x3 matrix specifying the origin as [2, 2] would specify that the bottom right element should be the origin pixel.

Valor Retornado

The generated ImagickKernel.

Exemplos

Exemplo #1 ImagickKernel::fromMatrix()

<?php

function renderKernel(ImagickKernel $imagickKernel) {
$matrix = $imagickKernel->getMatrix();

$imageMargin = 20;

$tileSize = 20;
$tileSpace = 4;
$shadowSigma = 4;
$shadowDropX = 20;
$shadowDropY = 0;

$radius = ($tileSize / 2) * 0.9;

$rows = count($matrix);
$columns = count($matrix[0]);

$imagickDraw = new \ImagickDraw();

$imagickDraw->setFillColor('#afafaf');
$imagickDraw->setStrokeColor('none');

$imagickDraw->translate($imageMargin, $imageMargin);
$imagickDraw->push();

ksort($matrix);

foreach ($matrix as $row) {
ksort($row);
$imagickDraw->push();
foreach ($row as $cell) {
if ($cell !== false) {
$color = intval(255 * $cell);
$colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
$imagickDraw->setFillColor($colorString);
$imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
}
$imagickDraw->translate(($tileSize + $tileSpace), 0);
}
$imagickDraw->pop();
$imagickDraw->translate(0, ($tileSize + $tileSpace));
}

$imagickDraw->pop();

$width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
$height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

$imagickDraw->push();
$imagickDraw->translate($width/2 , $height/2);
$imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
$imagickDraw->setStrokeColor('white');
$imagickDraw->circle(0, 0, $radius - 1, 0);
$imagickDraw->setStrokeColor('black');
$imagickDraw->circle(0, 0, $radius, 0);
$imagickDraw->pop();

$canvasWidth = $width + (2 * $imageMargin);
$canvasHeight = $height + (2 * $imageMargin);

$kernel = new \Imagick();
$kernel->newPseudoImage(
$canvasWidth,
$canvasHeight,
'canvas:none'
);

$kernel->setImageFormat('png');
$kernel->drawImage($imagickDraw);

/* create drop shadow on it's own layer */
$canvas = $kernel->clone();
$canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
$canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

$canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
$canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

/* composite original text_layer onto shadow_layer */
$canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
$canvas->setImageFormat('png');

return $canvas;
}

function createFromMatrix() {
$matrix = [
[0.5, 0, 0.2],
[0, 1, 0],
[0.9, 0, false],
];

$kernel = \ImagickKernel::fromMatrix($matrix);

return $kernel;
}

function fromMatrix() {
$kernel = createFromMatrix();
$imagick = renderKernel($kernel);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Get the 2d matrix of values used in this kernel

  • « ImagickKernel::fromMatrix
  • ImagickKernel::scale »
  • PHP Manual
  • ImagickKernel
  • Get the 2d matrix of values used in this kernel

ImagickKernel::getMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::getMatrix — Get the 2d matrix of values used in this kernel

Descrição

public ImagickKernel::getMatrix(): array

Get the 2d matrix of values used in this kernel. The elements are either float for elements that are used or 'false' if the element should be skipped.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A matrix (2d array) of the values that represent the kernel.

Exemplos

Exemplo #1 ImagickKernel::getMatrix()

<?php

function renderKernelTable($matrix) {
$output = "<table class='infoTable'>";

foreach ($matrix as $row) {
$output .= "<tr>";
foreach ($row as $cell) {
$output .= "<td style='text-align:left'>";
if ($cell === false) {
$output .= "false";
}
else {
$output .= round($cell, 3);
}
$output .= "</td>";
}
$output .= "</tr>";
}

$output .= "</table>";

return $output;
}

$output = "The built-in kernel name 'ring' with parameters of '2,3.5':<br/>";
$kernel = \ImagickKernel::fromBuiltIn(
\Imagick::KERNEL_RING,
"2,3.5"
);
$matrix = $kernel->getMatrix();
$output .= renderKernelTable($matrix);

echo $output;

?>


Scales a kernel list by the given amount

  • « ImagickKernel::getMatrix
  • ImagickKernel::separate »
  • PHP Manual
  • ImagickKernel
  • Scales a kernel list by the given amount

ImagickKernel::scale

(PECL imagick >= 3.3.0)

ImagickKernel::scale — Scales a kernel list by the given amount

Descrição

public ImagickKernel::scale(float $scale, int $normalizeFlag = ?): void

Scales the given kernel list by the given amount, with or without normalization of the sum of the kernel values (as per given flags). The exact behaviour of this function depends on the normalization type being used please see http://www.imagemagick.org/api/morphology.php#ScaleKernelInfo for details.

Parâmetros

scale

normalizeFlag

  • Imagick::NORMALIZE_KERNEL_NONE
  • Imagick::NORMALIZE_KERNEL_VALUE
  • Imagick::NORMALIZE_KERNEL_CORRELATE
  • Imagick::NORMALIZE_KERNEL_PERCENT

Valor Retornado

Exemplos

Exemplo #1 ImagickKernel::scale()

<?php

function renderKernelTable($matrix) {
$output = "<table class='infoTable'>";

foreach ($matrix as $row) {
$output .= "<tr>";
foreach ($row as $cell) {
$output .= "<td style='text-align:left'>";
if ($cell === false) {
$output .= "false";
}
else {
$output .= round($cell, 3);
}
$output .= "</td>";
}
$output .= "</tr>";
}

$output .= "</table>";

return $output;
}

$output = "";

$matrix = [
[-1, 0, -1],
[ 0, 4, 0],
[-1, 0, -1],
];

$kernel = \ImagickKernel::fromMatrix($matrix);
$kernelClone = clone $kernel;

$output .= "Start kernel<br/>";
$output .= renderKernelTable($kernel->getMatrix());

$output .= "Scaling with NORMALIZE_KERNEL_VALUE. The <br/>";
$kernel->scale(2, \Imagick::NORMALIZE_KERNEL_VALUE);
$output .= renderKernelTable($kernel->getMatrix());

$kernel = clone $kernelClone;
$output .= "Scaling by percent<br/>";
$kernel->scale(2, \Imagick::NORMALIZE_KERNEL_PERCENT);
$output .= renderKernelTable($kernel->getMatrix());

$matrix2 = [
[-1, -1, 1],
[ -1, false, 1],
[1, 1, 1],
];

$kernel = \ImagickKernel::fromMatrix($matrix2);
$output .= "Scaling by correlate<br/>";
$kernel->scale(1, \Imagick::NORMALIZE_KERNEL_CORRELATE);
$output .= renderKernelTable($kernel->getMatrix());

return $output;
?>


Separates a linked set of kernels and returns an array of ImagickKernels

  • « ImagickKernel::scale
  • Extensões Relacionadas a Correio Eletrônico »
  • PHP Manual
  • ImagickKernel
  • Separates a linked set of kernels and returns an array of ImagickKernels

ImagickKernel::separate

(PECL imagick >= 3.3.0)

ImagickKernel::separate — Separates a linked set of kernels and returns an array of ImagickKernels

Descrição

public ImagickKernel::separate(): array

Separates a linked set of kernels and returns an array of ImagickKernels.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 ImagickKernel::separate()

<?php

function renderKernelTable($matrix) {

$output = "<table class='infoTable'>";
foreach ($matrix as $row) {
$output .= "<tr>";
foreach ($row as $cell) {
$output .= "<td style='text-align:left'>";
if ($cell === false) {
$output .= "false";
}
else {
$output .= round($cell, 3);
}
$output .= "</td>";
}
$output .= "</tr>";
}

$output .= "</table>";

return $output;
}

$matrix = [
[-1, 0, -1],
[ 0, 4, 0],
[-1, 0, -1],
];

$kernel = \ImagickKernel::fromMatrix($matrix);
$kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
$diamondKernel = \ImagickKernel::fromBuiltIn(
\Imagick::KERNEL_DIAMOND,
"2"
);

$kernel->addKernel($diamondKernel);

$kernelList = $kernel->separate();

$output = '';
$count = 0;
foreach ($kernelList as $kernel) {
$output .= "<br/>Kernel $count<br/>";
$output .= renderKernelTable($kernel->getMatrix());
$count++;
}

return $output;

?>


Extensões Relacionadas a Correio Eletrônico

  • IMAP — IMAP, POP3 and NNTP
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • IMAP Funções
    • IMAP\Connection — The IMAP\Connection class
  • Mail
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções da Mail
  • Mailparse
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções de Mailparse


IMAP, POP3 and NNTP

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • IMAP Funções
    • imap_8bit — Convert an 8bit string to a quoted-printable string
    • imap_alerts — Returns all IMAP alert messages that have occurred
    • imap_append — Append a string message to a specified mailbox
    • imap_base64 — Decode BASE64 encoded text
    • imap_binary — Convert an 8bit string to a base64 string
    • imap_body — Read the message body
    • imap_bodystruct — Read the structure of a specified body section of a specific message
    • imap_check — Check current mailbox
    • imap_clearflag_full — Clears flags on messages
    • imap_close — Close an IMAP stream
    • imap_create — Sinônimo de imap_createmailbox
    • imap_createmailbox — Create a new mailbox
    • imap_delete — Mark a message for deletion from current mailbox
    • imap_deletemailbox — Delete a mailbox
    • imap_errors — Returns all of the IMAP errors that have occurred
    • imap_expunge — Delete all messages marked for deletion
    • imap_fetch_overview — Read an overview of the information in the headers of the given message
    • imap_fetchbody — Fetch a particular section of the body of the message
    • imap_fetchheader — Returns header for a message
    • imap_fetchmime — Fetch MIME headers for a particular section of the message
    • imap_fetchstructure — Read the structure of a particular message
    • imap_fetchtext — Sinônimo de imap_body
    • imap_gc — Clears IMAP cache
    • 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 — Read the list of mailboxes, returning detailed information on each one
    • imap_getsubscribed — List all the subscribed mailboxes
    • imap_header — Sinônimo de imap_headerinfo
    • imap_headerinfo — Read the header of the message
    • imap_headers — Returns headers for all messages in a mailbox
    • imap_is_open — Check if the IMAP stream is still valid
    • imap_last_error — Gets the last IMAP error that occurred during this page request
    • imap_list — Read the list of mailboxes
    • imap_listmailbox — Sinônimo de imap_list
    • imap_listscan — Returns the list of mailboxes that matches the given text
    • imap_listsubscribed — Sinônimo de imap_lsub
    • imap_lsub — List all the subscribed mailboxes
    • imap_mail_compose — Create a MIME message based on given envelope and body sections
    • imap_mail_copy — Copy specified messages to a mailbox
    • imap_mail_move — Move specified messages to a mailbox
    • imap_mail — Send an email message
    • imap_mailboxmsginfo — Get information about the current mailbox
    • imap_mime_header_decode — Decode MIME header elements
    • imap_msgno — Gets the message sequence number for the given UID
    • imap_mutf7_to_utf8 — Decode a modified UTF-7 string to UTF-8
    • imap_num_msg — Gets the number of messages in the current mailbox
    • imap_num_recent — Gets the number of recent messages in current mailbox
    • imap_open — Open an IMAP stream to a mailbox
    • imap_ping — Check if the IMAP stream is still active
    • imap_qprint — Convert a quoted-printable string to an 8 bit string
    • imap_rename — Sinônimo de imap_renamemailbox
    • imap_renamemailbox — Rename an old mailbox to new mailbox
    • imap_reopen — Reopen IMAP stream to new mailbox
    • imap_rfc822_parse_adrlist — Parses an address string
    • imap_rfc822_parse_headers — Parse mail headers from a string
    • imap_rfc822_write_address — Returns a properly formatted email address given the mailbox, host, and personal info
    • imap_savebody — Save a specific body section to a file
    • imap_scan — Sinônimo de imap_listscan
    • imap_scanmailbox — Sinônimo de imap_listscan
    • imap_search — This function returns an array of messages matching the given search criteria
    • imap_set_quota — Sets a quota for a given mailbox
    • imap_setacl — Sets the ACL for a given mailbox
    • imap_setflag_full — Sets flags on messages
    • imap_sort — Gets and sort messages
    • imap_status — Returns status information on a mailbox
    • imap_subscribe — Subscribe to a mailbox
    • imap_thread — Returns a tree of threaded message
    • imap_timeout — Set or fetch imap timeout
    • imap_uid — This function returns the UID for the given message sequence number
    • imap_undelete — Unmark the message which is marked deleted
    • 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_to_mutf7 — Encode a UTF-8 string to modified UTF-7
    • imap_utf8 — Converts MIME-encoded text to UTF-8
  • IMAP\Connection — The IMAP\Connection class


Introdução

These functions enable you to operate with the IMAP protocol, as well as the NNTP, POP3 and local mailbox access methods.

Be warned, however, that some IMAP functions will not work correctly with the POP protocol.

Aviso

The IMAP extension is not thread-safe; it should not be used with ZTS builds.


Dependências

This extension requires the c-client library to be installed. Grab the latest version from » https://github.com/uw-imap/imap and compile it.

It's important that you do not copy the IMAP source files directly into the system include directory as there may be conflicts. Instead, create a new directory inside the system include directory, such as /usr/local/imap-2000b/ (location and name depend on your setup and IMAP version), and inside this new directory create additional directories named lib/ and include/. From the c-client directory from your IMAP source tree, copy all the *.h files into include/ and all the *.c files into lib/. Additionally when you compiled IMAP, a file named c-client.a was created. Also put this in the lib/ directory but rename it as libc-client.a.

Nota:

To build the c-client library with SSL or/and Kerberos support read the docs supplied with the package.

Nota: In Mandrake Linux, the IMAP library (libc-client.a) is compiled without Kerberos support. A separate version with SSL (client-PHP4.a) is installed. The library must be recompiled in order to add Kerberos support.


Instalação

To get these functions to work, you have to compile PHP with --with-imap[=DIR], where DIR is the c-client install prefix. From our example above, you would use --with-imap=/usr/local/imap-2000b. This location depends on where you created this directory according to the description above. Windows users may include the php_imap.dll DLL in php.ini.

Nota: Depending on how the c-client was configured, you might also need to add --with-imap-ssl=/path/to/openssl/ and/or --with-kerberos=/path/to/kerberos to the PHP configure line.

Aviso

The IMAP extension is not thread-safe; it should not be used with ZTS builds.

Aviso

As extensões IMAP, recode e YAZ não podem ser usadas em conjunto, pois compartilham os mesmos símbolos internos. Observação: a Yaz 2.0 e superiores não sofrem deste problema.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

IMAP Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
imap.enable_insecure_rsh | "0" | INI_SYSTEM | Available as of PHP 7.1.25, 7.2.13 and 7.3.0. Formerly, it was implicitly enabled.
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

imap.enable_insecure_rsh bool

Establishing a connection to a server may invoke rsh or ssh commands, unless this php.ini option is disabled.

Aviso

Neither PHP nor the IMAP library filter mailbox names before passing them to rsh or ssh commands, thus passing untrusted data to this function without disabling this php.ini option is insecure.


Tipos de Recurso

Prior to PHP 8.1.0, this extension defined the resource type imap as returned by imap_open() references an opened IMAP stream.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

NIL (int)
Deprecated as of PHP 8.1.0.
OP_DEBUG (int)
OP_READONLY (int)
Open mailbox read-only
OP_ANONYMOUS (int)
Don't use or update a .newsrc for news (NNTP only)
OP_SHORTCACHE (int)
OP_SILENT (int)
OP_PROTOTYPE (int)
OP_HALFOPEN (int)
For IMAP and NNTP names, open a connection but don't open a mailbox.
OP_EXPUNGE (int)
OP_SECURE (int)
CL_EXPUNGE (int)
silently expunge the mailbox before closing when calling imap_close()
FT_UID (int)
The parameter is a UID
FT_PEEK (int)
Do not set the \Seen flag if not already set
FT_NOT (int)
FT_INTERNAL (int)
The return string is in internal format, will not canonicalize to CRLF.
FT_PREFETCHTEXT (int)
ST_UID (int)
The sequence argument contains UIDs instead of sequence numbers
ST_SILENT (int)
ST_SET (int)
CP_UID (int)
the sequence numbers contain UIDS
CP_MOVE (int)
Delete the messages from the current mailbox after copying with imap_mail_copy()
SE_UID (int)
Return UIDs instead of sequence numbers
SE_FREE (int)
SE_NOPREFETCH (int)
Don't prefetch searched messages
SO_FREE (int)
SO_NOSERVER (int)
SA_MESSAGES (int)
SA_RECENT (int)
SA_UNSEEN (int)
SA_UIDNEXT (int)
SA_UIDVALIDITY (int)
SA_ALL (int)
LATT_NOINFERIORS (int)
This mailbox has no "children" (there are no mailboxes below this one).
LATT_NOSELECT (int)
This is only a container, not a mailbox - you cannot open it.
LATT_MARKED (int)
This mailbox is marked. Only used by UW-IMAPD.
LATT_UNMARKED (int)
This mailbox is not marked. Only used by UW-IMAPD.
LATT_REFERRAL (int)
This container has a referral to a remote mailbox.
LATT_HASCHILDREN (int)
This mailbox has selectable inferiors.
LATT_HASNOCHILDREN (int)
This mailbox has no selectable inferiors.
SORTDATE (int)
Sort criteria for imap_sort(): message Date
SORTARRIVAL (int)
Sort criteria for imap_sort(): arrival date
SORTFROM (int)
Sort criteria for imap_sort(): mailbox in first From address
SORTSUBJECT (int)
Sort criteria for imap_sort(): message subject
SORTTO (int)
Sort criteria for imap_sort(): mailbox in first To address
SORTCC (int)
Sort criteria for imap_sort(): mailbox in first cc address
SORTSIZE (int)
Sort criteria for imap_sort(): size of message in octets
TYPETEXT (int)
Primary body type: unformatted text
TYPEMULTIPART (int)
Primary body type: multiple part
TYPEMESSAGE (int)
Primary body type: encapsulated message
TYPEAPPLICATION (int)
Primary body type: application data
TYPEAUDIO (int)
Primary body type: audio
TYPEIMAGE (int)
Primary body type: static image
TYPEVIDEO (int)
Primary body type: video
TYPEMODEL (int)
Primary body type: model
TYPEOTHER (int)
Primary body type: unknown
ENC7BIT (int)
Body encoding: 7 bit SMTP semantic data
ENC8BIT (int)
Body encoding: 8 bit SMTP semantic data
ENCBINARY (int)
Body encoding: 8 bit binary data
ENCBASE64 (int)
Body encoding: base-64 encoded data
ENCQUOTEDPRINTABLE (int)
Body encoding: human-readable 8-as-7 bit data
ENCOTHER (int)
Body encoding: unknown
IMAP_OPENTIMEOUT (int)
IMAP_READTIMEOUT (int)
IMAP_WRITETIMEOUT (int)
IMAP_CLOSETIMEOUT (int)
IMAP_GC_ELT (int)
Garbage collector, clear message cache elements.
IMAP_GC_ENV (int)
Garbage collector, clear envelopes and bodies.
IMAP_GC_TEXTS (int)
Garbage collector, clear texts.


IMAP Funções

Veja Também

This document can't go into detail on all the topics touched by the provided functions. Further information is provided by the documentation of the c-client library source (docs/internal.txt). and the following RFC documents:

  • » RFC2821: Simple Mail Transfer Protocol (SMTP).
  • » RFC2822: Standard for ARPA internet text messages.
  • » RFC2060: Internet Message Access Protocol (IMAP) Version 4rev1.
  • » RFC1939: Post Office Protocol Version 3 (POP3).
  • » RFC977: Network News Transfer Protocol (NNTP).
  • » RFC2076: Common Internet Message Headers.
  • » RFC2045 , » RFC2046 , » RFC2047 , » RFC2048 & » RFC2049: Multipurpose Internet Mail Extensions (MIME).
A detailed overview is also available in the books » Programming Internet Email by David Wood and » Managing IMAP by Dianna Mullet & Kevin Mullet.

Índice

  • imap_8bit — Convert an 8bit string to a quoted-printable string
  • imap_alerts — Returns all IMAP alert messages that have occurred
  • imap_append — Append a string message to a specified mailbox
  • imap_base64 — Decode BASE64 encoded text
  • imap_binary — Convert an 8bit string to a base64 string
  • imap_body — Read the message body
  • imap_bodystruct — Read the structure of a specified body section of a specific message
  • imap_check — Check current mailbox
  • imap_clearflag_full — Clears flags on messages
  • imap_close — Close an IMAP stream
  • imap_create — Sinônimo de imap_createmailbox
  • imap_createmailbox — Create a new mailbox
  • imap_delete — Mark a message for deletion from current mailbox
  • imap_deletemailbox — Delete a mailbox
  • imap_errors — Returns all of the IMAP errors that have occurred
  • imap_expunge — Delete all messages marked for deletion
  • imap_fetch_overview — Read an overview of the information in the headers of the given message
  • imap_fetchbody — Fetch a particular section of the body of the message
  • imap_fetchheader — Returns header for a message
  • imap_fetchmime — Fetch MIME headers for a particular section of the message
  • imap_fetchstructure — Read the structure of a particular message
  • imap_fetchtext — Sinônimo de imap_body
  • imap_gc — Clears IMAP cache
  • 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 — Read the list of mailboxes, returning detailed information on each one
  • imap_getsubscribed — List all the subscribed mailboxes
  • imap_header — Sinônimo de imap_headerinfo
  • imap_headerinfo — Read the header of the message
  • imap_headers — Returns headers for all messages in a mailbox
  • imap_is_open — Check if the IMAP stream is still valid
  • imap_last_error — Gets the last IMAP error that occurred during this page request
  • imap_list — Read the list of mailboxes
  • imap_listmailbox — Sinônimo de imap_list
  • imap_listscan — Returns the list of mailboxes that matches the given text
  • imap_listsubscribed — Sinônimo de imap_lsub
  • imap_lsub — List all the subscribed mailboxes
  • imap_mail_compose — Create a MIME message based on given envelope and body sections
  • imap_mail_copy — Copy specified messages to a mailbox
  • imap_mail_move — Move specified messages to a mailbox
  • imap_mail — Send an email message
  • imap_mailboxmsginfo — Get information about the current mailbox
  • imap_mime_header_decode — Decode MIME header elements
  • imap_msgno — Gets the message sequence number for the given UID
  • imap_mutf7_to_utf8 — Decode a modified UTF-7 string to UTF-8
  • imap_num_msg — Gets the number of messages in the current mailbox
  • imap_num_recent — Gets the number of recent messages in current mailbox
  • imap_open — Open an IMAP stream to a mailbox
  • imap_ping — Check if the IMAP stream is still active
  • imap_qprint — Convert a quoted-printable string to an 8 bit string
  • imap_rename — Sinônimo de imap_renamemailbox
  • imap_renamemailbox — Rename an old mailbox to new mailbox
  • imap_reopen — Reopen IMAP stream to new mailbox
  • imap_rfc822_parse_adrlist — Parses an address string
  • imap_rfc822_parse_headers — Parse mail headers from a string
  • imap_rfc822_write_address — Returns a properly formatted email address given the mailbox, host, and personal info
  • imap_savebody — Save a specific body section to a file
  • imap_scan — Sinônimo de imap_listscan
  • imap_scanmailbox — Sinônimo de imap_listscan
  • imap_search — This function returns an array of messages matching the given search criteria
  • imap_set_quota — Sets a quota for a given mailbox
  • imap_setacl — Sets the ACL for a given mailbox
  • imap_setflag_full — Sets flags on messages
  • imap_sort — Gets and sort messages
  • imap_status — Returns status information on a mailbox
  • imap_subscribe — Subscribe to a mailbox
  • imap_thread — Returns a tree of threaded message
  • imap_timeout — Set or fetch imap timeout
  • imap_uid — This function returns the UID for the given message sequence number
  • imap_undelete — Unmark the message which is marked deleted
  • 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_to_mutf7 — Encode a UTF-8 string to modified UTF-7
  • imap_utf8 — Converts MIME-encoded text to UTF-8


Convert an 8bit string to a quoted-printable string

  • « IMAP Funções
  • imap_alerts »
  • PHP Manual
  • IMAP Funções
  • Convert an 8bit string to a quoted-printable string

imap_8bit

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_8bit — Convert an 8bit string to a quoted-printable string

Descrição

imap_8bit(string $string): string|false

Convert an 8bit string to a quoted-printable string (according to » RFC2045, section 6.7).

Parâmetros

string

The 8bit string to convert

Valor Retornado

Returns a quoted-printable string, ou false em caso de falha.

Veja Também

  • imap_qprint() - Convert a quoted-printable string to an 8 bit string


Returns all IMAP alert messages that have occurred

  • « imap_8bit
  • imap_append »
  • PHP Manual
  • IMAP Funções
  • Returns all IMAP alert messages that have occurred

imap_alerts

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_alerts — Returns all IMAP alert messages that have occurred

Descrição

imap_alerts(): array|false

Returns all of the IMAP alert messages generated since the last imap_alerts() call, or the beginning of the page.

When imap_alerts() is called, the alert stack is subsequently cleared. The IMAP specification requires that these messages be passed to the user.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of all of the IMAP alert messages generated or false if no alert messages are available.

Veja Também

  • imap_errors() - Returns all of the IMAP errors that have occurred


Append a string message to a specified mailbox

  • « imap_alerts
  • imap_base64 »
  • PHP Manual
  • IMAP Funções
  • Append a string message to a specified mailbox

imap_append

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_append — Append a string message to a specified mailbox

Descrição

imap_append(
IMAP\Connection $imap,
string $folder,
string $message,
?string $options = null,
?string $internal_date = null
): bool

Appends a string message to the specified folder.

Parâmetros

imap

Uma instância de IMAP\Connection.

folder

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

message

The message to be append, as a string

When talking to the Cyrus IMAP server, you must use "\r\n" as your end-of-line terminator instead of "\n" or the operation will fail

options

If provided, the options will also be written to the folder

internal_date

If this parameter is set, it will set the INTERNALDATE on the appended message. The parameter should be a date string that conforms to the rfc2060 specifications for a date_time value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.
8.0.0 | options and internal_date are now nullable.

Exemplos

Exemplo #1 imap_append() example

<?php
$imap = imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

$check = imap_check($imap);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($imap, "{imap.example.org}INBOX.Drafts"
, "From: me@example.com\r\n"
. "To: you@example.com\r\n"
. "Subject: test\r\n"
. "\r\n"
. "this is a test message, please ignore\r\n"
);

$check = imap_check($imap);
echo "Msg Count after append : ". $check->Nmsgs . "\n";

imap_close($imap);
?>


Decode BASE64 encoded text

  • « imap_append
  • imap_binary »
  • PHP Manual
  • IMAP Funções
  • Decode BASE64 encoded text

imap_base64

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_base64 — Decode BASE64 encoded text

Descrição

imap_base64(string $string): string|false

Decodes the given BASE-64 encoded string.

Parâmetros

string

The encoded text

Valor Retornado

Returns the decoded message as a string, ou false em caso de falha.

Veja Também

  • imap_binary() - Convert an 8bit string to a base64 string
  • base64_encode() - Codifica dados com MIME base64
  • base64_decode() - Decodifica dados no formato MIME base64
  • » RFC2045, Section 6.8


Convert an 8bit string to a base64 string

  • « imap_base64
  • imap_body »
  • PHP Manual
  • IMAP Funções
  • Convert an 8bit string to a base64 string

imap_binary

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_binary — Convert an 8bit string to a base64 string

Descrição

imap_binary(string $string): string|false

Convert an 8bit string to a base64 string according to » RFC2045, Section 6.8.

Parâmetros

string

The 8bit string

Valor Retornado

Returns a base64 encoded string, ou false em caso de falha.

Veja Também

  • imap_base64() - Decode BASE64 encoded text


Read the message body

  • « imap_binary
  • imap_bodystruct »
  • PHP Manual
  • IMAP Funções
  • Read the message body

imap_body

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_body — Read the message body

Descrição

imap_body(IMAP\Connection $imap, int $message_num, int $flags = 0): string|false

imap_body() returns the body of the message, numbered message_num in the current mailbox.

imap_body() will only return a verbatim copy of the message body. To extract single parts of a multipart MIME-encoded message you have to use imap_fetchstructure() to analyze its structure and imap_fetchbody() to extract a copy of a single body component.

Parâmetros

imap

Uma instância de IMAP\Connection.

message_num

The message number

flags

The optional flags are a bit mask with one or more of the following:

  • FT_UID - The message_num is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

Valor Retornado

Returns the body of the specified message, as a string, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.


Read the structure of a specified body section of a specific message

  • « imap_body
  • imap_check »
  • PHP Manual
  • IMAP Funções
  • Read the structure of a specified body section of a specific message

imap_bodystruct

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_bodystruct — Read the structure of a specified body section of a specific message

Descrição

imap_bodystruct(IMAP\Connection $imap, int $message_num, string $section): stdClass|false

Read the structure of a specified body section of a specific message.

Parâmetros

imap

Uma instância de IMAP\Connection.

message_num

The message number

section

The body section to read

Valor Retornado

Returns the information in an object, ou false em caso de falha. For a detailed description of the object structure and properties see imap_fetchstructure().

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_fetchstructure() - Read the structure of a particular message


Check current mailbox

  • « imap_bodystruct
  • imap_clearflag_full »
  • PHP Manual
  • IMAP Funções
  • Check current mailbox

imap_check

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_check — Check current mailbox

Descrição

imap_check(IMAP\Connection $imap): stdClass|false

Checks information about the current mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

Valor Retornado

Returns the information in an object with following properties:

  • Date - current system time formatted according to » RFC2822
  • Driver - protocol used to access this mailbox: POP3, IMAP, NNTP
  • Mailbox - the mailbox name
  • Nmsgs - number of messages in the mailbox
  • Recent - number of recent messages in the mailbox

Returns false on failure.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_check() example

<?php

$imap = imap_check($imap_stream);
var_dump($imap);

?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)(5) {
  ["Date"]=>
  string(37) "Wed, 10 Dec 2003 17:56:54 +0100 (CET)"
  ["Driver"]=>
  string(4) "imap"
  ["Mailbox"]=>
  string(54)
  "{www.example.com:143/imap/user="foo@example.com"}INBOX"
  ["Nmsgs"]=>
  int(1)
  ["Recent"]=>
  int(0)
}


Clears flags on messages

  • « imap_check
  • imap_close »
  • PHP Manual
  • IMAP Funções
  • Clears flags on messages

imap_clearflag_full

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_clearflag_full — Clears flags on messages

Descrição

imap_clearflag_full(
IMAP\Connection $imap,
string $sequence,
string $flag,
int $options = 0
): true

This function causes a store to delete the specified flag to the flags set for the messages in the specified sequence.

Parâmetros

imap

Uma instância de IMAP\Connection.

sequence

A sequence of message numbers. You can enumerate desired messages with the X,Y syntax, or retrieve all messages within an interval with the X:Y syntax

flag

The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", and "\\Draft" (as defined by » RFC2060)

options

options are a bit mask and may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

Valor Retornado

Sempre retorna true.

Erros/Exceções

Throws a ValueError if options is invalid.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.
8.0.0 | A ValueError is now thrown on invalid options parameter values. Previously, a warning was emitted and the function returned false.

Veja Também

  • imap_setflag_full() - Sets flags on messages


Close an IMAP stream

  • « imap_clearflag_full
  • imap_create »
  • PHP Manual
  • IMAP Funções
  • Close an IMAP stream

imap_close

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_close — Close an IMAP stream

Descrição

imap_close(IMAP\Connection $imap, int $flags = 0): true

Closes the imap stream.

Parâmetros

imap

Uma instância de IMAP\Connection.

flags

If set to CL_EXPUNGE, the function will silently expunge the mailbox before closing, removing all messages marked for deletion. You can achieve the same thing by using imap_expunge()

Valor Retornado

Sempre retorna true.

Erros/Exceções

Throws a ValueError if flags is invalid.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.
8.0.0 | A ValueError is now thrown on invalid flags parameter values. Previously, a warning was emitted and the function returned false.

Veja Também

  • imap_open() - Open an IMAP stream to a mailbox


Sinônimo de imap_createmailbox

  • « imap_close
  • imap_createmailbox »
  • PHP Manual
  • IMAP Funções
  • Sinônimo de imap_createmailbox

imap_create

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_create — Sinônimo de imap_createmailbox()

Descrição

Esta função é um apelido para: imap_createmailbox().


Create a new mailbox

  • « imap_create
  • imap_delete »
  • PHP Manual
  • IMAP Funções
  • Create a new mailbox

imap_createmailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_createmailbox — Create a new mailbox

Descrição

imap_createmailbox(IMAP\Connection $imap, string $mailbox): bool

Creates a new mailbox specified by mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

The mailbox name, see imap_open() for more information. Names containing international characters should be encoded by imap_utf7_encode()

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_createmailbox() example

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
or die("can't connect: " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewböx"); // phpnewb&w7Y-x

$newname = $name1;

echo "Newname will be '$name1'<br />\n";

// we will now create a new mailbox "phptestbox" in your inbox folder,
// check its status after creation and finally remove it to restore
// your inbox to its initial state

if (@imap_createmailbox($mbox, imap_utf7_encode("{imap.example.org}INBOX.$newname"))) {
$status = @imap_status($mbox, "{imap.example.org}INBOX.$newname", SA_ALL);
if ($status) {
echo "your new mailbox '$name1' has the following status:<br />\n";
echo "Messages: " . $status->messages . "<br />\n";
echo "Recent: " . $status->recent . "<br />\n";
echo "Unseen: " . $status->unseen . "<br />\n";
echo "UIDnext: " . $status->uidnext . "<br />\n";
echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";

if (imap_renamemailbox($mbox, "{imap.example.org}INBOX.$newname", "{imap.example.org}INBOX.$name2")) {
echo "renamed new mailbox from '$name1' to '$name2'<br />\n";
$newname = $name2;
} else {
echo "imap_renamemailbox on new mailbox failed: " . imap_last_error() . "<br />\n";
}
} else {
echo "imap_status on new mailbox failed: " . imap_last_error() . "<br />\n";
}

if (@imap_deletemailbox($mbox, "{imap.example.org}INBOX.$newname")) {
echo "new mailbox removed to restore initial state<br />\n";
} else {
echo "imap_deletemailbox on new mailbox failed: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

} else {
echo "could not create new mailbox: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

Veja Também

  • imap_renamemailbox() - Rename an old mailbox to new mailbox
  • imap_deletemailbox() - Delete a mailbox


Mark a message for deletion from current mailbox

  • « imap_createmailbox
  • imap_deletemailbox »
  • PHP Manual
  • IMAP Funções
  • Mark a message for deletion from current mailbox

imap_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_delete — Mark a message for deletion from current mailbox

Descrição

imap_delete(IMAP\Connection $imap, string $message_nums, int $flags = 0): true

Marks messages listed in message_nums for deletion. Messages marked for deletion will stay in the mailbox until either imap_expunge() is called or imap_close() is called with the optional parameter CL_EXPUNGE.

Parâmetros

imap

Uma instância de IMAP\Connection.

message_nums

A string representing one or more messages in IMAP4-style sequence format ("n", "n:m", or combination of these delimited by commas).

flags

You can set the FT_UID which tells the function to treat the message_nums argument as a UID.

Valor Retornado

Sempre retorna true.

Erros/Exceções

Throws a ValueError if flags is invalid.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.
8.0.0 | A ValueError is now thrown on invalid flags parameter values. Previously, a warning was emitted and the function returned false.

Exemplos

Exemplo #1 imap_delete() example

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
or die("Can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo "Messages before delete: " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after delete: " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after expunge: " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

Notas

Nota:

IMAP mailboxes may not have their message flags saved between connections, so imap_expunge() should be called during the same connection in order to guarantee that messages marked for deletion will actually be purged.

Veja Também

  • imap_undelete() - Unmark the message which is marked deleted
  • imap_expunge() - Delete all messages marked for deletion
  • imap_close() - Close an IMAP stream


Delete a mailbox

  • « imap_delete
  • imap_errors »
  • PHP Manual
  • IMAP Funções
  • Delete a mailbox

imap_deletemailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_deletemailbox — Delete a mailbox

Descrição

imap_deletemailbox(IMAP\Connection $imap, string $mailbox): bool

Deletes the specified mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_createmailbox() - Create a new mailbox
  • imap_renamemailbox() - Rename an old mailbox to new mailbox
  • imap_open() - Open an IMAP stream to a mailbox for the format of mbox


Returns all of the IMAP errors that have occurred

  • « imap_deletemailbox
  • imap_expunge »
  • PHP Manual
  • IMAP Funções
  • Returns all of the IMAP errors that have occurred

imap_errors

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_errors — Returns all of the IMAP errors that have occurred

Descrição

imap_errors(): array|false

Gets all of the IMAP errors (if any) that have occurred during this page request or since the error stack was reset.

When imap_errors() is called, the error stack is subsequently cleared.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

This function returns an array of all of the IMAP error messages generated since the last imap_errors() call, or the beginning of the page. Returns false if no error messages are available.

Veja Também

  • imap_last_error() - Gets the last IMAP error that occurred during this page request
  • imap_alerts() - Returns all IMAP alert messages that have occurred


Delete all messages marked for deletion

  • « imap_errors
  • imap_fetch_overview »
  • PHP Manual
  • IMAP Funções
  • Delete all messages marked for deletion

imap_expunge

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_expunge — Delete all messages marked for deletion

Descrição

imap_expunge(IMAP\Connection $imap): true

Deletes all the messages marked for deletion by imap_delete(), imap_mail_move(), or imap_setflag_full().

Parâmetros

imap

Uma instância de IMAP\Connection.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.


Read an overview of the information in the headers of the given message

  • « imap_expunge
  • imap_fetchbody »
  • PHP Manual
  • IMAP Funções
  • Read an overview of the information in the headers of the given message

imap_fetch_overview

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetch_overview — Read an overview of the information in the headers of the given message

Descrição

imap_fetch_overview(IMAP\Connection $imap, string $sequence, int $flags = 0): array|false

This function fetches mail headers for the given sequence and returns an overview of their contents.

Parâmetros

imap

Uma instância de IMAP\Connection.

sequence

A message sequence description. You can enumerate desired messages with the X,Y syntax, or retrieve all messages within an interval with the X:Y syntax

flags

sequence will contain a sequence of message indices or UIDs, if this parameter is set to FT_UID.

Valor Retornado

Returns an array of objects describing one message header each. The object will only define a property if it exists. The possible properties are:

  • subject - the messages subject
  • from - who sent it
  • to - recipient
  • date - when was it sent
  • message_id - Message-ID
  • references - is a reference to this message id
  • in_reply_to - is a reply to this message id
  • size - size in bytes
  • uid - UID the message has in the mailbox
  • msgno - message sequence number in the mailbox
  • 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
  • udate - the UNIX timestamp of the arrival date
The function returns false on failure.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_fetch_overview() example

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password")
or die("can't connect: " . imap_last_error());

$MC = imap_check($mbox);

// Fetch an overview for all messages in INBOX
$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach ($result as $overview) {
echo "#{$overview->msgno} ({$overview->date}) - From: {$overview->from}
{$overview->subject}\n";
}
imap_close($mbox);
?>

Veja Também

  • imap_fetchheader() - Returns header for a message


Fetch a particular section of the body of the message

  • « imap_fetch_overview
  • imap_fetchheader »
  • PHP Manual
  • IMAP Funções
  • Fetch a particular section of the body of the message

imap_fetchbody

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetchbody — Fetch a particular section of the body of the message

Descrição

imap_fetchbody(
IMAP\Connection $imap,
int $message_num,
string $section,
int $flags = 0
): string|false

Fetch of a particular section of the body of the specified messages. Body parts are not decoded by this function.

Parâmetros

imap

Uma instância de IMAP\Connection.

message_num

The message number

section

The part number. It is a string of integers delimited by period which index into a body part list as per the IMAP4 specification

flags

A bitmask with one or more of the following:

  • FT_UID - The message_num is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

Valor Retornado

Returns a particular section of the body of the specified messages as a text string, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_savebody() - Save a specific body section to a file
  • imap_fetchstructure() - Read the structure of a particular message


Returns header for a message

  • « imap_fetchbody
  • imap_fetchmime »
  • PHP Manual
  • IMAP Funções
  • Returns header for a message

imap_fetchheader

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetchheader — Returns header for a message

Descrição

imap_fetchheader(IMAP\Connection $imap, int $message_num, int $flags = 0): string|false

This function causes a fetch of the complete, unfiltered » RFC2822 format header of the specified message.

Parâmetros

imap

Uma instância de IMAP\Connection.

message_num

The message number

flags

The possible flags are:

  • FT_UID - The message_num argument is a UID
  • FT_INTERNAL - The return string is in "internal" format, without any attempt to canonicalize to CRLF newlines
  • FT_PREFETCHTEXT - The RFC822.TEXT should be pre-fetched at the same time. This avoids an extra RTT on an IMAP connection if a full message text is desired (e.g. in a "save to local file" operation)

Valor Retornado

Returns the header of the specified message as a text string, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_fetch_overview() - Read an overview of the information in the headers of the given message


Fetch MIME headers for a particular section of the message

  • « imap_fetchheader
  • imap_fetchstructure »
  • PHP Manual
  • IMAP Funções
  • Fetch MIME headers for a particular section of the message

imap_fetchmime

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

imap_fetchmime — Fetch MIME headers for a particular section of the message

Descrição

imap_fetchmime(
IMAP\Connection $imap,
int $message_num,
string $section,
int $flags = 0
): string|false

Fetch the MIME headers of a particular section of the body of the specified messages.

Parâmetros

imap

Uma instância de IMAP\Connection.

message_num

The message number

section

The part number. It is a string of integers delimited by period which index into a body part list as per the IMAP4 specification

flags

A bitmask with one or more of the following:

  • FT_UID - The message_num is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

Valor Retornado

Returns the MIME headers of a particular section of the body of the specified messages as a text string, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_fetchbody() - Fetch a particular section of the body of the message
  • imap_fetchstructure() - Read the structure of a particular message
  • imap_fetchheader() - Returns header for a message


Read the structure of a particular message

  • « imap_fetchmime
  • imap_fetchtext »
  • PHP Manual
  • IMAP Funções
  • Read the structure of a particular message

imap_fetchstructure

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetchstructure — Read the structure of a particular message

Descrição

imap_fetchstructure(IMAP\Connection $imap, int $message_num, int $flags = 0): stdClass|false

Fetches all the structured information for a given message.

Parâmetros

imap

Uma instância de IMAP\Connection.

message_num

The message number

flags

This optional parameter only has a single option, FT_UID, which tells the function to treat the message_num argument as a UID.

Valor Retornado

Returns an object with properties listed in the table below, ou false em caso de falha.

Returned Object for imap_fetchstructure()
type | Primary body type
encoding | Body transfer encoding
ifsubtype | true if there is a subtype string
subtype | MIME subtype
ifdescription | true if there is a description string
description | Content description string
ifid | true if there is an identification string
id | Identification string
lines | Number of lines
bytes | Number of bytes
ifdisposition | true if there is a disposition string
disposition | Disposition string
ifdparameters | true if the dparameters array exists
dparameters | An array of objects where each object has an "attribute" and a "value" property corresponding to the parameters on the Content-disposition MIME header.
ifparameters | true if the parameters array exists
parameters | An array of objects where each object has an "attribute" and a "value" property.
parts | An array of objects identical in structure to the top-level object, each of which corresponds to a MIME body part.

Primary body type (value may vary with used library, use of constants is recommended)
Value | Type | Constant
0 | text | TYPETEXT
1 | multipart | TYPEMULTIPART
2 | message | TYPEMESSAGE
3 | application | TYPEAPPLICATION
4 | audio | TYPEAUDIO
5 | image | TYPEIMAGE
6 | video | TYPEVIDEO
7 | model | TYPEMODEL
8 | other | TYPEOTHER

Transfer encodings (value may vary with used library, use of constants is recommended)
Value | Type | Constant
0 | 7bit | ENC7BIT
1 | 8bit | ENC8BIT
2 | Binary | ENCBINARY
3 | Base64 | ENCBASE64
4 | Quoted-Printable | ENCQUOTEDPRINTABLE
5 | other | ENCOTHER

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_fetchbody() - Fetch a particular section of the body of the message
  • imap_bodystruct() - Read the structure of a specified body section of a specific message


Sinônimo de imap_body

  • « imap_fetchstructure
  • imap_gc »
  • PHP Manual
  • IMAP Funções
  • Sinônimo de imap_body

imap_fetchtext

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetchtext — Sinônimo de imap_body()

Descrição

Esta função é um apelido para: imap_body().


Clears IMAP cache

  • « imap_fetchtext
  • imap_get_quota »
  • PHP Manual
  • IMAP Funções
  • Clears IMAP cache

imap_gc

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

imap_gc — Clears IMAP cache

Descrição

imap_gc(IMAP\Connection $imap, int $flags): true

Purges the cache of entries of a specific type.

Parâmetros

imap

Uma instância de IMAP\Connection.

flags

Specifies the cache to purge. It may one or a combination of the following constants: IMAP_GC_ELT (message cache elements), IMAP_GC_ENV (envelope and bodies), IMAP_GC_TEXTS (texts).

Valor Retornado

Sempre retorna true.

Erros/Exceções

Throws a ValueError if flags is invalid.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.
8.0.0 | A ValueError is now thrown on invalid flags parameter values. Previously, a warning was emitted and the function returned false.

Exemplos

Exemplo #1 imap_gc() example

<?php

$mbox = imap_open("{imap.example.org:143}", "username", "password");

imap_gc($mbox, IMAP_GC_ELT);

?>


Retrieve the quota level settings, and usage statics per mailbox

  • « imap_gc
  • imap_get_quotaroot »
  • PHP Manual
  • IMAP Funções
  • Retrieve the quota level settings, and usage statics per mailbox

imap_get_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

imap_get_quota — Retrieve the quota level settings, and usage statics per mailbox

Descrição

imap_get_quota(IMAP\Connection $imap, string $quota_root): array|false

Retrieve the quota level settings, and usage statics per mailbox.

For a non-admin user version of this function, please see the imap_get_quotaroot() function of PHP.

Parâmetros

imap

Uma instância de IMAP\Connection.

quota_root

quota_root should normally be in the form of user.name where name is the mailbox you wish to retrieve information about.

Valor Retornado

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.

As of PHP 4.3, the function more properly reflects the functionality as dictated by the » RFC2087. 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.

For backwards compatibility reasons, the original access methods are still available for use, although it is suggested to update.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_get_quota() example

<?php
$mbox = imap_open("{imap.example.org}", "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)) {
echo "Usage level is: " . $quota_value['usage'];
echo "Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

Exemplo #2 imap_get_quota() 4.3 or greater example

<?php
$mbox = imap_open("{imap.example.org}", "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'];
echo "STORAGE usage level is: " . $storage['usage'];
echo "STORAGE limit level is: " . $storage['limit'];

$message = $quota_values['MESSAGE'];
echo "MESSAGE usage level is: " . $message['usage'];
echo "MESSAGE limit is: " . $message['limit'];

/* ... */
}

imap_close($mbox);
?>

Notas

This function is currently only available to users of the c-client2000 or greater library.

The given imap must be opened as the mail administrator, otherwise this function will fail.

Veja Também

  • imap_open() - Open an IMAP stream to a mailbox
  • imap_set_quota() - Sets a quota for a given mailbox
  • imap_get_quotaroot() - Retrieve the quota settings per user


Retrieve the quota settings per user

  • « imap_get_quota
  • imap_getacl »
  • PHP Manual
  • IMAP Funções
  • Retrieve the quota settings per user

imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

imap_get_quotaroot — Retrieve the quota settings per user

Descrição

imap_get_quotaroot(IMAP\Connection $imap, string $mailbox): array|false

Retrieve the quota settings per user. 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.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

mailbox should normally be in the form of which mailbox (i.e. INBOX).

Valor Retornado

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.

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.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_get_quotaroot() example

<?php
$mbox = imap_open("{imap.example.org}", "kalowsky", "password", OP_HALFOPEN)
or die("can't connect: " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
$storage = $quota['STORAGE'];
echo "STORAGE usage level is: " . $storage['usage'];
echo "STORAGE limit level is: " . $storage['limit'];

$message = $quota['MESSAGE'];
echo "MESSAGE usage level is: " . $message['usage'];
echo "MESSAGE limit level is: " . $message['limit'];

/* ... */

}

imap_close($mbox);
?>

Notas

This function is currently only available to users of the c-client2000 or greater library.

The imap should be opened as the user whose mailbox you wish to check.

Veja Também

  • imap_open() - Open an IMAP stream to a mailbox
  • imap_set_quota() - Sets a quota for a given mailbox
  • imap_get_quota() - Retrieve the quota level settings, and usage statics per mailbox


Gets the ACL for a given mailbox

  • « imap_get_quotaroot
  • imap_getmailboxes »
  • PHP Manual
  • IMAP Funções
  • Gets the ACL for a given mailbox

imap_getacl

(PHP 5, PHP 7, PHP 8)

imap_getacl — Gets the ACL for a given mailbox

Descrição

imap_getacl(IMAP\Connection $imap, string $mailbox): array|false

Gets the ACL for a given mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

Valor Retornado

Returns an associative array of "folder" => "acl" pairs, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_getacl() example

<?php

print_r(imap_getacl($imap, 'user.joecool'));

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [asubfolder] => lrswipcda
    [anothersubfolder] => lrswipcda
)

Notas

This function is currently only available to users of the c-client2000 or greater library.

Veja Também

  • imap_setacl() - Sets the ACL for a given mailbox


Read the list of mailboxes, returning detailed information on each one

  • « imap_getacl
  • imap_getsubscribed »
  • PHP Manual
  • IMAP Funções
  • Read the list of mailboxes, returning detailed information on each one

imap_getmailboxes

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_getmailboxes — Read the list of mailboxes, returning detailed information on each one

Descrição

imap_getmailboxes(IMAP\Connection $imap, string $reference, string $pattern): array|false

Gets information on the mailboxes.

Parâmetros

imap

Uma instância de IMAP\Connection.

reference

reference should normally be just the server specification as described in imap_open()

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

pattern

Especifica onde iniciar a pesquisa na hierarquia da caixa de mensagem.

Existem dois caracteres especiais que podem ser passados como parte do parâmetro pattern: '*' e '%'. '*' significa retornar todas as caixas de mensagem. Se pattern for passado como '*', será retornada uma lista de toda a hierarquia da caixa de mensagem. '%' significa retornar apenas o nível atual. Passar '%' como o parâmetro pattern retornará apenas as caixas de mensagem do nível mais alto; Passar '~/mail/%' em UW_IMAPD retornará todas as caixas de mensagem no diretório ~/mail, mas não retornará nenhuma nas subpastas deste diretório.

Valor Retornado

Returns an array of objects containing mailbox information. Each object has the attributes name, specifying the full name of the mailbox; delimiter, which is the hierarchy delimiter for the part of the hierarchy this mailbox is in; and attributes. Attributes is a bitmask that can be tested against:

  • LATT_NOINFERIORS - This mailbox not contains, and may not contain any "children" (there are no mailboxes below this one). Calling imap_createmailbox() will not work on this mailbox.

  • LATT_NOSELECT - This is only a container, not a mailbox - you cannot open it.

  • LATT_MARKED - This mailbox is marked. This means that it may contain new messages since the last time it was checked. Not provided by all IMAP servers.

  • LATT_UNMARKED - This mailbox is not marked, does not contain new messages. If either MARKED or UNMARKED is provided, you can assume the IMAP server supports this feature for this mailbox.

  • LATT_REFERRAL - This container has a referral to a remote mailbox.

  • LATT_HASCHILDREN - This mailbox has selectable inferiors.

  • LATT_HASNOCHILDREN - This mailbox has no selectable inferiors.

The function returns false on failure.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_getmailboxes() example

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
or die("can't connect: " . imap_last_error());

$list = imap_getmailboxes($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
foreach ($list as $key => $val) {
echo "($key) ";
echo imap_utf7_decode($val->name) . ",";
echo "'" . $val->delimiter . "',";
echo $val->attributes . "<br />\n";
}
} else {
echo "imap_getmailboxes failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Veja Também

  • imap_getsubscribed() - List all the subscribed mailboxes


List all the subscribed mailboxes

  • « imap_getmailboxes
  • imap_header »
  • PHP Manual
  • IMAP Funções
  • List all the subscribed mailboxes

imap_getsubscribed

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_getsubscribed — List all the subscribed mailboxes

Descrição

imap_getsubscribed(IMAP\Connection $imap, string $reference, string $pattern): array|false

Gets information about the subscribed mailboxes.

Identical to imap_getmailboxes(), except that it only returns mailboxes that the user is subscribed to.

Parâmetros

imap

Uma instância de IMAP\Connection.

reference

reference should normally be just the server specification as described in imap_open()

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

pattern

Especifica onde iniciar a pesquisa na hierarquia da caixa de mensagem.

Existem dois caracteres especiais que podem ser passados como parte do parâmetro pattern: '*' e '%'. '*' significa retornar todas as caixas de mensagem. Se pattern for passado como '*', será retornada uma lista de toda a hierarquia da caixa de mensagem. '%' significa retornar apenas o nível atual. Passar '%' como o parâmetro pattern retornará apenas as caixas de mensagem do nível mais alto; Passar '~/mail/%' em UW_IMAPD retornará todas as caixas de mensagem no diretório ~/mail, mas não retornará nenhuma nas subpastas deste diretório.

Valor Retornado

Returns an array of objects containing mailbox information. Each object has the attributes name, specifying the full name of the mailbox; delimiter, which is the hierarchy delimiter for the part of the hierarchy this mailbox is in; and attributes. Attributes is a bitmask that can be tested against:

  • LATT_NOINFERIORS - This mailbox has no "children" (there are no mailboxes below this one).
  • LATT_NOSELECT - This is only a container, not a mailbox - you cannot open it.
  • LATT_MARKED - This mailbox is marked. Only used by UW-IMAPD.
  • LATT_UNMARKED - This mailbox is not marked. Only used by UW-IMAPD.
  • LATT_REFERRAL - This container has a referral to a remote mailbox.
  • LATT_HASCHILDREN - This mailbox has selectable inferiors.
  • LATT_HASNOCHILDREN - This mailbox has no selectable inferiors.
The function returns false on failure.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.


Sinônimo de imap_headerinfo

  • « imap_getsubscribed
  • imap_headerinfo »
  • PHP Manual
  • IMAP Funções
  • Sinônimo de imap_headerinfo

imap_header

(PHP 4, PHP 5, PHP 7)

imap_header — Sinônimo de imap_headerinfo()

Aviso

Este apelido foi REMOVIDO a partir do PHP 8.0.0.

Descrição

Esta função é um apelido para: imap_headerinfo().


Read the header of the message

  • « imap_header
  • imap_headers »
  • PHP Manual
  • IMAP Funções
  • Read the header of the message

imap_headerinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_headerinfo — Read the header of the message

Descrição

imap_headerinfo(
IMAP\Connection $imap,
int $message_num,
int $from_length = 0,
int $subject_length = 0
): stdClass|false

Gets information about the given message number by reading its headers.

Parâmetros

imap

Uma instância de IMAP\Connection.

message_num

The message number

from_length

Number of characters for the fetchfrom property. Must be greater than or equal to zero.

subject_length

Number of characters for the fetchsubject property Must be greater than or equal to zero.

defaulthost

Valor Retornado

Returns false on error or, if successful, the information in an object with following properties:

  • toaddress - full to: line, up to 1024 characters
  • to - an array of objects from the To: line, with the following properties: personal, adl, mailbox, and host
  • fromaddress - full from: line, up to 1024 characters
  • from - an array of objects from the From: line, with the following properties: personal, adl, mailbox, and host
  • ccaddress - full cc: line, up to 1024 characters
  • cc - an array of objects from the Cc: line, with the following properties: personal, adl, mailbox, and host
  • bccaddress - full bcc: line, up to 1024 characters
  • bcc - an array of objects from the Bcc: line, with the following properties: personal, adl, mailbox, and host
  • reply_toaddress - full Reply-To: line, up to 1024 characters
  • reply_to - an array of objects from the Reply-To: line, with the following properties: personal, adl, mailbox, and host
  • senderaddress - full sender: line, up to 1024 characters
  • sender - an array of objects from the Sender: line, with the following properties: personal, adl, mailbox, and host
  • return_pathaddress - full Return-Path: line, up to 1024 characters
  • return_path - an array of objects from the Return-Path: line, with the following properties: personal, adl, mailbox, and host
  • remail -
  • date - The message date as found in its headers
  • Date - Same as date
  • subject - The message subject
  • Subject - Same as subject
  • in_reply_to -
  • message_id -
  • newsgroups -
  • followup_to -
  • references -
  • 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
  • Flagged - F if flagged, ' ' if not flagged
  • Answered - A if answered, ' ' if unanswered
  • Deleted - D if deleted, ' ' if not deleted
  • Draft - X if draft, ' ' if not draft
  • Msgno - The message number
  • MailDate -
  • Size - The message size
  • udate - mail message date in Unix time
  • fetchfrom - from line formatted to fit from_length characters
  • fetchsubject - subject line formatted to fit subject_length characters

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.
8.0.0 | The unused defaulthost parameter has been removed.

Veja Também

  • imap_fetch_overview() - Read an overview of the information in the headers of the given message


Returns headers for all messages in a mailbox

  • « imap_headerinfo
  • imap_is_open »
  • PHP Manual
  • IMAP Funções
  • Returns headers for all messages in a mailbox

imap_headers

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_headers — Returns headers for all messages in a mailbox

Descrição

imap_headers(IMAP\Connection $imap): array|false

Returns headers for all messages in a mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

Valor Retornado

Returns an array of string formatted with header info. One element per mail message. Returns false on failure.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.


Check if the IMAP stream is still valid

  • « imap_headers
  • imap_last_error »
  • PHP Manual
  • IMAP Funções
  • Check if the IMAP stream is still valid

imap_is_open

(PHP 8 >= 8.2.1)

imap_is_open — Check if the IMAP stream is still valid

Descrição

imap_is_open(IMAP\Connection $imap): bool

Check if the IMAP stream is still valid.

Parâmetros

imap

Uma instância de IMAP\Connection.

Valor Retornado

Returns true if the stream is still valid, false otherwise.

Exemplos

Exemplo #1 imap_is_open() example

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password") or die(implode(", ", imap_errors()));
imap_is_open($mbox);
// ...
?>


Gets the last IMAP error that occurred during this page request

  • « imap_is_open
  • imap_list »
  • PHP Manual
  • IMAP Funções
  • Gets the last IMAP error that occurred during this page request

imap_last_error

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_last_error — Gets the last IMAP error that occurred during this page request

Descrição

imap_last_error(): string|false

Gets the full text of the last IMAP error message that occurred on the current page. The error stack is untouched; calling imap_last_error() subsequently, with no intervening errors, will return the same error.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the full text of the last IMAP error message that occurred on the current page. Returns false if no error messages are available.

Veja Também

  • imap_errors() - Returns all of the IMAP errors that have occurred


Read the list of mailboxes

  • « imap_last_error
  • imap_listmailbox »
  • PHP Manual
  • IMAP Funções
  • Read the list of mailboxes

imap_list

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_list — Read the list of mailboxes

Descrição

imap_list(IMAP\Connection $imap, string $reference, string $pattern): array|false

Read the list of mailboxes.

Parâmetros

imap

Uma instância de IMAP\Connection.

reference

reference should normally be just the server specification as described in imap_open().

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

pattern

Especifica onde iniciar a pesquisa na hierarquia da caixa de mensagem.

Existem dois caracteres especiais que podem ser passados como parte do parâmetro pattern: '*' e '%'. '*' significa retornar todas as caixas de mensagem. Se pattern for passado como '*', será retornada uma lista de toda a hierarquia da caixa de mensagem. '%' significa retornar apenas o nível atual. Passar '%' como o parâmetro pattern retornará apenas as caixas de mensagem do nível mais alto; Passar '~/mail/%' em UW_IMAPD retornará todas as caixas de mensagem no diretório ~/mail, mas não retornará nenhuma nas subpastas deste diretório.

Valor Retornado

Returns an array containing the names of the mailboxes or false in case of failure.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_list() example

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
or die("can't connect: " . imap_last_error());

$list = imap_list($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
foreach ($list as $val) {
echo imap_utf7_decode($val) . "\n";
}
} else {
echo "imap_list failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Veja Também

  • imap_getmailboxes() - Read the list of mailboxes, returning detailed information on each one
  • imap_lsub() - List all the subscribed mailboxes


Sinônimo de imap_list

  • « imap_list
  • imap_listscan »
  • PHP Manual
  • IMAP Funções
  • Sinônimo de imap_list

imap_listmailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_listmailbox — Sinônimo de imap_list()

Descrição

Esta função é um apelido para: imap_list().


Returns the list of mailboxes that matches the given text

  • « imap_listmailbox
  • imap_listsubscribed »
  • PHP Manual
  • IMAP Funções
  • Returns the list of mailboxes that matches the given text

imap_listscan

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_listscan — Returns the list of mailboxes that matches the given text

Descrição

imap_listscan(
IMAP\Connection $imap,
string $reference,
string $pattern,
string $content
): array|false

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.

Parâmetros

imap

Uma instância de IMAP\Connection.

reference

reference should normally be just the server specification as described in imap_open()

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

pattern

Especifica onde iniciar a pesquisa na hierarquia da caixa de mensagem.

Existem dois caracteres especiais que podem ser passados como parte do parâmetro pattern: '*' e '%'. '*' significa retornar todas as caixas de mensagem. Se pattern for passado como '*', será retornada uma lista de toda a hierarquia da caixa de mensagem. '%' significa retornar apenas o nível atual. Passar '%' como o parâmetro pattern retornará apenas as caixas de mensagem do nível mais alto; Passar '~/mail/%' em UW_IMAPD retornará todas as caixas de mensagem no diretório ~/mail, mas não retornará nenhuma nas subpastas deste diretório.

content

The searched string

Valor Retornado

Returns an array containing the names of the mailboxes that have content in the text of the mailbox, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_listmailbox() - Sinônimo de imap_list
  • imap_search() - This function returns an array of messages matching the given search criteria


Sinônimo de imap_lsub

  • « imap_listscan
  • imap_lsub »
  • PHP Manual
  • IMAP Funções
  • Sinônimo de imap_lsub

imap_listsubscribed

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_listsubscribed — Sinônimo de imap_lsub()

Descrição

Esta função é um apelido para: imap_lsub().


List all the subscribed mailboxes

  • « imap_listsubscribed
  • imap_mail_compose »
  • PHP Manual
  • IMAP Funções
  • List all the subscribed mailboxes

imap_lsub

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_lsub — List all the subscribed mailboxes

Descrição

imap_lsub(IMAP\Connection $imap, string $reference, string $pattern): array|false

Gets an array of all the mailboxes that you have subscribed.

Parâmetros

imap

Uma instância de IMAP\Connection.

reference

reference should normally be just the server specification as described in imap_open()

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

pattern

Especifica onde iniciar a pesquisa na hierarquia da caixa de mensagem.

Existem dois caracteres especiais que podem ser passados como parte do parâmetro pattern: '*' e '%'. '*' significa retornar todas as caixas de mensagem. Se pattern for passado como '*', será retornada uma lista de toda a hierarquia da caixa de mensagem. '%' significa retornar apenas o nível atual. Passar '%' como o parâmetro pattern retornará apenas as caixas de mensagem do nível mais alto; Passar '~/mail/%' em UW_IMAPD retornará todas as caixas de mensagem no diretório ~/mail, mas não retornará nenhuma nas subpastas deste diretório.

Valor Retornado

Returns an array of all the subscribed mailboxes, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_list() - Read the list of mailboxes
  • imap_getmailboxes() - Read the list of mailboxes, returning detailed information on each one


Create a MIME message based on given envelope and body sections

  • « imap_lsub
  • imap_mail_copy »
  • PHP Manual
  • IMAP Funções
  • Create a MIME message based on given envelope and body sections

imap_mail_compose

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail_compose — Create a MIME message based on given envelope and body sections

Descrição

imap_mail_compose(array $envelope, array $bodies): string|false

Create a MIME message based on the given envelope and bodies sections.

Parâmetros

envelope

An associative array of header fields. Valid keys are: "remail", "return_path", "date", "from", "reply_to", "in_reply_to", "subject", "to", "cc", "bcc" and "message_id", which set the respective message headers to the given string. To set additional headers, the key "custom_headers" is supported, which expects an array of those headers, e.g. ["User-Agent: My Mail Client"].

bodies

An indexed array of bodies. The first body is the main body of the message; only if it has a type of TYPEMULTIPART, further bodies are processed; these bodies constitute the bodies of the parts.

Body Array Structure
Key | Type | Description
type | int | The MIME type. One of TYPETEXT (default), TYPEMULTIPART, TYPEMESSAGE, TYPEAPPLICATION, TYPEAUDIO, TYPEIMAGE, TYPEMODEL or TYPEOTHER.
encoding | int | The Content-Transfer-Encoding. One of ENC7BIT (default), ENC8BIT, ENCBINARY, ENCBASE64, ENCQUOTEDPRINTABLE or ENCOTHER.
charset | string | The charset parameter of the MIME type.
type.parameters | array | An associative array of Content-Type parameter names and their values.
subtype | string | The MIME subtype, e.g. 'jpeg' for TYPEIMAGE.
id | string | The Content-ID.
description | string | The Content-Description.
disposition.type | string | The Content-Disposition, e.g. 'attachment'.
disposition | array | An associative array of Content-Disposition parameter names and values.
contents.data | string | The payload.
lines | int | The size of the payload in lines.
bytes | int | The size of the payload in bytes.
md5 | string | The MD5 checksum of the payload.

Valor Retornado

Returns the MIME message as string, ou false em caso de falha.

Exemplos

Exemplo #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));

?>


Copy specified messages to a mailbox

  • « imap_mail_compose
  • imap_mail_move »
  • PHP Manual
  • IMAP Funções
  • Copy specified messages to a mailbox

imap_mail_copy

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail_copy — Copy specified messages to a mailbox

Descrição

imap_mail_copy(
IMAP\Connection $imap,
string $message_nums,
string $mailbox,
int $flags = 0
): bool

Copies mail messages specified by message_nums to specified mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

message_nums

message_nums is a range not just message numbers (as described in » RFC2060).

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

flags

flags is a bitmask of one or more of

  • CP_UID - the sequence numbers contain UIDS
  • CP_MOVE - Delete the messages from the current mailbox after copying. If this flag is set, the function behaves identically to imap_mail_move().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_mail_move() - Move specified messages to a mailbox


Move specified messages to a mailbox

  • « imap_mail_copy
  • imap_mail »
  • PHP Manual
  • IMAP Funções
  • Move specified messages to a mailbox

imap_mail_move

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail_move — Move specified messages to a mailbox

Descrição

imap_mail_move(
IMAP\Connection $imap,
string $message_nums,
string $mailbox,
int $flags = 0
): bool

Moves mail messages specified by message_nums to the specified mailbox. Note that the mail messages are actually copied to the mailbox, and the original messages are flagged for deletion. That implies that the messages in mailbox are assigned new UIDs.

Parâmetros

imap

Uma instância de IMAP\Connection.

message_nums

message_nums is a range not just message numbers (as described in » RFC2060).

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

flags

flags is a bitmask and may contain the single option:

  • CP_UID - the sequence numbers contain UIDS

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Notas

Nota:

imap_mail_move() will flag the original mail with a delete flag, to successfully delete it a call to the imap_expunge() function must be made.

Veja Também

  • imap_mail_copy() - Copy specified messages to a mailbox


Send an email message

  • « imap_mail_move
  • imap_mailboxmsginfo »
  • PHP Manual
  • IMAP Funções
  • Send an email message

imap_mail

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail — Send an email message

Descrição

imap_mail(
string $to,
string $subject,
string $message,
?string $additional_headers = null,
?string $cc = null,
?string $bcc = null,
?string $return_path = null
): bool

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.

Parâmetros

to

The receiver

subject

The mail subject

message

The mail body, see imap_mail_compose()

additional_headers

As string with additional headers to be set on the mail

cc

bcc

The receivers specified in bcc will get the mail, but are excluded from the headers.

return_path

Use this parameter to specify return path upon mail delivery failure. This is useful when using PHP as a mail client for multiple users.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | additional_headers, cc, bcc, and return_path are now nullable.

Veja Também

  • mail() - Envia e-mail
  • imap_mail_compose() - Create a MIME message based on given envelope and body sections


Get information about the current mailbox

  • « imap_mail
  • imap_mime_header_decode »
  • PHP Manual
  • IMAP Funções
  • Get information about the current mailbox

imap_mailboxmsginfo

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mailboxmsginfo — Get information about the current mailbox

Descrição

imap_mailboxmsginfo(IMAP\Connection $imap): stdClass

Checks the current mailbox status on the server. It is similar to imap_status(), but will additionally sum up the size of all messages in the mailbox, which will take some additional time to execute.

Parâmetros

imap

Uma instância de IMAP\Connection.

Valor Retornado

Returns the information in an object with following properties:

Mailbox properties
Date | date of last change (current datetime)
Driver | driver
Mailbox | name of the mailbox
Nmsgs | number of messages
Recent | number of recent messages
Unread | number of unread messages
Deleted | number of deleted messages
Size | mailbox size

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_mailboxmsginfo() example

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
or die("can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);

if ($check) {
echo "Date: " . $check->Date . "<br />\n" ;
echo "Driver: " . $check->Driver . "<br />\n" ;
echo "Mailbox: " . $check->Mailbox . "<br />\n" ;
echo "Messages: " . $check->Nmsgs . "<br />\n" ;
echo "Recent: " . $check->Recent . "<br />\n" ;
echo "Unread: " . $check->Unread . "<br />\n" ;
echo "Deleted: " . $check->Deleted . "<br />\n" ;
echo "Size: " . $check->Size . "<br />\n" ;
} else {
echo "imap_mailboxmsginfo() failed: " . imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>


Decode MIME header elements

  • « imap_mailboxmsginfo
  • imap_msgno »
  • PHP Manual
  • IMAP Funções
  • Decode MIME header elements

imap_mime_header_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mime_header_decode — Decode MIME header elements

Descrição

imap_mime_header_decode(string $string): array|false

Decodes MIME message header extensions that are non ASCII text (see » RFC2047).

Parâmetros

string

The MIME text

Valor Retornado

The decoded elements are returned in an array of objects, where each object has two properties, charset and 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.

The function returns false on failure.

Exemplos

Exemplo #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";
}
?>

O exemplo acima produzirá:

Charset: ISO-8859-1
Text: Keld Jørn Simonsen

Charset: default
Text:  <keld@example.com>

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.

Veja Também

  • imap_utf8() - Converts MIME-encoded text to UTF-8


Gets the message sequence number for the given UID

  • « imap_mime_header_decode
  • imap_mutf7_to_utf8 »
  • PHP Manual
  • IMAP Funções
  • Gets the message sequence number for the given UID

imap_msgno

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_msgno — Gets the message sequence number for the given UID

Descrição

imap_msgno(IMAP\Connection $imap, int $message_uid): int

Returns the message sequence number for the given message_uid.

This function is the inverse of imap_uid().

Parâmetros

imap

Uma instância de IMAP\Connection.

message_uid

The message UID

Valor Retornado

Returns the message sequence number for the given message_uid.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_uid() - This function returns the UID for the given message sequence number


Decode a modified UTF-7 string to UTF-8

  • « imap_msgno
  • imap_num_msg »
  • PHP Manual
  • IMAP Funções
  • Decode a modified UTF-7 string to UTF-8

imap_mutf7_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

imap_mutf7_to_utf8 — Decode a modified UTF-7 string to UTF-8

Descrição

imap_mutf7_to_utf8(string $string): string|false

Decode a modified UTF-7 (as specified in RFC 2060, section 5.1.3) string to UTF-8.

Nota:

This function is only available, if libcclient exports utf8_to_mutf7().

Parâmetros

string

A string encoded in modified UTF-7.

Valor Retornado

Returns string converted to UTF-8, ou false em caso de falha.

Veja Também

  • imap_utf8_to_mutf7() - Encode a UTF-8 string to modified UTF-7


Gets the number of messages in the current mailbox

  • « imap_mutf7_to_utf8
  • imap_num_recent »
  • PHP Manual
  • IMAP Funções
  • Gets the number of messages in the current mailbox

imap_num_msg

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_num_msg — Gets the number of messages in the current mailbox

Descrição

imap_num_msg(IMAP\Connection $imap): int|false

Gets the number of messages in the current mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

Valor Retornado

Return the number of messages in the current mailbox, as an integer, or false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_num_recent() - Gets the number of recent messages in current mailbox
  • imap_status() - Returns status information on a mailbox


Gets the number of recent messages in current mailbox

  • « imap_num_msg
  • imap_open »
  • PHP Manual
  • IMAP Funções
  • Gets the number of recent messages in current mailbox

imap_num_recent

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_num_recent — Gets the number of recent messages in current mailbox

Descrição

imap_num_recent(IMAP\Connection $imap): int

Gets the number of recent messages in the current mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

Valor Retornado

Returns the number of recent messages in the current mailbox, as an integer.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_num_msg() - Gets the number of messages in the current mailbox
  • imap_status() - Returns status information on a mailbox


Open an IMAP stream to a mailbox

  • « imap_num_recent
  • imap_ping »
  • PHP Manual
  • IMAP Funções
  • Open an IMAP stream to a mailbox

imap_open

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_open — Open an IMAP stream to a mailbox

Descrição

imap_open(
string $mailbox,
string $user,
string $password,
int $flags = 0,
int $retries = 0,
array $options = []
): IMAP\Connection|false

Opens an IMAP stream to a mailbox.

This function can also be used to open streams to POP3 and NNTP servers, but some functions and features are only available on IMAP servers.

Parâmetros

mailbox

A mailbox name consists of a server and a mailbox path on this server. The special name INBOX stands for the current users personal mailbox. Mailbox names that contain international characters besides those in the printable ASCII space have to be encoded with imap_utf7_encode().

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

The server part, which is enclosed in '{' and '}', consists of the servers name or ip address, an optional port (prefixed by ':'), and an optional protocol specification (prefixed by '/').

The server part is mandatory in all mailbox parameters.

All names which start with { are remote names, and are in the form "{" remote_system_name [":" port] [flags] "}" [mailbox_name] where:

  • remote_system_name - Internet domain name or bracketed IP address of server.
  • port - optional TCP port number, default is the default port for that service
  • flags - optional flags, see following table.
  • mailbox_name - remote mailbox name, default is INBOX

Optional flags for names
Flag | Description
/service=service | mailbox access service, default is "imap"
/user=user | remote user name for login on the server
/authuser=user | remote authentication user; if specified this is the user name whose password is used (e.g. administrator)
/anonymous | remote access as anonymous user
/debug | record protocol telemetry in application's debug log
/secure | do not transmit a plaintext password over the network
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 | equivalent to /service=imap
/pop3 | equivalent to /service=pop3
/nntp | equivalent to /service=nntp
/norsh | do not use rsh or ssh to establish a preauthenticated IMAP session
/ssl | use the Secure Socket Layer to encrypt the session
/validate-cert | validate certificates from TLS/SSL server (this is the default behavior)
/novalidate-cert | do not validate certificates from TLS/SSL server, needed if server uses self-signed certificates
/tls | force use of start-TLS to encrypt the session, and reject connection to servers that do not support it
/notls | do not do start-TLS to encrypt the session, even with servers that support it
/readonly | request read-only mailbox open (IMAP only; ignored on NNTP, and an error with SMTP and POP3)

user

The user name

password

The password associated with the user

flags

The flags are a bit mask with one or more of the following:

  • OP_READONLY - Open mailbox read-only
  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)
  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.
  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())
  • OP_DEBUG - Debug protocol negotiations
  • OP_SHORTCACHE - Short (elt-only) caching
  • OP_SILENT - Don't pass up events (internal use)
  • OP_PROTOTYPE - Return driver prototype
  • OP_SECURE - Don't do non-secure authentication

retries

Number of maximum connect attempts

options

Connection parameters, the following (string) keys maybe used to set one or more connection parameters:

  • DISABLE_AUTHENTICATOR - Disable authentication properties

Valor Retornado

Returns an IMAP\Connection instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Returns an IMAP\Connection instance now; previously, a resource was returned.

Exemplos

Exemplo #1 Different use of imap_open()

<?php
// To connect to an IMAP server running on port 143 on the local machine,
// do the following:
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");

// To connect to a POP3 server on port 110 on the local server, use:
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");

// To connect to an SSL IMAP or POP3 server, add /ssl after the protocol
// specification:
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");

// To connect to an SSL IMAP or POP3 server with a self-signed certificate,
// add /ssl/novalidate-cert after the protocol specification:
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// To connect to an NNTP server on port 119 on the local server, use:
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");
// To connect to a remote server replace "localhost" with the name or the
// IP address of the server you want to connect to.
?>

Exemplo #2 imap_open() example

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");

if ($folders == false) {
echo "Call failed<br />\n";
} else {
foreach ($folders as $val) {
echo $val . "<br />\n";
}
}

echo "<h1>Headers in INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
echo "Call failed<br />\n";
} else {
foreach ($headers as $val) {
echo $val . "<br />\n";
}
}

imap_close($mbox);
?>

Veja Também

  • imap_close() - Close an IMAP stream


Check if the IMAP stream is still active

  • « imap_open
  • imap_qprint »
  • PHP Manual
  • IMAP Funções
  • Check if the IMAP stream is still active

imap_ping

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_ping — Check if the IMAP stream is still active

Descrição

imap_ping(IMAP\Connection $imap): bool

imap_ping() pings the stream to see if it's still active. It may discover new mail; this is the preferred method for a periodic "new mail check" as well as a "keep alive" for servers which have inactivity timeout.

Parâmetros

imap

Uma instância de IMAP\Connection.

Valor Retornado

Returns true if the stream is still alive, false otherwise.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_ping() Example

<?php

$imap = imap_open("{imap.example.org}", "mailadmin", "password");

// after some sleeping
if (!imap_ping($imap)) {
// do some stuff to reconnect
}

?>


Convert a quoted-printable string to an 8 bit string

  • « imap_ping
  • imap_rename »
  • PHP Manual
  • IMAP Funções
  • Convert a quoted-printable string to an 8 bit string

imap_qprint

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_qprint — Convert a quoted-printable string to an 8 bit string

Descrição

imap_qprint(string $string): string|false

Convert a quoted-printable string to an 8 bit string according to » RFC2045, section 6.7.

Parâmetros

string

A quoted-printable string

Valor Retornado

Returns an 8 bits string, ou false em caso de falha.

Veja Também

  • imap_8bit() - Convert an 8bit string to a quoted-printable string


Sinônimo de imap_renamemailbox

  • « imap_qprint
  • imap_renamemailbox »
  • PHP Manual
  • IMAP Funções
  • Sinônimo de imap_renamemailbox

imap_rename

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rename — Sinônimo de imap_renamemailbox()

Descrição

Esta função é um apelido para: imap_renamemailbox().


Rename an old mailbox to new mailbox

  • « imap_rename
  • imap_reopen »
  • PHP Manual
  • IMAP Funções
  • Rename an old mailbox to new mailbox

imap_renamemailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_renamemailbox — Rename an old mailbox to new mailbox

Descrição

imap_renamemailbox(IMAP\Connection $imap, string $from, string $to): bool

This function renames on old mailbox to new mailbox (see imap_open() for the format of mbox names).

Parâmetros

imap

Uma instância de IMAP\Connection.

from

The old mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

to

The new mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_createmailbox() - Create a new mailbox
  • imap_deletemailbox() - Delete a mailbox


Reopen IMAP stream to new mailbox

  • « imap_renamemailbox
  • imap_rfc822_parse_adrlist »
  • PHP Manual
  • IMAP Funções
  • Reopen IMAP stream to new mailbox

imap_reopen

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_reopen — Reopen IMAP stream to new mailbox

Descrição

imap_reopen(
IMAP\Connection $imap,
string $mailbox,
int $flags = 0,
int $retries = 0
): bool

Reopens the specified stream to a new mailbox on an IMAP or NNTP server.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

flags

The flags are a bit mask with one or more of the following:

  • OP_READONLY - Open mailbox read-only
  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)
  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.
  • OP_EXPUNGE - Silently expunge recycle stream
  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())

retries

Number of maximum connect attempts

Valor Retornado

Returns true if the stream is reopened, false otherwise.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_reopen() example

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password") or die(implode(", ", imap_errors()));
// ...
imap_reopen($mbox, "{imap.example.org:143}INBOX.Sent") or die(implode(", ", imap_errors()));
// ..
?>


Parses an address string

  • « imap_reopen
  • imap_rfc822_parse_headers »
  • PHP Manual
  • IMAP Funções
  • Parses an address string

imap_rfc822_parse_adrlist

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rfc822_parse_adrlist — Parses an address string

Descrição

imap_rfc822_parse_adrlist(string $string, string $default_hostname): array

Parses the address string as defined in » RFC2822 and for each address.

Parâmetros

string

A string containing addresses

default_hostname

The default host name

Valor Retornado

Returns an array of objects. The objects properties are:

  • mailbox - the mailbox name (username)
  • host - the host name
  • personal - the personal name
  • adl - at domain source route

Exemplos

Exemplo #1 imap_rfc822_parse_adrlist() example

<?php

$address_string = "Joe Doe <doe@example.com>, postmaster@example.com, root";
$address_array = imap_rfc822_parse_adrlist($address_string, "example.com");
if (!is_array($address_array) || count($address_array) < 1) {
die("something is wrong\n");
}

foreach ($address_array as $id => $val) {
echo "# $id\n";
echo " mailbox : " . $val->mailbox . "\n";
echo " host : " . $val->host . "\n";
echo " personal: " . $val->personal . "\n";
echo " adl : " . $val->adl . "\n";
}
?>

O exemplo acima produzirá:

# 0
  mailbox : doe
  host    : example.com
  personal: Joe Doe
  adl     :
# 1
  mailbox : postmaster
  host    : example.com
  personal:
  adl     :
# 2
  mailbox : root
  host    : example.com
  personal:
  adl     :

Veja Também

  • imap_rfc822_parse_headers() - Parse mail headers from a string


Parse mail headers from a string

  • « imap_rfc822_parse_adrlist
  • imap_rfc822_write_address »
  • PHP Manual
  • IMAP Funções
  • Parse mail headers from a string

imap_rfc822_parse_headers

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rfc822_parse_headers — Parse mail headers from a string

Descrição

imap_rfc822_parse_headers(string $headers, string $default_hostname = "UNKNOWN"): stdClass

Gets an object of various header elements, similar to imap_header().

Parâmetros

headers

The parsed headers data

default_hostname

The default host name

Valor Retornado

Returns an object similar to the one returned by imap_header(), except for the flags and other properties that come from the IMAP server.

Veja Também

  • imap_rfc822_parse_adrlist() - Parses an address string


Returns a properly formatted email address given the mailbox, host, and personal info

  • « imap_rfc822_parse_headers
  • imap_savebody »
  • PHP Manual
  • IMAP Funções
  • Returns a properly formatted email address given the mailbox, host, and personal info

imap_rfc822_write_address

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rfc822_write_address — Returns a properly formatted email address given the mailbox, host, and personal info

Descrição

imap_rfc822_write_address(string $mailbox, string $hostname, string $personal): string|false

Returns a properly formatted email address as defined in » RFC2822 given the needed information.

Parâmetros

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

hostname

The email host part

personal

The name of the account owner

Valor Retornado

Returns a string properly formatted email address as defined in » RFC2822, ou false em caso de falha.

Exemplos

Exemplo #1 imap_rfc822_write_address() example

<?php
echo imap_rfc822_write_address("hartmut", "example.com", "Hartmut Holzgraefe");
?>

O exemplo acima produzirá:

Hartmut Holzgraefe <hartmut@example.com>


Save a specific body section to a file

  • « imap_rfc822_write_address
  • imap_scan »
  • PHP Manual
  • IMAP Funções
  • Save a specific body section to a file

imap_savebody

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

imap_savebody — Save a specific body section to a file

Descrição

imap_savebody(
IMAP\Connection $imap,
resource|string|int $file,
int $message_num,
string $section = "",
int $flags = 0
): bool

Saves a part or the whole body of the specified message.

Parâmetros

imap

Uma instância de IMAP\Connection.

file

The path to the saved file as a string, or a valid file descriptor returned by fopen().

message_num

The message number

section

The part number. It is a string of integers delimited by period which index into a body part list as per the IMAP4 specification

flags

A bitmask with one or more of the following:

  • FT_UID - The message_num is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_fetchbody() - Fetch a particular section of the body of the message


Sinônimo de imap_listscan

  • « imap_savebody
  • imap_scanmailbox »
  • PHP Manual
  • IMAP Funções
  • Sinônimo de imap_listscan

imap_scan

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_scan — Sinônimo de imap_listscan()

Descrição

Esta função é um apelido para: imap_listscan().


Sinônimo de imap_listscan

  • « imap_scan
  • imap_search »
  • PHP Manual
  • IMAP Funções
  • Sinônimo de imap_listscan

imap_scanmailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_scanmailbox — Sinônimo de imap_listscan()

Descrição

Esta função é um apelido para: imap_listscan().


This function returns an array of messages matching the given search criteria

  • « imap_scanmailbox
  • imap_set_quota »
  • PHP Manual
  • IMAP Funções
  • This function returns an array of messages matching the given search criteria

imap_search

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_search — This function returns an array of messages matching the given search criteria

Descrição

imap_search(
IMAP\Connection $imap,
string $criteria,
int $flags = SE_FREE,
string $charset = ""
): array|false

This function performs a search on the mailbox currently opened in the given IMAP stream.

For example, to match all unanswered messages sent by Mom, you'd use: "UNANSWERED FROM mom". Searches appear to be case insensitive. This list of criteria is from a reading of the UW c-client source code and may be incomplete or inaccurate (see also » RFC1176, section "tag SEARCH search_criteria").

Parâmetros

imap

Uma instância de IMAP\Connection.

criteria

A string, delimited by spaces, in which the following keywords are allowed. Any multi-word arguments (e.g. FROM "joey smith") must be quoted. Results will match all criteria entries.

  • ALL - return all messages matching the rest of the criteria
  • ANSWERED - match messages with the \\ANSWERED flag set
  • BCC "string" - match messages with "string" in the Bcc: field
  • BEFORE "date" - match messages with Date: before "date"
  • BODY "string" - match messages with "string" in the body of the message
  • CC "string" - match messages with "string" in the Cc: field
  • DELETED - match deleted messages
  • FLAGGED - match messages with the \\FLAGGED (sometimes referred to as Important or Urgent) flag set
  • FROM "string" - match messages with "string" in the From: field
  • KEYWORD "string" - match messages with "string" as a keyword
  • NEW - match new messages
  • OLD - match old messages
  • ON "date" - match messages with Date: matching "date"
  • RECENT - match messages with the \\RECENT flag set
  • SEEN - match messages that have been read (the \\SEEN flag is set)
  • SINCE "date" - match messages with Date: after "date"
  • SUBJECT "string" - match messages with "string" in the Subject:
  • TEXT "string" - match messages with text "string"
  • TO "string" - match messages with "string" in the To:
  • UNANSWERED - match messages that have not been answered
  • UNDELETED - match messages that are not deleted
  • UNFLAGGED - match messages that are not flagged
  • UNKEYWORD "string" - match messages that do not have the keyword "string"
  • UNSEEN - match messages which have not been read yet

flags

Valid values for flags are SE_UID, which causes the returned array to contain UIDs instead of messages sequence numbers.

charset

MIME character set to use when searching strings.

Valor Retornado

Returns an array of message numbers or UIDs.

Return false if it does not understand the search criteria or no messages have been found.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_search() example

<?php
$imap = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);

$some = imap_search($imap, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($imap, 'ALL');
$uids = imap_search($imap, 'ALL', SE_UID);

print_r($some);
print_r($msgnos);
print_r($uids);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => 4
    [1] => 6
    [2] => 11
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
Array
(
    [0] => 1
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 11
    [5] => 12
)

Veja Também

  • imap_listscan() - Returns the list of mailboxes that matches the given text


Sets a quota for a given mailbox

  • « imap_search
  • imap_setacl »
  • PHP Manual
  • IMAP Funções
  • Sets a quota for a given mailbox

imap_set_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

imap_set_quota — Sets a quota for a given mailbox

Descrição

imap_set_quota(IMAP\Connection $imap, string $quota_root, int $mailbox_size): bool

Sets an upper limit quota on a per mailbox basis.

Parâmetros

imap

Uma instância de IMAP\Connection.

quota_root

The mailbox to have a quota set. This should follow the IMAP standard format for a mailbox: user.name.

mailbox_size

The maximum size (in KB) for the quota_root

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_set_quota() example

<?php
$mbox = imap_open("{imap.example.org:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
echo "Error in setting quota\n";
return;
}

imap_close($mbox);
?>

Notas

This function is currently only available to users of the c-client2000 or greater library.

The given imap must be opened as the mail administrator, other wise this function will fail.

Veja Também

  • imap_open() - Open an IMAP stream to a mailbox
  • imap_get_quota() - Retrieve the quota level settings, and usage statics per mailbox


Sets the ACL for a given mailbox

  • « imap_set_quota
  • imap_setflag_full »
  • PHP Manual
  • IMAP Funções
  • Sets the ACL for a given mailbox

imap_setacl

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imap_setacl — Sets the ACL for a given mailbox

Descrição

imap_setacl(
IMAP\Connection $imap,
string $mailbox,
string $user_id,
string $rights
): bool

Sets the ACL for a giving mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

user_id

The user to give the rights to.

rights

The rights to give to the user. Passing an empty string will delete acl.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Notas

This function is currently only available to users of the c-client2000 or greater library.

Veja Também

  • imap_getacl() - Gets the ACL for a given mailbox


Sets flags on messages

  • « imap_setacl
  • imap_sort »
  • PHP Manual
  • IMAP Funções
  • Sets flags on messages

imap_setflag_full

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_setflag_full — Sets flags on messages

Descrição

imap_setflag_full(
IMAP\Connection $imap,
string $sequence,
string $flag,
int $options = 0
): true

Causes a store to add the specified flag to the flags set for the messages in the specified sequence.

Parâmetros

imap

Uma instância de IMAP\Connection.

sequence

A sequence of message numbers. You can enumerate desired messages with the X,Y syntax, or retrieve all messages within an interval with the X:Y syntax

flag

The flags which you can set are \Seen, \Answered, \Flagged, \Deleted, and \Draft as defined by » RFC2060.

options

A bit mask that may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

Valor Retornado

Sempre retorna true.

Erros/Exceções

Throws a ValueError if options is invalid.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.
8.0.0 | A ValueError is now thrown on invalid options parameter values. Previously, a warning was emitted and the function returned false.

Exemplos

Exemplo #1 imap_setflag_full() example

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
or die("can't connect: " . imap_last_error());

$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");

echo gettype($status) . "\n";
echo $status . "\n";

imap_close($mbox);
?>

Veja Também

  • imap_clearflag_full() - Clears flags on messages


Gets and sort messages

  • « imap_setflag_full
  • imap_status »
  • PHP Manual
  • IMAP Funções
  • Gets and sort messages

imap_sort

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_sort — Gets and sort messages

Descrição

imap_sort(
IMAP\Connection $imap,
int $criteria,
bool $reverse,
int $flags = 0,
?string $search_criteria = null,
?string $charset = null
): array|false

Gets and sorts message numbers by the given parameters.

Parâmetros

imap

Uma instância de IMAP\Connection.

criteria

Criteria can be one (and only one) of the following:

  • SORTDATE - message Date
  • SORTARRIVAL - arrival date
  • SORTFROM - mailbox in first From address
  • SORTSUBJECT - message subject
  • SORTTO - mailbox in first To address
  • SORTCC - mailbox in first cc address
  • SORTSIZE - size of message in octets

reverse

Whether to sort in reverse order.

flags

The flags are a bitmask of one or more of the following:

  • SE_UID - Return UIDs instead of sequence numbers
  • SE_NOPREFETCH - Don't prefetch searched messages

search_criteria

IMAP2-format search criteria string. For details see imap_search().

charset

MIME character set to use when sorting strings.

Valor Retornado

Returns an array of message numbers sorted by the given parameters, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.
8.0.0 | reverse is now bool instead of int.
8.0.0 | search_criteria and charset are now nullable.


Returns status information on a mailbox

  • « imap_sort
  • imap_subscribe »
  • PHP Manual
  • IMAP Funções
  • Returns status information on a mailbox

imap_status

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_status — Returns status information on a mailbox

Descrição

imap_status(IMAP\Connection $imap, string $mailbox, int $flags): stdClass|false

Gets status information about the given mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

flags

Valid flags are:

  • SA_MESSAGES - set $status->messages to the number of messages in the mailbox
  • SA_RECENT - set $status->recent to the number of recent messages in the mailbox
  • SA_UNSEEN - set $status->unseen to the number of unseen (new) messages in the mailbox
  • SA_UIDNEXT - set $status->uidnext to the next uid to be used in the mailbox
  • SA_UIDVALIDITY - set $status->uidvalidity to a constant that changes when uids for the mailbox may no longer be valid
  • SA_ALL - set all of the above

Valor Retornado

This function returns an object containing status information, ou false em caso de falha. The object has the following properties: messages, recent, unseen, uidnext, and uidvalidity.

flags is also set, which contains a bitmask which can be checked against any of the above constants.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_status() example

<?php
$mbox = imap_open("{imap.example.com}", "username", "password", OP_HALFOPEN)
or die("can't connect: " . imap_last_error());

$status = imap_status($mbox, "{imap.example.org}INBOX", SA_ALL);
if ($status) {
echo "Messages: " . $status->messages . "<br />\n";
echo "Recent: " . $status->recent . "<br />\n";
echo "Unseen: " . $status->unseen . "<br />\n";
echo "UIDnext: " . $status->uidnext . "<br />\n";
echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";
} else {
echo "imap_status failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>


Subscribe to a mailbox

  • « imap_status
  • imap_thread »
  • PHP Manual
  • IMAP Funções
  • Subscribe to a mailbox

imap_subscribe

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_subscribe — Subscribe to a mailbox

Descrição

imap_subscribe(IMAP\Connection $imap, string $mailbox): bool

Subscribe to a new mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_unsubscribe() - Unsubscribe from a mailbox


Returns a tree of threaded message

  • « imap_subscribe
  • imap_timeout »
  • PHP Manual
  • IMAP Funções
  • Returns a tree of threaded message

imap_thread

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imap_thread — Returns a tree of threaded message

Descrição

imap_thread(IMAP\Connection $imap, int $flags = SE_FREE): array|false

Gets a tree of a threaded message.

Parâmetros

imap

Uma instância de IMAP\Connection.

flags

Valor Retornado

imap_thread() returns an associative array containing a tree of messages threaded by REFERENCES, or false on error.

Every message in the current mailbox will be represented by three entries in the resulting array:

  • $thread["XX.num"] - current message number

  • $thread["XX.next"]

  • $thread["XX.branch"]

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Exemplos

Exemplo #1 imap_thread() Example

<?php

// Here we're outputting the threads of a newsgroup, in HTML

$nntp = imap_open('{news.example.com:119/nntp}some.newsgroup', '', '');
$threads = imap_thread($nntp);

foreach ($threads as $key => $val) {
$tree = explode('.', $key);
if ($tree[1] == 'num') {
$header = imap_headerinfo($nntp, $val);
echo "<ul>\n\t<li>" . $header->fromaddress . "\n";
} elseif ($tree[1] == 'branch') {
echo "\t</li>\n</ul>\n";
}
}

imap_close($nntp);

?>


Set or fetch imap timeout

  • « imap_thread
  • imap_uid »
  • PHP Manual
  • IMAP Funções
  • Set or fetch imap timeout

imap_timeout

(PHP 4 >= 4.3.3, PHP 5, PHP 7, PHP 8)

imap_timeout — Set or fetch imap timeout

Descrição

imap_timeout(int $timeout_type, int $timeout = -1): int|bool

Sets or fetches the imap timeout.

Parâmetros

timeout_type

One of the following: IMAP_OPENTIMEOUT, IMAP_READTIMEOUT, IMAP_WRITETIMEOUT, or IMAP_CLOSETIMEOUT.

timeout

The timeout, in seconds.

Valor Retornado

If the timeout parameter is set, this function returns true on success and false on failure.

If timeout is not provided or evaluates to -1, the current timeout value of timeout_type is returned as an integer.

Exemplos

Exemplo #1 imap_timeout() example

<?php

echo "The current read timeout is " . imap_timeout(IMAP_READTIMEOUT) . "\n";

?>


This function returns the UID for the given message sequence number

  • « imap_timeout
  • imap_undelete »
  • PHP Manual
  • IMAP Funções
  • This function returns the UID for the given message sequence number

imap_uid

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_uid — This function returns the UID for the given message sequence number

Descrição

imap_uid(IMAP\Connection $imap, int $message_num): int|false

This function returns the UID for the given message sequence number. An UID is a unique identifier that will not change over time while a message sequence number may change whenever the content of the mailbox changes.

This function is the inverse of imap_msgno().

Parâmetros

imap

Uma instância de IMAP\Connection.

message_num

The message number.

Valor Retornado

The UID of the given message.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Notas

Nota:

This function is not supported by POP3 mailboxes.

Veja Também

  • imap_msgno() - Gets the message sequence number for the given UID


Unmark the message which is marked deleted

  • « imap_uid
  • imap_unsubscribe »
  • PHP Manual
  • IMAP Funções
  • Unmark the message which is marked deleted

imap_undelete

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_undelete — Unmark the message which is marked deleted

Descrição

imap_undelete(IMAP\Connection $imap, string $message_nums, int $flags = 0): true

Removes the deletion flag for a specified message, which is set by imap_delete() or imap_mail_move().

Parâmetros

imap

Uma instância de IMAP\Connection.

message_nums

A string representing one or more messages in IMAP4-style sequence format ("n", "n:m", or combination of these delimited by commas).

flags

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_delete() - Mark a message for deletion from current mailbox
  • imap_mail_move() - Move specified messages to a mailbox


Unsubscribe from a mailbox

  • « imap_undelete
  • imap_utf7_decode »
  • PHP Manual
  • IMAP Funções
  • Unsubscribe from a mailbox

imap_unsubscribe

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_unsubscribe — Unsubscribe from a mailbox

Descrição

imap_unsubscribe(IMAP\Connection $imap, string $mailbox): bool

Unsubscribe from the specified mailbox.

Parâmetros

imap

Uma instância de IMAP\Connection.

mailbox

The mailbox name, see imap_open() for more information

Aviso

Passar dados não confiáveis para este parâmetro é inseguro, a menos que imap.enable_insecure_rsh esteja desabilitado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro imap agora espera uma instância de IMAP\Connection; anteriormente, um resource imap válido era esperado.

Veja Também

  • imap_subscribe() - Subscribe to a mailbox


Decodes a modified UTF-7 encoded string

  • « imap_unsubscribe
  • imap_utf7_encode »
  • PHP Manual
  • IMAP Funções
  • Decodes a modified UTF-7 encoded string

imap_utf7_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf7_decode — Decodes a modified UTF-7 encoded string

Descrição

imap_utf7_decode(string $string): string|false

Decodes modified UTF-7 string into ISO-8859-1 string.

This function is needed to decode mailbox names that contain certain characters which are not in range of printable ASCII characters.

Parâmetros

string

A modified UTF-7 encoding string, as defined in » RFC 2060, section 5.1.3.

Valor Retornado

Returns a string that is encoded in ISO-8859-1 and consists of the same sequence of characters in string, or false if string contains invalid modified UTF-7 sequence or string contains a character that is not part of ISO-8859-1 character set.

Veja Também

  • imap_utf7_encode() - Converts ISO-8859-1 string to modified UTF-7 text


Converts ISO-8859-1 string to modified UTF-7 text

  • « imap_utf7_decode
  • imap_utf8_to_mutf7 »
  • PHP Manual
  • IMAP Funções
  • Converts ISO-8859-1 string to modified UTF-7 text

imap_utf7_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf7_encode — Converts ISO-8859-1 string to modified UTF-7 text

Descrição

imap_utf7_encode(string $string): string

Converts string 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.

Parâmetros

string

An ISO-8859-1 string.

Valor Retornado

Returns string encoded with the modified UTF-7 encoding as defined in » RFC 2060, section 5.1.3.

Veja Também

  • imap_utf7_decode() - Decodes a modified UTF-7 encoded string


Encode a UTF-8 string to modified UTF-7

  • « imap_utf7_encode
  • imap_utf8 »
  • PHP Manual
  • IMAP Funções
  • Encode a UTF-8 string to modified UTF-7

imap_utf8_to_mutf7

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

imap_utf8_to_mutf7 — Encode a UTF-8 string to modified UTF-7

Descrição

imap_utf8_to_mutf7(string $string): string|false

Encode a UTF-8 string to modified UTF-7 (as specified in RFC 2060, section 5.1.3).

Nota:

This function is only available, if libcclient exports utf8_to_mutf7().

Parâmetros

string

A UTF-8 encoded string.

Valor Retornado

Returns string converted to modified UTF-7, ou false em caso de falha.

Veja Também

  • imap_mutf7_to_utf8() - Decode a modified UTF-7 string to UTF-8


Converts MIME-encoded text to UTF-8

  • « imap_utf8_to_mutf7
  • IMAP\Connection »
  • PHP Manual
  • IMAP Funções
  • Converts MIME-encoded text to UTF-8

imap_utf8

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf8 — Converts MIME-encoded text to UTF-8

Descrição

imap_utf8(string $mime_encoded_text): string

Converts the given mime_encoded_text to UTF-8, if the declared charset is known to libc-client. Otherwise the given text is decoded, but not converted to UTF-8.

Parâmetros

mime_encoded_text

A MIME encoded string. MIME encoding method and the UTF-8 specification are described in » RFC2047 and » RFC2044 respectively.

Valor Retornado

Returns the decoded string, if possible converted to UTF-8.

Exemplos

Exemplo #1 Basic imap_utf8() Usage

<?php
echo imap_utf8("Johannes =?ISO-8859-1?Q?Schl=FCter?=");
?>

O exemplo acima produzirá algo semelhante a:

Johannes Schlu¨ter

Veja Também

  • imap_mime_header_decode() - Decode MIME header elements


The IMAP\Connection class

(PHP 8 >= 8.1.0)

Introdução

A fully opaque class which replaces a imap resource as of PHP 8.1.0.

Resumo da classe

final class IMAP\Connection {
}


Mail

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções da Mail
    • ezmlm_hash — Calcula o valor do hash necessário para EZMLM
    • mail — Envia e-mail


  • « Mail
  • Instalação/Configuração »
  • PHP Manual
  • Mail
  • Introdução

Introdução

A função mail() permite enviar correio eletrônico (e-mail).


Dependências

Para que as funções da extenção Mail estejam disponíveis, o PHP deve ter acesso ao binário do sendmail no sistema durante o tempo de compilação. Se outro programa de correio eletrônico for utilizado, como qmail ou postfix, certifique-se de usar os empacotadores de sendmail apropriados que os acompanham. O PHP irá primeiramente procurar pelo sendmail na variável PATH, e depois nos seguintes locais: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. É altamente recomendado ter o sendmail disponível em PATH. Além disso, o usuário sob o qual o processo PHP é executado deve ter permissão para acessar o binário sendmail.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração da função Mail
Nome | Padrão | Modificável | Registro de Alterações
mail.add_x_header | "0" | INI_PERDIR |
mail.log | NULL | INI_SYSTEM|INI_PERDIR |
mail.force_extra_parameters | NULL | INI_SYSTEM|INI_PERDIR |
SMTP | "localhost" | INI_ALL |
smtp_port | "25" | INI_ALL |
sendmail_from | NULL | INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | INI_SYSTEM |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

mail.add_x_header bool

Adiciona X-PHP-Originating-Script que incluirá o UID do script seguido pelo nome do arquivo.

mail.log string

O caminho para o arquivo de registro que irá armazenar todas as chamadas à função mail(). As entradas de registro incluirão o caminho completo do script, número da linha, endereço de destino To e cabeçalhos.

mail.force_extra_parameters string

Força a adição de parâmetros específicos que serão passados como parâmetros extras para o binário sendmail. Estes parâmetros sempre substituirão o valor do quinto parâmetro da função mail().

SMTP string

Usado somente no Windows: nome de servidor ou endereço IP do servidor SMTP que o PHP deve usar para e-mail envio com a função mail().

smtp_port int

Usado somente no Windows: Número da porta para se conectar ao servidor definido com a configuração de SMTP ao enviar e-mail com a função mail(); a porta padrão é 25.

sendmail_from string

Qual endereço de e-mail "From:" deve ser usado no e-mail enviado diretamente via SNMP (somente Windows). Esta diretiva também define o cabeçalho "Return-Path:".

sendmail_path string

Onde o programa sendmail pode ser encontrado, normalmente em /usr/sbin/sendmail ou /usr/lib/sendmail. configure faz uma tentativa de localizar e definir o padrão, mas se ele falhar, pode ser definido aqui.

Sistema que não usam o sendmail devem configurar essa diretiva para a alternativa ao sendmail que o sistema oferece, se houver. Por exemplo, usuários do » Qmail normalmente usam /var/qmail/bin/sendmail ou /var/qmail/bin/qmail-inject.

qmail-inject não requer nehuma opção para o processar o e-mail corretamente.

Esta diretiva também funciona no Windows. Se definida, smtp, smtp_port e sendmail_from são ignorados e o comando especificado é executado.


  • « Tipos de Recurso
  • Funções da Mail »
  • PHP Manual
  • Mail
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Funções da Mail

Índice

  • ezmlm_hash — Calcula o valor do hash necessário para EZMLM
  • mail — Envia e-mail


Calcula o valor do hash necessário para EZMLM

  • « Funções da Mail
  • mail »
  • PHP Manual
  • Funções da Mail
  • Calcula o valor do hash necessário para EZMLM

ezmlm_hash

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ezmlm_hash — Calcula o valor do hash necessário para EZMLM

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

ezmlm_hash(string $addr): int

ezmlm_hash() calcula valor do hash necessário ao se manter listas de e-mail EZMLM num banco de dados MySQL.

Parâmetros

addr

O endereço de e-mail para o qual está sendo calculado o hash.

Valor Retornado

O valor do hash de addr.

Exemplos

Exemplo #1 Calculando o hash e inscrevendo um usuário

<?php

$user = "joecool@example.com";
$hash = ezmlm_hash($user);
$query = sprintf("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
$db->query($query); // usando interface de banco de dados PHPLIB

?>


Envia e-mail

  • « ezmlm_hash
  • Mailparse »
  • PHP Manual
  • Funções da Mail
  • Envia e-mail

mail

(PHP 4, PHP 5, PHP 7, PHP 8)

mail — Envia e-mail

Descrição

mail(
string $to,
string $subject,
string $message,
array|string $additional_headers = [],
string $additional_params = ""
): bool

Envia um e-mail.

Parâmetros

to

Destinatário, ou destinatários do e-mail.

O formato desta string precisa estar de acordo com a » RFC 2822. Alguns exemplos:

  • user@example.com
  • user@example.com, anotheruser@example.com
  • User
  • User , Another User

subject

Assunto do e-mail a ser enviado.

Cuidado

Assunto deve satisfazer a » RFC 2047.

message

Mensagem a ser enviada.

Cada linha deve ser separada com um CRLF (\r\n). Linhas não devem ser maiores que 70 caracteres.

Cuidado

(Somente Windows) Quando o PHP está se comunicando com o servidor SMTP diretamente, e um ponto final é encontrado no início de uma linha, ela é removida. Para se defender disto, substitua estas ocorrência por dois pontos seguidos.

<?php
$text = str_replace("\n.", "\n..", $text);
?>

additional_headers (opcional)

String ou array a ser inserido no final do cabeçalho do e-mail.

Isto é tipicamente usado para adicionar cabeçalhos extras (From, Cc, e Bcc). Múltiplos cabeçalhos extras devem ser separados com um CRLF (\r\n). Se dados externos forem usados para compor este cabeçalho, os dados devem ser sanitizados para que nenhum cabeçalho indesejado possa ser injetado.

Se um array for passado, suas chaves são os nomes dos cabeçalhos e seus valores são os respectivos valores dos cabeçalhos.

Nota:

Ao enviar e-mail, ele precisa conter um cabeçalho From. Este pode ser definido com o parâmetro additional_headers, ou um padrão pode ser definido no php.ini.

Se isto não foi feito, ocorrerá uma mensagem de erro similar a Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. O cabeçalho From define também o Return-Path ao enviar diretamente via SMTP (Windows somente).

Nota:

Se mensagens não estão sendo recebidas, tente usar somente um LF (\n). Alguns agentes Unix de transferência de e-mail (mais notavelmente » qmail) substituem LF por CRLF automaticamente (que leva à duplicação de CR se CRLF for usado). Este deve ser um último recurso, porque não está conforme a » RFC 2822.

additional_params (opcional)

O parâmetro additional_params pode ser usado para passar um parâmetro adicional para o programa configurado para usa quando enviando e-mail usando a configuração sendmail_path. Por exemplo, isto pode ser usado para definir o endereço do envelope remetente quando usando sendmail com a opção do sendmail -f.

Este parâmetro é escapado por escapeshellcmd() internamente para prevenir a execução do comando. escapeshellcmd() impede a execução de comandos, mas permite adicionar parâmetros adicionais. Por razões de segurança, é recomendado que o usuário higienize este parâmetro para evitar adicionar parâmetros indesejados ao comando shell.

Uma vez que escapeshellcmd() é aplicada automaticamente, alguns caracteres que são permitidos como endereços de e-mail por RFCs da Internet não podem ser usados. mail() não pode permitir tais caracteres, portanto, em programas onde o uso de tais caracteres é necessário, meios alternativos de envio de e-mails (como o uso de um framework ou biblioteca) são recomendados.

O usuário com o qual o servidor web roda deve ser adicionado como um usuário confiável à configuração do sendmail para evitar que um cabeçalho 'X-Warning' seja adicionado à mensagem quando o remetente do envelope (-f) é definido usando este método. Para usuários do sendmail, este arquivo é /etc/mail/trusted-users.

Valor Retornado

Retorna true se o e-mail foi aceito com sucesso para entrega, false caso contrário.

É importante notar que somente pelo fato do e-mail ter sido aceito para entrega, NÃO significa que o e-mail realmente alcancará o destino esperado.

Registro de Alterações

Versão | Descrição
7.2.0 | O parâmetro additional_headers agora aceita um array.

Exemplos

Exemplo #1 Enviando e-mail.

Usando mail() para enviar um simples e-mail:

<?php
// A mensagem
$message = "Line 1\r\nLine 2\r\nLine 3";

// Se as linhas forem maiores que 70 caracteres, deve-se usar wordwrap()
$message = wordwrap($message, 70, "\r\n");

// Envia
mail('caffeinated@example.com', 'Meu Assunto', $message);
?>

Exemplo #2 Enviando e-mail com cabeçalhos extras.

A adição de cabeçalhos básicos, informando à MUA os endereços From e Reply-To:

<?php
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

Exemplo #3 Enviando e-mail com cabeçalhos extras no formato array

Este exemplo envia o mesmo e-mail que o exemplo imediatamente acima, mas passa os cabeçalhos adicionais como array (disponível a partir do PHP 7.2.0).

<?php
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = array(
'From' => 'webmaster@example.com',
'Reply-To' => 'webmaster@example.com',
'X-Mailer' => 'PHP/' . phpversion()
);

mail($to, $subject, $message, $headers);
?>

Exemplo #4 Enviando e-mail com um parâmetro de linha de comando adicional.

O parâmetro additional_params pode ser usado para passar um parâmetro adicional para o programa configurado para usar ao enviar e-mail usando o sendmail_path.

<?php
mail('nobody@example.com', 'the subject', 'the message', null,
'-fwebmaster@example.com');
?>

Exemplo #5 Enviando e-mail HTML

É também possível enviar e-mail HTML com mail().

<?php
// Múltiplos recipientes
$to = 'joao@example.com, susana@example.com'; // observe a vírgula

// Assunto
$subject = 'Lembrete de Aniversários para Novembro';

// Message
$message = '
<html>
<head>
<title>Lembrete de Aniversários para Novembro</title>
</head>
<body>
<p>Aqui estão os próximos aniversariantes de novembro!</p>
<table>
<tr>
<th>Pessoa</th><th>Dia</th><th>Mês</th><th>Ano</th>
</tr>
<tr>
<td>João</td><td>10</td><td>Agosto</td><td>1990</td>
</tr>
<tr>
<td>Susana</td><td>17</td><td>Agosto</td><td>2003</td>
</tr>
</table>
</body>
</html>
';

// Para enviar e-mail HTML, o cabeçalho Content-type deve ser definido
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';

// Cabeçalhos adicionais
$headers[] = 'To: Maria <maria@example.com>, Rafael <rafael@example.com>';
$headers[] = 'From: Lembrete de Aniversário <niver@example.com>';
$headers[] = 'Cc: arquivo_niver@example.com';
$headers[] = 'Bcc: verifica_niver@example.com';

// Envia o e-mail
mail($to, $subject, $message, implode("\r\n", $headers));
?>

Nota:

Se a intenção é enviar e-mail HTML ou outro formato complexo, é recomendado usar o pacote PEAR » PEAR::Mail_Mime.

Notas

Nota:

A implentação SMTP (somente Windows) de mail() difere bastante da implentação do sendmail. Primeiro, ele não usa um binário local para compor mensagens mas apenas opera com sockets diretos, o que significa que uma MTA é necessária monitorando um socket de rede (que pode ser ou o localhost ou uma máquina remota).

Segundo, cabeçalhos customizados como From:, Cc:, Bcc: e Date: não são interpretados pela MTA, mas são analisados pelo PHP.

Desta forma, o parâmetro to não deve ser um endereço na forma de "Algo <alguem@example.com>". O comando de e-mail poderia não analisar isto adequadamente enquanto se comunica com o MTA.

Nota:

É válido notar que a função mail() não é apropriada para um grande volume de e-mail em um loop. Esta função abre e fecha um SMTP socket para cada e-mail, o que não é muito eficiente.

Para enviar uma grande quantidade de e-mail, veja os pacotes » PEAR::Mail, e » PEAR::Mail_Queue.

Nota:

O seguintes RFCs podem ser úteis: » RFC 1896, » RFC 2045, » RFC 2046, » RFC 2047, » RFC 2048, » RFC 2049 e » RFC 2822.

Veja Também

  • mb_send_mail() - Envia email codificado
  • imap_mail() - Send an email message
  • » PEAR::Mail
  • » PEAR::Mail_Mime


Mailparse

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções de Mailparse
    • mailparse_determine_best_xfer_encoding — Obtém a melhor forma de codificação
    • mailparse_msg_create — Cria um recurso de email MIME
    • mailparse_msg_extract_part_file — Extrai/decodifica uma seção da mensagem
    • mailparse_msg_extract_part — Extrai/decodifica uma seção da mensagem
    • mailparse_msg_extract_whole_part_file — Extrai uma seção da mensagem incluindo cabeçalhos sem decodificar a codificação de transferência
    • mailparse_msg_free — Libera um recurso MIME
    • mailparse_msg_get_part_data — Retorna um array associativo com informações sobre a mensagem
    • mailparse_msg_get_part — Retorna um identificador para uma seção específica em uma mensagem MIME
    • mailparse_msg_get_structure — Retorna um array de nomes de seções MIME na mensagem fornecida
    • mailparse_msg_parse_file — Faz o parsing de um arquivo
    • mailparse_msg_parse — Faz o parse incremental de dados no buffer
    • mailparse_rfc822_parse_addresses — Faz o parse de endereços compatíveis com o RFC 822
    • mailparse_stream_encode — Transmite dados do ponteiro do arquivo de origem, aplica a codificação e escreve no destfp
    • mailparse_uudecode_all — Analisa os dados de fp e extrai cada arquivo uuencoded incorporado.


Introdução

Mailparse é uma extensão para análise e manipulação de mensagens de e-mail. Ele pode lidar com mensagens compatíveis com » RFC 822 e » RFC 2045 (MIME).

O Mailparse é baseado em stream, o que significa que não mantém cópias em memória dos arquivos que processa - sendo muito eficiente em termos de recursos ao lidar com mensagens grandes.

Nota:

O Mailparse requer a extensão mbstring, e a mbstring deve ser carregada antes do mailparse.


Instalação

Esta extensão » PECL não é distribuída com o PHP. Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/mailparse.

Para usar essas funções, você deve compilar o PHP com suporte ao mailparse usando a opção de configuração --enable-mailparse.

Usuários do Windows devem habilitar o php_mailparse.dll dentro de php.ini para usar essas funções. Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.

É necessário que a extensão mbstring esteja carregada antes do mailparse.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração de Mailparse
Nome | Padrão | Modificável | Registro de Alterações
mailparse.def_charset | "us-ascii" | INI_SYSTEM |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

mailparse.def_charset string

O conjunto de caracteres padrão.


Tipos de Recurso

Mailparse define o tipo de recurso mailparse_mail_structure, que é retornado por mailparse_msg_create() e mailparse_msg_parse_file().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.


Funções de Mailparse

Índice

  • mailparse_determine_best_xfer_encoding — Obtém a melhor forma de codificação
  • mailparse_msg_create — Cria um recurso de email MIME
  • mailparse_msg_extract_part_file — Extrai/decodifica uma seção da mensagem
  • mailparse_msg_extract_part — Extrai/decodifica uma seção da mensagem
  • mailparse_msg_extract_whole_part_file — Extrai uma seção da mensagem incluindo cabeçalhos sem decodificar a codificação de transferência
  • mailparse_msg_free — Libera um recurso MIME
  • mailparse_msg_get_part_data — Retorna um array associativo com informações sobre a mensagem
  • mailparse_msg_get_part — Retorna um identificador para uma seção específica em uma mensagem MIME
  • mailparse_msg_get_structure — Retorna um array de nomes de seções MIME na mensagem fornecida
  • mailparse_msg_parse_file — Faz o parsing de um arquivo
  • mailparse_msg_parse — Faz o parse incremental de dados no buffer
  • mailparse_rfc822_parse_addresses — Faz o parse de endereços compatíveis com o RFC 822
  • mailparse_stream_encode — Transmite dados do ponteiro do arquivo de origem, aplica a codificação e escreve no destfp
  • mailparse_uudecode_all — Analisa os dados de fp e extrai cada arquivo uuencoded incorporado.


Obtém a melhor forma de codificação

  • « Funções de Mailparse
  • mailparse_msg_create »
  • PHP Manual
  • Funções de Mailparse
  • Obtém a melhor forma de codificação

mailparse_determine_best_xfer_encoding

(PECL mailparse >= 0.9.0)

mailparse_determine_best_xfer_encoding — Obtém a melhor forma de codificação

Descrição

mailparse_determine_best_xfer_encoding(resource $fp): string

Determina a melhor forma de codificar o conteúdo lido do ponteiro de arquivo fornecido.

Parâmetros

fp

Um ponteiro de arquivo válido, que deve ser capaz de realizar operações de busca.

Valor Retornado

Retorna uma das codificações de caracteres suportadas pelo módulo mbstring.

Exemplos

Exemplo #1 Exemplo de mailparse_determine_best_xfer_encoding()

<?php

$fp = fopen('somemail.eml', 'r');
echo 'Best encoding: ' . mailparse_determine_best_xfer_encoding($fp);

?>

O exemplo acima produzirá algo semelhante a:

Best encoding: 7bit


Cria um recurso de email MIME

  • « mailparse_determine_best_xfer_encoding
  • mailparse_msg_extract_part_file »
  • PHP Manual
  • Funções de Mailparse
  • Cria um recurso de email MIME

mailparse_msg_create

(PECL mailparse >= 0.9.0)

mailparse_msg_create — Cria um recurso de email MIME

Descrição

mailparse_msg_create(): resource

Cria um recurso de email MIME.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um identificador que pode ser usado para analisar uma mensagem.

Notas

Nota:

É recomendado chamar mailparse_msg_free() no resultado desta função, quando não for mais necessário, para evitar vazamentos de memória.

Veja Também

  • mailparse_msg_free() - Libera um recurso MIME
  • mailparse_msg_parse_file() - Faz o parsing de um arquivo


Extrai/decodifica uma seção da mensagem

  • « mailparse_msg_create
  • mailparse_msg_extract_part »
  • PHP Manual
  • Funções de Mailparse
  • Extrai/decodifica uma seção da mensagem

mailparse_msg_extract_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part_file — Extrai/decodifica uma seção da mensagem

Descrição

mailparse_msg_extract_part_file(resource $mimemail, mixed $filename, callable $callbackfunc = ?): string

Extrai/decodifica uma seção da mensagem do nome de arquivo fornecido.

O conteúdo da seção será decodificado de acordo com sua codificação de transferência - suportando base64, quoted-printable e texto uuencoded.

Parâmetros

mimemail

Um recurso MIME válido, criado com mailparse_msg_create().

filename

Pode ser um nome de arquivo ou um recurso de stream válido.

callbackfunc

Se definido, isso deve ser um retorno de chamada válido que receberá a seção extraída, ou null para fazer com que esta função retorne a seção extraída.

Se não especificado, o conteúdo será enviado para "stdout".

Valor Retornado

If callbackfunc is not null returns true on success.

If callbackfunc is set to null, returns the extracted section as a string.

Returns false on error.

Veja Também

  • mailparse_msg_extract_part() - Extrai/decodifica uma seção da mensagem
  • mailparse_msg_extract_whole_part_file() - Extrai uma seção da mensagem incluindo cabeçalhos sem decodificar a codificação de transferência


Extrai/decodifica uma seção da mensagem

  • « mailparse_msg_extract_part_file
  • mailparse_msg_extract_whole_part_file »
  • PHP Manual
  • Funções de Mailparse
  • Extrai/decodifica uma seção da mensagem

mailparse_msg_extract_part

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part — Extrai/decodifica uma seção da mensagem

Descrição

mailparse_msg_extract_part(resource $mimemail, string $msgbody, callable $callbackfunc = ?): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

mimemail

Um recurso MIME válido.

msgbody

callbackfunc

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • mailparse_msg_extract_part_file() - Extrai/decodifica uma seção da mensagem
  • mailparse_msg_extract_whole_part_file() - Extrai uma seção da mensagem incluindo cabeçalhos sem decodificar a codificação de transferência


Extrai uma seção da mensagem incluindo cabeçalhos sem decodificar a codificação de transferência

  • « mailparse_msg_extract_part
  • mailparse_msg_free »
  • PHP Manual
  • Funções de Mailparse
  • Extrai uma seção da mensagem incluindo cabeçalhos sem decodificar a codificação de transferência

mailparse_msg_extract_whole_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_whole_part_file — Extrai uma seção da mensagem incluindo cabeçalhos sem decodificar a codificação de transferência

Descrição

mailparse_msg_extract_whole_part_file(resource $mimemail, string $filename, callable $callbackfunc = ?): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

mimemail

Um recurso MIME válido.

filename

callbackfunc

Valor Retornado

Veja Também

  • mailparse_msg_extract_part() - Extrai/decodifica uma seção da mensagem
  • mailparse_msg_extract_part_file() - Extrai/decodifica uma seção da mensagem


Libera um recurso MIME

  • « mailparse_msg_extract_whole_part_file
  • mailparse_msg_get_part_data »
  • PHP Manual
  • Funções de Mailparse
  • Libera um recurso MIME

mailparse_msg_free

(PECL mailparse >= 0.9.0)

mailparse_msg_free — Libera um recurso MIME

Descrição

mailparse_msg_free(resource $mimemail): bool

Libera um recurso MIME.

Parâmetros

mimemail

Um recurso MIME válido alocado por mailparse_msg_create() ou mailparse_msg_parse_file().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • mailparse_msg_create() - Cria um recurso de email MIME
  • mailparse_msg_parse_file() - Faz o parsing de um arquivo


Retorna um array associativo com informações sobre a mensagem

  • « mailparse_msg_free
  • mailparse_msg_get_part »
  • PHP Manual
  • Funções de Mailparse
  • Retorna um array associativo com informações sobre a mensagem

mailparse_msg_get_part_data

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part_data — Retorna um array associativo com informações sobre a mensagem

Descrição

mailparse_msg_get_part_data(resource $mimemail): array
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

mimemail

Um recurso MIME válido.


Retorna um identificador para uma seção específica em uma mensagem MIME

  • « mailparse_msg_get_part_data
  • mailparse_msg_get_structure »
  • PHP Manual
  • Funções de Mailparse
  • Retorna um identificador para uma seção específica em uma mensagem MIME

mailparse_msg_get_part

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part — Retorna um identificador para uma seção específica em uma mensagem MIME

Descrição

mailparse_msg_get_part(resource $mimemail, string $mimesection): resource
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

mimemail

Um recurso MIME válido.

mimesection


Retorna um array de nomes de seções MIME na mensagem fornecida

  • « mailparse_msg_get_part
  • mailparse_msg_parse_file »
  • PHP Manual
  • Funções de Mailparse
  • Retorna um array de nomes de seções MIME na mensagem fornecida

mailparse_msg_get_structure

(PECL mailparse >= 0.9.0)

mailparse_msg_get_structure — Retorna um array de nomes de seções MIME na mensagem fornecida

Descrição

mailparse_msg_get_structure(resource $mimemail): array
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

mimemail

Um recurso MIME válido.


Faz o parsing de um arquivo

  • « mailparse_msg_get_structure
  • mailparse_msg_parse »
  • PHP Manual
  • Funções de Mailparse
  • Faz o parsing de um arquivo

mailparse_msg_parse_file

(PECL mailparse >= 0.9.0)

mailparse_msg_parse_file — Faz o parsing de um arquivo

Descrição

mailparse_msg_parse_file(string $filename): resource

Faz o parsing de um arquivo. Esta é a forma ideal de analisar um arquivo de email que você tem no disco.

Parâmetros

filename

Caminho para o arquivo que contém a mensagem. O arquivo é aberto e transmitido através do analisador.

Nota:

Supõe-se que a mensagem contida em filename termine com uma quebra de linha (CRLF); caso contrário, a última linha da mensagem não será analisada.

Valor Retornado

Retorna um recurso MIME que representa a estrutura ou false em caso de erro.

Notas

Nota:

É recomendável chamar mailparse_msg_free() no resultado desta função, quando não for mais necessário, para evitar vazamentos de memória.

Veja Também

  • mailparse_msg_free() - Libera um recurso MIME
  • mailparse_msg_create() - Cria um recurso de email MIME


Faz o parse incremental de dados no buffer

  • « mailparse_msg_parse_file
  • mailparse_rfc822_parse_addresses »
  • PHP Manual
  • Funções de Mailparse
  • Faz o parse incremental de dados no buffer

mailparse_msg_parse

(PECL mailparse >= 0.9.0)

mailparse_msg_parse — Faz o parse incremental de dados no buffer

Descrição

mailparse_msg_parse(resource $mimemail, string $data): bool

Faz o parse incremental de dados no recurso de correio MIME fornecido.

Essa função permite transmitir porções de um arquivo de cada vez, em vez de ler e analisar o arquivo inteiro.

Parâmetros

mimemail

Um recurso MIME válido.

data

Nota:

O último trecho de data deve terminar com uma quebra de linha (CRLF); caso contrário, a última linha da mensagem não será analisada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Faz o parse de endereços compatíveis com o RFC 822

  • « mailparse_msg_parse
  • mailparse_stream_encode »
  • PHP Manual
  • Funções de Mailparse
  • Faz o parse de endereços compatíveis com o RFC 822

mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addresses — Faz o parse de endereços compatíveis com o RFC 822

Descrição

mailparse_rfc822_parse_addresses(string $addresses): array

Faz o parse de uma lista de destinatários compatível com o » RFC 822, como encontrado no cabeçalho To:.

Parâmetros

addresses

Uma string contendo endereços, como em: Wez Furlong <wez@example.com>, doe@example.com

Nota:

Esta string não deve incluir o nome do cabeçalho.

Valor Retornado

Retorna um array de arrays associativos com as seguintes chaves para cada destinatário:

display | O nome do destinatário, para fins de exibição. Se esta parte não estiver definida para um destinatário, esta chave terá o mesmo valor de address.
address | The email address
is_group | true se o destinatário for um grupo de notícias, false caso contrário.

Exemplos

Exemplo #1 Exemplo de mailparse_rfc822_parse_addresses()

<?php

$to = 'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));

?>

O exemplo acima produzirá:

array(2) {
  [0]=>
  array(3) {
    ["display"]=>
    string(11) "Wez Furlong"
    ["address"]=>
    string(15) "wez@example.com"
    ["is_group"]=>
    bool(false)
  }
  [1]=>
  array(3) {
    ["display"]=>
    string(15) "doe@example.com"
    ["address"]=>
    string(15) "doe@example.com"
    ["is_group"]=>
    bool(false)
  }
}


Transmite dados do ponteiro do arquivo de origem, aplica a codificação e escreve no destfp

  • « mailparse_rfc822_parse_addresses
  • mailparse_uudecode_all »
  • PHP Manual
  • Funções de Mailparse
  • Transmite dados do ponteiro do arquivo de origem, aplica a codificação e escreve no destfp

mailparse_stream_encode

(PECL mailparse >= 0.9.0)

mailparse_stream_encode — Transmite dados do ponteiro do arquivo de origem, aplica a codificação e escreve no destfp

Descrição

mailparse_stream_encode(resource $sourcefp, resource $destfp, string $encoding): bool

Transmite dados do ponteiro do arquivo de origem, aplica a encoding e escreve no ponteiro do arquivo de destino.

Parâmetros

sourcefp

Um identificador de arquivo válido. O arquivo é transmitido pelo analisador.

destfp

O identificador de arquivo de destino no qual os dados codificados serão escritos.

encoding

Uma das codificações de caracteres suportadas pelo módulo mbstring.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de mailparse_stream_encode()

<?php

// email.eml contents: hello, this is some text=hello.
$fp = fopen('email.eml', 'r');

$dest = tmpfile();

mailparse_stream_encode($fp, $dest, "quoted-printable");

rewind($dest);

// Exibir o conteúdo do novo arquivo
fpassthru($dest);

?>

O exemplo acima produzirá:

hello, this is some text=3Dhello.


Analisa os dados de fp e extrai cada arquivo uuencoded incorporado.

  • « mailparse_stream_encode
  • Extensões Matemáticas »
  • PHP Manual
  • Funções de Mailparse
  • Analisa os dados de fp e extrai cada arquivo uuencoded incorporado.

mailparse_uudecode_all

(PECL mailparse >= 0.9.0)

mailparse_uudecode_all — Analisa os dados de fp e extrai cada arquivo uuencoded incorporado.

Descrição

mailparse_uudecode_all(resource $fp): array

Analisa os dados do ponteiro do arquivo fornecido e extrai cada arquivo uuencoded incorporado em um arquivo temporário.

Parâmetros

fp

Um identificador de arquivo válido.

Valor Retornado

Retorna um array de arrays associativos listando informações sobre os nomes dos arquivos.

filename | Caminho para o nome do arquivo temporário criado
origfilename | O nome do arquivo original, apenas para partes uuencoded
A primeira entrada de nome de arquivo é o corpo da mensagem. As próximas entradas são os arquivos uuencoded decodificados.

Exemplos

Exemplo #1 Exemplo de mailparse_uudecode_all()

<?php

$text = <<<EOD
To: fred@example.com

hello, this is some text hello.
blah blah blah.

begin 644 test.txt
/=&AI<R!I<R!A('1E<W0*
`
end

EOD;

$fp = tmpfile();
fwrite($fp, $text);

$data = mailparse_uudecode_all($fp);

echo "BODY\n";
readfile($data[0]["filename"]);
echo "UUE ({$data[1]['origfilename']})\n";
readfile($data[1]["filename"]);

// Clean up
unlink($data[0]["filename"]);
unlink($data[1]["filename"]);

?>

O exemplo acima produzirá:

BODY
To: fred@example.com

hello, this is some text hello.
blah blah blah.

UUE (test.txt)
this is a test


Extensões Matemáticas

  • BC Math — BCMath, funções matemáticas de precisão arbitrária
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • BC Math Funções
  • GMP — Precisão Múltipla GNU
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções GMP
    • GMP — A classe GMP
  • Math — Funções Matemáticas
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções Matemáticas
  • Statistics
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Statistic Funções
  • Trader — Technical Analysis for Traders
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Trader Funções


BCMath, funções matemáticas de precisão arbitrária

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • BC Math Funções
    • bcadd — Adicionar dois números de precisão arbitrária
    • bccomp — Comparar dois números de precisão arbitrária
    • bcdiv — Dividir dois números de precisão arbitrária
    • bcmod — Obtém o módulo de um número com precisão arbitrária
    • bcmul — Multiplicar dois números de precisão arbitrária
    • bcpow — Eleva um número de precisão arbitrária a outro
    • bcpowmod — Eleva um número de precisão arbitrária para outro, reduzido por um módulo especificado
    • bcscale — Configura ou obtêm o parâmetro escala para todas as funções bc
    • bcsqrt — Obtém a raiz quadrada de um número de precisão arbitrária
    • bcsub — Subtrai um número de precisão arbitrária de outro


Introdução

Para matemática de precisão arbitrária, o PHP oferece BCMath, que suporta números de qualquer tamanho e com precisão de até 2147483647 (ou 0x7FFFFFFF) dígitos decimais, até a memória disponível, representadas como strings.

Numéros válido (ou bem formados) são strings que concordam com a expressão regular /^[+-]?[0-9]*(\.[0-9]*)?$/.

Cuidado

Passar valores de tipo float para uma função BCMatch, que espera um operando string pode não funcionar como esperado dado que o PHP converte valores float para string, especificamente que a string convertida pode estar numa notação exponencial (que não é suportado no BCMath), e dado que, anteriormente ao PHP 8.0.0, o separador decimal depende da locale configurada (enquanto BCMath sempre trabalho com ponto).

<?php
$num1 = 0; // (string) 0 => '0'
$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6'
echo bcadd($num1, $num2, 6); // => '0.000000'

setlocale(LC_NUMERIC, 'de_DE'); // uses a decimal comma
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>


Instalação

Essas funções só estão disponíveis se o PHP foi configurado com a opção --enable-bcmath.

A versão do PHP para Windows tem suporte nativo para esta extensão. Nenhuma extensão adicional precisa ser carregada para usar essas funções.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração da BC Math
Nome | Padrão | Modificável | Registro de Alterações
bcmath.scale | "0" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

bcmath.scale int

Número de casas decimais para todas as funções BC Math. Veja também bcscale().


  • « Tipos de Recurso
  • BC Math Funções »
  • PHP Manual
  • BC Math
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


BC Math Funções

Índice

  • bcadd — Adicionar dois números de precisão arbitrária
  • bccomp — Comparar dois números de precisão arbitrária
  • bcdiv — Dividir dois números de precisão arbitrária
  • bcmod — Obtém o módulo de um número com precisão arbitrária
  • bcmul — Multiplicar dois números de precisão arbitrária
  • bcpow — Eleva um número de precisão arbitrária a outro
  • bcpowmod — Eleva um número de precisão arbitrária para outro, reduzido por um módulo especificado
  • bcscale — Configura ou obtêm o parâmetro escala para todas as funções bc
  • bcsqrt — Obtém a raiz quadrada de um número de precisão arbitrária
  • bcsub — Subtrai um número de precisão arbitrária de outro


Adicionar dois números de precisão arbitrária

  • « BC Math Funções
  • bccomp »
  • PHP Manual
  • BC Math Funções
  • Adicionar dois números de precisão arbitrária

bcadd

(PHP 4, PHP 5, PHP 7, PHP 8)

bcadd — Adicionar dois números de precisão arbitrária

Descrição

bcadd(string $num1, string $num2, ?int $scale = null): string

Soma num1 e num2.

Parâmetros

num1

O operando da esquerda, como uma string.

num2

O operando da direita, como uma string.

scale

Este parâmetro opcional é usado para definir o número de dígitos após a casa decimal do resultado. Se omitido, o padrão será a escala definida globalmente com a função bcscale() ou, em último caso, 0 se a escala não tiver sido definida.

Valor Retornado

A soma de dois operandos, como uma string.

Registro de Alterações

Versão | Descrição
8.0.0 | scale pode ser null.

Exemplos

Exemplo #1 Exemplo bcadd()

<?php

$a = '1.234';
$b = '5';

echo bcadd($a, $b); // 6
echo bcadd($a, $b, 4); // 6.2340

?>

Veja Também

  • bcsub() - Subtrai um número de precisão arbitrária de outro


Comparar dois números de precisão arbitrária

  • « bcadd
  • bcdiv »
  • PHP Manual
  • BC Math Funções
  • Comparar dois números de precisão arbitrária

bccomp

(PHP 4, PHP 5, PHP 7, PHP 8)

bccomp — Comparar dois números de precisão arbitrária

Descrição

bccomp(string $num1, string $num2, ?int $scale = null): int

Compara o num1 com o num2 e retorna o resultado como um inteiro.

Parâmetros

num1

O operando da esquerda, como uma string.

num2

O operando da direita, como uma string.

scale

O parâmetro opcional scale é usado para definir o número de dígitos depois da parte decimal que será usada na comparação.

Valor Retornado

Retorna 0 se os dois operandos são iguais, 1 se o num1 é maior que num2, -1 caso contrário.

Registro de Alterações

Versão | Descrição
8.0.0 | scale pode ser null.

Exemplos

Exemplo #1 Exemplo da bccomp()

<?php

echo bccomp('1', '2') . "\n"; // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

?>


Dividir dois números de precisão arbitrária

  • « bccomp
  • bcmod »
  • PHP Manual
  • BC Math Funções
  • Dividir dois números de precisão arbitrária

bcdiv

(PHP 4, PHP 5, PHP 7, PHP 8)

bcdiv — Dividir dois números de precisão arbitrária

Descrição

bcdiv(string $num1, string $num2, ?int $scale = null): string

Divide o num1 pelo num2.

Parâmetros

num1

O número dividendo, como uma string.

num2

O número divisor, como uma string.

scale

Este parâmetro opcional é usado para definir o número de dígitos após a casa decimal do resultado. Se omitido, o padrão será a escala definida globalmente com a função bcscale() ou, em último caso, 0 se a escala não tiver sido definida.

Valor Retornado

Retorna o resultado da divisão como uma string, ou null se num2 é 0.

Registro de Alterações

Versão | Descrição
8.0.0 | scale pode ser null.

Exemplos

Exemplo #1 Exemplo da bcdiv()

<?php

echo bcdiv('105', '6.55957', 3); // 16.007

?>

Veja Também

  • bcmul() - Multiplicar dois números de precisão arbitrária


Obtém o módulo de um número com precisão arbitrária

  • « bcdiv
  • bcmul »
  • PHP Manual
  • BC Math Funções
  • Obtém o módulo de um número com precisão arbitrária

bcmod

(PHP 4, PHP 5, PHP 7, PHP 8)

bcmod — Obtém o módulo de um número com precisão arbitrária

Descrição

bcmod(string $num1, string $num2, ?int $scale = null): string

Obtém o resto da divisão de num1 por num2. A não ser que num2 seja zero, o resultado tem o mesmo sinal que num1.

Parâmetros

num1

O número dividendo, como string.

num2

O número divisor, como string.

Valor Retornado

Retorna o módulo como uma string, ou null se num2 é 0.

Registro de Alterações

Versão | Descrição
8.0.0 | scale pode ser null.
7.2.0 | num1 e num2 não são mais truncados para inteiro, de forma que o comportamento de bcmod() é o mesmo de fmod() ao invés do operador %.
7.2.0 | O parâmetro scale foi adicionado.

Exemplos

Exemplo #1 Exemplo de bcmod()

<?php
bcscale(0);
echo bcmod( '5', '3'); // 2
echo bcmod( '5', '-3'); // 2
echo bcmod('-5', '3'); // -2
echo bcmod('-5', '-3'); // -2
?>

Exemplo #2 Exemplo de bcmod() com decimais

<?php
bcscale(1);
echo bcmod('5.7', '1.3'); // 0.5 no PHP 7.2.0; anteriormente 0
?>

Veja Também

  • bcdiv() - Dividir dois números de precisão arbitrária


Multiplicar dois números de precisão arbitrária

  • « bcmod
  • bcpow »
  • PHP Manual
  • BC Math Funções
  • Multiplicar dois números de precisão arbitrária

bcmul

(PHP 4, PHP 5, PHP 7, PHP 8)

bcmul — Multiplicar dois números de precisão arbitrária

Descrição

bcmul(string $num1, string $num2, ?int $scale = null): string

Multiplica o num1 pelo num2.

Parâmetros

num1

O operando da esquerda, como uma string.

num2

O operando da direita, como uma string.

scale

Este parâmetro opcional é usado para definir o número de dígitos após a casa decimal do resultado. Se omitido, o padrão será a escala definida globalmente com a função bcscale() ou, em último caso, 0 se a escala não tiver sido definida.

Valor Retornado

Retorna o resultado como uma string.

Registro de Alterações

Versão | Descrição
8.0.0 | scale agora pode ser null.
7.3.0 | bcmul() agora retorna números com a escala solicitada. Formalmente o número retornado pode ter alguns zeros decimais omitidos.

Exemplos

Exemplo #1 Exemplo da bcmul()

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

Notas

Nota:

Anteriormente ao PHP 7.3.0 bcmul() podia retornar um número com menos dígitos após o ponto decimal que o parâmetro scale indicaria. Isto ocorre apenas quando o resultado não exigia toda a precisão permitida pelo parâmetro scale. Por exemplo:

Exemplo #2 Exemplo de bcmul() com scale

<?php
echo bcmul('5', '2', 2); // Imprime "10", não "10.00"
?>

Veja Também

  • bcdiv() - Dividir dois números de precisão arbitrária


Eleva um número de precisão arbitrária a outro

  • « bcmul
  • bcpowmod »
  • PHP Manual
  • BC Math Funções
  • Eleva um número de precisão arbitrária a outro

bcpow

(PHP 4, PHP 5, PHP 7, PHP 8)

bcpow — Eleva um número de precisão arbitrária a outro

Descrição

bcpow(string $num, string $exponent, ?int $scale = null): string

Eleva num a potência de exponent.

Parâmetros

num

O número base, como uma string.

exponent

O número expoente, como uma string. Se o expoente for não inteiro, ele será truncado. Os expoentes válidos dependem da plataforma, mas ao menos são válidos de -2147483648 até 2147483647.

scale

Este parâmetro opcional é usado para definir o número de dígitos após a casa decimal do resultado. Se omitido, o padrão será a escala definida globalmente com a função bcscale() ou, em último caso, 0 se a escala não tiver sido definida.

Valor Retornado

Retorna o resultado como uma string.

Registro de Alterações

Versão | Descrição
7.3.0 | bcpow() agora retorna números com a escala solicitada. Mais exatamente, o número retornado pode omitir alguns zeros decimais.

Exemplos

Exemplo #1 Exemplo da bcpow()

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

Notas

Nota:

Anteriormente ao PHP 7.3.0, bcpow() podia retornar um resultado com menos dígitos decimais do que o indicado no parâmetro scale. Isto ocorre quando o resultado não requer toda a precisão permitida por scale. Por exemplo:

Exemplo #2 Exemplo bcpow() com scale

<?php
echo bcpow('5', '2', 2); // Imprime "25", não "25.00"
?>

Veja Também

  • bcpowmod() - Eleva um número de precisão arbitrária para outro, reduzido por um módulo especificado
  • bcsqrt() - Obtém a raiz quadrada de um número de precisão arbitrária


Eleva um número de precisão arbitrária para outro, reduzido por um módulo especificado

  • « bcpow
  • bcscale »
  • PHP Manual
  • BC Math Funções
  • Eleva um número de precisão arbitrária para outro, reduzido por um módulo especificado

bcpowmod

(PHP 5, PHP 7, PHP 8)

bcpowmod — Eleva um número de precisão arbitrária para outro, reduzido por um módulo especificado

Descrição

bcpowmod(
string $num,
string $exponent,
string $modulus,
?int $scale = null
): string

Utiliza o método de exponenciação rápida para elevar num para a potência exponent levando em conta o módulo modulus.

Parâmetros

num

O número base, na forma de inteiro em string (a escala tem de ser zero).

exponent

O número expoente, na forma de um inteiro não negativo, em string (a escala tem de ser zero).

modulus

O número módulo, na forma de um inteiro em string (a escala tem de ser zero).

scale

Este parâmetro opcional é usado para definir o número de dígitos após a casa decimal do resultado. Se omitido, o padrão será a escala definida globalmente com a função bcscale() ou, em último caso, 0 se a escala não tiver sido definida.

Valor Retornado

Retorna o resultado como uma string, ou false se modulus for 0 ou o exponent for negativo.

Registro de Alterações

Versão | Descrição
8.0.0 | scale agora pode ser null.

Exemplos

As seguintes instruções têm funcionalidades idênticas. A versão bcpowmod(), no entanto, executa em menos tempo e pode aceitar parâmetros maiores.

<?php
$a = bcpowmod($x, $y, $mod);

$b = bcmod(bcpow($x, $y), $mod);

// $a e $b são iguais.

?>

Notas

Nota:

Por esse método realizar operações em módulo, números que não sejam inteiros positivos podem gerar resultados inesperados.

Veja Também

  • bcpow() - Eleva um número de precisão arbitrária a outro
  • bcmod() - Obtém o módulo de um número com precisão arbitrária


Configura ou obtêm o parâmetro escala para todas as funções bc

  • « bcpowmod
  • bcsqrt »
  • PHP Manual
  • BC Math Funções
  • Configura ou obtêm o parâmetro escala para todas as funções bc

bcscale

(PHP 4, PHP 5, PHP 7, PHP 8)

bcscale — Configura ou obtêm o parâmetro escala para todas as funções bc

Descrição

bcscale(int $scale): int

Configura o parâmetro de escala padrão para todas as chamadas subsequentes às funções bcmath que não tenham o parâmatro escala informado explicitamente.

bcscale(null $scale = null): int

Retorna o valor de escala atual.

Parâmetros

scale

O fator de escala.

Valor Retornado

Retorna o valor de escala antigo quando configurando um novo, senão retorna o valor atual.

Registro de Alterações

Versão | Descrição
8.0.0 | scale agora pode ser null.
7.3.0 | bcscale() pode ser utilizado para obter o falor de escala atual, quando utilizado para configurar. Anteriormente, scale era obrigatório, e bcscale() sempre retornava true.

Exemplos

Exemplo #1 Exemplo da bcscale()

<?php

// Escala default: 3
bcscale(3);
echo bcdiv('105', '6.55957'); // 16.007

// Obtém o mesmo resultado sem bcscale()
echo bcdiv('105', '6.55957', 3); // 16.007

?>


Obtém a raiz quadrada de um número de precisão arbitrária

  • « bcscale
  • bcsub »
  • PHP Manual
  • BC Math Funções
  • Obtém a raiz quadrada de um número de precisão arbitrária

bcsqrt

(PHP 4, PHP 5, PHP 7, PHP 8)

bcsqrt — Obtém a raiz quadrada de um número de precisão arbitrária

Descrição

bcsqrt(string $num, ?int $scale = null): string

Retorna a raiz quadrada do num.

Parâmetros

num

O operando, como uma string numérica no padrão BCMath.

scale

Este parâmetro opcional é usado para definir o número de dígitos após a casa decimal do resultado. Se omitido, o padrão será a escala definida globalmente com a função bcscale() ou, em último caso, 0 se a escala não tiver sido definida.

Valor Retornado

Retorna a raiz quadrada como uma string numérica no padrão BCMath.

Erros/Exceções

Esta função lança um ValueError nas seguintes situações:

  • num não é uma string numérica no padrão BCMath
  • num é menor que 0
  • scale está fora do range válido

Registro de Alterações

Versão | Descrição
8.0.0 | Se num não é uma string numérica no padrão BCMath, ou menor que 0, um ValueError é lançado. Anteriormente um E_WARNING era emitido.
8.0.0 | scale now needs to be between 0 and 2147483647; previously, negative scales have been silently treated as 0.
8.0.0 | scale is now nullable.

Exemplos

Exemplo #1 Exemplo de bcsqrt()

<?php

echo bcsqrt('2', 3); // 1.414

?>

Veja Também

  • bcpow() - Eleva um número de precisão arbitrária a outro


Subtrai um número de precisão arbitrária de outro

  • « bcsqrt
  • GMP »
  • PHP Manual
  • BC Math Funções
  • Subtrai um número de precisão arbitrária de outro

bcsub

(PHP 4, PHP 5, PHP 7, PHP 8)

bcsub — Subtrai um número de precisão arbitrária de outro

Descrição

bcsub(string $num1, string $num2, ?int $scale = null): string

Subtrai num2 de num1.

Parâmetros

num1

O operando da esquerda, como uma string.

num2

O operando da direita, como uma string.

scale

Este parâmetro opcional é usado para definir o número de dígitos após a casa decimal do resultado. Se omitido, o padrão será a escala definida globalmente com a função bcscale() ou, em último caso, 0 se a escala não tiver sido definida.

Valor Retornado

O resultado da subtração, como uma string.

Registro de Alterações

Versão | Descrição
8.0.0 | scale agora pode ser null.

Exemplos

Exemplo #1 Exemplo de bcsub()

<?php

$a = '1.234';
$b = '5';

echo bcsub($a, $b); // -3
echo bcsub($a, $b, 4); // -3.7660

?>

Veja Também

  • bcadd() - Adicionar dois números de precisão arbitrária


Precisão Múltipla GNU

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
  • Constantes pré-definidas
  • Exemplos
  • Funções GMP
    • gmp_abs — Valor absoluto
    • gmp_add — Adiciona números
    • gmp_and — Operação binária AND
    • gmp_binomial — Calculates binomial coefficient
    • gmp_clrbit — Clear bit
    • gmp_cmp — Compara números
    • gmp_com — Calcula o complemento de um
    • 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 — Sinônimo de gmp_div_q
    • gmp_divexact — Divisão exata de números
    • gmp_export — Export to a binary string
    • gmp_fact — Factorial
    • gmp_gcd — Calcula o MDC
    • gmp_gcdext — Calcula MDC e multiplicadores
    • gmp_hamdist — Distância de Hamming
    • gmp_import — Import from a binary string
    • gmp_init — Create GMP number
    • gmp_intval — Converte um número GMP para um inteiro
    • gmp_invert — Inverse by modulo
    • gmp_jacobi — Símbolo de Jacobi
    • gmp_kronecker — Kronecker symbol
    • gmp_lcm — Calculate LCM
    • gmp_legendre — Símbolo de Legendre
    • gmp_mod — Operação Módulo
    • gmp_mul — Multiplica números
    • gmp_neg — Negativa o número
    • gmp_nextprime — Encontra o próximo número primo
    • gmp_or — Operação binária OR
    • gmp_perfect_power — Perfect power check
    • gmp_perfect_square — Perfect square check
    • gmp_popcount — Contagem de população
    • gmp_pow — Elevar o número a uma potência
    • gmp_powm — Eleva um número a uma potência com módulo
    • gmp_prob_prime — Check if number is "probably prime"
    • gmp_random_bits — Random number
    • gmp_random_range — Get a uniformly selected integer
    • gmp_random_seed — Sets the RNG seed
    • gmp_random — Random number
    • gmp_root — Take the integer part of nth root
    • gmp_rootrem — Take the integer part and remainder of nth root
    • gmp_scan0 — Scan for 0
    • gmp_scan1 — Scan for 1
    • gmp_setbit — Set bit
    • gmp_sign — Sinal do número
    • gmp_sqrt — Calcula a raiz quadrada
    • gmp_sqrtrem — Raiz quadrada com resto
    • gmp_strval — Converte um número GMP para uma string
    • gmp_sub — Subtrai números
    • gmp_testbit — Tests if a bit is set
    • gmp_xor — Operação binária XOR
  • GMP — A classe GMP
    • GMP::__construct — Create GMP number
    • GMP::__serialize — Serializes the GMP object
    • GMP::__unserialize — Deserializes the data parameter into a GMP object


Introdução

Estas funções permitem que inteiros de comprimento arbitrário sejam trabalhados usando a biblioteca GNU MP.

Nota:

A maioria das funções GMP aceitam números GMP como argumentos. Estes são mostrados nesta documentação como objetos GMP. A maioria destas funções também aceitam argumentos númericos e strings, desde que seja possível converter a string para um número. Também, caso houver uma função com melhor desempenho que possa operar nos argumentos (inteiros somente), ela será usada (isso é feito de forma transparente). Consulte também a função gmp_init().

Nota:

A partir do PHP 5.6, os operadores aritméticos, binários e comparativos podem ser usados com objetos GMP retornados de gmp_init() e de outras funções GMP.

Aviso

Inteiros grandes devem ser especificados como strings - caso contrário, o PHP irá convertê-los à força para o tipo float, resultando em perda de precisão.

Nota: Esta extensão está disponível em plataformas plataforma Windows.


Dependências

The GMP library can be downloaded from » http://gmplib.org/#DOWNLOAD. This site also has the GMP manual available.

At least GMP version 4.2 is required, with some functions requiring a more recent version of the GMP library.

On Windows, MPIR is required instead of GMP.


Instalação

Para ter estas funções disponíveis, o PHP deve ser compilado com suporte a GMP usando a opção de configuração --with-gmp.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

GMP_ROUND_ZERO (int)
GMP_ROUND_PLUSINF (int)
GMP_ROUND_MINUSINF (int)
GMP_MSW_FIRST (int)
GMP_LSW_FIRST (int)
GMP_LITTLE_ENDIAN (int)
GMP_BIG_ENDIAN (int)
GMP_NATIVE_ENDIAN (int)
GMP_VERSION (string)
A versão da biblioteca GMP


Exemplos

Exemplo #1 Função fatorial usando GMP

<?php
function fact($x)
{
$return = 1;
for ($i=2; $i <= $x; $i++) {
$return = gmp_mul($return, $i);
}
return $return;
}

echo gmp_strval(fact(1000)) . "\n";
?>

Este código irá calcular o fatorial de 1000 (um número grande) de forma muito rápida.


Funções GMP

Veja Também

Mais funções matemáticas podem ser encontradas na seção Extensões Matemáticas

Índice

  • gmp_abs — Valor absoluto
  • gmp_add — Adiciona números
  • gmp_and — Operação binária AND
  • gmp_binomial — Calculates binomial coefficient
  • gmp_clrbit — Clear bit
  • gmp_cmp — Compara números
  • gmp_com — Calcula o complemento de um
  • 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 — Sinônimo de gmp_div_q
  • gmp_divexact — Divisão exata de números
  • gmp_export — Export to a binary string
  • gmp_fact — Factorial
  • gmp_gcd — Calcula o MDC
  • gmp_gcdext — Calcula MDC e multiplicadores
  • gmp_hamdist — Distância de Hamming
  • gmp_import — Import from a binary string
  • gmp_init — Create GMP number
  • gmp_intval — Converte um número GMP para um inteiro
  • gmp_invert — Inverse by modulo
  • gmp_jacobi — Símbolo de Jacobi
  • gmp_kronecker — Kronecker symbol
  • gmp_lcm — Calculate LCM
  • gmp_legendre — Símbolo de Legendre
  • gmp_mod — Operação Módulo
  • gmp_mul — Multiplica números
  • gmp_neg — Negativa o número
  • gmp_nextprime — Encontra o próximo número primo
  • gmp_or — Operação binária OR
  • gmp_perfect_power — Perfect power check
  • gmp_perfect_square — Perfect square check
  • gmp_popcount — Contagem de população
  • gmp_pow — Elevar o número a uma potência
  • gmp_powm — Eleva um número a uma potência com módulo
  • gmp_prob_prime — Check if number is "probably prime"
  • gmp_random_bits — Random number
  • gmp_random_range — Get a uniformly selected integer
  • gmp_random_seed — Sets the RNG seed
  • gmp_random — Random number
  • gmp_root — Take the integer part of nth root
  • gmp_rootrem — Take the integer part and remainder of nth root
  • gmp_scan0 — Scan for 0
  • gmp_scan1 — Scan for 1
  • gmp_setbit — Set bit
  • gmp_sign — Sinal do número
  • gmp_sqrt — Calcula a raiz quadrada
  • gmp_sqrtrem — Raiz quadrada com resto
  • gmp_strval — Converte um número GMP para uma string
  • gmp_sub — Subtrai números
  • gmp_testbit — Tests if a bit is set
  • gmp_xor — Operação binária XOR


Valor absoluto

  • « Funções GMP
  • gmp_add »
  • PHP Manual
  • Funções GMP
  • Valor absoluto

gmp_abs

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_abs — Valor absoluto

Descrição

gmp_abs(GMP|int|string $num): GMP

Obtém o valor absoluto de um número.

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Retorna o valor absoluto de num, como um número GMP.

Exemplos

Exemplo #1 Exemplo de gmp_abs()

<?php
$abs1 = gmp_abs("274982683358");
$abs2 = gmp_abs("-274982683358");

echo gmp_strval($abs1) . "\n";
echo gmp_strval($abs2) . "\n";
?>

O exemplo acima produzirá:

274982683358
274982683358


Adiciona números

  • « gmp_abs
  • gmp_and »
  • PHP Manual
  • Funções GMP
  • Adiciona números

gmp_add

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_add — Adiciona números

Descrição

gmp_add(GMP|int|string $num1, GMP|int|string $num2): GMP

Adiciona dois números.

Parâmetros

num1

A primeira parcela.

Um objeto GMP, um int ou uma string numérica.

num2

A segunda parcela.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um número GMP representado a soma dos argumentos.

Exemplos

Exemplo #1 Exemplo de gmp_add()

<?php
$sum = gmp_add("123456789012345", "76543210987655");
echo gmp_strval($sum) . "\n";
?>

O exemplo acima produzirá:

200000000000000


Operação binária AND

  • « gmp_add
  • gmp_binomial »
  • PHP Manual
  • Funções GMP
  • Operação binária AND

gmp_and

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_and — Operação binária AND

Descrição

gmp_and(GMP|int|string $num1, GMP|int|string $num2): GMP

Faz a operação binária AND de dois números GMP.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um número GMP representando a comparação binária AND.

Exemplos

Exemplo #1 Exemplo de gmp_and()

<?php
$and1 = gmp_and("0xfffffffff4", "0x4");
$and2 = gmp_and("0xfffffffff4", "0x8");
echo gmp_strval($and1) . "\n";
echo gmp_strval($and2) . "\n";
?>

O exemplo acima produzirá:

4
0


Calculates binomial coefficient

  • « gmp_and
  • gmp_clrbit »
  • PHP Manual
  • Funções GMP
  • Calculates binomial coefficient

gmp_binomial

(PHP 7 >= 7.3.0, PHP 8)

gmp_binomial — Calculates binomial coefficient

Descrição

gmp_binomial(GMP|int|string $n, int $k): GMP

Calculates the binomial coefficient C(n, k).

Parâmetros

n

Um objeto GMP, um int ou uma string numérica.

k

Valor Retornado

Returns the binomial coefficient C(n, k).

Erros/Exceções

Throws ValueError if k is negative. Prior to PHP 8.0.0, E_WARNING was issued instead.

Registro de Alterações

Versão | Descrição
8.0.0 | This function no longer returns false on failure.


Clear bit

  • « gmp_binomial
  • gmp_cmp »
  • PHP Manual
  • Funções GMP
  • Clear bit

gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_clrbit — Clear bit

Descrição

gmp_clrbit(GMP $num, int $index): void

Clears (sets to 0) bit index in num. The index starts at 0.

Parâmetros

num

A GMP object.

index

The index of the bit to clear. Index 0 represents the least significant bit.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 gmp_clrbit() example

<?php
$a = gmp_init("0xff");
gmp_clrbit($a, 0); // index starts at 0, least significant bit
echo gmp_strval($a) . "\n";
?>

O exemplo acima produzirá:

254

Notas

Nota:

Unlike most of the other GMP functions, gmp_clrbit() must be called with a GMP object that already exists (using gmp_init() for example). One will not be automatically created.

Veja Também

  • gmp_setbit() - Set bit
  • gmp_testbit() - Tests if a bit is set


Compara números

  • « gmp_clrbit
  • gmp_com »
  • PHP Manual
  • Funções GMP
  • Compara números

gmp_cmp

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_cmp — Compara números

Descrição

gmp_cmp(GMP|int|string $num1, GMP|int|string $num2): int

Compara dois números.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Retorna um valor positivo se a > b, zero se a = b e um valor negativo se a < b.

Exemplos

Exemplo #1 Exemplo de gmp_cmp()

<?php
$cmp1 = gmp_cmp("1234", "1000"); // maior que
$cmp2 = gmp_cmp("1000", "1234"); // menor que
$cmp3 = gmp_cmp("1234", "1234"); // igual a

echo "$cmp1 $cmp2 $cmp3\n";
?>

O exemplo acima produzirá:

1 -1 0


Calcula o complemento de um

  • « gmp_cmp
  • gmp_div_q »
  • PHP Manual
  • Funções GMP
  • Calcula o complemento de um

gmp_com

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_com — Calcula o complemento de um

Descrição

gmp_com(GMP|int|string $num): GMP

Retorna o complemento de um do valor num.

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Retorna o complemento de um do valor num, como um número GMP.

Exemplos

Exemplo #1 Exemplo gmp_com()

<?php
$com = gmp_com("1234");
echo gmp_strval($com) . "\n";
?>

O exemplo acima produzirá:

-1235


Divide numbers

  • « gmp_com
  • gmp_div_qr »
  • PHP Manual
  • Funções GMP
  • Divide numbers

gmp_div_q

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_div_q — Divide numbers

Descrição

gmp_div_q(GMP|int|string $num1, GMP|int|string $num2, int $rounding_mode = GMP_ROUND_ZERO): GMP

Divides num1 by num2 and returns the integer result.

Parâmetros

num1

The number being divided.

Um objeto GMP, um int ou uma string numérica.

num2

The number that num1 is being divided by.

Um objeto GMP, um int ou uma string numérica.

rounding_mode

The result rounding is defined by the rounding_mode, 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.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 gmp_div_q() example

<?php
$div1 = gmp_div_q("100", "5");
echo gmp_strval($div1) . "\n";

$div2 = gmp_div_q("1", "3");
echo gmp_strval($div2) . "\n";

$div3 = gmp_div_q("1", "3", GMP_ROUND_PLUSINF);
echo gmp_strval($div3) . "\n";

$div4 = gmp_div_q("-1", "4", GMP_ROUND_PLUSINF);
echo gmp_strval($div4) . "\n";

$div5 = gmp_div_q("-1", "4", GMP_ROUND_MINUSINF);
echo gmp_strval($div5) . "\n";
?>

O exemplo acima produzirá:

20
0
1
0
-1

Notas

Nota:

This function can also be called as gmp_div().

Veja Também

  • gmp_div_r() - Remainder of the division of numbers
  • gmp_div_qr() - Divide numbers and get quotient and remainder


Divide numbers and get quotient and remainder

  • « gmp_div_q
  • gmp_div_r »
  • PHP Manual
  • Funções GMP
  • Divide numbers and get quotient and remainder

gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_div_qr — Divide numbers and get quotient and remainder

Descrição

gmp_div_qr(GMP|int|string $num1, GMP|int|string $num2, int $rounding_mode = GMP_ROUND_ZERO): array

The function divides num1 by num2.

Parâmetros

num1

The number being divided.

Um objeto GMP, um int ou uma string numérica.

num2

The number that num1 is being divided by.

Um objeto GMP, um int ou uma string numérica.

rounding_mode

See the gmp_div_q() function for description of the rounding_mode argument.

Valor Retornado

Returns an 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).

Exemplos

Exemplo #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]));
?>

Veja Também

  • gmp_div_q() - Divide numbers
  • gmp_div_r() - Remainder of the division of numbers


Remainder of the division of numbers

  • « gmp_div_qr
  • gmp_div »
  • PHP Manual
  • Funções GMP
  • Remainder of the division of numbers

gmp_div_r

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_div_r — Remainder of the division of numbers

Descrição

gmp_div_r(GMP|int|string $num1, GMP|int|string $num2, int $rounding_mode = GMP_ROUND_ZERO): GMP

Calculates remainder of the integer division of num1 by num2. The remainder has the sign of the num1 argument, if not zero.

Parâmetros

num1

The number being divided.

Um objeto GMP, um int ou uma string numérica.

num2

The number that num1 is being divided by.

Um objeto GMP, um int ou uma string numérica.

rounding_mode

See the gmp_div_q() function for description of the rounding_mode argument.

Valor Retornado

The remainder, as a GMP number.

Exemplos

Exemplo #1 gmp_div_r() example

<?php
$div = gmp_div_r("105", "20");
echo gmp_strval($div) . "\n";
?>

O exemplo acima produzirá:

5

Veja Também

  • gmp_div_q() - Divide numbers
  • gmp_div_qr() - Divide numbers and get quotient and remainder


Sinônimo de gmp_div_q

  • « gmp_div_r
  • gmp_divexact »
  • PHP Manual
  • Funções GMP
  • Sinônimo de gmp_div_q

gmp_div

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_div — Sinônimo de gmp_div_q()

Descrição

Esta função é um apelido para: gmp_div_q().


Divisão exata de números

  • « gmp_div
  • gmp_export »
  • PHP Manual
  • Funções GMP
  • Divisão exata de números

gmp_divexact

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_divexact — Divisão exata de números

Descrição

gmp_divexact(GMP|int|string $num1, GMP|int|string $num2): GMP

Divide num1 por num2, usando um algoritimo rápido de "divisão exata". Esta função produz resultados corretos apenas quando sabe anteriormente que num2 é divisor de num1.

Parâmetros

num1

O número a ser dividido.

Um objeto GMP, um int ou uma string numérica.

num2

O número pelo qual num1 será dividido.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 Exemplo gmp_divexact()

<?php
$div1 = gmp_divexact("10", "2");
echo gmp_strval($div1) . "\n";

$div2 = gmp_divexact("10", "3"); // resultado errado
echo gmp_strval($div2) . "\n";
?>

O exemplo acima produzirá:

5
2863311534


Export to a binary string

  • « gmp_divexact
  • gmp_fact »
  • PHP Manual
  • Funções GMP
  • Export to a binary string

gmp_export

(PHP 5 >= 5.6.1, PHP 7, PHP 8)

gmp_export — Export to a binary string

Descrição

gmp_export(GMP|int|string $num, int $word_size = 1, int $flags = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN): string

Export a GMP number to a binary string

Parâmetros

num

The GMP number being exported

word_size

Default value is 1. The number of bytes in each chunk of binary data. This is mainly used in conjunction with the options parameter.

flags

Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Valor Retornado

Returns a string.

Registro de Alterações

Versão | Descrição
8.0.0 | This function no longer returns false on failure.

Exemplos

Exemplo #1 gmp_export() example

<?php
$number = gmp_init(16705);
echo gmp_export($number) . "\n";
?>

O exemplo acima produzirá:

AA

Veja Também

  • gmp_import() - Import from a binary string


Factorial

  • « gmp_export
  • gmp_gcd »
  • PHP Manual
  • Funções GMP
  • Factorial

gmp_fact

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_fact — Factorial

Descrição

gmp_fact(GMP|int|string $num): GMP

Calculates factorial (num!) of num.

Parâmetros

num

The factorial number.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 gmp_fact() example

<?php
$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

$fact2 = gmp_fact(50); // 50 * 49 * 48, ... etc
echo gmp_strval($fact2) . "\n";
?>

O exemplo acima produzirá:

120
30414093201713378043612608166064768844377641568960512000000000000


Calcula o MDC

  • « gmp_fact
  • gmp_gcdext »
  • PHP Manual
  • Funções GMP
  • Calcula o MDC

gmp_gcd

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_gcd — Calcula o MDC

Descrição

gmp_gcd(GMP|int|string $num1, GMP|int|string $num2): GMP

Calcula o máximo divisor comum de num1 e num2. O resultado é sempre positivo, mesmo que um ou ambos os argumentos sejam negativos.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um número positivo GMP divisor de num1 e num2.

Exemplos

Exemplo #1 Exemplo de gmp_gcd()

<?php
$gcd = gmp_gcd("12", "21");
echo gmp_strval($gcd) . "\n";
?>

O exemplo acima produzirá:

3

Veja Também

  • gmp_lcm() - Calculate LCM


Calcula MDC e multiplicadores

  • « gmp_gcd
  • gmp_hamdist »
  • PHP Manual
  • Funções GMP
  • Calcula MDC e multiplicadores

gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_gcdext — Calcula MDC e multiplicadores

Descrição

gmp_gcdext(GMP|int|string $num1, GMP|int|string $num2): array

Calcula g, s, e t, de forma que a*s + b*t = g = gcd(a,b), onde gcd é o máximo divisor comum (MDC). Retorna um array com os respectivos elementos g, s e t.

Esta função pode ser usada para resolver equações lineares de Diophantine com duas variáveis. São equações que permitem somente soluções com inteiros e têm a forma: a*x + b*y = c. Para mais informações, acesse a página » "Equação de Diophantine" (em inglês) na MathWorld.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um array de números GMP.

Exemplos

Exemplo #1 Resolvendo uma equação linear de Diophantine

<?php
// Soluciona a equação a*s + b*t = g
// onde a = 12, b = 21, g = MDC(12, 21) = 3
$a = gmp_init(12);
$b = gmp_init(21);
$g = gmp_gcd($a, $b);
$r = gmp_gcdext($a, $b);

$check_gcd = (gmp_strval($g) == gmp_strval($r['g']));
$eq_res = gmp_add(gmp_mul($a, $r['s']), gmp_mul($b, $r['t']));
$check_res = (gmp_strval($g) == gmp_strval($eq_res));

if ($check_gcd && $check_res) {
$fmt = "Solução: %d*%d + %d*%d = %d\n";
printf($fmt, gmp_strval($a), gmp_strval($r['s']), gmp_strval($b),
gmp_strval($r['t']), gmp_strval($r['g']));
} else {
echo "Erro ao solucionar a equação\n";
}

// saída: Solução: 12*2 + 21*-1 = 3
?>


Distância de Hamming

  • « gmp_gcdext
  • gmp_import »
  • PHP Manual
  • Funções GMP
  • Distância de Hamming

gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_hamdist — Distância de Hamming

Descrição

gmp_hamdist(GMP|int|string $num1, GMP|int|string $num2): int

Retorna a distância de Hamming entre num1 e num2. Ambos argumentos devem ser positivos.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

Tem que ser positivo.

num2

Um objeto GMP, um int ou uma string numérica.

Tem que ser positivo.

Valor Retornado

A distância de Hamming entre num1 e num2, do tipo int.

Exemplos

Exemplo #1 Exemplo de gmp_hamdist()

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* a distância de Hamming é equivalente a : */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

O exemplo acima produzirá:

6
6

Veja Também

  • gmp_popcount() - Contagem de população
  • gmp_xor() - Operação binária XOR


Import from a binary string

  • « gmp_hamdist
  • gmp_init »
  • PHP Manual
  • Funções GMP
  • Import from a binary string

gmp_import

(PHP 5 >= 5.6.1, PHP 7, PHP 8)

gmp_import — Import from a binary string

Descrição

gmp_import(string $data, int $word_size = 1, int $flags = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN): GMP

Import a GMP number from a binary string

Parâmetros

data

The binary string being imported

word_size

Default value is 1. The number of bytes in each chunk of binary data. This is mainly used in conjunction with the options parameter.

flags

Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Valor Retornado

Returns a GMP number.

Registro de Alterações

Versão | Descrição
8.0.0 | This function no longer returns false on failure.

Exemplos

Exemplo #1 gmp_import() example

<?php
$number = gmp_import("\0");
echo gmp_strval($number) . "\n";

$number = gmp_import("\0\1\2");
echo gmp_strval($number) . "\n";
?>

O exemplo acima produzirá:

0
258

Veja Também

  • gmp_export() - Export to a binary string


Create GMP number

  • « gmp_import
  • gmp_intval »
  • PHP Manual
  • Funções GMP
  • Create GMP number

gmp_init

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_init — Create GMP number

Descrição

gmp_init(int|string $num, int $base = 0): GMP

Creates a GMP number from an integer or string.

Parâmetros

num

An integer or a string. The string representation can be decimal, hexadecimal or octal.

base

The base.

The base may vary from 2 to 62. If base is 0 (default value), the actual base is determined from the leading characters: if the first two characters are 0x or 0X, hexadecimal is assumed, if the first two characters are 0b or 0B, binary is assumed, otherwise if the first character is 0, octal is assumed, otherwise decimal is assumed. For bases up to 36, case is ignored; upper-case and lower-case letters have the same value. For bases 37 to 62, upper-case letter represent the usual 10 to 35 while lower-case letter represent 36 to 61.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 Creating GMP number

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

Notas

Nota:

It is not necessary to call this function in order to use integers or strings in place of GMP numbers in GMP functions (such as with gmp_add()). Function arguments are automatically converted to GMP numbers, if such conversion is possible and needed, using the same rules as gmp_init().

Veja Também

  • GMP::__construct() - Create GMP number


Converte um número GMP para um inteiro

  • « gmp_init
  • gmp_invert »
  • PHP Manual
  • Funções GMP
  • Converte um número GMP para um inteiro

gmp_intval

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_intval — Converte um número GMP para um inteiro

Descrição

gmp_intval(GMP|int|string $num): int

Esta função converte um número GMP para um int nativo do PHP.

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um valor int de num.

Exemplos

Exemplo #1 Exemplo gmp_intval()

<?php
// Mostra o valor correto
echo gmp_intval("2147483647") . "\n";

// Mostra um resultado errado, acima do limite de inteiro do PHP
echo gmp_intval("2147483648") . "\n";

// mostra o valor correto
echo gmp_strval("2147483648") . "\n";
?>

O exemplo acima produzirá:

2147483647
2147483647
2147483648

Notas

Aviso

Esta função retorna um resultado útil somente se o número realmente cabe em um inteiro PHP (isto é, tipo longo com sinal). Para simplemsmente mostrar o número GMP, use gmp_strval().


Inverse by modulo

  • « gmp_intval
  • gmp_jacobi »
  • PHP Manual
  • Funções GMP
  • Inverse by modulo

gmp_invert

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_invert — Inverse by modulo

Descrição

gmp_invert(GMP|int|string $num1, GMP|int|string $num2): GMP|false

Computes the inverse of num1 modulo num2.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

A GMP number on success or false if an inverse does not exist.

Exemplos

Exemplo #1 gmp_invert() example

<?php
echo gmp_invert("5", "10"); // no inverse, outputs nothing, result is FALSE
$invert = gmp_invert("5", "11");
echo gmp_strval($invert) . "\n";
?>

O exemplo acima produzirá:

9


Símbolo de Jacobi

  • « gmp_invert
  • gmp_kronecker »
  • PHP Manual
  • Funções GMP
  • Símbolo de Jacobi

gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_jacobi — Símbolo de Jacobi

Descrição

gmp_jacobi(GMP|int|string $num1, GMP|int|string $num2): int

Computa o » Símbolo de Jacobi de num1 e num2. num2 deve ser ímpar e positivo.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Deve ser ímpar e positivo.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 Exemplo de gmp_jacobi()

<?php
echo gmp_jacobi("1", "3") . "\n";
echo gmp_jacobi("2", "3") . "\n";
?>

O exemplo acima produzirá:

1

Veja Também

  • gmp_kronecker() - Kronecker symbol
  • gmp_legendre() - Símbolo de Legendre


Kronecker symbol

  • « gmp_jacobi
  • gmp_lcm »
  • PHP Manual
  • Funções GMP
  • Kronecker symbol

gmp_kronecker

(PHP 7 >= 7.3.0, PHP 8)

gmp_kronecker — Kronecker symbol

Descrição

gmp_kronecker(GMP|int|string $num1, GMP|int|string $num2): int

This function computes the Kronecker symbol of num1 and num2.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Returns the Kronecker symbol of num1 and num2

Veja Também

  • gmp_jacobi() - Símbolo de Jacobi
  • gmp_legendre() - Símbolo de Legendre


Calculate LCM

  • « gmp_kronecker
  • gmp_legendre »
  • PHP Manual
  • Funções GMP
  • Calculate LCM

gmp_lcm

(PHP 7 >= 7.3.0, PHP 8)

gmp_lcm — Calculate LCM

Descrição

gmp_lcm(GMP|int|string $num1, GMP|int|string $num2): GMP

This function computes the least common multiple (lcm) of num1 and num2.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um objeto GMP.

Veja Também

  • gmp_gcd() - Calcula o MDC


Símbolo de Legendre

  • « gmp_lcm
  • gmp_mod »
  • PHP Manual
  • Funções GMP
  • Símbolo de Legendre

gmp_legendre

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_legendre — Símbolo de Legendre

Descrição

gmp_legendre(GMP|int|string $num1, GMP|int|string $num2): int

Computa o » Símbolo de Legendre de num1 e num2. num2 deve ser ímpar e positivo.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Precisa ser ímpar e positivo.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 Exemplo da gmp_legendre()

<?php
echo gmp_legendre("1", "3") . "\n";
echo gmp_legendre("2", "3") . "\n";
?>

O exemplo acima produzirá:

1

Veja Também

  • gmp_jacobi() - Símbolo de Jacobi
  • gmp_kronecker() - Kronecker symbol


Operação Módulo

  • « gmp_legendre
  • gmp_mul »
  • PHP Manual
  • Funções GMP
  • Operação Módulo

gmp_mod

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_mod — Operação Módulo

Descrição

gmp_mod(GMP|int|string $num1, GMP|int|string $num2): GMP

Calcula o resto da divisão de num1 por num2. O resultado é sempre não-negativo, o sinal de num2 é ignorado.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

O resto da divisão (módulo) que será calculado.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 Exemplo de gmp_mod()

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

O exemplo acima produzirá:

2


Multiplica números

  • « gmp_mod
  • gmp_neg »
  • PHP Manual
  • Funções GMP
  • Multiplica números

gmp_mul

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_mul — Multiplica números

Descrição

gmp_mul(GMP|int|string $num1, GMP|int|string $num2): GMP

Multiplica num1 por num2 e retorna o resultado.

Parâmetros

num1

Um número que será multiplicado por num2.

Um objeto GMP, um int ou uma string numérica.

num2

Um número que será multiplicado por num1.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 Exemplo da gmp_mul()

<?php
$mul = gmp_mul("12345678", "2000");
echo gmp_strval($mul) . "\n";
?>

O exemplo acima produzirá:

24691356000


Negativa o número

  • « gmp_mul
  • gmp_nextprime »
  • PHP Manual
  • Funções GMP
  • Negativa o número

gmp_neg

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_neg — Negativa o número

Descrição

gmp_neg(GMP|int|string $num): GMP

Retorna o valor negativo de um número.

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Retorna -num, como um número GMP.

Exemplos

Exemplo #1 Exemplo de gmp_neg()

<?php
$neg1 = gmp_neg("1");
echo gmp_strval($neg1) . "\n";
$neg2 = gmp_neg("-1");
echo gmp_strval($neg2) . "\n";
?>

O exemplo acima produzirá:

-1
1


Encontra o próximo número primo

  • « gmp_neg
  • gmp_or »
  • PHP Manual
  • Funções GMP
  • Encontra o próximo número primo

gmp_nextprime

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

gmp_nextprime — Encontra o próximo número primo

Descrição

gmp_nextprime(GMP|int|string $num): GMP

Encontra o próximo número primo

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Retorna o próximo número primo maior que num, como um número GMP.

Exemplos

Exemplo #1 Exemplo de gmp_nextprime()

<?php
$prime1 = gmp_nextprime(10); // o próximo número primo maior que 10
$prime2 = gmp_nextprime(-1000); // o próximo número primo maior que -1000

echo gmp_strval($prime1) . "\n";
echo gmp_strval($prime2) . "\n";
?>

O exemplo acima produzirá:

11
2

Notas

Nota:

Esta função usa um algoritmo probabilístico para identificar primos e as chances de se obter um número composto é extremamente pequena.


Operação binária OR

  • « gmp_nextprime
  • gmp_perfect_power »
  • PHP Manual
  • Funções GMP
  • Operação binária OR

gmp_or

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_or — Operação binária OR

Descrição

gmp_or(GMP|int|string $num1, GMP|int|string $num2): GMP

Faz a operação binária inclusiva OR de dois números GMP.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 Exemplo de gmp_or()

<?php
$or1 = gmp_or("0xfffffff2", "4");
echo gmp_strval($or1, 16) . "\n";
$or2 = gmp_or("0xfffffff2", "2");
echo gmp_strval($or2, 16) . "\n";
?>

O exemplo acima produzirá:

fffffff6
fffffff2


Perfect power check

  • « gmp_or
  • gmp_perfect_square »
  • PHP Manual
  • Funções GMP
  • Perfect power check

gmp_perfect_power

(PHP 7 >= 7.3.0, PHP 8)

gmp_perfect_power — Perfect power check

Descrição

gmp_perfect_power(GMP|int|string $num): bool

Checks whether num is a perfect power.

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Returns true if num is a perfect power, false otherwise.

Veja Também

  • gmp_perfect_square() - Perfect square check


Perfect square check

  • « gmp_perfect_power
  • gmp_popcount »
  • PHP Manual
  • Funções GMP
  • Perfect square check

gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_perfect_square — Perfect square check

Descrição

gmp_perfect_square(GMP|int|string $num): bool

Check if a number is a perfect square.

Parâmetros

num

The number being checked as a perfect square.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Returns true if num is a perfect square, false otherwise.

Exemplos

Exemplo #1 gmp_perfect_square() example

<?php
// 3 * 3, perfect square
var_dump(gmp_perfect_square("9"));

// not a perfect square
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, perfect square
var_dump(gmp_perfect_square("1524157875019052100"));
?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(true)

Veja Também

  • gmp_perfect_power() - Perfect power check
  • gmp_sqrt() - Calcula a raiz quadrada
  • gmp_sqrtrem() - Raiz quadrada com resto


Contagem de população

  • « gmp_perfect_square
  • gmp_pow »
  • PHP Manual
  • Funções GMP
  • Contagem de população

gmp_popcount

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_popcount — Contagem de população

Descrição

gmp_popcount(GMP|int|string $num): int

Obtém a contagem de população.

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

A contagem de população de num, como um int.

Exemplos

Exemplo #1 Exemplo de gmp_popcount()

<?php
$pop1 = gmp_init("10000101", 2); // 3 1's
echo gmp_popcount($pop1) . "\n";
$pop2 = gmp_init("11111110", 2); // 7 1's
echo gmp_popcount($pop2) . "\n";
?>

O exemplo acima produzirá:

3
7


Elevar o número a uma potência

  • « gmp_popcount
  • gmp_powm »
  • PHP Manual
  • Funções GMP
  • Elevar o número a uma potência

gmp_pow

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_pow — Elevar o número a uma potência

Descrição

gmp_pow(GMP|int|string $num, int $exponent): GMP

Eleva num à potência exponent.

Parâmetros

num

O número da base.

Um objeto GMP, um int ou uma string numérica.

exponent

A potência positiva à qual num será elevado.

Valor Retornado

O novo número (exponenciado), como um número GMP. O caso de 0^0 produz 1.

Exemplos

Exemplo #1 Exemplo gmp_pow()

<?php
$pow1 = gmp_pow("2", 31);
echo gmp_strval($pow1) . "\n";
$pow2 = gmp_pow("0", 0);
echo gmp_strval($pow2) . "\n";
$pow3 = gmp_pow("2", -1); // Expoente negativo, gera um alerta
echo gmp_strval($pow3) . "\n";
?>

O exemplo acima produzirá:

2147483648
1


Eleva um número a uma potência com módulo

  • « gmp_pow
  • gmp_prob_prime »
  • PHP Manual
  • Funções GMP
  • Eleva um número a uma potência com módulo

gmp_powm

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_powm — Eleva um número a uma potência com módulo

Descrição

gmp_powm(GMP|int|string $num, GMP|int|string $exponent, GMP|int|string $modulus): GMP

Calcula o resto da divisão de (num elevado à potência exponent) por modulus. Se exponent for negativo, o resultado é indefinido.

Parâmetros

num

O número da base.

Um objeto GMP, um int ou uma string numérica.

exponent

A potência positiva à qual num será elevado.

Um objeto GMP, um int ou uma string numérica.

modulus

O divisor para obtenção do resto (módulo).

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

O novo número (exponenciado), como um número GMP.

Exemplos

Exemplo #1 Exemplo de gmp_powm()

<?php
$pow1 = gmp_powm("2", "31", "2147483649");
echo gmp_strval($pow1) . "\n";
?>

O exemplo acima produzirá:

2147483648


Check if number is "probably prime"

  • « gmp_powm
  • gmp_random_bits »
  • PHP Manual
  • Funções GMP
  • Check if number is "probably prime"

gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_prob_prime — Check if number is "probably prime"

Descrição

gmp_prob_prime(GMP|int|string $num, int $repetitions = 10): int

The function uses Miller-Rabin's probabilistic test to check if a number is a prime.

Parâmetros

num

The number being checked as a prime.

Um objeto GMP, um int ou uma string numérica.

repetitions

Reasonable values of repetitions vary from 5 to 10 (default being 10); a higher value lowers the probability for a non-prime to pass as a "probable" prime.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

If this function returns 0, num is definitely not prime. If it returns 1, then num is "probably" prime. If it returns 2, then num is surely prime.

Exemplos

Exemplo #1 gmp_prob_prime() example

<?php
// definitely not a prime
echo gmp_prob_prime("6") . "\n";

// probably a prime
echo gmp_prob_prime("1111111111111111111") . "\n";

// definitely a prime
echo gmp_prob_prime("11") . "\n";
?>

O exemplo acima produzirá:

0
1
2


Random number

  • « gmp_prob_prime
  • gmp_random_range »
  • PHP Manual
  • Funções GMP
  • Random number

gmp_random_bits

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

gmp_random_bits — Random number

Descrição

gmp_random_bits(int $bits): GMP

Generate a random number. The number will be between 0 and 2$bits - 1.

bits must greater than 0, and the maximum value is restricted by available memory.

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Parâmetros

bits

The number of bits to generate.

Valor Retornado

A random GMP number.

Erros/Exceções

If bits is less than 1, a ValueError will be thrown.

Exemplos

Exemplo #1 gmp_random_bits() example

<?php
$rand1 = gmp_random_bits(3); // random number from 0 to 7
$rand2 = gmp_random_bits(5); // random number from 0 to 31

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

O exemplo acima produzirá:

3
15


Get a uniformly selected integer

  • « gmp_random_bits
  • gmp_random_seed »
  • PHP Manual
  • Funções GMP
  • Get a uniformly selected integer

gmp_random_range

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

gmp_random_range — Get a uniformly selected integer

Descrição

gmp_random_range(GMP|int|string $min, GMP|int|string $max): GMP

Generate a random number. The number will be between min and max.

min and max can both be negative, but min must always be less than max.

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Parâmetros

min

A GMP number representing the lower bound for the random number

max

A GMP number representing the upper bound for the random number

Valor Retornado

Returns a GMP object which contains a uniformly selected integer from the closed interval [min, max]. Both min and max are possible return values.

Erros/Exceções

If max is less than min, a ValueError will be thrown.

Exemplos

Exemplo #1 gmp_random_range() example

<?php
$rand1 = gmp_random_range(0, 100); // random number between 0 and 100
$rand2 = gmp_random_range(-100, -10); // random number between -100 and -10

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

O exemplo acima produzirá:

42
-67


Sets the RNG seed

  • « gmp_random_range
  • gmp_random »
  • PHP Manual
  • Funções GMP
  • Sets the RNG seed

gmp_random_seed

(PHP 7, PHP 8)

gmp_random_seed — Sets the RNG seed

Descrição

gmp_random_seed(GMP|int|string $seed): void

Parâmetros

seed

The seed to be set for the gmp_random(), gmp_random_bits(), and gmp_random_range() functions.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Throws a ValueError if seed is invalid.

Registro de Alterações

Versão | Descrição
8.0.0 | If seed is invalid, gmp_random_seed() now throws a ValueError. Previously it emitted an E_WARNING and returned false.

Exemplos

Exemplo #1 gmp_random_seed() example

<?php
// set the seed
gmp_random_seed(100);

var_dump(gmp_strval(gmp_random(1)));

// set the seed to something else
gmp_random_seed(gmp_init(-100));

var_dump(gmp_strval(gmp_random_bits(10)));

// set the seed to something invalid
var_dump(gmp_random_seed('not a number'));

O exemplo acima produzirá:

string(20) "15370156633245019617"
string(3) "683"

Warning: gmp_random_seed(): Unable to convert variable to GMP - string is not an integer in %s on line %d
bool(false)

Veja Também

  • gmp_init() - Create GMP number
  • gmp_random() - Random number
  • gmp_random_bits() - Random number
  • gmp_random_range() - Get a uniformly selected integer


Random number

  • « gmp_random_seed
  • gmp_root »
  • PHP Manual
  • Funções GMP
  • Random number

gmp_random

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_random — Random number

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.2.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

gmp_random(int $limiter = 20): GMP

Generate a random number. The number will be between 0 and (2 ** n) - 1, where n is the number of bits per limb multiplied by limiter. If limiter is negative, negative numbers are generated.

A limb is an internal GMP mechanism. The number of bits in a limb is not static, and can vary from system to system. Generally, the number of bits in a limb is either 32 or 64, but this is not guaranteed.

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Parâmetros

limiter

The limiter.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

A random GMP number.

Exemplos

Exemplo #1 gmp_random() example

<?php
$rand1 = gmp_random(1); // random number from 0 to 1 * bits per limb
$rand2 = gmp_random(2); // random number from 0 to 2 * bits per limb

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

O exemplo acima produzirá:

1915834968
8642564075890328087


Take the integer part of nth root

  • « gmp_random
  • gmp_rootrem »
  • PHP Manual
  • Funções GMP
  • Take the integer part of nth root

gmp_root

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

gmp_root — Take the integer part of nth root

Descrição

gmp_root(GMP|int|string $num, int $nth): GMP

Takes the nth root of num and returns the integer component of the result.

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

nth

The positive root to take of num.

Valor Retornado

The integer component of the resultant root, as a GMP number.


Take the integer part and remainder of nth root

  • « gmp_root
  • gmp_scan0 »
  • PHP Manual
  • Funções GMP
  • Take the integer part and remainder of nth root

gmp_rootrem

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

gmp_rootrem — Take the integer part and remainder of nth root

Descrição

gmp_rootrem(GMP|int|string $num, int $nth): array

Takes the nth root of num and returns the integer component and remainder of the result.

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

nth

The positive root to take of num.

Valor Retornado

A two element array, where the first element is the integer component of the root, and the second element is the remainder, both represented as GMP numbers.


Scan for 0

  • « gmp_rootrem
  • gmp_scan1 »
  • PHP Manual
  • Funções GMP
  • Scan for 0

gmp_scan0

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_scan0 — Scan for 0

Descrição

gmp_scan0(GMP|int|string $num1, int $start): int

Scans num1, starting with bit start, towards more significant bits, until the first clear bit is found.

Parâmetros

num1

The number to scan.

Um objeto GMP, um int ou uma string numérica.

start

The starting bit.

Valor Retornado

Returns the index of the found bit, as an int. The index starts from 0.

Exemplos

Exemplo #1 gmp_scan0() example

<?php
// "0" bit is found at position 3. index starts at 0
$s1 = gmp_init("10111", 2);
echo gmp_scan0($s1, 0) . "\n";

// "0" bit is found at position 7. index starts at 5
$s2 = gmp_init("101110000", 2);
echo gmp_scan0($s2, 5) . "\n";
?>

O exemplo acima produzirá:

3
7


Scan for 1

  • « gmp_scan0
  • gmp_setbit »
  • PHP Manual
  • Funções GMP
  • Scan for 1

gmp_scan1

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_scan1 — Scan for 1

Descrição

gmp_scan1(GMP|int|string $num1, int $start): int

Scans num1, starting with bit start, towards more significant bits, until the first set bit is found.

Parâmetros

num1

The number to scan.

Um objeto GMP, um int ou uma string numérica.

start

The starting bit.

Valor Retornado

Returns the index of the found bit, as an int. If no set bit is found, -1 is returned.

Exemplos

Exemplo #1 gmp_scan1() example

<?php
// "1" bit is found at position 3. index starts at 0
$s1 = gmp_init("01000", 2);
echo gmp_scan1($s1, 0) . "\n";

// "1" bit is found at position 9. index starts at 5
$s2 = gmp_init("01000001111", 2);
echo gmp_scan1($s2, 5) . "\n";
?>

O exemplo acima produzirá:

3
9


Set bit

  • « gmp_scan1
  • gmp_sign »
  • PHP Manual
  • Funções GMP
  • Set bit

gmp_setbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_setbit — Set bit

Descrição

gmp_setbit(GMP $num, int $index, bool $value = true): void

Sets bit index in num.

Parâmetros

num

A GMP object.

index

The index of the bit to set. Index 0 represents the least significant bit.

value

True to set the bit (set it to 1/on); false to clear the bit (set it to 0/off).

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 gmp_setbit() example - 0 index

<?php
$a = gmp_init("2"); //
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0); // 0b10 now becomes 0b11
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

O exemplo acima produzirá:

2 -> 0b10
3 -> 0b11

Exemplo #2 gmp_setbit() example - 1 index

<?php
$a = gmp_init("0xfd");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 1); // index starts at 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

O exemplo acima produzirá:

253 -> 0b11111101
255 -> 0b11111111

Exemplo #3 gmp_setbit() example - clearing a bit

<?php
$a = gmp_init("0xff");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0, false); // clear bit at index 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

O exemplo acima produzirá:

255 -> 0b11111111
254 -> 0b11111110

Notas

Nota:

Unlike most of the other GMP functions, gmp_setbit() must be called with a GMP object that already exists (using gmp_init() for example). One will not be automatically created.

Veja Também

  • gmp_clrbit() - Clear bit
  • gmp_testbit() - Tests if a bit is set


Sinal do número

  • « gmp_setbit
  • gmp_sqrt »
  • PHP Manual
  • Funções GMP
  • Sinal do número

gmp_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_sign — Sinal do número

Descrição

gmp_sign(GMP|int|string $num): int

Verifica o sinal de um número.

Parâmetros

num

Pode ser um objeto GMP, ou uma string numérica desde que seja possível convertê-la para um int.

Valor Retornado

Retorna 1 se num for positivo, -1 se num for negativo, e 0 se num for zero.

Exemplos

Exemplo #1 Exemplo de gmp_sign()

<?php
// positivo
echo gmp_sign("500") . "\n";

// negativo
echo gmp_sign("-500") . "\n";

// zero
echo gmp_sign("0") . "\n";
?>

O exemplo acima produzirá:

1
-1
0

Veja Também

  • gmp_abs() - Valor absoluto
  • abs() - Valor absoluto


Calcula a raiz quadrada

  • « gmp_sign
  • gmp_sqrtrem »
  • PHP Manual
  • Funções GMP
  • Calcula a raiz quadrada

gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_sqrt — Calcula a raiz quadrada

Descrição

gmp_sqrt(GMP|int|string $num): GMP

Calcula a raiz quadrada de num.

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

A parte inteira da raiz quadrada, como um número GMP.

Exemplos

Exemplo #1 Exemplo de gmp_sqrt()

<?php
$sqrt1 = gmp_sqrt("9");
$sqrt2 = gmp_sqrt("7");
$sqrt3 = gmp_sqrt("1524157875019052100");

echo gmp_strval($sqrt1) . "\n";
echo gmp_strval($sqrt2) . "\n";
echo gmp_strval($sqrt3) . "\n";
?>

O exemplo acima produzirá:

3
2
1234567890


Raiz quadrada com resto

  • « gmp_sqrt
  • gmp_strval »
  • PHP Manual
  • Funções GMP
  • Raiz quadrada com resto

gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_sqrtrem — Raiz quadrada com resto

Descrição

gmp_sqrtrem(GMP|int|string $num): array

Calcula a raiz quadrada de um número, com resto.

Parâmetros

num

O número do qual será calculada a raiz quadrada.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Retorna um array onde o primeiro elemento é a raiz quadrada inteira de num e o segundo é o resto (isto é, a diferença entre num e o quadrado do primeiro elemento).

Exemplos

Exemplo #1 Exemplo de gmp_sqrtrem()

<?php
list($sqrt1, $sqrt1rem) = gmp_sqrtrem("9");
list($sqrt2, $sqrt2rem) = gmp_sqrtrem("7");
list($sqrt3, $sqrt3rem) = gmp_sqrtrem("1048576");

echo gmp_strval($sqrt1) . ", " . gmp_strval($sqrt1rem) . "\n";
echo gmp_strval($sqrt2) . ", " . gmp_strval($sqrt2rem) . "\n";
echo gmp_strval($sqrt3) . ", " . gmp_strval($sqrt3rem) . "\n";
?>

O exemplo acima produzirá:

3, 0
2, 3
1024, 0


Converte um número GMP para uma string

  • « gmp_sqrtrem
  • gmp_sub »
  • PHP Manual
  • Funções GMP
  • Converte um número GMP para uma string

gmp_strval

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_strval — Converte um número GMP para uma string

Descrição

gmp_strval(GMP|int|string $num, int $base = 10): string

Converte o número GMP para uma representação em string na base base. A base padrão é 10.

Parâmetros

num

O número GMP que será convertido para uma string.

Um objeto GMP, um int ou uma string numérica.

base

A base do número retornado. A base padrão é 10. Valores permitidos para base são de 2 à 62 e -2 a -36.

Valor Retornado

O número, como uma string.

Exemplos

Exemplo #1 Convertendo um número GMP para uma string

<?php
$a = gmp_init("0x41682179fbf5");
printf("Decimal: %s, 36-based: %s", gmp_strval($a), gmp_strval($a,36));
?>


Subtrai números

  • « gmp_strval
  • gmp_testbit »
  • PHP Manual
  • Funções GMP
  • Subtrai números

gmp_sub

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_sub — Subtrai números

Descrição

gmp_sub(GMP|int|string $num1, GMP|int|string $num2): GMP

Subtrai num2 de num1 e retorna o resultado.

Parâmetros

num1

O minuendo.

Um objeto GMP, um int ou uma string numérica.

num2

O subtraendo, que será subtraído de num1.

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 Exemplo da gmp_sub()

<?php
$sub = gmp_sub("281474976710656", "4294967296"); // 2^48 - 2^32
echo gmp_strval($sub) . "\n";
?>

O exemplo acima produzirá:

281470681743360


Tests if a bit is set

  • « gmp_sub
  • gmp_xor »
  • PHP Manual
  • Funções GMP
  • Tests if a bit is set

gmp_testbit

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gmp_testbit — Tests if a bit is set

Descrição

gmp_testbit(GMP|int|string $num, int $index): bool

Tests if the specified bit is set.

Parâmetros

num

Um objeto GMP, um int ou uma string numérica.

index

The bit to test

Valor Retornado

Returns true if the bit is set in num, otherwise false.

Erros/Exceções

An E_WARNING level error is issued when index is less than zero, and false is returned.

Exemplos

Exemplo #1 gmp_testbit() example

<?php
$n = gmp_init("1000000");
var_dump(gmp_testbit($n, 1));
gmp_setbit($n, 1);
var_dump(gmp_testbit($n, 1));
?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • gmp_setbit() - Set bit
  • gmp_clrbit() - Clear bit


Operação binária XOR

  • « gmp_testbit
  • GMP »
  • PHP Manual
  • Funções GMP
  • Operação binária XOR

gmp_xor

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_xor — Operação binária XOR

Descrição

gmp_xor(GMP|int|string $num1, GMP|int|string $num2): GMP

Faz a operação binária exclusiva OR (XOR) de dois números GMP.

Parâmetros

num1

Um objeto GMP, um int ou uma string numérica.

num2

Um objeto GMP, um int ou uma string numérica.

Valor Retornado

Um objeto GMP.

Exemplos

Exemplo #1 Exemplo de gmp_xor()

<?php
$xor1 = gmp_init("1101101110011101", 2);
$xor2 = gmp_init("0110011001011001", 2);

$xor3 = gmp_xor($xor1, $xor2);

echo gmp_strval($xor3, 2) . "\n";
?>

O exemplo acima produzirá:

1011110111000100


A classe GMP

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

Introdução

Representa um número GMP. Este objeto suporta sobrecarga dos operadores aritméticos, binários e comparativos.

Nota:

Nenhuma interface orientada a objeto é provida para manipular objetos GMP. Para isto, favor usar a API GMP procedural.

Resumo da classe

class GMP {
/* Métodos */
public __construct(int|string $num = 0, int $base = 0)
public __serialize(): array
public __unserialize(array $data): void
}

Índice

  • GMP::__construct — Create GMP number
  • GMP::__serialize — Serializes the GMP object
  • GMP::__unserialize — Deserializes the data parameter into a GMP object


Create GMP number

  • « GMP
  • GMP::__serialize »
  • PHP Manual
  • GMP
  • Create GMP number

GMP::__construct

(PHP 8 >= 8.2.4)

GMP::__construct — Create GMP number

Descrição

public GMP::__construct(int|string $num = 0, int $base = 0)

Creates a GMP number from an integer or string.

Parâmetros

num

An integer or a string. The string representation can be decimal, hexadecimal or octal.

base

The base.

The base may vary from 2 to 62. If base is 0 (default value), the actual base is determined from the leading characters: if the first two characters are 0x or 0X, hexadecimal is assumed, if the first two characters are 0b or 0B, binary is assumed, otherwise if the first character is 0, octal is assumed, otherwise decimal is assumed. For bases up to 36, case is ignored; upper-case and lower-case letters have the same value. For bases 37 to 62, upper-case letter represent the usual 10 to 35 while lower-case letter represent 36 to 61.

Veja Também

  • gmp_init() - Create GMP number


Serializes the GMP object

  • « GMP::__construct
  • GMP::__unserialize »
  • PHP Manual
  • GMP
  • Serializes the GMP object

GMP::__serialize

(PHP 8 >= 8.1.0)

GMP::__serialize — Serializes the GMP object

Descrição

public GMP::__serialize(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Deserializes the data parameter into a GMP object

  • « GMP::__serialize
  • Math »
  • PHP Manual
  • GMP
  • Deserializes the data parameter into a GMP object

GMP::__unserialize

(PHP 8 >= 8.1.0)

GMP::__unserialize — Deserializes the data parameter into a GMP object

Descrição

public GMP::__unserialize(array $data): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

The value being deserialized.

Valor Retornado

Nenhum valor é retornado.


Funções Matemáticas

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções Matemáticas
    • abs — Valor absoluto
    • acos — Arco cosseno
    • acosh — Arco cosseno hiperbólico
    • asin — Arco seno
    • asinh — Arco seno hiperbólico
    • atan2 — Arco tangente de duas variáveis
    • atan — Arco tangente
    • atanh — Arco tangente hiperbólico
    • base_convert — Converte um número entre bases arbitrárias
    • bindec — Binário para decimal
    • ceil — Arredonda frações para cima
    • cos — Cosseno
    • cosh — Cosseno hiperbólico
    • decbin — Decimal para binário
    • dechex — Decimal para hexadecimal
    • decoct — Decimal para octal
    • deg2rad — Converte o número em graus para o equivalente em radianos
    • exp — Calcula o expoente de e
    • expm1 — Retorna exp($num) - 1, computado de forma precisa mesmo quando o valor do número está próximo de zero.
    • fdiv — Divide dois números de acordo com a IEEE 754
    • floor — Arredonda frações para baixo
    • fmod — Retorna o resto (módulo) em ponto flutuante da divisão dos argumentos
    • hexdec — Hexadecimal para decimal
    • hypot — Calcula o comprimento da hipotenusa de triângulo retângulo
    • intdiv — Divisão de inteiros
    • is_finite — Verifica se um float é finito
    • is_infinite — Verifica se um float é infinito
    • is_nan — Verifica se um float é NAN
    • log10 — Logaritmo na base 10
    • log1p — Retorna log(1 + número), calculado de forma que seja preciso mesmo quando o valor do número seja próximo de zero.
    • log — Logaritmo natural
    • max — Localiza o maior valor
    • min — Encontra o menor valor
    • octdec — Octal para decimal
    • pi — Obtém o valor de pi
    • pow — Expressão exponencial
    • rad2deg — Converte o número em radianos para o equivalente em graus
    • round — Arredonda um float
    • sin — Seno
    • sinh — Seno hiperbólico
    • sqrt — Raiz quadrada
    • tan — Tangente
    • tanh — Tangente hiperbólica


Introdução

Estas funções matemáticas lidam apenas com valores dentro dos limites dos tipos int e float. Para manipular números maiores, consulte matemática com precisão arbitrária ou funções GNU de precisão múltipla.

Veja Também

  • operadores aritméticos
  • Funções matemáticas com precisão arbitrária
  • Funções GNU de precisão múltipla


Constantes pré-definidas

As constantes abaixo estão sempre disponíveis como parte do núcleo do PHP.

Constantes matemáticas
Constante | Valor | Descrição | Disponibilidade
M_PI | 3.14159265358979323846 | Pi |
M_E | 2.7182818284590452354 | e - número neperiano |
M_LOG2E | 1.4426950408889634074 | logaritmo de e na base 2 |
M_LOG10E | 0.43429448190325182765 | logaritmo de e na base 10 |
M_LN2 | 0.69314718055994530942 | logaritmo neperiano de 2 |
M_LN10 | 2.30258509299404568402 | logaritmo neperiano de 10 |
M_PI_2 | 1.57079632679489661923 | pi/2 |
M_PI_4 | 0.78539816339744830962 | pi/4 |
M_1_PI | 0.31830988618379067154 | 1/pi |
M_2_PI | 0.63661977236758134308 | 2/pi |
M_SQRTPI | 1.77245385090551602729 | raiz(pi) |
M_2_SQRTPI | 1.12837916709551257390 | 2/raiz(pi) |
M_SQRT2 | 1.41421356237309504880 | raiz(2) |
M_SQRT3 | 1.73205080756887729352 | raiz(3) |
M_SQRT1_2 | 0.70710678118654752440 | 1/raiz(2) |
M_LNPI | 1.14472988584940017414 | logaritmo neperiano de pi |
M_EULER | 0.57721566490153286061 | Constante de Euler |
PHP_ROUND_HALF_UP | 1 | Arredonda 0.5 para cima |
PHP_ROUND_HALF_DOWN | 2 | Arredonte 0.5 para baixo |
PHP_ROUND_HALF_EVEN | 3 | Arredonda 0.5 para números pares |
PHP_ROUND_HALF_ODD | 4 | Arredonda 0.5 para números ímpares |
NAN | NAN (como um float) | Not A Number - um não-número |
INF | INF (como um float) | Infinito |


Funções Matemáticas

Índice

  • abs — Valor absoluto
  • acos — Arco cosseno
  • acosh — Arco cosseno hiperbólico
  • asin — Arco seno
  • asinh — Arco seno hiperbólico
  • atan2 — Arco tangente de duas variáveis
  • atan — Arco tangente
  • atanh — Arco tangente hiperbólico
  • base_convert — Converte um número entre bases arbitrárias
  • bindec — Binário para decimal
  • ceil — Arredonda frações para cima
  • cos — Cosseno
  • cosh — Cosseno hiperbólico
  • decbin — Decimal para binário
  • dechex — Decimal para hexadecimal
  • decoct — Decimal para octal
  • deg2rad — Converte o número em graus para o equivalente em radianos
  • exp — Calcula o expoente de e
  • expm1 — Retorna exp($num) - 1, computado de forma precisa mesmo quando o valor do número está próximo de zero.
  • fdiv — Divide dois números de acordo com a IEEE 754
  • floor — Arredonda frações para baixo
  • fmod — Retorna o resto (módulo) em ponto flutuante da divisão dos argumentos
  • hexdec — Hexadecimal para decimal
  • hypot — Calcula o comprimento da hipotenusa de triângulo retângulo
  • intdiv — Divisão de inteiros
  • is_finite — Verifica se um float é finito
  • is_infinite — Verifica se um float é infinito
  • is_nan — Verifica se um float é NAN
  • log10 — Logaritmo na base 10
  • log1p — Retorna log(1 + número), calculado de forma que seja preciso mesmo quando o valor do número seja próximo de zero.
  • log — Logaritmo natural
  • max — Localiza o maior valor
  • min — Encontra o menor valor
  • octdec — Octal para decimal
  • pi — Obtém o valor de pi
  • pow — Expressão exponencial
  • rad2deg — Converte o número em radianos para o equivalente em graus
  • round — Arredonda um float
  • sin — Seno
  • sinh — Seno hiperbólico
  • sqrt — Raiz quadrada
  • tan — Tangente
  • tanh — Tangente hiperbólica


Valor absoluto

  • « Funções Matemáticas
  • acos »
  • PHP Manual
  • Funções Matemáticas
  • Valor absoluto

abs

(PHP 4, PHP 5, PHP 7, PHP 8)

abs — Valor absoluto

Descrição

abs(int|float $num): int|float

Retorna o valor absoluto de num.

Parâmetros

num

O valor numérico a processar

Valor Retornado

O valor absoluto de num. Se o argumento num for do tipo float, o número retornado também será float, caso contrário será int (pois float normalmente tem uma faixa de valores maior que int).

Registro de Alterações

Versão | Descrição
8.0.0 | num não aceita mais objetos internos que suportem conversão numérica.

Exemplos

Exemplo #1 Exemplo de abs()

<?php
var_dump(abs(-4.2));
var_dump(abs(5));
var_dump(abs(-5));
?>

O exemplo acima produzirá:

float(4.2)
int(5)
int(5)

Veja Também

  • gmp_abs() - Valor absoluto
  • gmp_sign() - Sinal do número


Arco cosseno

  • « abs
  • acosh »
  • PHP Manual
  • Funções Matemáticas
  • Arco cosseno

acos

(PHP 4, PHP 5, PHP 7, PHP 8)

acos — Arco cosseno

Descrição

acos(float $num): float

Retorna o arco cosseno de num em radianos. acos() é a função inversa de cos(), o que significa que $num == cos(acos($num)) para qualquer valor de num que esteja no domínio de acos().

Parâmetros

num

O argumento a processar

Valor Retornado

O arco cosseno de num em radianos.

Veja Também

  • cos() - Cosseno
  • acosh() - Arco cosseno hiperbólico
  • asin() - Arco seno
  • atan() - Arco tangente


Arco cosseno hiperbólico

  • « acos
  • asin »
  • PHP Manual
  • Funções Matemáticas
  • Arco cosseno hiperbólico

acosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

acosh — Arco cosseno hiperbólico

Descrição

acosh(float $num): float

Retorna o arco cosseno hiperbólico de num, isto é, o valor cujo cosseno hiperbólico é num.

Parâmetros

num

O valor a processar

Valor Retornado

O arco cosseno hiperbólico de num

Veja Também

  • cosh() - Cosseno hiperbólico
  • acos() - Arco cosseno
  • asinh() - Arco seno hiperbólico
  • atanh() - Arco tangente hiperbólico


Arco seno

  • « acosh
  • asinh »
  • PHP Manual
  • Funções Matemáticas
  • Arco seno

asin

(PHP 4, PHP 5, PHP 7, PHP 8)

asin — Arco seno

Descrição

asin(float $num): float

Retorna o arco seno de num em radianos. asin() é a função inversa da função sin(), o que significa que $num == sin(asin($num)) para qualquer valor de num que esteja no domínio da função asin().

Parâmetros

num

O argumento a processar

Valor Retornado

O arco seno de num em radianos

Veja Também

  • sin() - Seno
  • asinh() - Arco seno hiperbólico
  • acos() - Arco cosseno
  • atan() - Arco tangente


Arco seno hiperbólico

  • « asin
  • atan2 »
  • PHP Manual
  • Funções Matemáticas
  • Arco seno hiperbólico

asinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

asinh — Arco seno hiperbólico

Descrição

asinh(float $num): float

Retorna o arco seno hiperbólico de num, isto é, o valor cujo seno hiperbólico é num.

Parâmetros

num

O argumento a processar

Valor Retornado

O arco seno hiperbólico de num

Veja Também

  • sinh() - Seno hiperbólico
  • asin() - Arco seno
  • acosh() - Arco cosseno hiperbólico
  • atanh() - Arco tangente hiperbólico


Arco tangente de duas variáveis

  • « asinh
  • atan »
  • PHP Manual
  • Funções Matemáticas
  • Arco tangente de duas variáveis

atan2

(PHP 4, PHP 5, PHP 7, PHP 8)

atan2 — Arco tangente de duas variáveis

Descrição

atan2(float $y, float $x): float

Esta função calcula o arco tangente das duas variaveis x e y. É similar a calcular o arco tangente de y / x, exceto que os sinais de ambos os argumentos são usados para determinar o quadrante do resultado.

Esta função retorna o resultado em radianos entre -PI e PI (inclusive).

Parâmetros

y

Dividendo

x

Divisor

Valor Retornado

O arco tangente de y/x em radianos.

Veja Também

  • atan() - Arco tangente


Arco tangente

  • « atan2
  • atanh »
  • PHP Manual
  • Funções Matemáticas
  • Arco tangente

atan

(PHP 4, PHP 5, PHP 7, PHP 8)

atan — Arco tangente

Descrição

atan(float $num): float

Retorna o arco tangente de num em radianos. atan() é a função inversa da função tan(), o que significa que $num == tan(atan($num)) para qualquer valor de num que esteja no domínio de atan().

Parâmetros

num

O argumento a processar

Valor Retornado

O arco tangente de num em radianos.

Veja Também

  • tan() - Tangente
  • atanh() - Arco tangente hiperbólico
  • asin() - Arco seno
  • acos() - Arco cosseno


Arco tangente hiperbólico

  • « atan
  • base_convert »
  • PHP Manual
  • Funções Matemáticas
  • Arco tangente hiperbólico

atanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

atanh — Arco tangente hiperbólico

Descrição

atanh(float $num): float

Retorna o arco tangente hiperbólico de num, isto é, o valor cuja tangente hiperbólica é num.

Parâmetros

num

O argumento a processar

Valor Retornado

O arco tangente hiperbólico de num

Veja Também

  • tanh() - Tangente hiperbólica
  • atan() - Arco tangente
  • asinh() - Arco seno hiperbólico
  • acosh() - Arco cosseno hiperbólico


Converte um número entre bases arbitrárias

  • « atanh
  • bindec »
  • PHP Manual
  • Funções Matemáticas
  • Converte um número entre bases arbitrárias

base_convert

(PHP 4, PHP 5, PHP 7, PHP 8)

base_convert — Converte um número entre bases arbitrárias

Descrição

base_convert(string $num, int $from_base, int $to_base): string

Retorna uma string contendo num representado na base to_base. A base na qual num é informada está especificada em from_base. Tanto from_base quanto to_base devem estar entre 2 e 36, inclusive. Dígitos em números com uma base maior do que 10 serão representados com letras a-z, com 'a' significando 10, 'b' significando 11 e 'z' significando 35. A forma das letras não importa, ou seja num é interpretado sem sensibilidade a maiúsculas/minúsculas.

Aviso

base_convert() pode perder precisão com números grandes devido a propriedade relacionadaa ao o tipo interno de float usado. Consulte a seção Números de ponto flutuante no manual para mais informações e limitações específicas.

Parâmetros

num

O número a ser convertido. Quaisquer caracteres inválidos em num serão ignorados silenciosamente. A partir do PHP 7.4.0, informar caracteres inválidos está defasado.

from_base

A base em que num está

to_base

A base para a qual deve-se converter num

Valor Retornado

num convertido para a base to_base

Registro de Alterações

Versão | Descrição
7.4.0 | Passar caracteres inválidos agora gerará uma nota de defasagem. O resultado ainda é calculado como se os caracteres inválidos não existissem.

Exemplos

Exemplo #1 Exemplo de base_convert()

<?php
$hexadecimal = 'a37334';
echo base_convert($hexadecimal, 16, 2);
?>

O exemplo acima produzirá:

101000110111001100110100

Veja Também

  • intval() - Obtém o valor em número inteiro de uma variável


Binário para decimal

  • « base_convert
  • ceil »
  • PHP Manual
  • Funções Matemáticas
  • Binário para decimal

bindec

(PHP 4, PHP 5, PHP 7, PHP 8)

bindec — Binário para decimal

Descrição

bindec(string $binary_string): int|float

Retorna o equivalente decimal do número binário representado pelo argumento binary_string.

bindec() converte um número binário em um int ou, se necessário por questão de tamanho, um float.

bindec() interpreta todos os valores de binary_string como inteiros sem sinal. Isto é devido a bindec() enxergar o bit mais significativo como uma outra ordem de magnitude e não como um bit de sinal.

Parâmetros

binary_string

A string binária a converter. Quaisquer caracteres inválidos em binary_string são silenciosamente ignorados. A partir do PHP 7.4.0, fornecer qualquer caractere inválido está defasado.

Aviso

O parâmetro deve ser uma string. Usar outros tipos de dados produzirá resultados inesperados.

Valor Retornado

O valor decimal de binary_string

Registro de Alterações

Versão | Descrição
7.4.0 | Passar caracteres inválidos agora irá gerar uma nota de defasagem. O resultado ainda será computado como se os caracteres inválidos não existissem.

Exemplos

Exemplo #1 Exemplo de bindec()

<?php
echo bindec('110011') . "\n";
echo bindec('000110011') . "\n";

echo bindec('111');
?>

O exemplo acima produzirá:

51
51
7

Exemplo #2 bindec() interpreta a entrada como inteiros sem sinal

<?php
/*
* A lição deste exemplo está na saída
* e não no código do PHP em si.
*/

$magnitude_lower = pow(2, (PHP_INT_SIZE * 8) - 2);
p($magnitude_lower - 1);
p($magnitude_lower, 'Percebeu a rolagem? Veja da próxima vez...');

p(PHP_INT_MAX, 'PHP_INT_MAX');
p(~PHP_INT_MAX, 'interpretado como um a mais que PHP_INT_MAX');

if (PHP_INT_SIZE == 4) {
$note = 'interpretado como o maior inteiro sem sinal';
} else {
$note = 'interpretado como o maior inteiro sem sinal
(18446744073709551615) porém distorcido pela precisão de float';
}
p(-1, $note);

function p($input, $note = '') {
echo "entrada: $input\n";

$format = '%0' . (PHP_INT_SIZE * 8) . 'b';
$bin = sprintf($format, $input);
echo "binário: $bin\n";

ini_set('precision', 20); // Para legibilidade em máquinas 64 bits.
$dec = bindec($bin);
echo 'bindec(): ' . $dec . "\n";

if ($note) {
echo "NOTA: $note\n";
}

echo "\n";
}
?>

Saída do exemplo acima em máquinas de 32 bits:

input:        1073741823
binary:       00111111111111111111111111111111
bindec():     1073741823

input:        1073741824
binary:       01000000000000000000000000000000
bindec():     1073741824
NOTE:         Percebeu a rolagem?  Veja da próxima vez...

input:        2147483647
binary:       01111111111111111111111111111111
bindec():     2147483647
NOTE:         PHP_INT_MAX

input:        -2147483648
binary:       10000000000000000000000000000000
bindec():     2147483648
NOTE:         interpretado como um a mais que PHP_INT_MAX

input:        -1
binary:       11111111111111111111111111111111
bindec():     4294967295
NOTE:         interpretado como o maior inteiro sem sinal

Saída do exemplo acima em máquinas de 64 bits:

input:        4611686018427387903
binary:       0011111111111111111111111111111111111111111111111111111111111111
bindec():     4611686018427387903

input:        4611686018427387904
binary:       0100000000000000000000000000000000000000000000000000000000000000
bindec():     4611686018427387904
NOTE:         Percebeu a rolagem?  Veja da próxima vez...

input:        9223372036854775807
binary:       0111111111111111111111111111111111111111111111111111111111111111
bindec():     9223372036854775807
NOTE:         PHP_INT_MAX

input:        -9223372036854775808
binary:       1000000000000000000000000000000000000000000000000000000000000000
bindec():     9223372036854775808
NOTE:         interpretado como um a mais que PHP_INT_MAX

input:        -1
binary:       1111111111111111111111111111111111111111111111111111111111111111
bindec():     18446744073709551616
NOTE:         interpretado como o maior inteiro sem sinal
              (18446744073709551615) porém distorcido pela precisão de float

Notas

Nota:

A função pode converter números que são grandes demais para caber no tipo int da plataforma, valores maiores são retornados como float neste caso.

Veja Também

  • decbin() - Decimal para binário
  • octdec() - Octal para decimal
  • hexdec() - Hexadecimal para decimal
  • base_convert() - Converte um número entre bases arbitrárias


Arredonda frações para cima

  • « bindec
  • cos »
  • PHP Manual
  • Funções Matemáticas
  • Arredonda frações para cima

ceil

(PHP 4, PHP 5, PHP 7, PHP 8)

ceil — Arredonda frações para cima

Descrição

ceil(int|float $num): float

Retorna o próximo maior valor inteiro arredondando-se num para cima, se necessário.

Parâmetros

num

O valor a ser arredondado

Valor Retornado

num arredondado pra o próximo inteiro. O valor retornado de ceil() ainda será do tipo float porque a faixa de valores suportados por float é normalmente maior do que o do tipo int.

Registro de Alterações

Versão | Descrição
8.0.0 | num não mais aceita objetos internos que suportam conversão numérica.

Exemplos

Exemplo #1 Exemplo de ceil()

<?php
echo ceil(4.3); // 5
echo ceil(9.999); // 10
echo ceil(-3.14); // -3
?>

Veja Também

  • floor() - Arredonda frações para baixo
  • round() - Arredonda um float


Cosseno

  • « ceil
  • cosh »
  • PHP Manual
  • Funções Matemáticas
  • Cosseno

cos

(PHP 4, PHP 5, PHP 7, PHP 8)

cos — Cosseno

Descrição

cos(float $num): float

cos() retorna o cosseno do parâmetro num. O parâmetro num deve estar em radianos.

Parâmetros

num

Um ângulo em radianos

Valor Retornado

O cosseno de num

Exemplos

Exemplo #1 Exemplo de cos()

<?php

echo cos(M_PI); // -1

?>

Veja Também

  • acos() - Arco cosseno
  • sin() - Seno
  • tan() - Tangente
  • deg2rad() - Converte o número em graus para o equivalente em radianos


Cosseno hiperbólico

  • « cos
  • decbin »
  • PHP Manual
  • Funções Matemáticas
  • Cosseno hiperbólico

cosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cosh — Cosseno hiperbólico

Descrição

cosh(float $num): float

Retorna o cosseno hiperbólico de num, definido por (exp($num) + exp(-$num))/2.

Parâmetros

num

O argumento a processar

Valor Retornado

O cosseno hiperbólico de num

Veja Também

  • cos() - Cosseno
  • acosh() - Arco cosseno hiperbólico
  • sinh() - Seno hiperbólico
  • tanh() - Tangente hiperbólica


Decimal para binário

  • « cosh
  • dechex »
  • PHP Manual
  • Funções Matemáticas
  • Decimal para binário

decbin

(PHP 4, PHP 5, PHP 7, PHP 8)

decbin — Decimal para binário

Descrição

decbin(int $num): string

Retorna uma string contendo uma representação binária do argumento num informado.

Parâmetros

num

Valor decimal a ser convertido

Limites de entrada em máquinas de 32 bits
num positivo | num negativo | valor de retorno
0 | 0
1 | 1
2 | 10
... progressão normal ...
2147483646 | 1111111111111111111111111111110
2147483647 (maior inteiro com sinal) | 1111111111111111111111111111111 (31 números 1)
2147483648 | -2147483648 | 10000000000000000000000000000000
... progressão normal ...
4294967294 | -2 | 11111111111111111111111111111110
4294967295 (maior inteiro sem sinal) | -1 | 11111111111111111111111111111111 (32 números 1)
Limites de entrada em máquinas de 64 bits
num positivo | num negativo | valor de retorno
0 | 0
1 | 1
2 | 10
... progressão normal ...
9223372036854775806 | 111111111111111111111111111111111111111111111111111111111111110
9223372036854775807 (maior inteiro com sinal) | 111111111111111111111111111111111111111111111111111111111111111 (63 números 1)
-9223372036854775808 | 1000000000000000000000000000000000000000000000000000000000000000
... progressão normal ...
-2 | 1111111111111111111111111111111111111111111111111111111111111110
-1 | 1111111111111111111111111111111111111111111111111111111111111111 (64 números 1)

Valor Retornado

Representação de num em string binária.

Exemplos

Exemplo #1 Exemplo de decbin()

<?php
echo decbin(12) . "\n";
echo decbin(26);
?>

O exemplo acima produzirá:

1100
11010

Veja Também

  • bindec() - Binário para decimal
  • decoct() - Decimal para octal
  • dechex() - Decimal para hexadecimal
  • base_convert() - Converte um número entre bases arbitrárias
  • printf() - Output a formatted string, usando %b, %032b ou %064b como formato
  • sprintf() - Return a formatted string, usando %b, %032b ou %064b como formato


Decimal para hexadecimal

  • « decbin
  • decoct »
  • PHP Manual
  • Funções Matemáticas
  • Decimal para hexadecimal

dechex

(PHP 4, PHP 5, PHP 7, PHP 8)

dechex — Decimal para hexadecimal

Descrição

dechex(int $num): string

Retorna uma string contendo uma representação hexadecimal do argumento sem sinal num fornecido.

O maior número que pode ser convertido é PHP_INT_MAX * 2 + 1 (ou -1): em plataformas de 32 bits, será 4294967295 em decimal, que resulta em dechex() retornando ffffffff.

Parâmetros

num

O valor decimal a ser convertido

Como o tipo int do PHP tem sinal, mas dechex() lida com inteiros sem sinal, inteiros negativos serão tratados como se fossem sem sinal.

Valor Retornado

Representação de num em string hexadecimal.

Exemplos

Exemplo #1 Exemplo de dechex()

<?php
echo dechex(10) . "\n";
echo dechex(47);
?>

O exemplo acima produzirá:

a
2f

Exemplo #2 Exemplo de dechex() com inteiros grandes

<?php
// A saída abaixo assume uma plataforma de 32 bits.
// Note que a saída é a mesma para todos os valores.
echo dechex(-1)."\n";
echo dechex(PHP_INT_MAX * 2 + 1)."\n";
echo dechex(pow(2, 32) - 1)."\n";
?>

O exemplo acima produzirá:

ffffffff
ffffffff
ffffffff

Veja Também

  • hexdec() - Hexadecimal para decimal
  • decbin() - Decimal para binário
  • decoct() - Decimal para octal
  • base_convert() - Converte um número entre bases arbitrárias


Decimal para octal

  • « dechex
  • deg2rad »
  • PHP Manual
  • Funções Matemáticas
  • Decimal para octal

decoct

(PHP 4, PHP 5, PHP 7, PHP 8)

decoct — Decimal para octal

Descrição

decoct(int $num): string

Retorna uma string contendo uma representação octal do argumento num fornecido. O maior número que pode ser convertido depende da plataforma em uso. Para plataformas de 32 bits é normalmente 4294967295 em decimal, resultando em 37777777777. Para plataformas de 64 bits é normalmente 9223372036854775807 em decimal resultando em 777777777777777777777.

Parâmetros

num

Valor decimal a ser convertido

Valor Retornado

Representação de num em string octal.

Exemplos

Exemplo #1 Exemplo de decoct()

<?php
echo decoct(15) . "\n";
echo decoct(264);
?>

O exemplo acima produzirá:

17
410

Veja Também

  • octdec() - Octal para decimal
  • decbin() - Decimal para binário
  • dechex() - Decimal para hexadecimal
  • base_convert() - Converte um número entre bases arbitrárias


Converte o número em graus para o equivalente em radianos

  • « decoct
  • exp »
  • PHP Manual
  • Funções Matemáticas
  • Converte o número em graus para o equivalente em radianos

deg2rad

(PHP 4, PHP 5, PHP 7, PHP 8)

deg2rad — Converte o número em graus para o equivalente em radianos

Descrição

deg2rad(float $num): float

Esta função converte num de graus para o equivalente em radianos.

Parâmetros

num

Valor do ângulo em graus

Valor Retornado

O radiano equivalente ao num

Exemplos

Exemplo #1 Exemplo de deg2rad()

<?php

echo deg2rad(45); // 0.785398163397
var_dump(deg2rad(45) === M_PI_4); // bool(true)

?>

Veja Também

  • rad2deg() - Converte o número em radianos para o equivalente em graus


Calcula o expoente de e

  • « deg2rad
  • expm1 »
  • PHP Manual
  • Funções Matemáticas
  • Calcula o expoente de e

exp

(PHP 4, PHP 5, PHP 7, PHP 8)

exp — Calcula o expoente de e

Descrição

exp(float $num): float

Retorna e elevada à potência de num.

Nota:

'e' é a base do sistema natural de logaritmos, ou aproximadamente 2.718282.

Parâmetros

num

O argumento a ser processado

Valor Retornado

'e' elevado à potência de num

Exemplos

Exemplo #1 Exemplo de exp()

<?php
echo exp(12) . "\n";
echo exp(5.7);
?>

O exemplo acima produzirá:

1.6275E+005
298.87

Veja Também

  • log() - Logaritmo natural
  • pow() - Expressão exponencial


Retorna exp($num) - 1, computado de forma precisa mesmo quando o valor do número está próximo de zero.

  • « exp
  • fdiv »
  • PHP Manual
  • Funções Matemáticas
  • Retorna exp($num) - 1, computado de forma precisa mesmo quando o valor do número está próximo de zero.

expm1

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

expm1 — Retorna exp($num) - 1, computado de forma precisa mesmo quando o valor do número está próximo de zero.

Descrição

expm1(float $num): float

expm1() retorna o equivalente a exp($num) - 1 computado de forma precisa mesmo se o valor de num for próximo de zero, que é um caso onde exp($num) - 1 poderia ser impreciso devido à subtração de dois números quase iguais.

Parâmetros

num

O argumento a ser processado

Valor Retornado

e elevado à potência de num menos um.

Veja Também

  • log1p() - Retorna log(1 + número), calculado de forma que seja preciso mesmo quando o valor do número seja próximo de zero.
  • exp() - Calcula o expoente de e


Divide dois números de acordo com a IEEE 754

  • « expm1
  • floor »
  • PHP Manual
  • Funções Matemáticas
  • Divide dois números de acordo com a IEEE 754

fdiv

(PHP 8)

fdiv — Divide dois números de acordo com a IEEE 754

Descrição

fdiv(float $num1, float $num2): float

Retorna o resultado em ponto flutuante da divisão de num1 por num2. Se num2 for zero, um dos valores INF, -INF ou NAN será retornado.

Note que em comparações, NAN nunca será == ou === a nenhum valor, incluindo a si mesmo.

Parâmetros

num1

O dividendo (numerador)

num2

O divisor

Valor Retornado

O resultado em ponto flutuante de num1/num2

Exemplos

Exemplo #1 Usando fdiv()

<?php
var_dump(fdiv(5.7, 1.3)); // float(4.384615384615385)
var_dump(fdiv(4, 2)); // float(2)
var_dump(fdiv(1.0, 0.0)); // float(INF)
var_dump(fdiv(-1.0, 0.0)); // float(-INF)
var_dump(fdiv(0.0, 0.0)); // float(NAN)
?>

Veja Também

  • / - Divisão com ponto flutuante
  • intdiv() - Divisão de inteiros - Divisão de inteiros
  • fmod() - Retorna o resto (módulo) em ponto flutuante da divisão dos argumentos - Módulo


Arredonda frações para baixo

  • « fdiv
  • fmod »
  • PHP Manual
  • Funções Matemáticas
  • Arredonda frações para baixo

floor

(PHP 4, PHP 5, PHP 7, PHP 8)

floor — Arredonda frações para baixo

Descrição

floor(int|float $num): float

Retorna o próximo menor valor inteiro (como float), arredondando num para baixo, se necessário.

Parâmetros

num

O valor numérico a ser arredondado

Valor Retornado

num arredondado para o inteiro menor mais próximo. O valor retornado por floor() ainda será do tipo float.

Registro de Alterações

Versão | Descrição
8.0.0 | num não mais aceita tipos internos que suportam conversão numérica.

Exemplos

Exemplo #1 Exemplos de floor()

<?php
echo floor(4.3); // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
?>

Veja Também

  • ceil() - Arredonda frações para cima
  • round() - Arredonda um float


Retorna o resto (módulo) em ponto flutuante da divisão dos argumentos

  • « floor
  • hexdec »
  • PHP Manual
  • Funções Matemáticas
  • Retorna o resto (módulo) em ponto flutuante da divisão dos argumentos

fmod

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

fmod — Retorna o resto (módulo) em ponto flutuante da divisão dos argumentos

Descrição

fmod(float $num1, float $num2): float

Retorna o resto em ponto flutuante da divisão do dividendo (num1) pelo divisor (num2). O resto (r) é definido como: num1 = i * num2 + r, para algum inteiro i. Se o num2 for diferente de zero, r terá o mesmo sinal de num1 e uma magnitude menor que a magnitude de num2.

Parâmetros

num1

O dividendo

num2

O divisor

Valor Retornado

O resto em ponto flutuante de num1/num2

Exemplos

Exemplo #1 Usando fmod()

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r é igual a 0.5, porque 4 * 1.3 + 0.5 = 5.7
?>

Veja Também

  • / - Divisão de ponto flutuante
  • % - Módulo de inteiros
  • intdiv() - Divisão de inteiros - Divisão de inteiros


Hexadecimal para decimal

  • « fmod
  • hypot »
  • PHP Manual
  • Funções Matemáticas
  • Hexadecimal para decimal

hexdec

(PHP 4, PHP 5, PHP 7, PHP 8)

hexdec — Hexadecimal para decimal

Descrição

hexdec(string $hex_string): int|float

Retorna o equivalente em decimal do número hexadecimal representado pelo argumento hex_string. hexdec() converte uma string hexadecimal para um número decimal.

hexdec() irá ignorar qualquer caractere não hexadecimal que encontrar. A partir do PHP 7.4.0 fornecer caracteres inválidos está defasado.

Parâmetros

hex_string

A string hexadecimal a ser convertida

Valor Retornado

A representação decimal de hex_string

Registro de Alterações

Versão | Descrição
7.4.0 | Passar caracteres inválidos agora irá gerar uma nota de defasagem. O resultado ainda será computado como se os caracteres inválidos não existissem.

Exemplos

Exemplo #1 Exemplo de hexdec()

<?php
var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// ambos mostram "int(238)"

var_dump(hexdec("that")); // mostra "int(10)"
var_dump(hexdec("a0")); // mostra "int(160)"
?>

Notas

Nota:

A função pode converter números que são longos demais para caber nos tipos int das plataformas, valores maiores são retornados como float neste caso.

Veja Também

  • dechex() - Decimal para hexadecimal
  • bindec() - Binário para decimal
  • octdec() - Octal para decimal
  • base_convert() - Converte um número entre bases arbitrárias


Calcula o comprimento da hipotenusa de triângulo retângulo

  • « hexdec
  • intdiv »
  • PHP Manual
  • Funções Matemáticas
  • Calcula o comprimento da hipotenusa de triângulo retângulo

hypot

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

hypot — Calcula o comprimento da hipotenusa de triângulo retângulo

Descrição

hypot(float $x, float $y): float

hypot() retorna o comprimento da hipotenusa de um triângulo retângulo com lados de tamanho x e y, ou a distância do ponto (x, y) a partir da origem. É o equivalente a sqrt($x*$x + $y*$y).

Parâmetros

x

Comprimento do primeiro lado

y

Comprimento do segundo lado

Valor Retornado

Comprimento calculado da hipotenusa


Divisão de inteiros

  • « hypot
  • is_finite »
  • PHP Manual
  • Funções Matemáticas
  • Divisão de inteiros

intdiv

(PHP 7, PHP 8)

intdiv — Divisão de inteiros

Descrição

intdiv(int $num1, int $num2): int

Retorna o quociente inteiro da divisão de num1 por num2.

Parâmetros

num1

Número a ser dividido.

num2

Número que divide o num1.

Valor Retornado

O quociente inteiro da divisão de num1 por num2.

Erros/Exceções

Se num2 for 0, uma exceção DivisionByZeroError é lançada. Se num1 for PHP_INT_MIN e num2 for -1, então uma exceção ArithmeticError é lançada.

Exemplos

Exemplo #1 Exemplo de intdiv()

<?php
var_dump(intdiv(3, 2));
var_dump(intdiv(-3, 2));
var_dump(intdiv(3, -2));
var_dump(intdiv(-3, -2));
var_dump(intdiv(PHP_INT_MAX, PHP_INT_MAX));
var_dump(intdiv(PHP_INT_MIN, PHP_INT_MIN));
var_dump(intdiv(PHP_INT_MIN, -1));
var_dump(intdiv(1, 0));
?>
int(1)
int(-1)
int(-1)
int(1)
int(1)
int(1)

Fatal error: Uncaught ArithmeticError: Division of PHP_INT_MIN by -1 is not an integer in %s on line 8
Fatal error: Uncaught DivisionByZeroError: Division by zero in %s on line 9

Veja Também

  • / - Divisão de ponto flutuante
  • % - Módulo de inteiros
  • fmod() - Retorna o resto (módulo) em ponto flutuante da divisão dos argumentos - Módulo em ponto flutuante


Verifica se um float é finito

  • « intdiv
  • is_infinite »
  • PHP Manual
  • Funções Matemáticas
  • Verifica se um float é finito

is_finite

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_finite — Verifica se um float é finito

Descrição

is_finite(float $num): bool

Retorna informando se num é um float finito.

Um float finito não é NAN (is_nan()), nem um infinito (is_infinite()).

Parâmetros

num

O float a ser verificado

Valor Retornado

true se num não for NAN, INF nem -INF, caso contrário retorna false.

Exemplos

Exemplo #1 Exemplo de is_finite()

<?php
$float = 1.2345;
var_dump($float, is_finite($float));

$nan = sqrt(-1);
var_dump($nan, is_finite($nan));

$inf = 1e308 * 2;
var_dump($inf, is_finite($inf));
?>

O exemplo acima produzirá:

float(1.2345)
bool(true)
float(NAN)
bool(false)
float(INF)
bool(false)

Veja Também

  • is_infinite() - Verifica se um float é infinito
  • is_nan() - Verifica se um float é NAN


Verifica se um float é infinito

  • « is_finite
  • is_nan »
  • PHP Manual
  • Funções Matemáticas
  • Verifica se um float é infinito

is_infinite

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_infinite — Verifica se um float é infinito

Descrição

is_infinite(float $num): bool

Retorna informando se num é INF ou -INF.

Parâmetros

num

O float a ser verificado

Valor Retornado

true se num for INF ou -INF, senão retorna false.

Exemplos

Exemplo #1 Exemplo de is_infinite()

<?php
$inf = 1e308 * 2;

var_dump($inf, is_infinite($inf));

$negative_inf = -$inf;

var_dump($negative_inf, is_infinite($negative_inf));
?>

O exemplo acima produzirá:

float(INF)
bool(true)
float(-INF)
bool(true)

Veja Também

  • is_finite() - Verifica se um float é finito
  • is_nan() - Verifica se um float é NAN


Verifica se um float é NAN

  • « is_infinite
  • log10 »
  • PHP Manual
  • Funções Matemáticas
  • Verifica se um float é NAN

is_nan

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_nan — Verifica se um float é NAN

Descrição

is_nan(float $num): bool

Retorna indicando se o num é um NAN (Not A Number).

NAN é retornado de operações matemáticas que são indefinidas, por exemplo ao passar parâmetros fora do domínio de entrada da função. A raiz quadrada (sqrt()) só é definida para números positivos, e informar um número negativo resultará em NAN. Outros exemplos de operações que retornam NAN são a divisão de INF por INF e operações que envolvam um valor NAN existente.

Nota:

Apesar do nome Not A Number, NAN é um valor válido do tipo float.

Cuidado

NAN não se compara em igualdade a NAN. Para verificar se um float é NAN, is_nan() deve ser utilizado. Usar $float === NAN não funcionará.

Parâmetros

num

O float a ser verificado

Valor Retornado

true se num for NAN, senão retorna false.

Exemplos

Exemplo #1 Exemplo de is_nan()

<?php
$nan = sqrt(-1);

var_dump($nan, is_nan($nan));
?>

O exemplo acima produzirá:

float(NAN)
bool(true)

Veja Também

  • is_finite() - Verifica se um float é finito
  • is_infinite() - Verifica se um float é infinito


Logaritmo na base 10

  • « is_nan
  • log1p »
  • PHP Manual
  • Funções Matemáticas
  • Logaritmo na base 10

log10

(PHP 4, PHP 5, PHP 7, PHP 8)

log10 — Logaritmo na base 10

Descrição

log10(float $num): float

Retorna o logaritmo na base 10 de num.

Parâmetros

num

O argumento a ser processado

Valor Retornado

O logaritmo na base 10 de num

Veja Também

  • log() - Logaritmo natural


Retorna log(1 + número), calculado de forma que seja preciso mesmo quando o valor do número seja próximo de zero.

  • « log10
  • log »
  • PHP Manual
  • Funções Matemáticas
  • Retorna log(1 + número), calculado de forma que seja preciso mesmo quando o valor do número seja próximo de zero.

log1p

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

log1p — Retorna log(1 + número), calculado de forma que seja preciso mesmo quando o valor do número seja próximo de zero.

Descrição

log1p(float $num): float

log1p() retorna log(1 + num) computado de forma que seja preciso mesmo quando o valor de num esteja próximo de zero. log() poderia retornar apenas log(1) neste caso devido à falta de precisão.

Parâmetros

num

O argumento a ser processado

Valor Retornado

log(1 + num)

Veja Também

  • expm1() - Retorna exp($num) - 1, computado de forma precisa mesmo quando o valor do número está próximo de zero.
  • log() - Logaritmo natural
  • log10() - Logaritmo na base 10


Logaritmo natural

  • « log1p
  • max »
  • PHP Manual
  • Funções Matemáticas
  • Logaritmo natural

log

(PHP 4, PHP 5, PHP 7, PHP 8)

log — Logaritmo natural

Descrição

log(float $num, float $base = M_E): float

Se a base opcional for informada, log() retorna logbase num, senão log() retorna o logaritmo natural de num.

Parâmetros

num

O valor para o qual o logaritmo será calculado

base

A base logaritmica opcional a ser utilizada (padrão é 'e' para logaritmo natural).

Valor Retornado

O logarimo de num na base, se fornecida, ou o logaritmo natural.

Veja Também

  • log10() - Logaritmo na base 10
  • exp() - Calcula o expoente de e
  • pow() - Expressão exponencial
  • error_log() - Envia uma mensagem de erro para as rotinas de tratamento de erros definidas


Localiza o maior valor

  • « log
  • min »
  • PHP Manual
  • Funções Matemáticas
  • Localiza o maior valor

max

(PHP 4, PHP 5, PHP 7, PHP 8)

max — Localiza o maior valor

Descrição

max(mixed $value, mixed ...$values): mixed

Forma alternativa (não suportada com argumentos nomeados):

max(array $value_array): mixed

Se o primeiro e único parâmetro for um array, max() retorna o maior valor do array. Se no mínimo dois parâmetros forem fornecidos, max() retorna o maior desses valores.

Nota:

Valores de diferentes tipos serão comparados utilizando as regras padrões de comparação. Por exemplo, uma string não numérica será comparada a um int como se fosse 0, mas várias strings não numéricas serão comparadas alfanumericamente. O valor real retornado terá o tipo do original, sem nenhuma conversão aplicada.

Cuidado

Cuidado ao passar argumentos de tipos diferentes, pois max() pode produzir resultados imprevisíveis.

Parâmetros

value

Qualquer valor comparável.

values

Quaisquer valores comparáveis.

value_array

Um array contendo os valores.

Valor Retornado

max() retorna o parâmetro considerado o "maior" de acordo com as comparações padrões. Se vários valores de tipos diferentes forem considerados iguais (por exemplo, 0 e 'abc') então o primeiro fornecido à função será retornado.

Erros/Exceções

Se um array vazio for informado, max() lança um ValueError.

Registro de Alterações

Versão | Descrição
8.0.0 | max() lança um ValueError em caso de erros. Anteriormente, retornava false e emitia um alerta E_WARNING.
8.0.0 | Como as comparações de strings com números foram alteradas, max() não mais retorna um valor diferente por conta da ordem dos argumentos informados.

Exemplos

Exemplo #1 Exemplos de max()

<?php
echo max(2, 3, 1, 6, 7); // 7
echo max(array(2, 4, 5)); // 5

// Aqui na prática compara-se -1 < 0, então 'hello' é o maior valor
echo max('hello', -1); // hello

// Arrays de múltiplos valores e tamanhos diferentes, retora o mais longo
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1)

// Em arrays de mesmo tamanho compara-se da esquerda para direita
// e nesse exemplo: 2 == 2, mas 5 > 4
$val = max(array(2, 4, 8), array(2, 5, 1)); // array(2, 5, 1)

// Se um array e um não array são informados, o array será retornado
// pois é considerado maior que qualquer outro valor
$val = max('string', array(2, 5, 7), 42); // array(2, 5, 7)

// Se um argumento é NULL ou booleano, ele será comparado contra
// outros valores utilizando a regra FALSE < TRUE independente dos tipos envolvidos.
// No exemplo abaixo -10 é tratado como TRUE na comparação
$val = max(-10, FALSE); // -10

// 0 por outro lado é considerado false, de forma que é "menor que" TRUE
$val = max(0, TRUE); // TRUE
?>

Veja Também

  • min() - Encontra o menor valor
  • count() - Conta todos os elementos de um array ou de um objeto Countable


Encontra o menor valor

  • « max
  • octdec »
  • PHP Manual
  • Funções Matemáticas
  • Encontra o menor valor

min

(PHP 4, PHP 5, PHP 7, PHP 8)

min — Encontra o menor valor

Descrição

min(mixed $value, mixed ...$values): mixed

Forma alternativa (não suportada com argumentos nomeados):

min(array $value_array): mixed

Se o primeiro e único argumento é um array, min() retorna o menor valor no array. Se no mínimo dois parâmetros são fornecidos, min() retorna o menor deles.

Nota:

Valores de tipos diferentes serão comparados utilizando as regras padrões de comparação. Por exemplo, uma string não numérica será comparada com um inteiro int como se fosse 0, mas várias strings não numéricos serão comparadas alfanumericamente. O valor real retornado terá o tipo do original, sem nenhuma conversão aplicada.

Cuidado

Cuidado ao passar argumentos de tipos diferentes, pois min() pode produzir resultados imprevisíveis.

Parâmetros

value

Qualquer valor comparável.

values

Quaisquer valores comparáveis.

value_array

Um array contendo os valores.

Valor Retornado

min() retorna o valor considerado o "menor" de acordo com as comparações padrão. Se valores de diferentes tipos forem avaliados como iguais (por exemplo 0 e 'abc') então o primeiro valor fornecido à função será retornado.

Erros/Exceções

Se um array vazio for informado, min() lança um ValueError.

Registro de Alterações

Versão | Descrição
8.0.0 | min() lança um ValueError em caso de falhas; anteriormente retornava false e emitia um alerta E_WARNING.
8.0.0 | Como as comparações de número e string foram alteradas, min() não mais retorna um valor diferente por conta da ordem dos argumentos informados.

Exemplos

Exemplo #1 Exemplos de min()

<?php
echo min(2, 3, 1, 6, 7); // 1
echo min(array(2, 4, 5)); // 2

// Aqui a comparação que ocorre é -1 < 0, e -1 é o menor valor
echo min('hello', -1); // -1

// Quando comparando arrays de vários comprimentos, min retorna o mais curto
$val = min(array(2, 2, 2), array(1, 1, 1, 1)); // array(2, 2, 2)

// Vários arrays de mesmo tamanho, a comparação ocorre nos elementos, da esquerda para direita
// so in our example: 2 == 2, but 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)

// Se for fornecido um array e um primitivo, o array nunca é retornado
// pois as comparações tratam os arrays como maiores que outros valores
$val = min('string', array(2, 5, 7), 42); // string

// Se um argumento é null ou booleando, ele será comparado com outros valores
// usando a regra que FALSE < TRUE e NULL == FALSE,
// independente dos tipos envolvidos
// Nos exemplos abaixo -10 e 10 são tratados como TRUE nas comparações
$val = min(-10, FALSE, 10); // FALSE
$val = min(-10, NULL, 10); // NULL

// 0 é tratado como FALSE, então é menor que TRUE
$val = min(0, TRUE); // 0
?>

Veja Também

  • max() - Localiza o maior valor
  • count() - Conta todos os elementos de um array ou de um objeto Countable


Octal para decimal

  • « min
  • pi »
  • PHP Manual
  • Funções Matemáticas
  • Octal para decimal

octdec

(PHP 4, PHP 5, PHP 7, PHP 8)

octdec — Octal para decimal

Descrição

octdec(string $octal_string): int|float

Retorna o decimal equivalente do número octal representado pelo argumento octal_string.

Parâmetros

octal_string

A string octal a ser convertida. Quaisquer caracteres inválidos em octal_string são ignorados silenciosamente. A partir do PHP 7.4.0, informar caracteres inválidos está defasado.

Valor Retornado

A representação decimal de octal_string

Registro de Alterações

Versão | Descrição
7.4.0 | Passar caracteres inválidos gerará um aviso de defasagem. O resultado será calculado como se os caracteres inválidos não existissem.

Exemplos

Exemplo #1 Exemplo da octdec()

<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>

O exemplo acima produzirá:

63
45

Notas

Nota:

A função pode converter números que são muito grandes para caber no tipo int da plataforma, e nesse caso os valores são retornados como float.

Veja Também

  • decoct() - Decimal para octal
  • bindec() - Binário para decimal
  • hexdec() - Hexadecimal para decimal
  • base_convert() - Converte um número entre bases arbitrárias


Obtém o valor de pi

  • « octdec
  • pow »
  • PHP Manual
  • Funções Matemáticas
  • Obtém o valor de pi

pi

(PHP 4, PHP 5, PHP 7, PHP 8)

pi — Obtém o valor de pi

Descrição

pi(): float

Retorna uma aproximação de pi. Alternativamente, pode-se usar a constante M_PI que fornece resultado idêntico a pi().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor de pi como float.

Exemplos

Exemplo #1 Exemplo de pi()

<?php
echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898
?>


Expressão exponencial

  • « pi
  • rad2deg »
  • PHP Manual
  • Funções Matemáticas
  • Expressão exponencial

pow

(PHP 4, PHP 5, PHP 7, PHP 8)

pow — Expressão exponencial

Descrição

pow(mixed $num, mixed $exponent): int|float|object

Retorna num elevado à porência de exponent.

Nota:

É possível usar o operador ** no lugar desta função.

Parâmetros

num

A base a ser usada

exponent

O expoente

Valor Retornado

num elevado à potência de exponent. Se ambos os valores forem inteiros não negativos e o resultado puder ser representado como um inteiro, o resultado será retornado com o tipo int, caso contrário será retornado como um float.

Exemplos

Exemplo #1 Alguns exemplos de pow()

<?php

var_dump(pow(2, 8)); // int(256)
echo pow(-1, 20); // 1
echo pow(0, 0); // 1
echo pow(10, -1); // 0.1

echo pow(-1, 5.5); // NAN
?>

Notas

Nota:

Esta função converterá todas as entradas para números, mesmo valores não escalares, o que pode levar a resultados estranhos.

Veja Também

  • exp() - Calcula o expoente de e
  • sqrt() - Raiz quadrada
  • bcpow() - Eleva um número de precisão arbitrária a outro
  • gmp_pow() - Elevar o número a uma potência


Converte o número em radianos para o equivalente em graus

  • « pow
  • round »
  • PHP Manual
  • Funções Matemáticas
  • Converte o número em radianos para o equivalente em graus

rad2deg

(PHP 4, PHP 5, PHP 7, PHP 8)

rad2deg — Converte o número em radianos para o equivalente em graus

Descrição

rad2deg(float $num): float

Esta função converte num de radianos para graus.

Parâmetros

num

Um valor em radianos

Valor Retornado

O equivalente de num em graus

Exemplos

Exemplo #1 Exemplo de rad2deg()

<?php

echo rad2deg(M_PI_4); // 45

?>

Veja Também

  • deg2rad() - Converte o número em graus para o equivalente em radianos


Arredonda um float

  • « rad2deg
  • sin »
  • PHP Manual
  • Funções Matemáticas
  • Arredonda um float

round

(PHP 4, PHP 5, PHP 7, PHP 8)

round — Arredonda um float

Descrição

round(int|float $num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float

Retorna um valor arredondado de num com a precisão especificada em precision (número de dígitos depois do ponto decimal). precision também pode ser negativo ou zero (padrão).

Parâmetros

num

Valor a ser arredondado.

precision

O número opcional de dígitos decimais para arredondar.

Se precision for positivo, num será arredondado para precision de dígitos significativos depois do ponto decimal.

Se precision for negativo, num será arredondado para precision de dígitos significativos depois do ponto decimal, isto é: o múltiplo mais próximo de pow(10, -$precision), por exemplo: para um precision de -1 num é arredondado para dezenas, para um precision de -2 para centenas, etc.

mode

Use uma das seguintes constantes para especificar o modo ao qual o arredondamento ocorre.

Constantes | Descrição
PHP_ROUND_HALF_UP | Arredonda num para longe de zero quando ele está na metade do caminho, tornando 1.5 em 2 e -1.5 em -2.
PHP_ROUND_HALF_DOWN | Arredonda num na direção de zero quando ele está na metade do caminho, tornando 1.5 em 1 e -1.5 em -1.
PHP_ROUND_HALF_EVEN | Arredonda num em direção ao valor par mais próximo quando ele está na metade do caminho, tornando ambos 1.5 e 2.5 em 2.
PHP_ROUND_HALF_ODD | Arredonda num em direção ao valor ímpar mais próximo quando ele está na metade do caminho, tornando 1.5 em 1 e 2.5 em 3.

Valor Retornado

O valor arredondado para precision fornecido como um float.

Registro de Alterações

Versão | Descrição
8.0.0 | num não mais aceita objetos internos que suportam conversões numéricas.

Exemplos

Exemplo #1 Exemplos de round()

<?php
var_dump(round(3.4));
var_dump(round(3.5));
var_dump(round(3.6));
var_dump(round(3.6, 0));
var_dump(round(5.045, 2));
var_dump(round(5.055, 2));
var_dump(round(345, -2));
var_dump(round(345, -3));
var_dump(round(678, -2));
var_dump(round(678, -3));
?>

O exemplo acima produzirá:

float(3)
float(4)
float(4)
float(4)
float(5.05)
float(5.06)
float(300)
float(0)
float(700)
float(1000)

Exemplo #2 Como precision afeta um float

<?php
$numero = 135.79;

var_dump(round($numero, 3));
var_dump(round($numero, 2));
var_dump(round($numero, 1));
var_dump(round($numero, 0));
var_dump(round($numero, -1));
var_dump(round($numero, -2));
var_dump(round($numero, -3));
?>

O exemplo acima produzirá:

float(135.79)
float(135.79)
float(135.8)
float(136)
float(140)
float(100)
float(0)

Exemplo #3 Exemplos de mode

<?php
echo 'Modos de arredondamento com 9.5' . PHP_EOL;
var_dump(round(9.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(9.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_ODD));

echo PHP_EOL;
echo 'Modos de arredondamento com 8.5' . PHP_EOL;
var_dump(round(8.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(8.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_ODD));
?>

O exemplo acima produzirá:

Modos de arredondamento com 9.5
float(10)
float(9)
float(10)
float(9)

Modos de arredondamento com 8.5
float(9)
float(8)
float(8)
float(9)

Exemplo #4 Exemplos de mode com precision

<?php
echo 'Usando PHP_ROUND_HALF_UP com precisão decimal de 1 dígito' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_UP));

echo PHP_EOL;
echo 'Usando PHP_ROUND_HALF_DOWN com precisão decimal de 1 dígito' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_DOWN));

echo PHP_EOL;
echo 'Usando PHP_ROUND_HALF_EVEN com precisão decimal de 1 dígito' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_EVEN));

echo PHP_EOL;
echo 'Usando PHP_ROUND_HALF_ODD com precisão decimal de 1 dígito' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));
?>

O exemplo acima produzirá:

Usando PHP_ROUND_HALF_UP with 1 com precisão decimal de 1 digito
float(1.6)
float(-1.6)

Usando PHP_ROUND_HALF_DOWN with 1 com precisão decimal de 1 digito
float(1.5)
float(-1.5)

Usando PHP_ROUND_HALF_EVEN with 1 com precisão decimal de 1 digito
float(1.6)
float(-1.6)

Usando PHP_ROUND_HALF_ODD with 1 com precisão decimal de 1 digito
float(1.5)
float(-1.5)

Veja Também

  • ceil() - Arredonda frações para cima
  • floor() - Arredonda frações para baixo
  • number_format() - Format a number with grouped thousands


Seno

  • « round
  • sinh »
  • PHP Manual
  • Funções Matemáticas
  • Seno

sin

(PHP 4, PHP 5, PHP 7, PHP 8)

sin — Seno

Descrição

sin(float $num): float

sin() retorna o seno do parâmetro num. O argumento num deve estar em radianos.

Parâmetros

num

O valor em radianos

Valor Retornado

O seno do num

Exemplos

Exemplo #1 Exemplo da sin()

<?php

// Precisão depende da diretiva precision
echo sin(deg2rad(60)); // 0.866025403 ...
echo sin(60); // -0.304810621 ...

?>

Veja Também

  • asin() - Arco seno
  • sinh() - Seno hiperbólico
  • cos() - Cosseno
  • tan() - Tangente
  • deg2rad() - Converte o número em graus para o equivalente em radianos


Seno hiperbólico

  • « sin
  • sqrt »
  • PHP Manual
  • Funções Matemáticas
  • Seno hiperbólico

sinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

sinh — Seno hiperbólico

Descrição

sinh(float $num): float

Retorna o seno hiperbólico de num, definido como (exp($num) - exp(-$num))/2.

Parâmetros

num

O argumento para processar

Valor Retornado

O seno hiperbólico de num

Veja Também

  • sin() - Seno
  • asinh() - Arco seno hiperbólico
  • cosh() - Cosseno hiperbólico
  • tanh() - Tangente hiperbólica


Raiz quadrada

  • « sinh
  • tan »
  • PHP Manual
  • Funções Matemáticas
  • Raiz quadrada

sqrt

(PHP 4, PHP 5, PHP 7, PHP 8)

sqrt — Raiz quadrada

Descrição

sqrt(float $num): float

Retorna a raiz quadrada de num.

Parâmetros

num

O argumento para processar

Valor Retornado

A raiz quadrada de num ou o valor especial NAN para números negativos.

Exemplos

Exemplo #1 Exemplo da sqrt()

<?php
// Precisão depende de sua diretiva precision
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

Veja Também

  • pow() - Expressão exponencial
  • M_SQRTPI - sqrt(pi)
  • M_2_SQRTPI - 2/sqrt(pi)
  • M_SQRT2 - sqrt(2)
  • M_SQRT3 - sqrt(3)
  • M_SQRT1_2 - 1/sqrt(2)


Tangente

  • « sqrt
  • tanh »
  • PHP Manual
  • Funções Matemáticas
  • Tangente

tan

(PHP 4, PHP 5, PHP 7, PHP 8)

tan — Tangente

Descrição

tan(float $num): float

tan() retorna a tangente do parâmetro num. O argumento num deve estar em radianos.

Parâmetros

num

O argumento para processar em radianos

Valor Retornado

A tangente de num

Exemplos

Exemplo #1 Exemplo da tan()

<?php

echo tan(M_PI_4); // 1

?>

Veja Também

  • atan() - Arco tangente
  • atan2() - Arco tangente de duas variáveis
  • sin() - Seno
  • cos() - Cosseno
  • tanh() - Tangente hiperbólica
  • deg2rad() - Converte o número em graus para o equivalente em radianos


Tangente hiperbólica

  • « tan
  • Statistics »
  • PHP Manual
  • Funções Matemáticas
  • Tangente hiperbólica

tanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

tanh — Tangente hiperbólica

Descrição

tanh(float $num): float

Retorna a tangente hiperbólica de num, definida como sinh($num)/cosh($num).

Parâmetros

num

O argumento para processar

Valor Retornado

A tangente hiperbólica de num

Veja Também

  • tan() - Tangente
  • atanh() - Arco tangente hiperbólico
  • sinh() - Seno hiperbólico
  • cosh() - Cosseno hiperbólico


Statistics

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Statistic Funções
    • stats_absolute_deviation — Returns the absolute deviation of an array of values
    • stats_cdf_beta — Calculates any one parameter of the beta distribution given values for the others
    • stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others
    • stats_cdf_cauchy — Calculates any one parameter of the Cauchy distribution given values for the others
    • stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others
    • stats_cdf_exponential — Calculates any one parameter of the exponential distribution given values for the others
    • stats_cdf_f — Calculates any one parameter of the F distribution given values for the others
    • stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others
    • stats_cdf_laplace — Calculates any one parameter of the Laplace distribution given values for the others
    • stats_cdf_logistic — Calculates any one parameter of the logistic distribution given values for the others
    • stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others
    • stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others
    • stats_cdf_noncentral_f — Calculates any one parameter of the non-central F distribution given values for the others
    • stats_cdf_noncentral_t — Calculates any one parameter of the non-central t-distribution give values for the others
    • stats_cdf_normal — Calculates any one parameter of the normal distribution given values for the others
    • stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others
    • stats_cdf_t — Calculates any one parameter of the t-distribution given values for the others
    • stats_cdf_uniform — Calculates any one parameter of the uniform distribution given values for the others
    • stats_cdf_weibull — Calculates any one parameter of the Weibull distribution given values for the others
    • stats_covariance — Computes the covariance of two data sets
    • stats_dens_beta — Probability density function of the beta distribution
    • stats_dens_cauchy — Probability density function of the Cauchy distribution
    • stats_dens_chisquare — Probability density function of the chi-square distribution
    • stats_dens_exponential — Probability density function of the exponential distribution
    • stats_dens_f — Probability density function of the F distribution
    • stats_dens_gamma — Probability density function of the gamma distribution
    • stats_dens_laplace — Probability density function of the Laplace distribution
    • stats_dens_logistic — Probability density function of the logistic distribution
    • stats_dens_normal — Probability density function of the normal distribution
    • stats_dens_pmf_binomial — Probability mass function of the binomial distribution
    • stats_dens_pmf_hypergeometric — Probability mass function of the hypergeometric distribution
    • stats_dens_pmf_negative_binomial — Probability mass function of the negative binomial distribution
    • stats_dens_pmf_poisson — Probability mass function of the Poisson distribution
    • stats_dens_t — Probability density function of the t-distribution
    • stats_dens_uniform — Probability density function of the uniform distribution
    • stats_dens_weibull — Probability density function of the Weibull distribution
    • stats_harmonic_mean — Returns the harmonic mean of an array of values
    • stats_kurtosis — Computes the kurtosis of the data in the array
    • stats_rand_gen_beta — Generates a random deviate from the beta distribution
    • stats_rand_gen_chisquare — Generates a random deviate from the chi-square distribution
    • stats_rand_gen_exponential — Generates a random deviate from the exponential distribution
    • stats_rand_gen_f — Generates a random deviate from the F distribution
    • stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)
    • stats_rand_gen_gamma — Generates a random deviate from the gamma distribution
    • stats_rand_gen_ibinomial_negative — Generates a random deviate from the negative binomial distribution
    • stats_rand_gen_ibinomial — Generates a random deviate from the binomial distribution
    • stats_rand_gen_int — Generates random integer between 1 and 2147483562
    • stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution
    • stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
    • stats_rand_gen_noncentral_chisquare — Generates a random deviate from the non-central chi-square distribution
    • stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F distribution
    • stats_rand_gen_noncentral_t — Generates a single random deviate from a non-central t-distribution
    • stats_rand_gen_normal — Generates a single random deviate from a normal distribution
    • stats_rand_gen_t — Generates a single random deviate from a t-distribution
    • stats_rand_get_seeds — Get the seed values of the random number generator
    • stats_rand_phrase_to_seeds — Generate two seeds for the RGN random number generator
    • stats_rand_ranf — Generates a random floating point number between 0 and 1
    • stats_rand_setall — Set seed values to the random generator
    • stats_skew — Computes the skewness of the data in the array
    • stats_standard_deviation — Returns the standard deviation
    • stats_stat_binomial_coef — Returns a binomial coefficient
    • stats_stat_correlation — Returns the Pearson correlation coefficient of two data sets
    • stats_stat_factorial — Returns the factorial of an integer
    • stats_stat_independent_t — Returns the t-value from the independent two-sample t-test
    • stats_stat_innerproduct — Returns the inner product of two vectors
    • stats_stat_paired_t — Returns the t-value of the dependent t-test for paired samples
    • stats_stat_percentile — Returns the percentile value
    • stats_stat_powersum — Returns the power sum of a vector
    • stats_variance — Returns the variance


Introdução

This is the statistics extension. It contains few dozens of functions useful for statistical computations. It is a wrapper around 2 scientific libraries, namely DCDFLIB (Library of C routines for Cumulative Distributions Functions, Inverses, and Other parameters) by B. Brown & J. Lavato and RANDLIB by Barry Brown, James Lavato & Kathy Russell. Includes CD and PD functions.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

No external libraries are needed. The extension comes bundled with the libraries used.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/stats.

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.


  • « Tipos de Recurso
  • Statistic Funções »
  • PHP Manual
  • Statistics
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Statistic Funções

Índice

  • stats_absolute_deviation — Returns the absolute deviation of an array of values
  • stats_cdf_beta — Calculates any one parameter of the beta distribution given values for the others
  • stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others
  • stats_cdf_cauchy — Calculates any one parameter of the Cauchy distribution given values for the others
  • stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others
  • stats_cdf_exponential — Calculates any one parameter of the exponential distribution given values for the others
  • stats_cdf_f — Calculates any one parameter of the F distribution given values for the others
  • stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others
  • stats_cdf_laplace — Calculates any one parameter of the Laplace distribution given values for the others
  • stats_cdf_logistic — Calculates any one parameter of the logistic distribution given values for the others
  • stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others
  • stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others
  • stats_cdf_noncentral_f — Calculates any one parameter of the non-central F distribution given values for the others
  • stats_cdf_noncentral_t — Calculates any one parameter of the non-central t-distribution give values for the others
  • stats_cdf_normal — Calculates any one parameter of the normal distribution given values for the others
  • stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others
  • stats_cdf_t — Calculates any one parameter of the t-distribution given values for the others
  • stats_cdf_uniform — Calculates any one parameter of the uniform distribution given values for the others
  • stats_cdf_weibull — Calculates any one parameter of the Weibull distribution given values for the others
  • stats_covariance — Computes the covariance of two data sets
  • stats_dens_beta — Probability density function of the beta distribution
  • stats_dens_cauchy — Probability density function of the Cauchy distribution
  • stats_dens_chisquare — Probability density function of the chi-square distribution
  • stats_dens_exponential — Probability density function of the exponential distribution
  • stats_dens_f — Probability density function of the F distribution
  • stats_dens_gamma — Probability density function of the gamma distribution
  • stats_dens_laplace — Probability density function of the Laplace distribution
  • stats_dens_logistic — Probability density function of the logistic distribution
  • stats_dens_normal — Probability density function of the normal distribution
  • stats_dens_pmf_binomial — Probability mass function of the binomial distribution
  • stats_dens_pmf_hypergeometric — Probability mass function of the hypergeometric distribution
  • stats_dens_pmf_negative_binomial — Probability mass function of the negative binomial distribution
  • stats_dens_pmf_poisson — Probability mass function of the Poisson distribution
  • stats_dens_t — Probability density function of the t-distribution
  • stats_dens_uniform — Probability density function of the uniform distribution
  • stats_dens_weibull — Probability density function of the Weibull distribution
  • stats_harmonic_mean — Returns the harmonic mean of an array of values
  • stats_kurtosis — Computes the kurtosis of the data in the array
  • stats_rand_gen_beta — Generates a random deviate from the beta distribution
  • stats_rand_gen_chisquare — Generates a random deviate from the chi-square distribution
  • stats_rand_gen_exponential — Generates a random deviate from the exponential distribution
  • stats_rand_gen_f — Generates a random deviate from the F distribution
  • stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)
  • stats_rand_gen_gamma — Generates a random deviate from the gamma distribution
  • stats_rand_gen_ibinomial_negative — Generates a random deviate from the negative binomial distribution
  • stats_rand_gen_ibinomial — Generates a random deviate from the binomial distribution
  • stats_rand_gen_int — Generates random integer between 1 and 2147483562
  • stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution
  • stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
  • stats_rand_gen_noncentral_chisquare — Generates a random deviate from the non-central chi-square distribution
  • stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F distribution
  • stats_rand_gen_noncentral_t — Generates a single random deviate from a non-central t-distribution
  • stats_rand_gen_normal — Generates a single random deviate from a normal distribution
  • stats_rand_gen_t — Generates a single random deviate from a t-distribution
  • stats_rand_get_seeds — Get the seed values of the random number generator
  • stats_rand_phrase_to_seeds — Generate two seeds for the RGN random number generator
  • stats_rand_ranf — Generates a random floating point number between 0 and 1
  • stats_rand_setall — Set seed values to the random generator
  • stats_skew — Computes the skewness of the data in the array
  • stats_standard_deviation — Returns the standard deviation
  • stats_stat_binomial_coef — Returns a binomial coefficient
  • stats_stat_correlation — Returns the Pearson correlation coefficient of two data sets
  • stats_stat_factorial — Returns the factorial of an integer
  • stats_stat_independent_t — Returns the t-value from the independent two-sample t-test
  • stats_stat_innerproduct — Returns the inner product of two vectors
  • stats_stat_paired_t — Returns the t-value of the dependent t-test for paired samples
  • stats_stat_percentile — Returns the percentile value
  • stats_stat_powersum — Returns the power sum of a vector
  • stats_variance — Returns the variance


Returns the absolute deviation of an array of values

  • « Statistic Funções
  • stats_cdf_beta »
  • PHP Manual
  • Statistic Funções
  • Returns the absolute deviation of an array of values

stats_absolute_deviation

(PECL stats >= 1.0.0)

stats_absolute_deviation — Returns the absolute deviation of an array of values

Descrição

stats_absolute_deviation(array $a): float

Returns the absolute deviation of the values in a.

Parâmetros

a

The input array

Valor Retornado

Returns the absolute deviation of the values in a, or false if a is empty or is not an array.


Calculates any one parameter of the beta distribution given values for the others

  • « stats_absolute_deviation
  • stats_cdf_binomial »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the beta distribution given values for the others

stats_cdf_beta

(PECL stats >= 1.0.0)

stats_cdf_beta — Calculates any one parameter of the beta distribution given values for the others

Descrição

stats_cdf_beta(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the beta distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, alpha, and beta denotes cumulative distribution function, the value of the random variable, and shape parameters of the beta distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | alpha | beta
2 | x | CDF | alpha | beta
3 | alpha | x | CDF | beta
4 | beta | x | CDF | alpha

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, alpha, or beta, determined by which.


Calculates any one parameter of the binomial distribution given values for the others

  • « stats_cdf_beta
  • stats_cdf_cauchy »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the binomial distribution given values for the others

stats_cdf_binomial

(PECL stats >= 1.0.0)

stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others

Descrição

stats_cdf_binomial(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the binomial distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, n, and p denotes cumulative distribution function, the number of successes, the number of trials, and the success rate for each trial, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | n | p
2 | x | CDF | n | p
3 | n | x | CDF | p
4 | p | x | CDF | n

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, n, or p, determined by which.


Calculates any one parameter of the Cauchy distribution given values for the others

  • « stats_cdf_binomial
  • stats_cdf_chisquare »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the Cauchy distribution given values for the others

stats_cdf_cauchy

(PECL stats >= 1.0.0)

stats_cdf_cauchy — Calculates any one parameter of the Cauchy distribution given values for the others

Descrição

stats_cdf_cauchy(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Cauchy distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, x0, and gamma denotes cumulative distribution function, the value of the random variable, the location and the scale parameter of the Cauchy distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | x0 | gamma
2 | x | CDF | x0 | gamma
3 | x0 | x | CDF | gamma
4 | gamma | x | CDF | x0

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, x0, or gamma, determined by which.


Calculates any one parameter of the chi-square distribution given values for the others

  • « stats_cdf_cauchy
  • stats_cdf_exponential »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the chi-square distribution given values for the others

stats_cdf_chisquare

(PECL stats >= 1.0.0)

stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others

Descrição

stats_cdf_chisquare(float $par1, float $par2, int $which): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the chi-square distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and k denotes cumulative distribution function, the value of the random variable, and the degree of freedom of the chi-square distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | k
2 | x | CDF | k
3 | k | x | CDF

Parâmetros

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, or k, determined by which.


Calculates any one parameter of the exponential distribution given values for the others

  • « stats_cdf_chisquare
  • stats_cdf_f »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the exponential distribution given values for the others

stats_cdf_exponential

(PECL stats >= 1.0.0)

stats_cdf_exponential — Calculates any one parameter of the exponential distribution given values for the others

Descrição

stats_cdf_exponential(float $par1, float $par2, int $which): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the exponential distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and lambda denotes cumulative distribution function, the value of the random variable, and the rate parameter of the exponential distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | lambda
2 | x | CDF | lambda
3 | lambda | x | CDF

Parâmetros

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, or lambda, determined by which.


Calculates any one parameter of the F distribution given values for the others

  • « stats_cdf_exponential
  • stats_cdf_gamma »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the F distribution given values for the others

stats_cdf_f

(PECL stats >= 1.0.0)

stats_cdf_f — Calculates any one parameter of the F distribution given values for the others

Descrição

stats_cdf_f(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the F distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, d1, and d2 denotes cumulative distribution function, the value of the random variable, and the degree of freedoms of the F distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | d1 | d2
2 | x | CDF | d1 | d2
3 | d1 | x | CDF | d2
4 | d2 | x | CDF | d1

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, d1, or d2, determined by which.


Calculates any one parameter of the gamma distribution given values for the others

  • « stats_cdf_f
  • stats_cdf_laplace »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the gamma distribution given values for the others

stats_cdf_gamma

(PECL stats >= 1.0.0)

stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others

Descrição

stats_cdf_gamma(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the gamma distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, k, and theta denotes cumulative distribution function, the value of the random variable, and the shape and the scale parameter of the gamma distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | k | theta
2 | x | CDF | k | theta
3 | k | x | CDF | theta
4 | theta | x | CDF | k

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, k, or theta, determined by which.


Calculates any one parameter of the Laplace distribution given values for the others

  • « stats_cdf_gamma
  • stats_cdf_logistic »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the Laplace distribution given values for the others

stats_cdf_laplace

(PECL stats >= 1.0.0)

stats_cdf_laplace — Calculates any one parameter of the Laplace distribution given values for the others

Descrição

stats_cdf_laplace(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Laplace distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, mu, and b denotes cumulative distribution function, the value of the random variable, and the location and the scale parameter of the Laplace distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | mu | b
2 | x | CDF | mu | b
3 | mu | x | CDF | b
4 | b | x | CDF | mu

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, mu, or b, determined by which.


Calculates any one parameter of the logistic distribution given values for the others

  • « stats_cdf_laplace
  • stats_cdf_negative_binomial »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the logistic distribution given values for the others

stats_cdf_logistic

(PECL stats >= 1.0.0)

stats_cdf_logistic — Calculates any one parameter of the logistic distribution given values for the others

Descrição

stats_cdf_logistic(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the logistic distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, mu, and s denotes cumulative distribution function, the value of the random variable, and the location and the scale parameter of the logistic distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | mu | s
2 | x | CDF | mu | s
3 | mu | x | CDF | s
4 | s | x | CDF | mu

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, mu, or s, determined by which.


Calculates any one parameter of the negative binomial distribution given values for the others

  • « stats_cdf_logistic
  • stats_cdf_noncentral_chisquare »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the negative binomial distribution given values for the others

stats_cdf_negative_binomial

(PECL stats >= 1.0.0)

stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others

Descrição

stats_cdf_negative_binomial(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the negative binomial distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, r, and p denotes cumulative distribution function, the number of failure, the number of success, and the success rate for each trial, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | r | p
2 | x | CDF | r | p
3 | r | x | CDF | p
4 | p | x | CDF | r

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, r, or p, determined by which.


Calculates any one parameter of the non-central chi-square distribution given values for the others

  • « stats_cdf_negative_binomial
  • stats_cdf_noncentral_f »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the non-central chi-square distribution given values for the others

stats_cdf_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others

Descrição

stats_cdf_noncentral_chisquare(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the non-central chi-square distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, k, and lambda denotes cumulative distribution function, the value of the random variable, the degree of freedom and the non-centrality parameter of the distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | k | lambda
2 | x | CDF | k | lambda
3 | k | x | CDF | lambda
4 | lambda | x | CDF | k

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, k, or lambda, determined by which.


Calculates any one parameter of the non-central F distribution given values for the others

  • « stats_cdf_noncentral_chisquare
  • stats_cdf_noncentral_t »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the non-central F distribution given values for the others

stats_cdf_noncentral_f

(PECL stats >= 1.0.0)

stats_cdf_noncentral_f — Calculates any one parameter of the non-central F distribution given values for the others

Descrição

stats_cdf_noncentral_f(
float $par1,
float $par2,
float $par3,
float $par4,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the non-central F distribution. The kind of the return value and parameters (par1, par2, par3, and par4) are determined by which.

The following table lists the return value and parameters by which. CDF, x, nu1, nu2, and lambda denotes cumulative distribution function, the value of the random variable, the degree of freedoms and the non-centrality parameter of the distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3 | par4
1 | CDF | x | nu1 | nu2 | lambda
2 | x | CDF | nu1 | nu2 | lambda
3 | nu1 | x | CDF | nu2 | lambda
4 | nu2 | x | CDF | nu1 | lambda
5 | lambda | x | CDF | nu1 | nu2

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

par4

The fourth parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, nu1, nu2, or lambda, determined by which.


Calculates any one parameter of the non-central t-distribution give values for the others

  • « stats_cdf_noncentral_f
  • stats_cdf_normal »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the non-central t-distribution give values for the others

stats_cdf_noncentral_t

(PECL stats >= 1.0.0)

stats_cdf_noncentral_t — Calculates any one parameter of the non-central t-distribution give values for the others

Descrição

stats_cdf_noncentral_t(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the non-central t-distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, nu, and mu denotes cumulative distribution function, the value of the random variable, the degrees of freedom and the non-centrality parameter of the distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | nu | mu
2 | x | CDF | nu | mu
3 | nu | x | CDF | mu
4 | mu | x | CDF | nu

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, nu, or mu, determined by which.


Calculates any one parameter of the normal distribution given values for the others

  • « stats_cdf_noncentral_t
  • stats_cdf_poisson »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the normal distribution given values for the others

stats_cdf_normal

(PECL stats >= 1.0.0)

stats_cdf_normal — Calculates any one parameter of the normal distribution given values for the others

Descrição

stats_cdf_normal(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the normal distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, mu, and sigma denotes cumulative distribution function, the value of the random variable, the mean and the standard deviation of the normal distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | mu | sigma
2 | x | CDF | mu | sigma
3 | mu | x | CDF | sigma
4 | sigma | x | CDF | mu

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, mu, or sigma, determined by which.


Calculates any one parameter of the Poisson distribution given values for the others

  • « stats_cdf_normal
  • stats_cdf_t »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the Poisson distribution given values for the others

stats_cdf_poisson

(PECL stats >= 1.0.0)

stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others

Descrição

stats_cdf_poisson(float $par1, float $par2, int $which): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Poisson distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and lambda denotes cumulative distribution function, the value of the random variable, and the parameter of the Poisson distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | lambda
2 | x | CDF | lambda
3 | lambda | x | CDF

Parâmetros

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, or lambda, determined by which.


Calculates any one parameter of the t-distribution given values for the others

  • « stats_cdf_poisson
  • stats_cdf_uniform »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the t-distribution given values for the others

stats_cdf_t

(PECL stats >= 1.0.0)

stats_cdf_t — Calculates any one parameter of the t-distribution given values for the others

Descrição

stats_cdf_t(float $par1, float $par2, int $which): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the t-distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and nu denotes cumulative distribution function, the value of the random variable, and the degrees of freedom of the t-distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | nu
2 | x | CDF | nu
3 | nu | x | CDF

Parâmetros

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, or nu, determined by which.


Calculates any one parameter of the uniform distribution given values for the others

  • « stats_cdf_t
  • stats_cdf_weibull »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the uniform distribution given values for the others

stats_cdf_uniform

(PECL stats >= 1.0.0)

stats_cdf_uniform — Calculates any one parameter of the uniform distribution given values for the others

Descrição

stats_cdf_uniform(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the uniform distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, a, and b denotes cumulative distribution function, the value of the random variable, the lower bound and the higher bound of the uniform distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | a | b
2 | x | CDF | a | b
3 | a | x | CDF | b
4 | b | x | CDF | a

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, a, or b, determined by which.


Calculates any one parameter of the Weibull distribution given values for the others

  • « stats_cdf_uniform
  • stats_covariance »
  • PHP Manual
  • Statistic Funções
  • Calculates any one parameter of the Weibull distribution given values for the others

stats_cdf_weibull

(PECL stats >= 1.0.0)

stats_cdf_weibull — Calculates any one parameter of the Weibull distribution given values for the others

Descrição

stats_cdf_weibull(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Weibull distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, k, and lambda denotes cumulative distribution function, the value of the random variable, the shape and the scale parameter of the Weibull distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | k | lambda
2 | x | CDF | k | lambda
3 | k | x | CDF | lambda
4 | lambda | x | CDF | k

Parâmetros

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valor Retornado

Returns CDF, x, k, or lambda, determined by which.


Computes the covariance of two data sets

  • « stats_cdf_weibull
  • stats_dens_beta »
  • PHP Manual
  • Statistic Funções
  • Computes the covariance of two data sets

stats_covariance

(PECL stats >= 1.0.0)

stats_covariance — Computes the covariance of two data sets

Descrição

stats_covariance(array $a, array $b): float

Returns the covariance of a and b.

Parâmetros

a

The first array

b

The second array

Valor Retornado

Returns the covariance of a and b, or false on failure.


Probability density function of the beta distribution

  • « stats_covariance
  • stats_dens_cauchy »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the beta distribution

stats_dens_beta

(PECL stats >= 1.0.0)

stats_dens_beta — Probability density function of the beta distribution

Descrição

stats_dens_beta(float $x, float $a, float $b): float

Returns the probability density at x, where the random variable follows the beta distribution of which the shape parameters are a and b.

Parâmetros

x

The value at which the probability density is calculated

a

The shape parameter of the distribution

b

The shape parameter of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability density function of the Cauchy distribution

  • « stats_dens_beta
  • stats_dens_chisquare »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the Cauchy distribution

stats_dens_cauchy

(PECL stats >= 1.0.0)

stats_dens_cauchy — Probability density function of the Cauchy distribution

Descrição

stats_dens_cauchy(float $x, float $ave, float $stdev): float

Returns the probability density at x, where the random variable follows the Cauchy distribution whose location and scale are ave and stdev, respectively.

Parâmetros

x

The value at which the probability density is calculated

ave

The location parameter of the distribution

stdev

The scale parameter of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability density function of the chi-square distribution

  • « stats_dens_cauchy
  • stats_dens_exponential »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the chi-square distribution

stats_dens_chisquare

(PECL stats >= 1.0.0)

stats_dens_chisquare — Probability density function of the chi-square distribution

Descrição

stats_dens_chisquare(float $x, float $dfr): float

Returns the probability density at x, where the random variable follows the chi-square distribution of which the degree of freedom is dfr.

Parâmetros

x

The value at which the probability density is calculated

dfr

The degree of freedom of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability density function of the exponential distribution

  • « stats_dens_chisquare
  • stats_dens_f »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the exponential distribution

stats_dens_exponential

(PECL stats >= 1.0.0)

stats_dens_exponential — Probability density function of the exponential distribution

Descrição

stats_dens_exponential(float $x, float $scale): float

Returns the probability density at x, where the random variable follows the exponential distribution of which the scale is scale.

Parâmetros

x

The value at which the probability density is calculated

scale

The scale of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability density function of the F distribution

  • « stats_dens_exponential
  • stats_dens_gamma »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the F distribution

stats_dens_f

(PECL stats >= 1.0.0)

stats_dens_f — Probability density function of the F distribution

Descrição

stats_dens_f(float $x, float $dfr1, float $dfr2): float

Returns the probability density at x, where the random variable follows the F distribution of which the degree of freedoms are dfr1 and dfr2.

Parâmetros

x

The value at which the probability density is calculated

dfr1

The degree of freedom of the distribution

dfr2

The degree of freedom of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability density function of the gamma distribution

  • « stats_dens_f
  • stats_dens_laplace »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the gamma distribution

stats_dens_gamma

(PECL stats >= 1.0.0)

stats_dens_gamma — Probability density function of the gamma distribution

Descrição

stats_dens_gamma(float $x, float $shape, float $scale): float

Returns the probability density at x, where the random variable follows the gamma distribution of which the shape parameter is shape and the scale parameter is scale.

Parâmetros

x

The value at which the probability density is calculated

shape

The shape parameter of the distribution

scale

The scale parameter of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability density function of the Laplace distribution

  • « stats_dens_gamma
  • stats_dens_logistic »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the Laplace distribution

stats_dens_laplace

(PECL stats >= 1.0.0)

stats_dens_laplace — Probability density function of the Laplace distribution

Descrição

stats_dens_laplace(float $x, float $ave, float $stdev): float

Returns the probability density at x, where the random variable follows the Laplace distribution of which the location parameter is ave and the scale parameter is stdev.

Parâmetros

x

The value at which the probability density is calculated

ave

The location parameter of the distribution

stdev

The shape parameter of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability density function of the logistic distribution

  • « stats_dens_laplace
  • stats_dens_normal »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the logistic distribution

stats_dens_logistic

(PECL stats >= 1.0.0)

stats_dens_logistic — Probability density function of the logistic distribution

Descrição

stats_dens_logistic(float $x, float $ave, float $stdev): float

Returns the probability density at x, where the random variable follows the logistic distribution of which the location parameter is ave and the scale parameter is stdev.

Parâmetros

x

The value at which the probability density is calculated

ave

The location parameter of the distribution

stdev

The shape parameter of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability density function of the normal distribution

  • « stats_dens_logistic
  • stats_dens_pmf_binomial »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the normal distribution

stats_dens_normal

(PECL stats >= 1.0.0)

stats_dens_normal — Probability density function of the normal distribution

Descrição

stats_dens_normal(float $x, float $ave, float $stdev): float

Returns the probability density at x, where the random variable follows the normal distribution of which the mean is ave and the standard deviation is stdev.

Parâmetros

x

The value at which the probability density is calculated

ave

The mean of the distribution

stdev

The standard deviation of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability mass function of the binomial distribution

  • « stats_dens_normal
  • stats_dens_pmf_hypergeometric »
  • PHP Manual
  • Statistic Funções
  • Probability mass function of the binomial distribution

stats_dens_pmf_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_binomial — Probability mass function of the binomial distribution

Descrição

stats_dens_pmf_binomial(float $x, float $n, float $pi): float

Returns the probability mass at x, where the random variable follows the binomial distribution of which the number of trials is n and the success rate is pi.

Parâmetros

x

The value at which the probability mass is calculated

n

The number of trials of the distribution

pi

The success rate of the distribution

Valor Retornado

The probability mass at x or false for failure.


Probability mass function of the hypergeometric distribution

  • « stats_dens_pmf_binomial
  • stats_dens_pmf_negative_binomial »
  • PHP Manual
  • Statistic Funções
  • Probability mass function of the hypergeometric distribution

stats_dens_pmf_hypergeometric

(PECL stats >= 1.0.0)

stats_dens_pmf_hypergeometric — Probability mass function of the hypergeometric distribution

Descrição

stats_dens_pmf_hypergeometric(
float $n1,
float $n2,
float $N1,
float $N2
): float

Returns the probability mass at n1, where the random variable follows the hypergeometric distribution of which the number of failure is n2, the number of success samples is N1, and the number of failure samples is N2.

Parâmetros

n1

The number of success, at which the probability mass is calculated

n2

The number of failure of the distribution

N1

The number of success samples of the distribution

N2

The number of failure samples of the distribution

Valor Retornado

The probability mass at n1 or false for failure.


Probability mass function of the negative binomial distribution

  • « stats_dens_pmf_hypergeometric
  • stats_dens_pmf_poisson »
  • PHP Manual
  • Statistic Funções
  • Probability mass function of the negative binomial distribution

stats_dens_pmf_negative_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_negative_binomial — Probability mass function of the negative binomial distribution

Descrição

stats_dens_pmf_negative_binomial(float $x, float $n, float $pi): float

Returns the probability mass at x, where the random variable follows the negative binomial distribution of which the number of the success is n and the success rate is pi.

Parâmetros

x

The value at which the probability mass is calculated

n

The number of the success of the distribution

pi

The success rate of the distribution

Valor Retornado

The probability mass at x or false for failure.


Probability mass function of the Poisson distribution

  • « stats_dens_pmf_negative_binomial
  • stats_dens_t »
  • PHP Manual
  • Statistic Funções
  • Probability mass function of the Poisson distribution

stats_dens_pmf_poisson

(PECL stats >= 1.0.0)

stats_dens_pmf_poisson — Probability mass function of the Poisson distribution

Descrição

stats_dens_pmf_poisson(float $x, float $lb): float

Returns the probability mass at x, where the random variable follows the Poisson distribution whose parameter is lb.

Parâmetros

x

The value at which the probability mass is calculated

lb

The parameter of the Poisson distribution

Valor Retornado

The probability mass at x or false for failure.


Probability density function of the t-distribution

  • « stats_dens_pmf_poisson
  • stats_dens_uniform »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the t-distribution

stats_dens_t

(PECL stats >= 1.0.0)

stats_dens_t — Probability density function of the t-distribution

Descrição

stats_dens_t(float $x, float $dfr): float

Returns the probability density at x, where the random variable follows the t-distribution of which the degree of freedom is dfr.

Parâmetros

x

The value at which the probability density is calculated

dfr

The degree of freedom of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability density function of the uniform distribution

  • « stats_dens_t
  • stats_dens_weibull »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the uniform distribution

stats_dens_uniform

(PECL stats >= 1.0.0)

stats_dens_uniform — Probability density function of the uniform distribution

Descrição

stats_dens_uniform(float $x, float $a, float $b): float

Returns the probability density at x, where the random variable follows the uniform distribution of which the lower bound is a and the upper bound is b.

Parâmetros

x

The value at which the probability density is calculated

a

The lower bound of the distribution

b

The upper bound of the distribution

Valor Retornado

The probability density at x or false for failure.


Probability density function of the Weibull distribution

  • « stats_dens_uniform
  • stats_harmonic_mean »
  • PHP Manual
  • Statistic Funções
  • Probability density function of the Weibull distribution

stats_dens_weibull

(PECL stats >= 1.0.0)

stats_dens_weibull — Probability density function of the Weibull distribution

Descrição

stats_dens_weibull(float $x, float $a, float $b): float

Returns the probability density at x, where the random variable follows the Weibull distribution of which the shape parameter is a and the scale parameter is b.

Parâmetros

x

The value at which the probability density is calculated

a

The shape parameter of the distribution

b

The scale parameter of the distribution

Valor Retornado

The probability density at x or false for failure.


Returns the harmonic mean of an array of values

  • « stats_dens_weibull
  • stats_kurtosis »
  • PHP Manual
  • Statistic Funções
  • Returns the harmonic mean of an array of values

stats_harmonic_mean

(PECL stats >= 1.0.0)

stats_harmonic_mean — Returns the harmonic mean of an array of values

Descrição

stats_harmonic_mean(array $a): number

Returns the harmonic mean of the values in a.

Parâmetros

a

The input array

Valor Retornado

Returns the harmonic mean of the values in a, or false if a is empty or is not an array.


Computes the kurtosis of the data in the array

  • « stats_harmonic_mean
  • stats_rand_gen_beta »
  • PHP Manual
  • Statistic Funções
  • Computes the kurtosis of the data in the array

stats_kurtosis

(PECL stats >= 1.0.0)

stats_kurtosis — Computes the kurtosis of the data in the array

Descrição

stats_kurtosis(array $a): float

Returns the kurtosis of the values in a.

Parâmetros

a

The input array

Valor Retornado

Returns the kurtosis of the values in a, or false if a is empty or is not an array.


Generates a random deviate from the beta distribution

  • « stats_kurtosis
  • stats_rand_gen_chisquare »
  • PHP Manual
  • Statistic Funções
  • Generates a random deviate from the beta distribution

stats_rand_gen_beta

(PECL stats >= 1.0.0)

stats_rand_gen_beta — Generates a random deviate from the beta distribution

Descrição

stats_rand_gen_beta(float $a, float $b): float

Returns a random deviate from the beta distribution with parameters A and B. The density of the beta is x^(a-1) * (1-x)^(b-1) / B(a,b) for 0 < x <. Method R. C. H. Cheng.

Parâmetros

a

The shape parameter of the beta distribution

b

The shape parameter of the beta distribution

Valor Retornado

A random deviate


Generates a random deviate from the chi-square distribution

  • « stats_rand_gen_beta
  • stats_rand_gen_exponential »
  • PHP Manual
  • Statistic Funções
  • Generates a random deviate from the chi-square distribution

stats_rand_gen_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_chisquare — Generates a random deviate from the chi-square distribution

Descrição

stats_rand_gen_chisquare(float $df): float

Returns a random deviate from the chi-square distribution where the degrees of freedom is df.

Parâmetros

df

The degrees of freedom

Valor Retornado

A random deviate


Generates a random deviate from the exponential distribution

  • « stats_rand_gen_chisquare
  • stats_rand_gen_f »
  • PHP Manual
  • Statistic Funções
  • Generates a random deviate from the exponential distribution

stats_rand_gen_exponential

(PECL stats >= 1.0.0)

stats_rand_gen_exponential — Generates a random deviate from the exponential distribution

Descrição

stats_rand_gen_exponential(float $av): float

Returns a random deviate from the exponential distribution of which the scale is av.

Parâmetros

av

The scale parameter

Valor Retornado

A random deviate


Generates a random deviate from the F distribution

  • « stats_rand_gen_exponential
  • stats_rand_gen_funiform »
  • PHP Manual
  • Statistic Funções
  • Generates a random deviate from the F distribution

stats_rand_gen_f

(PECL stats >= 1.0.0)

stats_rand_gen_f — Generates a random deviate from the F distribution

Descrição

stats_rand_gen_f(float $dfn, float $dfd): float

Generates a random deviate from the F (variance ratio) distribution with "dfn" degrees of freedom in the numerator and "dfd" degrees of freedom in the denominator. Method : directly generates ratio of chisquare variates.

Parâmetros

dfn

The degrees of freedom in the numerator

dfd

The degrees of freedom in the denominator

Valor Retornado

A random deviate


Generates uniform float between low (exclusive) and high (exclusive)

  • « stats_rand_gen_f
  • stats_rand_gen_gamma »
  • PHP Manual
  • Statistic Funções
  • Generates uniform float between low (exclusive) and high (exclusive)

stats_rand_gen_funiform

(PECL stats >= 1.0.0)

stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)

Descrição

stats_rand_gen_funiform(float $low, float $high): float

Returns a random deviate from the uniform distribution from low to high.

Parâmetros

low

The lower bound (inclusive)

high

The upper bound (exclusive)

Valor Retornado

A random deviate


Generates a random deviate from the gamma distribution

  • « stats_rand_gen_funiform
  • stats_rand_gen_ibinomial_negative »
  • PHP Manual
  • Statistic Funções
  • Generates a random deviate from the gamma distribution

stats_rand_gen_gamma

(PECL stats >= 1.0.0)

stats_rand_gen_gamma — Generates a random deviate from the gamma distribution

Descrição

stats_rand_gen_gamma(float $a, float $r): float

Generates a random deviate from the gamma distribution whose density is (A**R)/Gamma(R) * X**(R-1) * Exp(-A*X).

Parâmetros

a

location parameter of Gamma distribution (a > 0).

r

shape parameter of Gamma distribution (r > 0).

Valor Retornado

A random deviate


Generates a random deviate from the negative binomial distribution

  • « stats_rand_gen_gamma
  • stats_rand_gen_ibinomial »
  • PHP Manual
  • Statistic Funções
  • Generates a random deviate from the negative binomial distribution

stats_rand_gen_ibinomial_negative

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial_negative — Generates a random deviate from the negative binomial distribution

Descrição

stats_rand_gen_ibinomial_negative(int $n, float $p): int

Returns a random deviate from a negative binomial distribution where the number of success is n and the success rate is p.

Parâmetros

n

The number of success

p

The success rate

Valor Retornado

A random deviate, which is the number of failure.


Generates a random deviate from the binomial distribution

  • « stats_rand_gen_ibinomial_negative
  • stats_rand_gen_int »
  • PHP Manual
  • Statistic Funções
  • Generates a random deviate from the binomial distribution

stats_rand_gen_ibinomial

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial — Generates a random deviate from the binomial distribution

Descrição

stats_rand_gen_ibinomial(int $n, float $pp): int

Returns a random deviate from the binomial distribution whose number of trials is n and whose probability of an event in each trial is pp.

Parâmetros

n

The number of trials

pp

The probability of an event in each trial

Valor Retornado

A random deviate


Generates random integer between 1 and 2147483562

  • « stats_rand_gen_ibinomial
  • stats_rand_gen_ipoisson »
  • PHP Manual
  • Statistic Funções
  • Generates random integer between 1 and 2147483562

stats_rand_gen_int

(PECL stats >= 1.0.0)

stats_rand_gen_int — Generates random integer between 1 and 2147483562

Descrição

stats_rand_gen_int(): int

Returns a random integer between 1 and 2147483562

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A random integer


Generates a single random deviate from a Poisson distribution

  • « stats_rand_gen_int
  • stats_rand_gen_iuniform »
  • PHP Manual
  • Statistic Funções
  • Generates a single random deviate from a Poisson distribution

stats_rand_gen_ipoisson

(PECL stats >= 1.0.0)

stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution

Descrição

stats_rand_gen_ipoisson(float $mu): int

Returns a random deviate from the Poisson distribution with parameter mu.

Parâmetros

mu

The parameter of the Poisson distribution

Valor Retornado

A random deviate


Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

  • « stats_rand_gen_ipoisson
  • stats_rand_gen_noncentral_chisquare »
  • PHP Manual
  • Statistic Funções
  • Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

stats_rand_gen_iuniform

(PECL stats >= 1.0.0)

stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

Descrição

stats_rand_gen_iuniform(int $low, int $high): int

Returns a random integer from the discrete uniform distribution between low (inclusive) and high (inclusive).

Parâmetros

low

The lower bound

high

The upper bound

Valor Retornado

A random integer


Generates a random deviate from the non-central chi-square distribution

  • « stats_rand_gen_iuniform
  • stats_rand_gen_noncentral_f »
  • PHP Manual
  • Statistic Funções
  • Generates a random deviate from the non-central chi-square distribution

stats_rand_gen_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_chisquare — Generates a random deviate from the non-central chi-square distribution

Descrição

stats_rand_gen_noncentral_chisquare(float $df, float $xnonc): float

Returns a random deviate from the non-central chi-square distribution with degrees of freedom, df, and non-centrality parameter, xnonc.

Parâmetros

df

The degrees of freedom

xnonc

The non-centrality parameter

Valor Retornado

A random deviate


Generates a random deviate from the noncentral F distribution

  • « stats_rand_gen_noncentral_chisquare
  • stats_rand_gen_noncentral_t »
  • PHP Manual
  • Statistic Funções
  • Generates a random deviate from the noncentral F distribution

stats_rand_gen_noncentral_f

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F distribution

Descrição

stats_rand_gen_noncentral_f(float $dfn, float $dfd, float $xnonc): float

Returns a random deviate from the non-central F distribution where the degrees of freedoms are dfn (numerator) and dfd (denominator), and the non-centrality parameter is xnonc.

Parâmetros

dfn

The degrees of freedom of the numerator

dfd

The degrees of freedom of the denominator

xnonc

The non-centrality parameter

Valor Retornado

A random deviate


Generates a single random deviate from a non-central t-distribution

  • « stats_rand_gen_noncentral_f
  • stats_rand_gen_normal »
  • PHP Manual
  • Statistic Funções
  • Generates a single random deviate from a non-central t-distribution

stats_rand_gen_noncentral_t

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_t — Generates a single random deviate from a non-central t-distribution

Descrição

stats_rand_gen_noncentral_t(float $df, float $xnonc): float

Returns a random deviate from the non-central t-distribution with the degrees of freedom, df, and the non-centrality parameter, xnonc.

Parâmetros

df

The degrees of freedom

xnonc

The non-centrality parameter

Valor Retornado

A random deviate


Generates a single random deviate from a normal distribution

  • « stats_rand_gen_noncentral_t
  • stats_rand_gen_t »
  • PHP Manual
  • Statistic Funções
  • Generates a single random deviate from a normal distribution

stats_rand_gen_normal

(PECL stats >= 1.0.0)

stats_rand_gen_normal — Generates a single random deviate from a normal distribution

Descrição

stats_rand_gen_normal(float $av, float $sd): float

Returns a random deviate from the normal distribution with mean, av, and standard deviation, sd.

Parâmetros

av

The mean of the normal distribution

sd

The standard deviation of the normal distribution

Valor Retornado

A random deviate


Generates a single random deviate from a t-distribution

  • « stats_rand_gen_normal
  • stats_rand_get_seeds »
  • PHP Manual
  • Statistic Funções
  • Generates a single random deviate from a t-distribution

stats_rand_gen_t

(PECL stats >= 1.0.0)

stats_rand_gen_t — Generates a single random deviate from a t-distribution

Descrição

stats_rand_gen_t(float $df): float

Returns a random deviate from the t-distribution with the degrees of freedom, df.

Parâmetros

df

The degrees of freedom

Valor Retornado

A random deviate


Get the seed values of the random number generator

  • « stats_rand_gen_t
  • stats_rand_phrase_to_seeds »
  • PHP Manual
  • Statistic Funções
  • Get the seed values of the random number generator

stats_rand_get_seeds

(PECL stats >= 1.0.0)

stats_rand_get_seeds — Get the seed values of the random number generator

Descrição

stats_rand_get_seeds(): array

Returns the current seed values of the random number generator

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of two integers.


Generate two seeds for the RGN random number generator

  • « stats_rand_get_seeds
  • stats_rand_ranf »
  • PHP Manual
  • Statistic Funções
  • Generate two seeds for the RGN random number generator

stats_rand_phrase_to_seeds

(PECL stats >= 1.0.0)

stats_rand_phrase_to_seeds — Generate two seeds for the RGN random number generator

Descrição

stats_rand_phrase_to_seeds(string $phrase): array

Generate two seeds for the random number generator from a phrase.

Parâmetros

phrase

The input phrase

Valor Retornado

Returns an array of two integers.


Generates a random floating point number between 0 and 1

  • « stats_rand_phrase_to_seeds
  • stats_rand_setall »
  • PHP Manual
  • Statistic Funções
  • Generates a random floating point number between 0 and 1

stats_rand_ranf

(PECL stats >= 1.0.0)

stats_rand_ranf — Generates a random floating point number between 0 and 1

Descrição

stats_rand_ranf(): float

Returns a random floating point number from a uniform distribution between 0 (exclusive) and 1 (exclusive).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A random floating point number


Set seed values to the random generator

  • « stats_rand_ranf
  • stats_skew »
  • PHP Manual
  • Statistic Funções
  • Set seed values to the random generator

stats_rand_setall

(PECL stats >= 1.0.0)

stats_rand_setall — Set seed values to the random generator

Descrição

stats_rand_setall(int $iseed1, int $iseed2): void

Set iseed1 and iseed2 as seed values to the random generator used in statistic functions.

Parâmetros

iseed1

The value which is used as the random seed

iseed2

The value which is used as the random seed

Valor Retornado

No values are returned.


Computes the skewness of the data in the array

  • « stats_rand_setall
  • stats_standard_deviation »
  • PHP Manual
  • Statistic Funções
  • Computes the skewness of the data in the array

stats_skew

(PECL stats >= 1.0.0)

stats_skew — Computes the skewness of the data in the array

Descrição

stats_skew(array $a): float

Returns the skewness of the values in a.

Parâmetros

a

The input array

Valor Retornado

Returns the skewness of the values in a, or false if a is empty or is not an array.


Returns the standard deviation

  • « stats_skew
  • stats_stat_binomial_coef »
  • PHP Manual
  • Statistic Funções
  • Returns the standard deviation

stats_standard_deviation

(PECL stats >= 1.0.0)

stats_standard_deviation — Returns the standard deviation

Descrição

stats_standard_deviation(array $a, bool $sample = false): float

Returns the standard deviation of the values in a.

Parâmetros

a

The array of data to find the standard deviation for. Note that all values of the array will be cast to float.

sample

Indicates if a represents a sample of the population; defaults to false.

Valor Retornado

Returns the standard deviation on success; false on failure.

Erros/Exceções

Raises an E_WARNING when there are fewer than 2 values in a.


Returns a binomial coefficient

  • « stats_standard_deviation
  • stats_stat_correlation »
  • PHP Manual
  • Statistic Funções
  • Returns a binomial coefficient

stats_stat_binomial_coef

(PECL stats >= 1.0.0)

stats_stat_binomial_coef — Returns a binomial coefficient

Descrição

stats_stat_binomial_coef(int $x, int $n): float

Returns the binomial coefficient of n choose x.

Parâmetros

x

The number of chooses from the set

n

The number of elements in the set

Valor Retornado

Returns the binomial coefficient


Returns the Pearson correlation coefficient of two data sets

  • « stats_stat_binomial_coef
  • stats_stat_factorial »
  • PHP Manual
  • Statistic Funções
  • Returns the Pearson correlation coefficient of two data sets

stats_stat_correlation

(PECL stats >= 1.0.0)

stats_stat_correlation — Returns the Pearson correlation coefficient of two data sets

Descrição

stats_stat_correlation(array $arr1, array $arr2): float

Returns the Pearson correlation coefficient between arr1 and arr2.

Parâmetros

arr1

The first array

arr2

The second array

Valor Retornado

Returns the Pearson correlation coefficient between arr1 and arr2, or false on failure.


Returns the factorial of an integer

  • « stats_stat_correlation
  • stats_stat_independent_t »
  • PHP Manual
  • Statistic Funções
  • Returns the factorial of an integer

stats_stat_factorial

(PECL stats >= 1.0.0)

stats_stat_factorial — Returns the factorial of an integer

Descrição

stats_stat_factorial(int $n): float

Returns the factorial of an integer, n.

Parâmetros

n

An integer

Valor Retornado

The factorial of n.


Returns the t-value from the independent two-sample t-test

  • « stats_stat_factorial
  • stats_stat_innerproduct »
  • PHP Manual
  • Statistic Funções
  • Returns the t-value from the independent two-sample t-test

stats_stat_independent_t

(PECL stats >= 1.0.0)

stats_stat_independent_t — Returns the t-value from the independent two-sample t-test

Descrição

stats_stat_independent_t(array $arr1, array $arr2): float

Returns the t-value of the independent two-sample t-test between arr1 and arr2.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

arr1

The first set of values

arr2

The second set of values

Valor Retornado

Returns the t-value, or false if failure.


Returns the inner product of two vectors

  • « stats_stat_independent_t
  • stats_stat_paired_t »
  • PHP Manual
  • Statistic Funções
  • Returns the inner product of two vectors

stats_stat_innerproduct

(PECL stats >= 1.0.0)

stats_stat_innerproduct — Returns the inner product of two vectors

Descrição

stats_stat_innerproduct(array $arr1, array $arr2): float

Returns the inner product of arr1 and arr2.

Parâmetros

arr1

The first array

arr2

The second array

Valor Retornado

Returns the inner product of arr1 and arr2, or false on failure.


Returns the t-value of the dependent t-test for paired samples

  • « stats_stat_innerproduct
  • stats_stat_percentile »
  • PHP Manual
  • Statistic Funções
  • Returns the t-value of the dependent t-test for paired samples

stats_stat_paired_t

(PECL stats >= 1.0.0)

stats_stat_paired_t — Returns the t-value of the dependent t-test for paired samples

Descrição

stats_stat_paired_t(array $arr1, array $arr2): float

Returns the t-value of the dependent t-test for paired samples arr1 and arr2.

Parâmetros

arr1

The first samples

arr2

The second samples

Valor Retornado

Returns the t-value, or false if failure.


Returns the percentile value

  • « stats_stat_paired_t
  • stats_stat_powersum »
  • PHP Manual
  • Statistic Funções
  • Returns the percentile value

stats_stat_percentile

(PECL stats >= 1.0.0)

stats_stat_percentile — Returns the percentile value

Descrição

stats_stat_percentile(array $arr, float $perc): float

Returns the perc-th percentile value of the array arr.

Parâmetros

arr

The input array

perc

The percentile

Valor Retornado

Returns the percentile values of the input array.


Returns the power sum of a vector

  • « stats_stat_percentile
  • stats_variance »
  • PHP Manual
  • Statistic Funções
  • Returns the power sum of a vector

stats_stat_powersum

(PECL stats >= 1.0.0)

stats_stat_powersum — Returns the power sum of a vector

Descrição

stats_stat_powersum(array $arr, float $power): float

Returns the sum of the power-th power of a vector represented as an array arr.

Parâmetros

arr

The input array

power

The power

Valor Retornado

Returns the power sum of the input array.


Returns the variance

  • « stats_stat_powersum
  • Trader »
  • PHP Manual
  • Statistic Funções
  • Returns the variance

stats_variance

(PECL stats >= 1.0.0)

stats_variance — Returns the variance

Descrição

stats_variance(array $a, bool $sample = false): float

Returns the variance of the values in a.

Parâmetros

a

The array of data to find the standard deviation for. Note that all values of the array will be cast to float.

sample

Indicates if a represents a sample of the population; defaults to false.

Valor Retornado

Returns the variance on success; false on failure.


Technical Analysis for Traders

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
  • Constantes pré-definidas
  • Trader Funções
    • trader_acos — Vector Trigonometric ACos
    • trader_ad — Chaikin A/D Line
    • trader_add — Vector Arithmetic Add
    • trader_adosc — Chaikin A/D Oscillator
    • trader_adx — Average Directional Movement Index
    • trader_adxr — Average Directional Movement Index Rating
    • trader_apo — Absolute Price Oscillator
    • trader_aroon — Aroon
    • trader_aroonosc — Aroon Oscillator
    • trader_asin — Vector Trigonometric ASin
    • trader_atan — Vector Trigonometric ATan
    • trader_atr — Average True Range
    • trader_avgprice — Average Price
    • trader_bbands — Bollinger Bands
    • trader_beta — Beta
    • trader_bop — Balance Of Power
    • trader_cci — Commodity Channel Index
    • trader_cdl2crows — Two Crows
    • trader_cdl3blackcrows — Three Black Crows
    • trader_cdl3inside — Three Inside Up/Down
    • trader_cdl3linestrike — Three-Line Strike
    • trader_cdl3outside — Three Outside Up/Down
    • trader_cdl3starsinsouth — Three Stars In The South
    • trader_cdl3whitesoldiers — Three Advancing White Soldiers
    • trader_cdlabandonedbaby — Abandoned Baby
    • trader_cdladvanceblock — Advance Block
    • trader_cdlbelthold — Belt-hold
    • trader_cdlbreakaway — Breakaway
    • trader_cdlclosingmarubozu — Closing Marubozu
    • trader_cdlconcealbabyswall — Concealing Baby Swallow
    • trader_cdlcounterattack — Counterattack
    • trader_cdldarkcloudcover — Dark Cloud Cover
    • trader_cdldoji — Doji
    • trader_cdldojistar — Doji Star
    • trader_cdldragonflydoji — Dragonfly Doji
    • trader_cdlengulfing — Engulfing Pattern
    • trader_cdleveningdojistar — Evening Doji Star
    • trader_cdleveningstar — Evening Star
    • trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji — Gravestone Doji
    • trader_cdlhammer — Hammer
    • trader_cdlhangingman — Hanging Man
    • trader_cdlharami — Harami Pattern
    • trader_cdlharamicross — Harami Cross Pattern
    • trader_cdlhighwave — High-Wave Candle
    • trader_cdlhikkake — Hikkake Pattern
    • trader_cdlhikkakemod — Modified Hikkake Pattern
    • trader_cdlhomingpigeon — Homing Pigeon
    • trader_cdlidentical3crows — Identical Three Crows
    • trader_cdlinneck — In-Neck Pattern
    • trader_cdlinvertedhammer — Inverted Hammer
    • trader_cdlkicking — Kicking
    • trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu
    • trader_cdlladderbottom — Ladder Bottom
    • trader_cdllongleggeddoji — Long Legged Doji
    • trader_cdllongline — Long Line Candle
    • trader_cdlmarubozu — Marubozu
    • trader_cdlmatchinglow — Matching Low
    • trader_cdlmathold — Mat Hold
    • trader_cdlmorningdojistar — Morning Doji Star
    • trader_cdlmorningstar — Morning Star
    • trader_cdlonneck — On-Neck Pattern
    • trader_cdlpiercing — Piercing Pattern
    • trader_cdlrickshawman — Rickshaw Man
    • trader_cdlrisefall3methods — Rising/Falling Three Methods
    • trader_cdlseparatinglines — Separating Lines
    • trader_cdlshootingstar — Shooting Star
    • trader_cdlshortline — Short Line Candle
    • trader_cdlspinningtop — Spinning Top
    • trader_cdlstalledpattern — Stalled Pattern
    • trader_cdlsticksandwich — Stick Sandwich
    • trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)
    • trader_cdltasukigap — Tasuki Gap
    • trader_cdlthrusting — Thrusting Pattern
    • trader_cdltristar — Tristar Pattern
    • trader_cdlunique3river — Unique 3 River
    • trader_cdlupsidegap2crows — Upside Gap Two Crows
    • trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods
    • trader_ceil — Vector Ceil
    • trader_cmo — Chande Momentum Oscillator
    • trader_correl — Pearson's Correlation Coefficient (r)
    • trader_cos — Vector Trigonometric Cos
    • trader_cosh — Vector Trigonometric Cosh
    • trader_dema — Double Exponential Moving Average
    • trader_div — Vector Arithmetic Div
    • trader_dx — Directional Movement Index
    • trader_ema — Exponential Moving Average
    • trader_errno — Get error code
    • trader_exp — Vector Arithmetic Exp
    • trader_floor — Vector Floor
    • trader_get_compat — Get compatibility mode
    • trader_get_unstable_period — Get unstable period
    • trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period
    • trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase
    • trader_ht_phasor — Hilbert Transform - Phasor Components
    • trader_ht_sine — Hilbert Transform - SineWave
    • trader_ht_trendline — Hilbert Transform - Instantaneous Trendline
    • trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode
    • trader_kama — Kaufman Adaptive Moving Average
    • trader_linearreg_angle — Linear Regression Angle
    • trader_linearreg_intercept — Linear Regression Intercept
    • trader_linearreg_slope — Linear Regression Slope
    • trader_linearreg — Linear Regression
    • trader_ln — Vector Log Natural
    • trader_log10 — Vector Log10
    • trader_ma — Moving average
    • trader_macd — Moving Average Convergence/Divergence
    • trader_macdext — MACD with controllable MA type
    • trader_macdfix — Moving Average Convergence/Divergence Fix 12/26
    • trader_mama — MESA Adaptive Moving Average
    • trader_mavp — Moving average with variable period
    • trader_max — Highest value over a specified period
    • trader_maxindex — Index of highest value over a specified period
    • trader_medprice — Median Price
    • trader_mfi — Money Flow Index
    • trader_midpoint — MidPoint over period
    • trader_midprice — Midpoint Price over period
    • trader_min — Lowest value over a specified period
    • trader_minindex — Index of lowest value over a specified period
    • trader_minmax — Lowest and highest values over a specified period
    • trader_minmaxindex — Indexes of lowest and highest values over a specified period
    • trader_minus_di — Minus Directional Indicator
    • trader_minus_dm — Minus Directional Movement
    • trader_mom — Momentum
    • trader_mult — Vector Arithmetic Mult
    • trader_natr — Normalized Average True Range
    • trader_obv — On Balance Volume
    • trader_plus_di — Plus Directional Indicator
    • trader_plus_dm — Plus Directional Movement
    • trader_ppo — Percentage Price Oscillator
    • trader_roc — Rate of change : ((price/prevPrice)-1)*100
    • trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice
    • trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100
    • trader_rocr — Rate of change ratio: (price/prevPrice)
    • trader_rsi — Relative Strength Index
    • trader_sar — Parabolic SAR
    • trader_sarext — Parabolic SAR - Extended
    • trader_set_compat — Set compatibility mode
    • trader_set_unstable_period — Set unstable period
    • trader_sin — Vector Trigonometric Sin
    • trader_sinh — Vector Trigonometric Sinh
    • trader_sma — Simple Moving Average
    • trader_sqrt — Vector Square Root
    • trader_stddev — Standard Deviation
    • trader_stoch — Stochastic
    • trader_stochf — Stochastic Fast
    • trader_stochrsi — Stochastic Relative Strength Index
    • trader_sub — Vector Arithmetic Subtraction
    • trader_sum — Summation
    • trader_t3 — Triple Exponential Moving Average (T3)
    • trader_tan — Vector Trigonometric Tan
    • trader_tanh — Vector Trigonometric Tanh
    • trader_tema — Triple Exponential Moving Average
    • trader_trange — True Range
    • trader_trima — Triangular Moving Average
    • trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
    • trader_tsf — Time Series Forecast
    • trader_typprice — Typical Price
    • trader_ultosc — Ultimate Oscillator
    • trader_var — Variance
    • trader_wclprice — Weighted Close Price
    • trader_willr — Williams' %R
    • trader_wma — Weighted Moving Average


Introdução

The trader extension is a free open source stock library based on TA-Lib. It's dedicated to trading software developers requiring to perform technical analysis of financial market data. Alongside many indicators like ADX, MACD, RSI, Stochastic, TRIX the candlestick pattern recognition and several vector arithmetic and algebraic functions are present.

Calculations can be done in two modes - TA-Lib and Metastock. Changing it using trader_set_compat() will affect the way some trader functions work.

Some trader functions provide different results depending of the "starting point" of the data being involved. This is often referred as a function having memories. An example of such function is the Exponential Moving Average. It is possible to control the unstable period (the amount of data to strip off) using trader_set_unstable_period() function.

Extended documentation about indicators, formulas and implementations in other programming languages can be found under » tadoc.org.


Dependências

The trader extension is based on » TA-Lib. TA-Lib is fully integrated into the extension, therefore no external libraries are needed.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/trader.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/trader/.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Trader Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
trader.real_precision | 3 | INI_ALL | Since trader 0.2.1
trader.real_round_mode | HALF_DOWN | INI_ALL | Since trader 0.3.0

Aqui está uma breve explicação das diretivas de configuração.

trader.real_precision int

All the values in the returned arrays will be rounded to this precision. However the calculations inside TA-Lib happen with unrounded values.

trader.real_round_mode string

Controls the trader real rounding policy. Valid values are HALF_UP, HALF_DOWN, HALF_EVEN and HALF_ODD. The behaviour is identical to the round() function used with the mode argument.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

TRADER_MA_TYPE_SMA (int)
TRADER_MA_TYPE_EMA (int)
TRADER_MA_TYPE_WMA (int)
TRADER_MA_TYPE_DEMA (int)
TRADER_MA_TYPE_TEMA (int)
TRADER_MA_TYPE_TRIMA (int)
TRADER_MA_TYPE_KAMA (int)
TRADER_MA_TYPE_MAMA (int)
TRADER_MA_TYPE_T3 (int)
TRADER_REAL_MIN (float)
TRADER_REAL_MAX (float)
TRADER_FUNC_UNST_ADX (int)
TRADER_FUNC_UNST_ADXR (int)
TRADER_FUNC_UNST_ATR (int)
TRADER_FUNC_UNST_CMO (int)
TRADER_FUNC_UNST_DX (int)
TRADER_FUNC_UNST_EMA (int)
TRADER_FUNC_UNST_HT_DCPERIOD (int)
TRADER_FUNC_UNST_HT_DCPHASE (int)
TRADER_FUNC_UNST_HT_PHASOR (int)
TRADER_FUNC_UNST_HT_SINE (int)
TRADER_FUNC_UNST_HT_TRENDLINE (int)
TRADER_FUNC_UNST_HT_TRENDMODE (int)
TRADER_FUNC_UNST_KAMA (int)
TRADER_FUNC_UNST_MAMA (int)
TRADER_FUNC_UNST_MFI (int)
TRADER_FUNC_UNST_MINUS_DI (int)
TRADER_FUNC_UNST_MINUS_DM (int)
TRADER_FUNC_UNST_NATR (int)
TRADER_FUNC_UNST_PLUS_DI (int)
TRADER_FUNC_UNST_PLUS_DM (int)
TRADER_FUNC_UNST_RSI (int)
TRADER_FUNC_UNST_STOCHRSI (int)
TRADER_FUNC_UNST_T3 (int)
TRADER_FUNC_UNST_ALL (int)
TRADER_FUNC_UNST_NONE (int)
TRADER_COMPATIBILITY_DEFAULT (int)
TRADER_COMPATIBILITY_METASTOCK (int)
TRADER_ERR_SUCCESS (int)
TRADER_ERR_LIB_NOT_INITIALIZE (int)
TRADER_ERR_BAD_PARAM (int)
TRADER_ERR_ALLOC_ERR (int)
TRADER_ERR_GROUP_NOT_FOUND (int)
TRADER_ERR_FUNC_NOT_FOUND (int)
TRADER_ERR_INVALID_HANDLE (int)
TRADER_ERR_INVALID_PARAM_HOLDER (int)
TRADER_ERR_INVALID_PARAM_HOLDER_TYPE (int)
TRADER_ERR_INVALID_PARAM_FUNCTION (int)
TRADER_ERR_INPUT_NOT_ALL_INITIALIZE (int)
TRADER_ERR_OUTPUT_NOT_ALL_INITIALIZE (int)
TRADER_ERR_OUT_OF_RANGE_START_INDEX (int)
TRADER_ERR_OUT_OF_RANGE_END_INDEX (int)
TRADER_ERR_INVALID_LIST_TYPE (int)
TRADER_ERR_BAD_OBJECT (int)
TRADER_ERR_NOT_SUPPORTED (int)
TRADER_ERR_INTERNAL_ERROR (int)
TRADER_ERR_UNKNOWN_ERROR (int)


Trader Funções

Índice

  • trader_acos — Vector Trigonometric ACos
  • trader_ad — Chaikin A/D Line
  • trader_add — Vector Arithmetic Add
  • trader_adosc — Chaikin A/D Oscillator
  • trader_adx — Average Directional Movement Index
  • trader_adxr — Average Directional Movement Index Rating
  • trader_apo — Absolute Price Oscillator
  • trader_aroon — Aroon
  • trader_aroonosc — Aroon Oscillator
  • trader_asin — Vector Trigonometric ASin
  • trader_atan — Vector Trigonometric ATan
  • trader_atr — Average True Range
  • trader_avgprice — Average Price
  • trader_bbands — Bollinger Bands
  • trader_beta — Beta
  • trader_bop — Balance Of Power
  • trader_cci — Commodity Channel Index
  • trader_cdl2crows — Two Crows
  • trader_cdl3blackcrows — Three Black Crows
  • trader_cdl3inside — Three Inside Up/Down
  • trader_cdl3linestrike — Three-Line Strike
  • trader_cdl3outside — Three Outside Up/Down
  • trader_cdl3starsinsouth — Three Stars In The South
  • trader_cdl3whitesoldiers — Three Advancing White Soldiers
  • trader_cdlabandonedbaby — Abandoned Baby
  • trader_cdladvanceblock — Advance Block
  • trader_cdlbelthold — Belt-hold
  • trader_cdlbreakaway — Breakaway
  • trader_cdlclosingmarubozu — Closing Marubozu
  • trader_cdlconcealbabyswall — Concealing Baby Swallow
  • trader_cdlcounterattack — Counterattack
  • trader_cdldarkcloudcover — Dark Cloud Cover
  • trader_cdldoji — Doji
  • trader_cdldojistar — Doji Star
  • trader_cdldragonflydoji — Dragonfly Doji
  • trader_cdlengulfing — Engulfing Pattern
  • trader_cdleveningdojistar — Evening Doji Star
  • trader_cdleveningstar — Evening Star
  • trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines
  • trader_cdlgravestonedoji — Gravestone Doji
  • trader_cdlhammer — Hammer
  • trader_cdlhangingman — Hanging Man
  • trader_cdlharami — Harami Pattern
  • trader_cdlharamicross — Harami Cross Pattern
  • trader_cdlhighwave — High-Wave Candle
  • trader_cdlhikkake — Hikkake Pattern
  • trader_cdlhikkakemod — Modified Hikkake Pattern
  • trader_cdlhomingpigeon — Homing Pigeon
  • trader_cdlidentical3crows — Identical Three Crows
  • trader_cdlinneck — In-Neck Pattern
  • trader_cdlinvertedhammer — Inverted Hammer
  • trader_cdlkicking — Kicking
  • trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu
  • trader_cdlladderbottom — Ladder Bottom
  • trader_cdllongleggeddoji — Long Legged Doji
  • trader_cdllongline — Long Line Candle
  • trader_cdlmarubozu — Marubozu
  • trader_cdlmatchinglow — Matching Low
  • trader_cdlmathold — Mat Hold
  • trader_cdlmorningdojistar — Morning Doji Star
  • trader_cdlmorningstar — Morning Star
  • trader_cdlonneck — On-Neck Pattern
  • trader_cdlpiercing — Piercing Pattern
  • trader_cdlrickshawman — Rickshaw Man
  • trader_cdlrisefall3methods — Rising/Falling Three Methods
  • trader_cdlseparatinglines — Separating Lines
  • trader_cdlshootingstar — Shooting Star
  • trader_cdlshortline — Short Line Candle
  • trader_cdlspinningtop — Spinning Top
  • trader_cdlstalledpattern — Stalled Pattern
  • trader_cdlsticksandwich — Stick Sandwich
  • trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)
  • trader_cdltasukigap — Tasuki Gap
  • trader_cdlthrusting — Thrusting Pattern
  • trader_cdltristar — Tristar Pattern
  • trader_cdlunique3river — Unique 3 River
  • trader_cdlupsidegap2crows — Upside Gap Two Crows
  • trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods
  • trader_ceil — Vector Ceil
  • trader_cmo — Chande Momentum Oscillator
  • trader_correl — Pearson's Correlation Coefficient (r)
  • trader_cos — Vector Trigonometric Cos
  • trader_cosh — Vector Trigonometric Cosh
  • trader_dema — Double Exponential Moving Average
  • trader_div — Vector Arithmetic Div
  • trader_dx — Directional Movement Index
  • trader_ema — Exponential Moving Average
  • trader_errno — Get error code
  • trader_exp — Vector Arithmetic Exp
  • trader_floor — Vector Floor
  • trader_get_compat — Get compatibility mode
  • trader_get_unstable_period — Get unstable period
  • trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period
  • trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase
  • trader_ht_phasor — Hilbert Transform - Phasor Components
  • trader_ht_sine — Hilbert Transform - SineWave
  • trader_ht_trendline — Hilbert Transform - Instantaneous Trendline
  • trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode
  • trader_kama — Kaufman Adaptive Moving Average
  • trader_linearreg_angle — Linear Regression Angle
  • trader_linearreg_intercept — Linear Regression Intercept
  • trader_linearreg_slope — Linear Regression Slope
  • trader_linearreg — Linear Regression
  • trader_ln — Vector Log Natural
  • trader_log10 — Vector Log10
  • trader_ma — Moving average
  • trader_macd — Moving Average Convergence/Divergence
  • trader_macdext — MACD with controllable MA type
  • trader_macdfix — Moving Average Convergence/Divergence Fix 12/26
  • trader_mama — MESA Adaptive Moving Average
  • trader_mavp — Moving average with variable period
  • trader_max — Highest value over a specified period
  • trader_maxindex — Index of highest value over a specified period
  • trader_medprice — Median Price
  • trader_mfi — Money Flow Index
  • trader_midpoint — MidPoint over period
  • trader_midprice — Midpoint Price over period
  • trader_min — Lowest value over a specified period
  • trader_minindex — Index of lowest value over a specified period
  • trader_minmax — Lowest and highest values over a specified period
  • trader_minmaxindex — Indexes of lowest and highest values over a specified period
  • trader_minus_di — Minus Directional Indicator
  • trader_minus_dm — Minus Directional Movement
  • trader_mom — Momentum
  • trader_mult — Vector Arithmetic Mult
  • trader_natr — Normalized Average True Range
  • trader_obv — On Balance Volume
  • trader_plus_di — Plus Directional Indicator
  • trader_plus_dm — Plus Directional Movement
  • trader_ppo — Percentage Price Oscillator
  • trader_roc — Rate of change : ((price/prevPrice)-1)*100
  • trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice
  • trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100
  • trader_rocr — Rate of change ratio: (price/prevPrice)
  • trader_rsi — Relative Strength Index
  • trader_sar — Parabolic SAR
  • trader_sarext — Parabolic SAR - Extended
  • trader_set_compat — Set compatibility mode
  • trader_set_unstable_period — Set unstable period
  • trader_sin — Vector Trigonometric Sin
  • trader_sinh — Vector Trigonometric Sinh
  • trader_sma — Simple Moving Average
  • trader_sqrt — Vector Square Root
  • trader_stddev — Standard Deviation
  • trader_stoch — Stochastic
  • trader_stochf — Stochastic Fast
  • trader_stochrsi — Stochastic Relative Strength Index
  • trader_sub — Vector Arithmetic Subtraction
  • trader_sum — Summation
  • trader_t3 — Triple Exponential Moving Average (T3)
  • trader_tan — Vector Trigonometric Tan
  • trader_tanh — Vector Trigonometric Tanh
  • trader_tema — Triple Exponential Moving Average
  • trader_trange — True Range
  • trader_trima — Triangular Moving Average
  • trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
  • trader_tsf — Time Series Forecast
  • trader_typprice — Typical Price
  • trader_ultosc — Ultimate Oscillator
  • trader_var — Variance
  • trader_wclprice — Weighted Close Price
  • trader_willr — Williams' %R
  • trader_wma — Weighted Moving Average


Vector Trigonometric ACos

  • « Trader Funções
  • trader_ad »
  • PHP Manual
  • Trader Funções
  • Vector Trigonometric ACos

trader_acos

(PECL trader >= 0.2.0)

trader_acos — Vector Trigonometric ACos

Descrição

trader_acos(array $real): array

Calculates the arc cosine for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Chaikin A/D Line

  • « trader_acos
  • trader_add »
  • PHP Manual
  • Trader Funções
  • Chaikin A/D Line

trader_ad

(PECL trader >= 0.2.0)

trader_ad — Chaikin A/D Line

Descrição

trader_ad(
array $high,
array $low,
array $close,
array $volume
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

volume

Volume negociado, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Arithmetic Add

  • « trader_ad
  • trader_adosc »
  • PHP Manual
  • Trader Funções
  • Vector Arithmetic Add

trader_add

(PECL trader >= 0.2.0)

trader_add — Vector Arithmetic Add

Descrição

trader_add(array $real0, array $real1): array

Calculates the vector addition of real0 to real1 and returns the resulting vector.

Parâmetros

real0

Array de valores reais.

real1

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Chaikin A/D Oscillator

  • « trader_add
  • trader_adx »
  • PHP Manual
  • Trader Funções
  • Chaikin A/D Oscillator

trader_adosc

(PECL trader >= 0.2.0)

trader_adosc — Chaikin A/D Oscillator

Descrição

trader_adosc(
array $high,
array $low,
array $close,
array $volume,
int $fastPeriod = ?,
int $slowPeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

volume

Volume negociado, array de valores reais.

fastPeriod

Número de período para o MA rápido. Intervalo válido de 2 a 100000.

slowPeriod

Número de período para o MA lento. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Average Directional Movement Index

  • « trader_adosc
  • trader_adxr »
  • PHP Manual
  • Trader Funções
  • Average Directional Movement Index

trader_adx

(PECL trader >= 0.2.0)

trader_adx — Average Directional Movement Index

Descrição

trader_adx(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Average Directional Movement Index Rating

  • « trader_adx
  • trader_apo »
  • PHP Manual
  • Trader Funções
  • Average Directional Movement Index Rating

trader_adxr

(PECL trader >= 0.2.0)

trader_adxr — Average Directional Movement Index Rating

Descrição

trader_adxr(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Absolute Price Oscillator

  • « trader_adxr
  • trader_aroon »
  • PHP Manual
  • Trader Funções
  • Absolute Price Oscillator

trader_apo

(PECL trader >= 0.2.0)

trader_apo — Absolute Price Oscillator

Descrição

trader_apo(
array $real,
int $fastPeriod = ?,
int $slowPeriod = ?,
int $mAType = ?
): array

Parâmetros

real

Array de valores reais.

fastPeriod

Número de período para o MA rápido. Intervalo válido de 2 a 100000.

slowPeriod

Número de período para o MA lento. Intervalo válido de 2 a 100000.

mAType

Tipo de Média Móvel. As constantes TRADER_MA_TYPE_* devem ser usadas.

Valor Retornado

Returns an array with calculated data or false on failure.


Aroon

  • « trader_apo
  • trader_aroonosc »
  • PHP Manual
  • Trader Funções
  • Aroon

trader_aroon

(PECL trader >= 0.2.0)

trader_aroon — Aroon

Descrição

trader_aroon(array $high, array $low, int $timePeriod = ?): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Aroon Oscillator

  • « trader_aroon
  • trader_asin »
  • PHP Manual
  • Trader Funções
  • Aroon Oscillator

trader_aroonosc

(PECL trader >= 0.2.0)

trader_aroonosc — Aroon Oscillator

Descrição

trader_aroonosc(array $high, array $low, int $timePeriod = ?): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Trigonometric ASin

  • « trader_aroonosc
  • trader_atan »
  • PHP Manual
  • Trader Funções
  • Vector Trigonometric ASin

trader_asin

(PECL trader >= 0.2.0)

trader_asin — Vector Trigonometric ASin

Descrição

trader_asin(array $real): array

Calculates the arc sine for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Trigonometric ATan

  • « trader_asin
  • trader_atr »
  • PHP Manual
  • Trader Funções
  • Vector Trigonometric ATan

trader_atan

(PECL trader >= 0.2.0)

trader_atan — Vector Trigonometric ATan

Descrição

trader_atan(array $real): array

Calculates the arc tangent for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Average True Range

  • « trader_atan
  • trader_avgprice »
  • PHP Manual
  • Trader Funções
  • Average True Range

trader_atr

(PECL trader >= 0.2.0)

trader_atr — Average True Range

Descrição

trader_atr(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Average Price

  • « trader_atr
  • trader_bbands »
  • PHP Manual
  • Trader Funções
  • Average Price

trader_avgprice

(PECL trader >= 0.2.0)

trader_avgprice — Average Price

Descrição

trader_avgprice(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Bollinger Bands

  • « trader_avgprice
  • trader_beta »
  • PHP Manual
  • Trader Funções
  • Bollinger Bands

trader_bbands

(PECL trader >= 0.2.0)

trader_bbands — Bollinger Bands

Descrição

trader_bbands(
array $real,
int $timePeriod = ?,
float $nbDevUp = ?,
float $nbDevDn = ?,
int $mAType = ?
): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

nbDevUp

Multiplicador de desvio para banda superior. Intervalo válido de TRADER_REAL_MIN a TRADER_REAL_MAX.

nbDevDn

Multiplicador de desvio para a banda inferior. Intervalo válido de TRADER_REAL_MIN a TRADER_REAL_MAX.

mAType

Tipo de Média Móvel. As constantes TRADER_MA_TYPE_* devem ser usadas.

Valor Retornado

Returns an array with calculated data or false on failure.


Beta

  • « trader_bbands
  • trader_bop »
  • PHP Manual
  • Trader Funções
  • Beta

trader_beta

(PECL trader >= 0.2.0)

trader_beta — Beta

Descrição

trader_beta(array $real0, array $real1, int $timePeriod = ?): array

Parâmetros

real0

Array de valores reais.

real1

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Balance Of Power

  • « trader_beta
  • trader_cci »
  • PHP Manual
  • Trader Funções
  • Balance Of Power

trader_bop

(PECL trader >= 0.2.0)

trader_bop — Balance Of Power

Descrição

trader_bop(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Commodity Channel Index

  • « trader_bop
  • trader_cdl2crows »
  • PHP Manual
  • Trader Funções
  • Commodity Channel Index

trader_cci

(PECL trader >= 0.2.0)

trader_cci — Commodity Channel Index

Descrição

trader_cci(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Two Crows

  • « trader_cci
  • trader_cdl3blackcrows »
  • PHP Manual
  • Trader Funções
  • Two Crows

trader_cdl2crows

(PECL trader >= 0.2.0)

trader_cdl2crows — Two Crows

Descrição

trader_cdl2crows(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Three Black Crows

  • « trader_cdl2crows
  • trader_cdl3inside »
  • PHP Manual
  • Trader Funções
  • Three Black Crows

trader_cdl3blackcrows

(PECL trader >= 0.2.0)

trader_cdl3blackcrows — Three Black Crows

Descrição

trader_cdl3blackcrows(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Three Inside Up/Down

  • « trader_cdl3blackcrows
  • trader_cdl3linestrike »
  • PHP Manual
  • Trader Funções
  • Three Inside Up/Down

trader_cdl3inside

(PECL trader >= 0.2.0)

trader_cdl3inside — Three Inside Up/Down

Descrição

trader_cdl3inside(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Three-Line Strike

  • « trader_cdl3inside
  • trader_cdl3outside »
  • PHP Manual
  • Trader Funções
  • Three-Line Strike

trader_cdl3linestrike

(PECL trader >= 0.2.0)

trader_cdl3linestrike — Three-Line Strike

Descrição

trader_cdl3linestrike(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Three Outside Up/Down

  • « trader_cdl3linestrike
  • trader_cdl3starsinsouth »
  • PHP Manual
  • Trader Funções
  • Three Outside Up/Down

trader_cdl3outside

(PECL trader >= 0.2.0)

trader_cdl3outside — Three Outside Up/Down

Descrição

trader_cdl3outside(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Three Stars In The South

  • « trader_cdl3outside
  • trader_cdl3whitesoldiers »
  • PHP Manual
  • Trader Funções
  • Three Stars In The South

trader_cdl3starsinsouth

(PECL trader >= 0.2.0)

trader_cdl3starsinsouth — Three Stars In The South

Descrição

trader_cdl3starsinsouth(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Three Advancing White Soldiers

  • « trader_cdl3starsinsouth
  • trader_cdlabandonedbaby »
  • PHP Manual
  • Trader Funções
  • Three Advancing White Soldiers

trader_cdl3whitesoldiers

(PECL trader >= 0.2.0)

trader_cdl3whitesoldiers — Three Advancing White Soldiers

Descrição

trader_cdl3whitesoldiers(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Abandoned Baby

  • « trader_cdl3whitesoldiers
  • trader_cdladvanceblock »
  • PHP Manual
  • Trader Funções
  • Abandoned Baby

trader_cdlabandonedbaby

(PECL trader >= 0.2.0)

trader_cdlabandonedbaby — Abandoned Baby

Descrição

trader_cdlabandonedbaby(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

penetration

Percentual de penetração de um candle em outro candle.

Valor Retornado

Returns an array with calculated data or false on failure.


Advance Block

  • « trader_cdlabandonedbaby
  • trader_cdlbelthold »
  • PHP Manual
  • Trader Funções
  • Advance Block

trader_cdladvanceblock

(PECL trader >= 0.2.0)

trader_cdladvanceblock — Advance Block

Descrição

trader_cdladvanceblock(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Belt-hold

  • « trader_cdladvanceblock
  • trader_cdlbreakaway »
  • PHP Manual
  • Trader Funções
  • Belt-hold

trader_cdlbelthold

(PECL trader >= 0.2.0)

trader_cdlbelthold — Belt-hold

Descrição

trader_cdlbelthold(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Breakaway

  • « trader_cdlbelthold
  • trader_cdlclosingmarubozu »
  • PHP Manual
  • Trader Funções
  • Breakaway

trader_cdlbreakaway

(PECL trader >= 0.2.0)

trader_cdlbreakaway — Breakaway

Descrição

trader_cdlbreakaway(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Closing Marubozu

  • « trader_cdlbreakaway
  • trader_cdlconcealbabyswall »
  • PHP Manual
  • Trader Funções
  • Closing Marubozu

trader_cdlclosingmarubozu

(PECL trader >= 0.2.0)

trader_cdlclosingmarubozu — Closing Marubozu

Descrição

trader_cdlclosingmarubozu(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Concealing Baby Swallow

  • « trader_cdlclosingmarubozu
  • trader_cdlcounterattack »
  • PHP Manual
  • Trader Funções
  • Concealing Baby Swallow

trader_cdlconcealbabyswall

(PECL trader >= 0.2.0)

trader_cdlconcealbabyswall — Concealing Baby Swallow

Descrição

trader_cdlconcealbabyswall(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Counterattack

  • « trader_cdlconcealbabyswall
  • trader_cdldarkcloudcover »
  • PHP Manual
  • Trader Funções
  • Counterattack

trader_cdlcounterattack

(PECL trader >= 0.2.0)

trader_cdlcounterattack — Counterattack

Descrição

trader_cdlcounterattack(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Dark Cloud Cover

  • « trader_cdlcounterattack
  • trader_cdldoji »
  • PHP Manual
  • Trader Funções
  • Dark Cloud Cover

trader_cdldarkcloudcover

(PECL trader >= 0.2.0)

trader_cdldarkcloudcover — Dark Cloud Cover

Descrição

trader_cdldarkcloudcover(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

penetration

Percentual de penetração de um candle em outro candle.

Valor Retornado

Returns an array with calculated data or false on failure.


Doji

  • « trader_cdldarkcloudcover
  • trader_cdldojistar »
  • PHP Manual
  • Trader Funções
  • Doji

trader_cdldoji

(PECL trader >= 0.2.0)

trader_cdldoji — Doji

Descrição

trader_cdldoji(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Doji Star

  • « trader_cdldoji
  • trader_cdldragonflydoji »
  • PHP Manual
  • Trader Funções
  • Doji Star

trader_cdldojistar

(PECL trader >= 0.2.0)

trader_cdldojistar — Doji Star

Descrição

trader_cdldojistar(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Dragonfly Doji

  • « trader_cdldojistar
  • trader_cdlengulfing »
  • PHP Manual
  • Trader Funções
  • Dragonfly Doji

trader_cdldragonflydoji

(PECL trader >= 0.2.0)

trader_cdldragonflydoji — Dragonfly Doji

Descrição

trader_cdldragonflydoji(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Engulfing Pattern

  • « trader_cdldragonflydoji
  • trader_cdleveningdojistar »
  • PHP Manual
  • Trader Funções
  • Engulfing Pattern

trader_cdlengulfing

(PECL trader >= 0.2.0)

trader_cdlengulfing — Engulfing Pattern

Descrição

trader_cdlengulfing(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Evening Doji Star

  • « trader_cdlengulfing
  • trader_cdleveningstar »
  • PHP Manual
  • Trader Funções
  • Evening Doji Star

trader_cdleveningdojistar

(PECL trader >= 0.2.0)

trader_cdleveningdojistar — Evening Doji Star

Descrição

trader_cdleveningdojistar(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

penetration

Percentual de penetração de um candle em outro candle.

Valor Retornado

Returns an array with calculated data or false on failure.


Evening Star

  • « trader_cdleveningdojistar
  • trader_cdlgapsidesidewhite »
  • PHP Manual
  • Trader Funções
  • Evening Star

trader_cdleveningstar

(PECL trader >= 0.2.0)

trader_cdleveningstar — Evening Star

Descrição

trader_cdleveningstar(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

penetration

Percentual de penetração de um candle em outro candle.

Valor Retornado

Returns an array with calculated data or false on failure.


Up/Down-gap side-by-side white lines

  • « trader_cdleveningstar
  • trader_cdlgravestonedoji »
  • PHP Manual
  • Trader Funções
  • Up/Down-gap side-by-side white lines

trader_cdlgapsidesidewhite

(PECL trader >= 0.2.0)

trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines

Descrição

trader_cdlgapsidesidewhite(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Gravestone Doji

  • « trader_cdlgapsidesidewhite
  • trader_cdlhammer »
  • PHP Manual
  • Trader Funções
  • Gravestone Doji

trader_cdlgravestonedoji

(PECL trader >= 0.2.0)

trader_cdlgravestonedoji — Gravestone Doji

Descrição

trader_cdlgravestonedoji(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Hammer

  • « trader_cdlgravestonedoji
  • trader_cdlhangingman »
  • PHP Manual
  • Trader Funções
  • Hammer

trader_cdlhammer

(PECL trader >= 0.2.0)

trader_cdlhammer — Hammer

Descrição

trader_cdlhammer(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Hanging Man

  • « trader_cdlhammer
  • trader_cdlharami »
  • PHP Manual
  • Trader Funções
  • Hanging Man

trader_cdlhangingman

(PECL trader >= 0.2.0)

trader_cdlhangingman — Hanging Man

Descrição

trader_cdlhangingman(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Harami Pattern

  • « trader_cdlhangingman
  • trader_cdlharamicross »
  • PHP Manual
  • Trader Funções
  • Harami Pattern

trader_cdlharami

(PECL trader >= 0.2.0)

trader_cdlharami — Harami Pattern

Descrição

trader_cdlharami(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Harami Cross Pattern

  • « trader_cdlharami
  • trader_cdlhighwave »
  • PHP Manual
  • Trader Funções
  • Harami Cross Pattern

trader_cdlharamicross

(PECL trader >= 0.2.0)

trader_cdlharamicross — Harami Cross Pattern

Descrição

trader_cdlharamicross(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


High-Wave Candle

  • « trader_cdlharamicross
  • trader_cdlhikkake »
  • PHP Manual
  • Trader Funções
  • High-Wave Candle

trader_cdlhighwave

(PECL trader >= 0.2.0)

trader_cdlhighwave — High-Wave Candle

Descrição

trader_cdlhighwave(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Hikkake Pattern

  • « trader_cdlhighwave
  • trader_cdlhikkakemod »
  • PHP Manual
  • Trader Funções
  • Hikkake Pattern

trader_cdlhikkake

(PECL trader >= 0.2.0)

trader_cdlhikkake — Hikkake Pattern

Descrição

trader_cdlhikkake(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Modified Hikkake Pattern

  • « trader_cdlhikkake
  • trader_cdlhomingpigeon »
  • PHP Manual
  • Trader Funções
  • Modified Hikkake Pattern

trader_cdlhikkakemod

(PECL trader >= 0.2.0)

trader_cdlhikkakemod — Modified Hikkake Pattern

Descrição

trader_cdlhikkakemod(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Homing Pigeon

  • « trader_cdlhikkakemod
  • trader_cdlidentical3crows »
  • PHP Manual
  • Trader Funções
  • Homing Pigeon

trader_cdlhomingpigeon

(PECL trader >= 0.2.0)

trader_cdlhomingpigeon — Homing Pigeon

Descrição

trader_cdlhomingpigeon(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Identical Three Crows

  • « trader_cdlhomingpigeon
  • trader_cdlinneck »
  • PHP Manual
  • Trader Funções
  • Identical Three Crows

trader_cdlidentical3crows

(PECL trader >= 0.2.0)

trader_cdlidentical3crows — Identical Three Crows

Descrição

trader_cdlidentical3crows(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


In-Neck Pattern

  • « trader_cdlidentical3crows
  • trader_cdlinvertedhammer »
  • PHP Manual
  • Trader Funções
  • In-Neck Pattern

trader_cdlinneck

(PECL trader >= 0.2.0)

trader_cdlinneck — In-Neck Pattern

Descrição

trader_cdlinneck(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Inverted Hammer

  • « trader_cdlinneck
  • trader_cdlkicking »
  • PHP Manual
  • Trader Funções
  • Inverted Hammer

trader_cdlinvertedhammer

(PECL trader >= 0.2.0)

trader_cdlinvertedhammer — Inverted Hammer

Descrição

trader_cdlinvertedhammer(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Kicking

  • « trader_cdlinvertedhammer
  • trader_cdlkickingbylength »
  • PHP Manual
  • Trader Funções
  • Kicking

trader_cdlkicking

(PECL trader >= 0.2.0)

trader_cdlkicking — Kicking

Descrição

trader_cdlkicking(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Kicking - bull/bear determined by the longer marubozu

  • « trader_cdlkicking
  • trader_cdlladderbottom »
  • PHP Manual
  • Trader Funções
  • Kicking - bull/bear determined by the longer marubozu

trader_cdlkickingbylength

(PECL trader >= 0.2.0)

trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu

Descrição

trader_cdlkickingbylength(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Ladder Bottom

  • « trader_cdlkickingbylength
  • trader_cdllongleggeddoji »
  • PHP Manual
  • Trader Funções
  • Ladder Bottom

trader_cdlladderbottom

(PECL trader >= 0.2.0)

trader_cdlladderbottom — Ladder Bottom

Descrição

trader_cdlladderbottom(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Long Legged Doji

  • « trader_cdlladderbottom
  • trader_cdllongline »
  • PHP Manual
  • Trader Funções
  • Long Legged Doji

trader_cdllongleggeddoji

(PECL trader >= 0.2.0)

trader_cdllongleggeddoji — Long Legged Doji

Descrição

trader_cdllongleggeddoji(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Long Line Candle

  • « trader_cdllongleggeddoji
  • trader_cdlmarubozu »
  • PHP Manual
  • Trader Funções
  • Long Line Candle

trader_cdllongline

(PECL trader >= 0.2.0)

trader_cdllongline — Long Line Candle

Descrição

trader_cdllongline(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Marubozu

  • « trader_cdllongline
  • trader_cdlmatchinglow »
  • PHP Manual
  • Trader Funções
  • Marubozu

trader_cdlmarubozu

(PECL trader >= 0.2.0)

trader_cdlmarubozu — Marubozu

Descrição

trader_cdlmarubozu(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Matching Low

  • « trader_cdlmarubozu
  • trader_cdlmathold »
  • PHP Manual
  • Trader Funções
  • Matching Low

trader_cdlmatchinglow

(PECL trader >= 0.2.0)

trader_cdlmatchinglow — Matching Low

Descrição

trader_cdlmatchinglow(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Mat Hold

  • « trader_cdlmatchinglow
  • trader_cdlmorningdojistar »
  • PHP Manual
  • Trader Funções
  • Mat Hold

trader_cdlmathold

(PECL trader >= 0.2.0)

trader_cdlmathold — Mat Hold

Descrição

trader_cdlmathold(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

penetration

Percentual de penetração de um candle em outro candle.

Valor Retornado

Returns an array with calculated data or false on failure.


Morning Doji Star

  • « trader_cdlmathold
  • trader_cdlmorningstar »
  • PHP Manual
  • Trader Funções
  • Morning Doji Star

trader_cdlmorningdojistar

(PECL trader >= 0.2.0)

trader_cdlmorningdojistar — Morning Doji Star

Descrição

trader_cdlmorningdojistar(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

penetration

Percentual de penetração de um candle em outro candle.

Valor Retornado

Returns an array with calculated data or false on failure.


Morning Star

  • « trader_cdlmorningdojistar
  • trader_cdlonneck »
  • PHP Manual
  • Trader Funções
  • Morning Star

trader_cdlmorningstar

(PECL trader >= 0.2.0)

trader_cdlmorningstar — Morning Star

Descrição

trader_cdlmorningstar(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

penetration

Percentual de penetração de um candle em outro candle.

Valor Retornado

Returns an array with calculated data or false on failure.


On-Neck Pattern

  • « trader_cdlmorningstar
  • trader_cdlpiercing »
  • PHP Manual
  • Trader Funções
  • On-Neck Pattern

trader_cdlonneck

(PECL trader >= 0.2.0)

trader_cdlonneck — On-Neck Pattern

Descrição

trader_cdlonneck(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Piercing Pattern

  • « trader_cdlonneck
  • trader_cdlrickshawman »
  • PHP Manual
  • Trader Funções
  • Piercing Pattern

trader_cdlpiercing

(PECL trader >= 0.2.0)

trader_cdlpiercing — Piercing Pattern

Descrição

trader_cdlpiercing(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Rickshaw Man

  • « trader_cdlpiercing
  • trader_cdlrisefall3methods »
  • PHP Manual
  • Trader Funções
  • Rickshaw Man

trader_cdlrickshawman

(PECL trader >= 0.2.0)

trader_cdlrickshawman — Rickshaw Man

Descrição

trader_cdlrickshawman(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Rising/Falling Three Methods

  • « trader_cdlrickshawman
  • trader_cdlseparatinglines »
  • PHP Manual
  • Trader Funções
  • Rising/Falling Three Methods

trader_cdlrisefall3methods

(PECL trader >= 0.2.0)

trader_cdlrisefall3methods — Rising/Falling Three Methods

Descrição

trader_cdlrisefall3methods(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Separating Lines

  • « trader_cdlrisefall3methods
  • trader_cdlshootingstar »
  • PHP Manual
  • Trader Funções
  • Separating Lines

trader_cdlseparatinglines

(PECL trader >= 0.2.0)

trader_cdlseparatinglines — Separating Lines

Descrição

trader_cdlseparatinglines(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Shooting Star

  • « trader_cdlseparatinglines
  • trader_cdlshortline »
  • PHP Manual
  • Trader Funções
  • Shooting Star

trader_cdlshootingstar

(PECL trader >= 0.2.0)

trader_cdlshootingstar — Shooting Star

Descrição

trader_cdlshootingstar(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Short Line Candle

  • « trader_cdlshootingstar
  • trader_cdlspinningtop »
  • PHP Manual
  • Trader Funções
  • Short Line Candle

trader_cdlshortline

(PECL trader >= 0.2.0)

trader_cdlshortline — Short Line Candle

Descrição

trader_cdlshortline(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Spinning Top

  • « trader_cdlshortline
  • trader_cdlstalledpattern »
  • PHP Manual
  • Trader Funções
  • Spinning Top

trader_cdlspinningtop

(PECL trader >= 0.2.0)

trader_cdlspinningtop — Spinning Top

Descrição

trader_cdlspinningtop(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Stalled Pattern

  • « trader_cdlspinningtop
  • trader_cdlsticksandwich »
  • PHP Manual
  • Trader Funções
  • Stalled Pattern

trader_cdlstalledpattern

(PECL trader >= 0.2.0)

trader_cdlstalledpattern — Stalled Pattern

Descrição

trader_cdlstalledpattern(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Stick Sandwich

  • « trader_cdlstalledpattern
  • trader_cdltakuri »
  • PHP Manual
  • Trader Funções
  • Stick Sandwich

trader_cdlsticksandwich

(PECL trader >= 0.2.0)

trader_cdlsticksandwich — Stick Sandwich

Descrição

trader_cdlsticksandwich(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Takuri (Dragonfly Doji with very long lower shadow)

  • « trader_cdlsticksandwich
  • trader_cdltasukigap »
  • PHP Manual
  • Trader Funções
  • Takuri (Dragonfly Doji with very long lower shadow)

trader_cdltakuri

(PECL trader >= 0.2.0)

trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)

Descrição

trader_cdltakuri(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Tasuki Gap

  • « trader_cdltakuri
  • trader_cdlthrusting »
  • PHP Manual
  • Trader Funções
  • Tasuki Gap

trader_cdltasukigap

(PECL trader >= 0.2.0)

trader_cdltasukigap — Tasuki Gap

Descrição

trader_cdltasukigap(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Thrusting Pattern

  • « trader_cdltasukigap
  • trader_cdltristar »
  • PHP Manual
  • Trader Funções
  • Thrusting Pattern

trader_cdlthrusting

(PECL trader >= 0.2.0)

trader_cdlthrusting — Thrusting Pattern

Descrição

trader_cdlthrusting(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Tristar Pattern

  • « trader_cdlthrusting
  • trader_cdlunique3river »
  • PHP Manual
  • Trader Funções
  • Tristar Pattern

trader_cdltristar

(PECL trader >= 0.2.0)

trader_cdltristar — Tristar Pattern

Descrição

trader_cdltristar(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Unique 3 River

  • « trader_cdltristar
  • trader_cdlupsidegap2crows »
  • PHP Manual
  • Trader Funções
  • Unique 3 River

trader_cdlunique3river

(PECL trader >= 0.2.0)

trader_cdlunique3river — Unique 3 River

Descrição

trader_cdlunique3river(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Upside Gap Two Crows

  • « trader_cdlunique3river
  • trader_cdlxsidegap3methods »
  • PHP Manual
  • Trader Funções
  • Upside Gap Two Crows

trader_cdlupsidegap2crows

(PECL trader >= 0.2.0)

trader_cdlupsidegap2crows — Upside Gap Two Crows

Descrição

trader_cdlupsidegap2crows(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Upside/Downside Gap Three Methods

  • « trader_cdlupsidegap2crows
  • trader_ceil »
  • PHP Manual
  • Trader Funções
  • Upside/Downside Gap Three Methods

trader_cdlxsidegap3methods

(PECL trader >= 0.2.0)

trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods

Descrição

trader_cdlxsidegap3methods(
array $open,
array $high,
array $low,
array $close
): array

Parâmetros

open

Preço de abertura, array de valores reais.

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Ceil

  • « trader_cdlxsidegap3methods
  • trader_cmo »
  • PHP Manual
  • Trader Funções
  • Vector Ceil

trader_ceil

(PECL trader >= 0.2.0)

trader_ceil — Vector Ceil

Descrição

trader_ceil(array $real): array

Calculates the next highest integer for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Chande Momentum Oscillator

  • « trader_ceil
  • trader_correl »
  • PHP Manual
  • Trader Funções
  • Chande Momentum Oscillator

trader_cmo

(PECL trader >= 0.2.0)

trader_cmo — Chande Momentum Oscillator

Descrição

trader_cmo(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Pearson's Correlation Coefficient (r)

  • « trader_cmo
  • trader_cos »
  • PHP Manual
  • Trader Funções
  • Pearson's Correlation Coefficient (r)

trader_correl

(PECL trader >= 0.2.0)

trader_correl — Pearson's Correlation Coefficient (r)

Descrição

trader_correl(array $real0, array $real1, int $timePeriod = ?): array

Parâmetros

real0

Array de valores reais.

real1

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Trigonometric Cos

  • « trader_correl
  • trader_cosh »
  • PHP Manual
  • Trader Funções
  • Vector Trigonometric Cos

trader_cos

(PECL trader >= 0.2.0)

trader_cos — Vector Trigonometric Cos

Descrição

trader_cos(array $real): array

Calculates the cosine for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Trigonometric Cosh

  • « trader_cos
  • trader_dema »
  • PHP Manual
  • Trader Funções
  • Vector Trigonometric Cosh

trader_cosh

(PECL trader >= 0.2.0)

trader_cosh — Vector Trigonometric Cosh

Descrição

trader_cosh(array $real): array

Calculates the hyperbolic cosine for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Double Exponential Moving Average

  • « trader_cosh
  • trader_div »
  • PHP Manual
  • Trader Funções
  • Double Exponential Moving Average

trader_dema

(PECL trader >= 0.2.0)

trader_dema — Double Exponential Moving Average

Descrição

trader_dema(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Arithmetic Div

  • « trader_dema
  • trader_dx »
  • PHP Manual
  • Trader Funções
  • Vector Arithmetic Div

trader_div

(PECL trader >= 0.2.0)

trader_div — Vector Arithmetic Div

Descrição

trader_div(array $real0, array $real1): array

Divides each value from real0 by the corresponding value from real1 and returns the resulting array.

Parâmetros

real0

Array de valores reais.

real1

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Directional Movement Index

  • « trader_div
  • trader_ema »
  • PHP Manual
  • Trader Funções
  • Directional Movement Index

trader_dx

(PECL trader >= 0.2.0)

trader_dx — Directional Movement Index

Descrição

trader_dx(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Exponential Moving Average

  • « trader_dx
  • trader_errno »
  • PHP Manual
  • Trader Funções
  • Exponential Moving Average

trader_ema

(PECL trader >= 0.2.0)

trader_ema — Exponential Moving Average

Descrição

trader_ema(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Get error code

  • « trader_ema
  • trader_exp »
  • PHP Manual
  • Trader Funções
  • Get error code

trader_errno

(PECL trader >= 0.3.0)

trader_errno — Get error code

Descrição

trader_errno(): int

Get error code of the last operation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the error code identified by one of the TRADER_ERR_* constants.


Vector Arithmetic Exp

  • « trader_errno
  • trader_floor »
  • PHP Manual
  • Trader Funções
  • Vector Arithmetic Exp

trader_exp

(PECL trader >= 0.2.0)

trader_exp — Vector Arithmetic Exp

Descrição

trader_exp(array $real): array

Calculates e raised to the power of each value in real. Returns an array with the calculated data.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Floor

  • « trader_exp
  • trader_get_compat »
  • PHP Manual
  • Trader Funções
  • Vector Floor

trader_floor

(PECL trader >= 0.2.0)

trader_floor — Vector Floor

Descrição

trader_floor(array $real): array

Calculates the next lowest integer for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Get compatibility mode

  • « trader_floor
  • trader_get_unstable_period »
  • PHP Manual
  • Trader Funções
  • Get compatibility mode

trader_get_compat

(PECL trader >= 0.2.2)

trader_get_compat — Get compatibility mode

Descrição

trader_get_compat(): int

Get compatibility mode which affects the way calculations are done by all the extension functions.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the compatibility mode id which can be identified by TRADER_COMPATIBILITY_* series of constants.


Get unstable period

  • « trader_get_compat
  • trader_ht_dcperiod »
  • PHP Manual
  • Trader Funções
  • Get unstable period

trader_get_unstable_period

(PECL trader >= 0.2.2)

trader_get_unstable_period — Get unstable period

Descrição

trader_get_unstable_period(int $functionId): int

Get unstable period factor for a particular function.

Parâmetros

functionId

Function ID the factor to be read for. TRADER_FUNC_UNST_* series of constants should be used.

Valor Retornado

Returns the unstable period factor for the corresponding function.


Hilbert Transform - Dominant Cycle Period

  • « trader_get_unstable_period
  • trader_ht_dcphase »
  • PHP Manual
  • Trader Funções
  • Hilbert Transform - Dominant Cycle Period

trader_ht_dcperiod

(PECL trader >= 0.2.0)

trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period

Descrição

trader_ht_dcperiod(array $real): array

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Hilbert Transform - Dominant Cycle Phase

  • « trader_ht_dcperiod
  • trader_ht_phasor »
  • PHP Manual
  • Trader Funções
  • Hilbert Transform - Dominant Cycle Phase

trader_ht_dcphase

(PECL trader >= 0.2.0)

trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase

Descrição

trader_ht_dcphase(array $real): array

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Hilbert Transform - Phasor Components

  • « trader_ht_dcphase
  • trader_ht_sine »
  • PHP Manual
  • Trader Funções
  • Hilbert Transform - Phasor Components

trader_ht_phasor

(PECL trader >= 0.2.0)

trader_ht_phasor — Hilbert Transform - Phasor Components

Descrição

trader_ht_phasor(array $real): array

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Hilbert Transform - SineWave

  • « trader_ht_phasor
  • trader_ht_trendline »
  • PHP Manual
  • Trader Funções
  • Hilbert Transform - SineWave

trader_ht_sine

(PECL trader >= 0.2.0)

trader_ht_sine — Hilbert Transform - SineWave

Descrição

trader_ht_sine(array $real): array

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Hilbert Transform - Instantaneous Trendline

  • « trader_ht_sine
  • trader_ht_trendmode »
  • PHP Manual
  • Trader Funções
  • Hilbert Transform - Instantaneous Trendline

trader_ht_trendline

(PECL trader >= 0.2.0)

trader_ht_trendline — Hilbert Transform - Instantaneous Trendline

Descrição

trader_ht_trendline(array $real): array

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Hilbert Transform - Trend vs Cycle Mode

  • « trader_ht_trendline
  • trader_kama »
  • PHP Manual
  • Trader Funções
  • Hilbert Transform - Trend vs Cycle Mode

trader_ht_trendmode

(PECL trader >= 0.2.0)

trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode

Descrição

trader_ht_trendmode(array $real): array

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Kaufman Adaptive Moving Average

  • « trader_ht_trendmode
  • trader_linearreg_angle »
  • PHP Manual
  • Trader Funções
  • Kaufman Adaptive Moving Average

trader_kama

(PECL trader >= 0.2.0)

trader_kama — Kaufman Adaptive Moving Average

Descrição

trader_kama(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Linear Regression Angle

  • « trader_kama
  • trader_linearreg_intercept »
  • PHP Manual
  • Trader Funções
  • Linear Regression Angle

trader_linearreg_angle

(PECL trader >= 0.2.0)

trader_linearreg_angle — Linear Regression Angle

Descrição

trader_linearreg_angle(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Linear Regression Intercept

  • « trader_linearreg_angle
  • trader_linearreg_slope »
  • PHP Manual
  • Trader Funções
  • Linear Regression Intercept

trader_linearreg_intercept

(PECL trader >= 0.2.0)

trader_linearreg_intercept — Linear Regression Intercept

Descrição

trader_linearreg_intercept(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Linear Regression Slope

  • « trader_linearreg_intercept
  • trader_linearreg »
  • PHP Manual
  • Trader Funções
  • Linear Regression Slope

trader_linearreg_slope

(PECL trader >= 0.2.0)

trader_linearreg_slope — Linear Regression Slope

Descrição

trader_linearreg_slope(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Linear Regression

  • « trader_linearreg_slope
  • trader_ln »
  • PHP Manual
  • Trader Funções
  • Linear Regression

trader_linearreg

(PECL trader >= 0.2.0)

trader_linearreg — Linear Regression

Descrição

trader_linearreg(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Log Natural

  • « trader_linearreg
  • trader_log10 »
  • PHP Manual
  • Trader Funções
  • Vector Log Natural

trader_ln

(PECL trader >= 0.2.0)

trader_ln — Vector Log Natural

Descrição

trader_ln(array $real): array

Calculates the natural logarithm for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Log10

  • « trader_ln
  • trader_ma »
  • PHP Manual
  • Trader Funções
  • Vector Log10

trader_log10

(PECL trader >= 0.2.0)

trader_log10 — Vector Log10

Descrição

trader_log10(array $real): array

Calculates the base-10 logarithm for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Moving average

  • « trader_log10
  • trader_macd »
  • PHP Manual
  • Trader Funções
  • Moving average

trader_ma

(PECL trader >= 0.2.0)

trader_ma — Moving average

Descrição

trader_ma(array $real, int $timePeriod = ?, int $mAType = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

mAType

Tipo de Média Móvel. As constantes TRADER_MA_TYPE_* devem ser usadas.

Valor Retornado

Returns an array with calculated data or false on failure.


Moving Average Convergence/Divergence

  • « trader_ma
  • trader_macdext »
  • PHP Manual
  • Trader Funções
  • Moving Average Convergence/Divergence

trader_macd

(PECL trader >= 0.2.0)

trader_macd — Moving Average Convergence/Divergence

Descrição

trader_macd(
array $real,
int $fastPeriod = ?,
int $slowPeriod = ?,
int $signalPeriod = ?
): array

Parâmetros

real

Array de valores reais.

fastPeriod

Número de período para o MA rápido. Intervalo válido de 2 a 100000.

slowPeriod

Número de período para o MA lento. Intervalo válido de 2 a 100000.

signalPeriod

Suavização da linha de sinal (número de período). Intervalo válido de 1 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


MACD with controllable MA type

  • « trader_macd
  • trader_macdfix »
  • PHP Manual
  • Trader Funções
  • MACD with controllable MA type

trader_macdext

(PECL trader >= 0.2.0)

trader_macdext — MACD with controllable MA type

Descrição

trader_macdext(
array $real,
int $fastPeriod = ?,
int $fastMAType = ?,
int $slowPeriod = ?,
int $slowMAType = ?,
int $signalPeriod = ?,
int $signalMAType = ?
): array

Parâmetros

real

Array de valores reais.

fastPeriod

Número de período para o MA rápido. Intervalo válido de 2 a 100000.

fastMAType

Tipo de Média Móvel para o MA rápido. As constantes TRADER_MA_TYPE_* devem ser usadas.

slowPeriod

Número de período para o MA lento. Intervalo válido de 2 a 100000.

slowMAType

Tipo de Média Móvel para o MA lento. As constantes TRADER_MA_TYPE_* devem ser usadas.

signalPeriod

Suavização da linha de sinal (número de período). Intervalo válido de 1 a 100000.

signalMAType

Tipo de Média Móvel para a linha de sinal. As constantes TRADER_MA_TYPE_* devem ser usadas.

Valor Retornado

Returns an array with calculated data or false on failure.


Moving Average Convergence/Divergence Fix 12/26

  • « trader_macdext
  • trader_mama »
  • PHP Manual
  • Trader Funções
  • Moving Average Convergence/Divergence Fix 12/26

trader_macdfix

(PECL trader >= 0.2.0)

trader_macdfix — Moving Average Convergence/Divergence Fix 12/26

Descrição

trader_macdfix(array $real, int $signalPeriod = ?): array

Parâmetros

real

Array de valores reais.

signalPeriod

Suavização da linha de sinal (número de período). Intervalo válido de 1 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


MESA Adaptive Moving Average

  • « trader_macdfix
  • trader_mavp »
  • PHP Manual
  • Trader Funções
  • MESA Adaptive Moving Average

trader_mama

(PECL trader >= 0.2.0)

trader_mama — MESA Adaptive Moving Average

Descrição

trader_mama(array $real, float $fastLimit = ?, float $slowLimit = ?): array

Parâmetros

real

Array de valores reais.

fastLimit

Limite superior usado no algoritmo adaptativo. Intervalo válido de 0.01 a 0.99.

slowLimit

Limite inferior usado no algoritmo adaptativo. Intervalo válido de 0.01 a 0.99.

Valor Retornado

Returns an array with calculated data or false on failure.


Moving average with variable period

  • « trader_mama
  • trader_max »
  • PHP Manual
  • Trader Funções
  • Moving average with variable period

trader_mavp

(PECL trader >= 0.2.0)

trader_mavp — Moving average with variable period

Descrição

trader_mavp(
array $real,
array $periods,
int $minPeriod = ?,
int $maxPeriod = ?,
int $mAType = ?
): array

Parâmetros

real

Array de valores reais.

periods

Array de valores reais.

minPeriod

Valor inferior ao mínimo que será modificado para período mínimo. Intervalo válido de 2 a 100000.

maxPeriod

Valor superior ao mínimo que será modificado para período máximo. Intervalo válido de 2 a 100000.

mAType

Tipo de Média Móvel. As constantes TRADER_MA_TYPE_* devem ser usadas.

Valor Retornado

Returns an array with calculated data or false on failure.


Highest value over a specified period

  • « trader_mavp
  • trader_maxindex »
  • PHP Manual
  • Trader Funções
  • Highest value over a specified period

trader_max

(PECL trader >= 0.2.0)

trader_max — Highest value over a specified period

Descrição

trader_max(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Index of highest value over a specified period

  • « trader_max
  • trader_medprice »
  • PHP Manual
  • Trader Funções
  • Index of highest value over a specified period

trader_maxindex

(PECL trader >= 0.2.0)

trader_maxindex — Index of highest value over a specified period

Descrição

trader_maxindex(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Median Price

  • « trader_maxindex
  • trader_mfi »
  • PHP Manual
  • Trader Funções
  • Median Price

trader_medprice

(PECL trader >= 0.2.0)

trader_medprice — Median Price

Descrição

trader_medprice(array $high, array $low): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Money Flow Index

  • « trader_medprice
  • trader_midpoint »
  • PHP Manual
  • Trader Funções
  • Money Flow Index

trader_mfi

(PECL trader >= 0.2.0)

trader_mfi — Money Flow Index

Descrição

trader_mfi(
array $high,
array $low,
array $close,
array $volume,
int $timePeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

volume

Volume negociado, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


MidPoint over period

  • « trader_mfi
  • trader_midprice »
  • PHP Manual
  • Trader Funções
  • MidPoint over period

trader_midpoint

(PECL trader >= 0.2.0)

trader_midpoint — MidPoint over period

Descrição

trader_midpoint(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Midpoint Price over period

  • « trader_midpoint
  • trader_min »
  • PHP Manual
  • Trader Funções
  • Midpoint Price over period

trader_midprice

(PECL trader >= 0.2.0)

trader_midprice — Midpoint Price over period

Descrição

trader_midprice(array $high, array $low, int $timePeriod = ?): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Lowest value over a specified period

  • « trader_midprice
  • trader_minindex »
  • PHP Manual
  • Trader Funções
  • Lowest value over a specified period

trader_min

(PECL trader >= 0.2.0)

trader_min — Lowest value over a specified period

Descrição

trader_min(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Index of lowest value over a specified period

  • « trader_min
  • trader_minmax »
  • PHP Manual
  • Trader Funções
  • Index of lowest value over a specified period

trader_minindex

(PECL trader >= 0.2.0)

trader_minindex — Index of lowest value over a specified period

Descrição

trader_minindex(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Lowest and highest values over a specified period

  • « trader_minindex
  • trader_minmaxindex »
  • PHP Manual
  • Trader Funções
  • Lowest and highest values over a specified period

trader_minmax

(PECL trader >= 0.2.0)

trader_minmax — Lowest and highest values over a specified period

Descrição

trader_minmax(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Indexes of lowest and highest values over a specified period

  • « trader_minmax
  • trader_minus_di »
  • PHP Manual
  • Trader Funções
  • Indexes of lowest and highest values over a specified period

trader_minmaxindex

(PECL trader >= 0.2.0)

trader_minmaxindex — Indexes of lowest and highest values over a specified period

Descrição

trader_minmaxindex(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Minus Directional Indicator

  • « trader_minmaxindex
  • trader_minus_dm »
  • PHP Manual
  • Trader Funções
  • Minus Directional Indicator

trader_minus_di

(PECL trader >= 0.2.0)

trader_minus_di — Minus Directional Indicator

Descrição

trader_minus_di(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Minus Directional Movement

  • « trader_minus_di
  • trader_mom »
  • PHP Manual
  • Trader Funções
  • Minus Directional Movement

trader_minus_dm

(PECL trader >= 0.2.0)

trader_minus_dm — Minus Directional Movement

Descrição

trader_minus_dm(array $high, array $low, int $timePeriod = ?): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Momentum

  • « trader_minus_dm
  • trader_mult »
  • PHP Manual
  • Trader Funções
  • Momentum

trader_mom

(PECL trader >= 0.2.0)

trader_mom — Momentum

Descrição

trader_mom(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Arithmetic Mult

  • « trader_mom
  • trader_natr »
  • PHP Manual
  • Trader Funções
  • Vector Arithmetic Mult

trader_mult

(PECL trader >= 0.2.0)

trader_mult — Vector Arithmetic Mult

Descrição

trader_mult(array $real0, array $real1): array

Calculates the vector dot product of real0 with real1 and returns the resulting vector.

Parâmetros

real0

Array de valores reais.

real1

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Normalized Average True Range

  • « trader_mult
  • trader_obv »
  • PHP Manual
  • Trader Funções
  • Normalized Average True Range

trader_natr

(PECL trader >= 0.2.0)

trader_natr — Normalized Average True Range

Descrição

trader_natr(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


On Balance Volume

  • « trader_natr
  • trader_plus_di »
  • PHP Manual
  • Trader Funções
  • On Balance Volume

trader_obv

(PECL trader >= 0.2.0)

trader_obv — On Balance Volume

Descrição

trader_obv(array $real, array $volume): array

Parâmetros

real

Array de valores reais.

volume

Volume negociado, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Plus Directional Indicator

  • « trader_obv
  • trader_plus_dm »
  • PHP Manual
  • Trader Funções
  • Plus Directional Indicator

trader_plus_di

(PECL trader >= 0.2.0)

trader_plus_di — Plus Directional Indicator

Descrição

trader_plus_di(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Plus Directional Movement

  • « trader_plus_di
  • trader_ppo »
  • PHP Manual
  • Trader Funções
  • Plus Directional Movement

trader_plus_dm

(PECL trader >= 0.2.0)

trader_plus_dm — Plus Directional Movement

Descrição

trader_plus_dm(array $high, array $low, int $timePeriod = ?): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Percentage Price Oscillator

  • « trader_plus_dm
  • trader_roc »
  • PHP Manual
  • Trader Funções
  • Percentage Price Oscillator

trader_ppo

(PECL trader >= 0.2.0)

trader_ppo — Percentage Price Oscillator

Descrição

trader_ppo(
array $real,
int $fastPeriod = ?,
int $slowPeriod = ?,
int $mAType = ?
): array

Parâmetros

real

Array de valores reais.

fastPeriod

Número de período para o MA rápido. Intervalo válido de 2 a 100000.

slowPeriod

Número de período para o MA lento. Intervalo válido de 2 a 100000.

mAType

Tipo de Média Móvel. As constantes TRADER_MA_TYPE_* devem ser usadas.

Valor Retornado

Returns an array with calculated data or false on failure.


Rate of change : ((price/prevPrice)-1)*100

  • « trader_ppo
  • trader_rocp »
  • PHP Manual
  • Trader Funções
  • Rate of change : ((price/prevPrice)-1)*100

trader_roc

(PECL trader >= 0.2.0)

trader_roc — Rate of change : ((price/prevPrice)-1)*100

Descrição

trader_roc(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Rate of change Percentage: (price-prevPrice)/prevPrice

  • « trader_roc
  • trader_rocr100 »
  • PHP Manual
  • Trader Funções
  • Rate of change Percentage: (price-prevPrice)/prevPrice

trader_rocp

(PECL trader >= 0.2.0)

trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice

Descrição

trader_rocp(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Rate of change ratio 100 scale: (price/prevPrice)*100

  • « trader_rocp
  • trader_rocr »
  • PHP Manual
  • Trader Funções
  • Rate of change ratio 100 scale: (price/prevPrice)*100

trader_rocr100

(PECL trader >= 0.2.0)

trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100

Descrição

trader_rocr100(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Rate of change ratio: (price/prevPrice)

  • « trader_rocr100
  • trader_rsi »
  • PHP Manual
  • Trader Funções
  • Rate of change ratio: (price/prevPrice)

trader_rocr

(PECL trader >= 0.2.0)

trader_rocr — Rate of change ratio: (price/prevPrice)

Descrição

trader_rocr(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Relative Strength Index

  • « trader_rocr
  • trader_sar »
  • PHP Manual
  • Trader Funções
  • Relative Strength Index

trader_rsi

(PECL trader >= 0.2.0)

trader_rsi — Relative Strength Index

Descrição

trader_rsi(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Parabolic SAR

  • « trader_rsi
  • trader_sarext »
  • PHP Manual
  • Trader Funções
  • Parabolic SAR

trader_sar

(PECL trader >= 0.2.0)

trader_sar — Parabolic SAR

Descrição

trader_sar(
array $high,
array $low,
float $acceleration = ?,
float $maximum = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

acceleration

Acceleration Factor used up to the Maximum value. Valid range from 0 to TRADER_REAL_MAX.

maximum

Acceleration Factor Maximum value. Valid range from 0 to TRADER_REAL_MAX.

Valor Retornado

Returns an array with calculated data or false on failure.


Parabolic SAR - Extended

  • « trader_sar
  • trader_set_compat »
  • PHP Manual
  • Trader Funções
  • Parabolic SAR - Extended

trader_sarext

(PECL trader >= 0.2.0)

trader_sarext — Parabolic SAR - Extended

Descrição

trader_sarext(
array $high,
array $low,
float $startValue = ?,
float $offsetOnReverse = ?,
float $accelerationInitLong = ?,
float $accelerationLong = ?,
float $accelerationMaxLong = ?,
float $accelerationInitShort = ?,
float $accelerationShort = ?,
float $accelerationMaxShort = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

startValue

Start value and direction. 0 for Auto, >0 for Long, <0 for Short. Valid range from TRADER_REAL_MIN to TRADER_REAL_MAX.

offsetOnReverse

Percent offset added/removed to initial stop on short/long reversal. Valid range from 0 to TRADER_REAL_MAX.

accelerationInitLong

Acceleration Factor initial value for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationLong

Acceleration Factor for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationMaxLong

Acceleration Factor maximum value for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationInitShort

Acceleration Factor initial value for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationShort

Acceleration Factor for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationMaxShort

Acceleration Factor maximum value for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

Valor Retornado

Returns an array with calculated data or false on failure.


Set compatibility mode

  • « trader_sarext
  • trader_set_unstable_period »
  • PHP Manual
  • Trader Funções
  • Set compatibility mode

trader_set_compat

(PECL trader >= 0.2.2)

trader_set_compat — Set compatibility mode

Descrição

trader_set_compat(int $compatId): void

Set compatibility mode which will affect the way calculations are done by all the extension functions.

Parâmetros

compatId

Compatibility Id. TRADER_COMPATIBILITY_* series of constants should be used.

Valor Retornado

Nenhum valor é retornado.


Set unstable period

  • « trader_set_compat
  • trader_sin »
  • PHP Manual
  • Trader Funções
  • Set unstable period

trader_set_unstable_period

(PECL trader >= 0.2.2)

trader_set_unstable_period — Set unstable period

Descrição

trader_set_unstable_period(int $functionId, int $timePeriod): void

Influences unstable period factor for functions, which are sensible to it. More information about unstable periods can be found on the » TA-Lib API documentation page.

Parâmetros

functionId

Function ID the factor should be set for. TRADER_FUNC_UNST_* constant series can be used to affect the corresponding function.

timePeriod

Unstable period value.

Valor Retornado

Nenhum valor é retornado.


Vector Trigonometric Sin

  • « trader_set_unstable_period
  • trader_sinh »
  • PHP Manual
  • Trader Funções
  • Vector Trigonometric Sin

trader_sin

(PECL trader >= 0.2.0)

trader_sin — Vector Trigonometric Sin

Descrição

trader_sin(array $real): array

Calculates the sine for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Trigonometric Sinh

  • « trader_sin
  • trader_sma »
  • PHP Manual
  • Trader Funções
  • Vector Trigonometric Sinh

trader_sinh

(PECL trader >= 0.2.0)

trader_sinh — Vector Trigonometric Sinh

Descrição

trader_sinh(array $real): array

Calculates the hyperbolic sine for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Simple Moving Average

  • « trader_sinh
  • trader_sqrt »
  • PHP Manual
  • Trader Funções
  • Simple Moving Average

trader_sma

(PECL trader >= 0.2.0)

trader_sma — Simple Moving Average

Descrição

trader_sma(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Square Root

  • « trader_sma
  • trader_stddev »
  • PHP Manual
  • Trader Funções
  • Vector Square Root

trader_sqrt

(PECL trader >= 0.2.0)

trader_sqrt — Vector Square Root

Descrição

trader_sqrt(array $real): array

Calculates the square root of each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Standard Deviation

  • « trader_sqrt
  • trader_stoch »
  • PHP Manual
  • Trader Funções
  • Standard Deviation

trader_stddev

(PECL trader >= 0.2.0)

trader_stddev — Standard Deviation

Descrição

trader_stddev(array $real, int $timePeriod = ?, float $nbDev = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

nbDev

Valor Retornado

Returns an array with calculated data or false on failure.


Stochastic

  • « trader_stddev
  • trader_stochf »
  • PHP Manual
  • Trader Funções
  • Stochastic

trader_stoch

(PECL trader >= 0.2.0)

trader_stoch — Stochastic

Descrição

trader_stoch(
array $high,
array $low,
array $close,
int $fastK_Period = ?,
int $slowK_Period = ?,
int $slowK_MAType = ?,
int $slowD_Period = ?,
int $slowD_MAType = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

fastK_Period

Período de tempo para a construção da linha Fast-K. Intervalo válido de 1 a 100000.

slowK_Period

Suavização na construção da linha Slow-K. Intervalo válido de 1 a 100000, geralmente 3.

slowK_MAType

Tipo de Média Móvel para o Slow-K. As constantes TRADER_MA_TYPE_* devem ser usadas.

slowD_Period

Suavização na construção da linha Slow-D. Intervalo válido de 1 a 100000.

slowD_MAType

Tipo de Média Móvel para o Slow-D. As constantes TRADER_MA_TYPE_* devem ser usadas.

Valor Retornado

Returns an array with calculated data or false on failure.


Stochastic Fast

  • « trader_stoch
  • trader_stochrsi »
  • PHP Manual
  • Trader Funções
  • Stochastic Fast

trader_stochf

(PECL trader >= 0.2.0)

trader_stochf — Stochastic Fast

Descrição

trader_stochf(
array $high,
array $low,
array $close,
int $fastK_Period = ?,
int $fastD_Period = ?,
int $fastD_MAType = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

fastK_Period

Período de tempo para a construção da linha Fast-K. Intervalo válido de 1 a 100000.

fastD_Period

Suavização na construção da linha Fast-D. Intervalo válido de 1 a 100000, geralmente 3.

fastD_MAType

Tipo de Média Móvel para o Fast-D. As constantes TRADER_MA_TYPE_* devem ser usadas.

Valor Retornado

Returns an array with calculated data or false on failure.


Stochastic Relative Strength Index

  • « trader_stochf
  • trader_sub »
  • PHP Manual
  • Trader Funções
  • Stochastic Relative Strength Index

trader_stochrsi

(PECL trader >= 0.2.0)

trader_stochrsi — Stochastic Relative Strength Index

Descrição

trader_stochrsi(
array $real,
int $timePeriod = ?,
int $fastK_Period = ?,
int $fastD_Period = ?,
int $fastD_MAType = ?
): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

fastK_Period

Período de tempo para a construção da linha Fast-K. Intervalo válido de 1 a 100000.

fastD_Period

Suavização na construção da linha Fast-D. Intervalo válido de 1 a 100000, geralmente 3.

fastD_MAType

Tipo de Média Móvel para o Fast-D. As constantes TRADER_MA_TYPE_* devem ser usadas.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Arithmetic Subtraction

  • « trader_stochrsi
  • trader_sum »
  • PHP Manual
  • Trader Funções
  • Vector Arithmetic Subtraction

trader_sub

(PECL trader >= 0.2.0)

trader_sub — Vector Arithmetic Subtraction

Descrição

trader_sub(array $real0, array $real1): array

Calculates the vector subtraction of real1 from real0 and returns the resulting vector.

Parâmetros

real0

Array de valores reais.

real1

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Summation

  • « trader_sub
  • trader_t3 »
  • PHP Manual
  • Trader Funções
  • Summation

trader_sum

(PECL trader >= 0.2.0)

trader_sum — Summation

Descrição

trader_sum(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Triple Exponential Moving Average (T3)

  • « trader_sum
  • trader_tan »
  • PHP Manual
  • Trader Funções
  • Triple Exponential Moving Average (T3)

trader_t3

(PECL trader >= 0.2.0)

trader_t3 — Triple Exponential Moving Average (T3)

Descrição

trader_t3(array $real, int $timePeriod = ?, float $vFactor = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

vFactor

Fator de volume. Intervalo válido de 1 a 0.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Trigonometric Tan

  • « trader_t3
  • trader_tanh »
  • PHP Manual
  • Trader Funções
  • Vector Trigonometric Tan

trader_tan

(PECL trader >= 0.2.0)

trader_tan — Vector Trigonometric Tan

Descrição

trader_tan(array $real): array

Calculates the tangent for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Vector Trigonometric Tanh

  • « trader_tan
  • trader_tema »
  • PHP Manual
  • Trader Funções
  • Vector Trigonometric Tanh

trader_tanh

(PECL trader >= 0.2.0)

trader_tanh — Vector Trigonometric Tanh

Descrição

trader_tanh(array $real): array

Calculates the hyperbolic tangent for each value in real and returns the resulting array.

Parâmetros

real

Array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Triple Exponential Moving Average

  • « trader_tanh
  • trader_trange »
  • PHP Manual
  • Trader Funções
  • Triple Exponential Moving Average

trader_tema

(PECL trader >= 0.2.0)

trader_tema — Triple Exponential Moving Average

Descrição

trader_tema(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


True Range

  • « trader_tema
  • trader_trima »
  • PHP Manual
  • Trader Funções
  • True Range

trader_trange

(PECL trader >= 0.2.0)

trader_trange — True Range

Descrição

trader_trange(array $high, array $low, array $close): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Triangular Moving Average

  • « trader_trange
  • trader_trix »
  • PHP Manual
  • Trader Funções
  • Triangular Moving Average

trader_trima

(PECL trader >= 0.2.0)

trader_trima — Triangular Moving Average

Descrição

trader_trima(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

  • « trader_trima
  • trader_tsf »
  • PHP Manual
  • Trader Funções
  • 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

trader_trix

(PECL trader >= 0.2.0)

trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

Descrição

trader_trix(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Time Series Forecast

  • « trader_trix
  • trader_typprice »
  • PHP Manual
  • Trader Funções
  • Time Series Forecast

trader_tsf

(PECL trader >= 0.2.0)

trader_tsf — Time Series Forecast

Descrição

trader_tsf(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Typical Price

  • « trader_tsf
  • trader_ultosc »
  • PHP Manual
  • Trader Funções
  • Typical Price

trader_typprice

(PECL trader >= 0.2.0)

trader_typprice — Typical Price

Descrição

trader_typprice(array $high, array $low, array $close): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Ultimate Oscillator

  • « trader_typprice
  • trader_var »
  • PHP Manual
  • Trader Funções
  • Ultimate Oscillator

trader_ultosc

(PECL trader >= 0.2.0)

trader_ultosc — Ultimate Oscillator

Descrição

trader_ultosc(
array $high,
array $low,
array $close,
int $timePeriod1 = ?,
int $timePeriod2 = ?,
int $timePeriod3 = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

timePeriod1

Number of bars for 1st period. Valid range from 1 to 100000.

timePeriod2

Number of bars for 2nd period. Valid range from 1 to 100000.

timePeriod3

Number of bars for 3rd period. Valid range from 1 to 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Variance

  • « trader_ultosc
  • trader_wclprice »
  • PHP Manual
  • Trader Funções
  • Variance

trader_var

(PECL trader >= 0.2.0)

trader_var — Variance

Descrição

trader_var(array $real, int $timePeriod = ?, float $nbDev = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

nbDev

Valor Retornado

Returns an array with calculated data or false on failure.


Weighted Close Price

  • « trader_var
  • trader_willr »
  • PHP Manual
  • Trader Funções
  • Weighted Close Price

trader_wclprice

(PECL trader >= 0.2.0)

trader_wclprice — Weighted Close Price

Descrição

trader_wclprice(array $high, array $low, array $close): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

Valor Retornado

Returns an array with calculated data or false on failure.


Williams' %R

  • « trader_wclprice
  • trader_wma »
  • PHP Manual
  • Trader Funções
  • Williams' %R

trader_willr

(PECL trader >= 0.2.0)

trader_willr — Williams' %R

Descrição

trader_willr(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Parâmetros

high

Preço alto, array de valores reais.

low

Preço baixo, array de valores reais.

close

Preço de fechamento, array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Weighted Moving Average

  • « trader_willr
  • Saída de MIME Não-Texto »
  • PHP Manual
  • Trader Funções
  • Weighted Moving Average

trader_wma

(PECL trader >= 0.2.0)

trader_wma — Weighted Moving Average

Descrição

trader_wma(array $real, int $timePeriod = ?): array

Parâmetros

real

Array de valores reais.

timePeriod

Número de período. Intervalo válido de 2 a 100000.

Valor Retornado

Returns an array with calculated data or false on failure.


Saída de MIME Não-Texto

  • FDF — Forms Data Format
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • FDF Funções
  • GnuPG — GNU Privacy Guard
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • GnuPG Funções
  • wkhtmltox
    • Introdução
    • Instalação/Configuração
    • wkhtmltox\PDF\Converter — The wkhtmltox\PDF\Converter class
    • wkhtmltox\PDF\Object — The wkhtmltox\PDF\Object class
    • wkhtmltox\Image\Converter — The wkhtmltox\Image\Converter class
  • PS — PostScript document creation
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • PS Funções
  • RpmInfo
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • RpmInfo Funções
  • XLSWriter
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Vtiful\Kernel\Excel — The Vtiful\Kernel\Excel class
    • Vtiful\Kernel\Format — The Vtiful\Kernel\Format class


Forms Data Format

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • FDF Funções
    • fdf_add_doc_javascript — Adds javascript code to the FDF document
    • fdf_add_template — Adds a template into the FDF document
    • fdf_close — Close an FDF document
    • fdf_create — Create a new FDF document
    • 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 — Get the value of the /F key
    • 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 — Get the value of the /STATUS key
    • fdf_get_value — Get the value of a field
    • fdf_get_version — Gets version number for FDF API or file
    • fdf_header — Sets FDF-specific output headers
    • fdf_next_field_name — Get the next field name
    • fdf_open_string — Read a FDF document from a string
    • fdf_open — Open a FDF document
    • fdf_remove_item — Sets target frame for form
    • fdf_save_string — Returns the FDF document as a string
    • fdf_save — Save a FDF document
    • fdf_set_ap — Set the appearance of a field
    • fdf_set_encoding — Sets FDF character encoding
    • fdf_set_file — Set PDF document to display FDF data in
    • fdf_set_flags — Sets a flag of a field
    • fdf_set_javascript_action — Sets an javascript action of a field
    • fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF
    • fdf_set_opt — Sets an option of a field
    • fdf_set_status — Set the value of the /STATUS key
    • 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 — Set the value of a field
    • fdf_set_version — Sets version number for a FDF file


Introdução

Forms Data Format (FDF) is a format for handling forms within PDF documents. You should read the documentation at » http://www.adobe.com/devnet/acrobat/fdftoolkit.html for more information on what FDF is and how it is used in general.

The general idea of FDF is similar to HTML forms. The difference is basically the format how data is transmitted to the server when the submit button is pressed (this is actually the Form Data Format) and the format of the form itself (which is the Portable Document Format, PDF). Processing the FDF data is one of the features provided by the fdf functions. But there is more. One may as well take an existing PDF form and populated the input fields with data without modifying the form itself. In such a case one would create a FDF document (fdf_create()) set the values of each input field (fdf_set_value()) and associate it with a PDF form (fdf_set_file()). Finally it has to be sent to the browser with MimeType application/vnd.fdf. The Acrobat reader plugin of your browser recognizes the MimeType, reads the associated PDF form and fills in the data from the FDF document.

If you look at an FDF-document with a text editor you will find a catalogue object with the name FDF. Such an object may contain a number of entries like Fields, F, Status etc.. The most commonly used entries are Fields which points to a list of input fields, and F which contains the filename of the PDF-document this data belongs to. Those entries are referred to in the FDF documentation as /F-Key or /Status-Key. Modifying this entries is done by functions like fdf_set_file() and fdf_set_status(). Fields are modified with fdf_set_value(), fdf_set_opt() etc..


Dependências

You need the FDF toolkit SDK available from » http://www.adobe.com/devnet/acrobat/fdftoolkit.html. As of PHP 4.3.0 you need at least SDK version 5.0. The FDF toolkit library is available in binary form only, platforms supported by Adobe are Win32, Linux, Solaris and AIX.


Instalação

Esta extensão é considerada sem manutenção e abandonada. No entanto, o código-fonte desta extensão ainda está disponível no SVN do PECL aqui: » https://svn.php.net/viewvc/pecl/fdf.

This extension is no longer bundled with PHP.

Nota: If you run into problems configuring PHP with fdftk support, check whether the header file fdftk.h and the library libfdftk.so are at the right place. The configure script supports both the directory structure of the FDF SDK distribution and the usual DIR/include / DIR/lib layout, so you can point it either directly to the unpacked distribution directory or put the header file and the appropriate library for your platform into e.g. /usr/local/include and /usr/local/lib and configure with --with-fdftk=/usr/local.

Nota: Note to Win32 Users

Para que esta extensão funcione, existem arquivos DLL que devem estar disponíveis no PATH do sistema Windows. Para saber como fazer isso, veja a FAQ intitulada "Como eu adiciono o meu diretório PHP ao PATH do Windows". Embora copiar arquivos DLL da pasta do PHP para o diretório system do Windows também funcione (porque o diretório system está, por padrão, no PATH do sistema), isso não é recomendado. Esta extensão requer que os seguintes arquivos estejam no PATH: fdftk.dll


Tipos de Recurso

Most fdf functions require a fdf resource as their first parameter. A fdf resource is a handle to an opened fdf file. fdf resources may be obtained using fdf_create(), fdf_open() and fdf_open_string().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

FDFValue (int)
FDFStatus (int)
FDFFile (int)
FDFID (int)
FDFFf (int)
FDFSetFf (int)
FDFClearFf (int)
FDFFlags (int)
FDFSetF (int)
FDFClrF (int)
FDFAP (int)
FDFAS (int)
FDFAction (int)
FDFAA (int)
FDFAPRef (int)
FDFIF (int)
FDFEnter (int)
FDFExit (int)
FDFDown (int)
FDFUp (int)
FDFFormat (int)
FDFValidate (int)
FDFKeystroke (int)
FDFCalculate (int)
FDFNormalAP (int)
FDFRolloverAP (int)
FDFDownAP (int)


Exemplos

The following examples shows just the evaluation of form data.

Exemplo #1 Evaluating a FDF document

<?php
// Open fdf from input string provided by the extension
// The pdf form contained several input text fields with the names
// volume, date, comment, publisher, preparer, and two checkboxes
// show_publisher and show_preparer.
$fdf = fdf_open_string($HTTP_FDF_DATA);
$volume = fdf_get_value($fdf, "volume");
echo "The volume field has the value '<b>$volume</b>'<br />";

$date = fdf_get_value($fdf, "date");
echo "The date field has the value '<b>$date</b>'<br />";

$comment = fdf_get_value($fdf, "comment");
echo "The comment field has the value '<b>$comment</b>'<br />";

if (fdf_get_value($fdf, "show_publisher") == "On") {
$publisher = fdf_get_value($fdf, "publisher");
echo "The publisher field has the value '<b>$publisher</b>'<br />";
} else
echo "Publisher shall not be shown.<br />";

if (fdf_get_value($fdf, "show_preparer") == "On") {
$preparer = fdf_get_value($fdf, "preparer");
echo "The preparer field has the value '<b>$preparer</b>'<br />";
} else
echo "Preparer shall not be shown.<br />";
fdf_close($fdf);
?>


FDF Funções

Índice

  • fdf_add_doc_javascript — Adds javascript code to the FDF document
  • fdf_add_template — Adds a template into the FDF document
  • fdf_close — Close an FDF document
  • fdf_create — Create a new FDF document
  • 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 — Get the value of the /F key
  • 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 — Get the value of the /STATUS key
  • fdf_get_value — Get the value of a field
  • fdf_get_version — Gets version number for FDF API or file
  • fdf_header — Sets FDF-specific output headers
  • fdf_next_field_name — Get the next field name
  • fdf_open_string — Read a FDF document from a string
  • fdf_open — Open a FDF document
  • fdf_remove_item — Sets target frame for form
  • fdf_save_string — Returns the FDF document as a string
  • fdf_save — Save a FDF document
  • fdf_set_ap — Set the appearance of a field
  • fdf_set_encoding — Sets FDF character encoding
  • fdf_set_file — Set PDF document to display FDF data in
  • fdf_set_flags — Sets a flag of a field
  • fdf_set_javascript_action — Sets an javascript action of a field
  • fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF
  • fdf_set_opt — Sets an option of a field
  • fdf_set_status — Set the value of the /STATUS key
  • 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 — Set the value of a field
  • fdf_set_version — Sets version number for a FDF file


Adds javascript code to the FDF document

  • « FDF Funções
  • fdf_add_template »
  • PHP Manual
  • FDF Funções
  • Adds javascript code to the FDF document

fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_add_doc_javascript — Adds javascript code to the FDF document

Descrição

fdf_add_doc_javascript(resource $fdf_document, string $script_name, string $script_code): bool

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.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

script_name

The script name.

script_code

The script code. It is strongly suggested to use \r for linebreaks within the script code.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #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


Adds a template into the FDF document

  • « fdf_add_doc_javascript
  • fdf_close »
  • PHP Manual
  • FDF Funções
  • Adds a template into the FDF document

fdf_add_template

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_add_template — Adds a template into the FDF document

Descrição

fdf_add_template(
resource $fdf_document,
int $newpage,
string $filename,
string $template,
int $rename
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Close an FDF document

  • « fdf_add_template
  • fdf_create »
  • PHP Manual
  • FDF Funções
  • Close an FDF document

fdf_close

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_close — Close an FDF document

Descrição

fdf_close(resource $fdf_document): void

Closes the FDF document.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • fdf_open() - Open a FDF document


Create a new FDF document

  • « fdf_close
  • fdf_enum_values »
  • PHP Manual
  • FDF Funções
  • Create a new FDF document

fdf_create

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_create — Create a new FDF document

Descrição

fdf_create(): resource

Creates a new FDF document.

This function is needed if one would like to populate input fields in a PDF document with data.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a FDF document handle, or false on error.

Exemplos

Exemplo #1 Populating a PDF document

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "volume", $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");
?>

Veja Também

  • fdf_close() - Close an FDF document
  • fdf_save() - Save a FDF document
  • fdf_open() - Open a FDF document


Call a user defined function for each document value

  • « fdf_create
  • fdf_errno »
  • PHP Manual
  • FDF Funções
  • Call a user defined function for each document value

fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_enum_values — Call a user defined function for each document value

Descrição

fdf_enum_values(resource $fdf_document, callable $function, mixed $userdata = ?): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Return error code for last fdf operation

  • « fdf_enum_values
  • fdf_error »
  • PHP Manual
  • FDF Funções
  • Return error code for last fdf operation

fdf_errno

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_errno — Return error code for last fdf operation

Descrição

fdf_errno(): int

Gets the error code set by the last FDF function call.

A textual description of the error may be obtained using with fdf_error().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the error code as an integer, or zero if there was no errors.

Veja Também

  • fdf_error() - Return error description for FDF error code


Return error description for FDF error code

  • « fdf_errno
  • fdf_get_ap »
  • PHP Manual
  • FDF Funções
  • Return error description for FDF error code

fdf_error

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_error — Return error description for FDF error code

Descrição

fdf_error(int $error_code = -1): string

Gets a textual description for the FDF error code given in error_code.

Parâmetros

error_code

An error code obtained with fdf_errno(). If not provided, this function uses the internal error code set by the last operation.

Valor Retornado

Returns the error message as a string, or the string no error if nothing went wrong.

Veja Também

  • fdf_errno() - Return error code for last fdf operation


Get the appearance of a field

  • « fdf_error
  • fdf_get_attachment »
  • PHP Manual
  • FDF Funções
  • Get the appearance of a field

fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_ap — Get the appearance of a field

Descrição

fdf_get_ap(
resource $fdf_document,
string $field,
int $face,
string $filename
): bool

Gets the appearance of a field (i.e. the value of the /AP key) and stores it in a file.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

field

face

The possible values are FDFNormalAP, FDFRolloverAP and FDFDownAP.

filename

The appearance will be stored in this parameter.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Extracts uploaded file embedded in the FDF

  • « fdf_get_ap
  • fdf_get_encoding »
  • PHP Manual
  • FDF Funções
  • Extracts uploaded file embedded in the FDF

fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_attachment — Extracts uploaded file embedded in the FDF

Descrição

fdf_get_attachment(resource $fdf_document, string $fieldname, string $savepath): array

Extracts a file uploaded by means of the "file selection" field fieldname and stores it under savepath.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

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.

Valor Retornado

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

Exemplos

Exemplo #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]";
?>


Get the value of the /Encoding key

  • « fdf_get_attachment
  • fdf_get_file »
  • PHP Manual
  • FDF Funções
  • Get the value of the /Encoding key

fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_encoding — Get the value of the /Encoding key

Descrição

fdf_get_encoding(resource $fdf_document): string

Gets the value of the /Encoding key.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Valor Retornado

Returns the encoding as a string. An empty string is returned if the default PDFDocEncoding/Unicode scheme is used.

Veja Também

  • fdf_set_encoding() - Sets FDF character encoding


Get the value of the /F key

  • « fdf_get_encoding
  • fdf_get_flags »
  • PHP Manual
  • FDF Funções
  • Get the value of the /F key

fdf_get_file

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_file — Get the value of the /F key

Descrição

fdf_get_file(resource $fdf_document): string

Gets the value of the /F key.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Valor Retornado

Returns the key value, as a string.

Veja Também

  • fdf_set_file() - Set PDF document to display FDF data in


Gets the flags of a field

  • « fdf_get_file
  • fdf_get_opt »
  • PHP Manual
  • FDF Funções
  • Gets the flags of a field

fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_flags — Gets the flags of a field

Descrição

fdf_get_flags(resource $fdf_document, string $fieldname, int $whichflags): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Gets a value from the opt array of a field

  • « fdf_get_flags
  • fdf_get_status »
  • PHP Manual
  • FDF Funções
  • Gets a value from the opt array of a field

fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECLv)

fdf_get_opt — Gets a value from the opt array of a field

Descrição

fdf_get_opt(resource $fdf_document, string $fieldname, int $element = -1): mixed
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Get the value of the /STATUS key

  • « fdf_get_opt
  • fdf_get_value »
  • PHP Manual
  • FDF Funções
  • Get the value of the /STATUS key

fdf_get_status

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_status — Get the value of the /STATUS key

Descrição

fdf_get_status(resource $fdf_document): string

Gets the value of the /STATUS key.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Valor Retornado

Returns the key value, as a string.

Veja Também

  • fdf_set_status() - Set the value of the /STATUS key


Get the value of a field

  • « fdf_get_status
  • fdf_get_version »
  • PHP Manual
  • FDF Funções
  • Get the value of a field

fdf_get_value

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_value — Get the value of a field

Descrição

fdf_get_value(resource $fdf_document, string $fieldname, int $which = -1): mixed

Gets the value for the requested field.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

which

Elements of an array field can be retrieved by passing this optional parameter, starting at zero. For non-array fields, this parameter will be ignored.

Valor Retornado

Returns the field value.

Registro de Alterações

Versão | Descrição
4.3.0 | Support for arrays and the which parameter were added.

Veja Também

  • fdf_set_value() - Set the value of a field


Gets version number for FDF API or file

  • « fdf_get_value
  • fdf_header »
  • PHP Manual
  • FDF Funções
  • Gets version number for FDF API or file

fdf_get_version

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_version — Gets version number for FDF API or file

Descrição

fdf_get_version(resource $fdf_document = ?): string

Return the FDF version for the given document, or the toolkit API version number if no parameter is given.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Valor Retornado

Returns the version as a string. 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.

Veja Também

  • fdf_set_version() - Sets version number for a FDF file


Sets FDF-specific output headers

  • « fdf_get_version
  • fdf_next_field_name »
  • PHP Manual
  • FDF Funções
  • Sets FDF-specific output headers

fdf_header

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVNf)

fdf_header — Sets FDF-specific output headers

Descrição

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.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Get the next field name

  • « fdf_header
  • fdf_open_string »
  • PHP Manual
  • FDF Funções
  • Get the next field name

fdf_next_field_name

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_next_field_name — Get the next field name

Descrição

fdf_next_field_name(resource $fdf_document, string $fieldname = ?): string

Gets the name of the field after the given field. This name can be used with several functions.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string. If not given, the first field will be assumed.

Valor Retornado

Returns the field name as a string.

Exemplos

Exemplo #1 Detecting all fieldnames in a FDF

<?php
$fdf = fdf_open($HTTP_FDF_DATA);
for ($field = fdf_next_field_name($fdf);
$field != "";
$field = fdf_next_field_name($fdf, $field)) {
echo "field: $field\n";
}
?>

Veja Também

  • fdf_get_value() - Get the value of a field


Read a FDF document from a string

  • « fdf_next_field_name
  • fdf_open »
  • PHP Manual
  • FDF Funções
  • Read a FDF document from a string

fdf_open_string

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_open_string — Read a FDF document from a string

Descrição

fdf_open_string(string $fdf_data): resource

Reads form data from a string.

You can use fdf_open_string() together with $HTTP_FDF_DATA to process FDF form input from a remote client.

Parâmetros

fdf_data

The data as returned from a PDF form or created using fdf_create() and fdf_save_string().

Valor Retornado

Returns a FDF document handle, or false on error.

Exemplos

Exemplo #1 Accessing the form data

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

Veja Também

  • fdf_open() - Open a FDF document
  • fdf_close() - Close an FDF document
  • fdf_create() - Create a new FDF document
  • fdf_save_string() - Returns the FDF document as a string


Open a FDF document

  • « fdf_open_string
  • fdf_remove_item »
  • PHP Manual
  • FDF Funções
  • Open a FDF document

fdf_open

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_open — Open a FDF document

Descrição

fdf_open(string $filename): resource

Opens a file with form data.

You can also use fdf_open_string() to process the results of a PDF form POST request.

Parâmetros

filename

Path to the FDF file. This file must contain the data as returned from a PDF form or created using fdf_create() and fdf_save().

Valor Retornado

Returns a FDF document handle, or false on error.

Exemplos

Exemplo #1 Accessing the form data

<?php
// Save the FDF data into a temp file
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Open temp file and evaluate data
$fdf = fdf_open("test.fdf");
/* ... */
fdf_close($fdf);
?>

Veja Também

  • fdf_open_string() - Read a FDF document from a string
  • fdf_close() - Close an FDF document
  • fdf_create() - Create a new FDF document
  • fdf_save() - Save a FDF document


Sets target frame for form

  • « fdf_open
  • fdf_save_string »
  • PHP Manual
  • FDF Funções
  • Sets target frame for form

fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_remove_item — Sets target frame for form

Descrição

fdf_remove_item(resource $fdf_document, string $fieldname, int $item): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Returns the FDF document as a string

  • « fdf_remove_item
  • fdf_save »
  • PHP Manual
  • FDF Funções
  • Returns the FDF document as a string

fdf_save_string

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_save_string — Returns the FDF document as a string

Descrição

fdf_save_string(resource $fdf_document): string

Returns the FDF document as a string.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Valor Retornado

Returns the document as a string, or false on error.

Exemplos

Exemplo #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;
?>

O exemplo acima produzirá:

%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

Veja Também

  • fdf_open_string() - Read a FDF document from a string
  • fdf_close() - Close an FDF document
  • fdf_create() - Create a new FDF document
  • fdf_save() - Save a FDF document


Save a FDF document

  • « fdf_save_string
  • fdf_set_ap »
  • PHP Manual
  • FDF Funções
  • Save a FDF document

fdf_save

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_save — Save a FDF document

Descrição

fdf_save(resource $fdf_document, string $filename = ?): bool

Saves a FDF document.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

filename

If provided, the resulting FDF will be written in this parameter. Otherwise, this function will write the FDF to the default PHP output stream.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • fdf_close() - Close an FDF document
  • fdf_create() - Create a new FDF document
  • fdf_save_string() - Returns the FDF document as a string


Set the appearance of a field

  • « fdf_save
  • fdf_set_encoding »
  • PHP Manual
  • FDF Funções
  • Set the appearance of a field

fdf_set_ap

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_ap — Set the appearance of a field

Descrição

fdf_set_ap(
resource $fdf_document,
string $field_name,
int $face,
string $filename,
int $page_number
): bool

Sets the appearance of a field (i.e. the value of the /AP key).

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

field_name

face

The possible values FDFNormalAP, FDFRolloverAP and FDFDownAP.

filename

page_number

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sets FDF character encoding

  • « fdf_set_ap
  • fdf_set_file »
  • PHP Manual
  • FDF Funções
  • Sets FDF character encoding

fdf_set_encoding

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_encoding — Sets FDF character encoding

Descrição

fdf_set_encoding(resource $fdf_document, string $encoding): bool

Sets the character encoding for the FDF document.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

encoding

The encoding name. The following values are supported: "Shift-JIS", "UHC", "GBK" and "BigFive".

An empty string resets the encoding to the default PDFDocEncoding/Unicode scheme.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Set PDF document to display FDF data in

  • « fdf_set_encoding
  • fdf_set_flags »
  • PHP Manual
  • FDF Funções
  • Set PDF document to display FDF data in

fdf_set_file

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_file — Set PDF document to display FDF data in

Descrição

fdf_set_file(resource $fdf_document, string $url, string $target_frame = ?): bool

Selects a different PDF document to display the form results in then the form it originated from.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

url

Should be given as an absolute URL.

target_frame

Use this parameter to specify the frame in which the document will be displayed. You can also set the default value for this parameter using fdf_set_target_frame().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Passing FDF data to a second form

<?php
/* set content type for Adobe FDF */
fdf_header();

/* start new fdf */
$fdf = fdf_create();

/* set field "foo" to value "bar" */
fdf_set_value($fdf, "foo", "bar");

/* tell client to display FDF data using "fdf_form.pdf" */
fdf_set_file($fdf, "http://www.example.com/fdf_form.pdf");

/* output fdf */
fdf_save($fdf);

/* clean up */
fdf_close($fdf);
?>

Veja Também

  • fdf_get_file() - Get the value of the /F key
  • fdf_set_target_frame() - Set target frame for form display


Sets a flag of a field

  • « fdf_set_file
  • fdf_set_javascript_action »
  • PHP Manual
  • FDF Funções
  • Sets a flag of a field

fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_flags — Sets a flag of a field

Descrição

fdf_set_flags(
resource $fdf_document,
string $fieldname,
int $whichFlags,
int $newFlags
): bool

Sets certain flags of the given field.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

whichFlags

newFlags

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • fdf_set_opt() - Sets an option of a field


Sets an javascript action of a field

  • « fdf_set_flags
  • fdf_set_on_import_javascript »
  • PHP Manual
  • FDF Funções
  • Sets an javascript action of a field

fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_javascript_action — Sets an javascript action of a field

Descrição

fdf_set_javascript_action(
resource $fdf_document,
string $fieldname,
int $trigger,
string $script
): bool

Sets a javascript action for the given field.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

trigger

script

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • fdf_set_submit_form_action() - Sets a submit form action of a field


Adds javascript code to be executed when Acrobat opens the FDF

  • « fdf_set_javascript_action
  • fdf_set_opt »
  • PHP Manual
  • FDF Funções
  • Adds javascript code to be executed when Acrobat opens the FDF

fdf_set_on_import_javascript

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF

Descrição

fdf_set_on_import_javascript(resource $fdf_document, string $script, bool $before_data_import): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Veja Também

  • fdf_add_doc_javascript() - Adds javascript code to the FDF document
  • fdf_set_javascript_action() - Sets an javascript action of a field


Sets an option of a field

  • « fdf_set_on_import_javascript
  • fdf_set_status »
  • PHP Manual
  • FDF Funções
  • Sets an option of a field

fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_opt — Sets an option of a field

Descrição

fdf_set_opt(
resource $fdf_document,
string $fieldname,
int $element,
string $str1,
string $str2
): bool

Sets options of the given field.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

element

str1

str2

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • fdf_set_flags() - Sets a flag of a field


Set the value of the /STATUS key

  • « fdf_set_opt
  • fdf_set_submit_form_action »
  • PHP Manual
  • FDF Funções
  • Set the value of the /STATUS key

fdf_set_status

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_status — Set the value of the /STATUS key

Descrição

fdf_set_status(resource $fdf_document, string $status): bool

Sets the value of the /STATUS key. When a client receives a FDF with a status set it will present the value in an alert box.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

status

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • fdf_get_status() - Get the value of the /STATUS key


Sets a submit form action of a field

  • « fdf_set_status
  • fdf_set_target_frame »
  • PHP Manual
  • FDF Funções
  • Sets a submit form action of a field

fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_submit_form_action — Sets a submit form action of a field

Descrição

fdf_set_submit_form_action(
resource $fdf_document,
string $fieldname,
int $trigger,
string $script,
int $flags
): bool

Sets a submit form action for the given field.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

trigger

script

flags

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • fdf_set_javascript_action() - Sets an javascript action of a field


Set target frame for form display

  • « fdf_set_submit_form_action
  • fdf_set_value »
  • PHP Manual
  • FDF Funções
  • Set target frame for form display

fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_target_frame — Set target frame for form display

Descrição

fdf_set_target_frame(resource $fdf_document, string $frame_name): bool

Sets the target frame to display a result PDF defined with fdf_save_file() in.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

frame_name

The frame name, as a string.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • fdf_save_file()


Set the value of a field

  • « fdf_set_target_frame
  • fdf_set_version »
  • PHP Manual
  • FDF Funções
  • Set the value of a field

fdf_set_value

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_value — Set the value of a field

Descrição

fdf_set_value(
resource $fdf_document,
string $fieldname,
mixed $value,
int $isName = ?
): bool

Sets the value for the given field.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

value

This parameter will be stored as a string unless it is an array. In this case all array elements will be stored as a value array.

isName

Nota:

In older versions of the FDF toolkit last parameter determined if the field value was to be converted to a PDF Name (= 1) or set to a PDF String (= 0).

The value is no longer used in the current toolkit version 5.0. For compatibility reasons it is still supported as an optional parameter, but ignored internally.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • fdf_get_value() - Get the value of a field
  • fdf_remove_item() - Sets target frame for form


Sets version number for a FDF file

  • « fdf_set_value
  • GnuPG »
  • PHP Manual
  • FDF Funções
  • Sets version number for a FDF file

fdf_set_version

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_version — Sets version number for a FDF file

Descrição

fdf_set_version(resource $fdf_document, string $version): bool

Sets the FDF version for the given document.

Some features supported by this extension are only available in newer FDF versions.

Parâmetros

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

version

The version number. For the current FDF toolkit 5.0, this may be either 1.2, 1.3 or 1.4.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • fdf_get_version() - Gets version number for FDF API or file


GNU Privacy Guard

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Clearsign text
  • GnuPG Funções
    • gnupg_adddecryptkey — Add a key for decryption
    • gnupg_addencryptkey — Add a key for encryption
    • gnupg_addsignkey — Add a key for signing
    • gnupg_cleardecryptkeys — Removes all keys which were set for decryption before
    • gnupg_clearencryptkeys — Removes all keys which were set for encryption before
    • gnupg_clearsignkeys — Removes all keys which were set for signing before
    • gnupg_decrypt — Decrypts a given text
    • gnupg_decryptverify — Decrypts and verifies a given text
    • gnupg_deletekey — Delete a key from the keyring
    • gnupg_encrypt — Encrypts a given text
    • gnupg_encryptsign — Encrypts and signs a given text
    • gnupg_export — Exports a key
    • gnupg_getengineinfo — Returns the engine info
    • gnupg_geterror — Returns the errortext, if a function fails
    • gnupg_geterrorinfo — Returns the error info
    • gnupg_getprotocol — Returns the currently active protocol for all operations
    • gnupg_gettrustlist — Search the trust items
    • gnupg_import — Imports a key
    • gnupg_init — Initialize a connection
    • gnupg_keyinfo — Returns an array with information about all keys that matches the given pattern
    • gnupg_listsignatures — List key signatures
    • gnupg_setarmor — Toggle armored output
    • gnupg_seterrormode — Sets the mode for error_reporting
    • gnupg_setsignmode — Sets the mode for signing
    • gnupg_sign — Signs a given text
    • gnupg_verify — Verifies a signed text


  • « GnuPG
  • Instalação/Configuração »
  • PHP Manual
  • GnuPG
  • Introdução

Introdução

This module allows you to interact with » gnupg.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

This extension requires the » gpgme library


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/gnupg.


Constantes pré-definidas

GNUPG_SIG_MODE_NORMAL (int)
GNUPG_SIG_MODE_DETACH (int)
GNUPG_SIG_MODE_CLEAR (int)
GNUPG_VALIDITY_UNKNOWN (int)
GNUPG_VALIDITY_UNDEFINED (int)
GNUPG_VALIDITY_NEVER (int)
GNUPG_VALIDITY_MARGINAL (int)
GNUPG_VALIDITY_FULL (int)
GNUPG_VALIDITY_ULTIMATE (int)
GNUPG_PROTOCOL_OpenPGP (int)
GNUPG_PROTOCOL_CMS (int)
GNUPG_SIGSUM_VALID (int)
GNUPG_SIGSUM_GREEN (int)
GNUPG_SIGSUM_RED (int)
GNUPG_SIGSUM_KEY_REVOKED (int)
GNUPG_SIGSUM_KEY_EXPIRED (int)
GNUPG_SIGSUM_KEY_MISSING (int)
GNUPG_SIGSUM_SIG_EXPIRED (int)
GNUPG_SIGSUM_CRL_MISSING (int)
GNUPG_SIGSUM_CRL_TOO_OLD (int)
GNUPG_SIGSUM_BAD_POLICY (int)
GNUPG_SIGSUM_SYS_ERROR (int)
GNUPG_ERROR_WARNING (int)
GNUPG_ERROR_EXCEPTION (int)
GNUPG_ERROR_SILENT (int)


  • « Constantes pré-definidas
  • Clearsign text »
  • PHP Manual
  • GnuPG
  • Exemplos

Exemplos

Índice

  • Clearsign text


Clearsign text

This example will clearsign a given text.

Exemplo #1 gnupg clearsign example (procedural)

<?php
// init gnupg
$res = gnupg_init();
// not really needed. Clearsign is default
gnupg_setsignmode($res,GNUPG_SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
// sign
$signed = gnupg_sign($res,"just a test");
echo $signed;
?>

Exemplo #2 gnupg clearsign example (OO)

<?php
// new class
$gnupg = new gnupg();
// not really needed. Clearsign is default
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
// sign
$signed = $gnupg->sign("just a test");
echo $signed;
?>

Exemplo #3 keylistiterator

This extension also comes with an Iterator for your keyring.

<?php
// create a new iterator for listing all public keys that matches 'example'
$iterator = new gnupg_keylistiterator("example");
foreach($iterator as $fingerprint => $userid){
echo $fingerprint." -> ".$userid."\n";
}
?>


GnuPG Funções

Notas

This extension makes use of the keyring of the current user. This keyring is normally located in ~./.gnupg/. To specify a custom location, store the path to the keyring in the environment variable GNUPGHOME. See putenv for more information how to do this.

Some functions require the specification of a key. This specification can be anything that refers to a unique key (userid, key-id, fingerprint, ...). This documentation uses the fingerprint in all examples.

Nota:

As alternative to the explicitly documented functions using resources, you can also use an object-oriented style using gnupg objects.

Índice

  • gnupg_adddecryptkey — Add a key for decryption
  • gnupg_addencryptkey — Add a key for encryption
  • gnupg_addsignkey — Add a key for signing
  • gnupg_cleardecryptkeys — Removes all keys which were set for decryption before
  • gnupg_clearencryptkeys — Removes all keys which were set for encryption before
  • gnupg_clearsignkeys — Removes all keys which were set for signing before
  • gnupg_decrypt — Decrypts a given text
  • gnupg_decryptverify — Decrypts and verifies a given text
  • gnupg_deletekey — Delete a key from the keyring
  • gnupg_encrypt — Encrypts a given text
  • gnupg_encryptsign — Encrypts and signs a given text
  • gnupg_export — Exports a key
  • gnupg_getengineinfo — Returns the engine info
  • gnupg_geterror — Returns the errortext, if a function fails
  • gnupg_geterrorinfo — Returns the error info
  • gnupg_getprotocol — Returns the currently active protocol for all operations
  • gnupg_gettrustlist — Search the trust items
  • gnupg_import — Imports a key
  • gnupg_init — Initialize a connection
  • gnupg_keyinfo — Returns an array with information about all keys that matches the given pattern
  • gnupg_listsignatures — List key signatures
  • gnupg_setarmor — Toggle armored output
  • gnupg_seterrormode — Sets the mode for error_reporting
  • gnupg_setsignmode — Sets the mode for signing
  • gnupg_sign — Signs a given text
  • gnupg_verify — Verifies a signed text


Add a key for decryption

  • « GnuPG Funções
  • gnupg_addencryptkey »
  • PHP Manual
  • GnuPG Funções
  • Add a key for decryption

gnupg_adddecryptkey

(PECL gnupg >= 0.5)

gnupg_adddecryptkey — Add a key for decryption

Descrição

gnupg_adddecryptkey(resource $identifier, string $fingerprint, string $passphrase): bool

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

fingerprint

A chave da impressão digital.

passphrase

The pass phrase.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Procedural gnupg_adddecryptkey() example

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Exemplo #2 OO gnupg_adddecryptkey() example

<?php
$gpg = new gnupg();
$gpg->adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>


Add a key for encryption

  • « gnupg_adddecryptkey
  • gnupg_addsignkey »
  • PHP Manual
  • GnuPG Funções
  • Add a key for encryption

gnupg_addencryptkey

(PECL gnupg >= 0.5)

gnupg_addencryptkey — Add a key for encryption

Descrição

gnupg_addencryptkey(resource $identifier, string $fingerprint): bool

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

fingerprint

A chave da impressão digital.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Procedural gnupg_addencryptkey() example

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
?>

Exemplo #2 OO gnupg_addencryptkey() example

<?php
$gpg = new gnupg();
$gpg->addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Add a key for signing

  • « gnupg_addencryptkey
  • gnupg_cleardecryptkeys »
  • PHP Manual
  • GnuPG Funções
  • Add a key for signing

gnupg_addsignkey

(PECL gnupg >= 0.5)

gnupg_addsignkey — Add a key for signing

Descrição

gnupg_addsignkey(resource $identifier, string $fingerprint, string $passphrase = ?): bool

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

fingerprint

A chave da impressão digital.

passphrase

The pass phrase.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Procedural gnupg_addsignkey() example

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Exemplo #2 OO gnupg_addsignkey() example

<?php
$gpg = new gnupg();
$gpg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>


Removes all keys which were set for decryption before

  • « gnupg_addsignkey
  • gnupg_clearencryptkeys »
  • PHP Manual
  • GnuPG Funções
  • Removes all keys which were set for decryption before

gnupg_cleardecryptkeys

(PECL gnupg >= 0.5)

gnupg_cleardecryptkeys — Removes all keys which were set for decryption before

Descrição

gnupg_cleardecryptkeys(resource $identifier): bool

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Procedural gnupg_cleardecryptkeys() example

<?php
$res = gnupg_init();
gnupg_cleardecryptkeys($res);
?>

Exemplo #2 OO gnupg_cleardecryptkeys() example

<?php
$gpg = new gnupg();
$gpg->cleardecryptkeys();
?>


Removes all keys which were set for encryption before

  • « gnupg_cleardecryptkeys
  • gnupg_clearsignkeys »
  • PHP Manual
  • GnuPG Funções
  • Removes all keys which were set for encryption before

gnupg_clearencryptkeys

(PECL gnupg >= 0.5)

gnupg_clearencryptkeys — Removes all keys which were set for encryption before

Descrição

gnupg_clearencryptkeys(resource $identifier): bool

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Procedural gnupg_clearencryptkeys() example

<?php
$res = gnupg_init();
gnupg_clearencryptkeys($res);
?>

Exemplo #2 OO gnupg_clearencryptkeys() example

<?php
$gpg = new gnupg();
$gpg->clearencryptkeys();
?>


Removes all keys which were set for signing before

  • « gnupg_clearencryptkeys
  • gnupg_decrypt »
  • PHP Manual
  • GnuPG Funções
  • Removes all keys which were set for signing before

gnupg_clearsignkeys

(PECL gnupg >= 0.5)

gnupg_clearsignkeys — Removes all keys which were set for signing before

Descrição

gnupg_clearsignkeys(resource $identifier): bool

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Procedural gnupg_clearsignkeys() example

<?php
$res = gnupg_init();
gnupg_clearsignkeys($res);
?>

Exemplo #2 OO gnupg_clearsignkeys() example

<?php
$gpg = new gnupg();
$gpg->clearsignkeys();
?>


Decrypts a given text

  • « gnupg_clearsignkeys
  • gnupg_decryptverify »
  • PHP Manual
  • GnuPG Funções
  • Decrypts a given text

gnupg_decrypt

(PECL gnupg >= 0.1)

gnupg_decrypt — Decrypts a given text

Descrição

gnupg_decrypt(resource $identifier, string $text): string|false

Decrypts the given text with the keys, which were set with gnupg_adddecryptkey before.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

text

The text being decrypted.

Valor Retornado

On success, this function returns the decrypted text. On failure, this function returns false.

Exemplos

Exemplo #1 Procedural gnupg_decrypt() example

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;
?>

Exemplo #2 OO gnupg_decrypt() example

<?php
$gpg = new gnupg();
$gpg->adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = $gpg->decrypt($encrypted_text);
echo $plain;
?>


Decrypts and verifies a given text

  • « gnupg_decrypt
  • gnupg_deletekey »
  • PHP Manual
  • GnuPG Funções
  • Decrypts and verifies a given text

gnupg_decryptverify

(PECL gnupg >= 0.2)

gnupg_decryptverify — Decrypts and verifies a given text

Descrição

gnupg_decryptverify(resource $identifier, string $text, string &$plaintext): array|false

Decrypts and verifies a given text and returns information about the signature.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

text

The text being decrypted.

plaintext

The parameter plaintext gets filled with the decrypted text.

Valor Retornado

On success, this function returns information about the signature and fills the plaintext parameter with the decrypted text. On failure, this function returns false.

Exemplos

Exemplo #1 Procedural gnupg_decryptverify() example

<?php
$plaintext = "";
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$info = gnupg_decryptverify($res,$text,$plaintext);
print_r($info);
?>

Exemplo #2 OO gnupg_decryptverify() example

<?php
$plaintext = "";
$gpg = new gnupg();
$gpg->adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$info = $gpg->decryptverify($text,$plaintext);
print_r($info);
?>


Delete a key from the keyring

  • « gnupg_decryptverify
  • gnupg_encrypt »
  • PHP Manual
  • GnuPG Funções
  • Delete a key from the keyring

gnupg_deletekey

(PECL gnupg >= 0.5)

gnupg_deletekey — Delete a key from the keyring

Descrição

gnupg_deletekey(resource $identifier, string $key, bool $allow_secret): bool

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

key

The key to delete.

allow_secret

It specifies whether to delete secret keys as well.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Procedural gnupg_deletekey() example

<?php
$res = gnupg_init();
gnupg_deletekey($res, "8660281B6051D071D94B5B230549F9DC851566DC");
?>

Exemplo #2 OO gnupg_deletekey() example

<?php
$gpg = new gnupg();
$gpg->deletekey("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Encrypts a given text

  • « gnupg_deletekey
  • gnupg_encryptsign »
  • PHP Manual
  • GnuPG Funções
  • Encrypts a given text

gnupg_encrypt

(PECL gnupg >= 0.1)

gnupg_encrypt — Encrypts a given text

Descrição

gnupg_encrypt(resource $identifier, string $plaintext): string|false

Encrypts the given plaintext with the keys, which were set with gnupg_addencryptkey before and returns the encrypted text.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

plaintext

The text being encrypted.

Valor Retornado

On success, this function returns the encrypted text. On failure, this function returns false.

Exemplos

Exemplo #1 Procedural gnupg_encrypt() example

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
$enc = gnupg_encrypt($res, "just a test");
echo $enc;
?>

Exemplo #2 OO gnupg_encrypt() example

<?php
$gpg = new gnupg();
$gpg->addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$enc = $gpg->encrypt("just a test");
echo $enc;
?>


Encrypts and signs a given text

  • « gnupg_encrypt
  • gnupg_export »
  • PHP Manual
  • GnuPG Funções
  • Encrypts and signs a given text

gnupg_encryptsign

(PECL gnupg >= 0.2)

gnupg_encryptsign — Encrypts and signs a given text

Descrição

gnupg_encryptsign(resource $identifier, string $plaintext): string|false

Encrypts and signs the given plaintext with the keys, which were set with gnupg_addsignkey and gnupg_addencryptkey before and returns the encrypted and signed text.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

plaintext

The text being encrypted.

Valor Retornado

On success, this function returns the encrypted and signed text. On failure, this function returns false.

Exemplos

Exemplo #1 Procedural gnupg_encryptsign() example

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc = gnupg_encryptsign($res, "just a test");
echo $enc;
?>

Exemplo #2 OO gnupg_encryptsign() example

<?php
$gpg = new gnupg();
$gpg->addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$gpg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc = $gpg->encryptsign("just a test");
echo $enc;
?>


Exports a key

  • « gnupg_encryptsign
  • gnupg_getengineinfo »
  • PHP Manual
  • GnuPG Funções
  • Exports a key

gnupg_export

(PECL gnupg >= 0.1)

gnupg_export — Exports a key

Descrição

gnupg_export(resource $identifier, string $fingerprint): string|false

Exports the key fingerprint.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

fingerprint

A chave da impressão digital.

Valor Retornado

On success, this function returns the keydata. On failure, this function returns false.

Exemplos

Exemplo #1 Procedural gnupg_export() example

<?php
$res = gnupg_init();
$export = gnupg_export($res,"8660281B6051D071D94B5B230549F9DC851566DC");
echo $export;
?>

Exemplo #2 OO gnupg_export() example

<?php
$gpg = new gnupg();
$export = $gpg->export("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Returns the engine info

  • « gnupg_export
  • gnupg_geterror »
  • PHP Manual
  • GnuPG Funções
  • Returns the engine info

gnupg_getengineinfo

(PECL gnupg >= 1.5)

gnupg_getengineinfo — Returns the engine info

Descrição

gnupg_getengineinfo(resource $identifier): array

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

Valor Retornado

Returns an array with engine info consting of protocol, file_name and home_dir.

Exemplos

Exemplo #1 Procedural gnupg_getengineinfo() example

<?php
$res = gnupg_init();
print_r(gnupg_getengineinfo($res));
?>

O exemplo acima produzirá:

array(3) {
  ["protocol"]=>
  int(0)
  ["file_name"]=>
  string(12) "/usr/bin/gpg"
  ["home_dir"]=>
  string(0) ""
}

Exemplo #2 OO gnupg_getengineinfo() example

<?php
$gpg = new gnupg(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
print_r($gpg->getengineinfo());
?>

O exemplo acima produzirá:

array(3) {
  ["protocol"]=>
  int(0)
  ["file_name"]=>
  string(13) "/usr/bin/gpg2"
  ["home_dir"]=>
  string(15) "/var/www/.gnupg"
}


Returns the errortext, if a function fails

  • « gnupg_getengineinfo
  • gnupg_geterrorinfo »
  • PHP Manual
  • GnuPG Funções
  • Returns the errortext, if a function fails

gnupg_geterror

(PECL gnupg >= 0.1)

gnupg_geterror — Returns the errortext, if a function fails

Descrição

gnupg_geterror(resource $identifier): string|false

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

Valor Retornado

Returns an errortext, if an error has occurred, otherwise false.

Exemplos

Exemplo #1 Procedural gnupg_geterror() example

<?php
$res = gnupg_init();
echo gnupg_geterror($res);
?>

Exemplo #2 OO gnupg_geterror() example

<?php
$gpg = new gnupg();
echo $gpg->geterror();
?>


Returns the error info

  • « gnupg_geterror
  • gnupg_getprotocol »
  • PHP Manual
  • GnuPG Funções
  • Returns the error info

gnupg_geterrorinfo

(PECL gnupg >= 1.5)

gnupg_geterrorinfo — Returns the error info

Descrição

gnupg_geterrorinfo(resource $identifier): array

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

Valor Retornado

Returns an array with error info.

Exemplos

Exemplo #1 Procedural gnupg_geterrorinfo() example

<?php
$res = gnupg_init();
// this is called without any error
print_r(gnupg_geterrorinfo($res));
?>

O exemplo acima produzirá:

array(4) {
  ["generic_message"]=>
  bool(false)
  ["gpgme_code"]=>
  int(0)
  ["gpgme_source"]=>
  string(18) "Unspecified source"
  ["gpgme_message"]=>
  string(7) "Success"
}

Exemplo #2 OO gnupg_geterrorinfo() example

<?php
$gpg = new gnupg();
// error call
$gpg->decrypt('abc');
// error info should be displayed
print_r($gpg->geterrorinfo());
?>

O exemplo acima produzirá:

array(4) {
  ["generic_message"]=>
  string(14) "decrypt failed"
  ["gpgme_code"]=>
  int(117440570)
  ["gpgme_source"]=>
  string(5) "GPGME"
  ["gpgme_message"]=>
  string(7) "No data"
}


Returns the currently active protocol for all operations

  • « gnupg_geterrorinfo
  • gnupg_gettrustlist »
  • PHP Manual
  • GnuPG Funções
  • Returns the currently active protocol for all operations

gnupg_getprotocol

(PECL gnupg >= 0.1)

gnupg_getprotocol — Returns the currently active protocol for all operations

Descrição

gnupg_getprotocol(resource $identifier): int

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

Valor Retornado

Returns the currently active protocol, which can be one of GNUPG_PROTOCOL_OpenPGP or GNUPG_PROTOCOL_CMS.

Exemplos

Exemplo #1 Procedural gnupg_getprotocol() example

<?php
$res = gnupg_init();
echo gnupg_getprotocol($res);
?>

Exemplo #2 OO gnupg_getprotocol() example

<?php
$gpg = new gnupg();
echo $gpg->getprotocol();
?>


Search the trust items

  • « gnupg_getprotocol
  • gnupg_import »
  • PHP Manual
  • GnuPG Funções
  • Search the trust items

gnupg_gettrustlist

(PECL gnupg >= 0.5)

gnupg_gettrustlist — Search the trust items

Descrição

gnupg_gettrustlist(resource $identifier, string $pattern): ?array

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

pattern

Expression to limit the list of trust items to only the ones matching the pattern.

Valor Retornado

On success, this function returns an array of trust items. On failure, this function returns null.

Exemplos

Exemplo #1 Procedural gnupg_gettrustlist() example

<?php
$res = gnupg_init();
$items = gnupg_gettrustlist($res);
print_r($items);
?>

Exemplo #2 OO gnupg_gettrustlist() example

<?php
$gpg = new gnupg();
$items = $gpg->gettrustlist();
print_r($items);
?>


Imports a key

  • « gnupg_gettrustlist
  • gnupg_init »
  • PHP Manual
  • GnuPG Funções
  • Imports a key

gnupg_import

(PECL gnupg >= 0.3)

gnupg_import — Imports a key

Descrição

gnupg_import(resource $identifier, string $keydata): array|false

Imports the key keydata and returns an array with information about the importprocess.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

keydata

The data key that is being imported.

Valor Retornado

On success, this function returns and info-array about the importprocess. On failure, this function returns false.

Exemplos

Exemplo #1 Procedural gnupg_import() example

<?php
$res = gnupg_init();
$info = gnupg_import($res,$keydata);
print_r($info);
?>

Exemplo #2 OO gnupg_import() example

<?php
$gpg = new gnupg();
$info = $gpg->import($keydata);
print_r($info);
?>


Initialize a connection

  • « gnupg_import
  • gnupg_keyinfo »
  • PHP Manual
  • GnuPG Funções
  • Initialize a connection

gnupg_init

(PECL gnupg >= 0.4)

gnupg_init — Initialize a connection

Descrição

gnupg_init(?array $options = null): resource

Parâmetros

options

Must be an associative array. It is used to change the default configuration of the crypto engine.

Configuration overrides
key | type | description
file_name | string | It is the file name of the executable program implementing this protocol which is usually path of the gpg executable.
home_dir | string | It is the directory name of the configuration directory. It also overrides GNUPGHOME environment variable that is used for the same purpose.

Valor Retornado

A GnuPG resource connection used by other GnuPG functions.

Registro de Alterações

Versão | Descrição
1.5.0 | The options parameter was added.

Exemplos

Exemplo #1 Procedural gnupg_init() example with default setting

<?php
$res = gnupg_init();
?>

Exemplo #2 Procedural gnupg_init() example with overriden file name and home dir

<?php
$res = gnupg_init(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
?>

Exemplo #3 OO gnupg initializer example with default setting

<?php
$gpg = new gnupg();
?>

Exemplo #4 OO gnupg initializer example with overriden file name and home dir

<?php
$gpg = new gnupg(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
?>


Returns an array with information about all keys that matches the given pattern

  • « gnupg_init
  • gnupg_listsignatures »
  • PHP Manual
  • GnuPG Funções
  • Returns an array with information about all keys that matches the given pattern

gnupg_keyinfo

(PECL gnupg >= 0.1)

gnupg_keyinfo — Returns an array with information about all keys that matches the given pattern

Descrição

gnupg_keyinfo(resource $identifier, string $pattern): array|false

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

pattern

The pattern being checked against the keys.

Valor Retornado

Returns an array with information about all keys that matches the given pattern or false, if an error has occurred.

Exemplos

Exemplo #1 Procedural gnupg_keyinfo() example

<?php
$res = gnupg_init();
$info = gnupg_keyinfo($res, 'test');
print_r($info);
?>

Exemplo #2 OO gnupg_keyinfo() example

<?php
$gpg = new gnupg();
$info = $gpg->keyinfo("test");
print_r($info);
?>


List key signatures

  • « gnupg_keyinfo
  • gnupg_setarmor »
  • PHP Manual
  • GnuPG Funções
  • List key signatures

gnupg_listsignatures

(PECL gnupg >= 0.5)

gnupg_listsignatures — List key signatures

Descrição

gnupg_listsignatures(resource $identifier, string $keyid): ?array

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

keyid

The key ID to list signatures for.

Valor Retornado

On success, this function returns an array of key signatures. On failure, this function returns null.

Exemplos

Exemplo #1 Procedural gnupg_listsignatures() example

<?php
$res = gnupg_init();
$signatures = gnupg_listsignatures($res, "8660281B6051D071D94B5B230549F9DC851566DC");
print_r($signatures);
?>

Exemplo #2 OO gnupg_listsignatures() example

<?php
$gpg = new gnupg();
$signatures = $gpg->listsignatures("8660281B6051D071D94B5B230549F9DC851566DC");
print_r($signatures);
?>


Toggle armored output

  • « gnupg_listsignatures
  • gnupg_seterrormode »
  • PHP Manual
  • GnuPG Funções
  • Toggle armored output

gnupg_setarmor

(PECL gnupg >= 0.1)

gnupg_setarmor — Toggle armored output

Descrição

gnupg_setarmor(resource $identifier, int $armor): bool

Toggle the armored output.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

armor

Pass a non-zero integer-value to this function to enable armored-output (default). Pass 0 to disable armored output.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Procedural gnupg_setarmor() example

<?php
$res = gnupg_init();
gnupg_setarmor($res,1); // enable armored output;
gnupg_setarmor($res,0); // disable armored output;
?>

Exemplo #2 OO gnupg_setarmor() example

<?php
$gpg = new gnupg();
$gpg->setarmor(1); // enable armored output;
$gpg->setarmor(0); // disable armored output;
?>


Sets the mode for error_reporting

  • « gnupg_setarmor
  • gnupg_setsignmode »
  • PHP Manual
  • GnuPG Funções
  • Sets the mode for error_reporting

gnupg_seterrormode

(PECL gnupg >= 0.6)

gnupg_seterrormode — Sets the mode for error_reporting

Descrição

gnupg_seterrormode(resource $identifier, int $errormode): void

Sets the mode for error_reporting.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

errormode

The error mode.

errormode takes a constant indicating what type of error_reporting should be used. The possible values are GNUPG_ERROR_WARNING, GNUPG_ERROR_EXCEPTION and GNUPG_ERROR_SILENT. By default GNUPG_ERROR_SILENT is used.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Procedural gnupg_seterrormode() example

<?php
$res = gnupg_init();
gnupg_seterrormode($res,GNUPG_ERROR_WARNING); // raise a PHP-Warning in case of an error
?>

Exemplo #2 OO gnupg_seterrormode() example

<?php
$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_EXCEPTION); // throw an exception in case of an error
?>


Sets the mode for signing

  • « gnupg_seterrormode
  • gnupg_sign »
  • PHP Manual
  • GnuPG Funções
  • Sets the mode for signing

gnupg_setsignmode

(PECL gnupg >= 0.1)

gnupg_setsignmode — Sets the mode for signing

Descrição

gnupg_setsignmode(resource $identifier, int $signmode): bool

Sets the mode for signing.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

sigmode

The mode for signing.

signmode takes a constant indicating what type of signature should be produced. The possible values are GNUPG_SIG_MODE_NORMAL, GNUPG_SIG_MODE_DETACH and GNUPG_SIG_MODE_CLEAR. By default GNUPG_SIG_MODE_CLEAR is used.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Procedural gnupg_setsignmode() example

<?php
$res = gnupg_init();
gnupg_setsignmode($res,GNUPG_SIG_MODE_DETACH); // produce a detached signature
?>

Exemplo #2 OO gnupg_setsignmode() example

<?php
$gpg = new gnupg();
$gpg->setsignmode(gnupg::SIG_MODE_DETACH); // produce a detached signature
?>


Signs a given text

  • « gnupg_setsignmode
  • gnupg_verify »
  • PHP Manual
  • GnuPG Funções
  • Signs a given text

gnupg_sign

(PECL gnupg >= 0.1)

gnupg_sign — Signs a given text

Descrição

gnupg_sign(resource $identifier, string $plaintext): string|false

Signs the given plaintext with the keys, which were set with gnupg_addsignkey before and returns the signed text or the signature, depending on what was set with gnupg_setsignmode.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

plaintext

The plain text being signed.

Valor Retornado

On success, this function returns the signed text or the signature. On failure, this function returns false.

Exemplos

Exemplo #1 Procedural gnupg_sign() example

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = gnupg_sign($res, "just a test");
echo $signed;
?>

Exemplo #2 OO gnupg_sign() example

<?php
$gpg = new gnupg();
$gpg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = $gpg->sign("just a test");
echo $signed;
?>


Verifies a signed text

  • « gnupg_sign
  • wkhtmltox »
  • PHP Manual
  • GnuPG Funções
  • Verifies a signed text

gnupg_verify

(PECL gnupg >= 0.1)

gnupg_verify — Verifies a signed text

Descrição

gnupg_verify(
resource $identifier,
string $signed_text,
string $signature,
string &$plaintext = ?
): array|false

Verifies the given signed_text and returns information about the signature.

Parâmetros

identifier

O identificador gnupg, obtido de uma chamada a gnupg_init() ou gnupg.

signed_text

The signed text.

signature

The signature. To verify a clearsigned text, set signature to false.

plaintext

The plain text. If this optional parameter is passed, it is filled with the plain text.

Valor Retornado

On success, this function returns information about the signature. On failure, this function returns false.

Exemplos

Exemplo #1 Procedural gnupg_verify() example

<?php
$plaintext = "";
$res = gnupg_init();
// clearsigned
$info = gnupg_verify($res,$signed_text,false,$plaintext);
print_r($info);
// detached signature
$info = gnupg_verify($res,$signed_text,$signature);
print_r($info);
?>

Exemplo #2 OO gnupg_verify() example

<?php
$plaintext = "";
$gpg = new gnupg();
// clearsigned
$info = $gpg->verify($signed_text,false,$plaintext);
print_r($info);
// detached signature
$info = $gpg->verify($signed_text,$signature);
print_r($info);
?>


wkhtmltox

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
  • wkhtmltox\PDF\Converter — The wkhtmltox\PDF\Converter class
    • wkhtmltox\PDF\Converter::add — Add an object for conversion
    • wkhtmltox\PDF\Converter::__construct — Create a new PDF converter
    • wkhtmltox\PDF\Converter::convert — Perform PDF conversion
    • wkhtmltox\PDF\Converter::getVersion — Determine version of Converter
  • wkhtmltox\PDF\Object — The wkhtmltox\PDF\Object class
    • wkhtmltox\PDF\Object::__construct — Create a new PDF Object
  • wkhtmltox\Image\Converter — The wkhtmltox\Image\Converter class
    • wkhtmltox\Image\Converter::__construct — Create a new Image converter
    • wkhtmltox\Image\Converter::convert — Perform Image conversion
    • wkhtmltox\Image\Converter::getVersion — Determine version of Converter


Introdução

libwkhtmltox is an open source LGPLv3 library for rendering HTML into PDF and various image formats using the QtWebKit rendering engine.


  • « Introdução
  • Dependências »
  • PHP Manual
  • wkhtmltox
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Configurações em Execução


Dependências

libwkhtmltox source and binary releases are distributed at » wkhtmltopdf.org.

Cuidado

Windows users need to take the additional step of adding wkhtmltox.dll to their PATH.


Instalação

The source code of this extension, and binaries for Windows are hosted by » github,

Fetching the source code and building the extension:

git clone https://github.com/krakjoe/wkhtmltox
cd wkhtmltox
phpize
./configure --with-wkhtmltox=/path/to/wkhtmltox/installation
make
sudo make install

Fetching updates and rebuilding the extension:

cd wkhtmltox
phpize --clean
git pull origin master
phpize
./configure --with-wkhtmltox=/path/to/wkhtmltox/installation
make
sudo make install


Configurações em Execução

Name | Description | Default | Stage | Changelog
wkhtmltox.graphics | allow libwkhtmltox to use graphics | Off | INI_SYSTEM|INI_PERDIR | >= 0.3.2


The wkhtmltox\PDF\Converter class

(wkhtmltox >= 0.1.0)

Introdução

Converts an HTML input, or set of HTML inputs, into PDF output

Resumo da classe

class wkhtmltox\PDF\Converter {
/* Constructor */
public __construct(array $settings = ?)
/* Métodos */
public add(wkhtmltox\PDF\Object $object): void
public convert(): ?string
public getVersion(): string
}

Índice

  • wkhtmltox\PDF\Converter::add — Add an object for conversion
  • wkhtmltox\PDF\Converter::__construct — Create a new PDF converter
  • wkhtmltox\PDF\Converter::convert — Perform PDF conversion
  • wkhtmltox\PDF\Converter::getVersion — Determine version of Converter


Add an object for conversion

  • « wkhtmltox\PDF\Converter
  • wkhtmltox\PDF\Converter::__construct »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Add an object for conversion

wkhtmltox\PDF\Converter::add

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::add — Add an object for conversion

Descrição

public wkhtmltox\PDF\Converter::add(wkhtmltox\PDF\Object $object): void

Adds the given object to conversion

Parâmetros

object

The object to add


Create a new PDF converter

  • « wkhtmltox\PDF\Converter::add
  • wkhtmltox\PDF\Converter::convert »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Create a new PDF converter

wkhtmltox\PDF\Converter::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::__construct — Create a new PDF converter

Descrição

public wkhtmltox\PDF\Converter::__construct(array $settings = ?)

Creates a PDF converter, using optional configuration settings

Parâmetros

settings

Name | Description | Values | Changelog
size.pageSize | paper size of output document | A4 | >= 0.1.0
size.width | with of the output document | 210mm | >= 0.1.0
size.height | height of the output document | 297mm | >= 0.1.0
orientation orientation of the output document
Landscape
Portrait
>= 0.1.0
colorMode color mode of the output document
Color
Greyscale
>= 0.1.0
resolution | resoluition of the output document | most likely has no effect | >= 0.1.0
dpi | dpi to use while printing | 80 | >= 0.1.0
pageOffset | integer added to page numbers generating headers, footers, and toc | >= 0.1.0
copies | >= 0.1.0
collate | collate copies | boolean | >= 0.1.0
outline | generate PDF outline | boolean | >= 0.1.0
outlineDepth | maximum depth of outline | >= 0.1.0
dumpOutline | path of file to dump outline XML | >= 0.1.0
out | path of output file, if "-" stdout is used | >= 0.1.0
documentTitle | title for the output document | >= 0.1.0
useCompression | enable or disable lossless compression | boolean | >= 0.1.0
margin.top | size of the top margin | 2cm | >= 0.1.0
margin.bottom | size of the bottom margin | 2cm | >= 0.1.0
margin.left | size of the left margin | 2cm | >= 0.1.0
margin.right | size of the right margin | 2cm | >= 0.1.0
imageDPI | maximum DPI for images in the output document | >= 0.1.0
imageQuality | the jpeg compression factor for images in the output document | 94 | >= 0.1.0
load.cookieJar | path of file used to load and store cookies | /tmp/cookies.txt | >= 0.1.0


Perform PDF conversion

  • « wkhtmltox\PDF\Converter::__construct
  • wkhtmltox\PDF\Converter::getVersion »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Perform PDF conversion

wkhtmltox\PDF\Converter::convert

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::convert — Perform PDF conversion

Descrição

public wkhtmltox\PDF\Converter::convert(): ?string

Performs conversion of all previously added Objects

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Where the return value is used, it will be populated with the contents of the conversion buffer


Determine version of Converter

  • « wkhtmltox\PDF\Converter::convert
  • wkhtmltox\PDF\Object »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Determine version of Converter

wkhtmltox\PDF\Converter::getVersion

(wkhtmltox >= 0.3.2)

wkhtmltox\PDF\Converter::getVersion — Determine version of Converter

Descrição

public wkhtmltox\PDF\Converter::getVersion(): string

Determines the version of Converter as reported by libwkhtmltox

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a version string


The wkhtmltox\PDF\Object class

(wkhtmltox >= 0.1.0)

Introdução

Represents an HTML document, input to PDF converter

Resumo da classe

class wkhtmltox\PDF\Object {
/* Constructor */
public __construct(string $buffer, array $settings = ?)
}

Índice

  • wkhtmltox\PDF\Object::__construct — Create a new PDF Object


Create a new PDF Object

  • « wkhtmltox\PDF\Object
  • wkhtmltox\Image\Converter »
  • PHP Manual
  • wkhtmltox\PDF\Object
  • Create a new PDF Object

wkhtmltox\PDF\Object::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Object::__construct — Create a new PDF Object

Descrição

public wkhtmltox\PDF\Object::__construct(string $buffer, array $settings = ?)

Creates a new PDF Object from the given buffer and optional configuration settings

Parâmetros

buffer

HTML

settings

Name | Description | Values | Changelog
page | URL or path of the HTML to convert | >= 0.1.0
useExternalLinks | set true to convert external links in the input into external PDF links in the output | boolean | >= 0.1.0
useLocalLinks | set true to convert internal links in the input into internal PDF links in the output | boolean | >= 0.1.0
produceForms | set true to turn HTML forms into PDF forms | boolean | >= 0.1.0
replacements | undocumented | >= 0.1.0
includeInOutline | set true to include sections from this object in the outline and toc | boolean | >= 0.1.0
pagesCount | set true to make page count in toc inclusive of the number of pages in this object | boolean | >= 0.1.0
tocXsl | set to style sheet to convert this object into a toc object | >= 0.1.0
toc.useDottedLines | set true to use dotted lines in toc | boolean | >= 0.1.0
toc.captionText | the caption text for toc | >= 0.1.0
toc.forwardLinks | set true to create links from toc to content | boolean | >= 0.1.0
toc.backLinks | set true to create links from content to toc | boolean | >= 0.1.0
toc.indentation | indentation for toc | 2em | >= 0.1.0
toc.fontScale | the factor to scale down the font at every toc level | 0.8 | >= 0.1.0
header.fontSize | font size for use in header | 13 | >= 0.1.0
header.fontName | name of font for use in header | times | >= 0.1.0
header.left | text for left of header | >= 0.1.0
header.center | text for center of header | >= 0.1.0
header.right | text for right of header | >= 0.1.0
header.line | enable or disable horizontal rule under header | boolean | >= 0.1.0
header.spacing | space between header and content | 1.8 | >= 0.1.0
header.htmlUrl | URL or path of HTML to use in header | >= 0.1.0
footer.fontSize | font size for use in footer | 13 | >= 0.1.0
footer.fontName | name of font for use in footer | times | >= 0.1.0
footer.left | text for left of footer | >= 0.1.0
footer.center | text for center of footer | >= 0.1.0
footer.right | text for right of footer | >= 0.1.0
footer.line | enable or disable horizontal rule under footer | boolean | >= 0.1.0
footer.spacing | space between footer and content | 1.8 | >= 0.1.0
footer.htmlUrl | URL or path of HTML to use in footer | >= 0.1.0
load.username | user name to use when loging into a website | bart | >= 0.1.0
load.password | the password to used when logging into a website | elbarto | >= 0.1.0
load.jsdelay | the amount of time in milliseconds to wait after a page is loaded until it is captured | 1200 | >= 0.1.0
load.zoomFactor | how much zoom should be applied to the content | 2.2 | >= 0.1.0
load.customHeaders | custom headers to send when requesting the main web page | >= 0.1.0
load.repertCustomHeaders | set true to send with all requests | boolean | >= 0.1.0
load.cookies | cookie string to send when requesting the main web page | >= 0.1.0
load.post | post string to send when requesting the main web page | >= 0.1.0
load.blockLocalFileAccess | disallow local and piped files to access other local files | boolean | >= 0.1.0
load.stopSlowScript | stop slow running javascript | boolean
load.debugJavascript | allow javascript to raise warnings | boolean | >= 0.1.0
load.loadErrorHandling set error handling strategy
abort | abort the convertion process
skip | do not add the object to the final output
ignore | try to add the object to the final output
>= 0.1.0
load.proxy | >= 0.1.0
web.background | include background image in output | boolean | >= 0.1.0
web.loadImages | include images in output | boolean | >= 0.1.0
web.enableJavascript | enable or disable javascript | boolean | >= 0.1.0
web.enableIntelligentShrinking | enable to attempt to fit more content on page, only applies to PDF output | boolean | >= 0.1.0
web.minimumFontSize | the minimum font size allowed | 9 | >= 0.1.0
web.printMediaType | print content using print media type instead of screen media type | boolean | >= 0.1.0
web.defaultEncoding | content to use where no encoding is specified | utf-8 | >= 0.1.0
web.userStyleSheet | URL or path to a user specified style sheet | /path/to/style.css | >= 0.1.0
web.enablePlugins | enable or disable NS plugins | boolean | >= 0.1.0


The wkhtmltox\Image\Converter class

(wkhtmltox >= 0.1.0)

Introdução

Converts an HTML input into various image formats

Resumo da classe

class wkhtmltox\Image\Converter {
/* Constructor */
public __construct(string $buffer = ?, array $settings = ?)
/* Métodos */
public convert(): ?string
public getVersion(): string
}

Índice

  • wkhtmltox\Image\Converter::__construct — Create a new Image converter
  • wkhtmltox\Image\Converter::convert — Perform Image conversion
  • wkhtmltox\Image\Converter::getVersion — Determine version of Converter


Create a new Image converter

  • « wkhtmltox\Image\Converter
  • wkhtmltox\Image\Converter::convert »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Create a new Image converter

wkhtmltox\Image\Converter::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\Image\Converter::__construct — Create a new Image converter

Descrição

public wkhtmltox\Image\Converter::__construct(string $buffer = ?, array $settings = ?)

Creates an Image converter, optionally taking an input buffer and configuration settings

Parâmetros

buffer

HTML

settings

Name | Description | Values | Changelog
in | URL or path of the input file, if "-" stdin is used | /path/to/markup.html | >= 0.1.0
out | path of output file, if "-" stdout is used, by default an internal buffer is used | /path/to/output.png | >= 0.1.0
fmt output format to use
"" default
jpg | output as JPEG
png | output as PNG
bmp | output as bitmap
svg | output as SVG
>= 0.1.0
transparent | when outputting a PNG or SVG, make the white background transparent | boolean | >= 0.1.0
screenWidth | the with of the screen used to render in pixels | 800 | >= 0.1.0
smartWidth | when true, screenWidth is expanded to the content width | boolean | >= 0.1.0
quality | compression factor to use when outputting a JPEG image | 94 | >= 0.1.0
crop.left | left/x coordinate of the window to capture in pixels | 200 | >= 0.1.0
crop.top | top/y coordinate of the window to capture in pixels | 200 | >= 0.1.0
crop.width | width of the window to capture in pixels | 200 | >= 0.1.0
crop.height | height of the window to capture in pixels | 200 | >= 0.1.0
load.cookieJar | path of file used to load and store cookies | /tmp/cookies.txt | >= 0.1.0
load.username | user name to use when loging into a website | bart | >= 0.1.0
load.password | the password to used when logging into a website | elbarto | >= 0.1.0
load.jsdelay | the amount of time in milliseconds to wait after a page is loaded until it is captured | 1200 | >= 0.1.0
load.zoomFactor | how much zoom should be applied to the content | 2.2 | >= 0.1.0
load.customHeaders | custom headers to send when requesting the main web page | >= 0.1.0
load.repertCustomHeaders | set true to send with all requests | boolean | >= 0.1.0
load.cookies | cookie string to send when requesting the main web page | >= 0.1.0
load.post | post string to send when requesting the main web page | >= 0.1.0
load.blockLocalFileAccess | disallow local and piped files to access other local files | boolean | >= 0.1.0
load.stopSlowScript | stop slow running javascript | boolean
load.debugJavascript | allow javascript to raise warnings | boolean | >= 0.1.0
load.loadErrorHandling set error handling strategy
abort | abort the convertion process
skip | do not add the object to the final output
ignore | try to add the object to the final output
>= 0.1.0
load.proxy | >= 0.1.0
web.background | include background image in output | boolean | >= 0.1.0
web.loadImages | include images in output | boolean | >= 0.1.0
web.enableJavascript | enable or disable javascript | boolean | >= 0.1.0
web.enableIntelligentShrinking | enable to attempt to fit more content on page, only applies to PDF output | boolean | >= 0.1.0
web.minimumFontSize | the minimum font size allowed | 9 | >= 0.1.0
web.printMediaType | print content using print media type instead of screen media type | boolean | >= 0.1.0
web.defaultEncoding | content to use where no encoding is specified | utf-8 | >= 0.1.0
web.userStyleSheet | URL or path to a user specified style sheet | /path/to/style.css | >= 0.1.0
web.enablePlugins | enable or disable NS plugins | boolean | >= 0.1.0


Perform Image conversion

  • « wkhtmltox\Image\Converter::__construct
  • wkhtmltox\Image\Converter::getVersion »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Perform Image conversion

wkhtmltox\Image\Converter::convert

(wkhtmltox >= 0.1.0)

wkhtmltox\Image\Converter::convert — Perform Image conversion

Descrição

public wkhtmltox\Image\Converter::convert(): ?string

Performs conversion of the input buffer

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Where the return value is used, it will be populated with the contents of the conversion buffer


Determine version of Converter

  • « wkhtmltox\Image\Converter::convert
  • PS »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Determine version of Converter

wkhtmltox\Image\Converter::getVersion

(wkhtmltox >= 0.3.2)

wkhtmltox\Image\Converter::getVersion — Determine version of Converter

Descrição

public wkhtmltox\Image\Converter::getVersion(): string

Determines the version of Converter as reported by libwkhtmltox

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a version string

Aviso

This is not yet implemented by libwkhtmltox


PostScript document creation

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • PS Funções
    • ps_add_bookmark — Add bookmark to current page
    • ps_add_launchlink — Adds link which launches file
    • ps_add_locallink — Adds link to a page in the same document
    • ps_add_note — Adds note to current page
    • ps_add_pdflink — Adds link to a page in a second pdf document
    • ps_add_weblink — Adds link to a web location
    • ps_arc — Draws an arc counterclockwise
    • ps_arcn — Draws an arc clockwise
    • ps_begin_page — Start a new page
    • ps_begin_pattern — Start a new pattern
    • ps_begin_template — Start a new template
    • ps_circle — Draws a circle
    • ps_clip — Clips drawing to current path
    • ps_close_image — Closes image and frees memory
    • ps_close — Closes a PostScript document
    • ps_closepath_stroke — Closes and strokes path
    • ps_closepath — Closes path
    • ps_continue_text — Continue text in next line
    • ps_curveto — Draws a curve
    • ps_delete — Deletes all resources of a PostScript document
    • ps_end_page — End a page
    • ps_end_pattern — End a pattern
    • ps_end_template — End a template
    • ps_fill_stroke — Fills and strokes the current path
    • ps_fill — Fills the current path
    • ps_findfont — Loads a font
    • ps_get_buffer — Fetches the full buffer containig the generated PS data
    • ps_get_parameter — Gets certain parameters
    • ps_get_value — Gets certain values
    • ps_hyphenate — Hyphenates a word
    • ps_include_file — Reads an external file with raw PostScript code
    • ps_lineto — Draws a line
    • ps_makespotcolor — Create spot color
    • ps_moveto — Sets current point
    • ps_new — Creates a new PostScript document object
    • ps_open_file — Opens a file for output
    • ps_open_image_file — Opens image from file
    • ps_open_image — Reads an image for later placement
    • ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document
    • ps_place_image — Places image on the page
    • ps_rect — Draws a rectangle
    • ps_restore — Restore previously save context
    • ps_rotate — Sets rotation factor
    • ps_save — Save current context
    • ps_scale — Sets scaling factor
    • ps_set_border_color — Sets color of border for annotations
    • ps_set_border_dash — Sets length of dashes for border of annotations
    • ps_set_border_style — Sets border style of annotations
    • ps_set_info — Sets information fields of document
    • ps_set_parameter — Sets certain parameters
    • ps_set_text_pos — Sets position for text output
    • ps_set_value — Sets certain values
    • ps_setcolor — Sets current color
    • ps_setdash — Sets appearance of a dashed line
    • ps_setflat — Sets flatness
    • ps_setfont — Sets font to use for following output
    • ps_setgray — Sets gray value
    • ps_setlinecap — Sets appearance of line ends
    • ps_setlinejoin — Sets how contected lines are joined
    • ps_setlinewidth — Sets width of a line
    • ps_setmiterlimit — Sets the miter limit
    • ps_setoverprintmode — Sets overprint mode
    • ps_setpolydash — Sets appearance of a dashed line
    • ps_shading_pattern — Creates a pattern based on a shading
    • ps_shading — Creates a shading for later use
    • ps_shfill — Fills an area with a shading
    • ps_show_boxed — Output text in a box
    • ps_show_xy2 — Output text at position
    • ps_show_xy — Output text at given position
    • ps_show2 — Output a text at current position
    • ps_show — Output text
    • ps_string_geometry — Gets geometry of a string
    • ps_stringwidth — Gets width of a string
    • ps_stroke — Draws the current path
    • ps_symbol_name — Gets name of a glyph
    • ps_symbol_width — Gets width of a glyph
    • ps_symbol — Output a glyph
    • ps_translate — Sets translation


Introdução

This module allows to create PostScript documents. It has many similarities with the pdf extension. Actually the API is almost identical and one can in many cases just replace the prefix of each function from pdf_ to ps_. This also works for functions which has no meaning in the PostScript document (like adding hyperlinks) but will have an effect if the document is converted to PDF.

Documents created by this extension are sometimes even superior to documents created with the pdf extension, because pslib's text rendering functions can handle kerning, hyphenation and ligatures which results in much better output of boxed text.


Dependências

You need at least pslib >= 0.1.12. The ps library (pslib) is available at » http://pslib.sourceforge.net/.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/ps.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

This extension defines a PostScript document resource returned by ps_new().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

The following two tables lists all constants defined by the ps extension.

Contants for line caps
Name | Meaning
ps_LINECAP_BUTT |
ps_LINECAP_ROUND |
ps_LINECAP_SQUARED |
Contants for line joins
Name | Meaning
ps_LINEJOIN_MITER |
ps_LINEJOIN_ROUND |
ps_LINEJOIN_BEVEL |


PS Funções

Contact Information

If you have comments, bugfixes, enhancements for either this extension or pslib then please drop me a mail » steinm@php.net. Any help is very welcome.

Índice

  • ps_add_bookmark — Add bookmark to current page
  • ps_add_launchlink — Adds link which launches file
  • ps_add_locallink — Adds link to a page in the same document
  • ps_add_note — Adds note to current page
  • ps_add_pdflink — Adds link to a page in a second pdf document
  • ps_add_weblink — Adds link to a web location
  • ps_arc — Draws an arc counterclockwise
  • ps_arcn — Draws an arc clockwise
  • ps_begin_page — Start a new page
  • ps_begin_pattern — Start a new pattern
  • ps_begin_template — Start a new template
  • ps_circle — Draws a circle
  • ps_clip — Clips drawing to current path
  • ps_close_image — Closes image and frees memory
  • ps_close — Closes a PostScript document
  • ps_closepath_stroke — Closes and strokes path
  • ps_closepath — Closes path
  • ps_continue_text — Continue text in next line
  • ps_curveto — Draws a curve
  • ps_delete — Deletes all resources of a PostScript document
  • ps_end_page — End a page
  • ps_end_pattern — End a pattern
  • ps_end_template — End a template
  • ps_fill_stroke — Fills and strokes the current path
  • ps_fill — Fills the current path
  • ps_findfont — Loads a font
  • ps_get_buffer — Fetches the full buffer containig the generated PS data
  • ps_get_parameter — Gets certain parameters
  • ps_get_value — Gets certain values
  • ps_hyphenate — Hyphenates a word
  • ps_include_file — Reads an external file with raw PostScript code
  • ps_lineto — Draws a line
  • ps_makespotcolor — Create spot color
  • ps_moveto — Sets current point
  • ps_new — Creates a new PostScript document object
  • ps_open_file — Opens a file for output
  • ps_open_image_file — Opens image from file
  • ps_open_image — Reads an image for later placement
  • ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document
  • ps_place_image — Places image on the page
  • ps_rect — Draws a rectangle
  • ps_restore — Restore previously save context
  • ps_rotate — Sets rotation factor
  • ps_save — Save current context
  • ps_scale — Sets scaling factor
  • ps_set_border_color — Sets color of border for annotations
  • ps_set_border_dash — Sets length of dashes for border of annotations
  • ps_set_border_style — Sets border style of annotations
  • ps_set_info — Sets information fields of document
  • ps_set_parameter — Sets certain parameters
  • ps_set_text_pos — Sets position for text output
  • ps_set_value — Sets certain values
  • ps_setcolor — Sets current color
  • ps_setdash — Sets appearance of a dashed line
  • ps_setflat — Sets flatness
  • ps_setfont — Sets font to use for following output
  • ps_setgray — Sets gray value
  • ps_setlinecap — Sets appearance of line ends
  • ps_setlinejoin — Sets how contected lines are joined
  • ps_setlinewidth — Sets width of a line
  • ps_setmiterlimit — Sets the miter limit
  • ps_setoverprintmode — Sets overprint mode
  • ps_setpolydash — Sets appearance of a dashed line
  • ps_shading_pattern — Creates a pattern based on a shading
  • ps_shading — Creates a shading for later use
  • ps_shfill — Fills an area with a shading
  • ps_show_boxed — Output text in a box
  • ps_show_xy2 — Output text at position
  • ps_show_xy — Output text at given position
  • ps_show2 — Output a text at current position
  • ps_show — Output text
  • ps_string_geometry — Gets geometry of a string
  • ps_stringwidth — Gets width of a string
  • ps_stroke — Draws the current path
  • ps_symbol_name — Gets name of a glyph
  • ps_symbol_width — Gets width of a glyph
  • ps_symbol — Output a glyph
  • ps_translate — Sets translation


Add bookmark to current page

  • « PS Funções
  • ps_add_launchlink »
  • PHP Manual
  • PS Funções
  • Add bookmark to current page

ps_add_bookmark

(PECL ps >= 1.1.0)

ps_add_bookmark — Add bookmark to current page

Descrição

ps_add_bookmark(
resource $psdoc,
string $text,
int $parent = 0,
int $open = 0
): int

Adds a bookmark for the current page. Bookmarks usually appear in PDF-Viewers left of the page in a hierarchical tree. Clicking on a bookmark will jump to the given page.

A nota não ficará visível se o documento for impresso ou visualizado, mas aparecerá se o documento for convertido para PDF pelo Acrobat Distiller™ ou Ghostview.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text used for displaying the bookmark.

parent

A bookmark previously created by this function which is used as the parent of the new bookmark.

open

If open is unequal to zero the bookmark will be shown open by the pdf viewer.

Valor Retornado

The returned value is a reference for the bookmark. It is only used if the bookmark shall be used as a parent. The value is greater zero if the function succeeds. In case of an error zero will be returned.

Veja Também

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds link which launches file

  • « ps_add_bookmark
  • ps_add_locallink »
  • PHP Manual
  • PS Funções
  • Adds link which launches file

ps_add_launchlink

(PECL ps >= 1.1.0)

ps_add_launchlink — Adds link which launches file

Descrição

ps_add_launchlink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $filename
): bool

Places a hyperlink at the given position pointing to a file program which is being started when clicked on. The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

A nota não ficará visível se o documento for impresso ou visualizado, mas aparecerá se o documento for convertido para PDF pelo Acrobat Distiller™ ou Ghostview.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

filename

The path of the program to be started, when the link is clicked on.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds link to a page in the same document

  • « ps_add_launchlink
  • ps_add_note »
  • PHP Manual
  • PS Funções
  • Adds link to a page in the same document

ps_add_locallink

(PECL ps >= 1.1.0)

ps_add_locallink — Adds link to a page in the same document

Descrição

ps_add_locallink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
int $page,
string $dest
): bool

Places a hyperlink at the given position pointing to a page in the same document. Clicking on the link will jump to the given page. The first page in a document has number 1.

The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

A nota não ficará visível se o documento for impresso ou visualizado, mas aparecerá se o documento for convertido para PDF pelo Acrobat Distiller™ ou Ghostview.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

page

The number of the page displayed when clicking on the link.

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds note to current page

  • « ps_add_locallink
  • ps_add_pdflink »
  • PHP Manual
  • PS Funções
  • Adds note to current page

ps_add_note

(PECL ps >= 1.1.0)

ps_add_note — Adds note to current page

Descrição

ps_add_note(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $contents,
string $title,
string $icon,
int $open
): bool

Adds a note at a certain position on the page. Notes are like little rectangular sheets with text on it, which can be placed anywhere on a page. They are shown either folded or unfolded. If folded, the specified icon is used as a placeholder.

A nota não ficará visível se o documento for impresso ou visualizado, mas aparecerá se o documento for convertido para PDF pelo Acrobat Distiller™ ou Ghostview.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

contents

The text of the note.

title

The title of the note as displayed in the header of the note.

icon

The icon shown if the note is folded. This parameter can be set to comment, insert, note, paragraph, newparagraph, key, or help.

open

If open is unequal to zero the note will be shown unfolded after opening the document with a pdf viewer.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_weblink() - Adds link to a web location


Adds link to a page in a second pdf document

  • « ps_add_note
  • ps_add_weblink »
  • PHP Manual
  • PS Funções
  • Adds link to a page in a second pdf document

ps_add_pdflink

(PECL ps >= 1.1.0)

ps_add_pdflink — Adds link to a page in a second pdf document

Descrição

ps_add_pdflink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $filename,
int $page,
string $dest
): bool

Places a hyperlink at the given position pointing to a second pdf document. Clicking on the link will branch to the document at the given page. The first page in a document has number 1.

The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

A nota não ficará visível se o documento for impresso ou visualizado, mas aparecerá se o documento for convertido para PDF pelo Acrobat Distiller™ ou Ghostview.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

filename

The name of the pdf document to be opened when clicking on this link.

page

The page number of the destination pdf document

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_weblink() - Adds link to a web location


Adds link to a web location

  • « ps_add_pdflink
  • ps_arc »
  • PHP Manual
  • PS Funções
  • Adds link to a web location

ps_add_weblink

(PECL ps >= 1.1.0)

ps_add_weblink — Adds link to a web location

Descrição

ps_add_weblink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $url
): bool

Places a hyperlink at the given position pointing to a web page. The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

A nota não ficará visível se o documento for impresso ou visualizado, mas aparecerá se o documento for convertido para PDF pelo Acrobat Distiller™ ou Ghostview.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

url

The url of the hyperlink to be opened when clicking on this link, e.g. http://www.php.net.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_pdflink() - Adds link to a page in a second pdf document


Draws an arc counterclockwise

  • « ps_add_weblink
  • ps_arcn »
  • PHP Manual
  • PS Funções
  • Draws an arc counterclockwise

ps_arc

(PECL ps >= 1.1.0)

ps_arc — Draws an arc counterclockwise

Descrição

ps_arc(
resource $psdoc,
float $x,
float $y,
float $radius,
float $alpha,
float $beta
): bool

Draws a portion of a circle with at middle point at (x, y). The arc starts at an angle of alpha and ends at an angle of beta. It is drawn counterclockwise (use ps_arcn() to draw clockwise). The subpath added to the current path starts on the arc at angle alpha and ends on the arc at angle beta.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

alpha

The start angle given in degrees.

beta

The end angle given in degrees.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_arcn() - Draws an arc clockwise


Draws an arc clockwise

  • « ps_arc
  • ps_begin_page »
  • PHP Manual
  • PS Funções
  • Draws an arc clockwise

ps_arcn

(PECL ps >= 1.1.0)

ps_arcn — Draws an arc clockwise

Descrição

ps_arcn(
resource $psdoc,
float $x,
float $y,
float $radius,
float $alpha,
float $beta
): bool

Draws a portion of a circle with at middle point at (x, y). The arc starts at an angle of alpha and ends at an angle of beta. It is drawn clockwise (use ps_arc() to draw counterclockwise). The subpath added to the current path starts on the arc at angle beta and ends on the arc at angle alpha.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

alpha

The starting angle given in degrees.

beta

The end angle given in degrees.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_arc() - Draws an arc counterclockwise


Start a new page

  • « ps_arcn
  • ps_begin_pattern »
  • PHP Manual
  • PS Funções
  • Start a new page

ps_begin_page

(PECL ps >= 1.1.0)

ps_begin_page — Start a new page

Descrição

ps_begin_page(resource $psdoc, float $width, float $height): bool

Starts a new page. Although the parameters width and height imply a different page size for each page, this is not possible in PostScript. The first call of ps_begin_page() will set the page size for the whole document. Consecutive calls will have no effect, except for creating a new page. The situation is different if you intent to convert the PostScript document into PDF. This function places pdfmarks into the document which can set the size for each page indiviually. The resulting PDF document will have different page sizes.

Though PostScript does not know different page sizes, pslib places a bounding box for each page into the document. This size is evaluated by some PostScript viewers and will have precedence over the BoundingBox in the Header of the document. This can lead to unexpected results when you set a BoundingBox whose lower left corner is not (0, 0), because the bounding box of the page will always have a lower left corner (0, 0) and overwrites the global setting.

Each page is encapsulated into save/restore. This means, that most of the settings made on one page will not be retained on the next page.

If there is up to the first call of ps_begin_page() no call of ps_findfont(), then the header of the PostScript document will be output and the bounding box will be set to the size of the first page. The lower left corner of the bounding box is set to (0, 0). If ps_findfont() was called before, then the header has been output already, and the document will not have a valid bounding box. In order to prevent this, one should call ps_set_info() to set the info field BoundingBox and possibly Orientation before any ps_findfont() or ps_begin_page() calls.

Nota:

Up to version 0.2.6 of pslib, this function will always overwrite the BoundingBox and Orientation, if it has been set before with ps_set_info() and ps_findfont() has not been called before.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the page in pixel, e.g. 596 for A4 format.

height

The height of the page in pixel, e.g. 842 for A4 format.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_end_page() - End a page
  • ps_findfont() - Loads a font
  • ps_set_info() - Sets information fields of document


Start a new pattern

  • « ps_begin_page
  • ps_begin_template »
  • PHP Manual
  • PS Funções
  • Start a new pattern

ps_begin_pattern

(PECL ps >= 1.2.0)

ps_begin_pattern — Start a new pattern

Descrição

ps_begin_pattern(
resource $psdoc,
float $width,
float $height,
float $xstep,
float $ystep,
int $painttype
): int|false

Starts a new pattern. A pattern is like a page containing e.g. a drawing which can be used for filling areas. It is used like a color by calling ps_setcolor() and setting the color space to pattern.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the pattern in pixel.

height

The height of the pattern in pixel.

x-step

The distance in pixel of placements of the pattern in horizontal direction.

y-step

The distance in pixel of placements of the pattern in vertical direction.

painttype

Must be 1 or 2.

Valor Retornado

The identifier of the pattern ou false em caso de falha.

Exemplos

Exemplo #1 Creating and using a pattern

<?php
$ps = ps_new();

if (!ps_open_file($ps, "pattern.ps")) {
print "Cannot open PostScript file\n";
exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "pattern.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Pattern example");

$pspattern = ps_begin_pattern($ps, 10.0, 10.0, 10.0, 10.0, 1);
ps_setlinewidth($ps, 0.2);
ps_setcolor($ps, "stroke", "rgb", 0.0, 0.0, 1.0, 0.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 7, 7);
ps_stroke($ps);
ps_moveto($ps, 0, 7);
ps_lineto($ps, 7, 0);
ps_stroke($ps);
ps_end_pattern($ps);

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "both", "pattern", $pspattern, 0.0, 0.0, 0.0);
ps_rect($ps, 50, 400, 200, 200);
ps_fill($ps);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Veja Também

  • ps_end_pattern() - End a pattern
  • ps_setcolor() - Sets current color
  • ps_shading_pattern() - Creates a pattern based on a shading


Start a new template

  • « ps_begin_pattern
  • ps_circle »
  • PHP Manual
  • PS Funções
  • Start a new template

ps_begin_template

(PECL ps >= 1.2.0)

ps_begin_template — Start a new template

Descrição

ps_begin_template(resource $psdoc, float $width, float $height): int

Starts a new template. A template is called a form in the postscript language. It is created similar to a pattern but used like an image. Templates are often used for drawings which are placed several times through out the document, e.g. like a company logo. All drawing functions may be used within a template. The template will not be drawn until it is placed by ps_place_image().

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the template in pixel.

height

The height of the template in pixel.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Creating and using a template

<?php
$ps = ps_new();

if (!ps_open_file($ps, "template.ps")) {
print "Cannot open PostScript file\n";
exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "template.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Template example");

$pstemplate = ps_begin_template($ps, 30.0, 30.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 30, 30);
ps_moveto($ps, 0, 30);
ps_lineto($ps, 30, 0);
ps_stroke($ps);
ps_end_template($ps);

ps_begin_page($ps, 596, 842);
ps_place_image($ps, $pstemplate, 20.0, 20.0, 1.0);
ps_place_image($ps, $pstemplate, 50.0, 30.0, 0.5);
ps_place_image($ps, $pstemplate, 70.0, 70.0, 0.6);
ps_place_image($ps, $pstemplate, 30.0, 50.0, 1.3);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Veja Também

  • ps_end_template() - End a template


Draws a circle

  • « ps_begin_template
  • ps_clip »
  • PHP Manual
  • PS Funções
  • Draws a circle

ps_circle

(PECL ps >= 1.1.0)

ps_circle — Draws a circle

Descrição

ps_circle(
resource $psdoc,
float $x,
float $y,
float $radius
): bool

Draws a circle with its middle point at (x, y). The circle starts and ends at position (x+radius, y). If this function is called outside a path it will start a new path. If it is called within a path it will add the circle as a subpath. If the last drawing operation does not end in point (x+radius, y) then there will be a gap in the path.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_arc() - Draws an arc counterclockwise
  • ps_arcn() - Draws an arc clockwise


Clips drawing to current path

  • « ps_circle
  • ps_close_image »
  • PHP Manual
  • PS Funções
  • Clips drawing to current path

ps_clip

(PECL ps >= 1.1.0)

ps_clip — Clips drawing to current path

Descrição

ps_clip(resource $psdoc): bool

Takes the current path and uses it to define the border of a clipping area. Everything drawn outside of that area will not be visible.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_closepath() - Closes path


Closes image and frees memory

  • « ps_clip
  • ps_close »
  • PHP Manual
  • PS Funções
  • Closes image and frees memory

ps_close_image

(PECL ps >= 1.1.0)

ps_close_image — Closes image and frees memory

Descrição

ps_close_image(resource $psdoc, int $imageid): void|false

Closes an image and frees its resources. Once an image is closed it cannot be used anymore.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

imageid

Resource identifier of the image as returned by ps_open_image() or ps_open_image_file().

Valor Retornado

Returns null on success ou false em caso de falha.

Veja Também

  • ps_open_image() - Reads an image for later placement
  • ps_open_image_file() - Opens image from file


Closes a PostScript document

  • « ps_close_image
  • ps_closepath_stroke »
  • PHP Manual
  • PS Funções
  • Closes a PostScript document

ps_close

(PECL ps >= 1.1.0)

ps_close — Closes a PostScript document

Descrição

ps_close(resource $psdoc): bool

Closes the PostScript document.

This function writes the trailer of the PostScript document. It also writes the bookmark tree. ps_close() does not free any resources, which is done by ps_delete().

This function is also called by ps_delete() if it has not been called before.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_open_file() - Opens a file for output
  • ps_delete() - Deletes all resources of a PostScript document


Closes and strokes path

  • « ps_close
  • ps_closepath »
  • PHP Manual
  • PS Funções
  • Closes and strokes path

ps_closepath_stroke

(PECL ps >= 1.1.0)

ps_closepath_stroke — Closes and strokes path

Descrição

ps_closepath_stroke(resource $psdoc): bool

Connects the last point with first point of a path and draws the resulting closed line.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_closepath() - Closes path


Closes path

  • « ps_closepath_stroke
  • ps_continue_text »
  • PHP Manual
  • PS Funções
  • Closes path

ps_closepath

(PECL ps >= 1.1.0)

ps_closepath — Closes path

Descrição

ps_closepath(resource $psdoc): bool

Connects the last point with the first point of a path. The resulting path can be used for stroking, filling, clipping, etc..

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_clip() - Clips drawing to current path
  • ps_closepath_stroke() - Closes and strokes path


Continue text in next line

  • « ps_closepath
  • ps_curveto »
  • PHP Manual
  • PS Funções
  • Continue text in next line

ps_continue_text

(PECL ps >= 1.1.0)

ps_continue_text — Continue text in next line

Descrição

ps_continue_text(resource $psdoc, string $text): bool

Output a text one line below the last line. The line spacing is taken from the value "leading" which must be set with ps_set_value(). The actual position of the text is determined by the values "textx" and "texty" which can be requested with ps_get_value()

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to output.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_show() - Output text
  • ps_show_xy() - Output text at given position
  • ps_show_boxed() - Output text in a box


Draws a curve

  • « ps_continue_text
  • ps_delete »
  • PHP Manual
  • PS Funções
  • Draws a curve

ps_curveto

(PECL ps >= 1.1.0)

ps_curveto — Draws a curve

Descrição

ps_curveto(
resource $psdoc,
float $x1,
float $y1,
float $x2,
float $y2,
float $x3,
float $y3
): bool

Add a section of a cubic Bézier curve described by the three given control points to the current path.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

x1

x-coordinate of first control point.

y1

y-coordinate of first control point.

x2

x-coordinate of second control point.

y2

y-coordinate of second control point.

x3

x-coordinate of third control point.

y3

y-coordinate of third control point.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_lineto() - Draws a line


Deletes all resources of a PostScript document

  • « ps_curveto
  • ps_end_page »
  • PHP Manual
  • PS Funções
  • Deletes all resources of a PostScript document

ps_delete

(PECL ps >= 1.1.0)

ps_delete — Deletes all resources of a PostScript document

Descrição

ps_delete(resource $psdoc): bool

Mainly frees memory used by the document. Also closes a file, if it was not closed before with ps_close(). You should in any case close the file with ps_close() before, because ps_close() not just closes the file but also outputs a trailor containing PostScript comments like the number of pages in the document and adding the bookmark hierarchy.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_close() - Closes a PostScript document


End a page

  • « ps_delete
  • ps_end_pattern »
  • PHP Manual
  • PS Funções
  • End a page

ps_end_page

(PECL ps >= 1.1.0)

ps_end_page — End a page

Descrição

ps_end_page(resource $psdoc): bool

Ends a page which was started with ps_begin_page(). Ending a page will leave the current drawing context, which e.g. requires to reload fonts if they were loading within the page, and to set many other drawing parameters like the line width, or color.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_begin_page() - Start a new page


End a pattern

  • « ps_end_page
  • ps_end_template »
  • PHP Manual
  • PS Funções
  • End a pattern

ps_end_pattern

(PECL ps >= 1.2.0)

ps_end_pattern — End a pattern

Descrição

ps_end_pattern(resource $psdoc): bool

Ends a pattern which was started with ps_begin_pattern(). Once a pattern has been ended, it can be used like a color to fill areas.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_begin_pattern() - Start a new pattern


End a template

  • « ps_end_pattern
  • ps_fill_stroke »
  • PHP Manual
  • PS Funções
  • End a template

ps_end_template

(PECL ps >= 1.2.0)

ps_end_template — End a template

Descrição

ps_end_template(resource $psdoc): bool

Ends a template which was started with ps_begin_template(). Once a template has been ended, it can be used like an image.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_begin_template() - Start a new template


Fills and strokes the current path

  • « ps_end_template
  • ps_fill »
  • PHP Manual
  • PS Funções
  • Fills and strokes the current path

ps_fill_stroke

(PECL ps >= 1.1.0)

ps_fill_stroke — Fills and strokes the current path

Descrição

ps_fill_stroke(resource $psdoc): bool

Fills and draws the path constructed with previously called drawing functions like ps_lineto().

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_fill() - Fills the current path
  • ps_stroke() - Draws the current path


Fills the current path

  • « ps_fill_stroke
  • ps_findfont »
  • PHP Manual
  • PS Funções
  • Fills the current path

ps_fill

(PECL ps >= 1.1.0)

ps_fill — Fills the current path

Descrição

ps_fill(resource $psdoc): bool

Fills the path constructed with previously called drawing functions like ps_lineto().

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_fill_stroke() - Fills and strokes the current path
  • ps_stroke() - Draws the current path


Loads a font

  • « ps_fill
  • ps_get_buffer »
  • PHP Manual
  • PS Funções
  • Loads a font

ps_findfont

(PECL ps >= 1.1.0)

ps_findfont — Loads a font

Descrição

ps_findfont(
resource $psdoc,
string $fontname,
string $encoding,
bool $embed = false
): int

Loads a font for later use. Before text is output with a loaded font it must be set with ps_setfont(). This function needs the adobe font metric file in order to calculate the space used up by the characters. A font which is loaded within a page will only be available on that page. Fonts which are to be used in the complete document have to be loaded before the first call of ps_begin_page(). Calling ps_findfont() between pages will make that font available for all following pages.

The name of the afm file must be fontname.afm. If the font shall be embedded the file fontname.pfb containing the font outline must be present as well.

Calling ps_findfont() before the first page requires to output the postscript header which includes the BoundingBox for the whole document. Usually the BoundingBox is set with the first call of ps_begin_page() which now comes after ps_findfont(). Consequently the BoundingBox has not been set and a warning will be issued when ps_findfont() is called. In order to prevent this situation, one should call ps_set_parameter() to set the BoundingBox before ps_findfont() is called.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

fontname

The name of the font.

encoding

ps_findfont() will try to load the file passed in the parameter encoding. Encoding files are of the same syntax as those used by dvips(1). They contain a font encoding vector (which is currently not used but must be present) and a list of extra ligatures to extend the list of ligatures derived from the afm file.

encoding can be null or the empty string if the default encoding (TeXBase1) shall be used.

If the encoding is set to builtin then there will be no reencoding and the font specific encoding will be used. This is very useful with symbol fonts.

embed

If set to a value >0 the font will be embedded into the document. This requires the font outline (.pfb file) to be present.

Valor Retornado

Returns the identifier of the font or zero in case of an error. The identifier is a positive number.

Veja Também

  • ps_begin_page() - Start a new page
  • ps_setfont() - Sets font to use for following output


Fetches the full buffer containig the generated PS data

  • « ps_findfont
  • ps_get_parameter »
  • PHP Manual
  • PS Funções
  • Fetches the full buffer containig the generated PS data

ps_get_buffer

(PECL ps >= 1.1.0)

ps_get_buffer — Fetches the full buffer containig the generated PS data

Descrição

ps_get_buffer(resource $psdoc): string

This function is not implemented yet. It will always return an empty string. The idea for a later implementation is to write the contents of the postscript file into an internal buffer if in memory creation is requested, and retrieve the buffer content with this function. Currently, documents created in memory are send to the browser without buffering.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Veja Também

  • ps_open_file() - Opens a file for output


Gets certain parameters

  • « ps_get_buffer
  • ps_get_value »
  • PHP Manual
  • PS Funções
  • Gets certain parameters

ps_get_parameter

(PECL ps >= 1.1.0)

ps_get_parameter — Gets certain parameters

Descrição

ps_get_parameter(resource $psdoc, string $name, float $modifier = ?): string|false

Gets several parameters which were directly set by ps_set_parameter() or indirectly by one of the other functions. Parameters are by definition string values. This function cannot be used to retrieve resources which were also set by ps_set_parameter().

The parameter name can have the following values.

fontname

The name of the currently active font or the font whose identifier is passed in parameter modifier.

fontencoding

The encoding of the currently active font.

dottedversion

The version of the underlying pslib library in the format <major>.<minor>.<subminor>

scope

The current drawing scope. Can be object, document, null, page, pattern, path, template, prolog, font, glyph.

ligaturedisolvechar

The character which dissolves a ligature. If your are using a font which contains the ligature `ff' and `|' is the char to dissolve the ligature, then `f|f' will result in two `f' instead of the ligature `ff'.

imageencoding

The encoding used for encoding images. Can be either hex or 85. hex encoding uses two bytes in the postscript file each byte in the image. 85 stand for Ascii85 encoding.

linenumbermode

Set to paragraph if lines are numbered within a paragraph or box if they are numbered within the surrounding box.

linebreak

Only used if text is output with ps_show_boxed(). If set to true a carriage return will add a line break.

parbreak

Only used if text is output with ps_show_boxed(). If set to true a carriage return will start a new paragraph.

hyphenation

Only used if text is output with ps_show_boxed(). If set to true the paragraph will be hyphenated if a hypen dictionary is set and exists.

hyphendict

Filename of the dictionary used for hyphenation pattern.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the parameter.

modifier

An identifier needed if a parameter of a resource is requested, e.g. the size of an image. In such a case the resource id is passed.

Valor Retornado

Returns the value of the parameter ou false em caso de falha.

Veja Também

  • ps_set_parameter() - Sets certain parameters


Gets certain values

  • « ps_get_parameter
  • ps_hyphenate »
  • PHP Manual
  • PS Funções
  • Gets certain values

ps_get_value

(PECL ps >= 1.1.0)

ps_get_value — Gets certain values

Descrição

ps_get_value(resource $psdoc, string $name, float $modifier = ?): float

Gets several values which were set by ps_set_value(). Values are by definition float values.

The parameter name can have the following values.

fontsize

The size of the currently active font or the font whose identifier is passed in parameter modifier.

font

The currently active font itself.

imagewidth

The width of the image whose id is passed in the parameter modifier.

imageheight

The height of the image whose id is passed in the parameter modifier.

capheight

The height of a capital M in the currently active font or the font whose identifier is passed in parameter modifier.

ascender

The ascender of the currently active font or the font whose identifier is passed in parameter modifier.

descender

The descender of the currently active font or the font whose identifier is passed in parameter modifier.

italicangle

The italicangle of the currently active font or the font whose identifier is passed in parameter modifier.

underlineposition

The underlineposition of the currently active font or the font whose identifier is passed in parameter modifier.

underlinethickness

The underlinethickness of the currently active font or the font whose identifier is passed in parameter modifier.

textx

The current x-position for text output.

texty

The current y-position for text output.

textrendering

The current mode for text rendering.

textrise

The space by which text is risen above the base line.

leading

The distance between text lines in points.

wordspacing

The space between words as a multiple of the width of a space char.

charspacing

The space between chars. If charspacing is != 0.0 ligatures will always be dissolved.

hyphenminchars

Minimum number of chars hyphenated at the end of a word.

parindent

Indention of the first n line in a paragraph.

numindentlines

Number of line in a paragraph to indent if parindent != 0.0.

parskip

Distance between paragraphs.

linenumberspace

Overall space in front of each line for the line number.

linenumbersep

Space between the line and the line number.

major

The major version number of pslib.

minor

The minor version number of pslib.

subminor, revision

The subminor version number of pslib.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the value.

modifier

The parameter modifier specifies the resource for which the value is to be retrieved. This can be the id of a font or an image.

Valor Retornado

Returns the value of the parameter or false.

Veja Também

  • ps_set_value() - Sets certain values


Hyphenates a word

  • « ps_get_value
  • ps_include_file »
  • PHP Manual
  • PS Funções
  • Hyphenates a word

ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenate — Hyphenates a word

Descrição

ps_hyphenate(resource $psdoc, string $text): array|false

Hyphenates the passed word. ps_hyphenate() evaluates the value hyphenminchars (set by ps_set_value()) and the parameter hyphendict (set by ps_set_parameter()). hyphendict must be set before calling this function.

This function requires the locale category LC_CTYPE to be set properly. This is done when the extension is initialized by using the environment variables. On Unix systems read the man page of locale for more information.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

text should not contain any non alpha characters. Possible positions for breaks are returned in an array of interger numbers. Each number is the position of the char in text after which a hyphenation can take place.

Valor Retornado

An array of integers indicating the position of possible breaks in the text ou false em caso de falha.

Exemplos

Exemplo #1 Hyphennate a text

<?php
$word = "Koordinatensystem";
$psdoc = ps_new();
ps_set_parameter($psdoc, "hyphendict", "hyph_de.dic");
$hyphens = ps_hyphenate($psdoc, $word);
for($i=0; $i<strlen($word); $i++) {
echo $word[$i];
if(in_array($i, $hyphens))
echo "-";
}
ps_delete($psdoc);
?>

O exemplo acima produzirá:

Ko-ordi-na-ten-sys-tem

Veja Também

  • ps_show_boxed() - Output text in a box
  • locale(1)


Reads an external file with raw PostScript code

  • « ps_hyphenate
  • ps_lineto »
  • PHP Manual
  • PS Funções
  • Reads an external file with raw PostScript code

ps_include_file

(PECL ps >= 1.3.4)

ps_include_file — Reads an external file with raw PostScript code

Descrição

ps_include_file(resource $psdoc, string $file): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

file

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Draws a line

  • « ps_include_file
  • ps_makespotcolor »
  • PHP Manual
  • PS Funções
  • Draws a line

ps_lineto

(PECL ps >= 1.1.0)

ps_lineto — Draws a line

Descrição

ps_lineto(resource $psdoc, float $x, float $y): bool

Adds a straight line from the current point to the given coordinates to the current path. Use ps_moveto() to set the starting point of the line.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the end point of the line.

y

y-coordinate of the end point of the line.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Drawing a rectangle

<?php
$ps = ps_new();
if (!ps_open_file($ps, "rectangle.ps")) {
print "Cannot open PostScript file\n";
exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Lineto example");

ps_begin_page($ps, 596, 842);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

Veja Também

  • ps_moveto() - Sets current point


Create spot color

  • « ps_lineto
  • ps_moveto »
  • PHP Manual
  • PS Funções
  • Create spot color

ps_makespotcolor

(PECL ps >= 1.1.0)

ps_makespotcolor — Create spot color

Descrição

ps_makespotcolor(resource $psdoc, string $name, int $reserved = 0): int

Creates a spot color from the current fill color. The fill color must be defined in rgb, cmyk or gray colorspace. The spot color name can be an arbitrary name. A spot color can be set as any color with ps_setcolor(). When the document is not printed but displayed by an postscript viewer the given color in the specified color space is use.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the spot color, e.g. Pantone 5565.

Valor Retornado

The id of the new spot color or 0 in case of an error.

Exemplos

Exemplo #1 Creating and using a spot color

<?php
$ps = ps_new();
if (!ps_open_file($ps, "spotcolor.ps")) {
print "Cannot open PostScript file\n";
exit;
}

ps_set_info($ps, "Creator", "spotcolor.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Spot color example");

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "fill", "cmyk", 0.37, 0.0, 0.34, 0.34);
$spotcolor = ps_makespotcolor($ps, "PANTONE 5565 C", 0);
ps_setcolor($ps, "fill", "spot", $spotcolor, 0.5, 0.0, 0.0);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_fill($ps);
ps_end_page($ps);

ps_delete($ps);
?>

This example creates the spot color "PANTONE 5565 C" which is a darker green (olive) and fills a rectangle with 50% intensity.

Veja Também

  • ps_setcolor() - Sets current color


Sets current point

  • « ps_makespotcolor
  • ps_new »
  • PHP Manual
  • PS Funções
  • Sets current point

ps_moveto

(PECL ps >= 1.1.0)

ps_moveto — Sets current point

Descrição

ps_moveto(resource $psdoc, float $x, float $y): bool

Sets the current point to new coordinates. If this is the first call of ps_moveto() after a previous path has been ended then it will start a new path. If this function is called in the middle of a path it will just set the current point and start a subpath.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the point to move to.

y

y-coordinate of the point to move to.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_lineto() - Draws a line


Creates a new PostScript document object

  • « ps_moveto
  • ps_open_file »
  • PHP Manual
  • PS Funções
  • Creates a new PostScript document object

ps_new

(PECL ps >= 1.1.0)

ps_new — Creates a new PostScript document object

Descrição

ps_new(): resource|false

Creates a new document instance. It does not create the file on disk or in memory, it just sets up everything. ps_new() is usually followed by a call of ps_open_file() to actually create the postscript document.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Resource of PostScript document ou false em caso de falha. The return value is passed to all other functions as the first argument.

Veja Também

  • ps_delete() - Deletes all resources of a PostScript document


Opens a file for output

  • « ps_new
  • ps_open_image_file »
  • PHP Manual
  • PS Funções
  • Opens a file for output

ps_open_file

(PECL ps >= 1.1.0)

ps_open_file — Opens a file for output

Descrição

ps_open_file(resource $psdoc, string $filename = ?): bool

Creates a new file on disk and writes the PostScript document into it. The file will be closed when ps_close() is called.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

filename

The name of the postscript file. If filename is not passed the document will be created in memory and all output will go straight to the browser.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_close() - Closes a PostScript document


Opens image from file

  • « ps_open_file
  • ps_open_image »
  • PHP Manual
  • PS Funções
  • Opens image from file

ps_open_image_file

(PECL ps >= 1.1.0)

ps_open_image_file — Opens image from file

Descrição

ps_open_image_file(
resource $psdoc,
string $type,
string $filename,
string $stringparam = ?,
int $intparam = 0
): int

Loads an image for later use.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of the image. Possible values are png, jpeg, or eps.

filename

The name of the file containing the image data.

stringparam

Not used.

intparam

Not used.

Valor Retornado

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

Veja Também

  • ps_open_image() - Reads an image for later placement
  • ps_place_image() - Places image on the page
  • ps_close_image() - Closes image and frees memory


Reads an image for later placement

  • « ps_open_image_file
  • ps_open_memory_image »
  • PHP Manual
  • PS Funções
  • Reads an image for later placement

ps_open_image

(PECL ps >= 1.1.0)

ps_open_image — Reads an image for later placement

Descrição

ps_open_image(
resource $psdoc,
string $type,
string $source,
string $data,
int $lenght,
int $width,
int $height,
int $components,
int $bpc,
string $params
): int

Reads an image which is already available in memory. The parameter source is currently not evaluated and assumed to be memory. The image data is a sequence of pixels starting in th upper left corner and ending in the lower right corner. Each pixel consists of components color components, and each component has bpc bits.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of the image. Possible values are png, jpeg, or eps.

source

Not used.

data

The image data.

length

The length of the image data.

width

The width of the image.

height

The height of the image.

components

The number of components for each pixel. This can be 1 (gray scale images), 3 (rgb images), or 4 (cmyk, rgba images).

bpc

Number of bits per component (quite often 8).

params

Valor Retornado

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

Veja Também

  • ps_open_image_file() - Opens image from file
  • ps_place_image() - Places image on the page
  • ps_close_image() - Closes image and frees memory


Takes an GD image and returns an image for placement in a PS document

  • « ps_open_image
  • ps_place_image »
  • PHP Manual
  • PS Funções
  • Takes an GD image and returns an image for placement in a PS document

ps_open_memory_image

(PECL ps >= 1.1.0)

ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document

Descrição

ps_open_memory_image(resource $psdoc, int $gd): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

gd


Places image on the page

  • « ps_open_memory_image
  • ps_rect »
  • PHP Manual
  • PS Funções
  • Places image on the page

ps_place_image

(PECL ps >= 1.1.0)

ps_place_image — Places image on the page

Descrição

ps_place_image(
resource $psdoc,
int $imageid,
float $x,
float $y,
float $scale
): bool

Places a formerly loaded image on the page. The image can be scaled. If the image shall be rotated as well, you will have to rotate the coordinate system before with ps_rotate().

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

imageid

The resource identifier of the image as returned by ps_open_image() or ps_open_image_file().

x

x-coordinate of the lower left corner of the image.

y

y-coordinate of the lower left corner of the image.

scale

The scaling factor for the image. A scale of 1.0 will result in a resolution of 72 dpi, because each pixel is equivalent to 1 point.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_open_image() - Reads an image for later placement
  • ps_open_image_file() - Opens image from file


Draws a rectangle

  • « ps_place_image
  • ps_restore »
  • PHP Manual
  • PS Funções
  • Draws a rectangle

ps_rect

(PECL ps >= 1.1.0)

ps_rect — Draws a rectangle

Descrição

ps_rect(
resource $psdoc,
float $x,
float $y,
float $width,
float $height
): bool

Draws a rectangle with its lower left corner at (x, y). The rectangle starts and ends in its lower left corner. If this function is called outside a path it will start a new path. If it is called within a path it will add the rectangle as a subpath. If the last drawing operation does not end in the lower left corner then there will be a gap in the path.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the lower left corner of the rectangle.

y

y-coordinate of the lower left corner of the rectangle.

width

The width of the image.

height

The height of the image.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_arc() - Draws an arc counterclockwise
  • ps_cirle()
  • ps_lineto() - Draws a line


Restore previously save context

  • « ps_rect
  • ps_rotate »
  • PHP Manual
  • PS Funções
  • Restore previously save context

ps_restore

(PECL ps >= 1.1.0)

ps_restore — Restore previously save context

Descrição

ps_restore(resource $psdoc): bool

Restores a previously saved graphics context. Any call of ps_save() must be accompanied by a call to ps_restore(). All coordinate transformations, line style settings, color settings, etc. are being restored to the state before the call of ps_save().

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_save() - Save current context


Sets rotation factor

  • « ps_restore
  • ps_save »
  • PHP Manual
  • PS Funções
  • Sets rotation factor

ps_rotate

(PECL ps >= 1.1.0)

ps_rotate — Sets rotation factor

Descrição

ps_rotate(resource $psdoc, float $rot): bool

Sets the rotation of the coordinate system.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

rot

Angle of rotation in degree.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Rotation of the coordinate system

<?php
function rectangle($ps) {
ps_moveto($ps, 0, 0);
ps_lineto($ps, 0, 50);
ps_lineto($ps, 50, 50);
ps_lineto($ps, 50, 0);
ps_lineto($ps, 0, 0);
ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "rotation.ps")) {
print "Cannot open PostScript file\n";
exit;
}

ps_set_info($ps, "Creator", "rotation.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Rotation example");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 100, 100);
ps_rotate($ps, 45);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text without rotation");
ps_end_page($ps);

ps_delete($ps);
?>

The above example illustrates a very common way of rotating a graphic (in this case just a rectangle) by simply rotating the coordinate system. Since the graphic's coordinate system assumes (0,0) to be the origin, the page coordinate system is also translated to place the graphics not on the edge of the page. Pay attention to the order of ps_translate() and ps_rotate(). In the above case the rectancle is rotated around the point (100, 100) in the untranslated coordinate system. Switching the two statements has a completely different result.

In order to output the following text at the original position, all modifications of the coordinate system are encapsulated in ps_save() and ps_restore().

Veja Também

  • ps_scale() - Sets scaling factor
  • ps_translate() - Sets translation


Save current context

  • « ps_rotate
  • ps_scale »
  • PHP Manual
  • PS Funções
  • Save current context

ps_save

(PECL ps >= 1.1.0)

ps_save — Save current context

Descrição

ps_save(resource $psdoc): bool

Saves the current graphics context, containing colors, translation and rotation settings and some more. A saved context can be restored with ps_restore().

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_restore() - Restore previously save context


Sets scaling factor

  • « ps_save
  • ps_set_border_color »
  • PHP Manual
  • PS Funções
  • Sets scaling factor

ps_scale

(PECL ps >= 1.1.0)

ps_scale — Sets scaling factor

Descrição

ps_scale(resource $psdoc, float $x, float $y): bool

Sets horizontal and vertical scaling of the coordinate system.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

Scaling factor in horizontal direction.

y

Scaling factor in vertical direction.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_rotate() - Sets rotation factor
  • ps_translate() - Sets translation


Sets color of border for annotations

  • « ps_scale
  • ps_set_border_dash »
  • PHP Manual
  • PS Funções
  • Sets color of border for annotations

ps_set_border_color

(PECL ps >= 1.1.0)

ps_set_border_color — Sets color of border for annotations

Descrição

ps_set_border_color(
resource $psdoc,
float $red,
float $green,
float $blue
): bool

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the color of the rectangle's border line.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

red

The red component of the border color.

green

The green component of the border color.

blue

The blue component of the border color.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_set_border_dash() - Sets length of dashes for border of annotations
  • ps_set_border_style() - Sets border style of annotations


Sets length of dashes for border of annotations

  • « ps_set_border_color
  • ps_set_border_style »
  • PHP Manual
  • PS Funções
  • Sets length of dashes for border of annotations

ps_set_border_dash

(PECL ps >= 1.1.0)

ps_set_border_dash — Sets length of dashes for border of annotations

Descrição

ps_set_border_dash(resource $psdoc, float $black, float $white): bool

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the length of the black and white portion of a dashed border line.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

black

The length of the dash.

white

The length of the gap between dashes.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_set_border_color() - Sets color of border for annotations
  • ps_set_border_style() - Sets border style of annotations


Sets border style of annotations

  • « ps_set_border_dash
  • ps_set_info »
  • PHP Manual
  • PS Funções
  • Sets border style of annotations

ps_set_border_style

(PECL ps >= 1.1.0)

ps_set_border_style — Sets border style of annotations

Descrição

ps_set_border_style(resource $psdoc, string $style, float $width): bool

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the appearance and width of the border line.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

style

style can be solid or dashed.

width

The line width of the border.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_set_border_color() - Sets color of border for annotations
  • ps_set_border_dash() - Sets length of dashes for border of annotations


Sets information fields of document

  • « ps_set_border_style
  • ps_set_parameter »
  • PHP Manual
  • PS Funções
  • Sets information fields of document

ps_set_info

(PECL ps >= 1.1.0)

ps_set_info — Sets information fields of document

Descrição

ps_set_info(resource $p, string $key, string $val): bool

Sets certain information fields of the document. This fields will be shown as a comment in the header of the PostScript file. If the document is converted to pdf this fields will also be used for the document information.

The BoundingBox is usually set to the value given to the first page. This only works if ps_findfont() has not been called before. In such cases the BoundingBox would be left unset unless you set it explicitly with this function.

This function will have no effect anymore when the header of the postscript file has been already written. It must be called before the first page or the first call of ps_findfont().

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

key

The name of the information field to set. The values which can be set are Keywords, Subject, Title, Creator, Author, BoundingBox, and Orientation. Be aware that some of them has a meaning to PostScript viewers.

value

The value of the information field. The field Orientation can be set to either Portrait or Landscape. The BoundingBox is a string consisting of four numbers. The first two numbers are the coordinates of the lower left corner of the page. The last two numbers are the coordinates of the upper right corner.

Nota:

Up to version 0.2.6 of pslib, the BoundingBox and Orientation will be overwritten by ps_begin_page(), unless ps_findfont() has been called before.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_findfont() - Loads a font
  • ps_begin_page() - Start a new page


Sets certain parameters

  • « ps_set_info
  • ps_set_text_pos »
  • PHP Manual
  • PS Funções
  • Sets certain parameters

ps_set_parameter

(PECL ps >= 1.1.0)

ps_set_parameter — Sets certain parameters

Descrição

ps_set_parameter(resource $psdoc, string $name, string $value): bool

Sets several parameters which are used by many functions. Parameters are by definition string values.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

For a list of possible names see ps_get_parameter().

value

The value of the parameter.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_get_parameters()
  • ps_set_value() - Sets certain values


Sets position for text output

  • « ps_set_parameter
  • ps_set_value »
  • PHP Manual
  • PS Funções
  • Sets position for text output

ps_set_text_pos

(PECL ps >= 1.1.0)

ps_set_text_pos — Sets position for text output

Descrição

ps_set_text_pos(resource $psdoc, float $x, float $y): bool

Set the position for the next text output. You may alternatively set the x and y value separately by calling ps_set_value() and choosing textx respectively texty as the value name.

If you want to output text at a certain position it is more convenient to use ps_show_xy() instead of setting the text position and calling ps_show().

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the new text position.

y

y-coordinate of the new text position.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Placing text at a given position

<?php
$ps = ps_new();
if (!ps_open_file($ps, "text.ps")) {
print "Cannot open PostScript file\n";
exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Text placement example");

ps_begin_page($ps, 596, 842);
$psfont = ps_findfont($ps, "Helvetica", "", 0);
ps_setfont($ps, $psfont, 8.0);
ps_show_xy($ps, "Some text at (100, 100)", 100, 100);

ps_set_value($ps, "textx", 100);
ps_set_value($ps, "texty", 120);
ps_show($ps, "Some text at (100, 120)");
ps_end_page($ps);

ps_delete($ps);
?>

Veja Também

  • ps_set_value() - Sets certain values
  • ps_show() - Output text


Sets certain values

  • « ps_set_text_pos
  • ps_setcolor »
  • PHP Manual
  • PS Funções
  • Sets certain values

ps_set_value

(PECL ps >= 1.1.0)

ps_set_value — Sets certain values

Descrição

ps_set_value(resource $psdoc, string $name, float $value): bool

Sets several values which are used by many functions. Parameters are by definition float values.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

The name can be one of the following:

textrendering

The way how text is shown.

textx

The x coordinate for text output.

texty

The y coordinate for text output.

wordspacing

The distance between words relative to the width of a space.

leading

The distance between lines in pixels.

value

The value of the parameter.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_get_value() - Gets certain values
  • ps_set_parameter() - Sets certain parameters


Sets current color

  • « ps_set_value
  • ps_setdash »
  • PHP Manual
  • PS Funções
  • Sets current color

ps_setcolor

(PECL ps >= 1.1.0)

ps_setcolor — Sets current color

Descrição

ps_setcolor(
resource $psdoc,
string $type,
string $colorspace,
float $c1,
float $c2,
float $c3,
float $c4
): bool

Sets the color for drawing, filling, or both.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The parameter type can be both, fill, or fillstroke.

colorspace

The colorspace should be one of gray, rgb, cmyk, spot, pattern. Depending on the colorspace either only the first, the first three or all parameters will be used.

c1

Depending on the colorspace this is either the red component (rgb), the cyan component (cmyk), the gray value (gray), the identifier of the spot color or the identifier of the pattern.

c2

Depending on the colorspace this is either the green component (rgb), the magenta component (cmyk).

c3

Depending on the colorspace this is either the blue component (rgb), the yellow component (cmyk).

c4

This must only be set in cmyk colorspace and specifies the black component.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Cuidado

The second parameter is currently not always evaluated. The color is sometimes set for filling and drawing just as if fillstroke were passed.


Sets appearance of a dashed line

  • « ps_setcolor
  • ps_setflat »
  • PHP Manual
  • PS Funções
  • Sets appearance of a dashed line

ps_setdash

(PECL ps >= 1.1.0)

ps_setdash — Sets appearance of a dashed line

Descrição

ps_setdash(resource $psdoc, float $on, float $off): bool

Sets the length of the black and white portions of a dashed line.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

on

The length of the dash.

off

The length of the gap between dashes.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_setpolydash() - Sets appearance of a dashed line


Sets flatness

  • « ps_setdash
  • ps_setfont »
  • PHP Manual
  • PS Funções
  • Sets flatness

ps_setflat

(PECL ps >= 1.1.0)

ps_setflat — Sets flatness

Descrição

ps_setflat(resource $psdoc, float $value): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

value

The value must be between 0.2 and 1.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sets font to use for following output

  • « ps_setflat
  • ps_setgray »
  • PHP Manual
  • PS Funções
  • Sets font to use for following output

ps_setfont

(PECL ps >= 1.1.0)

ps_setfont — Sets font to use for following output

Descrição

ps_setfont(resource $psdoc, int $fontid, float $size): bool

Sets a font, which has to be loaded before with ps_findfont(). Outputting text without setting a font results in an error.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

fontid

The font identifier as returned by ps_findfont().

size

The size of the font.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_findfont() - Loads a font
  • ps_set_text_pos() - Sets position for text output for an example.


Sets gray value

  • « ps_setfont
  • ps_setlinecap »
  • PHP Manual
  • PS Funções
  • Sets gray value

ps_setgray

(PECL ps >= 1.1.0)

ps_setgray — Sets gray value

Descrição

ps_setgray(resource $psdoc, float $gray): bool

Sets the gray value for all following drawing operations.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

gray

The value must be between 0 (white) and 1 (black).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_setcolor() - Sets current color


Sets appearance of line ends

  • « ps_setgray
  • ps_setlinejoin »
  • PHP Manual
  • PS Funções
  • Sets appearance of line ends

ps_setlinecap

(PECL ps >= 1.1.0)

ps_setlinecap — Sets appearance of line ends

Descrição

ps_setlinecap(resource $psdoc, int $type): bool

Sets how line ends look like.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of line ends. Possible values are PS_LINECAP_BUTT, PS_LINECAP_ROUND, or PS_LINECAP_SQUARED.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setlinewidth() - Sets width of a line
  • ps_setmiterlimit() - Sets the miter limit


Sets how contected lines are joined

  • « ps_setlinecap
  • ps_setlinewidth »
  • PHP Manual
  • PS Funções
  • Sets how contected lines are joined

ps_setlinejoin

(PECL ps >= 1.1.0)

ps_setlinejoin — Sets how contected lines are joined

Descrição

ps_setlinejoin(resource $psdoc, int $type): bool

Sets how lines are joined.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The way lines are joined. Possible values are PS_LINEJOIN_MITER, PS_LINEJOIN_ROUND, or PS_LINEJOIN_BEVEL.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinewidth() - Sets width of a line
  • ps_setmiterlimit() - Sets the miter limit


Sets width of a line

  • « ps_setlinejoin
  • ps_setmiterlimit »
  • PHP Manual
  • PS Funções
  • Sets width of a line

ps_setlinewidth

(PECL ps >= 1.1.0)

ps_setlinewidth — Sets width of a line

Descrição

ps_setlinewidth(resource $psdoc, float $width): bool

Sets the line width for all following drawing operations.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of lines in points.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setmiterlimit() - Sets the miter limit


Sets the miter limit

  • « ps_setlinewidth
  • ps_setoverprintmode »
  • PHP Manual
  • PS Funções
  • Sets the miter limit

ps_setmiterlimit

(PECL ps >= 1.1.0)

ps_setmiterlimit — Sets the miter limit

Descrição

ps_setmiterlimit(resource $psdoc, float $value): bool

If two lines join in a small angle and the line join is set to PS_LINEJOIN_MITER, then the resulting spike will be very long. The miter limit is the maximum ratio of the miter length (the length of the spike) and the line width.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

value

The maximum ratio between the miter length and the line width. Larger values (> 10) will result in very long spikes when two lines meet in a small angle. Keep the default unless you know what you are doing.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setlinewidth() - Sets width of a line


Sets overprint mode

  • « ps_setmiterlimit
  • ps_setpolydash »
  • PHP Manual
  • PS Funções
  • Sets overprint mode

ps_setoverprintmode

(PECL ps >= 1.3.0)

ps_setoverprintmode — Sets overprint mode

Descrição

ps_setoverprintmode(resource $psdoc, int $mode): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

mode

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sets appearance of a dashed line

  • « ps_setoverprintmode
  • ps_shading_pattern »
  • PHP Manual
  • PS Funções
  • Sets appearance of a dashed line

ps_setpolydash

(PECL ps >= 1.1.0)

ps_setpolydash — Sets appearance of a dashed line

Descrição

ps_setpolydash(resource $psdoc, float $arr): bool

Sets the length of the black and white portions of a dashed line. ps_setpolydash() is used to set more complicated dash patterns.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

arr

arr is a list of length elements alternately for the black and white portion.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Drawing a dashed line

<?php
$ps = ps_new();
if (!ps_open_file($ps, "polydash.ps")) {
print "Cannot open PostScript file\n";
exit;
}

ps_set_info($ps, "Creator", "polydash.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Poly dash example");

ps_begin_page($ps, 596, 842);
ps_setpolydash($ps, array(10, 5, 2, 5));
ps_moveto($ps, 100, 100);
ps_lineto($ps, 200, 200);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

This example draws a line with a 10 and 2 points long line, and gaps of 5 points inbetween.

Veja Também

  • ps_setdash() - Sets appearance of a dashed line


Creates a pattern based on a shading

  • « ps_setpolydash
  • ps_shading »
  • PHP Manual
  • PS Funções
  • Creates a pattern based on a shading

ps_shading_pattern

(PECL ps >= 1.3.0)

ps_shading_pattern — Creates a pattern based on a shading

Descrição

ps_shading_pattern(resource $psdoc, int $shadingid, string $optlist): int|false

Creates a pattern based on a shading, which has to be created before with ps_shading(). Shading patterns can be used like regular patterns.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

shadingid

The identifier of a shading previously created with ps_shading().

optlist

This argument is not currently used.

Valor Retornado

The identifier of the pattern ou false em caso de falha.

Veja Também

  • ps_shading() - Creates a shading for later use
  • ps_shfill() - Fills an area with a shading


Creates a shading for later use

  • « ps_shading_pattern
  • ps_shfill »
  • PHP Manual
  • PS Funções
  • Creates a shading for later use

ps_shading

(PECL ps >= 1.3.0)

ps_shading — Creates a shading for later use

Descrição

ps_shading(
resource $psdoc,
string $type,
float $x0,
float $y0,
float $x1,
float $y1,
float $c1,
float $c2,
float $c3,
float $c4,
string $optlist
): int|false

Creates a shading, which can be used by ps_shfill() or ps_shading_pattern().

The color of the shading can be in any color space except for pattern.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of shading can be either radial or axial. Each shading starts with the current fill color and ends with the given color values passed in the parameters c1 to c4 (see ps_setcolor() for their meaning).

x0, x1, y0, y1

The coordinates x0, y0, x1, y1 are the start and end point of the shading. If the type of shading is radial the two points are the middle points of a starting and ending circle.

c1, c2, c3, c4

See ps_setcolor() for their meaning.

optlist

If the shading is of type radial the optlist must also contain the parameters r0 and r1 with the radius of the start and end circle.

Valor Retornado

Returns the identifier of the pattern ou false em caso de falha.

Veja Também

  • ps_shading_pattern() - Creates a pattern based on a shading
  • ps_shfill() - Fills an area with a shading


Fills an area with a shading

  • « ps_shading
  • ps_show_boxed »
  • PHP Manual
  • PS Funções
  • Fills an area with a shading

ps_shfill

(PECL ps >= 1.3.0)

ps_shfill — Fills an area with a shading

Descrição

ps_shfill(resource $psdoc, int $shadingid): bool

Fills an area with a shading, which has to be created before with ps_shading(). This is an alternative way to creating a pattern from a shading ps_shading_pattern() and using the pattern as the filling color.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

shadingid

The identifier of a shading previously created with ps_shading().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_shading() - Creates a shading for later use
  • ps_shading_pattern() - Creates a pattern based on a shading


Output text in a box

  • « ps_shfill
  • ps_show_xy2 »
  • PHP Manual
  • PS Funções
  • Output text in a box

ps_show_boxed

(PECL ps >= 1.1.0)

ps_show_boxed — Output text in a box

Descrição

ps_show_boxed(
resource $psdoc,
string $text,
float $left,
float $bottom,
float $width,
float $height,
string $hmode,
string $feature = ?
): int

Outputs a text in a given box. The lower left corner of the box is at (left, bottom). Line breaks will be inserted where needed. Multiple spaces are treated as one. Tabulators are treated as spaces.

The text will be hyphenated if the parameter hyphenation is set to true and the parameter hyphendict contains a valid filename for a hyphenation file. The line spacing is taken from the value leading. Paragraphs can be separated by an empty line just like in TeX. If the value parindent is set to value > 0.0 then the first n lines will be indented. The number n of lines is set by the parameter numindentlines. In order to prevent indenting of the first m paragraphs set the value parindentskip to a positive number.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output into the given box.

left

x-coordinate of the lower left corner of the box.

bottom

y-coordinate of the lower left corner of the box.

width

Width of the box.

height

Height of the box.

hmode

The parameter hmode can be justify, fulljustify, right, left, or center. The difference of justify and fulljustify just affects the last line of the box. In fulljustify mode the last line will be left and right justified unless this is also the last line of paragraph. In justify mode it will always be left justified.

feature

Used parameters

The output of ps_show_boxed() can be configured with several parameters and values which must be set with either ps_set_parameter() or ps_set_value(). Beside the parameters and values which affect text output, the following parameters and values are evaluated.

leading (value)

Distance between baselines of two consecutive lines.

linebreak (parameter)

Set to true if you want a carriage return to start a new line instead of treating it as a space. Defaults to false.

parbreak (parameter)

Set to true if you want a carriage return on a single line to start a new paragraph instead of treating it as a space. Defaults to true.

hyphenation (parameter)

Set to true in order to turn hyphenation on. This requires a dictionary to be set with the parameter hyphendict. Defaults to false.

hyphendict (parameter)

Filename of the dictionary used for hyphenation pattern (see below).

hyphenminchar (value)

The number of chars which must at least be left over before or after the hyphen. This implies that only words of at least two times this value will be hyphenated. The default value is three. Setting a value of zero will result in the default value.

parindent (value)

Set the amount of space in pixel for indenting the first m lines of a paragraph. m can be set with the value numindentlines.

parskip (value)

Set the amount of extra space in pixel between paragraphs. Defaults to 0 which will result in a normal line distance.

numindentlines (value)

Number of lines from the start of the paragraph which will be indented. Defaults to 1.

parindentskip (value)

Number of paragraphs in the box whose first lines will not be indented. This defaults to 0. This is useful for paragraphs right after a section heading or text being continued in a second box. In both case one would set this to 1.

linenumbermode (parameter)

Set how lines are to be numbered. Possible values are box for numbering lines in the whole box or paragraph to number lines within each paragraph.

linenumberspace (value)

The space for the column left of the numbered line containing the line number. The line number will be right justified into this column. Defaults to 20.

linenumbersep (value)

The space between the column with line numbers and the line itself. Defaults to 5.

Hyphenation

Text is hyphenated if the parameter hyphenation is set to true and a valid hyphenation dictionary is set. pslib does not ship its own hyphenation dictionary but uses one from openoffice, scribus or koffice. You can find their dictionaries for different languages in one of the following directories if the software is installed:

  • /usr/share/apps/koffice/hyphdicts/
  • /usr/lib/scribus/dicts/
  • /usr/lib/openoffice/share/dict/ooo/
Currently scribus appears to have the most complete hyphenation dictionaries.

Valor Retornado

Number of characters that could not be written.

Veja Também

  • ps_continue_text() - Continue text in next line


Output text at position

  • « ps_show_boxed
  • ps_show_xy »
  • PHP Manual
  • PS Funções
  • Output text at position

ps_show_xy2

(PECL ps >= 1.1.0)

ps_show_xy2 — Output text at position

Descrição

ps_show_xy2(
resource $psdoc,
string $text,
int $len,
float $xcoor,
float $ycoor
): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Output text at given position

  • « ps_show_xy2
  • ps_show2 »
  • PHP Manual
  • PS Funções
  • Output text at given position

ps_show_xy

(PECL ps >= 1.1.0)

ps_show_xy — Output text at given position

Descrição

ps_show_xy(
resource $psdoc,
string $text,
float $x,
float $y
): bool

Output a text at the given text position.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

x

x-coordinate of the lower left corner of the box surrounding the text.

y

y-coordinate of the lower left corner of the box surrounding the text.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_continue_text() - Continue text in next line
  • ps_show() - Output text


Output a text at current position

  • « ps_show_xy
  • ps_show »
  • PHP Manual
  • PS Funções
  • Output a text at current position

ps_show2

(PECL ps >= 1.1.0)

ps_show2 — Output a text at current position

Descrição

ps_show2(resource $psdoc, string $text, int $len): bool

Output text at the current position. Do not print more than len characters.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

len

The maximum number of characters to print.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Output text

  • « ps_show2
  • ps_string_geometry »
  • PHP Manual
  • PS Funções
  • Output text

ps_show

(PECL ps >= 1.1.0)

ps_show — Output text

Descrição

ps_show(resource $psdoc, string $text): bool

Output a text at the current text position. The text position can be set by storing the x and y coordinates into the values textx and texty with the function ps_set_value(). The function will issue an error if a font was not set before with ps_setfont().

ps_show() evaluates the following parameters and values as set by ps_set_parameter() and ps_set_value().

charspacing (value)

Distance between two consecutive glyphs. If this value is unequal to zero then all ligatures will be resolved. Values less than zero are allowed.

kerning (parameter)

Setting this parameter to "false" will turn off kerning. Kerning is turned on by default.

ligatures (parameter)

Setting this parameter to "false" will turn off the use of ligatures. Ligatures are turned on by default.

underline (parameter)

Setting this parameter to "true" will turn on underlining. Underlining is turned off by default.

overline (parameter)

Setting this parameter to "true" will turn on overlining. Overlining is turned off by default.

strikeout (parameter)

Setting this parameter to "true" will turn on striking out. Striking out is turned off by default.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_continue_text() - Continue text in next line
  • ps_show_xy() - Output text at given position
  • ps_setfont() - Sets font to use for following output


Gets geometry of a string

  • « ps_show
  • ps_stringwidth »
  • PHP Manual
  • PS Funções
  • Gets geometry of a string

ps_string_geometry

(PECL ps >= 1.2.0)

ps_string_geometry — Gets geometry of a string

Descrição

ps_string_geometry(
resource $psdoc,
string $text,
int $fontid = 0,
float $size = 0.0
): array

This function is similar to ps_stringwidth() but returns an array of dimensions containing the width, ascender, and descender of the text.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text for which the geometry is to be calculated.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Valor Retornado

An array of the dimensions of a string. The element 'width' contains the width of the string as returned by ps_stringwidth(). The element 'descender' contains the maximum descender and 'ascender' the maximum ascender of the string.

Veja Também

  • ps_continue_text() - Continue text in next line
  • ps_stringwidth() - Gets width of a string


Gets width of a string

  • « ps_string_geometry
  • ps_stroke »
  • PHP Manual
  • PS Funções
  • Gets width of a string

ps_stringwidth

(PECL ps >= 1.1.0)

ps_stringwidth — Gets width of a string

Descrição

ps_stringwidth(
resource $psdoc,
string $text,
int $fontid = 0,
float $size = 0.0
): float

Calculates the width of a string in points if it was output in the given font and font size. This function needs an Adobe font metrics file to calculate the precise width. If kerning is turned on, it will be taken into account.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text for which the width is to be calculated.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Valor Retornado

Width of a string in points.

Veja Também

  • ps_string_geometry() - Gets geometry of a string


Draws the current path

  • « ps_stringwidth
  • ps_symbol_name »
  • PHP Manual
  • PS Funções
  • Draws the current path

ps_stroke

(PECL ps >= 1.1.0)

ps_stroke — Draws the current path

Descrição

ps_stroke(resource $psdoc): bool

Draws the path constructed with previously called drawing functions like ps_lineto().

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_closepath_stroke() - Closes and strokes path
  • ps_fill() - Fills the current path
  • ps_fill_stroke() - Fills and strokes the current path


Gets name of a glyph

  • « ps_stroke
  • ps_symbol_width »
  • PHP Manual
  • PS Funções
  • Gets name of a glyph

ps_symbol_name

(PECL ps >= 1.2.0)

ps_symbol_name — Gets name of a glyph

Descrição

ps_symbol_name(resource $psdoc, int $ord, int $fontid = 0): string

This function needs an Adobe font metrics file to know which glyphs are available.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The parameter ord is the position of the glyph in the font encoding vector.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

Valor Retornado

The name of a glyph in the given font.

Veja Também

  • ps_symbol() - Output a glyph
  • ps_symbol_width() - Gets width of a glyph


Gets width of a glyph

  • « ps_symbol_name
  • ps_symbol »
  • PHP Manual
  • PS Funções
  • Gets width of a glyph

ps_symbol_width

(PECL ps >= 1.2.0)

ps_symbol_width — Gets width of a glyph

Descrição

ps_symbol_width(
resource $psdoc,
int $ord,
int $fontid = 0,
float $size = 0.0
): float

Calculates the width of a glyph in points if it was output in the given font and font size. This function needs an Adobe font metrics file to calculate the precise width.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The position of the glyph in the font encoding vector.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Valor Retornado

The width of a glyph in points.

Veja Também

  • ps_symbol() - Output a glyph
  • ps_symbol_name() - Gets name of a glyph


Output a glyph

  • « ps_symbol_width
  • ps_translate »
  • PHP Manual
  • PS Funções
  • Output a glyph

ps_symbol

(PECL ps >= 1.2.0)

ps_symbol — Output a glyph

Descrição

ps_symbol(resource $psdoc, int $ord): bool

Output the glyph at position ord in the font encoding vector of the current font. The font encoding for a font can be set when loading the font with ps_findfont().

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The position of the glyph in the font encoding vector.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ps_symbol_name() - Gets name of a glyph
  • ps_symbol_width() - Gets width of a glyph


Sets translation

  • « ps_symbol
  • RpmInfo »
  • PHP Manual
  • PS Funções
  • Sets translation

ps_translate

(PECL ps >= 1.1.0)

ps_translate — Sets translation

Descrição

ps_translate(resource $psdoc, float $x, float $y): bool

Sets a new initial point of the coordinate system.

Parâmetros

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the origin of the translated coordinate system.

y

y-coordinate of the origin of the translated coordinate system.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Translation of the coordinate system

<?php
function rectangle($ps) {
ps_moveto($ps, 0, 0);
ps_lineto($ps, 0, 50);
ps_lineto($ps, 50, 50);
ps_lineto($ps, 50, 0);
ps_lineto($ps, 0, 0);
ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "translate.ps")) {
print "Cannot open PostScript file\n";
exit;
}

ps_set_info($ps, "Creator", "translate.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Translated example");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_translate($ps, -500, -750);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_delete($ps);
?>

The above example demonstrates two possible ways to place a graphic (in this case just a rectangle) at any position on the page, while the graphic itself uses its own coordinate system. The trick is to change the origin of the current coordinate system before drawing the rectangle. The translation has to be undone after the graphic has been drawn.

On the second page a slightly different and more elegant approach is applied. Instead of undoing the translation with a second call of ps_translate() the graphics context is saved before modifying the coordinate system and restored after drawing the rectangle.

Veja Também

  • ps_scale() - Sets scaling factor
  • ps_rotate() - Sets rotation factor


RpmInfo

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Installation via PECL
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • RpmInfo Funções
    • rpmaddtag — Add tag retrieved in query
    • rpmdbinfo — Get information from installed RPM
    • rpmdbsearch — Search RPM packages
    • rpmgetsymlink — Get target of a symlink
    • rpminfo — Get information from a RPM file
    • rpmvercmp — RPM version comparison


Introdução

This extension enables you to retrieve information from RPM files or from the installed RPMs database.

It also provides a rpm stream wrapper to retrieve RPM content (since version 1.0.0 with librpm >= 4.13).


Instalação/Configuração

Índice

  • Dependências
  • Installation via PECL
  • Configurações em Execução
  • Tipos de Recurso


  • « Instalação/Configuração
  • Installation via PECL »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

This extension requires » librpm version 4.11.3 or higher.


Installation via PECL

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/rpminfo.


  • « Installation via PECL
  • Tipos de Recurso »
  • PHP Manual
  • Instalação/Configuração
  • Configurações em Execução

Configurações em Execução

Esta extensão não possui diretivas de configuração definidas no php.ini.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

RPMVERSION (string)
System librpm version.
RPMSENSE_ANY (int)
RPMSENSE_LESS (int)
RPMSENSE_GREATER (int)
RPMSENSE_EQUAL (int)
RPMSENSE_POSTTRANS (int)
RPMSENSE_PREREQ (int)
RPMSENSE_PRETRANS (int)
RPMSENSE_INTERP (int)
RPMSENSE_SCRIPT_PRE (int)
RPMSENSE_SCRIPT_POST (int)
RPMSENSE_SCRIPT_PREUN (int)
RPMSENSE_SCRIPT_POSTUN (int)
RPMSENSE_SCRIPT_VERIFY (int)
RPMSENSE_FIND_REQUIRES (int)
RPMSENSE_FIND_PROVIDES (int)
RPMSENSE_TRIGGERIN (int)
RPMSENSE_TRIGGERUN (int)
RPMSENSE_TRIGGERPOSTUN (int)
RPMSENSE_MISSINGOK (int)
RPMSENSE_RPMLIB (int)
RPMSENSE_TRIGGERPREIN (int)
RPMSENSE_KEYRING (int)
RPMSENSE_CONFIG (int)
RPMMIRE_DEFAULT (int)
Search pattern is a regular expression with \., .* and ^...$ added.
RPMMIRE_STRCMP (int)
Search pattern is a string, using strcmp(3).
RPMMIRE_REGEX (int)
Search pattern is a regular expression, using regcomp(3).
RPMMIRE_GLOB (int)
Search pattern is a glob expression, using fnmatch(3).
RPMTAG_ARCH (int)
RPMTAG_ARCHSUFFIX (int)
Requires librpm >= 4.18
RPMTAG_ARCHIVESIZE (int)
RPMTAG_BASENAMES (int)
Name (not path) of files, with database index.
RPMTAG_BUGURL (int)
RPMTAG_BUILDARCHS (int)
RPMTAG_BUILDHOST (int)
RPMTAG_BUILDTIME (int)
RPMTAG_C (int)
RPMTAG_CHANGELOGNAME (int)
RPMTAG_CHANGELOGTEXT (int)
RPMTAG_CHANGELOGTIME (int)
RPMTAG_CLASSDICT (int)
RPMTAG_CONFLICTFLAGS (int)
RPMTAG_CONFLICTNAME (int)
Conflicting dependencies, with database index.
RPMTAG_CONFLICTNEVRS (int)
RPMTAG_CONFLICTS (int)
RPMTAG_CONFLICTVERSION (int)
RPMTAG_COOKIE (int)
RPMTAG_DBINSTANCE (int)
RPMTAG_DEPENDSDICT (int)
RPMTAG_DESCRIPTION (int)
RPMTAG_DIRINDEXES (int)
RPMTAG_DIRNAMES (int)
Directory of files, with database index.
RPMTAG_DISTRIBUTION (int)
RPMTAG_DISTTAG (int)
RPMTAG_DISTURL (int)
RPMTAG_DSAHEADER (int)
RPMTAG_E (int)
RPMTAG_ENCODING (int)
RPMTAG_ENHANCEFLAGS (int)
RPMTAG_ENHANCENAME (int)
Weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_ENHANCENEVRS (int)
RPMTAG_ENHANCES (int)
RPMTAG_ENHANCEVERSION (int)
RPMTAG_EPOCH (int)
RPMTAG_EPOCHNUM (int)
RPMTAG_EVR (int)
RPMTAG_EXCLUDEARCH (int)
RPMTAG_EXCLUDEOS (int)
RPMTAG_EXCLUSIVEARCH (int)
RPMTAG_EXCLUSIVEOS (int)
RPMTAG_FILECAPS (int)
RPMTAG_FILECLASS (int)
RPMTAG_FILECOLORS (int)
RPMTAG_FILECONTEXTS (int)
RPMTAG_FILEDEPENDSN (int)
RPMTAG_FILEDEPENDSX (int)
RPMTAG_FILEDEVICES (int)
RPMTAG_FILEDIGESTALGO (int)
RPMTAG_FILEDIGESTS (int)
RPMTAG_FILEFLAGS (int)
RPMTAG_FILEGROUPNAME (int)
RPMTAG_FILEINODES (int)
RPMTAG_FILELANGS (int)
RPMTAG_FILELINKTOS (int)
RPMTAG_FILEMD5S (int)
RPMTAG_FILEMODES (int)
RPMTAG_FILEMTIMES (int)
RPMTAG_FILENAMES (int)
RPMTAG_FILENLINKS (int)
RPMTAG_FILEPROVIDE (int)
RPMTAG_FILERDEVS (int)
RPMTAG_FILEREQUIRE (int)
RPMTAG_FILESIGNATURELENGTH (int)
RPMTAG_FILESIGNATURES (int)
RPMTAG_FILESIZES (int)
RPMTAG_FILESTATES (int)
RPMTAG_FILETRIGGERCONDS (int)
RPMTAG_FILETRIGGERFLAGS (int)
RPMTAG_FILETRIGGERINDEX (int)
RPMTAG_FILETRIGGERNAME (int)
File trigger name, with database index, requires librpm >= 4.13.
RPMTAG_FILETRIGGERPRIORITIES (int)
RPMTAG_FILETRIGGERSCRIPTFLAGS (int)
RPMTAG_FILETRIGGERSCRIPTPROG (int)
RPMTAG_FILETRIGGERSCRIPTS (int)
RPMTAG_FILETRIGGERTYPE (int)
RPMTAG_FILETRIGGERVERSION (int)
RPMTAG_FILEUSERNAME (int)
RPMTAG_FILEVERIFYFLAGS (int)
RPMTAG_FSCONTEXTS (int)
RPMTAG_GIF (int)
RPMTAG_GROUP (int)
Group of the package, with database index.
RPMTAG_HDRID (int)
RPMTAG_HEADERCOLOR (int)
RPMTAG_HEADERI18NTABLE (int)
RPMTAG_HEADERIMAGE (int)
RPMTAG_HEADERIMMUTABLE (int)
RPMTAG_HEADERREGIONS (int)
RPMTAG_HEADERSIGNATURES (int)
RPMTAG_ICON (int)
RPMTAG_INSTALLCOLOR (int)
RPMTAG_INSTALLTID (int)
Installation transaction ID, with database index.
RPMTAG_INSTALLTIME (int)
RPMTAG_INSTFILENAMES (int)
Path of files, with database index.
RPMTAG_INSTPREFIXES (int)
RPMTAG_LICENSE (int)
RPMTAG_LONGARCHIVESIZE (int)
RPMTAG_LONGFILESIZES (int)
RPMTAG_LONGSIGSIZE (int)
RPMTAG_LONGSIZE (int)
RPMTAG_MODULARITYLABEL (int)
RPMTAG_N (int)
RPMTAG_NAME (int)
Package name, with database index.
RPMTAG_NEVR (int)
RPMTAG_NEVRA (int)
RPMTAG_NOPATCH (int)
RPMTAG_NOSOURCE (int)
RPMTAG_NVR (int)
RPMTAG_NVRA (int)
RPMTAG_O (int)
RPMTAG_OBSOLETEFLAGS (int)
RPMTAG_OBSOLETENAME (int)
Obsoleted packages, with database index.
RPMTAG_OBSOLETENEVRS (int)
RPMTAG_OBSOLETES (int)
RPMTAG_OBSOLETEVERSION (int)
RPMTAG_OLDENHANCES (int)
RPMTAG_OLDENHANCESFLAGS (int)
RPMTAG_OLDENHANCESNAME (int)
RPMTAG_OLDENHANCESVERSION (int)
RPMTAG_OLDFILENAMES (int)
RPMTAG_OLDSUGGESTS (int)
RPMTAG_OLDSUGGESTSFLAGS (int)
RPMTAG_OLDSUGGESTSNAME (int)
RPMTAG_OLDSUGGESTSVERSION (int)
RPMTAG_OPTFLAGS (int)
RPMTAG_ORDERFLAGS (int)
RPMTAG_ORDERNAME (int)
RPMTAG_ORDERVERSION (int)
RPMTAG_ORIGBASENAMES (int)
RPMTAG_ORIGDIRINDEXES (int)
RPMTAG_ORIGDIRNAMES (int)
RPMTAG_ORIGFILENAMES (int)
RPMTAG_OS (int)
RPMTAG_P (int)
RPMTAG_PACKAGER (int)
RPMTAG_PATCH (int)
RPMTAG_PATCHESFLAGS (int)
RPMTAG_PATCHESNAME (int)
RPMTAG_PATCHESVERSION (int)
RPMTAG_PAYLOADCOMPRESSOR (int)
RPMTAG_PAYLOADDIGEST (int)
RPMTAG_PAYLOADDIGESTALT (int)
With librpm >= 4.16.
RPMTAG_PAYLOADDIGESTALGO (int)
RPMTAG_PAYLOADFLAGS (int)
RPMTAG_PAYLOADFORMAT (int)
RPMTAG_PKGID (int)
RPMTAG_PLATFORM (int)
RPMTAG_POLICIES (int)
RPMTAG_POLICYFLAGS (int)
RPMTAG_POLICYNAMES (int)
RPMTAG_POLICYTYPES (int)
RPMTAG_POLICYTYPESINDEXES (int)
RPMTAG_POSTIN (int)
RPMTAG_POSTINFLAGS (int)
RPMTAG_POSTINPROG (int)
RPMTAG_POSTTRANS (int)
RPMTAG_POSTTRANSFLAGS (int)
RPMTAG_POSTTRANSPROG (int)
RPMTAG_POSTUN (int)
RPMTAG_POSTUNFLAGS (int)
RPMTAG_POSTUNPROG (int)
RPMTAG_POSTUNTRANS (int)
Requires librpm >= 4.19
RPMTAG_POSTUNTRANSFLAGS (int)
Requires librpm >= 4.19
RPMTAG_POSTUNTRANSPROG (int)
Requires librpm >= 4.19
RPMTAG_PREFIXES (int)
RPMTAG_PREIN (int)
RPMTAG_PREINFLAGS (int)
RPMTAG_PREINPROG (int)
RPMTAG_PRETRANS (int)
RPMTAG_PRETRANSFLAGS (int)
RPMTAG_PRETRANSPROG (int)
RPMTAG_PREUN (int)
RPMTAG_PREUNFLAGS (int)
RPMTAG_PREUNPROG (int)
RPMTAG_PREUNTRANS (int)
Requires librpm >= 4.19
RPMTAG_PREUNTRANSFLAGS (int)
Requires librpm >= 4.19
RPMTAG_PREUNTRANSPROG (int)
Requires librpm >= 4.19
RPMTAG_PROVIDEFLAGS (int)
RPMTAG_PROVIDENAME (int)
Provided dependencies, with database index.
RPMTAG_PROVIDENEVRS (int)
RPMTAG_PROVIDES (int)
RPMTAG_PROVIDEVERSION (int)
RPMTAG_PUBKEYS (int)
RPMTAG_R (int)
RPMTAG_RECOMMENDFLAGS (int)
RPMTAG_RECOMMENDNAME (int)
Recommended weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_RECOMMENDNEVRS (int)
RPMTAG_RECOMMENDS (int)
RPMTAG_RECOMMENDVERSION (int)
RPMTAG_RECONTEXTS (int)
RPMTAG_RELEASE (int)
RPMTAG_REMOVETID (int)
RPMTAG_REQUIREFLAGS (int)
RPMTAG_REQUIRENAME (int)
Required dependencies, with database index.
RPMTAG_REQUIRENEVRS (int)
RPMTAG_REQUIRES (int)
RPMTAG_REQUIREVERSION (int)
RPMTAG_RPMVERSION (int)
RPMTAG_RSAHEADER (int)
RPMTAG_SHA1HEADER (int)
SHA1 signature, with database index.
RPMTAG_SHA256HEADER (int)
RPMTAG_SIGGPG (int)
RPMTAG_SIGMD5 (int)
MD5 signature, with database index.
RPMTAG_SIGPGP (int)
RPMTAG_SIGSIZE (int)
RPMTAG_SIZE (int)
RPMTAG_SOURCE (int)
RPMTAG_SOURCEPACKAGE (int)
RPMTAG_SOURCEPKGID (int)
RPMTAG_SOURCERPM (int)
RPMTAG_SPEC (int)
Requires librpm >= 4.18
RPMTAG_SUGGESTFLAGS (int)
RPMTAG_SUGGESTNAME (int)
Suggested weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_SUGGESTNEVRS (int)
RPMTAG_SUGGESTS (int)
RPMTAG_SUGGESTVERSION (int)
RPMTAG_SUMMARY (int)
RPMTAG_SUPPLEMENTFLAGS (int)
RPMTAG_SUPPLEMENTNAME (int)
Weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_SUPPLEMENTNEVRS (int)
RPMTAG_SUPPLEMENTS (int)
RPMTAG_SUPPLEMENTVERSION (int)
RPMTAG_SYSUSERS (int)
Requires librpm >= 4.19
RPMTAG_TRANSFILETRIGGERCONDS (int)
RPMTAG_TRANSFILETRIGGERFLAGS (int)
RPMTAG_TRANSFILETRIGGERINDEX (int)
RPMTAG_TRANSFILETRIGGERNAME (int)
Transaction file trigger name, with database index, requires librpm >= 4.13.
RPMTAG_TRANSFILETRIGGERPRIORITIES (int)
RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS (int)
RPMTAG_TRANSFILETRIGGERSCRIPTPROG (int)
RPMTAG_TRANSFILETRIGGERSCRIPTS (int)
RPMTAG_TRANSFILETRIGGERTYPE (int)
RPMTAG_TRANSFILETRIGGERVERSION (int)
RPMTAG_TRANSLATIONURL (int)
Requires librpm >= 4.18
RPMTAG_TRIGGERCONDS (int)
RPMTAG_TRIGGERFLAGS (int)
RPMTAG_TRIGGERINDEX (int)
RPMTAG_TRIGGERNAME (int)
Trigger name, with database index.
RPMTAG_TRIGGERSCRIPTFLAGS (int)
RPMTAG_TRIGGERSCRIPTPROG (int)
RPMTAG_TRIGGERSCRIPTS (int)
RPMTAG_TRIGGERTYPE (int)
RPMTAG_TRIGGERVERSION (int)
RPMTAG_UPSTREAMRELEASES (int)
Requires librpm >= 4.18
RPMTAG_URL (int)
RPMTAG_V (int)
RPMTAG_VCS (int)
RPMTAG_VENDOR (int)
RPMTAG_VERBOSE (int)
RPMTAG_VERIFYSCRIPT (int)
RPMTAG_VERIFYSCRIPTFLAGS (int)
RPMTAG_VERIFYSCRIPTPROG (int)
RPMTAG_VERITYSIGNATUREALGO (int)
With librpm >= 4.17.
RPMTAG_VERITYSIGNATURES (int)
With librpm >= 4.17.


RpmInfo Funções

Índice

  • rpmaddtag — Add tag retrieved in query
  • rpmdbinfo — Get information from installed RPM
  • rpmdbsearch — Search RPM packages
  • rpmgetsymlink — Get target of a symlink
  • rpminfo — Get information from a RPM file
  • rpmvercmp — RPM version comparison


Add tag retrieved in query

  • « RpmInfo Funções
  • rpmdbinfo »
  • PHP Manual
  • RpmInfo Funções
  • Add tag retrieved in query

rpmaddtag

(PECL rpminfo >= 0.5.0)

rpmaddtag — Add tag retrieved in query

Descrição

rpmaddtag(int $tag): bool

Add an additional retrieved tag in subsequent queries.

Parâmetros

tag

One of RPMTAG_* constant, see the rpminfo constants page.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • rpminfo() - Get information from a RPM file
  • rpmdbinfo() - Get information from installed RPM
  • rpmdbsearch() - Search RPM packages


Get information from installed RPM

  • « rpmaddtag
  • rpmdbsearch »
  • PHP Manual
  • RpmInfo Funções
  • Get information from installed RPM

rpmdbinfo

(PECL rpminfo >= 0.2.0)

rpmdbinfo — Get information from installed RPM

Descrição

rpmdbinfo(string $nevr, bool $full = false): ?array

Retrieve information about an installed package, from the system RPM database.

Parâmetros

nevr

Name with optional epoch, version and release.

full

If true all information headers for the file are retrieved, else only a minimal set.

Valor Retornado

An array of array of information or NULL on error.

Exemplos

Exemplo #1 A rpmdbinfo() example

<?php
rpmaddtag(RPMTAG_INSTALLTIME);
$info = rpmdbinfo("php-pecl-rpminfo");
print_r($info);
?>

O exemplo acima produzirá:

Array
(
    [0] => Array
        (
            [Name] => php-pecl-rpminfo
            [Version] => 0.4.2
            [Release] => 1.fc31
            [Summary] => RPM information
            [Installtime] => 1586244687
            [Arch] => x86_64
        )
)

Veja Também

  • rpmaddtag() - Add tag retrieved in query


Search RPM packages

  • « rpmdbinfo
  • rpmgetsymlink »
  • PHP Manual
  • RpmInfo Funções
  • Search RPM packages

rpmdbsearch

(PECL rpminfo >= 0.3.0)

rpmdbsearch — Search RPM packages

Descrição

rpmdbsearch(
string $pattern,
int $rpmtag = RPMTAG_NAME,
int $rpmmire = -1,
bool $full = false
): ?array

Search packages in the system RPM database.

Parâmetros

pattern

Value to search for.

rpmtag

Search criterion, one of RPMTAG_* constant, see the rpminfo constants page.

rpmmire

Pattern type, one of RPMMIRE_* constant, see the rpminfo constants page. When < 0 the criterion must equals the value, and database index is used if possible.

full

If true all information headers for the file are retrieved, else only a minimal set.

Valor Retornado

An array of array of information or NULL on error.

Exemplos

Exemplo #1 Searching for the package owning a file

<?php
$info = rpmdbsearch("/usr/bin/php", RPMTAG_INSTFILENAMES);
print_r($info);
?>

O exemplo acima produzirá:

Array
(
    [0] => Array
        (
            [Name] => php-cli
            [Version] => 7.4.4
            [Release] => 1.fc32
            [Summary] => Command-line interface for PHP
            [Arch] => x86_64
        )

)

Veja Também

  • rpmaddtag() - Add tag retrieved in query


Get target of a symlink

  • « rpmdbsearch
  • rpminfo »
  • PHP Manual
  • RpmInfo Funções
  • Get target of a symlink

rpmgetsymlink

(PECL rpminfo >= 1.1.0)

rpmgetsymlink — Get target of a symlink

Descrição

rpmgetsymlink(string $path, string $name): ?string

Get target of a symlink.

Parâmetros

path

Path of the RPM file.

name

Name of the symlink file.

Valor Retornado

A string with target of the symlink, NULL on error, or an empty string if not a symlink.


Get information from a RPM file

  • « rpmgetsymlink
  • rpmvercmp »
  • PHP Manual
  • RpmInfo Funções
  • Get information from a RPM file

rpminfo

(PECL rpminfo >= 0.1.0)

rpminfo — Get information from a RPM file

Descrição

rpminfo(string $path, bool $full = false, string &$error = ?): ?array

Retrieve information about a local file, a RPM package.

Parâmetros

path

Path of the RPM file.

full

If true all information headers for the file are retrieved, else only a minimal set.

error

If provided, will receive the possible error message, and will avoid a runtime warning.

Valor Retornado

An array of information or NULL on error.

Exemplos

Exemplo #1 A rpminfo() example

<?php
rpmaddtag(RPMTAG_BUILDTIME);
$info = rpminfo("./php-pecl-rpminfo-0.4.2-1.el8.remi.7.4.x86_64.rpm");
print_r($info);
?>

O exemplo acima produzirá:

Array
(
    [Name] => php-pecl-rpminfo
    [Version] => 0.4.2
    [Release] => 1.el8
    [Summary] => RPM information
    [Buildtime] => 1586244821
    [Arch] => x86_64
)

Veja Também

  • rpmaddtag() - Add tag retrieved in query


RPM version comparison

  • « rpminfo
  • XLSWriter »
  • PHP Manual
  • RpmInfo Funções
  • RPM version comparison

rpmvercmp

(PECL rpminfo >= 0.1.0)

rpmvercmp — RPM version comparison

Descrição

rpmvercmp(string $evr1, string $evr2, ?string $operator = null): int|bool

Compare 2 RPM versions.

Parâmetros

evr1

First epoch:version-release string

evr2

Second epoch:version-release string

operator

An optional operator. The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectively.

This parameter is case-sensitive, values should be lowercase.

Valor Retornado

Returns < 0 if evr1 is less than evr2, > 0 if evr1 is greater than evr2, and 0 if they are equal.

When using the optional operator argument, the function will return true if the relationship is the one specified by the operator, false otherwise.

Registro de Alterações

Versão | Descrição
0.7.0 | Optional operator was added.


XLSWriter

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Tipos de Recurso
  • Constantes pré-definidas
  • Vtiful\Kernel\Excel — The Vtiful\Kernel\Excel class
    • Vtiful\Kernel\Excel::addSheet — Vtiful\Kernel\Excel addSheet
    • Vtiful\Kernel\Excel::autoFilter — Vtiful\Kernel\Excel autoFilter
    • Vtiful\Kernel\Excel::constMemory — Vtiful\Kernel\Excel constMemory
    • Vtiful\Kernel\Excel::__construct — Vtiful\Kernel\Excel constructor
    • Vtiful\Kernel\Excel::data — Vtiful\Kernel\Excel data
    • Vtiful\Kernel\Excel::fileName — Vtiful\Kernel\Excel fileName
    • Vtiful\Kernel\Excel::getHandle — Vtiful\Kernel\Excel getHandle
    • Vtiful\Kernel\Excel::header — Vtiful\Kernel\Excel header
    • Vtiful\Kernel\Excel::insertFormula — Vtiful\Kernel\Excel insertFormula
    • Vtiful\Kernel\Excel::insertImage — Vtiful\Kernel\Excel insertImage
    • Vtiful\Kernel\Excel::insertText — Vtiful\Kernel\Excel insertText
    • Vtiful\Kernel\Excel::mergeCells — Vtiful\Kernel\Excel mergeCells
    • Vtiful\Kernel\Excel::output — Vtiful\Kernel\Excel output
    • Vtiful\Kernel\Excel::setColumn — Vtiful\Kernel\Excel setColumn
    • Vtiful\Kernel\Excel::setRow — Vtiful\Kernel\Excel setRow
  • Vtiful\Kernel\Format — The Vtiful\Kernel\Format class
    • Vtiful\Kernel\Format::align — Vtiful\Kernel\Format align
    • Vtiful\Kernel\Format::bold — Vtiful\Kernel\Format bold
    • Vtiful\Kernel\Format::italic — Vtiful\Kernel\Format italic
    • Vtiful\Kernel\Format::underline — Vtiful\Kernel\Format underline


  • « XLSWriter
  • Instalação/Configuração »
  • PHP Manual
  • XLSWriter
  • Introdução

Introdução

An efficient and fast xlsx file export extension.


  • « Introdução
  • Dependências »
  • PHP Manual
  • XLSWriter
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Tipos de Recurso


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

XLSWriter requires PHP 7.0 and above.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/xlswriter


Tipos de Recurso

There is one resource used by the procedural version of the XLSWriter extension: returned by fileName() or \Vtiful\Kernel\Format.


  • « Tipos de Recurso
  • Vtiful\Kernel\Excel »
  • PHP Manual
  • XLSWriter
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


The Vtiful\Kernel\Excel class

(PECL xlswriter >= 1.2.1)

Introdução

Create xlsx files and set cells and output xlsx files

Resumo da classe

class Vtiful\Kernel\Excel {
/* Métodos */
public __construct(array $config)
public addSheet(string $sheetName)
public autoFilter(string $scope)
public constMemory(string $fileName, string $sheetName = ?)
public data(array $data)
public fileName(string $fileName, string $sheetName = ?)
public getHandle()
public header(array $headerData)
public insertFormula(int $row, int $column, string $formula)
public insertImage(int $row, int $column, string $localImagePath)
public insertText(
int $row,
int $column,
int|float|string $data,
string $format = ?
)
public mergeCells(string $scope, string $data)
public output()
public setColumn(string $range, float $width, resource $format = ?)
public setRow(string $range, float $height, resource $format = ?)
}

Índice

  • Vtiful\Kernel\Excel::addSheet — Vtiful\Kernel\Excel addSheet
  • Vtiful\Kernel\Excel::autoFilter — Vtiful\Kernel\Excel autoFilter
  • Vtiful\Kernel\Excel::constMemory — Vtiful\Kernel\Excel constMemory
  • Vtiful\Kernel\Excel::__construct — Vtiful\Kernel\Excel constructor
  • Vtiful\Kernel\Excel::data — Vtiful\Kernel\Excel data
  • Vtiful\Kernel\Excel::fileName — Vtiful\Kernel\Excel fileName
  • Vtiful\Kernel\Excel::getHandle — Vtiful\Kernel\Excel getHandle
  • Vtiful\Kernel\Excel::header — Vtiful\Kernel\Excel header
  • Vtiful\Kernel\Excel::insertFormula — Vtiful\Kernel\Excel insertFormula
  • Vtiful\Kernel\Excel::insertImage — Vtiful\Kernel\Excel insertImage
  • Vtiful\Kernel\Excel::insertText — Vtiful\Kernel\Excel insertText
  • Vtiful\Kernel\Excel::mergeCells — Vtiful\Kernel\Excel mergeCells
  • Vtiful\Kernel\Excel::output — Vtiful\Kernel\Excel output
  • Vtiful\Kernel\Excel::setColumn — Vtiful\Kernel\Excel setColumn
  • Vtiful\Kernel\Excel::setRow — Vtiful\Kernel\Excel setRow


Vtiful\Kernel\Excel addSheet

  • « Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel::autoFilter »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel addSheet

Vtiful\Kernel\Excel::addSheet

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::addSheet — Vtiful\Kernel\Excel addSheet

Descrição

public Vtiful\Kernel\Excel::addSheet(string $sheetName)

Create a new worksheet in the xlsx file.

Parâmetros

sheetName

Worksheet name

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
->header(['name', 'age'])
->data([
['viest', 23],
['wjx', 23]
]);

$file->addSheet('sheet_two')
->header(['name', 'age'])
->data([
['james', 33],
['king', 33]
]);

$file->output();
?>


Vtiful\Kernel\Excel autoFilter

  • « Vtiful\Kernel\Excel::addSheet
  • Vtiful\Kernel\Excel::constMemory »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel autoFilter

Vtiful\Kernel\Excel::autoFilter

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::autoFilter — Vtiful\Kernel\Excel autoFilter

Descrição

public Vtiful\Kernel\Excel::autoFilter(string $scope)

Add autofilter to a worksheet.

Parâmetros

scope

Cell start and end coordinate string.

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName('test.xlsx')
->header(['name', 'age'])
->data($data)
->autoFilter('A1:B11') // auto filter
->output();
?>


Vtiful\Kernel\Excel constMemory

  • « Vtiful\Kernel\Excel::autoFilter
  • Vtiful\Kernel\Excel::__construct »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel constMemory

Vtiful\Kernel\Excel::constMemory

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::constMemory — Vtiful\Kernel\Excel constMemory

Descrição

public Vtiful\Kernel\Excel::constMemory(string $fileName, string $sheetName = ?)

Write a large file with constant memory usage.

Parâmetros

fileName

XLSX file name

sheetName

Worksheet name

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => '/home/viest'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $instance->constMemory('tutorial.xlsx', 'sheet');
?>


Vtiful\Kernel\Excel constructor

  • « Vtiful\Kernel\Excel::constMemory
  • Vtiful\Kernel\Excel::data »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel constructor

Vtiful\Kernel\Excel::__construct

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::__construct — Vtiful\Kernel\Excel constructor

Descrição

public Vtiful\Kernel\Excel::__construct(array $config)

Vtiful\Kernel\Excel constructor, create a class object.

Parâmetros

config

XLSX file export configuration

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => '/home/viest'
];

$excelObject = new \Vtiful\Kernel\Excel($config);
?>


Vtiful\Kernel\Excel data

  • « Vtiful\Kernel\Excel::__construct
  • Vtiful\Kernel\Excel::fileName »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel data

Vtiful\Kernel\Excel::data

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::data — Vtiful\Kernel\Excel data

Descrição

public Vtiful\Kernel\Excel::data(array $data)

Write a data in the worksheet.

Parâmetros

data

worksheet data

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
->header(['name', 'age'])
->data([
['viest', 23],
['wjx', 23],
]);
?>


Vtiful\Kernel\Excel fileName

  • « Vtiful\Kernel\Excel::data
  • Vtiful\Kernel\Excel::getHandle »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel fileName

Vtiful\Kernel\Excel::fileName

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::fileName — Vtiful\Kernel\Excel fileName

Descrição

public Vtiful\Kernel\Excel::fileName(string $fileName, string $sheetName = ?)

Create a brand new xlsx file and create a worksheet.

Parâmetros

fileName

XLSX file name

sheetName

Worksheet name

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => '/home/viest'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $instance->fileName('tutorial.xlsx', 'sheet');
?>


Vtiful\Kernel\Excel getHandle

  • « Vtiful\Kernel\Excel::fileName
  • Vtiful\Kernel\Excel::header »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel getHandle

Vtiful\Kernel\Excel::getHandle

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::getHandle — Vtiful\Kernel\Excel getHandle

Descrição

public Vtiful\Kernel\Excel::getHandle()

Get the xlsx text resource handle.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Resource

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
->header(['name', 'age']);

$handle = $file->getHandle();
?>


Vtiful\Kernel\Excel header

  • « Vtiful\Kernel\Excel::getHandle
  • Vtiful\Kernel\Excel::insertFormula »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel header

Vtiful\Kernel\Excel::header

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::header — Vtiful\Kernel\Excel header

Descrição

public Vtiful\Kernel\Excel::header(array $headerData)

Write a header in the worksheet.

Parâmetros

headerData

worksheet header data

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
->header(['name', 'age']);
?>


Vtiful\Kernel\Excel insertFormula

  • « Vtiful\Kernel\Excel::header
  • Vtiful\Kernel\Excel::insertImage »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel insertFormula

Vtiful\Kernel\Excel::insertFormula

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertFormula — Vtiful\Kernel\Excel insertFormula

Descrição

public Vtiful\Kernel\Excel::insertFormula(int $row, int $column, string $formula)

Insert calculation formula.

Parâmetros

row

cell row

column

cell column

formula

formula string

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx")
->header(['name', 'money']);

for($index = 1; $index < 10; $index++) {
$file->insertText($index, 0, 'viest');
$file->insertText($index, 1, 10);
}

$file->insertText(12, 0, "Total");
$file->insertFormula(12, 1, '=SUM(B2:B11)'); // insert formula

$file->output();


Vtiful\Kernel\Excel insertImage

  • « Vtiful\Kernel\Excel::insertFormula
  • Vtiful\Kernel\Excel::insertText »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel insertImage

Vtiful\Kernel\Excel::insertImage

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertImage — Vtiful\Kernel\Excel insertImage

Descrição

public Vtiful\Kernel\Excel::insertImage(int $row, int $column, string $localImagePath)

Insert a local image into the cell.

Parâmetros

row

cell row

column

cell column

localImagePath

local image path

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx");

$file->insertImage(5, 0, '/vagrant/ASW-G-66.jpg');

$file->output();


Vtiful\Kernel\Excel insertText

  • « Vtiful\Kernel\Excel::insertImage
  • Vtiful\Kernel\Excel::mergeCells »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel insertText

Vtiful\Kernel\Excel::insertText

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertText — Vtiful\Kernel\Excel insertText

Descrição

public Vtiful\Kernel\Excel::insertText(
int $row,
int $column,
int|float|string $data,
string $format = ?
)

Write text in a cell.

Parâmetros

row

cell row

column

cell column

data

data to be written

format

String format

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx")
->header(['name', 'money']);

for ($index = 0; $index < 10; $index++) {
$file->insertText($index+1, 0, 'viest');
$file->insertText($index+1, 1, 10000, '#,##0');
}

$textFile->output();


Vtiful\Kernel\Excel mergeCells

  • « Vtiful\Kernel\Excel::insertText
  • Vtiful\Kernel\Excel::output »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel mergeCells

Vtiful\Kernel\Excel::mergeCells

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::mergeCells — Vtiful\Kernel\Excel mergeCells

Descrição

public Vtiful\Kernel\Excel::mergeCells(string $scope, string $data)

Merge Cells.

Parâmetros

scope

cell start and end coordinate strings

data

string data

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$excel->fileName("test.xlsx")
->mergeCells('A1:C1', 'Merge cells')
->output();


Vtiful\Kernel\Excel output

  • « Vtiful\Kernel\Excel::mergeCells
  • Vtiful\Kernel\Excel::setColumn »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel output

Vtiful\Kernel\Excel::output

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::output — Vtiful\Kernel\Excel output

Descrição

public Vtiful\Kernel\Excel::output()

Output xlsx file to disk.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

XLSX file path;

Exemplos

Exemplo #1 example

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
->header(['name', 'age'])
->data([
['viest', 23],
['wjx', 23],
]);

$path = $file->output();
?>


Vtiful\Kernel\Excel setColumn

  • « Vtiful\Kernel\Excel::output
  • Vtiful\Kernel\Excel::setRow »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel setColumn

Vtiful\Kernel\Excel::setColumn

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::setColumn — Vtiful\Kernel\Excel setColumn

Descrição

public Vtiful\Kernel\Excel::setColumn(string $range, float $width, resource $format = ?)

Set the format of the column.

Parâmetros

range

cell start and end coordinate strings

width

column width

format

cell format resource

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 setColumn example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$boldStyle = $format->bold()->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setColumn('A:A', 200, $boldStyle)
->output();


Vtiful\Kernel\Excel setRow

  • « Vtiful\Kernel\Excel::setColumn
  • Vtiful\Kernel\Format »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel setRow

Vtiful\Kernel\Excel::setRow

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::setRow — Vtiful\Kernel\Excel setRow

Descrição

public Vtiful\Kernel\Excel::setRow(string $range, float $height, resource $format = ?)

Set the format of the row.

Parâmetros

range

cell start and end coordinate strings

height

row height

format

cell format resource

Valor Retornado

Vtiful\Kernel\Excel instance

Exemplos

Exemplo #1 setRow example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$boldStyle = $format->bold()->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setRow('A1', 20, $boldStyle)
->output();


The Vtiful\Kernel\Format class

(PECL xlswriter >= 1.2.1)

Introdução

Create a cell format object

Resumo da classe

class Vtiful\Kernel\Format {
/* Constantes */
const int FORMAT_ALIGN_LEFT = 1;
const int FORMAT_ALIGN_CENTER = 2;
const int FORMAT_ALIGN_RIGHT = 3;
const int FORMAT_ALIGN_FILL = 4;
const int FORMAT_ALIGN_JUSTIFY = 5;
const int FORMAT_ALIGN_CENTER_ACROSS = 6;
const int FORMAT_ALIGN_DISTRIBUTED = 7;
const int FORMAT_ALIGN_VERTICAL_TOP = 8;
const int FORMAT_ALIGN_VERTICAL_BOTTOM = 9;
const int FORMAT_ALIGN_VERTICAL_CENTER = 10;
const int FORMAT_ALIGN_VERTICAL_JUSTIFY = 11;
const int FORMAT_ALIGN_VERTICAL_DISTRIBUTED = 12;
const int UNDERLINE_SINGLE = 1;
const int UNDERLINE_DOUBLE = 2;
const int UNDERLINE_SINGLE_ACCOUNTING = 3;
const int UNDERLINE_DOUBLE_ACCOUNTING = 4;
/* Métodos */
public align(resource $handle, int $style)
public bold(resource $handle)
public italic(resource $handle)
public underline(resource $handle, int $style)
}

Constantes pré-definidas

Vtiful\Kernel\Format::FORMAT_ALIGN_LEFT

Vtiful\Kernel\Format::FORMAT_ALIGN_CENTER

Vtiful\Kernel\Format::FORMAT_ALIGN_RIGHT

Vtiful\Kernel\Format::FORMAT_ALIGN_FILL

Vtiful\Kernel\Format::FORMAT_ALIGN_JUSTIFY

Vtiful\Kernel\Format::FORMAT_ALIGN_CENTER_ACROSS

Vtiful\Kernel\Format::FORMAT_ALIGN_DISTRIBUTED

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_TOP

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_BOTTOM

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_CENTER

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_JUSTIFY

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_DISTRIBUTED

Vtiful\Kernel\Format::UNDERLINE_SINGLE

Vtiful\Kernel\Format::UNDERLINE_DOUBLE

Vtiful\Kernel\Format::UNDERLINE_SINGLE_ACCOUNTING

Vtiful\Kernel\Format::UNDERLINE_DOUBLE_ACCOUNTING

Índice

  • Vtiful\Kernel\Format::align — Vtiful\Kernel\Format align
  • Vtiful\Kernel\Format::bold — Vtiful\Kernel\Format bold
  • Vtiful\Kernel\Format::italic — Vtiful\Kernel\Format italic
  • Vtiful\Kernel\Format::underline — Vtiful\Kernel\Format underline


Vtiful\Kernel\Format align

  • « Vtiful\Kernel\Format
  • Vtiful\Kernel\Format::bold »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Vtiful\Kernel\Format align

Vtiful\Kernel\Format::align

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::align — Vtiful\Kernel\Format align

Descrição

public Vtiful\Kernel\Format::align(resource $handle, int $style)

set cell align

Parâmetros

handle

xlsx file handle

style

Vtiful\Kernel\Format constant

Valor Retornado

Resource

Exemplos

Exemplo #1 Align style example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$alignStyle = $format->align(\Vtiful\Kernel\Format::FORMAT_ALIGN_LEFT)->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setColumn('A:A', 200, $alignStyle)
->output();
?>


Vtiful\Kernel\Format bold

  • « Vtiful\Kernel\Format::align
  • Vtiful\Kernel\Format::italic »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Vtiful\Kernel\Format bold

Vtiful\Kernel\Format::bold

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::bold — Vtiful\Kernel\Format bold

Descrição

public Vtiful\Kernel\Format::bold(resource $handle)

Vtiful\Kernel\Format bold format

Parâmetros

handle

xlsx file handle

Valor Retornado

Resource

Exemplos

Exemplo #1 Bold style example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$boldStyle = $format->bold()->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setColumn('A:A', 200, $boldStyle)
->output();
?>


Vtiful\Kernel\Format italic

  • « Vtiful\Kernel\Format::bold
  • Vtiful\Kernel\Format::underline »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Vtiful\Kernel\Format italic

Vtiful\Kernel\Format::italic

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::italic — Vtiful\Kernel\Format italic

Descrição

public Vtiful\Kernel\Format::italic(resource $handle)

Vtiful\Kernel\Format italic format

Parâmetros

handle

xlsx file handle

Valor Retornado

Resource

Exemplos

Exemplo #1 Italic style example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$italicStyle = $format->italic()->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setColumn('A:A', 200, $italicStyle)
->output();
?>


Vtiful\Kernel\Format underline

  • « Vtiful\Kernel\Format::italic
  • Extensões para Controle de Processo »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Vtiful\Kernel\Format underline

Vtiful\Kernel\Format::underline

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::underline — Vtiful\Kernel\Format underline

Descrição

public Vtiful\Kernel\Format::underline(resource $handle, int $style)

Vtiful\Kernel\Format underline format

Parâmetros

handle

xlsx file handle

style

Vtiful\Kernel\Format constant

Valor Retornado

Resource

Exemplos

Exemplo #1 Underline style example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$underlineStyle = $format->underline(\Vtiful\Kernel\Format::UNDERLINE_SINGLE)->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setColumn('A:A', 200, $underlineStyle)
->output();
?>


Extensões para Controle de Processo

  • Eio
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Eio Funções
  • Ev
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Watchers
    • Watcher callbacks
    • Periodic watcher operation modes
    • Ev — The Ev class
    • EvCheck — The EvCheck class
    • EvChild — The EvChild class
    • EvEmbed — The EvEmbed class
    • EvFork — The EvFork class
    • EvIdle — The EvIdle class
    • EvIo — The EvIo class
    • EvLoop — The EvLoop class
    • EvPeriodic — The EvPeriodic class
    • EvPrepare — The EvPrepare class
    • EvSignal — The EvSignal class
    • EvStat — The EvStat class
    • EvTimer — The EvTimer class
    • EvWatcher — The EvWatcher class
  • Expect
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Expect Funções
  • PCNTL — Process Control
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • PCNTL Funções
  • POSIX
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • POSIX Funções
  • Execução de programa — Execução de programa do sistema
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções para Execução de programas
  • parallel
    • Introdução
    • Installation
    • Philosophy
    • Functional API
    • parallel\Runtime — The parallel\Runtime class
    • parallel\Future — The parallel\Future class
    • parallel\Channel — The parallel\Channel class
    • parallel\Events — The parallel\Events class
    • parallel\Events\Input — The parallel\Events\Input class
    • parallel\Events\Event — The parallel\Events\Event class
    • parallel\Events\Event\Type — The parallel\Events\Event\Type class
    • parallel\Sync — The parallel\Sync class
  • pthreads
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Threaded — The Threaded class
    • Thread — The Thread class
    • Worker — The Worker class
    • Collectable — The Collectable interface
    • Pool — The Pool class
    • Volatile — The Volatile class
  • Semaphore — Semaphore, Shared Memory and IPC
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Semaphore Funções
    • SysvMessageQueue — The SysvMessageQueue class
    • SysvSemaphore — The SysvSemaphore class
    • SysvSharedMemory — The SysvSharedMemory class
  • Memória Compartilhada
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções para Memória Compartilhada
    • Shmop — The Shmop class
  • Sync
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • SyncMutex — A classe SyncMutex
    • SyncSemaphore — A classe SyncSemaphore
    • SyncEvent — A classe SyncEvent
    • SyncReaderWriter — A classe SyncReaderWriter
    • SyncSharedMemory — A classe SyncSharedMemory


Eio

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Eio Funções
    • eio_busy — Artificially increase load. Could be useful in tests, benchmarking
    • eio_cancel — Cancels a request
    • eio_chmod — Change file/directory permissions
    • eio_chown — Change file/directory permissions
    • eio_close — Close file
    • eio_custom — Execute custom request like any other eio_* call
    • eio_dup2 — Duplicate a file descriptor
    • eio_event_loop — Polls libeio until all requests proceeded
    • eio_fallocate — Allows the caller to directly manipulate the allocated disk space for a file
    • eio_fchmod — Change file permissions
    • eio_fchown — Change file ownership
    • eio_fdatasync — Synchronize a file's in-core state with storage device
    • eio_fstat — Get file status
    • eio_fstatvfs — Get file system statistics
    • eio_fsync — Synchronize a file's in-core state with storage device
    • eio_ftruncate — Truncate a file
    • eio_futime — Change file last access and modification times
    • eio_get_event_stream — Get stream representing a variable used in internal communications with libeio
    • eio_get_last_error — Returns string describing the last error associated with a request resource
    • eio_grp_add — Adds a request to the request group
    • eio_grp_cancel — Cancels a request group
    • eio_grp_limit — Set group limit
    • eio_grp — Creates a request group
    • eio_init — (Re-)initialize Eio
    • eio_link — Create a hardlink for file
    • eio_lstat — Get file status
    • eio_mkdir — Create directory
    • eio_mknod — Create a special or ordinary file
    • eio_nop — Does nothing, except go through the whole request cycle
    • eio_npending — Returns number of finished, but unhandled requests
    • eio_nready — Returns number of not-yet handled requests
    • eio_nreqs — Returns number of requests to be processed
    • eio_nthreads — Returns number of threads currently in use
    • eio_open — Opens a file
    • eio_poll — Can be to be called whenever there are pending requests that need finishing
    • eio_read — Read from a file descriptor at given offset
    • eio_readahead — Perform file readahead into page cache
    • eio_readdir — Reads through a whole directory
    • eio_readlink — Read value of a symbolic link
    • eio_realpath — Get the canonicalized absolute pathname
    • eio_rename — Change the name or location of a file
    • eio_rmdir — Remove a directory
    • eio_seek — Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence
    • eio_sendfile — Transfer data between file descriptors
    • eio_set_max_idle — Set maximum number of idle threads
    • eio_set_max_parallel — Set maximum parallel threads
    • eio_set_max_poll_reqs — Set maximum number of requests processed in a poll
    • eio_set_max_poll_time — Set maximum poll time
    • eio_set_min_parallel — Set minimum parallel thread number
    • eio_stat — Get file status
    • eio_statvfs — Get file system statistics
    • eio_symlink — Create a symbolic link
    • eio_sync_file_range — Sync a file segment with disk
    • eio_sync — Commit buffer cache to disk
    • eio_syncfs — Calls Linux' syncfs syscall, if available
    • eio_truncate — Truncate a file
    • eio_unlink — Delete a name and possibly the file it refers to
    • eio_utime — Change file last access and modification times
    • eio_write — Write to file


Introdução

This extension provides asyncronous POSIX I/O by means of » libeio C library written by Marc Lehmann.

Nota: Esta extensão não está disponível em plataformas Windows.

Aviso

It is important to be aware that each request is executed in a thread, and the order of execution of continuously queued requests basically is unpredictable. For instance, the following piece of code is incorrect.

Exemplo #1 Incorrect requests

<?php
// Request to create symlink of $filename to $link
eio_symlink($filename, $link);

// Request to move $filename to $new_filename
eio_rename($filename, $new_filename);

// Process requests
eio_event_loop();
?>
In the example above eio_rename() request may finish before eio_symlink(). To fix it you might call eio_rename() in the callback of eio_symlink():

Exemplo #2 Calling request from a request callback

<?php
function my_symlink_done($filename, $result) {
// Request to move $filename to $new_filename
eio_rename($filename, "/path/to/new-name");

// Process requests
eio_event_loop();
}

// Request to create symlink of $filename to $link
eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_done", $filename);

// Process requests
eio_event_loop();
?>
Alternatively, you might want to create a request group:

Exemplo #3 Calling request from a request callback

<?php
/* Is called when the group requests are done */
function my_grp_done($data, $result) {
// ...
}

function my_symlink_done($filename, $result) {
// Create eio_rename request and add it to the group
$req = eio_rename($filename, "/path/to/new-name");
eio_grp_add($grp, $req);
// You might want to add more requests...
}

// Create a request group
$grp = eio_grp("my_grp_done", "my_grp_data");

// Create eio_symlink request and add it to the group
// Pass $filename to the callback
$req = eio_symlink($filename, $link,
EIO_PRI_DEFAULT, "my_symlink_done", $filename);
eio_grp_add($grp, $req);

// Process requests
eio_event_loop();
?>
Group is a special kind of request that could accumulate a set of regular eio requests. This could be used to create a complex request that opens, reads and closes a file.

Since version 0.3.0 alpha, a variable used in communications with libeio internally, could be retrieved with eio_get_event_stream(). The variable could be used to bind to an event loop supported by some other extension. You might organize a simple event loop where eio and libevent work together:

Exemplo #4 Using eio with libevent

<?php
function my_eio_poll($fd, $events, $arg) {
/* Some libevent regulation might go here .. */
if (eio_nreqs()) {
eio_poll();
}
/* .. and here */
}

function my_res_cb($d, $r) {
var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

// This stream is used to bind with libevent
$fd = eio_get_event_stream();

eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* some other eio_* calls here ... */

// set event flags
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// set event base
event_base_set($event, $base);

// enable event
event_add($event);

// start event loop
event_base_loop($base);

/* The same will be available via buffered libevent interface */
?>


Dependências

This extension has » libeio library embedded. So you do NOT need to install libeio separately.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/eio.

For information about manual installation, please read the file INSTALL included in the package.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

There are two resource types in this extension: request and request group.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Request priority constants:

EIO_PRI_MIN (int)
Request minimal prioriry
EIO_PRI_DEFAULT (int)
Request default prioriry
EIO_PRI_MAX (int)
Request maximal prioriry

eio_seek() whence argument:

EIO_SEEK_SET (int)
The offset is set to specified number of bytes(offset).
EIO_SEEK_CUR (int)
The offset is set to its current location plus offset bytes.
EIO_SEEK_END (int)
The offset is set to the size of the file plus offset bytes.

Flags used with eio_readdir():

EIO_READDIR_DENTS (int)
eio_readdir() flag. If specified, the result argument of the callback becomes an array with the following keys: 'names' - array of directory names 'dents' - array of struct eio_dirent-like arrays having the following keys each: 'name' - the directory name; 'type' - one of EIO_DT_* constants; 'inode' - the inode number, if available, otherwise unspecified;
EIO_READDIR_DIRS_FIRST (int)
When this flag is specified, the names will be returned in an order where likely directories come first, in optimal stat order.
EIO_READDIR_STAT_ORDER (int)
When this flag is specified, then the names will be returned in an order suitable for stat'ing each one. When planning to stat() all files in the given directory, the returned order will likely be fastest.
EIO_READDIR_FOUND_UNKNOWN (int)
EIO_DT_UNKNOWN (int)
Unknown node type(very common). Further stat() needed.
EIO_DT_FIFO (int)
FIFO node type
EIO_DT_CHR (int)
Node type
EIO_DT_MPC (int)
Multiplexed char device (v7+coherent) node type
EIO_DT_DIR (int)
Directory node type
EIO_DT_NAM (int)
Xenix special named file node type
EIO_DT_BLK (int)
Node type
EIO_DT_MPB (int)
Multiplexed block device (v7+coherent)
EIO_DT_REG (int)
Node type
EIO_DT_NWK (int)
EIO_DT_CMP (int)
HP-UX network special node type
EIO_DT_LNK (int)
Link node type
EIO_DT_SOCK (int)
Socket node type
EIO_DT_DOOR (int)
Solaris door node type
EIO_DT_WHT (int)
Node type
EIO_DT_MAX (int)
Highest node type value

Access modes for eio_open() flags argument:

EIO_O_RDONLY (int)
EIO_O_WRONLY (int)
EIO_O_RDWR (int)
EIO_O_NONBLOCK (int)
EIO_O_APPEND (int)
EIO_O_CREAT (int)
EIO_O_TRUNC (int)
EIO_O_EXCL (int)
EIO_O_FSYNC (int)

mode argument flags for eio_open():

EIO_S_IRUSR (int)
EIO_S_IWUSR (int)
EIO_S_IXUSR (int)
EIO_S_IRGRP (int)
EIO_S_IWGRP (int)
EIO_S_IXGRP (int)
EIO_S_IROTH (int)
EIO_S_IWOTH (int)
EIO_S_IXOTH (int)
EIO_S_IFREG (int)
EIO_S_IFCHR (int)
EIO_S_IFBLK (int)
EIO_S_IFIFO (int)
EIO_S_IFSOCK (int)

eio_sync_file_range() flags:

EIO_SYNC_FILE_RANGE_WAIT_BEFORE (int)
EIO_SYNC_FILE_RANGE_WRITE (int)
EIO_SYNC_FILE_RANGE_WAIT_AFTER (int)

eio_fallocate() flags:

EIO_FALLOC_FL_KEEP_SIZE (int)

Nota:

EIO_S_I* constants have the same meaning as their S_I* POSIX counterparts.

Nota:

EIO_SYNC_FILE_* constants have the same meaning as their SYNC_FILE_** counterparts.

Nota:

EIO_O_* constants have the same meaning as their O_* POSIX counterparts.


Exemplos

Exemplo #1 Cancelling a request

<?php
/* Is called when eio_nop() finished */
function my_nop_cb($data, $result) {
echo "my_nop ", $data, "\n";
}

// This eio_nop() call will be cancelled
$req = eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "1");
var_dump($req);
eio_cancel($req);

// This time eio_nop() will be processed
eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "2");

// Process requests
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

resource(4) of type (EIO Request Descriptor)
my_nop 2

Exemplo #2 Calling eio_chmod()

<?php
$temp_filename = dirname(__FILE__) ."/eio-temp-file.tmp";
touch($temp_filename);

/* Is called when eio_chmod() finished */
function my_chmod_callback($data, $result) {
global $temp_filename;

if ($result == 0 && !is_readable($temp_filename) && is_writable($temp_filename)) {
echo "eio_chmod_ok";
}

@unlink($temp_filename);
}

eio_chmod($temp_filename, 0200, EIO_PRI_DEFAULT, "my_chmod_callback");
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

eio_chmod_ok

Exemplo #3 Making a custom request

<?php
/* Callback for the custom callback */
function my_custom_callback($data, $result) {
var_dump($data);
var_dump(count($result));
var_dump($result['data_modified']);
var_dump($result['result']);
}

/* The custom request */
function my_custom($data) {
var_dump($data);

$result = array(
'result' => 1001,
'data_modified' => "my custom data",
);

return $result;
}

$data = "my_custom_data";
$req = eio_custom("my_custom", EIO_PRI_DEFAULT, "my_custom_callback", $data);
var_dump($req);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

resource(4) of type (EIO Request Descriptor)
string(14) "my_custom_data"
string(14) "my_custom_data"
int(2)
string(14) "my custom data"
int(1001)

Exemplo #4 Grouping requests

<?php
/*
* Create a group request to open, read and close a file
*/

$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);

/* Is called when the group requests are done */
function my_grp_done($data, $result) {
global $temp_filename;
var_dump($result == 0);
@unlink($temp_filename);
}

/* Is called when eio_open() done */
function my_grp_file_opened_callback($data, $result) {
global $my_file_fd, $grp;

$my_file_fd = $result;

var_dump($result > 0);

// Create eio_read() request and add it to the group
$req = eio_read($my_file_fd, 4, 0, EIO_PRI_DEFAULT, "my_grp_file_read_callback");
eio_grp_add($grp, $req);
}

/* Is called when eio_read() done */
function my_grp_file_read_callback($data, $result) {
global $my_file_fd, $grp;

var_dump($result);

// Create eio_close() request and add it to the group
$req = eio_close($my_file_fd);
eio_grp_add($grp, $req);
}

$grp = eio_grp("my_grp_done", "my_grp_data");

// Create eio_open() request and add it to the group
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);
eio_grp_add($grp, $req);
var_dump($grp);

eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)

Exemplo #5 Using eio with libevent extension

<?php
function my_eio_poll($fd, $events, $arg) {
/* Some libevent regulation might go here .. */
if (eio_nreqs()) {
eio_poll();
}
/* .. and here */
}

function my_nop_cb($d, $r) {
var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

$fd = eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_nop_cb", "nop data");
/* some other eio_* calls here ... */

// set event flags
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// set event base
event_base_set($event, $base);

// enable event
event_add($event);

// start event loop
event_base_loop($base);

/* The same will be available via buffered libevent interface */
?>

O exemplo acima produzirá algo semelhante a:

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"

Exemplo #6 Using eio with event extension

<?php
$base = new EventBase();

// Retrieve eio polling stream.
// Note, this variable should be alive as long as the event loop is running.
$eio_stream = eio_get_event_stream();

// Bind eio polling stream to the event loop.
$poll_event = new Event($base, $eio_stream, Event::READ, function () {
if (eio_nreqs()) {
eio_poll();
}
});
$poll_event->add();

// Add eio jobs
eio_nop(EIO_PRI_DEFAULT, function () {
echo "eio_nop\n";
});

// Add events
$timer = Event::timer($base, function () {
echo "2 seconds elapsed\n";
});
$timer->add(2);

// Dispatch events.
$base->dispatch();
?>

O exemplo acima produzirá algo semelhante a:

eio_nop
2 seconds elapsed


Eio Funções

Índice

  • eio_busy — Artificially increase load. Could be useful in tests, benchmarking
  • eio_cancel — Cancels a request
  • eio_chmod — Change file/directory permissions
  • eio_chown — Change file/directory permissions
  • eio_close — Close file
  • eio_custom — Execute custom request like any other eio_* call
  • eio_dup2 — Duplicate a file descriptor
  • eio_event_loop — Polls libeio until all requests proceeded
  • eio_fallocate — Allows the caller to directly manipulate the allocated disk space for a file
  • eio_fchmod — Change file permissions
  • eio_fchown — Change file ownership
  • eio_fdatasync — Synchronize a file's in-core state with storage device
  • eio_fstat — Get file status
  • eio_fstatvfs — Get file system statistics
  • eio_fsync — Synchronize a file's in-core state with storage device
  • eio_ftruncate — Truncate a file
  • eio_futime — Change file last access and modification times
  • eio_get_event_stream — Get stream representing a variable used in internal communications with libeio
  • eio_get_last_error — Returns string describing the last error associated with a request resource
  • eio_grp_add — Adds a request to the request group
  • eio_grp_cancel — Cancels a request group
  • eio_grp_limit — Set group limit
  • eio_grp — Creates a request group
  • eio_init — (Re-)initialize Eio
  • eio_link — Create a hardlink for file
  • eio_lstat — Get file status
  • eio_mkdir — Create directory
  • eio_mknod — Create a special or ordinary file
  • eio_nop — Does nothing, except go through the whole request cycle
  • eio_npending — Returns number of finished, but unhandled requests
  • eio_nready — Returns number of not-yet handled requests
  • eio_nreqs — Returns number of requests to be processed
  • eio_nthreads — Returns number of threads currently in use
  • eio_open — Opens a file
  • eio_poll — Can be to be called whenever there are pending requests that need finishing
  • eio_read — Read from a file descriptor at given offset
  • eio_readahead — Perform file readahead into page cache
  • eio_readdir — Reads through a whole directory
  • eio_readlink — Read value of a symbolic link
  • eio_realpath — Get the canonicalized absolute pathname
  • eio_rename — Change the name or location of a file
  • eio_rmdir — Remove a directory
  • eio_seek — Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence
  • eio_sendfile — Transfer data between file descriptors
  • eio_set_max_idle — Set maximum number of idle threads
  • eio_set_max_parallel — Set maximum parallel threads
  • eio_set_max_poll_reqs — Set maximum number of requests processed in a poll
  • eio_set_max_poll_time — Set maximum poll time
  • eio_set_min_parallel — Set minimum parallel thread number
  • eio_stat — Get file status
  • eio_statvfs — Get file system statistics
  • eio_symlink — Create a symbolic link
  • eio_sync_file_range — Sync a file segment with disk
  • eio_sync — Commit buffer cache to disk
  • eio_syncfs — Calls Linux' syncfs syscall, if available
  • eio_truncate — Truncate a file
  • eio_unlink — Delete a name and possibly the file it refers to
  • eio_utime — Change file last access and modification times
  • eio_write — Write to file


Artificially increase load. Could be useful in tests, benchmarking

  • « Eio Funções
  • eio_cancel »
  • PHP Manual
  • Eio Funções
  • Artificially increase load. Could be useful in tests, benchmarking

eio_busy

(PECL eio >= 0.0.1dev)

eio_busy — Artificially increase load. Could be useful in tests, benchmarking

Descrição

eio_busy(
int $delay,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_busy() artificially increases load taking delay seconds to execute. May be used for debugging, or benchmarking.

Parâmetros

delay

Delay in seconds

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

This callback is called when all the group requests are done.

data

Arbitrary variable passed to callback.

Valor Retornado

eio_busy() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_nop() - Does nothing, except go through the whole request cycle


Cancels a request

  • « eio_busy
  • eio_chmod »
  • PHP Manual
  • Eio Funções
  • Cancels a request

eio_cancel

(PECL eio >= 0.0.1dev)

eio_cancel — Cancels a request

Descrição

eio_cancel(resource $req): void

eio_cancel() cancels a request specified by req

Parâmetros

req

The request resource

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 eio_cancel() example

<?php
/* Is called when eio_nop() finished */
function my_nop_cb($data, $result) {
echo "my_nop ", $data, "\n";
}

// This eio_nop() call will be cancelled
$req = eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "1");
var_dump($req);
eio_cancel($req);

// This time eio_nop() will be processed
eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "2");

// Process requests
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

resource(4) of type (EIO Request Descriptor)
my_nop 2

Veja Também

  • eio_grp_cancel() - Cancels a request group


Change file/directory permissions

  • « eio_cancel
  • eio_chown »
  • PHP Manual
  • Eio Funções
  • Change file/directory permissions

eio_chmod

(PECL eio >= 0.0.1dev)

eio_chmod — Change file/directory permissions

Descrição

eio_chmod(
string $path,
int $mode,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_chmod() changes file, or directory permissions. The new permissions are specified by mode.

Parâmetros

path

Path to the target file or directory

Aviso

Evite caminhos relativos

mode

The new permissions. E.g. 0644.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_chmod() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_chown() - Change file/directory permissions


Change file/directory permissions

  • « eio_chmod
  • eio_close »
  • PHP Manual
  • Eio Funções
  • Change file/directory permissions

eio_chown

(PECL eio >= 0.0.1dev)

eio_chown — Change file/directory permissions

Descrição

eio_chown(
string $path,
int $uid,
int $gid = -1,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

Changes file, or directory permissions.

Parâmetros

path

Path to file or directory.

Aviso

Evite caminhos relativos

uid

User ID. Is ignored when equal to -1.

gid

Group ID. Is ignored when equal to -1.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_chown() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_chmod() - Change file/directory permissions


Close file

  • « eio_chown
  • eio_custom »
  • PHP Manual
  • Eio Funções
  • Close file

eio_close

(PECL eio >= 0.0.1dev)

eio_close — Close file

Descrição

eio_close(
mixed $fd,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_close() closes file specified by fd.

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_close() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_open() - Opens a file


Execute custom request like any other eio_* call

  • « eio_close
  • eio_dup2 »
  • PHP Manual
  • Eio Funções
  • Execute custom request like any other eio_* call

eio_custom

(PECL eio >= 0.0.1dev)

eio_custom — Execute custom request like any other eio_* call

Descrição

eio_custom(
callable $execute,
int $pri,
callable $callback,
mixed $data = NULL
): resource

eio_custom() executes custom function specified by execute processing it just like any other eio_* call.

Parâmetros

execute

Specifies the request function that should match the following prototype:

      mixed execute(mixed data);
callback is event completion callback that should match the following prototype:
      void callback(mixed data, mixed result);
data is the data passed to execute via data argument without modifications result value returned by execute

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_custom() returns request resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 eio_custom() example

<?php
/* Callback for the custom callback */
function my_custom_callback($data, $result) {
var_dump($data);
var_dump(count($result));
var_dump($result['data_modified']);
var_dump($result['result']);
}

/* The custom request */
function my_custom($data) {
var_dump($data);

$result = array(
'result' => 1001,
'data_modified' => "my custom data",
);

return $result;
}

$data = "my_custom_data";
$req = eio_custom("my_custom", EIO_PRI_DEFAULT, "my_custom_callback", $data);
var_dump($req);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

resource(4) of type (EIO Request Descriptor)
string(14) "my_custom_data"
string(14) "my_custom_data"
int(2)
string(14) "my custom data"
int(1001)


Duplicate a file descriptor

  • « eio_custom
  • eio_event_loop »
  • PHP Manual
  • Eio Funções
  • Duplicate a file descriptor

eio_dup2

(PECL eio >= 0.0.1dev)

eio_dup2 — Duplicate a file descriptor

Descrição

eio_dup2(
mixed $fd,
mixed $fd2,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_dup2() duplicates file descriptor.

Parâmetros

fd

Source stream, Socket resource, or numeric file descriptor

fd2

Target stream, Socket resource, or numeric file descriptor

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_dup2() returns request resource on success, ou false em caso de falha.


Polls libeio until all requests proceeded

  • « eio_dup2
  • eio_fallocate »
  • PHP Manual
  • Eio Funções
  • Polls libeio until all requests proceeded

eio_event_loop

(PECL eio >= 0.0.1dev)

eio_event_loop — Polls libeio until all requests proceeded

Descrição

eio_event_loop(): bool

eio_event_loop() polls libeio until all requests proceeded.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

eio_event_loop() returns true on success, ou false em caso de falha.

Exemplos

Exemplo #1 eio_event_loop() example

<?php
$temp_filename = "eio-temp-file.tmp";
touch($temp_filename);

/* Is called when eio_chmod() finished */
function my_chmod_callback($data, $result) {
global $temp_filename;

if ($result == 0 && !is_readable($temp_filename) && is_writable($temp_filename)) {
echo "eio_chmod_ok";
}

@unlink($temp_filename);
}

eio_chmod($temp_filename, 0200, EIO_PRI_DEFAULT, "my_chmod_callback");
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

eio_chmod_ok

Veja Também

  • eio_poll() - Can be to be called whenever there are pending requests that need finishing


Allows the caller to directly manipulate the allocated disk space for a file

  • « eio_event_loop
  • eio_fchmod »
  • PHP Manual
  • Eio Funções
  • Allows the caller to directly manipulate the allocated disk space for a file

eio_fallocate

(PECL eio >= 0.0.1dev)

eio_fallocate — Allows the caller to directly manipulate the allocated disk space for a file

Descrição

eio_fallocate(
mixed $fd,
int $mode,
int $offset,
int $length,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_fallocate() allows the caller to directly manipulate the allocated disk space for the file specified by fd file descriptor for the byte range starting at offset and continuing for length bytes.

Nota: File should be opened for writing

EIO_O_CREAT should be logically OR'd with EIO_O_WRONLY, or EIO_O_RDWR

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open().

mode

Currently only one flag is supported for mode: EIO_FALLOC_FL_KEEP_SIZE (the same as POSIX constant FALLOC_FL_KEEP_SIZE).

offset

Specifies start of the byte range.

length

Specifies length the byte range.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_fallocate() returns request resource on success, ou false em caso de falha.


Change file permissions

  • « eio_fallocate
  • eio_fchown »
  • PHP Manual
  • Eio Funções
  • Change file permissions

eio_fchmod

(PECL eio >= 0.0.1dev)

eio_fchmod — Change file permissions

Descrição

eio_fchmod(
mixed $fd,
int $mode,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_fchmod() changes permissions for the file specified by fd file descriptor.

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open().

mode

The new permissions. E.g. 0644.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_fchmod() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_fchown() - Change file ownership


Change file ownership

  • « eio_fchmod
  • eio_fdatasync »
  • PHP Manual
  • Eio Funções
  • Change file ownership

eio_fchown

(PECL eio >= 0.0.1dev)

eio_fchown — Change file ownership

Descrição

eio_fchown(
mixed $fd,
int $uid,
int $gid = -1,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_fchown() changes ownership of the file specified by fd file descriptor.

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor.

uid

User ID. Is ignored when equal to -1.

gid

Group ID. Is ignored when equal to -1.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_chmod() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_fchmod() - Change file permissions


Synchronize a file's in-core state with storage device

  • « eio_fchown
  • eio_fstat »
  • PHP Manual
  • Eio Funções
  • Synchronize a file's in-core state with storage device

eio_fdatasync

(PECL eio >= 0.0.1dev)

eio_fdatasync — Synchronize a file's in-core state with storage device

Descrição

eio_fdatasync(
mixed $fd,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_fdatasync() synchronizes a file's in-core state with storage device.

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open().

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_fdatasync() returns request resource on success, ou false em caso de falha.


Get file status

  • « eio_fdatasync
  • eio_fstatvfs »
  • PHP Manual
  • Eio Funções
  • Get file status

eio_fstat

(PECL eio >= 0.0.1dev)

eio_fstat — Get file status

Descrição

eio_fstat(
mixed $fd,
int $pri,
callable $callback,
mixed $data = ?
): resource

eio_fstat() returns file status information in result argument of callback

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_busy() returns request resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 eio_lstat() example

<?php
// Create temporary file
$tmp_filename = dirname(__FILE__) ."/eio-file.tmp";
touch($tmp_filename);

/* Is called when eio_fstat() done */
function my_res_cb($data, $result) {
// Should output array with stat info
var_dump($result);

if ($data['fd']) {
// Close temporary file
eio_close($data['fd']);
eio_event_loop();
}
// Remove temporary file
@unlink($data['file']);
}

/* Is called when eio_open() done */
function my_open_cb($data, $result) {
// Prepare data for callback
$d = array(
'fd' => $result,
'file'=> $data
);
// Request stat info
eio_fstat($result, EIO_PRI_DEFAULT, "my_res_cb", $d);
// Process request(s)
eio_event_loop();
}

// Open temporary file
eio_open($tmp_filename, EIO_O_RDONLY, NULL, EIO_PRI_DEFAULT,
"my_open_cb", $tmp_filename);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

array(12) {
 ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2489159)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318239506)
  ["st_mtime"]=>
  int(1318239506)
  ["st_ctime"]=>
  int(1318239506)
}

Veja Também

  • eio_lstat() - Get file status
  • eio_stat() - Get file status


Get file system statistics

  • « eio_fstat
  • eio_fsync »
  • PHP Manual
  • Eio Funções
  • Get file system statistics

eio_fstatvfs

(PECL eio >= 0.0.1dev)

eio_fstatvfs — Get file system statistics

Descrição

eio_fstatvfs(
mixed $fd,
int $pri,
callable $callback,
mixed $data = ?
): resource

eio_fstatvfs() returns file system statistics in result of callback.

Parâmetros

fd

A file descriptor of a file within the mounted file system.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_fstatvfs() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_statvfs() - Get file system statistics


Synchronize a file's in-core state with storage device

  • « eio_fstatvfs
  • eio_ftruncate »
  • PHP Manual
  • Eio Funções
  • Synchronize a file's in-core state with storage device

eio_fsync

(PECL eio >= 0.0.1dev)

eio_fsync — Synchronize a file's in-core state with storage device

Descrição

eio_fsync(
mixed $fd,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

Synchronize a file's in-core state with storage device

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_fsync() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_sync() - Commit buffer cache to disk


Truncate a file

  • « eio_fsync
  • eio_futime »
  • PHP Manual
  • Eio Funções
  • Truncate a file

eio_ftruncate

(PECL eio >= 0.0.1dev)

eio_ftruncate — Truncate a file

Descrição

eio_ftruncate(
mixed $fd,
int $offset = 0,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_ftruncate() causes a regular file referenced by fd file descriptor to be truncated to precisely length bytes.

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor.

offset

Offset from beginning of the file

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_ftruncate() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_truncate() - Truncate a file


Change file last access and modification times

  • « eio_ftruncate
  • eio_get_event_stream »
  • PHP Manual
  • Eio Funções
  • Change file last access and modification times

eio_futime

(PECL eio >= 0.0.1dev)

eio_futime — Change file last access and modification times

Descrição

eio_futime(
mixed $fd,
float $atime,
float $mtime,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_futime() changes file last access and modification times.

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open()

atime

Access time

mtime

Modification time

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_futime() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_utime() - Change file last access and modification times


Get stream representing a variable used in internal communications with libeio

  • « eio_futime
  • eio_get_last_error »
  • PHP Manual
  • Eio Funções
  • Get stream representing a variable used in internal communications with libeio

eio_get_event_stream

(PECL eio >= 0.3.1b)

eio_get_event_stream — Get stream representing a variable used in internal communications with libeio

Descrição

eio_get_event_stream(): mixed

eio_get_event_stream() acquires stream representing a variable used in internal communications with libeio. Could be used to bind with some event loop provided by other PECL extension, for example libevent.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

eio_get_event_stream() returns stream on success; otherwise, null

Exemplos

Exemplo #1 Using eio with libevent

<?php
function my_eio_poll($fd, $events, $arg) {
/* Some libevent regulation might go here .. */
if (eio_nreqs()) {
eio_poll();
}
/* .. and here */
}

function my_res_cb($d, $r) {
var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

$fd = eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* some other eio_* calls here ... */

// set event flags
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// set event base
event_base_set($event, $base);

// enable event
event_add($event);

// start event loop
event_base_loop($base);

/* The same will be available via buffered libevent interface */
?>

O exemplo acima produzirá algo semelhante a:

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"


Returns string describing the last error associated with a request resource

  • « eio_get_event_stream
  • eio_grp_add »
  • PHP Manual
  • Eio Funções
  • Returns string describing the last error associated with a request resource

eio_get_last_error

(PECL eio >= 1.0.0)

eio_get_last_error — Returns string describing the last error associated with a request resource

Descrição

eio_get_last_error(resource $req): string

eio_get_last_error() returns string describing the last error associated with req.

Parâmetros

req

The request resource

Valor Retornado

eio_get_last_error() returns string describing the last error associated with the request resource specified by req.

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Adds a request to the request group

  • « eio_get_last_error
  • eio_grp_cancel »
  • PHP Manual
  • Eio Funções
  • Adds a request to the request group

eio_grp_add

(PECL eio >= 0.0.1dev)

eio_grp_add — Adds a request to the request group

Descrição

eio_grp_add(resource $grp, resource $req): void

eio_grp_add() adds a request to the request group.

Parâmetros

grp

The request group resource returned by eio_grp()

req

The request resource

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Grouping requests

<?php
/*
* Create a group request to open, read and close a file
*/

// Create temporary file and write some bytes to it
$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);

/* Is called when the group requests are done */
function my_grp_done($data, $result) {
var_dump($result == 0);
@unlink($data);
}

/* Is called when eio_open() done */
function my_grp_file_opened_callback($data, $result) {
global $grp;

// $result should contain the file descriptor
var_dump($result > 0);

// Create eio_read() request and add it to the group
// Pass file descriptor to the callback
$req = eio_read($result, 4, 0,
EIO_PRI_DEFAULT, "my_grp_file_read_callback", $result);
eio_grp_add($grp, $req);
}

/* Is called when eio_read() done */
function my_grp_file_read_callback($data, $result) {
global $grp;

// Read bytes
var_dump($result);

// Create eio_close() request and add it to the group
// $data should contain the file descriptor
$req = eio_close($data);
eio_grp_add($grp, $req);
}

// Create request group
$grp = eio_grp("my_grp_done", $temp_filename);
var_dump($grp);

// Create eio_open() request and add it to the group
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);
eio_grp_add($grp, $req);

// Process requests
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)

Veja Também

  • eio_grp() - Creates a request group
  • eio_grp_cancel() - Cancels a request group
  • eio_grp_limit() - Set group limit


Cancels a request group

  • « eio_grp_add
  • eio_grp_limit »
  • PHP Manual
  • Eio Funções
  • Cancels a request group

eio_grp_cancel

(PECL eio >= 0.0.1dev)

eio_grp_cancel — Cancels a request group

Descrição

eio_grp_cancel(resource $grp): void

eio_grp_cancel() cancels a group request specified by grp request group resource.

Parâmetros

grp

The request group resource returned by eio_grp().

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • eio_grp() - Creates a request group
  • eio_grp_add() - Adds a request to the request group


Set group limit

  • « eio_grp_cancel
  • eio_grp »
  • PHP Manual
  • Eio Funções
  • Set group limit

eio_grp_limit

(PECL eio >= 0.0.1dev)

eio_grp_limit — Set group limit

Descrição

eio_grp_limit(resource $grp, int $limit): void

Limit number of requests in the request group.

Parâmetros

grp

The request group resource.

limit

Number of requests in the group.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • eio_grp_add() - Adds a request to the request group


Creates a request group

  • « eio_grp_limit
  • eio_init »
  • PHP Manual
  • Eio Funções
  • Creates a request group

eio_grp

(PECL eio >= 0.0.1dev)

eio_grp — Creates a request group

Descrição

eio_grp(callable $callback, string $data = NULL): resource

eio_grp() creates a request group.

Parâmetros

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_grp() returns request group resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 eio_grp() example

<?php
$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);
$my_file_fd = NULL;

/* Is called when the group requests are done */
function my_grp_done($data, $result) {
// Remove the file, if it still exists
@unlink($data);
}

/* Is called when the temporary file is opened */
function my_grp_file_opened_callback($data, $result) {
global $my_file_fd, $grp;

$my_file_fd = $result;

$req = eio_read($my_file_fd, 4, 0,
EIO_PRI_DEFAULT, "my_grp_file_read_callback");
eio_grp_add($grp, $req);
}

/* Is called when the file is read */
function my_grp_file_read_callback($data, $result) {
global $my_file_fd, $grp;

var_dump($result);

// Create request to close the file
$req = eio_close($my_file_fd);

// Add request to the group
eio_grp_add($grp, $req);
}

// Create request group
$grp = eio_grp("my_grp_done", $temp_filename);

// Create request
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);

// Add request to the group
eio_grp_add($grp, $req);

// Process requests
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

string(4) "some"

Veja Também

  • eio_grp_cancel() - Cancels a request group
  • eio_grp_add() - Adds a request to the request group


(Re-)initialize Eio

  • « eio_grp
  • eio_link »
  • PHP Manual
  • Eio Funções
  • (Re-)initialize Eio

eio_init

(PECL eio = 1.0.0)

eio_init — (Re-)initialize Eio

Descrição

eio_init(): void

eio_init() (re-)initializes Eio. It allocates memory for internal structures of libeio and Eio itself. You may call eio_init() before using Eio functions. Otherwise it will be called internally first time you invoke an Eio function in a process.

Nota:

This function was removed in version 3.0.0RC1 of the eio extension for PHP version 8 and higher.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Create a hardlink for file

  • « eio_init
  • eio_lstat »
  • PHP Manual
  • Eio Funções
  • Create a hardlink for file

eio_link

(PECL eio >= 0.0.1dev)

eio_link — Create a hardlink for file

Descrição

eio_link(
string $path,
string $new_path,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_link() creates a hardlink new_path for a file specified by path.

Parâmetros

path

Source file path.

new_path

Target file path.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

Exemplos

Exemplo #1 eio_link() example

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";
$hardlink = dirname(__FILE__)."/hardlink.link";

function my_hardlink_cb($data, $result) {
global $link, $filename;
var_dump(file_exists($data) && !is_link($data));
@unlink($data);

eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
}

function my_symlink_cb($data, $result) {
global $link, $filename;
var_dump(file_exists($data) && is_link($data));

if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
@unlink($link);
@unlink($filename);
}
}

function my_readlink_cb($data, $result) {
global $filename, $link;
var_dump($result);

@unlink($link);
@unlink($filename);
}

eio_link($filename, $hardlink, EIO_PRI_DEFAULT, "my_hardlink_cb", $hardlink);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
string(%d) "%ssymlink.dat"

Veja Também

  • eio_symlink() - Create a symbolic link


Get file status

  • « eio_link
  • eio_mkdir »
  • PHP Manual
  • Eio Funções
  • Get file status

eio_lstat

(PECL eio >= 0.0.1dev)

eio_lstat — Get file status

Descrição

eio_lstat(
string $path,
int $pri,
callable $callback,
mixed $data = NULL
): resource

eio_lstat() returns file status information in result argument of callback

Parâmetros

path

The file path

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_lstat() returns request resource on success or false on error.

Exemplos

Exemplo #1 eio_lstat() example

<?php
$tmp_filename = dirname(__FILE__). "/eio-file.tmp";
touch($tmp_filename);

function my_res_cb($data, $result) {
var_dump($data);
var_dump($result);
}

function my_open_cb($data, $result) {
eio_close($result);
eio_event_loop();

@unlink($data);
}

eio_lstat($tmp_filename, EIO_PRI_DEFAULT, "my_res_cb", "eio_lstat");
eio_open($tmp_filename, EIO_O_RDONLY, NULL,
EIO_PRI_DEFAULT, "my_open_cb", $tmp_filename);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

string(9) "eio_lstat"
array(12) {
 ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2099197)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318235777)
  ["st_mtime"]=>
  int(1318235777)
  ["st_ctime"]=>
  int(1318235777)
}

Veja Também

  • eio_stat() - Get file status
  • eio_fstat() - Get file status


Create directory

  • « eio_lstat
  • eio_mknod »
  • PHP Manual
  • Eio Funções
  • Create directory

eio_mkdir

(PECL eio >= 0.0.1dev)

eio_mkdir — Create directory

Descrição

eio_mkdir(
string $path,
int $mode,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_mkdir() creates directory with specified access mode.

Parâmetros

path

Path for the new directory.

mode

Access mode, e.g. 0755

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_mkdir() returns request resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 eio_mkdir() example

<?php
$temp_dirname = "eio-temp-dir";

/* Is called when eio_mkdir() finishes */
function my_mkdir_callback($data, $result) {
if ($result == 0 && is_dir($temp_dirname)
&& !is_readable($temp_dirname)
&& is_writable($temp_dirname)) {
echo "eio_mkdir_ok";
}

// Remove directory
if (file_exists($data))
rmdir($temp_dirname);
}

// Create directory with access mode 0300
eio_mkdir($temp_dirname, 0300, EIO_PRI_DEFAULT, "my_mkdir_callback", $temp_dirname);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

eio_mkdir_ok

Veja Também

  • eio_rmdir() - Remove a directory


Create a special or ordinary file

  • « eio_mkdir
  • eio_nop »
  • PHP Manual
  • Eio Funções
  • Create a special or ordinary file

eio_mknod

(PECL eio >= 0.0.1dev)

eio_mknod — Create a special or ordinary file

Descrição

eio_mknod(
string $path,
int $mode,
int $dev,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_mknod() creates ordinary or special(often) file.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

path

Path for the new node(file).

mode

Specifies both the permissions to use and the type of node to be created. It should be a combination (using bitwise OR) of one of the file types listed below and the permissions for the new node(e.g. 0640). Possible file types are: EIO_S_IFREG(regular file), EIO_S_IFCHR(character file), EIO_S_IFBLK(block special file), EIO_S_IFIFO(FIFO - named pipe) and EIO_S_IFSOCK(UNIX domain socket). To specify permissions EIO_S_I* constants could be used.

dev

If the file type is EIO_S_IFCHR or EIO_S_IFBLK then dev specifies the major and minor numbers of the newly created device special file. Otherwise dev ignored. See mknod(2) man page for details.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_mknod() returns request resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 eio_mknod() example

<?php
// FIFO name
$temp_filename = "/tmp/eio-temp-fifo";

/* Is called when eio_mknod() finishes */
function my_mknod_callback($data, $result) {
$s = stat($data);
var_dump($s);

if ($result == 0) {
echo "eio_mknod_ok";
}

@unlink($data);
}

eio_mknod($temp_filename, EIO_S_IFIFO, 0,
EIO_PRI_DEFAULT, "my_mknod_callback", $temp_filename);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

array(26) {
  [0]=>
  int(17)
  [1]=>
  int(2337608)
  [2]=>
  int(4096)
  [3]=>
  int(1)
  [4]=>
  int(1000)
  [5]=>
  int(100)
  [6]=>
  int(0)
  [7]=>
  int(0)
  [8]=>
  int(1318241261)
  [9]=>
  int(1318241261)
  [10]=>
  int(1318241261)
  [11]=>
  int(4096)
  [12]=>
  int(0)
  ["dev"]=>
  int(17)
  ["ino"]=>
  int(2337608)
  ["mode"]=>
  int(4096)
  ["nlink"]=>
  int(1)
  ["uid"]=>
  int(1000)
  ["gid"]=>
  int(100)
  ["rdev"]=>
  int(0)
  ["size"]=>
  int(0)
  ["atime"]=>
  int(1318241261)
  ["mtime"]=>
  int(1318241261)
  ["ctime"]=>
  int(1318241261)
  ["blksize"]=>
  int(4096)
  ["blocks"]=>
  int(0)
}
eio_mknod_ok

Veja Também

  • eio_open() - Opens a file


Does nothing, except go through the whole request cycle

  • « eio_mknod
  • eio_npending »
  • PHP Manual
  • Eio Funções
  • Does nothing, except go through the whole request cycle

eio_nop

(PECL eio >= 0.0.1dev)

eio_nop — Does nothing, except go through the whole request cycle

Descrição

eio_nop(int $pri = EIO_PRI_DEFAULT, callable $callback = NULL, mixed $data = NULL): resource

eio_nop() does nothing, except go through the whole request cycle. Could be useful in debugging.

Parâmetros

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_nop() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_busy() - Artificially increase load. Could be useful in tests, benchmarking


Returns number of finished, but unhandled requests

  • « eio_nop
  • eio_nready »
  • PHP Manual
  • Eio Funções
  • Returns number of finished, but unhandled requests

eio_npending

(PECL eio >= 0.0.1dev)

eio_npending — Returns number of finished, but unhandled requests

Descrição

eio_npending(): int

eio_npending() returns number of finished, but unhandled requests

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

eio_npending() returns number of finished, but unhandled requests.

Veja Também

  • eio_nreqs() - Returns number of requests to be processed
  • eio_nready() - Returns number of not-yet handled requests
  • eio_nthreads() - Returns number of threads currently in use


Returns number of not-yet handled requests

  • « eio_npending
  • eio_nreqs »
  • PHP Manual
  • Eio Funções
  • Returns number of not-yet handled requests

eio_nready

(PECL eio >= 0.0.1dev)

eio_nready — Returns number of not-yet handled requests

Descrição

eio_nready(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

eio_nready() returns number of not-yet handled requests

Veja Também

  • eio_nreqs() - Returns number of requests to be processed
  • eio_nready()
  • eio_nthreads() - Returns number of threads currently in use


Returns number of requests to be processed

  • « eio_nready
  • eio_nthreads »
  • PHP Manual
  • Eio Funções
  • Returns number of requests to be processed

eio_nreqs

(PECL eio >= 0.0.1dev)

eio_nreqs — Returns number of requests to be processed

Descrição

eio_nreqs(): int

eio_nreqs() could be called in a custom loop calling eio_poll().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

eio_nreqs() returns number of requests to be processed.

Exemplos

Exemplo #1 eio_nreqs() example

<?php
function res_cb($data, $result) {
var_dump($data);
var_dump($result);
}

eio_nop(EIO_PRI_DEFAULT, "res_cb", "1");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "2");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "3");

while (eio_nreqs()) {
eio_poll();
}
?>

O exemplo acima produzirá algo semelhante a:

string(1) "1"
int(0)
string(1) "3"
int(0)
string(1) "2"
int(0)

Veja Também

  • eio_poll() - Can be to be called whenever there are pending requests that need finishing
  • eio_nready() - Returns number of not-yet handled requests


Returns number of threads currently in use

  • « eio_nreqs
  • eio_open »
  • PHP Manual
  • Eio Funções
  • Returns number of threads currently in use

eio_nthreads

(PECL eio >= 0.0.1dev)

eio_nthreads — Returns number of threads currently in use

Descrição

eio_nthreads(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

eio_nthreads() returns number of threads currently in use.

Veja Também

  • eio_npending() - Returns number of finished, but unhandled requests
  • eio_nready() - Returns number of not-yet handled requests
  • eio_nreqs() - Returns number of requests to be processed
  • eio_set_max_idle() - Set maximum number of idle threads
  • eio_set_max_parallel() - Set maximum parallel threads
  • eio_set_min_parallel() - Set minimum parallel thread number


Opens a file

  • « eio_nthreads
  • eio_poll »
  • PHP Manual
  • Eio Funções
  • Opens a file

eio_open

(PECL eio >= 0.0.1dev)

eio_open — Opens a file

Descrição

eio_open(
string $path,
int $flags,
int $mode,
int $pri,
callable $callback,
mixed $data = NULL
): resource

eio_open() opens file specified by path in access mode mode with

Parâmetros

path

Path of the file to be opened.

Aviso

In some SAPIs(e.g. PHP-FPM) it could fail, if you don't specify full path.

flags

One of EIO_O_* constants, or their combinations. EIO_O_* constants have the same meaning, as their corresponding O_* counterparts defined in fnctl.h C header file. Default is EIO_O_RDWR.

mode

One of EIO_S_I* constants, or their combination (via bitwise OR operator). The constants have the same meaning as their S_I* counterparts defined in » sys/stat.h C header file. Required, if a file is created. Otherwise ignored.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_open() returns file descriptor in result argument of callback on success; otherwise, result is equal to -1.

Exemplos

Exemplo #1 eio_open() example

<?php
$temp_filename = "eio-temp-file.tmp";

/* Is called when eio_close() finishes */
function my_close_cb($data, $result) {
// Zero indicates success
var_dump($result == 0);
@unlink($data);
}

/* Is called when eio_open() finishes */
function my_file_opened_callback($data, $result) {
// $result should contain the file descriptor
var_dump($result > 0);

if ($result > 0) {
// Close the file
eio_close($result, EIO_PRI_DEFAULT, "my_close_cb", $data);
eio_event_loop();
}
}

// Create new file for reading and writing
// Deny group and others to do anything with that file
eio_open($temp_filename, EIO_O_CREAT | EIO_O_RDWR, EIO_S_IRUSR | EIO_S_IWUSR,
EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)

Veja Também

  • eio_mknod() - Create a special or ordinary file


Can be to be called whenever there are pending requests that need finishing

  • « eio_open
  • eio_read »
  • PHP Manual
  • Eio Funções
  • Can be to be called whenever there are pending requests that need finishing

eio_poll

(PECL eio >= 0.0.1dev)

eio_poll — Can be to be called whenever there are pending requests that need finishing

Descrição

eio_poll(): int

eio_poll() can be used to implement special event loop. For this eio_nreqs() could be used to test if there are unprocessed requests.

Nota:

Applicable only when implementing userspace event loop.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

If any request invocation returns a non-zero value, returns that value. Otherwise, it returns 0.

Exemplos

Exemplo #1 eio_poll() example

<?php
function res_cb($data, $result) {
var_dump($data);
var_dump($result);
}

eio_nop(EIO_PRI_DEFAULT, "res_cb", "1");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "2");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "3");

while (eio_nreqs()) {
// Some specific IPC or so
eio_poll();
}
?>

O exemplo acima produzirá algo semelhante a:

string(1) "1"
int(0)
string(1) "3"
int(0)
string(1) "2"
int(0)

Veja Também

  • eio_nreqs() - Returns number of requests to be processed


Read from a file descriptor at given offset

  • « eio_poll
  • eio_readahead »
  • PHP Manual
  • Eio Funções
  • Read from a file descriptor at given offset

eio_read

(PECL eio >= 0.0.1dev)

eio_read — Read from a file descriptor at given offset

Descrição

eio_read(
mixed $fd,
int $length,
int $offset,
int $pri,
callable $callback,
mixed $data = NULL
): resource

eio_read() reads up to length bytes from fd file descriptor at offset. The read bytes are stored in result argument of callback.

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor

length

Maximum number of bytes to read.

offset

Offset within the file.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_read() stores read bytes in result argument of callback function.

Exemplos

Exemplo #1 eio_read() example

<?php
// Open a temporary file and write some bytes there
$temp_filename = "eio-temp-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "1234567890");
fclose($fp);

/* Is called when eio_read() is done */
function my_read_cb($data, $result) {
global $temp_filename;

// Output read bytes
var_dump($result);

// Close file
eio_close($data);
eio_event_loop();

// Remove temporary file
@unlink($temp_filename);
}

/* Is called when eio_open() is done */
function my_file_opened_callback($data, $result) {
// $result should contain the file descriptor
if ($result > 0) {
// Read 5 bytes starting from third
eio_read($result, 5, 2, EIO_PRI_DEFAULT, "my_read_cb", $result);
eio_event_loop();
} else {
// eio_open() failed
unlink($data);
}
}

// Open the file for reading and writing
eio_open($temp_filename, EIO_O_RDWR, NULL,
EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

string(5) "34567"

Veja Também

  • eio_open() - Opens a file
  • eio_write() - Write to file
  • eio_close() - Close file
  • eio_event_loop() - Polls libeio until all requests proceeded


Perform file readahead into page cache

  • « eio_read
  • eio_readdir »
  • PHP Manual
  • Eio Funções
  • Perform file readahead into page cache

eio_readahead

(PECL eio >= 0.0.1dev)

eio_readahead — Perform file readahead into page cache

Descrição

eio_readahead(
mixed $fd,
int $offset,
int $length,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_readahead() populates the page cache with data from a file so that subsequent reads from that file will not block on disk I/O. See READAHEAD(2) man page for details.

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor

offset

Starting point from which data is to be read.

length

Number of bytes to be read.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_readahead() returns request resource on success, ou false em caso de falha.


Reads through a whole directory

  • « eio_readahead
  • eio_readlink »
  • PHP Manual
  • Eio Funções
  • Reads through a whole directory

eio_readdir

(PECL eio >= 0.0.1dev)

eio_readdir — Reads through a whole directory

Descrição

eio_readdir(
string $path,
int $flags,
int $pri,
callable $callback,
string $data = NULL
): resource

Reads through a whole directory(via the opendir, readdir and closedir system calls) and returns either the names or an array in result argument of callback function, depending on the flags argument.

Parâmetros

path

Directory path.

flags

Combination of EIO_READDIR_* constants.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_readdir() returns request resource on success, ou false em caso de falha. Sets result argument of callback function according to flags:

EIO_READDIR_DENTS (int)
eio_readdir() flag. If specified, the result argument of the callback becomes an array with the following keys: 'names' - array of directory names 'dents' - array of struct eio_dirent-like arrays having the following keys each: 'name' - the directory name; 'type' - one of EIO_DT_* constants; 'inode' - the inode number, if available, otherwise unspecified;
EIO_READDIR_DIRS_FIRST (int)
When this flag is specified, the names will be returned in an order where likely directories come first, in optimal stat order.
EIO_READDIR_STAT_ORDER (int)
When this flag is specified, then the names will be returned in an order suitable for stat'ing each one. When planning to stat() all files in the given directory, the returned order will likely be fastest.
EIO_READDIR_FOUND_UNKNOWN (int)

Node types:

EIO_DT_UNKNOWN (int)
Unknown node type(very common). Further stat() needed.
EIO_DT_FIFO (int)
FIFO node type
EIO_DT_CHR (int)
Node type
EIO_DT_MPC (int)
Multiplexed char device (v7+coherent) node type
EIO_DT_DIR (int)
Directory node type
EIO_DT_NAM (int)
Xenix special named file node type
EIO_DT_BLK (int)
Node type
EIO_DT_MPB (int)
Multiplexed block device (v7+coherent)
EIO_DT_REG (int)
Node type
EIO_DT_NWK (int)
EIO_DT_CMP (int)
HP-UX network special node type
EIO_DT_LNK (int)
Link node type
EIO_DT_SOCK (int)
Socket node type
EIO_DT_DOOR (int)
Solaris door node type
EIO_DT_WHT (int)
Node type
EIO_DT_MAX (int)
Highest node type value

Exemplos

Exemplo #1 eio_readdir() example

<?php
/* Is called when eio_readdir() finishes */
function my_readdir_callback($data, $result) {
echo __FUNCTION__, " called\n";
echo "data: "; var_dump($data);
echo "result: "; var_dump($result);
echo "\n";
}

eio_readdir("/var/spool/news", EIO_READDIR_STAT_ORDER | EIO_READDIR_DIRS_FIRST,
EIO_PRI_DEFAULT, "my_readdir_callback");
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

my_readdir_callback called
data: NULL
result: array(2) {
 ["names"]=>
  array(7) {
   [0]=>
    string(7) "archive"
    [1]=>
    string(8) "articles"
    [2]=>
    string(8) "incoming"
    [3]=>
    string(7) "innfeed"
    [4]=>
    string(8) "outgoing"
    [5]=>
    string(8) "overview"
    [6]=>
    string(3) "tmp"
  }
 ["dents"]=>
  array(7) {
   [0]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "archive"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393265)
    }
   [1]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "articles"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393266)
    }
   [2]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "incoming"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393267)
    }
   [3]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "innfeed"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393269)
    }
   [4]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "outgoing"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393270)
    }
   [5]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "overview"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393271)
    }
   [6]=>
    array(3)
    {
     ["name"]=>
      string(3)
      "tmp"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393272)
    }
  }
}


Read value of a symbolic link

  • « eio_readdir
  • eio_realpath »
  • PHP Manual
  • Eio Funções
  • Read value of a symbolic link

eio_readlink

(PECL eio >= 0.0.1dev)

eio_readlink — Read value of a symbolic link

Descrição

eio_readlink(
string $path,
int $pri,
callable $callback,
mixed $data = NULL
): resource

Parâmetros

path

Source symbolic link path

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_readlink() returns request resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 eio_readlink() example

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";
$hardlink = dirname(__FILE__)."/hardlink.link";

function my_hardlink_cb($data, $result) {
global $link, $filename;
var_dump(file_exists($data) && !is_link($data));
@unlink($data);

eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
}

function my_symlink_cb($data, $result) {
global $link, $filename;
var_dump(file_exists($data) && is_link($data));

if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
@unlink($link);
@unlink($filename);
}
}

function my_readlink_cb($data, $result) {
global $filename, $link;
var_dump($result);

@unlink($link);
@unlink($filename);
}

eio_link($filename, $hardlink, EIO_PRI_DEFAULT, "my_hardlink_cb", $hardlink);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
string(16) "/tmp/symlink.dat"

Veja Também

  • eio_symlink() - Create a symbolic link


Get the canonicalized absolute pathname

  • « eio_readlink
  • eio_rename »
  • PHP Manual
  • Eio Funções
  • Get the canonicalized absolute pathname

eio_realpath

(PECL eio >= 0.0.1dev)

eio_realpath — Get the canonicalized absolute pathname

Descrição

eio_realpath(
string $path,
int $pri,
callable $callback,
string $data = NULL
): resource

eio_realpath() returns the canonicalized absolute pathname in result argument of callback function.

Parâmetros

path

Short pathname

pri

callback

data

Valor Retornado

Exemplos

Exemplo #1 eio_realpath() example

<?php
var_dump(getcwd());

function my_realpath_allback($data, $result) {
var_dump($result);
}

eio_realpath("../", EIO_PRI_DEFAULT, "my_realpath_allback");
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

string(12) "/home/ruslan"
string(5) "/home"


Change the name or location of a file

  • « eio_realpath
  • eio_rmdir »
  • PHP Manual
  • Eio Funções
  • Change the name or location of a file

eio_rename

(PECL eio >= 0.0.1dev)

eio_rename — Change the name or location of a file

Descrição

eio_rename(
string $path,
string $new_path,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_rename() renames or moves a file to new location.

Parâmetros

path

Source path

new_path

Target path

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_rename() returns request resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 eio_rename() example

<?php
$filename = dirname(__FILE__)."/eio-temp-file.dat";
touch($filename);
$new_filename = dirname(__FILE__)."/eio-temp-file-new.dat";

function my_rename_cb($data, $result) {
global $filename, $new_filename;

if ($result == 0 && !file_exists($filename) && file_exists($new_filename)) {
@unlink($new_filename);
echo "eio_rename_ok";
} else {
@unlink($filename);
}
}

eio_rename($filename, $new_filename, EIO_PRI_DEFAULT, "my_rename_cb", $filename);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

eio_rename_ok


Remove a directory

  • « eio_rename
  • eio_seek »
  • PHP Manual
  • Eio Funções
  • Remove a directory

eio_rmdir

(PECL eio >= 0.0.1dev)

eio_rmdir — Remove a directory

Descrição

eio_rmdir(
string $path,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_rmdir() removes a directory.

Parâmetros

path

Directory path

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_rmdir() returns request resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 eio_rmdir() example

<?php
$temp_dirname = "eio-temp-dir";
mkdir($temp_dirname);

function my_rmdir_callback($data, $result) {
if ($result == 0 && !file_exists($data)) {
echo "eio_rmdir_ok";
} else if (file_exists($data)) {
rmdir($data);
}
}

eio_rmdir($temp_dirname, EIO_PRI_DEFAULT, "my_rmdir_callback", $temp_dirname);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

eio_rmdir_ok

Veja Também

  • eio_mkdir() - Create directory


Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence

  • « eio_rmdir
  • eio_sendfile »
  • PHP Manual
  • Eio Funções
  • Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence

eio_seek

(PECL eio >= 0.5.0b)

eio_seek — Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence

Descrição

eio_seek(
mixed $fd,
int $offset,
int $whence,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_seek() repositions the offset of the open file associated with stream, Socket resource, or file descriptor specified by fd to the argument offset according to the directive whence as follows:

  • EIO_SEEK_SET - Set position equal to offset bytes.
  • EIO_SEEK_CUR - Set position to current location plus offset.
  • EIO_SEEK_END - Set position to end-of-file plus offset.

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor

offset

Starting point from which data is to be read.

length

Number of bytes to be read.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_seek() returns request resource on success, ou false em caso de falha.


Transfer data between file descriptors

  • « eio_seek
  • eio_set_max_idle »
  • PHP Manual
  • Eio Funções
  • Transfer data between file descriptors

eio_sendfile

(PECL eio >= 0.0.1dev)

eio_sendfile — Transfer data between file descriptors

Descrição

eio_sendfile(
mixed $out_fd,
mixed $in_fd,
int $offset,
int $length,
int $pri = ?,
callable $callback = ?,
string $data = ?
): resource

eio_sendfile() copies data between one file descriptor and another. See SENDFILE(2) man page for details.

Parâmetros

out_fd

Output stream, Socket resource, or file descriptor. Should be opened for writing.

in_fd

Input stream, Socket resource, or file descriptor. Should be opened for reading.

offset

Offset within the source file.

length

Number of bytes to copy.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_sendfile() returns request resource on success, ou false em caso de falha.


Set maximum number of idle threads

  • « eio_sendfile
  • eio_set_max_parallel »
  • PHP Manual
  • Eio Funções
  • Set maximum number of idle threads

eio_set_max_idle

(PECL eio >= 0.0.1dev)

eio_set_max_idle — Set maximum number of idle threads

Descrição

eio_set_max_idle(int $nthreads): void

Parâmetros

nthreads

Number of idle threads.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • eio_nthreads() - Returns number of threads currently in use
  • eio_set_min_parallel() - Set minimum parallel thread number
  • eio_set_max_parallel() - Set maximum parallel threads


Set maximum parallel threads

  • « eio_set_max_idle
  • eio_set_max_poll_reqs »
  • PHP Manual
  • Eio Funções
  • Set maximum parallel threads

eio_set_max_parallel

(PECL eio >= 0.0.1dev)

eio_set_max_parallel — Set maximum parallel threads

Descrição

eio_set_max_parallel(int $nthreads): void

Parâmetros

nthreads

Number of parallel threads

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • eio_nthreads() - Returns number of threads currently in use
  • eio_set_max_idle() - Set maximum number of idle threads
  • eio_set_min_parallel() - Set minimum parallel thread number


Set maximum number of requests processed in a poll

  • « eio_set_max_parallel
  • eio_set_max_poll_time »
  • PHP Manual
  • Eio Funções
  • Set maximum number of requests processed in a poll

eio_set_max_poll_reqs

(PECL eio >= 0.0.1dev)

eio_set_max_poll_reqs — Set maximum number of requests processed in a poll

Descrição

eio_set_max_poll_reqs(int $nreqs): void

Parâmetros

nreqs

Number of requests

Valor Retornado

Nenhum valor é retornado.


Set maximum poll time

  • « eio_set_max_poll_reqs
  • eio_set_min_parallel »
  • PHP Manual
  • Eio Funções
  • Set maximum poll time

eio_set_max_poll_time

(PECL eio >= 0.0.1dev)

eio_set_max_poll_time — Set maximum poll time

Descrição

eio_set_max_poll_time(float $nseconds): void

Polling stops, if poll took longer than nseconds seconds.

Parâmetros

nseconds

Number of seconds

Valor Retornado

Nenhum valor é retornado.


Set minimum parallel thread number

  • « eio_set_max_poll_time
  • eio_stat »
  • PHP Manual
  • Eio Funções
  • Set minimum parallel thread number

eio_set_min_parallel

(PECL eio >= 0.0.1dev)

eio_set_min_parallel — Set minimum parallel thread number

Descrição

eio_set_min_parallel(string $nthreads): void

Parâmetros

nthreads

Number of parallel threads.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • eio_nthreads() - Returns number of threads currently in use
  • eio_set_max_idle() - Set maximum number of idle threads
  • eio_set_max_parallel() - Set maximum parallel threads


Get file status

  • « eio_set_min_parallel
  • eio_statvfs »
  • PHP Manual
  • Eio Funções
  • Get file status

eio_stat

(PECL eio >= 0.0.1dev)

eio_stat — Get file status

Descrição

eio_stat(
string $path,
int $pri,
callable $callback,
mixed $data = NULL
): resource

eio_stat() returns file status information in result argument of callback

Parâmetros

path

The file path

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_stat() returns request resource on success or false on error. On success assigns result argument of callback to an array.

Exemplos

Exemplo #1 eio_stat() example

<?php
$tmp_filename = "eio-file.tmp";
touch($tmp_filename);

function my_res_cb($data, $result) {
var_dump($data);
var_dump($result);
}

function my_open_cb($data, $result) {
eio_close($result);
eio_event_loop();

@unlink($data);
}

eio_stat($tmp_filename, EIO_PRI_DEFAULT, "my_res_cb", "eio_stat");
eio_open($tmp_filename, EIO_O_RDONLY, NULL,
EIO_PRI_DEFAULT, "my_open_cb", $tmp_filename);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

string(8) "eio_stat"
array(12) {
  ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2489173)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318250380)
  ["st_mtime"]=>
  int(1318250380)
  ["st_ctime"]=>
  int(1318250380)
}

Veja Também

  • eio_lstat() - Get file status
  • eio_fstat() - Get file status


Get file system statistics

  • « eio_stat
  • eio_symlink »
  • PHP Manual
  • Eio Funções
  • Get file system statistics

eio_statvfs

(PECL eio >= 0.0.1dev)

eio_statvfs — Get file system statistics

Descrição

eio_statvfs(
string $path,
int $pri,
callable $callback,
mixed $data = ?
): resource

eio_statvfs() returns file system statistics information in result argument of callback

Parâmetros

path

Pathname of any file within the mounted file system

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_statvfs() returns request resource on success, ou false em caso de falha. On success assigns result argument of callback to an array.

Exemplos

Exemplo #1 eio_statvfs() example

<?php
$tmp_filename = '/tmp/eio-file.tmp';
touch($tmp_filename);

function my_statvfs_callback($data, $result) {
var_dump($data);
var_dump($result);

@unlink($data);
}

eio_statvfs($tmp_filename, EIO_PRI_DEFAULT, "my_statvfs_callback", $tmp_filename);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

string(17) "/tmp/eio-file.tmp"
array(11) {
  ["f_bsize"]=>
  int(4096)
  ["f_frsize"]=>
  int(4096)
  ["f_blocks"]=>
  int(262144)
  ["f_bfree"]=>
  int(262111)
  ["f_bavail"]=>
  int(262111)
  ["f_files"]=>
  int(1540815)
  ["f_ffree"]=>
  int(1540743)
  ["f_favail"]=>
  int(1540743)
  ["f_fsid"]=>
  int(0)
  ["f_flag"]=>
  int(4102)
  ["f_namemax"]=>
  int(255)
}


Create a symbolic link

  • « eio_statvfs
  • eio_sync_file_range »
  • PHP Manual
  • Eio Funções
  • Create a symbolic link

eio_symlink

(PECL eio >= 0.0.1dev)

eio_symlink — Create a symbolic link

Descrição

eio_symlink(
string $path,
string $new_path,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_symlink() creates a symbolic link new_path to path.

Parâmetros

path

Source path

new_path

Target path

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_symlink() returns request resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 eio_symlink() example

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";

function my_symlink_cb($data, $result) {
global $link, $filename;
var_dump(file_exists($data) && is_link($data));

if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
@unlink($link);
@unlink($filename);
}
}

function my_readlink_cb($data, $result) {
global $filename, $link;
var_dump($result);

@unlink($link);
@unlink($filename);
}

eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
eio_event_loop();
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
string(16) "/tmp/symlink.dat"

Veja Também

  • eio_link() - Create a hardlink for file


Sync a file segment with disk

  • « eio_symlink
  • eio_sync »
  • PHP Manual
  • Eio Funções
  • Sync a file segment with disk

eio_sync_file_range

(PECL eio >= 0.0.1dev)

eio_sync_file_range — Sync a file segment with disk

Descrição

eio_sync_file_range(
mixed $fd,
int $offset,
int $nbytes,
int $flags,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_sync_file_range() permits fine control when synchronizing the open file referred to by the file descriptor fd with disk.

Parâmetros

fd

File descriptor

offset

The starting byte of the file range to be synchronized

nbytes

Specifies the length of the range to be synchronized, in bytes. If nbytes is zero, then all bytes from offset through to the end of file are synchronized.

flags

A bit-mask. Can include any of the following values: EIO_SYNC_FILE_RANGE_WAIT_BEFORE, EIO_SYNC_FILE_RANGE_WRITE, EIO_SYNC_FILE_RANGE_WAIT_AFTER. These flags have the same meaning as their SYNC_FILE_RANGE_* counterparts(see SYNC_FILE_RANGE(2) man page).

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_sync_file_range() returns request resource on success, ou false em caso de falha.


Commit buffer cache to disk

  • « eio_sync_file_range
  • eio_syncfs »
  • PHP Manual
  • Eio Funções
  • Commit buffer cache to disk

eio_sync

(PECL eio >= 0.0.1dev)

eio_sync — Commit buffer cache to disk

Descrição

eio_sync(int $pri = EIO_PRI_DEFAULT, callable $callback = NULL, mixed $data = NULL): resource

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

eio_sync() returns request resource on success, ou false em caso de falha.


Calls Linux' syncfs syscall, if available

  • « eio_sync
  • eio_truncate »
  • PHP Manual
  • Eio Funções
  • Calls Linux' syncfs syscall, if available

eio_syncfs

(PECL eio >= 0.0.1dev)

eio_syncfs — Calls Linux' syncfs syscall, if available

Descrição

eio_syncfs(
mixed $fd,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

Parâmetros

fd

File descriptor

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_syncfs() returns request resource on success, ou false em caso de falha.


Truncate a file

  • « eio_syncfs
  • eio_unlink »
  • PHP Manual
  • Eio Funções
  • Truncate a file

eio_truncate

(PECL eio >= 0.0.1dev)

eio_truncate — Truncate a file

Descrição

eio_truncate(
string $path,
int $offset = 0,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_truncate() causes the regular file named by path to be truncated to a size of precisely length bytes

Parâmetros

path

File path

offset

Offset from beginning of the file.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_busy() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_ftruncate() - Truncate a file


Delete a name and possibly the file it refers to

  • « eio_truncate
  • eio_utime »
  • PHP Manual
  • Eio Funções
  • Delete a name and possibly the file it refers to

eio_unlink

(PECL eio >= 0.0.1dev)

eio_unlink — Delete a name and possibly the file it refers to

Descrição

eio_unlink(
string $path,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_unlink() deletes a name from the file system.

Parâmetros

path

Path to file

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_unlink() returns request resource on success, ou false em caso de falha.


Change file last access and modification times

  • « eio_unlink
  • eio_write »
  • PHP Manual
  • Eio Funções
  • Change file last access and modification times

eio_utime

(PECL eio >= 0.0.1dev)

eio_utime — Change file last access and modification times

Descrição

eio_utime(
string $path,
float $atime,
float $mtime,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

Parâmetros

path

Path to the file.

atime

Access time

mtime

Modification time

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_utime() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_futime() - Change file last access and modification times


Write to file

  • « eio_utime
  • Ev »
  • PHP Manual
  • Eio Funções
  • Write to file

eio_write

(PECL eio >= 0.0.1dev)

eio_write — Write to file

Descrição

eio_write(
mixed $fd,
string $str,
int $length = 0,
int $offset = 0,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_write() writes up to length bytes from str at offset offset from the beginning of the file.

Parâmetros

fd

Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open()

str

Source string

length

Maximum number of bytes to write.

offset

Offset from the beginning of file.

pri

A prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null. Se null for passado, o parâmetro pri internamente será definido como EIO_PRI_DEFAULT.

callback

A função callback é chamada quando a requisição é concluída. Ela deve corresponder ao seguinte protótipo:

void callback(mixed $data, int $result[, resource $req]);
data

são dados personalizados passados para a requisição.

result

valor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.

req

é um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error()

data

Arbitrary variable passed to callback.

Valor Retornado

eio_write() returns request resource on success, ou false em caso de falha.

Veja Também

  • eio_open() - Opens a file


Ev

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Watchers
  • Watcher callbacks
  • Periodic watcher operation modes
  • Ev — The Ev class
    • Ev::backend — Returns an integer describing the backend used by libev
    • Ev::depth — Returns recursion depth
    • Ev::embeddableBackends — Returns the set of backends that are embeddable in other event loops
    • Ev::feedSignal — Feed a signal event info Ev
    • Ev::feedSignalEvent — Feed signal event into the default loop
    • Ev::iteration — Return the number of times the default event loop has polled for new events
    • Ev::now — Returns the time when the last iteration of the default event loop has started
    • Ev::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress
    • Ev::recommendedBackends — Returns a bit mask of recommended backends for current platform
    • Ev::resume — Resume previously suspended default event loop
    • Ev::run — Begin checking for events and calling callbacks for the default loop
    • Ev::sleep — Block the process for the given number of seconds
    • Ev::stop — Stops the default event loop
    • Ev::supportedBackends — Returns the set of backends supported by current libev configuration
    • Ev::suspend — Suspend the default event loop
    • Ev::time — Returns the current time in fractional seconds since the epoch
    • Ev::verify — Performs internal consistency checks(for debugging)
  • EvCheck — The EvCheck class
    • EvCheck::__construct — Constructs the EvCheck watcher object
    • EvCheck::createStopped — Create instance of a stopped EvCheck watcher
  • EvChild — The EvChild class
    • EvChild::__construct — Constructs the EvChild watcher object
    • EvChild::createStopped — Create instance of a stopped EvCheck watcher
    • EvChild::set — Configures the watcher
  • EvEmbed — The EvEmbed class
    • EvEmbed::__construct — Constructs the EvEmbed object
    • EvEmbed::createStopped — Create stopped EvEmbed watcher object
    • EvEmbed::set — Configures the watcher
    • EvEmbed::sweep — Make a single, non-blocking sweep over the embedded loop
  • EvFork — The EvFork class
    • EvFork::__construct — Constructs the EvFork watcher object
    • EvFork::createStopped — Creates a stopped instance of EvFork watcher class
  • EvIdle — The EvIdle class
    • EvIdle::__construct — Constructs the EvIdle watcher object
    • EvIdle::createStopped — Creates instance of a stopped EvIdle watcher object
  • EvIo — The EvIo class
    • EvIo::__construct — Constructs EvIo watcher object
    • EvIo::createStopped — Create stopped EvIo watcher object
    • EvIo::set — Configures the watcher
  • EvLoop — The EvLoop class
    • EvLoop::backend — Returns an integer describing the backend used by libev
    • EvLoop::check — Creates EvCheck object associated with the current event loop instance
    • EvLoop::child — Creates EvChild object associated with the current event loop
    • EvLoop::__construct — Constructs the event loop object
    • EvLoop::defaultLoop — Returns or creates the default event loop
    • EvLoop::embed — Creates an instance of EvEmbed watcher associated with the current EvLoop object
    • EvLoop::fork — Creates EvFork watcher object associated with the current event loop instance
    • EvLoop::idle — Creates EvIdle watcher object associated with the current event loop instance
    • EvLoop::invokePending — Invoke all pending watchers while resetting their pending state
    • EvLoop::io — Create EvIo watcher object associated with the current event loop instance
    • EvLoop::loopFork — Must be called after a fork
    • EvLoop::now — Returns the current "event loop time"
    • EvLoop::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress
    • EvLoop::periodic — Creates EvPeriodic watcher object associated with the current event loop instance
    • EvLoop::prepare — Creates EvPrepare watcher object associated with the current event loop instance
    • EvLoop::resume — Resume previously suspended default event loop
    • EvLoop::run — Begin checking for events and calling callbacks for the loop
    • EvLoop::signal — Creates EvSignal watcher object associated with the current event loop instance
    • EvLoop::stat — Creates EvStat watcher object associated with the current event loop instance
    • EvLoop::stop — Stops the event loop
    • EvLoop::suspend — Suspend the loop
    • EvLoop::timer — Creates EvTimer watcher object associated with the current event loop instance
    • EvLoop::verify — Performs internal consistency checks(for debugging)
  • EvPeriodic — The EvPeriodic class
    • EvPeriodic::again — Simply stops and restarts the periodic watcher again
    • EvPeriodic::at — Returns the absolute time that this watcher is supposed to trigger next
    • EvPeriodic::__construct — Constructs EvPeriodic watcher object
    • EvPeriodic::createStopped — Create a stopped EvPeriodic watcher
    • EvPeriodic::set — Configures the watcher
  • EvPrepare — The EvPrepare class
    • EvPrepare::__construct — Constructs EvPrepare watcher object
    • EvPrepare::createStopped — Creates a stopped instance of EvPrepare watcher
  • EvSignal — The EvSignal class
    • EvSignal::__construct — Constructs EvSignal watcher object
    • EvSignal::createStopped — Create stopped EvSignal watcher object
    • EvSignal::set — Configures the watcher
  • EvStat — The EvStat class
    • EvStat::attr — Returns the values most recently detected by Ev
    • EvStat::__construct — Constructs EvStat watcher object
    • EvStat::createStopped — Create a stopped EvStat watcher object
    • EvStat::prev — Returns the previous set of values returned by EvStat::attr
    • EvStat::set — Configures the watcher
    • EvStat::stat — Initiates the stat call
  • EvTimer — The EvTimer class
    • EvTimer::again — Restarts the timer watcher
    • EvTimer::__construct — Constructs an EvTimer watcher object
    • EvTimer::createStopped — Creates EvTimer stopped watcher object
    • EvTimer::set — Configures the watcher
  • EvWatcher — The EvWatcher class
    • EvWatcher::clear — Clear watcher pending status
    • EvWatcher::__construct — Abstract constructor of a watcher object
    • EvWatcher::feed — Feeds the given revents set into the event loop
    • EvWatcher::getLoop — Returns the loop responsible for the watcher
    • EvWatcher::invoke — Invokes the watcher callback with the given received events bit mask
    • EvWatcher::keepalive — Configures whether to keep the loop from returning
    • EvWatcher::setCallback — Sets new callback for the watcher
    • EvWatcher::start — Starts the watcher
    • EvWatcher::stop — Stops the watcher


Introdução

This extension provides interface to » libev library - a high performance full-featured event loop written in C.

Nota: Esta extensão não está disponível em plataformas Windows.

Libev is an event loop: one registers interest in certain events (such as a file descriptor being readable or a timeout occurring), and it will manage these event sources and provide the program with events.

To do this, it must take more or less complete control over the process (or thread) by executing the event loop handler, and will then communicate events via a callback mechanism.

You register interest in certain events by registering so-called event watchers, and then hand it over to libev by starting the watcher.

For details refer to the » documentation of libev


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

libev library is embedded into this extension. You don't need to install it separately.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/ev .


Constantes pré-definidas

Esta extensão não possui constantes definidas.

Most constants are moved to Ev singleton class.


Exemplos

Exemplo #1 Simple timers

<?php
// Create and start timer firing after 2 seconds
$w1 = new EvTimer(2, 0, function () {
echo "2 seconds elapsed\n";
});

// Create and launch timer firing after 2 seconds repeating each second
// until we manually stop it
$w2 = new EvTimer(2, 1, function ($w) {
echo "is called every second, is launched after 2 seconds\n";
echo "iteration = ", Ev::iteration(), PHP_EOL;

// Stop the watcher after 5 iterations
Ev::iteration() == 5 and $w->stop();
// Stop the watcher if further calls cause more than 10 iterations
Ev::iteration() >= 10 and $w->stop();
});

// Create stopped timer. It will be inactive until we start it ourselves
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
echo "Callback of a timer created as stopped\n";

// Stop the watcher after 2 iterations
Ev::iteration() >= 2 and $w->stop();
});

// Loop until Ev::stop() is called or all of watchers stop
Ev::run();

// Start and look if it works
$w_stopped->start();
echo "Run single iteration\n";
Ev::run(Ev::RUN_ONCE);

echo "Restart the second watcher and try to handle the same events, but don't block\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo "Running a blocking loop\n";
Ev::run();
echo "END\n";
?>

O exemplo acima produzirá algo semelhante a:

2 seconds elapsed
is called every second, is launched after 2 seconds
iteration = 1
is called every second, is launched after 2 seconds
iteration = 2
is called every second, is launched after 2 seconds
iteration = 3
is called every second, is launched after 2 seconds
iteration = 4
is called every second, is launched after 2 seconds
iteration = 5
Run single iteration
Callback of a timer created as stopped
Restart the second watcher and try to handle the same events, but don't block
Running a blocking loop
is called every second, is launched after 2 seconds
iteration = 8
is called every second, is launched after 2 seconds
iteration = 9
is called every second, is launched after 2 seconds
iteration = 10
END

Exemplo #2 Periodic timer. Tick each 10.5 seconds

<?php
$w = new EvPeriodic(0., 10.5, NULL, function ($w, $revents) {
echo time(), PHP_EOL;
});

Ev::run();
?>

Exemplo #3 Periodic timer. Use reschedule callback

<?php
// Tick each 10.5 seconds

function reschedule_cb ($watcher, $now) {
return $now + (10.5. - fmod($now, 10.5));
}

$w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
echo time(), PHP_EOL;
});

Ev::run();
?>

Exemplo #4 Periodic timer. Tick every 10.5 seconds starting at now

<?php
// Tick every 10.5 seconds starting at now
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
echo time(), PHP_EOL;
});

Ev::run();
?>

Exemplo #5 Wait until STDIN is readable

<?php
// Wait until STDIN is readable
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
echo "STDIN is readable\n";
});

Ev::run(Ev::RUN_ONCE);
?>

Exemplo #6 Use some async I/O to access a socket

<?php
/* Use some async I/O to access a socket */

// `sockets' extension still logs warnings
// for EINPROGRESS, EAGAIN/EWOULDBLOCK etc.
error_reporting(E_ERROR);

$e_nonblocking = array (/*EAGAIN or EWOULDBLOCK*/11, /*EINPROGRESS*/115);

// Get the port for the WWW service
$service_port = getservbyname('www', 'tcp');

// Get the IP address for the target host
$address = gethostbyname('google.co.uk');

// Create a TCP/IP socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === FALSE) {
echo "socket_create() failed: reason: "
.socket_strerror(socket_last_error()) . "\n";
}

// Set O_NONBLOCK flag
socket_set_nonblock($socket);

// Abort on timeout
$timeout_watcher = new EvTimer(10.0, 0., function () use ($socket) {
socket_close($socket);
Ev::stop(Ev::BREAK_ALL);
});

// Make HEAD request when the socket is writable
$write_watcher = new EvIo($socket, Ev::WRITE, function ($w)
use ($socket, $timeout_watcher, $e_nonblocking)
{
// Stop timeout watcher
$timeout_watcher->stop();
// Stop write watcher
$w->stop();

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: google.co.uk\r\n";
$in .= "Connection: Close\r\n\r\n";

if (!socket_write($socket, $in, strlen($in))) {
trigger_error("Failed writing $in to socket", E_USER_ERROR);
}

$read_watcher = new EvIo($socket, Ev::READ, function ($w, $re)
use ($socket, $e_nonblocking)
{
// Socket is readable. recv() 20 bytes using non-blocking mode
$ret = socket_recv($socket, $out, 20, MSG_DONTWAIT);

if ($ret) {
echo $out;
} elseif ($ret === 0) {
// All read
$w->stop();
socket_close($socket);
return;
}

// Caught EINPROGRESS, EAGAIN, or EWOULDBLOCK
if (in_array(socket_last_error(), $e_nonblocking)) {
return;
}

$w->stop();
socket_close($socket);
});

Ev::run();
});

$result = socket_connect($socket, $address, $service_port);

Ev::run();
?>

O exemplo acima produzirá algo semelhante a:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1252
Date: Sun, 23 Dec 2012 16:08:27 GMT
Expires: Tue, 22 Jan 2013 16:08:27 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Connection: close

Exemplo #7 Embedding one loop into another

<?php
/*
* Try to get an embeddable event loop and embed it into the default event loop.
* If it is impossible, use the default
* loop. The default loop is stored in $loop_hi, while the embeddable loop is
* stored in $loop_lo(which is $loop_hi in the case no embeddable loop can be
* used).
*
* Sample translated to PHP
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi = EvLoop::defaultLoop();
$loop_lo = NULL;
$embed = NULL;

/*
* See if there is a chance of getting one that works
* (flags' value of 0 means autodetection)
*/
$loop_lo = Ev::embeddableBackends() & Ev::recommendedBackends()
? new EvLoop(Ev::embeddableBackends() & Ev::recommendedBackends())
: 0;

if ($loop_lo) {
$embed = new EvEmbed($loop_lo, function () {});
} else {
$loop_lo = $loop_hi;
}
?>

Exemplo #8 Embedding loop created with kqueue backend into the default loop

<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
$embed = new EvEmbed($loop);
}
}

if (!$socket_loop) {
$socket_loop = $loop;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Exemplo #9 Handle SIGTERM signal

<?php
$w = new EvSignal(SIGTERM, function ($watcher) {
echo "SIGTERM received\n";
$watcher->stop();
});

Ev::run();
?>

Exemplo #10 Monitor changes of /var/log/messages

<?php
// Use 10 second update interval.
$w = new EvStat("/var/log/messages", 8, function ($w) {
echo "/var/log/messages changed\n";

$attr = $w->attr();

if ($attr['nlink']) {
printf("Current size: %ld\n", $attr['size']);
printf("Current atime: %ld\n", $attr['atime']);
printf("Current mtime: %ld\n", $attr['mtime']);
} else {
fprintf(STDERR, "`messages` file is not there!");
$w->stop();
}
});

Ev::run();
?>

Exemplo #11 Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay

<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
$w->stop();

$stat = $w->data;

// 1 second after the most recent change of the file
printf("Current size: %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
// Reset timer watcher
$timer->again();
});

$timer->data = $stat;

Ev::run();
?>

Exemplo #12 Process status changes

<?php
$pid = pcntl_fork();

if ($pid == -1) {
fprintf(STDERR, "pcntl_fork failed\n");
} elseif ($pid) {
$w = new EvChild($pid, FALSE, function ($w, $revents) {
$w->stop();

printf("Process %d exited with status %d\n", $w->rpid, $w->rstatus);
});

Ev::run();

// Protect against Zombies
pcntl_wait($status);
} else {
//Forked child
exit(2);
}
?>


Watchers

A watcher is an object that gets created to record interest in some event. For instance, the following code waits for STDIN to become readable:

<?php
// Wait until STDIN is readable
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
echo "STDIN is readable\n";
});
Ev::run(Ev::RUN_ONCE);
?>

All the watcher constructors automatically start the watchers. createStopped methods create stopped watchers(e.g. EvIo::createStopped() )

Note that a watcher will automatically be stopped when the watcher object is destroyed. Therefore, the watcher objects returned by the constructors or factory methods should be kept.

Note also that all methods changing some watcher property( set , priority etc.) automatically stop and start it again if it is active, which means pending events get lost.

See also: Watcher callbacks .


Watcher callbacks

All watchers can be active(waiting for events) or inactive(paused). Only active watchers will have their callbacks invoked. All callbacks will be called with at least two arguments: watcher - the watcher, and revents a bitmask of received events.

Watcher callbacks are passed to the watcher constructors (the classes derived from EvWatcher - EvCheck::__construct() , EvChild::__construct() etc.). A watcher callback should match the following prototype:

callback( object $watcher = NULL , int $revents = NULL ): void

watcher

The watcher instance(of a class extending EvWatcher ).

revents

Watcher received events .

Each watcher type has its associated bit in revents , so one can use the same callback for multiple watchers. The event mask is named after the type, i.e. EvChild (or EvLoop::child() ) sets EV::CHILD , EvPrepare (or EvLoop::prepare() ) sets Ev::PREPARE , EvPeriodic (or EvLoop::periodic() ) sets Ev::PERIODIC and so on, with the exception of I/O events (which can set both Ev::READ and Ev::WRITE bits).


Periodic watcher operation modes

EvPeriodic watcher works in different modes depending on the offset , interval and reschedule_cb parameters.

  1. Absolute timer . In this mode interval = 0 , reschedule_cb = null. This time simply fires at the wallclock time offset and doesn't repeat. It will not adjust when a time jump occurs, that is, if it is to be run at January 1st 2014 then it will run when the system time reaches or surpasses this time.

  2. Repeating interval timer . In this mode interval > 0 , reschedule_cb = null; the watcher will always be scheduled to timeout at the next offset + N * interval time(for some integer N ) and then repeat, regardless of any time jumps.

    This can be used to create timers that do not drift with respect to system time:

    <?php
    $hourly     = EvPeriodic(0, 3600, NULL, function () {
    echo     "once per hour\n";
    });
    ?>
    That doesn't mean there will always be 3600 seconds in between triggers, but only that the callback will be called when the system time shows a full hour( UTC ).

    EvPeriodic will try to run the callback in this mode at the next possible time where time = offset ( mod interval ), regardless of any time jumps.

  3. Manual reschedule mode . In this mode reschedule_cb is a callable .

    interval and offset are both being ignored. Instead, each time the periodic watcher gets scheduled, the reschedule callback ( reschedule_cb ) will be called with the watcher as first, and the current time as second argument.

    This callback must not stop or destroy this or any other periodic watchers, ever, and must not call any event loop functions or methods. To stop it return 1e30 and stop it afterwards. An EvPrepare watcher may be used for this task.

    It must return the next time to trigger, based on the passed time value (that is, the lowest time value larger than or equal to the second argument). It will usually be called just before the callback will be triggered, but might be called at other times, too.

    Exemplo #1 Using reschedule callback

    <?php
    // Tick each 10.5 seconds

    function reschedule_cb ($watcher, $now) {
    return     $now + (10.5. - fmod($now, 10.5));
    }

    $w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
    echo     time(), PHP_EOL;
    });

    Ev::run();
    ?>


The Ev class

(PECL ev >= 0.2.0)

Introdução

Ev is a static class providing access to the default loop and to some common operations.

Resumo da classe

final class Ev {
/* Constantes */
const int FLAG_AUTO = 0;
const int FLAG_NOENV = 16777216;
const int FLAG_FORKCHECK = 33554432;
const int FLAG_NOINOTIFY = 1048576;
const int FLAG_SIGNALFD = 2097152;
const int FLAG_NOSIGMASK = 4194304;
const int RUN_NOWAIT = 1;
const int RUN_ONCE = 2;
const int BREAK_CANCEL = 0;
const int BREAK_ONE = 1;
const int BREAK_ALL = 2;
const int MINPRI = -2;
const int MAXPRI = 2;
const int READ = 1;
const int WRITE = 2;
const int TIMER = 256;
const int PERIODIC = 512;
const int SIGNAL = 1024;
const int CHILD = 2048;
const int STAT = 4096;
const int IDLE = 8192;
const int PREPARE = 16384;
const int CHECK = 32768;
const int EMBED = 65536;
const int CUSTOM = 16777216;
const int ERROR = 2147483648;
const int BACKEND_SELECT = 1;
const int BACKEND_POLL = 2;
const int BACKEND_EPOLL = 4;
const int BACKEND_KQUEUE = 8;
const int BACKEND_DEVPOLL = 16;
const int BACKEND_PORT = 32;
const int BACKEND_ALL = 63;
const int BACKEND_MASK = 65535;
/* Métodos */
final public static backend(): int
final public static depth(): int
final public static embeddableBackends(): int
final public static feedSignal( int $signum ): void
final public static feedSignalEvent( int $signum ): void
final public static iteration(): int
final public static now(): float
final public static nowUpdate(): void
final public static recommendedBackends(): int
final public static resume(): void
final public static run( int $flags = ?): void
final public static sleep( float $seconds ): void
final public static stop( int $how = ?): void
final public static supportedBackends(): int
final public static suspend(): void
final public static time(): float
final public static verify(): void
}

Constantes pré-definidas

Flags passed to create a loop:

Ev::FLAG_AUTO

The default flags value

Ev::FLAG_NOENV

If this flag used(or the program runs setuid or setgid), libev won't look at the environment variable LIBEV_FLAGS . Otherwise(by default), LIBEV_FLAGS will override the flags completely if it is found. Useful for performance tests and searching for bugs.

Ev::FLAG_FORKCHECK

Makes libev check for a fork in each iteration, instead of calling EvLoop::fork() manually. This works by calling getpid() on every iteration of the loop, and thus this might slow down the event loop with lots of loop iterations, but usually is not noticeable. This flag setting cannot be overridden or specified in the LIBEV_FLAGS environment variable.

Ev::FLAG_NOINOTIFY

When this flag is specified, libev won't attempt to use the inotify API for its » ev_stat watchers. The flag can be useful to conserve inotify file descriptors, as otherwise each loop using ev_stat watchers consumes one inotify handle.

Ev::FLAG_SIGNALFD

When this flag is specified, libev will attempt to use the signalfd API for its » ev_signal (and » ev_child ) watchers. This API delivers signals synchronously, which makes it both faster and might make it possible to get the queued signal data. It can also simplify signal handling with threads, as long as signals are properly blocked in threads. Signalfd will not be used by default.

Ev::FLAG_NOSIGMASK

When this flag is specified, libev will avoid to modify the signal mask. Specifically, this means having to make sure signals are unblocked before receiving them.

This behaviour is useful for custom signal handling, or handling signals only in specific threads.

Flags passed to Ev::run() , or EvLoop::run()

Ev::RUN_NOWAIT

Means that event loop will look for new events, will handle those events and any already outstanding ones, but will not wait and block the process in case there are no events and will return after one iteration of the loop. This is sometimes useful to poll and handle new events while doing lengthy calculations, to keep the program responsive.

Ev::RUN_ONCE

Means that event loop will look for new events (waiting if necessary) and will handle those and any already outstanding ones. It will block the process until at least one new event arrives (which could be an event internal to libev itself, so there is no guarantee that a user-registered callback will be called), and will return after one iteration of the loop.

Flags passed to Ev::stop() , or EvLoop::stop()

Ev::BREAK_CANCEL

Cancel the break operation.

Ev::BREAK_ONE

Makes the innermost Ev::run() (or EvLoop::run() ) call return.

Ev::BREAK_ALL

Makes all nested Ev::run() (or EvLoop::run() ) calls return.

Watcher priorities:

Ev::MINPRI

Minimum allowed watcher priority.

Ev::MAXPRI

Maximum allowed watcher priority.

Bit masks of (received) events:

Ev::READ

The file descriptor in the EvIo watcher has become readable.

Ev::WRITE

The file descriptor in the EvIo watcher has become writable.

Ev::TIMER

EvTimer watcher has been timed out.

Ev::PERIODIC

EvPeriodic watcher has been timed out.

Ev::SIGNAL

A signal specified in EvSignal::__construct() has been received.

Ev::CHILD

The pid specified in EvChild::__construct() has received a status change.

Ev::STAT

The path specified in EvStat watcher changed its attributes.

Ev::IDLE

EvIdle watcher works when there is nothing to do with other watchers.

Ev::PREPARE

All EvPrepare watchers are invoked just before Ev::run() starts. Thus, EvPrepare watchers are the last watchers invoked before the event loop sleeps or polls for new events.

Ev::CHECK

All EvCheck watchers are queued just after Ev::run() has gathered the new events, but before it queues any callbacks for any received events. Thus, EvCheck watchers will be invoked before any other watchers of the same or lower priority within an event loop iteration.

Ev::EMBED

The embedded event loop specified in the EvEmbed watcher needs attention.

Ev::CUSTOM

Not ever sent(or otherwise used) by libev itself, but can be freely used by libev users to signal watchers (e.g. via EvWatcher::feed() ).

Ev::ERROR

An unspecified error has occurred, the watcher has been stopped. This might happen because the watcher could not be properly started because libev ran out of memory, a file descriptor was found to be closed or any other problem. Libev considers these application bugs. See also » ANATOMY OF A WATCHER

Backend flags:

Ev::BACKEND_SELECT

select(2) backend

Ev::BACKEND_POLL

poll(2) backend

Ev::BACKEND_EPOLL

Linux-specific epoll(7) backend for both pre- and post-2.6.9 kernels

Ev::BACKEND_KQUEUE

kqueue backend used on most BSD systems. EvEmbed watcher could be used to embed one loop(with kqueue backend) into another. For instance, one can try to create an event loop with kqueue backend and use it for sockets only.

Ev::BACKEND_DEVPOLL

Solaris 8 backend. This is not implemented yet.

Ev::BACKEND_PORT

Solaris 10 event port mechanism with a good scaling.

Ev::BACKEND_ALL

Try all backends(even currupted ones). It's not recommended to use it explicitly. Bitwise operators should be applied here(e.g. Ev::BACKEND_ALL & ~ Ev::BACKEND_KQUEUE ) Use Ev::recommendedBackends() , or don't specify any backends at all.

Ev::BACKEND_MASK

Not a backend, but a mask to select all backend bits from flags value to mask out any backends(e.g. when modifying the LIBEV_FLAGS environment variable).

Nota:

For the default loop during module initialization phase Ev registers » ev_loop_fork call by means of pthread_atfork (if available).

Nota:

There are methods providing access to the default event loop in Ev class(e.g. Ev::iteration() , Ev::depth() etc.) For custom loops (created with EvLoop::__construct() ) these values may be accessed via corresponding properties and methods of the EvLoop class.

The instance of the default event loop itself can be fetched by means of EvLoop::defaultLoop() method.

Índice

  • Ev::backend — Returns an integer describing the backend used by libev
  • Ev::depth — Returns recursion depth
  • Ev::embeddableBackends — Returns the set of backends that are embeddable in other event loops
  • Ev::feedSignal — Feed a signal event info Ev
  • Ev::feedSignalEvent — Feed signal event into the default loop
  • Ev::iteration — Return the number of times the default event loop has polled for new events
  • Ev::now — Returns the time when the last iteration of the default event loop has started
  • Ev::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress
  • Ev::recommendedBackends — Returns a bit mask of recommended backends for current platform
  • Ev::resume — Resume previously suspended default event loop
  • Ev::run — Begin checking for events and calling callbacks for the default loop
  • Ev::sleep — Block the process for the given number of seconds
  • Ev::stop — Stops the default event loop
  • Ev::supportedBackends — Returns the set of backends supported by current libev configuration
  • Ev::suspend — Suspend the default event loop
  • Ev::time — Returns the current time in fractional seconds since the epoch
  • Ev::verify — Performs internal consistency checks(for debugging)


Returns an integer describing the backend used by libev

  • « Ev
  • Ev::depth »
  • PHP Manual
  • Ev
  • Returns an integer describing the backend used by libev

Ev::backend

(PECL ev >= 0.2.0)

Ev::backend — Returns an integer describing the backend used by libev

Descrição

final public static Ev::backend(): int

Returns an integer describing the backend used by libev . See Backend flags

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer(bit mask) describing the backend used by libev .

Veja Também

  • EvEmbed
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops
  • Ev::recommendedBackends() - Returns a bit mask of recommended backends for current platform
  • Ev::supportedBackends() - Returns the set of backends supported by current libev configuration
  • Backend flags


Returns recursion depth

  • « Ev::backend
  • Ev::embeddableBackends »
  • PHP Manual
  • Ev
  • Returns recursion depth

Ev::depth

(PECL ev >= 0.2.0)

Ev::depth — Returns recursion depth

Descrição

final public static Ev::depth(): int

The number of times Ev::run() was entered minus the number of times Ev::run() was exited normally, in other words, the recursion depth. Outside Ev::run() , this number is 0 . In a callback, this number is 1 , unless Ev::run() was invoked recursively (or from another thread), in which case it is higher.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

ev_depth() returns recursion depth of the default loop.

Veja Também

  • Ev::iteration() - Return the number of times the default event loop has polled for new events


Returns the set of backends that are embeddable in other event loops

  • « Ev::depth
  • Ev::feedSignal »
  • PHP Manual
  • Ev
  • Returns the set of backends that are embeddable in other event loops

Ev::embeddableBackends

(PECL ev >= 0.2.0)

Ev::embeddableBackends — Returns the set of backends that are embeddable in other event loops

Descrição

final public static Ev::embeddableBackends(): int

Returns the set of backends that are embeddable in other event loops.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a bit mask which can containing backend flags combined using bitwise OR operator.

Exemplos

Exemplo #1 Embedding loop created with kqueue backend into the default loop

<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
$embed = new EvEmbed($loop);
}
}

if (!$socket_loop) {
$socket_loop = $loop;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Veja Também

  • EvEmbed
  • Ev::recommendedBackends() - Returns a bit mask of recommended backends for current platform
  • Ev::supportedBackends() - Returns the set of backends supported by current libev configuration
  • Backend flags
  • Examples


Feed a signal event info Ev

  • « Ev::embeddableBackends
  • Ev::feedSignalEvent »
  • PHP Manual
  • Ev
  • Feed a signal event info Ev

Ev::feedSignal

(PECL ev >= 0.2.0)

Ev::feedSignal — Feed a signal event info Ev

Descrição

final public static Ev::feedSignal( int $signum ): void

Simulates a signal receive. It is safe to call this function at any time, from any context, including signal handlers or random threads. Its main use is to customise signal handling in the process.

Unlike Ev::feedSignalEvent() , this works regardless of which loop has registered the signal.

Parâmetros

signum

Signal number. See signal(7) man page for detals. You can use constants exported by pcntl extension.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Ev::feedSignalEvent() - Feed signal event into the default loop


Feed signal event into the default loop

  • « Ev::feedSignal
  • Ev::iteration »
  • PHP Manual
  • Ev
  • Feed signal event into the default loop

Ev::feedSignalEvent

(Não há informação de versão disponível, talvez apenas no Git)

Ev::feedSignalEvent — Feed signal event into the default loop

Descrição

final public static Ev::feedSignalEvent( int $signum ): void

Feed signal event into the default loop. Ev will react to this call as if the signal specified by signal had occurred.

Parâmetros

signum

Signal number. See signal(7) man page for detals. See also constants exported by pcntl extension.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Ev::feedSignal() - Feed a signal event info Ev


Return the number of times the default event loop has polled for new events

  • « Ev::feedSignalEvent
  • Ev::now »
  • PHP Manual
  • Ev
  • Return the number of times the default event loop has polled for new events

Ev::iteration

(PECL ev >= 0.2.0)

Ev::iteration — Return the number of times the default event loop has polled for new events

Descrição

final public static Ev::iteration(): int

Return the number of times the event loop has polled for new events. Sometimes useful as a generation counter.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns number of polls of the default event loop.

Veja Também

  • Ev::depth() - Returns recursion depth


Returns the time when the last iteration of the default event loop has started

  • « Ev::iteration
  • Ev::nowUpdate »
  • PHP Manual
  • Ev
  • Returns the time when the last iteration of the default event loop has started

Ev::now

(PECL ev >= 0.2.0)

Ev::now — Returns the time when the last iteration of the default event loop has started

Descrição

final public static Ev::now(): float

Returns the time when the last iteration of the default event loop has started. This is the time that timers( EvTimer and EvPeriodic ) are based on, and referring to it is usually faster then calling Ev::time() .

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns number of seconds(fractional) representing the time when the last iteration of the default event loop has started.

Veja Também

  • Ev::nowUpdate() - Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress


Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress

  • « Ev::now
  • Ev::recommendedBackends »
  • PHP Manual
  • Ev
  • Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress

Ev::nowUpdate

(PECL ev >= 0.2.0)

Ev::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress

Descrição

final public static Ev::nowUpdate(): void

Establishes the current time by querying the kernel, updating the time returned by Ev::now() in the progress. This is a costly operation and is usually done automatically within Ev::run() .

This method is rarely useful, but when some event callback runs for a very long time without entering the event loop, updating libev 's consideration of the current time is a good idea.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Ev::now() - Returns the time when the last iteration of the default event loop has started


Returns a bit mask of recommended backends for current platform

  • « Ev::nowUpdate
  • Ev::resume »
  • PHP Manual
  • Ev
  • Returns a bit mask of recommended backends for current platform

Ev::recommendedBackends

(PECL ev >= 0.2.0)

Ev::recommendedBackends — Returns a bit mask of recommended backends for current platform

Descrição

final public static Ev::recommendedBackends(): int

Returns the set of all backends compiled into this binary of libev and also recommended for this platform, meaning it will work for most file descriptor types. This set is often smaller than the one returned by ev_supported_backends() , as for example kqueue is broken on most BSD systems and will not be auto-detected unless it is requested explicitly. This is the set of backends that libev will probe no backends specified explicitly.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a bit mask which can containing backend flags combined using bitwise OR operator.

Exemplos

Exemplo #1 Embedding one loop into another

<?php
/*
* Try to get an embeddable event loop and embed it into the default event loop.
* If it is impossible, use the default
* loop. The default loop is stored in $loop_hi, while the embeddable loop is
* stored in $loop_lo(which is $loop_hi in the case no embeddable loop can be
* used).
*
* Sample translated to PHP
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi = EvLoop::defaultLoop();
$loop_lo = NULL;
$embed = NULL;

/*
* See if there is a chance of getting one that works
* (flags' value of 0 means autodetection)
*/
$loop_lo = Ev::embeddableBackends() & Ev::recommendedBackends()
? new EvLoop(Ev::embeddableBackends() & Ev::recommendedBackends())
: 0;

if ($loop_lo) {
$embed = new EvEmbed($loop_lo, function () {});
} else {
$loop_lo = $loop_hi;
}
?>

Veja Também

  • EvEmbed
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops
  • Ev::supportedBackends() - Returns the set of backends supported by current libev configuration
  • Backend flags
  • Examples


Resume previously suspended default event loop

  • « Ev::recommendedBackends
  • Ev::run »
  • PHP Manual
  • Ev
  • Resume previously suspended default event loop

Ev::resume

(PECL ev >= 0.2.0)

Ev::resume — Resume previously suspended default event loop

Descrição

final public static Ev::resume(): void

Ev::suspend() and Ev::resume() methods suspend and resume a loop correspondingly.

All timer watchers will be delayed by the time spend between suspend and resume , and all periodic watchers will be rescheduled(that is, they will lose any events that would have occurred while suspended).

After calling Ev::suspend() it is not allowed to call any function on the given loop other than Ev::resume() . Also it is not allowed to call Ev::resume() without a previous call to Ev::suspend() .

Calling suspend / resume has the side effect of updating the event loop time(see Ev::nowUpdate() ).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Ev::suspend() - Suspend the default event loop


Begin checking for events and calling callbacks for the default loop

  • « Ev::resume
  • Ev::sleep »
  • PHP Manual
  • Ev
  • Begin checking for events and calling callbacks for the default loop

Ev::run

(PECL ev >= 0.2.0)

Ev::run — Begin checking for events and calling callbacks for the default loop

Descrição

final public static Ev::run( int $flags = ?): void

Begin checking for events and calling callbacks for the default loop . Returns when a callback calls Ev::stop() method, or the flags are nonzero(in which case the return value is true) or when there are no active watchers which reference the loop( EvWatcher::keepalive() is true), in which case the return value will be false. The return value can generally be interpreted as if true, there is more work left to do .

Parâmetros

flags

Optional parameter flags can be one of the following:

List for possible values of flags
flags | Description
0 | The default behavior described above
Ev::RUN_ONCE | Block at most one(wait, but don't loop)
Ev::RUN_NOWAIT | Don't block at all(fetch/handle events, but don't wait)

See the run flag constants .

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Ev::stop() - Stops the default event loop
  • EvLoop::run() - Begin checking for events and calling callbacks for the loop


Block the process for the given number of seconds

  • « Ev::run
  • Ev::stop »
  • PHP Manual
  • Ev
  • Block the process for the given number of seconds

Ev::sleep

(PECL ev >= 0.2.0)

Ev::sleep — Block the process for the given number of seconds

Descrição

final public static Ev::sleep( float $seconds ): void

Block the process for the given number of seconds.

Parâmetros

seconds

Fractional number of seconds

Valor Retornado

Nenhum valor é retornado.


Stops the default event loop

  • « Ev::sleep
  • Ev::supportedBackends »
  • PHP Manual
  • Ev
  • Stops the default event loop

Ev::stop

(PECL ev >= 0.2.0)

Ev::stop — Stops the default event loop

Descrição

final public static Ev::stop( int $how = ?): void

Stops the default event loop

Parâmetros

how

One of Ev::BREAK_* constants .

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Ev::run() - Begin checking for events and calling callbacks for the default loop


Returns the set of backends supported by current libev configuration

  • « Ev::stop
  • Ev::suspend »
  • PHP Manual
  • Ev
  • Returns the set of backends supported by current libev configuration

Ev::supportedBackends

(PECL ev >= 0.2.0)

Ev::supportedBackends — Returns the set of backends supported by current libev configuration

Descrição

final public static Ev::supportedBackends(): int

Returns the set of backends supported by current libev configuration.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a bit mask which can containing backend flags combined using bitwise OR operator.

Exemplos

Exemplo #1 Embedding loop created with kqueue backend into the default loop

<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
$embed = new EvEmbed($loop);
}
}

if (!$socket_loop) {
$socket_loop = $loop;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Veja Também

  • EvEmbed
  • Ev::recommendedBackends() - Returns a bit mask of recommended backends for current platform
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops
  • Backend flags
  • Examples


Suspend the default event loop

  • « Ev::supportedBackends
  • Ev::time »
  • PHP Manual
  • Ev
  • Suspend the default event loop

Ev::suspend

(PECL ev >= 0.2.0)

Ev::suspend — Suspend the default event loop

Descrição

final public static Ev::suspend(): void

Ev::suspend() and Ev::resume() methods suspend and resume the default loop correspondingly.

All timer watchers will be delayed by the time spend between suspend and resume , and all periodic watchers will be rescheduled(that is, they will lose any events that would have occurred while suspended).

After calling Ev::suspend() it is not allowed to call any function on the given loop other than Ev::resume() . Also it is not allowed to call Ev::resume() without a previous call to Ev::suspend() .

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Ev::resume() - Resume previously suspended default event loop


Returns the current time in fractional seconds since the epoch

  • « Ev::suspend
  • Ev::verify »
  • PHP Manual
  • Ev
  • Returns the current time in fractional seconds since the epoch

Ev::time

(PECL ev >= 0.2.0)

Ev::time — Returns the current time in fractional seconds since the epoch

Descrição

final public static Ev::time(): float

Returns the current time in fractional seconds since the epoch. Consider using Ev::now()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current time in fractional seconds since the epoch.

Veja Também

  • Ev::now() - Returns the time when the last iteration of the default event loop has started


Performs internal consistency checks(for debugging)

  • « Ev::time
  • EvCheck »
  • PHP Manual
  • Ev
  • Performs internal consistency checks(for debugging)

Ev::verify

(PECL ev >= 0.2.0)

Ev::verify — Performs internal consistency checks(for debugging)

Descrição

final public static Ev::verify(): void

Performs internal consistency checks(for debugging libev ) and abort the program if any data structures were found to be corrupted.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


The EvCheck class

(PECL ev >= 0.2.0)

Introdução

EvPrepare and EvCheck watchers are usually used in pairs. EvPrepare watchers get invoked before the process blocks, EvCheck afterwards.

It is not allowed to call EvLoop::run() or similar methods or functions that enter the current event loop from either EvPrepare or EvCheck watchers. Other loops than the current one are fine, however. The rationale behind this is that one don't need to check for recursion in those watchers, i.e. the sequence will always be: EvPrepare -> blocking -> EvCheck , so having a watcher of each kind they will always be called in pairs bracketing the blocking call.

The main purpose is to integrate other event mechanisms into libev and their use is somewhat advanced. They could be used, for example, to track variable changes, implement custom watchers, integrate net-snmp or a coroutine library and lots more. They are also occasionally useful to cache some data and want to flush it before blocking.

It is recommended to give EvCheck watchers highest( Ev::MAXPRI ) priority, to ensure that they are being run before any other watchers after the poll (this doesn’t matter for EvPrepare watchers).

Also, EvCheck watchers should not activate/feed events. While libev fully supports this, they might get executed before other EvCheck watchers did their job.

Resumo da classe

class EvCheck extends EvWatcher {
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static createStopped( string $callback , string $data = ?, string $priority = ?): object
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Índice

  • EvCheck::__construct — Constructs the EvCheck watcher object
  • EvCheck::createStopped — Create instance of a stopped EvCheck watcher


Constructs the EvCheck watcher object

  • « EvCheck
  • EvCheck::createStopped »
  • PHP Manual
  • EvCheck
  • Constructs the EvCheck watcher object

EvCheck::__construct

(PECL ev >= 0.2.0)

EvCheck::__construct — Constructs the EvCheck watcher object

Descrição

public EvCheck::__construct( callable $callback , mixed $data = ?, int $priority = ?)

Constructs the EvCheck watcher object.

Parâmetros

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Veja Também

  • EvPrepare
  • EvLoop::check() - Creates EvCheck object associated with the current event loop instance


Create instance of a stopped EvCheck watcher

  • « EvCheck::__construct
  • EvChild »
  • PHP Manual
  • EvCheck
  • Create instance of a stopped EvCheck watcher

EvCheck::createStopped

(PECL ev >= 0.2.0)

EvCheck::createStopped — Create instance of a stopped EvCheck watcher

Descrição

final public static EvCheck::createStopped( string $callback , string $data = ?, string $priority = ?): object

Create instance of a stopped EvCheck watcher

Parâmetros

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Returns EvCheck object on success.

Veja Também

  • EvPrepare


The EvChild class

(PECL ev >= 0.2.0)

Introdução

EvChild watchers trigger when the process receives a SIGCHLD in response to some child status changes (most typically when a child dies or exits). It is permissible to install an EvChild watcher after the child has been forked(which implies it might have already exited), as long as the event loop isn't entered(or is continued from a watcher), i.e. forking and then immediately registering a watcher for the child is fine, but forking and registering a watcher a few event loop iterations later or in the next callback invocation is not.

It is allowed to register EvChild watchers in the default loop only.

Resumo da classe

class EvChild extends EvWatcher {
/* Propriedades */
public $pid;
public $rpid;
public $rstatus;
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct(
int $pid ,
bool $trace ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
final public static createStopped(
int $pid ,
bool $trace ,
callable $callback ,
mixed $data = ?,
int $priority = ?
): object
public set( int $pid , bool $trace ): void
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Propriedades

pid

Readonly . The process ID this watcher watches out for, or 0 , meaning any process ID.

rpid

Readonly .The process ID that detected a status change.

rstatus

Readonly . The process exit status caused by rpid .

Índice

  • EvChild::__construct — Constructs the EvChild watcher object
  • EvChild::createStopped — Create instance of a stopped EvCheck watcher
  • EvChild::set — Configures the watcher


Constructs the EvChild watcher object

  • « EvChild
  • EvChild::createStopped »
  • PHP Manual
  • EvChild
  • Constructs the EvChild watcher object

EvChild::__construct

(PECL ev >= 0.2.0)

EvChild::__construct — Constructs the EvChild watcher object

Descrição

public EvChild::__construct(
int $pid ,
bool $trace ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)

Constructs the EvChild watcher object.

Call the callback when a status change for process ID pid (or any PID if pid is 0 ) has been received(a status change happens when the process terminates or is killed, or, when trace is true, additionally when it is stopped or continued). In other words, when the process receives a SIGCHLD , Ev will fetch the outstanding exit/wait status for all changed/zombie children and call the callback.

It is valid to install a child watcher after an EvChild has exited but before the event loop has started its next iteration. For example, first one calls fork , then the new child process might exit, and only then an EvChild watcher is installed in the parent for the new PID .

You can access both exit/tracing status and pid by using the rstatus and rpid properties of the watcher object.

The number of PID watchers per PID is unlimited. All of them will be called.

The EvChild::createStopped() method doesn't start(activate) the newly created watcher.

Parâmetros

pid

Wait for status changes of process PID(or any process if PID is specified as 0 ).

trace

If false, only activate the watcher when the process terminates. Otherwise(true) additionally activate the watcher when the process is stopped or continued.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Veja Também

  • EvLoop::child() - Creates EvChild object associated with the current event loop


Create instance of a stopped EvCheck watcher

  • « EvChild::__construct
  • EvChild::set »
  • PHP Manual
  • EvChild
  • Create instance of a stopped EvCheck watcher

EvChild::createStopped

(PECL ev >= 0.2.0)

EvChild::createStopped — Create instance of a stopped EvCheck watcher

Descrição

final public static EvChild::createStopped(
int $pid ,
bool $trace ,
callable $callback ,
mixed $data = ?,
int $priority = ?
): object

The same as EvChild::__construct() , but doesn't start the watcher automatically.

Parâmetros

pid

The same as for EvChild::__construct()

trace

The same as for EvChild::__construct()

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Veja Também

  • EvChild::__construct() - Constructs the EvChild watcher object
  • EvLoop::child() - Creates EvChild object associated with the current event loop


Configures the watcher

  • « EvChild::createStopped
  • EvEmbed »
  • PHP Manual
  • EvChild
  • Configures the watcher

EvChild::set

(PECL ev >= 0.2.0)

EvChild::set — Configures the watcher

Descrição

public EvChild::set( int $pid , bool $trace ): void

Parâmetros

pid

The same as for EvChild::__construct()

trace

The same as for EvChild::__construct()

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvChild::__construct() - Constructs the EvChild watcher object


The EvEmbed class

(PECL ev >= 0.2.0)

Introdução

Used to embed one event loop into another.

Resumo da classe

class EvEmbed extends EvWatcher {
/* Propriedades */
public $embed;
/* Métodos */
public __construct(
object $other ,
callable $callback = ?,
mixed $data = ?,
int $priority = ?
)
final public static createStopped(
object $other ,
callable $callback = ?,
mixed $data = ?,
int $priority = ?
): void
public set( object $other ): void
public sweep(): void
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Propriedades

is_active

data

is_pending

priority

embed

Índice

  • EvEmbed::__construct — Constructs the EvEmbed object
  • EvEmbed::createStopped — Create stopped EvEmbed watcher object
  • EvEmbed::set — Configures the watcher
  • EvEmbed::sweep — Make a single, non-blocking sweep over the embedded loop


Constructs the EvEmbed object

  • « EvEmbed
  • EvEmbed::createStopped »
  • PHP Manual
  • EvEmbed
  • Constructs the EvEmbed object

EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__construct — Constructs the EvEmbed object

Descrição

public EvEmbed::__construct(
object $other ,
callable $callback = ?,
mixed $data = ?,
int $priority = ?
)

This is a rather advanced watcher type that lets to embed one event loop into another(currently only IO events are supported in the embedded loop, other types of watchers might be handled in a delayed or incorrect fashion and must not be used).

See » the libev documentation for details.

This watcher is most useful on BSD systems without working kqueue to still be able to handle a large number of sockets. See example below.

Parâmetros

other

Instance of EvLoop . The loop to embed, this loop must be embeddable(see Ev::embeddableBackends() ).

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Exemplos

Exemplo #1 Embedding loop created with kqueue backend into the default loop

<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
$embed = new EvEmbed($loop);
}
}

if (!$socket_loop) {
$socket_loop = $loop;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Veja Também

  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops


Create stopped EvEmbed watcher object

  • « EvEmbed::__construct
  • EvEmbed::set »
  • PHP Manual
  • EvEmbed
  • Create stopped EvEmbed watcher object

EvEmbed::createStopped

(PECL ev >= 0.2.0)

EvEmbed::createStopped — Create stopped EvEmbed watcher object

Descrição

final public static EvEmbed::createStopped(
object $other ,
callable $callback = ?,
mixed $data = ?,
int $priority = ?
): void

The same as EvEmbed::__construct() , but doesn't start the watcher automatically.

Parâmetros

other

The same as for EvEmbed::__construct()

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Returns stopped EvEmbed object on success.

Veja Também

  • EvEmbed::__construct() - Constructs the EvEmbed object
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops


Configures the watcher

  • « EvEmbed::createStopped
  • EvEmbed::sweep »
  • PHP Manual
  • EvEmbed
  • Configures the watcher

EvEmbed::set

(PECL ev >= 0.2.0)

EvEmbed::set — Configures the watcher

Descrição

public EvEmbed::set( object $other ): void

Configures the watcher to use other event loop object.

Parâmetros

other

The same as for EvEmbed::__construct()

Valor Retornado

Nenhum valor é retornado.


Make a single, non-blocking sweep over the embedded loop

  • « EvEmbed::set
  • EvFork »
  • PHP Manual
  • EvEmbed
  • Make a single, non-blocking sweep over the embedded loop

EvEmbed::sweep

(PECL ev >= 0.2.0)

EvEmbed::sweep — Make a single, non-blocking sweep over the embedded loop

Descrição

public EvEmbed::sweep(): void

Make a single, non-blocking sweep over the embedded loop. Works similarly to the following, but in the most appropriate way for embedded loops:

<?php
$other->start(Ev::RUN_NOWAIT);
?>

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvWatcher::start() - Starts the watcher


The EvFork class

(PECL ev >= 0.2.0)

Introdução

Fork watchers are called when a fork() was detected (usually because whoever signalled libev about it by calling EvLoop::fork() ). The invocation is done before the event loop blocks next and before EvCheck watchers are being called, and only in the child after the fork. Note, that if whoever calling EvLoop::fork() calls it in the wrong process, the fork handlers will be invoked, too.

Resumo da classe

class EvFork extends EvWatcher {
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct( callable $callback , mixed $data = null , int $priority = 0 )
final public static createStopped( string $callback , string $data = ?, string $priority = ?): object
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Índice

  • EvFork::__construct — Constructs the EvFork watcher object
  • EvFork::createStopped — Creates a stopped instance of EvFork watcher class


Constructs the EvFork watcher object

  • « EvFork
  • EvFork::createStopped »
  • PHP Manual
  • EvFork
  • Constructs the EvFork watcher object

EvFork::__construct

(PECL ev >= 0.2.0)

EvFork::__construct — Constructs the EvFork watcher object

Descrição

public EvFork::__construct( callable $callback , mixed $data = null , int $priority = 0 )

Constructs the EvFork watcher object and starts the watcher automatically.

Parâmetros

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Veja Também

  • EvLoop::fork() - Creates EvFork watcher object associated with the current event loop instance
  • EvCheck


Creates a stopped instance of EvFork watcher class

  • « EvFork::__construct
  • EvIdle »
  • PHP Manual
  • EvFork
  • Creates a stopped instance of EvFork watcher class

EvFork::createStopped

(PECL ev >= 0.2.0)

EvFork::createStopped — Creates a stopped instance of EvFork watcher class

Descrição

final public static EvFork::createStopped( string $callback , string $data = ?, string $priority = ?): object

The same as EvFork::__construct() , but doesn't start the watcher automatically.

Parâmetros

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Returns EvFork(stopped) object on success.

Veja Também

  • EvFork::__construct() - Constructs the EvFork watcher object


The EvIdle class

(PECL ev >= 0.2.0)

Introdução

EvIdle watchers trigger events when no other events of the same or higher priority are pending ( EvPrepare , EvCheck and other EvIdle watchers do not count as receiving events ).

Thus, as long as the process is busy handling sockets or timeouts(or even signals) of the same or higher priority it will not be triggered. But when the process is in idle(or only lower-priority watchers are pending), the EvIdle watchers are being called once per event loop iteration - until stopped, that is, or the process receives more events and becomes busy again with higher priority stuff.

Apart from keeping the process non-blocking(which is a useful on its own sometimes), EvIdle watchers are a good place to do "pseudo-background processing" , or delay processing stuff to after the event loop has handled all outstanding events.

The most noticeable effect is that as long as any idle watchers are active, the process will not block when waiting for new events.

Resumo da classe

class EvIdle extends EvWatcher {
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static createStopped( string $callback , mixed $data = ?, int $priority = ?): object
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Índice

  • EvIdle::__construct — Constructs the EvIdle watcher object
  • EvIdle::createStopped — Creates instance of a stopped EvIdle watcher object


Constructs the EvIdle watcher object

  • « EvIdle
  • EvIdle::createStopped »
  • PHP Manual
  • EvIdle
  • Constructs the EvIdle watcher object

EvIdle::__construct

(PECL ev >= 0.2.0)

EvIdle::__construct — Constructs the EvIdle watcher object

Descrição

public EvIdle::__construct( callable $callback , mixed $data = ?, int $priority = ?)

Constructs the EvIdle watcher object and starts the watcher automatically.

Parâmetros

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Veja Também

  • EvIdle::createStopped() - Creates instance of a stopped EvIdle watcher object
  • EvLoop::idle() - Creates EvIdle watcher object associated with the current event loop instance


Creates instance of a stopped EvIdle watcher object

  • « EvIdle::__construct
  • EvIo »
  • PHP Manual
  • EvIdle
  • Creates instance of a stopped EvIdle watcher object

EvIdle::createStopped

(PECL ev >= 0.2.0)

EvIdle::createStopped — Creates instance of a stopped EvIdle watcher object

Descrição

final public static EvIdle::createStopped( string $callback , mixed $data = ?, int $priority = ?): object

The same as EvIdle::__construct() , but doesn't start the watcher automatically.

Parâmetros

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Returns EvIdle object on success.

Veja Também

  • EvIdle::__construct() - Constructs the EvIdle watcher object
  • EvLoop::idle() - Creates EvIdle watcher object associated with the current event loop instance


The EvIo class

(PECL ev >= 0.2.0)

Introdução

EvIo watchers check whether a file descriptor(or socket, or a stream castable to numeric file descriptor) is readable or writable in each iteration of the event loop, or, more precisely, when reading would not block the process and writing would at least be able to write some data. This behaviour is called level-triggering because events are kept receiving as long as the condition persists. To stop receiving events just stop the watcher.

The number of read and/or write event watchers per fd is unlimited. Setting all file descriptors to non-blocking mode is also usually a good idea(but not required).

Another thing to watch out for is that it is quite easy to receive false readiness notifications, i.e. the callback might be called with Ev::READ but a subsequent read() will actually block because there is no data. It is very easy to get into this situation. Thus it is best to always use non-blocking I/O: An extra read() returning EAGAIN (or similar) is far preferable to a program hanging until some data arrives.

If for some reason it is impossible to run the fd in non-blocking mode, then separately re-test whether a file descriptor is really ready. Some people additionally use SIGALRM and an interval timer, just to be sure thry won't block infinitely.

Always consider using non-blocking mode.

Resumo da classe

class EvIo extends EvWatcher {
/* Propriedades */
public $fd;
public $events;
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = ?,
int $priority = ?
)
final public static createStopped(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo
public set( mixed $fd , int $events ): void
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Propriedades

fd

events

Índice

  • EvIo::__construct — Constructs EvIo watcher object
  • EvIo::createStopped — Create stopped EvIo watcher object
  • EvIo::set — Configures the watcher


Constructs EvIo watcher object

  • « EvIo
  • EvIo::createStopped »
  • PHP Manual
  • EvIo
  • Constructs EvIo watcher object

EvIo::__construct

(PECL ev >= 0.2.0)

EvIo::__construct — Constructs EvIo watcher object

Descrição

public EvIo::__construct(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = ?,
int $priority = ?
)

Constructs EvIo watcher object and starts the watcher automatically.

Parâmetros

fd

Can be a stream opened with fopen() or similar functions, numeric file descriptor, or socket.

events

Ev::READ and/or Ev::WRITE . See the bit masks .

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Veja Também

  • EvIo::createStopped() - Create stopped EvIo watcher object
  • EvLoop::io() - Create EvIo watcher object associated with the current event loop instance


Create stopped EvIo watcher object

  • « EvIo::__construct
  • EvIo::set »
  • PHP Manual
  • EvIo
  • Create stopped EvIo watcher object

EvIo::createStopped

(PECL ev >= 0.2.0)

EvIo::createStopped — Create stopped EvIo watcher object

Descrição

final public static EvIo::createStopped(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo

The same as EvIo::__construct() , but doesn't start the watcher automatically.

Parâmetros

fd

The same as for EvIo::__construct()

events

The same as for EvIo::__construct()

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Returns EvIo object on success.

Veja Também

  • EvIo::__construct() - Constructs EvIo watcher object
  • EvLoop::io() - Create EvIo watcher object associated with the current event loop instance


Configures the watcher

  • « EvIo::createStopped
  • EvLoop »
  • PHP Manual
  • EvIo
  • Configures the watcher

EvIo::set

(PECL ev >= 0.2.0)

EvIo::set — Configures the watcher

Descrição

public EvIo::set( mixed $fd , int $events ): void

Configures the EvIo watcher

Parâmetros

fd

The same as for EvIo::__construct()

events

The same as for EvIo::__construct()

Valor Retornado

Nenhum valor é retornado.


The EvLoop class

(PECL ev >= 0.2.0)

Introdução

Represents an event loop that is always distinct from the default loop . Unlike the default loop , it cannot handle EvChild watchers.

Having threads we have to create a loop per thread, and use the default loop in the parent thread.

The default event loop is initialized automatically by Ev . It is accessible via methods of the Ev class, or via EvLoop::defaultLoop() method.

Resumo da classe

final class EvLoop {
/* Propriedades */
public $data;
public $backend;
public $is_default_loop;
public $iteration;
public $pending;
public $io_interval;
public $timeout_interval;
public $depth;
/* Métodos */
public __construct(
int $flags = ?,
mixed $data = NULL ,
float $io_interval = 0.0 ,
float $timeout_interval = 0.0
)
public backend(): int
final public check( string $callback , string $data = ?, string $priority = ?): EvCheck
final public child(
string $pid ,
string $trace ,
string $callback ,
string $data = ?,
string $priority = ?
): EvChild
public static defaultLoop(
int $flags = Ev::FLAG_AUTO ,
mixed $data = NULL ,
float $io_interval = 0. ,
float $timeout_interval = 0.
): EvLoop
final public embed(
string $other ,
string $callback = ?,
string $data = ?,
string $priority = ?
): EvEmbed
final public fork( callable $callback , mixed $data = null , int $priority = 0 ): EvFork
final public idle( callable $callback , mixed $data = null , int $priority = 0 ): EvIdle
public invokePending(): void
final public io(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo
public loopFork(): void
public now(): float
public nowUpdate(): void
final public periodic(
float $offset ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvPeriodic
final public prepare( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare
public resume(): void
public run( int $flags = 0 ): void
final public signal(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal
final public stat(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvStat
public stop( int $how = ?): void
public suspend(): void
final public timer(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer
public verify(): void
}

Propriedades

data

Custom data attached to loop

backend

Readonly . The backend flags indicating the event backend in use.

is_default_loop

Readonly . true if it is the default event loop.

iteration

The current iteration count of the loop. See Ev::iteration()

pending

The number of pending watchers. 0 indicates that there are no watchers pending.

io_interval

Higher io_interval allows libev to spend more time collecting EvIo events, so more events can be handled per iteration, at the cost of increasing latency. Timeouts (both EvPeriodic and EvTimer ) will not be affected. Setting this to a non-zero value will introduce an additional sleep() call into most loop iterations. The sleep time ensures that libev will not poll for EvIo events more often than once per this interval, on average. Many programs can usually benefit by setting the io_interval to a value near 0.1 , which is often enough for interactive servers(not for games). It usually doesn't make much sense to set it to a lower value than 0.01 , as this approaches the timing granularity of most systems.

See also » FUNCTIONS CONTROLLING EVENT LOOPS .

timeout_interval

Higher timeout_interval allows libev to spend more time collecting timeouts, at the expense of increased latency/jitter/inexactness(the watcher callback will be called later). EvIo watchers will not be affected. Setting this to a non-null value will not introduce any overhead in libev . See also » FUNCTIONS CONTROLLING EVENT LOOPS .

depth

The recursion depth. See Ev::depth() .

Índice

  • EvLoop::backend — Returns an integer describing the backend used by libev
  • EvLoop::check — Creates EvCheck object associated with the current event loop instance
  • EvLoop::child — Creates EvChild object associated with the current event loop
  • EvLoop::__construct — Constructs the event loop object
  • EvLoop::defaultLoop — Returns or creates the default event loop
  • EvLoop::embed — Creates an instance of EvEmbed watcher associated with the current EvLoop object
  • EvLoop::fork — Creates EvFork watcher object associated with the current event loop instance
  • EvLoop::idle — Creates EvIdle watcher object associated with the current event loop instance
  • EvLoop::invokePending — Invoke all pending watchers while resetting their pending state
  • EvLoop::io — Create EvIo watcher object associated with the current event loop instance
  • EvLoop::loopFork — Must be called after a fork
  • EvLoop::now — Returns the current "event loop time"
  • EvLoop::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress
  • EvLoop::periodic — Creates EvPeriodic watcher object associated with the current event loop instance
  • EvLoop::prepare — Creates EvPrepare watcher object associated with the current event loop instance
  • EvLoop::resume — Resume previously suspended default event loop
  • EvLoop::run — Begin checking for events and calling callbacks for the loop
  • EvLoop::signal — Creates EvSignal watcher object associated with the current event loop instance
  • EvLoop::stat — Creates EvStat watcher object associated with the current event loop instance
  • EvLoop::stop — Stops the event loop
  • EvLoop::suspend — Suspend the loop
  • EvLoop::timer — Creates EvTimer watcher object associated with the current event loop instance
  • EvLoop::verify — Performs internal consistency checks(for debugging)


Returns an integer describing the backend used by libev

  • « EvLoop
  • EvLoop::check »
  • PHP Manual
  • EvLoop
  • Returns an integer describing the backend used by libev

EvLoop::backend

(PECL ev >= 0.2.0)

EvLoop::backend — Returns an integer describing the backend used by libev

Descrição

public EvLoop::backend(): int

The same as Ev::backend() , but for the loop instance.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer describing the backend used by libev. See Ev::backend() .

Veja Também

  • Ev::backend() - Returns an integer describing the backend used by libev


Creates EvCheck object associated with the current event loop instance

  • « EvLoop::backend
  • EvLoop::child »
  • PHP Manual
  • EvLoop
  • Creates EvCheck object associated with the current event loop instance

EvLoop::check

(PECL ev >= 0.2.0)

EvLoop::check — Creates EvCheck object associated with the current event loop instance

Descrição

final public EvLoop::check( string $callback , string $data = ?, string $priority = ?): EvCheck

Creates EvCheck object associated with the current event loop instance.

Parâmetros

All parameters have the same meaning as for EvCheck::__construct()

Valor Retornado

Returns EvCheck object on success.

Veja Também

  • EvCheck::__construct() - Constructs the EvCheck watcher object


Creates EvChild object associated with the current event loop

  • « EvLoop::check
  • EvLoop::__construct »
  • PHP Manual
  • EvLoop
  • Creates EvChild object associated with the current event loop

EvLoop::child

(PECL ev >= 0.2.0)

EvLoop::child — Creates EvChild object associated with the current event loop

Descrição

final public EvLoop::child(
string $pid ,
string $trace ,
string $callback ,
string $data = ?,
string $priority = ?
): EvChild

Creates EvChild object associated with the current event loop.

Parâmetros

All parameters have the same meaning as for EvChild::__construct()

Valor Retornado

Returns EvChild object on success.

Veja Também

  • EvChild::__construct() - Constructs the EvChild watcher object


Constructs the event loop object

  • « EvLoop::child
  • EvLoop::defaultLoop »
  • PHP Manual
  • EvLoop
  • Constructs the event loop object

EvLoop::__construct

(PECL ev >= 0.2.0)

EvLoop::__construct — Constructs the event loop object

Descrição

public EvLoop::__construct(
int $flags = ?,
mixed $data = NULL ,
float $io_interval = 0.0 ,
float $timeout_interval = 0.0
)

Constructs the event loop object.

Parâmetros

flags

One of the event loop flags

data

Custom data associated with the loop.

io_interval

See io_interval

timeout_interval

See timeout_interval

Veja Também

  • EvLoop::defaultLoop() - Returns or creates the default event loop


Returns or creates the default event loop

  • « EvLoop::__construct
  • EvLoop::embed »
  • PHP Manual
  • EvLoop
  • Returns or creates the default event loop

EvLoop::defaultLoop

(PECL ev >= 0.2.0)

EvLoop::defaultLoop — Returns or creates the default event loop

Descrição

public static EvLoop::defaultLoop(
int $flags = Ev::FLAG_AUTO ,
mixed $data = NULL ,
float $io_interval = 0. ,
float $timeout_interval = 0.
): EvLoop

If the default event loop is not created, EvLoop::defaultLoop() creates it with the specified parameters. Otherwise, it just returns the object representing previously created instance ignoring all the parameters.

Parâmetros

flags

One of the event loop flags

data

Custom data to associate with the loop.

io_collect_interval

See io_interval

timeout_collect_interval

See timeout_interval

Valor Retornado

Returns EvLoop object on success.

Veja Também

  • EvLoop::__construct() - Constructs the event loop object


Creates an instance of EvEmbed watcher associated with the current EvLoop object

  • « EvLoop::defaultLoop
  • EvLoop::fork »
  • PHP Manual
  • EvLoop
  • Creates an instance of EvEmbed watcher associated with the current EvLoop object

EvLoop::embed

(PECL ev >= 0.2.0)

EvLoop::embed — Creates an instance of EvEmbed watcher associated with the current EvLoop object

Descrição

final public EvLoop::embed(
string $other ,
string $callback = ?,
string $data = ?,
string $priority = ?
): EvEmbed

Creates an instance of EvEmbed watcher associated with the current EvLoop object.

Parâmetros

All parameters have the same meaning as for EvEmbed::__construct() .

Valor Retornado

Returns EvEmbed object on success.

Veja Também

  • EvEmbed::__construct() - Constructs the EvEmbed object


Creates EvFork watcher object associated with the current event loop instance

  • « EvLoop::embed
  • EvLoop::idle »
  • PHP Manual
  • EvLoop
  • Creates EvFork watcher object associated with the current event loop instance

EvLoop::fork

(PECL ev >= 0.2.0)

EvLoop::fork — Creates EvFork watcher object associated with the current event loop instance

Descrição

final public EvLoop::fork( callable $callback , mixed $data = null , int $priority = 0 ): EvFork

Creates EvFork watcher object associated with the current event loop instance

Parâmetros

All parameters have the same meaning as for EvFork::__construct()

Valor Retornado

Returns EvFork object on success.

Veja Também

  • EvFork::__construct() - Constructs the EvFork watcher object


Creates EvIdle watcher object associated with the current event loop instance

  • « EvLoop::fork
  • EvLoop::invokePending »
  • PHP Manual
  • EvLoop
  • Creates EvIdle watcher object associated with the current event loop instance

EvLoop::idle

(PECL ev >= 0.2.0)

EvLoop::idle — Creates EvIdle watcher object associated with the current event loop instance

Descrição

final public EvLoop::idle( callable $callback , mixed $data = null , int $priority = 0 ): EvIdle

Creates EvIdle watcher object associated with the current event loop instance

Parâmetros

All the parameters have the same meaning as for EvIdle::__construct()

Valor Retornado

Returns EvIdle object on success.

Veja Também

  • EvIdle::__construct() - Constructs the EvIdle watcher object


Invoke all pending watchers while resetting their pending state

  • « EvLoop::idle
  • EvLoop::io »
  • PHP Manual
  • EvLoop
  • Invoke all pending watchers while resetting their pending state

EvLoop::invokePending

(PECL ev >= 0.2.0)

EvLoop::invokePending — Invoke all pending watchers while resetting their pending state

Descrição

public EvLoop::invokePending(): void

Invoke all pending watchers while resetting their pending state.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Create EvIo watcher object associated with the current event loop instance

  • « EvLoop::invokePending
  • EvLoop::loopFork »
  • PHP Manual
  • EvLoop
  • Create EvIo watcher object associated with the current event loop instance

EvLoop::io

(PECL ev >= 0.2.0)

EvLoop::io — Create EvIo watcher object associated with the current event loop instance

Descrição

final public EvLoop::io(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo

Create EvIo watcher object associated with the current event loop instance.

Parâmetros

All parameters have the same meaning as for EvIo::__construct()

Valor Retornado

Returns EvIo object on success.

Veja Também

  • EvIo::__construct() - Constructs EvIo watcher object


Must be called after a fork

  • « EvLoop::io
  • EvLoop::now »
  • PHP Manual
  • EvLoop
  • Must be called after a fork

EvLoop::loopFork

(PECL ev >= 0.2.0)

EvLoop::loopFork — Must be called after a fork

Descrição

public EvLoop::loopFork(): void

Must be called after a fork in the child, before entering or continuing the event loop. An alternative is to use Ev::FLAG_FORKCHECK which calls this function automatically, at some performance loss (refer to the » libev documentation ).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Returns the current "event loop time"

  • « EvLoop::loopFork
  • EvLoop::nowUpdate »
  • PHP Manual
  • EvLoop
  • Returns the current "event loop time"

EvLoop::now

(PECL ev >= 0.2.0)

EvLoop::now — Returns the current "event loop time"

Descrição

public EvLoop::now(): float

Returns the current "event loop time", which is the time the event loop received events and started processing them. This timestamp does not change as long as callbacks are being processed, and this is also the base time used for relative timers. You can treat it as the timestamp of the event occurring(or more correctly, libev finding out about it).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns time of the event loop in (fractional) seconds.

Veja Também

  • Ev::now() - Returns the time when the last iteration of the default event loop has started


Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress

  • « EvLoop::now
  • EvLoop::periodic »
  • PHP Manual
  • EvLoop
  • Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress

EvLoop::nowUpdate

(PECL ev >= 0.2.0)

EvLoop::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress

Descrição

public EvLoop::nowUpdate(): void

Establishes the current time by querying the kernel, updating the time returned by EvLoop::now() in the progress. This is a costly operation and is usually done automatically within EvLoop::run() .

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvLoop::now() - Returns the current "event loop time"
  • Ev::nowUpdate() - Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress


Creates EvPeriodic watcher object associated with the current event loop instance

  • « EvLoop::nowUpdate
  • EvLoop::prepare »
  • PHP Manual
  • EvLoop
  • Creates EvPeriodic watcher object associated with the current event loop instance

EvLoop::periodic

(PECL ev >= 0.2.0)

EvLoop::periodic — Creates EvPeriodic watcher object associated with the current event loop instance

Descrição

final public EvLoop::periodic(
float $offset ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvPeriodic

Creates EvPeriodic watcher object associated with the current event loop instance

Parâmetros

All parameters have the same maening as for EvPeriodic::__construct()

Valor Retornado

Returns EvPeriodic object on success.

Veja Também

  • EvPeriodic::__construct() - Constructs EvPeriodic watcher object


Creates EvPrepare watcher object associated with the current event loop instance

  • « EvLoop::periodic
  • EvLoop::resume »
  • PHP Manual
  • EvLoop
  • Creates EvPrepare watcher object associated with the current event loop instance

EvLoop::prepare

(PECL ev >= 0.2.0)

EvLoop::prepare — Creates EvPrepare watcher object associated with the current event loop instance

Descrição

final public EvLoop::prepare( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare

Creates EvPrepare watcher object associated with the current event loop instance

Parâmetros

All parameters have the same maening as for EvPrepare()

Valor Retornado

Returns EvPrepare object on success

Veja Também

  • EvPrepare::__construct() - Constructs EvPrepare watcher object


Resume previously suspended default event loop

  • « EvLoop::prepare
  • EvLoop::run »
  • PHP Manual
  • EvLoop
  • Resume previously suspended default event loop

EvLoop::resume

(PECL ev >= 0.2.0)

EvLoop::resume — Resume previously suspended default event loop

Descrição

public EvLoop::resume(): void

EvLoop::suspend() and EvLoop::resume() methods suspend and resume a loop correspondingly.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvLoop::suspend() - Suspend the loop
  • Ev::resume() - Resume previously suspended default event loop


Begin checking for events and calling callbacks for the loop

  • « EvLoop::resume
  • EvLoop::signal »
  • PHP Manual
  • EvLoop
  • Begin checking for events and calling callbacks for the loop

EvLoop::run

(PECL ev >= 0.2.0)

EvLoop::run — Begin checking for events and calling callbacks for the loop

Descrição

public EvLoop::run( int $flags = 0 ): void

Begin checking for events and calling callbacks for the current event loop. Returns when a callback calls Ev::stop() method, or the flags are nonzero(in which case the return value is true) or when there are no active watchers which reference the loop( EvWatcher::keepalive() is true), in which case the return value will be false. The return value can generally be interpreted as if true, there is more work left to do .

Parâmetros

flags

Optional parameter flags can be one of the following:

List for possible values of flags
flags | Description
0 | The default behavior described above
Ev::RUN_ONCE | Block at most one(wait, but don't loop)
Ev::RUN_NOWAIT | Don't block at all(fetch/handle events, but don't wait)

See the run flag constants .

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvLoop::stop() - Stops the event loop
  • Ev::run() - Begin checking for events and calling callbacks for the default loop


Creates EvSignal watcher object associated with the current event loop instance

  • « EvLoop::run
  • EvLoop::stat »
  • PHP Manual
  • EvLoop
  • Creates EvSignal watcher object associated with the current event loop instance

EvLoop::signal

(PECL ev >= 0.2.0)

EvLoop::signal — Creates EvSignal watcher object associated with the current event loop instance

Descrição

final public EvLoop::signal(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal

Creates EvSignal watcher object associated with the current event loop instance

Parâmetros

All parameters have the same meaning as for EvSignal::__construct()

Valor Retornado

Returns EvSignal object on success

Veja Também

  • EvSignal::__construct() - Constructs EvSignal watcher object


Creates EvStat watcher object associated with the current event loop instance

  • « EvLoop::signal
  • EvLoop::stop »
  • PHP Manual
  • EvLoop
  • Creates EvStat watcher object associated with the current event loop instance

EvLoop::stat

(PECL ev >= 0.2.0)

EvLoop::stat — Creates EvStat watcher object associated with the current event loop instance

Descrição

final public EvLoop::stat(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvStat

Creates EvStat watcher object associated with the current event loop instance

Parâmetros

All parameters have the same meaning as for EvSignal::__construct()

Valor Retornado

Returns EvStat object on success

Veja Também

  • EvSignal::__construct() - Constructs EvSignal watcher object


Stops the event loop

  • « EvLoop::stat
  • EvLoop::suspend »
  • PHP Manual
  • EvLoop
  • Stops the event loop

EvLoop::stop

(PECL ev >= 0.2.0)

EvLoop::stop — Stops the event loop

Descrição

public EvLoop::stop( int $how = ?): void

Stops the event loop

Parâmetros

how

One of Ev::BREAK_* constants .

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvLoop::run() - Begin checking for events and calling callbacks for the loop
  • Ev::stop() - Stops the default event loop


Suspend the loop

  • « EvLoop::stop
  • EvLoop::timer »
  • PHP Manual
  • EvLoop
  • Suspend the loop

EvLoop::suspend

(PECL ev >= 0.2.0)

EvLoop::suspend — Suspend the loop

Descrição

public EvLoop::suspend(): void

EvLoop::suspend() and EvLoop::resume() methods suspend and resume a loop correspondingly.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvLoop::resume() - Resume previously suspended default event loop
  • Ev::suspend() - Suspend the default event loop


Creates EvTimer watcher object associated with the current event loop instance

  • « EvLoop::suspend
  • EvLoop::verify »
  • PHP Manual
  • EvLoop
  • Creates EvTimer watcher object associated with the current event loop instance

EvLoop::timer

(PECL ev >= 0.2.0)

EvLoop::timer — Creates EvTimer watcher object associated with the current event loop instance

Descrição

final public EvLoop::timer(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer

Creates EvTimer watcher object associated with the current event loop instance

Parâmetros

All parameters have the same meaning as for EvTimer::__construct()

Valor Retornado

Returns EvTimer object on success

Veja Também

  • EvTimer::__construct() - Constructs an EvTimer watcher object


Performs internal consistency checks(for debugging)

  • « EvLoop::timer
  • EvPeriodic »
  • PHP Manual
  • EvLoop
  • Performs internal consistency checks(for debugging)

EvLoop::verify

(PECL ev >= 0.2.0)

EvLoop::verify — Performs internal consistency checks(for debugging)

Descrição

public EvLoop::verify(): void

Performs internal consistency checks(for debugging libev ) and abort the program if any data structures were found to be corrupted.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Ev::verify() - Performs internal consistency checks(for debugging)


The EvPeriodic class

(PECL ev >= 0.2.0)

Introdução

Periodic watchers are also timers of a kind, but they are very versatile.

Unlike EvTimer , EvPeriodic watchers are not based on real time(or relative time, the physical time that passes) but on wall clock time(absolute time, calendar or clock). The difference is that wall clock time can run faster or slower than real time, and time jumps are not uncommon(e.g. when adjusting it).

EvPeriodic watcher can be configured to trigger after some specific point in time. For example, if an EvPeriodic watcher is configured to trigger "in 10 seconds" (e.g. EvLoop::now() + 10.0 , i.e. an absolute time, not a delay), and the system clock is reset to January of the previous year , then it will take a year or more to trigger the event (unlike an EvTimer , which would still trigger roughly 10 seconds after starting it as it uses a relative timeout).

As with timers, the callback is guaranteed to be invoked only when the point in time where it is supposed to trigger has passed. If multiple timers become ready during the same loop iteration then the ones with earlier time-out values are invoked before ones with later time-out values (but this is no longer true when a callback calls EvLoop::run() recursively).

Resumo da classe

class EvPeriodic extends EvWatcher {
/* Propriedades */
public $offset;
public $interval;
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct(
float $offset ,
string $interval ,
callable $reschedule_cb ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
public again(): void
public at(): float
final public static createStopped(
float $offset ,
float $interval ,
callable $reschedule_cb ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvPeriodic
public set( float $offset , float $interval ): void
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Propriedades

offset

When repeating, this contains the offset value, otherwise this is the absolute point in time(the offset value passed to EvPeriodic::set() , although libev might modify this value for better numerical stability).

interval

The current interval value. Can be modified any time, but changes only take effect when the periodic timer fires or EvPeriodic::again() is being called.

Índice

  • EvPeriodic::again — Simply stops and restarts the periodic watcher again
  • EvPeriodic::at — Returns the absolute time that this watcher is supposed to trigger next
  • EvPeriodic::__construct — Constructs EvPeriodic watcher object
  • EvPeriodic::createStopped — Create a stopped EvPeriodic watcher
  • EvPeriodic::set — Configures the watcher


Simply stops and restarts the periodic watcher again

  • « EvPeriodic
  • EvPeriodic::at »
  • PHP Manual
  • EvPeriodic
  • Simply stops and restarts the periodic watcher again

EvPeriodic::again

(PECL ev >= 0.2.0)

EvPeriodic::again — Simply stops and restarts the periodic watcher again

Descrição

public EvPeriodic::again(): void

Simply stops and restarts the periodic watcher again. This is only useful when attributes are changed.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvTimer::again() - Restarts the timer watcher


Returns the absolute time that this watcher is supposed to trigger next

  • « EvPeriodic::again
  • EvPeriodic::__construct »
  • PHP Manual
  • EvPeriodic
  • Returns the absolute time that this watcher is supposed to trigger next

EvPeriodic::at

(PECL ev >= 0.2.0)

EvPeriodic::at — Returns the absolute time that this watcher is supposed to trigger next

Descrição

public EvPeriodic::at(): float

When the watcher is active, returns the absolute time that this watcher is supposed to trigger next. This is not the same as the offset argument to EvPeriodic::set() or EvPeriodic::__construct() , but indeed works even in interval mode.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the absolute time this watcher is supposed to trigger next in seconds.


Constructs EvPeriodic watcher object

  • « EvPeriodic::at
  • EvPeriodic::createStopped »
  • PHP Manual
  • EvPeriodic
  • Constructs EvPeriodic watcher object

EvPeriodic::__construct

(PECL ev >= 0.2.0)

EvPeriodic::__construct — Constructs EvPeriodic watcher object

Descrição

public EvPeriodic::__construct(
float $offset ,
string $interval ,
callable $reschedule_cb ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)

Constructs EvPeriodic watcher object and starts it automatically. EvPeriodic::createStopped() method creates stopped periodic watcher.

Parâmetros

offset

See Periodic watcher operation modes

interval

See Periodic watcher operation modes

reschedule_cb

Reschedule callback. You can pass null. See Periodic watcher operation modes

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Exemplos

Exemplo #1 Periodic timer. Use reschedule callback

<?php
// Tick each 10.5 seconds

function reschedule_cb ($watcher, $now) {
return $now + (10.5. - fmod($now, 10.5));
}

$w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
echo time(), PHP_EOL;
});
Ev::run();
?>

Exemplo #2 Periodic timer. Tick every 10.5 seconds starting at now

<?php
// Tick every 10.5 seconds starting at now
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
echo time(), PHP_EOL;
});
Ev::run();
?>

Exemplo #3 Hourly watcher

<?php
$hourly = EvPeriodic(0, 3600, NULL, function () {
echo "once per hour\n";
});
?>

Veja Também

  • Periodic watcher operation modes
  • EvTimer
  • EvPeriodic::createStopped() - Create a stopped EvPeriodic watcher


Create a stopped EvPeriodic watcher

  • « EvPeriodic::__construct
  • EvPeriodic::set »
  • PHP Manual
  • EvPeriodic
  • Create a stopped EvPeriodic watcher

EvPeriodic::createStopped

(PECL ev >= 0.2.0)

EvPeriodic::createStopped — Create a stopped EvPeriodic watcher

Descrição

final public static EvPeriodic::createStopped(
float $offset ,
float $interval ,
callable $reschedule_cb ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvPeriodic

Create EvPeriodic object. Unlike EvPeriodic::__construct() this method doesn't start the watcher automatically.

Parâmetros

offset

See Periodic watcher operation modes

interval

See Periodic watcher operation modes

reschedule_cb

Reschedule callback. You can pass null. See Periodic watcher operation modes

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Returns EvPeriodic watcher object on success.

Veja Também

  • EvPeriodic::__construct() - Constructs EvPeriodic watcher object
  • EvTimer::createStopped() - Creates EvTimer stopped watcher object


Configures the watcher

  • « EvPeriodic::createStopped
  • EvPrepare »
  • PHP Manual
  • EvPeriodic
  • Configures the watcher

EvPeriodic::set

(PECL ev >= 0.2.0)

EvPeriodic::set — Configures the watcher

Descrição

public EvPeriodic::set( float $offset , float $interval ): void

(Re-)Configures EvPeriodic watcher

Parâmetros

offset

The same meaning as for EvPeriodic::__construct() . See Periodic watcher operation modes

interval

The same meaning as for EvPeriodic::__construct() . See Periodic watcher operation modes

Valor Retornado

Nenhum valor é retornado.


The EvPrepare class

(PECL ev >= 0.2.0)

Introdução

EvPrepare and EvCheck watchers are usually used in pairs. EvPrepare watchers get invoked before the process blocks, EvCheck afterwards.

It is not allowed to call EvLoop::run() or similar methods or functions that enter the current event loop from either EvPrepare or EvCheck watchers. Other loops than the current one are fine, however. The rationale behind this is that one don't need to check for recursion in those watchers, i.e. the sequence will always be: EvPrepare -> blocking -> EvCheck , so having a watcher of each kind they will always be called in pairs bracketing the blocking call.

The main purpose is to integrate other event mechanisms into libev and their use is somewhat advanced. They could be used, for example, to track variable changes, implement custom watchers, integrate net-snmp or a coroutine library and lots more. They are also occasionally useful to cache some data and want to flush it before blocking.

It is recommended to give EvCheck watchers highest( Ev::MAXPRI ) priority, to ensure that they are being run before any other watchers after the poll (this doesn’t matter for EvPrepare watchers).

Also, EvCheck watchers should not activate/feed events. While libev fully supports this, they might get executed before other EvCheck watchers did their job.

Resumo da classe

class EvPrepare extends EvWatcher {
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct( string $callback , string $data = ?, string $priority = ?)
final public static createStopped( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Índice

  • EvPrepare::__construct — Constructs EvPrepare watcher object
  • EvPrepare::createStopped — Creates a stopped instance of EvPrepare watcher


Constructs EvPrepare watcher object

  • « EvPrepare
  • EvPrepare::createStopped »
  • PHP Manual
  • EvPrepare
  • Constructs EvPrepare watcher object

EvPrepare::__construct

(PECL ev >= 0.2.0)

EvPrepare::__construct — Constructs EvPrepare watcher object

Descrição

public EvPrepare::__construct( string $callback , string $data = ?, string $priority = ?)

Constructs EvPrepare watcher object. And starts the watcher automatically. If need a stopped watcher consider using EvPrepare::createStopped()

Parâmetros

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Veja Também

  • EvCheck


Creates a stopped instance of EvPrepare watcher

  • « EvPrepare::__construct
  • EvSignal »
  • PHP Manual
  • EvPrepare
  • Creates a stopped instance of EvPrepare watcher

EvPrepare::createStopped

(PECL ev >= 0.2.0)

EvPrepare::createStopped — Creates a stopped instance of EvPrepare watcher

Descrição

final public static EvPrepare::createStopped( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare

Creates a stopped instance of EvPrepare watcher. Unlike EvPrepare::__construct() , this method doesn' start the watcher automatically.

Parâmetros

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Return EvPrepare object on success.

Veja Também

  • EvPrepare::__construct() - Constructs EvPrepare watcher object
  • EvWatcher::start() - Starts the watcher


The EvSignal class

(PECL ev >= 0.2.0)

Introdução

EvSignal watchers will trigger an event when the process receives a specific signal one or more times. Even though signals are very asynchronous, libev will try its best to deliver signals synchronously, i.e. as part of the normal event processing, like any other event.

There is no limit for the number of watchers for the same signal, but only within the same loop, i.e. one can watch for SIGINT in the default loop and for SIGIO in another loop, but it is not allowed to watch for SIGINT in both the default loop and another loop at the same time. At the moment, SIGCHLD is permanently tied to the default loop.

If possible and supported, libev will install its handlers with SA_RESTART (or equivalent) behaviour enabled, so system calls should not be unduly interrupted. In case of a problem with system calls getting interrupted by signals, all the signals can be blocked in an EvCheck watcher and unblocked in a EvPrepare watcher.

Resumo da classe

class EvSignal extends EvWatcher {
/* Propriedades */
public $signum;
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
final public static createStopped(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal
public set( int $signum ): void
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Propriedades

signum

Signal number. See the constants exported by pcntl extension. See also signal(7) man page.

Índice

  • EvSignal::__construct — Constructs EvSignal watcher object
  • EvSignal::createStopped — Create stopped EvSignal watcher object
  • EvSignal::set — Configures the watcher


Constructs EvSignal watcher object

  • « EvSignal
  • EvSignal::createStopped »
  • PHP Manual
  • EvSignal
  • Constructs EvSignal watcher object

EvSignal::__construct

(PECL ev >= 0.2.0)

EvSignal::__construct — Constructs EvSignal watcher object

Descrição

public EvSignal::__construct(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)

Constructs EvSignal watcher object and starts it automatically. For a stopped periodic watcher consider using EvSignal::createStopped() method.

Parâmetros

signum

Signal number. See constants exported by pcntl extension. See also signal(7) man page.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Exemplos

Exemplo #1 Handle SIGTERM signal

<?php
$w = new EvSignal(SIGTERM, function ($watcher) {
echo "SIGTERM received\n";
$watcher->stop();
});

Ev::run();
?>

Veja Também

  • EvSignal::createStopped() - Create stopped EvSignal watcher object


Create stopped EvSignal watcher object

  • « EvSignal::__construct
  • EvSignal::set »
  • PHP Manual
  • EvSignal
  • Create stopped EvSignal watcher object

EvSignal::createStopped

(PECL ev >= 0.2.0)

EvSignal::createStopped — Create stopped EvSignal watcher object

Descrição

final public static EvSignal::createStopped(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal

Create stopped EvSignal watcher object. Unlike EvSignal::__construct() , this method does't start the watcher automatically.

Parâmetros

signum

Signal number. See constants exported by pcntl extension. See also signal(7) man page.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Returns EvSignal object on success.

Veja Também

  • EvWatcher::start() - Starts the watcher
  • EvSignal::__construct() - Constructs EvSignal watcher object


Configures the watcher

  • « EvSignal::createStopped
  • EvStat »
  • PHP Manual
  • EvSignal
  • Configures the watcher

EvSignal::set

(PECL ev >= 0.2.0)

EvSignal::set — Configures the watcher

Descrição

public EvSignal::set( int $signum ): void

Configures the watcher.

Parâmetros

signum

Signal number. The same as for EvSignal::__construct()

Valor Retornado

Nenhum valor é retornado.


The EvStat class

(PECL ev >= 0.2.0)

Introdução

EvStat monitors a file system path for attribute changes. It calls stat() on that path in regular intervals (or when the OS signals it changed) and sees if it changed compared to the last time, invoking the callback if it did.

The path does not need to exist: changing from "path exists" to "path does not exist" is a status change like any other. The condition "path does not exist" is signified by the 'nlink' item being 0(returned by EvStat::attr() method).

The path must not end in a slash or contain special components such as '.' or .. . The path should be absolute: if it is relative and the working directory changes, then the behaviour is undefined.

Since there is no portable change notification interface available, the portable implementation simply calls stat() regularly on the path to see if it changed somehow. For this case a recommended polling interval can be specified. If one specifies a polling interval of 0.0 (highly recommended) then a suitable, unspecified default value will be used(which could be expected to be around 5 seconds, although this might change dynamically). libev will also impose a minimum interval which is currently around 0.1 , but that’s usually overkill.

This watcher type is not meant for massive numbers of EvStat watchers, as even with OS-supported change notifications, this can be resource-intensive.

Resumo da classe

class EvStat extends EvWatcher {
/* Propriedades */
public $path;
public $interval;
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
public attr(): array
final public static createStopped(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): void
public prev(): void
public set( string $path , float $interval ): void
public stat(): bool
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Propriedades

interval

Readonly . Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

path

Readonly . The path to wait for status changes on.

Índice

  • EvStat::attr — Returns the values most recently detected by Ev
  • EvStat::__construct — Constructs EvStat watcher object
  • EvStat::createStopped — Create a stopped EvStat watcher object
  • EvStat::prev — Returns the previous set of values returned by EvStat::attr
  • EvStat::set — Configures the watcher
  • EvStat::stat — Initiates the stat call


Returns the values most recently detected by Ev

  • « EvStat
  • EvStat::__construct »
  • PHP Manual
  • EvStat
  • Returns the values most recently detected by Ev

EvStat::attr

(PECL ev >= 0.2.0)

EvStat::attr — Returns the values most recently detected by Ev

Descrição

public EvStat::attr(): array

Returns array of the values most recently detected by Ev

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns array with the values most recently detect by Ev(without actual stat 'ing):

List for item keys of the array returned by EvStat::attr()
Key | Description
'dev' | ID of device containing file
'ino' | inode number
'mode' | protection
'nlink' | number of hard links
'uid' | user ID of owner
'size' | total size, in bytes
'gid' | group ID of owner
'rdev' | device ID (if special file)
'blksize' | blocksize for file system I/O
'blocks' | number of 512B blocks allocated
'atime' | time of last access
'ctime' | time of last status change
'mtime' | time of last modification

See stat(2) man page for details.

Exemplos

Exemplo #1 Monitor changes of /var/log/messages

<?php
// Use 10 second update interval.
$w = new EvStat("/var/log/messages", 8, function ($w) {
echo "/var/log/messages changed\n";

$attr = $w->attr();

if ($attr['nlink']) {
printf("Current size: %ld\n", $attr['size']);
printf("Current atime: %ld\n", $attr['atime']);
printf("Current mtime: %ld\n", $attr['mtime']);
} else {
fprintf(STDERR, "`messages` file is not there!");
$w->stop();
}
});

Ev::run();
?>

Veja Também

  • EvStat::prev() - Returns the previous set of values returned by EvStat::attr
  • EvStat::stat() - Initiates the stat call


Constructs EvStat watcher object

  • « EvStat::attr
  • EvStat::createStopped »
  • PHP Manual
  • EvStat
  • Constructs EvStat watcher object

EvStat::__construct

(PECL ev >= 0.2.0)

EvStat::__construct — Constructs EvStat watcher object

Descrição

public EvStat::__construct(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)

Constructs EvStat watcher object and starts the watcher automatically.

Parâmetros

path

The path to wait for status changes on.

interval

Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Exemplos

Exemplo #1 Monitor changes of /var/log/messages

<?php

// Use 10 second update interval.
$w = new EvStat("/var/log/messages", 10, function ($w) {
echo "/var/log/messages changed\n";

$attr = $w->attr();

if ($attr['nlink']) {
printf("Current size: %ld\n", $attr['size']);
printf("Current atime: %ld\n", $attr['atime']);
printf("Current mtime: %ld\n", $attr['mtime']);
} else {
fprintf(STDERR, "`messages` file is not there!");
$w->stop();
}
});

?>


Create a stopped EvStat watcher object

  • « EvStat::__construct
  • EvStat::prev »
  • PHP Manual
  • EvStat
  • Create a stopped EvStat watcher object

EvStat::createStopped

(PECL ev >= 0.2.0)

EvStat::createStopped — Create a stopped EvStat watcher object

Descrição

final public static EvStat::createStopped(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): void

Creates EvStat watcher object, but doesn't start it automatically(unlike EvStat::__construct() ).

Parâmetros

path

The path to wait for status changes on.

interval

Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Returns a stopped EvStat watcher object on success.

Veja Também

  • EvStat::__construct() - Constructs EvStat watcher object
  • EvWatcher::start() - Starts the watcher


Returns the previous set of values returned by EvStat::attr

  • « EvStat::createStopped
  • EvStat::set »
  • PHP Manual
  • EvStat
  • Returns the previous set of values returned by EvStat::attr

EvStat::prev

(PECL ev >= 0.2.0)

EvStat::prev — Returns the previous set of values returned by EvStat::attr

Descrição

public EvStat::prev(): void

Just like EvStat::attr() , but returns the previous set of values.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with the same structure as the array returned by EvStat::attr() . The array contains previously detected values.

Veja Também

  • EvStat::attr() - Returns the values most recently detected by Ev
  • EvStat::stat() - Initiates the stat call


Configures the watcher

  • « EvStat::prev
  • EvStat::stat »
  • PHP Manual
  • EvStat
  • Configures the watcher

EvStat::set

(PECL ev >= 0.2.0)

EvStat::set — Configures the watcher

Descrição

public EvStat::set( string $path , float $interval ): void

Configures the watcher.

Parâmetros

path

The path to wait for status changes on.

interval

Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

Valor Retornado

Nenhum valor é retornado.


Initiates the stat call

  • « EvStat::set
  • EvTimer »
  • PHP Manual
  • EvStat
  • Initiates the stat call

EvStat::stat

(PECL ev >= 0.2.0)

EvStat::stat — Initiates the stat call

Descrição

public EvStat::stat(): bool

Initiates the stat call(updates internal cache). It stats(using lstat ) the path specified in the watcher and sets to the values found.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if path exists. Otherwise false.

Veja Também

  • EvStat::attr() - Returns the values most recently detected by Ev
  • EvStat::prev() - Returns the previous set of values returned by EvStat::attr


The EvTimer class

(PECL ev >= 0.2.0)

Introdução

EvTimer watchers are simple relative timers that generate an event after a given time, and optionally repeating in regular intervals after that.

The timers are based on real time, that is, if one registers an event that times out after an hour and resets the system clock to January last year , it will still time out after(roughly) one hour. "Roughly" because detecting time jumps is hard, and some inaccuracies are unavoidable.

The callback is guaranteed to be invoked only after its timeout has passed (not at, so on systems with very low-resolution clocks this might introduce a small delay). If multiple timers become ready during the same loop iteration then the ones with earlier time-out values are invoked before ones of the same priority with later time-out values (but this is no longer true when a callback calls EvLoop::run() recursively).

The timer itself will do a best-effort at avoiding drift, that is, if a timer is configured to trigger every 10 seconds, then it will normally trigger at exactly 10 second intervals. If, however, the script cannot keep up with the timer because it takes longer than those 10 seconds to do) the timer will not fire more than once per event loop iteration.

Resumo da classe

class EvTimer extends EvWatcher {
/* Propriedades */
public $repeat;
public $remaining;
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
public again(): void
final public static createStopped(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer
public set( float $after , float $repeat ): void
/* Métodos herdados */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Propriedades

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

remaining

Returns the remaining time until a timer fires. If the timer is active, then this time is relative to the current event loop time, otherwise it's the timeout value currently configured.

That is, after instanciating an EvTimer with an after value of 5.0 and repeat value of 7.0 , remaining returns 5.0 . When the timer is started and one second passes, remaining will return 4.0 . When the timer expires and is restarted, it will return roughly 7.0 (likely slightly less as callback invocation takes some time too), and so on.

Índice

  • EvTimer::again — Restarts the timer watcher
  • EvTimer::__construct — Constructs an EvTimer watcher object
  • EvTimer::createStopped — Creates EvTimer stopped watcher object
  • EvTimer::set — Configures the watcher


Restarts the timer watcher

  • « EvTimer
  • EvTimer::__construct »
  • PHP Manual
  • EvTimer
  • Restarts the timer watcher

EvTimer::again

(PECL ev >= 0.2.0)

EvTimer::again — Restarts the timer watcher

Descrição

public EvTimer::again(): void

This will act as if the timer timed out and restart it again if it is repeating. The exact semantics are:

  1. if the timer is pending, its pending status is cleared.

  2. if the timer is started but non-repeating, stop it (as if it timed out).

  3. if the timer is repeating, either start it if necessary (with the repeat value), or reset the running timer to the repeat value.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvWatcher::stop() - Stops the watcher


Constructs an EvTimer watcher object

  • « EvTimer::again
  • EvTimer::createStopped »
  • PHP Manual
  • EvTimer
  • Constructs an EvTimer watcher object

EvTimer::__construct

(PECL ev >= 0.2.0)

EvTimer::__construct — Constructs an EvTimer watcher object

Descrição

public EvTimer::__construct(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)

Constructs an EvTimer watcher object.

Parâmetros

after

Configures the timer to trigger after after seconds.

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Exemplos

Exemplo #1 Simple timers

<?php
// Create and start timer firing after 2 seconds
$w1 = new EvTimer(2, 0, function () {
echo "2 seconds elapsed\n";
});

// Create and launch timer firing after 2 seconds repeating each second
// until we manually stop it
$w2 = new EvTimer(2, 1, function ($w) {
echo "is called every second, is launched after 2 seconds\n";
echo "iteration = ", Ev::iteration(), PHP_EOL;

// Stop the watcher after 5 iterations
Ev::iteration() == 5 and $w->stop();
// Stop the watcher if further calls cause more than 10 iterations
Ev::iteration() >= 10 and $w->stop();
});

// Create stopped timer. It will be inactive until we start it ourselves
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
echo "Callback of a timer created as stopped\n";

// Stop the watcher after 2 iterations
Ev::iteration() >= 2 and $w->stop();
});

// Loop until Ev::stop() is called or all of watchers stop
Ev::run();

// Start and look if it works
$w_stopped->start();
echo "Run single iteration\n";
Ev::run(Ev::RUN_ONCE);

echo "Restart the second watcher and try to handle the same events, but don't block\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo "Running a blocking loop\n";
Ev::run();
echo "END\n";
?>

O exemplo acima produzirá algo semelhante a:

2 seconds elapsed
is called every second, is launched after 2 seconds
iteration = 1
is called every second, is launched after 2 seconds
iteration = 2
is called every second, is launched after 2 seconds
iteration = 3
is called every second, is launched after 2 seconds
iteration = 4
is called every second, is launched after 2 seconds
iteration = 5
Run single iteration
Callback of a timer created as stopped
Restart the second watcher and try to handle the same events, but don't block
Running a blocking loop
is called every second, is launched after 2 seconds
iteration = 8
is called every second, is launched after 2 seconds
iteration = 9
is called every second, is launched after 2 seconds
iteration = 10
END

Veja Também

  • EvTimer::createStopped() - Creates EvTimer stopped watcher object
  • EvPeriodic
  • » ev_timer - relative and optionally repeating timeouts
  • » Be smart about timeouts


Creates EvTimer stopped watcher object

  • « EvTimer::__construct
  • EvTimer::set »
  • PHP Manual
  • EvTimer
  • Creates EvTimer stopped watcher object

EvTimer::createStopped

(PECL ev >= 0.2.0)

EvTimer::createStopped — Creates EvTimer stopped watcher object

Descrição

final public static EvTimer::createStopped(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer

Creates EvTimer stopped watcher object. Unlike EvTimer::__construct() , this method doesn't start the watcher automatically.

Parâmetros

after

Configures the timer to trigger after after seconds.

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Valor Retornado

Returns EvTimer watcher object on success.

Exemplos

Exemplo #1 Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay

<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
$w->stop();

$stat = $w->data;

// 1 second after the most recent change of the file
printf("Current size: %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
// Reset timer watcher
$timer->again();
});

$timer->data = $stat;

Ev::run();
?>

Veja Também

  • EvTimer::__construct() - Constructs an EvTimer watcher object
  • EvPeriodic


Configures the watcher

  • « EvTimer::createStopped
  • EvWatcher »
  • PHP Manual
  • EvTimer
  • Configures the watcher

EvTimer::set

(PECL ev >= 0.2.0)

EvTimer::set — Configures the watcher

Descrição

public EvTimer::set( float $after , float $repeat ): void

Configures the watcher

Parâmetros

after

Configures the timer to trigger after after seconds.

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

Valor Retornado

Nenhum valor é retornado.


The EvWatcher class

(PECL ev >= 0.2.0)

Introdução

EvWatcher is a base class for all watchers( EvCheck , EvChild etc.). Since EvWatcher 's constructor is abstract , one can't(and don't need to) create EvWatcher objects directly.

Resumo da classe

abstract class EvWatcher {
/* Propriedades */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
abstract public __construct()
public clear(): int
public feed( int $revents ): void
public getLoop(): EvLoop
public invoke( int $revents ): void
public keepalive( bool $value = ?): bool
public setCallback( callable $callback ): void
public start(): void
public stop(): void
}

Propriedades

is_active

Readonly . true if the watcher is active. false otherwise.

data

User custom data associated with the watcher

is_pending

Readonly .true if the watcher is pending, i.e. it has outstanding events, but its callback has not yet been invoked. false otherwise. As long, as a watcher is pending(but not active), one must not change its priority.

priority

int between Ev::MINPRI and Ev::MAXPRI . Pending watchers with higher priority will be invoked before watchers with lower priority, but priority will not keep watchers from being executed(except for EvIdle watchers). EvIdle watchers provide functionality to suppress invocation when higher priority events are pending.

Índice

  • EvWatcher::clear — Clear watcher pending status
  • EvWatcher::__construct — Abstract constructor of a watcher object
  • EvWatcher::feed — Feeds the given revents set into the event loop
  • EvWatcher::getLoop — Returns the loop responsible for the watcher
  • EvWatcher::invoke — Invokes the watcher callback with the given received events bit mask
  • EvWatcher::keepalive — Configures whether to keep the loop from returning
  • EvWatcher::setCallback — Sets new callback for the watcher
  • EvWatcher::start — Starts the watcher
  • EvWatcher::stop — Stops the watcher


Clear watcher pending status

  • « EvWatcher
  • EvWatcher::__construct »
  • PHP Manual
  • EvWatcher
  • Clear watcher pending status

EvWatcher::clear

(PECL ev >= 0.2.0)

EvWatcher::clear — Clear watcher pending status

Descrição

public EvWatcher::clear(): int

If the watcher is pending, this method clears its pending status and returns its revents bitset(as if its callback was invoked). If the watcher isn't pending it does nothing and returns 0 .

Sometimes it can be useful to "poll" a watcher instead of waiting for its callback to be invoked, which can be accomplished with this function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

In case if the watcher is pending, returns revents bitset as if the watcher callback had been invoked. Otherwise returns 0 .


Abstract constructor of a watcher object

  • « EvWatcher::clear
  • EvWatcher::feed »
  • PHP Manual
  • EvWatcher
  • Abstract constructor of a watcher object

EvWatcher::__construct

(PECL ev >= 0.2.0)

EvWatcher::__construct — Abstract constructor of a watcher object

Descrição

abstract public EvWatcher::__construct()

EvWatcher::__construct() is an abstract constructor of a watcher object implemented in the derived classes.

Parâmetros

Esta função não possui parâmetros.


Feeds the given revents set into the event loop

  • « EvWatcher::__construct
  • EvWatcher::getLoop »
  • PHP Manual
  • EvWatcher
  • Feeds the given revents set into the event loop

EvWatcher::feed

(PECL ev >= 0.2.0)

EvWatcher::feed — Feeds the given revents set into the event loop

Descrição

public EvWatcher::feed( int $revents ): void

Feeds the given revents set into the event loop, as if the specified event had happened for the watcher.

Parâmetros

revents

Bit mask of watcher received events .

Valor Retornado

Nenhum valor é retornado.


Returns the loop responsible for the watcher

  • « EvWatcher::feed
  • EvWatcher::invoke »
  • PHP Manual
  • EvWatcher
  • Returns the loop responsible for the watcher

EvWatcher::getLoop

(PECL ev >= 0.2.0)

EvWatcher::getLoop — Returns the loop responsible for the watcher

Descrição

public EvWatcher::getLoop(): EvLoop

Returns the loop responsible for the watcher

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns EvLoop event loop object responsible for the watcher.


Invokes the watcher callback with the given received events bit mask

  • « EvWatcher::getLoop
  • EvWatcher::keepalive »
  • PHP Manual
  • EvWatcher
  • Invokes the watcher callback with the given received events bit mask

EvWatcher::invoke

(PECL ev >= 0.2.0)

EvWatcher::invoke — Invokes the watcher callback with the given received events bit mask

Descrição

public EvWatcher::invoke( int $revents ): void

Invokes the watcher callback with the given received events bit mask.

Parâmetros

revents

Bit mask of watcher received events .

Valor Retornado

Nenhum valor é retornado.


Configures whether to keep the loop from returning

  • « EvWatcher::invoke
  • EvWatcher::setCallback »
  • PHP Manual
  • EvWatcher
  • Configures whether to keep the loop from returning

EvWatcher::keepalive

(PECL ev >= 0.2.0)

EvWatcher::keepalive — Configures whether to keep the loop from returning

Descrição

public EvWatcher::keepalive( bool $value = ?): bool

Configures whether to keep the loop from returning. With keepalive value set to false the watcher won't keep Ev::run() / EvLoop::run() from returning even though the watcher is active.

Watchers have keepalive value true by default.

Clearing keepalive status is useful when returning from Ev::run() / EvLoop::run() just because of the watcher is undesirable. It could be a long running UDP socket watcher or so.

Parâmetros

value

With keepalive value set to false the watcher won't keep Ev::run() / EvLoop::run() from returning even though the watcher is active.

Valor Retornado

Returns the previous state.

Exemplos

Exemplo #1 Register an I/O watcher for some UDP socket but do not keep the event loop from running just because of that watcher.

<?php
$udp_socket = ...
$udp_watcher = new EvIo($udp_socket, Ev::READ, function () { /* ... */ });
$udp_watcher->keepalive(FALSE);
?>


Sets new callback for the watcher

  • « EvWatcher::keepalive
  • EvWatcher::start »
  • PHP Manual
  • EvWatcher
  • Sets new callback for the watcher

EvWatcher::setCallback

(PECL ev >= 0.2.0)

EvWatcher::setCallback — Sets new callback for the watcher

Descrição

public EvWatcher::setCallback( callable $callback ): void

Sets new callback for the watcher

Parâmetros

callback

See Watcher callbacks .

Valor Retornado

Nenhum valor é retornado.


Starts the watcher

  • « EvWatcher::setCallback
  • EvWatcher::stop »
  • PHP Manual
  • EvWatcher
  • Starts the watcher

EvWatcher::start

(PECL ev >= 0.2.0)

EvWatcher::start — Starts the watcher

Descrição

public EvWatcher::start(): void

Marks the watcher as active. Note that only active watchers will receive events.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvWatcher::stop() - Stops the watcher


Stops the watcher

  • « EvWatcher::start
  • Expect »
  • PHP Manual
  • EvWatcher
  • Stops the watcher

EvWatcher::stop

(PECL ev >= 0.2.0)

EvWatcher::stop — Stops the watcher

Descrição

public EvWatcher::stop(): void

Marks the watcher as inactive. Note that only active watchers will receive events.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EvWatcher::start() - Starts the watcher


Expect

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Expect Usage Examples
  • Expect Funções
    • expect_expectl — Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
    • expect_popen — Execute command via Bourne shell, and open the PTY stream to the process


Introdução

This extension allows to interact with processes through PTY. You may consider using the expect:// wrapper with the filesystem functions which provide a simpler and more intuitive interface.


Dependências

This module uses the functions of the » expect library. You need libexpect version >= 5.43.0.


Instalação

Esta extensão » PECL não é distribuída com o PHP. Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/expect.

In order to use these functions you must compile PHP with expect support by using the --with-expect[=DIR] configure option.

Windows users will enable php_expect.dll inside of php.ini in order to use these functions. Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

In order to configure expect extension, there are configuration options in the configuration file php.ini.

Expect Opções de Configuração
Nome | Padrão | Modificável | Changelog
expect.timeout | "10" | INI_ALL |
expect.loguser | "1" | INI_ALL |
expect.logfile | "" | INI_ALL |
expect.match_max | "" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

expect.timeout int

The timeout period for waiting for the data, when using the expect_expectl() function.

A value of "-1" disables a timeout from occurring.

Nota:

A value of "0" causes the expect_expectl() function to return immediately.

expect.loguser bool

Whether expect should send any output from the spawned process to stdout. Since interactive programs typically echo their input, this usually suffices to show both sides of the conversation.

expect.logfile string

Name of the file, where the output from the spawned process will be written. If this file doesn't exist, it will be created.

Nota:

If this configuration is not empty, the output is written regardless of the value of expect.loguser.

expect.match_max int

Changes default size (2000 bytes) of the buffer used to match asterisks in patterns.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

expect_popen() returns an open PTY stream used by expect_expectl().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

EXP_GLOB (int)
Indicates that the pattern is a glob-style string pattern.
EXP_EXACT (int)
Indicates that the pattern is an exact string.
EXP_REGEXP (int)
Indicates that the pattern is a regexp-style string pattern.
EXP_EOF (int)
Value, returned by expect_expectl(), when EOF is reached.
EXP_TIMEOUT (int)
Value, returned by expect_expectl() upon timeout of seconds, specified in value of expect.timeout
EXP_FULLBUFFER (int)
Value, returned by expect_expectl() if no pattern have been matched.


  • « Constantes pré-definidas
  • Expect Usage Examples »
  • PHP Manual
  • Expect
  • Exemplos

Exemplos

Índice

  • Expect Usage Examples


Expect Usage Examples

Exemplo #1 Expect Usage Example

This example connects to the remote host via SSH, and prints the remote uptime.

<?php
ini_set("expect.loguser", "Off");

$stream = fopen("expect://ssh root@remotehost uptime", "r");

$cases = array (
array (0 => "password:", 1 => PASSWORD)
);

switch (expect_expectl ($stream, $cases)) {
case PASSWORD:
fwrite ($stream, "password\n");
break;

default:
die ("Error was occurred while connecting to the remote host!\n");
}

while ($line = fgets($stream)) {
print $line;
}
fclose ($stream);
?>

The following example connects to the remote host, determines whether installed OS is for 32 or 64 bit, then runs update for specific package.

Exemplo #2 Another Expect Usage Example

<?php
ini_set("expect.timeout", -1);
ini_set("expect.loguser", "Off");

$stream = expect_popen("ssh root@remotehost");

while (true) {
switch (expect_expectl ($stream, array (
array ("password:", PASSWORD), // SSH is asking for password
array ("yes/no)?", YESNO), // SSH is asking whether to store the host entry
array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
))) {
case PASSWORD:
fwrite ($stream, "secret\n");
break;

case YESNO:
fwrite ($stream, "yes\n");
break;

case SHELL:
fwrite ($stream, "uname -a\n");
while (true) {
switch (expect_expectl ($stream, array (
array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
array ("^Linux.*$", UNAME, EXP_REGEXP), // uname -a output
), $match)) {
case UNAME:
$uname .= $match[0];
break;

case SHELL:
// Run update:
if (strstr ($uname, "x86_64")) {
fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_64bit.rpm\n");
} else {
fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_32bit.rpm\n");
}
fwrite ($stream, "exit\n");
break 2;

case EXP_TIMEOUT:
case EXP_EOF:
break 2;

default:
die ("Error has occurred!\n");
}
}
break 2;

case EXP_TIMEOUT:
case EXP_EOF:
break 2;

default:
die ("Error has occurred!\n");
}
}

fclose ($stream);
?>


Expect Funções

Índice

  • expect_expectl — Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
  • expect_popen — Execute command via Bourne shell, and open the PTY stream to the process


Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen

  • « Expect Funções
  • expect_popen »
  • PHP Manual
  • Expect Funções
  • Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen

expect_expectl

(PECL expect >= 0.1.0)

expect_expectl — Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen

Descrição

expect_expectl(resource $expect, array $cases, array &$match = ?): int

Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen.

If match is provided, then it is filled with the result of search. The matched string can be found in match[0]. The match substrings (according to the parentheses) in the original pattern can be found in match[1], match[2], and so on, up to match[9] (the limitation of libexpect).

Parâmetros

expect

An Expect stream, previously opened with expect_popen().

cases

An array of expect cases. Each expect case is an indexed array, as described in the following table:

Expect Case Array
Index Key | Value Type | Description | Is Mandatory | Default Value
0 | string | pattern, that will be matched against the output from the stream | yes
1 | mixed | value, that will be returned by this function, if the pattern matches | yes
2 | integer | pattern type, one of: EXP_GLOB, EXP_EXACT or EXP_REGEXP | no | EXP_GLOB

Valor Retornado

Returns value associated with the pattern that was matched.

On failure this function returns: EXP_EOF, EXP_TIMEOUT or EXP_FULLBUFFER

Registro de Alterações

Versão | Descrição
PECL expect 0.2.1 | Prior to version 0.2.1, in match parameter a match string was returned, not an array of match substrings.

Exemplos

Exemplo #1 expect_expectl() example

<?php
// Copies file from remote host:
ini_set("expect.timeout", 30);

$stream = fopen("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");

$cases = array(
// array(pattern, value to return if pattern matched)
array("password:", "asked for password"),
array("yes/no)?", "asked for yes/no")
);

while (true) {
switch (expect_expectl($stream, $cases)) {
case "asked for password":
fwrite($stream, "my password\n");
break;
case "asked for yes/no":
fwrite($stream, "yes\n");
break;
case EXP_TIMEOUT:
case EXP_EOF:
break 2; // break both the switch statement and the while loop
default:
die("Error has occurred!");
}
}

fclose($stream);
?>

Veja Também

  • expect_popen() - Execute command via Bourne shell, and open the PTY stream to the process


Execute command via Bourne shell, and open the PTY stream to the process

  • « expect_expectl
  • PCNTL »
  • PHP Manual
  • Expect Funções
  • Execute command via Bourne shell, and open the PTY stream to the process

expect_popen

(PECL expect >= 0.1.0)

expect_popen — Execute command via Bourne shell, and open the PTY stream to the process

Descrição

expect_popen(string $command): resource

Execute command via Bourne shell, and open the PTY stream to the process.

Parâmetros

command

Command to execute.

Valor Retornado

Returns an open PTY stream to the processes stdio, stdout, and stderr.

On failure this function returns false.

Exemplos

Exemplo #1 expect_popen() example

<?php
// Login to the PHP.net CVS repository:
$stream = expect_popen ("cvs -d :pserver:anonymous@cvs.php.net:/repository login");
sleep (3);
fwrite ($stream, "phpfi\n");
fclose ($stream);
?>

Veja Também

  • popen() - Abre um processo como ponteiro de arquivo


Process Control

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Basic usage
  • PCNTL Funções
    • pcntl_alarm — Set an alarm clock for delivery of a signal
    • pcntl_async_signals — Enable/disable asynchronous signal handling or return the old setting
    • pcntl_errno — Sinônimo de pcntl_get_last_error
    • pcntl_exec — Executes specified program in current process space
    • pcntl_fork — Forks the currently running process
    • pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed
    • pcntl_getpriority — Get the priority of any process
    • pcntl_rfork — Manipulates process resources
    • pcntl_setpriority — Change the priority of any process
    • pcntl_signal_dispatch — Calls signal handlers for pending signals
    • pcntl_signal_get_handler — Get the current handler for specified signal
    • pcntl_signal — Installs a signal handler
    • pcntl_sigprocmask — Sets and retrieves blocked signals
    • pcntl_sigtimedwait — Waits for signals, with a timeout
    • pcntl_sigwaitinfo — Waits for signals
    • pcntl_strerror — Retrieve the system error message associated with the given errno
    • pcntl_unshare — Dissociates parts of the process execution context
    • pcntl_wait — Waits on or returns the status of a forked child
    • pcntl_waitpid — Waits on or returns the status of a forked child
    • pcntl_wexitstatus — Returns the return code of a terminated child
    • pcntl_wifexited — Checks if status code represents a normal exit
    • pcntl_wifsignaled — Checks whether the status code represents a termination due to a signal
    • pcntl_wifstopped — Checks whether the 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


Introdução

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 web server environment and unexpected results may happen if any Process Control functions are used within a web server 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.

Nota: Esta extensão não está disponível em plataformas Windows.


Instalação

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).


Constantes pré-definidas

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.

Process Control constants
WNOHANG (int)
WUNTRACED (int)
SIG_* constants
SIG_IGN (int)
SIG_DFL (int)
SIG_ERR (int)
SIGHUP (int)
SIGINFO (int)
SIGINT (int)
SIGQUIT (int)
SIGILL (int)
SIGTRAP (int)
SIGABRT (int)
SIGIOT (int)
SIGBUS (int)
SIGFPE (int)
SIGKILL (int)
SIGUSR1 (int)
SIGSEGV (int)
SIGUSR2 (int)
SIGPIPE (int)
SIGALRM (int)
SIGTERM (int)
SIGSTKFLT (int)
SIGCLD (int)
SIGCHLD (int)
SIGCONT (int)
SIGSTOP (int)
SIGTSTP (int)
SIGTTIN (int)
SIGTTOU (int)
SIGURG (int)
SIGXCPU (int)
SIGXFSZ (int)
SIGVTALRM (int)
SIGPROF (int)
SIGWINCH (int)
SIGPOLL (int)
SIGIO (int)
SIGPWR (int)
SIGSYS (int)
SIGBABY (int)
SIG_BLOCK (int)
SIG_UNBLOCK (int)
SIG_SETMASK (int)
SI_* constants
SI_USER (int)
SI_NOINFO (int)
SI_KERNEL (int)
SI_QUEUE (int)
SI_TIMER (int)
SI_MSGGQ (int)
SI_ASYNCIO (int)
SI_SIGIO (int)
SI_TKILL (int)
CLD_* constants
CLD_EXITED (int)
CLD_KILLED (int)
CLD_DUMPED (int)
CLD_TRAPPED (int)
CLD_STOPPED (int)
CLD_CONTINUED (int)
TRAP_* constants
TRAP_BRKPT (int)
TRAP_TRACE (int)
POLL_* constants
POLL_IN (int)
POLL_OUT (int)
POLL_MSG (int)
POLL_ERR (int)
POLL_PRI (int)
POLL_HUP (int)
ILL_* constants
ILL_ILLOPC (int)
ILL_ILLOPN (int)
ILL_ILLADR (int)
ILL_ILLTRP (int)
ILL_PRVOPC (int)
ILL_PRVREG (int)
ILL_COPROC (int)
ILL_BADSTK (int)
FPE_* constants
FPE_INTDIV (int)
FPE_INTOVF (int)
FPE_FLTDIV (int)
FPE_FLTOVF (int)
FPE_FLTUND (int)
FPE_FLTRES (int)
FPE_FLTINV (int)
FPE_FLTSUB (int)
SEGV_* constants
SEGV_MAPERR (int)
SEGV_ACCERR (int)
BUS_* constants
BUS_ADRALN (int)
BUS_ADRERR (int)
BUS_OBJERR (int)
CLONE_* constants
CLONE_NEWNS (int)
Available as of PHP 7.4.0
CLONE_NEWIPC (int)
Available as of PHP 7.4.0
CLONE_NEWUTS (int)
Available as of PHP 7.4.0
CLONE_NEWNET (int)
Available as of PHP 7.4.0
CLONE_NEWPID (int)
Available as of PHP 7.4.0
CLONE_NEWUSER (int)
Available as of PHP 7.4.0
CLONE_NEWCGROUP (int)
Available as of PHP 7.4.0
PRIO_* constants
PRIO_PGRP (int)
PRIO_USER (int)
PRIO_PROCESS (int)
PRIO_DARWIN_BG (int)
Available as of PHP 8.1.0.
PRIO_DARWIN_THREAD (int)
Available as of PHP 8.1.0.


  • « Constantes pré-definidas
  • Basic usage »
  • PHP Manual
  • PCNTL
  • Exemplos

Exemplos

Índice

  • Basic usage


Basic usage

This example forks off a daemon process with a signal handler.

Exemplo #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
}

// detach from the controlling terminal
if (posix_setsid() == -1) {
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
}

}

?>


PCNTL Funções

Veja Também

A look at the section about POSIX functions may be useful.

Índice

  • pcntl_alarm — Set an alarm clock for delivery of a signal
  • pcntl_async_signals — Enable/disable asynchronous signal handling or return the old setting
  • pcntl_errno — Sinônimo de pcntl_get_last_error
  • pcntl_exec — Executes specified program in current process space
  • pcntl_fork — Forks the currently running process
  • pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed
  • pcntl_getpriority — Get the priority of any process
  • pcntl_rfork — Manipulates process resources
  • pcntl_setpriority — Change the priority of any process
  • pcntl_signal_dispatch — Calls signal handlers for pending signals
  • pcntl_signal_get_handler — Get the current handler for specified signal
  • pcntl_signal — Installs a signal handler
  • pcntl_sigprocmask — Sets and retrieves blocked signals
  • pcntl_sigtimedwait — Waits for signals, with a timeout
  • pcntl_sigwaitinfo — Waits for signals
  • pcntl_strerror — Retrieve the system error message associated with the given errno
  • pcntl_unshare — Dissociates parts of the process execution context
  • pcntl_wait — Waits on or returns the status of a forked child
  • pcntl_waitpid — Waits on or returns the status of a forked child
  • pcntl_wexitstatus — Returns the return code of a terminated child
  • pcntl_wifexited — Checks if status code represents a normal exit
  • pcntl_wifsignaled — Checks whether the status code represents a termination due to a signal
  • pcntl_wifstopped — Checks whether the 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


Set an alarm clock for delivery of a signal

  • « PCNTL Funções
  • pcntl_async_signals »
  • PHP Manual
  • PCNTL Funções
  • Set an alarm clock for delivery of a signal

pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pcntl_alarm — Set an alarm clock for delivery of a signal

Descrição

pcntl_alarm(int $seconds): int

Creates a timer that will send a SIGALRM signal to the process after the given number of seconds. Any call to pcntl_alarm() will cancel any previously set alarm.

Parâmetros

seconds

The number of seconds to wait. If seconds is zero, no new alarm is created.

Valor Retornado

Returns the time in seconds that any previously scheduled alarm had remaining before it was to be delivered, or 0 if there was no previously scheduled alarm.


Enable/disable asynchronous signal handling or return the old setting

  • « pcntl_alarm
  • pcntl_errno »
  • PHP Manual
  • PCNTL Funções
  • Enable/disable asynchronous signal handling or return the old setting

pcntl_async_signals

(PHP 7 >= 7.1.0, PHP 8)

pcntl_async_signals — Enable/disable asynchronous signal handling or return the old setting

Descrição

pcntl_async_signals(?bool $enable = null): bool

If the enable parameter is null, pcntl_async_signals() returns whether asynchronous signal handling is enabled. Otherwise, asynchronous signal handling is enabled or disabled.

Parâmetros

enable

Whether asynchronous signal handling should be enabled.

Valor Retornado

When used as getter (enable parameter is null) it returns whether asynchronous signal handling is enabled. When used as setter (enable parameter is not null), it returns whether asynchronous signal handling was enabled before the function call.

Registro de Alterações

Versão | Descrição
8.0.0 | enable is nullable now.

Veja Também

  • declare


Sinônimo de pcntl_get_last_error

  • « pcntl_async_signals
  • pcntl_exec »
  • PHP Manual
  • PCNTL Funções
  • Sinônimo de pcntl_get_last_error

pcntl_errno

(PHP 5 >= 5.3.4, PHP 7, PHP 8)

pcntl_errno — Sinônimo de pcntl_get_last_error()

Descrição

Esta função é um apelido para: pcntl_get_last_error()


Executes specified program in current process space

  • « pcntl_errno
  • pcntl_fork »
  • PHP Manual
  • PCNTL Funções
  • Executes specified program in current process space

pcntl_exec

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pcntl_exec — Executes specified program in current process space

Descrição

pcntl_exec(string $path, array $args = [], array $env_vars = []): bool

Executes the program with the given arguments.

Parâmetros

path

path must be the path to a binary executable or a script with a valid path pointing to an executable in the shebang ( #!/usr/local/bin/perl for example) as the first line. See your system's man execve(2) page for additional information.

args

args is an array of argument strings passed to the program.

env_vars

env_vars is an array of strings which are passed as environment to the program. The array is in the format of name => value, the key being the name of the environmental variable and the value being the value of that variable.

Valor Retornado

Returns false.


Forks the currently running process

  • « pcntl_exec
  • pcntl_get_last_error »
  • PHP Manual
  • PCNTL Funções
  • Forks the currently running process

pcntl_fork

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_fork — Forks the currently running process

Descrição

pcntl_fork(): int

The pcntl_fork() function creates a child process that differs from the parent process only in its PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works on your system.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

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.

Exemplos

Exemplo #1 pcntl_fork() example

<?php

$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} else if ($pid) {
// we are the parent
pcntl_wait($status); //Protect against Zombie children
} else {
// we are the child
}

?>

Veja Também

  • pcntl_rfork() - Manipulates process resources
  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_signal() - Installs a signal handler
  • cli_set_process_title() - Sets the process title


Retrieve the error number set by the last pcntl function which failed

  • « pcntl_fork
  • pcntl_getpriority »
  • PHP Manual
  • PCNTL Funções
  • Retrieve the error number set by the last pcntl function which failed

pcntl_get_last_error

(PHP 5 >= 5.3.4, PHP 7, PHP 8)

pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed

Descrição

pcntl_get_last_error(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns error code.

Veja Também

  • pcntl_strerror() - Retrieve the system error message associated with the given errno


Get the priority of any process

  • « pcntl_get_last_error
  • pcntl_rfork »
  • PHP Manual
  • PCNTL Funções
  • Get the priority of any process

pcntl_getpriority

(PHP 5, PHP 7, PHP 8)

pcntl_getpriority — Get the priority of any process

Descrição

pcntl_getpriority(?int $process_id = null, int $mode = PRIO_PROCESS): int|false

pcntl_getpriority() gets the priority of process_id. Because priority levels can differ between system types and kernel versions, please see your system's getpriority(2) man page for specific details.

Parâmetros

process_id

If null, the process id of the current process is used.

mode

One of PRIO_PGRP, PRIO_USER, PRIO_PROCESS, PRIO_DARWIN_BG or PRIO_DARWIN_THREAD.

Valor Retornado

pcntl_getpriority() returns the priority of the process or false on error. A lower numerical value causes more favorable scheduling.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.0.0 | process_id is nullable now.

Veja Também

  • pcntl_setpriority() - Change the priority of any process


Manipulates process resources

  • « pcntl_getpriority
  • pcntl_setpriority »
  • PHP Manual
  • PCNTL Funções
  • Manipulates process resources

pcntl_rfork

(PHP 8 >= 8.1.0)

pcntl_rfork — Manipulates process resources

Descrição

pcntl_rfork(int $flags, int $signal = 0): int

Manipulates process resources.

Parâmetros

flags

The flags parameter determines which resources of the invoking process (parent) are shared by the new process (child) or initialized to their default values.

flags is the logical OR of some subset of:

  • RFPROC: If set a new process is created; otherwise changes affect the current process.
  • RFNOWAIT: If set, the child process will be dissociated from the parent. Upon exit the child will not leave a status for the parent to collect.
  • RFFDG: If set, the invoker's file descriptor table is copied; otherwise the two processes share a single table.
  • RFCFDG: If set, the new process starts with a clean file descriptor table. Is mutually exclusive with RFFDG.
  • RFLINUXTHPN: If set, the kernel will return SIGUSR1 instead of SIGCHILD upon thread exit for the child. This is intended to do Linux clone exit parent notification.

signal

The signal number.

Valor Retornado

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.

Exemplos

Exemplo #1 pcntl_rfork() example

<?php

$pid = pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if ($pid > 0) {
// This is the parent process.
var_dump($pid);
} else {
// This is the child process.
var_dump($pid);
sleep(2); // as the child does not wait, so we see its "pid"
}
?>

O exemplo acima produzirá algo semelhante a:

int(77093)
int(0)

Notas

Nota:

This function is only available on BSD systems.

Veja Também

  • pcntl_fork() - Forks the currently running process
  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_signal() - Installs a signal handler
  • cli_set_process_title() - Sets the process title


Change the priority of any process

  • « pcntl_rfork
  • pcntl_signal_dispatch »
  • PHP Manual
  • PCNTL Funções
  • Change the priority of any process

pcntl_setpriority

(PHP 5, PHP 7, PHP 8)

pcntl_setpriority — Change the priority of any process

Descrição

pcntl_setpriority(int $priority, ?int $process_id = null, int $mode = PRIO_PROCESS): bool

pcntl_setpriority() sets the priority of process_id.

Parâmetros

priority

priority is generally a value in the range -20 to 20. The default priority is 0 while a lower numerical value causes more favorable scheduling. Because priority levels can differ between system types and kernel versions, please see your system's setpriority(2) man page for specific details.

process_id

If null, the process id of the current process is used.

mode

One of PRIO_PGRP, PRIO_USER, PRIO_PROCESS, PRIO_DARWIN_BG or PRIO_DARWIN_THREAD.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | process_id is nullable now.

Veja Também

  • pcntl_getpriority() - Get the priority of any process
  • pcntl_setpriority()


Calls signal handlers for pending signals

  • « pcntl_setpriority
  • pcntl_signal_get_handler »
  • PHP Manual
  • PCNTL Funções
  • Calls signal handlers for pending signals

pcntl_signal_dispatch

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_signal_dispatch — Calls signal handlers for pending signals

Descrição

pcntl_signal_dispatch(): bool

The pcntl_signal_dispatch() function calls the signal handlers installed by pcntl_signal() for each pending signal.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 pcntl_signal_dispatch() example

<?php
echo "Installing signal handler...\n";
pcntl_signal(SIGHUP, function($signo) {
echo "signal handler called\n";
});

echo "Generating signal SIGHUP to self...\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Dispatching...\n";
pcntl_signal_dispatch();

echo "Done\n";

?>

O exemplo acima produzirá algo semelhante a:

Installing signal handler...
Generating signal SIGHUP to self...
Dispatching...
signal handler called
Done

Veja Também

  • pcntl_signal() - Installs a signal handler
  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigwaitinfo() - Waits for signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout


Get the current handler for specified signal

  • « pcntl_signal_dispatch
  • pcntl_signal »
  • PHP Manual
  • PCNTL Funções
  • Get the current handler for specified signal

pcntl_signal_get_handler

(PHP 7 >= 7.1.0, PHP 8)

pcntl_signal_get_handler — Get the current handler for specified signal

Descrição

pcntl_signal_get_handler(int $signal): callable|int

The pcntl_signal_get_handler() function will get the current handler for the specified signal.

Parâmetros

signal

The signal number.

Valor Retornado

This function may return an integer value that refers to SIG_DFL or SIG_IGN. If a custom handler has been set, that callable is returned.

Registro de Alterações

Versão | Descrição
7.1.0 | pcntl_signal_get_handler() has been added.

Exemplos

Exemplo #1 pcntl_signal_get_handler() example

<?php
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Outputs: int(0)

function pcntl_test($signo) {}
pcntl_signal(SIGUSR1, 'pcntl_test');
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Outputs: string(10) "pcntl_test"

pcntl_signal(SIGUSR1, SIG_DFL);
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Outputs: int(0)

pcntl_signal(SIGUSR1, SIG_IGN);
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Outputs: int(1)
?>

Veja Também

  • pcntl_signal() - Installs a signal handler


Installs a signal handler

  • « pcntl_signal_get_handler
  • pcntl_sigprocmask »
  • PHP Manual
  • PCNTL Funções
  • Installs a signal handler

pcntl_signal

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_signal — Installs a signal handler

Descrição

pcntl_signal(int $signal, callable|int $handler, bool $restart_syscalls = true): bool

The pcntl_signal() function installs a new signal handler or replaces the current signal handler for the signal indicated by signal.

Parâmetros

signal

The signal number.

handler

The signal handler. This may be either a callable, which will be invoked to handle the signal, or either of the two global constants SIG_IGN or SIG_DFL, which will ignore the signal or restore the default signal handler respectively.

If a callable is given, it must implement the following signature:

handler(int $signo, mixed $siginfo): void
signal
The signal being handled.
siginfo
If operating systems supports siginfo_t structures, this will be an array of signal information dependent on the signal.

Nota:

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.

restart_syscalls

Specifies whether system call restarting should be used when this signal arrives.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.1.0 | As of PHP 7.1.0 the handler callback is given a second argument containing the siginfo of the specific signal. This data is only supplied if the operating system has the siginfo_t structure. If the OS does not implement siginfo_t NULL is supplied.

Exemplos

Exemplo #1 pcntl_signal() example

<?php
// tick use required
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:
echo "Caught SIGUSR1...\n";
break;
default:
// handle all other signals
}

}

echo "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
// pcntl_signal(SIGUSR1, array($obj, "do_something"));

echo"Generating signal SIGUSR1 to self...\n";

// send SIGUSR1 to current process id
// posix_* functions require the posix extension
posix_kill(posix_getpid(), SIGUSR1);

echo "Done\n";

?>

Notas

pcntl_signal() doesn't stack the signal handlers, but replaces them.

Veja Também

  • pcntl_fork() - Forks the currently running process
  • pcntl_waitpid() - Waits on or returns the status of a forked child


Sets and retrieves blocked signals

  • « pcntl_signal
  • pcntl_sigtimedwait »
  • PHP Manual
  • PCNTL Funções
  • Sets and retrieves blocked signals

pcntl_sigprocmask

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_sigprocmask — Sets and retrieves blocked signals

Descrição

pcntl_sigprocmask(int $mode, array $signals, array &$old_signals = null): bool

The pcntl_sigprocmask() function adds, removes or sets blocked signals, depending on the mode parameter.

Parâmetros

mode

Sets the behavior of pcntl_sigprocmask(). Possible values:

  • SIG_BLOCK: Add the signals to the currently blocked signals.
  • SIG_UNBLOCK: Remove the signals from the currently blocked signals.
  • SIG_SETMASK: Replace the currently blocked signals by the given list of signals.

signals

List of signals.

old_signals

The old_signals parameter is set to an array containing the list of the previously blocked signals.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 pcntl_sigprocmask() example

<?php
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
$oldset = array();
pcntl_sigprocmask(SIG_UNBLOCK, array(SIGHUP), $oldset);
?>

Veja Também

  • pcntl_sigwaitinfo() - Waits for signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout


Waits for signals, with a timeout

  • « pcntl_sigprocmask
  • pcntl_sigwaitinfo »
  • PHP Manual
  • PCNTL Funções
  • Waits for signals, with a timeout

pcntl_sigtimedwait

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_sigtimedwait — Waits for signals, with a timeout

Descrição

pcntl_sigtimedwait(
array $signals,
array &$info = [],
int $seconds = 0,
int $nanoseconds = 0
): int|false

The pcntl_sigtimedwait() function operates in exactly the same way as pcntl_sigwaitinfo() except that it takes two additional parameters, seconds and nanoseconds, which enable an upper bound to be placed on the time for which the script is suspended.

Parâmetros

signals

Array of signals to wait for.

info

The info is set to an array containing information about the signal. See pcntl_sigwaitinfo().

seconds

Timeout in seconds.

nanoseconds

Timeout in nanoseconds.

Valor Retornado

pcntl_sigtimedwait() returns a signal number on success, ou false em caso de falha.

Veja Também

  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigwaitinfo() - Waits for signals


Waits for signals

  • « pcntl_sigtimedwait
  • pcntl_strerror »
  • PHP Manual
  • PCNTL Funções
  • Waits for signals

pcntl_sigwaitinfo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_sigwaitinfo — Waits for signals

Descrição

pcntl_sigwaitinfo(array $signals, array &$info = []): int|false

The pcntl_sigwaitinfo() function suspends execution of the calling script until one of the signals given in signals are delivered. If one of the signal is already pending (e.g. blocked by pcntl_sigprocmask()), pcntl_sigwaitinfo() will return immediately.

Parâmetros

signals

Array of signals to wait for.

info

The info parameter is set to an array containing information about the signal.

The following elements are set for all signals:

  • signo: Signal number
  • errno: An error number
  • code: Signal code

The following elements may be set for the SIGCHLD signal:

  • status: Exit value or signal
  • utime: User time consumed
  • stime: System time consumed
  • pid: Sending process ID
  • uid: Real user ID of sending process

The following elements may be set for the SIGILL, SIGFPE, SIGSEGV and SIGBUS signals:

  • addr: Memory location which caused fault

The following element may be set for the SIGPOLL signal:

  • band: Band event
  • fd: File descriptor number

Valor Retornado

Returns a signal number on success, ou false em caso de falha.

Exemplos

Exemplo #1 pcntl_sigwaitinfo() example

<?php
echo "Blocking SIGHUP signal\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

echo "Sending SIGHUP to self\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Waiting for signals\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>

Veja Também

  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout


Retrieve the system error message associated with the given errno

  • « pcntl_sigwaitinfo
  • pcntl_unshare »
  • PHP Manual
  • PCNTL Funções
  • Retrieve the system error message associated with the given errno

pcntl_strerror

(PHP 5 >= 5.3.4, PHP 7, PHP 8)

pcntl_strerror — Retrieve the system error message associated with the given errno

Descrição

pcntl_strerror(int $error_code): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

error_code

Valor Retornado

Returns error description.

Veja Também

  • pcntl_get_last_error() - Retrieve the error number set by the last pcntl function which failed


Dissociates parts of the process execution context

  • « pcntl_strerror
  • pcntl_wait »
  • PHP Manual
  • PCNTL Funções
  • Dissociates parts of the process execution context

pcntl_unshare

(PHP 7 >= 7.4.0, PHP 8)

pcntl_unshare — Dissociates parts of the process execution context

Descrição

pcntl_unshare(int $flags): bool

pcntl_unshare() allows a process to disassociate parts of its execution context that are currently being shared with other processes. The main use of pcntl_unshare() is to allow a process to control its shared execution context without creating a new process.

Parâmetros

flags

The flags parameter is a bitmask that specifies which parts of the execution context should be unshared. This parameter is specified by ORing together zero or more of the CLONE_* constants:

  • CLONE_NEWNS
  • CLONE_NEWIPC
  • CLONE_NEWUTS
  • CLONE_NEWNET
  • CLONE_NEWPID
  • CLONE_NEWUSER
  • CLONE_NEWCGROUP

Valor Retornado

Returns 0 on success, -1 otherwise. On failure it sets an error code, that can be retrieved with pcntl_get_last_error().

Veja Também

  • PCNTL Constants
  • pcntl_get_last_error() - Retrieve the error number set by the last pcntl function which failed


Waits on or returns the status of a forked child

  • « pcntl_unshare
  • pcntl_waitpid »
  • PHP Manual
  • PCNTL Funções
  • Waits on or returns the status of a forked child

pcntl_wait

(PHP 5, PHP 7, PHP 8)

pcntl_wait — Waits on or returns the status of a forked child

Descrição

pcntl_wait(int &$status, int $flags = 0, array &$resource_usage = []): int

The wait function suspends execution of the current process until a child 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 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 wait(2) man page for specific details as to how wait works on your system.

Nota:

This function is equivalent to calling pcntl_waitpid() with a -1 process_id and no flags.

Parâmetros

status

pcntl_wait() 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().

flags

If wait3 is available on your system (mostly BSD-style systems), you can provide the optional flags parameter. If this parameter is not provided, wait will be used for the system call. If wait3 is not available, providing a value for flags will have no effect. The value of flags is the value of zero or more of the following two constants OR'ed together:

Possible values for flags
WNOHANG | Return immediately if no child has exited.
WUNTRACED | Return for children which are stopped, and whose status has not been reported.

Valor Retornado

pcntl_wait() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was provided as an option (on wait3-available systems) and no child was available.

Veja Também

  • pcntl_fork() - Forks the currently running process
  • pcntl_signal() - Installs a signal handler
  • pcntl_wifexited() - Checks if status code represents a normal exit
  • pcntl_wifstopped() - Checks whether the child process is currently stopped
  • pcntl_wifsignaled() - Checks whether the status code represents a termination due to a signal
  • pcntl_wexitstatus() - Returns the return code of a terminated child
  • pcntl_wtermsig() - Returns the signal which caused the child to terminate
  • pcntl_wstopsig() - Returns the signal which caused the child to stop
  • pcntl_waitpid() - Waits on or returns the status of a forked child


Waits on or returns the status of a forked child

  • « pcntl_wait
  • pcntl_wexitstatus »
  • PHP Manual
  • PCNTL Funções
  • Waits on or returns the status of a forked child

pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_waitpid — Waits on or returns the status of a forked child

Descrição

pcntl_waitpid(
int $process_id,
int &$status,
int $flags = 0,
array &$resource_usage = []
): int

Suspends execution of the current process until a child as specified by the process_id 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 process_id 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.

Parâmetros

process_id

The value of process_id can be one of the following:

possible values for process_id
< -1 | wait for any child process whose process group ID is equal to the absolute value of process_id.
-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 process_id.

Nota:

Specifying -1 as the process_id is equivalent to the functionality pcntl_wait() provides (minus flags).

status

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().

flags

The value of flags is the value of zero or more of the following two global constants OR'ed together:

possible values for flags
WNOHANG | return immediately if no child has exited.
WUNTRACED | return for children which are stopped, and whose status has not been reported.

Valor Retornado

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

Veja Também

  • pcntl_fork() - Forks the currently running process
  • pcntl_signal() - Installs a signal handler
  • pcntl_wifexited() - Checks if status code represents a normal exit
  • pcntl_wifstopped() - Checks whether the child process is currently stopped
  • pcntl_wifsignaled() - Checks whether the status code represents a termination due to a signal
  • pcntl_wexitstatus() - Returns the return code of a terminated child
  • pcntl_wtermsig() - Returns the signal which caused the child to terminate
  • pcntl_wstopsig() - Returns the signal which caused the child to stop


Returns the return code of a terminated child

  • « pcntl_waitpid
  • pcntl_wifexited »
  • PHP Manual
  • PCNTL Funções
  • Returns the return code of a terminated child

pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wexitstatus — Returns the return code of a terminated child

Descrição

pcntl_wexitstatus(int $status): int|false

Returns the return code of a terminated child. This function is only useful if pcntl_wifexited() returned true.

Parâmetros

status

O parâmetro status é o parâmetro de status fornecido a uma chamada bem sucedida a pcntl_waitpid().

Valor Retornado

Returns the return code. If the functionality is not supported by the OS, false is returned.

Veja Também

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_wifexited() - Checks if status code represents a normal exit


Checks if status code represents a normal exit

  • « pcntl_wexitstatus
  • pcntl_wifsignaled »
  • PHP Manual
  • PCNTL Funções
  • Checks if status code represents a normal exit

pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wifexited — Checks if status code represents a normal exit

Descrição

pcntl_wifexited(int $status): bool

Checks whether the child status code represents a normal exit.

Parâmetros

status

O parâmetro status é o parâmetro de status fornecido a uma chamada bem sucedida a pcntl_waitpid().

Valor Retornado

Returns true if the child status code represents a normal exit, false otherwise.

Veja Também

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_wexitstatus() - Returns the return code of a terminated child


Checks whether the status code represents a termination due to a signal

  • « pcntl_wifexited
  • pcntl_wifstopped »
  • PHP Manual
  • PCNTL Funções
  • Checks whether the status code represents a termination due to a signal

pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wifsignaled — Checks whether the status code represents a termination due to a signal

Descrição

pcntl_wifsignaled(int $status): bool

Checks whether the child process exited because of a signal which was not caught.

Parâmetros

status

O parâmetro status é o parâmetro de status fornecido a uma chamada bem sucedida a pcntl_waitpid().

Valor Retornado

Returns true if the child process exited because of a signal which was not caught, false otherwise.

Veja Também

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_signal() - Installs a signal handler


Checks whether the child process is currently stopped

  • « pcntl_wifsignaled
  • pcntl_wstopsig »
  • PHP Manual
  • PCNTL Funções
  • Checks whether the child process is currently stopped

pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wifstopped — Checks whether the child process is currently stopped

Descrição

pcntl_wifstopped(int $status): bool

Checks whether 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.

Parâmetros

status

O parâmetro status é o parâmetro de status fornecido a uma chamada bem sucedida a pcntl_waitpid().

Valor Retornado

Returns true if the child process which caused the return is currently stopped, false otherwise.

Veja Também

  • pcntl_waitpid() - Waits on or returns the status of a forked child


Returns the signal which caused the child to stop

  • « pcntl_wifstopped
  • pcntl_wtermsig »
  • PHP Manual
  • PCNTL Funções
  • Returns the signal which caused the child to stop

pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wstopsig — Returns the signal which caused the child to stop

Descrição

pcntl_wstopsig(int $status): int|false

Returns the number of the signal which caused the child to stop. This function is only useful if pcntl_wifstopped() returned true.

Parâmetros

status

O parâmetro status é o parâmetro de status fornecido a uma chamada bem sucedida a pcntl_waitpid().

Valor Retornado

Returns the signal number. If the functionality is not supported by the OS, false is returned.

Veja Também

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_wifstopped() - Checks whether the child process is currently stopped


Returns the signal which caused the child to terminate

  • « pcntl_wstopsig
  • POSIX »
  • PHP Manual
  • PCNTL Funções
  • Returns the signal which caused the child to terminate

pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wtermsig — Returns the signal which caused the child to terminate

Descrição

pcntl_wtermsig(int $status): int|false

Returns the number of the signal that caused the child process to terminate. This function is only useful if pcntl_wifsignaled() returned true.

Parâmetros

status

O parâmetro status é o parâmetro de status fornecido a uma chamada bem sucedida a pcntl_waitpid().

Valor Retornado

Returns the signal number. If the functionality is not supported by the OS, false is returned.

Veja Também

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_signal() - Installs a signal handler
  • pcntl_wifsignaled() - Checks whether the status code represents a termination due to a signal


POSIX

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
    • posix_access constants
    • posix_mknod constants
    • posix_setrlimit constants
    • posix_pathconf constants
    • posix_sysconf constants
  • POSIX Funções
    • posix_access — Determine accessibility of a file
    • posix_ctermid — Get path name of controlling terminal
    • posix_eaccess — Determine accessibility of a file
    • posix_errno — Sinônimo de posix_get_last_error
    • posix_fpathconf — Returns the value of a configurable limit
    • posix_get_last_error — Retrieve the error number set by the last posix function that failed
    • posix_getcwd — Pathname of current directory
    • posix_getegid — Return the effective group ID of the current process
    • posix_geteuid — Return the effective user ID of the current process
    • posix_getgid — Return the real group ID of the current process
    • posix_getgrgid — Return info about a group by group id
    • posix_getgrnam — Return info about a group by name
    • posix_getgroups — Return the group set of the current process
    • posix_getlogin — Return login name
    • posix_getpgid — Get process group id for job control
    • posix_getpgrp — Return the current process group identifier
    • posix_getpid — Return the current process identifier
    • posix_getppid — Return the parent process identifier
    • posix_getpwnam — Return info about a user by username
    • posix_getpwuid — Return info about a user by user id
    • posix_getrlimit — Return info about system resource limits
    • posix_getsid — Get the current sid of the process
    • posix_getuid — Return the real user ID of the current process
    • posix_initgroups — Calculate the group access list
    • posix_isatty — Determine if a file descriptor is an interactive terminal
    • posix_kill — Send a signal to a process
    • posix_mkfifo — Create a fifo special file (a named pipe)
    • posix_mknod — Create a special or ordinary file (POSIX.1)
    • posix_pathconf — Returns the value of a configurable limit
    • posix_setegid — Set the effective GID of the current process
    • posix_seteuid — Set the effective UID of the current process
    • posix_setgid — Set the GID of the current process
    • posix_setpgid — Set process group id for job control
    • posix_setrlimit — Set system resource limits
    • posix_setsid — Make the current process a session leader
    • posix_setuid — Set the UID of the current process
    • posix_strerror — Retrieve the system error message associated with the given errno
    • posix_sysconf — Returns system runtime information
    • posix_times — Get process times
    • posix_ttyname — Determine terminal device name
    • posix_uname — Get system name


Introdução

This module contains an interface to those functions defined in the IEEE 1003.1 (POSIX.1) standards document which are not accessible through other means.

Aviso

Sensitive data can be retrieved with the POSIX functions, e.g. posix_getpwnam() and friends.

Nota: Esta extensão não está disponível em plataformas Windows.


Instalação

Esta extensão está habilitada por padrão. Ela pode ser desabilitada usando a seguinte opção em tempo de compilação: --disable-posix


Constantes pré-definidas

Índice

  • posix_access constants
  • posix_mknod constants
  • posix_setrlimit constants
  • posix_pathconf constants
  • posix_sysconf constants

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.


posix_access constants

  • « Constantes pré-definidas
  • posix_mknod constants »
  • PHP Manual
  • Constantes pré-definidas
  • posix_access constants

posix_access() constants

Nota:

Please note that some of these constants may not be available on every system.

POSIX_F_OK (int)
Check whether the file exists.
POSIX_R_OK (int)
Check whether the file exists and has read permissions.
POSIX_W_OK (int)
Check whether the file exists and has write permissions.
POSIX_X_OK (int)
Check whether the file exists and has execute permissions.


posix_mknod constants

  • « posix_access constants
  • posix_setrlimit constants »
  • PHP Manual
  • Constantes pré-definidas
  • posix_mknod constants

posix_mknod() constants

Nota:

Please note that some of them may not be available on your system.

POSIX_S_IFBLK (int)
Block special file
POSIX_S_IFCHR (int)
Character special file
POSIX_S_IFIFO (int)
FIFO (named pipe) special file
POSIX_S_IFREG (int)
Normal file
POSIX_S_IFSOCK (int)
Socket


posix_setrlimit constants

  • « posix_mknod constants
  • posix_pathconf constants »
  • PHP Manual
  • Constantes pré-definidas
  • posix_setrlimit constants

posix_setrlimit() constants

Nota:

Please note that some of them may not be available on your system.

Nota:

You may wish to read the below notes in conjunction with the manpage for setrlimit() on your specific operating system, as there is variance in how these limits are interpreted, even across operating systems that claim to implement POSIX in full.

POSIX_RLIMIT_AS (int)
The maximum size of the process's address space in bytes. See also PHP's memory_limit configuration directive.
POSIX_RLIMIT_CORE (int)
The maximum size of a core file. If the limit is set to 0, no core file will be generated.
POSIX_RLIMIT_CPU (int)
The maximum amount of CPU time that the process can use, in seconds. When the soft limit is hit, a SIGXCPU signal will be sent, which can be caught with pcntl_signal(). Depending on the operating system, additional SIGXCPU signals may be sent each second until the hard limit is hit, at which point an uncatchable SIGKILL signal is sent. See also set_time_limit().
POSIX_RLIMIT_DATA (int)
The maximum size of the process's data segment, in bytes. It is extremely unlikely that this will have any effect on the execution of PHP unless an extension is in use that calls brk() or sbrk().
POSIX_RLIMIT_FSIZE (int)
The maximum size of files that the process can create, in bytes.
POSIX_RLIMIT_LOCKS (int)
The maximum number of locks that the process can create. This is only supported on extremely old Linux kernels.
POSIX_RLIMIT_MEMLOCK (int)
The maximum number of bytes that can be locked into memory.
POSIX_RLIMIT_MSGQUEUE (int)
The maximum number of bytes that can be allocated for POSIX message queues. PHP does not ship with support for POSIX message queues, so this limit will not have any effect unless you are using an extension that implements that support.
POSIX_RLIMIT_NICE (int)
The maximum value to which the process can be reniced to. The value that will be used will be 20 - limit, as resource limit values cannot be negative.
POSIX_RLIMIT_NOFILE (int)
A value one greater than the maximum file descriptor number that can be opened by this process.
POSIX_RLIMIT_NPROC (int)
The maximum number of processes (and/or threads, on some operating systems) that can be created for the real user ID of the process.
POSIX_RLIMIT_RSS (int)
The maximum size of the process's resident set, in pages.
POSIX_RLIMIT_RTPRIO (int)
The maximum real time priority that can be set via the sched_setscheduler() and sched_setparam() system calls.
POSIX_RLIMIT_RTTIME (int)
The maximum amount of CPU time, in microseconds, that the process can consume without making a blocking system call if it is using real time scheduling.
POSIX_RLIMIT_SIGPENDING (int)
The maximum number of signals that can be queued for the real user ID of the process.
POSIX_RLIMIT_STACK (int)
The maximum size of the process stack, in bytes.
POSIX_RLIMIT_INFINITY (int)
Used to indicate an infinite value for a resource limit.
POSIX_RLIMIT_KQUEUES (int)
The maximum number of kqueues this user id is allowed to create (FreeBSD). Available as of PHP 8.1.0.
POSIX_RLIMIT_NPTS (int)
The maximum number of pseudo-terminals this user id is allowed to create (FreeBSD). Available as of PHP 8.1.0.


posix_pathconf constants

  • « posix_setrlimit constants
  • posix_sysconf constants »
  • PHP Manual
  • Constantes pré-definidas
  • posix_pathconf constants

posix_pathconf() constants

POSIX_PC_LINK_MAX (int)
The maximum number of links a given file or directory can have. Available as of PHP 8.3.0.
POSIX_PC_MAX_CANON (int)
The maximum number of bytes in a terminal canonical input buffer (pathname being then a character special file). Available as of PHP 8.3.0.
POSIX_PC_MAX_INPUT (int)
The maximum number of bytes of a terminal input queue (pathname being then a character special file). Available as of PHP 8.3.0.
POSIX_PC_NAME_MAX (int)
The maximum number of characters for a file name alone, not its path. Available as of PHP 8.3.0.
POSIX_PC_PATH_MAX (int)
The maximum number of characters for a full path name. Available as of PHP 8.3.0.
POSIX_PC_PIPE_BUF (int)
The maximum number of bytes that can be written to a pipe in one operation. Available as of PHP 8.3.0.
POSIX_PC_CHOWN_RESTRICTED (int)
If privileges are required to be allow chown() to work. Available as of PHP 8.3.0.
POSIX_PC_NO_TRUNC (int)
If a file name (or files under a directory) is longer than POSIX_PC_NAME_MAX. Available as of PHP 8.3.0.
POSIX_PC_ALLOC_SIZE_MIN (int)
The minimum number of bytes of storage allocated for any portion of a file. Available as of PHP 8.3.0.
POSIX_PC_ALLOC_SYMLINK_MAX (int)
The maximum number of symbolic links a given file or directory can have. Available as of PHP 8.3.0.


posix_sysconf constants

  • « posix_pathconf constants
  • POSIX Funções »
  • PHP Manual
  • Constantes pré-definidas
  • posix_sysconf constants

posix_sysconf() constants

POSIX_SC_ARG_MAX (int)
The maximum number of bytes the arguments (and environment variables) can have. Available as of PHP 8.3.0.
POSIX_SC_PAGESIZE (int)
The number of bytes of the current page. Available as of PHP 8.3.0.
POSIX_SC_NPROCESSORS_CONF (int)
The number of cpus configured system wise. Available as of PHP 8.3.0.
POSIX_SC_NPROCESSORS_ONLN (int)
The number of cpus currently active system wise. Available as of PHP 8.3.0.


POSIX Funções

Veja Também

The section about Process Control Functions maybe of interest for you.

Índice

  • posix_access — Determine accessibility of a file
  • posix_ctermid — Get path name of controlling terminal
  • posix_eaccess — Determine accessibility of a file
  • posix_errno — Sinônimo de posix_get_last_error
  • posix_fpathconf — Returns the value of a configurable limit
  • posix_get_last_error — Retrieve the error number set by the last posix function that failed
  • posix_getcwd — Pathname of current directory
  • posix_getegid — Return the effective group ID of the current process
  • posix_geteuid — Return the effective user ID of the current process
  • posix_getgid — Return the real group ID of the current process
  • posix_getgrgid — Return info about a group by group id
  • posix_getgrnam — Return info about a group by name
  • posix_getgroups — Return the group set of the current process
  • posix_getlogin — Return login name
  • posix_getpgid — Get process group id for job control
  • posix_getpgrp — Return the current process group identifier
  • posix_getpid — Return the current process identifier
  • posix_getppid — Return the parent process identifier
  • posix_getpwnam — Return info about a user by username
  • posix_getpwuid — Return info about a user by user id
  • posix_getrlimit — Return info about system resource limits
  • posix_getsid — Get the current sid of the process
  • posix_getuid — Return the real user ID of the current process
  • posix_initgroups — Calculate the group access list
  • posix_isatty — Determine if a file descriptor is an interactive terminal
  • posix_kill — Send a signal to a process
  • posix_mkfifo — Create a fifo special file (a named pipe)
  • posix_mknod — Create a special or ordinary file (POSIX.1)
  • posix_pathconf — Returns the value of a configurable limit
  • posix_setegid — Set the effective GID of the current process
  • posix_seteuid — Set the effective UID of the current process
  • posix_setgid — Set the GID of the current process
  • posix_setpgid — Set process group id for job control
  • posix_setrlimit — Set system resource limits
  • posix_setsid — Make the current process a session leader
  • posix_setuid — Set the UID of the current process
  • posix_strerror — Retrieve the system error message associated with the given errno
  • posix_sysconf — Returns system runtime information
  • posix_times — Get process times
  • posix_ttyname — Determine terminal device name
  • posix_uname — Get system name


Determine accessibility of a file

  • « POSIX Funções
  • posix_ctermid »
  • PHP Manual
  • POSIX Funções
  • Determine accessibility of a file

posix_access

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

posix_access — Determine accessibility of a file

Descrição

posix_access(string $filename, int $flags = 0): bool

posix_access() checks the user's permission of a file.

Parâmetros

filename

The name of the file to be tested.

flags

A mask consisting of one or more of POSIX_F_OK, POSIX_R_OK, POSIX_W_OK and POSIX_X_OK.

POSIX_R_OK, POSIX_W_OK and POSIX_X_OK request checking whether the file exists and has read, write and execute permissions, respectively. POSIX_F_OK just requests checking for the existence of the file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 posix_access() example

This example will check if the $file is readable and writable, otherwise will print an error message.

<?php

$file = 'some_file';

if (posix_access($file, POSIX_R_OK | POSIX_W_OK)) {
echo 'The file is readable and writable!';

} else {
$error = posix_get_last_error();

echo "Error $error: " . posix_strerror($error);
}

?>

Veja Também

  • posix_get_last_error() - Retrieve the error number set by the last posix function that failed
  • posix_strerror() - Retrieve the system error message associated with the given errno


Get path name of controlling terminal

  • « posix_access
  • posix_eaccess »
  • PHP Manual
  • POSIX Funções
  • Get path name of controlling terminal

posix_ctermid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_ctermid — Get path name of controlling terminal

Descrição

posix_ctermid(): string|false

Generates a string which is the pathname for the current controlling terminal for the process. On error this will set errno, which can be checked using posix_get_last_error()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Upon successful completion, returns string of the pathname to the current controlling terminal. Otherwise false is returned and errno is set, which can be checked with posix_get_last_error().

Exemplos

Exemplo #1 posix_ctermid() example

This example will display the path to the current TTY.

<?php
echo "I am running from ".posix_ctermid();
?>

Veja Também

  • posix_ttyname() - Determine terminal device name
  • posix_get_last_error() - Retrieve the error number set by the last posix function that failed


Determine accessibility of a file

  • « posix_ctermid
  • posix_errno »
  • PHP Manual
  • POSIX Funções
  • Determine accessibility of a file

posix_eaccess

(PHP 8 >= 8.3.0)

posix_eaccess — Determine accessibility of a file

Descrição

posix_eaccess(string $filename, int $flags = 0): bool

posix_eaccess() checks the effective user's permission of a file

Parâmetros

filename

The name of a file to be tested.

flags

A mask consisting of one or more of POSIX_F_OK, POSIX_R_OK, POSIX_W_OK and POSIX_X_OK.

POSIX_R_OK, POSIX_W_OK and POSIX_X_OK request checking whether the file exists and has read, write and execute permissions, respectively. POSIX_F_OK just requests checking for the existence of the file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.0 | Checks the effective user/group for a file, differing from posix_access() which checks from the real user/group.

Exemplos

Exemplo #1 posix_eaccess() example

This example will check if the $file is readable and writable, otherwise will print an error message.

<?php

$file = 'some_file';

if (posix_eaccess($file, POSIX_R_OK | POSIX_W_OK)) {
echo 'The file is readable and writable!';

} else {
$error = posix_get_last_error();

echo "Error $error: " . posix_strerror($error);
}

?>

Veja Também

  • posix_get_last_error() - Retrieve the error number set by the last posix function that failed
  • posix_strerror() - Retrieve the system error message associated with the given errno
  • posix_access() - Determine accessibility of a file


Sinônimo de posix_get_last_error

  • « posix_eaccess
  • posix_fpathconf »
  • PHP Manual
  • POSIX Funções
  • Sinônimo de posix_get_last_error

posix_errno

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

posix_errno — Sinônimo de posix_get_last_error()

Descrição

Esta função é um apelido para: posix_get_last_error().


Returns the value of a configurable limit

  • « posix_errno
  • posix_get_last_error »
  • PHP Manual
  • POSIX Funções
  • Returns the value of a configurable limit

posix_fpathconf

(PHP 8 >= 8.3.0)

posix_fpathconf — Returns the value of a configurable limit

Descrição

posix_fpathconf(resource|int $file_descriptor, int $name): int|false

Returns the value of a configurable limit from name for file_descriptor.

Parâmetros

file_descriptor

O descritor de arquivo, que deve ser um resource de arquivo ou um int. Um int será interpretado como um descritor de arquivo que pode ser passado diretamente para a chamada de sistema subjacente.

name

The name of the configurable limit, one of the following. POSIX_PC_LINK_MAX, POSIX_PC_MAX_CANON, POSIX_PC_MAX_INPUT, POSIX_PC_NAME_MAX, POSIX_PC_PATH_MAX, POSIX_PC_PIPE_BUF, POSIX_PC_CHOWN_RESTRICTED, POSIX_PC_NO_TRUNC, POSIX_PC_ALLOC_SIZE_MIN, POSIX_PC_SYMLINK_MAX.

Valor Retornado

Returns the configurable limit or false.

Erros/Exceções

Throws a ValueError when resource is invalid.

Exemplos

Exemplo #1 posix_fpathconf() example

This example will get the max path name's length in bytes for the current dir.

<?php
$fd = fopen(__DIR__, "r");
echo posix_fpathconf($fd, POSIX_PC_PATH_MAX);
?>

O exemplo acima produzirá:

4096

Veja Também

  • posix_pathconf() - Returns the value of a configurable limit


Retrieve the error number set by the last posix function that failed

  • « posix_fpathconf
  • posix_getcwd »
  • PHP Manual
  • POSIX Funções
  • Retrieve the error number set by the last posix function that failed

posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

posix_get_last_error — Retrieve the error number set by the last posix function that failed

Descrição

posix_get_last_error(): int

Retrieve the error number set by the last posix function that failed. The system error message associated with the errno may be checked with posix_strerror().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the errno (error number) set by the last posix function that failed. If no errors exist, 0 is returned.

Exemplos

Exemplo #1 posix_get_last_error() example

This example attempt to kill a bogus process id, which will set the last error. We will then print out the last errno.

<?php
posix_kill(999459,SIGKILL);
echo 'Your error returned was '.posix_get_last_error(); //Your error was ___
?>

Veja Também

  • posix_strerror() - Retrieve the system error message associated with the given errno


Pathname of current directory

  • « posix_get_last_error
  • posix_getegid »
  • PHP Manual
  • POSIX Funções
  • Pathname of current directory

posix_getcwd

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getcwd — Pathname of current directory

Descrição

posix_getcwd(): string|false

Gets the absolute pathname of the script's current working directory. On error, it sets errno which can be checked using posix_get_last_error()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string of the absolute pathname on success. On error, returns false and sets errno which can be checked with posix_get_last_error().

Exemplos

Exemplo #1 posix_getcwd() example

This example will return the absolute path of the current working directory of the script.

<?php
echo 'My current working directory is '.posix_getcwd();
?>

Notas

Nota:

This function can fail on

  • Read or Search permission was denied
  • Pathname no longer exists


Return the effective group ID of the current process

  • « posix_getcwd
  • posix_geteuid »
  • PHP Manual
  • POSIX Funções
  • Return the effective group ID of the current process

posix_getegid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getegid — Return the effective group ID of the current process

Descrição

posix_getegid(): int

Return the numeric effective group ID of the current process.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an int of the effective group ID.

Exemplos

Exemplo #1 posix_getegid() example

This example will print out the effective group id, once it is changed with posix_setegid().

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

Notas

posix_getegid() is different than posix_getgid() because effective group ID can be changed by a calling process using posix_setegid().

Veja Também

  • posix_getgrgid() - Return info about a group by group id
  • posix_getgid() - Return the real group ID of the current process
  • posix_setgid() - Set the GID of the current process


Return the effective user ID of the current process

  • « posix_getegid
  • posix_getgid »
  • PHP Manual
  • POSIX Funções
  • Return the effective user ID of the current process

posix_geteuid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_geteuid — Return the effective user ID of the current process

Descrição

posix_geteuid(): int

Return the numeric effective user ID of the current process. See also posix_getpwuid() for information on how to convert this into a useable username.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the user id, as an int

Exemplos

Exemplo #1 posix_geteuid() example

This example will show the current user id then set the effective user id to a separate id using posix_seteuid(), then show the difference between the real id and the effective id.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_seteuid(10000);
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10000
?>

Veja Também

  • posix_getpwuid() - Return info about a user by user id
  • posix_getuid() - Return the real user ID of the current process
  • posix_setuid() - Set the UID of the current process
  • POSIX man page GETEUID(2)


Return the real group ID of the current process

  • « posix_geteuid
  • posix_getgrgid »
  • PHP Manual
  • POSIX Funções
  • Return the real group ID of the current process

posix_getgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getgid — Return the real group ID of the current process

Descrição

posix_getgid(): int

Return the numeric real group ID of the current process.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the real group id, as an int.

Exemplos

Exemplo #1 posix_getgid() example

This example will print out the real group id, even once the effective group id has been changed.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

Veja Também

  • posix_getgrgid() - Return info about a group by group id
  • posix_getegid() - Return the effective group ID of the current process
  • posix_setgid() - Set the GID of the current process
  • POSIX man page GETGID(2)


Return info about a group by group id

  • « posix_getgid
  • posix_getgrnam »
  • PHP Manual
  • POSIX Funções
  • Return info about a group by group id

posix_getgrgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getgrgid — Return info about a group by group id

Descrição

posix_getgrgid(int $group_id): array|false

Gets information about a group provided its id.

Parâmetros

group_id

The group id.

Valor Retornado

The array elements returned are:

The group information array
Element | Description
name | The name element contains the name of the group. This is a short, usually less than 16 character "handle" of the group, not the real, full name.
passwd | The passwd element contains the group's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
gid | Group ID, should be the same as the group_id parameter used when calling the function, and hence redundant.
members | This consists of an array of string's for all the members in the group.
The function returns false on failure.

Exemplos

Exemplo #1 Example use of posix_getgrgid()

<?php

$groupid = posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Veja Também

  • posix_getegid() - Return the effective group ID of the current process
  • posix_getgrnam() - Return info about a group by name
  • filegroup() - Lê o grupo do arquivo
  • stat() - Obtém informações sobre um arquivo
  • POSIX man page GETGRNAM(3)


Return info about a group by name

  • « posix_getgrgid
  • posix_getgroups »
  • PHP Manual
  • POSIX Funções
  • Return info about a group by name

posix_getgrnam

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getgrnam — Return info about a group by name

Descrição

posix_getgrnam(string $name): array|false

Gets information about a group provided its name.

Parâmetros

name

The name of the group

Valor Retornado

Returns an array on success, ou false em caso de falha. The array elements returned are:

The group information array
Element | Description
name | The name element contains the name of the group. This is a short, usually less than 16 character "handle" of the group, not the real, full name. This should be the same as the name parameter used when calling the function, and hence redundant.
passwd | The passwd element contains the group's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
gid | Group ID of the group in numeric form.
members | This consists of an array of string's for all the members in the group.

Exemplos

Exemplo #1 Example use of posix_getgrnam()

<?php

$groupinfo = posix_getgrnam("toons");

print_r($groupinfo);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Veja Também

  • posix_getegid() - Return the effective group ID of the current process
  • posix_getgrgid() - Return info about a group by group id
  • filegroup() - Lê o grupo do arquivo
  • stat() - Obtém informações sobre um arquivo
  • POSIX man page GETGRNAM(3)


Return the group set of the current process

  • « posix_getgrnam
  • posix_getlogin »
  • PHP Manual
  • POSIX Funções
  • Return the group set of the current process

posix_getgroups

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getgroups — Return the group set of the current process

Descrição

posix_getgroups(): array|false

Gets the group set of the current process.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of integers containing the numeric group ids of the group set of the current process, ou false em caso de falha.

Exemplos

Exemplo #1 Example use of posix_getgroups()

<?php

$groups = posix_getgroups();

print_r($groups);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => 4
    [1] => 20
    [2] => 24
    [3] => 25
    [4] => 29
    [5] => 30
    [6] => 33
    [7] => 44
    [8] => 46
    [9] => 104
    [10] => 109
    [11] => 110
    [12] => 1000
)

Veja Também

  • posix_getgrgid() - Return info about a group by group id


Return login name

  • « posix_getgroups
  • posix_getpgid »
  • PHP Manual
  • POSIX Funções
  • Return login name

posix_getlogin

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getlogin — Return login name

Descrição

posix_getlogin(): string|false

Returns the login name of the user owning the current process.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the login name of the user, as a string, ou false em caso de falha.

Exemplos

Exemplo #1 Example use of posix_getlogin()

<?php
echo posix_getlogin(); //apache
?>

Veja Também

  • posix_getpwnam() - Return info about a user by username
  • POSIX man page GETLOGIN(3)


Get process group id for job control

  • « posix_getlogin
  • posix_getpgrp »
  • PHP Manual
  • POSIX Funções
  • Get process group id for job control

posix_getpgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpgid — Get process group id for job control

Descrição

posix_getpgid(int $process_id): int|false

Returns the process group identifier of the process process_id ou false em caso de falha.

Parâmetros

process_id

The process id.

Valor Retornado

Returns the identifier, as an int.

Exemplos

Exemplo #1 Example use of posix_getpgid()

<?php
$pid = posix_getppid();
echo posix_getpgid($pid); //35
?>

Notas

Nota:

This is a not POSIX function, but is common on BSD and System V systems. If the system does not support this function, then it will not be included at compile time. This may be checked with function_exists().

Veja Também

  • posix_getppid() - Return the parent process identifier
  • man page SETPGID(2)


Return the current process group identifier

  • « posix_getpgid
  • posix_getpid »
  • PHP Manual
  • POSIX Funções
  • Return the current process group identifier

posix_getpgrp

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpgrp — Return the current process group identifier

Descrição

posix_getpgrp(): int

Return the process group identifier of the current process.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the identifier, as an int.

Veja Também

  • POSIX.1 and the getpgrp(2) manual page on the POSIX system for more information on process groups.


Return the current process identifier

  • « posix_getpgrp
  • posix_getppid »
  • PHP Manual
  • POSIX Funções
  • Return the current process identifier

posix_getpid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpid — Return the current process identifier

Descrição

posix_getpid(): int

Return the process identifier of the current process.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the identifier, as an int.

Exemplos

Exemplo #1 Example use of posix_getpid()

<?php
echo posix_getpid(); //8805
?>

Veja Também

  • posix_kill() - Send a signal to a process
  • POSIX man page GETPID(2)


Return the parent process identifier

  • « posix_getpid
  • posix_getpwnam »
  • PHP Manual
  • POSIX Funções
  • Return the parent process identifier

posix_getppid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getppid — Return the parent process identifier

Descrição

posix_getppid(): int

Return the process identifier of the parent process of the current process.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the identifier, as an int.

Exemplos

Exemplo #1 Example use of posix_getppid()

<?php
echo posix_getppid(); //8259
?>


Return info about a user by username

  • « posix_getppid
  • posix_getpwuid »
  • PHP Manual
  • POSIX Funções
  • Return info about a user by username

posix_getpwnam

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpwnam — Return info about a user by username

Descrição

posix_getpwnam(string $username): array|false

Returns an array of information about the given user.

Parâmetros

username

An alphanumeric username.

Valor Retornado

On success an array with the following elements is returned, else false is returned:

The user information array
Element | Description
name | The name element contains the username of the user. This is a short, usually less than 16 character "handle" of the user, not the real, full name. This should be the same as the username parameter used when calling the function, and hence redundant.
passwd | The passwd element contains the user's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
uid | User ID of the user in numeric form.
gid | The group ID of the user. Use the function posix_getgrgid() to resolve the group name and a list of its members.
gecos | GECOS is an obsolete term that refers to the finger information field on a Honeywell batch processing system. The field, however, lives on, and its contents have been formalized by POSIX. The field contains a comma separated list containing the user's full name, office phone, office number, and home phone number. On most systems, only the user's full name is available.
dir | This element contains the absolute path to the home directory of the user.
shell | The shell element contains the absolute path to the executable of the user's default shell.

Exemplos

Exemplo #1 Example use of posix_getpwnam()

<?php

$userinfo = posix_getpwnam("tom");

print_r($userinfo);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [gecos]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Veja Também

  • posix_getpwuid() - Return info about a user by user id
  • POSIX man page GETPWNAM(3)


Return info about a user by user id

  • « posix_getpwnam
  • posix_getrlimit »
  • PHP Manual
  • POSIX Funções
  • Return info about a user by user id

posix_getpwuid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpwuid — Return info about a user by user id

Descrição

posix_getpwuid(int $user_id): array|false

Returns an array of information about the user referenced by the given user ID.

Parâmetros

user_id

The user identifier.

Valor Retornado

Returns an associative array with the following elements:

The user information array
Element | Description
name | The name element contains the username of the user. This is a short, usually less than 16 character "handle" of the user, not the real, full name.
passwd | The passwd element contains the user's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
uid | User ID, should be the same as the user_id parameter used when calling the function, and hence redundant.
gid | The group ID of the user. Use the function posix_getgrgid() to resolve the group name and a list of its members.
gecos | GECOS is an obsolete term that refers to the finger information field on a Honeywell batch processing system. The field, however, lives on, and its contents have been formalized by POSIX. The field contains a comma separated list containing the user's full name, office phone, office number, and home phone number. On most systems, only the user's full name is available.
dir | This element contains the absolute path to the home directory of the user.
shell | The shell element contains the absolute path to the executable of the user's default shell.
The function returns false on failure.

Exemplos

Exemplo #1 Example use of posix_getpwuid()

<?php

$userinfo = posix_getpwuid(10000);

print_r($userinfo);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [gecos]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Veja Também

  • posix_getpwnam() - Return info about a user by username
  • POSIX man page GETPWNAM(3)


Return info about system resource limits

  • « posix_getpwuid
  • posix_getsid »
  • PHP Manual
  • POSIX Funções
  • Return info about system resource limits

posix_getrlimit

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getrlimit — Return info about system resource limits

Descrição

posix_getrlimit(?int $resource = null): array|false

posix_getrlimit() returns an array of information about the current resource's soft and hard limits.

Cada recurso tem um limite flexível e um limite rígido associado. O limite flexível é o valor que o kernel impõe ao recurso correspondente. O limite rígido funciona com um teto máximo para o limite flexível. Um processo sem privilégios pode apenas definir seu limite flexível para um valor entre 0 e o limite rígido e reduzir irreversivelmente seu limite rígido.

Parâmetros

resource

If null all resource limits will be fetched. Otherwise, the only limits of the resource type provided will be returned.

Valor Retornado

Returns an associative array of elements for each limit that is defined. Each limit has a soft and a hard limit.

List of possible limits returned
Limit name | Limit description
core | The maximum size of the core file. When 0, not core files are created. When core files are larger than this size, they will be truncated at this size.
totalmem | The maximum size of the memory of the process, in bytes.
virtualmem | The maximum size of the virtual memory for the process, in bytes.
data | The maximum size of the data segment for the process, in bytes.
stack | The maximum size of the process stack, in bytes.
rss | The maximum number of virtual pages resident in RAM
maxproc | The maximum number of processes that can be created for the real user ID of the calling process.
memlock | The maximum number of bytes of memory that may be locked into RAM.
cpu | The amount of time the process is allowed to use the CPU.
filesize | The maximum size of the data segment for the process, in bytes.
openfiles | One more than the maximum number of open file descriptors.
The function returns false on failure.

Registro de Alterações

Versão | Descrição
8.3.0 | The optional resource parameter has been added.

Exemplos

Exemplo #1 Example use of posix_getrlimit()

<?php

$limits = posix_getrlimit();

print_r($limits);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [soft core] => 0
    [hard core] => unlimited
    [soft data] => unlimited
    [hard data] => unlimited
    [soft stack] => 8388608
    [hard stack] => unlimited
    [soft totalmem] => unlimited
    [hard totalmem] => unlimited
    [soft rss] => unlimited
    [hard rss] => unlimited
    [soft maxproc] => unlimited
    [hard maxproc] => unlimited
    [soft memlock] => unlimited
    [hard memlock] => unlimited
    [soft cpu] => unlimited
    [hard cpu] => unlimited
    [soft filesize] => unlimited
    [hard filesize] => unlimited
    [soft openfiles] => 1024
    [hard openfiles] => 1024
)

Veja Também

  • man page GETRLIMIT(2)
  • posix_setrlimit() - Set system resource limits


Get the current sid of the process

  • « posix_getrlimit
  • posix_getuid »
  • PHP Manual
  • POSIX Funções
  • Get the current sid of the process

posix_getsid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getsid — Get the current sid of the process

Descrição

posix_getsid(int $process_id): int|false

Return the session id of the process process_id. The session id of a process is the process group id of the session leader.

Parâmetros

process_id

The process identifier. If set to 0, the current process is assumed. If an invalid process_id is specified, then false is returned and an error is set which can be checked with posix_get_last_error().

Valor Retornado

Returns the identifier, as an int, ou false em caso de falha.

Exemplos

Exemplo #1 Example use of posix_getsid()

<?php
$pid = posix_getpid();
echo posix_getsid($pid); //8805
?>

Veja Também

  • posix_getpgid() - Get process group id for job control
  • posix_setsid() - Make the current process a session leader
  • POSIX man page GETSID(2)


Return the real user ID of the current process

  • « posix_getsid
  • posix_initgroups »
  • PHP Manual
  • POSIX Funções
  • Return the real user ID of the current process

posix_getuid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getuid — Return the real user ID of the current process

Descrição

posix_getuid(): int

Return the numeric real user ID of the current process.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the user id, as an int

Exemplos

Exemplo #1 Example use of posix_getuid()

<?php
echo posix_getuid(); //10000
?>

Veja Também

  • posix_getpwuid() - Return info about a user by user id
  • POSIX man page GETUID(2)


Calculate the group access list

  • « posix_getuid
  • posix_isatty »
  • PHP Manual
  • POSIX Funções
  • Calculate the group access list

posix_initgroups

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

posix_initgroups — Calculate the group access list

Descrição

posix_initgroups(string $username, int $group_id): bool

Calculates the group access list for the user specified in name.

Parâmetros

username

The user to calculate the list for.

group_id

Typically the group number from the password file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • The Unix manual page for initgroups(3).


Determine if a file descriptor is an interactive terminal

  • « posix_initgroups
  • posix_kill »
  • PHP Manual
  • POSIX Funções
  • Determine if a file descriptor is an interactive terminal

posix_isatty

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_isatty — Determine if a file descriptor is an interactive terminal

Descrição

posix_isatty(resource|int $file_descriptor): bool

Determines if the file descriptor file_descriptor refers to a valid terminal type device.

Parâmetros

file_descriptor

O descritor de arquivo, que deve ser um resource de arquivo ou um int. Um int será interpretado como um descritor de arquivo que pode ser passado diretamente para a chamada de sistema subjacente.

Valor Retornado

Returns true if file_descriptor is an open descriptor connected to a terminal and false otherwise.

Registro de Alterações

Versão | Descrição
8.3.0 | Type error E_WARNINGs are now raised for integer coercions following the usual PHP type coercion semantics.

Veja Também

  • posix_ttyname() - Determine terminal device name
  • stream_isatty() - Verifica se um fluxo é um TTY


Send a signal to a process

  • « posix_isatty
  • posix_mkfifo »
  • PHP Manual
  • POSIX Funções
  • Send a signal to a process

posix_kill

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_kill — Send a signal to a process

Descrição

posix_kill(int $process_id, int $signal): bool

Send the signal signal to the process with the process identifier process_id.

Parâmetros

process_id

The process identifier.

signal

One of the PCNTL signals constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • The kill(2) manual page of the POSIX system, which contains additional information about negative process identifiers, the special pid 0, the special pid -1, and the signal number 0.


Create a fifo special file (a named pipe)

  • « posix_kill
  • posix_mknod »
  • PHP Manual
  • POSIX Funções
  • Create a fifo special file (a named pipe)

posix_mkfifo

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_mkfifo — Create a fifo special file (a named pipe)

Descrição

posix_mkfifo(string $filename, int $permissions): bool

posix_mkfifo() creates a special FIFO file which exists in the file system and acts as a bidirectional communication endpoint for processes.

Parâmetros

filename

Path to the FIFO file.

permissions

The second parameter permissions has to be given in octal notation (e.g. 0644). The permission of the newly created FIFO also depends on the setting of the current umask(). The permissions of the created file are (mode & ~umask).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Create a special or ordinary file (POSIX.1)

  • « posix_mkfifo
  • posix_pathconf »
  • PHP Manual
  • POSIX Funções
  • Create a special or ordinary file (POSIX.1)

posix_mknod

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

posix_mknod — Create a special or ordinary file (POSIX.1)

Descrição

posix_mknod(
string $filename,
int $flags,
int $major = 0,
int $minor = 0
): bool

Creates a special or ordinary file.

Parâmetros

filename

The file to create

flags

This parameter is constructed by a bitwise OR between file type (one of the following constants: POSIX_S_IFREG, POSIX_S_IFCHR, POSIX_S_IFBLK, POSIX_S_IFIFO or POSIX_S_IFSOCK) and permissions.

major

The major device kernel identifier (required to pass when using S_IFCHR or S_IFBLK).

minor

The minor device kernel identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 A posix_mknod() example

<?php

$file = '/tmp/tmpfile'; // file name
$type = POSIX_S_IFBLK; // file type
$permissions = 0777; // octal
$major = 1;
$minor = 8; // /dev/random

if (!posix_mknod($file, $type | $permissions, $major, $minor)) {
die('Error ' . posix_get_last_error() . ': ' . posix_strerror(posix_get_last_error()));
}

?>

Veja Também

  • posix_mkfifo() - Create a fifo special file (a named pipe)


Returns the value of a configurable limit

  • « posix_mknod
  • posix_setegid »
  • PHP Manual
  • POSIX Funções
  • Returns the value of a configurable limit

posix_pathconf

(PHP 8 >= 8.3.0)

posix_pathconf — Returns the value of a configurable limit

Descrição

posix_pathconf(string $path, int $name): int|false
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the value of a configurable limit from name for a path

Parâmetros

path

The name of the file whose limit you want to get.

name

The name of the configurable limit, one of the following. POSIX_PC_LINK_MAX, POSIX_PC_MAX_CANON, POSIX_PC_MAX_INPUT, POSIX_PC_NAME_MAX, POSIX_PC_PATH_MAX, POSIX_PC_PIPE_BUF, POSIX_PC_CHOWN_RESTRICTED, POSIX_PC_NO_TRUNC, POSIX_PC_ALLOC_SIZE_MIN, POSIX_PC_SYMLINK_MAX.

Valor Retornado

Returns the configurable limit or false.

Erros/Exceções

Throws a ValueError when path is empty.

Exemplos

Exemplo #1 posix_pathconf() example

This example will get the max path name's length in bytes for the tmp dir.

<?php
echo posix_pathconf(sys_get_temp_dir(), POSIX_PC_PATH_MAX);
?>

O exemplo acima produzirá:

4096

Veja Também

  • posix_fpathconf() - Returns the value of a configurable limit


Set the effective GID of the current process

  • « posix_pathconf
  • posix_seteuid »
  • PHP Manual
  • POSIX Funções
  • Set the effective GID of the current process

posix_setegid

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

posix_setegid — Set the effective GID of the current process

Descrição

posix_setegid(int $group_id): bool

Set the effective group ID of the current process. This is a privileged function and needs appropriate privileges (usually root) on the system to be able to perform this function.

Parâmetros

group_id

The group id.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 posix_setegid() example

This example will print out the effective group id, once changed.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

Veja Também

  • posix_getgrgid() - Return info about a group by group id
  • posix_getgid() - Return the real group ID of the current process
  • posix_setgid() - Set the GID of the current process


Set the effective UID of the current process

  • « posix_setegid
  • posix_setgid »
  • PHP Manual
  • POSIX Funções
  • Set the effective UID of the current process

posix_seteuid

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

posix_seteuid — Set the effective UID of the current process

Descrição

posix_seteuid(int $user_id): bool

Set the effective user ID of the current process. This is a privileged function and needs appropriate privileges (usually root) on the system to be able to perform this function.

Parâmetros

user_id

The user id.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • posix_geteuid() - Return the effective user ID of the current process
  • posix_setuid() - Set the UID of the current process
  • posix_getuid() - Return the real user ID of the current process


Set the GID of the current process

  • « posix_seteuid
  • posix_setpgid »
  • PHP Manual
  • POSIX Funções
  • Set the GID of the current process

posix_setgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_setgid — Set the GID of the current process

Descrição

posix_setgid(int $group_id): bool

Set the real group ID of the current process. This is a privileged function and needs appropriate privileges (usually root) on the system to be able to perform this function. The appropriate order of function calls is posix_setgid() first, posix_setuid() last.

Nota:

If the caller is a super user, this will also set the effective group id.

Parâmetros

group_id

The group id.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 posix_setgid() example

This example will print out the effective group id, once it is changed.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setgid(40);
echo 'My real group id is '.posix_getgid(); //40
echo 'My effective group id is '.posix_getegid(); //40
?>

Veja Também

  • posix_getgrgid() - Return info about a group by group id
  • posix_getgid() - Return the real group ID of the current process


Set process group id for job control

  • « posix_setgid
  • posix_setrlimit »
  • PHP Manual
  • POSIX Funções
  • Set process group id for job control

posix_setpgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_setpgid — Set process group id for job control

Descrição

posix_setpgid(int $process_id, int $process_group_id): bool

Let the process process_id join the process group process_group_id.

Parâmetros

process_id

The process id.

process_group_id

The process group id.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • See POSIX.1 and the setsid(2) manual page on the POSIX system for more information on process groups and job control.


Set system resource limits

  • « posix_setpgid
  • posix_setsid »
  • PHP Manual
  • POSIX Funções
  • Set system resource limits

posix_setrlimit

(PHP 7, PHP 8)

posix_setrlimit — Set system resource limits

Descrição

posix_setrlimit(int $resource, int $soft_limit, int $hard_limit): bool

posix_setrlimit() sets the soft and hard limits for a given system resource.

Cada recurso tem um limite flexível e um limite rígido associado. O limite flexível é o valor que o kernel impõe ao recurso correspondente. O limite rígido funciona com um teto máximo para o limite flexível. Um processo sem privilégios pode apenas definir seu limite flexível para um valor entre 0 e o limite rígido e reduzir irreversivelmente seu limite rígido.

Parâmetros

resource

The resource limit constant corresponding to the limit that is being set.

soft_limit

The soft limit, in whatever unit the resource limit requires, or POSIX_RLIMIT_INFINITY.

hard_limit

The hard limit, in whatever unit the resource limit requires, or POSIX_RLIMIT_INFINITY.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • man page SETRLIMIT(2)
  • posix_getrlimit() - Return info about system resource limits


Make the current process a session leader

  • « posix_setrlimit
  • posix_setuid »
  • PHP Manual
  • POSIX Funções
  • Make the current process a session leader

posix_setsid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_setsid — Make the current process a session leader

Descrição

posix_setsid(): int

Make the current process a session leader.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the session id, or -1 on errors.

Veja Também

  • The POSIX.1 and the setsid(2) manual page on the POSIX system for more information on process groups and job control.


Set the UID of the current process

  • « posix_setsid
  • posix_strerror »
  • PHP Manual
  • POSIX Funções
  • Set the UID of the current process

posix_setuid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_setuid — Set the UID of the current process

Descrição

posix_setuid(int $user_id): bool

Set the real user ID of the current process. This is a privileged function that needs appropriate privileges (usually root) on the system to be able to perform this function.

Parâmetros

user_id

The user id.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 posix_setuid() example

This example will show the current user id and then set it to a different value.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_setuid(10000);
echo posix_getuid()."\n"; //10000
echo posix_geteuid()."\n"; //10000
?>

Veja Também

  • posix_setgid() - Set the GID of the current process
  • posix_seteuid() - Set the effective UID of the current process
  • posix_getuid() - Return the real user ID of the current process
  • posix_geteuid() - Return the effective user ID of the current process


Retrieve the system error message associated with the given errno

  • « posix_setuid
  • posix_sysconf »
  • PHP Manual
  • POSIX Funções
  • Retrieve the system error message associated with the given errno

posix_strerror

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

posix_strerror — Retrieve the system error message associated with the given errno

Descrição

posix_strerror(int $error_code): string

Returns the POSIX system error message associated with the given error_code. You may get the error_code parameter by calling posix_get_last_error().

Parâmetros

error_code

A POSIX error number, returned by posix_get_last_error(). If set to 0, then the string "Success" is returned.

Valor Retornado

Returns the error message, as a string.

Exemplos

Exemplo #1 posix_strerror() example

This example will attempt to kill a process which does not exist, then will print out the corresponding error message.

<?php
posix_kill(50,SIGKILL);
echo posix_strerror(posix_get_last_error())."\n";
?>

O exemplo acima produzirá algo semelhante a:

No such process

Veja Também

  • posix_get_last_error() - Retrieve the error number set by the last posix function that failed


Returns system runtime information

  • « posix_strerror
  • posix_times »
  • PHP Manual
  • POSIX Funções
  • Returns system runtime information

posix_sysconf

(PHP 8 >= 8.3.0)

posix_sysconf — Returns system runtime information

Descrição

posix_sysconf(int $conf_id): int

Returns system runtime information.

Parâmetros

conf_id

Identifier of the variable with the following constants POSIX_SC_ARG_MAX, POSIX_SC_PAGESIZE POSIX_SC_NPROCESSORS_CONF, POSIX_SC_NPROCESSORS_ONLN

Valor Retornado

Returns the numeric value related to conf_id

Exemplos

Exemplo #1 posix_sysconf() example

Returns the number of active cpus.

<?php
echo posix_sysconf(POSIX_SC_NPROCESSORS_ONLN);
?>

O exemplo acima produzirá:

2


Get process times

  • « posix_sysconf
  • posix_ttyname »
  • PHP Manual
  • POSIX Funções
  • Get process times

posix_times

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_times — Get process times

Descrição

posix_times(): array|false

Gets information about the current CPU usage.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a hash of strings with information about the current process CPU usage. The indices of the hash are:

  • ticks - the number of clock ticks that have elapsed since reboot.
  • utime - user time used by the current process.
  • stime - system time used by the current process.
  • cutime - user time used by current process and children.
  • cstime - system time used by current process and children.
The function returns false on failure.

Exemplos

Exemplo #1 Example use of posix_times()

<?php

$times = posix_times();

print_r($times);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [ticks] => 25814410
    [utime] => 1
    [stime] => 1
    [cutime] => 0
    [cstime] => 0
)

Notas

Aviso

This function isn't reliable to use, it may return negative values for high times.


Determine terminal device name

  • « posix_times
  • posix_uname »
  • PHP Manual
  • POSIX Funções
  • Determine terminal device name

posix_ttyname

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_ttyname — Determine terminal device name

Descrição

posix_ttyname(resource|int $file_descriptor): string|false

Returns a string for the absolute path to the current terminal device that is open on the file descriptor file_descriptor.

Parâmetros

file_descriptor

O descritor de arquivo, que deve ser um resource de arquivo ou um int. Um int será interpretado como um descritor de arquivo que pode ser passado diretamente para a chamada de sistema subjacente.

Valor Retornado

On success, returns a string of the absolute path of the file_descriptor. On failure, returns false

Erros/Exceções

On invalid file_descriptor integer values an E_WARNING is raised.

Registro de Alterações

Versão | Descrição
8.3.0 | Type error E_WARNINGs are now raised for integer coercions following the usual PHP type coercion semantics.
8.3.0 | On invalid file_descriptor integer values an E_WARNING is now raised.

Veja Também

  • posix_isatty() - Determine if a file descriptor is an interactive terminal
  • stream_isatty() - Verifica se um fluxo é um TTY


Get system name

  • « posix_ttyname
  • Execução de programa »
  • PHP Manual
  • POSIX Funções
  • Get system name

posix_uname

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_uname — Get system name

Descrição

posix_uname(): array|false

Gets information about the system.

Posix requires that assumptions must not be made about the format of the values, e.g. the assumption that a release may contain three digits or anything else returned by this function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a hash of strings with information about the system. The indices of the hash are

  • sysname - operating system name (e.g. Linux)
  • nodename - system name (e.g. valiant)
  • release - operating system release (e.g. 2.2.10)
  • version - operating system version (e.g. #4 Tue Jul 20 17:01:36 MEST 1999)
  • machine - system architecture (e.g. i586)
  • domainname - DNS domainname (e.g. example.com)

domainname is a GNU extension and not part of POSIX.1, so this field is only available on GNU systems or when using the GNU libc.

The function returns false on failure.

Exemplos

Exemplo #1 Example use of posix_uname()

<?php
$uname=posix_uname();
print_r($uname);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [sysname] => Linux
    [nodename] => funbox
    [release] => 2.6.20-15-server
    [version] => #2 SMP Sun Apr 15 07:41:34 UTC 2007
    [machine] => i686
)


Execução de programa do sistema

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções para Execução de programas
    • escapeshellarg — Escapa uma string para ser usada como um argumento shell
    • escapeshellcmd — Escapa meta-caracteres shell
    • exec — Executa um programa externo
    • passthru — Executa um programa externo e mostra a saída bruta
    • proc_close — Fecha um processo aberto por proc_open e retorna o código de saída desse processo
    • proc_get_status — Obtem informação sobre um processo aberto por proc_open
    • proc_nice — Muda a prioridade do processo atual
    • proc_open — Executa um comando e abre ponteiros de arquivo para entrada/saída
    • proc_terminate — Termina um processo aberto por proc_open
    • shell_exec — Executa um comando via shell e retorna a saída inteira como uma string
    • system — Executa um programa externo e mostra a saída


Introdução

Estas funções provém meios para executar comandos no sistema em si, e meios de tornar seguros estes comandos.

Nota:

Todas as funções de execução chamam os comandos através de cmd.exe no Windows. Portanto, o usuário que chama estas funções precisam de privilégios apropriados para executar este comando. A única exceção é proc_open() com a opção bypass_shell.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão define um recurso process, retornado por proc_open().


  • « Tipos de Recurso
  • Funções para Execução de programas »
  • PHP Manual
  • Execução de programa
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Funções para Execução de programas

Notas

Aviso

Arquivos abertos com travas (especialmente sessões abertas) devem ser fechados antes de executar um programa em segundo plano.

Veja Também

Estas funções estão muito relacionadas com backtick operator.

Índice

  • escapeshellarg — Escapa uma string para ser usada como um argumento shell
  • escapeshellcmd — Escapa meta-caracteres shell
  • exec — Executa um programa externo
  • passthru — Executa um programa externo e mostra a saída bruta
  • proc_close — Fecha um processo aberto por proc_open e retorna o código de saída desse processo
  • proc_get_status — Obtem informação sobre um processo aberto por proc_open
  • proc_nice — Muda a prioridade do processo atual
  • proc_open — Executa um comando e abre ponteiros de arquivo para entrada/saída
  • proc_terminate — Termina um processo aberto por proc_open
  • shell_exec — Executa um comando via shell e retorna a saída inteira como uma string
  • system — Executa um programa externo e mostra a saída


Escapa uma string para ser usada como um argumento shell

  • « Funções para Execução de programas
  • escapeshellcmd »
  • PHP Manual
  • Funções para Execução de programas
  • Escapa uma string para ser usada como um argumento shell

escapeshellarg

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

escapeshellarg — Escapa uma string para ser usada como um argumento shell

Descrição

escapeshellarg(string $arg): string

escapeshellarg() adiciona aspas simples em torno de uma string e escapa quaisquer aspas simples existentes permitindo passar uma string diretamente a uma função shell e tê-la tratada como um único argumento seguro. Esta função deve ser usada para escapar argumentos individuais a funções shell vindos de entrada de usuário. As funções shell incluem exec(), system() e o operador crase.

Diferentemente, no Windows, escapeshellarg() substitui sinais de porcentagem, sinais de exclamação (subsitituição atrasada de variáveis) e aspas duplas com espaços e adiciona aspas duplas em torno da string. Posteriormente, cada sequencia de barras invertidas consecutivas (\) é escapada por uma barra invertida adicional.

Parâmetros

arg

O argumento que será escapado.

Valor Retornado

A string escapada.

Exemplos

Exemplo #1 Exemplo de escapeshellarg()

<?php
system('ls '.escapeshellarg($dir));
?>

Veja Também

  • escapeshellcmd() - Escapa meta-caracteres shell
  • exec() - Executa um programa externo
  • popen() - Abre um processo como ponteiro de arquivo
  • system() - Executa um programa externo e mostra a saída
  • Operador crase


Escapa meta-caracteres shell

  • « escapeshellarg
  • exec »
  • PHP Manual
  • Funções para Execução de programas
  • Escapa meta-caracteres shell

escapeshellcmd

(PHP 4, PHP 5, PHP 7, PHP 8)

escapeshellcmd — Escapa meta-caracteres shell

Descrição

escapeshellcmd(string $command): string

escapeshellcmd() escapa qualquer caractere em uma string que possa ser utilizada para enganar um comando shell para executar comandos arbritários. Esta função deve ser utilizada para ter certeza que quaisquer dados vindos do usuário são escapado antes que estes dados sejam passados para as funções exec() ou system(), ou para o operador crase.

Os seguintes caracteres são precedidos por uma barra invertida: &#;`|*?~<>^()[]{}$\, \x0A e \xFF. ' e " são escapados apenas se não estiverem em pares. No windows, todos estes caracteres mais % e ! são precedidos por um circunflexo (^).

Parâmetros

command

O comando que será escapado.

Valor Retornado

A string escapada.

Exemplos

Exemplo #1 Exemplo de escapeshellcmd()

<?php
// Permitindo número arbitrário de argumentos intencionalmente.
$command = './configure '.$_POST['configure_options'];

$escaped_command = escapeshellcmd($command);

system($escaped_command);
?>

Notas

Aviso

escapeshellcmd() deve ser usada na string de comando inteira, e ainda assim permite ao intruso passar um número arbitrário de argumentos. Para escapar um único argumento, a função escapeshellarg() deve ser usada em seu lugar.

Aviso

Espaços não serão escapados por escapeshellcmd(), o que pode ser problemático em caminhos do Windows como: C:\Program Files\ProgramName\program.exe. Isto pode ser mitigado usando-se o seguinte trecho de código:

<?php
$cmd = preg_replace('`(?<!^) `', '^ ', escapeshellcmd($cmd));

Veja Também

  • escapeshellarg() - Escapa uma string para ser usada como um argumento shell
  • exec() - Executa um programa externo
  • popen() - Abre um processo como ponteiro de arquivo
  • system() - Executa um programa externo e mostra a saída
  • operador crase


Executa um programa externo

  • « escapeshellcmd
  • passthru »
  • PHP Manual
  • Funções para Execução de programas
  • Executa um programa externo

exec

(PHP 4, PHP 5, PHP 7, PHP 8)

exec — Executa um programa externo

Descrição

exec(string $command, array &$output = null, int &$result_code = null): string|false

exec() executa o comando informado em command.

Parâmetros

command

O comando que será executado.

output

Se o argumento output estiver presente, então o array especificado será prenchido com cada linha da saída do comando. Espaço ao final, como \n, não é incluído neste array. Note que se o array já contiver alguns elementos, exec() irá adicionar ao final do array. Se nnão houver intenção de que a função adicione elementos, use unset() no array antes de passá-lo para exec().

result_code

Se o argumento result_code estiver presente junto com o argumento output, então o estado de retorno do comando executado será escrito nesta variável.

Valor Retornado

A última linha do resultado do comando. Se for necessário executar um comando e ter todos os dados dele passados diretamente de volta sem qualquer interferência, use a função passthru().

Retorna false em caso de falha.

Para obter a saída do comando executado, certifique-se de definir e usar o parâmetro output.

Erros/Exceções

Emite um erro de nível E_WARNING se exec() for incapaz de executar o comando em command.

Lança uma exceção ValueError se command estiver vazio ou contiver bytes nulos.

Registro de Alterações

Versão | Descrição
8.0.0 | Se command estiver vazio ou contiver bytes nulos, exec() agora lança uma exceção ValueError. Anteriormente emitia um erro de nível E_WARNING e retornava false.

Exemplos

Exemplo #1 Um exemplo exec()

<?php
// Mostra o nome de quem é o dono do processo php/httpd
// (em um sistema com o executável "whoami" no path)
$output=null;
$retval=null;
exec('whoami', $output, $retval);
echo "Retornou com estado $retval e saída:\n";
print_r($output);
?>

O exemplo acima produzirá algo semelhante a:

Retornou com estado 0 e saída:
Array
(
    [0] => cmb
)

Notas

Aviso

Ao permitir que os dados fornecidos pelo usuário sejam passados para esta função, use escapeshellarg() ou escapeshellcmd() para garantir que os usuários não possam induzir o sistema a executar comandos arbitrários.

Nota:

Se um programa for iniciado com esta função, para que continue rodando em segundo plano, a saída do programa deve ser redirecionada para um arquivo ou outro stream de saída. Deixar de fazer isso fará com que o PHP trave até que a execução do programa termine.

Nota:

No Windows, a função exec() primeiro iniciará o cmd.exe para executar o comando. Se desejar iniciar um programa externo sem iniciar o cmd.exe, use a função proc_open() com o parâmetro bypass_shell definido.

Veja Também

  • system() - Executa um programa externo e mostra a saída
  • passthru() - Executa um programa externo e mostra a saída bruta
  • escapeshellcmd() - Escapa meta-caracteres shell
  • pcntl_exec() - Executes specified program in current process space
  • Operador crase


Executa um programa externo e mostra a saída bruta

  • « exec
  • proc_close »
  • PHP Manual
  • Funções para Execução de programas
  • Executa um programa externo e mostra a saída bruta

passthru

(PHP 4, PHP 5, PHP 7, PHP 8)

passthru — Executa um programa externo e mostra a saída bruta

Descrição

passthru(string $command, int &$result_code = null): ?false

A função passthru() é similar à função exec(), e executa um comando especificado em command. Esta função deve ser usada no lugar de exec() ou system() quando a saída do comando Unix for dado binário que precisa ser passado diretamente de volta ao navegador. Um uso como para isto é executar algo como os utilitários pbmplus que podem enviar um fluxo de imagem diretamente. Através da configuração de Content-type para image/gif e da chamada ao programa pbmplus para saída de um arquivo gif, pode-se criar scripts PHP que mostram imagens diretamente.

Parâmetros

command

O comando que será executado.

result_code

Se o argumento result_code estiver presente, o estado de retorno do comando Unix será colocado aqui.

Valor Retornado

Retorna null em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emitirá um E_WARNING se passthru() for incapaz de executar o comando especificado no parâmetro command.

Lança uma exceção ValueError se command estiver vazio ou se contiver bytes nulos.

Registro de Alterações

Versão | Descrição
8.0.0 | Se command estiver vazio ou contiver bytes nulos, passthru() agora lança uma exceção ValueError. Anteriormente, emitia um E_WARNING e retornava false.

Notas

Aviso

Ao permitir que os dados fornecidos pelo usuário sejam passados para esta função, use escapeshellarg() ou escapeshellcmd() para garantir que os usuários não possam induzir o sistema a executar comandos arbitrários.

Nota:

Se um programa for iniciado com esta função, para que continue rodando em segundo plano, a saída do programa deve ser redirecionada para um arquivo ou outro stream de saída. Deixar de fazer isso fará com que o PHP trave até que a execução do programa termine.

Veja Também

  • exec() - Executa um programa externo
  • system() - Executa um programa externo e mostra a saída
  • popen() - Abre um processo como ponteiro de arquivo
  • escapeshellcmd() - Escapa meta-caracteres shell
  • Operador crase


Fecha um processo aberto por proc_open e retorna o código de saída desse processo

  • « passthru
  • proc_get_status »
  • PHP Manual
  • Funções para Execução de programas
  • Fecha um processo aberto por proc_open e retorna o código de saída desse processo

proc_close

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

proc_close — Fecha um processo aberto por proc_open() e retorna o código de saída desse processo

Descrição

proc_close(resource $process): int

proc_close() é similar a pclose() exceto por funcionar somente em processos abertos por proc_open(). proc_close() espera o processo terminar e retorna seu código de saída. Tubos abertos a esse processo são fechados quando esta função é chamada para evitar um beco sem saída - o processo filho pode não ser capaz de sair enquanto os tubos estão abertos.

Parâmetros

process

O recurso do tipo resource gerado por proc_open() que será fechado.

Valor Retornado

Retorna o estado de término do processo que estava em execução. Em caso de um erro, -1 é retornado.

Nota:

Se o PHP foi compilado com --enable-sigchild, o valor retornado por esta função é indefinido.


Obtem informação sobre um processo aberto por proc_open

  • « proc_close
  • proc_nice »
  • PHP Manual
  • Funções para Execução de programas
  • Obtem informação sobre um processo aberto por proc_open

proc_get_status

(PHP 5, PHP 7, PHP 8)

proc_get_status — Obtem informação sobre um processo aberto por proc_open()

Descrição

proc_get_status(resource $process): array

proc_get_status() obtém dados sobre um processo aberto usando proc_open().

Parâmetros

process

O recurso to tipo resource gerado por proc_open() que será avaliado.

Valor Retornado

Um array com a informação coletada. O array retornado contém os seguintes elementos:

elemento | type | descrição
command | string | A string de comando que foi passada para proc_open().
pid | int | Id do processo
running | bool | true se o processo ainda está sendo executado, false se ele terminou.
signaled | bool | true se o processo filho terminou por um sinal não capturado. Sempre definido como false no Windows.
stopped | bool | true se o processo filho foi parado por um sinal. Sempre definido como false no Windows.
exitcode | int | O código de saída retornado pelo processo (que é significativo somente se running for false). Apenas a primeira chamada a esta função retorna valor real, a chamada seguinte retorna -1.
termsig | int | O número do sinal que fez o processo filho terminar a sua execução (somente significativo se signaled for true)
stopsig | int | O número do sinal que fez o processo filho terminar a sua execução (somente significativo se stopped for true)

Veja Também

  • proc_open() - Executa um comando e abre ponteiros de arquivo para entrada/saída


Muda a prioridade do processo atual

  • « proc_get_status
  • proc_open »
  • PHP Manual
  • Funções para Execução de programas
  • Muda a prioridade do processo atual

proc_nice

(PHP 5, PHP 7, PHP 8)

proc_nice — Muda a prioridade do processo atual

Descrição

proc_nice(int $priority): bool

proc_nice() muda a prioridade do processo atual para o valor especificado em priority. Um priority positivo irá diminuir a prioridade do processo atual, enquanto que um priority negativo irá aumentar a prioridade.

proc_nice() não é relacionada com proc_open() e suas funções associadas de qualquer maneira.

Parâmetros

priority

O novo valor de prioridade, pode ser diferente dependendo da plataforma.

No Unix, um valor baixo, como -20 significa alta prioridade enquanto que valores positivos têm uma prioridade menor.

Para Windows, o argumento priority tem o seguinte significado:

Classe de prioridade | Valores possíveis
Alta prioridade | priority < -9
Prioridade acima do normal | priority < -4
Prioridade normal | priority < 5 & priority > -5
Prioridade abaixo do normal | priority > 5
Prioridade de inativo | priority > 9

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Se ocorrer um erro, como o usuário não ter permissões suficientes para mudar a prioridade, um erro de nível E_WARNING também é gerado.

Registro de Alterações

Versão | Descrição
7.2.0 | Esta função agora está disponível no Windows.

Exemplos

Exemplo #1 Usando proc_nice() para definir a prioridade do processo para alta

<?php
// A mais alta prioridade
proc_nice(-20);
?>

Notas

Nota: Disponibilidade

proc_nice() irá existir apenas se o sistema tiver capacidades para 'nice', que é 'nice' conforme: SVr4, SVID EXT, AT&T, X/OPEN e BSD 4.3.

Nota: Somente para Windows

proc_nice() irá alterar a prioridade do processo atual, mesmo que o PHP tenha sido compilado com 'thread safety'.

Veja Também

  • pcntl_setpriority() - Change the priority of any process


Executa um comando e abre ponteiros de arquivo para entrada/saída

  • « proc_nice
  • proc_terminate »
  • PHP Manual
  • Funções para Execução de programas
  • Executa um comando e abre ponteiros de arquivo para entrada/saída

proc_open

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

proc_open — Executa um comando e abre ponteiros de arquivo para entrada/saída

Descrição

proc_open(
array|string $command,
array $descriptor_spec,
array &$pipes,
?string $cwd = null,
?array $env_vars = null,
?array $options = null
): resource|false

proc_open() é similar a popen() mas fornece um grau de controle muito maior sobre a execução do programa.

Parâmetros

command

A linha de comando a executar, como uma string. Caracteres especiais precisam ser escapados adequadamente, e o uso de aspas deve ser apropriadamente aplicado.

Nota: No Windows, a menos que bypass_shell esteja definido para true no parâmetro options, o comando em command é passado para cmd.exe (na verdade, %ComSpec%) com a opção /c como uma string sem aspas (isto é, exatamente como fornecido a proc_open()). Isto pode fazer com que cmd.exe remova as aspas que envolvem o comando em command (para detalhes, consulte a documentação do cmd.exe), resultando em comportamento inesperado e potencialmente perigoso, porque as mensagens de erro de cmd.exe podem conter (partes dos) comandos passados em command (veja exemplo abaixo).

A partir do PHP 7.4.0, command pode ser passado como um array de parâmetros de comandos. Neste caso, o processo será aberto diretamente (sem passar por um "shell") e o PHP irá gerenciar qualquer escape de argumentos se necessário.

Nota:

No Windows, o escape de argumentos dos elementos do array assume que a análise de linha de comando é compatível com a análise dos argumentos de linha de comando feita pelas bibliotecas em tempo de execução do VC.

descriptor_spec

Um array indexado onte a chave representa o número descritor e o valor representa como o PHP irá passar esse descritor ao processo filho. 0 é stdin, 1 é stdout e 2 é stderr.

Cada elemento pode ser:

  • Um array descrevendo o tubo a ser passado ao processo. O primeiro elemento é o tipo do descritor e o segundo elemento é uma opção para o tipo fornecido. Tipos válidos são pipe (o segundo elemento pode ser r para passar a ponta de leitura do tubo ao processo, ou w para passar a ponta de escrita) e file (o segundo elemento é um nome de arquivo). Observe que qualquer outro tipo diferente de w é tratado como r.
  • Um recurso de fluxo representando um descritor de arquivo real (ex.: arquivo aberto, um soquete ou STDIN).

O número do descritor de arquivo não é limitado a 0, 1 e 2 - pode-se especificar qualquer número válido de descritor de arquivo e ele será passado ao processo filho. Isto permite que o script consiga operar com outros scripts que são executados como "co-processos". Em particular, isto é útil para passar senhas a programas como PGP, GPG e openssl de uma forma mais segura. Também é útil para ler informações de estado de decritores de arquivos auxiliares fornecidas por estes programas.

pipes

Será definido para um array indexado de ponteiros de arquivos que corresponde à ponta do PHP de qualquer tubo que seja criado.

cwd

O diretório de trabalho inicial para o comando. Precisa ser um caminho de diretório absoluto, ou null se for desejado usar o valor padrão (o diretório de trabalho do processo PHP atual)

env_vars

Um array com as variáveis de ambiente para o comando que será executado, ou null para usar o mesmo ambiente do processo PHP atual

options

Permite especificar opções adicionais. As opções atualmente suportadas incluem:

  • suppress_errors (somente Windows): suprime erros gerados por esta função quando definida para true
  • bypass_shell (somente Windows): ignora o "shell" cmd.exe quando definida para true
  • blocking_pipes (somente Windows): força tubos no modo de bloqueio quando definida para true
  • create_process_group (somente Windows): permite ao processo filho lidar com eventos CTRL quando definida para true
  • create_new_console (somente Windows): o novo processo terá um novo console, ao invés de herdar o console do processo pai

Valor Retornado

Retorna um recurso representando o processo, que deve ser liberado usando proc_close() quando seu uso tiver sido finalizado. Em caso de falha retorna false.

Registro de Alterações

Versão | Descrição
7.4.4 | Adicionada a opção create_new_console ao parâmetro options.
7.4.0 | proc_open() agora aceita um array para o parâmetro command.
7.4.0 | Adicionada a opção create_process_group ao parâmetro options.

Exemplos

Exemplo #1 Um exemplo de proc_open()

<?php
$descriptorspec = array(
0 => array("pipe", "r"), // stdin é um tubo de onde o processo filho irá ler
1 => array("pipe", "w"), // stdout é um tubo no qual o processo filho irá escrever
2 => array("file", "/tmp/error-output.txt", "a") // stderr é um arquivo que será escrito
);

$cwd = '/tmp';
$env = array('some_option' => 'aeiou');

$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);

if (is_resource($process)) {
// $pipes agora será parecido com:
// 0 => manipulador que pode ser escrito, conectado ao stdin filho
// 1 => manipulador que pode ser lido, conectado ao stdout filho
// Qualquer saída de erro será anexaa ao /tmp/error-output.txt

fwrite($pipes[0], '<?php print_r($_ENV); ?>');
fclose($pipes[0]);

echo stream_get_contents($pipes[1]);
fclose($pipes[1]);

// É importante fechar todos os tubos antes de chamar
// proc_close para evitar o beco sem saída
$return_value = proc_close($process);

echo "comando retornou $return_value\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [some_option] => aeiou
    [PWD] => /tmp
    [SHLVL] => 1
    [_] => /usr/local/bin/php
)
comando retornou 0

Exemplo #2 Peculiaridade de proc_open() no Windows

Embora seja esperado que o programa a seguir pesquise o arquivo filename.txt pelo texto search e mostre os resultados, ele se comporta de maneira bastante diferente.

<?php
$descriptorspec = [STDIN, STDOUT, STDOUT];
$cmd = '"findstr" "search" "filename.txt"';
$proc = proc_open($cmd, $descriptorspec, $pipes);
proc_close($proc);
?>

O exemplo acima produzirá:

'findstr" "search" "filename.txt' is not recognized as an internal or external command,
operable program or batch file.

Para contornar este comportamento, normalmente é suficiente envolver command com aspas adicionais:

$cmd = '""findstr" "search" "filename.txt""';

Notas

Nota:

Compatibilidade com Windows: Descritores além de 2 (stderr) estão disponíveis para o processo filho como manipuladores que podem ser herdados, mas como a arquitetura Windows não associa números de descritores de arquivos a manipuladores de baixo nível, o processo filho não tem (ainda) meios de acessar esses manipuladores. Stdin, stdout e stderr funcionam conforme esperado.

Nota:

Se for necessário somente um tubo de processo unidirecional (mão única), utilize a função popen(), pois é muito mais fácil de usar.

Veja Também

  • popen() - Abre um processo como ponteiro de arquivo
  • exec() - Executa um programa externo
  • system() - Executa um programa externo e mostra a saída
  • passthru() - Executa um programa externo e mostra a saída bruta
  • stream_select() - Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos
  • O operador crase


Termina um processo aberto por proc_open

  • « proc_open
  • shell_exec »
  • PHP Manual
  • Funções para Execução de programas
  • Termina um processo aberto por proc_open

proc_terminate

(PHP 5, PHP 7, PHP 8)

proc_terminate — Termina um processo aberto por proc_open

Descrição

proc_terminate(resource $process, int $signal = 15): bool

Envia um sinal ao processo informado em process (criado usando proc_open()) informando que ele deve terminar. proc_terminate() retorna imediatamente e não espera o término do processo.

proc_terminate() permite terminar o processo e continuar com outras tarefas. Pode-se consultar o processo (para ver se ele já parou), usando-se a função proc_get_status().

Parâmetros

process

O recurso do tipo resource criado por proc_open() que será fechado.

signal

Este parâmetro opcional somente é útil em sistemas operacionais POSIX; pode-se especificar um sinal a ser enviado ao processo usando a chamada de sistema kill(2). O padrão é SIGTERM.

Valor Retornado

Retorna o estado de término do processo que estava em execução.

Veja Também

  • proc_open() - Executa um comando e abre ponteiros de arquivo para entrada/saída
  • proc_close() - Fecha um processo aberto por proc_open e retorna o código de saída desse processo
  • proc_get_status() - Obtem informação sobre um processo aberto por proc_open


Executa um comando via shell e retorna a saída inteira como uma string

  • « proc_terminate
  • system »
  • PHP Manual
  • Funções para Execução de programas
  • Executa um comando via shell e retorna a saída inteira como uma string

shell_exec

(PHP 4, PHP 5, PHP 7, PHP 8)

shell_exec — Executa um comando via shell e retorna a saída inteira como uma string

Descrição

shell_exec(string $command): string|false|null

Esta função é identica ao operador crase.

Nota:

No Windows, o tubo subjacente é aberto em modo texto o que pode fazer com que a função falhe para saída binária. Considere usar popen() alternativamente para estes casos.

Parâmetros

command

O comando que será executado.

Valor Retornado

Uma string contendo a saída do comando executado, false se o tubo não puder ser estabelecido ou null se um erro ocorrer ou o comando não gerar saída.

Nota:

Esta função pode retornar null quando um erro ocorre ou quando o programa não produz saída. Não é possível detectar falhas de execução usando esta função. exec() deve ser usada quando o acesso ao código de saída do programa é requerido.

Erros/Exceções

Um erro de nível E_WARNING é gerado quando o tubo não puder ser estabelecido.

Exemplos

Exemplo #1 Um exemplo de shell_exec()

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

Veja Também

  • exec() - Executa um programa externo
  • escapeshellcmd() - Escapa meta-caracteres shell


Executa um programa externo e mostra a saída

  • « shell_exec
  • parallel »
  • PHP Manual
  • Funções para Execução de programas
  • Executa um programa externo e mostra a saída

system

(PHP 4, PHP 5, PHP 7, PHP 8)

system — Executa um programa externo e mostra a saída

Descrição

system(string $command, int &$result_code = null): string|false

system() é igual à versão C desta função, executa o comando informado em command e mostra o resultado.

A chamada a system() também tenta automaticamente descarregar o buffer de saída do servidor web após cada linha de saída se o PHP estiver sendo executado como módulo do servidor.

Se for necessário executar um comando e obter todos os dados do comando passados diretamente sem nenhuma interferência, use a função passthru().

Parâmetros

command

O comando que será executado.

result_code

Se o argumento result_code estiver presente, o estado de retorno do comando executado será escrito nesta variável.

Valor Retornado

Retorna a última linha da saída do comando em caso de sucesso, e false em caso de falha.

Exemplos

Exemplo #1 Exemplo de system()

<?php
echo '<pre>';

// Mostra todo o resultado do comando do shell "ls", e retorna
// a última linha da saída em $last_line. Guarda o valor de retorno
// do comando shell em $retval.
$last_line = system('ls', $retval);

// Mostrando informação adicional
echo '
</pre>
<hr />Última linha da saída: '.$last_line.'
<hr />Valor de Retorno: '.$retval;
?>

Notas

Aviso

Ao permitir que os dados fornecidos pelo usuário sejam passados para esta função, use escapeshellarg() ou escapeshellcmd() para garantir que os usuários não possam induzir o sistema a executar comandos arbitrários.

Nota:

Se um programa for iniciado com esta função, para que continue rodando em segundo plano, a saída do programa deve ser redirecionada para um arquivo ou outro stream de saída. Deixar de fazer isso fará com que o PHP trave até que a execução do programa termine.

Veja Também

  • exec() - Executa um programa externo
  • passthru() - Executa um programa externo e mostra a saída bruta
  • popen() - Abre um processo como ponteiro de arquivo
  • escapeshellcmd() - Escapa meta-caracteres shell
  • pcntl_exec() - Executes specified program in current process space
  • operador crase


parallel

  • Introdução
  • Installation
  • Philosophy
  • Functional API
    • parallel\bootstrap — Bootstrapping
    • parallel\run — Execution
  • parallel\Runtime — The parallel\Runtime class
    • parallel\Runtime::__construct — Runtime Construction
    • parallel\Runtime::run — Execution
    • parallel\Runtime::close — Runtime Graceful Join
    • parallel\Runtime::kill — Runtime Join
  • parallel\Future — The parallel\Future class
    • parallel\Future::cancel — Cancellation
    • parallel\Future::cancelled — State Detection
    • parallel\Future::done — State Detection
    • parallel\Future::value — Resolution
  • parallel\Channel — The parallel\Channel class
    • parallel\Channel::__construct — Channel Construction
    • parallel\Channel::make — Access
    • parallel\Channel::open — Access
    • parallel\Channel::recv — Sharing
    • parallel\Channel::send — Sharing
    • parallel\Channel::close — Closing
  • parallel\Events — The parallel\Events class
    • parallel\Events::setBlocking — Behaviour
    • parallel\Events::setTimeout — Behaviour
    • parallel\Events::setInput — Input
    • parallel\Events::addChannel — Targets
    • parallel\Events::addFuture — Targets
    • parallel\Events::remove — Targets
    • parallel\Events::poll — Polling
  • parallel\Events\Input — The parallel\Events\Input class
    • parallel\Events\Input::add — Inputs
    • parallel\Events\Input::clear — Inputs
    • parallel\Events\Input::remove — Inputs
  • parallel\Events\Event — The parallel\Events\Event class
  • parallel\Events\Event\Type — The parallel\Events\Event\Type class
  • parallel\Sync — The parallel\Sync class
    • parallel\Sync::__construct — Construction
    • parallel\Sync::get — Access
    • parallel\Sync::set — Access
    • parallel\Sync::wait — Synchronization
    • parallel\Sync::notify — Synchronization
    • parallel\Sync::__invoke — Synchronization


Introdução

parallel is a parallel concurrency extension for PHP = 7.2.0. As of parallel 1.2.0, PHP = 8.0.0 is required.

A brief description of the concepts core to parallel follows, more detailed information may be found within this section of the manual.

Runtime

A parallel\Runtime represents a PHP interpreter thread. A parallel\Runtime is configured with an optional bootstrap file passed to parallel\Runtime::__construct(), this is typically an autoloader, or some other preloading routine: The bootstrap file will be included before any task is executed.

After construction the parallel\Runtime remains available until it is closed, killed, or destroyed by the normal scoping rules of PHP objects. parallel\Runtime::run() allows the programmer to schedule tasks for execution in parallel. A parallel\Runtime has a FIFO schedule, tasks will be executed in the order that they are scheduled.

Functional API

parallel implements a functional, higher level API on top of parallel\Runtime that provides a single function entry point to executing parallel code with automatic scheduling: parallel\run().

Task

A task is simply a Closure intended for parallel execution. The Closure may contain almost any instruction, including nested closures. However, there are some instructions that are prohibited in tasks:

  • yield

  • use by-reference

  • declare class

  • declare named function

Nota:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Nota:

No instructions are prohibited in the files which the task may include.

Future

The parallel\Future is used to access the return value from the task, and exposes an API for cancellation of the task.

Channel

A task may be scheduled with arguments, use lexical scope variables (by-value), and return a value (via a parallel\Future), but these only allow uni-directional communication: They allow the programmer to send data into and retrieve data from a task, but do not allow bi-directional communication between tasks. The parallel\Channel API allows bi-directional communication between tasks, a parallel\Channel is a socket-like link between tasks that the programmer can use to send and receive data.

Events

The parallel\Events API implements a native feel (Traversable) event loop, and parallel\Events::poll() method. It allows the programmer to work with sets of channels and or futures. The programmer simply adds channels and futures to the event loop, optionally setting the input for writes with parallel\Events::setInput(), and enters into a foreach: parallel will read from and write to objects as they become available yielding parallel\Events\Event objects describing the operations that have occurred.

Veja Também

  • Philosophy


Installation

Dependências

parallel requires a build of PHP with ZTS (Zend Thread Safety) enabled (--enable-zts, or on non-Windows systems prior to PHP 8.0.0, --enable-maintainer-zts)

Cuidado

Zend Thread Safety cannot be enabled post build; it is a build time configuration option.

parallel should build anywhere there is a working Posix Threads header (pthread.h) and ZTS build of PHP, including Windows (using the pthread-w32 project from redhat).

Instalação

parallel releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/parallel.

Windows users can download prebuilt release binaries from the » PECL website.

Cuidado

Windows users need to take the additional step of adding pthreadVC2.dll (distributed with Windows releases) to their PATH.


Philosophy

This section contains philosophies important to writing parallel code and some details about the internal implementation of parallel.

Do not communicate by sharing memory; instead, share memory by communicating.

This philosophy which is embraced by parallel has its origins in Go, one of the most widely admired if not used platforms for writing parallel code at the moment. Go programmers have to work hard to live up to this ideal: PHP and parallel do all the hard work for the programmer, and by default.

In conventional threading models found in other languages, generally threads are communicating with one another through nothing more than by virtue of the fact that they operate in the same address space. The programmer must deploy mutual exclusion, condition variables, and other low level threading or synchronization primitives in order to ensure proper communication of state and consistency.

When the conventional model is inversed, it means that threads only share memory as a result of communication (a variable is passed over a Channel for example).

When parallel passes a variable from one thread to another by any means - Task arguments, return via Future, and Channels - it is passed by value. In all but the case of unbuffered channels, the variable is also buffered so that it may not change (or be destroyed) before it is used in whichever thread the variable is being passed to. An unbuffered read over a channel is the only instance in which a thread directly reads memory allocated by another thread, it can do so safely because the thread that owns the memory is waiting for the read to complete before it can continue to manipulate it, and the thread that does not own the memory reads by value. When both threads continue, they are no longer sharing memory.

This makes writing and reasoning about parallel code much easier than the conventional model of threading. It means the programmer does not need to consider that threads may be manipulating data concurrently, because that is not possible.

This also makes PHP the perfect platform for implementing a parallel concurrency API based on CSP (message passing over channels), because PHP itself is shared nothing - PHP threads operate in their own virtual address space by default, and so may only share memory by communicating.

Data should have a definitive single owner

When approaching the CSP model for the first time, a programmer versed in the traditional model of threading may find themselves looking for concurrent data structures, because that is what they are used too: they pass around shared objects for manipulation.

When it comes to the CSP model, there is no need for data structures to be shared by many tasks, and indeed, it is simpler if they are not. The data should be owned by a single task, changes to (or operations on) that data structure should be communicated over channels and performed by the owner of the data, the success, failure, or result (state) of the change (or operation) being communicated back.

Once again the share nothing nature of PHP and copy by value nature of parallel helps the programmer to achieve this goal, no data will be shared by accident, only ever as a result of communication.


Functional API

The parallel\Runtime API provides a great degree of control to the power PHP programmer, and those intimately familiar with writing applications that use parallel concurrency.

The functional API provides less control in exchange for the ability to make decisions for the programmer:

  • all executing runtimes are bootstrapped identically

  • scheduling is determined by the API, not the programmer

parallel\run() provides the guarantee that the task will begin to execute in parallel as soon as allowed by hardware and operating system constraints, without needlessly creating runtimes. For most applications the functional API should be preferred.

Índice

  • parallel\bootstrap — Bootstrapping
  • parallel\run — Execution


Bootstrapping

  • « Functional API
  • parallel\run »
  • PHP Manual
  • Functional API
  • Bootstrapping

parallel\bootstrap

(1.0.0)

parallel\bootstrap — Bootstrapping

Descrição

parallel\bootstrap(string $file): void

Shall use the provided file to bootstrap all runtimes created for automatic scheduling via parallel\run().

Parâmetros

file

Path to the file to bootstrap all runtimes.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Aviso

Shall throw parallel\Runtime\Error\Bootstrap if previously called for this process.

Aviso

Shall throw parallel\Runtime\Error\Bootstrap if called after parallel\run().

Veja Também

  • parallel\Runtime::run


Execution

  • « parallel\bootstrap
  • parallel\Runtime »
  • PHP Manual
  • Functional API
  • Execution

parallel\run

(1.0.0)

parallel\run — Execution

Descrição

parallel\run(Closure $task): ?Future

Shall schedule task for execution in parallel.

parallel\run(Closure $task, array $argv): ?Future

Shall schedule task for execution in parallel, passing argv at execution time.

Automatic Scheduling

If a \parallel\Runtime internally created and cached by a previous call to parallel\run() is idle, it will be used to execute the task. If no \parallel\Runtime is idle parallel will create and cache a \parallel\Runtime.

Nota:

\parallel\Runtime objects created by the programmer are not used for automatic scheduling.

Parâmetros

task

A Closure with specific characteristics.

argv

An array of arguments with specific characteristics to be passed to task at execution time.

Task Characteristics

Closures scheduled for parallel execution must not:

  • accept or return by reference
  • accept or return internal objects (see notes)
  • execute a limited set of instructions

Instructions prohibited in Closures intended for parallel execution are:

  • yield
  • use by-reference
  • declare class
  • declare named function

Nota:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Nota:

No instructions are prohibited in the files which the task may include.

Arguments Characteristics

Arguments must not:

  • contain references
  • contain resources
  • contain internal objects (see notes)

Nota:

In the case of file stream resources, the resource will be cast to the file descriptor and passed as int where possible, this is unsupported on Windows.

Internal Objects Notes

Internal objects generally use a custom structure which cannot be copied by value safely, PHP currently lacks the mechanics to do this (without serialization) and so only objects that do not use a custom structure may be shared.

Some internal objects do not use a custom structure, for example parallel\Events\Event and so may be shared.

Closures are a special kind of internal object and support being copied by value, and so may be shared.

Channels are central to writing parallel code and support concurrent access and execution by necessity, and so may be shared.

Aviso

A user class that extends an internal class may use a custom structure as defined by the internal class, in which case they cannot be copied by value safely, and so may not be shared.

Valor Retornado

Aviso

The return parallel\Future must not be ignored when the task contains a return or throw statement.

Exceptions

Aviso

Shall throw parallel\Runtime\Error\Closed if parallel\Runtime was closed.

Aviso

Shall throw parallel\Runtime\Error\IllegalFunction if task is a closure created from an internal function.

Aviso

Shall throw parallel\Runtime\Error\IllegalInstruction if task contains illegal instructions.

Aviso

Shall throw parallel\Runtime\Error\IllegalParameter if task accepts or argv contains illegal variables.

Aviso

Shall throw parallel\Runtime\Error\IllegalReturn if task returns illegally.

Veja Também

  • parallel\Runtime::run


The parallel\Runtime class

(0.8.0)

Runtime Objects

Each runtime represents a single PHP thread, the thread is created (and bootstrapped) upon construction. The thread then waits for tasks to be scheduled: Scheduled tasks will be executed FIFO and then the thread will resume waiting until more tasks are scheduled, or it's closed, killed, or destroyed by the normal scoping rules of PHP objects.

Aviso

When a runtime is destroyed by the normal scoping rules of PHP objects, it will first execute all of the tasks that were scheduled, and block while doing so.

Runtime Bootstrapping

When a new runtime is created, it does not share code with the thread (or process) that created it. This means it doesn't have the same classes and functions loaded, nor the same autoloader set. In some cases, a very lightweight runtime is desirable because the tasks that will be scheduled do not need access to the code in the parent thread. In those cases where the tasks do need to access the same code, it is enough to set an autoloader as the bootstrap.

Nota:

preloading may be used in conjunction with parallel, in this case preloaded code is available without bootstrapping

Resumo da classe

final class parallel\Runtime {
/* Create */
public __construct()
public __construct(string $bootstrap)
/* Execute */
public run(Closure $task): ?Future
public run(Closure $task, array $argv): ?Future
/* Join */
public close(): void
public kill(): void
}

Índice

  • parallel\Runtime::__construct — Runtime Construction
  • parallel\Runtime::run — Execution
  • parallel\Runtime::close — Runtime Graceful Join
  • parallel\Runtime::kill — Runtime Join


Runtime Construction

  • « parallel\Runtime
  • parallel\Runtime::run »
  • PHP Manual
  • parallel\Runtime
  • Runtime Construction

parallel\Runtime::__construct

(0.8.0)

parallel\Runtime::__construct — Runtime Construction

Descrição

public parallel\Runtime::__construct()

Shall construct a new runtime without bootstrapping.

public parallel\Runtime::__construct(string $bootstrap)

Shall construct a bootstrapped runtime.

Parâmetros

bootstrap

The location of a bootstrap file, generally an autoloader.

Exceptions

Aviso

Shall throw parallel\Runtime\Error if thread could not be created

Aviso

Shall throw parallel\Runtime\Bootstrap if bootstrapping failed


Execution

  • « parallel\Runtime::__construct
  • parallel\Runtime::close »
  • PHP Manual
  • parallel\Runtime
  • Execution

parallel\Runtime::run

(0.8.0)

parallel\Runtime::run — Execution

Descrição

public parallel\Runtime::run(Closure $task): ?Future

Shall schedule task for execution in parallel.

public parallel\Runtime::run(Closure $task, array $argv): ?Future

Shall schedule task for execution in parallel, passing argv at execution time.

Parâmetros

task

A Closure with specific characteristics.

argv

An array of arguments with specific characteristics to be passed to task at execution time.

Task Characteristics

Closures scheduled for parallel execution must not:

  • accept or return by reference
  • accept or return internal objects (see notes)
  • execute a limited set of instructions

Instructions prohibited in Closures intended for parallel execution are:

  • yield
  • use by-reference
  • declare class
  • declare named function

Nota:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Nota:

No instructions are prohibited in the files which the task may include.

Arguments Characteristics

Arguments must not:

  • contain references
  • contain resources
  • contain internal objects (see notes)

Nota:

In the case of file stream resources, the resource will be cast to the file descriptor and passed as int where possible, this is unsupported on Windows.

Internal Objects Notes

Internal objects generally use a custom structure which cannot be copied by value safely, PHP currently lacks the mechanics to do this (without serialization) and so only objects that do not use a custom structure may be shared.

Some internal objects do not use a custom structure, for example parallel\Events\Event and so may be shared.

Closures are a special kind of internal object and support being copied by value, and so may be shared.

Channels are central to writing parallel code and support concurrent access and execution by necessity, and so may be shared.

Aviso

A user class that extends an internal class may use a custom structure as defined by the internal class, in which case they cannot be copied by value safely, and so may not be shared.

Valor Retornado

Aviso

The return parallel\Future must not be ignored when the task contains a return or throw statement.

Exceptions

Aviso

Shall throw parallel\Runtime\Error\Closed if parallel\Runtime was closed.

Aviso

Shall throw parallel\Runtime\Error\IllegalFunction if task is a closure created from an internal function.

Aviso

Shall throw parallel\Runtime\Error\IllegalInstruction if task contains illegal instructions.

Aviso

Shall throw parallel\Runtime\Error\IllegalParameter if task accepts or argv contains illegal variables.

Aviso

Shall throw parallel\Runtime\Error\IllegalReturn if task returns illegally.


Runtime Graceful Join

  • « parallel\Runtime::run
  • parallel\Runtime::kill »
  • PHP Manual
  • parallel\Runtime
  • Runtime Graceful Join

parallel\Runtime::close

(0.8.0)

parallel\Runtime::close — Runtime Graceful Join

Descrição

public parallel\Runtime::close(): void

Shall request that the runtime shutsdown.

Nota:

Tasks scheduled for execution will be executed before the shutdown occurs.

Exceptions

Aviso

Shall throw parallel\Runtime\Error\Closed if Runtime was already closed.


Runtime Join

  • « parallel\Runtime::close
  • parallel\Future »
  • PHP Manual
  • parallel\Runtime
  • Runtime Join

parallel\Runtime::kill

(0.8.0)

parallel\Runtime::kill — Runtime Join

Descrição

public parallel\Runtime::kill(): void

Shall attempt to force the runtime to shutdown.

Nota:

Tasks scheduled for execution will not be executed, the currently running task shall be interrupted.

Aviso

Internal function calls in progress cannot be interrupted.

Exceptions

Aviso

Shall throw parallel\Runtime\Error\Closed if Runtime was closed.


The parallel\Future class

(0.8.0)

Futures

A Future represents the return value or uncaught exception from a task, and exposes an API for cancellation.

Exemplo #1 Example showing Future as return value

<?php
$runtime = new \parallel\Runtime;
$future = $runtime->run(function(){
return "World";
});
printf("Hello %s\n", $future->value());
?>

O exemplo acima produzirá algo semelhante a:

Hello World

The behaviour of a future also allows it to be used as a simple synchronization point even where the task does not return a value explicitly.

Exemplo #2 Example showing Future as synchronization point

<?php
$runtime = new \parallel\Runtime;
$future = $runtime->run(function(){
echo "in child ";
for ($i = 0; $i < 500; $i++) {
if ($i % 10 == 0) {
echo ".";
}
}
echo " leaving child";
});

$future->value();
echo "\nparent continues\n";
?>

O exemplo acima produzirá algo semelhante a:

in child .................................................. leaving child
parent continues

Resumo da classe

final class parallel\Future {
/* Resolution */
public value(): mixed
/* State */
public cancelled(): bool
public done(): bool
/* Cancellation */
public cancel(): bool
}

Índice

  • parallel\Future::cancel — Cancellation
  • parallel\Future::cancelled — State Detection
  • parallel\Future::done — State Detection
  • parallel\Future::value — Resolution


Cancellation

  • « parallel\Future
  • parallel\Future::cancelled »
  • PHP Manual
  • parallel\Future
  • Cancellation

parallel\Future::cancel

(0.9.0)

parallel\Future::cancel — Cancellation

Descrição

public parallel\Future::cancel(): bool

Shall try to cancel the task

Nota:

If task is running, it will be interrupted.

Aviso

Internal function calls in progress cannot be interrupted.

Exceptions

Aviso

Shall throw parallel\Future\Error\Killed if parallel\Runtime executing task was killed.

Aviso

Shall throw parallel\Future\Error\Cancelled if task was already cancelled.


State Detection

  • « parallel\Future::cancel
  • parallel\Future::done »
  • PHP Manual
  • parallel\Future
  • State Detection

parallel\Future::cancelled

(0.9.0)

parallel\Future::cancelled — State Detection

Descrição

public parallel\Future::cancelled(): bool

Shall indicate if the task was cancelled


State Detection

  • « parallel\Future::cancelled
  • parallel\Future::value »
  • PHP Manual
  • parallel\Future
  • State Detection

parallel\Future::done

(0.8.0)

parallel\Future::done — State Detection

Descrição

public parallel\Future::done(): bool

Shall indicate if the task is completed


Resolution

  • « parallel\Future::done
  • parallel\Channel »
  • PHP Manual
  • parallel\Future
  • Resolution

parallel\Future::value

(0.8.0)

parallel\Future::value — Resolution

Descrição

public parallel\Future::value(): mixed

Shall return (and if necessary wait for) return from task

Exceptions

Aviso

Shall throw parallel\Future\Error if waiting failed (internal error).

Aviso

Shall throw parallel\Future\Error\Killed if parallel\Runtime executing task was killed.

Aviso

Shall throw parallel\Future\Error\Cancelled if task was cancelled.

Aviso

Shall throw parallel\Future\Error\Foreign if task raised an unrecognized uncaught exception.

Aviso

Shall rethrow Throwable uncaught in task


The parallel\Channel class

(0.9.0)

Unbuffered Channels

An unbuffered channel will block on calls to parallel\Channel::send() until there is a receiver, and block on calls to parallel\Channel::recv() until there is a sender. This means an unbuffered channel is not only a way to share data among tasks but also a simple method of synchronization.

An unbuffered channel is the fastest way to share data among tasks, requiring the least copying.

Buffered Channels

A buffered channel will not block on calls to parallel\Channel::send() until capacity is reached, calls to parallel\Channel::recv() will block until there is data in the buffer.

Closures over Channels

A powerful feature of parallel channels is that they allow the exchange of closures between tasks (and runtimes).

When a closure is sent over a channel the closure is buffered, it doesn't change the buffering of the channel transmitting the closure, but it does effect the static scope inside the closure: The same closure sent to different runtimes, or the same runtime, will not share their static scope.

This means that whenever a closure is executed that was transmitted by a channel, static state will be as it was when the closure was buffered.

Anonymous Channels

The anonymous channel constructor allows the programmer to avoid assigning names to every channel: parallel will generate a unique name for anonymous channels.

Resumo da classe

final class parallel\Channel {
/* Anonymous Constructor */
public __construct()
public __construct(int $capacity)
/* Access */
public make(string $name): Channel
public make(string $name, int $capacity): Channel
public open(string $name): Channel
/* Sharing */
public recv(): mixed
public send(mixed $value): void
/* Closing */
public close(): void
/* Constant for Infinitely Buffered */
const Infinite;
}

Índice

  • parallel\Channel::__construct — Channel Construction
  • parallel\Channel::make — Access
  • parallel\Channel::open — Access
  • parallel\Channel::recv — Sharing
  • parallel\Channel::send — Sharing
  • parallel\Channel::close — Closing


Channel Construction

  • « parallel\Channel
  • parallel\Channel::make »
  • PHP Manual
  • parallel\Channel
  • Channel Construction

parallel\Channel::__construct

(1.1.0)

parallel\Channel::__construct — Channel Construction

Descrição

public parallel\Channel::__construct()

Shall make an anonymous unbuffered channel

public parallel\Channel::__construct(int $capacity)

Shall make an anonymous buffered channel with the given capacity

Parâmetros

capacity

May be Channel::Infinite or a positive integer


Access

  • « parallel\Channel::__construct
  • parallel\Channel::open »
  • PHP Manual
  • parallel\Channel
  • Access

parallel\Channel::make

(0.9.0)

parallel\Channel::make — Access

Descrição

public parallel\Channel::make(string $name): Channel

Shall make an unbuffered channel with the given name

public parallel\Channel::make(string $name, int $capacity): Channel

Shall make a buffered channel with the given name and capacity

Parâmetros

name

The name of the channel.

capacity

May be Channel::Infinite or a positive integer

Exceptions

Aviso

Shall throw parallel\Channel\Error\Existence if channel already exists.


Access

  • « parallel\Channel::make
  • parallel\Channel::recv »
  • PHP Manual
  • parallel\Channel
  • Access

parallel\Channel::open

(0.9.0)

parallel\Channel::open — Access

Descrição

public parallel\Channel::open(string $name): Channel

Shall open the channel with the given name

Exceptions

Aviso

Shall throw parallel\Channel\Error\Existence if channel does not exist.


Sharing

  • « parallel\Channel::open
  • parallel\Channel::send »
  • PHP Manual
  • parallel\Channel
  • Sharing

parallel\Channel::recv

(0.9.0)

parallel\Channel::recv — Sharing

Descrição

public parallel\Channel::recv(): mixed

Shall recv a value from this channel

Exceptions

Aviso

Shall throw parallel\Channel\Error\Closed if channel is closed.


Sharing

  • « parallel\Channel::recv
  • parallel\Channel::close »
  • PHP Manual
  • parallel\Channel
  • Sharing

parallel\Channel::send

(0.9.0)

parallel\Channel::send — Sharing

Descrição

public parallel\Channel::send(mixed $value): void

Shall send the given value on this channel

Exceptions

Aviso

Shall throw parallel\Channel\Error\Closed if channel is closed.

Aviso

Shall throw parallel\Channel\Error\IllegalValue if value is illegal.


Closing

  • « parallel\Channel::send
  • parallel\Events »
  • PHP Manual
  • parallel\Channel
  • Closing

parallel\Channel::close

(0.9.0)

parallel\Channel::close — Closing

Descrição

public parallel\Channel::close(): void

Shall close this channel

Exceptions

Aviso

Shall throw parallel\Channel\Error\Closed if channel is closed.


The parallel\Events class

(0.9.0)

The Event Loop

The Event loop monitors the state of sets of futures and or channels (targets) in order to perform read (parallel\Future::value(), parallel\Channel::recv()) and write (parallel\Channel::send()) operations as the targets become available and the operations may be performed without blocking the event loop.

Resumo da classe

final class parallel\Events implements Countable, Traversable {
/* Input */
public setInput(Input $input): void
/* Targets */
public addChannel(parallel\Channel $channel): void
public addFuture(string $name, parallel\Future $future): void
public remove(string $target): void
/* Behaviour */
public setBlocking(bool $blocking): void
public setTimeout(int $timeout): void
/* Polling */
public poll(): ?parallel\Events\Event
}

Índice

  • parallel\Events::setBlocking — Behaviour
  • parallel\Events::setTimeout — Behaviour
  • parallel\Events::setInput — Input
  • parallel\Events::addChannel — Targets
  • parallel\Events::addFuture — Targets
  • parallel\Events::remove — Targets
  • parallel\Events::poll — Polling


Behaviour

  • « parallel\Events
  • parallel\Events::setTimeout »
  • PHP Manual
  • parallel\Events
  • Behaviour

parallel\Events::setBlocking

(0.9.0)

parallel\Events::setBlocking — Behaviour

Descrição

By default when events are polled for, blocking will occur (at the PHP level) until the first event can be returned: Setting blocking mode to false will cause poll to return control if the first target polled is not ready.

This differs from setting a timeout of 0 with parallel\Events::setTimeout(), since a timeout of 0, while allowed, will cause an exception to be raised, which may be extremely slow or wasteful if what is really desired is non-blocking behaviour.

A non-blocking loop effects the return value of parallel\Events::poll(), such that it may be null before all events have been processed.

public parallel\Events::setBlocking(bool $blocking): void

Shall set blocking mode

Exceptions

Aviso

Shall throw parallel\Events\Error if loop has timeout set.


Behaviour

  • « parallel\Events::setBlocking
  • parallel\Events::setInput »
  • PHP Manual
  • parallel\Events
  • Behaviour

parallel\Events::setTimeout

(0.9.0)

parallel\Events::setTimeout — Behaviour

Descrição

By default when events are polled for, blocking will occur (at the PHP level) until the first event can be returned: Setting the timeout causes an exception to be thrown when the timeout is reached.

This differs from setting blocking mode to false with parallel\Events::setBlocking(), which will not cause an exception to be thrown.

public parallel\Events::setTimeout(int $timeout): void

Shall set the timeout in microseconds

Exceptions

Aviso

Shall throw parallel\Events\Error if loop is non-blocking.


Input

  • « parallel\Events::setTimeout
  • parallel\Events::addChannel »
  • PHP Manual
  • parallel\Events
  • Input

parallel\Events::setInput

(0.9.0)

parallel\Events::setInput — Input

Descrição

public parallel\Events::setInput(Input $input): void

Shall set input for this event loop


Targets

  • « parallel\Events::setInput
  • parallel\Events::addFuture »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::addChannel

(0.9.0)

parallel\Events::addChannel — Targets

Descrição

public parallel\Events::addChannel(parallel\Channel $channel): void

Shall watch for events on the given channel

Exceptions

Aviso

Shall throw parallel\Events\Error\Existence if channel was already added.


Targets

  • « parallel\Events::addChannel
  • parallel\Events::remove »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::addFuture

(0.9.0)

parallel\Events::addFuture — Targets

Descrição

public parallel\Events::addFuture(string $name, parallel\Future $future): void

Shall watch for events on the given future

Exceptions

Aviso

Shall throw parallel\Events\Error\Existence if target with the given name was already added.


Targets

  • « parallel\Events::addFuture
  • parallel\Events::poll »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::remove

(0.9.0)

parallel\Events::remove — Targets

Descrição

public parallel\Events::remove(string $target): void

Shall remove the given target

Exceptions

Aviso

Shall throw parallel\Events\Error\Existence if target with the given name was not found.


Polling

  • « parallel\Events::remove
  • parallel\Events\Input »
  • PHP Manual
  • parallel\Events
  • Polling

parallel\Events::poll

(0.9.0)

parallel\Events::poll — Polling

Descrição

public parallel\Events::poll(): ?parallel\Events\Event

Shall poll for the next event

Valor Retornado

Should there be no targets remaining, null shall be returned

Should this be a non-blocking loop, and blocking would occur, null shall be returned

Otherwise, the parallel\Events\Event returned describes the event.

Exceptions

Aviso

Shall throw parallel\Events\Error\Timeout if timeout is used and reached.


The parallel\Events\Input class

(0.9.0)

Events Input

An Input object is a container for data that the parallel\Events object will write to parallel\Channel objects as they become available. Multiple event loops may share an Input container - parallel does not verify the contents of the container when it is set as the input for a parallel\Events object.

Nota:

When a parallel\Events object performs a write, the target is removed from the input object as if parallel\Events\Input::remove() were called.

Resumo da classe

final class parallel\Events\Input {
public add(string $target, mixed $value): void
public remove(string $target): void
public clear(): void
}

Índice

  • parallel\Events\Input::add — Inputs
  • parallel\Events\Input::clear — Inputs
  • parallel\Events\Input::remove — Inputs


Inputs

  • « parallel\Events\Input
  • parallel\Events\Input::clear »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::add

(0.9.0)

parallel\Events\Input::add — Inputs

Descrição

public parallel\Events\Input::add(string $target, mixed $value): void

Shall set input for the given target

Exceptions

Aviso

Shall throw parallel\Events\Input\Error\Existence if input for target already exists.

Aviso

Shall throw parallel\Events\Input\Error\IllegalValue if value is illegal (object, null).


Inputs

  • « parallel\Events\Input::add
  • parallel\Events\Input::remove »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::clear

(0.9.0)

parallel\Events\Input::clear — Inputs

Descrição

public parallel\Events\Input::clear(): void

Shall remove input for all targets


Inputs

  • « parallel\Events\Input::clear
  • parallel\Events\Event »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::remove

(0.9.0)

parallel\Events\Input::remove — Inputs

Descrição

public parallel\Events\Input::remove(string $target): void

Shall remove input for the given target

Exceptions

Aviso

Shall throw parallel\Events\Input\Error\Existence if input for target does not exist.


The parallel\Events\Event class

(0.9.0)

Event Objects

When an Event is returned, Event::$object shall be removed from the loop that returned it, should the event be a write event the Input for Event::$source shall also be removed.

Resumo da classe

final class parallel\Events\Event {
/* Shall be one of Event\Type constants */
public int $type;
/* Shall be the source of the event (target name) */
public string $source;
/* Shall be either Future or Channel */
public object $object;
/* Shall be set for Read/Error events */
public $value;
}


The parallel\Events\Event\Type class

(0.9.0)

Resumo da classe

final class parallel\Events\Event\Type {
/* Event::$object was read into Event::$value */
const Read;
/* Input for Event::$source written to Event::$object */
const Write;
/* Event::$object (Channel) was closed */
const Close;
/* Event::$object (Future) was cancelled */
const Cancel;
/* Runtime executing Event::$object (Future) was killed */
const Kill;
/* Event::$object (Future) raised error */
const Error;
}


The parallel\Sync class

(1.1.0)

Low Level Synchronization

The parallel\Sync class provides access to low level synchronization primitives, mutex, condition variables, and allows the implementation of semaphores.

Synchronization for most applications is much better implemented using channels, however, in some cases authors of low level code may find it useful to be able to access these lower level mechanisms.

Resumo da classe

final class parallel\Sync {
/* Constructor */
public __construct()
public __construct(scalar $value)
/* Access */
public get(): scalar
public set(scalar $value)
/* Synchronization */
public wait()
public notify(bool $all = ?)
public __invoke(callable $critical)
}

Índice

  • parallel\Sync::__construct — Construction
  • parallel\Sync::get — Access
  • parallel\Sync::set — Access
  • parallel\Sync::wait — Synchronization
  • parallel\Sync::notify — Synchronization
  • parallel\Sync::__invoke — Synchronization


Construction

  • « parallel\Sync
  • parallel\Sync::get »
  • PHP Manual
  • parallel\Sync
  • Construction

parallel\Sync::__construct

(1.1.0)

parallel\Sync::__construct — Construction

Descrição

public parallel\Sync::__construct()

Shall construct a new synchronization object with no value

public parallel\Sync::__construct(scalar $value)

Shall construct a new synchronization object containing the given scalar value

Exceptions

Aviso

Shall throw parallel\Sync\Error\IllegalValue if value is non-scalar.


Access

  • « parallel\Sync::__construct
  • parallel\Sync::set »
  • PHP Manual
  • parallel\Sync
  • Access

parallel\Sync::get

(1.1.0)

parallel\Sync::get — Access

Descrição

public parallel\Sync::get(): scalar

Shall atomically return the synchronization objects value


Access

  • « parallel\Sync::get
  • parallel\Sync::wait »
  • PHP Manual
  • parallel\Sync
  • Access

parallel\Sync::set

(1.1.0)

parallel\Sync::set — Access

Descrição

public parallel\Sync::set(scalar $value)

Shall atomically set the value of the synchronization object

Exceptions

Aviso

Shall throw parallel\Sync\Error\IllegalValue if value is non-scalar.


Synchronization

  • « parallel\Sync::set
  • parallel\Sync::notify »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::wait

(1.1.0)

parallel\Sync::wait — Synchronization

Descrição

public parallel\Sync::wait()

Shall wait for notification on this synchronization object


Synchronization

  • « parallel\Sync::wait
  • parallel\Sync::__invoke »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::notify

(1.1.0)

parallel\Sync::notify — Synchronization

Descrição

public parallel\Sync::notify(bool $all = ?)

Shall notify one (by default) or all threads waiting on the synchronization object


Synchronization

  • « parallel\Sync::notify
  • pthreads »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::__invoke

(1.1.0)

parallel\Sync::__invoke — Synchronization

Descrição

public parallel\Sync::__invoke(callable $critical)

Shall exclusively enter into the critical code


pthreads

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
  • Constantes pré-definidas
  • Threaded — The Threaded class
    • Threaded::chunk — Manipulation
    • Threaded::count — Manipulation
    • Threaded::extend — Runtime Manipulation
    • Threaded::isRunning — State Detection
    • Threaded::isTerminated — State Detection
    • Threaded::merge — Manipulation
    • Threaded::notify — Synchronization
    • Threaded::notifyOne — Synchronization
    • Threaded::pop — Manipulation
    • Threaded::run — Execution
    • Threaded::shift — Manipulation
    • Threaded::synchronized — Synchronization
    • Threaded::wait — Synchronization
  • Thread — The Thread class
    • Thread::getCreatorId — Identification
    • Thread::getCurrentThread — Identification
    • Thread::getCurrentThreadId — Identification
    • Thread::getThreadId — Identification
    • Thread::isJoined — State Detection
    • Thread::isStarted — State Detection
    • Thread::join — Synchronization
    • Thread::start — Execution
  • Worker — The Worker class
    • Worker::collect — Collect references to completed tasks
    • Worker::getStacked — Gets the remaining stack size
    • Worker::isShutdown — State Detection
    • Worker::shutdown — Shutdown the worker
    • Worker::stack — Stacking work
    • Worker::unstack — Unstacking work
  • Collectable — The Collectable interface
    • Collectable::isGarbage — Determine whether an object has been marked as garbage
  • Pool — The Pool class
    • Pool::collect — Collect references to completed tasks
    • Pool::__construct — Creates a new Pool of Workers
    • Pool::resize — Resize the Pool
    • Pool::shutdown — Shutdown all workers
    • Pool::submit — Submits an object for execution
    • Pool::submitTo — Submits a task to a specific worker for execution
  • Volatile — The Volatile class


Introdução

pthreads is an object-orientated API that provides all of the tools needed for multi-threading in PHP. PHP applications can create, read, write, execute and synchronize with Threads, Workers and Threaded objects.

Aviso

This extension is considered unmaintained and dead.

Dica

Consider using parallel instead.

Aviso

The pthreads extension cannot be used in a web server environment. Threading in PHP is therefore restricted to CLI-based applications only.

Aviso

pthreads (v3) can only be used with PHP 7.2+: This is due to ZTS mode being unsafe in 7.0 and 7.1.

The Threaded class forms the basis of the functionality that allows pthreads to operate. It exposes synchronization methods and some useful interfaces for the programmer.

The Thread class enables for threads to be created by simply extending it and implementing a run method. Any members can be written to and read by any context with a reference to the thread. Any context can also execute any public and protected methods. The body of the run method will be executed in a separate thread when the Thread::start() method of the implementation is called from the context that created it. Only the context that creates a thread can start and join it.

The Worker class has a persistent state, and will be available from the call to Thread::start() (an inherited method) until the object goes out of scope, or is explicitly shutdown (via Worker::shutdown()). Any context with a reference to the worker object can stack tasks onto the Worker (via Worker::stack()), where these tasks will be executed by the worker in a separate thread. The run method of a worker object will be executed before any objects on the worker's stack, enabling for resources to be initialized that the objects to be executed may need.

The Pool class is used to create a group of workers to distribute Threaded objects amongst them. It is the easiest and most efficient way of using multiple threads in PHP applications.

Cuidado

The Pool class does not extend the Threaded class, and so pool-based objects are considered a normal PHP objects. As such, its instances of it should not be shared amongst different contexts.

The Volatile class is new to pthreads v3. It is used to denote mutable Threaded properties of Threaded classes (since these are now immutable by default). It is also used to store PHP arrays in Threaded contexts.

Synchronization is an important ability when threading. All of the objects that pthreads creates have built in synchronization in the (which will be familiar to java programmers) form of Threaded::wait() and Threaded::notify(). Calling Threaded::wait() on an object will cause the context to wait for another context to call Threaded::notify() on the same object. This mechanism allows for powerful synchronization between Threaded objects in PHP.

Cuidado

Any objects that are intended for use in the multi-threaded parts of your application should extend Threaded.

Data Storage: As a rule of thumb, any data type that can be serialized can be used as a member of a Threaded object, it can be read and written from any context with a reference to the Threaded Object. Not every type of data is stored serially, basic types are stored in their true form. Complex types, Arrays, and Objects that are not Threaded are stored serially; they can be read and written to the Threaded Object from any context with a reference. With the exception of Threaded Objects any reference used to set a member of a Threaded Object is separated from the reference in the Threaded Object; the same data can be read directly from the Threaded Object at any time by any context with a reference to the Threaded Object.

Static Members: When a new context is created ( Thread or Worker ), they are generally copied, but resources and objects with internal state are nullified (for safety reasons). This allows them to function as a kind of thread local storage. For example, upon starting the context, a class whose static members include connection information for a database server, and the connection itself, will only have the simple connection information copied, not the connection. Allowing the new context to initiate a connection in the same way as the context that created it, storing the connection in the same place without affecting the original context.

Cuidado

When print_r, var_dump and other object debug functions are executed, they do not include recursion protection.

Nota:

Resources: The extensions and functionality that define resources in PHP are completely unprepared for this kind of environment; pthreads makes provisions for Resources to be shared among contexts, however, for most types of resource it should be considered unsafe. Extreme caution and care should be used when sharing resources among contexts.

Cuidado

In the environment which pthreads executes, some restrictions and limitations are necessary in order to provide a stable environment.


Dependências

pthreads requires a build of PHP with ZTS (Zend Thread Safety) enabled (--enable-zts, or on non-Windows systems prior to PHP 8.0.0, --enable-maintainer-zts)

Cuidado

Zend Thread Safety cannot be enabled post build; it is a build time configuration option.

pthreads should build anywhere there is a working Posix Threads header (pthread.h) and ZTS build of PHP, including Windows (using the pthread-w32 project from redhat).


Instalação

pthreads releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/pthreads.

Windows users can download prebuilt release binaries from the » PECL website.

Cuidado

Windows users need to take the additional step of adding pthreadVC2.dll (distributed with Windows releases) to their PATH.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

PTHREADS_INHERIT_ALL (int)
The default options for all Threads, causes pthreads to copy the environment when new Threads are started
PTHREADS_INHERIT_NONE (int)
Do not inherit anything when new Threads are started
PTHREADS_INHERIT_INI (int)
Inherit INI entries when new Threads are started
PTHREADS_INHERIT_CONSTANTS (int)
Inherit user declared constants when new Threads are started
PTHREADS_INHERIT_CLASSES (int)
Inherit user declared classes when new Threads are started
PTHREADS_INHERIT_FUNCTIONS (int)
Inherit user declared functions when new Threads are started
PTHREADS_INHERIT_INCLUDES (int)
Inherit included file information when new Threads are started
PTHREADS_INHERIT_COMMENTS (int)
Inherit all comments when new Threads are started
PTHREADS_ALLOW_HEADERS (int)
Allow new Threads to send headers to standard output (normally prohibited)


The Threaded class

(PECL pthreads >= 2.0.0)

Introdução

Threaded objects form the basis of pthreads ability to execute user code in parallel; they expose synchronization methods and various useful interfaces.

Threaded objects, most importantly, provide implicit safety for the programmer; all operations on the object scope are safe.

Resumo da classe

class Threaded implements Collectable, Traversable, Countable, ArrayAccess {
/* Métodos */
public chunk(int $size, bool $preserve): array
public count(): int
public extend(string $class): bool
public isRunning(): bool
public isTerminated(): bool
public merge(mixed $from, bool $overwrite = ?): bool
public notify(): bool
public notifyOne(): bool
public pop(): bool
public run(): void
public shift(): mixed
public synchronized(Closure $block, mixed ...$args): mixed
public wait(int $timeout = ?): bool
}

Índice

  • Threaded::chunk — Manipulation
  • Threaded::count — Manipulation
  • Threaded::extend — Runtime Manipulation
  • Threaded::isRunning — State Detection
  • Threaded::isTerminated — State Detection
  • Threaded::merge — Manipulation
  • Threaded::notify — Synchronization
  • Threaded::notifyOne — Synchronization
  • Threaded::pop — Manipulation
  • Threaded::run — Execution
  • Threaded::shift — Manipulation
  • Threaded::synchronized — Synchronization
  • Threaded::wait — Synchronization


Manipulation

  • « Threaded
  • Threaded::count »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::chunk

(PECL pthreads >= 2.0.0)

Threaded::chunk — Manipulation

Descrição

public Threaded::chunk(int $size, bool $preserve): array

Fetches a chunk of the objects property table of the given size, optionally preserving keys

Parâmetros

size

The number of items to fetch

preserve

Preserve the keys of members, by default false

Valor Retornado

An array of items from the objects property table

Exemplos

Exemplo #1 Fetch a chunk of the property table

<?php
$safe = new Threaded();

while (count($safe) < 10) {
$safe[] = count($safe);
}

var_dump($safe->chunk(5));
?>

O exemplo acima produzirá:

array(5) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(4)
}


Manipulation

  • « Threaded::chunk
  • Threaded::extend »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::count

(PECL pthreads >= 2.0.0)

Threaded::count — Manipulation

Descrição

public Threaded::count(): int

Returns the number of properties for this object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Counting the properties of an object

<?php
$safe = new Threaded();

while (count($safe) < 10) {
$safe[] = count($safe);
}

var_dump(count($safe));
?>

O exemplo acima produzirá:

int(10)


Runtime Manipulation

  • « Threaded::count
  • Threaded::isRunning »
  • PHP Manual
  • Threaded
  • Runtime Manipulation

Threaded::extend

(PECL pthreads >= 2.0.8)

Threaded::extend — Runtime Manipulation

Descrição

public Threaded::extend(string $class): bool

Makes thread safe standard class at runtime

Parâmetros

class

The class to extend

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Runtime inheritance

<?php
class My {}

Threaded::extend(My::class);

$my = new My();

var_dump($my instanceof Threaded);
?>

O exemplo acima produzirá:

bool(true)


State Detection

  • « Threaded::extend
  • Threaded::isTerminated »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isRunning

(PECL pthreads >= 2.0.0)

Threaded::isRunning — State Detection

Descrição

public Threaded::isRunning(): bool

Tell if the referenced object is executing

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A boolean indication of state

Nota:

A object is considered running while executing the run method

Exemplos

Exemplo #1 Detect the state of the referenced object

<?php
class My extends Thread {
public function run() {
$this->synchronized(function($thread){
if (!$thread->done)
$thread->wait();
}, $this);
}
}
$my = new My();
$my->start();
var_dump($my->isRunning());
$my->synchronized(function($thread){
$thread->done = true;
$thread->notify();
}, $my);
?>

O exemplo acima produzirá:

bool(true)


State Detection

  • « Threaded::isRunning
  • Threaded::merge »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isTerminated

(PECL pthreads >= 2.0.0)

Threaded::isTerminated — State Detection

Descrição

public Threaded::isTerminated(): bool

Tell if the referenced object was terminated during execution; suffered fatal errors, or threw uncaught exceptions

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A boolean indication of state

Exemplos

Exemplo #1 Detect the state of the referenced object

<?php
class My extends Thread {
public function run() {
i_do_not_exist();
}
}
$my = new My();
$my->start();
$my->join();
var_dump($my->isTerminated());
?>

O exemplo acima produzirá:

bool(true)


Manipulation

  • « Threaded::isTerminated
  • Threaded::notify »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::merge

(PECL pthreads >= 2.0.0)

Threaded::merge — Manipulation

Descrição

public Threaded::merge(mixed $from, bool $overwrite = ?): bool

Merges data into the current object

Parâmetros

from

The data to merge

overwrite

Overwrite existing keys, by default true

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Merging into the property table of a threaded object

<?php
$array = [];

while (count($array) < 10)
$array[] = count($array);

$stdClass = new stdClass();
$stdClass->foo = "foo";
$stdClass->bar = "bar";
$stdClass->baz = "baz";

$safe = new Threaded();
$safe->merge($array);

$safe->foo = "bar";
$safe->merge($stdClass, false);

var_dump($safe);
?>

O exemplo acima produzirá:

object(Threaded)#2 (13) {
  ["0"]=>
  int(0)
  ["1"]=>
  int(1)
  ["2"]=>
  int(2)
  ["3"]=>
  int(3)
  ["4"]=>
  int(4)
  ["5"]=>
  int(5)
  ["6"]=>
  int(6)
  ["7"]=>
  int(7)
  ["8"]=>
  int(8)
  ["9"]=>
  int(9)
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "bar"
  ["baz"]=>
  string(3) "baz"
}


Synchronization

  • « Threaded::merge
  • Threaded::notifyOne »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::notify

(PECL pthreads >= 2.0.0)

Threaded::notify — Synchronization

Descrição

public Threaded::notify(): bool

Send notification to the referenced object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Notifications and Waiting

<?php
class My extends Thread {
public function run() {
/** cause this thread to wait **/
$this->synchronized(function($thread){
if (!$thread->done)
$thread->wait();
}, $this);
}
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
$thread->done = true;
$thread->notify();
}, $my);
var_dump($my->join());
?>

O exemplo acima produzirá:

bool(true)


Synchronization

  • « Threaded::notify
  • Threaded::pop »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::notifyOne

(PECL pthreads >= 3.0.0)

Threaded::notifyOne — Synchronization

Descrição

public Threaded::notifyOne(): bool

Send notification to the referenced object. This unblocks at least one of the blocked threads (as opposed to unblocking all of them, as seen with Threaded::notify()).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Notifications and Waiting

<?php
class My extends Thread {
public function run() {
/** cause this thread to wait **/
$this->synchronized(function($thread){
if (!$thread->done)
$thread->wait();
}, $this);
}
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
$thread->done = true;
$thread->notifyOne();
}, $my);
var_dump($my->join());
?>

O exemplo acima produzirá:

bool(true)


Manipulation

  • « Threaded::notifyOne
  • Threaded::run »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::pop

(PECL pthreads >= 2.0.0)

Threaded::pop — Manipulation

Descrição

public Threaded::pop(): bool

Pops an item from the objects property table

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The last item from the objects property table

Exemplos

Exemplo #1 Popping the last item from the property table of a threaded object

<?php
$safe = new Threaded();

while (count($safe) < 10)
$safe[] = count($safe);

var_dump($safe->pop());
?>

O exemplo acima produzirá:

int(9)


Execution

  • « Threaded::pop
  • Threaded::shift »
  • PHP Manual
  • Threaded
  • Execution

Threaded::run

(PECL pthreads >= 2.0.0)

Threaded::run — Execution

Descrição

public Threaded::run(): void

The programmer should always implement the run method for objects that are intended for execution.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The methods return value, if used, will be ignored


Manipulation

  • « Threaded::run
  • Threaded::synchronized »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::shift

(PECL pthreads >= 2.0.0)

Threaded::shift — Manipulation

Descrição

public Threaded::shift(): mixed

Shifts an item from the objects property table

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The first item from the objects property table

Exemplos

Exemplo #1 Shifting the first item from the property table of a threaded object

<?php
$safe = new Threaded();

while (count($safe) < 10)
$safe[] = count($safe);

var_dump($safe->shift());
?>

O exemplo acima produzirá:

int(0)


Synchronization

  • « Threaded::shift
  • Threaded::wait »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::synchronized

(PECL pthreads >= 2.0.0)

Threaded::synchronized — Synchronization

Descrição

public Threaded::synchronized(Closure $block, mixed ...$args): mixed

Executes the block while retaining the referenced objects synchronization lock for the calling context

Parâmetros

block

The block of code to execute

args

Variable length list of arguments to use as function arguments to the block

Valor Retornado

The return value from the block

Exemplos

Exemplo #1 Synchronizing

<?php
class My extends Thread {
public function run() {
$this->synchronized(function($thread){
if (!$thread->done)
$thread->wait();
}, $this);
}
}
$my = new My();
$my->start();
$my->synchronized(function($thread){
$thread->done = true;
$thread->notify();
}, $my);
var_dump($my->join());
?>

O exemplo acima produzirá:

bool(true)


Synchronization

  • « Threaded::synchronized
  • Thread »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::wait

(PECL pthreads >= 2.0.0)

Threaded::wait — Synchronization

Descrição

public Threaded::wait(int $timeout = ?): bool

Will cause the calling context to wait for notification from the referenced object

Parâmetros

timeout

An optional timeout in microseconds

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Notifications and Waiting

<?php
class My extends Thread {
public function run() {
/** cause this thread to wait **/
$this->synchronized(function($thread){
if (!$thread->done)
$thread->wait();
}, $this);
}
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
$thread->done = true;
$thread->notify();
}, $my);
var_dump($my->join());
?>

O exemplo acima produzirá:

bool(true)


The Thread class

(PECL pthreads >= 2.0.0)

Introdução

When the start method of a Thread is invoked, the run method code will be executed in separate Thread, in parallel.

After the run method is executed the Thread will exit immediately, it will be joined with the creating Thread at the appropriate time.

Aviso

Relying on the engine to determine when a Thread should join may cause undesirable behaviour; the programmer should be explicit, where possible.

Resumo da classe

class Thread extends Threaded implements Countable, Traversable, ArrayAccess {
/* Métodos */
public getCreatorId(): int
public static getCurrentThread(): Thread
public static getCurrentThreadId(): int
public getThreadId(): int
public isJoined(): bool
public isStarted(): bool
public join(): bool
public start(int $options = ?): bool
/* Métodos herdados */
public Threaded::chunk(int $size, bool $preserve): array
public Threaded::count(): int
public Threaded::extend(string $class): bool
public Threaded::isRunning(): bool
public Threaded::isTerminated(): bool
public Threaded::merge(mixed $from, bool $overwrite = ?): bool
public Threaded::notify(): bool
public Threaded::notifyOne(): bool
public Threaded::pop(): bool
public Threaded::run(): void
public Threaded::shift(): mixed
public Threaded::synchronized(Closure $block, mixed ...$args): mixed
public Threaded::wait(int $timeout = ?): bool
}

Índice

  • Thread::getCreatorId — Identification
  • Thread::getCurrentThread — Identification
  • Thread::getCurrentThreadId — Identification
  • Thread::getThreadId — Identification
  • Thread::isJoined — State Detection
  • Thread::isStarted — State Detection
  • Thread::join — Synchronization
  • Thread::start — Execution


Identification

  • « Thread
  • Thread::getCurrentThread »
  • PHP Manual
  • Thread
  • Identification

Thread::getCreatorId

(PECL pthreads >= 2.0.0)

Thread::getCreatorId — Identification

Descrição

public Thread::getCreatorId(): int

Will return the identity of the Thread that created the referenced Thread

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numeric identity

Exemplos

Exemplo #1 Return the identity of the Thread or Process that created the referenced Thread

<?php
class My extends Thread {
public function run() {
printf("%s created by Thread #%lu\n", __CLASS__, $this->getCreatorId());
}
}
$my = new My();
$my->start();
?>

O exemplo acima produzirá:

My created by Thread #123456778899


Identification

  • « Thread::getCreatorId
  • Thread::getCurrentThreadId »
  • PHP Manual
  • Thread
  • Identification

Thread::getCurrentThread

(PECL pthreads >= 2.0.0)

Thread::getCurrentThread — Identification

Descrição

public static Thread::getCurrentThread(): Thread

Return a reference to the currently executing Thread

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An object representing the currently executing Thread

Exemplos

Exemplo #1 Return the currently executing Thread

<?php
class My extends Thread {
public function run() {
var_dump(Thread::getCurrentThread());
}
}
$my = new My();
$my->start();
?>

O exemplo acima produzirá:

object(My)#2 (0) {
}


Identification

  • « Thread::getCurrentThread
  • Thread::getThreadId »
  • PHP Manual
  • Thread
  • Identification

Thread::getCurrentThreadId

(PECL pthreads >= 2.0.0)

Thread::getCurrentThreadId — Identification

Descrição

public static Thread::getCurrentThreadId(): int

Will return the identity of the currently executing Thread

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numeric identity

Exemplos

Exemplo #1 Return the identity of the currently executing Thread

<?php
class My extends Thread {
public function run() {
printf("%s is Thread #%lu\n", __CLASS__, Thread::getCurrentThreadId());
}
}
$my = new My();
$my->start();
?>

O exemplo acima produzirá:

My is Thread #123456778899


Identification

  • « Thread::getCurrentThreadId
  • Thread::isJoined »
  • PHP Manual
  • Thread
  • Identification

Thread::getThreadId

(PECL pthreads >= 2.0.0)

Thread::getThreadId — Identification

Descrição

public Thread::getThreadId(): int

Will return the identity of the referenced Thread

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numeric identity

Exemplos

Exemplo #1 Return the identity of the referenced Thread

<?php
class My extends Thread {
public function run() {
printf("%s is Thread #%lu\n", __CLASS__, $this->getThreadId());
}
}
$my = new My();
$my->start();
?>

O exemplo acima produzirá:

My is Thread #123456778899


State Detection

  • « Thread::getThreadId
  • Thread::isStarted »
  • PHP Manual
  • Thread
  • State Detection

Thread::isJoined

(PECL pthreads >= 2.0.0)

Thread::isJoined — State Detection

Descrição

public Thread::isJoined(): bool

Tell if the referenced Thread has been joined

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Detect the state of the referenced Thread

<?php
class My extends Thread {
public function run() {
$this->synchronized(function($thread){
if (!$thread->done)
$thread->wait();
}, $this);
}
}
$my = new My();
$my->start();
var_dump($my->isJoined());
$my->synchronized(function($thread){
$thread->done = true;
$thread->notify();
}, $my);
?>

O exemplo acima produzirá:

bool(false)


State Detection

  • « Thread::isJoined
  • Thread::join »
  • PHP Manual
  • Thread
  • State Detection

Thread::isStarted

(PECL pthreads >= 2.0.0)

Thread::isStarted — State Detection

Descrição

public Thread::isStarted(): bool

Tell if the referenced Thread was started

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Tell if the referenced Thread was started

<?php
$worker = new Worker();
$worker->start();
var_dump($worker->isStarted());
?>

O exemplo acima produzirá:

bool(true)


Synchronization

  • « Thread::isStarted
  • Thread::start »
  • PHP Manual
  • Thread
  • Synchronization

Thread::join

(PECL pthreads >= 2.0.0)

Thread::join — Synchronization

Descrição

public Thread::join(): bool

Causes the calling context to wait for the referenced Thread to finish executing

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Join with the referenced Thread

<?php
class My extends Thread {
public function run() {
/* ... */
}
}
$my = new My();
$my->start();
/* ... */
var_dump($my->join());
/* ... */
?>

O exemplo acima produzirá:

bool(true)


Execution

  • « Thread::join
  • Worker »
  • PHP Manual
  • Thread
  • Execution

Thread::start

(PECL pthreads >= 2.0.0)

Thread::start — Execution

Descrição

public Thread::start(int $options = ?): bool

Will start a new Thread to execute the implemented run method

Parâmetros

options

An optional mask of inheritance constants, by default PTHREADS_INHERIT_ALL

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Starting Threads

<?php
class My extends Thread {
public function run() {
/** ... **/
}
}
$my = new My();
var_dump($my->start());
?>

O exemplo acima produzirá:

bool(true)


The Worker class

(PECL pthreads >= 2.0.0)

Introdução

Worker Threads have a persistent context, as such should be used over Threads in most cases.

When a Worker is started, the run method will be executed, but the Thread will not leave until one of the following conditions are met:

  • the Worker goes out of scope (no more references remain)

  • the programmer calls shutdown

  • the script dies

This means the programmer can reuse the context throughout execution; placing objects on the stack of the Worker will cause the Worker to execute the stacked objects run method.

Resumo da classe

class Worker extends Thread implements Traversable, Countable, ArrayAccess {
/* Métodos */
public collect(Callable $collector = ?): int
public getStacked(): int
public isShutdown(): bool
public shutdown(): bool
public stack(Threaded &$work): int
public unstack(): int
/* Métodos herdados */
public Thread::getCreatorId(): int
public static Thread::getCurrentThread(): Thread
public static Thread::getCurrentThreadId(): int
public Thread::getThreadId(): int
public Thread::isJoined(): bool
public Thread::isStarted(): bool
public Thread::join(): bool
public Thread::start(int $options = ?): bool
}

Índice

  • Worker::collect — Collect references to completed tasks
  • Worker::getStacked — Gets the remaining stack size
  • Worker::isShutdown — State Detection
  • Worker::shutdown — Shutdown the worker
  • Worker::stack — Stacking work
  • Worker::unstack — Unstacking work


Collect references to completed tasks

  • « Worker
  • Worker::getStacked »
  • PHP Manual
  • Worker
  • Collect references to completed tasks

Worker::collect

(PECL pthreads >= 3.0.0)

Worker::collect — Collect references to completed tasks

Descrição

public Worker::collect(Callable $collector = ?): int

Allows the worker to collect references determined to be garbage by the optionally given collector.

Parâmetros

collector

A Callable collector that returns a boolean on whether the task can be collected or not. Only in rare cases should a custom collector need to be used.

Valor Retornado

The number of remaining tasks on the worker's stack to be collected.

Exemplos

Exemplo #1 A basic example of Worker::collect()

<?php
$worker = new Worker();

echo "There are currently {$worker->collect()} tasks on the stack to be collected\n";

for ($i = 0; $i < 15; ++$i) {
$worker->stack(new class extends Threaded {});
}

echo "There are {$worker->collect()} tasks remaining on the stack to be collected\n";

$worker->start();

while ($worker->collect()); // blocks until all tasks have finished executing

echo "There are now {$worker->collect()} tasks on the stack to be collected\n";

$worker->shutdown();

O exemplo acima produzirá:

There are currently 0 tasks on the stack to be collected
There are 15 tasks remaining on the stack to be collected
There are now 0 tasks on the stack to be collected


Gets the remaining stack size

  • « Worker::collect
  • Worker::isShutdown »
  • PHP Manual
  • Worker
  • Gets the remaining stack size

Worker::getStacked

(PECL pthreads >= 2.0.0)

Worker::getStacked — Gets the remaining stack size

Descrição

public Worker::getStacked(): int

Returns the number of tasks left on the stack

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of tasks currently waiting to be executed by the worker

Exemplos

Exemplo #1 A basic example of Worker::getStacked

<?php
$worker = new Worker();

for ($i = 0; $i < 5; ++$i) {
$worker->stack(new class extends Threaded {});
}

echo "There are {$worker->getStacked()} stacked tasks\n";

O exemplo acima produzirá:

There are 5 stacked tasks


State Detection

  • « Worker::getStacked
  • Worker::shutdown »
  • PHP Manual
  • Worker
  • State Detection

Worker::isShutdown

(PECL pthreads >= 2.0.0)

Worker::isShutdown — State Detection

Descrição

public Worker::isShutdown(): bool

Whether the worker has been shutdown or not.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns whether the worker has been shutdown or not.

Exemplos

Exemplo #1 Detect the state of a worker

<?php
$worker = new Worker();
$worker->start();

var_dump($worker->isShutdown());

$worker->shutdown();

var_dump($worker->isShutdown());

O exemplo acima produzirá:

bool(false)
bool(true)


Shutdown the worker

  • « Worker::isShutdown
  • Worker::stack »
  • PHP Manual
  • Worker
  • Shutdown the worker

Worker::shutdown

(PECL pthreads >= 2.0.0)

Worker::shutdown — Shutdown the worker

Descrição

public Worker::shutdown(): bool

Shuts down the worker after executing all of the stacked tasks.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Shutdown the referenced worker

<?php
$my = new Worker();
$my->start();
/* stack/execute tasks */
var_dump($my->shutdown());

O exemplo acima produzirá:

bool(true)


Stacking work

  • « Worker::shutdown
  • Worker::unstack »
  • PHP Manual
  • Worker
  • Stacking work

Worker::stack

(PECL pthreads >= 2.0.0)

Worker::stack — Stacking work

Descrição

public Worker::stack(Threaded &$work): int

Appends the new work to the stack of the referenced worker.

Parâmetros

work

A Threaded object to be executed by the worker.

Valor Retornado

The new size of the stack.

Exemplos

Exemplo #1 Stacking a task for execution onto a worker

<?php
$worker = new Worker();
$work = new class extends Threaded {};

var_dump($worker->stack($work));

O exemplo acima produzirá:

int(1)


Unstacking work

  • « Worker::stack
  • Collectable »
  • PHP Manual
  • Worker
  • Unstacking work

Worker::unstack

(PECL pthreads >= 2.0.0)

Worker::unstack — Unstacking work

Descrição

public Worker::unstack(): int

Removes the first task (the oldest one) in the stack.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The new size of the stack.

Registro de Alterações

Versão | Descrição
v3 | The parameter to specify the task to unstack has been removed. Now, only the first task in the stack is removed.

Exemplos

Exemplo #1 Removing objects from the stack of Workers

<?php
$my = new Worker();
$work = new class extends Threaded {};

var_dump($my->stack($work));
var_dump($my->unstack());

O exemplo acima produzirá:

int(1)
int(0)


The Collectable interface

(PECL pthreads >= 2.0.8)

Introdução

Represents a garbage-collectable object.

Resumo da Interface

interface Collectable {
/* Métodos */
public isGarbage(): true
}

Índice

  • Collectable::isGarbage — Determine whether an object has been marked as garbage


Determine whether an object has been marked as garbage

  • « Collectable
  • Pool »
  • PHP Manual
  • Collectable
  • Determine whether an object has been marked as garbage

Collectable::isGarbage

(PECL pthreads >= 2.0.8)

Collectable::isGarbage — Determine whether an object has been marked as garbage

Descrição

public Collectable::isGarbage(): true

Can be called in Pool::collect() to determine if this object is garbage.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Veja Também

  • Pool::collect() - Collect references to completed tasks


The Pool class

(PECL pthreads >= 2.0.0)

Introdução

A Pool is a container for, and controller of, an adjustable number of Workers.

Pooling provides a higher level abstraction of the Worker functionality, including the management of references in the way required by pthreads.

Resumo da classe

class Pool {
/* Propriedades */
protected $size;
protected $class;
protected $workers;
protected $ctor;
protected $last;
/* Métodos */
public __construct(int $size, string $class = ?, array $ctor = ?)
public collect(Callable $collector = ?): int
public resize(int $size): void
public shutdown(): void
public submit(Threaded $task): int
public submitTo(int $worker, Threaded $task): int
}

Propriedades

size

maximum number of Workers this Pool can use

class

the class of the Worker

workers

references to Workers

ctor

the arguments for constructor of new Workers

last

offset in workers of the last Worker used

Índice

  • Pool::collect — Collect references to completed tasks
  • Pool::__construct — Creates a new Pool of Workers
  • Pool::resize — Resize the Pool
  • Pool::shutdown — Shutdown all workers
  • Pool::submit — Submits an object for execution
  • Pool::submitTo — Submits a task to a specific worker for execution


Collect references to completed tasks

  • « Pool
  • Pool::__construct »
  • PHP Manual
  • Pool
  • Collect references to completed tasks

Pool::collect

(PECL pthreads >= 2.0.0)

Pool::collect — Collect references to completed tasks

Descrição

public Pool::collect(Callable $collector = ?): int

Allows the pool to collect references determined to be garbage by the optionally given collector.

Parâmetros

collector

A Callable collector that returns a boolean on whether the task can be collected or not. Only in rare cases should a custom collector need to be used.

Valor Retornado

The number of remaining tasks in the pool to be collected.

Registro de Alterações

Versão | Descrição
v3 | An integer is now returned, and the collector parameter is now optional.

Exemplos

Exemplo #1 A basic example of Pool::collect()

<?php
$pool = new Pool(4);

for ($i = 0; $i < 15; ++$i) {
$pool->submit(new class extends Threaded {});
}

while ($pool->collect()); // blocks until all tasks have finished executing

$pool->shutdown();


Creates a new Pool of Workers

  • « Pool::collect
  • Pool::resize »
  • PHP Manual
  • Pool
  • Creates a new Pool of Workers

Pool::__construct

(PECL pthreads >= 2.0.0)

Pool::__construct — Creates a new Pool of Workers

Descrição

public Pool::__construct(int $size, string $class = ?, array $ctor = ?)

Construct a new pool of workers. Pools lazily create their threads, which means new threads will only be spawned when they are required to execute tasks.

Parâmetros

size

The maximum number of workers for this pool to create

class

The class for new Workers. If no class is given, then it defaults to the Worker class.

ctor

An array of arguments to be passed to new workers' constructors

Exemplos

Exemplo #1 Creating Pools

<?php
class MyWorker extends Worker {

public function __construct(Something $something) {
$this->something = $something;
}

public function run() {
/** ... **/
}
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);

var_dump($pool);
?>

O exemplo acima produzirá:

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  NULL
  ["work":protected]=>
  NULL
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(0)
}


Resize the Pool

  • « Pool::__construct
  • Pool::shutdown »
  • PHP Manual
  • Pool
  • Resize the Pool

Pool::resize

(PECL pthreads >= 2.0.0)

Pool::resize — Resize the Pool

Descrição

public Pool::resize(int $size): void

Resize the Pool

Parâmetros

size

The maximum number of Workers this Pool can create

Valor Retornado

Nenhum valor é retornado.


Shutdown all workers

  • « Pool::resize
  • Pool::submit »
  • PHP Manual
  • Pool
  • Shutdown all workers

Pool::shutdown

(PECL pthreads >= 2.0.0)

Pool::shutdown — Shutdown all workers

Descrição

public Pool::shutdown(): void

Shuts down all of the workers in the pool. This will block until all submitted tasks have been executed.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Shutting down a pool

<?php
class Task extends Threaded
{
public function run()
{
usleep(500000);
}
}

$pool = new Pool(4);

for ($i = 0; $i < 10; ++$i) {
$pool->submit(new Task());
}

$pool->shutdown(); // blocks until all submitted tasks have finished executing


Submits an object for execution

  • « Pool::shutdown
  • Pool::submitTo »
  • PHP Manual
  • Pool
  • Submits an object for execution

Pool::submit

(PECL pthreads >= 2.0.0)

Pool::submit — Submits an object for execution

Descrição

public Pool::submit(Threaded $task): int

Submit the task to the next Worker in the Pool

Parâmetros

task

The task for execution

Valor Retornado

the identifier of the Worker executing the object

Exemplos

Exemplo #1 Submitting Tasks

<?php
class MyWork extends Threaded {

public function run() {
/* ... */
}
}

class MyWorker extends Worker {

public function __construct(Something $something) {
$this->something = $something;
}

public function run() {
/** ... **/
}
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);
$pool->submit(new MyWork());
var_dump($pool);
?>

O exemplo acima produzirá:

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  array(1) {
    [0]=>
    object(MyWorker)#4 (1) {
      ["something"]=>
      object(Something)#5 (0) {
      }
    }
  }
  ["work":protected]=>
  array(1) {
    [0]=>
    object(MyWork)#3 (1) {
      ["worker"]=>
      object(MyWorker)#5 (1) {
        ["something"]=>
        object(Something)#6 (0) {
        }
      }
    }
  }
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(1)
}


Submits a task to a specific worker for execution

  • « Pool::submit
  • Volatile »
  • PHP Manual
  • Pool
  • Submits a task to a specific worker for execution

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo — Submits a task to a specific worker for execution

Descrição

public Pool::submitTo(int $worker, Threaded $task): int

Submit a task to the specified worker in the pool. The workers are indexed from 0, and will only exist if the pool has needed to create them (since threads are lazily spawned).

Parâmetros

worker

The worker to stack the task onto, indexed from 0.

task

The task for execution.

Valor Retornado

The identifier of the worker that accepted the task.

Exemplos

Exemplo #1 Submitting tasks to a specific worker

<?php
class Task extends Threaded {
public function run() {
var_dump(Thread::getCurrentThreadID());
}
}

$pool = new Pool(2);

$pool->submit(new Task());

for ($i = 0; $i < 5; ++$i) {
$pool->submitTo(0, new Task()); // stack all tasks onto the first worker
}

$pool->submitTo(1, new Task()); // cannot stack the task onto the second worker due to it not existing yet

$pool->shutdown();

O exemplo acima produzirá:

int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)

Fatal error: Uncaught Exception: The selected worker (1) does not exist in %s:%d


The Volatile class

(PECL pthreads >= 3.0.0)

Introdução

The Volatile class is new to pthreads v3. Its introduction is a consequence of the new immutability semantics of Threaded members of Threaded classes. The Volatile class enables for mutability of its Threaded members, and is also used to store PHP arrays in Threaded contexts.

Resumo da classe

class Volatile extends Threaded implements Collectable, Traversable {
/* Métodos herdados */
public Threaded::chunk(int $size, bool $preserve): array
public Threaded::count(): int
public Threaded::extend(string $class): bool
public Threaded::isRunning(): bool
public Threaded::isTerminated(): bool
public Threaded::merge(mixed $from, bool $overwrite = ?): bool
public Threaded::notify(): bool
public Threaded::notifyOne(): bool
public Threaded::pop(): bool
public Threaded::run(): void
public Threaded::shift(): mixed
public Threaded::synchronized(Closure $block, mixed ...$args): mixed
public Threaded::wait(int $timeout = ?): bool
}

Exemplos

Exemplo #1 New immutability semantics of Threaded

<?php

class Task extends Threaded
{
public function __construct()
{
$this->data = new Threaded();

// attempt to overwrite a Threaded property of a Threaded class (invalid)
$this->data = new stdClass();
}
}

var_dump((new Task())->data);

O exemplo acima produzirá algo semelhante a:

RuntimeException: Threaded members previously set to Threaded objects are immutable, cannot overwrite data in %s:%d

Exemplo #2 Volatile use-case

<?php

class Task extends Volatile
{
public function __construct()
{
$this->data = new Threaded();

// attempt to overwrite a Threaded property of a Volatile class (valid)
$this->data = new stdClass();
}
}

var_dump((new Task())->data);

O exemplo acima produzirá algo semelhante a:

object(stdClass)#3 (0) {
}


Semaphore, Shared Memory and IPC

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Semaphore Funções
    • 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_queue_exists — Check whether a message queue exists
    • 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 — Acquire a semaphore
    • sem_get — Get a semaphore id
    • sem_release — Release a semaphore
    • sem_remove — Remove a semaphore
    • shm_attach — Creates or open a shared memory segment
    • shm_detach — Disconnects from shared memory segment
    • shm_get_var — Returns a variable from shared memory
    • shm_has_var — Check whether a specific entry exists
    • shm_put_var — Inserts or updates a variable in shared memory
    • shm_remove_var — Removes a variable from shared memory
    • shm_remove — Removes shared memory from Unix systems
  • SysvMessageQueue — The SysvMessageQueue class
  • SysvSemaphore — The SysvSemaphore class
  • SysvSharedMemory — The SysvSharedMemory class


Introdução

These modules provide wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC).

Semaphores may be used to provide exclusive access to resources on the current machine, or to limit the number of processes that may simultaneously use a resource.

This module provides also shared memory functions using System V shared memory. Shared memory may be used to provide access to global variables. Different httpd-daemons and even other programs (such as Perl, C, ...) are able to access this data to provide a global data-exchange. Remember, that shared memory is NOT safe against simultaneous access. Use semaphores for synchronization.

Limits of Shared Memory by the Unix OS
SHMMAX | max size of shared memory, normally 131072 bytes
SHMMIN | minimum size of shared memory, normally 1 byte
SHMMNI | max amount of shared memory segments on a system, normally 100
SHMSEG | max amount of shared memory segments per process, normally 6

The messaging functions may be used to send and receive messages to/from other processes. They provide a simple and effective means of exchanging data between processes, without the need for setting up an alternative using Unix domain sockets.

Nota: Only the shared memory functions and ftok() are available on Windows. Neither semaphores nor inter-process messaging functions are supported on that platform.


Instalação

Support for this functions are not enabled by default. To enable System V semaphore support compile PHP with the option --enable-sysvsem. To enable the System V shared memory support compile PHP with the option --enable-sysvshm. To enable the System V messages support compile PHP with the option --enable-sysvmsg.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Semaphore Configuration Options
Nome | Padrão | Modificável | Registro de Alterações
sysvshm.init_mem | 10000 | INI_SYSTEM |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

sysvshm.init_mem int

A default size of the shared memory segment.


Tipos de Recurso

Prior to PHP 8.0.0, this extension defined the resource types sysvmsg queue (System V Message Queue), sysvsem (System V Semaphore) and sysvshm (System V Shared Memory).


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

MSG_IPC_NOWAIT (int)
MSG_EAGAIN (int)
MSG_ENOMSG (int)
MSG_NOERROR (int)
MSG_EXCEPT (int)


Semaphore Funções

Índice

  • 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_queue_exists — Check whether a message queue exists
  • 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 — Acquire a semaphore
  • sem_get — Get a semaphore id
  • sem_release — Release a semaphore
  • sem_remove — Remove a semaphore
  • shm_attach — Creates or open a shared memory segment
  • shm_detach — Disconnects from shared memory segment
  • shm_get_var — Returns a variable from shared memory
  • shm_has_var — Check whether a specific entry exists
  • shm_put_var — Inserts or updates a variable in shared memory
  • shm_remove_var — Removes a variable from shared memory
  • shm_remove — Removes shared memory from Unix systems


Convert a pathname and a project identifier to a System V IPC key

  • « Semaphore Funções
  • msg_get_queue »
  • PHP Manual
  • Semaphore Funções
  • Convert a pathname and a project identifier to a System V IPC key

ftok

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftok — Convert a pathname and a project identifier to a System V IPC key

Descrição

ftok(string $filename, string $project_id): int

The function converts the filename of an existing accessible file and a project identifier into an integer for use with for example shmop_open() and other System V IPC keys.

Parâmetros

filename

Path to an accessible file.

project_id

Project identifier. This must be a one character string.

Valor Retornado

On success the return value will be the created key value, otherwise -1 is returned.

Veja Também

  • shmop_open() - Create or open shared memory block
  • sem_get() - Get a semaphore id


Create or attach to a message queue

  • « ftok
  • msg_queue_exists »
  • PHP Manual
  • Semaphore Funções
  • Create or attach to a message queue

msg_get_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_get_queue — Create or attach to a message queue

Descrição

msg_get_queue(int $key, int $permissions = 0666): SysvMessageQueue|false

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 permissions. 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.

Parâmetros

key

Message queue numeric ID

permissions

Queue permissions. Default to 0666. If the message queue already exists, the permissions will be ignored.

Valor Retornado

Returns SysvMessageQueue instance that can be used to access the System V message queue, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns a SysvMessageQueue instance now; previously, a resource was returned.

Veja Também

  • msg_remove_queue() - Destroy a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_send() - Send a message to a message queue
  • msg_stat_queue() - Returns information from the message queue data structure
  • msg_set_queue() - Set information in the message queue data structure


Check whether a message queue exists

  • « msg_get_queue
  • msg_receive »
  • PHP Manual
  • Semaphore Funções
  • Check whether a message queue exists

msg_queue_exists

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

msg_queue_exists — Check whether a message queue exists

Descrição

msg_queue_exists(int $key): bool

Checks whether the message queue key exists.

Parâmetros

key

Queue key.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • msg_remove_queue() - Destroy a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_stat_queue() - Returns information from the message queue data structure


Receive a message from a message queue

  • « msg_queue_exists
  • msg_remove_queue »
  • PHP Manual
  • Semaphore Funções
  • Receive a message from a message queue

msg_receive

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_receive — Receive a message from a message queue

Descrição

msg_receive(
SysvMessageQueue $queue,
int $desired_message_type,
int &$received_message_type,
int $max_message_size,
mixed &$message,
bool $unserialize = true,
int $flags = 0,
int &$error_code = null
): bool

msg_receive() will receive the first message from the specified queue of the type specified by desired_message_type.

Parâmetros

queue

The message queue.

desired_message_type

If desired_message_type is 0, the message from the front of the queue is returned. If desired_message_type is greater than 0, then the first message of that type is returned. If desired_message_type is less than 0, the first message on the queue with a type less than or equal to the absolute value of desired_message_type 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.

received_message_type

The type of the message that was received will be stored in this parameter.

max_message_size

The maximum size of message to be accepted is specified by the max_message_size; if the message in the queue is larger than this size the function will fail (unless you set flags as described below).

message

The received message will be stored in message, unless there were errors receiving the message.

unserialize

If 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.

flags

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).

Flag values for msg_receive
MSG_IPC_NOWAIT | If there are no messages of the desired_message_type, return immediately and do not wait. The function will fail and return an integer value corresponding to MSG_ENOMSG.
MSG_EXCEPT | Using this flag in combination with a desired_message_type greater than 0 will cause the function to receive the first message that is not equal to desired_message_type.
MSG_NOERROR | If the message is longer than max_message_size, setting this flag will truncate the message to max_message_size and will not signal an error.

error_code

If the function fails, the optional error_code will be set to the value of the system errno variable.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

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.

Registro de Alterações

Versão | Descrição
8.0.0 | queue expects a SysvMessageQueue instance now; previously, a resource was expected.

Veja Também

  • msg_remove_queue() - Destroy a message queue
  • msg_send() - Send a message to a message queue
  • msg_stat_queue() - Returns information from the message queue data structure
  • msg_set_queue() - Set information in the message queue data structure


Destroy a message queue

  • « msg_receive
  • msg_send »
  • PHP Manual
  • Semaphore Funções
  • Destroy a message queue

msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_remove_queue — Destroy a message queue

Descrição

msg_remove_queue(SysvMessageQueue $queue): bool

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.

Parâmetros

queue

The message queue.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | queue expects a SysvMessageQueue instance now; previously, a resource was expected.

Veja Também

  • msg_get_queue() - Create or attach to a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_stat_queue() - Returns information from the message queue data structure
  • msg_set_queue() - Set information in the message queue data structure


Send a message to a message queue

  • « msg_remove_queue
  • msg_set_queue »
  • PHP Manual
  • Semaphore Funções
  • Send a message to a message queue

msg_send

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_send — Send a message to a message queue

Descrição

msg_send(
SysvMessageQueue $queue,
int $message_type,
string|int|float|bool $message,
bool $serialize = true,
bool $blocking = true,
int &$error_code = null
): bool

msg_send() sends a message of type message_type (which MUST be greater than 0) to the message queue specified by queue.

Parâmetros

queue

The message queue.

message_type

The type of the message (MUST be greater than 0)

message

The body of the message.

Nota:

If serialize set to false is supplied, MUST be of type: string, int, float or bool. In other case a warning will be issued.

serialize

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.

blocking

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 error_code to MSG_EAGAIN, indicating that you should try to send your message again a little later on.

error_code

If the function fails, the optional errorcode will be set to the value of the system errno variable.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

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.

Registro de Alterações

Versão | Descrição
8.0.0 | queue expects a SysvMessageQueue instance now; previously, a resource was expected.

Veja Também

  • msg_remove_queue() - Destroy a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_stat_queue() - Returns information from the message queue data structure
  • msg_set_queue() - Set information in the message queue data structure


Set information in the message queue data structure

  • « msg_send
  • msg_stat_queue »
  • PHP Manual
  • Semaphore Funções
  • Set information in the message queue data structure

msg_set_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_set_queue — Set information in the message queue data structure

Descrição

msg_set_queue(SysvMessageQueue $queue, array $data): bool

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.

Changing the data structure will require that PHP be running as the same user that created 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.

Parâmetros

queue

The message queue.

data

You specify the values you require by setting the value of the keys that you require in the data array.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | queue expects a SysvMessageQueue instance now; previously, a resource was expected.

Veja Também

  • msg_remove_queue() - Destroy a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_stat_queue() - Returns information from the message queue data structure
  • msg_get_queue() - Create or attach to a message queue


Returns information from the message queue data structure

  • « msg_set_queue
  • sem_acquire »
  • PHP Manual
  • Semaphore Funções
  • Returns information from the message queue data structure

msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_stat_queue — Returns information from the message queue data structure

Descrição

msg_stat_queue(SysvMessageQueue $queue): array|false

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.

Parâmetros

queue

The message queue.

Valor Retornado

On success, the return value is an array whose keys and values have the following meanings:

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 maximum number of bytes allowed in one message queue. On Linux, this value may be read and modified via /proc/sys/kernel/msgmnb.
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.

Returns false on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | queue expects a SysvMessageQueue instance now; previously, a resource was expected.

Veja Também

  • msg_remove_queue() - Destroy a message queue
  • msg_receive() - Receive a message from a message queue
  • msg_get_queue() - Create or attach to a message queue
  • msg_set_queue() - Set information in the message queue data structure


Acquire a semaphore

  • « msg_stat_queue
  • sem_get »
  • PHP Manual
  • Semaphore Funções
  • Acquire a semaphore

sem_acquire

(PHP 4, PHP 5, PHP 7, PHP 8)

sem_acquire — Acquire a semaphore

Descrição

sem_acquire(SysvSemaphore $semaphore, bool $non_blocking = false): bool

sem_acquire() by default blocks (if necessary) until the semaphore can be acquired. A process attempting to acquire a semaphore which it has already acquired will block forever if acquiring the semaphore would cause its maximum number of semaphore to be exceeded.

After processing a request, any semaphores acquired by the process but not explicitly released will be released automatically and a warning will be generated.

Parâmetros

semaphore

semaphore is a semaphore obtained from sem_get().

non_blocking

Specifies if the process shouldn't wait for the semaphore to be acquired. If set to true, the call will return false immediately if a semaphore cannot be immediately acquired.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | semaphore expects a SysvSemaphore instance now; previously, a resource was expected.

Veja Também

  • sem_get() - Get a semaphore id
  • sem_release() - Release a semaphore


Get a semaphore id

  • « sem_acquire
  • sem_release »
  • PHP Manual
  • Semaphore Funções
  • Get a semaphore id

sem_get

(PHP 4, PHP 5, PHP 7, PHP 8)

sem_get — Get a semaphore id

Descrição

sem_get(
int $key,
int $max_acquire = 1,
int $permissions = 0666,
bool $auto_release = true
): SysvSemaphore|false

sem_get() returns an id that can be used to access the System V semaphore with the given key.

A second call to sem_get() for the same key will return a different semaphore identifier, but both identifiers access the same underlying semaphore.

If key is 0, a new private semaphore is created for each call to sem_get().

Parâmetros

key

max_acquire

The number of processes that can acquire the semaphore simultaneously is set to max_acquire.

permissions

The semaphore permissions. Actually this value is set only if the process finds it is the only process currently attached to the semaphore.

auto_release

Specifies if the semaphore should be automatically released on request shutdown.

Valor Retornado

Returns a positive semaphore identifier on success, or false on error.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns a SysvSemaphore instance now; previously, a resource was returned.
8.0.0 | The type of auto_release has been changed from int to bool.

Notas

Aviso

When using sem_get() to access a semaphore created outside PHP, note that the semaphore must have been created as a set of 3 semaphores (for example, by specifying 3 as the nsems parameter when calling the C semget() function), otherwise PHP will be unable to access the semaphore.

Veja Também

  • sem_acquire() - Acquire a semaphore
  • sem_release() - Release a semaphore
  • ftok() - Convert a pathname and a project identifier to a System V IPC key


Release a semaphore

  • « sem_get
  • sem_remove »
  • PHP Manual
  • Semaphore Funções
  • Release a semaphore

sem_release

(PHP 4, PHP 5, PHP 7, PHP 8)

sem_release — Release a semaphore

Descrição

sem_release(SysvSemaphore $semaphore): bool

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.

Parâmetros

semaphore

A Semaphore as returned by sem_get().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | semaphore expects a SysvSemaphore instance now; previously, a resource was expected.

Veja Também

  • sem_get() - Get a semaphore id
  • sem_acquire() - Acquire a semaphore


Remove a semaphore

  • « sem_release
  • shm_attach »
  • PHP Manual
  • Semaphore Funções
  • Remove a semaphore

sem_remove

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

sem_remove — Remove a semaphore

Descrição

sem_remove(SysvSemaphore $semaphore): bool

sem_remove() removes the given semaphore.

After removing the semaphore, it is no longer accessible.

Parâmetros

semaphore

A semaphore as returned by sem_get().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | semaphore expects a SysvSemaphore instance now; previously, a resource was expected.

Veja Também

  • sem_get() - Get a semaphore id
  • sem_release() - Release a semaphore
  • sem_acquire() - Acquire a semaphore


Creates or open a shared memory segment

  • « sem_remove
  • shm_detach »
  • PHP Manual
  • Semaphore Funções
  • Creates or open a shared memory segment

shm_attach

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_attach — Creates or open a shared memory segment

Descrição

shm_attach(int $key, ?int $size = null, int $permissions = 0666): SysvSharedMemory|false

shm_attach() returns an id that can be used to access the System V shared memory with the given key, the first call creates the shared memory segment with size and the optional perm-bits permissions.

A second call to shm_attach() for the same key will return a different SysvSharedMemory instance, but both instances access the same underlying shared memory. size and permissions will be ignored.

Parâmetros

key

A numeric shared memory segment ID

size

The memory size. If not provided, default to the sysvshm.init_mem in the php.ini, otherwise 10000 bytes.

permissions

The optional permission bits. Default to 0666.

Valor Retornado

Returns a SysvSharedMemory instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns an SysvSharedMemory instance now; previously, a resource was returned.
8.0.0 | size is nullable now.

Veja Também

  • shm_detach() - Disconnects from shared memory segment
  • ftok() - Convert a pathname and a project identifier to a System V IPC key


Disconnects from shared memory segment

  • « shm_attach
  • shm_get_var »
  • PHP Manual
  • Semaphore Funções
  • Disconnects from shared memory segment

shm_detach

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_detach — Disconnects from shared memory segment

Descrição

shm_detach(SysvSharedMemory $shm): bool

shm_detach() disconnects from the shared memory given by the shm created by shm_attach(). Remember, that shared memory still exist in the Unix system and the data is still present.

Parâmetros

shm

A shared memory segment obtained from shm_attach().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | shm expects a SysvSharedMemory instance now; previously, a resource was expected.

Veja Também

  • shm_attach() - Creates or open a shared memory segment
  • shm_remove() - Removes shared memory from Unix systems
  • shm_remove_var() - Removes a variable from shared memory


Returns a variable from shared memory

  • « shm_detach
  • shm_has_var »
  • PHP Manual
  • Semaphore Funções
  • Returns a variable from shared memory

shm_get_var

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_get_var — Returns a variable from shared memory

Descrição

shm_get_var(SysvSharedMemory $shm, int $key): mixed

shm_get_var() returns the variable with a given key, in the given shared memory segment. The variable is still present in the shared memory.

Parâmetros

shm

A shared memory segment obtained from shm_attach().

key

The variable key.

Valor Retornado

Returns the variable with the given key.

Registro de Alterações

Versão | Descrição
8.0.0 | shm expects a SysvSharedMemory instance now; previously, a resource was expected.

Veja Também

  • shm_has_var() - Check whether a specific entry exists
  • shm_put_var() - Inserts or updates a variable in shared memory


Check whether a specific entry exists

  • « shm_get_var
  • shm_put_var »
  • PHP Manual
  • Semaphore Funções
  • Check whether a specific entry exists

shm_has_var

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

shm_has_var — Check whether a specific entry exists

Descrição

shm_has_var(SysvSharedMemory $shm, int $key): bool

Checks whether a specific key exists inside a shared memory segment.

Parâmetros

shm

A shared memory segment obtained from shm_attach().

key

The variable key.

Valor Retornado

Returns true if the entry exists, otherwise false

Registro de Alterações

Versão | Descrição
8.0.0 | shm expects a SysvSharedMemory instance now; previously, a resource was expected.

Veja Também

  • shm_get_var() - Returns a variable from shared memory
  • shm_put_var() - Inserts or updates a variable in shared memory


Inserts or updates a variable in shared memory

  • « shm_has_var
  • shm_remove_var »
  • PHP Manual
  • Semaphore Funções
  • Inserts or updates a variable in shared memory

shm_put_var

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_put_var — Inserts or updates a variable in shared memory

Descrição

shm_put_var(SysvSharedMemory $shm, int $key, mixed $value): bool

shm_put_var() inserts or updates the value with the given key.

Warnings (E_WARNING level) will be issued if shm is not a valid SysV shared memory index or if there was not enough shared memory remaining to complete your request.

Parâmetros

shm

A shared memory segment obtained from shm_attach().

key

The variable key.

value

The variable. All variable types that serialize() supports may be used: generally this means all types except for resources and some internal objects that cannot be serialized.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | shm expects a SysvSharedMemory instance now; previously, a resource was expected.

Veja Também

  • shm_get_var() - Returns a variable from shared memory
  • shm_has_var() - Check whether a specific entry exists


Removes a variable from shared memory

  • « shm_put_var
  • shm_remove »
  • PHP Manual
  • Semaphore Funções
  • Removes a variable from shared memory

shm_remove_var

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_remove_var — Removes a variable from shared memory

Descrição

shm_remove_var(SysvSharedMemory $shm, int $key): bool

Removes a variable with a given key and frees the occupied memory.

Parâmetros

shm

A shared memory segment obtained from shm_attach().

key

The variable key.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | shm expects a SysvSharedMemory instance now; previously, a resource was expected.

Veja Também

  • shm_remove() - Removes shared memory from Unix systems


Removes shared memory from Unix systems

  • « shm_remove_var
  • SysvMessageQueue »
  • PHP Manual
  • Semaphore Funções
  • Removes shared memory from Unix systems

shm_remove

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_remove — Removes shared memory from Unix systems

Descrição

shm_remove(SysvSharedMemory $shm): bool

shm_remove() removes the shared memory shm. All data will be destroyed.

Parâmetros

shm

A shared memory segment obtained from shm_attach().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | shm expects a SysvSharedMemory instance now; previously, a resource was expected.

Veja Também

  • shm_remove_var() - Removes a variable from shared memory


The SysvMessageQueue class

(PHP 8)

Introdução

A fully opaque class which replaces a sysvmsg queue resource as of PHP 8.0.0.

Resumo da classe

final class SysvMessageQueue {
}


The SysvSemaphore class

(PHP 8)

Introdução

A fully opaque class which replaces a sysvsem resource as of PHP 8.0.0.

Resumo da classe

final class SysvSemaphore {
}


The SysvSharedMemory class

(PHP 8)

Introdução

A fully opaque class which replaces a sysvshm resource as of PHP 8.0.0.

Resumo da classe

final class SysvSharedMemory {
}


Memória Compartilhada

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Uso básico
  • Funções para Memória Compartilhada
    • shmop_close — Fecha um bloco de memória compartilhada
    • shmop_delete — Deleta um bloco de memória compartilhada
    • shmop_open — Create or open shared memory block
    • shmop_read — Read data from shared memory block
    • shmop_size — Obtém o tamanho do bloco de memória compartilhada
    • shmop_write — Write data into shared memory block
  • Shmop — The Shmop class


Introdução

Shmop é um fácil caminho para usar funções que permitem o PHP ler, escrever, criar e deletar segmentos de memória compartilhada UNIX.


  • « Dependências
  • Configurações em Execução »
  • PHP Manual
  • Instalação/Configuração
  • Instalação

Instalação

Para usar shmop você precisará compilar o PHP com o parâmetro --enable-shmop na seu configure.


Tipos de Recurso

Antes do PHP 8.0.0, esta extensão definia o tipo de recurso shmop que é um identificador para um bloco de memória compartilhada.


  • « Tipos de Recurso
  • Exemplos »
  • PHP Manual
  • Memória Compartilhada
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


  • « Constantes pré-definidas
  • Uso básico »
  • PHP Manual
  • Memória Compartilhada
  • Exemplos

Exemplos

Índice

  • Uso básico


Uso básico

Exemplo #1 Visão Geral de Operações de Memória Compartilhada

<?php

// Create 100 byte shared memory block with system id of 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!$shm_id) {
echo "Couldn't create shared memory segment\n";
}

// Get shared memory block's size
$shm_size = shmop_size($shm_id);
echo "SHM Block Size: " . $shm_size . " has been created.\n";

// Lets write a test string into shared memory
$shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
if ($shm_bytes_written != strlen("my shared memory block")) {
echo "Couldn't write the entire length of data\n";
}

// Now lets read the string back
$my_string = shmop_read($shm_id, 0, $shm_size);
if (!$my_string) {
echo "Couldn't read from shared memory block\n";
}
echo "The data inside shared memory was: " . $my_string . "\n";

//Now lets delete the block and close the shared memory segment
if (!shmop_delete($shm_id)) {
echo "Couldn't mark shared memory block for deletion.";
}
shmop_close($shm_id);

?>


Funções para Memória Compartilhada

Índice

  • shmop_close — Fecha um bloco de memória compartilhada
  • shmop_delete — Deleta um bloco de memória compartilhada
  • shmop_open — Create or open shared memory block
  • shmop_read — Read data from shared memory block
  • shmop_size — Obtém o tamanho do bloco de memória compartilhada
  • shmop_write — Write data into shared memory block


Fecha um bloco de memória compartilhada

  • « Funções para Memória Compartilhada
  • shmop_delete »
  • PHP Manual
  • Funções para Memória Compartilhada
  • Fecha um bloco de memória compartilhada

shmop_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_close — Fecha um bloco de memória compartilhada

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

shmop_close(Shmop $shmop): void

Nota:

Esta função não tem efeito. Antes do PHP 8.0.0, esta função era usada para fechar o recurso.

shmop_close() é usada para fechar um bloco de memória compartilhada.

Parâmetros

shmop

O recurso de bloco de memória compartilhada criado por shmop_open()

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | shmop agora espera uma instância de Shmop; anterioremente um resource era esperado.

Exemplos

Exemplo #1 Fechando um bloco de memória compartilhada

<?php
shmop_close($shm_id);
?>

Esse exemplo irá fechar o bloco de memória compartilhada identificado por $shm_id.

Veja Também

  • shmop_open() - Create or open shared memory block


Deleta um bloco de memória compartilhada

  • « shmop_close
  • shmop_open »
  • PHP Manual
  • Funções para Memória Compartilhada
  • Deleta um bloco de memória compartilhada

shmop_delete

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_delete — Deleta um bloco de memória compartilhada

Descrição

shmop_delete(Shmop $shmop): bool

shmop_delete() é usada para deletar um bloco de memória compartilhada.

Parâmetros

shmop

O recurso de bloco de memória compartilhada criado por shmop_open().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | shmop agora espera uma instância de Shmop; anterioremente um resource era esperado.

Exemplos

Exemplo #1 Deletando um bloco de memória compartilhada

<?php
shmop_delete($shm_id);
?>

Esse exemplo irá deletar um bloco de memória compartilhada identificado por $shm_id.


Create or open shared memory block

  • « shmop_delete
  • shmop_read »
  • PHP Manual
  • Funções para Memória Compartilhada
  • Create or open shared memory block

shmop_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_open — Create or open shared memory block

Descrição

shmop_open(
int $key,
string $mode,
int $permissions,
int $size
): Shmop|false

shmop_open() can create or open a shared memory block.

Parâmetros

key

System's id for the shared memory block. Can be passed as a decimal or hex.

mode

The flags that you can use:

  • "a" for access (sets SHM_RDONLY for shmat) use this flag when you need to open an existing shared memory segment for read only
  • "c" for create (sets IPC_CREATE) use this flag when you need to create a new shared memory segment or if a segment with the same key exists, try to open it for read and write
  • "w" for read & write access use this flag when you need to read and write to a shared memory segment, use this flag in most cases.
  • "n" create a new memory segment (sets IPC_CREATE|IPC_EXCL) use this flag when you want to create a new shared memory segment but if one already exists with the same flag, fail. This is useful for security purposes, using this you can prevent race condition exploits.

permissions

The permissions that you wish to assign to your memory segment, those are the same as permission for a file. Permissions need to be passed in octal form, like for example 0644

size

The size of the shared memory block you wish to create in bytes

Nota:

Note: the 3rd and 4th should be entered as 0 if you are opening an existing memory segment.

Valor Retornado

On success shmop_open() will return a Shmop instance that you can use to access the shared memory segment you've created. false is returned on failure.

Erros/Exceções

If mode is invalid, or size is less than or equal to zero, a ValueError is thrown. On other failures, E_WARNING is emitted.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns an Shmop instance now; previously, a resource was returned.
8.0.0 | If mode is invalid, or size is less than or equal to zero, a ValueError is thrown; previously E_WARNING was emitted instead, and the function returned false.

Exemplos

Exemplo #1 Create a new shared memory block

<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>

This example opened a shared memory block with a system id returned by ftok().

Veja Também

  • shmop_close() - Fecha um bloco de memória compartilhada
  • shmop_delete() - Deleta um bloco de memória compartilhada


Read data from shared memory block

  • « shmop_open
  • shmop_size »
  • PHP Manual
  • Funções para Memória Compartilhada
  • Read data from shared memory block

shmop_read

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_read — Read data from shared memory block

Descrição

shmop_read(Shmop $shmop, int $offset, int $size): string

shmop_read() will read a string from shared memory block.

Parâmetros

shmop

The shared memory block identifier created by shmop_open()

offset

Offset from which to start reading; must be greater than or equal to zero and less than or equal to the actual size of the shared memory segment.

size

The number of bytes to read; must be greater than or equal to zero, and the sum of offset and size must be less than or equal to the actual size of the shared memory segment. 0 reads shmop_size($shmid) - $start bytes.

Valor Retornado

Returns the data ou false em caso de falha.

Erros/Exceções

If offset or size are out of range, a ValueError is thrown.

Registro de Alterações

Versão | Descrição
8.0.0 | shmop expects a Shmop instance now; previously, a resource was expected.
8.0.0 | If offset or size are out of range, a ValueError is thrown; previously E_WARNING was emitted, and false was returned,

Exemplos

Exemplo #1 Reading shared memory block

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

This example will read 50 bytes from shared memory block and place the data inside $shm_data.

Veja Também

  • shmop_write() - Write data into shared memory block


Obtém o tamanho do bloco de memória compartilhada

  • « shmop_read
  • shmop_write »
  • PHP Manual
  • Funções para Memória Compartilhada
  • Obtém o tamanho do bloco de memória compartilhada

shmop_size

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_size — Obtém o tamanho do bloco de memória compartilhada

Descrição

shmop_size(Shmop $shmop): int

shmop_size() é usada para pegar o tamanho, em bytes do bloco de memória compartilhada.

Parâmetros

shmop

O recurso do bloco de memória compartilhada criado por shmop_open()

Valor Retornado

Retorna um inteiro, que representa o número de bytes de bloco ocupados pela memória compartilhada.

Registro de Alterações

Versão | Descrição
8.0.0 | shmop agora espera uma instância de Shmop; anterioremente um resource era esperado.

Exemplos

Exemplo #1 Pegando o tamanho do bloco de memória compartilhada

<?php
$shm_size = shmop_size($shm_id);
?>

Isso irá trazer o tamanho de um bloco de memória compartilhada identificado por $shm_id em $shm_size.


Write data into shared memory block

  • « shmop_size
  • Shmop »
  • PHP Manual
  • Funções para Memória Compartilhada
  • Write data into shared memory block

shmop_write

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_write — Write data into shared memory block

Descrição

shmop_write(Shmop $shmop, string $data, int $offset): int

shmop_write() will write a string into shared memory block.

Parâmetros

shmop

The shared memory block identifier created by shmop_open()

data

A string to write into shared memory block

offset

Specifies where to start writing data inside the shared memory segment. The offset must be greater than or equal to zero and less than or equal to the actual size of the shared memory segment.

Valor Retornado

The size of the written data.

Erros/Exceções

If offset is out of range, or a read-only shared memory segment should be written to, a ValueError is thrown.

Registro de Alterações

Versão | Descrição
8.0.0 | Prior to PHP 8.0.0, false was returned on failure.
8.0.0 | shmop expects a Shmop instance now; previously, a resource was expected.

Exemplos

Exemplo #1 Writing to shared memory block

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

This example will write data inside $my_string into shared memory block, $shm_bytes_written will contain the number of bytes written.

Veja Também

  • shmop_read() - Read data from shared memory block


The Shmop class

(PHP 8)

Introdução

A fully opaque class which replaces shmop resources as of PHP 8.0.0.

Resumo da classe

final class Shmop {
}


Sync

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • SyncMutex — A classe SyncMutex
    • SyncMutex::__construct — Constrói um novo objeto SyncMutex
    • SyncMutex::lock — Aguarda um bloqueio exclusivo
    • SyncMutex::unlock — Destrava o mutex
  • SyncSemaphore — A classe SyncSemaphore
    • SyncSemaphore::__construct — Constructs a new SyncSemaphore object
    • SyncSemaphore::lock — Decreases the count of the semaphore or waits
    • SyncSemaphore::unlock — Increases the count of the semaphore
  • SyncEvent — A classe SyncEvent
    • SyncEvent::__construct — Constrói um novo objeto SyncEvent
    • SyncEvent::fire — Ativa/configura o evento
    • SyncEvent::reset — Redefine um evento manual
    • SyncEvent::wait — Espera o evento ser ativado/configurado
  • SyncReaderWriter — A classe SyncReaderWriter
    • SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object
    • SyncReaderWriter::readlock — Waits for a read lock
    • SyncReaderWriter::readunlock — Releases a read lock
    • SyncReaderWriter::writelock — Waits for an exclusive write lock
    • SyncReaderWriter::writeunlock — Releases a write lock
  • SyncSharedMemory — A classe SyncSharedMemory
    • SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object
    • SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read — Copy data from named shared memory
    • SyncSharedMemory::size — Returns the size of the named shared memory
    • SyncSharedMemory::write — Copy data to named shared memory


Introdução

A extensão 'sync' introduz objetos de sincronização multiplataforma no PHP. Objetos de Mutex, Semaphore, Event, Reader-Writer e Shared Memory nomeados e não nomeados fornecem sincronização em nível de sistema operacional em plataformas POSIX (por exemplo, Linux) e Windows.

A limpeza automática de objetos de sincronização adquiridos ocorre durante a desmontagem da extensão. Isso significa que se o PHP encerrar prematuramente um script (por exemplo, o tempo de execução do script for excedido), os objetos não serão deixados em um estado desconhecido. A única exceção a isso é se o próprio PHP travar (por exemplo, uma sobrecarga de buffer interna).

Objetos de sincronização não nomeados não têm muita utilidade fora de um cenário multithread. Objetos não nomeados são mais úteis em conjunto com a extensão pthreads do PECL.

Nota:

Objetos nomeados requerem cuidados adicionais para serem usados em todos os sistemas. Se um objeto for instanciado com um conjunto específico de parâmetros, ele sempre deve ser instanciado com esses parâmetros, caso contrário, o objeto provavelmente acabará em um estado inconsistente até a próxima reinicialização ou até que um administrador de sistema limpe a bagunça.


Dependências

Um sistema com suporte para memória compartilhada POSIX (shm_open()) ou executando Windows.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/sync.


  • « Tipos de Recurso
  • SyncMutex »
  • PHP Manual
  • Sync
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


A classe SyncMutex

(PECL sync >= 1.0.0)

Introdução

Uma implementação nativa e multiplataforma de objetos de mutex contáveis nomeados e não nomeados.

Um mutex é um objeto de exclusão mútua que restringe o acesso a um recurso compartilhado (por exemplo, um arquivo) a uma única instância. Mutexes contáveis adquirem o mutex uma única vez e rastreiam internamente o número de vezes que o mutex é bloqueado. O mutex é desbloqueado assim que sair do escopo ou for desbloqueado o mesmo número de vezes que foi bloqueado.

Resumo da classe

class SyncMutex {
/* Métodos */
public __construct(string $name = ?)
public lock(int $wait = -1): bool
public unlock(bool $all = false): bool
}

Índice

  • SyncMutex::__construct — Constrói um novo objeto SyncMutex
  • SyncMutex::lock — Aguarda um bloqueio exclusivo
  • SyncMutex::unlock — Destrava o mutex


Constrói um novo objeto SyncMutex

  • « SyncMutex
  • SyncMutex::lock »
  • PHP Manual
  • SyncMutex
  • Constrói um novo objeto SyncMutex

SyncMutex::__construct

(PECL sync >= 1.0.0)

SyncMutex::__construct — Constrói um novo objeto SyncMutex

Descrição

public SyncMutex::__construct(string $name = ?)

Constrói um mutex contável nomeado ou sem nome.

Parâmetros

name

O nome do mutex se este for um objeto mutex nomeado.

Nota:

Se o nome já existir, deve ser possível abri-lo pelo usuário atual que o processo está executando, caso contrário, uma exceção será lançada com uma mensagem de erro sem sentido.

Valor Retornado

O novo objeto SyncMutex.

Erros/Exceções

Uma exceção é lançada se o mutex não puder ser criado ou aberto.

Exemplos

Exemplo #1 Exemplo de SyncMutex::__construct() de mutex nomeado com tempo limite de bloqueio

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
echo "Não foi possível bloquear o mutex.";

exit();
}

/* ... */

$mutex->unlock();
?>

Exemplo #2 Exemplo de SyncMutex::__construct() de mutex sem nome

<?php
$mutex = new SyncMutex();

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Veja Também

  • SyncMutex::lock() - Aguarda um bloqueio exclusivo
  • SyncMutex::unlock() - Destrava o mutex


Aguarda um bloqueio exclusivo

  • « SyncMutex::__construct
  • SyncMutex::unlock »
  • PHP Manual
  • SyncMutex
  • Aguarda um bloqueio exclusivo

SyncMutex::lock

(PECL sync >= 1.0.0)

SyncMutex::lock — Aguarda um bloqueio exclusivo

Descrição

public SyncMutex::lock(int $wait = -1): bool

Obtém um bloqueio exclusivo em um objeto SyncMutex. Se o bloqueio já estiver adquirido, isso incrementa um contador interno.

Parâmetros

wait

O número de milissegundos a aguardar pelo bloqueio exclusivo. Um valor de -1 é infinito.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SyncMutex::lock()

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
echo "Não foi possível bloquear o mutex.";

exit();
}

/* ... */

$mutex->unlock();
?>

Veja Também

  • SyncMutex::unlock() - Destrava o mutex


Destrava o mutex

  • « SyncMutex::lock
  • SyncSemaphore »
  • PHP Manual
  • SyncMutex
  • Destrava o mutex

SyncMutex::unlock

(PECL sync >= 1.0.0)

SyncMutex::unlock — Destrava o mutex

Descrição

public SyncMutex::unlock(bool $all = false): bool

Diminui o contador interno de um objeto SyncMutex. Quando o contador interno atinge zero, o bloqueio real no objeto é liberado.

Parâmetros

all

Especifica se deve ou não definir o contador interno como zero e, portanto, liberar o bloqueio.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SyncMutex::unlock()

<?php
$mutex = new SyncMutex("UniqueName");

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Veja Também

  • SyncMutex::lock() - Aguarda um bloqueio exclusivo


A classe SyncSemaphore

(PECL sync >= 1.0.0)

Introdução

Uma implementação nativa e multiplataforma de objetos de semáforo nomeados e não nomeados.

Um semáforo restringe o acesso a um recurso limitado a um número limitado de instâncias. Semáforos diferem de mutexes no sentido de que podem permitir que mais de uma instância acesse um recurso ao mesmo tempo, enquanto um mutex permite apenas uma instância por vez.

Resumo da classe

class SyncSemaphore {
/* Métodos */
public __construct(string $name = ?, int $initialval = 1, bool $autounlock = true)
public lock(int $wait = -1): bool
public unlock(int &$prevcount = ?): bool
}

Índice

  • SyncSemaphore::__construct — Constructs a new SyncSemaphore object
  • SyncSemaphore::lock — Decreases the count of the semaphore or waits
  • SyncSemaphore::unlock — Increases the count of the semaphore


Constructs a new SyncSemaphore object

  • « SyncSemaphore
  • SyncSemaphore::lock »
  • PHP Manual
  • SyncSemaphore
  • Constructs a new SyncSemaphore object

SyncSemaphore::__construct

(PECL sync >= 1.0.0)

SyncSemaphore::__construct — Constructs a new SyncSemaphore object

Descrição

public SyncSemaphore::__construct(string $name = ?, int $initialval = 1, bool $autounlock = true)

Constructs a named or unnamed semaphore.

Parâmetros

name

The name of the semaphore if this is a named semaphore object.

Nota:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

initialval

The initial value of the semaphore. This is the number of locks that may be obtained.

autounlock

Specifies whether or not to automatically unlock the semaphore at the conclusion of the PHP script.

Aviso

If an object is: A named semaphore with an autounlock of false, the object is locked, and the PHP script concludes before the object is unlocked, then the underlying semaphore will end up in an inconsistent state.

Valor Retornado

The new SyncSemaphore object.

Erros/Exceções

An exception is thrown if the semaphore cannot be created or opened.

Exemplos

Exemplo #1 SyncSemaphore::__construct() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
echo "Unable to lock semaphore.";

exit();
}

/* ... */

$semaphore->unlock();
?>

Veja Também

  • SyncSemaphore::lock() - Decreases the count of the semaphore or waits
  • SyncSemaphore::unlock() - Increases the count of the semaphore


Decreases the count of the semaphore or waits

  • « SyncSemaphore::__construct
  • SyncSemaphore::unlock »
  • PHP Manual
  • SyncSemaphore
  • Decreases the count of the semaphore or waits

SyncSemaphore::lock

(PECL sync >= 1.0.0)

SyncSemaphore::lock — Decreases the count of the semaphore or waits

Descrição

public SyncSemaphore::lock(int $wait = -1): bool

Decreases the count of a SyncSemaphore object or waits until the semaphore becomes non-zero.

Parâmetros

wait

The number of milliseconds to wait for the semaphore. A value of -1 is infinite.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SyncSemaphore::lock() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
echo "Unable to lock semaphore.";

exit();
}

/* ... */

$semaphore->unlock();
?>

Veja Também

  • SyncSemaphore::unlock() - Increases the count of the semaphore


Increases the count of the semaphore

  • « SyncSemaphore::lock
  • SyncEvent »
  • PHP Manual
  • SyncSemaphore
  • Increases the count of the semaphore

SyncSemaphore::unlock

(PECL sync >= 1.0.0)

SyncSemaphore::unlock — Increases the count of the semaphore

Descrição

public SyncSemaphore::unlock(int &$prevcount = ?): bool

Increases the count of a SyncSemaphore object.

Parâmetros

prevcount

Returns the previous count of the semaphore.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SyncSemaphore::unlock() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
echo "Unable to lock semaphore.";

exit();
}

/* ... */

$semaphore->unlock();
?>

Veja Também

  • SyncSemaphore::lock() - Decreases the count of the semaphore or waits


A classe SyncEvent

(PECL sync >= 1.0.0)

Introdução

Uma implementação nativa e multiplataforma de objetos de evento nomeados e não nomeados. Ambos os objetos de evento automáticos e manuais são suportados.

Um objeto de evento espera, sem fazer polling, que o objeto seja acionado/configurado. Uma instância aguarda o objeto de evento enquanto outra instancia o aciona/configura. Objetos de evento são úteis onde um processo em execução contínua, de outra forma, faria polling em um recurso (por exemplo, verificando se dados enviados precisam ser processados).

Resumo da classe

class SyncEvent {
/* Métodos */
public __construct(string $name = ?, bool $manual = false, bool $prefire = false)
public fire(): bool
public reset(): bool
public wait(int $wait = -1): bool
}

Índice

  • SyncEvent::__construct — Constrói um novo objeto SyncEvent
  • SyncEvent::fire — Ativa/configura o evento
  • SyncEvent::reset — Redefine um evento manual
  • SyncEvent::wait — Espera o evento ser ativado/configurado


Constrói um novo objeto SyncEvent

  • « SyncEvent
  • SyncEvent::fire »
  • PHP Manual
  • SyncEvent
  • Constrói um novo objeto SyncEvent

SyncEvent::__construct

(PECL sync >= 1.0.0)

SyncEvent::__construct — Constrói um novo objeto SyncEvent

Descrição

public SyncEvent::__construct(string $name = ?, bool $manual = false, bool $prefire = false)

Constrói um objeto de evento nomeado ou sem nome.

Parâmetros

name

O nome do evento se este for um objeto de evento nomeado.

Nota:

Se o nome já existir, ele deve poder ser aberto pelo usuário atual que o processo está executando, caso contrário uma exceção será lançada com uma mensagem de erro sem sentido.

manual

Especifica se o objeto de evento deve ser redefinido manualmente ou não.

Nota:

Objetos de evento com redefinição manual permitem que todos os processos em espera passem até que o objeto seja redefinido.

prefire

Especifica se o objeto de evento deve ser pré-ativado (sinalizado) ou não.

Nota:

Só tem impacto se o processo/thread chamador for o primeiro a criar o objeto.

Valor Retornado

O novo objeto SyncEvent.

Erros/Exceções

Uma exceção é lançada se o objeto de evento não puder ser criado ou aberto.

Exemplos

Exemplo #1 Exemplo de SyncEvent::__construct()

<?php
// Em uma aplicação web:
$event = new SyncEvent("GetAppReport");
$event->fire();

// Em um cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Registro de Alterações

Versão | Descrição
PECL sync 1.1.0 | Adicionado prefire.

Veja Também

  • SyncEvent::fire() - Ativa/configura o evento
  • SyncEvent::reset() - Redefine um evento manual
  • SyncEvent::wait() - Espera o evento ser ativado/configurado


Ativa/configura o evento

  • « SyncEvent::__construct
  • SyncEvent::reset »
  • PHP Manual
  • SyncEvent
  • Ativa/configura o evento

SyncEvent::fire

(PECL sync >= 1.0.0)

SyncEvent::fire — Ativa/configura o evento

Descrição

public SyncEvent::fire(): bool

Ativa/configura um objeto SyncEvent. Permite que múltiplos threads que estão esperando passem se o objeto de evento foi criado com um valor manual de true.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SyncEvent::fire()

<?php
// Em uma aplicação web:
$event = new SyncEvent("GetAppReport");
$event->fire();

// Em um cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Veja Também

  • SyncEvent::reset() - Redefine um evento manual
  • SyncEvent::wait() - Espera o evento ser ativado/configurado


Redefine um evento manual

  • « SyncEvent::fire
  • SyncEvent::wait »
  • PHP Manual
  • SyncEvent
  • Redefine um evento manual

SyncEvent::reset

(PECL sync >= 1.0.0)

SyncEvent::reset — Redefine um evento manual

Descrição

public SyncEvent::reset(): bool

Redefine um objeto SyncEvent que foi ativado/configurado. Válido apenas para objetos de evento manual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SyncEvent::reset()

<?php
// Em uma aplicação web:
$event = new SyncEvent("DemoApplication", true);
$event->wait();

// Em um cron job
$event = new SyncEvent("DemoApplication", true);
$event->reset();
/* ... Faça alguma(s) tarefa(s) de manutenção ... */
$event->fire();
?>

Veja Também

  • SyncEvent::fire() - Ativa/configura o evento
  • SyncEvent::reset()
  • SyncEvent::wait() - Espera o evento ser ativado/configurado


Espera o evento ser ativado/configurado

  • « SyncEvent::reset
  • SyncReaderWriter »
  • PHP Manual
  • SyncEvent
  • Espera o evento ser ativado/configurado

SyncEvent::wait

(PECL sync >= 1.0.0)

SyncEvent::wait — Espera o evento ser ativado/configurado

Descrição

public SyncEvent::wait(int $wait = -1): bool

Espera pelo objeto SyncEvent ser ativado.

Parâmetros

wait

O número de milissegundos para esperar o evento ser ativado/configurado. Um valor de -1 é infinito.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SyncEvent::wait()

<?php
// Em uma aplicação web:
$event = new SyncEvent("GetAppReport");
$event->fire();

// Em um cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Veja Também

  • SyncEvent::fire() - Ativa/configura o evento


A classe SyncReaderWriter

(PECL sync >= 1.0.0)

Introdução

Uma implementação nativa e multiplataforma de objetos de leitura e escrita nomeados e não nomeados.

Um objeto de leitura e escrita permite que muitos leitores ou um escritor acessem um recurso. Esta é uma solução eficiente para gerenciar recursos onde o acesso será principalmente de leitura, mas ocasionalmente é necessário acesso exclusivo de escrita.

Resumo da classe

class SyncReaderWriter {
/* Métodos */
public __construct(string $name = ?, int $autounlock = 1)
public readlock(int $wait = -1): bool
public readunlock(): bool
public writelock(int $wait = -1): bool
public writeunlock(): bool
}

Índice

  • SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object
  • SyncReaderWriter::readlock — Waits for a read lock
  • SyncReaderWriter::readunlock — Releases a read lock
  • SyncReaderWriter::writelock — Waits for an exclusive write lock
  • SyncReaderWriter::writeunlock — Releases a write lock


Constructs a new SyncReaderWriter object

  • « SyncReaderWriter
  • SyncReaderWriter::readlock »
  • PHP Manual
  • SyncReaderWriter
  • Constructs a new SyncReaderWriter object

SyncReaderWriter::__construct

(PECL sync >= 1.0.0)

SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object

Descrição

public SyncReaderWriter::__construct(string $name = ?, int $autounlock = 1)

Constructs a named or unnamed reader-writer object.

Parâmetros

name

The name of the reader-writer if this is a named reader-writer object.

Nota:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

Nota: On Windows, name must not contain backslashes.

autounlock

Specifies whether or not to automatically unlock the reader-writer at the conclusion of the PHP script.

Aviso

If an object is: A named reader-writer with an autounlock of FALSE, the object is locked for either reading or writing, and the PHP script concludes before the object is unlocked, then the underlying objects will end up in an inconsistent state.

Valor Retornado

The new SyncReaderWriter object.

Erros/Exceções

An exception is thrown if the reader-writer cannot be created or opened.

Exemplos

Exemplo #1 SyncReaderWriter::__construct() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();

$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Veja Também

  • SyncReaderWriter::readlock() - Waits for a read lock
  • SyncReaderWriter::readunlock() - Releases a read lock
  • SyncReaderWriter::writelock() - Waits for an exclusive write lock
  • SyncReaderWriter::writeunlock() - Releases a write lock


Waits for a read lock

  • « SyncReaderWriter::__construct
  • SyncReaderWriter::readunlock »
  • PHP Manual
  • SyncReaderWriter
  • Waits for a read lock

SyncReaderWriter::readlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readlock — Waits for a read lock

Descrição

public SyncReaderWriter::readlock(int $wait = -1): bool

Obtains a read lock on a SyncReaderWriter object.

Parâmetros

wait

The number of milliseconds to wait for a lock. A value of -1 is infinite.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SyncReaderWriter::readlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Veja Também

  • SyncReaderWriter::readunlock() - Releases a read lock


Releases a read lock

  • « SyncReaderWriter::readlock
  • SyncReaderWriter::writelock »
  • PHP Manual
  • SyncReaderWriter
  • Releases a read lock

SyncReaderWriter::readunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readunlock — Releases a read lock

Descrição

public SyncReaderWriter::readunlock(): bool

Releases a read lock on a SyncReaderWriter object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SyncReaderWriter::readunlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Veja Também

  • SyncReaderWriter::readlock() - Waits for a read lock


Waits for an exclusive write lock

  • « SyncReaderWriter::readunlock
  • SyncReaderWriter::writeunlock »
  • PHP Manual
  • SyncReaderWriter
  • Waits for an exclusive write lock

SyncReaderWriter::writelock

(PECL sync >= 1.0.0)

SyncReaderWriter::writelock — Waits for an exclusive write lock

Descrição

public SyncReaderWriter::writelock(int $wait = -1): bool

Obtains an exclusive write lock on a SyncReaderWriter object.

Parâmetros

wait

The number of milliseconds to wait for a lock. A value of -1 is infinite.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SyncReaderWriter::writelock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Veja Também

  • SyncReaderWriter::writeunlock() - Releases a write lock


Releases a write lock

  • « SyncReaderWriter::writelock
  • SyncSharedMemory »
  • PHP Manual
  • SyncReaderWriter
  • Releases a write lock

SyncReaderWriter::writeunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::writeunlock — Releases a write lock

Descrição

public SyncReaderWriter::writeunlock(): bool

Releases a write lock on a SyncReaderWriter object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SyncReaderWriter::writeunlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Veja Também

  • SyncReaderWriter::writelock() - Waits for an exclusive write lock


A classe SyncSharedMemory

(PECL sync >= 1.1.0)

Introdução

Uma implementação nativa, consistente e multiplataforma de objetos de memória compartilhada nomeados.

Memória compartilhada permite que dois processos separados se comuniquem sem a necessidade de tubos ou sockets complexos. Existem várias implementações de memória compartilhada baseadas em inteiros para PHP. A memória compartilhada nomeada é uma alternativa.

Objetos de sincronização (por exemplo, SyncMutex) ainda são necessários para proteger a maioria dos usos de memória compartilhada.

Resumo da classe

class SyncSharedMemory {
/* Métodos */
public __construct(string $name, int $size)
public first(): bool
public read(int $start = 0, int $length = ?)
public size(): int
public write(string $string = ?, int $start = 0)
}

Índice

  • SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::read — Copy data from named shared memory
  • SyncSharedMemory::size — Returns the size of the named shared memory
  • SyncSharedMemory::write — Copy data to named shared memory


Constructs a new SyncSharedMemory object

  • « SyncSharedMemory
  • SyncSharedMemory::first »
  • PHP Manual
  • SyncSharedMemory
  • Constructs a new SyncSharedMemory object

SyncSharedMemory::__construct

(PECL sync >= 1.1.0)

SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object

Descrição

public SyncSharedMemory::__construct(string $name, int $size)

Constructs a named shared memory object.

Parâmetros

name

The name of the shared memory object.

Nota:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

size

The size, in bytes, of shared memory to reserve.

Nota:

The amount of memory cannot be resized later. Request sufficient storage up front.

Valor Retornado

The new SyncSharedMemory object.

Erros/Exceções

An exception is thrown if the shared memory object cannot be created or opened.

Exemplos

Exemplo #1 SyncSharedMemory::__construct() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Do first time initialization work here.
}

$result = $mem->write(json_encode(array("name" => "my_report.txt")));
?>

Veja Também

  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::size() - Returns the size of the named shared memory
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Check to see if the object is the first instance system-wide of named shared memory

  • « SyncSharedMemory::__construct
  • SyncSharedMemory::read »
  • PHP Manual
  • SyncSharedMemory
  • Check to see if the object is the first instance system-wide of named shared memory

SyncSharedMemory::first

(PECL sync >= 1.1.0)

SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory

Descrição

public SyncSharedMemory::first(): bool

Retrieves the system-wide first instance status of a SyncSharedMemory object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SyncSharedMemory::first() example

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Do first time initialization work here.
}

var_dump($mem->first());

$mem2 = new SyncSharedMemory("AppReportName", 1024);

var_dump($mem2->first());
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)

Veja Também

  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Copy data from named shared memory

  • « SyncSharedMemory::first
  • SyncSharedMemory::size »
  • PHP Manual
  • SyncSharedMemory
  • Copy data from named shared memory

SyncSharedMemory::read

(PECL sync >= 1.1.0)

SyncSharedMemory::read — Copy data from named shared memory

Descrição

public SyncSharedMemory::read(int $start = 0, int $length = ?)

Copies data from named shared memory.

Parâmetros

start

The start/offset, in bytes, to begin reading.

Nota:

If the value is negative, the starting position will begin at the specified number of bytes from the end of the shared memory segment.

length

The number of bytes to read.

Nota:

If unspecified, reading will stop at the end of the shared memory segment.

If the value is negative, reading will stop the specified number of bytes from the end of the shared memory segment.

Valor Retornado

A string containing the data read from shared memory.

Exemplos

Exemplo #1 SyncSharedMemory::__construct() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Do first time initialization work here.
}

$result = $mem->write("report.txt");

$result = $mem->read(3, -4);
var_dump($result);
?>

O exemplo acima produzirá algo semelhante a:

string(3) "ort"

Veja Também

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read()


Returns the size of the named shared memory

  • « SyncSharedMemory::read
  • SyncSharedMemory::write »
  • PHP Manual
  • SyncSharedMemory
  • Returns the size of the named shared memory

SyncSharedMemory::size

(PECL sync >= 1.1.0)

SyncSharedMemory::size — Returns the size of the named shared memory

Descrição

public SyncSharedMemory::size(): int

Retrieves the shared memory size of a SyncSharedMemory object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An integer containing the size of the shared memory. This will be the same size that was passed to the constructor.

Exemplos

Exemplo #1 SyncSharedMemory::size() example

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
var_dump($mem->size());
?>

O exemplo acima produzirá algo semelhante a:

int(1024)

Veja Também

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Copy data to named shared memory

  • « SyncSharedMemory::size
  • Outras Extensões Básicas »
  • PHP Manual
  • SyncSharedMemory
  • Copy data to named shared memory

SyncSharedMemory::write

(PECL sync >= 1.1.0)

SyncSharedMemory::write — Copy data to named shared memory

Descrição

public SyncSharedMemory::write(string $string = ?, int $start = 0)

Copies data to named shared memory.

Parâmetros

string

The data to write to shared memory.

Nota:

If the size of the data exceeds the size of the shared memory, the number of bytes written returned will be less than the length of the input.

start

The start/offset, in bytes, to begin writing.

Nota:

If the value is negative, the starting position will begin at the specified number of bytes from the end of the shared memory segment.

Valor Retornado

An integer containing the number of bytes written to shared memory.

Exemplos

Exemplo #1 SyncSharedMemory::write() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Do first time initialization work here.
}

$result = $mem->write("report.txt");
var_dump($result);

$result = $mem->write("report.txt", -3);
var_dump($result);
?>

O exemplo acima produzirá algo semelhante a:

int(10)
int(3)

Veja Também

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::write()
  • SyncSharedMemory::read() - Copy data from named shared memory


Outras Extensões Básicas

  • GeoIP — Geo IP Location
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • GeoIP Funções
  • FANN — FANN (Fast Artificial Neural Network)
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Fann Funções
    • FANNConnection — The FANNConnection class
  • Igbinary
    • Introdução
    • Instalação/Configuração
    • Igbinary Funções
  • JSON — Notação de Objetos do JavaScript
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • JsonException — A classe JsonException
    • JsonSerializable — A interface JsonSerializable
    • Funções da JSON
  • Simdjson
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Simdjson Funções
    • SimdJsonException — The SimdJsonException class
    • SimdJsonValueError — The SimdJsonValueError class
  • Lua
    • Introdução
    • Instalação/Configuração
    • Lua — A Classw Lua
    • LuaClosure — A Classe LuaClosure
  • LuaSandbox
    • Introdução
    • Instalação/Configuração
    • Differences from Standard Lua
    • Exemplos
    • LuaSandbox — The LuaSandbox class
    • LuaSandboxFunction — The LuaSandboxFunction class
    • LuaSandboxError — The LuaSandboxError class
    • LuaSandboxErrorError — The LuaSandboxErrorError class
    • LuaSandboxFatalError — The LuaSandboxFatalError class
    • LuaSandboxMemoryError — The LuaSandboxMemoryError class
    • LuaSandboxRuntimeError — The LuaSandboxRuntimeError class
    • LuaSandboxSyntaxError — The LuaSandboxSyntaxError class
    • LuaSandboxTimeoutError — The LuaSandboxTimeoutError class
  • Misc. — Funções Miscelâneas
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Misc. Funções
    • Registro de Alterações
  • Random — Random Number Generators and Functions Related to Randomness
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Random Funções
    • Random\Randomizer — The Random\Randomizer class
    • Random\Engine — The Random\Engine interface
    • Random\CryptoSafeEngine — The Random\CryptoSafeEngine interface
    • Random\Engine\Secure — The Random\Engine\Secure class
    • Random\Engine\Mt19937 — The Random\Engine\Mt19937 class
    • Random\Engine\PcgOneseq128XslRr64 — The Random\Engine\PcgOneseq128XslRr64 class
    • Random\Engine\Xoshiro256StarStar — The Random\Engine\Xoshiro256StarStar class
    • Random\RandomError — The Random\RandomError class
    • Random\BrokenRandomEngineError — The Random\BrokenRandomEngineError class
    • Random\RandomException — The Random\RandomException class
  • Seaslog
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Seaslog Funções
    • SeasLog — The SeasLog class
  • SPL — Standard PHP Library (SPL)
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Estruturas de Dados
    • Iteradores
    • Interfaces
    • Exceções
    • Funções da SPL
    • Manipulação de Arquivos
    • Classes e Interfaces Diversas
  • Fluxos
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Filtros de Fluxo
    • Contextos de Fluxo
    • Erros de Fluxo
    • Exemplos
    • php_user_filter — A clase php_user_filter
    • streamWrapper — A classe streamWrapper
    • Funções de Fluxo
  • Swoole
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções Swoole
    • Swoole\Async — A classe Swoole\Async
    • Swoole\Atomic — A classe Swoole\Atomic
    • Swoole\Buffer — A classe Swoole\Buffer
    • Swoole\Channel — A classe Swoole\Channel
    • Swoole\Client — A classe Swoole\Client
    • Swoole\Connection\Iterator — A classe Swoole\Connection\Iterator
    • Swoole\Coroutine — A classe Swoole\Coroutine
    • Swoole\Event — A classe Swoole\Event
    • Swoole\Exception — A classe Swoole\Exception
    • Swoole\Http\Client — A classe Swoole\Http\Client
    • Swoole\Http\Request — A classe Swoole\Http\Request
    • Swoole\Http\Response — A classe Swoole\Http\Response
    • Swoole\Http\Server — A classe Swoole\Http\Server
    • Swoole\Lock — A classe Swoole\Lock
    • Swoole\Mmap — A classe Swoole\Mmap
    • Swoole\MySQL — A classe Swoole\MySQL
    • Swoole\MySQL\Exception — A classe Swoole\MySQL\Exception
    • Swoole\Process — A classe Swoole\Process
    • Swoole\Redis\Server — A classe Swoole\Redis\Server
    • Swoole\Serialize — A classe Swoole\Serialize
    • Swoole\Server — A classe Swoole\Server
    • Swoole\Table — A classe Swoole\Table
    • Swoole\Timer — A classe Swoole\Timer
    • Swoole\WebSocket\Frame — A classe Swoole\WebSocket\Frame
    • Swoole\WebSocket\Server — A classe Swoole\WebSocket\Server
  • Tidy
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • tidy — The tidy class
    • tidyNode — The tidyNode class
    • Tidy Funções
  • Tokenizer
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • PhpToken — The PhpToken class
    • Funções da Tokenizer
  • URLs
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • URL Funções
  • V8js — V8 Javascript Engine Integration
    • Introdução
    • Instalação/Configuração
    • Exemplos
    • V8Js — The V8Js class
    • V8JsException — The V8JsException class
  • Yaml — YAML Data Serialization
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Callbacks
    • Yaml Funções
  • Yaf — Yet Another Framework
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Application Configuration
    • Yaf_Application — The Yaf_Application class
    • Yaf_Bootstrap_Abstract — The Yaf_Bootstrap_Abstract class
    • Yaf_Dispatcher — The Yaf_Dispatcher class
    • Yaf_Config_Abstract — The Yaf_Config_Abstract class
    • Yaf_Config_Ini — The Yaf_Config_Ini class
    • Yaf_Config_Simple — The Yaf_Config_Simple class
    • Yaf_Controller_Abstract — The Yaf_Controller_Abstract class
    • Yaf_Action_Abstract — The Yaf_Action_Abstract class
    • Yaf_View_Interface — The Yaf_View_Interface class
    • Yaf_View_Simple — The Yaf_View_Simple class
    • Yaf_Loader — The Yaf_Loader class
    • Yaf_Plugin_Abstract — The Yaf_Plugin_Abstract class
    • Yaf_Registry — The Yaf_Registry class
    • Yaf_Request_Abstract — The Yaf_Request_Abstract class
    • Yaf_Request_Http — The Yaf_Request_Http class
    • Yaf_Request_Simple — The Yaf_Request_Simple class
    • Yaf_Response_Abstract — The Yaf_Response_Abstract class
    • Yaf_Route_Interface — The Yaf_Route_Interface class
    • Yaf_Route_Map — The Yaf_Route_Map class
    • Yaf_Route_Regex — The Yaf_Route_Regex class
    • Yaf_Route_Rewrite — The Yaf_Route_Rewrite class
    • Yaf_Router — The Yaf_Router class
    • Yaf_Route_Simple — The Yaf_Route_Simple class
    • Yaf_Route_Static — The Yaf_Route_Static class
    • Yaf_Route_Supervar — The Yaf_Route_Supervar class
    • Yaf_Session — The Yaf_Session class
    • Yaf_Exception — The Yaf_Exception class
    • Yaf_Exception_TypeError — The Yaf_Exception_TypeError class
    • Yaf_Exception_StartupError — The Yaf_Exception_StartupError class
    • Yaf_Exception_DispatchFailed — The Yaf_Exception_DispatchFailed class
    • Yaf_Exception_RouterFailed — The Yaf_Exception_RouterFailed class
    • Yaf_Exception_LoadFailed — The Yaf_Exception_LoadFailed class
    • Yaf_Exception_LoadFailed_Module — The Yaf_Exception_LoadFailed_Module class
    • Yaf_Exception_LoadFailed_Controller — The Yaf_Exception_LoadFailed_Controller class
    • Yaf_Exception_LoadFailed_Action — The Yaf_Exception_LoadFailed_Action class
    • Yaf_Exception_LoadFailed_View — The Yaf_Exception_LoadFailed_View class
  • Yaconf
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Yaconf — The Yaconf class
  • Taint
    • Introdução
    • Instalação/Configuração
    • More Details
    • Taint Funções
  • Estruturas de Dados
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Ds\Collection — A interface Collection
    • Ds\Hashable — A interface Hashable
    • Ds\Sequence — A Interface Sequence
    • Ds\Vector — A classe Vector
    • Ds\Deque — A classe Deque
    • Ds\Map — A classe Map
    • Ds\Pair — A classe Pair
    • Ds\Set — A classe Set
    • Ds\Stack — A classe Stack
    • Ds\Queue — A classe Queue
    • Ds\PriorityQueue — A classe PriorityQueue
  • var_representation
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • var_representation Funções


Geo IP Location

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • GeoIP Funções
    • geoip_asnum_by_name — Get the Autonomous System Numbers (ASN)
    • geoip_continent_code_by_name — Get the two letter continent code
    • geoip_country_code_by_name — Get the two letter country code
    • geoip_country_code3_by_name — Get the three letter country code
    • geoip_country_name_by_name — Get the full country name
    • geoip_database_info — Get GeoIP Database information
    • geoip_db_avail — Determine if GeoIP Database is available
    • geoip_db_filename — Returns the filename of the corresponding GeoIP Database
    • geoip_db_get_all_info — Returns detailed information about all GeoIP database types
    • geoip_domain_by_name — Get the second level domain name
    • geoip_id_by_name — Get the Internet connection type
    • geoip_isp_by_name — Get the Internet Service Provider (ISP) name
    • geoip_netspeedcell_by_name — Get the Internet connection speed
    • geoip_org_by_name — Get the organization name
    • geoip_record_by_name — Returns the detailed City information found in the GeoIP Database
    • geoip_region_by_name — Get the country code and region
    • geoip_region_name_by_code — Returns the region name for some country and region code combo
    • geoip_setup_custom_directory — Set a custom directory for the GeoIP database
    • geoip_time_zone_by_country_and_region — Returns the time zone for some country and region code combo


Introdução

The GeoIP extension allows you to find the location of an IP address. City, State, Country, Longitude, Latitude, and other information as all, such as ISP and connection type can be obtained with the help of GeoIP.

Aviso

This extension does not support MaxMind's current "GeoIP2" databases, only the "GeoIP legacy" database files.


Dependências

This extension requires the GeoIP C library version 1.4.0 or higher to be installed. You can grab the latest version from » http://www.maxmind.com/app/c and compile it yourself.

By default, you will only have access to the Free GeoIP Country or GeoLite City databases. While this module can work with other types of database, you must buy a commercial license from » Maxmind.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/geoip.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

GeoIP Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
geoip.custom_directory | "" | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

geoip.custom_directory string

Empty by default, but can be set to force a different database path than the one compiled in the library.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

GEOIP_COUNTRY_EDITION (int)
GEOIP_REGION_EDITION_REV0 (int)
GEOIP_CITY_EDITION_REV0 (int)
GEOIP_ORG_EDITION (int)
GEOIP_ISP_EDITION (int)
GEOIP_CITY_EDITION_REV1 (int)
GEOIP_REGION_EDITION_REV1 (int)
GEOIP_PROXY_EDITION (int)
GEOIP_ASNUM_EDITION (int)
GEOIP_NETSPEED_EDITION (int)
GEOIP_DOMAIN_EDITION (int)

The following constants are for net speed:

GEOIP_UNKNOWN_SPEED (int)
GEOIP_DIALUP_SPEED (int)
GEOIP_CABLEDSL_SPEED (int)
GEOIP_CORPORATE_SPEED (int)


GeoIP Funções

Índice

  • geoip_asnum_by_name — Get the Autonomous System Numbers (ASN)
  • geoip_continent_code_by_name — Get the two letter continent code
  • geoip_country_code_by_name — Get the two letter country code
  • geoip_country_code3_by_name — Get the three letter country code
  • geoip_country_name_by_name — Get the full country name
  • geoip_database_info — Get GeoIP Database information
  • geoip_db_avail — Determine if GeoIP Database is available
  • geoip_db_filename — Returns the filename of the corresponding GeoIP Database
  • geoip_db_get_all_info — Returns detailed information about all GeoIP database types
  • geoip_domain_by_name — Get the second level domain name
  • geoip_id_by_name — Get the Internet connection type
  • geoip_isp_by_name — Get the Internet Service Provider (ISP) name
  • geoip_netspeedcell_by_name — Get the Internet connection speed
  • geoip_org_by_name — Get the organization name
  • geoip_record_by_name — Returns the detailed City information found in the GeoIP Database
  • geoip_region_by_name — Get the country code and region
  • geoip_region_name_by_code — Returns the region name for some country and region code combo
  • geoip_setup_custom_directory — Set a custom directory for the GeoIP database
  • geoip_time_zone_by_country_and_region — Returns the time zone for some country and region code combo


Get the Autonomous System Numbers (ASN)

  • « GeoIP Funções
  • geoip_continent_code_by_name »
  • PHP Manual
  • GeoIP Funções
  • Get the Autonomous System Numbers (ASN)

geoip_asnum_by_name

(PECL geoip >= 1.1.0)

geoip_asnum_by_name — Get the Autonomous System Numbers (ASN)

Descrição

geoip_asnum_by_name(string $hostname): string

The geoip_asnum_by_name() function will return the Autonomous System Numbers (ASN) associated with an IP address.

Parâmetros

hostname

The hostname or IP address.

Valor Retornado

Returns the ASN on success, or false if the address cannot be found in the database.

Exemplos

Exemplo #1 A geoip_asnum_by_name() example

This will output the ASN of the host www.example.com.

<?php
$asn = geoip_asnum_by_name('www.example.com');

if ($asn) {
echo 'The ASN is: ' . $asn;
}
?>

O exemplo acima produzirá:

The ASN is: AS15133 EdgeCast Networks, Inc


Get the two letter continent code

  • « geoip_asnum_by_name
  • geoip_country_code_by_name »
  • PHP Manual
  • GeoIP Funções
  • Get the two letter continent code

geoip_continent_code_by_name

(PECL geoip >= 1.0.3)

geoip_continent_code_by_name — Get the two letter continent code

Descrição

geoip_continent_code_by_name(string $hostname): string

The geoip_continent_code_by_name() function will return the two letter continent code corresponding to a hostname or an IP address.

Parâmetros

hostname

The hostname or IP address whose location is to be looked-up.

Valor Retornado

Returns the two letter continent code on success, or false if the address cannot be found in the database.

Continent codes
Code | Continent name
AF | Africa
AN | Antarctica
AS | Asia
EU | Europe
NA | North america
OC | Oceania
SA | South america

Exemplos

Exemplo #1 A geoip_continent_code_by_name() example

This will print where the host example.com is located.

<?php
$continent = geoip_continent_code_by_name('www.example.com');
if ($continent) {
echo 'This host is located in: ' . $continent;
}
?>

O exemplo acima produzirá:

This host is located in: NA

Veja Também

  • geoip_country_code_by_name() - Get the two letter country code


Get the two letter country code

  • « geoip_continent_code_by_name
  • geoip_country_code3_by_name »
  • PHP Manual
  • GeoIP Funções
  • Get the two letter country code

geoip_country_code_by_name

(PECL geoip >= 0.2.0)

geoip_country_code_by_name — Get the two letter country code

Descrição

geoip_country_code_by_name(string $hostname): string

The geoip_country_code_by_name() function will return the two letter country code corresponding to a hostname or an IP address.

Parâmetros

hostname

The hostname or IP address whose location is to be looked-up.

Valor Retornado

Returns the two letter ISO country code on success, or false if the address cannot be found in the database.

Exemplos

Exemplo #1 A geoip_country_code_by_name() example

This will print where the host example.com is located.

<?php
$country = geoip_country_code_by_name('www.example.com');
if ($country) {
echo 'This host is located in: ' . $country;
}
?>

O exemplo acima produzirá:

This host is located in: US

Notas

Cuidado

Please see » http://www.maxmind.com/en/iso3166 for a complete list of possible return values, including special codes.

Veja Também

  • geoip_country_code3_by_name() - Get the three letter country code
  • geoip_country_name_by_name() - Get the full country name


Get the three letter country code

  • « geoip_country_code_by_name
  • geoip_country_name_by_name »
  • PHP Manual
  • GeoIP Funções
  • Get the three letter country code

geoip_country_code3_by_name

(PECL geoip >= 0.2.0)

geoip_country_code3_by_name — Get the three letter country code

Descrição

geoip_country_code3_by_name(string $hostname): string

The geoip_country_code3_by_name() function will return the three letter country code corresponding to a hostname or an IP address.

Parâmetros

hostname

The hostname or IP address whose location is to be looked-up.

Valor Retornado

Returns the three letter country code on success, or false if the address cannot be found in the database.

Exemplos

Exemplo #1 A geoip_country_code3_by_name() example

This will print where the host example.com is located.

<?php
$country = geoip_country_code3_by_name('www.example.com');
if ($country) {
echo 'This host is located in: ' . $country;
}
?>

O exemplo acima produzirá:

This host is located in: USA

Veja Também

  • geoip_country_code_by_name() - Get the two letter country code
  • geoip_country_name_by_name() - Get the full country name


Get the full country name

  • « geoip_country_code3_by_name
  • geoip_database_info »
  • PHP Manual
  • GeoIP Funções
  • Get the full country name

geoip_country_name_by_name

(PECL geoip >= 0.2.0)

geoip_country_name_by_name — Get the full country name

Descrição

geoip_country_name_by_name(string $hostname): string

The geoip_country_name_by_name() function will return the full country name corresponding to a hostname or an IP address.

Parâmetros

hostname

The hostname or IP address whose location is to be looked-up.

Valor Retornado

Returns the country name on success, or false if the address cannot be found in the database.

Exemplos

Exemplo #1 A geoip_country_name_by_name() example

This will print where the host example.com is located.

<?php
$country = geoip_country_name_by_name('www.example.com');
if ($country) {
echo 'This host is located in: ' . $country;
}
?>

O exemplo acima produzirá:

This host is located in: United States

Veja Também

  • geoip_country_code_by_name() - Get the two letter country code
  • geoip_country_code3_by_name() - Get the three letter country code


Get GeoIP Database information

  • « geoip_country_name_by_name
  • geoip_db_avail »
  • PHP Manual
  • GeoIP Funções
  • Get GeoIP Database information

geoip_database_info

(PECL geoip >= 0.2.0)

geoip_database_info — Get GeoIP Database information

Descrição

geoip_database_info(int $database = GEOIP_COUNTRY_EDITION): string

The geoip_database_info() function returns the corresponding GeoIP Database version as it is defined inside the binary file.

If this function is called without arguments, it returns the version of the GeoIP Free Country Edition.

Parâmetros

database

The database type as an integer. You can use the various constants defined with this extension (ie: GEOIP_*_EDITION).

Valor Retornado

Returns the corresponding database version, or null on error.

Exemplos

Exemplo #1 A geoip_database_info() example

This will output information regarding the database.

<?php
print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

O exemplo acima produzirá:

GEO-106FREE 20060801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved


Determine if GeoIP Database is available

  • « geoip_database_info
  • geoip_db_filename »
  • PHP Manual
  • GeoIP Funções
  • Determine if GeoIP Database is available

geoip_db_avail

(PECL geoip >= 1.0.1)

geoip_db_avail — Determine if GeoIP Database is available

Descrição

geoip_db_avail(int $database): bool

The geoip_db_avail() function returns if the corresponding GeoIP Database is available and can be opened on disk.

It does not indicate if the file is a proper database, only if it is readable.

Parâmetros

database

The database type as an integer. You can use the various constants defined with this extension (ie: GEOIP_*_EDITION).

Valor Retornado

Returns true is database exists, false if not found, or null on error.

Exemplos

Exemplo #1 A geoip_db_avail() example

This will output the current database version string.

<?php

if (geoip_db_avail(GEOIP_COUNTRY_EDITION))
print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

O exemplo acima produzirá:

GEO-106FREE 20080801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved


Returns the filename of the corresponding GeoIP Database

  • « geoip_db_avail
  • geoip_db_get_all_info »
  • PHP Manual
  • GeoIP Funções
  • Returns the filename of the corresponding GeoIP Database

geoip_db_filename

(PECL geoip >= 1.0.1)

geoip_db_filename — Returns the filename of the corresponding GeoIP Database

Descrição

geoip_db_filename(int $database): string

The geoip_db_filename() function returns the filename of the corresponding GeoIP Database.

It does not indicate if the file exists or not on disk, only where the library is looking for the database.

Parâmetros

database

The database type as an integer. You can use the various constants defined with this extension (ie: GEOIP_*_EDITION).

Valor Retornado

Returns the filename of the corresponding database, or null on error.

Exemplos

Exemplo #1 A geoip_db_filename() example

This will output the filename of the corresponding database.

<?php

print geoip_db_filename(GEOIP_COUNTRY_EDITION);

?>

O exemplo acima produzirá:

/usr/share/GeoIP/GeoIP.dat


Returns detailed information about all GeoIP database types

  • « geoip_db_filename
  • geoip_domain_by_name »
  • PHP Manual
  • GeoIP Funções
  • Returns detailed information about all GeoIP database types

geoip_db_get_all_info

(PECL geoip >= 1.0.1)

geoip_db_get_all_info — Returns detailed information about all GeoIP database types

Descrição

geoip_db_get_all_info(): array

The geoip_db_get_all_info() function will return detailed information as a multi-dimensional array about all the GeoIP database types.

This function is available even if no databases are installed. It will simply list them as non-available.

The names of the different keys of the returning associative array are as follows:

  • "available" -- Boolean, indicate if DB is available (see geoip_db_avail())
  • "description" -- The database description
  • "filename" -- The database filename on disk (see geoip_db_filename())

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the associative array.

Exemplos

Exemplo #1 A geoip_db_get_all_info() example

This will print the array containing all the information.

<?php
$infos = geoip_db_get_all_info();
if (is_array($infos)) {
var_dump($infos);
}
?>

O exemplo acima produzirá:

array(11) {
  [1]=>
  array(3) {
    ["available"]=>
    bool(true)
    ["description"]=>
    string(21) "GeoIP Country Edition"
    ["filename"]=>
    string(32) "/usr/share/GeoIP/GeoIP.dat"
  }

[ ... ]

  [11]=>
  array(3) {
    ["available"]=>
    bool(false)
    ["description"]=>
    string(25) "GeoIP Domain Name Edition"
    ["filename"]=>
    string(38) "/usr/share/GeoIP/GeoIPDomain.dat"
  }
}

Exemplo #2 A geoip_db_get_all_info() example

You can use the various constants as keys to get only parts of the information.

<?php
$infos = geoip_db_get_all_info();
if ($infos[GEOIP_COUNTRY_EDITION]['available']) {
echo $infos[GEOIP_COUNTRY_EDITION]['description'];
}
?>

O exemplo acima produzirá:

GeoIP Country Edition


Get the second level domain name

  • « geoip_db_get_all_info
  • geoip_id_by_name »
  • PHP Manual
  • GeoIP Funções
  • Get the second level domain name

geoip_domain_by_name

(PECL geoip >= 1.1.0)

geoip_domain_by_name — Get the second level domain name

Descrição

geoip_domain_by_name(string $hostname): string

The geoip_domain_by_name() function will return the second level domain names associated with a hostname or an IP address.

This function is currently only available to users who have bought a commercial GeoIP Domain Edition. A warning will be issued if the proper database cannot be located.

Parâmetros

hostname

The hostname or IP address.

Valor Retornado

Returns the domain name on success, or false if the address cannot be found in the database.

Exemplos

Exemplo #1 A geoip_domain_by_name() example

This will output the domain associated with IP 61.106.139.1.

<?php
$domain = geoip_domain_by_name('61.106.139.1');

if ($domain) {
echo 'The domain is: '. $domain;
}

?>

O exemplo acima produzirá:

The domain is: von.co.kr


Get the Internet connection type

  • « geoip_domain_by_name
  • geoip_isp_by_name »
  • PHP Manual
  • GeoIP Funções
  • Get the Internet connection type

geoip_id_by_name

(PECL geoip >= 0.2.0)

geoip_id_by_name — Get the Internet connection type

Descrição

geoip_id_by_name(string $hostname): int

The geoip_id_by_name() function will return the Internet connection type corresponding to a hostname or an IP address.

The return value is numeric and can be compared to the following constants:

  • GEOIP_UNKNOWN_SPEED
  • GEOIP_DIALUP_SPEED
  • GEOIP_CABLEDSL_SPEED
  • GEOIP_CORPORATE_SPEED

Parâmetros

hostname

The hostname or IP address whose connection type is to be looked-up.

Valor Retornado

Returns the connection type.

Exemplos

Exemplo #1 A geoip_id_by_name() example

This will output the connection type of the host example.com.

<?php
$netspeed = geoip_id_by_name('www.example.com');

echo 'The connection type is ';

switch ($netspeed) {
case GEOIP_DIALUP_SPEED:
echo 'dial-up';
break;
case GEOIP_CABLEDSL_SPEED:
echo 'cable or DSL';
break;
case GEOIP_CORPORATE_SPEED:
echo 'corporate';
break;
case GEOIP_UNKNOWN_SPEED:
default:
echo 'unknown';
}
?>

O exemplo acima produzirá:

The connection type is corporate


Get the Internet Service Provider (ISP) name

  • « geoip_id_by_name
  • geoip_netspeedcell_by_name »
  • PHP Manual
  • GeoIP Funções
  • Get the Internet Service Provider (ISP) name

geoip_isp_by_name

(PECL geoip >= 1.0.2)

geoip_isp_by_name — Get the Internet Service Provider (ISP) name

Descrição

geoip_isp_by_name(string $hostname): string

The geoip_isp_by_name() function will return the name of the Internet Service Provider (ISP) that an IP is assigned to.

This function is currently only available to users who have bought a commercial GeoIP ISP Edition. A warning will be issued if the proper database cannot be located.

Parâmetros

hostname

The hostname or IP address.

Valor Retornado

Returns the ISP name on success, or false if the address cannot be found in the database.

Exemplos

Exemplo #1 A geoip_isp_by_name() example

This will print the ISP name of host example.com.

<?php
$isp = geoip_isp_by_name('www.example.com');
if ($isp) {
echo 'This host IP is from ISP: ' . $isp;
}
?>

O exemplo acima produzirá:

This host IP is from ISP: ICANN c/o Internet Assigned Numbers Authority


Get the Internet connection speed

  • « geoip_isp_by_name
  • geoip_org_by_name »
  • PHP Manual
  • GeoIP Funções
  • Get the Internet connection speed

geoip_netspeedcell_by_name

(PECL geoip >= 1.1.0)

geoip_netspeedcell_by_name — Get the Internet connection speed

Descrição

geoip_netspeedcell_by_name(string $hostname): string

The geoip_netspeedcell_by_name() function will return the Internet connection type and speed corresponding to a hostname or an IP address.

This function is only available if using GeoIP Library version 1.4.8 or newer.

This function is currently only available to users who have bought a commercial GeoIP NetSpeedCell Edition. A warning will be issued if the proper database cannot be located.

The return value is a string, common values are:

  • Cable/DSL
  • Dialup
  • Cellular
  • Corporate

Parâmetros

hostname

The hostname or IP address.

Valor Retornado

Returns the connection speed on success, or false if the address cannot be found in the database.

Exemplos

Exemplo #1 A geoip_netspeedcell_by_name() example

This will output the connection speed of the host example.com.

<?php
$netspeed = geoip_netspeedcell_by_name('www.example.com');

if ($netspeed) {
echo 'The connection type is: '. $netspeed;
}
?>

O exemplo acima produzirá:

The connection type is: Corporate


Get the organization name

  • « geoip_netspeedcell_by_name
  • geoip_record_by_name »
  • PHP Manual
  • GeoIP Funções
  • Get the organization name

geoip_org_by_name

(PECL geoip >= 0.2.0)

geoip_org_by_name — Get the organization name

Descrição

geoip_org_by_name(string $hostname): string

The geoip_org_by_name() function will return the name of the organization that an IP is assigned to.

This function is currently only available to users who have bought a commercial GeoIP Organization, ISP or AS Edition. A warning will be issued if the proper database cannot be located.

Parâmetros

hostname

The hostname or IP address.

Valor Retornado

Returns the organization name on success, or false if the address cannot be found in the database.

Exemplos

Exemplo #1 A geoip_org_by_name() example

This will print to whom the host example.com IP is allocated.

<?php
$org = geoip_org_by_name('www.example.com');
if ($org) {
echo 'This host IP is allocated to: ' . $org;
}
?>

O exemplo acima produzirá:

This host IP is allocated to: ICANN c/o Internet Assigned Numbers Authority


Returns the detailed City information found in the GeoIP Database

  • « geoip_org_by_name
  • geoip_region_by_name »
  • PHP Manual
  • GeoIP Funções
  • Returns the detailed City information found in the GeoIP Database

geoip_record_by_name

(PECL geoip >= 0.2.0)

geoip_record_by_name — Returns the detailed City information found in the GeoIP Database

Descrição

geoip_record_by_name(string $hostname): array

The geoip_record_by_name() function will return the record information corresponding to a hostname or an IP address.

This function is available for both GeoLite City Edition and commercial GeoIP City Edition. A warning will be issued if the proper database cannot be located.

The names of the different keys of the returning associative array are as follows:

  • "continent_code" -- Two letter continent code (as of version 1.0.4 with libgeoip 1.4.3 or newer)
  • "country_code" -- Two letter country code (see geoip_country_code_by_name())
  • "country_code3" -- Three letter country code (see geoip_country_code3_by_name())
  • "country_name" -- The country name (see geoip_country_name_by_name())
  • "region" -- The region code (ex: CA for California)
  • "city" -- The city.
  • "postal_code" -- The Postal Code, FSA or Zip Code.
  • "latitude" -- The Latitude as signed float.
  • "longitude" -- The Longitude as signed float.
  • "dma_code" -- Designated Market Area code (USA and Canada only)
  • "area_code" -- The PSTN area code (ex: 212)

Parâmetros

hostname

The hostname or IP address whose record is to be looked-up.

Valor Retornado

Returns the associative array on success, or false if the address cannot be found in the database.

Registro de Alterações

Versão | Descrição
PECL geoip 1.0.4 | Adding the continent_code with GeoIP Library 1.4.3 or newer only
PECL geoip 1.0.3 | Adding country_code3 and country_name

Exemplos

Exemplo #1 A geoip_record_by_name() example

This will print the array containing the record of host example.com.

<?php
$record = geoip_record_by_name('www.example.com');
if ($record) {
print_r($record);
}
?>

O exemplo acima produzirá:

Array
(
    [continent_code] => NA
    [country_code] => US
    [country_code3] => USA
    [country_name] => United States
    [region] => CA
    [city] => Marina Del Rey
    [postal_code] =>
    [latitude] => 33.9776992798
    [longitude] => -118.435096741
    [dma_code] => 803
    [area_code] => 310
)


Get the country code and region

  • « geoip_record_by_name
  • geoip_region_name_by_code »
  • PHP Manual
  • GeoIP Funções
  • Get the country code and region

geoip_region_by_name

(PECL geoip >= 0.2.0)

geoip_region_by_name — Get the country code and region

Descrição

geoip_region_by_name(string $hostname): array

The geoip_region_by_name() function will return the country and region corresponding to a hostname or an IP address.

This function is currently only available to users who have bought a commercial GeoIP Region Edition. A warning will be issued if the proper database cannot be located.

The names of the different keys of the returning associative array are as follows:

  • "country_code" -- Two letter country code (see geoip_country_code_by_name())
  • "region" -- The region code (ex: CA for California)

Parâmetros

hostname

The hostname or IP address whose region is to be looked-up.

Valor Retornado

Returns the associative array on success, or false if the address cannot be found in the database.

Exemplos

Exemplo #1 A geoip_region_by_name() example

This will print the array containing the country code and region of the host example.com.

<?php
$region = geoip_region_by_name('www.example.com');
if ($region) {
print_r($region);
}
?>

O exemplo acima produzirá:

Array
(
    [country_code] => US
    [region] => CA
)


Returns the region name for some country and region code combo

  • « geoip_region_by_name
  • geoip_setup_custom_directory »
  • PHP Manual
  • GeoIP Funções
  • Returns the region name for some country and region code combo

geoip_region_name_by_code

(PECL geoip >= 1.0.4)

geoip_region_name_by_code — Returns the region name for some country and region code combo

Descrição

geoip_region_name_by_code(string $country_code, string $region_code): string

The geoip_region_name_by_code() function will return the region name corresponding to a country and region code combo.

In the United States, the region code corresponds to the two-letter abbreviation of each state. In Canada, the region code corresponds to the two-letter province or territory code as attributed by Canada Post.

For the rest of the world, GeoIP uses FIPS 10-4 codes to represent regions. You can check » http://www.maxmind.com/app/fips10_4 for a detailed list of FIPS 10-4 codes.

This function is always available if using GeoIP Library version 1.4.1 or newer. The data is taken directly from the GeoIP Library and not from any database.

Parâmetros

country_code

The two-letter country code (see geoip_country_code_by_name())

region_code

The two-letter (or digit) region code (see geoip_region_by_name())

Valor Retornado

Returns the region name on success, or false if the country and region code combo cannot be found.

Exemplos

Exemplo #1 A geoip_region_name_by_code() example using region code for US/Canada

This will print the region name for country CA (Canada), region QC (Quebec).

<?php
$region = geoip_region_name_by_code('CA', 'QC');
if ($region) {
echo 'Region name for CA/QC is: ' . $region;
}
?>

O exemplo acima produzirá:

Region name for CA/QC is: Quebec

Exemplo #2 A geoip_region_name_by_code() example using FIPS codes

This will print the region name for country JP (Japan), region 01.

<?php
$region = geoip_region_name_by_code('JP', '01');
if ($region) {
echo 'Region name for JP/01 is: ' . $region;
}
?>

O exemplo acima produzirá:

Region name for JP/01 is: Aichi


Set a custom directory for the GeoIP database

  • « geoip_region_name_by_code
  • geoip_time_zone_by_country_and_region »
  • PHP Manual
  • GeoIP Funções
  • Set a custom directory for the GeoIP database

geoip_setup_custom_directory

(PECL geoip >= 1.1.0)

geoip_setup_custom_directory — Set a custom directory for the GeoIP database

Descrição

geoip_setup_custom_directory(string $path): void

The geoip_setup_custom_directory() function will change the default directory of the GeoIP database. This is equivalent to changing geoip.custom_directory.

Parâmetros

path

The full path of where the GeoIP database is on disk.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 A geoip_setup_custom_directory() example

This will change the GeoIP default database path.

<?php

geoip_setup_custom_directory('/some/other/path');

print geoip_db_filename(GEOIP_COUNTRY_EDITION);

?>

O exemplo acima produzirá:

/some/other/path/GeoIP.dat


Returns the time zone for some country and region code combo

  • « geoip_setup_custom_directory
  • FANN »
  • PHP Manual
  • GeoIP Funções
  • Returns the time zone for some country and region code combo

geoip_time_zone_by_country_and_region

(PECL geoip >= 1.0.4)

geoip_time_zone_by_country_and_region — Returns the time zone for some country and region code combo

Descrição

geoip_time_zone_by_country_and_region(string $country_code, string $region_code = ?): string

The geoip_time_zone_by_country_and_region() function will return the time zone corresponding to a country and region code combo.

In the United States, the region code corresponds to the two-letter abbreviation of each state. In Canada, the region code corresponds to the two-letter province or territory code as attributed by Canada Post.

For the rest of the world, GeoIP uses FIPS 10-4 codes to represent regions. You can check » http://www.maxmind.com/app/fips10_4 for a detailed list of FIPS 10-4 codes.

This function is always available if using GeoIP Library version 1.4.1 or newer. The data is taken directly from the GeoIP Library and not from any database.

Parâmetros

country_code

The two-letter country code (see geoip_country_code_by_name())

region_code

The two-letter (or digit) region code (see geoip_region_by_name())

Valor Retornado

Returns the time zone on success, or false if the country and region code combo cannot be found.

Exemplos

Exemplo #1 A geoip_time_zone_by_country_and_region() example using region code for US/Canada

This will print the time zone for country CA (Canada), region QC (Quebec).

<?php
$timezone = geoip_time_zone_by_country_and_region('CA', 'QC');
if ($timezone) {
echo 'Time zone for CA/QC is: ' . $timezone;
}
?>

O exemplo acima produzirá:

Time zone for CA/QC is: America/Montreal

Exemplo #2 A geoip_time_zone_by_country_and_region() example using FIPS codes

This will print the time zone for country JP (Japan), region 01 (Aichi).

<?php
$timezone = geoip_time_zone_by_country_and_region('JP', '01');
if ($timezone) {
echo 'Time zone for JP/01 is: ' . $timezone;
}
?>

O exemplo acima produzirá:

Time zone for JP/01 is: Asia/Tokyo


FANN (Fast Artificial Neural Network)

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • XOR training
  • Fann Funções
    • fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
    • fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm
    • fann_clear_scaling_params — Clears scaling parameters
    • fann_copy — Creates a copy of a fann structure
    • fann_create_from_file — Constructs a backpropagation neural network from a configuration file
    • fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
    • fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
    • fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
    • fann_create_standard — Creates a standard fully connected backpropagation neural network
    • fann_create_train_from_callback — Creates the training data struct from a user supplied function
    • fann_create_train — Creates an empty training data struct
    • fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
    • fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
    • fann_descale_train — Descale input and output data based on previously calculated parameters
    • fann_destroy_train — Destructs the training data
    • fann_destroy — Destroys the entire network and properly freeing all the associated memory
    • fann_duplicate_train_data — Returns an exact copy of a fann train data
    • fann_get_activation_function — Returns the activation function
    • fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
    • fann_get_bias_array — Get the number of bias in each layer in the network
    • fann_get_bit_fail_limit — Returns the bit fail limit used during training
    • fann_get_bit_fail — The number of fail bits
    • fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
    • fann_get_cascade_activation_functions — Returns the cascade activation functions
    • fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
    • fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
    • fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
    • fann_get_cascade_candidate_limit — Return the candidate limit
    • fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
    • fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
    • fann_get_cascade_max_out_epochs — Returns the maximum out epochs
    • fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
    • fann_get_cascade_min_out_epochs — Returns the minimum out epochs
    • fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
    • fann_get_cascade_num_candidates — Returns the number of candidates used during training
    • fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
    • fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
    • fann_get_cascade_weight_multiplier — Returns the weight multiplier
    • fann_get_connection_array — Get connections in the network
    • fann_get_connection_rate — Get the connection rate used when the network was created
    • fann_get_errno — Returns the last error number
    • fann_get_errstr — Returns the last errstr
    • fann_get_layer_array — Get the number of neurons in each layer in the network
    • fann_get_learning_momentum — Returns the learning momentum
    • fann_get_learning_rate — Returns the learning rate
    • fann_get_MSE — Reads the mean square error from the network
    • fann_get_network_type — Get the type of neural network it was created as
    • fann_get_num_input — Get the number of input neurons
    • fann_get_num_layers — Get the number of layers in the neural network
    • fann_get_num_output — Get the number of output neurons
    • fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
    • fann_get_quickprop_mu — Returns the mu factor
    • fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training
    • fann_get_rprop_delta_max — Returns the maximum step-size
    • fann_get_rprop_delta_min — Returns the minimum step-size
    • fann_get_rprop_delta_zero — Returns the initial step-size
    • fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training
    • fann_get_sarprop_step_error_shift — Returns the sarprop step error shift
    • fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor
    • fann_get_sarprop_temperature — Returns the sarprop temperature
    • fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift
    • fann_get_total_connections — Get the total number of connections in the entire network
    • fann_get_total_neurons — Get the total number of neurons in the entire network
    • fann_get_train_error_function — Returns the error function used during training
    • fann_get_train_stop_function — Returns the stop function used during training
    • fann_get_training_algorithm — Returns the training algorithm
    • fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm
    • fann_length_train_data — Returns the number of training patterns in the train data
    • fann_merge_train_data — Merges the train data
    • fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data
    • fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data
    • fann_print_error — Prints the error string
    • fann_randomize_weights — Give each connection a random weight between min_weight and max_weight
    • fann_read_train_from_file — Reads a file that stores training data
    • fann_reset_errno — Resets the last error number
    • fann_reset_errstr — Resets the last error string
    • fann_reset_MSE — Resets the mean square error from the network
    • fann_run — Will run input through the neural network
    • fann_save_train — Save the training structure to a file
    • fann_save — Saves the entire network to a configuration file
    • fann_scale_input_train_data — Scales the inputs in the training data to the specified range
    • fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters
    • fann_scale_output_train_data — Scales the outputs in the training data to the specified range
    • fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters
    • fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range
    • fann_scale_train — Scale input and output data based on previously calculated parameters
    • fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers
    • fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer
    • fann_set_activation_function_output — Sets the activation function for the output layer
    • fann_set_activation_function — Sets the activation function for supplied neuron and layer
    • fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers
    • fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number
    • fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer
    • fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number
    • fann_set_bit_fail_limit — Set the bit fail limit used during training
    • fann_set_callback — Sets the callback function for use during training
    • fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions
    • fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses
    • fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction
    • fann_set_cascade_candidate_limit — Sets the candidate limit
    • fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs
    • fann_set_cascade_max_cand_epochs — Sets the max candidate epochs
    • fann_set_cascade_max_out_epochs — Sets the maximum out epochs
    • fann_set_cascade_min_cand_epochs — Sets the min candidate epochs
    • fann_set_cascade_min_out_epochs — Sets the minimum out epochs
    • fann_set_cascade_num_candidate_groups — Sets the number of candidate groups
    • fann_set_cascade_output_change_fraction — Sets the cascade output change fraction
    • fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs
    • fann_set_cascade_weight_multiplier — Sets the weight multiplier
    • fann_set_error_log — Sets where the errors are logged to
    • fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data
    • fann_set_learning_momentum — Sets the learning momentum
    • fann_set_learning_rate — Sets the learning rate
    • fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data
    • fann_set_quickprop_decay — Sets the quickprop decay factor
    • fann_set_quickprop_mu — Sets the quickprop mu factor
    • fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training
    • fann_set_rprop_delta_max — Sets the maximum step-size
    • fann_set_rprop_delta_min — Sets the minimum step-size
    • fann_set_rprop_delta_zero — Sets the initial step-size
    • fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training
    • fann_set_sarprop_step_error_shift — Sets the sarprop step error shift
    • fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor
    • fann_set_sarprop_temperature — Sets the sarprop temperature
    • fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift
    • fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data
    • fann_set_train_error_function — Sets the error function used during training
    • fann_set_train_stop_function — Sets the stop function used during training
    • fann_set_training_algorithm — Sets the training algorithm
    • fann_set_weight_array — Set connections in the network
    • fann_set_weight — Set a connection in the network
    • fann_shuffle_train_data — Shuffles training data, randomizing the order
    • fann_subset_train_data — Returns an copy of a subset of the train data
    • fann_test_data — Test a set of training data and calculates the MSE for the training data
    • fann_test — Test with a set of inputs, and a set of desired outputs
    • fann_train_epoch — Train one epoch with a set of training data
    • fann_train_on_data — Trains on an entire dataset for a period of time
    • fann_train_on_file — Trains on an entire dataset, which is read from file, for a period of time
    • fann_train — Train one iteration with a set of inputs, and a set of desired outputs
  • FANNConnection — The FANNConnection class
    • FANNConnection::__construct — The connection constructor
    • FANNConnection::getFromNeuron — Returns the postions of starting neuron
    • FANNConnection::getToNeuron — Returns the postions of terminating neuron
    • FANNConnection::getWeight — Returns the connection weight
    • FANNConnection::setWeight — Sets the connections weight


Introdução

PHP binding for FANN (Fast Artificial Neural Network) Library which implements multilayer artificial neural networks with support for both fully connected and sparsely connected networks. It includes a framework for easy handling of training data sets. It is easy to use, versatile, well documented, and fast.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

PHP >= 5.2.0 and libfann >= 2.1.0


Instalação

The FANN PHP extension should work on all Linux systems.

  • FANN Library Installation
  • PECL Installation
  • Manual Installation

FANN Library Installation

Before you start installation make sure that libfann is installed on your system. It's part of the main repository in the most Linux distributions (search for fann). You need a development version.

If it is not installed, you need to install it first. Either download it from the » official site or get it from your distro repository. For example on Fedora:

$ sudo yum install fann-devel
or Ubuntu:

$ sudo apt-get install libfann-dev

If the library is re-installed manually, then all old library file should be removed before re-installing otherwise the old library version could be linked.

PECL Installation

This extension is available on PECL. The installation is very simple. Just run:

$ sudo pecl install fann

Manual Installation

For developers and people interested in the latest changes, you can compile the driver from the latest source code on » Github. Go to Github and click the "Download ZIP" button. Then run:

$ unzip php-fann-master.zip
$ cd php-fann-master
$ phpize
$ ./configure
$ make all
$ sudo make install

Make the following changes to php.ini:

  • Make sure the extension_dir variable is pointing to the directory containing fann.so. The build will display where it is installing the PHP driver with output that looks something like:

Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/fann.so'
    Make sure that it is the same as the PHP extension directory by running:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20060613 =>
                   /usr/lib/php/extensions/no-debug-non-zts-20060613
    If it's not, change the extension_dir in php.ini or move fann.so.

  • To load the extension on PHP startup, add a line:

extension=fann.so


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Training algorithms
FANN_TRAIN_INCREMENTAL (int)
Standard backpropagation algorithm, where the weights are updated after each training pattern. This means that the weights are updated many times during a single epoch. For this reason some problems, will train very fast with this algorithm, while other more advanced problems will not train very well.
FANN_TRAIN_BATCH (int)
Standard backpropagation algorithm, where the weights are updated after calculating the mean square error for the whole training set. This means that the weights are only updated once during a epoch. For this reason some problems, will train slower with this algorithm. But since the mean square error is calculated more correctly than in incremental training, some problems will reach a better solutions with this algorithm.
FANN_TRAIN_RPROP (int)
A more advanced batch training algorithm which achieves good results for many problems. The RPROP training algorithm is adaptive, and does therefore not use the learning_rate. Some other parameters can however be set to change the way the RPROP algorithm works, but it is only recommended for users with insight in how the RPROP training algorithm works. The RPROP training algorithm is described by [Riedmiller and Braun, 1993], but the actual learning algorithm used here is the iRPROP- training algorithm which is described by [Igel and Husken, 2000] which is an variety of the standard RPROP training algorithm.
FANN_TRAIN_QUICKPROP (int)
A more advanced batch training algorithm which achieves good results for many problems. The quickprop training algorithm uses the learning_rate parameter along with other more advanced parameters, but it is only recommended to change these advanced parameters, for users with insight in how the quickprop training algorithm works. The quickprop training algorithm is described by [Fahlman, 1988].
FANN_TRAIN_SARPROP (int)
Even more advance training algorithm. Only for version 2.2
Activation functions
FANN_LINEAR (int)
Linear activation function.
FANN_THRESHOLD (int)
Threshold activation function.
FANN_THRESHOLD_SYMMETRIC (int)
Threshold activation function.
FANN_SIGMOID (int)
Sigmoid activation function.
FANN_SIGMOID_STEPWISE (int)
Stepwise linear approximation to sigmoid.
FANN_SIGMOID_SYMMETRIC (int)
Symmetric sigmoid activation function, aka. tanh.
FANN_SIGMOID_SYMMETRIC_STEPWISE (int)
Stepwise linear approximation to symmetric sigmoid
FANN_GAUSSIAN (int)
Gaussian activation function.
FANN_GAUSSIAN_SYMMETRIC (int)
Symmetric gaussian activation function.
FANN_GAUSSIAN_STEPWISE (int)
Stepwise gaussian activation function.
FANN_ELLIOT (int)
Fast (sigmoid like) activation function defined by David Elliott.
FANN_ELLIOT_SYMMETRIC (int)
Fast (symmetric sigmoid like) activation function defined by David Elliott.
FANN_LINEAR_PIECE (int)
Bounded linear activation function.
FANN_LINEAR_PIECE_SYMMETRIC (int)
Bounded linear activation function.
FANN_SIN_SYMMETRIC (int)
Periodical sinus activation function.
FANN_COS_SYMMETRIC (int)
Periodical cosinus activation function.
FANN_SIN (int)
Periodical sinus activation function.
FANN_COS (int)
Periodical cosinus activation function.
Error function used during training
FANN_ERRORFUNC_LINEAR (int)
Standard linear error function.
FANN_ERRORFUNC_TANH (int)
Tanh error function; usually better but may require a lower learning rate. This error function aggressively targets outputs that differ much from the desired, while not targeting outputs that only differ slightly. Not recommended for cascade or incremental training.
Stop criteria used during training
FANN_STOPFUNC_MSE (int)
Stop criteria is Mean Square Error (MSE) value.
FANN_STOPFUNC_BIT (int)
Stop criteria is number of bits that fail. The number of bits means the number of output neurons which differs more than the bit fail limit (see fann_get_bit_fail_limit, fann_set_bit_fail_limit). The bits are counted in all of the training data, so this number can be higher than the number of training data.
Definition of network types used by fann_get_network_type()
FANN_NETTYPE_LAYER (int)
Each layer only has connections to the next layer.
FANN_NETTYPE_SHORTCUT (int)
Each layer has connections to all following layers
Errors
FANN_E_NO_ERROR (int)
No error.
FANN_E_CANT_OPEN_CONFIG_R (int)
Unable to open configuration file for reading.
FANN_E_CANT_OPEN_CONFIG_W (int)
Unable to open configuration file for writing.
FANN_E_WRONG_CONFIG_VERSION (int)
Wrong version of configuration file.
FANN_E_CANT_READ_CONFIG (int)
Error reading info from configuration file.
FANN_E_CANT_READ_NEURON (int)
Error reading neuron info from configuration file.
FANN_E_CANT_READ_CONNECTIONS (int)
Error reading connections from configuration file.
FANN_E_WRONG_NUM_CONNECTIONS (int)
Number of connections not equal to the number expected.
FANN_E_CANT_OPEN_TD_W (int)
Unable to open train data file for writing.
FANN_E_CANT_OPEN_TD_R (int)
Unable to open train data file for reading.
FANN_E_CANT_READ_TD (int)
Error reading training data from file.
FANN_E_CANT_ALLOCATE_MEM (int)
Unable to allocate memory.
FANN_E_CANT_TRAIN_ACTIVATION (int)
Unable to train with the selected activation function.
FANN_E_CANT_USE_ACTIVATION (int)
Unable to use the selected activation function.
FANN_E_TRAIN_DATA_MISMATCH (int)
Irreconcilable differences between two struct fann_train_data structures.
FANN_E_CANT_USE_TRAIN_ALG (int)
Unable to use the selected training algorithm.
FANN_E_TRAIN_DATA_SUBSET (int)
Trying to take subset which is not within the training set.
FANN_E_INDEX_OUT_OF_BOUND (int)
Index is out of bound.
FANN_E_SCALE_NOT_PRESENT (int)
Scaling parameters not present.
FANN_E_INPUT_NO_MATCH (int)
The number of input neurons in the ann and data do not match
FANN_E_OUTPUT_NO_MATCH (int)
The number of output neurons in the ann and data do not match.


  • « Constantes pré-definidas
  • XOR training »
  • PHP Manual
  • FANN
  • Exemplos

Exemplos

Índice

  • XOR training


XOR training

This example shows how to train data for XOR function

Exemplo #1 xor.data file

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Exemplo #2 Simple train

<?php
$num_input = 2;
$num_output = 1;
$num_layers = 3;
$num_neurons_hidden = 3;
$desired_error = 0.001;
$max_epochs = 500000;
$epochs_between_reports = 1000;

$ann = fann_create_standard($num_layers, $num_input, $num_neurons_hidden, $num_output);

if ($ann) {
fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC);
fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC);

$filename = dirname(__FILE__) . "/xor.data";
if (fann_train_on_file($ann, $filename, $max_epochs, $epochs_between_reports, $desired_error))
fann_save($ann, dirname(__FILE__) . "/xor_float.net");

fann_destroy($ann);
}
?>

This example shows how to read and run data for XOR function

Exemplo #3 Simple test

<?php
$train_file = (dirname(__FILE__) . "/xor_float.net");
if (!is_file($train_file))
die("The file xor_float.net has not been created! Please run simple_train.php to generate it");

$ann = fann_create_from_file($train_file);
if (!$ann)
die("ANN could not be created");

$input = array(-1, 1);
$calc_out = fann_run($ann, $input);
printf("xor test (%f,%f) -> %f\n", $input[0], $input[1], $calc_out[0]);
fann_destroy($ann);
?>


Fann Funções

Índice

  • fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
  • fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm
  • fann_clear_scaling_params — Clears scaling parameters
  • fann_copy — Creates a copy of a fann structure
  • fann_create_from_file — Constructs a backpropagation neural network from a configuration file
  • fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  • fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
  • fann_create_standard — Creates a standard fully connected backpropagation neural network
  • fann_create_train_from_callback — Creates the training data struct from a user supplied function
  • fann_create_train — Creates an empty training data struct
  • fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
  • fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
  • fann_descale_train — Descale input and output data based on previously calculated parameters
  • fann_destroy_train — Destructs the training data
  • fann_destroy — Destroys the entire network and properly freeing all the associated memory
  • fann_duplicate_train_data — Returns an exact copy of a fann train data
  • fann_get_activation_function — Returns the activation function
  • fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
  • fann_get_bias_array — Get the number of bias in each layer in the network
  • fann_get_bit_fail_limit — Returns the bit fail limit used during training
  • fann_get_bit_fail — The number of fail bits
  • fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
  • fann_get_cascade_activation_functions — Returns the cascade activation functions
  • fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
  • fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
  • fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
  • fann_get_cascade_candidate_limit — Return the candidate limit
  • fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
  • fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
  • fann_get_cascade_max_out_epochs — Returns the maximum out epochs
  • fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
  • fann_get_cascade_min_out_epochs — Returns the minimum out epochs
  • fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
  • fann_get_cascade_num_candidates — Returns the number of candidates used during training
  • fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
  • fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
  • fann_get_cascade_weight_multiplier — Returns the weight multiplier
  • fann_get_connection_array — Get connections in the network
  • fann_get_connection_rate — Get the connection rate used when the network was created
  • fann_get_errno — Returns the last error number
  • fann_get_errstr — Returns the last errstr
  • fann_get_layer_array — Get the number of neurons in each layer in the network
  • fann_get_learning_momentum — Returns the learning momentum
  • fann_get_learning_rate — Returns the learning rate
  • fann_get_MSE — Reads the mean square error from the network
  • fann_get_network_type — Get the type of neural network it was created as
  • fann_get_num_input — Get the number of input neurons
  • fann_get_num_layers — Get the number of layers in the neural network
  • fann_get_num_output — Get the number of output neurons
  • fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
  • fann_get_quickprop_mu — Returns the mu factor
  • fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training
  • fann_get_rprop_delta_max — Returns the maximum step-size
  • fann_get_rprop_delta_min — Returns the minimum step-size
  • fann_get_rprop_delta_zero — Returns the initial step-size
  • fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training
  • fann_get_sarprop_step_error_shift — Returns the sarprop step error shift
  • fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor
  • fann_get_sarprop_temperature — Returns the sarprop temperature
  • fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift
  • fann_get_total_connections — Get the total number of connections in the entire network
  • fann_get_total_neurons — Get the total number of neurons in the entire network
  • fann_get_train_error_function — Returns the error function used during training
  • fann_get_train_stop_function — Returns the stop function used during training
  • fann_get_training_algorithm — Returns the training algorithm
  • fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm
  • fann_length_train_data — Returns the number of training patterns in the train data
  • fann_merge_train_data — Merges the train data
  • fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data
  • fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data
  • fann_print_error — Prints the error string
  • fann_randomize_weights — Give each connection a random weight between min_weight and max_weight
  • fann_read_train_from_file — Reads a file that stores training data
  • fann_reset_errno — Resets the last error number
  • fann_reset_errstr — Resets the last error string
  • fann_reset_MSE — Resets the mean square error from the network
  • fann_run — Will run input through the neural network
  • fann_save_train — Save the training structure to a file
  • fann_save — Saves the entire network to a configuration file
  • fann_scale_input_train_data — Scales the inputs in the training data to the specified range
  • fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters
  • fann_scale_output_train_data — Scales the outputs in the training data to the specified range
  • fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters
  • fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range
  • fann_scale_train — Scale input and output data based on previously calculated parameters
  • fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers
  • fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_output — Sets the activation function for the output layer
  • fann_set_activation_function — Sets the activation function for supplied neuron and layer
  • fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer
  • fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number
  • fann_set_bit_fail_limit — Set the bit fail limit used during training
  • fann_set_callback — Sets the callback function for use during training
  • fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions
  • fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses
  • fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction
  • fann_set_cascade_candidate_limit — Sets the candidate limit
  • fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs
  • fann_set_cascade_max_cand_epochs — Sets the max candidate epochs
  • fann_set_cascade_max_out_epochs — Sets the maximum out epochs
  • fann_set_cascade_min_cand_epochs — Sets the min candidate epochs
  • fann_set_cascade_min_out_epochs — Sets the minimum out epochs
  • fann_set_cascade_num_candidate_groups — Sets the number of candidate groups
  • fann_set_cascade_output_change_fraction — Sets the cascade output change fraction
  • fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs
  • fann_set_cascade_weight_multiplier — Sets the weight multiplier
  • fann_set_error_log — Sets where the errors are logged to
  • fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data
  • fann_set_learning_momentum — Sets the learning momentum
  • fann_set_learning_rate — Sets the learning rate
  • fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data
  • fann_set_quickprop_decay — Sets the quickprop decay factor
  • fann_set_quickprop_mu — Sets the quickprop mu factor
  • fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training
  • fann_set_rprop_delta_max — Sets the maximum step-size
  • fann_set_rprop_delta_min — Sets the minimum step-size
  • fann_set_rprop_delta_zero — Sets the initial step-size
  • fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training
  • fann_set_sarprop_step_error_shift — Sets the sarprop step error shift
  • fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor
  • fann_set_sarprop_temperature — Sets the sarprop temperature
  • fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift
  • fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data
  • fann_set_train_error_function — Sets the error function used during training
  • fann_set_train_stop_function — Sets the stop function used during training
  • fann_set_training_algorithm — Sets the training algorithm
  • fann_set_weight_array — Set connections in the network
  • fann_set_weight — Set a connection in the network
  • fann_shuffle_train_data — Shuffles training data, randomizing the order
  • fann_subset_train_data — Returns an copy of a subset of the train data
  • fann_test_data — Test a set of training data and calculates the MSE for the training data
  • fann_test — Test with a set of inputs, and a set of desired outputs
  • fann_train_epoch — Train one epoch with a set of training data
  • fann_train_on_data — Trains on an entire dataset for a period of time
  • fann_train_on_file — Trains on an entire dataset, which is read from file, for a period of time
  • fann_train — Train one iteration with a set of inputs, and a set of desired outputs


Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

  • « Fann Funções
  • fann_cascadetrain_on_file »
  • PHP Manual
  • Fann Funções
  • Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

fann_cascadetrain_on_data

(PECL fann >= 1.0.0)

fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

Descrição

fann_cascadetrain_on_data(
resource $ann,
resource $data,
int $max_neurons,
int $neurons_between_reports,
float $desired_error
): bool

The cascade output change fraction is a number between 0 and 1 determining how large a fraction the fann_get_MSE() value should change within fann_get_cascade_output_stagnation_epochs() during training of the output connections, in order for the training not to stagnate. If the training stagnates, the training of the output connections will be ended and new candidates will be prepared.

This training uses the parameters set using the fann_set_cascade_..., but it also uses another training algorithm as it’s internal training algorithm. This algorithm can be set to either FANN_TRAIN_RPROP or FANN_TRAIN_QUICKPROP by fann_set_training_algorithm(), and the parameters set for these training algorithms will also affect the cascade training.

Parâmetros

ann

resource da rede neural.

data

resource dos dados de treinamento da rede neural.

max_neurons

The maximum number of neurons to be added to neural network.

neurons_between_reports

The number of neurons between printing a status report. A value of zero means no reports should be printed.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on which stop function is chosen by fann_set_train_stop_function()

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_cascadetrain_on_file() - Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm


Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm

  • « fann_cascadetrain_on_data
  • fann_clear_scaling_params »
  • PHP Manual
  • Fann Funções
  • Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm

fann_cascadetrain_on_file

(PECL fann >= 1.0.0)

fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm

Descrição

fann_cascadetrain_on_file(
resource $ann,
string $filename,
int $max_neurons,
int $neurons_between_reports,
float $desired_error
): bool

Does the same as fann_cascadetrain_on_data(), but reads the training data directly from a file.

Parâmetros

ann

resource da rede neural.

filename

A file containing the data for training.

max_neurons

The maximum number of neurons to be added to neural network

neurons_between_reports

The number of neurons between printing a status report. A value of zero means no reports should be printed.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on which stop function is chosen by fann_set_train_stop_function().

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_cascadetrain_on_data() - Trains on an entire dataset, for a period of time using the Cascade2 training algorithm


Clears scaling parameters

  • « fann_cascadetrain_on_file
  • fann_copy »
  • PHP Manual
  • Fann Funções
  • Clears scaling parameters

fann_clear_scaling_params

(PECL fann >= 1.0.0)

fann_clear_scaling_params — Clears scaling parameters

Descrição

fann_clear_scaling_params(resource $ann): bool

Clears scaling parameters.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.


Creates a copy of a fann structure

  • « fann_clear_scaling_params
  • fann_create_from_file »
  • PHP Manual
  • Fann Funções
  • Creates a copy of a fann structure

fann_copy

(PECL fann >= 1.0.0)

fann_copy — Creates a copy of a fann structure

Descrição

fann_copy(resource $ann): resource

Creates a copy of a fann structure.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Returns a copy of neural network resource on success, or false on error

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_test() - Test with a set of inputs, and a set of desired outputs


Constructs a backpropagation neural network from a configuration file

  • « fann_copy
  • fann_create_shortcut_array »
  • PHP Manual
  • Fann Funções
  • Constructs a backpropagation neural network from a configuration file

fann_create_from_file

(PECL fann >= 1.0.0)

fann_create_from_file — Constructs a backpropagation neural network from a configuration file

Descrição

fann_create_from_file(string $configuration_file): resource

Constructs a backpropagation neural network from a configuration file, which have been saved by fann_save().

Parâmetros

configuration_file

The configuration file path.

Valor Retornado

Retorna um resource de rede neural em caso de sucesso ou false em caso de erro.

Veja Também

  • fann_save() - Saves the entire network to a configuration file


Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

  • « fann_create_from_file
  • fann_create_shortcut »
  • PHP Manual
  • Fann Funções
  • Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

fann_create_shortcut_array

(PECL fann >= 1.0.0)

fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

Descrição

fann_create_shortcut_array(int $num_layers, array $layers): resource

Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections using an array of layers sizes.

Parâmetros

num_layers

The total number of layers including the input and the output layer.

layers

An array of layers sizes.

Valor Retornado

Returns a neural network resource on success, or false on error.

Veja Também

  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network


Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

  • « fann_create_shortcut_array
  • fann_create_sparse_array »
  • PHP Manual
  • Fann Funções
  • Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

fann_create_shortcut

(PECL fann >= 1.0.0)

fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

Descrição

fann_create_shortcut(
int $num_layers,
int $num_neurons1,
int $num_neurons2,
int ...$num_neuronsN
): resource

Creates a standard backpropagation neural network, which is not fully connected and which also has shortcut connections.

Shortcut connections are connections that skip layers. A fully connected network with shortcut connections, is a network where all neurons are connected to all neurons in later layers. Including direct connections from the input layer to the output layer.

Parâmetros

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

num_neuronsN

Number of neurons in other layers.

Valor Retornado

Returns a neural network resource on success, or false on error.

Veja Também

  • fann_create_shortcut_array() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network


Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

  • « fann_create_shortcut
  • fann_create_sparse »
  • PHP Manual
  • Fann Funções
  • Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

fann_create_sparse_array

(PECL fann >= 1.0.0)

fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

Descrição

fann_create_sparse_array(float $connection_rate, int $num_layers, array $layers): resource

Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes.

Parâmetros

connection_rate

The connection rate controls how many connections there will be in the network. If the connection rate is set to 1, the network will be fully connected, but if it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the same result as fann_create_standard().

num_layers

The total number of layers including the input and the output layer.

layers

An array of layer sizes.

Valor Retornado

Returns a neural network resource on success, or false on error.

Veja Também

  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard backpropagation neural network, which is not fully connected

  • « fann_create_sparse_array
  • fann_create_standard_array »
  • PHP Manual
  • Fann Funções
  • Creates a standard backpropagation neural network, which is not fully connected

fann_create_sparse

(PECL fann >= 1.0.0)

fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected

Descrição

fann_create_sparse(
float $connection_rate,
int $num_layers,
int $num_neurons1,
int $num_neurons2,
int ...$num_neuronsN
): resource

Creates a standard backpropagation neural network, which is not fully connected.

Parâmetros

connection_rate

The connection rate controls how many connections there will be in the network. If the connection rate is set to 1, the network will be fully connected, but if it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the same result as fann_create_standard().

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

num_neuronsN

Number of neurons in other layers.

Valor Retornado

Returns a neural network resource on success, or false on error.

Veja Também

  • fann_create_sparse_array() - Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard fully connected backpropagation neural network using an array of layer sizes

  • « fann_create_sparse
  • fann_create_standard »
  • PHP Manual
  • Fann Funções
  • Creates a standard fully connected backpropagation neural network using an array of layer sizes

fann_create_standard_array

(PECL fann >= 1.0.0)

fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes

Descrição

fann_create_standard_array(int $num_layers, array $layers): resource

Creates a standard fully connected backpropagation neural network.

There will be a bias neuron in each layer (except the output layer), and this bias neuron will be connected to all neurons in the next layer. When running the network, the bias nodes always emits 1.

To destroy a neural network use the fann_destroy() function.

Parâmetros

num_layers

The total number of layers including the input and the output layer.

layers

An array of layer sizes.

Valor Retornado

Returns a neural network resource on success, or false on error.

Veja Também

  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard fully connected backpropagation neural network

  • « fann_create_standard_array
  • fann_create_train_from_callback »
  • PHP Manual
  • Fann Funções
  • Creates a standard fully connected backpropagation neural network

fann_create_standard

(PECL fann >= 1.0.0)

fann_create_standard — Creates a standard fully connected backpropagation neural network

Descrição

fann_create_standard(
int $num_layers,
int $num_neurons1,
int $num_neurons2,
int ...$num_neuronsN
): resource

Creates a standard fully connected backpropagation neural network.

There will be a bias neuron in each layer (except the output layer), and this bias neuron will be connected to all neurons in the next layer. When running the network, the bias nodes always emits 1.

To destroy a neural network use the fann_destroy() function.

Parâmetros

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

num_neuronsN

Number of neurons in other layers.

Valor Retornado

Returns a neural network resource on success, or false on error.

Veja Também

  • fann_create_standard_array() - Creates a standard fully connected backpropagation neural network using an array of layer sizes
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates the training data struct from a user supplied function

  • « fann_create_standard
  • fann_create_train »
  • PHP Manual
  • Fann Funções
  • Creates the training data struct from a user supplied function

fann_create_train_from_callback

(PECL fann >= 1.0.0)

fann_create_train_from_callback — Creates the training data struct from a user supplied function

Descrição

fann_create_train_from_callback(
int $num_data,
int $num_input,
int $num_output,
callable $user_function
): resource

Creates the training data struct from a user supplied function. As the training data are numerable (data 1, data 2...), the user must write a function that receives the number of the training data set (input, output) and returns the set.

Parâmetros

num_data

The number of training data

num_input

The number of inputs per training data

num_output

The number of ouputs per training data

user_function

The user supplied function with following parameters:

  • num - The number of the training data set
  • num_input - The number of inputs per training data
  • num_output - The number of ouputs per training data

The function should return an associative array with keys input and output and two array values of input and output.

Valor Retornado

Retorna um resource de dados de treinamento em caso de sucesso ou false em caso de erro.

Exemplos

Exemplo #1 fann_create_train_from_callback() example

<?php
function create_train_callback($num_data, $num_input, $num_output) {
return array(
"input" => array_fill(0, $num_input, 1),
"output" => array_fill(0, $num_output, 1),
);
}

$num_data = 3;
$num_input = 2;
$num_output = 1;
$train_data = fann_create_train_from_callback($num_data, $num_input, $num_output, "create_train_callback");
if ($train_data) {
// Do something with $train_data
}
?>

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_read_train_from_file() - Reads a file that stores training data
  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Creates an empty training data struct

  • « fann_create_train_from_callback
  • fann_descale_input »
  • PHP Manual
  • Fann Funções
  • Creates an empty training data struct

fann_create_train

(PECL fann >= 1.0.0)

fann_create_train — Creates an empty training data struct

Descrição

fann_create_train(int $num_data, int $num_input, int $num_output): resource

Creates an empty training data struct.

Parâmetros

num_data

The number of training data

num_input

The number of inputs per training data

num_output

The number of ouputs per training data

Valor Retornado

Retorna um resource de dados de treinamento em caso de sucesso ou false em caso de erro.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_read_train_from_file() - Reads a file that stores training data
  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Scale data in input vector after get it from ann based on previously calculated parameters

  • « fann_create_train
  • fann_descale_output »
  • PHP Manual
  • Fann Funções
  • Scale data in input vector after get it from ann based on previously calculated parameters

fann_descale_input

(PECL fann >= 1.0.0)

fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters

Descrição

fann_descale_input(resource $ann, array $input_vector): bool

Scale data in input vector after get it from ann based on previously calculated parameters.

Parâmetros

ann

resource da rede neural.

input_vector

Input vector that will be descaled

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_scale_input() - Scale data in input vector before feed it to ann based on previously calculated parameters
  • fann_descale_output() - Scale data in output vector after get it from ann based on previously calculated parameters


Scale data in output vector after get it from ann based on previously calculated parameters

  • « fann_descale_input
  • fann_descale_train »
  • PHP Manual
  • Fann Funções
  • Scale data in output vector after get it from ann based on previously calculated parameters

fann_descale_output

(PECL fann >= 1.0.0)

fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters

Descrição

fann_descale_output(resource $ann, array $output_vector): bool

Scale data in output vector after get it from ann based on previously calculated parameters.

Parâmetros

ann

resource da rede neural.

output_vector

Output vector that will be descaled

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_scale_output() - Scale data in output vector before feed it to ann based on previously calculated parameters
  • fann_descale_input() - Scale data in input vector after get it from ann based on previously calculated parameters


Descale input and output data based on previously calculated parameters

  • « fann_descale_output
  • fann_destroy_train »
  • PHP Manual
  • Fann Funções
  • Descale input and output data based on previously calculated parameters

fann_descale_train

(PECL fann >= 1.0.0)

fann_descale_train — Descale input and output data based on previously calculated parameters

Descrição

fann_descale_train(resource $ann, resource $train_data): bool

Descale input and output data based on previously calculated parameters.

Parâmetros

ann

resource da rede neural.

train_data

resource dos dados de treinamento da rede neural.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_scale_train() - Scale input and output data based on previously calculated parameters
  • fann_set_scaling_params() - Calculate input and output scaling parameters for future use based on training data


Destructs the training data

  • « fann_descale_train
  • fann_destroy »
  • PHP Manual
  • Fann Funções
  • Destructs the training data

fann_destroy_train

(PECL fann >= 1.0.0)

fann_destroy_train — Destructs the training data

Descrição

fann_destroy_train(resource $train_data): bool

Destructs the training data

Parâmetros

train_data

resource dos dados de treinamento da rede neural.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.


Destroys the entire network and properly freeing all the associated memory

  • « fann_destroy_train
  • fann_duplicate_train_data »
  • PHP Manual
  • Fann Funções
  • Destroys the entire network and properly freeing all the associated memory

fann_destroy

(PECL fann >= 1.0.0)

fann_destroy — Destroys the entire network and properly freeing all the associated memory

Descrição

fann_destroy(resource $ann): bool

Destroys the entire network and properly freeing all the associated memory.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.


Returns an exact copy of a fann train data

  • « fann_destroy
  • fann_get_activation_function »
  • PHP Manual
  • Fann Funções
  • Returns an exact copy of a fann train data

fann_duplicate_train_data

(PECL fann >= 1.0.0)

fann_duplicate_train_data — Returns an exact copy of a fann train data

Descrição

fann_duplicate_train_data(resource $data): resource

Returns an exact copy of a fann train data resource.

Parâmetros

data

resource dos dados de treinamento da rede neural.

Valor Retornado

Retorna um resource de dados de treinamento em caso de sucesso ou false em caso de erro.


Returns the activation function

  • « fann_duplicate_train_data
  • fann_get_activation_steepness »
  • PHP Manual
  • Fann Funções
  • Returns the activation function

fann_get_activation_function

(PECL fann >= 1.0.0)

fann_get_activation_function — Returns the activation function

Descrição

fann_get_activation_function(resource $ann, int $layer, int $neuron): int

Get the activation function for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to get activation functions for the neurons in the input layer.

The return value is one of the activation functions constants.

Parâmetros

ann

resource da rede neural.

layer

Layer number.

neuron

Neuron number.

Valor Retornado

Learning functions constant or -1 if the neuron is not defined in the neural network, or false on error.

Veja Também

  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Returns the activation steepness for supplied neuron and layer number

  • « fann_get_activation_function
  • fann_get_bias_array »
  • PHP Manual
  • Fann Funções
  • Returns the activation steepness for supplied neuron and layer number

fann_get_activation_steepness

(PECL fann >= 1.0.0)

fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number

Descrição

fann_get_activation_steepness(resource $ann, int $layer, int $neuron): float

Get the activation steepness for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to get activation steepness for the neurons in the input layer.

The steepness of an activation function says something about how fast the activation function goes from the minimum to the maximum. A high value for the activation function will also give a more aggressive training.

When training neural networks where the output values should be at the extremes (usually 0 and 1, depending on the activation function), a steep activation function can be used (e.g. 1.0).

The default activation steepness is 0.5.

Parâmetros

ann

resource da rede neural.

layer

Layer number

neuron

Neuron number

Valor Retornado

The activation steepness for the neuron or -1 if the neuron is not defined in the neural network, or false on error.

Veja Também

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Get the number of bias in each layer in the network

  • « fann_get_activation_steepness
  • fann_get_bit_fail_limit »
  • PHP Manual
  • Fann Funções
  • Get the number of bias in each layer in the network

fann_get_bias_array

(PECL fann >= 1.0.0)

fann_get_bias_array — Get the number of bias in each layer in the network

Descrição

fann_get_bias_array(resource $ann): array

Get the number of bias in each layer in the network.

Parâmetros

ann

resource da rede neural.

Valor Retornado

An array of numbers of bias in each layer


Returns the bit fail limit used during training

  • « fann_get_bias_array
  • fann_get_bit_fail »
  • PHP Manual
  • Fann Funções
  • Returns the bit fail limit used during training

fann_get_bit_fail_limit

(PECL fann >= 1.0.0)

fann_get_bit_fail_limit — Returns the bit fail limit used during training

Descrição

fann_get_bit_fail_limit(resource $ann): float

Returns the bit fail limit used during training.

The bit fail limit is used during training where the stop function is set to FANN_STOPFUNC_BIT.

The limit is the maximum accepted difference between the desired output and the actual output during training. Each output that diverges more than this limit is counted as an error bit. This difference is divided by two when dealing with symmetric activation functions, so that symmetric and not symmetric activation functions can use the same limit.

The default bit fail limit is 0.35.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The bit fail limit, or false on error.

Veja Também

  • fann_set_bit_fail_limit() - Set the bit fail limit used during training


The number of fail bits

  • « fann_get_bit_fail_limit
  • fann_get_cascade_activation_functions_count »
  • PHP Manual
  • Fann Funções
  • The number of fail bits

fann_get_bit_fail

(PECL fann >= 1.0.0)

fann_get_bit_fail — The number of fail bits

Descrição

fann_get_bit_fail(resource $ann): int

The number of fail bits; means the number of output neurons which differ more than the bit fail limit (see fann_get_bit_fail_limit(), fann_set_bit_fail_limit()). The bits are counted in all of the training data, so this number can be higher than the number of training data.

This value is reset by fann_reset_MSE() and updated by all the same functions which also updates the MSE value (e.g. fann_test_data(), fann_train_epoch())

Parâmetros

ann

resource da rede neural.

Valor Retornado

The number of bits fail, or false on error.

Veja Também

  • fann_get_MSE() - Reads the mean square error from the network
  • fann_reset_MSE() - Resets the mean square error from the network
  • fann_test_data() - Test a set of training data and calculates the MSE for the training data
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training
  • fann_set_bit_fail_limit() - Set the bit fail limit used during training


Returns the number of cascade activation functions

  • « fann_get_bit_fail
  • fann_get_cascade_activation_functions »
  • PHP Manual
  • Fann Funções
  • Returns the number of cascade activation functions

fann_get_cascade_activation_functions_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions

Descrição

fann_get_cascade_activation_functions_count(resource $ann): int

The number of activation functions in the fann_get_cascade_activation_functions() array.

The default number of activation functions is 6.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The number of cascade activation functions, or false on error.

Veja Também

  • fann_get_cascade_activation_functions() - Returns the cascade activation functions
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


Returns the cascade activation functions

  • « fann_get_cascade_activation_functions_count
  • fann_get_cascade_activation_steepnesses_count »
  • PHP Manual
  • Fann Funções
  • Returns the cascade activation functions

fann_get_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions — Returns the cascade activation functions

Descrição

fann_get_cascade_activation_functions(resource $ann): array

The cascade activation functions array is an array of the different activation functions used by the candidates

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

The default activation functions are FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, FANN_GAUSSIAN_SYMMETRIC, FANN_ELLIOT, FANN_ELLIOT_SYMMETRIC.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The cascade activation functions, or false on error.

Veja Também

  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


The number of activation steepnesses

  • « fann_get_cascade_activation_functions
  • fann_get_cascade_activation_steepnesses »
  • PHP Manual
  • Fann Funções
  • The number of activation steepnesses

fann_get_cascade_activation_steepnesses_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses

Descrição

fann_get_cascade_activation_steepnesses_count(resource $ann): int

The number of activation steepnesses in the fann_get_cascade_activation_functions() array.

The default number of activation steepnesses is 4.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The number of activation steepnesses, or false on error.

Veja Também

  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


Returns the cascade activation steepnesses

  • « fann_get_cascade_activation_steepnesses_count
  • fann_get_cascade_candidate_change_fraction »
  • PHP Manual
  • Fann Funções
  • Returns the cascade activation steepnesses

fann_get_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses

Descrição

fann_get_cascade_activation_steepnesses(resource $ann): array

The cascade activation steepnesses array is an array of the different activation functions used by the candidates.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

The default activation steepnesses are {0.25, 0.50, 0.75, 1.00}.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The cascade activation steepnesses, or false on error.

Veja Também

  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses
  • fann_set_cascade_activation_steepnesses() - Sets the array of cascade candidate activation steepnesses


Returns the cascade candidate change fraction

  • « fann_get_cascade_activation_steepnesses
  • fann_get_cascade_candidate_limit »
  • PHP Manual
  • Fann Funções
  • Returns the cascade candidate change fraction

fann_get_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction

Descrição

fann_get_cascade_candidate_change_fraction(resource $ann): float

The cascade candidate change fraction is a number between 0 and 1 determining how large a fraction the fann_get_MSE() value should change within fann_get_cascade_candidate_stagnation_epochs() during training of the candidate neurons, in order for the training not to stagnate. If the training stagnates, the training of the candidate neurons will be ended and the best candidate will be selected.

It means that if the MSE does not change by a fraction of fann_get_cascade_candidate_change_fraction() during a period of fann_get_cascade_candidate_stagnation_epochs(), the training of the candidate neurons is stopped because the training has stagnated.

If the cascade candidate change fraction is low, the candidate neurons will be trained more and if the fraction is high they will be trained less.

The default cascade candidate change fraction is 0.01, which is equalent to a 1% change in MSE.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The cascade candidate change fraction, or false on error.

Veja Também

  • fann_set_cascade_candidate_change_fraction() - Sets the cascade candidate change fraction
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_cascade_candidate_stagnation_epochs() - Returns the number of cascade candidate stagnation epochs


Return the candidate limit

  • « fann_get_cascade_candidate_change_fraction
  • fann_get_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Fann Funções
  • Return the candidate limit

fann_get_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_limit — Return the candidate limit

Descrição

fann_get_cascade_candidate_limit(resource $ann): float

The candidate limit is a limit for how much the candidate neuron may be trained. The limit is a limit on the proportion between the MSE and candidate score.

Set this to a lower value to avoid overfitting and to a higher if overfitting is not a problem.

The default candidate limit is 1000.0.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The candidate limit, or false on error.

Veja Também

  • fann_set_cascade_candidate_limit() - Sets the candidate limit


Returns the number of cascade candidate stagnation epochs

  • « fann_get_cascade_candidate_limit
  • fann_get_cascade_max_cand_epochs »
  • PHP Manual
  • Fann Funções
  • Returns the number of cascade candidate stagnation epochs

fann_get_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs

Descrição

fann_get_cascade_candidate_stagnation_epochs(resource $ann): int

The number of cascade candidate stagnation epochs determines the number of epochs training is allowed to continue without changing the MSE by a fraction of fann_get_cascade_candidate_change_fraction().

See more info about this parameter in fann_get_cascade_candidate_change_fraction().

The default number of cascade candidate stagnation epochs is 12.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The number of cascade candidate stagnation epochs, or false on error.

Veja Também

  • fann_set_cascade_candidate_stagnation_epochs() - Sets the number of cascade candidate stagnation epochs
  • fann_get_cascade_candidate_change_fraction() - Returns the cascade candidate change fraction


Returns the maximum candidate epochs

  • « fann_get_cascade_candidate_stagnation_epochs
  • fann_get_cascade_max_out_epochs »
  • PHP Manual
  • Fann Funções
  • Returns the maximum candidate epochs

fann_get_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs

Descrição

fann_get_cascade_max_cand_epochs(resource $ann): int

The maximum candidate epochs determines the maximum number of epochs the input connections to the candidates may be trained before adding a new candidate neuron.

The default max candidate epochs is 150.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The maximum candidate epochs, or false on error.

Veja Também

  • fann_set_cascade_max_cand_epochs() - Sets the max candidate epochs


Returns the maximum out epochs

  • « fann_get_cascade_max_cand_epochs
  • fann_get_cascade_min_cand_epochs »
  • PHP Manual
  • Fann Funções
  • Returns the maximum out epochs

fann_get_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_out_epochs — Returns the maximum out epochs

Descrição

fann_get_cascade_max_out_epochs(resource $ann): int

The maximum out epochs determines the maximum number of epochs the output connections may be trained after adding a new candidate neuron.

The default max out epochs is 150.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The maximum out epochs, or false on error.

Veja Também

  • fann_set_cascade_max_out_epochs() - Sets the maximum out epochs


Returns the minimum candidate epochs

  • « fann_get_cascade_max_out_epochs
  • fann_get_cascade_min_out_epochs »
  • PHP Manual
  • Fann Funções
  • Returns the minimum candidate epochs

fann_get_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs

Descrição

fann_get_cascade_min_cand_epochs(resource $ann): int

The minimum candidate epochs determines the minimum number of epochs the input connections to the candidates may be trained before adding a new candidate neuron.

The default min candidate epochs is 50.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The minimum candidate epochs, or false on error.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_set_cascade_min_cand_epochs() - Sets the min candidate epochs


Returns the minimum out epochs

  • « fann_get_cascade_min_cand_epochs
  • fann_get_cascade_num_candidate_groups »
  • PHP Manual
  • Fann Funções
  • Returns the minimum out epochs

fann_get_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_out_epochs — Returns the minimum out epochs

Descrição

fann_get_cascade_min_out_epochs(resource $ann): int

The minimum out epochs determines the minimum number of epochs the output connections must be trained after adding a new candidate neuron.

The default min out epochs is 50.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The minimum out epochs, or false on error.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_set_cascade_min_out_epochs() - Sets the minimum out epochs


Returns the number of candidate groups

  • « fann_get_cascade_min_out_epochs
  • fann_get_cascade_num_candidates »
  • PHP Manual
  • Fann Funções
  • Returns the number of candidate groups

fann_get_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidate_groups — Returns the number of candidate groups

Descrição

fann_get_cascade_num_candidate_groups(resource $ann): int

The number of candidate groups is the number of groups of identical candidates which will be used during training.

This number can be used to have more candidates without having to define new parameters for the candidates.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this parameter.

The default number of candidate groups is 2.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The number of candidate groups, or false on error.

Veja Também

  • fann_set_cascade_num_candidate_groups() - Sets the number of candidate groups


Returns the number of candidates used during training

  • « fann_get_cascade_num_candidate_groups
  • fann_get_cascade_output_change_fraction »
  • PHP Manual
  • Fann Funções
  • Returns the number of candidates used during training

fann_get_cascade_num_candidates

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidates — Returns the number of candidates used during training

Descrição

fann_get_cascade_num_candidates(resource $ann): int

The number of candidates used during training (calculated by multiplying
fann_get_cascade_activation_functions_count(),
fann_get_cascade_activation_steepnesses_count() and
fann_get_cascade_num_candidate_groups()).

The actual candidates is defined by the fann_get_cascade_activation_functions() and fann_get_cascade_activation_steepnesses() arrays. These arrays define the activation functions and activation steepnesses used for the candidate neurons. If there are 2 activation functions in the activation function array and 3 steepnesses in the steepness array, then there will be 2x3=6 different candidates which will be trained. These 6 different candidates can be copied into several candidate groups, where the only difference between these groups is the initial weights. If the number of groups is set to 2, then the number of candidate neurons will be 2x3x2=12. The number of candidate groups is defined by fann_set_cascade_num_candidate_groups().

The default number of candidates is 6x4x2 = 48

Parâmetros

ann

resource da rede neural.

Valor Retornado

The number of candidates used during training, or false on error.

Veja Também

  • fann_get_cascade_activation_functions() - Returns the cascade activation functions
  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses
  • fann_get_cascade_num_candidate_groups() - Returns the number of candidate groups


Returns the cascade output change fraction

  • « fann_get_cascade_num_candidates
  • fann_get_cascade_output_stagnation_epochs »
  • PHP Manual
  • Fann Funções
  • Returns the cascade output change fraction

fann_get_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_output_change_fraction — Returns the cascade output change fraction

Descrição

fann_get_cascade_output_change_fraction(resource $ann): float

The cascade output change fraction is a number between 0 and 1 determining how large a fraction of the fann_get_MSE() value should change within fann_get_cascade_output_stagnation_epochs() during training of the output connections, in order for the training not to stagnate. If the training stagnates, the training of the output connections will be ended and new candidates will be prepared.

It means that if the MSE does not change by a fraction of fann_get_cascade_output_change_fraction() during a period of fann_get_cascade_output_stagnation_epochs(), the training of the output connections is stopped because the training has stagnated.

If the cascade output change fraction is low, the output connections will be trained more and if the fraction is high, they will be trained less.

The default cascade output change fraction is 0.01, which is equalent to a 1% change in MSE.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The cascade output change fraction, or false on error.

Veja Também

  • fann_set_cascade_output_change_fraction() - Sets the cascade output change fraction
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_cascade_output_stagnation_epochs() - Returns the number of cascade output stagnation epochs


Returns the number of cascade output stagnation epochs

  • « fann_get_cascade_output_change_fraction
  • fann_get_cascade_weight_multiplier »
  • PHP Manual
  • Fann Funções
  • Returns the number of cascade output stagnation epochs

fann_get_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs

Descrição

fann_get_cascade_output_stagnation_epochs(resource $ann): int

The number of cascade output stagnation epochs determines the number of epochs training is allowed to continue without changing the MSE by a fraction of fann_get_cascade_output_change_fraction().

See more info about this parameter in fann_get_cascade_output_change_fraction().

The default number of cascade output stagnation epochs is 12.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The number of cascade output stagnation epochs, or false on error.

Veja Também

  • fann_set_cascade_output_stagnation_epochs() - Sets the number of cascade output stagnation epochs
  • fann_get_cascade_output_change_fraction() - Returns the cascade output change fraction


Returns the weight multiplier

  • « fann_get_cascade_output_stagnation_epochs
  • fann_get_connection_array »
  • PHP Manual
  • Fann Funções
  • Returns the weight multiplier

fann_get_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_get_cascade_weight_multiplier — Returns the weight multiplier

Descrição

fann_get_cascade_weight_multiplier(resource $ann): float

The weight multiplier is a parameter which is used to multiply the weights from the candidate neuron before adding the neuron to the neural network. This parameter is usually between 0 and 1, and is used to make the training a bit less aggressive.

The default weight multiplier is 0.4.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The weight multiplier, or false on error.

Veja Também

  • fann_set_cascade_weight_multiplier() - Sets the weight multiplier


Get connections in the network

  • « fann_get_cascade_weight_multiplier
  • fann_get_connection_rate »
  • PHP Manual
  • Fann Funções
  • Get connections in the network

fann_get_connection_array

(PECL fann >= 1.0.0)

fann_get_connection_array — Get connections in the network

Descrição

fann_get_connection_array(resource $ann): array

Get connections in the network.

Parâmetros

ann

resource da rede neural.

Valor Retornado

An array of connections in the network


Get the connection rate used when the network was created

  • « fann_get_connection_array
  • fann_get_errno »
  • PHP Manual
  • Fann Funções
  • Get the connection rate used when the network was created

fann_get_connection_rate

(PECL fann >= 1.0.0)

fann_get_connection_rate — Get the connection rate used when the network was created

Descrição

fann_get_connection_rate(resource $ann): float

Get the connection rate used when the network was created.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The connection rate used when the network was created, or false on error.


Returns the last error number

  • « fann_get_connection_rate
  • fann_get_errstr »
  • PHP Manual
  • Fann Funções
  • Returns the last error number

fann_get_errno

(PECL fann >= 1.0.0)

fann_get_errno — Returns the last error number

Descrição

fann_get_errno(resource $errdat): int

Returns the last error number.

Parâmetros

errdat

Um resource de rede neural ou um resource de dados de treinamento da rede neural.

Valor Retornado

The error number, or false on error.

Veja Também

  • fann_reset_errno() - Resets the last error number
  • fann_get_errstr() - Returns the last errstr


Returns the last errstr

  • « fann_get_errno
  • fann_get_layer_array »
  • PHP Manual
  • Fann Funções
  • Returns the last errstr

fann_get_errstr

(PECL fann >= 1.0.0)

fann_get_errstr — Returns the last errstr

Descrição

fann_get_errstr(resource $errdat): string

Returns the last errstr.

Parâmetros

errdat

Um resource de rede neural ou um resource de dados de treinamento da rede neural.

Valor Retornado

The last error string, or false on error.

Veja Também

  • fann_reset_errstr() - Resets the last error string
  • fann_get_errno() - Returns the last error number


Get the number of neurons in each layer in the network

  • « fann_get_errstr
  • fann_get_learning_momentum »
  • PHP Manual
  • Fann Funções
  • Get the number of neurons in each layer in the network

fann_get_layer_array

(PECL fann >= 1.0.0)

fann_get_layer_array — Get the number of neurons in each layer in the network

Descrição

fann_get_layer_array(resource $ann): array

Get the number of neurons in each layer in the neural network.

Bias is not included so the layers match the fann_create functions.

Parâmetros

ann

resource da rede neural.

Valor Retornado

An array of numbers of neurons in each leayer


Returns the learning momentum

  • « fann_get_layer_array
  • fann_get_learning_rate »
  • PHP Manual
  • Fann Funções
  • Returns the learning momentum

fann_get_learning_momentum

(PECL fann >= 1.0.0)

fann_get_learning_momentum — Returns the learning momentum

Descrição

fann_get_learning_momentum(resource $ann): float

The learning momentum can be used to speed up FANN_TRAIN_INCREMENTAL training. A too high momentum will however not benefit training. Setting momentum to 0 will be the same as not using the momentum parameter. The recommended value of this parameter is between 0.0 and 1.0.

The default momentum is 0.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

The learning momentum, or false on error.

Veja Também

  • fann_set_learning_momentum() - Sets the learning momentum
  • fann_set_training_algorithm() - Sets the training algorithm


Returns the learning rate

  • « fann_get_learning_momentum
  • fann_get_MSE »
  • PHP Manual
  • Fann Funções
  • Returns the learning rate

fann_get_learning_rate

(PECL fann >= 1.0.0)

fann_get_learning_rate — Returns the learning rate

Descrição

fann_get_learning_rate(resource $ann): float

The learning rate is used to determine how aggressive training should be for some of the training algorithms (FANN_TRAIN_INCREMENTAL, FANN_TRAIN_BATCH, FANN_TRAIN_QUICKPROP). Do however note that it is not used in FANN_TRAIN_RPROP.

The default learning rate is 0.7.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The learning rate, or false on error.

Veja Também

  • fann_set_learning_rate() - Sets the learning rate
  • fann_set_training_algorithm() - Sets the training algorithm


Reads the mean square error from the network

  • « fann_get_learning_rate
  • fann_get_network_type »
  • PHP Manual
  • Fann Funções
  • Reads the mean square error from the network

fann_get_MSE

(PECL fann >= 1.0.0)

fann_get_MSE — Reads the mean square error from the network

Descrição

fann_get_MSE(resource $ann): float

Reads the mean square error from the network.

Reads the mean square error from the network. This value is calculated during training or testing and can therefore sometimes be a bit off if the weights have been changed since the last calculation of the value.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The mean square error, or false on error.

Veja Também

  • fann_test_data() - Test a set of training data and calculates the MSE for the training data


Get the type of neural network it was created as

  • « fann_get_MSE
  • fann_get_num_input »
  • PHP Manual
  • Fann Funções
  • Get the type of neural network it was created as

fann_get_network_type

(PECL fann >= 1.0.0)

fann_get_network_type — Get the type of neural network it was created as

Descrição

fann_get_network_type(resource $ann): int

Get the type of neural network it was created as.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Network type constant, or false on error.


Get the number of input neurons

  • « fann_get_network_type
  • fann_get_num_layers »
  • PHP Manual
  • Fann Funções
  • Get the number of input neurons

fann_get_num_input

(PECL fann >= 1.0.0)

fann_get_num_input — Get the number of input neurons

Descrição

fann_get_num_input(resource $ann): int

Get the number of input neurons.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Number of input neurons, or false on error


Get the number of layers in the neural network

  • « fann_get_num_input
  • fann_get_num_output »
  • PHP Manual
  • Fann Funções
  • Get the number of layers in the neural network

fann_get_num_layers

(PECL fann >= 1.0.0)

fann_get_num_layers — Get the number of layers in the neural network

Descrição

fann_get_num_layers(resource $ann): int

Get the number of layers in the neural network.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The number of leayers in the neural network, or false on error.


Get the number of output neurons

  • « fann_get_num_layers
  • fann_get_quickprop_decay »
  • PHP Manual
  • Fann Funções
  • Get the number of output neurons

fann_get_num_output

(PECL fann >= 1.0.0)

fann_get_num_output — Get the number of output neurons

Descrição

fann_get_num_output(resource $ann): int

Get the number of output neurons.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Number of output neurons, or false on error


Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

  • « fann_get_num_output
  • fann_get_quickprop_mu »
  • PHP Manual
  • Fann Funções
  • Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

fann_get_quickprop_decay

(PECL fann >= 1.0.0)

fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

Descrição

fann_get_quickprop_decay(resource $ann): float

The decay is a small negative valued number which is a factor that the weights should decrease in each iteration during quickprop training. This is used to make sure that the weights do not become too high during training.

The default decay is -0.0001.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The decay, or false on error.

Veja Também

  • fann_set_quickprop_decay() - Sets the quickprop decay factor


Returns the mu factor

  • « fann_get_quickprop_decay
  • fann_get_rprop_decrease_factor »
  • PHP Manual
  • Fann Funções
  • Returns the mu factor

fann_get_quickprop_mu

(PECL fann >= 1.0.0)

fann_get_quickprop_mu — Returns the mu factor

Descrição

fann_get_quickprop_mu(resource $ann): float

The mu factor is used to increase and decrease the step-size during quickprop training. The mu factor should always be above 1, since it would otherwise decrease the step-size when it was suppose to increase it.

The default mu factor is 1.75.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The mu factor, or false on error.

Veja Também

  • fann_set_quickprop_mu() - Sets the quickprop mu factor


Returns the increase factor used during RPROP training

  • « fann_get_quickprop_mu
  • fann_get_rprop_delta_max »
  • PHP Manual
  • Fann Funções
  • Returns the increase factor used during RPROP training

fann_get_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training

Descrição

fann_get_rprop_decrease_factor(resource $ann): float

The decrease factor is a value smaller than 1, which is used to decrease the step-size during RPROP training.

The default decrease factor is 0.5.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The decrease factor, or false on error.

Veja Também

  • fann_set_rprop_decrease_factor() - Sets the decrease factor used during RPROP training


Returns the maximum step-size

  • « fann_get_rprop_decrease_factor
  • fann_get_rprop_delta_min »
  • PHP Manual
  • Fann Funções
  • Returns the maximum step-size

fann_get_rprop_delta_max

(PECL fann >= 1.0.0)

fann_get_rprop_delta_max — Returns the maximum step-size

Descrição

fann_get_rprop_delta_max(resource $ann): float

The maximum step-size is a positive number determining how large the maximum step-size may be.

The default delta max is 50.0.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The maximum step-size, or false on error.

Veja Também

  • fann_set_rprop_delta_max() - Sets the maximum step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size


Returns the minimum step-size

  • « fann_get_rprop_delta_max
  • fann_get_rprop_delta_zero »
  • PHP Manual
  • Fann Funções
  • Returns the minimum step-size

fann_get_rprop_delta_min

(PECL fann >= 1.0.0)

fann_get_rprop_delta_min — Returns the minimum step-size

Descrição

fann_get_rprop_delta_min(resource $ann): float

The minimum step-size is a small positive number determining how small the minimum step-size may be.

The default value delta min is 0.0.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The minimum step-size, or false on error.

Veja Também

  • fann_set_rprop_delta_min() - Sets the minimum step-size


Returns the initial step-size

  • « fann_get_rprop_delta_min
  • fann_get_rprop_increase_factor »
  • PHP Manual
  • Fann Funções
  • Returns the initial step-size

fann_get_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_get_rprop_delta_zero — Returns the initial step-size

Descrição

fann_get_rprop_delta_zero(resource $ann): int

The initial step-size is a positive number determining the initial step size.

The default delta zero is 0.1.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The initial step-size, or false on error.

Veja Também

  • fann_set_rprop_delta_zero() - Sets the initial step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size
  • fann_get_rprop_delta_max() - Returns the maximum step-size


Returns the increase factor used during RPROP training

  • « fann_get_rprop_delta_zero
  • fann_get_sarprop_step_error_shift »
  • PHP Manual
  • Fann Funções
  • Returns the increase factor used during RPROP training

fann_get_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training

Descrição

fann_get_rprop_increase_factor(resource $ann): float

The increase factor is a value larger than 1, which is used to increase the step-size during RPROP training.

The default increase factor is 1.2.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The increase factor, or false on error.

Veja Também

  • fann_set_rprop_increase_factor() - Sets the increase factor used during RPROP training


Returns the sarprop step error shift

  • « fann_get_rprop_increase_factor
  • fann_get_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Fann Funções
  • Returns the sarprop step error shift

fann_get_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_shift — Returns the sarprop step error shift

Descrição

fann_get_sarprop_step_error_shift(resource $ann): float

Returns the sarprop step error shift.

The default step error shift is 1.385.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The sarprop step error shift , or false on error.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_set_sarprop_step_error_shift() - Sets the sarprop step error shift


Returns the sarprop step error threshold factor

  • « fann_get_sarprop_step_error_shift
  • fann_get_sarprop_temperature »
  • PHP Manual
  • Fann Funções
  • Returns the sarprop step error threshold factor

fann_get_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor

Descrição

fann_get_sarprop_step_error_threshold_factor(resource $ann): float

The sarprop step error threshold factor.

The default factor is 0.1.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The sarprop step error threshold factor, or false on error.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_set_sarprop_step_error_threshold_factor() - Sets the sarprop step error threshold factor


Returns the sarprop temperature

  • « fann_get_sarprop_step_error_threshold_factor
  • fann_get_sarprop_weight_decay_shift »
  • PHP Manual
  • Fann Funções
  • Returns the sarprop temperature

fann_get_sarprop_temperature

(PECL fann >= 1.0.0)

fann_get_sarprop_temperature — Returns the sarprop temperature

Descrição

fann_get_sarprop_temperature(resource $ann): float

Returns the sarprop temperature.

The default temperature is 0.015.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The sarprop temperature, or false on error.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_set_sarprop_temperature() - Sets the sarprop temperature


Returns the sarprop weight decay shift

  • « fann_get_sarprop_temperature
  • fann_get_total_connections »
  • PHP Manual
  • Fann Funções
  • Returns the sarprop weight decay shift

fann_get_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift

Descrição

fann_get_sarprop_weight_decay_shift(resource $ann): float

The sarprop weight decay shift.

The default delta max is -6.644.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The sarprop weight decay shift, or false on error.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_set_sarprop_weight_decay_shift() - Sets the sarprop weight decay shift


Get the total number of connections in the entire network

  • « fann_get_sarprop_weight_decay_shift
  • fann_get_total_neurons »
  • PHP Manual
  • Fann Funções
  • Get the total number of connections in the entire network

fann_get_total_connections

(PECL fann >= 1.0.0)

fann_get_total_connections — Get the total number of connections in the entire network

Descrição

fann_get_total_connections(resource $ann): int

Get the total number of connections in the entire network.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Total number of connections in the entire network, or false on error


Get the total number of neurons in the entire network

  • « fann_get_total_connections
  • fann_get_train_error_function »
  • PHP Manual
  • Fann Funções
  • Get the total number of neurons in the entire network

fann_get_total_neurons

(PECL fann >= 1.0.0)

fann_get_total_neurons — Get the total number of neurons in the entire network

Descrição

fann_get_total_neurons(resource $ann): int

Get the total number of neurons in the entire network. This number does also include the bias neurons, so a 2-4-2 network has 2+4+2 +2(bias) = 10 neurons.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Total number of neurons in the entire network, or false on error.


Returns the error function used during training

  • « fann_get_total_neurons
  • fann_get_train_stop_function »
  • PHP Manual
  • Fann Funções
  • Returns the error function used during training

fann_get_train_error_function

(PECL fann >= 1.0.0)

fann_get_train_error_function — Returns the error function used during training

Descrição

fann_get_train_error_function(resource $ann): int

Returns the error function used during training.

The error functions are described further in error functions constants.

The default error function is FANN_ERRORFUNC_TANH.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The error function constant, or false on error.

Veja Também

  • fann_set_train_error_function() - Sets the error function used during training


Returns the stop function used during training

  • « fann_get_train_error_function
  • fann_get_training_algorithm »
  • PHP Manual
  • Fann Funções
  • Returns the stop function used during training

fann_get_train_stop_function

(PECL fann >= 1.0.0)

fann_get_train_stop_function — Returns the stop function used during training

Descrição

fann_get_train_stop_function(resource $ann): int

Returns the stop function used during training.

The stop functions are described further in stop functions constants.

The default stop function is FANN_STOPFUNC_MSE.

Parâmetros

ann

resource da rede neural.

Valor Retornado

The stop function constant, or false on error.

Veja Também

  • fann_set_train_stop_function() - Sets the stop function used during training


Returns the training algorithm

  • « fann_get_train_stop_function
  • fann_init_weights »
  • PHP Manual
  • Fann Funções
  • Returns the training algorithm

fann_get_training_algorithm

(PECL fann >= 1.0.0)

fann_get_training_algorithm — Returns the training algorithm

Descrição

fann_get_training_algorithm(resource $ann): int

Returns the training algorithm. This training algorithm is used by fann_train_on_data() and associated functions.

Note that this algorithm is also used during fann_cascadetrain_on_data(), although only FANN_TRAIN_RPROP and FANN_TRAIN_QUICKPROP is allowed during cascade training.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Training algorithm constant, or false on error.

Veja Também

  • fann_set_training_algorithm() - Sets the training algorithm


Initialize the weights using Widrow + Nguyen’s algorithm

  • « fann_get_training_algorithm
  • fann_length_train_data »
  • PHP Manual
  • Fann Funções
  • Initialize the weights using Widrow + Nguyen’s algorithm

fann_init_weights

(PECL fann >= 1.0.0)

fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm

Descrição

fann_init_weights(resource $ann, resource $train_data): bool

Initialize the weights using Widrow + Nguyen’s algorithm.

This function behaves similarly to fann_randomize_weights(). It will use the algorithm developed by Derrick Nguyen and Bernard Widrow to set the weights in such a way as to speed up training. This technique is not always successful, and in some cases can be less efficient than a purely random initialization.

The algorithm requires access to the range of the input data (for example largest and smallest input), and therefore accepts a second argument, data, which is the training data that will be used to train the network.

Parâmetros

ann

resource da rede neural.

train_data

resource dos dados de treinamento da rede neural.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_randomize_weights() - Give each connection a random weight between min_weight and max_weight
  • fann_read_train_from_file() - Reads a file that stores training data


Returns the number of training patterns in the train data

  • « fann_init_weights
  • fann_merge_train_data »
  • PHP Manual
  • Fann Funções
  • Returns the number of training patterns in the train data

fann_length_train_data

(PECL fann >= 1.0.0)

fann_length_train_data — Returns the number of training patterns in the train data

Descrição

fann_length_train_data(resource $data): int

Returns the number of training patterns in the train data resource.

Parâmetros

data

resource dos dados de treinamento da rede neural.

Valor Retornado

Number of elements in the train data resource, or false on error.


Merges the train data

  • « fann_length_train_data
  • fann_num_input_train_data »
  • PHP Manual
  • Fann Funções
  • Merges the train data

fann_merge_train_data

(PECL fann >= 1.0.0)

fann_merge_train_data — Merges the train data

Descrição

fann_merge_train_data(resource $data1, resource $data2): resource

Merges the data from data1 and data2 into a new train data resource.

Parâmetros

data1

resource dos dados de treinamento da rede neural.

data2

resource dos dados de treinamento da rede neural.

Valor Retornado

New merged train data resource, or false on error.


Returns the number of inputs in each of the training patterns in the train data

  • « fann_merge_train_data
  • fann_num_output_train_data »
  • PHP Manual
  • Fann Funções
  • Returns the number of inputs in each of the training patterns in the train data

fann_num_input_train_data

(PECL fann >= 1.0.0)

fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data

Descrição

fann_num_input_train_data(resource $data): int

Returns the number of inputs in each of the training patterns in the train data resource.

Parâmetros

data

resource dos dados de treinamento da rede neural.

Valor Retornado

The number of inputs, or false on error.

Veja Também

  • fann_length_train_data() - Returns the number of training patterns in the train data
  • fann_num_output_train_data() - Returns the number of outputs in each of the training patterns in the train data


Returns the number of outputs in each of the training patterns in the train data

  • « fann_num_input_train_data
  • fann_print_error »
  • PHP Manual
  • Fann Funções
  • Returns the number of outputs in each of the training patterns in the train data

fann_num_output_train_data

(PECL fann >= 1.0.0)

fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data

Descrição

fann_num_output_train_data(resource $data): int

Returns the number of outputs in each of the training patterns in the train data resource.

Parâmetros

data

resource dos dados de treinamento da rede neural.

Valor Retornado

The number of outputs, or false on error.

Veja Também

  • fann_length_train_data() - Returns the number of training patterns in the train data
  • fann_num_input_train_data() - Returns the number of inputs in each of the training patterns in the train data


Prints the error string

  • « fann_num_output_train_data
  • fann_randomize_weights »
  • PHP Manual
  • Fann Funções
  • Prints the error string

fann_print_error

(PECL fann >= 1.0.0)

fann_print_error — Prints the error string

Descrição

fann_print_error(resource $errdat): void

Prints the error string.

Parâmetros

errdat

Um resource de rede neural ou um resource de dados de treinamento da rede neural.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • fann_get_errstr() - Returns the last errstr


Give each connection a random weight between min_weight and max_weight

  • « fann_print_error
  • fann_read_train_from_file »
  • PHP Manual
  • Fann Funções
  • Give each connection a random weight between min_weight and max_weight

fann_randomize_weights

(PECL fann >= 1.0.0)

fann_randomize_weights — Give each connection a random weight between min_weight and max_weight

Descrição

fann_randomize_weights(resource $ann, float $min_weight, float $max_weight): bool

Give each connection a random weight between min_weight and max_weight

From the beginning the weights are random between -0.1 and 0.1.

Parâmetros

ann

resource da rede neural.

min_weight

Minimum weight value

max_weight

Maximum weight value

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_init_weights() - Initialize the weights using Widrow + Nguyen’s algorithm


Reads a file that stores training data

  • « fann_randomize_weights
  • fann_reset_errno »
  • PHP Manual
  • Fann Funções
  • Reads a file that stores training data

fann_read_train_from_file

(PECL fann >= 1.0.0)

fann_read_train_from_file — Reads a file that stores training data

Descrição

fann_read_train_from_file(string $filename): resource

Reads a file that stores training data.

Parâmetros

filename

The input file in the following format:

num_train_data num_input num_output
inputdata separated by space
outputdata separated by space

.
.
.

inputdata separated by space
outputdata separated by space

Valor Retornado

Retorna um resource de dados de treinamento em caso de sucesso ou false em caso de erro.

Exemplos

Exemplo #1 fann_read_train_from_file() example

<?php
$train_data = fann_read_train_from_file("xor.data");
if ($train_data) {
// Do something with $train_data for XOR function
}
?>

Contents of xor.data

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Veja Também

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Resets the last error number

  • « fann_read_train_from_file
  • fann_reset_errstr »
  • PHP Manual
  • Fann Funções
  • Resets the last error number

fann_reset_errno

(PECL fann >= 1.0.0)

fann_reset_errno — Resets the last error number

Descrição

fann_reset_errno(resource $errdat): void

Resets the last error number.

Parâmetros

errdat

Um resource de rede neural ou um resource de dados de treinamento da rede neural.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • fann_get_errno() - Returns the last error number
  • fann_reset_errstr() - Resets the last error string


Resets the last error string

  • « fann_reset_errno
  • fann_reset_MSE »
  • PHP Manual
  • Fann Funções
  • Resets the last error string

fann_reset_errstr

(PECL fann >= 1.0.0)

fann_reset_errstr — Resets the last error string

Descrição

fann_reset_errstr(resource $errdat): void

Resets the last error string.

Parâmetros

errdat

Um resource de rede neural ou um resource de dados de treinamento da rede neural.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • fann_get_errstr() - Returns the last errstr
  • fann_reset_errno() - Resets the last error number


Resets the mean square error from the network

  • « fann_reset_errstr
  • fann_run »
  • PHP Manual
  • Fann Funções
  • Resets the mean square error from the network

fann_reset_MSE

(PECL fann >= 1.0.0)

fann_reset_MSE — Resets the mean square error from the network

Descrição

fann_reset_MSE(string $ann): bool

Resets the mean square error from the network.

This function also resets the number of bits that fail.

Parâmetros

ann

resource da rede neural.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training


Will run input through the neural network

  • « fann_reset_MSE
  • fann_save_train »
  • PHP Manual
  • Fann Funções
  • Will run input through the neural network

fann_run

(PECL fann >= 1.0.0)

fann_run — Will run input through the neural network

Descrição

fann_run(resource $ann, array $input): array

Will run input through the neural network, returning an array of outputs, the number of which being equal to the number of neurons in the output layer.

Parâmetros

ann

resource da rede neural.

input

Array of input values

Valor Retornado

Array of output values, or false on error


Save the training structure to a file

  • « fann_run
  • fann_save »
  • PHP Manual
  • Fann Funções
  • Save the training structure to a file

fann_save_train

(PECL fann >= 1.0.0)

fann_save_train — Save the training structure to a file

Descrição

fann_save_train(resource $data, string $file_name): bool

Save the training data to a file, with the format as specified in fann_read_train_from_file().

Parâmetros

data

resource dos dados de treinamento da rede neural.

file_name

The file name of the file where training data is saved to.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_read_train_from_file() - Reads a file that stores training data


Saves the entire network to a configuration file

  • « fann_save_train
  • fann_scale_input_train_data »
  • PHP Manual
  • Fann Funções
  • Saves the entire network to a configuration file

fann_save

(PECL fann >= 1.0.0)

fann_save — Saves the entire network to a configuration file

Descrição

fann_save(resource $ann, string $configuration_file): bool

Saves the entire network to a configuration file.

The configuration file contains all information about the neural network and enables fann_create_from_file() to create an exact copy of the neural network and all of the parameters associated with the neural network.

These three parameters (fann_set_callback(), fann_set_error_log(), fann_set_user_data()) are NOT saved to the file because they cannot safely be ported to a different location. Also temporary parameters generated during training like fann_get_MSE() is not saved.

Parâmetros

ann

resource da rede neural.

configuration_file

The configuration file path.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_create_from_file() - Constructs a backpropagation neural network from a configuration file


Scales the inputs in the training data to the specified range

  • « fann_save
  • fann_scale_input »
  • PHP Manual
  • Fann Funções
  • Scales the inputs in the training data to the specified range

fann_scale_input_train_data

(PECL fann >= 1.0.0)

fann_scale_input_train_data — Scales the inputs in the training data to the specified range

Descrição

fann_scale_input_train_data(resource $train_data, float $new_min, float $new_max): bool

Scales the inputs in the training data to the specified range.

Parâmetros

train_data

resource dos dados de treinamento da rede neural.

new_min

New minimum after scaling inputs in training data.

new_max

New maximum after scaling inputs in training data.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_scale_output_train_data() - Scales the outputs in the training data to the specified range
  • fann_scale_train_data() - Scales the inputs and outputs in the training data to the specified range


Scale data in input vector before feed it to ann based on previously calculated parameters

  • « fann_scale_input_train_data
  • fann_scale_output_train_data »
  • PHP Manual
  • Fann Funções
  • Scale data in input vector before feed it to ann based on previously calculated parameters

fann_scale_input

(PECL fann >= 1.0.0)

fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters

Descrição

fann_scale_input(resource $ann, array $input_vector): bool

Scale data in input vector before feed it to ann based on previously calculated parameters.

Parâmetros

ann

resource da rede neural.

input_vector

Input vector that will be scaled

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_descale_input() - Scale data in input vector after get it from ann based on previously calculated parameters
  • fann_scale_output() - Scale data in output vector before feed it to ann based on previously calculated parameters


Scales the outputs in the training data to the specified range

  • « fann_scale_input
  • fann_scale_output »
  • PHP Manual
  • Fann Funções
  • Scales the outputs in the training data to the specified range

fann_scale_output_train_data

(PECL fann >= 1.0.0)

fann_scale_output_train_data — Scales the outputs in the training data to the specified range

Descrição

fann_scale_output_train_data(resource $train_data, float $new_min, float $new_max): bool

Scales the outputs in the training data to the specified range.

Parâmetros

train_data

resource dos dados de treinamento da rede neural.

new_min

New minimum after scaling outputs in training data.

new_max

New maximum after scaling outputs in training data.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_scale_input_train_data() - Scales the inputs in the training data to the specified range
  • fann_scale_train_data() - Scales the inputs and outputs in the training data to the specified range


Scale data in output vector before feed it to ann based on previously calculated parameters

  • « fann_scale_output_train_data
  • fann_scale_train_data »
  • PHP Manual
  • Fann Funções
  • Scale data in output vector before feed it to ann based on previously calculated parameters

fann_scale_output

(PECL fann >= 1.0.0)

fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters

Descrição

fann_scale_output(resource $ann, array $output_vector): bool

Scale data in output vector before feed it to ann based on previously calculated parameters.

Parâmetros

ann

resource da rede neural.

output_vector

Output vector that will be scaled

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_descale_output() - Scale data in output vector after get it from ann based on previously calculated parameters
  • fann_scale_input() - Scale data in input vector before feed it to ann based on previously calculated parameters


Scales the inputs and outputs in the training data to the specified range

  • « fann_scale_output
  • fann_scale_train »
  • PHP Manual
  • Fann Funções
  • Scales the inputs and outputs in the training data to the specified range

fann_scale_train_data

(PECL fann >= 1.0.0)

fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range

Descrição

fann_scale_train_data(resource $train_data, float $new_min, float $new_max): bool

Scales the inputs and outputs in the training data to the specified range.

Parâmetros

train_data

resource dos dados de treinamento da rede neural.

new_min

New minimum after scaling inputs and outputs in training data.

new_max

New maximum after scaling inputs and outputs in training data.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_scale_output_train_data() - Scales the outputs in the training data to the specified range
  • fann_scale_input_train_data() - Scales the inputs in the training data to the specified range


Scale input and output data based on previously calculated parameters

  • « fann_scale_train_data
  • fann_set_activation_function_hidden »
  • PHP Manual
  • Fann Funções
  • Scale input and output data based on previously calculated parameters

fann_scale_train

(PECL fann >= 1.0.0)

fann_scale_train — Scale input and output data based on previously calculated parameters

Descrição

fann_scale_train(resource $ann, resource $train_data): bool

Scale input and output data based on previously calculated parameters.

Parâmetros

ann

resource da rede neural.

train_data

resource dos dados de treinamento da rede neural.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_descale_train() - Descale input and output data based on previously calculated parameters
  • fann_set_scaling_params() - Calculate input and output scaling parameters for future use based on training data


Sets the activation function for all of the hidden layers

  • « fann_scale_train
  • fann_set_activation_function_layer »
  • PHP Manual
  • Fann Funções
  • Sets the activation function for all of the hidden layers

fann_set_activation_function_hidden

(PECL fann >= 1.0.0)

fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers

Descrição

fann_set_activation_function_hidden(resource $ann, int $activation_function): bool

Sets the activation function for all of the hidden layers.

Parâmetros

ann

resource da rede neural.

activation_function

The activation functions constant.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for all the neurons in the supplied layer

  • « fann_set_activation_function_hidden
  • fann_set_activation_function_output »
  • PHP Manual
  • Fann Funções
  • Sets the activation function for all the neurons in the supplied layer

fann_set_activation_function_layer

(PECL fann >= 1.0.0)

fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer

Descrição

fann_set_activation_function_layer(resource $ann, int $activation_function, int $layer): bool

Set the activation function for all the neurons in the layer number layer, counting the input layer as layer 0.

It is not possible to set activation functions for the neurons in the input layer.

Parâmetros

ann

resource da rede neural.

activation_function

The activation functions constant.

layer

Layer number.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for the output layer

  • « fann_set_activation_function_layer
  • fann_set_activation_function »
  • PHP Manual
  • Fann Funções
  • Sets the activation function for the output layer

fann_set_activation_function_output

(PECL fann >= 1.0.0)

fann_set_activation_function_output — Sets the activation function for the output layer

Descrição

fann_set_activation_function_output(resource $ann, int $activation_function): bool

Sets the activation function for the output layer.

Parâmetros

ann

resource da rede neural.

activation_function

The activation functions constant.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for supplied neuron and layer

  • « fann_set_activation_function_output
  • fann_set_activation_steepness_hidden »
  • PHP Manual
  • Fann Funções
  • Sets the activation function for supplied neuron and layer

fann_set_activation_function

(PECL fann >= 1.0.0)

fann_set_activation_function — Sets the activation function for supplied neuron and layer

Descrição

fann_set_activation_function(
resource $ann,
int $activation_function,
int $layer,
int $neuron
): bool

Set the activation function for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to set activation functions for the neurons in the input layer.

When choosing an activation function it is important to note that the activation functions have different range. FANN_SIGMOID is e.g. in the 0 - 1 range while FANN_SIGMOID_SYMMETRIC is in the -1 - 1 range and FANN_LINEAR is unbound.

The supplied activation_function value must be one of the activation functions constants.

The return value is one of the activation functions constants.

Parâmetros

ann

resource da rede neural.

activation_function

The activation functions constant.

layer

Layer number.

neuron

Neuron number.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_get_activation_function() - Returns the activation function


Sets the steepness of the activation steepness for all neurons in the all hidden layers

  • « fann_set_activation_function
  • fann_set_activation_steepness_layer »
  • PHP Manual
  • Fann Funções
  • Sets the steepness of the activation steepness for all neurons in the all hidden layers

fann_set_activation_steepness_hidden

(PECL fann >= 1.0.0)

fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers

Descrição

fann_set_activation_steepness_hidden(resource $ann, float $activation_steepness): bool

Sets the steepness of the activation steepness for all neurons in the all hidden layers.

Parâmetros

ann

resource da rede neural.

activation_steepness

The activation steepness.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the activation steepness for all of the neurons in the supplied layer number

  • « fann_set_activation_steepness_hidden
  • fann_set_activation_steepness_output »
  • PHP Manual
  • Fann Funções
  • Sets the activation steepness for all of the neurons in the supplied layer number

fann_set_activation_steepness_layer

(PECL fann >= 1.0.0)

fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number

Descrição

fann_set_activation_steepness_layer(resource $ann, float $activation_steepness, int $layer): bool

Set the activation steepness for all of the neurons in layer number layer, counting the input layer as layer 0.

It is not possible to set activation steepness for the neurons in the input layer.

Parâmetros

ann

resource da rede neural.

activation_steepness

The activation steepness.

layer

Layer number.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the steepness of the activation steepness in the output layer

  • « fann_set_activation_steepness_layer
  • fann_set_activation_steepness »
  • PHP Manual
  • Fann Funções
  • Sets the steepness of the activation steepness in the output layer

fann_set_activation_steepness_output

(PECL fann >= 1.0.0)

fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer

Descrição

fann_set_activation_steepness_output(resource $ann, float $activation_steepness): bool

Sets the steepness of the activation steepness in the output layer.

Parâmetros

ann

resource da rede neural.

activation_steepness

The activation steepness.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the activation steepness for supplied neuron and layer number

  • « fann_set_activation_steepness_output
  • fann_set_bit_fail_limit »
  • PHP Manual
  • Fann Funções
  • Sets the activation steepness for supplied neuron and layer number

fann_set_activation_steepness

(PECL fann >= 1.0.0)

fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number

Descrição

fann_set_activation_steepness(
resource $ann,
float $activation_steepness,
int $layer,
int $neuron
): bool

Set the activation steepness for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to set activation steepness for the neurons in the input layer.

The steepness of an activation function says something about how fast the activation function goes from the minimum to the maximum. A high value for the activation function will also give a more aggressive training.

When training neural networks where the output values should be at the extremes (usually 0 and 1, depending on the activation function), a steep activation function can be used (e.g. 1.0).

The default activation steepness is 0.5.

Parâmetros

ann

resource da rede neural.

activation_steepness

The activation steepness.

layer

Layer number.

neuron

Neuron number.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Set the bit fail limit used during training

  • « fann_set_activation_steepness
  • fann_set_callback »
  • PHP Manual
  • Fann Funções
  • Set the bit fail limit used during training

fann_set_bit_fail_limit

(PECL fann >= 1.0.0)

fann_set_bit_fail_limit — Set the bit fail limit used during training

Descrição

fann_set_bit_fail_limit(resource $ann, float $bit_fail_limit): bool

Set the bit fail limit used during training.

Parâmetros

ann

resource da rede neural.

bit_fail_limit

The bit fail limit.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training


Sets the callback function for use during training

  • « fann_set_bit_fail_limit
  • fann_set_cascade_activation_functions »
  • PHP Manual
  • Fann Funções
  • Sets the callback function for use during training

fann_set_callback

(PECL fann >= 1.0.0)

fann_set_callback — Sets the callback function for use during training

Descrição

fann_set_callback(resource $ann, callable $callback): bool

Sets the callback function for use during training. It means that it is called from fann_train_on_data() or fann_train_on_file().

Parâmetros

ann

resource da rede neural.

callback

The supplied callback function takes following parameters:

  • ann - The neural network resource
  • train - The train data resource or null if called from fann_train_on_file()
  • max_epochs - The maximum number of epochs the training should continue
  • epochs_between_reports - The number of epochs between calling this function
  • desired_error - The desired fann_get_MSE() or fann_get_bit_fail(), depending on the stop function chosen by fann_set_train_stop_function()
  • epochs - The current epoch

The callback should return true. If it returns false, the training will terminate.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_on_file() - Trains on an entire dataset, which is read from file, for a period of time


Sets the array of cascade candidate activation functions

  • « fann_set_callback
  • fann_set_cascade_activation_steepnesses »
  • PHP Manual
  • Fann Funções
  • Sets the array of cascade candidate activation functions

fann_set_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions

Descrição

fann_set_cascade_activation_functions(resource $ann, array $cascade_activation_functions): bool

Sets the array of cascade candidate activation functions.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

Parâmetros

ann

resource da rede neural.

cascade_activation_functions

The array of cascade candidate activation functions.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_set_cascade_activation_functions()


Sets the array of cascade candidate activation steepnesses

  • « fann_set_cascade_activation_functions
  • fann_set_cascade_candidate_change_fraction »
  • PHP Manual
  • Fann Funções
  • Sets the array of cascade candidate activation steepnesses

fann_set_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses

Descrição

fann_set_cascade_activation_steepnesses(resource $ann, array $cascade_activation_steepnesses_count): bool

Sets the array of cascade candidate activation steepnesses.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

Parâmetros

ann

resource da rede neural.

cascade_activation_steepnesses_count

The array of cascade candidate activation steepnesses.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses


Sets the cascade candidate change fraction

  • « fann_set_cascade_activation_steepnesses
  • fann_set_cascade_candidate_limit »
  • PHP Manual
  • Fann Funções
  • Sets the cascade candidate change fraction

fann_set_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction

Descrição

fann_set_cascade_candidate_change_fraction(resource $ann, float $cascade_candidate_change_fraction): bool

Sets the cascade candidate change fraction.

Parâmetros

ann

resource da rede neural.

cascade_candidate_change_fraction

The cascade candidate change fraction.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_candidate_change_fraction() - Returns the cascade candidate change fraction


Sets the candidate limit

  • « fann_set_cascade_candidate_change_fraction
  • fann_set_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Fann Funções
  • Sets the candidate limit

fann_set_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_limit — Sets the candidate limit

Descrição

fann_set_cascade_candidate_limit(resource $ann, float $cascade_candidate_limit): bool

Sets the candidate limit.

Parâmetros

ann

resource da rede neural.

cascade_candidate_limit

The candidate limit.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_candidate_limit() - Return the candidate limit


Sets the number of cascade candidate stagnation epochs

  • « fann_set_cascade_candidate_limit
  • fann_set_cascade_max_cand_epochs »
  • PHP Manual
  • Fann Funções
  • Sets the number of cascade candidate stagnation epochs

fann_set_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs

Descrição

fann_set_cascade_candidate_stagnation_epochs(resource $ann, int $cascade_candidate_stagnation_epochs): bool

Sets the number of cascade candidate stagnation epochs.

Parâmetros

ann

resource da rede neural.

cascade_candidate_stagnation_epochs

The number of cascade candidate stagnation epochs.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_candidate_stagnation_epochs() - Returns the number of cascade candidate stagnation epochs


Sets the max candidate epochs

  • « fann_set_cascade_candidate_stagnation_epochs
  • fann_set_cascade_max_out_epochs »
  • PHP Manual
  • Fann Funções
  • Sets the max candidate epochs

fann_set_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_cand_epochs — Sets the max candidate epochs

Descrição

fann_set_cascade_max_cand_epochs(resource $ann, int $cascade_max_cand_epochs): bool

Sets the max candidate epochs.

Parâmetros

ann

resource da rede neural.

cascade_max_cand_epochs

The max candidate epochs.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_max_cand_epochs() - Returns the maximum candidate epochs


Sets the maximum out epochs

  • « fann_set_cascade_max_cand_epochs
  • fann_set_cascade_min_cand_epochs »
  • PHP Manual
  • Fann Funções
  • Sets the maximum out epochs

fann_set_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_out_epochs — Sets the maximum out epochs

Descrição

fann_set_cascade_max_out_epochs(resource $ann, int $cascade_max_out_epochs): bool

Sets the maximum out epochs.

Parâmetros

ann

resource da rede neural.

cascade_max_out_epochs

The maximum out epochs.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_max_out_epochs() - Returns the maximum out epochs


Sets the min candidate epochs

  • « fann_set_cascade_max_out_epochs
  • fann_set_cascade_min_out_epochs »
  • PHP Manual
  • Fann Funções
  • Sets the min candidate epochs

fann_set_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_cand_epochs — Sets the min candidate epochs

Descrição

fann_set_cascade_min_cand_epochs(resource $ann, int $cascade_min_cand_epochs): bool

Sets the min candidate epochs.

Parâmetros

ann

resource da rede neural.

cascade_min_cand_epochs

The minimum candidate epochs.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_get_cascade_min_cand_epochs() - Returns the minimum candidate epochs


Sets the minimum out epochs

  • « fann_set_cascade_min_cand_epochs
  • fann_set_cascade_num_candidate_groups »
  • PHP Manual
  • Fann Funções
  • Sets the minimum out epochs

fann_set_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_out_epochs — Sets the minimum out epochs

Descrição

fann_set_cascade_min_out_epochs(resource $ann, int $cascade_min_out_epochs): bool

Sets the minimum out epochs.

Parâmetros

ann

resource da rede neural.

cascade_min_out_epochs

The minimum out epochs.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_get_cascade_min_out_epochs() - Returns the minimum out epochs


Sets the number of candidate groups

  • « fann_set_cascade_min_out_epochs
  • fann_set_cascade_output_change_fraction »
  • PHP Manual
  • Fann Funções
  • Sets the number of candidate groups

fann_set_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_set_cascade_num_candidate_groups — Sets the number of candidate groups

Descrição

fann_set_cascade_num_candidate_groups(resource $ann, int $cascade_num_candidate_groups): bool

Sets the number of candidate groups.

Parâmetros

ann

resource da rede neural.

cascade_num_candidate_groups

The number of candidate groups.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_num_candidate_groups() - Returns the number of candidate groups


Sets the cascade output change fraction

  • « fann_set_cascade_num_candidate_groups
  • fann_set_cascade_output_stagnation_epochs »
  • PHP Manual
  • Fann Funções
  • Sets the cascade output change fraction

fann_set_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_output_change_fraction — Sets the cascade output change fraction

Descrição

fann_set_cascade_output_change_fraction(resource $ann, float $cascade_output_change_fraction): bool

Sets the cascade output change fraction.

Parâmetros

ann

resource da rede neural.

cascade_output_change_fraction

The cascade output change fraction.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_output_change_fraction() - Returns the cascade output change fraction


Sets the number of cascade output stagnation epochs

  • « fann_set_cascade_output_change_fraction
  • fann_set_cascade_weight_multiplier »
  • PHP Manual
  • Fann Funções
  • Sets the number of cascade output stagnation epochs

fann_set_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs

Descrição

fann_set_cascade_output_stagnation_epochs(resource $ann, int $cascade_output_stagnation_epochs): bool

Sets the number of cascade output stagnation epochs.

Parâmetros

ann

resource da rede neural.

cascade_output_stagnation_epochs

The number of cascade output stagnation epochs.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_output_stagnation_epochs() - Returns the number of cascade output stagnation epochs


Sets the weight multiplier

  • « fann_set_cascade_output_stagnation_epochs
  • fann_set_error_log »
  • PHP Manual
  • Fann Funções
  • Sets the weight multiplier

fann_set_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_set_cascade_weight_multiplier — Sets the weight multiplier

Descrição

fann_set_cascade_weight_multiplier(resource $ann, float $cascade_weight_multiplier): bool

Sets the weight multiplier.

Parâmetros

ann

resource da rede neural.

cascade_weight_multiplier

The weight multiplier.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_cascade_weight_multiplier() - Returns the weight multiplier


Sets where the errors are logged to

  • « fann_set_cascade_weight_multiplier
  • fann_set_input_scaling_params »
  • PHP Manual
  • Fann Funções
  • Sets where the errors are logged to

fann_set_error_log

(PECL fann >= 1.0.0)

fann_set_error_log — Sets where the errors are logged to

Descrição

fann_set_error_log(resource $errdat, string $log_file): void

Sets where the errors are logged to.

Parâmetros

errdat

Um resource de rede neural ou um resource de dados de treinamento da rede neural.

log_file

The log file path.

Valor Retornado

Nenhum valor é retornado.


Calculate input scaling parameters for future use based on training data

  • « fann_set_error_log
  • fann_set_learning_momentum »
  • PHP Manual
  • Fann Funções
  • Calculate input scaling parameters for future use based on training data

fann_set_input_scaling_params

(PECL fann >= 1.0.0)

fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data

Descrição

fann_set_input_scaling_params(
resource $ann,
resource $train_data,
float $new_input_min,
float $new_input_max
): bool

Calculate input scaling parameters for future use based on training data.

Parâmetros

ann

resource da rede neural.

train_data

resource dos dados de treinamento da rede neural.

new_input_min

The desired lower bound in input data after scaling (not strictly followed)

new_input_max

The desired upper bound in input data after scaling (not strictly followed)

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_output_scaling_params() - Calculate output scaling parameters for future use based on training data


Sets the learning momentum

  • « fann_set_input_scaling_params
  • fann_set_learning_rate »
  • PHP Manual
  • Fann Funções
  • Sets the learning momentum

fann_set_learning_momentum

(PECL fann >= 1.0.0)

fann_set_learning_momentum — Sets the learning momentum

Descrição

fann_set_learning_momentum(resource $ann, float $learning_momentum): bool

Sets the learning momentum.

More info available in fann_get_learning_momentum().

Parâmetros

ann

resource da rede neural.

learning_momentum

The learning momentum.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_learning_momentum() - Returns the learning momentum
  • fann_set_training_algorithm() - Sets the training algorithm


Sets the learning rate

  • « fann_set_learning_momentum
  • fann_set_output_scaling_params »
  • PHP Manual
  • Fann Funções
  • Sets the learning rate

fann_set_learning_rate

(PECL fann >= 1.0.0)

fann_set_learning_rate — Sets the learning rate

Descrição

fann_set_learning_rate(resource $ann, float $learning_rate): bool

Sets the learning rate.

More info available in fann_get_learning_rate().

Parâmetros

ann

resource da rede neural.

learning_rate

The learning rate.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_learning_rate() - Returns the learning rate
  • fann_set_training_algorithm() - Sets the training algorithm


Calculate output scaling parameters for future use based on training data

  • « fann_set_learning_rate
  • fann_set_quickprop_decay »
  • PHP Manual
  • Fann Funções
  • Calculate output scaling parameters for future use based on training data

fann_set_output_scaling_params

(PECL fann >= 1.0.0)

fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data

Descrição

fann_set_output_scaling_params(
resource $ann,
resource $train_data,
float $new_output_min,
float $new_output_max
): bool

Calculate output scaling parameters for future use based on training data.

Parâmetros

ann

resource da rede neural.

train_data

resource dos dados de treinamento da rede neural.

new_output_min

The desired lower bound in output data after scaling (not strictly followed)

new_output_max

The desired upper bound in output data after scaling (not strictly followed)

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_input_scaling_params() - Calculate input scaling parameters for future use based on training data


Sets the quickprop decay factor

  • « fann_set_output_scaling_params
  • fann_set_quickprop_mu »
  • PHP Manual
  • Fann Funções
  • Sets the quickprop decay factor

fann_set_quickprop_decay

(PECL fann >= 1.0.0)

fann_set_quickprop_decay — Sets the quickprop decay factor

Descrição

fann_set_quickprop_decay(resource $ann, float $quickprop_decay): bool

Sets the quickprop decay factor.

Parâmetros

ann

resource da rede neural.

quickprop_decay

The quickprop decay factor.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_quickprop_decay() - Returns the decay which is a factor that weights should decrease in each iteration during quickprop training


Sets the quickprop mu factor

  • « fann_set_quickprop_decay
  • fann_set_rprop_decrease_factor »
  • PHP Manual
  • Fann Funções
  • Sets the quickprop mu factor

fann_set_quickprop_mu

(PECL fann >= 1.0.0)

fann_set_quickprop_mu — Sets the quickprop mu factor

Descrição

fann_set_quickprop_mu(resource $ann, float $quickprop_mu): bool

Sets the quickprop mu factor.

Parâmetros

ann

resource da rede neural.

quickprop_mu

The mu factor.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_quickprop_mu() - Returns the mu factor


Sets the decrease factor used during RPROP training

  • « fann_set_quickprop_mu
  • fann_set_rprop_delta_max »
  • PHP Manual
  • Fann Funções
  • Sets the decrease factor used during RPROP training

fann_set_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training

Descrição

fann_set_rprop_decrease_factor(resource $ann, float $rprop_decrease_factor): bool

Sets the decrease factor used during RPROP training.

Parâmetros

ann

resource da rede neural.

rprop_decrease_factor

The decrease factor.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_rprop_decrease_factor() - Returns the increase factor used during RPROP training


Sets the maximum step-size

  • « fann_set_rprop_decrease_factor
  • fann_set_rprop_delta_min »
  • PHP Manual
  • Fann Funções
  • Sets the maximum step-size

fann_set_rprop_delta_max

(PECL fann >= 1.0.0)

fann_set_rprop_delta_max — Sets the maximum step-size

Descrição

fann_set_rprop_delta_max(resource $ann, float $rprop_delta_max): bool

The maximum step-size is a positive number determining how large the maximum step-size may be.

Parâmetros

ann

resource da rede neural.

rprop_delta_max

The maximum step-size.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_rprop_delta_max() - Returns the maximum step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size


Sets the minimum step-size

  • « fann_set_rprop_delta_max
  • fann_set_rprop_delta_zero »
  • PHP Manual
  • Fann Funções
  • Sets the minimum step-size

fann_set_rprop_delta_min

(PECL fann >= 1.0.0)

fann_set_rprop_delta_min — Sets the minimum step-size

Descrição

fann_set_rprop_delta_min(resource $ann, float $rprop_delta_min): bool

The minimum step-size is a small positive number determining how small the minimum step-size may be.

Parâmetros

ann

resource da rede neural.

rprop_delta_min

The minimum step-size.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_rprop_delta_min() - Returns the minimum step-size


Sets the initial step-size

  • « fann_set_rprop_delta_min
  • fann_set_rprop_increase_factor »
  • PHP Manual
  • Fann Funções
  • Sets the initial step-size

fann_set_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_set_rprop_delta_zero — Sets the initial step-size

Descrição

fann_set_rprop_delta_zero(resource $ann, float $rprop_delta_zero): bool

The initial step-size is a positive number determining the initial step size.

Parâmetros

ann

resource da rede neural.

rprop_delta_zero

The initial step-size.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_rprop_delta_zero() - Returns the initial step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size
  • fann_get_rprop_delta_max() - Returns the maximum step-size


Sets the increase factor used during RPROP training

  • « fann_set_rprop_delta_zero
  • fann_set_sarprop_step_error_shift »
  • PHP Manual
  • Fann Funções
  • Sets the increase factor used during RPROP training

fann_set_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training

Descrição

fann_set_rprop_increase_factor(resource $ann, float $rprop_increase_factor): bool

Sets the increase factor used during RPROP training.

Parâmetros

ann

resource da rede neural.

rprop_increase_factor

The increase factor.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_rprop_increase_factor() - Returns the increase factor used during RPROP training


Sets the sarprop step error shift

  • « fann_set_rprop_increase_factor
  • fann_set_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Fann Funções
  • Sets the sarprop step error shift

fann_set_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_shift — Sets the sarprop step error shift

Descrição

fann_set_sarprop_step_error_shift(resource $ann, float $sarprop_step_error_shift): bool

Sets the sarprop step error shift.

Parâmetros

ann

resource da rede neural.

sarprop_step_error_shift

The sarprop step error shift.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_get_sarprop_step_error_shift() - Returns the sarprop step error shift


Sets the sarprop step error threshold factor

  • « fann_set_sarprop_step_error_shift
  • fann_set_sarprop_temperature »
  • PHP Manual
  • Fann Funções
  • Sets the sarprop step error threshold factor

fann_set_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor

Descrição

fann_set_sarprop_step_error_threshold_factor(resource $ann, float $sarprop_step_error_threshold_factor): bool

Sets the sarprop step error threshold factor.

Parâmetros

ann

resource da rede neural.

sarprop_step_error_threshold_factor

The sarprop step error threshold factor.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_get_sarprop_step_error_threshold_factor() - Returns the sarprop step error threshold factor


Sets the sarprop temperature

  • « fann_set_sarprop_step_error_threshold_factor
  • fann_set_sarprop_weight_decay_shift »
  • PHP Manual
  • Fann Funções
  • Sets the sarprop temperature

fann_set_sarprop_temperature

(PECL fann >= 1.0.0)

fann_set_sarprop_temperature — Sets the sarprop temperature

Descrição

fann_set_sarprop_temperature(resource $ann, float $sarprop_temperature): bool

Sets the sarprop temperature.

Parâmetros

ann

resource da rede neural.

sarprop_temperature

The sarprop temperature.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_get_sarprop_temperature() - Returns the sarprop temperature


Sets the sarprop weight decay shift

  • « fann_set_sarprop_temperature
  • fann_set_scaling_params »
  • PHP Manual
  • Fann Funções
  • Sets the sarprop weight decay shift

fann_set_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift

Descrição

fann_set_sarprop_weight_decay_shift(resource $ann, float $sarprop_weight_decay_shift): bool

Sets the sarprop weight decay shift.

Parâmetros

ann

resource da rede neural.

sarprop_weight_decay_shift

The sarprop weight decay shift.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Notas

Nota:

Esta função só estará disponível se a extensão fann tiver sido compilada usando a biblioteca libfann >= 2.2.

Veja Também

  • fann_get_sarprop_weight_decay_shift() - Returns the sarprop weight decay shift


Calculate input and output scaling parameters for future use based on training data

  • « fann_set_sarprop_weight_decay_shift
  • fann_set_train_error_function »
  • PHP Manual
  • Fann Funções
  • Calculate input and output scaling parameters for future use based on training data

fann_set_scaling_params

(PECL fann >= 1.0.0)

fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data

Descrição

fann_set_scaling_params(
resource $ann,
resource $train_data,
float $new_input_min,
float $new_input_max,
float $new_output_min,
float $new_output_max
): bool

Calculate input and output scaling parameters for future use based on training data.

Parâmetros

ann

resource da rede neural.

train_data

resource dos dados de treinamento da rede neural.

new_input_min

The desired lower bound in input data after scaling (not strictly followed)

new_input_max

The desired upper bound in input data after scaling (not strictly followed)

new_output_min

The desired lower bound in output data after scaling (not strictly followed)

new_output_max

The desired upper bound in output data after scaling (not strictly followed)

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_set_input_scaling_params() - Calculate input scaling parameters for future use based on training data
  • fann_set_output_scaling_params() - Calculate output scaling parameters for future use based on training data


Sets the error function used during training

  • « fann_set_scaling_params
  • fann_set_train_stop_function »
  • PHP Manual
  • Fann Funções
  • Sets the error function used during training

fann_set_train_error_function

(PECL fann >= 1.0.0)

fann_set_train_error_function — Sets the error function used during training

Descrição

fann_set_train_error_function(resource $ann, int $error_function): bool

Sets the error function used during training.

The error functions are described further in error functions constants.

Parâmetros

ann

resource da rede neural.

error_function

The error function constant

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_train_error_function() - Returns the error function used during training


Sets the stop function used during training

  • « fann_set_train_error_function
  • fann_set_training_algorithm »
  • PHP Manual
  • Fann Funções
  • Sets the stop function used during training

fann_set_train_stop_function

(PECL fann >= 1.0.0)

fann_set_train_stop_function — Sets the stop function used during training

Descrição

fann_set_train_stop_function(resource $ann, int $stop_function): bool

Sets the stop function used during training.

The stop functions are described further in stop functions constants.

Parâmetros

ann

resource da rede neural.

stop_function

The stop function constant.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_train_stop_function() - Returns the stop function used during training


Sets the training algorithm

  • « fann_set_train_stop_function
  • fann_set_weight_array »
  • PHP Manual
  • Fann Funções
  • Sets the training algorithm

fann_set_training_algorithm

(PECL fann >= 1.0.0)

fann_set_training_algorithm — Sets the training algorithm

Descrição

fann_set_training_algorithm(resource $ann, int $training_algorithm): bool

Sets the training algorithm.

More info available in fann_get_training_algorithm().

Parâmetros

ann

resource da rede neural.

training_algorithm

Training algorithm constant

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_get_training_algorithm() - Returns the training algorithm


Set connections in the network

  • « fann_set_training_algorithm
  • fann_set_weight »
  • PHP Manual
  • Fann Funções
  • Set connections in the network

fann_set_weight_array

(PECL fann >= 1.0.0)

fann_set_weight_array — Set connections in the network

Descrição

fann_set_weight_array(resource $ann, array $connections): bool

Set connections in the network.

Only the weights can be changed, connections and weights are ignored if they do not already exist in the network.

Parâmetros

ann

resource da rede neural.

connections

An array of FANNConnection objects

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.


Set a connection in the network

  • « fann_set_weight_array
  • fann_shuffle_train_data »
  • PHP Manual
  • Fann Funções
  • Set a connection in the network

fann_set_weight

(PECL fann >= 1.0.0)

fann_set_weight — Set a connection in the network

Descrição

fann_set_weight(
resource $ann,
int $from_neuron,
int $to_neuron,
float $weight
): bool

Set a connections in the network.

Parâmetros

ann

resource da rede neural.

from_neuron

The neuron where the connection starts

to_neuron

The neuron where the connection ends

weight

Connection weight

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.


Shuffles training data, randomizing the order

  • « fann_set_weight
  • fann_subset_train_data »
  • PHP Manual
  • Fann Funções
  • Shuffles training data, randomizing the order

fann_shuffle_train_data

(PECL fann >= 1.0.0)

fann_shuffle_train_data — Shuffles training data, randomizing the order

Descrição

fann_shuffle_train_data(resource $train_data): bool

Shuffles training data, randomizing the order. This is recommended for incremental training, while it have no influence during batch training.

Parâmetros

train_data

resource dos dados de treinamento da rede neural.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.


Returns an copy of a subset of the train data

  • « fann_shuffle_train_data
  • fann_test_data »
  • PHP Manual
  • Fann Funções
  • Returns an copy of a subset of the train data

fann_subset_train_data

(PECL fann >= 1.0.0)

fann_subset_train_data — Returns an copy of a subset of the train data

Descrição

fann_subset_train_data(resource $data, int $pos, int $length): resource

Returns an copy of a subset of the train data resource, starting at position pos and length elements forward.

The fann_subset_train_data(train_data, 0, fann_length_train_data(train_data)) do the same as fann_duplicate_train_data()

Parâmetros

data

resource dos dados de treinamento da rede neural.

pos

Starting position.

length

The number of copied elements.

Valor Retornado

Retorna um resource de dados de treinamento em caso de sucesso ou false em caso de erro.

Veja Também

  • fann_duplicate_train_data() - Returns an exact copy of a fann train data


Test a set of training data and calculates the MSE for the training data

  • « fann_subset_train_data
  • fann_test »
  • PHP Manual
  • Fann Funções
  • Test a set of training data and calculates the MSE for the training data

fann_test_data

(PECL fann >= 1.0.0)

fann_test_data — Test a set of training data and calculates the MSE for the training data

Descrição

fann_test_data(resource $ann, resource $data): float

Test a set of training data and calculates the MSE for the training data.

This function updates the MSE and the bit fail values.

Parâmetros

ann

resource da rede neural.

data

resource dos dados de treinamento da rede neural.

Valor Retornado

The updated MSE, or false on error.

Veja Também

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_training_algorithm() - Sets the training algorithm


Test with a set of inputs, and a set of desired outputs

  • « fann_test_data
  • fann_train_epoch »
  • PHP Manual
  • Fann Funções
  • Test with a set of inputs, and a set of desired outputs

fann_test

(PECL fann >= 1.0.0)

fann_test — Test with a set of inputs, and a set of desired outputs

Descrição

fann_test(resource $ann, array $input, array $desired_output): array

Test with a set of inputs, and a set of desired outputs. This operation updates the mean square error, but does not change the network in any way.

Parâmetros

ann

resource da rede neural.

input

An array of inputs. This array must be exactly fann_get_num_input() long.

desired_output

An array of desired outputs. This array must be exactly fann_get_num_output() long.

Valor Retornado

Returns test outputs on success, or false on error.

Veja Também

  • fann_test_data() - Test a set of training data and calculates the MSE for the training data
  • fann_train() - Train one iteration with a set of inputs, and a set of desired outputs
  • fann_get_num_input() - Get the number of input neurons
  • fann_get_num_output() - Get the number of output neurons


Train one epoch with a set of training data

  • « fann_test
  • fann_train_on_data »
  • PHP Manual
  • Fann Funções
  • Train one epoch with a set of training data

fann_train_epoch

(PECL fann >= 1.0.0)

fann_train_epoch — Train one epoch with a set of training data

Descrição

fann_train_epoch(resource $ann, resource $data): float

Train one epoch with the training data stored in data. One epoch is where all of the training data is considered exactly once.

This function returns the MSE error as it is calculated either before or during the actual training. This is not the actual MSE after the training epoch, but since calculating this will require to go through the entire training set once more. It is more than adequate to use this value during training.

The training algorithm used by this function is chosen by fann_set_training_algorithm() function.

Parâmetros

ann

resource da rede neural.

data

resource dos dados de treinamento da rede neural.

Valor Retornado

The MSE, or false on error.

Veja Também

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_test_data() - Test a set of training data and calculates the MSE for the training data
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_training_algorithm() - Sets the training algorithm


Trains on an entire dataset for a period of time

  • « fann_train_epoch
  • fann_train_on_file »
  • PHP Manual
  • Fann Funções
  • Trains on an entire dataset for a period of time

fann_train_on_data

(PECL fann >= 1.0.0)

fann_train_on_data — Trains on an entire dataset for a period of time

Descrição

fann_train_on_data(
resource $ann,
resource $data,
int $max_epochs,
int $epochs_between_reports,
float $desired_error
): bool

Trains on an entire dataset for a period of time.

This training uses the training algorithm chosen by fann_set_training_algorithm() and the parameters set for these training algorithms.

Parâmetros

ann

resource da rede neural.

data

resource dos dados de treinamento da rede neural.

max_epochs

The maximum number of epochs the training should continue

epochs_between_reports

The number of epochs between calling a callback function. A value of zero means that user function is not called.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on the stop function chosen by fann_set_train_stop_function()

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_train_on_file() - Trains on an entire dataset, which is read from file, for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_train_stop_function() - Sets the stop function used during training
  • fann_set_training_algorithm() - Sets the training algorithm
  • fann_set_callback() - Sets the callback function for use during training


Trains on an entire dataset, which is read from file, for a period of time

  • « fann_train_on_data
  • fann_train »
  • PHP Manual
  • Fann Funções
  • Trains on an entire dataset, which is read from file, for a period of time

fann_train_on_file

(PECL fann >= 1.0.0)

fann_train_on_file — Trains on an entire dataset, which is read from file, for a period of time

Descrição

fann_train_on_file(
resource $ann,
string $filename,
int $max_epochs,
int $epochs_between_reports,
float $desired_error
): bool

Trains on an entire dataset, which is read from file, for a period of time.

This training uses the training algorithm chosen by fann_set_training_algorithm() and the parameters set for these training algorithms.

Parâmetros

ann

resource da rede neural.

filename

The file containing train data

max_epochs

The maximum number of epochs the training should continue

epochs_between_reports

The number of epochs between calling a user function. A value of zero means that user function is not called.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on the stop function chosen by fann_set_train_stop_function()

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_train_stop_function() - Sets the stop function used during training
  • fann_set_training_algorithm() - Sets the training algorithm
  • fann_set_callback() - Sets the callback function for use during training


Train one iteration with a set of inputs, and a set of desired outputs

  • « fann_train_on_file
  • FANNConnection »
  • PHP Manual
  • Fann Funções
  • Train one iteration with a set of inputs, and a set of desired outputs

fann_train

(PECL fann >= 1.0.0)

fann_train — Train one iteration with a set of inputs, and a set of desired outputs

Descrição

fann_train(resource $ann, array $input, array $desired_output): bool

Train one iteration with a set of inputs, and a set of desired outputs. This training is always incremental training, since only one pattern is presented.

Parâmetros

ann

resource da rede neural.

input

An array of inputs. This array must be exactly fann_get_num_input() long.

desired_output

An array of desired outputs. This array must be exactly fann_get_num_output() long.

Valor Retornado

Retorna true em caso de sucesso ou false caso contrário.

Veja Também

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_num_input() - Get the number of input neurons
  • fann_get_num_output() - Get the number of output neurons


The FANNConnection class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

FANNConnection is used for the neural network connection. The objects of this class are used in fann_get_connection_array() and fann_set_weight_array().

Resumo da classe

class FANNConnection {
/* Propriedades */
public $from_neuron;
public $to_neuron;
public $weight;
/* Métodos */
public __construct(int $from_neuron, int $to_neuron, float $weight)
public getFromNeuron(): int
public getToNeuron(): int
public getWeight(): void
public setWeight(float $weight): void
}

Propriedades

from_neuron

The neuron where the connection starts.

to_neuron

The neuron where the connection ends.

weight

The weight of the connection.

Índice

  • FANNConnection::__construct — The connection constructor
  • FANNConnection::getFromNeuron — Returns the postions of starting neuron
  • FANNConnection::getToNeuron — Returns the postions of terminating neuron
  • FANNConnection::getWeight — Returns the connection weight
  • FANNConnection::setWeight — Sets the connections weight


The connection constructor

  • « FANNConnection
  • FANNConnection::getFromNeuron »
  • PHP Manual
  • FANNConnection
  • The connection constructor

FANNConnection::__construct

(PECL fann >= 1.0.0)

FANNConnection::__construct — The connection constructor

Descrição

public FANNConnection::__construct(int $from_neuron, int $to_neuron, float $weight)

Create new connection and initialize its params. After creating the connection, only weight can be changed.

Parâmetros

from_neuron

The position number of starting neuron.

to_neuron

The position number of terminating neuron.

weight

The connection weight value.


Returns the postions of starting neuron

  • « FANNConnection::__construct
  • FANNConnection::getToNeuron »
  • PHP Manual
  • FANNConnection
  • Returns the postions of starting neuron

FANNConnection::getFromNeuron

(PECL fann >= 1.0.0)

FANNConnection::getFromNeuron — Returns the postions of starting neuron

Descrição

public FANNConnection::getFromNeuron(): int

Returns the postions of starting neuron.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The postions of starting neuron.


Returns the postions of terminating neuron

  • « FANNConnection::getFromNeuron
  • FANNConnection::getWeight »
  • PHP Manual
  • FANNConnection
  • Returns the postions of terminating neuron

FANNConnection::getToNeuron

(PECL fann >= 1.0.0)

FANNConnection::getToNeuron — Returns the postions of terminating neuron

Descrição

public FANNConnection::getToNeuron(): int

Returns the positions of terminating neuron.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The postions of terminating neuron.


Returns the connection weight

  • « FANNConnection::getToNeuron
  • FANNConnection::setWeight »
  • PHP Manual
  • FANNConnection
  • Returns the connection weight

FANNConnection::getWeight

(PECL fann >= 1.0.0)

FANNConnection::getWeight — Returns the connection weight

Descrição

public FANNConnection::getWeight(): void

Returns the connection weight.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The connection weight.


Sets the connections weight

  • « FANNConnection::getWeight
  • Igbinary »
  • PHP Manual
  • FANNConnection
  • Sets the connections weight

FANNConnection::setWeight

(PECL fann >= 1.0.0)

FANNConnection::setWeight — Sets the connections weight

Descrição

public FANNConnection::setWeight(float $weight): void

Sets the connection weight.

This method is different than fann_set_weight(). It does not update the weight value in the network. The network value is updated only after calling fann_set_weight_array().

Parâmetros

weight

The connection weight.

Valor Retornado

Nenhum valor é retornado.


Igbinary

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
  • Igbinary Funções
    • igbinary_serialize — Generates a compact, storable binary representation of a value
    • igbinary_unserialize — Creates a PHP value from a stored representation from igbinary_serialize


Introdução

Igbinary is a drop in replacement for the standard PHP serializer. Instead of the time and space consuming textual representation used by PHP's serialize(), igbinary stores PHP data structures in a compact binary form. Memory savings are significant when using memcached, APCu, or similar memory based storages for serialized data. The typical reduction in storage requirements are around 50%. The exact percentage depends on the data.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/igbinary.

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Igbinary Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
igbinary.compact_strings | 1 | INI_ALL |
Session Configuration Options Affecting Igbinary Behavior
Nome | Padrão | Modificável | Registro de Alterações
session.save_handler | "files" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

igbinary.compact_strings bool

Enable or disable compacting of duplicate strings. The default is On.

session.save_handler string

Igbinary is used as session handler by setting this value to igbinary.


Igbinary Funções

Índice

  • igbinary_serialize — Generates a compact, storable binary representation of a value
  • igbinary_unserialize — Creates a PHP value from a stored representation from igbinary_serialize


Generates a compact, storable binary representation of a value

  • « Igbinary Funções
  • igbinary_unserialize »
  • PHP Manual
  • Igbinary Funções
  • Generates a compact, storable binary representation of a value

igbinary_serialize

(PECL igbinary >= 1.1.1)

igbinary_serialize — Generates a compact, storable binary representation of a value

Descrição

igbinary_serialize(mixed $value): string|false

Generates a storable representation of a value.

This is useful for storing or passing PHP values around without losing their type and structure.

To make the serialized string into a PHP value again, igbinary_unserialize() can be used.

Parâmetros

value

The value to be serialized. igbinary_serialize() handles all types, except the resource-type and some objects (see note below). Even arrays that contain references to itself can be processed by igbinary_serialize(). Circular references inside the array or object that is being serializend will also be stored. Any other reference will be lost.

When serializing objects, igbinary will attempt to call the member functions __serialize() or __sleep() prior to serialization. This is to allow the object to do any last minute clean-up, etc. prior to being serialized. Likewise, when the object is restored using igbinary_unserialize() the __unserialize() or __wakeup() member function is called.

Nota:

Private members of objects have the class name prepended to the member name; protected members have a '*' prepended to the member name. These prepended values have null bytes on either side.

Valor Retornado

Returns a string containing a byte-stream representation of value that can be stored anywhere.

Note that this is a binary string which can include any byte value, and needs to be stored and handled as such. For example, igbinary_serialize() output should generally be stored in a BLOB field in a database, rather than a CHAR or TEXT field.

Exemplos

Exemplo #1 igbinary_serialize() example

<?php
$ser = igbinary_serialize(['test', 'test']);
echo urlencode($ser), "\n";
var_export(igbinary_unserialize($ser));
?>

O exemplo acima produzirá:

%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00
array (
  0 => 'test',
  1 => 'test',
)

Notas

Nota:

Note that many built-in PHP objects cannot be serialized. However, those with this ability either implement the Serializable interface or the magic __serialize()/__unserialize() or __sleep()/__wakeup() methods. If an internal class does not fulfill any of those requirements, it cannot reliably be serialized with any serializer.

There are some historical exceptions to the above rule, where some internal objects could be serialized without implementing the interface or exposing the methods.

Veja Também

  • serialize() - Gera uma representação armazenável de um valor
  • igbinary_unserialize() - Creates a PHP value from a stored representation from igbinary_serialize
  • var_export() - Mostra ou retorna uma representação string analisável de uma variável
  • json_encode() - Retorna a representação JSON de um valor
  • Serializing Objects
  • __sleep()
  • __wakeup()
  • __serialize()
  • __unserialize()


Creates a PHP value from a stored representation from igbinary_serialize

  • « igbinary_serialize
  • JSON »
  • PHP Manual
  • Igbinary Funções
  • Creates a PHP value from a stored representation from igbinary_serialize

igbinary_unserialize

(PECL igbinary >= 1.1.1)

igbinary_unserialize — Creates a PHP value from a stored representation from igbinary_serialize()

Descrição

igbinary_unserialize(string $str): mixed

igbinary_unserialize() takes a single serialized variable from igbinary_serialize() and converts it back into a PHP value.

Aviso

Untrusted user input must not be passed to igbinary_unserialize(). Unserialization can result in code being loaded and executed due to object instantiation and autoloading, and a malicious user may be able to exploit this. Instead a safe, standard data interchange format such as JSON (via json_decode() and json_encode()) should be used, if serialized data needs to be passed to a client.

If there is the need to unserialize externally-stored serialized data, hash_hmac() can be used for data validation. It is important to ensure that nobody has tampered with the data.

Aviso

The igbinary serialization format does not provide a way to distinguish between different reference groups for the same value. All PHP references to a given value as treated as part of the same reference group when unserialized, even if they were parts of difference reference groups when serialized.

Parâmetros

str

The serialized string generated by igbinary_serialize().

If the value being unserialized is an object, after successfully reconstructing the object igbinary will automatically attempt to call the __unserialize() or __wakeup() methods (if one exists).

Nota: unserialize_callback_func directive

It is possible to set a callback function which will be called, if an undefined class should be instantiated during unserializing. (to prevent getting an incomplete object __PHP_Incomplete_Class.) The php.ini, ini_set() or .htaccess can be used to define unserialize_callback_func. Everytime an undefined class should be instantiated, it will be called. To disable this feature this setting should be emptied.

Valor Retornado

The converted value is returned, and can be a bool, int, float, string, array, object, or null.

In case the passed string is not unserializeable, false is returned and E_NOTICE or E_WARNING is issued.

Erros/Exceções

Objects may throw Throwables in their unserialization handlers.

Notas

Aviso

null or false is returned both in the case of an error and if unserializing the serialized null or false value. It is possible to catch this special case by comparing str with igbinary_serialize(null) or igbinary_serialize(false) or by catching the issued E_NOTICE.

Veja Também

  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • json_encode() - Retorna a representação JSON de um valor
  • json_decode() - Decodifica uma string JSON
  • hash_hmac() - Generate a keyed hash value using the HMAC method
  • igbinary_serialize() - Generates a compact, storable binary representation of a value
  • Autoloading Classes
  • unserialize_callback_func
  • __wakeup()
  • __serialize()
  • __unserialize()


Notação de Objetos do JavaScript

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • JsonException — A classe JsonException
  • JsonSerializable — A interface JsonSerializable
    • JsonSerializable::jsonSerialize — Especifica os dados que devem ser serializados para JSON
  • Funções da JSON
    • json_decode — Decodifica uma string JSON
    • json_encode — Retorna a representação JSON de um valor
    • json_last_error_msg — Retorna uma string contento a mensagem de erro da última chamada de json_encode() ou json_decode()
    • json_last_error — Retorna o último erro ocorrido
    • json_validate — Verifica se uma string contém JSON válido


Introdução

Esta extensão implementa o formato de intercâmbio de dados » Notação de Objetos do JavaScript (JSON). O analisador foi escrito especificamente para o PHP e licenciado sob a licença do PHP.

Nota:

O PHP implementa um superconjunto de JSON conforme especificado na » RFC 7159 original.


Instalação

A extensão JSON está incluída e compilada no PHP por padrão.

A partir do PHP 8.0.0, a extensão JSON é uma extensão do núcleo do PHP, por isto está sempre habilitada.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/json


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

As seguintes constantes indicam o tipo de erro retornado pela função json_last_error() or armazenadas no code de uma JsonException

JSON_ERROR_NONE (int)
Sem erros.
JSON_ERROR_DEPTH (int)
O limite de pilha de chamadas foi ultrapassado
JSON_ERROR_STATE_MISMATCH (int)
Ocorre em underflows ou com incongruência de modos.
JSON_ERROR_CTRL_CHAR (int)
Erro em caracter de controle, possivelmente erro de enconding.
JSON_ERROR_SYNTAX (int)
Erro de sintaxe.
JSON_ERROR_UTF8 (int)
Caracteres UTF-8 mal formados, possivelmente erro de enconding.
JSON_ERROR_RECURSION (int)
O objeto ou array passado para json_encode() inclui referências recursivas, e não pode ser formatada. Se a opção JSON_PARTIAL_OUTPUT_ON_ERROR foi informada, null será substituído no lugar da referência recursiva.
JSON_ERROR_INF_OR_NAN (int)
Um valor passado para json_encode() inclui NAN ou INF. Se a opção JSON_PARTIAL_OUTPUT_ON_ERROR foi informada, 0 será substituído no lugar do número especial.
JSON_ERROR_UNSUPPORTED_TYPE (int)
Um valor de um tipo não suportado foi informado para json_encode(), por exemplo um resource. Se a opção JSON_PARTIAL_OUTPUT_ON_ERROR foi informada, null será substituída ao invés do valor não suportado.
JSON_ERROR_INVALID_PROPERTY_NAME (int)
Uma chave começando com caracter \u0000 estava na chave string foi passada para json_decode() quando decodificando um objeto JSON para um objeto PHP.
JSON_ERROR_UTF16 (int)
Um surrogate UTF-16 despareado em um unicode escape estava presente em uma string JSON processada por json_decode().

As constantes a seguir podem ser combinadas para formar opções na função json_decode().

JSON_BIGINT_AS_STRING (int)
Decodifica inteiros grandes como suas strings originais.
JSON_OBJECT_AS_ARRAY (int)
Decodifica objetos JSON como arrays PHP. Esta opção pode ser adicionada automaticamente quando chamando json_decode() com o segundo parâmetro igual a true.

As seguintes constantes podem ser combinadas para formar opções para a função json_encode().

JSON_HEX_TAG (int)
Todos os caracteres < e > serão convertidos para \u003C and \u003E.
JSON_HEX_AMP (int)
Todos os caracteres & serão convertidos para \u0026.
JSON_HEX_APOS (int)
Todos os caracteres ' serão convertidos para \u0027.
JSON_HEX_QUOT (int)
Todos os caracteres " serão convertidos para \u0022.
JSON_FORCE_OBJECT (int)
Imprime um objeto em vez de um array quando um array não recursivo é usado. Muito útil quando o chamador espera um objeto mas o array está vazio.
JSON_NUMERIC_CHECK (int)
Codifica strings numéricas como números.
JSON_PRETTY_PRINT (int)
Formata os dados retornados com espaços em branco.
JSON_UNESCAPED_SLASHES (int)
Não escapa o caracter /.
JSON_UNESCAPED_UNICODE (int)
Codifica caracteres Unicode multibyte literalmente (default é formatar como \uXXXX).
JSON_PARTIAL_OUTPUT_ON_ERROR (int)
Substitui valores não identificados ao invés de falhar.
JSON_PRESERVE_ZERO_FRACTION (int)
Garante que float sempre são codificados como um número float.
JSON_UNESCAPED_LINE_TERMINATORS (int)
Os fins de linha são preservados não escapados quando JSON_UNESCAPED_UNICODE é informado. Este é o mesmo comportamento existente anteriormente ao PHP 7.1 sem essa constante. Disponível desde o PHP 7.1.0.

As constantes a seguir podem ser combinadas para formar opções para a função json_decode() e json_encode().

JSON_INVALID_UTF8_IGNORE (int)
Ignora caracteres inválidos UTF-8. Disponível desde o 7.2.0.
JSON_INVALID_UTF8_SUBSTITUTE (int)
Converte caracteres inválidos UTF-8 para \0xfffd (Caracter Unicode 'REPLACEMENT CHARACTER') Disponível desde o 7.2.0.
JSON_THROW_ON_ERROR (int)
Lança um JsonException se ocorrer um erro ao invés de carregar o erro global que pode ser obtido com json_last_error() e json_last_error_msg(). JSON_PARTIAL_OUTPUT_ON_ERROR tem precedência sobre JSON_THROW_ON_ERROR. Disponível desde o PHP 7.3.0.


A classe JsonException

(PHP 7 >= 7.3.0, PHP 8)

Introdução

Uma exceção será lançada se a opção JSON_THROW_ON_ERROR
for definida para json_encode() ou
json_decode(). code contém o tipo de
erro, para valores possíveis veja json_last_error().

Resumo da classe

class JsonException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A interface JsonSerializable

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Introdução

Os objetos que implementam JsonSerializable podem personalizar sua representação JSON quando codificados com json_encode().

Resumo da Interface

interface JsonSerializable {
/* Métodos */
public jsonSerialize(): mixed
}

Índice

  • JsonSerializable::jsonSerialize — Especifica os dados que devem ser serializados para JSON


Especifica os dados que devem ser serializados para JSON

  • « JsonSerializable
  • Funções da JSON »
  • PHP Manual
  • JsonSerializable
  • Especifica os dados que devem ser serializados para JSON

JsonSerializable::jsonSerialize

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

JsonSerializable::jsonSerialize — Especifica os dados que devem ser serializados para JSON

Descrição

public JsonSerializable::jsonSerialize(): mixed

Serializa o objeto para um valor que pode ser serializado nativamente por json_encode().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna dados que podem ser serializados por json_encode(), que é um valor de qualquer tipo que não seja um resource.

Exemplos

Exemplo #1 Exemplo de JsonSerializable::jsonSerialize() retornando um array

<?php
class ArrayValue implements JsonSerializable {
private $array;
public function __construct(array $array) {
$this->array = $array;
}

public function jsonSerialize(): mixed {
return $this->array;
}
}

$array = [1, 2, 3];
echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

O exemplo acima produzirá:

[
    1,
    2,
    3
]

Exemplo #2 Exemplo de JsonSerializable::jsonSerialize() retornando um array associativo

<?php
class ArrayValue implements JsonSerializable {
private $array;
public function __construct(array $array) {
$this->array = $array;
}

public function jsonSerialize(): mixed {
return $this->array;
}
}

$array = ['foo' => 'bar', 'quux' => 'baz'];
echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

O exemplo acima produzirá:

{
    "foo": "bar",
    "quux": "baz"
}

Exemplo #3 Exemplo de JsonSerializable::jsonSerialize() retornando um int

<?php
class IntegerValue implements JsonSerializable {
private $number;
public function __construct($number) {
$this->number = (int) $number;
}

public function jsonSerialize(): mixed {
return $this->number;
}
}

echo json_encode(new IntegerValue(1), JSON_PRETTY_PRINT);
?>

O exemplo acima produzirá:

1

Exemplo #4 Exemplo de JsonSerializable::jsonSerialize() retornando uma string

<?php
class StringValue implements JsonSerializable {
private $string;
public function __construct($string) {
$this->string = (string) $string;
}

public function jsonSerialize(): mixed {
return $this->string;
}
}

echo json_encode(new StringValue('Hello!'), JSON_PRETTY_PRINT);
?>

O exemplo acima produzirá:

"Hello!"


Funções da JSON

Índice

  • json_decode — Decodifica uma string JSON
  • json_encode — Retorna a representação JSON de um valor
  • json_last_error_msg — Retorna uma string contento a mensagem de erro da última chamada de json_encode() ou json_decode()
  • json_last_error — Retorna o último erro ocorrido
  • json_validate — Verifica se uma string contém JSON válido


Decodifica uma string JSON

  • « Funções da JSON
  • json_encode »
  • PHP Manual
  • Funções da JSON
  • Decodifica uma string JSON

json_decode

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL json >= 1.2.0)

json_decode — Decodifica uma string JSON

Descrição

json_decode(
string $json,
?bool $associative = null,
int $depth = 512,
int $flags = 0
): mixed

Recebe uma string codificada em JSON e converte em um valor do PHP.

Parâmetros

json

A string json a ser decodificada.

Esta função funciona apenas com strings codificadas em UTF-8.

Nota:

O PHP implementa um superconjunto de JSON conforme especificado na » RFC 7159 original.

associative

Quando true, objetos JSON serão retornados como arrays associativo; quando false, objetos JSON serão retornados como objects. Quando null, objetos JSON serão retornados como arrays ou objects dependendo se flags JSON_OBJECT_AS_ARRAY estiver definida.

depth

Profundidade máxima da estrutura que será decodificada. O valor deve ser maior que 0, e menor ou igual a 2147483647.

flags

Máscara de bits de JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR. O comportamento dessas constantes é descrito na página de constantes JSON.

Valor Retornado

Retorna o valor codificado em json como um tipo apropriado do PHP. Valores sem aspas true, false e null são retornados como true, false e null respectivamente. null é retornado se o json não puder ser decodificado ou se os dados codificados tiverem profundidade maior que o limite de aninhamento.

Erros/Exceções

Se a depth estiver fora do intervalo permitido, um ValueError é lançado a partir do PHP 8.0.0, enquanto anteriormente, era gerado um erro do nível E_WARNING.

Registro de Alterações

Versão | Descrição
7.3.0 | Foi adicionado JSON_THROW_ON_ERROR em flags
7.2.0 | associative agora é nullable.
7.2.0 | Foi adicionado JSON_INVALID_UTF8_IGNORE, e JSON_INVALID_UTF8_SUBSTITUTE em flags.
7.1.0 | Uma chave JSON vazia ("") pode ser codificada para a propriedade vazia de objeto, em vez de usar uma chave com o valor _empty_.

Exemplos

Exemplo #1 json_decode() exemplos

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>

O exemplo acima produzirá:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

Exemplo #2 Acessando propriedades inválidas do objeto

Acessar elementos dentro de um objeto que contém caracteres não permitidos pela convenção de nomenclatura do PHP (por exemplo, o hífen) pode ser realizado encapsulando o nome do elemento entre chaves e apóstrofo.

<?php

$json = '{"foo-bar": 12345}';

$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345

?>

Exemplo #3 erros comuns usando json_decode()

<?php

// as seguintes strings são JavaScript válidas, mas não JSON válidos

// o nome e o valor devem ser colocados entre aspas duplas
// aspas simples não são válidas
$bad_json = "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// o nome deve ser colocado entre aspas duplas
$bad_json = '{ bar: "baz" }';
json_decode($bad_json); // null

// virgulas à direita não são permitidas
$bad_json = '{ bar: "baz", }';
json_decode($bad_json); // null

?>

Exemplo #4 erros de depth

<?php
// Codifica alguns dados com uma profundidade máxima de 4 (array -> array -> array -> string)
$json = json_encode(
array(
1 => array(
'English' => array(
'One',
'January'
),
'French' => array(
'Une',
'Janvier'
)
)
)
);

// Mostrar os erros para diferentes profundidades.
var_dump(json_decode($json, true, 4));
echo 'Last error: ', json_last_error_msg(), PHP_EOL, PHP_EOL;

var_dump(json_decode($json, true, 3));
echo 'Last error: ', json_last_error_msg(), PHP_EOL, PHP_EOL;
?>

O exemplo acima produzirá:

array(1) {
  [1]=>
  array(2) {
    ["English"]=>
    array(2) {
      [0]=>
      string(3) "One"
      [1]=>
      string(7) "January"
    }
    ["French"]=>
    array(2) {
      [0]=>
      string(3) "Une"
      [1]=>
      string(7) "Janvier"
    }
  }
}
Last error: No error

NULL
Last error: Maximum stack depth exceeded

Exemplo #5 json_decode() de inteiros grandes

<?php
$json = '{"number": 12345678901234567890}';

var_dump(json_decode($json));
var_dump(json_decode($json, false, 512, JSON_BIGINT_AS_STRING));

?>

O exemplo acima produzirá:

object(stdClass)#1 (1) {
  ["number"]=>
  float(1.2345678901235E+19)
}
object(stdClass)#1 (1) {
  ["number"]=>
  string(20) "12345678901234567890"
}

Notas

Nota:

A especificação JSON não é JavaScript, mas um subconjunto de JavaScript.

Nota:

No caso de falha na decodificação, json_last_error() pode ser usado para determinar a exata natureza do erro.

Veja Também

  • json_encode() - Retorna a representação JSON de um valor
  • json_last_error() - Retorna o último erro ocorrido


Retorna a representação JSON de um valor

  • « json_decode
  • json_last_error_msg »
  • PHP Manual
  • Funções da JSON
  • Retorna a representação JSON de um valor

json_encode

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL json >= 1.2.0)

json_encode — Retorna a representação JSON de um valor

Descrição

json_encode(mixed $value, int $flags = 0, int $depth = 512): string|false

Retorna uma string contendo a representação JSON de value fornecido. Se o parâmetro for um array ou object, ele será serializado recursivamente.

Se um valor a ser serializado for um objeto, então, por padrão, apenas propriedades visíveis publicamente serão incluídas. Alternativamente, uma classe pode implementar JsonSerializable para controlar como seus valores são serializados para JSON.

A codificação é afetada pelas flags fornecidas e além disso a codificação de valores com ponto flutuante depende do valor de serialize_precision.

Parâmetros

value

O value a ser codificado. Pode ser qualquer tipo, exceto um resource.

Toda a string deve ser codificada como UTF-8.

Nota:

O PHP implementa um superconjunto de JSON conforme especificado na » RFC 7159 original.

flags

Máscara de bits consistindo de JSON_FORCE_OBJECT, JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_NUMERIC_CHECK, JSON_PARTIAL_OUTPUT_ON_ERROR, JSON_PRESERVE_ZERO_FRACTION, JSON_PRETTY_PRINT, JSON_UNESCAPED_LINE_TERMINATORS, JSON_UNESCAPED_SLASHES, JSON_UNESCAPED_UNICODE, JSON_THROW_ON_ERROR. O comportamento destas constantes é descrito na página de constantes JSON.

depth

Define a profundidade máxima. Deve ser maior do que zero.

Valor Retornado

Retorna um JSON codificado como string em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.3.0 | Adicionado JSON_THROW_ON_ERROR em flags.
7.2.0 | Adicionado JSON_INVALID_UTF8_IGNORE e JSON_INVALID_UTF8_SUBSTITUTE em flags.
7.1.0 | Adicionado JSON_UNESCAPED_LINE_TERMINATORS em flags.
7.1.0 | É usado serialize_precision em vez de precision quando codificado valores float.

Exemplos

Exemplo #1 Um exemplo da json_encode()

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

O exemplo acima produzirá:

{"a":1,"b":2,"c":3,"d":4,"e":5}

Exemplo #2 Um exemplo de json_encode() mostrando algumas opções em uso

<?php
$a = array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9");

echo "Normal: ", json_encode($a), "\n";
echo "Tags: ", json_encode($a, JSON_HEX_TAG), "\n";
echo "Apos: ", json_encode($a, JSON_HEX_APOS), "\n";
echo "Quot: ", json_encode($a, JSON_HEX_QUOT), "\n";
echo "Amp: ", json_encode($a, JSON_HEX_AMP), "\n";
echo "Unicode: ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n";
echo "All: ", json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n";

$b = array();

echo "Saída de um array vazio como array: ", json_encode($b), "\n";
echo "Saída de um array vazio como objeto: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n";

$c = array(array(1,2,3));

echo "Saída de um array não-associativo como array: ", json_encode($c), "\n";
echo "Saída de um array não-associativo como objeto: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";

$d = array('foo' => 'bar', 'baz' => 'long');

echo "Array associativo sempre tem saída como objeto: ", json_encode($d), "\n";
echo "Array associativo sempre tem saída como objeto: ", json_encode($d, JSON_FORCE_OBJECT), "\n\n";
?>

O exemplo acima produzirá:

Normal: ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"]
Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Apos: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Quot: ["<foo>","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Amp: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Unicode: ["<foo>","'bar'","\"baz\"","&blong&","é"]
All: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","é"]

Saída de um array vazio como array: []
Saída de um array vazio como objeto: {}

Saída de um array não-associativo como array: [[1,2,3]]
Saída de um array não-associativo como objeto: {"0":{"0":1,"1":2,"2":3}}

Array associativo sempre tem saída como objeto: {"foo":"bar","baz":"long"}
Array associativo sempre tem saída como objeto: {"foo":"bar","baz":"long"}

Exemplo #3 Exemplo com a opção JSON_NUMERIC_CHECK

<?php
echo "Strings representando números automaticamente transformados em números".PHP_EOL;
$numbers = array('+123123', '-123123', '1.2e3', '0.00001');
var_dump(
$numbers,
json_encode($numbers, JSON_NUMERIC_CHECK)
);
echo "Strings contendo números formatados incorretamente".PHP_EOL;
$strings = array('+a33123456789', 'a123');
var_dump(
$strings,
json_encode($strings, JSON_NUMERIC_CHECK)
);
?>

O exemplo acima produzirá algo semelhante a:

Strings representando números automaticamente transformados em números
array(4) {
  [0]=>
  string(7) "+123123"
  [1]=>
  string(7) "-123123"
  [2]=>
  string(5) "1.2e3"
  [3]=>
  string(7) "0.00001"
}
string(28) "[123123,-123123,1200,1.0e-5]"
Strings contendo números formatados incorretamente
array(2) {
  [0]=>
  string(13) "+a33123456789"
  [1]=>
  string(4) "a123"
}
string(24) "["+a33123456789","a123"]"

Exemplo #4 Exemplo de array sequencial versus não-sequencial

<?php
echo "Array sequencial".PHP_EOL;
$sequential = array("foo", "bar", "baz", "blong");
var_dump(
$sequential,
json_encode($sequential)
);

echo PHP_EOL."Array não-sequencial".PHP_EOL;
$nonsequential = array(1=>"foo", 2=>"bar", 3=>"baz", 4=>"blong");
var_dump(
$nonsequential,
json_encode($nonsequential)
);

echo PHP_EOL."Array sequencial com uma chave não definida".PHP_EOL;
unset($sequential[1]);
var_dump(
$sequential,
json_encode($sequential)
);
?>

O exemplo acima produzirá:

Array sequencial
array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"

Array não-sequencial
array(4) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(3) "baz"
  [4]=>
  string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"

Array sequencial com uma chave não definida
array(3) {
  [0]=>
  string(3) "foo"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"

Exemplo #5 Exemplo com a opção JSON_PRESERVE_ZERO_FRACTION

<?php
var_dump(json_encode(12.0, JSON_PRESERVE_ZERO_FRACTION));
var_dump(json_encode(12.0));
?>

O exemplo acima produzirá:

string(4) "12.0"
string(2) "12"

Notas

Nota:

Em uma eventual falha ao codificar, json_last_error() pode ser usado para determinar a natureza exata do erro.

Nota:

Quando codificando um array, se as chaves não são uma sequência numérica contínua começando por 0, todas as chaves são codificadas como strings, e especificadas explicitamente para cada par chave-valor.

Nota:

Assim como o codificador JSON referenciado, json_encode() irá gerar JSON que é um valor simples (isto é, nem um objeto e nem um array) se informado um string, int, float ou bool como uma value. Enquanto a maioria dos decodificadores aceitará esses valores como JSON válido, alguns podem não aceitar, já que a especificação é ambígua neste ponto.

Para resumir, sempre teste se o seu decodificador JSON pode dar conta da saída que você gerar a partir de json_encode().

Veja Também

  • JsonSerializable
  • json_decode() - Decodifica uma string JSON
  • json_last_error() - Retorna o último erro ocorrido
  • serialize() - Gera uma representação armazenável de um valor


Retorna uma string contento a mensagem de erro da última chamada de json_encode() ou json_decode()

  • « json_encode
  • json_last_error »
  • PHP Manual
  • Funções da JSON
  • Retorna uma string contento a mensagem de erro da última chamada de json_encode() ou json_decode()

json_last_error_msg

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

json_last_error_msg — Retorna uma string contento a mensagem de erro da última chamada de json_encode() ou json_decode()

Descrição

json_last_error_msg(): string

Retorna uma string contento a mensagem de erro da última chamada de json_encode() ou json_decode() , que não especificou JSON_THROW_ON_ERROR.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a mensagem de erro em caso de sucesso, ou "No error" se não ocorreu erro.

Veja Também

  • json_last_error() - Retorna o último erro ocorrido


Retorna o último erro ocorrido

  • « json_last_error_msg
  • json_validate »
  • PHP Manual
  • Funções da JSON
  • Retorna o último erro ocorrido

json_last_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

json_last_error — Retorna o último erro ocorrido

Descrição

json_last_error(): int

Retorna o erro (se houver) ocorrido durante a última codificação/decodificação JSON, que não especificou JSON_THROW_ON_ERROR.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um inteiro, o valor pode ser uma das seguintes constantes:

JSON códigos de erro
Constante | Significado | Disponibilidade
JSON_ERROR_NONE | Não ocorreu nenhum erro |
JSON_ERROR_DEPTH | A profundidade máxima da pilha foi excedida |
JSON_ERROR_STATE_MISMATCH | JSON inválido ou mal formado |
JSON_ERROR_CTRL_CHAR | Erro de caractere de controle, possivelmente codificado incorretamente |
JSON_ERROR_SYNTAX | Erro de sintaxe |
JSON_ERROR_UTF8 | Caracteres UTF-8 malformados, possivelmente codificados incorretamente |
JSON_ERROR_RECURSION | Uma ou mais referências recursivas no valor a ser codificado |
JSON_ERROR_INF_OR_NAN | Um ou mais valores NAN ou INF no valor a ser codificado |
JSON_ERROR_UNSUPPORTED_TYPE | Fornecido um valor de um tipo que não pode ser codificado |
JSON_ERROR_INVALID_PROPERTY_NAME | Fornecido um nome de propriedade que não pode ser codificado |
JSON_ERROR_UTF16 | Caracteres UTF-16 malformados, possivelmente codificados incorretamente |

Exemplos

Exemplo #1 Exemplo de json_last_error()

<?php
// Uma string json válida
$json[] = '{"Organização": "Time de Documentação PHP"}';

// Uma string json inválida que causará uma sintaxe
// erro, neste caso usamos ' em vez de " para cotação
$json[] = "{'Organização': 'Time de Documentação PHP'}";

foreach ($json as $string) {
echo 'Decodificando: ' . $string;
json_decode($string);

switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - Sem Erros';
break;
case JSON_ERROR_DEPTH:
echo ' - Profundidade máxima da pilha foi excedida';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - subfluxo ou os modos não combinam';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Caractere de controle inesperado encontrado';
break;
case JSON_ERROR_SYNTAX:
echo ' - Erro de sintaxe, JSON malformado';
break;
case JSON_ERROR_UTF8:
echo ' - Caracteres UTF-8 malformados, possivelmente codificados incorretamente';
break;
default:
echo ' - Erro desconhecido';
break;
}

echo PHP_EOL;
}
?>

O exemplo acima produzirá:

Decodificando: {"Organização": "Time de Documentação PHP"} - Sem erros
Decodificando: {'Organização': 'Time de Documentação PHP'} - Erro de sintaxe, Json mal formatado

Exemplo #2 json_last_error() com json_encode()

<?php
// Uma sequência UTF8 inválida
$text = "\xB1\x31";

$json = json_encode($text);
$error = json_last_error();

var_dump($json, $error === JSON_ERROR_UTF8);
?>

O exemplo acima produzirá:

string(4) "null"
bool(true)

Exemplo #3 json_last_error() and JSON_THROW_ON_ERROR

<?php
// Uma sequência UTF8 inválida que causa JSON_ERROR_UTF8
json_encode("\xB1\x31");

// O seguinte não causa um erro JSON
json_encode('okay', JSON_THROW_ON_ERROR);

// O estado de erro global não foi alterado pelo antigo json_encode()
var_dump(json_last_error() === JSON_ERROR_UTF8);
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • json_last_error_msg() - Retorna uma string contento a mensagem de erro da última chamada de json_encode() ou json_decode()
  • json_decode() - Decodifica uma string JSON
  • json_encode() - Retorna a representação JSON de um valor


Verifica se uma string contém JSON válido

  • « json_last_error
  • Simdjson »
  • PHP Manual
  • Funções da JSON
  • Verifica se uma string contém JSON válido

json_validate

(PHP 8 >= 8.3.0)

json_validate — Verifica se uma string contém JSON válido

Descrição

json_validate(string $json, int $depth = 512, int $flags = 0): bool

Retorna se a string informada é um JSON válido sintaticamente. Se json_validate() retornar true, json_decode() irá decodificar com sucesso a string informada ao usar a mesma profundidade de depth e as opções em flags.

Se json_validate() retornar false, a causa
pode ser obtida usando json_last_error() e
json_last_error_msg().

json_validate() usa menos memória que json_decode() se o JSON decodificado não for usado, porque ela não precisa construir o array ou a estrutura de objeto que contém a decodificação.

Cuidado

Chamar json_validate() imediatamente antes de json_decode() irá analisar a string duas vezes desnecessariamente, já que json_decode() implicitamente realiza a validação durante a decodificação.

Portanto, json_validate() deve somente ser utilizada se o JSON decodificado não for usado imediatamente e se for necessário saber se a string contém JSON válido.

Parâmetros

json

A string a ser validada.

Esta função funciona somente com strings codificadas com UTF-8.

Nota:

O PHP implementa um superconjunto de JSON conforme especificado na » RFC 7159 original.

depth

A máxima profundidade de aninhamento da estrutura sendo decodificada. O valor precisa ser maior que 0, e menor ou igual a 2147483647.

flags

Atualmente apenas a constante JSON_INVALID_UTF8_IGNORE é aceita.

Valor Retornado

Retorna true se a string fornecida for um JSON válido sintaticamente, caso contrário retorna false.

Erros/Exceções

Se depth estiver fora do intervalo permitido, uma exceção ValueError é lançada.

Se flags não for uma opção válida, uma exceção ValueError é lançada.

Exemplos

Exemplo #1 Exemplos de json_validate()

<?php
var_dump(json_validate('{ "test": { "foo": "bar" } }'));
var_dump(json_validate('{ "": "": "" } }'));
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Veja Também

  • json_decode() - Decodifica uma string JSON
  • json_last_error() - Retorna o último erro ocorrido
  • json_last_error_msg() - Retorna uma string contento a mensagem de erro da última chamada de json_encode() ou json_decode()


Simdjson

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
  • Constantes pré-definidas
  • Simdjson Funções
    • simdjson_decode — Decodes a JSON string
    • simdjson_is_valid — Check if a JSON string is valid
    • simdjson_key_count — Returns the value at a JSON pointer.
    • simdjson_key_exists — Check if the JSON contains the value referred to by a JSON pointer.
    • simdjson_key_value — Decodes the value of a JSON string located at the requested JSON pointer.
  • SimdJsonException — The SimdJsonException class
  • SimdJsonValueError — The SimdJsonValueError class


Introdução

Provides faster JSON decoding through simdjson bindings for PHP (Single Instruction, Multiple Data)


  • « Introdução
  • Dependências »
  • PHP Manual
  • Simdjson
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/simdjson.

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SIMDJSON_ERR_CAPACITY (int)
This parser can't support a document that big. Thrown when parsing a JSON string that is over 4GiB long.
SIMDJSON_ERR_TAPE_ERROR (int)
The JSON document has an improper structure: missing or superfluous commas, braces, missing keys, etc.
SIMDJSON_ERR_DEPTH_ERROR (int)
The JSON document was too deep (too many nested objects and arrays)
SIMDJSON_ERR_STRING_ERROR (int)
Problem while parsing a string
SIMDJSON_ERR_T_ATOM_ERROR (int)
Problem while parsing an atom starting with the letter 't'
SIMDJSON_ERR_F_ATOM_ERROR (int)
Problem while parsing an atom starting with the letter 'f'
SIMDJSON_ERR_N_ATOM_ERROR (int)
Problem while parsing an atom starting with the letter 'n'
SIMDJSON_ERR_NUMBER_ERROR (int)
Problem while parsing a number
SIMDJSON_ERR_UTF8_ERROR (int)
The input is not valid UTF-8
SIMDJSON_ERR_UNINITIALIZED (int)
The parser used by simdjson is uninitialized. Should not happen.
SIMDJSON_ERR_EMPTY (int)
Empty: no JSON found
SIMDJSON_ERR_UNESCAPED_CHARS (int)
Within strings, some characters must be escaped, we found unescaped characters
SIMDJSON_ERR_UNCLOSED_STRING (int)
A string is opened, but never closed.
SIMDJSON_ERR_UNSUPPORTED_ARCHITECTURE (int)
simdjson does not have an implementation supported by this CPU architecture (perhaps it's a non-SIMD CPU?).
SIMDJSON_ERR_INCORRECT_TYPE (int)
Should not happen.
SIMDJSON_ERR_NUMBER_OUT_OF_RANGE (int)
The JSON number is too large or too small to fit within the requested type. Note that the C simdjson library is a fork and this error is ignored to match php's handling of JSON numbers that are too large or too small.
SIMDJSON_ERR_INDEX_OUT_OF_BOUNDS (int)
Should not happen.
SIMDJSON_ERR_NO_SUCH_FIELD (int)
Should not happen.
SIMDJSON_ERR_IO_ERROR (int)
Should not happen.
SIMDJSON_ERR_INVALID_JSON_POINTER (int)
Invalid JSON pointer syntax in simdjson_key_value() and other functions accepting a JSON pointer $key.
SIMDJSON_ERR_INVALID_URI_FRAGMENT (int)
Invalid URI fragment syntax.
SIMDJSON_ERR_UNEXPECTED_ERROR (int)
Unexpected error, consider reporting this problem as you may have found a bug in the simdjson PECL
SIMDJSON_ERR_PARSER_IN_USE (int)
Should not happen.
SIMDJSON_ERR_OUT_OF_ORDER_ITERATION (int)
Should not happen.
SIMDJSON_ERR_INSUFFICIENT_PADDING (int)
Should not happen.
SIMDJSON_ERR_INCOMPLETE_ARRAY_OR_OBJECT (int)
JSON document ended early in the middle of an object or array.
SIMDJSON_ERR_SCALAR_DOCUMENT_AS_VALUE (int)
Should not happen.
SIMDJSON_ERR_OUT_OF_BOUNDS (int)
Attempted to access location outside of document.
SIMDJSON_ERR_TRAILING_CONTENT (int)
SIMDJSON_ERR_KEY_COUNT_NOT_COUNTABLE (int)
SIMDJSON_ERR_INVALID_PROPERTY (int)
Invalid property name for an stdClass when decoding a value with simdjson_decode() or simdjson_key_value()


Simdjson Funções

Índice

  • simdjson_decode — Decodes a JSON string
  • simdjson_is_valid — Check if a JSON string is valid
  • simdjson_key_count — Returns the value at a JSON pointer.
  • simdjson_key_exists — Check if the JSON contains the value referred to by a JSON pointer.
  • simdjson_key_value — Decodes the value of a JSON string located at the requested JSON pointer.


Decodes a JSON string

  • « Simdjson Funções
  • simdjson_is_valid »
  • PHP Manual
  • Simdjson Funções
  • Decodes a JSON string

simdjson_decode

(PECL simdjson >= 2.0.0)

simdjson_decode — Decodes a JSON string

Descrição

simdjson_decode(string $json, bool $associative = false, int $depth = 512): mixed

Takes a JSON encoded string and converts it into a PHP value. This uses a faster Simultaneous Instruction, Multiple Data implementation than json_decode() when it is supported by the computer architecture.

Parâmetros

json

The json string being decoded.

This function only works with UTF-8 encoded strings.

This function parses valid inputs which json_decode() can decode, provided that they are less than 4 GiB long.

associative

When true, JSON objects will be returned as associative arrays; when false, JSON objects will be returned as objects.

depth

Maximum nesting depth of the structure being decoded. The value must be greater than 0, and less than or equal to 2147483647. Callers should use reasonably small values, because larger depths require more buffer space and will increase the recursion depth, unlike the current json_decode() implementation.

Valor Retornado

Returns the value encoded in json in appropriate PHP type. Values true, false and null are returned as true, false and null respectively.

Erros/Exceções

If json is invalid, a SimdJsonException is thrown as of PECL simdjson 2.1.0, while previously, a RuntimeException was thrown.

If depth is outside the allowed range, a SimdJsonValueError is thrown as of PECL simdjson 3.0.0, while previously, an error of level E_WARNING was raised.

Exemplos

Exemplo #1 simdjson_decode() examples

<?php
$json = '{"a":1,"b":2,"c":3}';

var_dump(simdjson_decode($json));
var_dump(simdjson_decode($json, true));

?>

O exemplo acima produzirá:

object(stdClass)#1 (3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}
array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}

Exemplo #2 Accessing invalid object properties

Accessing elements within an object that contain characters not permitted under PHP's naming convention (e.g. the hyphen) can be accomplished by encapsulating the element name within braces and the apostrophe.

<?php

$json = '{"foo-bar": 12345}';

$obj = simdjson_decode($json);
print $obj->{'foo-bar'}; // 12345

?>

Exemplo #3 common mistakes using simdjson_decode()

<?php

// the following strings are valid JavaScript but not valid JSON

// the name and value must be enclosed in double quotes
// single quotes are not valid
$bad_json = "{ 'bar': 'baz' }";
simdjson_decode($bad_json); // Throws SimdJsonException

// the name must be enclosed in double quotes
$bad_json = '{ bar: "baz" }';
simdjson_decode($bad_json); // Throws SimdJsonException

// trailing commas are not allowed
$bad_json = '{ bar: "baz", }';
simdjson_decode($bad_json); // Throws SimdJsonException

?>

Exemplo #4 depth errors

<?php
// Encode some data with a maximum depth of 4
// (array -> array -> array -> string)
$json = json_encode(
[
1 => [
'English' => [
'One',
'January'
],
'French' => [
'Une',
'Janvier'
]
]
]
);

// Show the errors for different depths.
var_dump(simdjson_decode($json, true, 4));
try {
var_dump(simdjson_decode($json, true, 3));
} catch (SimdJsonException $e) {
echo "Caught: ", $e->getMessage(), "\n";
}
?>

O exemplo acima produzirá:

array(1) {
  [1]=>
  array(2) {
    ["English"]=>
    array(2) {
      [0]=>
      string(3) "One"
      [1]=>
      string(7) "January"
    }
    ["French"]=>
    array(2) {
      [0]=>
      string(3) "Une"
      [1]=>
      string(7) "Janvier"
    }
  }
}
Caught: The JSON document was too deep (too many nested objects and arrays)

Exemplo #5 simdjson_decode() of large integers

<?php
$json = '{"number": 12345678901234567890}';

var_dump(simdjson_decode($json));

?>

O exemplo acima produzirá:

object(stdClass)#1 (1) {
  ["number"]=>
  float(1.2345678901235E+19)
}

Notas

Nota:

The JSON spec is not JavaScript, but a subset of JavaScript.

Nota:

In the event of a failure to decode, a SimdJsonException is thrown and SimdJsonException::getCode() and SimdJsonException::getMessage() can be used to determine the exact nature of the error.

Veja Também

  • json_encode() - Retorna a representação JSON de um valor
  • json_decode() - Decodifica uma string JSON


Check if a JSON string is valid

  • « simdjson_decode
  • simdjson_key_count »
  • PHP Manual
  • Simdjson Funções
  • Check if a JSON string is valid

simdjson_is_valid

(PECL simdjson >= 2.0.0)

simdjson_is_valid — Check if a JSON string is valid

Descrição

simdjson_is_valid(string $json = false, int $depth = 512): bool

Takes a JSON encoded string and returns true if it is valid.

Parâmetros

json

The json string being validated.

This function only works with UTF-8 encoded strings.

This function validates inputs which json_decode() can decode, provided that they are less than 4 GiB long.

depth

Maximum nesting depth of the structure being validated. The value must be greater than 0, and less than or equal to 2147483647. Callers should use reasonably small values, because larger depths require more buffer space and will increase the recursion depth, unlike the current json_decode() implementation.

Valor Retornado

Returns true if json is a valid JSON string, false otherwise.

Erros/Exceções

If json is longer than 4 GiB, a SimdJsonException is thrown as of PECL simdjson 2.1.0, while previously, a RuntimeException was thrown.

If depth is outside the allowed range, a SimdJsonValueError is thrown as of PECL simdjson 3.0.0, while previously, an error of level E_WARNING was raised.

Exemplos

Exemplo #1 simdjson_decode() examples

<?php
$json = '{"a":1,"b":2,"c":3}';
$invalidJson = '{"a":1,"b":2,"c":';

var_dump(simdjson_is_valid($json));
var_dump(simdjson_is_valid($invalidJson));

?>

O exemplo acima produzirá:

bool(true)
bool(false)

Exemplo #2 depth errors

<?php
// Encode some data with a maximum depth of 4
// (array -> array -> array -> string)
$json = json_encode(
[
1 => [
'English' => [
'One',
'January'
],
'French' => [
'Une',
'Janvier'
]
]
]
);

// Show the errors for different depths.
var_dump(simdjson_is_valid($json, 4));
var_dump(simdjson_is_valid($json, 3));
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Notas

Nota:

The JSON spec is not JavaScript, but a subset of JavaScript.

Nota:

In the event of a failure to decode, a SimdJsonException is thrown and SimdJsonException::getCode() and SimdJsonException::getMessage() can be used to determine the exact nature of the error.

Veja Também

  • json_encode() - Retorna a representação JSON de um valor
  • json_decode() - Decodifica uma string JSON


Returns the value at a JSON pointer.

  • « simdjson_is_valid
  • simdjson_key_exists »
  • PHP Manual
  • Simdjson Funções
  • Returns the value at a JSON pointer.

simdjson_key_count

(PECL simdjson >= 2.0.0)

simdjson_key_count — Returns the value at a JSON pointer.

Descrição

simdjson_key_count(
string $json,
string $key,
int $depth = 512,
bool $throw_if_uncountable = false
): int

Count the number of elements of the object/array found at the requested JSON pointer.

Parâmetros

json

The json string being queried.

key

The JSON pointer string.

depth

Maximum nesting depth of the structure being validated. The value must be greater than 0, and less than or equal to 2147483647. Callers should use reasonably small values, because larger depths require more buffer space and will increase the recursion depth, unlike the current json_decode() implementation.

throw_if_uncountable

When true, a SimdJsonException will be thrown instead of returning 0 when the value the JSON pointer points to is neither an object nor an array.

Valor Retornado

Returns an int with the number of elements of the value at the given JSON pointer.


Check if the JSON contains the value referred to by a JSON pointer.

  • « simdjson_key_count
  • simdjson_key_value »
  • PHP Manual
  • Simdjson Funções
  • Check if the JSON contains the value referred to by a JSON pointer.

simdjson_key_exists

(PECL simdjson >= 2.0.0)

simdjson_key_exists — Check if the JSON contains the value referred to by a JSON pointer.

Descrição

simdjson_key_exists(string $json, string $key, int $depth = ?): bool

Count the number of elements of the object/array found at the requested JSON pointer.

Parâmetros

json

The json string being queried.

key

The JSON pointer string.

depth

Maximum nesting depth of the structure being validated. The value must be greater than 0, and less than or equal to 2147483647. Callers should use reasonably small values, because larger depths require more buffer space and will increase the recursion depth, unlike the current json_decode() implementation.

throw_if_uncountable

When true, a SimdJsonException will be thrown instead of returning 0 when the value the JSON pointer points to is neither an object nor an array.

Valor Retornado

Returns true if the JSON pointer is valid and refers to a value found within a valid JSON string. Returns false if the JSON is valid but does not contain the JSON pointer.


Decodes the value of a JSON string located at the requested JSON pointer.

  • « simdjson_key_exists
  • SimdJsonException »
  • PHP Manual
  • Simdjson Funções
  • Decodes the value of a JSON string located at the requested JSON pointer.

simdjson_key_value

(PECL simdjson >= 2.0.0)

simdjson_key_value — Decodes the value of a JSON string located at the requested JSON pointer.

Descrição

simdjson_key_value(
string $json,
string $key,
bool $associative = false,
int $depth = 512
): mixed

Decodes and returns the value found at the requested JSON pointer.

Parâmetros

json

The json string being queried and decoded.

This function only works with UTF-8 encoded strings.

This function parses valid inputs which json_decode() can decode, provided that they are less than 4 GiB long.

key

The JSON pointer string.

associative

When true, JSON objects will be returned as associative arrays; when false, JSON objects will be returned as objects.

depth

Maximum nesting depth of the structure being decoded. The value must be greater than 0, and less than or equal to 2147483647. Callers should use reasonably small values, because larger depths require more buffer space and will increase the recursion depth, unlike the current json_decode() implementation.

Valor Retornado

Returns the part of the value encoded in json that key refers to in appropriate PHP type. Values true, false and null are returned as true, false and null respectively.

Erros/Exceções

If json or key is invalid, or key could not be found within json, a SimdJsonException is thrown as of PECL simdjson 2.1.0, while previously, a RuntimeException was thrown.

If depth is outside the allowed range, a SimdJsonValueError is thrown as of PECL simdjson 3.0.0, while previously, an error of level E_WARNING was raised.

Veja Também

  • json_encode() - Retorna a representação JSON de um valor
  • simdjson_decode() - Decodes a JSON string


The SimdJsonException class

(PECL simdjson >= 2.1.0)

Introdução

Exception thrown if simdjson_decode(),
simdjson_key_count(),
simdjson_key_exists(),
or simdjson_key_value().

For possible values see the simdjson error codes constants.

Resumo da classe

class SimdJsonException extends RuntimeException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
}


The SimdJsonValueError class

(PECL simdjson >= 3.0.0)

Introdução

A SimdJsonValueError is thrown when the type of an argument to a function from simdjson is correct but the value of it is incorrect. E.g. when the JSON decoding $depth is not positive or the $depth is too large.

Resumo da classe

class SimdJsonValueError extends ValueError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Registro de Alterações

Versão | Descrição
PHP 8.0.0 | SimdJsonValueError extends ValueError now instead of Error.


Lua

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Lua — A Classw Lua
    • Lua::assign — Atribui uma variável PHP para o script Lua
    • Lua::call — Executa funções Lua
    • Lua::__construct — Construtor Lua
    • Lua::eval — Avalia uma string como código Lua
    • Lua::getVersion — Obtém a versão do interpretador Lua
    • Lua::include — Inclui e interpreta um arquivo de script Lua
    • Lua::registerCallback — Registra uma função PHP no interpretador Lua
  • LuaClosure — A Classe LuaClosure
    • LuaClosure::__invoke — Invoca uma closure lua


Introdução

"Lua é uma linguagem de script poderosa, rápida, leve e incorporável." Esta extensão incorpora o interpretador lua e oferece uma API-OO para as variáveis e funções lua.


Dependências

Para usar esta extensão é necessário ter o interpretador Lua instalado, disponível no » site oficial da linguagem Lua


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/lua.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


  • « Configurações em Execução
  • Lua »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


A Classw Lua

(PECL lua >=0.9.0)

Introdução

Resumo da classe

class Lua {
/* Constantes */
const string LUA_VERSION = Lua 5.1.4;
/* Métodos */
public assign(string $name, string $value): mixed
public call(callable $lua_func, array $args = ?, int $use_self = 0): mixed
public __call(callable $lua_func, array $args = ?, int $use_self = 0): mixed
public __construct(string $lua_script_file = NULL)
public eval(string $statements): mixed
public getVersion(): string
public include(string $file): mixed
public registerCallback(string $name, callable $function): mixed
}

Constantes pré-definidas

Lua::LUA_VERSION

Índice

  • Lua::assign — Atribui uma variável PHP para o script Lua
  • Lua::call — Executa funções Lua
  • Lua::__construct — Construtor Lua
  • Lua::eval — Avalia uma string como código Lua
  • Lua::getVersion — Obtém a versão do interpretador Lua
  • Lua::include — Inclui e interpreta um arquivo de script Lua
  • Lua::registerCallback — Registra uma função PHP no interpretador Lua


Atribui uma variável PHP para o script Lua

  • « Lua
  • Lua::call »
  • PHP Manual
  • Lua
  • Atribui uma variável PHP para o script Lua

Lua::assign

(PECL lua >=0.9.0)

Lua::assign — Atribui uma variável PHP para o script Lua

Descrição

public Lua::assign(string $name, string $value): mixed

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

value

Valor Retornado

Retorna $this ou null caso a chamada falhe.

Exemplos

Exemplo #1 Exemplo da função Lua::assign()

<?php
$lua = new Lua();
$lua->assign("variavel_php", array(1=>1, 2, 3)); //os índices dos vetores em lua iniciam com 1
$lua->eval(<<<CODE
 print(variavel_php);
CODE
);
?>

O exemplo acima produzirá:

Array
 (
     [1] => 1
     [2] => 2
     [3] => 3
 )


Executa funções Lua

  • « Lua::assign
  • Lua::__construct »
  • PHP Manual
  • Lua
  • Executa funções Lua

Lua::call

Lua::__call

(PECL lua >=0.9.0)

Lua::call -- Lua::__call — Executa funções Lua

Descrição

public Lua::call(callable $lua_func, array $args = ?, int $use_self = 0): mixed
public Lua::__call(callable $lua_func, array $args = ?, int $use_self = 0): mixed

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

lua_func

Nome da função lua

args

Argumentos passados para a função Lua

use_self

Indica o uso de self

Valor Retornado

Retorna o resultado da função chamada, null para argumentos incorretos ou false para outros tipos de falha.

Exemplos

Exemplo #1 Exemplo da função Lua::call()

<?php
$lua = new Lua();
$lua->eval(<<<CODE
 function dummy(foo, bar)
print(foo, ",", bar)
end
CODE
);
$lua->call("funcaolua", array("Lua ", "adorável\n"));
$lua->funcaolua("Lua ", "adorável"); // __call()
var_dump($lua->call(array("table", "concat"), array(array(1=>1, 2=>2, 3=>3), "-")));
?>

O exemplo acima produzirá:

Lua adorável
Lua adorável
string(5) "1-2-3"

Veja Também

  • __call()


Construtor Lua

  • « Lua::call
  • Lua::eval »
  • PHP Manual
  • Lua
  • Construtor Lua

Lua::__construct

(PECL lua >=0.9.0)

Lua::__construct — Construtor Lua

Descrição

public Lua::__construct(string $lua_script_file = NULL)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

lua_script_file

Valor Retornado


Avalia uma string como código Lua

  • « Lua::__construct
  • Lua::getVersion »
  • PHP Manual
  • Lua
  • Avalia uma string como código Lua

Lua::eval

(PECL lua >=0.9.0)

Lua::eval — Avalia uma string como código Lua

Descrição

public Lua::eval(string $statements): mixed

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

statements

Valor Retornado

Retorna o resultado do código avaliado, null para argumentos incorretos ou false para outros tipos de falha.

Exemplos

Exemplo #1 Exemplo da função Lua::eval()

<?php
$lua = new Lua();
$lua->eval(<<<CODE
 print(2);
CODE
);
?>

O exemplo acima produzirá:

2


Obtém a versão do interpretador Lua

  • « Lua::eval
  • Lua::include »
  • PHP Manual
  • Lua
  • Obtém a versão do interpretador Lua

Lua::getVersion

(PECL lua >=0.9.0)

Lua::getVersion — Obtém a versão do interpretador Lua

Descrição

public Lua::getVersion(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna Lua::LUA_VERSION.


Inclui e interpreta um arquivo de script Lua

  • « Lua::getVersion
  • Lua::registerCallback »
  • PHP Manual
  • Lua
  • Inclui e interpreta um arquivo de script Lua

Lua::include

(PECL lua >=0.9.0)

Lua::include — Inclui e interpreta um arquivo de script Lua

Descrição

public Lua::include(string $file): mixed

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

file

Valor Retornado

Retorna o resultado do código incluído, null para argumentos incorretos ou false para outros tipos de falha.


Registra uma função PHP no interpretador Lua

  • « Lua::include
  • LuaClosure »
  • PHP Manual
  • Lua
  • Registra uma função PHP no interpretador Lua

Lua::registerCallback

(Não há informação de versão disponível, talvez apenas no Git)

Lua::registerCallback — Registra uma função PHP no interpretador Lua

Descrição

public Lua::registerCallback(string $name, callable $function): mixed

Registra uma função PHP no interpretador Lua como uma função chamada "$name"

Parâmetros

name

function

Uma função PHP válida

Valor Retornado

Retorna $this, null para argumentos incorretos ou false para outros tipos de falha.

Exemplos

Exemplo #1 Exemplo da função Lua::registerCallback()

<?php
$lua = new Lua();
$lua->registerCallback("echo", "var_dump");
$lua->eval(<<<CODE
 echo({1, 2, 3});
CODE
);
?>

O exemplo acima produzirá:

array(3) {
  [1]=>
  float(1)
  [2]=>
  float(2)
  [3]=>
  float(3)
}


A Classe LuaClosure

(PECL lua >=0.9.0)

Introdução

LuaClosure é uma classe wrapper para LUA_TFUNCTION que pode ser retornada a partir de uma chamada para uma função Lua.

Resumo da classe

class LuaClosure {
/* Métodos */
public __invoke(mixed ...$args): void
}

Índice

  • LuaClosure::__invoke — Invoca uma closure lua


Invoca uma closure lua

  • « LuaClosure
  • LuaSandbox »
  • PHP Manual
  • LuaClosure
  • Invoca uma closure lua

LuaClosure::__invoke

(PECL lua >=0.9.0)

LuaClosure::__invoke — Invoca uma closure lua

Descrição

public LuaClosure::__invoke(mixed ...$args): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

args

Valor Retornado

Exemplos

Exemplo #1 Exemplo de função LuaClosure::__invoke()

<?php
$lua = new Lua();
$closure = $lua->eval(<<<CODE
 return (function ()
print("ola mundo")
end)
CODE
);

$lua->call($closure);
$closure();
?>

O exemplo acima produzirá:

ola mundoola mundo


LuaSandbox

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Differences from Standard Lua
  • Exemplos
    • Basic usage for LuaSandbox
  • LuaSandbox — The LuaSandbox class
    • LuaSandbox::callFunction — Call a function in a Lua global variable
    • LuaSandbox::disableProfiler — Disable the profiler
    • LuaSandbox::enableProfiler — Enable the profiler.
    • LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment
    • LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment
    • LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment
    • LuaSandbox::getProfilerFunctionReport — Fetch profiler data
    • LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua
    • LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment
    • LuaSandbox::loadString — Load Lua code into the Lua environment
    • LuaSandbox::pauseUsageTimer — Pause the CPU usage timer
    • LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library
    • LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment
    • LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment
    • LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction
  • LuaSandboxFunction — The LuaSandboxFunction class
    • LuaSandboxFunction::call — Call a Lua function
    • LuaSandboxFunction::__construct — Unused
    • LuaSandboxFunction::dump — Dump the function as a binary blob
  • LuaSandboxError — The LuaSandboxError class
  • LuaSandboxErrorError — The LuaSandboxErrorError class
  • LuaSandboxFatalError — The LuaSandboxFatalError class
  • LuaSandboxMemoryError — The LuaSandboxMemoryError class
  • LuaSandboxRuntimeError — The LuaSandboxRuntimeError class
  • LuaSandboxSyntaxError — The LuaSandboxSyntaxError class
  • LuaSandboxTimeoutError — The LuaSandboxTimeoutError class


Introdução

LuaSandbox is an extension for PHP 7 and PHP 8 to allow safely running untrusted Lua 5.1 code from within PHP.

Differences compared to the Lua extension:

  • LuaSandbox has support for time and memory limits.

  • LuaSandbox provides a default-safe environment for running untrusted code. Stock Lua functions were reviewed for security, and several were patched accordingly.

  • LuaSandbox has a PHP interface which is more complex, precise and powerful, but it is less convenient for developers.

  • LuaSandbox supports only Lua 5.1. It is difficult to change this, because LuaSandbox uses heavily modified Lua standard libraries, and due to the lack of backwards compatibility between major Lua versions. LuaSandbox aims to maximise backwards compatibility with user-supplied scripts.


Dependências

To use this extension, Lua 5.1 will need to be installed, available on the » Lua homepage.

To make full use of the timer features, LuaSandbox should be installed on Linux.

If FreeBSD or Mac OS X is used, only real (wall-clock) time is supported, the functions purporting to return CPU time will actually return wall clock time.

If Windows is used, no timer functions will be supported. The time limits will be inoperable.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/luasandbox.

If the operating system is Debian 10 or later, or Ubuntu 18.04 or later, then LuaSandbox should typically be installed from the package php-luasandbox:

sudo apt-get install php-luasandbox


  • « Configurações em Execução
  • Differences from Standard Lua »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


Differences from Standard Lua

LuaSandbox provides a sandboxed environment which differs in some ways from standard Lua 5.1.

Features that are not available

  • dofile(), loadfile(), and the io package, as they allow direct filesystem access. If needed, filesystem access should be done via PHP callbacks.

  • The package package, including require() and module(), as it depends heavily on direct filesystem access. A pure-Lua rewrite such as that used in the MediaWiki Scribunto extension may be used instead.

  • load() and loadstring(), to allow for static analysis of Lua code.

  • print(), since it outputs to standard output. If needed, output should be done via PHP callbacks.

  • Most of the os package, as it allows manipulation of the process and executing of other processes.

    • os.clock(), os.date(), os.difftime(), and os.time() remain available.

  • Most of the debug package, as it allows manipulation of Lua state and metadata in ways that can break sandboxing.

    • debug.traceback() remains available.

  • string.dump(), as it may expose internal data.

  • collectgarbage(), gcinfo(), and the coroutine package have not been reviewed for security.

Features that have been modified

  • pcall() and xpcall() cannot catch certain errors, particularly timeout errors.

  • tostring() does not include pointer addresses.

  • string.match() has been patched to limit the recursion depth and to periodically check for a timeout.

  • math.random() and math.randomseed() are replaced with versions that don't share state with PHP's rand().

  • The Lua 5.2 __pairs and __ipairs metamethods are supported by pairs() and ipairs().


  • « Differences from Standard Lua
  • Basic usage for LuaSandbox »
  • PHP Manual
  • LuaSandbox
  • Exemplos

Exemplos

Índice

  • Basic usage for LuaSandbox


Basic usage for LuaSandbox

Once you've compiled PHP with LuaSandbox support, you can begin using LuaSandbox to safely run user-provided Lua code.

Exemplo #1 Execute some Lua code

<?php

$sandbox = new LuaSandbox;
$sandbox->setMemoryLimit( 50 * 1024 * 1024 );
$sandbox->setCPULimit( 10 );

// Register some functions in the Lua environment

function frobnosticate( $v ) {
return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
'frobnosticate' => 'frobnosticate',
'output' => function ( $string ) {
echo "$string\n";
},
'error' => function () {
throw new LuaSandboxRuntimeError( "Something is wrong" );
}
] );

// Execute some Lua code, including callbacks into PHP and into Lua

$luaCode = <<<EOF
php.output( "Hello, world" );

return "Hi", function ( v )
return php.frobnosticate( v + 200 )
end
EOF;

list( $hi, $frob ) = $sandbox->loadString( $luaCode )->call();
assert( $frob->call( 4000 ) === [ 4242 ] );

// PHP-thrown LuaSandboxRuntimeError exceptions can be caught inside Lua

list( $ok, $message ) = $sandbox->loadString( 'return pcall( php.error )' )->call();
assert( !$ok );
assert( $message === 'Something is wrong' );

?>


The LuaSandbox class

(PECL luasandbox >= 1.0.0)

Introdução

The LuaSandbox class creates a Lua environment and allows for execution of Lua code.

Resumo da classe

class LuaSandbox {
/* Constantes */
const int SAMPLES = 0;
const int SECONDS = 1;
const int PERCENT = 2;
/* Métodos */
public callFunction(string $name, mixed ...$args): array|bool
public disableProfiler(): void
public enableProfiler(float $period = 0.02): bool
public getCPUUsage(): float
public getMemoryUsage(): int
public getPeakMemoryUsage(): int
public getProfilerFunctionReport(int $units = LuaSandbox::SECONDS): array
public static getVersionInfo(): array
public loadBinary(string $code, string $chunkName = ''): LuaSandboxFunction
public loadString(string $code, string $chunkName = ''): LuaSandboxFunction
public pauseUsageTimer(): bool
public registerLibrary(string $libname, array $functions): void
public setCPULimit(float|bool $limit): void
public setMemoryLimit(int $limit): void
public unpauseUsageTimer(): void
public wrapPhpFunction(callable $function): LuaSandboxFunction
}

Constantes pré-definidas

LuaSandbox::SAMPLES

Used with LuaSandbox::getProfilerFunctionReport() to return timings in samples.

LuaSandbox::SECONDS

Used with LuaSandbox::getProfilerFunctionReport() to return timings in seconds.

LuaSandbox::PERCENT

Used with LuaSandbox::getProfilerFunctionReport() to return timings in percentages of the total.

Índice

  • LuaSandbox::callFunction — Call a function in a Lua global variable
  • LuaSandbox::disableProfiler — Disable the profiler
  • LuaSandbox::enableProfiler — Enable the profiler.
  • LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment
  • LuaSandbox::getProfilerFunctionReport — Fetch profiler data
  • LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua
  • LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment
  • LuaSandbox::loadString — Load Lua code into the Lua environment
  • LuaSandbox::pauseUsageTimer — Pause the CPU usage timer
  • LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library
  • LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment
  • LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment
  • LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer
  • LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction


Call a function in a Lua global variable

  • « LuaSandbox
  • LuaSandbox::disableProfiler »
  • PHP Manual
  • LuaSandbox
  • Call a function in a Lua global variable

LuaSandbox::callFunction

(PECL luasandbox >= 1.0.0)

LuaSandbox::callFunction — Call a function in a Lua global variable

Descrição

public LuaSandbox::callFunction(string $name, mixed ...$args): array|bool

Calls a function in a Lua global variable.

If the name contains "." characters, the function is located via recursive table accesses, as if the name were a Lua expression.

If the variable does not exist, or is not a function, false will be returned and a warning issued.

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Parâmetros

name

Lua variable name.

args

Arguments to the function.

Valor Retornado

Returns an array of values returned by the Lua function, which may be empty, ou false em caso de falha.

Exemplos

Exemplo #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Call Lua's string.match
$captures = $sandbox->callFunction( 'string.match', $string, $pattern );

?>


Disable the profiler

  • « LuaSandbox::callFunction
  • LuaSandbox::enableProfiler »
  • PHP Manual
  • LuaSandbox
  • Disable the profiler

LuaSandbox::disableProfiler

(PECL luasandbox >= 1.1.0)

LuaSandbox::disableProfiler — Disable the profiler

Descrição

public LuaSandbox::disableProfiler(): void

Disables the profiler.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • LuaSandbox::enableProfiler() - Enable the profiler.
  • LuaSandbox::getProfilerFunctionReport() - Fetch profiler data


Enable the profiler.

  • « LuaSandbox::disableProfiler
  • LuaSandbox::getCPUUsage »
  • PHP Manual
  • LuaSandbox
  • Enable the profiler.

LuaSandbox::enableProfiler

(PECL luasandbox >= 1.1.0)

LuaSandbox::enableProfiler — Enable the profiler.

Descrição

public LuaSandbox::enableProfiler(float $period = 0.02): bool

Enables the profiler. Profiling will begin when Lua code is entered.

The profiler periodically samples the Lua environment to record the running function. Testing indicates that at least on Linux, setting a period less than 1ms will lead to a high overrun count but no performance problems.

Parâmetros

period

Sampling period in seconds.

Valor Retornado

Returns a boolean indicating whether the profiler is enabled.

Veja Também

  • LuaSandbox::disableProfiler() - Disable the profiler
  • LuaSandbox::getProfilerFunctionReport() - Fetch profiler data


Fetch the current CPU time usage of the Lua environment

  • « LuaSandbox::enableProfiler
  • LuaSandbox::getMemoryUsage »
  • PHP Manual
  • LuaSandbox
  • Fetch the current CPU time usage of the Lua environment

LuaSandbox::getCPUUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment

Descrição

public LuaSandbox::getCPUUsage(): float

Fetches the current CPU time usage of the Lua environment.

This includes time spent in PHP callbacks.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current CPU time usage in seconds.

Nota:

On Windows, this function always returns zero. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, this function will return the elapsed wall-clock time, not CPU time.

Veja Também

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Fetch the current memory usage of the Lua environment

  • « LuaSandbox::getCPUUsage
  • LuaSandbox::getPeakMemoryUsage »
  • PHP Manual
  • LuaSandbox
  • Fetch the current memory usage of the Lua environment

LuaSandbox::getMemoryUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment

Descrição

public LuaSandbox::getMemoryUsage(): int

Fetches the current memory usage of the Lua environment.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current memory usage in bytes.

Veja Também

  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Fetch the peak memory usage of the Lua environment

  • « LuaSandbox::getMemoryUsage
  • LuaSandbox::getProfilerFunctionReport »
  • PHP Manual
  • LuaSandbox
  • Fetch the peak memory usage of the Lua environment

LuaSandbox::getPeakMemoryUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment

Descrição

public LuaSandbox::getPeakMemoryUsage(): int

Fetches the peak memory usage of the Lua environment.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the peak memory usage in bytes.

Veja Também

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Fetch profiler data

  • « LuaSandbox::getPeakMemoryUsage
  • LuaSandbox::getVersionInfo »
  • PHP Manual
  • LuaSandbox
  • Fetch profiler data

LuaSandbox::getProfilerFunctionReport

(PECL luasandbox >= 1.1.0)

LuaSandbox::getProfilerFunctionReport — Fetch profiler data

Descrição

public LuaSandbox::getProfilerFunctionReport(int $units = LuaSandbox::SECONDS): array

For a profiling instance previously started by LuaSandbox::enableProfiler(), get a report of the cost of each function.

The measurement unit used for the cost is determined by the $units parameter:

LuaSandbox::SAMPLES

Measure in number of samples.

LuaSandbox::SECONDS

Measure in seconds of CPU time.

LuaSandbox::PERCENT

Measure percentage of CPU time.

Parâmetros

units

Measurement unit constant.

Valor Retornado

Returns profiler measurements, sorted in descending order, as an associative array. Keys are the Lua function names (with source file and line defined in angle brackets), values are the measurements as int or float.

Nota:

On Windows, this function always returns an empty array. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, this function will report the elapsed wall-clock time, not CPU time.

Exemplos

Exemplo #1 Profiling Lua code

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Start the profiler
$sandbox->enableProfiler( 0.01 );

// ... Execute some Lua code here ...

// Fetch the profiler data
$data = $sandbox->getProfilerFunctionReport();

?>


Return the versions of LuaSandbox and Lua

  • « LuaSandbox::getProfilerFunctionReport
  • LuaSandbox::loadBinary »
  • PHP Manual
  • LuaSandbox
  • Return the versions of LuaSandbox and Lua

LuaSandbox::getVersionInfo

(PECL luasandbox >= 1.6.0)

LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua

Descrição

public static LuaSandbox::getVersionInfo(): array

Returns the versions of LuaSandbox and Lua.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with two keys:

element | type | description
LuaSandbox | string | The version of the LuaSandbox extension.
Lua | string | The library name and version as defined by the LUA_RELEASE macro, for example, "Lua 5.1.5".


Load a precompiled binary chunk into the Lua environment

  • « LuaSandbox::getVersionInfo
  • LuaSandbox::loadString »
  • PHP Manual
  • LuaSandbox
  • Load a precompiled binary chunk into the Lua environment

LuaSandbox::loadBinary

(PECL luasandbox >= 1.0.0)

LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment

Descrição

public LuaSandbox::loadBinary(string $code, string $chunkName = ''): LuaSandboxFunction

Loads data generated by LuaSandboxFunction::dump().

Parâmetros

code

Data from LuaSandboxFunction::dump().

chunkName

Name for the loaded function.

Valor Retornado

Returns a LuaSandboxFunction.

Veja Também

  • LuaSandbox::loadString() - Load Lua code into the Lua environment


Load Lua code into the Lua environment

  • « LuaSandbox::loadBinary
  • LuaSandbox::pauseUsageTimer »
  • PHP Manual
  • LuaSandbox
  • Load Lua code into the Lua environment

LuaSandbox::loadString

(PECL luasandbox >= 1.0.0)

LuaSandbox::loadString — Load Lua code into the Lua environment

Descrição

public LuaSandbox::loadString(string $code, string $chunkName = ''): LuaSandboxFunction

Loads Lua code into the Lua environment.

This is the equivalent of standard Lua's loadstring() function.

Parâmetros

code

Lua code.

chunkName

Name for the loaded chunk, for use in error traces.

Valor Retornado

Returns a LuaSandboxFunction which, when executed, will execute the passed $code.

Exemplos

Exemplo #1 Loading code into Lua

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Load the code
$function = $sandbox->loadString(
<<<CODE
 return "Hello, world"
CODE
);

// Execute the loaded code
var_dump( $function->call() );

?>

O exemplo acima produzirá:

array(1) {
  [0]=>
  string(12) "Hello, world"
}

Veja Também

  • LuaSandbox::registerLibrary() - Register a set of PHP functions as a Lua library
  • LuaSandbox::wrapPhpFunction() - Wrap a PHP callable in a LuaSandboxFunction


Pause the CPU usage timer

  • « LuaSandbox::loadString
  • LuaSandbox::registerLibrary »
  • PHP Manual
  • LuaSandbox
  • Pause the CPU usage timer

LuaSandbox::pauseUsageTimer

(PECL luasandbox >= 1.4.0)

LuaSandbox::pauseUsageTimer — Pause the CPU usage timer

Descrição

public LuaSandbox::pauseUsageTimer(): bool

Pauses the CPU usage timer.

This only has effect when called from within a callback from Lua. When execution returns to Lua, the timer will be automatically unpaused. If a new call into Lua is made, the timer will be unpaused for the duration of that call.

If a PHP callback calls into Lua again with timer not paused, and then that Lua function calls into PHP again, the second PHP call will not be able to pause the timer. The logic is that even though the second PHP call would avoid counting the CPU usage against the limit, the first call still counts it.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a bool indicating whether the timer is now paused.

Exemplos

Exemplo #1 Manipulating the usage timer

<?php

// create a new LuaSandbox and set a CPU limit
$sandbox = new LuaSandbox();
$sandbox->setCPULimit( 1 );

function doWait( $t ) {
$end = microtime( true ) + $t;
while ( microtime( true ) < $end ) {
// waste CPU cycles
}
}

// Register a PHP callback
$sandbox->registerLibrary( 'php', [
'test' => function () use ( $sandbox ) {
$sandbox->pauseUsageTimer();
doWait( 5 );

$sandbox->unpauseUsageTimer();
doWait( 0.1 );
},
'test2' => function () use ( $sandbox ) {
$sandbox->pauseUsageTimer();
$sandbox->unpauseUsageTimer();
doWait( 1.1 );
}
] );

echo "This should not time out...\n";
$sandbox->loadString( 'php.test()' )->call();

echo "This should time out.\n";
try {
$sandbox->loadString( 'php.test2()' )->call();
echo "It did not?\n";
} catch ( LuaSandboxTimeoutError $ex ) {
echo "It did! " . $ex->getMessage() . "\n";
}

?>

O exemplo acima produzirá:

This should not time out...
This should time out.
It did! The maximum execution time for this script was exceeded

Veja Também

  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment
  • LuaSandbox::unpauseUsageTimer() - Unpause the timer paused by LuaSandbox::pauseUsageTimer


Register a set of PHP functions as a Lua library

  • « LuaSandbox::pauseUsageTimer
  • LuaSandbox::setCPULimit »
  • PHP Manual
  • LuaSandbox
  • Register a set of PHP functions as a Lua library

LuaSandbox::registerLibrary

(PECL luasandbox >= 1.0.0)

LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library

Descrição

public LuaSandbox::registerLibrary(string $libname, array $functions): void

Registers a set of PHP functions as a Lua library, so that Lua can call the relevant PHP code.

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Parâmetros

libname

The name of the library. In the Lua state, the global variable of this name will be set to the table of functions. If the table already exists, the new functions will be added to it.

functions

An array, where each key is a function name, and each value is a corresponding PHP callable.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Registering PHP functions to call from Lua

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Register some functions in the Lua environment

function frobnosticate( $v ) {
return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
'frobnosticate' => 'frobnosticate',
'output' => function ( $string ) {
echo "$string\n";
},
'error' => function () {
throw new LuaSandboxRuntimeError( "Something is wrong" );
}
] );

?>

Veja Também

  • LuaSandbox::loadString() - Load Lua code into the Lua environment
  • LuaSandbox::wrapPhpFunction() - Wrap a PHP callable in a LuaSandboxFunction


Set the CPU time limit for the Lua environment

  • « LuaSandbox::registerLibrary
  • LuaSandbox::setMemoryLimit »
  • PHP Manual
  • LuaSandbox
  • Set the CPU time limit for the Lua environment

LuaSandbox::setCPULimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment

Descrição

public LuaSandbox::setCPULimit(float|bool $limit): void

Sets the CPU time limit for the Lua environment.

If the total user and system time used by the environment after the call to this method exceeds this limit, a LuaSandboxTimeoutError exception is thrown.

Time used in PHP callbacks is included in the limit.

Setting the time limit from a callback while Lua is running causes the timer to be reset, or started if it was not already running.

Nota:

On Windows, the CPU limit will be ignored. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, wall-clock time rather than CPU time will be limited.

Parâmetros

limit

Limit as a float in seconds, or false for no limit.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// set a time limit
$sandbox->setCPULimit( 2 );

// Run Lua code
$sandbox->loadString( 'while true do end' )->call();

?>

O exemplo acima produzirá algo semelhante a:

PHP Fatal error:  Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded

Veja Também

  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Set the memory limit for the Lua environment

  • « LuaSandbox::setCPULimit
  • LuaSandbox::unpauseUsageTimer »
  • PHP Manual
  • LuaSandbox
  • Set the memory limit for the Lua environment

LuaSandbox::setMemoryLimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment

Descrição

public LuaSandbox::setMemoryLimit(int $limit): void

Sets the memory limit for the Lua environment.

If this limit is exceeded, a LuaSandboxMemoryError exception is thrown.

Parâmetros

limit

Memory limit in bytes.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// set a memory limit
$sandbox->setMemoryLimit( 50 * 1024 * 1024 );

// Run Lua code
$sandbox->loadString( 'local x = "x"; while true do x = x .. x; end' )->call();

?>

O exemplo acima produzirá algo semelhante a:

PHP Fatal error:  Uncaught LuaSandboxMemoryError: not enough memory

Veja Também

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Unpause the timer paused by LuaSandbox::pauseUsageTimer

  • « LuaSandbox::setMemoryLimit
  • LuaSandbox::wrapPhpFunction »
  • PHP Manual
  • LuaSandbox
  • Unpause the timer paused by LuaSandbox::pauseUsageTimer

LuaSandbox::unpauseUsageTimer

(PECL luasandbox >= 1.4.0)

LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer()

Descrição

public LuaSandbox::unpauseUsageTimer(): void

Unpauses the timer paused by LuaSandbox::pauseUsageTimer().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • LuaSandbox::pauseUsageTimer() - Pause the CPU usage timer
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Wrap a PHP callable in a LuaSandboxFunction

  • « LuaSandbox::unpauseUsageTimer
  • LuaSandboxFunction »
  • PHP Manual
  • LuaSandbox
  • Wrap a PHP callable in a LuaSandboxFunction

LuaSandbox::wrapPhpFunction

(PECL luasandbox >= 1.2.0)

LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction

Descrição

public LuaSandbox::wrapPhpFunction(callable $function): LuaSandboxFunction

Wraps a PHP callable in a LuaSandboxFunction, so it can be passed into Lua as an anonymous function.

The function must return either an array of values (which may be empty), or null which is equivalent to returning the empty array.

Exceptions will be raised as errors in Lua, however only LuaSandboxRuntimeError exceptions may be caught inside Lua with pcall() or xpcall().

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Parâmetros

function

Callable to wrap.

Valor Retornado

Returns a LuaSandboxFunction.

Veja Também

  • LuaSandbox::loadString() - Load Lua code into the Lua environment
  • LuaSandbox::registerLibrary() - Register a set of PHP functions as a Lua library


The LuaSandboxFunction class

(PECL luasandbox >= 1.0.0)

Introdução

Represents a Lua function, allowing it to be called from PHP.

A LuaSandboxFunction may be obtained as a return value from Lua, as a parameter
passed to a callback from Lua, or by using
LuaSandbox::wrapPhpFunction(),
LuaSandbox::loadString(), or
LuaSandbox::loadBinary().

Resumo da classe

class LuaSandboxFunction {
/* Métodos */
public call(string ...$args): array|bool
public dump(): string
}

Índice

  • LuaSandboxFunction::call — Call a Lua function
  • LuaSandboxFunction::__construct — Unused
  • LuaSandboxFunction::dump — Dump the function as a binary blob


Call a Lua function

  • « LuaSandboxFunction
  • LuaSandboxFunction::__construct »
  • PHP Manual
  • LuaSandboxFunction
  • Call a Lua function

LuaSandboxFunction::call

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::call — Call a Lua function

Descrição

public LuaSandboxFunction::call(string ...$args): array|bool

Calls a Lua function.

Errors considered to be the fault of the PHP code will result in the function returning false and E_WARNING being raised, for example, a resource type being used as an argument. Lua errors will result in a LuaSandboxRuntimeError exception being thrown.

PHP and Lua types are converted as follows:

  • PHP null is Lua nil, and vice versa.

  • PHP ints and floats are converted to Lua numbers. Infinity and NAN are supported.

  • Lua numbers without a fractional part between approximately -2**53 and 2**53 are converted to PHP ints, with others being converted to PHP floats.

  • PHP bools are Lua booleans, and vice versa.

  • PHP strings are Lua strings, and vice versa.

  • Lua functions are PHP LuaSandboxFunction objects, and vice versa. General PHP callables are not supported.

  • PHP arrays are converted to Lua tables, and vice versa.

    • Note that Lua typically indexes arrays from 1, while PHP indexes arrays from 0. No adjustment is made for these differing conventions.

    • Self-referential arrays are not supported in either direction.

    • PHP references are dereferenced.

    • Lua __pairs and __ipairs are processed. __index is ignored.

    • When converting from PHP to Lua, integer keys between -2**53 and 2**53 are represented as Lua numbers. All other keys are represented as Lua strings.

    • When converting from Lua to PHP, keys other than strings and numbers will result in an error, as will collisions when converting numbers to strings or vice versa (since PHP considers things like $a[0] and $a["0"] as being equivalent).

  • All other types are unsupported and will raise an error/exception, including general PHP objects and Lua userdata and thread types.

Lua functions inherently return a list of results. So on success, this method returns an array containing all of the values returned by Lua, with int keys starting from zero. Lua may return no results, in which case an empty array is returned.

Parâmetros

args

Arguments passed to the function.

Valor Retornado

Returns an array of values returned by the function, which may be empty, ou false em caso de falha.


Unused

  • « LuaSandboxFunction::call
  • LuaSandboxFunction::dump »
  • PHP Manual
  • LuaSandboxFunction
  • Unused

LuaSandboxFunction::__construct

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::__construct — Unused

Descrição

final private LuaSandboxFunction::__construct()

LuaSandboxFunction are obtained as a return value from Lua,
as a parameter passed to a callback from Lua, or by using
LuaSandbox::wrapPhpFunction(),
LuaSandbox::loadString(), or
LuaSandbox::loadBinary(). They cannot be constructed directly.

Parâmetros

Esta função não possui parâmetros.


Dump the function as a binary blob

  • « LuaSandboxFunction::__construct
  • LuaSandboxError »
  • PHP Manual
  • LuaSandboxFunction
  • Dump the function as a binary blob

LuaSandboxFunction::dump

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::dump — Dump the function as a binary blob

Descrição

public LuaSandboxFunction::dump(): string

Dumps the function as a binary blob.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string that may be passed to LuaSandbox::loadBinary().


The LuaSandboxError class

(PECL luasandbox >= 1.0.0)

Introdução

Base class for LuaSandbox exceptions

Resumo da classe

class LuaSandboxError extends Exception {
/* Constantes */
const int RUN = 2;
const int SYNTAX = 3;
const int MEM = 4;
const int ERR = 5;
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Constantes pré-definidas

LuaSandboxError::RUN

LuaSandboxError::SYNTAX

LuaSandboxError::MEM

LuaSandboxError::ERR


The LuaSandboxErrorError class

(PECL luasandbox >= 1.0.0)

Introdução

Exception thrown when Lua encounters an error inside an error handler.

Resumo da classe

class LuaSandboxErrorError extends LuaSandboxFatalError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The LuaSandboxFatalError class

(PECL luasandbox >= 1.0.0)

Introdução

Uncatchable LuaSandbox exceptions.

These may not be caught inside Lua using pcall() or xpcall().

Resumo da classe

class LuaSandboxFatalError extends LuaSandboxError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The LuaSandboxMemoryError class

(PECL luasandbox >= 1.0.0)

Introdução

Exception thrown when Lua cannot allocate memory.

Resumo da classe

class LuaSandboxMemoryError extends LuaSandboxFatalError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Veja Também

  • LuaSandbox::setMemoryLimit()


The LuaSandboxRuntimeError class

(PECL luasandbox >= 1.0.0)

Introdução

Catchable LuaSandbox runtime exceptions.

These may be caught inside Lua using pcall() or xpcall().

Resumo da classe

class LuaSandboxRuntimeError extends LuaSandboxError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The LuaSandboxSyntaxError class

(PECL luasandbox >= 1.0.0)

Introdução

Exception thrown when Lua code cannot be parsed.

Resumo da classe

class LuaSandboxSyntaxError extends LuaSandboxFatalError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The LuaSandboxTimeoutError class

(PECL luasandbox >= 1.0.0)

Introdução

Exception thrown when the configured CPU time limit is exceeded.

Resumo da classe

class LuaSandboxTimeoutError extends LuaSandboxFatalError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Veja Também

  • LuaSandbox::setCPULimit()


Funções Miscelâneas

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Misc. Funções
    • connection_aborted — Verifica se o cliente está desconectado
    • connection_status — Retorna o campo de bits do estado da conexão
    • constant — Retorna o valor de uma constante
    • define — Define uma constante com nome
    • defined — Verifica se existe uma constante com o nome informado
    • die — Equivalente a exit
    • eval — Avalia uma string como código PHP
    • exit — Mostra uma mensagem e termina o script atual
    • get_browser — Diz o que o navegador do usuário é capaz fazer
    • __halt_compiler — Para a execução do compilador
    • highlight_file — Destaca a sintaxe de um arquivo
    • highlight_string — Destaque de sintaxe de uma string
    • hrtime — Obtém o tempo de alta resolução do sistema
    • ignore_user_abort — Define se uma desconexão de cliente deve abortar execução de script
    • pack — Empacota dados em uma string binária
    • php_strip_whitespace — Retorna o código com comentários e espaços em branco removidos
    • sapi_windows_cp_conv — Converte string de um código de página para outro
    • sapi_windows_cp_get — Obtém o código de página atual
    • sapi_windows_cp_is_utf8 — Indica se o código de página é compatível com UTF-8
    • sapi_windows_cp_set — Define o código de página do processo
    • sapi_windows_generate_ctrl_event — Envia um evento CTRL a outro processo
    • sapi_windows_set_ctrl_handler — Define ou remove um manipulador de evento CTRL
    • sapi_windows_vt100_support — Obtém ou define suporte VT100 para o fluxo especificado associado a um buffer de saída de um console Windows.
    • show_source — Sinônimo de highlight_file
    • sleep — Atrasa a execução
    • sys_getloadavg — Obtém a média de carga do sistema
    • time_nanosleep — Atrasa por um número de segundos e nanossegundos
    • time_sleep_until — Faz o script pausar até o horário especificado
    • uniqid — Gera um ID único
    • unpack — Desempacota dados de uma string binária
    • usleep — Atrasa a execução em microssegundos
  • Registro de Alterações


Introdução

Estas funções foram colocadas aqui porque pareciam não caber em nenhuma outra categoria.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
ignore_user_abort | "0" | INI_ALL |
highlight.string | "#DD0000" | INI_ALL |
highlight.comment | "#FF8000" | INI_ALL |
highlight.keyword | "#007700" | INI_ALL |
highlight.default | "#0000BB" | INI_ALL |
highlight.html | "#000000" | INI_ALL |
browscap | NULL | INI_SYSTEM |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

ignore_user_abort bool

false por padrão. Se modificado para true, os scripts não serão terminados depois que um cliente tiver abortado sua conexão.

Consulte também ignore_user_abort().

highlight.bg string
highlight.comment string
highlight.default string
highlight.html string
highlight.keyword string
highlight.string string

Cores para o modo de Destaque de Sintaxe. Qualquer argumento que seja aceito em <font color="??????"> irá funcionar.

browscap string

Nome (ex.: browscap.ini) e localização do arquivo de capacidades do navegador. Consulte também get_browser().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

CONNECTION_ABORTED (int)
CONNECTION_NORMAL (int)
CONNECTION_TIMEOUT (int)
__COMPILER_HALT_OFFSET__ (int)


Misc. Funções

Índice

  • connection_aborted — Verifica se o cliente está desconectado
  • connection_status — Retorna o campo de bits do estado da conexão
  • constant — Retorna o valor de uma constante
  • define — Define uma constante com nome
  • defined — Verifica se existe uma constante com o nome informado
  • die — Equivalente a exit
  • eval — Avalia uma string como código PHP
  • exit — Mostra uma mensagem e termina o script atual
  • get_browser — Diz o que o navegador do usuário é capaz fazer
  • __halt_compiler — Para a execução do compilador
  • highlight_file — Destaca a sintaxe de um arquivo
  • highlight_string — Destaque de sintaxe de uma string
  • hrtime — Obtém o tempo de alta resolução do sistema
  • ignore_user_abort — Define se uma desconexão de cliente deve abortar execução de script
  • pack — Empacota dados em uma string binária
  • php_strip_whitespace — Retorna o código com comentários e espaços em branco removidos
  • sapi_windows_cp_conv — Converte string de um código de página para outro
  • sapi_windows_cp_get — Obtém o código de página atual
  • sapi_windows_cp_is_utf8 — Indica se o código de página é compatível com UTF-8
  • sapi_windows_cp_set — Define o código de página do processo
  • sapi_windows_generate_ctrl_event — Envia um evento CTRL a outro processo
  • sapi_windows_set_ctrl_handler — Define ou remove um manipulador de evento CTRL
  • sapi_windows_vt100_support — Obtém ou define suporte VT100 para o fluxo especificado associado a um buffer de saída de um console Windows.
  • show_source — Sinônimo de highlight_file
  • sleep — Atrasa a execução
  • sys_getloadavg — Obtém a média de carga do sistema
  • time_nanosleep — Atrasa por um número de segundos e nanossegundos
  • time_sleep_until — Faz o script pausar até o horário especificado
  • uniqid — Gera um ID único
  • unpack — Desempacota dados de uma string binária
  • usleep — Atrasa a execução em microssegundos


Verifica se o cliente está desconectado

  • « Misc. Funções
  • connection_status »
  • PHP Manual
  • Misc. Funções
  • Verifica se o cliente está desconectado

connection_aborted

(PHP 4, PHP 5, PHP 7, PHP 8)

connection_aborted — Verifica se o cliente está desconectado

Descrição

connection_aborted(): int

Verifica se o cliente está desconectado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna 1 se o cliente está desconectado, 0 caso contrário.

Veja Também

  • connection_status() - Retorna o campo de bits do estado da conexão
  • ignore_user_abort() - Define se uma desconexão de cliente deve abortar execução de script
  • Tratamento de conexões para um descrição completa sobre tratamento de conexões no PHP.


Retorna o campo de bits do estado da conexão

  • « connection_aborted
  • constant »
  • PHP Manual
  • Misc. Funções
  • Retorna o campo de bits do estado da conexão

connection_status

(PHP 4, PHP 5, PHP 7, PHP 8)

connection_status — Retorna o campo de bits do estado da conexão

Descrição

connection_status(): int

Obtém o campo de bits do estado da conexão.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o campo de bits do estado da conexão, que pode ser confrontado com as constantes CONNECTION_* para determinar o estado da conexão.

Veja Também

  • connection_aborted() - Verifica se o cliente está desconectado
  • ignore_user_abort() - Define se uma desconexão de cliente deve abortar execução de script
  • Manipulação de Conexões para uma descrição completa de manipulação de conexões no PHP.


Retorna o valor de uma constante

  • « connection_status
  • define »
  • PHP Manual
  • Misc. Funções
  • Retorna o valor de uma constante

constant

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

constant — Retorna o valor de uma constante

Descrição

constant(string $name): mixed

Retorna o valor de uma constante indicada pelo parâmetro name.

A função constant() é útil se você precisa pegar o valor de uma constante, mas não sabe o seu nome. I.e. esta guardada em uma variável ou é retornada por uma função.

Esta função funciona também com constantes de classes e casos de enumeração.

Parâmetros

name

O nome da constante.

Valor Retornado

Retorna o valor da constante.

Erros/Exceções

Se a constante não estiver definida, uma exceção Error é lançada. Antes do PHP 8.0.0, um erro de nível E_WARNING era gerado nesse caso.

Registro de Alterações

Versão | Descrição
8.0.0 | If the constant is not defined, constant() now throws an Error exception; previously an E_WARNING was generated, and null was returned.

Exemplos

Exemplo #1 Usando constant() com Constantes

<?php

define("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // mesma coisa que a linha anterior

interface bar {
const test = 'foobar!';
}

class foo {
const test = 'foobar!';
}

$const = 'test';

var_dump(constant('bar::'. $const)); // string(7) "foobar!"
var_dump(constant('foo::'. $const)); // string(7) "foobar!"

?>

Exemplo #2 Usando constant()com Casos de Enumeração (a partir do PHP 8.1.0)

<?php

enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$case = 'Hearts';

var_dump(constant('Suit::'. $case)); // enum(Suit::Hearts)

?>

Veja Também

  • define() - Define uma constante com nome
  • defined() - Verifica se existe uma constante com o nome informado
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values
  • A seção sobre Constantes


Define uma constante com nome

  • « constant
  • defined »
  • PHP Manual
  • Misc. Funções
  • Define uma constante com nome

define

(PHP 4, PHP 5, PHP 7, PHP 8)

define — Define uma constante com nome

Descrição

define(string $constant_name, mixed $value, bool $case_insensitive = false): bool

Define uma constante com nome em tempo de execução.

Parâmetros

constant_name

O nome da constante.

Nota:

É possível definir constante pela função define() com nome reservado ou até mesmo com nome inválido, cujo valor pode (somente) ser recuperado com a função constant(). Entretanto, isto não é recomendado.

value

O valor da constante. No PHP 5, value precisa ser um valor do tipo scalar (int, float, string, bool ou null). No PHP 7, valores do tipo array também são aceitos.

Aviso

Apesar de ser possível definir constantes do tipo resource, não é recomendado e pode causar comportamento imprevisível.

case_insensitive

Se definido para true, a constante será definida sem diferenciação de maiúsculas/minúsculas. O comportamento padrão é diferenciar, isto é, CONSTANT e Constant representam valores diferentes.

Aviso

Definir constantes sem diferenciar maiúsculas/minúsculas tornou-se defasado a partir do PHP 7.3.0. A partir do PHP 8.0.0, somente false é um valor aceitável para este parâmetro, passar true irá gerar um alerta.

Nota:

Constantes insensíveis a maiúsculas/minúsculas são armazenadas em minúsculas.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Passar true para case_insensitive agora emite um E_WARNING. Passar false ainda é permitido.
7.3.0 | case_insensitive tornou-se defasado e será removido na versão 8.0.0.
7.0.0 | Valores do tipo array são permitidos.

Exemplos

Exemplo #1 Defining Constants

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // mostra "Hello world."
echo Constant; // mostra "Constant" e emite uma nota.

define("GREETING", "Hello you.", true);
echo GREETING; // mostra "Hello you."
echo Greeting; // mostra "Hello you."

// Funciona a partir do PHP 7
define('ANIMALS', array(
'dog',
'cat',
'bird'
));
echo ANIMALS[1]; // mostra "cat"

?>

Exemplo #2 Constantes com Nomes Reservados

Este exemplo ilustra a possibilidade de definir uma constante com o mesmo nome de uma constante mágica. Como o comportamento resultante obviamente é confuso, não é portanto recomendado fazê-lo na prática.

<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>

O exemplo acima produzirá:

bool(false)
bool(true)
string(4) "test"
int(5)

Veja Também

  • defined() - Verifica se existe uma constante com o nome informado
  • constant() - Retorna o valor de uma constante
  • A seção sobre Constantes


Verifica se existe uma constante com o nome informado

  • « define
  • die »
  • PHP Manual
  • Misc. Funções
  • Verifica se existe uma constante com o nome informado

defined

(PHP 4, PHP 5, PHP 7, PHP 8)

defined — Verifica se existe uma constante com o nome informado

Descrição

defined(string $constant_name): bool

Verifica se uma constante com o nome informado em constant_name está definida.

A função também funciona com constantes de classe e casos de enumeração.

Nota:

Se o objetivo for verificar se uma variável existe, use a função isset() já que a função defined() somente se aplica a constantes. Se o objetivo for verificar se uma função existe, use a função function_exists().

Parâmetros

constant_name

O nome da constante.

Valor Retornado

Retorna true se a constante nomeada informada por constant_name já está definida, false caso contrário.

Exemplos

Exemplo #1 Verificando constantes

<?php

/* Observe o uso de aspas, isto é importante. Este exemplo está verificando
* se a string 'TEST' é o nome de uma constante chamada TEST */
if (defined('TEST')) {
echo TEST;
}

interface bar {
const test = 'foobar!';
}

class foo {
const test = 'foobar!';
}

var_dump(defined('bar::test')); // bool(true)
var_dump(defined('foo::test')); // bool(true)

?>

Exemplo #2 Verificando Casos de Enumeração (a partir do PHP 8.1.0)

<?php

enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

var_dump(defined('Suit::Hearts')); // bool(true)

?>

Veja Também

  • define() - Define uma constante com nome
  • constant() - Retorna o valor de uma constante
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values
  • function_exists() - Retorna true se a função informada estiver definida
  • A seção sobre Constantes


Equivalente a exit

  • « defined
  • eval »
  • PHP Manual
  • Misc. Funções
  • Equivalente a exit

die

(PHP 4, PHP 5, PHP 7, PHP 8)

die — Equivalente a exit

Descrição

Esta construção de linguagem é equivalente a exit().


Avalia uma string como código PHP

  • « die
  • exit »
  • PHP Manual
  • Misc. Funções
  • Avalia uma string como código PHP

eval

(PHP 4, PHP 5, PHP 7, PHP 8)

eval — Avalia uma string como código PHP

Descrição

eval(string $code): mixed

Avalia a string fornecida no parâmetro code como um código PHP.

O código a ser avaliado herda o escopo de variáveis da linha na qual a chamada a eval() ocorrer. Todas as variáveis disponíveis naquela linha estarão disponíveis para leitura e modificação no código avaliado. Entretanto, todas as funções e classes definidas serão definidas no espaço de nomes global. Em outras palavras, o compilador considera o código avaliado como se ele fosse um arquivo incluído separadamente.

Cuidado

A construção de linguagem eval() é bastante perigosa porque permite execução de código PHP arbitrário. Seu uso é contudo desencorajado. Se foi cuidadosamente verificado que não há outra opção a não ser usar esta construção, deve-se prestar atenção especial para não passar nenhum dado fornecido pelo usuário no parâmetro sem antes validá-lo.

Parâmetros

code

Código PHP válido a ser avaliado.

O código não pode ser envolvido em etiquetas PHP de abertura e de fechamento, isto é, 'echo "Hi!";' deve ser passado ao invés de '<?php echo "Hi!"; ?>'. Ainda é possível sair e re-entrar no modo PGP usando-se os marcadores apropriados, ex.: 'echo "In PHP mode!"; ?>In HTML mode!<?php echo "Back in PHP mode!";'.

Além disso, o código informado deve ser código PHP válido. Isto inclui o fato de que todas as instruções devem ser adequadamente terminadas com ponto-e-vírgula. 'echo "Hi!"' por exemplo causará um erro de avaliação, enquanto que 'echo "Hi!";' funcionará.

Uma instrução return irá terminar imediatamente a avaliação do código.

o código será executado no escopo do código que está chamando eval(). Todas as variáveis definidas ou alteradas na chamada a eval() permanecerão visíveis depois que ela terminar.

Valor Retornado

eval() retorna null a menos que return seja chamado no código avaliado, neste caso o valor passado a return será o retornado. A partir do PHP 7, se houver um erro de avaliação no código, eval() lança uma exceção ParseError. Antes do PHP 7, neste caso eval() retornava false e a execução do código seguinte continuava normalmente. Não é possível capturar um erro de avaliação em eval() usando set_error_handler().

Exemplos

Exemplo #1 Exemplo de eval() example - fusão simples de texto

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

O exemplo acima produzirá:

This is a $string with my $name in it.
This is a cup with my coffee in it.

Notas

Nota: Como esta é uma construção da linguagem e não uma função, ela não pode ser chamada usando funções variáveis ou argumentos nomeados.

Dica

Assim como qualquer coisa que envia seu resultado diretamente para o navegador, as funções de controle de saída podem ser usadas para capturar a saída desta função e salvá-la em uma string, por exemplo.

Nota:

Em caso de erro fatal no código avaliado, todo o script é terminado.

Veja Também

  • call_user_func() - Call the callback given by the first parameter


Mostra uma mensagem e termina o script atual

  • « eval
  • get_browser »
  • PHP Manual
  • Misc. Funções
  • Mostra uma mensagem e termina o script atual

exit

(PHP 4, PHP 5, PHP 7, PHP 8)

exit — Mostra uma mensagem e termina o script atual

Descrição

exit(string $status = ?): void
exit(int $status): void

Termina a execução do script. Funções de desligamento e destruidores de objeto sempre serão executados mesmo que exit seja chamada.

exit é uma construção de linguagem e pode ser chamada sem parênteses se status não foi informado.

Parâmetros

status

Se status for uma string, a função mostra status logo antes de sair.

Se status for um int, este valor será usado como o estado da saída e não será mostrado Estados de saída devem estar no intervalo de 0 a 254, o estado de saída 255 é reservado pelo PHP e não deve ser usado. O estado 0 é usado para terminar o programa com sucesso.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de exit

<?php

$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or exit("unable to open file ($filename)");

?>

Exemplo #2 Exemplo de exit com estado de saída

<?php

//sai do programa normalmente
exit;
exit();
exit(0);

//sai com código de erro
exit(1);
exit(0376); //octal

?>

Exemplo #3 Desligamento de funções e destruidores de objeto são executados independentemente

<?php
class Foo
{
public function __destruct()
{
echo 'Destruidor: ' . __METHOD__ . '()' . PHP_EOL;
}
}

function shutdown()
{
echo 'Desligamento: ' . __FUNCTION__ . '()' . PHP_EOL;
}

$foo = new Foo();
register_shutdown_function('shutdown');

exit();
echo 'Este texto não será mostrado.';
?>

O exemplo acima produzirá:

Desligamento: shutdown()
 Destruidor: Foo::__destruct()

Notas

Nota: Como esta é uma construção da linguagem e não uma função, ela não pode ser chamada usando funções variáveis ou argumentos nomeados.

Nota:

Esta construção de linguagem é equivalente a die().

Veja Também

  • register_shutdown_function() - Register a function for execution on shutdown


Diz o que o navegador do usuário é capaz fazer

  • « exit
  • __halt_compiler »
  • PHP Manual
  • Misc. Funções
  • Diz o que o navegador do usuário é capaz fazer

get_browser

(PHP 4, PHP 5, PHP 7, PHP 8)

get_browser — Diz o que o navegador do usuário é capaz fazer

Descrição

get_browser(?string $user_agent = null, bool $return_array = false): object|array|false

Tenta determinar as capacidades do navegador do usuário, consultando as informações do navegador no arquivo browscap.ini.

Parâmetros

user_agent

O agente do usuário (navegador) a ser analisado. Por padrão, o valor do cabeçalho HTTP User-Agent é usado; no entanto, pode-se alterar isso (ou seja, procurar informações sobre outro navegador) passando este parâmetro.

Pode-se ignorar esse parâmetro com um valor null.

return_array

Se definido como true, esta função retornará um array, em vez de um object.

Valor Retornado

As informações são retornadas num objeto ou array que conterá vários elementos de dados representando, por exemplo, os números de versão principal e secundário e a string de ID; valores true/false para recursos como frames, JavaScript e cookies; e assim por diante.

O valor cookies significa simplesmente que o navegador é capaz de aceitar cookies e não significa que o usuário habilitou ou não o navegador para aceitar cookies. A única maneira de testar se os cookies são aceitos é definir um com setcookie(), recarregar, e verificar o valor.

Retorna false quando nenhuma informação puder ser obtida, como quando de configuração browscap no php.ini não tiver sido configurada.

Exemplos

Exemplo #1 Listando todas as informações sobre o navegador do usuário

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

O exemplo acima produzirá algo semelhante a:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

Notas

Nota:

Para que isso funcione, sua diretiva de configuração browscap no php.ini deve apontar para a localização correta do arquivo browscap.ini no seu sistema.

O arquivo browscap.ini não vem com o PHP, mas pode-se encontrar um arquivo » php_browscap.ini atualizado aqui.

Embora o arquivo browscap.ini contenha informações sobre muitos navegadores, ele depende de atualizações de usuários para manter o banco de dados atualizado. O formato do arquivo é bastante autoexplicativo.


Para a execução do compilador

  • « get_browser
  • highlight_file »
  • PHP Manual
  • Misc. Funções
  • Para a execução do compilador

__halt_compiler

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

__halt_compiler — Para a execução do compilador

Descrição

__halt_compiler(): void

Para a execução do compilador. Pode ser útil para embutir dados em scripts PHP, como os arquivos de instalação.

A posição do byte do início dos dados pode ser determinada pela constante __COMPILER_HALT_OFFSET__ que é definida somente se houver uma função __halt_compiler() presente no arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Um exemplo de __halt_compiler()

<?php

// abre este arquivo
$fp = fopen(__FILE__, 'r');

// procura por dados usando o ponteiro do arquivo
fseek($fp, __COMPILER_HALT_OFFSET__);

// e mostra os dados
var_dump(stream_get_contents($fp));

// final da execução do script
__halt_compiler(); os dados de instalação (ex.: tar, gz, PHP, etc.)

Notas

Nota:

__halt_compiler() somente pode ser usada a partir do escopo mais externo.


Destaca a sintaxe de um arquivo

  • « __halt_compiler
  • highlight_string »
  • PHP Manual
  • Misc. Funções
  • Destaca a sintaxe de um arquivo

highlight_file

(PHP 4, PHP 5, PHP 7, PHP 8)

highlight_file — Destaca a sintaxe de um arquivo

Descrição

highlight_file(string $filename, bool $return = false): string|bool

Imprime ou retorna a versão com destaque de sintaxe do código contigo no arquivo filename utilizando as cores definidas no destacador de sintaxe nativo do PHP.

Muitos servidores são configurados para destacar automaticamente os arquivos com extensão phps. Por exemplo, o arquivo example.phps quando acessado irá mostrar o código fonte com destaque de cores. Para ativar isso, acrescente a seguinte linha no httpd.conf:

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

Parâmetros

filename

Caminho do arquivo PHP a ser destacado.

return

Informe esse parâmetro como true para fazer essa função retornar o código destacado (ao invés de imprimir).

Valor Retornado

Se return for true, retorna o código destacado como uma string ao invés de imprimir. Se não, irá retornar true no sucesso e false no caso de falhas.

Registro de Alterações

Versão | Descrição
8.3.0 | O HTML resultante foi alterado.

Notas

Cuidado

Cuidados devem ser tomados quando utilizando a função highlight_file() para prevenir que você não revele informações sensíveis inadvertidamente, como senhas e outros tipos de informações que possam criar risco de segurança.

Nota:

Quando o parâmetro return é usado, esta função usa um buffer de saída interno, portanto não pode ser usada em uma função callback da função ob_start().

Veja Também

  • highlight_string() - Destaque de sintaxe de uma string
  • Diretivas INI de highlight


Destaque de sintaxe de uma string

  • « highlight_file
  • hrtime »
  • PHP Manual
  • Misc. Funções
  • Destaque de sintaxe de uma string

highlight_string

(PHP 4, PHP 5, PHP 7, PHP 8)

highlight_string — Destaque de sintaxe de uma string

Descrição

highlight_string(string $string, bool $return = false): string|bool

Mostra ou retorna uma marcação html para uma versão destacada do código PHP fornecido usando as cores definidas no marcador de sintaxe integrado do PHP.

Parâmetros

string

O código PHP a ser destacado. Isso deve incluir a etiqueta de abertura.

return

Defina este parâmetro como true para fazer esta função retornar o código destacado.

Valor Retornado

Se return estiver definido para true, retorna o código destacado como uma string ao invés de mostrá-lo. Caso contrário, retorna true em caso de sucesso, false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.0 | O HTML resultante foi alterado.

Exemplos

Exemplo #1 Exemplo de highlight_string()

<?php
highlight_string('<?php phpinfo(); ?>');
?>

O exemplo acima produzirá:

<code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span>
</span>
</code>

Saída do exemplo acima no PHP 8.3:

<pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span></code></pre>

Notas

Nota:

Quando o parâmetro return é usado, esta função usa um buffer de saída interno, portanto não pode ser usada em uma função callback da função ob_start().

A marcação HTML gerada está sujeita a alterações.

Veja Também

  • highlight_file() - Destaca a sintaxe de um arquivo
  • Diretivas INI para destaque


Obtém o tempo de alta resolução do sistema

  • « highlight_string
  • ignore_user_abort »
  • PHP Manual
  • Misc. Funções
  • Obtém o tempo de alta resolução do sistema

hrtime

(PHP 7 >= 7.3.0, PHP 8)

hrtime — Obtém o tempo de alta resolução do sistema

Descrição

hrtime(bool $as_number = false): array|int|float|false

Retorna o tempo em alta resolução do sistema, contado a partir de um ponto arbitrário no tempo. O timestamp fornecido é monotônico e não pode ser ajustado.

Parâmetros

as_number

Define se o tempo em alta resolução deve ser retornado como array ou como número.

Valor Retornado

Retorna um array de inteiros na forma [segundos, nanossegundos], se o parâmetro as_number for falso. Caso contrário, os nanossegundos são retornados como int (plataformas 64 bits) ou float (plataformas 32 bits). Retorna false em caso de falha.

Exemplos

Exemplo #1 Uso de hrtime()

<?php
echo hrtime(true), PHP_EOL;
print_r(hrtime());
?>

O exemplo acima produzirá algo semelhante a:

10444739687370679
Array
(
    [0] => 10444739
    [1] => 687464812
)

Veja Também

  • A extensão de Tempo de alta resolução
  • microtime() - Retorna o timestamp Unix atual com microssegundos


Define se uma desconexão de cliente deve abortar execução de script

  • « hrtime
  • pack »
  • PHP Manual
  • Misc. Funções
  • Define se uma desconexão de cliente deve abortar execução de script

ignore_user_abort

(PHP 4, PHP 5, PHP 7, PHP 8)

ignore_user_abort — Define se uma desconexão de cliente deve abortar execução de script

Descrição

ignore_user_abort(?bool $enable = null): int

Define se a desconexão do cliente deve abortar a execução do script.

Ao executar o PHP como um script de linha de comando, e o terminal do script for fechado antes do script ser terminado, o script irá morrer na próxima vez que tentar escreve algo, a menos que o parâmetro enable seja definido para true

Parâmetros

enable

Se definido e não null, esta função definirá a configuração ini ignore_user_abort para o valor definido em enable. Caso contrário, esta função irá somente retornar a configuração anterior sem alterá-la.

Valor Retornado

Retorna a configuração anterior, como um inteiro.

Registro de Alterações

Versão | Descrição
8.0.0 | enable agora pode ser nulo.

Exemplos

Exemplo #1 Um exemplo de ignore_user_abort()

<?php
// Ignora o cancelamento pelo usuário e permite que o script
// seja executado para sempre
ignore_user_abort(true);
set_time_limit(0);

echo 'Testando gerenciamento de conexões no PHP';

// Executa uma repetição sem sentido que em algum momento
// talvez nos faça clicar fora da página ou
// clicar no botão de "Stop" do navegador.
while(1)
{
// A conexão falhou?
if(connection_status() != CONNECTION_NORMAL)
{
break;
}

// Espera por 10 segundos
sleep(10);
}

// Se esta linha for alcançada, então o 'break'
// foi ativado de dentro da repetição 'while'

// Aqui pode-se fazer algum registro, ou executar outras tarefas
// conforme necessário sem realmente ficar dependente do
// navegador.
?>

Notas

O PHP não irá detectar que o usuário cancelou a conexão até que uma tentativa seja feita de enviar informação ao cliente. Simplesmente usar uma isntrução 'echo' não garante que a informação é enviada, consulte a função flush().

Veja Também

  • connection_aborted() - Verifica se o cliente está desconectado
  • connection_status() - Retorna o campo de bits do estado da conexão
  • Manipulação de Conexões para uma descrição completa de manipulação de conexões no PHP.


Empacota dados em uma string binária

  • « ignore_user_abort
  • php_strip_whitespace »
  • PHP Manual
  • Misc. Funções
  • Empacota dados em uma string binária

pack

(PHP 4, PHP 5, PHP 7, PHP 8)

pack — Empacota dados em uma string binária

Descrição

pack(string $format, mixed ...$values): string

Empacota os argumentos fornecidos em uma string binária de acordo com o formato especificado em format.

A ideia para esta função foi tirada do Perl e todos os códigos de formatação funcionam da mesma forma que no Perl. Entretando, há alguns códigos de formatação que não existem, como código "u" do Perl.

Observe que a distinção entre valores com e sem sinal somente afeta a função unpack(), enquanto que a função pack() fornece o mesmo resultado para códigos de formato com e sem sinal.

Parâmetros

format

A string format consistem em códigos de formado seguidos de um argumento repetidor opcional. O arrgumento repetidor pode ser um valor inteiro ou * para repetir até o final dos dados de entrada. Para a, A, h, H a contagem de repetição especifica quantos caractares de um argumento de dados são tomados, para @ é a posição absoluta onde colocar o próximo dado, para todo o restante a contagem de repetição especifica quantos argumentos de dados são consumidos e empacotados na string binária resultante.

Os formatos atualmente implementados são:

Caracteres de formato de pack()
Código | Descrição
a | String com bytes NUL à esquerda
A | String com espaços à esquerda
h | String hexadecimal, nibble menos significativo primeiro
H | String hexadecimal, nibble mais significativo primeiro
c | signed char
C | unsigned char
s | signed short (sempre 16 bits, ordem de bytes da máquina)
S | unsigned short (sempre 16 bits, ordem de bytes da máquina)
n | unsigned short (sempre 16 bits, ordem de bytes Big Endian)
v | unsigned short (sempre 16 bits, ordem de bytes Little Endian)
i | signed integer (tamanho e ordem de bytes dependentes da máquina)
I | unsigned integer (tamanho e ordem de bytes dependentes da máquina)
l | signed long (sempre 32 bits, ordem de bytes da máquina)
L | unsigned long (sempre 32 bits, ordem de bytes da máquina)
N | unsigned long (sempre 32 bits, ordem de bytes Big Endian)
V | unsigned long (sempre 32 bits, ordem de bytes Little Endian)
q | signed long long (sempre 64 bits, ordem de bytes da máquina)
Q | unsigned long long (sempre 64 bits, ordem de bytes da máquina)
J | unsigned long long (sempre 64 bits, ordem de bytes Big Endian)
P | unsigned long long (sempre 64 bits, ordem de bytes Little Endian)
f | float (representação e tamanho dependentes da máquina)
g | float (tamanho dependente da máquina, ordem de bytes Little Endian)
G | float (tamanho dependente da máquina, ordem de bytes Big Endian)
d | double (representação e tamanho dependentes da máquina)
e | double (tamanho dependente da máquina, ordem de bytes Little Endian)
E | double (tamanho dependente da máquina, ordem de bytes Big Endian)
x | byte NUL
X | Volta um byte
Z | String com bytes NUL à esquerda
@ Preenche com bytes NUL até a posição absoluta

values

Valor Retornado

Retorna uma string binária contendo dados.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função não mais retorna false em caso de falha.
7.2.0 | Tipos float e double suportam tanto Big Endian quanto Little Endian.
7.0.15,7.1.1 | Os códigos "e", "E", "g" e "G" foram adicionados para habilitar suporte a ordem de byte para float e double.

Exemplos

Exemplo #1 Exemplo de pack()

<?php
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>

A string binária resultante terá 6 bytes de comprimento e conterá a sequência de bytes 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Notas

Cuidado

Observe que internamente o PHP armazena valores int como valores com sinal de tamanho dependente da máquina (o tipo long da linaguagem C). Literais inteiros e operações que resultam em números fora da faixa do tipo int serão armazenados como float. Ao empacotar estes floats como inteiros, eles primeiro são convertidos para o tipo inteiro. Isto pode ou não resultar no padrão de bytes desejado.

O caso mais relevante ocorre ao empacotar números sem sinal que poderiam ser representáveis pelo tipo int se eles fossem sem sinal. Em sistemas onde o tipo int tem 32 bits, a conversão normalmente resulta no mesmo padrão de byte como se o int fosse sem sinal (embora isso dependa das conversões de sem sinal para com sinal definidas pela implementação, conforme o padrão C). Em sistemas onte o tipo int tem 64 bits, o tipo float provavelmente não terá a mantissa grande o suficiente para representar o valor sem perda de precisão. Se estes sistemas também tiverem o tipo int nativo de 64 bits (a maioria dos sistemas tipo UNIX não têm), a única maneira de usar o formato I de empacotamento na faixa superior é criar valores negativos int com a mesma representação de bytes do valor sem sinal desejado.

Veja Também

  • unpack() - Desempacota dados de uma string binária


Retorna o código com comentários e espaços em branco removidos

  • « pack
  • sapi_windows_cp_conv »
  • PHP Manual
  • Misc. Funções
  • Retorna o código com comentários e espaços em branco removidos

php_strip_whitespace

(PHP 5, PHP 7, PHP 8)

php_strip_whitespace — Retorna o código com comentários e espaços em branco removidos

Descrição

php_strip_whitespace(string $filename): string

Retorna o código-fonte do PHP do arquivo filename com comentários PHP e espaços em branco removidos. Isto pode ser útil para determina a quantidade atual de códigos em seu script comparado com a quantidade de comentários. Similar ao uso de php -w pela linha de comando.

Parâmetros

filename

Caminho para o arquivo PHP.

Valor Retornado

O código-fonte filtrado será retornado em caso de sucesso, ou uma string vazia em falha.

Nota:

Esta função respeita o valor da diretiva ini short_open_tag.

Exemplos

Exemplo #1 Exemplo de php_strip_whitespace()

<?php
// Comentário do PHP aqui

/*
* Outro comentário do PHP
*/

echo php_strip_whitespace(__FILE__);
// Novas linhas são consideradas espaço em branco, e também são removidas:
do_nothing();
?>

O exemplo acima produzirá:

<?php
 echo php_strip_whitespace(__FILE__); do_nothing(); ?>

Note que os comentários do PHP foram removidos, assim como os espaços em branco e caracteres de novas linhas depois da primeira declaração echo.


Converte string de um código de página para outro

  • « php_strip_whitespace
  • sapi_windows_cp_get »
  • PHP Manual
  • Misc. Funções
  • Converte string de um código de página para outro

sapi_windows_cp_conv

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_conv — Converte string de um código de página para outro

Descrição

sapi_windows_cp_conv(int|string $in_codepage, int|string $out_codepage, string $subject): ?string

Converte string de um código de página para outro.

Parâmetros

in_codepage

O código de página da string definida pelo parâmetro subject. Pode ser um nome ou um identificador de código de página.

out_codepage

O código de página para o qual a string definida por subject será convertida. Pode ser um nome ou um identificador de código de página.

subject

A string a ser convertida.

Valor Retornado

A string em subject convertida para out_codepage, ou null em caso de falha.

Erros/Exceções

Esta função emite erros de nível E_WARNING, se códigos de página inválidos forem informados, ou se a string não for válida para o código de página informado em in_codepage.

Veja Também

  • sapi_windows_cp_get() - Obtém o código de página atual
  • iconv() - Converte uma string de uma codificação de caracteres para outra


Obtém o código de página atual

  • « sapi_windows_cp_conv
  • sapi_windows_cp_is_utf8 »
  • PHP Manual
  • Misc. Funções
  • Obtém o código de página atual

sapi_windows_cp_get

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_get — Obtém o código de página atual

Descrição

sapi_windows_cp_get(string $kind = ""): int

Obtém o código de página atual.

Parâmetros

kind

O tipo de código de página do sistema operacional a se obter, pode ser 'ansi' ou 'oem'. Qualquer outro valor refere-se ao código de páginal atual do processo.

Valor Retornado

Se kind for 'ansi', o código de página ANSI atual do sistema operacional é retornado. Se kind for 'oem', o código de página OEM do sistema operacional é retornado. Caso contrário, o código de página atual do processo é retornado.

Veja Também

  • sapi_windows_cp_set() - Define o código de página do processo


Indica se o código de página é compatível com UTF-8

  • « sapi_windows_cp_get
  • sapi_windows_cp_set »
  • PHP Manual
  • Misc. Funções
  • Indica se o código de página é compatível com UTF-8

sapi_windows_cp_is_utf8

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_is_utf8 — Indica se o código de página é compatível com UTF-8

Descrição

sapi_windows_cp_is_utf8(): bool

Indica se o código de página do processo atual é compatível com UTF-8.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna verdadeiro se o código de página do processo atual for compatível com UTF-8, caso contrário retorna falso.

Veja Também

  • sapi_windows_cp_get() - Obtém o código de página atual


Define o código de página do processo

  • « sapi_windows_cp_is_utf8
  • sapi_windows_generate_ctrl_event »
  • PHP Manual
  • Misc. Funções
  • Define o código de página do processo

sapi_windows_cp_set

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_set — Define o código de página do processo

Descrição

sapi_windows_cp_set(int $codepage): bool

Define o código de página do processo atual.

Parâmetros

codepage

Um identificador de código de página.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • sapi_windows_cp_get() - Obtém o código de página atual


Envia um evento CTRL a outro processo

  • « sapi_windows_cp_set
  • sapi_windows_set_ctrl_handler »
  • PHP Manual
  • Misc. Funções
  • Envia um evento CTRL a outro processo

sapi_windows_generate_ctrl_event

(PHP 7 >= 7.4.0, PHP 8)

sapi_windows_generate_ctrl_event — Envia um evento CTRL a outro processo

Descrição

sapi_windows_generate_ctrl_event(int $event, int $pid = 0): bool

Envia um evento CTRL a outro processo no mesmo grupo de processos.

Parâmetros

event

O evento CTRL a enviar; pode ser PHP_WINDOWS_EVENT_CTRL_C ou PHP_WINDOWS_EVENT_CTRL_BREAK.

pid

O ID do processo ao qual deve-se enviar o evento. Se 0 for informado, o evento é enviado a todos os processos do mesmo grupo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Uso Básico de sapi_windows_generate_ctrl_event()

Este exemplo mostra como passar eventos CTRL+BREAK para um processo filho. Neste caso, o processo filho mostra Ainda estou vivo a cada segundo, até que o usuário pressione CTRL+BREAK, o que faz com que apenas o processo filho seja terminado.

<?php
// envia eventos CTRL+BREAK para o processo filho
sapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event');

// cria um processo filho que mostra uma mensagem a cada segundo
$cmd = ['php', '-r', 'while (true) { echo "Ainda estou vivo\n"; sleep(1); }'];
$descspec = array(['pipe', 'r'], ['pipe', 'w'], ['pipe', 'w']);
$options = ['create_process_group' => true];
$proc = proc_open($cmd, $descspec, $pipes, null, null, $options);
while (true) {
echo fgets($pipes[1]);
}
?>

Veja Também

  • proc_open() - Executa um comando e abre ponteiros de arquivo para entrada/saída
  • sapi_windows_set_ctrl_handler() - Define ou remove um manipulador de evento CTRL


Define ou remove um manipulador de evento CTRL

  • « sapi_windows_generate_ctrl_event
  • sapi_windows_vt100_support »
  • PHP Manual
  • Misc. Funções
  • Define ou remove um manipulador de evento CTRL

sapi_windows_set_ctrl_handler

(PHP 7 >= 7.4.0, PHP 8)

sapi_windows_set_ctrl_handler — Define ou remove um manipulador de evento CTRL

Descrição

sapi_windows_set_ctrl_handler(?callable $handler, bool $add = true): bool

Define ou remove um manipulador de evento CTRL, que permite que os processos CLI do Windows interceptem ou ignorem eventos CTRL+C e CTRL+BREAK. Observe que em ambientes multi-thread, isto só é possível quando a função é chamada da thread principal.

Parâmetros

handler

Uma função de chamada de retorno a ser definida ou removida. Se definida, esta função será chamada sempre que um evento CTRL+C ou CTRL+BREAK ocorrer. A função deve ter a seguinte assinatura:

handler(int $event): void
event
O evento CTRL que foi recebido; pode ser PHP_WINDOWS_EVENT_CTRL_C ou PHP_WINDOWS_EVENT_CTRL_BREAK.
Definir um handler como null faz com que o processo ignore eventos CTRL+C, mas não os eventos CTRL+BREAK.

add

Se for igual a true, o manipulador é definido. Se for false, o manipulador é removido.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Uso Básico de sapi_windows_set_ctrl_handler()

Este exemplo mostra como interceptar eventos CTRL.

<?php
function ctrl_handler(int $event)
{
switch ($event) {
case PHP_WINDOWS_EVENT_CTRL_C:
echo "CTRL+C foi pressionado\n";
break;
case PHP_WINDOWS_EVENT_CTRL_BREAK:
echo "CTRL+BREAK foi pressionado\n";
break;
}
}

sapi_windows_set_ctrl_handler('ctrl_handler');
while (true); // repetição infinita, para que o manipulador seja disparado
?>

Veja Também

  • sapi_windows_generate_ctrl_event() - Envia um evento CTRL a outro processo


Obtém ou define suporte VT100 para o fluxo especificado associado a um buffer de saída de um console Windows.

  • « sapi_windows_set_ctrl_handler
  • show_source »
  • PHP Manual
  • Misc. Funções
  • Obtém ou define suporte VT100 para o fluxo especificado associado a um buffer de saída de um console Windows.

sapi_windows_vt100_support

(PHP 7 >= 7.2.0, PHP 8)

sapi_windows_vt100_support — Obtém ou define suporte VT100 para o fluxo especificado associado a um buffer de saída de um console Windows.

Descrição

sapi_windows_vt100_support(resource $stream, ?bool $enable = null): bool

Se enable for null, a função retorna true se o fluxo stream tem códigos de controle VT100 habilitados, false caso não tenha.

Se enable for do tipo bool, a função tentará habilitar ou desabilitar os recursos VT100 do fluxo stream. Se o recurso tiver sido habilitado (ou desabilitado) com sucesso, a função retornará true, caso contrário retornará false.

Na inicialização, o PHP tenta habilitar o recurso VT100 dos fluxos STDOUT/STDERR. A propósito, se esses fluxos forem redirecionados para um arquivo, os recursos VT100 podem não ser habilitados.

Se o suporte a VT100 for habilitado, é possível usar sequências de controle como são conhecidas pelo terminal VT100. Elas permitem a alteração da saída do terminal. No Windows essas sequências são chamadas Sequências de Terminais Virtuais do Console.

Aviso

Esta função usa a opção ENABLE_VIRTUAL_TERMINAL_PROCESSING implementada na API do Windows 10, por isso o recurso VT100 pode não estar disponível em versões antigas do Windows.

Parâmetros

stream

O fluxo no qual a função irá operar.

enable

Se for do tipo bool, o recurso VT100 será habilitado (se true) ou desabilitado (se false).

Valor Retornado

Se enable for null: retorna true se o recurso VT100 for habilitado, false caso contrário.

Se enable for do tipo bool: Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | enable agora pode ser nulo.

Exemplos

Exemplo #1 Estado padrão de sapi_windows_vt100_support()

Por padrão, STDOUT e STDERR têm o recurso VT100 habilitado.

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));"

O exemplo acima produzirá algo semelhante a:

true true

A propósito, se um fluxo for redirecionado, o recurso VT100 não será habilitado:

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));" 2>NUL

O exemplo acima produzirá algo semelhante a:

true false

Exemplo #2 sapi_windows_vt100_support() mudando de estado

Não será possível habilitar o recurso VT100 feature de STDOUT ou STDERR se o fluxo for redirecionado.

php -r "var_export(sapi_windows_vt100_support(STDOUT, true));echo ' ';var_export(sapi_windows_vt100_support(STDERR, true));" 2>NUL

O exemplo acima produzirá algo semelhante a:

true false

Exemplo #3 Exemplo de uso do suporte a VT100 habilitado

<?php
$out = fopen('php://stdout','w');
fwrite($out, 'Eu me esqueci de uma leta.');
// Move o cursor dois caracteres para trás
fwrite($out, "\033[2D");
// Insere um espaço vazio, deslocando o texto existente para a direita -> 'Eu me esqueci de uma let a.'
fwrite($out, "\033[1@");
fwrite($out, 'r');
?>

O exemplo acima produzirá:

Eu me esqueci de uma letra.


Sinônimo de highlight_file

  • « sapi_windows_vt100_support
  • sleep »
  • PHP Manual
  • Misc. Funções
  • Sinônimo de highlight_file

show_source

(PHP 4, PHP 5, PHP 7, PHP 8)

show_source — Sinônimo de highlight_file()

Descrição

Esta função é um apelido para: highlight_file().


Atrasa a execução

  • « show_source
  • sys_getloadavg »
  • PHP Manual
  • Misc. Funções
  • Atrasa a execução

sleep

(PHP 4, PHP 5, PHP 7, PHP 8)

sleep — Atrasa a execução

Descrição

sleep(int $seconds): int

Atrasa a execução do programa pelo número de segundos informado no parâmetro seconds.

Nota:

Para atrasar a execução do programa por uma fração de um segundo, use a função usleep() pois a função sleep() espera um número int. Por exemplo sleep(0.25) irá pausar a execução do programa por 0 segundo.

Parâmetros

seconds

Tempo de parada em segundos (deve ser maior ou igual a 0).

Valor Retornado

Retorna zero em caso de sucesso.

Se a chamada foi interrompida por um sinal, a função sleep() retorna um valor não-zero. No Windows, este valor será sempre 192 (o valor da constante WAIT_IO_COMPLETION dentro da API do Windows). Em outras plataformas, o valor de retorno será o número de segundos que faltam para terminar a parada.

Erros/Exceções

Se o número de segundos especificado em seconds for negativo, esta função irá lançar um ValueError.

Registro de Alterações

Versão | Descrição
8.0.0 | A função lança um ValueError para valores negativos de seconds; anteriormente, um E_WARNING era emitido, e a função retornava false.

Exemplos

Exemplo #1 Exemplo de sleep()

<?php

// horário atual
echo date('h:i:s') . "\n";

// dorme por 10 seconds
sleep(10);

// acorde !
echo date('h:i:s') . "\n";

?>

Este exemplo irá mostrar (depois de 10 segundos)

05:31:23
05:31:33

Veja Também

  • usleep() - Atrasa a execução em microssegundos
  • time_nanosleep() - Atrasa por um número de segundos e nanossegundos
  • time_sleep_until() - Faz o script pausar até o horário especificado
  • set_time_limit() - Limits the maximum execution time


Obtém a média de carga do sistema

  • « sleep
  • time_nanosleep »
  • PHP Manual
  • Misc. Funções
  • Obtém a média de carga do sistema

sys_getloadavg

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

sys_getloadavg — Obtém a média de carga do sistema

Descrição

sys_getloadavg(): array|false

Retorna três amostras representando a carga média do sistema (o número de processos na fila de execução do sistema) nos últimos 1, 5 e 15 minutos, respectivamente. Retorna false em caso de falha.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array com três amostras (últimos 1, 5 e 15 minutos).

Exemplos

Exemplo #1 Um exemplo de sys_getloadavg()

<?php
$load = sys_getloadavg();
if ($load[0] > 0.80) {
header('HTTP/1.1 503 Muito ocupado, tente novamente mais tarde');
die('Servidor muito ocupado. Por favor tente novamente mais tarde.');
}
?>

Notas

Nota: Esta função não foi implementada em plataformas Windows.


Atrasa por um número de segundos e nanossegundos

  • « sys_getloadavg
  • time_sleep_until »
  • PHP Manual
  • Misc. Funções
  • Atrasa por um número de segundos e nanossegundos

time_nanosleep

(PHP 5, PHP 7, PHP 8)

time_nanosleep — Atrasa por um número de segundos e nanossegundos

Descrição

time_nanosleep(int $seconds, int $nanoseconds): array|bool

Atrasa a execução do programa pelo número de segundos informado em seconds e de nanossegundos informado em nanoseconds.

Parâmetros

seconds

Deve ser um inteiro não negativo.

nanoseconds

Deve ser um inteiro não negativo menor que um 1 bilhão.

Nota: No Windows, o sistema pode atrasar mais que o número de nanossegundos informado, dependendo do equipamento.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Se o atraso foi interrompido por um sinal, um array associativo será retornado com os componentes:

  • seconds - número de segundos remanescentes no atraso
  • nanoseconds - número de nanossegundos remanescentes no atraso

Exemplos

Exemplo #1 Exemplo de time_nanosleep()

<?php
// Cuidado! Não vai funcionar como esperado se um array for retornado
if (time_nanosleep(0, 500000000)) {
echo "Dormi por meio segundo.\n";
}

// Assim é melhor:
if (time_nanosleep(0, 500000000) === true) {
echo "Dormi por meio segundo.\n";
}

// E assim é o melhor:
$nano = time_nanosleep(2, 100000);

if ($nano === true) {
echo "Dormi por 2 segundos, 100 microssegundos.\n";
} elseif ($nano === false) {
echo "Pausa falhou.\n";
} elseif (is_array($nano)) {
$seconds = $nano['seconds'];
$nanoseconds = $nano['nanoseconds'];
echo "Interrompido por um sinal.\n";
echo "Tempo remanescente: $seconds segundos, $nanoseconds nanossegundos.";
}
?>

Veja Também

  • sleep() - Atrasa a execução
  • usleep() - Atrasa a execução em microssegundos
  • time_sleep_until() - Faz o script pausar até o horário especificado
  • set_time_limit() - Limits the maximum execution time


Faz o script pausar até o horário especificado

  • « time_nanosleep
  • uniqid »
  • PHP Manual
  • Misc. Funções
  • Faz o script pausar até o horário especificado

time_sleep_until

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

time_sleep_until — Faz o script pausar até o horário especificado

Descrição

time_sleep_until(float $timestamp): bool

Faz o script pausar até o horário especificado em timestamp.

Parâmetros

timestamp

O timestamp que representa o horário no qual o script deve acordar.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se o timestamp especificado estiver no passado, esta função irá gerar um E_WARNING.

Exemplos

Exemplo #1 Um exemplo de time_sleep_until()

<?php

//retorna falso e gera um alerta
var_dump(time_sleep_until(time()-1));

// pode ser que funcione somente em computadores mais rápidos, irá pausar por até 0,2 segundo
var_dump(time_sleep_until(microtime(true)+0.2));

?>

Notas

Nota: Todos os sinais serão entregues depois que o script acordar.

Veja Também

  • sleep() - Atrasa a execução
  • usleep() - Atrasa a execução em microssegundos
  • time_nanosleep() - Atrasa por um número de segundos e nanossegundos
  • set_time_limit() - Limits the maximum execution time


Gera um ID único

  • « time_sleep_until
  • unpack »
  • PHP Manual
  • Misc. Funções
  • Gera um ID único

uniqid

(PHP 4, PHP 5, PHP 7, PHP 8)

uniqid — Gera um ID único

Descrição

uniqid(string $prefix = "", bool $more_entropy = false): string

Obtém um identificador prefixado único baseado no tempo atual em microsegundos.

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Aviso

Esta função não garante a repetição do valor retornado. Isso ocorre porque muitos sistemas ajustam seus relógios utilizando o NTP ou similares de forma que o horário do sistema é alterado constantemente. Portanto é possível que esta função não retorna um ID único mesmo no nível do processo ou thread. Utilize Use more_entropy para aumentar as chances de não repetição.

Parâmetros

prefix

Útil para gerar identificadores simultaneamente em vários servidores, que poderiam gerar o mesmo identificador no mesmo microsegundo.

Com um prefix vazio, a string retornada terá 13 caracteres. Se more_entropy for true, a string terá 23 caracteres.

more_entropy

Se informado como true, uniqid() irá adicionar entropia (utilizando um gerador linear congruente) ao final do do valor retornado, o que aumentará as chances que o resultado seja globalmente único.

Valor Retornado

Retorna um identificador único baseado no timestamp, como uma string.

Aviso

Esta função tenta criar um identificador único, mas não garante a unicidade global em 100% dos casos.

Exemplos

Exemplo #1 uniqid() Example

<?php
/* Um identificador, por exemplo: 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());

/* Também pode prefixar o identificador, que é o mesmo que
* fazer:
*
* $uniqid = $prefix . uniqid();
* $uniqid = uniqid($prefix);
*/
printf("uniqid('php_'): %s\r\n", uniqid('php_'));

/* Pode-se também ativar o parâmetro more_entropy, o que
* é exigido em alguns sistemas, como o Cygwin. Isto faz que uniqid()
* produza um valor como: 4b340550242239.64159797
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>

Notas

Nota:

Sob o Cygwin, o parâmetro more_entropy deve ser configurado como true para que essa função funcione.

Veja Também

  • random_bytes() - Get cryptographically secure random bytes


Desempacota dados de uma string binária

  • « uniqid
  • usleep »
  • PHP Manual
  • Misc. Funções
  • Desempacota dados de uma string binária

unpack

(PHP 4, PHP 5, PHP 7, PHP 8)

unpack — Desempacota dados de uma string binária

Descrição

unpack(string $format, string $string, int $offset = 0): array|false

Desempacota uma srting binária em um array de acordo com o formato especificado em format.

Os dados desempacotados são armazenados em um array associativo. Para que isto seja feito, os diferentes códigos de formato devem ser nomeados e separados por uma barra /. Se um argumento repetidor estiver presente, cada chave do array terá um número de sequência atrás do nome fornecido.

Form feitas alterações para que esta função ficasse alinhada com a linguagem Perl:

  • O código "a" agora retém os bytes NULL ao final da string.
  • O código "A" agora remove todos os tipos de espaço ASCII do final da string (espaços, tabulações, novas linhas, retorno de carro e bytes NULL).
  • O código "Z" foi adicionado para strings com bytes NULL à esquerda, e remove bytes NULL à direita.

Parâmetros

format

Consulte a página da função pack() para uma explicação sobre os códigos de formatos.

string

Os dados empacotados.

offset

O deslocamento na string a partir de onde os dados serão desempacotados.

Valor Retornado

Retorna um array associativo contendo elementos desempacotados da string binária, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.2.0 | Tipos float e double suportam Big Endian e Little Endian.
7.1.0 | O parâmetro opcional offset foi adicionado.

Exemplos

Exemplo #1 Exemplo de unpack()

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("cchars/nint", $binarydata);
print_r($array);
?>

O exemplo acima produzirá:

Array
(
    [chars] => 4
    [int] => 160
)

Exemplo #2 Exemplo de unpack() com um repetidor

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("c2chars/nint", $binarydata);
print_r($array);
?>

O exemplo acima produzirá:

Array
(
    [chars1] => 4
    [chars2] => 0
    [int] => 40960
)

Notas

Cuidado

Observe que internamente o PHP armazena com sinal os valores inteiros. Se um inteiro grande longo sem sinal for desempacotado, e for do mesmo tamanho que os valores armazenados internamente pelo PHP, o resultado será um número negativo mesmo que tenha sido especificado um desempacotamento sem sinal.

Cuidado

Se um elemento não for nomeado, seão usados índices numéricos iniciando em 1. Fique ciente que se houver mais de um elemento sem nome, alguns dados serão sobrescritos porque a numeração reiniciará a partir de 1 para cada elemento.

Exemplo #3 Exemplo de unpack() com chaves sem nome

<?php
$binarydata = "\x32\x42\x00\xa0";
$array = unpack("c2/n", $binarydata);
var_dump($array);
?>

O exemplo acima produzirá:

array(2) {
  [1]=>
  int(160)
  [2]=>
  int(66)
}

Observe que o primeiro valor especificado por c foi sobrescrito pelo primeiro valor de n especificado.

Veja Também

  • pack() - Empacota dados em uma string binária


Atrasa a execução em microssegundos

  • « unpack
  • Registro de Alterações »
  • PHP Manual
  • Misc. Funções
  • Atrasa a execução em microssegundos

usleep

(PHP 4, PHP 5, PHP 7, PHP 8)

usleep — Atrasa a execução em microssegundos

Descrição

usleep(int $microseconds): void

Atrasa a execução do programa pelo número especificado de microssegundos.

Parâmetros

microseconds

Tempo de parada em microssegundos. Um microssegundo é um milionésimo de segundo.

Nota: Valores maiores que 1000000 (isto é, pausar por mais que um segundo) pode não ser suportado pelo sistema operacional. Use a função sleep() neste caso.

Nota: A pausa pode ser aumentada um pouco (isto é, ficar mais longa que o parâmetro microseconds) por qualquer atividade do sistema, por tempo gasto no processamento da chamada ou pela granularidade dos cronômetros do sistema.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de usleep()

<?php

// Horário atual
echo (new DateTime('now'))->format('H:i:s.v'), "\n";

// espera por 2 milissegundos
usleep(2000);

// de volta!
echo (new DateTime('now'))->format('H:i:s.v'), "\n";

// espera por 30 milissegundos
usleep(30000);

// de volta novamente!
echo (new DateTime('now'))->format('H:i:s.v'), "\n";

?>

O exemplo acima produzirá:

11:13:28.005
11:13:28.007
11:13:28.037

Veja Também

  • sleep() - Atrasa a execução
  • time_nanosleep() - Atrasa por um número de segundos e nanossegundos
  • time_sleep_until() - Faz o script pausar até o horário especificado
  • set_time_limit() - Limits the maximum execution time


Random Number Generators and Functions Related to Randomness

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Random Funções
    • getrandmax — Show largest possible random value
    • lcg_value — Combined linear congruential generator
    • mt_getrandmax — Show largest possible random value
    • mt_rand — Generate a random value via the Mersenne Twister Random Number Generator
    • mt_srand — Seeds the Mersenne Twister Random Number Generator
    • rand — Generate a random integer
    • random_bytes — Get cryptographically secure random bytes
    • random_int — Get a cryptographically secure, uniformly selected integer
    • srand — Seed the random number generator
  • Random\Randomizer — The Random\Randomizer class
    • Random\Randomizer::__construct — Constructs a new Randomizer
    • Random\Randomizer::getBytes — Get random bytes
    • Random\Randomizer::getBytesFromString — Get random bytes from a source string
    • Random\Randomizer::getFloat — Get a uniformly selected float
    • Random\Randomizer::getInt — Get a uniformly selected integer
    • Random\Randomizer::nextFloat — Get a float from the right-open interval [0.0, 1.0)
    • Random\Randomizer::nextInt — Get a positive integer
    • Random\Randomizer::pickArrayKeys — Select random array keys
    • Random\Randomizer::__serialize — Serializes the Randomizer object
    • Random\Randomizer::shuffleArray — Get a permutation of an array
    • Random\Randomizer::shuffleBytes — Get a byte-wise permutation of a string
    • Random\Randomizer::__unserialize — Deserializes the data parameter into a Randomizer object
  • Random\Engine — The Random\Engine interface
    • Random\Engine::generate — Generates randomness
  • Random\CryptoSafeEngine — The Random\CryptoSafeEngine interface
  • Random\Engine\Secure — The Random\Engine\Secure class
    • Random\Engine\Secure::generate — Generate cryptographically secure randomness
  • Random\Engine\Mt19937 — The Random\Engine\Mt19937 class
    • Random\Engine\Mt19937::__construct — Constructs a new Mt19937 engine
    • Random\Engine\Mt19937::__debugInfo — Returns the internal state of the engine
    • Random\Engine\Mt19937::generate — Generate 32 bits of randomness
    • Random\Engine\Mt19937::__serialize — Serializes the Mt19937 object
    • Random\Engine\Mt19937::__unserialize — Deserializes the data parameter into a Mt19937 object
  • Random\Engine\PcgOneseq128XslRr64 — The Random\Engine\PcgOneseq128XslRr64 class
    • Random\Engine\PcgOneseq128XslRr64::__construct — Constructs a new PCG Oneseq 128 XSL RR 64 engine
    • Random\Engine\PcgOneseq128XslRr64::__debugInfo — Returns the internal state of the engine
    • Random\Engine\PcgOneseq128XslRr64::generate — Generate 64 bits of randomness
    • Random\Engine\PcgOneseq128XslRr64::jump — Efficiently move the engine ahead multiple steps
    • Random\Engine\PcgOneseq128XslRr64::__serialize — Serializes the PcgOneseq128XslRr64 object
    • Random\Engine\PcgOneseq128XslRr64::__unserialize — Deserializes the data parameter into a PcgOneseq128XslRr64 object
  • Random\Engine\Xoshiro256StarStar — The Random\Engine\Xoshiro256StarStar class
    • Random\Engine\Xoshiro256StarStar::__construct — Constructs a new xoshiro256** engine
    • Random\Engine\Xoshiro256StarStar::__debugInfo — Returns the internal state of the engine
    • Random\Engine\Xoshiro256StarStar::generate — Generate 64 bits of randomness
    • Random\Engine\Xoshiro256StarStar::jump — Efficiently move the engine ahead by 2^128 steps
    • Random\Engine\Xoshiro256StarStar::jumpLong — Efficiently move the engine ahead by 2^192 steps
    • Random\Engine\Xoshiro256StarStar::__serialize — Serializes the Xoshiro256StarStar object
    • Random\Engine\Xoshiro256StarStar::__unserialize — Deserializes the data parameter into a Xoshiro256StarStar object
  • Random\RandomError — The Random\RandomError class
  • Random\BrokenRandomEngineError — The Random\BrokenRandomEngineError class
  • Random\RandomException — The Random\RandomException class


  • « Random
  • Instalação/Configuração »
  • PHP Manual
  • Random
  • Introdução

Introdução


Constantes pré-definidas

As constantes abaixo estão sempre disponíveis como parte do núcleo do PHP.

MT_RAND_MT19937 (int)
Indicates that the correct » Mt19937 (Mersenne Twister) implementation will be used by the algorithm, when creating a Random\Engine\Mt19937 instance using Random\Engine\Mt19937::__construct() or seeding the global Mersenne Twister with mt_srand().
MT_RAND_PHP (int)
Indicates that an incorrect Mersenne Twister implementation will be used by the algorithm, when creating a Random\Engine\Mt19937 instance using Random\Engine\Mt19937::__construct() or seeding the global Mersenne Twister with mt_srand(). The incorrect implementation is available for backwards compatibility with mt_srand() prior to PHP 7.1.0.
Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.


Exemplos

Exemplo #1 Random Example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Random Funções

Índice

  • getrandmax — Show largest possible random value
  • lcg_value — Combined linear congruential generator
  • mt_getrandmax — Show largest possible random value
  • mt_rand — Generate a random value via the Mersenne Twister Random Number Generator
  • mt_srand — Seeds the Mersenne Twister Random Number Generator
  • rand — Generate a random integer
  • random_bytes — Get cryptographically secure random bytes
  • random_int — Get a cryptographically secure, uniformly selected integer
  • srand — Seed the random number generator


Show largest possible random value

  • « Random Funções
  • lcg_value »
  • PHP Manual
  • Random Funções
  • Show largest possible random value

getrandmax

(PHP 4, PHP 5, PHP 7, PHP 8)

getrandmax — Show largest possible random value

Descrição

getrandmax(): int

Returns the maximum value that can be returned by a call to rand().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The largest possible random value returned by rand()

Veja Também

  • rand() - Generate a random integer
  • srand() - Seed the random number generator
  • mt_getrandmax() - Show largest possible random value


Combined linear congruential generator

  • « getrandmax
  • mt_getrandmax »
  • PHP Manual
  • Random Funções
  • Combined linear congruential generator

lcg_value

(PHP 4, PHP 5, PHP 7, PHP 8)

lcg_value — Combined linear congruential generator

Descrição

lcg_value(): float

lcg_value() returns a pseudo random number in the range of (0, 1). The function combines two CGs with periods of 2^31 - 85 and 2^31 - 249. The period of this function is equal to the product of both primes.

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Cuidado

Scaling the return value to a different interval using multiplication or addition (a so-called affine transformation) might result in a bias in the resulting value as floats are not equally dense across the number line. As not all values can be exactly represented by a float, the result of the affine transformation might also result in values outside of the requested interval.

Use Random\Randomizer::getFloat() to generate a random float within an arbitrary interval. Use Random\Randomizer::getInt() to generate a random integer within an arbitrary interval.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A pseudo random float value between 0.0 and 1.0, inclusive.

Veja Também

  • Random\Randomizer::getFloat() - Get a uniformly selected float
  • Random\Randomizer::getInt() - Get a uniformly selected integer
  • random_int() - Get a cryptographically secure, uniformly selected integer


Show largest possible random value

  • « lcg_value
  • mt_rand »
  • PHP Manual
  • Random Funções
  • Show largest possible random value

mt_getrandmax

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_getrandmax — Show largest possible random value

Descrição

mt_getrandmax(): int

Returns the maximum value that can be returned by a call to mt_rand().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the maximum random value returned by a call to mt_rand() without arguments, which is the maximum value that can be used for its max parameter without the result being scaled up (and therefore less random).

Veja Também

  • mt_rand() - Generate a random value via the Mersenne Twister Random Number Generator
  • mt_srand() - Seeds the Mersenne Twister Random Number Generator
  • getrandmax() - Show largest possible random value


Generate a random value via the Mersenne Twister Random Number Generator

  • « mt_getrandmax
  • mt_srand »
  • PHP Manual
  • Random Funções
  • Generate a random value via the Mersenne Twister Random Number Generator

mt_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_rand — Generate a random value via the Mersenne Twister Random Number Generator

Descrição

mt_rand(): int
mt_rand(int $min, int $max): int

Many random number generators of older libcs have dubious or unknown characteristics and are slow. The mt_rand() function is a drop-in replacement for the older rand(). It uses a random number generator with known characteristics using the » Mersenne Twister, which will produce random numbers four times faster than what the average libc rand() provides.

If called without the optional min, max arguments mt_rand() returns a pseudo-random value between 0 and mt_getrandmax(). If you want a random number between 5 and 15 (inclusive), for example, use mt_rand(5, 15).

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Parâmetros

min

Optional lowest value to be returned (default: 0)

max

Optional highest value to be returned (default: mt_getrandmax())

Valor Retornado

A random integer value between min (or 0) and max (or mt_getrandmax(), inclusive), or false if max is less than min.

Registro de Alterações

Versão | Descrição
7.2.0 | mt_rand() has received a bug fix for a modulo bias bug. This means that sequences generated with a specific seed may differ from PHP 7.1 on 64-bit machines.
7.1.0 | rand() has been made an alias of mt_rand().
7.1.0 | mt_rand() has been updated to use the fixed, correct, version of the Mersenne Twister algorithm. To fall back to the old behaviour, use mt_srand() with MT_RAND_PHP as the second parameter.

Exemplos

Exemplo #1 mt_rand() example

<?php
echo mt_rand(), "\n";
echo mt_rand(), "\n";

echo mt_rand(5, 15), "\n";
?>

O exemplo acima produzirá algo semelhante a:

1604716014
1478613278
6

Notas

Aviso

min max range must be within the range mt_getrandmax(). i.e. (max - min) <= mt_getrandmax() Otherwise, mt_rand() may return poorer random numbers than it should.

Veja Também

  • mt_srand() - Seeds the Mersenne Twister Random Number Generator
  • mt_getrandmax() - Show largest possible random value
  • random_int() - Get a cryptographically secure, uniformly selected integer
  • random_bytes() - Get cryptographically secure random bytes


Seeds the Mersenne Twister Random Number Generator

  • « mt_rand
  • rand »
  • PHP Manual
  • Random Funções
  • Seeds the Mersenne Twister Random Number Generator

mt_srand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_srand — Seeds the Mersenne Twister Random Number Generator

Descrição

mt_srand(?int $seed = null, int $mode = MT_RAND_MT19937): void

Seeds the random number generator with seed or with a random value if no seed is given.

Nota: Não é necessário inicializar o gerador de números aleatórios com srand() ou mt_srand(), pois isso é feito automaticamente.

Cuidado

Como o mecanismo Mt19937 (“Mersenne Twister”) aceita apenas um único inteiro de 32 bits como semente, o número de sequências aleatórias possíveis é limitado a apenas 232 (ou seja, 4.294.967.296), embora o Mt19937 possua um gigantesco período de 219937-1.

Ao depender da geração aleatória implícita ou explícita de sementes, as duplicações aparecerão muito mais cedo. Sementes duplicadas são esperadas com probabilidade de 50% depois de menos de 80.000 sementes geradas aleatoriamente de acordo com o problema do aniversário. Uma probabilidade de 10% de uma semente duplicada acontece depois de gerar aleatoriamente cerca de 30.000 sementes.

Isso torna o Mt19937 inadequado para aplicações em que sequências duplicadas não devem ocorrer com mais do que uma probabilidade desprezível. Se a geração reproduzível de sementes for necessária, ambos os mecanismos Random\Engine\Xoshiro256StarStar e Random\Engine\PcgOneseq128XslRr64 suportam sementes muito maiores que são improváveis de colidir aleatoriamente. Se a reprodutibilidade não for necessária, o mecanismo Random\Engine\Secure fornece aleatoriedade criptograficamente segura.

Parâmetros

seed

Fills the state with values generated with a linear congruential generator that was seeded with seed interpreted as an unsigned 32 bit integer.

If seed is omitted or null, a random unsigned 32-bit integer will be used.

mode

Use one of the following constants to specify the implementation of the algorithm to use.

  • MT_RAND_MT19937: The correct Mt19937 implementation, available as of PHP 7.1.0.
  • MT_RAND_PHP Uses an incorrect Mersenne Twister implementation which was used as the default up till PHP 7.1.0. This mode is available for backward compatibility.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.3.0 | seed is now nullable.
7.1.0 | srand() has been made an alias of mt_srand().
7.1.0 | mt_rand() has been updated to use the fixed, correct, version of the Mersenne Twister algorithm. To fall back to the old behaviour, use mt_srand() with MT_RAND_PHP as the second parameter.

Veja Também

  • mt_rand() - Generate a random value via the Mersenne Twister Random Number Generator
  • mt_getrandmax() - Show largest possible random value
  • srand() - Seed the random number generator


Generate a random integer

  • « mt_srand
  • random_bytes »
  • PHP Manual
  • Random Funções
  • Generate a random integer

rand

(PHP 4, PHP 5, PHP 7, PHP 8)

rand — Generate a random integer

Descrição

rand(): int
rand(int $min, int $max): int

If called without the optional min, max arguments rand() returns a pseudo-random integer between 0 and getrandmax(). If you want a random number between 5 and 15 (inclusive), for example, use rand(5, 15).

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Nota: On some platforms (such as Windows), getrandmax() is only 32767. If you require a range larger than 32767, specifying min and max will allow you to create a range larger than this, or consider using mt_rand() instead.

Nota: As of PHP 7.1.0, rand() uses the same random number generator as mt_rand(). To preserve backwards compatibility rand() allows max to be smaller than min as opposed to returning false as mt_rand().

Parâmetros

min

The lowest value to return (default: 0)

max

The highest value to return (default: getrandmax())

Valor Retornado

A pseudo random value between min (or 0) and max (or getrandmax(), inclusive).

Registro de Alterações

Versão | Descrição
7.2.0 | rand() has received a bug fix for a modulo bias bug. This means that sequences generated with a specific seed may differ from PHP 7.1 on 64-bit machines.
7.1.0 | rand() has been made an alias of mt_rand().

Exemplos

Exemplo #1 rand() example

<?php
echo rand(), "\n";
echo rand(), "\n";

echo rand(5, 15), "\n";
?>

O exemplo acima produzirá algo semelhante a:

7771
22264
11

Notas

Aviso

min max range must be within the range getrandmax(). i.e. (max - min) <= getrandmax() Otherwise, rand() may return poor-quality random numbers.

Veja Também

  • srand() - Seed the random number generator
  • getrandmax() - Show largest possible random value
  • mt_rand() - Generate a random value via the Mersenne Twister Random Number Generator
  • random_int() - Get a cryptographically secure, uniformly selected integer
  • random_bytes() - Get cryptographically secure random bytes


Get cryptographically secure random bytes

  • « rand
  • random_int »
  • PHP Manual
  • Random Funções
  • Get cryptographically secure random bytes

random_bytes

(PHP 7, PHP 8)

random_bytes — Get cryptographically secure random bytes

Descrição

random_bytes(int $length): string

Generates a string containing uniformly selected random bytes with the requested length.

As the returned bytes are selected completely randomly, the resulting string is likely to contain unprintable characters or invalid UTF-8 sequences. It may be necessary to encode it before transmission or display.

The randomness generated by this function is suitable for all applications, including the generation of long-term secrets, such as encryption keys.

As fontes de aleatoriedade usadas para esta função são as seguintes:

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22 se CCRandomGenerateBytes estiver disponível em tempo de compilação): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Qualquer combinação de sistema operacional e versão do PHP não mencionada anteriormente: /dev/urandom
  • Se nenhuma das fontes estiver disponível ou todas falharem em gerar aleatoriedade, então uma exceção Random\RandomException será lançada.

Nota: Embora esta função tenha sido adicionada ao PHP no PHP 7.0, uma » implementação no espaço do usuário está disponível para o PHP 5.2 ao 5.6, inclusive.

Parâmetros

length

The length of the random string that should be returned in bytes; must be 1 or greater.

Valor Retornado

A string containing the requested number of cryptographically secure random bytes.

Erros/Exceções

  • Se uma fonte apropriada de aleatoriedade não puder ser encontrada, uma exceção Random\RandomException será lançada.
  • If the value of length is less than 1, a ValueError will be thrown.

Registro de Alterações

Versão | Descrição
8.2.0 | In case of a CSPRNG failure, this function will now throw a Random\RandomException. Previously a plain Exception was thrown.

Exemplos

Exemplo #1 random_bytes() example

<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>

O exemplo acima produzirá algo semelhante a:

string(10) "385e33f741"

Veja Também

  • Random\Randomizer::getBytes() - Get random bytes
  • random_int() - Get a cryptographically secure, uniformly selected integer
  • bin2hex() - Converte um dado binário em representação hexadecimal
  • base64_encode() - Codifica dados com MIME base64


Get a cryptographically secure, uniformly selected integer

  • « random_bytes
  • srand »
  • PHP Manual
  • Random Funções
  • Get a cryptographically secure, uniformly selected integer

random_int

(PHP 7, PHP 8)

random_int — Get a cryptographically secure, uniformly selected integer

Descrição

random_int(int $min, int $max): int

Generates a uniformly selected integer between the given minimum and maximum.

The randomness generated by this function is suitable for all applications, including the generation of long-term secrets, such as encryption keys.

As fontes de aleatoriedade usadas para esta função são as seguintes:

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22 se CCRandomGenerateBytes estiver disponível em tempo de compilação): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Qualquer combinação de sistema operacional e versão do PHP não mencionada anteriormente: /dev/urandom
  • Se nenhuma das fontes estiver disponível ou todas falharem em gerar aleatoriedade, então uma exceção Random\RandomException será lançada.

Nota: Embora esta função tenha sido adicionada ao PHP no PHP 7.0, uma » implementação no espaço do usuário está disponível para o PHP 5.2 ao 5.6, inclusive.

Parâmetros

min

The lowest value to be returned.

max

The highest value to be returned.

Valor Retornado

A cryptographically secure, uniformly selected integer from the closed interval [min, max]. Both min and max are possible return values.

Erros/Exceções

  • Se uma fonte apropriada de aleatoriedade não puder ser encontrada, uma exceção Random\RandomException será lançada.
  • If max is less than min, a ValueError will be thrown.

Registro de Alterações

Versão | Descrição
8.2.0 | In case of a CSPRNG failure, this function will now throw a Random\RandomException. Previously a plain Exception was thrown.

Exemplos

Exemplo #1 random_int() example

<?php
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
?>

O exemplo acima produzirá algo semelhante a:

int(248)
int(-898)

Veja Também

  • Random\Randomizer::getInt() - Get a uniformly selected integer
  • random_bytes() - Get cryptographically secure random bytes


Seed the random number generator

  • « random_int
  • Random\Randomizer »
  • PHP Manual
  • Random Funções
  • Seed the random number generator

srand

(PHP 4, PHP 5, PHP 7, PHP 8)

srand — Seed the random number generator

Descrição

srand(?int $seed = null, int $mode = MT_RAND_MT19937): void

Seeds the random number generator with seed or with a random value if seed is 0.

Nota: Não é necessário inicializar o gerador de números aleatórios com srand() ou mt_srand(), pois isso é feito automaticamente.

Cuidado

Como o mecanismo Mt19937 (“Mersenne Twister”) aceita apenas um único inteiro de 32 bits como semente, o número de sequências aleatórias possíveis é limitado a apenas 232 (ou seja, 4.294.967.296), embora o Mt19937 possua um gigantesco período de 219937-1.

Ao depender da geração aleatória implícita ou explícita de sementes, as duplicações aparecerão muito mais cedo. Sementes duplicadas são esperadas com probabilidade de 50% depois de menos de 80.000 sementes geradas aleatoriamente de acordo com o problema do aniversário. Uma probabilidade de 10% de uma semente duplicada acontece depois de gerar aleatoriamente cerca de 30.000 sementes.

Isso torna o Mt19937 inadequado para aplicações em que sequências duplicadas não devem ocorrer com mais do que uma probabilidade desprezível. Se a geração reproduzível de sementes for necessária, ambos os mecanismos Random\Engine\Xoshiro256StarStar e Random\Engine\PcgOneseq128XslRr64 suportam sementes muito maiores que são improváveis de colidir aleatoriamente. Se a reprodutibilidade não for necessária, o mecanismo Random\Engine\Secure fornece aleatoriedade criptograficamente segura.

Nota: As of PHP 7.1.0, srand() has been made an alias of mt_srand().

Parâmetros

seed

Fills the state with values generated with a linear congruential generator that was seeded with seed interpreted as an unsigned 32 bit integer.

If seed is omitted or null, a random unsigned 32-bit integer will be used.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.3.0 | seed is now nullable.
7.1.0 | srand() has been made an alias of mt_srand().

Veja Também

  • rand() - Generate a random integer
  • getrandmax() - Show largest possible random value
  • mt_srand() - Seeds the Mersenne Twister Random Number Generator


The Random\Randomizer class

(PHP 8 >= 8.2.0)

Introdução

Provides a high-level API to the randomness provided by an Random\Engine.

Resumo da classe

final class Random\Randomizer {
/* Propriedades */
public readonly Random\Engine $engine;
/* Métodos */
public __construct(?Random\Engine $engine = null)
public getBytes(int $length): string
public getBytesFromString(string $string, int $length): string
public getFloat(float $min, float $max, Random\IntervalBoundary $boundary = Random\IntervalBoundary::ClosedOpen): float
public getInt(int $min, int $max): int
public nextFloat(): float
public nextInt(): int
public pickArrayKeys(array $array, int $num): array
public __serialize(): array
public shuffleArray(array $array): array
public shuffleBytes(string $bytes): string
public __unserialize(array $data): void
}

Propriedades

engine

The low-level source of randomness for the Random\Randomizer’s methods.

Índice

  • Random\Randomizer::__construct — Constructs a new Randomizer
  • Random\Randomizer::getBytes — Get random bytes
  • Random\Randomizer::getBytesFromString — Get random bytes from a source string
  • Random\Randomizer::getFloat — Get a uniformly selected float
  • Random\Randomizer::getInt — Get a uniformly selected integer
  • Random\Randomizer::nextFloat — Get a float from the right-open interval [0.0, 1.0)
  • Random\Randomizer::nextInt — Get a positive integer
  • Random\Randomizer::pickArrayKeys — Select random array keys
  • Random\Randomizer::__serialize — Serializes the Randomizer object
  • Random\Randomizer::shuffleArray — Get a permutation of an array
  • Random\Randomizer::shuffleBytes — Get a byte-wise permutation of a string
  • Random\Randomizer::__unserialize — Deserializes the data parameter into a Randomizer object


Constructs a new Randomizer

  • « Random\Randomizer
  • Random\Randomizer::getBytes »
  • PHP Manual
  • Random\Randomizer
  • Constructs a new Randomizer

Random\Randomizer::__construct

(PHP 8 >= 8.2.0)

Random\Randomizer::__construct — Constructs a new Randomizer

Descrição

public Random\Randomizer::__construct(?Random\Engine $engine = null)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

engine

The Random\Engine to use to generate randomness.

If engine is omitted or null, a new Random\Engine\Secure object will be used.

Exemplos

Exemplo #1 Random\Randomizer::__construct() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Get random bytes

  • « Random\Randomizer::__construct
  • Random\Randomizer::getBytesFromString »
  • PHP Manual
  • Random\Randomizer
  • Get random bytes

Random\Randomizer::getBytes

(PHP 8 >= 8.2.0)

Random\Randomizer::getBytes — Get random bytes

Descrição

public Random\Randomizer::getBytes(int $length): string

Generates a string containing uniformly selected random bytes with the requested length.

As the returned bytes are selected completely randomly, the resulting string is likely to contain unprintable characters or invalid UTF-8 sequences. It may be necessary to encode it before transmission or display.

Parâmetros

length

The length of the random string that should be returned in bytes; must be 1 or greater.

Valor Retornado

A string containing the requested number of random bytes.

Erros/Exceções

  • If the value of length is less than 1, a ValueError will be thrown.
  • Qualquer erro ou exceção Throwable lançados pelo método Random\Engine::generate() do mecanismo Random\Randomizer::$engine subjacente.

Exemplos

Exemplo #1 Random\Randomizer::getBytes() example

<?php
$r = new \Random\Randomizer();

echo bin2hex($r->getBytes(8)), "\n";
?>

O exemplo acima produzirá algo semelhante a:

ebdbe93cd56682c2

Veja Também

  • random_bytes() - Get cryptographically secure random bytes
  • bin2hex() - Converte um dado binário em representação hexadecimal
  • base64_encode() - Codifica dados com MIME base64
  • Random\Randomizer::getBytesFromString() - Get random bytes from a source string


Get random bytes from a source string

  • « Random\Randomizer::getBytes
  • Random\Randomizer::getFloat »
  • PHP Manual
  • Random\Randomizer
  • Get random bytes from a source string

Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromString — Get random bytes from a source string

Descrição

public Random\Randomizer::getBytesFromString(string $string, int $length): string

Generates a string containing uniformly selected random bytes from the input string with the requested length.

The chance for a byte to be selected is proportional to its share of the input string. If each byte occurs the same amount of times, each byte is equally likely to be selected.

Parâmetros

string

The string from which the returned bytes are selected.

length

The length of the random string that should be returned in bytes; must be 1 or greater.

Valor Retornado

A string containing the requested number of random bytes taken from the input string.

Erros/Exceções

  • If string is empty, a ValueError will be thrown.
  • If the value of length is less than 1, a ValueError will be thrown.
  • Qualquer erro ou exceção Throwable lançados pelo método Random\Engine::generate() do mecanismo Random\Randomizer::$engine subjacente.

Exemplos

Exemplo #1 Random\Randomizer::getBytesFromString() example

<?php
$randomizer = new \Random\Randomizer();

printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>

O exemplo acima produzirá algo semelhante a:

3zsw04eiubcf82jd.example.com

Exemplo #2 Generate a random code for multi-factor authentication

<?php
// The Secure engine is the default, but we make it explicit, because
// multi-factor codes are security sensitive.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());

echo implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>

O exemplo acima produzirá algo semelhante a:

11551-80418-27047-42075

Exemplo #3 Select from a string with a non-uniform distribution

<?php
$randomizer = new \Random\Randomizer();

echo $randomizer->getBytesFromString('aaaaabcdef', 20);
?>

O exemplo acima produzirá algo semelhante a:

fddacbeaaeaaacaaaaca

Veja Também

  • Random\Randomizer::getBytes() - Get random bytes


Get a uniformly selected float

  • « Random\Randomizer::getBytesFromString
  • Random\Randomizer::getInt »
  • PHP Manual
  • Random\Randomizer
  • Get a uniformly selected float

Random\Randomizer::getFloat

(PHP 8 >= 8.3.0)

Random\Randomizer::getFloat — Get a uniformly selected float

Descrição

public Random\Randomizer::getFloat(float $min, float $max, Random\IntervalBoundary $boundary = Random\IntervalBoundary::ClosedOpen): float

Returns a uniformly selected, equidistributed float from a requested interval.

Due to the limited precision, not all real numbers can be exactly represented as a floating point number. If a number cannot be represented exactly, it is rounded to the nearest representable exact value. Furthermore, floats are not equally dense across the whole number line. Because floats use a binary exponent, the distance between two neighboring floats doubles at each power of two. In other words: There are the same number of representable floats between 1.0 and 2.0 as they are between 2.0 and 4.0, 4.0 and 8.0, 8.0 and 16.0, and so on.

Randomly sampling an arbitrary number within the requested interval, for example by dividing two integers, might result in a biased distribution for this reason. The necessary rounding will cause some floats to be returned more often than others, especially around powers of two when the density of floats changes.

Random\Randomizer::getFloat() implements an algorithm that will return a uniformly selected float from the largest possible set of exactly representable and equidistributed floats within the requested interval. The distance between the selectable floats (“step size”) matches the distance between the floats with the lowest density, i.e. the distance between floats at interval boundary with the larger absolute value. This means that not all representable floats within a given interval may be returned if the interval crosses one or more powers of two. Stepping will start from the interval boundary with the larger absolute value to ensure the steps align with the exactly representable floats.

Closed interval boundaries will always be included in the set of selectable floats. Thus, if the size of the interval is not an exact multiple of the step size and the boundary with the smaller absolute value is a closed boundary, the distance between that boundary and its nearest selectable float will be smaller than the step size.

Cuidado

Post-processing the returned floats is likely going to break the uniform equidistribution, because the intermediate floats within a mathematical operation are experiencing implicit rounding. The requested interval should match the desired interval as closely as possible and rounding should only be performed as an explicit operation right before displaying the selected number to a user.

Explanation of the Algorithm Using Example Values

To give an example of how the algorithm works, consider a floating point representation that uses a 3-bit mantissa. This representation is capable of representing 8 different floating point values between consecutive powers of two. This means that between 1.0 and 2.0 all steps of size 0.125 are exactly representable and between 2.0 and 4.0 all steps of size 0.25 are exactly representable. In reality PHP’s floats use a 52-bit mantissa and can represent 252 different values between each power of two. This means that

  • 1.0
  • 1.125
  • 1.25
  • 1.375
  • 1.5
  • 1.625
  • 1.75
  • 1.875
  • 2.0
  • 2.25
  • 2.5
  • 2.75
  • 3.0
  • 3.25
  • 3.5
  • 3.75
  • 4.0
are the exactly representable floats between 1.0 and 4.0.

Now consider that $randomizer->getFloat(1.625, 2.5, IntervalBoundary::ClosedOpen) is called, i.e. a random float starting at 1.625 until, but not including, 2.5 is requested. The algorithm first determines the step size at the boundary with the larger absolute value (2.5). The step size at that boundary is 0.25.

Note that the size of the requested interval is 0.875, which is not an exact multiple of 0.25. If the algorithm would start stepping at the lower bound 1.625, it would encounter 2.125, which is not exactly representable and would experience implicit rounding. Thus the algorithm starts stepping at the upper boundary 2.5. The selectable values are:

  • 2.25
  • 2.0
  • 1.75
  • 1.625
2.5 is not included, because the upper boundary of the requested interval is an open boundary. 1.625 is included, even though its distance to the nearest value 1.75 is 0.125, which is smaller than the previously determined step size of 0.25. The reason for that is that the requested interval is closed at the lower boundary (1.625) and closed boundaries are always included.

Finally the algorithm uniformly selects one of the four selectable values at random and returns it.

Why Dividing Two Integers Does Not Work

In the previous example, there are eight representable floating point numbers between each sub-interval delimited by a power of two. To give an example why dividing two integers would not work well to generate a random float, consider that there are 16 equidistributed floating point numbers in the right-open interval from 0.0 until, but not including, 1.0. Half of them are the eight exactly representable values between 0.5 and 1.0, the other half are the values between 0.0 and 1.0 that the step size of 0.0625. These can easily be generated by dividing a random integer between 0 and 15 by 16 to obtain one of:

  • 0.0
  • 0.0625
  • 0.125
  • 0.1875
  • 0.25
  • 0.3125
  • 0.375
  • 0.4375
  • 0.5
  • 0.5625
  • 0.625
  • 0.6875
  • 0.75
  • 0.8125
  • 0.875
  • 0.9375

This random float could be scaled to right-open interval from 1.625 until, but not including, 2.75 by multiplying it with the size of the interval (0.875) and adding the minimum 1.625. This so-called affine transformation would result in the values:

  • 1.625 rounded to 1.625
  • 1.679 rounded to 1.625
  • 1.734 rounded to 1.75
  • 1.789 rounded to 1.75
  • 1.843 rounded to 1.875
  • 1.898 rounded to 1.875
  • 1.953 rounded to 2.0
  • 2.007 rounded to 2.0
  • 2.062 rounded to 2.0
  • 2.117 rounded to 2.0
  • 2.171 rounded to 2.25
  • 2.226 rounded to 2.25
  • 2.281 rounded to 2.25
  • 2.335 rounded to 2.25
  • 2.390 rounded to 2.5
  • 2.445 rounded to 2.5
Note how the upper boundary of 2.5 would be returned, despite being an open boundary and thus being excluded. Also note how 2.0 and 2.25 are twice as likely to be returned compared to the other values.

Parâmetros

min

The lower bound of the interval.

max

The upper bound of the interval.

boundary

Specifies whether the interval boundaries are possible return values.

Valor Retornado

A uniformly selected, equidistributed float from the interval specified by min, max, and boundary. Whether min and max are possible return values depends on the value of boundary.

Erros/Exceções

  • If the value of min is not finite (is_finite()), a ValueError will be thrown.
  • If the value of max is not finite (is_finite()), a ValueError will be thrown.
  • If the requested interval does not contain any values, a ValueError will be thrown.
  • Qualquer erro ou exceção Throwable lançados pelo método Random\Engine::generate() do mecanismo Random\Randomizer::$engine subjacente.

Exemplos

Exemplo #1 Random\Randomizer::getFloat() example

<?php
$randomizer = new \Random\Randomizer();

// Note that the latitude granularity is double the
// longitude’s granularity.
//
// For the latitude the value may be both -90 and 90.
// For the longitude the value may be 180, but not -180, because
// -180 and 180 refer to the same longitude.
printf(
"Lat: %+.6f Lng: %+.6f",
$randomizer->getFloat(-90, 90, \Random\IntervalBoundary::ClosedClosed),
$randomizer->getFloat(-180, 180, \Random\IntervalBoundary::OpenClosed),
);
?>

O exemplo acima produzirá algo semelhante a:

Lat: +69.244304 Lng: -53.548951

Notas

Nota:

This method implements the ?-section algorithm as published in » Drawing Random Floating-Point Numbers from an Interval. Frédéric Goualard, ACM Trans. Model. Comput. Simul., 32:3, 2022 to obtain the desired behavioral properties.

Veja Também

  • Random\Randomizer::nextFloat() - Get a float from the right-open interval [0.0, 1.0)
  • Random\Randomizer::getInt() - Get a uniformly selected integer


Get a uniformly selected integer

  • « Random\Randomizer::getFloat
  • Random\Randomizer::nextFloat »
  • PHP Manual
  • Random\Randomizer
  • Get a uniformly selected integer

Random\Randomizer::getInt

(PHP 8 >= 8.2.0)

Random\Randomizer::getInt — Get a uniformly selected integer

Descrição

public Random\Randomizer::getInt(int $min, int $max): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

min

The lowest value to be returned.

max

The highest value to be returned.

Valor Retornado

A uniformly selected integer from the closed interval [min, max]. Both min and max are possible return values.

Erros/Exceções

  • If max is less than min, a ValueError will be thrown.
  • Qualquer erro ou exceção Throwable lançados pelo método Random\Engine::generate() do mecanismo Random\Randomizer::$engine subjacente.

Exemplos

Exemplo #1 Random\Randomizer::getInt() example

<?php
$r = new \Random\Randomizer();

// Random integer in range:
echo $r->getInt(1, 100), "\n";
?>

O exemplo acima produzirá algo semelhante a:

42

Veja Também

  • random_int() - Get a cryptographically secure, uniformly selected integer
  • Random\Randomizer::getFloat() - Get a uniformly selected float


Get a float from the right-open interval [0.0, 1.0)

  • « Random\Randomizer::getInt
  • Random\Randomizer::nextInt »
  • PHP Manual
  • Random\Randomizer
  • Get a float from the right-open interval [0.0, 1.0)

Random\Randomizer::nextFloat

(PHP 8 >= 8.3.0)

Random\Randomizer::nextFloat — Get a float from the right-open interval [0.0, 1.0)

Descrição

public Random\Randomizer::nextFloat(): float

Returns a uniformly selected, equidistributed float from the right-open interval from 0.0 until, but not including, 1.0.

The chance for returned float to be within a given right-open sub-interval is proportional to the size of the sub-interval. This means that the chance for a float to be less than 0.5 is 50 %, which is equal to the chance for a float to be at least 0.5. Likewise the chance for a float to be within the right-open interval from 0.2 until, but not including, 0.25 is exactly 5 %.

This property makes it easy to leverage Random\Randomizer::nextFloat() to generate a random boolean with a given chance by checking if the returned float is less than a given chance.

Nota:

The domain of the returnable floats of Random\Randomizer::nextFloat() is identical to that of Randomizer::getFloat(0.0, 1.0, IntervalBoundary::ClosedOpen).

The internal implementation of Random\Randomizer::nextFloat() is more efficient.

Cuidado

Scaling the return value to a different interval using multiplication or addition (a so-called affine transformation) might result in a bias in the resulting value as floats are not equally dense across the number line. As not all values can be exactly represented by a float, the result of the affine transformation might also result in values outside of the requested interval due to implicit rounding. An in-depth explanation of the problems with the affine transformation is given in the documentation for Random\Randomizer::getFloat().

Use Random\Randomizer::getFloat() to generate a random float within an arbitrary interval. Use Random\Randomizer::getInt() to generate a random integer within an arbitrary interval.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A uniformly selected, equidistributed float from the right-open (IntervalBoundary::ClosedOpen) interval [0.0, 1.0). 0.0 is a possible return value, 1.0 is not.

Erros/Exceções

  • Qualquer erro ou exceção Throwable lançados pelo método Random\Engine::generate() do mecanismo Random\Randomizer::$engine subjacente.

Exemplos

Exemplo #1 Random\Randomizer::nextFloat() example

<?php
$r = new \Random\Randomizer();

// The resulting bool will be true with the given chance.
$chance = 0.5;

$bool = $r->nextFloat() < $chance;

echo ($bool ? "You won" : "You lost"), "\n";
?>

O exemplo acima produzirá algo semelhante a:

You won

Exemplo #2 Incorrect scaling using an affine transformation

<?php
final class MaxEngine implements Random\Engine {
public function generate(): string {
return "\xff";
}
}

$randomizer = new \Random\Randomizer(new MaxEngine);

$min = 3.5;
$max = 4.5;

// DO NOT DO THIS:
//
// This will output 4.5, despite nextFloat() sampling from
// a right-open interval, which will never return 1.
printf("Wrong scaling: %.17g", $randomizer->nextFloat() * ($max - $min) + $min);

// Correct:
// $randomizer->getFloat($min, $max, \Random\IntervalBoundary::ClosedOpen);
?>

O exemplo acima produzirá:

Wrong scaling: 4.5

Veja Também

  • Random\Randomizer::getFloat() - Get a uniformly selected float


Get a positive integer

  • « Random\Randomizer::nextFloat
  • Random\Randomizer::pickArrayKeys »
  • PHP Manual
  • Random\Randomizer
  • Get a positive integer

Random\Randomizer::nextInt

(PHP 8 >= 8.2.0)

Random\Randomizer::nextInt — Get a positive integer

Descrição

public Random\Randomizer::nextInt(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A positive integer between 0 and a maximum value depending on the number of bytes returned from Random\Engine::generate(). The exact maximum can be calculated as 2$engine_bytes * 8 - 1 - 1.

Erros/Exceções

  • To avoid inconsistencies, 32 bit PHP will throw Random\RandomException if the output size of Random\Engine::generate() exceeds 32 bits, as the selected integer cannot be returned losslessly. This affects the native 64 bit engines Random\Engine\PcgOneseq128XslRr64 and Random\Engine\Xoshiro256StarStar. Any userland engine returning more than 4 bytes of randomness is also affected.
  • Qualquer erro ou exceção Throwable lançados pelo método Random\Engine::generate() do mecanismo Random\Randomizer::$engine subjacente.

Exemplos

Exemplo #1 Random\Randomizer::nextInt() example

<?php
$r = new \Random\Randomizer();

// Random "next" integer:
echo $r->nextInt(), "\n";
?>

O exemplo acima produzirá algo semelhante a:

8041689838856078718


Select random array keys

  • « Random\Randomizer::nextInt
  • Random\Randomizer::__serialize »
  • PHP Manual
  • Random\Randomizer
  • Select random array keys

Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeys — Select random array keys

Descrição

public Random\Randomizer::pickArrayKeys(array $array, int $num): array

Uniformly selects num distinct array keys of the input array.

Each key of the input array is equally likely to be returned.

Cuidado

The selection of the array keys depends on the internal structure of the input array. The returned array keys might be different for two equal input arrays and two Random\Engines with identical state, depending on how the input arrays have been created.

Parâmetros

array

The array whose array keys are selected.

num

The number of array keys to return; must be between 1 and the number of elements in array.

Valor Retornado

An array containing num distinct array keys of array.

The returned array will be a list (array_is_list()). It will be a subset of the array returned by array_keys().

Erros/Exceções

  • If num is less than 1 or greater than the number of elements in array, a ValueError will be thrown.
  • Qualquer erro ou exceção Throwable lançados pelo método Random\Engine::generate() do mecanismo Random\Randomizer::$engine subjacente.

Exemplos

Exemplo #1 Random\Randomizer::pickArrayKeys() example

<?php
$r = new \Random\Randomizer();

$fruits = [ 'red' => '??', 'green' => '??', 'yellow' => '??', 'pink' => '??', 'purple' => '??' ];

// Pick 2 random array keys:
echo "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 2)), "\n";

// Pick another 3:
echo "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 3)), "\n";
?>

O exemplo acima produzirá algo semelhante a:

Keys: yellow, purple
Keys: red, green, yellow

Exemplo #2 Picking random values

<?php
$r = new \Random\Randomizer();

$fruits = [ 'red' => '??', 'green' => '??', 'yellow' => '??', 'pink' => '??', 'purple' => '??' ];

$keys = $r->pickArrayKeys($fruits, 2);
// Look up the values for the picked keys.
$selection = array_map(
static fn ($key) => $fruits[$key],
$keys
);

echo "Values: ", implode(', ', $selection), "\n";
?>

O exemplo acima produzirá algo semelhante a:

Values: ??, ??

Veja Também

  • array_keys() - Retorna todas as chaves ou uma parte das chaves de um array


Serializes the Randomizer object

  • « Random\Randomizer::pickArrayKeys
  • Random\Randomizer::shuffleArray »
  • PHP Manual
  • Random\Randomizer
  • Serializes the Randomizer object

Random\Randomizer::__serialize

(PHP 8 >= 8.2.0)

Random\Randomizer::__serialize — Serializes the Randomizer object

Descrição

public Random\Randomizer::__serialize(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Random\Randomizer::__serialize() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Get a permutation of an array

  • « Random\Randomizer::__serialize
  • Random\Randomizer::shuffleBytes »
  • PHP Manual
  • Random\Randomizer
  • Get a permutation of an array

Random\Randomizer::shuffleArray

(PHP 8 >= 8.2.0)

Random\Randomizer::shuffleArray — Get a permutation of an array

Descrição

public Random\Randomizer::shuffleArray(array $array): array

Returns a uniformly selected permutation of the input array.

Each possible permutation of the input array is equally likely to be returned.

Parâmetros

array

The array whose values are shuffled.

The input array will not be modified.

Valor Retornado

A permutation of the values of array.

Array keys of the input array will not be preserved; the returned array will be a list (array_is_list()).

Erros/Exceções

  • Qualquer erro ou exceção Throwable lançados pelo método Random\Engine::generate() do mecanismo Random\Randomizer::$engine subjacente.

Exemplos

Exemplo #1 Random\Randomizer::shuffleArray() example

<?php
$r = new \Random\Randomizer();

$fruits = [ 'red' => '??', 'green' => '??', 'yellow' => '??', 'pink' => '??', 'purple' => '??' ];

// Shuffle array:
echo "Salad: ", implode(', ', $r->shuffleArray($fruits)), "\n";

// Shuffle again:
echo "Another Salad: ", implode(', ', $r->shuffleArray($fruits)), "\n";
?>

O exemplo acima produzirá algo semelhante a:

Salad: ??, ??, ??, ??, ??
Another Salad: ??, ??, ??, ??, ??


Get a byte-wise permutation of a string

  • « Random\Randomizer::shuffleArray
  • Random\Randomizer::__unserialize »
  • PHP Manual
  • Random\Randomizer
  • Get a byte-wise permutation of a string

Random\Randomizer::shuffleBytes

(PHP 8 >= 8.2.0)

Random\Randomizer::shuffleBytes — Get a byte-wise permutation of a string

Descrição

public Random\Randomizer::shuffleBytes(string $bytes): string

Returns a uniformly selected permutation of the input bytes.

Each possible permutation of the input bytes is equally likely to be returned.

Parâmetros

bytes

The string whose bytes are shuffled.

The input string will not be modified.

Valor Retornado

A permutation of the bytes of bytes.

Erros/Exceções

  • Qualquer erro ou exceção Throwable lançados pelo método Random\Engine::generate() do mecanismo Random\Randomizer::$engine subjacente.

Exemplos

Exemplo #1 Random\Randomizer::shuffleBytes() example

<?php
$r = new \Random\Randomizer();

// Shuffle bytes in a string:
echo "«", $r->shuffleBytes("PHP is great!"), "»\n";
?>

O exemplo acima produzirá algo semelhante a:

« ga rHs!PPiet»

Exemplo #2 Byte-wise shuffling breaks Unicode characters

<?php
$r = new \Random\Randomizer();

$unicode = "??, ??, ??, ??, ??";
$shuffled = $r->shuffleBytes( $unicode );

// Byte-wise shuffling of non-ASCII characters destroys them,
// resulting in invalid sequences (indicated by the Unicode
// replacement character) or even entirely different characters
// appearing in the output.
echo "Original: ", $unicode, "\n";
echo "Shuffled: «", $shuffled, "»\n";
echo "Shuffled Bytes: ", bin2hex($shuffled), "\n";
?>

O exemplo acima produzirá algo semelhante a:

Original: ??, ??, ??, ??, ??
Shuffled: «? ??,???????,? ?? ?, ?,??»
Shuffled Bytes: 87208e912c8d9fa5f0f0f09f8d9f2cf09f208c9d20f02c209f2c8d8d


Deserializes the data parameter into a Randomizer object

  • « Random\Randomizer::shuffleBytes
  • Random\Engine »
  • PHP Manual
  • Random\Randomizer
  • Deserializes the data parameter into a Randomizer object

Random\Randomizer::__unserialize

(PHP 8 >= 8.2.0)

Random\Randomizer::__unserialize — Deserializes the data parameter into a Randomizer object

Descrição

public Random\Randomizer::__unserialize(array $data): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Random\Randomizer::__unserialize() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


The Random\Engine interface

(PHP 8 >= 8.2.0)

Introdução

A Random\Engine provides a low-level source of randomness by returning random bytes that are consumed by high-level APIs to perform their operations. The Random\Engine interface allows swapping out the algorithm used to generate randomness, because each algorithm makes different tradeoffs to fit specific use-cases. Some algorithms are very fast, but generate lower-quality randomness, whereas other algorithms are slower, but generate better randomness, up to cryptographically secure randomness as provided by the Random\Engine\Secure engine.

PHP provides several Random\Engines out of the box to accomodate different use-cases. The Random\Engine\Secure engine that is backed by a CSPRNG is the recommended safe default choice, unless the application requires either reproducible sequences or very high performance.

Resumo da Interface

interface Random\Engine {
/* Métodos */
public generate(): string
}

Índice

  • Random\Engine::generate — Generates randomness


Generates randomness

  • « Random\Engine
  • Random\CryptoSafeEngine »
  • PHP Manual
  • Random\Engine
  • Generates randomness

Random\Engine::generate

(PHP 8 >= 8.2.0)

Random\Engine::generate — Generates randomness

Descrição

public Random\Engine::generate(): string

Returns randomness and advances the algorithm’s state by one step.

The randomness is represented by a binary string containing random bytes. This representation allows to unambiguously interpret the random bits generated by the algorithm, for example to accomodate different output sizes used by different algorithms.

Algorithms that natively operate on integer values should return the integer in little-endian byte order, for example by leveraging the pack() function with the P format code. The high-level interface provided by the Random\Randomizer will interpret the returned random bytes as unsigned little-endian integers if a numeric representation is required.

It is strongly recommended that each bit of the returned string is uniformly and independently selected, as some applications require randomness based on the bit-level to work correctly. For example linear congruential generators often generate lower-quality randomness for the less significant bits of the return integer value and thus would not be appropriate for applications that require bit-level randomness.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A non-empty string containing random bytes.

Nota: The Random\Randomizer works with unsigned 64 bit integers internally. If the returned string contains more than 64 bit (8 byte) of randomness the exceeding bytes will be ignored. Other applications may be able to process more than 64 bit at once.

Erros/Exceções

  • If generating randomness fails, a Random\RandomException should be thrown. Any other Exception thrown during generation should be caught and wrapped into a Random\RandomException.
  • If the returned string is empty, a Random\BrokenRandomEngineError will be thrown by the Random\Randomizer.
  • If the implemented algorithm is severely biased, a Random\BrokenRandomEngineError may be thrown by the Random\Randomizer to prevent infinite loops if rejection sampling is required to return unbiased results.

Exemplos

Exemplo #1 Random\Engine::generate() example

<?php
/**
* Implements a Linear Congruential Generator with modulus 65536,
* multiplier 61 and increment 17 returning an 8 Bit integer.
*
* Note: This engine is suitable for demonstration purposes only.
* Linear Congruential Generators generally generate low
* quality randomness and this specific implementation has
* a very short 16 Bit period that is unsuitable for
* almost any real-world use case.
*/
final class LinearCongruentialGenerator implements \Random\Engine
{
private int $state;

public function __construct(?int $seed = null)
{
if ($seed === null) {
$seed = random_int(0, 0xffff);
}

$this->state = $seed & 0xffff;
}

public function generate(): string
{
$this->state = (61 * $this->state + 17) & 0xffff;

return pack('C', $this->state >> 8);
}
}

$r = new \Random\Randomizer(
new LinearCongruentialGenerator(seed: 1)
);

echo "Lucky Number: ", $r->getInt(0, 99), "\n";
?>

O exemplo acima produzirá:

Lucky Number: 4


The Random\CryptoSafeEngine interface

(PHP 8 >= 8.2.0)

Introdução

A marker interface indicating that the Random\Engine returns cryptographically secure randomness.

Resumo da Interface

interface Random\CryptoSafeEngine extends Random\Engine {
/* Métodos herdados */
public Random\Engine::generate(): string
}


The Random\Engine\Secure class

(PHP 8 >= 8.2.0)

Introdução

Generates cryptographically secure randomness using the operating system’s CSPRNG.

The randomness generated by this Random\Engine is suitable for all applications, including the generation of long-term secrets, such as encryption keys.

The Random\Engine\Secure engine is the recommended safe default choice, unless the application requires either reproducible sequences or very high performance.

Resumo da classe

final class Random\Engine\Secure implements Random\CryptoSafeEngine {
/* Métodos */
public generate(): string
}

Índice

  • Random\Engine\Secure::generate — Generate cryptographically secure randomness


Generate cryptographically secure randomness

  • « Random\Engine\Secure
  • Random\Engine\Mt19937 »
  • PHP Manual
  • Random\Engine\Secure
  • Generate cryptographically secure randomness

Random\Engine\Secure::generate

(PHP 8 >= 8.2.0)

Random\Engine\Secure::generate — Generate cryptographically secure randomness

Descrição

public Random\Engine\Secure::generate(): string

Returns cryptographically secure randomness.

As fontes de aleatoriedade usadas para esta função são as seguintes:

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22 se CCRandomGenerateBytes estiver disponível em tempo de compilação): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Qualquer combinação de sistema operacional e versão do PHP não mencionada anteriormente: /dev/urandom
  • Se nenhuma das fontes estiver disponível ou todas falharem em gerar aleatoriedade, então uma exceção Random\RandomException será lançada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A string containing PHP_INT_SIZE cryptographically secure random bytes.

Erros/Exceções

  • Se uma fonte apropriada de aleatoriedade não puder ser encontrada, uma exceção Random\RandomException será lançada.


The Random\Engine\Mt19937 class

(PHP 8 >= 8.2.0)

Introdução

Implements the » Mt19937 (“Mersenne Twister”) algorithm.

Resumo da classe

final class Random\Engine\Mt19937 implements Random\Engine {
/* Métodos */
public __construct(?int $seed = null, int $mode = MT_RAND_MT19937)
public __debugInfo(): array
public generate(): string
public __serialize(): array
public __unserialize(array $data): void
}

Índice

  • Random\Engine\Mt19937::__construct — Constructs a new Mt19937 engine
  • Random\Engine\Mt19937::__debugInfo — Returns the internal state of the engine
  • Random\Engine\Mt19937::generate — Generate 32 bits of randomness
  • Random\Engine\Mt19937::__serialize — Serializes the Mt19937 object
  • Random\Engine\Mt19937::__unserialize — Deserializes the data parameter into a Mt19937 object


Constructs a new Mt19937 engine

  • « Random\Engine\Mt19937
  • Random\Engine\Mt19937::__debugInfo »
  • PHP Manual
  • Random\Engine\Mt19937
  • Constructs a new Mt19937 engine

Random\Engine\Mt19937::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__construct — Constructs a new Mt19937 engine

Descrição

public Random\Engine\Mt19937::__construct(?int $seed = null, int $mode = MT_RAND_MT19937)

Cuidado

Como o mecanismo Mt19937 (“Mersenne Twister”) aceita apenas um único inteiro de 32 bits como semente, o número de sequências aleatórias possíveis é limitado a apenas 232 (ou seja, 4.294.967.296), embora o Mt19937 possua um gigantesco período de 219937-1.

Ao depender da geração aleatória implícita ou explícita de sementes, as duplicações aparecerão muito mais cedo. Sementes duplicadas são esperadas com probabilidade de 50% depois de menos de 80.000 sementes geradas aleatoriamente de acordo com o problema do aniversário. Uma probabilidade de 10% de uma semente duplicada acontece depois de gerar aleatoriamente cerca de 30.000 sementes.

Isso torna o Mt19937 inadequado para aplicações em que sequências duplicadas não devem ocorrer com mais do que uma probabilidade desprezível. Se a geração reproduzível de sementes for necessária, ambos os mecanismos Random\Engine\Xoshiro256StarStar e Random\Engine\PcgOneseq128XslRr64 suportam sementes muito maiores que são improváveis de colidir aleatoriamente. Se a reprodutibilidade não for necessária, o mecanismo Random\Engine\Secure fornece aleatoriedade criptograficamente segura.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

seed

Fills the state with values generated with a linear congruential generator that was seeded with seed interpreted as an unsigned 32 bit integer.

If seed is omitted or null, a random unsigned 32 bit integer will be used.

mode

Use one of the following constants to specify the implementation of the algorithm to use.

  • MT_RAND_MT19937: The correct Mt19937 implementation.
  • MT_RAND_PHP: An incorrect implementation for backwards compatibility with mt_srand() prior to PHP 7.1.0.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

Exemplos

Exemplo #1 Random\Engine\Mt19937::__construct() example

<?php
// Uses a random 32 Bit seed.
$e = new \Random\Engine\Mt19937();

$r = new \Random\Randomizer($e);
?>


Returns the internal state of the engine

  • « Random\Engine\Mt19937::__construct
  • Random\Engine\Mt19937::generate »
  • PHP Manual
  • Random\Engine\Mt19937
  • Returns the internal state of the engine

Random\Engine\Mt19937::__debugInfo

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__debugInfo — Returns the internal state of the engine

Descrição

public Random\Engine\Mt19937::__debugInfo(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Random\Engine\Mt19937::__debugInfo() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Generate 32 bits of randomness

  • « Random\Engine\Mt19937::__debugInfo
  • Random\Engine\Mt19937::__serialize »
  • PHP Manual
  • Random\Engine\Mt19937
  • Generate 32 bits of randomness

Random\Engine\Mt19937::generate

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::generate — Generate 32 bits of randomness

Descrição

public Random\Engine\Mt19937::generate(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A string representing an unsigned 32 bit integer in little-endian order.


Serializes the Mt19937 object

  • « Random\Engine\Mt19937::generate
  • Random\Engine\Mt19937::__unserialize »
  • PHP Manual
  • Random\Engine\Mt19937
  • Serializes the Mt19937 object

Random\Engine\Mt19937::__serialize

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__serialize — Serializes the Mt19937 object

Descrição

public Random\Engine\Mt19937::__serialize(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Random\Engine\Mt19937::__serialize() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Deserializes the data parameter into a Mt19937 object

  • « Random\Engine\Mt19937::__serialize
  • Random\Engine\PcgOneseq128XslRr64 »
  • PHP Manual
  • Random\Engine\Mt19937
  • Deserializes the data parameter into a Mt19937 object

Random\Engine\Mt19937::__unserialize

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__unserialize — Deserializes the data parameter into a Mt19937 object

Descrição

public Random\Engine\Mt19937::__unserialize(array $data): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Random\Engine\Mt19937::__unserialize() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


The Random\Engine\PcgOneseq128XslRr64 class

(PHP 8 >= 8.2.0)

Introdução

Implements a » Permuted congruential generator (PCG) with 128 bits of state, XSL and RR output transformations, and 64 bits of output.

Resumo da classe

final class Random\Engine\PcgOneseq128XslRr64 implements Random\Engine {
/* Métodos */
public __construct(string|int|null $seed = null)
public __debugInfo(): array
public generate(): string
public jump(int $advance): void
public __serialize(): array
public __unserialize(array $data): void
}

Índice

  • Random\Engine\PcgOneseq128XslRr64::__construct — Constructs a new PCG Oneseq 128 XSL RR 64 engine
  • Random\Engine\PcgOneseq128XslRr64::__debugInfo — Returns the internal state of the engine
  • Random\Engine\PcgOneseq128XslRr64::generate — Generate 64 bits of randomness
  • Random\Engine\PcgOneseq128XslRr64::jump — Efficiently move the engine ahead multiple steps
  • Random\Engine\PcgOneseq128XslRr64::__serialize — Serializes the PcgOneseq128XslRr64 object
  • Random\Engine\PcgOneseq128XslRr64::__unserialize — Deserializes the data parameter into a PcgOneseq128XslRr64 object


Constructs a new PCG Oneseq 128 XSL RR 64 engine

  • « Random\Engine\PcgOneseq128XslRr64
  • Random\Engine\PcgOneseq128XslRr64::__debugInfo »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Constructs a new PCG Oneseq 128 XSL RR 64 engine

Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__construct — Constructs a new PCG Oneseq 128 XSL RR 64 engine

Descrição

public Random\Engine\PcgOneseq128XslRr64::__construct(string|int|null $seed = null)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

seed

How the internal 128 bit (16 byte) state consisting of one unsigned 128 bit integer is seeded depends on the type used as the seed.

Type | Descrição
null | Fills the state with 16 random bytes generated using the CSPRNG.
int | Fills the state by setting the state to 0, advancing the engine one step, adding the value of seed interpreted as an unsigned 64 bit integer, and advancing the engine another step.
string | Fills the state by interpreting a 16 byte string as a little-endian unsigned 128 bit integer.

Erros/Exceções

  • If the length of a string seed is not 16 bytes, a ValueError will be thrown.

Exemplos

Exemplo #1 Random\Engine\PcgOneseq128XslRr64::__construct() example

<?php
// Uses a random 128 Bit seed.
$e = new \Random\Engine\PcgOneseq128XslRr64();

$r = new \Random\Randomizer($e);
?>

Exemplo #2 Deriving a seed from a string

<?php
$string = "My string seed";

// Hash the string with truncated SHA-256 using binary output
// to turn the $string into a 128 Bit seed. Using the same
// string will result in the same sequence of randomness.
$e = new \Random\Engine\PcgOneseq128XslRr64(
substr(hash('sha256', $string, binary: true), 0, 16)
);

echo bin2hex($e->generate()), "\n";
?>

O exemplo acima produzirá:

8333ef59315b16d8


Returns the internal state of the engine

  • « Random\Engine\PcgOneseq128XslRr64::__construct
  • Random\Engine\PcgOneseq128XslRr64::generate »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Returns the internal state of the engine

Random\Engine\PcgOneseq128XslRr64::__debugInfo

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__debugInfo — Returns the internal state of the engine

Descrição

public Random\Engine\PcgOneseq128XslRr64::__debugInfo(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Random\Engine\PcgOneseq128XslRr64::__debugInfo() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Generate 64 bits of randomness

  • « Random\Engine\PcgOneseq128XslRr64::__debugInfo
  • Random\Engine\PcgOneseq128XslRr64::jump »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Generate 64 bits of randomness

Random\Engine\PcgOneseq128XslRr64::generate

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::generate — Generate 64 bits of randomness

Descrição

public Random\Engine\PcgOneseq128XslRr64::generate(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A string representing an unsigned 64 bit integer in little-endian order.


Efficiently move the engine ahead multiple steps

  • « Random\Engine\PcgOneseq128XslRr64::generate
  • Random\Engine\PcgOneseq128XslRr64::__serialize »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Efficiently move the engine ahead multiple steps

Random\Engine\PcgOneseq128XslRr64::jump

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::jump — Efficiently move the engine ahead multiple steps

Descrição

public Random\Engine\PcgOneseq128XslRr64::jump(int $advance): void

Moves the algorithm’s state ahead by the number of steps given by advance, as if Random\Engine\PcgOneseq128XslRr64::generate() was called that many times.

Parâmetros

advance

The number of steps to move ahead; must be 0 or greater.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

  • If advance is less than 0, a ValueError will be thrown.

Exemplos

Exemplo #1 Random\Engine\PcgOneseq128XslRr64::jump() example

<?php
$a = new \Random\Engine\PcgOneseq128XslRr64(0);
$b = clone $a;

for ($i = 0; $i < 1_000; $i++) {
$a->generate();
}
$b->jump(1_000);

echo "A: ", bin2hex($a->generate()), "\n";
echo "B: ", bin2hex($b->generate()), "\n";
?>

O exemplo acima produzirá:

A: e6d0d5813913a424
B: e6d0d5813913a424

Exemplo #2 Randomizer methods may call the engine more than once

<?php
$a = new \Random\Randomizer(new \Random\Engine\PcgOneseq128XslRr64(42659));
$b = new \Random\Randomizer(clone $a->engine);

$a->getInt(1, 1572864); // Performs two calls to generate().
$a->getInt(1, 1572864);

$b->engine->jump(2);

// Because the first call to ->getInt() called ->generate() twice
// the engines do not match up after performing a ->jump(2).
echo "A: ", bin2hex($a->engine->generate()), "\n";
echo "B: ", bin2hex($b->engine->generate()), "\n";

// Now the B engine matches the A engine.
echo "B: ", bin2hex($b->engine->generate()), "\n";
?>

O exemplo acima produzirá:

A: 1e9f3107d56653d0
B: a156c0086dd79d44
B: 1e9f3107d56653d0


Serializes the PcgOneseq128XslRr64 object

  • « Random\Engine\PcgOneseq128XslRr64::jump
  • Random\Engine\PcgOneseq128XslRr64::__unserialize »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Serializes the PcgOneseq128XslRr64 object

Random\Engine\PcgOneseq128XslRr64::__serialize

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__serialize — Serializes the PcgOneseq128XslRr64 object

Descrição

public Random\Engine\PcgOneseq128XslRr64::__serialize(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Random\Engine\PcgOneseq128XslRr64::__serialize() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Deserializes the data parameter into a PcgOneseq128XslRr64 object

  • « Random\Engine\PcgOneseq128XslRr64::__serialize
  • Random\Engine\Xoshiro256StarStar »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Deserializes the data parameter into a PcgOneseq128XslRr64 object

Random\Engine\PcgOneseq128XslRr64::__unserialize

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__unserialize — Deserializes the data parameter into a PcgOneseq128XslRr64 object

Descrição

public Random\Engine\PcgOneseq128XslRr64::__unserialize(array $data): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Random\Engine\PcgOneseq128XslRr64::__unserialize() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


The Random\Engine\Xoshiro256StarStar class

(PHP 8 >= 8.2.0)

Introdução

Implements the » xoshiro256** algorithm.

Resumo da classe

final class Random\Engine\Xoshiro256StarStar implements Random\Engine {
/* Métodos */
public __construct(string|int|null $seed = null)
public __debugInfo(): array
public generate(): string
public jump(): void
public jumpLong(): void
public __serialize(): array
public __unserialize(array $data): void
}

Índice

  • Random\Engine\Xoshiro256StarStar::__construct — Constructs a new xoshiro256** engine
  • Random\Engine\Xoshiro256StarStar::__debugInfo — Returns the internal state of the engine
  • Random\Engine\Xoshiro256StarStar::generate — Generate 64 bits of randomness
  • Random\Engine\Xoshiro256StarStar::jump — Efficiently move the engine ahead by 2^128 steps
  • Random\Engine\Xoshiro256StarStar::jumpLong — Efficiently move the engine ahead by 2^192 steps
  • Random\Engine\Xoshiro256StarStar::__serialize — Serializes the Xoshiro256StarStar object
  • Random\Engine\Xoshiro256StarStar::__unserialize — Deserializes the data parameter into a Xoshiro256StarStar object


Constructs a new xoshiro256** engine

  • « Random\Engine\Xoshiro256StarStar
  • Random\Engine\Xoshiro256StarStar::__debugInfo »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Constructs a new xoshiro256** engine

Random\Engine\Xoshiro256StarStar::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__construct — Constructs a new xoshiro256** engine

Descrição

public Random\Engine\Xoshiro256StarStar::__construct(string|int|null $seed = null)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

seed

How the internal 256 bit (32 byte) state consisting of four unsigned 64 bit integers is seeded depends on the type used as the seed.

Type | Descrição
null | Fills the state with 32 random bytes generated using the CSPRNG.
int | Fills the state with four consecutive values generated with the SplitMix64 algorithm that was seeded with seed interpreted as an unsigned 64 bit integer.
string | Fills the state by interpreting a 32 byte string as four little-endian unsigned 64 bit integers.

Erros/Exceções

  • If the length of a string seed is not 32 bytes, a ValueError will be thrown.
  • If a string seed consists of 32 NUL bytes ("\x00"), a ValueError will be thrown.

Exemplos

Exemplo #1 Random\Engine\Xoshiro256StarStar::__construct() example

<?php
// Uses a random 256 Bit seed.
$e = new \Random\Engine\Xoshiro256StarStar();

$r = new \Random\Randomizer($e);
?>

Exemplo #2 Deriving a seed from a string

<?php
$string = "My string seed";

// Hash the string with SHA-256 using binary output to turn the
// $string into a 256 Bit seed. Using the same string will result
// in the same sequence of randomness.
$e = new \Random\Engine\Xoshiro256StarStar(
hash('sha256', $string, binary: true)
);

echo bin2hex($e->generate()), "\n";
?>

O exemplo acima produzirá:

6e013453678388c2


Returns the internal state of the engine

  • « Random\Engine\Xoshiro256StarStar::__construct
  • Random\Engine\Xoshiro256StarStar::generate »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Returns the internal state of the engine

Random\Engine\Xoshiro256StarStar::__debugInfo

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__debugInfo — Returns the internal state of the engine

Descrição

public Random\Engine\Xoshiro256StarStar::__debugInfo(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Random\Engine\Xoshiro256StarStar::__debugInfo() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Generate 64 bits of randomness

  • « Random\Engine\Xoshiro256StarStar::__debugInfo
  • Random\Engine\Xoshiro256StarStar::jump »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Generate 64 bits of randomness

Random\Engine\Xoshiro256StarStar::generate

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::generate — Generate 64 bits of randomness

Descrição

public Random\Engine\Xoshiro256StarStar::generate(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A string representing an unsigned 64 bit integer in little-endian order.


Efficiently move the engine ahead by 2^128 steps

  • « Random\Engine\Xoshiro256StarStar::generate
  • Random\Engine\Xoshiro256StarStar::jumpLong »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Efficiently move the engine ahead by 2^128 steps

Random\Engine\Xoshiro256StarStar::jump

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::jump — Efficiently move the engine ahead by 2^128 steps

Descrição

public Random\Engine\Xoshiro256StarStar::jump(): void

Moves the algorithm’s state ahead by 2128 steps, as if Random\Engine\Xoshiro256StarStar::generate() was called 2128 times.

The purpose of a jump is to facilitate the creation of a new Random\Engine\Xoshiro256StarStar engine from an existing seeded Random\Engine\Xoshiro256StarStar engine. The seeded engine acts as a blueprint, which can be cloned and repeatedly jumped to create 2128 non-overlapping sequences with 2128 values each.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Random\Engine\Xoshiro256StarStar::jump() example

<?php
use Random\Engine\Xoshiro256StarStar;
use Random\Randomizer;

$blueprintRng = new Xoshiro256StarStar(0);

$fibers = [];
for ($i = 0; $i < 8; $i++) {
$fiberRng = clone $blueprintRng;
$blueprintRng->jump();

$fiber = new Fiber(static function () use ($fiberRng, $i): void {
$randomizer = new Randomizer($fiberRng);

while (true) {
Fiber::suspend();

echo "{$i}: ", $randomizer->getInt(0, 100), "\n";
}
});
$fiber->start();

$fibers[] = $fiber;
}

// Even though the fibers execute in a random order, they will print the same value
// each time, because each has its own unique instance of the RNG.
$randomizer = new Randomizer();

$fibers = $randomizer->shuffleArray($fibers);
foreach ($fibers as $fiber) {
$fiber->resume();
}

$fibers = $randomizer->shuffleArray($fibers);
foreach ($fibers as $fiber) {
$fiber->resume();
}
?>

O exemplo acima produzirá algo semelhante a:

4: 89
3: 10
2: 63
1: 75
6: 41
5: 56
0: 16
7: 60
7: 34
6: 58
1: 74
4: 63
3: 3
5: 42
2: 45
0: 86

Veja Também

  • Random\Engine\Xoshiro256StarStar::jumpLong() - Efficiently move the engine ahead by 2^192 steps


Efficiently move the engine ahead by 2^192 steps

  • « Random\Engine\Xoshiro256StarStar::jump
  • Random\Engine\Xoshiro256StarStar::__serialize »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Efficiently move the engine ahead by 2^192 steps

Random\Engine\Xoshiro256StarStar::jumpLong

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::jumpLong — Efficiently move the engine ahead by 2^192 steps

Descrição

public Random\Engine\Xoshiro256StarStar::jumpLong(): void

Moves the algorithm’s state ahead by 2192 steps, as if Random\Engine\Xoshiro256StarStar::generate() was called 2192 times.

The purpose of a long jump is to facilitate the creation of a new Random\Engine\Xoshiro256StarStar engine from an existing seeded Random\Engine\Xoshiro256StarStar engine. The seeded engine acts as a blueprint, which can be cloned and repeatedly jumped to create 264 non-overlapping sequences with 2192 values each.

Long jumping may be combined with Random\Engine\Xoshiro256StarStar::jump()ing to further split each of the 264 sequences generated by long jumping, into 264 sequences of 2128 values each.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Random\Engine\Xoshiro256StarStar::jumpLong() example

<?php
$blueprintRng = new \Random\Engine\Xoshiro256StarStar(0);

// Each parent engine will have its own chunk of 2**192 values.
$parent1 = clone $blueprintRng;
$blueprintRng->jumpLong();

$parent2 = clone $blueprintRng;
$blueprintRng->jumpLong();

// Each of the child engines will have its own chunk of 2**128 values
// taken from their parent engine’s chunk of 2**192 values.
$child1a = clone $parent1;
$parent1->jump();
$child1b = clone $parent1;
$parent1->jump();

$child2a = clone $parent2;
$parent2->jump();
$child2b = clone $parent2;
$parent2->jump();

echo "Child 1A: ", bin2hex($child1a->generate()), "\n";
echo "Child 1B: ", bin2hex($child1b->generate()), "\n";
echo "Child 2A: ", bin2hex($child2a->generate()), "\n";
echo "Child 2B: ", bin2hex($child2b->generate()), "\n";
?>

O exemplo acima produzirá:

Child 1A: b4f275cb365fec99
Child 1B: 2cd646c8ed156237
Child 2A: eb3729a722a504e7
Child 2B: d4208dc85bdd6dc3

Veja Também

  • Random\Engine\Xoshiro256StarStar::jump() - Efficiently move the engine ahead by 2^128 steps


Serializes the Xoshiro256StarStar object

  • « Random\Engine\Xoshiro256StarStar::jumpLong
  • Random\Engine\Xoshiro256StarStar::__unserialize »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Serializes the Xoshiro256StarStar object

Random\Engine\Xoshiro256StarStar::__serialize

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__serialize — Serializes the Xoshiro256StarStar object

Descrição

public Random\Engine\Xoshiro256StarStar::__serialize(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Random\Engine\Xoshiro256StarStar::__serialize() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Deserializes the data parameter into a Xoshiro256StarStar object

  • « Random\Engine\Xoshiro256StarStar::__serialize
  • Random\RandomError »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Deserializes the data parameter into a Xoshiro256StarStar object

Random\Engine\Xoshiro256StarStar::__unserialize

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__unserialize — Deserializes the data parameter into a Xoshiro256StarStar object

Descrição

public Random\Engine\Xoshiro256StarStar::__unserialize(array $data): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Random\Engine\Xoshiro256StarStar::__unserialize() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


The Random\RandomError class

(PHP 8 >= 8.2.0)

Introdução

The base class for Errors that occur during generation or use of randomness.

Resumo da classe

class Random\RandomError extends Error {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


The Random\BrokenRandomEngineError class

(PHP 8 >= 8.2.0)

Introdução

Indicates that the used Random\Engine is broken, e.g. because it is severely biased.

Resumo da classe

class Random\BrokenRandomEngineError extends Random\RandomError {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


The Random\RandomException class

(PHP 8 >= 8.2.0)

Introdução

The base class for Exceptions that occur during generation or use of randomness.

Resumo da classe

class Random\RandomException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Seaslog

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Seaslog Funções
    • seaslog_get_author — Get SeasLog author.
    • seaslog_get_version — Get SeasLog version.
  • SeasLog — The SeasLog class
    • SeasLog::alert — Record alert log information
    • SeasLog::analyzerCount — Get log count by level, log_path and key_word
    • SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream — Manually release stream flow from logger
    • SeasLog::__construct — Description
    • SeasLog::critical — Record critical log information
    • SeasLog::debug — Record debug log information
    • SeasLog::__destruct — Description
    • SeasLog::emergency — Record emergency log information
    • SeasLog::error — Record error log information
    • SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
    • SeasLog::getBasePath — Get SeasLog base path.
    • SeasLog::getBuffer — Get the logs buffer in memory as array
    • SeasLog::getBufferEnabled — Determin if buffer enabled
    • SeasLog::getDatetimeFormat — Get SeasLog datetime format style
    • SeasLog::getLastLogger — Get SeasLog last logger path
    • SeasLog::getRequestID — Get SeasLog request_id differentiated requests
    • SeasLog::getRequestVariable — Get SeasLog request variable
    • SeasLog::info — Record info log information
    • SeasLog::log — The Common Record Log Function
    • SeasLog::notice — Record notice log information
    • SeasLog::setBasePath — Set SeasLog base path
    • SeasLog::setDatetimeFormat — Set SeasLog datetime format style
    • SeasLog::setLogger — Set SeasLog logger name
    • SeasLog::setRequestID — Set SeasLog request_id differentiated requests
    • SeasLog::setRequestVariable — Manually set SeasLog request variable
    • SeasLog::warning — Record warning log information


Introdução

The Seaslog is an effective,fast,stable log extension for PHP.

The log journal,which is usually the operate record of the system, software and the application record. Through the analysis of the log,it can facilitate users to understand the operation of the system, software and the application situation. If your application log is rich enough, it can also analyze the previous use’s operation behavior,type, regional distribution or other more information. The application log also points the multiple levels at the same time, you can easily get the application analysis of health status, timely find problems and quick positioning, and solve the problem, remedy the loss.

The error_log, syslog function which built in PHP is powerful and excellent performance, but due to various defects (error_log have no error level, no fixed format, syslog regardless of module, and mix with system log ), reducing a lot of flexibility , and can't meet the application requirements.

The good news is that there are a number of third-party log class library established to make up for the defects, such as log4php, plog, monolog (of course, there are many applications in the project development of the log class).

So is there a log of libraries meet the following requirements:

  • Modules, classification
  • Simple configuration(preferably without configuration)
  • Clear log format and easy understanding
  • Simple application and well performance
Seaslog just meet these demands.

What is provided at present:

  • In the PHP project, record the log specification and repidly.
  • Configure the default log directory and module
  • Specified log directory and capture current configuration
  • Preliminary analysis of the early warning framework
  • Efficient log buffer and convenient buffer debug
  • Follow the PSR-3 log interface specification
  • Automatically record error information
  • Automatically record abnormal information
  • Support Connect the TCP port, send with RFC5424
  • Support Connect the UDP port, send with RFC5424
  • Support RequestId differentiated requests
  • Support for log template customizations

Read More » SeasLog Document at Github.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/seaslog


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Seaslog Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
seaslog.appender | 1 | INI_SYSTEM |
seaslog.appender_retry | 0 | INI_ALL |
seaslog.level | 8 | INI_ALL |
seaslog.remote_host | 127.0.0.1 | INI_ALL |
seaslog.remote_port | 514 | INI_ALL |
seaslog.remote_timeout | 1 | INI_SYSTEM |
seaslog.default_basepath | /var/log/www | INI_SYSTEM |
seaslog.default_logger | default | INI_SYSTEM |
seaslog.default_template | %T | %L | %P | %Q | %t | %M | INI_SYSTEM |
seaslog.default_datetime_format | Y-m-d H:i:s | INI_SYSTEM |
seaslog.trace_error | 1 | INI_ALL |
seaslog.trace_exception | 0 | INI_SYSTEM |
seaslog.trace_notice | 0 | INI_ALL |
seaslog.trace_warning | 0 | INI_ALL |
seaslog.use_buffer | 0 | INI_SYSTEM |
seaslog.buffer_size | 0 | INI_ALL |
seaslog.buffer_disabled_in_cli | 0 | INI_SYSTEM |
seaslog.disting_type | 0 | INI_SYSTEM |
seaslog.disting_folder | 1 | INI_SYSTEM |
seaslog.disting_by_hour | 0 | INI_SYSTEM |
seaslog.recall_depth | 0 | INI_ALL |
seaslog.trim_wrap | 0 | INI_ALL |
seaslog.ignore_warning | 1 | INI_ALL |
seaslog.throw_exception | 1 | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

seaslog.appender int

Switch the Record Log Data Store. 1File 2TCP 3UDP (Switch default 1)

SeasLog will send log to tcp://remote_host:remote_port or udp://remote_host:remote_port server, when seaslog.appender configured to 2 (TCP) or 3 (UDP).

When SeasLog send log to TCP/UDP,style follow RFC5424. The {logInfo} affected by seaslog.default_template.

The log style finally formatted such as:
<15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug
<14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log
<13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log
seaslog.appender_retry int

Record Log Retry Count. Default 0 (Do Not Retry)

seaslog.buffer_disabled_in_cli int

Disable buffer in cli. 1-Y 0-N(Default)

Switch the configure buffer_disabled_in_cli on. The buffer_disabled_in_cli switch default off. If switch buffer_disabled_in_cli on, and running in cli, seaslog.use_buffer setting will be discarded, Seaslog write to the Data Store IMMEDIATELY.

seaslog.buffer_size int

Configure the buffer_size with 100. The buffer_size default 0, it’s meaning don’t use buffer. If buffer_size > 0,SeasLog will rewritten down into the Data Store when the prerecorded log in memory count >= this buffer_size,and then refresh the memory poll.

seaslog.default_basepath string

Default Log Base Path. Defult "/var/log/www".

seaslog.default_datetime_format string

The DateTime Style. Default "Y-m-d H:i:s".

seaslog.default_logger string

Default Logger Path. Default "default".

seaslog.disting_by_hour int

Switch use the logger with hour. 1-Y 0-N(Default)

Nota:

seaslog.disting_by_hour = 1 Switch use Logger DisTing by hour. It’s meaning SeasLog will create the file each one hour.

seaslog.disting_folder int

Switch use the logger with folder. 1-Y(Default) 0-N

Nota:

seaslog.disting_folder = 1 Switch use Logger DisTing by folder, it’s meaning SeasLog will create the file deistic by folder, and when this configure close SeasLog will create file use underline connect Logger and Time like default_20180211.log.

seaslog.disting_type int

Switch use the logger with type. 1-Y 0-N(Default)

Nota:

seaslog.disting_type = 1 Switch use Logger DisTing by type, it’s meaning SeasLog will create the file deistic info\warn\error and the other type.

seaslog.ignore_warning int

Switch ignore SeasLog warning. 1-On(Default) 0-Off

Nota:

seaslog.ignore_warning = 1 Open a warning to ignore SeasLog itself. When directory permissions or receive server ports are blocked, they are ignored; when closed, a warning is thrown.

seaslog.level int

Record logger level. Default 8 (All of them). 0-EMERGENCY 1-ALERT 2-CRITICAL 3-ERROR 4-WARNING 5-NOTICE 6-INFO 7-DEBUG 8-ALL

Nota:

Tips: The configuration item has changed since the 1.7.0 version. Before the 1.7.0 version, the smaller the value, the more logs are taken according to the level: 0-all 1-debug 2-info 3-notice 4-warning 5-error 6-critical 7-alert 8-emergency Before the 1.7.0 version, Default 0 (All of them).

seaslog.recall_depth int

Log function recall depth.Will affected variable LineNo in %F. Default 0

seaslog.remote_host string

If you use Record TCP or UDP, configure this remote ip. Default "127.0.0.1"

seaslog.remote_port int

If you use Record TCP or UDP, configure this remote port. Default 514

seaslog.remote_timeout int

If you use Record TCP or UDP, configure this remote timeout. Default 1 second

seaslog.throw_exception int

Switch throw SeasLog exception. 1-On(Default) 0-Off

Nota:

seaslog.throw_exception = 1 Open an exception that throws the SeasLog to throw itself. When the directory authority or the receive server port is blocked, throw an exception; do not throw an exception when closed.

seaslog.trace_error int

Automatic Record final error with default logger. 1-Y(Default) 0-N

seaslog.trace_exception int

Automatic Record exception with default logger. 1-Y 0-N(Default)

seaslog.trace_notice int

Automatic Record notice with default logger. 1-Y 0-N(Default)

seaslog.trace_warning int

Automatic Record warning with default logger. 1-Y 0-N(Default)

seaslog.trim_wrap int

Trim the \n and \r in log message. 1-On 0-Off(Default)

seaslog.use_buffer int

Switch use the log buffer with memory. 1-Y 0-N(Default)

Nota:

seaslog.use_buffer = 1 Switch the configure use_buffer on. The use_buffer switch default off. If switch use_buffer on, SeasLog prerecord the log with memory, and them would be rewritten down into the Data Store by request shutdown or php process exit (PHP RSHUTDOWN or PHP MSHUTDOWN).

seaslog.default_template string

Default Log template. Default "%T | %L | %P | %Q | %t | %M".

Nota:

The following default variables are provided, which can be used directly in the log template and replaced as a corresponding value when the log is eventually generated.

Default log template is: seaslog.default_template = "%T | %L | %P | %Q | %t | %M", that's mean,default log style is: {dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}

If you custom log template, such as: seaslog.default_template = "[%T]:%L %P %Q %t %M", that's will mean,log style was custom as: [{dateTime}]:{level} {pid} {uniqid} {timeStamp} {logInfo}

Seaslog Default Variable Table
Variable Name | Description
%L | Level.
%M | Message.
%T | DateTime. Such as 2017-08-16 19:15:02, affected by seaslog.default_datetime_format.
%t | Timestamp. Such as 1502882102.862,accurate to milliseconds.
%Q | RequestId. To distinguish a single request, such as not invoking the SeasLog::setRequestId($string) function, the unique value generated by the built-in static char *get_uniqid () function is used when the request is initialized.
%H | HostName.
%P | ProcessId.
%D | Domain:Port. Such as www.cloudwise.com:80; When Cli, Such as cli.
%R | Request URI. Such as /app/user/signin; When Cli it's the index script, Such as CliIndex.php.
%m | Request Method. Such as Get; When Cli it's the command script, Such as /bin/bash.
%I | Client IP; When Cli it's local. Priority value: HTTP_X_REAL_IP > HTTP_X_FORWARDED_FOR > REMOTE_ADDR
%F | FileName:LineNo. Such as UserService.php:118.
%U | MemoryUsage. byte. Call zend_memory_usage.
%u | PeakMemoryUsage. byte. Call zend_memory_peak_usage.
%C | TODO Class::Action. Such as UserService::getUserInfo


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SEASLOG_VERSION (string)
SEASLOG_AUTHOR (string)
SEASLOG_ALL (string)
"ALL"
SEASLOG_DEBUG (string)
"DEBUG" - Detailed debug information.Fine-grained information events.
SEASLOG_INFO (string)
"INFO" - Interesting events.Emphasizes the running process of the application.
SEASLOG_NOTICE (string)
"NOTICE" - Normal but significant events.Information that is more important than the INFO level during execution.
SEASLOG_WARNING (string)
"WARNING" - Exceptional occurrences that are not errors.Potentially aberrant information that needs attention and needs to be repaired.
SEASLOG_ERROR (string)
"ERROR" - Runtime errors that do not require immediate action but should typically.
SEASLOG_CRITICAL (string)
"CRITICAL" - Critical conditions.Need to be repaired immediately, and the program component is unavailable.
SEASLOG_ALERT (string)
"ALERT" - Action must be taken immediately.Immediate attention should be given to relevant personnel for emergency repairs.
SEASLOG_EMERGENCY (string)
"EMERGENCY" - System is unusable.
SEASLOG_DETAIL_ORDER_ASC (int)
1
SEASLOG_DETAIL_ORDER_DESC (int)
2
SEASLOG_APPENDER_FILE (int)
1
SEASLOG_APPENDER_TCP (int)
2
SEASLOG_APPENDER_UDP (int)
3
SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL (int)
1
SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN (int)
2
SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT (int)
1
SEASLOG_REQUEST_VARIABLE_REQUEST_URI (int)
2
SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD (int)
3
SEASLOG_REQUEST_VARIABLE_CLIENT_IP (int)
4


Exemplos

Exemplo #1 Get and set base path

<?php
$basePath1 = SeasLog::getBasePath();

SeasLog::setBasePath('/log/base_test');
$basePath2 = SeasLog::getBasePath();

var_dump($basePath1,$basePath2);

?>

O exemplo acima produzirá algo semelhante a:

string(12) "/var/log/www"
string(14) "/log/base_test"

Exemplo #2 Get and set logger

<?php
$lastLogger1 = SeasLog::getLastLogger();

SeasLog::setLogger('testModule/app1');
$lastLogger2 = SeasLog::getLastLogger();

var_dump($lastLogger1,$lastLogger2);

?>

O exemplo acima produzirá algo semelhante a:

string(7) "default"
string(15) "testModule/app1"

Exemplo #3 Fast write log

<?php
SeasLog::log(SEASLOG_ERROR,'this is a error test by ::log');
SeasLog::debug('this is a {userName} debug',array('{userName}' => 'neeke'));
SeasLog::info('this is a info log');
SeasLog::notice('this is a notice log');
SeasLog::warning('your {website} was down,please {action} it ASAP!',array('{website}' => 'github.com','{action}' => 'rboot'));
SeasLog::error('a error log');
SeasLog::critical('some thing was critical');
SeasLog::alert('yes this is a {messageName}',array('{messageName}' => 'alertMSG'));
SeasLog::emergency('Just now, the house next door was completely burnt out! {note}',array('{note}' => 'it`s a joke'));
?>

As the default, seaslog.default_template = "%T | %L | %P | %Q | %t | %M". That's mean,as the default,log record style is: `{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}`.

O exemplo acima produzirá algo semelhante a:

seaslog.appender = 1

2014-07-27 08:53:52 | ERROR | 23625 | 599159975a9ff | 1406422432.786 | this is a error test by log
2014-07-27 08:53:52 | DEBUG | 23625 | 599159975a9ff | 1406422432.786 | this is a neeke debug
2014-07-27 08:53:52 | INFO | 23625 | 599159975a9ff | 1406422432.787 | this is a info log
2014-07-27 08:53:52 | NOTICE | 23625 | 599159975a9ff | 1406422432.787 | this is a notice log
2014-07-27 08:53:52 | WARNING | 23625 | 599159975a9ff | 1406422432.787 | your github.com was down,please rboot it ASAP!
2014-07-27 08:53:52 | ERROR | 23625 | 599159975a9ff | 1406422432.787 | a error log
2014-07-27 08:53:52 | CRITICAL | 23625 | 599159975a9ff | 1406422432.787 | some thing was critical
2014-07-27 08:53:52 | EMERGENCY | 23625 | 599159975a9ff | 1406422432.787 | Just now, the house next door was completely burnt out! it is a joke

O exemplo acima produzirá algo semelhante a:

seaslog.appender = 2 or seaslog.appender = 3

The log style finally formatted such as:
<15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug
<14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log
<13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log

Exemplo #4 Fast count some type of log count value

SeasLog get count value of `grep -wc` use system pipe and return to PHP (array or int).

<?php
$countResult1 = SeasLog::analyzerCount();
$countResult2 = SeasLog::analyzerCount(SEASLOG_WARNING);
$countResult3 = SeasLog::analyzerCount(SEASLOG_ERROR,date('Ymd',time()));

var_dump($countResult1,$countResult2,$countResult3);

?>

O exemplo acima produzirá algo semelhante a:

array(8) {
  ["DEBUG"]=>
  int(3)
  ["INFO"]=>
  int(3)
  ["NOTICE"]=>
  int(3)
  ["WARNING"]=>
  int(3)
  ["ERROR"]=>
  int(6)
  ["CRITICAL"]=>
  int(3)
  ["ALERT"]=>
  int(3)
  ["EMERGENCY"]=>
  int(3)
}
int(7)
int(1)

Exemplo #5 Acquisit some type of log list

SeasLog get count value of `grep -w` use system pipe and return array to PHP.

<?php
$detailErrorArray = SeasLog::analyzerDetail(SEASLOG_ERROR);
var_dump($detailErrorArray);

var_dump(SeasLog::analyzerDetail(SEASLOG_ERROR,date('Ymd',time())));
?>

O exemplo acima produzirá algo semelhante a:

array(6) {
  [0] =>
  string(83) "2014-02-24 00:14:02 | ERROR | 8568 | 599157af4e937 | 1393172042.717 | test error 3 "
  [1] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8594 | 5991576584446 | 1393172044.104 | test error 3 "
  [2] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8620 | 1502697015147 | 1393172044.862 | test error 3 "
  [3] =>
  string(83) "2014-02-24 00:14:05 | ERROR | 8646 | 599159975a9ff | 1393172045.989 | test error 3 "
  [4] =>
  string(83) "2014-02-24 00:14:07 | ERROR | 8672 | 599159986ec28 | 1393172047.882 | test error 3 "
  [5] =>
  string(83) "2014-02-24 00:14:08 | ERROR | 8698 | 5991599981cec | 1393172048.736 | test error 3 "
}

array(2) {
  [0] =>
  string(83) "2014-02-24 00:14:02 | ERROR | 8568 | 599157af4e937 | 1393172042.717 | test error 3 "
  [1] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8594 | 5991576584446 | 1393172044.104 | test error 3 "
}


Seaslog Funções

Índice

  • seaslog_get_author — Get SeasLog author.
  • seaslog_get_version — Get SeasLog version.


Get SeasLog author.

  • « Seaslog Funções
  • seaslog_get_version »
  • PHP Manual
  • Seaslog Funções
  • Get SeasLog author.

seaslog_get_author

(PECL seaslog >=1.0.0)

seaslog_get_author — Get SeasLog author.

Descrição

seaslog_get_author(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return SeasLog author as string.

Exemplos

Exemplo #1 seaslog_get_author() example

<?php

var_dump(seaslog_get_author());

?>

O exemplo acima produzirá algo semelhante a:

string(29) "Chitao.Gao  [ neeke@php.net ]"


Get SeasLog version.

  • « seaslog_get_author
  • SeasLog »
  • PHP Manual
  • Seaslog Funções
  • Get SeasLog version.

seaslog_get_version

(PECL seaslog >=1.0.0)

seaslog_get_version — Get SeasLog version.

Descrição

seaslog_get_version(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return SeasLog version (SEASLOG_VERSION) as string.

Exemplos

Exemplo #1 seaslog_get_version() example

<?php

var_dump(seaslog_get_version());

?>

O exemplo acima produzirá algo semelhante a:

string(5) "1.8.4"


The SeasLog class

(PECL seaslog >=1.0.0)

Introdução

Resumo da classe

class SeasLog {
/* Métodos */
public static alert(string $message, array $content = ?, string $logger = ?): bool
public static analyzerCount(string $level, string $log_path = ?, string $key_word = ?): mixed
public static analyzerDetail(
string $level,
string $log_path = ?,
string $key_word = ?,
int $start = ?,
int $limit = ?,
int $order = ?
): mixed
public static closeLoggerStream(int $model, string $logger): bool
public static critical(string $message, array $content = ?, string $logger = ?): bool
public static debug(string $message, array $content = ?, string $logger = ?): bool
public __destruct()
public static emergency(string $message, array $content = ?, string $logger = ?): bool
public static error(string $message, array $content = ?, string $logger = ?): bool
public static flushBuffer(): bool
public static Seaslog::getBasePath(): string
public static getBuffer(): array
public static getBufferEnabled(): bool
public static getDatetimeFormat(): string
public static getLastLogger(): string
public static getRequestID(): string
public static getRequestVariable(int $key): bool
public static info(string $message, array $content = ?, string $logger = ?): bool
public static log(
string $level,
string $message = ?,
array $content = ?,
string $logger = ?
): bool
public static notice(string $message, array $content = ?, string $logger = ?): bool
public static setBasePath(string $base_path): bool
public static setDatetimeFormat(string $format): bool
public static setLogger(string $logger): bool
public static setRequestID(string $request_id): bool
public static setRequestVariable(int $key, string $value): bool
public static warning(string $message, array $content = ?, string $logger = ?): bool
}

Índice

  • SeasLog::alert — Record alert log information
  • SeasLog::analyzerCount — Get log count by level, log_path and key_word
  • SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order
  • SeasLog::closeLoggerStream — Manually release stream flow from logger
  • SeasLog::__construct — Description
  • SeasLog::critical — Record critical log information
  • SeasLog::debug — Record debug log information
  • SeasLog::__destruct — Description
  • SeasLog::emergency — Record emergency log information
  • SeasLog::error — Record error log information
  • SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
  • SeasLog::getBasePath — Get SeasLog base path.
  • SeasLog::getBuffer — Get the logs buffer in memory as array
  • SeasLog::getBufferEnabled — Determin if buffer enabled
  • SeasLog::getDatetimeFormat — Get SeasLog datetime format style
  • SeasLog::getLastLogger — Get SeasLog last logger path
  • SeasLog::getRequestID — Get SeasLog request_id differentiated requests
  • SeasLog::getRequestVariable — Get SeasLog request variable
  • SeasLog::info — Record info log information
  • SeasLog::log — The Common Record Log Function
  • SeasLog::notice — Record notice log information
  • SeasLog::setBasePath — Set SeasLog base path
  • SeasLog::setDatetimeFormat — Set SeasLog datetime format style
  • SeasLog::setLogger — Set SeasLog logger name
  • SeasLog::setRequestID — Set SeasLog request_id differentiated requests
  • SeasLog::setRequestVariable — Manually set SeasLog request variable
  • SeasLog::warning — Record warning log information


Record alert log information

  • « SeasLog
  • SeasLog::analyzerCount »
  • PHP Manual
  • SeasLog
  • Record alert log information

SeasLog::alert

(PECL seaslog >=1.0.0)

SeasLog::alert — Record alert log information

Descrição

public static SeasLog::alert(string $message, array $content = ?, string $logger = ?): bool

Record alert log information.

Nota:

"ALERT" - Action must be taken immediately. Immediate attention should be given to relevant personnel for emergency repairs.

Parâmetros

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valor Retornado

Return TRUE on record log information success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::alert() example

<?php

var_dump(SeasLog::alert('log message'));

//with content
var_dump(SeasLog::alert('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::alert('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Veja Também

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Get log count by level, log_path and key_word

  • « SeasLog::alert
  • SeasLog::analyzerDetail »
  • PHP Manual
  • SeasLog
  • Get log count by level, log_path and key_word

SeasLog::analyzerCount

(PECL seaslog >=1.1.6)

SeasLog::analyzerCount — Get log count by level, log_path and key_word

Descrição

public static SeasLog::analyzerCount(string $level, string $log_path = ?, string $key_word = ?): mixed

`SeasLog` get count value of `grep -ai '{level}' | grep -aic '{key_word}'` use system pipe and return to PHP (array or int).

Parâmetros

level

String. The log information level.

log_path

String. The log information path.

key_word

String. The search key word for log information.

Valor Retornado

If `level` is SEASLOG_ALL or Empty, return all levels count as `array`. If `level` is SEASLOG_INFO or the other level, return count as `int`.

Exemplos

Exemplo #1 SeasLog::analyzerCount() example

<?php

$countResult1 = SeasLog::analyzerCount();

//with `level`
$countResult2 = SeasLog::analyzerCount(SEASLOG_DEBUG);

//with `level` and `log_path`
$countResult3 = SeasLog::analyzerCount(SEASLOG_ERROR,date('Ymd',time()));

//with `level` and `key_word`
$countResult4 = SeasLog::analyzerCount(SEASLOG_DEBUG,NULL,'accessToken');

var_dump($countResult1,$countResult2,$countResult3,$countResult4);

?>

O exemplo acima produzirá algo semelhante a:

array(8) {
  ["DEBUG"]=>
  int(180)
  ["INFO"]=>
  int(214)
  ["NOTICE"]=>
  int(0)
  ["WARNING"]=>
  int(0)
  ["ERROR"]=>
  int(228)
  ["CRITICAL"]=>
  int(244)
  ["ALERT"]=>
  int(1)
  ["EMERGENCY"]=>
  int(0)
}

int(180)

int(228)

int(29)

Veja Também

  • SeasLog::analyzerDetail() - Get log detail by level, log_path, key_word, start, limit, order


Get log detail by level, log_path, key_word, start, limit, order

  • « SeasLog::analyzerCount
  • SeasLog::closeLoggerStream »
  • PHP Manual
  • SeasLog
  • Get log detail by level, log_path, key_word, start, limit, order

SeasLog::analyzerDetail

(PECL seaslog >=1.1.6)

SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order

Descrição

public static SeasLog::analyzerDetail(
string $level,
string $log_path = ?,
string $key_word = ?,
int $start = ?,
int $limit = ?,
int $order = ?
): mixed

`SeasLog` get results of `grep -ai '{level}' | grep -ai '{key_word}' | sed -n '{start},{limit}'p` use system pipe and return array to PHP.

Parâmetros

level

String. The log information level.

log_path

String. The log information path.

key_word

String. The search key word for log information.

start

Int. Default is `1`.

limit

Int. Default is `20`.

order

Int. Default is SEASLOG_DETAIL_ORDER_ASC. See also:

  • SEASLOG_DETAIL_ORDER_ASC
  • SEASLOG_DETAIL_ORDER_DESC

Valor Retornado

Return results as array.

Nota:

When `start`,`limit` is not NULL and in Windows, SeasLog will threw exception with message 'Param start and limit don't support Windows'.

Exemplos

Exemplo #1 SeasLog::analyzerDetail() example

<?php

$result1 = SeasLog::analyzerDetail(SEASLOG_ERROR);

//with `logger` and `key_word`
$result2 = SeasLog::analyzerDetail(SEASLOG_ERROR,'test/logger/','neeke');

//with `start` and `limit`
$result3 = SeasLog::analyzerDetail(SEASLOG_ERROR,'test/logger/','neeke',1,2);

var_dump($result1,$result2,$result3);
?>

O exemplo acima produzirá algo semelhante a:

array(20) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
  [2]=>
  string(93) "2018-07-09 12:52:55 | ERROR | 12265 | 5b42ea277b8d4 | 1531111975.506 | log message from neeke"
  [3]=>
  string(104) "2018-07-09 12:52:55 | ERROR | 12274 | 5b42ea27db5dc | 1531111975.898 | log message from the other people"
...
}

array(3) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
  [2]=>
  string(93) "2018-07-09 12:52:55 | ERROR | 12265 | 5b42ea277b8d4 | 1531111975.506 | log message from neeke"
}

array(2) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
}

Veja Também

  • SeasLog::analyzerCount() - Get log count by level, log_path and key_word


Manually release stream flow from logger

  • « SeasLog::analyzerDetail
  • SeasLog::__construct »
  • PHP Manual
  • SeasLog
  • Manually release stream flow from logger

SeasLog::closeLoggerStream

(PECL seaslog >=1.8.6)

SeasLog::closeLoggerStream — Manually release stream flow from logger

Descrição

public static SeasLog::closeLoggerStream(int $model, string $logger): bool

Manually release stream flow from logger. SeasLog caches the stream handle opened by the log logger to save the overhead of creating a stream. The handle will be automatically released at the end of the request. If in CLI mode, the process will also automatically release when it exits. Or you can use the following functions to manually release(manually release function needs to update SeasLog 1.8.6 or updated version).

Parâmetros

model

Constant int.

  • SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL
  • SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN

logger

The logger name.

Valor Retornado

Return TRUE on released stream flow success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::closeLoggerStream() example

<?php

var_dump(SeasLog::closeLoggerStream());
var_dump(SeasLog::closeLoggerStream(SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL));
var_dump(SeasLog::closeLoggerStream(SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN, 'logger_name'));

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)

Veja Também

  • SeasLog::setLogger() - Set SeasLog logger name
  • SeasLog::getLastLogger() - Get SeasLog last logger path


Description

  • « SeasLog::closeLoggerStream
  • SeasLog::critical »
  • PHP Manual
  • SeasLog
  • Description

SeasLog::__construct

(PECL seaslog >=1.0.0)

SeasLog::__construct — Description

Descrição

public SeasLog::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 SeasLog::__construct() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Record critical log information

  • « SeasLog::__construct
  • SeasLog::debug »
  • PHP Manual
  • SeasLog
  • Record critical log information

SeasLog::critical

(PECL seaslog >=1.0.0)

SeasLog::critical — Record critical log information

Descrição

public static SeasLog::critical(string $message, array $content = ?, string $logger = ?): bool

Record critical log information.

Nota:

"CRITICAL" - Critical conditions.Need to be repaired immediately, and the program component is unavailable.

Parâmetros

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valor Retornado

Return TRUE on record log information success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::critical() example

<?php

var_dump(SeasLog::critical('log message'));

//with content
var_dump(SeasLog::critical('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::critical('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Veja Também

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Record debug log information

  • « SeasLog::critical
  • SeasLog::__destruct »
  • PHP Manual
  • SeasLog
  • Record debug log information

SeasLog::debug

(PECL seaslog >=1.0.0)

SeasLog::debug — Record debug log information

Descrição

public static SeasLog::debug(string $message, array $content = ?, string $logger = ?): bool

Record debug log information.

Nota:

"DEBUG" - Detailed debug information.Fine-grained information events.

Parâmetros

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valor Retornado

Return TRUE on record log information success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::debug() example

<?php

var_dump(SeasLog::debug('log message'));

//with content
var_dump(SeasLog::debug('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::debug('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Veja Também

  • seaslog.default_template
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Description

  • « SeasLog::debug
  • SeasLog::emergency »
  • PHP Manual
  • SeasLog
  • Description

SeasLog::__destruct

(PECL seaslog >=1.0.0)

SeasLog::__destruct — Description

Descrição

public SeasLog::__destruct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 SeasLog::__destruct() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Record emergency log information

  • « SeasLog::__destruct
  • SeasLog::error »
  • PHP Manual
  • SeasLog
  • Record emergency log information

SeasLog::emergency

(PECL seaslog >=1.0.0)

SeasLog::emergency — Record emergency log information

Descrição

public static SeasLog::emergency(string $message, array $content = ?, string $logger = ?): bool

Record emergency log information.

Nota:

"EMERGENCY" - System is unusable.

Parâmetros

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valor Retornado

Return TRUE on record log information success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::emergency() example

<?php

var_dump(SeasLog::emergency('log message'));

//with content
var_dump(SeasLog::emergency('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::emergency('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Veja Também

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::log() - The Common Record Log Function


Record error log information

  • « SeasLog::emergency
  • SeasLog::flushBuffer »
  • PHP Manual
  • SeasLog
  • Record error log information

SeasLog::error

(PECL seaslog >=1.0.0)

SeasLog::error — Record error log information

Descrição

public static SeasLog::error(string $message, array $content = ?, string $logger = ?): bool

Record error log information.

Nota:

"ERROR" - Runtime errors that do not require immediate action but should typically.

Parâmetros

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valor Retornado

Return TRUE on record log information success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::error() example

<?php

var_dump(SeasLog::error('log message'));

//with content
var_dump(SeasLog::error('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::error('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Veja Também

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

  • « SeasLog::error
  • SeasLog::getBasePath »
  • PHP Manual
  • SeasLog
  • Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

SeasLog::flushBuffer

(PECL seaslog >=1.0.0)

SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

Descrição

public static SeasLog::flushBuffer(): bool

Flush logs buffer by seaslog.appender: dump to file, or send to remote api with tcp/udp.

Nota:

See also: seaslog.appender_retry seaslog.remote_host seaslog.remote_port

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return TRUE on flush buffer success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::flushBuffer() example

<?php

SeasLog::info('info log');
SeasLog::debug('debug log');
var_dump(SeasLog::getBuffer());
var_dump(SeasLog::flushBuffer());
var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(79) "2018-07-07 10:47:58 | INFO | 71910 | 5b4029ded6009 | 1530931678.877 | info log
"
    [1]=>
    string(81) "2018-07-07 10:47:58 | DEBUG | 71910 | 5b4029ded6009 | 1530931678.877 | debug log
"
  }
}
bool(true)
array(0) {
}

Veja Também

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBufferEnabled() - Determin if buffer enabled
  • SeasLog::getBuffer() - Get the logs buffer in memory as array


Get SeasLog base path.

  • « SeasLog::flushBuffer
  • SeasLog::getBuffer »
  • PHP Manual
  • SeasLog
  • Get SeasLog base path.

SeasLog::getBasePath

(PECL seaslog >=1.0.0)

SeasLog::getBasePath — Get SeasLog base path.

Descrição

public static Seaslog::getBasePath(): string

Use the Function SeasLog::getBasePath() will get the value of seaslog.default_basepath what configured in php.ini(seaslog.ini).

If you use Seaslog::setBasePath(), will change the result.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return seaslog.default_basepath as string.

Exemplos

Exemplo #1 SeasLog::getBasePath() example

<?php

var_dump(SeasLog::getBasePath());

?>

O exemplo acima produzirá algo semelhante a:

string(12) "/var/log/www"


Get the logs buffer in memory as array

  • « SeasLog::getBasePath
  • SeasLog::getBufferEnabled »
  • PHP Manual
  • SeasLog
  • Get the logs buffer in memory as array

SeasLog::getBuffer

(PECL seaslog >=1.0.0)

SeasLog::getBuffer — Get the logs buffer in memory as array

Descrição

public static SeasLog::getBuffer(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return an array from logs buffer in memory.

Exemplos

Exemplo #1 SeasLog::getBuffer() example

<?php

var_dump(SeasLog::info('info log'));
var_dump(SeasLog::debug('debug log'));
var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(79) "2018-07-07 10:43:32 | INFO | 71785 | 5b4028d4c58d5 | 1530931412.810 | info log
"
    [1]=>
    string(81) "2018-07-07 10:43:32 | DEBUG | 71785 | 5b4028d4c58d5 | 1530931412.810 | debug log
"
  }
}

Veja Também

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBufferEnabled() - Determin if buffer enabled
  • SeasLog::flushBuffer() - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp


Determin if buffer enabled

  • « SeasLog::getBuffer
  • SeasLog::getDatetimeFormat »
  • PHP Manual
  • SeasLog
  • Determin if buffer enabled

SeasLog::getBufferEnabled

(PECL seaslog >=1.0.0)

SeasLog::getBufferEnabled — Determin if buffer enabled

Descrição

public static SeasLog::getBufferEnabled(): bool

Result join seaslog.use_buffer and seaslog.buffer_disabled_in_cli.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return TRUE on seaslog.use_buffer is true. If switch seaslog.buffer_disabled_in_cli on, and running in cli, seaslog.use_buffer setting will be discarded, Seaslog write to the Data Store IMMEDIATELY.

Exemplos

Exemplo #1 SeasLog::getBufferEnabled() example

<?php

var_dump(SeasLog::getBufferEnabled());

?>

O exemplo acima produzirá algo semelhante a:

bool(false)

Veja Também

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBuffer() - Get the logs buffer in memory as array
  • SeasLog::flushBuffer() - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp


Get SeasLog datetime format style

  • « SeasLog::getBufferEnabled
  • SeasLog::getLastLogger »
  • PHP Manual
  • SeasLog
  • Get SeasLog datetime format style

SeasLog::getDatetimeFormat

(PECL seaslog >=1.0.0)

SeasLog::getDatetimeFormat — Get SeasLog datetime format style

Descrição

public static SeasLog::getDatetimeFormat(): string

Get SeasLog datetime format style. Use the Function SeasLog::getDatetimeFormat() will get the value of seaslog.default_datetime_format what configured in php.ini(seaslog.ini).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Get SeasLog datetime format style of seaslog.default_datetime_format. Use the Function SeasLog::setDatetimeFormat() will change this value.

Exemplos

Exemplo #1 SeasLog::getDatetimeFormat() example

<?php

var_dump(SeasLog::getDateTimeFormat());
var_dump(SeasLog::setDateTimeFormat('Ymd His'));
var_dump(SeasLog::getDateTimeFormat());

?>

O exemplo acima produzirá algo semelhante a:

string(11) "Y-m-d H:i:s"
bool(true)
string(7) "Ymd His"

Veja Também

  • SeasLog::setDatetimeFormat() - Set SeasLog datetime format style


Get SeasLog last logger path

  • « SeasLog::getDatetimeFormat
  • SeasLog::getRequestID »
  • PHP Manual
  • SeasLog
  • Get SeasLog last logger path

SeasLog::getLastLogger

(PECL seaslog >=1.0.0)

SeasLog::getLastLogger — Get SeasLog last logger path

Descrição

public static SeasLog::getLastLogger(): string

Use the Function SeasLog::getLastLogger() will get the value of seaslog.default_logger what configured in php.ini(seaslog.ini).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Use the Function SeasLog::setLogger() will change the value of function SeasLog::getLastLogger().

Exemplos

Exemplo #1 SeasLog::getLastLogger() example

<?php

var_dump(SeasLog::getLastLogger());
SeasLog::setLogger('theNewLogger');
var_dump(SeasLog::getLastLogger());
?>

O exemplo acima produzirá algo semelhante a:

string(7) "default"
string(12) "theNewLogger"

Veja Também

  • SeasLog::setLogger() - Set SeasLog logger name


Get SeasLog request_id differentiated requests

  • « SeasLog::getLastLogger
  • SeasLog::getRequestVariable »
  • PHP Manual
  • SeasLog
  • Get SeasLog request_id differentiated requests

SeasLog::getRequestID

(PECL seaslog >=1.0.0)

SeasLog::getRequestID — Get SeasLog request_id differentiated requests

Descrição

public static SeasLog::getRequestID(): string

To distinguish a single request, such as not invoking the SeasLog::setRequestId() function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return string generated by the built-in `static char *get_uniqid ()` function, or setted by SeasLog::setRequestId() function.

Exemplos

Exemplo #1 SeasLog::getRequestID() example

<?php

var_dump(SeasLog::getRequestID());
var_dump(SeasLog::setRequestID('reqeust_id_test_'.time()));
var_dump(SeasLog::getRequestID());

?>

O exemplo acima produzirá algo semelhante a:

string(13) "5b3f21a209519"
bool(true)
string(26) "reqeust_id_test_1530864034"

Veja Também

  • SeasLog::setRequestID() - Set SeasLog request_id differentiated requests
  • The Variable `%Q` in Seaslog Default Variable Table.


Get SeasLog request variable

  • « SeasLog::getRequestID
  • SeasLog::info »
  • PHP Manual
  • SeasLog
  • Get SeasLog request variable

SeasLog::getRequestVariable

(PECL seaslog >=1.9.0)

SeasLog::getRequestVariable — Get SeasLog request variable

Descrição

public static SeasLog::getRequestVariable(int $key): bool

Get SeasLog request variable.

Parâmetros

key

Constant int.

  • SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT
  • SEASLOG_REQUEST_VARIABLE_REQUEST_URI
  • SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD
  • SEASLOG_REQUEST_VARIABLE_CLIENT_IP

Valor Retornado

Return request variable value on set success.

Exemplos

Exemplo #1 SeasLog::getRequestVariable() example

<?php

$sDomainPort = 'domain:port';
$sRequestUri = 'uri';
$sRequestMethod = 'method';
$sClientIp = 'client_ip';

$iErrorKey = 1000;

$oSeasLog = new SeasLog();

var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT, $sDomainPort));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI, $sRequestUri));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD, $sRequestMethod));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP, $sClientIp));

var_dump($oSeasLog->setRequestVariable($iErrorKey,NULL));

var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT) == $sDomainPort);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI) == $sRequestUri);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD) == $sRequestMethod);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP) == $sClientIp);

var_dump($oSeasLog->getRequestVariable($iErrorKey));

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)

Veja Também

  • SeasLog::setRequestVariable() - Manually set SeasLog request variable


Record info log information

  • « SeasLog::getRequestVariable
  • SeasLog::log »
  • PHP Manual
  • SeasLog
  • Record info log information

SeasLog::info

(PECL seaslog >=1.0.0)

SeasLog::info — Record info log information

Descrição

public static SeasLog::info(string $message, array $content = ?, string $logger = ?): bool

Record info log information.

Nota:

"INFO" - Interesting events.Emphasizes the running process of the application.

Parâmetros

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valor Retornado

Return TRUE on record log information success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::info() example

<?php

var_dump(SeasLog::info('log message'));

//with content
var_dump(SeasLog::info('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::info('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Veja Também

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


The Common Record Log Function

  • « SeasLog::info
  • SeasLog::notice »
  • PHP Manual
  • SeasLog
  • The Common Record Log Function

SeasLog::log

(PECL seaslog >=1.0.0)

SeasLog::log — The Common Record Log Function

Descrição

public static SeasLog::log(
string $level,
string $message = ?,
array $content = ?,
string $logger = ?
): bool

The Common Record Log Function.

Parâmetros

level

Can use level in:

  • SEASLOG_DEBUG
  • SEASLOG_INFO
  • SEASLOG_NOTICE
  • SEASLOG_WARNING
  • SEASLOG_ERROR
  • SEASLOG_CRITICAL
  • SEASLOG_ALERT
  • SEASLOG_EMERGENCY
Or you can create a new level self-help.

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valor Retornado

Return TRUE on record log information success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::log() example

<?php

var_dump(SeasLog::log(SEASLOG_INFO,'info log'));
var_dump(SeasLog::getBuffer());

//create a new level self-help.
var_dump(SeasLog::log('MySelfLevel','info log'));
var_dump(SeasLog::getBuffer());

//with `content`
var_dump(SeasLog::log('MySelfLevel','info log {NAME}',array('NAME' => 'neeke')));
var_dump(SeasLog::getBuffer());

//with `logger`
var_dump(SeasLog::log('MySelfLevel','info log {NAME}',array('NAME' => 'neeke'),'tmp_logger'));
var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(79) "2018-07-07 11:12:37 | INFO | 72427 | 5b402fa56a2ea | 1530933157.436 | info log
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(86) "2018-07-07 11:13:59 | MySelfLevel | 72470 | 5b402ff781c5e | 1530933239.532 | info log
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:28:12 | MySelfLevel | 72833 | 5b40334ce6a2f | 1530934092.946 | info log neeke
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(86) "2018-07-07 11:20:12 | INFO | 72616 | 5b40316c3641e | 1530933612.222 | info log neeke
"
  }
}

Veja Também

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information


Record notice log information

  • « SeasLog::log
  • SeasLog::setBasePath »
  • PHP Manual
  • SeasLog
  • Record notice log information

SeasLog::notice

(PECL seaslog >=1.0.0)

SeasLog::notice — Record notice log information

Descrição

public static SeasLog::notice(string $message, array $content = ?, string $logger = ?): bool

Record notice log information.

Nota:

"NOTICE" - Normal but significant events.Information that is more important than the INFO level during execution.

Parâmetros

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valor Retornado

Return TRUE on record log information success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::notice() example

<?php

var_dump(SeasLog::notice('log message'));

//with content
var_dump(SeasLog::notice('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::notice('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Veja Também

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Set SeasLog base path

  • « SeasLog::notice
  • SeasLog::setDatetimeFormat »
  • PHP Manual
  • SeasLog
  • Set SeasLog base path

SeasLog::setBasePath

(PECL seaslog >=1.0.0)

SeasLog::setBasePath — Set SeasLog base path

Descrição

public static SeasLog::setBasePath(string $base_path): bool

Set SeasLog base path.

Parâmetros

base_path

String.

Valor Retornado

Return TRUE on setted base path success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::setBasePath() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Set SeasLog datetime format style

  • « SeasLog::setBasePath
  • SeasLog::setLogger »
  • PHP Manual
  • SeasLog
  • Set SeasLog datetime format style

SeasLog::setDatetimeFormat

(PECL seaslog >=1.0.0)

SeasLog::setDatetimeFormat — Set SeasLog datetime format style

Descrição

public static SeasLog::setDatetimeFormat(string $format): bool

Set SeasLog datetime format style.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

format

String. Such as `Y-m-d H:i:s` or `Ymd His`. See also first param `format` at date().

Valor Retornado

Return TRUE on setted datetime format success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::setDatetimeFormat() example

<?php

var_dump(SeasLog::setDateTimeFormat('Ymd His'));

?>

O exemplo acima produzirá algo semelhante a:

bool(true)

Veja Também

  • SeasLog::getDateTimeFormat() - Get SeasLog datetime format style


Set SeasLog logger name

  • « SeasLog::setDatetimeFormat
  • SeasLog::setRequestID »
  • PHP Manual
  • SeasLog
  • Set SeasLog logger name

SeasLog::setLogger

(PECL seaslog >=1.0.0)

SeasLog::setLogger — Set SeasLog logger name

Descrição

public static SeasLog::setLogger(string $logger): bool

Use the Function SeasLog::setLogger() will change the value of function SeasLog::getLastLogger(). Than's mean, SeasLog will record loginfo into the logger directory.

Parâmetros

logger

Logger name.

Valor Retornado

Return TRUE on created logger disectory success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::setLogger() example

<?php

var_dump(SeasLog::setLogger('testModule/testLogger'));

?>

O exemplo acima produzirá algo semelhante a:

bool(true)

Veja Também

  • SeasLog::getLastLogger() - Get SeasLog last logger path
  • SeasLog::closeLoggerStream() - Manually release stream flow from logger


Set SeasLog request_id differentiated requests

  • « SeasLog::setLogger
  • SeasLog::setRequestVariable »
  • PHP Manual
  • SeasLog
  • Set SeasLog request_id differentiated requests

SeasLog::setRequestID

(PECL seaslog >=1.0.0)

SeasLog::setRequestID — Set SeasLog request_id differentiated requests

Descrição

public static SeasLog::setRequestID(string $request_id): bool

To distinguish a single request, such as not invoking the SeasLog::setRequestId() function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.

Parâmetros

request_id

String.

Valor Retornado

Return TRUE on set request_id success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::setRequestID() example

<?php

var_dump(SeasLog::setRequestID(time() . rand()));

?>

O exemplo acima produzirá algo semelhante a:

bool(true)

Veja Também

  • SeasLog::getRequestID() - Get SeasLog request_id differentiated requests


Manually set SeasLog request variable

  • « SeasLog::setRequestID
  • SeasLog::warning »
  • PHP Manual
  • SeasLog
  • Manually set SeasLog request variable

SeasLog::setRequestVariable

(PECL seaslog >=1.9.0)

SeasLog::setRequestVariable — Manually set SeasLog request variable

Descrição

public static SeasLog::setRequestVariable(int $key, string $value): bool

Manually set SeasLog request variable.

Parâmetros

key

Constant int.

  • SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT
  • SEASLOG_REQUEST_VARIABLE_REQUEST_URI
  • SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD
  • SEASLOG_REQUEST_VARIABLE_CLIENT_IP

value

The request variable value.

Valor Retornado

Return TRUE on set success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::setRequestVariable() example

<?php

$sDomainPort = 'domain:port';
$sRequestUri = 'uri';
$sRequestMethod = 'method';
$sClientIp = 'client_ip';

$iErrorKey = 1000;

$oSeasLog = new SeasLog();

var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT, $sDomainPort));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI, $sRequestUri));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD, $sRequestMethod));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP, $sClientIp));

var_dump($oSeasLog->setRequestVariable($iErrorKey,NULL));

var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT) == $sDomainPort);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI) == $sRequestUri);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD) == $sRequestMethod);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP) == $sClientIp);

var_dump($oSeasLog->getRequestVariable($iErrorKey));

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)

Veja Também

  • SeasLog::getRequestVariable() - Get SeasLog request variable


Record warning log information

  • « SeasLog::setRequestVariable
  • SPL »
  • PHP Manual
  • SeasLog
  • Record warning log information

SeasLog::warning

(PECL seaslog >=1.0.0)

SeasLog::warning — Record warning log information

Descrição

public static SeasLog::warning(string $message, array $content = ?, string $logger = ?): bool

Record warning log information.

Nota:

"WARNING" - Exceptional occurrences that are not errors. Potentially aberrant information that needs attention and needs to be repaired.

Parâmetros

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valor Retornado

Return TRUE on record log information success, FALSE on failure.

Exemplos

Exemplo #1 SeasLog::warning() example

<?php

var_dump(SeasLog::warning('log message'));

//with content
var_dump(SeasLog::warning('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::warning('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Veja Também

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Standard PHP Library (SPL)

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Estruturas de Dados
    • SplDoublyLinkedList — A classe SplDoublyLinkedList
    • SplStack — A classe SplStack
    • SplQueue — A classe SplQueue
    • SplHeap — A classe SplHeap
    • SplMaxHeap — A classe SplMaxHeap
    • SplMinHeap — A classe SplMinHeap
    • SplPriorityQueue — A classe SplPriorityQueue
    • SplFixedArray — A classe SplFixedArray
    • SplObjectStorage — A classe SplObjectStorage
  • Iteradores
    • AppendIterator — A classe AppendIterator
    • ArrayIterator — A classe ArrayIterator
    • CachingIterator — A classe CachingIterator
    • CallbackFilterIterator — A classe CallbackFilterIterator
    • DirectoryIterator — A classe DirectoryIterator
    • EmptyIterator — A classe EmptyIterator
    • FilesystemIterator — A classe FilesystemIterator
    • FilterIterator — A classe FilterIterator
    • GlobIterator — A classe GlobIterator
    • InfiniteIterator — A classe InfiniteIterator
    • IteratorIterator — A classe IteratorIterator
    • LimitIterator — A classe LimitIterator
    • MultipleIterator — A classe MultipleIterator
    • NoRewindIterator — A classe NoRewindIterator
    • ParentIterator — A classe ParentIterator
    • RecursiveArrayIterator — A classe RecursiveArrayIterator
    • RecursiveCachingIterator — A classe RecursiveCachingIterator
    • RecursiveCallbackFilterIterator — A classe RecursiveCallbackFilterIterator
    • RecursiveDirectoryIterator — A classe RecursiveDirectoryIterator
    • RecursiveFilterIterator — A classe RecursiveFilterIterator
    • RecursiveIteratorIterator — Classe RecursiveIteratorIterator
    • RecursiveRegexIterator — A classe RecursiveRegexIterator
    • RecursiveTreeIterator — A classe RecursiveTreeIterator
    • RegexIterator — A classe RegexIterator
  • Interfaces
    • Countable — Interface Countable
    • OuterIterator — A interface OuterIterator
    • RecursiveIterator — A interface RecursiveIterator
    • SeekableIterator — A interface SeekableIterator
  • Exceções
    • BadFunctionCallException — A classe BadFunctionCallException
    • BadMethodCallException — A classe BadMethodCallException
    • DomainException — A classe DomainException
    • InvalidArgumentException — A classe InvalidArgumentException
    • LengthException — A classe LengthException
    • LogicException — A classe LogicException
    • OutOfBoundsException — A classe OutOfBoundsException
    • OutOfRangeException — A classe OutOfRangeException
    • OverflowException — A classe OverflowException
    • RangeException — A classe RangeException
    • RuntimeException — A classe RuntimeException
    • UnderflowException — A classe UnderflowException
    • UnexpectedValueException — A classe UnexpectedValueException
  • Funções da SPL
    • class_implements — Retorna as interfaces que são implementadas pela classe ou interface fornecida
    • class_parents — Retorna as classes pai da classe fornecida
    • class_uses — Retorna os traits usados pela classe fornecida
    • iterator_apply — Chama uma função para cada elemento em um iterador
    • iterator_count — Conta os elementos em um iterador
    • iterator_to_array — Copia o iterador em um array
    • spl_autoload_call — Tenta todas as funções __autoload() registradas para carregar a classe solicitada
    • spl_autoload_extensions — Registra e retorna as extensões de arquivo padrão para spl_autoload
    • spl_autoload_functions — Retorna todas as funções __autoload() registradas
    • spl_autoload_register — Registra a função dada como implementação __autoload()
    • spl_autoload_unregister — Desregistra uma função dada como implementação de __autoload()
    • spl_autoload — Implementação padrão para __autoload()
    • spl_classes — Retorna as classes da SPL disponíveis
    • spl_object_hash — Retorna o ID de hash para o objeto fornecido
    • spl_object_id — Retorna o identificador inteiro do objeto fornecido
  • Manipulação de Arquivos
    • SplFileInfo — A classe SplFileInfo
    • SplFileObject — A classe SplFileObject
    • SplTempFileObject — A classe SplTempFileObject
  • Classes e Interfaces Diversas
    • ArrayObject — A classe ArrayObject
    • SplObserver — A interface SplObserver
    • SplSubject — A interface SplSubject


Introdução

A Standard PHP Library (SPL) é uma coleção de interfaces e classes destinadas a resolver problemas comuns.

A SPL fornece um conjunto de estruturas de dados padrão, um conjunto de iteradores para percorrer objetos, um conjunto de interfaces, um conjunto de exceções padrão e algumas classes para trabalhar com arquivos, além de um conjunto de funções como spl_autoload_register().


Estruturas de Dados

Índice

  • SplDoublyLinkedList
  • SplStack
  • SplQueue
  • SplHeap
  • SplMaxHeap
  • SplMinHeap
  • SplPriorityQueue
  • SplFixedArray
  • SplObjectStorage

SPL fornece um conjunto de estruturas de dados padrão. Elas são agrupadas aqui de acordo com sua implementação subjacente, que geralmente define seu campo de aplicação geral.

Listas Duplamente Encadeadas

Uma Lista Duplamente Encadeada (DLL) é uma lista de nós vinculados em ambas as direções entre si. As operações de iteração, acesso a ambas as extremidades, adição ou remoção de nós têm um custo de O(1) quando a estrutura subjacente é uma DLL. Portanto, ela fornece uma implementação decente para pilhas e filas.

  • SplDoublyLinkedList
    • SplStack
    • SplQueue

Heaps

Heaps são estruturas semelhantes a árvores que seguem a propriedade de heap: cada nó é maior ou igual aos seus filhos, quando comparados usando o método de comparação implementado, que é global para o heap.

  • SplHeap
    • SplMaxHeap
    • SplMinHeap
  • SplPriorityQueue

Arrays

Arrays são estruturas que armazenam os dados de forma contínua, acessíveis via índices. Não os confunda com arrays PHP: os arrays PHP são, na verdade implementados como tabelas de hash ordenadas.

  • SplFixedArray

Map

Um mapa é uma estrutura de dados que contém pares chave-valor. Os arrays PHP podem ser vistos como mapas de inteiros/strings para valores. SPL fornece um mapa de objetos para dados. Esse mapa também pode ser usado como um conjunto de objetos.

  • SplObjectStorage


A classe SplDoublyLinkedList

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

A classe SplDoublyLinkedList fornece as principais funcionalidades de uma lista duplamente encadeada.

Resumo da classe

class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializable {
/* Constantes */
public const int IT_MODE_LIFO;
public const int IT_MODE_FIFO;
public const int IT_MODE_DELETE;
public const int IT_MODE_KEEP;
/* Métodos */
public add(int $index, mixed $value): void
public bottom(): mixed
public count(): int
public current(): mixed
public getIteratorMode(): int
public isEmpty(): bool
public key(): int
public next(): void
public offsetExists(int $index): bool
public offsetGet(int $index): mixed
public offsetSet(?int $index, mixed $value): void
public offsetUnset(int $index): void
public pop(): mixed
public prev(): void
public push(mixed $value): void
public rewind(): void
public serialize(): string
public setIteratorMode(int $mode): int
public shift(): mixed
public top(): mixed
public unserialize(string $data): void
public unshift(mixed $value): void
public valid(): bool
}

Constantes pré-definidas

Direção da Iteração

SplDoublyLinkedList::IT_MODE_LIFO

A lista será iterada em uma ordem de último a entrar, primeiro a sair, como uma pilha.

SplDoublyLinkedList::IT_MODE_FIFO

A lista será iterada em uma ordem de primeiro a entrar, primeiro a sair, como uma fila.

Comportamento da Iteração

SplDoublyLinkedList::IT_MODE_DELETE

A iteração removerá os elementos iterados.

SplDoublyLinkedList::IT_MODE_KEEP

A iteração não removerá os elementos iterados.

Índice

  • SplDoublyLinkedList::add — Adiciona/insere um novo valor no índice especificado
  • SplDoublyLinkedList::bottom — Espreita o nó desde o início da lista duplamente encadeada
  • SplDoublyLinkedList::count — Conta o número de elementos na lista duplamente encadeada
  • SplDoublyLinkedList::current — Retorna a entrada de array atual
  • SplDoublyLinkedList::getIteratorMode — Retorna o modo de iteração
  • SplDoublyLinkedList::isEmpty — Verifica se a lista duplamente encadeada está vazia
  • SplDoublyLinkedList::key — Retorna o índice do nó atual
  • SplDoublyLinkedList::next — Move para a próxima entrada
  • SplDoublyLinkedList::offsetExists — Retorna se o $index solicitado existe
  • SplDoublyLinkedList::offsetGet — Retorna o valor no $index especificado
  • SplDoublyLinkedList::offsetSet — Define o valor no $index especificado como $value
  • SplDoublyLinkedList::offsetUnset — Remove o valor no $index especificado
  • SplDoublyLinkedList::pop — Remove um nó do final da lista duplamente encadeada
  • SplDoublyLinkedList::prev — Move para a entrada anterior
  • SplDoublyLinkedList::push — Adiciona um elemento no final da lista duplamente encadeada
  • SplDoublyLinkedList::rewind — Rebobina o iterador de volta ao início
  • SplDoublyLinkedList::serialize — Serializa o armazenamento
  • SplDoublyLinkedList::setIteratorMode — Define o modo de iteração
  • SplDoublyLinkedList::shift — Remove um nó do início da lista duplamente encadeada
  • SplDoublyLinkedList::top — Observa o nó do final da lista duplamente encadeada
  • SplDoublyLinkedList::unserialize — Deserializa o armazenamento
  • SplDoublyLinkedList::unshift — Acrescenta um elemento ao início da lista duplamente encadeada
  • SplDoublyLinkedList::valid — Verifica se a lista duplamente encadeada contém mais nós


Adiciona/insere um novo valor no índice especificado

  • « SplDoublyLinkedList
  • SplDoublyLinkedList::bottom »
  • PHP Manual
  • SplDoublyLinkedList
  • Adiciona/insere um novo valor no índice especificado

SplDoublyLinkedList::add

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

SplDoublyLinkedList::add — Adiciona/insere um novo valor no índice especificado

Descrição

public SplDoublyLinkedList::add(int $index, mixed $value): void

Insere o valor value no index especificado, reorganizando o valor anterior nesse índice (e todos os valores subsequentes) pela lista.

Parâmetros

index

O índice onde o novo valor será inserido.

value

O novo valor para o index.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Lança OutOfRangeException quando o index está fora dos limites ou quando o index não pode ser interpretado como um número inteiro.


Espreita o nó desde o início da lista duplamente encadeada

  • « SplDoublyLinkedList::add
  • SplDoublyLinkedList::count »
  • PHP Manual
  • SplDoublyLinkedList
  • Espreita o nó desde o início da lista duplamente encadeada

SplDoublyLinkedList::bottom

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::bottom — Espreita o nó desde o início da lista duplamente encadeada

Descrição

public SplDoublyLinkedList::bottom(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do primeiro nó.

Erros/Exceções

Lança RuntimeException quando a estrutura de dados está vazia.


Conta o número de elementos na lista duplamente encadeada

  • « SplDoublyLinkedList::bottom
  • SplDoublyLinkedList::current »
  • PHP Manual
  • SplDoublyLinkedList
  • Conta o número de elementos na lista duplamente encadeada

SplDoublyLinkedList::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::count — Conta o número de elementos na lista duplamente encadeada

Descrição

public SplDoublyLinkedList::count(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de elementos na lista duplamente encadeada.


Retorna a entrada de array atual

  • « SplDoublyLinkedList::count
  • SplDoublyLinkedList::getIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Retorna a entrada de array atual

SplDoublyLinkedList::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::current — Retorna a entrada de array atual

Descrição

public SplDoublyLinkedList::current(): mixed

Obtém o nó atual da lista duplamente encadeada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do nó atual.


Retorna o modo de iteração

  • « SplDoublyLinkedList::current
  • SplDoublyLinkedList::isEmpty »
  • PHP Manual
  • SplDoublyLinkedList
  • Retorna o modo de iteração

SplDoublyLinkedList::getIteratorMode

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::getIteratorMode — Retorna o modo de iteração

Descrição

public SplDoublyLinkedList::getIteratorMode(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna os diferentes modos e flags que afetam a iteração.


Verifica se a lista duplamente encadeada está vazia

  • « SplDoublyLinkedList::getIteratorMode
  • SplDoublyLinkedList::key »
  • PHP Manual
  • SplDoublyLinkedList
  • Verifica se a lista duplamente encadeada está vazia

SplDoublyLinkedList::isEmpty

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::isEmpty — Verifica se a lista duplamente encadeada está vazia

Descrição

public SplDoublyLinkedList::isEmpty(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna se a lista duplamente encadeada está vazia.


Retorna o índice do nó atual

  • « SplDoublyLinkedList::isEmpty
  • SplDoublyLinkedList::next »
  • PHP Manual
  • SplDoublyLinkedList
  • Retorna o índice do nó atual

SplDoublyLinkedList::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::key — Retorna o índice do nó atual

Descrição

public SplDoublyLinkedList::key(): int

Esta função retorna o índice do nó atual

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O índice do nó atual.


Move para a próxima entrada

  • « SplDoublyLinkedList::key
  • SplDoublyLinkedList::offsetExists »
  • PHP Manual
  • SplDoublyLinkedList
  • Move para a próxima entrada

SplDoublyLinkedList::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::next — Move para a próxima entrada

Descrição

public SplDoublyLinkedList::next(): void

Move o iterador para o próximo nó.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Retorna se o $index solicitado existe

  • « SplDoublyLinkedList::next
  • SplDoublyLinkedList::offsetGet »
  • PHP Manual
  • SplDoublyLinkedList
  • Retorna se o $index solicitado existe

SplDoublyLinkedList::offsetExists

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::offsetExists — Retorna se o $index solicitado existe

Descrição

public SplDoublyLinkedList::offsetExists(int $index): bool

Parâmetros

index

O índice sendo verificado.

Valor Retornado

true se o index solicitado existe, caso contrário, false


Retorna o valor no $index especificado

  • « SplDoublyLinkedList::offsetExists
  • SplDoublyLinkedList::offsetSet »
  • PHP Manual
  • SplDoublyLinkedList
  • Retorna o valor no $index especificado

SplDoublyLinkedList::offsetGet

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::offsetGet — Retorna o valor no $index especificado

Descrição

public SplDoublyLinkedList::offsetGet(int $index): mixed

Parâmetros

index

O índice com o valor.

Valor Retornado

O valor no index especificado.

Erros/Exceções

Lança OutOfRangeException quando o index está fora dos limites ou quando o index não pode ser interpretado como um número inteiro.


Define o valor no $index especificado como $value

  • « SplDoublyLinkedList::offsetGet
  • SplDoublyLinkedList::offsetUnset »
  • PHP Manual
  • SplDoublyLinkedList
  • Define o valor no $index especificado como $value

SplDoublyLinkedList::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::offsetSet — Define o valor no $index especificado como $value

Descrição

public SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void

Define o valor no index especificado como value.

Parâmetros

index

O índice sendo definido. Se for null, o próximo valor será adicionado após o último item.

value

O novo valor para o index.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Lança OutOfRangeException quando o index está fora dos limites ou quando o index não pode ser interpretado como um número inteiro.


Remove o valor no $index especificado

  • « SplDoublyLinkedList::offsetSet
  • SplDoublyLinkedList::pop »
  • PHP Manual
  • SplDoublyLinkedList
  • Remove o valor no $index especificado

SplDoublyLinkedList::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::offsetUnset — Remove o valor no $index especificado

Descrição

public SplDoublyLinkedList::offsetUnset(int $index): void

Remove o valor no índice especificado.

Parâmetros

index

O índice sendo removido.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Lança OutOfRangeException quando o index está fora dos limites ou quando o index não pode ser interpretado como um número inteiro.


Remove um nó do final da lista duplamente encadeada

  • « SplDoublyLinkedList::offsetUnset
  • SplDoublyLinkedList::prev »
  • PHP Manual
  • SplDoublyLinkedList
  • Remove um nó do final da lista duplamente encadeada

SplDoublyLinkedList::pop

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::pop — Remove um nó do final da lista duplamente encadeada

Descrição

public SplDoublyLinkedList::pop(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do nó removido.

Erros/Exceções

Lança RuntimeException quando a estrutura de dados está vazia.


Move para a entrada anterior

  • « SplDoublyLinkedList::pop
  • SplDoublyLinkedList::push »
  • PHP Manual
  • SplDoublyLinkedList
  • Move para a entrada anterior

SplDoublyLinkedList::prev

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::prev — Move para a entrada anterior

Descrição

public SplDoublyLinkedList::prev(): void

Move o iterador para o nó anterior.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Adiciona um elemento no final da lista duplamente encadeada

  • « SplDoublyLinkedList::prev
  • SplDoublyLinkedList::rewind »
  • PHP Manual
  • SplDoublyLinkedList
  • Adiciona um elemento no final da lista duplamente encadeada

SplDoublyLinkedList::push

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::push — Adiciona um elemento no final da lista duplamente encadeada

Descrição

public SplDoublyLinkedList::push(mixed $value): void

Adiciona o value no final da lista duplamente encadeada.

Parâmetros

value

O valor a ser adicionado.

Valor Retornado

Nenhum valor é retornado.


Rebobina o iterador de volta ao início

  • « SplDoublyLinkedList::push
  • SplDoublyLinkedList::serialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Rebobina o iterador de volta ao início

SplDoublyLinkedList::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::rewind — Rebobina o iterador de volta ao início

Descrição

public SplDoublyLinkedList::rewind(): void

Isso rebobina o iterador para o início.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Serializa o armazenamento

  • « SplDoublyLinkedList::rewind
  • SplDoublyLinkedList::setIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Serializa o armazenamento

SplDoublyLinkedList::serialize

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SplDoublyLinkedList::serialize — Serializa o armazenamento

Descrição

public SplDoublyLinkedList::serialize(): string

Serializa o armazenamento.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A string serializada.

Veja Também

  • SplDoublyLinkedList::unserialize() - Deserializa o armazenamento


Define o modo de iteração

  • « SplDoublyLinkedList::serialize
  • SplDoublyLinkedList::shift »
  • PHP Manual
  • SplDoublyLinkedList
  • Define o modo de iteração

SplDoublyLinkedList::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::setIteratorMode — Define o modo de iteração

Descrição

public SplDoublyLinkedList::setIteratorMode(int $mode): int

Parâmetros

mode

Existem dois conjuntos ortogonais de modos que podem ser definidos:

  • A direção da iteração (uma ou outra):
    • SplDoublyLinkedList::IT_MODE_LIFO (Estilo pilha)
    • SplDoublyLinkedList::IT_MODE_FIFO (Estilo fila)
  • O comportamento do iterador (um ou outro):
    • SplDoublyLinkedList::IT_MODE_DELETE (Os elementos são excluídos pelo iterador)
    • SplDoublyLinkedList::IT_MODE_KEEP (Os elementos são percorridos pelo iterador)

O modo padrão é: SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP

Aviso

A direção da iteração não pode ser alterada para as classes SplStack e SplQueue, ela é sempre SplDoublyLinkedList::IT_MODE_FIFO. Tentar modificá-la resultará em uma exceção RuntimeException sendo lançada.

Valor Retornado

Retorna os diferentes modos e flags que afetam a iteração.


Remove um nó do início da lista duplamente encadeada

  • « SplDoublyLinkedList::setIteratorMode
  • SplDoublyLinkedList::top »
  • PHP Manual
  • SplDoublyLinkedList
  • Remove um nó do início da lista duplamente encadeada

SplDoublyLinkedList::shift

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::shift — Remove um nó do início da lista duplamente encadeada

Descrição

public SplDoublyLinkedList::shift(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do nó removido.

Erros/Exceções

Lança RuntimeException quando a estrutura de dados está vazia.


Observa o nó do final da lista duplamente encadeada

  • « SplDoublyLinkedList::shift
  • SplDoublyLinkedList::unserialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Observa o nó do final da lista duplamente encadeada

SplDoublyLinkedList::top

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::top — Observa o nó do final da lista duplamente encadeada

Descrição

public SplDoublyLinkedList::top(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do último nó.

Erros/Exceções

Lança RuntimeException quando a estrutura de dados está vazia.


Deserializa o armazenamento

  • « SplDoublyLinkedList::top
  • SplDoublyLinkedList::unshift »
  • PHP Manual
  • SplDoublyLinkedList
  • Deserializa o armazenamento

SplDoublyLinkedList::unserialize

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SplDoublyLinkedList::unserialize — Deserializa o armazenamento

Descrição

public SplDoublyLinkedList::unserialize(string $data): void

Deserializa o armazenamento, a partir de SplDoublyLinkedList::serialize().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

A string serializada.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • SplDoublyLinkedList::serialize() - Serializa o armazenamento


Acrescenta um elemento ao início da lista duplamente encadeada

  • « SplDoublyLinkedList::unserialize
  • SplDoublyLinkedList::valid »
  • PHP Manual
  • SplDoublyLinkedList
  • Acrescenta um elemento ao início da lista duplamente encadeada

SplDoublyLinkedList::unshift

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::unshift — Acrescenta um elemento ao início da lista duplamente encadeada

Descrição

public SplDoublyLinkedList::unshift(mixed $value): void

Acrescenta value ao início da lista duplamente encadeada.

Parâmetros

value

O valor a ser acrescentado.

Valor Retornado

Nenhum valor é retornado.


Verifica se a lista duplamente encadeada contém mais nós

  • « SplDoublyLinkedList::unshift
  • SplStack »
  • PHP Manual
  • SplDoublyLinkedList
  • Verifica se a lista duplamente encadeada contém mais nós

SplDoublyLinkedList::valid

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::valid — Verifica se a lista duplamente encadeada contém mais nós

Descrição

public SplDoublyLinkedList::valid(): bool

Verifica se a lista duplamente encadeada contém mais nós.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a lista duplamente encadeada contiver mais nós, false caso contrário.


A classe SplStack

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

A classe SplStack fornece as principais funcionalidades de uma pilha implementada usando uma lista duplamente encadeada definindo o modo do iterador como SplDoublyLinkedList::IT_MODE_LIFO.

Resumo da classe

class SplStack extends SplDoublyLinkedList {
/* Constantes herdadas */
public const int SplDoublyLinkedList::IT_MODE_LIFO;
public const int SplDoublyLinkedList::IT_MODE_FIFO;
public const int SplDoublyLinkedList::IT_MODE_DELETE;
public const int SplDoublyLinkedList::IT_MODE_KEEP;
/* Métodos herdados */
public SplDoublyLinkedList::add(int $index, mixed $value): void
public SplDoublyLinkedList::bottom(): mixed
public SplDoublyLinkedList::count(): int
public SplDoublyLinkedList::current(): mixed
public SplDoublyLinkedList::getIteratorMode(): int
public SplDoublyLinkedList::isEmpty(): bool
public SplDoublyLinkedList::key(): int
public SplDoublyLinkedList::next(): void
public SplDoublyLinkedList::offsetExists(int $index): bool
public SplDoublyLinkedList::offsetGet(int $index): mixed
public SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void
public SplDoublyLinkedList::offsetUnset(int $index): void
public SplDoublyLinkedList::pop(): mixed
public SplDoublyLinkedList::prev(): void
public SplDoublyLinkedList::push(mixed $value): void
public SplDoublyLinkedList::rewind(): void
public SplDoublyLinkedList::serialize(): string
public SplDoublyLinkedList::setIteratorMode(int $mode): int
public SplDoublyLinkedList::shift(): mixed
public SplDoublyLinkedList::top(): mixed
public SplDoublyLinkedList::unserialize(string $data): void
public SplDoublyLinkedList::unshift(mixed $value): void
public SplDoublyLinkedList::valid(): bool
}

Exemplos

Exemplo #1 Exemplo de SplStack

<?php
$q = new SplStack();
$q[] = 1;
$q[] = 2;
$q[] = 3;
foreach ($q as $elem) {
echo $elem."\n";
}
?>

O exemplo acima produzirá:

3
2
1


A classe SplQueue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

A classe SplQueue fornece as principais funcionalidades de uma fila implementada usando uma lista duplamente encadeada, estabelecendo o modo do iterador como SplDoublyLinkedList::IT_MODE_FIFO.

Resumo da classe

class SplQueue extends SplDoublyLinkedList {
/* Constantes herdadas */
public const int SplDoublyLinkedList::IT_MODE_LIFO;
public const int SplDoublyLinkedList::IT_MODE_FIFO;
public const int SplDoublyLinkedList::IT_MODE_DELETE;
public const int SplDoublyLinkedList::IT_MODE_KEEP;
/* Métodos */
public dequeue(): mixed
public enqueue(mixed $value): void
/* Métodos herdados */
public SplDoublyLinkedList::add(int $index, mixed $value): void
public SplDoublyLinkedList::bottom(): mixed
public SplDoublyLinkedList::count(): int
public SplDoublyLinkedList::current(): mixed
public SplDoublyLinkedList::getIteratorMode(): int
public SplDoublyLinkedList::isEmpty(): bool
public SplDoublyLinkedList::key(): int
public SplDoublyLinkedList::next(): void
public SplDoublyLinkedList::offsetExists(int $index): bool
public SplDoublyLinkedList::offsetGet(int $index): mixed
public SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void
public SplDoublyLinkedList::offsetUnset(int $index): void
public SplDoublyLinkedList::pop(): mixed
public SplDoublyLinkedList::prev(): void
public SplDoublyLinkedList::push(mixed $value): void
public SplDoublyLinkedList::rewind(): void
public SplDoublyLinkedList::serialize(): string
public SplDoublyLinkedList::setIteratorMode(int $mode): int
public SplDoublyLinkedList::shift(): mixed
public SplDoublyLinkedList::top(): mixed
public SplDoublyLinkedList::unserialize(string $data): void
public SplDoublyLinkedList::unshift(mixed $value): void
public SplDoublyLinkedList::valid(): bool
}

Exemplos

Exemplo #1 SplQueue exemplo

<?php
$q = new SplQueue();
$q[] = 1;
$q[] = 2;
$q[] = 3;
foreach ($q as $elem) {
echo $elem."\n";
}
?>

O exemplo acima produzirá:

1
2
3

Exemplo #2 Gestão eficiente de tarefas usando SplQueue

<?php
$q = new SplQueue();
$q->setIteratorMode(SplQueue::IT_MODE_DELETE);
// ... adicionar algumas tarefas à fila ...
// processá-las.
foreach ($q as $task) {
// ... processar a tarefa $task ...
// adicionar novas tarefas à fila
$q[] = $newTask;
// ...
}
?>

Índice

  • SplQueue::dequeue — Remove um nó da fila
  • SplQueue::enqueue — Adiciona um elemento à fila


Remove um nó da fila

  • « SplQueue
  • SplQueue::enqueue »
  • PHP Manual
  • SplQueue
  • Remove um nó da fila

SplQueue::dequeue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplQueue::dequeue — Remove um nó da fila

Descrição

public SplQueue::dequeue(): mixed

Remove o value do topo da fila.

Nota:

SplQueue::dequeue() é um sinônimo de SplDoublyLinkedList::shift().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do nó retirado da fila.


Adiciona um elemento à fila

  • « SplQueue::dequeue
  • SplHeap »
  • PHP Manual
  • SplQueue
  • Adiciona um elemento à fila

SplQueue::enqueue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplQueue::enqueue — Adiciona um elemento à fila

Descrição

public SplQueue::enqueue(mixed $value): void

Enfileira value no final da fila.

Nota:

SplQueue::enqueue() é um sinônimo de SplDoublyLinkedList::push().

Parâmetros

value

O valor a ser enfileirado.

Valor Retornado

Nenhum valor é retornado.


A classe SplHeap

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

A classe SplHeap fornece as principais funcionalidades de um Heap.

Resumo da classe

abstract class SplHeap implements Iterator, Countable {
/* Métodos */
protected compare(mixed $value1, mixed $value2): int
public count(): int
public current(): mixed
public extract(): mixed
public insert(mixed $value): true
public isCorrupted(): bool
public isEmpty(): bool
public key(): int
public next(): void
public recoverFromCorruption(): bool
public rewind(): void
public top(): mixed
public valid(): bool
}

Índice

  • SplHeap::compare — Compara elementos para colocá-los corretamente no heap enquanto faz o ajuste ascendente
  • SplHeap::count — Conta o número de elementos no heap
  • SplHeap::current — Retorna o nó atual apontado pelo iterador
  • SplHeap::extract — Extrai um nó do topo do heap e ajusta para cima
  • SplHeap::insert — Insere um elemento no heap, ajustando-o para cima
  • SplHeap::isCorrupted — Indica se o heap está em um estado corrompido
  • SplHeap::isEmpty — Verifica se o heap está vazio
  • SplHeap::key — Retorna o índice do nó atual
  • SplHeap::next — Move para o próximo nó
  • SplHeap::recoverFromCorruption — Recupera do estado corrompido e permite outras ações no heap
  • SplHeap::rewind — Rebobina o iterador de volta ao início (sem ação)
  • SplHeap::top — Espreita o nó do topo da heap
  • SplHeap::valid — Verifica se a heap contém mais nós


Compara elementos para colocá-los corretamente no heap enquanto faz o ajuste ascendente

  • « SplHeap
  • SplHeap::count »
  • PHP Manual
  • SplHeap
  • Compara elementos para colocá-los corretamente no heap enquanto faz o ajuste ascendente

SplHeap::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::compare — Compara elementos para colocá-los corretamente no heap enquanto faz o ajuste ascendente

Descrição

protected SplHeap::compare(mixed $value1, mixed $value2): int

Compara value1 com value2.

Aviso

Lançar exceções em SplHeap::compare() pode corromper o Heap e colocá-lo em um estado bloqueado. Você pode desbloqueá-lo chamando SplHeap::recoverFromCorruption(). No entanto, alguns elementos podem não ser colocados corretamente e, portanto, podem quebrar a propriedade do heap.

Parâmetros

value1

O valor do primeiro nó sendo comparado.

value2

O valor do segundo nó sendo comparado.

Valor Retornado

Resultado da comparação, inteiro positivo se value1 for maior que value2, 0 se forem iguais, inteiro negativo caso contrário.

Nota:

Ter múltiplos elementos com o mesmo valor em um Heap não é recomendado. Eles acabarão em uma posição relativa arbitrária.


Conta o número de elementos no heap

  • « SplHeap::compare
  • SplHeap::current »
  • PHP Manual
  • SplHeap
  • Conta o número de elementos no heap

SplHeap::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::count — Conta o número de elementos no heap

Descrição

public SplHeap::count(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de elementos no heap.


Retorna o nó atual apontado pelo iterador

  • « SplHeap::count
  • SplHeap::extract »
  • PHP Manual
  • SplHeap
  • Retorna o nó atual apontado pelo iterador

SplHeap::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::current — Retorna o nó atual apontado pelo iterador

Descrição

public SplHeap::current(): mixed

Obtém o nó atual da estrutura de dados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do nó atual.


Extrai um nó do topo do heap e ajusta para cima

  • « SplHeap::current
  • SplHeap::insert »
  • PHP Manual
  • SplHeap
  • Extrai um nó do topo do heap e ajusta para cima

SplHeap::extract

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::extract — Extrai um nó do topo do heap e ajusta para cima

Descrição

public SplHeap::extract(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do nó extraído.

Erros/Exceções

Lança RuntimeException quando a estrutura de dados está vazia.


Insere um elemento no heap, ajustando-o para cima

  • « SplHeap::extract
  • SplHeap::isCorrupted »
  • PHP Manual
  • SplHeap
  • Insere um elemento no heap, ajustando-o para cima

SplHeap::insert

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::insert — Insere um elemento no heap, ajustando-o para cima

Descrição

public SplHeap::insert(mixed $value): true

Insere o value no heap.

Parâmetros

value

O valor a ser inserido.

Valor Retornado

Sempre retorna true.


Indica se o heap está em um estado corrompido

  • « SplHeap::insert
  • SplHeap::isEmpty »
  • PHP Manual
  • SplHeap
  • Indica se o heap está em um estado corrompido

SplHeap::isCorrupted

(PHP 7, PHP 8)

SplHeap::isCorrupted — Indica se o heap está em um estado corrompido

Descrição

public SplHeap::isCorrupted(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o heap estiver corrompido, false caso contrário.


Verifica se o heap está vazio

  • « SplHeap::isCorrupted
  • SplHeap::key »
  • PHP Manual
  • SplHeap
  • Verifica se o heap está vazio

SplHeap::isEmpty

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::isEmpty — Verifica se o heap está vazio

Descrição

public SplHeap::isEmpty(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna se o heap está vazio.


Retorna o índice do nó atual

  • « SplHeap::isEmpty
  • SplHeap::next »
  • PHP Manual
  • SplHeap
  • Retorna o índice do nó atual

SplHeap::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::key — Retorna o índice do nó atual

Descrição

public SplHeap::key(): int

Esta função retorna o índice do nó atual

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O índice do nó atual.


Move para o próximo nó

  • « SplHeap::key
  • SplHeap::recoverFromCorruption »
  • PHP Manual
  • SplHeap
  • Move para o próximo nó

SplHeap::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::next — Move para o próximo nó

Descrição

public SplHeap::next(): void

Move para o próximo nó. Isso irá excluir o nó superior do heap.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Recupera do estado corrompido e permite outras ações no heap

  • « SplHeap::next
  • SplHeap::rewind »
  • PHP Manual
  • SplHeap
  • Recupera do estado corrompido e permite outras ações no heap

SplHeap::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::recoverFromCorruption — Recupera do estado corrompido e permite outras ações no heap

Descrição

public SplHeap::recoverFromCorruption(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna true.


Rebobina o iterador de volta ao início (sem ação)

  • « SplHeap::recoverFromCorruption
  • SplHeap::top »
  • PHP Manual
  • SplHeap
  • Rebobina o iterador de volta ao início (sem ação)

SplHeap::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::rewind — Rebobina o iterador de volta ao início (sem ação)

Descrição

public SplHeap::rewind(): void

Isso rebobina o iterador para o início. Isso não faz nada para heaps, pois o iterador é virtual e na verdade nunca se move do topo da heap.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Espreita o nó do topo da heap

  • « SplHeap::rewind
  • SplHeap::valid »
  • PHP Manual
  • SplHeap
  • Espreita o nó do topo da heap

SplHeap::top

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::top — Espreita o nó do topo da heap

Descrição

public SplHeap::top(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do nó no topo.

Erros/Exceções

Lança RuntimeException quando a estrutura de dados está vazia.


Verifica se a heap contém mais nós

  • « SplHeap::top
  • SplMaxHeap »
  • PHP Manual
  • SplHeap
  • Verifica se a heap contém mais nós

SplHeap::valid

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::valid — Verifica se a heap contém mais nós

Descrição

public SplHeap::valid(): bool

Verifica se a heap contém mais nós.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a heap contiver mais nós, false caso contrário.


A classe SplMaxHeap

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

A classe SplMaxHeap fornece as principais funcionalidades de um heap, mantendo o máximo no topo.

Resumo da classe

class SplMaxHeap extends SplHeap {
/* Métodos */
protected compare(mixed $value1, mixed $value2): int
/* Métodos herdados */
protected SplHeap::compare(mixed $value1, mixed $value2): int
public SplHeap::count(): int
public SplHeap::current(): mixed
public SplHeap::extract(): mixed
public SplHeap::insert(mixed $value): true
public SplHeap::isCorrupted(): bool
public SplHeap::isEmpty(): bool
public SplHeap::key(): int
public SplHeap::next(): void
public SplHeap::recoverFromCorruption(): bool
public SplHeap::rewind(): void
public SplHeap::top(): mixed
public SplHeap::valid(): bool
}

Índice

  • SplMaxHeap::compare — Compara elementos para colocá-los corretamente na heap enquanto faz o ajuste ascendente


Compara elementos para colocá-los corretamente na heap enquanto faz o ajuste ascendente

  • « SplMaxHeap
  • SplMinHeap »
  • PHP Manual
  • SplMaxHeap
  • Compara elementos para colocá-los corretamente na heap enquanto faz o ajuste ascendente

SplMaxHeap::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplMaxHeap::compare — Compara elementos para colocá-los corretamente na heap enquanto faz o ajuste ascendente

Descrição

protected SplMaxHeap::compare(mixed $value1, mixed $value2): int

Compara value1 com value2.

Parâmetros

value1

O valor do primeiro nó sendo comparado.

value2

O valor do segundo nó sendo comparado.

Valor Retornado

Resultado da comparação, inteiro positivo se value1 for maior que value2, 0 se forem iguais, inteiro negativo caso contrário.

Nota:

Ter múltiplos elementos com o mesmo valor em uma Heap não é recomendado. Eles acabarão em uma posição relativa arbitrária.


A classe SplMinHeap

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

A classe SplMinHeap fornece as principais funcionalidades de um heap, mantendo o mínimo no topo.

Resumo da classe

class SplMinHeap extends SplHeap {
/* Métodos */
protected compare(mixed $value1, mixed $value2): int
/* Métodos herdados */
protected SplHeap::compare(mixed $value1, mixed $value2): int
public SplHeap::count(): int
public SplHeap::current(): mixed
public SplHeap::extract(): mixed
public SplHeap::insert(mixed $value): true
public SplHeap::isCorrupted(): bool
public SplHeap::isEmpty(): bool
public SplHeap::key(): int
public SplHeap::next(): void
public SplHeap::recoverFromCorruption(): bool
public SplHeap::rewind(): void
public SplHeap::top(): mixed
public SplHeap::valid(): bool
}

Índice

  • SplMinHeap::compare — Comparar elementos para colocá-los corretamente na heap enquanto faz o ajuste ascendente


Comparar elementos para colocá-los corretamente na heap enquanto faz o ajuste ascendente

  • « SplMinHeap
  • SplPriorityQueue »
  • PHP Manual
  • SplMinHeap
  • Comparar elementos para colocá-los corretamente na heap enquanto faz o ajuste ascendente

SplMinHeap::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplMinHeap::compare — Comparar elementos para colocá-los corretamente na heap enquanto faz o ajuste ascendente

Descrição

protected SplMinHeap::compare(mixed $value1, mixed $value2): int

Comparar value1 com value2.

Parâmetros

value1

O valor do primeiro nó sendo comparado.

value2

O valor do segundo nó sendo comparado.

Valor Retornado

Resultado da comparação, inteiro positivo se value1 for menor que value2, 0 se forem iguais, inteiro negativo caso contrário.

Nota:

Ter múltiplos elementos com o mesmo valor em uma heap não é recomendado. Eles acabarão em uma posição relativa arbitrária.


A classe SplPriorityQueue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

A classe SplPriorityQueue fornece as principais funcionalidades de uma fila priorizada, implementada usando um heap máximo.

Nota: A ordem dos elementos com prioridade idêntica é indefinida. Pode diferir da ordem em que foram inseridos.

Resumo da classe

class SplPriorityQueue implements Iterator, Countable {
/* Constantes */
public const int EXTR_BOTH;
public const int EXTR_PRIORITY;
public const int EXTR_DATA;
/* Métodos */
public compare(mixed $priority1, mixed $priority2): int
public count(): int
public current(): mixed
public extract(): mixed
public getExtractFlags(): int
public insert(mixed $value, mixed $priority): true
public isCorrupted(): bool
public isEmpty(): bool
public key(): int
public next(): void
public recoverFromCorruption(): bool
public rewind(): void
public setExtractFlags(int $flags): int
public top(): mixed
public valid(): bool
}

Constantes pré-definidas

SplPriorityQueue::EXTR_BOTH

SplPriorityQueue::EXTR_PRIORITY

SplPriorityQueue::EXTR_DATA

Índice

  • SplPriorityQueue::compare — Comparar prioridades para colocar elementos corretamente no heap ao subir
  • SplPriorityQueue::count — Conta o número de elementos na fila
  • SplPriorityQueue::current — Retorna o nó atual apontado pelo iterador
  • SplPriorityQueue::extract — Extrai um nó do topo do heap e desloca para cima
  • SplPriorityQueue::getExtractFlags — Obtém as opções de extração
  • SplPriorityQueue::insert — Insere um elemento na fila deslocando-o para cima
  • SplPriorityQueue::isCorrupted — Indica se a fila de prioridade está em um estado corrompido
  • SplPriorityQueue::isEmpty — Verifica se a fila está vazia
  • SplPriorityQueue::key — Retorna o índice do nó atual
  • SplPriorityQueue::next — Move para o próximo nó
  • SplPriorityQueue::recoverFromCorruption — Recupera do estado corrompido e permite outras ações na fila
  • SplPriorityQueue::rewind — Rebobina o iterador de volta ao início (sem operação)
  • SplPriorityQueue::setExtractFlags — Define o modo de extração
  • SplPriorityQueue::top — Observa o nó do topo da fila
  • SplPriorityQueue::valid — Verifica se a fila contém mais nós


Comparar prioridades para colocar elementos corretamente no heap ao subir

  • « SplPriorityQueue
  • SplPriorityQueue::count »
  • PHP Manual
  • SplPriorityQueue
  • Comparar prioridades para colocar elementos corretamente no heap ao subir

SplPriorityQueue::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::compare — Comparar prioridades para colocar elementos corretamente no heap ao subir

Descrição

public SplPriorityQueue::compare(mixed $priority1, mixed $priority2): int

Compara priority1 com priority2.

Parâmetros

priority1

A prioridade do primeiro nó sendo comparado.

priority2

A prioridade do segundo nó sendo comparado.

Valor Retornado

Resultado da comparação, inteiro positivo se priority1 for maior que priority2, 0 se forem iguais, inteiro negativo caso contrário.

Nota:

Múltiplos elementos com a mesma prioridade serão desenfileirados em nenhuma ordem específica.


Conta o número de elementos na fila

  • « SplPriorityQueue::compare
  • SplPriorityQueue::current »
  • PHP Manual
  • SplPriorityQueue
  • Conta o número de elementos na fila

SplPriorityQueue::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::count — Conta o número de elementos na fila

Descrição

public SplPriorityQueue::count(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de elementos na fila.


Retorna o nó atual apontado pelo iterador

  • « SplPriorityQueue::count
  • SplPriorityQueue::extract »
  • PHP Manual
  • SplPriorityQueue
  • Retorna o nó atual apontado pelo iterador

SplPriorityQueue::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::current — Retorna o nó atual apontado pelo iterador

Descrição

public SplPriorityQueue::current(): mixed

Obtém o nó atual da estrutura de dados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor ou a prioridade (ou ambos) do nó atual, dependendo da opção de extração.


Extrai um nó do topo do heap e desloca para cima

  • « SplPriorityQueue::current
  • SplPriorityQueue::getExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Extrai um nó do topo do heap e desloca para cima

SplPriorityQueue::extract

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::extract — Extrai um nó do topo do heap e desloca para cima

Descrição

public SplPriorityQueue::extract(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor ou a prioridade (ou ambos) do nó extraído, dependendo da opção de extração.


Obtém as opções de extração

  • « SplPriorityQueue::extract
  • SplPriorityQueue::insert »
  • PHP Manual
  • SplPriorityQueue
  • Obtém as opções de extração

SplPriorityQueue::getExtractFlags

(PHP 7, PHP 8)

SplPriorityQueue::getExtractFlags — Obtém as opções de extração

Descrição

public SplPriorityQueue::getExtractFlags(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna as opções de extração.


Insere um elemento na fila deslocando-o para cima

  • « SplPriorityQueue::getExtractFlags
  • SplPriorityQueue::isCorrupted »
  • PHP Manual
  • SplPriorityQueue
  • Insere um elemento na fila deslocando-o para cima

SplPriorityQueue::insert

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::insert — Insere um elemento na fila deslocando-o para cima

Descrição

public SplPriorityQueue::insert(mixed $value, mixed $priority): true

Insere o value com a prioridade priority na fila.

Parâmetros

value

O valor a ser inserido.

priority

A prioridade associada.

Valor Retornado

Sempre retorna true.


Indica se a fila de prioridade está em um estado corrompido

  • « SplPriorityQueue::insert
  • SplPriorityQueue::isEmpty »
  • PHP Manual
  • SplPriorityQueue
  • Indica se a fila de prioridade está em um estado corrompido

SplPriorityQueue::isCorrupted

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::isCorrupted — Indica se a fila de prioridade está em um estado corrompido

Descrição

public SplPriorityQueue::isCorrupted(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a fila de prioridade estiver corrompida, false caso contrário.


Verifica se a fila está vazia

  • « SplPriorityQueue::isCorrupted
  • SplPriorityQueue::key »
  • PHP Manual
  • SplPriorityQueue
  • Verifica se a fila está vazia

SplPriorityQueue::isEmpty

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::isEmpty — Verifica se a fila está vazia

Descrição

public SplPriorityQueue::isEmpty(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna se a fila está vazia.


Retorna o índice do nó atual

  • « SplPriorityQueue::isEmpty
  • SplPriorityQueue::next »
  • PHP Manual
  • SplPriorityQueue
  • Retorna o índice do nó atual

SplPriorityQueue::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::key — Retorna o índice do nó atual

Descrição

public SplPriorityQueue::key(): int

Esta função retorna o índice do nó atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O índice do nó atual.


Move para o próximo nó

  • « SplPriorityQueue::key
  • SplPriorityQueue::recoverFromCorruption »
  • PHP Manual
  • SplPriorityQueue
  • Move para o próximo nó

SplPriorityQueue::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::next — Move para o próximo nó

Descrição

public SplPriorityQueue::next(): void

Extrai o nó superior da fila.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Recupera do estado corrompido e permite outras ações na fila

  • « SplPriorityQueue::next
  • SplPriorityQueue::rewind »
  • PHP Manual
  • SplPriorityQueue
  • Recupera do estado corrompido e permite outras ações na fila

SplPriorityQueue::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::recoverFromCorruption — Recupera do estado corrompido e permite outras ações na fila

Descrição

public SplPriorityQueue::recoverFromCorruption(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna true.


Rebobina o iterador de volta ao início (sem operação)

  • « SplPriorityQueue::recoverFromCorruption
  • SplPriorityQueue::setExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Rebobina o iterador de volta ao início (sem operação)

SplPriorityQueue::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::rewind — Rebobina o iterador de volta ao início (sem operação)

Descrição

public SplPriorityQueue::rewind(): void

Isso rebobina o iterador para o início. Isso não tem efeito para heaps pois o iterador é virtual e na verdade nunca se move do topo do heap.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Define o modo de extração

  • « SplPriorityQueue::rewind
  • SplPriorityQueue::top »
  • PHP Manual
  • SplPriorityQueue
  • Define o modo de extração

SplPriorityQueue::setExtractFlags

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::setExtractFlags — Define o modo de extração

Descrição

public SplPriorityQueue::setExtractFlags(int $flags): int

Parâmetros

flags

Define o que é extraído por SplPriorityQueue::current(), SplPriorityQueue::top() e SplPriorityQueue::extract().

  • SplPriorityQueue::EXTR_DATA (0x00000001): Extrai os dados
  • SplPriorityQueue::EXTR_PRIORITY (0x00000002): Extrai a prioridade
  • SplPriorityQueue::EXTR_BOTH (0x00000003): Extrai um array contendo ambos

O modo padrão é SplPriorityQueue::EXTR_DATA.

Valor Retornado

Retorna as opções de extração.


Observa o nó do topo da fila

  • « SplPriorityQueue::setExtractFlags
  • SplPriorityQueue::valid »
  • PHP Manual
  • SplPriorityQueue
  • Observa o nó do topo da fila

SplPriorityQueue::top

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::top — Observa o nó do topo da fila

Descrição

public SplPriorityQueue::top(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor ou prioridade (ou ambos) do nó do topo, dependendo da opção de extração.


Verifica se a fila contém mais nós

  • « SplPriorityQueue::top
  • SplFixedArray »
  • PHP Manual
  • SplPriorityQueue
  • Verifica se a fila contém mais nós

SplPriorityQueue::valid

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::valid — Verifica se a fila contém mais nós

Descrição

public SplPriorityQueue::valid(): bool

Verifica se a fila contém mais nós.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a fila contém mais nós, false caso contrário.


A classe SplFixedArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

A classe SplFixedArray fornece as principais funcionalidades de um array. A principal diferença entre um SplFixedArray e um array PHP normal é que o SplFixedArray deve ser redimensionado manualmente e permite apenas inteiros dentro do intervalo como índices. A vantagem é que ele usa menos memória do que um array padrão.

Resumo da classe

class SplFixedArray implements IteratorAggregate, ArrayAccess, Countable, JsonSerializable {
/* Métodos */
public __construct(int $size = 0)
public count(): int
public current(): mixed
public static fromArray(array $array, bool $preserveKeys = true): SplFixedArray
public getIterator(): Iterator
public getSize(): int
public jsonSerialize(): array
public key(): int
public next(): void
public offsetExists(int $index): bool
public offsetGet(int $index): mixed
public offsetSet(int $index, mixed $value): void
public offsetUnset(int $index): void
public rewind(): void
public __serialize(): array
public setSize(int $size): bool
public toArray(): array
public __unserialize(array $data): void
public valid(): bool
public __wakeup(): void
}

Registro de Alterações

Versão | Descrição
8.2.0 | Os métodos mágicos SplFixedArray::__serialize() e SplFixedArray::__unserialize() foram adicionados à classe SplFixedArray.
8.1.0 | SplFixedArray implementa JsonSerializable agora.
8.0.0 | SplFixedArray implementa IteratorAggregate agora. Anteriormente, implementava Iterator.

Exemplos

Exemplo #1 Exemplo de uso de SplFixedArray

<?php
// Inicialize o array com um comprimento fixo
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

var_dump($array[0]); // NULL
var_dump($array[1]); // int(2)

var_dump($array["4"]); // string(3) "foo"

// Aumenta o tamanho do array para 10
$array->setSize(10);

$array[9] = "asdf";

// Reduz o array para um tamanho de 2
$array->setSize(2);

// As seguintes linhas lançam uma RuntimeException: Índice inválido ou fora do intervalo
try {
var_dump($array["non-numeric"]);
} catch(RuntimeException $re) {
echo "RuntimeException: ".$re->getMessage()."\n";
}

try {
var_dump($array[-1]);
} catch(RuntimeException $re) {
echo "RuntimeException: ".$re->getMessage()."\n";
}

try {
var_dump($array[5]);
} catch(RuntimeException $re) {
echo "RuntimeException: ".$re->getMessage()."\n";
}
?>

O exemplo acima produzirá:

NULL
int(2)
string(3) "foo"
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range

Índice

  • SplFixedArray::__construct — Constrói um novo array fixo
  • SplFixedArray::count — Retorna o tamanho do array
  • SplFixedArray::current — Retorna a entrada atual do array
  • SplFixedArray::fromArray — Importa um array PHP em uma instância SplFixedArray
  • SplFixedArray::getIterator — Recupera o iterador para percorrer o array
  • SplFixedArray::getSize — Obtém o tamanho do array
  • SplFixedArray::jsonSerialize — Retorna uma representação que pode ser convertida em JSON
  • SplFixedArray::key — Retorna o índice atual do array
  • SplFixedArray::next — Move para a próxima entrada
  • SplFixedArray::offsetExists — Retorna se o índice solicitado existe
  • SplFixedArray::offsetGet — Retorna o valor no índice especificado
  • SplFixedArray::offsetSet — Define um novo valor em um índice especificado
  • SplFixedArray::offsetUnset — Remove o valor no $index especificado
  • SplFixedArray::rewind — Rebobina o iterador de volta ao início
  • SplFixedArray::__serialize — Serializa o objeto SplFixedArray
  • SplFixedArray::setSize — Altera o tamanho de um array
  • SplFixedArray::toArray — Retorna um array PHP do array fixo
  • SplFixedArray::__unserialize — Desserializa o parâmetro data em um objeto SplFixedArray
  • SplFixedArray::valid — Verifica se o array contém mais elementos
  • SplFixedArray::__wakeup — Reinicializa o array após ser desserializado


Constrói um novo array fixo

  • « SplFixedArray
  • SplFixedArray::count »
  • PHP Manual
  • SplFixedArray
  • Constrói um novo array fixo

SplFixedArray::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::__construct — Constrói um novo array fixo

Descrição

public SplFixedArray::__construct(int $size = 0)

Inicializa um array fixo com um número de valores null igual ao size.

Parâmetros

size

O tamanho do array fixo. Isso espera um número entre 0 e PHP_INT_MAX.

Erros/Exceções

Lança um ValueError quando size é um número inteiro negativo.

Registro de Alterações

Versão | Descrição
8.0.0 | Agora lança um ValueError se size é negativo; anteriormente lançava um InvalidArgumentException.

Exemplos

Exemplo #1 Exemplo de SplFixedArray::__construct()

<?php
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

foreach($array as $v) {
var_dump($v);
}
?>

O exemplo acima produzirá:

NULL
int(2)
NULL
NULL
string(3) "foo"


Retorna o tamanho do array

  • « SplFixedArray::__construct
  • SplFixedArray::current »
  • PHP Manual
  • SplFixedArray
  • Retorna o tamanho do array

SplFixedArray::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::count — Retorna o tamanho do array

Descrição

public SplFixedArray::count(): int

Retorna o tamanho do array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o tamanho do array.

Exemplos

Exemplo #1 Exemplo de SplFixedArray::count()

<?php
$array = new SplFixedArray(5);
echo $array->count() . "\n";
echo count($array) . "\n";
?>

O exemplo acima produzirá:

5
5

Notas

Nota:

Este método é funcionalmente equivalente a SplFixedArray::getSize().

Nota:

A contagem de elementos é sempre igual ao tamanho definido porque todos os valores são inicialmente inicializados com null.

Veja Também

  • SplFixedArray::getSize() - Obtém o tamanho do array


Retorna a entrada atual do array

  • « SplFixedArray::count
  • SplFixedArray::fromArray »
  • PHP Manual
  • SplFixedArray
  • Retorna a entrada atual do array

SplFixedArray::current

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::current — Retorna a entrada atual do array

Descrição

public SplFixedArray::current(): mixed

Obtém o elemento atual do array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do elemento atual.

Erros/Exceções

Lança RuntimeException quando o ponteiro interno do array aponta para um índice inválido ou está fora dos limites.


Importa um array PHP em uma instância SplFixedArray

  • « SplFixedArray::current
  • SplFixedArray::getIterator »
  • PHP Manual
  • SplFixedArray
  • Importa um array PHP em uma instância SplFixedArray

SplFixedArray::fromArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::fromArray — Importa um array PHP em uma instância SplFixedArray

Descrição

public static SplFixedArray::fromArray(array $array, bool $preserveKeys = true): SplFixedArray

Importa o array PHP array em uma nova instância de SplFixedArray

Parâmetros

array

O array a ser importado.

preserveKeys

Tenta preservar os índices numéricos usados no array original.

Valor Retornado

Retorna uma instância de SplFixedArray contendo o conteúdo do array.

Exemplos

Exemplo #1 Exemplo de SplFixedArray::fromArray()

<?php
$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3));

var_dump($fa);

$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3), false);

var_dump($fa);
?>

O exemplo acima produzirá:

object(SplFixedArray)#1 (4) {
  [0]=>
  int(2)
  [1]=>
  int(1)
  [2]=>
  NULL
  [3]=>
  int(3)
}
object(SplFixedArray)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Recupera o iterador para percorrer o array

  • « SplFixedArray::fromArray
  • SplFixedArray::getSize »
  • PHP Manual
  • SplFixedArray
  • Recupera o iterador para percorrer o array

SplFixedArray::getIterator

(PHP 8)

SplFixedArray::getIterator — Recupera o iterador para percorrer o array

Descrição

public SplFixedArray::getIterator(): Iterator

Retorna o iterador para percorrer o array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma instância de um objeto que implementa Iterator para percorrer o array.


Obtém o tamanho do array

  • « SplFixedArray::getIterator
  • SplFixedArray::jsonSerialize »
  • PHP Manual
  • SplFixedArray
  • Obtém o tamanho do array

SplFixedArray::getSize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::getSize — Obtém o tamanho do array

Descrição

public SplFixedArray::getSize(): int

Obtém o tamanho do array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o tamanho do array, como um int.

Exemplos

Exemplo #1 Exemplo de SplFixedArray::getSize()

<?php
$array = new SplFixedArray(5);
echo $array->getSize()."\n";
$array->setSize(10);
echo $array->getSize()."\n";
?>

O exemplo acima produzirá:

5
10

Notas

Nota:

Este método é funcionalmente equivalente a SplFixedArray::count()

Veja Também

  • SplFixedArray::count() - Retorna o tamanho do array


Retorna uma representação que pode ser convertida em JSON

  • « SplFixedArray::getSize
  • SplFixedArray::key »
  • PHP Manual
  • SplFixedArray
  • Retorna uma representação que pode ser convertida em JSON

SplFixedArray::jsonSerialize

(PHP 8 >= 8.1.0)

SplFixedArray::jsonSerialize — Retorna uma representação que pode ser convertida em JSON

Descrição

public SplFixedArray::jsonSerialize(): array

Serializa o array para um valor que pode ser serializado nativamente pelo json_encode().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna os dados do array que podem ser serializados pelo json_encode(), que é um valor de qualquer tipo que não seja um resource.


Retorna o índice atual do array

  • « SplFixedArray::jsonSerialize
  • SplFixedArray::next »
  • PHP Manual
  • SplFixedArray
  • Retorna o índice atual do array

SplFixedArray::key

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::key — Retorna o índice atual do array

Descrição

public SplFixedArray::key(): int

Retorna o índice atual do array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O índice atual do array.


Move para a próxima entrada

  • « SplFixedArray::key
  • SplFixedArray::offsetExists »
  • PHP Manual
  • SplFixedArray
  • Move para a próxima entrada

SplFixedArray::next

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::next — Move para a próxima entrada

Descrição

public SplFixedArray::next(): void

Move o iterador para a próxima entrada do array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Retorna se o índice solicitado existe

  • « SplFixedArray::next
  • SplFixedArray::offsetGet »
  • PHP Manual
  • SplFixedArray
  • Retorna se o índice solicitado existe

SplFixedArray::offsetExists

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::offsetExists — Retorna se o índice solicitado existe

Descrição

public SplFixedArray::offsetExists(int $index): bool

Verifica se o índice solicitado index existe.

Parâmetros

index

O índice sendo verificado.

Valor Retornado

true se o index solicitado existir, caso contrário false


Retorna o valor no índice especificado

  • « SplFixedArray::offsetExists
  • SplFixedArray::offsetSet »
  • PHP Manual
  • SplFixedArray
  • Retorna o valor no índice especificado

SplFixedArray::offsetGet

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::offsetGet — Retorna o valor no índice especificado

Descrição

public SplFixedArray::offsetGet(int $index): mixed

Retorna o valor no índice index.

Parâmetros

index

O índice com o valor.

Valor Retornado

O valor no index especificado.

Erros/Exceções

Lança RuntimeException quando o index está fora do tamanho definido do array ou quando o index não pode ser analisado como um número inteiro.


Define um novo valor em um índice especificado

  • « SplFixedArray::offsetGet
  • SplFixedArray::offsetUnset »
  • PHP Manual
  • SplFixedArray
  • Define um novo valor em um índice especificado

SplFixedArray::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::offsetSet — Define um novo valor em um índice especificado

Descrição

public SplFixedArray::offsetSet(int $index, mixed $value): void

Define o valor no index especificado como value.

Parâmetros

index

O índice a ser definido.

value

O novo valor para o index.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Lança RuntimeException quando o index está fora do tamanho definido do array ou quando o index não pode ser analisado como um número inteiro.


Remove o valor no $index especificado

  • « SplFixedArray::offsetSet
  • SplFixedArray::rewind »
  • PHP Manual
  • SplFixedArray
  • Remove o valor no $index especificado

SplFixedArray::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::offsetUnset — Remove o valor no $index especificado

Descrição

public SplFixedArray::offsetUnset(int $index): void

Remove o valor no índice especificado.

Parâmetros

index

O índice a ser removido.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Lança RuntimeException quando o index está fora do tamanho definido do array ou quando o index não pode ser analisado como um número inteiro.


Rebobina o iterador de volta ao início

  • « SplFixedArray::offsetUnset
  • SplFixedArray::__serialize »
  • PHP Manual
  • SplFixedArray
  • Rebobina o iterador de volta ao início

SplFixedArray::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::rewind — Rebobina o iterador de volta ao início

Descrição

public SplFixedArray::rewind(): void

Rebobina o iterador para o início.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Serializa o objeto SplFixedArray

  • « SplFixedArray::rewind
  • SplFixedArray::setSize »
  • PHP Manual
  • SplFixedArray
  • Serializa o objeto SplFixedArray

SplFixedArray::__serialize

(PHP 8 >= 8.2.0)

SplFixedArray::__serialize — Serializa o objeto SplFixedArray

Descrição

public SplFixedArray::__serialize(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Altera o tamanho de um array

  • « SplFixedArray::__serialize
  • SplFixedArray::toArray »
  • PHP Manual
  • SplFixedArray
  • Altera o tamanho de um array

SplFixedArray::setSize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::setSize — Altera o tamanho de um array

Descrição

public SplFixedArray::setSize(int $size): bool

Altera o tamanho de um array para o novo tamanho especificado por size. Se size for menor que o tamanho atual do array, quaisquer valores após o novo tamanho serão descartados. Se size for maior que o tamanho atual do array, o array será preenchido com valores null.

Parâmetros

size

O novo tamanho do array. Isso deve ser um valor entre 0 e PHP_INT_MAX.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Lança InvalidArgumentException quando size é menor que zero.

Gera um E_WARNING quando size não pode ser usado como um número.

Exemplos

Exemplo #1 Exemplo de SplFixedArray::setSize()

<?php
$array = new SplFixedArray(5);
echo $array->getSize()."\n";
$array->setSize(10);
echo $array->getSize()."\n";
?>

O exemplo acima produzirá:

5
10


Retorna um array PHP do array fixo

  • « SplFixedArray::setSize
  • SplFixedArray::__unserialize »
  • PHP Manual
  • SplFixedArray
  • Retorna um array PHP do array fixo

SplFixedArray::toArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::toArray — Retorna um array PHP do array fixo

Descrição

public SplFixedArray::toArray(): array

Retorna um array PHP do array fixo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array PHP, semelhante ao array fixo.

Exemplos

Exemplo #1 Exemplo de SplFixedArray::toArray()

<?php
$fa = new SplFixedArray(3);
$fa[0] = 0;
$fa[2] = 2;
var_dump($fa->toArray());
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  int(0)
  [1]=>
  NULL
  [2]=>
  int(2)
}


Desserializa o parâmetro data em um objeto SplFixedArray

  • « SplFixedArray::toArray
  • SplFixedArray::valid »
  • PHP Manual
  • SplFixedArray
  • Desserializa o parâmetro data em um objeto SplFixedArray

SplFixedArray::__unserialize

(PHP 8 >= 8.2.0)

SplFixedArray::__unserialize — Desserializa o parâmetro data em um objeto SplFixedArray

Descrição

public SplFixedArray::__unserialize(array $data): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

O valor sendo deserializado.

Valor Retornado

Nenhum valor é retornado.


Verifica se o array contém mais elementos

  • « SplFixedArray::__unserialize
  • SplFixedArray::__wakeup »
  • PHP Manual
  • SplFixedArray
  • Verifica se o array contém mais elementos

SplFixedArray::valid

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::valid — Verifica se o array contém mais elementos

Descrição

public SplFixedArray::valid(): bool

Verifica se o array contém mais elementos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o array contém mais elementos, false caso contrário.


Reinicializa o array após ser desserializado

  • « SplFixedArray::valid
  • SplObjectStorage »
  • PHP Manual
  • SplFixedArray
  • Reinicializa o array após ser desserializado

SplFixedArray::__wakeup

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

SplFixedArray::__wakeup — Reinicializa o array após ser desserializado

Descrição

public SplFixedArray::__wakeup(): void

Reinicializa o array após ser desserializado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


A classe SplObjectStorage

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

A classe SplObjectStorage fornece um mapa de objetos para dados ou, ao ignorar os dados, um conjunto de objetos. Esse propósito duplo pode ser útil em muitos casos que envolvem a necessidade de identificar objetos de forma única.

Resumo da classe

class SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess {
/* Métodos */
public addAll(SplObjectStorage $storage): int
public attach(object $object, mixed $info = null): void
public contains(object $object): bool
public count(int $mode = COUNT_NORMAL): int
public current(): object
public detach(object $object): void
public getHash(object $object): string
public getInfo(): mixed
public key(): int
public next(): void
public offsetExists(object $object): bool
public offsetGet(object $object): mixed
public offsetSet(object $object, mixed $info = null): void
public offsetUnset(object $object): void
public removeAll(SplObjectStorage $storage): int
public removeAllExcept(SplObjectStorage $storage): int
public rewind(): void
public serialize(): string
public setInfo(mixed $info): void
public unserialize(string $data): void
public valid(): bool
}

Exemplos

Exemplo #1 SplObjectStorage como um conjunto

<?php
// Como um conjunto de objetos
$s = new SplObjectStorage();

$o1 = new stdClass;
$o2 = new stdClass;
$o3 = new stdClass;

$s->attach($o1);
$s->attach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));

$s->detach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Exemplo #2 SplObjectStorage como um mapa

<?php
// Como um mapa de objetos para dados
$s = new SplObjectStorage();

$o1 = new stdClass;
$o2 = new stdClass;
$o3 = new stdClass;

$s[$o1] = "data for object 1";
$s[$o2] = array(1,2,3);

if (isset($s[$o2])) {
var_dump($s[$o2]);
}
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Índice

  • SplObjectStorage::addAll — Adiciona todos os objetos de outro armazenamento
  • SplObjectStorage::attach — Adiciona um objeto no armazenamento
  • SplObjectStorage::contains — Verifica se no armazenamento contém um objeto específico
  • SplObjectStorage::count — Retorna o número de objetos no armazenamento
  • SplObjectStorage::current — Retorna a entrada atual do armazenamento
  • SplObjectStorage::detach — Remove um object do armazenamento
  • SplObjectStorage::getHash — Calcula um identificador único para os objetos contidos
  • SplObjectStorage::getInfo — Retorna os dados associados à entrada atual do iterador
  • SplObjectStorage::key — Retorna o índice em que o iterador está atualmente
  • SplObjectStorage::next — Move para a próxima entrada
  • SplObjectStorage::offsetExists — Verifica se um objeto existe no armazenamento
  • SplObjectStorage::offsetGet — Retorna os dados associados a um object
  • SplObjectStorage::offsetSet — Associa dados a um objeto no armazenamento
  • SplObjectStorage::offsetUnset — Remove um objeto do armazenamento
  • SplObjectStorage::removeAll — Remove objetos contidos em outro armazenamento do armazenamento atual
  • SplObjectStorage::removeAllExcept — Remove todos os objetos, exceto aqueles contidos em outro armazenamento, do armazenamento atual
  • SplObjectStorage::rewind — Retrocede o iterador para o primeiro elemento do armazenamento
  • SplObjectStorage::serialize — Serializa o armazenamento
  • SplObjectStorage::setInfo — Define os dados associados à entrada atual do iterador
  • SplObjectStorage::unserialize — Desserializa um armazenamento a partir de sua representação de string
  • SplObjectStorage::valid — Retorna se a entrada atual do iterador é válida


Adiciona todos os objetos de outro armazenamento

  • « SplObjectStorage
  • SplObjectStorage::attach »
  • PHP Manual
  • SplObjectStorage
  • Adiciona todos os objetos de outro armazenamento

SplObjectStorage::addAll

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplObjectStorage::addAll — Adiciona todos os objetos de outro armazenamento

Descrição

public SplObjectStorage::addAll(SplObjectStorage $storage): int

Adiciona todos os pares de objetos-dados de um armazenamento diferente no armazenamento atual.

Parâmetros

storage

O armazenamento que você deseja importar.

Valor Retornado

O número de objetos no armazenamento.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::addAll()

<?php
$o = new stdClass;
$a = new SplObjectStorage();
$a[$o] = "hello";

$b = new SplObjectStorage();
$b->addAll($a);
echo $b[$o]."\n";
?>

O exemplo acima produzirá algo semelhante a:

hello

Veja Também

  • SplObjectStorage::removeAll() - Remove objetos contidos em outro armazenamento do armazenamento atual


Adiciona um objeto no armazenamento

  • « SplObjectStorage::addAll
  • SplObjectStorage::contains »
  • PHP Manual
  • SplObjectStorage
  • Adiciona um objeto no armazenamento

SplObjectStorage::attach

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObjectStorage::attach — Adiciona um objeto no armazenamento

Descrição

public SplObjectStorage::attach(object $object, mixed $info = null): void

Adiciona um object dentro do armazenamento e, opcionalmente, associa-a a alguns dados.

Parâmetros

object

O object a ser adicionado.

info

Os dados a serem associados ao object.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::attach()

<?php
$o1 = new stdClass;
$o2 = new stdClass;
$s = new SplObjectStorage();
$s->attach($o1); // similar a $s[$o1] = NULL;
$s->attach($o2, "hello"); // similar a $s[$o2] = "hello";

var_dump($s[$o1]);
var_dump($s[$o2]);

?>

O exemplo acima produzirá algo semelhante a:

NULL
string(5) "hello"

Veja Também

  • SplObjectStorage::detach() - Remove um object do armazenamento
  • SplObjectStorage::offsetSet() - Associa dados a um objeto no armazenamento


Verifica se no armazenamento contém um objeto específico

  • « SplObjectStorage::attach
  • SplObjectStorage::count »
  • PHP Manual
  • SplObjectStorage
  • Verifica se no armazenamento contém um objeto específico

SplObjectStorage::contains

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObjectStorage::contains — Verifica se no armazenamento contém um objeto específico

Descrição

public SplObjectStorage::contains(object $object): bool

Verifica se no armazenamento contém o object fornecido.

Parâmetros

object

O object a ser procurado.

Valor Retornado

Retorna true se o object estiver no armazenamento, false caso contrário.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::contains()

<?php
$o1 = new stdClass;
$o2 = new stdClass;

$s = new SplObjectStorage();

$s[$o1] = "hello";
var_dump($s->contains($o1));
var_dump($s->contains($o2));
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)

Veja Também

  • SplObjectStorage::offsetExists() - Verifica se um objeto existe no armazenamento


Retorna o número de objetos no armazenamento

  • « SplObjectStorage::contains
  • SplObjectStorage::current »
  • PHP Manual
  • SplObjectStorage
  • Retorna o número de objetos no armazenamento

SplObjectStorage::count

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObjectStorage::count — Retorna o número de objetos no armazenamento

Descrição

public SplObjectStorage::count(int $mode = COUNT_NORMAL): int

Conta o número de objetos no armazenamento.

Parâmetros

mode

Se o parâmetro opcional mode for definido como COUNT_RECURSIVE (ou 1), SplObjectStorage::count() contará recursivamente o armazenamento.

Valor Retornado

O número de objetos no armazenamento.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::count()

<?php
$s = new SplObjectStorage();
$o1 = new stdClass;
$o2 = new stdClass;

$s->attach($o1);
$s->attach($o2);
$s->attach($o1);
var_dump($s->count());
var_dump(count($s));
?>

O exemplo acima produzirá algo semelhante a:

int(2)
int(2)

Veja Também

  • SplObjectStorage::attach() - Adiciona um objeto no armazenamento
  • SplObjectStorage::detach() - Remove um object do armazenamento


Retorna a entrada atual do armazenamento

  • « SplObjectStorage::count
  • SplObjectStorage::detach »
  • PHP Manual
  • SplObjectStorage
  • Retorna a entrada atual do armazenamento

SplObjectStorage::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObjectStorage::current — Retorna a entrada atual do armazenamento

Descrição

public SplObjectStorage::current(): object

Retorna a entrada atual do armazenamento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O object na posição atual do iterador.

Registro de Alterações

Versão | Descrição
8.1.0 | SplObjectStorage::current() agora lança uma exceção Error se a posição atual for inválida. Anteriormente, false era retornado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::current()

<?php
$s = new SplObjectStorage();

$o1 = new stdClass;
$o2 = new stdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
$index = $s->key();
$object = $s->current(); // similar a current($s)
$data = $s->getInfo();

var_dump($object);
var_dump($data);
$s->next();
}
?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Veja Também

  • SplObjectStorage::rewind() - Retrocede o iterador para o primeiro elemento do armazenamento
  • SplObjectStorage::key() - Retorna o índice em que o iterador está atualmente
  • SplObjectStorage::next() - Move para a próxima entrada
  • SplObjectStorage::valid() - Retorna se a entrada atual do iterador é válida
  • SplObjectStorage::getInfo() - Retorna os dados associados à entrada atual do iterador


Remove um object do armazenamento

  • « SplObjectStorage::current
  • SplObjectStorage::getHash »
  • PHP Manual
  • SplObjectStorage
  • Remove um object do armazenamento

SplObjectStorage::detach

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObjectStorage::detach — Remove um object do armazenamento

Descrição

public SplObjectStorage::detach(object $object): void

Remove o object do armazenamento.

Parâmetros

object

O object a ser removido.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::detach()

<?php
$o = new stdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->detach($o);
var_dump(count($s));
?>

O exemplo acima produzirá algo semelhante a:

int(1)
int(0)

Veja Também

  • SplObjectStorage::attach() - Adiciona um objeto no armazenamento
  • SplObjectStorage::removeAll() - Remove objetos contidos em outro armazenamento do armazenamento atual


Calcula um identificador único para os objetos contidos

  • « SplObjectStorage::detach
  • SplObjectStorage::getInfo »
  • PHP Manual
  • SplObjectStorage
  • Calcula um identificador único para os objetos contidos

SplObjectStorage::getHash

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SplObjectStorage::getHash — Calcula um identificador único para os objetos contidos

Descrição

public SplObjectStorage::getHash(object $object): string

Este método calcula um identificador para os objetos adicionados a um objeto SplObjectStorage.

A implementação em SplObjectStorage retorna o mesmo valor que spl_object_hash().

O objeto de armazenamento nunca conterá mais de um objeto com o mesmo identificador. Portanto, pode ser usado para implementar um conjunto (um armazenamento de valores únicos) onde a qualidade de um objeto ser único é determinada pelo fato do valor retornado por esta função ser único.

Parâmetros

object

O objeto cujo identificador será calculado.

Valor Retornado

Uma string com o identificador calculado.

Erros/Exceções

Uma RuntimeException é lançada quando o valor retornado não é uma string.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::getHash()

<?php
class OneSpecimenPerClassStorage extends SplObjectStorage {
public function getHash($o) {
return get_class($o);
}
}
class A {}

$s = new OneSpecimenPerClassStorage;
$o1 = new stdClass;
$o2 = new stdClass;
$o3 = new A;

$s[$o1] = 1;
// $o2 é considerado igual a $o1, então o valor é substituído
$s[$o2] = 2;
$s[$o3] = 3;

// esses são considerados iguais aos objetos anteriores
// então eles podem ser usados para acessar os valores armazenados sob eles
$p1 = new stdClass;
$p2 = new A;
echo $s[$p1], "\n";
echo $s[$p2], "\n";
?>

O exemplo acima produzirá algo semelhante a:

2
3

Veja Também

  • spl_object_hash() - Retorna o ID de hash para o objeto fornecido


Retorna os dados associados à entrada atual do iterador

  • « SplObjectStorage::getHash
  • SplObjectStorage::key »
  • PHP Manual
  • SplObjectStorage
  • Retorna os dados associados à entrada atual do iterador

SplObjectStorage::getInfo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplObjectStorage::getInfo — Retorna os dados associados à entrada atual do iterador

Descrição

public SplObjectStorage::getInfo(): mixed

Retorna os dados ou informações associados ao objeto apontado pela posição atual do iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Os dados associados à posição atual do iterador.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::getInfo()

<?php
$s = new SplObjectStorage();

$o1 = new stdClass;
$o2 = new stdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
$index = $s->key();
$object = $s->current(); // similar a current($s)
$data = $s->getInfo();

var_dump($object);
var_dump($data);
$s->next();
}
?>

O exemplo acima produzirá algo semelhante a:

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Veja Também

  • SplObjectStorage::current() - Retorna a entrada atual do armazenamento
  • SplObjectStorage::rewind() - Retrocede o iterador para o primeiro elemento do armazenamento
  • SplObjectStorage::key() - Retorna o índice em que o iterador está atualmente
  • SplObjectStorage::next() - Move para a próxima entrada
  • SplObjectStorage::valid() - Retorna se a entrada atual do iterador é válida
  • SplObjectStorage::setInfo() - Define os dados associados à entrada atual do iterador


Retorna o índice em que o iterador está atualmente

  • « SplObjectStorage::getInfo
  • SplObjectStorage::next »
  • PHP Manual
  • SplObjectStorage
  • Retorna o índice em que o iterador está atualmente

SplObjectStorage::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObjectStorage::key — Retorna o índice em que o iterador está atualmente

Descrição

public SplObjectStorage::key(): int

Retorna o índice em que o iterador está atualmente.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O índice correspondente à posição do iterador.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::key()

<?php
$s = new SplObjectStorage();

$o1 = new stdClass;
$o2 = new stdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
$index = $s->key();
$object = $s->current(); // similar a current($s)

var_dump($index);
var_dump($object);
$s->next();
}
?>

O exemplo acima produzirá algo semelhante a:

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Veja Também

  • SplObjectStorage::rewind() - Retrocede o iterador para o primeiro elemento do armazenamento
  • SplObjectStorage::current() - Retorna a entrada atual do armazenamento
  • SplObjectStorage::next() - Move para a próxima entrada
  • SplObjectStorage::valid() - Retorna se a entrada atual do iterador é válida


Move para a próxima entrada

  • « SplObjectStorage::key
  • SplObjectStorage::offsetExists »
  • PHP Manual
  • SplObjectStorage
  • Move para a próxima entrada

SplObjectStorage::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObjectStorage::next — Move para a próxima entrada

Descrição

public SplObjectStorage::next(): void

Move o iterador para o próximo object no armazenamento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::next()

<?php
$s = new SplObjectStorage();

$o1 = new stdClass;
$o2 = new stdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
$index = $s->key();
$object = $s->current(); // similar a current($s)

var_dump($index);
var_dump($object);
$s->next();
}
?>

O exemplo acima produzirá algo semelhante a:

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Veja Também

  • SPLObjectStorage::rewind() - Retrocede o iterador para o primeiro elemento do armazenamento


Verifica se um objeto existe no armazenamento

  • « SplObjectStorage::next
  • SplObjectStorage::offsetGet »
  • PHP Manual
  • SplObjectStorage
  • Verifica se um objeto existe no armazenamento

SplObjectStorage::offsetExists

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplObjectStorage::offsetExists — Verifica se um objeto existe no armazenamento

Descrição

public SplObjectStorage::offsetExists(object $object): bool

Verifica se um object existe no armazenamento.

Nota:

SplObjectStorage::offsetExists() é um sinônimo de SplObjectStorage::contains().

Parâmetros

object

O object a ser procurado.

Valor Retornado

Retorna true se o object existe no armazenamento, e false caso contrário.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::offsetExists()

<?php
$s = new SplObjectStorage;
$o1 = new stdClass;
$o2 = new stdClass;

$s->attach($o1);

var_dump($s->offsetExists($o1)); // Similar a isset($s[$o1])
var_dump($s->offsetExists($o2)); // Similar a isset($s[$o2])
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)

Veja Também

  • SplObjectStorage::offsetSet() - Associa dados a um objeto no armazenamento
  • SplObjectStorage::offsetGet() - Retorna os dados associados a um object
  • SplObjectStorage::offsetUnset() - Remove um objeto do armazenamento


Retorna os dados associados a um object

  • « SplObjectStorage::offsetExists
  • SplObjectStorage::offsetSet »
  • PHP Manual
  • SplObjectStorage
  • Retorna os dados associados a um object

SplObjectStorage::offsetGet

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplObjectStorage::offsetGet — Retorna os dados associados a um object

Descrição

public SplObjectStorage::offsetGet(object $object): mixed

Retorna os dados associados a um object no armazenamento.

Parâmetros

object

O object a ser procurado.

Valor Retornado

Os dados previamente associados ao object no armazenamento.

Erros/Exceções

Lança UnexpectedValueException quando o object não pôde ser encontrado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::offsetGet()

<?php
$s = new SplObjectStorage;

$o1 = new stdClass;
$o2 = new stdClass;

$s[$o1] = "hello";
$s->attach($o2);

var_dump($s->offsetGet($o1)); // Similar a $s[$o1]
var_dump($s->offsetGet($o2)); // Similar a $s[$o2]
?>

O exemplo acima produzirá algo semelhante a:

string(5) "hello"
NULL

Veja Também

  • SplObjectStorage::offsetSet() - Associa dados a um objeto no armazenamento
  • SplObjectStorage::offsetExists() - Verifica se um objeto existe no armazenamento
  • SplObjectStorage::offsetUnset() - Remove um objeto do armazenamento


Associa dados a um objeto no armazenamento

  • « SplObjectStorage::offsetGet
  • SplObjectStorage::offsetUnset »
  • PHP Manual
  • SplObjectStorage
  • Associa dados a um objeto no armazenamento

SplObjectStorage::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplObjectStorage::offsetSet — Associa dados a um objeto no armazenamento

Descrição

public SplObjectStorage::offsetSet(object $object, mixed $info = null): void

Associa dados a um object no armazenamento.

Nota:

SplObjectStorage::offsetSet() é um alias de SplObjectStorage::attach().

Parâmetros

object

O object para associar dados.

info

Os dados para associar ao object.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::offsetSet()

<?php
$s = new SplObjectStorage;

$o1 = new stdClass;

$s->offsetSet($o1, "hello"); // Similar a $s[$o1] = "hello";

var_dump($s[$o1]);
?>

O exemplo acima produzirá algo semelhante a:

string(5) "hello"

Veja Também

  • SplObjectStorage::attach() - Adiciona um objeto no armazenamento
  • SplObjectStorage::offsetGet() - Retorna os dados associados a um object
  • SplObjectStorage::offsetExists() - Verifica se um objeto existe no armazenamento
  • SplObjectStorage::offsetUnset() - Remove um objeto do armazenamento


Remove um objeto do armazenamento

  • « SplObjectStorage::offsetSet
  • SplObjectStorage::removeAll »
  • PHP Manual
  • SplObjectStorage
  • Remove um objeto do armazenamento

SplObjectStorage::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplObjectStorage::offsetUnset — Remove um objeto do armazenamento

Descrição

public SplObjectStorage::offsetUnset(object $object): void

Remove um object do armazenamento.

Nota:

SplObjectStorage::offsetUnset() é um alias de SplObjectStorage::detach().

Parâmetros

object

O object a ser removido.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::offsetUnset()

<?php
$o = new stdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->offsetUnset($o); // Similar a unset($s[$o])
var_dump(count($s));
?>

O exemplo acima produzirá algo semelhante a:

int(1)
int(0)

Veja Também

  • SplObjectStorage::offsetGet() - Retorna os dados associados a um object
  • SplObjectStorage::offsetSet() - Associa dados a um objeto no armazenamento
  • SplObjectStorage::offsetExists() - Verifica se um objeto existe no armazenamento


Remove objetos contidos em outro armazenamento do armazenamento atual

  • « SplObjectStorage::offsetUnset
  • SplObjectStorage::removeAllExcept »
  • PHP Manual
  • SplObjectStorage
  • Remove objetos contidos em outro armazenamento do armazenamento atual

SplObjectStorage::removeAll

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplObjectStorage::removeAll — Remove objetos contidos em outro armazenamento do armazenamento atual

Descrição

public SplObjectStorage::removeAll(SplObjectStorage $storage): int

Remove objetos contidos em outro armazenamento do armazenamento atual.

Parâmetros

storage

O armazenamento contendo os elementos a serem removidos.

Valor Retornado

Retorna o número de objetos restantes.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::removeAll()

<?php
$o1 = new stdClass;
$o2 = new stdClass;
$a = new SplObjectStorage();
$a[$o1] = "foo";

$b = new SplObjectStorage();
$b[$o1] = "bar";
$b[$o2] = "gee";

var_dump(count($b));
$b->removeAll($a);
var_dump(count($b));
?>

O exemplo acima produzirá algo semelhante a:

int(2)
int(1)

Veja Também

  • SplObjectStorage::addAll() - Adiciona todos os objetos de outro armazenamento


Remove todos os objetos, exceto aqueles contidos em outro armazenamento, do armazenamento atual

  • « SplObjectStorage::removeAll
  • SplObjectStorage::rewind »
  • PHP Manual
  • SplObjectStorage
  • Remove todos os objetos, exceto aqueles contidos em outro armazenamento, do armazenamento atual

SplObjectStorage::removeAllExcept

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

SplObjectStorage::removeAllExcept — Remove todos os objetos, exceto aqueles contidos em outro armazenamento, do armazenamento atual

Descrição

public SplObjectStorage::removeAllExcept(SplObjectStorage $storage): int

Remove todos os objetos, exceto aqueles contidos em outro armazenamento, do armazenamento atual.

Parâmetros

storage

O armazenamento contendo os elementos a serem retidos no armazenamento atual.

Valor Retornado

Retorna o número de objetos restantes.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::removeAllExcept()

<?php
$a = (object) 'a';
$b = (object) 'b';
$c = (object) 'c';

$foo = new SplObjectStorage;
$foo->attach($a);
$foo->attach($b);

$bar = new SplObjectStorage;
$bar->attach($b);
$bar->attach($c);

$foo->removeAllExcept($bar);
var_dump($foo->contains($a));
var_dump($foo->contains($b));
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Retrocede o iterador para o primeiro elemento do armazenamento

  • « SplObjectStorage::removeAllExcept
  • SplObjectStorage::serialize »
  • PHP Manual
  • SplObjectStorage
  • Retrocede o iterador para o primeiro elemento do armazenamento

SplObjectStorage::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObjectStorage::rewind — Retrocede o iterador para o primeiro elemento do armazenamento

Descrição

public SplObjectStorage::rewind(): void

Retrocede o iterador para o primeiro elemento do armazenamento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::rewind()

<?php
$s = new SplObjectStorage();

$o1 = new stdClass;
$o2 = new stdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
$index = $s->key();
$object = $s->current(); // similar a current($s)
$data = $s->getInfo();

var_dump($object);
var_dump($data);
$s->next();
}
?>

O exemplo acima produzirá algo semelhante a:

int(1)
int(0)

Veja Também

  • SplObjectStorage::next() - Move para a próxima entrada


Serializa o armazenamento

  • « SplObjectStorage::rewind
  • SplObjectStorage::setInfo »
  • PHP Manual
  • SplObjectStorage
  • Serializa o armazenamento

SplObjectStorage::serialize

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplObjectStorage::serialize — Serializa o armazenamento

Descrição

public SplObjectStorage::serialize(): string

Retorna uma representação em string do armazenamento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma string representando o armazenamento.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::serialize()

<?php
$s = new SplObjectStorage;
$o = new stdClass;
$s[$o] = "data";

echo $s->serialize()."\n";
?>

O exemplo acima produzirá algo semelhante a:

x:i:1;O:8:"stdClass":0:{},s:4:"data";;m:a:0:{}

Veja Também

  • SplObjectStorage::unserialize() - Desserializa um armazenamento a partir de sua representação de string


Define os dados associados à entrada atual do iterador

  • « SplObjectStorage::serialize
  • SplObjectStorage::unserialize »
  • PHP Manual
  • SplObjectStorage
  • Define os dados associados à entrada atual do iterador

SplObjectStorage::setInfo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplObjectStorage::setInfo — Define os dados associados à entrada atual do iterador

Descrição

public SplObjectStorage::setInfo(mixed $info): void

Associa dados, ou informações, ao objeto atualmente apontado pelo iterador.

Parâmetros

info

Os dados a serem associados à entrada atual do iterador.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::setInfo()

<?php
$s = new SplObjectStorage();

$o1 = new stdClass;
$o2 = new stdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
$s->setInfo("new");
$s->next();
}
var_dump($s[$o1]);
var_dump($s[$o2]);
?>

O exemplo acima produzirá algo semelhante a:

string(3) "new"
string(3) "new"

Veja Também

  • SplObjectStorage::current() - Retorna a entrada atual do armazenamento
  • SplObjectStorage::rewind() - Retrocede o iterador para o primeiro elemento do armazenamento
  • SplObjectStorage::key() - Retorna o índice em que o iterador está atualmente
  • SplObjectStorage::next() - Move para a próxima entrada
  • SplObjectStorage::valid() - Retorna se a entrada atual do iterador é válida
  • SplObjectStorage::getInfo() - Retorna os dados associados à entrada atual do iterador


Desserializa um armazenamento a partir de sua representação de string

  • « SplObjectStorage::setInfo
  • SplObjectStorage::valid »
  • PHP Manual
  • SplObjectStorage
  • Desserializa um armazenamento a partir de sua representação de string

SplObjectStorage::unserialize

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplObjectStorage::unserialize — Desserializa um armazenamento a partir de sua representação de string

Descrição

public SplObjectStorage::unserialize(string $data): void

Desserializa entradas de armazenamento e as associa ao armazenamento atual.

Parâmetros

data

A representação serializada de um armazenamento.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::unserialize()

<?php
$s1 = new SplObjectStorage;
$s2 = new SplObjectStorage;
$o = new stdClass;
$s1[$o] = "data";

$s2->unserialize($s1->serialize());

var_dump(count($s2));
?>

O exemplo acima produzirá algo semelhante a:

int(1)

Veja Também

  • SplObjectStorage::serialize() - Serializa o armazenamento


Retorna se a entrada atual do iterador é válida

  • « SplObjectStorage::unserialize
  • Iteradores »
  • PHP Manual
  • SplObjectStorage
  • Retorna se a entrada atual do iterador é válida

SplObjectStorage::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObjectStorage::valid — Retorna se a entrada atual do iterador é válida

Descrição

public SplObjectStorage::valid(): bool

Retorna se a entrada atual do iterador é válida.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a entrada do iterador for válida, false caso contrário.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::valid()

<?php
$s = new SplObjectStorage();

$o1 = new stdClass;
$o2 = new stdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
echo $s->key()."\n";
$s->next();
}
?>

O exemplo acima produzirá algo semelhante a:

0
1

Veja Também

  • SplObjectStorage::current() - Retorna a entrada atual do armazenamento
  • SplObjectStorage::getInfo() - Retorna os dados associados à entrada atual do iterador


Iteradores

Índice

  • AppendIterator
  • ArrayIterator
  • CachingIterator
  • CallbackFilterIterator
  • DirectoryIterator
  • EmptyIterator
  • FilesystemIterator
  • FilterIterator
  • GlobIterator
  • InfiniteIterator
  • IteratorIterator
  • LimitIterator
  • MultipleIterator
  • NoRewindIterator
  • ParentIterator
  • RecursiveArrayIterator
  • RecursiveCachingIterator
  • RecursiveCallbackFilterIterator
  • RecursiveDirectoryIterator
  • RecursiveFilterIterator
  • RecursiveIteratorIterator
  • RecursiveRegexIterator
  • RecursiveTreeIterator
  • RegexIterator

A SPL fornece um conjunto de iteradores para percorrer objetos.

Árvore de Classes de Iteradores SPL

  • ArrayIterator
    • RecursiveArrayIterator
  • EmptyIterator
  • IteratorIterator
    • AppendIterator
    • CachingIterator
      • RecursiveCachingIterator
    • FilterIterator
      • CallbackFilterIterator
        • RecursiveCallbackFilterIterator
      • RecursiveFilterIterator
        • ParentIterator
      • RegexIterator
        • RecursiveRegexIterator
    • InfiniteIterator
    • LimitIterator
    • NoRewindIterator
  • MultipleIterator
  • RecursiveIteratorIterator
    • RecursiveTreeIterator
  • DirectoryIterator (estende SplFileInfo)
    • FilesystemIterator
      • GlobIterator
      • RecursiveDirectoryIterator


A classe AppendIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Um Iterador que itera sobre vários iteradores um após o outro.

Resumo da classe

class AppendIterator extends IteratorIterator {
/* Métodos */
public __construct()
public append(Iterator $iterator): void
public current(): mixed
public getArrayIterator(): ArrayIterator
public getIteratorIndex(): ?int
public key(): scalar
public next(): void
public rewind(): void
public valid(): bool
/* Métodos herdados */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Índice

  • AppendIterator::append — Acrescenta um iterador
  • AppendIterator::__construct — Constrói um AppendIterator
  • AppendIterator::current — Obtém o valor atual
  • AppendIterator::getArrayIterator — Obtém o ArrayIterator
  • AppendIterator::getIteratorIndex — Obtém um índice dos iteradores
  • AppendIterator::key — Obtém a chave atual
  • AppendIterator::next — Move para o próximo elemento
  • AppendIterator::rewind — Rebobina o Iterador
  • AppendIterator::valid — Verifica a validade do elemento atual


Acrescenta um iterador

  • « AppendIterator
  • AppendIterator::__construct »
  • PHP Manual
  • AppendIterator
  • Acrescenta um iterador

AppendIterator::append

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

AppendIterator::append — Acrescenta um iterador

Descrição

public AppendIterator::append(Iterator $iterator): void

Acrescenta um iterador.

Parâmetros

iterator

O iterador a ser acrescentado.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de AppendIterator::append()

<?php
$array_a = new ArrayIterator(array('a', 'b', 'c'));
$array_b = new ArrayIterator(array('d', 'e', 'f'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $current) {
echo $current;
}
?>

O exemplo acima produzirá:

abcdef

Veja Também

  • AppendIterator::__construct() - Constrói um AppendIterator


Constrói um AppendIterator

  • « AppendIterator::append
  • AppendIterator::current »
  • PHP Manual
  • AppendIterator
  • Constrói um AppendIterator

AppendIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

AppendIterator::__construct — Constrói um AppendIterator

Descrição

public AppendIterator::__construct()

Constrói um AppendIterator.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 Iterando o AppendIterator com foreach

<?php
$pizzas = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
$toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

foreach ($appendIterator as $key => $item) {
echo $key . ' => ' . $item . PHP_EOL;
}
?>

O exemplo acima produzirá:

0 => Margarita
1 => Siciliana
2 => Hawaii
0 => Cheese
1 => Anchovies
2 => Olives
3 => Pineapple
4 => Ham

Exemplo #2 Iterando o AppendIterator com a API do AppendIterator

<?php
$pizzas = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
$toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

while ($appendIterator->valid()) {
printf(
'%s => %s => %s%s',
$appendIterator->getIteratorIndex(),
$appendIterator->key(),
$appendIterator->current(),
PHP_EOL
);
$appendIterator->next();
}
?>

O exemplo acima produzirá:

0 => 0 => Margarita
0 => 1 => Siciliana
0 => 2 => Hawaii
1 => 0 => Cheese
1 => 1 => Anchovies
1 => 2 => Olives
1 => 3 => Pineapple
1 => 4 => Ham

Notas

Cuidado

Ao usar iterator_to_array() para copiar os valores do AppendIterator para um array, você deve definir o argumento opcional use_key como false. Quando use_key não é false, quaisquer chaves recorrentes em iteradores internos serão sobrescritas no array retornado. Não há como preservar as chaves originais.

Veja Também

  • AppendIterator::append() - Acrescenta um iterador


Obtém o valor atual

  • « AppendIterator::__construct
  • AppendIterator::getArrayIterator »
  • PHP Manual
  • AppendIterator
  • Obtém o valor atual

AppendIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

AppendIterator::current — Obtém o valor atual

Descrição

public AppendIterator::current(): mixed

Obtém o valor atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor atual se for válido ou null caso contrário.

Veja Também

  • Iterator::current() - Retorna o elemento atual
  • AppendIterator::key() - Obtém a chave atual
  • AppendIterator::valid() - Verifica a validade do elemento atual
  • AppendIterator::next() - Move para o próximo elemento
  • AppendIterator::rewind() - Rebobina o Iterador


Obtém o ArrayIterator

  • « AppendIterator::current
  • AppendIterator::getIteratorIndex »
  • PHP Manual
  • AppendIterator
  • Obtém o ArrayIterator

AppendIterator::getArrayIterator

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

AppendIterator::getArrayIterator — Obtém o ArrayIterator

Descrição

public AppendIterator::getArrayIterator(): ArrayIterator

Este método obtém o ArrayIterator que é usado para armazenar os iteradores adicionados com AppendIterator::append().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um ArrayIterator contendo os iteradores anexados.

Veja Também

  • AppendIterator::getInnerIterator()


Obtém um índice dos iteradores

  • « AppendIterator::getArrayIterator
  • AppendIterator::key »
  • PHP Manual
  • AppendIterator
  • Obtém um índice dos iteradores

AppendIterator::getIteratorIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

AppendIterator::getIteratorIndex — Obtém um índice dos iteradores

Descrição

public AppendIterator::getIteratorIndex(): ?int

Obtém o índice do iterador interno atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o índice baseado em zero, inteiro, do iterador interno atual se existir, ou null caso contrário.

Exemplos

Exemplo #1 Exemplo básico de AppendIterator.getIteratorIndex()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new ArrayIterator(array('apple', 'orange', 'lemon'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $key => $current) {
echo $iterator->getIteratorIndex() . ' ' . $key . ' ' . $current . PHP_EOL;
}
?>

O exemplo acima produzirá:

0  a aardwolf
0  b bear
0  c capybara
1  0 apple
1  1 orange
1  2 lemon

Veja Também

  • AppendIterator::getInnerIterator()
  • AppendIterator::getArrayIterator() - Obtém o ArrayIterator


Obtém a chave atual

  • « AppendIterator::getIteratorIndex
  • AppendIterator::next »
  • PHP Manual
  • AppendIterator
  • Obtém a chave atual

AppendIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

AppendIterator::key — Obtém a chave atual

Descrição

public AppendIterator::key(): scalar

Obtém a chave atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A chave atual se for válida ou null caso contrário.

Exemplos

Exemplo #1 Exemplo básico de AppendIterator::key()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new ArrayIterator(array('apple', 'orange', 'lemon'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

// Iteração manual
$iterator->rewind();
while ($iterator->valid()) {
echo $iterator->key() . ' ' . $iterator->current() . PHP_EOL;
$iterator->next();
}

echo PHP_EOL;

// Com foreach
foreach ($iterator as $key => $current) {
echo $key . ' ' . $current . PHP_EOL;
}
?>

O exemplo acima produzirá:

a aardwolf
b bear
c capybara
0 apple
1 orange
2 lemon

a aardwolf
b bear
c capybara
0 apple
1 orange
2 lemon

Veja Também

  • Iterator::key() - Retorna a chave do elemento atual
  • AppendIterator::current() - Obtém o valor atual
  • AppendIterator::valid() - Verifica a validade do elemento atual
  • AppendIterator::next() - Move para o próximo elemento
  • AppendIterator::rewind() - Rebobina o Iterador


Move para o próximo elemento

  • « AppendIterator::key
  • AppendIterator::rewind »
  • PHP Manual
  • AppendIterator
  • Move para o próximo elemento

AppendIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

AppendIterator::next — Move para o próximo elemento

Descrição

public AppendIterator::next(): void

Move para o próximo elemento. Se isso significa ir para outro Iterador, então ele rebobina aquele Iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Iterator::next() - Move para o próximo elemento
  • AppendIterator::current() - Obtém o valor atual
  • AppendIterator::key() - Obtém a chave atual
  • AppendIterator::valid() - Verifica a validade do elemento atual
  • AppendIterator::rewind() - Rebobina o Iterador


Rebobina o Iterador

  • « AppendIterator::next
  • AppendIterator::valid »
  • PHP Manual
  • AppendIterator
  • Rebobina o Iterador

AppendIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

AppendIterator::rewind — Rebobina o Iterador

Descrição

public AppendIterator::rewind(): void

Rebobina para o primeiro elemento do primeiro Iterador interno.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Iterator::rewind() - Retreocede o Iterator para o primeiro elemento
  • AppendIterator::current() - Obtém o valor atual
  • AppendIterator::key() - Obtém a chave atual
  • AppendIterator::next() - Move para o próximo elemento
  • AppendIterator::valid() - Verifica a validade do elemento atual


Verifica a validade do elemento atual

  • « AppendIterator::rewind
  • ArrayIterator »
  • PHP Manual
  • AppendIterator
  • Verifica a validade do elemento atual

AppendIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

AppendIterator::valid — Verifica a validade do elemento atual

Descrição

public AppendIterator::valid(): bool

Verifica a validade do elemento atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a iteração atual for válida, false caso contrário.

Veja Também

  • AppendIterator::current() - Obtém o valor atual
  • AppendIterator::key() - Obtém a chave atual
  • AppendIterator::next() - Move para o próximo elemento
  • AppendIterator::rewind() - Rebobina o Iterador


A classe ArrayIterator

(PHP 5, PHP 7, PHP 8)

Introdução

Permite a remoção de elementos, e a modificação de chaves e valores enquanto iterando sobre arrays ou objetos.

Quando você quiser iterar o mesmo array múltiplas vezes você precisa instanciar ArrayObject e criar instâncias de ArrayIterator que é consultado usando foreach ou chamando o método getIterator() diretamente.

Resumo da classe

class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Countable {
/* Constantes */
public const int STD_PROP_LIST;
public const int ARRAY_AS_PROPS;
/* Métodos */
public __construct(array|object $array = [], int $flags = 0)
public append(mixed $value): void
public asort(int $flags = SORT_REGULAR): true
public count(): int
public current(): mixed
public getArrayCopy(): array
public getFlags(): int
public key(): string|int|null
public ksort(int $flags = SORT_REGULAR): true
public natcasesort(): true
public natsort(): true
public next(): void
public offsetExists(mixed $key): bool
public offsetGet(mixed $key): mixed
public offsetSet(mixed $key, mixed $value): void
public offsetUnset(mixed $key): void
public rewind(): void
public seek(int $offset): void
public serialize(): string
public setFlags(int $flags): void
public uasort(callable $callback): true
public uksort(callable $callback): true
public unserialize(string $data): void
public valid(): bool
}

Constantes pré-definidas

ArrayIterator Flags

ArrayIterator::STD_PROP_LIST

As propriedades de objeto tem sua funcionalidade normal quando acessados via listagem (var_dump, foreach, etc.).

ArrayIterator::ARRAY_AS_PROPS

Itens podem ser acessados como propriedades (leitura e escrita).

Índice

  • ArrayIterator::append — Anexa um elemento
  • ArrayIterator::asort — Ordena entradas pelos valores
  • ArrayIterator::__construct — Constrói um ArrayIterator
  • ArrayIterator::count — Conta os elementos
  • ArrayIterator::current — Retorna o valor do elemento atual do array
  • ArrayIterator::getArrayCopy — Obtém cópia do array
  • ArrayIterator::getFlags — Retorna as flags de comportamento
  • ArrayIterator::key — Retorna a chave do elemento atual do array
  • ArrayIterator::ksort — Ordena entradas por chaves
  • ArrayIterator::natcasesort — Ordena entradas naturalmente, sem diferenciar maiúsculas de minúsculas
  • ArrayIterator::natsort — Ordena entradas naturalmente
  • ArrayIterator::next — Avança para o próximo elemento
  • ArrayIterator::offsetExists — Verificar se o deslocamento existe
  • ArrayIterator::offsetGet — Obtém valor para um deslocamento
  • ArrayIterator::offsetSet — Define valor para um deslocamento
  • ArrayIterator::offsetUnset — Remove valor para um deslocamento
  • ArrayIterator::rewind — Recoloca o array no início
  • ArrayIterator::seek — Aponta para determinada posição
  • ArrayIterator::serialize — Serializa
  • ArrayIterator::setFlags — Define as flags que irão alterar o comportamento
  • ArrayIterator::uasort — Ordena com uma função de comparação definida pelo usuário e manter a associação de índices
  • ArrayIterator::uksort — Ordena por chaves usando uma função de comparação definida pelo usuário
  • ArrayIterator::unserialize — Desserializa
  • ArrayIterator::valid — Verifica se o array possui mais elementos


Anexa um elemento

  • « ArrayIterator
  • ArrayIterator::asort »
  • PHP Manual
  • ArrayIterator
  • Anexa um elemento

ArrayIterator::append

(PHP 5, PHP 7, PHP 8)

ArrayIterator::append — Anexa um elemento

Descrição

public ArrayIterator::append(mixed $value): void

Anexa o valor como o último elemento.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

value

O valor a ser anexado.

Valor Retornado

Nenhum valor é retornado.

Notas

Nota:

Este método não pode ser chamado quando o ArrayIterator refere-se a um object.

Veja Também

  • ArrayIterator::next() - Avança para o próximo elemento


Ordena entradas pelos valores

  • « ArrayIterator::append
  • ArrayIterator::__construct »
  • PHP Manual
  • ArrayIterator
  • Ordena entradas pelos valores

ArrayIterator::asort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::asort — Ordena entradas pelos valores

Descrição

public ArrayIterator::asort(int $flags = SORT_REGULAR): true

Ordena as entradas pelos seus valores.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

flags

O segundo parâmetro opcional flags pode ser usado para modificar o comportamento da ordenação usando estes valores:

Flags dos tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente; os detalhes são descritos na seção operadores de comparação
  • SORT_NUMERIC - compara os elementos numericamente
  • SORT_STRING - compara os elementos como strings
  • SORT_LOCALE_STRING - compara os elementos como strings, com base na localidade atual. A localidade pode ser alterada usando setlocale()
  • SORT_NATURAL - compara os elementos como strings usando "ordenação natural" como natsort()
  • SORT_FLAG_CASE - pode ser combinada (usando o operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem fazer distinção entre maiúsculas e minúsculas

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Veja Também

  • ArrayIterator::ksort() - Ordena entradas por chaves
  • ArrayIterator::natcasesort() - Ordena entradas naturalmente, sem diferenciar maiúsculas de minúsculas
  • ArrayIterator::natsort() - Ordena entradas naturalmente
  • ArrayIterator::uasort() - Ordena com uma função de comparação definida pelo usuário e manter a associação de índices
  • ArrayIterator::uksort() - Ordena por chaves usando uma função de comparação definida pelo usuário
  • asort() - Ordena um array em ordem crescente e mantém a associação de índices


Constrói um ArrayIterator

  • « ArrayIterator::asort
  • ArrayIterator::count »
  • PHP Manual
  • ArrayIterator
  • Constrói um ArrayIterator

ArrayIterator::__construct

(PHP 5, PHP 7, PHP 8)

ArrayIterator::__construct — Constrói um ArrayIterator

Descrição

public ArrayIterator::__construct(array|object $array = [], int $flags = 0)

Constrói um ArrayIterator object.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

array

O array ou objeto a ser iterado.

flags

Flags para controlar o comportamento do objeto ArrayIterator. Veja ArrayIterator::setFlags().

Veja Também

  • ArrayIterator::getArrayCopy() - Obtém cópia do array


Conta os elementos

  • « ArrayIterator::__construct
  • ArrayIterator::current »
  • PHP Manual
  • ArrayIterator
  • Conta os elementos

ArrayIterator::count

(PHP 5, PHP 7, PHP 8)

ArrayIterator::count — Conta os elementos

Descrição

public ArrayIterator::count(): int

Retorna o número de elementos no array, ou o número de atributos públicos no object.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O número de elementos ou atributos públicos no array ou object, respectivamente.

Veja Também

  • ArrayIterator::getFlags() - Retorna as flags de comportamento


Retorna o valor do elemento atual do array

  • « ArrayIterator::count
  • ArrayIterator::getArrayCopy »
  • PHP Manual
  • ArrayIterator
  • Retorna o valor do elemento atual do array

ArrayIterator::current

(PHP 5, PHP 7, PHP 8)

ArrayIterator::current — Retorna o valor do elemento atual do array

Descrição

public ArrayIterator::current(): mixed

Obtém o atual elemento do array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O atual elemento do array.

Exemplos

Exemplo #1 Exemplo de ArrayIterator::current()

<?php
$array = array('1' => 'um',
'2' => 'dois',
'3' => 'três');

$arrayobject = new ArrayObject($array);

for($iterator = $arrayobject->getIterator();
$iterator->valid();
$iterator->next()) {

echo $iterator->key() . ' => ' . $iterator->current() . "\n";
}
?>

O exemplo acima produzirá:

1 => um
2 => dois
3 => três


Obtém cópia do array

  • « ArrayIterator::current
  • ArrayIterator::getFlags »
  • PHP Manual
  • ArrayIterator
  • Obtém cópia do array

ArrayIterator::getArrayCopy

(PHP 5, PHP 7, PHP 8)

ArrayIterator::getArrayCopy — Obtém cópia do array

Descrição

public ArrayIterator::getArrayCopy(): array

Obtém uma cópia de um array.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma cópia do array, ou um array de propriedades públicas se o ArrayIterator referir-se a um object.

Veja Também

  • ArrayIterator::valid() - Verifica se o array possui mais elementos


Retorna as flags de comportamento

  • « ArrayIterator::getArrayCopy
  • ArrayIterator::key »
  • PHP Manual
  • ArrayIterator
  • Retorna as flags de comportamento

ArrayIterator::getFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayIterator::getFlags — Retorna as flags de comportamento

Descrição

public ArrayIterator::getFlags(): int

Retorna as flags de comportamento do ArrayIterator. Veja o método ArrayIterator::setFlags para saber as flags disponíveis.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna as flags de comportamento do ArrayIterator.

Veja Também

  • ArrayIterator::setFlags() - Define as flags que irão alterar o comportamento
  • ArrayIterator::valid() - Verifica se o array possui mais elementos


Retorna a chave do elemento atual do array

  • « ArrayIterator::getFlags
  • ArrayIterator::ksort »
  • PHP Manual
  • ArrayIterator
  • Retorna a chave do elemento atual do array

ArrayIterator::key

(PHP 5, PHP 7, PHP 8)

ArrayIterator::key — Retorna a chave do elemento atual do array

Descrição

public ArrayIterator::key(): string|int|null

Esta função retorna a chave do elemento atual do array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A chave do atual elemento do array.

Exemplos

Exemplo #1 Exemplo de ArrayIterator::key()

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>


Ordena entradas por chaves

  • « ArrayIterator::key
  • ArrayIterator::natcasesort »
  • PHP Manual
  • ArrayIterator
  • Ordena entradas por chaves

ArrayIterator::ksort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::ksort — Ordena entradas por chaves

Descrição

public ArrayIterator::ksort(int $flags = SORT_REGULAR): true

Ordena as entradas pelas suas chaves.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

flags

O segundo parâmetro opcional flags pode ser usado para modificar o comportamento da ordenação usando estes valores:

Flags dos tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente; os detalhes são descritos na seção operadores de comparação
  • SORT_NUMERIC - compara os elementos numericamente
  • SORT_STRING - compara os elementos como strings
  • SORT_LOCALE_STRING - compara os elementos como strings, com base na localidade atual. A localidade pode ser alterada usando setlocale()
  • SORT_NATURAL - compara os elementos como strings usando "ordenação natural" como natsort()
  • SORT_FLAG_CASE - pode ser combinada (usando o operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem fazer distinção entre maiúsculas e minúsculas

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Veja Também

  • ArrayIterator::asort() - Ordena entradas pelos valores
  • ArrayIterator::natcasesort() - Ordena entradas naturalmente, sem diferenciar maiúsculas de minúsculas
  • ArrayIterator::natsort() - Ordena entradas naturalmente
  • ArrayIterator::uasort() - Ordena com uma função de comparação definida pelo usuário e manter a associação de índices
  • ArrayIterator::uksort() - Ordena por chaves usando uma função de comparação definida pelo usuário
  • ksort() - Ordena um array pelas chaves em ordem crescente


Ordena entradas naturalmente, sem diferenciar maiúsculas de minúsculas

  • « ArrayIterator::ksort
  • ArrayIterator::natsort »
  • PHP Manual
  • ArrayIterator
  • Ordena entradas naturalmente, sem diferenciar maiúsculas de minúsculas

ArrayIterator::natcasesort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::natcasesort — Ordena entradas naturalmente, sem diferenciar maiúsculas de minúsculas

Descrição

public ArrayIterator::natcasesort(): true

Ordena as entradas pelos valores usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Veja Também

  • ArrayIterator::asort() - Ordena entradas pelos valores
  • ArrayIterator::ksort() - Ordena entradas por chaves
  • ArrayIterator::natsort() - Ordena entradas naturalmente
  • ArrayIterator::uasort() - Ordena com uma função de comparação definida pelo usuário e manter a associação de índices
  • ArrayIterator::uksort() - Ordena por chaves usando uma função de comparação definida pelo usuário
  • natcasesort() - Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas


Ordena entradas naturalmente

  • « ArrayIterator::natcasesort
  • ArrayIterator::next »
  • PHP Manual
  • ArrayIterator
  • Ordena entradas naturalmente

ArrayIterator::natsort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::natsort — Ordena entradas naturalmente

Descrição

public ArrayIterator::natsort(): true

Ordena as entradas pelos valores usando um algoritmo de "ordem natural".

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Veja Também

  • ArrayIterator::asort() - Ordena entradas pelos valores
  • ArrayIterator::ksort() - Ordena entradas por chaves
  • ArrayIterator::natcasesort() - Ordena entradas naturalmente, sem diferenciar maiúsculas de minúsculas
  • ArrayIterator::uasort() - Ordena com uma função de comparação definida pelo usuário e manter a associação de índices
  • ArrayIterator::uksort() - Ordena por chaves usando uma função de comparação definida pelo usuário
  • natsort() - Ordena um array utilizando o algoritmo de "ordem natural"


Avança para o próximo elemento

  • « ArrayIterator::natsort
  • ArrayIterator::offsetExists »
  • PHP Manual
  • ArrayIterator
  • Avança para o próximo elemento

ArrayIterator::next

(PHP 5, PHP 7, PHP 8)

ArrayIterator::next — Avança para o próximo elemento

Descrição

public ArrayIterator::next(): void

O iterador para o próximo elemento do array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de ArrayIterator::next()

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'um';

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
echo $iterator->key() . ' => ' . $iterator->current() . "\n";

$iterator->next();
}
?>

O exemplo acima produzirá:

0 => zero
1 => um


Verificar se o deslocamento existe

  • « ArrayIterator::next
  • ArrayIterator::offsetGet »
  • PHP Manual
  • ArrayIterator
  • Verificar se o deslocamento existe

ArrayIterator::offsetExists

(PHP 5, PHP 7, PHP 8)

ArrayIterator::offsetExists — Verificar se o deslocamento existe

Descrição

public ArrayIterator::offsetExists(mixed $key): bool

Verifica se o deslocamento existe.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

key

O deslocamento sendo verificado.

Valor Retornado

true se o deslocamento existir, caso contrário false

Veja Também

  • ArrayIterator::valid() - Verifica se o array possui mais elementos


Obtém valor para um deslocamento

  • « ArrayIterator::offsetExists
  • ArrayIterator::offsetSet »
  • PHP Manual
  • ArrayIterator
  • Obtém valor para um deslocamento

ArrayIterator::offsetGet

(PHP 5, PHP 7, PHP 8)

ArrayIterator::offsetGet — Obtém valor para um deslocamento

Descrição

public ArrayIterator::offsetGet(mixed $key): mixed

Obtém o valor do deslocamento fornecido.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

key

O deslocamento para obter o valor.

Valor Retornado

O valor no deslocamento key.

Veja Também

  • ArrayIterator::offsetSet() - Define valor para um deslocamento
  • ArrayIterator::offsetUnset() - Remove valor para um deslocamento


Define valor para um deslocamento

  • « ArrayIterator::offsetGet
  • ArrayIterator::offsetUnset »
  • PHP Manual
  • ArrayIterator
  • Define valor para um deslocamento

ArrayIterator::offsetSet

(PHP 5, PHP 7, PHP 8)

ArrayIterator::offsetSet — Define valor para um deslocamento

Descrição

public ArrayIterator::offsetSet(mixed $key, mixed $value): void

Define um valor para um determinado deslocamento.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

key

O índice para definir.

value

O novo valor a ser armazenado no índice.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • ArrayIterator::offsetGet() - Obtém valor para um deslocamento
  • ArrayIterator::offsetUnset() - Remove valor para um deslocamento


Remove valor para um deslocamento

  • « ArrayIterator::offsetSet
  • ArrayIterator::rewind »
  • PHP Manual
  • ArrayIterator
  • Remove valor para um deslocamento

ArrayIterator::offsetUnset

(PHP 5, PHP 7, PHP 8)

ArrayIterator::offsetUnset — Remove valor para um deslocamento

Descrição

public ArrayIterator::offsetUnset(mixed $key): void

Remove um valor para um deslocamento.

Se a iteração estiver em andamento e ArrayIterator::offsetUnset() for usado para remover o índice atual da iteração, a posição da iteração será avançada para o próximo índice. Como a posição da iteração também é avançada no final de um loop foreach, o uso de ArrayIterator::offsetUnset() dentro de um loop foreach pode resultar em índices sendo pulados.

Parâmetros

key

O deslocamento a ser removido.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • ArrayIterator::offsetGet() - Obtém valor para um deslocamento
  • ArrayIterator::offsetSet() - Define valor para um deslocamento


Recoloca o array no início

  • « ArrayIterator::offsetUnset
  • ArrayIterator::seek »
  • PHP Manual
  • ArrayIterator
  • Recoloca o array no início

ArrayIterator::rewind

(PHP 5, PHP 7, PHP 8)

ArrayIterator::rewind — Recoloca o array no início

Descrição

public ArrayIterator::rewind(): void

Esta função recoloca o iterador no início do array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de ArrayIterator::rewind()

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'um';
$arrayobject[] = 'dois';

$iterator = $arrayobject->getIterator();

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //retornando ao início
echo $iterator->key(); //0
?>


Aponta para determinada posição

  • « ArrayIterator::rewind
  • ArrayIterator::serialize »
  • PHP Manual
  • ArrayIterator
  • Aponta para determinada posição

ArrayIterator::seek

(PHP 5, PHP 7, PHP 8)

ArrayIterator::seek — Aponta para determinada posição

Descrição

public ArrayIterator::seek(int $offset): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

offset

A posição para qual quer apontar.

Valor Retornado

Nenhum valor é retornado.


Serializa

  • « ArrayIterator::seek
  • ArrayIterator::setFlags »
  • PHP Manual
  • ArrayIterator
  • Serializa

ArrayIterator::serialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayIterator::serialize — Serializa

Descrição

public ArrayIterator::serialize(): string

Serializa.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O ArrayIterator serializado.

Veja Também

  • ArrayIterator::unserialize() - Desserializa


Define as flags que irão alterar o comportamento

  • « ArrayIterator::serialize
  • ArrayIterator::uasort »
  • PHP Manual
  • ArrayIterator
  • Define as flags que irão alterar o comportamento

ArrayIterator::setFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayIterator::setFlags — Define as flags que irão alterar o comportamento

Descrição

public ArrayIterator::setFlags(int $flags): void

Define as flags que alteram o comportamento do ArrayIterator

Parâmetros

flags

O novo comportamento do ArrayIterator. Podem ser utilizadas máscara de bits ou constantes. O uso de constantes é fortemente encorajado para garantir compatibilidade com versões futuras.

As flags disponíveis estão listadas abaixo. O atual significado das flags estão descritas nas constantes pré-definidas.

Flags do comportamento do ArrayIterator
value | constant
1 | ArrayIterator::STD_PROP_LIST
2 | ArrayIterator::ARRAY_AS_PROPS

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • ArrayIterator::getFlags() - Retorna as flags de comportamento


Ordena com uma função de comparação definida pelo usuário e manter a associação de índices

  • « ArrayIterator::setFlags
  • ArrayIterator::uksort »
  • PHP Manual
  • ArrayIterator
  • Ordena com uma função de comparação definida pelo usuário e manter a associação de índices

ArrayIterator::uasort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::uasort — Ordena com uma função de comparação definida pelo usuário e manter a associação de índices

Descrição

public ArrayIterator::uasort(callable $callback): true

Este método ordena os elementos de forma que os índices mantenham sua correlação com os valores aos quais estão associados, usando uma função de comparação definida pelo usuário.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

callback

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Veja Também

  • ArrayIterator::asort() - Ordena entradas pelos valores
  • ArrayIterator::ksort() - Ordena entradas por chaves
  • ArrayIterator::natcasesort() - Ordena entradas naturalmente, sem diferenciar maiúsculas de minúsculas
  • ArrayIterator::natsort() - Ordena entradas naturalmente
  • ArrayIterator::uksort() - Ordena por chaves usando uma função de comparação definida pelo usuário
  • uasort() - Ordena um array com uma função de comparação definida pelo usuário e mantém associações de índices


Ordena por chaves usando uma função de comparação definida pelo usuário

  • « ArrayIterator::uasort
  • ArrayIterator::unserialize »
  • PHP Manual
  • ArrayIterator
  • Ordena por chaves usando uma função de comparação definida pelo usuário

ArrayIterator::uksort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::uksort — Ordena por chaves usando uma função de comparação definida pelo usuário

Descrição

public ArrayIterator::uksort(callable $callback): true

Este método ordena os elementos pelas chaves usando uma função de comparação fornecida pelo usuário.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

callback

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Veja Também

  • ArrayIterator::asort() - Ordena entradas pelos valores
  • ArrayIterator::ksort() - Ordena entradas por chaves
  • ArrayIterator::natcasesort() - Ordena entradas naturalmente, sem diferenciar maiúsculas de minúsculas
  • ArrayIterator::natsort() - Ordena entradas naturalmente
  • ArrayIterator::uasort() - Ordena com uma função de comparação definida pelo usuário e manter a associação de índices
  • uksort() - Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.


Desserializa

  • « ArrayIterator::uksort
  • ArrayIterator::valid »
  • PHP Manual
  • ArrayIterator
  • Desserializa

ArrayIterator::unserialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayIterator::unserialize — Desserializa

Descrição

public ArrayIterator::unserialize(string $data): void

Desserializa.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

O objeto ArrayIterator serializado a ser desserializado.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • ArrayIterator::serialize() - Serializa


Verifica se o array possui mais elementos

  • « ArrayIterator::unserialize
  • CachingIterator »
  • PHP Manual
  • ArrayIterator
  • Verifica se o array possui mais elementos

ArrayIterator::valid

(PHP 5, PHP 7, PHP 8)

ArrayIterator::valid — Verifica se o array possui mais elementos

Descrição

public ArrayIterator::valid(): bool

Verifica se o array possui mais algum elemento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o iterador for válido, caso contrário false

Exemplos

Exemplo #1 Exemplo de ArrayIterator::valid()

<?php
$array = array('1' => 'um');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // avança para o próximo item

//bool(false) porque só existe um único elemento no array
var_dump($iterator->valid());
?>


A classe CachingIterator

(PHP 5, PHP 7, PHP 8)

Introdução

Este objeto suporta iteração em cache sobre outro iterador.

Resumo da classe

class CachingIterator extends IteratorIterator implements ArrayAccess, Countable, Stringable {
/* Constantes */
public const int CALL_TOSTRING;
public const int CATCH_GET_CHILD;
public const int TOSTRING_USE_KEY;
public const int TOSTRING_USE_CURRENT;
public const int TOSTRING_USE_INNER;
public const int FULL_CACHE;
/* Métodos */
public __construct(Iterator $iterator, int $flags = CachingIterator::CALL_TOSTRING)
public count(): int
public current(): mixed
public getCache(): array
public getFlags(): int
public hasNext(): bool
public key(): scalar
public next(): void
public offsetExists(string $key): bool
public offsetGet(string $key): mixed
public offsetSet(string $key, mixed $value): void
public offsetUnset(string $key): void
public rewind(): void
public setFlags(int $flags): void
public __toString(): string
public valid(): bool
/* Métodos herdados */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Constantes pré-definidas

CachingIterator::CALL_TOSTRING

Converte cada elemento para string.

CachingIterator::CATCH_GET_CHILD

Não lançar exceção ao acessar filhos.

CachingIterator::TOSTRING_USE_KEY

Usar key para conversão para string.

CachingIterator::TOSTRING_USE_CURRENT

Usar current para conversão para string.

CachingIterator::TOSTRING_USE_INNER

Usar inner para conversão para string.

CachingIterator::FULL_CACHE

Cache de todos os dados lidos.

Registro de Alterações

Versão | Descrição
8.0.0 | CachingIterator implementa Stringable agora.

Índice

  • CachingIterator::__construct — Constrói um novo objeto CachingIterator para o iterador
  • CachingIterator::count — O número de elementos no iterador
  • CachingIterator::current — Retorna o elemento atual
  • CachingIterator::getCache — Recupera o conteúdo do cache
  • CachingIterator::getFlags — Obtém as opções utilizadas
  • CachingIterator::hasNext — Verifica se o iterador interno possui um próximo elemento válido
  • CachingIterator::key — Retorna a chave para o elemento atual
  • CachingIterator::next — Move o iterador para frente
  • CachingIterator::offsetExists — O propósito do offsetExists
  • CachingIterator::offsetGet — O propósito de offsetGet
  • CachingIterator::offsetSet — O propósito do offsetSet
  • CachingIterator::offsetUnset — O objetivo do offsetUnset
  • CachingIterator::rewind — Rebobina o iterador
  • CachingIterator::setFlags — O propósito da função setFlags
  • CachingIterator::__toString — Retorna a representação em string do elemento atual
  • CachingIterator::valid — Verifica se o elemento atual é válido


Constrói um novo objeto CachingIterator para o iterador

  • « CachingIterator
  • CachingIterator::count »
  • PHP Manual
  • CachingIterator
  • Constrói um novo objeto CachingIterator para o iterador

CachingIterator::__construct

(PHP 5, PHP 7, PHP 8)

CachingIterator::__construct — Constrói um novo objeto CachingIterator para o iterador

Descrição

public CachingIterator::__construct(Iterator $iterator, int $flags = CachingIterator::CALL_TOSTRING)
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

iterator

Iterador a ser armazenado em cache

flags

Máscara de bits de opções.


O número de elementos no iterador

  • « CachingIterator::__construct
  • CachingIterator::current »
  • PHP Manual
  • CachingIterator
  • O número de elementos no iterador

CachingIterator::count

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

CachingIterator::count — O número de elementos no iterador

Descrição

public CachingIterator::count(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Pode retornar o número de elementos no iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O número de elementos iterados.


Retorna o elemento atual

  • « CachingIterator::count
  • CachingIterator::getCache »
  • PHP Manual
  • CachingIterator
  • Retorna o elemento atual

CachingIterator::current

(PHP 5, PHP 7, PHP 8)

CachingIterator::current — Retorna o elemento atual

Descrição

public CachingIterator::current(): mixed
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Pode retornar o elemento atual na iteração.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Diversos

Veja Também

  • Iterator::current() - Retorna o elemento atual


Recupera o conteúdo do cache

  • « CachingIterator::current
  • CachingIterator::getFlags »
  • PHP Manual
  • CachingIterator
  • Recupera o conteúdo do cache

CachingIterator::getCache

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::getCache — Recupera o conteúdo do cache

Descrição

public CachingIterator::getCache(): array

Recupera o conteúdo do cache.

Nota:

A opção CachingIterator::FULL_CACHE deve estar sendo utilizada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo os itens do cache.

Erros/Exceções

Lança uma BadMethodCallException quando a opção CachingIterator::FULL_CACHE não está sendo utilizada.

Exemplos

Exemplo #1 Exemplo de CachingIterator::getCache()

<?php
$iterator = new ArrayIterator(array(1, 2, 3));
$cache = new CachingIterator($iterator, CachingIterator::FULL_CACHE);

$cache->next();
$cache->next();
var_dump($cache->getCache());

$cache->next();
var_dump($cache->getCache());
?>

O exemplo acima produzirá:

array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Obtém as opções utilizadas

  • « CachingIterator::getCache
  • CachingIterator::hasNext »
  • PHP Manual
  • CachingIterator
  • Obtém as opções utilizadas

CachingIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::getFlags — Obtém as opções utilizadas

Descrição

public CachingIterator::getFlags(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Obtenha a máscara de bits das opções usadas para esta instância de CachingIterator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Descrição...


Verifica se o iterador interno possui um próximo elemento válido

  • « CachingIterator::getFlags
  • CachingIterator::key »
  • PHP Manual
  • CachingIterator
  • Verifica se o iterador interno possui um próximo elemento válido

CachingIterator::hasNext

(PHP 5, PHP 7, PHP 8)

CachingIterator::hasNext — Verifica se o iterador interno possui um próximo elemento válido

Descrição

public CachingIterator::hasNext(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Retorna a chave para o elemento atual

  • « CachingIterator::hasNext
  • CachingIterator::next »
  • PHP Manual
  • CachingIterator
  • Retorna a chave para o elemento atual

CachingIterator::key

(PHP 5, PHP 7, PHP 8)

CachingIterator::key — Retorna a chave para o elemento atual

Descrição

public CachingIterator::key(): scalar
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Este método pode retornar uma chave para o elemento atual.

Parâmetros

Esta função não possui parâmetros.


Move o iterador para frente

  • « CachingIterator::key
  • CachingIterator::offsetExists »
  • PHP Manual
  • CachingIterator
  • Move o iterador para frente

CachingIterator::next

(PHP 5, PHP 7, PHP 8)

CachingIterator::next — Move o iterador para frente

Descrição

public CachingIterator::next(): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Mover o iterador para frente.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


O propósito do offsetExists

  • « CachingIterator::next
  • CachingIterator::offsetGet »
  • PHP Manual
  • CachingIterator
  • O propósito do offsetExists

CachingIterator::offsetExists

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::offsetExists — O propósito do offsetExists

Descrição

public CachingIterator::offsetExists(string $key): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

key

O índice sendo verificado.

Valor Retornado

Retorna true se uma entrada referenciada pelo offset existe, false caso contrário.


O propósito de offsetGet

  • « CachingIterator::offsetExists
  • CachingIterator::offsetSet »
  • PHP Manual
  • CachingIterator
  • O propósito de offsetGet

CachingIterator::offsetGet

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::offsetGet — O propósito de offsetGet

Descrição

public CachingIterator::offsetGet(string $key): mixed
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

key

Descrição...

Valor Retornado

Descrição...


O propósito do offsetSet

  • « CachingIterator::offsetGet
  • CachingIterator::offsetUnset »
  • PHP Manual
  • CachingIterator
  • O propósito do offsetSet

CachingIterator::offsetSet

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::offsetSet — O propósito do offsetSet

Descrição

public CachingIterator::offsetSet(string $key, mixed $value): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

key

O índice do elemento a ser definido.

value

O novo valor para o key.

Valor Retornado

Nenhum valor é retornado.


O objetivo do offsetUnset

  • « CachingIterator::offsetSet
  • CachingIterator::rewind »
  • PHP Manual
  • CachingIterator
  • O objetivo do offsetUnset

CachingIterator::offsetUnset

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::offsetUnset — O objetivo do offsetUnset

Descrição

public CachingIterator::offsetUnset(string $key): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

key

O índice do elemento a ser removido.

Valor Retornado

Nenhum valor é retornado.


Rebobina o iterador

  • « CachingIterator::offsetUnset
  • CachingIterator::setFlags »
  • PHP Manual
  • CachingIterator
  • Rebobina o iterador

CachingIterator::rewind

(PHP 5, PHP 7, PHP 8)

CachingIterator::rewind — Rebobina o iterador

Descrição

public CachingIterator::rewind(): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Rebobina o iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


O propósito da função setFlags

  • « CachingIterator::rewind
  • CachingIterator::__toString »
  • PHP Manual
  • CachingIterator
  • O propósito da função setFlags

CachingIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::setFlags — O propósito da função setFlags

Descrição

public CachingIterator::setFlags(int $flags): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Define as opções para o objeto CachingIterator.

Parâmetros

flags

Máscara de bits das opções a serem definidas.

Valor Retornado

Nenhum valor é retornado.


Retorna a representação em string do elemento atual

  • « CachingIterator::setFlags
  • CachingIterator::valid »
  • PHP Manual
  • CachingIterator
  • Retorna a representação em string do elemento atual

CachingIterator::__toString

(PHP 5, PHP 7, PHP 8)

CachingIterator::__toString — Retorna a representação em string do elemento atual

Descrição

public CachingIterator::__toString(): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Obtém a representação em string do elemento atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A representação em string do elemento atual.


Verifica se o elemento atual é válido

  • « CachingIterator::__toString
  • CallbackFilterIterator »
  • PHP Manual
  • CachingIterator
  • Verifica se o elemento atual é válido

CachingIterator::valid

(PHP 5, PHP 7, PHP 8)

CachingIterator::valid — Verifica se o elemento atual é válido

Descrição

public CachingIterator::valid(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Verifica se o elemento atual é válido.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


A classe CallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Introdução

Resumo da classe

class CallbackFilterIterator extends FilterIterator {
/* Métodos */
public __construct(Iterator $iterator, callable $callback)
public accept(): bool
/* Métodos herdados */
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Exemplos

O callback deve aceitar até três argumentos: o item atual, a chave atual e o iterador, respectivamente.

Exemplo #1 Argumentos de callback disponíveis

<?php

/**
* Callback para CallbackFilterIterator
*
* @param $current Valor do item atual
* @param $key Chave do item atual
* @param $iterator Iterador sendo filtrado
* @return boolean TRUE para aceitar o item atual, FALSE caso contrário
*/
function my_callback($current, $key, $iterator) {
// Seu código de filtragem aqui
}

?>

Qualquer callable pode ser usado; como uma string contendo um nome de função, uma matriz para um método ou uma função anônima.

Exemplo #2 Exemplos básicos de callback

<?php

$dir = new FilesystemIterator(__DIR__);

// Filtrar arquivos grandes ( > 100MB)
function is_large_file($current) {
return $current->isFile() && $current->getSize() > 104857600;
}
$large_files = new CallbackFilterIterator($dir, 'is_large_file');

// Filtrar diretórios
$files = new CallbackFilterIterator($dir, function ($current, $key, $iterator) {
return $current->isDir() && ! $iterator->isDot();
});

?>

Índice

  • CallbackFilterIterator::accept — Chama o callback com o valor atual, a chave atual e o iterador interno como argumentos
  • CallbackFilterIterator::__construct — Cria um iterador filtrado a partir de outro iterador


Chama o callback com o valor atual, a chave atual e o iterador interno como argumentos

  • « CallbackFilterIterator
  • CallbackFilterIterator::__construct »
  • PHP Manual
  • CallbackFilterIterator
  • Chama o callback com o valor atual, a chave atual e o iterador interno como argumentos

CallbackFilterIterator::accept

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

CallbackFilterIterator::accept — Chama o callback com o valor atual, a chave atual e o iterador interno como argumentos

Descrição

public CallbackFilterIterator::accept(): bool

Este método chama o callback com o valor atual, a chave atual e o iterador interno.

Espera-se que o callback retorne true se o item atual deve ser aceito, ou false caso contrário.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true para aceitar o item atual, ou false caso contrário.

Veja Também

  • Exemplos de CallbackFilterIterator
  • CallbackFilterIterator::__construct() - Cria um iterador filtrado a partir de outro iterador


Cria um iterador filtrado a partir de outro iterador

  • « CallbackFilterIterator::accept
  • DirectoryIterator »
  • PHP Manual
  • CallbackFilterIterator
  • Cria um iterador filtrado a partir de outro iterador

CallbackFilterIterator::__construct

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

CallbackFilterIterator::__construct — Cria um iterador filtrado a partir de outro iterador

Descrição

public CallbackFilterIterator::__construct(Iterator $iterator, callable $callback)

Cria um iterador filtrado usando o callback para determinar quais itens são aceitos ou rejeitados.

Parâmetros

iterator

O iterador a ser filtrado.

callback

O callback, que deve retornar true para aceitar o item atual ou false caso contrário. Veja Exemplos.

Pode ser qualquer valor callable válido.

Veja Também

  • Exemplos de CallbackFilterIterator
  • CallbackFilterIterator::accept() - Chama o callback com o valor atual, a chave atual e o iterador interno como argumentos


A classe DirectoryIterator

(PHP 5, PHP 7, PHP 8)

Introdução

A classe DirectoryIterator fornece uma interface simples para visualização de conteúdo de sistemas de arquivos.

Resumo da classe

class DirectoryIterator extends SplFileInfo implements SeekableIterator {
/* Métodos */
public __construct(string $directory)
public current(): mixed
public getBasename(string $suffix = ""): string
public getExtension(): string
public getFilename(): string
public isDot(): bool
public key(): mixed
public next(): void
public rewind(): void
public seek(int $offset): void
public __toString(): string
public valid(): bool
/* Métodos herdados */
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Índice

  • DirectoryIterator::__construct — Constrói um novo iterador de diretório a partir de um caminho
  • DirectoryIterator::current — Retorna o item atual do DirectoryIterator
  • DirectoryIterator::getBasename — Retorna o nome do item corrente do DirectoryIterator
  • DirectoryIterator::getExtension — Obtém a extensão do arquivo
  • DirectoryIterator::getFilename — Retorna o nome do arquivo do item atual do DirectoryIterator
  • DirectoryIterator::isDot — Determina se o item atual do DirectoryIterator é '.' ou '..'
  • DirectoryIterator::key — Retorna a chave para o item atual do DirectoryIterator
  • DirectoryIterator::next — Mover para o próximo item do DirectoryIterator
  • DirectoryIterator::rewind — Rebobina o DirectoryIterator de volta ao início
  • DirectoryIterator::seek — Procura uma determinada posição no item do DirectoryIterator
  • DirectoryIterator::__toString — Retorna o nome do arquivo como texto
  • DirectoryIterator::valid — Verifica se a posição atual do DirectoryIterator é um arquivo válido


Constrói um novo iterador de diretório a partir de um caminho

  • « DirectoryIterator
  • DirectoryIterator::current »
  • PHP Manual
  • DirectoryIterator
  • Constrói um novo iterador de diretório a partir de um caminho

DirectoryIterator::__construct

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::__construct — Constrói um novo iterador de diretório a partir de um caminho

Descrição

public DirectoryIterator::__construct(string $directory)

Constrói um novo iterador de diretório a partir de um caminho.

Parâmetros

directory

O caminho do diretório a ser percorrido.

Erros/Exceções

Lança um UnexpectedValueException se o directory não existir.

Lança um ValueError se o directory for uma string vazia.

Registro de Alterações

Versão | Descrição
8.0.0 | Agora Lança um ValueError se directory for uma string vazia; anteriormente, lançava um RuntimeException.

Exemplos

Exemplo #1 Um exemplo de DirectoryIterator::__construct()

Este exemplo listará o conteúdo do diretório que contém o script.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
var_dump($fileinfo->getFilename());
}
}
?>

Veja Também

  • SplFileInfo
  • Iterator


Retorna o item atual do DirectoryIterator

  • « DirectoryIterator::__construct
  • DirectoryIterator::getBasename »
  • PHP Manual
  • DirectoryIterator
  • Retorna o item atual do DirectoryIterator

DirectoryIterator::current

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::current — Retorna o item atual do DirectoryIterator

Descrição

public DirectoryIterator::current(): mixed

Obtém o item atual do DirectoryIterator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O item atual do DirectoryIterator.

Exemplos

Exemplo #1 Um exemplo de DirectoryIterator::current()

Este exemplo listará o conteúdo do diretório que contém o script.

<?php
$iterator = new DirectoryIterator(__DIR__);
while($iterator->valid()) {
$file = $iterator->current();
echo $iterator->key() . " => " . $file->getFilename() . "\n";
$iterator->next();
}
?>

O exemplo acima produzirá algo semelhante a:

0 => .
1 => ..
2 => apple.jpg
3 => banana.jpg
4 => index.php
5 => pear.jpg

Veja Também

  • DirectoryIterator::key() - Retorna a chave para o item atual do DirectoryIterator
  • DirectoryIterator::next() - Mover para o próximo item do DirectoryIterator
  • DirectoryIterator::rewind() - Rebobina o DirectoryIterator de volta ao início
  • DirectoryIterator::valid() - Verifica se a posição atual do DirectoryIterator é um arquivo válido
  • Iterator::current() - Retorna o elemento atual


Retorna o nome do item corrente do DirectoryIterator

  • « DirectoryIterator::current
  • DirectoryIterator::getExtension »
  • PHP Manual
  • DirectoryIterator
  • Retorna o nome do item corrente do DirectoryIterator

DirectoryIterator::getBasename

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

DirectoryIterator::getBasename — Retorna o nome do item corrente do DirectoryIterator

Descrição

public DirectoryIterator::getBasename(string $suffix = ""): string

Retorna o nome do item corrente do DirectoryIterator.

Parâmetros

suffix

Se o nome base terminar no suffix, ele é retirado.

Valor Retornado

O nome do item corrente do DirectoryIterator.

Exemplos

Exemplo #1 Exemplo do DirectoryIterator::getBasename()

Esse exemplo irá listar todo o nome base e o nome base com o sufixo .jpg removido dos nomes de arquivo do diretório o qual o script irá rodar.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
if ($fileinfo->isFile()) {
echo $fileinfo->getBasename() . "\n";
echo $fileinfo->getBasename('.jpg') . "\n";
}
}
?>

O exemplo acima produzirá algo semelhante a:

apple.jpg
apple
banana.jpg
banana
index.php
index.php
pear.jpg
pear

Veja Também

  • DirectoryIterator::getFilename() - Retorna o nome do arquivo do item atual do DirectoryIterator
  • DirectoryIterator::getPath()
  • DirectoryIterator::getPathname()
  • basename() - Retorna a última parte do caminho
  • pathinfo() - Retorna informações sobre um caminho de arquivo


Obtém a extensão do arquivo

  • « DirectoryIterator::getBasename
  • DirectoryIterator::getFilename »
  • PHP Manual
  • DirectoryIterator
  • Obtém a extensão do arquivo

DirectoryIterator::getExtension

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

DirectoryIterator::getExtension — Obtém a extensão do arquivo

Descrição

public DirectoryIterator::getExtension(): string

Recupera a extensão do arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string contendo a extensão do arquivo, ou uma string vazia se o arquivo não tiver extensão.

Exemplos

Exemplo #1 Exemplo de DirectoryIterator::getExtension()

<?php

$directory = new DirectoryIterator(__DIR__);
foreach ($directory as $fileinfo) {
if ($fileinfo->isFile()) {
echo $fileinfo->getExtension() . "\n";
}
}

?>

O exemplo acima produzirá algo semelhante a:

php
txt
jpg
gz

Notas

Nota:

Outra maneira de obter a extensão é utilizar a função pathinfo().

<?php
$extension = pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION);
?>

Veja Também

  • DirectoryIterator::getFilename() - Retorna o nome do arquivo do item atual do DirectoryIterator
  • DirectoryIterator::getBasename() - Retorna o nome do item corrente do DirectoryIterator
  • pathinfo() - Retorna informações sobre um caminho de arquivo


Retorna o nome do arquivo do item atual do DirectoryIterator

  • « DirectoryIterator::getExtension
  • DirectoryIterator::isDot »
  • PHP Manual
  • DirectoryIterator
  • Retorna o nome do arquivo do item atual do DirectoryIterator

DirectoryIterator::getFilename

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::getFilename — Retorna o nome do arquivo do item atual do DirectoryIterator

Descrição

public DirectoryIterator::getFilename(): string

Obtém o nome do arquivo do item atual do DirectoryIterator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o nome do arquivo do item atual do DirectoryIterator.

Exemplos

Exemplo #1 Um exemplo de DirectoryIterator::getFilename()

Este exemplo listará o conteúdo do diretório que contém o script.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
echo $fileinfo->getFilename() . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Veja Também

  • DirectoryIterator::getBasename() - Retorna o nome do item corrente do DirectoryIterator
  • DirectoryIterator::getPath()
  • DirectoryIterator::getPathname()
  • pathinfo() - Retorna informações sobre um caminho de arquivo


Determina se o item atual do DirectoryIterator é '.' ou '..'

  • « DirectoryIterator::getFilename
  • DirectoryIterator::key »
  • PHP Manual
  • DirectoryIterator
  • Determina se o item atual do DirectoryIterator é '.' ou '..'

DirectoryIterator::isDot

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::isDot — Determina se o item atual do DirectoryIterator é '.' ou '..'

Descrição

public DirectoryIterator::isDot(): bool

Determina se o item atual do DirectoryIterator é um diretório e é . ou ..

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true se a entrada for . ou .., caso contrário false

Exemplos

Exemplo #1 Um exemplo de DirectoryIterator::isDot()

Este exemplo listará todos os arquivos, omitindo as entradas . e ...

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
if (!$fileinfo->isDot()) {
echo $fileinfo->getFilename() . "\n";
}
}
?>

O exemplo acima produzirá algo semelhante a:

apple.jpg
banana.jpg
example.php
pears.jpg

Veja Também

  • DirectoryIterator::getType()
  • DirectoryIterator::isDir()
  • DirectoryIterator::isFile()
  • DirectoryIterator::isLink()


Retorna a chave para o item atual do DirectoryIterator

  • « DirectoryIterator::isDot
  • DirectoryIterator::next »
  • PHP Manual
  • DirectoryIterator
  • Retorna a chave para o item atual do DirectoryIterator

DirectoryIterator::key

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::key — Retorna a chave para o item atual do DirectoryIterator

Descrição

public DirectoryIterator::key(): mixed

Obtém a chave para o item atual do DirectoryIterator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A chave para o item atual do DirectoryIterator como um int.

Registro de Alterações

Versão | Descrição
8.1.0 | Quando o iterador não está inicializado, agora é lançado um Error. Anteriormente, o método retornava false.

Exemplos

Exemplo #1 Um exemplo de DirectoryIterator::key()

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
echo $fileinfo->key() . " => " . $fileinfo->getFilename() . "\n";
}
}
?>

O exemplo acima produzirá algo semelhante a:

0 => apple.jpg
1 => banana.jpg
2 => index.php
3 => pear.jpg

Veja Também

  • DirectoryIterator::current() - Retorna o item atual do DirectoryIterator
  • DirectoryIterator::next() - Mover para o próximo item do DirectoryIterator
  • DirectoryIterator::rewind() - Rebobina o DirectoryIterator de volta ao início
  • DirectoryIterator::valid() - Verifica se a posição atual do DirectoryIterator é um arquivo válido
  • Iterator::key() - Retorna a chave do elemento atual


Mover para o próximo item do DirectoryIterator

  • « DirectoryIterator::key
  • DirectoryIterator::rewind »
  • PHP Manual
  • DirectoryIterator
  • Mover para o próximo item do DirectoryIterator

DirectoryIterator::next

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::next — Mover para o próximo item do DirectoryIterator

Descrição

public DirectoryIterator::next(): void

Move para o próximo item do DirectoryIterator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de DirectoryIterator::next()

Lista o conteúdo de um diretório usando um loop while.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
while($iterator->valid()) {
echo $iterator->getFilename() . "\n";
$iterator->next();
}
?>

O exemplo acima produzirá algo semelhante a:

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Veja Também

  • DirectoryIterator::current() - Retorna o item atual do DirectoryIterator
  • DirectoryIterator::key() - Retorna a chave para o item atual do DirectoryIterator
  • DirectoryIterator::rewind() - Rebobina o DirectoryIterator de volta ao início
  • DirectoryIterator::valid() - Verifica se a posição atual do DirectoryIterator é um arquivo válido
  • Iterator::next() - Move para o próximo elemento


Rebobina o DirectoryIterator de volta ao início

  • « DirectoryIterator::next
  • DirectoryIterator::seek »
  • PHP Manual
  • DirectoryIterator
  • Rebobina o DirectoryIterator de volta ao início

DirectoryIterator::rewind

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::rewind — Rebobina o DirectoryIterator de volta ao início

Descrição

public DirectoryIterator::rewind(): void

Rebobina o DirectoryIterator de volta ao início.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de DirectoryIterator::rewind()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //rewinding to the beginning
echo $iterator->key(); //0
?>

Veja Também

  • DirectoryIterator::current() - Retorna o item atual do DirectoryIterator
  • DirectoryIterator::key() - Retorna a chave para o item atual do DirectoryIterator
  • DirectoryIterator::next() - Mover para o próximo item do DirectoryIterator
  • DirectoryIterator::valid() - Verifica se a posição atual do DirectoryIterator é um arquivo válido
  • Iterator::rewind() - Retreocede o Iterator para o primeiro elemento


Procura uma determinada posição no item do DirectoryIterator

  • « DirectoryIterator::rewind
  • DirectoryIterator::__toString »
  • PHP Manual
  • DirectoryIterator
  • Procura uma determinada posição no item do DirectoryIterator

DirectoryIterator::seek

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DirectoryIterator::seek — Procura uma determinada posição no item do DirectoryIterator

Descrição

public DirectoryIterator::seek(int $offset): void

Procura uma determinada posição no item do DirectoryIterator.

Parâmetros

offset

Posição de base zero para procurar.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo do DirectoryIterator::seek()

Procurar o quarto item no diretório que contém o script. Os dois primeiros geralmente são . e ..

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
$iterator->seek(3);
if ($iterator->valid()) {
echo $iterator->getFilename();
} else {
echo 'Sem arquivos na posição 3';
}
?>

Veja Também

  • DirectoryIterator::rewind() - Rebobina o DirectoryIterator de volta ao início
  • DirectoryIterator::next() - Mover para o próximo item do DirectoryIterator
  • SeekableIterator::seek() - Move para uma posição


Retorna o nome do arquivo como texto

  • « DirectoryIterator::seek
  • DirectoryIterator::valid »
  • PHP Manual
  • DirectoryIterator
  • Retorna o nome do arquivo como texto

DirectoryIterator::__toString

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::__toString — Retorna o nome do arquivo como texto

Descrição

public DirectoryIterator::__toString(): string

Retorna o nome do item corrente do DirectoryIterator como texto.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o nome do item corrente do DirectoryIterator como texto.

Exemplos

Exemplo #1 Exemplo do DirectoryIterator::__toString()

Este exemplo irá listar o conteúdo do diretório o qual o script está rodando.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
echo $fileinfo;
}
?>

O exemplo acima produzirá algo semelhante a:

.
..
maça.jpg
banana.jpg
index.php
pera.jpg

Veja Também

  • DirectoryIterator::getFilename() - Retorna o nome do arquivo do item atual do DirectoryIterator
  • O método mágico __toString()


Verifica se a posição atual do DirectoryIterator é um arquivo válido

  • « DirectoryIterator::__toString
  • EmptyIterator »
  • PHP Manual
  • DirectoryIterator
  • Verifica se a posição atual do DirectoryIterator é um arquivo válido

DirectoryIterator::valid

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::valid — Verifica se a posição atual do DirectoryIterator é um arquivo válido

Descrição

public DirectoryIterator::valid(): bool

Verifica se a posição atual do DirectoryIterator é um arquivo válido.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a posição é válida, caso contrário false

Exemplos

Exemplo #1 Um exemplo de DirectoryIterator::valid()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));

// Loop to end of iterator
while($iterator->valid()) {
$iterator->next();
}

$iterator->valid(); // FALSE
$iterator->rewind();
$iterator->valid(); // TRUE

?>

Veja Também

  • DirectoryIterator::current() - Retorna o item atual do DirectoryIterator
  • DirectoryIterator::key() - Retorna a chave para o item atual do DirectoryIterator
  • DirectoryIterator::next() - Mover para o próximo item do DirectoryIterator
  • DirectoryIterator::rewind() - Rebobina o DirectoryIterator de volta ao início
  • Iterator::valid() - Verifica se a posição atual é válida


A classe EmptyIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

A classe EmptyIterator para um iterador vazio.

Resumo da classe

class EmptyIterator implements Iterator {
/* Métodos */
public current(): never
public key(): never
public next(): void
public rewind(): void
public valid(): false
}

Índice

  • EmptyIterator::current — O método current()
  • EmptyIterator::key — O método key()
  • EmptyIterator::next — O método next()
  • EmptyIterator::rewind — O método rewind()
  • EmptyIterator::valid — Verifica se o elemento atual é válido


O método current()

  • « EmptyIterator
  • EmptyIterator::key »
  • PHP Manual
  • EmptyIterator
  • O método current()

EmptyIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

EmptyIterator::current — O método current()

Descrição

public EmptyIterator::current(): never

Esta função não deve ser chamada. Ela lança uma exceção quando acessada.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Erros/Exceções

Lança uma Exception se for chamada.

Valor Retornado

Nenhum valor é retornado.


O método key()

  • « EmptyIterator::current
  • EmptyIterator::next »
  • PHP Manual
  • EmptyIterator
  • O método key()

EmptyIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

EmptyIterator::key — O método key()

Descrição

public EmptyIterator::key(): never

Esta função não deve ser chamada. Ela lança uma exceção ao ser acessada.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Erros/Exceções

Lança uma Exception se for chamada.

Valor Retornado

Nenhum valor é retornado.


O método next()

  • « EmptyIterator::key
  • EmptyIterator::rewind »
  • PHP Manual
  • EmptyIterator
  • O método next()

EmptyIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

EmptyIterator::next — O método next()

Descrição

public EmptyIterator::next(): void

Nenhuma operação, nada a ser feito.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


O método rewind()

  • « EmptyIterator::next
  • EmptyIterator::valid »
  • PHP Manual
  • EmptyIterator
  • O método rewind()

EmptyIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

EmptyIterator::rewind — O método rewind()

Descrição

public EmptyIterator::rewind(): void

Nenhuma operação, nada a ser feito.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Verifica se o elemento atual é válido

  • « EmptyIterator::rewind
  • FilesystemIterator »
  • PHP Manual
  • EmptyIterator
  • Verifica se o elemento atual é válido

EmptyIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

EmptyIterator::valid — Verifica se o elemento atual é válido

Descrição

public EmptyIterator::valid(): false

Verifica se o elemento atual é válido.

Nota:

O EmptyIterator está sempre vazio e nunca terá um valor válido. O valor de retorno é sempre false.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

false


A classe FilesystemIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

O iterador do sistema de arquivos

Resumo da classe

class FilesystemIterator extends DirectoryIterator {
/* Constantes */
public const int CURRENT_MODE_MASK;
public const int CURRENT_AS_PATHNAME;
public const int CURRENT_AS_FILEINFO;
public const int CURRENT_AS_SELF;
public const int KEY_MODE_MASK;
public const int KEY_AS_PATHNAME;
public const int FOLLOW_SYMLINKS;
public const int KEY_AS_FILENAME;
public const int NEW_CURRENT_AND_KEY;
public const int OTHER_MODE_MASK;
public const int SKIP_DOTS;
public const int UNIX_PATHS;
/* Métodos */
public __construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS)
public current(): string|SplFileInfo|FilesystemIterator
public getFlags(): int
public key(): string
public next(): void
public rewind(): void
public setFlags(int $flags): void
/* Métodos herdados */
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Constantes pré-definidas

FilesystemIterator::CURRENT_AS_PATHNAME

Faz com que FilesystemIterator::current() retorne o pathname.

FilesystemIterator::CURRENT_AS_FILEINFO

Faz com que FilesystemIterator::current() retorne uma instância SplFileInfo.

FilesystemIterator::CURRENT_AS_SELF

Faz com que FilesystemIterator::current() retorne $this (o FilesystemIterator).

FilesystemIterator::CURRENT_MODE_MASK

Máscara para FilesystemIterator::current()

FilesystemIterator::KEY_AS_PATHNAME

Faz com que FilesystemIterator::key() retorne o pathname.

FilesystemIterator::KEY_AS_FILENAME

Faz com que FilesystemIterator::key() retorne o filename.

FilesystemIterator::FOLLOW_SYMLINKS

Faz com que RecursiveDirectoryIterator::hasChildren() siga os links simbólicos.

FilesystemIterator::KEY_MODE_MASK

Máscara para FilesystemIterator::key()

FilesystemIterator::NEW_CURRENT_AND_KEY

Mesmo que FilesystemIterator::KEY_AS_FILENAME | FilesystemIterator::CURRENT_AS_FILEINFO.

FilesystemIterator::OTHER_MODE_MASK

Máscara usada para FilesystemIterator::getFlags() e FilesystemIterator::setFlags().

FilesystemIterator::SKIP_DOTS

Pula os arquivos de ponto (. e ..).

FilesystemIterator::UNIX_PATHS

Faz com que os caminhos usem barra inclinada no estilo Unix, independentemente do padrão do sistema. Observe que o path passado ao construtor não é modificado.

Índice

  • FilesystemIterator::__construct — Constrói um novo iterador de sistema de arquivos
  • FilesystemIterator::current — O arquivo atual
  • FilesystemIterator::getFlags — Obtem as opções de manipulação
  • FilesystemIterator::key — Recupera a chave para o arquivo atual
  • FilesystemIterator::next — Move para o próximo arquivo
  • FilesystemIterator::rewind — Retrocede para o início
  • FilesystemIterator::setFlags — Define opções de manipulação


Constrói um novo iterador de sistema de arquivos

  • « FilesystemIterator
  • FilesystemIterator::current »
  • PHP Manual
  • FilesystemIterator
  • Constrói um novo iterador de sistema de arquivos

FilesystemIterator::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

FilesystemIterator::__construct — Constrói um novo iterador de sistema de arquivos

Descrição

public FilesystemIterator::__construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS)

Constrói um novo iterador de sistema de arquivos a partir do directory.

Parâmetros

directory

O caminho do item do sistema de arquivos a ser iterado.

flags

As opções podem ser fornecidas e afetarão o comportamento de alguns métodos. Uma lista das opções pode ser encontrada em Constantes pré-definidas do FilesystemIterator. Elas também podem ser definidas posteriormente com FilesystemIterator::setFlags()

Erros/Exceções

Lança uma UnexpectedValueException se o directory não existir.

Lança um ValueError se o directory for uma string vazia.

Registro de Alterações

Versão | Descrição
8.2.0 | Antes do PHP 8.2.0, FilesystemIterator::SKIP_DOTS era sempre definido e não podia ser removido.
8.0.0 | Agora lança um ValueError se directory for uma string vazia; anteriormente lançava um RuntimeException.

Exemplos

Exemplo #1 Exemplo de FilesystemIterator::__construct()

<?php
$it = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::CURRENT_AS_FILEINFO);
foreach ($it as $fileinfo) {
echo $fileinfo->getFilename() . "\n";
}
?>

A saída do exemplo acima no PHP 8.2 é semelhante a:

.
..
apples.jpg
banana.jpg
example.php

A saída do exemplo acima antes do PHP 8.2.0 é semelhante a:

apples.jpg
banana.jpg
example.php

Veja Também

  • FilesystemIterator::setFlags() - Define opções de manipulação
  • DirectoryIterator::__construct() - Constrói um novo iterador de diretório a partir de um caminho


O arquivo atual

  • « FilesystemIterator::__construct
  • FilesystemIterator::getFlags »
  • PHP Manual
  • FilesystemIterator
  • O arquivo atual

FilesystemIterator::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

FilesystemIterator::current — O arquivo atual

Descrição

public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator

Obtém informações do arquivo do elemento atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O nome do arquivo, as informações do arquivo ou $this dependendo das opções definidas. Veja as constantes FilesystemIterator.

Exemplos

Exemplo #1 Exemplo de FilesystemIterator::current()

Este exemplo listará o conteúdo do diretório que contém o script.

<?php
$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::CURRENT_AS_PATHNAME);
foreach ($iterator as $fileinfo) {
echo $iterator->current() . "\n";
}
?>

A saída do exemplo acima no PHP 8.2 é semelhante a:

/www/examples/.
/www/examples/..
/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Veja Também

  • Constantes FilesystemIterator
  • DirectoryIterator::current() - Retorna o item atual do DirectoryIterator
  • DirectoryIterator::getFileName() - Retorna o nome do arquivo do item atual do DirectoryIterator


Obtem as opções de manipulação

  • « FilesystemIterator::current
  • FilesystemIterator::key »
  • PHP Manual
  • FilesystemIterator
  • Obtem as opções de manipulação

FilesystemIterator::getFlags

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

FilesystemIterator::getFlags — Obtem as opções de manipulação

Descrição

public FilesystemIterator::getFlags(): int

Obtém as opções de manipulação, conforme definidas em FilesystemIterator::__construct() ou FilesystemIterator::setFlags().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor inteiro das opções definidas.

Veja Também

  • FilesystemIterator::__construct() - Constrói um novo iterador de sistema de arquivos
  • FilesystemIterator::setFlags() - Define opções de manipulação


Recupera a chave para o arquivo atual

  • « FilesystemIterator::getFlags
  • FilesystemIterator::next »
  • PHP Manual
  • FilesystemIterator
  • Recupera a chave para o arquivo atual

FilesystemIterator::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

FilesystemIterator::key — Recupera a chave para o arquivo atual

Descrição

public FilesystemIterator::key(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o caminho ou nome do arquivo dependendo das opções definidas. Veja as constantes FilesystemIterator.

Exemplos

Exemplo #1 Exemplo de FilesystemIterator::key()

Este exemplo listará o conteúdo do diretório que contém o script.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);
foreach ($iterator as $fileinfo) {
echo $iterator->key() . "\n";
}
?>

A saída do exemplo acima no PHP 8.2 é semelhante a:

.
..
apple.jpg
banana.jpg
example.php

Veja Também

  • Constantes FilesystemIterator
  • DirectoryIterator::key() - Retorna a chave para o item atual do DirectoryIterator
  • DirectoryIterator::getFilename() - Retorna o nome do arquivo do item atual do DirectoryIterator
  • DirectoryIterator::getPathname()


Move para o próximo arquivo

  • « FilesystemIterator::key
  • FilesystemIterator::rewind »
  • PHP Manual
  • FilesystemIterator
  • Move para o próximo arquivo

FilesystemIterator::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

FilesystemIterator::next — Move para o próximo arquivo

Descrição

public FilesystemIterator::next(): void

Mover para o próximo arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de FilesystemIterator::next()

Liste o conteúdo de um diretório usando um loop while.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__));
while($iterator->valid()) {
echo $iterator->getFilename() . "\n";
$iterator->next();
}
?>

O exemplo acima produzirá algo semelhante a:

apple.jpg
banana.jpg
example.php

Veja Também

  • DirectoryIterator::next() - Mover para o próximo item do DirectoryIterator


Retrocede para o início

  • « FilesystemIterator::next
  • FilesystemIterator::setFlags »
  • PHP Manual
  • FilesystemIterator
  • Retrocede para o início

FilesystemIterator::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

FilesystemIterator::rewind — Retrocede para o início

Descrição

public FilesystemIterator::rewind(): void

Retrocede o diretório para o início.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de FilesystemIterator::rewind()

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);

echo $iterator->key() . "\n";

$iterator->next();
echo $iterator->key() . "\n";

$iterator->rewind();
echo $iterator->key() . "\n";
?>

O exemplo acima produzirá algo semelhante a:

apple.jpg
banana.jpg
apple.jpg

Veja Também

  • DirectoryIterator::rewind() - Rebobina o DirectoryIterator de volta ao início


Define opções de manipulação

  • « FilesystemIterator::rewind
  • FilterIterator »
  • PHP Manual
  • FilesystemIterator
  • Define opções de manipulação

FilesystemIterator::setFlags

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

FilesystemIterator::setFlags — Define opções de manipulação

Descrição

public FilesystemIterator::setFlags(int $flags): void

Define opções de manipulação.

Parâmetros

flags

As opções de manipulação para definir. Veja as Constantes FilesystemIterator.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de FilesystemIterator::key()

Este exemplo demonstra a diferença entre as opções FilesystemIterator::KEY_AS_PATHNAME e FilesystemIterator::KEY_AS_FILENAME.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_PATHNAME);
echo "Key as Pathname:\n";
foreach ($iterator as $key => $fileinfo) {
echo $key . "\n";
}

$iterator->setFlags(FilesystemIterator::KEY_AS_FILENAME);
echo "\nKey as Filename:\n";
foreach ($iterator as $key => $fileinfo) {
echo $key . "\n";
}
?>

A saída do exemplo acima no PHP 8.2 é semelhante a:

Key as Pathname:
/www/examples/.
/www/examples/..
/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Key as Filename:
.
..
apple.jpg
banana.jpg
example.php

Veja Também

  • FilesystemIterator::__construct() - Constrói um novo iterador de sistema de arquivos
  • FilesystemIterator::getFlags() - Obtem as opções de manipulação


A classe FilterIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Este iterador abstrato filtra os valores indesejados. Esta classe deve ser estendida para implementar filtros de iterador personalizados. O FilterIterator::accept() deve ser implementado na subclasse.

Resumo da classe

abstract class FilterIterator extends IteratorIterator {
/* Métodos */
public __construct(Iterator $iterator)
public accept(): bool
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
/* Métodos herdados */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Índice

  • FilterIterator::accept — Verifica se o elemento atual do iterador é aceitável
  • FilterIterator::__construct — Constrói um FilterIterator
  • FilterIterator::current — Retorna o valor do elemento atual
  • FilterIterator::key — Retorna a chave do elemento atual
  • FilterIterator::next — Avança o iterador
  • FilterIterator::rewind — Recomeça o iterador
  • FilterIterator::valid — Verifica se o elemento atual é válido ou não


Verifica se o elemento atual do iterador é aceitável

  • « FilterIterator
  • FilterIterator::__construct »
  • PHP Manual
  • FilterIterator
  • Verifica se o elemento atual do iterador é aceitável

FilterIterator::accept

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::accept — Verifica se o elemento atual do iterador é aceitável

Descrição

public FilterIterator::accept(): bool

Retorna se o elemento atual do iterador é aceitável por meio deste filtro.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true se o elemento atual for aceitável, caso contrário false.

Exemplos

Exemplo #1 Exemplo de FilterIterator::accept()

<?php
// Este iterador filtra todos os valores com menos de 10 caracteres
class LengthFilterIterator extends FilterIterator {

public function accept() {
// Aceita apenas strings com comprimento de 10 ou mais caracteres
return strlen(parent::current()) >= 10;
}

}

$arrayIterator = new ArrayIterator(array('test1', 'mais de 10 caracteres'));
$lengthFilter = new LengthFilterIterator($arrayIterator);

foreach ($lengthFilter as $value) {
echo $value . "\n";
}
?>

O exemplo acima produzirá:

mais de 10 caracteres


Constrói um FilterIterator

  • « FilterIterator::accept
  • FilterIterator::current »
  • PHP Manual
  • FilterIterator
  • Constrói um FilterIterator

FilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::__construct — Constrói um FilterIterator

Descrição

public FilterIterator::__construct(Iterator $iterator)

Constrói um novo FilterIterator, que consiste em um iterator passado com filtros aplicados a ele.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

iterator

O iterador que está sendo filtrado.

Veja Também

  • LimitIterator::__construct() - Constrói um LimitIterator


Retorna o valor do elemento atual

  • « FilterIterator::__construct
  • FilterIterator::key »
  • PHP Manual
  • FilterIterator
  • Retorna o valor do elemento atual

FilterIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::current — Retorna o valor do elemento atual

Descrição

public FilterIterator::current(): mixed
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Obtém o valor do atual elemento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do elemento atual.

Veja Também

  • FilterIterator::key() - Retorna a chave do elemento atual
  • FilterIterator::next() - Avança o iterador


Retorna a chave do elemento atual

  • « FilterIterator::current
  • FilterIterator::next »
  • PHP Manual
  • FilterIterator
  • Retorna a chave do elemento atual

FilterIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::key — Retorna a chave do elemento atual

Descrição

public FilterIterator::key(): mixed
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Obtém a chave atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A chave atual.

Veja Também

  • FilterIterator::next() - Avança o iterador
  • FilterIterator::current() - Retorna o valor do elemento atual


Avança o iterador

  • « FilterIterator::key
  • FilterIterator::rewind »
  • PHP Manual
  • FilterIterator
  • Avança o iterador

FilterIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::next — Avança o iterador

Descrição

public FilterIterator::next(): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Avança o iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • FilterIterator::current() - Retorna o valor do elemento atual
  • FilterIterator::key() - Retorna a chave do elemento atual


Recomeça o iterador

  • « FilterIterator::next
  • FilterIterator::valid »
  • PHP Manual
  • FilterIterator
  • Recomeça o iterador

FilterIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::rewind — Recomeça o iterador

Descrição

public FilterIterator::rewind(): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Recomeça o iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • FilterIterator::current() - Retorna o valor do elemento atual
  • FilterIterator::key() - Retorna a chave do elemento atual
  • FilterIterator::next() - Avança o iterador


Verifica se o elemento atual é válido ou não

  • « FilterIterator::rewind
  • GlobIterator »
  • PHP Manual
  • FilterIterator
  • Verifica se o elemento atual é válido ou não

FilterIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::valid — Verifica se o elemento atual é válido ou não

Descrição

public FilterIterator::valid(): bool

Verifica se o elemento atual é válido.

Nota:

A implementação padrão desta função irá inicialmente retornar false até que o iterador interno seja avançado ao primeiro elemento aceito.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true se o elemento atual é válido, false caso contrário


A classe GlobIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

Itera através de um sistema de arquivos de forma semelhante ao glob().

Resumo da classe

class GlobIterator extends FilesystemIterator implements Countable {
/* Constantes herdadas */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Métodos */
public __construct(string $pattern, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
public count(): int
/* Métodos herdados */
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Índice

  • GlobIterator::__construct — Constrói um diretório usando glob
  • GlobIterator::count — Obtém o número de diretórios e arquivos


Constrói um diretório usando glob

  • « GlobIterator
  • GlobIterator::count »
  • PHP Manual
  • GlobIterator
  • Constrói um diretório usando glob

GlobIterator::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

GlobIterator::__construct — Constrói um diretório usando glob

Descrição

public GlobIterator::__construct(string $pattern, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)

Constrói um novo iterador de diretório a partir de uma expressão glob.

Parâmetros

pattern

Um padrão glob().

flags

Sinalizadores de opção, os sinalizadores podem ser uma máscara de bits das constantes FilesystemIterator.

Erros/Exceções

Lança uma UnexpectedValueException se o diretório definido em directory não existir.

Lança um ValueError se o diretório definido em directory for uma string vazia.

Registro de Alterações

Versão | Descrição
8.0.0 | Agora lança um ValueError se directory for uma string vazia; anteriormente lançava um RuntimeException.

Exemplos

Exemplo #1 Exemplo de GlobIterator

<?php
$iterator = new GlobIterator('*.dll', FilesystemIterator::KEY_AS_FILENAME);

if (!$iterator->count()) {
echo 'Sem correspondência';
} else {
$n = 0;

printf("Corresponderam %d item(s)\r\n", $iterator->count());

foreach ($iterator as $item) {
printf("[%d] %s\r\n", ++$n, $iterator->key());
}
}
?>

O exemplo acima produzirá algo semelhante a:

Corresponderam 2 item(s)
[1] php5ts.dll
[2] php_gd2.dll

Veja Também

  • DirectoryIterator::__construct() - Constrói um novo iterador de diretório a partir de um caminho
  • GlobIterator::count() - Obtém o número de diretórios e arquivos
  • glob() - Acha caminhos que combinam com um padrão


Obtém o número de diretórios e arquivos

  • « GlobIterator::__construct
  • InfiniteIterator »
  • PHP Manual
  • GlobIterator
  • Obtém o número de diretórios e arquivos

GlobIterator::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

GlobIterator::count — Obtém o número de diretórios e arquivos

Descrição

public GlobIterator::count(): int

Obtém o número de diretórios e arquivos encontrados pela expressão glob.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O número de diretórios e arquivos retornados, como um int.

Exemplos

Exemplo #1 Exemplo de GlobIterator::count()

<?php
$iterator = new GlobIterator('*.xml');

printf("Matched %d item(s)\r\n", $iterator->count());
?>

O exemplo acima produzirá algo semelhante a:

Matched 8 item(s)

Veja Também

  • GlobIterator::__construct() - Constrói um diretório usando glob
  • count() - Conta todos os elementos de um array ou de um objeto Countable
  • glob() - Acha caminhos que combinam com um padrão


A classe InfiniteIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

InfiniteIterator permite iterar infinitamente sobre um iterador sem ter que rebobiná-lo manualmente ao alcançar o seu final.

Resumo da classe

class InfiniteIterator extends IteratorIterator {
/* Métodos */
public __construct(Iterator $iterator)
public next(): void
/* Métodos herdados */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Índice

  • InfiniteIterator::__construct — Constrói um InfiniteIterator
  • InfiniteIterator::next — Movimenta o Iterador Interno para frente ou rebobina


Constrói um InfiniteIterator

  • « InfiniteIterator
  • InfiniteIterator::next »
  • PHP Manual
  • InfiniteIterator
  • Constrói um InfiniteIterator

InfiniteIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

InfiniteIterator::__construct — Constrói um InfiniteIterator

Descrição

public InfiniteIterator::__construct(Iterator $iterator)

Constrói um InfiniteIterator a partir de um Iterator.

Parâmetros

iterator

O iterador para iterar infinitamente.

Exemplos

Exemplo #1 Exemplo de InfiniteIterator::__construct()

<?php
$arrayit = new ArrayIterator(array('gato','cachorro'));
$infinite = new InfiniteIterator($arrayit);
$limit = new LimitIterator($infinite, 0, 7);
foreach($limit as $value)
{
echo "$value\n";
}
?>

O exemplo acima produzirá:

gato
cachorro
gato
cachorro
gato
cachorro
gato

Veja Também

  • InfiniteIterator::next() - Movimenta o Iterador Interno para frente ou rebobina


Movimenta o Iterador Interno para frente ou rebobina

  • « InfiniteIterator::__construct
  • IteratorIterator »
  • PHP Manual
  • InfiniteIterator
  • Movimenta o Iterador Interno para frente ou rebobina

InfiniteIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

InfiniteIterator::next — Movimenta o Iterador Interno para frente ou rebobina

Descrição

public InfiniteIterator::next(): void

Movimenta o Iterator interno para o próximo elemento, se houver um, caso contrário, rebobina o Iterator interno de volta ao início.

Nota:

Mesmo um InfiniteIterator irá parar se o seu Iterator interno estiver vazio.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • InfiniteIterator::__construct() - Constrói um InfiniteIterator


A classe IteratorIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Este envoltório de iterador permite a conversão de qualquer coisa que seja Traversable em um Iterador. É importante entender que a maioria das classes que não implementam Iterators têm razões, pois provavelmente elas não permitem o conjunto completo de recursos de Iterators. Se for o caso, técnicas devem ser fornecidas para prevenir uso inadequado, caso contrário, espere exceções ou erros fatais.

Resumo da classe

class IteratorIterator implements OuterIterator {
/* Métodos */
public __construct(Traversable $iterator, ?string $class = null)
public current(): mixed
public getInnerIterator(): ?Iterator
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
}

Notas

Nota:

Esta classe permite o acesso aos métodos do iterador interno através do método mágico __call.

Índice

  • IteratorIterator::__construct — Cria um iterador de qualquer coisa que seja percorrível
  • IteratorIterator::current — Obtém o valor atual
  • IteratorIterator::getInnerIterator — Obtém o iterador interno
  • IteratorIterator::key — Obtém a chave do elemento atual
  • IteratorIterator::next — Avança para o próximo elemento
  • IteratorIterator::rewind — Rebobina para o primeiro elemento
  • IteratorIterator::valid — Verifica se o elemento atual é válido


Cria um iterador de qualquer coisa que seja percorrível

  • « IteratorIterator
  • IteratorIterator::current »
  • PHP Manual
  • IteratorIterator
  • Cria um iterador de qualquer coisa que seja percorrível

IteratorIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::__construct — Cria um iterador de qualquer coisa que seja percorrível

Descrição

public IteratorIterator::__construct(Traversable $iterator, ?string $class = null)

Cria um iterador de qualquer coisa que seja percorrível.

Parâmetros

iterator

O iterador percorrível.

class

O nome da classe a ser usada para o iterador interno. Isso permite especificar uma classe de iterador diferente para envolver o iterador fornecido. Por padrão, usará a própria classe IteratorIterator.

Veja Também

  • Traversable


Obtém o valor atual

  • « IteratorIterator::__construct
  • IteratorIterator::getInnerIterator »
  • PHP Manual
  • IteratorIterator
  • Obtém o valor atual

IteratorIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::current — Obtém o valor atual

Descrição

public IteratorIterator::current(): mixed

Obtém o valor do elemento atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do elemento atual.

Veja Também

  • IteratorIterator::key() - Obtém a chave do elemento atual


Obtém o iterador interno

  • « IteratorIterator::current
  • IteratorIterator::key »
  • PHP Manual
  • IteratorIterator
  • Obtém o iterador interno

IteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::getInnerIterator — Obtém o iterador interno

Descrição

public IteratorIterator::getInnerIterator(): ?Iterator

Obtém o iterador interno.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O iterador interno passado para IteratorIterator::__construct(), ou null quando não há iterador interno.

Veja Também

  • Iterator
  • OuterIterator


Obtém a chave do elemento atual

  • « IteratorIterator::getInnerIterator
  • IteratorIterator::next »
  • PHP Manual
  • IteratorIterator
  • Obtém a chave do elemento atual

IteratorIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::key — Obtém a chave do elemento atual

Descrição

public IteratorIterator::key(): mixed

Obtém a chave do elemento atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A chave do elemento atual.

Veja Também

  • IteratorIterator::current() - Obtém o valor atual


Avança para o próximo elemento

  • « IteratorIterator::key
  • IteratorIterator::rewind »
  • PHP Manual
  • IteratorIterator
  • Avança para o próximo elemento

IteratorIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::next — Avança para o próximo elemento

Descrição

public IteratorIterator::next(): void

Avança para o próximo elemento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • IteratorIterator::rewind() - Rebobina para o primeiro elemento
  • IteratorIterator::valid() - Verifica se o elemento atual é válido


Rebobina para o primeiro elemento

  • « IteratorIterator::next
  • IteratorIterator::valid »
  • PHP Manual
  • IteratorIterator
  • Rebobina para o primeiro elemento

IteratorIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::rewind — Rebobina para o primeiro elemento

Descrição

public IteratorIterator::rewind(): void

Rebobina para o primeiro elemento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • IteratorIterator::next() - Avança para o próximo elemento
  • IteratorIterator::valid() - Verifica se o elemento atual é válido


Verifica se o elemento atual é válido

  • « IteratorIterator::rewind
  • LimitIterator »
  • PHP Manual
  • IteratorIterator
  • Verifica se o elemento atual é válido

IteratorIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::valid — Verifica se o elemento atual é válido

Descrição

public IteratorIterator::valid(): bool

Verifica se o elemento atual é válido.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o elemento atual for válido, caso contrário false

Veja Também

  • iterator_count() - Conta os elementos em um iterador
  • IteratorIterator::current() - Obtém o valor atual


A classe LimitIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

A classe LimitIterator permite a iteração sobre um subconjunto limitado de itens em um Iterator.

Resumo da classe

class LimitIterator extends IteratorIterator {
/* Métodos */
public __construct(Iterator $iterator, int $offset = 0, int $limit = -1)
public current(): mixed
public getPosition(): int
public key(): mixed
public next(): void
public rewind(): void
public seek(int $offset): int
public valid(): bool
/* Métodos herdados */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Exemplos

Exemplo #1 LimitIterator usage example

<?php

// Create an iterator to be limited
$fruits = new ArrayIterator(array(
'apple',
'banana',
'cherry',
'damson',
'elderberry'
));

// Loop over first three fruits only
foreach (new LimitIterator($fruits, 0, 3) as $fruit) {
var_dump($fruit);
}

echo "\n";

// Loop from third fruit until the end
// Note: offset starts from zero for apple
foreach (new LimitIterator($fruits, 2) as $fruit) {
var_dump($fruit);
}

?>

O exemplo acima produzirá:

string(5) "apple"
string(6) "banana"
string(6) "cherry"

string(6) "cherry"
string(6) "damson"
string(10) "elderberry"

Índice

  • LimitIterator::__construct — Constrói um LimitIterator
  • LimitIterator::current — Obtém o elemento atual
  • LimitIterator::getPosition — Retorna a posição atual
  • LimitIterator::key — Obtém a chave atual
  • LimitIterator::next — Avança o iterador
  • LimitIterator::rewind — Retorna o iterador para o começo especificado no construtor
  • LimitIterator::seek — Aponta para a posição especificada
  • LimitIterator::valid — Verifica se o elemento atual é válido ou não


Constrói um LimitIterator

  • « LimitIterator
  • LimitIterator::current »
  • PHP Manual
  • LimitIterator
  • Constrói um LimitIterator

LimitIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::__construct — Constrói um LimitIterator

Descrição

public LimitIterator::__construct(Iterator $iterator, int $offset = 0, int $limit = -1)

Constrói um novo LimitIterator a partir de um iterator com um offset inicial e um limit máximo.

Parâmetros

iterator

O Iterator a ser limitado.

offset

Deslocamento opcional do limite.

limit

Contagem opcional do limite.

Erros/Exceções

Lança um ValueError se o offset for menor que 0 ou o limit for menor que -1.

Registro de Alterações

Versão | Descrição
8.0.0 | Agora lança um ValueError se o offset for menor que 0; anteriormente lançava um RuntimeException.
8.0.0 | Agora lança um ValueError se o limit for menor que -1; anteriormente lançava um RuntimeException.

Exemplos

Exemplo #1 Exemplo de LimitIterator::__construct()

<?php
$ait = new ArrayIterator(array('a', 'b', 'c', 'd', 'e'));
$lit = new LimitIterator($ait, 1, 3);
foreach ($lit as $value) {
echo $value . "\n";
}
?>

O exemplo acima produzirá:

b
c
d

Veja Também

  • Exemplos de LimitIterator


Obtém o elemento atual

  • « LimitIterator::__construct
  • LimitIterator::getPosition »
  • PHP Manual
  • LimitIterator
  • Obtém o elemento atual

LimitIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::current — Obtém o elemento atual

Descrição

public LimitIterator::current(): mixed

Obtém o elemento atual do Iterator interno.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o elemento atual ou null se não houver nenhum.

Veja Também

  • LimitIterator::key() - Obtém a chave atual
  • LimitIterator::next() - Avança o iterador
  • LimitIterator::rewind() - Retorna o iterador para o começo especificado no construtor
  • LimitIterator::seek() - Aponta para a posição especificada
  • LimitIterator::valid() - Verifica se o elemento atual é válido ou não


Retorna a posição atual

  • « LimitIterator::current
  • LimitIterator::key »
  • PHP Manual
  • LimitIterator
  • Retorna a posição atual

LimitIterator::getPosition

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::getPosition — Retorna a posição atual

Descrição

public LimitIterator::getPosition(): int

Obtém a posição atual baseada em zero do Iterator interno.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A posição atual.

Exemplos

Exemplo #1 Exemplos de LimitIterator::getPosition()

<?php
$fruits = array(
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry',
'd' => 'damson',
'e' => 'elderberry'
);
$array_it = new ArrayIterator($fruits);
$limit_it = new LimitIterator($array_it, 2, 3);
foreach ($limit_it as $item) {
echo $limit_it->getPosition() . ' ' . $item . "\n";
}
?>

O exemplo acima produzirá:

2 cherry
3 damson
4 elderberry

Veja Também

  • FilterIterator::key() - Retorna a chave do elemento atual


Obtém a chave atual

  • « LimitIterator::getPosition
  • LimitIterator::next »
  • PHP Manual
  • LimitIterator
  • Obtém a chave atual

LimitIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::key — Obtém a chave atual

Descrição

public LimitIterator::key(): mixed

Obtém a chave para o item atual no Iterator interno.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a chave para o item atual.

Veja Também

  • LimitIterator::getPosition() - Retorna a posição atual
  • LimitIterator::current() - Obtém o elemento atual
  • LimitIterator::next() - Avança o iterador
  • LimitIterator::rewind() - Retorna o iterador para o começo especificado no construtor
  • LimitIterator::seek() - Aponta para a posição especificada
  • LimitIterator::valid() - Verifica se o elemento atual é válido ou não


Avança o iterador

  • « LimitIterator::key
  • LimitIterator::rewind »
  • PHP Manual
  • LimitIterator
  • Avança o iterador

LimitIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::next — Avança o iterador

Descrição

public LimitIterator::next(): void

Avança o iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • LimitIterator::current() - Obtém o elemento atual
  • LimitIterator::key() - Obtém a chave atual
  • LimitIterator::rewind() - Retorna o iterador para o começo especificado no construtor
  • LimitIterator::seek() - Aponta para a posição especificada
  • LimitIterator::valid() - Verifica se o elemento atual é válido ou não


Retorna o iterador para o começo especificado no construtor

  • « LimitIterator::next
  • LimitIterator::seek »
  • PHP Manual
  • LimitIterator
  • Retorna o iterador para o começo especificado no construtor

LimitIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::rewind — Retorna o iterador para o começo especificado no construtor

Descrição

public LimitIterator::rewind(): void

Retrocede o iterador para o offset inicial especificado em LimitIterator::__construct().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • LimitIterator::current() - Obtém o elemento atual
  • LimitIterator::key() - Obtém a chave atual
  • LimitIterator::next() - Avança o iterador
  • LimitIterator::seek() - Aponta para a posição especificada
  • LimitIterator::valid() - Verifica se o elemento atual é válido ou não


Aponta para a posição especificada

  • « LimitIterator::rewind
  • LimitIterator::valid »
  • PHP Manual
  • LimitIterator
  • Aponta para a posição especificada

LimitIterator::seek

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::seek — Aponta para a posição especificada

Descrição

public LimitIterator::seek(int $offset): int

Move o iterador para o deslocamento especificado por offset.

Parâmetros

offset

A posição a ser procurada.

Valor Retornado

Retorna a posição de offset após a busca.

Erros/Exceções

Lança um OutOfBoundsException se a posição estiver fora dos limites especificados em LimitIterator::__construct().

Veja Também

  • LimitIterator::current() - Obtém o elemento atual
  • LimitIterator::key() - Obtém a chave atual
  • LimitIterator::rewind() - Retorna o iterador para o começo especificado no construtor
  • LimitIterator::next() - Avança o iterador
  • LimitIterator::valid() - Verifica se o elemento atual é válido ou não


Verifica se o elemento atual é válido ou não

  • « LimitIterator::seek
  • MultipleIterator »
  • PHP Manual
  • LimitIterator
  • Verifica se o elemento atual é válido ou não

LimitIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::valid — Verifica se o elemento atual é válido ou não

Descrição

public LimitIterator::valid(): bool

Verifica se o elemento atual é válido ou não.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • LimitIterator::current() - Obtém o elemento atual
  • LimitIterator::key() - Obtém a chave atual
  • LimitIterator::rewind() - Retorna o iterador para o começo especificado no construtor
  • LimitIterator::next() - Avança o iterador
  • LimitIterator::seek() - Aponta para a posição especificada


A classe MultipleIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

Um Iterador que itera sequencialmente sobre todos os iteradores anexados

Resumo da classe

class MultipleIterator implements Iterator {
/* Constantes */
public const int MIT_NEED_ANY;
public const int MIT_NEED_ALL;
public const int MIT_KEYS_NUMERIC;
public const int MIT_KEYS_ASSOC;
/* Métodos */
public __construct(int $flags = MultipleIterator::MIT_NEED_ALL | MultipleIterator::MIT_KEYS_NUMERIC)
public attachIterator(Iterator $iterator, string|int|null $info = null): void
public containsIterator(Iterator $iterator): bool
public countIterators(): int
public current(): array
public detachIterator(Iterator $iterator): void
public getFlags(): int
public key(): array
public next(): void
public rewind(): void
public setFlags(int $flags): void
public valid(): bool
}

Constantes pré-definidas

MultipleIterator::MIT_NEED_ANY

Não requer que todos os subiteradores sejam válidos na iteração.

MultipleIterator::MIT_NEED_ALL

Requer que todos os subiteradores sejam válidos na iteração.

MultipleIterator::MIT_KEYS_NUMERIC

As chaves são criadas a partir da posição dos subiteradores.

MultipleIterator::MIT_KEYS_ASSOC

As chaves são criadas a partir das informações associadas aos subiteradores.

Índice

  • MultipleIterator::attachIterator — Anexa informações do iterador
  • MultipleIterator::__construct — Constrói um novo MultipleIterator
  • MultipleIterator::containsIterator — Verifica se um iterador está anexado
  • MultipleIterator::countIterators — Obtém o número de instâncias de iteradores anexadas
  • MultipleIterator::current — Obtém as instâncias do iterador registradas
  • MultipleIterator::detachIterator — Desanexa um iterador
  • MultipleIterator::getFlags — Obtém informações sobre as opções
  • MultipleIterator::key — Obtém as instâncias do iterador registradas
  • MultipleIterator::next — Movimenta todos os subiteradores anexados para frente
  • MultipleIterator::rewind — Rebobina todas as instâncias do iterador anexado
  • MultipleIterator::setFlags — Define opções
  • MultipleIterator::valid — Verifica a validade dos subiteradores


Anexa informações do iterador

  • « MultipleIterator
  • MultipleIterator::__construct »
  • PHP Manual
  • MultipleIterator
  • Anexa informações do iterador

MultipleIterator::attachIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::attachIterator — Anexa informações do iterador

Descrição

public MultipleIterator::attachIterator(Iterator $iterator, string|int|null $info = null): void

Anexa informações do iterador.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

iterator

O novo iterador a ser anexado.

info

As informações associativas para o iterador, que deve ser um int, um string, ou null.

Valor Retornado

Descrição...

Erros/Exceções

Uma IllegalValueException se o parâmetro iterator for inválido, ou se info já estiver associado a informações.

Veja Também

  • MultipleIterator::__construct() - Constrói um novo MultipleIterator


Constrói um novo MultipleIterator

  • « MultipleIterator::attachIterator
  • MultipleIterator::containsIterator »
  • PHP Manual
  • MultipleIterator
  • Constrói um novo MultipleIterator

MultipleIterator::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::__construct — Constrói um novo MultipleIterator

Descrição

public MultipleIterator::__construct(int $flags = MultipleIterator::MIT_NEED_ALL | MultipleIterator::MIT_KEYS_NUMERIC)

Constrói um novo MultipleIterator.

Parâmetros

flags

As opções a serem definidas, de acordo com as Constantes de opção.

  • MultipleIterator::MIT_NEED_ALL ou MultipleIterator::MIT_NEED_ANY
  • MultipleIterator::MIT_KEYS_NUMERIC ou MultipleIterator::MIT_KEYS_ASSOC

O padrão é MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC.

Exemplos

Exemplo #1 Iterando um MultipleIterator

<?php
$people = new ArrayIterator(array('John', 'Jane', 'Jack', 'Judy'));
$roles = new ArrayIterator(array('Developer', 'Scrum Master', 'Project Owner'));

$team = new MultipleIterator($flags);
$team->attachIterator($people, 'person');
$team->attachIterator($roles, 'role');

foreach ($team as $member) {
print_r($member);
}
?>

Saída com $flags = MIT_NEED_ALL|MIT_KEYS_NUMERIC

Array
(
    [0] => John
    [1] => Developer
)
Array
(
    [0] => Jane
    [1] => Scrum Master
)
Array
(
    [0] => Jack
    [1] => Project Owner
)

Saída com $flags = MIT_NEED_ANY|MIT_KEYS_NUMERIC

Array
(
    [0] => John
    [1] => Developer
)
Array
(
    [0] => Jane
    [1] => Scrum Master
)
Array
(
    [0] => Jack
    [1] => Project Owner
)
Array
(
    [0] => Judy
    [1] =>
)

Saída com $flags = MIT_NEED_ALL|MIT_KEYS_ASSOC

Array
(
    [person] => John
    [role] => Developer
)
Array
(
    [person] => Jane
    [role] => Scrum Master
)
Array
(
    [person] => Jack
    [role] => Project Owner
)

Saída com $flags = MIT_NEED_ANY|MIT_KEYS_ASSOC

Array
(
    [person] => John
    [role] => Developer
)
Array
(
    [person] => Jane
    [role] => Scrum Master
)
Array
(
    [person] => Jack
    [role] => Project Owner
)
Array
(
    [person] => Judy
    [role] =>
)

Veja Também

  • Constantes de Opção
  • MultipleIterator::valid() - Verifica a validade dos subiteradores


Verifica se um iterador está anexado

  • « MultipleIterator::__construct
  • MultipleIterator::countIterators »
  • PHP Manual
  • MultipleIterator
  • Verifica se um iterador está anexado

MultipleIterator::containsIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::containsIterator — Verifica se um iterador está anexado

Descrição

public MultipleIterator::containsIterator(Iterator $iterator): bool

Verifica se um iterador está anexado ou não.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

iterator

O iterador a ser verificado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • MultipleIterator::valid() - Verifica a validade dos subiteradores


Obtém o número de instâncias de iteradores anexadas

  • « MultipleIterator::containsIterator
  • MultipleIterator::current »
  • PHP Manual
  • MultipleIterator
  • Obtém o número de instâncias de iteradores anexadas

MultipleIterator::countIterators

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::countIterators — Obtém o número de instâncias de iteradores anexadas

Descrição

public MultipleIterator::countIterators(): int

Obtém o número de instâncias de iteradores anexadas.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O número de instâncias de iteradores anexadas (como um int).

Veja Também

  • MultipleIterator::containsIterator() - Verifica se um iterador está anexado


Obtém as instâncias do iterador registradas

  • « MultipleIterator::countIterators
  • MultipleIterator::detachIterator »
  • PHP Manual
  • MultipleIterator
  • Obtém as instâncias do iterador registradas

MultipleIterator::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::current — Obtém as instâncias do iterador registradas

Descrição

public MultipleIterator::current(): array

Obtém o resultado current() das instâncias do iterador registradas.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo os valores atuais de cada iterador anexado.

Erros/Exceções

Uma RuntimeException é lançada se o iterador for inválido (a partir do PHP 8.1.0), ou se o modo MIT_NEED_ALL estiver definido e pelo menos um iterador anexado não for válido. Ou uma IllegalValueException se uma chave for null e MIT_KEYS_ASSOC estiver definido.

Registro de Alterações

Versão | Descrição
8.1.0 | Uma RuntimeException agora é lançada se MultipleIterator::current() for chamado em um iterador inválido. Anteriormente, false era retornado.

Veja Também

  • MultipleIterator::valid() - Verifica a validade dos subiteradores


Desanexa um iterador

  • « MultipleIterator::current
  • MultipleIterator::getFlags »
  • PHP Manual
  • MultipleIterator
  • Desanexa um iterador

MultipleIterator::detachIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::detachIterator — Desanexa um iterador

Descrição

public MultipleIterator::detachIterator(Iterator $iterator): void

Desanexa um iterador.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

iterator

O iterador a ser desanexado.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • MultipleIterator::attachIterator() - Anexa informações do iterador


Obtém informações sobre as opções

  • « MultipleIterator::detachIterator
  • MultipleIterator::key »
  • PHP Manual
  • MultipleIterator
  • Obtém informações sobre as opções

MultipleIterator::getFlags

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::getFlags — Obtém informações sobre as opções

Descrição

public MultipleIterator::getFlags(): int

Obtém informações sobre as opções.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Informações sobre as opções, como um int.

Veja Também

  • Constantes de Opção
  • MultipleIterator::__construct() - Constrói um novo MultipleIterator
  • MultipleIterator::setFlags() - Define opções


Obtém as instâncias do iterador registradas

  • « MultipleIterator::getFlags
  • MultipleIterator::next »
  • PHP Manual
  • MultipleIterator
  • Obtém as instâncias do iterador registradas

MultipleIterator::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::key — Obtém as instâncias do iterador registradas

Descrição

public MultipleIterator::key(): array

Obtém o resultado da função key() das instâncias do iterador registradas.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array de todas as instâncias do iterador registradas.

Erros/Exceções

Um RuntimeException é lançado se o iterador for inválido (a partir do PHP 8.1.0), ou o modo MIT_NEED_ALL estiver definido e pelo menos um iterador anexado não for válido.

Chamando este método de foreach aciona o aviso "Illegal type returned".

Registro de Alterações

Versão | Descrição
8.1.0 | Um RuntimeException agora é lançado se MultipleIterator::key() for chamado em um iterador inválido. Anteriormente, retornava false.

Veja Também

  • MultipleIterator::current() - Obtém as instâncias do iterador registradas


Movimenta todos os subiteradores anexados para frente

  • « MultipleIterator::key
  • MultipleIterator::rewind »
  • PHP Manual
  • MultipleIterator
  • Movimenta todos os subiteradores anexados para frente

MultipleIterator::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::next — Movimenta todos os subiteradores anexados para frente

Descrição

public MultipleIterator::next(): void

Movimenta todos os subiteradores anexados para frente.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • MultipleIterator::rewind() - Rebobina todas as instâncias do iterador anexado


Rebobina todas as instâncias do iterador anexado

  • « MultipleIterator::next
  • MultipleIterator::setFlags »
  • PHP Manual
  • MultipleIterator
  • Rebobina todas as instâncias do iterador anexado

MultipleIterator::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::rewind — Rebobina todas as instâncias do iterador anexado

Descrição

public MultipleIterator::rewind(): void

Rebobina todas as instâncias do iterador anexado.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • MultipleIterator::next() - Movimenta todos os subiteradores anexados para frente


Define opções

  • « MultipleIterator::rewind
  • MultipleIterator::valid »
  • PHP Manual
  • MultipleIterator
  • Define opções

MultipleIterator::setFlags

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::setFlags — Define opções

Descrição

public MultipleIterator::setFlags(int $flags): void

Define opções.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

flags

As opções a serem definidas, de acordo com Constantes de Opção

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Constantes de Opção
  • MultipleIterator::__construct() - Constrói um novo MultipleIterator
  • MultipleIterator::getFlags() - Obtém informações sobre as opções


Verifica a validade dos subiteradores

  • « MultipleIterator::setFlags
  • NoRewindIterator »
  • PHP Manual
  • MultipleIterator
  • Verifica a validade dos subiteradores

MultipleIterator::valid

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::valid — Verifica a validade dos subiteradores

Descrição

public MultipleIterator::valid(): bool

Verifica a validade dos subiteradores.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se um ou todos os subiteradores forem válidos, dependendo das opções (flags), caso contrário, retorna false

Veja Também

  • MultipleIterator::__construct() - Constrói um novo MultipleIterator


A classe NoRewindIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Este iterador ignora operações de rebobinamento. Isso permite processar um iterador em vários loops foreach parciais.

Resumo da classe

class NoRewindIterator extends IteratorIterator {
/* Métodos */
public __construct(Iterator $iterator)
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
/* Métodos herdados */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Índice

  • NoRewindIterator::__construct — Constrói um NoRewindIterator
  • NoRewindIterator::current — Obtém o valor atual
  • NoRewindIterator::key — Obtém a chave atual
  • NoRewindIterator::next — Avança para o próximo elemento
  • NoRewindIterator::rewind — Impede a operação de rebobinar no iterador interno
  • NoRewindIterator::valid — Valida o iterador


Constrói um NoRewindIterator

  • « NoRewindIterator
  • NoRewindIterator::current »
  • PHP Manual
  • NoRewindIterator
  • Constrói um NoRewindIterator

NoRewindIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::__construct — Constrói um NoRewindIterator

Descrição

public NoRewindIterator::__construct(Iterator $iterator)

Constrói um NoRewindIterator.

Parâmetros

iterator

O iterador sendo usado.

Exemplos

Exemplo #1 Exemplo de NoRewindIterator::__construct()

O segundo loop não produz saída porque o iterador é usado apenas uma vez, já que não rebobina.

<?php
$fruit = array('maçã', 'banana', 'oxicoco');

$arr = new ArrayObject($fruit);
$it = new NoRewindIterator($arr->getIterator());

echo "Fruta A:\n";
foreach( $it as $item ) {
echo $item . "\n";
}

echo "Fruta B:\n";
foreach( $it as $item ) {
echo $item . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Fruta A:
maçã
banana
oxicoco
Fruta B:

Veja Também

  • NoRewindIterator::valid() - Valida o iterador


Obtém o valor atual

  • « NoRewindIterator::__construct
  • NoRewindIterator::key »
  • PHP Manual
  • NoRewindIterator
  • Obtém o valor atual

NoRewindIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::current — Obtém o valor atual

Descrição

public NoRewindIterator::current(): mixed

Obtém o valor atual.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor atual.

Veja Também

  • NoRewindIterator::key() - Obtém a chave atual


Obtém a chave atual

  • « NoRewindIterator::current
  • NoRewindIterator::next »
  • PHP Manual
  • NoRewindIterator
  • Obtém a chave atual

NoRewindIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::key — Obtém a chave atual

Descrição

public NoRewindIterator::key(): mixed

Obtém a chave atual.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A chave atual.

Veja Também

  • NoRewindIterator::next() - Avança para o próximo elemento


Avança para o próximo elemento

  • « NoRewindIterator::key
  • NoRewindIterator::rewind »
  • PHP Manual
  • NoRewindIterator
  • Avança para o próximo elemento

NoRewindIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::next — Avança para o próximo elemento

Descrição

public NoRewindIterator::next(): void

Avança para o próximo elemento.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • NoRewindIterator::rewind() - Impede a operação de rebobinar no iterador interno


Impede a operação de rebobinar no iterador interno

  • « NoRewindIterator::next
  • NoRewindIterator::valid »
  • PHP Manual
  • NoRewindIterator
  • Impede a operação de rebobinar no iterador interno

NoRewindIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::rewind — Impede a operação de rebobinar no iterador interno

Descrição

public NoRewindIterator::rewind(): void

Impede a operação de rebobinar no iterador interno.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de NoRewindIterator::rewind()

Este exemplo demonstra que chamando rewind em um objeto NoRewindIterator não tem efeito.

<?php
$fruits = array("limão", "laranja", "maçã", "pera");

$noRewindIterator = new NoRewindIterator(new ArrayIterator($fruits));

echo $noRewindIterator->current() . "\n";
$noRewindIterator->next();
// agora rebobina o iterador (nada deve acontecer)
$noRewindIterator->rewind();
echo $noRewindIterator->current() . "\n";
?>

O exemplo acima produzirá:

limão
laranja


Valida o iterador

  • « NoRewindIterator::rewind
  • ParentIterator »
  • PHP Manual
  • NoRewindIterator
  • Valida o iterador

NoRewindIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::valid — Valida o iterador

Descrição

public NoRewindIterator::valid(): bool

Verifica se o iterador é válido.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • NoRewindIterator::getInnerIterator()


A classe ParentIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Este FilterIterator estendido permite uma iteração recursiva usando RecursiveIteratorIterator que mostra apenas os elementos que têm filhos.

Resumo da classe

class ParentIterator extends RecursiveFilterIterator {
/* Métodos */
public __construct(RecursiveIterator $iterator)
public accept(): bool
public getChildren(): ParentIterator
public hasChildren(): bool
public next(): void
public rewind(): void
/* Métodos herdados */
public RecursiveFilterIterator::getChildren(): ?RecursiveFilterIterator
public RecursiveFilterIterator::hasChildren(): bool
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Índice

  • ParentIterator::accept — Determina a aceitabilidade
  • ParentIterator::__construct — Constrói um ParentIterator
  • ParentIterator::getChildren — Retorna os filhos do iterador interno de um ParentIterator
  • ParentIterator::hasChildren — Verifica se o elemento atual do iterador interno tem ou não filhos
  • ParentIterator::next — Avança o iterador
  • ParentIterator::rewind — Recomeça o iterador


Determina a aceitabilidade

  • « ParentIterator
  • ParentIterator::__construct »
  • PHP Manual
  • ParentIterator
  • Determina a aceitabilidade

ParentIterator::accept

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ParentIterator::accept — Determina a aceitabilidade

Descrição

public ParentIterator::accept(): bool

Determina se o elemento atual tem filhos.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true se o elemento atual for aceitável, caso contrário, false.

Veja Também

  • ParentIterator::hasChildren() - Verifica se o elemento atual do iterador interno tem ou não filhos
  • FilterIterator::accept() - Verifica se o elemento atual do iterador é aceitável


Constrói um ParentIterator

  • « ParentIterator::accept
  • ParentIterator::getChildren »
  • PHP Manual
  • ParentIterator
  • Constrói um ParentIterator

ParentIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ParentIterator::__construct — Constrói um ParentIterator

Descrição

public ParentIterator::__construct(RecursiveIterator $iterator)

Constrói um ParentIterator em um iterador.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

iterator

O iterador no qual está sendo construído.


Retorna os filhos do iterador interno de um ParentIterator

  • « ParentIterator::__construct
  • ParentIterator::hasChildren »
  • PHP Manual
  • ParentIterator
  • Retorna os filhos do iterador interno de um ParentIterator

ParentIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ParentIterator::getChildren — Retorna os filhos do iterador interno de um ParentIterator

Descrição

public ParentIterator::getChildren(): ParentIterator

Retorna os filhos do iterador interno contidos em um ParentIterator.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um object.


Verifica se o elemento atual do iterador interno tem ou não filhos

  • « ParentIterator::getChildren
  • ParentIterator::next »
  • PHP Manual
  • ParentIterator
  • Verifica se o elemento atual do iterador interno tem ou não filhos

ParentIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ParentIterator::hasChildren — Verifica se o elemento atual do iterador interno tem ou não filhos

Descrição

public ParentIterator::hasChildren(): bool

Verifica se o elemento atual do iterador interno tem filhos.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Avança o iterador

  • « ParentIterator::hasChildren
  • ParentIterator::rewind »
  • PHP Manual
  • ParentIterator
  • Avança o iterador

ParentIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ParentIterator::next — Avança o iterador

Descrição

public ParentIterator::next(): void

Avança o iterador.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Recomeça o iterador

  • « ParentIterator::next
  • RecursiveArrayIterator »
  • PHP Manual
  • ParentIterator
  • Recomeça o iterador

ParentIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ParentIterator::rewind — Recomeça o iterador

Descrição

public ParentIterator::rewind(): void

Recomeça o iterador.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


A classe RecursiveArrayIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Este iterador permite desfazer e modificar valores e chaves enquanto itera sobre arrays e objetos, da mesma forma que o ArrayIterator. Além disso, é possível iterar sobre a entrada atual do iterador.

Resumo da classe

class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator {
/* Constantes herdadas */
public const int ArrayIterator::STD_PROP_LIST;
public const int ArrayIterator::ARRAY_AS_PROPS;
/* Constantes */
public const int CHILD_ARRAYS_ONLY;
/* Métodos */
public getChildren(): ?RecursiveArrayIterator
public hasChildren(): bool
/* Métodos herdados */
public ArrayIterator::__construct(array|object $array = [], int $flags = 0)
public ArrayIterator::append(mixed $value): void
public ArrayIterator::asort(int $flags = SORT_REGULAR): true
public ArrayIterator::count(): int
public ArrayIterator::current(): mixed
public ArrayIterator::getArrayCopy(): array
public ArrayIterator::getFlags(): int
public ArrayIterator::key(): string|int|null
public ArrayIterator::ksort(int $flags = SORT_REGULAR): true
public ArrayIterator::natcasesort(): true
public ArrayIterator::natsort(): true
public ArrayIterator::next(): void
public ArrayIterator::offsetExists(mixed $key): bool
public ArrayIterator::offsetGet(mixed $key): mixed
public ArrayIterator::offsetSet(mixed $key, mixed $value): void
public ArrayIterator::offsetUnset(mixed $key): void
public ArrayIterator::rewind(): void
public ArrayIterator::seek(int $offset): void
public ArrayIterator::serialize(): string
public ArrayIterator::setFlags(int $flags): void
public ArrayIterator::uasort(callable $callback): true
public ArrayIterator::uksort(callable $callback): true
public ArrayIterator::unserialize(string $data): void
public ArrayIterator::valid(): bool
}

Constantes pré-definidas

Flags do RecursiveArrayIterator

RecursiveArrayIterator::CHILD_ARRAYS_ONLY

Trata apenas arrays (não objetos) como tendo filhos para iteração recursiva.

Índice

  • RecursiveArrayIterator::getChildren — Retorna um iterador para a entrada atual se ela for um array ou um object
  • RecursiveArrayIterator::hasChildren — Retorna se a entrada atual é um array ou um objeto


Retorna um iterador para a entrada atual se ela for um array ou um object

  • « RecursiveArrayIterator
  • RecursiveArrayIterator::hasChildren »
  • PHP Manual
  • RecursiveArrayIterator
  • Retorna um iterador para a entrada atual se ela for um array ou um object

RecursiveArrayIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveArrayIterator::getChildren — Retorna um iterador para a entrada atual se ela for um array ou um object

Descrição

public RecursiveArrayIterator::getChildren(): ?RecursiveArrayIterator

Retorna um iterador para a entrada atual do iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um iterador para a entrada atual, se ela for um array ou um object; ou null em caso de falha.

Erros/Exceções

Uma InvalidArgumentException será lançada se a entrada atual não contiver um array ou um object.

Exemplos

Exemplo #1 Exemplo de RecursiveArrayIterator::getChildren()

<?php
$fruits = array("a" => "limão", "b" => "laranja", array("a" => "maçã", "p" => "pêra"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

if ($iterator->hasChildren()) {
// imprime todos os filhos
foreach ($iterator->getChildren() as $key => $value) {
echo $key . ' : ' . $value . "\n";
}
} else {
echo "Sem filhos.\n";
}

$iterator->next();
}
?>

O exemplo acima produzirá:

Sem filhos.
Sem filhos.
a : maçã
p : pêra

Veja Também

  • RecursiveArrayIterator::hasChildren() - Retorna se a entrada atual é um array ou um objeto


Retorna se a entrada atual é um array ou um objeto

  • « RecursiveArrayIterator::getChildren
  • RecursiveCachingIterator »
  • PHP Manual
  • RecursiveArrayIterator
  • Retorna se a entrada atual é um array ou um objeto

RecursiveArrayIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveArrayIterator::hasChildren — Retorna se a entrada atual é um array ou um objeto

Descrição

public RecursiveArrayIterator::hasChildren(): bool

Retorna se a entrada atual é um array ou um object para o qual um iterador pode ser obtido via RecursiveArrayIterator::getChildren().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a entrada atual é um array ou um object, caso contrário, false é retornado.

Exemplos

Exemplo #1 Exemplo de RecursiveArrayIterator::hasChildren()

<?php
$fruits = array("a" => "limão", "b" => "laranja", array("a" => "maçã", "p" => "pêra"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

// Verifica se há filhos
if ($iterator->hasChildren()) {
// imprime todos os filhos
foreach ($iterator->getChildren() as $key => $value) {
echo $key . ' : ' . $value . "\n";
}
} else {
echo "Sem filhos.\n";
}

$iterator->next();
}
?>

O exemplo acima produzirá:

Sem filhos.
Sem filhos.
a : maçã
p : pêra

Veja Também

  • RecursiveArrayIterator::getChildren() - Retorna um iterador para a entrada atual se ela for um array ou um object


A classe RecursiveCachingIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

...

Resumo da classe

class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator {
/* Constantes herdadas */
public const int CachingIterator::CALL_TOSTRING;
public const int CachingIterator::CATCH_GET_CHILD;
public const int CachingIterator::TOSTRING_USE_KEY;
public const int CachingIterator::TOSTRING_USE_CURRENT;
public const int CachingIterator::TOSTRING_USE_INNER;
public const int CachingIterator::FULL_CACHE;
/* Métodos */
public __construct(Iterator $iterator, int $flags = RecursiveCachingIterator::CALL_TOSTRING)
public getChildren(): ?RecursiveCachingIterator
public hasChildren(): bool
/* Métodos herdados */
public CachingIterator::count(): int
public CachingIterator::current(): mixed
public CachingIterator::getCache(): array
public CachingIterator::getFlags(): int
public CachingIterator::hasNext(): bool
public CachingIterator::key(): scalar
public CachingIterator::next(): void
public CachingIterator::offsetExists(string $key): bool
public CachingIterator::offsetGet(string $key): mixed
public CachingIterator::offsetSet(string $key, mixed $value): void
public CachingIterator::offsetUnset(string $key): void
public CachingIterator::rewind(): void
public CachingIterator::setFlags(int $flags): void
public CachingIterator::__toString(): string
public CachingIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Índice

  • RecursiveCachingIterator::__construct — Construtor
  • RecursiveCachingIterator::getChildren — Retorna os filhos do iterador interno como um RecursiveCachingIterator
  • RecursiveCachingIterator::hasChildren — Verifica se o elemento atual do iterador interno possui filhos


Construtor

  • « RecursiveCachingIterator
  • RecursiveCachingIterator::getChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Construtor

RecursiveCachingIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveCachingIterator::__construct — Construtor

Descrição

public RecursiveCachingIterator::__construct(Iterator $iterator, int $flags = RecursiveCachingIterator::CALL_TOSTRING)

Constrói um novo RecursiveCachingIterator, que consiste em um iterator passado.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

iterator

O iterador sendo usado.

flags

As opções. Use CALL_TOSTRING para chamar RecursiveCachingIterator::__toString() para cada elemento (o padrão), e/ou CATCH_GET_CHILD para capturar exceções ao tentar obter filhos.

Veja Também

  • CachingIterator::__construct() - Constrói um novo objeto CachingIterator para o iterador


Retorna os filhos do iterador interno como um RecursiveCachingIterator

  • « RecursiveCachingIterator::__construct
  • RecursiveCachingIterator::hasChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Retorna os filhos do iterador interno como um RecursiveCachingIterator

RecursiveCachingIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveCachingIterator::getChildren — Retorna os filhos do iterador interno como um RecursiveCachingIterator

Descrição

public RecursiveCachingIterator::getChildren(): ?RecursiveCachingIterator
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Os filhos do iterador interno, como um RecursiveCachingIterator; ou null se não houver filhos.


Verifica se o elemento atual do iterador interno possui filhos

  • « RecursiveCachingIterator::getChildren
  • RecursiveCallbackFilterIterator »
  • PHP Manual
  • RecursiveCachingIterator
  • Verifica se o elemento atual do iterador interno possui filhos

RecursiveCachingIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveCachingIterator::hasChildren — Verifica se o elemento atual do iterador interno possui filhos

Descrição

public RecursiveCachingIterator::hasChildren(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o iterador interno tiver filhos, caso contrário, retorna false


A classe RecursiveCallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Introdução

Resumo da classe

class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements RecursiveIterator {
/* Métodos */
public __construct(RecursiveIterator $iterator, callable $callback)
public getChildren(): RecursiveCallbackFilterIterator
public hasChildren(): bool
/* Métodos herdados */
public CallbackFilterIterator::accept(): bool
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Exemplos

O callback deve aceitar até três argumentos: o item atual, a chave atual e o iterador, respectivamente.

Exemplo #1 Argumentos disponíveis para o callback

<?php

/**
* Callback for RecursiveCallbackFilterIterator
*
* @param $current Valor atual do item
* @param $key Chave atual do item
* @param $iterator Iterador sendo filtrado
* @return boolean TRUE para aceitar o item atual, FALSE caso contrário
*/
function my_callback($current, $key, $iterator) {
// Seu código de filtragem aqui
}

?>

Filtrar um iterador recursivo geralmente envolve duas condições. A primeira é que, para permitir a recursão, a função de retorno de chamada deve retornar true se o item do iterador atual tiver filhos. O segundo é a condição de filtro normal, como um tamanho de arquivo ou extensão verificação como no exemplo abaixo.

Exemplo #2 Exemplo básico de chamada recursiva

<?php

$dir = new RecursiveDirectoryIterator(__DIR__);

// Filtrar arquivos grandes ( > 100MB)
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
// Permitir recursão
if ($iterator->hasChildren()) {
return TRUE;
}
// Verificar se é um arquivo grande
if ($current->isFile() && $current->getSize() > 104857600) {
return TRUE;
}
return FALSE;
});

foreach (new RecursiveIteratorIterator($files) as $file) {
echo $file->getPathname() . PHP_EOL;
}

?>

Índice

  • RecursiveCallbackFilterIterator::__construct — Cria um RecursiveCallbackFilterIterator a partir de um RecursiveIterator
  • RecursiveCallbackFilterIterator::getChildren — Retorna os filhos do iterador interno contidos em um RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::hasChildren — Verifica se o elemento atual do iterador interno possui filhos


Cria um RecursiveCallbackFilterIterator a partir de um RecursiveIterator

  • « RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::getChildren »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Cria um RecursiveCallbackFilterIterator a partir de um RecursiveIterator

RecursiveCallbackFilterIterator::__construct

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

RecursiveCallbackFilterIterator::__construct — Cria um RecursiveCallbackFilterIterator a partir de um RecursiveIterator

Descrição

public RecursiveCallbackFilterIterator::__construct(RecursiveIterator $iterator, callable $callback)

Cria um iterador filtrado a partir de um RecursiveIterator usando o callback para determinar quais itens são aceitos ou rejeitados.

Parâmetros

iterator

O iterador recursivo a ser filtrado.

callback

O callback, que deve retornar true para aceitar o item atual ou false caso contrário. Veja Exemplos.

Pode ser qualquer valor callable válido.

Veja Também

  • Exemplos de RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::getChildren() - Retorna os filhos do iterador interno contidos em um RecursiveCallbackFilterIterator
  • RecursiveCallbackFilteriterator::hasChildren() - Verifica se o elemento atual do iterador interno possui filhos


Retorna os filhos do iterador interno contidos em um RecursiveCallbackFilterIterator

  • « RecursiveCallbackFilterIterator::__construct
  • RecursiveCallbackFilterIterator::hasChildren »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Retorna os filhos do iterador interno contidos em um RecursiveCallbackFilterIterator

RecursiveCallbackFilterIterator::getChildren

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

RecursiveCallbackFilterIterator::getChildren — Retorna os filhos do iterador interno contidos em um RecursiveCallbackFilterIterator

Descrição

public RecursiveCallbackFilterIterator::getChildren(): RecursiveCallbackFilterIterator

Recupera os filhos filtrados do iterador interno.

RecursiveCallbackFilterIterator::hasChildren() deve ser usado para determinar se existem filhos a serem recuperados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um RecursiveCallbackFilterIterator contendo os filhos.

Veja Também

  • Exemplos de RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::__construct() - Cria um RecursiveCallbackFilterIterator a partir de um RecursiveIterator
  • RecursiveCallbackFilteriterator::hasChildren() - Verifica se o elemento atual do iterador interno possui filhos


Verifica se o elemento atual do iterador interno possui filhos

  • « RecursiveCallbackFilterIterator::getChildren
  • RecursiveDirectoryIterator »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Verifica se o elemento atual do iterador interno possui filhos

RecursiveCallbackFilterIterator::hasChildren

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

RecursiveCallbackFilterIterator::hasChildren — Verifica se o elemento atual do iterador interno possui filhos

Descrição

public RecursiveCallbackFilterIterator::hasChildren(): bool

Retorna true se o elemento atual tiver filhos, false caso contrário.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o elemento atual tiver filhos, false caso contrário.

Exemplos

Exemplo #1 Uso básico de RecursiveCallbackFilterIterator::hasChildren()

<?php

$dir = new RecursiveDirectoryIterator(__DIR__);

// Itera recursivamente em arquivos XML
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
// Permite recursão em diretórios
if ($iterator->hasChildren()) {
return TRUE;
}
// Verifique o arquivo XML
if (!strcasecmp($current->getExtension(), 'xml')) {
return TRUE;
}
return FALSE;
});

?>

Veja Também

  • Exemplos deRecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::__construct() - Cria um RecursiveCallbackFilterIterator a partir de um RecursiveIterator
  • RecursiveCallbackFilteriterator::getChildren() - Retorna os filhos do iterador interno contidos em um RecursiveCallbackFilterIterator


A classe RecursiveDirectoryIterator

(PHP 5, PHP 7, PHP 8)

Introdução

O RecursiveDirectoryIterator fornece uma interface para iterar de forma recursiva sobre diretórios do sistema de arquivos.

Resumo da classe

class RecursiveDirectoryIterator extends FilesystemIterator implements RecursiveIterator {
/* Constantes herdadas */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Métodos */
public __construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
public getChildren(): RecursiveDirectoryIterator
public getSubPath(): string
public getSubPathname(): string
public hasChildren(bool $allowLinks = false): bool
public key(): string
public next(): void
public rewind(): void
/* Métodos herdados */
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Índice

  • RecursiveDirectoryIterator::__construct — Constrói um RecursiveDirectoryIterator
  • RecursiveDirectoryIterator::getChildren — Retorna um iterador para o elemento atual se ele for um diretório
  • RecursiveDirectoryIterator::getSubPath — Obtém o subcaminho
  • RecursiveDirectoryIterator::getSubPathname — Obtém o subcaminho e o nome
  • RecursiveDirectoryIterator::hasChildren — Retorna se o elemento atual é ou não um diretório que não seja '.' nem '..'
  • RecursiveDirectoryIterator::key — Retorna o caminho e o nome do arquivo do elemento atual do diretório
  • RecursiveDirectoryIterator::next — Avança para o próximo elemento
  • RecursiveDirectoryIterator::rewind — Recomeça a iteração do diretório


Constrói um RecursiveDirectoryIterator

  • « RecursiveDirectoryIterator
  • RecursiveDirectoryIterator::getChildren »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Constrói um RecursiveDirectoryIterator

RecursiveDirectoryIterator::__construct

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

RecursiveDirectoryIterator::__construct — Constrói um RecursiveDirectoryIterator

Descrição

public RecursiveDirectoryIterator::__construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)

Constrói um RecursiveDirectoryIterator() para o directory fornecido.

Parâmetros

directory

O caminho do diretório a ser iterado.

flags

As opções (flags) podem ser fornecidas e afetarão o comportamento de alguns métodos. Uma lista das opções (flags) pode ser encontrada em Constantes predefinidas de FilesystemIterator. Elas também podem ser definidas posteriormente com FilesystemIterator::setFlags().

Erros/Exceções

Lança uma UnexpectedValueException se o directory não existir.

Lança um ValueError se o directory for uma string vazia.

Registro de Alterações

Versão | Descrição
8.0.0 | Agora lança um ValueError se directory for uma string vazia; anteriormente lançava um RuntimeException.

Exemplos

Exemplo #1 Exemplo de RecursiveDirectoryIterator

<?php

$directory = '/tmp';

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

$it->rewind();
while($it->valid()) {

if (!$it->isDot()) {
echo 'SubPathName: ' . $it->getSubPathName() . "\n";
echo 'SubPath: ' . $it->getSubPath() . "\n";
echo 'Key: ' . $it->key() . "\n\n";
}

$it->next();
}

?>

O exemplo acima produzirá algo semelhante a:

SubPathName: fruit/apple.xml
SubPath:     fruit
Key:         /tmp/fruit/apple.xml

SubPathName: stuff.xml
SubPath:
Key:         /tmp/stuff.xml

SubPathName: veggies/carrot.xml
SubPath:     veggies
Key:         /tmp/veggies/carrot.xml

Veja Também

  • FilesystemIterator::__construct() - Constrói um novo iterador de sistema de arquivos
  • RecursiveIteratorIterator::__construct() - Constrói um RecursiveIteratorIterator
  • Constantes predefinidas de FilesystemIterator


Retorna um iterador para o elemento atual se ele for um diretório

  • « RecursiveDirectoryIterator::__construct
  • RecursiveDirectoryIterator::getSubPath »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Retorna um iterador para o elemento atual se ele for um diretório

RecursiveDirectoryIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveDirectoryIterator::getChildren — Retorna um iterador para o elemento atual se ele for um diretório

Descrição

public RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O nome do arquivo, informações do arquivo ou $this dependendo das flags definidas. Veja o FilesystemIterator constantes.


Obtém o subcaminho

  • « RecursiveDirectoryIterator::getChildren
  • RecursiveDirectoryIterator::getSubPathname »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Obtém o subcaminho

RecursiveDirectoryIterator::getSubPath

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveDirectoryIterator::getSubPath — Obtém o subcaminho

Descrição

public RecursiveDirectoryIterator::getSubPath(): string

Retorna o subcaminho relativo ao diretório fornecido no construtor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O subcaminho.

Exemplos

Exemplo #1 Exemplo de getSubPath()

$directory = '/tmp';

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

foreach ($it as $file) {
echo 'SubPathName: ' . $it->getSubPathName() . "\n";
echo 'SubPath: ' . $it->getSubPath() . "\n\n";
}

O exemplo acima produzirá algo semelhante a:

SubPathName: fruit/apple.xml
     SubPath:     fruit

     SubPathName: stuff.xml
     SubPath:

     SubPathName: veggies/carrot.xml
     SubPath:     veggies

Veja Também

  • RecursiveDirectoryIterator::getSubPathName() - Obtém o subcaminho e o nome
  • RecursiveDirectoryIterator::key() - Retorna o caminho e o nome do arquivo do elemento atual do diretório


Obtém o subcaminho e o nome

  • « RecursiveDirectoryIterator::getSubPath
  • RecursiveDirectoryIterator::hasChildren »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Obtém o subcaminho e o nome

RecursiveDirectoryIterator::getSubPathname

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveDirectoryIterator::getSubPathname — Obtém o subcaminho e o nome

Descrição

public RecursiveDirectoryIterator::getSubPathname(): string

Obtém o subcaminho e o nome do arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O subcaminho (subdiretório) e o nome do arquivo.

Exemplos

Exemplo #1 Exemplo de getSubPathname()

$directory = '/tmp';

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

foreach ($it as $file) {
echo 'SubPathName: ' . $it->getSubPathname() . "\n";
echo 'SubPath: ' . $it->getSubPath() . "\n\n";
}

O exemplo acima produzirá algo semelhante a:

SubPathName: fruit/apple.xml
     SubPath:     fruit

     SubPathName: stuff.xml
     SubPath:

     SubPathName: veggies/carrot.xml
     SubPath:     veggies

Veja Também

  • RecursiveDirectoryIterator::getSubPath() - Obtém o subcaminho
  • RecursiveDirectoryIterator::key() - Retorna o caminho e o nome do arquivo do elemento atual do diretório


Retorna se o elemento atual é ou não um diretório que não seja '.' nem '..'

  • « RecursiveDirectoryIterator::getSubPathname
  • RecursiveDirectoryIterator::key »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Retorna se o elemento atual é ou não um diretório que não seja '.' nem '..'

RecursiveDirectoryIterator::hasChildren

(PHP 5, PHP 7, PHP 8)

RecursiveDirectoryIterator::hasChildren — Retorna se o elemento atual é ou não um diretório que não seja '.' nem '..'

Descrição

public RecursiveDirectoryIterator::hasChildren(bool $allowLinks = false): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

allowLinks

Valor Retornado

Retorna se o atual elemento é um diretório, mas não '.' ou '..'


Retorna o caminho e o nome do arquivo do elemento atual do diretório

  • « RecursiveDirectoryIterator::hasChildren
  • RecursiveDirectoryIterator::next »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Retorna o caminho e o nome do arquivo do elemento atual do diretório

RecursiveDirectoryIterator::key

(PHP 5, PHP 7, PHP 8)

RecursiveDirectoryIterator::key — Retorna o caminho e o nome do arquivo do elemento atual do diretório

Descrição

public RecursiveDirectoryIterator::key(): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O caminho e nome do arquivo do elemento atual do diretório.


Avança para o próximo elemento

  • « RecursiveDirectoryIterator::key
  • RecursiveDirectoryIterator::rewind »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Avança para o próximo elemento

RecursiveDirectoryIterator::next

(PHP 5, PHP 7, PHP 8)

RecursiveDirectoryIterator::next — Avança para o próximo elemento

Descrição

public RecursiveDirectoryIterator::next(): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Recomeça a iteração do diretório

  • « RecursiveDirectoryIterator::next
  • RecursiveFilterIterator »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Recomeça a iteração do diretório

RecursiveDirectoryIterator::rewind

(PHP 5, PHP 7, PHP 8)

RecursiveDirectoryIterator::rewind — Recomeça a iteração do diretório

Descrição

public RecursiveDirectoryIterator::rewind(): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


A classe RecursiveFilterIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Este iterador abstrato filtra valores indesejados para um RecursiveIterator. Esta classe deve ser estendida para implementar filtros personalizados. O RecursiveFilterIterator::accept() deve ser implementado na subclasse.

Resumo da classe

abstract class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator {
/* Métodos */
public __construct(RecursiveIterator $iterator)
public getChildren(): ?RecursiveFilterIterator
public hasChildren(): bool
/* Métodos herdados */
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Índice

  • RecursiveFilterIterator::__construct — Cria um RecursiveFilterIterator a partir de um RecursiveIterator
  • RecursiveFilterIterator::getChildren — Retorna os filhos do iterador interno contidos em um RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren — Verifica se o elemento atual do iterador interno tem filhos


Cria um RecursiveFilterIterator a partir de um RecursiveIterator

  • « RecursiveFilterIterator
  • RecursiveFilterIterator::getChildren »
  • PHP Manual
  • RecursiveFilterIterator
  • Cria um RecursiveFilterIterator a partir de um RecursiveIterator

RecursiveFilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveFilterIterator::__construct — Cria um RecursiveFilterIterator a partir de um RecursiveIterator

Descrição

public RecursiveFilterIterator::__construct(RecursiveIterator $iterator)

Cria um RecursiveFilterIterator a partir de um RecursiveIterator.

Parâmetros

iterator

O RecursiveIterator a ser filtrado.

Exemplos

Exemplo #1 Exemplo básico de RecursiveFilterIterator()

<?php
class TestsOnlyFilter extends RecursiveFilterIterator {
public function accept() {
// Aceita o item atual se pudermos percorrer ele
// ou é um valor começando com "test"
return $this->hasChildren() || (strpos($this->current(), "test") !== FALSE);
}
}

$array = array("test1", array("taste2", "test3", "test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter = new TestsOnlyFilter($iterator);

foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
echo $value . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

test1
test3
test4
test5

Exemplo #2 Exemplo de RecursiveFilterIterator()

<?php
class StartsWithFilter extends RecursiveFilterIterator {

protected $word;

public function __construct(RecursiveIterator $rit, $word) {
$this->word = $word;
parent::__construct($rit);
}

public function accept() {
return $this->hasChildren() OR strpos($this->current(), $this->word) === 0;
}

public function getChildren() {
return new self($this->getInnerIterator()->getChildren(), $this->word);
}
}

$array = array("test1", array("taste2", "test3", "test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter = new StartsWithFilter($iterator, "test");

foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
echo $value . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

test1
test3
test4
test5

Veja Também

  • RecursiveFilterIterator::getChildren() - Retorna os filhos do iterador interno contidos em um RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren() - Verifica se o elemento atual do iterador interno tem filhos
  • FilterIterator::accept() - Verifica se o elemento atual do iterador é aceitável


Retorna os filhos do iterador interno contidos em um RecursiveFilterIterator

  • « RecursiveFilterIterator::__construct
  • RecursiveFilterIterator::hasChildren »
  • PHP Manual
  • RecursiveFilterIterator
  • Retorna os filhos do iterador interno contidos em um RecursiveFilterIterator

RecursiveFilterIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveFilterIterator::getChildren — Retorna os filhos do iterador interno contidos em um RecursiveFilterIterator

Descrição

public RecursiveFilterIterator::getChildren(): ?RecursiveFilterIterator

Retorna os filhos do iterador interno contidos em um RecursiveFilterIterator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um RecursiveFilterIterator contendo os filhos do iterador interno.

Veja Também

  • RecursiveFilterIterator::hasChildren() - Verifica se o elemento atual do iterador interno tem filhos
  • RecursiveIterator::getChildren() - Retorna um iterador para a entrada atual


Verifica se o elemento atual do iterador interno tem filhos

  • « RecursiveFilterIterator::getChildren
  • RecursiveIteratorIterator »
  • PHP Manual
  • RecursiveFilterIterator
  • Verifica se o elemento atual do iterador interno tem filhos

RecursiveFilterIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveFilterIterator::hasChildren — Verifica se o elemento atual do iterador interno tem filhos

Descrição

public RecursiveFilterIterator::hasChildren(): bool

Verifica se o elemento atual do iterador interno tem filhos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true se o iterador interno tiver filhos, caso contrário false

Veja Também

  • RecursiveFilterIterator::getChildren() - Retorna os filhos do iterador interno contidos em um RecursiveFilterIterator
  • RecursiveIterator::hasChildren() - Retorna se um iterador pode ser criado para a entrada atual


Classe RecursiveIteratorIterator

(PHP 5, PHP 7, PHP 8)

Introdução

Pode ser utilizado para percorrer interatores recursivos.

Resumo da classe

class RecursiveIteratorIterator implements OuterIterator {
/* Constantes */
public const int LEAVES_ONLY;
public const int SELF_FIRST;
public const int CHILD_FIRST;
public const int CATCH_GET_CHILD;
/* Métodos */
public __construct(Traversable $iterator, int $mode = RecursiveIteratorIterator::LEAVES_ONLY, int $flags = 0)
public beginChildren(): void
public beginIteration(): void
public callGetChildren(): ?RecursiveIterator
public callHasChildren(): bool
public current(): mixed
public endChildren(): void
public endIteration(): void
public getDepth(): int
public getInnerIterator(): RecursiveIterator
public getMaxDepth(): int|false
public getSubIterator(?int $level = null): ?RecursiveIterator
public key(): mixed
public next(): void
public nextElement(): void
public rewind(): void
public setMaxDepth(int $maxDepth = -1): void
public valid(): bool
}

Constantes pré-definidas

RecursiveIteratorIterator::LEAVES_ONLY

RecursiveIteratorIterator::SELF_FIRST

RecursiveIteratorIterator::CHILD_FIRST

RecursiveIteratorIterator::CATCH_GET_CHILD

Índice

  • RecursiveIteratorIterator::beginChildren — Inicia filhos
  • RecursiveIteratorIterator::beginIteration — Inicia Iteração
  • RecursiveIteratorIterator::callGetChildren — Obtém filhos
  • RecursiveIteratorIterator::callHasChildren — Tem filhos
  • RecursiveIteratorIterator::__construct — Constrói um RecursiveIteratorIterator
  • RecursiveIteratorIterator::current — Retorna o valor do elemento atual
  • RecursiveIteratorIterator::endChildren — Encerra filhos
  • RecursiveIteratorIterator::endIteration — Finaliza Iteração
  • RecursiveIteratorIterator::getDepth — Retorna a profundidade atual da iteração recursiva
  • RecursiveIteratorIterator::getInnerIterator — Obtém iterador interno
  • RecursiveIteratorIterator::getMaxDepth — Obtém a profundidade máxima
  • RecursiveIteratorIterator::getSubIterator — Retorna o sub-iterador ativo atual
  • RecursiveIteratorIterator::key — Retorna a chave atual
  • RecursiveIteratorIterator::next — Avança para o próximo elemento
  • RecursiveIteratorIterator::nextElement — Próximo elemento
  • RecursiveIteratorIterator::rewind — Recomeça o iterador no primeiro elemento do primeiro iterador interno
  • RecursiveIteratorIterator::setMaxDepth — Define profundidade máxima
  • RecursiveIteratorIterator::valid — Verifica se a posição atual é válida


Inicia filhos

  • « RecursiveIteratorIterator
  • RecursiveIteratorIterator::beginIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • Inicia filhos

RecursiveIteratorIterator::beginChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::beginChildren — Inicia filhos

Descrição

public RecursiveIteratorIterator::beginChildren(): void

É chamado após chamar RecursiveIteratorIterator::getChildren(), e seu associado RecursiveIteratorIterator::rewind().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Inicia Iteração

  • « RecursiveIteratorIterator::beginChildren
  • RecursiveIteratorIterator::callGetChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Inicia Iteração

RecursiveIteratorIterator::beginIteration

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::beginIteration — Inicia Iteração

Descrição

public RecursiveIteratorIterator::beginIteration(): void

Chamado quando a iteração começa (após a primeira chamada de RecursiveIteratorIterator::rewind()).

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Obtém filhos

  • « RecursiveIteratorIterator::beginIteration
  • RecursiveIteratorIterator::callHasChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Obtém filhos

RecursiveIteratorIterator::callGetChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::callGetChildren — Obtém filhos

Descrição

public RecursiveIteratorIterator::callGetChildren(): ?RecursiveIterator

Obtém os filhos do elemento atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um RecursiveIterator() em caso de sucesso, ou null em caso de falha.


Tem filhos

  • « RecursiveIteratorIterator::callGetChildren
  • RecursiveIteratorIterator::__construct »
  • PHP Manual
  • RecursiveIteratorIterator
  • Tem filhos

RecursiveIteratorIterator::callHasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::callHasChildren — Tem filhos

Descrição

public RecursiveIteratorIterator::callHasChildren(): bool

Chamado para cada elemento para testar se ele possui filhos.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna se o elemento possui filhos.


Constrói um RecursiveIteratorIterator

  • « RecursiveIteratorIterator::callHasChildren
  • RecursiveIteratorIterator::current »
  • PHP Manual
  • RecursiveIteratorIterator
  • Constrói um RecursiveIteratorIterator

RecursiveIteratorIterator::__construct

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

RecursiveIteratorIterator::__construct — Constrói um RecursiveIteratorIterator

Descrição

public RecursiveIteratorIterator::__construct(Traversable $iterator, int $mode = RecursiveIteratorIterator::LEAVES_ONLY, int $flags = 0)

Cria um RecursiveIteratorIterator a partir de um RecursiveIterator.

Parâmetros

iterator

O iterador a partir do qual está sendo construído. Pode ser um RecursiveIterator ou IteratorAggregate.

mode

Modo opcional. Valores possíveis são

  • RecursiveIteratorIterator::LEAVES_ONLY - O padrão. Lista apenas folhas na iteração.
  • RecursiveIteratorIterator::SELF_FIRST - Lista folhas e pais na iteração, com os pais vindo primeiro.
  • RecursiveIteratorIterator::CHILD_FIRST - Lista folhas e pais na iteração, com as folhas vindo primeiro.

flags

Opção opcional. Valores possíveis são RecursiveIteratorIterator::CATCH_GET_CHILD, que então ignorará exceções lançadas em chamadas para RecursiveIteratorIterator::getChildren().

Exemplos

Exemplo #1 Iterando um RecursiveIteratorIterator

<?php
$array = array(
array(
array(
array(
'leaf-0-0-0-0',
'leaf-0-0-0-1'
),
'leaf-0-0-0'
),
array(
array(
'leaf-0-1-0-0',
'leaf-0-1-0-1'
),
'leaf-0-1-0'
),
'leaf-0-0'
)
);

$iterator = new RecursiveIteratorIterator(
new RecursiveArrayIterator($array),
$mode
);
foreach ($iterator as $key => $leaf) {
echo "$key => $leaf", PHP_EOL;
}
?>

Saída com $mode = RecursiveIteratorIterator::LEAVES_ONLY

0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
0 => leaf-0-0-0
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
0 => leaf-0-1-0
0 => leaf-0-0

Saída com $mode = RecursiveIteratorIterator::SELF_FIRST

0 => Array
0 => Array
0 => Array
0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
1 => leaf-0-0-0
1 => Array
0 => Array
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
1 => leaf-0-1-0
2 => leaf-0-0

Saída com $mode = RecursiveIteratorIterator::CHILD_FIRST

0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
0 => Array
1 => leaf-0-0-0
0 => Array
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
0 => Array
1 => leaf-0-1-0
1 => Array
2 => leaf-0-0
0 => Array


Retorna o valor do elemento atual

  • « RecursiveIteratorIterator::__construct
  • RecursiveIteratorIterator::endChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Retorna o valor do elemento atual

RecursiveIteratorIterator::current

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::current — Retorna o valor do elemento atual

Descrição

public RecursiveIteratorIterator::current(): mixed
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor do elemento atual.


Encerra filhos

  • « RecursiveIteratorIterator::current
  • RecursiveIteratorIterator::endIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • Encerra filhos

RecursiveIteratorIterator::endChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::endChildren — Encerra filhos

Descrição

public RecursiveIteratorIterator::endChildren(): void

Chamado ao encerrar a recursão de um nível.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Finaliza Iteração

  • « RecursiveIteratorIterator::endChildren
  • RecursiveIteratorIterator::getDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Finaliza Iteração

RecursiveIteratorIterator::endIteration

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::endIteration — Finaliza Iteração

Descrição

public RecursiveIteratorIterator::endIteration(): void

Chamado quando a iteração termina (quando RecursiveIteratorIterator::valid() retorna pela primeira vez false).

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Retorna a profundidade atual da iteração recursiva

  • « RecursiveIteratorIterator::endIteration
  • RecursiveIteratorIterator::getInnerIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Retorna a profundidade atual da iteração recursiva

RecursiveIteratorIterator::getDepth

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::getDepth — Retorna a profundidade atual da iteração recursiva

Descrição

public RecursiveIteratorIterator::getDepth(): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A atual profundidade da iteração recursiva.


Obtém iterador interno

  • « RecursiveIteratorIterator::getDepth
  • RecursiveIteratorIterator::getMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Obtém iterador interno

RecursiveIteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::getInnerIterator — Obtém iterador interno

Descrição

public RecursiveIteratorIterator::getInnerIterator(): RecursiveIterator

Obtém o subiterador ativo atual.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O subiterador ativo atual.


Obtém a profundidade máxima

  • « RecursiveIteratorIterator::getInnerIterator
  • RecursiveIteratorIterator::getSubIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Obtém a profundidade máxima

RecursiveIteratorIterator::getMaxDepth

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::getMaxDepth — Obtém a profundidade máxima

Descrição

public RecursiveIteratorIterator::getMaxDepth(): int|false

Obtém a profundidade máxima permitida.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A profundidade máxima aceita, ou false se qualquer profundidade for permitida.

Veja Também

  • RecursiveIteratorIterator::setMaxDepth() - Define profundidade máxima


Retorna o sub-iterador ativo atual

  • « RecursiveIteratorIterator::getMaxDepth
  • RecursiveIteratorIterator::key »
  • PHP Manual
  • RecursiveIteratorIterator
  • Retorna o sub-iterador ativo atual

RecursiveIteratorIterator::getSubIterator

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::getSubIterator — Retorna o sub-iterador ativo atual

Descrição

public RecursiveIteratorIterator::getSubIterator(?int $level = null): ?RecursiveIterator
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

level

Valor Retornado

O atual sub-iterador ativo em caso de sucesso; null em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | level agora é anulável


Retorna a chave atual

  • « RecursiveIteratorIterator::getSubIterator
  • RecursiveIteratorIterator::next »
  • PHP Manual
  • RecursiveIteratorIterator
  • Retorna a chave atual

RecursiveIteratorIterator::key

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::key — Retorna a chave atual

Descrição

public RecursiveIteratorIterator::key(): mixed
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A atual chave.


Avança para o próximo elemento

  • « RecursiveIteratorIterator::key
  • RecursiveIteratorIterator::nextElement »
  • PHP Manual
  • RecursiveIteratorIterator
  • Avança para o próximo elemento

RecursiveIteratorIterator::next

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::next — Avança para o próximo elemento

Descrição

public RecursiveIteratorIterator::next(): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Próximo elemento

  • « RecursiveIteratorIterator::next
  • RecursiveIteratorIterator::rewind »
  • PHP Manual
  • RecursiveIteratorIterator
  • Próximo elemento

RecursiveIteratorIterator::nextElement

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::nextElement — Próximo elemento

Descrição

public RecursiveIteratorIterator::nextElement(): void

Chamado quando o próximo elemento está disponível.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Recomeça o iterador no primeiro elemento do primeiro iterador interno

  • « RecursiveIteratorIterator::nextElement
  • RecursiveIteratorIterator::setMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Recomeça o iterador no primeiro elemento do primeiro iterador interno

RecursiveIteratorIterator::rewind

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::rewind — Recomeça o iterador no primeiro elemento do primeiro iterador interno

Descrição

public RecursiveIteratorIterator::rewind(): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Define profundidade máxima

  • « RecursiveIteratorIterator::rewind
  • RecursiveIteratorIterator::valid »
  • PHP Manual
  • RecursiveIteratorIterator
  • Define profundidade máxima

RecursiveIteratorIterator::setMaxDepth

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::setMaxDepth — Define profundidade máxima

Descrição

public RecursiveIteratorIterator::setMaxDepth(int $maxDepth = -1): void

Define a profundidade máxima permitida.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

maxDepth

A profundidade máxima permitida. -1 é usado para qualquer profundidade.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Emite uma Exception se maxDepth for menor que -1.


Verifica se a posição atual é válida

  • « RecursiveIteratorIterator::setMaxDepth
  • RecursiveRegexIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Verifica se a posição atual é válida

RecursiveIteratorIterator::valid

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::valid — Verifica se a posição atual é válida

Descrição

public RecursiveIteratorIterator::valid(): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true se a posição atual for válida, caso contrário false


A classe RecursiveRegexIterator

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Introdução

Este iterador recursivo pode filtrar outro iterador recursivo por meio de uma expressão regular.

Resumo da classe

class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator {
/* Constantes herdadas */
public const int RegexIterator::USE_KEY;
public const int RegexIterator::INVERT_MATCH;
public const int RegexIterator::MATCH;
public const int RegexIterator::GET_MATCH;
public const int RegexIterator::ALL_MATCHES;
public const int RegexIterator::SPLIT;
public const int RegexIterator::REPLACE;
/* Propriedades herdadas */
public ?string $replacement = null;
/* Métodos */
public __construct(
RecursiveIterator $iterator,
string $pattern,
int $mode = RecursiveRegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 0
)
public getChildren(): RecursiveRegexIterator
public hasChildren(): bool
/* Métodos herdados */
public RegexIterator::accept(): bool
public RegexIterator::getFlags(): int
public RegexIterator::getMode(): int
public RegexIterator::getPregFlags(): int
public RegexIterator::getRegex(): string
public RegexIterator::setFlags(int $flags): void
public RegexIterator::setMode(int $mode): void
public RegexIterator::setPregFlags(int $pregFlags): void
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Índice

  • RecursiveRegexIterator::__construct — Cria um novo RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren — Retorna um iterador para a entrada atual
  • RecursiveRegexIterator::hasChildren — Retorna se um iterador pode ser obtido para a entrada atual


Cria um novo RecursiveRegexIterator

  • « RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Cria um novo RecursiveRegexIterator

RecursiveRegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RecursiveRegexIterator::__construct — Cria um novo RecursiveRegexIterator

Descrição

public RecursiveRegexIterator::__construct(
RecursiveIterator $iterator,
string $pattern,
int $mode = RecursiveRegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 0
)

Cria um novo iterador de expressão regular.

Parâmetros

iterator

O iterador recursivo ao qual este filtro de regex será aplicado.

pattern

A expressão regular a ser correspondida.

mode

Modo de operação, consulte RegexIterator::setMode() para uma lista de modos.

flags

Opções especiais, consulte RegexIterator::setFlags() para uma lista de opções disponíveis.

pregFlags

As opções de expressão regular. Essas flags dependem do parâmetro de modo de operação:

RegexIterator preg_flags
modo de operação | opções disponíveis
RecursiveRegexIterator::ALL_MATCHES | Veja preg_match_all().
RecursiveRegexIterator::GET_MATCH | Veja preg_match().
RecursiveRegexIterator::MATCH | Veja preg_match().
RecursiveRegexIterator::REPLACE | nenhum.
RecursiveRegexIterator::SPLIT | Veja preg_split().

Exemplos

Exemplo #1 Exemplo de RecursiveRegexIterator::__construct()

Cria um novo RegexIterator que filtra todas as strings que começam com 'test'.

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $key1 => $value1) {

if ($rRegexIterator->hasChildren()) {

// print all children
echo "Children: ";
foreach ($rRegexIterator->getChildren() as $key => $value) {
echo $value . " ";
}
echo "\n";
} else {
echo "No children\n";
}

}
?>

O exemplo acima produzirá algo semelhante a:

No children
Children: test4 test5

Veja Também

  • preg_match() - Perform a regular expression match
  • preg_match_all() - Perform a global regular expression match
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
  • preg_split() - Split string by a regular expression


Retorna um iterador para a entrada atual

  • « RecursiveRegexIterator::__construct
  • RecursiveRegexIterator::hasChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Retorna um iterador para a entrada atual

RecursiveRegexIterator::getChildren

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RecursiveRegexIterator::getChildren — Retorna um iterador para a entrada atual

Descrição

public RecursiveRegexIterator::getChildren(): RecursiveRegexIterator

Retorna um iterador para a entrada atual do iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um iterador para a entrada atual, se puder ser iterado pelo iterador interno.

Erros/Exceções

Uma InvalidArgumentException será lançada se a entrada atual não contiver um valor que possa ser iterado pelo iterador interno.

Exemplos

Exemplo #1 Exemplo de RecursiveRegexIterator::getChildren()

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $key1 => $value1) {

if ($rRegexIterator->hasChildren()) {

// imprime todos os filhos
echo "Children: ";
foreach ($rRegexIterator->getChildren() as $key => $value) {
echo $value . " ";
}
echo "\n";
} else {
echo "No children\n";
}

}
?>

O exemplo acima produzirá:

No children
Children: test4 test5

Veja Também

  • RecursiveRegexIterator::hasChildren() - Retorna se um iterador pode ser obtido para a entrada atual


Retorna se um iterador pode ser obtido para a entrada atual

  • « RecursiveRegexIterator::getChildren
  • RecursiveTreeIterator »
  • PHP Manual
  • RecursiveRegexIterator
  • Retorna se um iterador pode ser obtido para a entrada atual

RecursiveRegexIterator::hasChildren

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RecursiveRegexIterator::hasChildren — Retorna se um iterador pode ser obtido para a entrada atual

Descrição

public RecursiveRegexIterator::hasChildren(): bool

Retorna se um iterador pode ser obtido para a entrada atual. Este iterador pode ser obtido via RecursiveRegexIterator::getChildren().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se um iterador pode ser obtido para a entrada atual, caso contrário, retorna false.

Exemplos

Exemplo #1 Exemplo de RecursiveRegexIterator::hasChildren()

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $value) {
var_dump($rRegexIterator->hasChildren());
}
?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • RecursiveRegexIterator::getChildren() - Retorna um iterador para a entrada atual


A classe RecursiveTreeIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

Permite iterar sobre um RecursiveIterator para gerar uma árvore gráfica ASCII.

Resumo da classe

class RecursiveTreeIterator extends RecursiveIteratorIterator {
/* Constantes herdadas */
public const int RecursiveIteratorIterator::LEAVES_ONLY;
public const int RecursiveIteratorIterator::SELF_FIRST;
public const int RecursiveIteratorIterator::CHILD_FIRST;
public const int RecursiveIteratorIterator::CATCH_GET_CHILD;
/* Constantes */
public const int BYPASS_CURRENT;
public const int BYPASS_KEY;
public const int PREFIX_LEFT;
public const int PREFIX_MID_HAS_NEXT = 1;
public const int PREFIX_MID_LAST = 2;
public const int PREFIX_END_HAS_NEXT = 3;
public const int PREFIX_END_LAST = 4;
public const int PREFIX_RIGHT = 5;
/* Métodos */
public __construct(
RecursiveIterator|IteratorAggregate $iterator,
int $flags = RecursiveTreeIterator::BYPASS_KEY,
int $cachingIteratorFlags = CachingIterator::CATCH_GET_CHILD,
int $mode = RecursiveTreeIterator::SELF_FIRST
)
public beginChildren(): void
public beginIteration(): RecursiveIterator
public callGetChildren(): RecursiveIterator
public callHasChildren(): bool
public current(): mixed
public endChildren(): void
public endIteration(): void
public getEntry(): string
public getPostfix(): string
public getPrefix(): string
public key(): mixed
public next(): void
public nextElement(): void
public rewind(): void
public setPostfix(string $postfix): void
public setPrefixPart(int $part, string $value): void
public valid(): bool
/* Métodos herdados */
public RecursiveIteratorIterator::beginChildren(): void
public RecursiveIteratorIterator::beginIteration(): void
public RecursiveIteratorIterator::callGetChildren(): ?RecursiveIterator
public RecursiveIteratorIterator::callHasChildren(): bool
public RecursiveIteratorIterator::current(): mixed
public RecursiveIteratorIterator::endChildren(): void
public RecursiveIteratorIterator::endIteration(): void
public RecursiveIteratorIterator::getDepth(): int
public RecursiveIteratorIterator::getInnerIterator(): RecursiveIterator
public RecursiveIteratorIterator::getMaxDepth(): int|false
public RecursiveIteratorIterator::getSubIterator(?int $level = null): ?RecursiveIterator
public RecursiveIteratorIterator::key(): mixed
public RecursiveIteratorIterator::next(): void
public RecursiveIteratorIterator::nextElement(): void
public RecursiveIteratorIterator::rewind(): void
public RecursiveIteratorIterator::setMaxDepth(int $maxDepth = -1): void
public RecursiveIteratorIterator::valid(): bool
}

Constantes pré-definidas

RecursiveTreeIterator::BYPASS_CURRENT

RecursiveTreeIterator::BYPASS_KEY

RecursiveTreeIterator::PREFIX_LEFT

RecursiveTreeIterator::PREFIX_MID_HAS_NEXT

RecursiveTreeIterator::PREFIX_MID_LAST

RecursiveTreeIterator::PREFIX_END_HAS_NEXT

RecursiveTreeIterator::PREFIX_END_LAST

RecursiveTreeIterator::PREFIX_RIGHT

Índice

  • RecursiveTreeIterator::beginChildren — Iniciar filhos
  • RecursiveTreeIterator::beginIteration — Inicia iteração
  • RecursiveTreeIterator::callGetChildren — Obtém filhos
  • RecursiveTreeIterator::callHasChildren — Tem filhos
  • RecursiveTreeIterator::__construct — Constrói um RecursiveTreeIterator
  • RecursiveTreeIterator::current — Obtém o elemento atual
  • RecursiveTreeIterator::endChildren — Termina os filhos
  • RecursiveTreeIterator::endIteration — Termina iteração
  • RecursiveTreeIterator::getEntry — Obtém entrada atual
  • RecursiveTreeIterator::getPostfix — Obtém o sufixo
  • RecursiveTreeIterator::getPrefix — Obtém o prefixo
  • RecursiveTreeIterator::key — Obtém a chave do elemento atual
  • RecursiveTreeIterator::next — Move para o próximo elemento
  • RecursiveTreeIterator::nextElement — Próximo elemento
  • RecursiveTreeIterator::rewind — Rebobina o iterador
  • RecursiveTreeIterator::setPostfix — Define sufixo
  • RecursiveTreeIterator::setPrefixPart — Define uma parte do prefixo
  • RecursiveTreeIterator::valid — Verifica validade


Iniciar filhos

  • « RecursiveTreeIterator
  • RecursiveTreeIterator::beginIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • Iniciar filhos

RecursiveTreeIterator::beginChildren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::beginChildren — Iniciar filhos

Descrição

public RecursiveTreeIterator::beginChildren(): void

Chamado ao descer um nível na recursão.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Inicia iteração

  • « RecursiveTreeIterator::beginChildren
  • RecursiveTreeIterator::callGetChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Inicia iteração

RecursiveTreeIterator::beginIteration

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::beginIteration — Inicia iteração

Descrição

public RecursiveTreeIterator::beginIteration(): RecursiveIterator

Chamado quando a iteração começa (após a primeira chamada de RecursiveTreeIterator::rewind()).

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um RecursiveIterator.


Obtém filhos

  • « RecursiveTreeIterator::beginIteration
  • RecursiveTreeIterator::callHasChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Obtém filhos

RecursiveTreeIterator::callGetChildren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::callGetChildren — Obtém filhos

Descrição

public RecursiveTreeIterator::callGetChildren(): RecursiveIterator

Obtém os filhos do elemento atual.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um RecursiveIterator.


Tem filhos

  • « RecursiveTreeIterator::callGetChildren
  • RecursiveTreeIterator::__construct »
  • PHP Manual
  • RecursiveTreeIterator
  • Tem filhos

RecursiveTreeIterator::callHasChildren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::callHasChildren — Tem filhos

Descrição

public RecursiveTreeIterator::callHasChildren(): bool

Chamado para cada elemento para testar se ele tem filhos.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true se houver filhos, caso contrário, false


Constrói um RecursiveTreeIterator

  • « RecursiveTreeIterator::callHasChildren
  • RecursiveTreeIterator::current »
  • PHP Manual
  • RecursiveTreeIterator
  • Constrói um RecursiveTreeIterator

RecursiveTreeIterator::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::__construct — Constrói um RecursiveTreeIterator

Descrição

public RecursiveTreeIterator::__construct(
RecursiveIterator|IteratorAggregate $iterator,
int $flags = RecursiveTreeIterator::BYPASS_KEY,
int $cachingIteratorFlags = CachingIterator::CATCH_GET_CHILD,
int $mode = RecursiveTreeIterator::SELF_FIRST
)

Constrói um novo RecursiveTreeIterator a partir do iterador recursivo fornecido.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

iterator

O RecursiveIterator ou IteratorAggregate a ser iterado.

flags

Podem ser fornecidas opções que afetarão o comportamento de alguns métodos. Uma lista das opções pode ser encontrada em Constantes predefinidas do RecursiveTreeIterator.

caching_it_flags

Opções para afetar o comportamento do RecursiveCachingIterator usado internamente.

mode

Opções para afetar o comportamento do RecursiveIteratorIterator usado internamente.


Obtém o elemento atual

  • « RecursiveTreeIterator::__construct
  • RecursiveTreeIterator::endChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Obtém o elemento atual

RecursiveTreeIterator::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::current — Obtém o elemento atual

Descrição

public RecursiveTreeIterator::current(): mixed

Obtém o elemento atual prefixado e sufixado.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Obtém o elemento atual prefixado e sufixado.


Termina os filhos

  • « RecursiveTreeIterator::current
  • RecursiveTreeIterator::endIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • Termina os filhos

RecursiveTreeIterator::endChildren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::endChildren — Termina os filhos

Descrição

public RecursiveTreeIterator::endChildren(): void

Chamado quando termina de recursar um nível.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Termina iteração

  • « RecursiveTreeIterator::endChildren
  • RecursiveTreeIterator::getEntry »
  • PHP Manual
  • RecursiveTreeIterator
  • Termina iteração

RecursiveTreeIterator::endIteration

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::endIteration — Termina iteração

Descrição

public RecursiveTreeIterator::endIteration(): void

Chamado quando a iteração termina (quando RecursiveTreeIterator::valid() retorna pela primeira vez false)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Obtém entrada atual

  • « RecursiveTreeIterator::endIteration
  • RecursiveTreeIterator::getPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Obtém entrada atual

RecursiveTreeIterator::getEntry

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::getEntry — Obtém entrada atual

Descrição

public RecursiveTreeIterator::getEntry(): string

Obtém a parte da árvore construída para o elemento atual.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a parte da árvore construída para o elemento atual.


Obtém o sufixo

  • « RecursiveTreeIterator::getEntry
  • RecursiveTreeIterator::getPrefix »
  • PHP Manual
  • RecursiveTreeIterator
  • Obtém o sufixo

RecursiveTreeIterator::getPostfix

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::getPostfix — Obtém o sufixo

Descrição

public RecursiveTreeIterator::getPostfix(): string

Obtém a string para colocar após o elemento atual.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a string para colocar após o elemento atual.


Obtém o prefixo

  • « RecursiveTreeIterator::getPostfix
  • RecursiveTreeIterator::key »
  • PHP Manual
  • RecursiveTreeIterator
  • Obtém o prefixo

RecursiveTreeIterator::getPrefix

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::getPrefix — Obtém o prefixo

Descrição

public RecursiveTreeIterator::getPrefix(): string

Obtém a string para colocar na frente do elemento atual

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

etorna a string para colocar na frente do elemento atual


Obtém a chave do elemento atual

  • « RecursiveTreeIterator::getPrefix
  • RecursiveTreeIterator::next »
  • PHP Manual
  • RecursiveTreeIterator
  • Obtém a chave do elemento atual

RecursiveTreeIterator::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::key — Obtém a chave do elemento atual

Descrição

public RecursiveTreeIterator::key(): mixed

Obtém a chave atual com prefixo e sufixo.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a chave atual com prefixo e sufixo.


Move para o próximo elemento

  • « RecursiveTreeIterator::key
  • RecursiveTreeIterator::nextElement »
  • PHP Manual
  • RecursiveTreeIterator
  • Move para o próximo elemento

RecursiveTreeIterator::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::next — Move para o próximo elemento

Descrição

public RecursiveTreeIterator::next(): void

Move para o próximo elemento.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Próximo elemento

  • « RecursiveTreeIterator::next
  • RecursiveTreeIterator::rewind »
  • PHP Manual
  • RecursiveTreeIterator
  • Próximo elemento

RecursiveTreeIterator::nextElement

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::nextElement — Próximo elemento

Descrição

public RecursiveTreeIterator::nextElement(): void

Chamado quando o próximo elemento está disponível.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Rebobina o iterador

  • « RecursiveTreeIterator::nextElement
  • RecursiveTreeIterator::setPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Rebobina o iterador

RecursiveTreeIterator::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::rewind — Rebobina o iterador

Descrição

public RecursiveTreeIterator::rewind(): void

Rebobina o iterador para o primeiro elemento do iterador interno do nível superior.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Define sufixo

  • « RecursiveTreeIterator::rewind
  • RecursiveTreeIterator::setPrefixPart »
  • PHP Manual
  • RecursiveTreeIterator
  • Define sufixo

RecursiveTreeIterator::setPostfix

(PHP 5 >= 5.5.3, PHP 7, PHP 8)

RecursiveTreeIterator::setPostfix — Define sufixo

Descrição

public RecursiveTreeIterator::setPostfix(string $postfix): void

Define o sufixo usado em RecursiveTreeIterator::getPostfix().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

postfix

Valor Retornado

Nenhum valor é retornado.


Define uma parte do prefixo

  • « RecursiveTreeIterator::setPostfix
  • RecursiveTreeIterator::valid »
  • PHP Manual
  • RecursiveTreeIterator
  • Define uma parte do prefixo

RecursiveTreeIterator::setPrefixPart

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::setPrefixPart — Define uma parte do prefixo

Descrição

public RecursiveTreeIterator::setPrefixPart(int $part, string $value): void

Define uma parte do prefixo usado na árvore gráfica.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

part

Uma das constantes RecursiveTreeIterator::PREFIX_*.

value

O valor a ser atribuído à parte do prefixo especificada em part.

Valor Retornado

Nenhum valor é retornado.


Verifica validade

  • « RecursiveTreeIterator::setPrefixPart
  • RegexIterator »
  • PHP Manual
  • RecursiveTreeIterator
  • Verifica validade

RecursiveTreeIterator::valid

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::valid — Verifica validade

Descrição

public RecursiveTreeIterator::valid(): bool

Verifica se a posição atual é válida.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true se a posição atual for válida, caso contrário false


A classe RegexIterator

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Introdução

Este iterador pode ser usado para filtrar outro iterador com base em uma expressão regular.

Resumo da classe

class RegexIterator extends FilterIterator {
/* Constantes */
public const int USE_KEY;
public const int INVERT_MATCH;
public const int MATCH;
public const int GET_MATCH;
public const int ALL_MATCHES;
public const int SPLIT;
public const int REPLACE;
/* Propriedades */
public ?string $replacement = null;
/* Métodos */
public __construct(
Iterator $iterator,
string $pattern,
int $mode = RegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 0
)
public accept(): bool
public getFlags(): int
public getMode(): int
public getPregFlags(): int
public getRegex(): string
public setFlags(int $flags): void
public setMode(int $mode): void
public setPregFlags(int $pregFlags): void
/* Métodos herdados */
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Constantes pré-definidas

Modos de Operação do RegexIterator

RegexIterator::ALL_MATCHES

Retorna todas as correspondências para a entrada atual (veja preg_match_all()).

RegexIterator::GET_MATCH

Retorna a primeira correspondência para a entrada atual (veja preg_match()).

RegexIterator::MATCH

Execute somente a correspondência (filtro) para a entrada atual (veja preg_match()).

RegexIterator::REPLACE

Substitui a entrada atual (veja preg_replace(); Não totalmente implementado ainda)

RegexIterator::SPLIT

Retorna os valores divididos para a entrada atual (veja preg_split()).

RegexIterator Flags

RegexIterator::USE_KEY

Flag especial: Correspondência à chave da entrada em vez do valor da entrada.

RegexIterator::INVERT_MATCH

Inverte o valor de retorno de RegexIterator::accept().

Propriedades

replacement

Índice

  • RegexIterator::accept — Obtém o status de aceitação
  • RegexIterator::__construct — Cria um novo RegexIterator
  • RegexIterator::getFlags — Obtém opções
  • RegexIterator::getMode — Retorna o modo de operação
  • RegexIterator::getPregFlags — Retorna as opções da expressão regular
  • RegexIterator::getRegex — Retorna a expressão regular atual
  • RegexIterator::setFlags — Define as opções
  • RegexIterator::setMode — Define o modo de operação
  • RegexIterator::setPregFlags — Define as opções da expressão regular


Obtém o status de aceitação

  • « RegexIterator
  • RegexIterator::__construct »
  • PHP Manual
  • RegexIterator
  • Obtém o status de aceitação

RegexIterator::accept

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RegexIterator::accept — Obtém o status de aceitação

Descrição

public RegexIterator::accept(): bool

Faz corresponder (string) RegexIterator::current()
(ou RegexIterator::key() se a
opção  RegexIterator::USE_KEY estiver definida)
contra a expressão regular.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true se houver correspondência, false caso contrário.

Exemplos

Exemplo #1 Exemplo de RegexIterator::accept()

Este exemplo mostra que apenas os itens que correspondem à expressão regular são aceitos.

<?php
$names = new ArrayIterator(array('Ann', 'Bob', 'Charlie', 'David'));
$filter = new RegexIterator($names, '/^[B-D]/');
foreach ($filter as $name) {
echo $name . PHP_EOL;
}
?>

O exemplo acima produzirá:

Bob
Charlie
David

Veja Também

  • Constantes RegexIterator
  • RegexIterator::setFlags() - Define as opções


Cria um novo RegexIterator

  • « RegexIterator::accept
  • RegexIterator::getFlags »
  • PHP Manual
  • RegexIterator
  • Cria um novo RegexIterator

RegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RegexIterator::__construct — Cria um novo RegexIterator

Descrição

public RegexIterator::__construct(
Iterator $iterator,
string $pattern,
int $mode = RegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 0
)

Cria um novo RegexIterator que filtra um Iterator usando uma expressão regular.

Parâmetros

iterator

O iterador ao qual aplicar este filtro de regex.

pattern

A expressão regular para fazer a correspondência.

mode

Modo de operação, consulte RegexIterator::setMode() para obter uma lista de modos.

flags

Opções especiais, consulte RegexIterator::setFlags() para obter uma lista de opções disponíveis.

pregFlags

As opções da expressão regular. Essas opções dependem do parâmetro de modo de operação:

RegexIterator preg_flags
modo de operação | opções disponíveis
RegexIterator::ALL_MATCHES | Veja preg_match_all().
RegexIterator::GET_MATCH | Veja preg_match().
RegexIterator::MATCH | Veja preg_match().
RegexIterator::REPLACE | nenhum.
RegexIterator::SPLIT | Veja preg_split().

Erros/Exceções

Lança uma InvalidArgumentException se o argumento pattern for inválido.

Exemplos

Exemplo #1 Exemplo de RegexIterator::__construct()

Cria um novo RegexIterator que filtra todas as strings que começam com 'test'.

<?php
$arrayIterator = new ArrayIterator(array('test 1', 'another test', 'test 123'));
$regexIterator = new RegexIterator($arrayIterator, '/^test/');

foreach ($regexIterator as $value) {
echo $value . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

test 1
test 123

Veja Também

  • preg_match() - Perform a regular expression match
  • preg_match_all() - Perform a global regular expression match
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
  • preg_split() - Split string by a regular expression


Obtém opções

  • « RegexIterator::__construct
  • RegexIterator::getMode »
  • PHP Manual
  • RegexIterator
  • Obtém opções

RegexIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RegexIterator::getFlags — Obtém opções

Descrição

public RegexIterator::getFlags(): int

Retorna as opções, veja RegexIterator::setFlags() para obter uma lista de opções disponíveis.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna as opções definidas.

Exemplos

Exemplo #1 Exemplo de RegexIterator::getFlags()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

if ($regexIterator->getFlags() & RegexIterator::USE_KEY) {
echo 'Filtering based on the array keys.';
} else {
echo 'Filtering based on the array values.';
}
?>

O exemplo acima produzirá:

Filtering based on the array keys.

Veja Também

  • RegexIterator::setFlags() - Define as opções


Retorna o modo de operação

  • « RegexIterator::getFlags
  • RegexIterator::getPregFlags »
  • PHP Manual
  • RegexIterator
  • Retorna o modo de operação

RegexIterator::getMode

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RegexIterator::getMode — Retorna o modo de operação

Descrição

public RegexIterator::getMode(): int

Retorna o modo de operação, consulte RegexIterator::setMode() para a lista de modos de operação.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o modo de operação.

Exemplos

Exemplo #1 Exemplo de RegexIterator::getMode()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^[a-z]+/', RegexIterator::GET_MATCH);

$mode = $regexIterator->getMode();
if ($mode & RegexIterator::GET_MATCH) {
echo 'Getting the match for each item.';
} elseif ($mode & RegexIterator::ALL_MATCHES) {
echo 'Getting all matches for each item.';
} elseif ($mode & RegexIterator::MATCH) {
echo 'Getting each item if it matches.';
} elseif ($mode & RegexIterator::SPLIT) {
echo 'Getting split pieces of each.';
}
?>

O exemplo acima produzirá:

Getting the match for each item.

Veja Também

  • RegexIterator::setMode() - Define o modo de operação


Retorna as opções da expressão regular

  • « RegexIterator::getMode
  • RegexIterator::getRegex »
  • PHP Manual
  • RegexIterator
  • Retorna as opções da expressão regular

RegexIterator::getPregFlags

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RegexIterator::getPregFlags — Retorna as opções da expressão regular

Descrição

public RegexIterator::getPregFlags(): int

Retorna as opções da expressão regular, consulte RegexIterator::__construct() para a lista de opções.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma máscara de bits das opções da expressão regular.

Exemplos

Exemplo #1 Exemplo de RegexIterator::getPregFlags()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/\s/', RegexIterator::SPLIT);
$regexIterator->setPregFlags(PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);

if ($regexIterator->getPregFlags() & PREG_SPLIT_NO_EMPTY) {
echo 'Ignoring empty pieces';
} else {
echo 'Not ignoring empty pieces';
}

?>

O exemplo acima produzirá:

Ignoring empty pieces

Veja Também

  • RegexIterator::setPregFlags() - Define as opções da expressão regular


Retorna a expressão regular atual

  • « RegexIterator::getPregFlags
  • RegexIterator::setFlags »
  • PHP Manual
  • RegexIterator
  • Retorna a expressão regular atual

RegexIterator::getRegex

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

RegexIterator::getRegex — Retorna a expressão regular atual

Descrição

public RegexIterator::getRegex(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Define as opções

  • « RegexIterator::getRegex
  • RegexIterator::setMode »
  • PHP Manual
  • RegexIterator
  • Define as opções

RegexIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RegexIterator::setFlags — Define as opções

Descrição

public RegexIterator::setFlags(int $flags): void

Define as opções.

Parâmetros

flags

As opções a serem definidas, um conjunto de bits de constantes de classe.

As opções disponíveis estão listadas abaixo. Os significados reais dessas bandeiras são descritos no constantes predefinidas.

Opções de RegexIterator
valor | constante
1 | RegexIterator::USE_KEY

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de RegexIterator::setFlags()

Cria um novo RegexIterator que filtra todas as entradas cuja chave começa com 'test'.

<?php
$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

foreach ($regexIterator as $key => $value) {
echo $key . ' => ' . $value . "\n";
}
?>

O exemplo acima produzirá:

teststr2 => another test

Veja Também

  • RegexIterator::getFlags() - Obtém opções


Define o modo de operação

  • « RegexIterator::setFlags
  • RegexIterator::setPregFlags »
  • PHP Manual
  • RegexIterator
  • Define o modo de operação

RegexIterator::setMode

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RegexIterator::setMode — Define o modo de operação

Descrição

public RegexIterator::setMode(int $mode): void

Define o modo de operação.

Parâmetros

mode

O modo de operação.

Os modos disponíveis estão listados abaixo. Os significados reais desses modos são descritos no constantes predefinidas.

Modos de RegexIterator
valor | constante
0 | RegexIterator::MATCH
1 | RegexIterator::GET_MATCH
2 | RegexIterator::ALL_MATCHES
3 | RegexIterator::SPLIT
4 | RegexIterator::REPLACE

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de RegexIterator::setMode()

<?php
$test = array ('str1' => 'test 1', 'test str2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
// Filtra tudo que comece com 'test ' seguido de um ou mais números.
$regexIterator = new RegexIterator($arrayIterator, '/^test (\d+)/');
// Modo de operação: Subtitui o valor atual com a correspondência
$regexIterator->setMode(RegexIterator::GET_MATCH);

foreach ($regexIterator as $key => $value) {
// imprime os números correspondidos
echo $key . ' => ' . $value[1] . PHP_EOL;
}
?>

O exemplo acima produzirá algo semelhante a:

str1 => 1
str3 => 123

Veja Também

  • RegexIterator::getMode() - Retorna o modo de operação


Define as opções da expressão regular

  • « RegexIterator::setMode
  • Interfaces »
  • PHP Manual
  • RegexIterator
  • Define as opções da expressão regular

RegexIterator::setPregFlags

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RegexIterator::setPregFlags — Define as opções da expressão regular

Descrição

public RegexIterator::setPregFlags(int $pregFlags): void

Define as opções da expressão regular.

Parâmetros

pregFlags

As opções da expressão regular. Consulte RegexIterator::__construct() para uma visão geral das opções disponíveis.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de RegexIterator::setPregFlags()

Cria um novo RegexIterator que filtra todas as entradas em que a chave do array começa com 'test'.

<?php
$test = array ('test 1', 'another test', 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/', RegexIterator::GET_MATCH);

$regexIterator->setPregFlags(PREG_OFFSET_CAPTURE);

foreach ($regexIterator as $key => $value) {
var_dump($value);
}
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}

Veja Também

  • RegexIterator::getPregFlags() - Retorna as opções da expressão regular


Interfaces

Índice

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator

A SPL fornece um conjunto de interfaces.

Veja também as Interfaces e Classes pré-definidas

Lista de interfaces

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator
  • SplObserver
  • SplSubject


Interface Countable

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Classes que implementam Countable podem ser usadas com a função count().

Resumo da Interface

interface Countable {
/* Métodos */
public count(): int
}

Índice

  • Countable::count — Conta elementos de um objeto


Conta elementos de um objeto

  • « Countable
  • OuterIterator »
  • PHP Manual
  • Countable
  • Conta elementos de um objeto

Countable::count

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Countable::count — Conta elementos de um objeto

Descrição

public Countable::count(): int

Este método é executado ao usar a função count() em um objeto que implementa Countable.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O número personalizado como um int.

Nota:

O valor de retorno é convertido para um int.

Exemplos

Exemplo #1 Exemplo de Countable::count()

<?php
class myCounter implements Countable {
private $count = 0;
public function count() {
return ++$this->count;
}
}

$counter = new myCounter;

for($i=0; $i<10; ++$i) {
echo "Eu fui contado " . count($counter) . " vezes\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Eu fui contado 1 vezes
Eu fui contado 2 vezes
Eu fui contado 3 vezes
Eu fui contado 4 vezes
Eu fui contado 5 vezes
Eu fui contado 6 vezes
Eu fui contado 7 vezes
Eu fui contado 8 vezes
Eu fui contado 9 vezes
Eu fui contado 10 vezes


A interface OuterIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Classes que implementam OuterIterator podem ser usadas para iterar sobre iteradores.

Resumo da Interface

interface OuterIterator extends Iterator {
/* Métodos */
public getInnerIterator(): ?Iterator
/* Métodos herdados */
public Iterator::current(): mixed
public Iterator::key(): mixed
public Iterator::next(): void
public Iterator::rewind(): void
public Iterator::valid(): bool
}

Índice

  • OuterIterator::getInnerIterator — Retorna o iterador interno para a entrada atual


Retorna o iterador interno para a entrada atual

  • « OuterIterator
  • RecursiveIterator »
  • PHP Manual
  • OuterIterator
  • Retorna o iterador interno para a entrada atual

OuterIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

OuterIterator::getInnerIterator — Retorna o iterador interno para a entrada atual

Descrição

public OuterIterator::getInnerIterator(): ?Iterator

Retorna o iterador interno para a entrada atual do iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o iterador interno para a entrada atual se existir, ou null caso contrário.


A interface RecursiveIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Classes que implementam RecursiveIterator podem ser usadas para iterar sobre iteradores de forma recursiva.

Resumo da Interface

interface RecursiveIterator extends Iterator {
/* Métodos */
public getChildren(): ?RecursiveIterator
public hasChildren(): bool
/* Métodos herdados */
public Iterator::current(): mixed
public Iterator::key(): mixed
public Iterator::next(): void
public Iterator::rewind(): void
public Iterator::valid(): bool
}

Índice

  • RecursiveIterator::getChildren — Retorna um iterador para a entrada atual
  • RecursiveIterator::hasChildren — Retorna se um iterador pode ser criado para a entrada atual


Retorna um iterador para a entrada atual

  • « RecursiveIterator
  • RecursiveIterator::hasChildren »
  • PHP Manual
  • RecursiveIterator
  • Retorna um iterador para a entrada atual

RecursiveIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIterator::getChildren — Retorna um iterador para a entrada atual

Descrição

public RecursiveIterator::getChildren(): ?RecursiveIterator

Retorna um iterador para a entrada atual do iterador.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um iterador para a entrada atual se ela existir, ou null caso contrário.

Veja Também

  • RecursiveIterator::hasChildren() - Retorna se um iterador pode ser criado para a entrada atual


Retorna se um iterador pode ser criado para a entrada atual

  • « RecursiveIterator::getChildren
  • SeekableIterator »
  • PHP Manual
  • RecursiveIterator
  • Retorna se um iterador pode ser criado para a entrada atual

RecursiveIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIterator::hasChildren — Retorna se um iterador pode ser criado para a entrada atual

Descrição

public RecursiveIterator::hasChildren(): bool

Retorna se um iterador pode ser criado para a entrada atual. RecursiveIterator::getChildren().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a entrada atual puder ser iterada, caso contrário retorna false.

Veja Também

  • RecursiveIterator::getChildren() - Retorna um iterador para a entrada atual


A interface SeekableIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

O iterador Seekable.

Resumo da Interface

interface SeekableIterator extends Iterator {
/* Métodos */
public seek(int $offset): void
/* Métodos herdados */
public Iterator::current(): mixed
public Iterator::key(): mixed
public Iterator::next(): void
public Iterator::rewind(): void
public Iterator::valid(): bool
}

Exemplos

Exemplo #1 Utilização básica

Este exemplo demonstra a criação de um SeekableIterator personalizado, buscando uma posição e lidando com uma posição inválida.

<?php
class MySeekableIterator implements SeekableIterator {

private $position;

private $array = array(
"first element",
"second element",
"third element",
"fourth element"
);

/* Método necessário para a interface SeekableIterator */

public function seek($position) {
if (!isset($this->array[$position])) {
throw new OutOfBoundsException("invalid seek position ($position)");
}

$this->position = $position;
}

/* Methods required for Iterator interface */

public function rewind() {
$this->position = 0;
}

public function current() {
return $this->array[$this->position];
}

public function key() {
return $this->position;
}

public function next() {
++$this->position;
}

public function valid() {
return isset($this->array[$this->position]);
}
}

try {

$it = new MySeekableIterator;
echo $it->current(), "\n";

$it->seek(2);
echo $it->current(), "\n";

$it->seek(1);
echo $it->current(), "\n";

$it->seek(10);

} catch (OutOfBoundsException $e) {
echo $e->getMessage();
}
?>

O exemplo acima produzirá algo semelhante a:

first element
third element
second element
invalid seek position (10)

Índice

  • SeekableIterator::seek — Move para uma posição


Move para uma posição

  • « SeekableIterator
  • Exceções »
  • PHP Manual
  • SeekableIterator
  • Move para uma posição

SeekableIterator::seek

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SeekableIterator::seek — Move para uma posição

Descrição

public SeekableIterator::seek(int $offset): void

Move o iterador para uma posição específica.

Parâmetros

offset

A posição para onde mover.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Implementações devem lançar uma OutOfBoundsException se o offset não for acessível.

Exemplos

Exemplo #1 Exemplo de SeekableIterator::seek()

Move para o item na posição 3 no iterador (ArrayIterator implementa SeekableIterator).

<?php
$array = array("apple", "banana", "cherry", "damson", "elderberry");
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current();
?>

O exemplo acima produzirá algo semelhante a:

damson

Veja Também

  • SeekableIterator
  • Iterator


Exceções

Índice

  • BadFunctionCallException
  • BadMethodCallException
  • DomainException
  • InvalidArgumentException
  • LengthException
  • LogicException
  • OutOfBoundsException
  • OutOfRangeException
  • OverflowException
  • RangeException
  • RuntimeException
  • UnderflowException
  • UnexpectedValueException

A SPL fornece um conjunto de exceções padrão.

Veja também as Exceções pré-definidas

Árvore de Classes de Exceções SPL

  • LogicException (estende Exception)
    • BadFunctionCallException
      • BadMethodCallException
    • DomainException
    • InvalidArgumentException
    • LengthException
    • OutOfRangeException
  • RuntimeException (estende Exception)
    • OutOfBoundsException
    • OverflowException
    • RangeException
    • UnderflowException
    • UnexpectedValueException


A classe BadFunctionCallException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada se um retorno de chamada se refere a uma função indefinida ou se alguns argumentos estão faltando.

Resumo da classe

class BadFunctionCallException extends LogicException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe BadMethodCallException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada se um retorno de chamada se refere a um método indefinido ou se alguns argumentos estão faltando.

Resumo da classe

class BadMethodCallException extends BadFunctionCallException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe DomainException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada se um valor não aderir a um domínio de dados válido definido.

Resumo da classe

class DomainException extends LogicException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe InvalidArgumentException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada se um argumento não for do tipo esperado.

Resumo da classe

class InvalidArgumentException extends LogicException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe LengthException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada se um comprimento for inválido.

Resumo da classe

class LengthException extends LogicException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe LogicException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção que representa um erro na lógica do programa. Esse tipo de exceção deve levar diretamente a uma correção no seu código.

Resumo da classe

class LogicException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe OutOfBoundsException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada se um valor não for uma chave válida. Isso representa erros que não podem ser detectados em tempo de compilação.

Resumo da classe

class OutOfBoundsException extends RuntimeException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe OutOfRangeException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada quando um índice ilegal é solicitado. Isso representa erros que devem ser detectados em tempo de compilação.

Resumo da classe

class OutOfRangeException extends LogicException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe OverflowException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada ao adicionar um elemento a um contêiner cheio.

Resumo da classe

class OverflowException extends RuntimeException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe RangeException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada para indicar erros de intervalo durante a execução do programa. Normalmente, isso significa que houve um erro aritmético que não seja de subfluxo/sobrefluxo. Esta é a versão em tempo de execução de DomainException.

Resumo da classe

class RangeException extends RuntimeException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe RuntimeException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada se ocorrer um erro que só pode ser encontrado em tempo de execução.

Resumo da classe

class RuntimeException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe UnderflowException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada ao realizar uma operação inválida em um contêiner vazio, como remover um elemento.

Resumo da classe

class UnderflowException extends RuntimeException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


A classe UnexpectedValueException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Exceção lançada se um valor não corresponder a um conjunto de valores. Tipicamente, isso ocorre quando uma função chama outra função e espera que o valor retornado seja de um determinado tipo ou valor, excluindo erros relacionados à aritmética ou ao buffer.

Resumo da classe

class UnexpectedValueException extends RuntimeException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Funções da SPL

Índice

  • class_implements — Retorna as interfaces que são implementadas pela classe ou interface fornecida
  • class_parents — Retorna as classes pai da classe fornecida
  • class_uses — Retorna os traits usados pela classe fornecida
  • iterator_apply — Chama uma função para cada elemento em um iterador
  • iterator_count — Conta os elementos em um iterador
  • iterator_to_array — Copia o iterador em um array
  • spl_autoload_call — Tenta todas as funções __autoload() registradas para carregar a classe solicitada
  • spl_autoload_extensions — Registra e retorna as extensões de arquivo padrão para spl_autoload
  • spl_autoload_functions — Retorna todas as funções __autoload() registradas
  • spl_autoload_register — Registra a função dada como implementação __autoload()
  • spl_autoload_unregister — Desregistra uma função dada como implementação de __autoload()
  • spl_autoload — Implementação padrão para __autoload()
  • spl_classes — Retorna as classes da SPL disponíveis
  • spl_object_hash — Retorna o ID de hash para o objeto fornecido
  • spl_object_id — Retorna o identificador inteiro do objeto fornecido


Retorna as interfaces que são implementadas pela classe ou interface fornecida

  • « Funções da SPL
  • class_parents »
  • PHP Manual
  • Funções da SPL
  • Retorna as interfaces que são implementadas pela classe ou interface fornecida

class_implements

(PHP 5, PHP 7, PHP 8)

class_implements — Retorna as interfaces que são implementadas pela classe ou interface fornecida

Descrição

class_implements(object|string $object_or_class, bool $autoload = true): array|false

Esta função retorna um array com os nomes das interfaces que o object_or_class fornecido e seus pais implementam.

Parâmetros

object_or_class

Um objeto (instância de classe) ou uma string (nome da classe ou interface).

autoload

Se deve ou não carregar automaticamente se ainda não estiver carregado.

Valor Retornado

Um array em caso de sucesso, ou false quando a classe fornecida não existe.

Exemplos

Exemplo #1 Exemplo de class_implements()

<?php

interface foo { }
class bar implements foo {}

print_r(class_implements(new bar));

// você também pode especificar o parâmetro como uma string
print_r(class_implements('bar'));

spl_autoload_register();

// use o carregamento automático para carregar a classe 'not_loaded'
print_r(class_implements('not_loaded', true));

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [foo] => foo
)
Array
(
    [foo] => foo
)
Array
(
    [interface_of_not_loaded] => interface_of_not_loaded
)

Notas

Nota: Para verificar se um objeto implementa uma interface, use instanceof ou a função is_a() em vez disso.

Veja Também

  • class_parents() - Retorna as classes pai da classe fornecida
  • get_declared_interfaces() - Retorna um array com todas as interfaces declaradas
  • is_a() - Verifica se um objeto é ou herda de uma classe
  • instanceof


Retorna as classes pai da classe fornecida

  • « class_implements
  • class_uses »
  • PHP Manual
  • Funções da SPL
  • Retorna as classes pai da classe fornecida

class_parents

(PHP 5, PHP 7, PHP 8)

class_parents — Retorna as classes pai da classe fornecida

Descrição

class_parents(object|string $object_or_class, bool $autoload = true): array|false

Esta função retorna um array com o nome das classes pai da object_or_class fornecida.

Parâmetros

object_or_class

Um objeto (instância de classe) ou uma string (nome da classe).

autoload

Se deve carregar automaticamente caso ainda não tenha sido carregado.

Valor Retornado

Um array em caso de sucesso, ou false quando a classe fornecida não existe.

Exemplos

Exemplo #1 Exemplo de class_parents()

<?php

class foo { }
class bar extends foo {}

print_r(class_parents(new bar));

// você também pode especificar o parâmetro como uma string
print_r(class_parents('bar'));

spl_autoload_register();

// use autoloading para carregar a classe 'not_loaded'
print_r(class_parents('not_loaded', true));

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [foo] => foo
)
Array
(
    [foo] => foo
)
Array
(
    [parent_of_not_loaded] => parent_of_not_loaded
)

Notas

Nota: Para verificar se um objeto estende uma classe, instanceof ou a função is_a() deve ser usada em vez disso.

Veja Também

  • class_implements() - Retorna as interfaces que são implementadas pela classe ou interface fornecida
  • is_a() - Verifica se um objeto é ou herda de uma classe
  • instanceof


Retorna os traits usados pela classe fornecida

  • « class_parents
  • iterator_apply »
  • PHP Manual
  • Funções da SPL
  • Retorna os traits usados pela classe fornecida

class_uses

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

class_uses — Retorna os traits usados pela classe fornecida

Descrição

class_uses(object|string $object_or_class, bool $autoload = true): array|false

Esta função retorna um array com os nomes dos traits que a object_or_class fornecida usa. No entanto, isso não inclui quaisquer traits usados por uma classe pai.

Parâmetros

object_or_class

Um objeto (instância de classe) ou uma string (nome da classe).

autoload

Se deve autoload caso ainda não tenha sido carregado.

Valor Retornado

Um array em caso de sucesso, ou false quando a classe fornecida não existe.

Exemplos

Exemplo #1 Exemplo de class_uses()

<?php

trait foo { }
class bar {
use foo;
}

print_r(class_uses(new bar));

print_r(class_uses('bar'));

spl_autoload_register();

// use autoloading to load the 'not_loaded' class
print_r(class_uses('not_loaded', true));

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [foo] => foo
)
Array
(
    [foo] => foo
)
Array
(
    [trait_of_not_loaded] => trait_of_not_loaded
)

Veja Também

  • class_parents() - Retorna as classes pai da classe fornecida
  • get_declared_traits() - Retorna um array de todas as Traits declaradas


Chama uma função para cada elemento em um iterador

  • « class_uses
  • iterator_count »
  • PHP Manual
  • Funções da SPL
  • Chama uma função para cada elemento em um iterador

iterator_apply

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

iterator_apply — Chama uma função para cada elemento em um iterador

Descrição

iterator_apply(Traversable $iterator, callable $callback, ?array $args = null): int

Chama uma função para cada elemento em um iterador.

Parâmetros

iterator

O objeto iterador sobre o qual iterar.

callback

A função callback para chamar em cada elemento. Esta função recebe apenas os args dados, então é nulária por padrão. Se count($args) === 3, por exemplo, a função callback é ternária.

Nota: A função deve retornar true para continuar iterando sobre o iterator.

args

Um array de argumentos; cada elemento de args é passado para a função callback callback como um argumento separado.

Valor Retornado

Retorna a contagem de iteração.

Exemplos

Exemplo #1 Exemplo de iterator_apply()

<?php
function print_caps(Iterator $iterator) {
echo strtoupper($iterator->current()) . "\n";
return TRUE;
}

$it = new ArrayIterator(array("Apples", "Bananas", "Cherries"));
iterator_apply($it, "print_caps", array($it));
?>

O exemplo acima produzirá:

APPLES
BANANAS
CHERRIES

Veja Também

  • array_walk() - Aplica uma determinada função em cada elemento de um array


Conta os elementos em um iterador

  • « iterator_apply
  • iterator_to_array »
  • PHP Manual
  • Funções da SPL
  • Conta os elementos em um iterador

iterator_count

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

iterator_count — Conta os elementos em um iterador

Descrição

iterator_count(Traversable|array $iterator): int

Conta os elementos em um iterador. iterator_count() não garante a manutenção da posição atual do iterator.

Parâmetros

iterator

O iterador sendo contado.

Valor Retornado

O número de elementos em iterator.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo de iterator foi ampliado de Traversable para Traversable|array.

Exemplos

Exemplo #1 Exemplo de iterator_count()

<?php
$iterator = new ArrayIterator(array('recipe'=>'pancakes', 'egg', 'milk', 'flour'));
var_dump(iterator_count($iterator));
?>

O exemplo acima produzirá:

int(4)

Exemplo #2 iterator_count() modifica a posição

<?php
$iterator = new ArrayIterator(['one', 'two', 'three']);
var_dump($iterator->current());
var_dump(iterator_count($iterator));
var_dump($iterator->current());
?>

O exemplo acima produzirá:

string(3) "one"
int(3)
NULL

Exemplo #3 iterator_count() em laços foreach

<?php
$iterator = new ArrayIterator(['one', 'two', 'three']);
foreach ($iterator as $key => $value) {
echo "$key: $value (", iterator_count($iterator), ")\n";
}?>

O exemplo acima produzirá:

0: one (3)


Copia o iterador em um array

  • « iterator_count
  • spl_autoload_call »
  • PHP Manual
  • Funções da SPL
  • Copia o iterador em um array

iterator_to_array

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

iterator_to_array — Copia o iterador em um array

Descrição

iterator_to_array(Traversable|array $iterator, bool $preserve_keys = true): array

Copia os elementos de um iterador em um array.

Parâmetros

iterator

O iterador que está sendo copiado.

preserve_keys

Se as chaves do iterador serão utilizadas como índices.

Se a chave for um array ou object, um erro warning será gerado. Chaves null serão convertidas em uma string vazia, chaves float serão truncadas em sua parte int, chaves resource irão gerar um erro warning e serão convertidas para o seu resource ID, e as chaves bool serão convertidas para inteiros.

Nota:

Se este parâmetro não for definido ou for definido como true, as chaves duplicadas serão sobrescritas. O último valor com aquela chave estará no array retornado. Defina esse parâmetro como false para receber todos os valores em qualquer caso.

Valor Retornado

Um array contendo os elementos do iterator.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo de iterator foi ampliado de Traversable para Traversable|array.

Exemplos

Exemplo #1 Exemplo da iterator_to_array()

<?php
$iterator = new ArrayIterator(array('recipe'=>'pancakes', 'egg', 'milk', 'flour'));
var_dump(iterator_to_array($iterator, true));
var_dump(iterator_to_array($iterator, false));
?>

O exemplo acima produzirá:

array(4) {
  ["recipe"]=>
  string(8) "pancakes"
  [0]=>
  string(3) "egg"
  [1]=>
  string(4) "milk"
  [2]=>
  string(5) "flour"
}
array(4) {
  [0]=>
  string(8) "pancakes"
  [1]=>
  string(3) "egg"
  [2]=>
  string(4) "milk"
  [3]=>
  string(5) "flour"
}


Tenta todas as funções __autoload() registradas para carregar a classe solicitada

  • « iterator_to_array
  • spl_autoload_extensions »
  • PHP Manual
  • Funções da SPL
  • Tenta todas as funções __autoload() registradas para carregar a classe solicitada

spl_autoload_call

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_call — Tenta todas as funções __autoload() registradas para carregar a classe solicitada

Descrição

spl_autoload_call(string $class): void

Esta função pode ser usada para procurar manualmente por uma classe ou interface usando as funções __autoload registradas.

Parâmetros

class

O nome da classe sendo procurada.

Valor Retornado

Nenhum valor é retornado.


Registra e retorna as extensões de arquivo padrão para spl_autoload

  • « spl_autoload_call
  • spl_autoload_functions »
  • PHP Manual
  • Funções da SPL
  • Registra e retorna as extensões de arquivo padrão para spl_autoload

spl_autoload_extensions

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_extensions — Registra e retorna as extensões de arquivo padrão para spl_autoload

Descrição

spl_autoload_extensions(?string $file_extensions = null): string

Esta função pode modificar e verificar as extensões de arquivo que a função de fallback built-in __autoload() spl_autoload() estará utilizando.

Nota: Não deve haver um espaço entre as extensões de arquivo definidas.

Parâmetros

file_extensions

Se null, simplesmente retorna a lista atual de extensões cada uma separada por vírgula. Para modificar a lista de extensões de arquivo, simplesmente invoque a função com a nova lista de extensões de arquivo a serem usadas em uma única string com cada extensão separada por vírgula.

Valor Retornado

Uma lista delimitada por vírgulas de extensões de arquivo padrão para spl_autoload().

Registro de Alterações

Versão | Descrição
8.0.0 | file_extensions é anulável agora.

Exemplos

Exemplo #1 Exemplo de spl_autoload_extensions()

<?php
spl_autoload_extensions(".php,.inc");
?>


Retorna todas as funções __autoload() registradas

  • « spl_autoload_extensions
  • spl_autoload_register »
  • PHP Manual
  • Funções da SPL
  • Retorna todas as funções __autoload() registradas

spl_autoload_functions

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_functions — Retorna todas as funções __autoload() registradas

Descrição

spl_autoload_functions(): array

Obtém todas as funções __autoload() registradas.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array de todas as funções __autoload() registradas. Se nenhuma função estiver registrada, ou a fila de autoload não estiver ativada, então o valor de retorno será um array vazio.

Registro de Alterações

Versão | Descrição
8.0.0 | O valor de retorno foi atualizado para sempre ser um array; anteriormente, esta função retornava false se a fila de autoload não estivesse ativada.


Registra a função dada como implementação __autoload()

  • « spl_autoload_functions
  • spl_autoload_unregister »
  • PHP Manual
  • Funções da SPL
  • Registra a função dada como implementação __autoload()

spl_autoload_register

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_register — Registra a função dada como implementação __autoload()

Descrição

spl_autoload_register(?callable $callback = null, bool $throw = true, bool $prepend = false): bool

Registrar uma função na fila de __autoload fornecida pelo spl. Se a fila ainda não estiver ativada, será ativada.

Se seu código tiver uma função __autoload() existente, então esta função deve ser registrada explicitamente na fila __autoload. Isso ocorre porque spl_autoload_register() substituirá efetivamente o cache do mecanismo para a função __autoload() por spl_autoload() ou spl_autoload_call().

Se houver várias funções de carregamento automático, spl_autoload_register() permite isso. Ele cria efetivamente uma fila de funções de carregamento automático e executa cada uma delas na ordem em que são definidas. Em contraste, __autoload() só pode ser definido uma vez.

Parâmetros

callback

A função de carregamento automático sendo registrada. Se for null, então a implementação padrão de spl_autoload() será registrada.

callback(string $class): void

A class não conterá a barra invertida inicial de um identificador totalmente qualificado.

throw

Este parâmetro especifica se spl_autoload_register() deve lançar exceções quando o callback não pode ser registrado.

Aviso

Este parâmetro é ignorado a partir do PHP 8.0.0, e um aviso será emitido se definido como false. spl_autoload_register() agora sempre lançará um TypeError em argumentos inválidos.

prepend

Se true, spl_autoload_register() irá adicionar o carregador automático na fila de carregamento automático antes de anexá-lo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | callback é anulável agora.

Exemplos

Exemplo #1 spl_autoload_register() como substituição para um __autoload() function

<?php

// function __autoload($class) {
// include 'classes/' . $class . '.class.php';
// }

function my_autoloader($class) {
include 'classes/' . $class . '.class.php';
}

spl_autoload_register('my_autoloader');

// Ou, usando uma função anônima
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';
});

?>

Exemplo #2 spl_autoload_register() exemplo onde a classe não é carregada

<?php

namespace Foobar;

class Foo {
static public function test($class) {
print '[['. $class .']]';
}
}

spl_autoload_register(__NAMESPACE__ .'\Foo::test');

new InexistentClass;

?>

O exemplo acima produzirá algo semelhante a:

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...

Exemplo #3 O identificador será fornecido sem a barra invertida inicial

<?php

spl_autoload_register(static function ($class) {
var_dump($class);
});

class_exists('RelativeName');
class_exists('RelativeName\\WithNamespace');
class_exists('\\AbsoluteName');
class_exists('\\AbsoluteName\\WithNamespace');

?>

O exemplo acima produzirá:

string(12) "RelativeName"
string(26) "RelativeName\WithNamespace"
string(12) "AbsoluteName"
string(26) "AbsoluteName\WithNamespace"

Veja Também

  • __autoload() - Tenta carregar uma classe indefinida


Desregistra uma função dada como implementação de __autoload()

  • « spl_autoload_register
  • spl_autoload »
  • PHP Manual
  • Funções da SPL
  • Desregistra uma função dada como implementação de __autoload()

spl_autoload_unregister

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_unregister — Desregistra uma função dada como implementação de __autoload()

Descrição

spl_autoload_unregister(callable $callback): bool

Remove uma função da fila de carregamento automático. Se a fila estiver ativada e vazia após a remoção da função fornecida, então ela será desativada.

Quando esta função resulta na desativação da fila, qualquer função __autoload que existia anteriormente não será reativada.

Parâmetros

callback

A função de carregamento automático sendo desregistrada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Implementação padrão para __autoload()

  • « spl_autoload_unregister
  • spl_classes »
  • PHP Manual
  • Funções da SPL
  • Implementação padrão para __autoload()

spl_autoload

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload — Implementação padrão para __autoload()

Descrição

spl_autoload(string $class, ?string $file_extensions = null): void

Esta função destina-se a ser usada como uma implementação padrão para __autoload(). Se nada mais for especificado e spl_autoload_register() for chamado sem quaisquer parâmetros, então spl_autoload() será usada para qualquer chamada posterior a __autoload().

Parâmetros

class

O nome da classe (e namespace) sendo instanciada.

file_extensions

Por padrão, a função verifica todos os caminhos de inclusão definidos em include_path procurando por nomes de arquivo construídos pelo nome da classe em minúsculas seguidos pelas extensões de arquivo .inc e .php.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Lança LogicException quando a classe não é encontrada e não há outros carregadores automáticos registrados.

Registro de Alterações

Versão | Descrição
8.0.0 | file_extensions é anulável agora.


Retorna as classes da SPL disponíveis

  • « spl_autoload
  • spl_object_hash »
  • PHP Manual
  • Funções da SPL
  • Retorna as classes da SPL disponíveis

spl_classes

(PHP 5, PHP 7, PHP 8)

spl_classes — Retorna as classes da SPL disponíveis

Descrição

spl_classes(): array

Esta função retorna um array com as classes da SPL disponíveis atualmente.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array contendo as classes SPL disponíveis.

Exemplos

Exemplo #1 Exemplo despl_classes()

<?php

print_r(spl_classes());

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [ArrayObject] => ArrayObject
    [ArrayIterator] => ArrayIterator
    [CachingIterator] => CachingIterator
    [RecursiveCachingIterator] => RecursiveCachingIterator
    [DirectoryIterator] => DirectoryIterator
    [FilterIterator] => FilterIterator
    [LimitIterator] => LimitIterator
    [ParentIterator] => ParentIterator
    [RecursiveDirectoryIterator] => RecursiveDirectoryIterator
    [RecursiveIterator] => RecursiveIterator
    [RecursiveIteratorIterator] => RecursiveIteratorIterator
    [SeekableIterator] => SeekableIterator
    [SimpleXMLIterator] => SimpleXMLIterator
)


Retorna o ID de hash para o objeto fornecido

  • « spl_classes
  • spl_object_id »
  • PHP Manual
  • Funções da SPL
  • Retorna o ID de hash para o objeto fornecido

spl_object_hash

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

spl_object_hash — Retorna o ID de hash para o objeto fornecido

Descrição

spl_object_hash(object $object): string

Esta função retorna um identificador de hash único para o objeto. Este ID pode ser usado como uma chave de hash para armazenar objetos ou para identificar um objeto, desde que o objeto não seja destruído. Uma vez que o objeto é destruído, seu hash pode ser reutilizado por outros objetos. Este comportamento é semelhante ao spl_object_id().

Parâmetros

object

Qualquer objeto.

Valor Retornado

Uma string que é única para cada objeto atualmente existente e é sempre a mesma para cada objeto.

Exemplos

Exemplo #1 Exemplo de spl_object_hash()

<?php
$id = spl_object_hash($object);
$storage[$id] = $object;
?>

Notas

Nota:

Quando um objeto é destruído, seu hash pode ser reutilizado por outros objetos.

Nota:

Os hashes de objetos devem ser comparados para identidade com === e !==, porque o hash retornado pode ser uma string numérica. Por exemplo: 0000000000000e600000000000000000.

Veja Também

  • spl_object_id() - Retorna o identificador inteiro do objeto fornecido


Retorna o identificador inteiro do objeto fornecido

  • « spl_object_hash
  • Manipulação de Arquivos »
  • PHP Manual
  • Funções da SPL
  • Retorna o identificador inteiro do objeto fornecido

spl_object_id

(PHP 7 >= 7.2.0, PHP 8)

spl_object_id — Retorna o identificador inteiro do objeto fornecido

Descrição

spl_object_id(object $object): int

Esta função retorna um identificador único para o objeto. O ID do objeto é único durante a vida útil do objeto. Depois que o objeto é destruído, seu ID pode ser reutilizado por outros objetos. Esse comportamento é semelhante ao spl_object_hash().

Parâmetros

object

Qualquer objeto.

Valor Retornado

Um identificador inteiro que é único para cada objeto atualmente existente e é sempre o mesmo para cada objeto.

Exemplos

Exemplo #1 Um exemplo de spl_object_id()

<?php
$id = spl_object_id($object);
$storage[$id] = $object;
?>

Notas

Nota:

Quando um objeto é destruído, seu ID pode ser reutilizado por outros objetos.


Manipulação de Arquivos

Índice

  • SplFileInfo
  • SplFileObject
  • SplTempFileObject

A SPL fornece várias classes para trabalhar com arquivos.


A classe SplFileInfo

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

Introdução

A classe SplFileInfo oferece uma interface orientada a objetos de alto nível para informações sobre um arquivo individual.

Resumo da classe

class SplFileInfo implements Stringable {
/* Métodos */
public __construct(string $filename)
public getATime(): int|false
public getBasename(string $suffix = ""): string
public getCTime(): int|false
public getExtension(): string
public getFileInfo(?string $class = null): SplFileInfo
public getFilename(): string
public getGroup(): int|false
public getInode(): int|false
public getLinkTarget(): string|false
public getMTime(): int|false
public getOwner(): int|false
public getPath(): string
public getPathInfo(?string $class = null): ?SplFileInfo
public getPathname(): string
public getPerms(): int|false
public getRealPath(): string|false
public getSize(): int|false
public getType(): string|false
public isDir(): bool
public isExecutable(): bool
public isFile(): bool
public isLink(): bool
public isReadable(): bool
public isWritable(): bool
public openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public setFileClass(string $class = SplFileObject::class): void
public setInfoClass(string $class = SplFileInfo::class): void
public __toString(): string
}

Registro de Alterações

Versão | Descrição
8.0.0 | SplFileInfo implementa Stringable agora.

Índice

  • SplFileInfo::__construct — Constrói um novo objeto SplFileInfo
  • SplFileInfo::getATime — Obtém o último horário de acesso do arquivo
  • SplFileInfo::getBasename — Obtém o nome base do arquivo
  • SplFileInfo::getCTime — Obtém o tempo de mudança do inode
  • SplFileInfo::getExtension — Obtém a extensão do arquivo
  • SplFileInfo::getFileInfo — Obtém um objeto SplFileInfo para o arquivo
  • SplFileInfo::getFilename — Obtém o nome do arquivo
  • SplFileInfo::getGroup — Obtém o grupo do arquivo
  • SplFileInfo::getInode — Obtém o inode para o arquivo
  • SplFileInfo::getLinkTarget — Obtém o alvo de um link
  • SplFileInfo::getMTime — Obtém o tempo da última modificação
  • SplFileInfo::getOwner — Obtém o proprietário do arquivo
  • SplFileInfo::getPath — Obtém o caminho sem o nome do arquivo
  • SplFileInfo::getPathInfo — Obtém um objeto SplFileInfo para o caminho
  • SplFileInfo::getPathname — Obtém o caminho para o arquivo
  • SplFileInfo::getPerms — Obtém as permissões do arquivo
  • SplFileInfo::getRealPath — Obtém o caminho absoluto para o arquivo
  • SplFileInfo::getSize — Obtém o tamanho do arquivo
  • SplFileInfo::getType — Obtém o tipo de arquivo
  • SplFileInfo::isDir — Indica se o arquivo é um diretório
  • SplFileInfo::isExecutable — Indica se o arquivo é executável
  • SplFileInfo::isFile — Indicates se o objeto faz referência a um arquivo regular
  • SplFileInfo::isLink — Indica se um arquivo é um link
  • SplFileInfo::isReadable — Indica se o arquivo é legível
  • SplFileInfo::isWritable — Indica se a entrada é gravável
  • SplFileInfo::openFile — Obtém um objeto SplFileObject para o arquivo
  • SplFileInfo::setFileClass — Define a classe usada com SplFileInfo::openFile
  • SplFileInfo::setInfoClass — Define a classe usada com SplFileInfo::getFileInfo e SplFileInfo::getPathInfo
  • SplFileInfo::__toString — Retorna o caminho para o arquivo como uma string


Constrói um novo objeto SplFileInfo

  • « SplFileInfo
  • SplFileInfo::getATime »
  • PHP Manual
  • SplFileInfo
  • Constrói um novo objeto SplFileInfo

SplFileInfo::__construct

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::__construct — Constrói um novo objeto SplFileInfo

Descrição

public SplFileInfo::__construct(string $filename)

Cria um novo objeto SplFileInfo para o arquivo especificado. O arquivo não precisa existir ou ser legível.

Parâmetros

filename

Caminho para o arquivo.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::__construct()

<?php
$info = new SplFileInfo('example.php');
if ($info->isFile()) {
echo $info->getRealPath();
}
?>


Obtém o último horário de acesso do arquivo

  • « SplFileInfo::__construct
  • SplFileInfo::getBasename »
  • PHP Manual
  • SplFileInfo
  • Obtém o último horário de acesso do arquivo

SplFileInfo::getATime

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getATime — Obtém o último horário de acesso do arquivo

Descrição

public SplFileInfo::getATime(): int|false

Obtém o último horário de acesso ao arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o horário em que o arquivo foi acessado pela última vez em caso de sucesso, ou false em caso de falha.

Erros/Exceções

Lança RuntimeException em caso de erro.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getATime()

<?php
$info = new SplFileInfo('example.jpg');
echo 'Last accessed at ' . date('g:i a', $info->getATime());
?>

O exemplo acima produzirá algo semelhante a:

Last accessed at 1:49 pm

Veja Também

  • fileatime() - Obtém o último horário de acesso do arquivo
  • SplFileInfo::getCTime() - Obtém o tempo de mudança do inode
  • SplFileInfo::getMTime() - Obtém o tempo da última modificação


Obtém o nome base do arquivo

  • « SplFileInfo::getATime
  • SplFileInfo::getCTime »
  • PHP Manual
  • SplFileInfo
  • Obtém o nome base do arquivo

SplFileInfo::getBasename

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplFileInfo::getBasename — Obtém o nome base do arquivo

Descrição

public SplFileInfo::getBasename(string $suffix = ""): string

Este método retorna o nome base do arquivo, diretório ou link sem informações de caminho.

Cuidado

SplFileInfo::getBasename() é sensível ao local, então para visualizar o nome base correto com caminhos de caracteres multibyte, o local correspondente deve ser definido usando a função setlocale().

Parâmetros

suffix

Sufixo opcional a ser omitido do nome base retornado.

Valor Retornado

Retorna o nome base sem informações de caminho.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getBasename()

<?php
$info = new SplFileInfo('file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename('.txt'));
?>

O exemplo acima produzirá algo semelhante a:

string(8) "file.txt"
string(8) "file.txt"
string(4) "file"

Veja Também

  • SplFileInfo::getFilename() - Obtém o nome do arquivo


Obtém o tempo de mudança do inode

  • « SplFileInfo::getBasename
  • SplFileInfo::getExtension »
  • PHP Manual
  • SplFileInfo
  • Obtém o tempo de mudança do inode

SplFileInfo::getCTime

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getCTime — Obtém o tempo de mudança do inode

Descrição

public SplFileInfo::getCTime(): int|false

Retorna o tempo de mudança do inode para o arquivo. O tempo retornado é um timestamp de data/hora Unix.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O tempo da última mudança, em um timestamp de data/hora Unix em caso de sucesso, ou false em caso de falha.

Erros/Exceções

Lança RuntimeException em caso de erro.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getCTime()

<?php
$info = new SplFileInfo('example.jpg');
echo 'Last changed at ' . date('g:i a', $info->getCTime());
?>

O exemplo acima produzirá algo semelhante a:

Last changed at 1:49 pm

Veja Também

  • filectime() - Obtém o horário de modificação de inode do arquivo
  • SplFileInfo::getATime() - Obtém o último horário de acesso do arquivo
  • SplFileInfo::getMTime() - Obtém o tempo da última modificação


Obtém a extensão do arquivo

  • « SplFileInfo::getCTime
  • SplFileInfo::getFileInfo »
  • PHP Manual
  • SplFileInfo
  • Obtém a extensão do arquivo

SplFileInfo::getExtension

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

SplFileInfo::getExtension — Obtém a extensão do arquivo

Descrição

public SplFileInfo::getExtension(): string

Recupera a extensão do arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string contendo a extensão do arquivo, ou uma string vazia se o arquivo não tiver extensão.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getExtension()

<?php

$info = new SplFileInfo('foo.txt');
var_dump($info->getExtension());

$info = new SplFileInfo('photo.jpg');
var_dump($info->getExtension());

$info = new SplFileInfo('something.tar.gz');
var_dump($info->getExtension());

?>

O exemplo acima produzirá:

string(3) "txt"
string(3) "jpg"
string(2) "gz"

Notas

Nota:

Outra maneira de obter a extensão é usar a função pathinfo().

<?php
$extension = pathinfo($info->getFilename(), PATHINFO_EXTENSION);
?>

Veja Também

  • SplFileInfo::getFilename() - Obtém o nome do arquivo
  • SplFileInfo::getBasename() - Obtém o nome base do arquivo
  • pathinfo() - Retorna informações sobre um caminho de arquivo


Obtém um objeto SplFileInfo para o arquivo

  • « SplFileInfo::getExtension
  • SplFileInfo::getFilename »
  • PHP Manual
  • SplFileInfo
  • Obtém um objeto SplFileInfo para o arquivo

SplFileInfo::getFileInfo

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getFileInfo — Obtém um objeto SplFileInfo para o arquivo

Descrição

public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo

Este método obtém um objeto SplFileInfo para o arquivo referenciado.

Parâmetros

class

Nome de uma classe derivada de SplFileInfo para usar.

Valor Retornado

Um objeto SplFileInfo criado para o arquivo.

Registro de Alterações

Versão | Descrição
8.0.0 | class é anulável agora.

Veja Também

  • SplFileInfo::setInfoClass() - Define a classe usada com SplFileInfo::getFileInfo e SplFileInfo::getPathInfo


Obtém o nome do arquivo

  • « SplFileInfo::getFileInfo
  • SplFileInfo::getGroup »
  • PHP Manual
  • SplFileInfo
  • Obtém o nome do arquivo

SplFileInfo::getFilename

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getFilename — Obtém o nome do arquivo

Descrição

public SplFileInfo::getFilename(): string

Obtém o nome do arquivo sem qualquer informação de caminho.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O nome do arquivo.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getFilename()

<?php
$info = new SplFileInfo('foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/svn.php');
var_dump($info->getFilename());
?>

O exemplo acima produzirá algo semelhante a:

string(7) "foo.txt"
string(7) "foo.txt"
string(0) ""
string(7) "svn.php"

Veja Também

  • SplFileInfo::getBasename() - Obtém o nome base do arquivo


Obtém o grupo do arquivo

  • « SplFileInfo::getFilename
  • SplFileInfo::getInode »
  • PHP Manual
  • SplFileInfo
  • Obtém o grupo do arquivo

SplFileInfo::getGroup

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getGroup — Obtém o grupo do arquivo

Descrição

public SplFileInfo::getGroup(): int|false

Obtém o grupo do arquivo. O ID do grupo é retornado em formato numérico.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O ID do grupo em formato numérico em caso de sucesso, ou false em caso de falha.

Erros/Exceções

Lança RuntimeException em caso de erro.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getGroup()

<?php
$info = new SplFileInfo('example.jpg');
echo info->getFilename() . ' belongs to group id ' . $info->getGroup() . "\n";
print_r(posix_getgrgid($info->getGroup()));
?>

O exemplo acima produzirá algo semelhante a:

example.jpg belongs to group id 42
Array
(
    [name] => toons
    [passwd] => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid] => 42
)

Veja Também

  • filegroup() - Lê o grupo do arquivo
  • posix_getgrgid() - Return info about a group by group id


Obtém o inode para o arquivo

  • « SplFileInfo::getGroup
  • SplFileInfo::getLinkTarget »
  • PHP Manual
  • SplFileInfo
  • Obtém o inode para o arquivo

SplFileInfo::getInode

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getInode — Obtém o inode para o arquivo

Descrição

public SplFileInfo::getInode(): int|false

Obtém o número do inode para o objeto do sistema de arquivos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número do inode para o objeto do sistema de arquivos em caso de sucesso, ou false em caso de falha.

Erros/Exceções

Lança RuntimeException em caso de erro.

Veja Também

  • fileinode() - Lê o inode do arquivo


Obtém o alvo de um link

  • « SplFileInfo::getInode
  • SplFileInfo::getMTime »
  • PHP Manual
  • SplFileInfo
  • Obtém o alvo de um link

SplFileInfo::getLinkTarget

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplFileInfo::getLinkTarget — Obtém o alvo de um link

Descrição

public SplFileInfo::getLinkTarget(): string|false

Obtém o alvo de um link do sistema de arquivos.

Nota:

O alvo pode não ser o caminho real no sistema de arquivos. Use SplFileInfo::getRealPath() para determinar o verdadeiro caminho no sistema de arquivos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o alvo do link do sistema de arquivos em caso de sucesso, ou false em caso de falha.

Erros/Exceções

Lança RuntimeException em caso de erro.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getLinkTarget()

<?php
$info = new SplFileInfo('/Users/bbieber/workspace');
if ($info->isLink()) {
var_dump($info->getLinkTarget());
var_dump($info->getRealPath());
}
?>

O exemplo acima produzirá algo semelhante a:

string(19) "Documents/workspace"
string(34) "/Users/bbieber/Documents/workspace"

Veja Também

  • SplFileInfo::isLink() - Indica se um arquivo é um link
  • SplFileInfo::getRealPath() - Obtém o caminho absoluto para o arquivo


Obtém o tempo da última modificação

  • « SplFileInfo::getLinkTarget
  • SplFileInfo::getOwner »
  • PHP Manual
  • SplFileInfo
  • Obtém o tempo da última modificação

SplFileInfo::getMTime

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getMTime — Obtém o tempo da última modificação

Descrição

public SplFileInfo::getMTime(): int|false

Retorna o momento em que o conteúdo do arquivo foi alterado. O tempo retornado é um timestamp de data/hora Unix.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o tempo da última modificação do arquivo, em um timestamp de data/hora Unix em caso de sucesso, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getMTime()

<?php
$info = new SplFileInfo('example.jpg');
echo 'Last modified at ' . date('g:i a', $info->getMTime());
?>

O exemplo acima produzirá algo semelhante a:

Last modified at 1:49 pm

Veja Também

  • filemtime() - Obtém o horário de modificação do arquivo
  • SplFileInfo::getATime() - Obtém o último horário de acesso do arquivo
  • SplFileInfo::getCTime() - Obtém o tempo de mudança do inode


Obtém o proprietário do arquivo

  • « SplFileInfo::getMTime
  • SplFileInfo::getPath »
  • PHP Manual
  • SplFileInfo
  • Obtém o proprietário do arquivo

SplFileInfo::getOwner

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getOwner — Obtém o proprietário do arquivo

Descrição

public SplFileInfo::getOwner(): int|false

Obtém o proprietário do arquivo. O ID do proprietário é retornado em formato numérico.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O ID do proprietário em formato numérico em caso de sucesso, ou false em caso de falha.

Erros/Exceções

Lança RuntimeException em caso de erro.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getOwner()

<?php
$info = new SplFileInfo('example.jpg');
echo info->getFilename() . ' belongs to owner id ' . $info->getOwner() . "\n";
print_r(posix_getpwuid($info->getOwner()));
?>

O exemplo acima produzirá algo semelhante a:

example.jpg belongs to user id 501
Array
(
    [name] => tom
    [passwd] => x
    [uid] => 501
    [gid] => 42
    [gecos] => Tom Cat
    [dir] => /home/tom
    [shell] => /bin/bash
)

Veja Também

  • posix_getpwuid() - Return info about a user by user id
  • SplFileInfo::getGroup() - Obtém o grupo do arquivo


Obtém o caminho sem o nome do arquivo

  • « SplFileInfo::getOwner
  • SplFileInfo::getPathInfo »
  • PHP Manual
  • SplFileInfo
  • Obtém o caminho sem o nome do arquivo

SplFileInfo::getPath

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getPath — Obtém o caminho sem o nome do arquivo

Descrição

public SplFileInfo::getPath(): string

Retorna o caminho para o arquivo, omitindo o nome do arquivo e qualquer barra no final.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o caminho para o arquivo.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getPath()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPath());

$info = new SplFileInfo('/usr/');
var_dump($info->getPath());?>

O exemplo acima produzirá algo semelhante a:

string(8) "/usr/bin"
string(4) "/usr"

Veja Também

  • SplFileInfo::getRealPath() - Obtém o caminho absoluto para o arquivo
  • SplFileInfo::getFilename() - Obtém o nome do arquivo
  • SplFileInfo::getPathInfo() - Obtém um objeto SplFileInfo para o caminho


Obtém um objeto SplFileInfo para o caminho

  • « SplFileInfo::getPath
  • SplFileInfo::getPathname »
  • PHP Manual
  • SplFileInfo
  • Obtém um objeto SplFileInfo para o caminho

SplFileInfo::getPathInfo

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getPathInfo — Obtém um objeto SplFileInfo para o caminho

Descrição

public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo

Obtém um objeto SplFileInfo para o diretório pai do arquivo atual.

Parâmetros

class

Nome de uma classe derivada de SplFileInfo a ser usada, ou ele mesmo se for null.

Valor Retornado

Retorna um objeto SplFileInfo para o diretório pai do arquivo em caso de sucesso, ou null em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | class é anulável agora.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getPathInfo()

<?php
$info = new SplFileInfo('/usr/bin/php');
$parent_info = $info->getPathInfo();
var_dump($parent_info->getRealPath());
?>

O exemplo acima produzirá algo semelhante a:

string(8) "/usr/bin"

Veja Também

  • SplFileInfo::setInfoClass() - Define a classe usada com SplFileInfo::getFileInfo e SplFileInfo::getPathInfo


Obtém o caminho para o arquivo

  • « SplFileInfo::getPathInfo
  • SplFileInfo::getPerms »
  • PHP Manual
  • SplFileInfo
  • Obtém o caminho para o arquivo

SplFileInfo::getPathname

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getPathname — Obtém o caminho para o arquivo

Descrição

public SplFileInfo::getPathname(): string

Retorna o caminho para o arquivo

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O caminho para o arquivo.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getPathname()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPathname());
?>

O exemplo acima produzirá algo semelhante a:

string(12) "/usr/bin/php"

Veja Também

  • SplFileInfo::getRealPath() - Obtém o caminho absoluto para o arquivo


Obtém as permissões do arquivo

  • « SplFileInfo::getPathname
  • SplFileInfo::getRealPath »
  • PHP Manual
  • SplFileInfo
  • Obtém as permissões do arquivo

SplFileInfo::getPerms

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getPerms — Obtém as permissões do arquivo

Descrição

public SplFileInfo::getPerms(): int|false

Obtém as permissões para o arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna as permissões do arquivo em caso de sucesso, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getPerms()

<?php
$info = new SplFileInfo('/tmp');
echo substr(sprintf('%o', $info->getPerms()), -4);

$info = new SplFileInfo(__FILE__);
echo substr(sprintf('%o', $info->getPerms()), -4);
?>

O exemplo acima produzirá algo semelhante a:

1777
0644


Obtém o caminho absoluto para o arquivo

  • « SplFileInfo::getPerms
  • SplFileInfo::getSize »
  • PHP Manual
  • SplFileInfo
  • Obtém o caminho absoluto para o arquivo

SplFileInfo::getRealPath

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplFileInfo::getRealPath — Obtém o caminho absoluto para o arquivo

Descrição

public SplFileInfo::getRealPath(): string|false

Este método expande todos os links simbólicos, resolve referências relativas e retorna o caminho real para o arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o caminho para o arquivo, ou false se o arquivo não existir.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getRealPath()

<?php
$info = new SplFileInfo('/..//./../../'.__FILE__);
var_dump($info->getRealPath());

$info = new SplFileInfo('/tmp');
var_dump($info->getRealPath());

$info = new SplFileInfo('/I/Do/Not/Exist');
var_dump($info->getRealPath());

$info = new SplFileInfo('php://output');
var_dump($info->getRealPath());

$info = new SplFileInfo("");
var_dump($info->getRealPath());
?>

O exemplo acima produzirá algo semelhante a:

string(28) "/private/tmp/phptempfile.php"
string(12) "/private/tmp"
bool(false)
bool(false)
string(12) "/private/tmp"

Veja Também

  • SplFileInfo::isLink() - Indica se um arquivo é um link
  • realpath() - Retorna o path absoluto canonizado


Obtém o tamanho do arquivo

  • « SplFileInfo::getRealPath
  • SplFileInfo::getType »
  • PHP Manual
  • SplFileInfo
  • Obtém o tamanho do arquivo

SplFileInfo::getSize

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getSize — Obtém o tamanho do arquivo

Descrição

public SplFileInfo::getSize(): int|false

Retorna o tamanho do arquivo em bytes para o arquivo referenciado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O tamanho do arquivo em bytes em caso de sucesso, ou false em caso de falha.

Erros/Exceções

Um RuntimeException será lançado se o arquivo não existir ou ocorrer um erro.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getSize()

<?php
$info = new SplFileInfo('example.jpg');
echo $fileinfo->getFilename() . " " . $fileinfo->getSize();
?>

O exemplo acima produzirá algo semelhante a:

example.jpg 15385

Veja Também

  • filesize() - Obtém o tamanho do arquivo


Obtém o tipo de arquivo

  • « SplFileInfo::getSize
  • SplFileInfo::isDir »
  • PHP Manual
  • SplFileInfo
  • Obtém o tipo de arquivo

SplFileInfo::getType

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getType — Obtém o tipo de arquivo

Descrição

public SplFileInfo::getType(): string|false

Retorna o tipo do arquivo referenciado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma string representando o tipo da entrada. Pode ser um dos seguintes: file, link, dir, block, fifo, char, socket ou unknown, ou false em caso de falha.

Erros/Exceções

Lança um RuntimeException em caso de erro.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::getType()

<?php

$info = new SplFileInfo(__FILE__);
echo $info->getType().PHP_EOL;

$info = new SplFileInfo(dirname(__FILE__));
echo $info->getType();

?>

O exemplo acima produzirá algo semelhante a:

file
dir


Indica se o arquivo é um diretório

  • « SplFileInfo::getType
  • SplFileInfo::isExecutable »
  • PHP Manual
  • SplFileInfo
  • Indica se o arquivo é um diretório

SplFileInfo::isDir

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::isDir — Indica se o arquivo é um diretório

Descrição

public SplFileInfo::isDir(): bool

Este método pode ser usado para determinar se um arquivo é um diretório.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se um diretório, false caso contrário.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::isDir()

<?php
$d = new SplFileInfo(dirname(__FILE__));
var_dump($d->isDir());

$d = new SplFileInfo(__FILE__);
var_dump($d->isDir());
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)


Indica se o arquivo é executável

  • « SplFileInfo::isDir
  • SplFileInfo::isFile »
  • PHP Manual
  • SplFileInfo
  • Indica se o arquivo é executável

SplFileInfo::isExecutable

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::isExecutable — Indica se o arquivo é executável

Descrição

public SplFileInfo::isExecutable(): bool

Verifica se o arquivo é executável.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se executável, false caso contrário.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::isExecutable()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->isExecutable());

$info = new SplFileInfo('/usr/bin');
var_dump($info->isExecutable());

$info = new SplFileInfo('foo');
var_dump($info->isExecutable());
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(false)


Indicates se o objeto faz referência a um arquivo regular

  • « SplFileInfo::isExecutable
  • SplFileInfo::isLink »
  • PHP Manual
  • SplFileInfo
  • Indicates se o objeto faz referência a um arquivo regular

SplFileInfo::isFile

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::isFile — Indicates se o objeto faz referência a um arquivo regular

Descrição

public SplFileInfo::isFile(): bool

Verifica se o arquivo referenciado por este objeto SplFileInfo existe e é um arquivo regular.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o arquivo existe e é um arquivo regular (não é um link), false caso contrário.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::isFile()

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isFile());

$info = new SplFileInfo(dirname(__FILE__));
var_dump($info->isFile());
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)


Indica se um arquivo é um link

  • « SplFileInfo::isFile
  • SplFileInfo::isReadable »
  • PHP Manual
  • SplFileInfo
  • Indica se um arquivo é um link

SplFileInfo::isLink

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::isLink — Indica se um arquivo é um link

Descrição

public SplFileInfo::isLink(): bool

Use este método para checar se um arquivo referenciado pelo objeto SplFileInfo é um link.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o arquivo é um link, false caso contrário.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::isLink()

<?php
$info = new SplFileInfo('/path/to/symlink');
if ($info->isLink()) {
echo 'The real path is '.$info->getRealPath();
}
?>

Veja Também

  • SplFileInfo::getRealPath() - Obtém o caminho absoluto para o arquivo


Indica se o arquivo é legível

  • « SplFileInfo::isLink
  • SplFileInfo::isWritable »
  • PHP Manual
  • SplFileInfo
  • Indica se o arquivo é legível

SplFileInfo::isReadable

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::isReadable — Indica se o arquivo é legível

Descrição

public SplFileInfo::isReadable(): bool

Verifica se o arquivo é legível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se legível, false caso contrário.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::isReadable()

<?php
$info = new SplFileInfo('readable.jpg');
if ($info->isReadable()) {
echo $info->getFilename() . ' is readable';
}
?>

O exemplo acima produzirá algo semelhante a:

readable.jpg is readable


Indica se a entrada é gravável

  • « SplFileInfo::isReadable
  • SplFileInfo::openFile »
  • PHP Manual
  • SplFileInfo
  • Indica se a entrada é gravável

SplFileInfo::isWritable

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::isWritable — Indica se a entrada é gravável

Descrição

public SplFileInfo::isWritable(): bool

Verifica se a entrada atual é gravável.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se gravável, false caso contrário;

Exemplos

Exemplo #1 Exemplo de SplFileInfo::isWriteable()

<?php
$info = new SplFileInfo('locked.jpg');
if (!$info->isWriteable()) {
echo $info->getFilename() . ' is not writeable';
}
?>

O exemplo acima produzirá algo semelhante a:

locked.jpg is not writeable


Obtém um objeto SplFileObject para o arquivo

  • « SplFileInfo::isWritable
  • SplFileInfo::setFileClass »
  • PHP Manual
  • SplFileInfo
  • Obtém um objeto SplFileObject para o arquivo

SplFileInfo::openFile

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::openFile — Obtém um objeto SplFileObject para o arquivo

Descrição

public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject

Cria um objeto SplFileObject do arquivo. Isso é útil porque SplFileObject contém métodos adicionais para manipular o arquivo, enquanto SplFileInfo é útil apenas para obter informações, como se o arquivo é gravável.

Parâmetros

mode

O modo de abertura do arquivo. Consulte a documentação de fopen() para descrições dos modos possíveis. O padrão é somente leitura.

useIncludePath

Quando definido como true, o nome do arquivo também é procurado no include_path

context

Consulte a seção do manual sobre contexto para uma descrição dos contextos.

Valor Retornado

O arquivo aberto como um SplFileObject object.

Erros/Exceções

ma RuntimeException se o arquivo não puder ser aberto (por exemplo, direitos de acesso insuficientes).

Registro de Alterações

Versão | Descrição
8.0.0 | context é anulável agora.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::openFile()

<?php
$fileinfo = new SplFileInfo('/tmp/foo.txt');

if ($fileinfo->isWritable()) {

$fileobj = $fileinfo->openFile('a');

$fileobj->fwrite("appended this sample text");
}
?>

Veja Também

  • SplFileObject
  • stream_context_create() - Cria um contexto de fluxo
  • fopen() - Abre um arquivo ou URL


Define a classe usada com SplFileInfo::openFile

  • « SplFileInfo::openFile
  • SplFileInfo::setInfoClass »
  • PHP Manual
  • SplFileInfo
  • Define a classe usada com SplFileInfo::openFile

SplFileInfo::setFileClass

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::setFileClass — Define a classe usada com SplFileInfo::openFile()

Descrição

public SplFileInfo::setFileClass(string $class = SplFileObject::class): void

Use este método para definir uma classe personalizada que será usada quando SplFileInfo::openFile() for chamado. O nome da classe passado para este método deve ser SplFileObject ou uma classe derivada de SplFileObject.

Parâmetros

class

O nome da classe a ser usada quando SplFileInfo::openFile() for chamado.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::setFileClass()

<?php
// Create a class extending SplFileObject
class MyFoo extends SplFileObject {}

$info = new SplFileInfo(__FILE__);
// Set the class to use
$info->setFileClass('MyFoo');
var_dump($info->openFile());
?>

O exemplo acima produzirá algo semelhante a:

object(MyFoo)#2 (0) { }

Veja Também

  • SplFileInfo::openFile() - Obtém um objeto SplFileObject para o arquivo


Define a classe usada com SplFileInfo::getFileInfo e SplFileInfo::getPathInfo

  • « SplFileInfo::setFileClass
  • SplFileInfo::__toString »
  • PHP Manual
  • SplFileInfo
  • Define a classe usada com SplFileInfo::getFileInfo e SplFileInfo::getPathInfo

SplFileInfo::setInfoClass

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::setInfoClass — Define a classe usada com SplFileInfo::getFileInfo() e SplFileInfo::getPathInfo()

Descrição

public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void

Use este método para definir uma classe personalizada que será usada quando SplFileInfo::getFileInfo() e SplFileInfo::getPathInfo() são chamados. O nome da classe passado para este método deve ser SplFileInfo ou uma classe derivada de SplFileInfo.

Parâmetros

class

O nome da classe a ser usada quando SplFileInfo::getFileInfo() e SplFileInfo::getPathInfo() são chamados.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::setFileClass()

<?php
// Define uma classe que estende SplFileInfo
class MyFoo extends SplFileInfo {}

$info = new SplFileInfo('foo');
// Define o nome da classe a ser usada
$info->setInfoClass('MyFoo');
var_dump($info->getFileInfo());
?>

O exemplo acima produzirá algo semelhante a:

object(MyFoo)#2 (0) { }

Veja Também

  • SplFileInfo::getFileInfo() - Obtém um objeto SplFileInfo para o arquivo


Retorna o caminho para o arquivo como uma string

  • « SplFileInfo::setInfoClass
  • SplFileObject »
  • PHP Manual
  • SplFileInfo
  • Retorna o caminho para o arquivo como uma string

SplFileInfo::__toString

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::__toString — Retorna o caminho para o arquivo como uma string

Descrição

public SplFileInfo::__toString(): string

Este método irá retornar o nome do arquivo do arquivo referenciado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o caminho para o arquivo.

Exemplos

Exemplo #1 Exemplo de SplFileInfo::__toString()

<?php
$info = new SplFileInfo('foo');
var_dump($info->__toString());
echo $info.PHP_EOL;

$info = new SplFileInfo('/usr/bin/php');
var_dump($info->__toString());
echo $info.PHP_EOL;
?>

O exemplo acima produzirá algo semelhante a:

string(3) "foo"
foo
string(12) "/usr/bin/php"
/usr/bin/php


A classe SplFileObject

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

A classe SplFileObject oferece uma interface orientada a objetos para um arquivo.

Resumo da classe

class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator {
/* Constantes */
public const int DROP_NEW_LINE;
public const int READ_AHEAD;
public const int SKIP_EMPTY;
public const int READ_CSV;
/* Métodos */
public __construct(
string $filename,
string $mode = "r",
bool $useIncludePath = false,
?resource $context = null
)
public current(): string|array|false
public eof(): bool
public fflush(): bool
public fgetc(): string|false
public fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false
public fgets(): string
public fgetss(string $allowable_tags = ?): string
public flock(int $operation, int &$wouldBlock = null): bool
public fpassthru(): int
public fputcsv(
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false
public fread(int $length): string|false
public fscanf(string $format, mixed &...$vars): array|int|null
public fseek(int $offset, int $whence = SEEK_SET): int
public fstat(): array
public ftell(): int|false
public ftruncate(int $size): bool
public fwrite(string $data, int $length = 0): int|false
public getChildren(): null
public getCsvControl(): array
public getFlags(): int
public getMaxLineLen(): int
public hasChildren(): false
public key(): int
public next(): void
public rewind(): void
public seek(int $line): void
public setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void
public setFlags(int $flags): void
public setMaxLineLen(int $maxLength): void
public __toString(): string
public valid(): bool
/* Métodos herdados */
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Constantes pré-definidas

SplFileObject::DROP_NEW_LINE

Remove quebras de linha no final de uma linha.

SplFileObject::READ_AHEAD

Lê ao rebobinar/avançar.

SplFileObject::SKIP_EMPTY

Pula linhas vazias no arquivo. Isso requer que a flag READ_AHEAD esteja ativada para funcionar como esperado.

SplFileObject::READ_CSV

Lê linhas como linhas CSV.

Índice

  • SplFileObject::__construct — Constrói um novo objeto de arquivo
  • SplFileObject::current — Recupera linha atual do arquivo
  • SplFileObject::eof — Chegou ao final do arquivo
  • SplFileObject::fflush — Escreve o buffer de saída para o arquivo
  • SplFileObject::fgetc — Obtém caractere do arquivo
  • SplFileObject::fgetcsv — Obtém linha do arquivo e interpreta como campos CSV
  • SplFileObject::fgets — Obtém linha do arquivo
  • SplFileObject::fgetss — Obtém linha do arquivo e remove tags HTML
  • SplFileObject::flock — Bloqueio de arquivo portável
  • SplFileObject::fpassthru — Produz todos os dados restantes em um ponteiro de arquivo
  • SplFileObject::fputcsv — Escreve um array de campos como uma linha CSV
  • SplFileObject::fread — Lê do arquivo
  • SplFileObject::fscanf — Analisa a entrada do arquivo de acordo com um formato
  • SplFileObject::fseek — Posiciona-se para uma posição
  • SplFileObject::fstat — Obtém informações sobre o arquivo
  • SplFileObject::ftell — Retorna a posição atual do arquivo
  • SplFileObject::ftruncate — Trunca o arquivo para um determinado comprimento
  • SplFileObject::fwrite — Escreve no arquivo
  • SplFileObject::getChildren — Sem objetivo
  • SplFileObject::getCsvControl — Obtém o delimitador, o caractere de fechamento e o caractere de escape para CSV
  • SplFileObject::getCurrentLine — Sinônimo de SplFileObject::fgets
  • SplFileObject::getFlags — Obtém as opções para o SplFileObject
  • SplFileObject::getMaxLineLen — Obtém o comprimento máximo da linha
  • SplFileObject::hasChildren — SplFileObject não tem filhos
  • SplFileObject::key — Obtém o número da linha
  • SplFileObject::next — Lê próxima linha
  • SplFileObject::rewind — Rebobina o arquivo para a primeira linha
  • SplFileObject::seek — Busca uma linha especificada
  • SplFileObject::setCsvControl — Definir o delimitador, o encapsulador e o caractere de escape para CSV
  • SplFileObject::setFlags — Define as opções para o SplFileObject
  • SplFileObject::setMaxLineLen — Define o comprimento máximo da linha
  • SplFileObject::__toString — Retorna a linha atual como uma string
  • SplFileObject::valid — Não está no final do arquivo (EOF)


Constrói um novo objeto de arquivo

  • « SplFileObject
  • SplFileObject::current »
  • PHP Manual
  • SplFileObject
  • Constrói um novo objeto de arquivo

SplFileObject::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::__construct — Constrói um novo objeto de arquivo

Descrição

public SplFileObject::__construct(
string $filename,
string $mode = "r",
bool $useIncludePath = false,
?resource $context = null
)

Constrói um novo objeto de arquivo.

Parâmetros

filename

O arquivo para ler.

Dica

Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.

mode

O modo no qual abrir o arquivo. Consulte fopen() para obter uma lista de modos permitidos.

useIncludePath

Se deve procurar no include_path pelo filename.

context

Um recurso de contexto válido criado com stream_context_create().

Erros/Exceções

Lança uma RuntimeException se o filename não puder ser aberto.

Lança uma LogicException se o filename for um diretório.

Exemplos

Exemplo #1 Exemplo de SplFileObject::__construct()

Este exemplo abre o arquivo atual e itera sobre seu conteúdo linha por linha.

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $line_num => $line) {
echo "Line $line_num is $line";
}
?>

O exemplo acima produzirá algo semelhante a:

Line 0 is <?php
Line 1 is $file = new SplFileObject(__FILE__);
Line 2 is foreach ($file as $line_num => $line) {
Line 3 is     echo "Line $line_num is $line";
Line 4 is }
Line 5 is ?>

Veja Também

  • SplFileInfo::openFile() - Obtém um objeto SplFileObject para o arquivo
  • fopen() - Abre um arquivo ou URL


Recupera linha atual do arquivo

  • « SplFileObject::__construct
  • SplFileObject::eof »
  • PHP Manual
  • SplFileObject
  • Recupera linha atual do arquivo

SplFileObject::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::current — Recupera linha atual do arquivo

Descrição

public SplFileObject::current(): string|array|false

Recupera a linha atual do arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Recupera a linha atual do arquivo. Se a flag SplFileObject::READ_CSV estiver definida, este método retorna um array contendo a linha atual interpretada como dados CSV. Se o final do arquivo for alcançado, é retornado false.

Exemplos

Exemplo #1 Exemplo de SplFileObject::current()

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $k => $line) {
echo ($file->key() + 1) . ': ' . $file->current();
}
?>

O exemplo acima produzirá algo semelhante a:

1: <?php
2: $file = new SplFileObject(__FILE__);
3: foreach ($file as $line) {
4:     echo ($file->key() + 1) . ': ' . $file->current();
5: }
6: ?>

Veja Também

  • SplFileObject::key() - Obtém o número da linha
  • SplFileObject::seek() - Busca uma linha especificada
  • SplFileObject::next() - Lê próxima linha
  • SplFileObject::rewind() - Rebobina o arquivo para a primeira linha
  • SplFileObject::valid() - Não está no final do arquivo (EOF)


Chegou ao final do arquivo

  • « SplFileObject::current
  • SplFileObject::fflush »
  • PHP Manual
  • SplFileObject
  • Chegou ao final do arquivo

SplFileObject::eof

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::eof — Chegou ao final do arquivo

Descrição

public SplFileObject::eof(): bool

Determina se o final do arquivo foi alcançado

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o arquivo estiver no final (EOF), false caso contrário.

Exemplos

Exemplo #1 Exemplo de SplFileObject::eof()

<?php
$file = new SplFileObject("fruits.txt");
while ( ! $file->eof()) {
echo $file->fgets();
}
?>

O exemplo acima produzirá algo semelhante a:

apple
banana
cherry
date
elderberry

Veja Também

  • SplFileObject::valid() - Não está no final do arquivo (EOF)
  • feof() - Testa pelo fim-de-arquivo em um ponteiro de arquivo


Escreve o buffer de saída para o arquivo

  • « SplFileObject::eof
  • SplFileObject::fgetc »
  • PHP Manual
  • SplFileObject
  • Escreve o buffer de saída para o arquivo

SplFileObject::fflush

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fflush — Escreve o buffer de saída para o arquivo

Descrição

public SplFileObject::fflush(): bool

Força a escrita de toda a saída em buffer para o arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fflush()

<?php
$file = new SplFileObject('misc.txt', 'r+');
$file->rewind();
$file->fwrite("Foo");
$file->fflush();
$file->ftruncate($file->ftell());
?>

Veja Também

  • SplFileObject::fwrite() - Escreve no arquivo


Obtém caractere do arquivo

  • « SplFileObject::fflush
  • SplFileObject::fgetcsv »
  • PHP Manual
  • SplFileObject
  • Obtém caractere do arquivo

SplFileObject::fgetc

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fgetc — Obtém caractere do arquivo

Descrição

public SplFileObject::fgetc(): string|false

Obtém um caractere do arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string contendo um único caractere lido do arquivo ou false no EOF.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fgetc()

<?php
$file = new SplFileObject('file.txt');
while (false !== ($char = $file->fgetc())) {
echo "$char\n";
}
?>

Veja Também

  • SplFileObject::fgets() - Obtém linha do arquivo


Obtém linha do arquivo e interpreta como campos CSV

  • « SplFileObject::fgetc
  • SplFileObject::fgets »
  • PHP Manual
  • SplFileObject
  • Obtém linha do arquivo e interpreta como campos CSV

SplFileObject::fgetcsv

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fgetcsv — Obtém linha do arquivo e interpreta como campos CSV

Descrição

public SplFileObject::fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false

Obtém uma linha do arquivo no formato CSV e retorna um array contendo os campos lidos.

Nota:

As configurações de localidade são levadas em consideração por esta função. Se LC_CTYPE for, por exemplo, en_US.UTF-8, arquivos em codificações de um byte podem ser lidos incorretamente por esta função.

Parâmetros

separator

O delimitador de campo (apenas um caractere de um byte). Padrão é uma vírgula ou o valor definido usando SplFileObject::setCsvControl().

enclosure

O caractere de delimitador de campo (apenas um caractere de um byte). Padrão é uma aspa dupla ou o valor definido usando SplFileObject::setCsvControl().

escape

O caractere de escape (no máximo um caractere de um byte). Padrão é uma barra invertida (\) ou o valor definido usando SplFileObject::setCsvControl(). Uma string vazia ("") desativa o mecanismo de escape proprietário.

Nota: Geralmente, um caractere de enclosure é escapado dentro de um campo duplicando-o; no entanto, o caractere de escape pode ser usado como alternativa. Assim, para os valores padrão dos parâmetros "" e \" têm o mesmo significado. Além de permitir escapar o caractere de enclosure, o caractere de escape não tem significado especial; nem mesmo é destinado a escapar a si mesmo.

Valor Retornado

Retorna um array indexado contendo os campos lidos, ou false em caso de erro.

Nota:

Uma linha em branco em um arquivo CSV será retornada como um array composto por um único campo null a menos que esteja usando SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE, caso em que as linhas em branco são ignoradas.

Registro de Alterações

Versão | Descrição
7.4.0 | O parâmetro escape agora também aceita uma string vazia para desativar o mecanismo de escape proprietário.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fgetcsv()

<?php
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
var_dump($file->fgetcsv());
}
?>

Exemplo #2 Exemplo de SplFileObject::READ_CSV

<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
list($animal, $class, $legs) = $row;
printf("A %s is a %s with %d legs\n", $animal, $class, $legs);
}
?>

Conteúdo de animals.csv

crocodile,reptile,4
dolphin,mammal,0
duck,bird,2
koala,mammal,4
salmon,fish,0

O exemplo acima produzirá algo semelhante a:

A crocodile is a reptile with 4 legs
A dolphin is a mammal with 0 legs
A duck is a bird with 2 legs
A koala is a mammal with 4 legs
A salmon is a fish with 0 legs

Veja Também

  • SplFileObject::setCsvControl() - Definir o delimitador, o encapsulador e o caractere de escape para CSV
  • SplFileObject::setFlags() - Define as opções para o SplFileObject
  • SplFileObject::READ_CSV
  • SplFileObject::current() - Recupera linha atual do arquivo


Obtém linha do arquivo

  • « SplFileObject::fgetcsv
  • SplFileObject::fgetss »
  • PHP Manual
  • SplFileObject
  • Obtém linha do arquivo

SplFileObject::fgets

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fgets — Obtém linha do arquivo

Descrição

public SplFileObject::fgets(): string

Obtém uma linha do arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string contendo a próxima linha do arquivo.

Erros/Exceções

Lança uma RuntimeException se o arquivo não puder ser lido.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fgets()

Este exemplo simplesmente imprime o conteúdo de file.txt linha por linha.

<?php
$file = new SplFileObject("file.txt");
while (!$file->eof()) {
echo $file->fgets();
}
?>

Veja Também

  • fgets() - Lê uma linha de um ponteiro de arquivo
  • SplFileObject::fgetss() - Obtém linha do arquivo e remove tags HTML
  • SplFileObject::fgetc() - Obtém caractere do arquivo
  • SplFileObject::current() - Recupera linha atual do arquivo


Obtém linha do arquivo e remove tags HTML

  • « SplFileObject::fgets
  • SplFileObject::flock »
  • PHP Manual
  • SplFileObject
  • Obtém linha do arquivo e remove tags HTML

SplFileObject::fgetss

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetss — Obtém linha do arquivo e remove tags HTML

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.3.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public SplFileObject::fgetss(string $allowable_tags = ?): string

Idêntico ao SplFileObject::fgets(), exceto que SplFileObject::fgetss() tenta remover quaisquer tags HTML e PHP do texto que lê. A função mantém o estado de análise de chamada para chamada, e como tal não é equivalente a chamar strip_tags() no valor de retorno de SplFileObject::fgets().

Parâmetros

allowable_tags

Parâmetro opcional para especificar tags que não devem ser removidas.

Valor Retornado

Retorna uma string contendo a próxima linha do arquivo com código HTML e PHP removido, ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fgetss()

<?php
$str = <<<EOD
<html><body>
<p>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
Text outside of the HTML block.
EOD;
file_put_contents("sample.php", $str);

$file = new SplFileObject("sample.php");
while (!$file->eof()) {
echo $file->fgetss();
}
?>

O exemplo acima produzirá algo semelhante a:

Welcome! Today is the  of .

Text outside of the HTML block.

Veja Também

  • fgetss() - Ler uma linha de um ponteiro de arquivo e retira as tags HTML
  • SplFileObject::fgets() - Obtém linha do arquivo
  • SplFileObject::fgetc() - Obtém caractere do arquivo
  • SplFileObject::current() - Recupera linha atual do arquivo
  • O filtro string.strip_tags


Bloqueio de arquivo portável

  • « SplFileObject::fgetss
  • SplFileObject::fpassthru »
  • PHP Manual
  • SplFileObject
  • Bloqueio de arquivo portável

SplFileObject::flock

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::flock — Bloqueio de arquivo portável

Descrição

public SplFileObject::flock(int $operation, int &$wouldBlock = null): bool

Bloqueia ou desbloqueia o arquivo da mesma forma portável que flock().

Parâmetros

operation

operation é uma das seguintes:

  • LOCK_SH para adquirir um bloqueio compartilhado (leitor).
  • LOCK_EX para adquirir um bloqueio exclusivo (escritor).
  • LOCK_UN para liberar um bloqueio (compartilhado ou exclusivo).

Também é possível adicionar LOCK_NB como uma máscara de bits para uma das operações acima, se flock() não deve bloquear durante a tentativa de bloqueio.

wouldBlock

Definido como true se o bloqueio bloqueasse (condição de errno EWOULDBLOCK).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SplFileObject::flock()

<?php
$file = new SplFileObject("/tmp/lock.txt", "w");
if ($file->flock(LOCK_EX)) { // do an exclusive lock
$file->ftruncate(0); // truncate file
$file->fwrite("Write something here\n");
$file->flock(LOCK_UN); // release the lock
} else {
echo "Couldn't get the lock!";
}
?>

Veja Também

  • flock() - Travamento consultivo portável de arquivo


Produz todos os dados restantes em um ponteiro de arquivo

  • « SplFileObject::flock
  • SplFileObject::fputcsv »
  • PHP Manual
  • SplFileObject
  • Produz todos os dados restantes em um ponteiro de arquivo

SplFileObject::fpassthru

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fpassthru — Produz todos os dados restantes em um ponteiro de arquivo

Descrição

public SplFileObject::fpassthru(): int

Lê até o EOF no ponteiro de arquivo fornecido a partir da posição atual e escreve os resultados no buffer de saída.

Você pode precisar chamar SplFileObject::rewind() para redefinir o ponteiro de arquivo para o início do arquivo se você já tiver escrito dados para o arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de caracteres lidos de handle e passados para a saída.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fpassthru()

<?php

// Abre o arquivo em modo binário
$file = new SplFileObject("./img/ok.png", "rb");

// Envia os cabeçalhos corretos
header("Content-Type: image/png");
header("Content-Length: " . $file->getSize());

// Exibe a imagem e encerra o script
$file->fpassthru();
exit;

?>

Veja Também

  • fpassthru() - Imprime todo os dados restantes de um ponteiro de arquivo


Escreve um array de campos como uma linha CSV

  • « SplFileObject::fpassthru
  • SplFileObject::fread »
  • PHP Manual
  • SplFileObject
  • Escreve um array de campos como uma linha CSV

SplFileObject::fputcsv

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SplFileObject::fputcsv — Escreve um array de campos como uma linha CSV

Descrição

public SplFileObject::fputcsv(
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false

Escreve o array de fields no arquivo como uma linha CSV.

Parâmetros

fields

Um array de valores.

separator

O parâmetro opcional separator define o delimitador de campo (apenas um caractere de byte único).

enclosure

O parâmetro opcional enclosure define o envólucro de campo (apenas um caractere de byte único).

escape

O parâmetro opcional escape define o caractere de escape (no máximo um caractere de byte único). Uma string vazia ("") desativa o mecanismo de escape proprietário.

eol

O parâmetro opcional eol define uma sequência de fim de linha personalizada.

Nota:

Se um caractere de enclosure estiver contido em um campo, ele será escapado duplicando-o, a menos que seja imediatamente precedido por um escape.

Valor Retornado

Retorna o comprimento da string escrita ou false em caso de falha.

Retorna false, e não escreve a linha CSV no arquivo, se o parâmetro separator ou enclosure não for um único caractere.

Erros/Exceções

Um erro de nível E_WARNING é emitido se o parâmetro separator ou enclosure não for um único caractere.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro opcional eol foi adicionado.
7.4.0 | O parâmetro escape agora também aceita uma string vazia para desativar o mecanismo de escape proprietário.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fputcsv()

<?php

$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);

$file = new SplFileObject('file.csv', 'w');

foreach ($list as $fields) {
$file->fputcsv($fields);
}

?>

O exemplo acima escreverá o seguinte em file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Veja Também

  • fputcsv() - Formata a linha como CSV e a escreve em um ponteiro de arquivo
  • SplFileObject::fgetcsv() - Obtém linha do arquivo e interpreta como campos CSV


Lê do arquivo

  • « SplFileObject::fputcsv
  • SplFileObject::fscanf »
  • PHP Manual
  • SplFileObject
  • Lê do arquivo

SplFileObject::fread

(PHP 5 >= 5.5.11, PHP 7, PHP 8)

SplFileObject::fread — Lê do arquivo

Descrição

public SplFileObject::fread(int $length): string|false

Lê o número dado de bytes do arquivo.

Parâmetros

length

O número de bytes a serem lidos.

Valor Retornado

etorna a string lida do arquivo ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fread()

<?php
// Obtém o conteúdo de um arquivo em uma string
$filename = "/usr/local/something.txt";
$file = new SplFileObject($filename, "r");
$contents = $file->fread($file->getSize());
?>

Notas

Nota:

Observe que SplFileObject::fread() lê a partir da posição atual do ponteiro do arquivo. Use SplFileObject::ftell() para encontrar a posição atual do ponteiro e SplFileObject::rewind() (ou SplFileObject::fseek()) para rebobinar a posição do ponteiro.

Veja Também

  • fread() - Leitura de arquivo segura para binário


Analisa a entrada do arquivo de acordo com um formato

  • « SplFileObject::fread
  • SplFileObject::fseek »
  • PHP Manual
  • SplFileObject
  • Analisa a entrada do arquivo de acordo com um formato

SplFileObject::fscanf

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fscanf — Analisa a entrada do arquivo de acordo com um formato

Descrição

public SplFileObject::fscanf(string $format, mixed &...$vars): array|int|null

Lê uma linha do arquivo e a interpreta de acordo com o format especificado.

Qualquer espaço em branco na string format corresponde a qualquer espaço em branco na linha do arquivo. Isso significa que até mesmo um tab (\t) na string de formato pode corresponder a um único caractere de espaço na sequência de entrada.

Parâmetros

format

O formato interpretado para string, que é descrito na documentação para sprintf() com as seguintes diferenças:

  • A função não reconhece a localidade.
  • F, g, G e b não são suportados.
  • D significa número decimal.
  • i significa inteiro com detecção de base.
  • n representa o número de caracteres processados até o momento.
  • s pára de ler em qualquer caractere de espaço em branco.
  • * em vez de argnum$ suprime a atribuição desta especificação de conversão.

vars

Os valores atribuídos opcionais.

Valor Retornado

Se apenas um parâmetro for passado para este método, os valores analisados serão retornados como uma array. Caso contrário, se parâmetros opcionais forem passados, a função retornará o número de valores atribuídos. Os parâmetros opcionais devem ser passados por referência.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fscanf()

<?php
$file = new SplFileObject("misc.txt");
while ($userinfo = $file->fscanf("%s %s %s")) {
list ($name, $profession, $countrycode) = $userinfo;
// Faça algo com $name $profession $countrycode
}
?>

Conteúdo de users.txt

javier   argonaut    pe
hiroshi  sculptor    jp
robert   slacker     us
luigi    florist     it

Veja Também

  • fscanf() - Interpreta a leitura de um arquivo de acordo com um formato
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato
  • printf() - Output a formatted string
  • sprintf() - Return a formatted string


Posiciona-se para uma posição

  • « SplFileObject::fscanf
  • SplFileObject::fstat »
  • PHP Manual
  • SplFileObject
  • Posiciona-se para uma posição

SplFileObject::fseek

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fseek — Posiciona-se para uma posição

Descrição

public SplFileObject::fseek(int $offset, int $whence = SEEK_SET): int

Posiciona-se para uma posição no arquivo medida em bytes a partir do início do arquivo, obtida ao adicionar o offset à posição especificada por whence.

Parâmetros

offset

O deslocamento. Um valor negativo pode ser usado para mover-se para trás no arquivo o que é útil quando SEEK_END é usado como o valor de whence.

whence

Os valores de whence são:

  • SEEK_SET - Define a posição igual a offset bytes.
  • SEEK_CUR - Define a posição para a localização atual mais offset.
  • SEEK_END - Define a posição para o final do arquivo mais offset.

Se whence não for especificado, é assumido como SEEK_SET.

Valor Retornado

Retorna 0 se a busca for bem-sucedida, -1 caso contrário. Note que buscar além do EOF não é considerado um erro.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fseek()

<?php
$file = new SplFileObject("somefile.txt");

// Lê a primeira linha
$data = $file->fgets();

// Move de volta para o início do arquivo
// Mesmo como $file->rewind();
$file->fseek(0);
?>

Veja Também

  • fseek() - Procura (seeks) em um ponteiro de arquivo


Obtém informações sobre o arquivo

  • « SplFileObject::fseek
  • SplFileObject::ftell »
  • PHP Manual
  • SplFileObject
  • Obtém informações sobre o arquivo

SplFileObject::fstat

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fstat — Obtém informações sobre o arquivo

Descrição

public SplFileObject::fstat(): array

Coleta as estatísticas do arquivo. Comporta-se de forma idêntica a fstat().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array com as estatísticas do arquivo; o formato do array é descrito detalhadamente na página do manual do stat().

Exemplos

Exemplo #1 Exemplo de SplFileObject::fstat()

<?php
$file = new SplFileObject("/etc/passwd");
$stat = $file->fstat();

// Imprime somente a parte associada
print_r(array_slice($stat, 13));

?>

O exemplo acima produzirá algo semelhante a:

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
)

Veja Também

  • fstat() - Lê informações sobre um arquivo usando um ponteiro de arquivo aberto
  • stat() - Obtém informações sobre um arquivo


Retorna a posição atual do arquivo

  • « SplFileObject::fstat
  • SplFileObject::ftruncate »
  • PHP Manual
  • SplFileObject
  • Retorna a posição atual do arquivo

SplFileObject::ftell

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::ftell — Retorna a posição atual do arquivo

Descrição

public SplFileObject::ftell(): int|false

Retorna a posição do ponteiro do arquivo que representa o deslocamento atual no fluxo do arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a posição do ponteiro do arquivo como um inteiro, ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de SplFileObject::ftell()

<?php
$file = new SplFileObject("/etc/passwd");

// Lê a primeira linha
$data = $file->fgets();

// Onde nós estamos?
echo $file->ftell();
?>

Veja Também

  • ftell() - Retorna a posição atual do ponteiro de leitura/gravação do arquivo


Trunca o arquivo para um determinado comprimento

  • « SplFileObject::ftell
  • SplFileObject::fwrite »
  • PHP Manual
  • SplFileObject
  • Trunca o arquivo para um determinado comprimento

SplFileObject::ftruncate

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::ftruncate — Trunca o arquivo para um determinado comprimento

Descrição

public SplFileObject::ftruncate(int $size): bool

Trunca o arquivo para size bytes.

Parâmetros

size

O tamanho para o qual truncar.

Nota:

Se size for maior que o arquivo, ele será estendido com bytes nulos.

Se size for menor que o arquivo, os dados extras serão perdidos.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SplFileObject::ftruncate()

<?php
// Cria arquivo contendo "Hello World!"
$file = new SplFileObject("/tmp/ftruncate", "w+");
$file->fwrite("Hello World!");

// Trunca para 5 bytes
$file->ftruncate(5);

// Rebobina e lê os dados
$file->rewind();
echo $file->fgets();
?>

O exemplo acima produzirá algo semelhante a:

Hello

Veja Também

  • ftruncate() - Trunca um arquivo a um tamanho especificado


Escreve no arquivo

  • « SplFileObject::ftruncate
  • SplFileObject::getChildren »
  • PHP Manual
  • SplFileObject
  • Escreve no arquivo

SplFileObject::fwrite

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fwrite — Escreve no arquivo

Descrição

public SplFileObject::fwrite(string $data, int $length = 0): int|false

Escreve o conteúdo de string no arquivo

Parâmetros

data

A string a ser escrita no arquivo.

length

Se o argumento length for fornecido, a escrita será interrompida após length bytes terem sido escritos ou quando o final de string for alcançado, o que ocorrer primeiro.

Valor Retornado

Retorna o número de bytes escritos, ou false em caso de erro.

Registro de Alterações

Versão | Descrição
7.4.0 | A função agora retorna false em vez de zero em caso de falha.

Exemplos

Exemplo #1 Exemplo de SplFileObject::fwrite()

<?php
$file = new SplFileObject("fwrite.txt", "w");
$written = $file->fwrite("12345");
echo "Wrote $written bytes to file";
?>

O exemplo acima produzirá algo semelhante a:

Wrote 5 bytes to file

Veja Também

  • fwrite() - Escrita binary-safe em arquivos


Sem objetivo

  • « SplFileObject::fwrite
  • SplFileObject::getCsvControl »
  • PHP Manual
  • SplFileObject
  • Sem objetivo

SplFileObject::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::getChildren — Sem objetivo

Descrição

public SplFileObject::getChildren(): null

Um SplFileObject não possui filhos, então este método retorna null.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna null.

Veja Também

  • RecursiveIterator::getChildren() - Retorna um iterador para a entrada atual


Obtém o delimitador, o caractere de fechamento e o caractere de escape para CSV

  • « SplFileObject::getChildren
  • SplFileObject::getCurrentLine »
  • PHP Manual
  • SplFileObject
  • Obtém o delimitador, o caractere de fechamento e o caractere de escape para CSV

SplFileObject::getCsvControl

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

SplFileObject::getCsvControl — Obtém o delimitador, o caractere de fechamento e o caractere de escape para CSV

Descrição

public SplFileObject::getCsvControl(): array

Obtém o delimitador, o caractere de fechamento e o caractere de escape usados para analisar os campos CSV.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array indexado contendo o delimitador, o caractere de fechamento e o caractere de escape.

Registro de Alterações

Versão | Descrição
7.4.0 | O caractere de escape agora pode ser uma string vazia.
7.0.10 | Adicionado o caractere de escape ao array retornado.

Exemplos

Exemplo #1 Exemplo de SplFileObject::getCsvControl()

<?php
$file = new SplFileObject("data.txt");
print_r($file->getCsvControl());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => ,
    [1] => "
    [2] => \
)

Veja Também

  • SplFileObject::setCsvControl() - Definir o delimitador, o encapsulador e o caractere de escape para CSV
  • SplFileObject::fgetcsv() - Obtém linha do arquivo e interpreta como campos CSV


Sinônimo de SplFileObject::fgets

  • « SplFileObject::getCsvControl
  • SplFileObject::getFlags »
  • PHP Manual
  • SplFileObject
  • Sinônimo de SplFileObject::fgets

SplFileObject::getCurrentLine

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileObject::getCurrentLine — Sinônimo de SplFileObject::fgets()

Descrição

Este método é um apelido para: SplFileObject::fgets().


Obtém as opções para o SplFileObject

  • « SplFileObject::getCurrentLine
  • SplFileObject::getMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Obtém as opções para o SplFileObject

SplFileObject::getFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::getFlags — Obtém as opções para o SplFileObject

Descrição

public SplFileObject::getFlags(): int

Obtém as flaopçõesgs definidas para uma instância de SplFileObject como um int.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um int representando as opções.

Exemplos

Exemplo #1 Exemplo de SplFileObject::getFlags()

<?php
$file = new SplFileObject(__FILE__, "r");

if ($file->getFlags() & SplFileObject::SKIP_EMPTY) {
echo "Skipping empty lines\n";
} else {
echo "Not skipping empty lines\n";
}

$file->setFlags(SplFileObject::SKIP_EMPTY);

if ($file->getFlags() & SplFileObject::SKIP_EMPTY) {
echo "Skipping empty lines\n";
} else {
echo "Not skipping empty lines\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Not skipping empty lines
Skipping empty lines

Veja Também

  • SplFileObject::setFlags() - Define as opções para o SplFileObject


Obtém o comprimento máximo da linha

  • « SplFileObject::getFlags
  • SplFileObject::hasChildren »
  • PHP Manual
  • SplFileObject
  • Obtém o comprimento máximo da linha

SplFileObject::getMaxLineLen

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::getMaxLineLen — Obtém o comprimento máximo da linha

Descrição

public SplFileObject::getMaxLineLen(): int

Obtém o comprimento máximo da linha definido por SplFileObject::setMaxLineLen().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o comprimento máximo da linha se um tiver sido definido com SplFileObject::setMaxLineLen(), o padrão é 0.

Exemplos

Exemplo #1 Exemplo de SplFileObject::getMaxLineLen()

<?php
$file = new SplFileObject("file.txt");
var_dump($file->getMaxLineLen());

$file->setMaxLineLen(20);
var_dump($file->getMaxLineLen());
?>

O exemplo acima produzirá algo semelhante a:

int(0)
int(20)

Veja Também

  • SplFileObject::setMaxLineLen() - Define o comprimento máximo da linha


SplFileObject não tem filhos

  • « SplFileObject::getMaxLineLen
  • SplFileObject::key »
  • PHP Manual
  • SplFileObject
  • SplFileObject não tem filhos

SplFileObject::hasChildren

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileObject::hasChildren — SplFileObject não tem filhos

Descrição

public SplFileObject::hasChildren(): false

Um SplFileObject não tem filhos, então este método sempre retorna false.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna false

Veja Também

  • RecursiveIterator::hasChildren() - Retorna se um iterador pode ser criado para a entrada atual


Obtém o número da linha

  • « SplFileObject::hasChildren
  • SplFileObject::next »
  • PHP Manual
  • SplFileObject
  • Obtém o número da linha

SplFileObject::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::key — Obtém o número da linha

Descrição

public SplFileObject::key(): int

Obtém o número da linha atual.

Nota:

Este número pode não refletir o número real da linha no arquivo se SplFileObject::setMaxLineLen() for usado para ler comprimentos fixos do arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número da linha atual.

Exemplos

Exemplo #1 Exemplo de SplFileObject::key()

<?php
$file = new SplFileObject("lipsum.txt");
foreach ($file as $line) {
echo $file->key() . ". " . $line;
}
?>

O exemplo acima produzirá algo semelhante a:

0. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
1. Duis nec sapien felis, ac sodales nisl.
2. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Exemplo #2 Exemplo de SplFileObject::key() com SplFileObject::setMaxLineLen()

<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
echo $file->key() . ". " . $line . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

0. Lorem ipsum dolor s
1. it amet, consectetu
2. r adipiscing elit.
3.

4. Duis nec sapien fel
5. is, ac sodales nisl
6. .

7. Lorem ipsum dolor s
8. it amet, consectetu
9. r adipiscing elit.

Veja Também

  • SplFileObject::current() - Recupera linha atual do arquivo
  • SplFileObject::seek() - Busca uma linha especificada
  • SplFileObject::next() - Lê próxima linha
  • SplFileObject::rewind() - Rebobina o arquivo para a primeira linha
  • SplFileObject::valid() - Não está no final do arquivo (EOF)


Lê próxima linha

  • « SplFileObject::key
  • SplFileObject::rewind »
  • PHP Manual
  • SplFileObject
  • Lê próxima linha

SplFileObject::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::next — Lê próxima linha

Descrição

public SplFileObject::next(): void

Avança para a próxima linha no arquivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplFileObject::next()

<?php
// Lê o arquivo linha por linha
$file = new SplFileObject("misc.txt");
while (!$file->eof()) {
echo $file->current();
$file->next();
}
?>

Veja Também

  • SplFileObject::current() - Recupera linha atual do arquivo
  • SplFileObject::key() - Obtém o número da linha
  • SplFileObject::seek() - Busca uma linha especificada
  • SplFileObject::rewind() - Rebobina o arquivo para a primeira linha
  • SplFileObject::valid() - Não está no final do arquivo (EOF)


Rebobina o arquivo para a primeira linha

  • « SplFileObject::next
  • SplFileObject::seek »
  • PHP Manual
  • SplFileObject
  • Rebobina o arquivo para a primeira linha

SplFileObject::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::rewind — Rebobina o arquivo para a primeira linha

Descrição

public SplFileObject::rewind(): void

Rebobina o arquivo de volta para a primeira linha.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Lança um RuntimeException se não puder ser rebobinado.

Exemplos

Exemplo #1 Exemplo de SplFileObject::rewind()

<?php
$file = new SplFileObject("misc.txt");

// Loop sobre todo o arquivo
foreach ($file as $line) { }

// Rebobina para a primeira linha
$file->rewind();

// Saída da primeira linha
echo $file->current();
?>

Veja Também

  • SplFileObject::current() - Recupera linha atual do arquivo
  • SplFileObject::key() - Obtém o número da linha
  • SplFileObject::seek() - Busca uma linha especificada
  • SplFileObject::next() - Lê próxima linha
  • SplFileObject::valid() - Não está no final do arquivo (EOF)


Busca uma linha especificada

  • « SplFileObject::rewind
  • SplFileObject::setCsvControl »
  • PHP Manual
  • SplFileObject
  • Busca uma linha especificada

SplFileObject::seek

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::seek — Busca uma linha especificada

Descrição

public SplFileObject::seek(int $line): void

Busca a linha especificada no arquivo.

Parâmetros

line

O número da linha baseada em zero para buscar.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Lança um LogicException se a line é negativa.

Exemplos

Exemplo #1 Exemplo de SplFileObject::seek()

Este exemplo imprime a terceira linha do script, que é encontrada na posição 2.

<?php
$file = new SplFileObject(__FILE__);
$file->seek(2);
echo $file->current();
?>

O exemplo acima produzirá algo semelhante a:

$file->seek(2);

Veja Também

  • SplFileObject::current() - Recupera linha atual do arquivo
  • SplFileObject::key() - Obtém o número da linha
  • SplFileObject::next() - Lê próxima linha
  • SplFileObject::rewind() - Rebobina o arquivo para a primeira linha
  • SplFileObject::valid() - Não está no final do arquivo (EOF)


Definir o delimitador, o encapsulador e o caractere de escape para CSV

  • « SplFileObject::seek
  • SplFileObject::setFlags »
  • PHP Manual
  • SplFileObject
  • Definir o delimitador, o encapsulador e o caractere de escape para CSV

SplFileObject::setCsvControl

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

SplFileObject::setCsvControl — Definir o delimitador, o encapsulador e o caractere de escape para CSV

Descrição

public SplFileObject::setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void

Define o delimitador, o encapsulador e o caractere de escape para a análise dos campos CSV.

Parâmetros

separator

O delimitador de campo (apenas um caractere de byte único).

enclosure

O caractere de encapsulamento de campo (apenas um caractere de byte único).

escape

O caractere de escape de campo (no máximo, um caractere de byte único). Uma string vazia ("") desativa o mecanismo de escape proprietário.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
7.4.0 | O parâmetro escape agora também aceita uma string vazia para desativar o mecanismo de escape proprietário.

Exemplos

Exemplo #1 Exemplo de SplFileObject::setCsvControl()

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach ($file as $row) {
list ($fruit, $quantity) = $row;
// Faça algo com os valores
}
?>

Conteúdo de data.csv

<?php
apples|20
bananas|14
cherries|87
?>

Veja Também

  • SplFileObject::getCsvControl() - Obtém o delimitador, o caractere de fechamento e o caractere de escape para CSV
  • SplFileObject::fgetcsv() - Obtém linha do arquivo e interpreta como campos CSV


Define as opções para o SplFileObject

  • « SplFileObject::setCsvControl
  • SplFileObject::setMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Define as opções para o SplFileObject

SplFileObject::setFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::setFlags — Define as opções para o SplFileObject

Descrição

public SplFileObject::setFlags(int $flags): void

Define as opções a serem usadas pelo SplFileObject.

Parâmetros

flags

Máscara de bits das opções a serem definidas. Veja Constantes SplFileObject para as opções disponíveis.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplFileObject::setFlags()

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $fields) {
var_dump($fields);
}
?>

Veja Também

  • SplFileObject::getFlags() - Obtém as opções para o SplFileObject


Define o comprimento máximo da linha

  • « SplFileObject::setFlags
  • SplFileObject::__toString »
  • PHP Manual
  • SplFileObject
  • Define o comprimento máximo da linha

SplFileObject::setMaxLineLen

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::setMaxLineLen — Define o comprimento máximo da linha

Descrição

public SplFileObject::setMaxLineLen(int $maxLength): void

Define o comprimento máximo de uma linha a ser lida.

Parâmetros

maxLength

O comprimento máximo de uma linha.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Lança DomainException quando maxLength é menor que zero.

Exemplos

Exemplo #1 Exemplo de SplFileObject::setMaxLineLen()

<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
echo $line . "\n";
}
?>

Conteúdo de lipsum.txt

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Duis nec sapien felis, ac sodales nisl.
Nulla vitae magna vitae purus aliquet consequat.

O exemplo acima produzirá algo semelhante a:

Lorem ipsum dolor s
it amet, consectetu
r adipiscing elit.

Duis nec sapien fel
is, ac sodales nisl
.

Nulla vitae magna v
itae purus aliquet
consequat.

Veja Também

  • SplFileObject::getMaxLineLen() - Obtém o comprimento máximo da linha


Retorna a linha atual como uma string

  • « SplFileObject::setMaxLineLen
  • SplFileObject::valid »
  • PHP Manual
  • SplFileObject
  • Retorna a linha atual como uma string

SplFileObject::__toString

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::__toString — Retorna a linha atual como uma string

Descrição

public SplFileObject::__toString(): string

Este método retornará a linha atual como uma string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a linha atual como uma string.

Registro de Alterações

Versão | Descrição
8.1.14, 8.2.1 | Alterado de um alias de SplFileObject::fgets() para uma implementação de SplFileObject::current() que retorna uma string CSV quando a opção SplFileObject::READ_CSV está definida.
7.2.19, 7.3.6 | Alterado de um alias de SplFileObject::current() para um alias de SplFileObject::fgets().


Não está no final do arquivo (EOF)

  • « SplFileObject::__toString
  • SplTempFileObject »
  • PHP Manual
  • SplFileObject
  • Não está no final do arquivo (EOF)

SplFileObject::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::valid — Não está no final do arquivo (EOF)

Descrição

public SplFileObject::valid(): bool

Verifica se o final do arquivo (EOF) foi alcançado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o final do arquivo (EOF) não foi alcançado, false caso contrário.

Exemplos

Exemplo #1 Exemplo de SplFileObject::valid()

<?php
// Loop sobre um arquivo, linha por linha
$file = new SplFileObject("file.txt");
while ($file->valid()) {
echo $file->fgets();
}
?>

Veja Também

  • SplFileObject::current() - Recupera linha atual do arquivo
  • SplFileObject::key() - Obtém o número da linha
  • SplFileObject::seek() - Busca uma linha especificada
  • SplFileObject::next() - Lê próxima linha
  • SplFileObject::rewind() - Rebobina o arquivo para a primeira linha


A classe SplTempFileObject

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

Introdução

A classe SplTempFileObject oferece uma interface orientada a objetos para um arquivo temporário.

Resumo da classe

class SplTempFileObject extends SplFileObject {
/* Constantes herdadas */
public const int SplFileObject::DROP_NEW_LINE;
public const int SplFileObject::READ_AHEAD;
public const int SplFileObject::SKIP_EMPTY;
public const int SplFileObject::READ_CSV;
/* Métodos */
public __construct(int $maxMemory = 2 * 1024 * 1024)
/* Métodos herdados */
public SplFileObject::current(): string|array|false
public SplFileObject::eof(): bool
public SplFileObject::fflush(): bool
public SplFileObject::fgetc(): string|false
public SplFileObject::fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false
public SplFileObject::fgets(): string
public SplFileObject::fgetss(string $allowable_tags = ?): string
public SplFileObject::flock(int $operation, int &$wouldBlock = null): bool
public SplFileObject::fpassthru(): int
public SplFileObject::fputcsv(
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false
public SplFileObject::fread(int $length): string|false
public SplFileObject::fscanf(string $format, mixed &...$vars): array|int|null
public SplFileObject::fseek(int $offset, int $whence = SEEK_SET): int
public SplFileObject::fstat(): array
public SplFileObject::ftell(): int|false
public SplFileObject::ftruncate(int $size): bool
public SplFileObject::fwrite(string $data, int $length = 0): int|false
public SplFileObject::getChildren(): null
public SplFileObject::getCsvControl(): array
public SplFileObject::getFlags(): int
public SplFileObject::getMaxLineLen(): int
public SplFileObject::hasChildren(): false
public SplFileObject::key(): int
public SplFileObject::next(): void
public SplFileObject::rewind(): void
public SplFileObject::seek(int $line): void
public SplFileObject::setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void
public SplFileObject::setFlags(int $flags): void
public SplFileObject::setMaxLineLen(int $maxLength): void
public SplFileObject::__toString(): string
public SplFileObject::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Índice

  • SplTempFileObject::__construct — Constrói um novo objeto de arquivo temporário


Constrói um novo objeto de arquivo temporário

  • « SplTempFileObject
  • Classes e Interfaces Diversas »
  • PHP Manual
  • SplTempFileObject
  • Constrói um novo objeto de arquivo temporário

SplTempFileObject::__construct

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplTempFileObject::__construct — Constrói um novo objeto de arquivo temporário

Descrição

public SplTempFileObject::__construct(int $maxMemory = 2 * 1024 * 1024)

Constrói um novo objeto de arquivo temporário.

Parâmetros

maxMemory

A quantidade máxima de memória (em bytes, o padrão é 2 MB) para o arquivo temporário usar. Se o arquivo temporário exceder esse tamanho, ele será movido para um arquivo no diretório temp do sistema.

Se maxMemory for negativo, apenas memória será usada. Se maxMemory for zero, nenhuma memória será usada.

Erros/Exceções

Lança uma RuntimeException se ocorrer um erro.

Exemplos

Exemplo #1 Exemplo de SplTempFileObject()

Este exemplo escreve um arquivo temporário na memória que pode ser escrito e lido.

<?php
$temp = new SplTempFileObject();
$temp->fwrite("Esta é a primeira linha.\n");
$temp->fwrite("E esta é a segunda.\n");
echo "Escritos " . $temp->ftell() . " bytes no arquivo temporário.\n\n";

// Retrocede e lê o que foi escrito
$temp->rewind();
foreach ($temp as $line) {
echo $line;
}
?>

O exemplo acima produzirá algo semelhante a:

Escritos 47 bytes no arquivo temporário.

Esta é a primeira linha.
E esta é a segunda.

Veja Também

  • SplFileObject
  • Fluxos de entrada/saída PHP (para php://temp e php://memory)


Classes e Interfaces Diversas

Índice

  • ArrayObject
  • SplObserver
  • SplSubject

Classes e interfaces que não se enquadram nas outras categorias da SPL.


A classe ArrayObject

(PHP 5, PHP 7, PHP 8)

Introdução

Esta classe permite que objetos funcionem como arrays.

Resumo da classe

class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable {
/* Constantes */
const int STD_PROP_LIST;
const int ARRAY_AS_PROPS;
/* Métodos */
public __construct(array|object $array = [], int $flags = 0, string $iteratorClass = ArrayIterator::class)
public append(mixed $value): void
public asort(int $flags = SORT_REGULAR): true
public count(): int
public exchangeArray(array|object $array): array
public getArrayCopy(): array
public getFlags(): int
public getIterator(): Iterator
public getIteratorClass(): string
public ksort(int $flags = SORT_REGULAR): true
public natcasesort(): true
public natsort(): true
public offsetExists(mixed $key): bool
public offsetGet(mixed $key): mixed
public offsetSet(mixed $key, mixed $value): void
public offsetUnset(mixed $key): void
public serialize(): string
public setFlags(int $flags): void
public setIteratorClass(string $iteratorClass): void
public uasort(callable $callback): true
public uksort(callable $callback): true
public unserialize(string $data): void
}

Constantes pré-definidas

Flags do ArrayObject

ArrayObject::STD_PROP_LIST

As propriedades do objeto têm sua funcionalidade normal quando acessadas como lista (var_dump(), foreach, etc.).

ArrayObject::ARRAY_AS_PROPS

As entradas podem ser acessadas como propriedades (leitura e escrita). A classe ArrayObject usa sua própria lógica para acessar propriedades, portanto, nenhum aviso ou erro é gerado ao tentar ler ou escrever propriedades dinâmicas.

Índice

  • ArrayObject::append — Anexa o valor
  • ArrayObject::asort — Ordenar as entradas por valor
  • ArrayObject::__construct — Constrói um novo objeto de array
  • ArrayObject::count — Obtém o número de propriedades públicas no ArrayObject
  • ArrayObject::exchangeArray — Troca o array por outro
  • ArrayObject::getArrayCopy — Cria uma cópia do ArrayObject
  • ArrayObject::getFlags — Obtém as flags de comportamento
  • ArrayObject::getIterator — Retorna o iterador do ArrayObject
  • ArrayObject::getIteratorClass — Obtém o nome da classe do iterador para o ArrayObject
  • ArrayObject::ksort — Ordena as entradas pela chave
  • ArrayObject::natcasesort — Ordena uma matriz usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas
  • ArrayObject::natsort — Ordena as entradas usando um algoritmo de "ordem natural"
  • ArrayObject::offsetExists — Retorna se o índice solicitado existe
  • ArrayObject::offsetGet — Retorna o valor no índice especificado
  • ArrayObject::offsetSet — Define o valor no índice especificado para novo valor
  • ArrayObject::offsetUnset — Remove o valor no índice especificado
  • ArrayObject::serialize — Serializa um ArrayObject
  • ArrayObject::setFlags — Define as opções de comportamento
  • ArrayObject::setIteratorClass — Define a classe do iterador para o ArrayObject
  • ArrayObject::uasort — Ordena as entradas com uma função de comparação definida pelo usuário e mantém a associação de chaves
  • ArrayObject::uksort — Ordena as entradas pelas chaves usando uma função de comparação definida pelo usuário
  • ArrayObject::unserialize — Desserializa um ArrayObject


Anexa o valor

  • « ArrayObject
  • ArrayObject::asort »
  • PHP Manual
  • ArrayObject
  • Anexa o valor

ArrayObject::append

(PHP 5, PHP 7, PHP 8)

ArrayObject::append — Anexa o valor

Descrição

public ArrayObject::append(mixed $value): void

Anexa um novo valor como o último elemento.

Nota:

Este método não pode ser chamado quando o ArrayObject foi construído a partir de um objeto. Use ArrayObject::offsetSet() em vez disso.

Parâmetros

value

O valor sendo anexado.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de ArrayObject::append()

<?php
$arrayobj = new ArrayObject(array('first','second','third'));
$arrayobj->append('fourth');
$arrayobj->append(array('five', 'six'));
var_dump($arrayobj);
?>

O exemplo acima produzirá:

object(ArrayObject)#1 (5) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
  [2]=>
  string(5) "third"
  [3]=>
  string(6) "fourth"
  [4]=>
  array(2) {
    [0]=>
    string(4) "five"
    [1]=>
    string(3) "six"
  }
}

Veja Também

  • ArrayObject::offsetSet() - Define o valor no índice especificado para novo valor


Ordenar as entradas por valor

  • « ArrayObject::append
  • ArrayObject::__construct »
  • PHP Manual
  • ArrayObject
  • Ordenar as entradas por valor

ArrayObject::asort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::asort — Ordenar as entradas por valor

Descrição

public ArrayObject::asort(int $flags = SORT_REGULAR): true

Ordena as entradas em ordem crescente, de forma que suas chaves mantenham sua correlação com os valores que estão associados a elas.

Isso é usado principalmente ao ordenar arrays associativos onde a ordem real dos elementos é significativa.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

flags

O segundo parâmetro opcional flags pode ser usado para modificar o comportamento da ordenação usando estes valores:

Flags dos tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente; os detalhes são descritos na seção operadores de comparação
  • SORT_NUMERIC - compara os elementos numericamente
  • SORT_STRING - compara os elementos como strings
  • SORT_LOCALE_STRING - compara os elementos como strings, com base na localidade atual. A localidade pode ser alterada usando setlocale()
  • SORT_NATURAL - compara os elementos como strings usando "ordenação natural" como natsort()
  • SORT_FLAG_CASE - pode ser combinada (usando o operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem fazer distinção entre maiúsculas e minúsculas

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de ArrayObject::asort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->asort();

foreach ($fruitArrayObject as $key => $val) {
echo "$key = $val\n";
}
?>

O exemplo acima produzirá:

c = apple
b = banana
d = lemon
a = orange

As frutas foram ordenadas em ordem alfabética, e a chave associada a cada entrada foi mantida.

Veja Também

  • ArrayObject::ksort() - Ordena as entradas pela chave
  • ArrayObject::natsort() - Ordena as entradas usando um algoritmo de "ordem natural"
  • ArrayObject::natcasesort() - Ordena uma matriz usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas
  • ArrayObject::uasort() - Ordena as entradas com uma função de comparação definida pelo usuário e mantém a associação de chaves
  • ArrayObject::uksort() - Ordena as entradas pelas chaves usando uma função de comparação definida pelo usuário
  • asort() - Ordena um array em ordem crescente e mantém a associação de índices


Constrói um novo objeto de array

  • « ArrayObject::asort
  • ArrayObject::count »
  • PHP Manual
  • ArrayObject
  • Constrói um novo objeto de array

ArrayObject::__construct

(PHP 5, PHP 7, PHP 8)

ArrayObject::__construct — Constrói um novo objeto de array

Descrição

public ArrayObject::__construct(array|object $array = [], int $flags = 0, string $iteratorClass = ArrayIterator::class)

Constrói um novo objeto de array (do tipo object).

Parâmetros

array

O parâmetro array aceita um array ou um Object.

flags

Sinalizadores para controlar o comportamento do objeto ArrayObject. Veja ArrayObject::setFlags().

iteratorClass

Especifique a classe que será usada para iteração do objeto ArrayObject. A classe deve implementar ArrayIterator.

Exemplos

Exemplo #1 Exemplo de ArrayObject::__construct()

<?php
$array = array('1' => 'one',
'2' => 'two',
'3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

O exemplo acima produzirá:

object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}

Veja Também

  • ArrayObject::setflags() - Define as opções de comportamento


Obtém o número de propriedades públicas no ArrayObject

  • « ArrayObject::__construct
  • ArrayObject::exchangeArray »
  • PHP Manual
  • ArrayObject
  • Obtém o número de propriedades públicas no ArrayObject

ArrayObject::count

(PHP 5, PHP 7, PHP 8)

ArrayObject::count — Obtém o número de propriedades públicas no ArrayObject

Descrição

public ArrayObject::count(): int

Obtém o número de propriedades públicas no ArrayObject.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O número de propriedades públicas no ArrayObject.

Nota:

Quando o ArrayObject é construído a partir de um array, todas as propriedades são públicas.

Exemplos

Exemplo #1 Exemplo de ArrayObject::count()

<?php
class Example {
public $public = 'prop:public';
private $prv = 'prop:private';
protected $prt = 'prop:protected';
}

$arrayobj = new ArrayObject(new Example());
var_dump($arrayobj->count());

$arrayobj = new ArrayObject(array('first','second','third'));
var_dump($arrayobj->count());
?>

O exemplo acima produzirá:

int(1)
int(3)


Troca o array por outro

  • « ArrayObject::count
  • ArrayObject::getArrayCopy »
  • PHP Manual
  • ArrayObject
  • Troca o array por outro

ArrayObject::exchangeArray

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayObject::exchangeArray — Troca o array por outro

Descrição

public ArrayObject::exchangeArray(array|object $array): array

Troca o array atual por outro array ou object.

Parâmetros

array

O novo array ou object para trocar pelo array atual.

Valor Retornado

Retorna o array antigo.

Exemplos

Exemplo #1 Exemplo de ArrayObject::exchangeArray()

<?php
// Array de frutas disponíveis
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);
// Array de locais na Europa
$locations = array('Amsterdam', 'Paris', 'London');

$fruitsArrayObject = new ArrayObject($fruits);

// Agora troque as frutas por locais
$old = $fruitsArrayObject->exchangeArray($locations);
print_r($old);
print_r($fruitsArrayObject);

?>

O exemplo acima produzirá:

Array
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
)
ArrayObject Object
(
    [0] => Amsterdam
    [1] => Paris
    [2] => London
)


Cria uma cópia do ArrayObject

  • « ArrayObject::exchangeArray
  • ArrayObject::getFlags »
  • PHP Manual
  • ArrayObject
  • Cria uma cópia do ArrayObject

ArrayObject::getArrayCopy

(PHP 5, PHP 7, PHP 8)

ArrayObject::getArrayCopy — Cria uma cópia do ArrayObject

Descrição

public ArrayObject::getArrayCopy(): array

Exporta o ArrayObject para um array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma cópia do array. Quando o ArrayObject se refere a um objeto, um array com as propriedades desse objeto será retornado.

Exemplos

Exemplo #1 Exemplo de ArrayObject::getArrayCopy()

<?php
// Array de frutas disponíveis
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);
$fruitsArrayObject['pears'] = 4;

// cria uma cópia do array
$copy = $fruitsArrayObject->getArrayCopy();
print_r($copy);

?>

O exemplo acima produzirá:

Array
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
    [pears] => 4
)


Obtém as flags de comportamento

  • « ArrayObject::getArrayCopy
  • ArrayObject::getIterator »
  • PHP Manual
  • ArrayObject
  • Obtém as flags de comportamento

ArrayObject::getFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayObject::getFlags — Obtém as flags de comportamento

Descrição

public ArrayObject::getFlags(): int

Obtém as flags de comportamento do ArrayObject. Consulte o método ArrayObject::setFlags para obter uma lista das flags disponíveis.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna as flags de comportamento do ArrayObject.

Exemplos

Exemplo #1 Exemplo de ArrayObject::getFlags()

<?php
// Array de frutas disponíveis
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Obtém as flags atuais
$flags = $fruitsArrayObject->getFlags();
var_dump($flags);

// Define novas flags
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);

// Obtém as novas flags
$flags = $fruitsArrayObject->getFlags();
var_dump($flags);
?>

O exemplo acima produzirá:

int(0)
int(2)

Veja Também

  • ArrayObject::setFlags() - Define as opções de comportamento


Retorna o iterador do ArrayObject

  • « ArrayObject::getFlags
  • ArrayObject::getIteratorClass »
  • PHP Manual
  • ArrayObject
  • Retorna o iterador do ArrayObject

ArrayObject::getIterator

(PHP 5, PHP 7, PHP 8)

ArrayObject::getIterator — Retorna o iterador do ArrayObject

Descrição

public ArrayObject::getIterator(): Iterator

Cria um novo iterador a partir de uma instância de ArrayObject.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um iterador de um ArrayObject.

Exemplos

Exemplo #1 Exemplo de ArrayObject::getIterator()

<?php
$array = array('1' => 'um',
'2' => 'dois',
'3' => 'três');

$arrayobject = new ArrayObject($array);

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
echo $iterator->key() . ' => ' . $iterator->current() . "\n";

$iterator->next();
}
?>

O exemplo acima produzirá:

1 => um
2 => dois
3 => três


Obtém o nome da classe do iterador para o ArrayObject

  • « ArrayObject::getIterator
  • ArrayObject::ksort »
  • PHP Manual
  • ArrayObject
  • Obtém o nome da classe do iterador para o ArrayObject

ArrayObject::getIteratorClass

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayObject::getIteratorClass — Obtém o nome da classe do iterador para o ArrayObject

Descrição

public ArrayObject::getIteratorClass(): string

Obtém o nome da classe do iterador de array que é usado por ArrayObject::getIterator().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o nome da classe do iterador que é usado para iterar sobre este objeto.

Exemplos

Exemplo #1 Exemplo de ArrayObject::getIteratorClass()

<?php
// ArrayIterator Personalizado (herda de ArrayIterator)
class MyArrayIterator extends ArrayIterator {
// implementação personalizada
}

// Array de frutas disponíveis
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Obtém o nome da classe atual
$className = $fruitsArrayObject->getIteratorClass();
var_dump($className);

// Define novo nome de classe
$fruitsArrayObject->setIteratorClass('MyArrayIterator');

// Obtém o novo nome de classe do iterador
$className = $fruitsArrayObject->getIteratorClass();
var_dump($className);
?>

O exemplo acima produzirá:

string(13) "ArrayIterator"
string(15) "MyArrayIterator"

Veja Também

  • O método ArrayObject::setIteratorClass


Ordena as entradas pela chave

  • « ArrayObject::getIteratorClass
  • ArrayObject::natcasesort »
  • PHP Manual
  • ArrayObject
  • Ordena as entradas pela chave

ArrayObject::ksort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::ksort — Ordena as entradas pela chave

Descrição

public ArrayObject::ksort(int $flags = SORT_REGULAR): true

Ordena as entradas pela chave, mantendo as correlações entre chave e entrada. Isso é útil principalmente para arrays associativos.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

flags

O segundo parâmetro opcional flags pode ser usado para modificar o comportamento da ordenação usando estes valores:

Flags dos tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente; os detalhes são descritos na seção operadores de comparação
  • SORT_NUMERIC - compara os elementos numericamente
  • SORT_STRING - compara os elementos como strings
  • SORT_LOCALE_STRING - compara os elementos como strings, com base na localidade atual. A localidade pode ser alterada usando setlocale()
  • SORT_NATURAL - compara os elementos como strings usando "ordenação natural" como natsort()
  • SORT_FLAG_CASE - pode ser combinada (usando o operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem fazer distinção entre maiúsculas e minúsculas

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de ArrayObject::ksort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->ksort();

foreach ($fruitArrayObject as $key => $val) {
echo "$key = $val\n";
}
?>

O exemplo acima produzirá:

a = orange
b = banana
c = apple
d = lemon

Veja Também

  • ArrayObject::asort() - Ordenar as entradas por valor
  • ArrayObject::natsort() - Ordena as entradas usando um algoritmo de "ordem natural"
  • ArrayObject::natcasesort() - Ordena uma matriz usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas
  • ArrayObject::uasort() - Ordena as entradas com uma função de comparação definida pelo usuário e mantém a associação de chaves
  • ArrayObject::uksort() - Ordena as entradas pelas chaves usando uma função de comparação definida pelo usuário
  • ksort() - Ordena um array pelas chaves em ordem crescente


Ordena uma matriz usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas

  • « ArrayObject::ksort
  • ArrayObject::natsort »
  • PHP Manual
  • ArrayObject
  • Ordena uma matriz usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas

ArrayObject::natcasesort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::natcasesort — Ordena uma matriz usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas

Descrição

public ArrayObject::natcasesort(): true

Este método é uma versão insensível a maiúsculas e minúsculas de ArrayObject::natsort.

Este método implementa um algoritmo de classificação que ordena strings alfanuméricas da maneira como um ser humano faria, mantendo associações chave/valor. Isso é descrito como uma "ordem natural".

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de ArrayObject::natcasesort()

<?php
$array = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo "Standard sorting\n";
print_r($arr1);

$arr2->natcasesort();
echo "\nNatural order sorting (case-insensitive)\n";
print_r($arr2);
?>

O exemplo acima produzirá:

Standard sorting
ArrayObject Object
(
    [0] => IMG0.png
    [5] => IMG3.png
    [4] => img1.png
    [2] => img10.png
    [1] => img12.png
    [3] => img2.png
)

Natural order sorting (case-insensitive)
ArrayObject Object
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

Para obter mais informações, consulte a página de Comparação de Cadeias de Caracteres em Ordem Natural de Martin Pool: » Natural Order String Comparison.

Veja Também

  • ArrayObject::asort() - Ordenar as entradas por valor
  • ArrayObject::ksort() - Ordena as entradas pela chave
  • ArrayObject::natsort() - Ordena as entradas usando um algoritmo de "ordem natural"
  • ArrayObject::uasort() - Ordena as entradas com uma função de comparação definida pelo usuário e mantém a associação de chaves
  • ArrayObject::uksort() - Ordena as entradas pelas chaves usando uma função de comparação definida pelo usuário
  • natcasesort() - Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas


Ordena as entradas usando um algoritmo de "ordem natural"

  • « ArrayObject::natcasesort
  • ArrayObject::offsetExists »
  • PHP Manual
  • ArrayObject
  • Ordena as entradas usando um algoritmo de "ordem natural"

ArrayObject::natsort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::natsort — Ordena as entradas usando um algoritmo de "ordem natural"

Descrição

public ArrayObject::natsort(): true

Este método implementa um algoritmo de ordenação que ordena strings alfanuméricas da maneira como um ser humano faria, mantendo associações chave/valor. Isso é descrito como uma "ordem natural". Um exemplo da diferença entre esse algoritmo e os algoritmos regulares de ordenação de strings de computador (usados no método ArrayObject::asort) pode ser visto no exemplo abaixo.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de ArrayObject::natsort()

<?php
$array = array("img12.png", "img10.png", "img2.png", "img1.png");

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo "Standard sorting\n";
print_r($arr1);

$arr2->natsort();
echo "\nNatural order sorting\n";
print_r($arr2);
?>

O exemplo acima produzirá:

Standard sorting
ArrayObject Object
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Natural order sorting
ArrayObject Object
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Para mais informações, consulte a página de » Comparação de Strings em Ordem Natural de Martin Pool.

Veja Também

  • ArrayObject::asort() - Ordenar as entradas por valor
  • ArrayObject::ksort() - Ordena as entradas pela chave
  • ArrayObject::natcasesort() - Ordena uma matriz usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas
  • ArrayObject::uasort() - Ordena as entradas com uma função de comparação definida pelo usuário e mantém a associação de chaves
  • ArrayObject::uksort() - Ordena as entradas pelas chaves usando uma função de comparação definida pelo usuário
  • natsort() - Ordena um array utilizando o algoritmo de "ordem natural"


Retorna se o índice solicitado existe

  • « ArrayObject::natsort
  • ArrayObject::offsetGet »
  • PHP Manual
  • ArrayObject
  • Retorna se o índice solicitado existe

ArrayObject::offsetExists

(PHP 5, PHP 7, PHP 8)

ArrayObject::offsetExists — Retorna se o índice solicitado existe

Descrição

public ArrayObject::offsetExists(mixed $key): bool

Parâmetros

key

O índice sendo verificado.

Valor Retornado

true se o índice solicitado existe, caso contrário false

Exemplos

Exemplo #1 Exemplo de ArrayObject::offsetExists()

<?php
$arrayobj = new ArrayObject(array('zero', 'one', 'example'=>'e.g.'));
var_dump($arrayobj->offsetExists(1));
var_dump($arrayobj->offsetExists('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(false)


Retorna o valor no índice especificado

  • « ArrayObject::offsetExists
  • ArrayObject::offsetSet »
  • PHP Manual
  • ArrayObject
  • Retorna o valor no índice especificado

ArrayObject::offsetGet

(PHP 5, PHP 7, PHP 8)

ArrayObject::offsetGet — Retorna o valor no índice especificado

Descrição

public ArrayObject::offsetGet(mixed $key): mixed

Parâmetros

key

O índice com o valor.

Valor Retornado

O valor no índice especificado ou null.

Erros/Exceções

Produz uma mensagem de erro E_NOTICE quando o índice especificado não existe.

Exemplos

Exemplo #1 Exemplo de ArrayObject::offsetGet()

<?php
$arrayobj = new ArrayObject(array('zero', 7, 'example'=>'e.g.'));
var_dump($arrayobj->offsetGet(1));
var_dump($arrayobj->offsetGet('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

O exemplo acima produzirá:

int(7)
string(4) "e.g."
bool(false)


Define o valor no índice especificado para novo valor

  • « ArrayObject::offsetGet
  • ArrayObject::offsetUnset »
  • PHP Manual
  • ArrayObject
  • Define o valor no índice especificado para novo valor

ArrayObject::offsetSet

(PHP 5, PHP 7, PHP 8)

ArrayObject::offsetSet — Define o valor no índice especificado para novo valor

Descrição

public ArrayObject::offsetSet(mixed $key, mixed $value): void

Define o valor no índice especificado para novo valor.

Parâmetros

key

O índice sendo definido.

value

O novo valor para o key.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de ArrayObject::offsetSet()

<?php
class Example {
public $property = 'prop:public';
}
$arrayobj = new ArrayObject(new Example());
$arrayobj->offsetSet(4, 'four');
$arrayobj->offsetSet('group', array('g1', 'g2'));
var_dump($arrayobj);

$arrayobj = new ArrayObject(array('zero','one'));
$arrayobj->offsetSet(null, 'last');
var_dump($arrayobj);
?>

O exemplo acima produzirá:

object(ArrayObject)#1 (3) {
  ["property"]=>
  string(11) "prop:public"
  [4]=>
  string(4) "four"
  ["group"]=>
  array(2) {
    [0]=>
    string(2) "g1"
    [1]=>
    string(2) "g2"
  }
}
object(ArrayObject)#3 (3) {
  [0]=>
  string(4) "zero"
  [1]=>
  string(3) "one"
  [2]=>
  string(4) "last"
}

Veja Também

  • ArrayObject::append() - Anexa o valor


Remove o valor no índice especificado

  • « ArrayObject::offsetSet
  • ArrayObject::serialize »
  • PHP Manual
  • ArrayObject
  • Remove o valor no índice especificado

ArrayObject::offsetUnset

(PHP 5, PHP 7, PHP 8)

ArrayObject::offsetUnset — Remove o valor no índice especificado

Descrição

public ArrayObject::offsetUnset(mixed $key): void

Remove o valor no índice especificado.

Parâmetros

key

O índice sendo removido.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de ArrayObject::offsetUnset()

<?php
$arrayobj = new ArrayObject(array(0=>'zero',2=>'two'));
$arrayobj->offsetUnset(2);
var_dump($arrayobj);
?>

O exemplo acima produzirá:

object(ArrayObject)#1 (1) {
  [0]=>
  string(4) "zero"
}


Serializa um ArrayObject

  • « ArrayObject::offsetUnset
  • ArrayObject::setFlags »
  • PHP Manual
  • ArrayObject
  • Serializa um ArrayObject

ArrayObject::serialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayObject::serialize — Serializa um ArrayObject

Descrição

public ArrayObject::serialize(): string

Serializa um ArrayObject.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A representação serializada do ArrayObject.

Exemplos

Exemplo #1 Exemplo de ArrayObject::serialize()

<?php
$o = new ArrayObject();

$s1 = serialize($o);
$s2 = $o->serialize();

var_dump($s1);
var_dump($s2);
?>

O exemplo acima produzirá:

string(45) "C:11:"ArrayObject":21:{x:i:0;a:0:{};m:a:0:{}}"
string(21) "x:i:0;a:0:{};m:a:0:{}"

Veja Também

  • ArrayObject::unserialize() - Desserializa um ArrayObject
  • serialize() - Gera uma representação armazenável de um valor
  • Serializando objetos


Define as opções de comportamento

  • « ArrayObject::serialize
  • ArrayObject::setIteratorClass »
  • PHP Manual
  • ArrayObject
  • Define as opções de comportamento

ArrayObject::setFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayObject::setFlags — Define as opções de comportamento

Descrição

public ArrayObject::setFlags(int $flags): void

Define as opções que alteram o comportamento do ArrayObject.

Parâmetros

flags

O novo comportamento do ArrayObject. Podem ser máscara de bits ou constantes nomeadas. É fortemente recomendado o uso de constantes nomeadas para garantir compatibilidade com futuras versões.

As opções de comportamento disponíveis estão listadas abaixo. Os significados reais dessas opções são descritos nas constantes predefinidas.

Opções de comportamento do ArrayObject
Valor | Constante
1 | ArrayObject::STD_PROP_LIST
2 | ArrayObject::ARRAY_AS_PROPS

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de ArrayObject::setFlags()

<?php
// Array de frutas disponíveis
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Tenta usar chave de array como propriedade
var_dump($fruitsArrayObject->lemons);
// Define a opção para que as chaves de array possam ser usadas como propriedades do ArrayObject
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);
// Tenta novamente
var_dump($fruitsArrayObject->lemons);
?>

O exemplo acima produzirá:

NULL
int(1)


Define a classe do iterador para o ArrayObject

  • « ArrayObject::setFlags
  • ArrayObject::uasort »
  • PHP Manual
  • ArrayObject
  • Define a classe do iterador para o ArrayObject

ArrayObject::setIteratorClass

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayObject::setIteratorClass — Define a classe do iterador para o ArrayObject

Descrição

public ArrayObject::setIteratorClass(string $iteratorClass): void

Define o nome da classe do iterador de array que é usado por ArrayObject::getIterator().

Parâmetros

iteratorClass

O nome da classe do iterador de array a ser usado ao iterar sobre este objeto.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de ArrayObject::setIteratorClass()

<?php
// ArrayIterator Personalizado (herda de ArrayIterator)
class MyArrayIterator extends ArrayIterator {
// implementação personalizada
}

// Array de frutas disponíveis
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Define a classe do iterador para a nova
$fruitsArrayObject->setIteratorClass('MyArrayIterator');
print_r($fruitsArrayObject->getIterator());

?>

O exemplo acima produzirá:

MyArrayIterator Object
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
)


Ordena as entradas com uma função de comparação definida pelo usuário e mantém a associação de chaves

  • « ArrayObject::setIteratorClass
  • ArrayObject::uksort »
  • PHP Manual
  • ArrayObject
  • Ordena as entradas com uma função de comparação definida pelo usuário e mantém a associação de chaves

ArrayObject::uasort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::uasort — Ordena as entradas com uma função de comparação definida pelo usuário e mantém a associação de chaves

Descrição

public ArrayObject::uasort(callable $callback): true

Esta função ordena as entradas de forma que as chaves mantenham sua correlação com a entrada à qual estão associadas, usando uma função de comparação definida pelo usuário.

Isso é usado principalmente ao ordenar arrays associativos onde a ordem real dos elementos é significativa.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

callback

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de ArrayObject::uasort()

<?php
// Função de comparação
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}

// Array a ser ordenado
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
$arrayObject = new ArrayObject($array);
print_r($arrayObject);

// Ordena e imprime o array resultante
$arrayObject->uasort('cmp');
print_r($arrayObject);
?>

O exemplo acima produzirá:

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Veja Também

  • ArrayObject::asort() - Ordenar as entradas por valor
  • ArrayObject::ksort() - Ordena as entradas pela chave
  • ArrayObject::natsort() - Ordena as entradas usando um algoritmo de "ordem natural"
  • ArrayObject::natcasesort() - Ordena uma matriz usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas
  • ArrayObject::uksort() - Ordena as entradas pelas chaves usando uma função de comparação definida pelo usuário
  • uasort() - Ordena um array com uma função de comparação definida pelo usuário e mantém associações de índices


Ordena as entradas pelas chaves usando uma função de comparação definida pelo usuário

  • « ArrayObject::uasort
  • ArrayObject::unserialize »
  • PHP Manual
  • ArrayObject
  • Ordena as entradas pelas chaves usando uma função de comparação definida pelo usuário

ArrayObject::uksort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::uksort — Ordena as entradas pelas chaves usando uma função de comparação definida pelo usuário

Descrição

public ArrayObject::uksort(callable $callback): true

Esta função ordena as chaves das entradas usando uma função de comparação fornecida pelo usuário. A correlação chave-entrada será mantida.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Parâmetros

callback

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de ArrayObject::uksort()

<?php
function cmp($a, $b) {
$a = preg_replace('@^(a|an|the) @', '', $a);
$b = preg_replace('@^(a|an|the) @', '', $b);
return strcasecmp($a, $b);
}

$array = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);
$arrayObject = new ArrayObject($array);
$arrayObject->uksort('cmp');

foreach ($arrayObject as $key => $value) {
echo "$key: $value\n";
}
?>

O exemplo acima produzirá:

an apple: 3
a banana: 4
the Earth: 2
John: 1

Veja Também

  • ArrayObject::asort() - Ordenar as entradas por valor
  • ArrayObject::ksort() - Ordena as entradas pela chave
  • ArrayObject::natsort() - Ordena as entradas usando um algoritmo de "ordem natural"
  • ArrayObject::natcasesort() - Ordena uma matriz usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas
  • ArrayObject::uasort() - Ordena as entradas com uma função de comparação definida pelo usuário e mantém a associação de chaves
  • uksort() - Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.


Desserializa um ArrayObject

  • « ArrayObject::uksort
  • SplObserver »
  • PHP Manual
  • ArrayObject
  • Desserializa um ArrayObject

ArrayObject::unserialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayObject::unserialize — Desserializa um ArrayObject

Descrição

public ArrayObject::unserialize(string $data): void

Desserializa um ArrayObject serializado.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

O ArrayObject serializado.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • ArrayIterator::serialize() - Serializa
  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • Serializando Objetos


A interface SplObserver

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

A interface SplObserver é usada junto com SplSubject para implementar o padrão de design Observer.

Resumo da Interface

interface SplObserver {
/* Métodos */
public update(SplSubject $subject): void
}

Índice

  • SplObserver::update — Recebe atualização do sujeito


Recebe atualização do sujeito

  • « SplObserver
  • SplSubject »
  • PHP Manual
  • SplObserver
  • Recebe atualização do sujeito

SplObserver::update

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObserver::update — Recebe atualização do sujeito

Descrição

public SplObserver::update(SplSubject $subject): void

Este método é chamado quando qualquer SplSubject ao qual o observador está anexado chama SplSubject::notify().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

subject

O SplSubject notificando o observador de uma atualização.

Valor Retornado

Nenhum valor é retornado.


A interface SplSubject

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

A interface SplSubject é usada em conjunto com SplObserver para implementar o padrão de design Observer.

Resumo da Interface

interface SplSubject {
/* Métodos */
public attach(SplObserver $observer): void
public detach(SplObserver $observer): void
public notify(): void
}

Índice

  • SplSubject::attach — Anexa um SplObserver
  • SplSubject::detach — Desanexa um observador
  • SplSubject::notify — Notifica um observador


Anexa um SplObserver

  • « SplSubject
  • SplSubject::detach »
  • PHP Manual
  • SplSubject
  • Anexa um SplObserver

SplSubject::attach

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplSubject::attach — Anexa um SplObserver

Descrição

public SplSubject::attach(SplObserver $observer): void

Anexa um SplObserver para que ele possa ser notificado sobre atualizações.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

observer

O SplObserver para anexar.

Valor Retornado

Nenhum valor é retornado.


Desanexa um observador

  • « SplSubject::attach
  • SplSubject::notify »
  • PHP Manual
  • SplSubject
  • Desanexa um observador

SplSubject::detach

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplSubject::detach — Desanexa um observador

Descrição

public SplSubject::detach(SplObserver $observer): void

Desanexa um observador do assunto para não mais notificá-lo sobre atualizações.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

observer

O SplObserver para desanexar.

Valor Retornado

Nenhum valor é retornado.


Notifica um observador

  • « SplSubject::detach
  • Fluxos »
  • PHP Manual
  • SplSubject
  • Notifica um observador

SplSubject::notify

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplSubject::notify — Notifica um observador

Descrição

public SplSubject::notify(): void

Notifica todos os observadores anexados.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Fluxos

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Classes de Fluxo
  • Constantes pré-definidas
  • Filtros de Fluxo
  • Contextos de Fluxo
  • Erros de Fluxo
  • Exemplos
    • Exemplo de classe regsitradao como empacotador de fluxo
  • php_user_filter — A clase php_user_filter
    • php_user_filter::filter — Chamada na aplicação do filtro
    • php_user_filter::onClose — Chamado no fechamento do filtro
    • php_user_filter::onCreate — Chamado na criação do filtro
  • streamWrapper — A classe streamWrapper
    • streamWrapper::__construct — Constrói um novo empacotador de fluxo
    • streamWrapper::__destruct — Destrói um empacotador de fluxo existente
    • streamWrapper::dir_closedir — Fecha o manipulador de diretório
    • streamWrapper::dir_opendir — Abre um manipulador de diretório
    • streamWrapper::dir_readdir — Lê entrada do manipulador de diretório
    • streamWrapper::dir_rewinddir — Retrocede um manipulador de diretório
    • streamWrapper::mkdir — Cria um diretório
    • streamWrapper::rename — Renomeia um arquivo ou diretório
    • streamWrapper::rmdir — Remove um diretório
    • streamWrapper::stream_cast — Obtém o recurso subjacente
    • streamWrapper::stream_close — Fecha um recurso
    • streamWrapper::stream_eof — Teste para fim de arquivo em ponteiros
    • streamWrapper::stream_flush — Descarrega a saída
    • streamWrapper::stream_lock — Travamento de aviso para arquivos
    • streamWrapper::stream_metadata — Alterar metadados de fluxo
    • streamWrapper::stream_open — Abre arquivo ou URL
    • streamWrapper::stream_read — Lê dados do fluxo
    • streamWrapper::stream_seek — Pesquisa uma localização específica em um fluxo
    • streamWrapper::stream_set_option — Altera as opções do fluxo
    • streamWrapper::stream_stat — Obtém informação sobre um recurso de arquivo
    • streamWrapper::stream_tell — Obtém a posição atual de um fluxo
    • streamWrapper::stream_truncate — Trunca o fluxo
    • streamWrapper::stream_write — Escreve no fluxo
    • streamWrapper::unlink — Remove um arquivo
    • streamWrapper::url_stat — Obtém informação sobre um arquivo
  • Funções de Fluxo
    • stream_bucket_append — Anexa o bucket à brigada
    • stream_bucket_make_writeable — Retorna um objeto bucket da brigada para se operar sobre ele
    • stream_bucket_new — Cria um novo bucket para uso no fluxo atual
    • stream_bucket_prepend — Adiciona um bucket ao início da brigada
    • stream_context_create — Cria um contexto de fluxo
    • stream_context_get_default — Obtém o contexto padrão de fluxo
    • stream_context_get_options — Obtém opções para um fluxo/empacotador/contexto
    • stream_context_get_params — Obtém parâmetros de um contexto
    • stream_context_set_default — Define o contexto padrão do fluxo
    • stream_context_set_option — Define uma opção para um fluxo/empacotador/contexto
    • stream_context_set_options — Define opções no contexto especificado
    • stream_context_set_params — Define parâmetros para um fluxo/empacotador/contexto
    • stream_copy_to_stream — Copia dados de um fluxo para outro
    • stream_filter_append — Anexa um filtro a um fluxo
    • stream_filter_prepend — Anexa um filtro a um fluxo
    • stream_filter_register — Registra um filtro de fluxo definido pelo usuário
    • stream_filter_remove — Remove um filtro de um fluxo
    • stream_get_contents — Lê o restante de um fluxo em uma string
    • stream_get_filters — Obtém lista de filtros registrados
    • stream_get_line — Obtém uma linha do recurso do fluxo até um delimitador informado
    • stream_get_meta_data — Obtém cabeçalhos/metadados de ponteiros de arquivos/fluxos
    • stream_get_transports — Obtém lista de transportes socket registrados
    • stream_get_wrappers — Obtém lista de fluxos registrados
    • stream_is_local — Verifica se o fluxo é local
    • stream_isatty — Verifica se um fluxo é um TTY
    • stream_notification_callback — Uma função de chamada de retorno para o parâmetro de contexto de notification
    • stream_register_wrapper — Sinônimo de stream_wrapper_register
    • stream_resolve_include_path — Resolve o nome do arquivo em relação ao caminho de include
    • stream_select — Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos
    • stream_set_blocking — Definir modo de bloqueio/não-bloqueio em um fluxo
    • stream_set_chunk_size — Define o tamanho do pacote do fluxo
    • stream_set_read_buffer — Define o tamanho de buffer de leitura do stream
    • stream_set_timeout — Define o limite de tempo em um fluxo
    • stream_set_write_buffer — Define o tamanho do buffer de escrita do fluxo
    • stream_socket_accept — Aceita uma conexão em um socket criado por stream_socket_server
    • stream_socket_client — Abre conexão de socket de domínio Internet ou Unix
    • stream_socket_enable_crypto — Liga ou desliga criptografia em socket já conectado
    • stream_socket_get_name — Obtém o nome do socket local ou remoto
    • stream_socket_pair — Cria um par de fluxos de socket conectados e indistinguíveis
    • stream_socket_recvfrom — Recebe dados de um socket, conectado ou não
    • stream_socket_sendto — Envia uma mensagem a um socket, conectado ou não
    • stream_socket_server — Cria socket de servidor de domínio Internet ou Unix
    • stream_socket_shutdown — Fecha uma conexão full-duplex
    • stream_supports_lock — Informa se o fluxo suporta travamento
    • stream_wrapper_register — Registra um empacotador URL implementado como uma classe PHP
    • stream_wrapper_restore — Restaura um empacotador interno anteriormente desregistrado
    • stream_wrapper_unregister — Desregistra um empacotador URL


Introdução

Fluxos são o modo de se generalizar operações de arquivos, rede, compressão de dados e outras que compartilham um conjunto comum de funções e usos. Em sua definição mais simples, um fluxo é um objeto tipo resource que exibe comportamento de arquivo. Isto é, ele pode ser lido ou escrito de forma linear, e pode ser pesquisado com fseek() até uma localização arbitrária dentro do fluxo.

Um empacotador é um código adicional que mostra ao fluxo como lidar com protocolos/codificações específicas. Por exemplo, o empacotador http sabe como traduzir uma URL em uma requisição HTTP/1.0 de um arquivo em um servidor remoto. Existem vários empacotadores no PHP por padrão (consulte Protocolos e Wrappers suportados), e empactotadores adicionais, customizados, que podem ser incluídos tanto em um script PHP usando stream_wrapper_register(), ou diretamente de uma extensão. Como qualquer variedade de empacotadores pode ser adicionada ao PHP, não há limite definido do que pode ser feito com eles. Para acessar a lista de empacotadores registrados atualmente, use a função stream_get_wrappers().

Um fluxo é referenciado como: esquema://alvo

  • esquema(string) - O nome do empacotador a ser usado. Exemplos incluem: file, http, https, ftp, ftps, compress.zlib, compress.bz2 e php. Consulte Protocolos e Wrappers suportados para uma lista de empacotadores embutidos no PHP. Se nenhum empacotador for especificado, o padrão da função é usado (tipicamente file://).
  • alvo - Depende do empacotador em uso. Para fluxos relacionados a sistemas de arquivos é tipicamente um caminho e nome para o arquivo desejado. Para fluxos relacionados a rede é tipicamente um nome de host, frequentemente seguido por um caminho. Novamente, consulte Protocolos e Wrappers suportados para uma descrição de alvos para os fluxos pré-existentes.


Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Configurações em Execução
  • Classes de Fluxo


  • « Instalação
  • Classes de Fluxo »
  • PHP Manual
  • Instalação/Configuração
  • Configurações em Execução

Configurações em Execução

Esta extensão não possui diretivas de configuração definidas no php.ini.


Classes de Fluxo

Empacotadores criados pelo usuário podem ser registrados via stream_wrapper_register(), usando a definição de classe mostrada na página correspondente do manual.

A classe php_user_filter é predefinida e é uma classe base abstrata para uso com filtros definidos pelo usuário. Consulte a página do manual de stream_filter_register() para detalhes de implementação de filtros definidos pelo usuário.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Constante | Descrição
STREAM_FILTER_READ | Usado com stream_filter_append() e stream_filter_prepend() para indicar que o filtro especificado deve somente ser aplicado durante leitura
STREAM_FILTER_WRITE | Usado com stream_filter_append() e stream_filter_prepend() para indicar que o filtro especificado deve somente ser aplicado durante escrita
STREAM_FILTER_ALL | Esta constante é equivalente a STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON | Código de Retorno indicando que o filtro no espaço do usuário retornou buckets em $out.
PSFS_FEED_ME | Código de Retorno indicando que o filtro no espaço do usuário não retornou buckets em $out (i.e. No data available).
PSFS_ERR_FATAL | Código de Retorno indicando que o filtro no espaço do usuário encontrou um erro não recuperável (ex.: dados inválidos recebidos).
PSFS_FLAG_NORMAL | Leitura/escrita comuns.
PSFS_FLAG_FLUSH_INC | Uma descarga incremental.
PSFS_FLAG_FLUSH_CLOSE | Descarga final antes do fechamento.
STREAM_USE_PATH | Flag indicando se o fluxo usou o caminho de include.
STREAM_REPORT_ERRORS | Opção indicando se o empacotador é responsável por disparar erros usando trigger_error() durante abertura do fluxo. Se esta opção não for definida, não deve-se disparar nenhum erro.
STREAM_CLIENT_ASYNC_CONNECT | Abre o socket do cliente de forma assíncrona. Esta opção deve ser usada junto com a opção STREAM_CLIENT_CONNECT. Usada com stream_socket_client().
STREAM_CLIENT_CONNECT | Abre a conexão socket do cliente. Sockets do cliente devem sempre incluir esta opção. Usada com stream_socket_client().
STREAM_CLIENT_PERSISTENT | Socket do cliente aberta com stream_socket_client() deve permanecer persistente entre carregamentos de páginas.
STREAM_SERVER_BIND | Solicita a um fluxo criado com stream_socket_server() que se ligue ao alvo especificado. Sockets de servidor devem sempre incluir esta opção.
STREAM_SERVER_LISTEN | Solicita a um fluxo criado com stream_socket_server() e ligado usando a opção STREAM_SERVER_BIND que inicie a escuta ao socket. Transportes orientados a conexão (como o TCP) devem usar esta opção, caso contrário o socket do servidor não será habilitado. Usar esta opção em transportes sem conexão (como o UDP) é um erro.
STREAM_NOTIFY_RESOLVE | Um endereço remoto requerido para este fluxo foi resolvidoo, ou a resolução falhou. Consulte o parâmetro severity para uma indicação do ocorrido.
STREAM_NOTIFY_CONNECT | Uma conexão com um recurso externo foi estabalecida.
STREAM_NOTIFY_AUTH_REQUIRED | Autorização adicional é requerida para acessar o recurso especificado. Tipicamente emitido com o nível de severidade (severity) de STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | O tipo de mídia do recurso foi identificado, refira-se ao parâmetro message para uma descrição do tipo descoberto.
STREAM_NOTIFY_FILE_SIZE_IS | O tamanho do recurso foi identificado.
STREAM_NOTIFY_REDIRECTED | O recurso externo redirecionou o fluxo para uma localização alternativa. Refira-se ao parâmetro message.
STREAM_NOTIFY_PROGRESS | Indica o progresso atual da transferência do fluxo em bytes_transferred e possivelmente em bytes_max também.
STREAM_NOTIFY_COMPLETED | Não há mais dados disponíveis no fluxo.
STREAM_NOTIFY_FAILURE | Um erro genérico ocorreu no fluxo, consulte os parâmetros message e message_code para detalhes.
STREAM_NOTIFY_AUTH_RESULT | A autorização foi concluída (com ou sem sucesso).
STREAM_NOTIFY_SEVERITY_INFO | Notificação normal, não relacionada a erro.
STREAM_NOTIFY_SEVERITY_WARN | Condição de erro não crítica. O processamento pode continuar.
STREAM_NOTIFY_SEVERITY_ERR | Um erro crítico ocorreu. O processamento não pode continuar.
STREAM_IPPROTO_ICMP + | Fornece um socket ICMP.
STREAM_IPPROTO_IP + | Fornece um socket IP.
STREAM_IPPROTO_RAW + | Fornece um socket RAW.
STREAM_IPPROTO_TCP + | Fornece um socket TCP.
STREAM_IPPROTO_UDP + | Fornece um socket UDP.
STREAM_PF_INET + | Versão 4 de Protocolo de Internet (IPv4).
STREAM_PF_INET6 + | Versão 4 de Protocolo de Internet (IPv6).
STREAM_PF_UNIX + | Protocolos internos do sistema Unix.
STREAM_SOCK_DGRAM + | Fornece datagramas, que são mensagens sem conexão (UDP, por exemplo).
STREAM_SOCK_RAW + | Fornece um socket bruro, que dá acessoa a protocolos e interfaces internos da rede. Normalmente este tipo de socket está disponível somente ao usuário raiz (administrador).
STREAM_SOCK_RDM + | Fornece um socket RDM (mensagem entrege com confiabilidade).
STREAM_SOCK_SEQPACKET + | Fornece um socket de fluxo de pacotes sequenciados.
STREAM_SOCK_STREAM + | Fornece fluxos de bytes de duas mãos, sequenciados com um mecanismo de transmissão para dados fora-de-banda (TCP, por exemplo).
STREAM_SHUT_RD | Usado com stream_socket_shutdown() para desabilitar recepções adicionais.
STREAM_SHUT_WR | Usado com stream_socket_shutdown() para desabilitar transmissões adicionais.
STREAM_SHUT_RDWR | Usado com stream_socket_shutdown() para desabilitar recepções e transmissões adicionais.
STREAM_CAST_FOR_SELECT | Conversão de fluxo, para quando stream_select() estiver chamando stream_cast().
STREAM_CAST_AS_STREAM | Conversão de fluxo, quando stream_cast() for chamado de outra forma (veja acima).
STREAM_META_TOUCH | Usada com stream_metadata(), para especificar a chamada a touch().
STREAM_META_OWNER | Usada com stream_metadata(), para especificar a chamada a chown().
STREAM_META_OWNER_NAME | Usada com stream_metadata(), para especificar a chamada a chown().
STREAM_META_GROUP | Usada com stream_metadata(), para especificar a chamada a chgrp().
STREAM_META_GROUP_NAME | Usada com stream_metadata(), para especificar a chamada a chgrp().
STREAM_META_ACCESS | Usada com stream_metadata(), para especificar a chamada a chmod().
STREAM_BUFFER_NONE | Sem buffer.
STREAM_BUFFER_LINE | Com buffer de linha.
STREAM_BUFFER_FULL | Com buffer completo.

Nota: As constantes marcadas com + foram criadas para uso com stream_socket_pair(). Favor notar que algumas destas constantes podem não estar disponíveis no seu sistema.

Nota: As constantes STREAM_META_* foram projetadas para uso com stream_metadata().


Filtros de Fluxo

Um filtro é uma peça final de código que pode realizar operações em dados enquanto eles são lidos de ou escritos em um fluxo. Qualquer quantidade de filtros pode ser empilhada em um fluxo. Filtros personalizados podem ser definidos em um script PHP usando stream_filter_register() ou em uma extensão. Para acessar a lista de filtros atualmente registrados, use a função stream_get_filters().


Contextos de Fluxo

Um contexto é um conjunto de parâmetros e opções específicas do empacotador que modifica ou melhora o comportamento de um fluxo. Contextos são criados pela função stream_context_create() e podem ser passados à maioria das funções de criação de fluxos relacionados a sistemas de arquivos (ex.: fopen(), file(), file_get_contents(), etc.).

Opções podem ser especificadas ao chamar stream_context_create(), ou posteriormente usando stream_context_set_option(). Uma lista de opções específicas para empacotadores pode ser encontrada no capítulo Opções e parâmetros de contexto.

Parâmetros podem ser especificados para contextos usando-se a função stream_context_set_params().


Erros de Fluxo

Assim como qualquer função relacionada a arquivo ou socket, uma operação em um fluxo pode falhar por uma variedade de razões comuns (ex.: incapacidade de se conectar a um servidor remoto, arquivo não encontrado, etc.). Uma chamada relacionada a fluxo também pode falhar devido ao fluxo não estar registrado no sistema. Consulte o array retornado por stream_get_wrappers() para uma lista de fluxos suportados pela instalação do PHP. Como a maioria das funções internas do PHP, se uma falha ocorrer um mensagem de aviso E_WARNING será gerada descrevendo a natureza do erro.


Exemplos

Índice

  • Exemplo de classe regsitradao como empacotador de fluxo

Exemplo #1 Usando file_get_contents() para obter dados de fontes múltiplas

<?php
/* Lê o arquivo local do diretório /home/bar */
$arquivolocal = file_get_contents("/home/bar/foo.txt");

/* Idêntico ao exemplo acima, porém nomeando explicitamente o esquema FILE */
$arquivolocal = file_get_contents("file:///home/bar/foo.txt");

/* Lê o arquivo remoto de www.example.com usando HTTP */
$arquivohttp = file_get_contents("http://www.example.com/foo.txt");

/* Lê o arquivo remoto de www.example.com usando HTTPS */
$arquivohttps = file_get_contents("https://www.example.com/foo.txt");

/* Lê o arquivo remoto de ftp.example.com usando FTP */
$arquivoftp = file_get_contents("ftp://usuario:senha@ftp.example.com/foo.txt");

/* Lê o arquivo remoto de ftp.example.com usando FTPS */
$arquivoftps = file_get_contents("ftps://usuario:senha@ftp.example.com/foo.txt");
?>

Exemplo #2 Realizando uma requisição POST para um servidor https

<?php
/* Envia requisição POST para https://secure.example.com/form_action.php
* Inclui elementos de formulário com nomes "foo" e "bar" com valores arbitrários
*/

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Valor para Foo") . "&bar=" . urlencode("Valor para Bar");

fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");
fwrite($sock, "Host: secure.example.com\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, $data);

$cabecalhos = "";
while ($str = trim(fgets($sock, 4096)))
$cabecalhos .= "$str\n";

echo "\n";

$corpo = "";
while (!feof($sock))
$corpo .= fgets($sock, 4096);

fclose($sock);
?>

Exemplo #3 Escrevendo dados em um arquivo compactado

<?php
/* Cria um arquivo compactado contendo uma string qualquer
* O arquivo pode ser lido usando o fluxo compress.zlib stream ou simplesmente
* descompactado na linha de comando usando 'gzip -d foo-bar.txt.gz'
*/
$fp = fopen("compress.zlib://foo-bar.txt.gz", "wb");
if (!$fp) die("Não foi possível criar o arquivo.");

fwrite($fp, "Isto é um teste.\n");

fclose($fp);
?>


Exemplo de classe regsitradao como empacotador de fluxo

O exemplo abaixo implementa o manipulador de protocolo var:// que permite acesso de leitura/escrita a uma variável global usando funções padrão de fluxo de sistemas de arquivos como fread(). O protocolo var:// implementado abaixo, fornecido pela URL "var://foo" irá ler/escrever dados de/para $GLOBALS["foo"].

Exemplo #1 Um Fluxo para ler/escrever variáveis globais

<?php

class FluxoDeVariavel {
var $posicao;
var $nomevar;

function abre_fluxo($caminho, $modo, $opcoes, &$caminho_aberto)
{
$url = parse_url($caminho);
$this->nomevar = $url["host"];
$this->posicao = 0;

return true;
}

function le_fluxo($contagem)
{
$ret = substr($GLOBALS[$this->nomevar], $this->posicao, $contagem);
$this->posicao += strlen($ret);
return $ret;
}

function escreve_fluxo($dados)
{
$esquerda = substr($GLOBALS[$this->nomevar], 0, $this->posicao);
$direita = substr($GLOBALS[$this->nomevar], $this->posicao + strlen($dados));
$GLOBALS[$this->nomevar] = $esquerda . $dados . $direita;
$this->posicao += strlen($dados);
return strlen($dados);
}

function posicao_fluxo()
{
return $this->posicao;
}

function final_fluxo()
{
return $this->posicao >= strlen($GLOBALS[$this->nomevar]);
}

function pesquisa_fluxo($deslocamento, $onde)
{
switch ($onde) {
case SEEK_SET:
if ($deslocamento < strlen($GLOBALS[$this->nomevar]) && $deslocamento >= 0) {
$this->posicao = $deslocamento;
return true;
} else {
return false;
}
break;

case SEEK_CUR:
if ($deslocamento >= 0) {
$this->posicao += $deslocamento;
return true;
} else {
return false;
}
break;

case SEEK_END:
if (strlen($GLOBALS[$this->nomevar]) + $deslocamento >= 0) {
$this->posicao = strlen($GLOBALS[$this->nomevar]) + $deslocamento;
return true;
} else {
return false;
}
break;

default:
return false;
}
}

function metadados_fluxo($caminho, $opcao, $var)
{
if($opcao == STREAM_META_TOUCH) {
$url = parse_url($caminho);
$nomevar = $url["host"];
if(!isset($GLOBALS[$nomevar])) {
$GLOBALS[$nomevar] = '';
}
return true;
}
return false;
}
}

stream_wrapper_register("var", "FluxoDeVariavel")
or die("Falha ao registrar protocolo");

$minhavar = "";

$fp = fopen("var://minhavar", "r+");

fwrite($fp, "linha1\n");
fwrite($fp, "linha2\n");
fwrite($fp, "linha3\n");

rewind($fp);
while (!feof($fp)) {
echo fgets($fp);
}
fclose($fp);
var_dump($minhavar);

?>

O exemplo acima produzirá:

linha1
linha2
linha3
string(18) "linha1
linha2
linha3
"


A clase php_user_filter

(PHP 5, PHP 7, PHP 8)

Introdução

Filhas desta classe são passadas à função stream_filter_register(). Note que o método __construct não é chamado; em vez disso, php_user_filter::onCreate() deve ser usado para inicialização.

Resumo da classe

class php_user_filter {
/* Propriedades */
public string $filtername = "";
public mixed $params = "";
public ?resource $stream = null;
/* Métodos */
public filter(
resource $in,
resource $out,
int &$consumed,
bool $closing
): int
public onClose(): void
public onCreate(): bool
}

Propriedades

filtername

Nome do filtro registrado por stream_filter_append().

params

stream

Índice

  • php_user_filter::filter — Chamada na aplicação do filtro
  • php_user_filter::onClose — Chamado no fechamento do filtro
  • php_user_filter::onCreate — Chamado na criação do filtro


Chamada na aplicação do filtro

  • « php_user_filter
  • php_user_filter::onClose »
  • PHP Manual
  • php_user_filter
  • Chamada na aplicação do filtro

php_user_filter::filter

(PHP 5, PHP 7, PHP 8)

php_user_filter::filter — Chamada na aplicação do filtro

Descrição

public php_user_filter::filter(
resource $in,
resource $out,
int &$consumed,
bool $closing
): int

Este método é chamado toda vez que dados são lidos ou escritos no fluxo anexado (como em fread() ou fwrite()).

Parâmetros

in

O parâmetro in é um recurso que aponta para uma brigada de bucket que contém um ou mais objetos bucket contendo os dados a serem filtrados.

out

O parâmetro out é um recurso que aponta para uma segunda brigada de bucket na qual os buckets modificados devem ser colocados.

consumed

O parâmetro consumed, que deve ser sempre declarado por referência, deve ser incrementado com o comprimento dos dados que o filtro lê e altera. Na maior parte dos casos isto significa que consumed será incrementado em $bucket->datalen para cada $bucket.

closing

Se o fluxo está no processo de fechamento (e portanto este é a última passagem pela cadeia de filtros), o parâmetro closing será definido para true.

Valor Retornado

O método filter() deve retornar um dos três valores quando concluído.

Valor de Retorno | Significado
PSFS_PASS_ON | Filtro processado com sucesso com dados disponíveis na brigada de bucketout.
PSFS_FEED_ME | Filtro processado com sucesso, porém nenhum dado estava disponível para retorno Mais dados são requeridos do fluxo ou do filtro anterior.
PSFS_ERR_FATAL (padrão) | O filtro encontrou um erro irrecuperável e não pode continuar.


Chamado no fechamento do filtro

  • « php_user_filter::filter
  • php_user_filter::onCreate »
  • PHP Manual
  • php_user_filter
  • Chamado no fechamento do filtro

php_user_filter::onClose

(PHP 5, PHP 7, PHP 8)

php_user_filter::onClose — Chamado no fechamento do filtro

Descrição

public php_user_filter::onClose(): void

Este método é chamado no fechamento do filtro (tipicamente, também é o fechamento do fluxo), e é executado depois que o médoto de flush é chamado. Se quaisquer recursos foram alocados ou inicializados durante onCreate() este seria o momento para destrui-los ou descartá-los.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor de retorno é ignorado.


Chamado na criação do filtro

  • « php_user_filter::onClose
  • streamWrapper »
  • PHP Manual
  • php_user_filter
  • Chamado na criação do filtro

php_user_filter::onCreate

(PHP 5, PHP 7, PHP 8)

php_user_filter::onCreate — Chamado na criação do filtro

Descrição

public php_user_filter::onCreate(): bool

Este método é chamado durante a instanciação do objeto da classe do filtro. Se o filtro aloca ou inicializa quaisquer outros recursos (como em um buffer), este é o local a se fazê-lo.

Quando o filtro é instanciado pela primeira vez, e filtro->onCreate() é chamado, um número de propriedades estará disponível como mostrado na tabela abaixo.

Propriedade | Conteúdo
filtro->filtername | Uma string contendo o nome com o qual o filtro foi instanciado. Filtros podem ser registrados sob múltiplos nomes ou com caracteres coringas. Use esta propriedade para deverminar que nome foi usado.
filtro->params | O conteúdo de params parameter passado para stream_filter_append() ou stream_filter_prepend().
filtro->stream | O recurso de fluxo sendo filtrado. Possivelmente disponível apenas durante chamadas a filter() quando o parâmetro closing estiver definido para false.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A implementação deste método deve retornar false em caso de falha, ou true em caso de sucesso.


A classe streamWrapper

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

Introdução

Permite que o usuário implemente seus próprios fluxos e manipuladores de protocolo para uso com todas as outras funções de sistema de arquivos (como fopen(), fread() etc.).

Nota:

Esta NÃO É uma classe verdadeira, apenas um protótipo de como uma classe que define seu próprio protocolo deve ser.

Nota:

Implementar os métodos de forma diferente da descrita aqui pode levar a comportamentos indefinidos.

Uma instância desta classe é inicializada assim que uma função de fluxo tenta acessar o protocolo ao qual está associada.

Resumo da classe

class streamWrapper {
/* Propriedades */
public resource $context;
/* Métodos */
public __construct()
public dir_closedir(): bool
public dir_opendir(string $path, int $options): bool
public dir_readdir(): string
public dir_rewinddir(): bool
public mkdir(string $path, int $mode, int $options): bool
public rename(string $path_from, string $path_to): bool
public rmdir(string $path, int $options): bool
public stream_cast(int $cast_as): resource
public stream_close(): void
public stream_eof(): bool
public stream_flush(): bool
public stream_lock(int $operation): bool
public stream_metadata(string $path, int $option, mixed $value): bool
public stream_open(
string $path,
string $mode,
int $options,
?string &$opened_path
): bool
public stream_read(int $count): string|false
public stream_seek(int $offset, int $whence = SEEK_SET): bool
public stream_set_option(int $option, int $arg1, int $arg2): bool
public stream_stat(): array|false
public stream_tell(): int
public stream_truncate(int $new_size): bool
public stream_write(string $data): int
public unlink(string $path): bool
public url_stat(string $path, int $flags): array|false
public __destruct()
}

Propriedades

resource context

O contexto atual, ou null se nenhum contexto foi passado à função chamadora.

Use a função stream_context_get_options() para analisar o contexto.

Nota:

Esta propriedade deve ser pública para que o PHP possa preenchê-la com o recurso de contexto real.

Veja Também

  • Exemplo de classe regsitradao como empacotador de fluxo
  • stream_wrapper_register()
  • stream_wrapper_unregister()
  • stream_wrapper_restore()

Índice

  • streamWrapper::__construct — Constrói um novo empacotador de fluxo
  • streamWrapper::__destruct — Destrói um empacotador de fluxo existente
  • streamWrapper::dir_closedir — Fecha o manipulador de diretório
  • streamWrapper::dir_opendir — Abre um manipulador de diretório
  • streamWrapper::dir_readdir — Lê entrada do manipulador de diretório
  • streamWrapper::dir_rewinddir — Retrocede um manipulador de diretório
  • streamWrapper::mkdir — Cria um diretório
  • streamWrapper::rename — Renomeia um arquivo ou diretório
  • streamWrapper::rmdir — Remove um diretório
  • streamWrapper::stream_cast — Obtém o recurso subjacente
  • streamWrapper::stream_close — Fecha um recurso
  • streamWrapper::stream_eof — Teste para fim de arquivo em ponteiros
  • streamWrapper::stream_flush — Descarrega a saída
  • streamWrapper::stream_lock — Travamento de aviso para arquivos
  • streamWrapper::stream_metadata — Alterar metadados de fluxo
  • streamWrapper::stream_open — Abre arquivo ou URL
  • streamWrapper::stream_read — Lê dados do fluxo
  • streamWrapper::stream_seek — Pesquisa uma localização específica em um fluxo
  • streamWrapper::stream_set_option — Altera as opções do fluxo
  • streamWrapper::stream_stat — Obtém informação sobre um recurso de arquivo
  • streamWrapper::stream_tell — Obtém a posição atual de um fluxo
  • streamWrapper::stream_truncate — Trunca o fluxo
  • streamWrapper::stream_write — Escreve no fluxo
  • streamWrapper::unlink — Remove um arquivo
  • streamWrapper::url_stat — Obtém informação sobre um arquivo


Constrói um novo empacotador de fluxo

  • « streamWrapper
  • streamWrapper::__destruct »
  • PHP Manual
  • streamWrapper
  • Constrói um novo empacotador de fluxo

streamWrapper::__construct

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::__construct — Constrói um novo empacotador de fluxo

Descrição

public streamWrapper::__construct()

Chamado na abertura do empacotador de fluxo, logo antes de streamWrapper::stream_open().

Parâmetros

Esta função não possui parâmetros.


Destrói um empacotador de fluxo existente

  • « streamWrapper::__construct
  • streamWrapper::dir_closedir »
  • PHP Manual
  • streamWrapper
  • Destrói um empacotador de fluxo existente

streamWrapper::__destruct

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::__destruct — Destrói um empacotador de fluxo existente

Descrição

public streamWrapper::__destruct()

Chamado no fechamento do empacotador de fluxo, logo antes de streamWrapper::stream_flush().

Parâmetros

Esta função não possui parâmetros.


Fecha o manipulador de diretório

  • « streamWrapper::__destruct
  • streamWrapper::dir_opendir »
  • PHP Manual
  • streamWrapper
  • Fecha o manipulador de diretório

streamWrapper::dir_closedir

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::dir_closedir — Fecha o manipulador de diretório

Descrição

public streamWrapper::dir_closedir(): bool

Este método é chamado em resposta a closedir().

Quaisquer recursos que estavam travados ou alocados durante abertura e uso do fluxo de diretório devem ser liberados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • closedir() - Fecha o manipulador do diretório
  • streamWrapper::dir_opendir() - Abre um manipulador de diretório


Abre um manipulador de diretório

  • « streamWrapper::dir_closedir
  • streamWrapper::dir_readdir »
  • PHP Manual
  • streamWrapper
  • Abre um manipulador de diretório

streamWrapper::dir_opendir

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::dir_opendir — Abre um manipulador de diretório

Descrição

public streamWrapper::dir_opendir(string $path, int $options): bool

Este método é chamado em resposta a opendir().

Parâmetros

path

Especifica a URL que foi passada a opendir().

Nota:

A URL pode ser quebrada em partes com parse_url().

options

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • opendir() - Abre um manipulador de diretório
  • streamWrapper::dir_closedir() - Fecha o manipulador de diretório
  • parse_url() - Parse a URL and return its components


Lê entrada do manipulador de diretório

  • « streamWrapper::dir_opendir
  • streamWrapper::dir_rewinddir »
  • PHP Manual
  • streamWrapper
  • Lê entrada do manipulador de diretório

streamWrapper::dir_readdir

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::dir_readdir — Lê entrada do manipulador de diretório

Descrição

public streamWrapper::dir_readdir(): string

Este método é chamado em resposta a readdir().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Deve retornar uma string representando a próxima entrada, ou false se não existir uma próxima.

Nota:

O valor de retorno será convertido para string.

Erros/Exceções

Emite um E_WARNING se a chamada a este método falhar (ou seja, não implementado).

Exemplos

Exemplo #1 Listando arquivos de arquivadores tar

<?php
class streamWrapper {
protected $fp;

public function dir_opendir($path, $options) {
$url = parse_url($path);

$path = $url["host"] . $url["path"];

if (!is_readable($path)) {
trigger_error("$path não pode ser lido", E_USER_NOTICE);
return false;
}
if (!is_file($path)) {
trigger_error("$path não é um arquivo", E_USER_NOTICE);
return false;
}

$this->fp = fopen($path, "rb");
return true;
}

public function dir_readdir() {
// Extrai o cabeçalho desta entrada
$header = fread($this->fp, 512);
$data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1filetype/a100link/a100linkedfile", $header);

// Tira espaços do arquivo e do tamanho
$filename = trim($data["filename"]);

// Nada? Estamos no final do arquivo
if (!$filename) {
return false;
}

$octal_bytes = trim($data["size"]);
// Tamanho do arquivo é definido em octal
$bytes = octdec($octal_bytes);

// tar arredonda tamanhos em múltiplos de 512 bytes (preenchidos com zero)
$rest = $bytes % 512;
if ($rest > 0) {
$bytes += 512 - $rest;
}

// Pesquisa o arquivo
fseek($this->fp, $bytes, SEEK_CUR);

return $filename;
}

public function dir_closedir() {
return fclose($this->fp);
}

public function dir_rewinddir() {
return fseek($this->fp, 0, SEEK_SET);
}
}

stream_wrapper_register("tar", "streamWrapper");
$handle = opendir("tar://example.tar");
while (false !== ($file = readdir($handle))) {
var_dump($file);
}

echo "Retrocedendo..\n";
rewind($handle);
var_dump(readdir($handle));

closedir($handle);
?>

O exemplo acima produzirá algo semelhante a:

string(13) "construct.xml"
string(16) "dir-closedir.xml"
string(15) "dir-opendir.xml"
string(15) "dir-readdir.xml"
string(17) "dir-rewinddir.xml"
string(9) "mkdir.xml"
string(10) "rename.xml"
string(9) "rmdir.xml"
string(15) "stream-cast.xml"
string(16) "stream-close.xml"
string(14) "stream-eof.xml"
string(16) "stream-flush.xml"
string(15) "stream-lock.xml"
string(15) "stream-open.xml"
string(15) "stream-read.xml"
string(15) "stream-seek.xml"
string(21) "stream-set-option.xml"
string(15) "stream-stat.xml"
string(15) "stream-tell.xml"
string(16) "stream-write.xml"
string(10) "unlink.xml"
string(12) "url-stat.xml"
Retrocedendo..
string(13) "construct.xml"

Veja Também

  • readdir() - Lê entrada do manipulador do diretório


Retrocede um manipulador de diretório

  • « streamWrapper::dir_readdir
  • streamWrapper::mkdir »
  • PHP Manual
  • streamWrapper
  • Retrocede um manipulador de diretório

streamWrapper::dir_rewinddir

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::dir_rewinddir — Retrocede um manipulador de diretório

Descrição

public streamWrapper::dir_rewinddir(): bool

Este método é chamado em resposta a rewinddir().

Deve redefinir a saída gerada por streamWrapper::dir_readdir(). Isto é, a próxima chamada a streamWrapper::dir_readdir() deve retornar a primeira entrada na localização retornada por streamWrapper::dir_opendir().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • rewinddir() - Retroceder o manipulador de diretório
  • streamWrapper::dir_readdir() - Lê entrada do manipulador de diretório


Cria um diretório

  • « streamWrapper::dir_rewinddir
  • streamWrapper::rename »
  • PHP Manual
  • streamWrapper
  • Cria um diretório

streamWrapper::mkdir

(PHP 5, PHP 7, PHP 8)

streamWrapper::mkdir — Cria um diretório

Descrição

public streamWrapper::mkdir(string $path, int $mode, int $options): bool

Este método é chamado em resposta a mkdir().

Nota:

Para que sejam retornadas mensagens de erro apropriadas, este método não deve ser definido se o empacotador não suporta criação de diretórios.

Parâmetros

path

Diretório a ser criado.

mode

O valor passado à função mkdir().

options

Uma máscara de bits convertida em valores, como STREAM_MKDIR_RECURSIVE.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um E_WARNING se a chamada a este método falhar (ou seja, não implementado).

Notas

Nota:

A propriedade streamWrapper::$context será atualizada se um contexto válido for passado para a função invocadora.

Veja Também

  • mkdir() - Cria um diretório
  • streamwrapper::rmdir() - Remove um diretório


Renomeia um arquivo ou diretório

  • « streamWrapper::mkdir
  • streamWrapper::rmdir »
  • PHP Manual
  • streamWrapper
  • Renomeia um arquivo ou diretório

streamWrapper::rename

(PHP 5, PHP 7, PHP 8)

streamWrapper::rename — Renomeia um arquivo ou diretório

Descrição

public streamWrapper::rename(string $path_from, string $path_to): bool

Este método é chamado em resposta a rename().

Tenta renomear path_from para path_to

Nota:

Para que sejam retornadas mensagens de erro apropriadas, este método não deve ser definido se o empacotador não suporta renomear arquivos.

Parâmetros

path_from

A URL do arquivo atual.

path_to

A URL para a qual path_from deve ser renomeada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um E_WARNING se a chamada a este método falhar (ou seja, não implementado).

Notas

Nota:

A propriedade streamWrapper::$context será atualizada se um contexto válido for passado para a função invocadora.

Veja Também

  • rename() - Renomeia um arquivo ou diretório


Remove um diretório

  • « streamWrapper::rename
  • streamWrapper::stream_cast »
  • PHP Manual
  • streamWrapper
  • Remove um diretório

streamWrapper::rmdir

(PHP 5, PHP 7, PHP 8)

streamWrapper::rmdir — Remove um diretório

Descrição

public streamWrapper::rmdir(string $path, int $options): bool

Este método é chamado em resposta a rmdir().

Nota:

Para que sejam retornadas mensagens de erro apropriadas, este método não deve ser definido se o empacotador não suporta remoção de diretórios.

Parâmetros

path

URL do diretório a ser removido.

options

Uma máscara de bits convertida em valores, como STREAM_MKDIR_RECURSIVE.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um E_WARNING se a chamada a este método falhar (ou seja, não implementado).

Notas

Nota:

A propriedade streamWrapper::$context será atualizada se um contexto válido for passado para a função invocadora.

Veja Também

  • rmdir() - Remove um diretório
  • streamwrapper::mkdir() - Cria um diretório
  • streamwrapper::unlink() - Remove um arquivo


Obtém o recurso subjacente

  • « streamWrapper::rmdir
  • streamWrapper::stream_close »
  • PHP Manual
  • streamWrapper
  • Obtém o recurso subjacente

streamWrapper::stream_cast

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

streamWrapper::stream_cast — Obtém o recurso subjacente

Descrição

public streamWrapper::stream_cast(int $cast_as): resource

Este método é chamado em resposta a stream_select().

Parâmetros

cast_as

Pode ser STREAM_CAST_FOR_SELECT quando stream_select() estiver chamando stream_cast() ou STREAM_CAST_AS_STREAM quando stream_cast() for chamado para outros usos.

Valor Retornado

Deve retornar o recurso de fluxo subjacente usado pelo empacotador, ou false.

Veja Também

  • stream_select() - Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos


Fecha um recurso

  • « streamWrapper::stream_cast
  • streamWrapper::stream_eof »
  • PHP Manual
  • streamWrapper
  • Fecha um recurso

streamWrapper::stream_close

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_close — Fecha um recurso

Descrição

public streamWrapper::stream_close(): void

Este método é chamado em resposta a fclose().

Todos os recursos que estavam travados ou alocados pelo empacotador devem ser liberados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • fclose() - Fecha um ponteiro de arquivo aberto
  • streamWrapper::dir_closedir() - Fecha o manipulador de diretório


Teste para fim de arquivo em ponteiros

  • « streamWrapper::stream_close
  • streamWrapper::stream_flush »
  • PHP Manual
  • streamWrapper
  • Teste para fim de arquivo em ponteiros

streamWrapper::stream_eof

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_eof — Teste para fim de arquivo em ponteiros

Descrição

public streamWrapper::stream_eof(): bool

Este método é chamado em resposta a feof().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Deve retornar true se a posição de leitura/escrita estiver no final do fluxo e se não houver mais dados disponíveis para leitura, ou false caso contrário.

Notas

Aviso

Ao ler todo o arquivo (por exemplo, com
file_get_contents()), o PHP irá chamar
streamWrapper::stream_read() seguido por
streamWrapper::stream_eof() em um loop mas enquanto
streamWrapper::stream_read() retornar uma
string não vazia, o valor de retorno de
streamWrapper::stream_eof() é ignorado.

Veja Também

  • feof() - Testa pelo fim-de-arquivo em um ponteiro de arquivo


Descarrega a saída

  • « streamWrapper::stream_eof
  • streamWrapper::stream_lock »
  • PHP Manual
  • streamWrapper
  • Descarrega a saída

streamWrapper::stream_flush

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_flush — Descarrega a saída

Descrição

public streamWrapper::stream_flush(): bool

Este método é chamado em resposta a fflush() e quando o fluxo está sendo fechado enquanto dados não descarregados foram anteriormente escritos nele.

Se houver dados em cache no fluxo porém ainda não armazenados, este é o momento de armazená-los.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Deve retornar true se os dados em cache foram armazenados com sucesso (ou se não havia dados para armazenar), or false se os dados não puderam ser armazenados.

Notas

Nota:

Se não implementado, false é assumido como valor de retorno.

Veja Também

  • fflush() - Força a liberação do buffer para um arquivo


Travamento de aviso para arquivos

  • « streamWrapper::stream_flush
  • streamWrapper::stream_metadata »
  • PHP Manual
  • streamWrapper
  • Travamento de aviso para arquivos

streamWrapper::stream_lock

(PHP 5, PHP 7, PHP 8)

streamWrapper::stream_lock — Travamento de aviso para arquivos

Descrição

public streamWrapper::stream_lock(int $operation): bool

Este método é chamado em resposta a flock(), em file_put_contents() (quando flags contiver LOCK_EX), em stream_set_blocking() e no fechamento do fluxo (LOCK_UN).

Parâmetros

operation

operation pode ser um dos seguintes:

  • LOCK_SH para obter uma trava compartilhada (leitura).
  • LOCK_EX para obter uma trava exclusiva (escrita).
  • LOCK_UN para liberar uma trava (compartilhada ou exclusiva).
  • LOCK_NB se não for desejado que flock() bloqueie durante a trava. (não suportado no Windows)

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um aviso E_WARNING se a chamada a este método falhar (ex.: não implementado).

Veja Também

  • stream_set_blocking() - Definir modo de bloqueio/não-bloqueio em um fluxo
  • flock() - Travamento consultivo portável de arquivo


Alterar metadados de fluxo

  • « streamWrapper::stream_lock
  • streamWrapper::stream_open »
  • PHP Manual
  • streamWrapper
  • Alterar metadados de fluxo

streamWrapper::stream_metadata

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

streamWrapper::stream_metadata — Alterar metadados de fluxo

Descrição

public streamWrapper::stream_metadata(string $path, int $option, mixed $value): bool

Este método é chamado para definir metadados no fluxo. É chamado quando uma das funções a seguir é chamada em uma URL de fluxo:

  • touch()
  • chmod()
  • chown()
  • chgrp()
Favor notar que algumas destas operações podem não estar disponíveis no sistema.

Parâmetros

path

O caminho ou URL de arquivo para configurar os metadados. Note que no caso de uma URL, deve haver um :// delimitando-a. Outras formas de URL não são suportadas.

option

Uma das opções:

  • STREAM_META_TOUCH (método foi chamado em resposta a touch())
  • STREAM_META_OWNER_NAME (método foi chamado em resposta a chown() com parâmetro string)
  • STREAM_META_OWNER (método foi chamado em resposta a chown())
  • STREAM_META_GROUP_NAME (método foi chamado em resposta a chgrp())
  • STREAM_META_GROUP (método foi chamado em resposta a chgrp())
  • STREAM_META_ACCESS (método foi chamado em resposta a chmod())

value

Se a opção for option

  • STREAM_META_TOUCH: Array consistindo de dois argumentos da função touch().
  • STREAM_META_OWNER_NAME ou STREAM_META_GROUP_NAME: O nome do usuário/grupo proprietário, como uma string.
  • STREAM_META_OWNER ou STREAM_META_GROUP: O valor do usuário/grupo proprietário, como um int.
  • STREAM_META_ACCESS: O argumento de chmod(), como int.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Se a opção (option) não estiver implementada, false deve ser retornado.

Veja Também

  • touch() - Define horário de acesso e de modificação de arquivo
  • chmod() - Modifica as permissões do arquivo
  • chown() - Modifica o proprietário do arquivo
  • chgrp() - Altera o grupo do arquivo


Abre arquivo ou URL

  • « streamWrapper::stream_metadata
  • streamWrapper::stream_read »
  • PHP Manual
  • streamWrapper
  • Abre arquivo ou URL

streamWrapper::stream_open

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_open — Abre arquivo ou URL

Descrição

public streamWrapper::stream_open(
string $path,
string $mode,
int $options,
?string &$opened_path
): bool

Este método é chamado imediatamente após o empacotador ser inicializado (por exemplo por fopen() e file_get_contents()).

Parâmetros

path

Especifica a URL que foi passada à função original.

Nota:

A URL pode ser quebrada em partes com parse_url(). Note que apenas URLs delimitadas por :// são suportadas. : e :/ são delimitadores tecnicamente válidos, porém não suportados.

mode

O modo usado para abrir o arquivo, como detalhado para fopen().

Nota:

Importante lembrar de verificar se o parâmetro mode é válido para o caminho (path) requisitado.

options

Contém opções adicionais definidas pela API de fluxos. Pode conter uma ou mais das opcções a seguir somadas (com a operação OR).

Opção | Descrição
STREAM_USE_PATH | Se o caminho path for relativo, a pesquisa pelo recurso utilizará include_path.
STREAM_REPORT_ERRORS | Se esta opção estiver definida, o programador é responsável por emitir erros usando trigger_error() durante abertura do fluxo. Se não estiver definida, o programador não deve emitir erros.

opened_path

Se o caminho path for aberto com sucesso, e STREAM_USE_PATH estiver definida em options, opened_path deve ser definida para o caminho completo do arquivo/recurso que foi realmente aberto.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um E_WARNING se a chamada a este método falhar (ou seja, não implementado).

Notas

Nota:

A propriedade streamWrapper::$context será atualizada se um contexto válido for passado para a função invocadora.

Veja Também

  • fopen() - Abre um arquivo ou URL
  • parse_url() - Parse a URL and return its components


Lê dados do fluxo

  • « streamWrapper::stream_open
  • streamWrapper::stream_seek »
  • PHP Manual
  • streamWrapper
  • Lê dados do fluxo

streamWrapper::stream_read

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_read — Lê dados do fluxo

Descrição

public streamWrapper::stream_read(int $count): string|false

Este método é chamado em resposta a fread() e fgets().

Nota:

Lembre-se de atualizar a posição de leitura/escrita do fluxo (com o número de bytes lidos com sucesso).

Parâmetros

count

Quantos bytes de dados da posição atual devem ser retornados.

Valor Retornado

Se houver menos bytes disponíveis que count, devem ser retornados quantos estiverem disponíveis. Se não houver mais dados, uma string vazia deve ser retornada. Para sinalizar que a leitura falhou, false deve ser retornado.

Erros/Exceções

Emite um E_WARNING se a chamada a este método falhar (ou seja, não implementado).

Nota:

Se o valor de retorno for maior que count, um aviso E_WARNING será emitido, e os dados excedentes serão perdidos.

Notas

Nota:

streamWrapper::stream_eof() é chamado diretamente após a chamada a streamWrapper::stream_read() para verificar se EOF foi alcançado. Se não implementado, EOF é assumido.

Aviso

Ao ler todo o arquivo (por exemplo, com
file_get_contents()), o PHP irá chamar
streamWrapper::stream_read() seguido por
streamWrapper::stream_eof() em um loop, mas enquanto
streamWrapper::stream_read() retornar uma
string não vazia, o valor de retorno de
streamWrapper::stream_eof() será ignorado.

Veja Também

  • fread() - Leitura de arquivo segura para binário
  • fgets() - Lê uma linha de um ponteiro de arquivo


Pesquisa uma localização específica em um fluxo

  • « streamWrapper::stream_read
  • streamWrapper::stream_set_option »
  • PHP Manual
  • streamWrapper
  • Pesquisa uma localização específica em um fluxo

streamWrapper::stream_seek

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_seek — Pesquisa uma localização específica em um fluxo

Descrição

public streamWrapper::stream_seek(int $offset, int $whence = SEEK_SET): bool

Este método é chamado em resposta a fseek().

A posição de leitura/escrita do fluxo deve ser atualizada de acordo com os parâmetros offset e whence.

Parâmetros

offset

O deslocamento no fluxo a pesquisar.

whence

Valores posssíveis:

  • SEEK_SET - Definir a posição igual ao número de bytes em offset.
  • SEEK_CUR - Definir a poisção igual à localização atual mais offset.
  • SEEK_END - Definir a poisção do fim do arquivo mais offset.

Nota: A implementação atual nunca define o parâmetro whence para SEEK_CUR; em vez disso, tais pesquisas são internamente convertidas para pesquisas SEEK_SET.

Valor Retornado

Retorna true se a posição foi atualizada, false caso contrário.

Notas

Nota:

Se não implementado, false é assumido como o valor de retorno.

Nota:

Em caso de sucesso,
streamWrapper::stream_tell() é chamado diretamente após
a chamada a streamWrapper::stream_seek(). Se
streamWrapper::stream_tell() falhar, o valor de
retorno à função chamadora será definida para false

Nota:

Nem todas as operações de pesquisa no fluxo irão resultar na chamada a esta função. Fluxos PHP tem buffer de leitura habilitado por padrão (veja também stream_set_read_buffer()) e a pesquisa pode ser feita simplesmente movendo-se o ponteiro do buffer.

Veja Também

  • fseek() - Procura (seeks) em um ponteiro de arquivo


Altera as opções do fluxo

  • « streamWrapper::stream_seek
  • streamWrapper::stream_stat »
  • PHP Manual
  • streamWrapper
  • Altera as opções do fluxo

streamWrapper::stream_set_option

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

streamWrapper::stream_set_option — Altera as opções do fluxo

Descrição

public streamWrapper::stream_set_option(int $option, int $arg1, int $arg2): bool

Este método é chamado para definir as opções no fluxo.

Parâmetros

option

Uma das opções:

  • STREAM_OPTION_BLOCKING (o método foi chamado em resposta a stream_set_blocking())
  • STREAM_OPTION_READ_TIMEOUT (o método foi chamado em resposta a stream_set_timeout())
  • STREAM_OPTION_WRITE_BUFFER (o método foi chamado em resposta a stream_set_write_buffer())

arg1

Se option for

  • STREAM_OPTION_BLOCKING: modo de bloqueio requerido (1 significa bloqueio e 0 sem bloqueio).
  • STREAM_OPTION_READ_TIMEOUT: limite de tempo em segundos.
  • STREAM_OPTION_WRITE_BUFFER: modo de buffer (STREAM_BUFFER_NONE ou STREAM_BUFFER_FULL).

arg2

Se option for

  • STREAM_OPTION_BLOCKING: esta opção não está definida.
  • STREAM_OPTION_READ_TIMEOUT: limite de tempo em microssegundos.
  • STREAM_OPTION_WRITE_BUFFER: tamanho do buffer requerido.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Se option não for implementada, false deve ser retornado.

Veja Também

  • stream_set_blocking() - Definir modo de bloqueio/não-bloqueio em um fluxo
  • stream_set_timeout() - Define o limite de tempo em um fluxo
  • stream_set_write_buffer() - Define o tamanho do buffer de escrita do fluxo


Obtém informação sobre um recurso de arquivo

  • « streamWrapper::stream_set_option
  • streamWrapper::stream_tell »
  • PHP Manual
  • streamWrapper
  • Obtém informação sobre um recurso de arquivo

streamWrapper::stream_stat

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_stat — Obtém informação sobre um recurso de arquivo

Descrição

public streamWrapper::stream_stat(): array|false

Este método é chamado em resposta a fstat().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Consulte stat().

Erros/Exceções

Emite um E_WARNING se a chamada a este método falhar (ou seja, não implementado).

Veja Também

  • stat() - Obtém informações sobre um arquivo
  • streamwrapper::url_stat() - Obtém informação sobre um arquivo


Obtém a posição atual de um fluxo

  • « streamWrapper::stream_stat
  • streamWrapper::stream_truncate »
  • PHP Manual
  • streamWrapper
  • Obtém a posição atual de um fluxo

streamWrapper::stream_tell

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_tell — Obtém a posição atual de um fluxo

Descrição

public streamWrapper::stream_tell(): int

Este método é chamado em resposta a fseek() para determinar a posição atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Deve retornar a posição atual do fluxo.

Veja Também

  • streamWrapper::stream_tell()


Trunca o fluxo

  • « streamWrapper::stream_tell
  • streamWrapper::stream_write »
  • PHP Manual
  • streamWrapper
  • Trunca o fluxo

streamWrapper::stream_truncate

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

streamWrapper::stream_truncate — Trunca o fluxo

Descrição

public streamWrapper::stream_truncate(int $new_size): bool

Irá responder ao truncamento, isto é, através da função ftruncate().

Parâmetros

new_size

O novo tamanho.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ftruncate() - Trunca um arquivo a um tamanho especificado


Escreve no fluxo

  • « streamWrapper::stream_truncate
  • streamWrapper::unlink »
  • PHP Manual
  • streamWrapper
  • Escreve no fluxo

streamWrapper::stream_write

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_write — Escreve no fluxo

Descrição

public streamWrapper::stream_write(string $data): int

Este método é chamado em resposta a fwrite().

Nota:

Lembre-se de atualizar a posição atual do fluxo com o número de bytes que foram escritos com sucesso.

Parâmetros

data

Deve ser armazenado no fluxo subjacente.

Nota:

Se não houver espaço suficiente no fluxo subjacente, armazena o quanto for possível.

Valor Retornado

Deve retornar o número de bytes que foram armazenados com sucesso, ou 0 se nenhum pôde ser armazenado.

Erros/Exceções

Emite um E_WARNING se a chamada a este método falhar (ou seja, não implementado).

Nota:

Se o valor de retorno for maior que o comprimento de data, um aviso E_WARNING será emitido e o valor de retorno será truncado para o seu comprimento.

Veja Também

  • fwrite() - Escrita binary-safe em arquivos


Remove um arquivo

  • « streamWrapper::stream_write
  • streamWrapper::url_stat »
  • PHP Manual
  • streamWrapper
  • Remove um arquivo

streamWrapper::unlink

(PHP 5, PHP 7, PHP 8)

streamWrapper::unlink — Remove um arquivo

Descrição

public streamWrapper::unlink(string $path): bool

Este método é chamado em resposta a unlink().

Nota:

Para que a mensagem de erro apropriada seja retornada, este método não deve ser definido se o empacotador não suportar remoção de arquivos.

Parâmetros

path

A URL do arquivo que deve ser removido.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Emite um E_WARNING se a chamada a este método falhar (ou seja, não implementado).

Notas

Nota:

A propriedade streamWrapper::$context será atualizada se um contexto válido for passado para a função invocadora.

Veja Também

  • unlink() - Apaga um arquivo
  • streamWrapper::rmdir() - Remove um diretório


Obtém informação sobre um arquivo

  • « streamWrapper::unlink
  • Funções de Fluxo »
  • PHP Manual
  • streamWrapper
  • Obtém informação sobre um arquivo

streamWrapper::url_stat

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::url_stat — Obtém informação sobre um arquivo

Descrição

public streamWrapper::url_stat(string $path, int $flags): array|false

Este método é chamado em resposta a todas as funções relacionadas a stat(), como:

  • copy()
  • fileperms()
  • fileinode()
  • filesize()
  • fileowner()
  • filegroup()
  • fileatime()
  • filemtime()
  • filectime()
  • filetype()
  • is_writable()
  • is_readable()
  • is_executable()
  • is_file()
  • is_dir()
  • is_link()
  • file_exists()
  • lstat()
  • stat()
  • SplFileInfo::getPerms()
  • SplFileInfo::getInode()
  • SplFileInfo::getSize()
  • SplFileInfo::getOwner()
  • SplFileInfo::getGroup()
  • SplFileInfo::getATime()
  • SplFileInfo::getMTime()
  • SplFileInfo::getCTime()
  • SplFileInfo::getType()
  • SplFileInfo::isWritable()
  • SplFileInfo::isReadable()
  • SplFileInfo::isExecutable()
  • SplFileInfo::isFile()
  • SplFileInfo::isDir()
  • SplFileInfo::isLink()
  • RecursiveDirectoryIterator::hasChildren()

Parâmetros

path

O caminho ou URL do arquivo a explorar. Note que no caso de uma URL, ela deve ser delimitada com ://. Outras formas de URL não são suportadas.

flags

Contém opções adicionais configuradas pela API de fluxos. Pode conter uma ou mais dos valores a seguir somados (com a operação OR).

Opção | Descrição
STREAM_URL_STAT_LINK | Para recursos com a habilidade de criar atalho a outro recurso (como um redirecionamento HTTP ou uma ligação simbólica do sistema de arquivos). Esta opção especifica que apenas informação sobre o atalho em si deve ser retornada, e não sobre o recurso apontado pelo atalho. Esta função é definida em resposta a chamadas a lstat(), is_link() ou filetype().
STREAM_URL_STAT_QUIET | Se esta opção for definida, o empacotador não deve emitir erros. Se a opção não for definida, o programador é responsável por reportar erros usando a função trigger_error() durante a obtenção de informações sobre o arquivo.

Valor Retornado

Deve retornar um array com os mesmos elementdos que stat() retorna. Valores desconhecidos ou indisponíveis devem ser definidos para um valor racional (normalmente 0). Atenção especial deve ser prestada ao modo como documentado na função stat(). Deve retornar false em caso de falha.

Erros/Exceções

Emite um E_WARNING se a chamada a este método falhar (ou seja, não implementado).

Notas

Nota:

A propriedade streamWrapper::$context será atualizada se um contexto válido for passado para a função invocadora.

Veja Também

  • stat() - Obtém informações sobre um arquivo
  • streamwrapper::stream_stat() - Obtém informação sobre um recurso de arquivo


Funções de Fluxo

Índice

  • stream_bucket_append — Anexa o bucket à brigada
  • stream_bucket_make_writeable — Retorna um objeto bucket da brigada para se operar sobre ele
  • stream_bucket_new — Cria um novo bucket para uso no fluxo atual
  • stream_bucket_prepend — Adiciona um bucket ao início da brigada
  • stream_context_create — Cria um contexto de fluxo
  • stream_context_get_default — Obtém o contexto padrão de fluxo
  • stream_context_get_options — Obtém opções para um fluxo/empacotador/contexto
  • stream_context_get_params — Obtém parâmetros de um contexto
  • stream_context_set_default — Define o contexto padrão do fluxo
  • stream_context_set_option — Define uma opção para um fluxo/empacotador/contexto
  • stream_context_set_options — Define opções no contexto especificado
  • stream_context_set_params — Define parâmetros para um fluxo/empacotador/contexto
  • stream_copy_to_stream — Copia dados de um fluxo para outro
  • stream_filter_append — Anexa um filtro a um fluxo
  • stream_filter_prepend — Anexa um filtro a um fluxo
  • stream_filter_register — Registra um filtro de fluxo definido pelo usuário
  • stream_filter_remove — Remove um filtro de um fluxo
  • stream_get_contents — Lê o restante de um fluxo em uma string
  • stream_get_filters — Obtém lista de filtros registrados
  • stream_get_line — Obtém uma linha do recurso do fluxo até um delimitador informado
  • stream_get_meta_data — Obtém cabeçalhos/metadados de ponteiros de arquivos/fluxos
  • stream_get_transports — Obtém lista de transportes socket registrados
  • stream_get_wrappers — Obtém lista de fluxos registrados
  • stream_is_local — Verifica se o fluxo é local
  • stream_isatty — Verifica se um fluxo é um TTY
  • stream_notification_callback — Uma função de chamada de retorno para o parâmetro de contexto de notification
  • stream_register_wrapper — Sinônimo de stream_wrapper_register
  • stream_resolve_include_path — Resolve o nome do arquivo em relação ao caminho de include
  • stream_select — Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos
  • stream_set_blocking — Definir modo de bloqueio/não-bloqueio em um fluxo
  • stream_set_chunk_size — Define o tamanho do pacote do fluxo
  • stream_set_read_buffer — Define o tamanho de buffer de leitura do stream
  • stream_set_timeout — Define o limite de tempo em um fluxo
  • stream_set_write_buffer — Define o tamanho do buffer de escrita do fluxo
  • stream_socket_accept — Aceita uma conexão em um socket criado por stream_socket_server
  • stream_socket_client — Abre conexão de socket de domínio Internet ou Unix
  • stream_socket_enable_crypto — Liga ou desliga criptografia em socket já conectado
  • stream_socket_get_name — Obtém o nome do socket local ou remoto
  • stream_socket_pair — Cria um par de fluxos de socket conectados e indistinguíveis
  • stream_socket_recvfrom — Recebe dados de um socket, conectado ou não
  • stream_socket_sendto — Envia uma mensagem a um socket, conectado ou não
  • stream_socket_server — Cria socket de servidor de domínio Internet ou Unix
  • stream_socket_shutdown — Fecha uma conexão full-duplex
  • stream_supports_lock — Informa se o fluxo suporta travamento
  • stream_wrapper_register — Registra um empacotador URL implementado como uma classe PHP
  • stream_wrapper_restore — Restaura um empacotador interno anteriormente desregistrado
  • stream_wrapper_unregister — Desregistra um empacotador URL


Anexa o bucket à brigada

  • « Funções de Fluxo
  • stream_bucket_make_writeable »
  • PHP Manual
  • Funções de Fluxo
  • Anexa o bucket à brigada

stream_bucket_append

(PHP 5, PHP 7, PHP 8)

stream_bucket_append — Anexa o bucket à brigada

Descrição

stream_bucket_append(resource $brigade, object $bucket): void
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Retorna um objeto bucket da brigada para se operar sobre ele

  • « stream_bucket_append
  • stream_bucket_new »
  • PHP Manual
  • Funções de Fluxo
  • Retorna um objeto bucket da brigada para se operar sobre ele

stream_bucket_make_writeable

(PHP 5, PHP 7, PHP 8)

stream_bucket_make_writeable — Retorna um objeto bucket da brigada para se operar sobre ele

Descrição

stream_bucket_make_writeable(resource $brigade): ?object

Esta função é chamada sempre que existir a necessidade de acessar e operar no conteúdo de uma brigada. É tipicamente chamada por php_user_filter::filter().

Parâmetros

brigade

A brigada da qual se retornará o objeto bucket.

Valor Retornado

Retorna um objeto bucket com as propriedades listadas abaixo ou null.

data (string)

data bucket A string atual no bucket.

datalen (integer)

datalen bucket O comprimento da string no bucket.

Veja Também

  • stream_bucket_append() - Anexa o bucket à brigada
  • stream_bucket_prepend() - Adiciona um bucket ao início da brigada


Cria um novo bucket para uso no fluxo atual

  • « stream_bucket_make_writeable
  • stream_bucket_prepend »
  • PHP Manual
  • Funções de Fluxo
  • Cria um novo bucket para uso no fluxo atual

stream_bucket_new

(PHP 5, PHP 7, PHP 8)

stream_bucket_new — Cria um novo bucket para uso no fluxo atual

Descrição

stream_bucket_new(resource $stream, string $buffer): object
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Adiciona um bucket ao início da brigada

  • « stream_bucket_new
  • stream_context_create »
  • PHP Manual
  • Funções de Fluxo
  • Adiciona um bucket ao início da brigada

stream_bucket_prepend

(PHP 5, PHP 7, PHP 8)

stream_bucket_prepend — Adiciona um bucket ao início da brigada

Descrição

stream_bucket_prepend(resource $brigade, object $bucket): void

Esta função pode ser chamada para adicionar um bucket ao início da brigada. É tipicamente chamada por php_user_filter::filter().

Parâmetros

brigade

brigade é um recurso que aponta para uma brigada de bucket que contém um ou mais objetos bucket.

bucket

Um objeto bucket.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplos de stream_bucket_prepend()

<?php

class foo extends php_user_filter {
protected $calls = 0;
public function filter($in, $out, &$consumed, $closing) {
while ($bucket = stream_bucket_make_writeable($in)) {
$consumed += $bucket->datalen;
if ($this->calls++ == 2) {
// Este bucket irá aparecer novamente antes de qualquer outro bucket.
stream_bucket_prepend($in, $bucket);
}
}
return PSFS_FEED_ME;
}
}
stream_filter_register('test', 'foo');
print file_get_contents('php://filter/read=test/resource=foo');
?>


Cria um contexto de fluxo

  • « stream_bucket_prepend
  • stream_context_get_default »
  • PHP Manual
  • Funções de Fluxo
  • Cria um contexto de fluxo

stream_context_create

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_context_create — Cria um contexto de fluxo

Descrição

stream_context_create(?array $options = null, ?array $params = null): resource

Cria e retorna um contexto de fluxo com as opções fornecidas em options predefinidas.

Parâmetros

options

Deve ser um array associativo de arrays associativos no formato $arr['empacotador']['opcao'] = $valor ou null. Consulte opções de contexto para uma lista de empacotadores disponíveis e opções.

O padrão é null.

params

Deve ser um array associativo no formato $arr['parametro'] = $valor ou null. Consulte parâmetros de contexto para uma lista de parâmetros de fluxo padrões.

Valor Retornado

Um recurso do tipo resource de contexto de fluxo.

Registro de Alterações

Versão | Descrição
8.0.0 | options e params agora podem ser nulos.

Exemplos

Exemplo #1 Usando a função stream_context_create()

<?php
$opts = [
'http' => [
'method'=>"GET",
// Use caractere de nova linha \n para separar múltiplos cabeçalhos
'header' => "Accept-language: en\nCookie: foo=bar"
]
];

$context = stream_context_create($opts);

/* Envia uma requisição http para to www.example.com
com cabeçalhos adicionais mostrados acima */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

Veja Também

  • stream_context_set_option() - Define uma opção para um fluxo/empacotador/contexto
  • Lista de empacotadores suportados (Protocolos e Wrappers suportados)
  • Opções de contexto (Opções e parâmetros de contexto)


Obtém o contexto padrão de fluxo

  • « stream_context_create
  • stream_context_get_options »
  • PHP Manual
  • Funções de Fluxo
  • Obtém o contexto padrão de fluxo

stream_context_get_default

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_context_get_default — Obtém o contexto padrão de fluxo

Descrição

stream_context_get_default(?array $options = null): resource

Retorna o contexto padrão de fluxo que é usado sempre que operações de arquivos (fopen(), file_get_contents(), etc.) são chamadas sem parâmetro de contexto. Opções para o contexto padrão podem ser opcionalmente especificadas com esta função usando a mesma sintaxe de stream_context_create().

Parâmetros

options
options deve ser um array associativo de arrays associativos no formato $arr['empacotador']['opcao'] = $valor ou null.

Valor Retornado

Um recurso do tipo resource de contexto de fluxo.

Registro de Alterações

Versão | Descrição
8.0.0 | options agora pode ser nulo.

Exemplos

Exemplo #1 Usando stream_context_get_default()

<?php
$default_opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar",
'proxy'=>"tcp://10.54.1.39:8000"
)
);

$alternate_opts = array(
'http'=>array(
'method'=>"POST",
'header'=>"Content-type: application/x-www-form-urlencoded\r\n" .
"Content-length: " . strlen("baz=bomb"),
'content'=>"baz=bomb"
)
);

$default = stream_context_get_default($default_opts);
$alternate = stream_context_create($alternate_opts);

/* Envia uma requisição GET normal para o servidor proxy em 10.54.1.39
* para www.example.com usando as opções de contexto especificadas em $default_opts
*/
readfile('http://www.example.com');

/* Envia uma requisição POST diretamente para www.example.com
* usando as opções de contexto especificadas em $alternate_opts
*/
readfile('http://www.example.com', false, $alternate);

?>

Veja Também

  • stream_context_create() - Cria um contexto de fluxo
  • stream_context_set_default() - Define o contexto padrão do fluxo
  • Lista dos empacotadores suportados com opções de contexto (Protocolos e Wrappers suportados).


Obtém opções para um fluxo/empacotador/contexto

  • « stream_context_get_default
  • stream_context_get_params »
  • PHP Manual
  • Funções de Fluxo
  • Obtém opções para um fluxo/empacotador/contexto

stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_context_get_options — Obtém opções para um fluxo/empacotador/contexto

Descrição

stream_context_get_options(resource $stream_or_context): array

Retorna um array de opções sobre o contexto ou fluxo especificado.

Parâmetros

stream_or_context

O fluxo (stream) ou contexto (context) do qual as opções serão obtidas

Valor Retornado

Retorna um array associativo com as opções.

Exemplos

Exemplo #1 Exemplo de stream_context_get_options()

<?php
$params = array("method" => "POST");

stream_context_set_default(array("http" => $params));

var_dump(stream_context_get_options(stream_context_get_default()));

?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  ["http"]=>
  array(1) {
    ["method"]=>
    string(4) "POST"
  }
}


Obtém parâmetros de um contexto

  • « stream_context_get_options
  • stream_context_set_default »
  • PHP Manual
  • Funções de Fluxo
  • Obtém parâmetros de um contexto

stream_context_get_params

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

stream_context_get_params — Obtém parâmetros de um contexto

Descrição

stream_context_get_params(resource $context): array

Obtém informações de parâmetro e opções de um fluxo ou contexto.

Parâmetros

context

Um fluxo do tipo resource ou um context do tipo resource

Valor Retornado

Retorna um array associativo contendo todas as opções de contexto e parâmetros.

Exemplos

Exemplo #1 Exemplo de stream_context_get_params()

Exemplo de uso básico

<?php
$ctx = stream_context_create();
$params = array("notification" => "stream_notification_callback");
stream_context_set_params($ctx, $params);

var_dump(stream_context_get_params($ctx));
?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  ["notification"]=>
  string(28) "stream_notification_callback"
  ["options"]=>
  array(0) {
  }
}

Veja Também

  • stream_context_set_option() - Define uma opção para um fluxo/empacotador/contexto
  • stream_context_set_params() - Define parâmetros para um fluxo/empacotador/contexto


Define o contexto padrão do fluxo

  • « stream_context_get_params
  • stream_context_set_option »
  • PHP Manual
  • Funções de Fluxo
  • Define o contexto padrão do fluxo

stream_context_set_default

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

stream_context_set_default — Define o contexto padrão do fluxo

Descrição

stream_context_set_default(array $options): resource

Define o contexto padrão do fluxo que será usado sempre que operações de arquivos (fopen(), file_get_contents(), etc.) forem chamadas sem um parâmetro de contexto. Usa a mesma sintaxe de stream_context_create().

Parâmetros

options

As opções a serem definidas para o contexto padrão.

Nota:

options deve ser um array associativo de arrays associativos no formato $arr['empacotador']['opção'] = $valor.

Valor Retornado

Retorna o contexto padrão do fluxo.

Exemplos

Exemplo #1 Exemplo de stream_context_set_default()

<?php
$default_opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar",
'proxy'=>"tcp://10.54.1.39:8000"
)
);

$default = stream_context_set_default($default_opts);

/* Envia uma requisição GET normal para o servidor proxy em 10.54.1.39
* para www.example.com usando as opções de contexto especificadas em $default_opts
*/
readfile('http://www.example.com');
?>

Veja Também

  • stream_context_create() - Cria um contexto de fluxo
  • stream_context_get_default() - Obtém o contexto padrão de fluxo
  • Lista dos empacotadores suportados com opções de contexto (Protocolos e Wrappers suportados).


Define uma opção para um fluxo/empacotador/contexto

  • « stream_context_set_default
  • stream_context_set_options »
  • PHP Manual
  • Funções de Fluxo
  • Define uma opção para um fluxo/empacotador/contexto

stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_context_set_option — Define uma opção para um fluxo/empacotador/contexto

Descrição

stream_context_set_option(
resource $stream_or_context,
string $wrapper,
string $option,
mixed $value
): bool
stream_context_set_option(resource $stream_or_context, array $options): bool

Define uma opção para o contexto especificado. value é definido para option para o parâmetro wrapper (empacotador).

Parâmetros

stream_or_context

O recurso fluxo ou contexto ao qual deve-se aplicar as opções.

wrapper

O nome do empacotador (que pode ser diferente do protocolo). Consulte opções de contexto e parâmetros para uma lista de opções de fluxo.

option

O nome da opção.

value

O valor da opção.

options

As opções a serem definidas para stream_or_context.

Nota:

options deve ser um array associativo de arrays associativos no formato $arr['empacotador']['opcao'] = $valor.

Consulte opções de contexto e parâmetros para uma lista de opções de fluxo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Define opções no contexto especificado

  • « stream_context_set_option
  • stream_context_set_params »
  • PHP Manual
  • Funções de Fluxo
  • Define opções no contexto especificado

stream_context_set_options

(PHP 8 >= 8.3.0)

stream_context_set_options — Define opções no contexto especificado

Descrição

stream_context_set_options(resource $context, array $options): true

Define opções no contexto especificado.

Parâmetros

context

O recurso fluxo ou contexto ao qual deve-se aplicar as opções.

options

As opções a serem definidas para context.

Nota:

options deve ser um array associativo de arrays associativos no formato $array['empacotador']['opcao'] = $valor.

Consulte opções de contexto e parâmetros para uma lista de opções de fluxo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de stream_context_set_options()

<?php

$context = stream_context_create();

$options = [
'http' => [
'protocol_version' => 1.1,
'user_agent' => 'PHPT Agent',
],
];

stream_context_set_options($context, $options);
var_dump(stream_context_get_options($context));
?>

O exemplo acima produzirá:

array(1) {
  ["http"]=>
  array(2) {
    ["protocol_version"]=>
    float(1.1)
    ["user_agent"]=>
    string(10) "PHPT Agent"
  }
}

Veja Também

  • stream_context_set_option() - Define uma opção para um fluxo/empacotador/contexto


Define parâmetros para um fluxo/empacotador/contexto

  • « stream_context_set_options
  • stream_copy_to_stream »
  • PHP Manual
  • Funções de Fluxo
  • Define parâmetros para um fluxo/empacotador/contexto

stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_context_set_params — Define parâmetros para um fluxo/empacotador/contexto

Descrição

stream_context_set_params(resource $context, array $params): true

Define parâmetros para o contexto especificado.

Parâmetros

context

O fluxo ou contexto ao qual os parâmetros devem ser aplicados.

params

Um array associativo de parâmetros a serem definidos no seguinte formato: $params['nome_parametro'] = "valor_parametro";.

Parâmetros suportados
Parâmetro | Propósito
notification | Nome da função de retorno de chamada definida pelo usuário a ser chamada sempre que um fluxo ativar uma notificação. Suportada apenas para empacotadores de fluxo http:// e ftp://.
options | Array de opções como em opções de contexto e parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • stream_notification_callback() - Uma função de chamada de retorno para o parâmetro de contexto de notification


Copia dados de um fluxo para outro

  • « stream_context_set_params
  • stream_filter_append »
  • PHP Manual
  • Funções de Fluxo
  • Copia dados de um fluxo para outro

stream_copy_to_stream

(PHP 5, PHP 7, PHP 8)

stream_copy_to_stream — Copia dados de um fluxo para outro

Descrição

stream_copy_to_stream(
resource $from,
resource $to,
?int $length = null,
int $offset = 0
): int|false

Faz uma cópia dos dados com um comprimento em bytes definido em length, a partir da posição atual (ou a partir da posição offset, se especificada) do fluxo from para o fluxo to. Se length for null, todo o conteúdo remanescente em from será copiado.

Parâmetros

from

O fluxo de origem

to

O fluxo de destino

length

Máximo de bytes a copiar. Por padrão todos os bytes restantes são copiados.

offset

O deslocamento a partir do qual deve-se começar a copiar os dados

Valor Retornado

Retorna a contagem total de bytes copiados, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | length agora pode ser nulo.

Exemplos

Exemplo #1 Um exemplo de stream_copy_to_stream()

<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');

echo stream_copy_to_stream($src, $dest1, 1024) . " bytes copiados para first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " bytes copiados para remainder.txt\n";

?>

Veja Também

  • copy() - Copia arquivo


Anexa um filtro a um fluxo

  • « stream_copy_to_stream
  • stream_filter_prepend »
  • PHP Manual
  • Funções de Fluxo
  • Anexa um filtro a um fluxo

stream_filter_append

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_filter_append — Anexa um filtro a um fluxo

Descrição

stream_filter_append(
resource $stream,
string $filtername,
int $read_write = ?,
mixed $params = ?
): resource

Adiciona o nome do filtro filtername à lista de filtros anexados ao fluxo stream.

Parâmetros

stream

O fluxo alvo.

filtername

O nome do filtro.

read_write

Por padrão, stream_filter_append() irá anexar o filtro à cadeia de filtros de leitura se o arquivo foi aberto para leitura (isto é, modo de arquivo: r e/ou +). O filtro também será anexado à cadeia de filtros de escrita se o arquivo foi aberto para escrita (isto é, modo de arquivo: w, a e/ou +). As constantes STREAM_FILTER_READ, STREAM_FILTER_WRITE e/ou STREAM_FILTER_ALL também podem ser passadas ao parâmetro read_write para substituir este comportamento.

params

Este filtro será adicionado com os parâmetros especificados em params ao final da lista e portanto serão chamados por último durante operações de fluxo. Para adicionar um filtro ao início da lista, use stream_filter_prepend().

Valor Retornado

Retorna um recurso em caso de sucesso ou false em caso de falha. O recurso pode ser usado para se referir a este instância de filtro durante a chamada a stream_filter_remove().

false é retornado se o parâmetro stream não for um recurso ou se o nome do filtro filtername não puder ser localizado.

Exemplos

Exemplo #1 Controlando onde os filtros são aplicados

<?php
/* Abre um arquivo de teste para leitura e escrita */
$fp = fopen('test.txt', 'w+');

/* Applica o filtro ROT13 à
* cadeia de filtros de escrita, mas não à
* cadeia de filtros de leitura */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Escreve uma string simples ao arquivo
* que será transformado através do ROT13 na
* saída */
fwrite($fp, "This is a test\n");

/* Retrocede ao início do arquivo */
rewind($fp);

/* Lê de volta o conteúdo do arquivo.
* Se o filtro tivesse sido aplicado também
* à cadeia de filtros de leitura, seria visto o texto
* com o filtro ROT13 reaplicado, de volta a seu estado original */
fpassthru($fp);

fclose($fp);

/* Expected Output
---------------

Guvf vf n grfg

*/
?>

Notas

Nota: Usando filtros personalizados (do usuário)
stream_filter_register() deve ser chamado em primeiro lugar de maneira a registrar o filtro de usuário desejado para o valor de filtername.

Nota: Dados de fluxo são lidos dos recursos (tanto locais quanto remotos) em partes, com quaisquer dados não consumidos mantidos em buffers internos. Quando um novo filtro é anexado a um fluxo, dados no buffer interno são processados através do novo filtro neste momento. Isto difere do comportamento de stream_filter_prepend().

Nota: Quando um filtro é adicionado para leitura e escrita, duas instâncias do filtro são criadas. stream_filter_append() deve ser chamada duas vezes com STREAM_FILTER_READ e STREAM_FILTER_WRITE para obter ambos os recursos de filtro.

Veja Também

  • stream_filter_register() - Registra um filtro de fluxo definido pelo usuário
  • stream_filter_prepend() - Anexa um filtro a um fluxo
  • stream_get_filters() - Obtém lista de filtros registrados


Anexa um filtro a um fluxo

  • « stream_filter_append
  • stream_filter_register »
  • PHP Manual
  • Funções de Fluxo
  • Anexa um filtro a um fluxo

stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_filter_prepend — Anexa um filtro a um fluxo

Descrição

stream_filter_prepend(
resource $stream,
string $filtername,
int $read_write = ?,
mixed $params = ?
): resource

Adiciona o nome do filtro filtername à lista de filtros anexados ao fluxo stream.

Parâmetros

stream

O fluxo alvo.

filtername

O nome do filtro.

read_write

Por padrão, stream_filter_prepend() irá anexar o filtro à cadeia de filtros de leitura se o arquivo foi aberto para leitura (isto é, modo de arquivo: r e/ou +). O filtro também será anexado à cadeia de filtros de escrita se o arquivo foi aberto para escrita (isto é, modo de arquivo: w, a e/ou +). As constantes STREAM_FILTER_READ, STREAM_FILTER_WRITE e/ou STREAM_FILTER_ALL também podem ser passadas ao parâmetro read_write para substituir este comportamento. Consulte a função stream_filter_append() para um exemplo de uso deste parâmetro.

params

Este filtro será adicionado com os parâmetros especificados em params ao início da lista e portanto serão chamados em primeiro lugar durante operações de fluxo. Pra adicionar um filtro ao final da lista, use stream_filter_append().

Valor Retornado

Retorna um recurso em caso de sucesso ou false em caso de falha. O recurso pode ser usado para se referir a esta instância de filtro durante uma chamada a stream_filter_remove().

false é retornado se o parâmetro stream não for um recurso ou se o nome do filtro filtername não puder ser localizado.

Notas

Nota: Usando filtros personalizados (do usuário)
stream_filter_register() deve ser chamado em primeiro lugar de maneira a registrar o filtro de usuário desejado para o valor de filtername.

Nota: Dados de fluxo são lidos dos recursos (tanto locais quanto remotos) em partes, com quaisquer dados não consumidos mantidos em buffers internos. Quando um novo filtro é anexado ao início de um fluxo, os dados nos buffers internos que já foram processados por outros filtros não serão reprocessados pelo novo filtro neste momento. Isto difere do comportamento de stream_filter_append().

Nota: Quando um filtro é adicionado para leitura e escrita, duas instâncias do filtro são criadas. stream_filter_prepend() deve ser chamada duas vezes com STREAM_FILTER_READ e STREAM_FILTER_WRITE para obter ambos os recursos de filtro.

Veja Também

  • stream_filter_register() - Registra um filtro de fluxo definido pelo usuário
  • stream_filter_append() - Anexa um filtro a um fluxo


Registra um filtro de fluxo definido pelo usuário

  • « stream_filter_prepend
  • stream_filter_remove »
  • PHP Manual
  • Funções de Fluxo
  • Registra um filtro de fluxo definido pelo usuário

stream_filter_register

(PHP 5, PHP 7, PHP 8)

stream_filter_register — Registra um filtro de fluxo definido pelo usuário

Descrição

stream_filter_register(string $filter_name, string $class): bool

stream_filter_register() permite implementar filtro de usuário em qualquer fluxo registrado usado com todas as outras funções de sistemas de arquivos (como fopen(), fread() etc.).

Parâmetros

filter_name

O nome do filtro a ser registrado.

class

Para implementar um filtro, deve-se definir uma classe como uma extensão de php_user_filter com um número de funções membro. Na execução de operações de leitura/escrita no fluxo ao qual o filtro estiver anexado, o PHP passará os dados através do filtro (e quaisquer outros filtros anexados ao fluxo) para que os dados possam ser modificados como desejado. Deve-se implementar os métodos exatamente como descrito em php_user_filter - caso contrário, pode-se chegar a comportamentos não definidos.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

stream_filter_register() irá retornar false se o nome do filtro em filter_name já estiver definido.

Exemplos

Exemplo #1 Filtro para converter para maiúsculas os caracteres no fluxo foo-bar.txt

O exemplo abaixo implementa um filtro chamado maiusculas no fluxo foo-bar.txt que irá converter para maiúsculas todos caracteres de letras lidos ou escritos no fluxo.

<?php

/* Define a classe de filtro */
class filtro_maiusculas extends php_user_filter {
function filter($entrada, $saida, &$consumido, $fechando)
{
while ($bucket = stream_bucket_make_writeable($entrada)) {
$bucket->data = strtoupper($bucket->data);
$consumido += $bucket->datalen;
stream_bucket_append($saida, $bucket);
}
return PSFS_PASS_ON;
}
}

/* Registra o filtro no PHP */
stream_filter_register("maiusculas", "filtro_maiusculas")
or die("Falha ao registrar o filtro");

$fp = fopen("foo-bar.txt", "w");

/* Anexa o filtro registrado ao fluxo que acabou de ser aberto */
stream_filter_append($fp, "maiusculas");

fwrite($fp, "Linha1\n");
fwrite($fp, "Palavra - 2\n");
fwrite($fp, "Facil Como 123\n");

fclose($fp);

/* Lê de volta o conteúdo
*/
readfile("foo-bar.txt");

?>

O exemplo acima produzirá:

LINHA1
PALAVRA - 2
FACIL COMO 123

Exemplo #2 Registrando uma classe de filtro genérica para combinar com múltiplos nomes de filtro.

<?php

/* Define a classe de filtro */
class filtro_string extends php_user_filter {
var $modo;

function filter($entrada, $saida, &$consumido, $fechando)
{
while ($bucket = stream_bucket_make_writeable($entrada)) {
if ($this->modo == 1) {
$bucket->data = strtoupper($bucket->data);
} elseif ($this->modo == 0) {
$bucket->data = strtolower($bucket->data);
}

$consumido += $bucket->datalen;
stream_bucket_append($saida, $bucket);
}
return PSFS_PASS_ON;
}

function onCreate()
{
if ($this->filtername == 'str.maiuscula') {
$this->modo = 1;
} elseif ($this->filtername == 'str.minuscula') {
$this->modo = 0;
} else {
/* Algum outro filtro str.* foi solicitado,
reportar falha para que o PHP continue procurando */
return false;
}

return true;
}
}

/* Registra o filtro no PHP */
stream_filter_register("str.*", "filtro_string")
or die("Falha ao registrar o filtro");

$fp = fopen("foo-bar.txt", "w");

/* Anexa o filtro registrado ao fluxo que acabou de ser aberto
Pode-se alternativamente ligar a str.minuscula aqui */
stream_filter_append($fp, "str.maiuscula");

fwrite($fp, "Linha1\n");
fwrite($fp, "Palavra - 2\n");
fwrite($fp, "Facil Como 123\n");

fclose($fp);

/* Lê de volta o conteúdo
*/
readfile("foo-bar.txt");
?>

O exemplo acima produzirá:

LINHA1
PALAVRA - 2
FACIL COMO 123

Veja Também

  • stream_wrapper_register() - Registra um empacotador URL implementado como uma classe PHP
  • stream_filter_append() - Anexa um filtro a um fluxo
  • stream_filter_prepend() - Anexa um filtro a um fluxo


Remove um filtro de um fluxo

  • « stream_filter_register
  • stream_get_contents »
  • PHP Manual
  • Funções de Fluxo
  • Remove um filtro de um fluxo

stream_filter_remove

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_filter_remove — Remove um filtro de um fluxo

Descrição

stream_filter_remove(resource $stream_filter): bool

Remove um filtro de fluxo previamente adicionado a um fluxo com stream_filter_prepend() ou stream_filter_append(). Quaisquer dados remanescentes no buffer interno do filtro serão descarregados no filtro seguinte antes da remoção.

Parâmetros

stream_filter

O filtro de fluxo a ser removido.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Refiltrando um fluxo dinamicamente

<?php
/* Abre um arquivo de teste para leitura e escrita */
$fp = fopen("test.txt", "rw");

$rot13_filter = stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
fwrite($fp, "This is ");
stream_filter_remove($rot13_filter);
fwrite($fp, "a test\n");

rewind($fp);
fpassthru($fp);
fclose($fp);

?>

O exemplo acima produzirá:

Guvf vf a test

Veja Também

  • stream_filter_register() - Registra um filtro de fluxo definido pelo usuário
  • stream_filter_append() - Anexa um filtro a um fluxo
  • stream_filter_prepend() - Anexa um filtro a um fluxo


Lê o restante de um fluxo em uma string

  • « stream_filter_remove
  • stream_get_filters »
  • PHP Manual
  • Funções de Fluxo
  • Lê o restante de um fluxo em uma string

stream_get_contents

(PHP 5, PHP 7, PHP 8)

stream_get_contents — Lê o restante de um fluxo em uma string

Descrição

stream_get_contents(resource $stream, ?int $length = null, int $offset = -1): string|false

Idêntico a file_get_contents(), exceto que stream_get_contents() opera em um recurso de fluxo já aberto e retorna o conteúdo remanescente em uma string, até o número de bytes definido em length e iniciando na posição offset especificada.

Parâmetros

stream (resource)

Um recurso de fluxo (ex.: retornado de fopen())

length (int)

O máximo de bytes para leitura. O padrão é null (ler todo o buffer remanescente).

offset (int)

Posiciona o ponteiro até o deslocamento especificado antes da leitura. Se o número for negativo, não irá ocorrer deslocamento e a leitura irá iniciar na posição atual.

Valor Retornado

Retorna uma string ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | length agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de stream_get_contents()

<?php

if ($stream = fopen('http://www.example.com', 'r')) {
// mostra toda a página iniciando na posição 10
echo stream_get_contents($stream, -1, 10);

fclose($stream);
}

if ($stream = fopen('http://www.example.net', 'r')) {
// mostra os 5 primeiros bytes
echo stream_get_contents($stream, 5);

fclose($stream);
}

?>

Notas

Nota: Esta função é compatível com dados binários.

Nota:

Ao especificar um valor de length diferente de null, esta função irá imediatamente alocar um buffer interno deste tamanho, mesmo que o conteúdo real seja significativamente menor.

Veja Também

  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fread() - Leitura de arquivo segura para binário
  • fpassthru() - Imprime todo os dados restantes de um ponteiro de arquivo


Obtém lista de filtros registrados

  • « stream_get_contents
  • stream_get_line »
  • PHP Manual
  • Funções de Fluxo
  • Obtém lista de filtros registrados

stream_get_filters

(PHP 5, PHP 7, PHP 8)

stream_get_filters — Obtém lista de filtros registrados

Descrição

stream_get_filters(): array

Obtém a lista de filtros registrados no sistema em execução.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array indexado contendo o nome de todos os filtros de fluxo disponíveis.

Exemplos

Exemplo #1 Usando stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

O exemplo acima produzirá algo semelhante a:

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

Veja Também

  • stream_filter_register() - Registra um filtro de fluxo definido pelo usuário
  • stream_get_wrappers() - Obtém lista de fluxos registrados


Obtém uma linha do recurso do fluxo até um delimitador informado

  • « stream_get_filters
  • stream_get_meta_data »
  • PHP Manual
  • Funções de Fluxo
  • Obtém uma linha do recurso do fluxo até um delimitador informado

stream_get_line

(PHP 5, PHP 7, PHP 8)

stream_get_line — Obtém uma linha do recurso do fluxo até um delimitador informado

Descrição

stream_get_line(resource $stream, int $length, string $ending = ""): string|false

Obtém uma linha do manipulador informado.

A leitura termina quando o número de bytes especificados em length tiverem sido lidos, ou quando a string não vazia especificada por ending for encontrada (que não é incluída no valor de retorno), ou em EOF (o que ocorrer primeiro).

Esta função é praticamente idêntica a fgets() exceto por permitir delimitadores de final de linha diferente dos padrões \n, \r e \r\n, e não retorna o delimitador em si.

Parâmetros

stream

Um manipulador de arquivo válido.

length

O número máximo de bytes para leitura do manuipulador. Valores negativos não são suportados. Zero (0) define o tamanho padrão do pacote do socket, isto é, 8192 bytes.

ending

Um delimitador string opcional.

Valor Retornado

Retorna uma string com no máximo o número de bytes de length lidos do arquivo apontado por stream, ou false em caso de falha.

Veja Também

  • fread() - Leitura de arquivo segura para binário
  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fgetc() - Lê um caractere do ponteiro de arquivo


Obtém cabeçalhos/metadados de ponteiros de arquivos/fluxos

  • « stream_get_line
  • stream_get_transports »
  • PHP Manual
  • Funções de Fluxo
  • Obtém cabeçalhos/metadados de ponteiros de arquivos/fluxos

stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_get_meta_data — Obtém cabeçalhos/metadados de ponteiros de arquivos/fluxos

Descrição

stream_get_meta_data(resource $stream): array

Retorna informação sobre um fluxo (stream) existente.

Parâmetros

stream

O fluxo pode ser qualquer um criado por fopen(), fsockopen(), pfsockopen() e stream_socket_client().

Valor Retornado

O array resultante contém os seguintes itens:

  • timed_out (bool) - true se o fluxo passou do limite de tempo definido enquanto esperava por dados na última chamada a fread() or fgets().

  • blocked (bool) - true se o fluxo estiver em modo bloqueado de E/S. Consulte stream_set_blocking().

  • eof (bool) - true se o fluxo alcançou o fim do arquivo. Note que para fluxos de socket este membro pode ser true mesmo quando os bytes não lidos (unread_bytes) for diferente de zero. Para determinar se há mais dados para leitura, use feof() no lugar de ler este item.

  • unread_bytes (int) - o número de bytes atualmente contidos no buffer interno do próprio PHP.

    Nota: Este valor não deve ser usado em um script.

  • stream_type (string) - uma identificação descrevendo a implementação subjacente do fluxo.

  • wrapper_type (string) - uma identificação descrevendo a implementação do empacotador de protocolo sobre o fluxo. Consulte Protocolos e Wrappers suportados para mais informações sobre empacotadores.

  • wrapper_data (mixed) - dados específicos de empacotadores anexados a este fluxo. Consulte Protocolos e Wrappers suportados para mais informações sobre empacotadores e seus dados.

  • mode (string) - o tipo de acesso requerido para este fluxo (veja Tabela 1 da referência de fopen())

  • seekable (bool) - se o fluxo atual pode ou não ser pesquisado.

  • uri (string) - o nome de arquivo ou URI associado com este fluxo.

  • crypto (array) - os metadados de conexão TLS para este fluxo. (Nota: fornecido somente quando o fluxo do recurso usa TLS.)

Exemplos

Exemplo #1 Exemplo de stream_get_meta_data() usando fopen() com http

<?php
$url = 'http://www.example.com/';

if (!$fp = fopen($url, 'r')) {
trigger_error("Não foi possível abrir a URL ($url)", E_USER_ERROR);
}

$meta = stream_get_meta_data($fp);

var_dump($meta);

fclose($fp);
?>

O exemplo acima produzirá algo semelhante a:

array(10) {
  'timed_out' =>
  bool(false)
  'blocked' =>
  bool(true)
  'eof' =>
  bool(false)
  'wrapper_data' =>
  array(13) {
    [0] =>
    string(15) "HTTP/1.1 200 OK"
    [1] =>
    string(11) "Age: 244629"
    [2] =>
    string(29) "Cache-Control: max-age=604800"
    [3] =>
    string(38) "Content-Type: text/html; CHARSET=Windows-1252"
    [4] =>
    string(35) "Date: Sat, 20 Nov 2021 18:17:57 GMT"
    [5] =>
    string(24) "Etag: "3147526947+ident""
    [6] =>
    string(38) "Expires: Sat, 27 Nov 2021 18:17:57 GMT"
    [7] =>
    string(44) "Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT"
    [8] =>
    string(22) "Server: ECS (chb/0286)"
    [9] =>
    string(21) "Vary: Accept-Encoding"
    [10] =>
    string(12) "X-Cache: HIT"
    [11] =>
    string(20) "Content-Length: 1256"
    [12] =>
    string(17) "Connection: close"
  }
  'wrapper_type' =>
  string(4) "http"
  'stream_type' =>
  string(14) "tcp_socket/ssl"
  'mode' =>
  string(1) "r"
  'unread_bytes' =>
  int(1256)
  'seekable' =>
  bool(false)
  'uri' =>
  string(23) "http://www.example.com/"
}

Exemplo #2 Exemplo de stream_get_meta_data() usando stream_socket_client() com https

<?php
$streamContext = stream_context_create(
[
'ssl' => [
'capture_peer_cert' => true,
'capture_peer_cert_chain' => true,
'disable_compression' => true,
],
]
);

$client = stream_socket_client(
'ssl://www.example.com:443',
$errorNumber,
$errorDescription,
40,
STREAM_CLIENT_CONNECT,
$streamContext
);

$meta = stream_get_meta_data($client);

var_dump($meta);
?>

O exemplo acima produzirá algo semelhante a:

array(8) {
  'crypto' =>
  array(4) {
    'protocol' =>
    string(7) "TLSv1.3"
    'cipher_name' =>
    string(22) "TLS_AES_256_GCM_SHA384"
    'cipher_bits' =>
    int(256)
    'cipher_version' =>
    string(7) "TLSv1.3"
  }
  'timed_out' =>
  bool(false)
  'blocked' =>
  bool(true)
  'eof' =>
  bool(false)
  'stream_type' =>
  string(14) "tcp_socket/ssl"
  'mode' =>
  string(2) "r+"
  'unread_bytes' =>
  int(0)
  'seekable' =>
  bool(false)
}

Notas

Nota:

Esta função NÃO funciona com sockets criados pela Extensão Socket.

Veja Também

  • get_headers() - Retorna todos os cabeçalhos enviados pelo servidor em resposta a uma requisição HTTP
  • $http_response_header


Obtém lista de transportes socket registrados

  • « stream_get_meta_data
  • stream_get_wrappers »
  • PHP Manual
  • Funções de Fluxo
  • Obtém lista de transportes socket registrados

stream_get_transports

(PHP 5, PHP 7, PHP 8)

stream_get_transports — Obtém lista de transportes socket registrados

Descrição

stream_get_transports(): array

Retorna um array indexado contendo os nomes de todos os transportes de socket disponíveis no sistema em execução.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array indexado de nomes de transporte de sockets.

Exemplos

Exemplo #1 Usando stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

O exemplo acima produzirá algo semelhante a:

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)

Veja Também

  • stream_get_filters() - Obtém lista de filtros registrados
  • stream_get_wrappers() - Obtém lista de fluxos registrados


Obtém lista de fluxos registrados

  • « stream_get_transports
  • stream_is_local »
  • PHP Manual
  • Funções de Fluxo
  • Obtém lista de fluxos registrados

stream_get_wrappers

(PHP 5, PHP 7, PHP 8)

stream_get_wrappers — Obtém lista de fluxos registrados

Descrição

stream_get_wrappers(): array

Obtém lista de fluxos registrados disponíveis no sistema em execução.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array indexado contendo os nomes de todos os empacotadores de fluxo disponíveis no sistema em execução.

Exemplos

Exemplo #1 Exemplo de stream_get_wrappers()

<?php
print_r(stream_get_wrappers());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => php
    [1] => file
    [2] => http
    [3] => ftp
    [4] => compress.bzip2
    [5] => compress.zlib
)

Exemplo #2 Verificando a existência de um empacotador de fluxo

<?php
// verifica a existência do empacotador de fluxo bzip2
if (in_array('compress.bzip2', stream_get_wrappers())) {
echo 'compress.bzip2:// suporte habilitado.';
} else {
echo 'compress.bzip2:// suporte não habilitado.';
}
?>

Veja Também

  • stream_wrapper_register() - Registra um empacotador URL implementado como uma classe PHP


Verifica se o fluxo é local

  • « stream_get_wrappers
  • stream_isatty »
  • PHP Manual
  • Funções de Fluxo
  • Verifica se o fluxo é local

stream_is_local

(PHP 5 >= 5.2.4, PHP 7, PHP 8)

stream_is_local — Verifica se o fluxo é local

Descrição

stream_is_local(resource|string $stream): bool

Verifica se um fluxo ou uma URL é ou não local.

Parâmetros

stream

O fluxo do tipo resource ou URL a ser verificado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de stream_is_local()

Exemplo de uso básico.

<?php
var_dump(stream_is_local("http://example.com"));
var_dump(stream_is_local("/etc"));
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Verifica se um fluxo é um TTY

  • « stream_is_local
  • stream_notification_callback »
  • PHP Manual
  • Funções de Fluxo
  • Verifica se um fluxo é um TTY

stream_isatty

(PHP 7 >= 7.2.0, PHP 8)

stream_isatty — Verifica se um fluxo é um TTY

Descrição

stream_isatty(resource $stream): bool

Determina se o fluxo stream se refere a um dispositivo tipo terminal válido. Esta é uma versão mais portável de posix_isatty(), já que também funciona no Windows.

Parâmetros

stream

O fluxo a ser verificado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de stream_isatty()

Este comando pode ser usado para determinar se um fluxo de saída/erro padrão é redirecionado a um arquivo.

php -r "var_export(stream_isatty(STDERR));"

O exemplo acima produzirá algo semelhante a:

true
php -r "var_export(stream_isatty(STDERR));" 2>output.txt

O exemplo acima produzirá algo semelhante a:

false


Uma função de chamada de retorno para o parâmetro de contexto de notification

  • « stream_isatty
  • stream_register_wrapper »
  • PHP Manual
  • Funções de Fluxo
  • Uma função de chamada de retorno para o parâmetro de contexto de notification

stream_notification_callback

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

stream_notification_callback — Uma função de chamada de retorno para o parâmetro de contexto de notification

Descrição

stream_notification_callback(
int $notification_code,
int $severity,
?string $message,
int $message_code,
int $bytes_transferred,
int $bytes_max
): void

Uma função do tipo callable, usada pelo parâmetro de contexto de notificação, chamado durante um evento.

Nota:

Esta não é uma função real, apenas um protótipo de como uma função deve ser.

Parâmetros

notification_code

Uma das constantes de notificação STREAM_NOTIFY_*.

severity

Uma das constantes de notificação STREAM_NOTIFY_SEVERITY_*.

message

Passado se uma mensagem descritiva estiver disponível para o evento.

message_code

Passado se um código de mensagem descritiva estiver disponível para o evento.

O significado deste valor depende do empacotador específico em uso.

bytes_transferred

Se aplicável, o número de bytes em bytes_transferred será preenchido.

bytes_max

Se aplicável, o número máximo de bytes em bytes_max será preenchido.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de stream_notification_callback()

<?php
function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {

switch($notification_code) {
case STREAM_NOTIFY_RESOLVE:
case STREAM_NOTIFY_AUTH_REQUIRED:
case STREAM_NOTIFY_COMPLETED:
case STREAM_NOTIFY_FAILURE:
case STREAM_NOTIFY_AUTH_RESULT:
var_dump($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max);
/* Ignora */
break;

case STREAM_NOTIFY_REDIRECTED:
echo "Sendo redirecionado para: ", $message;
break;

case STREAM_NOTIFY_CONNECT:
echo "Conectado...";
break;

case STREAM_NOTIFY_FILE_SIZE_IS:
echo "Tamanho do arquivo: ", $bytes_max;
break;

case STREAM_NOTIFY_MIME_TYPE_IS:
echo "Encontrado o tipo de mídia: ", $message;
break;

case STREAM_NOTIFY_PROGRESS:
echo "Algum progresso, já baixados ", $bytes_transferred, " bytes até agora";
break;
}
echo "\n";
}

$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

file_get_contents("http://php.net/contact", false, $ctx);
?>

O exemplo acima produzirá algo semelhante a:

Conectado...
Encontrado o tipo de mídia: text/html; CHARSET=Windows-1252
Sendo redirecionado para: http://no.php.net/contact
Conectado...
Tamanho do arquivo: 0
Encontrado o tipo de mídia: text/html; CHARSET=Windows-1252
Sendo redirecionado para: http://no.php.net/contact.php
Conectado...
Tamanho do arquivo: 4589
Encontrado o tipo de mídia: text/html;CHARSET=Windows-1252
Algum progresso, já baixados 0 até agora
Algum progresso, já baixados 0 até agora
Algum progresso, já baixados 0 até agora
Algum progresso, já baixados 1440 até agora
Algum progresso, já baixados 2880 até agora
Algum progresso, já baixados 4320 até agora
Algum progresso, já baixados 5760 até agora
Algum progresso, já baixados 6381 até agora
Algum progresso, já baixados 7002 até agora

Exemplo #2 Barra de progresso simples para cliente de download em linha de comando

<?php
function usage($argv) {
echo "Uso:\n";
printf("\tphp %s <http://example.com/file> <localfile>\n", $argv[0]);
exit(1);
}

function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {
static $filesize = null;

switch($notification_code) {
case STREAM_NOTIFY_RESOLVE:
case STREAM_NOTIFY_AUTH_REQUIRED:
case STREAM_NOTIFY_COMPLETED:
case STREAM_NOTIFY_FAILURE:
case STREAM_NOTIFY_AUTH_RESULT:
/* Ignore */
break;

case STREAM_NOTIFY_REDIRECTED:
echo "Sendo redirecionado para: ", $message, "\n";
break;

case STREAM_NOTIFY_CONNECT:
echo "Conectado...\n";
break;

case STREAM_NOTIFY_FILE_SIZE_IS:
$filesize = $bytes_max;
echo "Tamanho do arquivo: ", $filesize, "\n";
break;

case STREAM_NOTIFY_MIME_TYPE_IS:
echo "Tipo de mídia: ", $message, "\n";
break;

case STREAM_NOTIFY_PROGRESS:
if ($bytes_transferred > 0) {
if (!isset($filesize)) {
printf("\rTamanho de arquivo desconhecido.. %2d kb concluídos..", $bytes_transferred/1024);
} else {
$length = (int)(($bytes_transferred/$filesize)*100);
printf("\r[%-100s] %d%% (%2d/%2d kb)", str_repeat("=", $length). ">", $length, ($bytes_transferred/1024), $filesize/1024);
}
}
break;
}
}

isset($argv[1], $argv[2]) or usage($argv);

$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

$fp = fopen($argv[1], "r", false, $ctx);
if (is_resource($fp) && file_put_contents($argv[2], $fp)) {
echo "\nPronto!\n";
exit(0);
}

$err = error_get_last();
echo "\nErrrrro..\n", $err["message"], "\n";
exit(1);
?>

Executing the example above with: php -n fetch.php http://no2.php.net/get/php-5-LATEST.tar.bz2/from/this/mirror php-latest.tar.bz2 will output something similar too:

Conectado...
Tipo de mídia: text/html; CHARSET=Windows-1252
Sendo redirecionado para: http://no2.php.net/distributions/php-5.2.5.tar.bz2
Conectado...
Tamanho do arquivo: 7773024
Tipo de mídia: application/octet-stream
[========================================>                                                           ] 40% (3076/7590 kb)

Veja Também

  • Parâmetros de contexto


Sinônimo de stream_wrapper_register

  • « stream_notification_callback
  • stream_resolve_include_path »
  • PHP Manual
  • Funções de Fluxo
  • Sinônimo de stream_wrapper_register

stream_register_wrapper

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_register_wrapper — Sinônimo de stream_wrapper_register()

Descrição

Esta função é um apelido para: stream_wrapper_register().


Resolve o nome do arquivo em relação ao caminho de include

  • « stream_register_wrapper
  • stream_select »
  • PHP Manual
  • Funções de Fluxo
  • Resolve o nome do arquivo em relação ao caminho de include

stream_resolve_include_path

(PHP 5 >= 5.3.2, PHP 7, PHP 8)

stream_resolve_include_path — Resolve o nome do arquivo em relação ao caminho de include

Descrição

stream_resolve_include_path(string $filename): string|false

Resolve filename em relação ao caminho de include de acordo com as mesmas regras que fopen()/include.

Parâmetros

filename

O nome de arquivo a resolver.

Valor Retornado

Retorna uma string contendo o caminho absoluto para o arquivo, ou false em caso de falha.

Exemplos

Exemplo #1 stream_resolve_include_path() example

Exemplo básico de uso.

<?php
var_dump(stream_resolve_include_path("test.php"));
?>

O exemplo acima produzirá algo semelhante a:

string(22) "/var/www/html/test.php"


Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos

  • « stream_resolve_include_path
  • stream_set_blocking »
  • PHP Manual
  • Funções de Fluxo
  • Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos

stream_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_select — Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos

Descrição

stream_select(
?array &$read,
?array &$write,
?array &$except,
?int $seconds,
?int $microseconds = null
): int|false

A função stream_select() aceita arrays de fluxos e espera por alteração em seus estados. Sua operação é equivalente à da função socket_select() exceto por atuar em fluxos.

Parâmetros

read

Os fluxos listados no array read serão observados para ver se caracteres se tornem disponíveis para leitura (mais precisamente, para ver se uma leitura não irá bloquear - em particular, um recurso de fluxo já se encontra pronto no final do arquivo, neste caso a função fread() irá retornar uma string com comprimento zero).

write

Os fluxos listados no array write serão observados para ver se uma escrita não irá bloquear.

except

Os fluxos listados no array except serão observados para chegada de dados excepcional ("fora-de-banda") de alta prioridade.

Nota:

Quando stream_select() retorna, os arrays read, write e except são modificados para indicar qual(is) recurso(s) de fluxo realmente tiveram o estado alterado. As chaves originais dos arrays são preservadas.

seconds

Os parâmetros seconds e microseconds formam juntos o parâmetro limite de tempo, seconds especifica o número de segundos e microseconds o número de microssegundos. O parâmetro timeout é um limite do tempo que stream_select() irá esperar antes de retornar. Se tanto seconds quanto microseconds forem iguais a 0, stream_select() não irá esperar por dados - em vez disso irá retornar imediatamente, indicando o estado atual dos fluxos.

Se seconds for null stream_select() pode bloquear indefinidamente, retornando somente quando um evento em algum dos fluxos observados ocorrer (ou se um sinal interromper a chamada de sistema).

Aviso

Usando um valor de 0 no limite de tempo permite que se faça pesquisa instantânea dos estados dos fluxos, entretanto, NÃO é recomendado usar um limite de 0 em um loop pois poderá causar um consumo excessivo de tempo de CPU.

É muito melhor especificar um limite de tempo de alguns segundos, embora caso seja necessário ficar verificando e executando outro código concorrentemente, usar um limite de pelo menos 200000 microssegundos ajudará a reduzir o consumo de CPU do seu script.

Lembre-se que o valor de limite de tempo é o tempo máximo que irá decorrer; stream_select() irá retornar tão logo os fluxos requisitados estiverem prontos para uso.

microseconds

Veja descrição de seconds.

Valor Retornado

Em caso de sucesso, stream_select() retorna o número de recursos de fluxo contidos nos arrays modificados, o que pode ser zero se o limite de tempo for alcançado antes que alguma coisa interessante aconteça. Em caso de erro, false é retornado e um aviso é emitido (isto pode acontecer se a chamada ao sistema for interrompida por algum sinal).

Registro de Alterações

Versão | Descrição
8.1.0 | microseconds agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de stream_select()

Este exemplo verifica se dados chegaram para leitura em $stream1 ou $stream2. Como o valor de limite de tempo é 0 a função retornará imediatamente:

<?php
/* Prepara o array de leitura */
$read = array($stream1, $stream2);
$write = NULL;
$except = NULL;
if (false === ($num_changed_streams = stream_select($read, $write, $except, 0))) {
/* Lidando com erros */
} elseif ($num_changed_streams > 0) {
/* Pelo menos em um dos fluxos algo interessante ocorreu */
}
?>

Notas

Nota:

Devido a uma limitação no motor Zend atual, não é possível passar um modificador de constante como null diretamente como um parâmetro para uma função que espera que o parâmetro seja passado por referência. Em vez disso, use uma variável temporária ou uma expressão com o membro mais a esquerda sendo uma variável temporária:

<?php
$e = NULL;
stream_select($r, $w, $e, 0);
?>

Nota:

Certifique-se de usar o operador === na verificação de erro. Como a função stream_select() pode retornar 0, a comparação com == pode ser interpretada como true:

<?php
$e = NULL;
if (false === stream_select($r, $w, $e, 0)) {
echo "stream_select() falhou\n";
}
?>

Nota:

Se for realizada leitura/escrita em um fluxo retornado nos arrays, esteja ciente que não necessariamente serão lidos/escritos todos os dados solicitados. Esteja preparado para a possibilidade de se ler/escrever apenas um único byte.

Nota:

Alguns fluxos (como zlib) não podem ser selecionados por esta função.

Nota: Compatibilidade com Windows

O uso de stream_select() em descritores de arquivos retornados por proc_open() irão falhar e retornar false no Windows.

STDIN de um console muda de estado assim que qualquer evento de entrada estiver disponível, mas a leitura do fluxo ainda poderá bloquear.

Veja Também

  • stream_set_blocking() - Definir modo de bloqueio/não-bloqueio em um fluxo


Definir modo de bloqueio/não-bloqueio em um fluxo

  • « stream_select
  • stream_set_chunk_size »
  • PHP Manual
  • Funções de Fluxo
  • Definir modo de bloqueio/não-bloqueio em um fluxo

stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_set_blocking — Definir modo de bloqueio/não-bloqueio em um fluxo

Descrição

stream_set_blocking(resource $stream, bool $enable): bool

Definir modo de bloqueio ou não-bloqueio em um fluxo informado em stream.

Esta função funciona para qualquer fluxo que suporte modo de não-bloqueio (atualmente, arquivos comuns e fluxos de socket).

Parâmetros

stream

O fluxo.

enable

Se enable for false, o fluxo informado será trocado para o modo de não-bloqueio, e se for true, será trocado para o modo de bloqueio. Isto afeta chamadas como fgets() e fread() que lêem do fluxo. Em modo de não-bloqueio, uma chamada a fgets() irá sempre retornar imediatamente, enquanto que em modo de bloqueio, ela irá esperar que dados fiquem disponíveis no fluxo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Nota:

No Windows, isto não tem efeito em arquivos locais. E/S de não-bloqueio em arquivos locais não é suportado no Windows.

Veja Também

  • stream_select() - Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos


Define o tamanho do pacote do fluxo

  • « stream_set_blocking
  • stream_set_read_buffer »
  • PHP Manual
  • Funções de Fluxo
  • Define o tamanho do pacote do fluxo

stream_set_chunk_size

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

stream_set_chunk_size — Define o tamanho do pacote do fluxo

Descrição

stream_set_chunk_size(resource $stream, int $size): int

Define o tamanho do pacote do fluxo.

Parâmetros

stream

O fluxo alvo.

size

O novo tamanho de pacote desejado.

Valor Retornado

Retorna o tamanho anterior em caso de sucesso.

Erros/Exceções

Uma exceção ValueError é disparada se size for menor que 1 ou maior que PHP_INT_MAX.

Registro de Alterações

Versão | Descrição
8.0.0 | Uma exceção ValueError agora é disparada se size for menor que 1 ou maior que PHP_INT_MAX. Anteriormente, um aviso E_WARNING era emitido e false era retornado.


Define o tamanho de buffer de leitura do stream

  • « stream_set_chunk_size
  • stream_set_timeout »
  • PHP Manual
  • Funções de Fluxo
  • Define o tamanho de buffer de leitura do stream

stream_set_read_buffer

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

stream_set_read_buffer — Define o tamanho de buffer de leitura do stream

Descrição

stream_set_read_buffer(resource $stream, int $size): int

Define o tamanho do buffer de leitura. É equivalente a stream_set_write_buffer(), porém para operações de leitura.

Parâmetros

stream

O ponteiro para o arquivo.

size

O número de bytes do buffer. Se size for 0 as operações são realizadas sem buffer. Isto assegura que todas as leituras com fread() estejam completas antes que outros processos possam ler do fluxo de entrada.

Valor Retornado

Retorna 0 em caso de sucesso, ou outro valor se a requisição não puder ser cumprida.

Veja Também

  • stream_set_write_buffer() - Define o tamanho do buffer de escrita do fluxo


Define o limite de tempo em um fluxo

  • « stream_set_read_buffer
  • stream_set_write_buffer »
  • PHP Manual
  • Funções de Fluxo
  • Define o limite de tempo em um fluxo

stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_set_timeout — Define o limite de tempo em um fluxo

Descrição

stream_set_timeout(resource $stream, int $seconds, int $microseconds = 0): bool

Define o valor limite de tempo no fluxo stream, expresso pela soma de seconds e microseconds.

Quando o fluxo expira, a chave 'timed_out' do array retornado pela função stream_get_meta_data() é definida para true, embora nenhum erro/aviso seja gerado.

Parâmetros

stream

O fluxo alvo.

seconds

A parte em segundos do limite de tempo.

microseconds

A parte em microssegundos do limite de tempo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de stream_set_timeout()

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
echo "Não foi possível abrir\n";
} else {

fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
stream_set_timeout($fp, 2);
$res = fread($fp, 2000);

$info = stream_get_meta_data($fp);
fclose($fp);

if ($info['timed_out']) {
echo 'Conexão expirou!';
} else {
echo $res;
}

}
?>

Notas

Nota:

Esta função não funciona com operações avançadas como stream_socket_recvfrom(), em seu lugar use stream_select() com o parâmetro de limite de tempo.

Esta função anteriormente se chamava set_socket_timeout() e depois socket_set_timeout() mas esses usos estão defasados.

Veja Também

  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet
  • fopen() - Abre um arquivo ou URL


Define o tamanho do buffer de escrita do fluxo

  • « stream_set_timeout
  • stream_socket_accept »
  • PHP Manual
  • Funções de Fluxo
  • Define o tamanho do buffer de escrita do fluxo

stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_set_write_buffer — Define o tamanho do buffer de escrita do fluxo

Descrição

stream_set_write_buffer(resource $stream, int $size): int

Define o tamanho do buffer de operações de escrita no fluxo informado em stream para o número de bytes informado em size.

Parâmetros

stream

O ponteiro para o arquivo.

size

O número de bytes do buffer. Se size for 0, as operações de escrita não terão buffer. Isto assegura que todas as operações de escrita com fwrite() estejam completas antes que outros processos possam escrever no fluxo de saída.

Valor Retornado

Retorna 0 em caso de sucesso, ou outro valor se a requisição não puder ser cumprida.

Exemplos

Exemplo #1 Exemplo de stream_set_write_buffer()

O exemplo a seguir demonstra como usar stream_set_write_buffer() para criar fluxo sem buffer.

<?php
$fp = fopen($file, "w");
if ($fp) {
if (stream_set_write_buffer($fp, 0) !== 0) {
// falha na mudança de buffer
}
fwrite($fp, $output);
fclose($fp);
}
?>

Veja Também

  • fopen() - Abre um arquivo ou URL
  • fwrite() - Escrita binary-safe em arquivos


Aceita uma conexão em um socket criado por stream_socket_server

  • « stream_set_write_buffer
  • stream_socket_client »
  • PHP Manual
  • Funções de Fluxo
  • Aceita uma conexão em um socket criado por stream_socket_server

stream_socket_accept

(PHP 5, PHP 7, PHP 8)

stream_socket_accept — Aceita uma conexão em um socket criado por stream_socket_server()

Descrição

stream_socket_accept(resource $socket, ?float $timeout = null, string &$peer_name = null): resource|false

Aceita uma conexão em um socket previamente criado por stream_socket_server().

Parâmetros

socket

O socket do servidor de onde a conexão será aceita.

timeout

Substitui o limite de tempo padrão de aceitação do socket. O tempo deve ser informado em segundos. Por padrão, default_socket_timeout é usado.

peer_name

Será definido para o nome (endereço) do cliente que conectou, se incluído e disponível no transporte selecionado.

Nota:

Pode também ser determinado mais tarde usando stream_socket_get_name().

Valor Retornado

Retorna um fluxo para a conexão de socket aceita ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | timeout agora pode ser nulo.

Notas

Aviso

Esta função não deve ser usada com sockets de servidor UDP. No lugar dela, use stream_socket_recvfrom() e stream_socket_sendto().

Veja Também

  • stream_socket_server() - Cria socket de servidor de domínio Internet ou Unix
  • stream_socket_get_name() - Obtém o nome do socket local ou remoto
  • stream_set_blocking() - Definir modo de bloqueio/não-bloqueio em um fluxo
  • stream_set_timeout() - Define o limite de tempo em um fluxo
  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fgetss() - Ler uma linha de um ponteiro de arquivo e retira as tags HTML
  • fwrite() - Escrita binary-safe em arquivos
  • fclose() - Fecha um ponteiro de arquivo aberto
  • feof() - Testa pelo fim-de-arquivo em um ponteiro de arquivo
  • Funções cURL


Abre conexão de socket de domínio Internet ou Unix

  • « stream_socket_accept
  • stream_socket_enable_crypto »
  • PHP Manual
  • Funções de Fluxo
  • Abre conexão de socket de domínio Internet ou Unix

stream_socket_client

(PHP 5, PHP 7, PHP 8)

stream_socket_client — Abre conexão de socket de domínio Internet ou Unix

Descrição

stream_socket_client(
string $address,
int &$error_code = null,
string &$error_message = null,
?float $timeout = null,
int $flags = STREAM_CLIENT_CONNECT,
?resource $context = null
): resource|false

Inicia uma conexão de fluxo ou datagrada ao destino especificado pelo parâmetro address. O tipo de socket criado é determinado pelo transporte especificado usando-se formatação de URL padrão: transporte://alvo. Para sockets de domínio Internet (AF_INET) tais como TCP e UDP, a porção alvo do parâmetro address deve consistir de um nome de servidor ou endereço IP seguido por dois-pontos e um número de porta. Para sockets de domínio Unix, a porção alvo seve apontar ao arquivo de socket no sistema de arquivos.

Nota:

O fluxo por padrão será aberto em modo de bloqueio. Pode-se trocar para modo de não-bloqueio usando stream_set_blocking().

Parâmetros

address

Endereço ao qual o socket deve se conectar.

error_code

Será definido para o número de erro no nível do sistema se a conexão falhar.

error_message

Será definido para a mensagem de erro no nível do sistema se a conexão falhar.

timeout

Número máximo de segundos que a chamada de sistema connect() deve esperar. Por padrão, default_socket_timeout é usado.

Nota: Este parâmetro aplica-se somente quando não há tentativas de se fazer conexões assíncronas.

Nota:

Para definir um limite de tempo para leitura/escrita de dados no socket, use a função stream_set_timeout(), já que timeout se aplica somente enquanto está sendo feita a conexão ao socket.

flags

Um campo de máscara de bits que pode ser configurada para qualquer combinação de opções de conexão. Atualmente a seleção de opções de conecão está limitada a STREAM_CLIENT_CONNECT (padrão), STREAM_CLIENT_ASYNC_CONNECT e STREAM_CLIENT_PERSISTENT.

context

Um recurso válido de contexto criado com stream_context_create().

Valor Retornado

Em caso de sucesso, um recurso de fluxo é retornado, e pode
ser usado com outras funções de arquivos (como
fgets(), fgetss(),
fwrite(), fclose() e
feof()), false em caso de falha.

Erros/Exceções

Em caso de falha, os argumentos error_code e error_message serão preenchidos com o erro real no que ocorreu na chamada no nível de sistema a connect(). Se o valor retornado em error_code for 0 e a função retornar false, é uma indicação que o erro ocorreu antes da chamada a connect(). Isto é mais provavelmente devido a um problema na inicialização do socket. Note que os argumentos error_code e error_message serão sempre passados por referência.

Registro de Alterações

Versão | Descrição
8.0.0 | timeout e context agora podem ser nulos.

Exemplos

Exemplo #1 Exemplo de stream_socket_client()

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
fwrite($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);
}
?>

Exemplo #2 Usando conexão UDP

Obtendo dia e horário do serviço UDP "daytime" (porta 13) no servidor local.

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
echo "ERRO: $errno - $errstr<br />\n";
} else {
fwrite($fp, "\n");
echo fread($fp, 26);
fclose($fp);
}
?>

Notas

Aviso

Sockets UDP algumas vezes irão aparentar ter sido abertos sem erro, mesmo se o servidor remoto não puder ser contactado. O erro só ficará aparente quando for realizada leitura/escrita no socket. A razão para isto é porque o UDP é um protocolo "sem conexão", o que significa que o sistema operacional não tenta estabelecer uma ligação ao socket até que realmente precise enviar ou receber dados.

Nota: Ao especificar um endereço IPv6 numérico (por exemplo, fe80::1), o IP deve ser colocado entre colchetes — por exemplo, tcp://[fe80::1]:80.

Nota:

Dependendo do ambiente, o domínio Unix ou o limite opcional de tempo de conexão podem não estar disponíveis. Uma lista de transportes disponíveis pode sem obtida usando-se stream_get_transports(). Consulte Lista de Transportes via Socket Suportados para uma lista de transportes incluídos.

Veja Também

  • stream_socket_server() - Cria socket de servidor de domínio Internet ou Unix
  • stream_set_blocking() - Definir modo de bloqueio/não-bloqueio em um fluxo
  • stream_set_timeout() - Define o limite de tempo em um fluxo
  • stream_select() - Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos
  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fgetss() - Ler uma linha de um ponteiro de arquivo e retira as tags HTML
  • fwrite() - Escrita binary-safe em arquivos
  • fclose() - Fecha um ponteiro de arquivo aberto
  • feof() - Testa pelo fim-de-arquivo em um ponteiro de arquivo
  • Funções cURL


Liga ou desliga criptografia em socket já conectado

  • « stream_socket_client
  • stream_socket_get_name »
  • PHP Manual
  • Funções de Fluxo
  • Liga ou desliga criptografia em socket já conectado

stream_socket_enable_crypto

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_socket_enable_crypto — Liga ou desliga criptografia em socket já conectado

Descrição

stream_socket_enable_crypto(
resource $stream,
bool $enable,
?int $crypto_method = null,
?resource $session_stream = null
): int|bool

Liga ou desliga criptografia no fluxo.

Assim que as configurações de criptografia estiverem estabelecidos, a criptografia pode ser ligada e desligada dinamicamente passando-se true ou false no parâmetro enable.

Parâmetros

stream

O recurso representando o fluxo.

enable

Ligar/desligar criptografia no fluxo.

crypto_method

Configura a criptografia no fluxo. Métodos válidos são:

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_TLS_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT (a partir do PHP 7.4.0)
  • STREAM_CRYPTO_METHOD_SSLv2_SERVER
  • STREAM_CRYPTO_METHOD_SSLv3_SERVER
  • STREAM_CRYPTO_METHOD_SSLv23_SERVER
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLS_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_3_SERVER (a partir do PHP 7.4.0)

Se omitido, a opção de contexto crypto_method no contexto SSL do fluxo será usado.

session_stream

Alimenta o fluxo com as configurações de session_stream.

Valor Retornado

Retorna true em caso de sucesso, false se a negociação falhar ou 0 se não houver dados suficientes levando a uma nova tentativa (apenas para sockets em modo de não-bloqueio).

Registro de Alterações

Versão | Descrição
8.0.0 | session_stream agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de stream_socket_enable_crypto()

<?php
$fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
die("Não foi possível conectar: $errstr ($errno)");
}

/* Liga criptografia para a fase de autenticação */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER god\r\n");
fwrite($fp, "PASS secret\r\n");

/* Desliga a criptografia para o restante */
stream_socket_enable_crypto($fp, false);

while ($motd = fgets($fp)) {
echo $motd;
}

fclose($fp);
?>

O exemplo acima produzirá algo semelhante a:

Veja Também

  • OpenSSL Funções
    •

  • Lista de Transportes via Socket Suportados
    •


Obtém o nome do socket local ou remoto

  • « stream_socket_enable_crypto
  • stream_socket_pair »
  • PHP Manual
  • Funções de Fluxo
  • Obtém o nome do socket local ou remoto

stream_socket_get_name

(PHP 5, PHP 7, PHP 8)

stream_socket_get_name — Obtém o nome do socket local ou remoto

Descrição

stream_socket_get_name(resource $socket, bool $remote): string|false

Retorna o nome local ou remoto de uma conexão socket informada.

Parâmetros

socket

O socket do qual se deseja obter o nome.

remote

Se definido para true, o nome do socket remoto será retornado, se definido para false o nome do socket local será retornado.

Valor Retornado

O nome do socket, ou false em caso de falha.

Veja Também

  • stream_socket_accept() - Aceita uma conexão em um socket criado por stream_socket_server


Cria um par de fluxos de socket conectados e indistinguíveis

  • « stream_socket_get_name
  • stream_socket_recvfrom »
  • PHP Manual
  • Funções de Fluxo
  • Cria um par de fluxos de socket conectados e indistinguíveis

stream_socket_pair

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_socket_pair — Cria um par de fluxos de socket conectados e indistinguíveis

Descrição

stream_socket_pair(int $domain, int $type, int $protocol): array|false

stream_socket_pair() Cria um par de fluxos de socket conectados e indistinguíveis. Esta função é normalmente usada em IPC (Comunicação Entre Processos, da sigla em inglês).

Parâmetros

domain

A família de protocolos a ser usada: STREAM_PF_INET, STREAM_PF_INET6 ou STREAM_PF_UNIX

type

O tipo de comunicação a ser usado: STREAM_SOCK_DGRAM, STREAM_SOCK_RAW, STREAM_SOCK_RDM, STREAM_SOCK_SEQPACKET ou STREAM_SOCK_STREAM

protocol

O protocolo a ser usado: STREAM_IPPROTO_ICMP, STREAM_IPPROTO_IP, STREAM_IPPROTO_RAW, STREAM_IPPROTO_TCP ou STREAM_IPPROTO_UDP

Nota: Favor consultar a lista de constantes de Fluxo para mais detalhes sobre cada constante.

Valor Retornado

Retorna um array com os dois recursos de socket em caso de sucesso, ou false em caso de falha.

Exemplos

Exemplo #1 Um exemplo de stream_socket_pair()

Este exemplo mostra o uso básico de stream_socket_pair() na Comunicação entre Processos.

<?php

$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid = pcntl_fork();

if ($pid == -1) {
die('não foi possível duplicar');

} else if ($pid) {
/* pai */
fclose($sockets[0]);

fwrite($sockets[1], "filho PID: $pid\n");
echo fgets($sockets[1]);

fclose($sockets[1]);

} else {
/* filho */
fclose($sockets[1]);

fwrite($sockets[0], "mensagem do filho\n");
echo fgets($sockets[0]);

fclose($sockets[0]);
}

?>

O exemplo acima produzirá algo semelhante a:

filho PID: 1378
mensagem do filho


Recebe dados de um socket, conectado ou não

  • « stream_socket_pair
  • stream_socket_sendto »
  • PHP Manual
  • Funções de Fluxo
  • Recebe dados de um socket, conectado ou não

stream_socket_recvfrom

(PHP 5, PHP 7, PHP 8)

stream_socket_recvfrom — Recebe dados de um socket, conectado ou não

Descrição

stream_socket_recvfrom(
resource $socket,
int $length,
int $flags = 0,
?string &$address = null
): string|false

stream_socket_recvfrom() aceita dados de um socket remoto até a quantidade de bytes definida por length.

Parâmetros

socket

O socket remoto.

length

O número de bytes a receber do socket.

flags

O valor de flags pode ser qualquer combinação das opções a seguir:

Valores possíveis para flags
STREAM_OOB | Processa dados fora-de-banda (do inglês OOB out-of-band).
STREAM_PEEK | Recebe dados do socket, mas não consome o buffer. Chamadas subsequentes a fread() ou stream_socket_recvfrom() irão ver os mesmos dados.

address

Se address for fornecido, será preenchido com o endereço do socket remoto.

Valor Retornado

Retorna os dados lidos, como uma string, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de stream_socket_recvfrom()

<?php
/* Abre um socket de servidor na porta 1234 no servidor local */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Aceita uma conexão */
$socket = stream_socket_accept($server);

/* Pega um pacote (1500 é um tamanho típico de MTU) de dados OOB */
echo "Recebido Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Dá uma olhada nos dados normais dentro-da-banda, mas não os consome. */
echo "Dados: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Obtém o mesmo pacote novamente, mas remove-o do buffer desta vez. */
echo "Dados: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Fecha tudo */
fclose($socket);
fclose($server);
?>

Notas

Nota:

Se uma mensagem recebida for maior que o parâmetro length, os bytes excedentes podem ser descartados dependendo do tipo do socket do qual a mensagem for recebida (como no UDP).

Nota:

Chamadas a stream_socket_recvfrom() em fluxos baseados em socket, depois de chamadas a funções de fluxo baseadas em buffer (como fread() ou stream_get_line()) lêem dados diretamente do socket e ignoram o buffer de fluxo.

Veja Também

  • stream_socket_sendto() - Envia uma mensagem a um socket, conectado ou não
  • stream_socket_client() - Abre conexão de socket de domínio Internet ou Unix
  • stream_socket_server() - Cria socket de servidor de domínio Internet ou Unix


Envia uma mensagem a um socket, conectado ou não

  • « stream_socket_recvfrom
  • stream_socket_server »
  • PHP Manual
  • Funções de Fluxo
  • Envia uma mensagem a um socket, conectado ou não

stream_socket_sendto

(PHP 5, PHP 7, PHP 8)

stream_socket_sendto — Envia uma mensagem a um socket, conectado ou não

Descrição

stream_socket_sendto(
resource $socket,
string $data,
int $flags = 0,
string $address = ""
): int|false

Envia os dados especificados em data através do socket.

Parâmetros

socket

O socket ao qual serão enviados os dados especificados em data.

data

Os dados a serem enviados.

flags

O valor de flags pode ser qualquer combinação a seguir:

Possíveis valores para flags
STREAM_OOB Processa dados fora-de-banda (do inglês OOB, out-of-band).

address

O endereço especificado quando o fluxo do socket foi criado será usado a menos que um endereço alternativo seja especificado em address.

Se especificado, deve estar no formato de quadrante pontilhado (::), ou [ipv6].

Valor Retornado

Retorna um código de resultado, como um inteiro, ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de stream_socket_sendto()

<?php
/* Abre um socket na porta 1234 do servidor local */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Envia dados comuns por canais comuns. */
fwrite($socket, "Transmissão normal de dados.");

/* Envia mais dados fora de banda. */
stream_socket_sendto($socket, "Dados Fora da Banda.", STREAM_OOB);

/* Fecha o socket */
fclose($socket);
?>

Veja Também

  • stream_socket_recvfrom() - Recebe dados de um socket, conectado ou não
  • stream_socket_client() - Abre conexão de socket de domínio Internet ou Unix
  • stream_socket_server() - Cria socket de servidor de domínio Internet ou Unix


Cria socket de servidor de domínio Internet ou Unix

  • « stream_socket_sendto
  • stream_socket_shutdown »
  • PHP Manual
  • Funções de Fluxo
  • Cria socket de servidor de domínio Internet ou Unix

stream_socket_server

(PHP 5, PHP 7, PHP 8)

stream_socket_server — Cria socket de servidor de domínio Internet ou Unix

Descrição

stream_socket_server(
string $address,
int &$error_code = null,
string &$error_message = null,
int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,
?resource $context = null
): resource|false

Cria um socket de fluxo ou datagrama no endereço especificado em address.

Este função apenas cria um socket, para começar a aceitar conexões use stream_socket_accept().

Parâmetros

address

O tipo de socket criado é determinado pelo transporte especificado utilizando-se o formato padrão de URL: transporte://alvo.

Para sockets do domínio da Internet (AF_INET) como TCP e UDP, a porção alvo do parâmetro remote_socket deve sonsistir de um nome de servidor ou endereço IP seguido de dois-pontos e um número de porta. Para sockets do domínio Unix, a porção alvo deve apontar para o arquivo de socket do sistema de arquivos.

Dependendo do ambiente, sockets do domínio Unix podem não estar disponíveis. Uma lista de transportes disponíveis pode ser obtida usando a função stream_get_transports(). Consulte Lista de Transportes via Socket Suportados para uma lista de transportes existentes.

error_code

Se or argumentos opcionais error_code e error_message estiverem presentes, eles serão definidos para indicar o erro real que ocorreu ocorreu nas chamadas de sistema socket(), bind() e listen(). Se o valor retornado em error_code for 0 e a função retornou false, é um indicativo que o erro ocorreu antes da chamada a bind(). Isto mais provavelmente será devido a um problema na inicialização do socket. Note que os argumentos error_code e error_message serão sempre passados por referência.

error_message

Consulte a descrição para error_code.

flags

Um campo de máscara de bits que pode ser definido para qualquer combinação de opções de criação de sockets.

Nota:

Para sockets UDP, deve ser usado STREAM_SERVER_BIND como o parâmetro flags.

context

Valor Retornado

Retorna o fluxo criado, ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.0.0 | context agora pode ser nulo.

Exemplos

Exemplo #1 Usando sockets de servidor TCP

<?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)) {
fwrite($conn, 'O horário atual é ' . date('n/j/Y g:i a') . "\n");
fclose($conn);
}
fclose($socket);
}
?>

O exemplo abaixo mostra como agir como um servidor de data/hora que pode responder a requisições de horário como mostrado em um exemplo de stream_socket_client().

Nota: A maioria dos sistemas requerem acesso de administrador para criar um socket de servidor em portas abaixo de 1024.

Exemplo #2 Usando sockets de servidor usando UDP

<?php
$socket = stream_socket_server("udp://127.0.0.1:1113", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
die("$errstr ($errno)");
}

do {
$pkt = stream_socket_recvfrom($socket, 1, 0, $peer);
echo "$peer\n";
stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer);
} while ($pkt !== false);

?>

Notas

Nota: Ao especificar um endereço IPv6 numérico (por exemplo, fe80::1), o IP deve ser colocado entre colchetes — por exemplo, tcp://[fe80::1]:80.

Veja Também

  • stream_socket_client() - Abre conexão de socket de domínio Internet ou Unix
  • stream_set_blocking() - Definir modo de bloqueio/não-bloqueio em um fluxo
  • stream_set_timeout() - Define o limite de tempo em um fluxo
  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fgetss() - Ler uma linha de um ponteiro de arquivo e retira as tags HTML
  • fwrite() - Escrita binary-safe em arquivos
  • fclose() - Fecha um ponteiro de arquivo aberto
  • feof() - Testa pelo fim-de-arquivo em um ponteiro de arquivo
  • Extensão Curl


Fecha uma conexão full-duplex

  • « stream_socket_server
  • stream_supports_lock »
  • PHP Manual
  • Funções de Fluxo
  • Fecha uma conexão full-duplex

stream_socket_shutdown

(PHP 5 >= 5.2.1, PHP 7, PHP 8)

stream_socket_shutdown — Fecha uma conexão full-duplex

Descrição

stream_socket_shutdown(resource $stream, int $mode): bool

Fecha uma conexão full-duplex (parcialmente ou não).

Nota:

O buffer ou buffers associados podem ou não ser esvaziados.

Parâmetros

stream

Um fluxo aberto (aberto com stream_socket_client(), por exemplo)

mode

Uma das constantes a seguir: STREAM_SHUT_RD (desabilita recepções adicionais), STREAM_SHUT_WR (desabilita transmissões adicionais) ou STREAM_SHUT_RDWR (desabilita transmissões e recepções adicionais).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Um exemplo de stream_socket_shutdown()

<?php

$server = stream_socket_server('tcp://127.0.0.1:1337');
$client = stream_socket_client('tcp://127.0.0.1:1337');

var_dump(fputs($client, "olá!!"));

stream_socket_shutdown($client, STREAM_SHUT_WR);
var_dump(fputs($client, "olá!!")); // agora não funciona

?>

O exemplo acima produzirá algo semelhante a:

int(5)

Notice: fputs(): send of 5 bytes failed with errno=32 Broken pipe in test.php on line 9
int(0)

Veja Também

  • fclose() - Fecha um ponteiro de arquivo aberto


Informa se o fluxo suporta travamento

  • « stream_socket_shutdown
  • stream_wrapper_register »
  • PHP Manual
  • Funções de Fluxo
  • Informa se o fluxo suporta travamento

stream_supports_lock

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

stream_supports_lock — Informa se o fluxo suporta travamento

Descrição

stream_supports_lock(resource $stream): bool

Informa se o fluxo suporta travamento através da função flock().

Parâmetros

stream

O fluxo a ser vetificado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • flock() - Travamento consultivo portável de arquivo


Registra um empacotador URL implementado como uma classe PHP

  • « stream_supports_lock
  • stream_wrapper_restore »
  • PHP Manual
  • Funções de Fluxo
  • Registra um empacotador URL implementado como uma classe PHP

stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

stream_wrapper_register — Registra um empacotador URL implementado como uma classe PHP

Descrição

stream_wrapper_register(string $protocol, string $class, int $flags = 0): bool

Permite a implementação de manipuladores de protocolo e fluxo do usuário para uso com todas as outras funções de sistemas de arquivos (como fopen(), fread() etc.).

Parâmetros

protocol

O nome do empacotador a ser registrado. Nomes de protocolos válidos devem conter somente caracteres alfanuméricos, pontos (.), sinais de adição (+) ou hífens (-).

class

O nome da classe que implementa o protocolo definido no parâmetro protocol.

flags

Deve ser definida para STREAM_IS_URL se protocol for um protocolo URL. O padrão é 0, fluxo local.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

stream_wrapper_register() retornará false se protocol já tiver um manipulador.

Exemplos

Exemplo #1 Como registrar um empacotador de fluxo

<?php
$existed = in_array("var", stream_get_wrappers());
if ($existed) {
stream_wrapper_unregister("var");
}
stream_wrapper_register("var", "VariableStream");
$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "linha1\n");
fwrite($fp, "linha2\n");
fwrite($fp, "linha3\n");

rewind($fp);
while (!feof($fp)) {
echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

if ($existed) {
stream_wrapper_restore("var");
}

?>

O exemplo acima produzirá:

linha1
linha2
linha3
string(18) "linha1
linha2
linha3
"

Veja Também

  • A classe protótipo streamWrapper
  • Exemplo de classe regsitradao como empacotador de fluxo
  • stream_wrapper_unregister() - Desregistra um empacotador URL
  • stream_wrapper_restore() - Restaura um empacotador interno anteriormente desregistrado
  • stream_get_wrappers() - Obtém lista de fluxos registrados


Restaura um empacotador interno anteriormente desregistrado

  • « stream_wrapper_register
  • stream_wrapper_unregister »
  • PHP Manual
  • Funções de Fluxo
  • Restaura um empacotador interno anteriormente desregistrado

stream_wrapper_restore

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_wrapper_restore — Restaura um empacotador interno anteriormente desregistrado

Descrição

stream_wrapper_restore(string $protocol): bool

Restaura um empacotador interno anteriormente desregistrado com stream_wrapper_unregister().

Parâmetros

protocol

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Desregistra um empacotador URL

  • « stream_wrapper_restore
  • Swoole »
  • PHP Manual
  • Funções de Fluxo
  • Desregistra um empacotador URL

stream_wrapper_unregister

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_wrapper_unregister — Desregistra um empacotador URL

Descrição

stream_wrapper_unregister(string $protocol): bool

Permite desabilitar um empacotador de fluxo já definido. Assim que o empacotador tiver sido desabilitado, ele pode ser substituído por um empacotador definido pelo usuário usando stream_wrapper_register(), ou restaurado mais tarde com stream_wrapper_restore().

Parâmetros

protocol

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Swoole

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções Swoole
    • swoole_async_dns_lookup — Pesquisa de nome de host para IP assíncrona e não bloqueante
    • swoole_async_read — Lê o fluxo de arquivo de forma assíncrona
    • swoole_async_readfile — Lê um arquivo de forma assíncrona
    • swoole_async_set — Atualiza as opções de E/S assíncronas
    • swoole_async_write — Escreve dados em um fluxo de arquivo de forma assíncrona
    • swoole_async_writefile — Escreve dados em um arquivo de forma assíncrona
    • swoole_clear_error — Limpa os erros no socket ou no último código de erro
    • swoole_client_select — Obtém a descrição do arquivo que está pronto para leitura/gravação ou erro
    • swoole_cpu_num — Obtém o número de CPUs
    • swoole_errno — Obtém o código de erro da última chamada de sistema
    • swoole_error_log — Retorna mensagens de erro para o log
    • swoole_event_add — Adiciona novas funções de retorno de chamada de um socket no EventLoop
    • swoole_event_defer — Adiciona função de retorno de chamada para o próximo loop de eventos
    • swoole_event_del — Remove todas as funções de retorno de chamada de evento de um socket
    • swoole_event_exit — Sai do eventloop, disponível apenas no lado do cliente
    • swoole_event_set — Atualiza as funções de retorno de chamada de evento de um socket
    • swoole_event_wait — Inicia o loop de eventos
    • swoole_event_write — Escreve dados em um socket
    • swoole_get_local_ip — Obtém os endereços IP IPv4 de cada NIC na máquina
    • swoole_last_error — Obtém a mensagem de erro mais recente
    • swoole_load_module — Carrega uma extensão do Swoole
    • swoole_select — Seleciona as descrições de arquivo que estão prontas para leitura/escrita ou erro no loop de eventos
    • swoole_set_process_name — Define o nome do processo
    • swoole_strerror — Converte o Errno em mensagens de erro
    • swoole_timer_after — Aciona uma função de retorno de chamada única no futuro
    • swoole_timer_exists — Verifica se uma função de retorno de chamada de temporizador existe
    • swoole_timer_tick — Aciona uma função de retorno de chamada de temporizador por intervalo de tempo
    • swoole_version — Obtém a versão do Swoole
  • Swoole\Async — A classe Swoole\Async
    • Swoole\Async::dnsLookup — Pesquisa de host assíncrona e não bloqueante para IP.
    • Swoole\Async::read — Lê fluxo de arquivo de forma assíncrona.
    • Swoole\Async::readFile — Lê um arquivo de forma assíncrona.
    • Swoole\Async::set — Atualiza as opções de E/S assíncronas.
    • Swoole\Async::write — Escreve dados em um fluxo de arquivo de forma assíncrona.
    • Swoole\Async::writeFile — Escreve dados em um arquivo de forma assíncrona.
  • Swoole\Atomic — A classe Swoole\Atomic
    • Swoole\Atomic::add — Adiciona um número ao valor do objeto atômico.
    • Swoole\Atomic::cmpset — Compara e define o valor do objeto atômico.
    • Swoole\Atomic::__construct — Constrói um objeto atômico do Swoole.
    • Swoole\Atomic::get — Obtém o valor atual do objeto atômico.
    • Swoole\Atomic::set — Define um novo valor para o objeto atômico.
    • Swoole\Atomic::sub — Subtrai um número ao valor do objeto atômico.
  • Swoole\Buffer — A classe Swoole\Buffer
    • Swoole\Buffer::append — Anexa a string ou dados binários ao final do buffer de memória e retorna o novo tamanho da memória alocada.
    • Swoole\Buffer::clear — Limpa o buffer de memória.
    • Swoole\Buffer::__construct — Alocação de blocos de memória de tamanho fixo.
    • Swoole\Buffer::__destruct — Destrói o buffer de memória do Swoole.
    • Swoole\Buffer::expand — Expande o tamanho do buffer de memória.
    • Swoole\Buffer::read — Lê dados do buffer de memória com base no deslocamento e no comprimento.
    • Swoole\Buffer::recycle — Libera a memória para o sistema operacional que não está sendo usada pelo buffer de memória.
    • Swoole\Buffer::substr — Lê dados do buffer de memória com base no deslocamento e no comprimento. Ou remove dados do buffer de memória.
    • Swoole\Buffer::__toString — Obtém o valor da string do buffer de memória.
    • Swoole\Buffer::write — Escreve dados no buffer de memória. A memória alocada para o buffer não será alterada.
  • Swoole\Channel — A classe Swoole\Channel
    • Swoole\Channel::__construct — Constrói um canal Swoole
    • Swoole\Channel::__destruct — Destrói um canal Swoole.
    • Swoole\Channel::pop — Lê e retira dados do canal Swoole.
    • Swoole\Channel::push — Escreve e empurra dados para o canal Swoole.
    • Swoole\Channel::stats — Obtém estatísticas do canal Swoole.
  • Swoole\Client — A classe Swoole\Client
    • Swoole\Client::close — Fecha a conexão estabelecida.
    • Swoole\Client::connect — Conecta à porta TCP ou UDP remota.
    • Swoole\Client::__construct — Criar um cliente TCP/UDP síncrono ou assíncrono do Swoole, com ou sem SSL.
    • Swoole\Client::__destruct — Destrói o cliente Swoole.
    • Swoole\Client::getpeername — Obtém o nome do socket remoto da conexão.
    • Swoole\Client::getsockname — Obtém o nome do socket local da conexão.
    • Swoole\Client::isConnected — Verifica se a conexão está estabelecida.
    • Swoole\Client::on — Adiciona funções de retorno de chamada acionadas por eventos.
    • Swoole\Client::pause — Pausa a recepção de dados.
    • Swoole\Client::pipe — Redireciona os dados para outro descritor de arquivo.
    • Swoole\Client::recv — Recebe dados do socket remoto.
    • Swoole\Client::resume — Retoma a recepção de dados.
    • Swoole\Client::send — Envia dados para o socket TCP remoto.
    • Swoole\Client::sendfile — Envia arquivo para o socket TCP remoto.
    • Swoole\Client::sendto — Envia dados para o endereço remoto UDP.
    • Swoole\Client::set — Define os parâmetros do cliente Swoole antes que a conexão seja estabelecida.
    • Swoole\Client::sleep — Remove o cliente TCP do loop de eventos do sistema.
    • Swoole\Client::wakeup — Adiciona o cliente TCP de volta ao loop de eventos do sistema.
  • Swoole\Connection\Iterator — A classe Swoole\Connection\Iterator
    • Swoole\Connection\Iterator::count — Conta conexões.
    • Swoole\Connection\Iterator::current — Retorna a entrada de conexão atual.
    • Swoole\Connection\Iterator::key — Retorna a chave da conexão atual.
    • Swoole\Connection\Iterator::next — Move para a próxima conexão.
    • Swoole\Connection\Iterator::offsetExists — Verifica se o deslocamento existe.
    • Swoole\Connection\Iterator::offsetGet — Deslocamento para recuperar.
    • Swoole\Connection\Iterator::offsetSet — tribui uma conexão ao deslocamento especificado.
    • Swoole\Connection\Iterator::offsetUnset — Desfaz um deslocamento.
    • Swoole\Connection\Iterator::rewind — Rebobina o iterador
    • Swoole\Connection\Iterator::valid — Verifica se a posição atual é válida.
  • Swoole\Coroutine — A classe Swoole\Coroutine
    • Swoole\Coroutine::call_user_func_array — Chama um retorno de chamada com um array de parâmetros
    • Swoole\Coroutine::call_user_func — Chama um retorno de chamada fornecido pelo primeiro parâmetro
    • Swoole\Coroutine::cli_wait — Descrição
    • Swoole\Coroutine::create — Descrição
    • Swoole\Coroutine\Client::close — Descrição
    • Swoole\Coroutine\Client::connect — Descrição
    • Swoole\Coroutine\Client::__construct — Descrição
    • Swoole\Coroutine\Client::__destruct — Descrição
    • Swoole\Coroutine\Client::getpeername — Descrição
    • Swoole\Coroutine\Client::getsockname — Descrição
    • Swoole\Coroutine\Client::isConnected — Descrição
    • Swoole\Coroutine\Client::recv — Descrição
    • Swoole\Coroutine\Client::send — Descrição
    • Swoole\Coroutine\Client::sendfile — Descrição
    • Swoole\Coroutine\Client::sendto — Descrição
    • Swoole\Coroutine\Client::set — Descrição
    • Swoole\Coroutine\Http\Client::addFile — Descrição
    • Swoole\Coroutine\Http\Client::close — Descrição
    • Swoole\Coroutine\Http\Client::__construct — Descrição
    • Swoole\Coroutine\Http\Client::__destruct — Descrição
    • Swoole\Coroutine\Http\Client::execute — Descrição
    • Swoole\Coroutine\Http\Client::get — Descrição
    • Swoole\Coroutine\Http\Client::getDefer — Descrição
    • Swoole\Coroutine\Http\Client::isConnected — Descrição
    • Swoole\Coroutine\Http\Client::post — Descrição
    • Swoole\Coroutine\Http\Client::recv — Descrição
    • Swoole\Coroutine\Http\Client::set — Descrição
    • Swoole\Coroutine\Http\Client::setCookies — Descrição
    • Swoole\Coroutine\Http\Client::setData — Descrição
    • Swoole\Coroutine\Http\Client::setDefer — Descrição
    • Swoole\Coroutine\Http\Client::setHeaders — Descrição
    • Swoole\Coroutine\Http\Client::setMethod — Descrição
    • Swoole\Coroutine\MySQL::close — Descrição
    • Swoole\Coroutine\MySQL::connect — Descrição
    • Swoole\Coroutine\MySQL::__construct — Descrição
    • Swoole\Coroutine\MySQL::__destruct — Descrição
    • Swoole\Coroutine\MySQL::getDefer — Descrição
    • Swoole\Coroutine\MySQL::query — Descrição
    • Swoole\Coroutine\MySQL::recv — Descrição
    • Swoole\Coroutine\MySQL::setDefer — Descrição
    • Swoole\Coroutine::getuid — Descrição
    • Swoole\Coroutine::resume — Descrição
    • Swoole\Coroutine::suspend — Descrição
  • Swoole\Event — A classe Swoole\Event
    • Swoole\Event::add — Adiciona novas funções de retorno de chamada de um socket no EventLoop.
    • Swoole\Event::defer — Adiciona uma função de retorno de chamada ao próximo loop de eventos.
    • Swoole\Event::del — Remove todas as funções de retorno de chamada de eventos de um socket.
    • Swoole\Event::exit — Sai do loop de eventos, disponível apenas no lado do cliente.
    • Swoole\Event::set — Atualiza as funções de retorno de chamada de eventos de um socket.
    • Swoole\Event::wait — Descrição
    • Swoole\Event::write — Escreve dados no socket.
  • Swoole\Exception — A classe Swoole\Exception
  • Swoole\Http\Client — A classe Swoole\Http\Client
    • Swoole\Http\Client::addFile — Adiciona um arquivo ao formulário de postagem.
    • Swoole\Http\Client::close — Fecha a conexão HTTP.
    • Swoole\Http\Client::__construct — Constrói o cliente HTTP assíncrono.
    • Swoole\Http\Client::__destruct — Destrói o cliente HTTP.
    • Swoole\Http\Client::download — Baixa um arquivo do servidor remoto.
    • Swoole\Http\Client::execute — Envia a solicitação HTTP após definir os parâmetros.
    • Swoole\Http\Client::get — Envia solicitação HTTP GET para o servidor remoto.
    • Swoole\Http\Client::isConnected — Verifica se a conexão HTTP está conectada.
    • Swoole\Http\Client::on — Registra função de retorno de chamada pelo nome do evento.
    • Swoole\Http\Client::post — Enviar uma solicitação http POST para o servidor remoto.
    • Swoole\Http\Client::push — Envia dados para o cliente WebSocket.
    • Swoole\Http\Client::set — Atualiza os parâmetros do cliente HTTP.
    • Swoole\Http\Client::setCookies — Define os cookies da requisição HTTP.
    • Swoole\Http\Client::setData — Define os dados do corpo da requisição HTTP.
    • Swoole\Http\Client::setHeaders — Define os cabeçalhos da requisição HTTP.
    • Swoole\Http\Client::setMethod — Define o método da requisição HTTP.
    • Swoole\Http\Client::upgrade — Faz um upgrade para o protocolo websocket.
  • Swoole\Http\Request — A classe Swoole\Http\Request
    • Swoole\Http\Request::__destruct — Destrói a solicitação HTTP.
    • Swoole\Http\Request::rawcontent — Obtém o corpo HTTP POST bruto.
  • Swoole\Http\Response — A classe Swoole\Http\Response
    • Swoole\Http\Response::cookie — Define os cookies da resposta HTTP.
    • Swoole\Http\Response::__destruct — Destrói a resposta HTTP.
    • Swoole\Http\Response::end — Envia dados para a solicitação HTTP e finaliza a resposta.
    • Swoole\Http\Response::gzip — Habilita a compressão gzip do conteúdo da resposta.
    • Swoole\Http\Response::header — Define os cabeçalhos da resposta HTTP.
    • Swoole\Http\Response::initHeader — Inicializa o cabeçalho da resposta HTTP.
    • Swoole\Http\Response::rawcookie — Define cookies brutos na resposta HTTP.
    • Swoole\Http\Response::sendfile — Envia um arquivo através da resposta HTTP.
    • Swoole\Http\Response::status — Define o código de status da resposta HTTP.
    • Swoole\Http\Response::write — Acrescenta conteúdo ao corpo da resposta HTTP.
  • Swoole\Http\Server — A classe Swoole\Http\Server
    • Swoole\Http\Server::on — Vincula a função de retorno (callback) ao servidor HTTP pelo nome do evento.
    • Swoole\Http\Server::start — Iniciar o servidor http swoole.
  • Swoole\Lock — A classe Swoole\Lock
    • Swoole\Lock::__construct — Constrói um bloqueio de memória.
    • Swoole\Lock::__destruct — Destrói um bloqueio de memória do Swoole.
    • Swoole\Lock::lock_read — Bloqueia um bloqueio de leitura-escrita para leitura.
    • Swoole\Lock::lock — Tenta adquirir o bloqueio. Ele vai bloquear se o bloqueio não estiver disponível.
    • Swoole\Lock::trylock_read — Tenta bloquear um bloqueio de leitura-escrita para leitura e retorna imediatamente mesmo que o bloqueio não esteja disponível.
    • Swoole\Lock::trylock — Tenta adquirir o bloqueio e retorna imediatamente mesmo que o bloqueio não esteja disponível.
    • Swoole\Lock::unlock — Libera o bloqueio.
  • Swoole\Mmap — A classe Swoole\Mmap
    • Swoole\Mmap::open — Mapeia um arquivo na memória e retorna o recurso de fluxo que pode ser usado pelas operações de fluxo do PHP.
  • Swoole\MySQL — A classe Swoole\MySQL
    • Swoole\MySQL::close — Fecha a conexão assíncrona do MySQL.
    • Swoole\MySQL::connect — Conecta-se ao servidor MySQL remoto.
    • Swoole\MySQL::__construct — Constrói um cliente assíncrono do MySQL.
    • Swoole\MySQL::__destruct — Destrói o cliente assíncrono do MySQL.
    • Swoole\MySQL::getBuffer — Descrição
    • Swoole\MySQL::on — Registra uma função de retorno de chamada com base no nome do evento.
    • Swoole\MySQL::query — Executa a consulta SQL.
  • Swoole\MySQL\Exception — A classe Swoole\MySQL\Exception
  • Swoole\Process — A classe Swoole\Process
    • Swoole\Process::alarm — Temporizador de alta precisão que dispara um sinal em intervalos fixos.
    • Swoole\Process::close — Fecha a conexão (pipe) para o processo filho.
    • Swoole\Process::__construct — Constrói um processo.
    • Swoole\Process::daemon — Transforma o processo em um processo daemon.
    • Swoole\Process::__destruct — Destrói o processo.
    • Swoole\Process::exec — Executa comandos do sistema.
    • Swoole\Process::exit — Para os processos filhos.
    • Swoole\Process::freeQueue — Destrói a fila de mensagens criada por swoole_process::useQueue.
    • Swoole\Process::kill — Envia sinal para o processo filho.
    • Swoole\Process::name — Define o nome do processo.
    • Swoole\Process::pop — Lê e remove dados da fila de mensagens.
    • Swoole\Process::push — Escreve e insere dados na fila de mensagens.
    • Swoole\Process::read — Lê os dados enviados para o processo.
    • Swoole\Process::signal — Envia sinal para os processos filhos.
    • Swoole\Process::start — Inicia o processo.
    • Swoole\Process::statQueue — Obtém as estatísticas da fila de mensagens usada como método de comunicação entre processos.
    • Swoole\Process::useQueue — Cria uma fila de mensagens como método de comunicação entre o processo pai e os processos filhos.
    • Swoole\Process::wait — Aguarda os eventos dos processos filhos.
    • Swoole\Process::write — Escreve dados na conexão (pipe) e comunica com o processo pai ou processos filhos.
  • Swoole\Redis\Server — A classe Swoole\Redis\Server
    • Swoole\Redis\Server::format — Descrição
    • Swoole\Redis\Server::setHandler — Descrição
    • Swoole\Redis\Server::start — Descrição
  • Swoole\Serialize — A classe Swoole\Serialize
    • Swoole\Serialize::pack — Serializa os dados.
    • Swoole\Serialize::unpack — Desserializa os dados.
  • Swoole\Server — A classe Swoole\Server
    • Swoole\Server::addlistener — Adiciona um novo ouvinte (listener) ao servidor.
    • Swoole\Server::addProcess — Adiciona um processo definido pelo usuário (swoole_process) ao servidor.
    • Swoole\Server::after — Aciona uma função de retorno de chamada após um período de tempo.
    • Swoole\Server::bind — Vincula a conexão a um ID de usuário definido pelo usuário
    • Swoole\Server::clearTimer — Para e destrói um temporizador.
    • Swoole\Server::close — Fecha uma conexão com o cliente.
    • Swoole\Server::confirm — Verifica o status da conexão.
    • Swoole\Server::connection_info — Obtém informações da conexão pelo descritor de arquivo.
    • Swoole\Server::connection_list — Obtém todas as conexões estabelecidas.
    • Swoole\Server::__construct — Constrói um servidor Swoole.
    • Swoole\Server::defer — Atrasa a execução da função de retorno de chamada até o final do EventLoop atual.
    • Swoole\Server\Port::__construct — Constrói uma porta do servidor
    • Swoole\Server\Port::__destruct — Destrói porta do servidor
    • Swoole\Server\Port::on — Registra funções de retorno de chamada por evento.
    • Swoole\Server\Port::set — Define o protocolo da porta do servidor.
    • Swoole\Server::exist — Verifica se a conexão existe.
    • Swoole\Server::finish — Usado no processo de tarefa para enviar o resultado para o processo trabalhador quando a tarefa é concluída.
    • Swoole\Server::getClientInfo — Obtém as informações da conexão pelo descritor de arquivo.
    • Swoole\Server::getClientList — Obtém todas as conexões estabelecidas.
    • Swoole\Server::getLastError — Obtém o código de erro do erro mais recente.
    • Swoole\Server::heartbeat — Verifica todas as conexões no servidor.
    • Swoole\Server::listen — Ouve no IP, porta e tipo de socket fornecidos.
    • Swoole\Server::on — Registra uma função de retorno de chamada pelo nome do evento.
    • Swoole\Server::pause — Para de receber dados da conexão.
    • Swoole\Server::protect — Define a conexão para o modo protegido.
    • Swoole\Server::reload — Reinicia todos os processos do trabalhador (worker).
    • Swoole\Server::resume — Inicia a recepção de dados da conexão.
    • Swoole\Server::send — Envia dados para o cliente.
    • Swoole\Server::sendfile — Envia arquivo para a conexão.
    • Swoole\Server::sendMessage — Envia mensagem para processos de trabalhador por ID.
    • Swoole\Server::sendto — Envia dados para o endereço UDP remoto.
    • Swoole\Server::sendwait — Envia dados para o socket remoto de forma bloqueada.
    • Swoole\Server::set — Define as configurações em tempo de execução do servidor Swoole.
    • Swoole\Server::shutdown — Desliga o processo mestre do servidor, esta função pode ser chamada nos processos de trabalho.
    • Swoole\Server::start — Inicia o servidor Swoole.
    • Swoole\Server::stats — Obtém as estatísticas do servidor Swoole.
    • Swoole\Server::stop — Para o servidor Swoole.
    • Swoole\Server::task — Envia dados para os processos de trabalho de tarefa.
    • Swoole\Server::taskwait — Envia dados para os processos de trabalho de tarefa de forma bloqueante.
    • Swoole\Server::taskWaitMulti — Executa várias tarefas concorrentemente.
    • Swoole\Server::tick — Repete uma função fornecida em cada intervalo de tempo especificado.
  • Swoole\Table — A classe Swoole\Table
    • Swoole\Table::column — Define o tipo de dados e o tamanho das colunas.
    • Swoole\Table::__construct — Constrói uma tabela de memória Swoole com tamanho fixo.
    • Swoole\Table::count — Conta as linhas na tabela, ou conta todos os elementos na tabela se $mode = 1.
    • Swoole\Table::create — Cria a tabela de memória Swoole.
    • Swoole\Table::current — Obtém a linha atual.
    • Swoole\Table::decr — Decrementa o valor na tabela Swoole pelo $row_key e $column_key.
    • Swoole\Table::del — Exclui uma linha na tabela Swoole pelo $row_key.
    • Swoole\Table::destroy — Destrói a tabela Swoole.
    • Swoole\Table::exist — Verifica se uma linha existe pelo $row_key.
    • Swoole\Table::get — Obtém o valor na tabela Swoole pelo $row_key e $column_key.
    • Swoole\Table::incr — Incrementa o valor pelo $row_key e $column_key.
    • Swoole\Table::key — Obtém a chave da linha atual.
    • Swoole\Table::next — Itera para a próxima linha.
    • Swoole\Table::rewind — Rebobina o iterador.
    • Swoole\Table::set — Atualiza uma linha da tabela pelo $row_key.
    • Swoole\Table::valid — Verifica se a linha atual é válida.
  • Swoole\Timer — A classe Swoole\Timer
    • Swoole\Timer::after — Aciona uma função de retorno de chamada após um período de tempo.
    • Swoole\Timer::clear — Exclui um temporizador pelo ID do temporizador.
    • Swoole\Timer::exists — Verifica se um temporizador existe.
    • Swoole\Timer::tick — Repete uma função fornecida em cada intervalo de tempo especificado.
  • Swoole\WebSocket\Frame — A classe Swoole\WebSocket\Frame
  • Swoole\WebSocket\Server — A classe Swoole\WebSocket\Server
    • Swoole\WebSocket\Server::exist — Verifica se o descritor de arquivo existe.
    • Swoole\WebSocket\Server::on — Registra função de retorno de chamada de evento
    • Swoole\WebSocket\Server::pack — Obtém um pacote de dados binários para enviar em um único quadro.
    • Swoole\WebSocket\Server::push — Envia dados para o cliente remoto.
    • Swoole\WebSocket\Server::unpack — Desempacota os dados binários recebidos do cliente.


Introdução

O Swoole é um framework de rede de alto desempenho que utiliza um modelo de E/S assíncrono, não bloqueante e orientado a eventos. Ele pode ser usado para desenvolver serviços TCP, UDP, Unix socket, HTTP e Websocket de alta performance, escaláveis e concorrentes. Para começar, consulte a » Documentação do Swoole.

Nota: Esta extensão não está disponível em plataformas Windows.


Instalação

Utilize --with-swoole[=DIR] ao compilar o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/swoole


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração Swoole
Nome | Padrão | Modificável | Registro de Alterações
swoole.aio_thread_num | 2 | INI_ALL |
swoole.display_errors | On | INI_ALL |
swoole.fast_serialize | Off | INI_ALL |
swoole.unixsock_buffer_size | 8388608 | INI_ALL |
swoole.use_namespace | On | INI_SYSTEM |
swoole.enable_coroutine | On | INI_ALL | Disponível a partir do swoole 4.0.0
swoole.use_shortname | On | INI_ALL | Disponível a partir do swoole 4.0.0
swoole.enable_preemptive_scheduler | Off | INI_ALL | Disponível a partir do swoole 4.4.0
swoole.enable_library | On | INI_ALL | Disponível a partir do swoole 4.0.0

Aqui está uma breve explicação das diretivas de configuração.

swoole.aio_thread_num int

Número de threads de I/O assíncrono POSIX

swoole.display_errors string

Determina se os erros do Swoole devem ser exibidos na tela.

swoole.fast_serialize string

Se deve habilitar o fast_serialize do Swoole.

swoole.unixsock_buffer_size int

Tamanho do buffer do socket Unix.

swoole.use_namespace string

Se deve usar namespaces do PHP.

swoole.enable_coroutine string

Se deve habilitar coroutine.

swoole.use_shortname string

Se deve habilitar aliases curtos.

swoole.enable_preemptive_scheduler string

Se deve habilitar o agendador preemptivo.

swoole.enable_library string

Se deve habilitar a biblioteca.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SWOOLE_BASE (int)
SWOOLE_THREAD (int)
SWOOLE_PROCESS (int)
SWOOLE_IPC_UNSOCK (int)
SWOOLE_IPC_MSGQUEUE (int)
SWOOLE_IPC_PREEMPTIVE (int)
SWOOLE_SOCK_TCP (int)
SWOOLE_SOCK_TCP6 (int)
SWOOLE_SOCK_UDP (int)
SWOOLE_SOCK_UDP6 (int)
SWOOLE_SOCK_UNIX_DGRAM (int)
SWOOLE_SOCK_UNIX_STREAM (int)
SWOOLE_TCP (int)
SWOOLE_TCP6 (int)
SWOOLE_UDP (int)
SWOOLE_UDP6 (int)
SWOOLE_UNIX_DGRAM (int)
SWOOLE_UNIX_STREAM (int)
SWOOLE_SOCK_SYNC (int)
SWOOLE_SOCK_ASYNC (int)
SWOOLE_SYNC (int)
SWOOLE_ASYNC (int)
SWOOLE_KEEP (int)
SWOOLE_EVENT_READ (int)
SWOOLE_EVENT_WRITE (int)
SWOOLE_VERSION (string)
SWOOLE_AIO_BASE (int)
SWOOLE_AIO_LINUX (int)
SWOOLE_FILELOCK (int)
SWOOLE_MUTEX (int)
SWOOLE_SEM (int)
SWOOLE_RWLOCK (int)
WEBSOCKET_OPCODE_TEXT (int)
WEBSOCKET_OPCODE_BINARY (int)
WEBSOCKET_OPCODE_PING (int)
WEBSOCKET_STATUS_CONNECTION (int)
WEBSOCKET_STATUS_HANDSHAKE (int)
WEBSOCKET_STATUS_FRAME (int)
WEBSOCKET_STATUS_ACTIVE (int)
SWOOLE_FAST_PACK (int)
SWOOLE_LOG_DEBUG (int)
Log de depuração. Disponível a partir do swoole 2.1.2.
SWOOLE_LOG_TRACE (int)
Log de rastreamento. Disponível a partir do swoole 2.1.2.
SWOOLE_LOG_INFO (int)
Log de informações. Disponível a partir do swoole 2.1.2.
SWOOLE_LOG_NOTICE (int)
Log de aviso. Disponível a partir do swoole 2.1.2.
SWOOLE_LOG_WARNING (int)
Log de advertência. Disponível a partir do swoole 2.1.2.
SWOOLE_LOG_ERROR (int)
Log de erro. Disponível a partir do swoole 2.1.2.
SWOOLE_LOG_NONE (int)
Sem log. Disponível a partir do swoole 4.3.2.


Funções Swoole

Índice

  • swoole_async_dns_lookup — Pesquisa de nome de host para IP assíncrona e não bloqueante
  • swoole_async_read — Lê o fluxo de arquivo de forma assíncrona
  • swoole_async_readfile — Lê um arquivo de forma assíncrona
  • swoole_async_set — Atualiza as opções de E/S assíncronas
  • swoole_async_write — Escreve dados em um fluxo de arquivo de forma assíncrona
  • swoole_async_writefile — Escreve dados em um arquivo de forma assíncrona
  • swoole_clear_error — Limpa os erros no socket ou no último código de erro
  • swoole_client_select — Obtém a descrição do arquivo que está pronto para leitura/gravação ou erro
  • swoole_cpu_num — Obtém o número de CPUs
  • swoole_errno — Obtém o código de erro da última chamada de sistema
  • swoole_error_log — Retorna mensagens de erro para o log
  • swoole_event_add — Adiciona novas funções de retorno de chamada de um socket no EventLoop
  • swoole_event_defer — Adiciona função de retorno de chamada para o próximo loop de eventos
  • swoole_event_del — Remove todas as funções de retorno de chamada de evento de um socket
  • swoole_event_exit — Sai do eventloop, disponível apenas no lado do cliente
  • swoole_event_set — Atualiza as funções de retorno de chamada de evento de um socket
  • swoole_event_wait — Inicia o loop de eventos
  • swoole_event_write — Escreve dados em um socket
  • swoole_get_local_ip — Obtém os endereços IP IPv4 de cada NIC na máquina
  • swoole_last_error — Obtém a mensagem de erro mais recente
  • swoole_load_module — Carrega uma extensão do Swoole
  • swoole_select — Seleciona as descrições de arquivo que estão prontas para leitura/escrita ou erro no loop de eventos
  • swoole_set_process_name — Define o nome do processo
  • swoole_strerror — Converte o Errno em mensagens de erro
  • swoole_timer_after — Aciona uma função de retorno de chamada única no futuro
  • swoole_timer_exists — Verifica se uma função de retorno de chamada de temporizador existe
  • swoole_timer_tick — Aciona uma função de retorno de chamada de temporizador por intervalo de tempo
  • swoole_version — Obtém a versão do Swoole


Pesquisa de nome de host para IP assíncrona e não bloqueante

  • « Funções Swoole
  • swoole_async_read »
  • PHP Manual
  • Funções Swoole
  • Pesquisa de nome de host para IP assíncrona e não bloqueante

swoole_async_dns_lookup

(PECL swoole >= 1.9.0)

swoole_async_dns_lookup — Pesquisa de nome de host para IP assíncrona e não bloqueante

Descrição

swoole_async_dns_lookup(string $hostname, callable $callback): bool

Parâmetros

hostname

O nome do host.

callback
callback(string $hostname, string $ip): mixed
hostname

O nome do host.

IP

O endereço IP.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Lê o fluxo de arquivo de forma assíncrona

  • « swoole_async_dns_lookup
  • swoole_async_readfile »
  • PHP Manual
  • Funções Swoole
  • Lê o fluxo de arquivo de forma assíncrona

swoole_async_read

(PECL swoole >= 1.9.0)

swoole_async_read — Lê o fluxo de arquivo de forma assíncrona

Descrição

swoole_async_read(
string $filename,
callable $callback,
int $chunk_size = 65536,
int $offset = 0
): bool

Parâmetros

filename

O nome do arquivo sendo lido.

callback
callback(string $filename, string $content): mixed
filename

O nome do arquivo.

content

O conteúdo lido do fluxo de arquivo.

chunk_size

O comprimento do bloco.

offset

O deslocamento.

Valor Retornado

Se a leitura for bem-sucedida.


Lê um arquivo de forma assíncrona

  • « swoole_async_read
  • swoole_async_set »
  • PHP Manual
  • Funções Swoole
  • Lê um arquivo de forma assíncrona

swoole_async_readfile

(PECL swoole >= 1.9.0)

swoole_async_readfile — Lê um arquivo de forma assíncrona

Descrição

swoole_async_readfile(string $filename, callable $callback): bool

Parâmetros

filename

O nome do arquivo sendo lido.

callback
callback(string $filename, string $content): mixed
filename

O nome do arquivo.

content

O conteúdo lido do arquivo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Atualiza as opções de E/S assíncronas

  • « swoole_async_readfile
  • swoole_async_write »
  • PHP Manual
  • Funções Swoole
  • Atualiza as opções de E/S assíncronas

swoole_async_set

(PECL swoole >= 1.9.0)

swoole_async_set — Atualiza as opções de E/S assíncronas

Descrição

swoole_async_set(array $settings): void

Parâmetros

settings

Valor Retornado

Nenhum valor é retornado.


Escreve dados em um fluxo de arquivo de forma assíncrona

  • « swoole_async_set
  • swoole_async_writefile »
  • PHP Manual
  • Funções Swoole
  • Escreve dados em um fluxo de arquivo de forma assíncrona

swoole_async_write

(PECL swoole >= 1.9.0)

swoole_async_write — Escreve dados em um fluxo de arquivo de forma assíncrona

Descrição

swoole_async_write(
string $filename,
string $content,
int $offset = ?,
callable $callback = ?
): bool

Parâmetros

filename

O nome do arquivo a ser escrito.

content

O conteúdo a ser escrito no arquivo.

offset

O deslocamento.

callback

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Escreve dados em um arquivo de forma assíncrona

  • « swoole_async_write
  • swoole_clear_error »
  • PHP Manual
  • Funções Swoole
  • Escreve dados em um arquivo de forma assíncrona

swoole_async_writefile

(PECL swoole >= 1.9.0)

swoole_async_writefile — Escreve dados em um arquivo de forma assíncrona

Descrição

swoole_async_writefile(
string $filename,
string $content,
callable $callback = ?,
int $flags = 0
): bool

Parâmetros

filename

O nome do arquivo a ser escrito.

content

O conteúdo a ser escrito no arquivo.

callback

flags

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Limpa os erros no socket ou no último código de erro

  • « swoole_async_writefile
  • swoole_client_select »
  • PHP Manual
  • Funções Swoole
  • Limpa os erros no socket ou no último código de erro

swoole_clear_error

(PECL swoole >= 4.6.0)

swoole_clear_error — Limpa os erros no socket ou no último código de erro

Descrição

swoole_clear_error(): void

Limpa os erros no socket ou no último código de erro.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Obtém a descrição do arquivo que está pronto para leitura/gravação ou erro

  • « swoole_clear_error
  • swoole_cpu_num »
  • PHP Manual
  • Funções Swoole
  • Obtém a descrição do arquivo que está pronto para leitura/gravação ou erro

swoole_client_select

(PECL swoole >= 1.9.0)

swoole_client_select — Obtém a descrição do arquivo que está pronto para leitura/gravação ou erro

Descrição

swoole_client_select(
array &$read_array,
array &$write_array,
array &$error_array,
float $timeout = 0.5
): int

Parâmetros

read_array

write_array

error_array

timeout

Valor Retornado


Obtém o número de CPUs

  • « swoole_client_select
  • swoole_errno »
  • PHP Manual
  • Funções Swoole
  • Obtém o número de CPUs

swoole_cpu_num

(PECL swoole >= 1.9.0)

swoole_cpu_num — Obtém o número de CPUs

Descrição

swoole_cpu_num(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O número de CPUs.


Obtém o código de erro da última chamada de sistema

  • « swoole_cpu_num
  • swoole_error_log »
  • PHP Manual
  • Funções Swoole
  • Obtém o código de erro da última chamada de sistema

swoole_errno

(PECL swoole >= 1.9.0)

swoole_errno — Obtém o código de erro da última chamada de sistema

Descrição

swoole_errno(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retorna mensagens de erro para o log

  • « swoole_errno
  • swoole_event_add »
  • PHP Manual
  • Funções Swoole
  • Retorna mensagens de erro para o log

swoole_error_log

(PECL swoole >= 4.5.8)

swoole_error_log — Retorna mensagens de erro para o log

Descrição

swoole_error_log(int $level, string $msg): void

Retorna mensagens de erro para o log.

Parâmetros

level

Nível de log, constantes podem ser usadas: SWOOLE_LOG_DEBUG, SWOOLE_LOG_TRACE, SWOOLE_LOG_INFO, SWOOLE_LOG_NOTICE, SWOOLE_LOG_WARNING, SWOOLE_LOG_ERROR, SWOOLE_LOG_NONE

msg

Conteúdo da mensagem a ser escrito no log.

Valor Retornado

Nenhum valor é retornado.


Adiciona novas funções de retorno de chamada de um socket no EventLoop

  • « swoole_error_log
  • swoole_event_defer »
  • PHP Manual
  • Funções Swoole
  • Adiciona novas funções de retorno de chamada de um socket no EventLoop

swoole_event_add

(PECL swoole >= 1.9.0)

swoole_event_add — Adiciona novas funções de retorno de chamada de um socket no EventLoop

Descrição

swoole_event_add(
int $fd,
callable $read_callback = ?,
callable $write_callback = ?,
int $events = 0
): int

Parâmetros

fd

read_callback

write_callback

events

Valor Retornado


Adiciona função de retorno de chamada para o próximo loop de eventos

  • « swoole_event_add
  • swoole_event_del »
  • PHP Manual
  • Funções Swoole
  • Adiciona função de retorno de chamada para o próximo loop de eventos

swoole_event_defer

(PECL swoole >= 1.9.0)

swoole_event_defer — Adiciona função de retorno de chamada para o próximo loop de eventos

Descrição

swoole_event_defer(callable $callback): bool

Parâmetros

callback

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Remove todas as funções de retorno de chamada de evento de um socket

  • « swoole_event_defer
  • swoole_event_exit »
  • PHP Manual
  • Funções Swoole
  • Remove todas as funções de retorno de chamada de evento de um socket

swoole_event_del

(PECL swoole >= 1.9.0)

swoole_event_del — Remove todas as funções de retorno de chamada de evento de um socket

Descrição

swoole_event_del(int $fd): bool

Parâmetros

fd

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sai do eventloop, disponível apenas no lado do cliente

  • « swoole_event_del
  • swoole_event_set »
  • PHP Manual
  • Funções Swoole
  • Sai do eventloop, disponível apenas no lado do cliente

swoole_event_exit

(PECL swoole >= 1.9.0)

swoole_event_exit — Sai do eventloop, disponível apenas no lado do cliente

Descrição

swoole_event_exit(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Atualiza as funções de retorno de chamada de evento de um socket

  • « swoole_event_exit
  • swoole_event_wait »
  • PHP Manual
  • Funções Swoole
  • Atualiza as funções de retorno de chamada de evento de um socket

swoole_event_set

(PECL swoole >= 1.9.0)

swoole_event_set — Atualiza as funções de retorno de chamada de evento de um socket

Descrição

swoole_event_set(
int $fd,
callable $read_callback = ?,
callable $write_callback = ?,
int $events = 0
): bool

Parâmetros

fd

read_callback

write_callback

events

Valor Retornado


Inicia o loop de eventos

  • « swoole_event_set
  • swoole_event_write »
  • PHP Manual
  • Funções Swoole
  • Inicia o loop de eventos

swoole_event_wait

(PECL swoole >= 1.9.0)

swoole_event_wait — Inicia o loop de eventos

Descrição

swoole_event_wait(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Escreve dados em um socket

  • « swoole_event_wait
  • swoole_get_local_ip »
  • PHP Manual
  • Funções Swoole
  • Escreve dados em um socket

swoole_event_write

(PECL swoole >= 1.9.0)

swoole_event_write — Escreve dados em um socket

Descrição

swoole_event_write(int $fd, string $data): bool

Parâmetros

fd

data

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Obtém os endereços IP IPv4 de cada NIC na máquina

  • « swoole_event_write
  • swoole_last_error »
  • PHP Manual
  • Funções Swoole
  • Obtém os endereços IP IPv4 de cada NIC na máquina

swoole_get_local_ip

(PECL swoole >= 1.9.0)

swoole_get_local_ip — Obtém os endereços IP IPv4 de cada NIC na máquina

Descrição

swoole_get_local_ip(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém a mensagem de erro mais recente

  • « swoole_get_local_ip
  • swoole_load_module »
  • PHP Manual
  • Funções Swoole
  • Obtém a mensagem de erro mais recente

swoole_last_error

(PECL swoole >= 1.9.0)

swoole_last_error — Obtém a mensagem de erro mais recente

Descrição

swoole_last_error(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Carrega uma extensão do Swoole

  • « swoole_last_error
  • swoole_select »
  • PHP Manual
  • Funções Swoole
  • Carrega uma extensão do Swoole

swoole_load_module

(PECL swoole >= 1.9.0)

swoole_load_module — Carrega uma extensão do Swoole

Descrição

swoole_load_module(string $filename): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Seleciona as descrições de arquivo que estão prontas para leitura/escrita ou erro no loop de eventos

  • « swoole_load_module
  • swoole_set_process_name »
  • PHP Manual
  • Funções Swoole
  • Seleciona as descrições de arquivo que estão prontas para leitura/escrita ou erro no loop de eventos

swoole_select

(PECL swoole >= 1.9.0)

swoole_select — Seleciona as descrições de arquivo que estão prontas para leitura/escrita ou erro no loop de eventos

Descrição

swoole_select(
array &$read_array,
array &$write_array,
array &$error_array,
float $timeout = ?
): int

Parâmetros

read_array

write_array

error_array

timeout

Valor Retornado


Define o nome do processo

  • « swoole_select
  • swoole_strerror »
  • PHP Manual
  • Funções Swoole
  • Define o nome do processo

swoole_set_process_name

(PECL swoole >= 1.9.0)

swoole_set_process_name — Define o nome do processo

Descrição

swoole_set_process_name(string $process_name, int $size = 128): void

Parâmetros

process_name

Valor Retornado


Converte o Errno em mensagens de erro

  • « swoole_set_process_name
  • swoole_timer_after »
  • PHP Manual
  • Funções Swoole
  • Converte o Errno em mensagens de erro

swoole_strerror

(PECL swoole >= 1.9.0)

swoole_strerror — Converte o Errno em mensagens de erro

Descrição

swoole_strerror(int $errno, int $error_type = 0): string

Parâmetros

errno

Valor Retornado


Aciona uma função de retorno de chamada única no futuro

  • « swoole_strerror
  • swoole_timer_exists »
  • PHP Manual
  • Funções Swoole
  • Aciona uma função de retorno de chamada única no futuro

swoole_timer_after

(PECL swoole >= 1.9.0)

swoole_timer_after — Aciona uma função de retorno de chamada única no futuro

Descrição

swoole_timer_after(int $ms, callable $callback, mixed $param = ?): int

Parâmetros

ms

callback

param

Valor Retornado


Verifica se uma função de retorno de chamada de temporizador existe

  • « swoole_timer_after
  • swoole_timer_tick »
  • PHP Manual
  • Funções Swoole
  • Verifica se uma função de retorno de chamada de temporizador existe

swoole_timer_exists

(PECL swoole >= 1.9.0)

swoole_timer_exists — Verifica se uma função de retorno de chamada de temporizador existe

Descrição

swoole_timer_exists(int $timer_id): bool

Parâmetros

timer_id

Valor Retornado


Aciona uma função de retorno de chamada de temporizador por intervalo de tempo

  • « swoole_timer_exists
  • swoole_version »
  • PHP Manual
  • Funções Swoole
  • Aciona uma função de retorno de chamada de temporizador por intervalo de tempo

swoole_timer_tick

(PECL swoole >= 1.9.0)

swoole_timer_tick — Aciona uma função de retorno de chamada de temporizador por intervalo de tempo

Descrição

swoole_timer_tick(int $ms, callable $callback, mixed $param = ?): int

Parâmetros

ms

callback

Valor Retornado


Obtém a versão do Swoole

  • « swoole_timer_tick
  • Swoole\Async »
  • PHP Manual
  • Funções Swoole
  • Obtém a versão do Swoole

swoole_version

(PECL swoole >= 1.9.0)

swoole_version — Obtém a versão do Swoole

Descrição

swoole_version(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A versão do Swoole.


A classe Swoole\Async

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Async {
/* Métodos */
public static dnsLookup(string $hostname, callable $callback): void
public static read(
string $filename,
callable $callback,
int $chunk_size = ?,
int $offset = ?
): bool
public static readFile(string $filename, callable $callback): void
public static set(array $settings): void
public static write(
string $filename,
string $content,
int $offset = ?,
callable $callback = ?
): void
public static writeFile(
string $filename,
string $content,
callable $callback = ?,
string $flags = ?
): void
}

Índice

  • Swoole\Async::dnsLookup — Pesquisa de host assíncrona e não bloqueante para IP.
  • Swoole\Async::read — Lê fluxo de arquivo de forma assíncrona.
  • Swoole\Async::readFile — Lê um arquivo de forma assíncrona.
  • Swoole\Async::set — Atualiza as opções de E/S assíncronas.
  • Swoole\Async::write — Escreve dados em um fluxo de arquivo de forma assíncrona.
  • Swoole\Async::writeFile — Escreve dados em um arquivo de forma assíncrona.


Pesquisa de host assíncrona e não bloqueante para IP.

  • « Swoole\Async
  • Swoole\Async::read »
  • PHP Manual
  • Swoole\Async
  • Pesquisa de host assíncrona e não bloqueante para IP.

Swoole\Async::dnsLookup

(PECL swoole >= 1.9.0)

Swoole\Async::dnsLookup — Pesquisa de host assíncrona e não bloqueante para IP.

Descrição

public static Swoole\Async::dnsLookup(string $hostname, callable $callback): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

hostname

O nome do host.

callback
callback(string $hostname, string $ip): mixed
hostname

O nome do host.

IP

O endereço IP.


Lê fluxo de arquivo de forma assíncrona.

  • « Swoole\Async::dnsLookup
  • Swoole\Async::readFile »
  • PHP Manual
  • Swoole\Async
  • Lê fluxo de arquivo de forma assíncrona.

Swoole\Async::read

(PECL swoole >= 1.9.0)

Swoole\Async::read — Lê fluxo de arquivo de forma assíncrona.

Descrição

public static Swoole\Async::read(
string $filename,
callable $callback,
int $chunk_size = ?,
int $offset = ?
): bool

Parâmetros

filename

O nome do arquivo.

callback
callback(string $filename, string $content): mixed
filename

O nome do arquivo.

content

O conteúdo lido do fluxo de arquivo.

chunk_size

O comprimento do bloco.

offset

O deslocamento.

Valor Retornado

Se a leitura for bem-sucedida.


Lê um arquivo de forma assíncrona.

  • « Swoole\Async::read
  • Swoole\Async::set »
  • PHP Manual
  • Swoole\Async
  • Lê um arquivo de forma assíncrona.

Swoole\Async::readFile

(PECL swoole >= 1.9.0)

Swoole\Async::readFile — Lê um arquivo de forma assíncrona.

Descrição

public static Swoole\Async::readFile(string $filename, callable $callback): void

Parâmetros

filename

O nome do arquivo sendo lido.

callback
callback(string $filename, string $content): mixed
filename

O nome do arquivo.

content

O conteúdo lido do arquivo.


Atualiza as opções de E/S assíncronas.

  • « Swoole\Async::readFile
  • Swoole\Async::write »
  • PHP Manual
  • Swoole\Async
  • Atualiza as opções de E/S assíncronas.

Swoole\Async::set

(PECL swoole >= 1.9.0)

Swoole\Async::set — Atualiza as opções de E/S assíncronas.

Descrição

public static Swoole\Async::set(array $settings): void

Parâmetros

settings


Escreve dados em um fluxo de arquivo de forma assíncrona.

  • « Swoole\Async::set
  • Swoole\Async::writeFile »
  • PHP Manual
  • Swoole\Async
  • Escreve dados em um fluxo de arquivo de forma assíncrona.

Swoole\Async::write

(PECL swoole >= 1.9.0)

Swoole\Async::write — Escreve dados em um fluxo de arquivo de forma assíncrona.

Descrição

public static Swoole\Async::write(
string $filename,
string $content,
int $offset = ?,
callable $callback = ?
): void

Parâmetros

filename

O nome do arquivo sendo escrito.

content

O conteúdo a ser escrito no arquivo.

offset

O deslocamento.

callback


Escreve dados em um arquivo de forma assíncrona.

  • « Swoole\Async::write
  • Swoole\Atomic »
  • PHP Manual
  • Swoole\Async
  • Escreve dados em um arquivo de forma assíncrona.

Swoole\Async::writeFile

(PECL swoole >= 1.9.0)

Swoole\Async::writeFile — Escreve dados em um arquivo de forma assíncrona.

Descrição

public static Swoole\Async::writeFile(
string $filename,
string $content,
callable $callback = ?,
string $flags = ?
): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

filename

O nome do arquivo sendo escrito.

content

O conteúdo a ser escrito no arquivo.

callback

flags


A classe Swoole\Atomic

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Atomic {
/* Métodos */
public add(int $add_value = ?): int
public cmpset(int $cmp_value, int $new_value): int
public get(): int
public set(int $value): int
public sub(int $sub_value = ?): int
}

Índice

  • Swoole\Atomic::add — Adiciona um número ao valor do objeto atômico.
  • Swoole\Atomic::cmpset — Compara e define o valor do objeto atômico.
  • Swoole\Atomic::__construct — Constrói um objeto atômico do Swoole.
  • Swoole\Atomic::get — Obtém o valor atual do objeto atômico.
  • Swoole\Atomic::set — Define um novo valor para o objeto atômico.
  • Swoole\Atomic::sub — Subtrai um número ao valor do objeto atômico.


Adiciona um número ao valor do objeto atômico.

  • « Swoole\Atomic
  • Swoole\Atomic::cmpset »
  • PHP Manual
  • Swoole\Atomic
  • Adiciona um número ao valor do objeto atômico.

Swoole\Atomic::add

(PECL swoole >= 1.9.0)

Swoole\Atomic::add — Adiciona um número ao valor do objeto atômico.

Descrição

public Swoole\Atomic::add(int $add_value = ?): int

Adiciona um número ao valor do objeto atômico.

Parâmetros

add_value

O valor que será adicionado ao valor atual.

Valor Retornado

O novo valor do objeto atômico.


Compara e define o valor do objeto atômico.

  • « Swoole\Atomic::add
  • Swoole\Atomic::__construct »
  • PHP Manual
  • Swoole\Atomic
  • Compara e define o valor do objeto atômico.

Swoole\Atomic::cmpset

(PECL swoole >= 1.9.0)

Swoole\Atomic::cmpset — Compara e define o valor do objeto atômico.

Descrição

public Swoole\Atomic::cmpset(int $cmp_value, int $new_value): int

Parâmetros

cmp_value

O valor a ser comparado com o valor atual do objeto atômico.

new_value

O valor a ser definido para o objeto atômico se o cmp_value for o mesmo que o valor atual do objeto atômico.

Valor Retornado

O novo valor do objeto atômico.


Constrói um objeto atômico do Swoole.

  • « Swoole\Atomic::cmpset
  • Swoole\Atomic::get »
  • PHP Manual
  • Swoole\Atomic
  • Constrói um objeto atômico do Swoole.

Swoole\Atomic::__construct

(PECL swoole >= 1.9.0)

Swoole\Atomic::__construct — Constrói um objeto atômico do Swoole.

Descrição

public Swoole\Atomic::__construct(int $value = ?)

O objeto atômico do Swoole é uma variável inteira que permite a qualquer processador testar e modificar atomicamente. Ele é implementado com base em instruções atômicas da CPU. As variáveis atômicas do Swoole devem ser definidas antes do swoole_server->start.

Compare-and-swap (CAS) é uma instrução atômica usada em multithreading para alcançar sincronização. Ela compara o conteúdo de uma localização de memória com um valor dado e, somente se forem iguais, modifica o conteúdo dessa localização de memória para um novo valor dado.

Parâmetros

value

O valor do objeto atômico.


Obtém o valor atual do objeto atômico.

  • « Swoole\Atomic::__construct
  • Swoole\Atomic::set »
  • PHP Manual
  • Swoole\Atomic
  • Obtém o valor atual do objeto atômico.

Swoole\Atomic::get

(PECL swoole >= 1.9.0)

Swoole\Atomic::get — Obtém o valor atual do objeto atômico.

Descrição

public Swoole\Atomic::get(): int

Obtém o valor atual do objeto atômico.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor atual do objeto atômico.


Define um novo valor para o objeto atômico.

  • « Swoole\Atomic::get
  • Swoole\Atomic::sub »
  • PHP Manual
  • Swoole\Atomic
  • Define um novo valor para o objeto atômico.

Swoole\Atomic::set

(PECL swoole >= 1.9.0)

Swoole\Atomic::set — Define um novo valor para o objeto atômico.

Descrição

public Swoole\Atomic::set(int $value): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

value

O valor a ser definido para o objeto atômico.

Valor Retornado

O valor atual do objeto atômico.


Subtrai um número ao valor do objeto atômico.

  • « Swoole\Atomic::set
  • Swoole\Buffer »
  • PHP Manual
  • Swoole\Atomic
  • Subtrai um número ao valor do objeto atômico.

Swoole\Atomic::sub

(PECL swoole >= 1.9.0)

Swoole\Atomic::sub — Subtrai um número ao valor do objeto atômico.

Descrição

public Swoole\Atomic::sub(int $sub_value = ?): int

Subtrai um número ao valor do objeto atômico.

Parâmetros

sub_value

O valor que será subtraído do valor atual.

Valor Retornado

O valor atual do objeto atômico.


A classe Swoole\Buffer

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Buffer {
/* Métodos */
public append(string $data): int
public clear(): void
public __destruct(): void
public expand(int $size): int
public read(int $offset, int $length): string
public recycle(): void
public substr(int $offset, int $length = ?, bool $remove = ?): string
public __toString(): string
public write(int $offset, string $data): void
}

Índice

  • Swoole\Buffer::append — Anexa a string ou dados binários ao final do buffer de memória e retorna o novo tamanho da memória alocada.
  • Swoole\Buffer::clear — Limpa o buffer de memória.
  • Swoole\Buffer::__construct — Alocação de blocos de memória de tamanho fixo.
  • Swoole\Buffer::__destruct — Destrói o buffer de memória do Swoole.
  • Swoole\Buffer::expand — Expande o tamanho do buffer de memória.
  • Swoole\Buffer::read — Lê dados do buffer de memória com base no deslocamento e no comprimento.
  • Swoole\Buffer::recycle — Libera a memória para o sistema operacional que não está sendo usada pelo buffer de memória.
  • Swoole\Buffer::substr — Lê dados do buffer de memória com base no deslocamento e no comprimento. Ou remove dados do buffer de memória.
  • Swoole\Buffer::__toString — Obtém o valor da string do buffer de memória.
  • Swoole\Buffer::write — Escreve dados no buffer de memória. A memória alocada para o buffer não será alterada.


Anexa a string ou dados binários ao final do buffer de memória e retorna o novo tamanho da memória alocada.

  • « Swoole\Buffer
  • Swoole\Buffer::clear »
  • PHP Manual
  • Swoole\Buffer
  • Anexa a string ou dados binários ao final do buffer de memória e retorna o novo tamanho da memória alocada.

Swoole\Buffer::append

(PECL swoole >= 1.9.0)

Swoole\Buffer::append — Anexa a string ou dados binários ao final do buffer de memória e retorna o novo tamanho da memória alocada.

Descrição

public Swoole\Buffer::append(string $data): int

Parâmetros

data

A string ou dados binários para anexar ao final do buffer de memória.

Valor Retornado

O novo tamanho do buffer de memória.


Limpa o buffer de memória.

  • « Swoole\Buffer::append
  • Swoole\Buffer::__construct »
  • PHP Manual
  • Swoole\Buffer
  • Limpa o buffer de memória.

Swoole\Buffer::clear

(PECL swoole >= 1.9.0)

Swoole\Buffer::clear — Limpa o buffer de memória.

Descrição

public Swoole\Buffer::clear(): void

Parâmetros

Esta função não possui parâmetros.


Alocação de blocos de memória de tamanho fixo.

  • « Swoole\Buffer::clear
  • Swoole\Buffer::__destruct »
  • PHP Manual
  • Swoole\Buffer
  • Alocação de blocos de memória de tamanho fixo.

Swoole\Buffer::__construct

(PECL swoole >= 1.9.0)

Swoole\Buffer::__construct — Alocação de blocos de memória de tamanho fixo.

Descrição

public Swoole\Buffer::__construct(int $size = ?)

Parâmetros

size

O tamanho da memória a ser alocada.


Destrói o buffer de memória do Swoole.

  • « Swoole\Buffer::__construct
  • Swoole\Buffer::expand »
  • PHP Manual
  • Swoole\Buffer
  • Destrói o buffer de memória do Swoole.

Swoole\Buffer::__destruct

(PECL swoole >= 1.9.0)

Swoole\Buffer::__destruct — Destrói o buffer de memória do Swoole.

Descrição

public Swoole\Buffer::__destruct(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.


Expande o tamanho do buffer de memória.

  • « Swoole\Buffer::__destruct
  • Swoole\Buffer::read »
  • PHP Manual
  • Swoole\Buffer
  • Expande o tamanho do buffer de memória.

Swoole\Buffer::expand

(PECL swoole >= 1.9.0)

Swoole\Buffer::expand — Expande o tamanho do buffer de memória.

Descrição

public Swoole\Buffer::expand(int $size): int

Parâmetros

size

O novo tamanho do buffer de memória.

Valor Retornado

O novo tamanho do buffer de memória.


Lê dados do buffer de memória com base no deslocamento e no comprimento.

  • « Swoole\Buffer::expand
  • Swoole\Buffer::recycle »
  • PHP Manual
  • Swoole\Buffer
  • Lê dados do buffer de memória com base no deslocamento e no comprimento.

Swoole\Buffer::read

(PECL swoole >= 1.9.0)

Swoole\Buffer::read — Lê dados do buffer de memória com base no deslocamento e no comprimento.

Descrição

public Swoole\Buffer::read(int $offset, int $length): string

Parâmetros

offset

O deslocamento.

length

O comprimento.

Valor Retornado

Os dados lidos do buffer de memória.


Libera a memória para o sistema operacional que não está sendo usada pelo buffer de memória.

  • « Swoole\Buffer::read
  • Swoole\Buffer::substr »
  • PHP Manual
  • Swoole\Buffer
  • Libera a memória para o sistema operacional que não está sendo usada pelo buffer de memória.

Swoole\Buffer::recycle

(PECL swoole >= 1.9.0)

Swoole\Buffer::recycle — Libera a memória para o sistema operacional que não está sendo usada pelo buffer de memória.

Descrição

public Swoole\Buffer::recycle(): void

Parâmetros

Esta função não possui parâmetros.


Lê dados do buffer de memória com base no deslocamento e no comprimento. Ou remove dados do buffer de memória.

  • « Swoole\Buffer::recycle
  • Swoole\Buffer::__toString »
  • PHP Manual
  • Swoole\Buffer
  • Lê dados do buffer de memória com base no deslocamento e no comprimento. Ou remove dados do buffer de memória.

Swoole\Buffer::substr

(PECL swoole >= 1.9.0)

Swoole\Buffer::substr — Lê dados do buffer de memória com base no deslocamento e no comprimento. Ou remove dados do buffer de memória.

Descrição

public Swoole\Buffer::substr(int $offset, int $length = ?, bool $remove = ?): string

Se $remove for definido como verdadeiro e $offset for definido como 0, os dados serão removidos do buffer. A memória para armazenar os dados será liberada quando o objeto de buffer for destruído.

Parâmetros

offset

O deslocamento.

length

O comprimento.

remove

Se deve remover os dados do buffer de memória.

Valor Retornado

Os dados ou a string lidos do buffer de memória.


Obtém o valor da string do buffer de memória.

  • « Swoole\Buffer::substr
  • Swoole\Buffer::write »
  • PHP Manual
  • Swoole\Buffer
  • Obtém o valor da string do buffer de memória.

Swoole\Buffer::__toString

(PECL swoole >= 1.9.0)

Swoole\Buffer::__toString — Obtém o valor da string do buffer de memória.

Descrição

public Swoole\Buffer::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor da string do buffer de memória.


Escreve dados no buffer de memória. A memória alocada para o buffer não será alterada.

  • « Swoole\Buffer::__toString
  • Swoole\Channel »
  • PHP Manual
  • Swoole\Buffer
  • Escreve dados no buffer de memória. A memória alocada para o buffer não será alterada.

Swoole\Buffer::write

(PECL swoole >= 1.9.0)

Swoole\Buffer::write — Escreve dados no buffer de memória. A memória alocada para o buffer não será alterada.

Descrição

public Swoole\Buffer::write(int $offset, string $data): void

Parâmetros

offset

O deslocamento.

data

Os dados a serem escritos no buffer de memória.

Valor Retornado


A classe Swoole\Channel

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Channel {
/* Métodos */
public __destruct(): void
public pop(): mixed
public push(string $data): bool
public stats(): array
}

Índice

  • Swoole\Channel::__construct — Constrói um canal Swoole
  • Swoole\Channel::__destruct — Destrói um canal Swoole.
  • Swoole\Channel::pop — Lê e retira dados do canal Swoole.
  • Swoole\Channel::push — Escreve e empurra dados para o canal Swoole.
  • Swoole\Channel::stats — Obtém estatísticas do canal Swoole.


Constrói um canal Swoole

  • « Swoole\Channel
  • Swoole\Channel::__destruct »
  • PHP Manual
  • Swoole\Channel
  • Constrói um canal Swoole

Swoole\Channel::__construct

(PECL swoole >= 1.9.0)

Swoole\Channel::__construct — Constrói um canal Swoole

Descrição

public Swoole\Channel::__construct(string $size)

O canal Swoole é uma estrutura de dados na memória que funciona como o Chan em Golang, implementado com base em memória compartilhada e travas de mutex. Pode ser usado como uma fila de mensagens de alto desempenho na memória. Constrói um canal Swoole com um tamanho fixo. O tamanho mínimo de um canal Swoole é 64KB. Exceções serão lançadas se não houver memória suficiente.

Parâmetros

size

O tamanho do canal Swoole.


Destrói um canal Swoole.

  • « Swoole\Channel::__construct
  • Swoole\Channel::pop »
  • PHP Manual
  • Swoole\Channel
  • Destrói um canal Swoole.

Swoole\Channel::__destruct

(PECL swoole >= 1.9.0)

Swoole\Channel::__destruct — Destrói um canal Swoole.

Descrição

public Swoole\Channel::__destruct(): void

Parâmetros

Esta função não possui parâmetros.


Lê e retira dados do canal Swoole.

  • « Swoole\Channel::__destruct
  • Swoole\Channel::push »
  • PHP Manual
  • Swoole\Channel
  • Lê e retira dados do canal Swoole.

Swoole\Channel::pop

(PECL swoole >= 1.9.0)

Swoole\Channel::pop — Lê e retira dados do canal Swoole.

Descrição

public Swoole\Channel::pop(): mixed

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Se o canal estiver vazio, a função retornará false, caso contrário, retornará os dados desserializados.


Escreve e empurra dados para o canal Swoole.

  • « Swoole\Channel::pop
  • Swoole\Channel::stats »
  • PHP Manual
  • Swoole\Channel
  • Escreve e empurra dados para o canal Swoole.

Swoole\Channel::push

(PECL swoole >= 1.9.0)

Swoole\Channel::push — Escreve e empurra dados para o canal Swoole.

Descrição

public Swoole\Channel::push(string $data): bool

Os dados podem ser qualquer variável PHP não vazia. A variável será serializada se não for do tipo string.

Se o tamanho dos dados for superior a 8KB, o canal Swoole usará armazenamento em arquivos temporários.

A função retornará true se a operação de escrita for bem-sucedida, ou false se não houver espaço suficiente.

Parâmetros

data

Os dados para empurrar para o canal Swoole.

Valor Retornado

Se os dados foram empurrados para o canal Swoole.


Obtém estatísticas do canal Swoole.

  • « Swoole\Channel::push
  • Swoole\Client »
  • PHP Manual
  • Swoole\Channel
  • Obtém estatísticas do canal Swoole.

Swoole\Channel::stats

(PECL swoole >= 1.9.0)

Swoole\Channel::stats — Obtém estatísticas do canal Swoole.

Descrição

public Swoole\Channel::stats(): array

Obtenha o número de elementos na fila e o tamanho total da memória usada pela fila.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

As estatísticas do canal Swoole.


A classe Swoole\Client

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Client {
/* Constantes */
const int MSG_OOB = 1;
const int MSG_PEEK = 2;
const int MSG_DONTWAIT = 128;
const int MSG_WAITALL = 64;
/* Propriedades */
public $errCode;
public $sock;
public $reuse;
public $reuseCount;
/* Métodos */
public close(bool $force = ?): bool
public connect(
string $host,
int $port = ?,
int $timeout = ?,
int $flag = ?
): bool
public __destruct(): void
public getpeername(): array
public getsockname(): array
public isConnected(): bool
public on(string $event, callable $callback): void
public pause(): void
public pipe(string $socket): void
public recv(string $size = ?, string $flag = ?): void
public resume(): void
public send(string $data, string $flag = ?): int
public sendfile(string $filename, int $offset = ?): bool
public sendto(string $ip, int $port, string $data): bool
public set(array $settings): void
public sleep(): void
public wakeup(): void
}

Propriedades

errCode

sock

reuse

reuseCount

Constantes pré-definidas

Swoole\Client::MSG_OOB

Swoole\Client::MSG_PEEK

Swoole\Client::MSG_DONTWAIT

Swoole\Client::MSG_WAITALL

Índice

  • Swoole\Client::close — Fecha a conexão estabelecida.
  • Swoole\Client::connect — Conecta à porta TCP ou UDP remota.
  • Swoole\Client::__construct — Criar um cliente TCP/UDP síncrono ou assíncrono do Swoole, com ou sem SSL.
  • Swoole\Client::__destruct — Destrói o cliente Swoole.
  • Swoole\Client::getpeername — Obtém o nome do socket remoto da conexão.
  • Swoole\Client::getsockname — Obtém o nome do socket local da conexão.
  • Swoole\Client::isConnected — Verifica se a conexão está estabelecida.
  • Swoole\Client::on — Adiciona funções de retorno de chamada acionadas por eventos.
  • Swoole\Client::pause — Pausa a recepção de dados.
  • Swoole\Client::pipe — Redireciona os dados para outro descritor de arquivo.
  • Swoole\Client::recv — Recebe dados do socket remoto.
  • Swoole\Client::resume — Retoma a recepção de dados.
  • Swoole\Client::send — Envia dados para o socket TCP remoto.
  • Swoole\Client::sendfile — Envia arquivo para o socket TCP remoto.
  • Swoole\Client::sendto — Envia dados para o endereço remoto UDP.
  • Swoole\Client::set — Define os parâmetros do cliente Swoole antes que a conexão seja estabelecida.
  • Swoole\Client::sleep — Remove o cliente TCP do loop de eventos do sistema.
  • Swoole\Client::wakeup — Adiciona o cliente TCP de volta ao loop de eventos do sistema.


Fecha a conexão estabelecida.

  • « Swoole\Client
  • Swoole\Client::connect »
  • PHP Manual
  • Swoole\Client
  • Fecha a conexão estabelecida.

Swoole\Client::close

(PECL swoole >= 1.9.0)

Swoole\Client::close — Fecha a conexão estabelecida.

Descrição

public Swoole\Client::close(bool $force = ?): bool

Parâmetros

force

Se força o fechamento da conexão.

Valor Retornado

Se a conexão está fechada.


Conecta à porta TCP ou UDP remota.

  • « Swoole\Client::close
  • Swoole\Client::__construct »
  • PHP Manual
  • Swoole\Client
  • Conecta à porta TCP ou UDP remota.

Swoole\Client::connect

(PECL swoole >= 1.9.0)

Swoole\Client::connect — Conecta à porta TCP ou UDP remota.

Descrição

public Swoole\Client::connect(
string $host,
int $port = ?,
int $timeout = ?,
int $flag = ?
): bool

Parâmetros

host

O nome do host do endereço remoto.

port

O número da porta do endereço remoto.

timeout

O tempo limite (segundos) de conexão/envio/recebimento, o valor padrão é 0.1s.

flag

Se o tipo de cliente for UDP, a $flag significa se deve habilitar a configuração udp_connect. Se a configuração udp_connect estiver habilitada, o cliente só receberá dados do ip:porta especificados. Se o tipo de cliente for TCP e o $flag estiver definido como 1, deve-se usar swoole_client_select para verificar o status da conexão antes de enviar/receber.

Valor Retornado

Se a conexão for estabelecida.


Criar um cliente TCP/UDP síncrono ou assíncrono do Swoole, com ou sem SSL.

  • « Swoole\Client::connect
  • Swoole\Client::__destruct »
  • PHP Manual
  • Swoole\Client
  • Criar um cliente TCP/UDP síncrono ou assíncrono do Swoole, com ou sem SSL.

Swoole\Client::__construct

(PECL swoole >= 1.9.0)

Swoole\Client::__construct — Criar um cliente TCP/UDP síncrono ou assíncrono do Swoole, com ou sem SSL.

Descrição

public Swoole\Client::__construct(int $sock_type, int $is_async = ?)

Parâmetros

sock_type

O tipo de soquete: SWOOLE_TCP, SWOOLE_UDP, SWOOLE_ASYNC, SWOOLE_SSL, SWOOLE_KEEP.

is_async

Cliente síncrono ou assíncrono.


Destrói o cliente Swoole.

  • « Swoole\Client::__construct
  • Swoole\Client::getpeername »
  • PHP Manual
  • Swoole\Client
  • Destrói o cliente Swoole.

Swoole\Client::__destruct

(PECL swoole >= 1.9.0)

Swoole\Client::__destruct — Destrói o cliente Swoole.

Descrição

public Swoole\Client::__destruct(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.


Obtém o nome do socket remoto da conexão.

  • « Swoole\Client::__destruct
  • Swoole\Client::getsockname »
  • PHP Manual
  • Swoole\Client
  • Obtém o nome do socket remoto da conexão.

Swoole\Client::getpeername

(PECL swoole >= 1.9.0)

Swoole\Client::getpeername — Obtém o nome do socket remoto da conexão.

Descrição

public Swoole\Client::getpeername(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O host e a porta do socket remoto.


Obtém o nome do socket local da conexão.

  • « Swoole\Client::getpeername
  • Swoole\Client::isConnected »
  • PHP Manual
  • Swoole\Client
  • Obtém o nome do socket local da conexão.

Swoole\Client::getsockname

(PECL swoole >= 1.9.0)

Swoole\Client::getsockname — Obtém o nome do socket local da conexão.

Descrição

public Swoole\Client::getsockname(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O host e a porta do soquete local.


Verifica se a conexão está estabelecida.

  • « Swoole\Client::getsockname
  • Swoole\Client::on »
  • PHP Manual
  • Swoole\Client
  • Verifica se a conexão está estabelecida.

Swoole\Client::isConnected

(PECL swoole >= 1.9.0)

Swoole\Client::isConnected — Verifica se a conexão está estabelecida.

Descrição

public Swoole\Client::isConnected(): bool

Este método retorna o status da conexão da camada de aplicação.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Se a conexão está estabelecida


Adiciona funções de retorno de chamada acionadas por eventos.

  • « Swoole\Client::isConnected
  • Swoole\Client::pause »
  • PHP Manual
  • Swoole\Client
  • Adiciona funções de retorno de chamada acionadas por eventos.

Swoole\Client::on

(PECL swoole >= 1.9.0)

Swoole\Client::on — Adiciona funções de retorno de chamada acionadas por eventos.

Descrição

public Swoole\Client::on(string $event, callable $callback): void

Parâmetros

event

callback


Pausa a recepção de dados.

  • « Swoole\Client::on
  • Swoole\Client::pipe »
  • PHP Manual
  • Swoole\Client
  • Pausa a recepção de dados.

Swoole\Client::pause

(PECL swoole >= 1.9.0)

Swoole\Client::pause — Pausa a recepção de dados.

Descrição

public Swoole\Client::pause(): void

Parâmetros

Esta função não possui parâmetros.


Redireciona os dados para outro descritor de arquivo.

  • « Swoole\Client::pause
  • Swoole\Client::recv »
  • PHP Manual
  • Swoole\Client
  • Redireciona os dados para outro descritor de arquivo.

Swoole\Client::pipe

(PECL swoole >= 1.9.0)

Swoole\Client::pipe — Redireciona os dados para outro descritor de arquivo.

Descrição

public Swoole\Client::pipe(string $socket): void

Parâmetros

socket


Recebe dados do socket remoto.

  • « Swoole\Client::pipe
  • Swoole\Client::resume »
  • PHP Manual
  • Swoole\Client
  • Recebe dados do socket remoto.

Swoole\Client::recv

(PECL swoole >= 1.9.0)

Swoole\Client::recv — Recebe dados do socket remoto.

Descrição

public Swoole\Client::recv(string $size = ?, string $flag = ?): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

size

flag

Valor Retornado


Retoma a recepção de dados.

  • « Swoole\Client::recv
  • Swoole\Client::send »
  • PHP Manual
  • Swoole\Client
  • Retoma a recepção de dados.

Swoole\Client::resume

(PECL swoole >= 1.9.0)

Swoole\Client::resume — Retoma a recepção de dados.

Descrição

public Swoole\Client::resume(): void

Parâmetros

Esta função não possui parâmetros.


Envia dados para o socket TCP remoto.

  • « Swoole\Client::resume
  • Swoole\Client::sendfile »
  • PHP Manual
  • Swoole\Client
  • Envia dados para o socket TCP remoto.

Swoole\Client::send

(PECL swoole >= 1.9.0)

Swoole\Client::send — Envia dados para o socket TCP remoto.

Descrição

public Swoole\Client::send(string $data, string $flag = ?): int

Parâmetros

data

Os dados a serem enviados, que podem ser string ou binários.

flag

Valor Retornado

Se o cliente enviar os dados com sucesso, ele retorna o comprimento dos dados enviados. Caso contrário, retorna false e define $swoole_client->errCode. Para cliente sincronizado, não há limite para os dados a serem enviados. Para cliente assíncrono, o limite para os dados a serem enviados é socket_buffer_size.


Envia arquivo para o socket TCP remoto.

  • « Swoole\Client::send
  • Swoole\Client::sendto »
  • PHP Manual
  • Swoole\Client
  • Envia arquivo para o socket TCP remoto.

Swoole\Client::sendfile

(PECL swoole >= 1.9.0)

Swoole\Client::sendfile — Envia arquivo para o socket TCP remoto.

Descrição

public Swoole\Client::sendfile(string $filename, int $offset = ?): bool

Este é um invólucro da chamada de sistema Linux sendfile.

Parâmetros

filename

O caminho do arquivo a ser enviado.

offset

O deslocamento do arquivo a ser enviado.

Valor Retornado


Envia dados para o endereço remoto UDP.

  • « Swoole\Client::sendfile
  • Swoole\Client::set »
  • PHP Manual
  • Swoole\Client
  • Envia dados para o endereço remoto UDP.

Swoole\Client::sendto

(PECL swoole >= 1.9.0)

Swoole\Client::sendto — Envia dados para o endereço remoto UDP.

Descrição

public Swoole\Client::sendto(string $ip, int $port, string $data): bool

O cliente swoole deve ser do tipo SWOOLE_SOCK_UDP ou SWOOLE_SOCK_UDP6.

Parâmetros

ip

O endereço IP do host remoto, IPv4 ou IPv6.

port

O número da porta do host remoto.

data

Os dados a serem enviados, que devem ter menos de 64KB.

Valor Retornado


Define os parâmetros do cliente Swoole antes que a conexão seja estabelecida.

  • « Swoole\Client::sendto
  • Swoole\Client::sleep »
  • PHP Manual
  • Swoole\Client
  • Define os parâmetros do cliente Swoole antes que a conexão seja estabelecida.

Swoole\Client::set

(PECL swoole >= 1.9.0)

Swoole\Client::set — Define os parâmetros do cliente Swoole antes que a conexão seja estabelecida.

Descrição

public Swoole\Client::set(array $settings): void

Parâmetros

settings

Valor Retornado


Remove o cliente TCP do loop de eventos do sistema.

  • « Swoole\Client::set
  • Swoole\Client::wakeup »
  • PHP Manual
  • Swoole\Client
  • Remove o cliente TCP do loop de eventos do sistema.

Swoole\Client::sleep

(PECL swoole >= 1.9.0)

Swoole\Client::sleep — Remove o cliente TCP do loop de eventos do sistema.

Descrição

public Swoole\Client::sleep(): void

Remove o cliente TCP do loop de eventos do sistema.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Adiciona o cliente TCP de volta ao loop de eventos do sistema.

  • « Swoole\Client::sleep
  • Swoole\Connection\Iterator »
  • PHP Manual
  • Swoole\Client
  • Adiciona o cliente TCP de volta ao loop de eventos do sistema.

Swoole\Client::wakeup

(PECL swoole >= 1.9.0)

Swoole\Client::wakeup — Adiciona o cliente TCP de volta ao loop de eventos do sistema.

Descrição

public Swoole\Client::wakeup(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe Swoole\Connection\Iterator

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Connection\Iterator implements Iterator, Countable, ArrayAccess {
/* Métodos */
public count(): int
public current(): Connection
public key(): int
public next(): Connection
public offsetExists(int $index): bool
public offsetGet(string $index): Connection
public offsetSet(int $offset, mixed $connection): void
public offsetUnset(int $offset): void
public rewind(): void
public valid(): bool
}

Índice

  • Swoole\Connection\Iterator::count — Conta conexões.
  • Swoole\Connection\Iterator::current — Retorna a entrada de conexão atual.
  • Swoole\Connection\Iterator::key — Retorna a chave da conexão atual.
  • Swoole\Connection\Iterator::next — Move para a próxima conexão.
  • Swoole\Connection\Iterator::offsetExists — Verifica se o deslocamento existe.
  • Swoole\Connection\Iterator::offsetGet — Deslocamento para recuperar.
  • Swoole\Connection\Iterator::offsetSet — tribui uma conexão ao deslocamento especificado.
  • Swoole\Connection\Iterator::offsetUnset — Desfaz um deslocamento.
  • Swoole\Connection\Iterator::rewind — Rebobina o iterador
  • Swoole\Connection\Iterator::valid — Verifica se a posição atual é válida.


Conta conexões.

  • « Swoole\Connection\Iterator
  • Swoole\Connection\Iterator::current »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Conta conexões.

Swoole\Connection\Iterator::count

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::count — Conta conexões.

Descrição

public Swoole\Connection\Iterator::count(): int

Obtém o número de conexões.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O número de conexões.


Retorna a entrada de conexão atual.

  • « Swoole\Connection\Iterator::count
  • Swoole\Connection\Iterator::key »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Retorna a entrada de conexão atual.

Swoole\Connection\Iterator::current

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::current — Retorna a entrada de conexão atual.

Descrição

public Swoole\Connection\Iterator::current(): Connection

Obtém a entrada de conexão atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A entrada de conexão atual.


Retorna a chave da conexão atual.

  • « Swoole\Connection\Iterator::current
  • Swoole\Connection\Iterator::next »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Retorna a chave da conexão atual.

Swoole\Connection\Iterator::key

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::key — Retorna a chave da conexão atual.

Descrição

public Swoole\Connection\Iterator::key(): int

Esta função retorna a chave da conexão atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Chave da conexão atual.


Move para a próxima conexão.

  • « Swoole\Connection\Iterator::key
  • Swoole\Connection\Iterator::offsetExists »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Move para a próxima conexão.

Swoole\Connection\Iterator::next

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::next — Move para a próxima conexão.

Descrição

public Swoole\Connection\Iterator::next(): Connection

O iterador para a próxima conexão.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Verifica se o deslocamento existe.

  • « Swoole\Connection\Iterator::next
  • Swoole\Connection\Iterator::offsetGet »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Verifica se o deslocamento existe.

Swoole\Connection\Iterator::offsetExists

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetExists — Verifica se o deslocamento existe.

Descrição

public Swoole\Connection\Iterator::offsetExists(int $index): bool

Verifica se o deslocamento existe.

Parâmetros

index

O deslocamento sendo verificado.

Valor Retornado

Retorna TRUE se o deslocamento existir, caso contrário, FALSE.


Deslocamento para recuperar.

  • « Swoole\Connection\Iterator::offsetExists
  • Swoole\Connection\Iterator::offsetSet »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Deslocamento para recuperar.

Swoole\Connection\Iterator::offsetGet

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetGet — Deslocamento para recuperar.

Descrição

public Swoole\Connection\Iterator::offsetGet(string $index): Connection

Retorna a conexão no deslocamento especificado.

Parâmetros

index

O deslocamento a ser recuperado.

Valor Retornado


tribui uma conexão ao deslocamento especificado.

  • « Swoole\Connection\Iterator::offsetGet
  • Swoole\Connection\Iterator::offsetUnset »
  • PHP Manual
  • Swoole\Connection\Iterator
  • tribui uma conexão ao deslocamento especificado.

Swoole\Connection\Iterator::offsetSet

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetSet — tribui uma conexão ao deslocamento especificado.

Descrição

public Swoole\Connection\Iterator::offsetSet(int $offset, mixed $connection): void

tribui uma conexão ao deslocamento especificado.

Parâmetros

offset

O deslocamento para atribuir a conexão.

connection

A conexão a ser definida.

Valor Retornado


Desfaz um deslocamento.

  • « Swoole\Connection\Iterator::offsetSet
  • Swoole\Connection\Iterator::rewind »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Desfaz um deslocamento.

Swoole\Connection\Iterator::offsetUnset

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetUnset — Desfaz um deslocamento.

Descrição

public Swoole\Connection\Iterator::offsetUnset(int $offset): void

Desfaz um deslocamento.

Parâmetros

offset

O deslocamento a ser desfeito.

Valor Retornado


Rebobina o iterador

  • « Swoole\Connection\Iterator::offsetUnset
  • Swoole\Connection\Iterator::valid »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Rebobina o iterador

Swoole\Connection\Iterator::rewind

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::rewind — Rebobina o iterador

Descrição

public Swoole\Connection\Iterator::rewind(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Verifica se a posição atual é válida.

  • « Swoole\Connection\Iterator::rewind
  • Swoole\Coroutine »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Verifica se a posição atual é válida.

Swoole\Connection\Iterator::valid

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::valid — Verifica se a posição atual é válida.

Descrição

public Swoole\Connection\Iterator::valid(): bool

Verifica se a posição atual é válida.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna TRUE se a posição atual do iterador for válida, caso contrário, FALSE.


A classe Swoole\Coroutine

(PECL swoole >= 2.0.0)

Introdução

Resumo da classe

class Swoole\Coroutine {
/* Métodos */
public static call_user_func_array(callable $callback, array $param_array): mixed
public static call_user_func(callable $callback, mixed ...$args): mixed
public static cli_wait(): ReturnType
public static create(): ReturnType
public Swoole\Coroutine\Client::close(): ReturnType
public Swoole\Coroutine\Client::connect(): ReturnType
public Swoole\Coroutine\Client::__destruct(): ReturnType
public Swoole\Coroutine\Client::getpeername(): ReturnType
public Swoole\Coroutine\Client::getsockname(): ReturnType
public Swoole\Coroutine\Client::isConnected(): ReturnType
public Swoole\Coroutine\Client::recv(): ReturnType
public Swoole\Coroutine\Client::send(): ReturnType
public Swoole\Coroutine\Client::sendfile(): ReturnType
public Swoole\Coroutine\Client::sendto(): ReturnType
public Swoole\Coroutine\Client::set(): ReturnType
public Swoole\Coroutine\Http\Client::addFile(): ReturnType
public Swoole\Coroutine\Http\Client::close(): ReturnType
public Swoole\Coroutine\Http\Client::__destruct(): ReturnType
public Swoole\Coroutine\Http\Client::execute(): ReturnType
public Swoole\Coroutine\Http\Client::get(): ReturnType
public Swoole\Coroutine\Http\Client::getDefer(): ReturnType
public Swoole\Coroutine\Http\Client::isConnected(): ReturnType
public Swoole\Coroutine\Http\Client::post(): ReturnType
public Swoole\Coroutine\Http\Client::recv(): ReturnType
public Swoole\Coroutine\Http\Client::set(): ReturnType
public Swoole\Coroutine\Http\Client::setCookies(): ReturnType
public Swoole\Coroutine\Http\Client::setData(): ReturnType
public Swoole\Coroutine\Http\Client::setDefer(): ReturnType
public Swoole\Coroutine\Http\Client::setHeaders(): ReturnType
public Swoole\Coroutine\Http\Client::setMethod(): ReturnType
public Swoole\Coroutine\MySQL::close(): ReturnType
public Swoole\Coroutine\MySQL::connect(): ReturnType
public Swoole\Coroutine\MySQL::__destruct(): ReturnType
public Swoole\Coroutine\MySQL::getDefer(): ReturnType
public Swoole\Coroutine\MySQL::query(): ReturnType
public Swoole\Coroutine\MySQL::recv(): ReturnType
public Swoole\Coroutine\MySQL::setDefer(): ReturnType
public static getuid(): ReturnType
public static resume(): ReturnType
public static suspend(): ReturnType
}

Índice

  • Swoole\Coroutine::call_user_func_array — Chama um retorno de chamada com um array de parâmetros
  • Swoole\Coroutine::call_user_func — Chama um retorno de chamada fornecido pelo primeiro parâmetro
  • Swoole\Coroutine::cli_wait — Descrição
  • Swoole\Coroutine::create — Descrição
  • Swoole\Coroutine\Client::close — Descrição
  • Swoole\Coroutine\Client::connect — Descrição
  • Swoole\Coroutine\Client::__construct — Descrição
  • Swoole\Coroutine\Client::__destruct — Descrição
  • Swoole\Coroutine\Client::getpeername — Descrição
  • Swoole\Coroutine\Client::getsockname — Descrição
  • Swoole\Coroutine\Client::isConnected — Descrição
  • Swoole\Coroutine\Client::recv — Descrição
  • Swoole\Coroutine\Client::send — Descrição
  • Swoole\Coroutine\Client::sendfile — Descrição
  • Swoole\Coroutine\Client::sendto — Descrição
  • Swoole\Coroutine\Client::set — Descrição
  • Swoole\Coroutine\Http\Client::addFile — Descrição
  • Swoole\Coroutine\Http\Client::close — Descrição
  • Swoole\Coroutine\Http\Client::__construct — Descrição
  • Swoole\Coroutine\Http\Client::__destruct — Descrição
  • Swoole\Coroutine\Http\Client::execute — Descrição
  • Swoole\Coroutine\Http\Client::get — Descrição
  • Swoole\Coroutine\Http\Client::getDefer — Descrição
  • Swoole\Coroutine\Http\Client::isConnected — Descrição
  • Swoole\Coroutine\Http\Client::post — Descrição
  • Swoole\Coroutine\Http\Client::recv — Descrição
  • Swoole\Coroutine\Http\Client::set — Descrição
  • Swoole\Coroutine\Http\Client::setCookies — Descrição
  • Swoole\Coroutine\Http\Client::setData — Descrição
  • Swoole\Coroutine\Http\Client::setDefer — Descrição
  • Swoole\Coroutine\Http\Client::setHeaders — Descrição
  • Swoole\Coroutine\Http\Client::setMethod — Descrição
  • Swoole\Coroutine\MySQL::close — Descrição
  • Swoole\Coroutine\MySQL::connect — Descrição
  • Swoole\Coroutine\MySQL::__construct — Descrição
  • Swoole\Coroutine\MySQL::__destruct — Descrição
  • Swoole\Coroutine\MySQL::getDefer — Descrição
  • Swoole\Coroutine\MySQL::query — Descrição
  • Swoole\Coroutine\MySQL::recv — Descrição
  • Swoole\Coroutine\MySQL::setDefer — Descrição
  • Swoole\Coroutine::getuid — Descrição
  • Swoole\Coroutine::resume — Descrição
  • Swoole\Coroutine::suspend — Descrição


Chama um retorno de chamada com um array de parâmetros

  • « Swoole\Coroutine
  • Swoole\Coroutine::call_user_func »
  • PHP Manual
  • Swoole\Coroutine
  • Chama um retorno de chamada com um array de parâmetros

Swoole\Coroutine::call_user_func_array

(PECL swoole >= 2.0.0)

Swoole\Coroutine::call_user_func_array — Chama um retorno de chamada com um array de parâmetros

Descrição

public static Swoole\Coroutine::call_user_func_array(callable $callback, array $param_array): mixed

Chama o retorno de chamada fornecido pelo primeiro parâmetro com os parâmetros em param_array.

Parâmetros

callback

O callable a ser chamado.

param_array

Zero ou mais parâmetros no array a serem passados para o retorno de chamada.

Valor Retornado


Chama um retorno de chamada fornecido pelo primeiro parâmetro

  • « Swoole\Coroutine::call_user_func_array
  • Swoole\Coroutine::cli_wait »
  • PHP Manual
  • Swoole\Coroutine
  • Chama um retorno de chamada fornecido pelo primeiro parâmetro

Swoole\Coroutine::call_user_func

(PECL swoole >= 2.0.0)

Swoole\Coroutine::call_user_func — Chama um retorno de chamada fornecido pelo primeiro parâmetro

Descrição

public static Swoole\Coroutine::call_user_func(callable $callback, mixed ...$args): mixed

Chama o callback fornecido pelo primeiro parâmetro e passa os parâmetros restantes como argumentos.

Parâmetros

callback

O callable a ser chamado.

args

Zero ou mais parâmetros a serem passados para o retorno de chamada.

Valor Retornado


Descrição

  • « Swoole\Coroutine::call_user_func
  • Swoole\Coroutine::create »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine::cli_wait

(PECL swoole >= 2.0.0)

Swoole\Coroutine::cli_wait — Descrição

Descrição

public static Swoole\Coroutine::cli_wait(): ReturnType

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine::cli_wait
  • Swoole\Coroutine\Client::close »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine::create

(PECL swoole >= 2.0.0)

Swoole\Coroutine::create — Descrição

Descrição

public static Swoole\Coroutine::create(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine::create
  • Swoole\Coroutine\Client::connect »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::close — Descrição

Descrição

public Swoole\Coroutine\Client::close(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::close
  • Swoole\Coroutine\Client::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::connect

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::connect — Descrição

Descrição

public Swoole\Coroutine\Client::connect(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::connect
  • Swoole\Coroutine\Client::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::__construct — Descrição

Descrição

public Swoole\Coroutine\Client::__construct()

Parâmetros

Esta função não possui parâmetros.


Descrição

  • « Swoole\Coroutine\Client::__construct
  • Swoole\Coroutine\Client::getpeername »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::__destruct — Descrição

Descrição

public Swoole\Coroutine\Client::__destruct(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::__destruct
  • Swoole\Coroutine\Client::getsockname »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::getpeername

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::getpeername — Descrição

Descrição

public Swoole\Coroutine\Client::getpeername(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::getpeername
  • Swoole\Coroutine\Client::isConnected »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::getsockname

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::getsockname — Descrição

Descrição

public Swoole\Coroutine\Client::getsockname(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::getsockname
  • Swoole\Coroutine\Client::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::isConnected

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::isConnected — Descrição

Descrição

public Swoole\Coroutine\Client::isConnected(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::isConnected
  • Swoole\Coroutine\Client::send »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::recv — Descrição

Descrição

public Swoole\Coroutine\Client::recv(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::recv
  • Swoole\Coroutine\Client::sendfile »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::send

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::send — Descrição

Descrição

public Swoole\Coroutine\Client::send(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::send
  • Swoole\Coroutine\Client::sendto »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::sendfile

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::sendfile — Descrição

Descrição

public Swoole\Coroutine\Client::sendfile(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::sendfile
  • Swoole\Coroutine\Client::set »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::sendto

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::sendto — Descrição

Descrição

public Swoole\Coroutine\Client::sendto(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::sendto
  • Swoole\Coroutine\Http\Client::addFile »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Client::set

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::set — Descrição

Descrição

public Swoole\Coroutine\Client::set(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Client::set
  • Swoole\Coroutine\Http\Client::close »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::addFile

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::addFile — Descrição

Descrição

public Swoole\Coroutine\Http\Client::addFile(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::addFile
  • Swoole\Coroutine\Http\Client::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::close — Descrição

Descrição

public Swoole\Coroutine\Http\Client::close(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::close
  • Swoole\Coroutine\Http\Client::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::__construct — Descrição

Descrição

public Swoole\Coroutine\Http\Client::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.


Descrição

  • « Swoole\Coroutine\Http\Client::__construct
  • Swoole\Coroutine\Http\Client::execute »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::__destruct — Descrição

Descrição

public Swoole\Coroutine\Http\Client::__destruct(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::__destruct
  • Swoole\Coroutine\Http\Client::get »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::execute

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::execute — Descrição

Descrição

public Swoole\Coroutine\Http\Client::execute(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::execute
  • Swoole\Coroutine\Http\Client::getDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::get

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::get — Descrição

Descrição

public Swoole\Coroutine\Http\Client::get(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::get
  • Swoole\Coroutine\Http\Client::isConnected »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::getDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::getDefer — Descrição

Descrição

public Swoole\Coroutine\Http\Client::getDefer(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::getDefer
  • Swoole\Coroutine\Http\Client::post »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::isConnected

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::isConnected — Descrição

Descrição

public Swoole\Coroutine\Http\Client::isConnected(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::isConnected
  • Swoole\Coroutine\Http\Client::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::post

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::post — Descrição

Descrição

public Swoole\Coroutine\Http\Client::post(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::post
  • Swoole\Coroutine\Http\Client::set »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::recv — Descrição

Descrição

public Swoole\Coroutine\Http\Client::recv(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::recv
  • Swoole\Coroutine\Http\Client::setCookies »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::set

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::set — Descrição

Descrição

public Swoole\Coroutine\Http\Client::set(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::set
  • Swoole\Coroutine\Http\Client::setData »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::setCookies

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setCookies — Descrição

Descrição

public Swoole\Coroutine\Http\Client::setCookies(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::setCookies
  • Swoole\Coroutine\Http\Client::setDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::setData

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setData — Descrição

Descrição

public Swoole\Coroutine\Http\Client::setData(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::setData
  • Swoole\Coroutine\Http\Client::setHeaders »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::setDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setDefer — Descrição

Descrição

public Swoole\Coroutine\Http\Client::setDefer(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::setDefer
  • Swoole\Coroutine\Http\Client::setMethod »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::setHeaders

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setHeaders — Descrição

Descrição

public Swoole\Coroutine\Http\Client::setHeaders(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::setHeaders
  • Swoole\Coroutine\MySQL::close »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\Http\Client::setMethod

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setMethod — Descrição

Descrição

public Swoole\Coroutine\Http\Client::setMethod(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\Http\Client::setMethod
  • Swoole\Coroutine\MySQL::connect »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\MySQL::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::close — Descrição

Descrição

public Swoole\Coroutine\MySQL::close(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\MySQL::close
  • Swoole\Coroutine\MySQL::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\MySQL::connect

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::connect — Descrição

Descrição

public Swoole\Coroutine\MySQL::connect(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\MySQL::connect
  • Swoole\Coroutine\MySQL::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\MySQL::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::__construct — Descrição

Descrição

public Swoole\Coroutine\MySQL::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.


Descrição

  • « Swoole\Coroutine\MySQL::__construct
  • Swoole\Coroutine\MySQL::getDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\MySQL::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::__destruct — Descrição

Descrição

public Swoole\Coroutine\MySQL::__destruct(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\MySQL::__destruct
  • Swoole\Coroutine\MySQL::query »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\MySQL::getDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::getDefer — Descrição

Descrição

public Swoole\Coroutine\MySQL::getDefer(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\MySQL::getDefer
  • Swoole\Coroutine\MySQL::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\MySQL::query

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::query — Descrição

Descrição

public Swoole\Coroutine\MySQL::query(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\MySQL::query
  • Swoole\Coroutine\MySQL::setDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\MySQL::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::recv — Descrição

Descrição

public Swoole\Coroutine\MySQL::recv(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\MySQL::recv
  • Swoole\Coroutine::getuid »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine\MySQL::setDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::setDefer — Descrição

Descrição

public Swoole\Coroutine\MySQL::setDefer(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine\MySQL::setDefer
  • Swoole\Coroutine::resume »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine::getuid

(PECL swoole >= 2.0.0)

Swoole\Coroutine::getuid — Descrição

Descrição

public static Swoole\Coroutine::getuid(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine::getuid
  • Swoole\Coroutine::suspend »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine::resume

(PECL swoole >= 2.0.0)

Swoole\Coroutine::resume — Descrição

Descrição

public static Swoole\Coroutine::resume(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\Coroutine::resume
  • Swoole\Event »
  • PHP Manual
  • Swoole\Coroutine
  • Descrição

Swoole\Coroutine::suspend

(PECL swoole >= 2.0.0)

Swoole\Coroutine::suspend — Descrição

Descrição

public static Swoole\Coroutine::suspend(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe Swoole\Event

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Event {
/* Métodos */
public static add(
int $fd,
callable $read_callback,
callable $write_callback = ?,
string $events = ?
): bool
public static defer(mixed $callback): void
public static del(string $fd): bool
public static exit(): void
public static set(
int $fd,
string $read_callback = ?,
string $write_callback = ?,
string $events = ?
): bool
public static wait(): void
public static write(string $fd, string $data): void
}

Índice

  • Swoole\Event::add — Adiciona novas funções de retorno de chamada de um socket no EventLoop.
  • Swoole\Event::defer — Adiciona uma função de retorno de chamada ao próximo loop de eventos.
  • Swoole\Event::del — Remove todas as funções de retorno de chamada de eventos de um socket.
  • Swoole\Event::exit — Sai do loop de eventos, disponível apenas no lado do cliente.
  • Swoole\Event::set — Atualiza as funções de retorno de chamada de eventos de um socket.
  • Swoole\Event::wait — Descrição
  • Swoole\Event::write — Escreve dados no socket.


Adiciona novas funções de retorno de chamada de um socket no EventLoop.

  • « Swoole\Event
  • Swoole\Event::defer »
  • PHP Manual
  • Swoole\Event
  • Adiciona novas funções de retorno de chamada de um socket no EventLoop.

Swoole\Event::add

(PECL swoole >= 1.9.0)

Swoole\Event::add — Adiciona novas funções de retorno de chamada de um socket no EventLoop.

Descrição

public static Swoole\Event::add(
int $fd,
callable $read_callback,
callable $write_callback = ?,
string $events = ?
): bool

Parâmetros

fd

read_callback

write_callback

events

Valor Retornado


Adiciona uma função de retorno de chamada ao próximo loop de eventos.

  • « Swoole\Event::add
  • Swoole\Event::del »
  • PHP Manual
  • Swoole\Event
  • Adiciona uma função de retorno de chamada ao próximo loop de eventos.

Swoole\Event::defer

(PECL swoole >= 1.9.0)

Swoole\Event::defer — Adiciona uma função de retorno de chamada ao próximo loop de eventos.

Descrição

public static Swoole\Event::defer(mixed $callback): void

Parâmetros

callback

Valor Retornado


Remove todas as funções de retorno de chamada de eventos de um socket.

  • « Swoole\Event::defer
  • Swoole\Event::exit »
  • PHP Manual
  • Swoole\Event
  • Remove todas as funções de retorno de chamada de eventos de um socket.

Swoole\Event::del

(PECL swoole >= 1.9.0)

Swoole\Event::del — Remove todas as funções de retorno de chamada de eventos de um socket.

Descrição

public static Swoole\Event::del(string $fd): bool

Parâmetros

fd

Valor Retornado


Sai do loop de eventos, disponível apenas no lado do cliente.

  • « Swoole\Event::del
  • Swoole\Event::set »
  • PHP Manual
  • Swoole\Event
  • Sai do loop de eventos, disponível apenas no lado do cliente.

Swoole\Event::exit

(PECL swoole >= 1.9.0)

Swoole\Event::exit — Sai do loop de eventos, disponível apenas no lado do cliente.

Descrição

public static Swoole\Event::exit(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Atualiza as funções de retorno de chamada de eventos de um socket.

  • « Swoole\Event::exit
  • Swoole\Event::wait »
  • PHP Manual
  • Swoole\Event
  • Atualiza as funções de retorno de chamada de eventos de um socket.

Swoole\Event::set

(PECL swoole >= 1.9.0)

Swoole\Event::set — Atualiza as funções de retorno de chamada de eventos de um socket.

Descrição

public static Swoole\Event::set(
int $fd,
string $read_callback = ?,
string $write_callback = ?,
string $events = ?
): bool

Parâmetros

fd

read_callback

write_callback

events

Valor Retornado


Descrição

  • « Swoole\Event::set
  • Swoole\Event::write »
  • PHP Manual
  • Swoole\Event
  • Descrição

Swoole\Event::wait

(PECL swoole >= 1.9.0)

Swoole\Event::wait — Descrição

Descrição

public static Swoole\Event::wait(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Escreve dados no socket.

  • « Swoole\Event::wait
  • Swoole\Exception »
  • PHP Manual
  • Swoole\Event
  • Escreve dados no socket.

Swoole\Event::write

(PECL swoole >= 1.9.0)

Swoole\Event::write — Escreve dados no socket.

Descrição

public static Swoole\Event::write(string $fd, string $data): void

Parâmetros

fd

data

Valor Retornado


A classe Swoole\Exception

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Exception extends Exception implements Throwable {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
}


A classe Swoole\Http\Client

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Http\Client {
/* Propriedades */
public $errCode;
public $sock;
/* Métodos */
public addFile(
string $path,
string $name,
string $type = ?,
string $filename = ?,
string $offset = ?
): void
public close(): void
public __destruct(): void
public download(
string $path,
string $file,
callable $callback,
int $offset = ?
): void
public execute(string $path, string $callback): void
public get(string $path, callable $callback): void
public isConnected(): bool
public on(string $event_name, callable $callback): void
public post(string $path, string $data, callable $callback): void
public push(string $data, string $opcode = ?, string $finish = ?): void
public set(array $settings): void
public setCookies(array $cookies): void
public setData(string $data): ReturnType
public setHeaders(array $headers): void
public setMethod(string $method): void
public upgrade(string $path, string $callback): void
}

Propriedades

errCode

sock

Índice

  • Swoole\Http\Client::addFile — Adiciona um arquivo ao formulário de postagem.
  • Swoole\Http\Client::close — Fecha a conexão HTTP.
  • Swoole\Http\Client::__construct — Constrói o cliente HTTP assíncrono.
  • Swoole\Http\Client::__destruct — Destrói o cliente HTTP.
  • Swoole\Http\Client::download — Baixa um arquivo do servidor remoto.
  • Swoole\Http\Client::execute — Envia a solicitação HTTP após definir os parâmetros.
  • Swoole\Http\Client::get — Envia solicitação HTTP GET para o servidor remoto.
  • Swoole\Http\Client::isConnected — Verifica se a conexão HTTP está conectada.
  • Swoole\Http\Client::on — Registra função de retorno de chamada pelo nome do evento.
  • Swoole\Http\Client::post — Enviar uma solicitação http POST para o servidor remoto.
  • Swoole\Http\Client::push — Envia dados para o cliente WebSocket.
  • Swoole\Http\Client::set — Atualiza os parâmetros do cliente HTTP.
  • Swoole\Http\Client::setCookies — Define os cookies da requisição HTTP.
  • Swoole\Http\Client::setData — Define os dados do corpo da requisição HTTP.
  • Swoole\Http\Client::setHeaders — Define os cabeçalhos da requisição HTTP.
  • Swoole\Http\Client::setMethod — Define o método da requisição HTTP.
  • Swoole\Http\Client::upgrade — Faz um upgrade para o protocolo websocket.


Adiciona um arquivo ao formulário de postagem.

  • « Swoole\Http\Client
  • Swoole\Http\Client::close »
  • PHP Manual
  • Swoole\Http\Client
  • Adiciona um arquivo ao formulário de postagem.

Swoole\Http\Client::addFile

(PECL swoole >= 1.9.0)

Swoole\Http\Client::addFile — Adiciona um arquivo ao formulário de postagem.

Descrição

public Swoole\Http\Client::addFile(
string $path,
string $name,
string $type = ?,
string $filename = ?,
string $offset = ?
): void

Parâmetros

path

name

type

filename

offset

Valor Retornado


Fecha a conexão HTTP.

  • « Swoole\Http\Client::addFile
  • Swoole\Http\Client::__construct »
  • PHP Manual
  • Swoole\Http\Client
  • Fecha a conexão HTTP.

Swoole\Http\Client::close

(PECL swoole >= 1.9.0)

Swoole\Http\Client::close — Fecha a conexão HTTP.

Descrição

public Swoole\Http\Client::close(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Constrói o cliente HTTP assíncrono.

  • « Swoole\Http\Client::close
  • Swoole\Http\Client::__destruct »
  • PHP Manual
  • Swoole\Http\Client
  • Constrói o cliente HTTP assíncrono.

Swoole\Http\Client::__construct

(PECL swoole >= 1.9.0)

Swoole\Http\Client::__construct — Constrói o cliente HTTP assíncrono.

Descrição

public Swoole\Http\Client::__construct(string $host, string $port = ?, bool $ssl = ?)

Parâmetros

host

O nome do host remoto.

port

O número da porta do host remoto.

ssl

Se deve habilitar SSL.


Destrói o cliente HTTP.

  • « Swoole\Http\Client::__construct
  • Swoole\Http\Client::download »
  • PHP Manual
  • Swoole\Http\Client
  • Destrói o cliente HTTP.

Swoole\Http\Client::__destruct

(PECL swoole >= 1.9.0)

Swoole\Http\Client::__destruct — Destrói o cliente HTTP.

Descrição

public Swoole\Http\Client::__destruct(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Baixa um arquivo do servidor remoto.

  • « Swoole\Http\Client::__destruct
  • Swoole\Http\Client::execute »
  • PHP Manual
  • Swoole\Http\Client
  • Baixa um arquivo do servidor remoto.

Swoole\Http\Client::download

(PECL swoole >= 1.9.0)

Swoole\Http\Client::download — Baixa um arquivo do servidor remoto.

Descrição

public Swoole\Http\Client::download(
string $path,
string $file,
callable $callback,
int $offset = ?
): void

Parâmetros

path

file

callback

offset

Valor Retornado


Envia a solicitação HTTP após definir os parâmetros.

  • « Swoole\Http\Client::download
  • Swoole\Http\Client::get »
  • PHP Manual
  • Swoole\Http\Client
  • Envia a solicitação HTTP após definir os parâmetros.

Swoole\Http\Client::execute

(PECL swoole >= 1.9.0)

Swoole\Http\Client::execute — Envia a solicitação HTTP após definir os parâmetros.

Descrição

public Swoole\Http\Client::execute(string $path, string $callback): void

Parâmetros

path

callback

Valor Retornado


Envia solicitação HTTP GET para o servidor remoto.

  • « Swoole\Http\Client::execute
  • Swoole\Http\Client::isConnected »
  • PHP Manual
  • Swoole\Http\Client
  • Envia solicitação HTTP GET para o servidor remoto.

Swoole\Http\Client::get

(PECL swoole >= 1.9.0)

Swoole\Http\Client::get — Envia solicitação HTTP GET para o servidor remoto.

Descrição

public Swoole\Http\Client::get(string $path, callable $callback): void

Parâmetros

path

callback

Valor Retornado


Verifica se a conexão HTTP está conectada.

  • « Swoole\Http\Client::get
  • Swoole\Http\Client::on »
  • PHP Manual
  • Swoole\Http\Client
  • Verifica se a conexão HTTP está conectada.

Swoole\Http\Client::isConnected

(PECL swoole >= 1.9.0)

Swoole\Http\Client::isConnected — Verifica se a conexão HTTP está conectada.

Descrição

public Swoole\Http\Client::isConnected(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Registra função de retorno de chamada pelo nome do evento.

  • « Swoole\Http\Client::isConnected
  • Swoole\Http\Client::post »
  • PHP Manual
  • Swoole\Http\Client
  • Registra função de retorno de chamada pelo nome do evento.

Swoole\Http\Client::on

(PECL swoole >= 1.9.0)

Swoole\Http\Client::on — Registra função de retorno de chamada pelo nome do evento.

Descrição

public Swoole\Http\Client::on(string $event_name, callable $callback): void

Parâmetros

event_name

callback

Valor Retornado


Enviar uma solicitação http POST para o servidor remoto.

  • « Swoole\Http\Client::on
  • Swoole\Http\Client::push »
  • PHP Manual
  • Swoole\Http\Client
  • Enviar uma solicitação http POST para o servidor remoto.

Swoole\Http\Client::post

(PECL swoole >= 1.9.0)

Swoole\Http\Client::post — Enviar uma solicitação http POST para o servidor remoto.

Descrição

public Swoole\Http\Client::post(string $path, string $data, callable $callback): void

Parâmetros

path

data

callback

Valor Retornado


Envia dados para o cliente WebSocket.

  • « Swoole\Http\Client::post
  • Swoole\Http\Client::set »
  • PHP Manual
  • Swoole\Http\Client
  • Envia dados para o cliente WebSocket.

Swoole\Http\Client::push

(PECL swoole >= 1.9.0)

Swoole\Http\Client::push — Envia dados para o cliente WebSocket.

Descrição

public Swoole\Http\Client::push(string $data, string $opcode = ?, string $finish = ?): void

Parâmetros

data

opcode

finish

Valor Retornado


Atualiza os parâmetros do cliente HTTP.

  • « Swoole\Http\Client::push
  • Swoole\Http\Client::setCookies »
  • PHP Manual
  • Swoole\Http\Client
  • Atualiza os parâmetros do cliente HTTP.

Swoole\Http\Client::set

(PECL swoole >= 1.9.0)

Swoole\Http\Client::set — Atualiza os parâmetros do cliente HTTP.

Descrição

public Swoole\Http\Client::set(array $settings): void

Parâmetros

settings

Valor Retornado


Define os cookies da requisição HTTP.

  • « Swoole\Http\Client::set
  • Swoole\Http\Client::setData »
  • PHP Manual
  • Swoole\Http\Client
  • Define os cookies da requisição HTTP.

Swoole\Http\Client::setCookies

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setCookies — Define os cookies da requisição HTTP.

Descrição

public Swoole\Http\Client::setCookies(array $cookies): void

Parâmetros

cookies

Valor Retornado


Define os dados do corpo da requisição HTTP.

  • « Swoole\Http\Client::setCookies
  • Swoole\Http\Client::setHeaders »
  • PHP Manual
  • Swoole\Http\Client
  • Define os dados do corpo da requisição HTTP.

Swoole\Http\Client::setData

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setData — Define os dados do corpo da requisição HTTP.

Descrição

public Swoole\Http\Client::setData(string $data): ReturnType

O método HTTP será alterado para POST.

Parâmetros

data

Valor Retornado


Define os cabeçalhos da requisição HTTP.

  • « Swoole\Http\Client::setData
  • Swoole\Http\Client::setMethod »
  • PHP Manual
  • Swoole\Http\Client
  • Define os cabeçalhos da requisição HTTP.

Swoole\Http\Client::setHeaders

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setHeaders — Define os cabeçalhos da requisição HTTP.

Descrição

public Swoole\Http\Client::setHeaders(array $headers): void

Parâmetros

headers

Valor Retornado


Define o método da requisição HTTP.

  • « Swoole\Http\Client::setHeaders
  • Swoole\Http\Client::upgrade »
  • PHP Manual
  • Swoole\Http\Client
  • Define o método da requisição HTTP.

Swoole\Http\Client::setMethod

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setMethod — Define o método da requisição HTTP.

Descrição

public Swoole\Http\Client::setMethod(string $method): void

Parâmetros

method

Valor Retornado


Faz um upgrade para o protocolo websocket.

  • « Swoole\Http\Client::setMethod
  • Swoole\Http\Request »
  • PHP Manual
  • Swoole\Http\Client
  • Faz um upgrade para o protocolo websocket.

Swoole\Http\Client::upgrade

(PECL swoole >= 1.9.0)

Swoole\Http\Client::upgrade — Faz um upgrade para o protocolo websocket.

Descrição

public Swoole\Http\Client::upgrade(string $path, string $callback): void

Parâmetros

path

callback

Valor Retornado


A classe Swoole\Http\Request

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Http\Request {
/* Métodos */
public __destruct(): void
public rawcontent(): string
}

Índice

  • Swoole\Http\Request::__destruct — Destrói a solicitação HTTP.
  • Swoole\Http\Request::rawcontent — Obtém o corpo HTTP POST bruto.


Destrói a solicitação HTTP.

  • « Swoole\Http\Request
  • Swoole\Http\Request::rawcontent »
  • PHP Manual
  • Swoole\Http\Request
  • Destrói a solicitação HTTP.

Swoole\Http\Request::__destruct

(PECL swoole >= 1.9.0)

Swoole\Http\Request::__destruct — Destrói a solicitação HTTP.

Descrição

public Swoole\Http\Request::__destruct(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém o corpo HTTP POST bruto.

  • « Swoole\Http\Request::__destruct
  • Swoole\Http\Response »
  • PHP Manual
  • Swoole\Http\Request
  • Obtém o corpo HTTP POST bruto.

Swoole\Http\Request::rawcontent

(PECL swoole >= 1.9.0)

Swoole\Http\Request::rawcontent — Obtém o corpo HTTP POST bruto.

Descrição

public Swoole\Http\Request::rawcontent(): string

Este método é usado para os dados POST que não estão no formato `application/x-www-form-urlencoded`.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe Swoole\Http\Response

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Http\Response {
/* Métodos */
public cookie(
string $name,
string $value = ?,
string $expires = ?,
string $path = ?,
string $domain = ?,
string $secure = ?,
string $httponly = ?
): string
public __destruct(): void
public end(string $content = ?): void
public gzip(string $compress_level = ?): ReturnType
public header(string $key, string $value, string $ucwords = ?): void
public initHeader(): ReturnType
public rawcookie(
string $name,
string $value = ?,
string $expires = ?,
string $path = ?,
string $domain = ?,
string $secure = ?,
string $httponly = ?
): ReturnType
public sendfile(string $filename, int $offset = ?): ReturnType
public status(string $http_code): ReturnType
public write(string $content): void
}

Índice

  • Swoole\Http\Response::cookie — Define os cookies da resposta HTTP.
  • Swoole\Http\Response::__destruct — Destrói a resposta HTTP.
  • Swoole\Http\Response::end — Envia dados para a solicitação HTTP e finaliza a resposta.
  • Swoole\Http\Response::gzip — Habilita a compressão gzip do conteúdo da resposta.
  • Swoole\Http\Response::header — Define os cabeçalhos da resposta HTTP.
  • Swoole\Http\Response::initHeader — Inicializa o cabeçalho da resposta HTTP.
  • Swoole\Http\Response::rawcookie — Define cookies brutos na resposta HTTP.
  • Swoole\Http\Response::sendfile — Envia um arquivo através da resposta HTTP.
  • Swoole\Http\Response::status — Define o código de status da resposta HTTP.
  • Swoole\Http\Response::write — Acrescenta conteúdo ao corpo da resposta HTTP.


Define os cookies da resposta HTTP.

  • « Swoole\Http\Response
  • Swoole\Http\Response::__destruct »
  • PHP Manual
  • Swoole\Http\Response
  • Define os cookies da resposta HTTP.

Swoole\Http\Response::cookie

(PECL swoole >= 1.9.0)

Swoole\Http\Response::cookie — Define os cookies da resposta HTTP.

Descrição

public Swoole\Http\Response::cookie(
string $name,
string $value = ?,
string $expires = ?,
string $path = ?,
string $domain = ?,
string $secure = ?,
string $httponly = ?
): string

Parâmetros

name

value

expires

path

domain

secure

httponly

Valor Retornado


Destrói a resposta HTTP.

  • « Swoole\Http\Response::cookie
  • Swoole\Http\Response::end »
  • PHP Manual
  • Swoole\Http\Response
  • Destrói a resposta HTTP.

Swoole\Http\Response::__destruct

(PECL swoole >= 1.9.0)

Swoole\Http\Response::__destruct — Destrói a resposta HTTP.

Descrição

public Swoole\Http\Response::__destruct(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Envia dados para a solicitação HTTP e finaliza a resposta.

  • « Swoole\Http\Response::__destruct
  • Swoole\Http\Response::gzip »
  • PHP Manual
  • Swoole\Http\Response
  • Envia dados para a solicitação HTTP e finaliza a resposta.

Swoole\Http\Response::end

(PECL swoole >= 1.9.0)

Swoole\Http\Response::end — Envia dados para a solicitação HTTP e finaliza a resposta.

Descrição

public Swoole\Http\Response::end(string $content = ?): void

Parâmetros

content

Valor Retornado


Habilita a compressão gzip do conteúdo da resposta.

  • « Swoole\Http\Response::end
  • Swoole\Http\Response::header »
  • PHP Manual
  • Swoole\Http\Response
  • Habilita a compressão gzip do conteúdo da resposta.

Swoole\Http\Response::gzip

(PECL swoole >= 1.9.0)

Swoole\Http\Response::gzip — Habilita a compressão gzip do conteúdo da resposta.

Descrição

public Swoole\Http\Response::gzip(string $compress_level = ?): ReturnType

O cabeçalho sobre Content-Encoding será adicionado automaticamente.

Parâmetros

compress_level

Valor Retornado


Define os cabeçalhos da resposta HTTP.

  • « Swoole\Http\Response::gzip
  • Swoole\Http\Response::initHeader »
  • PHP Manual
  • Swoole\Http\Response
  • Define os cabeçalhos da resposta HTTP.

Swoole\Http\Response::header

(PECL swoole >= 1.9.0)

Swoole\Http\Response::header — Define os cabeçalhos da resposta HTTP.

Descrição

public Swoole\Http\Response::header(string $key, string $value, string $ucwords = ?): void

Parâmetros

key

value

ucwords

Valor Retornado


Inicializa o cabeçalho da resposta HTTP.

  • « Swoole\Http\Response::header
  • Swoole\Http\Response::rawcookie »
  • PHP Manual
  • Swoole\Http\Response
  • Inicializa o cabeçalho da resposta HTTP.

Swoole\Http\Response::initHeader

(PECL swoole >= 1.9.0)

Swoole\Http\Response::initHeader — Inicializa o cabeçalho da resposta HTTP.

Descrição

public Swoole\Http\Response::initHeader(): ReturnType

Inicializa o cabeçalho da resposta HTTP.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Define cookies brutos na resposta HTTP.

  • « Swoole\Http\Response::initHeader
  • Swoole\Http\Response::sendfile »
  • PHP Manual
  • Swoole\Http\Response
  • Define cookies brutos na resposta HTTP.

Swoole\Http\Response::rawcookie

(PECL swoole >= 1.9.0)

Swoole\Http\Response::rawcookie — Define cookies brutos na resposta HTTP.

Descrição

public Swoole\Http\Response::rawcookie(
string $name,
string $value = ?,
string $expires = ?,
string $path = ?,
string $domain = ?,
string $secure = ?,
string $httponly = ?
): ReturnType

Parâmetros

name

value

expires

path

domain

secure

httponly

Valor Retornado


Envia um arquivo através da resposta HTTP.

  • « Swoole\Http\Response::rawcookie
  • Swoole\Http\Response::status »
  • PHP Manual
  • Swoole\Http\Response
  • Envia um arquivo através da resposta HTTP.

Swoole\Http\Response::sendfile

(PECL swoole >= 1.9.0)

Swoole\Http\Response::sendfile — Envia um arquivo através da resposta HTTP.

Descrição

public Swoole\Http\Response::sendfile(string $filename, int $offset = ?): ReturnType

Envia um arquivo através da resposta HTTP.

Parâmetros

filename

offset

Valor Retornado


Define o código de status da resposta HTTP.

  • « Swoole\Http\Response::sendfile
  • Swoole\Http\Response::write »
  • PHP Manual
  • Swoole\Http\Response
  • Define o código de status da resposta HTTP.

Swoole\Http\Response::status

(PECL swoole >= 1.9.0)

Swoole\Http\Response::status — Define o código de status da resposta HTTP.

Descrição

public Swoole\Http\Response::status(string $http_code): ReturnType

Define o código de status da resposta HTTP.

Parâmetros

http_code

Valor Retornado


Acrescenta conteúdo ao corpo da resposta HTTP.

  • « Swoole\Http\Response::status
  • Swoole\Http\Server »
  • PHP Manual
  • Swoole\Http\Response
  • Acrescenta conteúdo ao corpo da resposta HTTP.

Swoole\Http\Response::write

(PECL swoole >= 1.9.0)

Swoole\Http\Response::write — Acrescenta conteúdo ao corpo da resposta HTTP.

Descrição

public Swoole\Http\Response::write(string $content): void

Acrescenta conteúdo ao corpo da resposta HTTP.

Parâmetros

content

Valor Retornado


A classe Swoole\Http\Server

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Http\Server extends Swoole\Server {
/* Métodos */
public on(string $event_name, callable $callback): void
public start(): void
/* Métodos herdados */
public Swoole\Server::addlistener(string $host, int $port, string $socket_type): void
public Swoole\Server::addProcess(swoole_process $process): bool
public Swoole\Server::after(int $after_time_ms, callable $callback, string $param = ?): ReturnType
public Swoole\Server::bind(int $fd, int $uid): bool
public Swoole\Server::clearTimer(int $timer_id): void
swoole_timer_clear(int $timer_id): void
public Swoole\Server::close(int $fd, bool $reset = ?): bool
public Swoole\Server::confirm(int $fd): bool
public Swoole\Server::connection_info(int $fd, int $reactor_id = ?): array
public Swoole\Server::connection_list(int $start_fd, int $pagesize = ?): array
public Swoole\Server::defer(callable $callback): void
public Swoole\Server\Port::__destruct(): void
public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType
public Swoole\Server\Port::set(array $settings): void
public Swoole\Server::exist(int $fd): bool
public Swoole\Server::finish(string $data): void
public Swoole\Server::getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array
public Swoole\Server::getClientList(int $start_fd, int $pagesize = ?): array
public Swoole\Server::getLastError(): int
public Swoole\Server::heartbeat(bool $if_close_connection): mixed
public Swoole\Server::listen(string $host, int $port, string $socket_type): bool
public Swoole\Server::on(string $event_name, callable $callback): void
public Swoole\Server::pause(int $fd): void
public Swoole\Server::protect(int $fd, bool $is_protected = ?): void
public Swoole\Server::reload(): bool
public Swoole\Server::resume(int $fd): void
public Swoole\Server::send(int $fd, string $data, int $reactor_id = ?): bool
public Swoole\Server::sendfile(int $fd, string $filename, int $offset = ?): bool
public Swoole\Server::sendMessage(int $worker_id, string $data): bool
public Swoole\Server::sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool
public Swoole\Server::sendwait(int $fd, string $data): bool
public Swoole\Server::set(array $settings): ReturnType
public Swoole\Server::shutdown(): void
public Swoole\Server::start(): void
public Swoole\Server::stats(): array
public Swoole\Server::stop(int $worker_id = ?): bool
public Swoole\Server::task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed
public Swoole\Server::taskwait(string $data, float $timeout = ?, int $worker_id = ?): void
public Swoole\Server::taskWaitMulti(array $tasks, float $timeout_ms = ?): void
public Swoole\Server::tick(int $interval_ms, callable $callback): void
}

Índice

  • Swoole\Http\Server::on — Vincula a função de retorno (callback) ao servidor HTTP pelo nome do evento.
  • Swoole\Http\Server::start — Iniciar o servidor http swoole.


Vincula a função de retorno (callback) ao servidor HTTP pelo nome do evento.

  • « Swoole\Http\Server
  • Swoole\Http\Server::start »
  • PHP Manual
  • Swoole\Http\Server
  • Vincula a função de retorno (callback) ao servidor HTTP pelo nome do evento.

Swoole\Http\Server::on

(PECL swoole >= 1.9.0)

Swoole\Http\Server::on — Vincula a função de retorno (callback) ao servidor HTTP pelo nome do evento.

Descrição

public Swoole\Http\Server::on(string $event_name, callable $callback): void

Vincula a função de retorno (callback) ao servidor HTTP pelo nome do evento.

Parâmetros

event_name

callback

Valor Retornado


Iniciar o servidor http swoole.

  • « Swoole\Http\Server::on
  • Swoole\Lock »
  • PHP Manual
  • Swoole\Http\Server
  • Iniciar o servidor http swoole.

Swoole\Http\Server::start

(PECL swoole >= 1.9.0)

Swoole\Http\Server::start — Iniciar o servidor http swoole.

Descrição

public Swoole\Http\Server::start(): void

Inicia o servidor http swoole.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe Swoole\Lock

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Lock {
/* Métodos */
public __destruct(): void
public lock_read(): void
public lock(): void
public trylock_read(): void
public trylock(): void
public unlock(): void
}

Índice

  • Swoole\Lock::__construct — Constrói um bloqueio de memória.
  • Swoole\Lock::__destruct — Destrói um bloqueio de memória do Swoole.
  • Swoole\Lock::lock_read — Bloqueia um bloqueio de leitura-escrita para leitura.
  • Swoole\Lock::lock — Tenta adquirir o bloqueio. Ele vai bloquear se o bloqueio não estiver disponível.
  • Swoole\Lock::trylock_read — Tenta bloquear um bloqueio de leitura-escrita para leitura e retorna imediatamente mesmo que o bloqueio não esteja disponível.
  • Swoole\Lock::trylock — Tenta adquirir o bloqueio e retorna imediatamente mesmo que o bloqueio não esteja disponível.
  • Swoole\Lock::unlock — Libera o bloqueio.


Constrói um bloqueio de memória.

  • « Swoole\Lock
  • Swoole\Lock::__destruct »
  • PHP Manual
  • Swoole\Lock
  • Constrói um bloqueio de memória.

Swoole\Lock::__construct

(PECL swoole >= 1.9.0)

Swoole\Lock::__construct — Constrói um bloqueio de memória.

Descrição

public Swoole\Lock::__construct(string $type = ?, string $file_lock_location = ?)

O bloqueio Swoole é usado para sincronização de dados entre múltiplos threads ou processos.

Parâmetros

type

file_lock_location


Destrói um bloqueio de memória do Swoole.

  • « Swoole\Lock::__construct
  • Swoole\Lock::lock_read »
  • PHP Manual
  • Swoole\Lock
  • Destrói um bloqueio de memória do Swoole.

Swoole\Lock::__destruct

(PECL swoole >= 1.9.0)

Swoole\Lock::__destruct — Destrói um bloqueio de memória do Swoole.

Descrição

public Swoole\Lock::__destruct(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Bloqueia um bloqueio de leitura-escrita para leitura.

  • « Swoole\Lock::__destruct
  • Swoole\Lock::lock »
  • PHP Manual
  • Swoole\Lock
  • Bloqueia um bloqueio de leitura-escrita para leitura.

Swoole\Lock::lock_read

(PECL swoole >= 1.9.0)

Swoole\Lock::lock_read — Bloqueia um bloqueio de leitura-escrita para leitura.

Descrição

public Swoole\Lock::lock_read(): void

Bloqueia um bloqueio de leitura-escrita para leitura.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Tenta adquirir o bloqueio. Ele vai bloquear se o bloqueio não estiver disponível.

  • « Swoole\Lock::lock_read
  • Swoole\Lock::trylock_read »
  • PHP Manual
  • Swoole\Lock
  • Tenta adquirir o bloqueio. Ele vai bloquear se o bloqueio não estiver disponível.

Swoole\Lock::lock

(PECL swoole >= 1.9.0)

Swoole\Lock::lock — Tenta adquirir o bloqueio. Ele vai bloquear se o bloqueio não estiver disponível.

Descrição

public Swoole\Lock::lock(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Tenta bloquear um bloqueio de leitura-escrita para leitura e retorna imediatamente mesmo que o bloqueio não esteja disponível.

  • « Swoole\Lock::lock
  • Swoole\Lock::trylock »
  • PHP Manual
  • Swoole\Lock
  • Tenta bloquear um bloqueio de leitura-escrita para leitura e retorna imediatamente mesmo que o bloqueio não esteja disponível.

Swoole\Lock::trylock_read

(PECL swoole >= 1.9.0)

Swoole\Lock::trylock_read — Tenta bloquear um bloqueio de leitura-escrita para leitura e retorna imediatamente mesmo que o bloqueio não esteja disponível.

Descrição

public Swoole\Lock::trylock_read(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Tenta adquirir o bloqueio e retorna imediatamente mesmo que o bloqueio não esteja disponível.

  • « Swoole\Lock::trylock_read
  • Swoole\Lock::unlock »
  • PHP Manual
  • Swoole\Lock
  • Tenta adquirir o bloqueio e retorna imediatamente mesmo que o bloqueio não esteja disponível.

Swoole\Lock::trylock

(PECL swoole >= 1.9.0)

Swoole\Lock::trylock — Tenta adquirir o bloqueio e retorna imediatamente mesmo que o bloqueio não esteja disponível.

Descrição

public Swoole\Lock::trylock(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Libera o bloqueio.

  • « Swoole\Lock::trylock
  • Swoole\Mmap »
  • PHP Manual
  • Swoole\Lock
  • Libera o bloqueio.

Swoole\Lock::unlock

(PECL swoole >= 1.9.0)

Swoole\Lock::unlock — Libera o bloqueio.

Descrição

public Swoole\Lock::unlock(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe Swoole\Mmap

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Mmap {
/* Métodos */
public static open(string $filename, string $size = ?, string $offset = ?): ReturnType
}

Índice

  • Swoole\Mmap::open — Mapeia um arquivo na memória e retorna o recurso de fluxo que pode ser usado pelas operações de fluxo do PHP.


Mapeia um arquivo na memória e retorna o recurso de fluxo que pode ser usado pelas operações de fluxo do PHP.

  • « Swoole\Mmap
  • Swoole\MySQL »
  • PHP Manual
  • Swoole\Mmap
  • Mapeia um arquivo na memória e retorna o recurso de fluxo que pode ser usado pelas operações de fluxo do PHP.

Swoole\Mmap::open

(PECL swoole >= 1.9.0)

Swoole\Mmap::open — Mapeia um arquivo na memória e retorna o recurso de fluxo que pode ser usado pelas operações de fluxo do PHP.

Descrição

public static Swoole\Mmap::open(string $filename, string $size = ?, string $offset = ?): ReturnType

Parâmetros

filename

size

offset

Valor Retornado


A classe Swoole\MySQL

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\MySQL {
/* Métodos */
public close(): void
public connect(array $server_config, callable $callback): void
public __destruct(): void
public getBuffer(): ReturnType
public on(string $event_name, callable $callback): void
public query(string $sql, callable $callback): ReturnType
}

Índice

  • Swoole\MySQL::close — Fecha a conexão assíncrona do MySQL.
  • Swoole\MySQL::connect — Conecta-se ao servidor MySQL remoto.
  • Swoole\MySQL::__construct — Constrói um cliente assíncrono do MySQL.
  • Swoole\MySQL::__destruct — Destrói o cliente assíncrono do MySQL.
  • Swoole\MySQL::getBuffer — Descrição
  • Swoole\MySQL::on — Registra uma função de retorno de chamada com base no nome do evento.
  • Swoole\MySQL::query — Executa a consulta SQL.


Fecha a conexão assíncrona do MySQL.

  • « Swoole\MySQL
  • Swoole\MySQL::connect »
  • PHP Manual
  • Swoole\MySQL
  • Fecha a conexão assíncrona do MySQL.

Swoole\MySQL::close

(PECL swoole >= 1.9.0)

Swoole\MySQL::close — Fecha a conexão assíncrona do MySQL.

Descrição

public Swoole\MySQL::close(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Conecta-se ao servidor MySQL remoto.

  • « Swoole\MySQL::close
  • Swoole\MySQL::__construct »
  • PHP Manual
  • Swoole\MySQL
  • Conecta-se ao servidor MySQL remoto.

Swoole\MySQL::connect

(PECL swoole >= 1.9.0)

Swoole\MySQL::connect — Conecta-se ao servidor MySQL remoto.

Descrição

public Swoole\MySQL::connect(array $server_config, callable $callback): void

Conecta-se ao servidor MySQL remoto.

Parâmetros

server_config

callback

Valor Retornado


Constrói um cliente assíncrono do MySQL.

  • « Swoole\MySQL::connect
  • Swoole\MySQL::__destruct »
  • PHP Manual
  • Swoole\MySQL
  • Constrói um cliente assíncrono do MySQL.

Swoole\MySQL::__construct

(PECL swoole >= 1.9.0)

Swoole\MySQL::__construct — Constrói um cliente assíncrono do MySQL.

Descrição

public Swoole\MySQL::__construct()

Constrói um cliente assíncrono do MySQL.

Parâmetros

Esta função não possui parâmetros.


Destrói o cliente assíncrono do MySQL.

  • « Swoole\MySQL::__construct
  • Swoole\MySQL::getBuffer »
  • PHP Manual
  • Swoole\MySQL
  • Destrói o cliente assíncrono do MySQL.

Swoole\MySQL::__destruct

(PECL swoole >= 1.9.0)

Swoole\MySQL::__destruct — Destrói o cliente assíncrono do MySQL.

Descrição

public Swoole\MySQL::__destruct(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Descrição

  • « Swoole\MySQL::__destruct
  • Swoole\MySQL::on »
  • PHP Manual
  • Swoole\MySQL
  • Descrição

Swoole\MySQL::getBuffer

(PECL swoole >= 1.9.0)

Swoole\MySQL::getBuffer — Descrição

Descrição

public Swoole\MySQL::getBuffer(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Registra uma função de retorno de chamada com base no nome do evento.

  • « Swoole\MySQL::getBuffer
  • Swoole\MySQL::query »
  • PHP Manual
  • Swoole\MySQL
  • Registra uma função de retorno de chamada com base no nome do evento.

Swoole\MySQL::on

(PECL swoole >= 1.9.0)

Swoole\MySQL::on — Registra uma função de retorno de chamada com base no nome do evento.

Descrição

public Swoole\MySQL::on(string $event_name, callable $callback): void

Registra uma função de retorno de chamada com base no nome do evento, atualmente apenas o evento 'close' é suportado.

Parâmetros

event_name

callback

Valor Retornado


Executa a consulta SQL.

  • « Swoole\MySQL::on
  • Swoole\MySQL\Exception »
  • PHP Manual
  • Swoole\MySQL
  • Executa a consulta SQL.

Swoole\MySQL::query

(PECL swoole >= 1.9.0)

Swoole\MySQL::query — Executa a consulta SQL.

Descrição

public Swoole\MySQL::query(string $sql, callable $callback): ReturnType

Parâmetros

sql

callback

Valor Retornado


A classe Swoole\MySQL\Exception

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\MySQL\Exception extends Exception implements Throwable {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
}


A classe Swoole\Process

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Process {
/* Constantes */
const int IPC_NOWAIT = 256;
/* Métodos */
public static alarm(int $interval_usec): void
public close(): void
public static daemon(bool $nochdir = ?, bool $noclose = ?): void
public __destruct(): void
public exec(string $exec_file, string $args): ReturnType
public exit(string $exit_code = ?): void
public freeQueue(): void
public static kill(int $pid, int $signal_no = ?): bool
public name(string $process_name): bool
public pop(int $maxsize = ?): mixed
public push(string $data): bool
public read(int $maxsize = ?): string
public static signal(string $signal_no, callable $callback): void
public start(): void
public statQueue(): array
public useQueue(int $key, int $mode = ?): bool
public static wait(bool $blocking = ?): array
public write(string $data): int
}

Constantes pré-definidas

Swoole\Process::IPC_NOWAIT

Índice

  • Swoole\Process::alarm — Temporizador de alta precisão que dispara um sinal em intervalos fixos.
  • Swoole\Process::close — Fecha a conexão (pipe) para o processo filho.
  • Swoole\Process::__construct — Constrói um processo.
  • Swoole\Process::daemon — Transforma o processo em um processo daemon.
  • Swoole\Process::__destruct — Destrói o processo.
  • Swoole\Process::exec — Executa comandos do sistema.
  • Swoole\Process::exit — Para os processos filhos.
  • Swoole\Process::freeQueue — Destrói a fila de mensagens criada por swoole_process::useQueue.
  • Swoole\Process::kill — Envia sinal para o processo filho.
  • Swoole\Process::name — Define o nome do processo.
  • Swoole\Process::pop — Lê e remove dados da fila de mensagens.
  • Swoole\Process::push — Escreve e insere dados na fila de mensagens.
  • Swoole\Process::read — Lê os dados enviados para o processo.
  • Swoole\Process::signal — Envia sinal para os processos filhos.
  • Swoole\Process::start — Inicia o processo.
  • Swoole\Process::statQueue — Obtém as estatísticas da fila de mensagens usada como método de comunicação entre processos.
  • Swoole\Process::useQueue — Cria uma fila de mensagens como método de comunicação entre o processo pai e os processos filhos.
  • Swoole\Process::wait — Aguarda os eventos dos processos filhos.
  • Swoole\Process::write — Escreve dados na conexão (pipe) e comunica com o processo pai ou processos filhos.


Temporizador de alta precisão que dispara um sinal em intervalos fixos.

  • « Swoole\Process
  • Swoole\Process::close »
  • PHP Manual
  • Swoole\Process
  • Temporizador de alta precisão que dispara um sinal em intervalos fixos.

Swoole\Process::alarm

(PECL swoole >= 1.9.0)

Swoole\Process::alarm — Temporizador de alta precisão que dispara um sinal em intervalos fixos.

Descrição

public static Swoole\Process::alarm(int $interval_usec): void

Parâmetros

interval_usec

Valor Retornado


Fecha a conexão (pipe) para o processo filho.

  • « Swoole\Process::alarm
  • Swoole\Process::__construct »
  • PHP Manual
  • Swoole\Process
  • Fecha a conexão (pipe) para o processo filho.

Swoole\Process::close

(PECL swoole >= 1.9.0)

Swoole\Process::close — Fecha a conexão (pipe) para o processo filho.

Descrição

public Swoole\Process::close(): void

Fecha a conexão (pipe) para o processo filho.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Constrói um processo.

  • « Swoole\Process::close
  • Swoole\Process::daemon »
  • PHP Manual
  • Swoole\Process
  • Constrói um processo.

Swoole\Process::__construct

(PECL swoole >= 1.9.0)

Swoole\Process::__construct — Constrói um processo.

Descrição

public Swoole\Process::__construct(callable $callback, bool $redirect_stdin_and_stdout = ?, int $pipe_type = ?)

Parâmetros

callback

redirect_stdin_and_stdout

pipe_type


Transforma o processo em um processo daemon.

  • « Swoole\Process::__construct
  • Swoole\Process::__destruct »
  • PHP Manual
  • Swoole\Process
  • Transforma o processo em um processo daemon.

Swoole\Process::daemon

(PECL swoole >= 1.9.0)

Swoole\Process::daemon — Transforma o processo em um processo daemon.

Descrição

public static Swoole\Process::daemon(bool $nochdir = ?, bool $noclose = ?): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

nochdir

noclose

Valor Retornado


Destrói o processo.

  • « Swoole\Process::daemon
  • Swoole\Process::exec »
  • PHP Manual
  • Swoole\Process
  • Destrói o processo.

Swoole\Process::__destruct

(PECL swoole >= 1.9.0)

Swoole\Process::__destruct — Destrói o processo.

Descrição

public Swoole\Process::__destruct(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Executa comandos do sistema.

  • « Swoole\Process::__destruct
  • Swoole\Process::exit »
  • PHP Manual
  • Swoole\Process
  • Executa comandos do sistema.

Swoole\Process::exec

(PECL swoole >= 1.9.0)

Swoole\Process::exec — Executa comandos do sistema.

Descrição

public Swoole\Process::exec(string $exec_file, string $args): ReturnType

O processo será substituído pelo processo do comando do sistema, mas a conexão (pipe) para o processo pai será mantida.

Parâmetros

exec_file

args

Valor Retornado


Para os processos filhos.

  • « Swoole\Process::exec
  • Swoole\Process::freeQueue »
  • PHP Manual
  • Swoole\Process
  • Para os processos filhos.

Swoole\Process::exit

(PECL swoole >= 1.9.0)

Swoole\Process::exit — Para os processos filhos.

Descrição

public Swoole\Process::exit(string $exit_code = ?): void

Parâmetros

exit_code

Valor Retornado


Destrói a fila de mensagens criada por swoole_process::useQueue.

  • « Swoole\Process::exit
  • Swoole\Process::kill »
  • PHP Manual
  • Swoole\Process
  • Destrói a fila de mensagens criada por swoole_process::useQueue.

Swoole\Process::freeQueue

(PECL swoole >= 1.9.0)

Swoole\Process::freeQueue — Destrói a fila de mensagens criada por swoole_process::useQueue.

Descrição

public Swoole\Process::freeQueue(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Envia sinal para o processo filho.

  • « Swoole\Process::freeQueue
  • Swoole\Process::name »
  • PHP Manual
  • Swoole\Process
  • Envia sinal para o processo filho.

Swoole\Process::kill

(PECL swoole >= 1.9.0)

Swoole\Process::kill — Envia sinal para o processo filho.

Descrição

public static Swoole\Process::kill(int $pid, int $signal_no = ?): bool

Envia sinal para o processo filho.

Parâmetros

pid

PID do processo

signal_no

Sinal a ser enviado

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Define o nome do processo.

  • « Swoole\Process::kill
  • Swoole\Process::pop »
  • PHP Manual
  • Swoole\Process
  • Define o nome do processo.

Swoole\Process::name

(PECL swoole >= 1.9.0)

Swoole\Process::name — Define o nome do processo.

Descrição

public Swoole\Process::name(string $process_name): bool

Parâmetros

process_name

Define o nome do processo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Lê e remove dados da fila de mensagens.

  • « Swoole\Process::name
  • Swoole\Process::push »
  • PHP Manual
  • Swoole\Process
  • Lê e remove dados da fila de mensagens.

Swoole\Process::pop

(PECL swoole >= 1.9.0)

Swoole\Process::pop — Lê e remove dados da fila de mensagens.

Descrição

public Swoole\Process::pop(int $maxsize = ?): mixed

Parâmetros

maxsize

Valor Retornado


Escreve e insere dados na fila de mensagens.

  • « Swoole\Process::pop
  • Swoole\Process::read »
  • PHP Manual
  • Swoole\Process
  • Escreve e insere dados na fila de mensagens.

Swoole\Process::push

(PECL swoole >= 1.9.0)

Swoole\Process::push — Escreve e insere dados na fila de mensagens.

Descrição

public Swoole\Process::push(string $data): bool

Parâmetros

data

Valor Retornado


Lê os dados enviados para o processo.

  • « Swoole\Process::push
  • Swoole\Process::signal »
  • PHP Manual
  • Swoole\Process
  • Lê os dados enviados para o processo.

Swoole\Process::read

(PECL swoole >= 1.9.0)

Swoole\Process::read — Lê os dados enviados para o processo.

Descrição

public Swoole\Process::read(int $maxsize = ?): string

Parâmetros

maxsize

Valor Retornado


Envia sinal para os processos filhos.

  • « Swoole\Process::read
  • Swoole\Process::start »
  • PHP Manual
  • Swoole\Process
  • Envia sinal para os processos filhos.

Swoole\Process::signal

(PECL swoole >= 1.9.0)

Swoole\Process::signal — Envia sinal para os processos filhos.

Descrição

public static Swoole\Process::signal(string $signal_no, callable $callback): void

Parâmetros

signal_no

callback

Valor Retornado

Se o sinal for enviado com sucesso, retorna TRUE, caso contrário, retorna FALSE.


Inicia o processo.

  • « Swoole\Process::signal
  • Swoole\Process::statQueue »
  • PHP Manual
  • Swoole\Process
  • Inicia o processo.

Swoole\Process::start

(PECL swoole >= 1.9.0)

Swoole\Process::start — Inicia o processo.

Descrição

public Swoole\Process::start(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém as estatísticas da fila de mensagens usada como método de comunicação entre processos.

  • « Swoole\Process::start
  • Swoole\Process::useQueue »
  • PHP Manual
  • Swoole\Process
  • Obtém as estatísticas da fila de mensagens usada como método de comunicação entre processos.

Swoole\Process::statQueue

(PECL swoole >= 1.9.0)

Swoole\Process::statQueue — Obtém as estatísticas da fila de mensagens usada como método de comunicação entre processos.

Descrição

public Swoole\Process::statQueue(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O array de status da fila de mensagens.


Cria uma fila de mensagens como método de comunicação entre o processo pai e os processos filhos.

  • « Swoole\Process::statQueue
  • Swoole\Process::wait »
  • PHP Manual
  • Swoole\Process
  • Cria uma fila de mensagens como método de comunicação entre o processo pai e os processos filhos.

Swoole\Process::useQueue

(PECL swoole >= 1.9.0)

Swoole\Process::useQueue — Cria uma fila de mensagens como método de comunicação entre o processo pai e os processos filhos.

Descrição

public Swoole\Process::useQueue(int $key, int $mode = ?): bool

Parâmetros

key

mode

Valor Retornado


Aguarda os eventos dos processos filhos.

  • « Swoole\Process::useQueue
  • Swoole\Process::write »
  • PHP Manual
  • Swoole\Process
  • Aguarda os eventos dos processos filhos.

Swoole\Process::wait

(PECL swoole >= 1.9.0)

Swoole\Process::wait — Aguarda os eventos dos processos filhos.

Descrição

public static Swoole\Process::wait(bool $blocking = ?): array

Parâmetros

blocking

Valor Retornado


Escreve dados na conexão (pipe) e comunica com o processo pai ou processos filhos.

  • « Swoole\Process::wait
  • Swoole\Redis\Server »
  • PHP Manual
  • Swoole\Process
  • Escreve dados na conexão (pipe) e comunica com o processo pai ou processos filhos.

Swoole\Process::write

(PECL swoole >= 1.9.0)

Swoole\Process::write — Escreve dados na conexão (pipe) e comunica com o processo pai ou processos filhos.

Descrição

public Swoole\Process::write(string $data): int

Parâmetros

data

Valor Retornado


A classe Swoole\Redis\Server

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Redis\Server extends Swoole\Server {
/* Constantes */
const int NIL = 1;
const int ERROR = 0;
const int STATUS = 2;
const int INT = 3;
const int STRING = 4;
const int SET = 5;
const int MAP = 6;
/* Métodos */
public static format(string $type, string $value = ?): ReturnType
public setHandler(
string $command,
string $callback,
string $number_of_string_param = ?,
string $type_of_array_param = ?
): ReturnType
public start(): ReturnType
/* Métodos herdados */
public Swoole\Server::addlistener(string $host, int $port, string $socket_type): void
public Swoole\Server::addProcess(swoole_process $process): bool
public Swoole\Server::after(int $after_time_ms, callable $callback, string $param = ?): ReturnType
public Swoole\Server::bind(int $fd, int $uid): bool
public Swoole\Server::clearTimer(int $timer_id): void
swoole_timer_clear(int $timer_id): void
public Swoole\Server::close(int $fd, bool $reset = ?): bool
public Swoole\Server::confirm(int $fd): bool
public Swoole\Server::connection_info(int $fd, int $reactor_id = ?): array
public Swoole\Server::connection_list(int $start_fd, int $pagesize = ?): array
public Swoole\Server::defer(callable $callback): void
public Swoole\Server\Port::__destruct(): void
public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType
public Swoole\Server\Port::set(array $settings): void
public Swoole\Server::exist(int $fd): bool
public Swoole\Server::finish(string $data): void
public Swoole\Server::getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array
public Swoole\Server::getClientList(int $start_fd, int $pagesize = ?): array
public Swoole\Server::getLastError(): int
public Swoole\Server::heartbeat(bool $if_close_connection): mixed
public Swoole\Server::listen(string $host, int $port, string $socket_type): bool
public Swoole\Server::on(string $event_name, callable $callback): void
public Swoole\Server::pause(int $fd): void
public Swoole\Server::protect(int $fd, bool $is_protected = ?): void
public Swoole\Server::reload(): bool
public Swoole\Server::resume(int $fd): void
public Swoole\Server::send(int $fd, string $data, int $reactor_id = ?): bool
public Swoole\Server::sendfile(int $fd, string $filename, int $offset = ?): bool
public Swoole\Server::sendMessage(int $worker_id, string $data): bool
public Swoole\Server::sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool
public Swoole\Server::sendwait(int $fd, string $data): bool
public Swoole\Server::set(array $settings): ReturnType
public Swoole\Server::shutdown(): void
public Swoole\Server::start(): void
public Swoole\Server::stats(): array
public Swoole\Server::stop(int $worker_id = ?): bool
public Swoole\Server::task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed
public Swoole\Server::taskwait(string $data, float $timeout = ?, int $worker_id = ?): void
public Swoole\Server::taskWaitMulti(array $tasks, float $timeout_ms = ?): void
public Swoole\Server::tick(int $interval_ms, callable $callback): void
}

Constantes pré-definidas

Swoole\Redis\Server::NIL

Swoole\Redis\Server::ERROR

Swoole\Redis\Server::STATUS

Swoole\Redis\Server::INT

Swoole\Redis\Server::STRING

Swoole\Redis\Server::SET

Swoole\Redis\Server::MAP

Índice

  • Swoole\Redis\Server::format — Descrição
  • Swoole\Redis\Server::setHandler — Descrição
  • Swoole\Redis\Server::start — Descrição


Descrição

  • « Swoole\Redis\Server
  • Swoole\Redis\Server::setHandler »
  • PHP Manual
  • Swoole\Redis\Server
  • Descrição

Swoole\Redis\Server::format

(PECL swoole >= 1.9.0)

Swoole\Redis\Server::format — Descrição

Descrição

public static Swoole\Redis\Server::format(string $type, string $value = ?): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

type

value

Valor Retornado


Descrição

  • « Swoole\Redis\Server::format
  • Swoole\Redis\Server::start »
  • PHP Manual
  • Swoole\Redis\Server
  • Descrição

Swoole\Redis\Server::setHandler

(PECL swoole >= 1.9.0)

Swoole\Redis\Server::setHandler — Descrição

Descrição

public Swoole\Redis\Server::setHandler(
string $command,
string $callback,
string $number_of_string_param = ?,
string $type_of_array_param = ?
): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

command

callback

number_of_string_param

type_of_array_param

Valor Retornado


Descrição

  • « Swoole\Redis\Server::setHandler
  • Swoole\Serialize »
  • PHP Manual
  • Swoole\Redis\Server
  • Descrição

Swoole\Redis\Server::start

(PECL swoole >= 1.9.0)

Swoole\Redis\Server::start — Descrição

Descrição

public Swoole\Redis\Server::start(): ReturnType

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe Swoole\Serialize

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Serialize {
/* Métodos */
public static pack(string $data, int $is_fast = ?): ReturnType
public static unpack(string $data, string $args = ?): ReturnType
}

Índice

  • Swoole\Serialize::pack — Serializa os dados.
  • Swoole\Serialize::unpack — Desserializa os dados.


Serializa os dados.

  • « Swoole\Serialize
  • Swoole\Serialize::unpack »
  • PHP Manual
  • Swoole\Serialize
  • Serializa os dados.

Swoole\Serialize::pack

(PECL swoole >= 1.9.0)

Swoole\Serialize::pack — Serializa os dados.

Descrição

public static Swoole\Serialize::pack(string $data, int $is_fast = ?): ReturnType

Swoole fornece um módulo de serialização rápido e de alto desempenho.

Parâmetros

data

is_fast

Valor Retornado


Desserializa os dados.

  • « Swoole\Serialize::pack
  • Swoole\Server »
  • PHP Manual
  • Swoole\Serialize
  • Desserializa os dados.

Swoole\Serialize::unpack

(PECL swoole >= 1.9.0)

Swoole\Serialize::unpack — Desserializa os dados.

Descrição

public static Swoole\Serialize::unpack(string $data, string $args = ?): ReturnType

Desserializa os dados.

Parâmetros

string

args

Valor Retornado


A classe Swoole\Server

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Server {
/* Métodos */
public addlistener(string $host, int $port, string $socket_type): void
public addProcess(swoole_process $process): bool
public after(int $after_time_ms, callable $callback, string $param = ?): ReturnType
public bind(int $fd, int $uid): bool
public clearTimer(int $timer_id): void
swoole_timer_clear(int $timer_id): void
public close(int $fd, bool $reset = ?): bool
public confirm(int $fd): bool
public connection_info(int $fd, int $reactor_id = ?): array
public connection_list(int $start_fd, int $pagesize = ?): array
public defer(callable $callback): void
public Swoole\Server\Port::__destruct(): void
public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType
public Swoole\Server\Port::set(array $settings): void
public exist(int $fd): bool
public finish(string $data): void
public getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array
public getClientList(int $start_fd, int $pagesize = ?): array
public getLastError(): int
public heartbeat(bool $if_close_connection): mixed
public listen(string $host, int $port, string $socket_type): bool
public on(string $event_name, callable $callback): void
public pause(int $fd): void
public protect(int $fd, bool $is_protected = ?): void
public reload(): bool
public resume(int $fd): void
public send(int $fd, string $data, int $reactor_id = ?): bool
public sendfile(int $fd, string $filename, int $offset = ?): bool
public sendMessage(int $worker_id, string $data): bool
public sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool
public sendwait(int $fd, string $data): bool
public set(array $settings): ReturnType
public shutdown(): void
public start(): void
public stats(): array
public stop(int $worker_id = ?): bool
public task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed
public taskwait(string $data, float $timeout = ?, int $worker_id = ?): void
public taskWaitMulti(array $tasks, float $timeout_ms = ?): void
public tick(int $interval_ms, callable $callback): void
}

Índice

  • Swoole\Server::addlistener — Adiciona um novo ouvinte (listener) ao servidor.
  • Swoole\Server::addProcess — Adiciona um processo definido pelo usuário (swoole_process) ao servidor.
  • Swoole\Server::after — Aciona uma função de retorno de chamada após um período de tempo.
  • Swoole\Server::bind — Vincula a conexão a um ID de usuário definido pelo usuário
  • Swoole\Server::clearTimer — Para e destrói um temporizador.
  • Swoole\Server::close — Fecha uma conexão com o cliente.
  • Swoole\Server::confirm — Verifica o status da conexão.
  • Swoole\Server::connection_info — Obtém informações da conexão pelo descritor de arquivo.
  • Swoole\Server::connection_list — Obtém todas as conexões estabelecidas.
  • Swoole\Server::__construct — Constrói um servidor Swoole.
  • Swoole\Server::defer — Atrasa a execução da função de retorno de chamada até o final do EventLoop atual.
  • Swoole\Server\Port::__construct — Constrói uma porta do servidor
  • Swoole\Server\Port::__destruct — Destrói porta do servidor
  • Swoole\Server\Port::on — Registra funções de retorno de chamada por evento.
  • Swoole\Server\Port::set — Define o protocolo da porta do servidor.
  • Swoole\Server::exist — Verifica se a conexão existe.
  • Swoole\Server::finish — Usado no processo de tarefa para enviar o resultado para o processo trabalhador quando a tarefa é concluída.
  • Swoole\Server::getClientInfo — Obtém as informações da conexão pelo descritor de arquivo.
  • Swoole\Server::getClientList — Obtém todas as conexões estabelecidas.
  • Swoole\Server::getLastError — Obtém o código de erro do erro mais recente.
  • Swoole\Server::heartbeat — Verifica todas as conexões no servidor.
  • Swoole\Server::listen — Ouve no IP, porta e tipo de socket fornecidos.
  • Swoole\Server::on — Registra uma função de retorno de chamada pelo nome do evento.
  • Swoole\Server::pause — Para de receber dados da conexão.
  • Swoole\Server::protect — Define a conexão para o modo protegido.
  • Swoole\Server::reload — Reinicia todos os processos do trabalhador (worker).
  • Swoole\Server::resume — Inicia a recepção de dados da conexão.
  • Swoole\Server::send — Envia dados para o cliente.
  • Swoole\Server::sendfile — Envia arquivo para a conexão.
  • Swoole\Server::sendMessage — Envia mensagem para processos de trabalhador por ID.
  • Swoole\Server::sendto — Envia dados para o endereço UDP remoto.
  • Swoole\Server::sendwait — Envia dados para o socket remoto de forma bloqueada.
  • Swoole\Server::set — Define as configurações em tempo de execução do servidor Swoole.
  • Swoole\Server::shutdown — Desliga o processo mestre do servidor, esta função pode ser chamada nos processos de trabalho.
  • Swoole\Server::start — Inicia o servidor Swoole.
  • Swoole\Server::stats — Obtém as estatísticas do servidor Swoole.
  • Swoole\Server::stop — Para o servidor Swoole.
  • Swoole\Server::task — Envia dados para os processos de trabalho de tarefa.
  • Swoole\Server::taskwait — Envia dados para os processos de trabalho de tarefa de forma bloqueante.
  • Swoole\Server::taskWaitMulti — Executa várias tarefas concorrentemente.
  • Swoole\Server::tick — Repete uma função fornecida em cada intervalo de tempo especificado.


Adiciona um novo ouvinte (listener) ao servidor.

  • « Swoole\Server
  • Swoole\Server::addProcess »
  • PHP Manual
  • Swoole\Server
  • Adiciona um novo ouvinte (listener) ao servidor.

Swoole\Server::addlistener

(PECL swoole >= 1.9.0)

Swoole\Server::addlistener — Adiciona um novo ouvinte (listener) ao servidor.

Descrição

public Swoole\Server::addlistener(string $host, int $port, string $socket_type): void

Parâmetros

host

port

socket_type

Valor Retornado


Adiciona um processo definido pelo usuário (swoole_process) ao servidor.

  • « Swoole\Server::addlistener
  • Swoole\Server::after »
  • PHP Manual
  • Swoole\Server
  • Adiciona um processo definido pelo usuário (swoole_process) ao servidor.

Swoole\Server::addProcess

(PECL swoole >= 1.9.0)

Swoole\Server::addProcess — Adiciona um processo definido pelo usuário (swoole_process) ao servidor.

Descrição

public Swoole\Server::addProcess(swoole_process $process): bool

Parâmetros

process

Valor Retornado


Aciona uma função de retorno de chamada após um período de tempo.

  • « Swoole\Server::addProcess
  • Swoole\Server::bind »
  • PHP Manual
  • Swoole\Server
  • Aciona uma função de retorno de chamada após um período de tempo.

Swoole\Server::after

(PECL swoole >= 1.9.0)

Swoole\Server::after — Aciona uma função de retorno de chamada após um período de tempo.

Descrição

public Swoole\Server::after(int $after_time_ms, callable $callback, string $param = ?): ReturnType

Parâmetros

after_time_ms

callback

param

Valor Retornado


Vincula a conexão a um ID de usuário definido pelo usuário

  • « Swoole\Server::after
  • Swoole\Server::clearTimer »
  • PHP Manual
  • Swoole\Server
  • Vincula a conexão a um ID de usuário definido pelo usuário

Swoole\Server::bind

(PECL swoole >= 1.9.0)

Swoole\Server::bind — Vincula a conexão a um ID de usuário definido pelo usuário

Descrição

public Swoole\Server::bind(int $fd, int $uid): bool

Parâmetros

fd

uid

Valor Retornado


Para e destrói um temporizador.

  • « Swoole\Server::bind
  • Swoole\Server::close »
  • PHP Manual
  • Swoole\Server
  • Para e destrói um temporizador.

Swoole\Server::clearTimer

swoole_timer_clear

(PECL swoole >= 1.9.0)

Swoole\Server::clearTimer -- swoole_timer_clear — Para e destrói um temporizador.

Descrição

Estilo orientado a objetos (method):

public Swoole\Server::clearTimer(int $timer_id): void

Estilo procedural:

swoole_timer_clear(int $timer_id): void

Para e destrói um temporizador

Parâmetros

timer_id

Valor Retornado


Fecha uma conexão com o cliente.

  • « Swoole\Server::clearTimer
  • Swoole\Server::confirm »
  • PHP Manual
  • Swoole\Server
  • Fecha uma conexão com o cliente.

Swoole\Server::close

(PECL swoole >= 1.9.0)

Swoole\Server::close — Fecha uma conexão com o cliente.

Descrição

public Swoole\Server::close(int $fd, bool $reset = ?): bool

Parâmetros

fd

reset

Valor Retornado


Verifica o status da conexão.

  • « Swoole\Server::close
  • Swoole\Server::connection_info »
  • PHP Manual
  • Swoole\Server
  • Verifica o status da conexão.

Swoole\Server::confirm

(PECL swoole >= 1.9.0)

Swoole\Server::confirm — Verifica o status da conexão.

Descrição

public Swoole\Server::confirm(int $fd): bool

Parâmetros

fd

Valor Retornado


Obtém informações da conexão pelo descritor de arquivo.

  • « Swoole\Server::confirm
  • Swoole\Server::connection_list »
  • PHP Manual
  • Swoole\Server
  • Obtém informações da conexão pelo descritor de arquivo.

Swoole\Server::connection_info

(PECL swoole >= 1.9.0)

Swoole\Server::connection_info — Obtém informações da conexão pelo descritor de arquivo.

Descrição

public Swoole\Server::connection_info(int $fd, int $reactor_id = ?): array

Parâmetros

fd

reactor_id

Valor Retornado


Obtém todas as conexões estabelecidas.

  • « Swoole\Server::connection_info
  • Swoole\Server::__construct »
  • PHP Manual
  • Swoole\Server
  • Obtém todas as conexões estabelecidas.

Swoole\Server::connection_list

(PECL swoole >= 1.9.0)

Swoole\Server::connection_list — Obtém todas as conexões estabelecidas.

Descrição

public Swoole\Server::connection_list(int $start_fd, int $pagesize = ?): array

Parâmetros

start_fd

pagesize

Valor Retornado


Constrói um servidor Swoole.

  • « Swoole\Server::connection_list
  • Swoole\Server::defer »
  • PHP Manual
  • Swoole\Server
  • Constrói um servidor Swoole.

Swoole\Server::__construct

(PECL swoole >= 1.9.0)

Swoole\Server::__construct — Constrói um servidor Swoole.

Descrição

public Swoole\Server::__construct(
string $host,
int $port = ?,
integr $mode = ?,
int $sock_type = ?
)

Parâmetros

host

port

mode

sock_type


Atrasa a execução da função de retorno de chamada até o final do EventLoop atual.

  • « Swoole\Server::__construct
  • Swoole\Server\Port::__construct »
  • PHP Manual
  • Swoole\Server
  • Atrasa a execução da função de retorno de chamada até o final do EventLoop atual.

Swoole\Server::defer

(PECL swoole >= 1.9.0)

Swoole\Server::defer — Atrasa a execução da função de retorno de chamada até o final do EventLoop atual.

Descrição

public Swoole\Server::defer(callable $callback): void

Parâmetros

callback

Valor Retornado


Constrói uma porta do servidor

  • « Swoole\Server::defer
  • Swoole\Server\Port::__destruct »
  • PHP Manual
  • Swoole\Server
  • Constrói uma porta do servidor

Swoole\Server\Port::__construct

(PECL swoole >= 1.9.0)

Swoole\Server\Port::__construct — Constrói uma porta do servidor

Descrição

private Swoole\Server\Port::__construct()

Parâmetros

Esta função não possui parâmetros.


Destrói porta do servidor

  • « Swoole\Server\Port::__construct
  • Swoole\Server\Port::on »
  • PHP Manual
  • Swoole\Server
  • Destrói porta do servidor

Swoole\Server\Port::__destruct

(PECL swoole >= 1.9.0)

Swoole\Server\Port::__destruct — Destrói porta do servidor

Descrição

public Swoole\Server\Port::__destruct(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Registra funções de retorno de chamada por evento.

  • « Swoole\Server\Port::__destruct
  • Swoole\Server\Port::set »
  • PHP Manual
  • Swoole\Server
  • Registra funções de retorno de chamada por evento.

Swoole\Server\Port::on

(PECL swoole >= 1.9.0)

Swoole\Server\Port::on — Registra funções de retorno de chamada por evento.

Descrição

public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType

Parâmetros

event_name

callback

Valor Retornado


Define o protocolo da porta do servidor.

  • « Swoole\Server\Port::on
  • Swoole\Server::exist »
  • PHP Manual
  • Swoole\Server
  • Define o protocolo da porta do servidor.

Swoole\Server\Port::set

(PECL swoole >= 1.9.0)

Swoole\Server\Port::set — Define o protocolo da porta do servidor.

Descrição

public Swoole\Server\Port::set(array $settings): void

Parâmetros

settings

Valor Retornado


Verifica se a conexão existe.

  • « Swoole\Server\Port::set
  • Swoole\Server::finish »
  • PHP Manual
  • Swoole\Server
  • Verifica se a conexão existe.

Swoole\Server::exist

(PECL swoole >= 1.9.0)

Swoole\Server::exist — Verifica se a conexão existe.

Descrição

public Swoole\Server::exist(int $fd): bool

Parâmetros

fd

Valor Retornado


Usado no processo de tarefa para enviar o resultado para o processo trabalhador quando a tarefa é concluída.

  • « Swoole\Server::exist
  • Swoole\Server::getClientInfo »
  • PHP Manual
  • Swoole\Server
  • Usado no processo de tarefa para enviar o resultado para o processo trabalhador quando a tarefa é concluída.

Swoole\Server::finish

(PECL swoole >= 1.9.0)

Swoole\Server::finish — Usado no processo de tarefa para enviar o resultado para o processo trabalhador quando a tarefa é concluída.

Descrição

public Swoole\Server::finish(string $data): void

Parâmetros

data

Valor Retornado


Obtém as informações da conexão pelo descritor de arquivo.

  • « Swoole\Server::finish
  • Swoole\Server::getClientList »
  • PHP Manual
  • Swoole\Server
  • Obtém as informações da conexão pelo descritor de arquivo.

Swoole\Server::getClientInfo

(PECL swoole >= 1.9.0)

Swoole\Server::getClientInfo — Obtém as informações da conexão pelo descritor de arquivo.

Descrição

public Swoole\Server::getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array

Parâmetros

fd

Descritores de arquivo.

reactor_id

O ID do thread do Reactor onde a conexão é feita.

ignore_error

Se deve ignorar erros, se definido como true, as informações da conexão serão retornadas mesmo se a conexão estiver fechada.

Valor Retornado

Retorna informações sobre a conexão do cliente.


Obtém todas as conexões estabelecidas.

  • « Swoole\Server::getClientInfo
  • Swoole\Server::getLastError »
  • PHP Manual
  • Swoole\Server
  • Obtém todas as conexões estabelecidas.

Swoole\Server::getClientList

(PECL swoole >= 1.9.0)

Swoole\Server::getClientList — Obtém todas as conexões estabelecidas.

Descrição

public Swoole\Server::getClientList(int $start_fd, int $pagesize = ?): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

start_fd

pagesize

Valor Retornado


Obtém o código de erro do erro mais recente.

  • « Swoole\Server::getClientList
  • Swoole\Server::heartbeat »
  • PHP Manual
  • Swoole\Server
  • Obtém o código de erro do erro mais recente.

Swoole\Server::getLastError

(PECL swoole >= 1.9.0)

Swoole\Server::getLastError — Obtém o código de erro do erro mais recente.

Descrição

public Swoole\Server::getLastError(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Verifica todas as conexões no servidor.

  • « Swoole\Server::getLastError
  • Swoole\Server::listen »
  • PHP Manual
  • Swoole\Server
  • Verifica todas as conexões no servidor.

Swoole\Server::heartbeat

(PECL swoole >= 1.9.0)

Swoole\Server::heartbeat — Verifica todas as conexões no servidor.

Descrição

public Swoole\Server::heartbeat(bool $if_close_connection): mixed

Parâmetros

if_close_connection

Valor Retornado


Ouve no IP, porta e tipo de socket fornecidos.

  • « Swoole\Server::heartbeat
  • Swoole\Server::on »
  • PHP Manual
  • Swoole\Server
  • Ouve no IP, porta e tipo de socket fornecidos.

Swoole\Server::listen

(PECL swoole >= 1.9.0)

Swoole\Server::listen — Ouve no IP, porta e tipo de socket fornecidos.

Descrição

public Swoole\Server::listen(string $host, int $port, string $socket_type): bool

Parâmetros

host

port

socket_type

Valor Retornado


Registra uma função de retorno de chamada pelo nome do evento.

  • « Swoole\Server::listen
  • Swoole\Server::pause »
  • PHP Manual
  • Swoole\Server
  • Registra uma função de retorno de chamada pelo nome do evento.

Swoole\Server::on

(PECL swoole >= 1.9.0)

Swoole\Server::on — Registra uma função de retorno de chamada pelo nome do evento.

Descrição

public Swoole\Server::on(string $event_name, callable $callback): void

Parâmetros

event_name

callback

Valor Retornado


Para de receber dados da conexão.

  • « Swoole\Server::on
  • Swoole\Server::protect »
  • PHP Manual
  • Swoole\Server
  • Para de receber dados da conexão.

Swoole\Server::pause

(PECL swoole >= 1.9.0)

Swoole\Server::pause — Para de receber dados da conexão.

Descrição

public Swoole\Server::pause(int $fd): void

Parâmetros

fd

Valor Retornado


Define a conexão para o modo protegido.

  • « Swoole\Server::pause
  • Swoole\Server::reload »
  • PHP Manual
  • Swoole\Server
  • Define a conexão para o modo protegido.

Swoole\Server::protect

(PECL swoole >= 1.9.0)

Swoole\Server::protect — Define a conexão para o modo protegido.

Descrição

public Swoole\Server::protect(int $fd, bool $is_protected = ?): void

Parâmetros

fd

is_protected

Valor Retornado


Reinicia todos os processos do trabalhador (worker).

  • « Swoole\Server::protect
  • Swoole\Server::resume »
  • PHP Manual
  • Swoole\Server
  • Reinicia todos os processos do trabalhador (worker).

Swoole\Server::reload

(PECL swoole >= 1.9.0)

Swoole\Server::reload — Reinicia todos os processos do trabalhador (worker).

Descrição

public Swoole\Server::reload(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Inicia a recepção de dados da conexão.

  • « Swoole\Server::reload
  • Swoole\Server::send »
  • PHP Manual
  • Swoole\Server
  • Inicia a recepção de dados da conexão.

Swoole\Server::resume

(PECL swoole >= 1.9.0)

Swoole\Server::resume — Inicia a recepção de dados da conexão.

Descrição

public Swoole\Server::resume(int $fd): void

Parâmetros

fd

Valor Retornado


Envia dados para o cliente.

  • « Swoole\Server::resume
  • Swoole\Server::sendfile »
  • PHP Manual
  • Swoole\Server
  • Envia dados para o cliente.

Swoole\Server::send

(PECL swoole >= 1.9.0)

Swoole\Server::send — Envia dados para o cliente.

Descrição

public Swoole\Server::send(int $fd, string $data, int $reactor_id = ?): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

fd

data

reactor_id

Valor Retornado


Envia arquivo para a conexão.

  • « Swoole\Server::send
  • Swoole\Server::sendMessage »
  • PHP Manual
  • Swoole\Server
  • Envia arquivo para a conexão.

Swoole\Server::sendfile

(PECL swoole >= 1.9.0)

Swoole\Server::sendfile — Envia arquivo para a conexão.

Descrição

public Swoole\Server::sendfile(int $fd, string $filename, int $offset = ?): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

fd

filename

offset

Valor Retornado


Envia mensagem para processos de trabalhador por ID.

  • « Swoole\Server::sendfile
  • Swoole\Server::sendto »
  • PHP Manual
  • Swoole\Server
  • Envia mensagem para processos de trabalhador por ID.

Swoole\Server::sendMessage

(PECL swoole >= 1.9.0)

Swoole\Server::sendMessage — Envia mensagem para processos de trabalhador por ID.

Descrição

public Swoole\Server::sendMessage(int $worker_id, string $data): bool

Parâmetros

dst_worker_id

data

Valor Retornado


Envia dados para o endereço UDP remoto.

  • « Swoole\Server::sendMessage
  • Swoole\Server::sendwait »
  • PHP Manual
  • Swoole\Server
  • Envia dados para o endereço UDP remoto.

Swoole\Server::sendto

(PECL swoole >= 1.9.0)

Swoole\Server::sendto — Envia dados para o endereço UDP remoto.

Descrição

public Swoole\Server::sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool

Parâmetros

ip

port

data

server_socket

Valor Retornado


Envia dados para o socket remoto de forma bloqueada.

  • « Swoole\Server::sendto
  • Swoole\Server::set »
  • PHP Manual
  • Swoole\Server
  • Envia dados para o socket remoto de forma bloqueada.

Swoole\Server::sendwait

(PECL swoole >= 1.9.0)

Swoole\Server::sendwait — Envia dados para o socket remoto de forma bloqueada.

Descrição

public Swoole\Server::sendwait(int $fd, string $data): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

fd

data

Valor Retornado


Define as configurações em tempo de execução do servidor Swoole.

  • « Swoole\Server::sendwait
  • Swoole\Server::shutdown »
  • PHP Manual
  • Swoole\Server
  • Define as configurações em tempo de execução do servidor Swoole.

Swoole\Server::set

(PECL swoole >= 1.9.0)

Swoole\Server::set — Define as configurações em tempo de execução do servidor Swoole.

Descrição

public Swoole\Server::set(array $settings): ReturnType

Define as configurações em tempo de execução do servidor Swoole. As configurações podem ser acessadas por $server->setting após o servidor Swoole ter sido iniciado.

Parâmetros

settings

Valor Retornado


Desliga o processo mestre do servidor, esta função pode ser chamada nos processos de trabalho.

  • « Swoole\Server::set
  • Swoole\Server::start »
  • PHP Manual
  • Swoole\Server
  • Desliga o processo mestre do servidor, esta função pode ser chamada nos processos de trabalho.

Swoole\Server::shutdown

(PECL swoole >= 1.9.0)

Swoole\Server::shutdown — Desliga o processo mestre do servidor, esta função pode ser chamada nos processos de trabalho.

Descrição

public Swoole\Server::shutdown(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Inicia o servidor Swoole.

  • « Swoole\Server::shutdown
  • Swoole\Server::stats »
  • PHP Manual
  • Swoole\Server
  • Inicia o servidor Swoole.

Swoole\Server::start

(PECL swoole >= 1.9.0)

Swoole\Server::start — Inicia o servidor Swoole.

Descrição

public Swoole\Server::start(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém as estatísticas do servidor Swoole.

  • « Swoole\Server::start
  • Swoole\Server::stop »
  • PHP Manual
  • Swoole\Server
  • Obtém as estatísticas do servidor Swoole.

Swoole\Server::stats

(PECL swoole >= 1.9.0)

Swoole\Server::stats — Obtém as estatísticas do servidor Swoole.

Descrição

public Swoole\Server::stats(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Para o servidor Swoole.

  • « Swoole\Server::stats
  • Swoole\Server::task »
  • PHP Manual
  • Swoole\Server
  • Para o servidor Swoole.

Swoole\Server::stop

(PECL swoole >= 1.9.0)

Swoole\Server::stop — Para o servidor Swoole.

Descrição

public Swoole\Server::stop(int $worker_id = ?): bool

Parâmetros

worker_id

Valor Retornado


Envia dados para os processos de trabalho de tarefa.

  • « Swoole\Server::stop
  • Swoole\Server::taskwait »
  • PHP Manual
  • Swoole\Server
  • Envia dados para os processos de trabalho de tarefa.

Swoole\Server::task

(PECL swoole >= 1.9.0)

Swoole\Server::task — Envia dados para os processos de trabalho de tarefa.

Descrição

public Swoole\Server::task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

dst_worker_id

callback

Valor Retornado


Envia dados para os processos de trabalho de tarefa de forma bloqueante.

  • « Swoole\Server::task
  • Swoole\Server::taskWaitMulti »
  • PHP Manual
  • Swoole\Server
  • Envia dados para os processos de trabalho de tarefa de forma bloqueante.

Swoole\Server::taskwait

(PECL swoole >= 1.9.0)

Swoole\Server::taskwait — Envia dados para os processos de trabalho de tarefa de forma bloqueante.

Descrição

public Swoole\Server::taskwait(string $data, float $timeout = ?, int $worker_id = ?): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

data

timeout

worker_id

Valor Retornado


Executa várias tarefas concorrentemente.

  • « Swoole\Server::taskwait
  • Swoole\Server::tick »
  • PHP Manual
  • Swoole\Server
  • Executa várias tarefas concorrentemente.

Swoole\Server::taskWaitMulti

(PECL swoole >= 1.9.0)

Swoole\Server::taskWaitMulti — Executa várias tarefas concorrentemente.

Descrição

public Swoole\Server::taskWaitMulti(array $tasks, float $timeout_ms = ?): void

Parâmetros

tasks

timeout_ms

Valor Retornado


Repete uma função fornecida em cada intervalo de tempo especificado.

  • « Swoole\Server::taskWaitMulti
  • Swoole\Table »
  • PHP Manual
  • Swoole\Server
  • Repete uma função fornecida em cada intervalo de tempo especificado.

Swoole\Server::tick

(PECL swoole >= 1.9.0)

Swoole\Server::tick — Repete uma função fornecida em cada intervalo de tempo especificado.

Descrição

public Swoole\Server::tick(int $interval_ms, callable $callback): void

Parâmetros

interval_ms

callback

Valor Retornado


A classe Swoole\Table

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Table implements Iterator, Countable {
/* Constantes */
const int TYPE_INT = 1;
const int TYPE_STRING = 7;
const int TYPE_FLOAT = 6;
/* Métodos */
public column(string $name, string $type, int $size = ?): ReturnType
public count(): int
public create(): void
public current(): array
public decr(string $key, string $column, int $decrby = ?): ReturnType
public del(string $key): void
public destroy(): void
public exist(string $key): bool
public get(string $row_key, string $column_key): int
public incr(string $key, string $column, int $incrby = ?): void
public key(): string
public next(): ReturnType
public rewind(): void
public set(string $key, array $value): void
public valid(): bool
}

Constantes pré-definidas

Swoole\Table::TYPE_INT

Swoole\Table::TYPE_STRING

Swoole\Table::TYPE_FLOAT

Índice

  • Swoole\Table::column — Define o tipo de dados e o tamanho das colunas.
  • Swoole\Table::__construct — Constrói uma tabela de memória Swoole com tamanho fixo.
  • Swoole\Table::count — Conta as linhas na tabela, ou conta todos os elementos na tabela se $mode = 1.
  • Swoole\Table::create — Cria a tabela de memória Swoole.
  • Swoole\Table::current — Obtém a linha atual.
  • Swoole\Table::decr — Decrementa o valor na tabela Swoole pelo $row_key e $column_key.
  • Swoole\Table::del — Exclui uma linha na tabela Swoole pelo $row_key.
  • Swoole\Table::destroy — Destrói a tabela Swoole.
  • Swoole\Table::exist — Verifica se uma linha existe pelo $row_key.
  • Swoole\Table::get — Obtém o valor na tabela Swoole pelo $row_key e $column_key.
  • Swoole\Table::incr — Incrementa o valor pelo $row_key e $column_key.
  • Swoole\Table::key — Obtém a chave da linha atual.
  • Swoole\Table::next — Itera para a próxima linha.
  • Swoole\Table::rewind — Rebobina o iterador.
  • Swoole\Table::set — Atualiza uma linha da tabela pelo $row_key.
  • Swoole\Table::valid — Verifica se a linha atual é válida.


Define o tipo de dados e o tamanho das colunas.

  • « Swoole\Table
  • Swoole\Table::__construct »
  • PHP Manual
  • Swoole\Table
  • Define o tipo de dados e o tamanho das colunas.

Swoole\Table::column

(PECL swoole >= 1.9.0)

Swoole\Table::column — Define o tipo de dados e o tamanho das colunas.

Descrição

public Swoole\Table::column(string $name, string $type, int $size = ?): ReturnType

Parâmetros

name

type

size

Valor Retornado


Constrói uma tabela de memória Swoole com tamanho fixo.

  • « Swoole\Table::column
  • Swoole\Table::count »
  • PHP Manual
  • Swoole\Table
  • Constrói uma tabela de memória Swoole com tamanho fixo.

Swoole\Table::__construct

(PECL swoole >= 1.9.0)

Swoole\Table::__construct — Constrói uma tabela de memória Swoole com tamanho fixo.

Descrição

public Swoole\Table::__construct(int $table_size)

Parâmetros

table_size


Conta as linhas na tabela, ou conta todos os elementos na tabela se $mode = 1.

  • « Swoole\Table::__construct
  • Swoole\Table::create »
  • PHP Manual
  • Swoole\Table
  • Conta as linhas na tabela, ou conta todos os elementos na tabela se $mode = 1.

Swoole\Table::count

(PECL swoole >= 1.9.0)

Swoole\Table::count — Conta as linhas na tabela, ou conta todos os elementos na tabela se $mode = 1.

Descrição

public Swoole\Table::count(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Cria a tabela de memória Swoole.

  • « Swoole\Table::count
  • Swoole\Table::current »
  • PHP Manual
  • Swoole\Table
  • Cria a tabela de memória Swoole.

Swoole\Table::create

(PECL swoole >= 1.9.0)

Swoole\Table::create — Cria a tabela de memória Swoole.

Descrição

public Swoole\Table::create(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Obtém a linha atual.

  • « Swoole\Table::create
  • Swoole\Table::decr »
  • PHP Manual
  • Swoole\Table
  • Obtém a linha atual.

Swoole\Table::current

(PECL swoole >= 1.9.0)

Swoole\Table::current — Obtém a linha atual.

Descrição

public Swoole\Table::current(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Decrementa o valor na tabela Swoole pelo $row_key e $column_key.

  • « Swoole\Table::current
  • Swoole\Table::del »
  • PHP Manual
  • Swoole\Table
  • Decrementa o valor na tabela Swoole pelo $row_key e $column_key.

Swoole\Table::decr

(PECL swoole >= 1.9.0)

Swoole\Table::decr — Decrementa o valor na tabela Swoole pelo $row_key e $column_key.

Descrição

public Swoole\Table::decr(string $key, string $column, int $decrby = ?): ReturnType

Parâmetros

key

column

decrby

Valor Retornado


Exclui uma linha na tabela Swoole pelo $row_key.

  • « Swoole\Table::decr
  • Swoole\Table::destroy »
  • PHP Manual
  • Swoole\Table
  • Exclui uma linha na tabela Swoole pelo $row_key.

Swoole\Table::del

(PECL swoole >= 1.9.0)

Swoole\Table::del — Exclui uma linha na tabela Swoole pelo $row_key.

Descrição

public Swoole\Table::del(string $key): void

Parâmetros

key

Valor Retornado


Destrói a tabela Swoole.

  • « Swoole\Table::del
  • Swoole\Table::exist »
  • PHP Manual
  • Swoole\Table
  • Destrói a tabela Swoole.

Swoole\Table::destroy

(PECL swoole >= 1.9.0)

Swoole\Table::destroy — Destrói a tabela Swoole.

Descrição

public Swoole\Table::destroy(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Verifica se uma linha existe pelo $row_key.

  • « Swoole\Table::destroy
  • Swoole\Table::get »
  • PHP Manual
  • Swoole\Table
  • Verifica se uma linha existe pelo $row_key.

Swoole\Table::exist

(PECL swoole >= 1.9.0)

Swoole\Table::exist — Verifica se uma linha existe pelo $row_key.

Descrição

public Swoole\Table::exist(string $key): bool

Parâmetros

key

Valor Retornado


Obtém o valor na tabela Swoole pelo $row_key e $column_key.

  • « Swoole\Table::exist
  • Swoole\Table::incr »
  • PHP Manual
  • Swoole\Table
  • Obtém o valor na tabela Swoole pelo $row_key e $column_key.

Swoole\Table::get

(PECL swoole >= 1.9.0)

Swoole\Table::get — Obtém o valor na tabela Swoole pelo $row_key e $column_key.

Descrição

public Swoole\Table::get(string $row_key, string $column_key): int

Parâmetros

row_key

column_key

Valor Retornado


Incrementa o valor pelo $row_key e $column_key.

  • « Swoole\Table::get
  • Swoole\Table::key »
  • PHP Manual
  • Swoole\Table
  • Incrementa o valor pelo $row_key e $column_key.

Swoole\Table::incr

(PECL swoole >= 1.9.0)

Swoole\Table::incr — Incrementa o valor pelo $row_key e $column_key.

Descrição

public Swoole\Table::incr(string $key, string $column, int $incrby = ?): void

Parâmetros

key

column

incrby

Valor Retornado


Obtém a chave da linha atual.

  • « Swoole\Table::incr
  • Swoole\Table::next »
  • PHP Manual
  • Swoole\Table
  • Obtém a chave da linha atual.

Swoole\Table::key

(PECL swoole >= 1.9.0)

Swoole\Table::key — Obtém a chave da linha atual.

Descrição

public Swoole\Table::key(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Itera para a próxima linha.

  • « Swoole\Table::key
  • Swoole\Table::rewind »
  • PHP Manual
  • Swoole\Table
  • Itera para a próxima linha.

Swoole\Table::next

(PECL swoole >= 1.9.0)

Swoole\Table::next — Itera para a próxima linha.

Descrição

public Swoole\Table::next(): ReturnType

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Rebobina o iterador.

  • « Swoole\Table::next
  • Swoole\Table::set »
  • PHP Manual
  • Swoole\Table
  • Rebobina o iterador.

Swoole\Table::rewind

(PECL swoole >= 1.9.0)

Swoole\Table::rewind — Rebobina o iterador.

Descrição

public Swoole\Table::rewind(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Atualiza uma linha da tabela pelo $row_key.

  • « Swoole\Table::rewind
  • Swoole\Table::valid »
  • PHP Manual
  • Swoole\Table
  • Atualiza uma linha da tabela pelo $row_key.

Swoole\Table::set

(PECL swoole >= 1.9.0)

Swoole\Table::set — Atualiza uma linha da tabela pelo $row_key.

Descrição

public Swoole\Table::set(string $key, array $value): void

Parâmetros

key

value

Valor Retornado


Verifica se a linha atual é válida.

  • « Swoole\Table::set
  • Swoole\Timer »
  • PHP Manual
  • Swoole\Table
  • Verifica se a linha atual é válida.

Swoole\Table::valid

(PECL swoole >= 1.9.0)

Swoole\Table::valid — Verifica se a linha atual é válida.

Descrição

public Swoole\Table::valid(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe Swoole\Timer

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\Timer {
/* Métodos */
public static after(int $after_time_ms, callable $callback): void
public static clear(int $timer_id): void
public static exists(int $timer_id): bool
public static tick(int $interval_ms, callable $callback, string $param = ?): void
}

Índice

  • Swoole\Timer::after — Aciona uma função de retorno de chamada após um período de tempo.
  • Swoole\Timer::clear — Exclui um temporizador pelo ID do temporizador.
  • Swoole\Timer::exists — Verifica se um temporizador existe.
  • Swoole\Timer::tick — Repete uma função fornecida em cada intervalo de tempo especificado.


Aciona uma função de retorno de chamada após um período de tempo.

  • « Swoole\Timer
  • Swoole\Timer::clear »
  • PHP Manual
  • Swoole\Timer
  • Aciona uma função de retorno de chamada após um período de tempo.

Swoole\Timer::after

(PECL swoole >= 1.9.0)

Swoole\Timer::after — Aciona uma função de retorno de chamada após um período de tempo.

Descrição

public static Swoole\Timer::after(int $after_time_ms, callable $callback): void

Aciona uma função de retorno de chamada após um período de tempo.

Parâmetros

after_time_ms

callback

Valor Retornado


Exclui um temporizador pelo ID do temporizador.

  • « Swoole\Timer::after
  • Swoole\Timer::exists »
  • PHP Manual
  • Swoole\Timer
  • Exclui um temporizador pelo ID do temporizador.

Swoole\Timer::clear

(PECL swoole >= 1.9.0)

Swoole\Timer::clear — Exclui um temporizador pelo ID do temporizador.

Descrição

public static Swoole\Timer::clear(int $timer_id): void

Exclui um temporizador pelo ID do temporizador.

Parâmetros

timer_id

Valor Retornado


Verifica se um temporizador existe.

  • « Swoole\Timer::clear
  • Swoole\Timer::tick »
  • PHP Manual
  • Swoole\Timer
  • Verifica se um temporizador existe.

Swoole\Timer::exists

(PECL swoole >= 1.9.0)

Swoole\Timer::exists — Verifica se um temporizador existe.

Descrição

public static Swoole\Timer::exists(int $timer_id): bool

Verifica se um temporizador existe.

Parâmetros

timer_id

Valor Retornado


Repete uma função fornecida em cada intervalo de tempo especificado.

  • « Swoole\Timer::exists
  • Swoole\WebSocket\Frame »
  • PHP Manual
  • Swoole\Timer
  • Repete uma função fornecida em cada intervalo de tempo especificado.

Swoole\Timer::tick

(PECL swoole >= 1.9.0)

Swoole\Timer::tick — Repete uma função fornecida em cada intervalo de tempo especificado.

Descrição

public static Swoole\Timer::tick(int $interval_ms, callable $callback, string $param = ?): void

Parâmetros

interval_ms

callback

param

Valor Retornado


A classe Swoole\WebSocket\Frame

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\WebSocket\Frame {
/* Métodos */
}


A classe Swoole\WebSocket\Server

(PECL swoole >= 1.9.0)

Introdução

Resumo da classe

class Swoole\WebSocket\Server extends Swoole\Http\Server {
/* Métodos */
public exist(int $fd): bool
public on(string $event_name, callable $callback): ReturnType
public static pack(
string $data,
string $opcode = ?,
string $finish = ?,
string $mask = ?
): binary
public push(
string $fd,
string $data,
string $opcode = ?,
string $finish = ?
): void
public static unpack(binary $data): string
/* Métodos herdados */
public Swoole\Http\Server::on(string $event_name, callable $callback): void
public Swoole\Http\Server::start(): void
}

Índice

  • Swoole\WebSocket\Server::exist — Verifica se o descritor de arquivo existe.
  • Swoole\WebSocket\Server::on — Registra função de retorno de chamada de evento
  • Swoole\WebSocket\Server::pack — Obtém um pacote de dados binários para enviar em um único quadro.
  • Swoole\WebSocket\Server::push — Envia dados para o cliente remoto.
  • Swoole\WebSocket\Server::unpack — Desempacota os dados binários recebidos do cliente.


Verifica se o descritor de arquivo existe.

  • « Swoole\WebSocket\Server
  • Swoole\WebSocket\Server::on »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Verifica se o descritor de arquivo existe.

Swoole\WebSocket\Server::exist

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::exist — Verifica se o descritor de arquivo existe.

Descrição

public Swoole\WebSocket\Server::exist(int $fd): bool

Parâmetros

fd

Valor Retornado


Registra função de retorno de chamada de evento

  • « Swoole\WebSocket\Server::exist
  • Swoole\WebSocket\Server::pack »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Registra função de retorno de chamada de evento

Swoole\WebSocket\Server::on

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::on — Registra função de retorno de chamada de evento

Descrição

public Swoole\WebSocket\Server::on(string $event_name, callable $callback): ReturnType

Registra função de retorno de chamada de evento

Parâmetros

event_name

callback

Valor Retornado


Obtém um pacote de dados binários para enviar em um único quadro.

  • « Swoole\WebSocket\Server::on
  • Swoole\WebSocket\Server::push »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Obtém um pacote de dados binários para enviar em um único quadro.

Swoole\WebSocket\Server::pack

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::pack — Obtém um pacote de dados binários para enviar em um único quadro.

Descrição

public static Swoole\WebSocket\Server::pack(
string $data,
string $opcode = ?,
string $finish = ?,
string $mask = ?
): binary

Parâmetros

data

opcode

finish

mask

Valor Retornado


Envia dados para o cliente remoto.

  • « Swoole\WebSocket\Server::pack
  • Swoole\WebSocket\Server::unpack »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Envia dados para o cliente remoto.

Swoole\WebSocket\Server::push

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::push — Envia dados para o cliente remoto.

Descrição

public Swoole\WebSocket\Server::push(
string $fd,
string $data,
string $opcode = ?,
string $finish = ?
): void

Parâmetros

fd

data

opcode

finish

Valor Retornado


Desempacota os dados binários recebidos do cliente.

  • « Swoole\WebSocket\Server::push
  • Tidy »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Desempacota os dados binários recebidos do cliente.

Swoole\WebSocket\Server::unpack

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::unpack — Desempacota os dados binários recebidos do cliente.

Descrição

public static Swoole\WebSocket\Server::unpack(binary $data): string

Parâmetros

data

Valor Retornado


Tidy

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Exemplo de Tidy
  • tidy — The tidy class
    • tidy::body — Returns a tidyNode object starting from the <body> tag of the tidy parse tree
    • tidy::cleanRepair — Execute configured cleanup and repair operations on parsed markup
    • tidy::__construct — Constructs a new tidy object
    • tidy::diagnose — Run configured diagnostics on parsed and repaired markup
    • tidy::$errorBuffer — Return warnings and errors which occurred parsing the specified document
    • tidy::getConfig — Get current Tidy configuration
    • tidy::getHtmlVer — Get the Detected HTML version for the specified document
    • tidy::getOpt — Returns the value of the specified configuration option for the tidy document
    • tidy::getOptDoc — Returns the documentation for the given option name
    • tidy::getRelease — Get release date (version) for Tidy library
    • tidy::getStatus — Get status of specified document
    • tidy::head — Returns a tidyNode object starting from the <head> tag of the tidy parse tree
    • tidy::html — Returns a tidyNode object starting from the <html> tag of the tidy parse tree
    • tidy::isXhtml — Indicates if the document is a XHTML document
    • tidy::isXml — Indicates if the document is a generic (non HTML/XHTML) XML document
    • tidy::parseFile — Parse markup in file or URI
    • tidy::parseString — Parse a document stored in a string
    • tidy::repairFile — Repair a file and return it as a string
    • tidy::repairString — Repair a string using an optionally provided configuration file
    • tidy::root — Returns a tidyNode object representing the root of the tidy parse tree
  • tidyNode — The tidyNode class
    • tidyNode::__construct — Private constructor to disallow direct instantiation
    • tidyNode::getParent — Returns the parent node of the current node
    • tidyNode::hasChildren — Checks if a node has children
    • tidyNode::hasSiblings — Checks if a node has siblings
    • tidyNode::isAsp — Checks if this node is ASP
    • tidyNode::isComment — Checks if a node represents a comment
    • tidyNode::isHtml — Checks if a node is an element node
    • tidyNode::isJste — Checks if this node is JSTE
    • tidyNode::isPhp — Checks if a node is PHP
    • tidyNode::isText — Checks if a node represents text (no markup)
  • Tidy Funções
    • ob_tidyhandler — ob_start callback function to repair the buffer
    • tidy_access_count — Returns the Number of Tidy accessibility warnings encountered for specified document
    • tidy_config_count — Returns the Number of Tidy configuration errors encountered for specified document
    • tidy_error_count — Returns the Number of Tidy errors encountered for specified document
    • tidy_get_output — Return a string representing the parsed tidy markup
    • tidy_warning_count — Returns the Number of Tidy warnings encountered for specified document


Introdução

Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipulate HTML, XHTML, and XML documents, but also traverse the document tree, including ones with embedded scripting languages such as PHP or ASP within them using object-oriented constructs.


Dependências

Para usar o Tidy, você irá precisar da libtidy instalada, disponível na » homepage do tidy. A partir do PHP 7.1.0, o sucessor compatível com HTML5 » libtidy5 pode ser usado alternativamente. A partir do PHP 7.3.0, outra opção é usar » libtidyp.


  • « Dependências
  • Configurações em Execução »
  • PHP Manual
  • Instalação/Configuração
  • Instalação

Instalação

This extension is bundled with PHP, and is installed using the --with-tidy configure option.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração do Tidy
Nome | Padrão | Modificável | Registro de Alterações
tidy.default_config | "" | INI_SYSTEM |
tidy.clean_output | "0" | INI_USER |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

tidy.default_config string

Caminho padrão para o arquivo de configuração do tidy.

tidy.clean_output bool

Torna on/off a saída reparada pelo Tidy.

Aviso

Não ative tidy.clean_output se você está gerando conteúdo não-html como imagens dinâmicas.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Each TIDY_TAG_XXX represents a HTML tag. For example, TIDY_TAG_A represents a "<a href="XX">link</a>" tag.

The following constants are defined:

tidy tag constants
Constant | Notes
TIDY_TAG_UNKNOWN |
TIDY_TAG_A |
TIDY_TAG_ABBR |
TIDY_TAG_ACRONYM |
TIDY_TAG_ALIGN |
TIDY_TAG_APPLET |
TIDY_TAG_AREA |
TIDY_TAG_ARTICLE | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_ASIDE | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_AUDIO | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_B |
TIDY_TAG_BASE |
TIDY_TAG_BASEFONT |
TIDY_TAG_BDI | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
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_CANVAS | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_CAPTION |
TIDY_TAG_CENTER |
TIDY_TAG_CITE |
TIDY_TAG_CODE |
TIDY_TAG_COL |
TIDY_TAG_COLGROUP |
TIDY_TAG_COMMAND | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_COMMENT |
TIDY_TAG_DATALIST | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_DD |
TIDY_TAG_DEL |
TIDY_TAG_DETAILS | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_DFN |
TIDY_TAG_DIALOG | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_DIR |
TIDY_TAG_DIV |
TIDY_TAG_DL |
TIDY_TAG_DT |
TIDY_TAG_EM |
TIDY_TAG_EMBED |
TIDY_TAG_FIELDSET |
TIDY_TAG_FIGCAPTION | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_FIGURE | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_FONT |
TIDY_TAG_FOOTER | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
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_H6 |
TIDY_TAG_HEAD |
TIDY_TAG_HEADER | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_HGROUP | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
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_MAIN | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_MAP |
TIDY_TAG_MARK | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_MARQUEE |
TIDY_TAG_MENU |
TIDY_TAG_MENUITEM | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_META |
TIDY_TAG_METER | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_MULTICOL |
TIDY_TAG_NAV | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_NOBR |
TIDY_TAG_NOEMBED |
TIDY_TAG_NOFRAMES |
TIDY_TAG_NOLAYER |
TIDY_TAG_NOSAVE |
TIDY_TAG_NOSCRIPT |
TIDY_TAG_OBJECT |
TIDY_TAG_OL |
TIDY_TAG_OPTGROUP |
TIDY_TAG_OPTION |
TIDY_TAG_OUTPUT | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_P |
TIDY_TAG_PARAM |
TIDY_TAG_PLAINTEXT |
TIDY_TAG_PRE |
TIDY_TAG_PROGRESS | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_Q |
TIDY_TAG_RB |
TIDY_TAG_RBC |
TIDY_TAG_RP |
TIDY_TAG_RT |
TIDY_TAG_RTC |
TIDY_TAG_RUBY |
TIDY_TAG_S |
TIDY_TAG_SAMP |
TIDY_TAG_SCRIPT |
TIDY_TAG_SECTION | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_SELECT |
TIDY_TAG_SERVER |
TIDY_TAG_SERVLET |
TIDY_TAG_SMALL |
TIDY_TAG_SOURCE | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_SPACER |
TIDY_TAG_SPAN |
TIDY_TAG_STRIKE |
TIDY_TAG_STRONG |
TIDY_TAG_STYLE |
TIDY_TAG_SUB |
TIDY_TAG_SUMMARY | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_SUP |
TIDY_TAG_TABLE |
TIDY_TAG_TBODY |
TIDY_TAG_TD |
TIDY_TAG_TEMPLATE | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_TEXTAREA |
TIDY_TAG_TFOOT |
TIDY_TAG_TH |
TIDY_TAG_THEAD |
TIDY_TAG_TIME | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_TITLE |
TIDY_TAG_TR |
TIDY_TAG_TRACK | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_TT |
TIDY_TAG_U |
TIDY_TAG_UL |
TIDY_TAG_VAR |
TIDY_TAG_VIDEO | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_WBR |
TIDY_TAG_XMP |

tidy nodetype constants
constant | description
TIDY_NODETYPE_ROOT | root node
TIDY_NODETYPE_DOCTYPE | doctype
TIDY_NODETYPE_COMMENT | HTML comment
TIDY_NODETYPE_PROCINS | Processing Instruction
TIDY_NODETYPE_TEXT | Text
TIDY_NODETYPE_START | start tag
TIDY_NODETYPE_END | end tag
TIDY_NODETYPE_STARTEND | empty tag
TIDY_NODETYPE_CDATA | CDATA
TIDY_NODETYPE_SECTION | XML section
TIDY_NODETYPE_ASP | ASP code
TIDY_NODETYPE_JSTE | JSTE code
TIDY_NODETYPE_PHP | PHP code
TIDY_NODETYPE_XMLDECL | XML declaration


  • « Constantes pré-definidas
  • Exemplo de Tidy »
  • PHP Manual
  • Tidy
  • Exemplos

Exemplos

Índice

  • Exemplo de Tidy


Exemplo de Tidy

Este exemplo simples mostra o básico do uso do Tidy.

Exemplo #1 Básico uso do Tidy

<?php
ob_start();
?>
<html>a html document</html>
<?php
$html = ob_get_clean();

// Specify configuration
$config = array(
'indent' => true,
'output-xhtml' => true,
'wrap' => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// Output
echo $tidy;
?>


The tidy class

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

Introdução

An HTML node in an HTML file, as detected by tidy.

Resumo da classe

class tidy {
/* Propriedades */
public ?string $errorBuffer = null;
public ?string $value = null;
/* Métodos */
public __construct(
?string $filename = null,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
)
public body(): ?tidyNode
public cleanRepair(): bool
public diagnose(): bool
public getConfig(): array
public getHtmlVer(): int
public getOpt(string $option): string|int|bool
public getOptDoc(string $option): string|false
public getRelease(): string
public getStatus(): int
public head(): ?tidyNode
public html(): ?tidyNode
public isXhtml(): bool
public isXml(): bool
public parseFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): bool
public parseString(string $string, array|string|null $config = null, ?string $encoding = null): bool
public static repairFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): string|false
public static repairString(string $string, array|string|null $config = null, ?string $encoding = null): string|false
public root(): ?tidyNode
}

Propriedades

value

The HTML representation of the node, including the surrounding tags.

Índice

  • tidy::body — Returns a tidyNode object starting from the <body> tag of the tidy parse tree
  • tidy::cleanRepair — Execute configured cleanup and repair operations on parsed markup
  • tidy::__construct — Constructs a new tidy object
  • tidy::diagnose — Run configured diagnostics on parsed and repaired markup
  • tidy::$errorBuffer — Return warnings and errors which occurred parsing the specified document
  • tidy::getConfig — Get current Tidy configuration
  • tidy::getHtmlVer — Get the Detected HTML version for the specified document
  • tidy::getOpt — Returns the value of the specified configuration option for the tidy document
  • tidy::getOptDoc — Returns the documentation for the given option name
  • tidy::getRelease — Get release date (version) for Tidy library
  • tidy::getStatus — Get status of specified document
  • tidy::head — Returns a tidyNode object starting from the <head> tag of the tidy parse tree
  • tidy::html — Returns a tidyNode object starting from the <html> tag of the tidy parse tree
  • tidy::isXhtml — Indicates if the document is a XHTML document
  • tidy::isXml — Indicates if the document is a generic (non HTML/XHTML) XML document
  • tidy::parseFile — Parse markup in file or URI
  • tidy::parseString — Parse a document stored in a string
  • tidy::repairFile — Repair a file and return it as a string
  • tidy::repairString — Repair a string using an optionally provided configuration file
  • tidy::root — Returns a tidyNode object representing the root of the tidy parse tree


Returns a tidyNode object starting from the <body> tag of the tidy parse tree

  • « tidy
  • tidy::cleanRepair »
  • PHP Manual
  • tidy
  • Returns a tidyNode object starting from the <body> tag of the tidy parse tree

tidy::body

tidy_get_body

(PHP 5, PHP 7, PHP 8, PECL tidy 0.5.2-1.0)

tidy::body -- tidy_get_body — Returns a tidyNode object starting from the <body> tag of the tidy parse tree

Descrição

Estilo orientado a objetos

public tidy::body(): ?tidyNode

Estilo procedural

tidy_get_body(tidy $tidy): ?tidyNode

Returns a tidyNode object starting from the <body> tag of the tidy parse tree.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns a tidyNode object starting from the <body> tag of the tidy parse tree.

Exemplos

Exemplo #1 tidy::getBody() example

<?php
$html = '
<html>
<head>
<title>test</title>
</head>
<body>
<p>paragraph</p>
</body>
</html>';

$tidy = tidy_parse_string($html);

$body = $tidy->Body();
echo $body->value;
?>

O exemplo acima produzirá:

<body>
<p>paragraph</p>
</body>

Veja Também

  • tidy::head() - Returns a tidyNode object starting from the <head> tag of the tidy parse tree
  • tidy::html() - Returns a tidyNode object starting from the <html> tag of the tidy parse tree


Execute configured cleanup and repair operations on parsed markup

  • « tidy::body
  • tidy::__construct »
  • PHP Manual
  • tidy
  • Execute configured cleanup and repair operations on parsed markup

tidy::cleanRepair

tidy_clean_repair

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::cleanRepair -- tidy_clean_repair — Execute configured cleanup and repair operations on parsed markup

Descrição

Estilo orientado a objetos

public tidy::cleanRepair(): bool

Estilo procedural

tidy_clean_repair(tidy $tidy): bool

This function cleans and repairs the given tidy tidy.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 tidy::cleanrepair() example

<?php
$html = '<p>test</I>';

$tidy = tidy_parse_string($html);
$tidy->cleanRepair();

echo $tidy;
?>

O exemplo acima produzirá:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

Veja Também

  • tidy::repairFile() - Repair a file and return it as a string
  • tidy::repairString() - Repair a string using an optionally provided configuration file


Constructs a new tidy object

  • « tidy::cleanRepair
  • tidy::diagnose »
  • PHP Manual
  • tidy
  • Constructs a new tidy object

tidy::__construct

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::__construct — Constructs a new tidy object

Descrição

public tidy::__construct(
?string $filename = null,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
)

Constructs a new tidy object.

Parâmetros

filename

If the filename parameter is given, this function will also read that file and initialize the object with the file, acting like tidy_parse_file().

config

The config config can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.

For an explanation about each option, visit » http://api.html-tidy.org/#quick-reference.

encoding

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.

useIncludePath

Search for the file in the include_path.

Registro de Alterações

Versão | Descrição
8.0.0 | filename, config, encoding and useIncludePath are nullable now.

Exemplos

Exemplo #1 tidy::__construct() example

<?php

$html = <<< HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>title</title></head>
<body>
<p>paragraph <bt />
text</p>
</body></html>

HTML;

$tidy = new tidy();
$tidy->ParseString($html);

$tidy->cleanRepair();

if ($tidy->errorBuffer) {
echo "The following errors were detected:\n";
echo $tidy->errorBuffer;
}

?>

O exemplo acima produzirá:

The following errors were detected:
line 8 column 14 - Error: <bt> is not recognized!
line 8 column 14 - Warning: discarding unexpected <bt>

Veja Também

  • tidy::parseFile() - Parse markup in file or URI
  • tidy::parseString() - Parse a document stored in a string


Run configured diagnostics on parsed and repaired markup

  • « tidy::__construct
  • tidy::$errorBuffer »
  • PHP Manual
  • tidy
  • Run configured diagnostics on parsed and repaired markup

tidy::diagnose

tidy_diagnose

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::diagnose -- tidy_diagnose — Run configured diagnostics on parsed and repaired markup

Descrição

Estilo orientado a objetos

public tidy::diagnose(): bool

Estilo procedural

tidy_diagnose(tidy $tidy): bool

Runs diagnostic tests on the given tidy tidy, adding some more information about the document in the error buffer.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 tidy::diagnose() example

<?php

$html = <<< HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<p>paragraph</p>
HTML;

$tidy = tidy_parse_string($html);
$tidy->cleanRepair();

// note the difference between the two outputs
echo $tidy->errorBuffer . "\n";

$tidy->diagnose();
echo $tidy->errorBuffer;

?>

O exemplo acima produzirá:

line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
Info: Doctype given is "-//W3C//DTD XHTML 1.0 Strict//EN"
Info: Document content looks like XHTML 1.0 Strict
2 warnings, 0 errors were found!

Veja Também

  • tidy::errorBuffer()


Return warnings and errors which occurred parsing the specified document

  • « tidy::diagnose
  • tidy::getConfig »
  • PHP Manual
  • tidy
  • Return warnings and errors which occurred parsing the specified document

tidy::$errorBuffer

tidy_get_error_buffer

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::$errorBuffer -- tidy_get_error_buffer — Return warnings and errors which occurred parsing the specified document

Descrição

Estilo orientado a objetos (property):

public string $tidy->errorBuffer;

Estilo procedural:

tidy_get_error_buffer(tidy $tidy): string|false

Returns warnings and errors which occurred parsing the specified document.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns the error buffer as a string, or false if the buffer is empty.

Exemplos

Exemplo #1 tidy_get_error_buffer() example

<?php
$html = '<p>paragraph</p>';

$tidy = tidy_parse_string($html);

echo tidy_get_error_buffer($tidy);
/* or in OO: */
echo $tidy->errorBuffer;
?>

O exemplo acima produzirá:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

Veja Também

  • tidy_access_count() - Returns the Number of Tidy accessibility warnings encountered for specified document
  • tidy_error_count() - Returns the Number of Tidy errors encountered for specified document
  • tidy_warning_count() - Returns the Number of Tidy warnings encountered for specified document


Get current Tidy configuration

  • « tidy::$errorBuffer
  • tidy::getHtmlVer »
  • PHP Manual
  • tidy
  • Get current Tidy configuration

tidy::getConfig

tidy_get_config

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.7.0)

tidy::getConfig -- tidy_get_config — Get current Tidy configuration

Descrição

Estilo orientado a objetos

public tidy::getConfig(): array

Estilo procedural

tidy_get_config(tidy $tidy): array

Gets the list of the configuration options in use by the given tidy tidy.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns an array of configuration options.

For an explanation about each option, visit » http://api.html-tidy.org/#quick-reference.

Exemplos

Exemplo #1 tidy::getConfig() example

<?php
$html = '<p>test</p>';
$config = array('indent' => TRUE,
'output-xhtml' => TRUE,
'wrap' => 200);

$tidy = tidy_parse_string($html, $config);

print_r($tidy->getConfig());
?>

O exemplo acima produzirá:

Array
(
    [indent-spaces] => 2
    [wrap] => 200
    [tab-size] => 8
    [char-encoding] => 1
    [input-encoding] => 3
    [output-encoding] => 1
    [newline] => 1
    [doctype-mode] => 1
    [doctype] =>
    [repeated-attributes] => 1
    [alt-text] =>
    [slide-style] =>
    [error-file] =>
    [output-file] =>
    [write-back] =>
    [markup] => 1
    [show-warnings] => 1
    [quiet] =>
    [indent] => 1
    [hide-endtags] =>
    [input-xml] =>
    [output-xml] => 1
    [output-xhtml] => 1
    [output-html] =>
    [add-xml-decl] =>
    [uppercase-tags] =>
    [uppercase-attributes] =>
    [bare] =>
    [clean] =>
    [logical-emphasis] =>
    [drop-proprietary-attributes] =>
    [drop-font-tags] =>
    [drop-empty-paras] => 1
    [fix-bad-comments] => 1
    [break-before-br] =>
    [split] =>
    [numeric-entities] =>
    [quote-marks] =>
    [quote-nbsp] => 1
    [quote-ampersand] => 1
    [wrap-attributes] =>
    [wrap-script-literals] =>
    [wrap-sections] => 1
    [wrap-asp] => 1
    [wrap-jste] => 1
    [wrap-php] => 1
    [fix-backslash] => 1
    [indent-attributes] =>
    [assume-xml-procins] =>
    [add-xml-space] =>
    [enclose-text] =>
    [enclose-block-text] =>
    [keep-time] =>
    [word-2000] =>
    [tidy-mark] =>
    [gnu-emacs] =>
    [gnu-emacs-file] =>
    [literal-attributes] =>
    [show-body-only] =>
    [fix-uri] => 1
    [lower-literals] => 1
    [hide-comments] =>
    [indent-cdata] =>
    [force-output] => 1
    [show-errors] => 6
    [ascii-chars] => 1
    [join-classes] =>
    [join-styles] => 1
    [escape-cdata] =>
    [language] =>
    [ncr] => 1
    [output-bom] => 2
    [replace-color] =>
    [css-prefix] =>
    [new-inline-tags] =>
    [new-blocklevel-tags] =>
    [new-empty-tags] =>
    [new-pre-tags] =>
    [accessibility-check] => 0
    [vertical-space] =>
    [punctuation-wrap] =>
    [merge-divs] => 1
)

Veja Também

  • tidy_reset_config()
  • tidy_save_config()


Get the Detected HTML version for the specified document

  • « tidy::getConfig
  • tidy::getOpt »
  • PHP Manual
  • tidy
  • Get the Detected HTML version for the specified document

tidy::getHtmlVer

tidy_get_html_ver

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::getHtmlVer -- tidy_get_html_ver — Get the Detected HTML version for the specified document

Descrição

Estilo orientado a objetos

public tidy::getHtmlVer(): int

Estilo procedural

tidy_get_html_ver(tidy $tidy): int

Returns the detected HTML version for the specified tidy tidy.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns the detected HTML version.

Aviso

This function is not yet implemented in the Tidylib itself, so it always return 0.


Returns the value of the specified configuration option for the tidy document

  • « tidy::getHtmlVer
  • tidy::getOptDoc »
  • PHP Manual
  • tidy
  • Returns the value of the specified configuration option for the tidy document

tidy::getOpt

tidy_getopt

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::getOpt -- tidy_getopt — Returns the value of the specified configuration option for the tidy document

Descrição

Estilo orientado a objetos

public tidy::getOpt(string $option): string|int|bool

Estilo procedural

tidy_getopt(tidy $tidy, string $option): string|int|bool

Returns the value of the specified option for the specified tidy tidy.

Parâmetros

tidy

Um objeto Tidy.

option

You will find a list with each configuration option and their types at: » http://api.html-tidy.org/#quick-reference.

Valor Retornado

Returns the value of the specified option. The return type depends on the type of the specified one.

Exemplos

Exemplo #1 tidy_getopt() example

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

$config = array('accessibility-check' => 3,
'alt-text' => 'some text');

$tidy = new tidy();
$tidy->parseString($html, $config);

var_dump($tidy->getOpt('accessibility-check')); //integer
var_dump($tidy->getOpt('lower-literals')); //boolean
var_dump($tidy->getOpt('alt-text')); //string

?>

O exemplo acima produzirá:

int(3)
bool(true)
string(9) "some text"


Returns the documentation for the given option name

  • « tidy::getOpt
  • tidy::getRelease »
  • PHP Manual
  • tidy
  • Returns the documentation for the given option name

tidy::getOptDoc

tidy_get_opt_doc

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

tidy::getOptDoc -- tidy_get_opt_doc — Returns the documentation for the given option name

Descrição

Estilo orientado a objetos

public tidy::getOptDoc(string $option): string|false

Estilo procedural

tidy_get_opt_doc(tidy $tidy, string $option): string|false

tidy_get_opt_doc() returns the documentation for the given option name.

Nota:

You need at least libtidy from 25 April, 2005 for this function be available.

Parâmetros

tidy

Um objeto Tidy.

option

The option name

Valor Retornado

Returns a string if the option exists and has documentation available, or false otherwise.

Exemplos

Exemplo #1 Print all options along with their documentation and default value

<?php

$tidy = new tidy;
$config = $tidy->getConfig();

ksort($config);

foreach ($config as $opt => $val) {

if (!$doc = $tidy->getOptDoc($opt))
$doc = 'no documentation available!';

$val = ($tidy->getOpt($opt) === true) ? 'true' : $val;
$val = ($tidy->getOpt($opt) === false) ? 'false' : $val;

echo "<p><b>$opt</b> (default: '$val')<br />".
"$doc</p><hr />\n";
}

?>

Veja Também

  • tidy::getconfig() - Get current Tidy configuration
  • tidy::getopt() - Returns the value of the specified configuration option for the tidy document


Get release date (version) for Tidy library

  • « tidy::getOptDoc
  • tidy::getStatus »
  • PHP Manual
  • tidy
  • Get release date (version) for Tidy library

tidy::getRelease

tidy_get_release

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::getRelease -- tidy_get_release — Get release date (version) for Tidy library

Descrição

Estilo orientado a objetos

public tidy::getRelease(): string

Estilo procedural

tidy_get_release(): string

Gets the release date of the Tidy library.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string with the release date of the Tidy library, which may be 'unknown'.


Get status of specified document

  • « tidy::getRelease
  • tidy::head »
  • PHP Manual
  • tidy
  • Get status of specified document

tidy::getStatus

tidy_get_status

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::getStatus -- tidy_get_status — Get status of specified document

Descrição

Estilo orientado a objetos

public tidy::getStatus(): int

Estilo procedural

tidy_get_status(tidy $tidy): int

Returns the status for the specified tidy tidy.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns 0 if no error/warning was raised, 1 for warnings or accessibility errors, or 2 for errors.

Exemplos

Exemplo #1 tidy::getStatus() example

<?php
$html = '<p>paragraph</i>';
$tidy = new tidy();
$tidy->parseString($html);

$tidy2 = new tidy();
$html2 = '<bogus>test</bogus>';
$tidy2->parseString($html2);

echo $tidy->getStatus(); //1

echo $tidy2->getStatus(); //2
?>


Returns a tidyNode object starting from the <head> tag of the tidy parse tree

  • « tidy::getStatus
  • tidy::html »
  • PHP Manual
  • tidy
  • Returns a tidyNode object starting from the <head> tag of the tidy parse tree

tidy::head

tidy_get_head

(PHP 5, PHP 7, PHP 8, PECL tidy 0.5.2-1.0.0)

tidy::head -- tidy_get_head — Returns a tidyNode object starting from the <head> tag of the tidy parse tree

Descrição

Estilo orientado a objetos

public tidy::head(): ?tidyNode

Estilo procedural

tidy_get_head(tidy $tidy): ?tidyNode

Returns a tidyNode object starting from the <head> tag of the tidy parse tree.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns the tidyNode object.

Exemplos

Exemplo #1 tidy::head() example

<?php
$html = '
<html>
<head>
<title>test</title>
</head>
<body>
<p>paragraph</p>
</body>
</html>';

$tidy = tidy_parse_string($html);

$head = $tidy->head();
echo $head->value;
?>

O exemplo acima produzirá:

<head>
<title>test</title>
</head>

Veja Também

  • tidy::body() - Returns a tidyNode object starting from the <body> tag of the tidy parse tree
  • tidy::html() - Returns a tidyNode object starting from the <html> tag of the tidy parse tree


Returns a tidyNode object starting from the <html> tag of the tidy parse tree

  • « tidy::head
  • tidy::isXhtml »
  • PHP Manual
  • tidy
  • Returns a tidyNode object starting from the <html> tag of the tidy parse tree

tidy::html

tidy_get_html

(PHP 5, PHP 7, PHP 8, PECL tidy 0.5.2-1.0.0)

tidy::html -- tidy_get_html — Returns a tidyNode object starting from the <html> tag of the tidy parse tree

Descrição

Estilo orientado a objetos

public tidy::html(): ?tidyNode

Estilo procedural

tidy_get_html(tidy $tidy): ?tidyNode

Returns a tidyNode object starting from the <html> tag of the tidy parse tree.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns the tidyNode object.

Exemplos

Exemplo #1 tidy::html() example

<?php
$html = '
<html>
<head>
<title>test</title>
</head>
<body>
<p>paragraph</p>
</body>
</html>';

$tidy = tidy_parse_string($html);

$html = $tidy->html();
echo $html->value;
?>

O exemplo acima produzirá:

<html>
<head>
<title>test</title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Veja Também

  • tidy::body() - Returns a tidyNode object starting from the <body> tag of the tidy parse tree
  • tidy::head() - Returns a tidyNode object starting from the <head> tag of the tidy parse tree


Indicates if the document is a XHTML document

  • « tidy::html
  • tidy::isXml »
  • PHP Manual
  • tidy
  • Indicates if the document is a XHTML document

tidy::isXhtml

tidy_is_xhtml

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::isXhtml -- tidy_is_xhtml — Indicates if the document is a XHTML document

Descrição

Estilo orientado a objetos

public tidy::isXhtml(): bool

Estilo procedural

tidy_is_xhtml(tidy $tidy): bool

Tells if the document is a XHTML document.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

This function returns true if the specified tidy tidy is a XHTML document, or false otherwise.

Aviso

This function is not yet implemented in the Tidylib itself, so it always return false.


Indicates if the document is a generic (non HTML/XHTML) XML document

  • « tidy::isXhtml
  • tidy::parseFile »
  • PHP Manual
  • tidy
  • Indicates if the document is a generic (non HTML/XHTML) XML document

tidy::isXml

tidy_is_xml

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::isXml -- tidy_is_xml — Indicates if the document is a generic (non HTML/XHTML) XML document

Descrição

Estilo orientado a objetos

public tidy::isXml(): bool

Estilo procedural

tidy_is_xml(tidy $tidy): bool

Tells if the document is a generic (non HTML/XHTML) XML document.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

This function returns true if the specified tidy tidy is a generic XML document (non HTML/XHTML), or false otherwise.

Aviso

This function is not yet implemented in the Tidylib itself, so it always return false.


Parse markup in file or URI

  • « tidy::isXml
  • tidy::parseString »
  • PHP Manual
  • tidy
  • Parse markup in file or URI

tidy::parseFile

tidy_parse_file

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::parseFile -- tidy_parse_file — Parse markup in file or URI

Descrição

Estilo orientado a objetos

public tidy::parseFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): bool

Estilo procedural

tidy_parse_file(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): tidy|false

Parses the given file.

Parâmetros

filename

If the filename parameter is given, this function will also read that file and initialize the object with the file, acting like tidy_parse_file().

config

The config config can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.

For an explanation about each option, see » http://api.html-tidy.org/#quick-reference.

encoding

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.

useIncludePath

Search for the file in the include_path.

Valor Retornado

tidy::parseFile() returns true on success. tidy_parse_file() returns a new tidy instance on success. Both, the method and the function return false on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | config and encoding are nullable now.

Exemplos

Exemplo #1 tidy::parseFile() example

<?php
$tidy = new tidy();
$tidy->parseFile('file.html');

$tidy->cleanRepair();

if(!empty($tidy->errorBuffer)) {
echo "The following errors or warnings occurred:\n";
echo $tidy->errorBuffer;
}
?>

Veja Também

  • tidy::parsestring() - Parse a document stored in a string
  • tidy::repairfile() - Repair a file and return it as a string
  • tidy::repairstring() - Repair a string using an optionally provided configuration file


Parse a document stored in a string

  • « tidy::parseFile
  • tidy::repairFile »
  • PHP Manual
  • tidy
  • Parse a document stored in a string

tidy::parseString

tidy_parse_string

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::parseString -- tidy_parse_string — Parse a document stored in a string

Descrição

Estilo orientado a objetos

public tidy::parseString(string $string, array|string|null $config = null, ?string $encoding = null): bool

Estilo procedural

tidy_parse_string(string $string, array|string|null $config = null, ?string $encoding = null): tidy|false

Parses a document stored in a string.

Parâmetros

string

The data to be parsed.

config

The config config can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.

For an explanation about each option, visit » http://api.html-tidy.org/#quick-reference.

encoding

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.

Valor Retornado

tidy::parseString() returns true on success. tidy_parse_string() returns a new tidy instance on success. Both, the method and the function return false on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | config and encoding are nullable now.

Exemplos

Exemplo #1 tidy::parseString() example

<?php
ob_start();
?>

<html>
<head>
<title>test</title>
</head>
<body>
<p>error<br>another line</i>
</body>
</html>

<?php

$buffer = ob_get_clean();
$config = array('indent' => TRUE,
'output-xhtml' => TRUE,
'wrap' => 200);

$tidy = tidy_parse_string($buffer, $config, 'UTF8');

$tidy->cleanRepair();
echo $tidy;
?>

O exemplo acima produzirá:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
      test
    </title>
  </head>
  <body>
    <p>
      error<br />
      another line
    </p>
  </body>
</html>

Veja Também

  • tidy::parseFile() - Parse markup in file or URI
  • tidy::repairFile() - Repair a file and return it as a string
  • tidy::repairString() - Repair a string using an optionally provided configuration file


Repair a file and return it as a string

  • « tidy::parseString
  • tidy::repairString »
  • PHP Manual
  • tidy
  • Repair a file and return it as a string

tidy::repairFile

tidy_repair_file

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.7.0)

tidy::repairFile -- tidy_repair_file — Repair a file and return it as a string

Descrição

Estilo orientado a objetos

public static tidy::repairFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): string|false

Estilo procedural

tidy_repair_file(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): string|false

Repairs the given file and returns it as a string.

Parâmetros

filename

The file to be repaired.

config

The config config can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.

Check http://tidy.sourceforge.net/docs/quickref.html for an explanation about each option.

encoding

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.

useIncludePath

Search for the file in the include_path.

Valor Retornado

Returns the repaired contents as a string, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | tidy::repairFile() is a static method now.
8.0.0 | config and encoding are nullable now.

Exemplos

Exemplo #1 tidy::repairFile() example

<?php
$file = 'file.html';

$tidy = new tidy();
$repaired = $tidy->repairfile($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Veja Também

  • tidy::parseFile() - Parse markup in file or URI
  • tidy::parseString() - Parse a document stored in a string
  • tidy::repairString() - Repair a string using an optionally provided configuration file


Repair a string using an optionally provided configuration file

  • « tidy::repairFile
  • tidy::root »
  • PHP Manual
  • tidy
  • Repair a string using an optionally provided configuration file

tidy::repairString

tidy_repair_string

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.7.0)

tidy::repairString -- tidy_repair_string — Repair a string using an optionally provided configuration file

Descrição

Estilo orientado a objetos

public static tidy::repairString(string $string, array|string|null $config = null, ?string $encoding = null): string|false

Estilo procedural

tidy_repair_string(string $string, array|string|null $config = null, ?string $encoding = null): string|false

Repairs the given string.

Parâmetros

string

The data to be repaired.

config

The config config can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.

Check » http://api.html-tidy.org/#quick-reference for an explanation about each option.

encoding

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.

Valor Retornado

Returns the repaired string, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | tidy::repairString() is a static method now.
8.0.0 | config and encoding are nullable now.
8.0.0 | This function no longer accepts the useIncludePath parameter.

Exemplos

Exemplo #1 tidy::repairString() example

<?php
ob_start();
?>

<html>
<head>
<title>test</title>
</head>
<body>
<p>error</i>
</body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = new tidy();
$clean = $tidy->repairString($buffer);

echo $clean;
?>

O exemplo acima produzirá:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</p>
</body>
</html>

Veja Também

  • tidy::parseFile() - Parse markup in file or URI
  • tidy::parseString() - Parse a document stored in a string
  • tidy::repairFile() - Repair a file and return it as a string


Returns a tidyNode object representing the root of the tidy parse tree

  • « tidy::repairString
  • tidyNode »
  • PHP Manual
  • tidy
  • Returns a tidyNode object representing the root of the tidy parse tree

tidy::root

tidy_get_root

(PHP 5, PHP 7, PHP 8, PECL tidy 0.5.2-1.0.0)

tidy::root -- tidy_get_root — Returns a tidyNode object representing the root of the tidy parse tree

Descrição

Estilo orientado a objetos

public tidy::root(): ?tidyNode

Estilo procedural

tidy_get_root(tidy $tidy): ?tidyNode

Returns a tidyNode object representing the root of the tidy parse tree.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns the tidyNode object.

Exemplos

Exemplo #1 tidy::root() example

<?php

$html = <<< HTML
<html><body>

<p>paragraph</p>
<br/>

</body></html>
HTML;

$tidy = tidy_parse_string($html);
dump_nodes($tidy->root(), 1);

function dump_nodes($node, $indent) {

if($node->hasChildren()) {
foreach($node->child as $child) {
echo str_repeat('.', $indent*2) . ($child->name ? $child->name : '"'.$child->value.'"'). "\n";

dump_nodes($child, $indent+1);
}
}
}
?>

O exemplo acima produzirá:

..html
....head
......title
....body
......p
........"paragraph"
......br


The tidyNode class

(PHP 5, PHP 7, PHP 8)

Introdução

An HTML node in an HTML file, as detected by tidy.

Resumo da classe

final class tidyNode {
/* Propriedades */
public readonly string $value;
public readonly string $name;
public readonly int $type;
public readonly int $line;
public readonly int $column;
public readonly bool $proprietary;
public readonly ?int $id;
public readonly ?array $attribute;
public readonly ?array $child;
/* Métodos */
private __construct()
public getParent(): ?tidyNode
public hasChildren(): bool
public hasSiblings(): bool
public isAsp(): bool
public isComment(): bool
public isHtml(): bool
public isJste(): bool
public isPhp(): bool
public isText(): bool
}

Propriedades

value

The HTML representation of the node, including the surrounding tags.

name

The name of the HTML node

type

The type of the node (one of the nodetype constants, e.g. TIDY_NODETYPE_PHP)

line

The line number at which the tags is located in the file

column

The column number at which the tags is located in the file

proprietary

Indicates if the node is a proprietary tag

id

The ID of the node (one of the tag constants, e.g. TIDY_TAG_FRAME)

attribute

An array of string, representing the attributes names (as keys) of the current node.

child

An array of tidyNode, representing the children of the current node.

Índice

  • tidyNode::__construct — Private constructor to disallow direct instantiation
  • tidyNode::getParent — Returns the parent node of the current node
  • tidyNode::hasChildren — Checks if a node has children
  • tidyNode::hasSiblings — Checks if a node has siblings
  • tidyNode::isAsp — Checks if this node is ASP
  • tidyNode::isComment — Checks if a node represents a comment
  • tidyNode::isHtml — Checks if a node is an element node
  • tidyNode::isJste — Checks if this node is JSTE
  • tidyNode::isPhp — Checks if a node is PHP
  • tidyNode::isText — Checks if a node represents text (no markup)


Private constructor to disallow direct instantiation

  • « tidyNode
  • tidyNode::getParent »
  • PHP Manual
  • tidyNode
  • Private constructor to disallow direct instantiation

tidyNode::__construct

(PHP 5, PHP 7, PHP 8)

tidyNode::__construct — Private constructor to disallow direct instantiation

Descrição

private tidyNode::__construct()

Parâmetros

Esta função não possui parâmetros.


Returns the parent node of the current node

  • « tidyNode::__construct
  • tidyNode::hasChildren »
  • PHP Manual
  • tidyNode
  • Returns the parent node of the current node

tidyNode::getParent

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

tidyNode::getParent — Returns the parent node of the current node

Descrição

public tidyNode::getParent(): ?tidyNode

Returns the parent node of the current node.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a tidyNode if the node has a parent, or null otherwise.

Exemplos

Exemplo #1 tidyNode::hasChildren() example

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* JSTE code */
alert('Hello World');
#>
</head>
<body>
Hello World
</body>
</html>

HTML;

$tidy = tidy_parse_string($html);
$num = 0;

$node = $tidy->html()->child[0]->child[0];

var_dump($node->getparent()->name);
?>

O exemplo acima produzirá:

string(4) "head"


Checks if a node has children

  • « tidyNode::getParent
  • tidyNode::hasSiblings »
  • PHP Manual
  • tidyNode
  • Checks if a node has children

tidyNode::hasChildren

(PHP 5, PHP 7, PHP 8)

tidyNode::hasChildren — Checks if a node has children

Descrição

public tidyNode::hasChildren(): bool

Tells if the node has children.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the node has children, false otherwise.

Exemplos

Exemplo #1 tidyNode::hasChildren() example

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* JSTE code */
alert('Hello World');
#>
</head>
<body>

<?php
// PHP code
echo 'hello world!';
?>

<%
/* ASP code */
response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

// the head tag
var_dump($tidy->html()->child[0]->hasChildren());

// the php inside the head tag
var_dump($tidy->html()->child[0]->child[0]->hasChildren());

?>

O exemplo acima produzirá:

bool(true)
bool(false)


Checks if a node has siblings

  • « tidyNode::hasChildren
  • tidyNode::isAsp »
  • PHP Manual
  • tidyNode
  • Checks if a node has siblings

tidyNode::hasSiblings

(PHP 5, PHP 7, PHP 8)

tidyNode::hasSiblings — Checks if a node has siblings

Descrição

public tidyNode::hasSiblings(): bool

Tells if the node has siblings.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the node has siblings, false otherwise.

Exemplos

Exemplo #1 tidyNode::hasSiblings() example

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* JSTE code */
alert('Hello World');
#>
</head>
<body>

<?php
// PHP code
echo 'hello world!';
?>

<%
/* ASP code */
response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

// the html tag
var_dump($tidy->html()->hasSiblings());

// the head tag
var_dump($tidy->html()->child[0]->hasSiblings());

?>

O exemplo acima produzirá:

bool(false)
bool(true)


Checks if this node is ASP

  • « tidyNode::hasSiblings
  • tidyNode::isComment »
  • PHP Manual
  • tidyNode
  • Checks if this node is ASP

tidyNode::isAsp

(PHP 5, PHP 7, PHP 8)

tidyNode::isAsp — Checks if this node is ASP

Descrição

public tidyNode::isAsp(): bool

Tells whether the current node is ASP.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the node is ASP, false otherwise.

Exemplos

Exemplo #1 Extract ASP code from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* JSTE code */
alert('Hello World');
#>
</head>
<body>

<?php
// PHP code
echo 'hello world!';
?>

<%
/* ASP code */
response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

// check if the current node is of requested type
if($node->isAsp()) {
echo "\n\n# asp node #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// check if the current node has childrens
if($node->hasChildren()) {
foreach($node->child as $child) {
get_nodes($child);
}
}
}

?>

O exemplo acima produzirá:

# asp node #1
<%
  /* ASP code */
  response.write("Hello World!")
%>


Checks if a node represents a comment

  • « tidyNode::isAsp
  • tidyNode::isHtml »
  • PHP Manual
  • tidyNode
  • Checks if a node represents a comment

tidyNode::isComment

(PHP 5, PHP 7, PHP 8)

tidyNode::isComment — Checks if a node represents a comment

Descrição

public tidyNode::isComment(): bool

Tells if the node is a comment.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the node is a comment, false otherwise.

Exemplos

Exemplo #1 Extract comments from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* JSTE code */
alert('Hello World');
#>
</head>
<body>

<?php
// PHP code
echo 'hello world!';
?>

<%
/* ASP code */
response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

// check if the current node is of requested type
if($node->isComment()) {
echo "\n\n# comment node #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// check if the current node has childrens
if($node->hasChildren()) {
foreach($node->child as $child) {
get_nodes($child);
}
}
}

?>

O exemplo acima produzirá:

# comment node #1
<!-- Comments -->


Checks if a node is an element node

  • « tidyNode::isComment
  • tidyNode::isJste »
  • PHP Manual
  • tidyNode
  • Checks if a node is an element node

tidyNode::isHtml

(PHP 5, PHP 7, PHP 8)

tidyNode::isHtml — Checks if a node is an element node

Descrição

public tidyNode::isHtml(): bool

Tells if the node is an element node, but not the root node of the document.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the node is an element node, but not the root node of the document, false otherwise.

Registro de Alterações

Versão | Descrição
7.3.24, 7.4.12 | This function has been fixed to have reasonable behavior. Previously, almost any node was reported as being an HTML node.

Exemplos

Exemplo #1 Extract HTML code from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* JSTE code */
alert('Hello World');
#>
</head>
<body>

<?php
// PHP code
echo 'hello world!';
?>

<%
/* ASP code */
response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {
// check if the current node is of requested type
if($node->isHtml()) {
echo "\n\n# html node #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// check if the current node has childrens
if($node->hasChildren()) {
foreach($node->child as $child) {
get_nodes($child);
}
}
}

?>

O exemplo acima produzirá:

# html node #1
<html>
<head>
<?php echo '<title>title</title>'; ?><#
  /* JSTE code */
  alert('Hello World');
#>
<title></title>
</head>
<body>
<?php
  // PHP code
  echo 'hello world!';
?><%
  /* ASP code */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>
</html>

# html node #2
<head>
<?php echo '<title>title</title>'; ?><#
  /* JSTE code */
  alert('Hello World');
#>
<title></title>
</head>

# html node #3
<title></title>

# html node #4
<body>
<?php
  // PHP code
  echo 'hello world!';
?><%
  /* ASP code */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>


Checks if this node is JSTE

  • « tidyNode::isHtml
  • tidyNode::isPhp »
  • PHP Manual
  • tidyNode
  • Checks if this node is JSTE

tidyNode::isJste

(PHP 5, PHP 7, PHP 8)

tidyNode::isJste — Checks if this node is JSTE

Descrição

public tidyNode::isJste(): bool

Tells if the node is JSTE.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the node is JSTE, false otherwise.

Exemplos

Exemplo #1 Extract JSTE code from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* JSTE code */
alert('Hello World');
#>
</head>
<body>

<?php
// PHP code
echo 'hello world!';
?>

<%
/* ASP code */
response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

// check if the current node is of requested type
if($node->isJste()) {
echo "\n\n# jste node #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// check if the current node has childrens
if($node->hasChildren()) {
foreach($node->child as $child) {
get_nodes($child);
}
}
}

?>

O exemplo acima produzirá:

# jste node #1
<#
  /* JSTE code */
  alert('Hello World');
#>


Checks if a node is PHP

  • « tidyNode::isJste
  • tidyNode::isText »
  • PHP Manual
  • tidyNode
  • Checks if a node is PHP

tidyNode::isPhp

(PHP 5, PHP 7, PHP 8)

tidyNode::isPhp — Checks if a node is PHP

Descrição

public tidyNode::isPhp(): bool

Tells if the node is PHP.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the current node is PHP code, false otherwise.

Exemplos

Exemplo #1 Extract PHP code from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* JSTE code */
alert('Hello World');
#>
</head>
<body>

<?php
// PHP code
echo 'hello world!';
?>

<%
/* ASP code */
response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

// check if the current node is of requested type
if($node->isPhp()) {
echo "\n\n# php node #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// check if the current node has childrens
if($node->hasChildren()) {
foreach($node->child as $child) {
get_nodes($child);
}
}
}

?>

O exemplo acima produzirá:

# php node #1
<?php echo '<title>title</title>'; ?>

# php node #2
<?php
  // PHP code
  echo 'hello world!';
?>


Checks if a node represents text (no markup)

  • « tidyNode::isPhp
  • Tidy Funções »
  • PHP Manual
  • tidyNode
  • Checks if a node represents text (no markup)

tidyNode::isText

(PHP 5, PHP 7, PHP 8)

tidyNode::isText — Checks if a node represents text (no markup)

Descrição

public tidyNode::isText(): bool

Tells if the node represents a text (without any markup).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the node represent a text, false otherwise.

Exemplos

Exemplo #1 Extract text from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
/* JSTE code */
alert('Hello World');
#>
</head>
<body>

<?php
// PHP code
echo 'hello world!';
?>

<%
/* ASP code */
response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

// check if the current node is of requested type
if($node->isText()) {
echo "\n\n# text node #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// check if the current node has childrens
if($node->hasChildren()) {
foreach($node->child as $child) {
get_nodes($child);
}
}
}

?>

O exemplo acima produzirá:

# text node #1
Hello World

# text node #2
Outside HTML


Tidy Funções

Índice

  • ob_tidyhandler — ob_start callback function to repair the buffer
  • tidy_access_count — Returns the Number of Tidy accessibility warnings encountered for specified document
  • tidy_config_count — Returns the Number of Tidy configuration errors encountered for specified document
  • tidy_error_count — Returns the Number of Tidy errors encountered for specified document
  • tidy_get_output — Return a string representing the parsed tidy markup
  • tidy_warning_count — Returns the Number of Tidy warnings encountered for specified document


ob_start callback function to repair the buffer

  • « Tidy Funções
  • tidy_access_count »
  • PHP Manual
  • Tidy Funções
  • ob_start callback function to repair the buffer

ob_tidyhandler

(PHP 5, PHP 7, PHP 8)

ob_tidyhandler — ob_start callback function to repair the buffer

Descrição

ob_tidyhandler(string $input, int $mode = ?): string

Callback function for ob_start() to repair the buffer.

Parâmetros

input

The buffer.

mode

The buffer mode.

Valor Retornado

Returns the modified buffer.

Exemplos

Exemplo #1 ob_tidyhandler() example

<?php
ob_start('ob_tidyhandler');

echo '<p>test</i>';
?>

O exemplo acima produzirá:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

Veja Também

  • ob_start() - Ativa o buffer de saída


Returns the Number of Tidy accessibility warnings encountered for specified document

  • « ob_tidyhandler
  • tidy_config_count »
  • PHP Manual
  • Tidy Funções
  • Returns the Number of Tidy accessibility warnings encountered for specified document

tidy_access_count

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy_access_count — Returns the Number of Tidy accessibility warnings encountered for specified document

Descrição

tidy_access_count(tidy $tidy): int

tidy_access_count() returns the number of accessibility warnings found for the specified document.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns the number of warnings.

Exemplos

Exemplo #1 tidy_access_count() example

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

// select the accessibility check level: 1, 2 or 3
$config = array('accessibility-check' => 3);

$tidy = new tidy();
$tidy->parseString($html, $config);
$tidy->cleanRepair();

/* Never forget to call this! */
$tidy->diagnose();

echo tidy_access_count($tidy); //5

?>

Notas

Nota:

Due to the design of the TidyLib, you must call tidy_diagnose() before tidy_access_count() or it will return always 0. You must also need to enable the accessibility-check option.

Veja Também

  • tidy_error_count() - Returns the Number of Tidy errors encountered for specified document
  • tidy_warning_count() - Returns the Number of Tidy warnings encountered for specified document


Returns the Number of Tidy configuration errors encountered for specified document

  • « tidy_access_count
  • tidy_error_count »
  • PHP Manual
  • Tidy Funções
  • Returns the Number of Tidy configuration errors encountered for specified document

tidy_config_count

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy_config_count — Returns the Number of Tidy configuration errors encountered for specified document

Descrição

tidy_config_count(tidy $tidy): int

Returns the number of errors encountered in the configuration of the specified tidy tidy.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns the number of errors.

Exemplos

Exemplo #1 tidy_config_count() example

<?php
$html = '<p>test</I>';

$config = array('doctype' => 'bogus');

$tidy = tidy_parse_string($html, $config);

/* This outputs 1, because 'bogus' isn't a valid doctype */
echo tidy_config_count($tidy);
?>


Returns the Number of Tidy errors encountered for specified document

  • « tidy_config_count
  • tidy_get_output »
  • PHP Manual
  • Tidy Funções
  • Returns the Number of Tidy errors encountered for specified document

tidy_error_count

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy_error_count — Returns the Number of Tidy errors encountered for specified document

Descrição

tidy_error_count(tidy $tidy): int

Returns the number of Tidy errors encountered for the specified document.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns the number of errors.

Exemplos

Exemplo #1 tidy_error_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1

echo $tidy->errorBuffer;
?>

O exemplo acima produzirá:

1
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 8 - Warning: discarding unexpected </i>
line 2 column 1 - Error: <bogustag> is not recognized!
line 2 column 1 - Warning: discarding unexpected <bogustag>
line 2 column 16 - Warning: discarding unexpected </bogustag>
line 1 column 1 - Warning: inserting missing 'title' element

Veja Também

  • tidy_access_count() - Returns the Number of Tidy accessibility warnings encountered for specified document
  • tidy_warning_count() - Returns the Number of Tidy warnings encountered for specified document


Return a string representing the parsed tidy markup

  • « tidy_error_count
  • tidy_warning_count »
  • PHP Manual
  • Tidy Funções
  • Return a string representing the parsed tidy markup

tidy_get_output

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy_get_output — Return a string representing the parsed tidy markup

Descrição

tidy_get_output(tidy $tidy): string

Gets a string with the repaired html.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns the parsed tidy markup.

Exemplos

Exemplo #1 tidy_get_output() example

<?php

$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$tidy->cleanRepair();

echo tidy_get_output($tidy);
?>

O exemplo acima produzirá:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>paragraph</p>
</body>
</html>


Returns the Number of Tidy warnings encountered for specified document

  • « tidy_get_output
  • Tokenizer »
  • PHP Manual
  • Tidy Funções
  • Returns the Number of Tidy warnings encountered for specified document

tidy_warning_count

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy_warning_count — Returns the Number of Tidy warnings encountered for specified document

Descrição

tidy_warning_count(tidy $tidy): int

Returns the number of Tidy warnings encountered for the specified document.

Parâmetros

tidy

Um objeto Tidy.

Valor Retornado

Returns the number of warnings.

Exemplos

Exemplo #1 tidy_warning_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1
echo tidy_warning_count($tidy) . "\n"; //5
?>

Veja Também

  • tidy_error_count() - Returns the Number of Tidy errors encountered for specified document
  • tidy_access_count() - Returns the Number of Tidy accessibility warnings encountered for specified document


Tokenizer

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • PhpToken — The PhpToken class
    • PhpToken::__construct — Returns a new PhpToken object
    • PhpToken::getTokenName — Returns the name of the token.
    • PhpToken::is — Tells whether the token is of given kind.
    • PhpToken::isIgnorable — Tells whether the token would be ignored by the PHP parser.
    • PhpToken::__toString — Returns the textual content of the token.
    • PhpToken::tokenize — Splits given source into PHP tokens, represented by PhpToken objects.
  • Funções da Tokenizer
    • token_get_all — Divide um dado fonte em tokens do PHP
    • token_name — Pega o nome simbólico de um dado token do PHP


Introdução

As funções de tokenizer formam uma interface para o tokenizer do PHP imbutido no Engine Zend. Usando essas funções você pode escrever ferramentas próprias para análise e modificação de código PHP sem ter que lidar com a especificação da linguagem em um nível léxico.

Veja também o apêndice sobre tokens.


Instalação

Esta extensão está habilitada por padrão. Ela pode ser desabilitada usando a seguinte opção em tempo de compilação: --disable-tokenizer

A versão do PHP para Windows tem suporte nativo para esta extensão. Nenhuma extensão adicional precisa ser carregada para usar essas funções.


Constantes pré-definidas

Quando a extensão for ou compilado no PHP ou carregada dinamicamente em tempo de execução, os tokens listados em Lista de Tokens do Parser são definidos como constantes.


Exemplos

Aqui está um exemplo simples de script PHP usando o tokenizer que lerá um arquivo PHP, retirará todos os comentários do fonte e imprimirá apenas o código puro.

Exemplo #1 Retirando os comentários com o tokenizer

<?php
$source = file_get_contents('example.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_DOC_COMMENT:
// no action on comments
break;

default:
// anything else -> output "as is"
echo $text;
break;
}
}
}
?>


The PhpToken class

(PHP 8)

Introdução

This class provides an alternative to token_get_all(). While the function returns tokens either as a single-character string, or an array with a token ID, token text and line number, PhpToken::tokenize() normalizes all tokens into PhpToken objects, which makes code operating on tokens more memory efficient and readable.

Resumo da classe

class PhpToken implements Stringable {
/* Propriedades */
public int $id;
public string $text;
public int $line;
public int $pos;
/* Métodos */
final public __construct(
int $id,
string $text,
int $line = -1,
int $pos = -1
)
public getTokenName(): ?string
public is(int|string|array $kind): bool
public isIgnorable(): bool
public __toString(): string
public static tokenize(string $code, int $flags = 0): array
}

Propriedades

id

One of the T_* constants, or an ASCII codepoint representing a single-char token.

text

The textual content of the token.

line

The starting line number (1-based) of the token.

pos

The starting position (0-based) in the tokenized string (the number of bytes).

Índice

  • PhpToken::__construct — Returns a new PhpToken object
  • PhpToken::getTokenName — Returns the name of the token.
  • PhpToken::is — Tells whether the token is of given kind.
  • PhpToken::isIgnorable — Tells whether the token would be ignored by the PHP parser.
  • PhpToken::__toString — Returns the textual content of the token.
  • PhpToken::tokenize — Splits given source into PHP tokens, represented by PhpToken objects.


Returns a new PhpToken object

  • « PhpToken
  • PhpToken::getTokenName »
  • PHP Manual
  • PhpToken
  • Returns a new PhpToken object

PhpToken::__construct

(PHP 8)

PhpToken::__construct — Returns a new PhpToken object

Descrição

final public PhpToken::__construct(
int $id,
string $text,
int $line = -1,
int $pos = -1
)

Returns a new PhpToken object

Parâmetros

id

One of the T_* constants (see Lista de Tokens do Parser), or an ASCII codepoint representing a single-char token.

text

The textual content of the token.

line

The starting line number (1-based) of the token.

pos

The starting position (0-based) in the tokenized string (the number of bytes).

Veja Também

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.


Returns the name of the token.

  • « PhpToken::__construct
  • PhpToken::is »
  • PHP Manual
  • PhpToken
  • Returns the name of the token.

PhpToken::getTokenName

(PHP 8)

PhpToken::getTokenName — Returns the name of the token.

Descrição

public PhpToken::getTokenName(): ?string

Returns the name of the token.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An ASCII character for single-char tokens, or one of T_* constant names for known tokens (see Lista de Tokens do Parser), or null for unknown tokens.

Exemplos

Exemplo #1 PhpToken::getTokenName() example

<?php
// known token
$token = new PhpToken(T_ECHO, 'echo');
var_dump($token->getTokenName()); // -> string(6) "T_ECHO"

// single-char token
$token = new PhpToken(ord(';'), ';');
var_dump($token->getTokenName()); // -> string(1) ";"

// unknown token
$token = new PhpToken(10000 , "\0");
var_dump($token->getTokenName()); // -> NULL

Veja Também

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.
  • token_name() - Pega o nome simbólico de um dado token do PHP


Tells whether the token is of given kind.

  • « PhpToken::getTokenName
  • PhpToken::isIgnorable »
  • PHP Manual
  • PhpToken
  • Tells whether the token is of given kind.

PhpToken::is

(PHP 8)

PhpToken::is — Tells whether the token is of given kind.

Descrição

public PhpToken::is(int|string|array $kind): bool

Tells whether the token is of given kind.

Parâmetros

kind

Either a single value to match the token's id or textual content, or an array thereof.

Valor Retornado

A boolean value whether the token is of given kind.

Exemplos

Exemplo #1 PhpToken::is() example

<?php
$token = new PhpToken(T_ECHO, 'echo');
var_dump($token->is(T_ECHO)); // -> bool(true)
var_dump($token->is('echo')); // -> bool(true)
var_dump($token->is(T_FOREACH)); // -> bool(false)
var_dump($token->is('foreach')); // -> bool(false)

Exemplo #2 Usage with array

<?php
function isClassType(PhpToken $token): bool {
return $token->is([T_CLASS, T_INTERFACE, T_TRAIT]);
}

$interface = new PhpToken(T_INTERFACE, 'interface');
var_dump(isClassType($interface)); // -> bool(true)

$function = new PhpToken(T_FUNCTION, 'function');
var_dump(isClassType($function)); // -> bool(false)

Veja Também

  • token_name() - Pega o nome simbólico de um dado token do PHP


Tells whether the token would be ignored by the PHP parser.

  • « PhpToken::is
  • PhpToken::__toString »
  • PHP Manual
  • PhpToken
  • Tells whether the token would be ignored by the PHP parser.

PhpToken::isIgnorable

(PHP 8)

PhpToken::isIgnorable — Tells whether the token would be ignored by the PHP parser.

Descrição

public PhpToken::isIgnorable(): bool

Tells whether the token would be ignored by the PHP parser.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A boolean value whether the token would be ignored by the PHP parser (such as whitespace or comments).

Exemplos

Exemplo #1 PhpToken::isIgnorable() example

<?php
$echo = new PhpToken(T_ECHO, 'echo');
var_dump($echo->isIgnorable()); // -> bool(false)

$space = new PhpToken(T_WHITESPACE, ' ');
var_dump($space->isIgnorable()); // -> bool(true)

Veja Também

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.


Returns the textual content of the token.

  • « PhpToken::isIgnorable
  • PhpToken::tokenize »
  • PHP Manual
  • PhpToken
  • Returns the textual content of the token.

PhpToken::__toString

(PHP 8)

PhpToken::__toString — Returns the textual content of the token.

Descrição

public PhpToken::__toString(): string

Returns the textual content of the token.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A textual content of the token.

Exemplos

Exemplo #1 PhpToken::__toString() example

<?php
$token = new PhpToken(T_ECHO, 'echo');
echo $token;

Os exemplos acima produzirão:

echo

Veja Também

  • token_name() - Pega o nome simbólico de um dado token do PHP


Splits given source into PHP tokens, represented by PhpToken objects.

  • « PhpToken::__toString
  • Funções da Tokenizer »
  • PHP Manual
  • PhpToken
  • Splits given source into PHP tokens, represented by PhpToken objects.

PhpToken::tokenize

(PHP 8)

PhpToken::tokenize — Splits given source into PHP tokens, represented by PhpToken objects.

Descrição

public static PhpToken::tokenize(string $code, int $flags = 0): array

Returns an array of PhpToken objects representing given code.

Parâmetros

code

The PHP source to parse.

flags

Valid flags:

  • TOKEN_PARSE - Recognises the ability to use reserved words in specific contexts.

Valor Retornado

An array of PHP tokens represented by instances of PhpToken or its descendants. This method returns static[] so that PhpToken can be seamlessly extended.

Exemplos

Exemplo #1 PhpToken::tokenize() example

<?php
$tokens = PhpToken::tokenize('<?php echo; ?>');

foreach ($tokens as $token) {
echo "Line {$token->line}: {$token->getTokenName()} ('{$token->text}')", PHP_EOL;
}

Os exemplos acima produzirão:

Line 1: T_OPEN_TAG ('<?php ')
Line 1: T_ECHO ('echo')
Line 1: ; (';')
Line 1: T_WHITESPACE (' ')
Line 1: T_CLOSE_TAG ('?>')

Exemplo #2 Extending PhpToken

<?php

class MyPhpToken extends PhpToken {
public function getUpperText() {
return strtoupper($this->text);
}
}

$tokens = MyPhpToken::tokenize('<?php echo; ?>');
echo "'{$tokens[0]->getUpperText()}'";

Os exemplos acima produzirão:

'<?PHP '

Veja Também

  • token_get_all() - Divide um dado fonte em tokens do PHP


Funções da Tokenizer

Índice

  • token_get_all — Divide um dado fonte em tokens do PHP
  • token_name — Pega o nome simbólico de um dado token do PHP


Divide um dado fonte em tokens do PHP

  • « Funções da Tokenizer
  • token_name »
  • PHP Manual
  • Funções da Tokenizer
  • Divide um dado fonte em tokens do PHP

token_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

token_get_all — Divide um dado fonte em tokens do PHP

Descrição

token_get_all(string $code, int $flags = 0): array

token_get_all() analisa o code fornecido em tokens da linguagem PHP usando o avaliador léxico do Zend engine.

Para uma lista dos tokens do avaliador, veja Lista de Tokens do Parser, ou use token_name() para traduzir um valor de um token para sua representação em formato string.

Parâmetros

code

O código-fonte do PHP à ser avaliado.

flags

Flags válidas:

  • TOKEN_PARSE - Reconhece a capacidade de usar palavras reservadas em contextos específicos.

Valor Retornado

Um array de identificadores de tokens. Cada identificador de token individual ou é um caracter único (ex.: ;, ., >, !, etc...), ou um array com três elementos contendo o índice do token no elemento 0, a string contendo o token original no elemento 1 e o número da linha no elemento 2.

Exemplos

Exemplo #1 Exemplo de token_get_all()

<?php
$tokens = token_get_all('<?php echo; ?>');

foreach ($tokens as $token) {
if (is_array($token)) {
echo "Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
}
}
?>

O exemplo acima produzirá algo semelhante a:

Line 1: T_OPEN_TAG ('<?php ')
Line 1: T_ECHO ('echo')
Line 1: T_WHITESPACE (' ')
Line 1: T_CLOSE_TAG ('?>')

Exemplo #2 Exemplo de uso incorreto de token_get_all()

<?php
$tokens = token_get_all('/* comment */');

foreach ($tokens as $token) {
if (is_array($token)) {
echo "Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
}
}
?>

O exemplo acima produzirá algo semelhante a:

Line 1: T_INLINE_HTML ('/* comment */')
Observe no exemplo anterior que a string é analisada como T_INLINE_HTML em vez do esperado T_COMMENT. Isso ocorre porque nenhuma tag aberta foi usada no código fornecido. Isso seria equivalente a colocar um comentário fora da tag PHP em um arquivo normal.

Exemplo #3 token_get_all() em uma classe usando um exemplo de palavra reservada

<?php

$source = <<<'code'
<?php

class A
{
const PUBLIC = 1;
}
code;

$tokens = token_get_all($source, TOKEN_PARSE);

foreach ($tokens as $token) {
if (is_array($token)) {
echo token_name($token[0]) , PHP_EOL;
}
}
?>

O exemplo acima produzirá algo semelhante a:

T_OPEN_TAG
T_WHITESPACE
T_CLASS
T_WHITESPACE
T_STRING
T_CONST
T_WHITESPACE
T_STRING
T_LNUMBER
Sem a flag TOKEN_PARSE, o penúltimo token (T_STRING) teria sido T_PUBLIC.

Veja Também

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.
  • token_name() - Pega o nome simbólico de um dado token do PHP


Pega o nome simbólico de um dado token do PHP

  • « token_get_all
  • URLs »
  • PHP Manual
  • Funções da Tokenizer
  • Pega o nome simbólico de um dado token do PHP

token_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

token_name — Pega o nome simbólico de um dado token do PHP

Descrição

token_name(int $id): string

token_name() Pega o nome simbólico para o valor de id.

Parâmetros

id

O valor do token.

Valor Retornado

O nome simbólico do dado id.

Exemplos

Exemplo #1 Exemplo de token_name()

<?php
// 260 é o valor do token T_EVAL
echo token_name(260); // -> "T_EVAL"

// uma constante token é igual ao seu próprio nome
echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Veja Também

  • Lista de tokens do analisador
  • PhpToken::getTokenName() - Returns the name of the token.


URLs

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • URL Funções
    • base64_decode — Decodifica dados no formato MIME base64
    • base64_encode — Codifica dados com MIME base64
    • get_headers — Retorna todos os cabeçalhos enviados pelo servidor em resposta a uma requisição HTTP
    • get_meta_tags — Extracts all meta tag content attributes from a file and returns an array
    • http_build_query — Gera a string de consulta (query) em formato URL
    • parse_url — Parse a URL and return its components
    • rawurldecode — Decodifica uma URL
    • rawurlencode — Codifica uma URL de acordo com RFC 3986
    • urldecode — Decodifica uma URL codificada
    • urlencode — URL-encodes string


  • « URLs
  • Instalação/Configuração »
  • PHP Manual
  • URLs
  • Introdução

Introdução

Lidando com URLs: codificando, decodificando e interpretando.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

As seguintes constantes são para uso com parse_url().

PHP_URL_SCHEME (int)
PHP_URL_HOST (int)
Produz o nome do host da URL analisada.
PHP_URL_PORT (int)
Produz a porta da URL analisada.
PHP_URL_USER (int)
Produz o usuário do URL analisado.
PHP_URL_PASS (int)
Produz a senha do URL analisado.
PHP_URL_PATH (int)
Produz o caminho do URL analisado.
PHP_URL_QUERY (int)
Produz a query string do URL analisado.
PHP_URL_FRAGMENT (int)
Produz o fragmento (string após o hashmark #) do URL analisado.

As seguintes constantes devem ser usadas com http_build_query().

PHP_QUERY_RFC1738 (int)
A codificação é realizada por » RFC 1738 e o tipo de mídia application/x-www-form-urlencoded, que implica que os espaços são codificados como sinais de mais (+).
PHP_QUERY_RFC3986 (int)
A codificação é realizada de acordo com » RFC 3986, e os espaços serão codificados em porcentagem (%20).


URL Funções

Índice

  • base64_decode — Decodifica dados no formato MIME base64
  • base64_encode — Codifica dados com MIME base64
  • get_headers — Retorna todos os cabeçalhos enviados pelo servidor em resposta a uma requisição HTTP
  • get_meta_tags — Extracts all meta tag content attributes from a file and returns an array
  • http_build_query — Gera a string de consulta (query) em formato URL
  • parse_url — Parse a URL and return its components
  • rawurldecode — Decodifica uma URL
  • rawurlencode — Codifica uma URL de acordo com RFC 3986
  • urldecode — Decodifica uma URL codificada
  • urlencode — URL-encodes string


Decodifica dados no formato MIME base64

  • « URL Funções
  • base64_encode »
  • PHP Manual
  • URL Funções
  • Decodifica dados no formato MIME base64

base64_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

base64_decode — Decodifica dados no formato MIME base64

Descrição

base64_decode(string $string, bool $strict = false): string|false

Decodifica uma string codificada em base64.

Parâmetros

string

Os dados codificados.

strict

Se o parâmetro strict for definido como true, então a função base64_decode() retornará false se a entrada contiver caracteres fora do alfabeto base64. Caso contrário, os caracteres inválidos serão descartados silenciosamente.

Valor Retornado

Retorna os dados decodificados ou false em caso de falha. Os dados retornados podem ser binários.

Exemplos

Exemplo #1 Exemplo base64_decode()

<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
?>

O exemplo acima produzirá:

This is an encoded string

Veja Também

  • base64_encode() - Codifica dados com MIME base64
  • Seção 6.8 do » RFC 2045


Codifica dados com MIME base64

  • « base64_decode
  • get_headers »
  • PHP Manual
  • URL Funções
  • Codifica dados com MIME base64

base64_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

base64_encode — Codifica dados com MIME base64

Descrição

base64_encode(string $string): string

Codifica a dada string com base64.

Esta codificação é designada para que dados binários durem no transporte sobre camadas de transorte que não são 8-bit clean, como mensagens de e-mail.

Os dados codificados em base64 ocupam cerca de 33% a mais de espaço do que os dados originais.

Parâmetros

string

Os dados a serem codificados.

Valor Retornado

Os dados codificados, como uma string.

Exemplos

Exemplo #1 Exemplo base64_encode()

<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?>

O exemplo acima produzirá:

VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==

Veja Também

  • base64_decode() - Decodifica dados no formato MIME base64
  • chunk_split() - Divide uma string em pedaços menores
  • convert_uuencode() - Codifica uma string com uuencode
  • Seção 6.8 do » RFC 2045


Retorna todos os cabeçalhos enviados pelo servidor em resposta a uma requisição HTTP

  • « base64_encode
  • get_meta_tags »
  • PHP Manual
  • URL Funções
  • Retorna todos os cabeçalhos enviados pelo servidor em resposta a uma requisição HTTP

get_headers

(PHP 5, PHP 7, PHP 8)

get_headers — Retorna todos os cabeçalhos enviados pelo servidor em resposta a uma requisição HTTP

Descrição

get_headers(string $url, bool $associative = false, ?resource $context = null): array|false

get_headers() retorna um array com os cabeçalhos enviados pelo servidor em resposta a uma requisição HTTP.

Parâmetros

url

A URL alvo.

associative

Se o parâmetro opcional associative estiver definido como true, get_headers() avalia a resposta e define as chaves do array.

context

Um recurso de contexto válido criado com stream_context_create(), ou null para usar o contexto padrão

Valor Retornado

Retorna um array indexado ou associativo com os cabeçalhos, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro associative foi modificado de int para bool.
7.1.0 | O parâmetro context foi adicionado.

Exemplos

Exemplo #1 Exemplo de get_headers()

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, true));
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html
)

Exemplo #2 Exemplo de get_headers() usando HEAD

<?php
// Por padrão get_headers usa uma requisição GET para obter os cabeçalhos. Se
// você quiser enviar uma requisição HEAD, pode fazer isso utilizando um contexo de stream:
$context = stream_context_create(
[
'http' => array(
'method' => 'HEAD'
)
]
);
$headers = get_headers('http://example.com', false, $context);
?>

Veja Também

  • apache_request_headers() - Obtém todos os cabeçalhos da requisição HTTP


Extracts all meta tag content attributes from a file and returns an array

  • « get_headers
  • http_build_query »
  • PHP Manual
  • URL Funções
  • Extracts all meta tag content attributes from a file and returns an array

get_meta_tags

(PHP 4, PHP 5, PHP 7, PHP 8)

get_meta_tags — Extracts all meta tag content attributes from a file and returns an array

Descrição

get_meta_tags(string $filename, bool $use_include_path = false): array|false

Opens filename and parses it line by line for <meta> tags in the file. The parsing stops at </head>.

Parâmetros

filename

The path to the HTML file, as a string. This can be a local file or an URL.

Exemplo #1 What get_meta_tags() parses

<meta name="author" content="name">
<meta name="keywords" content="php documentation">
<meta name="DESCRIPTION" content="a php manual">
<meta name="geo.position" content="49.33;-86.59">
</head> <!-- parsing stops here -->

use_include_path

Setting use_include_path to true will result in PHP trying to open the file along the standard include path as per the include_path directive. This is used for local files, not URLs.

Valor Retornado

Returns an array with all the parsed meta tags.

The value of the name property becomes the key, the value of the content property becomes the value of the returned array, so you can easily use standard array functions to traverse it or access single values. Special characters in the value of the name property are substituted with '_', the rest is converted to lower case. If two meta tags have the same name, only the last one is returned.

Returns false on failure.

Exemplos

Exemplo #2 What get_meta_tags() returns

<?php
// Assuming the above tags are at www.example.com
$tags = get_meta_tags('http://www.example.com/');

// Notice how the keys are all lowercase now, and
// how . was replaced by _ in the key.
echo $tags['author']; // name
echo $tags['keywords']; // php documentation
echo $tags['description']; // a php manual
echo $tags['geo_position']; // 49.33;-86.59
?>

Notas

Nota:

Only meta tags with name attributes will be parsed. Quotes are not required.

Veja Também

  • htmlentities() - Convert all applicable characters to HTML entities
  • urlencode() - URL-encodes string


Gera a string de consulta (query) em formato URL

  • « get_meta_tags
  • parse_url »
  • PHP Manual
  • URL Funções
  • Gera a string de consulta (query) em formato URL

http_build_query

(PHP 5, PHP 7, PHP 8)

http_build_query — Gera a string de consulta (query) em formato URL

Descrição

http_build_query(
array|object $data,
string $numeric_prefix = "",
?string $arg_separator = null,
int $encoding_type = PHP_QUERY_RFC1738
): string

Gera a string de consulta (query) em formato URL a partir de um array associativo (ou indexado).

Parâmetros

data

Pode ser um array ou objeto contendo propriedades.

Se data é um array, este pode ser de estrutura simples de uma dimensão, ou um array multidimensional (que por sua vez pode conter outros arrays).

Se data é um objeto, então somente propriedades públicas serão incorporadas ao resultado.

numeric_prefix

Se índices numéricos são usados no array base e esse parâmetro for fornecido, o número índice dos elementos será prefixado com seu valor, apenas no array base.

Isso é feito para permitir nomes de variáveis aceitáveis quando os dados forem decodificados pelo PHP ou por outra aplicação CGI posteriormente.

arg_separator

O argumento separador. Se não estiver definido ou null, arg_separator.output é usado para separar argumentos.

encoding_type

Por padrão, PHP_QUERY_RFC1738.

Se encoding_type é PHP_QUERY_RFC1738, então a codificação é executada por » RFC 1738 e o media type application/x-www-form-urlencoded, o que implica que os espaços são codificados com o sinal de mais(+).

Se encoding_type é PHP_QUERY_RFC3986, então a codificação é executada de acordo com » RFC 3986, e os espaços serão codificados em porcentagem (%20).

Valor Retornado

Retorna um string no formato de uma URL.

Registro de Alterações

Versão | Descrição
8.0.0 | arg_separator agora é anulável.

Exemplos

Exemplo #1 Exemplo de uso de http_build_query()

<?php
$data = array(
'foo' => 'bar',
'baz' => 'boom',
'cow' => 'milk',
'null' => null,
'php' => 'hypertext processor'
);

echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&amp;');

?>

O exemplo acima produzirá:

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

Exemplo #2 http_build_query() com elementos indexados numericamente.

<?php
$data = array('foo', 'bar', 'baz', null, 'boom', 'cow' => 'milk', 'php' => 'hypertext processor');

echo http_build_query($data) . "\n";
echo http_build_query($data, 'myvar_');
?>

O exemplo acima produzirá:

0=foo&1=bar&2=baz&4=boom&cow=milk&php=hypertext+processor
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_4=boom&cow=milk&php=hypertext+processor

Exemplo #3 http_build_query() com arrays complexos

<?php
$data = array(
'user' => array(
'name' => 'Bob Smith',
'age' => 47,
'sex' => 'M',
'dob' => '5/12/1956'
),
'pastimes' => array('golf', 'opera', 'poker', 'rap'),
'children' => array(
'bobby' => array('age'=>12, 'sex'=>'M'),
'sally' => array('age'=>8, 'sex'=>'F')
),
'CEO'
);

echo http_build_query($data, 'flags_');
?>

O exemplo acima produzirá: (quebra de linhas para legibilidade)

user%5Bname%5D=Bob+Smith&user%5Bage%5D=47&user%5Bsex%5D=M&
user%5Bdob%5D=5%2F12%2F1956&pastimes%5B0%5D=golf&pastimes%5B1%5D=opera&
pastimes%5B2%5D=poker&pastimes%5B3%5D=rap&children%5Bbobby%5D%5Bage%5D=12&
children%5Bbobby%5D%5Bsex%5D=M&children%5Bsally%5D%5Bage%5D=8&
children%5Bsally%5D%5Bsex%5D=F&flags_0=CEO

Nota:

Apenas o elemento indexado numericamente no array base "CEO" recebeu um prefixo. Os outros índices numéricos, encontrados abaixo de "pastimes", não requerem uma string de prefixo para serem nomes de variáveis aceitáveis.

Exemplo #4 Usando http_build_query() com um objeto

<?php
class parentClass {
public $pub = 'publicParent';
protected $prot = 'protectedParent';
private $priv = 'privateParent';
public $pub_bar = null;
protected $prot_bar = null;
private $priv_bar = null;

public function __construct(){
$this->pub_bar = new childClass();
$this->prot_bar = new childClass();
$this->priv_bar = new childClass();
}
}

class childClass {
public $pub = 'publicChild';
protected $prot = 'protectedChild';
private $priv = 'privateChild';
}

$parent = new parentClass();

echo http_build_query($parent);
?>

O exemplo acima produzirá:

pub=publicParent&pub_bar%5Bpub%5D=publicChild

Veja Também

  • parse_str() - Converte a string em variáveis
  • parse_url() - Parse a URL and return its components
  • urlencode() - URL-encodes string
  • array_walk() - Aplica uma determinada função em cada elemento de um array


Parse a URL and return its components

  • « http_build_query
  • rawurldecode »
  • PHP Manual
  • URL Funções
  • Parse a URL and return its components

parse_url

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_url — Parse a URL and return its components

Descrição

parse_url(string $url, int $component = -1): int|string|array|null|false

This function parses a URL and returns an associative array containing any of the various components of the URL that are present. The values of the array elements are not URL decoded.

This function is not meant to validate the given URL, it only breaks it up into the parts listed below. Partial and invalid URLs are also accepted, parse_url() tries its best to parse them correctly.

Parâmetros

url

The URL to parse.

component

Specify one of PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY or PHP_URL_FRAGMENT to retrieve just a specific URL component as a string (except when PHP_URL_PORT is given, in which case the return value will be an int).

Valor Retornado

On seriously malformed URLs, parse_url() may return false.

If the component parameter is omitted, an associative array is returned. At least one element will be present within the array. Potential keys within this array are:

  • scheme - e.g. http
  • host
  • port
  • user
  • pass
  • path
  • query - after the question mark ?
  • fragment - after the hashmark #

If the component parameter is specified, parse_url() returns a string (or an int, in the case of PHP_URL_PORT) instead of an array. If the requested component doesn't exist within the given URL, null will be returned. As of PHP 8.0.0, parse_url() distinguishes absent and empty queries and fragments:

http://example.com/foo ? query = null, fragment = null
http://example.com/foo? ? query = "",   fragment = null
http://example.com/foo# ? query = null, fragment = ""
http://example.com/foo?# ? query = "",   fragment = ""

Previously all cases resulted in query and fragment being null.

Note that control characters (cf. ctype_cntrl()) in the components are replaced with underscores (_).

Registro de Alterações

Versão | Descrição
8.0.0 | parse_url() will now distinguish absent and empty queries and fragments.

Exemplos

Exemplo #1 A parse_url() example

<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';

var_dump(parse_url($url));
var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));
?>

O exemplo acima produzirá:

array(8) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(8) "hostname"
  ["port"]=>
  int(9090)
  ["user"]=>
  string(8) "username"
  ["pass"]=>
  string(8) "password"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(9) "arg=value"
  ["fragment"]=>
  string(6) "anchor"
}
string(4) "http"
string(8) "username"
string(8) "password"
string(8) "hostname"
int(9090)
string(5) "/path"
string(9) "arg=value"
string(6) "anchor"

Exemplo #2 A parse_url() example with missing scheme

<?php
$url = '//www.example.com/path?googleguy=googley';

// Prior to 5.4.7 this would show the path as "//www.example.com/path"
var_dump(parse_url($url));
?>

O exemplo acima produzirá:

array(3) {
  ["host"]=>
  string(15) "www.example.com"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(17) "googleguy=googley"
}

Notas

Cuidado

This function may not give correct results for relative or invalid URLs, and the results may not even match common behavior of HTTP clients. If URLs from untrusted input need to be parsed, extra validation is required, e.g. by using filter_var() with the FILTER_VALIDATE_URL filter.

Nota:

This function is intended specifically for the purpose of parsing URLs and not URIs. However, to comply with PHP's backwards compatibility requirements it makes an exception for the file:// scheme where triple slashes (file:///...) are allowed. For any other scheme this is invalid.

Veja Também

  • pathinfo() - Retorna informações sobre um caminho de arquivo
  • parse_str() - Converte a string em variáveis
  • http_build_query() - Gera a string de consulta (query) em formato URL
  • dirname() - Retorna o caminho para o diretório pai
  • basename() - Retorna a última parte do caminho
  • » RFC 3986


Decodifica uma URL

  • « parse_url
  • rawurlencode »
  • PHP Manual
  • URL Funções
  • Decodifica uma URL

rawurldecode

(PHP 4, PHP 5, PHP 7, PHP 8)

rawurldecode — Decodifica uma URL

Descrição

rawurldecode(string $string): string

Retorna uma string em que as sequências com o sinal porcento (%) seguida por dois dígitos hexadecimais são substituídas pelos caracteres correspondentes.

Parâmetros

string

A URL a ser decodificada.

Valor Retornado

Retorna a URL decodificada, como uma string.

Exemplos

Exemplo #1 Exemplo da rawurldecode()

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Notas

Nota:

rawurldecode() não decodifica os sinais de adição ('+') em espaços. A função urldecode() faz isto.

Veja Também

  • rawurlencode() - Codifica uma URL de acordo com RFC 3986
  • urldecode() - Decodifica uma URL codificada
  • urlencode() - URL-encodes string
  • » RFC 3986


Codifica uma URL de acordo com RFC 3986

  • « rawurldecode
  • urldecode »
  • PHP Manual
  • URL Funções
  • Codifica uma URL de acordo com RFC 3986

rawurlencode

(PHP 4, PHP 5, PHP 7, PHP 8)

rawurlencode — Codifica uma URL de acordo com RFC 3986

Descrição

rawurlencode(string $string): string

Codifica uma dada string de acordo com » RFC 3986.

Parâmetros

string

A URL a ser codificada.

Valor Retornado

Retorna uma string na qual todos os caracteres alfa-numericos com exceção de -_.~ são substituidos com um sinal de porcento (%) seguido de dois digitos hexadecimais. Esta codificação esta descrita na » RFC 3986 para proteger caracteres de serem interpretados como delimitadores de URL, e para proteger URLs de serem embaralhadas por transmissão em meios com conversões de caracteres (como alguns sistemas de email).

Exemplos

Exemplo #1 Incluindo uma senha em uma URL de FTP

<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
'@ftp.example.com/x.txt">';
?>

O exemplo acima produzirá:

<a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt">

Ou, se você quiser passar informação no componente PATH_INFO se uma URL:

Exemplo #2 Exemplo 2 de rawurlencode()

<?php
echo '<a href="http://example.com/department_list_script/',
rawurlencode('sales and marketing/Miami'), '">';
?>

O exemplo acima produzirá:

<a href="http://example.com/department_list_script/sales%20and%20marketing%2FMiami">

Veja Também

  • rawurldecode() - Decodifica uma URL
  • urldecode() - Decodifica uma URL codificada
  • urlencode() - URL-encodes string
  • » RFC 3986


Decodifica uma URL codificada

  • « rawurlencode
  • urlencode »
  • PHP Manual
  • URL Funções
  • Decodifica uma URL codificada

urldecode

(PHP 4, PHP 5, PHP 7, PHP 8)

urldecode — Decodifica uma URL codificada

Descrição

urldecode(string $string): string

Decodifica qualquer %## codificado na string. Os símbolos 'mais' ('+') são decodificados para um caractere de espaço.

Parâmetros

string

A string a ser decodificada.

Valor Retornado

Retorna a string decodificada.

Exemplos

Exemplo #1 Exemplo da urldecode()

<?php
$query = "my=apples&are=green+and+red";

foreach (explode('&', $query) as $chunk) {
$param = explode("=", $chunk);

if ($param) {
printf("Value for parameter \"%s\" is \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
}
}
?>

Notas

Aviso

As superglobais $_GET e $_REQUEST já são decodificadas. Usar urldecode() em um elemento $_GET ou $_REQUEST podem gerar resultados inesperados e perigosos.

Veja Também

  • urlencode() - URL-encodes string
  • rawurlencode() - Codifica uma URL de acordo com RFC 3986
  • rawurldecode() - Decodifica uma URL
  • » RFC 3986


URL-encodes string

  • « urldecode
  • V8js »
  • PHP Manual
  • URL Funções
  • URL-encodes string

urlencode

(PHP 4, PHP 5, PHP 7, PHP 8)

urlencode — URL-encodes string

Descrição

urlencode(string $string): string

This function is convenient when encoding a string to be used in a query part of a URL, as a convenient way to pass variables to the next page.

Parâmetros

string

The string to be encoded.

Valor Retornado

Returns a string in which all non-alphanumeric characters except -_. have been replaced with a percent (%) sign followed by two hex digits and spaces encoded as plus (+) signs. It is encoded the same way that the posted data from a WWW form is encoded, that is the same way as in application/x-www-form-urlencoded media type. This differs from the » RFC 3986 encoding (see rawurlencode()) in that for historical reasons, spaces are encoded as plus (+) signs.

Exemplos

Exemplo #1 urlencode() example

<?php
$userinput = 'Data123!@-_ +';
echo "UserInput: $userinput\n";
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

O exemplo acima produzirá:

UserInput: Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B">

Exemplo #2 urlencode() and htmlentities() example

<?php
$foo = 'Data123!@-_ +';
$bar = "Not the same content as $foo";
echo "foo: $foo\n";
echo "bar: $bar\n";
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

O exemplo acima produzirá:

foo: Data123!@-_ +
bar: Not the same content as Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B&amp;bar=Not+the+same+content+as+Data123%21%40-_+%2B">

Notas

Nota:

Be careful about variables that may match HTML entities. Things like &amp, &copy and &pound are parsed by the browser and the actual entity is used instead of the desired variable name. This is an obvious hassle that the W3C has been telling people about for years. The reference is here: » http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2.

PHP supports changing the argument separator to the W3C-suggested semi-colon through the arg_separator .ini directive. Unfortunately most user agents do not send form data in this semi-colon separated format. A more portable way around this is to use &amp; instead of & as the separator. You don't need to change PHP's arg_separator for this. Leave it as &, but simply encode your URLs using htmlentities() or htmlspecialchars().

Veja Também

  • urldecode() - Decodifica uma URL codificada
  • htmlentities() - Convert all applicable characters to HTML entities
  • rawurlencode() - Codifica uma URL de acordo com RFC 3986
  • rawurldecode() - Decodifica uma URL
  • » RFC 3986


V8 Javascript Engine Integration

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Exemplos
  • V8Js — The V8Js class
    • V8Js::__construct — Construct a new V8Js object
    • V8Js::executeString — Execute a string as Javascript code
    • V8Js::getExtensions — Return an array of registered extensions
    • V8Js::getPendingException — Return pending uncaught Javascript exception
    • V8Js::registerExtension — Register Javascript extensions for V8Js
  • V8JsException — The V8JsException class
    • V8JsException::getJsFileName — The getJsFileName purpose
    • V8JsException::getJsLineNumber — The getJsLineNumber purpose
    • V8JsException::getJsSourceLine — The getJsSourceLine purpose
    • V8JsException::getJsTrace — The getJsTrace purpose


  • « V8js
  • Instalação/Configuração »
  • PHP Manual
  • V8js
  • Introdução

Introdução

This extension embeds the » V8 Javascript Engine into PHP.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

PHP and V8 library and headers installed in proper paths.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/v8js


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

V8js Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
v8js.max_disposed_contexts | 25 | INI_ALL |
v8js.flags |  | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

v8js.max_disposed_contexts int

Sets limit for disposed contexts before forcing V8 to do garbage collection.

v8js.flags string

Sets V8 command line flags. The list of available flags can be obtained in CLI mode by setting this parameter to --help. Example:

$ php -r 'ini_set("v8js.flags", "--help"); new V8Js;' | less

Nota:

For these flags to be effective in runtime the ini_set() call has to be done before any V8Js objects are instantiated!


  • « Configurações em Execução
  • Exemplos »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


Exemplos

Basic usage

Exemplo #1 Basic Javascript execution

<?php

$v8 = new V8Js();

/* basic.js */
$JS = <<< EOT
len = print('Hello' + ' ' + 'World!' + "\\n");
len;
EOT;

try {
var_dump($v8->executeString($JS, 'basic.js'));
} catch (V8JsException $e) {
var_dump($e);
}

?>

O exemplo acima produzirá:

Hello World!
int(13)


The V8Js class

(PECL v8js >= 0.1.0)

Introdução

This is the core class for V8Js extension. Each instance created from this class has own context in which all JavaScript is compiled and executed.

See V8Js::__construct() for more information.

Resumo da classe

class V8Js {
/* Constantes */
const string V8_VERSION;
const int FLAG_NONE = 1;
const int FLAG_FORCE_ARRAY = 2;
/* Métodos */
public __construct(
string $object_name = "PHP",
array $variables = array(),
array $extensions = array(),
bool $report_uncaught_exceptions = true
)
public executeString(string $script, string $identifier = "V8Js::executeString()", int $flags = V8Js::FLAG_NONE): mixed
public static getExtensions(): array
public getPendingException(): V8JsException
public static registerExtension(
string $extension_name,
string $script,
array $dependencies = array(),
bool $auto_enable = false
): bool
}

Constantes pré-definidas

V8Js::V8_VERSION

The V8 Javascript Engine version.

V8Js::FLAG_NONE

No flags.

V8Js::FLAG_FORCE_ARRAY

Forces all JS objects to be associative arrays in PHP.

Índice

  • V8Js::__construct — Construct a new V8Js object
  • V8Js::executeString — Execute a string as Javascript code
  • V8Js::getExtensions — Return an array of registered extensions
  • V8Js::getPendingException — Return pending uncaught Javascript exception
  • V8Js::registerExtension — Register Javascript extensions for V8Js


Construct a new V8Js object

  • « V8Js
  • V8Js::executeString »
  • PHP Manual
  • V8Js
  • Construct a new V8Js object

V8Js::__construct

(PECL v8js >= 0.1.0)

V8Js::__construct — Construct a new V8Js object

Descrição

public V8Js::__construct(
string $object_name = "PHP",
array $variables = array(),
array $extensions = array(),
bool $report_uncaught_exceptions = true
)

Constructs a new V8Js object.

Parâmetros

object_name

The name of the object passed to Javascript.

variables

Map of PHP variables that will be available in Javascript. Must be an associative array in format array("name-for-js" => "name-of-php-variable"). Defaults to empty array.

extensions

List of extensions registered using V8Js::registerExtension() which should be available in the Javascript context of the created V8Js object.

Nota:

Extensions registered to be enabled automatically do not need to be listed in this array. Also if an extension has dependencies, those dependencies can be omitted as well. Defaults to empty array.

report_uncaught_exceptions

Controls whether uncaught Javascript exceptions are reported immediately or not. Defaults to true. If set to false the uncaught exception can be accessed using V8Js::getPendingException().


Execute a string as Javascript code

  • « V8Js::__construct
  • V8Js::getExtensions »
  • PHP Manual
  • V8Js
  • Execute a string as Javascript code

V8Js::executeString

(PECL v8js >= 0.1.0)

V8Js::executeString — Execute a string as Javascript code

Descrição

public V8Js::executeString(string $script, string $identifier = "V8Js::executeString()", int $flags = V8Js::FLAG_NONE): mixed

Compiles and executes the string passed with script as Javascript code.

Parâmetros

script

The code string to be executed.

identifier

Identifier string for the executed code. Used for debugging.

flags

Execution flags. This value must be one of the V8Js::FLAG_* constants, defaulting to V8Js::FLAG_NONE.

  • V8Js::FLAG_NONE: no flags

  • V8Js::FLAG_FORCE_ARRAY: forces all Javascript objects passed to PHP to be associative arrays

Valor Retornado

Returns the last variable instantiated in the Javascript code converted to matching PHP variable type.


Return an array of registered extensions

  • « V8Js::executeString
  • V8Js::getPendingException »
  • PHP Manual
  • V8Js
  • Return an array of registered extensions

V8Js::getExtensions

(PECL v8js >= 0.1.0)

V8Js::getExtensions — Return an array of registered extensions

Descrição

public static V8Js::getExtensions(): array

This function returns array of Javascript extensions registered using V8Js::registerExtension().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of registered extensions or an empty array if there are none.


Return pending uncaught Javascript exception

  • « V8Js::getExtensions
  • V8Js::registerExtension »
  • PHP Manual
  • V8Js
  • Return pending uncaught Javascript exception

V8Js::getPendingException

(PECL v8js >= 0.1.0)

V8Js::getPendingException — Return pending uncaught Javascript exception

Descrição

public V8Js::getPendingException(): V8JsException

Returns any pending uncaught Javascript exception as V8JsException left from earlier V8Js::executeString() call(s).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Either V8JsException or null.


Register Javascript extensions for V8Js

  • « V8Js::getPendingException
  • V8JsException »
  • PHP Manual
  • V8Js
  • Register Javascript extensions for V8Js

V8Js::registerExtension

(PECL v8js >= 0.1.0)

V8Js::registerExtension — Register Javascript extensions for V8Js

Descrição

public static V8Js::registerExtension(
string $extension_name,
string $script,
array $dependencies = array(),
bool $auto_enable = false
): bool

Registers passed Javascript script as extension to be used in V8Js contexts.

Parâmetros

extension_name

Name of the extension to be registered.

script

The Javascript code to be registered.

dependencies

Array of extension names the extension to be registered depends on. Any such extension is enabled automatically when this extension is loaded.

Nota:

All extensions, including the dependencies, must be registered before any V8Js are created which use them.

auto_enable

If set to true, the extension will be enabled automatically in all V8Js contexts.

Valor Retornado

Returns true if extension was registered successfully, false otherwise.


The V8JsException class

(PECL v8js >= 0.1.0)

Introdução

Resumo da classe

class V8JsException extends Exception {
/* Propriedades */
protected $JsFileName;
protected $JsLineNumber;
protected $JsSourceLine;
protected $JsTrace;
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
final public getJsFileName(): string
final public getJsLineNumber(): int
final public getJsSourceLine(): string
final public getJsTrace(): string
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

JsFileName

JsLineNumber

JsSourceLine

JsTrace

Índice

  • V8JsException::getJsFileName — The getJsFileName purpose
  • V8JsException::getJsLineNumber — The getJsLineNumber purpose
  • V8JsException::getJsSourceLine — The getJsSourceLine purpose
  • V8JsException::getJsTrace — The getJsTrace purpose


The getJsFileName purpose

  • « V8JsException
  • V8JsException::getJsLineNumber »
  • PHP Manual
  • V8JsException
  • The getJsFileName purpose

V8JsException::getJsFileName

(PECL v8js >= 0.1.0)

V8JsException::getJsFileName — The getJsFileName purpose

Descrição

final public V8JsException::getJsFileName(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getJsLineNumber purpose

  • « V8JsException::getJsFileName
  • V8JsException::getJsSourceLine »
  • PHP Manual
  • V8JsException
  • The getJsLineNumber purpose

V8JsException::getJsLineNumber

(PECL v8js >= 0.1.0)

V8JsException::getJsLineNumber — The getJsLineNumber purpose

Descrição

final public V8JsException::getJsLineNumber(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getJsSourceLine purpose

  • « V8JsException::getJsLineNumber
  • V8JsException::getJsTrace »
  • PHP Manual
  • V8JsException
  • The getJsSourceLine purpose

V8JsException::getJsSourceLine

(PECL v8js >= 0.1.0)

V8JsException::getJsSourceLine — The getJsSourceLine purpose

Descrição

final public V8JsException::getJsSourceLine(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getJsTrace purpose

  • « V8JsException::getJsSourceLine
  • Yaml »
  • PHP Manual
  • V8JsException
  • The getJsTrace purpose

V8JsException::getJsTrace

(PECL v8js >= 0.1.0)

V8JsException::getJsTrace — The getJsTrace purpose

Descrição

final public V8JsException::getJsTrace(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


YAML Data Serialization

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Callbacks
    • Parse callbacks
    • Emit callbacks
  • Yaml Funções
    • yaml_emit_file — Send the YAML representation of a value to a file
    • yaml_emit — Returns the YAML representation of a value
    • yaml_parse_file — Parse a YAML stream from a file
    • yaml_parse_url — Parse a Yaml stream from a URL
    • yaml_parse — Parse a YAML stream


Introdução

This extension implements the » YAML Ain't Markup Language (YAML) data serialization standard. Parsing and emiting are handled by the » LibYAML library.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

This extension requires the » LibYAML C library version 0.1.0 or higher to be installed.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/yaml.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Yaml Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
yaml.decode_binary | 0 | INI_ALL |
yaml.decode_php | 0 | INI_ALL | Added in 1.2.0, before 2.0.0 the default was 1
yaml.decode_timestamp | 0 | INI_ALL |
yaml.output_canonical | 0 | INI_ALL |
yaml.output_indent | 2 | INI_ALL |
yaml.output_width | 80 | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

yaml.decode_binary bool

Off by default, but can be set to on to cause base64 binary encoded entities which have the explicit tag "tag:yaml.org,2002:binary" to be decoded.

yaml.decode_php bool

Off by default, but can be set to on to cause serialized php objects which have the explicit tag "!php/object" to be unserialized.

yaml.decode_timestamp int

Controls the decoding of both implicit and explicit "tag:yaml.org,2002:timestamp" scalars in the YAML document stream. The default setting of 0 will not apply any decoding. A setting of 1 will use strtotime() to parse the timestamp value as a Unix timestamp. A setting of 2 will use date_create() to parse the timestamp value as DateTime object.

yaml.output_canonical bool

Off by default, but can be set to on to cause canonical form output.

yaml.output_indent int

Number of spaces to indent sections. Value should be between 1 and 10.

yaml.output_width int

Set the preferred line width. -1 means unlimited.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Scalar entity styles usable by yaml_parse() callback methods.
YAML_ANY_SCALAR_STYLE (int)
YAML_PLAIN_SCALAR_STYLE (int)
YAML_SINGLE_QUOTED_SCALAR_STYLE (int)
YAML_DOUBLE_QUOTED_SCALAR_STYLE (int)
YAML_LITERAL_SCALAR_STYLE (int)
YAML_FOLDED_SCALAR_STYLE (int)
Common tags usable by yaml_parse() callback methods.
YAML_NULL_TAG (string)
"tag:yaml.org,2002:null"
YAML_BOOL_TAG (string)
"tag:yaml.org,2002:bool"
YAML_STR_TAG (string)
"tag:yaml.org,2002:str"
YAML_INT_TAG (string)
"tag:yaml.org,2002:int"
YAML_FLOAT_TAG (string)
"tag:yaml.org,2002:float"
YAML_TIMESTAMP_TAG (string)
"tag:yaml.org,2002:timestamp"
YAML_SEQ_TAG (string)
"tag:yaml.org,2002:seq"
YAML_MAP_TAG (string)
"tag:yaml.org,2002:map"
YAML_PHP_TAG (string)
"!php/object"
Encoding types for yaml_emit()
YAML_ANY_ENCODING (int)
Let the emitter choose an encoding.
YAML_UTF8_ENCODING (int)
Encode as UTF8.
YAML_UTF16LE_ENCODING (int)
Encode as UTF16LE.
YAML_UTF16BE_ENCODING (int)
Encode as UTF16BE.
Linebreak types for yaml_emit()
YAML_ANY_BREAK (int)
Let emitter choose linebreak character.
YAML_CR_BREAK (int)
Use \r as break character (Mac style).
YAML_LN_BREAK (int)
Use \n as break character (Unix style).
YAML_CRLN_BREAK (int)
Use \r\n as break character (DOS style).


Exemplos

Exemplo #1 Yaml Example

<?php
$addr = array(
"given" => "Chris",
"family"=> "Dumars",
"address"=> array(
"lines"=> "458 Walkman Dr.
Suite #292",
"city"=> "Royal Oak",
"state"=> "MI",
"postal"=> 48046,
),
);
$invoice = array (
"invoice"=> 34843,
"date"=> "2001-01-23",
"bill-to"=> $addr,
"ship-to"=> $addr,
"product"=> array(
array(
"sku"=> "BL394D",
"quantity"=> 4,
"description"=> "Basketball",
"price"=> 450,
),
array(
"sku"=> "BL4438H",
"quantity"=> 1,
"description"=> "Super Hoop",
"price"=> 2392,
),
),
"tax"=> 251.42,
"total"=> 4443.52,
"comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
);

// generate a YAML representation of the invoice
$yaml = yaml_emit($invoice);
var_dump($yaml);

// convert the YAML back into a PHP variable
$parsed = yaml_parse($yaml);

// check that roundtrip conversion produced an equivalent structure
var_dump($parsed == $invoice);
?>

O exemplo acima produzirá algo semelhante a:

string(631) "---
invoice: 34843
date: "2001-01-23"
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"
bool(true)


  • « Exemplos
  • Parse callbacks »
  • PHP Manual
  • Yaml
  • Callbacks

Callbacks

Índice

  • Parse callbacks
  • Emit callbacks


Parse callbacks

Parse callables are invoked by yaml_parse(), yaml_parse_file() or yaml_parse_url() functions when a registered YAML tag is encountered. The callback is passed the tagged entity's value, the tag, and flags indicating the scalar entity style. The callback must return the data that the YAML parser should emit for this entity.

Exemplo #1 Parse callback example

<?php
/**
* Parsing callback for yaml tag.
* @param mixed $value Data from yaml file
* @param string $tag Tag that triggered callback
* @param int $flags Scalar entity style (see YAML_*_SCALAR_STYLE)
* @return mixed Value that YAML parser should emit for the given value
*/
function tag_callback ($value, $tag, $flags) {
var_dump(func_get_args()); // debugging
return "Hello {$value}";
}

$yaml = <<<YAML
greeting: !example/hello World
YAML;

$result = yaml_parse($yaml, 0, $ndocs, array(
'!example/hello' => 'tag_callback',
));

var_dump($result);
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  string(5) "World"
  [1]=>
  string(14) "!example/hello"
  [2]=>
  int(1)
}
array(1) {
  ["greeting"]=>
  string(11) "Hello World"
}


Emit callbacks

Emit callbacks are invoked when an instance of a registered class is emitted by yaml_emit() or yaml_emit_file(). The callback is passed the object to be emitted. The callback must return an array having two keys: "tag" and "data". The value associated with the "tag" key must be a string to be used as the YAML tag in the output. The value associated with the "data" key will be encoded as YAML and emitted in place of the intercepted object.

Exemplo #1 Emit callback example

<?php
class EmitExample {
public $data; // data may be in any pecl/yaml suitable type

public function __construct ($d) {
$this->data = $d;
}

/**
* Yaml emit callback function, referred on yaml_emit call by class name.
*
* Expected to return an array with 2 values:
* - 'tag': custom tag for this serialization
* - 'data': value to convert to yaml (array, string, bool, number)
*
* @param object $obj Object to be emitted
* @return array Tag and surrogate data to emit
*/
public static function yamlEmit (EmitExample $obj) {
return array(
'tag' => '!example/emit',
'data' => $obj->data,
);
}
}

$emit_callbacks = array(
'EmitExample' => array('EmitExample', 'yamlEmit')
);

$t = new EmitExample(array('a','b','c'));
$yaml = yaml_emit(
array(
'example' => $t,
),
YAML_ANY_ENCODING,
YAML_ANY_BREAK,
$emit_callbacks
);
var_dump($yaml);
?>

O exemplo acima produzirá algo semelhante a:

string(43) "---
example: !example/emit
- a
- b
- c
...
"


Yaml Funções

Índice

  • yaml_emit_file — Send the YAML representation of a value to a file
  • yaml_emit — Returns the YAML representation of a value
  • yaml_parse_file — Parse a YAML stream from a file
  • yaml_parse_url — Parse a Yaml stream from a URL
  • yaml_parse — Parse a YAML stream


Send the YAML representation of a value to a file

  • « Yaml Funções
  • yaml_emit »
  • PHP Manual
  • Yaml Funções
  • Send the YAML representation of a value to a file

yaml_emit_file

(PECL yaml >= 0.5.0)

yaml_emit_file — Send the YAML representation of a value to a file

Descrição

yaml_emit_file(
string $filename,
mixed $data,
int $encoding = YAML_ANY_ENCODING,
int $linebreak = YAML_ANY_BREAK,
array $callbacks = null
): bool

Generate a YAML representation of the provided data in the filename.

Parâmetros

filename

Path to the file.

data

The data being encoded. Can be any type except a resource.

encoding

Output character encoding chosen from YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.

linebreak

Output linebreak style chosen from YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.

callbacks

Content handlers for emitting YAML nodes. Associative array of classname => callable mappings. See emit callbacks for more details.

Valor Retornado

Returns true on success.

Registro de Alterações

Versão | Descrição
PECL yaml 1.1.0 | The callbacks parameter was added.

Veja Também

  • yaml_emit() - Returns the YAML representation of a value
  • yaml_parse() - Parse a YAML stream


Returns the YAML representation of a value

  • « yaml_emit_file
  • yaml_parse_file »
  • PHP Manual
  • Yaml Funções
  • Returns the YAML representation of a value

yaml_emit

(PECL yaml >= 0.5.0)

yaml_emit — Returns the YAML representation of a value

Descrição

yaml_emit(
mixed $data,
int $encoding = YAML_ANY_ENCODING,
int $linebreak = YAML_ANY_BREAK,
array $callbacks = null
): string

Generate a YAML representation of the provided data.

Parâmetros

data

The data being encoded. Can be any type except a resource.

encoding

Output character encoding chosen from YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.

linebreak

Output linebreak style chosen from YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.

callbacks

Content handlers for emitting YAML nodes. Associative array of classname => callable mappings. See emit callbacks for more details.

Valor Retornado

Returns a YAML encoded string on success.

Registro de Alterações

Versão | Descrição
PECL yaml 1.1.0 | The callbacks parameter was added.

Exemplos

Exemplo #1 yaml_emit() example

<?php
$addr = array(
"given" => "Chris",
"family"=> "Dumars",
"address"=> array(
"lines"=> "458 Walkman Dr.
Suite #292",
"city"=> "Royal Oak",
"state"=> "MI",
"postal"=> 48046,
),
);
$invoice = array (
"invoice"=> 34843,
"date"=> 980208000,
"bill-to"=> $addr,
"ship-to"=> $addr,
"product"=> array(
array(
"sku"=> "BL394D",
"quantity"=> 4,
"description"=> "Basketball",
"price"=> 450,
),
array(
"sku"=> "BL4438H",
"quantity"=> 1,
"description"=> "Super Hoop",
"price"=> 2392,
),
),
"tax"=> 251.42,
"total"=> 4443.52,
"comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
);
var_dump(yaml_emit($invoice));
?>

O exemplo acima produzirá algo semelhante a:

string(628) "---
invoice: 34843
date: 980208000
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"

Veja Também

  • yaml_emit_file() - Send the YAML representation of a value to a file
  • yaml_parse() - Parse a YAML stream


Parse a YAML stream from a file

  • « yaml_emit
  • yaml_parse_url »
  • PHP Manual
  • Yaml Funções
  • Parse a YAML stream from a file

yaml_parse_file

(PECL yaml >= 0.4.0)

yaml_parse_file — Parse a YAML stream from a file

Descrição

yaml_parse_file(
string $filename,
int $pos = 0,
int &$ndocs = ?,
array $callbacks = null
): mixed

Convert all or part of a YAML document stream read from a file to a PHP variable.

Parâmetros

filename

Path to the file.

pos

Document to extract from stream (-1 for all documents, 0 for first document, ...).

ndocs

If ndocs is provided, then it is filled with the number of documents found in stream.

callbacks

Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more details.

Valor Retornado

Returns the value encoded in filename in appropriate PHP type ou false em caso de falha. If pos is -1 an array will be returned with one entry for each document found in the stream.

Notas

Aviso

Processing untrusted user input with yaml_parse_file() is dangerous if the use of unserialize() is enabled for nodes using the !php/object tag. This behavior can be disabled by using the yaml.decode_php ini setting.

Veja Também

  • yaml_parse() - Parse a YAML stream
  • yaml_parse_url() - Parse a Yaml stream from a URL
  • yaml_emit() - Returns the YAML representation of a value


Parse a Yaml stream from a URL

  • « yaml_parse_file
  • yaml_parse »
  • PHP Manual
  • Yaml Funções
  • Parse a Yaml stream from a URL

yaml_parse_url

(PECL yaml >= 0.4.0)

yaml_parse_url — Parse a Yaml stream from a URL

Descrição

yaml_parse_url(
string $url,
int $pos = 0,
int &$ndocs = ?,
array $callbacks = null
): mixed

Convert all or part of a YAML document stream read from a URL to a PHP variable.

Parâmetros

url

url should be of the form "scheme://...". PHP will search for a protocol handler (also known as a wrapper) for that scheme. If no wrappers for that protocol are registered, PHP will emit a notice to help you track potential problems in your script and then continue as though filename specifies a regular file.

pos

Document to extract from stream (-1 for all documents, 0 for first document, ...).

ndocs

If ndocs is provided, then it is filled with the number of documents found in stream.

callbacks

Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more

Valor Retornado

Returns the value encoded in input in appropriate PHP type ou false em caso de falha. If pos is -1 an array will be returned with one entry for each document found in the stream.

Notas

Aviso

Processing untrusted user input with yaml_parse_url() is dangerous if the use of unserialize() is enabled for nodes using the !php/object tag. This behavior can be disabled by using the yaml.decode_php ini setting.

Veja Também

  • yaml_parse() - Parse a YAML stream
  • yaml_parse_file() - Parse a YAML stream from a file
  • yaml_emit() - Returns the YAML representation of a value


Parse a YAML stream

  • « yaml_parse_url
  • Yaf »
  • PHP Manual
  • Yaml Funções
  • Parse a YAML stream

yaml_parse

(PECL yaml >= 0.4.0)

yaml_parse — Parse a YAML stream

Descrição

yaml_parse(
string $input,
int $pos = 0,
int &$ndocs = ?,
array $callbacks = null
): mixed

Convert all or part of a YAML document stream to a PHP variable.

Parâmetros

input

The string to parse as a YAML document stream.

pos

Document to extract from stream (-1 for all documents, 0 for first document, ...).

ndocs

If ndocs is provided, then it is filled with the number of documents found in stream.

callbacks

Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more details.

Valor Retornado

Returns the value encoded in input in appropriate PHP type ou false em caso de falha. If pos is -1 an array will be returned with one entry for each document found in the stream.

Exemplos

Exemplo #1 yaml_parse() example

<?php
$yaml = <<<EOD
---
invoice: 34843
date: "2001-01-23"
bill-to: &id001
given: Chris
family: Dumars
address:
lines: |-
458 Walkman Dr.
Suite #292
city: Royal Oak
state: MI
postal: 48046
ship-to: *id001
product:
- sku: BL394D
quantity: 4
description: Basketball
price: 450
- sku: BL4438H
quantity: 1
description: Super Hoop
price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
EOD;

$parsed = yaml_parse($yaml);
var_dump($parsed);
?>

O exemplo acima produzirá algo semelhante a:

array(8) {
  ["invoice"]=>
  int(34843)
  ["date"]=>
  string(10) "2001-01-23"
  ["bill-to"]=>
  &array(3) {
    ["given"]=>
    string(5) "Chris"
    ["family"]=>
    string(6) "Dumars"
    ["address"]=>
    array(4) {
      ["lines"]=>
      string(34) "458 Walkman Dr.
        Suite #292"
      ["city"]=>
      string(9) "Royal Oak"
      ["state"]=>
      string(2) "MI"
      ["postal"]=>
      int(48046)
    }
  }
  ["ship-to"]=>
  &array(3) {
    ["given"]=>
    string(5) "Chris"
    ["family"]=>
    string(6) "Dumars"
    ["address"]=>
    array(4) {
      ["lines"]=>
      string(34) "458 Walkman Dr.
        Suite #292"
      ["city"]=>
      string(9) "Royal Oak"
      ["state"]=>
      string(2) "MI"
      ["postal"]=>
      int(48046)
    }
  }
  ["product"]=>
  array(2) {
    [0]=>
    array(4) {
      ["sku"]=>
      string(6) "BL394D"
      ["quantity"]=>
      int(4)
      ["description"]=>
      string(10) "Basketball"
      ["price"]=>
      int(450)
    }
    [1]=>
    array(4) {
      ["sku"]=>
      string(7) "BL4438H"
      ["quantity"]=>
      int(1)
      ["description"]=>
      string(10) "Super Hoop"
      ["price"]=>
      int(2392)
    }
  }
  ["tax"]=>
  float(251.42)
  ["total"]=>
  float(4443.52)
  ["comments"]=>
  string(68) "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338."
}

Notas

Aviso

Processing untrusted user input with yaml_parse() is dangerous if the use of unserialize() is enabled for nodes using the !php/object tag. This behavior can be disabled by using the yaml.decode_php ini setting.

Veja Também

  • yaml_parse_file() - Parse a YAML stream from a file
  • yaml_parse_url() - Parse a Yaml stream from a URL
  • yaml_emit() - Returns the YAML representation of a value


Yet Another Framework

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Application Configuration
  • Yaf_Application — The Yaf_Application class
    • Yaf_Application::app — Retrieve an Application instance
    • Yaf_Application::bootstrap — Call bootstrap
    • Yaf_Application::clearLastError — Clear the last error info
    • Yaf_Application::__construct — Yaf_Application constructor
    • Yaf_Application::__destruct — The __destruct purpose
    • Yaf_Application::environ — Retrive environ
    • Yaf_Application::execute — Execute a callback
    • Yaf_Application::getAppDirectory — Get the application directory
    • Yaf_Application::getConfig — Retrive the config instance
    • Yaf_Application::getDispatcher — Get Yaf_Dispatcher instance
    • Yaf_Application::getLastErrorMsg — Get message of the last occurred error
    • Yaf_Application::getLastErrorNo — Get code of last occurred error
    • Yaf_Application::getModules — Get defined module names
    • Yaf_Application::run — Start Yaf_Application
    • Yaf_Application::setAppDirectory — Change the application directory
  • Yaf_Bootstrap_Abstract — The Yaf_Bootstrap_Abstract class
  • Yaf_Dispatcher — The Yaf_Dispatcher class
    • Yaf_Dispatcher::autoRender — Switch on/off autorendering
    • Yaf_Dispatcher::catchException — Switch on/off exception catching
    • Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor
    • Yaf_Dispatcher::disableView — Disable view rendering
    • Yaf_Dispatcher::dispatch — Dispatch a request
    • Yaf_Dispatcher::enableView — Enable view rendering
    • Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing
    • Yaf_Dispatcher::getApplication — Retrieve the application
    • Yaf_Dispatcher::getDefaultAction — Retrive the default action name
    • Yaf_Dispatcher::getDefaultController — Retrive the default controller name
    • Yaf_Dispatcher::getDefaultModule — Retrive the default module name
    • Yaf_Dispatcher::getInstance — Retrive the dispatcher instance
    • Yaf_Dispatcher::getRequest — Retrive the request instance
    • Yaf_Dispatcher::getRouter — Retrive router instance
    • Yaf_Dispatcher::initView — Initialize view and return it
    • Yaf_Dispatcher::registerPlugin — Register a plugin
    • Yaf_Dispatcher::returnResponse — The returnResponse purpose
    • Yaf_Dispatcher::setDefaultAction — Change default action name
    • Yaf_Dispatcher::setDefaultController — Change default controller name
    • Yaf_Dispatcher::setDefaultModule — Change default module name
    • Yaf_Dispatcher::setErrorHandler — Set error handler
    • Yaf_Dispatcher::setRequest — The setRequest purpose
    • Yaf_Dispatcher::setView — Set a custom view engine
    • Yaf_Dispatcher::throwException — Switch on/off exception throwing
  • Yaf_Config_Abstract — The Yaf_Config_Abstract class
    • Yaf_Config_Abstract::get — Getter
    • Yaf_Config_Abstract::readonly — Find a config whether readonly
    • Yaf_Config_Abstract::set — Setter
    • Yaf_Config_Abstract::toArray — Cast to array
  • Yaf_Config_Ini — The Yaf_Config_Ini class
    • Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor
    • Yaf_Config_Ini::count — Count all elements in Yaf_Config.ini
    • Yaf_Config_Ini::current — Retrieve the current value
    • Yaf_Config_Ini::__get — Retrieve a element
    • Yaf_Config_Ini::__isset — Determine if a key is exists
    • Yaf_Config_Ini::key — Fetch current element's key
    • Yaf_Config_Ini::next — Advance the internal pointer
    • Yaf_Config_Ini::offsetExists — The offsetExists purpose
    • Yaf_Config_Ini::offsetGet — The offsetGet purpose
    • Yaf_Config_Ini::offsetSet — The offsetSet purpose
    • Yaf_Config_Ini::offsetUnset — The offsetUnset purpose
    • Yaf_Config_Ini::readonly — The readonly purpose
    • Yaf_Config_Ini::rewind — The rewind purpose
    • Yaf_Config_Ini::__set — The __set purpose
    • Yaf_Config_Ini::toArray — Return config as a PHP array
    • Yaf_Config_Ini::valid — The valid purpose
  • Yaf_Config_Simple — The Yaf_Config_Simple class
    • Yaf_Config_Simple::__construct — The __construct purpose
    • Yaf_Config_Simple::count — The count purpose
    • Yaf_Config_Simple::current — The current purpose
    • Yaf_Config_Simple::__get — The __get purpose
    • Yaf_Config_Simple::__isset — The __isset purpose
    • Yaf_Config_Simple::key — The key purpose
    • Yaf_Config_Simple::next — The next purpose
    • Yaf_Config_Simple::offsetExists — The offsetExists purpose
    • Yaf_Config_Simple::offsetGet — The offsetGet purpose
    • Yaf_Config_Simple::offsetSet — The offsetSet purpose
    • Yaf_Config_Simple::offsetUnset — The offsetUnset purpose
    • Yaf_Config_Simple::readonly — The readonly purpose
    • Yaf_Config_Simple::rewind — The rewind purpose
    • Yaf_Config_Simple::__set — The __set purpose
    • Yaf_Config_Simple::toArray — Returns a PHP array
    • Yaf_Config_Simple::valid — The valid purpose
  • Yaf_Controller_Abstract — The Yaf_Controller_Abstract class
    • Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor
    • Yaf_Controller_Abstract::display — The display purpose
    • Yaf_Controller_Abstract::forward — Forward to another action
    • Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose
    • Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose
    • Yaf_Controller_Abstract::getModuleName — Get module name
    • Yaf_Controller_Abstract::getName — Get self name
    • Yaf_Controller_Abstract::getRequest — Retrieve current request object
    • Yaf_Controller_Abstract::getResponse — Retrieve current response object
    • Yaf_Controller_Abstract::getView — Retrieve the view engine
    • Yaf_Controller_Abstract::getViewpath — The getViewpath purpose
    • Yaf_Controller_Abstract::init — Controller initializer
    • Yaf_Controller_Abstract::initView — The initView purpose
    • Yaf_Controller_Abstract::redirect — Redirect to a URL
    • Yaf_Controller_Abstract::render — Render view template
    • Yaf_Controller_Abstract::setViewpath — The setViewpath purpose
  • Yaf_Action_Abstract — The Yaf_Action_Abstract class
    • Yaf_Action_Abstract::execute — Action entry point
    • Yaf_Action_Abstract::getController — Retrieve controller object
    • Yaf_Action_Abstract::getControllerName — Get controller name
  • Yaf_View_Interface — The Yaf_View_Interface class
    • Yaf_View_Interface::assign — Assign value to View engine
    • Yaf_View_Interface::display — Render and output a template
    • Yaf_View_Interface::getScriptPath — The getScriptPath purpose
    • Yaf_View_Interface::render — Render a template
    • Yaf_View_Interface::setScriptPath — The setScriptPath purpose
  • Yaf_View_Simple — The Yaf_View_Simple class
    • Yaf_View_Simple::assign — Assign values
    • Yaf_View_Simple::assignRef — The assignRef purpose
    • Yaf_View_Simple::clear — Clear Assigned values
    • Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple
    • Yaf_View_Simple::display — Render and display
    • Yaf_View_Simple::eval — Render template
    • Yaf_View_Simple::__get — Retrieve assigned variable
    • Yaf_View_Simple::getScriptPath — Get templates directory
    • Yaf_View_Simple::__isset — The __isset purpose
    • Yaf_View_Simple::render — Render template
    • Yaf_View_Simple::__set — Set value to engine
    • Yaf_View_Simple::setScriptPath — Set tempaltes directory
  • Yaf_Loader — The Yaf_Loader class
    • Yaf_Loader::autoload — The autoload purpose
    • Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose
    • Yaf_Loader::__construct — The __construct purpose
    • Yaf_Loader::getInstance — The getInstance purpose
    • Yaf_Loader::getLibraryPath — Get the library path
    • Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose
    • Yaf_Loader::getNamespacePath — Retieve path of a registered namespace
    • Yaf_Loader::getLocalNamespace — Retrive all register namespaces info
    • Yaf_Loader::import — The import purpose
    • Yaf_Loader::isLocalName — The isLocalName purpose
    • Yaf_Loader::registerLocalNamespace — Register local class prefix
    • Yaf_Loader::registerNamespace — Register namespace with searching path
    • Yaf_Loader::setLibraryPath — Change the library path
  • Yaf_Plugin_Abstract — The Yaf_Plugin_Abstract class
    • Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose
    • Yaf_Plugin_Abstract::dispatchLoopStartup — Hook before dispatch loop
    • Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose
    • Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose
    • Yaf_Plugin_Abstract::preResponse — The preResponse purpose
    • Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose
    • Yaf_Plugin_Abstract::routerStartup — RouterStartup hook
  • Yaf_Registry — The Yaf_Registry class
    • Yaf_Registry::__construct — Yaf_Registry implements singleton
    • Yaf_Registry::del — Remove an item from registry
    • Yaf_Registry::get — Retrieve an item from registry
    • Yaf_Registry::has — Check whether an item exists
    • Yaf_Registry::set — Add an item into registry
  • Yaf_Request_Abstract — The Yaf_Request_Abstract class
    • Yaf_Request_Abstract::clearParams — Remove all params
    • Yaf_Request_Abstract::getActionName — The getActionName purpose
    • Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose
    • Yaf_Request_Abstract::getControllerName — The getControllerName purpose
    • Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe
    • Yaf_Request_Abstract::getException — The getException purpose
    • Yaf_Request_Abstract::getLanguage — Retrieve client's preferred language
    • Yaf_Request_Abstract::getMethod — Retrieve the request method
    • Yaf_Request_Abstract::getModuleName — The getModuleName purpose
    • Yaf_Request_Abstract::getParam — Retrieve calling parameter
    • Yaf_Request_Abstract::getParams — Retrieve all calling parameters
    • Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose
    • Yaf_Request_Abstract::getServer — Retrieve SERVER variable
    • Yaf_Request_Abstract::isCli — Determine if request is CLI request
    • Yaf_Request_Abstract::isDispatched — Determin if the request is dispatched
    • Yaf_Request_Abstract::isGet — Determine if request is GET request
    • Yaf_Request_Abstract::isHead — Determine if request is HEAD request
    • Yaf_Request_Abstract::isOptions — Determine if request is OPTIONS request
    • Yaf_Request_Abstract::isPost — Determine if request is POST request
    • Yaf_Request_Abstract::isPut — Determine if request is PUT request
    • Yaf_Request_Abstract::isRouted — Determin if request has been routed
    • Yaf_Request_Abstract::isXmlHttpRequest — Determine if request is AJAX request
    • Yaf_Request_Abstract::setActionName — Set action name
    • Yaf_Request_Abstract::setBaseUri — Set base URI
    • Yaf_Request_Abstract::setControllerName — Set controller name
    • Yaf_Request_Abstract::setDispatched — The setDispatched purpose
    • Yaf_Request_Abstract::setModuleName — Set module name
    • Yaf_Request_Abstract::setParam — Set a calling parameter to a request
    • Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose
    • Yaf_Request_Abstract::setRouted — The setRouted purpose
  • Yaf_Request_Http — The Yaf_Request_Http class
    • Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http
    • Yaf_Request_Http::get — Retrieve variable from client
    • Yaf_Request_Http::getCookie — Retrieve Cookie variable
    • Yaf_Request_Http::getFiles — The getFiles purpose
    • Yaf_Request_Http::getPost — Retrieve POST variable
    • Yaf_Request_Http::getQuery — Fetch a query parameter
    • Yaf_Request_Http::getRaw — Retrieve Raw request body
    • Yaf_Request_Http::getRequest — The getRequest purpose
    • Yaf_Request_Http::isXmlHttpRequest — Determin if request is Ajax Request
  • Yaf_Request_Simple — The Yaf_Request_Simple class
    • Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple
    • Yaf_Request_Simple::get — The get purpose
    • Yaf_Request_Simple::getCookie — The getCookie purpose
    • Yaf_Request_Simple::getFiles — The getFiles purpose
    • Yaf_Request_Simple::getPost — The getPost purpose
    • Yaf_Request_Simple::getQuery — The getQuery purpose
    • Yaf_Request_Simple::getRequest — The getRequest purpose
    • Yaf_Request_Simple::isXmlHttpRequest — Determin if request is AJAX request
  • Yaf_Response_Abstract — The Yaf_Response_Abstract class
    • Yaf_Response_Abstract::appendBody — Append to response body
    • Yaf_Response_Abstract::clearBody — Discard all exists response body
    • Yaf_Response_Abstract::clearHeaders — Discard all set headers
    • Yaf_Response_Abstract::__construct — The __construct purpose
    • Yaf_Response_Abstract::__destruct — The __destruct purpose
    • Yaf_Response_Abstract::getBody — Retrieve a exists content
    • Yaf_Response_Abstract::getHeader — The getHeader purpose
    • Yaf_Response_Abstract::prependBody — The prependBody purpose
    • Yaf_Response_Abstract::response — Send response
    • Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose
    • Yaf_Response_Abstract::setBody — Set content to response
    • Yaf_Response_Abstract::setHeader — Set reponse header
    • Yaf_Response_Abstract::setRedirect — The setRedirect purpose
    • Yaf_Response_Abstract::__toString — Retrieve all bodys as string
  • Yaf_Route_Interface — The Yaf_Route_Interface class
    • Yaf_Route_Interface::assemble — Assemble a request
    • Yaf_Route_Interface::route — Route a request
  • Yaf_Route_Map — The Yaf_Route_Map class
    • Yaf_Route_Map::assemble — Assemble a url
    • Yaf_Route_Map::__construct — The __construct purpose
    • Yaf_Route_Map::route — The route purpose
  • Yaf_Route_Regex — The Yaf_Route_Regex class
    • Yaf_Route_Regex::assemble — Assemble a url
    • Yaf_Route_Regex::__construct — Yaf_Route_Regex constructor
    • Yaf_Route_Regex::route — The route purpose
  • Yaf_Route_Rewrite — The Yaf_Route_Rewrite class
    • Yaf_Route_Rewrite::assemble — Assemble a url
    • Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor
    • Yaf_Route_Rewrite::route — The route purpose
  • Yaf_Router — The Yaf_Router class
    • Yaf_Router::addConfig — Add config-defined routes into Router
    • Yaf_Router::addRoute — Add new Route into Router
    • Yaf_Router::__construct — Yaf_Router constructor
    • Yaf_Router::getCurrentRoute — Get the effective route name
    • Yaf_Router::getRoute — Retrieve a route by name
    • Yaf_Router::getRoutes — Retrieve registered routes
    • Yaf_Router::route — The route purpose
  • Yaf_Route_Simple — The Yaf_Route_Simple class
    • Yaf_Route_Simple::assemble — Assemble a url
    • Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor
    • Yaf_Route_Simple::route — Route a request
  • Yaf_Route_Static — The Yaf_Route_Static class
    • Yaf_Route_Static::assemble — Assemble a url
    • Yaf_Route_Static::match — The match purpose
    • Yaf_Route_Static::route — Route a request
  • Yaf_Route_Supervar — The Yaf_Route_Supervar class
    • Yaf_Route_Supervar::assemble — Assemble a url
    • Yaf_Route_Supervar::__construct — The __construct purpose
    • Yaf_Route_Supervar::route — The route purpose
  • Yaf_Session — The Yaf_Session class
    • Yaf_Session::__construct — Constructor of Yaf_Session
    • Yaf_Session::count — The count purpose
    • Yaf_Session::current — The current purpose
    • Yaf_Session::del — The del purpose
    • Yaf_Session::__get — The __get purpose
    • Yaf_Session::getInstance — The getInstance purpose
    • Yaf_Session::has — The has purpose
    • Yaf_Session::__isset — The __isset purpose
    • Yaf_Session::key — The key purpose
    • Yaf_Session::next — The next purpose
    • Yaf_Session::offsetExists — The offsetExists purpose
    • Yaf_Session::offsetGet — The offsetGet purpose
    • Yaf_Session::offsetSet — The offsetSet purpose
    • Yaf_Session::offsetUnset — The offsetUnset purpose
    • Yaf_Session::rewind — The rewind purpose
    • Yaf_Session::__set — The __set purpose
    • Yaf_Session::start — The start purpose
    • Yaf_Session::__unset — The __unset purpose
    • Yaf_Session::valid — The valid purpose
  • Yaf_Exception — The Yaf_Exception class
    • Yaf_Exception::__construct — The __construct purpose
    • Yaf_Exception::getPrevious — The getPrevious purpose
  • Yaf_Exception_TypeError — The Yaf_Exception_TypeError class
  • Yaf_Exception_StartupError — The Yaf_Exception_StartupError class
  • Yaf_Exception_DispatchFailed — The Yaf_Exception_DispatchFailed class
  • Yaf_Exception_RouterFailed — The Yaf_Exception_RouterFailed class
  • Yaf_Exception_LoadFailed — The Yaf_Exception_LoadFailed class
  • Yaf_Exception_LoadFailed_Module — The Yaf_Exception_LoadFailed_Module class
  • Yaf_Exception_LoadFailed_Controller — The Yaf_Exception_LoadFailed_Controller class
  • Yaf_Exception_LoadFailed_Action — The Yaf_Exception_LoadFailed_Action class
  • Yaf_Exception_LoadFailed_View — The Yaf_Exception_LoadFailed_View class


Introdução

The Yet Another Framework (Yaf) extension is a PHP framework that is used to develop web applications.

A simple Yaf benchmark can be found at » Yaf Performance.

For a quick start guide, please refer to the Tutorials section.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/yaf.

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Yaf Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
yaf.library |  | INI_ALL |
yaf.action_prefer | 0 | INI_ALL |
yaf.lowcase_path | 0 | INI_ALL |
yaf.use_spl_autoload | 0 | INI_ALL |
yaf.forward_limit | 5 | INI_ALL |
yaf.name_suffix | 1 | INI_ALL |
yaf.name_separator |  | INI_ALL |
yaf.cache_config | 0 | INI_SYSTEM |
yaf.environ | product | INI_SYSTEM |
yaf.use_namespace | 0 | INI_SYSTEM |

Aqui está uma breve explicação das diretivas de configuração.

yaf.library string

The global library path, Yaf_loader will search global library in this directory.

yaf.action_prefer int

If there is only one part in PATH_INFO, should it consider as a controller or action.

If this configure On, it will be considered as a Action name.

yaf.lowcase_path int

Whether lowercase all the path during the class autoloading.

yaf.use_spl_autoload int

When this value is On, if Yaf_Loader can not find a class, it will return false, then give chance to other auto load function to be called.

When this value is Off, if Yaf_Loader can not find a class, it will return true, and make the class autoloading failed immediately.

Nota:

Yaf will register its loader during a instantiation of Yaf_Application, so any other auto loaders which is register before the instantiation will be called before Yaf_Loader::autoload().

When this value is Off(default), Yaf_Loader::autoload() will always return true.

yaf.forward_limit int

The max forward count, default is 5. that means you can have a max value of 5 in the forward stack.

This is a protection for prevent recursive Yaf_Controller_Abstract::forward().

yaf.name_suffix int

When this On, Yaf_Loader will identify a class by it's suffix to decide whether it is a MVC Class.

When this Off, Yaf_Loader will look at the prefix of the class name.

yaf.name_separator string

When this is not empty, Yaf_Loader will identify the class suffix and string value of this.

For example, when this value is "_", Yaf_Loader will take Index_Controller as a Controller Class, IndexController as a normal class.

yaf.cache_config int

If this is On, and in the meantime you are using ini config file as the parameter of Yaf_Application(), the compiling result of the ini config file will be cached in the PHP process.

Nota:

Yaf examine the mtime of the ini file, if it was changed since last compiling, Yaf will reload it.

Aviso

Yaf use the ini file path as the cache entry key, so do use the absolute path in ini file path, otherwise there might be some conflicts if two application use the same relative path of ini config.

yaf.environ string

This value is "product" by default, used for Yaf to fetch the config section of a ini config file.

That is, if this value is "product", Yaf will use the section named "product" in the ini config file(the first parameter of the Yaf_Application) as the final config of the Yaf_Application.

yaf.use_namespace int

If this value is On, All classes of Yaf will named in namespace style.

For example:

Yaf_Route_Rewrite => \Yaf\Route\Rewrite
Yaf_Request_Http  => \Yaf\Request\Http
There is a exception, that is some classes like Yaf_Controller_Abstract. The last component is a keyword of PHP, could not be used as a class name, so for such classes:
Yaf_Controller_Abstract => \Yaf\Controller_Abstract
Yaf_Route_Static => \Yaf\Route_Static


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

YAF_VERSION (string)
YAF_ENVIRON (string)
YAF_ERR_STARTUP_FAILED (int)
YAF_ERR_ROUTE_FAILED (int)
YAF_ERR_DISPATCH_FAILED (int)
YAF_ERR_AUTOLOAD_FAILED (int)
YAF_ERR_NOTFOUND_MODULE (int)
YAF_ERR_NOTFOUND_CONTROLLER (int)
YAF_ERR_NOTFOUND_ACTION (int)
YAF_ERR_NOTFOUND_VIEW (int)
YAF_ERR_CALL_FAILED (int)
YAF_ERR_TYPE_ERROR (int)


Exemplos

Exemplo #1 A classic Application directory layout

- index.php
- .htaccess
+ conf
  |- application.ini //application config
- application/
  - Bootstrap.php
  + controllers
     - Index.php //default controller
  + views
     |+ index
        - index.phtml //view template for default action
  + modules
  - library
  - models
  - plugins

Exemplo #2 Entry

index.php in the top directory is the only way in of the application, you should rewrite all request to it. (You can use .htaccess in Apache + php_mod)

<?php
define("APPLICATION_PATH", dirname(__FILE__));

$app = new Yaf_Application(APPLICATION_PATH . "/conf/application.ini");
$app->bootstrap() //call bootstrap methods defined in Bootstrap.php
->run();
?>

Exemplo #3 Rewrite rule

#for apache (.htaccess)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php

#for nginx
server {
  listen ****;
  server_name  domain.com;
  root   document_root;
  index  index.php index.html index.htm;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php$1 last;
  }
}

#for lighttpd
$HTTP["host"] =~ "(www.)?domain.com$" {
  url.rewrite = (
     "^/(.+)/?$"  => "/index.php/$1",
  )
}

Exemplo #4 Application config

[yaf]
;APPLICATION_PATH is the constant defined in index.php
application.directory=APPLICATION_PATH "/application/"

;product section inherit from yaf section
[product:yaf]
foo=bar

Exemplo #5 Default controller

<?php
class IndexController extends Yaf_Controller_Abstract {
/* default action */
public function indexAction() {
$this->_view->word = "hello world";
//or
// $this->getView()->word = "hello world";
}
}
?>

Exemplo #6 Default view template

<html>
<head>
<title>Hello World</title>
</head>
<body>
<?php echo $word;?>
 </body>
</html>

Exemplo #7 Run the Application

O exemplo acima produzirá algo semelhante a:

<html>
 <head>
   <title>Hello World</title>
 </head>
 <body>
   hello world
 </body>
</html>

Nota:

you can also generate above example by use Yaf codes generator, which could be found here yaf@github.


Application Configuration

You should give an array of config or an ini config file(see Yaf_Config_Ini) path to Yaf_Application::__construct().

Yaf will merge the application configurations and user configurations automatically. The application configurations have prefix "yaf." or "application.". If both "yaf." and "application." exist, "application." will be accepted preferentially.

Exemplo #1 An PHP array example

<?php
$configs = array(
"application" => array(
"directory" => dirname(__FILE__),
"dispatcher" => array(
"catchException" => 0,
),
"view" => array(
"ext" => "phtml",
),
),
);
$app = new Yaf_Application($configs);
?>

Exemplo #2 An ini file example

[yaf]
yaf.directory = APPLICATION_PATH "/appliation"
yaf.dispatcher.catchException = 0

[product : yaf]
; user configuration list here

Yaf Application Config
Nome | Padrão | Registro de Alterações
application.directory |  |
application.ext | "php" |
application.view.ext | "phtml" |
application.modules | "index" |
application.library | application.directory . "/library" |
application.library.directory | application.directory . "/library" |
application.library.namespace | "" |
application.bootstrap | application.directory . "/Bootstrap" . application.ext |
application.baseUri | "" |
application.dispatcher.defaultRoute |  |
application.dispatcher.throwException | 1 |
application.dispatcher.catchException | 0 |
application.dispatcher.defaultModule | "index" |
application.dispatcher.defaultController | "index" |
application.dispatcher.defaultAction | "index" |
application.system |  |

Aqui está uma breve explicação das diretivas de configuração.

application.directory string

The directory of the application, that is the folder which contains the "controllers", "views", "models", "plugins" folders.

Nota:

This config entry is the only one which doesn't has a default value. You should always define it manually.

application.ext string

The file ext of the PHP script, used in class autoloading( Yaf_Loader).

application.view.ext string

The file ext of the view template scripts.

application.modules string

A comma-separated list of the registered modules, used in the route process, especially while there are more than three segments in the PATH_INFO,

Yaf need a way to find out whether the first segment is a module name or not.

application.library string

The local library directory, see Yaf_Loader and yaf.library.

Nota:

After Yaf 2.1.6, this config entry can be an array. The library path will try to use the items setted in application.library.directory

application.library.directory string

Alias of application.library. Introduced in Yaf 2.1.6

application.library.namespace string

A comma-separated prefix of local library namespace.

Introduced in Yaf 2.1.6

application.bootstrap string

A absolute path of the Bootstrap class script.

application.baseUri string

Used to remove a fixed prefix of request uri in route process. Take a example, comes a request with request uri "/prefix/controller/action". if you set application.baseUri to "/prefix", then only "/controller/action" will take as the PATH_INFO in route process.

In generally, there is no need to set this value.

application.dispatcher.throwException bool

If it set to On, Yaf will throw an exception while some error occurring. See also Yaf_Dispatcher::throwException().

application.dispatcher.catchException bool

If it set to On, Yaf will forward to Error controller/Action while there is an unhandled exception. See also Yaf_Dispatcher::catchException().

application.dispatcher.defaultRoute string

The default Route, if it is not specificed, Static route will be used as default. See: Yaf_Router::addRoute().

application.dispatcher.defaultModule string

The default module name, see also Yaf_Dispatcher::setDefaultModule().

application.dispatcher.defaultController string

The default controller name, see also Yaf_Dispatcher::setDefaultController().

application.dispatcher.defaultAction string

The default action name, see also Yaf_Dispatcher::setDefaultAction().

application.system string

Set yaf runtime configure in application.ini, like: application.system.lowcase_path

Nota:

only those INI_ALL configures can be set in this way


The Yaf_Application class

(Yaf >=1.0.0)

Introdução

Yaf_Application provides a bootstrapping facility for applications which provides reusable resources, common- and module-based bootstrap classes and dependency checking.

Nota:

Yaf_Application implements the singleton pattern, and Yaf_Application can not be serialized or unserialized which will cause problem when you try to use PHPUnit to write some test case for Yaf.

You may use @backupGlobals annotation of PHPUnit to control the backup and restore operations for global variables. thus can solve this problem.

Resumo da classe

final class Yaf_Application {
/* Propriedades */
protected $config;
protected $dispatcher;
protected static $_app;
protected $_modules;
protected $_running;
protected $_environ;
/* Métodos */
public __construct(mixed $config, string $envrion = ?)
public staticapp(): mixed
public bootstrap(Yaf_Bootstrap_Abstract $bootstrap = ?): void
public clearLastError(): Yaf_Application
public environ(): void
public execute(callable $entry, string ...$args): void
public getAppDirectory(): Yaf_Application
public getConfig(): Yaf_Config_Abstract
public getDispatcher(): Yaf_Dispatcher
public getLastErrorMsg(): string
public getLastErrorNo(): int
public getModules(): array
public run(): void
public setAppDirectory(string $directory): Yaf_Application
public __destruct()
}

Propriedades

config

dispatcher

_app

_modules

_running

_environ

Índice

  • Yaf_Application::app — Retrieve an Application instance
  • Yaf_Application::bootstrap — Call bootstrap
  • Yaf_Application::clearLastError — Clear the last error info
  • Yaf_Application::__construct — Yaf_Application constructor
  • Yaf_Application::__destruct — The __destruct purpose
  • Yaf_Application::environ — Retrive environ
  • Yaf_Application::execute — Execute a callback
  • Yaf_Application::getAppDirectory — Get the application directory
  • Yaf_Application::getConfig — Retrive the config instance
  • Yaf_Application::getDispatcher — Get Yaf_Dispatcher instance
  • Yaf_Application::getLastErrorMsg — Get message of the last occurred error
  • Yaf_Application::getLastErrorNo — Get code of last occurred error
  • Yaf_Application::getModules — Get defined module names
  • Yaf_Application::run — Start Yaf_Application
  • Yaf_Application::setAppDirectory — Change the application directory


Retrieve an Application instance

  • « Yaf_Application
  • Yaf_Application::bootstrap »
  • PHP Manual
  • Yaf_Application
  • Retrieve an Application instance

Yaf_Application::app

(Yaf >=1.0.0)

Yaf_Application::app — Retrieve an Application instance

Descrição

public staticYaf_Application::app(): mixed

Retrieve the Yaf_Application instance. Alternatively, we also could use Yaf_Dispatcher::getApplication().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Yaf_Application instance, if no Yaf_Application was initialized before, null will be returned.

Veja Também

  • Yaf_Dispatcher::getApplication() - Retrieve the application


Call bootstrap

  • « Yaf_Application::app
  • Yaf_Application::clearLastError »
  • PHP Manual
  • Yaf_Application
  • Call bootstrap

Yaf_Application::bootstrap

(Yaf >=1.0.0)

Yaf_Application::bootstrap — Call bootstrap

Descrição

public Yaf_Application::bootstrap(Yaf_Bootstrap_Abstract $bootstrap = ?): void

Run a Bootstrap, all the methods defined in the Bootstrap and named with prefix "_init" will be called according to their declaration order, if the parameter bootstrap is not supplied, Yaf will look for a Bootstrap under application.directory.

Parâmetros

bootstrap

A Yaf_Bootstrap_Abstract instance

Valor Retornado

Yaf_Application instance

Exemplos

Exemplo #1 A Bootstrap()example

<?php
/**
* This file should be under the APPLICATION_PATH . "/application/"(which was defined in the config passed to Yaf_Application).
* and named Bootstrap.php, so the Yaf_Application can find it
*/
class Bootstrap extends Yaf_Bootstrap_Abstract {
function _initConfig(Yaf_Dispatcher $dispatcher) {
echo "1st called\n";
}

function _initPlugin($dispatcher) {
echo "2nd called\n";
}
}
?>

Exemplo #2 Yaf_Application::bootstrap()example

<?php

defined('APPLICATION_PATH') // APPLICATION_PATH will be used in the ini config file
|| define('APPLICATION_PATH', __DIR__);

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap();
?>

O exemplo acima produzirá algo semelhante a:

1st called
2nd called

Veja Também

  • Yaf_Bootstrap_Abstract


Clear the last error info

  • « Yaf_Application::bootstrap
  • Yaf_Application::__construct »
  • PHP Manual
  • Yaf_Application
  • Clear the last error info

Yaf_Application::clearLastError

(Yaf >=2.1.2)

Yaf_Application::clearLastError — Clear the last error info

Descrição

public Yaf_Application::clearLastError(): Yaf_Application

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Yaf_Application::clearLastError()example

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
Yaf_Application::app()->clearLastError();
var_dump(Yaf_Application::app()->getLastErrorNo());
}

$config = array(
"application" => array(
"directory" => "/tmp/notexists",
"dispatcher" => array(
"throwException" => 0, //trigger error instead of throw exception when error occure
),
),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

O exemplo acima produzirá algo semelhante a:

int(0)


Yaf_Application constructor

  • « Yaf_Application::clearLastError
  • Yaf_Application::__destruct »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application constructor

Yaf_Application::__construct

(Yaf >=1.0.0)

Yaf_Application::__construct — Yaf_Application constructor

Descrição

public Yaf_Application::__construct(mixed $config, string $envrion = ?)

Instance a Yaf_Application.

Parâmetros

config

A ini config file path, or a config array

If is a ini config file, there should be a section named as the one defined by yaf.environ, which is "product" by default.

Nota:

If you use a ini configuration file as your applicatioin's config container. you would open the yaf.cache_config to improve performance.

And the config entry(and there default value) list blow:

Exemplo #1 A ini config file example

[product]
;this one should alway be defined, and have no default value
application.directory=APPLICATION_PATH

;following configs have default value, you may no need to define them
application.library = APPLICATION_PATH . "/library"
application.dispatcher.throwException=1
application.dispatcher.catchException=1

application.baseUri=""

;the php script ext name
ap.ext=php

;the view template ext name
ap.view.ext=phtml

ap.dispatcher.defaultModule=Index
ap.dispatcher.defaultController=Index
ap.dispatcher.defaultAction=index

;defined modules
ap.modules=Index

envrion

Which section will be loaded as the final config

Valor Retornado

Exemplos

Exemplo #2 Yaf_Application::__construct()example

<?php
defined('APPLICATION_PATH') // APPLICATION_PATH will be used in the ini config file
|| define('APPLICATION_PATH', __DIR__));

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap()->run();
?>

O exemplo acima produzirá algo semelhante a:

Exemplo #3 Yaf_Application::__construct()example

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
$application->bootstrap()->run();
?>

O exemplo acima produzirá
algo semelhante a:

Veja Também

  • Yaf_Config_Ini
    •


The __destruct purpose

  • « Yaf_Application::__construct
  • Yaf_Application::environ »
  • PHP Manual
  • Yaf_Application
  • The __destruct purpose

Yaf_Application::__destruct

(Yaf >=1.0.0)

Yaf_Application::__destruct — The __destruct purpose

Descrição

public Yaf_Application::__destruct()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrive environ

  • « Yaf_Application::__destruct
  • Yaf_Application::execute »
  • PHP Manual
  • Yaf_Application
  • Retrive environ

Yaf_Application::environ

(Yaf >=1.0.0)

Yaf_Application::environ — Retrive environ

Descrição

public Yaf_Application::environ(): void

Retrive environ which was defined in yaf.environ which has a default value "product".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Yaf_Application::environ()example

<?php
$config = array(
"application" => array(
"directory" => realpath(dirname(__FILE__)) . "/application",
),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->environ());
?>

O exemplo acima produzirá algo semelhante a:

product


Execute a callback

  • « Yaf_Application::environ
  • Yaf_Application::getAppDirectory »
  • PHP Manual
  • Yaf_Application
  • Execute a callback

Yaf_Application::execute

(Yaf >=1.0.0)

Yaf_Application::execute — Execute a callback

Descrição

public Yaf_Application::execute(callable $entry, string ...$args): void

This method is typically used to run Yaf_Application in a crontab work. Make the crontab work can also use the autoloader and Bootstrap mechanism.

Parâmetros

entry

a valid callback

args

parameters will pass to the callback

Valor Retornado

Exemplos

Exemplo #1 Yaf_Application::execute()example

<?php
function main($argc, $argv) {
}

$config = array(
"application" => array(
"directory" => realpath(dirname(__FILE__)) . "/application",
),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
$application->execute("main", $argc, $argv);
?>

O exemplo acima produzirá algo semelhante a:


Get the application directory

  • « Yaf_Application::execute
  • Yaf_Application::getConfig »
  • PHP Manual
  • Yaf_Application
  • Get the application directory

Yaf_Application::getAppDirectory

(Yaf >=2.1.4)

Yaf_Application::getAppDirectory — Get the application directory

Descrição

public Yaf_Application::getAppDirectory(): Yaf_Application

Parâmetros

directory

Valor Retornado


Retrive the config instance

  • « Yaf_Application::getAppDirectory
  • Yaf_Application::getDispatcher »
  • PHP Manual
  • Yaf_Application
  • Retrive the config instance

Yaf_Application::getConfig

(Yaf >=1.0.0)

Yaf_Application::getConfig — Retrive the config instance

Descrição

public Yaf_Application::getConfig(): Yaf_Config_Abstract

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A Yaf_Config_Abstract instance

Exemplos

Exemplo #1 Yaf_Application::getConfig()example

<?php
$config = array(
"application" => array(
"directory" => realpath(dirname(__FILE__)) . "/application",
),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getConfig());
?>

O exemplo acima produzirá algo semelhante a:

Yaf_Config_Simple Object
(
    [_config:protected] => Array
        (
            [application] => Array
                (
                    [directory] => /home/laruence/local/www/htdocs/application
                )

        )

    [_readonly:protected] => 1
)


Get Yaf_Dispatcher instance

  • « Yaf_Application::getConfig
  • Yaf_Application::getLastErrorMsg »
  • PHP Manual
  • Yaf_Application
  • Get Yaf_Dispatcher instance

Yaf_Application::getDispatcher

(Yaf >=1.0.0)

Yaf_Application::getDispatcher — Get Yaf_Dispatcher instance

Descrição

public Yaf_Application::getDispatcher(): Yaf_Dispatcher

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Yaf_Application::getDispatcher()example

<?php
$config = array(
"application" => array(
"directory" => realpath(dirname(__FILE__)) . "/application",
),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getDispatcher());
?>

O exemplo acima produzirá algo semelhante a:

Yaf_Dispatcher Object
(
    [_router:protected] => Yaf_Router Object
        (
            [_routes:protected] => Array
                (
                    [_default] => Yaf_Route_Static Object
                        (
                        )

                )

            [_current:protected] =>
        )

    [_view:protected] =>
    [_request:protected] => Yaf_Request_Http Object
        (
            [module] =>
            [controller] =>
            [action] =>
            [method] => Cli
            [params:protected] => Array
                (
                )

            [language:protected] =>
            [_exception:protected] =>
            [_base_uri:protected] =>
            [uri:protected] =>
            [dispatched:protected] =>
            [routed:protected] =>
        )

    [_plugins:protected] => Array
        (
        )

    [_auto_render:protected] => 1
    [_return_response:protected] =>
    [_instantly_flush:protected] =>
    [_default_module:protected] => Index
    [_default_controller:protected] => Index
    [_default_action:protected] => index
    [_response] => Yaf_Response_Cli Object
        (
            [_header:protected] => Array
                (
                )

            [_body:protected] =>
            [_sendheader:protected] =>
        )

)


Get message of the last occurred error

  • « Yaf_Application::getDispatcher
  • Yaf_Application::getLastErrorNo »
  • PHP Manual
  • Yaf_Application
  • Get message of the last occurred error

Yaf_Application::getLastErrorMsg

(Yaf >=2.1.2)

Yaf_Application::getLastErrorMsg — Get message of the last occurred error

Descrição

public Yaf_Application::getLastErrorMsg(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Yaf_Application::getLastErrorMsg()example

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
var_dump(Yaf_Application::app()->getLastErrorMsg());
}

$config = array(
"application" => array(
"directory" => "/tmp/notexists",
"dispatcher" => array(
"throwException" => 0, //trigger error instead of throw exception when error occure
),
),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

O exemplo acima produzirá algo semelhante a:

string(69) "Could not find controller script /tmp/notexists/controllers/Index.php"


Get code of last occurred error

  • « Yaf_Application::getLastErrorMsg
  • Yaf_Application::getModules »
  • PHP Manual
  • Yaf_Application
  • Get code of last occurred error

Yaf_Application::getLastErrorNo

(Yaf >=2.1.2)

Yaf_Application::getLastErrorNo — Get code of last occurred error

Descrição

public Yaf_Application::getLastErrorNo(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Yaf_Application::getLastErrorNo()example

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
var_dump(Yaf_Application::app()->getLastErrorNo());
var_dump(Yaf_Application::app()->getLastErrorNo() == YAF_ERR_NOTFOUND_CONTROLLER);
}

$config = array(
"application" => array(
"directory" => "/tmp/notexists",
"dispatcher" => array(
"throwException" => 0, //trigger error instead of throw exception when error occure
),
),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

O exemplo acima produzirá algo semelhante a:

int(516)
bool(true)


Get defined module names

  • « Yaf_Application::getLastErrorNo
  • Yaf_Application::run »
  • PHP Manual
  • Yaf_Application
  • Get defined module names

Yaf_Application::getModules

(Yaf >=1.0.0)

Yaf_Application::getModules — Get defined module names

Descrição

public Yaf_Application::getModules(): array

Get the modules list defined in config, if no one defined, there will always be a module named "Index".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Yaf_Application::getModules()example

<?php
$config = array(
"application" => array(
"directory" => realpath(dirname(__FILE__)) . "/application",
),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getModules());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Index
)


Start Yaf_Application

  • « Yaf_Application::getModules
  • Yaf_Application::setAppDirectory »
  • PHP Manual
  • Yaf_Application
  • Start Yaf_Application

Yaf_Application::run

(Yaf >=1.0.0)

Yaf_Application::run — Start Yaf_Application

Descrição

public Yaf_Application::run(): void

Run a Yaf_Application, let the Yaf_Application accept a request and route this request, dispatch to controller/action and render response. Finally, return the response to the client.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Change the application directory

  • « Yaf_Application::run
  • Yaf_Bootstrap_Abstract »
  • PHP Manual
  • Yaf_Application
  • Change the application directory

Yaf_Application::setAppDirectory

(Yaf >=2.1.4)

Yaf_Application::setAppDirectory — Change the application directory

Descrição

public Yaf_Application::setAppDirectory(string $directory): Yaf_Application

Parâmetros

directory

Valor Retornado


The Yaf_Bootstrap_Abstract class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

Bootstrap is a mechanism used to do some initial config before a Application run.

User may define their own Bootstrap class by inheriting Yaf_Bootstrap_Abstract

Any method declared in Bootstrap class with leading "_init", will be called by Yaf_Application::bootstrap() one by one according to their defined order.

Exemplos

Exemplo #1 Bootstrap example

<?php
/* bootstrap class should be defined under ./application/Bootstrap.php */
class Bootstrap extends Yaf_Bootstrap_Abstract {
public function _initConfig(Yaf_Dispatcher $dispatcher) {
var_dump(__METHOD__);
}
public function _initPlugin(Yaf_Dispatcher $dispatcher) {
var_dump(__METHOD__);
}
}

$config = array(
"application" => array(
"directory" => dirname(__FILE__) . "/application/",
),
);

$app = new Yaf_Application($config);
$app->bootstrap();
?>

O exemplo acima produzirá algo semelhante a:

string(22) "Bootstrap::_initConfig"
string(22) "Bootstrap::_initPlugin"

Resumo da classe

abstract class Yaf_Bootstrap_Abstract {
/* Propriedades */
/* Métodos */
}


The Yaf_Dispatcher class

(Yaf >=1.0.0)

Introdução

Yaf_Dispatcher purpose is to initialize the request environment, route the incoming request, and then dispatch any discovered actions; it aggregates any responses and returns them when the process is complete.

Yaf_Dispatcher also implements the Singleton pattern, meaning only a single instance of it may be available at any given time. This allows it to also act as a registry on which the other objects in the dispatch process may draw.

Resumo da classe

final class Yaf_Dispatcher {
/* Propriedades */
protected $_router;
protected $_view;
protected $_request;
protected $_plugins;
protected static $_instance;
protected $_auto_render;
protected $_return_response;
protected $_instantly_flush;
protected $_default_module;
protected $_default_controller;
protected $_default_action;
/* Métodos */
public __construct()
public autoRender(bool $flag = ?): Yaf_Dispatcher
public catchException(bool $flag = ?): Yaf_Dispatcher
public disableView(): bool
public dispatch(Yaf_Request_Abstract $request): Yaf_Response_Abstract
public enableView(): Yaf_Dispatcher
public flushInstantly(bool $flag = ?): Yaf_Dispatcher
public getApplication(): Yaf_Application
public getDefaultAction(): string
public getDefaultController(): string
public getDefaultModule(): string
public static getInstance(): Yaf_Dispatcher
public getRequest(): Yaf_Request_Abstract
public getRouter(): Yaf_Router
public initView(string $templates_dir, array $options = ?): Yaf_View_Interface
public registerPlugin(Yaf_Plugin_Abstract $plugin): Yaf_Dispatcher
public returnResponse(bool $flag): Yaf_Dispatcher
public setDefaultAction(string $action): Yaf_Dispatcher
public setDefaultController(string $controller): Yaf_Dispatcher
public setDefaultModule(string $module): Yaf_Dispatcher
public setErrorHandler(call $callback, int $error_types): Yaf_Dispatcher
public setRequest(Yaf_Request_Abstract $request): Yaf_Dispatcher
public setView(Yaf_View_Interface $view): Yaf_Dispatcher
public throwException(bool $flag = ?): Yaf_Dispatcher
}

Propriedades

_router

_view

_request

_plugins

_instance

_auto_render

_return_response

_instantly_flush

_default_module

_default_controller

_default_action

Índice

  • Yaf_Dispatcher::autoRender — Switch on/off autorendering
  • Yaf_Dispatcher::catchException — Switch on/off exception catching
  • Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor
  • Yaf_Dispatcher::disableView — Disable view rendering
  • Yaf_Dispatcher::dispatch — Dispatch a request
  • Yaf_Dispatcher::enableView — Enable view rendering
  • Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing
  • Yaf_Dispatcher::getApplication — Retrieve the application
  • Yaf_Dispatcher::getDefaultAction — Retrive the default action name
  • Yaf_Dispatcher::getDefaultController — Retrive the default controller name
  • Yaf_Dispatcher::getDefaultModule — Retrive the default module name
  • Yaf_Dispatcher::getInstance — Retrive the dispatcher instance
  • Yaf_Dispatcher::getRequest — Retrive the request instance
  • Yaf_Dispatcher::getRouter — Retrive router instance
  • Yaf_Dispatcher::initView — Initialize view and return it
  • Yaf_Dispatcher::registerPlugin — Register a plugin
  • Yaf_Dispatcher::returnResponse — The returnResponse purpose
  • Yaf_Dispatcher::setDefaultAction — Change default action name
  • Yaf_Dispatcher::setDefaultController — Change default controller name
  • Yaf_Dispatcher::setDefaultModule — Change default module name
  • Yaf_Dispatcher::setErrorHandler — Set error handler
  • Yaf_Dispatcher::setRequest — The setRequest purpose
  • Yaf_Dispatcher::setView — Set a custom view engine
  • Yaf_Dispatcher::throwException — Switch on/off exception throwing


Switch on/off autorendering

  • « Yaf_Dispatcher
  • Yaf_Dispatcher::catchException »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off autorendering

Yaf_Dispatcher::autoRender

(Yaf >=1.0.0)

Yaf_Dispatcher::autoRender — Switch on/off autorendering

Descrição

public Yaf_Dispatcher::autoRender(bool $flag = ?): Yaf_Dispatcher

Yaf_Dispatcher will render automatically after dispatches a incoming request, you can prevent the rendering by calling this method with flag true

Nota:

you can simply return false in a action to prevent the auto-rendering of that action

Parâmetros

flag

bool

Nota:

since 2.2.0, if this parameter is not given, then the current state will be returned

Valor Retornado

Exemplos

Exemplo #1 Yaf_Dispatcher::autoRender() example

<?php
class IndexController extends Yaf_Controller_Abstract {
/* init method will be called as soon as a controller is initialized */
public function init() {
if ($this->getRequest()->isXmlHttpRequest()) {
//do not call render for ajax request
//we will outpu a json string
Yaf_Dispatcher::getInstance()->autoRender(FALSE);
}
}

}
?>

O exemplo acima produzirá algo semelhante a:


Switch on/off exception catching

  • « Yaf_Dispatcher::autoRender
  • Yaf_Dispatcher::__construct »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off exception catching

Yaf_Dispatcher::catchException

(Yaf >=1.0.0)

Yaf_Dispatcher::catchException — Switch on/off exception catching

Descrição

public Yaf_Dispatcher::catchException(bool $flag = ?): Yaf_Dispatcher

While the application.dispatcher.throwException is On(you can also calling to Yaf_Dispatcher::throwException(TRUE)() to enable it), Yaf will throw Exception when error occurs instead of trigger error.

then if you enable Yaf_Dispatcher::catchException()(also can enabled by set application.dispatcher.catchException), all uncaught Exceptions will be caught by ErrorController::error if you have defined one.

Parâmetros

flag

bool

Valor Retornado

Exemplos

Exemplo #1 Yaf_Dispatcher::catchException() example

/* if you defined a ErrorController like following */
<?php
class ErrorController extends Yaf_Controller_Abstract {
/**
* you can also call to Yaf_Request_Abstract::getException to get the
* un-caught exception.
*/
public function errorAction($exception) {
/* error occurs */
switch ($exception->getCode()) {
case YAF_ERR_NOTFOUND_MODULE:
case YAF_ERR_NOTFOUND_CONTROLLER:
case YAF_ERR_NOTFOUND_ACTION:
case YAF_ERR_NOTFOUND_VIEW:
echo 404, ":", $exception->getMessage();
break;
default :
$message = $exception->getMessage();
echo 0, ":", $exception->getMessage();
break;
}
}
}
?>

O exemplo acima produzirá algo semelhante a:

/* now if some error occur, assuming access a non-exists controller(or you can throw a exception yourself): */
404:Could not find controller script **/application/controllers/No-exists-controller.php

Veja Também

  • Yaf_Dispatcher::throwException() - Switch on/off exception throwing
  • Yaf_Dispatcher::setErrorHandler() - Set error handler


Yaf_Dispatcher constructor

  • « Yaf_Dispatcher::catchException
  • Yaf_Dispatcher::disableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher constructor

Yaf_Dispatcher::__construct

(Yaf >=1.0.0)

Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor

Descrição

public Yaf_Dispatcher::__construct()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Disable view rendering

  • « Yaf_Dispatcher::__construct
  • Yaf_Dispatcher::dispatch »
  • PHP Manual
  • Yaf_Dispatcher
  • Disable view rendering

Yaf_Dispatcher::disableView

(Yaf >=1.0.0)

Yaf_Dispatcher::disableView — Disable view rendering

Descrição

public Yaf_Dispatcher::disableView(): bool

disable view engine, used in some app that user will output by theirself

Nota:

you can simply return false in a action to prevent the auto-rendering of that action

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Dispatch a request

  • « Yaf_Dispatcher::disableView
  • Yaf_Dispatcher::enableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Dispatch a request

Yaf_Dispatcher::dispatch

(Yaf >=1.0.0)

Yaf_Dispatcher::dispatch — Dispatch a request

Descrição

public Yaf_Dispatcher::dispatch(Yaf_Request_Abstract $request): Yaf_Response_Abstract

This method does the heavy work of the Yaf_Dispatcher. It take a request object.

The dispatch process has three distinct events:

  • Routing
  • Dispatching
  • Response
Routing takes place exactly once, using the values in the request object when Yaf_Dispatcher::dispatch() is called. Dispatching takes place in a loop; a request may either indicate multiple actions to dispatch, or the controller or a plugin may reset the request object to force additional actions to dispatch(see Yaf_Plugin_Abstract. When all is done, the Yaf_Dispatcher returns a response.

Parâmetros

request

Valor Retornado


Enable view rendering

  • « Yaf_Dispatcher::dispatch
  • Yaf_Dispatcher::flushInstantly »
  • PHP Manual
  • Yaf_Dispatcher
  • Enable view rendering

Yaf_Dispatcher::enableView

(Yaf >=1.0.0)

Yaf_Dispatcher::enableView — Enable view rendering

Descrição

public Yaf_Dispatcher::enableView(): Yaf_Dispatcher

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Switch on/off the instant flushing

  • « Yaf_Dispatcher::enableView
  • Yaf_Dispatcher::getApplication »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off the instant flushing

Yaf_Dispatcher::flushInstantly

(Yaf >=1.0.0)

Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing

Descrição

public Yaf_Dispatcher::flushInstantly(bool $flag = ?): Yaf_Dispatcher

Parâmetros

flag

bool

Nota:

since 2.2.0, if this parameter is not given, then the current state will be returned

Valor Retornado


Retrieve the application

  • « Yaf_Dispatcher::flushInstantly
  • Yaf_Dispatcher::getDefaultAction »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrieve the application

Yaf_Dispatcher::getApplication

(Yaf >=1.0.0)

Yaf_Dispatcher::getApplication — Retrieve the application

Descrição

public Yaf_Dispatcher::getApplication(): Yaf_Application

Retrieve the Yaf_Application instance. same as Yaf_Application::app().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • Yaf_Application::app() - Retrieve an Application instance


Retrive the default action name

  • « Yaf_Dispatcher::getApplication
  • Yaf_Dispatcher::getDefaultController »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the default action name

Yaf_Dispatcher::getDefaultAction

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultAction — Retrive the default action name

Descrição

public Yaf_Dispatcher::getDefaultAction(): string

get the default action name

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

string, default action name, default is "index"


Retrive the default controller name

  • « Yaf_Dispatcher::getDefaultAction
  • Yaf_Dispatcher::getDefaultModule »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the default controller name

Yaf_Dispatcher::getDefaultController

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultController — Retrive the default controller name

Descrição

public Yaf_Dispatcher::getDefaultController(): string

get the default controller name

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

string, default controller name, default is "Index"


Retrive the default module name

  • « Yaf_Dispatcher::getDefaultController
  • Yaf_Dispatcher::getInstance »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the default module name

Yaf_Dispatcher::getDefaultModule

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultModule — Retrive the default module name

Descrição

public Yaf_Dispatcher::getDefaultModule(): string

get the default module name

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

string, module name, default is "Index"


Retrive the dispatcher instance

  • « Yaf_Dispatcher::getDefaultModule
  • Yaf_Dispatcher::getRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the dispatcher instance

Yaf_Dispatcher::getInstance

(Yaf >=1.0.0)

Yaf_Dispatcher::getInstance — Retrive the dispatcher instance

Descrição

public static Yaf_Dispatcher::getInstance(): Yaf_Dispatcher

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrive the request instance

  • « Yaf_Dispatcher::getInstance
  • Yaf_Dispatcher::getRouter »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the request instance

Yaf_Dispatcher::getRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::getRequest — Retrive the request instance

Descrição

public Yaf_Dispatcher::getRequest(): Yaf_Request_Abstract

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrive router instance

  • « Yaf_Dispatcher::getRequest
  • Yaf_Dispatcher::initView »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive router instance

Yaf_Dispatcher::getRouter

(Yaf >=1.0.0)

Yaf_Dispatcher::getRouter — Retrive router instance

Descrição

public Yaf_Dispatcher::getRouter(): Yaf_Router

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Initialize view and return it

  • « Yaf_Dispatcher::getRouter
  • Yaf_Dispatcher::registerPlugin »
  • PHP Manual
  • Yaf_Dispatcher
  • Initialize view and return it

Yaf_Dispatcher::initView

(Yaf >=1.0.0)

Yaf_Dispatcher::initView — Initialize view and return it

Descrição

public Yaf_Dispatcher::initView(string $templates_dir, array $options = ?): Yaf_View_Interface

Parâmetros

templates_dir

options

Valor Retornado


Register a plugin

  • « Yaf_Dispatcher::initView
  • Yaf_Dispatcher::returnResponse »
  • PHP Manual
  • Yaf_Dispatcher
  • Register a plugin

Yaf_Dispatcher::registerPlugin

(Yaf >=1.0.0)

Yaf_Dispatcher::registerPlugin — Register a plugin

Descrição

public Yaf_Dispatcher::registerPlugin(Yaf_Plugin_Abstract $plugin): Yaf_Dispatcher

Register a plugin(see Yaf_Plugin_Abstract). Generally, we register plugins in Bootstrap(see Yaf_Bootstrap_Abstract).

Parâmetros

plugin

Valor Retornado

Exemplos

Exemplo #1 Yaf_Dispatcher::registerPlugin() example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {
public function _initPlugin(Yaf_Dispatcher $dispatcher) {
/**
* Yaf assumes plugin scripts under [application.directory] . "/plugins"
* for this case, it will be:
* [application.directory] . "/plugins/" . "User" . [application.ext]
*/
$user = new UserPlugin();
$dispatcher->registerPlugin($user);
}
}
?>

Veja Também

  • Yaf_Plugin_Abstract
  • Yaf_Bootstrap_Abstract


The returnResponse purpose

  • « Yaf_Dispatcher::registerPlugin
  • Yaf_Dispatcher::setDefaultAction »
  • PHP Manual
  • Yaf_Dispatcher
  • The returnResponse purpose

Yaf_Dispatcher::returnResponse

(Yaf >=1.0.0)

Yaf_Dispatcher::returnResponse — The returnResponse purpose

Descrição

public Yaf_Dispatcher::returnResponse(bool $flag): Yaf_Dispatcher

Parâmetros

flag

Valor Retornado


Change default action name

  • « Yaf_Dispatcher::returnResponse
  • Yaf_Dispatcher::setDefaultController »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default action name

Yaf_Dispatcher::setDefaultAction

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultAction — Change default action name

Descrição

public Yaf_Dispatcher::setDefaultAction(string $action): Yaf_Dispatcher

Parâmetros

action

Valor Retornado


Change default controller name

  • « Yaf_Dispatcher::setDefaultAction
  • Yaf_Dispatcher::setDefaultModule »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default controller name

Yaf_Dispatcher::setDefaultController

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultController — Change default controller name

Descrição

public Yaf_Dispatcher::setDefaultController(string $controller): Yaf_Dispatcher

Parâmetros

controller

Valor Retornado


Change default module name

  • « Yaf_Dispatcher::setDefaultController
  • Yaf_Dispatcher::setErrorHandler »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default module name

Yaf_Dispatcher::setDefaultModule

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultModule — Change default module name

Descrição

public Yaf_Dispatcher::setDefaultModule(string $module): Yaf_Dispatcher

Parâmetros

module

Valor Retornado


Set error handler

  • « Yaf_Dispatcher::setDefaultModule
  • Yaf_Dispatcher::setRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Set error handler

Yaf_Dispatcher::setErrorHandler

(Yaf >=1.0.0)

Yaf_Dispatcher::setErrorHandler — Set error handler

Descrição

public Yaf_Dispatcher::setErrorHandler(call $callback, int $error_types): Yaf_Dispatcher

Set error handler for Yaf. when application.dispatcher.throwException is off, Yaf will trigger catchable error while unexpected errors occurred.

Thus, this error handler will be called while the error raise.

Parâmetros

callback

A callable callback

error_types

Valor Retornado

Veja Também

  • Yaf_Dispatcher::throwException() - Switch on/off exception throwing
  • Yaf_Application::getLastErrorNo() - Get code of last occurred error
  • Yaf_Application::getLastErrorMsg() - Get message of the last occurred error


The setRequest purpose

  • « Yaf_Dispatcher::setErrorHandler
  • Yaf_Dispatcher::setView »
  • PHP Manual
  • Yaf_Dispatcher
  • The setRequest purpose

Yaf_Dispatcher::setRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::setRequest — The setRequest purpose

Descrição

public Yaf_Dispatcher::setRequest(Yaf_Request_Abstract $request): Yaf_Dispatcher

Parâmetros

plugin

Valor Retornado


Set a custom view engine

  • « Yaf_Dispatcher::setRequest
  • Yaf_Dispatcher::throwException »
  • PHP Manual
  • Yaf_Dispatcher
  • Set a custom view engine

Yaf_Dispatcher::setView

(Yaf >=1.0.0)

Yaf_Dispatcher::setView — Set a custom view engine

Descrição

public Yaf_Dispatcher::setView(Yaf_View_Interface $view): Yaf_Dispatcher

This method provides a solution if you want use a custom view engine instead of Yaf_View_Simple

Parâmetros

view

A Yaf_View_Interface instance

Valor Retornado

Exemplos

Exemplo #1 A custom View engine() example

<?php
require "/path/to/smarty/Smarty.class.php";

class Smarty_Adapter implements Yaf_View_Interface
{
/**
* Smarty object
* @var Smarty
*/
public $_smarty;

/**
* Constructor
*
* @param string $tmplPath
* @param array $extraParams
* @return void
*/
public function __construct($tmplPath = null, $extraParams = array()) {
$this->_smarty = new Smarty;

if (null !== $tmplPath) {
$this->setScriptPath($tmplPath);
}

foreach ($extraParams as $key => $value) {
$this->_smarty->$key = $value;
}
}

/**
* Set the path to the templates
*
* @param string $path The directory to set as the path.
* @return void
*/
public function setScriptPath($path)
{
if (is_readable($path)) {
$this->_smarty->template_dir = $path;
return;
}

throw new Exception('Invalid path provided');
}

/**
* Assign a variable to the template
*
* @param string $key The variable name.
* @param mixed $val The variable value.
* @return void
*/
public function __set($key, $val)
{
$this->_smarty->assign($key, $val);
}

/**
* Allows testing with empty() and isset() to work
*
* @param string $key
* @return boolean
*/
public function __isset($key)
{
return (null !== $this->_smarty->get_template_vars($key));
}

/**
* Allows unset() on object properties to work
*
* @param string $key
* @return void
*/
public function __unset($key)
{
$this->_smarty->clear_assign($key);
}

/**
* Assign variables to the template
*
* Allows setting a specific key to the specified value, OR passing
* an array of key => value pairs to set en masse.
*
* @see __set()
* @param string|array $spec The assignment strategy to use (key or
* array of key => value pairs)
* @param mixed $value (Optional) If assigning a named variable,
* use this as the value.
* @return void
*/
public function assign($spec, $value = null) {
if (is_array($spec)) {
$this->_smarty->assign($spec);
return;
}

$this->_smarty->assign($spec, $value);
}

/**
* Clear all assigned variables
*
* Clears all variables assigned to Yaf_View either via
* {@link assign()} or property overloading
* ({@link __get()}/{@link __set()}).
*
* @return void
*/
public function clearVars() {
$this->_smarty->clear_all_assign();
}

/**
* Processes a template and returns the output.
*
* @param string $name The template to process.
* @return string The output.
*/
public function render($name, $value = NULL) {
return $this->_smarty->fetch($name);
}

public function display($name, $value = NULL) {
echo $this->_smarty->fetch($name);
}

}
?>

Exemplo #2 Yaf_Dispatcher::setView() example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {

/**
* there are some config for smarty in the config:
*
* smarty.left_delimiter = "{{"
* smarty.right_delimiter = "}}"
* smarty.template_dir = APPLICATION_PATH "/views/scripts/"
* smarty.compile_dir = APPLICATION_PATH "/views/templates_c/"
* smarty.cache_dir = APPLICATION_PATH "/views/templates_d/"
*
*/
public function _initConfig() {
$config = Yaf_Application::app()->getConfig();
Yaf_Registry::set("config", $config);
}

public function _initLocalName() {
/** we put class Smarty_Adapter under the local library directory */
Yaf_Loader::getInstance()->registerLocalNamespace('Smarty');
}

public function _initSmarty(Yaf_Dispatcher $dispatcher) {
$smarty = new Smarty_Adapter(null, Yaf_Registry::get("config")->get("smarty"));
$dispatcher->setView($smarty);
/* now the Smarty view engine become the default view engine of Yaf */
}
}
?>

Veja Também

  • Yaf_View_Interface
  • Yaf_View_Simple


Switch on/off exception throwing

  • « Yaf_Dispatcher::setView
  • Yaf_Config_Abstract »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off exception throwing

Yaf_Dispatcher::throwException

(Yaf >=1.0.0)

Yaf_Dispatcher::throwException — Switch on/off exception throwing

Descrição

public Yaf_Dispatcher::throwException(bool $flag = ?): Yaf_Dispatcher

Switch on/off exception throwing while unexpected error occurring. When this is on, Yaf will throwing exceptions instead of triggering catchable errors.

You can also use application.dispatcher.throwException to achieve the same purpose.

Parâmetros

flag

bool

Valor Retornado

Exemplos

Exemplo #1 Yaf_Dispatcher::throwexception() example

<?php

$config = array(
'application' => array(
'directory' => dirname(__FILE__),
),
);
$app = new Yaf_Application($config);

$app->getDispatcher()->throwException(true);

try {
$app->run();
} catch (Yaf_Exception $e) {
var_dump($e->getMessage());
}
?>

O exemplo acima produzirá algo semelhante a:

string(59) "Could not find controller script /tmp/controllers/Index.php"

Exemplo #2 Yaf_Dispatcher::throwexception()example

<?php

$config = array(
'application' => array(
'directory' => dirname(__FILE__),
),
);
$app = new Yaf_Application($config);

$app->getDispatcher()->throwException(false);

$app->run();
?>

O exemplo acima produzirá algo semelhante a:

PHP Catchable fatal error:  Yaf_Application::run(): Could not find controller script /tmp/controllers/Index.php in /tmp/1.php on line 12

Veja Também

  • Yaf_Dispatcher::catchException() - Switch on/off exception catching
  • Yaf_Exception


The Yaf_Config_Abstract class

(Yaf >=1.0.0)

Introdução

Resumo da classe

abstract class Yaf_Config_Abstract {
/* Propriedades */
protected $_config;
protected $_readonly;
/* Métodos */
abstract public get(string $name, mixed $value): mixed
abstract public readonly(): bool
abstract public set(): Yaf_Config_Abstract
abstract public toArray(): array
}

Propriedades

_config

_readonly

Índice

  • Yaf_Config_Abstract::get — Getter
  • Yaf_Config_Abstract::readonly — Find a config whether readonly
  • Yaf_Config_Abstract::set — Setter
  • Yaf_Config_Abstract::toArray — Cast to array


Getter

  • « Yaf_Config_Abstract
  • Yaf_Config_Abstract::readonly »
  • PHP Manual
  • Yaf_Config_Abstract
  • Getter

Yaf_Config_Abstract::get

(Yaf >=1.0.0)

Yaf_Config_Abstract::get — Getter

Descrição

abstract public Yaf_Config_Abstract::get(string $name, mixed $value): mixed

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Find a config whether readonly

  • « Yaf_Config_Abstract::get
  • Yaf_Config_Abstract::set »
  • PHP Manual
  • Yaf_Config_Abstract
  • Find a config whether readonly

Yaf_Config_Abstract::readonly

(Yaf >=1.0.0)

Yaf_Config_Abstract::readonly — Find a config whether readonly

Descrição

abstract public Yaf_Config_Abstract::readonly(): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Setter

  • « Yaf_Config_Abstract::readonly
  • Yaf_Config_Abstract::toArray »
  • PHP Manual
  • Yaf_Config_Abstract
  • Setter

Yaf_Config_Abstract::set

(Yaf >=1.0.0)

Yaf_Config_Abstract::set — Setter

Descrição

abstract public Yaf_Config_Abstract::set(): Yaf_Config_Abstract

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Cast to array

  • « Yaf_Config_Abstract::set
  • Yaf_Config_Ini »
  • PHP Manual
  • Yaf_Config_Abstract
  • Cast to array

Yaf_Config_Abstract::toArray

(Yaf >=1.0.0)

Yaf_Config_Abstract::toArray — Cast to array

Descrição

abstract public Yaf_Config_Abstract::toArray(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The Yaf_Config_Ini class

(Yaf >=1.0.0)

Introdução

Yaf_Config_Ini enables developers to store configuration data in a familiar INI format and read them in the application by using nested object property syntax. The INI format is specialized to provide both the ability to have a hierarchy of configuration data keys and inheritance between configuration data sections. Configuration data hierarchies are supported by separating the keys with the dot or period character ("."). A section may extend or inherit from another section by following the section name with a colon character (":") and the name of the section from which data are to be inherited.

Nota:

Yaf_Config_Ini utilizes the » parse_ini_file() PHP function. Please review this documentation to be aware of its specific behaviors, which propagate to Yaf_Config_Ini, such as how the special values of "true", "false", "yes", "no", and "null" are handled.

Resumo da classe

class Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* Propriedades */
/* Métodos */
public __construct(string $config_file, string $section = ?)
public count(): void
public current(): void
public __get(string $name = ?): void
public __isset(string $name): void
public key(): void
public next(): void
public offsetExists(string $name): void
public offsetGet(string $name): void
public offsetSet(string $name, string $value): void
public offsetUnset(string $name): void
public readonly(): void
public rewind(): void
public __set(string $name, mixed $value): void
public toArray(): array
public valid(): void
/* Métodos herdados */
abstract public Yaf_Config_Abstract::get(string $name, mixed $value): mixed
abstract public Yaf_Config_Abstract::readonly(): bool
abstract public Yaf_Config_Abstract::set(): Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray(): array
}

Propriedades

_config

_readonly

Exemplos

Exemplo #1 Yaf_Config_Ini()example

This example illustrates a basic use of Yaf_Config_Ini for loading configuration data from an INI file. In this example there are configuration data for both a production system and for a staging system. Because the staging system configuration data are very similar to those for production, the staging section inherits from the production section. In this case, the decision is arbitrary and could have been written conversely, with the production section inheriting from the staging section, though this may not be the case for more complex situations. Suppose, then, that the following configuration data are contained in /path/to/config.ini:

; Production site configuration data
[production]
webhost                  = www.example.com
database.adapter         = pdo_mysql
database.params.host     = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname   = dbname

; Staging site configuration data inherits from production and
; overrides values as necessary
[staging : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret
<?php
$config = new Yaf_Config_Ini('/path/to/config.ini', 'staging');

var_dump($config->database->params->host);
var_dump($config->database->params->dbname);
var_dump($config->get("database.params.username"));
?>

O exemplo acima produzirá algo semelhante a:

string(15) "dev.example.com"
string(6) "dbname"
string(7) "devuser

Índice

  • Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor
  • Yaf_Config_Ini::count — Count all elements in Yaf_Config.ini
  • Yaf_Config_Ini::current — Retrieve the current value
  • Yaf_Config_Ini::__get — Retrieve a element
  • Yaf_Config_Ini::__isset — Determine if a key is exists
  • Yaf_Config_Ini::key — Fetch current element's key
  • Yaf_Config_Ini::next — Advance the internal pointer
  • Yaf_Config_Ini::offsetExists — The offsetExists purpose
  • Yaf_Config_Ini::offsetGet — The offsetGet purpose
  • Yaf_Config_Ini::offsetSet — The offsetSet purpose
  • Yaf_Config_Ini::offsetUnset — The offsetUnset purpose
  • Yaf_Config_Ini::readonly — The readonly purpose
  • Yaf_Config_Ini::rewind — The rewind purpose
  • Yaf_Config_Ini::__set — The __set purpose
  • Yaf_Config_Ini::toArray — Return config as a PHP array
  • Yaf_Config_Ini::valid — The valid purpose


Yaf_Config_Ini constructor

  • « Yaf_Config_Ini
  • Yaf_Config_Ini::count »
  • PHP Manual
  • Yaf_Config_Ini
  • Yaf_Config_Ini constructor

Yaf_Config_Ini::__construct

(Yaf >=1.0.0)

Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor

Descrição

public Yaf_Config_Ini::__construct(string $config_file, string $section = ?)

Yaf_Config_Ini constructor

Parâmetros

config_file

path to an INI configure file

section

which section in that INI file you want to be parsed

Valor Retornado


Count all elements in Yaf_Config.ini

  • « Yaf_Config_Ini::__construct
  • Yaf_Config_Ini::current »
  • PHP Manual
  • Yaf_Config_Ini
  • Count all elements in Yaf_Config.ini

Yaf_Config_Ini::count

(Yaf >=1.0.0)

Yaf_Config_Ini::count — Count all elements in Yaf_Config.ini

Descrição

public Yaf_Config_Ini::count(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrieve the current value

  • « Yaf_Config_Ini::count
  • Yaf_Config_Ini::__get »
  • PHP Manual
  • Yaf_Config_Ini
  • Retrieve the current value

Yaf_Config_Ini::current

(Yaf >=1.0.0)

Yaf_Config_Ini::current — Retrieve the current value

Descrição

public Yaf_Config_Ini::current(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrieve a element

  • « Yaf_Config_Ini::current
  • Yaf_Config_Ini::__isset »
  • PHP Manual
  • Yaf_Config_Ini
  • Retrieve a element

Yaf_Config_Ini::__get

(Yaf >=1.0.0)

Yaf_Config_Ini::__get — Retrieve a element

Descrição

public Yaf_Config_Ini::__get(string $name = ?): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


Determine if a key is exists

  • « Yaf_Config_Ini::__get
  • Yaf_Config_Ini::key »
  • PHP Manual
  • Yaf_Config_Ini
  • Determine if a key is exists

Yaf_Config_Ini::__isset

(Yaf >=1.0.0)

Yaf_Config_Ini::__isset — Determine if a key is exists

Descrição

public Yaf_Config_Ini::__isset(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


Fetch current element's key

  • « Yaf_Config_Ini::__isset
  • Yaf_Config_Ini::next »
  • PHP Manual
  • Yaf_Config_Ini
  • Fetch current element's key

Yaf_Config_Ini::key

(Yaf >=1.0.0)

Yaf_Config_Ini::key — Fetch current element's key

Descrição

public Yaf_Config_Ini::key(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Advance the internal pointer

  • « Yaf_Config_Ini::key
  • Yaf_Config_Ini::offsetExists »
  • PHP Manual
  • Yaf_Config_Ini
  • Advance the internal pointer

Yaf_Config_Ini::next

(Yaf >=1.0.0)

Yaf_Config_Ini::next — Advance the internal pointer

Descrição

public Yaf_Config_Ini::next(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The offsetExists purpose

  • « Yaf_Config_Ini::next
  • Yaf_Config_Ini::offsetGet »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetExists purpose

Yaf_Config_Ini::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetExists — The offsetExists purpose

Descrição

public Yaf_Config_Ini::offsetExists(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The offsetGet purpose

  • « Yaf_Config_Ini::offsetExists
  • Yaf_Config_Ini::offsetSet »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetGet purpose

Yaf_Config_Ini::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetGet — The offsetGet purpose

Descrição

public Yaf_Config_Ini::offsetGet(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The offsetSet purpose

  • « Yaf_Config_Ini::offsetGet
  • Yaf_Config_Ini::offsetUnset »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetSet purpose

Yaf_Config_Ini::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetSet — The offsetSet purpose

Descrição

public Yaf_Config_Ini::offsetSet(string $name, string $value): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

value

Valor Retornado


The offsetUnset purpose

  • « Yaf_Config_Ini::offsetSet
  • Yaf_Config_Ini::readonly »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetUnset purpose

Yaf_Config_Ini::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetUnset — The offsetUnset purpose

Descrição

public Yaf_Config_Ini::offsetUnset(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The readonly purpose

  • « Yaf_Config_Ini::offsetUnset
  • Yaf_Config_Ini::rewind »
  • PHP Manual
  • Yaf_Config_Ini
  • The readonly purpose

Yaf_Config_Ini::readonly

(Yaf >=1.0.0)

Yaf_Config_Ini::readonly — The readonly purpose

Descrição

public Yaf_Config_Ini::readonly(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The rewind purpose

  • « Yaf_Config_Ini::readonly
  • Yaf_Config_Ini::__set »
  • PHP Manual
  • Yaf_Config_Ini
  • The rewind purpose

Yaf_Config_Ini::rewind

(Yaf >=1.0.0)

Yaf_Config_Ini::rewind — The rewind purpose

Descrição

public Yaf_Config_Ini::rewind(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The __set purpose

  • « Yaf_Config_Ini::rewind
  • Yaf_Config_Ini::toArray »
  • PHP Manual
  • Yaf_Config_Ini
  • The __set purpose

Yaf_Config_Ini::__set

(Yaf >=1.0.0)

Yaf_Config_Ini::__set — The __set purpose

Descrição

public Yaf_Config_Ini::__set(string $name, mixed $value): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

value

Valor Retornado


Return config as a PHP array

  • « Yaf_Config_Ini::__set
  • Yaf_Config_Ini::valid »
  • PHP Manual
  • Yaf_Config_Ini
  • Return config as a PHP array

Yaf_Config_Ini::toArray

(Yaf >=1.0.0)

Yaf_Config_Ini::toArray — Return config as a PHP array

Descrição

public Yaf_Config_Ini::toArray(): array

Returns a PHP array from the Yaf_Config_Ini

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The valid purpose

  • « Yaf_Config_Ini::toArray
  • Yaf_Config_Simple »
  • PHP Manual
  • Yaf_Config_Ini
  • The valid purpose

Yaf_Config_Ini::valid

(Yaf >=1.0.0)

Yaf_Config_Ini::valid — The valid purpose

Descrição

public Yaf_Config_Ini::valid(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The Yaf_Config_Simple class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Config_Simple extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* Propriedades */
protected $_readonly;
/* Métodos */
public __construct(array $configs, bool $readonly = false)
public count(): void
public current(): void
public __get(string $name = ?): void
public __isset(string $name): void
public key(): void
public next(): void
public offsetExists(string $name): void
public offsetGet(string $name): void
public offsetSet(string $name, string $value): void
public offsetUnset(string $name): void
public readonly(): void
public rewind(): void
public __set(string $name, string $value): void
public toArray(): array
public valid(): void
/* Métodos herdados */
abstract public Yaf_Config_Abstract::get(string $name, mixed $value): mixed
abstract public Yaf_Config_Abstract::readonly(): bool
abstract public Yaf_Config_Abstract::set(): Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray(): array
}

Propriedades

_config

_readonly

Índice

  • Yaf_Config_Simple::__construct — The __construct purpose
  • Yaf_Config_Simple::count — The count purpose
  • Yaf_Config_Simple::current — The current purpose
  • Yaf_Config_Simple::__get — The __get purpose
  • Yaf_Config_Simple::__isset — The __isset purpose
  • Yaf_Config_Simple::key — The key purpose
  • Yaf_Config_Simple::next — The next purpose
  • Yaf_Config_Simple::offsetExists — The offsetExists purpose
  • Yaf_Config_Simple::offsetGet — The offsetGet purpose
  • Yaf_Config_Simple::offsetSet — The offsetSet purpose
  • Yaf_Config_Simple::offsetUnset — The offsetUnset purpose
  • Yaf_Config_Simple::readonly — The readonly purpose
  • Yaf_Config_Simple::rewind — The rewind purpose
  • Yaf_Config_Simple::__set — The __set purpose
  • Yaf_Config_Simple::toArray — Returns a PHP array
  • Yaf_Config_Simple::valid — The valid purpose


The __construct purpose

  • « Yaf_Config_Simple
  • Yaf_Config_Simple::count »
  • PHP Manual
  • Yaf_Config_Simple
  • The __construct purpose

Yaf_Config_Simple::__construct

(Yaf >=1.0.0)

Yaf_Config_Simple::__construct — The __construct purpose

Descrição

public Yaf_Config_Simple::__construct(array $configs, bool $readonly = false)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

configs

readonly

Valor Retornado


The count purpose

  • « Yaf_Config_Simple::__construct
  • Yaf_Config_Simple::current »
  • PHP Manual
  • Yaf_Config_Simple
  • The count purpose

Yaf_Config_Simple::count

(Yaf >=1.0.0)

Yaf_Config_Simple::count — The count purpose

Descrição

public Yaf_Config_Simple::count(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The current purpose

  • « Yaf_Config_Simple::count
  • Yaf_Config_Simple::__get »
  • PHP Manual
  • Yaf_Config_Simple
  • The current purpose

Yaf_Config_Simple::current

(Yaf >=1.0.0)

Yaf_Config_Simple::current — The current purpose

Descrição

public Yaf_Config_Simple::current(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The __get purpose

  • « Yaf_Config_Simple::current
  • Yaf_Config_Simple::__isset »
  • PHP Manual
  • Yaf_Config_Simple
  • The __get purpose

Yaf_Config_Simple::__get

(Yaf >=1.0.0)

Yaf_Config_Simple::__get — The __get purpose

Descrição

public Yaf_Config_Simple::__get(string $name = ?): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The __isset purpose

  • « Yaf_Config_Simple::__get
  • Yaf_Config_Simple::key »
  • PHP Manual
  • Yaf_Config_Simple
  • The __isset purpose

Yaf_Config_Simple::__isset

(Yaf >=1.0.0)

Yaf_Config_Simple::__isset — The __isset purpose

Descrição

public Yaf_Config_Simple::__isset(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The key purpose

  • « Yaf_Config_Simple::__isset
  • Yaf_Config_Simple::next »
  • PHP Manual
  • Yaf_Config_Simple
  • The key purpose

Yaf_Config_Simple::key

(Yaf >=1.0.0)

Yaf_Config_Simple::key — The key purpose

Descrição

public Yaf_Config_Simple::key(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The next purpose

  • « Yaf_Config_Simple::key
  • Yaf_Config_Simple::offsetExists »
  • PHP Manual
  • Yaf_Config_Simple
  • The next purpose

Yaf_Config_Simple::next

(Yaf >=1.0.0)

Yaf_Config_Simple::next — The next purpose

Descrição

public Yaf_Config_Simple::next(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The offsetExists purpose

  • « Yaf_Config_Simple::next
  • Yaf_Config_Simple::offsetGet »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetExists purpose

Yaf_Config_Simple::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetExists — The offsetExists purpose

Descrição

public Yaf_Config_Simple::offsetExists(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The offsetGet purpose

  • « Yaf_Config_Simple::offsetExists
  • Yaf_Config_Simple::offsetSet »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetGet purpose

Yaf_Config_Simple::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetGet — The offsetGet purpose

Descrição

public Yaf_Config_Simple::offsetGet(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The offsetSet purpose

  • « Yaf_Config_Simple::offsetGet
  • Yaf_Config_Simple::offsetUnset »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetSet purpose

Yaf_Config_Simple::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetSet — The offsetSet purpose

Descrição

public Yaf_Config_Simple::offsetSet(string $name, string $value): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

value

Valor Retornado


The offsetUnset purpose

  • « Yaf_Config_Simple::offsetSet
  • Yaf_Config_Simple::readonly »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetUnset purpose

Yaf_Config_Simple::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetUnset — The offsetUnset purpose

Descrição

public Yaf_Config_Simple::offsetUnset(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The readonly purpose

  • « Yaf_Config_Simple::offsetUnset
  • Yaf_Config_Simple::rewind »
  • PHP Manual
  • Yaf_Config_Simple
  • The readonly purpose

Yaf_Config_Simple::readonly

(Yaf >=1.0.0)

Yaf_Config_Simple::readonly — The readonly purpose

Descrição

public Yaf_Config_Simple::readonly(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The rewind purpose

  • « Yaf_Config_Simple::readonly
  • Yaf_Config_Simple::__set »
  • PHP Manual
  • Yaf_Config_Simple
  • The rewind purpose

Yaf_Config_Simple::rewind

(Yaf >=1.0.0)

Yaf_Config_Simple::rewind — The rewind purpose

Descrição

public Yaf_Config_Simple::rewind(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The __set purpose

  • « Yaf_Config_Simple::rewind
  • Yaf_Config_Simple::toArray »
  • PHP Manual
  • Yaf_Config_Simple
  • The __set purpose

Yaf_Config_Simple::__set

(Yaf >=1.0.0)

Yaf_Config_Simple::__set — The __set purpose

Descrição

public Yaf_Config_Simple::__set(string $name, string $value): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

value

Valor Retornado


Returns a PHP array

  • « Yaf_Config_Simple::__set
  • Yaf_Config_Simple::valid »
  • PHP Manual
  • Yaf_Config_Simple
  • Returns a PHP array

Yaf_Config_Simple::toArray

(Yaf >=1.0.0)

Yaf_Config_Simple::toArray — Returns a PHP array

Descrição

public Yaf_Config_Simple::toArray(): array

Returns a PHP array from the Yaf_Config_Simple

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The valid purpose

  • « Yaf_Config_Simple::toArray
  • Yaf_Controller_Abstract »
  • PHP Manual
  • Yaf_Config_Simple
  • The valid purpose

Yaf_Config_Simple::valid

(Yaf >=1.0.0)

Yaf_Config_Simple::valid — The valid purpose

Descrição

public Yaf_Config_Simple::valid(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The Yaf_Controller_Abstract class

(Yaf >=1.0.0)

Introdução

Yaf_Controller_Abstract is the heart of Yaf's system. MVC stands for Model-View-Controller and is a design pattern targeted at separating application logic from display logic.

Every custom controller shall inherit Yaf_Controller_Abstract.

You will find that you can not define __construct function for your custom controller, thus, Yaf_Controller_Abstract provides a magic method: Yaf_Controller_Abstract::init().

If you have defined a init() method in your custom controller, it will be called as long as the controller was instantiated.

Action may have arguments, when a request coming, if there are the same name variable in the request parameters(see Yaf_Request_Abstract::getParam()) after routed, Yaf will pass them to the action method (see Yaf_Action_Abstract::execute()).

Nota:

These arguments are directly fetched without filtering, it should be carefully processed before use them.

Resumo da classe

abstract class Yaf_Controller_Abstract {
/* Propriedades */
public $actions;
protected $_module;
protected $_name;
protected $_request;
protected $_response;
protected $_invoke_args;
protected $_view;
/* Métodos */
final private __construct()
protected display(string $tpl, array $parameters = ?): bool
public forward(string $action, array $paramters = ?): bool
public getInvokeArg(string $name): void
public getInvokeArgs(): void
public getModuleName(): string
public getName(): string
public getRequest(): Yaf_Request_Abstract
public getResponse(): Yaf_Response_Abstract
public getView(): Yaf_View_Interface
public getViewpath(): string
public init(): void
public initView(array $options = ?): void
public redirect(string $url): bool
protected render(string $tpl, array $parameters = ?): string
public setViewpath(string $view_directory): void
}

Propriedades

actions

You can also define an action method in a separate PHP script by using this property and Yaf_Action_Abstract.

Exemplo #1 define action in a separate file

<?php
class IndexController extends Yaf_Controller_Abstract {
protected $actions = array(
/** now dummyAction is defined in a separate file */
"dummy" => "actions/Dummy_action.php",
);

/* action method may have arguments */
public function indexAction($name, $id) {
/* $name and $id are unsafe raw data */
assert($name == $this->getRequest()->getParam("name"));
assert($id == $this->_request->getParam("id"));
}
}
?>

Exemplo #2 Dummy_action.php

<?php
class DummyAction extends Yaf_Action_Abstract {
/* an action class shall define this method as the entry point */
public function execute() {
}
}
?>

_module

module name

_name

controller name

_request

current request object

_response

current response object

_invoke_args

_view

view engine object

Índice

  • Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor
  • Yaf_Controller_Abstract::display — The display purpose
  • Yaf_Controller_Abstract::forward — Forward to another action
  • Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose
  • Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose
  • Yaf_Controller_Abstract::getModuleName — Get module name
  • Yaf_Controller_Abstract::getName — Get self name
  • Yaf_Controller_Abstract::getRequest — Retrieve current request object
  • Yaf_Controller_Abstract::getResponse — Retrieve current response object
  • Yaf_Controller_Abstract::getView — Retrieve the view engine
  • Yaf_Controller_Abstract::getViewpath — The getViewpath purpose
  • Yaf_Controller_Abstract::init — Controller initializer
  • Yaf_Controller_Abstract::initView — The initView purpose
  • Yaf_Controller_Abstract::redirect — Redirect to a URL
  • Yaf_Controller_Abstract::render — Render view template
  • Yaf_Controller_Abstract::setViewpath — The setViewpath purpose


Yaf_Controller_Abstract constructor

  • « Yaf_Controller_Abstract
  • Yaf_Controller_Abstract::display »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Yaf_Controller_Abstract constructor

Yaf_Controller_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor

Descrição

final private Yaf_Controller_Abstract::__construct()

Yaf_Controller_Abstract::__construct() is final, which means it can not be overridden. You may want to see Yaf_Controller_Abstract::init() instead.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • Yaf_Controller_Abstract::init() - Controller initializer


The display purpose

  • « Yaf_Controller_Abstract::__construct
  • Yaf_Controller_Abstract::forward »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The display purpose

Yaf_Controller_Abstract::display

(Yaf >=1.0.0)

Yaf_Controller_Abstract::display — The display purpose

Descrição

protected Yaf_Controller_Abstract::display(string $tpl, array $parameters = ?): bool

Parâmetros

tpl

parameters

Valor Retornado


Forward to another action

  • « Yaf_Controller_Abstract::display
  • Yaf_Controller_Abstract::getInvokeArg »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Forward to another action

Yaf_Controller_Abstract::forward

(Yaf >=1.0.0)

Yaf_Controller_Abstract::forward — Forward to another action

Descrição

public Yaf_Controller_Abstract::forward(string $action, array $paramters = ?): bool
public Yaf_Controller_Abstract::forward(string $controller, string $action, array $paramters = ?): bool
public Yaf_Controller_Abstract::forward(
string $module,
string $controller,
string $action,
array $paramters = ?
): bool

forward current execution process to other action.

Nota:

this method doesn't switch to the destination action immediately, it will take place after current flow finish.

Parâmetros

module

destination module name, if NULL was given, then default module name is assumed

controller

destination controller name

action

destination action name

paramters

calling arguments

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Yaf_Controller_Abstract::forward()example

<?php
class IndexController extends Yaf_Controller_Abstract
{
public function indexAction(){
$logined = $_SESSION["login"];
if (!$logined) {
$this->forward("login", array("from" => "Index")); // forward to login action
return FALSE; // this is important, this finish current working flow
// and tell the Yaf do not doing auto-render
}

// other processes
}

public function loginAction() {
echo "login, redirected from ", $this->_request->getParam("from") , " action";
}
}
?>

O exemplo acima produzirá algo semelhante a:

login, redirected from Index action

Veja Também

  • Yaf_Request_Abstrace::getParam()


The getInvokeArg purpose

  • « Yaf_Controller_Abstract::forward
  • Yaf_Controller_Abstract::getInvokeArgs »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getInvokeArg purpose

Yaf_Controller_Abstract::getInvokeArg

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose

Descrição

public Yaf_Controller_Abstract::getInvokeArg(string $name): void

Parâmetros

name

Valor Retornado


The getInvokeArgs purpose

  • « Yaf_Controller_Abstract::getInvokeArg
  • Yaf_Controller_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getInvokeArgs purpose

Yaf_Controller_Abstract::getInvokeArgs

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose

Descrição

public Yaf_Controller_Abstract::getInvokeArgs(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Get module name

  • « Yaf_Controller_Abstract::getInvokeArgs
  • Yaf_Controller_Abstract::getName »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Get module name

Yaf_Controller_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getModuleName — Get module name

Descrição

public Yaf_Controller_Abstract::getModuleName(): string

get the controller's module name

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Get self name

  • « Yaf_Controller_Abstract::getModuleName
  • Yaf_Controller_Abstract::getRequest »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Get self name

Yaf_Controller_Abstract::getName

(Yaf >=3.2.0)

Yaf_Controller_Abstract::getName — Get self name

Descrição

public Yaf_Controller_Abstract::getName(): string

get the controller's name

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

string, controller name


Retrieve current request object

  • « Yaf_Controller_Abstract::getName
  • Yaf_Controller_Abstract::getResponse »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve current request object

Yaf_Controller_Abstract::getRequest

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getRequest — Retrieve current request object

Descrição

public Yaf_Controller_Abstract::getRequest(): Yaf_Request_Abstract

retrieve current request object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Yaf_Request_Abstract instance


Retrieve current response object

  • « Yaf_Controller_Abstract::getRequest
  • Yaf_Controller_Abstract::getView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve current response object

Yaf_Controller_Abstract::getResponse

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getResponse — Retrieve current response object

Descrição

public Yaf_Controller_Abstract::getResponse(): Yaf_Response_Abstract

retrieve current response object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Yaf_Response_Abstract instance


Retrieve the view engine

  • « Yaf_Controller_Abstract::getResponse
  • Yaf_Controller_Abstract::getViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve the view engine

Yaf_Controller_Abstract::getView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getView — Retrieve the view engine

Descrição

public Yaf_Controller_Abstract::getView(): Yaf_View_Interface

retrieve view engine

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getViewpath purpose

  • « Yaf_Controller_Abstract::getView
  • Yaf_Controller_Abstract::init »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getViewpath purpose

Yaf_Controller_Abstract::getViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getViewpath — The getViewpath purpose

Descrição

public Yaf_Controller_Abstract::getViewpath(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Controller initializer

  • « Yaf_Controller_Abstract::getViewpath
  • Yaf_Controller_Abstract::initView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Controller initializer

Yaf_Controller_Abstract::init

(Yaf >=1.0.0)

Yaf_Controller_Abstract::init — Controller initializer

Descrição

public Yaf_Controller_Abstract::init(): void

Yaf_Controller_Abstract::__construct() is final, which means users can not override it. but users can define Yaf_Controller_Abstract::init(), which will be called after controller object is instantiated.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • Yaf_Controller_Abstract::__construct() - Yaf_Controller_Abstract constructor


The initView purpose

  • « Yaf_Controller_Abstract::init
  • Yaf_Controller_Abstract::redirect »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The initView purpose

Yaf_Controller_Abstract::initView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::initView — The initView purpose

Descrição

public Yaf_Controller_Abstract::initView(array $options = ?): void

Parâmetros

options

Valor Retornado


Redirect to a URL

  • « Yaf_Controller_Abstract::initView
  • Yaf_Controller_Abstract::render »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Redirect to a URL

Yaf_Controller_Abstract::redirect

(Yaf >=1.0.0)

Yaf_Controller_Abstract::redirect — Redirect to a URL

Descrição

public Yaf_Controller_Abstract::redirect(string $url): bool

redirect to a URL by sending a 302 header

Parâmetros

url

a location URL

Valor Retornado

bool


Render view template

  • « Yaf_Controller_Abstract::redirect
  • Yaf_Controller_Abstract::setViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Render view template

Yaf_Controller_Abstract::render

(Yaf >=1.0.0)

Yaf_Controller_Abstract::render — Render view template

Descrição

protected Yaf_Controller_Abstract::render(string $tpl, array $parameters = ?): string

Parâmetros

tpl

parameters

Valor Retornado


The setViewpath purpose

  • « Yaf_Controller_Abstract::render
  • Yaf_Action_Abstract »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The setViewpath purpose

Yaf_Controller_Abstract::setViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::setViewpath — The setViewpath purpose

Descrição

public Yaf_Controller_Abstract::setViewpath(string $view_directory): void

Parâmetros

view_directory

Valor Retornado


The Yaf_Action_Abstract class

(Yaf >=1.0.0)

Introdução

A action can be defined in a separate file in Yaf(see Yaf_Controller_Abstract). that is a action method can also be a Yaf_Action_Abstract class.

Since there should be a entry point which can be called by Yaf, you must implement the abstract method Yaf_Action_Abstract::execute() in your custom action class.

Resumo da classe

class Yaf_Action_Abstract extends Yaf_Controller_Abstract {
/* Propriedades */
protected $_controller;
/* Métodos */
abstract publicexecute(mixed ...$args): mixed
publicgetController(): Yaf_Controller_Abstract
public getControllerName(): string
/* Métodos herdados */
protected Yaf_Controller_Abstract::display(string $tpl, array $parameters = ?): bool
public Yaf_Controller_Abstract::forward(string $action, array $paramters = ?): bool
public Yaf_Controller_Abstract::getInvokeArg(string $name): void
public Yaf_Controller_Abstract::getInvokeArgs(): void
public Yaf_Controller_Abstract::getModuleName(): string
public Yaf_Controller_Abstract::getName(): string
public Yaf_Controller_Abstract::getRequest(): Yaf_Request_Abstract
public Yaf_Controller_Abstract::getResponse(): Yaf_Response_Abstract
public Yaf_Controller_Abstract::getView(): Yaf_View_Interface
public Yaf_Controller_Abstract::getViewpath(): string
public Yaf_Controller_Abstract::init(): void
public Yaf_Controller_Abstract::initView(array $options = ?): void
public Yaf_Controller_Abstract::redirect(string $url): bool
protected Yaf_Controller_Abstract::render(string $tpl, array $parameters = ?): string
public Yaf_Controller_Abstract::setViewpath(string $view_directory): void
}

Propriedades

_module

_name

_request

_response

_invoke_args

_view

_controller

Índice

  • Yaf_Action_Abstract::execute — Action entry point
  • Yaf_Action_Abstract::getController — Retrieve controller object
  • Yaf_Action_Abstract::getControllerName — Get controller name


Action entry point

  • « Yaf_Action_Abstract
  • Yaf_Action_Abstract::getController »
  • PHP Manual
  • Yaf_Action_Abstract
  • Action entry point

Yaf_Action_Abstract::execute

(Yaf >=1.0.0)

Yaf_Action_Abstract::execute — Action entry point

Descrição

abstract publicYaf_Action_Abstract::execute(mixed ...$args): mixed

user should always define this method for a action, this is the entry point of an action. Yaf_Action_Abstract::execute() may have agruments.

Nota:

The value retrived from the request is not safe. you should do some filtering work before you use it.

Parâmetros

args

Valor Retornado

Exemplos

Exemplo #1 Yaf_Action_Abstract::execute()example

<?php
/**
* A controller example
*/
class ProductController extends Yaf_Controller_Abstract {
protected $actions = array(
"index" => "actions/Index.php",
);
}
?>

Exemplo #2 Yaf_Action_Abstract::execute()example

<?php
/**
* ListAction
*/
class ListAction extends Yaf_Action_Abstract {
public function execute ($name, $id) {
assert($name == $this->getRequest()->getParam("name"));
assert($id == $this->getRequest()->getParam("id"));
}
}
?>

O exemplo acima produzirá algo semelhante a:

/**
 * Now assuming we are using the Yaf_Route_Static route
 * for request: http://yourdomain/product/list/name/yaf/id/22
 * will result:
 */
 bool(true)
 bool(true)

Veja Também


Retrieve controller object

  • « Yaf_Action_Abstract::execute
  • Yaf_Action_Abstract::getControllerName »
  • PHP Manual
  • Yaf_Action_Abstract
  • Retrieve controller object

Yaf_Action_Abstract::getController

(Yaf >=1.0.0)

Yaf_Action_Abstract::getController — Retrieve controller object

Descrição

publicYaf_Action_Abstract::getController(): Yaf_Controller_Abstract

retrieve current controller object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Yaf_Controller_Abstract instance


Get controller name

  • « Yaf_Action_Abstract::getController
  • Yaf_View_Interface »
  • PHP Manual
  • Yaf_Action_Abstract
  • Get controller name

Yaf_Action_Abstract::getControllerName

(Não há informação de versão disponível, talvez apenas no Git)

Yaf_Action_Abstract::getControllerName — Get controller name

Descrição

public Yaf_Action_Abstract::getControllerName(): string

get the controller's name

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

string, controller name


The Yaf_View_Interface class

(Yaf >=1.0.0)

Introdução

Yaf provides a ability for developers to use custom view engine instead of built-in engine which is Yaf_View_Simple. There is a example to explain how to do this, please see Yaf_Dispatcher::setView().

Resumo da classe

class Yaf_View_Interface {
/* Métodos */
abstract public assign(string $name, string $value = ?): bool
abstract public display(string $tpl, array $tpl_vars = ?): bool
abstract public getScriptPath(): void
abstract public render(string $tpl, array $tpl_vars = ?): string
abstract public setScriptPath(string $template_dir): void
}

Índice

  • Yaf_View_Interface::assign — Assign value to View engine
  • Yaf_View_Interface::display — Render and output a template
  • Yaf_View_Interface::getScriptPath — The getScriptPath purpose
  • Yaf_View_Interface::render — Render a template
  • Yaf_View_Interface::setScriptPath — The setScriptPath purpose


Assign value to View engine

  • « Yaf_View_Interface
  • Yaf_View_Interface::display »
  • PHP Manual
  • Yaf_View_Interface
  • Assign value to View engine

Yaf_View_Interface::assign

(Yaf >=1.0.0)

Yaf_View_Interface::assign — Assign value to View engine

Descrição

abstract public Yaf_View_Interface::assign(string $name, string $value = ?): bool

Assigan values to View engine, then the value can access directly by name in template.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

value

Valor Retornado


Render and output a template

  • « Yaf_View_Interface::assign
  • Yaf_View_Interface::getScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Render and output a template

Yaf_View_Interface::display

(Yaf >=1.0.0)

Yaf_View_Interface::display — Render and output a template

Descrição

abstract public Yaf_View_Interface::display(string $tpl, array $tpl_vars = ?): bool

Render a template and output the result immediately.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

tpl

tpl_vars

Valor Retornado


The getScriptPath purpose

  • « Yaf_View_Interface::display
  • Yaf_View_Interface::render »
  • PHP Manual
  • Yaf_View_Interface
  • The getScriptPath purpose

Yaf_View_Interface::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::getScriptPath — The getScriptPath purpose

Descrição

abstract public Yaf_View_Interface::getScriptPath(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Render a template

  • « Yaf_View_Interface::getScriptPath
  • Yaf_View_Interface::setScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Render a template

Yaf_View_Interface::render

(Yaf >=1.0.0)

Yaf_View_Interface::render — Render a template

Descrição

abstract public Yaf_View_Interface::render(string $tpl, array $tpl_vars = ?): string

Render a template and return the result.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

tpl

tpl_vars

Valor Retornado


The setScriptPath purpose

  • « Yaf_View_Interface::render
  • Yaf_View_Simple »
  • PHP Manual
  • Yaf_View_Interface
  • The setScriptPath purpose

Yaf_View_Interface::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::setScriptPath — The setScriptPath purpose

Descrição

abstract public Yaf_View_Interface::setScriptPath(string $template_dir): void

Set the templates base directory, this is usually called by Yaf_Dispatcher

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

template_dir

A absolute path to the template directory, by default, Yaf_Dispatcher use application.directory . "/views" as this paramter.

Valor Retornado


The Yaf_View_Simple class

(Yaf >=1.0.0)

Introdução

Yaf_View_Simple is the built-in template engine in Yaf, it is a simple but fast template engine, and only support PHP script template.

Resumo da classe

class Yaf_View_Simple implements Yaf_View_Interface {
/* Propriedades */
protected $_tpl_vars;
protected $_tpl_dir;
/* Métodos */
final public __construct(string $template_dir, array $options = ?)
public assign(string $name, mixed $value = ?): bool
public assignRef(string $name, mixed &$value): bool
public clear(string $name = ?): bool
public display(string $tpl, array $tpl_vars = ?): bool
public eval(string $tpl_content, array $tpl_vars = ?): string
public __get(string $name = ?): void
public getScriptPath(): string
public __isset(string $name): void
public render(string $tpl, array $tpl_vars = ?): string
public __set(string $name, mixed $value): void
public setScriptPath(string $template_dir): bool
}

Propriedades

_tpl_vars

_tpl_dir

Índice

  • Yaf_View_Simple::assign — Assign values
  • Yaf_View_Simple::assignRef — The assignRef purpose
  • Yaf_View_Simple::clear — Clear Assigned values
  • Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple
  • Yaf_View_Simple::display — Render and display
  • Yaf_View_Simple::eval — Render template
  • Yaf_View_Simple::__get — Retrieve assigned variable
  • Yaf_View_Simple::getScriptPath — Get templates directory
  • Yaf_View_Simple::__isset — The __isset purpose
  • Yaf_View_Simple::render — Render template
  • Yaf_View_Simple::__set — Set value to engine
  • Yaf_View_Simple::setScriptPath — Set tempaltes directory


Assign values

  • « Yaf_View_Simple
  • Yaf_View_Simple::assignRef »
  • PHP Manual
  • Yaf_View_Simple
  • Assign values

Yaf_View_Simple::assign

(Yaf >=1.0.0)

Yaf_View_Simple::assign — Assign values

Descrição

public Yaf_View_Simple::assign(string $name, mixed $value = ?): bool

assign variable to view engine

Parâmetros

name

A string or an array.

if is string, then the next argument $value is required.

value

mixed value

Valor Retornado

Exemplos

Exemplo #1 Yaf_View_Simple::assign()example

<?php
class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {
$this->getView()->assign("foo", "bar");
$this->_view->assign( array( "key" => "value", "name" => "value"));
}
}
?>

Exemplo #2 template()example

<html>
<head>
<title><?php echo $foo; ?></title>
</head>
<body>
<?php
foreach ($this->_tpl_vars as $name => $value) {
echo $$name; // or echo $this->_tpl_vars[$name];
}
?>
</body>
</html>

Veja Também

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::clear()
  • Yaf_View_Simple::__set() - Set value to engine


The assignRef purpose

  • « Yaf_View_Simple::assign
  • Yaf_View_Simple::clear »
  • PHP Manual
  • Yaf_View_Simple
  • The assignRef purpose

Yaf_View_Simple::assignRef

(Yaf >=1.0.0)

Yaf_View_Simple::assignRef — The assignRef purpose

Descrição

public Yaf_View_Simple::assignRef(string $name, mixed &$value): bool

unlike Yaf_View_Simple::assign(), this method assign a ref value to engine.

Parâmetros

name

A string name which will be used to access the value in the tempalte.

value

mixed value

Valor Retornado

Exemplos

Exemplo #1 Yaf_View_Simple::assignRef()example

<?php
class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {
$value = "bar";
$this->getView()->assign("foo", $value);

/* plz note that there was a bug before Yaf 2.1.4,
* which make following output "bar";
*/
$dummy = $this->getView()->render("index/index.phtml");
echo $value;

//prevent the auto-render
Yaf_Dispatcher::getInstance()->autoRender(FALSE);
}
}
?>

Exemplo #2 template()example

<html>
<head>
<title><?php echo $foo; $foo = "changed"; ?></title>
</head>
<body>
</body>
</html>

O exemplo acima produzirá algo semelhante a:

/* access the index controller will result: */
changed

Veja Também

  • Yaf_View_Simple::assign() - Assign values
  • Yaf_View_Simple::__set() - Set value to engine


Clear Assigned values

  • « Yaf_View_Simple::assignRef
  • Yaf_View_Simple::__construct »
  • PHP Manual
  • Yaf_View_Simple
  • Clear Assigned values

Yaf_View_Simple::clear

(Yaf >=2.2.0)

Yaf_View_Simple::clear — Clear Assigned values

Descrição

public Yaf_View_Simple::clear(string $name = ?): bool

clear assigned variable

Parâmetros

name

assigned variable name

if empty, will clear all assigned variables

Valor Retornado

Exemplos

Exemplo #1 Yaf_View_Simple::clear()example

<?php
class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {
$this->getView()->clear("foo")->clear("bar"); // clear "foo" and "bar"
$this->_view->clear(); //clear all assigned variables
}
}
?>

Veja Também

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::assign() - Assign value to View engine
  • Yaf_View_Simple::__set() - Set value to engine


Constructor of Yaf_View_Simple

  • « Yaf_View_Simple::clear
  • Yaf_View_Simple::display »
  • PHP Manual
  • Yaf_View_Simple
  • Constructor of Yaf_View_Simple

Yaf_View_Simple::__construct

(Yaf >=1.0.0)

Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple

Descrição

final public Yaf_View_Simple::__construct(string $template_dir, array $options = ?)

Parâmetros

template_dir

The base directory of the templates, by default, it is APPLICATOIN . "/views" for Yaf.

options

Options for the engine, as of Yaf 2.1.13, you can use short tag
      "<?=$var?>" in your template(regardless of "short_open_tag"),
      so comes a option named "short_tag",  you can switch this off
      to prevent use short_tag in template.

Exemplos

Exemplo #1 Yaf_View_Simple::__constructor()example

<?php
define ("TEMPLATE_DIRECTORY", APPLICATOIN_PATH . '/views');
$view = new Yaf_View_Simple(TEMPLATE_DIRECTORY, array(
'short_tag' => false //doesn't allow use short tag in template
));
?>


Render and display

  • « Yaf_View_Simple::__construct
  • Yaf_View_Simple::eval »
  • PHP Manual
  • Yaf_View_Simple
  • Render and display

Yaf_View_Simple::display

(Yaf >=1.0.0)

Yaf_View_Simple::display — Render and display

Descrição

public Yaf_View_Simple::display(string $tpl, array $tpl_vars = ?): bool

Render a template and display the result instantly.

Parâmetros

tpl

tpl_vars

Valor Retornado


Render template

  • « Yaf_View_Simple::display
  • Yaf_View_Simple::__get »
  • PHP Manual
  • Yaf_View_Simple
  • Render template

Yaf_View_Simple::eval

(Yaf >=2.2.0)

Yaf_View_Simple::eval — Render template

Descrição

public Yaf_View_Simple::eval(string $tpl_content, array $tpl_vars = ?): string

Render a string tempalte and return the result.

Parâmetros

tpl_content

string template

tpl_vars

Valor Retornado


Retrieve assigned variable

  • « Yaf_View_Simple::eval
  • Yaf_View_Simple::getScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Retrieve assigned variable

Yaf_View_Simple::__get

(Yaf >=1.0.0)

Yaf_View_Simple::__get — Retrieve assigned variable

Descrição

public Yaf_View_Simple::__get(string $name = ?): void

Retrieve assigned varaiable

Nota:

parameter can be empty since 2.1.11

Parâmetros

name

the assigned variable name

if this is empty, all assigned variables will be returned

Valor Retornado


Get templates directory

  • « Yaf_View_Simple::__get
  • Yaf_View_Simple::__isset »
  • PHP Manual
  • Yaf_View_Simple
  • Get templates directory

Yaf_View_Simple::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::getScriptPath — Get templates directory

Descrição

public Yaf_View_Simple::getScriptPath(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The __isset purpose

  • « Yaf_View_Simple::getScriptPath
  • Yaf_View_Simple::render »
  • PHP Manual
  • Yaf_View_Simple
  • The __isset purpose

Yaf_View_Simple::__isset

(Yaf >=1.0.0)

Yaf_View_Simple::__isset — The __isset purpose

Descrição

public Yaf_View_Simple::__isset(string $name): void

Parâmetros

name

Valor Retornado


Render template

  • « Yaf_View_Simple::__isset
  • Yaf_View_Simple::__set »
  • PHP Manual
  • Yaf_View_Simple
  • Render template

Yaf_View_Simple::render

(Yaf >=1.0.0)

Yaf_View_Simple::render — Render template

Descrição

public Yaf_View_Simple::render(string $tpl, array $tpl_vars = ?): string

Render a template and return the result.

Parâmetros

tpl

tpl_vars

Valor Retornado


Set value to engine

  • « Yaf_View_Simple::render
  • Yaf_View_Simple::setScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Set value to engine

Yaf_View_Simple::__set

(Yaf >=1.0.0)

Yaf_View_Simple::__set — Set value to engine

Descrição

public Yaf_View_Simple::__set(string $name, mixed $value): void

This is a alternative and easier way to Yaf_View_Simple::assign().

Parâmetros

name

A string value name.

value

Mixed value.

Valor Retornado

Exemplos

Exemplo #1 Yaf_View_Simple::__set()example

<?php
class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {
$this->getView()->foo = "bar"; // same as assign("foo", "bar");
}
}
?>

Veja Também

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::assign() - Assign value to View engine


Set tempaltes directory

  • « Yaf_View_Simple::__set
  • Yaf_Loader »
  • PHP Manual
  • Yaf_View_Simple
  • Set tempaltes directory

Yaf_View_Simple::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::setScriptPath — Set tempaltes directory

Descrição

public Yaf_View_Simple::setScriptPath(string $template_dir): bool

Parâmetros

template_dir

Valor Retornado


The Yaf_Loader class

(Yaf >=1.0.0)

Introdução

Yaf_Loader introduces a comprehensive autoloading solution for Yaf.

The first time an instance of Yaf_Application is retrieved, Yaf_Loader will instance a singleton, and registers itself with spl_autoload. You retrieve an instance using the Yaf_Loader::getInstance()

Yaf_Loader attempt to load a class only one shot, if failed, depend on yaf.use_spl_auload, if this config is On Yaf_Loader::autoload() will return false, thus give the chance to other autoload function. if it is Off (by default), Yaf_Loader::autoload() will return true, and more important is that a very useful warning will be triggered (very useful to find out why a class could not be loaded).

Nota:

Please keep yaf.use_spl_autoload Off unless there is some library have their own autoload mechanism and impossible to rewrite it.

By default, Yaf_Loader assume all library (class defined script) store in the global library directory, which is defined in the php.ini(yaf.library).

If you want Yaf_Loader search some classes(libraries) in the local class directory(which is defined in application.ini, and by default, it is application.directory . "/library"), you should register the class prefix using the Yaf_Loader::registerLocalNameSpace()

Let's see some examples(assuming APPLICATION_PATH is application.directory):

Exemplo #1 Config example

// Assuming the following configure in php.ini:
yaf.library = "/global_dir"

//Assuming the following configure in application.ini
application.library = APPLICATION_PATH "/library"
Assuming the following local name space is registered:

Exemplo #2 Register localnamespace

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
public function _initLoader($dispatcher) {
Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo", "Bar"));
}
?>
Then the autoload examples:

Exemplo #3 Load class example

class Foo_Bar_Test =>
  // APPLICATION_PATH/library/Foo/Bar/Test.php

class GLO_Name  =>
  // /global_dir/Glo/Name.php

class BarNon_Test
  // /global_dir/Barnon/Test.php

Exemplo #4 Load namespace class example

class \Foo\Bar\Dummy =>
   // APPLICATION_PATH/library/Foo/Bar/Dummy.php

class \FooBar\Bar\Dummy =>
   // /global_dir/FooBar/Bar/Dummy.php

You may noticed that all the folder with the first letter capitalized, you can make them lowercase by set yaf.lowcase_path = On in php.ini

Yaf_Loader is also designed to load the MVC classes, and the rule is:

Exemplo #5 MVC class loading example

Controller Classes =>
// APPLICATION_PATH/controllers/

Model Classes =>
// APPLICATION_PATH/models/

Plugin Classes =>
// APPLICATION_PATH/plugins/
Yaf identify a class's suffix(this is by default, you can also change to the prefix by change the configure yaf.name_suffix) to decide whether it is a MVC class:

Exemplo #6 MVC class distinctions

Controller Classes =>
    // ***Controller

Model Classes =>
    // ***Model

Plugin Classes =>
    // ***Plugin
some examples:

Exemplo #7 MVC loading example

class IndexController
    // APPLICATION_PATH/controllers/Index.php

class DataModel =>
   // APPLICATION_PATH/models/Data.php

class DummyPlugin =>
  // APPLICATION_PATH/plugins/Dummy.php

class A_B_TestModel =>
  // APPLICATION_PATH/models/A/B/Test.php

Nota:

As of 2.1.18, Yaf supports Controllers autoloading for user script side, (which means the autoloading triggered by user php script, eg: access a controller static property in Bootstrap or Plugins), but autoloader only try to locate controller class script under the default module folder, which is "APPLICATION_PATH/controllers/".

also, the directory will be affected by yaf.lowcase_path.

Resumo da classe

class Yaf_Loader {
/* Propriedades */
protected $_local_ns;
protected $_library;
protected $_global_library;
static $_instance;
/* Métodos */
private __construct()
public autoload(): void
public clearLocalNamespace(): void
public static getInstance(): void
public getLibraryPath(bool $is_global = false): Yaf_Loader
public getLocalNamespace(): void
public getNamespacePath(string $namespaces): string
public getNamespaces(): array
public static import(): void
public isLocalName(): void
public registerLocalNamespace(mixed $prefix): void
public registerNamespace(string|array $namespaces, string $path = ?): bool
public setLibraryPath(string $directory, bool $is_global = false): Yaf_Loader
}

Propriedades

_local_ns

_library

By default, this value is application.directory . "/library", you can change this either in the application.ini(application.library) or call to Yaf_Loader::setLibraryPath()

_global_library

_instance

Índice

  • Yaf_Loader::autoload — The autoload purpose
  • Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose
  • Yaf_Loader::__construct — The __construct purpose
  • Yaf_Loader::getInstance — The getInstance purpose
  • Yaf_Loader::getLibraryPath — Get the library path
  • Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose
  • Yaf_Loader::getNamespacePath — Retieve path of a registered namespace
  • Yaf_Loader::getLocalNamespace — Retrive all register namespaces info
  • Yaf_Loader::import — The import purpose
  • Yaf_Loader::isLocalName — The isLocalName purpose
  • Yaf_Loader::registerLocalNamespace — Register local class prefix
  • Yaf_Loader::registerNamespace — Register namespace with searching path
  • Yaf_Loader::setLibraryPath — Change the library path


The autoload purpose

  • « Yaf_Loader
  • Yaf_Loader::clearLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • The autoload purpose

Yaf_Loader::autoload

(Yaf >=1.0.0)

Yaf_Loader::autoload — The autoload purpose

Descrição

public Yaf_Loader::autoload(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The clearLocalNamespace purpose

  • « Yaf_Loader::autoload
  • Yaf_Loader::__construct »
  • PHP Manual
  • Yaf_Loader
  • The clearLocalNamespace purpose

Yaf_Loader::clearLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose

Descrição

public Yaf_Loader::clearLocalNamespace(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The __construct purpose

  • « Yaf_Loader::clearLocalNamespace
  • Yaf_Loader::getInstance »
  • PHP Manual
  • Yaf_Loader
  • The __construct purpose

Yaf_Loader::__construct

(Yaf >=1.0.0)

Yaf_Loader::__construct — The __construct purpose

Descrição

private Yaf_Loader::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getInstance purpose

  • « Yaf_Loader::__construct
  • Yaf_Loader::getLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • The getInstance purpose

Yaf_Loader::getInstance

(Yaf >=1.0.0)

Yaf_Loader::getInstance — The getInstance purpose

Descrição

public static Yaf_Loader::getInstance(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Get the library path

  • « Yaf_Loader::getInstance
  • Yaf_Loader::getLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Get the library path

Yaf_Loader::getLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::getLibraryPath — Get the library path

Descrição

public Yaf_Loader::getLibraryPath(bool $is_global = false): Yaf_Loader

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getLocalNamespace purpose

  • « Yaf_Loader::getLibraryPath
  • Yaf_Loader::getNamespacePath »
  • PHP Manual
  • Yaf_Loader
  • The getLocalNamespace purpose

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose

Descrição

public Yaf_Loader::getLocalNamespace(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retieve path of a registered namespace

  • « Yaf_Loader::getLocalNamespace
  • Yaf_Loader::getLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Retieve path of a registered namespace

Yaf_Loader::getNamespacePath

(Yaf >=3.2.0)

Yaf_Loader::getNamespacePath — Retieve path of a registered namespace

Descrição

public Yaf_Loader::getNamespacePath(string $namespaces): string

retrieve path of a registered namespace

Parâmetros

namespace

a string of namespace.

Valor Retornado

string path, if the namespace is not registered, then null default library will be returned

Exemplos

Exemplo #1 Yaf_Loader::registerNamespace()example

<?php
$loader = Yaf_Loader::getInstance("/var/application/lib");
$loader->registerNamespace("\Vendor\PHP", "/var/lib/php");

$loader->getNamespacePath("\Vendor\PHP"); // '/var/lib/php'
$loader->getNamespacePath("\Vendor\JSP"); // '/var/application/lib'

?>


Retrive all register namespaces info

  • « Yaf_Loader::getNamespacePath
  • Yaf_Loader::import »
  • PHP Manual
  • Yaf_Loader
  • Retrive all register namespaces info

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — Retrive all register namespaces info

Descrição

public Yaf_Loader::getNamespaces(): array

get registered namespaces info

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

array


The import purpose

  • « Yaf_Loader::getLocalNamespace
  • Yaf_Loader::isLocalName »
  • PHP Manual
  • Yaf_Loader
  • The import purpose

Yaf_Loader::import

(Yaf >=1.0.0)

Yaf_Loader::import — The import purpose

Descrição

public static Yaf_Loader::import(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The isLocalName purpose

  • « Yaf_Loader::import
  • Yaf_Loader::registerLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • The isLocalName purpose

Yaf_Loader::isLocalName

(Yaf >=1.0.0)

Yaf_Loader::isLocalName — The isLocalName purpose

Descrição

public Yaf_Loader::isLocalName(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Register local class prefix

  • « Yaf_Loader::isLocalName
  • Yaf_Loader::registerNamespace »
  • PHP Manual
  • Yaf_Loader
  • Register local class prefix

Yaf_Loader::registerLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::registerLocalNamespace — Register local class prefix

Descrição

public Yaf_Loader::registerLocalNamespace(mixed $prefix): void

Register local class prefix name, Yaf_Loader search classes in two library directories, the one is configured via application.library.directory(in application.ini) which is called local libraray directory; the other is configured via yaf.library (in php.ini) which is callled global library directory, since it can be shared by many applications in the same server.

When an autloading is trigger, Yaf_Loader will determine which library directory should be searched in by exame the prefix name of the missed classname. If the prefix name is registered as a localnamespack then look for it in local library directory, otherwise look for it in global library directory.

Nota:

If yaf.library is not configured, then the global library directory is assumed to be the local library directory. in that case, all autoloading will look for local library directory. But if you want your Yaf application be strong, then always register your own classes as local classes.

Parâmetros

prefix

a string or a array of class name prefix. all class prefix with these prefix will be loaded in local library path.

Valor Retornado

bool

Exemplos

Exemplo #1 Yaf_Loader::registerLocalNamespace()example

<?php
$loader = Yaf_Loader::getInstance('/local/library/', '/global/library');
$loader->registerLocalNamespace("Baidu");
$loader->registerLocalNamespace(array("Sina", "Weibo"));

$loader->autoload("Baidu_Name"); // search in '/local/library/'
$loader->autoload("Sina"); // search '/local/library/'
$loader->autoload("Global_Name");// search in '/global/library/'
$loader->autoload("Foo_Bar"); // search in '/global/library/'

?>


Register namespace with searching path

  • « Yaf_Loader::registerLocalNamespace
  • Yaf_Loader::setLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • Register namespace with searching path

Yaf_Loader::registerNamespace

(Yaf >=3.2.0)

Yaf_Loader::registerNamespace — Register namespace with searching path

Descrição

public Yaf_Loader::registerNamespace(string|array $namespaces, string $path = ?): bool

Register a namespace with searching path, Yaf_Loader searchs classes under this namespace in path, the one is also could be configureded via application.library.directory.namespace(in application.ini);

Nota:

Yaf still think underline as folder separator.

Parâmetros

namespace

a string of namespace, or a array of namespaces with paths.

path

a string of path, it is better to use abosolute path here for performance

Valor Retornado

bool

Exemplos

Exemplo #1 Yaf_Loader::registerNamespace()example

<?php
$loader = Yaf_Loader::getInstance();
$loader->registerNamespace("\Vendor\PHP", "/var/lib/php");
$loader->registerNamespace(array(
"\Vendor\ASP" => "/var/lib/asp",
"\Vendor\JSP" => "/usr/lib/vendor/",
));

$loader->autoload("\Vendor\PHP\Dummy"); //load '/var/lib/php/Dummy.php'
$loader->autoload("\Vendor\PHP\Foo_Bar"); //load '/var/lib/php/Foo/Bar.php'
$loader->autoload("\Vendor\JSP\Dummy"); //load '/usr/lib/vendor/Dummy.php'

?>


Change the library path

  • « Yaf_Loader::registerNamespace
  • Yaf_Plugin_Abstract »
  • PHP Manual
  • Yaf_Loader
  • Change the library path

Yaf_Loader::setLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::setLibraryPath — Change the library path

Descrição

public Yaf_Loader::setLibraryPath(string $directory, bool $is_global = false): Yaf_Loader

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The Yaf_Plugin_Abstract class

(Yaf >=1.0.0)

Introdução

Plugins allow for easy extensibility and customization of the framework.

Plugins are classes. The actual class definition will vary based on the component -- you may need to implement this interface, but the fact remains that the plugin is itself a class.

A plugin could be loaded into Yaf by using Yaf_Dispatcher::registerPlugin(), after registering, All the methods which the plugin implemented according to this interface, will be called at the proper time.

Exemplos

Exemplo #1 Plugin example

<?php
/* bootstrap class should be defined under ./application/Bootstrap.php */
class Bootstrap extends Yaf_Bootstrap_Abstract {
public function _initPlugin(Yaf_Dispatcher $dispatcher) {
/* register a plugin */
$dispatcher->registerPlugin(new TestPlugin());
}
}

/* plugin class should be placed under ./application/plugins/ */
class TestPlugin extends Yaf_Plugin_Abstract {
public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
/* before router
in this hook, user can do some url rewrite */
var_dump("routerStartup");
}
public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
/* router complete
in this hook, user can do login check */
var_dump("routerShutdown");
}
public function dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
var_dump("dispatchLoopStartup");
}
public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
var_dump("preDispatch");
}
public function postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
var_dump("postDispatch");
}
public function dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
/* final hook
in this hook user can do logging or implement layout */
var_dump("dispatchLoopShutdown");
}
}

Class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {
return FALSE; //prevent rendering
}
}

$config = array(
"application" => array(
"directory" => dirname(__FILE__) . "/application/",
),
);

$app = new Yaf_Application($config);
$app->bootstrap()->run();
?>

O exemplo acima produzirá algo semelhante a:

string(13) "routerStartup"
string(14) "routerShutdown"
string(19) "dispatchLoopStartup"
string(11) "preDispatch"
string(12) "postDispatch"
string(20) "dispatchLoopShutdown"

Resumo da classe

class Yaf_Plugin_Abstract {
/* Métodos */
public dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public preResponse(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
}

Índice

  • Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup — Hook before dispatch loop
  • Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose
  • Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose
  • Yaf_Plugin_Abstract::preResponse — The preResponse purpose
  • Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose
  • Yaf_Plugin_Abstract::routerStartup — RouterStartup hook


The dispatchLoopShutdown purpose

  • « Yaf_Plugin_Abstract
  • Yaf_Plugin_Abstract::dispatchLoopStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The dispatchLoopShutdown purpose

Yaf_Plugin_Abstract::dispatchLoopShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose

Descrição

public Yaf_Plugin_Abstract::dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

This is the latest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called after the dispatch loop finished.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

request

response

Valor Retornado

Veja Também

  • Yaf_Plugin_Abstract::routerStartup() - RouterStartup hook
  • Yaf_Plugin_Abstract::routerShutdown() - The routerShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Hook before dispatch loop
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose


Hook before dispatch loop

  • « Yaf_Plugin_Abstract::dispatchLoopShutdown
  • Yaf_Plugin_Abstract::postDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Hook before dispatch loop

Yaf_Plugin_Abstract::dispatchLoopStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopStartup — Hook before dispatch loop

Descrição

public Yaf_Plugin_Abstract::dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Parâmetros

request

response

Valor Retornado


The postDispatch purpose

  • « Yaf_Plugin_Abstract::dispatchLoopStartup
  • Yaf_Plugin_Abstract::preDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The postDispatch purpose

Yaf_Plugin_Abstract::postDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose

Descrição

public Yaf_Plugin_Abstract::postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

request

response

Valor Retornado


The preDispatch purpose

  • « Yaf_Plugin_Abstract::postDispatch
  • Yaf_Plugin_Abstract::preResponse »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The preDispatch purpose

Yaf_Plugin_Abstract::preDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose

Descrição

public Yaf_Plugin_Abstract::preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

request

response

Valor Retornado


The preResponse purpose

  • « Yaf_Plugin_Abstract::preDispatch
  • Yaf_Plugin_Abstract::routerShutdown »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The preResponse purpose

Yaf_Plugin_Abstract::preResponse

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preResponse — The preResponse purpose

Descrição

public Yaf_Plugin_Abstract::preResponse(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

request

response

Valor Retornado


The routerShutdown purpose

  • « Yaf_Plugin_Abstract::preResponse
  • Yaf_Plugin_Abstract::routerStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The routerShutdown purpose

Yaf_Plugin_Abstract::routerShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose

Descrição

public Yaf_Plugin_Abstract::routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

This hook will be trigged after the route process finished, this hook is usually used for login check.

Parâmetros

request

response

Valor Retornado

Exemplos

Exemplo #1 Yaf_Plugin_Abstract::routerShutdown()example

<?php
class UserInitPlugin extends Yaf_Plugin_Abstract {

public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
$controller = $request->getControllerName();

/**
* Use access controller is unecessary for APIs
*/
if (in_array(strtolower($controller), array(
'api',
))) {
return TRUE;
}

if (Yaf_Session::getInstance()->has("login")) {
return TRUE;
}

/* Use access check failed, need to login */
$response->setRedirect("http://yourdomain.com/login/");
return FALSE;
}
}
?>

Veja Também

  • Yaf_Plugin_Abstract::routerStartup() - RouterStartup hook
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Hook before dispatch loop
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - The dispatchLoopShutdown purpose


RouterStartup hook

  • « Yaf_Plugin_Abstract::routerShutdown
  • Yaf_Registry »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • RouterStartup hook

Yaf_Plugin_Abstract::routerStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerStartup — RouterStartup hook

Descrição

public Yaf_Plugin_Abstract::routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

This is the earliest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called before routing a request.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

request

response

Valor Retornado

Veja Também

  • Yaf_Plugin_Abstract::routerShutdown() - The routerShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Hook before dispatch loop
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - The dispatchLoopShutdown purpose


The Yaf_Registry class

(Yaf >=1.0.0)

Introdução

All methods of Yaf_Registry declared as static, making it unversally accessible. This provides the ability to get or set any custom data from anyway in your code as necessary.

Resumo da classe

class Yaf_Registry {
/* Propriedades */
static $_instance;
protected $_entries;
/* Métodos */
private __construct()
public static del(string $name): void
public static get(string $name): mixed
public static has(string $name): bool
public static set(string $name, string $value): bool
}

Propriedades

_instance

_entries

Índice

  • Yaf_Registry::__construct — Yaf_Registry implements singleton
  • Yaf_Registry::del — Remove an item from registry
  • Yaf_Registry::get — Retrieve an item from registry
  • Yaf_Registry::has — Check whether an item exists
  • Yaf_Registry::set — Add an item into registry


Yaf_Registry implements singleton

  • « Yaf_Registry
  • Yaf_Registry::del »
  • PHP Manual
  • Yaf_Registry
  • Yaf_Registry implements singleton

Yaf_Registry::__construct

(Yaf >=1.0.0)

Yaf_Registry::__construct — Yaf_Registry implements singleton

Descrição

private Yaf_Registry::__construct()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Remove an item from registry

  • « Yaf_Registry::__construct
  • Yaf_Registry::get »
  • PHP Manual
  • Yaf_Registry
  • Remove an item from registry

Yaf_Registry::del

(Yaf >=1.0.0)

Yaf_Registry::del — Remove an item from registry

Descrição

public static Yaf_Registry::del(string $name): void

Remove an item from registry

Parâmetros

name

Valor Retornado


Retrieve an item from registry

  • « Yaf_Registry::del
  • Yaf_Registry::has »
  • PHP Manual
  • Yaf_Registry
  • Retrieve an item from registry

Yaf_Registry::get

(Yaf >=1.0.0)

Yaf_Registry::get — Retrieve an item from registry

Descrição

public static Yaf_Registry::get(string $name): mixed

Retrieve an item from registry

Parâmetros

name

Valor Retornado


Check whether an item exists

  • « Yaf_Registry::get
  • Yaf_Registry::set »
  • PHP Manual
  • Yaf_Registry
  • Check whether an item exists

Yaf_Registry::has

(Yaf >=1.0.0)

Yaf_Registry::has — Check whether an item exists

Descrição

public static Yaf_Registry::has(string $name): bool

Check whether an item exists

Parâmetros

name

Valor Retornado


Add an item into registry

  • « Yaf_Registry::has
  • Yaf_Request_Abstract »
  • PHP Manual
  • Yaf_Registry
  • Add an item into registry

Yaf_Registry::set

(Yaf >=1.0.0)

Yaf_Registry::set — Add an item into registry

Descrição

public static Yaf_Registry::set(string $name, string $value): bool

Add an item into registry

Parâmetros

name

value

Valor Retornado


The Yaf_Request_Abstract class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Request_Abstract {
/* Constantes */
const string SCHEME_HTTP = http;
const string SCHEME_HTTPS = https;
/* Propriedades */
public $module;
public $controller;
public $action;
public $method;
protected $params;
protected $language;
protected $_exception;
protected $_base_uri;
protected $uri;
protected $dispatched;
protected $routed;
/* Métodos */
public clearParams(): bool
public getActionName(): void
public getBaseUri(): void
public getControllerName(): void
public getEnv(string $name, string $default = ?): void
public getException(): void
public getLanguage(): void
public getMethod(): string
public getModuleName(): void
public getParam(string $name, string $default = ?): mixed
public getParams(): array
public getRequestUri(): void
public getServer(string $name, string $default = ?): void
public isCli(): bool
public isDispatched(): bool
public isGet(): bool
public isHead(): bool
public isOptions(): bool
public isPost(): bool
public isPut(): bool
public isRouted(): bool
public isXmlHttpRequest(): bool
public setActionName(string $action, bool $format_name = true): void
public setBaseUri(string $uir): bool
public setControllerName(string $controller, bool $format_name = true): void
public setDispatched(): void
public setModuleName(string $module, bool $format_name = true): void
public setParam(string $name, string $value = ?): bool
public setRequestUri(string $uir): void
public setRouted(string $flag = ?): void
}

Propriedades

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Constantes pré-definidas

Yaf_Request_Abstract::SCHEME_HTTP

Yaf_Request_Abstract::SCHEME_HTTPS

Índice

  • Yaf_Request_Abstract::clearParams — Remove all params
  • Yaf_Request_Abstract::getActionName — The getActionName purpose
  • Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose
  • Yaf_Request_Abstract::getControllerName — The getControllerName purpose
  • Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe
  • Yaf_Request_Abstract::getException — The getException purpose
  • Yaf_Request_Abstract::getLanguage — Retrieve client's preferred language
  • Yaf_Request_Abstract::getMethod — Retrieve the request method
  • Yaf_Request_Abstract::getModuleName — The getModuleName purpose
  • Yaf_Request_Abstract::getParam — Retrieve calling parameter
  • Yaf_Request_Abstract::getParams — Retrieve all calling parameters
  • Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose
  • Yaf_Request_Abstract::getServer — Retrieve SERVER variable
  • Yaf_Request_Abstract::isCli — Determine if request is CLI request
  • Yaf_Request_Abstract::isDispatched — Determin if the request is dispatched
  • Yaf_Request_Abstract::isGet — Determine if request is GET request
  • Yaf_Request_Abstract::isHead — Determine if request is HEAD request
  • Yaf_Request_Abstract::isOptions — Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isPost — Determine if request is POST request
  • Yaf_Request_Abstract::isPut — Determine if request is PUT request
  • Yaf_Request_Abstract::isRouted — Determin if request has been routed
  • Yaf_Request_Abstract::isXmlHttpRequest — Determine if request is AJAX request
  • Yaf_Request_Abstract::setActionName — Set action name
  • Yaf_Request_Abstract::setBaseUri — Set base URI
  • Yaf_Request_Abstract::setControllerName — Set controller name
  • Yaf_Request_Abstract::setDispatched — The setDispatched purpose
  • Yaf_Request_Abstract::setModuleName — Set module name
  • Yaf_Request_Abstract::setParam — Set a calling parameter to a request
  • Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose
  • Yaf_Request_Abstract::setRouted — The setRouted purpose


Remove all params

  • « Yaf_Request_Abstract
  • Yaf_Request_Abstract::getActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Remove all params

Yaf_Request_Abstract::clearParams

(Não há informação de versão disponível, talvez apenas no Git)

Yaf_Request_Abstract::clearParams — Remove all params

Descrição

public Yaf_Request_Abstract::clearParams(): bool

Remove all params set by router, or Yaf_Request_Abstract::setParam()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

bool

Veja Também

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


The getActionName purpose

  • « Yaf_Request_Abstract::clearParams
  • Yaf_Request_Abstract::getBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getActionName purpose

Yaf_Request_Abstract::getActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getActionName — The getActionName purpose

Descrição

public Yaf_Request_Abstract::getActionName(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getBaseUri purpose

  • « Yaf_Request_Abstract::getActionName
  • Yaf_Request_Abstract::getControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getBaseUri purpose

Yaf_Request_Abstract::getBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose

Descrição

public Yaf_Request_Abstract::getBaseUri(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getControllerName purpose

  • « Yaf_Request_Abstract::getBaseUri
  • Yaf_Request_Abstract::getEnv »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getControllerName purpose

Yaf_Request_Abstract::getControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getControllerName — The getControllerName purpose

Descrição

public Yaf_Request_Abstract::getControllerName(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrieve ENV varialbe

  • « Yaf_Request_Abstract::getControllerName
  • Yaf_Request_Abstract::getException »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve ENV varialbe

Yaf_Request_Abstract::getEnv

(Yaf >=1.0.0)

Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe

Descrição

public Yaf_Request_Abstract::getEnv(string $name, string $default = ?): void

Retrieve ENV variable

Parâmetros

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Valor Retornado

Returns string

Veja Também

  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


The getException purpose

  • « Yaf_Request_Abstract::getEnv
  • Yaf_Request_Abstract::getLanguage »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getException purpose

Yaf_Request_Abstract::getException

(Yaf >=1.0.0)

Yaf_Request_Abstract::getException — The getException purpose

Descrição

public Yaf_Request_Abstract::getException(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrieve client's preferred language

  • « Yaf_Request_Abstract::getException
  • Yaf_Request_Abstract::getMethod »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve client's preferred language

Yaf_Request_Abstract::getLanguage

(Yaf >=1.0.0)

Yaf_Request_Abstract::getLanguage — Retrieve client's preferred language

Descrição

public Yaf_Request_Abstract::getLanguage(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string


Retrieve the request method

  • « Yaf_Request_Abstract::getLanguage
  • Yaf_Request_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve the request method

Yaf_Request_Abstract::getMethod

(Yaf >=1.0.0)

Yaf_Request_Abstract::getMethod — Retrieve the request method

Descrição

public Yaf_Request_Abstract::getMethod(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return a string, like "POST", "GET" etc.

Veja Também

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


The getModuleName purpose

  • « Yaf_Request_Abstract::getMethod
  • Yaf_Request_Abstract::getParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getModuleName purpose

Yaf_Request_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getModuleName — The getModuleName purpose

Descrição

public Yaf_Request_Abstract::getModuleName(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrieve calling parameter

  • « Yaf_Request_Abstract::getModuleName
  • Yaf_Request_Abstract::getParams »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve calling parameter

Yaf_Request_Abstract::getParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParam — Retrieve calling parameter

Descrição

public Yaf_Request_Abstract::getParam(string $name, string $default = ?): mixed

Parâmetros

name

default

Valor Retornado

Veja Também

  • Yaf_Request_Abstract::setParam() - Set a calling parameter to a request


Retrieve all calling parameters

  • « Yaf_Request_Abstract::getParam
  • Yaf_Request_Abstract::getRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve all calling parameters

Yaf_Request_Abstract::getParams

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParams — Retrieve all calling parameters

Descrição

public Yaf_Request_Abstract::getParams(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • Yaf_Request_Abstract::setParam() - Set a calling parameter to a request


The getRequestUri purpose

  • « Yaf_Request_Abstract::getParams
  • Yaf_Request_Abstract::getServer »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getRequestUri purpose

Yaf_Request_Abstract::getRequestUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose

Descrição

public Yaf_Request_Abstract::getRequestUri(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrieve SERVER variable

  • « Yaf_Request_Abstract::getRequestUri
  • Yaf_Request_Abstract::isCli »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve SERVER variable

Yaf_Request_Abstract::getServer

(Yaf >=1.0.0)

Yaf_Request_Abstract::getServer — Retrieve SERVER variable

Descrição

public Yaf_Request_Abstract::getServer(string $name, string $default = ?): void

Retrieve SERVER variable

Parâmetros

name

the variable name

default

if this parameter is provide, this will be returned if the variable can not be found

Valor Retornado

Veja Também

  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter
  • Yaf_Request_Abstract::getEnv() - Retrieve ENV varialbe


Determine if request is CLI request

  • « Yaf_Request_Abstract::getServer
  • Yaf_Request_Abstract::isDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is CLI request

Yaf_Request_Abstract::isCli

(Yaf >=1.0.0)

Yaf_Request_Abstract::isCli — Determine if request is CLI request

Descrição

public Yaf_Request_Abstract::isCli(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

bolean

Veja Também

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determin if the request is dispatched

  • « Yaf_Request_Abstract::isCli
  • Yaf_Request_Abstract::isGet »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determin if the request is dispatched

Yaf_Request_Abstract::isDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::isDispatched — Determin if the request is dispatched

Descrição

public Yaf_Request_Abstract::isDispatched(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

boolean

Veja Também

  • Yaf_Dispatcher::dispatch() - Dispatch a request


Determine if request is GET request

  • « Yaf_Request_Abstract::isDispatched
  • Yaf_Request_Abstract::isHead »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is GET request

Yaf_Request_Abstract::isGet

(Yaf >=1.0.0)

Yaf_Request_Abstract::isGet — Determine if request is GET request

Descrição

public Yaf_Request_Abstract::isGet(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

boolean

Veja Também

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determine if request is HEAD request

  • « Yaf_Request_Abstract::isGet
  • Yaf_Request_Abstract::isOptions »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is HEAD request

Yaf_Request_Abstract::isHead

(Yaf >=1.0.0)

Yaf_Request_Abstract::isHead — Determine if request is HEAD request

Descrição

public Yaf_Request_Abstract::isHead(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

boolean

Veja Também

  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determine if request is OPTIONS request

  • « Yaf_Request_Abstract::isHead
  • Yaf_Request_Abstract::isPost »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is OPTIONS request

Yaf_Request_Abstract::isOptions

(Yaf >=1.0.0)

Yaf_Request_Abstract::isOptions — Determine if request is OPTIONS request

Descrição

public Yaf_Request_Abstract::isOptions(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

boolean


Determine if request is POST request

  • « Yaf_Request_Abstract::isOptions
  • Yaf_Request_Abstract::isPut »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is POST request

Yaf_Request_Abstract::isPost

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPost — Determine if request is POST request

Descrição

public Yaf_Request_Abstract::isPost(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

boolean

Veja Também

  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determine if request is PUT request

  • « Yaf_Request_Abstract::isPost
  • Yaf_Request_Abstract::isRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is PUT request

Yaf_Request_Abstract::isPut

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPut — Determine if request is PUT request

Descrição

public Yaf_Request_Abstract::isPut(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

boolean

Veja Também

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determin if request has been routed

  • « Yaf_Request_Abstract::isPut
  • Yaf_Request_Abstract::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determin if request has been routed

Yaf_Request_Abstract::isRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::isRouted — Determin if request has been routed

Descrição

public Yaf_Request_Abstract::isRouted(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

boolean


Determine if request is AJAX request

  • « Yaf_Request_Abstract::isRouted
  • Yaf_Request_Abstract::setActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is AJAX request

Yaf_Request_Abstract::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Abstract::isXmlHttpRequest — Determine if request is AJAX request

Descrição

public Yaf_Request_Abstract::isXmlHttpRequest(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

boolean

Veja Também

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request


Set action name

  • « Yaf_Request_Abstract::isXmlHttpRequest
  • Yaf_Request_Abstract::setBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set action name

Yaf_Request_Abstract::setActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setActionName — Set action name

Descrição

public Yaf_Request_Abstract::setActionName(string $action, bool $format_name = true): void

set action name to request, this is usually used by custom router to set route result controller name.

Parâmetros

action

string, action name, it should in lower case style, like "index" or "foo_bar"

format_name

this is introduced in Yaf 3.2.0, by default Yaf will format the name into lower case style, if this is set to false , Yaf will set the original name to request.

Valor Retornado


Set base URI

  • « Yaf_Request_Abstract::setActionName
  • Yaf_Request_Abstract::setControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set base URI

Yaf_Request_Abstract::setBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::setBaseUri — Set base URI

Descrição

public Yaf_Request_Abstract::setBaseUri(string $uir): bool

Set base URI, base URI is used when doing routing, in routing phase request URI is used to route a request, while base URI is used to skip the leadding part(base URI) of request URI. That is, if comes a request with request URI a/b/c, then if you set base URI to "a/b", only "/c" will be used in routing phase.

Nota:

generally, you don't need to set this, Yaf will determine it automatically.

Parâmetros

uir

base URI

Valor Retornado

bool


Set controller name

  • « Yaf_Request_Abstract::setBaseUri
  • Yaf_Request_Abstract::setDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set controller name

Yaf_Request_Abstract::setControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setControllerName — Set controller name

Descrição

public Yaf_Request_Abstract::setControllerName(string $controller, bool $format_name = true): void

set controller name to request, this is usually used by custom router to set route result controller name.

Parâmetros

controller

string, controller name, this should be in camel style, like "Index" or "Foo_Bar"

format_name

this is introduced in Yaf 3.2.0, by default Yaf will format the name into camel mode, if this is set to false , Yaf will set the original name to request.

Valor Retornado


The setDispatched purpose

  • « Yaf_Request_Abstract::setControllerName
  • Yaf_Request_Abstract::setModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setDispatched purpose

Yaf_Request_Abstract::setDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::setDispatched — The setDispatched purpose

Descrição

public Yaf_Request_Abstract::setDispatched(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Set module name

  • « Yaf_Request_Abstract::setDispatched
  • Yaf_Request_Abstract::setParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set module name

Yaf_Request_Abstract::setModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setModuleName — Set module name

Descrição

public Yaf_Request_Abstract::setModuleName(string $module, bool $format_name = true): void

set module name to request, this is usually used by custom router to set route result module name.

Parâmetros

module

string module name, it should be in camel style, like "Index" or "Foo_Bar"

format_name

this is introduced in Yaf 3.2.0, by default Yaf will format the name into camel mode, if this is set to false , Yaf will set the original name to request.

Valor Retornado


Set a calling parameter to a request

  • « Yaf_Request_Abstract::setModuleName
  • Yaf_Request_Abstract::setRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set a calling parameter to a request

Yaf_Request_Abstract::setParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::setParam — Set a calling parameter to a request

Descrição

public Yaf_Request_Abstract::setParam(string $name, string $value = ?): bool

Set a parameter to request, which can be retrieved by Yaf_Request_Abstract::getParam()

Parâmetros

name

value

Valor Retornado

Veja Também

  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter
  • Yaf_Request_Abstract::getParams() - Retrieve all calling parameters


The setRequestUri purpose

  • « Yaf_Request_Abstract::setParam
  • Yaf_Request_Abstract::setRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setRequestUri purpose

Yaf_Request_Abstract::setRequestUri

(Yaf >=2.1.0)

Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose

Descrição

public Yaf_Request_Abstract::setRequestUri(string $uir): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

uir

Valor Retornado


The setRouted purpose

  • « Yaf_Request_Abstract::setRequestUri
  • Yaf_Request_Http »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setRouted purpose

Yaf_Request_Abstract::setRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::setRouted — The setRouted purpose

Descrição

public Yaf_Request_Abstract::setRouted(string $flag = ?): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

flag

Valor Retornado


The Yaf_Request_Http class

(Yaf >=1.0.0)

Introdução

Any request from client is initialized as a Yaf_Request_Http. you can get the request information like, uri query and post parameters via methods of this class.

Nota:

For security, $_GET/$_POST are readonly in Yaf, which means if you set a value to these global variables, you can not get it from Yaf_Request_Http::getQuery() or Yaf_Request_Http::getPost().

But there do is some usage need such feature, like unit testing. thus Yaf can be built with --enable-yaf-debug, which will allow Yaf read the value user set via script.

in such case, Yaf will throw a E_STRICT warning to remind you about that: Strict Standards: you are running yaf in debug mode

Resumo da classe

class Yaf_Request_Http extends Yaf_Request_Abstract {
/* Propriedades */
/* Métodos */
public __construct(string $request_uri = ?, string $base_uri = ?)
public get(string $name, string $default = ?): mixed
public getCookie(string $name, string $default = ?): mixed
public getFiles(): void
public getPost(string $name, string $default = ?): mixed
public getQuery(string $name, string $default = ?): mixed
public getRaw(): mixed
public getRequest(): void
public isXmlHttpRequest(): bool
/* Métodos herdados */
public Yaf_Request_Abstract::clearParams(): bool
public Yaf_Request_Abstract::getActionName(): void
public Yaf_Request_Abstract::getBaseUri(): void
public Yaf_Request_Abstract::getControllerName(): void
public Yaf_Request_Abstract::getEnv(string $name, string $default = ?): void
public Yaf_Request_Abstract::getException(): void
public Yaf_Request_Abstract::getLanguage(): void
public Yaf_Request_Abstract::getMethod(): string
public Yaf_Request_Abstract::getModuleName(): void
public Yaf_Request_Abstract::getParam(string $name, string $default = ?): mixed
public Yaf_Request_Abstract::getParams(): array
public Yaf_Request_Abstract::getRequestUri(): void
public Yaf_Request_Abstract::getServer(string $name, string $default = ?): void
public Yaf_Request_Abstract::isCli(): bool
public Yaf_Request_Abstract::isDispatched(): bool
public Yaf_Request_Abstract::isGet(): bool
public Yaf_Request_Abstract::isHead(): bool
public Yaf_Request_Abstract::isOptions(): bool
public Yaf_Request_Abstract::isPost(): bool
public Yaf_Request_Abstract::isPut(): bool
public Yaf_Request_Abstract::isRouted(): bool
public Yaf_Request_Abstract::isXmlHttpRequest(): bool
public Yaf_Request_Abstract::setActionName(string $action, bool $format_name = true): void
public Yaf_Request_Abstract::setBaseUri(string $uir): bool
public Yaf_Request_Abstract::setControllerName(string $controller, bool $format_name = true): void
public Yaf_Request_Abstract::setDispatched(): void
public Yaf_Request_Abstract::setModuleName(string $module, bool $format_name = true): void
public Yaf_Request_Abstract::setParam(string $name, string $value = ?): bool
public Yaf_Request_Abstract::setRequestUri(string $uir): void
public Yaf_Request_Abstract::setRouted(string $flag = ?): void
}

Propriedades

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Índice

  • Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http
  • Yaf_Request_Http::get — Retrieve variable from client
  • Yaf_Request_Http::getCookie — Retrieve Cookie variable
  • Yaf_Request_Http::getFiles — The getFiles purpose
  • Yaf_Request_Http::getPost — Retrieve POST variable
  • Yaf_Request_Http::getQuery — Fetch a query parameter
  • Yaf_Request_Http::getRaw — Retrieve Raw request body
  • Yaf_Request_Http::getRequest — The getRequest purpose
  • Yaf_Request_Http::isXmlHttpRequest — Determin if request is Ajax Request


Constructor of Yaf_Request_Http

  • « Yaf_Request_Http
  • Yaf_Request_Http::get »
  • PHP Manual
  • Yaf_Request_Http
  • Constructor of Yaf_Request_Http

Yaf_Request_Http::__construct

(Yaf >=1.0.0)

Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http

Descrição

public Yaf_Request_Http::__construct(string $request_uri = ?, string $base_uri = ?)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrieve variable from client

  • « Yaf_Request_Http::__construct
  • Yaf_Request_Http::getCookie »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve variable from client

Yaf_Request_Http::get

(Yaf >=1.0.0)

Yaf_Request_Http::get — Retrieve variable from client

Descrição

public Yaf_Request_Http::get(string $name, string $default = ?): mixed

Retrieve variable from client, this method will search the name in request pramas, if the name is not found, then will search in POST, GET, Cookie, Server

Parâmetros

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Valor Retornado

Veja Também

  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


Retrieve Cookie variable

  • « Yaf_Request_Http::get
  • Yaf_Request_Http::getFiles »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve Cookie variable

Yaf_Request_Http::getCookie

(Yaf >=1.0.0)

Yaf_Request_Http::getCookie — Retrieve Cookie variable

Descrição

public Yaf_Request_Http::getCookie(string $name, string $default = ?): mixed

Retrieve Cookie variable

Parâmetros

name

the cookie name

default

if this parameter is provide, this will be returned if the cookie can not be found

Valor Retornado

Veja Também

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


The getFiles purpose

  • « Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getPost »
  • PHP Manual
  • Yaf_Request_Http
  • The getFiles purpose

Yaf_Request_Http::getFiles

(Yaf >=1.0.0)

Yaf_Request_Http::getFiles — The getFiles purpose

Descrição

public Yaf_Request_Http::getFiles(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrieve POST variable

  • « Yaf_Request_Http::getFiles
  • Yaf_Request_Http::getQuery »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve POST variable

Yaf_Request_Http::getPost

(Yaf >=1.0.0)

Yaf_Request_Http::getPost — Retrieve POST variable

Descrição

public Yaf_Request_Http::getPost(string $name, string $default = ?): mixed

Retrieve POST variable

Parâmetros

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Valor Retornado

Veja Também

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


Fetch a query parameter

  • « Yaf_Request_Http::getPost
  • Yaf_Request_Http::getRaw »
  • PHP Manual
  • Yaf_Request_Http
  • Fetch a query parameter

Yaf_Request_Http::getQuery

(Yaf >=1.0.0)

Yaf_Request_Http::getQuery — Fetch a query parameter

Descrição

public Yaf_Request_Http::getQuery(string $name, string $default = ?): mixed

Retrieve GET variable

Parâmetros

name

the variable name

default

if this parameter is provide, this will be returned if the variable can not be found

Valor Retornado

Veja Também

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


Retrieve Raw request body

  • « Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getRequest »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve Raw request body

Yaf_Request_Http::getRaw

(Yaf >=3.0.7)

Yaf_Request_Http::getRaw — Retrieve Raw request body

Descrição

public Yaf_Request_Http::getRaw(): mixed

Retrieve Raw request body

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return string on success, FALSE on failure.

Veja Também

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


The getRequest purpose

  • « Yaf_Request_Http::getRaw
  • Yaf_Request_Http::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Http
  • The getRequest purpose

Yaf_Request_Http::getRequest

(Yaf >=1.0.0)

Yaf_Request_Http::getRequest — The getRequest purpose

Descrição

public Yaf_Request_Http::getRequest(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Determin if request is Ajax Request

  • « Yaf_Request_Http::getRequest
  • Yaf_Request_Simple »
  • PHP Manual
  • Yaf_Request_Http
  • Determin if request is Ajax Request

Yaf_Request_Http::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Http::isXmlHttpRequest — Determin if request is Ajax Request

Descrição

public Yaf_Request_Http::isXmlHttpRequest(): bool

Check the request whether it is a Ajax Request.

Nota:

This method depends on the request header: HTTP_X_REQUESTED_WITH, some Javascript library doesn't set this header while doing Ajax request

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

boolean


The Yaf_Request_Simple class

(Yaf >=1.0.0)

Introdução

Yaf_Request_Simple is particularlly used for test puporse. ie. simulate some espacial request under CLI mode.

Resumo da classe

class Yaf_Request_Simple extends Yaf_Request_Abstract {
/* Constantes */
const string SCHEME_HTTP = http;
const string SCHEME_HTTPS = https;
/* Propriedades */
/* Métodos */
public __construct(
string $method = ?,
string $module = ?,
string $controller = ?,
string $action = ?,
array $params = ?
)
public get(): void
public getCookie(): void
public getFiles(): void
public getPost(): void
public getQuery(): void
public getRequest(): void
public isXmlHttpRequest(): void
/* Métodos herdados */
public Yaf_Request_Abstract::clearParams(): bool
public Yaf_Request_Abstract::getActionName(): void
public Yaf_Request_Abstract::getBaseUri(): void
public Yaf_Request_Abstract::getControllerName(): void
public Yaf_Request_Abstract::getEnv(string $name, string $default = ?): void
public Yaf_Request_Abstract::getException(): void
public Yaf_Request_Abstract::getLanguage(): void
public Yaf_Request_Abstract::getMethod(): string
public Yaf_Request_Abstract::getModuleName(): void
public Yaf_Request_Abstract::getParam(string $name, string $default = ?): mixed
public Yaf_Request_Abstract::getParams(): array
public Yaf_Request_Abstract::getRequestUri(): void
public Yaf_Request_Abstract::getServer(string $name, string $default = ?): void
public Yaf_Request_Abstract::isCli(): bool
public Yaf_Request_Abstract::isDispatched(): bool
public Yaf_Request_Abstract::isGet(): bool
public Yaf_Request_Abstract::isHead(): bool
public Yaf_Request_Abstract::isOptions(): bool
public Yaf_Request_Abstract::isPost(): bool
public Yaf_Request_Abstract::isPut(): bool
public Yaf_Request_Abstract::isRouted(): bool
public Yaf_Request_Abstract::isXmlHttpRequest(): bool
public Yaf_Request_Abstract::setActionName(string $action, bool $format_name = true): void
public Yaf_Request_Abstract::setBaseUri(string $uir): bool
public Yaf_Request_Abstract::setControllerName(string $controller, bool $format_name = true): void
public Yaf_Request_Abstract::setDispatched(): void
public Yaf_Request_Abstract::setModuleName(string $module, bool $format_name = true): void
public Yaf_Request_Abstract::setParam(string $name, string $value = ?): bool
public Yaf_Request_Abstract::setRequestUri(string $uir): void
public Yaf_Request_Abstract::setRouted(string $flag = ?): void
}

Propriedades

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Constantes pré-definidas

Yaf_Request_Simple::SCHEME_HTTP

Yaf_Request_Simple::SCHEME_HTTPS

Índice

  • Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple
  • Yaf_Request_Simple::get — The get purpose
  • Yaf_Request_Simple::getCookie — The getCookie purpose
  • Yaf_Request_Simple::getFiles — The getFiles purpose
  • Yaf_Request_Simple::getPost — The getPost purpose
  • Yaf_Request_Simple::getQuery — The getQuery purpose
  • Yaf_Request_Simple::getRequest — The getRequest purpose
  • Yaf_Request_Simple::isXmlHttpRequest — Determin if request is AJAX request


Constructor of Yaf_Request_Simple

  • « Yaf_Request_Simple
  • Yaf_Request_Simple::get »
  • PHP Manual
  • Yaf_Request_Simple
  • Constructor of Yaf_Request_Simple

Yaf_Request_Simple::__construct

(Yaf >=1.0.0)

Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple

Descrição

public Yaf_Request_Simple::__construct(
string $method = ?,
string $module = ?,
string $controller = ?,
string $action = ?,
array $params = ?
)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The get purpose

  • « Yaf_Request_Simple::__construct
  • Yaf_Request_Simple::getCookie »
  • PHP Manual
  • Yaf_Request_Simple
  • The get purpose

Yaf_Request_Simple::get

(Yaf >=1.0.0)

Yaf_Request_Simple::get — The get purpose

Descrição

public Yaf_Request_Simple::get(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getCookie purpose

  • « Yaf_Request_Simple::get
  • Yaf_Request_Simple::getFiles »
  • PHP Manual
  • Yaf_Request_Simple
  • The getCookie purpose

Yaf_Request_Simple::getCookie

(Yaf >=1.0.0)

Yaf_Request_Simple::getCookie — The getCookie purpose

Descrição

public Yaf_Request_Simple::getCookie(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getFiles purpose

  • « Yaf_Request_Simple::getCookie
  • Yaf_Request_Simple::getPost »
  • PHP Manual
  • Yaf_Request_Simple
  • The getFiles purpose

Yaf_Request_Simple::getFiles

(Yaf >=1.0.0)

Yaf_Request_Simple::getFiles — The getFiles purpose

Descrição

public Yaf_Request_Simple::getFiles(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getPost purpose

  • « Yaf_Request_Simple::getFiles
  • Yaf_Request_Simple::getQuery »
  • PHP Manual
  • Yaf_Request_Simple
  • The getPost purpose

Yaf_Request_Simple::getPost

(Yaf >=1.0.0)

Yaf_Request_Simple::getPost — The getPost purpose

Descrição

public Yaf_Request_Simple::getPost(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getQuery purpose

  • « Yaf_Request_Simple::getPost
  • Yaf_Request_Simple::getRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • The getQuery purpose

Yaf_Request_Simple::getQuery

(Yaf >=1.0.0)

Yaf_Request_Simple::getQuery — The getQuery purpose

Descrição

public Yaf_Request_Simple::getQuery(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getRequest purpose

  • « Yaf_Request_Simple::getQuery
  • Yaf_Request_Simple::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • The getRequest purpose

Yaf_Request_Simple::getRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::getRequest — The getRequest purpose

Descrição

public Yaf_Request_Simple::getRequest(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Determin if request is AJAX request

  • « Yaf_Request_Simple::getRequest
  • Yaf_Response_Abstract »
  • PHP Manual
  • Yaf_Request_Simple
  • Determin if request is AJAX request

Yaf_Request_Simple::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::isXmlHttpRequest — Determin if request is AJAX request

Descrição

public Yaf_Request_Simple::isXmlHttpRequest(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Always returns false for Yaf_Request_Simple

Veja Também

  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request
  • Yaf_Request_Http::isXmlHTTPRequest() - Determin if request is Ajax Request


The Yaf_Response_Abstract class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Response_Abstract {
/* Constantes */
const string DEFAULT_BODY = "content";
/* Propriedades */
protected $_header;
protected $_body;
protected $_sendheader;
/* Métodos */
public __construct()
public appendBody(string $content, string $key = ?): bool
public clearBody(string $key = ?): bool
public clearHeaders(): void
public getBody(string $key = ?): mixed
public getHeader(): void
public prependBody(string $content, string $key = ?): bool
public response(): void
protected setAllHeaders(): void
public setBody(string $content, string $key = ?): bool
public setHeader(string $name, string $value, bool $replace = ?): bool
public setRedirect(string $url): bool
private __toString(): string
public __destruct()
}

Propriedades

_header

_body

_sendheader

Índice

  • Yaf_Response_Abstract::appendBody — Append to response body
  • Yaf_Response_Abstract::clearBody — Discard all exists response body
  • Yaf_Response_Abstract::clearHeaders — Discard all set headers
  • Yaf_Response_Abstract::__construct — The __construct purpose
  • Yaf_Response_Abstract::__destruct — The __destruct purpose
  • Yaf_Response_Abstract::getBody — Retrieve a exists content
  • Yaf_Response_Abstract::getHeader — The getHeader purpose
  • Yaf_Response_Abstract::prependBody — The prependBody purpose
  • Yaf_Response_Abstract::response — Send response
  • Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose
  • Yaf_Response_Abstract::setBody — Set content to response
  • Yaf_Response_Abstract::setHeader — Set reponse header
  • Yaf_Response_Abstract::setRedirect — The setRedirect purpose
  • Yaf_Response_Abstract::__toString — Retrieve all bodys as string


Append to response body

  • « Yaf_Response_Abstract
  • Yaf_Response_Abstract::clearBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Append to response body

Yaf_Response_Abstract::appendBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::appendBody — Append to response body

Descrição

public Yaf_Response_Abstract::appendBody(string $content, string $key = ?): bool

Append a content to a exists content block

Parâmetros

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Nota:

this parameter is introduced as of 2.2.0

Valor Retornado

bool

Exemplos

Exemplo #1 Yaf_Response_Abstract::appendBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->prependBody(" World");

echo $response;
?>

O exemplo acima produzirá algo semelhante a:

Hello World

Veja Também

  • Yaf_Config_Ini
  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


Discard all exists response body

  • « Yaf_Response_Abstract::appendBody
  • Yaf_Response_Abstract::clearHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Discard all exists response body

Yaf_Response_Abstract::clearBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearBody — Discard all exists response body

Descrição

public Yaf_Response_Abstract::clearBody(string $key = ?): bool

Clear existsed content

Parâmetros

key

the content key, if you don't specific, then all contents will be cleared.

Nota:

this parameter is introduced as of 2.2.0

Valor Retornado

Veja Também

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::getBody() - Retrieve a exists content


Discard all set headers

  • « Yaf_Response_Abstract::clearBody
  • Yaf_Response_Abstract::__construct »
  • PHP Manual
  • Yaf_Response_Abstract
  • Discard all set headers

Yaf_Response_Abstract::clearHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearHeaders — Discard all set headers

Descrição

public Yaf_Response_Abstract::clearHeaders(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • Yaf_Response_Abstract::getHeader() - The getHeader purpose
  • Yaf_Response_Abstract::setHeader() - Set reponse header


The __construct purpose

  • « Yaf_Response_Abstract::clearHeaders
  • Yaf_Response_Abstract::__destruct »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __construct purpose

Yaf_Response_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__construct — The __construct purpose

Descrição

public Yaf_Response_Abstract::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The __destruct purpose

  • « Yaf_Response_Abstract::__construct
  • Yaf_Response_Abstract::getBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __destruct purpose

Yaf_Response_Abstract::__destruct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__destruct — The __destruct purpose

Descrição

public Yaf_Response_Abstract::__destruct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrieve a exists content

  • « Yaf_Response_Abstract::__destruct
  • Yaf_Response_Abstract::getHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Retrieve a exists content

Yaf_Response_Abstract::getBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::getBody — Retrieve a exists content

Descrição

public Yaf_Response_Abstract::getBody(string $key = ?): mixed

Retrieve a exists content

Parâmetros

key

the content key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used. if you pass in a null, then all contents will be returned as a array

Nota:

this parameter is introduced as of 2.2.0

Valor Retornado

Exemplos

Exemplo #1 Yaf_Response_Abstract::getBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

var_dump($response->getBody()); //default
var_dump($response->getBody(Yaf_Response_Abstract::DEFAULT_BODY)); //same as above
var_dump($response->getBody("footer"));
var_dump($response->getBody(NULL)); //get all
?>

O exemplo acima produzirá algo semelhante a:

string(5) "Hello"
string(5) "Hello"
string(6) " World"
array(2) {
  ["content"]=>
  string(5) "Hello"
  ["footer"]=>
  string(6) " World"
}

Veja Também

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


The getHeader purpose

  • « Yaf_Response_Abstract::getBody
  • Yaf_Response_Abstract::prependBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The getHeader purpose

Yaf_Response_Abstract::getHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::getHeader — The getHeader purpose

Descrição

public Yaf_Response_Abstract::getHeader(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • Yaf_Response_Abstract::setHeader() - Set reponse header
  • Yaf_Response_Abstract::cleanHeaders()


The prependBody purpose

  • « Yaf_Response_Abstract::getHeader
  • Yaf_Response_Abstract::response »
  • PHP Manual
  • Yaf_Response_Abstract
  • The prependBody purpose

Yaf_Response_Abstract::prependBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::prependBody — The prependBody purpose

Descrição

public Yaf_Response_Abstract::prependBody(string $content, string $key = ?): bool

prepend a content to a exists content block

Parâmetros

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Nota:

this parameter is introduced as of 2.2.0

Valor Retornado

bool

Exemplos

Exemplo #1 Yaf_Response_Abstract::prependBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("World")->prependBody("Hello ");

echo $response;
?>

O exemplo acima produzirá algo semelhante a:

Hello World

Veja Também

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


Send response

  • « Yaf_Response_Abstract::prependBody
  • Yaf_Response_Abstract::setAllHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Send response

Yaf_Response_Abstract::response

(Yaf >=1.0.0)

Yaf_Response_Abstract::response — Send response

Descrição

public Yaf_Response_Abstract::response(): void

send response

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Yaf_Response_Abstract::response()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

$response->response();
?>

O exemplo acima produzirá algo semelhante a:

Hello World

Veja Também

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


The setAllHeaders purpose

  • « Yaf_Response_Abstract::response
  • Yaf_Response_Abstract::setBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The setAllHeaders purpose

Yaf_Response_Abstract::setAllHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose

Descrição

protected Yaf_Response_Abstract::setAllHeaders(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Set content to response

  • « Yaf_Response_Abstract::setAllHeaders
  • Yaf_Response_Abstract::setHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Set content to response

Yaf_Response_Abstract::setBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::setBody — Set content to response

Descrição

public Yaf_Response_Abstract::setBody(string $content, string $key = ?): bool

Set content to response

Parâmetros

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Nota:

this parameter is introduced as of 2.2.0

Valor Retornado

Exemplos

Exemplo #1 Yaf_Response_Abstract::setBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

print_r($response);
echo $response;
?>

O exemplo acima produzirá algo semelhante a:

Yaf_Response_Http Object
(
    [_header:protected] => Array
        (
        )

    [_body:protected] => Array
        (
            [content] => Hello
            [footer] =>  World
        )

    [_sendheader:protected] => 1
    [_response_code:protected] => 200
)
Hello World

Veja Também

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


Set reponse header

  • « Yaf_Response_Abstract::setBody
  • Yaf_Response_Abstract::setRedirect »
  • PHP Manual
  • Yaf_Response_Abstract
  • Set reponse header

Yaf_Response_Abstract::setHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::setHeader — Set reponse header

Descrição

public Yaf_Response_Abstract::setHeader(string $name, string $value, bool $replace = ?): bool

Used to send a HTTP header

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • Yaf_Response_Abstract::getHeader() - The getHeader purpose
  • Yaf_Response_Abstract::cleanHeaders()


The setRedirect purpose

  • « Yaf_Response_Abstract::setHeader
  • Yaf_Response_Abstract::__toString »
  • PHP Manual
  • Yaf_Response_Abstract
  • The setRedirect purpose

Yaf_Response_Abstract::setRedirect

(Yaf >=1.0.0)

Yaf_Response_Abstract::setRedirect — The setRedirect purpose

Descrição

public Yaf_Response_Abstract::setRedirect(string $url): bool

Parâmetros

url

address redircted to

Valor Retornado


Retrieve all bodys as string

  • « Yaf_Response_Abstract::setRedirect
  • Yaf_Route_Interface »
  • PHP Manual
  • Yaf_Response_Abstract
  • Retrieve all bodys as string

Yaf_Response_Abstract::__toString

(Yaf >=1.0.0)

Yaf_Response_Abstract::__toString — Retrieve all bodys as string

Descrição

private Yaf_Response_Abstract::__toString(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The Yaf_Route_Interface class

(Yaf >=1.0.0)

Introdução

Yaf_Route_Interface used for developer defined their custom route.

Resumo da classe

class Yaf_Route_Interface {
/* Métodos */
abstract public assemble(array $info, array $query = ?): string
abstract public route(Yaf_Request_Abstract $request): bool
}

Índice

  • Yaf_Route_Interface::assemble — Assemble a request
  • Yaf_Route_Interface::route — Route a request


Assemble a request

  • « Yaf_Route_Interface
  • Yaf_Route_Interface::route »
  • PHP Manual
  • Yaf_Route_Interface
  • Assemble a request

Yaf_Route_Interface::assemble

(Yaf >=2.3.0)

Yaf_Route_Interface::assemble — Assemble a request

Descrição

abstract public Yaf_Route_Interface::assemble(array $info, array $query = ?): string

this method returns a url according to the argument info, and append query strings to the url according to the argument query.

a route should implement this method according to its own route rules, and do a reverse progress.

Parâmetros

info

query

Valor Retornado


Route a request

  • « Yaf_Route_Interface::assemble
  • Yaf_Route_Map »
  • PHP Manual
  • Yaf_Route_Interface
  • Route a request

Yaf_Route_Interface::route

(Yaf >=1.0.0)

Yaf_Route_Interface::route — Route a request

Descrição

abstract public Yaf_Route_Interface::route(Yaf_Request_Abstract $request): bool

Yaf_Route_Interface::route() is the only method that a custom route should implement.

Nota:

since of 2.3.0, there is another method should also be implemented, see Yaf_Route_Interface::assemble().

if this method return true, then the route process will be end. otherwise, Yaf_Router will call next route in the route stack to route request.

This method would set the route result to the parameter request, by
calling Yaf_Request_Abstract::setControllerName(),
Yaf_Request_Abstract::setActionName() and
Yaf_Request_Abstract::setModuleName().

This method should also call Yaf_Request_Abstract::setRouted() to make the request routed at last.

Parâmetros

request

A Yaf_Request_Abstract instance.

Valor Retornado


The Yaf_Route_Map class

(Yaf >=1.0.0)

Introdução

Yaf_Route_Map is a built-in route, it simply convert a URI endpoint (that part of the URI which comes after the base URI: see Yaf_Request_Abstract::setBaseUri()) to a controller name or action name(depends on the parameter passed to Yaf_Route_Map::__construct()) in following rule: A => controller A. A/B/C => controller A_B_C. A/B/C/D/E => controller A_B_C_D_E.

If the second parameter of Yaf_Route_Map::__construct() is specified, then only the part before delimiter of URI will used to routing, the part after it is used to routing request parameters (see the example section of Yaf_Route_Map::__construct()).

Resumo da classe

class Yaf_Route_Map implements Yaf_Route_Interface {
/* Propriedades */
protected $_ctl_router;
protected $_delimiter;
/* Métodos */
public __construct(string $controller_prefer = false, string $delimiter = "")
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
}

Propriedades

_ctl_router

_delimiter

Índice

  • Yaf_Route_Map::assemble — Assemble a url
  • Yaf_Route_Map::__construct — The __construct purpose
  • Yaf_Route_Map::route — The route purpose


Assemble a url

  • « Yaf_Route_Map
  • Yaf_Route_Map::__construct »
  • PHP Manual
  • Yaf_Route_Map
  • Assemble a url

Yaf_Route_Map::assemble

(Yaf >=2.3.0)

Yaf_Route_Map::assemble — Assemble a url

Descrição

public Yaf_Route_Map::assemble(array $info, array $query = ?): string

Assemble a url.

Parâmetros

info

query

Valor Retornado

Returns string on success or null on failure.

Erros/Exceções

May throw Yaf_Exception_TypeError.

Exemplos

Exemplo #1 Yaf_Route_Map::assemble()example

<?php

$router = new Yaf_Router();

$route = new Yaf_Route_Map();

$router->addRoute("map", $route);

var_dump($router->getRoute('map')->assemble(
array(
':c' => 'foo_bar'
),
array(
'tkey1' => 'tval1',
'tkey2' => 'tval2'
)
)
);

$route = new Yaf_Route_Map(true, '_');
$router->addRoute("map", $route);

var_dump($router->getRoute('map')->assemble(
array(
':a' => 'foo_bar'
),
array(
'tkey1' => 'tval1',
'tkey2' => 'tval2'
)
)
);

O exemplo acima produzirá algo semelhante a:

string(%d) "/foo/bar?tkey1=tval1&tkey2=tval2"
string(%d) "/foo/bar/_/tkey1/tval1/tkey2/tval2"


The __construct purpose

  • « Yaf_Route_Map::assemble
  • Yaf_Route_Map::route »
  • PHP Manual
  • Yaf_Route_Map
  • The __construct purpose

Yaf_Route_Map::__construct

(Yaf >=1.0.0)

Yaf_Route_Map::__construct — The __construct purpose

Descrição

public Yaf_Route_Map::__construct(string $controller_prefer = false, string $delimiter = "")

Parâmetros

controller_prefer

Whether the result should considering as controller or action

delimiter

Valor Retornado

Exemplos

Exemplo #1 Yaf_Route_Map()example

<?php
/**
* Add a map route to Yaf_Router route stack
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Map());
?>

O exemplo acima produzirá algo semelhante a:

/* for http://yourdomain.com/product/foo/bar
 * route will result in following values:
 */
array(
  "controller" => "product_foo_bar",
)

Exemplo #2 Yaf_Route_Map()example

<?php
/**
* Add a map route to Yaf_Router route stack
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Map(true, "_"));
?>

O exemplo acima produzirá algo semelhante a:

/* for http://yourdomain.com/user/list/_/foo/22
 * route will result in following values:
 */
array(
    "action" => "user_list",
)

/**
 * and request parameters:
 */
array(
  "foo"   => 22,
)

Exemplo #3 Yaf_Route_Map()example

<?php
/**
* Add a map route to Yaf_Router route stack by calling addconfig
*/
$config = array(
"name" => array(
"type" => "map", //Yaf_Route_Map route
"controllerPrefer" => FALSE,
"delimiter" => "#!",
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>

Veja Também

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite


The route purpose

  • « Yaf_Route_Map::__construct
  • Yaf_Route_Regex »
  • PHP Manual
  • Yaf_Route_Map
  • The route purpose

Yaf_Route_Map::route

(Yaf >=1.0.0)

Yaf_Route_Map::route — The route purpose

Descrição

public Yaf_Route_Map::route(Yaf_Request_Abstract $request): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

request

Valor Retornado


The Yaf_Route_Regex class

(Yaf >=1.0.0)

Introdução

Yaf_Route_Regex is the most flexible route among the Yaf built-in routes.

Resumo da classe

class Yaf_Route_Regex extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Propriedades */
protected $_route;
protected $_default;
protected $_maps;
protected $_verify;
/* Métodos */
public __construct(
string $match,
array $route,
array $map = ?,
array $verify = ?,
string $reverse = ?
)
public assemble(array $info, array $query = ?): ?string
public route(Yaf_Request_Abstract $request): bool
/* Métodos herdados */
abstract public Yaf_Route_Interface::assemble(array $info, array $query = ?): string
abstract public Yaf_Route_Interface::route(Yaf_Request_Abstract $request): bool
}

Propriedades

_route

_default

_maps

_verify

Índice

  • Yaf_Route_Regex::assemble — Assemble a url
  • Yaf_Route_Regex::__construct — Yaf_Route_Regex constructor
  • Yaf_Route_Regex::route — The route purpose


Assemble a url

  • « Yaf_Route_Regex
  • Yaf_Route_Regex::__construct »
  • PHP Manual
  • Yaf_Route_Regex
  • Assemble a url

Yaf_Route_Regex::assemble

(Yaf >=2.3.0)

Yaf_Route_Regex::assemble — Assemble a url

Descrição

public Yaf_Route_Regex::assemble(array $info, array $query = ?): ?string

Assemble a url.

Parâmetros

info

query

Valor Retornado

Returns string on success or null on failure.

Exemplos

Exemplo #1 Yaf_Route_Regex::assemble()example

<?php

$router = new Yaf_Router();

$route = new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#",
array(
'controller' => "product", //route to product controller,
),
array(),
array(),
'/:m/:c/:a'
);

$router->addRoute("regex", $route);

var_dump($router->getRoute('regex')->assemble(
array(
':m' => 'module',
':c' => 'controller',
':a' => 'action'
),
array(
'tkey1' => 'tval1',
'tkey2' =>
'tval2'
)
)
);

O exemplo acima produzirá algo semelhante a:

string(49) "/module/controller/action?tkey1=tval1&tkey2=tval2"


Yaf_Route_Regex constructor

  • « Yaf_Route_Regex::assemble
  • Yaf_Route_Regex::route »
  • PHP Manual
  • Yaf_Route_Regex
  • Yaf_Route_Regex constructor

Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__construct — Yaf_Route_Regex constructor

Descrição

public Yaf_Route_Regex::__construct(
string $match,
array $route,
array $map = ?,
array $verify = ?,
string $reverse = ?
)

Parâmetros

match

A complete Regex pattern, will be used to match a request uri, if doesn't matched, Yaf_Route_Regex will return false.

route

When the match pattern matches the request uri, Yaf_Route_Regex will use this to decide which m/c/a to routed.

either of m/c/a in this array is optianl, if you don't assgian a specific value, it will be routed to default.

map

A array to assign name to the captrues in the match result.

verify

reverse

a string, used to assemble url, see Yaf_Route_Regex::assemble().

Nota:

this parameter is introduced in 2.3.0

Valor Retornado

Exemplos

Exemplo #1 Yaf_Route_Regex()example

<?php
/**
* Add a regex route to Yaf_Router route stack
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#", //match request uri leading "/product"
array(
'controller' => "product", //route to product controller,
),
array(
1 => "name", // now you can call $request->getParam("name")
2 => "id", // to get the first captrue in the match pattern.
)
)
);
?>

Exemplo #2 Yaf_Route_Regex(as of 2.3.0)()example

<?php
/**
* Use match result as MVC name
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#i", //match request uri leading "/product"
array(
'controller' => ":name", // route to :name, which is $1 in the match result as controller name
),
array(
1 => "name", // now you can call $request->getParam("name")
2 => "id", // to get the first captrue in the match pattern.
)
)
);
?>

Exemplo #3 Yaf_Route_Regex and named capture ground(as of 2.3.0)()example

<?php
/**
* Use match result as MVC name
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/(?<name>[^/]+)/([^/])+#i", //match request uri leading "/product"
array(
'controller' => ":name", // route to :name,
// which is named capture group 'name' in the match result as controller name
),
array(
2 => "id", // to get the first captrue in the match pattern.
)
)
);
?>

Exemplo #4 Yaf_Route_Regex()example

<?php
/**
* Add a regex route to Yaf_Router route stack by calling addconfig
*/
$config = array(
"name" => array(
"type" => "regex", //Yaf_Route_Regex route
"match" => "#(.*)#", //match arbitrary request uri
"route" => array(
'controller' => "product", //route to product controller,
'action' => "dummy", //route to dummy action
),
"map" => array(
1 => "uri", // now you can call $request->getParam("uri")
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>

Veja Também

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Regex::__construct
  • Yaf_Route_Rewrite »
  • PHP Manual
  • Yaf_Route_Regex
  • The route purpose

Yaf_Route_Regex::route

(Yaf >=1.0.0)

Yaf_Route_Regex::route — The route purpose

Descrição

public Yaf_Route_Regex::route(Yaf_Request_Abstract $request): bool

Route a incoming request.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

request

Valor Retornado

If the pattern given by the first parameter of Yaf_Route_Regex::_construct() matche the request uri, return true, otherwise return false.


The Yaf_Route_Rewrite class

(Yaf >=1.0.0)

Introdução

For usage, please see the example section of Yaf_Route_Rewrite::__construct()

Resumo da classe

class Yaf_Route_Rewrite extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Propriedades */
protected $_route;
protected $_default;
protected $_verify;
/* Métodos */
public __construct(string $match, array $route, array $verify = ?)
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
/* Métodos herdados */
abstract public Yaf_Route_Interface::assemble(array $info, array $query = ?): string
abstract public Yaf_Route_Interface::route(Yaf_Request_Abstract $request): bool
}

Propriedades

_route

_default

_verify

Índice

  • Yaf_Route_Rewrite::assemble — Assemble a url
  • Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor
  • Yaf_Route_Rewrite::route — The route purpose


Assemble a url

  • « Yaf_Route_Rewrite
  • Yaf_Route_Rewrite::__construct »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Assemble a url

Yaf_Route_Rewrite::assemble

(Yaf >=2.3.0)

Yaf_Route_Rewrite::assemble — Assemble a url

Descrição

public Yaf_Route_Rewrite::assemble(array $info, array $query = ?): string

Assemble a url.

Parâmetros

info

query

Valor Retornado

Returns string.

Exemplos

Exemplo #1 Yaf_Route_Rewrite::assemble()example

router = new Yaf_Router();

$route = new Yaf_Route_Rewrite(
"/product/:name/:id/*",
array(
'controller' => "product",
),
array()
);

$router->addRoute("rewrite", $route);

var_dump($router->getRoute('rewrite')->assemble(
array(
':name' => 'foo',
':id' => 'bar',
':tmpkey1' => 'tmpval1'
),
array(
'tkey1' => 'tval1',
'tkey2' => 'tval2'
)
)
);

O exemplo acima produzirá algo semelhante a:

string(57) "/product/foo/bar/tmpkey1/tmpval1/?tkey1=tval1&tkey2=tval2"


Yaf_Route_Rewrite constructor

  • « Yaf_Route_Rewrite::assemble
  • Yaf_Route_Rewrite::route »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Yaf_Route_Rewrite constructor

Yaf_Route_Rewrite::__construct

(Yaf >=1.0.0)

Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor

Descrição

public Yaf_Route_Rewrite::__construct(string $match, array $route, array $verify = ?)

Parâmetros

match

A pattern, will be used to match a request uri, if it doesn't match, Yaf_Route_Rewrite will return false.

You can use :name style to name segments matched, and use * to match the rest of the URL segments.

route

When the match pattern matches the request uri, Yaf_Route_Rewrite will use this to decide which module/controller/action is the destination.

Either of module/controller/action in this array is optional, if you don't assign a specific value, it will be routed to default.

verify

Valor Retornado

Exemplos

Exemplo #1 Yaf_Route_Rewrite()example

<?php
/**
* Add a rewrite route to Yaf_Router route stack
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_rewrite(
"/product/:name/:id/*", //match request uri leading "/product"
array(
'controller' => "product", //route to product controller,
),
)
);
?>

O exemplo acima produzirá algo semelhante a:

/* for http://yourdomain.com/product/foo/22/foo/bar
 * route will result in following values:
 */
array(
  "controller" => "product",
  "module"     => "index", //(default)
  "action"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "name" => "foo",
  "id"   => 22,
  "foo"  => bar
)

Exemplo #2 Yaf_Route_Rewrite()example

<?php
/**
* Add a rewrite route to Yaf_Router route stack by calling addconfig
*/
$config = array(
"name" => array(
"type" => "rewrite", //Yaf_Route_Rewrite route
"match" => "/user-list/:id", //match only /user/list/?/
"route" => array(
'controller' => "user", //route to user controller,
'action' => "list", //route to list action
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>

O exemplo acima produzirá algo semelhante a:

/* for http://yourdomain.com/user-list/22
 * route will result in following values:
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "id"   => 22,
)

Exemplo #3 Yaf_Route_Rewrite(as of 2.3.0)()example

<?php
/**
* Add a rewrite route use match result as m/c/a name
*/
$config = array(
"name" => array(
"type" => "rewrite",
"match" => "/user-list/:a/:id", //match only /user-list/*
"route" => array(
'controller' => "user", //route to user controller,
'action' => ":a", //route to :a action
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>

O exemplo acima produzirá algo semelhante a:

/* for http://yourdomain.com/user-list/list/22
 * route will result in following values:
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "id"   => 22,
)

Veja Também

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Rewrite::__construct
  • Yaf_Router »
  • PHP Manual
  • Yaf_Route_Rewrite
  • The route purpose

Yaf_Route_Rewrite::route

(Yaf >=1.0.0)

Yaf_Route_Rewrite::route — The route purpose

Descrição

public Yaf_Route_Rewrite::route(Yaf_Request_Abstract $request): bool

Parâmetros

request

Valor Retornado


The Yaf_Router class

(Yaf >=1.0.0)

Introdução

Yaf_Router is the standard framework router. Routing is the process of taking a URI endpoint (that part of the URI which comes after the base URI: see Yaf_Request_Abstract::setBaseUri()) and decomposing it into parameters to determine which module, controller, and action of that controller should receive the request. This values of the module, controller, action and other parameters are packaged into a Yaf_Request_Abstract object which is then processed by Yaf_Dispatcher. Routing occurs only once: when the request is initially received and before the first controller is dispatched. Yaf_Router is designed to allow for mod_rewrite-like functionality using pure PHP structures. It is very loosely based on Ruby on Rails routing and does not require any prior knowledge of webserver URL rewriting. It is designed to work with a single Apache mod_rewrite rule (one of):

Exemplo #1 Rewrite rule for Apache

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
or (preferred):

Exemplo #2 Rewrite rule for Apache

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
If using Lighttpd, the following rewrite rule is valid:

Exemplo #3 Rewrite rule for Lighttpd

url.rewrite-once = (
  ".*\?(.*)$" => "/index.php?$1",
  ".*\.(js|ico|gif|jpg|png|css|html)$" => "$0",
  "" => "/index.php"
)
If using Nginx, use the following rewrite rule:

Exemplo #4 Rewrite rule for Nginx

server {
  listen ****;
  server_name  yourdomain.com;
  root   document_root;
  index  index.php index.html;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}

Default route

Yaf_Router comes preconfigured with a default route Yaf_Route_Static, which will match URIs in the shape of controller/action. Additionally, a module name may be specified as the first path element, allowing URIs of the form module/controller/action. Finally, it will also match any additional parameters appended to the URI by default - controller/action/var1/value1/var2/value2.

Nota:

Module name must be defined in config, considering application.module="Index,Foo,Bar", in this case, only index, foo and bar can be considered as a module name. if doesn't config, there is only one module named "Index".

Some examples of how such routes are matched:

Exemplo #5 Yaf_Route_Static(default route)example

// Assuming the following configure:
$conf = array(
   "application" => array(
      "modules" => "Index,Blog",
   ),
);

Controller only:
http://example/news
    controller == news
Action only(when defined yaf.action_prefer=1 in php.ini)
    action  == news

Invalid module maps to controller name:
http://example/foo
    controller == foo

Module + controller:
http://example/blog/archive
    module     == blog
    controller == archive

Module + controller + action:
http://example/blog/archive/list
    module     == blog
    controller == archive
    action     == list

Module + controller + action + params:
http://example/blog/archive/list/sort/alpha/date/desc
    module     == blog
    controller == archive
    action     == list
    sort       == alpha
    date       == desc

Resumo da classe

class Yaf_Router {
/* Propriedades */
protected $_routes;
protected $_current;
/* Métodos */
public __construct()
public addConfig(Yaf_Config_Abstract $config): bool
public addRoute(string $name, Yaf_Route_Abstract $route): bool
public getCurrentRoute(): string
public getRoute(string $name): Yaf_Route_Interface
public getRoutes(): mixed
public route(Yaf_Request_Abstract $request): bool
}

Propriedades

_routes

registered routes stack

_current

after routing phase, this indicated the name of which route is used to route current request. you can get this name by Yaf_Router::getCurrentRoute().

Índice

  • Yaf_Router::addConfig — Add config-defined routes into Router
  • Yaf_Router::addRoute — Add new Route into Router
  • Yaf_Router::__construct — Yaf_Router constructor
  • Yaf_Router::getCurrentRoute — Get the effective route name
  • Yaf_Router::getRoute — Retrieve a route by name
  • Yaf_Router::getRoutes — Retrieve registered routes
  • Yaf_Router::route — The route purpose


Add config-defined routes into Router

  • « Yaf_Router
  • Yaf_Router::addRoute »
  • PHP Manual
  • Yaf_Router
  • Add config-defined routes into Router

Yaf_Router::addConfig

(Yaf >=1.0.0)

Yaf_Router::addConfig — Add config-defined routes into Router

Descrição

public Yaf_Router::addConfig(Yaf_Config_Abstract $config): bool

Add routes defined by configs into Yaf_Router's route stack

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An Yaf_Config_Abstract instance, which should contains one or more valid route configs

Exemplos

Exemplo #1 application.ini()example

;the order is very important, the prior one will be called first

;a rewrite route match request /product/*/*
routes.route_name.type="rewrite"
routes.route_name.match="/product/:name/:value"
routes.route_name.route.controller=product
routes.route_name.route.action=info

;a regex route match request /list/*/*
routes.route_name1.type="regex"
routes.route_name1.match="#^list/([^/]*)/([^/]*)#"
routes.route_name1.route.controller=Index
routes.route_name1.route.action=action
routes.route_name1.map.1=name
routes.route_name1.map.2=value

;a simple route match /**?c=controller&a=action&m=module
routes.route_name2.type="simple"
routes.route_name2.controller=c
routes.route_name2.module=m
routes.route_name2.action=a

;a simple router match /**?r=PATH_INFO
routes.route_name3.type="supervar"
routes.route_name3.varname=r

;a map route match any request to controller
routes.route_name4.type="map"
routes.route_name4.controllerPrefer=TRUE
routes.route_namer.delimiter="#!"

Exemplo #2 Yaf_Dispatcher::autoConfig()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
public function _initConfig() {
$config = Yaf_Application::app()->getConfig();
Yaf_Registry::set("config", $config);
}

public function _initRoute(Yaf_Dispatcher $dispatcher) {
$router = $dispatcher->getRouter();
/**
* we can add some pre-defined routes in application.ini
*/
$router->addConfig(Yaf_Registry::get("config")->routes);
}
?>

Veja Também

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Add new Route into Router

  • « Yaf_Router::addConfig
  • Yaf_Router::__construct »
  • PHP Manual
  • Yaf_Router
  • Add new Route into Router

Yaf_Router::addRoute

(Yaf >=1.0.0)

Yaf_Router::addRoute — Add new Route into Router

Descrição

public Yaf_Router::addRoute(string $name, Yaf_Route_Abstract $route): bool

defaultly, Yaf_Router using a Yaf_Route_Static as its defualt route. you can add new routes into router's route stack by calling this method.

the newer route will be called before the older(route stack), and if the newer router return true, the router process will be end. otherwise, the older one will be called.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Yaf_Dispatcher::autoRender()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
public function _initConfig() {
$config = Yaf_Application::app()->getConfig();
Yaf_Registry::set("config", $config);
}

public function _initRoute(Yaf_Dispatcher $dispatcher) {
$router = $dispatcher->getRouter();
/**
* we can add some pre-defined routes in application.ini
*/
$router->addConfig(Yaf_Registry::get("config")->routes);
/**
* add a Rewrite route, then for a request uri:
* http://example.com/product/list/22/foo
* will be matched by this route, and result:
*
* [module] =>
* [controller] => product
* [action] => info
* [method] => GET
* [params:protected] => Array
* (
* [id] => 22
* [name] => foo
* )
*
*/
$route = new Yaf_Route_Rewrite(
"/product/list/:id/:name",
array(
"controller" => "product",
"action" => "info",
)
);

$router->addRoute('dummy', $route);
}
}
?>

Veja Também

  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Yaf_Router constructor

  • « Yaf_Router::addRoute
  • Yaf_Router::getCurrentRoute »
  • PHP Manual
  • Yaf_Router
  • Yaf_Router constructor

Yaf_Router::__construct

(Yaf >=1.0.0)

Yaf_Router::__construct — Yaf_Router constructor

Descrição

public Yaf_Router::__construct()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Get the effective route name

  • « Yaf_Router::__construct
  • Yaf_Router::getRoute »
  • PHP Manual
  • Yaf_Router
  • Get the effective route name

Yaf_Router::getCurrentRoute

(Yaf >=1.0.0)

Yaf_Router::getCurrentRoute — Get the effective route name

Descrição

public Yaf_Router::getCurrentRoute(): string

Get the name of the route which is effective in the route process.

Nota:

You should call this method after the route process finished, since before that, this method will always return null.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

String, the name of the effective route.

Exemplos

Exemplo #1 Register some routes in Bootstrap

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
public function _initConfig() {
$config = Yaf_Application::app()->getConfig();
Yaf_Registry::set("config", $config);
}

public function _initRoute(Yaf_Dispatcher $dispatcher) {
$router = $dispatcher->getRouter();
$rewrite_route = new Yaf_Route_Rewrite(
"/product/list/:page",
array(
"controller" => "product",
"action" => "list",
)
);

$regex_route = new Yaf_Route_Rewrite(
"#^/product/info/(\d+)",
array(
"controller" => "product",
"action" => "info",
)
);

$router->addRoute('rewrite', $rewrite_route)->addRoute('regex', $regex_route);
}

/**
* register plugin
*/
public function __initPlugins(Yaf_Dispatcher $dispatcher) {
$dispatcher->registerPlugin(new DummyPlugin());
}
}
?>

Exemplo #2 plugin Dummy.php (under application.directory/plugins)

<?php
class DummyPlugin extends Yaf_Plugin_Abstract {
public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
var_dump(Yaf_Dispatcher::getInstance()->getRouter()->getCurrentRoute());
}
}
?>

O exemplo acima produzirá algo semelhante a:

/* for http://yourdomain.com/product/list/1
 * DummyPlugin will output:
 */
string(7) "rewrite"

/* for http://yourdomain.com/product/info/34
 * DummyPlugin will output:
 */
string(5) "regex"

/* for other request URI
 * DummyPlugin will output:
 */
string(8) "_default"

Veja Também

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Add new Route into Router


Retrieve a route by name

  • « Yaf_Router::getCurrentRoute
  • Yaf_Router::getRoutes »
  • PHP Manual
  • Yaf_Router
  • Retrieve a route by name

Yaf_Router::getRoute

(Yaf >=1.0.0)

Yaf_Router::getRoute — Retrieve a route by name

Descrição

public Yaf_Router::getRoute(string $name): Yaf_Route_Interface

Retrieve a route by name, see also Yaf_Router::getCurrentRoute()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::getCurrentRoute() - Get the effective route name


Retrieve registered routes

  • « Yaf_Router::getRoute
  • Yaf_Router::route »
  • PHP Manual
  • Yaf_Router
  • Retrieve registered routes

Yaf_Router::getRoutes

(Yaf >=1.0.0)

Yaf_Router::getRoutes — Retrieve registered routes

Descrição

public Yaf_Router::getRoutes(): mixed

Retrieve registered routes

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The route purpose

  • « Yaf_Router::getRoutes
  • Yaf_Route_Simple »
  • PHP Manual
  • Yaf_Router
  • The route purpose

Yaf_Router::route

(Yaf >=1.0.0)

Yaf_Router::route — The route purpose

Descrição

public Yaf_Router::route(Yaf_Request_Abstract $request): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The Yaf_Route_Simple class

(Yaf >=1.0.0)

Introdução

Yaf_Route_Simple will match the query string, and find the route info.

all you need to do is tell Yaf_Route_Simple what key in the $_GET is module, what key is controller, and what key is action.

Yaf_Route_Simple::route() will always return true, so it is important put Yaf_Route_Simple in the front of the Route stack, otherwise all the other routes will not be called.

Resumo da classe

class Yaf_Route_Simple implements Yaf_Route_Interface {
/* Propriedades */
protected $controller;
protected $module;
protected $action;
/* Métodos */
public __construct(string $module_name, string $controller_name, string $action_name)
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
}

Propriedades

controller

module

action

Índice

  • Yaf_Route_Simple::assemble — Assemble a url
  • Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor
  • Yaf_Route_Simple::route — Route a request


Assemble a url

  • « Yaf_Route_Simple
  • Yaf_Route_Simple::__construct »
  • PHP Manual
  • Yaf_Route_Simple
  • Assemble a url

Yaf_Route_Simple::assemble

(Yaf >=2.3.0)

Yaf_Route_Simple::assemble — Assemble a url

Descrição

public Yaf_Route_Simple::assemble(array $info, array $query = ?): string

Assemble a url.

Parâmetros

info

query

Valor Retornado

Returns a string.

Erros/Exceções

Throws Yaf_Exception_TypeError if info keys ':c' or ':a' are not set.

Exemplos

Exemplo #1 Yaf_Route_Simple::assemble()example

<?php

$router = new Yaf_Router();

$route = new Yaf_Route_Simple('m', 'c', 'a');

$router->addRoute("simple", $route);

var_dump($router->getRoute('simple')->assemble(
array(
':a' => 'yafaction',
'tkey' => 'tval',
':c' => 'yafcontroller',
':m' => 'yafmodule'
),
array(
'tkey1' => 'tval1',
'tkey2' => 'tval2'
)
));

O exemplo acima produzirá algo semelhante a:

string(64) "?m=yafmodule&c=yafcontroller&a=yafaction&tkey1=tval1&tkey2=tval2"


Yaf_Route_Simple constructor

  • « Yaf_Route_Simple::assemble
  • Yaf_Route_Simple::route »
  • PHP Manual
  • Yaf_Route_Simple
  • Yaf_Route_Simple constructor

Yaf_Route_Simple::__construct

(Yaf >=1.0.0)

Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor

Descrição

public Yaf_Route_Simple::__construct(string $module_name, string $controller_name, string $action_name)

Yaf_Route_Simple will get route info from query string. and the parameters of this constructor will used as keys while searching for the route info in $_GET.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

module_name

The key name of the module info.

controller_name

the key name of the controller info.

action_name

the key name of the action info.

Valor Retornado

Always return true.

Exemplos

Exemplo #1 Yaf_Route_Simple::route()example

<?php
$route = new Yaf_Route_Simple("m", "controller", "act");
Yaf_Router::getInstance()->addRoute("simple", $route);
?>

Exemplo #2 Yaf_Route_Simple::route()example

Request: http://yourdomain.com/path/?controller=a&act=b
=> module = default(index), controller = a, action = b

Request: http://yourdomain.com/path
=> module = default(index), controller = default(index), action = default(index)

Veja Também

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Static::route() - Route a request
  • Yaf_Route_Regex::route() - The route purpose
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


Route a request

  • « Yaf_Route_Simple::__construct
  • Yaf_Route_Static »
  • PHP Manual
  • Yaf_Route_Simple
  • Route a request

Yaf_Route_Simple::route

(Yaf >=1.0.0)

Yaf_Route_Simple::route — Route a request

Descrição

public Yaf_Route_Simple::route(Yaf_Request_Abstract $request): bool

see Yaf_Route_Simple::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

request

Valor Retornado

always be true

Veja Também

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Static::route() - Route a request
  • Yaf_Route_Regex::route() - The route purpose
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


The Yaf_Route_Static class

(Yaf >=1.0.0)

Introdução

Defaultly, Yaf_Router only have a Yaf_Route_Static as its default route.

And Yaf_Route_Static is designed to handle the 80% requirement.

please *NOTE* that it is unnecessary to instance a Yaf_Route_Static, also unecesary to add it into Yaf_Router's routes stack, since there is always be one in Yaf_Router's routes stack, and always be called at the last time.

Resumo da classe

class Yaf_Route_Static implements Yaf_Router {
/* Métodos */
public assemble(array $info, array $query = ?): string
public match(string $uri): void
public route(Yaf_Request_Abstract $request): bool
}

Índice

  • Yaf_Route_Static::assemble — Assemble a url
  • Yaf_Route_Static::match — The match purpose
  • Yaf_Route_Static::route — Route a request


Assemble a url

  • « Yaf_Route_Static
  • Yaf_Route_Static::match »
  • PHP Manual
  • Yaf_Route_Static
  • Assemble a url

Yaf_Route_Static::assemble

(Yaf >=2.3.0)

Yaf_Route_Static::assemble — Assemble a url

Descrição

public Yaf_Route_Static::assemble(array $info, array $query = ?): string

Assemble a url.

Parâmetros

info

query

Valor Retornado

Returns a string.

Erros/Exceções

Throws Yaf_Exception_TypeError if info keys ':c' and ':a' are not set.

Exemplos

Exemplo #1 Yaf_Route_Static::assemble()example

<?php

$router = new Yaf_Router();

$route = new Yaf_Route_Static();

$router->addRoute("static", $route);

var_dump($router->getRoute('static')->assemble(
array(
':a' => 'yafaction',
'tkey' => 'tval',
':c' => 'yafcontroller',
':m' => 'yafmodule'
),
)
);

var_dump($router->getRoute('static')->assemble(
array(
':a' => 'yafaction',
'tkey' => 'tval',
':c' => 'yafcontroller',
':m' => 'yafmodule'
),
array(
'tkey1' => 'tval1',
'tkey2' => 'tval2'
)
)
);

O exemplo acima produzirá algo semelhante a:

string(%d) "/yafmodule/yafcontroller/yafaction"
string(%d) "/yafmodule/yafcontroller/yafaction?tkey1=tval1&tkey2=tval2"


The match purpose

  • « Yaf_Route_Static::assemble
  • Yaf_Route_Static::route »
  • PHP Manual
  • Yaf_Route_Static
  • The match purpose

Yaf_Route_Static::match

(Yaf >=1.0.0)

Yaf_Route_Static::match — The match purpose

Descrição

public Yaf_Route_Static::match(string $uri): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

uri

Valor Retornado


Route a request

  • « Yaf_Route_Static::match
  • Yaf_Route_Supervar »
  • PHP Manual
  • Yaf_Route_Static
  • Route a request

Yaf_Route_Static::route

(Yaf >=1.0.0)

Yaf_Route_Static::route — Route a request

Descrição

public Yaf_Route_Static::route(Yaf_Request_Abstract $request): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

request

Valor Retornado

always be true

Exemplos

Exemplo #1 Yaf_Route_Static::route()example

// assuming there is only one module defined:Index
Request: http://yourdomain.com/a/b
=> module = index, controller=a, action=b

//assuming ap.action_prefer = On
Request: http://yourdomain.com/b
=> module = default(index), controller = default(index), action = b

//assuming ap.action_prefer = Off
Request: http://yourdomain.com/b
=> module = default(index), controller = b, action = default(index)

Request: http://yourdomain.com/a/b/foo/bar/test/a/id/4
=> module = default(index), controller = a, action = b, request parameters: foo = bar, test = a, id = 4

Veja Também

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Simple::route() - Route a request
  • Yaf_Route_Regex::route() - The route purpose
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


The Yaf_Route_Supervar class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Route_Supervar implements Yaf_Route_Interface {
/* Propriedades */
protected $_var_name;
/* Métodos */
public __construct(string $supervar_name)
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
}

Propriedades

_var_name

Índice

  • Yaf_Route_Supervar::assemble — Assemble a url
  • Yaf_Route_Supervar::__construct — The __construct purpose
  • Yaf_Route_Supervar::route — The route purpose


Assemble a url

  • « Yaf_Route_Supervar
  • Yaf_Route_Supervar::__construct »
  • PHP Manual
  • Yaf_Route_Supervar
  • Assemble a url

Yaf_Route_Supervar::assemble

(Yaf >=2.3.0)

Yaf_Route_Supervar::assemble — Assemble a url

Descrição

public Yaf_Route_Supervar::assemble(array $info, array $query = ?): string

Assemble a url.

Parâmetros

info

query

Valor Retornado

Returns a string.

Erros/Exceções

Throws Yaf_Exception_TypeError if info keys ':c' and ':a' are not set.

Exemplos

Exemplo #1 Yaf_Route_Supervar::assemble() example

<?php

$router = new Yaf_Router();

$route = new Yaf_Route_Supervar('r');

$router->addRoute("supervar", $route);

var_dump($router->getRoute('supervar')->assemble(
array(
':a' => 'yafaction',
'tkey' => 'tval',
':c' => 'yafcontroller',
':m' => 'yafmodule'
),
array(
'tkey1' => 'tval1',
'tkey2' => 'tval2'
)
));

try {
var_dump($router->getRoute('supervar')->assemble(
array(
':a' => 'yafaction',
'tkey' => 'tval',
':m' => 'yafmodule'
),
array(
'tkey1' => 'tval1',
'tkey2' => 'tval2',
1 => array(),
)
));
} catch (Exception $e) {
var_dump($e->getMessage());
}

O exemplo acima produzirá algo semelhante a:

string(%d) "?r=/yafmodule/yafcontroller/yafaction&tkey1=tval1&tkey2=tval2"
string(%d) "You need to specify the controller by ':c'"


The __construct purpose

  • « Yaf_Route_Supervar::assemble
  • Yaf_Route_Supervar::route »
  • PHP Manual
  • Yaf_Route_Supervar
  • The __construct purpose

Yaf_Route_Supervar::__construct

(Yaf >=1.0.0)

Yaf_Route_Supervar::__construct — The __construct purpose

Descrição

public Yaf_Route_Supervar::__construct(string $supervar_name)

Yaf_Route_Supervar is similar with Yaf_Route_Static, the difference is Yaf_Route_Supervar will look for path info in query string, and the parameter supervar_name is the key.

Parâmetros

supervar_name

The name of key.

Valor Retornado

Exemplos

Exemplo #1 Yaf_Route_Supervar()example

<?php
/**
* Add a supervar route to Yaf_Router route stack
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute(
"name",
new Yaf_Route_Supervar("r")
);
?>

O exemplo acima produzirá algo semelhante a:

/** for request: http://yourdomain.com/xx/oo/?r=/ctr/act/var/value
  * will result in following:
  */
  array (
    "module"   => index(default),
    "controller" => ctr,
    "action"     => act,
    "params"     => array(
          "var" => value,
     )
  )

Veja Também

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Regex
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Supervar::__construct
  • Yaf_Session »
  • PHP Manual
  • Yaf_Route_Supervar
  • The route purpose

Yaf_Route_Supervar::route

(Yaf >=1.0.0)

Yaf_Route_Supervar::route — The route purpose

Descrição

public Yaf_Route_Supervar::route(Yaf_Request_Abstract $request): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

request

Valor Retornado

If there is a key(which was defined in Yaf_Route_Supervar::__construct()) in $_GET, return true. otherwise return false.


The Yaf_Session class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Session implements Iterator, ArrayAccess, Countable {
/* Propriedades */
protected static $_instance;
protected $_session;
protected $_started;
/* Métodos */
private __construct()
public count(): void
public current(): void
public del(string $name): void
public __get(string $name): void
public static getInstance(): void
public has(string $name): void
public __isset(string $name): void
public key(): void
public next(): void
public offsetExists(string $name): void
public offsetGet(string $name): void
public offsetSet(string $name, string $value): void
public offsetUnset(string $name): void
public rewind(): void
public __set(string $name, string $value): void
public start(): void
public __unset(string $name): void
public valid(): void
}

Propriedades

_instance

_session

_started

Índice

  • Yaf_Session::__construct — Constructor of Yaf_Session
  • Yaf_Session::count — The count purpose
  • Yaf_Session::current — The current purpose
  • Yaf_Session::del — The del purpose
  • Yaf_Session::__get — The __get purpose
  • Yaf_Session::getInstance — The getInstance purpose
  • Yaf_Session::has — The has purpose
  • Yaf_Session::__isset — The __isset purpose
  • Yaf_Session::key — The key purpose
  • Yaf_Session::next — The next purpose
  • Yaf_Session::offsetExists — The offsetExists purpose
  • Yaf_Session::offsetGet — The offsetGet purpose
  • Yaf_Session::offsetSet — The offsetSet purpose
  • Yaf_Session::offsetUnset — The offsetUnset purpose
  • Yaf_Session::rewind — The rewind purpose
  • Yaf_Session::__set — The __set purpose
  • Yaf_Session::start — The start purpose
  • Yaf_Session::__unset — The __unset purpose
  • Yaf_Session::valid — The valid purpose


Constructor of Yaf_Session

  • « Yaf_Session
  • Yaf_Session::count »
  • PHP Manual
  • Yaf_Session
  • Constructor of Yaf_Session

Yaf_Session::__construct

(Yaf >=1.0.0)

Yaf_Session::__construct — Constructor of Yaf_Session

Descrição

private Yaf_Session::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The count purpose

  • « Yaf_Session::__construct
  • Yaf_Session::current »
  • PHP Manual
  • Yaf_Session
  • The count purpose

Yaf_Session::count

(Yaf >=1.0.0)

Yaf_Session::count — The count purpose

Descrição

public Yaf_Session::count(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The current purpose

  • « Yaf_Session::count
  • Yaf_Session::del »
  • PHP Manual
  • Yaf_Session
  • The current purpose

Yaf_Session::current

(Yaf >=1.0.0)

Yaf_Session::current — The current purpose

Descrição

public Yaf_Session::current(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The del purpose

  • « Yaf_Session::current
  • Yaf_Session::__get »
  • PHP Manual
  • Yaf_Session
  • The del purpose

Yaf_Session::del

(Yaf >=1.0.0)

Yaf_Session::del — The del purpose

Descrição

public Yaf_Session::del(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The __get purpose

  • « Yaf_Session::del
  • Yaf_Session::getInstance »
  • PHP Manual
  • Yaf_Session
  • The __get purpose

Yaf_Session::__get

(Yaf >=1.0.0)

Yaf_Session::__get — The __get purpose

Descrição

public Yaf_Session::__get(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The getInstance purpose

  • « Yaf_Session::__get
  • Yaf_Session::has »
  • PHP Manual
  • Yaf_Session
  • The getInstance purpose

Yaf_Session::getInstance

(Yaf >=1.0.0)

Yaf_Session::getInstance — The getInstance purpose

Descrição

public static Yaf_Session::getInstance(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The has purpose

  • « Yaf_Session::getInstance
  • Yaf_Session::__isset »
  • PHP Manual
  • Yaf_Session
  • The has purpose

Yaf_Session::has

(Yaf >=1.0.0)

Yaf_Session::has — The has purpose

Descrição

public Yaf_Session::has(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The __isset purpose

  • « Yaf_Session::has
  • Yaf_Session::key »
  • PHP Manual
  • Yaf_Session
  • The __isset purpose

Yaf_Session::__isset

(Yaf >=1.0.0)

Yaf_Session::__isset — The __isset purpose

Descrição

public Yaf_Session::__isset(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The key purpose

  • « Yaf_Session::__isset
  • Yaf_Session::next »
  • PHP Manual
  • Yaf_Session
  • The key purpose

Yaf_Session::key

(Yaf >=1.0.0)

Yaf_Session::key — The key purpose

Descrição

public Yaf_Session::key(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The next purpose

  • « Yaf_Session::key
  • Yaf_Session::offsetExists »
  • PHP Manual
  • Yaf_Session
  • The next purpose

Yaf_Session::next

(Yaf >=1.0.0)

Yaf_Session::next — The next purpose

Descrição

public Yaf_Session::next(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The offsetExists purpose

  • « Yaf_Session::next
  • Yaf_Session::offsetGet »
  • PHP Manual
  • Yaf_Session
  • The offsetExists purpose

Yaf_Session::offsetExists

(Yaf >=1.0.0)

Yaf_Session::offsetExists — The offsetExists purpose

Descrição

public Yaf_Session::offsetExists(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The offsetGet purpose

  • « Yaf_Session::offsetExists
  • Yaf_Session::offsetSet »
  • PHP Manual
  • Yaf_Session
  • The offsetGet purpose

Yaf_Session::offsetGet

(Yaf >=1.0.0)

Yaf_Session::offsetGet — The offsetGet purpose

Descrição

public Yaf_Session::offsetGet(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The offsetSet purpose

  • « Yaf_Session::offsetGet
  • Yaf_Session::offsetUnset »
  • PHP Manual
  • Yaf_Session
  • The offsetSet purpose

Yaf_Session::offsetSet

(Yaf >=1.0.0)

Yaf_Session::offsetSet — The offsetSet purpose

Descrição

public Yaf_Session::offsetSet(string $name, string $value): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

value

Valor Retornado


The offsetUnset purpose

  • « Yaf_Session::offsetSet
  • Yaf_Session::rewind »
  • PHP Manual
  • Yaf_Session
  • The offsetUnset purpose

Yaf_Session::offsetUnset

(Yaf >=1.0.0)

Yaf_Session::offsetUnset — The offsetUnset purpose

Descrição

public Yaf_Session::offsetUnset(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The rewind purpose

  • « Yaf_Session::offsetUnset
  • Yaf_Session::__set »
  • PHP Manual
  • Yaf_Session
  • The rewind purpose

Yaf_Session::rewind

(Yaf >=1.0.0)

Yaf_Session::rewind — The rewind purpose

Descrição

public Yaf_Session::rewind(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The __set purpose

  • « Yaf_Session::rewind
  • Yaf_Session::start »
  • PHP Manual
  • Yaf_Session
  • The __set purpose

Yaf_Session::__set

(Yaf >=1.0.0)

Yaf_Session::__set — The __set purpose

Descrição

public Yaf_Session::__set(string $name, string $value): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

value

Valor Retornado


The start purpose

  • « Yaf_Session::__set
  • Yaf_Session::__unset »
  • PHP Manual
  • Yaf_Session
  • The start purpose

Yaf_Session::start

(Yaf >=1.0.0)

Yaf_Session::start — The start purpose

Descrição

public Yaf_Session::start(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The __unset purpose

  • « Yaf_Session::start
  • Yaf_Session::valid »
  • PHP Manual
  • Yaf_Session
  • The __unset purpose

Yaf_Session::__unset

(Yaf >=1.0.0)

Yaf_Session::__unset — The __unset purpose

Descrição

public Yaf_Session::__unset(string $name): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

Valor Retornado


The valid purpose

  • « Yaf_Session::__unset
  • Yaf_Exception »
  • PHP Manual
  • Yaf_Session
  • The valid purpose

Yaf_Session::valid

(Yaf >=1.0.0)

Yaf_Session::valid — The valid purpose

Descrição

public Yaf_Session::valid(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The Yaf_Exception class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Exception extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
public __construct()
public getPrevious(): void
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Índice

  • Yaf_Exception::__construct — The __construct purpose
  • Yaf_Exception::getPrevious — The getPrevious purpose


The __construct purpose

  • « Yaf_Exception
  • Yaf_Exception::getPrevious »
  • PHP Manual
  • Yaf_Exception
  • The __construct purpose

Yaf_Exception::__construct

(Yaf >=1.0.0)

Yaf_Exception::__construct — The __construct purpose

Descrição

public Yaf_Exception::__construct()

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The getPrevious purpose

  • « Yaf_Exception::__construct
  • Yaf_Exception_TypeError »
  • PHP Manual
  • Yaf_Exception
  • The getPrevious purpose

Yaf_Exception::getPrevious

(Yaf >=1.0.0)

Yaf_Exception::getPrevious — The getPrevious purpose

Descrição

public Yaf_Exception::getPrevious(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The Yaf_Exception_TypeError class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Exception_TypeError extends Yaf_Exception {
/* Propriedades */
/* Métodos */
/* Métodos herdados */
public Yaf_Exception::getPrevious(): void
}


The Yaf_Exception_StartupError class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Exception_StartupError extends Yaf_Exception {
/* Propriedades */
/* Métodos */
/* Métodos herdados */
public Yaf_Exception::getPrevious(): void
}


The Yaf_Exception_DispatchFailed class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Exception_DispatchFailed extends Yaf_Exception {
/* Propriedades */
/* Métodos */
/* Métodos herdados */
public Yaf_Exception::getPrevious(): void
}


The Yaf_Exception_RouterFailed class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Exception_RouterFailed extends Yaf_Exception {
/* Propriedades */
/* Métodos */
/* Métodos herdados */
public Yaf_Exception::getPrevious(): void
}


The Yaf_Exception_LoadFailed class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Exception_LoadFailed extends Yaf_Exception {
/* Propriedades */
/* Métodos */
/* Métodos herdados */
public Yaf_Exception::getPrevious(): void
}


The Yaf_Exception_LoadFailed_Module class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Exception_LoadFailed_Module extends Yaf_Exception_LoadFailed {
/* Propriedades */
/* Métodos */
/* Métodos herdados */
public Yaf_Exception::getPrevious(): void
}


The Yaf_Exception_LoadFailed_Controller class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Exception_LoadFailed_Controller extends Yaf_Exception_LoadFailed {
/* Propriedades */
/* Métodos */
/* Métodos herdados */
public Yaf_Exception::getPrevious(): void
}


The Yaf_Exception_LoadFailed_Action class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Exception_LoadFailed_Action extends Yaf_Exception_LoadFailed {
/* Propriedades */
/* Métodos */
/* Métodos herdados */
public Yaf_Exception::getPrevious(): void
}


The Yaf_Exception_LoadFailed_View class

(Yaf >=1.0.0)

Introdução

Resumo da classe

class Yaf_Exception_LoadFailed_View extends Yaf_Exception_LoadFailed {
/* Propriedades */
/* Métodos */
/* Métodos herdados */
public Yaf_Exception::getPrevious(): void
}


Yaconf

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Yaconf — The Yaconf class
    • Yaconf::get — Retrieve a item
    • Yaconf::has — Determine if a item exists


Introdução

Yet Another Configurations Container (Yaconf) is a configurations container, it parses INI files, and store the result in PHP when PHP is started, the result lives with the whole PHP lifecycle.

Yaconf stores all configurations as interned string or immutable array, which means they are not refcounted-able, thus when you retrieving configurations from yaconf, it could be considered as zero-copy, very fast.

Yaconf supports sections and sections inheritance in INI files. if PHP is built as non-ZTS build, Yaconf also supports automatically reloading after INI files are changed.

Yaconf requires PHP 7.0 or greater.

Exemplo #1 INI example

;simple key val
key=val
;hash
hash.a=val
;array
arr.0=val
;or
arr[]=val
;use PHP constants
version=PHP_VERSION
;use environment
env=${PATH}

Exemplo #2 INI sections example

[SectionA]
key=val
hash.a=val

;SectionB inherits SectionA
[SectionB:SectionA]
;override configuration key in SectionA
key=new_val


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

Yaconf requires PHP 7.0 and above.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/yaconf.

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Yaconf Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
yaconf.check_delay | 300 | INI_SYSTEM |
yaconf.directory | /tmp/conf/ | INI_SYSTEM |

Aqui está uma breve explicação das diretivas de configuração.

yaconf.check_delay int

In which interval Yaconf will detect ini file's change(by directory's mtime), if it is set to zero, you have to restart php to reloading configurations.

yaconf.directory string

Path to directory which all INI configuration files are placed in.


  • « Tipos de Recurso
  • Yaconf »
  • PHP Manual
  • Yaconf
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


The Yaconf class

(PECL yaconf >= 1.0.0)

Introdução

Yaconf is a configurations container, it parses INIT files, stores the result in PHP when PHP is started, the result lives with the whole PHP lifecycle.

Resumo da classe

class Yaconf {
/* Métodos */
public static get(string $name, mixed $default_value = NULL): mixed
public static has(string $name): bool
}

Índice

  • Yaconf::get — Retrieve a item
  • Yaconf::has — Determine if a item exists


Retrieve a item

  • « Yaconf
  • Yaconf::has »
  • PHP Manual
  • Yaconf
  • Retrieve a item

Yaconf::get

(PECL yaconf >= 1.0.0)

Yaconf::get — Retrieve a item

Descrição

public static Yaconf::get(string $name, mixed $default_value = NULL): mixed

Parâmetros

name

Configuration key, the key looks like "filename.key", or "filename.sectionName,key".

default_value

if the key doesn't exists, Yaconf::get will return this as result.

Valor Retornado

Returns configuration result(string or array) if the key exists, return default_value if not.

Exemplos

Exemplo #1 INI()example

;filenmame foo.ini, placed in directory which is yaconf.directoy
[SectionA]
;key value pair
key=val
;hash[a]=val
hash.a=val
;arr[0]=val
arr.0=val
;or
arr[]=val

;SectionB inherits SectionA
[SectionB:SectionA]
;override configuration key in SectionA
key=new_val

O exemplo acima produzirá algo semelhante a:

php7 -r 'var_dump(Yaconf::get("foo.SectionA.key"));'
//string(3) "val"

php7 -r 'var_dump(Yaconf::get("foo.SectionB.key"));'
//string(7) "new_val"

php7 -r 'var_dump(Yaconf::get("foo")["SectionA"]["hash"]);'
//array(1)


Determine if a item exists

  • « Yaconf::get
  • Taint »
  • PHP Manual
  • Yaconf
  • Determine if a item exists

Yaconf::has

(PECL yaconf >= 1.0.0)

Yaconf::has — Determine if a item exists

Descrição

public static Yaconf::has(string $name): bool

Parâmetros

name

Valor Retornado


Taint

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • More Details
    • Functions and Statements which will spread the tainted mark of a tainted string
    • Functions and statements which will check tainted string
    • Functions which untaint the tainted string
  • Taint Funções
    • is_tainted — Checks whether a string is tainted
    • taint — Taint a string
    • untaint — Untaint strings


Introdução

Taint is an extension, which is used for detecting XSS codes(tainted string). And also can be used to spot sql injection vulnerabilities, and shell inject, etc.

When taint is enabled, if you pass a tainted string (comes from $_GET, $_POST or $_COOKIE) to some functions, taint will warn you about that.

Exemplo #1 Taint()example

<?php
$a = trim($_GET['a']);

$file_name = '/tmp' . $a;
$output = "Welcome, {$a} !!!";
$var = "output";
$sql = "Select * from " . $a;
$sql .= "ooxx";

echo $output;

print $$var;

include $file_name;

mysql_query($sql);
?>

O exemplo acima produzirá algo semelhante a:

Warning: main() [function.echo]: Attempt to echo a string that might be tainted

Warning: main() [function.echo]: Attempt to print a string that might be tainted

Warning: include() [function.include]: File path contains data that might be tainted

Warning: mysql_query() [function.mysql-query]: SQL statement contains data that might be tainted


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/taint.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Taint Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
taint.enable | 0 | INI_SYSTEM |
taint.error_level | E_WARNING | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

taint.enable int

Whether enable the taint.

taint.error_level int

the error type which taint will report as when taint find a tainted string.


  • « Configurações em Execução
  • More Details »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


More Details

Índice

  • Functions and Statements which will spread the tainted mark of a tainted string
  • Functions and statements which will check tainted string
  • Functions which untaint the tainted string


Functions and Statements which will spread the tainted mark of a tainted string

Function/Statement | Since
= (assign) | 0.1.0
. (concat) | 0.1.0
"{$var}" (variable substitution) | 0.1.0
.= (assign concat) | 0.1.0
strval | 0.3.0
explode/split | 0.3.0
implode/join | 0.3.0
sprintf | 0.3.0
vsprintf | 0.3.0
trim | 0.4.0
rtrim | 0.4.0
ltrim | 0.4.0
strstr | 0.5.0
str_pad | 0.5.0
str_replace | 0.5.0
substr | 0.5.0
strtolower | 0.5.0
strtoupper | 0.5.0


Functions and statements which will check tainted string

Function/Statement | Since
Basic statments
eval | 0.1.0
include/include_once | 0.1.0
require/require_once | 0.1.0
Outputing Functions
echo | 0.1.0
print | 0.1.0
printf | 0.1.0
file_put_contents | 0.1.0
File System Functions
fopen | 0.2.0
opendir | 0.2.0
basename | 0.2.0
dirname | 0.2.0
file | 0.2.0
pathinfo | 0.2.0
Database relevant Functions
mysql_query | 0.2.0
mysqli_query/MySQLi::query | 0.2.0
sqlite_query/SqliteDataBase::query | 0.3.0
sqlite_single_query/SqliteDataBase::singleQuery | 0.3.0
oci_parse | 0.3.0
PDO::query | 0.3.0
PDO::prepare | 0.3.0
SQLite3::query | 2.0.1
SQLite3::prepare | 2.0.1
Command Line relevant Functions
system | 0.1.0
exec | 0.1.0
proc_open | 0.1.0
passthru | 0.1.0
shell_exec | 0.3.0


Functions which untaint the tainted string

Function | Since
addslashes | 0.1.0
addcslashes | 0.1.0
htmlspecialchars | 0.1.0
htmlentities | 0.1.0
escapeshellcmd | 0.1.0
mysql_escape_string | 0.1.0
mysql_real_escape_string | 0.1.0
mysqli_escape_string/MySQLi::escape_string | 0.1.0
mysqli_real_escape_string/MySQLi::real_escape_string | 0.1.0
sqlite_escape_string/SqliteDataBase::escapeString | 0.3.0
PDO::quote | 0.3.0


Taint Funções

Índice

  • is_tainted — Checks whether a string is tainted
  • taint — Taint a string
  • untaint — Untaint strings


Checks whether a string is tainted

  • « Taint Funções
  • taint »
  • PHP Manual
  • Taint Funções
  • Checks whether a string is tainted

is_tainted

(PECL taint >=0.1.0)

is_tainted — Checks whether a string is tainted

Descrição

is_tainted(string $string): bool

Checks whether a string is tainted

Parâmetros

string

Valor Retornado

Return TRUE if the string is tainted, FALSE otherwise.


Taint a string

  • « is_tainted
  • untaint »
  • PHP Manual
  • Taint Funções
  • Taint a string

taint

(PECL taint >=0.1.0)

taint — Taint a string

Descrição

taint(string &$string, string ...$strings): bool

Make a string tainted. This is used for testing purpose only.

Parâmetros

string

strings

Valor Retornado

Return TRUE if the transformation is done. Always return TRUE if the taint extension is not enabled.


Untaint strings

  • « taint
  • Estruturas de Dados »
  • PHP Manual
  • Taint Funções
  • Untaint strings

untaint

(PECL taint >=0.1.0)

untaint — Untaint strings

Descrição

untaint(string &$string, string ...$strings): bool

Untaint strings

Parâmetros

string

strings

Valor Retornado


Estruturas de Dados

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
  • Constantes pré-definidas
  • Exemplos
  • Ds\Collection — A interface Collection
    • Ds\Collection::clear — Remove todos os valores
    • Ds\Collection::copy — Retorna uma cópia rasa da coleção
    • Ds\Collection::isEmpty — Retorna se a coleção está vazia
    • Ds\Collection::toArray — Converte a coleção para um array
  • Ds\Hashable — A interface Hashable
    • Ds\Hashable::equals — Determina se um objeto é igual à instância atual
    • Ds\Hashable::hash — Retorna um valor escalar a ser usado como valor de hash
  • Ds\Sequence — A Interface Sequence
    • Ds\Sequence::allocate — Aloca memória suficiente para uma capacidade requerida
    • Ds\Sequence::apply — Atualiza todos os valores aplicando uma função callback a cada valor
    • Ds\Sequence::capacity — Retorna a capacidade atual
    • Ds\Sequence::contains — Determina se a sequência contém determinados valores
    • Ds\Sequence::filter — Cria uma nova sequência usando um callable para determinar quais valores incluir.
    • Ds\Sequence::find — Tenta encontrar o índice de um valor
    • Ds\Sequence::first — Retorna o primeiro valor na sequência
    • Ds\Sequence::get — Retorna o valor em um índice específico
    • Ds\Sequence::insert — Insere valores em um índice específico
    • Ds\Sequence::join — Une todos os valores como uma string
    • Ds\Sequence::last — Retorna o último valor
    • Ds\Sequence::map — Retorna o resultado da aplicação de um callback a cada valor
    • Ds\Sequence::merge — Retorna o resultado de adicionar todos os valores fornecidos à sequência
    • Ds\Sequence::pop — Remove e retorna o último valor
    • Ds\Sequence::push — Adiciona valores ao final da sequência
    • Ds\Sequence::reduce — Reduz a sequência a um único valor usando uma função de callback
    • Ds\Sequence::remove — Remove e retorna um valor pelo índice
    • Ds\Sequence::reverse — Inverte a sequência no local
    • Ds\Sequence::reversed — Retorna uma cópia reversa
    • Ds\Sequence::rotate — Rotaciona a sequência pelo número dado de rotações
    • Ds\Sequence::set — Atualiza um valor em um índice específico
    • Ds\Sequence::shift — Remove e retorna o primeiro valor
    • Ds\Sequence::slice — Retorna uma sub-sequência de um intervalo dado
    • Ds\Sequence::sort — Ordena a sequência no local
    • Ds\Sequence::sorted — Retorna uma cópia ordenada
    • Ds\Sequence::sum — Retorna a soma de todos os valores na sequência
    • Ds\Sequence::unshift — Adiciona valores no início da sequência
  • Ds\Vector — A classe Vector
    • Ds\Vector::allocate — Aloca memória suficiente para uma capacidade requerida
    • Ds\Vector::apply — Atualiza todos os valores aplicando uma função de callback a cada valor
    • Ds\Vector::capacity — Retorna a capacidade atual
    • Ds\Vector::clear — Remove todos os valores
    • Ds\Vector::__construct — Cria uma nova instância
    • Ds\Vector::contains — Determina se o vetor contém os valores fornecidos
    • Ds\Vector::copy — Retorna uma cópia rasa do vetor
    • Ds\Vector::count — Retorna o número de valores na coleção
    • Ds\Vector::filter — Cria um novo vetor usando um callable para determinar quais valores incluir.
    • Ds\Vector::find — Tenta encontrar o índice de um valor
    • Ds\Vector::first — Retorna o primeiro valor no vetor
    • Ds\Vector::get — Retorna o valor em um índice específico
    • Ds\Vector::insert — Insere valores em um índice específico
    • Ds\Vector::isEmpty — Retorna se o vetor está vazio
    • Ds\Vector::join — Junta todos os valores como uma string
    • Ds\Vector::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
    • Ds\Vector::last — Retorna o último valor
    • Ds\Vector::map — Retorna o resultado da aplicação de uma função de callback a cada valor
    • Ds\Vector::merge — Retorna o resultado da adição de todos os valores fornecidos ao vetor
    • Ds\Vector::pop — Remove e retorna o último valor
    • Ds\Vector::push — Adiciona valores ao final do vetor
    • Ds\Vector::reduce — Reduz o vetor a um único valor usando uma função de callback
    • Ds\Vector::remove — Remove e retorna um valor pelo índice
    • Ds\Vector::reverse — Inverte o vetor no local
    • Ds\Vector::reversed — Retorna uma cópia invertida
    • Ds\Vector::rotate — Rotaciona o vetor por um número dado de rotações
    • Ds\Vector::set — tualiza um valor em um índice específico
    • Ds\Vector::shift — Remove e retorna o primeiro valor
    • Ds\Vector::slice — Retorna um sub-vetor de um determinado intervalo
    • Ds\Vector::sort — Ordena o vetor no local
    • Ds\Vector::sorted — Retorna uma cópia ordenada
    • Ds\Vector::sum — Retorna a soma de todos os valores no vetor
    • Ds\Vector::toArray — Converte o vetor em um array
    • Ds\Vector::unshift — Adiciona valores no início do vetor
  • Ds\Deque — A classe Deque
    • Ds\Deque::allocate — Alloca memória suficiente para uma capacidade necessária
    • Ds\Deque::apply — Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor
    • Ds\Deque::capacity — Retorna a capacidade atual
    • Ds\Deque::clear — Remove todos os valores do deque
    • Ds\Deque::__construct — Cria uma nova instância
    • Ds\Deque::contains — Determina se a deque contém os valores fornecidos
    • Ds\Deque::copy — Retorna uma cópia rasa da deque
    • Ds\Deque::count — Retorna o número de valores na coleção
    • Ds\Deque::filter — Cria um novo deque usando um callable para determinar quais valores incluir
    • Ds\Deque::find — Tenta encontrar o índice de um valor
    • Ds\Deque::first — Retorna o primeiro valor na deque
    • Ds\Deque::get — Retorna o valor em um índice específico
    • Ds\Deque::insert — Insere valores em um índice específico
    • Ds\Deque::isEmpty — Retorna se o deque está vazio
    • Ds\Deque::join — Une todos os valores como uma string
    • Ds\Deque::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
    • Ds\Deque::last — Retorna o último valor
    • Ds\Deque::map — Retorna o resultado de aplicar uma função de retorno de chamada a cada valor
    • Ds\Deque::merge — Retorna o resultado de adicionar todos os valores dados à deque
    • Ds\Deque::pop — Remove e retorna o último valor
    • Ds\Deque::push — Adiciona valores ao final do deque
    • Ds\Deque::reduce — Reduz o deque a um único valor usando uma função de retorno de chamada
    • Ds\Deque::remove — Remove e retorna um valor pelo índice
    • Ds\Deque::reverse — Inverte a deque no local
    • Ds\Deque::reversed — Retorna uma cópia invertida
    • Ds\Deque::rotate — Rotaciona a deque por um número dado de rotações
    • Ds\Deque::set — Atualiza um valor em um índice específico
    • Ds\Deque::shift — Remove e retorna o primeiro valor
    • Ds\Deque::slice — Retorna uma sub-deque de um determinado intervalo
    • Ds\Deque::sort — Ordena a deque no local
    • Ds\Deque::sorted — Retorna uma cópia ordenada
    • Ds\Deque::sum — Retorna a soma de todos os valores na deque
    • Ds\Deque::toArray — Converte a deque para um array.
    • Ds\Deque::unshift — Adiciona valores no início da deque
  • Ds\Map — A classe Map
    • Ds\Map::allocate — Aloca memória suficiente para uma capacidade requerida
    • Ds\Map::apply — Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor
    • Ds\Map::capacity — Retorna a capacidade atual
    • Ds\Map::clear — Remove todos os valores
    • Ds\Map::__construct — Cria uma nova instância
    • Ds\Map::copy — Retorna uma cópia rasa do mapa
    • Ds\Map::count — Retorna o número de valores no mapa
    • Ds\Map::diff — Cria um novo mapa usando chaves que não estão em outro mapa
    • Ds\Map::filter — Cria um novo mapa usando um callable para determinar quais pares incluir
    • Ds\Map::first — Retorna o primeiro par no mapa
    • Ds\Map::get — Retorna o valor para uma chave dada
    • Ds\Map::hasKey — Determina se o mapa contém uma chave dada
    • Ds\Map::hasValue — Determina se o mapa contém um valor dado
    • Ds\Map::intersect — Cria um novo mapa intersectando chaves com outro mapa
    • Ds\Map::isEmpty — Retorna se o mapa está vazio
    • Ds\Map::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
    • Ds\Map::keys — Retorna um conjunto das chaves do mapa
    • Ds\Map::ksort — Ordena o mapa no local pelo chave
    • Ds\Map::ksorted — Retorna uma cópia ordenada por chave
    • Ds\Map::last — Retorna o último par do mapa
    • Ds\Map::map — Retorna o resultado da aplicação de um callback a cada valor
    • Ds\Map::merge — Retorna o resultado da adição de todas as associações fornecidas
    • Ds\Map::pairs — Retorna uma sequência contendo todos os pares do mapa
    • Ds\Map::put — Associa uma chave a um valor
    • Ds\Map::putAll — Associa todos os pares chave-valor de um objeto traversable ou array
    • Ds\Map::reduce — Reduz o mapa a um único valor usando uma função callback
    • Ds\Map::remove — Remove e retorna um valor pela chave
    • Ds\Map::reverse — Inverte o mapa no local
    • Ds\Map::reversed — Retorna uma cópia invertida
    • Ds\Map::skip — Retorna o par em uma posição específica
    • Ds\Map::slice — Retorna um subconjunto do mapa definido por um índice inicial e comprimento
    • Ds\Map::sort — Ordena o mapa no local pelo valor
    • Ds\Map::sorted — Retorna uma cópia, ordenada por valor
    • Ds\Map::sum — Retorna a soma de todos os valores no mapa
    • Ds\Map::toArray — Converte o mapa em um array
    • Ds\Map::union — Cria um novo mapa usando valores da instância atual e de outro mapa
    • Ds\Map::values — Retorna uma sequência dos valores do mapa
    • Ds\Map::xor — Cria um novo mapa usando chaves apenas do mapa atual ou de outro mapa, mas não de ambos
  • Ds\Pair — A classe Pair
    • Ds\Pair::clear — Remove todos os valores
    • Ds\Pair::__construct — Cria uma nova instância
    • Ds\Pair::copy — Retorna uma cópia rasa do par
    • Ds\Pair::isEmpty — Retorna se o par está vazio
    • Ds\Pair::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
    • Ds\Pair::toArray — Converte o par para um array
  • Ds\Set — A classe Set
    • Ds\Set::add — Adiciona valores ao conjunto
    • Ds\Set::allocate — Aloca memória suficiente para uma capacidade necessária
    • Ds\Set::capacity — Retorna a capacidade atual
    • Ds\Set::clear — Remove todos os valores
    • Ds\Set::__construct — Cria uma nova instância
    • Ds\Set::contains — Determina se o conjunto contém todos os valores
    • Ds\Set::copy — Retorna uma cópia rasa do conjunto
    • Ds\Set::count — Retorna o número de valores no conjunto
    • Ds\Set::diff — Cria um novo conjunto usando valores que não estão em outro conjunto
    • Ds\Set::filter — Cria um novo conjunto usando um callable para determinar quais valores incluir
    • Ds\Set::first — Retorna o primeiro valor no conjunto
    • Ds\Set::get — Retorna o valor em um índice específico
    • Ds\Set::intersect — Cria um novo conjunto interseccionando valores com outro conjunto
    • Ds\Set::isEmpty — Retorna se o conjunto está vazio
    • Ds\Set::join — Junta todos os valores em uma string
    • Ds\Set::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
    • Ds\Set::last — Retorna o último valor no conjunto
    • Ds\Set::merge — Retorna o resultado da adição de todos os valores dados ao conjunto
    • Ds\Set::reduce — Reduz o conjunto a um único valor usando uma função de callback
    • Ds\Set::remove — Remove todos os valores dados do conjunto
    • Ds\Set::reverse — Inverte o conjunto no local
    • Ds\Set::reversed — Retorna uma cópia invertida
    • Ds\Set::slice — Retorna um subconjunto de um intervalo dado
    • Ds\Set::sort — Ordena o conjunto no local
    • Ds\Set::sorted — Retorna uma cópia ordenada
    • Ds\Set::sum — Retorna a soma de todos os valores no conjunto
    • Ds\Set::toArray — Converte o conjunto para um array
    • Ds\Set::union — Cria um novo conjunto usando valores da instância atual e de outro conjunto
    • Ds\Set::xor — Cria um novo conjunto usando valores na instância atual ou em outro conjunto, mas não em ambos
  • Ds\Stack — A classe Stack
    • Ds\Stack::allocate — Aloca memória suficiente para uma capacidade requerida
    • Ds\Stack::capacity — Retona a capacidade atual
    • Ds\Stack::clear — Remove todos os valores
    • Ds\Stack::__construct — Cria uma nova instância
    • Ds\Stack::copy — Retorna uma cópia rasa da pilha
    • Ds\Stack::count — Retorna o número de valores na pilha
    • Ds\Stack::isEmpty — Retorna se a pilha está vazia
    • Ds\Stack::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
    • Ds\Stack::peek — Retorna o valor no topo da pilha
    • Ds\Stack::pop — Remove e retorna o valor no topo da pilha
    • Ds\Stack::push — Empurra valores para a pilha
    • Ds\Stack::toArray — Converte a pilha para um array
  • Ds\Queue — A classe Queue
    • Ds\Queue::allocate — Aloca memória suficiente para uma capacidade requerida
    • Ds\Queue::capacity — Retorna a capacidade atual
    • Ds\Queue::clear — Remove todos os valores
    • Ds\Queue::__construct — Cria uma nova instância
    • Ds\Queue::copy — Retorna uma cópia rasa da fila
    • Ds\Queue::count — Retorna o número de valores na fila
    • Ds\Queue::isEmpty — Retorna se a fila está vazia
    • Ds\Queue::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
    • Ds\Queue::peek — Retorna o valor no início da fila
    • Ds\Queue::pop — Remove e retorna o valor no início da fila
    • Ds\Queue::push — Insere valores na fila
    • Ds\Queue::toArray — Converte a fila para um array
  • Ds\PriorityQueue — A classe PriorityQueue
    • Ds\PriorityQueue::allocate — Aloca memória suficiente para uma capacidade requerida
    • Ds\PriorityQueue::capacity — Retorna a capacidade atual
    • Ds\PriorityQueue::clear — Remove todos os valores
    • Ds\PriorityQueue::__construct — Cria uma nova instância
    • Ds\PriorityQueue::copy — Retorna uma cópia rasa da fila
    • Ds\PriorityQueue::count — Retorna o número de valores na fila
    • Ds\PriorityQueue::isEmpty — Retorna se a fila está vazia
    • Ds\PriorityQueue::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
    • Ds\PriorityQueue::peek — Retorna o valor na frente da fila
    • Ds\PriorityQueue::pop — Remove e retorna o valor com a maior prioridade
    • Ds\PriorityQueue::push — Adiciona valores na fila
    • Ds\PriorityQueue::toArray — Converte a fila para um array


Introdução

Estruturas de dados eficientes para o PHP 7, fornecidas como alternativa ao array.

Consulte » este post no blog para benchmarks, discussões e perguntas frequentes.


  • « Introdução
  • Dependências »
  • PHP Manual
  • Estruturas de Dados
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

PHP 7 é necessário tanto para a extensão quanto para o polyfill de compatibilidade.


Instalação

A maneira mais fácil de instalar a extensão é através do » PECL

pecl install ds

Você também pode compilar diretamente a partir do código-fonte:

# Dependências que talvez você precise instalar
# sudo apt-get install git build-essential php7.0-dev

git clone https://github.com/php-ds/extension "php-ds"
cd php-ds

# Compilar e instalar a extensão
phpize
./configure
make
make install

# Limpar os arquivos de compilação
make clean
phpize --clean

Se você estiver no Windows, pode » baixar um arquivo .dll compilado no PECL

Nota:

Se estiver usando o Composer, é altamente recomendável incluir » php-ds/php-ds em seu projeto para que seu código continue funcional em um ambiente onde a extensão não está instalada. A extensão terá prioridade se estiver instalada.


  • « Instalação
  • Exemplos »
  • PHP Manual
  • Estruturas de Dados
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Exemplos

Exemplo #1 Vector

<?php

$vector = new \Ds\Vector();

$vector->push('a');
$vector->push('b', 'c');

$vector[] = 'd';

print_r($vector);

?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)

Exemplo #2 Map

<?php

$map = new \Ds\Map();

$map->put('a', 1);
$map->put('b', 2);

$map['c'] = 3;

print_r($map);

?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


A interface Collection

(PECL ds >= 1.0.0)

Introdução

Collection é a interface base que abrange funcionalidades comuns a todas as estruturas de dados nesta biblioteca. Garante que todas as estruturas são iteráveis, contáveis e podem ser convertidas para JSON usando json_encode().

Resumo da Interface

interface Ds\Collection extends Countable, IteratorAggregate, JsonSerializable {
/* Métodos */
public clear(): void
public copy(): Ds\Collection
public isEmpty(): bool
public toArray(): array
/* Métodos herdados */
public Countable::count(): int
public IteratorAggregate::getIterator(): Traversable
public JsonSerializable::jsonSerialize(): mixed
}

Registro de Alterações

Versão | Descrição
PECL ds 1.4.0 | Collection implementa IteratorAggregate agora, em vez de apenas Traversable. (Essa mudança ocorreu no polyfill na versão 1.4.1.)

Índice

  • Ds\Collection::clear — Remove todos os valores
  • Ds\Collection::copy — Retorna uma cópia rasa da coleção
  • Ds\Collection::isEmpty — Retorna se a coleção está vazia
  • Ds\Collection::toArray — Converte a coleção para um array


Remove todos os valores

  • « Ds\Collection
  • Ds\Collection::copy »
  • PHP Manual
  • Ds\Collection
  • Remove todos os valores

Ds\Collection::clear

(PECL ds >= 1.0.0)

Ds\Collection::clear — Remove todos os valores

Descrição

public Ds\Collection::clear(): void

Remove todos os valores da coleção.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Collection::clear() exemplo

<?php
$collection = new \Ds\Vector([1, 2, 3]);
print_r($collection);

$collection->clear();
print_r($collection);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
)


Retorna uma cópia rasa da coleção

  • « Ds\Collection::clear
  • Ds\Collection::isEmpty »
  • PHP Manual
  • Ds\Collection
  • Retorna uma cópia rasa da coleção

Ds\Collection::copy

(PECL ds >= 1.0.0)

Ds\Collection::copy — Retorna uma cópia rasa da coleção

Descrição

public Ds\Collection::copy(): Ds\Collection

Retorna uma cópia rasa da coleção.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma cópia rasa da coleção.

Exemplos

Exemplo #1 Ds\Collection::copy() exemplo

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Retorna se a coleção está vazia

  • « Ds\Collection::copy
  • Ds\Collection::toArray »
  • PHP Manual
  • Ds\Collection
  • Retorna se a coleção está vazia

Ds\Collection::isEmpty

(PECL ds >= 1.0.0)

Ds\Collection::isEmpty — Retorna se a coleção está vazia

Descrição

public Ds\Collection::isEmpty(): bool

Retorna se a coleção está vazia.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a coleção estiver vazia, false caso contrário.

Exemplos

Exemplo #1 Ds\Collection::isEmpty() exemplo

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Converte a coleção para um array

  • « Ds\Collection::isEmpty
  • Ds\Hashable »
  • PHP Manual
  • Ds\Collection
  • Converte a coleção para um array

Ds\Collection::toArray

(PECL ds >= 1.0.0)

Ds\Collection::toArray — Converte a coleção para um array

Descrição

public Ds\Collection::toArray(): array

Converte a coleção para um array.

Nota:

A conversão direta para um array ainda não é suportada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo todos os valores na mesma ordem da coleção.

Exemplos

Exemplo #1 Ds\Collection::toArray() exemplo

<?php
$collection = new \Ds\Vector([1, 2, 3]);

var_dump($collection->toArray());
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


A interface Hashable

(PECL ds >= 1.0.0)

Introdução

Hashable é uma interface que permite que objetos sejam usados como chaves. É uma alternativa ao spl_object_hash(), que determina o hash de um objeto com base no seu identificador: isso significa que dois objetos considerados iguais por uma definição implícita não serão tratados como iguais porque não são a mesma instância.

hash() é usada para retornar um valor escalar a ser usado como o valor hash do objeto, o que determina onde ele vai na tabela de hash. Embora esse valor não precise ser único, objetos que são iguais devem ter o mesmo valor hash.

equals() é usada para determinar se dois objetos são iguais. É garantido que o objeto de comparação será uma instância da mesma classe que o objeto sujeito.

Resumo da Interface

interface Ds\Hashable {
/* Métodos */
abstract public equals(object $obj): bool
abstract public hash(): mixed
}

Índice

  • Ds\Hashable::equals — Determina se um objeto é igual à instância atual
  • Ds\Hashable::hash — Retorna um valor escalar a ser usado como valor de hash


Determina se um objeto é igual à instância atual

  • « Ds\Hashable
  • Ds\Hashable::hash »
  • PHP Manual
  • Ds\Hashable
  • Determina se um objeto é igual à instância atual

Ds\Hashable::equals

(PECL ds >= 1.0.0)

Ds\Hashable::equals — Determina se um objeto é igual à instância atual

Descrição

abstract public Ds\Hashable::equals(object $obj): bool

Determina se outro objeto é igual à instância atual.

Este método permite que objetos sejam usados como chaves em estruturas como Ds\Map e Ds\Set, ou qualquer outra estrutura de pesquisa que respeite esta interface.

Nota:

É garantido que obj é uma instância da mesma classe.

Cuidado

É importante que objetos que são iguais também tenham o mesmo valor de hash. Veja Ds\Hashable::hash().

Parâmetros

obj

O objeto para comparar com a instância atual, que é sempre uma instância da mesma classe.

Valor Retornado

true se forem iguais, false caso contrário.


Retorna um valor escalar a ser usado como valor de hash

  • « Ds\Hashable::equals
  • Ds\Sequence »
  • PHP Manual
  • Ds\Hashable
  • Retorna um valor escalar a ser usado como valor de hash

Ds\Hashable::hash

(PECL ds >= 1.0.0)

Ds\Hashable::hash — Retorna um valor escalar a ser usado como valor de hash

Descrição

abstract public Ds\Hashable::hash(): mixed

Retorna um valor escalar a ser usado como valor de hash dos objetos.

Embora o valor de hash não defina igualdade, todos os objetos que são iguais de acordo com Ds\Hashable::equals() devem ter o mesmo valor de hash. Os valores de hash de objetos iguais não precisam ser exclusivos, por exemplo, você poderia simplesmente retornar true para todos os objetos e nada quebraria - a única implicação seria que as tabelas de hash se transformariam em listas encadeadas porque todos os seus objetos seriam hashados para o mesmo bucket. Portanto, é muito importante escolher um bom valor de hash, como um ID ou endereço de e-mail.

Este método permite que objetos sejam usados como chaves em estruturas como Ds\Map e Ds\Set, ou qualquer outra estrutura de pesquisa que honre esta interface.

Cuidado

Não escolha um valor que possa mudar dentro do objeto, como uma propriedade pública. As consultas de tabela de hash falhariam porque o hash mudou.

Cuidado

Todos os objetos que são iguais devem ter o mesmo valor de hash.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um valor escalar a ser usado como valor de hash deste objeto.

Exemplos

Exemplo #1 Ds\Hashable::hash() exemplo

<?php
class HashableObject implements \Ds\Hashable
{
private $name;
private $email;

public function __construct($name, $email)
{
$this->name = $name;
$this->email = $email;
}

/**
* Should return the same value for all equal objects, but doesn't have to
* be unique. This value will not be used to determine equality.
*/
public function hash()
{
return $this->email;
}

/**
* This determines equality, usually during a hash table lookup to determine
* if the bucket's key matches the lookup key. The hash has to be equal if
* the objects are equal, otherwise this determination wouldn't be reached.
*/
public function equals($obj): bool
{
return $this->name === $obj->name
&& $this->email === $obj->email;
}
}
?>


A Interface Sequence

(PECL ds >= 1.0.0)

Introdução

A Sequence descreve o comportamento de valores dispostos em uma única dimensão linear. Algumas linguagens se referem a isso como uma "Lista". É semelhante a uma matriz que usa chaves incrementais de inteiro, com exceção de algumas características:

  • Os valores sempre serão indexados como [0, 1, 2, …, size - 1].
  • Apenas é permitido acessar valores pelo índice na faixa [0, size - 1].

Casos de uso:

  • Onde você usaria uma matriz como uma lista (sem se preocupar com as chaves).
  • Uma alternativa mais eficiente para SplDoublyLinkedList e SplFixedArray.

Resumo da Interface

interface Ds\Sequence extends Ds\Collection, ArrayAccess {
/* Métodos */
abstract public allocate(int $capacity): void
abstract public apply(callable $callback): void
abstract public capacity(): int
abstract public contains(mixed ...$values): bool
abstract public filter(callable $callback = ?): Ds\Sequence
abstract public find(mixed $value): mixed
abstract public first(): mixed
abstract public get(int $index): mixed
abstract public insert(int $index, mixed ...$values): void
abstract public join(string $glue = ?): string
abstract public last(): mixed
abstract public map(callable $callback): Ds\Sequence
abstract public merge(mixed $values): Ds\Sequence
abstract public pop(): mixed
abstract public push(mixed ...$values): void
abstract public reduce(callable $callback, mixed $initial = ?): mixed
abstract public remove(int $index): mixed
abstract public reverse(): void
abstract public reversed(): Ds\Sequence
abstract public rotate(int $rotations): void
abstract public set(int $index, mixed $value): void
abstract public shift(): mixed
abstract public slice(int $index, int $length = ?): Ds\Sequence
abstract public sort(callable $comparator = ?): void
abstract public sorted(callable $comparator = ?): Ds\Sequence
abstract public sum(): int|float
abstract public unshift(mixed $values = ?): void
/* Métodos herdados */
public Ds\Collection::clear(): void
public Ds\Collection::copy(): Ds\Collection
public Ds\Collection::isEmpty(): bool
public Ds\Collection::toArray(): array
public Countable::count(): int
public IteratorAggregate::getIterator(): Traversable
public JsonSerializable::jsonSerialize(): mixed
public ArrayAccess::offsetExists(mixed $offset): bool
public ArrayAccess::offsetGet(mixed $offset): mixed
public ArrayAccess::offsetSet(mixed $offset, mixed $value): void
public ArrayAccess::offsetUnset(mixed $offset): void
}

Registro de Alterações

Versão | Descrição
PECL ds 1.3.0 | A interface agora estende ArrayAccess.

Índice

  • Ds\Sequence::allocate — Aloca memória suficiente para uma capacidade requerida
  • Ds\Sequence::apply — Atualiza todos os valores aplicando uma função callback a cada valor
  • Ds\Sequence::capacity — Retorna a capacidade atual
  • Ds\Sequence::contains — Determina se a sequência contém determinados valores
  • Ds\Sequence::filter — Cria uma nova sequência usando um callable para determinar quais valores incluir.
  • Ds\Sequence::find — Tenta encontrar o índice de um valor
  • Ds\Sequence::first — Retorna o primeiro valor na sequência
  • Ds\Sequence::get — Retorna o valor em um índice específico
  • Ds\Sequence::insert — Insere valores em um índice específico
  • Ds\Sequence::join — Une todos os valores como uma string
  • Ds\Sequence::last — Retorna o último valor
  • Ds\Sequence::map — Retorna o resultado da aplicação de um callback a cada valor
  • Ds\Sequence::merge — Retorna o resultado de adicionar todos os valores fornecidos à sequência
  • Ds\Sequence::pop — Remove e retorna o último valor
  • Ds\Sequence::push — Adiciona valores ao final da sequência
  • Ds\Sequence::reduce — Reduz a sequência a um único valor usando uma função de callback
  • Ds\Sequence::remove — Remove e retorna um valor pelo índice
  • Ds\Sequence::reverse — Inverte a sequência no local
  • Ds\Sequence::reversed — Retorna uma cópia reversa
  • Ds\Sequence::rotate — Rotaciona a sequência pelo número dado de rotações
  • Ds\Sequence::set — Atualiza um valor em um índice específico
  • Ds\Sequence::shift — Remove e retorna o primeiro valor
  • Ds\Sequence::slice — Retorna uma sub-sequência de um intervalo dado
  • Ds\Sequence::sort — Ordena a sequência no local
  • Ds\Sequence::sorted — Retorna uma cópia ordenada
  • Ds\Sequence::sum — Retorna a soma de todos os valores na sequência
  • Ds\Sequence::unshift — Adiciona valores no início da sequência


Aloca memória suficiente para uma capacidade requerida

  • « Ds\Sequence
  • Ds\Sequence::apply »
  • PHP Manual
  • Ds\Sequence
  • Aloca memória suficiente para uma capacidade requerida

Ds\Sequence::allocate

(PECL ds >= 1.0.0)

Ds\Sequence::allocate — Aloca memória suficiente para uma capacidade requerida

Descrição

abstract public Ds\Sequence::allocate(int $capacity): void

Garante que memória suficiente seja alocada para uma capacidade necessária. Isso remove a necessidade de realocar internamente conforme os valores são adicionados.

Parâmetros

capacity

O número de valores para os quais a capacidade deve ser alocada.

Nota:

A capacidade permanecerá a mesma se este valor for menor ou igual à capacidade atual.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::allocate()

<?php
$sequence = new \Ds\Vector();
var_dump($sequence->capacity());

$vector->allocate(100);
var_dump($sequence->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(10)
int(100)


Atualiza todos os valores aplicando uma função callback a cada valor

  • « Ds\Sequence::allocate
  • Ds\Sequence::capacity »
  • PHP Manual
  • Ds\Sequence
  • Atualiza todos os valores aplicando uma função callback a cada valor

Ds\Sequence::apply

(PECL ds >= 1.0.0)

Ds\Sequence::apply — Atualiza todos os valores aplicando uma função callback a cada valor

Descrição

abstract public Ds\Sequence::apply(callable $callback): void

Atualiza todos os valores aplicando uma função callback a cada valor na sequência.

Parâmetros

callback

callback(mixed $value): mixed

Um callable para aplicar a cada valor na sequência.

A função callback deve retornar pelo que o valor deve ser substituído.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::apply()

<?php
$sequence = new \Ds\Sequence([1, 2, 3]);
$sequence->apply(function($value) { return $value * 2; });

print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Retorna a capacidade atual

  • « Ds\Sequence::apply
  • Ds\Sequence::contains »
  • PHP Manual
  • Ds\Sequence
  • Retorna a capacidade atual

Ds\Sequence::capacity

(PECL ds >= 1.0.0)

Ds\Sequence::capacity — Retorna a capacidade atual

Descrição

abstract public Ds\Sequence::capacity(): int

Retorna a capacidade atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A capacidade atual.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::capacity()

<?php
$sequence = new \Ds\Vector();
var_dump($sequence->capacity());

$sequence->push(...range(1, 50));
var_dump($sequence->capacity());

$sequence[] = "a";
var_dump($sequence->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(10)
int(50)
int(75)


Determina se a sequência contém determinados valores

  • « Ds\Sequence::capacity
  • Ds\Sequence::filter »
  • PHP Manual
  • Ds\Sequence
  • Determina se a sequência contém determinados valores

Ds\Sequence::contains

(PECL ds >= 1.0.0)

Ds\Sequence::contains — Determina se a sequência contém determinados valores

Descrição

abstract public Ds\Sequence::contains(mixed ...$values): bool

Determina se a sequência contém todos os valores.

Parâmetros

values

Valores a verificar.

Valor Retornado

false se algum dos values fornecidos não estiver na sequência, true caso contrário.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::contains()

<?php
$sequence = new \Ds\Vector(['a', 'b', 'c', 1, 2, 3]);

var_dump($sequence->contains('a')); // true
var_dump($sequence->contains('a', 'b')); // true
var_dump($sequence->contains('c', 'd')); // false

var_dump($sequence->contains(...['c', 'b', 'a'])); // true

// Sempre estrito
var_dump($sequence->contains(1)); // true
var_dump($sequence->contains('1')); // false

var_dump($sequece->contains(...[])); // true
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Cria uma nova sequência usando um callable para determinar quais valores incluir.

  • « Ds\Sequence::contains
  • Ds\Sequence::find »
  • PHP Manual
  • Ds\Sequence
  • Cria uma nova sequência usando um callable para determinar quais valores incluir.

Ds\Sequence::filter

(PECL ds >= 1.0.0)

Ds\Sequence::filter — Cria uma nova sequência usando um callable para determinar quais valores incluir.

Descrição

abstract public Ds\Sequence::filter(callable $callback = ?): Ds\Sequence

Cria uma nova sequência usando um callable para determinar quais valores incluir.

Parâmetros

callback

callback(mixed $value): bool

callable opcional que retorna true se o valor deve ser incluído, false caso contrário.

Se um callback não for fornecido, apenas valores que são true (veja conversão para booleano) serão incluídos.

Valor Retornado

Uma nova sequência contendo todos os valores para os quais o callback retornou true, ou todos os valores que convertem para true se um callback não foi fornecido.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::filter() usando uma função callback

<?php
$sequence = new \Ds\Vector([1, 2, 3, 4, 5]);

var_dump($sequence->filter(function($value) {
return $value % 2 == 0;
}));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Vector)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Exemplo #2 Exemplo de Ds\Sequence::filter() sem uma função callback

<?php
$sequence = new \Ds\Vector([0, 1, 'a', true, false]);

var_dump($sequence->filter());
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Tenta encontrar o índice de um valor

  • « Ds\Sequence::filter
  • Ds\Sequence::first »
  • PHP Manual
  • Ds\Sequence
  • Tenta encontrar o índice de um valor

Ds\Sequence::find

(PECL ds >= 1.0.0)

Ds\Sequence::find — Tenta encontrar o índice de um valor

Descrição

abstract public Ds\Sequence::find(mixed $value): mixed

Retorna o índice do value, ou false se não encontrado.

Parâmetros

value

O valor a ser encontrado.

Valor Retornado

O índice do valor, ou false se não encontrado.

Nota:

Os valores serão comparados por valor e por tipo.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::find()

<?php
$sequence = new \Ds\Vector(["a", 1, true]);

var_dump($sequence->find("a")); // 0
var_dump($sequence->find("b")); // false
var_dump($sequence->find("1")); // false
var_dump($sequence->find(1)); // 1
?>

O exemplo acima produzirá algo semelhante a:

int(0)
bool(false)
bool(false)
int(1)


Retorna o primeiro valor na sequência

  • « Ds\Sequence::find
  • Ds\Sequence::get »
  • PHP Manual
  • Ds\Sequence
  • Retorna o primeiro valor na sequência

Ds\Sequence::first

(PECL ds >= 1.0.0)

Ds\Sequence::first — Retorna o primeiro valor na sequência

Descrição

abstract public Ds\Sequence::first(): mixed

Retorna o primeiro valor na sequência.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O primeiro valor na sequência.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::first()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->first());
?>

O exemplo acima produzirá algo semelhante a:

int(1)


Retorna o valor em um índice específico

  • « Ds\Sequence::first
  • Ds\Sequence::insert »
  • PHP Manual
  • Ds\Sequence
  • Retorna o valor em um índice específico

Ds\Sequence::get

(PECL ds >= 1.0.0)

Ds\Sequence::get — Retorna o valor em um índice específico

Descrição

abstract public Ds\Sequence::get(int $index): mixed

Retorna o valor em um índice específico.

Parâmetros

index

O índice a ser acessado, começando em 0.

Valor Retornado

O valor no índice solicitado.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::get()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->get(0));
var_dump($sequence->get(1));
var_dump($sequence->get(2));
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"

Exemplo #2 Exemplo deDs\Sequence::get() usando a sintaxe de array

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence[0]);
var_dump($sequence[1]);
var_dump($sequence[2]);
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"


Insere valores em um índice específico

  • « Ds\Sequence::get
  • Ds\Sequence::join »
  • PHP Manual
  • Ds\Sequence
  • Insere valores em um índice específico

Ds\Sequence::insert

(PECL ds >= 1.0.0)

Ds\Sequence::insert — Insere valores em um índice específico

Descrição

abstract public Ds\Sequence::insert(int $index, mixed ...$values): void

Insere valores na sequência em um índice específico.

Parâmetros

index

O índice no qual inserir. 0 <= index <= count

Nota:

Você pode inserir no índice igual ao número de valores.

values

O valor ou valores a serem inseridos.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::insert()

<?php
$sequence = new \Ds\Vector();

$sequence->insert(0, "e"); // [e]
$sequence->insert(1, "f"); // [e, f]
$sequence->insert(2, "g"); // [e, f, g]
$sequence->insert(0, "a", "b"); // [a, b, e, f, g]
$sequence->insert(2, ...["c", "d"]); // [a, b, c, d, e, f, g]

var_dump($sequence);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Vector)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Une todos os valores como uma string

  • « Ds\Sequence::insert
  • Ds\Sequence::last »
  • PHP Manual
  • Ds\Sequence
  • Une todos os valores como uma string

Ds\Sequence::join

(PECL ds >= 1.0.0)

Ds\Sequence::join — Une todos os valores como uma string

Descrição

abstract public Ds\Sequence::join(string $glue = ?): string

Une todos os valores como uma string usando um separador opcional entre cada valor.

Parâmetros

glue

Uma string opcional para separar cada valor.

Valor Retornado

Todos os valores da sequência unidos como uma string.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::join() usando uma string de separação

<?php
$sequence = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($sequence->join("|"));
?>

O exemplo acima produzirá algo semelhante a:

string(11) "a|b|c|1|2|3"

Exemplo #2 Exemplo de Ds\Sequence::join() sem uma string de separação

<?php
$sequence = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($sequence->join());
?>

O exemplo acima produzirá algo semelhante a:

string(11) "abc123"


Retorna o último valor

  • « Ds\Sequence::join
  • Ds\Sequence::map »
  • PHP Manual
  • Ds\Sequence
  • Retorna o último valor

Ds\Sequence::last

(PECL ds >= 1.0.0)

Ds\Sequence::last — Retorna o último valor

Descrição

abstract public Ds\Sequence::last(): mixed

Retorna o último valor na sequência.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O último valor na sequência.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::last()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->last());
?>

O exemplo acima produzirá algo semelhante a:

int(3)


Retorna o resultado da aplicação de um callback a cada valor

  • « Ds\Sequence::last
  • Ds\Sequence::merge »
  • PHP Manual
  • Ds\Sequence
  • Retorna o resultado da aplicação de um callback a cada valor

Ds\Sequence::map

(PECL ds >= 1.0.0)

Ds\Sequence::map — Retorna o resultado da aplicação de um callback a cada valor

Descrição

abstract public Ds\Sequence::map(callable $callback): Ds\Sequence

Retorna o resultado da aplicação de uma função de callback a cada valor na sequência.

Parâmetros

callback

callback(mixed $value): mixed

Um callable para aplicar a cada valor na sequência.

O callable deve retornar qual será o novo valor na nova sequência.

Valor Retornado

O resultado da aplicação de um callback a cada valor na sequência.

Nota:

Os valores da instância atual não serão afetados.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::map()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

print_r($sequence->map(function($value) { return $value * 2; }));
print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Retorna o resultado de adicionar todos os valores fornecidos à sequência

  • « Ds\Sequence::map
  • Ds\Sequence::pop »
  • PHP Manual
  • Ds\Sequence
  • Retorna o resultado de adicionar todos os valores fornecidos à sequência

Ds\Sequence::merge

(PECL ds >= 1.0.0)

Ds\Sequence::merge — Retorna o resultado de adicionar todos os valores fornecidos à sequência

Descrição

abstract public Ds\Sequence::merge(mixed $values): Ds\Sequence

Retorna o resultado de adicionar todos os valores fornecidos à sequência.

Parâmetros

values

Um objeto traversable ou um array.

Valor Retornado

O resultado de adicionar todos os valores fornecidos à sequência, efetivamente o mesmo que adicionar os valores a uma cópia e, em seguida, retornar essa cópia.

Nota:

A instância atual não será afetada.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::merge()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->merge([4, 5, 6]));
var_dump($sequence);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Vector)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Remove e retorna o último valor

  • « Ds\Sequence::merge
  • Ds\Sequence::push »
  • PHP Manual
  • Ds\Sequence
  • Remove e retorna o último valor

Ds\Sequence::pop

(PECL ds >= 1.0.0)

Ds\Sequence::pop — Remove e retorna o último valor

Descrição

abstract public Ds\Sequence::pop(): mixed

Remove e retorna o último valor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O último valor removido.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::pop()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->pop());
var_dump($sequence->pop());
var_dump($sequence->pop());
?>

O exemplo acima produzirá algo semelhante a:

int(3)
int(2)
int(1)


Adiciona valores ao final da sequência

  • « Ds\Sequence::pop
  • Ds\Sequence::reduce »
  • PHP Manual
  • Ds\Sequence
  • Adiciona valores ao final da sequência

Ds\Sequence::push

(PECL ds >= 1.0.0)

Ds\Sequence::push — Adiciona valores ao final da sequência

Descrição

abstract public Ds\Sequence::push(mixed ...$values): void

Adiciona valores ao final da sequência.

Parâmetros

values

Os valores a serem adicionados.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::push()

<?php
$sequence = new \Ds\Vector();

$sequence->push("a");
$sequence->push("b");
$sequence->push("c", "d");
$sequence->push(...["e", "f"]);

print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Reduz a sequência a um único valor usando uma função de callback

  • « Ds\Sequence::push
  • Ds\Sequence::remove »
  • PHP Manual
  • Ds\Sequence
  • Reduz a sequência a um único valor usando uma função de callback

Ds\Sequence::reduce

(PECL ds >= 1.0.0)

Ds\Sequence::reduce — Reduz a sequência a um único valor usando uma função de callback

Descrição

abstract public Ds\Sequence::reduce(callable $callback, mixed $initial = ?): mixed

Reduz a sequência a um único valor usando uma função de callback.

Parâmetros

callback
callback(mixed $carry, mixed $value): mixed
carry

O valor de retorno da callback anterior, ou initial se for a primeira iteração.

value

O valor da iteração atual.

initial

O valor inicial do valor de transporte (carry). Pode ser null.

Valor Retornado

O valor de retorno da callback final.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::reduce() com valor inicial

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

$callback = function($carry, $value) {
return $carry * $value;
};

var_dump($sequence->reduce($callback, 5));

// Iterações:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 = 5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

O exemplo acima produzirá algo semelhante a:

int(30)

Exemplo #2 Exemplo de Ds\Sequence::reduce() sem valor inicial

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->reduce(function($carry, $value) {
return $carry + $value + 5;
}));

// Iterações:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 = 6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

O exemplo acima produzirá algo semelhante a:

int(21)


Remove e retorna um valor pelo índice

  • « Ds\Sequence::reduce
  • Ds\Sequence::reverse »
  • PHP Manual
  • Ds\Sequence
  • Remove e retorna um valor pelo índice

Ds\Sequence::remove

(PECL ds >= 1.0.0)

Ds\Sequence::remove — Remove e retorna um valor pelo índice

Descrição

abstract public Ds\Sequence::remove(int $index): mixed

Remove e retorna um valor pelo índice.

Parâmetros

index

O índice do valor a ser removido.

Valor Retornado

O valor que foi removido.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::remove()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->remove(1));
var_dump($sequence->remove(0));
var_dump($sequence->remove(0));
?>

O exemplo acima produzirá algo semelhante a:

string(1) "b"
string(1) "a"
string(1) "c"


Inverte a sequência no local

  • « Ds\Sequence::remove
  • Ds\Sequence::reversed »
  • PHP Manual
  • Ds\Sequence
  • Inverte a sequência no local

Ds\Sequence::reverse

(PECL ds >= 1.0.0)

Ds\Sequence::reverse — Inverte a sequência no local

Descrição

abstract public Ds\Sequence::reverse(): void

Inverte a sequência no local.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::reverse()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);
$sequence->reverse();

print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)


Retorna uma cópia reversa

  • « Ds\Sequence::reverse
  • Ds\Sequence::rotate »
  • PHP Manual
  • Ds\Sequence
  • Retorna uma cópia reversa

Ds\Sequence::reversed

(PECL ds >= 1.0.0)

Ds\Sequence::reversed — Retorna uma cópia reversa

Descrição

abstract public Ds\Sequence::reversed(): Ds\Sequence

Retorna uma cópia reversa da sequência.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma cópia reversa da sequência.

Nota:

A instância atual não é afetada.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::reversed()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

print_r($sequence->reversed());
print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
)


Rotaciona a sequência pelo número dado de rotações

  • « Ds\Sequence::reversed
  • Ds\Sequence::set »
  • PHP Manual
  • Ds\Sequence
  • Rotaciona a sequência pelo número dado de rotações

Ds\Sequence::rotate

(PECL ds >= 1.0.0)

Ds\Sequence::rotate — Rotaciona a sequência pelo número dado de rotações

Descrição

abstract public Ds\Sequence::rotate(int $rotations): void

Rotaciona a sequência pelo número dado de rotações, o que é equivalente a chamar sucessivamente $sequence->push($sequence->shift()) se o número de rotações for positivo, ou $sequence->unshift($sequence->pop()) se for negativo.

Parâmetros

rotations

O número de vezes que a sequência deve ser rotacionada.

Valor Retornado

Nenhum valor é retornado.. A sequência da instância atual será rotacionada.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::rotate()

<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d"]);

$sequence->rotate(1); // "a" é deslocado e, em seguida, adicionado.
print_r($sequence);

$sequence->rotate(2); // "b" e "c" são ambos deslocados e, em seguida, adicionados.
print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Atualiza um valor em um índice específico

  • « Ds\Sequence::rotate
  • Ds\Sequence::shift »
  • PHP Manual
  • Ds\Sequence
  • Atualiza um valor em um índice específico

Ds\Sequence::set

(PECL ds >= 1.0.0)

Ds\Sequence::set — Atualiza um valor em um índice específico

Descrição

abstract public Ds\Sequence::set(int $index, mixed $value): void

Atualiza um valor em um índice específico.

Parâmetros

index

O índice do valor a ser atualizado.

value

O novo valor.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::set()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

$sequence->set(1, "_");
print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)

Exemplo #2 Ds\Sequence::set() example using array syntax

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

$sequence[1] = "_";
print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Remove e retorna o primeiro valor

  • « Ds\Sequence::set
  • Ds\Sequence::slice »
  • PHP Manual
  • Ds\Sequence
  • Remove e retorna o primeiro valor

Ds\Sequence::shift

(PECL ds >= 1.0.0)

Ds\Sequence::shift — Remove e retorna o primeiro valor

Descrição

abstract public Ds\Sequence::shift(): mixed

Remove e retorna o primeiro valor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O primeiro valor, que foi removido.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::shift()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->shift());
var_dump($sequence->shift());
var_dump($sequence->shift());
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"


Retorna uma sub-sequência de um intervalo dado

  • « Ds\Sequence::shift
  • Ds\Sequence::sort »
  • PHP Manual
  • Ds\Sequence
  • Retorna uma sub-sequência de um intervalo dado

Ds\Sequence::slice

(PECL ds >= 1.0.0)

Ds\Sequence::slice — Retorna uma sub-sequência de um intervalo dado

Descrição

abstract public Ds\Sequence::slice(int $index, int $length = ?): Ds\Sequence

Cria uma sub-sequência de um intervalo dado.

Parâmetros

index

O índice no qual a sub-sequência começa.

Se positivo, a sequência começará nesse índice na sequência. Se negativo, a sequência começará a essa distância do final.

length

Se um comprimento for fornecido e for positivo, a sequência resultante terá até esse número de valores. Se o comprimento resultar em um estouro, apenas valores até o final da sequência serão incluídos. Se um comprimento for fornecido e for negativo, a sequência terminará a essa distância do final. Se um comprimento não for fornecido, a sequência resultante conterá todos os valores entre o índice e o final da sequência.

Valor Retornado

Uma sub-sequência do intervalo dado.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::slice()

<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d", "e"]);

// Fatia a partir do índice 2
print_r($sequence->slice(2));

// Fatia a partir do índice 1, por um comprimento de 3
print_r($sequence->slice(1, 3));

// Fatia a partir do índice 1
print_r($sequence->slice(1));

// Fatia a partir do índice 2 do final
print_r($sequence->slice(-2));

// Fatia do índice 1 até 1 do final
print_r($sequence->slice(1, -1));
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Vector Object
(
    [0] => d
    [1] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)


Ordena a sequência no local

  • « Ds\Sequence::slice
  • Ds\Sequence::sorted »
  • PHP Manual
  • Ds\Sequence
  • Ordena a sequência no local

Ds\Sequence::sort

(PECL ds >= 1.0.0)

Ds\Sequence::sort — Ordena a sequência no local

Descrição

abstract public Ds\Sequence::sort(callable $comparator = ?): void

Ordena a sequência no local, usando uma função de comparação comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::sort()

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);
$sequence->sort();

print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemplo #2 Exemplo de Ds\Sequence::sort() usando um comparador

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

$sequence->sort(function($a, $b) {
return $b <=> $a;
});

print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Retorna uma cópia ordenada

  • « Ds\Sequence::sort
  • Ds\Sequence::sum »
  • PHP Manual
  • Ds\Sequence
  • Retorna uma cópia ordenada

Ds\Sequence::sorted

(PECL ds >= 1.0.0)

Ds\Sequence::sorted — Retorna uma cópia ordenada

Descrição

abstract public Ds\Sequence::sorted(callable $comparator = ?): Ds\Sequence

Retorna uma cópia ordenada, usando uma função de comparação comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Retorna uma cópia ordenada da sequência.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::sorted()

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

print_r($sequence->sorted());
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemplo #2 Exemplo de Ds\Sequence::sorted() usando um comparador

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

$sorted = $sequence->sorted(function($a, $b) {
return $b <=> $a;
});

print_r($sorted);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Retorna a soma de todos os valores na sequência

  • « Ds\Sequence::sorted
  • Ds\Sequence::unshift »
  • PHP Manual
  • Ds\Sequence
  • Retorna a soma de todos os valores na sequência

Ds\Sequence::sum

(PECL ds >= 1.0.0)

Ds\Sequence::sum — Retorna a soma de todos os valores na sequência

Descrição

abstract public Ds\Sequence::sum(): int|float

Retorna a soma de todos os valores na sequência.

Nota:

Arrays e objetos são considerados iguais a zero ao calcular a soma.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A soma de todos os valores na sequência, seja como float ou int, dependendo dos valores na sequência.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::sum() com inteiros

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->sum());
?>

O exemplo acima produzirá algo semelhante a:

int(6)

Exemplo #2 Exemplo de Ds\Sequence::sum() com flutuantes

<?php
$sequence = new \Ds\Vector([1, 2.5, 3]);
var_dump($sequence->sum());
?>

O exemplo acima produzirá algo semelhante a:

float(6.5)


Adiciona valores no início da sequência

  • « Ds\Sequence::sum
  • Ds\Vector »
  • PHP Manual
  • Ds\Sequence
  • Adiciona valores no início da sequência

Ds\Sequence::unshift

(PECL ds >= 1.0.0)

Ds\Sequence::unshift — Adiciona valores no início da sequência

Descrição

abstract public Ds\Sequence::unshift(mixed $values = ?): void

Adiciona valores no início da sequência, movendo todos os valores atuais para a frente para dar espaço aos novos valores.

Parâmetros

values

Os valores a serem adicionados no início da sequência.

Nota:

Múltiplos valores serão adicionados na mesma ordem em que são passados.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Sequence::unshift()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

$sequence->unshift("a");
$sequence->unshift("b", "c");

print_r($sequence);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


A classe Vector

(PECL ds >= 1.0.0)

Introdução

Um Vector é uma sequência de valores em um buffer contíguo que cresce e diminui automaticamente. É a estrutura sequencial mais eficiente porque o índice de um valor é um mapeamento direto para seu índice no buffer, e o fator de crescimento não está vinculado a um múltiplo ou expoente específico.

Pontos Fortes

  • Suporta a sintaxe de array (colchetes).
  • Usa menos memória geral do que um array para o mesmo número de valores.
  • Libera automaticamente a memória alocada quando seu tamanho diminui o suficiente.
  • A capacidade não precisa ser uma potência de 2.
  • get(),
set(),
push(),
pop() são todos O(1).

Pontos Fracos

  • shift(),
unshift(),
insert() e
remove() são todos O(n).

Resumo da classe

class Ds\Vector implements Ds\Sequence, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 10;
/* Métodos */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Vector
public filter(callable $callback = ?): Ds\Vector
public find(mixed $value): mixed
public first(): mixed
public get(int $index): mixed
public insert(int $index, mixed ...$values): void
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public map(callable $callback): Ds\Vector
public merge(mixed $values): Ds\Vector
public pop(): mixed
public push(mixed ...$values): void
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(int $index): mixed
public reverse(): void
public reversed(): Ds\Vector
public rotate(int $rotations): void
public set(int $index, mixed $value): void
public shift(): mixed
public slice(int $index, int $length = ?): Ds\Vector
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Vector
public sum(): int|float
public toArray(): array
public unshift(mixed $values = ?): void
}

Constantes pré-definidas

Ds\Vector::MIN_CAPACITY

Registro de Alterações

Versão | Descrição
PECL ds 1.3.0 | A classe agora implementa ArrayAccess.

Índice

  • Ds\Vector::allocate — Aloca memória suficiente para uma capacidade requerida
  • Ds\Vector::apply — Atualiza todos os valores aplicando uma função de callback a cada valor
  • Ds\Vector::capacity — Retorna a capacidade atual
  • Ds\Vector::clear — Remove todos os valores
  • Ds\Vector::__construct — Cria uma nova instância
  • Ds\Vector::contains — Determina se o vetor contém os valores fornecidos
  • Ds\Vector::copy — Retorna uma cópia rasa do vetor
  • Ds\Vector::count — Retorna o número de valores na coleção
  • Ds\Vector::filter — Cria um novo vetor usando um callable para determinar quais valores incluir.
  • Ds\Vector::find — Tenta encontrar o índice de um valor
  • Ds\Vector::first — Retorna o primeiro valor no vetor
  • Ds\Vector::get — Retorna o valor em um índice específico
  • Ds\Vector::insert — Insere valores em um índice específico
  • Ds\Vector::isEmpty — Retorna se o vetor está vazio
  • Ds\Vector::join — Junta todos os valores como uma string
  • Ds\Vector::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
  • Ds\Vector::last — Retorna o último valor
  • Ds\Vector::map — Retorna o resultado da aplicação de uma função de callback a cada valor
  • Ds\Vector::merge — Retorna o resultado da adição de todos os valores fornecidos ao vetor
  • Ds\Vector::pop — Remove e retorna o último valor
  • Ds\Vector::push — Adiciona valores ao final do vetor
  • Ds\Vector::reduce — Reduz o vetor a um único valor usando uma função de callback
  • Ds\Vector::remove — Remove e retorna um valor pelo índice
  • Ds\Vector::reverse — Inverte o vetor no local
  • Ds\Vector::reversed — Retorna uma cópia invertida
  • Ds\Vector::rotate — Rotaciona o vetor por um número dado de rotações
  • Ds\Vector::set — tualiza um valor em um índice específico
  • Ds\Vector::shift — Remove e retorna o primeiro valor
  • Ds\Vector::slice — Retorna um sub-vetor de um determinado intervalo
  • Ds\Vector::sort — Ordena o vetor no local
  • Ds\Vector::sorted — Retorna uma cópia ordenada
  • Ds\Vector::sum — Retorna a soma de todos os valores no vetor
  • Ds\Vector::toArray — Converte o vetor em um array
  • Ds\Vector::unshift — Adiciona valores no início do vetor


Aloca memória suficiente para uma capacidade requerida

  • « Ds\Vector
  • Ds\Vector::apply »
  • PHP Manual
  • Ds\Vector
  • Aloca memória suficiente para uma capacidade requerida

Ds\Vector::allocate

(PECL ds >= 1.0.0)

Ds\Vector::allocate — Aloca memória suficiente para uma capacidade requerida

Descrição

public Ds\Vector::allocate(int $capacity): void

Garante que memória suficiente seja alocada para uma capacidade requerida. Isso evita a necessidade de realocar a memória interna à medida que os valores são adicionados.

Parâmetros

capacity

O número de valores para os quais a capacidade deve ser alocada.

Nota:

A capacidade permanecerá a mesma se esse valor for menor ou igual à capacidade atual.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::allocate()

<?php
$vector = new \Ds\Vector();
var_dump($vector->capacity());

$vector->allocate(100);
var_dump($vector->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(10)
int(100)


Atualiza todos os valores aplicando uma função de callback a cada valor

  • « Ds\Vector::allocate
  • Ds\Vector::capacity »
  • PHP Manual
  • Ds\Vector
  • Atualiza todos os valores aplicando uma função de callback a cada valor

Ds\Vector::apply

(PECL ds >= 1.0.0)

Ds\Vector::apply — Atualiza todos os valores aplicando uma função de callback a cada valor

Descrição

public Ds\Vector::apply(callable $callback): void

Atualiza todos os valores aplicando uma função de callback a cada valor no vetor.

Parâmetros

callback

callback(mixed $value): mixed

Um callable para aplicar a cada valor no vetor.

A função de callback deve retornar o valor pelo qual o valor deve ser substituído.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::apply()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
$vector->apply(function($value) { return $value * 2; });

print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Retorna a capacidade atual

  • « Ds\Vector::apply
  • Ds\Vector::clear »
  • PHP Manual
  • Ds\Vector
  • Retorna a capacidade atual

Ds\Vector::capacity

(PECL ds >= 1.0.0)

Ds\Vector::capacity — Retorna a capacidade atual

Descrição

public Ds\Vector::capacity(): int

Retorna a capacidade atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A capacidade atual.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::capacity()

<?php
$vector = new \Ds\Vector();
var_dump($vector->capacity());

$vector->push(...range(1, 50));
var_dump($vector->capacity());

$vector[] = "a";
var_dump($vector->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(10)
int(50)
int(75)


Remove todos os valores

  • « Ds\Vector::capacity
  • Ds\Vector::__construct »
  • PHP Manual
  • Ds\Vector
  • Remove todos os valores

Ds\Vector::clear

(PECL ds >= 1.0.0)

Ds\Vector::clear — Remove todos os valores

Descrição

public Ds\Vector::clear(): void

Remove todos os valores do vetor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::clear()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
print_r($vector);

$vector->clear();
print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
)


Cria uma nova instância

  • « Ds\Vector::clear
  • Ds\Vector::contains »
  • PHP Manual
  • Ds\Vector
  • Cria uma nova instância

Ds\Vector::__construct

(PECL ds >= 1.0.0)

Ds\Vector::__construct — Cria uma nova instância

Descrição

public Ds\Vector::__construct(mixed $values = ?)

Cria uma nova instância, usando um objeto traversable ou um array para os values iniciais.

Parâmetros

values

Um objeto traversable ou um array para usar como valores iniciais.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::__construct()

<?php
$vector = new \Ds\Vector();
var_dump($vector);

$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Vector)#2 (0) {
}
object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Determina se o vetor contém os valores fornecidos

  • « Ds\Vector::__construct
  • Ds\Vector::copy »
  • PHP Manual
  • Ds\Vector
  • Determina se o vetor contém os valores fornecidos

Ds\Vector::contains

(PECL ds >= 1.0.0)

Ds\Vector::contains — Determina se o vetor contém os valores fornecidos

Descrição

public Ds\Vector::contains(mixed ...$values): bool

Determina se o vetor contém todos os valores fornecidos.

Parâmetros

values

Valores a serem verificados.

Valor Retornado

false se qualquer um dos values fornecidos não estiver no vetor, true caso contrário.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::contains()

<?php
$vector = new \Ds\Vector(['a', 'b', 'c', 1, 2, 3]);

var_dump($vector->contains('a')); // true
var_dump($vector->contains('a', 'b')); // true
var_dump($vector->contains('c', 'd')); // false

var_dump($vector->contains(...['c', 'b', 'a'])); // true

// Sempre restrito
var_dump($vector->contains(1)); // true
var_dump($vector->contains('1')); // false

var_dump($sequece->contains(...[])); // true
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Retorna uma cópia rasa do vetor

  • « Ds\Vector::contains
  • Ds\Vector::count »
  • PHP Manual
  • Ds\Vector
  • Retorna uma cópia rasa do vetor

Ds\Vector::copy

(PECL ds >= 1.0.0)

Ds\Vector::copy — Retorna uma cópia rasa do vetor

Descrição

public Ds\Vector::copy(): Ds\Vector

Retorna uma cópia rasa do vetor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma cópia rasa do vetor.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::copy()

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

// Updating the copy doesn't affect the original
$b->push(4);

print_r($a);
print_r($b);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Retorna o número de valores na coleção

  • « Ds\Vector::copy
  • Ds\Vector::filter »
  • PHP Manual
  • Ds\Vector
  • Retorna o número de valores na coleção

Ds\Vector::count

(PECL ds >= 1.0.0)

Ds\Vector::count — Retorna o número de valores na coleção

Descrição

Veja Countable::count()


Cria um novo vetor usando um callable para determinar quais valores incluir.

  • « Ds\Vector::count
  • Ds\Vector::find »
  • PHP Manual
  • Ds\Vector
  • Cria um novo vetor usando um callable para determinar quais valores incluir.

Ds\Vector::filter

(PECL ds >= 1.0.0)

Ds\Vector::filter — Cria um novo vetor usando um callable para determinar quais valores incluir.

Descrição

public Ds\Vector::filter(callable $callback = ?): Ds\Vector

Cria um novo vetor usando um callable para determinar quais valores incluir.

Parâmetros

callback

callback(mixed $value): bool

callable opcional que retorna true se o valor deve ser incluído, false caso contrário.

Se um callback não for fornecido, apenas valores que são true (veja conversão para booleano) serão incluídos.

Valor Retornado

Um novo vetor contendo todos os valores para os quais ou o callback retornou true, ou todos os valores que convertem para true se um callback não foi fornecido.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::filter() usando uma função de callback

<?php
$vector = new \Ds\Vector([1, 2, 3, 4, 5]);

var_dump($vector->filter(function($value) {
return $value % 2 == 0;
}));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Vector)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Exemplo #2 Exemplo de Ds\Vector::filter() sem usar uma função de callback

<?php
$vector = new \Ds\Vector([0, 1, 'a', true, false]);

var_dump($vector->filter());
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Tenta encontrar o índice de um valor

  • « Ds\Vector::filter
  • Ds\Vector::first »
  • PHP Manual
  • Ds\Vector
  • Tenta encontrar o índice de um valor

Ds\Vector::find

(PECL ds >= 1.0.0)

Ds\Vector::find — Tenta encontrar o índice de um valor

Descrição

public Ds\Vector::find(mixed $value): mixed

Retorna o índice do value, ou false se não encontrado.

Parâmetros

value

O valor a ser encontrado.

Valor Retornado

O índice do valor, ou false se não encontrado.

Nota:

Os valores serão comparados por valor e por tipo.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::find()

<?php
$vector = new \Ds\Vector(["a", 1, true]);

var_dump($vector->find("a")); // 0
var_dump($vector->find("b")); // false
var_dump($vector->find("1")); // false
var_dump($vector->find(1)); // 1
?>

O exemplo acima produzirá algo semelhante a:

int(0)
bool(false)
bool(false)
int(1)


Retorna o primeiro valor no vetor

  • « Ds\Vector::find
  • Ds\Vector::get »
  • PHP Manual
  • Ds\Vector
  • Retorna o primeiro valor no vetor

Ds\Vector::first

(PECL ds >= 1.0.0)

Ds\Vector::first — Retorna o primeiro valor no vetor

Descrição

public Ds\Vector::first(): mixed

Retorna o primeiro valor no vetor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O primeiro valor no vetor.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::first()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->first());
?>

O exemplo acima produzirá algo semelhante a:

int(1)


Retorna o valor em um índice específico

  • « Ds\Vector::first
  • Ds\Vector::insert »
  • PHP Manual
  • Ds\Vector
  • Retorna o valor em um índice específico

Ds\Vector::get

(PECL ds >= 1.0.0)

Ds\Vector::get — Retorna o valor em um índice específico

Descrição

public Ds\Vector::get(int $index): mixed

Retorna o valor em um índice específico.

Parâmetros

index

O índice a ser acessado, começando em 0.

Valor Retornado

O valor no índice solicitado.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::get()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->get(0));
var_dump($vector->get(1));
var_dump($vector->get(2));
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"

Exemplo #2 Exemplo de Ds\Vector::get() usando a sintaxe de array

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector[0]);
var_dump($vector[1]);
var_dump($vector[2]);
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"


Insere valores em um índice específico

  • « Ds\Vector::get
  • Ds\Vector::isEmpty »
  • PHP Manual
  • Ds\Vector
  • Insere valores em um índice específico

Ds\Vector::insert

(PECL ds >= 1.0.0)

Ds\Vector::insert — Insere valores em um índice específico

Descrição

public Ds\Vector::insert(int $index, mixed ...$values): void

Insere valores no vetor em um índice específico.

Parâmetros

index

O índice no qual inserir. 0 <= index <= count

Nota:

Você pode inserir no índice igual ao número de valores.

values

O valor ou valores a serem inseridos.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::insert()

<?php
$vector = new \Ds\Vector();

$vector->insert(0, "e"); // [e]
$vector->insert(1, "f"); // [e, f]
$vector->insert(2, "g"); // [e, f, g]
$vector->insert(0, "a", "b"); // [a, b, e, f, g]
$vector->insert(2, ...["c", "d"]); // [a, b, c, d, e, f, g]

var_dump($vector);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Vector)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Retorna se o vetor está vazio

  • « Ds\Vector::insert
  • Ds\Vector::join »
  • PHP Manual
  • Ds\Vector
  • Retorna se o vetor está vazio

Ds\Vector::isEmpty

(PECL ds >= 1.0.0)

Ds\Vector::isEmpty — Retorna se o vetor está vazio

Descrição

public Ds\Vector::isEmpty(): bool

Retorna se o vetor está vazio.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o vetor estiver vazio, false caso contrário.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::isEmpty()

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Junta todos os valores como uma string

  • « Ds\Vector::isEmpty
  • Ds\Vector::jsonSerialize »
  • PHP Manual
  • Ds\Vector
  • Junta todos os valores como uma string

Ds\Vector::join

(PECL ds >= 1.0.0)

Ds\Vector::join — Junta todos os valores como uma string

Descrição

public Ds\Vector::join(string $glue = ?): string

Junta todos os valores como uma string usando um separador opcional entre cada valor.

Parâmetros

glue

Uma string opcional para separar cada valor.

Valor Retornado

Todos os valores do vetor juntos como uma string.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::join() usando uma string de separação

<?php
$vector = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($vector->join("|"));
?>

O exemplo acima produzirá algo semelhante a:

string(11) "a|b|c|1|2|3"

Exemplo #2 Exemplo de Ds\Vector::join() sem uma string de separação

<?php
$vector = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($vector->join());
?>

O exemplo acima produzirá algo semelhante a:

string(11) "abc123"


Retorna uma representação que pode ser convertida para JSON

  • « Ds\Vector::join
  • Ds\Vector::last »
  • PHP Manual
  • Ds\Vector
  • Retorna uma representação que pode ser convertida para JSON

Ds\Vector::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Vector::jsonSerialize — Retorna uma representação que pode ser convertida para JSON

Descrição

Veja JsonSerializable::jsonSerialize()

Nota:

Normalmente, não deve ser necessário chamar este método diretamente.


Retorna o último valor

  • « Ds\Vector::jsonSerialize
  • Ds\Vector::map »
  • PHP Manual
  • Ds\Vector
  • Retorna o último valor

Ds\Vector::last

(PECL ds >= 1.0.0)

Ds\Vector::last — Retorna o último valor

Descrição

public Ds\Vector::last(): mixed

Retorna o último valor no vetor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O último valor no vetor.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::last()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->last());
?>

O exemplo acima produzirá algo semelhante a:

int(3)


Retorna o resultado da aplicação de uma função de callback a cada valor

  • « Ds\Vector::last
  • Ds\Vector::merge »
  • PHP Manual
  • Ds\Vector
  • Retorna o resultado da aplicação de uma função de callback a cada valor

Ds\Vector::map

(PECL ds >= 1.0.0)

Ds\Vector::map — Retorna o resultado da aplicação de uma função de callback a cada valor

Descrição

public Ds\Vector::map(callable $callback): Ds\Vector

Retorna o resultado da aplicação de uma função de callback a cada valor no vetor.

Parâmetros

callback

callback(mixed $value): mixed

Um callable para aplicar a cada valor no vetor.

O callable deve retornar qual será o novo valor no novo vetor.

Valor Retornado

O resultado da aplicação de uma callback a cada valor no vetor.

Nota:

Os valores da instância atual não serão afetados.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::map()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

print_r($vector->map(function($value) { return $value * 2; }));
print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Retorna o resultado da adição de todos os valores fornecidos ao vetor

  • « Ds\Vector::map
  • Ds\Vector::pop »
  • PHP Manual
  • Ds\Vector
  • Retorna o resultado da adição de todos os valores fornecidos ao vetor

Ds\Vector::merge

(PECL ds >= 1.0.0)

Ds\Vector::merge — Retorna o resultado da adição de todos os valores fornecidos ao vetor

Descrição

public Ds\Vector::merge(mixed $values): Ds\Vector

Retorna o resultado da adição de todos os valores fornecidos ao vetor.

Parâmetros

values

Um objeto traversable ou um array.

Valor Retornado

O resultado da adição de todos os valores fornecidos ao vetor, efetivamente o mesmo que adicionar os valores a uma cópia e, em seguida, retornar essa cópia.

Nota:

A instância atual não será afetada.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::merge()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->merge([4, 5, 6]));
var_dump($vector);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Vector)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Remove e retorna o último valor

  • « Ds\Vector::merge
  • Ds\Vector::push »
  • PHP Manual
  • Ds\Vector
  • Remove e retorna o último valor

Ds\Vector::pop

(PECL ds >= 1.0.0)

Ds\Vector::pop — Remove e retorna o último valor

Descrição

public Ds\Vector::pop(): mixed

Remove e retorna o último valor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O último valor removido.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::pop()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->pop());
var_dump($vector->pop());
var_dump($vector->pop());
?>

O exemplo acima produzirá algo semelhante a:

int(3)
int(2)
int(1)


Adiciona valores ao final do vetor

  • « Ds\Vector::pop
  • Ds\Vector::reduce »
  • PHP Manual
  • Ds\Vector
  • Adiciona valores ao final do vetor

Ds\Vector::push

(PECL ds >= 1.0.0)

Ds\Vector::push — Adiciona valores ao final do vetor

Descrição

public Ds\Vector::push(mixed ...$values): void

Adiciona valores ao final do vetor.

Parâmetros

values

Os valores a serem adicionado.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::push()

<?php
$vector = new \Ds\Vector();

$vector->push("a");
$vector->push("b");
$vector->push("c", "d");
$vector->push(...["e", "f"]);

print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Reduz o vetor a um único valor usando uma função de callback

  • « Ds\Vector::push
  • Ds\Vector::remove »
  • PHP Manual
  • Ds\Vector
  • Reduz o vetor a um único valor usando uma função de callback

Ds\Vector::reduce

(PECL ds >= 1.0.0)

Ds\Vector::reduce — Reduz o vetor a um único valor usando uma função de callback

Descrição

public Ds\Vector::reduce(callable $callback, mixed $initial = ?): mixed

Reduz o vetor a um único valor usando uma função de callback.

Parâmetros

callback
callback(mixed $carry, mixed $value): mixed
carry

O valor de retorno da callback anterior, ou initial se for a primeira iteração.

value

O valor da iteração atual.

initial

O valor inicial do valor de transporte. Pode ser null.

Valor Retornado

O valor de retorno da callback final.

Exemplos

Exemplo #1 Exemplo deDs\Vector::reduce() com um valor inicial

<?php
$vector = new \Ds\Vector([1, 2, 3]);

$callback = function($carry, $value) {
return $carry * $value;
};

var_dump($vector->reduce($callback, 5));

// Iterações:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 = 5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

O exemplo acima produzirá algo semelhante a:

int(30)

Exemplo #2 Exemplo de Ds\Vector::reduce() sem um valor inicial

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->reduce(function($carry, $value) {
return $carry + $value + 5;
}));

// Iterações:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 = 6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

O exemplo acima produzirá algo semelhante a:

int(21)


Remove e retorna um valor pelo índice

  • « Ds\Vector::reduce
  • Ds\Vector::reverse »
  • PHP Manual
  • Ds\Vector
  • Remove e retorna um valor pelo índice

Ds\Vector::remove

(PECL ds >= 1.0.0)

Ds\Vector::remove — Remove e retorna um valor pelo índice

Descrição

public Ds\Vector::remove(int $index): mixed

Remove e retorna um valor pelo índice.

Parâmetros

index

O índice do valor a ser removido.

Valor Retornado

O valor que foi removido.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::remove()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->remove(1));
var_dump($vector->remove(0));
var_dump($vector->remove(0));
?>

O exemplo acima produzirá algo semelhante a:

string(1) "b"
string(1) "a"
string(1) "c"


Inverte o vetor no local

  • « Ds\Vector::remove
  • Ds\Vector::reversed »
  • PHP Manual
  • Ds\Vector
  • Inverte o vetor no local

Ds\Vector::reverse

(PECL ds >= 1.0.0)

Ds\Vector::reverse — Inverte o vetor no local

Descrição

public Ds\Vector::reverse(): void

Inverte o vetor no local.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplod de Ds\Vector::reverse()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);
$vector->reverse();

print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)


Retorna uma cópia invertida

  • « Ds\Vector::reverse
  • Ds\Vector::rotate »
  • PHP Manual
  • Ds\Vector
  • Retorna uma cópia invertida

Ds\Vector::reversed

(PECL ds >= 1.0.0)

Ds\Vector::reversed — Retorna uma cópia invertida

Descrição

public Ds\Vector::reversed(): Ds\Vector

Retorna uma cópia invertida do vetor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma cópia invertida do vetor.

Nota:

A instância atual não é afetada.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::reversed()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

print_r($vector->reversed());
print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
)


Rotaciona o vetor por um número dado de rotações

  • « Ds\Vector::reversed
  • Ds\Vector::set »
  • PHP Manual
  • Ds\Vector
  • Rotaciona o vetor por um número dado de rotações

Ds\Vector::rotate

(PECL ds >= 1.0.0)

Ds\Vector::rotate — Rotaciona o vetor por um número dado de rotações

Descrição

public Ds\Vector::rotate(int $rotations): void

Rotaciona o vetor por um número dado de rotações, o que é equivalente a chamar sucessivamente $vector->push($vector->shift()) se o número de rotações for positivo, ou $vector->unshift($vector->pop()) se negativo.

Parâmetros

rotations

O número de vezes que o vetor deve ser rotacionado.

Valor Retornado

Nenhum valor é retornado.. O vetor da instância atual será rotacionado.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::rotate()

<?php
$vector = new \Ds\Vector(["a", "b", "c", "d"]);

$vector->rotate(1); // "a" is shifted, then pushed.
print_r($vector);

$vector->rotate(2); // "b" and "c" are both shifted, the pushed.
print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


tualiza um valor em um índice específico

  • « Ds\Vector::rotate
  • Ds\Vector::shift »
  • PHP Manual
  • Ds\Vector
  • tualiza um valor em um índice específico

Ds\Vector::set

(PECL ds >= 1.0.0)

Ds\Vector::set — tualiza um valor em um índice específico

Descrição

public Ds\Vector::set(int $index, mixed $value): void

tualiza um valor em um índice específico.

Parâmetros

index

O índice do valor a ser atualizado.

value

O novo valor.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::set()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

$vector->set(1, "_");
print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)

Exemplo #2 Exemplo de Ds\Vector::set() usando a sintaxe de array

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

$vector[1] = "_";
print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Remove e retorna o primeiro valor

  • « Ds\Vector::set
  • Ds\Vector::slice »
  • PHP Manual
  • Ds\Vector
  • Remove e retorna o primeiro valor

Ds\Vector::shift

(PECL ds >= 1.0.0)

Ds\Vector::shift — Remove e retorna o primeiro valor

Descrição

public Ds\Vector::shift(): mixed

Remove e retorna o primeiro valor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O primeiro valor, que foi removido.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::shift()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->shift());
var_dump($vector->shift());
var_dump($vector->shift());
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"


Retorna um sub-vetor de um determinado intervalo

  • « Ds\Vector::shift
  • Ds\Vector::sort »
  • PHP Manual
  • Ds\Vector
  • Retorna um sub-vetor de um determinado intervalo

Ds\Vector::slice

(PECL ds >= 1.0.0)

Ds\Vector::slice — Retorna um sub-vetor de um determinado intervalo

Descrição

public Ds\Vector::slice(int $index, int $length = ?): Ds\Vector

Cria um sub-vetor de um intervalo específico.

Parâmetros

index

O índice no qual o sub-vetor começa.

Se positivo, o vetor começará nesse índice no vetor. Se negativo, o vetor começará a essa distância do final.

length

Se um comprimento for fornecido e for positivo, o vetor resultante terá até esse número de valores. Se o comprimento resultar em um estouro, apenas valores até o final do vetor serão incluídos. Se um comprimento for fornecido e for negativo, o vetor terá esse número de valores removidos do final. Se um comprimento não for fornecido, o vetor resultante conterá todos os valores entre o índice e o final do vetor.

Valor Retornado

Um sub-vetor do intervalo fornecido.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::slice()

<?php
$vector = new \Ds\Vector(["a", "b", "c", "d", "e"]);

// Corta a partir do índice 2
print_r($vector->slice(2));

// Corta a partir do índice 1, por um comprimento de 3
print_r($vector->slice(1, 3));

// Corta a partir do índice 1
print_r($vector->slice(1));

// Corta a partir do índice 2 do final
print_r($vector->slice(-2));

// Corta do índice 1 até 1 do final
print_r($vector->slice(1, -1));
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Vector Object
(
    [0] => d
    [1] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)


Ordena o vetor no local

  • « Ds\Vector::slice
  • Ds\Vector::sorted »
  • PHP Manual
  • Ds\Vector
  • Ordena o vetor no local

Ds\Vector::sort

(PECL ds >= 1.0.0)

Ds\Vector::sort — Ordena o vetor no local

Descrição

public Ds\Vector::sort(callable $comparator = ?): void

Ordena o vetor no local, usando uma função de comparação comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::sort()

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);
$vector->sort();

print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemplo #2 Exemplo de Ds\Vector::sort() usando um comparador

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

$vector->sort(function($a, $b) {
return $b <=> $a;
});

print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Retorna uma cópia ordenada

  • « Ds\Vector::sort
  • Ds\Vector::sum »
  • PHP Manual
  • Ds\Vector
  • Retorna uma cópia ordenada

Ds\Vector::sorted

(PECL ds >= 1.0.0)

Ds\Vector::sorted — Retorna uma cópia ordenada

Descrição

public Ds\Vector::sorted(callable $comparator = ?): Ds\Vector

Retorna uma cópia ordenada, usando uma função de comparação comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Retorna uma cópia ordenada do vetor.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::sorted()

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

print_r($vector->sorted());
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemplo #2 Exemplo de Ds\Vector::sorted() usando um comparador

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

$sorted = $vector->sorted(function($a, $b) {
return $b <=> $a;
});

print_r($sorted);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Retorna a soma de todos os valores no vetor

  • « Ds\Vector::sorted
  • Ds\Vector::toArray »
  • PHP Manual
  • Ds\Vector
  • Retorna a soma de todos os valores no vetor

Ds\Vector::sum

(PECL ds >= 1.0.0)

Ds\Vector::sum — Retorna a soma de todos os valores no vetor

Descrição

public Ds\Vector::sum(): int|float

Retorna a soma de todos os valores no vetor.

Nota:

Arrays e objetos são considerados iguais a zero ao calcular a soma.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A soma de todos os valores no vetor como um float ou int, dependendo dos valores no vetor.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::sum() com inteiros

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->sum());
?>

O exemplo acima produzirá algo semelhante a:

int(6)

Exemplo #2 Exemplo de Ds\Vector::sum() com flutuantes

<?php
$vector = new \Ds\Vector([1, 2.5, 3]);
var_dump($vector->sum());
?>

O exemplo acima produzirá algo semelhante a:

float(6.5)


Converte o vetor em um array

  • « Ds\Vector::sum
  • Ds\Vector::unshift »
  • PHP Manual
  • Ds\Vector
  • Converte o vetor em um array

Ds\Vector::toArray

(PECL ds >= 1.0.0)

Ds\Vector::toArray — Converte o vetor em um array

Descrição

public Ds\Vector::toArray(): array

Converte o vetor em um array.

Nota:

A conversão direta para array ainda não é suportada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo todos os valores na mesma ordem que o vetor.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::toArray()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->toArray());
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Adiciona valores no início do vetor

  • « Ds\Vector::toArray
  • Ds\Deque »
  • PHP Manual
  • Ds\Vector
  • Adiciona valores no início do vetor

Ds\Vector::unshift

(PECL ds >= 1.0.0)

Ds\Vector::unshift — Adiciona valores no início do vetor

Descrição

public Ds\Vector::unshift(mixed $values = ?): void

Adiciona valores no início do vetor, movendo todos os valores atuais para frente para dar espaço aos novos valores.

Parâmetros

values

Os valores a serem adicionados no início do vetor.

Nota:

Múltiplos valores serão adicionados na mesma ordem em que são passados.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Vector::unshift()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

$vector->unshift("a");
$vector->unshift("b", "c");

print_r($vector);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


A classe Deque

(PECL ds >= 1.0.0)

Introdução

Um Deque (pronunciado "deck") é uma sequência de valores em um buffer contíguo que cresce e diminui automaticamente. O nome é uma abreviação comum de "double-ended queue" e é usado internamente por Ds\Queue.

Dois ponteiros são usados para acompanhar um head e um tail. Os ponteiros podem "envolver" a extremidade do buffer, o que evita a necessidade de mover outros valores para criar espaço. Isso torna shift e unshift muito rápidos?—? algo que um Ds\Vector não pode competir.

Acesso a um valor pelo índice requer uma tradução entre o índice e sua posição correspondente no buffer: ((head + position) % capacity).

Pontos Fortes

  • Suporta a sintaxe de array (colchetes).
  • Utiliza menos memória geral do que um array para o mesmo número de valores.
  • Libera automaticamente a memória alocada quando seu tamanho diminui o suficiente.
  • get(),
set(),
push(),
pop(),
shift() e
unshift() são todos O(1).

Pontos Fracos

  • A capacidade deve ser uma potência de 2.
  • insert() e remove() são O(n).

Resumo da classe

class Ds\Deque implements Ds\Sequence, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 8;
/* Métodos */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Deque
public filter(callable $callback = ?): Ds\Deque
public find(mixed $value): mixed
public first(): mixed
public get(int $index): mixed
public insert(int $index, mixed ...$values): void
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public map(callable $callback): Ds\Deque
public merge(mixed $values): Ds\Deque
public pop(): mixed
public push(mixed ...$values): void
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(int $index): mixed
public reverse(): void
public reversed(): Ds\Deque
public rotate(int $rotations): void
public set(int $index, mixed $value): void
public shift(): mixed
public slice(int $index, int $length = ?): Ds\Deque
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Deque
public sum(): int|float
public toArray(): array
public unshift(mixed $values = ?): void
}

Constantes pré-definidas

Ds\Deque::MIN_CAPACITY

Registro de Alterações

Versão | Descrição
PECL ds 1.3.0 | A classe agora implementa ArrayAccess.

Índice

  • Ds\Deque::allocate — Alloca memória suficiente para uma capacidade necessária
  • Ds\Deque::apply — Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor
  • Ds\Deque::capacity — Retorna a capacidade atual
  • Ds\Deque::clear — Remove todos os valores do deque
  • Ds\Deque::__construct — Cria uma nova instância
  • Ds\Deque::contains — Determina se a deque contém os valores fornecidos
  • Ds\Deque::copy — Retorna uma cópia rasa da deque
  • Ds\Deque::count — Retorna o número de valores na coleção
  • Ds\Deque::filter — Cria um novo deque usando um callable para determinar quais valores incluir
  • Ds\Deque::find — Tenta encontrar o índice de um valor
  • Ds\Deque::first — Retorna o primeiro valor na deque
  • Ds\Deque::get — Retorna o valor em um índice específico
  • Ds\Deque::insert — Insere valores em um índice específico
  • Ds\Deque::isEmpty — Retorna se o deque está vazio
  • Ds\Deque::join — Une todos os valores como uma string
  • Ds\Deque::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
  • Ds\Deque::last — Retorna o último valor
  • Ds\Deque::map — Retorna o resultado de aplicar uma função de retorno de chamada a cada valor
  • Ds\Deque::merge — Retorna o resultado de adicionar todos os valores dados à deque
  • Ds\Deque::pop — Remove e retorna o último valor
  • Ds\Deque::push — Adiciona valores ao final do deque
  • Ds\Deque::reduce — Reduz o deque a um único valor usando uma função de retorno de chamada
  • Ds\Deque::remove — Remove e retorna um valor pelo índice
  • Ds\Deque::reverse — Inverte a deque no local
  • Ds\Deque::reversed — Retorna uma cópia invertida
  • Ds\Deque::rotate — Rotaciona a deque por um número dado de rotações
  • Ds\Deque::set — Atualiza um valor em um índice específico
  • Ds\Deque::shift — Remove e retorna o primeiro valor
  • Ds\Deque::slice — Retorna uma sub-deque de um determinado intervalo
  • Ds\Deque::sort — Ordena a deque no local
  • Ds\Deque::sorted — Retorna uma cópia ordenada
  • Ds\Deque::sum — Retorna a soma de todos os valores na deque
  • Ds\Deque::toArray — Converte a deque para um array.
  • Ds\Deque::unshift — Adiciona valores no início da deque


Alloca memória suficiente para uma capacidade necessária

  • « Ds\Deque
  • Ds\Deque::apply »
  • PHP Manual
  • Ds\Deque
  • Alloca memória suficiente para uma capacidade necessária

Ds\Deque::allocate

(PECL ds >= 1.0.0)

Ds\Deque::allocate — Alloca memória suficiente para uma capacidade necessária

Descrição

public Ds\Deque::allocate(int $capacity): void

Garante que memória suficiente seja alocada para uma capacidade necessária. Isso elimina a necessidade de realocar internamente conforme os valores são adicionados.

Parâmetros

capacity

O número de valores para os quais a capacidade deve ser alocada.

Nota:

A capacidade permanecerá a mesma se esse valor for menor ou igual à capacidade atual.

Nota:

A capacidade será sempre arredondada para cima para a potência de 2 mais próxima.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Deque::allocate() exemplo

<?php
$deque = new \Ds\Deque();
var_dump($deque->capacity());

$deque->allocate(100);
var_dump($deque->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(8)
int(128)


Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor

  • « Ds\Deque::allocate
  • Ds\Deque::capacity »
  • PHP Manual
  • Ds\Deque
  • Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor

Ds\Deque::apply

(PECL ds >= 1.0.0)

Ds\Deque::apply — Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor

Descrição

public Ds\Deque::apply(callable $callback): void

Atualiza todos os valores aplicando uma função de retorno de chamada callback a cada valor no deque.

Parâmetros

callback

callback(mixed $value): mixed

Um callable para aplicar a cada valor no deque.

A função de retorno de chamada deve retornar pelo que o valor deve ser substituído.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Deque::apply() exemplo

<?php
$deque = new \Ds\Deque([1, 2, 3]);
$deque->apply(function($value) { return $value * 2; });

print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Retorna a capacidade atual

  • « Ds\Deque::apply
  • Ds\Deque::clear »
  • PHP Manual
  • Ds\Deque
  • Retorna a capacidade atual

Ds\Deque::capacity

(PECL ds >= 1.0.0)

Ds\Deque::capacity — Retorna a capacidade atual

Descrição

public Ds\Deque::capacity(): int

Retorna a capacidade atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A capacidade atual.

Exemplos

Exemplo #1 Ds\Deque::capacity() exemplo

<?php
$deque = new \Ds\Deque();
var_dump($deque->capacity());

$deque->push(...range(1, 50));
var_dump($deque->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(8)
int(64)


Remove todos os valores do deque

  • « Ds\Deque::capacity
  • Ds\Deque::__construct »
  • PHP Manual
  • Ds\Deque
  • Remove todos os valores do deque

Ds\Deque::clear

(PECL ds >= 1.0.0)

Ds\Deque::clear — Remove todos os valores do deque

Descrição

public Ds\Deque::clear(): void

Remove todos os valores do deque.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Deque::clear() exemplo

<?php
$deque = new \Ds\Deque([1, 2, 3]);
print_r($deque);

$deque->clear();
print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Deque Object
(
)


Cria uma nova instância

  • « Ds\Deque::clear
  • Ds\Deque::contains »
  • PHP Manual
  • Ds\Deque
  • Cria uma nova instância

Ds\Deque::__construct

(PECL ds >= 1.0.0)

Ds\Deque::__construct — Cria uma nova instância

Descrição

public Ds\Deque::__construct(mixed $values = ?)

Cria uma nova instância, utilizando um objeto traversable ou um array para os values iniciais.

Parâmetros

values

Um objeto traversable ou um array para utilizar como valores iniciais.

Exemplos

Exemplo #1 Ds\Deque::__construct() exemplo

<?php
$deque = new \Ds\Deque();
var_dump($deque);

$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Deque)#2 (0) {
}
object(Ds\Deque)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Determina se a deque contém os valores fornecidos

  • « Ds\Deque::__construct
  • Ds\Deque::copy »
  • PHP Manual
  • Ds\Deque
  • Determina se a deque contém os valores fornecidos

Ds\Deque::contains

(PECL ds >= 1.0.0)

Ds\Deque::contains — Determina se a deque contém os valores fornecidos

Descrição

public Ds\Deque::contains(mixed ...$values): bool

Determina se a deque contém todos os valores.

Parâmetros

values

Valores a serem verificados.

Valor Retornado

false se algum dos values fornecidos não estiver na deque, true caso contrário.

Exemplos

Exemplo #1 Ds\Deque::contains() exemplo

<?php
$deque = new \Ds\Deque(['a', 'b', 'c', 1, 2, 3]);

var_dump($deque->contains('a')); // true
var_dump($deque->contains('a', 'b')); // true
var_dump($deque->contains('c', 'd')); // false

var_dump($deque->contains(...['c', 'b', 'a'])); // true

// Always strict
var_dump($deque->contains(1)); // true
var_dump($deque->contains('1')); // false

var_dump($sequece->contains(...[])); // true
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Retorna uma cópia rasa da deque

  • « Ds\Deque::contains
  • Ds\Deque::count »
  • PHP Manual
  • Ds\Deque
  • Retorna uma cópia rasa da deque

Ds\Deque::copy

(PECL ds >= 1.0.0)

Ds\Deque::copy — Retorna uma cópia rasa da deque

Descrição

public Ds\Deque::copy(): Ds\Deque

Retorna uma cópia rasa da deque.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma cópia rasa da deque.

Exemplos

Exemplo #1 Ds\Deque::copy() exemplo

<?php
$a = new \Ds\Deque([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Retorna o número de valores na coleção

  • « Ds\Deque::copy
  • Ds\Deque::filter »
  • PHP Manual
  • Ds\Deque
  • Retorna o número de valores na coleção

Ds\Deque::count

(PECL ds >= 1.0.0)

Ds\Deque::count — Retorna o número de valores na coleção

Descrição

Veja Countable::count()


Cria um novo deque usando um callable para determinar quais valores incluir

  • « Ds\Deque::count
  • Ds\Deque::find »
  • PHP Manual
  • Ds\Deque
  • Cria um novo deque usando um callable para determinar quais valores incluir

Ds\Deque::filter

(PECL ds >= 1.0.0)

Ds\Deque::filter — Cria um novo deque usando um callable para determinar quais valores incluir

Descrição

public Ds\Deque::filter(callable $callback = ?): Ds\Deque

Cria um novo deque usando um callable para determinar quais valores incluir.

Parâmetros

callback

callback(mixed $value): bool

callable opcional que retorna true se o valor deve ser incluído, false caso contrário.

Se um callback não for fornecido, apenas valores que são true (veja conversão para booleano) serão incluídos.

Valor Retornado

Um novo deque contendo todos os valores para os quais o callback retornou true, ou todos os valores que se convertem em true se um callback não foi fornecido.

Exemplos

Exemplo #1 Exemplo de Ds\Deque::filter() usando função callback

<?php
$deque = new \Ds\Deque([1, 2, 3, 4, 5]);

var_dump($deque->filter(function($value) {
return $value % 2 == 0;
}));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Deque)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Exemplo #2 Exemplo de Ds\Deque::filter() sem função callback

<?php
$deque = new \Ds\Deque([0, 1, 'a', true, false]);

var_dump($deque->filter());
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Deque)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Tenta encontrar o índice de um valor

  • « Ds\Deque::filter
  • Ds\Deque::first »
  • PHP Manual
  • Ds\Deque
  • Tenta encontrar o índice de um valor

Ds\Deque::find

(PECL ds >= 1.0.0)

Ds\Deque::find — Tenta encontrar o índice de um valor

Descrição

public Ds\Deque::find(mixed $value): mixed

Retorna o índice do value, ou false se não for encontrado.

Parâmetros

value

O valor a ser encontrado.

Valor Retornado

O índice do valor, ou false se não for encontrado.

Nota:

Os valores serão comparados por valor e por tipo.

Exemplos

Exemplo #1 Ds\Deque::find() exemplo

<?php
$deque = new \Ds\Deque(["a", 1, true]);

var_dump($deque->find("a")); // 0
var_dump($deque->find("b")); // false
var_dump($deque->find("1")); // false
var_dump($deque->find(1)); // 1
?>

O exemplo acima produzirá algo semelhante a:

int(0)
bool(false)
bool(false)
int(1)


Retorna o primeiro valor na deque

  • « Ds\Deque::find
  • Ds\Deque::get »
  • PHP Manual
  • Ds\Deque
  • Retorna o primeiro valor na deque

Ds\Deque::first

(PECL ds >= 1.0.0)

Ds\Deque::first — Retorna o primeiro valor na deque

Descrição

public Ds\Deque::first(): mixed

Retorna o primeiro valor na deque.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O primeiro valor na deque.

Erros/Exceções

UnderflowException se estiver vazia.

Exemplos

Exemplo #1 Ds\Deque::first() exemplo

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->first());
?>

O exemplo acima produzirá algo semelhante a:

int(1)


Retorna o valor em um índice específico

  • « Ds\Deque::first
  • Ds\Deque::insert »
  • PHP Manual
  • Ds\Deque
  • Retorna o valor em um índice específico

Ds\Deque::get

(PECL ds >= 1.0.0)

Ds\Deque::get — Retorna o valor em um índice específico

Descrição

public Ds\Deque::get(int $index): mixed

Retorna o valor em um índice específico.

Parâmetros

index

O índice a ser acessado, começando em 0.

Valor Retornado

O valor no índice solicitado.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Ds\Deque::get() exemplo

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->get(0));
var_dump($deque->get(1));
var_dump($deque->get(2));
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"

Exemplo #2 Exemplo de Ds\Deque::get() usando a sintaxe de array

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque[0]);
var_dump($deque[1]);
var_dump($deque[2]);
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"


Insere valores em um índice específico

  • « Ds\Deque::get
  • Ds\Deque::isEmpty »
  • PHP Manual
  • Ds\Deque
  • Insere valores em um índice específico

Ds\Deque::insert

(PECL ds >= 1.0.0)

Ds\Deque::insert — Insere valores em um índice específico

Descrição

public Ds\Deque::insert(int $index, mixed ...$values): void

Insere valores no deque em um índice específico.

Parâmetros

index

O índice no qual inserir. 0 <= index <= count

Nota:

Você pode inserir no índice igual ao número de valores.

values

O valor ou valores a serem inseridos.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Ds\Deque::insert() exemplo

<?php
$deque = new \Ds\Deque();

$deque->insert(0, "e"); // [e]
$deque->insert(1, "f"); // [e, f]
$deque->insert(2, "g"); // [e, f, g]
$deque->insert(0, "a", "b"); // [a, b, e, f, g]
$deque->insert(2, ...["c", "d"]); // [a, b, c, d, e, f, g]

var_dump($deque);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Deque)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Retorna se o deque está vazio

  • « Ds\Deque::insert
  • Ds\Deque::join »
  • PHP Manual
  • Ds\Deque
  • Retorna se o deque está vazio

Ds\Deque::isEmpty

(PECL ds >= 1.0.0)

Ds\Deque::isEmpty — Retorna se o deque está vazio

Descrição

public Ds\Deque::isEmpty(): bool

Retorna se o deque está vazio.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o deque estiver vazio, false caso contrário.

Exemplos

Exemplo #1 Ds\Deque::isEmpty() exemplo

<?php
$a = new \Ds\Deque([1, 2, 3]);
$b = new \Ds\Deque();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Une todos os valores como uma string

  • « Ds\Deque::isEmpty
  • Ds\Deque::jsonSerialize »
  • PHP Manual
  • Ds\Deque
  • Une todos os valores como uma string

Ds\Deque::join

(PECL ds >= 1.0.0)

Ds\Deque::join — Une todos os valores como uma string

Descrição

public Ds\Deque::join(string $glue = ?): string

Une todos os valores como uma string, usando um separador opcional entre cada valor.

Parâmetros

glue

Uma string opcional para separar cada valor.

Valor Retornado

Todos os valores do deque unidos como uma string.

Exemplos

Exemplo #1 Exemplo de Ds\Deque::join() usando uma string separadora

<?php
$deque = new \Ds\Deque(["a", "b", "c", 1, 2, 3]);

var_dump($deque->join("|"));
?>

O exemplo acima produzirá algo semelhante a:

string(11) "a|b|c|1|2|3"

Exemplo #2 Exemplo de Ds\Deque::join() sem uma string separadora

<?php
$deque = new \Ds\Deque(["a", "b", "c", 1, 2, 3]);

var_dump($deque->join());
?>

O exemplo acima produzirá algo semelhante a:

string(11) "abc123"


Retorna uma representação que pode ser convertida para JSON

  • « Ds\Deque::join
  • Ds\Deque::last »
  • PHP Manual
  • Ds\Deque
  • Retorna uma representação que pode ser convertida para JSON

Ds\Deque::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Deque::jsonSerialize — Retorna uma representação que pode ser convertida para JSON

Descrição

Veja JsonSerializable::jsonSerialize()

Nota:

Normalmente, não deve ser necessário chamar este método diretamente.


Retorna o último valor

  • « Ds\Deque::jsonSerialize
  • Ds\Deque::map »
  • PHP Manual
  • Ds\Deque
  • Retorna o último valor

Ds\Deque::last

(PECL ds >= 1.0.0)

Ds\Deque::last — Retorna o último valor

Descrição

public Ds\Deque::last(): mixed

Retorna o último valor na deque.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O último valor na deque.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Ds\Deque::last() exemplo

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->last());
?>

O exemplo acima produzirá algo semelhante a:

int(3)


Retorna o resultado de aplicar uma função de retorno de chamada a cada valor

  • « Ds\Deque::last
  • Ds\Deque::merge »
  • PHP Manual
  • Ds\Deque
  • Retorna o resultado de aplicar uma função de retorno de chamada a cada valor

Ds\Deque::map

(PECL ds >= 1.0.0)

Ds\Deque::map — Retorna o resultado de aplicar uma função de retorno de chamada a cada valor

Descrição

public Ds\Deque::map(callable $callback): Ds\Deque

Retorna o resultado de aplicar uma função de retorno de chamada callback a cada valor na deque.

Parâmetros

callback

callback(mixed $value): mixed

Um callable para aplicar a cada valor na deque.

O callable deve retornar o que será o novo valor na nova deque.

Valor Retornado

O resultado de aplicar uma callback a cada valor na deque.

Nota:

Os valores da instância atual não serão afetados.

Exemplos

Exemplo #1 Ds\Deque::map() exemplo

<?php
$deque = new \Ds\Deque([1, 2, 3]);

print_r($deque->map(function($value) { return $value * 2; }));
print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Retorna o resultado de adicionar todos os valores dados à deque

  • « Ds\Deque::map
  • Ds\Deque::pop »
  • PHP Manual
  • Ds\Deque
  • Retorna o resultado de adicionar todos os valores dados à deque

Ds\Deque::merge

(PECL ds >= 1.0.0)

Ds\Deque::merge — Retorna o resultado de adicionar todos os valores dados à deque

Descrição

public Ds\Deque::merge(mixed $values): Ds\Deque

Retorna o resultado de adicionar todos os valores dados à deque.

Parâmetros

values

Um objeto traversable ou um array.

Valor Retornado

O resultado de adicionar todos os valores dados à deque, efetivamente o mesmo que adicionar os valores a uma cópia e então retornar essa cópia.

Nota:

A instância atual não será afetada.

Exemplos

Exemplo #1 Ds\Deque::merge() exemplo

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->merge([4, 5, 6]));
var_dump($deque);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Deque)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Deque)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Remove e retorna o último valor

  • « Ds\Deque::merge
  • Ds\Deque::push »
  • PHP Manual
  • Ds\Deque
  • Remove e retorna o último valor

Ds\Deque::pop

(PECL ds >= 1.0.0)

Ds\Deque::pop — Remove e retorna o último valor

Descrição

public Ds\Deque::pop(): mixed

Remove e retorna o último valor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O último valor removido.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Ds\Deque::pop() exemplo

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->pop());
var_dump($deque->pop());
var_dump($deque->pop());
?>

O exemplo acima produzirá algo semelhante a:

int(3)
int(2)
int(1)


Adiciona valores ao final do deque

  • « Ds\Deque::pop
  • Ds\Deque::reduce »
  • PHP Manual
  • Ds\Deque
  • Adiciona valores ao final do deque

Ds\Deque::push

(PECL ds >= 1.0.0)

Ds\Deque::push — Adiciona valores ao final do deque

Descrição

public Ds\Deque::push(mixed ...$values): void

Adiciona valores ao final do deque.

Parâmetros

values

Os valores a serem adicionados.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Deque::push() exemplo

<?php
$deque = new \Ds\Deque();

$deque->push("a");
$deque->push("b");
$deque->push("c", "d");
$deque->push(...["e", "f"]);

print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Reduz o deque a um único valor usando uma função de retorno de chamada

  • « Ds\Deque::push
  • Ds\Deque::remove »
  • PHP Manual
  • Ds\Deque
  • Reduz o deque a um único valor usando uma função de retorno de chamada

Ds\Deque::reduce

(PECL ds >= 1.0.0)

Ds\Deque::reduce — Reduz o deque a um único valor usando uma função de retorno de chamada

Descrição

public Ds\Deque::reduce(callable $callback, mixed $initial = ?): mixed

Reduz o deque a um único valor usando uma função de retorno de chamada.

Parâmetros

callback
callback(mixed $carry, mixed $value): mixed
carry

O valor de retorno da chamada de retorno anterior ou initial se for a primeira iteração.

value

O valor da iteração atual.

initial

O valor inicial do valor de retorno. Pode ser null.

Valor Retornado

O valor de retorno da chamada de retorno final.

Exemplos

Exemplo #1 Exemplo de Ds\Deque::reduce() com valor inicial

<?php
$deque = new \Ds\Deque([1, 2, 3]);

$callback = function($carry, $value) {
return $carry * $value;
};

var_dump($deque->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 = 5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

O exemplo acima produzirá algo semelhante a:

int(30)

Exemplo #2 Exemplo de Ds\Deque::reduce() sem um valor inicial

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->reduce(function($carry, $value) {
return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 = 6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

O exemplo acima produzirá algo semelhante a:

int(21)


Remove e retorna um valor pelo índice

  • « Ds\Deque::reduce
  • Ds\Deque::reverse »
  • PHP Manual
  • Ds\Deque
  • Remove e retorna um valor pelo índice

Ds\Deque::remove

(PECL ds >= 1.0.0)

Ds\Deque::remove — Remove e retorna um valor pelo índice

Descrição

public Ds\Deque::remove(int $index): mixed

Remove e retorna um valor pelo índice.

Parâmetros

index

O índice do valor a ser removido.

Valor Retornado

O valor que foi removido.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Ds\Deque::remove() exemplo

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->remove(1));
var_dump($deque->remove(0));
var_dump($deque->remove(0));
?>

O exemplo acima produzirá algo semelhante a:

string(1) "b"
string(1) "a"
string(1) "c"


Inverte a deque no local

  • « Ds\Deque::remove
  • Ds\Deque::reversed »
  • PHP Manual
  • Ds\Deque
  • Inverte a deque no local

Ds\Deque::reverse

(PECL ds >= 1.0.0)

Ds\Deque::reverse — Inverte a deque no local

Descrição

public Ds\Deque::reverse(): void

Inverte a deque no local.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Deque::reverse() exemplo

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);
$deque->reverse();

print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => c
    [1] => b
    [2] => a
)


Retorna uma cópia invertida

  • « Ds\Deque::reverse
  • Ds\Deque::rotate »
  • PHP Manual
  • Ds\Deque
  • Retorna uma cópia invertida

Ds\Deque::reversed

(PECL ds >= 1.0.0)

Ds\Deque::reversed — Retorna uma cópia invertida

Descrição

public Ds\Deque::reversed(): Ds\Deque

Retorna uma cópia invertida da deque.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma cópia invertida da deque.

Nota:

A instância atual não é afetada.

Exemplos

Exemplo #1 Ds\Deque::reversed() exemplo

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

print_r($deque->reversed());
print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Deque Object
(
    [0] => a
    [1] => b
    [2] => c
)


Rotaciona a deque por um número dado de rotações

  • « Ds\Deque::reversed
  • Ds\Deque::set »
  • PHP Manual
  • Ds\Deque
  • Rotaciona a deque por um número dado de rotações

Ds\Deque::rotate

(PECL ds >= 1.0.0)

Ds\Deque::rotate — Rotaciona a deque por um número dado de rotações

Descrição

public Ds\Deque::rotate(int $rotations): void

Rotaciona a deque por um número dado de rotações, o que é equivalente a chamar sucessivamente $deque->push($deque->shift()) se o número de rotações for positivo, ou $deque->unshift($deque->pop()) se for negativo.

Parâmetros

rotations

O número de vezes que a deque deve ser rotacionada.

Valor Retornado

Nenhum valor é retornado.. A deque da instância atual será rotacionada.

Exemplos

Exemplo #1 Ds\Deque::rotate() exemplo

<?php
$deque = new \Ds\Deque(["a", "b", "c", "d"]);

$deque->rotate(1); // "a" é deslocado e, em seguida, adicionado.
print_r($deque);

$deque->rotate(2); // "b" e "c" são ambos deslocados e, em seguida, adicionados.
print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Deque Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Atualiza um valor em um índice específico

  • « Ds\Deque::rotate
  • Ds\Deque::shift »
  • PHP Manual
  • Ds\Deque
  • Atualiza um valor em um índice específico

Ds\Deque::set

(PECL ds >= 1.0.0)

Ds\Deque::set — Atualiza um valor em um índice específico

Descrição

public Ds\Deque::set(int $index, mixed $value): void

Atualiza um valor em um índice específico.

Parâmetros

index

O índice do valor a ser atualizado.

value

O novo valor.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Ds\Deque::set() exemplo

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

$deque->set(1, "_");
print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)

Exemplo #2 Exemplo de Ds\Deque::set() usando a sintaxe de array

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

$deque[1] = "_";
print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)


Remove e retorna o primeiro valor

  • « Ds\Deque::set
  • Ds\Deque::slice »
  • PHP Manual
  • Ds\Deque
  • Remove e retorna o primeiro valor

Ds\Deque::shift

(PECL ds >= 1.0.0)

Ds\Deque::shift — Remove e retorna o primeiro valor

Descrição

public Ds\Deque::shift(): mixed

Remove e retorna o primeiro valor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O primeiro valor, que foi removido.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Ds\Deque::shift() exemplo

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->shift());
var_dump($deque->shift());
var_dump($deque->shift());
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"


Retorna uma sub-deque de um determinado intervalo

  • « Ds\Deque::shift
  • Ds\Deque::sort »
  • PHP Manual
  • Ds\Deque
  • Retorna uma sub-deque de um determinado intervalo

Ds\Deque::slice

(PECL ds >= 1.0.0)

Ds\Deque::slice — Retorna uma sub-deque de um determinado intervalo

Descrição

public Ds\Deque::slice(int $index, int $length = ?): Ds\Deque

Cria uma sub-deque de um determinado intervalo.

Parâmetros

index

O índice no qual a sub-deque começa.

Se positivo, a deque começará nesse índice na deque. Se negativo, a deque começará nessa distância do final.

length

Se um comprimento for fornecido e for positivo, a deque resultante terá até esse número de valores nela. Se o comprimento resultar em um estouro, apenas valores até o final da deque serão incluídos. Se um comprimento for fornecido e for negativo, a deque parará naquele número de valores do final. Se um comprimento não for fornecido, a deque resultante conterá todos os valores entre o índice e o final da deque.

Valor Retornado

Uma sub-deque do intervalo fornecido.

Exemplos

Exemplo #1 Ds\Deque::slice() exemplo

<?php
$deque = new \Ds\Deque(["a", "b", "c", "d", "e"]);

// Cortar a partir do índice 2
print_r($deque->slice(2));

// Cortar a partir do índice 1, por um comprimento de 3
print_r($deque->slice(1, 3));

// Cortar a partir do índice 1
print_r($deque->slice(1));

// Cortar a partir do índice 2 do final
print_r($deque->slice(-2));

// Cortar do índice 1 até 1 do final
print_r($deque->slice(1, -1));
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Deque Object
(
    [0] => d
    [1] => e
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
)


Ordena a deque no local

  • « Ds\Deque::slice
  • Ds\Deque::sorted »
  • PHP Manual
  • Ds\Deque
  • Ordena a deque no local

Ds\Deque::sort

(PECL ds >= 1.0.0)

Ds\Deque::sort — Ordena a deque no local

Descrição

public Ds\Deque::sort(callable $comparator = ?): void

Ordena a deque no local, usando uma função de comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Deque::sort() exemplo

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);
$deque->sort();

print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemplo #2 Ds\Deque::sort() exemplo usando um comparador

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

$deque->sort(function($a, $b) {
return $b <=> $a;
});

print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Retorna uma cópia ordenada

  • « Ds\Deque::sort
  • Ds\Deque::sum »
  • PHP Manual
  • Ds\Deque
  • Retorna uma cópia ordenada

Ds\Deque::sorted

(PECL ds >= 1.0.0)

Ds\Deque::sorted — Retorna uma cópia ordenada

Descrição

public Ds\Deque::sorted(callable $comparator = ?): Ds\Deque

Retorna uma cópia ordenada, usando uma função de comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Retorna uma cópia ordenada da deque.

Exemplos

Exemplo #1 Ds\Deque::sorted() exemplo

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

print_r($deque->sorted());
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemplo #2 Ds\Deque::sorted() exemplo usando um comparador

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

$sorted = $deque->sorted(function($a, $b) {
return $b <=> $a;
});

print_r($sorted);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Retorna a soma de todos os valores na deque

  • « Ds\Deque::sorted
  • Ds\Deque::toArray »
  • PHP Manual
  • Ds\Deque
  • Retorna a soma de todos os valores na deque

Ds\Deque::sum

(PECL ds >= 1.0.0)

Ds\Deque::sum — Retorna a soma de todos os valores na deque

Descrição

public Ds\Deque::sum(): int|float

Retorna a soma de todos os valores na deque.

Nota:

Arrays e objetos são considerados iguais a zero ao calcular a soma.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A soma de todos os valores na deque, seja como um float ou int, dependendo dos valores na deque.

Exemplos

Exemplo #1 Ds\Deque::sum() exemplo inteiro

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->sum());
?>

O exemplo acima produzirá algo semelhante a:

int(6)

Exemplo #2 Ds\Deque::sum() exemplo float

<?php
$deque = new \Ds\Deque([1, 2.5, 3]);
var_dump($deque->sum());
?>

O exemplo acima produzirá algo semelhante a:

float(6.5)


Converte a deque para um array.

  • « Ds\Deque::sum
  • Ds\Deque::unshift »
  • PHP Manual
  • Ds\Deque
  • Converte a deque para um array.

Ds\Deque::toArray

(PECL ds >= 1.0.0)

Ds\Deque::toArray — Converte a deque para um array.

Descrição

public Ds\Deque::toArray(): array

Converte a deque para um array.

Nota:

A conversão para um array ainda não é suportada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo todos os valores na mesma ordem que a deque.

Exemplos

Exemplo #1 Ds\Deque::toArray() exemplo

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->toArray());
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Adiciona valores no início da deque

  • « Ds\Deque::toArray
  • Ds\Map »
  • PHP Manual
  • Ds\Deque
  • Adiciona valores no início da deque

Ds\Deque::unshift

(PECL ds >= 1.0.0)

Ds\Deque::unshift — Adiciona valores no início da deque

Descrição

public Ds\Deque::unshift(mixed $values = ?): void

Adiciona valores no início da deque, movendo todos os valores atuais para a frente para dar espaço aos novos valores.

Parâmetros

values

Os valores a serem adicionados no início da deque.

Nota:

Múltiplos valores serão adicionados na mesma ordem em que são passados.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Deque::unshift() exemplo

<?php
$deque = new \Ds\Deque([1, 2, 3]);

$deque->unshift("a");
$deque->unshift("b", "c");

print_r($deque);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


A classe Map

(PECL ds >= 1.0.0)

Introdução

Um Map é uma coleção sequencial de pares chave-valor, quase idêntica a um array usada em um contexto semelhante. As chaves podem ser de qualquer tipo, mas devem ser únicas. Os valores são substituídos se adicionados ao mapa usando a mesma chave.

Pontos Fortes

  • Chaves e valores podem ser de qualquer tipo, incluindo objetos.
  • Suporta a sintaxe de array (colchetes).
  • A ordem de inserção é preservada.
  • O desempenho e a eficiência de memória são muito semelhantes a um array.
  • Libera automaticamente a memória alocada quando seu tamanho diminui o suficiente.

Pontos Fracos

  • Não pode ser convertido para um array quando objetos são usados como chaves.

Resumo da classe

class Ds\Map implements Ds\Collection, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 16;
/* Métodos */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public copy(): Ds\Map
public diff(Ds\Map $map): Ds\Map
public filter(callable $callback = ?): Ds\Map
public first(): Ds\Pair
public get(mixed $key, mixed $default = ?): mixed
public hasKey(mixed $key): bool
public hasValue(mixed $value): bool
public intersect(Ds\Map $map): Ds\Map
public isEmpty(): bool
public keys(): Ds\Set
public ksort(callable $comparator = ?): void
public ksorted(callable $comparator = ?): Ds\Map
public last(): Ds\Pair
public map(callable $callback): Ds\Map
public merge(mixed $values): Ds\Map
public pairs(): Ds\Sequence
public put(mixed $key, mixed $value): void
public putAll(mixed $pairs): void
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(mixed $key, mixed $default = ?): mixed
public reverse(): void
public reversed(): Ds\Map
public skip(int $position): Ds\Pair
public slice(int $index, int $length = ?): Ds\Map
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Map
public sum(): int|float
public toArray(): array
public union(Ds\Map $map): Ds\Map
public values(): Ds\Sequence
public xor(Ds\Map $map): Ds\Map
}

Constantes pré-definidas

Ds\Map::MIN_CAPACITY

Registro de Alterações

Versão | Descrição
PECL ds 1.3.0 | A classe agora implementa ArrayAccess.

Índice

  • Ds\Map::allocate — Aloca memória suficiente para uma capacidade requerida
  • Ds\Map::apply — Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor
  • Ds\Map::capacity — Retorna a capacidade atual
  • Ds\Map::clear — Remove todos os valores
  • Ds\Map::__construct — Cria uma nova instância
  • Ds\Map::copy — Retorna uma cópia rasa do mapa
  • Ds\Map::count — Retorna o número de valores no mapa
  • Ds\Map::diff — Cria um novo mapa usando chaves que não estão em outro mapa
  • Ds\Map::filter — Cria um novo mapa usando um callable para determinar quais pares incluir
  • Ds\Map::first — Retorna o primeiro par no mapa
  • Ds\Map::get — Retorna o valor para uma chave dada
  • Ds\Map::hasKey — Determina se o mapa contém uma chave dada
  • Ds\Map::hasValue — Determina se o mapa contém um valor dado
  • Ds\Map::intersect — Cria um novo mapa intersectando chaves com outro mapa
  • Ds\Map::isEmpty — Retorna se o mapa está vazio
  • Ds\Map::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
  • Ds\Map::keys — Retorna um conjunto das chaves do mapa
  • Ds\Map::ksort — Ordena o mapa no local pelo chave
  • Ds\Map::ksorted — Retorna uma cópia ordenada por chave
  • Ds\Map::last — Retorna o último par do mapa
  • Ds\Map::map — Retorna o resultado da aplicação de um callback a cada valor
  • Ds\Map::merge — Retorna o resultado da adição de todas as associações fornecidas
  • Ds\Map::pairs — Retorna uma sequência contendo todos os pares do mapa
  • Ds\Map::put — Associa uma chave a um valor
  • Ds\Map::putAll — Associa todos os pares chave-valor de um objeto traversable ou array
  • Ds\Map::reduce — Reduz o mapa a um único valor usando uma função callback
  • Ds\Map::remove — Remove e retorna um valor pela chave
  • Ds\Map::reverse — Inverte o mapa no local
  • Ds\Map::reversed — Retorna uma cópia invertida
  • Ds\Map::skip — Retorna o par em uma posição específica
  • Ds\Map::slice — Retorna um subconjunto do mapa definido por um índice inicial e comprimento
  • Ds\Map::sort — Ordena o mapa no local pelo valor
  • Ds\Map::sorted — Retorna uma cópia, ordenada por valor
  • Ds\Map::sum — Retorna a soma de todos os valores no mapa
  • Ds\Map::toArray — Converte o mapa em um array
  • Ds\Map::union — Cria um novo mapa usando valores da instância atual e de outro mapa
  • Ds\Map::values — Retorna uma sequência dos valores do mapa
  • Ds\Map::xor — Cria um novo mapa usando chaves apenas do mapa atual ou de outro mapa, mas não de ambos


Aloca memória suficiente para uma capacidade requerida

  • « Ds\Map
  • Ds\Map::apply »
  • PHP Manual
  • Ds\Map
  • Aloca memória suficiente para uma capacidade requerida

Ds\Map::allocate

(PECL ds >= 1.0.0)

Ds\Map::allocate — Aloca memória suficiente para uma capacidade requerida

Descrição

public Ds\Map::allocate(int $capacity): void

Aloca memória suficiente para uma capacidade requerida.

Parâmetros

capacity

O número de valores para os quais a capacidade deve ser alocada.

Nota:

A capacidade permanecerá a mesma se este valor for menor ou igual à capacidade atual.

Nota:

A capacidade será sempre arredondada para cima até a potência de 2 mais próxima.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Map::allocate() exemplo

<?php
$map = new \Ds\Map();
var_dump($map->capacity());

$map->allocate(100);
var_dump($map->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(16)
int(128)


Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor

  • « Ds\Map::allocate
  • Ds\Map::capacity »
  • PHP Manual
  • Ds\Map
  • Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor

Ds\Map::apply

(PECL ds >= 1.0.0)

Ds\Map::apply — Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor

Descrição

public Ds\Map::apply(callable $callback): void

Atualiza todos os valores aplicando uma função de retorno de chamada callback a cada valor no mapa.

Parâmetros

callback

callback(mixed $key, mixed $value): mixed

Um callable para aplicar a cada valor no mapa.

A função de retorno de chamada deve retornar pelo que o valor deve ser substituído.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Map::apply() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$map->apply(function($key, $value) { return $value * 2; });

print_r($map);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 4
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 6
        )

)


Retorna a capacidade atual

  • « Ds\Map::apply
  • Ds\Map::clear »
  • PHP Manual
  • Ds\Map
  • Retorna a capacidade atual

Ds\Map::capacity

(PECL ds >= 1.0.0)

Ds\Map::capacity — Retorna a capacidade atual

Descrição

public Ds\Map::capacity(): int

Retorna a capacidade atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A capacidade atual.

Exemplos

Exemplo #1 Ds\Map::capacity() exemplo

<?php
$map = new \Ds\Map();
var_dump($map->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(16)


Remove todos os valores

  • « Ds\Map::capacity
  • Ds\Map::__construct »
  • PHP Manual
  • Ds\Map
  • Remove todos os valores

Ds\Map::clear

(PECL ds >= 1.0.0)

Ds\Map::clear — Remove todos os valores

Descrição

public Ds\Map::clear(): void

Remove todos os valores do mapa.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Map::clear() exemplo

<?php
$map = new \Ds\Map([
"a" => 1,
"b" => 2,
"c" => 3,
]);
print_r($map);

$map->clear();
print_r($map);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)
Ds\Map Object
(
)


Cria uma nova instância

  • « Ds\Map::clear
  • Ds\Map::copy »
  • PHP Manual
  • Ds\Map
  • Cria uma nova instância

Ds\Map::__construct

(PECL ds >= 1.0.0)

Ds\Map::__construct — Cria uma nova instância

Descrição

public Ds\Map::__construct(mixed ...$values)

Cria uma nova instância, utilizando um objeto traversable ou um array para os valores iniciais em values.

Parâmetros

values

Um objeto traversable ou um array para usar como valores iniciais.

Exemplos

Exemplo #1 Ds\Map::__construct() exemplo

<?php
$map = new \Ds\Map();
var_dump($map);

$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Map)#1 (0) {
}
object(Ds\Map)#2 (3) {
  [0]=>
  object(Ds\Pair)#1 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
  [1]=>
  object(Ds\Pair)#3 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [2]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}


Retorna uma cópia rasa do mapa

  • « Ds\Map::__construct
  • Ds\Map::count »
  • PHP Manual
  • Ds\Map
  • Retorna uma cópia rasa do mapa

Ds\Map::copy

(PECL ds >= 1.0.0)

Ds\Map::copy — Retorna uma cópia rasa do mapa

Descrição

public Ds\Map::copy(): Ds\Map

Retorna uma cópia rasa do mapa.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma cópia rasa do mapa.

Exemplos

Exemplo #1 Ds\Map::copy() exemplo

<?php
$map = new \Ds\Map([
"a" => 1,
"b" => 2,
"c" => 3,
]);

print_r($map->copy());
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Retorna o número de valores no mapa

  • « Ds\Map::copy
  • Ds\Map::diff »
  • PHP Manual
  • Ds\Map
  • Retorna o número de valores no mapa

Ds\Map::count

(PECL ds >= 1.0.0)

Ds\Map::count — Retorna o número de valores no mapa

Descrição

Veja Countable::count()


Cria um novo mapa usando chaves que não estão em outro mapa

  • « Ds\Map::count
  • Ds\Map::filter »
  • PHP Manual
  • Ds\Map
  • Cria um novo mapa usando chaves que não estão em outro mapa

Ds\Map::diff

(PECL ds >= 1.0.0)

Ds\Map::diff — Cria um novo mapa usando chaves que não estão em outro mapa

Descrição

public Ds\Map::diff(Ds\Map $map): Ds\Map

Retorna o resultado da remoção de todas as chaves da instância atual que estão presentes em um map dado.

A \ B = {x ? A | x ? B}

Parâmetros

map

O mapa contendo as chaves a serem excluídas no mapa resultante.

Valor Retornado

O resultado da remoção de todas as chaves da instância atual que estão presentes em um map dado.

Veja Também

  • » Complemento na Wikipedia

Exemplos

Exemplo #1 Ds\Map::diff() exemplo

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

var_dump($a->diff($b));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Map)#3 (1) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
}


Cria um novo mapa usando um callable para determinar quais pares incluir

  • « Ds\Map::diff
  • Ds\Map::first »
  • PHP Manual
  • Ds\Map
  • Cria um novo mapa usando um callable para determinar quais pares incluir

Ds\Map::filter

(PECL ds >= 1.0.0)

Ds\Map::filter — Cria um novo mapa usando um callable para determinar quais pares incluir

Descrição

public Ds\Map::filter(callable $callback = ?): Ds\Map

Cria um novo mapa usando um callable para determinar quais pares incluir.

Parâmetros

callback

callback(mixed $key, mixed $value): bool

callable opcional que retorna true se o par deve ser incluído, false caso contrário.

Se um callback não for fornecido, apenas os valores que são true (veja conversão para booleano) serão incluídos.

Valor Retornado

Um novo mapa contendo todos os pares para os quais o callback retornou true, ou todos os valores que se convertem para true se um callback não foi fornecido.

Exemplos

Exemplo #1 Exemplo de Ds\Map::filter() usando uma função callback

<?php
$map = new \Ds\Map(["a", "b", "c", "d", "e"]);

var_dump($map->filter(function($key, $value) {
return $key % 2 == 0;
}));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Map)#3 (3) {
  [0]=>
  object(Ds\Pair)#2 (2) {
    ["key"]=>
    int(0)
    ["value"]=>
    string(1) "a"
  }
  [1]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    int(2)
    ["value"]=>
    string(1) "c"
  }
  [2]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    int(4)
    ["value"]=>
    string(1) "e"
  }
}

Exemplo #2 Exemplo de Ds\Map::filter() sem uma função callback

<?php
$map = new \Ds\Map(["a" => 0, "b" => 1, "c" => true, "d" => false]);

var_dump($map->filter());
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Map)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Retorna o primeiro par no mapa

  • « Ds\Map::filter
  • Ds\Map::get »
  • PHP Manual
  • Ds\Map
  • Retorna o primeiro par no mapa

Ds\Map::first

(PECL ds >= 1.0.0)

Ds\Map::first — Retorna o primeiro par no mapa

Descrição

public Ds\Map::first(): Ds\Pair

Retorna o primeiro par no mapa.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O primeiro par no mapa.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Ds\Map::first() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->first());
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "a"
  ["value"]=>
  int(1)
}


Retorna o valor para uma chave dada

  • « Ds\Map::first
  • Ds\Map::hasKey »
  • PHP Manual
  • Ds\Map
  • Retorna o valor para uma chave dada

Ds\Map::get

(PECL ds >= 1.0.0)

Ds\Map::get — Retorna o valor para uma chave dada

Descrição

public Ds\Map::get(mixed $key, mixed $default = ?): mixed

Retorna o valor para uma chave dada, ou um valor padrão opcional se a chave não puder ser encontrada.

Nota:

Chaves do tipo object são suportadas. Se um objeto implementa Ds\Hashable, a igualdade será determinada pela função equals do objeto. Se um objeto não implementa Ds\Hashable, os objetos devem ser referências à mesma instância para serem considerados iguais.

Nota:

Você também pode usar a sintaxe de array para acessar valores por chave, por exemplo, $map["key"].

Cuidado

Tenha cuidado ao usar a sintaxe de array. Chaves escalares serão convertidas para inteiros pelo interpretador. Por exemplo, $map["1"] tentará acessar int(1), enquanto $map->get("1") procurará corretamente a chave de string.

Veja Arrays.

Parâmetros

key

A chave para procurar.

default

O valor padrão opcional, retornado se a chave não puder ser encontrada.

Valor Retornado

O valor associado à key dada, ou o valor default se fornecido e a chave não puder ser encontrada no mapa.

Erros/Exceções

OutOfBoundsException se a chave não puder ser encontrada e um valor padrão não foi fornecido.

Exemplos

Exemplo #1 Ds\Map::get() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->get("a")); // 1
var_dump($map->get("d", 10)); // 10 (default used)
?>

O exemplo acima produzirá algo semelhante a:

int(1)
int(10)

Exemplo #2 Exemplo de Ds\Map::get() usando a sintaxe de array

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map["a"]); // 1
?>

O exemplo acima produzirá algo semelhante a:

int(1)


Determina se o mapa contém uma chave dada

  • « Ds\Map::get
  • Ds\Map::hasValue »
  • PHP Manual
  • Ds\Map
  • Determina se o mapa contém uma chave dada

Ds\Map::hasKey

(PECL ds >= 1.0.0)

Ds\Map::hasKey — Determina se o mapa contém uma chave dada

Descrição

public Ds\Map::hasKey(mixed $key): bool

Determina se o mapa contém uma chave dada.

Parâmetros

key

A chave a ser procurada.

Valor Retornado

Retorna true se a chave for encontrada, false caso contrário.

Exemplos

Exemplo #1 Ds\Map::hasKey() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->hasKey("a")); // true
var_dump($map->hasKey("e")); // false
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)


Determina se o mapa contém um valor dado

  • « Ds\Map::hasKey
  • Ds\Map::intersect »
  • PHP Manual
  • Ds\Map
  • Determina se o mapa contém um valor dado

Ds\Map::hasValue

(PECL ds >= 1.0.0)

Ds\Map::hasValue — Determina se o mapa contém um valor dado

Descrição

public Ds\Map::hasValue(mixed $value): bool

Determina se o mapa contém um valor dado.

Parâmetros

value

O valor a ser procurado.

Valor Retornado

Retorna true se o valor for encontrado, false caso contrário.

Exemplos

Exemplo #1 Ds\Map::hasValue() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->hasValue(1)); // true
var_dump($map->hasValue(4)); // false
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)


Cria um novo mapa intersectando chaves com outro mapa

  • « Ds\Map::hasValue
  • Ds\Map::isEmpty »
  • PHP Manual
  • Ds\Map
  • Cria um novo mapa intersectando chaves com outro mapa

Ds\Map::intersect

(PECL ds >= 1.0.0)

Ds\Map::intersect — Cria um novo mapa intersectando chaves com outro mapa

Descrição

public Ds\Map::intersect(Ds\Map $map): Ds\Map

Cria um novo mapa contendo os pares da instância atual cujas chaves também estão presentes no map fornecido. Em outras palavras, retorna uma cópia da instância atual com todas as chaves removidas que não estão no outro map.

A n B = {x : x ? A ? x ? B}

Nota:

Os valores da instância atual serão mantidos.

Parâmetros

map

O outro mapa, contendo as chaves para intersectar.

Valor Retornado

A interseção de chaves da instância atual e outro map.

Veja Também

  • » Intersection na Wikipedia

Exemplos

Exemplo #1 Ds\Map::intersect() exemplo

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

var_dump($a->intersect($b));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Map)#3 (2) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}


Retorna se o mapa está vazio

  • « Ds\Map::intersect
  • Ds\Map::jsonSerialize »
  • PHP Manual
  • Ds\Map
  • Retorna se o mapa está vazio

Ds\Map::isEmpty

(PECL ds >= 1.0.0)

Ds\Map::isEmpty — Retorna se o mapa está vazio

Descrição

public Ds\Map::isEmpty(): bool

Retorna se o mapa está vazio.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o mapa estiver vazio, false caso contrário.

Exemplos

Exemplo #1 Ds\Map::isEmpty() exemplo

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Retorna uma representação que pode ser convertida para JSON

  • « Ds\Map::isEmpty
  • Ds\Map::keys »
  • PHP Manual
  • Ds\Map
  • Retorna uma representação que pode ser convertida para JSON

Ds\Map::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Map::jsonSerialize — Retorna uma representação que pode ser convertida para JSON

Descrição

Veja JsonSerializable::jsonSerialize()

Nota:

Normalmente, não deve ser necessário chamar este método diretamente.


Retorna um conjunto das chaves do mapa

  • « Ds\Map::jsonSerialize
  • Ds\Map::ksort »
  • PHP Manual
  • Ds\Map
  • Retorna um conjunto das chaves do mapa

Ds\Map::keys

(PECL ds >= 1.0.0)

Ds\Map::keys — Retorna um conjunto das chaves do mapa

Descrição

public Ds\Map::keys(): Ds\Set

Retorna um conjunto contendo todas as chaves do mapa, na mesma ordem.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um Ds\Set contendo todas as chaves do mapa.

Exemplos

Exemplo #1 Ds\Map::keys() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->keys());
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#2 (3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
}


Ordena o mapa no local pelo chave

  • « Ds\Map::keys
  • Ds\Map::ksorted »
  • PHP Manual
  • Ds\Map
  • Ordena o mapa no local pelo chave

Ds\Map::ksort

(PECL ds >= 1.0.0)

Ds\Map::ksort — Ordena o mapa no local pelo chave

Descrição

public Ds\Map::ksort(callable $comparator = ?): void

Ordena o mapa no local pela chave, usando uma função de comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Map::ksort() exemplo

<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);
$map->ksort();

print_r($map);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Exemplo #2 Exemplo de Ds\Map::ksort() usando um comparador

<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);

// Reverse
$map->ksort(function($a, $b) {
return $b <=> $a;
});

print_r($map);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => y
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => x
        )

    [2] => Ds\Pair Object
        (
            [key] => 0
            [value] => z
        )

)


Retorna uma cópia ordenada por chave

  • « Ds\Map::ksort
  • Ds\Map::last »
  • PHP Manual
  • Ds\Map
  • Retorna uma cópia ordenada por chave

Ds\Map::ksorted

(Não há informação de versão disponível, talvez apenas no Git)

Ds\Map::ksorted — Retorna uma cópia ordenada por chave

Descrição

public Ds\Map::ksorted(callable $comparator = ?): Ds\Map

Retorna uma cópia ordenada por chave, usando uma função de comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Retorna uma cópia do mapa, ordenada por chave.

Exemplos

Exemplo #1 Ds\Map::ksorted() exemplo

<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);

print_r($map->ksorted());
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Exemplo #2 Exemplo de Ds\Map::ksorted() usando um comparador

<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);

// Reverse
$sorted = $map->ksorted(function($a, $b) {
return $b <=> $a;
});

print_r($sorted);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => y
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => x
        )

    [2] => Ds\Pair Object
        (
            [key] => 0
            [value] => z
        )

)


Retorna o último par do mapa

  • « Ds\Map::ksorted
  • Ds\Map::map »
  • PHP Manual
  • Ds\Map
  • Retorna o último par do mapa

Ds\Map::last

(PECL ds >= 1.0.0)

Ds\Map::last — Retorna o último par do mapa

Descrição

public Ds\Map::last(): Ds\Pair

Retorna o último par do mapa.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O último par do mapa.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Ds\Map::last() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->last());
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "c"
  ["value"]=>
  int(3)
}


Retorna o resultado da aplicação de um callback a cada valor

  • « Ds\Map::last
  • Ds\Map::merge »
  • PHP Manual
  • Ds\Map
  • Retorna o resultado da aplicação de um callback a cada valor

Ds\Map::map

(PECL ds >= 1.0.0)

Ds\Map::map — Retorna o resultado da aplicação de um callback a cada valor

Descrição

public Ds\Map::map(callable $callback): Ds\Map

Retorna o resultado da aplicação de uma função callback a cada valor do mapa.

Parâmetros

callback

callback(mixed $key, mixed $value): mixed

Um callable para aplicar a cada valor no mapa.

O callable deve retornar o valor para o qual a chave será mapeada no mapa resultante.

Valor Retornado

O resultado da aplicação de um callback a cada valor no mapa.

Nota:

As chaves e valores da instância atual não serão afetados.

Exemplos

Exemplo #1 Ds\Map::map() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->map(function($key, $value) { return $value * 2; }));
print_r($map);
?>

O exemplo acima produzirá algo semelhante a:

(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 4
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 6
        )

)
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Retorna o resultado da adição de todas as associações fornecidas

  • « Ds\Map::map
  • Ds\Map::pairs »
  • PHP Manual
  • Ds\Map
  • Retorna o resultado da adição de todas as associações fornecidas

Ds\Map::merge

(PECL ds >= 1.0.0)

Ds\Map::merge — Retorna o resultado da adição de todas as associações fornecidas

Descrição

public Ds\Map::merge(mixed $values): Ds\Map

Retorna o resultado da associação de todas as chaves de um objeto traversable ou array fornecido com seus valores correspondentes, combinados com a instância atual.

Nota:

Os valores da instância atual serão sobrescritos pelos fornecidos quando as chaves forem iguais.

Parâmetros

values

Um objeto traversable ou um array.

Valor Retornado

O resultado da associação de todas as chaves de um objeto traversable ou array fornecido com seus valores correspondentes, combinados com a instância atual.

Nota:

A instância atual não será afetada.

Exemplos

Exemplo #1 Ds\Map::merge() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->merge(["a" => 10, "e" => 50]));
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 10
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [3] => Ds\Pair Object
        (
            [key] => e
            [value] => 50
        )

)


Retorna uma sequência contendo todos os pares do mapa

  • « Ds\Map::merge
  • Ds\Map::put »
  • PHP Manual
  • Ds\Map
  • Retorna uma sequência contendo todos os pares do mapa

Ds\Map::pairs

(PECL ds >= 1.0.0)

Ds\Map::pairs — Retorna uma sequência contendo todos os pares do mapa

Descrição

public Ds\Map::pairs(): Ds\Sequence

Retorna uma Ds\Sequence contendo todos os pares do mapa.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Ds\Sequence contendo todos os pares do mapa.

Exemplos

Exemplo #1 Ds\Map::pairs() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->pairs());
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Map)#8 (3) {
  [0]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
  [1]=>
  object(Ds\Pair)#6 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [2]=>
  object(Ds\Pair)#7 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}
p


Associa uma chave a um valor

  • « Ds\Map::pairs
  • Ds\Map::putAll »
  • PHP Manual
  • Ds\Map
  • Associa uma chave a um valor

Ds\Map::put

(PECL ds >= 1.0.0)

Ds\Map::put — Associa uma chave a um valor

Descrição

public Ds\Map::put(mixed $key, mixed $value): void

Associa uma key a um value, sobrescrevendo uma associação anterior, caso exista.

Nota:

Chaves do tipo object são suportadas. Se um objeto implementar Ds\Hashable, a igualdade será determinada pela função equals do objeto. Se um objeto não implementar Ds\Hashable, os objetos devem ser referências à mesma instância para serem considerados iguais.

Nota:

Você também pode usar a sintaxe de array para associar valores pela chave, por exemplo, $map["key"] = $value.

Cuidado

Tenha cuidado ao usar a sintaxe de array. Chaves escalares serão convertidas para inteiros pelo interpretador. Por exemplo, $map["1"] tentará acessar int(1), enquanto $map->get("1") procurará corretamente a chave de string.

Veja Arrays.

Parâmetros

key

A chave para associar ao valor.

value

O valor a ser associado à chave.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Map::put() exemplo

<?php
$map = new \Ds\Map();

$map->put("a", 1);
$map->put("b", 2);
$map->put("c", 3);

print_r($map);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Exemplo #2 Exemplo de Ds\Map::put() usando objetos como chave

<?php
class HashableObject implements \Ds\Hashable
{
/**
* Um valor arbitrário a ser usado como valor de hash. Não define igualdade.
*/
private $value;

public function __construct($value)
{
$this->value = $value;
}

public function hash()
{
return $this->value;
}

public function equals($obj): bool
{
return $this->value === $obj->value;
}
}

$map = new \Ds\Map();

$obj = new \ArrayIterator([]);

// Usar a mesma instância várias vezes sobrescreverá o valor anterior.
$map->put($obj, 1);
$map->put($obj, 2);

// Usar várias instâncias do mesmo objeto criará novas associações.
$map->put(new \stdClass(), 3);
$map->put(new \stdClass(), 4);

// Usar várias instâncias de objetos hasháveis iguais sobrescreverá valores anteriores.
$map->put(new \HashableObject(1), 5);
$map->put(new \HashableObject(1), 6);
$map->put(new \HashableObject(2), 7);
$map->put(new \HashableObject(2), 8);

var_dump($map);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Map)#1 (5) {
  [0]=>
  object(Ds\Pair)#7 (2) {
    ["key"]=>
    object(ArrayIterator)#2 (1) {
      ["storage":"ArrayIterator":private]=>
      array(0) {
      }
    }
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#8 (2) {
    ["key"]=>
    object(stdClass)#3 (0) {
    }
    ["value"]=>
    int(3)
  }
  [2]=>
  object(Ds\Pair)#9 (2) {
    ["key"]=>
    object(stdClass)#4 (0) {
    }
    ["value"]=>
    int(4)
  }
  [3]=>
  object(Ds\Pair)#10 (2) {
    ["key"]=>
    object(HashableObject)#5 (1) {
      ["value":"HashableObject":private]=>
      int(1)
    }
    ["value"]=>
    int(6)
  }
  [4]=>
  object(Ds\Pair)#11 (2) {
    ["key"]=>
    object(HashableObject)#6 (1) {
      ["value":"HashableObject":private]=>
      int(2)
    }
    ["value"]=>
    int(8)
  }
}


Associa todos os pares chave-valor de um objeto traversable ou array

  • « Ds\Map::put
  • Ds\Map::reduce »
  • PHP Manual
  • Ds\Map
  • Associa todos os pares chave-valor de um objeto traversable ou array

Ds\Map::putAll

(PECL ds >= 1.0.2)

Ds\Map::putAll — Associa todos os pares chave-valor de um objeto traversable ou array

Descrição

public Ds\Map::putAll(mixed $pairs): void

Associa todos os pairs chave-valor de um objeto traversable ou array.

Nota:

Chaves do tipo object são suportadas. Se um objeto implementar Ds\Hashable, a igualdade será determinada pela função equals do objeto. Se um objeto não implementar Ds\Hashable, os objetos devem ser referências à mesma instância para serem considerados iguais.

Parâmetros

pairs

Objeto traversable ou array.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Map::putAll() exemplo

<?php
$map = new \Ds\Map();

$map->putAll([
"a" => 1,
"b" => 2,
"c" => 3,
]);

print_r($map);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Reduz o mapa a um único valor usando uma função callback

  • « Ds\Map::putAll
  • Ds\Map::remove »
  • PHP Manual
  • Ds\Map
  • Reduz o mapa a um único valor usando uma função callback

Ds\Map::reduce

(PECL ds >= 1.0.0)

Ds\Map::reduce — Reduz o mapa a um único valor usando uma função callback

Descrição

public Ds\Map::reduce(callable $callback, mixed $initial = ?): mixed

Reduz o mapa a um único valor usando uma função callback.

Parâmetros

callback
callback(mixed $carry, mixed $key, mixed $value): mixed
carry

O valor de retorno do callback anterior, ou initial se for a primeira iteração.

key

A chave da iteração atual.

value

O valor da iteração atual.

initial

O valor inicial do valor de transporte. Pode ser null.

Valor Retornado

O valor de retorno do callback final.

Exemplos

Exemplo #1 Exemplo de Ds\Map::reduce() com valor inicial

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

$callback = function($carry, $key, $value) {
return $carry * $value;
};

var_dump($map->reduce($callback, 5));

// Iterações:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 = 5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

O exemplo acima produzirá algo semelhante a:

int(30)

Exemplo #2 Exemplo de Ds\Map::reduce() sem um valor inicial

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->reduce(function($carry, $key, $value) {
return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 = 6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

O exemplo acima produzirá algo semelhante a:

int(21)


Remove e retorna um valor pela chave

  • « Ds\Map::reduce
  • Ds\Map::reverse »
  • PHP Manual
  • Ds\Map
  • Remove e retorna um valor pela chave

Ds\Map::remove

(PECL ds >= 1.0.0)

Ds\Map::remove — Remove e retorna um valor pela chave

Descrição

public Ds\Map::remove(mixed $key, mixed $default = ?): mixed

Remove e retorna um valor pela chave, ou retorna um valor padrão opcional se a chave não puder ser encontrada.

Nota:

Chaves do tipo object são suportadas. Se um objeto implementar Ds\Hashable, a igualdade será determinada pela função equals do objeto. Se um objeto não implementar Ds\Hashable, objetos devem ser referências à mesma instância para serem considerados iguais.

Nota:

Você também pode usar a sintaxe de array para acessar valores pela chave, por exemplo, $map["key"].

Cuidado

Tenha cuidado ao usar a sintaxe de array. Chaves escalares serão convertidas para inteiros pelo motor. Por exemplo, $map["1"] tentará acessar int(1), enquanto $map->get("1") irá corretamente procurar a chave de string.

Veja Arrays.

Parâmetros

key

A chave a ser removida.

default

O valor padrão opcional, retornado se a chave não puder ser encontrada.

Valor Retornado

O valor que foi removido, ou o valor default se fornecido e a key não puder ser encontrada no mapa.

Erros/Exceções

OutOfBoundsException se a chave não puder ser encontrada e um valor padrão não foi fornecido.

Exemplos

Exemplo #1 Ds\Map::remove() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->remove("a")); // 1
var_dump($map->remove("e", 10)); // 10 (default used)
?>

O exemplo acima produzirá algo semelhante a:

int(1)
int(10)


Inverte o mapa no local

  • « Ds\Map::remove
  • Ds\Map::reversed »
  • PHP Manual
  • Ds\Map
  • Inverte o mapa no local

Ds\Map::reverse

(PECL ds >= 1.0.0)

Ds\Map::reverse — Inverte o mapa no local

Descrição

public Ds\Map::reverse(): void

Inverte o mapa no local.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Map::reverse() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$map->reverse();

print_r($map);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

)


Retorna uma cópia invertida

  • « Ds\Map::reverse
  • Ds\Map::skip »
  • PHP Manual
  • Ds\Map
  • Retorna uma cópia invertida

Ds\Map::reversed

(PECL ds >= 1.0.0)

Ds\Map::reversed — Retorna uma cópia invertida

Descrição

public Ds\Map::reversed(): Ds\Map

Retorna uma cópia invertida do mapa.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma cópia invertida do mapa.

Nota:

A instância atual não é afetada.

Exemplos

Exemplo #1 Ds\Map::reversed() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->reversed());
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

)


Retorna o par em uma posição específica

  • « Ds\Map::reversed
  • Ds\Map::slice »
  • PHP Manual
  • Ds\Map
  • Retorna o par em uma posição específica

Ds\Map::skip

(PECL ds >= 1.0.0)

Ds\Map::skip — Retorna o par em uma posição específica

Descrição

public Ds\Map::skip(int $position): Ds\Pair

Retorna o par em uma posição específica baseada em zero, position.

Parâmetros

position

O índice posicional baseado em zero para retornar.

Valor Retornado

Retorna o Ds\Pair na position dada.

Erros/Exceções

OutOfRangeException se a posição não for válida.

Exemplos

Exemplo #1 Ds\Map::skip() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->skip(1));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "b"
  ["value"]=>
  int(2)
}


Retorna um subconjunto do mapa definido por um índice inicial e comprimento

  • « Ds\Map::skip
  • Ds\Map::sort »
  • PHP Manual
  • Ds\Map
  • Retorna um subconjunto do mapa definido por um índice inicial e comprimento

Ds\Map::slice

(PECL ds >= 1.0.0)

Ds\Map::slice — Retorna um subconjunto do mapa definido por um índice inicial e comprimento

Descrição

public Ds\Map::slice(int $index, int $length = ?): Ds\Map

Retorna um subconjunto do mapa definido por um index inicial e length.

Parâmetros

index

O índice no qual o intervalo começa.

Se positivo, o intervalo começará nesse índice no mapa. Se negativo, o intervalo começará nessa distância do final.

length

Se um comprimento for fornecido e for positivo, o mapa resultante terá até esse número de pares nele. Se um comprimento for fornecido e for negativo, o intervalo irá parar esse número de pares a partir do final. Se o comprimento resultar em um overflow, apenas pares até o final do mapa serão incluídos. Se um comprimento não for fornecido, o mapa resultante conterá todos os pares entre o índice e o final do mapa.

Valor Retornado

Um subconjunto do mapa definido por um índice inicial e comprimento.

Exemplos

Exemplo #1 Ds\Map::slice() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5]);

// Cortar a partir de 2
print_r($map->slice(2)->toArray());

// Cortar a partir de 1, por um comprimento de 3
print_r($map->slice(1, 3)->toArray());

// Cortar a partir de 1
print_r($map->slice(1)->toArray());

// Cortar a partir de 2 do final
print_r($map->slice(-2)->toArray());

// Cortar de 1 até 1 do final
print_r($map->slice(1, -1)->toArray());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [c] => 3
    [d] => 4
    [e] => 5
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
)
Array
(
    [d] => 4
    [e] => 5
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
)


Ordena o mapa no local pelo valor

  • « Ds\Map::slice
  • Ds\Map::sorted »
  • PHP Manual
  • Ds\Map
  • Ordena o mapa no local pelo valor

Ds\Map::sort

(PECL ds >= 1.0.0)

Ds\Map::sort — Ordena o mapa no local pelo valor

Descrição

public Ds\Map::sort(callable $comparator = ?): void

Ordena o mapa no local pelo valor, usando uma função de comparação comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Map::sort() exemplo

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);
$map->sort();

print_r($map);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

)

Exemplo #2 Exemplo de Ds\Map::sort() usando um comparador

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

$map->sort(function($a, $b) {
return $b <=> $a;
});

print_r($map);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

)


Retorna uma cópia, ordenada por valor

  • « Ds\Map::sort
  • Ds\Map::sum »
  • PHP Manual
  • Ds\Map
  • Retorna uma cópia, ordenada por valor

Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sorted — Retorna uma cópia, ordenada por valor

Descrição

public Ds\Map::sorted(callable $comparator = ?): Ds\Map

Retorna uma cópia, ordenada por valor, usando uma função de comparação comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Retorna uma cópia do mapa, ordenada por valor.

Exemplos

Exemplo #1 Ds\Map::sort() exemplo

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

print_r($map->sorted());
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

)

Exemplo #2 Ds\Map::sort() example using a comparator

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

// Reverse
$sorted = $map->sorted(function($a, $b) {
return $b <=> $a;
});

print_r($sorted);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

)


Retorna a soma de todos os valores no mapa

  • « Ds\Map::sorted
  • Ds\Map::toArray »
  • PHP Manual
  • Ds\Map
  • Retorna a soma de todos os valores no mapa

Ds\Map::sum

(Não há informação de versão disponível, talvez apenas no Git)

Ds\Map::sum — Retorna a soma de todos os valores no mapa

Descrição

public Ds\Map::sum(): int|float

Retorna a soma de todos os valores no mapa.

Nota:

Arrays e objetos são considerados iguais a zero ao calcular a soma.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A soma de todos os valores no mapa como um float ou int dependendo dos valores no mapa.

Exemplos

Exemplo #1 Exemplo de Ds\Map::sum() com inteiros

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->sum());
?>

O exemplo acima produzirá algo semelhante a:

int(6)

Exemplo #2 Exemplo de Ds\Map::sum() com float

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2.5, "c" => 3]);
var_dump($map->sum());
?>

O exemplo acima produzirá algo semelhante a:

float(6.5)


Converte o mapa em um array

  • « Ds\Map::sum
  • Ds\Map::union »
  • PHP Manual
  • Ds\Map
  • Converte o mapa em um array

Ds\Map::toArray

(PECL ds >= 1.0.0)

Ds\Map::toArray — Converte o mapa em um array

Descrição

public Ds\Map::toArray(): array

Converte o mapa em um array.

Cuidado

Mapas com chaves não escalares não podem ser convertidos para um array.

Cuidado

Um array tratará todas as chaves numéricas como inteiros, por exemplo, "1" e 1 como chaves no mapa resultarão apenas em 1 sendo incluído no array.

Nota:

A conversão direta para um array ainda não é suportada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo todos os valores na mesma ordem do mapa.

Exemplos

Exemplo #1 Ds\Map::toArray() exemplo

<?php
$map = new \Ds\Map([
"a" => 1,
"b" => 2,
"c" => 3,
]);

var_dump($map->toArray());
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}


Cria um novo mapa usando valores da instância atual e de outro mapa

  • « Ds\Map::toArray
  • Ds\Map::values »
  • PHP Manual
  • Ds\Map
  • Cria um novo mapa usando valores da instância atual e de outro mapa

Ds\Map::union

(PECL ds >= 1.0.0)

Ds\Map::union — Cria um novo mapa usando valores da instância atual e de outro mapa

Descrição

public Ds\Map::union(Ds\Map $map): Ds\Map

ria um novo mapa que contém os pares da instância atual, bem como os pares de outro map.

A ? B = {x: x ? A ? x ? B}

Nota:

Os valores da instância atual serão sobrescritos pelos fornecidos quando as chaves são iguais.

Parâmetros

map

O outro mapa, para combinar com a instância atual.

Valor Retornado

Um novo mapa contendo todos os pares da instância atual, bem como outro map.

Veja Também

  • » Union na Wikipedia

Exemplos

Exemplo #1 Ds\Map::union() exemplo

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 3, "c" => 4, "d" => 5]);

print_r($a->union($b));
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 4
        )

    [3] => Ds\Pair Object
        (
            [key] => d
            [value] => 5
        )

)


Retorna uma sequência dos valores do mapa

  • « Ds\Map::union
  • Ds\Map::xor »
  • PHP Manual
  • Ds\Map
  • Retorna uma sequência dos valores do mapa

Ds\Map::values

(PECL ds >= 1.0.0)

Ds\Map::values — Retorna uma sequência dos valores do mapa

Descrição

public Ds\Map::values(): Ds\Sequence

Retorna uma sequência contendo todos os valores do mapa, na mesma ordem.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma Ds\Sequence contendo todos os valores do mapa.

Exemplos

Exemplo #1 Ds\Map::values() exemplo

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->values());
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Cria um novo mapa usando chaves apenas do mapa atual ou de outro mapa, mas não de ambos

  • « Ds\Map::values
  • Ds\Pair »
  • PHP Manual
  • Ds\Map
  • Cria um novo mapa usando chaves apenas do mapa atual ou de outro mapa, mas não de ambos

Ds\Map::xor

(PECL ds >= 1.0.0)

Ds\Map::xor — Cria um novo mapa usando chaves apenas do mapa atual ou de outro mapa, mas não de ambos

Descrição

public Ds\Map::xor(Ds\Map $map): Ds\Map

Cria um novo mapa que contém chaves do mapa atual e de outro map, mas não de ambos.

A ? B = {x : x ? (A \ B) ? (B \ A)}

Parâmetros

map

O outro mapa.

Valor Retornado

Um novo mapa contendo chaves do mapa atual e de outro map, mas não de ambos.

Veja Também

  • » Symmetric Difference na Wikipedia

Exemplos

Exemplo #1 Ds\Map::xor() exemplo

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

print_r($a->xor($b));
?>

O exemplo acima produzirá algo semelhante a:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => d
            [value] => 6
        )

)


A classe Pair

(PECL ds >= 1.0.0)

Introdução

A pair é usadao por Ds\Map para associar chaves a valores.

Resumo da classe

class Ds\Pair implements JsonSerializable {
/* Métodos */
public __construct(mixed $key = ?, mixed $value = ?)
public clear(): void
public copy(): Ds\Pair
public isEmpty(): bool
public toArray(): array
}

Índice

  • Ds\Pair::clear — Remove todos os valores
  • Ds\Pair::__construct — Cria uma nova instância
  • Ds\Pair::copy — Retorna uma cópia rasa do par
  • Ds\Pair::isEmpty — Retorna se o par está vazio
  • Ds\Pair::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
  • Ds\Pair::toArray — Converte o par para um array


Remove todos os valores

  • « Ds\Pair
  • Ds\Pair::__construct »
  • PHP Manual
  • Ds\Pair
  • Remove todos os valores

Ds\Pair::clear

(Não há informação de versão disponível, talvez apenas no Git)

Ds\Pair::clear — Remove todos os valores

Descrição

public Ds\Pair::clear(): void

Remove todos os valores do par.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Ds\Pair::clear() exemplo

<?php
$pair = new \Ds\Pair("a", 1);
print_r($pair);

$pair->clear();
print_r($pair);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Pair Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Pair Object
(
)


Cria uma nova instância

  • « Ds\Pair::clear
  • Ds\Pair::copy »
  • PHP Manual
  • Ds\Pair
  • Cria uma nova instância

Ds\Pair::__construct

(PECL ds >= 1.0.0)

Ds\Pair::__construct — Cria uma nova instância

Descrição

public Ds\Pair::__construct(mixed $key = ?, mixed $value = ?)

Cria uma nova instância usando uma dada chave key e valor value.

Parâmetros

key

A chave.

value

O valor.


Retorna uma cópia rasa do par

  • « Ds\Pair::__construct
  • Ds\Pair::isEmpty »
  • PHP Manual
  • Ds\Pair
  • Retorna uma cópia rasa do par

Ds\Pair::copy

(Não há informação de versão disponível, talvez apenas no Git)

Ds\Pair::copy — Retorna uma cópia rasa do par

Descrição

public Ds\Pair::copy(): Ds\Pair

Retorna uma cópia rasa do par.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma cópia rasa do par.

Exemplos

Exemplo #1 Ds\Pair::copy() exemplo

<?php
$a = new \Ds\Pair("a", 1);
$b = $a->copy();

$a->key = "x";

print_r($a);
print_r($b);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Pair Object
(
    [key] => x
    [value] => 1
)
Ds\Pair Object
(
    [key] => a
    [value] => 1
)


Retorna se o par está vazio

  • « Ds\Pair::copy
  • Ds\Pair::jsonSerialize »
  • PHP Manual
  • Ds\Pair
  • Retorna se o par está vazio

Ds\Pair::isEmpty

(Não há informação de versão disponível, talvez apenas no Git)

Ds\Pair::isEmpty — Retorna se o par está vazio

Descrição

public Ds\Pair::isEmpty(): bool

Retorna se o par está vazio.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o par estiver vazio, false caso contrário.

Exemplos

Exemplo #1 Ds\Pair::isEmpty() exemplo

<?php
$a = new \Ds\Pair("a", 1);
$b = new \Ds\Pair();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Retorna uma representação que pode ser convertida para JSON

  • « Ds\Pair::isEmpty
  • Ds\Pair::toArray »
  • PHP Manual
  • Ds\Pair
  • Retorna uma representação que pode ser convertida para JSON

Ds\Pair::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Pair::jsonSerialize — Retorna uma representação que pode ser convertida para JSON

Descrição

Veja JsonSerializable::jsonSerialize()

Nota:

Normalmente, não deve ser necessário chamar este método diretamente.


Converte o par para um array

  • « Ds\Pair::jsonSerialize
  • Ds\Set »
  • PHP Manual
  • Ds\Pair
  • Converte o par para um array

Ds\Pair::toArray

(PECL ds >= 1.0.0)

Ds\Pair::toArray — Converte o par para um array

Descrição

public Ds\Pair::toArray(): array

Converte o par para um array.

Nota:

A conversão direta para um array ainda não é suportada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo todos os valores na mesma ordem que o par.

Exemplos

Exemplo #1 Ds\Pair::toArray() exemplo

<?php
$pair = new \Ds\Pair("a", 1);

var_dump($pair->toArray());
?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  ["key"]=>
  string(1) "a"
  ["value"]=>
  int(1)
}


A classe Set

(PECL ds >= 1.0.0)

Introdução

Um Set é uma sequência de valores únicos. Esta implementação usa a mesma tabela de hash que Ds\Map, onde os valores são usados como chaves e o valor mapeado é ignorado.

Pontos Fortes

  • Os valores podem ser de qualquer tipo, incluindo objetos.
  • Suporta a sintaxe de array (colchetes).
  • A ordem de inserção é preservada.
  • Libera automaticamente a memória alocada quando seu tamanho fica baixo o suficiente.
  • add(),
remove() e
contains() são todos O(1).

Pontos Fracos

  • Não suporta
      push(),
      pop(),
      insert(),
      shift() ou
      unshift().
  • get() é O(n) se houver valores excluídos no buffer antes do índice acessado, O(1) caso contrário.

Resumo da classe

class Ds\Set implements Ds\Collection, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 16;
/* Métodos */
public add(mixed ...$values): void
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Set
public diff(Ds\Set $set): Ds\Set
public filter(callable $callback = ?): Ds\Set
public first(): mixed
public get(int $index): mixed
public intersect(Ds\Set $set): Ds\Set
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public merge(mixed $values): Ds\Set
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(mixed ...$values): void
public reverse(): void
public reversed(): Ds\Set
public slice(int $index, int $length = ?): Ds\Set
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Set
public sum(): int|float
public toArray(): array
public union(Ds\Set $set): Ds\Set
public xor(Ds\Set $set): Ds\Set
}

Constantes pré-definidas

Ds\Set::MIN_CAPACITY

Registro de Alterações

Versão | Descrição
PECL ds 1.3.0 | A classe agora implementa ArrayAccess.

Índice

  • Ds\Set::add — Adiciona valores ao conjunto
  • Ds\Set::allocate — Aloca memória suficiente para uma capacidade necessária
  • Ds\Set::capacity — Retorna a capacidade atual
  • Ds\Set::clear — Remove todos os valores
  • Ds\Set::__construct — Cria uma nova instância
  • Ds\Set::contains — Determina se o conjunto contém todos os valores
  • Ds\Set::copy — Retorna uma cópia rasa do conjunto
  • Ds\Set::count — Retorna o número de valores no conjunto
  • Ds\Set::diff — Cria um novo conjunto usando valores que não estão em outro conjunto
  • Ds\Set::filter — Cria um novo conjunto usando um callable para determinar quais valores incluir
  • Ds\Set::first — Retorna o primeiro valor no conjunto
  • Ds\Set::get — Retorna o valor em um índice específico
  • Ds\Set::intersect — Cria um novo conjunto interseccionando valores com outro conjunto
  • Ds\Set::isEmpty — Retorna se o conjunto está vazio
  • Ds\Set::join — Junta todos os valores em uma string
  • Ds\Set::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
  • Ds\Set::last — Retorna o último valor no conjunto
  • Ds\Set::merge — Retorna o resultado da adição de todos os valores dados ao conjunto
  • Ds\Set::reduce — Reduz o conjunto a um único valor usando uma função de callback
  • Ds\Set::remove — Remove todos os valores dados do conjunto
  • Ds\Set::reverse — Inverte o conjunto no local
  • Ds\Set::reversed — Retorna uma cópia invertida
  • Ds\Set::slice — Retorna um subconjunto de um intervalo dado
  • Ds\Set::sort — Ordena o conjunto no local
  • Ds\Set::sorted — Retorna uma cópia ordenada
  • Ds\Set::sum — Retorna a soma de todos os valores no conjunto
  • Ds\Set::toArray — Converte o conjunto para um array
  • Ds\Set::union — Cria um novo conjunto usando valores da instância atual e de outro conjunto
  • Ds\Set::xor — Cria um novo conjunto usando valores na instância atual ou em outro conjunto, mas não em ambos


Adiciona valores ao conjunto

  • « Ds\Set
  • Ds\Set::allocate »
  • PHP Manual
  • Ds\Set
  • Adiciona valores ao conjunto

Ds\Set::add

(PECL ds >= 1.0.0)

Ds\Set::add — Adiciona valores ao conjunto

Descrição

public Ds\Set::add(mixed ...$values): void

Adiciona todos os valores fornecidos ao conjunto que ainda não foram adicionados anteriormente.

Nota:

Valores do tipo object são suportados. Se um objeto implementar Ds\Hashable, a igualdade será determinada pela função equals do objeto. Se um objeto não implementar Ds\Hashable, objetos devem ser referências à mesma instância para serem considerados iguais.

Cuidado

Todas as comparações são estritas (tipo e valor).

Parâmetros

values

Valores a serem adicionados ao conjunto.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Set::add() usando inteiros

<?php
$set = new \Ds\Set();

$set->add(1);
$set->add(1);
$set->add(2);
$set->add(3);

// A comparação estrita não trataria esses como iguais a int(1)
$set->add("1");
$set->add(true);

var_dump($set);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#1 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  string(1) "1"
  [4]=>
  bool(true)
}

Exemplo #2 Exemplo de Ds\Set::add() usando objetos

<?php
class HashableObject implements \Ds\Hashable
{
/**
* Um valor arbitrário a ser usado como valor de hash. Não define igualdade.
*/
private $value;

public function __construct($value)
{
$this->value = $value;
}

public function hash()
{
return $this->value;
}

public function equals($obj): bool
{
return $this->value === $obj->value;
}
}

$set = new \Ds\Set();

$obj = new \ArrayIterator([]);

// Adicionar a mesma instância várias vezes só adicionará a primeira.
$set->add($obj);
$set->add($obj);

// Adicionar várias instâncias do mesmo objeto adicionará todas.
$set->add(new \stdClass());
$set->add(new \stdClass());

// Adicionar várias instâncias de objetos hasháveis iguais só adicionará a primeira.
$set->add(new \HashableObject(1));
$set->add(new \HashableObject(1));
$set->add(new \HashableObject(2));
$set->add(new \HashableObject(2));

var_dump($set);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#1 (5) {
  [0]=>
  object(ArrayIterator)#2 (1) {
    ["storage":"ArrayIterator":private]=>
    array(0) {
    }
  }
  [1]=>
  object(stdClass)#3 (0) {
  }
  [2]=>
  object(stdClass)#4 (0) {
  }
  [3]=>
  object(HashableObject)#5 (1) {
    ["value":"HashableObject":private]=>
    int(1)
  }
  [4]=>
  object(HashableObject)#6 (1) {
    ["value":"HashableObject":private]=>
    int(2)
  }
}


Aloca memória suficiente para uma capacidade necessária

  • « Ds\Set::add
  • Ds\Set::capacity »
  • PHP Manual
  • Ds\Set
  • Aloca memória suficiente para uma capacidade necessária

Ds\Set::allocate

(PECL ds >= 1.0.0)

Ds\Set::allocate — Aloca memória suficiente para uma capacidade necessária

Descrição

public Ds\Set::allocate(int $capacity): void

Aloca memória suficiente para uma capacidade necessária.

Parâmetros

capacity

O número de valores para os quais a capacidade deve ser alocada.

Nota:

A capacidade permanecerá a mesma se este valor for menor ou igual à capacidade atual.

Nota:

A capacidade sempre será arredondada para cima até a potência de 2 mais próxima.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Set::allocate()

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->allocate(100);
var_dump($set->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(16)
int(128)


Retorna a capacidade atual

  • « Ds\Set::allocate
  • Ds\Set::clear »
  • PHP Manual
  • Ds\Set
  • Retorna a capacidade atual

Ds\Set::capacity

(PECL ds >= 1.0.0)

Ds\Set::capacity — Retorna a capacidade atual

Descrição

public Ds\Set::capacity(): int

Retorna a capacidade atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A capacidade atual.

Exemplos

Exemplo #1 Exemplo de Ds\Set::capacity()

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->add(...range(1, 50));
var_dump($set->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(16)
int(64)


Remove todos os valores

  • « Ds\Set::capacity
  • Ds\Set::__construct »
  • PHP Manual
  • Ds\Set
  • Remove todos os valores

Ds\Set::clear

(PECL ds >= 1.0.0)

Ds\Set::clear — Remove todos os valores

Descrição

public Ds\Set::clear(): void

Remove todos os valores do conjunto.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Set::clear()

<?php
$set = new \Ds\Set([1, 2, 3]);
print_r($set);

$set->clear();
print_r($set);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Set Object
(
)


Cria uma nova instância

  • « Ds\Set::clear
  • Ds\Set::contains »
  • PHP Manual
  • Ds\Set
  • Cria uma nova instância

Ds\Set::__construct

(PECL ds >= 1.0.0)

Ds\Set::__construct — Cria uma nova instância

Descrição

public Ds\Set::__construct(mixed $values = [])

Cria uma nova instância, usando um objeto traversable ou um array para os values iniciais.

Parâmetros

values

Um objeto traversable ou um array para usar como os valores iniciais.

Exemplos

Exemplo #1 Exemplo de Ds\Set::__construct()

<?php
$set = new \Ds\Set();
var_dump($set);

$set = new \Ds\Set([1, 2, 3]);
var_dump($set);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#1 (0) {
}
object(Ds\Set)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Determina se o conjunto contém todos os valores

  • « Ds\Set::__construct
  • Ds\Set::copy »
  • PHP Manual
  • Ds\Set
  • Determina se o conjunto contém todos os valores

Ds\Set::contains

(PECL ds >= 1.0.0)

Ds\Set::contains — Determina se o conjunto contém todos os valores

Descrição

public Ds\Set::contains(mixed ...$values): bool

Determina se o conjunto contém todos os valores.

Nota:

Valores do tipo object são suportados. Se um objeto implementar Ds\Hashable, a igualdade será determinada pela função equals do objeto. Se um objeto não implementar Ds\Hashable, os objetos devem ser referências à mesma instância para serem considerados iguais.

Cuidado

Todas as comparações são estritas (tipo e valor).

Parâmetros

values

Valores a serem verificados.

Valor Retornado

false se algum dos values fornecidos não estiver no conjunto, true caso contrário.

Exemplos

Exemplo #1 Exemplo de Ds\Set::contains()

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->contains(1)); // true
var_dump($set->contains(1, 2)); // true
var_dump($set->contains(...[1, 2])); // true

var_dump($set->contains("1")); // false
var_dump($set->contains(...[1, 2, 3, 4])); // false

var_dump($set->contains(...[])); // true
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)


Retorna uma cópia rasa do conjunto

  • « Ds\Set::contains
  • Ds\Set::count »
  • PHP Manual
  • Ds\Set
  • Retorna uma cópia rasa do conjunto

Ds\Set::copy

(PECL ds >= 1.0.0)

Ds\Set::copy — Retorna uma cópia rasa do conjunto

Descrição

public Ds\Set::copy(): Ds\Set

Retorna uma cópia rasa do conjunto.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma cópia rasa do conjunto.

Exemplos

Exemplo #1 Exemplo de Ds\Set::copy()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = $a->copy();

// Atualizar a cópia não afeta o original
$b->add(4);

print_r($a);
print_r($b);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Retorna o número de valores no conjunto

  • « Ds\Set::copy
  • Ds\Set::diff »
  • PHP Manual
  • Ds\Set
  • Retorna o número de valores no conjunto

Ds\Set::count

(PECL ds >= 1.0.0)

Ds\Set::count — Retorna o número de valores no conjunto

Descrição

Veja Countable::count()


Cria um novo conjunto usando valores que não estão em outro conjunto

  • « Ds\Set::count
  • Ds\Set::filter »
  • PHP Manual
  • Ds\Set
  • Cria um novo conjunto usando valores que não estão em outro conjunto

Ds\Set::diff

(PECL ds >= 1.0.0)

Ds\Set::diff — Cria um novo conjunto usando valores que não estão em outro conjunto

Descrição

public Ds\Set::diff(Ds\Set $set): Ds\Set

Cria um novo conjunto usando valores que não estão em outro conjunto.

A \ B = {x ? A | x ? B}

Parâmetros

set

Conjunto contendo os valores a serem excluídos.

Valor Retornado

Um novo conjunto contendo todos os valores que não estavam no outro set.

Veja Também

  • » Complement na Wikipedia

Exemplos

Exemplo #1 Exemplo de Ds\Set::diff()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->diff($b));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#3 (2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}


Cria um novo conjunto usando um callable para determinar quais valores incluir

  • « Ds\Set::diff
  • Ds\Set::first »
  • PHP Manual
  • Ds\Set
  • Cria um novo conjunto usando um callable para determinar quais valores incluir

Ds\Set::filter

(PECL ds >= 1.0.0)

Ds\Set::filter — Cria um novo conjunto usando um callable para determinar quais valores incluir

Descrição

public Ds\Set::filter(callable $callback = ?): Ds\Set

Cria um novo conjunto usando um callable para determinar quais valores incluir.

Parâmetros

callback

callback(mixed $value): bool

callable opcional que retorna true se o valor deve ser incluído, false caso contrário.

Se um callback não for fornecido, somente os valores que são true (veja conversão para booleano) serão incluídos.

Valor Retornado

Um novo conjunto contendo todos os valores para os quais o callback retornou true, ou todos os valores que convertem para true se um callback não foi fornecido.

Exemplos

Exemplo #1 Exemplo de Ds\Set::filter() usando função de callback

<?php
$set = new \Ds\Set([1, 2, 3, 4, 5]);

var_dump($set->filter(function($value) {
return $value % 2 == 0;
}));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Exemplo #2 Exemplo de Ds\Set::filter() sem usar função de callback

<?php
$set = new \Ds\Set([0, 1, 'a', true, false]);

var_dump($set->filter());
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Retorna o primeiro valor no conjunto

  • « Ds\Set::filter
  • Ds\Set::get »
  • PHP Manual
  • Ds\Set
  • Retorna o primeiro valor no conjunto

Ds\Set::first

(PECL ds >= 1.0.0)

Ds\Set::first — Retorna o primeiro valor no conjunto

Descrição

public Ds\Set::first(): mixed

Retorna o primeiro valor no conjunto.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O primeiro valor no conjunto.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Set::first()

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->first());
?>

O exemplo acima produzirá algo semelhante a:

int(1)


Retorna o valor em um índice específico

  • « Ds\Set::first
  • Ds\Set::intersect »
  • PHP Manual
  • Ds\Set
  • Retorna o valor em um índice específico

Ds\Set::get

(PECL ds >= 1.0.0)

Ds\Set::get — Retorna o valor em um índice específico

Descrição

public Ds\Set::get(int $index): mixed

Retorna o valor em um índice específico.

Parâmetros

index

O índice a ser acessado, começando em 0.

Valor Retornado

O valor no índice solicitado.

Erros/Exceções

OutOfRangeException se o índice não for válido.

Exemplos

Exemplo #1 Exemplo de Ds\Set::get()

<?php
$set = new \Ds\Set(["a", "b", "c"]);

var_dump($set->get(0));
var_dump($set->get(1));
var_dump($set->get(2));
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"

Exemplo #2 Exemplo de Ds\Set::get() usando sintaxe de array

<?php
$set = new \Ds\Set(["a", "b", "c"]);

var_dump($set[0]);
var_dump($set[1]);
var_dump($set[2]);
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"


Cria um novo conjunto interseccionando valores com outro conjunto

  • « Ds\Set::get
  • Ds\Set::isEmpty »
  • PHP Manual
  • Ds\Set
  • Cria um novo conjunto interseccionando valores com outro conjunto

Ds\Set::intersect

(PECL ds >= 1.0.0)

Ds\Set::intersect — Cria um novo conjunto interseccionando valores com outro conjunto

Descrição

public Ds\Set::intersect(Ds\Set $set): Ds\Set

Cria um novo conjunto usando valores comuns tanto à instância atual quanto a outro conjunto set. Em outras palavras, retorna uma cópia da instância atual com todos os valores removidos que não estão no outro conjunto set.

A n B = {x : x ? A ? x ? B}

Parâmetros

set

O outro conjunto.

Valor Retornado

A interseção da instância atual e de outro cojunto set.

Veja Também

  • » Intersection na Wikipedia

Exemplos

Exemplo #1 Exemplo de Ds\Set::intersect()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->intersect($b));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#3 (1) {
  [0]=>
  int(3)
}


Retorna se o conjunto está vazio

  • « Ds\Set::intersect
  • Ds\Set::join »
  • PHP Manual
  • Ds\Set
  • Retorna se o conjunto está vazio

Ds\Set::isEmpty

(PECL ds >= 1.0.0)

Ds\Set::isEmpty — Retorna se o conjunto está vazio

Descrição

public Ds\Set::isEmpty(): bool

Retonar se o conjunto está vazio.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o conjunto estiver vazio, false caso contrário.

Exemplos

Exemplo #1 Exemplo de Ds\Set::isEmpty()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Junta todos os valores em uma string

  • « Ds\Set::isEmpty
  • Ds\Set::jsonSerialize »
  • PHP Manual
  • Ds\Set
  • Junta todos os valores em uma string

Ds\Set::join

(PECL ds >= 1.0.0)

Ds\Set::join — Junta todos os valores em uma string

Descrição

public Ds\Set::join(string $glue = ?): string

Junta todos os valores em uma string usando um separador opcional entre cada valor.

Parâmetros

glue

Uma string opcional para separar cada valor.

Valor Retornado

Todos os valores do conjunto juntos em uma string.

Exemplos

Exemplo #1 Exemplo de Ds\Set::join() usando uma string separadora

<?php
$set = new \Ds\Set(["a", "b", "c", 1, 2, 3]);

var_dump($set->join("|"));
?>

O exemplo acima produzirá algo semelhante a:

string(11) "a|b|c|1|2|3"

Exemplo #2 Exemplo de Ds\Set::join() sem usar uma string separadora

<?php
$set = new \Ds\Set(["a", "b", "c", 1, 2, 3]);

var_dump($set->join());
?>

O exemplo acima produzirá algo semelhante a:

string(11) "abc123"


Retorna uma representação que pode ser convertida para JSON

  • « Ds\Set::join
  • Ds\Set::last »
  • PHP Manual
  • Ds\Set
  • Retorna uma representação que pode ser convertida para JSON

Ds\Set::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Set::jsonSerialize — Retorna uma representação que pode ser convertida para JSON

Descrição

Veja JsonSerializable::jsonSerialize()

Nota:

Normalmente, não deve ser necessário chamar este método diretamente.


Retorna o último valor no conjunto

  • « Ds\Set::jsonSerialize
  • Ds\Set::merge »
  • PHP Manual
  • Ds\Set
  • Retorna o último valor no conjunto

Ds\Set::last

(PECL ds >= 1.0.0)

Ds\Set::last — Retorna o último valor no conjunto

Descrição

public Ds\Set::last(): mixed

Retorna o último valor no conjunto.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O último valor no conjunto.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Set::last()

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->last());
?>

O exemplo acima produzirá algo semelhante a:

int(3)


Retorna o resultado da adição de todos os valores dados ao conjunto

  • « Ds\Set::last
  • Ds\Set::reduce »
  • PHP Manual
  • Ds\Set
  • Retorna o resultado da adição de todos os valores dados ao conjunto

Ds\Set::merge

(PECL ds >= 1.0.3)

Ds\Set::merge — Retorna o resultado da adição de todos os valores dados ao conjunto

Descrição

public Ds\Set::merge(mixed $values): Ds\Set

Retorna o resultado da adição de todos os valores dados ao conjunto.

Parâmetros

values

Um objeto traversable ou um array.

Valor Retornado

O resultado da adição de todos os valores dados ao conjunto, efetivamente o mesmo que adicionar os valores a uma cópia e, em seguida, retornar essa cópia.

Nota:

A instância atual não será afetada.

Exemplos

Exemplo #1 Exemplo de Ds\Set::merge()

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->merge([3, 4, 5]));
var_dump($set);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}
object(Ds\Set)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Reduz o conjunto a um único valor usando uma função de callback

  • « Ds\Set::merge
  • Ds\Set::remove »
  • PHP Manual
  • Ds\Set
  • Reduz o conjunto a um único valor usando uma função de callback

Ds\Set::reduce

(PECL ds >= 1.0.0)

Ds\Set::reduce — Reduz o conjunto a um único valor usando uma função de callback

Descrição

public Ds\Set::reduce(callable $callback, mixed $initial = ?): mixed

Reduz o conjunto a um único valor usando uma função de callback.

Parâmetros

callback
callback(mixed $carry, mixed $value): mixed
carry

O valor de retorno da chamada anterior ou initial se for a primeira iteração.

value

O valor da iteração atual.

initial

O valor inicial do valor de transporte. Pode ser null.

Valor Retornado

O valor de retorno da chamada final.

Exemplos

Exemplo #1 Exemplo de Ds\Set::reduce() com valor inicial

<?php
$set = new \Ds\Set([1, 2, 3]);

$callback = function($carry, $value) {
return $carry * $value;
};

var_dump($set->reduce($callback, 5));

// Iterações:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 = 5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

O exemplo acima produzirá algo semelhante a:

int(30)

Exemplo #2 Exemplo de Ds\Set::reduce() sem valor inicial

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->reduce(function($carry, $value) {
return $carry + $value + 5;
}));

// Iterações:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 = 6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

O exemplo acima produzirá algo semelhante a:

int(21)


Remove todos os valores dados do conjunto

  • « Ds\Set::reduce
  • Ds\Set::reverse »
  • PHP Manual
  • Ds\Set
  • Remove todos os valores dados do conjunto

Ds\Set::remove

(PECL ds >= 1.0.0)

Ds\Set::remove — Remove todos os valores dados do conjunto

Descrição

public Ds\Set::remove(mixed ...$values): void

Remove todos os values dados do conjunto, ignorando aqueles que não estão no conjunto.

Parâmetros

values

Os valores a serem removidos.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Set::remove()

<?php
$set = new \Ds\Set([1, 2, 3, 4, 5]);

$set->remove(1); // Remove 1
$set->remove(1, 2); // Can't find 1, but remove 2
$set->remove(...[3, 4]); // Remove 3 and 4

var_dump($set);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#1 (1) {
  [0]=>
  int(5)
}


Inverte o conjunto no local

  • « Ds\Set::remove
  • Ds\Set::reversed »
  • PHP Manual
  • Ds\Set
  • Inverte o conjunto no local

Ds\Set::reverse

(PECL ds >= 1.0.0)

Ds\Set::reverse — Inverte o conjunto no local

Descrição

public Ds\Set::reverse(): void

Inverte o conjunto no local.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Set::reverse()

<?php
$set = new \Ds\Set(["a", "b", "c"]);
$set->reverse();

print_r($set);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Set Object
(
    [0] => c
    [1] => b
    [2] => a
)


Retorna uma cópia invertida

  • « Ds\Set::reverse
  • Ds\Set::slice »
  • PHP Manual
  • Ds\Set
  • Retorna uma cópia invertida

Ds\Set::reversed

(PECL ds >= 1.0.0)

Ds\Set::reversed — Retorna uma cópia invertida

Descrição

public Ds\Set::reversed(): Ds\Set

Retorna uma cópia invertida do conjunto.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma cópia invertida do conjunto.

Nota:

A instância atual não é afetada.

Exemplos

Exemplo #1 Exemplo de Ds\Set::reversed()

<?php
$set = new \Ds\Set(["a", "b", "c"]);

print_r($set->reversed());
print_r($set);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Set Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Set Object
(
    [0] => a
    [1] => b
    [2] => c
)


Retorna um subconjunto de um intervalo dado

  • « Ds\Set::reversed
  • Ds\Set::sort »
  • PHP Manual
  • Ds\Set
  • Retorna um subconjunto de um intervalo dado

Ds\Set::slice

(PECL ds >= 1.0.0)

Ds\Set::slice — Retorna um subconjunto de um intervalo dado

Descrição

public Ds\Set::slice(int $index, int $length = ?): Ds\Set

Cria um subconjunto de um intervalo dado.

Parâmetros

index

O índice a partir do qual o subconjunto começa.

Se positivo, o conjunto começará nesse índice no conjunto. Se negativo, o conjunto começará a essa distância do final.

length

Se um comprimento for fornecido e for positivo, o conjunto resultante terá até esse número de valores. Se o comprimento resultar em um estouro, apenas valores até o final do conjunto serão incluídos. Se um comprimento for fornecido e for negativo, o conjunto terá até esse número de valores do final. Se um comprimento não for fornecido, o conjunto resultante conterá todos os valores entre o índice e o final do conjunto.

Valor Retornado

Um subconjunto do intervalo dado.

Exemplos

Exemplo #1 Exemplo de Ds\Set::slice()

<?php
$set = new \Ds\Set(["a", "b", "c", "d", "e"]);

// Fatia a partir de 2
print_r($set->slice(2));

// Fatia a partir de 1, por um comprimento de 3
print_r($set->slice(1, 3));

// Fatia a partir de 1
print_r($set->slice(1));

// Fatia a partir de 2 do final
print_r($set->slice(-2));

// Fatia de 1 até 1 do final
print_r($set->slice(1, -1));
?>

O exemplo acima produzirá algo semelhante a:

Ds\Set Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Set Object
(
    [0] => d
    [1] => e
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
)


Ordena o conjunto no local

  • « Ds\Set::slice
  • Ds\Set::sorted »
  • PHP Manual
  • Ds\Set
  • Ordena o conjunto no local

Ds\Set::sort

(PECL ds >= 1.0.0)

Ds\Set::sort — Ordena o conjunto no local

Descrição

public Ds\Set::sort(callable $comparator = ?): void

Ordena o conjunto no local, usando uma função de comparação comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Set::sort()

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);
$set->sort();

print_r($set);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemplo #2 Exemplo de Ds\Set::sort() usando um comparador

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

$set->sort(function($a, $b) {
return $b <=> $a;
});

print_r($set);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Retorna uma cópia ordenada

  • « Ds\Set::sort
  • Ds\Set::sum »
  • PHP Manual
  • Ds\Set
  • Retorna uma cópia ordenada

Ds\Set::sorted

(PECL ds >= 1.0.0)

Ds\Set::sorted — Retorna uma cópia ordenada

Descrição

public Ds\Set::sorted(callable $comparator = ?): Ds\Set

Retorna uma cópia ordenada, usando uma função de comparação comparator opcional.

Parâmetros

comparator

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Retorna uma cópia ordenada do conjunto.

Exemplos

Exemplo #1 Exemplo de Ds\Set::sorted()

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

print_r($set->sorted());
?>

O exemplo acima produzirá algo semelhante a:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Exemplo #2 Exemplo de Ds\Set::sorted() usando um comparador

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

$sorted = $set->sorted(function($a, $b) {
return $b <=> $a;
});

print_r($sorted);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Retorna a soma de todos os valores no conjunto

  • « Ds\Set::sorted
  • Ds\Set::toArray »
  • PHP Manual
  • Ds\Set
  • Retorna a soma de todos os valores no conjunto

Ds\Set::sum

(PECL ds >= 1.0.0)

Ds\Set::sum — Retorna a soma de todos os valores no conjunto

Descrição

public Ds\Set::sum(): int|float

Retorna a soma de todos os valores no conjunto.

Nota:

Arrays e objetos são considerados iguais a zero ao calcular a soma.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A soma de todos os valores no conjunto como um float ou int dependendo dos valores no conjunto.

Exemplos

Exemplo #1 Exemplo de Ds\Set::sum() com inteiros

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->sum());
?>

O exemplo acima produzirá algo semelhante a:

int(6)

Exemplo #2 Exemplo de Ds\Set::sum() com flutuantes

<?php
$set = new \Ds\Set([1, 2.5, 3]);
var_dump($set->sum());
?>

O exemplo acima produzirá algo semelhante a:

float(6.5)


Converte o conjunto para um array

  • « Ds\Set::sum
  • Ds\Set::union »
  • PHP Manual
  • Ds\Set
  • Converte o conjunto para um array

Ds\Set::toArray

(PECL ds >= 1.0.0)

Ds\Set::toArray — Converte o conjunto para um array

Descrição

public Ds\Set::toArray(): array

Converte o conjunto para um array.

Nota:

A conversão direta para um array ainda não é suportada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo todos os valores na mesma ordem que o conjunto.

Exemplos

Exemplo #1 Exemplo de Ds\Set::toArray()

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->toArray());
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Cria um novo conjunto usando valores da instância atual e de outro conjunto

  • « Ds\Set::toArray
  • Ds\Set::xor »
  • PHP Manual
  • Ds\Set
  • Cria um novo conjunto usando valores da instância atual e de outro conjunto

Ds\Set::union

(PECL ds >= 1.0.0)

Ds\Set::union — Cria um novo conjunto usando valores da instância atual e de outro conjunto

Descrição

public Ds\Set::union(Ds\Set $set): Ds\Set

Cria um novo conjunto que contém os valores da instância atual, bem como os valores de outro conjunto set.

A ? B = {x: x ? A ? x ? B}

Parâmetros

set

O outro conjunto, para combinar com a instância atual.

Valor Retornado

Um novo conjunto contendo todos os valores da instância atual, bem como outro conjuntoset.

Veja Também

  • » Union na Wikipedia

Exemplos

Exemplo #1 Exemplo de Ds\Set::union()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->union($b));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#3 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}


Cria um novo conjunto usando valores na instância atual ou em outro conjunto, mas não em ambos

  • « Ds\Set::union
  • Ds\Stack »
  • PHP Manual
  • Ds\Set
  • Cria um novo conjunto usando valores na instância atual ou em outro conjunto, mas não em ambos

Ds\Set::xor

(PECL ds >= 1.0.0)

Ds\Set::xor — Cria um novo conjunto usando valores na instância atual ou em outro conjunto, mas não em ambos

Descrição

public Ds\Set::xor(Ds\Set $set): Ds\Set

Cria um novo conjunto que contém valores na instância atual, bem como em outro conjuntoset, mas não em ambos.

A ? B = {x : x ? (A \ B) ? (B \ A)}

Parâmetros

set

O outro conjunto.

Valor Retornado

Um novo conjunto que contém valores na instância atual, bem como em outro conjunto set, mas não em ambos.

Veja Também

  • » Symmetric Difference na Wikipedia

Exemplos

Exemplo #1 Exemplo de Ds\Set::xor()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->xor($b));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Set)#3 (4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(4)
  [3]=>
  int(5)
}


A classe Stack

(PECL ds >= 1.0.0)

Introdução

Uma Stack é uma coleção "último a entrar, primeiro a sair" ou "LIFO" que permite apenas acesso ao valor no topo da estrutura e itera nessa ordem, destrutivamente.

Usa internamente um Ds\Vector.

Resumo da classe

class Ds\Stack implements Ds\Collection, ArrayAccess {
/* Métodos */
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public copy(): Ds\Stack
public isEmpty(): bool
public peek(): mixed
public pop(): mixed
public push(mixed ...$values): void
public toArray(): array
}

Registro de Alterações

Versão | Descrição
PECL ds 1.3.0 | A classe agora implementa ArrayAccess.

Índice

  • Ds\Stack::allocate — Aloca memória suficiente para uma capacidade requerida
  • Ds\Stack::capacity — Retona a capacidade atual
  • Ds\Stack::clear — Remove todos os valores
  • Ds\Stack::__construct — Cria uma nova instância
  • Ds\Stack::copy — Retorna uma cópia rasa da pilha
  • Ds\Stack::count — Retorna o número de valores na pilha
  • Ds\Stack::isEmpty — Retorna se a pilha está vazia
  • Ds\Stack::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
  • Ds\Stack::peek — Retorna o valor no topo da pilha
  • Ds\Stack::pop — Remove e retorna o valor no topo da pilha
  • Ds\Stack::push — Empurra valores para a pilha
  • Ds\Stack::toArray — Converte a pilha para um array


Aloca memória suficiente para uma capacidade requerida

  • « Ds\Stack
  • Ds\Stack::capacity »
  • PHP Manual
  • Ds\Stack
  • Aloca memória suficiente para uma capacidade requerida

Ds\Stack::allocate

(PECL ds >= 1.0.0)

Ds\Stack::allocate — Aloca memória suficiente para uma capacidade requerida

Descrição

public Ds\Stack::allocate(int $capacity): void

Garante que memória suficiente seja alocada para uma capacidade requerida. Isso elimina a necessidade de realocar a memória interna conforme os valores são adicionados.

Parâmetros

capacity

O número de valores para os quais a capacidade deve ser alocada.

Nota:

A capacidade permanecerá a mesma se este valor for menor ou igual à capacidade atual.

Valor Retornado

Nenhum valor é retornado.


Retona a capacidade atual

  • « Ds\Stack::allocate
  • Ds\Stack::clear »
  • PHP Manual
  • Ds\Stack
  • Retona a capacidade atual

Ds\Stack::capacity

(PECL ds >= 1.0.0)

Ds\Stack::capacity — Retona a capacidade atual

Descrição

public Ds\Stack::capacity(): int

Retona a capacidade atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A capacidade atual.


Remove todos os valores

  • « Ds\Stack::capacity
  • Ds\Stack::__construct »
  • PHP Manual
  • Ds\Stack
  • Remove todos os valores

Ds\Stack::clear

(PECL ds >= 1.0.0)

Ds\Stack::clear — Remove todos os valores

Descrição

public Ds\Stack::clear(): void

Remove todos os valores da pilha.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Stack::clear()

<?php
$stack = new \Ds\Stack([1, 2, 3]);
print_r($stack);

$stack->clear();
print_r($stack);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)
Ds\Stack Object
(
)


Cria uma nova instância

  • « Ds\Stack::clear
  • Ds\Stack::copy »
  • PHP Manual
  • Ds\Stack
  • Cria uma nova instância

Ds\Stack::__construct

(PECL ds >= 1.0.0)

Ds\Stack::__construct — Cria uma nova instância

Descrição

public Ds\Stack::__construct(mixed $values = ?)

Cria uma nova instância, utilizando um objeto traversable ou um array para os values iniciais.

Parâmetros

values

Um objeto traversable ou um array para usar como valores iniciais.

Exemplos

Exemplo #1 Exemplo de Ds\Stack::__construct()

<?php
$stack = new \Ds\Stack();
print_r($stack);

$stack = new \Ds\Stack([1, 2, 3]);
print_r($stack);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Stack Object
(
)
Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)


Retorna uma cópia rasa da pilha

  • « Ds\Stack::__construct
  • Ds\Stack::count »
  • PHP Manual
  • Ds\Stack
  • Retorna uma cópia rasa da pilha

Ds\Stack::copy

(PECL ds >= 1.0.0)

Ds\Stack::copy — Retorna uma cópia rasa da pilha

Descrição

public Ds\Stack::copy(): Ds\Stack

Retorna uma cópia rasa da pilha.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma cópia rasa da pilha.

Exemplos

Exemplo #1 Exemplo de Ds\Stack::copy()

<?php
$a = new \Ds\Stack([1, 2, 3]);
$b = $a->copy();

// Atualizar a cópia não afeta o original
$b->push(4);

print_r($a);
print_r($b);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)
Ds\Stack Object
(
    [0] => 4
    [1] => 3
    [2] => 2
    [3] => 1
)


Retorna o número de valores na pilha

  • « Ds\Stack::copy
  • Ds\Stack::isEmpty »
  • PHP Manual
  • Ds\Stack
  • Retorna o número de valores na pilha

Ds\Stack::count

(PECL ds >= 1.0.0)

Ds\Stack::count — Retorna o número de valores na pilha

Descrição

Veja Countable::count()


Retorna se a pilha está vazia

  • « Ds\Stack::count
  • Ds\Stack::jsonSerialize »
  • PHP Manual
  • Ds\Stack
  • Retorna se a pilha está vazia

Ds\Stack::isEmpty

(PECL ds >= 1.0.0)

Ds\Stack::isEmpty — Retorna se a pilha está vazia

Descrição

public Ds\Stack::isEmpty(): bool

Retorna se a pilha está vazia.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a pilha estiver vazia, false caso contrário.

Exemplos

Exemplo #1 Exemplo de Ds\Stack::isEmpty()

<?php
$a = new \Ds\Stack([1, 2, 3]);
$b = new \Ds\Stack();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Retorna uma representação que pode ser convertida para JSON

  • « Ds\Stack::isEmpty
  • Ds\Stack::peek »
  • PHP Manual
  • Ds\Stack
  • Retorna uma representação que pode ser convertida para JSON

Ds\Stack::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Stack::jsonSerialize — Retorna uma representação que pode ser convertida para JSON

Descrição

Veja JsonSerializable::jsonSerialize()

Nota:

Normalmente, não deve ser necessário chamar este método diretamente.


Retorna o valor no topo da pilha

  • « Ds\Stack::jsonSerialize
  • Ds\Stack::pop »
  • PHP Manual
  • Ds\Stack
  • Retorna o valor no topo da pilha

Ds\Stack::peek

(PECL ds >= 1.0.0)

Ds\Stack::peek — Retorna o valor no topo da pilha

Descrição

public Ds\Stack::peek(): mixed

Retorna o valor no topo da pilha, mas não o remove.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor no topo da pilha.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo Ds\Stack::peek()

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c");

var_dump($stack->peek());
?>

O exemplo acima produzirá algo semelhante a:

string(1) "c"


Remove e retorna o valor no topo da pilha

  • « Ds\Stack::peek
  • Ds\Stack::push »
  • PHP Manual
  • Ds\Stack
  • Remove e retorna o valor no topo da pilha

Ds\Stack::pop

(PECL ds >= 1.0.0)

Ds\Stack::pop — Remove e retorna o valor no topo da pilha

Descrição

public Ds\Stack::pop(): mixed

Remove e retorna o valor no topo da pilha.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor removido que estava no topo da pilha.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Stack::pop()

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c");

var_dump($stack->pop());
var_dump($stack->pop());
var_dump($stack->pop());
?>

O exemplo acima produzirá algo semelhante a:

string(1) "c"
string(1) "b"
string(1) "a"


Empurra valores para a pilha

  • « Ds\Stack::pop
  • Ds\Stack::toArray »
  • PHP Manual
  • Ds\Stack
  • Empurra valores para a pilha

Ds\Stack::push

(PECL ds >= 1.0.0)

Ds\Stack::push — Empurra valores para a pilha

Descrição

public Ds\Stack::push(mixed ...$values): void

Empurra os values para a pilha.

Parâmetros

values

Os valores a serem empurrados para a pilha.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Stack::push()

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c", "d");
$stack->push(...["e", "f"]);

print_r($stack);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Stack Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Converte a pilha para um array

  • « Ds\Stack::push
  • Ds\Queue »
  • PHP Manual
  • Ds\Stack
  • Converte a pilha para um array

Ds\Stack::toArray

(PECL ds >= 1.0.0)

Ds\Stack::toArray — Converte a pilha para um array

Descrição

public Ds\Stack::toArray(): array

Converte a pilha para um array.

Nota:

A conversão direta para um array ainda não é suportada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo todos os valores na mesma ordem que na pilha.

Exemplos

Exemplo #1 Exemplo de Ds\Stack::toArray()

<?php
$stack = new \Ds\Stack([1, 2, 3]);

var_dump($stack->toArray());
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}


A classe Queue

(PECL ds >= 1.0.0)

Introdução

Uma Queue é uma coleção "primeiro a entrar, primeiro a sair" ou "FIFO" que permite apenas acesso ao valor na frente da fila e itera nessa ordem, destrutivamente.

Resumo da classe

class Ds\Queue implements Ds\Collection, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 8;
/* Métodos */
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public copy(): Ds\Queue
public isEmpty(): bool
public peek(): mixed
public pop(): mixed
public push(mixed ...$values): void
public toArray(): array
}

Constantes pré-definidas

Ds\Queue::MIN_CAPACITY

Registro de Alterações

Versão | Descrição
PECL ds 1.3.0 | A classe agora implementa ArrayAccess.

Índice

  • Ds\Queue::allocate — Aloca memória suficiente para uma capacidade requerida
  • Ds\Queue::capacity — Retorna a capacidade atual
  • Ds\Queue::clear — Remove todos os valores
  • Ds\Queue::__construct — Cria uma nova instância
  • Ds\Queue::copy — Retorna uma cópia rasa da fila
  • Ds\Queue::count — Retorna o número de valores na fila
  • Ds\Queue::isEmpty — Retorna se a fila está vazia
  • Ds\Queue::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
  • Ds\Queue::peek — Retorna o valor no início da fila
  • Ds\Queue::pop — Remove e retorna o valor no início da fila
  • Ds\Queue::push — Insere valores na fila
  • Ds\Queue::toArray — Converte a fila para um array


Aloca memória suficiente para uma capacidade requerida

  • « Ds\Queue
  • Ds\Queue::capacity »
  • PHP Manual
  • Ds\Queue
  • Aloca memória suficiente para uma capacidade requerida

Ds\Queue::allocate

(PECL ds >= 1.0.0)

Ds\Queue::allocate — Aloca memória suficiente para uma capacidade requerida

Descrição

public Ds\Queue::allocate(int $capacity): void

Garante que memória suficiente seja alocada para uma capacidade requerida. Isso remove a necessidade de realocar a memória interna à medida que os valores são adicionados.

Nota:

A capacidade sempre será arredondada para cima até a potência de 2 mais próxima.

Parâmetros

capacity

O número de valores para os quais a capacidade deve ser alocada.

Nota:

A capacidade permanecerá a mesma se este valor for menor ou igual à capacidade atual.

Nota:

A capacidade sempre será arredondada para cima até a potência de 2 mais próxima.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Queue::allocate()

<?php
$queue = new \Ds\Queue();
var_dump($queue->capacity());

$queue->allocate(100);
var_dump($queue->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(8)
int(128)


Retorna a capacidade atual

  • « Ds\Queue::allocate
  • Ds\Queue::clear »
  • PHP Manual
  • Ds\Queue
  • Retorna a capacidade atual

Ds\Queue::capacity

(PECL ds >= 1.0.0)

Ds\Queue::capacity — Retorna a capacidade atual

Descrição

public Ds\Queue::capacity(): int

Retorna a capacidade atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A capacidade atual.

Exemplos

Exemplo #1 Exemplo de Ds\Queue::capacity()

<?php
$queue = new \Ds\Queue();
var_dump($queue->capacity());

$queue->push(...range(1, 50));
var_dump($queue->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(8)
int(64)


Remove todos os valores

  • « Ds\Queue::capacity
  • Ds\Queue::__construct »
  • PHP Manual
  • Ds\Queue
  • Remove todos os valores

Ds\Queue::clear

(PECL ds >= 1.0.0)

Ds\Queue::clear — Remove todos os valores

Descrição

public Ds\Queue::clear(): void

Remove todos os valores da fila.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Queue::clear()

<?php
$queue = new \Ds\Queue([1, 2, 3]);
print_r($queue);

$queue->clear();
print_r($queue);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Queue Object
(
)


Cria uma nova instância

  • « Ds\Queue::clear
  • Ds\Queue::copy »
  • PHP Manual
  • Ds\Queue
  • Cria uma nova instância

Ds\Queue::__construct

(PECL ds >= 1.0.0)

Ds\Queue::__construct — Cria uma nova instância

Descrição

public Ds\Queue::__construct(mixed $values = ?)

Cria uma nova instância, usando um objeto traversable ou um array para os values iniciais.

Parâmetros

values

Um objeto traversable ou um array para usar como valores iniciais.

Exemplos

Exemplo #1 Exemplo de Ds\Queue::__construct()

<?php
$queue = new \Ds\Queue();
var_dump($queue);

$queue = new \Ds\Queue([1, 2, 3]);
var_dump($queue);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Queue)#2 (0) {
}
object(Ds\Queue)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Retorna uma cópia rasa da fila

  • « Ds\Queue::__construct
  • Ds\Queue::count »
  • PHP Manual
  • Ds\Queue
  • Retorna uma cópia rasa da fila

Ds\Queue::copy

(PECL ds >= 1.0.0)

Ds\Queue::copy — Retorna uma cópia rasa da fila

Descrição

public Ds\Queue::copy(): Ds\Queue

Retorna uma cópia rasa da fila.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma cópia rasa da fila.

Exemplos

Exemplo #1 Exemplo de Ds\Queue::copy()

<?php
$a = new \Ds\Queue([1, 2, 3]);
$b = $a->copy();

// Updating the copy doesn't affect the original
$b->push(4);

print_r($a);
print_r($b);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Retorna o número de valores na fila

  • « Ds\Queue::copy
  • Ds\Queue::isEmpty »
  • PHP Manual
  • Ds\Queue
  • Retorna o número de valores na fila

Ds\Queue::count

(PECL ds >= 1.0.0)

Ds\Queue::count — Retorna o número de valores na fila

Descrição

Veja Countable::count()


Retorna se a fila está vazia

  • « Ds\Queue::count
  • Ds\Queue::jsonSerialize »
  • PHP Manual
  • Ds\Queue
  • Retorna se a fila está vazia

Ds\Queue::isEmpty

(PECL ds >= 1.0.0)

Ds\Queue::isEmpty — Retorna se a fila está vazia

Descrição

public Ds\Queue::isEmpty(): bool

Retorna se a fila está vazia.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retonar true se a fila estiver vazia, false caso contrário.

Exemplos

Exemplo #1 Exemplo de Ds\Queue::isEmpty()

<?php
$a = new \Ds\Queue([1, 2, 3]);
$b = new \Ds\Queue();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Retorna uma representação que pode ser convertida para JSON

  • « Ds\Queue::isEmpty
  • Ds\Queue::peek »
  • PHP Manual
  • Ds\Queue
  • Retorna uma representação que pode ser convertida para JSON

Ds\Queue::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Queue::jsonSerialize — Retorna uma representação que pode ser convertida para JSON

Descrição

Veja JsonSerializable::jsonSerialize()

Nota:

Normalmente, não deve ser necessário chamar este método diretamente.


Retorna o valor no início da fila

  • « Ds\Queue::jsonSerialize
  • Ds\Queue::pop »
  • PHP Manual
  • Ds\Queue
  • Retorna o valor no início da fila

Ds\Queue::peek

(PECL ds >= 1.0.0)

Ds\Queue::peek — Retorna o valor no início da fila

Descrição

public Ds\Queue::peek(): mixed

Retorna o valor no início da fila, mas não o remove.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor no início da fila.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Queue::peek()

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c");

var_dump($queue->peek());
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"


Remove e retorna o valor no início da fila

  • « Ds\Queue::peek
  • Ds\Queue::push »
  • PHP Manual
  • Ds\Queue
  • Remove e retorna o valor no início da fila

Ds\Queue::pop

(PECL ds >= 1.0.0)

Ds\Queue::pop — Remove e retorna o valor no início da fila

Descrição

public Ds\Queue::pop(): mixed

Remove e retorna o valor no início da fila.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor removido que estava no início da fila.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\Queue::pop()

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c");

var_dump($queue->pop());
var_dump($queue->pop());
var_dump($queue->pop());
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"


Insere valores na fila

  • « Ds\Queue::pop
  • Ds\Queue::toArray »
  • PHP Manual
  • Ds\Queue
  • Insere valores na fila

Ds\Queue::push

(PECL ds >= 1.0.0)

Ds\Queue::push — Insere valores na fila

Descrição

public Ds\Queue::push(mixed ...$values): void

Insere values na fila.

Parâmetros

values

Os valores a serem inseridos na fila.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\Queue::push()

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c", "d");
$queue->push(...["e", "f"]);

print_r($queue);
?>

O exemplo acima produzirá algo semelhante a:

Ds\Queue Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Converte a fila para um array

  • « Ds\Queue::push
  • Ds\PriorityQueue »
  • PHP Manual
  • Ds\Queue
  • Converte a fila para um array

Ds\Queue::toArray

(PECL ds >= 1.0.0)

Ds\Queue::toArray — Converte a fila para um array

Descrição

public Ds\Queue::toArray(): array

Converte a fila para um array.

Nota:

A conversão direta para um array ainda não é suportada.

Nota:

Este método não é destrutivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo todos os valores na mesma ordem da fila.

Exemplos

Exemplo #1 Exemplo de Ds\Queue::toArray()

<?php
$queue = new \Ds\Queue([1, 2, 3]);

var_dump($queue->toArray());
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


A classe PriorityQueue

(PECL ds >= 1.0.0)

Introdução

Uma PriorityQueue é muito semelhante a uma Queue. Valores são inseridos na fila com uma prioridade atribuída, e o valor com a maior prioridade estará sempre na frente da fila.

Implementado usando uma max heap.

Nota:

A ordem "Primeiro a entrar, primeiro a sair" é preservada para valores com a mesma prioridade.

Nota:

Iterar sobre uma PriorityQueue é destrutivo, equivalente a operações sucessivas de retirada até que a fila esteja vazia.

Resumo da classe

class Ds\PriorityQueue implements Ds\Collection {
/* Constantes */
const int MIN_CAPACITY = 8;
/* Métodos */
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public copy(): Ds\PriorityQueue
public isEmpty(): bool
public peek(): mixed
public pop(): mixed
public push(mixed $value, int $priority): void
public toArray(): array
}

Constantes pré-definidas

Ds\PriorityQueue::MIN_CAPACITY

Índice

  • Ds\PriorityQueue::allocate — Aloca memória suficiente para uma capacidade requerida
  • Ds\PriorityQueue::capacity — Retorna a capacidade atual
  • Ds\PriorityQueue::clear — Remove todos os valores
  • Ds\PriorityQueue::__construct — Cria uma nova instância
  • Ds\PriorityQueue::copy — Retorna uma cópia rasa da fila
  • Ds\PriorityQueue::count — Retorna o número de valores na fila
  • Ds\PriorityQueue::isEmpty — Retorna se a fila está vazia
  • Ds\PriorityQueue::jsonSerialize — Retorna uma representação que pode ser convertida para JSON
  • Ds\PriorityQueue::peek — Retorna o valor na frente da fila
  • Ds\PriorityQueue::pop — Remove e retorna o valor com a maior prioridade
  • Ds\PriorityQueue::push — Adiciona valores na fila
  • Ds\PriorityQueue::toArray — Converte a fila para um array


Aloca memória suficiente para uma capacidade requerida

  • « Ds\PriorityQueue
  • Ds\PriorityQueue::capacity »
  • PHP Manual
  • Ds\PriorityQueue
  • Aloca memória suficiente para uma capacidade requerida

Ds\PriorityQueue::allocate

(PECL ds >= 1.0.0)

Ds\PriorityQueue::allocate — Aloca memória suficiente para uma capacidade requerida

Descrição

public Ds\PriorityQueue::allocate(int $capacity): void

Garante que memória suficiente seja alocada para uma capacidade requerida. Isso elimina a necessidade de realocar internamente à medida que os valores são adicionados.

Parâmetros

capacity

O número de valores para os quais a capacidade deve ser alocada.

Nota:

A capacidade permanecerá a mesma se este valor for menor ou igual à capacidade atual.

Nota:

A capacidade sempre será arredondada para o próximo número inteiro de potência de 2.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\PriorityQueue::allocate()

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue->capacity());

$queue->allocate(100);
var_dump($queue->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(8)
int(128)


Retorna a capacidade atual

  • « Ds\PriorityQueue::allocate
  • Ds\PriorityQueue::clear »
  • PHP Manual
  • Ds\PriorityQueue
  • Retorna a capacidade atual

Ds\PriorityQueue::capacity

(PECL ds >= 1.0.0)

Ds\PriorityQueue::capacity — Retorna a capacidade atual

Descrição

public Ds\PriorityQueue::capacity(): int

Retorna a capacidade atual.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A capacidade atual.

Exemplos

Exemplo #1 Exemplo de Ds\PriorityQueue::capacity()

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue->capacity());
?>

O exemplo acima produzirá algo semelhante a:

int(8)


Remove todos os valores

  • « Ds\PriorityQueue::capacity
  • Ds\PriorityQueue::__construct »
  • PHP Manual
  • Ds\PriorityQueue
  • Remove todos os valores

Ds\PriorityQueue::clear

(PECL ds >= 1.0.0)

Ds\PriorityQueue::clear — Remove todos os valores

Descrição

public Ds\PriorityQueue::clear(): void

Remove todos os valores da fila.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\PriorityQueue::clear()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a", 5);
$queue->push("b", 15);
$queue->push("c", 10);

$queue->clear();
print_r($queue);
?>

O exemplo acima produzirá algo semelhante a:

Ds\PriorityQueue Object
(
)


Cria uma nova instância

  • « Ds\PriorityQueue::clear
  • Ds\PriorityQueue::copy »
  • PHP Manual
  • Ds\PriorityQueue
  • Cria uma nova instância

Ds\PriorityQueue::__construct

(PECL ds >= 1.0.0)

Ds\PriorityQueue::__construct — Cria uma nova instância

Descrição

public Ds\PriorityQueue::__construct()

Cria uma nova instância.

Exemplos

Exemplo #1 Exemplo de Ds\PriorityQueue::__construct()

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue);
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\PriorityQueue)#1 (0) {
}


Retorna uma cópia rasa da fila

  • « Ds\PriorityQueue::__construct
  • Ds\PriorityQueue::count »
  • PHP Manual
  • Ds\PriorityQueue
  • Retorna uma cópia rasa da fila

Ds\PriorityQueue::copy

(PECL ds >= 1.0.0)

Ds\PriorityQueue::copy — Retorna uma cópia rasa da fila

Descrição

public Ds\PriorityQueue::copy(): Ds\PriorityQueue

Retorna uma cópia rasa da fila.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma cópia rasa da fila.

Exemplos

Exemplo #1 Exemplo de Ds\PriorityQueue::copy()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a", 5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->copy());
?>

O exemplo acima produzirá algo semelhante a:

Ds\PriorityQueue Object
(
    [0] => b
    [1] => c
    [2] => a
)


Retorna o número de valores na fila

  • « Ds\PriorityQueue::copy
  • Ds\PriorityQueue::isEmpty »
  • PHP Manual
  • Ds\PriorityQueue
  • Retorna o número de valores na fila

Ds\PriorityQueue::count

(PECL ds >= 1.0.0)

Ds\PriorityQueue::count — Retorna o número de valores na fila

Descrição

Veja Countable::count()


Retorna se a fila está vazia

  • « Ds\PriorityQueue::count
  • Ds\PriorityQueue::jsonSerialize »
  • PHP Manual
  • Ds\PriorityQueue
  • Retorna se a fila está vazia

Ds\PriorityQueue::isEmpty

(PECL ds >= 1.0.0)

Ds\PriorityQueue::isEmpty — Retorna se a fila está vazia

Descrição

public Ds\PriorityQueue::isEmpty(): bool

Retorna se a fila está vazia.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a fila estiver vazia, false caso contrário.

Exemplos

Exemplo #1 Exemplo de Ds\PriorityQueue::isEmpty()

<?php
$a = new \Ds\PriorityQueue();
$b = new \Ds\PriorityQueue();

$a->push("a", 5);
$a->push("b", 15);
$a->push("c", 10);

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)


Retorna uma representação que pode ser convertida para JSON

  • « Ds\PriorityQueue::isEmpty
  • Ds\PriorityQueue::peek »
  • PHP Manual
  • Ds\PriorityQueue
  • Retorna uma representação que pode ser convertida para JSON

Ds\PriorityQueue::jsonSerialize

(PECL ds >= 1.0.0)

Ds\PriorityQueue::jsonSerialize — Retorna uma representação que pode ser convertida para JSON

Descrição

Veja JsonSerializable::jsonSerialize()

Nota:

Normalmente, não deve ser necessário chamar este método diretamente.


Retorna o valor na frente da fila

  • « Ds\PriorityQueue::jsonSerialize
  • Ds\PriorityQueue::pop »
  • PHP Manual
  • Ds\PriorityQueue
  • Retorna o valor na frente da fila

Ds\PriorityQueue::peek

(PECL ds >= 1.0.0)

Ds\PriorityQueue::peek — Retorna o valor na frente da fila

Descrição

public Ds\PriorityQueue::peek(): mixed

Retorna o valor na frente da fila, mas não o remove.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor na frente da fila.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\PriorityQueue::peek()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a", 5);
$queue->push("b", 15);
$queue->push("c", 10);

var_dump($queue->peek());
?>

O exemplo acima produzirá algo semelhante a:

string(1) "b"


Remove e retorna o valor com a maior prioridade

  • « Ds\PriorityQueue::peek
  • Ds\PriorityQueue::push »
  • PHP Manual
  • Ds\PriorityQueue
  • Remove e retorna o valor com a maior prioridade

Ds\PriorityQueue::pop

(PECL ds >= 1.0.0)

Ds\PriorityQueue::pop — Remove e retorna o valor com a maior prioridade

Descrição

public Ds\PriorityQueue::pop(): mixed

Remove e retorna o valor na frente da fila, ou seja, o valor com a maior prioridade.

Nota:

Valores com igual prioridade seguem a lógica FIFO (primeiro a entrar, primeiro a sair).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor removido que estava na frente da fila.

Erros/Exceções

UnderflowException se vazio.

Exemplos

Exemplo #1 Exemplo de Ds\PriorityQueue::pop()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a", 5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->pop());
print_r($queue->pop());
print_r($queue->pop());
?>

O exemplo acima produzirá algo semelhante a:

string(1) "a"
string(1) "b"
string(1) "c"


Adiciona valores na fila

  • « Ds\PriorityQueue::pop
  • Ds\PriorityQueue::toArray »
  • PHP Manual
  • Ds\PriorityQueue
  • Adiciona valores na fila

Ds\PriorityQueue::push

(PECL ds >= 1.0.0)

Ds\PriorityQueue::push — Adiciona valores na fila

Descrição

public Ds\PriorityQueue::push(mixed $value, int $priority): void

Adiciona um valor value com uma dada prioridade priority na fila.

Parâmetros

value

O valor a ser adicionado na fila.

priority

A prioridade associada ao valor.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de Ds\PriorityQueue::push()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a", 5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->pop());
print_r($queue->pop());
print_r($queue->pop());
?>

O exemplo acima produzirá algo semelhante a:

string(1) "b"
string(1) "c"
string(1) "a"


Converte a fila para um array

  • « Ds\PriorityQueue::push
  • var_representation »
  • PHP Manual
  • Ds\PriorityQueue
  • Converte a fila para um array

Ds\PriorityQueue::toArray

(PECL ds >= 1.0.0)

Ds\PriorityQueue::toArray — Converte a fila para um array

Descrição

public Ds\PriorityQueue::toArray(): array

Converte a fila para um array.

Nota:

Este método não é destrutivo.

Nota:

A conversão direta para um array ainda não é suportada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array contendo todos os valores na mesma ordem que a fila.

Exemplos

Exemplo #1 Exemplo de Ds\PriorityQueue::toArray()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a", 5);
$queue->push("b", 15);
$queue->push("c", 10);

var_dump($queue->toArray());
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  string(1) "b"
  [1]=>
  string(1) "c"
  [2]=>
  string(1) "a"
}


var_representation

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
  • Constantes pré-definidas
  • var_representation Funções
    • var_representation — Returns a short, readable, parsable string representation of a variable


Introdução

The var_representation extension provides a compact alternative to var_export() that properly escapes control characters.


  • « Introdução
  • Dependências »
  • PHP Manual
  • var_representation
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/var_representation.

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

VAR_REPRESENTATION_SINGLE_LINE (int)
var_representation() flag indicating that newlines should not be used for whitespace in variable representations.
VAR_REPRESENTATION_UNESCAPED (int)
var_representation() flag indicating that strings should be encoded as single quoted strings with unescaped control characters.


var_representation Funções

Índice

  • var_representation — Returns a short, readable, parsable string representation of a variable


Returns a short, readable, parsable string representation of a variable

  • « var_representation Funções
  • Outros Serviços »
  • PHP Manual
  • var_representation Funções
  • Returns a short, readable, parsable string representation of a variable

var_representation

(PECL var_representation >= 0.1.0)

var_representation — Returns a short, readable, parsable string representation of a variable

Descrição

var_representation(mixed $value, int $flags = 0): string

var_representation() (from the var_representation PECL) returns a string with structured information about the given variable. It is similar to var_export() with differences in indentation, string escaping, and array representations.

Parâmetros

value

The variable to generate a representation of.

flags

Bitmask consisting of VAR_REPRESENTATION_SINGLE_LINE, VAR_REPRESENTATION_UNESCAPED. The behaviour of these constants is described on the var_representation constants page.

Valor Retornado

Returns the variable representation.

Exemplos

Exemplo #1 var_representation() Examples

<?php
$a = [1, 2, ['key' => 'value']];
echo var_representation($a), "\n";
echo var_representation($a, VAR_REPRESENTATION_SINGLE_LINE), "\n";
?>

O exemplo acima produzirá:

[
  1,
  2,
  [
    'key' => 'value',
  ],
]
[1, 2, ['key' => 'value']]

Exemplo #2 Escaping control characters

<?php
echo var_representation("Content-Length: 123\r\n");

O exemplo acima produzirá:

"Content-Length: 123\r\n"

Exemplo #3 Exporting stdClass

<?php
$person = new stdClass;
$person->name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';

echo var_representation($person);

O exemplo acima produzirá:

(object) [
  'name' => 'ElePHPant ElePHPantsdotter',
  'website' => 'https://php.net/elephpant.php',
]

Exemplo #4 Exporting classes

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
echo var_representation($a);
?>

O exemplo acima produzirá:

\A::__set_state([
  'var' => 5,
])

Exemplo #5 Using __set_state()

<?php
class A
{
public $var1;
public $var2;

public static function __set_state($an_array)
{
$obj = new A;
$obj->var1 = $an_array['var1'];
$obj->var2 = $an_array['var2'];
return $obj;
}
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_representation($a) . ';'); // $b = \A::__set_state([
// 'var1' => 5,
// 'var2' => 'foo',
// ]);
var_dump($b);
?>

O exemplo acima produzirá:

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Veja Também

  • var_export() - Mostra ou retorna uma representação string analisável de uma variável


Outros Serviços

  • cURL — Biblioteca Client URL
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções cURL
    • CurlHandle — A classe CurlHandle
    • CurlMultiHandle — A classe CurlMultiHandle
    • CurlShareHandle — A classe CurlShareHandle
    • CURLFile — A classe CURLFile
    • CURLStringFile — A class CURLStringFile
  • Event
    • Introdução
    • Instalação/Configuração
    • Exemplos
    • Event flags
    • About event persistence
    • Event callbacks
    • Constructing signal events
    • Event — The Event class
    • EventBase — The EventBase class
    • EventBuffer — The EventBuffer class
    • EventBufferEvent — The EventBufferEvent class
    • About buffer event callbacks
    • EventConfig — The EventConfig class
    • EventDnsBase — The EventDnsBase class
    • EventHttp — The EventHttp class
    • EventHttpConnection — The EventHttpConnection class
    • EventHttpRequest — The EventHttpRequest class
    • EventListener — The EventListener class
    • EventSslContext — The EventSslContext class
    • EventUtil — The EventUtil class
    • EventException — The EventException class
  • FTP
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções da extensão FTP
    • FTP\Connection — The FTP\Connection class
  • Gearman
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • GearmanClient — The GearmanClient class
    • GearmanJob — The GearmanJob class
    • GearmanTask — The GearmanTask class
    • GearmanWorker — The GearmanWorker class
    • GearmanException — The GearmanException class
  • LDAP — Protocolo Leve de Acesso ao Diretório
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Usando as chamadas LDAP do PHP
    • Controles LDAP
    • Exemplos
    • Funções do LDAP
    • LDAP\Connection — A classe LDAP\Connection
    • LDAP\Result — A classe LDAP\Result
    • LDAP\ResultEntry — A classe LDAP\ResultEntry
  • Memcache
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Memcache — A classe Memcache
    • Memcache Funções
  • Memcached
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Prazos de Expiração
    • Callbacks
    • Suporte a sessões
    • Memcached — A classe Memcached
    • MemcachedException — A classe MemcachedException
  • mqseries
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • mqseries Funções
  • Network
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções da Network
  • RRD — RRDtool
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • RRD Funções
    • RRDCreator — The RRDCreator class
    • RRDGraph — The RRDGraph class
    • RRDUpdater — The RRDUpdater class
  • ScoutAPM
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Scoutapm Funções
  • SNMP
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções SNMP
    • SNMP — The SNMP class
    • SNMPException — The SNMPException class
  • Sockets
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Socket Errors
    • Funções para Socket
    • Socket — The Socket class
    • AddressInfo — The AddressInfo class
  • SSH2 — Secure Shell2
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • SSH2 Funções
  • Stomp — Stomp Client
    • Introdução
    • Instalação/Configuração
    • Exemplos
    • Stomp Funções
    • Stomp — The Stomp class
    • StompFrame — The StompFrame class
    • StompException — The StompException class
  • SVM — Support Vector Machine
    • Introdução
    • Instalação/Configuração
    • Exemplos
    • SVM — The SVM class
    • SVMModel — The SVMModel class
  • SVN — Subversion
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • SVN Funções
  • TCP — TCP Wrappers
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções de TCP
  • Varnish
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • VarnishAdmin — The VarnishAdmin class
    • VarnishStat — The VarnishStat class
    • VarnishLog — The VarnishLog class
  • YAZ
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • YAZ Funções
  • API de Mensagens 0MQ — ZMQ
    • Introdução
    • Instalação/Configuração
    • ZMQ — A classe ZMQ
    • ZMQContext — A classe ZMQContext
    • ZMQSocket — A classe ZMQSocket
    • ZMQPoll — A classe ZMQPoll
    • ZMQDevice — A classe ZMQDevice
  • ZooKeeper
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • ZooKeeper Funções
    • Zookeeper — The Zookeeper class
    • ZookeeperConfig — The ZookeeperConfig class
    • ZookeeperException — The ZookeeperException class
    • ZookeeperAuthenticationException — The ZookeeperAuthenticationException class
    • ZookeeperConnectionException — The ZookeeperConnectionException class
    • ZookeeperMarshallingException — The ZookeeperMarshallingException class
    • ZookeeperNoNodeException — The ZookeeperNoNodeException class
    • ZookeeperOperationTimeoutException — The ZookeeperOperationTimeoutException class
    • ZookeeperSessionException — The ZookeeperSessionException class


Biblioteca Client URL

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Exemplo básico de cURL
  • Funções cURL
    • curl_close — Fecha uma sessão cURL
    • curl_copy_handle — Copia um controlador cURL com todas as suas opções
    • curl_errno — Retorna o número do último erro
    • curl_error — Retorna uma string contendo o último erro da sessão atual
    • curl_escape — Codifica uma string para o formato URL
    • curl_exec — Executa uma sessão cURL
    • curl_getinfo — Obtém informação sobre uma transferência específica
    • curl_init — Inicializar uma sessão cURL
    • curl_multi_add_handle — Adiciona um manipulador cURL comum a um manipulador cURL múltiplo
    • curl_multi_close — Fechar um conjunto de alças cURL
    • curl_multi_errno — Retorna o último número de erro de curl_multi
    • curl_multi_exec — Executa as subconexões do manipulador cURL atual
    • curl_multi_getcontent — Retorna o conteúdo de um manipulador cURL se CURLOPT_RETURNTRANSFER estiver definido
    • curl_multi_info_read — Obtém informação sobre as transferências atuais
    • curl_multi_init — Retorna um multi-manipulador cURL
    • curl_multi_remove_handle — Remove um manipulador de um conjunto de manipuladores cURL
    • curl_multi_select — Aguarda por atividade em qualquer multi-conexão cURL
    • curl_multi_setopt — Define múltiplas opções para cURL
    • curl_multi_strerror — Retorna uma string que descreve o código de erro
    • curl_pause — Pausa ou continua uma conexão
    • curl_reset — Reseta todas as opções de um controlador de sessão libcurl
    • curl_setopt_array — Define múltiplas opções para uma transferência cURL
    • curl_setopt — Define uma opção para uma transferência cURL
    • curl_share_close — Fecha um controlador de compartilhamento de cURL
    • curl_share_errno — Retorna o último número de erro do curl compartilhado
    • curl_share_init — Inicializa um controlador de compartilhamento de cURL
    • curl_share_setopt — Configura uma opção para um controlador de compartilhamento de cURL
    • curl_share_strerror — Retorna uma string descrevendo o código de erro fornecid
    • curl_strerror — Retorna uma string que descreve o código de erro informado
    • curl_unescape — Decodifica a parte codificada da URL fornecida
    • curl_upkeep — Executa qualquer verificação de manutenção de conexão
    • curl_version — Obtém informação de versão do cURL
  • CurlHandle — A classe CurlHandle
  • CurlMultiHandle — A classe CurlMultiHandle
  • CurlShareHandle — A classe CurlShareHandle
  • CURLFile — A classe CURLFile
    • CURLFile::__construct — Criar um objeto CURLFile
    • CURLFile::getFilename — Obtém o nome do arquivo
    • CURLFile::getMimeType — Obtém o tipo mídia
    • CURLFile::getPostFilename — Obtém o nome do arquivo para requisição POST
    • CURLFile::setMimeType — Define o tipo de mídia
    • CURLFile::setPostFilename — Define o nome do arquivo para a requisição POST
  • CURLStringFile — A class CURLStringFile
    • CURLStringFile::__construct — Crie um objeto CURLStringFile


Introdução

O PHP suporta libcurl, uma biblioteca criada por Daniel Stenberg, que permite conexão e comunicação com diferentes tipos de servidores usando diferentes tipos de protocolos. libcurl atualmente suporta os protocolos http, https, ftp, gopher, telnet, dict, file e ldap. libcurl também suporta certificados HTTPS, HTTP POST, HTTP PUT, envio via FTP (isto também pode ser feito com a extensão ftp do PHP), envio HTTP por formulário, proxies, cookies, e autenticação com usuário e senha.


Dependências

Para utilizar as funções cURL no PHP, é necessário instalar o pacote » libcurl. O PHP requer libcurl versão 7.10.5 ou superior. A partir do PHP 7.3.0, a versão 7.15.5 ou superior é requerida. A partir do PHP 8.0.0, a versão 7.29.0 ou superior é requerida.


Instalação

Para usar o suporte a cURL no PHP, é necessário compilar o PHP com a opção --with-curl[=DIR] onde DIR é o diretório que contém os diretórios lib e include. No diretório include deve haver uma pasta chamada curl que deve conter os arquivos easy.h e curl.h. Deve haver um arquivo chamado libcurl.a localizado no diretório lib.

Nota: Nota aos usuários de Win32
Para ativar este módulo em ambiente Windows, libeay32.dll e ssleay32.dll ou a partir do OpenSSL 1.1 libcrypto-*.dll e libssl-*.dll, precisam estar presentes na variável de ambiente PATH. O arquivo libssh2.dll também precisa estar em PATH. Você não precisa da libcurl.dll do site do cURL.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração cURL
Nome | Padrão | Modificável | Registro de Alterações
curl.cainfo | NULL | INI_SYSTEM |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

curl.cainfo string

Um valor padrão para a opção CURLOPT_CAINFO. É necessário que seja um caminho absoluto.


Tipos de Recurso

Antes do PHP 8.0.0, esta extensão definia três tipos de recursos: o controlador curl, o controlador curl_multi e o controlador curl_share.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Descrições e usos para estas constantes estão documentados nas funções curl_setopt(), curl_multi_setopt() e curl_getinfo().

CURLOPT_AUTOREFERER (int)
CURLOPT_COOKIESESSION (int)
CURLOPT_DOH_URL (int)
Fornece a URL de DNS-over-HTTPS. Disponível a partir do PHP 8.1.0 e cURL 7.62.0.
CURLOPT_DOH_SSL_VERIFYHOST (int)
Compara os campos de nome do certificado SSL do servidor DNS-over-HTTPS com o nome do servidor. Disponível a partir do PHP 8.2.0 e cURL 7.76.0.
CURLOPT_DOH_SSL_VERIFYPEER (int)
Verifica a autenticidade do certificado SSL do servidor DNS-over-HTTPS. Disponível a partir do PHP 8.2.0 e cURL 7.76.0.
CURLOPT_DOH_SSL_VERIFYSTATUS (int)
Solicia ao cURL que verifique o estado do certificado do servidor DNS-over-HTTPS usando a extensão TLS "Certificate Status Request" ("grampeador" OCSP). Disponível a partir do PHP 8.2.0 e cURL 7.76.0.
CURLOPT_DNS_USE_GLOBAL_CACHE (int)
CURLOPT_DNS_CACHE_TIMEOUT (int)
CURLOPT_FTP_SSL (int)
CURLFTP_CREATE_DIR (int)
Disponível a partir do PHP 7.0.7 e cURL 7.19.3
CURLFTP_CREATE_DIR_NONE (int)
Disponível a partir do PHP 7.0.7 e cURL 7.19.3
CURLFTP_CREATE_DIR_RETRY (int)
Disponível a partir do PHP 7.0.7 e cURL 7.19.3
CURLFTPSSL_TRY (int)
CURLFTPSSL_ALL (int)
CURLFTPSSL_CONTROL (int)
CURLFTPSSL_NONE (int)
CURLFTPMETHOD_DEFAULT (int)
Disponível a partir do PHP 8.2.0 e cURL 7.15.3.
CURLOPT_PRIVATE (int)
CURLOPT_FTPSSLAUTH (int)
CURLOPT_PORT (int)
CURLOPT_FILE (int)
CURLOPT_INFILE (int)
CURLOPT_INFILESIZE (int)
CURLOPT_ISSUERCERT_BLOB (int)
Blob de memória do emissor do certificado SSL. Disponível a partir do PHP 8.1.0 e cURL 7.71.0.
CURLOPT_URL (int)
CURLOPT_PROXY (int)
CURLOPT_PROXY_ISSUERCERT (int)
Nome do arquivo do emissor proxy do certificado SSL. Disponível a partir do PHP 8.1.0 e cURL 7.71.0.
CURLOPT_PROXY_ISSUERCERT_BLOB (int)
Blob de memória do emissor proxy do certificado SSL. Disponível a partir do PHP 8.1.0 e cURL 7.71.0.
CURLOPT_PROXY_SSLCERT_BLOB (int)
Blob de memória do proxy do certificado SSL cliente. Disponível a partir do PHP 8.1.0 e cURL 7.71.0.
CURLOPT_PROXY_SSLKEY_BLOB (int)
Blob de memória da chave privada do certificado proxy. Disponível a partir do PHP 8.1.0 e cURL 7.71.0.
CURLOPT_VERBOSE (int)
CURLOPT_ALTSVC (int)
Disponível a partir do PHP 8.2.0 e cURL 7.64.1.
CURLOPT_ALTSVC_CTRL (int)
Disponível a partir do PHP 8.2.0 e cURL 7.64.1.
CURLALTSVC_H1 (int)
Disponível a partir do PHP 8.2.0 e cURL 7.64.1.
CURLALTSVC_H2 (int)
Disponível a partir do PHP 8.2.0 e cURL 7.64.1.
CURLALTSVC_H3 (int)
Disponível a partir do PHP 8.2.0 e cURL 7.64.1.
CURLALTSVC_READONLYFILE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.64.1.
CURLOPT_HEADER (int)
CURLOPT_HTTPHEADER (int)
CURLOPT_NOPROGRESS (int)
CURLOPT_NOBODY (int)
CURLOPT_FAILONERROR (int)
CURLOPT_UPLOAD (int)
CURLOPT_UPLOAD_BUFFERSIZE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.62.0.
CURLOPT_POST (int)
CURLOPT_FTPLISTONLY (int)
CURLOPT_FTPAPPEND (int)
CURLOPT_FTP_CREATE_MISSING_DIRS (int)
CURLOPT_NETRC (int)
CURLOPT_FOLLOWLOCATION (int)
Esta constante não está disponível quando a diretiva open_basedir estiver ativa.
CURLOPT_FTPASCII (int)
CURLOPT_PUT (int)
CURLOPT_MIME_OPTIONS (int)
Disponível a partir do PHP 8.3.0 e cURL 7.81.0
CURLOPT_MUTE (int)
Removida desde o cURL 7.15.5; utilize CURLOPT_RETURNTRANSFER.
CURLOPT_USERPWD (int)
CURLOPT_PROXYUSERPWD (int)
CURLOPT_RANGE (int)
CURLOPT_TIMEOUT (int)
CURLOPT_TIMEOUT_MS (int)
CURLOPT_TCP_NODELAY (int)
CURLOPT_POSTFIELDS (int)
CURLOPT_PROGRESSFUNCTION (int)
CURLOPT_REFERER (int)
CURLOPT_USERAGENT (int)
CURLOPT_FTPPORT (int)
CURLOPT_FTP_USE_EPSV (int)
CURLOPT_LOW_SPEED_LIMIT (int)
CURLOPT_LOW_SPEED_TIME (int)
CURLOPT_RESUME_FROM (int)
CURLOPT_COOKIE (int)
CURLOPT_COOKIELIST (int)
Disponível desde o cURL 7.14.1
CURLOPT_SSLCERT (int)
CURLOPT_SSLCERT_BLOB (int)
Blob de memória do certificado SSL cliente. Disponível a partir do PHP 8.1.0 e cURL 7.71.0.
CURLOPT_SSLCERTPASSWD (int)
CURLOPT_SSLKEY_BLOB (int)
Blob de memória da chave privada do certificado cliente. Disponível a partir do PHP 8.1.0 e cURL 7.71.0.
CURLOPT_WRITEHEADER (int)
CURLOPT_WS_OPTIONS (int)
Disponível a partir do PHP 8.3.0 e cURL 7.86.0
CURLOPT_SSL_VERIFYHOST (int)
CURLOPT_COOKIEFILE (int)
CURLOPT_SSLVERSION (int)
CURL_SSLVERSION_DEFAULT (int)
CURL_SSLVERSION_TLSv1 (int)
CURL_SSLVERSION_SSLv2 (int)
CURL_SSLVERSION_SSLv3 (int)
CURL_SSLVERSION_TLSv1_0 (int)
CURL_SSLVERSION_TLSv1_1 (int)
CURL_SSLVERSION_TLSv1_2 (int)
CURL_SSLVERSION_TLSv1_3 (int)
CURLOPT_TIMECONDITION (int)
CURLOPT_TIMEVALUE (int)
CURLOPT_CUSTOMREQUEST (int)
CURLOPT_STDERR (int)
CURLOPT_TRANSFERTEXT (int)
CURLOPT_RETURNTRANSFER (int)
CURLOPT_QUICK_EXIT (int)
Disponível a partir do PHP 8.3.0 e cURL 7.87.0
CURLOPT_QUOTE (int)
CURLOPT_POSTQUOTE (int)
CURLOPT_INTERFACE (int)
CURLOPT_KRB4LEVEL (int)
CURLOPT_HTTPPROXYTUNNEL (int)
CURLOPT_FILETIME (int)
CURLOPT_WRITEFUNCTION (int)
CURLOPT_READFUNCTION (int)
CURLOPT_PASSWDFUNCTION (int)
Removido a partir do PHP 7.3.0.
CURLOPT_HEADERFUNCTION (int)
CURLOPT_MAXAGE_CONN (int)
Disponível a partir do PHP 8.2.0 e cURL 7.65.0.
CURLOPT_MAXFILESIZE_LARGE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.11.0.
CURLOPT_MAXLIFETIME_CONN (int)
Disponível a partir do PHP 8.2.0 e cURL 7.80.0.
CURLOPT_MAXREDIRS (int)
CURLOPT_MAXCONNECTS (int)
CURLOPT_FRESH_CONNECT (int)
CURLOPT_FORBID_REUSE (int)
CURLOPT_RANDOM_FILE (int)
CURLOPT_EGDSOCKET (int)
CURLOPT_CONNECTTIMEOUT (int)
CURLOPT_CONNECTTIMEOUT_MS (int)
CURLOPT_SSL_VERIFYPEER (int)
CURLOPT_CA_CACHE_TIMEOUT (int)
Disponível a partir do PHP 8.3.0 e cURL 7.87.0
CURLOPT_CAINFO (int)
CURLOPT_CAINFO_BLOB (int)
Disponível a partir do PHP 8.2.0 e cURL 7.77.0.
CURLOPT_CAPATH (int)
CURLOPT_COOKIEJAR (int)
CURLOPT_SSL_CIPHER_LIST (int)
CURLOPT_SSL_EC_CURVES (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0.
CURLOPT_BINARYTRANSFER (int)
CURLOPT_NOSIGNAL (int)
CURLOPT_PROXYTYPE (int)
Disponível a partir do cURL 7.10.
CURLOPT_BUFFERSIZE (int)
CURLOPT_HTTPGET (int)
CURLOPT_HTTP_VERSION (int)
CURLOPT_HSTS (int)
Disponível a partir do PHP 8.2.0 e cURL 7.74.0
CURLOPT_HSTS_CTRL (int)
Disponível a partir do PHP 8.2.0 e cURL 7.74.0
CURLHSTS_ENABLE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.74.0
CURLHSTS_READONLYFILE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.74.0
CURLOPT_SSLKEY (int)
CURLOPT_SSLKEYTYPE (int)
CURLOPT_SSLKEYPASSWD (int)
CURLOPT_SSLENGINE (int)
CURLOPT_SSLENGINE_DEFAULT (int)
CURLOPT_SSLCERTTYPE (int)
CURLOPT_CRLF (int)
CURLOPT_ENCODING (int)
CURLOPT_PROXYPORT (int)
CURLOPT_UNRESTRICTED_AUTH (int)
CURLOPT_FTP_USE_EPRT (int)
CURLOPT_HTTP200ALIASES (int)
CURLOPT_HTTPAUTH (int)
CURLOPT_AWS_SIGV4 (int)
Disponível a partir do PHP 8.2.0 e cURL 7.75.0
CURLAUTH_BASIC (int)
CURLAUTH_DIGEST (int)
CURLAUTH_GSSNEGOTIATE (int)
CURLAUTH_NEGOTIATE (int)
Disponível a partir do PHP 7.0.7 e cURL 7.38.0.
CURLAUTH_NTLM (int)
CURLAUTH_NTLM_WB (int)
Disponível a partir do PHP 7.0.7 e cURL 7.22.0
CURLAUTH_ANY (int)
CURLAUTH_ANYSAFE (int)
CURLAUTH_AWS_SIGV4 (int)
Disponível a partir do PHP 8.2.0 e cURL 7.75.0.
CURLOPT_PROXYAUTH (int)
CURLOPT_MAIL_RCPT_ALLLOWFAILS (int)
Disponível a partir do PHP 8.2.0 e cURL 7.69.0
CURLOPT_UPKEEP_INTERVAL_MS (int)
Disponível a partir do PHP 8.2.0 e cURL 7.62.0
CURLOPT_MAX_RECV_SPEED_LARGE (int)
Disponível a partir de cURL 7.15.5
CURLOPT_MAX_SEND_SPEED_LARGE (int)
Disponível a partir de cURL 7.15.5
CURLOPT_HEADEROPT (int)
Disponível a partir do PHP 7.0.7 e cURL 7.37.0
CURLOPT_PROXYHEADER (int)
Disponível a partir do PHP 7.0.7 e cURL 7.37.0
CURLINFO_PRIVATE (int)
CURLINFO_EFFECTIVE_URL (int)
CURLINFO_HTTP_CODE (int)
A partir de cURL 7.10.8 este é um apelido legado de CURLINFO_RESPONSE_CODE
CURLINFO_PROXY_ERROR (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_BAD_ADDRESS_TYPE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_BAD_VERSION (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_CLOSED (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_GSSAPI (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_GSSAPI_PERMSG (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_GSSAPI_PROTECTION (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_IDENTD_DIFFER (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_IDENTD (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_LONG_HOSTNAME (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_LONG_PASSWD (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_LONG_USER (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_NO_AUTH (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_OK (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_RECV_ADDRESS (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_RECV_AUTH (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_RECV_CONNECT (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_RECV_REQACK (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_REPLY_COMMAND_NOT_SUPPORTED (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_REPLY_CONNECTION_REFUSED (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_REPLY_GENERAL_SERVER_FAILURE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_REPLY_HOST_UNREACHABLE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_REPLY_NETWORK_UNREACHABLE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_REPLY_NOT_ALLOWED (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_REPLY_TTL_EXPIRED (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_REPLY_UNASSIGNED (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_REQUEST_FAILED (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_RESOLVE_HOST (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_SEND_AUTH (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_SEND_CONNECT (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_SEND_REQUEST (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_UNKNOWN_FAIL (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_UNKNOWN_MODE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLPX_USER_REJECTED (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLINFO_REFERER (int)
Disponível a partir do PHP 8.2.0 e cURL 7.76.0
CURLINFO_RESPONSE_CODE (int)
Disponível a partir de cURL 7.10.8
CURLINFO_RETRY_AFTER (int)
Disponível a partir do PHP 8.2.0 e cURL 7.66.0
CURLINFO_HEADER_OUT (int)
CURLINFO_HEADER_SIZE (int)
CURLINFO_REQUEST_SIZE (int)
CURLINFO_TOTAL_TIME (int)
CURLINFO_NAMELOOKUP_TIME (int)
CURLINFO_CAINFO (int)
Disponível a partir do PHP 8.3.0 e cURL 7.84.0
CURLINFO_CAPATH (int)
Disponível a partir do PHP 8.3.0 e cURL 7.84.0
CURLINFO_CONNECT_TIME (int)
CURLINFO_PRETRANSFER_TIME (int)
CURLINFO_SIZE_UPLOAD (int)
CURLINFO_SIZE_DOWNLOAD (int)
CURLINFO_SPEED_DOWNLOAD (int)
CURLINFO_SPEED_UPLOAD (int)
CURLINFO_FILETIME (int)
CURLINFO_SSL_VERIFYRESULT (int)
CURLINFO_CONTENT_LENGTH_DOWNLOAD (int)
CURLINFO_CONTENT_LENGTH_UPLOAD (int)
CURLINFO_STARTTRANSFER_TIME (int)
CURLINFO_CONTENT_TYPE (int)
CURLINFO_REDIRECT_TIME (int)
CURLINFO_REDIRECT_COUNT (int)
CURLINFO_REDIRECT_URL (int)
CURLINFO_PRIMARY_IP (int)
CURLINFO_PRIMARY_PORT (int)
CURLINFO_LOCAL_IP (int)
CURLINFO_LOCAL_PORT (int)
CURL_PUSH_OK (int)
Disponível a partir do PHP 7.1.0 e cURL 7.44.0
CURL_PUSH_DENY (int)
Disponível a partir do PHP 7.1.0 e cURL 7.44.0
CURL_REDIR_POST_301 (int)
Disponível a partir do PHP 7.0.7 e cURL 7.18.2
CURL_REDIR_POST_302 (int)
Disponível a partir do PHP 7.0.7 e cURL 7.18.2
CURL_REDIR_POST_303 (int)
Disponível a partir do PHP 7.0.7 e cURL 7.25.1
CURL_REDIR_POST_ALL (int)
Disponível a partir do PHP 7.0.7 e cURL 7.18.2
CURL_TIMECOND_NONE (int)
CURL_TIMECOND_IFMODSINCE (int)
CURL_TIMECOND_IFUNMODSINCE (int)
CURL_TIMECOND_LASTMOD (int)
CURL_VERSION_ALTSVC (int)
Disponível a partir do PHP 7.3.6 e cURL 7.64.1
CURL_VERSION_ASYNCHDNS (int)
Resolução de DNS assíncrona. Disponível a partir do PHP 7.3.0 e cURL 7.10.7
CURL_VERSION_BROTLI (int)
Disponível a partir do PHP 7.3.0 e cURL 7.57.0
CURL_VERSION_CONV (int)
Suporte a conversão de caracteres. Disponível a partir do PHP 7.3.0 e cURL 7.15.4
CURL_VERSION_CURLDEBUG (int)
Rastreamento de memória para debug suportado. Disponível a partir do PHP 7.3.6 e cURL 7.19.6
CURL_VERSION_DEBUG (int)
Compilado com suporte de debug. Disponível a partir do PHP 7.3.0 e cURL 7.10.6
CURL_VERSION_GSASL (int)
Disponível a partir do PHP 8.2.0 e cURL 7.76.0
CURL_VERSION_GSSAPI (int)
Compilado com a biblioteca GSS-API. Disponível a partir do PHP 7.3.0 e cURL 7.38.0
CURL_VERSION_GSSNEGOTIATE (int)
Negociação auth é suportada. Disponível a partir do PHP 7.3.0 e cURL 7.10.6 (descontinuado a partir do cURL 7.38.0)
CURL_VERSION_HSTS (int)
Disponível a partir do PHP 8.2.0 e cURL 7.74.0
CURL_VERSION_IDN (int)
Internationized Domain Names é suportado. Disponível a partir do PHP 7.3.0 e cURL 7.12.0
CURL_VERSION_MULTI_SSL (int)
Disponível a partir do PHP 7.3.0 e cURL 7.56.0
CURL_VERSION_NTLM (int)
NTLM auth é suportado. Disponível a partir do PHP 7.3.0 e cURL 7.10.6
CURL_VERSION_NTLM_WB (int)
Delegação NTLM para winbind helper é suportado. Disponível a partir do PHP 7.3.0 e cURL 7.22.0
CURL_VERSION_IPV6 (int)
IPv6 ativado.
CURL_VERSION_KERBEROS4 (int)
Autenticação Kerberos V4 auth é suportada.
CURL_VERSION_KERBEROS5 (int)
Autenticação Kerberos V5 é suportada. Disponível a partir do PHP 7.0.7 e cURL 7.40.0
CURL_VERSION_HTTP2 (int)
Suporte ao HTTP2 compilado. Disponível a partir do PHP 5.5.24 e 5.6.8 e cURL 7.33.0
CURL_VERSION_HTTP3 (int)
Disponível a partir do PHP 8.2.0 e cURL 7.66.0
CURL_VERSION_LARGEFILE (int)
Suporte a arquivos maiores que 2GB. Disponível desde o cURL 7.33.0
CURL_VERSION_PSL (int)
Mozilla's Public Suffix List, utilizado para verificação de cookies de domínio. Disponível a partir do PHP 7.3.6 e cURL 7.47.0
CURL_VERSION_SPNEGO (int)
Autenticação SPNEGO é suportado. Disponível a partir do PHP 7.3.0 e cURL 7.10.8
CURL_VERSION_SSPI (int)
Compilado com Windows SSPI. Disponível a partir do PHP 7.3.0 e cURL 7.13.2
CURL_VERSION_SSL (int)
Opções SSL options disponíveis.
CURL_VERSION_TLSAUTH_SRP (int)
Autenticação TLS-SRP auth é suportado. Disponível a partir do PHP 7.3.0 e cURL 7.21.4
CURL_VERSION_UNICODE (int)
Disponível a partir do PHP 8.2.0 e cURL 7.72.0
CURL_VERSION_UNIX_SOCKETS (int)
Sockets Unix domain suportados. Disponível a partir do PHP 7.0.7 e cURL 7.40.0
CURL_VERSION_ZSTD (int)
Disponível a partir do PHP 8.2.0 e cURL 7.72.0
CURL_VERSION_LIBZ (int)
Recursos libz estão presentes.
CURLVERSION_NOW (int)
CURLE_OK (int)
CURLE_UNSUPPORTED_PROTOCOL (int)
CURLE_FAILED_INIT (int)
CURLE_URL_MALFORMAT (int)
CURLE_URL_MALFORMAT_USER (int)
CURLE_COULDNT_RESOLVE_PROXY (int)
CURLE_COULDNT_RESOLVE_HOST (int)
CURLE_COULDNT_CONNECT (int)
CURLE_FTP_WEIRD_SERVER_REPLY (int)
CURLE_FTP_ACCESS_DENIED (int)
CURLE_FTP_USER_PASSWORD_INCORRECT (int)
CURLE_FTP_WEIRD_PASS_REPLY (int)
CURLE_FTP_WEIRD_USER_REPLY (int)
CURLE_FTP_WEIRD_PASV_REPLY (int)
CURLE_FTP_WEIRD_227_FORMAT (int)
CURLE_FTP_CANT_GET_HOST (int)
CURLE_FTP_CANT_RECONNECT (int)
CURLE_FTP_COULDNT_SET_BINARY (int)
CURLE_PARTIAL_FILE (int)
CURLE_PROXY (int)
Disponível a partir do PHP 8.2.0 e cURL 7.73.0
CURLE_FTP_COULDNT_RETR_FILE (int)
CURLE_FTP_WRITE_ERROR (int)
CURLE_FTP_QUOTE_ERROR (int)
CURLE_HTTP_NOT_FOUND (int)
CURLE_WRITE_ERROR (int)
CURLE_MALFORMAT_USER (int)
CURLE_FTP_COULDNT_STOR_FILE (int)
CURLE_READ_ERROR (int)
CURLE_OUT_OF_MEMORY (int)
CURLE_OPERATION_TIMEOUTED (int)
CURLE_FTP_COULDNT_SET_ASCII (int)
CURLE_FTP_PORT_FAILED (int)
CURLE_FTP_COULDNT_USE_REST (int)
CURLE_FTP_COULDNT_GET_SIZE (int)
CURLE_HTTP_RANGE_ERROR (int)
CURLE_HTTP_POST_ERROR (int)
CURLE_SSL_CONNECT_ERROR (int)
CURLE_FTP_BAD_DOWNLOAD_RESUME (int)
CURLE_FILE_COULDNT_READ_FILE (int)
CURLE_LDAP_CANNOT_BIND (int)
CURLE_LDAP_SEARCH_FAILED (int)
CURLE_LIBRARY_NOT_FOUND (int)
CURLE_FUNCTION_NOT_FOUND (int)
CURLE_ABORTED_BY_CALLBACK (int)
CURLE_BAD_FUNCTION_ARGUMENT (int)
CURLE_BAD_CALLING_ORDER (int)
CURLE_HTTP_PORT_FAILED (int)
CURLE_BAD_PASSWORD_ENTERED (int)
CURLE_TOO_MANY_REDIRECTS (int)
CURLE_UNKNOWN_TELNET_OPTION (int)
CURLE_TELNET_OPTION_SYNTAX (int)
CURLE_OBSOLETE (int)
CURLE_SSL_PEER_CERTIFICATE (int)
CURLE_GOT_NOTHING (int)
CURLE_SSL_ENGINE_NOTFOUND (int)
CURLE_SSL_ENGINE_SETFAILED (int)
CURLE_SEND_ERROR (int)
CURLE_RECV_ERROR (int)
CURLE_SHARE_IN_USE (int)
CURLE_SSL_CERTPROBLEM (int)
CURLE_SSL_CIPHER (int)
CURLE_SSL_CACERT (int)
CURLE_BAD_CONTENT_ENCODING (int)
CURLE_LDAP_INVALID_URL (int)
CURLE_FILESIZE_EXCEEDED (int)
CURLE_FTP_SSL_FAILED (int)
CURLE_SSH (int)
Disponível a partir de cURL 7.16.1.
CURLFTPAUTH_DEFAULT (int)
CURLFTPAUTH_SSL (int)
CURLFTPAUTH_TLS (int)
CURLPROXY_HTTP (int)
Disponível a partir do cURL 7.10.
CURLPROXY_HTTP_1_0 (int)
Disponível a partir do PHP 7.0.7 e cURL 7.19.3
CURLPROXY_SOCKS4 (int)
Disponível a partir de cURL 7.10.
CURLPROXY_SOCKS5 (int)
Disponível a partir do cURL 7.10.
CURL_NETRC_OPTIONAL (int)
CURL_NETRC_IGNORED (int)
CURL_NETRC_REQUIRED (int)
CURL_HTTP_VERSION_NONE (int)
CURL_HTTP_VERSION_1_0 (int)
CURL_HTTP_VERSION_1_1 (int)
CURL_HTTP_VERSION_2 (int)
Disponível a partir do PHP 7.0.7 e cURL 7.43.0
CURL_HTTP_VERSION_2_0 (int)
Disponível a partir de cURL 7.33.0
CURL_HTTP_VERSION_2TLS (int)
Disponível a partir do PHP 7.0.7 e cURL 7.47.0
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (int)
Disponível a partir do PHP 7.0.7 e cURL 7.49.0
CURLM_CALL_MULTI_PERFORM (int)
CURLM_OK (int)
CURLM_BAD_HANDLE (int)
CURLM_BAD_EASY_HANDLE (int)
CURLM_OUT_OF_MEMORY (int)
CURLM_INTERNAL_ERROR (int)
CURLMSG_DONE (int)
CURLOPT_KEYPASSWD (int)
CURLOPT_SSH_AUTH_TYPES (int)
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (int)
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (int)
Disponível a partir do PHP 8.2.0 e cURL 7.80.0
CURLOPT_SSH_HOSTKEYFUNCTION (int)
Disponível a partir do PHP 8.3.0 e cURL 7.84.0
CURLOPT_SSH_PRIVATE_KEYFILE (int)
CURLOPT_SSH_PUBLIC_KEYFILE (int)
CURLOPT_SSL_OPTIONS (int)
Disponível a partir de cURL 7.25.0
CURLSSLOPT_ALLOW_BEAST (int)
Disponível a partir de cURL 7.25.0
CURLSSLOPT_NO_REVOKE (int)
Disponível a partir do PHP 7.0.7 e cURL 7.44.0
CURLSSLOPT_AUTO_CLIENT_CERT (int)
Disponível a partir do PHP 8.2.0 e cURL 7.77.0
CURLSSLOPT_NATIVE_CA (int)
Disponível a partir do PHP 8.2.0 e cURL 7.71.0
CURLSSLOPT_NO_PARTIALCHAIN (int)
Disponível a partir do PHP 8.2.0 e cURL 7.68.0
CURLSSLOPT_REVOKE_BEST_EFFORT (int)
Disponível a partir do PHP 8.2.0 e cURL 7.70.0
CURLOPT_USERNAME (int)
Disponível a partir de cURL 7.19.1
CURLOPT_SASL_AUTHZID (int)
Disponível a partir do PHP 8.2.0 e cURL 7.66.0
CURLOPT_SASL_IR (int)
Disponível a partir do PHP 7.0.7 e cURL 7.31.0
CURLOPT_DNS_INTERFACE (int)
Disponível a partir do PHP 7.0.7 e cURL 7.33.0
CURLOPT_DNS_LOCAL_IP4 (int)
Disponível a partir do PHP 7.0.7 e cURL 7.33.0
CURLOPT_DNS_LOCAL_IP6 (int)
Disponível a partir do PHP 7.0.7 e cURL 7.33.0
CURLOPT_XOAUTH2_BEARER (int)
Disponível a partir do PHP 7.0.7 e cURL 7.33.0
CURLOPT_LOGIN_OPTIONS (int)
Disponível a partir do PHP 7.0.7 e cURL 7.34.0
CURLOPT_EXPECT_100_TIMEOUT_MS (int)
Disponível a partir do PHP 7.0.7 e cURL 7.36.0
CURLOPT_SSL_ENABLE_ALPN (int)
Disponível a partir do PHP 7.0.7 e cURL 7.36.0
CURLOPT_SSL_ENABLE_NPN (int)
Disponível a partir do PHP 7.0.7 e cURL 7.36.0
CURLOPT_PINNEDPUBLICKEY (int)
Disponível a partir do PHP 7.0.7 e cURL 7.39.0
CURLOPT_UNIX_SOCKET_PATH (int)
Disponível a partir do PHP 7.0.7 e cURL 7.40.0
CURLOPT_SSL_VERIFYSTATUS (int)
Disponível a partir do PHP 7.0.7 e cURL 7.41.0
CURLOPT_PATH_AS_IS (int)
Disponível a partir do PHP 7.0.7 e cURL 7.42.0
CURLOPT_SSL_FALSESTART (int)
Disponível a partir do PHP 7.0.7 e cURL 7.42.0
CURLOPT_PIPEWAIT (int)
Disponível a partir do PHP 7.0.7 e cURL 7.43.0
CURLOPT_PROTOCOLS_STR (int)
Disponível a partir do PHP 8.3.0 e cURL 7.85.0
CURLOPT_PROXY_SERVICE_NAME (int)
Disponível a partir do PHP 7.0.7 e cURL 7.43.0
CURLOPT_SERVICE_NAME (int)
Disponível a partir do PHP 7.0.7 e cURL 7.43.0
CURLOPT_DEFAULT_PROTOCOL (int)
Disponível a partir do PHP 7.0.7 e cURL 7.45.0
CURLOPT_STREAM_WEIGHT (int)
Disponível a partir do PHP 7.0.7 e cURL 7.46.0
CURLOPT_TFTP_NO_OPTIONS (int)
Disponível a partir do PHP 7.0.7 e cURL 7.48.0
CURLOPT_CONNECT_TO (int)
Disponível a partir do PHP 7.0.7 e cURL 7.49.0
CURLOPT_TCP_FASTOPEN (int)
Disponível a partir do PHP 7.0.7 e cURL 7.49.0
CURLOPT_TCP_KEEPALIVE (int)
Disponível a partir de cURL 7.25.0
CURLOPT_TCP_KEEPIDLE (int)
Disponível a partir de cURL 7.25.0
CURLOPT_TCP_KEEPINTVL (int)
Disponível a partir de cURL 7.25.0
CURLMOPT_PIPELINING (int)
Disponível a partir de cURL 7.16.0.
CURLMOPT_MAXCONNECTS (int)
Disponível a partir de cURL 7.16.3.
CURLMOPT_MAX_CONCURRENT_STREAMS (int)
Disponível a partir do PHP 8.2.0 e cURL 7.67.0.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE (int)
Disponível a partir de cURL 7.30.0
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE (int)
Disponível a partir do PHP 7.0.7 e cURL 7.30.0
CURLMOPT_MAX_HOST_CONNECTIONS (int)
Disponível a partir do PHP 7.0.7 e cURL 7.30.0
CURLMOPT_MAX_PIPELINE_LENGTH (int)
Disponível a partir do PHP 7.0.7 e cURL 7.30.0
CURLMOPT_MAX_TOTAL_CONNECTIONS (int)
Disponível a partir do PHP 7.0.7 e cURL 7.30.0
CURLMOPT_PUSHFUNCTION (int)
Disponível a partir do PHP 7.1.0 e cURL 7.44.0
CURLSSH_AUTH_AGENT (int)
Disponível a partir do PHP 7.0.7 e cURL 7.28.0
CURLSSH_AUTH_ANY (int)
CURLSSH_AUTH_DEFAULT (int)
CURLSSH_AUTH_HOST (int)
CURLSSH_AUTH_KEYBOARD (int)
CURLSSH_AUTH_NONE (int)
CURLSSH_AUTH_PASSWORD (int)
CURLSSH_AUTH_PUBLICKEY (int)
CURLPAUSE_ALL (int)
Disponível a partir de cURL 7.18.0.
CURLPAUSE_CONT (int)
Disponível a partir de cURL 7.18.0.
CURLPAUSE_RECV (int)
Disponível a partir de cURL 7.18.0.
CURLPAUSE_RECV_CONT (int)
Disponível a partir de cURL 7.18.0.
CURLPAUSE_SEND (int)
Disponível a partir de cURL 7.18.0.
CURLPAUSE_SEND_CONT (int)
Disponível a partir de cURL 7.18.0.
CURLPIPE_NOTHING (int)
Disponível a partir de cURL 7.43.0.
CURLPIPE_HTTP1 (int)
Disponível a partir de cURL 7.43.0.
CURLPIPE_MULTIPLEX (int)
Disponível a partir de cURL 7.43.0.
CURLPROXY_SOCKS4A (int)
Disponível a partir de cURL 7.18.0.
CURLPROXY_SOCKS5_HOSTNAME (int)
Disponível a partir de cURL 7.18.0.
CURLHEADER_SEPARATE (int)
Disponível a partir do PHP 7.0.7 e cURL 7.37.0.
CURLHEADER_UNIFIED (int)
Disponível a partir do PHP 7.0.7 e cURL 7.37.0.
CURLPROTO_SMB (int)
Disponível a partir do PHP 7.0.7 e cURL 7.40.0.
CURLPROTO_SMBS (int)
Disponível a partir do PHP 7.0.7 e cURL 7.40.0.
CURLPROTO_MQTT (int)
Disponível a partir do PHP 8.2.0 e cURL 7.71.0.
CURLOPT_REDIR_PROTOCOLS_STR (int)
Disponível a partir do PHP 8.3.0 e cURL 7.85.0.
CURLOPT_REQUEST_TARGET (int)
Disponível a partir do PHP 7.3.0 e cURL 7.55.0.
CURLAUTH_GSSAPI (int)
Disponível a partir do PHP 7.3.0 e cURL 7.54.1
CURLE_WEIRD_SERVER_REPLY (int)
Disponível a partir do PHP 7.3.0 e cURL 7.51.0
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.55.0
CURLINFO_CONTENT_LENGTH_UPLOAD_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.55.0
CURLINFO_HTTP_VERSION (int)
Disponível a partir do PHP 7.3.0 e cURL 7.50.0
CURLINFO_PROTOCOL (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLINFO_PROXY_SSL_VERIFYRESULT (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLINFO_SCHEME (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLINFO_SIZE_DOWNLOAD_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.50.0
CURLINFO_SIZE_UPLOAD_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.50.0
CURLINFO_SPEED_DOWNLOAD_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.50.0
CURLINFO_SPEED_UPLOAD_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.50.0
CURL_MAX_READ_SIZE (int)
Disponível a partir do PHP 7.3.0 e cURL 7.53.0
CURLOPT_ABSTRACT_UNIX_SOCKET (int)
Disponível a partir do PHP 7.3.0 e cURL 7.53.0
CURLOPT_KEEP_SENDING_ON_ERROR (int)
Disponível a partir do PHP 7.3.0 e cURL 7.51.0
CURLOPT_PRE_PROXY (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_CAINFO (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_CAINFO_BLOB (int)
Disponível a partir do PHP 8.2.0 e cURL 7.77.0
CURLOPT_PROXY_CAPATH (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_CRLFILE (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_KEYPASSWD (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_PINNEDPUBLICKEY (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_SSLCERT (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_SSLCERTTYPE (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_SSL_CIPHER_LIST (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_SSLKEY (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_SSLKEYTYPE (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_SSL_OPTIONS (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_SSL_VERIFYHOST (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_SSL_VERIFYPEER (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_SSLVERSION (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_PASSWORD (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_TYPE (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_USERNAME (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLOPT_SOCKS5_AUTH (int)
Disponível a partir do PHP 7.3.0 e cURL 7.55.0
CURLOPT_SUPPRESS_CONNECT_HEADERS (int)
Disponível a partir do PHP 7.3.0 e cURL 7.54.0
CURLPROXY_HTTPS (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURL_SSLVERSION_MAX_DEFAULT (int)
Disponível a partir do PHP 7.3.0 e cURL 7.54.0
CURL_SSLVERSION_MAX_NONE (int)
Disponível a partir do PHP 7.3.0 e cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_0 (int)
Disponível a partir do PHP 7.3.0 e cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_1 (int)
Disponível a partir do PHP 7.3.0 e cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_2 (int)
Disponível a partir do PHP 7.3.0 e cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_3 (int)
Disponível a partir do PHP 7.3.0 e cURL 7.54.0
CURL_SSLVERSION_TLSv1_3 (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURL_VERSION_HTTPS_PROXY (int)
Disponível a partir do PHP 7.3.0 e cURL 7.52.0
CURLAUTH_BEARER (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0.
CURLINFO_APPCONNECT_TIME_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURLINFO_CONNECT_TIME_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURLINFO_FILETIME_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.59.0
CURLINFO_NAMELOOKUP_TIME_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURLINFO_PRETRANSFER_TIME_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURLINFO_REDIRECT_TIME_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURLINFO_STARTTRANSFER_TIME_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURLINFO_TOTAL_TIME_T (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURL_LOCK_DATA_CONNECT (int)
Disponível a partir do PHP 7.3.0 e cURL 7.10.0
CURL_LOCK_DATA_PSL (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURLOPT_DISALLOW_USERNAME_IN_URL (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURLOPT_DNS_SHUFFLE_ADDRESSES (int)
Disponível a partir do PHP 7.3.0 e cURL 7.60.0
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS (int)
Disponível a partir do PHP 7.3.0 e cURL 7.59.0
CURLOPT_HAPROXYPROTOCOL (int)
Disponível a partir do PHP 7.3.0 e cURL 7.60.0
CURLOPT_PROXY_TLS13_CIPHERS (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURLOPT_SSH_COMPRESSION (int)
Disponível a partir do PHP 7.3.0 e cURL 7.56.0
CURLOPT_TIMEVALUE_LARGE (int)
Disponível a partir do PHP 7.3.0 e cURL 7.59.0
CURLOPT_TLS13_CIPHERS (int)
Disponível a partir do PHP 7.3.0 e cURL 7.61.0
CURLSSH_AUTH_GSSAPI (int)
Disponível a partir do PHP 7.3.0 e cURL 7.58.0
CURLOPT_HTTP09_ALLOWED (int)
Disponível a partir do PHP 7.3.15 e 7.4.3, respectivamente, e cURL 7.64.0
CURLMIMEOPT_FORMESCAPE (int)
Disponível a partir do PHP 8.3.0 e cURL 7.81.0
CURLWS_RAW_MODE (int)
Disponível a partir do PHP 8.3.0 e cURL 7.86.0
CURLKHMATCH_OK (int)
Disponível a partir do PHP 8.3.0 e cURL 7.19.6
CURLKHMATCH_MISMATCH (int)
Disponível a partir do PHP 8.3.0 e cURL 7.19.6
CURLKHMATCH_MISSING (int)
Disponível a partir do PHP 8.3.0 e cURL 7.19.6
CURLKHMATCH_LAST (int)
Disponível a partir do PHP 8.3.0 e cURL 7.19.6


  • « Constantes pré-definidas
  • Exemplo básico de cURL »
  • PHP Manual
  • cURL
  • Exemplos

Exemplos

Índice

  • Exemplo básico de cURL


Exemplo básico de cURL

Uma vez que o PHP tenha sido compilado com suporte a cURL, pode-se começar a usar as funções cURL. A ideia por trás das funções cURL é inicializar uma sessão cURL usando curl_init(), o que permite configurar as opções para a transferência através de curl_setopt(), e depois executar a sessão com curl_exec(), finalizando a sessão com curl_close(). Aqui está um exemplo que usa as funções cURL para receber o conteúdo da página inicial de exemplo.com.br em um arquivo:

Exemplo #1 Usando o módulo cURL do PHP para receber a página exemplo.com.br

<?php

$ch = curl_init("http://www.exemplo.com.br/");
$fp = fopen("pagina_exemplo.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
if(curl_error($ch)) {
fwrite($fp, curl_error($ch));
}
curl_close($ch);
fclose($fp);
?>


Funções cURL

Índice

  • curl_close — Fecha uma sessão cURL
  • curl_copy_handle — Copia um controlador cURL com todas as suas opções
  • curl_errno — Retorna o número do último erro
  • curl_error — Retorna uma string contendo o último erro da sessão atual
  • curl_escape — Codifica uma string para o formato URL
  • curl_exec — Executa uma sessão cURL
  • curl_getinfo — Obtém informação sobre uma transferência específica
  • curl_init — Inicializar uma sessão cURL
  • curl_multi_add_handle — Adiciona um manipulador cURL comum a um manipulador cURL múltiplo
  • curl_multi_close — Fechar um conjunto de alças cURL
  • curl_multi_errno — Retorna o último número de erro de curl_multi
  • curl_multi_exec — Executa as subconexões do manipulador cURL atual
  • curl_multi_getcontent — Retorna o conteúdo de um manipulador cURL se CURLOPT_RETURNTRANSFER estiver definido
  • curl_multi_info_read — Obtém informação sobre as transferências atuais
  • curl_multi_init — Retorna um multi-manipulador cURL
  • curl_multi_remove_handle — Remove um manipulador de um conjunto de manipuladores cURL
  • curl_multi_select — Aguarda por atividade em qualquer multi-conexão cURL
  • curl_multi_setopt — Define múltiplas opções para cURL
  • curl_multi_strerror — Retorna uma string que descreve o código de erro
  • curl_pause — Pausa ou continua uma conexão
  • curl_reset — Reseta todas as opções de um controlador de sessão libcurl
  • curl_setopt_array — Define múltiplas opções para uma transferência cURL
  • curl_setopt — Define uma opção para uma transferência cURL
  • curl_share_close — Fecha um controlador de compartilhamento de cURL
  • curl_share_errno — Retorna o último número de erro do curl compartilhado
  • curl_share_init — Inicializa um controlador de compartilhamento de cURL
  • curl_share_setopt — Configura uma opção para um controlador de compartilhamento de cURL
  • curl_share_strerror — Retorna uma string descrevendo o código de erro fornecid
  • curl_strerror — Retorna uma string que descreve o código de erro informado
  • curl_unescape — Decodifica a parte codificada da URL fornecida
  • curl_upkeep — Executa qualquer verificação de manutenção de conexão
  • curl_version — Obtém informação de versão do cURL


Fecha uma sessão cURL

  • « Funções cURL
  • curl_copy_handle »
  • PHP Manual
  • Funções cURL
  • Fecha uma sessão cURL

curl_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_close — Fecha uma sessão cURL

Descrição

curl_close(CurlHandle $handle): void

Nota:

Esta função não tem efeito. Antes do PHP 8.0.0, esta função era usada para fechar o recurso.

Fecha uma sessão cURL e libera todos os recursos. O controlador cURL, handle, também é deletado.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Iniciando uma nova sessão cURL e acessando uma página web

<?php
// Cria uma nova sessão cURL
$ch = curl_init();

// Configura uma URL e outras opções apropriadas
curl_setopt($ch, CURLOPT_URL, "http://www.exemplo.com.br/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// Executa a sessão
curl_exec($ch);

// Fecha a sessão cURL e libera recursos
curl_close($ch);
?>

Veja Também

  • curl_init() - Inicializar uma sessão cURL
  • curl_multi_close() - Fechar um conjunto de alças cURL


Copia um controlador cURL com todas as suas opções

  • « curl_close
  • curl_errno »
  • PHP Manual
  • Funções cURL
  • Copia um controlador cURL com todas as suas opções

curl_copy_handle

(PHP 5, PHP 7, PHP 8)

curl_copy_handle — Copia um controlador cURL com todas as suas opções

Descrição

curl_copy_handle(CurlHandle $handle): CurlHandle|false

Copia um controlador cURL, mantendo as opções escolhidas.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

Valor Retornado

Retorna um novo controlador cURL, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.
8.0.0 | Em caso de sucesso, esta função agora retorna uma instância CurlHandle; anteriormente, um recurso do tipo resource era retornado.

Exemplos

Exemplo #1 Copiando um controlador cURL

<?php
// Cria uma nova sessão cURL
$ch = curl_init();

// Configura uma URL e outras opções apropriadas
curl_setopt($ch, CURLOPT_URL, 'http://www.exemplo.com.br/');
curl_setopt($ch, CURLOPT_HEADER, 0);

// Copia o controlador
$ch2 = curl_copy_handle($ch);

// Executa a sessão (abrindo a página exemplo.com.br)
curl_exec($ch2);

// Fecha os recursos cURL
curl_close($ch2);
curl_close($ch);
?>


Retorna o número do último erro

  • « curl_copy_handle
  • curl_error »
  • PHP Manual
  • Funções cURL
  • Retorna o número do último erro

curl_errno

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

curl_errno — Retorna o número do último erro

Descrição

curl_errno(CurlHandle $handle): int

Retorna o número do erro para a última operação cURL.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

Valor Retornado

Retorna o número do erro ou 0 (zero) caso nenhum erro tenha acontecido.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de curl_errno()

<?php
// Cria um novo manipulador curl para uma página existente
$ch = curl_init('http://404.php.net/');

// Executa
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);

// Verifica se ocorreu algum erro
if(curl_errno($ch))
{
echo 'Curl error: ' . curl_error($ch);
}

// Fecha o manipulador
curl_close($ch);
?>

Veja Também

  • curl_error() - Retorna uma string contendo o último erro da sessão atual
  • » Códigos de erro cURL


Retorna uma string contendo o último erro da sessão atual

  • « curl_errno
  • curl_escape »
  • PHP Manual
  • Funções cURL
  • Retorna uma string contendo o último erro da sessão atual

curl_error

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

curl_error — Retorna uma string contendo o último erro da sessão atual

Descrição

curl_error(CurlHandle $handle): string

Retorna uma mensagem de erro de texto simples para a última operação cURL.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

Valor Retornado

Retorna a mensagem de erro ou '' (a string vazia) se nenhum erro ocorreu.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de curl_error()

<?php
// Inicializa o curl usando um destino não existente
$ch = curl_init('http://404.php.net/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if(curl_exec($ch) === false)
{
echo 'Erro Curl: ' . curl_error($ch);
}
else
{
echo 'Operação concluída sem erros';
}

// Close handle
curl_close($ch);
?>

Veja Também

  • curl_errno() - Retorna o número do último erro
  • » Códigos de erros Curl


Codifica uma string para o formato URL

  • « curl_error
  • curl_exec »
  • PHP Manual
  • Funções cURL
  • Codifica uma string para o formato URL

curl_escape

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_escape — Codifica uma string para o formato URL

Descrição

curl_escape(CurlHandle $handle, string $string): string|false

Essa função codifica uma string para o formato URL de acordo com » RFC 3986.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

string

A string a ser codificada.

Valor Retornado

Retorna a string codificada ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de curl_escape()

<?php
// Cria um controlador curl
$ch = curl_init();

// Codifica uma string usada como parâmetro GET
$location = curl_escape($ch, 'Hofbräuhaus / München');
// Resultado: Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen

// Cria uma URL com a string codificada
$url = "http://example.com/add_location.php?location={$location}";
// Resultado: http://example.com/add_location.php?location=Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen

// Envia a requisição HTTP e fecha o controlador
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
?>

Veja Também

  • curl_unescape() - Decodifica a parte codificada da URL fornecida
  • urlencode() - URL-encodes string
  • rawurlencode() - Codifica uma URL de acordo com RFC 3986
  • » RFC 3986


Executa uma sessão cURL

  • « curl_escape
  • curl_getinfo »
  • PHP Manual
  • Funções cURL
  • Executa uma sessão cURL

curl_exec

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_exec — Executa uma sessão cURL

Descrição

curl_exec(CurlHandle $handle): string|bool

Execute a sessão cURL fornecida.

Esta função deve ser chamada após inicializar uma sessão cURL e todas as opções para a sessão são definidas.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. No entanto, se a opção CURLOPT_RETURNTRANSFER estiver definida, ela retornará o resultado em caso de sucesso, false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Nota:

Observe que os códigos de retorno que indicam erros (como por exemplo 404 Not found) não são tratados como falhas. Use curl_getinfo() para verificar esses casos.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Obtendo uma página da web

<?php
// Cria um novo recurso cURL
$ch = curl_init();

// Confiura a URL e opções
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// Obtem os dados
curl_exec($ch);

// Fecha o recurso e libera recursos internos
curl_close($ch);
?>

Veja Também

  • curl_multi_exec() - Executa as subconexões do manipulador cURL atual


Obtém informação sobre uma transferência específica

  • « curl_exec
  • curl_init »
  • PHP Manual
  • Funções cURL
  • Obtém informação sobre uma transferência específica

curl_getinfo

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

curl_getinfo — Obtém informação sobre uma transferência específica

Descrição

curl_getinfo(CurlHandle $handle, ?int $option = null): mixed

Obtém informação sobre a última transferência.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

option

Pode ser uma das seguintes constantes:

Opção | Descrição
CURLINFO_CAINFO | Padrão interno do arquivo de certificado CA
CURLINFO_CAPATH | Padrão interno do diretório de certificados CA
CURLINFO_EFFECTIVE_URL | Última URL efetiva
CURLINFO_HTTP_CODE | O último código de resposta. A partir do cURL 7.10.8, é um apelido legado de CURLINFO_RESPONSE_CODE
CURLINFO_FILETIME | Horário remoto do documento obtido, com a constante CURLOPT_FILETIME habilitada; se -1 for retornado, o horário do documento é desconhecido
CURLINFO_TOTAL_TIME | Tempo total de transação em segundos para a última transferência
CURLINFO_NAMELOOKUP_TIME | Tempo em segundos até que a resolução de nome foi concluída
CURLINFO_CONNECT_TIME | Tempo em segundos para estabelecer a conexão
CURLINFO_PRETRANSFER_TIME | Tempo em segundos do início até logo antes de iniciar a transferência de arquivo
CURLINFO_STARTTRANSFER_TIME | Tempo em segundos até que o primeiro byte está para ser transferido
CURLINFO_REDIRECT_COUNT | Número de redirecionamentos, com a opção CURLOPT_FOLLOWLOCATION habilitada
CURLINFO_REDIRECT_TIME | Tempo em segundos de todos as etapas de redirecionamento antes do início da transação final, com a opção CURLOPT_FOLLOWLOCATION habilitada
CURLINFO_REDIRECT_URL | Com a opção CURLOPT_FOLLOWLOCATION desabilitada: URL de redirecionamento encontrada na última transação, que deverá ser requisitada manualmente na sequência. Com a opção CURLOPT_FOLLOWLOCATION desabilitada: isto fica vazio. A URL de redirecionamento neste caso fica disponível em CURLINFO_EFFECTIVE_URL
CURLINFO_PRIMARY_IP | Endereço IP da conexão mais recente
CURLINFO_PRIMARY_PORT | Porta de destino da conexão mais recente
CURLINFO_LOCAL_IP | Endereço IP local (origem) da conexão mais recente
CURLINFO_LOCAL_PORT | Porta local (origem) da conexão mais recente
CURLINFO_SIZE_UPLOAD | Número total de bytes enviados
CURLINFO_SIZE_DOWNLOAD | Número total de bytes recebidos
CURLINFO_SPEED_DOWNLOAD | Velocidade média de recepção
CURLINFO_SPEED_UPLOAD | Velocidade média de envio
CURLINFO_HEADER_SIZE | Tamanho total de todos os cabeçalhos recebidos
CURLINFO_HEADER_OUT | A string de requisição enviada. Para que isto funcione, deve-se adicionar a opção CURLINFO_HEADER_OUT ao manipulador chamando-se curl_setopt()
CURLINFO_REFERER | O cabeçalho do referenciados
CURLINFO_REQUEST_SIZE | Tamanho total de requisições emitidas, atualmente apenas para requisições HTTP
CURLINFO_RETRY_AFTER | A informação do cabeçalho Retry-After:, ou zero se não houver cabeçalho válido.
CURLINFO_SSL_VERIFYRESULT | Resultado da verificação de certificado SSL requisitada pela habilitação da opção CURLOPT_SSL_VERIFYPEER
CURLINFO_CONTENT_LENGTH_DOWNLOAD | Tamanho do conteúdo recebido, lido do campo Content-Length:
CURLINFO_CONTENT_LENGTH_UPLOAD | Tamanho especificado do upload
CURLINFO_CONTENT_TYPE | Content-Type: do documento requisitado. NULL indica que o servidor não enviou o cabeçalho Content-Type:
CURLINFO_PRIVATE | Dados privados associados a este manipulador cURL, previamente configurado com a opção CURLOPT_PRIVATE da função curl_setopt()
CURLINFO_PROXY_ERROR | O código de erro detalhado do proxy (SOCKS) quando a transferência mais recente retorna um erro CURLE_PROXY. O valor retornado será exatamente um dos valores CURLPX_*. O código de erro será CURLPX_OK se nenhum código de resposta estiver disponível.
CURLINFO_RESPONSE_CODE | O último código de resposta
CURLINFO_HTTP_CONNECTCODE | O código de resposta de CONNECT
CURLINFO_HTTPAUTH_AVAIL | Máscara de bits indicando os métodos de autenticação disponíveis de acordo com a resposta anterior
CURLINFO_PROXYAUTH_AVAIL | Máscara de bits indicando os métodos de autenticação do proxy disponíveis de acordo com a resposta anterior
CURLINFO_OS_ERRNO | Número do erro de uma falha de conexão. O número depende da arquitetura e do sistema operacional.
CURLINFO_NUM_CONNECTS | Número de conexões que curl teve de criar para concluir a transferência anterior
CURLINFO_SSL_ENGINES | Esquemas de criptografia OpenSSL suportados
CURLINFO_COOKIELIST | Todos os cookies conhecidos
CURLINFO_FTP_ENTRY_PATH | Caminho de entrada no servidor FTP
CURLINFO_APPCONNECT_TIME | Tempo em segundos decorrido do início até que a conexão/negociação SSL/SSH ao servidor remoto foi concluída
CURLINFO_CERTINFO | Cadeia de certificados TLS
CURLINFO_CONDITION_UNMET | Informação sobre condição de tempo não cumprida
CURLINFO_RTSP_CLIENT_CSEQ | Próximo CSeq do cliente RTSP
CURLINFO_RTSP_CSEQ_RECV | CSeq recentemente recebido
CURLINFO_RTSP_SERVER_CSEQ | Próximo CSeq do servidor RTSP
CURLINFO_RTSP_SESSION_ID | ID de sessão RTSP
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T | O tamanho do conteúdo recebido. Isto é o valor lido do campo Content-Length:. -1 se o tamanho for desconhecido
CURLINFO_CONTENT_LENGTH_UPLOAD_T | O tamanho especificado do envio. -1 se o tamanho for desconhecido
CURLINFO_HTTP_VERSION | A versão usada na última conexão HTTP. O valor de retorno será uma das constantes CURL_HTTP_VERSION_* definidas ou 0 se a versão não puder ser determinada
CURLINFO_PROTOCOL | O protocolo usado na última conexão HTTP. O valor retornado será exatamente uma dos valores CURLPROTO_*
CURLINFO_PROXY_SSL_VERIFYRESULT | O resultado da verificação de certificado que foi requisitada (usando a opção CURLOPT_PROXY_SSL_VERIFYPEER). Usado apenas para proxy HTTPS
CURLINFO_SCHEME | O esquema de URL usado para a conexão mais recente
CURLINFO_SIZE_DOWNLOAD_T | O número total de bytes recebidos. O número refere-se apenas à última transferência e será redefinido para cada nova transferência
CURLINFO_SIZE_UPLOAD_T | Número total de bytes enviados
CURLINFO_SPEED_DOWNLOAD_T | A velocidade média de recebimento em bytes/segundo que curl mediu para todo o recebimento de dados
CURLINFO_SPEED_UPLOAD_T | A velocidade média de envio em bytes/segundo que curl mediu para todo o envio de dados
CURLINFO_APPCONNECT_TIME_T | Tempo em microssegundos decorrido do início até que a conexão/negociação SSL/SSH ao servidor remoto tenha sido concluída
CURLINFO_CONNECT_TIME_T | Tempo em microssegundos decorrido do início até que a conexão ao servidor remoto (ou proxy) tenha sido concluída
CURLINFO_FILETIME_T | Horário remoto do documento recebido (em timestamp Unix), como alternativa a CURLINFO_FILETIME para permitir que sistemas com variáveis de 32 bit extraiam datas fora da faixa de 32-bits
CURLINFO_NAMELOOKUP_TIME_T | Tempo em microssegundos do início até que a conclusão da resolução de nome
CURLINFO_PRETRANSFER_TIME_T | Tempo decorrido do início até que a transferência de arquivos esteja para iniciar, em microssegundos
CURLINFO_REDIRECT_TIME_T | Tempo total em microssegundos decorrido para todas as etapas de redirecionamento incluindo pesquisa de nome, conexão, pré-transferência e transferência, antes do início da transação final
CURLINFO_STARTTRANSFER_TIME_T | Tempo em microssegundos decorrido do início até o recebimento do primeiro byte
CURLINFO_TOTAL_TIME_T | Tempo total em microssegundos da transferência anterior, including resolução de nome, conexão TCP etc.

Valor Retornado

Se o parâmetro option for fornecido, retorna seu valor. Caso contrário, retorna um array associativo com os elementos a seguir (que correspondem a option), ou false em caso de falha:

  • "url"
  • "content_type"
  • "http_code"
  • "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"
  • "certinfo"
  • "primary_ip"
  • "primary_port"
  • "local_ip"
  • "local_port"
  • "redirect_url"
  • "request_header" (Este somente será definido se a opção CURLINFO_HEADER_OUT for configurada por uma chamada prévia a curl_setopt())
Note que dados privados não são incluídos no array associativo e devem ser obtidos individualmente com a opção CURLINFO_PRIVATE.

Registro de Alterações

Versão | Descrição
8.3.0 | Introduzidas as constantes CURLINFO_CAINFO e CURLINFO_CAPATH.
8.2.0 | Introduzidas as constantes CURLINFO_PROXY_ERROR, CURLINFO_REFERER e CURLINFO_RETRY_AFTER.
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.
8.0.0 | option agora pode ser nulo; anteriormente, o padrão era 0.
7.3.0 | Introduzidas as opções CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T e CURLINFO_TOTAL_TIME_T.

Exemplos

Exemplo #1 Exemplo de curl_getinfo()

<?php
// Cria um manipulador cURL
$ch = curl_init('http://www.example.com/');

// Executa
curl_exec($ch);

// Verifica se algum erro ocorreu
if (!curl_errno($ch)) {
$info = curl_getinfo($ch);
echo 'Demorou ', $info['total_time'], ' segundos para enviar uma requisição a ', $info['url'], "\n";
}

// Fecha o manipulador
curl_close($ch);
?>

Exemplo #2 Exemplo de curl_getinfo() com parâmetro option

<?php
// Cria um manipulador cURL
$ch = curl_init('http://www.example.com/');

// Executa
curl_exec($ch);

// Verifica o código de estado do HTTP
if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200: # OK
break;
default:
echo 'Código HTTP inesperado: ', $http_code, "\n";
}
}

// Fecha o manipulador
curl_close($ch);
?>

Notas

Nota:

Informações obtidas por esta função são mantidas se o manipulador for reutilizado. Isto significa que a menos que uma estatística seja substituída internamente por esta função, a informação anterior é retornada.


Inicializar uma sessão cURL

  • « curl_getinfo
  • curl_multi_add_handle »
  • PHP Manual
  • Funções cURL
  • Inicializar uma sessão cURL

curl_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_init — Inicializar uma sessão cURL

Descrição

curl_init(?string $url = null): CurlHandle|false

Inicializa uma nova sessão e retorna um identificador cURL para uso com as funções curl_setopt(), curl_exec(), e curl_close().

Parâmetros

url

Se fornecida, a opção CURLOPT_URL será definida com seu valor.Você pode definir isso manualmente usando a função curl_setopt().

Nota:

O protocolo file é desativado no cURL se open_basedir estiver definido.

Valor Retornado

Retorna um identificador cURL em caso de sucesso, false sobre erros.

Registro de Alterações

Versão | Descrição
8.0.0 | No caso de sucesso, a função retorna uma instância de CurlHandle; anteriormente era retornado um resource.
8.0.0 | url agora permite null.

Exemplos

Exemplo #1 Inicializando uma nova sessão cURL e buscando uma página da web

<?php
// Cria um novo recurso cURL
$ch = curl_init();

// Configura a URL e opções
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// Obtém os dados
curl_exec($ch);

// Fecha o recurso cURL e libera recursos interos
curl_close($ch);
?>

Veja Também

  • curl_close() - Fecha uma sessão cURL
  • curl_multi_init() - Retorna um multi-manipulador cURL


Adiciona um manipulador cURL comum a um manipulador cURL múltiplo

  • « curl_init
  • curl_multi_close »
  • PHP Manual
  • Funções cURL
  • Adiciona um manipulador cURL comum a um manipulador cURL múltiplo

curl_multi_add_handle

(PHP 5, PHP 7, PHP 8)

curl_multi_add_handle — Adiciona um manipulador cURL comum a um manipulador cURL múltiplo

Descrição

curl_multi_add_handle(CurlMultiHandle $multi_handle, CurlHandle $handle): int

Adiciona o manipulador handle ao manipulador múltiplo multi_handle

Parâmetros

multi_handle

Um manipulador cURL múltiplo retornado por curl_multi_init().

handle

Um manipulador cURL retornado por curl_init().

Valor Retornado

Retorna 0 em caso de sucesso, ou um dos códigos de erros CURLM_XXX.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro multi_handle agora espera uma instância de CurlMultiHandle; anteriormente, um resource era esperado.
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 curl_multi_add_handle() example

Este exemplo criará dois manipuladores cURL, os adicionará a um manipulador múltiplo e os executará de forma assíncrona.

<?php
// Cria dois manipuladores cURL comuns
$ch1 = curl_init();
$ch2 = curl_init();

// Define a URL e outras opções apropriadas
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Cria o manipulador cURL múltiplo
$mh = curl_multi_init();

// Adiciona os dois manipuladores comuns ao manipulador múltiplo
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

// Executa o manipulador múltiplo
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);

// Fecha todos os manipuladores
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>

Veja Também

  • curl_multi_remove_handle() - Remove um manipulador de um conjunto de manipuladores cURL
  • curl_multi_init() - Retorna um multi-manipulador cURL
  • curl_init() - Inicializar uma sessão cURL


Fechar um conjunto de alças cURL

  • « curl_multi_add_handle
  • curl_multi_errno »
  • PHP Manual
  • Funções cURL
  • Fechar um conjunto de alças cURL

curl_multi_close

(PHP 5, PHP 7, PHP 8)

curl_multi_close — Fechar um conjunto de alças cURL

Descrição

curl_multi_close(CurlMultiHandle $multi_handle): void

Nota:

Esta função não tem efeito. Antes do PHP 8.0.0, esta função era usada para fechar o recurso.

Fecha um conjunto de alças cURL.

Parâmetros

multi_handle

Um manipulador cURL múltiplo retornado por curl_multi_init().

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro multi_handle agora espera uma instância de CurlMultiHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 curl_multi_close() example

Este exemplo criará dois identificadores cURL, os adicionará a um identificador múltiplo e os executará em paralelo.

<?php
// Cria um recurso cURL
$ch1 = curl_init();
$ch2 = curl_init();

// Configura a URL e outras opções
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Cria um recurso cURL múltiplo
$mh = curl_multi_init();

// Adiciona dois manipuladores
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

// Executa o manipulador múltipo
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);

//close the handles
curl_multi_remove_handle($mh, $ch1);
curl_close($ch1);
curl_multi_remove_handle($mh, $ch2);
curl_close($ch2);
curl_multi_close($mh);

?>

Veja Também

  • curl_multi_init() - Retorna um multi-manipulador cURL
  • curl_close() - Fecha uma sessão cURL


Retorna o último número de erro de curl_multi

  • « curl_multi_close
  • curl_multi_exec »
  • PHP Manual
  • Funções cURL
  • Retorna o último número de erro de curl_multi

curl_multi_errno

(PHP 7 >= 7.1.0, PHP 8)

curl_multi_errno — Retorna o último número de erro de curl_multi

Descrição

curl_multi_errno(CurlMultiHandle $multi_handle): int

Retorna um número inteiro contendo o último número de erro de multi curl.

Parâmetros

multi_handle

Um manipulador cURL múltiplo retornado por curl_multi_init().

Valor Retornado

Retorna um número inteiro contendo o último número de erro de multi curl.

Registro de Alterações

Versão | Descrição
8.0.0 | A função não retorna mais false em caso de falha.
8.0.0 | O parâmetro multi_handle agora espera uma instância de CurlMultiHandle; anteriormente, um resource era esperado.

Veja Também

  • curl_errno() - Retorna o número do último erro


Executa as subconexões do manipulador cURL atual

  • « curl_multi_errno
  • curl_multi_getcontent »
  • PHP Manual
  • Funções cURL
  • Executa as subconexões do manipulador cURL atual

curl_multi_exec

(PHP 5, PHP 7, PHP 8)

curl_multi_exec — Executa as subconexões do manipulador cURL atual

Descrição

curl_multi_exec(CurlMultiHandle $multi_handle, int &$still_running): int

Processa cada um dos manipuladores na pilha. Este método pode ser chamado independentemente de um manipulador precisar ou não ler ou gravar dados.

Parâmetros

multi_handle

Um manipulador cURL múltiplo retornado por curl_multi_init().

still_running

Uma referência a um sinalizador para informar se as operações ainda estão em execução.

Valor Retornado

Um código cURL definido nas Constantes Predefinidas cURL.

Nota:

Isso retorna apenas erros relacionados à pilha múltipla inteira. Ainda pode ter ocorrido problemas em transferências individuais mesmo quando esta função retorna CURLM_OK.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro multi_handle agora espera uma instância de CurlMultiHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 curl_multi_exec() example

Este exemplo criará dois manipuladores cURL, os adicionará a um manipulador múltiplo e os executará de forma assíncrona.

<?php
// Cria dois manipuladores cURL comuns
$ch1 = curl_init();
$ch2 = curl_init();

// Define a URL e outras opções apropriadas
curl_setopt($ch1, CURLOPT_URL, "http://example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Cria o manipulador cURL múltiplo
$mh = curl_multi_init();

// Adiciona os dois manipuladores comuns ao manipulador múltiplo
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

// Executa o manipulador múltiplo
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
// Wait a short time for more activity
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);

// Fecha todos os manipuladores
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

Veja Também

  • curl_multi_init() - Retorna um multi-manipulador cURL
  • curl_multi_select() - Aguarda por atividade em qualquer multi-conexão cURL
  • curl_exec() - Executa uma sessão cURL


Retorna o conteúdo de um manipulador cURL se CURLOPT_RETURNTRANSFER estiver definido

  • « curl_multi_exec
  • curl_multi_info_read »
  • PHP Manual
  • Funções cURL
  • Retorna o conteúdo de um manipulador cURL se CURLOPT_RETURNTRANSFER estiver definido

curl_multi_getcontent

(PHP 5, PHP 7, PHP 8)

curl_multi_getcontent — Retorna o conteúdo de um manipulador cURL se CURLOPT_RETURNTRANSFER estiver definido

Descrição

curl_multi_getcontent(CurlHandle $handle): ?string

Se CURLOPT_RETURNTRANSFER for uma opção configurada para um manipulador específico, esta função retornará o conteúdo do manipulador cURL na forma de uma string.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

Valor Retornado

Retorna o conteúdo de um manipulador cURL se CURLOPT_RETURNTRANSFER estiver definida ou null se não estiver.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Veja Também

  • curl_multi_init() - Retorna um multi-manipulador cURL


Obtém informação sobre as transferências atuais

  • « curl_multi_getcontent
  • curl_multi_init »
  • PHP Manual
  • Funções cURL
  • Obtém informação sobre as transferências atuais

curl_multi_info_read

(PHP 5, PHP 7, PHP 8)

curl_multi_info_read — Obtém informação sobre as transferências atuais

Descrição

curl_multi_info_read(CurlMultiHandle $multi_handle, int &$queued_messages = null): array|false

Interroga o manipulador múltiplo se existem mensagens ou informações das transferências individuais. Mensagens podem incluir informações como um código de erro da transferência ou apenas o fato de uma transferência ter sido concluída.

Chamadas repetidas a esta função irão retornar um novo resultado a cada vez, até que um valor false for retornado como um sinal de que não há mais o que receber no momento. O inteiro apontado pelo parâmetro queued_messages conterá o número de mensagens remanescentes depois que esta função foi chamada.

Aviso

Os dados apontados pelo recurso retornado não irão sobreviver à chamada a curl_multi_remove_handle().

Parâmetros

multi_handle

Um manipulador cURL múltiplo retornado por curl_multi_init().

queued_messages

Número de mensagens que ainda estão na fila

Valor Retornado

Em caso de sucesso, retorna um array associativo para a mensagem, false em caso de falha.

Conteúdo do array retornado
Chave: | Valor:
msg | A constante CURLMSG_DONE. Outros valores de retorno autalmente não estão disponíveis.
result | Uma das constantes CURLE_*. Se tudo estiver correto, a constante CURLE_OK será o resultado.
handle | Recurso do tipo curl que indica o manipulador em questão.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro multi_handle agora espera uma instância de CurlMultiHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Um exemplo de curl_multi_info_read()

<?php

$urls = array(
"http://www.cnn.com/",
"http://www.bbc.co.uk/",
"http://www.yahoo.com/"
);

$mh = curl_multi_init();

foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
curl_multi_add_handle($mh, $conn[$i]);
}

do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
while (false !== ($info = curl_multi_info_read($mh))) {
var_dump($info);
}
} while ($active && $status == CURLM_OK);

foreach ($urls as $i => $url) {
$res[$i] = curl_multi_getcontent($conn[$i]);
curl_close($conn[$i]);
}

var_dump(curl_multi_info_read($mh));

?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(5) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(7) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(6) of type (curl)
}
bool(false)

Veja Também

  • curl_multi_init() - Retorna um multi-manipulador cURL


Retorna um multi-manipulador cURL

  • « curl_multi_info_read
  • curl_multi_remove_handle »
  • PHP Manual
  • Funções cURL
  • Retorna um multi-manipulador cURL

curl_multi_init

(PHP 5, PHP 7, PHP 8)

curl_multi_init — Retorna um multi-manipulador cURL

Descrição

curl_multi_init(): CurlMultiHandle

Permite o processamento de manipuladores cURL múltiplos de forma assíncrona.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um multi-manipulador cURL.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna uma instância de CurlMultiHandle; anteriormente, um recurso do tipo resource era retornado.

Exemplos

Exemplo #1 Exemplo de curl_multi_init()

Este exemplo cria dois manipuladores cURL, adiciona-os a um multi-manipulador e processa-os de forma assíncrona.

<?php
// criam ambos recursos cURL
$ch1 = curl_init();
$ch2 = curl_init();

// define URL e outras opções apropriadas
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//cria o multi-manipulador cURL
$mh = curl_multi_init();

//adiciona os dois manipuladores
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

//executa o multi-manipulador
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);

//fecha os manipuladores
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

Veja Também

  • curl_init() - Inicializar uma sessão cURL
  • curl_multi_close() - Fechar um conjunto de alças cURL


Remove um manipulador de um conjunto de manipuladores cURL

  • « curl_multi_init
  • curl_multi_select »
  • PHP Manual
  • Funções cURL
  • Remove um manipulador de um conjunto de manipuladores cURL

curl_multi_remove_handle

(PHP 5, PHP 7, PHP 8)

curl_multi_remove_handle — Remove um manipulador de um conjunto de manipuladores cURL

Descrição

curl_multi_remove_handle(CurlMultiHandle $multi_handle, CurlHandle $handle): int

Remove um manipulador especificado por handle do multi-manipulador fornecido por multi_handle. Quando o manipulador handle tiver sido removido, ainda é totalmente correto executar curl_exec() neste manipulador. Remover o manipulador handle enquanto estiver sendo usado, irá efetivamente parar a transferência em progresso envolvendo este manipulador.

Parâmetros

multi_handle

Um manipulador cURL múltiplo retornado por curl_multi_init().

handle

Um manipulador cURL retornado por curl_init().

Valor Retornado

Retorna 0 em caso de sucesso, ou um dos códigos de erro CURLM_XXX.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro multi_handle agora espera uma instância de CurlMultiHandle; anteriormente, um resource era esperado.
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Veja Também

  • curl_init() - Inicializar uma sessão cURL
  • curl_multi_init() - Retorna um multi-manipulador cURL
  • curl_multi_add_handle() - Adiciona um manipulador cURL comum a um manipulador cURL múltiplo


Aguarda por atividade em qualquer multi-conexão cURL

  • « curl_multi_remove_handle
  • curl_multi_setopt »
  • PHP Manual
  • Funções cURL
  • Aguarda por atividade em qualquer multi-conexão cURL

curl_multi_select

(PHP 5, PHP 7, PHP 8)

curl_multi_select — Aguarda por atividade em qualquer multi-conexão cURL

Descrição

curl_multi_select(CurlMultiHandle $multi_handle, float $timeout = 1.0): int

Bloqueia até que haja atividade em quaisquer das multi-conexões cURL.

Parâmetros

multi_handle

Um manipulador cURL múltiplo retornado por curl_multi_init().

timeout

Tempo em segundos a esperar por uma resposta.

Valor Retornado

Em caso de sucesso, retorna o número de descritores contidos nos conjuntos de descritores. Pode ser 0 se não houve atividade em nenhum dos descritores. Em caso de falha, esta função retornará -1 em uma falha de seleção (da chamada de sistema subjacente select()).

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro multi_handle agora espera uma instância de CurlMultiHandle; anteriormente, um resource era esperado.

Veja Também

  • curl_multi_init() - Retorna um multi-manipulador cURL


Define múltiplas opções para cURL

  • « curl_multi_select
  • curl_multi_strerror »
  • PHP Manual
  • Funções cURL
  • Define múltiplas opções para cURL

curl_multi_setopt

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_multi_setopt — Define múltiplas opções para cURL

Descrição

curl_multi_setopt(CurlMultiHandle $multi_handle, int $option, mixed $value): bool

Define uma opção no multi-manipulador cURL informado.

Parâmetros

multi_handle

Um manipulador cURL múltiplo retornado por curl_multi_init().

option

Uma das constantes CURLMOPT_*.

value

O valor a ser configurado em option.

value deve ser um int para os seguintes valores do parâmetro option:

Opção | Configura o value para
CURLMOPT_PIPELINING | Passe 1 para habilitar ou 0 para desabilitar. Habilitar pipelining em um multi controlador irá fazer com que ele tente utilizar HTTP Pipelining quando possível para transferências usando esse controlador. Isso significa que se você adicionar uma segunda requisição que pode utilizar uma conexão já existente, a segunda requisição será transmitida ("piped") na mesma conexão. A partir do cURL 7.43.0 você também pode passar 2 para tentar fazer a nova transferência usando uma conexão HTTP/2 já existente se for possível. Passar 3 instrui o cURL a solicitar pipelining e multiplexação independentemente um do outro. A partir do cURL 7.62.0, definir o bit de pipelining não tem efeito. Ao invés de usar números inteiros literalmente, você pode usar as constantes CURLPIPE_* quando disponíveis.
CURLMOPT_MAXCONNECTS | Passe um número que será usado como o número máximo de conexões abertas simultaneamente que libcurl pode deixar em cache. Por padrão, o tamanho será aumentado para abranger quatro vezes o número de controladores adicionados via curl_multi_add_handle(). Quando o cache estiver cheio, o curl fecha o mais antigo para evitar que o número de conexões abertas aumentem.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE | Passe um número que especifica o limite de tamanho de cada parte para pipelining em bytes.
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE | Passe um número que especifica o limite de tamanho de penalidade para pipelining em bytes.
CURLMOPT_MAX_CONCURRENT_STREAMS | O número definido será usado como o número máximo de fluxos concorrentes que cURL deve suportar em conexões que usam HTTP/2. Valores válidos vão de 1 a 2147483647 (2^31 - 1). O valor passado aqui seria honrado com base em outras propriedades de recursos de sistemas. O padrão é 100.
CURLMOPT_MAX_HOST_CONNECTIONS | Passe um número que especifica o número máximo de conexões à um único host.
CURLMOPT_MAX_PIPELINE_LENGTH | Passe um número que especifica o número máximo de requisições em um pipeline.
CURLMOPT_MAX_TOTAL_CONNECTIONS | Passe um número que especifica o número máximo de conexões abertas simultaneamentes.
CURLMOPT_PUSHFUNCTION Passe um callable que será registrado para manipular o servidor pushes e deve ter a seguinte assinatura:
pushfunction(resource $parent_ch, resource $pushed_ch, array $headers): int
parent_ch

O manipulador cURL pai (a solicitação feita pelo cliente).

pushed_ch

Um novo identificador cURL para a solicitação enviada.

headers

Os cabeçalhos de promessa push.

A função push deve retornar CURL_PUSH_OKse ele pode lidar com o push, ou CURL_PUSH_DENY para rejeitá-lo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.2.0 | Introduzida a constante CURLMOPT_MAX_CONCURRENT_STREAMS.
8.0.0 | O parâmetro multi_handle agora espera uma instância de CurlMultiHandle; anteriormente, um resource era esperado.
7.1.0 | Introduzido CURLMOPT_PUSHFUNCTION.
7.0.7 | Introduzido CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH e CURLMOPT_MAX_TOTAL_CONNECTIONS.


Retorna uma string que descreve o código de erro

  • « curl_multi_setopt
  • curl_pause »
  • PHP Manual
  • Funções cURL
  • Retorna uma string que descreve o código de erro

curl_multi_strerror

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_multi_strerror — Retorna uma string que descreve o código de erro

Descrição

curl_multi_strerror(int $error_code): ?string

Retorna um texto descrevendo o código de erro de CURLM informado como parâmetro.

Parâmetros

error_code

Uma das constantes de » códigos de erros de CURLM.

Valor Retornado

Retorna a descrição do erro para um código de erro válido, caso contrário null.

Exemplos

Exemplo #1 Exemplo de curl_multi_strerror()

<?php
// Cria os manipuladores cURL
$ch1 = curl_init("http://example.com/");
$ch2 = curl_init("http://php.net/");

// Cria um "multi" manipulador cURL
$mh = curl_multi_init();

// Adiciona os manipuladores ao "multi" manipulador
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

// Executa o "multi" manipulador
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
} while ($active && $status === CURLM_OK);

// Verifica se há erros
if ($status != CURLM_OK) {
// Exibe mensagem de erro
echo "ERROR!\n " . curl_multi_strerror($status);
}

?>

Veja Também

  • curl_strerror() - Retorna uma string que descreve o código de erro informado
  • » Códigos de erros do cURL


Pausa ou continua uma conexão

  • « curl_multi_strerror
  • curl_reset »
  • PHP Manual
  • Funções cURL
  • Pausa ou continua uma conexão

curl_pause

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_pause — Pausa ou continua uma conexão

Descrição

curl_pause(CurlHandle $handle, int $flags): int

Pausa ou continua uma sessão cURL. Uma sessão pode ser pausada enquanto uma transferência estiver em progresso, em leitura, escrita, ou ambos, através de chamada a esta função a partir de uma chamade de retorno registrada com curl_setopt().

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

flags

Uma das constantes CURLPAUSE_*.

Valor Retornado

Retorna um código de erro (CURLE_OK se não houver erro).

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.


Reseta todas as opções de um controlador de sessão libcurl

  • « curl_pause
  • curl_setopt_array »
  • PHP Manual
  • Funções cURL
  • Reseta todas as opções de um controlador de sessão libcurl

curl_reset

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_reset — Reseta todas as opções de um controlador de sessão libcurl

Descrição

curl_reset(CurlHandle $handle): void

Essa função reinicializa todas as opções configuradas no controlador cURL informado para os valores padrões.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de curl_reset()

<?php
// Cria um controlador curl
$ch = curl_init();

// Configura a opção CURLOPT_USERAGENT
curl_setopt($ch, CURLOPT_USERAGENT, "My test user-agent");

// Reseta todas as opções que foram configuradas anteriormente
curl_reset($ch);

// Envia a requisição HTTP
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
curl_exec($ch); // o user-agent configurado anteriormente não será enviado porque foi resetado por curl_reset

// Fecha o controlador
curl_close($ch);
?>

Notas

Nota:

curl_reset() também reseta a URL informada no parâmetro curl_init().

Veja Também

  • curl_setopt() - Define uma opção para uma transferência cURL


Define múltiplas opções para uma transferência cURL

  • « curl_reset
  • curl_setopt »
  • PHP Manual
  • Funções cURL
  • Define múltiplas opções para uma transferência cURL

curl_setopt_array

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

curl_setopt_array — Define múltiplas opções para uma transferência cURL

Descrição

curl_setopt_array(CurlHandle $handle, array $options): bool

Define múltiplas opções para uma sessão cURL. Esta função é útil para definir um alto número de opções cURL sem chamar repetitivamente a função curl_setopt().

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

options

Um array especificando que opções serão definidas e seus valores. As chaves devem ser constantes válidas da função curl_setopt() ou suas equivalentes em número inteiro.

Valor Retornado

Retorna true se todas as opções forem definidas com sucesso. Se uma opção não puder ser definida com sucesso, false é retornado imediatamente, ignorando quaisquer opções posteriores do array options.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Inicializando uma nova sessão cURL e recebendo uma página da web

<?php
// cria um novo recurso cURL
$ch = curl_init();

// define URL e outras opções apropriadas
$options = array(CURLOPT_URL => 'http://www.example.com/',
CURLOPT_HEADER => false
);

curl_setopt_array($ch, $options);

// captura a URL e passa ao navegador
curl_exec($ch);

// fecha o recurso cURL, liberando recursos do sistema
curl_close($ch);
?>

Notas

Nota:

Assim como a função curl_setopt(), passar um array em CURLOPT_POST irá codificar os dados como multipart/form-data, enquanto que passar uma string codificada como URL irá codificar os dados como application/x-www-form-urlencoded.

Veja Também

  • curl_setopt() - Define uma opção para uma transferência cURL


Define uma opção para uma transferência cURL

  • « curl_setopt_array
  • curl_share_close »
  • PHP Manual
  • Funções cURL
  • Define uma opção para uma transferência cURL

curl_setopt

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_setopt — Define uma opção para uma transferência cURL

Descrição

curl_setopt(CurlHandle $handle, int $option, mixed $value): bool

Define uma opção no identificador de sessão cURL fornecido.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

option

A opção CURLOPT_XXX a ser definida.

value

O valor a ser definido na option.

value deve ser um bool para os seguintes valores do parâmetro option:

Opção | Definir value para | Notas
CURLOPT_AUTOREFERER | true para definir automaticamente o campo Referer: nas solicitações em que segue um Location: redirect.
CURLOPT_COOKIESESSION | true para marcar isso como uma nova "sessão" de cookie. Isso forçará o libcurl a ignorar todos os cookies que está prestes a carregar que são "cookies de sessão" da sessão anterior. Por padrão, libcurl sempre armazena e carrega todos os cookies, independente se são cookies de sessão ou não. Os cookies de sessão são cookies sem prazo de validade e devem estar ativos e existentes apenas para esta "sessão".
CURLOPT_CERTINFO | true para enviar informações de certificação SSL para STDERR em transferências seguras. | Adicionado no cURL 7.19.1. Requer que CURLOPT_VERBOSE esteja ativado para ter efeito.
CURLOPT_CONNECT_ONLY | true diz à biblioteca para executar toda a autenticação de proxy necessária e configuração de conexão, mas nenhuma transferência de dados. Esta opção é implementada para HTTP, SMTP e POP3. | Adicionado em 7.15.2.
CURLOPT_CRLF | true para converter novas linhas Unix em novas linhas CRLF em transferências.
CURLOPT_DISALLOW_USERNAME_IN_URL | true para não permitir URLs que incluam um nome de usuário. Os nomes de usuário são permitidos por padrão (0). | Adicionado no cURL 7.61.0. Disponível desde PHP 7.3.0.
CURLOPT_DNS_SHUFFLE_ADDRESSES | true para embaralhar a ordem de todos os endereços retornados para que sejam usados em uma ordem aleatória, quando um nome for resolvido e mais de um endereço IP for retornado. Isso pode fazer com que o IPv4 seja usado antes do IPv6 ou vice-versa. | Adicionado no cURL 7.60.0. Disponível desde PHP 7.3.0.
CURLOPT_HAPROXYPROTOCOL | true para enviar um cabeçalho do protocolo HAProxy PROXY v1 no início da conexão. A ação padrão é não enviar este cabeçalho. | Adicionado no cURL 7.60.0. Disponível desde PHP 7.3.0.
CURLOPT_SSH_COMPRESSION | true para ativar a compactação SSH integrada. Este é um pedido, não uma ordem; o servidor pode ou não fazê-lo. | Adicionado no cURL 7.56.0. Disponível desde PHP 7.3.0.
CURLOPT_DNS_USE_GLOBAL_CACHE | true para usar um cache DNS global. Esta opção não é thread-safe. Ele é ativado condicionalmente por padrão se o PHP for construído para uso não encadeado (CLI, FCGI, Apache2-Prefork, etc.).
CURLOPT_FAILONERROR | true para falhar detalhadamente se o código HTTP retornado for maior ou igual a 400. O comportamento padrão é retornar a página normalmente, ignorando o código.
CURLOPT_SSL_FALSESTART | true para habilitar início falso de TLS. | Adicionado no cURL 7.42.0. Disponível desde PHP 7.0.7.
CURLOPT_FILETIME | true para tentar recuperar a data de modificação do documento remoto. Esse valor pode ser recuperado usando a opção CURLINFO_FILETIME com curl_getinfo().
CURLOPT_FOLLOWLOCATION | true para seguir qualquer cabeçalho "Location: " que o servidor envia como parte do cabeçalho HTTP. Consulte também CURLOPT_MAXREDIRS.
CURLOPT_FORBID_REUSE | true para forçar a conexão a fechar explicitamente quando terminar o processamento e não ser agrupada para reutilização.
CURLOPT_FRESH_CONNECT | true para forçar o uso de uma nova conexão em vez de uma em cache.
CURLOPT_FTP_USE_EPRT | true para usar EPRT (e LPRT) ao fazer downloads FTP ativos. Use false para desabilitar EPRT e LPRT e use apenas PORT.
CURLOPT_FTP_USE_EPSV | true para tentar primeiro um comando EPSV para transferências FTP antes de reverter para PASV. Defina como false para desativar o EPSV.
CURLOPT_FTP_CREATE_MISSING_DIRS | true para criar diretórios ausentes quando uma operação de FTP encontra um caminho que não existe no momento.
CURLOPT_FTPAPPEND | true para acrescentar ao arquivo remoto em vez de substituí-lo.
CURLOPT_TCP_NODELAY | true para desabilitar o algoritmo Nagle do TCP, que tenta minimizar o número de pequenos pacotes na rede. | Disponível para versões compiladas com libcurl 7.11.2 ou superior.
CURLOPT_FTPASCII | Um alias de CURLOPT_TRANSFERTEXT. Use isso em vez disso.
CURLOPT_FTPLISTONLY | true para listar apenas os nomes de um diretório FTP.
CURLOPT_HEADER | true para incluir o cabeçalho na saída.
CURLINFO_HEADER_OUT | true para rastrear a string de solicitação do identificador. | O prefixo CURLINFO_ é intencional.
CURLOPT_HTTP09_ALLOWED | Se deve permitir respostas HTTP/0.9. O padrão é false a partir de libcurl 7.66.0; anteriormente, o padrão era true. | Disponível desde PHP 7.3.15 e 7.4.3, respectivamente, se construído em libcurl >= 7.64.0
CURLOPT_HTTPGET | true para redefinir o método de solicitação HTTP para GET. Como GET é o padrão, isso só é necessário se o método de solicitação tiver sido alterado.
CURLOPT_HTTPPROXYTUNNEL | true para encapsular por meio de um determinado proxy HTTP.
CURLOPT_HTTP_CONTENT_DECODING | false para obter o corpo da resposta HTTP bruta. | Disponível se construído em libcurl >= 7.16.2.
CURLOPT_KEEP_SENDING_ON_ERROR | true para continuar enviando o corpo da solicitação se o código HTTP retornado for igual ou maior que 300. A ação padrão seria interromper o envio e fechar o fluxo ou a conexão. Adequado para autenticação NTLM manual. A maioria dos aplicativos não precisa dessa opção. | Disponível a partir do PHP 7.3.0 se construído em libcurl >= 7.51.0.
CURLOPT_MUTE | true para ser completamente silencioso em relação às funções cURL. | Removido no cURL 7.15.5 (em vez disso, você pode usar CURLOPT_RETURNTRANSFER)
CURLOPT_NETRC | true para verificar o arquivo ~/.netrc para localizar um nome de usuário e senha para o site remoto com o qual uma conexão está sendo estabelecida.
CURLOPT_NOBODY | true para excluir o corpo da saída. O método de solicitação é definido como HEAD. Alterar isso para false não o altera para GET.
CURLOPT_NOPROGRESS

true para desabilitar o medidor de progresso para transferências cURL.

Nota:

O PHP define automaticamente esta opção como true, isso só deve ser alterado para fins de depuração.

CURLOPT_NOSIGNAL | true para ignorar qualquer função cURL que faça com que um sinal seja enviado ao processo PHP. Isso é ativado por padrão em SAPIs multi-threaded para que as opções de tempo limite ainda possam ser usadas. | Adicionado no cURL 7.10.
CURLOPT_PATH_AS_IS | true para não lidar com sequências de ponto e ponto. | Adicionado no cURL 7.42.0. Disponível desde PHP 7.0.7.
CURLOPT_PIPEWAIT | true para aguardar pipelining/multiplexing. | Adicionado no cURL 7.42.0. Disponível desde PHP 7.0.7.
CURLOPT_POST | true para fazer um POST HTTP regular. Este POST é o tipo application/x-www-form-urlencoded normal, mais comumente usado por formulários HTML.
CURLOPT_PUT | true para HTTP PUT um arquivo. O arquivo para PUT deve ser configurado com CURLOPT_INFILE e CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER | true para retornar a transferência como uma string do valor de retorno de curl_exec() em vez de emiti-la diretamente.
CURLOPT_SASL_IR | true para habilitar o envio da resposta inicial no primeiro pacote. | Adicionado em cURL 7.31.10. Disponível desde PHP 7.0.7.
CURLOPT_SSL_ENABLE_ALPN | false para desabilitar o ALPN no handshake SSL (se o backend SSL libcurl for construído para usá-lo), que pode ser usado para negociar http2. | Adicionado no cURL 7.36.0. Disponível desde PHP 7.0.7.
CURLOPT_SSL_ENABLE_NPN | false para desabilitar o NPN no handshake SSL (se o backend SSL libcurl for construído para usá-lo), que pode ser usado para negociar http2. | Adicionado no cURL 7.36.0. Disponível desde PHP 7.0.7.
CURLOPT_SSL_VERIFYPEER | false para impedir que o cURL verifique o certificado do par. Certificados alternativos para verificação podem ser especificados com a opção CURLOPT_CAINFO ou um diretório de certificados pode ser especificado com a opção CURLOPT_CAPATH. | true por padrão a partir do cURL 7.10. Pacote padrão instalado a partir do cURL 7.10.
CURLOPT_SSL_VERIFYSTATUS | true para verificar o status do certificado. | Adicionado no cURL 7.41.0. Disponível desde PHP 7.0.7.
CURLOPT_PROXY_SSL_VERIFYPEER | false para impedir que o cURL verifique o certificado do par. Certificados alternativos para verificação podem ser especificados com a opção CURLOPT_CAINFO ou um diretório de certificados pode ser especificado com a opção CURLOPT_CAPATH. Quando definido como falso, a verificação do certificado de mesmo nível é bem-sucedida. | true por padrão. Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_SAFE_UPLOAD | Sempre true, o que desabilita o suporte para o prefixo @ para upload de arquivos em CURLOPT_POSTFIELDS, o que significa que os valores que começam com @ podem ser passados com segurança como campos. CURLFile pode ser usado para uploads.
CURLOPT_SUPPRESS_CONNECT_HEADERS | true para suprimir os cabeçalhos de resposta CONNECT do proxy das funções de callback do usuário CURLOPT_HEADERFUNCTION e CURLOPT_WRITEFUNCTION, quando CURLOPT_HTTPPROXYTUNNEL é usado e uma solicitação CONNECT é feita. | Adicionado no cURL 7.54.0. Disponível desde PHP 7.3.0
CURLOPT_TCP_FASTOPEN | true para habilitar TCP Fast Open. | Adicionado em cURL 7.49.0. Disponível desde PHP 7.0.7.
CURLOPT_TFTP_NO_OPTIONS | true para não enviar solicitações de opções TFTP. | Adicionado no cURL 7.48.0. Disponível desde PHP 7.0.7.
CURLOPT_TRANSFERTEXT | true para usar o modo ASCII para transferências FTP. Para LDAP, ele recupera dados em texto simples em vez de HTML. Em sistemas Windows, ele não definirá STDOUT para o modo binário.
CURLOPT_UNRESTRICTED_AUTH | true para continuar enviando o nome de usuário e a senha ao seguir os locais (usando CURLOPT_FOLLOWLOCATION), mesmo quando o nome do host foi alterado.
CURLOPT_UPLOAD | true para se preparar para um upload.
CURLOPT_VERBOSE | true para gerar informações detalhadas. Grava a saída em STDERR ou no arquivo especificado usando CURLOPT_STDERR.

value deve ser um int para os seguintes valores do parâmetro option:

Opção | Definir value para | Notas
CURLOPT_BUFFERSIZE | O tamanho do buffer a ser usado para cada leitura. No entanto, não há garantia de que essa solicitação será atendida. | Added in cURL 7.10.
CURLOPT_CONNECTTIMEOUT | O número de segundos a aguardar durante a tentativa de conexão. Use 0 para esperar indefinidamente.
CURLOPT_CONNECTTIMEOUT_MS | O número de milissegundos de espera durante a tentativa de conexão. Use 0 para esperar indefinidamente. Se libcurl for construído para usar o resolvedor de nome do sistema padrão, essa parte da conexão ainda usará a resolução de segundo completo para tempos limite com um tempo limite mínimo permitido de um segundo. | Adicionado no cURL 7.16.2.
CURLOPT_DNS_CACHE_TIMEOUT | O número de segundos para manter as entradas DNS na memória. Esta opção é definida como 120 (2 minutos) por padrão.
CURLOPT_EXPECT_100_TIMEOUT_MS | O tempo limite para respostas de Expect: 100-continue em milissegundos. O padrão é 1000 milissegundos. | Adicionado no cURL 7.36.0. Disponível desde PHP 7.0.7.
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS | Avance para o ipv6 para o algoritmo de happy eyeballs. Happy eyeballs tenta se conectar a endereços IPv4 e IPv6 para hosts dual-stack, preferindo IPv6 primeiro para milissegundos de tempo limite. O padrão é CURL_HET_DEFAULT, que atualmente é de 200 milissegundos. | Adicionado em cURL 7.59.0. Disponível desde PHP 7.3.0.
CURLOPT_FTPSSLAUTH | O método de autenticação FTP (quando ativado): CURLFTPAUTH_SSL (tenta SSL primeiro), CURLFTPAUTH_TLS (tenta TLS primeiro) ou CURLFTPAUTH_DEFAULT (deixa o cURL decidir). | Adicionado no cURL 7.12.2.
CURLOPT_HEADEROPT | Como lidar com cabeçalhos. Uma das seguintes constantes: CURLHEADER_UNIFIED: os cabeçalhos especificados em CURLOPT_HTTPHEADER serão utilizados nas requisições tanto para servidores quanto para proxies. Com esta opção habilitada, CURLOPT_PROXYHEADER não terá nenhum efeito. CURLHEADER_SEPARATE: faz com que os cabeçalhos CURLOPT_HTTPHEADER sejam enviados apenas para um servidor e não para um proxy. Os cabeçalhos de proxy devem ser definidos com CURLOPT_PROXYHEADER para serem usados. Observe que, se uma solicitação non-CONNECT for enviada a um proxy, libcurl enviará cabeçalhos de servidor e cabeçalhos de proxy. Ao fazer CONNECT, libcurl enviará cabeçalhos CURLOPT_PROXYHEADER apenas para o proxy e, em seguida, cabeçalhos CURLOPT_HTTPHEADER apenas para o servidor. O padrão é CURLHEADER_SEPARATE a partir de cURL 7.42.1 e CURLHEADER_UNIFIED antes. | Adicionado no cURL 7.37.0. Disponível desde PHP 7.0.7.
CURLOPT_HTTP_VERSION | CURL_HTTP_VERSION_NONE (padrão, permite que CURL decida qual versão usar), CURL_HTTP_VERSION_1_0 (força HTTP/1.0), CURL_HTTP_VERSION_1_1 (força HTTP/1.1), CURL_HTTP_VERSION_2_0 (tenta HTTP 2), CURL_HTTP_VERSION_2 (alias de CURL_HTTP_VERSION_2_0), CURL_HTTP_VERSION_2TLS (somente tenta HTTP 2 sobre TLS (HTTPS)) ou CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (emite solicitações HTTP não TLS usando HTTP/2 sem atualização HTTP/1.1).
CURLOPT_HTTPAUTH

Os métodos de autenticação HTTP a serem usados. As opções são: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_AWS_SIGV4, CURLAUTH_ANY e CURLAUTH_ANYSAFE.

O operador | (ou) pode ser usado para combinar mais de um método. Se isso for feito, o cURL pesquisará o servidor para ver quais métodos ele suporta e escolher o melhor.

CURLAUTH_ANY define todos os bits. cURL selecionará automaticamente aquele que encontrar mais seguro.

CURLAUTH_ANYSAFE define todos os bits, exceto CURLAUTH_BASIC. cURL selecionará automaticamente o método que considerar mais seguro.

CURLOPT_INFILESIZE | O tamanho esperado, em bytes, do arquivo ao fazer upload de um arquivo para um site remoto. Observe que usar esta opção não impedirá que libcurl envie mais dados, pois exatamente o que é enviado depende de CURLOPT_READFUNCTION.
CURLOPT_LOW_SPEED_LIMIT | A velocidade de transferência, em bytes por segundo, que a transferência deve estar abaixo durante a contagem de CURLOPT_LOW_SPEED_TIME segundos antes do PHP considerar a transferência muito lenta e abortar.
CURLOPT_LOW_SPEED_TIME | O número de segundos que a velocidade de transferência deve estar abaixo de CURLOPT_LOW_SPEED_LIMIT antes que o PHP considere a transferência muito lenta e aborte.
CURLOPT_MAIL_RCPT_ALLLOWFAILS | Permite que o comando RCPT TO falhe para alguns destinatários. | Ao enviar dados para vários destinatários, por padrão, o cURL abortará a conversa SMTP se pelo menos um dos destinatários causar um erro ao comando RCPT TO. Esta opção instrui o cURL a ignorar erros e prosseguir com os destinatários válidos restantes. Se todos os destinatários acionarem falhas no RCPT TO e esta sinalização estiver configurada, o cURL abortará a conversa SMTP e retornará o erro recebido do último comando RCPT TO.
CURLOPT_MAXAGE_CONN | O tempo máximo de inatividade permitido para que uma conexão existente seja considerada para reutilização. O padrão é definido como 118 segundos.
CURLOPT_MAXFILESIZE_LARGE | O tamanho máximo do arquivo em bytes permitido para download. Se o arquivo solicitado for encontrado com um tamanho maior do que esse valor, a transferência não será iniciada e será retornado CURLE_FILESIZE_EXCEEDED. O tamanho do arquivo nem sempre é conhecido antes do download, e para tais arquivos, esta opção não tem efeito, mesmo que a transferência do arquivo acabe sendo maior do que esse limite fornecido.
CURLOPT_MAXLIFETIME_CONN | O tempo máximo em segundos, desde a criação da conexão, permitido para que uma conexão existente seja considerada para reutilização. Se for encontrada uma conexão em cache que seja mais antiga do que esse valor, ela será fechada assim que quaisquer transferências em andamento forem concluídas. O padrão é 0 segundos, o que significa que a opção está desativada e todas as conexões são elegíveis para reutilização.
CURLOPT_MAXCONNECTS | A quantidade máxima de conexões persistentes permitidas. Quando o limite é atingido, o mais antigo do cache é fechado para evitar o aumento do número de conexões abertas.
CURLOPT_MAXREDIRS | A quantidade máxima de redirecionamentos HTTP a seguir. Use esta opção juntamente com CURLOPT_FOLLOWLOCATION. O valor padrão de 20 é definido para evitar redirecionamentos infinitos. Definir como -1 permite redirecionamentos infinitos e 0 recusa todos os redirecionamentos.
CURLOPT_PORT | Um número de porta alternativo para se conectar.
CURLOPT_POSTREDIR | Uma máscara de bits de 1 (301 movido permanentemente), 2 (302 encontrado) e 4 (303 consulte outro) se o método HTTP POST deve ser mantido quando CURLOPT_FOLLOWLOCATION é definido e ocorre um tipo específico de redirecionamento. | Adicionado no cURL 7.19.1.
CURLOPT_PROTOCOLS

Máscara de bits de valores CURLPROTO_*. Se usado, esta máscara de bits limita quais protocolos libcurl pode usar na transferência. Isso permite que você tenha um libcurl construído para suportar uma ampla gama de protocolos, mas ainda limitar transferências específicas para poder usar apenas um subconjunto deles. Por padrão, o libcurl aceitará todos os protocolos que ele suporta. Consulte também CURLOPT_REDIR_PROTOCOLS.

As opções de protocolo válidas são: CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP, CURLPROTO_MQTT, CURLPROTO_ALL

Adicionado no cURL 7.19.4.
CURLOPT_PROXYAUTH | Os métodos de autenticação HTTP a serem usados para a conexão proxy. Use as mesmas máscaras de bits descritas em CURLOPT_HTTPAUTH. Para autenticação de proxy, apenas CURLAUTH_BASIC e CURLAUTH_NTLM são suportados atualmente. | Adicionado no cURL 7.10.7.
CURLOPT_PROXYPORT | O número da porta do proxy ao qual se conectar. Esse número de porta também pode ser definido em CURLOPT_PROXY.
CURLOPT_PROXYTYPE | CURLPROXY_HTTP (padrão), CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A ou CURLPROXY_SOCKS5_HOSTNAME. | Adicionado no cURL 7.10.
CURLOPT_REDIR_PROTOCOLS | Máscara de bits de valores CURLPROTO_* Se usado, esta máscara de bits limita quais protocolos libcurl pode usar em uma transferência que segue em um redirecionamento quando CURLOPT_FOLLOWLOCATION está ativado. Isso permite que você limite transferências específicas para usar apenas um subconjunto de protocolos em redirecionamentos. Por padrão, libcurl permitirá todos os protocolos, exceto FILE e SCP. Esta é uma diferença em relação às versões pré-7.19.4 que seguiriam incondicionalmente para todos os protocolos suportados. Consulte também CURLOPT_PROTOCOLS para valores constantes de protocolo. | Adicionado no cURL 7.19.4.
CURLOPT_RESUME_FROM | O deslocamento, em bytes, do qual retomar uma transferência.
CURLOPT_SOCKS5_AUTH

Os métodos de autenticação SOCKS5 a serem usados. As opções são: CURLAUTH_BASIC, CURLAUTH_GSSAPI, CURLAUTH_NONE.

O operador | (ou) pode ser usado para combinar mais de um método. Se isso for feito, o cURL pesquisará o servidor para ver quais métodos ele suporta e escolher o melhor.

CURLAUTH_BASIC permite autenticação de nome de usuário/senha.

CURLAUTH_GSSAPI permite autenticação GSS-API.

CURLAUTH_NONE não permite autenticação.

O padrão é CURLAUTH_BASIC|CURLAUTH_GSSAPI. Defina o nome de usuário e a senha reais com a opção CURLOPT_PROXYUSERPWD.

Disponível a partir de 7.3.0 e curl >= 7.55.0.
CURLOPT_SSL_OPTIONS | Defina as opções de comportamento SSL, que é uma máscara de bits de qualquer uma das seguintes constantes: CURLSSLOPT_ALLOW_BEAST: não tente usar soluções alternativas para uma falha de segurança nos protocolos SSL3 e TLS1.0. CURLSSLOPT_NO_REVOKE: desabilita as verificações de revogação de certificado para os back-ends SSL em que tal comportamento está presente. CURLSSLOPT_AUTO_CLIENT_CERT: localiza e utiliza automaticamente um certificado de cliente para autenticação quando solicitado pelo servidor. Esta opção é suportada apenas para Schannel (a biblioteca SSL nativa do Windows). CURLSSLOPT_NATIVE_CA: utiliza o armazenamento de CA nativo do sistema operacional para verificação de certificados. Funciona apenas no Windows quando construído para usar o OpenSSL. Esta opção é experimental e seu comportamento está sujeito a alterações. CURLSSLOPT_NO_PARTIALCHAIN: não aceite cadeias de certificados 'parciais', que o cURL, de outra forma, faz por padrão. Esta opção é suportada apenas para o OpenSSL e falhará na verificação do certificado se a cadeia terminar com um certificado intermediário e não com um certificado raiz. CURLSSLOPT_REVOKE_BEST_EFFORT: ignora verificações de revogação de certificado no caso de pontos de distribuição ausentes ou offline para os backends SSL em que esse comportamento está presente. Esta opção é suportada apenas para Schannel (a biblioteca SSL nativa do Windows). Se combinada com CURLSSLOPT_NO_REVOKE, esta última tem precedência. | Adicionado no cURL 7.25.0. Disponível desde PHP 7.0.7.
CURLOPT_SSL_VERIFYHOST | 2 para verificar se um campo Nome comum ou um campo Nome alternativo do assunto no certificado de mesmo nível SSL corresponde ao nome de host fornecido. 0 para não verificar os nomes. 1 não deve ser usado. Em ambientes de produção o valor desta opção deve ser mantido em 2 (valor padrão). | Suporte para o valor 1 removido no cURL 7.28.1.
CURLOPT_SSLVERSION Um de CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5), CURL_SSLVERSION_TLSv1_2 (6) ou CURL_SSLVERSION_TLSv1_3 (7). A versão máxima do TLS pode ser definida usando uma das constantes CURL_SSLVERSION_MAX_*. Também é possível OR uma das constantes CURL_SSLVERSION_* com uma das constantes CURL_SSLVERSION_MAX_*. CURL_SSLVERSION_MAX_DEFAULT (a versão máxima suportada pela biblioteca), CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, CURL_SSLVERSION_MAX_TLSv1_2, ou CURL_SSLVERSION_MAX_TLSv1_3.

Nota:

Sua melhor aposta é não definir isso e deixá-lo usar o padrão. Defini-lo como 2 ou 3 é muito perigoso devido às vulnerabilidades conhecidas em SSLv2 e SSLv3.

CURLOPT_PROXY_SSL_OPTIONS | Defina as opções de comportamento SSL do proxy, que é uma máscara de bits de qualquer uma das seguintes constantes: CURLSSLOPT_ALLOW_BEAST: não tente usar soluções alternativas para uma falha de segurança nos protocolos SSL3 e TLS1.0. CURLSSLOPT_NO_REVOKE: desabilita as verificações de revogação de certificado para os back-ends SSL em que tal comportamento está presente. (curl >= 7.44.0) CURLSSLOPT_NO_PARTIALCHAIN: não aceita cadeias de certificados "parciais", o que de outra forma faz por padrão. (curl >= 7.68.0) | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSL_VERIFYHOST | Defina como 2 para verificar os campos de nome do certificado do proxy HTTPS em relação ao nome do proxy. Quando definido como 0, a conexão é bem-sucedida, independentemente dos nomes usados no certificado. Use essa habilidade com cuidado! 1 tratado como uma opção de depuração no curl 7.28.0 e anteriores. De curl 7.28.1 a 7.65.3, CURLE_BAD_FUNCTION_ARGUMENT é retornado. Do curl 7.66.0 em diante, 1 e 2 são tratados como o mesmo valor. Em ambientes de produção o valor desta opção deve ser mantido em 2 (valor padrão). | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLVERSION Um de CURL_SSLVERSION_DEFAULT, CURL_SSLVERSION_TLSv1, CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, CURL_SSLVERSION_TLSv1_2, CURL_SSLVERSION_TLSv1_3, CURL_SSLVERSION_MAX_DEFAULT, CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, CURL_SSLVERSION_MAX_TLSv1_2, CURL_SSLVERSION_MAX_TLSv1_3 ou CURL_SSLVERSION_SSLv3.

Nota:

Sua melhor aposta é não definir isso e deixá-lo usar o CURL_SSLVERSION_DEFAULT padrão, que tentará descobrir a versão remota do protocolo SSL.

Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_STREAM_WEIGHT | Defina o peso numérico do fluxo (um número entre 1 e 256). | Adicionado no cURL 7.46.0. Disponível desde PHP 7.0.7.
CURLOPT_TCP_KEEPALIVE | Se definido como 1, as sondagens de manutenção de atividade do TCP serão enviadas. O atraso e a frequência dessas sondagens podem ser controlados pelas opções CURLOPT_TCP_KEEPIDLE e CURLOPT_TCP_KEEPINTVL, desde que o sistema operacional as suporte. Se definido como 0 (padrão), os testes de manutenção de atividade são desativados. | Adicionado no cURL 7.25.0.
CURLOPT_TCP_KEEPIDLE | Define o atraso, em segundos, que o sistema operacional aguardará enquanto a conexão estiver ociosa antes de enviar testes de manutenção de atividade, se CURLOPT_TCP_KEEPALIVE estiver ativado. Nem todos os sistemas operacionais oferecem suporte a essa opção. O padrão é 60. | Adicionado no cURL 7.25.0.
CURLOPT_TCP_KEEPINTVL | Define o intervalo, em segundos, que o sistema operacional aguardará entre o envio de análises de manutenção de atividade, se CURLOPT_TCP_KEEPALIVE estiver ativado. Nem todos os sistemas operacionais oferecem suporte a essa opção. O padrão é 60. | Adicionado no cURL 7.25.0.
CURLOPT_TIMECONDITION | Como CURLOPT_TIMEVALUE é tratado. Use CURL_TIMECOND_IFMODSINCE para retornar a página somente se ela tiver sido modificada desde o horário especificado em CURLOPT_TIMEVALUE. Se não foi modificado, um cabeçalho "304 Not Modified" será retornado assumindo que CURLOPT_HEADER é true. Use CURL_TIMECOND_IFUNMODSINCE para o efeito reverso. Use CURL_TIMECOND_NONE para ignorar CURLOPT_TIMEVALUE e sempre retornar a página. CURL_TIMECOND_NONE é o padrão. | Antes do cURL 7.46.0, o padrão era CURL_TIMECOND_IFMODSINCE.
CURLOPT_TIMEOUT | O número máximo de segundos para permitir que as funções cURL sejam executadas.
CURLOPT_TIMEOUT_MS | O número máximo de milissegundos para permitir que as funções cURL sejam executadas. Se libcurl for construído para usar o resolvedor de nome do sistema padrão, essa parte da conexão ainda usará a resolução de segundo completo para tempos limite com um tempo limite mínimo permitido de um segundo. | Adicionado no cURL 7.16.2.
CURLOPT_TIMEVALUE | O tempo em segundos desde 1º de janeiro de 1970. O tempo será usado por CURLOPT_TIMECONDITION.
CURLOPT_TIMEVALUE_LARGE | O tempo em segundos desde 1º de janeiro de 1970. O tempo será usado por CURLOPT_TIMECONDITION. O padrão é zero. A diferença entre esta opção e CURLOPT_TIMEVALUE é o tipo do argumento. Em sistemas onde 'long' tem apenas 32 bits de largura, esta opção deve ser usada para definir datas além do ano de 2038. | Adicionado em cURL 7.59.0. Disponível desde PHP 7.3.0.
CURLOPT_UPKEEP_INTERVAL_MS | Alguns protocolos possuem mecanismos de 'manutenção de conexão'. Esses mecanismos geralmente enviam algum tráfego nas conexões existentes para mantê-las ativas. Esta opção define o intervalo de manutenção de conexão. Atualmente, o único protocolo com um mecanismo de manutenção de conexão é o HTTP/2. Quando o intervalo de manutenção de conexão é excedido, um quadro PING do HTTP/2 é enviado na conexão. O valor padrão é de 60 segundos.
CURLOPT_UPLOAD_BUFFERSIZE | Tamanho de buffer preferido em bytes para o buffer de envio do cURL. O tamanho padrão do buffer de envio é de 64 kilobytes. O tamanho máximo do buffer permitido a ser definido é de 2 megabytes. O tamanho mínimo do buffer permitido a ser definido é de 16 kilobytes.
CURLOPT_MAX_RECV_SPEED_LARGE | Se um download exceder essa velocidade (contada em bytes por segundo) na média cumulativa durante a transferência, a transferência será pausada para manter a taxa média menor ou igual ao valor do parâmetro. O padrão é velocidade ilimitada. | Adicionado no cURL 7.15.5.
CURLOPT_MAX_SEND_SPEED_LARGE | Se um upload exceder essa velocidade (contada em bytes por segundo) na média cumulativa durante a transferência, a transferência será pausada para manter a taxa média menor ou igual ao valor do parâmetro. O padrão é velocidade ilimitada. | Adicionado no cURL 7.15.5.
CURLOPT_SSH_AUTH_TYPES | Uma máscara de bits que consiste em um ou mais CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD. Defina como CURLSSH_AUTH_ANY para permitir que libcurl escolha um. | Adicionado no cURL 7.16.1.
CURLOPT_IPRESOLVE | Permite que um aplicativo selecione que tipo de endereço IP usar ao resolver nomes de host. Isso só é interessante ao usar nomes de host que resolvem endereços usando mais de uma versão de IP, os valores possíveis são CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_V4, CURL_IPRESOLVE_V6, por padrão CURL_IPRESOLVE_WHATEVER. | Adicionado no cURL 7.10.8.
CURLOPT_FTP_FILEMETHOD | Diga ao curl qual método usar para acessar um arquivo em um servidor FTP(S). Os valores possíveis são CURLFTPMETHOD_DEFAULT, CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD e CURLFTPMETHOD_SINGLECWD. | Adicionado no cURL 7.15.1.

value deve ser uma string para os seguintes valores do parâmetro option:

Opção | Definir value para | Notas
CURLOPT_ABSTRACT_UNIX_SOCKET | Permite o uso de um socket de domínio Unix abstrato em vez de estabelecer uma conexão TCP com um host e define o caminho para a string fornecida. Esta opção compartilha a mesma semântica que CURLOPT_UNIX_SOCKET_PATH. Essas duas opções compartilham o mesmo armazenamento e, portanto, apenas uma delas pode ser definida por identificador. | Disponível desde PHP 7.3.0 e cURL 7.53.0
CURLOPT_ALTSVC | Passe o nome do arquivo para o cURL usar como arquivo de cache Alt-Svc para ler os conteúdos em cache existentes e, possivelmente, gravá-los de volta após uma transferência, a menos que CURLALTSVC_READONLYFILE seja definido via CURLOPT_ALTSVC_CTRL.
CURLOPT_ALTSVC_CTRL | Preencha a máscara de bits com o conjunto correto de recursos para instruir o cURL sobre como lidar com Alt-Svc para as transferências. O cURL só aceita cabeçalhos Alt-Svc sobre HTTPS. Ele também só completará uma solicitação para uma origem alternativa se essa origem estiver devidamente hospedada sobre HTTPS. Definir qualquer bit habilitará o mecanismo Alt-Svc. As opções são: CURLALTSVC_H1, CURLALTSVC_H2, CURLALTSVC_H3, e CURLALTSVC_READONLYFILE.
CURLOPT_AWS_SIGV4

Fornecer autenticação de assinatura AWS V4 no cabeçalho HTTP(S).

Esta opção substitui quaisquer outros tipos de autenticação que tenham sido definidos em CURLOPT_HTTPAUTH. Este método não pode ser combinado com outros tipos de autenticação.

CURLOPT_CAINFO | O nome de um arquivo contendo um ou mais certificados para verificar com o par. Isso só faz sentido quando usado em combinação com CURLOPT_SSL_VERIFYPEER. | Pode exigir um caminho absoluto.
CURLOPT_CAINFO_BLOB | O nome de um arquivo PEM que contém um ou mais certificados para verificar o peer. Esta opção substitui CURLOPT_CAINFO. | Disponível a partir do PHP 8.2.0 e cURL 7.77.0.
CURLOPT_CAPATH | Um diretório que contém vários certificados de CA. Use esta opção juntamente com CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE | O conteúdo do cabeçalho "Cookie: " a ser usado na solicitação HTTP. Observe que vários cookies são separados por um ponto e vírgula seguido por um espaço (exemplo: "fruit=apple; colour=red")
CURLOPT_COOKIEFILE | O nome do arquivo que contém os dados do cookie. O arquivo de cookie pode estar no formato Netscape ou apenas cabeçalhos de estilo HTTP simples despejados em um arquivo. Se o nome for uma string vazia, nenhum cookie será carregado, mas a manipulação de cookies ainda estará habilitada.
CURLOPT_COOKIEJAR | O nome de um arquivo para salvar todos os cookies internos quando o identificador é fechado, por exemplo após uma chamada para curl_close.
CURLOPT_COOKIELIST | Uma string de cookie (ou seja, uma única linha no formato Netscape/Mozilla ou um cabeçalho Set-Cookie regular estilo HTTP) adiciona esse único cookie ao armazenamento interno de cookies. "ALL" apaga todos os cookies mantidos na memória. "SESS" apaga todos os cookies de sessão mantidos na memória. "FLUSH" grava todos os cookies conhecidos no arquivo especificado por CURLOPT_COOKIEJAR. "RELOAD" carrega todos os cookies dos arquivos especificados por CURLOPT_COOKIEFILE. | Disponível desde cURL 7.14.1.
CURLOPT_CUSTOMREQUEST

Um método de solicitação personalizado para usar em vez de "GET" ou "HEAD" ao fazer uma solicitação HTTP. Isso é útil para fazer "DELETE" ou outras solicitações HTTP mais obscuras. Os valores válidos são coisas como "GET", "POST", "CONNECT" e assim por diante; ou seja, não insira uma linha de solicitação HTTP inteira aqui. Por exemplo, inserir "GET /index.html HTTP/1.0\r\n\r\n" seria incorreto.

Nota:

Não faça isso sem antes certificar-se de que o servidor oferece suporte ao método de solicitação personalizado.

CURLOPT_DEFAULT_PROTOCOL

O protocolo padrão a ser usado se a URL não tiver um nome de esquema.

Adicionado no cURL 7.45.0. Disponível desde PHP 7.0.7.
CURLOPT_DNS_INTERFACE

Defina o nome da interface de rede à qual o resolvedor de DNS deve se vincular. Deve ser um nome de interface (não um endereço).

Adicionado no cURL 7.33.0. Disponível desde PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP4

Defina o endereço IPv4 local ao qual o resolvedor deve se vincular. O argumento deve conter um único endereço IPv4 numérico como string.

Adicionado no cURL 7.33.0. Disponível desde PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP6

Defina o endereço IPv6 local ao qual o resolvedor deve se vincular. O argumento deve conter um único endereço IPv6 numérico como string.

Adicionado no cURL 7.33.0. Disponível desde PHP 7.0.7.
CURLOPT_EGDSOCKET | Como CURLOPT_RANDOM_FILE, exceto um nome de arquivo para um socket Entropy Gathering Daemon.
CURLOPT_ENCODING | O conteúdo do cabeçalho "Accept-Encoding: ". Isso permite a decodificação da resposta. As codificações suportadas são "identity", "deflate" e "gzip". Se uma string vazia, "", for definida, um cabeçalho contendo todos os tipos de codificação suportados será enviado. | Adicionado no cURL 7.10.
CURLOPT_FTPPORT | O valor que será usado para obter o endereço IP a ser usado para a instrução FTP "PORT". A instrução "PORT" diz ao servidor remoto para se conectar ao nosso endereço IP especificado. A string pode ser um endereço IP simples, um nome de host, um nome de interface de rede (no Unix) ou apenas um '-' simples para usar o endereço IP padrão do sistema.
CURLOPT_HSTS

Nome do arquivo de cache do HSTS (HTTP Strict Transport Security).

CURLOPT_HSTS_CTRL

Controla o comportamento do HSTS (HTTP Strict Transport Security). Preencha a máscara de bits com o conjunto correto de recursos para instruir o cURL sobre como lidar com o HSTS para as transferências. CURLHSTS_ENABLE habilita o cache HSTS na memória. Se o arquivo de cache HSTS estiver definido, defina CURLHSTS_READONLYFILE para tornar o arquivo somente leitura.

CURLOPT_INTERFACE | O nome da interface de rede de saída a ser usada. Pode ser um nome de interface, um endereço IP ou um nome de host.
CURLOPT_KEYPASSWD | A senha necessária para usar a chave privada CURLOPT_SSLKEY ou CURLOPT_SSH_PRIVATE_KEYFILE. | Adicionado em cURL 7.16.1
CURLOPT_KRB4LEVEL | O nível de segurança KRB4 (Kerberos 4). Qualquer um dos seguintes valores (do menos para o mais poderoso) são válidos: "clear", "safe", "confidential", "private".. Se a string não corresponder a um desses, "private" será usado. Definir esta opção como null desativará a segurança KRB4. Atualmente a segurança KRB4 funciona apenas com transações FTP.
CURLOPT_LOGIN_OPTIONS | Pode ser usado para definir opções de login específicas do protocolo, como o mecanismo de autenticação preferencial via "AUTH=NTLM" ou "AUTH=*", e deve ser usado em conjunto com a opção CURLOPT_USERNAME. | Adicionado no cURL 7.34.0. Disponível desde PHP 7.0.7.
CURLOPT_PINNEDPUBLICKEY | Defina a chave pública fixada. A string pode ser o nome do arquivo da sua chave pública fixada. O formato de arquivo esperado é "PEM" ou "DER". A string também pode ser qualquer número de hashes sha256 codificados em base64 precedidos por "sha256//" e separados por ";". | Adicionado em cURL 7.39.0. Disponível desde PHP 7.0.7.
CURLOPT_POSTFIELDS | Os dados completos a serem postados em uma operação HTTP "POST". Este parâmetro pode ser passado como uma string com código urlen como 'para1=val1&para2=val2&...' ou como uma matriz com o nome do campo como chave e os dados do campo como valor. Se value for um array, o cabeçalho multipart/form-data será definido como Content-Type. Os arquivos podem ser enviados usando CURLFile ou CURLStringFile, caso em que o value deve ser uma matriz.
CURLOPT_PRIVATE | Quaisquer dados que devem ser associados a este identificador cURL. Esses dados podem ser posteriormente recuperados com a opção CURLINFO_PRIVATE de curl_getinfo(). cURL não faz nada com esses dados. Ao usar um identificador cURL múltiplo, esses dados privados geralmente são uma chave exclusiva para identificar um identificador cURL padrão. | Adicionado no cURL 7.10.3.
CURLOPT_PRE_PROXY | Defina uma string contendo o nome do host ou o endereço IP numérico pontilhado a ser usado como o pré-proxy ao qual o curl se conecta antes de se conectar ao proxy HTTP(S) especificado na opção CURLOPT_PROXY para a próxima solicitação. O pré-proxy só pode ser um proxy SOCKS e deve ser prefixado com [scheme]:// para especificar que tipo de meias é usado. Um endereço IPv6 numérico deve ser escrito entre [colchetes]. Definir o pré-proxy como uma string vazia desativa explicitamente o uso de um pré-proxy. Para especificar o número da porta nesta string, anexe ::[port] ao final do nome do host. O número da porta do proxy pode opcionalmente ser especificado com a opção separada CURLOPT_PROXYPORT. O padrão é usar a porta 1080 para proxies se uma porta não for especificada. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY | O proxy HTTP para o túnel de solicitações.
CURLOPT_PROXY_SERVICE_NAME | O nome do serviço de autenticação de proxy. | Adicionado no cURL 7.43.0 para proxies HTTP e no cURL 7.49.0 para proxies SOCKS5. Disponível desde PHP 7.0.7.
CURLOPT_PROXY_CAINFO | O caminho para o pacote de Autoridade de Certificação (CA) do proxy. Defina o caminho como uma string que nomeia um arquivo contendo um ou mais certificados para verificar o proxy HTTPS. Esta opção é para conectar a um proxy HTTPS, não a um servidor HTTPS. Padrões definidos para o caminho do sistema onde o pacote cacert do libcurl é considerado armazenado. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CAINFO_BLOB | O nome de um arquivo PEM que contém um ou mais certificados para verificar o proxy HTTPS. Esta opção é para se conectar a um proxy HTTPS, não a um servidor HTTPS. O valor padrão é definido como o caminho do sistema onde se presume que o pacote cacert do libcurl está armazenado. | Disponível a partir do PHP 8.2.0 e libcurl >= cURL 7.77.0.
CURLOPT_PROXY_CAPATH | O diretório que contém vários certificados CA para verificar o proxy HTTPS. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CRLFILE | Defina o nome do arquivo com a concatenação de CRL (Certificate Revocation List) no formato PEM para usar na validação do certificado que ocorre durante a troca SSL. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_KEYPASSWD | Defina a string a ser usada como a senha necessária para usar a chave privada CURLOPT_PROXY_SSLKEY. Você nunca precisa de uma senha para carregar um certificado, mas precisa de uma para carregar sua chave privada. Esta opção é para conectar a um proxy HTTPS, não a um servidor HTTPS. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_PINNEDPUBLICKEY | Defina a chave pública fixada para o proxy HTTPS. A string pode ser o nome do arquivo da sua chave pública fixada. O formato de arquivo esperado é "PEM" ou "DER". A string também pode ser qualquer número de hashes sha256 codificados em base64 precedidos por "sha256//" e separados por ";" | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLCERT | O nome do arquivo do seu certificado de cliente usado para se conectar ao proxy HTTPS. O formato padrão é "P12" no Secure Transport e "PEM" em outros mecanismos e pode ser alterado com CURLOPT_PROXY_SSLCERTTYPE. Com NSS ou Secure Transport, também pode ser o apelido do certificado com o qual você deseja autenticar, pois é nomeado no banco de dados de segurança. Se você deseja usar um arquivo do diretório atual, preceda-o com o prefixo "./", para evitar confusão com um apelido. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLCERTTYPE | O formato do seu certificado de cliente usado ao se conectar a um proxy HTTPS. Os formatos suportados são "PEM" e "DER", exceto com Transporte Seguro. OpenSSL (versões 0.9.3 e posteriores) e Secure Transport (no iOS 5 ou posterior, ou OS X 10.7 ou posterior) também suportam "P12" para arquivos codificados com PKCS#12. O padrão é "PEM". | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSL_CIPHER_LIST | A lista de cifras a serem usadas para a conexão com o proxy HTTPS. A lista deve estar sintaticamente correta, consiste em uma ou mais cadeias de cifras separadas por dois pontos. Vírgulas ou espaços também são separadores aceitáveis, mas dois pontos são normalmente usados, !, - e + podem ser usados como operadores. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLS13_CIPHERS | A lista de conjuntos de cifras a serem usados para a conexão TLS 1.3 com um proxy. A lista deve estar sintaticamente correta, ela consiste em uma ou mais sequências de conjuntos de cifras separadas por dois pontos. Esta opção é usada atualmente apenas quando o curl é construído para usar o OpenSSL 1.1.1 ou posterior. Se você estiver usando um back-end SSL diferente, tente configurar os conjuntos de cifras TLS 1.3 usando a opção CURLOPT_PROXY_SSL_CIPHER_LIST. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.61.0. Disponível quando construído com OpenSSL >= 1.1.1.
CURLOPT_PROXY_SSLKEY | O nome do arquivo de sua chave privada usada para conectar-se ao proxy HTTPS. O formato padrão é "PEM" e pode ser alterado com CURLOPT_PROXY_SSLKEYTYPE. (Somente iOS e Mac OS X) Essa opção será ignorada se o curl tiver sido criado no Secure Transport. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0. Disponível se construído com TLS ativado.
CURLOPT_PROXY_SSLKEYTYPE | O formato da sua chave privada. Os formatos suportados são "PEM", "DER" e "ENG". | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_PASSWORD | A senha a ser usada para o método de autenticação TLS especificado com a opção CURLOPT_PROXY_TLSAUTH_TYPE. Requer que a opção CURLOPT_PROXY_TLSAUTH_USERNAME também seja definida. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_TYPE O método de autenticação TLS usado para a conexão HTTPS. O método suportado é "SRP".

Nota:

A autenticação Secure Remote Password (SRP) para TLS fornece autenticação mútua se ambos os lados tiverem um segredo compartilhado. Para usar TLS-SRP, você também deve definir as opções CURLOPT_PROXY_TLSAUTH_USERNAME e CURLOPT_PROXY_TLSAUTH_PASSWORD.

Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_USERNAME | O nome de usuário a ser usado para o método de autenticação TLS do proxy HTTPS especificado com a opção CURLOPT_PROXY_TLSAUTH_TYPE. Requer que a opção CURLOPT_PROXY_TLSAUTH_PASSWORD também seja definida. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.52.0.
CURLOPT_PROXYUSERPWD | Um nome de usuário e senha formatados como "[username]:[password]" para usar na conexão com o proxy.
CURLOPT_RANDOM_FILE | Um nome de arquivo a ser usado para propagar o gerador de números aleatórios para SSL.
CURLOPT_RANGE | Faixa(s) de dados a serem recuperados no formato "X-Y" onde X ou Y são opcionais. As transferências HTTP também suportam vários intervalos, separados por vírgulas no formato "X-Y,N-M".
CURLOPT_REFERER | O conteúdo do cabeçalho "Referer: " a ser usado em uma solicitação HTTP.
CURLOPT_SASL_AUTHZID | A identidade de autorização (authzid) para a transferência. Aplicável apenas ao mecanismo de autenticação SASL PLAIN, onde é opcional. Quando não especificado, apenas a identidade de autenticação (authcid) conforme especificada pelo nome de usuário será enviada para o servidor, junto com a senha. O servidor derivará o authzid do authcid quando não fornecido, que será então usado internamente.
CURLOPT_SERVICE_NAME | O nome do serviço de autenticação. | Adicionado no cURL 7.43.0. Disponível desde PHP 7.0.7.
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 | Uma string contendo 32 dígitos hexadecimais. A string deve ser a soma de verificação MD5 da chave pública do host remoto e libcurl rejeitará a conexão com o host, a menos que os md5sums correspondam. Esta opção é apenas para transferências SCP e SFTP. | Adicionado no cURL 7.17.1.
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 | Hash SHA256 codificado em Base64 da chave pública do host remoto. A transferência falhará se o hash fornecido não corresponder ao hash fornecido pelo host remoto.
CURLOPT_SSH_PUBLIC_KEYFILE | O nome do arquivo para sua chave pública. Se não for usado, o padrão de libcurl é $HOME/.ssh/id_dsa.pub se a variável de ambiente HOME estiver definida e apenas "id_dsa.pub" no diretório atual se HOME não estiver definido. | Adicionado no cURL 7.16.1.
CURLOPT_SSH_PRIVATE_KEYFILE | O nome do arquivo para sua chave privada. Se não for usado, libcurl assume como padrão $HOME/.ssh/id_dsa se a variável de ambiente HOME estiver definida e apenas "id_dsa" no diretório atual se HOME não estiver definido. Se o arquivo estiver protegido por senha, defina a senha com CURLOPT_KEYPASSWDCURLOPT_KEYPASSWD. | Adicionado no cURL 7.16.1.
CURLOPT_SSL_CIPHER_LIST | Uma lista de cifras a serem usadas para SSL. Por exemplo, RC4-SHA e TLSv1 são listas de cifras válidas.
CURLOPT_SSL_EC_CURVES | Uma lista delimitada por dois-pontos de algoritmos de curva elíptica. Por exemplo, X25519:P-521 é uma lista válida de duas curvas elípticas. Esta opção define os algoritmos de troca de chaves do cliente no handshake SSL, se o backend SSL que o cURL está construído para usar o suportar.
CURLOPT_SSLCERT | O nome de um arquivo que contém um certificado no formato PEM.
CURLOPT_SSLCERTPASSWD | A senha necessária para usar o certificado CURLOPT_SSLCERT.
CURLOPT_SSLCERTTYPE | O formato do certificado. Os formatos suportados são "PEM" (padrão), "DER" e "ENG". A partir do OpenSSL 0.9.3, "P12" (para arquivos codificados em PKCS#12) também é suportado. | Adicionado no cURL 7.9.3.
CURLOPT_SSLENGINE | O identificador para o mecanismo de criptografia da chave SSL privada especificada em CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT | O identificador do mecanismo de criptografia usado para operações de criptografia assimétricas.
CURLOPT_SSLKEY | O nome de um arquivo que contém uma chave SSL privada.
CURLOPT_SSLKEYPASSWD

A senha secreta necessária para usar a chave SSL privada especificada em CURLOPT_SSLKEY.

Nota:

Como esta opção contém uma senha confidencial, lembre-se de manter o script PHP contido nela seguro.

CURLOPT_SSLKEYTYPE | O tipo de chave da chave SSL privada especificada em CURLOPT_SSLKEY. Os tipos de chave suportados são "PEM" (padrão), "DER" e "ENG".
CURLOPT_TLS13_CIPHERS | A lista de conjuntos de cifras a serem usados para a conexão TLS 1.3. A lista deve estar sintaticamente correta, ela consiste em uma ou mais sequências de conjuntos de cifras separadas por dois pontos. Esta opção é usada atualmente apenas quando o curl é construído para usar o OpenSSL 1.1.1 ou posterior. Se você estiver usando um back-end SSL diferente, tente configurar os conjuntos de cifras TLS 1.3 usando a opção CURLOPT_SSL_CIPHER_LIST. | Disponível desde PHP 7.3.0 e libcurl >= cURL 7.61.0. Disponível quando construído com OpenSSL >= 1.1.1.
CURLOPT_UNIX_SOCKET_PATH | Habilita o uso de sockets de domínio Unix como endpoint de conexão e define o caminho para a string fornecida. | Adicionado no cURL 7.40.0. Disponível desde PHP 7.0.7.
CURLOPT_URL | A URL a ser buscada. Isso também pode ser definido ao inicializar uma sessão com curl_init().
CURLOPT_USERAGENT | O conteúdo do cabeçalho "User-Agent: " a ser usado em uma solicitação HTTP.
CURLOPT_USERNAME | O nome de usuário a ser usado na autenticação. | Adicionado no cURL 7.19.1.
CURLOPT_PASSWORD | A senha a ser usada na autenticação. | Adicionado no cURL 7.19.1.
CURLOPT_USERPWD | Um nome de usuário e senha formatados como "[username]:[password]" para usar na conexão.
CURLOPT_XOAUTH2_BEARER | Especifica o token de acesso OAuth 2.0. | Adicionado no cURL 7.33.0. Disponível desde PHP 7.0.7.

value deve ser um array para os seguintes valores do parâmetro option:

Opção | Definir value para | Notas
CURLOPT_CONNECT_TO | Conecte-se a um host e porta específicos em vez do host e da porta da URL. Aceita uma matriz de strings com o formato HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT. | Adicionado em cURL 7.49.0. Disponível desde PHP 7.0.7.
CURLOPT_HTTP200ALIASES | Uma matriz de respostas HTTP 200 que serão tratadas como respostas válidas e não como erros. | Adicionado no cURL 7.10.3.
CURLOPT_HTTPHEADER | Uma matriz de campos de cabeçalho HTTP para definir, no formato array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE | Uma matriz de comandos de FTP a serem executados no servidor após a execução da solicitação de FTP.
CURLOPT_PROXYHEADER | Uma matriz de cabeçalhos HTTP personalizados para passar para proxies. | Adicionado no cURL 7.37.0. Disponível desde PHP 7.0.7.
CURLOPT_QUOTE | Uma matriz de comandos de FTP a serem executados no servidor antes da solicitação de FTP.
CURLOPT_RESOLVE | Forneça um endereço personalizado para um host específico e um par de portas. Uma matriz de strings de nome de host, porta e endereço IP, cada elemento separado por dois pontos. No formato: array("example.com:80:127.0.0.1") array("example.com:80:127.0.0.1") | Adicionado no cURL 7.21.3.

value deve ser um recurso de fluxo (usando fopen(), por exemplo) para os seguintes valores do parâmetro option:

Opção | Definir value para
CURLOPT_FILE | O arquivo no qual a transferência deve ser gravada. O padrão é STDOUT (a janela do navegador).
CURLOPT_INFILE | O arquivo do qual a transferência deve ser lida durante o upload.
CURLOPT_STDERR | Um local alternativo para gerar erros em vez de STDERR.
CURLOPT_WRITEHEADER | O arquivo no qual a parte do cabeçalho da transferência é gravada.

value deve ser o nome de uma função válida ou um Closure para os seguintes valores do parâmetro option:

Opção | Definir value para | Notas
CURLOPT_HEADERFUNCTION | Um callback que aceita dois parâmetros. O primeiro é o recurso cURL, o segundo é uma string com os dados do cabeçalho a serem gravados. Os dados do cabeçalho devem ser gravados por este callback. Retorna o número de bytes gravados.
CURLOPT_PASSWDFUNCTION | Um callback que aceita três parâmetros. O primeiro é o recurso cURL, o segundo é uma string contendo um prompt de senha e o terceiro é o tamanho máximo da senha. Retorna a string contendo a senha. | Removido a partir do PHP 7.3.0.
CURLOPT_PROGRESSFUNCTION

Um callback que aceita cinco parâmetros. O primeiro é o recurso cURL, o segundo é o número total de bytes que se espera que sejam baixados nesta transferência, o terceiro é o número de bytes baixados até agora, o quarto é o número total de bytes que se espera que sejam carregados nesta transferência, e o quinto é o número de bytes enviados até agora.

Nota:

O callback só é chamado quando a opção CURLOPT_NOPROGRESS é definida como false.

Retorne um valor diferente de zero para abortar a transferência. Nesse caso, a transferência definirá um erro CURLE_ABORTED_BY_CALLBACK.

CURLOPT_READFUNCTION | Um callback que aceita três parâmetros. O primeiro é o recurso cURL, o segundo é um recurso de fluxo fornecido ao cURL por meio da opção CURLOPT_INFILE e o terceiro é a quantidade máxima de dados a serem lidos. O callback deve retornar uma string com comprimento igual ou menor que a quantidade de dados solicitados, geralmente lendo-a do recurso de fluxo passado. Ele deve retornar uma string vazia para sinalizar EOF.
CURLOPT_WRITEFUNCTION | Um callback que aceita dois parâmetros. O primeiro é o recurso cURL e o segundo é uma string com os dados a serem gravados. Os dados devem ser salvos por este callback. Deve retornar o número exato de bytes escritos ou a transferência será abortada com erro.
CURLOPT_XFERINFOFUNCTION | Um callback que aceita dois parâmetros. Tem um propósito semelhante ao CURLOPT_PROGRESSFUNCTION, mas é mais moderno e a opção preferida do cURL. | Adicionado em 7.32.0. Disponível a partir do PHP 8.2.0.

Other values:

Opção | Definir value para
CURLOPT_SHARE | Um resultado de curl_share_init(). Faz com que o identificador cURL use os dados do identificador compartilhado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.
7.3.15, 7.4.3 | Introduzido CURLOPT_HTTP09_ALLOWED.
7.3.0 | Introduzido CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE e CURLOPT_TLS13_CIPHERS.
7.0.7 | Introduzido CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT e CURLSSLOPT_NO_REVOKE.

Exemplos

Exemplo #1 Inicializando uma nova sessão cURL e buscando uma página da web

<?php
// criar um novo recurso cURL
$ch = curl_init();

// definir URL e outras opções apropriadas
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);

// pegar URL e passá-lo para o navegador
curl_exec($ch);

// feche o recurso cURL e libere recursos do sistema
curl_close($ch);
?>

Notas

Nota:

Passar uma matriz para CURLOPT_POSTFIELDS codificará os dados como multipart/form-data, enquanto passar uma string codificada em URL codificará os dados como application/x-www-form-urlencoded.

Veja Também

  • curl_setopt_array() - Define múltiplas opções para uma transferência cURL
  • CURLFile
  • CURLStringFile


Fecha um controlador de compartilhamento de cURL

  • « curl_setopt
  • curl_share_errno »
  • PHP Manual
  • Funções cURL
  • Fecha um controlador de compartilhamento de cURL

curl_share_close

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_close — Fecha um controlador de compartilhamento de cURL

Descrição

curl_share_close(CurlShareHandle $share_handle): void

Nota:

Esta função não tem efeito. Antes do PHP 8.0.0, esta função era usada para fechar o recurso.

Fecha um controlador de compartilhamento de cURL e libera todos os recursos.

Parâmetros

share_handle

Um manipulador cURL de compartilhamento retornado por curl_share_init().

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro share_handle agora espera uma instância de CurlShareHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de curl_share_setopt()

Este exemplo irá criar um controlador de compartilhamento de cURL, adicionar dois controladores cURL nele, e então executá-los com o compartilhamento de cookies.

<?php
// Cria o controlador de compartilhamento de cURL e configura-o para compartilhar os cookies
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Inicializa o primeiro controlador cURL e atribui o controlador de compartilhamento à ele
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Executa o primeiro controlador cURL
curl_exec($ch1);

// Inicializa o segundo controlador cURL e atribui o controlador de compartilhamento à ele
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Executa o segundo controlador cURL
// todos os cookies do controlador $ch1 são compartilhados com o controlador $ch2
curl_exec($ch2);

// Fecha o controlador de compartilhamento de cURL
curl_share_close($sh);

// Fecha os controladores cURL
curl_close($ch1);
curl_close($ch2);
?>

Veja Também

  • curl_share_init() - Inicializa um controlador de compartilhamento de cURL


Retorna o último número de erro do curl compartilhado

  • « curl_share_close
  • curl_share_init »
  • PHP Manual
  • Funções cURL
  • Retorna o último número de erro do curl compartilhado

curl_share_errno

(PHP 7 >= 7.1.0, PHP 8)

curl_share_errno — Retorna o último número de erro do curl compartilhado

Descrição

curl_share_errno(CurlShareHandle $share_handle): int

Retorna um número inteiro contendo o último número de erro de curl compartilhado.

Parâmetros

share_handle

Um manipulador cURL de compartilhamento retornado por curl_share_init().

Valor Retornado

Retorna um inteiro contendo o último número de erro de curl compartilhado.

Registro de Alterações

Versão | Descrição
8.0.0 | A função não retorna mais false em caso de falha.
8.0.0 | O parâmetro share_handle agora espera uma instância de CurlShareHandle; anteriormente, um resource era esperado.

Veja Também

  • curl_errno() - Retorna o número do último erro


Inicializa um controlador de compartilhamento de cURL

  • « curl_share_errno
  • curl_share_setopt »
  • PHP Manual
  • Funções cURL
  • Inicializa um controlador de compartilhamento de cURL

curl_share_init

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_init — Inicializa um controlador de compartilhamento de cURL

Descrição

curl_share_init(): CurlShareHandle

Permite compartilhar dados entre controladores de cURL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um controlador de compartilhamento cURL.

Registro de Alterações

Versão | Descrição
8.0.0 | Este função agora retorna uma instância de CurlShareHandle; anteriormente, um recurso do tipo resource era retornado.

Exemplos

Exemplo #1 Exemplo de curl_share_init()

Este exemplo irá criar um controlador de compartilhamento de cURL, adicionar dois controladores cURL nele, e então executá-los com o compartilhamento de cookies.

<?php
// Cria o controlador de compartilhamento de cURL e configura-o para compartilhar os cookies
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Inicializa o primeiro controlador cURL e atribui o controlador de compartilhamento à ele
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Executa o primeiro controlador cURL
curl_exec($ch1);

// Inicializa o segundo controlador cURL e atribui o controlador de compartilhamento à ele
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Executa o segundo controlador cURL
// todos os cookies do controlador $ch1 são compartilhados com o controlador $ch2
curl_exec($ch2);

// Fecha o controlador de compartilhamento de cURL
curl_share_close($sh);

// Fecha os controladores cURL
curl_close($ch1);
curl_close($ch2);
?>

Veja Também

  • curl_share_setopt() - Configura uma opção para um controlador de compartilhamento de cURL
  • curl_share_close() - Fecha um controlador de compartilhamento de cURL


Configura uma opção para um controlador de compartilhamento de cURL

  • « curl_share_init
  • curl_share_strerror »
  • PHP Manual
  • Funções cURL
  • Configura uma opção para um controlador de compartilhamento de cURL

curl_share_setopt

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_setopt — Configura uma opção para um controlador de compartilhamento de cURL

Descrição

curl_share_setopt(CurlShareHandle $share_handle, int $option, mixed $value): bool

Configura uma opção no controlador de compartilhamento de cURL informado.

Parâmetros

share_handle

Um manipulador cURL de compartilhamento retornado por curl_share_init().

option

Opção | Descrição
CURLSHOPT_SHARE | Especifica um tipo de dado que deve ser compartilhado.
CURLSHOPT_UNSHARE | Especifica um tipo de dado que não será mais compartilhado.

value

Valor | Descrição
CURL_LOCK_DATA_COOKIE | Compartilha dados de cookies.
CURL_LOCK_DATA_DNS | Compartilha o cache de DNS. Note que quando for utilizado multi controladores cURL, todos os controladores adicionados ao mesmo multi controlador irão compartilhar o cache de DNS por padrão.
CURL_LOCK_DATA_SSL_SESSION | Compartilha IDs de sessão SSL, reduzindo o tempo gasto no manuseio da conexão SSL ao reconectar no mesmo servidor. Note que IDs de sessão SSL são reusados no mesmo controlador por padrão.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro share_handle agora espera uma instância de CurlShareHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de curl_share_setopt()

Este exemplo irá criar um controlador de compartilhamento de cURL, adicionar dois controladores cURL nele, e então executá-los com o compartilhamento de cookies.

<?php
// Cria o controlador de compartilhamento de cURL e configura-o para compartilhar os cookies
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Inicializa o primeiro controlador cURL e atribui o controlador de compartilhamento à ele
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Executa o primeiro controlador cURL
curl_exec($ch1);

// Inicializa o segundo controlador cURL e atribui o controlador de compartilhamento à ele
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Executa o segundo controlador cURL
// todos os cookies do controlador $ch1 são compartilhados com o controlador $ch2
curl_exec($ch2);

// Fecha o controlador de compartilhamento de cURL
curl_share_close($sh);

// Fecha os controladores cURL
curl_close($ch1);
curl_close($ch2);
?>


Retorna uma string descrevendo o código de erro fornecid

  • « curl_share_setopt
  • curl_strerror »
  • PHP Manual
  • Funções cURL
  • Retorna uma string descrevendo o código de erro fornecid

curl_share_strerror

(PHP 7 >= 7.1.0, PHP 8)

curl_share_strerror — Retorna uma string descrevendo o código de erro fornecid

Descrição

curl_share_strerror(int $error_code): ?string

Retorna uma mensagem de erro de texto descrevendo o código de erro fornecido.

Parâmetros

error_code

Uma das constantes dos » códigos de erro cURL.

Valor Retornado

Retorna a descrição do erro ou null para código de erro inválido.

Veja Também

  • curl_share_errno() - Retorna o último número de erro do curl compartilhado
  • curl_strerror() - Retorna uma string que descreve o código de erro informado


Retorna uma string que descreve o código de erro informado

  • « curl_share_strerror
  • curl_unescape »
  • PHP Manual
  • Funções cURL
  • Retorna uma string que descreve o código de erro informado

curl_strerror

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_strerror — Retorna uma string que descreve o código de erro informado

Descrição

curl_strerror(int $error_code): ?string

Retorna um texto descrevendo o código de erro informado como parâmetro.

Parâmetros

error_code

Uma das constantes de » códigos de erros do cURL.

Valor Retornado

Retorna a descrição do erro ou null se o código de erro é inválido.

Exemplos

Exemplo #1 curl_errno() example

<?php
// Cria um manipulador curl com um protocolo escrito de forma incorreta na URL
$ch = curl_init("htp://example.com/");

// Envia a requisição
curl_exec($ch);

// Verifica se houve erros e exibe a mensagem de erro
if($errno = curl_errno($ch)) {
$error_message = curl_strerror($errno);
echo "cURL error ({$errno}):\n {$error_message}";
}

// Fecha o manipulador
curl_close($ch);
?>

O exemplo acima produzirá:

cURL error (1):
 Unsupported protocol

Veja Também

  • curl_errno() - Retorna o número do último erro
  • curl_error() - Retorna uma string contendo o último erro da sessão atual
  • » Códigos de erros do cURL


Decodifica a parte codificada da URL fornecida

  • « curl_strerror
  • curl_upkeep »
  • PHP Manual
  • Funções cURL
  • Decodifica a parte codificada da URL fornecida

curl_unescape

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_unescape — Decodifica a parte codificada da URL fornecida

Descrição

curl_unescape(CurlHandle $handle, string $string): string|false

Essa função decodifica a parte codificada da URL fornecida.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

string

A URL codificada a ser decodificada.

Valor Retornado

Retorna a string decodificada ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro handle agora espera uma instância de CurlHandle; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de curl_escape()

<?php
// Cria um manipulador curl
$ch = curl_init('http://example.com/redirect.php');

// Envia a requisição HTTP e segue os redirecionamentos
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);

// Captura a última URL
$effective_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
// ie. "http://example.com/show_location.php?loc=M%C3%BCnchen"

// Decodifica a URL
$effective_url_decoded = curl_unescape($ch, $effective_url);
// "http://example.com/show_location.php?loc=München"

// Fecha o manipulador
curl_close($ch);
?>

Notas

Nota:

curl_unescape() não decodifica os símbolos de mais (+) em espaços. Mas urldecode() faz isso.

Veja Também

  • curl_escape() - Codifica uma string para o formato URL
  • urlencode() - URL-encodes string
  • urldecode() - Decodifica uma URL codificada
  • rawurlencode() - Codifica uma URL de acordo com RFC 3986
  • rawurldecode() - Decodifica uma URL


Executa qualquer verificação de manutenção de conexão

  • « curl_unescape
  • curl_version »
  • PHP Manual
  • Funções cURL
  • Executa qualquer verificação de manutenção de conexão

curl_upkeep

(PHP 8 >= 8.2.0)

curl_upkeep — Executa qualquer verificação de manutenção de conexão

Descrição

curl_upkeep(CurlHandle $handle): bool

Disponível se construído em libcurl >= 7.62.0.

Alguns protocolos possuem mecanismos de "manutenção de conexão". Esses mecanismos geralmente enviam algum tráfego nas conexões existentes para mantê-las vivas; isso pode impedir que as conexões sejam fechadas devido a firewalls excessivamente zelosos, por exemplo.

A manutenção da conexão está atualmente disponível apenas para conexões HTTP/2. Uma pequena quantidade de tráfego geralmente é enviada para manter uma conexão ativa. O HTTP/2 mantém sua conexão enviando um quadro PING HTTP/2.

Parâmetros

handle

Um manipulador cURL retornado por curl_init().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 curl_upkeep() example

<?php
$url = "https://example.com";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_2_0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_UPKEEP_INTERVAL_MS, 200);
if (curl_exec($ch)) {
usleep(300);
var_dump(curl_upkeep($ch));
}
curl_close($ch);
?>

Veja Também

  • curl_init() - Inicializar uma sessão cURL


Obtém informação de versão do cURL

  • « curl_upkeep
  • CurlHandle »
  • PHP Manual
  • Funções cURL
  • Obtém informação de versão do cURL

curl_version

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_version — Obtém informação de versão do cURL

Descrição

curl_version(): array|false

Retorna informação sobre a versão do cURL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array associativo com os seguintes elementos:

Chave | Descrição do Valor
version_number | Número de 24 bits da versão do cURL
version | String com a versão do cURL
ssl_version_number | Número de 24 bits da versão do OpenSSL
ssl_version | String com a versão do OpenSSL
libz_version | String com a versão do zlib
host | Informação sobre o servidor onde o cURL foi compilado
age |
features | Uma máscara de bits das contantes CURL_VERSION_XXX
protocols | Um array de nomes de protocolos suportados pelo cURL

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro opcional age foi removido.
7.4.0 | O parâmetro opcional age está defasado; se um valor for passado, será ignorado.

Exemplos

Exemplo #1 Exemplo de curl_version()

Este exemplo verifica quais características estão disponíveis na compilação do cURL usando a máscara de bits 'features' retornada por curl_version().

<?php
// Obtém o array de versão do curl
$version = curl_version();

// Estes são os campos de bit que podem ser usados
// para verificar características na compilação do curl
$bitfields = Array(
'CURL_VERSION_IPV6',
'CURL_VERSION_KERBEROS4',
'CURL_VERSION_SSL',
'CURL_VERSION_LIBZ'
);

foreach($bitfields as $feature)
{
echo $feature . ($version['features'] & constant($feature) ? ' presente' : ' ausente');
echo PHP_EOL;
}
?>


A classe CurlHandle

(PHP 8)

Introdução

Uma classe totalmente opaca que substitui os recursos curl a partir do PHP 8.0.0.

Resumo da classe

final class CurlHandle {
}


A classe CurlMultiHandle

(PHP 8)

Introdução

Uma classe totalmente opaca que substitui os recursos curl_multi a partir do PHP 8.0.0.

Resumo da classe

final class CurlMultiHandle {
}


A classe CurlShareHandle

(PHP 8)

Introdução

Uma classe totalmente opaca que substitui os recursos curl_share a partir do PHP 8.0.0.

Resumo da classe

final class CurlShareHandle {
}


A classe CURLFile

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introdução

Esta classe ou CURLStringFile deve ser utilizada para fazer o envio de arquivos com CURLOPT_POSTFIELDS.

A desserialização de instâncias CURLFile não é permitida. A partir do PHP 7.4.0, é explicitamente proibida.

Resumo da classe

class CURLFile {
/* Propriedades */
public string $name = "";
public string $mime = "";
public string $postname = "";
/* Métodos */
public __construct(string $filename, ?string $mime_type = null, ?string $posted_filename = null)
public getFilename(): string
public getMimeType(): string
public getPostFilename(): string
public setMimeType(string $mime_type): void
public setPostFilename(string $posted_filename): void
}

Propriedades

name

Nome do arquivo a ser feito o upload.

mime

MIME type do arquivo (o padrão é application/octet-stream).

postname

O nome do arquivo no campo de upload (o valor padrão é a propriedade name).

Veja Também

  • curl_setopt()
  • CURLStringFile

Índice

  • CURLFile::__construct — Criar um objeto CURLFile
  • CURLFile::getFilename — Obtém o nome do arquivo
  • CURLFile::getMimeType — Obtém o tipo mídia
  • CURLFile::getPostFilename — Obtém o nome do arquivo para requisição POST
  • CURLFile::setMimeType — Define o tipo de mídia
  • CURLFile::setPostFilename — Define o nome do arquivo para a requisição POST


Criar um objeto CURLFile

  • « CURLFile
  • CURLFile::getFilename »
  • PHP Manual
  • CURLFile
  • Criar um objeto CURLFile

CURLFile::__construct

curl_file_create

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::__construct -- curl_file_create — Criar um objeto CURLFile

Descrição

Estilo orientado a objetos

public CURLFile::__construct(string $filename, ?string $mime_type = null, ?string $posted_filename = null)

Estilo procedural

curl_file_create(string $filename, ?string $mime_type = null, ?string $posted_filename = null): CURLFile

Cria um objeto CURLFile, usado para o upload de um arquivo CURLOPT_POSTFIELDS.

Parâmetros

filename

Caminho para o arquivo que será enviado.

mime_type

O tipo de mídia do arquivo.

posted_filename

Nome do arquivo a ser usado nos dados de envio.

Valor Retornado

Retorna um objeto CURLFile.

Registro de Alterações

Versão | Descrição
8.0.0 | mime_type e posted_filename agora podem ser nulos; anteriormente seus valores padrões eram 0.

Exemplos

Exemplo #1 Exemplo de CURLFile::__construct()

Estilo orientado a objetos

<?php
/* http://example.com/upload.php:
<?php var_dump($_FILES); ?>
*/

// Cria um manipulador cURL
$ch = curl_init('http://example.com/upload.php');

// Cria um objeto CURLFile
$cfile = new CURLFile('cats.jpg','image/jpeg','test_name');

// Atribui dados ao POST
$data = array('test_file' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Executa o manipulador
curl_exec($ch);
?>

Estilo procedural

<?php
/* http://example.com/upload.php:
<?php var_dump($_FILES); ?>
*/

// Cria um manipulador cURL
$ch = curl_init('http://example.com/upload.php');

// Cria um objeto CURLFile
$cfile = curl_file_create('cats.jpg','image/jpeg','test_name');

// Atribui dados ao POST
$data = array('test_file' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Executa o manipulador
curl_exec($ch);
?>

O exemplo acima produzirá:

array(1) {
  ["test_file"]=>
  array(5) {
    ["name"]=>
    string(9) "test_name"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(14) "/tmp/phpPC9Kbx"
    ["error"]=>
    int(0)
    ["size"]=>
    int(46334)
  }
}

Exemplo #2 Exemplo de CURLFile::__construct() enviando múltiplos arquivos

Estilo orientado a objetos

<?php
$request = curl_init('http://www.example.com/upload.php');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_SAFE_UPLOAD, true);
curl_setopt($request, CURLOPT_POSTFIELDS, [
'blob[0]' => new CURLFile(realpath('first-file.jpg'), 'image/jpeg'),
'blob[1]' => new CURLFile(realpath('second-file.txt'), 'text/plain'),
'blob[2]' => new CURLFile(realpath('third-file.exe'), 'application/octet-stream'),
]);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);

echo curl_exec($request);

var_dump(curl_getinfo($request));

curl_close($request);

Estilo procedural

<?php
// procedural
$request = curl_init('http://www.example.com/upload.php');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_SAFE_UPLOAD, true);
curl_setopt($request, CURLOPT_POSTFIELDS, [
'blob[0]' => curl_file_create(realpath('first-file.jpg'), 'image/jpeg'),
'blob[1]' => curl_file_create(realpath('second-file.txt'), 'text/plain'),
'blob[2]' => curl_file_create(realpath('third-file.exe'), 'application/octet-stream'),
]);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);

echo curl_exec($request);

var_dump(curl_getinfo($request));

curl_close($request);

O exemplo acima produzirá:

array(26) {
  ["url"]=>
  string(31) "http://www.example.com/upload.php"
  ["content_type"]=>
  string(24) "text/html; CHARSET=Windows-1252"
  ["http_code"]=>
  int(200)
  ["header_size"]=>
  int(198)
  ["request_size"]=>
  int(196)
  ["filetime"]=>
  int(-1)
  ["ssl_verify_result"]=>
  int(0)
  ["redirect_count"]=>
  int(0)
  ["total_time"]=>
  float(0.060062)
  ["namelookup_time"]=>
  float(0.028575)
  ["connect_time"]=>
  float(0.029011)
  ["pretransfer_time"]=>
  float(0.029121)
  ["size_upload"]=>
  float(3230730)
  ["size_download"]=>
  float(811)
  ["speed_download"]=>
  float(13516)
  ["speed_upload"]=>
  float(53845500)
  ["download_content_length"]=>
  float(811)
  ["upload_content_length"]=>
  float(3230730)
  ["starttransfer_time"]=>
  float(0.030355)
  ["redirect_time"]=>
  float(0)
  ["redirect_url"]=>
  string(0) ""
  ["primary_ip"]=>
  string(13) "0.0.0.0"
  ["certinfo"]=>
  array(0) {
  }
  ["primary_port"]=>
  int(80)
  ["local_ip"]=>
  string(12) "0.0.0.0"
  ["local_port"]=>
  int(34856)
}

Veja Também

  • curl_setopt() - Define uma opção para uma transferência cURL


Obtém o nome do arquivo

  • « CURLFile::__construct
  • CURLFile::getMimeType »
  • PHP Manual
  • CURLFile
  • Obtém o nome do arquivo

CURLFile::getFilename

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::getFilename — Obtém o nome do arquivo

Descrição

public CURLFile::getFilename(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o nome do arquivo.


Obtém o tipo mídia

  • « CURLFile::getFilename
  • CURLFile::getPostFilename »
  • PHP Manual
  • CURLFile
  • Obtém o tipo mídia

CURLFile::getMimeType

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::getMimeType — Obtém o tipo mídia

Descrição

public CURLFile::getMimeType(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o tipo de MIME.


Obtém o nome do arquivo para requisição POST

  • « CURLFile::getMimeType
  • CURLFile::setMimeType »
  • PHP Manual
  • CURLFile
  • Obtém o nome do arquivo para requisição POST

CURLFile::getPostFilename

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::getPostFilename — Obtém o nome do arquivo para requisição POST

Descrição

public CURLFile::getPostFilename(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o nome do arquivo utilizando o POST.


Define o tipo de mídia

  • « CURLFile::getPostFilename
  • CURLFile::setPostFilename »
  • PHP Manual
  • CURLFile
  • Define o tipo de mídia

CURLFile::setMimeType

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::setMimeType — Define o tipo de mídia

Descrição

public CURLFile::setMimeType(string $mime_type): void

Parâmetros

mime_type

Tipo de mídia a ser utilizado nos dados da requisição POST.

Valor Retornado

Nenhum valor é retornado.


Define o nome do arquivo para a requisição POST

  • « CURLFile::setMimeType
  • CURLStringFile »
  • PHP Manual
  • CURLFile
  • Define o nome do arquivo para a requisição POST

CURLFile::setPostFilename

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::setPostFilename — Define o nome do arquivo para a requisição POST

Descrição

public CURLFile::setPostFilename(string $posted_filename): void

Parâmetros

posted_filename

Nome do arquivo a ser utilizado nos dados da requisição POST.

Valor Retornado

Nenhum valor é retornado.


A class CURLStringFile

(PHP 8 >= 8.1.0)

Introdução

CURLStringFile torna possível enviar um arquivo diretamente de uma variável. Isto é semelhante a CURLFile, mas funciona com o conteúdo do arquivo, não com o nome do arquivo. Esta classe ou CURLFile deve ser usada para enviar o conteúdo do arquivo com CURLOPT_POSTFIELDS.

Resumo da classe

class CURLStringFile {
/* Propriedades */
public string $data;
public string $postname;
public string $mime;
/* Métodos */
public __construct(string $data, string $postname, string $mime = "application/octet-stream")
}

Propriedades

data

O conteúdo a ser enviado.

postname

O nome do arquivo a ser usado nos dados de envio.

mime

Tipo de mídia do arquivo (o padrão é application/octet-stream).

Veja Também

  • curl_setopt()
  • CURLFile

Índice

  • CURLStringFile::__construct — Crie um objeto CURLStringFile


Crie um objeto CURLStringFile

  • « CURLStringFile
  • Event »
  • PHP Manual
  • CURLStringFile
  • Crie um objeto CURLStringFile

CURLStringFile::__construct

(PHP 8 >= 8.1.0)

CURLStringFile::__construct — Crie um objeto CURLStringFile

Descrição

public CURLStringFile::__construct(string $data, string $postname, string $mime = "application/octet-stream")

Cria um objeto CURLStringFile, usado para carregar um arquivo com CURLOPT_POSTFIELDS.

Parâmetros

data

O conteúdo a ser carregado.

postname

O nome do arquivo a ser usado nos dados de carregamento.

mime

Tipo MIME do arquivo (o padrão é application/octet-stream).

Exemplos

Exemplo #1 Exemplo de CURLStringFile::__construct()

<?php
/* http://example.com/upload.php:
<?php
var_dump($_FILES);
var_dump(file_get_contents($_FILES['test_string']['tmp_name']));
?>
*/

// Cria um identificador cURL
$ch = curl_init('http://example.com/upload.php');

// Cria um objeto CURLStringFile
$cstringfile = new CURLStringFile('test upload contents','test.txt','text/plain');

// Atribui dados POST
$data = array('test_string' => $cstringfile);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Executa o manipulador
curl_exec($ch);
?>

O exemplo acima produzirá:

array(1) {
  ["test_string"]=>
  array(5) {
    ["name"]=>
    string(8) "test.txt"
    ["type"]=>
    string(10) "text/plain"
    ["tmp_name"]=>
    string(14) "/tmp/phpTtaoCz"
    ["error"]=>
    int(0)
    ["size"]=>
    int(20)
  }
}
string(20) "test upload contents"

Veja Também

  • curl_setopt() - Define uma opção para uma transferência cURL


Event

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Exemplos
  • Event flags
  • About event persistence
  • Event callbacks
  • Constructing signal events
  • Event — The Event class
    • Event::add — Makes event pending
    • Event::addSignal — Sinônimo de Event::add
    • Event::addTimer — Sinônimo de Event::add
    • Event::__construct — Constructs Event object
    • Event::del — Makes event non-pending
    • Event::delSignal — Sinônimo de Event::del
    • Event::delTimer — Sinônimo de Event::del
    • Event::free — Make event non-pending and free resources allocated for this event
    • Event::getSupportedMethods — Returns array with of the names of the methods supported in this version of Libevent
    • Event::pending — Detects whether event is pending or scheduled
    • Event::set — Re-configures event
    • Event::setPriority — Set event priority
    • Event::setTimer — Re-configures timer event
    • Event::signal — Constructs signal event object
    • Event::timer — Constructs timer event object
  • EventBase — The EventBase class
    • EventBase::__construct — Constructs EventBase object
    • EventBase::dispatch — Dispatch pending events
    • EventBase::exit — Stop dispatching events
    • EventBase::free — Free resources allocated for this event base
    • EventBase::getFeatures — Returns bitmask of features supported
    • EventBase::getMethod — Returns event method in use
    • EventBase::getTimeOfDayCached — Returns the current event base time
    • EventBase::gotExit — Checks if the event loop was told to exit
    • EventBase::gotStop — Checks if the event loop was told to exit
    • EventBase::loop — Dispatch pending events
    • EventBase::priorityInit — Sets number of priorities per event base
    • EventBase::reInit — Re-initialize event base(after a fork)
    • EventBase::stop — Tells event_base to stop dispatching events
  • EventBuffer — The EventBuffer class
    • EventBuffer::add — Append data to the end of an event buffer
    • EventBuffer::addBuffer — Move all data from a buffer provided to the current instance of EventBuffer
    • EventBuffer::appendFrom — Moves the specified number of bytes from a source buffer to the end of the current buffer
    • EventBuffer::__construct — Constructs EventBuffer object
    • EventBuffer::copyout — Copies out specified number of bytes from the front of the buffer
    • EventBuffer::drain — Removes specified number of bytes from the front of the buffer without copying it anywhere
    • EventBuffer::enableLocking — Descrição
    • EventBuffer::expand — Reserves space in buffer
    • EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding
    • EventBuffer::lock — Acquires a lock on buffer
    • EventBuffer::prepend — Prepend data to the front of the buffer
    • EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer
    • EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string
    • EventBuffer::read — Read data from an evbuffer and drain the bytes read
    • EventBuffer::readFrom — Read data from a file onto the end of the buffer
    • EventBuffer::readLine — Extracts a line from the front of the buffer
    • EventBuffer::search — Scans the buffer for an occurrence of a string
    • EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line
    • EventBuffer::substr — Substracts a portion of the buffer data
    • EventBuffer::unfreeze — Re-enable calls that modify an event buffer
    • EventBuffer::unlock — Releases lock acquired by EventBuffer::lock
    • EventBuffer::write — Write contents of the buffer to a file or socket
  • EventBufferEvent — The EventBufferEvent class
    • EventBufferEvent::close — Closes file descriptor associated with the current buffer event
    • EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket
    • EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving
    • EventBufferEvent::__construct — Constructs EventBufferEvent object
    • EventBufferEvent::createPair — Creates two buffer events connected to each other
    • EventBufferEvent::disable — Disable events read, write, or both on a buffer event
    • EventBufferEvent::enable — Enable events read, write, or both on a buffer event
    • EventBufferEvent::free — Free a buffer event
    • EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt
    • EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event
    • EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event
    • EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event
    • EventBufferEvent::read — Read buffer's data
    • EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf
    • EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks
    • EventBufferEvent::setPriority — Assign a priority to a bufferevent
    • EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event
    • EventBufferEvent::setWatermark — Adjusts read and/or write watermarks
    • EventBufferEvent::sslError — Returns most recent OpenSSL error reported on the buffer event
    • EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event
    • EventBufferEvent::sslGetCipherInfo — Returns a textual description of the cipher
    • EventBufferEvent::sslGetCipherName — Returns the current cipher name of the SSL connection
    • EventBufferEvent::sslGetCipherVersion — Returns version of cipher used by current SSL connection
    • EventBufferEvent::sslGetProtocol — Returns the name of the protocol used for current SSL connection
    • EventBufferEvent::sslRenegotiate — Tells a bufferevent to begin SSL renegotiation
    • EventBufferEvent::sslSocket — Creates a new SSL buffer event to send its data over an SSL on a socket
    • EventBufferEvent::write — Adds data to a buffer event's output buffer
    • EventBufferEvent::writeBuffer — Adds contents of the entire buffer to a buffer event's output buffer
  • About buffer event callbacks
  • EventConfig — The EventConfig class
    • EventConfig::avoidMethod — Tells libevent to avoid specific event method
    • EventConfig::__construct — Constructs EventConfig object
    • EventConfig::requireFeatures — Enters a required event method feature that the application demands
    • EventConfig::setFlags — Sets one or more flags to configure the eventual EventBase will be initialized
    • EventConfig::setMaxDispatchInterval — Prevents priority inversion
  • EventDnsBase — The EventDnsBase class
    • EventDnsBase::addNameserverIp — Adds a nameserver to the DNS base
    • EventDnsBase::addSearch — Adds a domain to the list of search domains
    • EventDnsBase::clearSearch — Removes all current search suffixes
    • EventDnsBase::__construct — Constructs EventDnsBase object
    • EventDnsBase::countNameservers — Gets the number of configured nameservers
    • EventDnsBase::loadHosts — Loads a hosts file (in the same format as /etc/hosts) from hosts file
    • EventDnsBase::parseResolvConf — Scans the resolv.conf-formatted file
    • EventDnsBase::setOption — Set the value of a configuration option
    • EventDnsBase::setSearchNdots — Set the 'ndots' parameter for searches
  • EventHttp — The EventHttp class
    • EventHttp::accept — Makes an HTTP server accept connections on the specified socket stream or resource
    • EventHttp::addServerAlias — Adds a server alias to the HTTP server object
    • EventHttp::bind — Binds an HTTP server on the specified address and port
    • EventHttp::__construct — Constructs EventHttp object (the HTTP server)
    • EventHttp::removeServerAlias — Removes server alias
    • EventHttp::setAllowedMethods — Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks
    • EventHttp::setCallback — Sets a callback for specified URI
    • EventHttp::setDefaultCallback — Sets default callback to handle requests that are not caught by specific callbacks
    • EventHttp::setMaxBodySize — Sets maximum request body size
    • EventHttp::setMaxHeadersSize — Sets maximum HTTP header size
    • EventHttp::setTimeout — Sets the timeout for an HTTP request
  • EventHttpConnection — The EventHttpConnection class
    • EventHttpConnection::__construct — Constructs EventHttpConnection object
    • EventHttpConnection::getBase — Returns event base associated with the connection
    • EventHttpConnection::getPeer — Gets the remote address and port associated with the connection
    • EventHttpConnection::makeRequest — Makes an HTTP request over the specified connection
    • EventHttpConnection::setCloseCallback — Set callback for connection close
    • EventHttpConnection::setLocalAddress — Sets the IP address from which HTTP connections are made
    • EventHttpConnection::setLocalPort — Sets the local port from which connections are made
    • EventHttpConnection::setMaxBodySize — Sets maximum body size for the connection
    • EventHttpConnection::setMaxHeadersSize — Sets maximum header size
    • EventHttpConnection::setRetries — Sets the retry limit for the connection
    • EventHttpConnection::setTimeout — Sets the timeout for the connection
  • EventHttpRequest — The EventHttpRequest class
    • EventHttpRequest::addHeader — Adds an HTTP header to the headers of the request
    • EventHttpRequest::cancel — Cancels a pending HTTP request
    • EventHttpRequest::clearHeaders — Removes all output headers from the header list of the request
    • EventHttpRequest::closeConnection — Closes associated HTTP connection
    • EventHttpRequest::__construct — Constructs EventHttpRequest object
    • EventHttpRequest::findHeader — Finds the value belonging a header
    • EventHttpRequest::free — Frees the object and removes associated events
    • EventHttpRequest::getBufferEvent — Returns EventBufferEvent object
    • EventHttpRequest::getCommand — Returns the request command(method)
    • EventHttpRequest::getConnection — Returns EventHttpConnection object
    • EventHttpRequest::getHost — Returns the request host
    • EventHttpRequest::getInputBuffer — Returns the input buffer
    • EventHttpRequest::getInputHeaders — Returns associative array of the input headers
    • EventHttpRequest::getOutputBuffer — Returns the output buffer of the request
    • EventHttpRequest::getOutputHeaders — Returns associative array of the output headers
    • EventHttpRequest::getResponseCode — Returns the response code
    • EventHttpRequest::getUri — Returns the request URI
    • EventHttpRequest::removeHeader — Removes an HTTP header from the headers of the request
    • EventHttpRequest::sendError — Send an HTML error message to the client
    • EventHttpRequest::sendReply — Send an HTML reply to the client
    • EventHttpRequest::sendReplyChunk — Send another data chunk as part of an ongoing chunked reply
    • EventHttpRequest::sendReplyEnd — Complete a chunked reply, freeing the request as appropriate
    • EventHttpRequest::sendReplyStart — Initiate a chunked reply
  • EventListener — The EventListener class
    • EventListener::__construct — Creates new connection listener associated with an event base
    • EventListener::disable — Disables an event connect listener object
    • EventListener::enable — Enables an event connect listener object
    • EventListener::getBase — Returns event base associated with the event listener
    • EventListener::getSocketName — Retreives the current address to which the listener's socket is bound
    • EventListener::setCallback — The setCallback purpose
    • EventListener::setErrorCallback — Set event listener's error callback
  • EventSslContext — The EventSslContext class
    • EventSslContext::__construct — Constructs an OpenSSL context for use with Event classes
  • EventUtil — The EventUtil class
    • EventUtil::__construct — The abstract constructor
    • EventUtil::getLastSocketErrno — Returns the most recent socket error number
    • EventUtil::getLastSocketError — Returns the most recent socket error
    • EventUtil::getSocketFd — Returns numeric file descriptor of a socket, or stream
    • EventUtil::getSocketName — Retreives the current address to which the socket is bound
    • EventUtil::setSocketOption — Sets socket options
    • EventUtil::sslRandPoll — Generates entropy by means of OpenSSL's RAND_poll()
  • EventException — The EventException class


Introdução

This is an extension to efficiently schedule I/O, time and signal based events using the best I/O notification mechanism available for specific platform. This is a port of libevent to the PHP infrastructure.

Nota:

Note, Windows support introduced in event-1.9.0 .

Version 1.0.0 introduces new object-oriented API (breaking backwards compatibility), and support of libevent 2+ including HTTP, DNS, OpenSSL and the event listener.

Nota:

Note, event-1.0.0 and greater is not compatible with previous versions.


Dependências

This extension requires » libevent library. Most modern distributions provide packages for libevent.

OpenSSL features require » OpenSSL library.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/event .


Exemplos

Exemplo #1 Simple HTTP client

<?php
// Read callback
function readcb($bev, $base) {
//$input = $bev->input; //$bev->getInput();

//$pos = $input->search("TTP");
$pos = $bev->input->search("TTP");

while (($n = $bev->input->remove($buf, 1024)) > 0) {
echo $buf;
}
}

// Event callback
function eventcb($bev, $events, $base) {
if ($events & EventBufferEvent::CONNECTED) {
echo "Connected.\n";
} elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
if ($events & EventBufferEvent::ERROR) {
echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
}

echo "Closing\n";
$base->exit();
exit("Done\n");
}
}

if ($argc != 3) {
echo <<<EOS
Trivial HTTP 0.x client
Syntax: php {$argv[0]} [hostname] [resource]
Example: php {$argv[0]} www.google.com /

EOS;
exit();
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // We'll use async DNS resolving
if (!$dns_base) {
exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
"readcb", /* writecb */ NULL, "eventcb"
);
if (!$bev) {
exit("Failed creating bufferevent socket\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
"GET {$argv[2]} HTTP/1.0\r\n".
"Host: {$argv[1]}\r\n".
"Connection: Close\r\n\r\n"
)) {
exit("Failed adding request to output buffer\n");
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
exit("Can't connect to host {$argv[1]}\n");
}

$base->dispatch();
?>

O exemplo acima produzirá algo semelhante a:

Connected.
HTTP/1.1 301 Moved Permanently
Date: Fri, 01 Mar 2013 18:47:48 GMT
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1252
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Age: 133438
Expires: Sat, 30 Mar 2013 05:39:28 GMT
Connection: close

<HTML><HEAD><meta http-equiv="content-type" content="text/html;CHARSET=Windows-1252">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/">here</A>.
</BODY></HTML>
Closing
Done

Exemplo #2 HTTP client using asynchronous DNS resolver

<?php
/*
* 1. Connect to 127.0.0.1 at port 80
* by means of EventBufferEvent::connect().
*
* 2. Request /index.cphp via HTTP/1.0
* using the output buffer.
*
* 3. Asyncronously read the response and print it to stdout.
*/

// Read callback
function readcb($bev, $base) {
$input = $bev->getInput();

while (($n = $input->remove($buf, 1024)) > 0) {
echo $buf;
}
}

// Event callback
function eventcb($bev, $events, $base) {
if ($events & EventBufferEvent::CONNECTED) {
echo "Connected.\n";
} elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
if ($events & EventBufferEvent::ERROR) {
echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
}

echo "Closing\n";
$base->exit();
exit("Done\n");
}
}

$base = new EventBase();

echo "step 1\n";
$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
exit("Failed creating bufferevent socket\n");
}

echo "step 2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "step 3\n";
// Send request
$output = $bev->getOutput();
if (!$output->add(
"GET /index.cphp HTTP/1.0\r\n".
"Connection: Close\r\n\r\n"
)) {
exit("Failed adding request to output buffer\n");
}

/* Connect to the host syncronously.
We know the IP, and don't need to resolve DNS. */
if (!$bev->connect("127.0.0.1:80")) {
exit("Can't connect to host\n");
}

// Dispatch pending events
$base->dispatch();
?>

Exemplo #3 Echo server

<?php
/*
* Simple echo server based on libevent's connection listener.
*
* Usage:
* 1) In one terminal window run:
*
* $ php listener.php 9881
*
* 2) In another terminal window open up connection, e.g.:
*
* $ nc 127.0.0.1 9881
*
* 3) start typing. The server should repeat the input.
*/

class MyListenerConnection {
private $bev, $base;

public function __destruct() {
$this->bev->free();
}

public function __construct($base, $fd) {
$this->base = $base;

$this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

$this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
array($this, "echoEventCallback"), NULL);

if (!$this->bev->enable(Event::READ)) {
echo "Failed to enable READ\n";
return;
}
}

public function echoReadCallback($bev, $ctx) {
// Copy all the data from the input buffer to the output buffer

// Variant #1
$bev->output->addBuffer($bev->input);

/* Variant #2 */
/*
$input = $bev->getInput();
$output = $bev->getOutput();
$output->addBuffer($input);
*/
}

public function echoEventCallback($bev, $events, $ctx) {
if ($events & EventBufferEvent::ERROR) {
echo "Error from bufferevent\n";
}

if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
//$bev->free();
$this->__destruct();
}
}
}

class MyListener {
public $base,
$listener,
$socket;
private $conn = array();

public function __destruct() {
foreach ($this->conn as &$c) $c = NULL;
}

public function __construct($port) {
$this->base = new EventBase();
if (!$this->base) {
echo "Couldn't open event base";
exit(1);
}

// Variant #1
/*
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!socket_bind($this->socket, '0.0.0.0', $port)) {
echo "Unable to bind socket\n";
exit(1);
}
$this->listener = new EventListener($this->base,
array($this, "acceptConnCallback"), $this->base,
EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
-1, $this->socket);
*/

// Variant #2
$this->listener = new EventListener($this->base,
array($this, "acceptConnCallback"), $this->base,
EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
"0.0.0.0:$port");

if (!$this->listener) {
echo "Couldn't create listener";
exit(1);
}

$this->listener->setErrorCallback(array($this, "accept_error_cb"));
}

public function dispatch() {
$this->base->dispatch();
}

// This callback is invoked when there is data to read on $bev
public function acceptConnCallback($listener, $fd, $address, $ctx) {
// We got a new connection! Set up a bufferevent for it. */
$base = $this->base;
$this->conn[] = new MyListenerConnection($base, $fd);
}

public function accept_error_cb($listener, $ctx) {
$base = $this->base;

fprintf(STDERR, "Got an error %d (%s) on the listener. "
."Shutting down.\n",
EventUtil::getLastSocketErrno(),
EventUtil::getLastSocketError());

$base->exit(NULL);
}
}

$port = 9808;

if ($argc > 1) {
$port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
exit("Invalid port");
}

$l = new MyListener($port);
$l->dispatch();
?>

Exemplo #4 SSL echo server

<?php
/*
* SSL echo server
*
* To test:
* 1) Run:
* $ php examples/ssl-echo-server/server.php 9998
*
* 2) in another terminal window run:
* $ socat - SSL:127.0.0.1:9998,verify=1,cafile=examples/ssl-echo-server/cert.pem
*/

class MySslEchoServer {
public $port,
$base,
$bev,
$listener,
$ctx;

function __construct ($port, $host = "127.0.0.1") {
$this->port = $port;
$this->ctx = $this->init_ssl();
if (!$this->ctx) {
exit("Failed creating SSL context\n");
}

$this->base = new EventBase();
if (!$this->base) {
exit("Couldn't open event base\n");
}

$this->listener = new EventListener($this->base,
array($this, "ssl_accept_cb"), $this->ctx,
EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
-1, "$host:$port");
if (!$this->listener) {
exit("Couldn't create listener\n");
}

$this->listener->setErrorCallback(array($this, "accept_error_cb"));
}
function dispatch() {
$this->base->dispatch();
}

// This callback is invoked when there is data to read on $bev.
function ssl_read_cb($bev, $ctx) {
$in = $bev->input; //$bev->getInput();

printf("Received %zu bytes\n", $in->length);
printf("----- data ----\n");
printf("%ld:\t%s\n", (int) $in->length, $in->pullup(-1));

$bev->writeBuffer($in);
}

// This callback is invoked when some even occurs on the event listener,
// e.g. connection closed, or an error occurred
function ssl_event_cb($bev, $events, $ctx) {
if ($events & EventBufferEvent::ERROR) {
// Fetch errors from the SSL error stack
while ($err = $bev->sslError()) {
fprintf(STDERR, "Bufferevent error %s.\n", $err);
}
}

if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
$bev->free();
}
}

// This callback is invoked when a client accepts new connection
function ssl_accept_cb($listener, $fd, $address, $ctx) {
// We got a new connection! Set up a bufferevent for it.
$this->bev = EventBufferEvent::sslSocket($this->base, $fd, $this->ctx,
EventBufferEvent::SSL_ACCEPTING, EventBufferEvent::OPT_CLOSE_ON_FREE);

if (!$this->bev) {
echo "Failed creating ssl buffer\n";
$this->base->exit(NULL);
exit(1);
}

$this->bev->enable(Event::READ);
$this->bev->setCallbacks(array($this, "ssl_read_cb"), NULL,
array($this, "ssl_event_cb"), NULL);
}

// This callback is invoked when we failed to setup new connection for a client
function accept_error_cb($listener, $ctx) {
fprintf(STDERR, "Got an error %d (%s) on the listener. "
."Shutting down.\n",
EventUtil::getLastSocketErrno(),
EventUtil::getLastSocketError());

$this->base->exit(NULL);
}

// Initialize SSL structures, create an EventSslContext
// Optionally create self-signed certificates
function init_ssl() {
// We *must* have entropy. Otherwise there's no point to crypto.
if (!EventUtil::sslRandPoll()) {
exit("EventUtil::sslRandPoll failed\n");
}

$local_cert = __DIR__."/cert.pem";
$local_pk = __DIR__."/privkey.pem";

if (!file_exists($local_cert) || !file_exists($local_pk)) {
echo "Couldn't read $local_cert or $local_pk file. To generate a key\n",
"and self-signed certificate, run:\n",
" openssl genrsa -out $local_pk 2048\n",
" openssl req -new -key $local_pk -out cert.req\n",
" openssl x509 -req -days 365 -in cert.req -signkey $local_pk -out $local_cert\n";

return FALSE;
}

$ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array (
EventSslContext::OPT_LOCAL_CERT => $local_cert,
EventSslContext::OPT_LOCAL_PK => $local_pk,
//EventSslContext::OPT_PASSPHRASE => "echo server",
EventSslContext::OPT_VERIFY_PEER => true,
EventSslContext::OPT_ALLOW_SELF_SIGNED => false,
));

return $ctx;
}
}

// Allow to override the port
$port = 9999;
if ($argc > 1) {
$port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
exit("Invalid port\n");
}

$l = new MySslEchoServer($port);
$l->dispatch();
?>

Exemplo #5 Signal handler

<?php
/*
Launch it in a terminal window:

$ php examples/signal.php

In another terminal window find out the pid and send SIGTERM, e.g.:

$ ps aux | grep examp
ruslan 3976 0.2 0.0 139896 11256 pts/1 S+ 10:25 0:00 php examples/signal.php
ruslan 3978 0.0 0.0 9572 864 pts/2 S+ 10:26 0:00 grep --color=auto examp
$ kill -TERM 3976

At the first terminal window you should catch the following:

Caught signal 15
*/
class MyEventSignal {
private $base;

function __construct($base) {
$this->base = $base;
}

function eventSighandler($no, $c) {
echo "Caught signal $no\n";
event_base_loopexit($c->base);
}
}

$base = event_base_new();
$c = new MyEventSignal($base);
$no = SIGTERM;
$ev = evsignal_new($base, $no, array($c,'eventSighandler'), $c);

evsignal_add($ev);

event_base_loop($base);
?>

Exemplo #6 Use libevent's loop to process requests of `eio' extension

<?php
// Callback for eio_nop()
function my_nop_cb($d, $r) {
echo "step 6\n";
}

$dir = "/tmp/abc-eio-temp";
if (file_exists($dir)) {
rmdir($dir);
}

echo "step 1\n";

$base = new EventBase();

echo "step 2\n";

eio_init();

eio_mkdir($dir, 0750, EIO_PRI_DEFAULT, "my_nop_cb");

$event = new Event($base, eio_get_event_stream(),
Event::READ | Event::PERSIST, function ($fd, $events, $base) {
echo "step 5\n";

while (eio_nreqs()) {
eio_poll();
}

$base->stop();
}, $base);

echo "step 3\n";

$event->add();

echo "step 4\n";

$base->dispatch();

echo "Done\n";
?>

Exemplo #7 Miscellaneous

<?php
/* {{{ Config & supported stuff */
echo "Supported methods:\n";
foreach (Event::getSupportedMethods() as $m) {
echo $m, PHP_EOL;
}

// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
echo "'select' method avoided\n";
}

// Create event_base associated with the config
$base = new EventBase($cfg);
echo "Event method used: ", $base->getMethod(), PHP_EOL;

echo "Features:\n";
$features = $base->getFeatures();
($features & EventConfig::FEATURE_ET) and print "ET - edge-triggered IO\n";
($features & EventConfig::FEATURE_O1) and print "O1 - O(1) operation for adding/deleting events\n";
($features & EventConfig::FEATURE_FDS) and print "FDS - arbitrary file descriptor types, and not just sockets\n";

// Require FDS feature
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
echo "FDS feature is now required\n";

$base = new EventBase($cfg);
($base->getFeatures() & EventConfig::FEATURE_FDS)
and print "FDS - arbitrary file descriptor types, and not just sockets\n";
}
/* }}} */

/* {{{ Base */
$base = new EventBase();
$event = new Event($base, STDIN, Event::READ | Event::PERSIST, function ($fd, $events, $arg) {
static $max_iterations = 0;

if (++$max_iterations >= 5) {
/* exit after 5 iterations with timeout of 2.33 seconds */
echo "Stopping...\n";
$arg[0]->exit(2.33);
}

echo fgets($fd);
}, array (&$base));

$event->add();
$base->loop();
/* Base }}} */
?>

Exemplo #8 Simple HTTP server

<?php
/*
* Simple HTTP server.
*
* To test it:
* 1) Run it on a port of your choice, e.g.:
* $ php examples/http.php 8010
* 2) In another terminal connect to some address on this port
* and make GET or POST request(others are turned off here), e.g.:
* $ nc -t 127.0.0.1 8010
* POST /about HTTP/1.0
* Content-Type: text/plain
* Content-Length: 4
* Connection: close
* (press Enter)
*
* It will output
* a=12
* HTTP/1.0 200 OK
* Content-Type: text/html; charset=ISO-8859-1
* Connection: close
*
* $ nc -t 127.0.0.1 8010
* GET /dump HTTP/1.0
* Content-Type: text/plain
* Content-Encoding: UTF-8
* Connection: close
* (press Enter)
*
* It will output:
* HTTP/1.0 200 OK
* Content-Type: text/html; charset=ISO-8859-1
* Connection: close
* (press Enter)
*
* $ nc -t 127.0.0.1 8010
* GET /unknown HTTP/1.0
* Connection: close
*
* It will output:
* HTTP/1.0 200 OK
* Content-Type: text/html; charset=ISO-8859-1
* Connection: close
*
* 3) See what the server outputs on the previous terminal window.
*/

function _http_dump($req, $data) {
static $counter = 0;
static $max_requests = 2;

if (++$counter >= $max_requests) {
echo "Counter reached max requests $max_requests. Exiting\n";
exit();
}

echo __METHOD__, " called\n";
echo "request:"; var_dump($req);
echo "data:"; var_dump($data);

echo "\n===== DUMP =====\n";
echo "Command:", $req->getCommand(), PHP_EOL;
echo "URI:", $req->getUri(), PHP_EOL;
echo "Input headers:"; var_dump($req->getInputHeaders());
echo "Output headers:"; var_dump($req->getOutputHeaders());

echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";

echo "\n >> Reading input buffer ...\n";
$buf = $req->getInputBuffer();
while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
echo $s, PHP_EOL;
}
echo "No more data in the buffer\n";
}

function _http_about($req) {
echo __METHOD__, PHP_EOL;
echo "URI: ", $req->getUri(), PHP_EOL;
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
}

function _http_default($req, $data) {
echo __METHOD__, PHP_EOL;
echo "URI: ", $req->getUri(), PHP_EOL;
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
$port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

O exemplo acima produzirá algo semelhante a:

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
(press Enter)

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Exemplo #9 Simple HTTPS server

<?php
/*
* Simple HTTPS server.
*
* 1) Run the server: `php examples/https.php 9999`
* 2) Test it: `php examples/ssl-connection.php 9999`
*/

function _http_dump($req, $data) {
static $counter = 0;
static $max_requests = 200;

if (++$counter >= $max_requests) {
echo "Counter reached max requests $max_requests. Exiting\n";
exit();
}

echo __METHOD__, " called\n";
echo "request:"; var_dump($req);
echo "data:"; var_dump($data);

echo "\n===== DUMP =====\n";
echo "Command:", $req->getCommand(), PHP_EOL;
echo "URI:", $req->getUri(), PHP_EOL;
echo "Input headers:"; var_dump($req->getInputHeaders());
echo "Output headers:"; var_dump($req->getOutputHeaders());

echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";

$buf = $req->getInputBuffer();
echo "\n >> Reading input buffer (", $buf->length, ") ...\n";
while ($s = $buf->read(1024)) {
echo $s;
}
echo "\nNo more data in the buffer\n";
}

function _http_about($req) {
echo __METHOD__, PHP_EOL;
echo "URI: ", $req->getUri(), PHP_EOL;
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
}

function _http_default($req, $data) {
echo __METHOD__, PHP_EOL;
echo "URI: ", $req->getUri(), PHP_EOL;
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
}

function _http_400($req) {
$req->sendError(400);
}

function _init_ssl() {
$local_cert = __DIR__."/ssl-echo-server/cert.pem";
$local_pk = __DIR__."/ssl-echo-server/privkey.pem";

$ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array (
EventSslContext::OPT_LOCAL_CERT => $local_cert,
EventSslContext::OPT_LOCAL_PK => $local_pk,
//EventSslContext::OPT_PASSPHRASE => "test",
EventSslContext::OPT_ALLOW_SELF_SIGNED => true,
));

return $ctx;
}

$port = 9999;
if ($argc > 1) {
$port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
exit("Invalid port");
}
$ip = '0.0.0.0';

$base = new EventBase();
$ctx = _init_ssl();
$http = new EventHttp($base, $ctx);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setCallback("/err400", "_http_400");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind($ip, $port);
$base->dispatch();

Exemplo #10 OpenSSL connection

<?php
/*
* Sample OpenSSL client.
*
* Usage:
* 1) Launch a server, e.g.:
* $ php examples/https.php 9999
*
* 2) Launch the client in another terminal:
* $ php examples/ssl-connection.php 9999
*/

function _request_handler($req, $base) {
echo __FUNCTION__, PHP_EOL;

if (is_null($req)) {
echo "Timed out\n";
} else {
$response_code = $req->getResponseCode();

if ($response_code == 0) {
echo "Connection refused\n";
} elseif ($response_code != 200) {
echo "Unexpected response: $response_code\n";
} else {
echo "Success: $response_code\n";
$buf = $req->getInputBuffer();
echo "Body:\n";
while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
echo $s, PHP_EOL;
}
}
}

$base->exit(NULL);
}

function _init_ssl() {
$ctx = new EventSslContext(EventSslContext::SSLv3_CLIENT_METHOD, array ());

return $ctx;
}

// Allow to override the port
$port = 9999;
if ($argc > 1) {
$port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
exit("Invalid port\n");
}
$host = '127.0.0.1';

$ctx = _init_ssl();
if (!$ctx) {
trigger_error("Failed creating SSL context", E_USER_ERROR);
}

$base = new EventBase();
if (!$base) {
trigger_error("Failed to initialize event base", E_USER_ERROR);
}

$conn = new EventHttpConnection($base, NULL, $host, $port, $ctx);
$conn->setTimeout(50);

$req = new EventHttpRequest("_request_handler", $base);
$req->addHeader("Host", $host, EventHttpRequest::OUTPUT_HEADER);
$buf = $req->getOutputBuffer();
$buf->add("<html>HTML TEST</html>");
//$req->addHeader("Content-Length", $buf->length, EventHttpRequest::OUTPUT_HEADER);
//$req->addHeader("Connection", "close", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_POST, "/dump");

$base->dispatch();
echo "END\n";
?>

Exemplo #11 EventHttpConnection::makeRequest() example

<?php
function _request_handler($req, $base) {
echo __FUNCTION__, PHP_EOL;

if (is_null($req)) {
echo "Timed out\n";
} else {
$response_code = $req->getResponseCode();

if ($response_code == 0) {
echo "Connection refused\n";
} elseif ($response_code != 200) {
echo "Unexpected response: $response_code\n";
} else {
echo "Success: $response_code\n";
$buf = $req->getInputBuffer();
echo "Body:\n";
while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
echo $s, PHP_EOL;
}
}
}

$base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

O exemplo acima produzirá algo semelhante a:

_request_handler
Success: 200
Body:
PHP, date:
2013-03-13T20:27:52+05:00

Exemplo #12 Connection listener based on a UNIX domain socket

<?php
/*
* Simple echo server based on libevent's connection listener.
*
* Usage:
* 1) In one terminal window run:
*
* $ php unix-domain-listener.php [path-to-socket]
*
* 2) In another terminal window open up connection
* to the socket, e.g.:
*
* $ socat - GOPEN:/tmp/1.sock
*
* 3) Start typing. The server should repeat the input.
*/

class MyListenerConnection {
private $bev, $base;

public function __destruct() {
if ($this->bev) {
$this->bev->free();
}
}

public function __construct($base, $fd) {
$this->base = $base;

$this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

$this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
array($this, "echoEventCallback"), NULL);

if (!$this->bev->enable(Event::READ)) {
echo "Failed to enable READ\n";
return;
}
}

public function echoReadCallback($bev, $ctx) {
// Copy all the data from the input buffer to the output buffer
$bev->output->addBuffer($bev->input);
}

public function echoEventCallback($bev, $events, $ctx) {
if ($events & EventBufferEvent::ERROR) {
echo "Error from bufferevent\n";
}

if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
$bev->free();
$bev = NULL;
}
}
}

class MyListener {
public $base,
$listener,
$socket;
private $conn = array();

public function __destruct() {
foreach ($this->conn as &$c) $c = NULL;
}

public function __construct($sock_path) {
$this->base = new EventBase();
if (!$this->base) {
echo "Couldn't open event base";
exit(1);
}

if (file_exists($sock_path)) {
unlink($sock_path);
}

$this->listener = new EventListener($this->base,
array($this, "acceptConnCallback"), $this->base,
EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
"unix:$sock_path");

if (!$this->listener) {
trigger_error("Couldn't create listener", E_USER_ERROR);
}

$this->listener->setErrorCallback(array($this, "accept_error_cb"));
}

public function dispatch() {
$this->base->dispatch();
}

// This callback is invoked when there is data to read on $bev
public function acceptConnCallback($listener, $fd, $address, $ctx) {
// We got a new connection! Set up a bufferevent for it. */
$base = $this->base;
$this->conn[] = new MyListenerConnection($base, $fd);
}

public function accept_error_cb($listener, $ctx) {
$base = $this->base;

fprintf(STDERR, "Got an error %d (%s) on the listener. "
."Shutting down.\n",
EventUtil::getLastSocketErrno(),
EventUtil::getLastSocketError());

$base->exit(NULL);
}
}

if ($argc <= 1) {
exit("Socket path is not provided\n");
}
$sock_path = $argv[1];

$l = new MyListener($sock_path);
$l->dispatch();
?>

Exemplo #13 Simple SMTP server

<?php
/*
* Author: Andrew Rose <hello at andrewrose dot co dot uk>
*
* Usage:
* 1) Prepare cert.pem certificate and privkey.pem private key files.
* 2) Launch the server script
* 3) Open TLS connection, e.g.:
* $ openssl s_client -connect localhost:25 -starttls smtp -crlf
* 4) Start testing the commands listed in `cmd` method below.
*/

class Handler {
public $domainName = FALSE;
public $connections = [];
public $buffers = [];
public $maxRead = 256000;

public function __construct() {
$this->ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, [
EventSslContext::OPT_LOCAL_CERT => 'cert.pem',
EventSslContext::OPT_LOCAL_PK => 'privkey.pem',
//EventSslContext::OPT_PASSPHRASE => '',
EventSslContext::OPT_VERIFY_PEER => false, // change to true with authentic cert
EventSslContext::OPT_ALLOW_SELF_SIGNED => true // change to false with authentic cert
]);

$this->base = new EventBase();
if (!$this->base) {
exit("Couldn't open event base\n");
}

if (!$this->listener = new EventListener($this->base,
[$this, 'ev_accept'],
$this->ctx,
EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
-1,
'0.0.0.0:25'))
{
exit("Couldn't create listener\n");
}

$this->listener->setErrorCallback([$this, 'ev_error']);
$this->base->dispatch();
}

public function ev_accept($listener, $fd, $address, $ctx) {
static $id = 0;
$id += 1;

$this->connections[$id]['clientData'] = '';
$this->connections[$id]['cnx'] = new EventBufferEvent($this->base, $fd,
EventBufferEvent::OPT_CLOSE_ON_FREE);

if (!$this->connections[$id]['cnx']) {
echo "Failed creating buffer\n";
$this->base->exit(NULL);
exit(1);
}

$this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL,
[$this, 'ev_error'], $id);
$this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);

$this->ev_write($id, '220 '.$this->domainName." wazzzap?\r\n");
}

function ev_error($listener, $ctx) {
$errno = EventUtil::getLastSocketErrno();

fprintf(STDERR, "Got an error %d (%s) on the listener. Shutting down.\n",
$errno, EventUtil::getLastSocketError());

if ($errno != 0) {
$this->base->exit(NULL);
exit();
}
}

public function ev_close($id) {
$this->connections[$id]['cnx']->disable(Event::READ | Event::WRITE);
unset($this->connections[$id]);
}

protected function ev_write($id, $string) {
echo 'S('.$id.'): '.$string;
$this->connections[$id]['cnx']->write($string);
}

public function ev_read($buffer, $id) {
while($buffer->input->length > 0) {
$this->connections[$id]['clientData'] .= $buffer->input->read($this->maxRead);
$clientDataLen = strlen($this->connections[$id]['clientData']);

if($this->connections[$id]['clientData'][$clientDataLen-1] == "\n"
&& $this->connections[$id]['clientData'][$clientDataLen-2] == "\r")
{
// remove the trailing \r\n
$line = substr($this->connections[$id]['clientData'], 0,
strlen($this->connections[$id]['clientData']) - 2);

$this->connections[$id]['clientData'] = '';
$this->cmd($buffer, $id, $line);
}
}
}

protected function cmd($buffer, $id, $line) {
switch ($line) {
case strncmp('EHLO ', $line, 4):
$this->ev_write($id, "250-STARTTLS\r\n");
$this->ev_write($id, "250 OK ehlo\r\n");
break;

case strncmp('HELO ', $line, 4):
$this->ev_write($id, "250-STARTTLS\r\n");
$this->ev_write($id, "250 OK helo\r\n");
break;

case strncmp('QUIT', $line, 3):
$this->ev_write($id, "250 OK quit\r\n");
$this->ev_close($id);
break;

case strncmp('STARTTLS', $line, 3):
$this->ev_write($id, "220 Ready to start TLS\r\n");
$this->connections[$id]['cnx'] = EventBufferEvent::sslFilter($this->base,
$this->connections[$id]['cnx'], $this->ctx,
EventBufferEvent::SSL_ACCEPTING,
EventBufferEvent::OPT_CLOSE_ON_FREE);
$this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL, [$this, 'ev_error'], $id);
$this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);
break;

default:
echo 'unknown command: '.$line."\n";
break;
}
}
}

new Handler();


Event flags

Event::READ This flag indicates an event that becomes active when the provided file descriptor (usually a stream resource, or socket) is ready for reading.

Event::WRITE flag indicates an event that becomes active when the provided file descriptor (usually a stream resource, or socket) is ready for writing.

Event::SIGNAL used to implement signal detection. See "Constructing signal events" below.

Event::TIMEOUT indicates an event that becomes active after a timeout elapses. The Event::TIMEOUT flag is ignored when constructing an event: one can either set a timeout when event is added , or not. It is set in the $what argument to the callback function when a timeout has occurred.

See also » Fast portable non-blocking network programming with Libevent, Working with events, Event flags


About event persistence

By default, whenever a pending event becomes active (because its file descriptor is ready to read or write, or because its timeout expires), it becomes non-pending right before its callback is executed. Thus, to make the event pending again one may call Event::add() on it again from inside the callback function.

If the Event::PERSIST flag is set on an event, however, the event is persistent . This means that event remains pending even when its callback is activated. Event::del() method can be called to make it non-pending.

The timeout on a persistent event resets whenever the event's callback runs. Thus, if one has an event with flags Event::READ | Event::PERSIST and a timeout of five seconds, the event will become active:

  1. Whenever the socket or file descriptor is ready for reading.

  2. Whenever five seconds have passed since the event last became active.

See also » Fast portable non-blocking network programming with Libevent, About Event Persistence


Event callbacks

If a callback is registered for an event, it will be called when the event becomes active. To associate a callback with event one can pass a callable to either Event::__construct() , or Event::set() , or one of the factory methods like Event::timer() .

An event callback should match the following prototype:

callback( mixed $fd = null , int $what = ?, mixed $arg = null ): void

fd

The file descriptor, stream resource or socket associated with the event. For signal event fd is equal to the signal number.

what

Bit mask of all events triggered.

arg

User custom data.

Event::timer() expects the callback to match the following prototype:

callback( mixed $arg = null ): void

arg

User custom data.

Event::signal() expects the callback to match the following prototype:

callback( int $signum = ?, mixed $arg = null ): void

signum

The number of the triggered signal(e.g. SIGTERM ).

arg

User custom data.


Constructing signal events

Event can also watch for POSIX-style signals. To construct a handler for a signal, use Event::__construct() constructor with Event::SIGNAL flag, or Event::signal() factory method.

Exemplo #1 Handling SIGTERM signal

<?php
/*
Launch it in a terminal window:

$ php examples/signal.php

In another terminal window find out the pid and send SIGTERM, e.g.:

$ ps aux | grep examp
ruslan 3976 0.2 0.0 139896 11256 pts/1 S+ 10:25 0:00 php examples/signal.php
ruslan 3978 0.0 0.0 9572 864 pts/2 S+ 10:26 0:00 grep --color=auto examp
$ kill -TERM 3976

At the first terminal window you should catch the following:

Caught signal 15
*/
class MyEventSignal {
private $base, $ev;

public function __construct($base) {
$this->base = $base;
$this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
$this->ev->add();
}

public function eventSighandler($no, $c) {
echo "Caught signal $no\n";
$this->base->exit();
}
}

$base = new EventBase();
$c = new MyEventSignal($base);

$base->loop();
?>

Note that signal callbacks are run in the event loop after the signal occurs, so it is safe for them to call functions that you are not supposed to call from a regular POSIX signal handler.

See also » Fast portable non-blocking network programming with Libevent, Constructing Signal Events .


The Event class

(PECL event >= 1.2.6-beta)

Introdução

Event class represents and event firing on a file descriptor being ready to read from or write to; a file descriptor becoming ready to read from or write to(edge-triggered I/O only); a timeout expiring; a signal occurring; a user-triggered event.

Every event is associated with EventBase . However, event will never fire until it is added (via Event::add() ). An added event remains in pending state until the registered event occurs, thus turning it to active state. To handle events user may register a callback which is called when event becomes active. If event is configured persistent , it remains pending. If it is not persistent, it stops being pending when it's callback runs. Event::del() method deletes event, thus making it non-pending. By means of Event::add() method it could be added again.

Resumo da classe

final class Event {
/* Constantes */
const int ET = 32;
const int PERSIST = 16;
const int READ = 2;
const int WRITE = 4;
const int SIGNAL = 8;
const int TIMEOUT = 1;
/* Propriedades */
public readonly bool $pending;
/* Métodos */
public add( float $timeout = ?): bool
public __construct(
EventBase $base ,
mixed $fd ,
int $what ,
callable $cb ,
mixed $arg = NULL
)
public del(): bool
public free(): void
public static getSupportedMethods(): array
public pending( int $flags ): bool
public set(
EventBase $base ,
mixed $fd ,
int $what = ?,
callable $cb = ?,
mixed $arg = ?
): bool
public setPriority( int $priority ): bool
public setTimer( EventBase $base , callable $cb , mixed $arg = ?): bool
public static signal(
EventBase $base ,
int $signum ,
callable $cb ,
mixed $arg = ?
): Event
public static timer( EventBase $base , callable $cb , mixed $arg = ?): Event
}

Propriedades

pending

Whether event is pending. See About event persistence .

Constantes pré-definidas

Event::ET

Indicates that the event should be edge-triggered, if the underlying event base backend supports edge-triggered events. This affects the semantics of Event::READ and Event::WRITE .

Event::PERSIST

Indicates that the event is persistent. See About event persistence .

Event::READ

This flag indicates an event that becomes active when the provided file descriptor(usually a stream resource, or socket) is ready for reading.

Event::WRITE

This flag indicates an event that becomes active when the provided file descriptor(usually a stream resource, or socket) is ready for reading.

Event::SIGNAL

Used to implement signal detection. See "Constructing signal events" below.

Event::TIMEOUT

This flag indicates an event that becomes active after a timeout elapses.

The Event::TIMEOUT flag is ignored when constructing an event: one can either set a timeout when event is added , or not. It is set in the $what argument to the callback function when a timeout has occurred.

Índice

  • Event::add — Makes event pending
  • Event::addSignal — Sinônimo de Event::add
  • Event::addTimer — Sinônimo de Event::add
  • Event::__construct — Constructs Event object
  • Event::del — Makes event non-pending
  • Event::delSignal — Sinônimo de Event::del
  • Event::delTimer — Sinônimo de Event::del
  • Event::free — Make event non-pending and free resources allocated for this event
  • Event::getSupportedMethods — Returns array with of the names of the methods supported in this version of Libevent
  • Event::pending — Detects whether event is pending or scheduled
  • Event::set — Re-configures event
  • Event::setPriority — Set event priority
  • Event::setTimer — Re-configures timer event
  • Event::signal — Constructs signal event object
  • Event::timer — Constructs timer event object


Makes event pending

  • « Event
  • Event::addSignal »
  • PHP Manual
  • Event
  • Makes event pending

Event::add

(PECL event >= 1.2.6-beta)

Event::add — Makes event pending

Descrição

public Event::add( float $timeout = ?): bool

Marks event pending. Non-pending event will never occur, and the event callback will never be called. In conjunction with Event::del() an event could be re-scheduled by user at any time.

If Event::add() is called on an already pending event, libevent will leave it pending and re-schedule it with the given timeout(if specified). If in this case timeout is not specified, Event::add() has no effect.

Parâmetros

timeout

Timeout in seconds.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Adding a custom signal

<?php
/*
Launch it in a terminal window:

$ php examples/signal.php

In another terminal window find out the pid and send SIGTERM, e.g.:

$ ps aux | grep examp
ruslan 3976 0.2 0.0 139896 11256 pts/1 S+ 10:25 0:00 php examples/signal.php
ruslan 3978 0.0 0.0 9572 864 pts/2 S+ 10:26 0:00 grep --color=auto examp
$ kill -TERM 3976

At the first terminal window you should catch the following:

Caught signal 15
*/
class MyEventSignal {
private $base, $ev;

public function __construct($base) {
$this->base = $base;
$this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
$this->ev->add();
}

public function eventSighandler($no, $c) {
echo "Caught signal $no\n";
$this->base->exit();
}
}

$base = new EventBase();
$c = new MyEventSignal($base);

$base->loop();
?>

O exemplo acima produzirá algo semelhante a:

Caught signal 15

Exemplo #2 Adding a timer

<?php
$base = new EventBase();
$n = 2;
$e = Event::timer($base, function($n) use (&$e) {
echo "$n seconds elapsed\n";
$e->delTimer();
}, $n);
$e->add($n);
$base->loop();
?>

O exemplo acima produzirá algo semelhante a:

2 seconds elapsed

Veja Também

  • Event::add()
  • Event::del() - Makes event non-pending
  • Event::signal() - Constructs signal event object
  • Event::timer() - Constructs timer event object


Sinônimo de Event::add

  • « Event::add
  • Event::addTimer »
  • PHP Manual
  • Event
  • Sinônimo de Event::add

Event::addSignal

(PECL event >= 1.2.6-beta)

Event::addSignal — Sinônimo de Event::add()

Descrição

Este método é um apelido para: Event::add()


Sinônimo de Event::add

  • « Event::addSignal
  • Event::__construct »
  • PHP Manual
  • Event
  • Sinônimo de Event::add

Event::addTimer

(PECL event >= 1.2.6-beta)

Event::addTimer — Sinônimo de Event::add()

Descrição

Este método é um apelido para: Event::add()


Constructs Event object

  • « Event::addTimer
  • Event::del »
  • PHP Manual
  • Event
  • Constructs Event object

Event::__construct

(PECL event >= 1.2.6-beta)

Event::__construct — Constructs Event object

Descrição

public Event::__construct(
EventBase $base ,
mixed $fd ,
int $what ,
callable $cb ,
mixed $arg = NULL
)

Constructs Event object.

Parâmetros

base

The event base to associate with.

fd

stream resource, socket resource, or numeric file descriptor. For timer events pass -1 . For signal events pass the signal number, e.g. SIGHUP .

what

Event flags. See Event flags .

cb

The event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Veja Também

  • Event::signal() - Constructs signal event object
  • Event::timer() - Constructs timer event object


Makes event non-pending

  • « Event::__construct
  • Event::delSignal »
  • PHP Manual
  • Event
  • Makes event non-pending

Event::del

(PECL event >= 1.2.6-beta)

Event::del — Makes event non-pending

Descrição

public Event::del(): bool

Removes an event from the set of monitored events, i.e. makes it non-pending.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • Event::add() - Makes event pending


Sinônimo de Event::del

  • « Event::del
  • Event::delTimer »
  • PHP Manual
  • Event
  • Sinônimo de Event::del

Event::delSignal

(PECL event >= 1.2.6-beta)

Event::delSignal — Sinônimo de Event::del()

Descrição

Este método é um apelido para: Event::del()


Sinônimo de Event::del

  • « Event::delSignal
  • Event::free »
  • PHP Manual
  • Event
  • Sinônimo de Event::del

Event::delTimer

(PECL event >= 1.2.6-beta)

Event::delTimer — Sinônimo de Event::del()

Descrição

Este método é um apelido para: Event::del()


Make event non-pending and free resources allocated for this event

  • « Event::delTimer
  • Event::getSupportedMethods »
  • PHP Manual
  • Event
  • Make event non-pending and free resources allocated for this event

Event::free

(PECL event >= 1.2.6-beta)

Event::free — Make event non-pending and free resources allocated for this event

Descrição

public Event::free(): void

Removes event from the list of events monitored by libevent, and free resources allocated for the event.

Aviso

The Event::free() method currently doesn't destruct the object itself. To destruct the object completely call unset() , or assign null.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • Event::__construct() - Constructs Event object


Returns array with of the names of the methods supported in this version of Libevent

  • « Event::free
  • Event::pending »
  • PHP Manual
  • Event
  • Returns array with of the names of the methods supported in this version of Libevent

Event::getSupportedMethods

(PECL event >= 1.2.6-beta)

Event::getSupportedMethods — Returns array with of the names of the methods supported in this version of Libevent

Descrição

public static Event::getSupportedMethods(): array

Returns array with of the names of the methods(backends) supported in this version of Libevent.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns array.

Veja Também

  • EventConfig


Detects whether event is pending or scheduled

  • « Event::getSupportedMethods
  • Event::set »
  • PHP Manual
  • Event
  • Detects whether event is pending or scheduled

Event::pending

(PECL event >= 1.2.6-beta)

Event::pending — Detects whether event is pending or scheduled

Descrição

public Event::pending( int $flags ): bool

Detects whether event is pending or scheduled

Parâmetros

flags

One of, or a composition of the following constants: Event::READ , Event::WRITE , Event::TIMEOUT , Event::SIGNAL .

Valor Retornado

Returns true if event is pending or scheduled. Otherwise false.


Re-configures event

  • « Event::pending
  • Event::setPriority »
  • PHP Manual
  • Event
  • Re-configures event

Event::set

(PECL event >= 1.2.6-beta)

Event::set — Re-configures event

Descrição

public Event::set(
EventBase $base ,
mixed $fd ,
int $what = ?,
callable $cb = ?,
mixed $arg = ?
): bool

Re-configures event. Note, this function doesn't invoke obsolete libevent's event_set. It calls event_assign instead.

Parâmetros

base

The event base to associate the event with.

fd

Stream resource, socket resource, or numeric file descriptor. For timer events pass -1 . For signal events pass the signal number, e.g. SIGHUP .

what

See Event flags .

cb

The event callback. See Event callbacks .

arg

Custom data associated with the event. It will be passed to the callback when the event becomes active.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Set event priority

  • « Event::set
  • Event::setTimer »
  • PHP Manual
  • Event
  • Set event priority

Event::setPriority

(PECL event >= 1.2.6-beta)

Event::setPriority — Set event priority

Descrição

public Event::setPriority( int $priority ): bool

Set event priority.

Parâmetros

priority

The event priority.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Re-configures timer event

  • « Event::setPriority
  • Event::signal »
  • PHP Manual
  • Event
  • Re-configures timer event

Event::setTimer

(PECL event >= 1.2.6-beta)

Event::setTimer — Re-configures timer event

Descrição

public Event::setTimer( EventBase $base , callable $cb , mixed $arg = ?): bool

Re-configures timer event. Note, this function doesn't invoke obsolete libevent's event_set . It calls event_assign instead.

Parâmetros

base

The event base to associate with.

cb

The timer event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • Event::__construct() - Constructs Event object
  • Event::timer() - Constructs timer event object


Constructs signal event object

  • « Event::setTimer
  • Event::timer »
  • PHP Manual
  • Event
  • Constructs signal event object

Event::signal

(PECL event >= 1.2.6-beta)

Event::signal — Constructs signal event object

Descrição

public static Event::signal(
EventBase $base ,
int $signum ,
callable $cb ,
mixed $arg = ?
): Event

Constructs signal event object. This is a straightforward method to create a signal event. Note, the generic Event::__construct() method can contruct signal event objects too.

Parâmetros

base

The associated event base object.

signum

The signal number.

cb

The signal event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Valor Retornado

Returns Event object on success. Otherwise false.

Veja Também

  • Constructing signal events


Constructs timer event object

  • « Event::signal
  • EventBase »
  • PHP Manual
  • Event
  • Constructs timer event object

Event::timer

(PECL event >= 1.2.6-beta)

Event::timer — Constructs timer event object

Descrição

public static Event::timer( EventBase $base , callable $cb , mixed $arg = ?): Event

Constructs timer event object. This is a straightforward method to create a timer event. Note, the generic Event::__construct() method can contruct signal event objects too.

Parâmetros

base

The associated event base object.

cb

The signal event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Valor Retornado

Returns Event object on success. Otherwise false.


The EventBase class

(PECL event >= 1.2.6-beta)

Introdução

EventBase class represents libevent's event base structure. It holds a set of events and can poll to determine which events are active.

Each event base has a method , or a backend that it uses to determine which events are ready. The recognized methods are: select , poll , epoll , kqueue , devpoll , evport and win32 .

To configure event base to use, or avoid specific backend EventConfig class can be used.

Aviso

Do NOT destroy the EventBase object as long as resources of the associated Event objects are not released. Otherwise, it will lead to unpredictable results!

Resumo da classe

final class EventBase {
/* Constantes */
const int LOOP_ONCE = 1;
const int LOOP_NONBLOCK = 2;
const int NOLOCK = 1;
const int STARTUP_IOCP = 4;
const int NO_CACHE_TIME = 8;
const int EPOLL_USE_CHANGELIST = 16;
/* Métodos */
public __construct( EventConfig $cfg = ?)
public dispatch(): void
public exit( float $timeout = ?): bool
public free(): void
public getFeatures(): int
public getMethod(): string
public getTimeOfDayCached(): float
public gotExit(): bool
public gotStop(): bool
public loop( int $flags = ?): bool
public priorityInit( int $n_priorities ): bool
public reInit(): bool
public stop(): bool
}

Constantes pré-definidas

EventBase::LOOP_ONCE

Flag used with EventBase::loop() method which means: "block until libevent has an active event, then exit once all active events have had their callbacks run".

EventBase::LOOP_NONBLOCK

Flag used with EventBase::loop() method which means: "do not block: see which events are ready now, run the callbacks of the highest-priority ones, then exit".

EventBase::NOLOCK

Configuration flag. Do not allocate a lock for the event base, even if we have locking set up".

EventBase::STARTUP_IOCP

Windows-only configuration flag. Enables the IOCP dispatcher at startup.

EventBase::NO_CACHE_TIME

Configuration flag. Instead of checking the current time every time the event loop is ready to run timeout callbacks, check after each timeout callback.

EventBase::EPOLL_USE_CHANGELIST

If we are using the epoll backend, this flag says that it is safe to use Libevent's internal change-list code to batch up adds and deletes in order to try to do as few syscalls as possible.

Setting this flag can make code run faster, but it may trigger a Linux bug: it is not safe to use this flag if one has any fds cloned by dup(), or its variants. Doing so will produce strange and hard-to-diagnose bugs.

This flag can also be activated by settnig the EVENT_EPOLL_USE_CHANGELIST environment variable.

This flag has no effect if one winds up using a backend other than epoll .

Índice

  • EventBase::__construct — Constructs EventBase object
  • EventBase::dispatch — Dispatch pending events
  • EventBase::exit — Stop dispatching events
  • EventBase::free — Free resources allocated for this event base
  • EventBase::getFeatures — Returns bitmask of features supported
  • EventBase::getMethod — Returns event method in use
  • EventBase::getTimeOfDayCached — Returns the current event base time
  • EventBase::gotExit — Checks if the event loop was told to exit
  • EventBase::gotStop — Checks if the event loop was told to exit
  • EventBase::loop — Dispatch pending events
  • EventBase::priorityInit — Sets number of priorities per event base
  • EventBase::reInit — Re-initialize event base(after a fork)
  • EventBase::stop — Tells event_base to stop dispatching events


Constructs EventBase object

  • « EventBase
  • EventBase::dispatch »
  • PHP Manual
  • EventBase
  • Constructs EventBase object

EventBase::__construct

(PECL event >= 1.2.6-beta)

EventBase::__construct — Constructs EventBase object

Descrição

public EventBase::__construct( EventConfig $cfg = ?)

Constructs EventBase object

Parâmetros

cfg

Optional EventConfig object.

Erros/Exceções

If EventBase cannot be constructed with the provided configuration, a EventException will be thrown.

Veja Também

  • EventConfig


Dispatch pending events

  • « EventBase::__construct
  • EventBase::exit »
  • PHP Manual
  • EventBase
  • Dispatch pending events

EventBase::dispatch

(PECL event >= 1.2.6-beta)

EventBase::dispatch — Dispatch pending events

Descrição

public EventBase::dispatch(): void

Wait for events to become active, and run their callbacks. The same as EventBase::loop() with no flags set.

Aviso

Do NOT destroy the EventBase object as long as resources of the associated Event objects are not released. Otherwise, it will lead to unpredictable results!

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBase::loop() - Dispatch pending events


Stop dispatching events

  • « EventBase::dispatch
  • EventBase::free »
  • PHP Manual
  • EventBase
  • Stop dispatching events

EventBase::exit

(PECL event >= 1.2.6-beta)

EventBase::exit — Stop dispatching events

Descrição

public EventBase::exit( float $timeout = ?): bool

Tells event base to stop optionally after given number of seconds.

Parâmetros

timeout

Optional number of seconds after which the event base should stop dispatching events.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBase::stop() - Tells event_base to stop dispatching events


Free resources allocated for this event base

  • « EventBase::exit
  • EventBase::getFeatures »
  • PHP Manual
  • EventBase
  • Free resources allocated for this event base

EventBase::free

(PECL event >= 1.10.0)

EventBase::free — Free resources allocated for this event base

Descrição

public EventBase::free(): void

Deallocates resources allocated by libevent for the EventBase object.

Aviso

The EventBase::free() method doesn't destruct the object itself. To destruct the object completely call unset() , or assign null.

This method does not deallocate or detach any of the events that are currently associated with the EventBase object, or close any of their sockets - beware.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventBase::__construct() - Constructs EventBase object


Returns bitmask of features supported

  • « EventBase::free
  • EventBase::getMethod »
  • PHP Manual
  • EventBase
  • Returns bitmask of features supported

EventBase::getFeatures

(PECL event >= 1.2.6-beta)

EventBase::getFeatures — Returns bitmask of features supported

Descrição

public EventBase::getFeatures(): int

Returns bitmask of features supported.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns integer representing a bitmask of supported features. See EventConfig::FEATURE_* constants .

Exemplos

Exemplo #1 EventBase::getFeatures() example

<?php
// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
echo "'select' method avoided\n";
}

$base = new EventBase($cfg);

echo "Features:\n";
$features = $base->getFeatures();
($features & EventConfig::FEATURE_ET) and print "ET - edge-triggered IO\n";
($features & EventConfig::FEATURE_O1) and print "O1 - O(1) operation for adding/deleting events\n";
($features & EventConfig::FEATURE_FDS) and print "FDS - arbitrary file descriptor types, and not just sockets\n";
?>

Veja Também

  • EventBase::getMethod() - Returns event method in use
  • EventConfig


Returns event method in use

  • « EventBase::getFeatures
  • EventBase::getTimeOfDayCached »
  • PHP Manual
  • EventBase
  • Returns event method in use

EventBase::getMethod

(PECL event >= 1.2.6-beta)

EventBase::getMethod — Returns event method in use

Descrição

public EventBase::getMethod(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

String representing used event method(backend).

Exemplos

Exemplo #1 EventBase::getMethod() example

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
echo "'select' method avoided\n";
}

// Create event_base associated with the config
$base = new EventBase($cfg);
echo "Event method used: ", $base->getMethod(), PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

`select' method avoided
Event method used: epoll

Veja Também

  • EventBase::getFeatures() - Returns bitmask of features supported


Returns the current event base time

  • « EventBase::getMethod
  • EventBase::gotExit »
  • PHP Manual
  • EventBase
  • Returns the current event base time

EventBase::getTimeOfDayCached

(PECL event >= 1.2.6-beta)

EventBase::getTimeOfDayCached — Returns the current event base time

Descrição

public EventBase::getTimeOfDayCached(): float

On success returns the current time(as returned by gettimeofday() ), looking at the cached value in base if possible, and calling gettimeofday() or clock_gettime() as appropriate if there is no cached time.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current event base time. On failure returns null.


Checks if the event loop was told to exit

  • « EventBase::getTimeOfDayCached
  • EventBase::gotStop »
  • PHP Manual
  • EventBase
  • Checks if the event loop was told to exit

EventBase::gotExit

(PECL event >= 1.2.6-beta)

EventBase::gotExit — Checks if the event loop was told to exit

Descrição

public EventBase::gotExit(): bool

Checks if the event loop was told to exit by EventBase::exit() .

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true, event loop was told to exit by EventBase::exit() . Otherwise false.

Veja Também

  • EventBase::exit() - Stop dispatching events
  • EventBase::stop() - Tells event_base to stop dispatching events
  • EventBase::gotStop() - Checks if the event loop was told to exit


Checks if the event loop was told to exit

  • « EventBase::gotExit
  • EventBase::loop »
  • PHP Manual
  • EventBase
  • Checks if the event loop was told to exit

EventBase::gotStop

(PECL event >= 1.2.6-beta)

EventBase::gotStop — Checks if the event loop was told to exit

Descrição

public EventBase::gotStop(): bool

Checks if the event loop was told to exit by EventBase::stop() .

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true, event loop was told to stop by EventBase::stop() . Otherwise false.

Veja Também

  • EventBase::exit() - Stop dispatching events
  • EventBase::stop() - Tells event_base to stop dispatching events
  • EventBase::gotExit() - Checks if the event loop was told to exit


Dispatch pending events

  • « EventBase::gotStop
  • EventBase::priorityInit »
  • PHP Manual
  • EventBase
  • Dispatch pending events

EventBase::loop

(PECL event >= 1.2.6-beta)

EventBase::loop — Dispatch pending events

Descrição

public EventBase::loop( int $flags = ?): bool

Wait for events to become active, and run their callbacks.

Aviso

Do NOT destroy the EventBase object as long as resources of the associated Event objects are not released. Otherwise, it will lead to unpredictable results!

Parâmetros

flags

Optional flags. One of EventBase::LOOP_* constants. See EventBase constants .

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBase::dispatch() - Dispatch pending events


Sets number of priorities per event base

  • « EventBase::loop
  • EventBase::reInit »
  • PHP Manual
  • EventBase
  • Sets number of priorities per event base

EventBase::priorityInit

(PECL event >= 1.2.6-beta)

EventBase::priorityInit — Sets number of priorities per event base

Descrição

public EventBase::priorityInit( int $n_priorities ): bool

Sets number of priorities per event base.

Parâmetros

n_priorities

The number of priorities per event base.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • Event::setPriority() - Set event priority


Re-initialize event base(after a fork)

  • « EventBase::priorityInit
  • EventBase::stop »
  • PHP Manual
  • EventBase
  • Re-initialize event base(after a fork)

EventBase::reInit

(PECL event >= 1.2.6-beta)

EventBase::reInit — Re-initialize event base(after a fork)

Descrição

public EventBase::reInit(): bool

Re-initialize event base. Should be called after a fork.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Tells event_base to stop dispatching events

  • « EventBase::reInit
  • EventBuffer »
  • PHP Manual
  • EventBase
  • Tells event_base to stop dispatching events

EventBase::stop

(PECL event >= 1.2.6-beta)

EventBase::stop — Tells event_base to stop dispatching events

Descrição

public EventBase::stop(): bool

Tells event_base to stop dispatching events

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBase::exit() - Stop dispatching events
  • EventBase::gotStop() - Checks if the event loop was told to exit


The EventBuffer class

(PECL event >= 1.5.0)

Introdução

EventBuffer represents Libevent's "evbuffer", an utility functionality for buffered I/O.

Event buffers are meant to be generally useful for doing the "buffer" part of buffered network I/O.

Resumo da classe

class EventBuffer {
/* Constantes */
const int EOL_ANY = 0;
const int EOL_CRLF = 1;
const int EOL_CRLF_STRICT = 2;
const int EOL_LF = 3;
const int PTR_SET = 0;
const int PTR_ADD = 1;
/* Propriedades */
public readonly int $length;
public readonly int $contiguous_space;
/* Métodos */
public add( string $data ): bool
public addBuffer( EventBuffer $buf ): bool
public appendFrom( EventBuffer $buf , int $len ): int
public __construct()
public copyout( string &$data , int $max_bytes ): int
public drain( int $len ): bool
public enableLocking(): void
public expand( int $len ): bool
public freeze( bool $at_front ): bool
public lock(): void
public prepend( string $data ): bool
public prependBuffer( EventBuffer $buf ): bool
public pullup( int $size ): string
public read( int $max_bytes ): string
public read( mixed $fd , int $howmuch ): int
public readLine( int $eol_style ): string
public search( string $what , int $start = -1 , int $end = -1 ): mixed
public searchEol( int $start = -1 , int $eol_style = EventBuffer::EOL_ANY ): mixed
public substr( int $start , int $length = ?): string
public unfreeze( bool $at_front ): bool
public unlock(): bool
public write( mixed $fd , int $howmuch = ?): int
}

Propriedades

length

The number of bytes stored in an event buffer.

contiguous_space

The number of bytes stored contiguously at the front of the buffer. The bytes in a buffer may be stored in multiple separate chunks of memory; the property returns the number of bytes currently stored in the first chunk.

Constantes pré-definidas

EventBuffer::EOL_ANY

The end of line is any sequence of any number of carriage return and linefeed characters. This format is not very useful; it exists mainly for backward compatibility.

EventBuffer::EOL_CRLF

The end of the line is an optional carriage return, followed by a linefeed. (In other words, it is either a "\r\n" or a "\n" .) This format is useful in parsing text-based Internet protocols, since the standards generally prescribe a "\r\n" line-terminator, but nonconformant clients sometimes say just "\n" .

EventBuffer::EOL_CRLF_STRICT

The end of a line is a single carriage return, followed by a single linefeed. (This is also known as "\r\n" . The ASCII values are 0x0D 0x0A ).

EventBuffer::EOL_LF

The end of a line is a single linefeed character. (This is also known as "\n" . It is ASCII value is 0x0A .)

EventBuffer::PTR_SET

Flag used as argument of EventBuffer::setPosition() method. If this flag specified, the position pointer is moved to an absolute position within the buffer.

EventBuffer::PTR_ADD

The same as EventBuffer::PTR_SET , except this flag causes EventBuffer::setPosition() method to move position forward up to the specified number of bytes(instead of setting absolute position).

Índice

  • EventBuffer::add — Append data to the end of an event buffer
  • EventBuffer::addBuffer — Move all data from a buffer provided to the current instance of EventBuffer
  • EventBuffer::appendFrom — Moves the specified number of bytes from a source buffer to the end of the current buffer
  • EventBuffer::__construct — Constructs EventBuffer object
  • EventBuffer::copyout — Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain — Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::enableLocking — Descrição
  • EventBuffer::expand — Reserves space in buffer
  • EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding
  • EventBuffer::lock — Acquires a lock on buffer
  • EventBuffer::prepend — Prepend data to the front of the buffer
  • EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer
  • EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::read — Read data from an evbuffer and drain the bytes read
  • EventBuffer::readFrom — Read data from a file onto the end of the buffer
  • EventBuffer::readLine — Extracts a line from the front of the buffer
  • EventBuffer::search — Scans the buffer for an occurrence of a string
  • EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line
  • EventBuffer::substr — Substracts a portion of the buffer data
  • EventBuffer::unfreeze — Re-enable calls that modify an event buffer
  • EventBuffer::unlock — Releases lock acquired by EventBuffer::lock
  • EventBuffer::write — Write contents of the buffer to a file or socket


Append data to the end of an event buffer

  • « EventBuffer
  • EventBuffer::addBuffer »
  • PHP Manual
  • EventBuffer
  • Append data to the end of an event buffer

EventBuffer::add

(PECL event >= 1.2.6-beta)

EventBuffer::add — Append data to the end of an event buffer

Descrição

public EventBuffer::add( string $data ): bool

Append data to the end of an event buffer.

Parâmetros

data

String to be appended to the end of the buffer.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBuffer::addBuffer() - Move all data from a buffer provided to the current instance of EventBuffer


Move all data from a buffer provided to the current instance of EventBuffer

  • « EventBuffer::add
  • EventBuffer::appendFrom »
  • PHP Manual
  • EventBuffer
  • Move all data from a buffer provided to the current instance of EventBuffer

EventBuffer::addBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::addBuffer — Move all data from a buffer provided to the current instance of EventBuffer

Descrição

public EventBuffer::addBuffer( EventBuffer $buf ): bool

Move all data from the buffer provided in buf parameter to the end of current EventBuffer . This is a destructive add. The data from one buffer moves into the other buffer. However, no unnecessary memory copies occur.

Parâmetros

buf

The source EventBuffer object.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBuffer::add() - Append data to the end of an event buffer


Moves the specified number of bytes from a source buffer to the end of the current buffer

  • « EventBuffer::addBuffer
  • EventBuffer::__construct »
  • PHP Manual
  • EventBuffer
  • Moves the specified number of bytes from a source buffer to the end of the current buffer

EventBuffer::appendFrom

(PECL event >= 1.6.0)

EventBuffer::appendFrom — Moves the specified number of bytes from a source buffer to the end of the current buffer

Descrição

public EventBuffer::appendFrom( EventBuffer $buf , int $len ): int

Moves the specified number of bytes from a source buffer to the end of the current buffer. If there are fewer number of bytes, it moves all the bytes available from the source buffer.

Parâmetros

buf

Source buffer.

len

Valor Retornado

Returns the number of bytes read.

Registro de Alterações

Versão | Descrição
PECL event 1.6.0 | Renamed EventBuffer::appendFrom()(the old method name) to EventBuffer::appendFrom().

Veja Também

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


Constructs EventBuffer object

  • « EventBuffer::appendFrom
  • EventBuffer::copyout »
  • PHP Manual
  • EventBuffer
  • Constructs EventBuffer object

EventBuffer::__construct

(PECL event >= 1.2.6-beta)

EventBuffer::__construct — Constructs EventBuffer object

Descrição

public EventBuffer::__construct()

Constructs EventBuffer object

Parâmetros

Esta função não possui parâmetros.


Copies out specified number of bytes from the front of the buffer

  • « EventBuffer::__construct
  • EventBuffer::drain »
  • PHP Manual
  • EventBuffer
  • Copies out specified number of bytes from the front of the buffer

EventBuffer::copyout

(PECL event >= 1.2.6-beta)

EventBuffer::copyout — Copies out specified number of bytes from the front of the buffer

Descrição

public EventBuffer::copyout( string &$data , int $max_bytes ): int

Behaves just like EventBuffer::read() , but does not drain any data from the buffer. I.e. it copies the first max_bytes bytes from the front of the buffer into data . If there are fewer than max_bytes bytes available, the function copies all the bytes there are.

Parâmetros

data

Output string.

max_bytes

The number of bytes to copy.

Valor Retornado

Returns the number of bytes copied, or -1 on failure.

Veja Também

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Removes specified number of bytes from the front of the buffer without copying it anywhere

  • « EventBuffer::copyout
  • EventBuffer::enableLocking »
  • PHP Manual
  • EventBuffer
  • Removes specified number of bytes from the front of the buffer without copying it anywhere

EventBuffer::drain

(PECL event >= 1.2.6-beta)

EventBuffer::drain — Removes specified number of bytes from the front of the buffer without copying it anywhere

Descrição

public EventBuffer::drain( int $len ): bool

Behaves as EventBuffer::read() , except that it does not copy the data: it just removes it from the front of the buffer.

Parâmetros

len

The number of bytes to remove from the buffer.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Descrição

  • « EventBuffer::drain
  • EventBuffer::expand »
  • PHP Manual
  • EventBuffer
  • Descrição

EventBuffer::enableLocking

(PECL event >= 1.2.6-beta)

EventBuffer::enableLocking —

Descrição

public EventBuffer::enableLocking(): void

Enable locking on an EventBuffer so that it can safely be used by multiple threads at the same time. When locking is enabled, the lock will be held when callbacks are invoked. This could result in deadlock if you aren't careful. Plan accordingly!

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • » Evbuffers and Thread-safety


Reserves space in buffer

  • « EventBuffer::enableLocking
  • EventBuffer::freeze »
  • PHP Manual
  • EventBuffer
  • Reserves space in buffer

EventBuffer::expand

(PECL event >= 1.2.6-beta)

EventBuffer::expand — Reserves space in buffer

Descrição

public EventBuffer::expand( int $len ): bool

Alters the last chunk of memory in the buffer, or adds a new chunk, such that the buffer is now large enough to contain len bytes without any further allocations.

Parâmetros

len

The number of bytes to reserve for the buffer

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Prevent calls that modify an event buffer from succeeding

  • « EventBuffer::expand
  • EventBuffer::lock »
  • PHP Manual
  • EventBuffer
  • Prevent calls that modify an event buffer from succeeding

EventBuffer::freeze

(PECL event >= 1.2.6-beta)

EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding

Descrição

public EventBuffer::freeze( bool $at_front ): bool

Prevent calls that modify an event buffer from succeeding

Parâmetros

at_front

Whether to disable changes to the front or end of the buffer.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBuffer::unfreeze() - Re-enable calls that modify an event buffer


Acquires a lock on buffer

  • « EventBuffer::freeze
  • EventBuffer::prepend »
  • PHP Manual
  • EventBuffer
  • Acquires a lock on buffer

EventBuffer::lock

(PECL event >= 1.2.6-beta)

EventBuffer::lock — Acquires a lock on buffer

Descrição

public EventBuffer::lock(): void

Acquires a lock on buffer. Can be used in pair with EventBuffer::unlock() to make a set of operations atomic, i.e. thread-safe. Note, it is not needed to lock buffers for individual operations. When locking is enabled(see EventBuffer::enableLocking() ), individual operations on event buffers are already atomic.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventBuffer::unlock() - Releases lock acquired by EventBuffer::lock


Prepend data to the front of the buffer

  • « EventBuffer::lock
  • EventBuffer::prependBuffer »
  • PHP Manual
  • EventBuffer
  • Prepend data to the front of the buffer

EventBuffer::prepend

(PECL event >= 1.2.6-beta)

EventBuffer::prepend — Prepend data to the front of the buffer

Descrição

public EventBuffer::prepend( string $data ): bool

Prepend data to the front of the buffer.

Parâmetros

data

String to be prepended to the front of the buffer.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBuffer::prependBuffer() - Moves all data from source buffer to the front of current buffer
  • EventBuffer::add() - Append data to the end of an event buffer
  • EventBuffer::addBuffer() - Move all data from a buffer provided to the current instance of EventBuffer


Moves all data from source buffer to the front of current buffer

  • « EventBuffer::prepend
  • EventBuffer::pullup »
  • PHP Manual
  • EventBuffer
  • Moves all data from source buffer to the front of current buffer

EventBuffer::prependBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer

Descrição

public EventBuffer::prependBuffer( EventBuffer $buf ): bool

Behaves as EventBuffer::addBuffer() , except that it moves data to the front of the buffer.

Parâmetros

buf

Source buffer.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBuffer::add() - Append data to the end of an event buffer
  • EventBuffer::addBuffer() - Move all data from a buffer provided to the current instance of EventBuffer
  • EventBuffer::prepend() - Prepend data to the front of the buffer


Linearizes data within buffer and returns it's contents as a string

  • « EventBuffer::prependBuffer
  • EventBuffer::read »
  • PHP Manual
  • EventBuffer
  • Linearizes data within buffer and returns it's contents as a string

EventBuffer::pullup

(PECL event >= 1.2.6-beta)

EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string

Descrição

public EventBuffer::pullup( int $size ): string

"Linearizes" the first size bytes of the buffer, copying or moving them as needed to ensure that they are all contiguous and occupying the same chunk of memory. If size is negative, the function linearizes the entire buffer.

Aviso

Calling EventBuffer::pullup() with a large size can be quite slow, since it potentially needs to copy the entire buffer's contents.

Parâmetros

size

The number of bytes required to be contiguous within the buffer.

Valor Retornado

If size is greater than the number of bytes in the buffer, the function returns null. Otherwise, EventBuffer::pullup() returns string.

Veja Também

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Read data from an evbuffer and drain the bytes read

  • « EventBuffer::pullup
  • EventBuffer::readFrom »
  • PHP Manual
  • EventBuffer
  • Read data from an evbuffer and drain the bytes read

EventBuffer::read

(PECL event >= 1.6.0)

EventBuffer::read — Read data from an evbuffer and drain the bytes read

Descrição

public EventBuffer::read( int $max_bytes ): string

Read the first max_bytes from the buffer and drain the bytes read. If more max_bytes are requested than are available in the buffer, it only extracts as many bytes as available.

Parâmetros

max_bytes

Maxmimum number of bytes to read from the buffer.

Valor Retornado

Returns string read, or false on failure.

Registro de Alterações

Versão | Descrição
PECL event 1.6.0 | Renamed EventBuffer::read()(the old method name) to EventBuffer::read(). EventBuffer::read() now takes only max_bytes argument; returns string instead of integer.

Veja Também

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Read data from a file onto the end of the buffer

  • « EventBuffer::read
  • EventBuffer::readLine »
  • PHP Manual
  • EventBuffer
  • Read data from a file onto the end of the buffer

EventBuffer::readFrom

(PECL event >= 1.7.0)

EventBuffer::readFrom — Read data from a file onto the end of the buffer

Descrição

public EventBuffer::read( mixed $fd , int $howmuch ): int

Read data from the file specified by fd onto the end of the buffer.

Parâmetros

fd

Socket resource, stream, or numeric file descriptor.

howmuch

Maxmimum number of bytes to read.

Valor Retornado

Returns the number of bytes read, or false on failure.

Veja Também

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Extracts a line from the front of the buffer

  • « EventBuffer::readFrom
  • EventBuffer::search »
  • PHP Manual
  • EventBuffer
  • Extracts a line from the front of the buffer

EventBuffer::readLine

(PECL event >= 1.2.6-beta)

EventBuffer::readLine — Extracts a line from the front of the buffer

Descrição

public EventBuffer::readLine( int $eol_style ): string

Extracts a line from the front of the buffer and returns it in a newly allocated string. If there is not a whole line to read, the function returns null. The line terminator is not included in the copied string.

Parâmetros

eol_style

One of EventBuffer:EOL_* constants .

Valor Retornado

On success returns the line read from the buffer, otherwise null.

Veja Também

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Scans the buffer for an occurrence of a string

  • « EventBuffer::readLine
  • EventBuffer::searchEol »
  • PHP Manual
  • EventBuffer
  • Scans the buffer for an occurrence of a string

EventBuffer::search

(PECL event >= 1.2.6-beta)

EventBuffer::search — Scans the buffer for an occurrence of a string

Descrição

public EventBuffer::search( string $what , int $start = -1 , int $end = -1 ): mixed

Scans the buffer for an occurrence of the string what . It returns numeric position of the string, or false if the string was not found.

If the start argument is provided, it points to the position at which the search should begin; otherwise, the search is performed from the start of the string. If end argument provided, the search is performed between start and end buffer positions.

Parâmetros

what

String to search.

start

Start search position.

end

End search position.

Valor Retornado

Returns numeric position of the first occurrence of the string in the buffer, or false if string is not found.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Exemplos

Exemplo #1 EventBuffer::search() example

<?php
// Count total occurrences of 'str' in 'buf'
function count_instances($buf, $str) {
$total = 0;
$p = 0;
$i = 0;

while (1) {
$p = $buf->search($str, $p);
if ($p === FALSE) {
break;
}
++$total;
++$p;
}

return $total;
}

$buf = new EventBuffer();
$buf->add("Some string within a string inside another string");
var_dump(count_instances($buf, "str"));
?>

O exemplo acima produzirá algo semelhante a:

int(3)

Veja Também

  • EventBuffer::searchEol() - Scans the buffer for an occurrence of an end of line


Scans the buffer for an occurrence of an end of line

  • « EventBuffer::search
  • EventBuffer::substr »
  • PHP Manual
  • EventBuffer
  • Scans the buffer for an occurrence of an end of line

EventBuffer::searchEol

(PECL event >= 1.5.0)

EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line

Descrição

public EventBuffer::searchEol( int $start = -1 , int $eol_style = EventBuffer::EOL_ANY ): mixed

Scans the buffer for an occurrence of an end of line specified by eol_style parameter . It returns numeric position of the string, or false if the string was not found.

If the start argument is provided, it represents the position at which the search should begin; otherwise, the search is performed from the start of the string. If end argument provided, the search is performed between start and end buffer positions.

Parâmetros

start

Start search position.

eol_style

One of EventBuffer:EOL_* constants .

Valor Retornado

Returns numeric position of the first occurrence of end-of-line symbol in the buffer, or false if not found.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Veja Também

  • EventBuffer::search() - Scans the buffer for an occurrence of a string


Substracts a portion of the buffer data

  • « EventBuffer::searchEol
  • EventBuffer::unfreeze »
  • PHP Manual
  • EventBuffer
  • Substracts a portion of the buffer data

EventBuffer::substr

(PECL event >= 1.6.0)

EventBuffer::substr — Substracts a portion of the buffer data

Descrição

public EventBuffer::substr( int $start , int $length = ?): string

Substracts up to length bytes of the buffer data beginning at start position.

Parâmetros

start

The start position of data to be substracted.

length

Maximum number of bytes to substract.

Valor Retornado

Returns the data substracted as a string on success, or false on failure.

Veja Também

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


Re-enable calls that modify an event buffer

  • « EventBuffer::substr
  • EventBuffer::unlock »
  • PHP Manual
  • EventBuffer
  • Re-enable calls that modify an event buffer

EventBuffer::unfreeze

(PECL event >= 1.2.6-beta)

EventBuffer::unfreeze — Re-enable calls that modify an event buffer

Descrição

public EventBuffer::unfreeze( bool $at_front ): bool

Re-enable calls that modify an event buffer.

Parâmetros

at_front

Whether to enable events at the front or at the end of the buffer.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBuffer::freeze() - Prevent calls that modify an event buffer from succeeding


Releases lock acquired by EventBuffer::lock

  • « EventBuffer::unfreeze
  • EventBuffer::write »
  • PHP Manual
  • EventBuffer
  • Releases lock acquired by EventBuffer::lock

EventBuffer::unlock

(PECL event >= 1.2.6-beta)

EventBuffer::unlock — Releases lock acquired by EventBuffer::lock

Descrição

public EventBuffer::unlock(): bool

Releases lock acquired by EventBuffer::lock() .

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBuffer::lock() - Acquires a lock on buffer


Write contents of the buffer to a file or socket

  • « EventBuffer::unlock
  • EventBufferEvent »
  • PHP Manual
  • EventBuffer
  • Write contents of the buffer to a file or socket

EventBuffer::write

(PECL event >= 1.6.0)

EventBuffer::write — Write contents of the buffer to a file or socket

Descrição

public EventBuffer::write( mixed $fd , int $howmuch = ?): int

Write contents of the buffer to a file descriptor. The buffer will be drained after the bytes have been successfully written.

Parâmetros

fd

Socket resource, stream or numeric file descriptor associated normally associated with a socket.

howmuch

The maximum number of bytes to write.

Valor Retornado

Returns the number of bytes written, or false on error.

Veja Também

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


The EventBufferEvent class

(PECL event >= 1.2.6-beta)

Introdução

Represents Libevent's buffer event.

Usually an application wants to perform some amount of data buffering in addition to just responding to events. When we want to write data, for example, the usual pattern looks like:

  1. Decide that we want to write some data to a connection; put that data in a buffer.

  2. Wait for the connection to become writable

  3. Write as much of the data as we can

  4. Remember how much we wrote, and if we still have more data to write, wait for the connection to become writable again.

This buffered I/O pattern is common enough that Libevent provides a generic mechanism for it. A "buffer event" consists of an underlying transport (like a socket), a read buffer, and a write buffer. Instead of regular events, which give callbacks when the underlying transport is ready to be read or written, a buffer event invokes its user-supplied callbacks when it has read or written enough data.

Resumo da classe

final class EventBufferEvent {
/* Constantes */
const int READING = 1;
const int WRITING = 2;
const int EOF = 16;
const int ERROR = 32;
const int TIMEOUT = 64;
const int CONNECTED = 128;
const int OPT_CLOSE_ON_FREE = 1;
const int OPT_THREADSAFE = 2;
const int OPT_DEFER_CALLBACKS = 4;
const int OPT_UNLOCK_CALLBACKS = 8;
const int SSL_OPEN = 0;
const int SSL_CONNECTING = 1;
const int SSL_ACCEPTING = 2;
/* Propriedades */
public int $fd;
public int $priority;
public readonly EventBuffer $input;
public readonly EventBuffer $output;
/* Métodos */
public close(): void
public connect( string $addr ): bool
public connectHost(
EventDnsBase $dns_base ,
string $hostname ,
int $port ,
int $family = EventUtil::AF_UNSPEC
): bool
public __construct(
EventBase $base ,
mixed $socket = null ,
int $options = 0 ,
callable $readcb = null ,
callable $writecb = null ,
callable $eventcb = null ,
mixed $arg = null
)
public static createPair( EventBase $base , int $options = 0 ): array
public disable( int $events ): bool
public enable( int $events ): bool
public free(): void
public getDnsErrorString(): string
public getEnabled(): int
public getInput(): EventBuffer
public getOutput(): EventBuffer
public read( int $size ): string
public readBuffer( EventBuffer $buf ): bool
public setCallbacks(
callable $readcb ,
callable $writecb ,
callable $eventcb ,
mixed $arg = ?
): void
public setPriority( int $priority ): bool
public setTimeouts( float $timeout_read , float $timeout_write ): bool
public setWatermark( int $events , int $lowmark , int $highmark ): void
public sslError(): string
public static sslFilter(
EventBase $base ,
EventBufferEvent $underlying ,
EventSslContext $ctx ,
int $state ,
int $options = 0
): EventBufferEvent
public sslGetCipherInfo(): string
public sslGetCipherName(): string
public sslGetCipherVersion(): string
public sslGetProtocol(): string
public sslRenegotiate(): void
public static sslSocket(
EventBase $base ,
mixed $socket ,
EventSslContext $ctx ,
int $state ,
int $options = ?
): EventBufferEvent
public write( string $data ): bool
public writeBuffer( EventBuffer $buf ): bool
}

Propriedades

fd

Numeric file descriptor associated with the buffer event. Normally represents a bound socket. Equals to null, if there is no file descriptor(socket) associated with the buffer event.

priority

The priority of the events used to implement the buffer event.

input

Underlying input buffer object( EventBuffer )

output

Underlying output buffer object( EventBuffer )

Constantes pré-definidas

EventBufferEvent::READING

An event occurred during a read operation on the bufferevent. See the other flags for which event it was.

EventBufferEvent::WRITING

An event occurred during a write operation on the bufferevent. See the other flags for which event it was.

EventBufferEvent::EOF

Got an end-of-file indication on the buffer event.

EventBufferEvent::ERROR

An error occurred during a bufferevent operation. For more information on what the error was, call EventUtil::getLastSocketErrno() and/or EventUtil::getLastSocketError() .

EventBufferEvent::TIMEOUT

EventBufferEvent::CONNECTED

Finished a requested connection on the bufferevent.

EventBufferEvent::OPT_CLOSE_ON_FREE

When the buffer event is freed, close the underlying transport. This will close an underlying socket, free an underlying buffer event, etc.

EventBufferEvent::OPT_THREADSAFE

Automatically allocate locks for the bufferevent, so that it’s safe to use from multiple threads.

EventBufferEvent::OPT_DEFER_CALLBACKS

When this flag is set, the bufferevent defers all of its callbacks. See » Fast portable non-blocking network programming with Libevent, Deferred callbacks .

EventBufferEvent::OPT_UNLOCK_CALLBACKS

By default, when the bufferevent is set up to be threadsafe, the buffer event’s locks are held whenever the any user-provided callback is invoked. Setting this option makes Libevent release the buffer event’s lock when it’s invoking the callbacks.

EventBufferEvent::SSL_OPEN

The SSL handshake is done

EventBufferEvent::SSL_CONNECTING

SSL is currently performing negotiation as a client

EventBufferEvent::SSL_ACCEPTING

SSL is currently performing negotiation as a server

Índice

  • EventBufferEvent::close — Closes file descriptor associated with the current buffer event
  • EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket
  • EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving
  • EventBufferEvent::__construct — Constructs EventBufferEvent object
  • EventBufferEvent::createPair — Creates two buffer events connected to each other
  • EventBufferEvent::disable — Disable events read, write, or both on a buffer event
  • EventBufferEvent::enable — Enable events read, write, or both on a buffer event
  • EventBufferEvent::free — Free a buffer event
  • EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt
  • EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event
  • EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event
  • EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event
  • EventBufferEvent::read — Read buffer's data
  • EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf
  • EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks
  • EventBufferEvent::setPriority — Assign a priority to a bufferevent
  • EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event
  • EventBufferEvent::setWatermark — Adjusts read and/or write watermarks
  • EventBufferEvent::sslError — Returns most recent OpenSSL error reported on the buffer event
  • EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event
  • EventBufferEvent::sslGetCipherInfo — Returns a textual description of the cipher
  • EventBufferEvent::sslGetCipherName — Returns the current cipher name of the SSL connection
  • EventBufferEvent::sslGetCipherVersion — Returns version of cipher used by current SSL connection
  • EventBufferEvent::sslGetProtocol — Returns the name of the protocol used for current SSL connection
  • EventBufferEvent::sslRenegotiate — Tells a bufferevent to begin SSL renegotiation
  • EventBufferEvent::sslSocket — Creates a new SSL buffer event to send its data over an SSL on a socket
  • EventBufferEvent::write — Adds data to a buffer event's output buffer
  • EventBufferEvent::writeBuffer — Adds contents of the entire buffer to a buffer event's output buffer


Closes file descriptor associated with the current buffer event

  • « EventBufferEvent
  • EventBufferEvent::connect »
  • PHP Manual
  • EventBufferEvent
  • Closes file descriptor associated with the current buffer event

EventBufferEvent::close

(PECL event >= 1.10.0)

EventBufferEvent::close — Closes file descriptor associated with the current buffer event

Descrição

public EventBufferEvent::close(): void

Closes file descriptor associated with the current buffer event.

This method may be used in cases when the EventBufferEvent::OPT_CLOSE_ON_FREE option is not appropriate.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Connect buffer event's file descriptor to given address or UNIX socket

  • « EventBufferEvent::close
  • EventBufferEvent::connectHost »
  • PHP Manual
  • EventBufferEvent
  • Connect buffer event's file descriptor to given address or UNIX socket

EventBufferEvent::connect

(PECL event >= 1.2.6-beta)

EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket

Descrição

public EventBufferEvent::connect( string $addr ): bool

Connect buffer event's file descriptor to given address(optionally with port), or a UNIX domain socket.

If socket is not assigned to the buffer event, this function allocates a new socket and makes it non-blocking internally.

To resolve DNS names(asyncronously), use EventBufferEvent::connectHost() method.

Parâmetros

addr

Should contain an IP address with optional port number, or a path to UNIX domain socket. Recognized formats are:

[IPv6Address]:port
[IPv6Address]
IPv6Address
IPv4Address:port
IPv4Address
unix:path
Note, 'unix:' prefix is currently not case sensitive.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 EventBufferEvent::connect() example

<?php
/*
* 1. Connect to 127.0.0.1 at port 80
* by means of EventBufferEvent::connect().
*
* 2. Request /index.cphp via HTTP/1.0
* using the output buffer.
*
* 3. Asyncronously read the response and print it to stdout.
*/

/* Read callback */
function readcb($bev, $base) {
$input = $bev->getInput();

while (($n = $input->remove($buf, 1024)) > 0) {
echo $buf;
}
}

/* Event callback */
function eventcb($bev, $events, $base) {
if ($events & EventBufferEvent::CONNECTED) {
echo "Connected.\n";
} elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
if ($events & EventBufferEvent::ERROR) {
echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
}

echo "Closing\n";
$base->exit();
exit("Done\n");
}
}

$base = new EventBase();

echo "step 1\n";
$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
exit("Failed creating bufferevent socket\n");
}

echo "step 2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "step 3\n";
/* Send request */
$output = $bev->getOutput();
if (!$output->add(
"GET /index.cphp HTTP/1.0\r\n".
"Connection: Close\r\n\r\n"
)) {
exit("Failed adding request to output buffer\n");
}

/* Connect to the host syncronously.
* We know the IP, and don't need to resolve DNS. */
if (!$bev->connect("127.0.0.1:80")) {
exit("Can't connect to host\n");
}

/* Dispatch pending events */
$base->dispatch();

O exemplo acima produzirá algo semelhante a:

step 1
step 2
step 3
Connected.
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Sat, 09 Mar 2013 10:06:58 GMT
Content-Type: text/html; CHARSET=Windows-1252
Connection: close
X-Powered-By: PHP/5.4.11--pl2-gentoo

sdfsdfsf
Closing
Done

Exemplo #2 Connect to UNIX domain socket which presumably is served by a server, read response from the server and output it to the console

<?php
class MyUnixSocketClient {
private $base, $bev;

function __construct($base, $sock_path) {
$this->base = $base;
$this->bev = new EventBufferEvent($base, NULL, EventBufferEvent::OPT_CLOSE_ON_FREE,
array ($this, "read_cb"), NULL, array ($this, "event_cb"));

if (!$this->bev->connect("unix:$sock_path")) {
trigger_error("Failed to connect to socket `$sock_path'", E_USER_ERROR);
}

$this->bev->enable(Event::READ);
}

function __destruct() {
if ($this->bev) {
$this->bev->free();
$this->bev = NULL;
}
}

function dispatch() {
$this->base->dispatch();
}

function read_cb($bev, $unused) {
$in = $bev->input;

printf("Received %ld bytes\n", $in->length);
printf("----- data ----\n");
printf("%ld:\t%s\n", (int) $in->length, $in->pullup(-1));

$this->bev->free();
$this->bev = NULL;
$this->base->exit(NULL);
}

function event_cb($bev, $events, $unused) {
if ($events & EventBufferEvent::ERROR) {
echo "Error from bufferevent\n";
}

if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
$bev->free();
$bev = NULL;
} elseif ($events & EventBufferEvent::CONNECTED) {
$bev->output->add("test\n");
}
}
}

if ($argc <= 1) {
exit("Socket path is not provided\n");
}
$sock_path = $argv[1];

$base = new EventBase();
$cl = new MyUnixSocketClient($base, $sock_path);
$cl->dispatch();
?>

O exemplo acima produzirá algo semelhante a:

Received 5 bytes
----- data ----
5:  test

Veja Também

  • EventBufferEvent::connectHost() - Connects to a hostname with optionally asyncronous DNS resolving


Connects to a hostname with optionally asyncronous DNS resolving

  • « EventBufferEvent::connect
  • EventBufferEvent::__construct »
  • PHP Manual
  • EventBufferEvent
  • Connects to a hostname with optionally asyncronous DNS resolving

EventBufferEvent::connectHost

(PECL event >= 1.2.6-beta)

EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving

Descrição

public EventBufferEvent::connectHost(
EventDnsBase $dns_base ,
string $hostname ,
int $port ,
int $family = EventUtil::AF_UNSPEC
): bool

Resolves the DNS name hostname, looking for addresses of type family ( EventUtil::AF_* constants). If the name resolution fails, it invokes the event callback with an error event. If it succeeds, it launches a connection attempt just as EventBufferEvent::connect() would.

dns_base is optional. May be null, or an object created with EventDnsBase::__construct() . For asyncronous hostname resolving pass a valid event dns base resource. Otherwise the hostname resolving will block.

Nota:

EventDnsBase is available only if Event configured --with-event-extra ( event_extra library, libevent protocol-specific functionality support including HTTP, DNS, and RPC ).

Nota:

EventBufferEvent::connectHost() requires libevent-2.0.3-alpha or greater.

Parâmetros

dns_base

Object of EventDnsBase in case if DNS is to be resolved asyncronously. Otherwise null.

hostname

Hostname to connect to. Recognized formats are:

www.example.com (hostname)
 1.2.3.4 (ipv4address)
 ::1 (ipv6address)
[::1] ([ipv6address])

port

Port number

family

Address family. EventUtil::AF_UNSPEC , EventUtil::AF_INET , or EventUtil::AF_INET6 . See EventUtil constants .

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 EventBufferEvent::connectHost() example

<?php
/* Read callback */
function readcb($bev, $base) {
//$input = $bev->input; //$bev->getInput();

//$pos = $input->search("TTP");
$pos = $bev->input->search("TTP");

while (($n = $bev->input->remove($buf, 1024)) > 0) {
echo $buf;
}
}

/* Event callback */
function eventcb($bev, $events, $base) {
if ($events & EventBufferEvent::CONNECTED) {
echo "Connected.\n";
} elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
if ($events & EventBufferEvent::ERROR) {
echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
}

echo "Closing\n";
$base->exit();
exit("Done\n");
}
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // We'll use async DNS resolving
if (!$dns_base) {
exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
"readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
exit("Failed creating bufferevent socket\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
"GET {$argv[2]} HTTP/1.0\r\n".
"Host: {$argv[1]}\r\n".
"Connection: Close\r\n\r\n"
)) {
exit("Failed adding request to output buffer\n");
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
exit("Can't connect to host {$argv[1]}\n");
}

$base->dispatch();
?>

O exemplo acima produzirá algo semelhante a:

Connected.
HTTP/1.0 301 Moved Permanently
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1252
Date: Sat, 09 Mar 2013 12:21:19 GMT
Expires: Mon, 08 Apr 2013 12:21:19 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN

<HTML><HEAD><meta http-equiv="content-type" content="text/html;CHARSET=Windows-1252">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/">here</A>.
</BODY></HTML>
Closing
Done

Veja Também

  • EventBufferEvent::connect() - Connect buffer event's file descriptor to given address or UNIX socket


Constructs EventBufferEvent object

  • « EventBufferEvent::connectHost
  • EventBufferEvent::createPair »
  • PHP Manual
  • EventBufferEvent
  • Constructs EventBufferEvent object

EventBufferEvent::__construct

(PECL event >= 1.2.6-beta)

EventBufferEvent::__construct — Constructs EventBufferEvent object

Descrição

public EventBufferEvent::__construct(
EventBase $base ,
mixed $socket = null ,
int $options = 0 ,
callable $readcb = null ,
callable $writecb = null ,
callable $eventcb = null ,
mixed $arg = null
)

Create a buffer event on a socket, stream or a file descriptor. Passing null to socket means that the socket should be created later, e.g. by means of EventBufferEvent::connect() .

Parâmetros

base

Event base that should be associated with the new buffer event.

socket

May be created as a stream(not necessarily by means of sockets extension)

options

One of EventBufferEvent::OPT_* constants , or 0 .

readcb

Read event callback. See About buffer event callbacks .

writecb

Write event callback. See About buffer event callbacks .

eventcb

Status-change event callback. See About buffer event callbacks .

arg

A variable that will be passed to all the callbacks.

Veja Também

  • EventBufferEvent::sslFilter() - Create a new SSL buffer event to send its data over another buffer event
  • EventBufferEvent::sslSocket() - Creates a new SSL buffer event to send its data over an SSL on a socket


Creates two buffer events connected to each other

  • « EventBufferEvent::__construct
  • EventBufferEvent::disable »
  • PHP Manual
  • EventBufferEvent
  • Creates two buffer events connected to each other

EventBufferEvent::createPair

(PECL event >= 1.2.6-beta)

EventBufferEvent::createPair — Creates two buffer events connected to each other

Descrição

public static EventBufferEvent::createPair( EventBase $base , int $options = 0 ): array

Returns array of two EventBufferEvent objects connected to each other. All the usual options are supported, except for EventBufferEvent::OPT_CLOSE_ON_FREE , which has no effect, and EventBufferEvent::OPT_DEFER_CALLBACKS , which is always on.

Parâmetros

base

Associated event base

options

EventBufferEvent::OPT_* constants combined with bitwise OR operator.

Valor Retornado

Returns array of two EventBufferEvent objects connected to each other.

Registro de Alterações

Versão | Descrição
PECL event 1.9.0 | Method made static.


Disable events read, write, or both on a buffer event

  • « EventBufferEvent::createPair
  • EventBufferEvent::enable »
  • PHP Manual
  • EventBufferEvent
  • Disable events read, write, or both on a buffer event

EventBufferEvent::disable

(PECL event >= 1.2.6-beta)

EventBufferEvent::disable — Disable events read, write, or both on a buffer event

Descrição

public EventBufferEvent::disable( int $events ): bool

Disable events Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Parâmetros

events

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBufferEvent::enable() - Enable events read, write, or both on a buffer event


Enable events read, write, or both on a buffer event

  • « EventBufferEvent::disable
  • EventBufferEvent::free »
  • PHP Manual
  • EventBufferEvent
  • Enable events read, write, or both on a buffer event

EventBufferEvent::enable

(PECL event >= 1.2.6-beta)

EventBufferEvent::enable — Enable events read, write, or both on a buffer event

Descrição

public EventBufferEvent::enable( int $events ): bool

Enable events Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Parâmetros

events

Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBufferEvent::disable() - Disable events read, write, or both on a buffer event


Free a buffer event

  • « EventBufferEvent::enable
  • EventBufferEvent::getDnsErrorString »
  • PHP Manual
  • EventBufferEvent
  • Free a buffer event

EventBufferEvent::free

(PECL event >= 1.2.6-beta)

EventBufferEvent::free — Free a buffer event

Descrição

public EventBufferEvent::free(): void

Free resources allocated by buffer event.

Usually there is no need to call this method, since normally it is done within internal object destructors. However, sometimes we have a long-time script allocating lots of instances, or a script with a heavy memory usage, where we need to free resources as soon as possible. In such cases EventBufferEvent::free() may be used to protect the script against running up to the memory_limit .

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Returns string describing the last failed DNS lookup attempt

  • « EventBufferEvent::free
  • EventBufferEvent::getEnabled »
  • PHP Manual
  • EventBufferEvent
  • Returns string describing the last failed DNS lookup attempt

EventBufferEvent::getDnsErrorString

(PECL event >= 1.2.6-beta)

EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt

Descrição

public EventBufferEvent::getDnsErrorString(): string

Returns string describing the last failed DNS lookup attempt made by EventBufferEvent::connectHost() , or an empty string, if there is no DNS error detected.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string describing DNS lookup error, or an empty string for no error.

Veja Também

  • EventBufferEvent::connectHost() - Connects to a hostname with optionally asyncronous DNS resolving


Returns bitmask of events currently enabled on the buffer event

  • « EventBufferEvent::getDnsErrorString
  • EventBufferEvent::getInput »
  • PHP Manual
  • EventBufferEvent
  • Returns bitmask of events currently enabled on the buffer event

EventBufferEvent::getEnabled

(PECL event >= 1.2.6-beta)

EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event

Descrição

public EventBufferEvent::getEnabled(): int

Returns bitmask of events currently enabled on the buffer event

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns integer representing a bitmask of events currently enabled on the buffer event

Veja Também

  • EventBufferEvent::enable() - Enable events read, write, or both on a buffer event
  • EventBufferEvent::disable() - Disable events read, write, or both on a buffer event


Returns underlying input buffer associated with current buffer event

  • « EventBufferEvent::getEnabled
  • EventBufferEvent::getOutput »
  • PHP Manual
  • EventBufferEvent
  • Returns underlying input buffer associated with current buffer event

EventBufferEvent::getInput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event

Descrição

public EventBufferEvent::getInput(): EventBuffer

Returns underlying input buffer associated with current buffer event. An input buffer is a storage for data to read.

Note, there is also input property of EventBufferEvent class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns instance of EventBuffer input buffer associated with current buffer event.

Exemplos

Exemplo #1 Buffer event's read callback

<?php
function readcb($bev, $base) {
$input = $bev->input; //$bev->getInput();

while (($n = $input->remove($buf, 1024)) > 0) {
echo $buf;
}
}
?>

Veja Também

  • EventBufferEvent::getOutput() - Returns underlying output buffer associated with current buffer event


Returns underlying output buffer associated with current buffer event

  • « EventBufferEvent::getInput
  • EventBufferEvent::read »
  • PHP Manual
  • EventBufferEvent
  • Returns underlying output buffer associated with current buffer event

EventBufferEvent::getOutput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event

Descrição

public EventBufferEvent::getOutput(): EventBuffer

Returns underlying output buffer associated with current buffer event. An output buffer is a storage for data to be written.

Note, there is also output property of EventBufferEvent class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns instance of EventBuffer output buffer associated with current buffer event.

Exemplos

Exemplo #1 EventBufferEvent::getOutput() example

<?php
$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // Use async DNS resolving
if (!$dns_base) {
exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
"readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
exit("Failed creating bufferevent socket\n");
}

$bev->enable(Event::READ | Event::WRITE);

$output = $bev->getOutput();
if (!$output->add(
"GET {$argv[2]} HTTP/1.0\r\n".
"Host: {$argv[1]}\r\n".
"Connection: Close\r\n\r\n"
)) {
exit("Failed adding request to output buffer\n");
}

/* ... */
?>

Veja Também

  • EventBufferEvent::getInput() - Returns underlying input buffer associated with current buffer event


Read buffer's data

  • « EventBufferEvent::getOutput
  • EventBufferEvent::readBuffer »
  • PHP Manual
  • EventBufferEvent
  • Read buffer's data

EventBufferEvent::read

(PECL event >= 1.2.6-beta)

EventBufferEvent::read — Read buffer's data

Descrição

public EventBufferEvent::read( int $size ): string

Removes up to size bytes from the input buffer. Returns a string of data read from the input buffer.

Parâmetros

size

Maximum number of bytes to read

Valor Retornado

Returns string of data read from the input buffer.

Veja Também

  • EventBufferEvent::readBuffer() - Drains the entire contents of the input buffer and places them into buf


Drains the entire contents of the input buffer and places them into buf

  • « EventBufferEvent::read
  • EventBufferEvent::setCallbacks »
  • PHP Manual
  • EventBufferEvent
  • Drains the entire contents of the input buffer and places them into buf

EventBufferEvent::readBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf

Descrição

public EventBufferEvent::readBuffer( EventBuffer $buf ): bool

Drains the entire contents of the input buffer and places them into buf .

Parâmetros

buf

Target buffer

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBufferEvent::read() - Read buffer's data


Assigns read, write and event(status) callbacks

  • « EventBufferEvent::readBuffer
  • EventBufferEvent::setPriority »
  • PHP Manual
  • EventBufferEvent
  • Assigns read, write and event(status) callbacks

EventBufferEvent::setCallbacks

(PECL event >= 1.2.6-beta)

EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks

Descrição

public EventBufferEvent::setCallbacks(
callable $readcb ,
callable $writecb ,
callable $eventcb ,
mixed $arg = ?
): void

Assigns read, write and event(status) callbacks.

Parâmetros

readcb

Read event callback. See About buffer event callbacks .

writecb

Write event callback. See About buffer event callbacks .

eventcb

Status-change event callback. See About buffer event callbacks .

arg

A variable that will be passed to all the callbacks.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventBufferEvent::__construct() - Constructs EventBufferEvent object


Assign a priority to a bufferevent

  • « EventBufferEvent::setCallbacks
  • EventBufferEvent::setTimeouts »
  • PHP Manual
  • EventBufferEvent
  • Assign a priority to a bufferevent

EventBufferEvent::setPriority

(PECL event >= 1.2.6-beta)

EventBufferEvent::setPriority — Assign a priority to a bufferevent

Descrição

public EventBufferEvent::setPriority( int $priority ): bool

Assign a priority to a bufferevent

Aviso

Only supported for socket buffer events

Parâmetros

priority

Priority value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Set the read and write timeout for a buffer event

  • « EventBufferEvent::setPriority
  • EventBufferEvent::setWatermark »
  • PHP Manual
  • EventBufferEvent
  • Set the read and write timeout for a buffer event

EventBufferEvent::setTimeouts

(PECL event >= 1.2.6-beta)

EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event

Descrição

public EventBufferEvent::setTimeouts( float $timeout_read , float $timeout_write ): bool

Set the read and write timeout for a buffer event

Parâmetros

timeout_read

Read timeout

timeout_write

Write timeout

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Adjusts read and/or write watermarks

  • « EventBufferEvent::setTimeouts
  • EventBufferEvent::sslError »
  • PHP Manual
  • EventBufferEvent
  • Adjusts read and/or write watermarks

EventBufferEvent::setWatermark

(PECL event >= 1.2.6-beta)

EventBufferEvent::setWatermark — Adjusts read and/or write watermarks

Descrição

public EventBufferEvent::setWatermark( int $events , int $lowmark , int $highmark ): void

Adjusts the read watermarks, the write watermarks , or both, of a single buffer event.

A buffer event watermark is an edge, a value specifying number of bytes to be read or written before callback is invoked. By default every read/write event triggers a callback invokation. See » Fast portable non-blocking network programming with Libevent: Callbacks and watermarks

Parâmetros

events

Bitmask of Event::READ , Event::WRITE , or both.

lowmark

Minimum watermark value.

highmark

Maximum watermark value. 0 means "unlimited".

Valor Retornado

Nenhum valor é retornado.


Returns most recent OpenSSL error reported on the buffer event

  • « EventBufferEvent::setWatermark
  • EventBufferEvent::sslFilter »
  • PHP Manual
  • EventBufferEvent
  • Returns most recent OpenSSL error reported on the buffer event

EventBufferEvent::sslError

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslError — Returns most recent OpenSSL error reported on the buffer event

Descrição

public EventBufferEvent::sslError(): string

Returns most recent OpenSSL error reported on the buffer event.

Nota:

This function is available only if Event is compiled with OpenSSL support.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns OpenSSL error string reported on the buffer event, or false, if there is no more error to return.

Exemplos

Exemplo #1 EventBufferEvent::sslError() example

<?php
// This callback is invoked when some even occurs on the event listener,
// e.g. connection closed, or an error occurred
function ssl_event_cb($bev, $events, $ctx) {
if ($events & EventBufferEvent::ERROR) {
// Fetch errors from the SSL error stack
while ($err = $bev->sslError()) {
fprintf(STDERR, "Bufferevent error %s.\n", $err);
}
}

if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
$bev->free();
}
}
?>

Veja Também

  • EventBufferEvent::sslRenegotiate() - Tells a bufferevent to begin SSL renegotiation


Create a new SSL buffer event to send its data over another buffer event

  • « EventBufferEvent::sslError
  • EventBufferEvent::sslGetCipherInfo »
  • PHP Manual
  • EventBufferEvent
  • Create a new SSL buffer event to send its data over another buffer event

EventBufferEvent::sslFilter

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event

Descrição

public static EventBufferEvent::sslFilter(
EventBase $base ,
EventBufferEvent $underlying ,
EventSslContext $ctx ,
int $state ,
int $options = 0
): EventBufferEvent

Create a new SSL buffer event to send its data over another buffer event

Nota:

This function is available only if Event is compiled with OpenSSL support.

Parâmetros

base

Associated event base.

underlying

A socket buffer event to use for this SSL.

ctx

Object of EventSslContext class.

state

The current state of SSL connection: EventBufferEvent::SSL_OPEN , EventBufferEvent::SSL_ACCEPTING or EventBufferEvent::SSL_CONNECTING .

options

One or more buffer event options.

Valor Retornado

Returns a new SSL EventBufferEvent object.

Exemplos

Exemplo #1 Simple SMTP server

<?php
/*
* Author: Andrew Rose <hello at andrewrose dot co dot uk>
*
* Usage:
* 1) Prepare cert.pem certificate and privkey.pem private key files.
* 2) Launch the server script
* 3) Open TLS connection, e.g.:
* $ openssl s_client -connect localhost:25 -starttls smtp -crlf
* 4) Start testing the commands listed in `cmd` method below.
*/

class Handler {
public $domainName = FALSE;
public $connections = [];
public $buffers = [];
public $maxRead = 256000;

public function __construct() {
$this->ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, [
EventSslContext::OPT_LOCAL_CERT => 'cert.pem',
EventSslContext::OPT_LOCAL_PK => 'privkey.pem',
//EventSslContext::OPT_PASSPHRASE => '',
EventSslContext::OPT_VERIFY_PEER => false, // change to true with authentic cert
EventSslContext::OPT_ALLOW_SELF_SIGNED => true // change to false with authentic cert
]);

$this->base = new EventBase();
if (!$this->base) {
exit("Couldn't open event base\n");
}

if (!$this->listener = new EventListener($this->base,
[$this, 'ev_accept'],
$this->ctx,
EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
-1,
'0.0.0.0:25'))
{
exit("Couldn't create listener\n");
}

$this->listener->setErrorCallback([$this, 'ev_error']);
$this->base->dispatch();
}

public function ev_accept($listener, $fd, $address, $ctx) {
static $id = 0;
$id += 1;

$this->connections[$id]['clientData'] = '';
$this->connections[$id]['cnx'] = new EventBufferEvent($this->base, $fd,
EventBufferEvent::OPT_CLOSE_ON_FREE);

if (!$this->connections[$id]['cnx']) {
echo "Failed creating buffer\n";
$this->base->exit(NULL);
exit(1);
}

$this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL,
[$this, 'ev_error'], $id);
$this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);

$this->ev_write($id, '220 '.$this->domainName." wazzzap?\r\n");
}

function ev_error($listener, $ctx) {
$errno = EventUtil::getLastSocketErrno();

fprintf(STDERR, "Got an error %d (%s) on the listener. Shutting down.\n",
$errno, EventUtil::getLastSocketError());

if ($errno != 0) {
$this->base->exit(NULL);
exit();
}
}

public function ev_close($id) {
$this->connections[$id]['cnx']->disable(Event::READ | Event::WRITE);
unset($this->connections[$id]);
}

protected function ev_write($id, $string) {
echo 'S('.$id.'): '.$string;
$this->connections[$id]['cnx']->write($string);
}

public function ev_read($buffer, $id) {
while($buffer->input->length > 0) {
$this->connections[$id]['clientData'] .= $buffer->input->read($this->maxRead);
$clientDataLen = strlen($this->connections[$id]['clientData']);

if($this->connections[$id]['clientData'][$clientDataLen-1] == "\n"
&& $this->connections[$id]['clientData'][$clientDataLen-2] == "\r")
{
// remove the trailing \r\n
$line = substr($this->connections[$id]['clientData'], 0,
strlen($this->connections[$id]['clientData']) - 2);

$this->connections[$id]['clientData'] = '';
$this->cmd($buffer, $id, $line);
}
}
}

protected function cmd($buffer, $id, $line) {
switch ($line) {
case strncmp('EHLO ', $line, 4):
$this->ev_write($id, "250-STARTTLS\r\n");
$this->ev_write($id, "250 OK ehlo\r\n");
break;

case strncmp('HELO ', $line, 4):
$this->ev_write($id, "250-STARTTLS\r\n");
$this->ev_write($id, "250 OK helo\r\n");
break;

case strncmp('QUIT', $line, 3):
$this->ev_write($id, "250 OK quit\r\n");
$this->ev_close($id);
break;

case strncmp('STARTTLS', $line, 3):
$this->ev_write($id, "220 Ready to start TLS\r\n");
$this->connections[$id]['cnx'] = EventBufferEvent::sslFilter($this->base,
$this->connections[$id]['cnx'], $this->ctx,
EventBufferEvent::SSL_ACCEPTING,
EventBufferEvent::OPT_CLOSE_ON_FREE);
$this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL, [$this, 'ev_error'], $id);
$this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);
break;

default:
echo 'unknown command: '.$line."\n";
break;
}
}
}

new Handler();

Veja Também

  • EventBufferEvent::sslSocket() - Creates a new SSL buffer event to send its data over an SSL on a socket


Returns a textual description of the cipher

  • « EventBufferEvent::sslFilter
  • EventBufferEvent::sslGetCipherName »
  • PHP Manual
  • EventBufferEvent
  • Returns a textual description of the cipher

EventBufferEvent::sslGetCipherInfo

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherInfo — Returns a textual description of the cipher

Descrição

public EventBufferEvent::sslGetCipherInfo(): string

Retrieves description of the current cipher by means of the SSL_CIPHER_description SSL API function (see SSL_CIPHER_get_name(3) man page).

Nota:

This function is available only if Event is compiled with OpenSSL support.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a textual description of the cipher on success, or false on error.


Returns the current cipher name of the SSL connection

  • « EventBufferEvent::sslGetCipherInfo
  • EventBufferEvent::sslGetCipherVersion »
  • PHP Manual
  • EventBufferEvent
  • Returns the current cipher name of the SSL connection

EventBufferEvent::sslGetCipherName

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherName — Returns the current cipher name of the SSL connection

Descrição

public EventBufferEvent::sslGetCipherName(): string

Retrieves name of cipher used by current SSL connection.

Nota:

This function is available only if Event is compiled with OpenSSL support.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current cipher name of the SSL connection, or false on error.


Returns version of cipher used by current SSL connection

  • « EventBufferEvent::sslGetCipherName
  • EventBufferEvent::sslGetProtocol »
  • PHP Manual
  • EventBufferEvent
  • Returns version of cipher used by current SSL connection

EventBufferEvent::sslGetCipherVersion

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherVersion — Returns version of cipher used by current SSL connection

Descrição

public EventBufferEvent::sslGetCipherVersion(): string

Retrieves version of cipher used by current SSL connection.

Nota:

This function is available only if Event is compiled with OpenSSL support.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current cipher version of the SSL connection, or false on error.


Returns the name of the protocol used for current SSL connection

  • « EventBufferEvent::sslGetCipherVersion
  • EventBufferEvent::sslRenegotiate »
  • PHP Manual
  • EventBufferEvent
  • Returns the name of the protocol used for current SSL connection

EventBufferEvent::sslGetProtocol

(PECL event >= 1.10.0)

EventBufferEvent::sslGetProtocol — Returns the name of the protocol used for current SSL connection

Descrição

public EventBufferEvent::sslGetProtocol(): string

Returns the name of the protocol used for current SSL connection.

Nota:

This function is available only if Event is compiled with OpenSSL support.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the name of the protocol used for current SSL connection.


Tells a bufferevent to begin SSL renegotiation

  • « EventBufferEvent::sslGetProtocol
  • EventBufferEvent::sslSocket »
  • PHP Manual
  • EventBufferEvent
  • Tells a bufferevent to begin SSL renegotiation

EventBufferEvent::sslRenegotiate

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslRenegotiate — Tells a bufferevent to begin SSL renegotiation

Descrição

public EventBufferEvent::sslRenegotiate(): void

Tells a bufferevent to begin SSL renegotiation.

Aviso

Calling this function tells the SSL to renegotiate, and the buffer event to invoke appropriate callbacks. This is an advanced topic; this should be generally avoided unless one really knows what he/she does, especially since many SSL versions have had known security issues related to renegotiation.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Creates a new SSL buffer event to send its data over an SSL on a socket

  • « EventBufferEvent::sslRenegotiate
  • EventBufferEvent::write »
  • PHP Manual
  • EventBufferEvent
  • Creates a new SSL buffer event to send its data over an SSL on a socket

EventBufferEvent::sslSocket

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslSocket — Creates a new SSL buffer event to send its data over an SSL on a socket

Descrição

public static EventBufferEvent::sslSocket(
EventBase $base ,
mixed $socket ,
EventSslContext $ctx ,
int $state ,
int $options = ?
): EventBufferEvent

Creates a new SSL buffer event to send its data over an SSL on a socket.

Parâmetros

base

Associated event base.

socket

Socket to use for this SSL. Can be stream or socket resource, numeric file descriptor, or null. If socket is null, it is assumed that the file descriptor for the socket will be assigned later, for instance, by means of EventBufferEvent::connectHost() method.

ctx

Object of EventSslContext class.

state

The current state of SSL connection: EventBufferEvent::SSL_OPEN , EventBufferEvent::SSL_ACCEPTING or EventBufferEvent::SSL_CONNECTING .

options

The buffer event options.

Valor Retornado

Returns EventBufferEvent object.

Veja Também

  • EventBufferEvent::sslFilter() - Create a new SSL buffer event to send its data over another buffer event


Adds data to a buffer event's output buffer

  • « EventBufferEvent::sslSocket
  • EventBufferEvent::writeBuffer »
  • PHP Manual
  • EventBufferEvent
  • Adds data to a buffer event's output buffer

EventBufferEvent::write

(PECL event >= 1.2.6-beta)

EventBufferEvent::write — Adds data to a buffer event's output buffer

Descrição

public EventBufferEvent::write( string $data ): bool

Adds data to a buffer event's output buffer

Parâmetros

data

Data to be added to the underlying buffer.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBufferEvent::writeBuffer() - Adds contents of the entire buffer to a buffer event's output buffer


Adds contents of the entire buffer to a buffer event's output buffer

  • « EventBufferEvent::write
  • About buffer event callbacks »
  • PHP Manual
  • EventBufferEvent
  • Adds contents of the entire buffer to a buffer event's output buffer

EventBufferEvent::writeBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::writeBuffer — Adds contents of the entire buffer to a buffer event's output buffer

Descrição

public EventBufferEvent::writeBuffer( EventBuffer $buf ): bool

Adds contents of the entire buffer to a buffer event's output buffer

Parâmetros

buf

Source EventBuffer object.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBufferEvent::write() - Adds data to a buffer event's output buffer


About buffer event callbacks

An object of EventBufferEvent class represents a buffer event . The asynchronous nature of I/O performed by Libevent implies that a socket(or other kind of file descriptor) is not always available. Event invokes corresponding callbacks when the resource becomes available for reading or writing, or when some event occurs(e.g. error, "end of line" etc.).

Read and write callbacks should match the following prototype:

callback( EventBufferEvent $bev = null , mixed $arg = null ): void

bev

Associated EventBufferEvent object.

arg

Custom variable attached to all callbacks via EventBufferEvent::__construct() , or EventBufferEvent::setCallbacks() .

Event callback should match the following prototype:

callback( EventBufferEvent $bev = null , int $events = 0 , mixed $arg = null ): void

bev

Associated EventBufferEvent object.

events

Bit mask of events: EventBufferEvent::READING , EventBufferEvent::WRITING , EventBufferEvent::EOL , EventBufferEvent::ERROR and EventBufferEvent::TIMEOUT . See EventBufferEvent constants

arg

Custom variable attached to all callbacks via EventBufferEvent::__construct() , or EventBufferEvent::setCallbacks() .


The EventConfig class

(PECL event >= 1.2.6-beta)

Introdução

Represents configuration structure which could be used in construction of the EventBase .

Resumo da classe

final class EventConfig {
/* Constantes */
const int FEATURE_ET = 1;
const int FEATURE_O1 = 2;
const int FEATURE_FDS = 4;
/* Métodos */
public avoidMethod( string $method ): bool
public __construct()
public requireFeatures( int $feature ): bool
public setFlags( int $flags ): bool
public setMaxDispatchInterval( int $max_interval , int $max_callbacks , int $min_priority ): void
}

Constantes pré-definidas

EventConfig::FEATURE_ET

Requires a backend method that supports edge-triggered I/O.

EventConfig::FEATURE_O1

Requires a backend method where adding or deleting a single event, or having a single event become active, is an O(1) operation.

EventConfig::FEATURE_FDS

Requires a backend method that can support arbitrary file descriptor types, and not just sockets.

Índice

  • EventConfig::avoidMethod — Tells libevent to avoid specific event method
  • EventConfig::__construct — Constructs EventConfig object
  • EventConfig::requireFeatures — Enters a required event method feature that the application demands
  • EventConfig::setFlags — Sets one or more flags to configure the eventual EventBase will be initialized
  • EventConfig::setMaxDispatchInterval — Prevents priority inversion


Tells libevent to avoid specific event method

  • « EventConfig
  • EventConfig::__construct »
  • PHP Manual
  • EventConfig
  • Tells libevent to avoid specific event method

EventConfig::avoidMethod

(PECL event >= 1.2.6-beta)

EventConfig::avoidMethod — Tells libevent to avoid specific event method

Descrição

public EventConfig::avoidMethod( string $method ): bool

Tells libevent to avoid specific event method(backend). See » Creating an event base .

Parâmetros

method

The backend method to avoid. See EventConfig constants .

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 EventConfig::avoidMethod() example

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
echo "'select' method avoided\n";
}
?>

Veja Também

  • EventBase::__construct() - Constructs EventBase object


Constructs EventConfig object

  • « EventConfig::avoidMethod
  • EventConfig::requireFeatures »
  • PHP Manual
  • EventConfig
  • Constructs EventConfig object

EventConfig::__construct

(PECL event >= 1.2.6-beta)

EventConfig::__construct — Constructs EventConfig object

Descrição

public EventConfig::__construct()

Constructs EventConfig object which could be passed to EventBase::__construct() constructor.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 EventConfig::__construct() example

<?php
// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
echo "'select' method avoided\n";
}

// Create event_base associated with the config
$base = new EventBase($cfg);

/* Now $base is configured to avoid select backend(method) */
?>

Veja Também

  • EventBase::__construct() - Constructs EventBase object


Enters a required event method feature that the application demands

  • « EventConfig::__construct
  • EventConfig::setFlags »
  • PHP Manual
  • EventConfig
  • Enters a required event method feature that the application demands

EventConfig::requireFeatures

(PECL event >= 1.2.6-beta)

EventConfig::requireFeatures — Enters a required event method feature that the application demands

Descrição

public EventConfig::requireFeatures( int $feature ): bool

Enters a required event method feature that the application demands

Parâmetros

feature

Bitmask of required features. See EventConfig::FEATURE_* constants

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 EventConfig::requireFeatures() example

<?php
$cfg = new EventConfig();

// Create event_base associated with the config
$base = new EventBase($cfg);

// Require FDS feature
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
echo "FDS feature is now required\n";

$base = new EventBase($cfg);
($base->getFeatures() & EventConfig::FEATURE_FDS)
and print "FDS - arbitrary file descriptor types, and not just sockets\n";
}
?>

O exemplo acima produzirá algo semelhante a:

FDS feature is now required
FDS - arbitrary file descriptor types, and not just sockets

Veja Também

  • EventBase::getFeatures() - Returns bitmask of features supported


Sets one or more flags to configure the eventual EventBase will be initialized

  • « EventConfig::requireFeatures
  • EventConfig::setMaxDispatchInterval »
  • PHP Manual
  • EventConfig
  • Sets one or more flags to configure the eventual EventBase will be initialized

EventConfig::setFlags

(PECL event >= 2.0.2-alpha)

EventConfig::setFlags — Sets one or more flags to configure the eventual EventBase will be initialized

Descrição

public EventConfig::setFlags( int $flags ): bool

Sets one or more flags to configure what parts of the eventual EventBase will be initialized, and how they'll work.

Parâmetros

flags

One of EventBase::LOOP_* constants. See EventBase constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventBase::getFeatures() - Returns bitmask of features supported


Prevents priority inversion

  • « EventConfig::setFlags
  • EventDnsBase »
  • PHP Manual
  • EventConfig
  • Prevents priority inversion

EventConfig::setMaxDispatchInterval

(PECL event >= 2.1.0-alpha)

EventConfig::setMaxDispatchInterval — Prevents priority inversion

Descrição

public EventConfig::setMaxDispatchInterval( int $max_interval , int $max_callbacks , int $min_priority ): void

Prevents priority inversion by limiting how many low-priority event callbacks can be invoked before checking for more high-priority events.

Nota:

Available since libevent 2.1.0-alpha .

Parâmetros

max_interval

An interval after which Libevent should stop running callbacks and check for more events, or 0 , if there should be no such interval.

max_callbacks

A number of callbacks after which Libevent should stop running callbacks and check for more events, or -1 , if there should be no such limit.

min_priority

A priority below which max_interval and max_callbacks should not be enforced. If this is set to 0 , they are enforced for events of every priority; if it's set to 1 , they're enforced for events of priority 1 and above, and so on.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


The EventDnsBase class

(PECL event >= 1.2.6-beta)

Introdução

Represents Libevent's DNS base structure. Used to resolve DNS asyncronously, parse configuration files like resolv.conf etc.

Resumo da classe

final class EventDnsBase {
/* Constantes */
const int OPTION_SEARCH = 1;
const int OPTION_NAMESERVERS = 2;
const int OPTION_MISC = 4;
const int OPTION_HOSTSFILE = 8;
const int OPTIONS_ALL = 15;
const int DISABLE_WHEN_INACTIVE = 32768;
const int INITIALIZE_NAMESERVERS = 1;
const int NAMESERVERS_NO_DEFAULT = 65536;
/* Métodos */
public __construct( EventBase $base , int|bool $initialize )
public addNameserverIp( string $ip ): bool
public addSearch( string $domain ): void
public clearSearch(): void
public countNameservers(): int
public loadHosts( string $hosts ): bool
public parseResolvConf( int $flags , string $filename ): bool
public setOption( string $option , string $value ): bool
public setSearchNdots( int $ndots ): bool
}

Constantes pré-definidas

EventDnsBase::OPTION_SEARCH

Tells to read the domain and search fields from the resolv.conf file and the ndots option, and use them to decide which domains(if any) to search for hostnames that aren’t fully-qualified.

EventDnsBase::OPTION_NAMESERVERS

Tells to learn the nameservers from the resolv.conf file.

EventDnsBase::OPTION_MISC

EventDnsBase::OPTION_HOSTSFILE

Tells to read a list of hosts from /etc/hosts as part of loading the resolv.conf file.

EventDnsBase::OPTIONS_ALL

Tells to learn as much as it can from the resolv.conf file.

EventDnsBase::DISABLE_WHEN_INACTIVE

Do not prevent the libevent event loop from exiting when we have no active DNS requests.

EventDnsBase::INITIALIZE_NAMESERVERS

Process the resolv.conf.

EventDnsBase::NAMESERVERS_NO_DEFAULT

Do not add default nameserver if there are no nameservers in the resolv.conf.

Índice

  • EventDnsBase::addNameserverIp — Adds a nameserver to the DNS base
  • EventDnsBase::addSearch — Adds a domain to the list of search domains
  • EventDnsBase::clearSearch — Removes all current search suffixes
  • EventDnsBase::__construct — Constructs EventDnsBase object
  • EventDnsBase::countNameservers — Gets the number of configured nameservers
  • EventDnsBase::loadHosts — Loads a hosts file (in the same format as /etc/hosts) from hosts file
  • EventDnsBase::parseResolvConf — Scans the resolv.conf-formatted file
  • EventDnsBase::setOption — Set the value of a configuration option
  • EventDnsBase::setSearchNdots — Set the 'ndots' parameter for searches


Adds a nameserver to the DNS base

  • « EventDnsBase
  • EventDnsBase::addSearch »
  • PHP Manual
  • EventDnsBase
  • Adds a nameserver to the DNS base

EventDnsBase::addNameserverIp

(PECL event >= 1.2.6-beta)

EventDnsBase::addNameserverIp — Adds a nameserver to the DNS base

Descrição

public EventDnsBase::addNameserverIp( string $ip ): bool

Adds a nameserver to the evdns_base.

Parâmetros

ip

The nameserver string, either as an IPv4 address, an IPv6 address, an IPv4 address with a port ( IPv4:Port ), or an IPv6 address with a port ( [IPv6]:Port ).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Adds a domain to the list of search domains

  • « EventDnsBase::addNameserverIp
  • EventDnsBase::clearSearch »
  • PHP Manual
  • EventDnsBase
  • Adds a domain to the list of search domains

EventDnsBase::addSearch

(PECL event >= 1.2.6-beta)

EventDnsBase::addSearch — Adds a domain to the list of search domains

Descrição

public EventDnsBase::addSearch( string $domain ): void

Adds a domain to the list of search domains

Parâmetros

domain

Search domain.

Valor Retornado

Nenhum valor é retornado.


Removes all current search suffixes

  • « EventDnsBase::addSearch
  • EventDnsBase::__construct »
  • PHP Manual
  • EventDnsBase
  • Removes all current search suffixes

EventDnsBase::clearSearch

(PECL event >= 1.2.6-beta)

EventDnsBase::clearSearch — Removes all current search suffixes

Descrição

public EventDnsBase::clearSearch(): void

Removes all current search suffixes from the DNS base; the EventDnsBase::addSearch() function adds a suffix.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventDnsBase::addSearch() - Adds a domain to the list of search domains


Constructs EventDnsBase object

  • « EventDnsBase::clearSearch
  • EventDnsBase::countNameservers »
  • PHP Manual
  • EventDnsBase
  • Constructs EventDnsBase object

EventDnsBase::__construct

(PECL event >= 1.2.6-beta)

EventDnsBase::__construct — Constructs EventDnsBase object

Descrição

public EventDnsBase::__construct( EventBase $base , int|bool $initialize )

Constructs EventDnsBase object.

Parâmetros

base

Event base.

initialize

If initialize is true, it attempts to use the underlying operating system defaults to configure the DNS base senibly. If it is false, the DNS base is left unconfigured, with no nameservers or options set. In the latter case the DNS base should be configured manually, e.g. with EventDnsBase::parseResolvConf().

If initialize is an integer, it must be one of the following flags:

Flag | Descrição
EventDnsBase::DISABLE_WHEN_INACTIVE | Do not prevent the libevent event loop from exiting when we have no active DNS requests.
EventDnsBase::INITIALIZE_NAMESERVERS | Process the resolv.conf.
EventDnsBase::NAMESERVERS_NO_DEFAULT | Do not add default nameserver if there are no nameservers in the resolv.conf.

Erros/Exceções

If initialize has a type other than int|bool, a TypeError is thrown.

If the value of initialize is invalid, a EventException is thrown.

Registro de Alterações

Versão | Descrição
PECL event 3.1.3 | If initialize has a type other than int|bool, a TypeError is thrown.
PECL event 3.1.0RC1 | The type of the initialize parameter has been changed from bool to mixed. The value can be either bool (preserving the previous meaning) or one of the following constants: EventDnsBase::DISABLE_WHEN_INACTIVE, EventDnsBase::INITIALIZE_NAMESERVERS, or EventDnsBase::NAMESERVERS_NO_DEFAULT.


Gets the number of configured nameservers

  • « EventDnsBase::__construct
  • EventDnsBase::loadHosts »
  • PHP Manual
  • EventDnsBase
  • Gets the number of configured nameservers

EventDnsBase::countNameservers

(PECL event >= 1.2.6-beta)

EventDnsBase::countNameservers — Gets the number of configured nameservers

Descrição

public EventDnsBase::countNameservers(): int

Gets the number of configured nameservers

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of configured nameservers(not necessarily the number of running nameservers). This is useful for double-checking whether our calls to the various nameserver configuration functions have been successful.


Loads a hosts file (in the same format as /etc/hosts) from hosts file

  • « EventDnsBase::countNameservers
  • EventDnsBase::parseResolvConf »
  • PHP Manual
  • EventDnsBase
  • Loads a hosts file (in the same format as /etc/hosts) from hosts file

EventDnsBase::loadHosts

(PECL event >= 1.2.6-beta)

EventDnsBase::loadHosts — Loads a hosts file (in the same format as /etc/hosts) from hosts file

Descrição

public EventDnsBase::loadHosts( string $hosts ): bool

Loads a hosts file (in the same format as /etc/hosts ) from hosts file.

Parâmetros

hosts

Path to the hosts' file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Scans the resolv.conf-formatted file

  • « EventDnsBase::loadHosts
  • EventDnsBase::setOption »
  • PHP Manual
  • EventDnsBase
  • Scans the resolv.conf-formatted file

EventDnsBase::parseResolvConf

(PECL event >= 1.2.6-beta)

EventDnsBase::parseResolvConf — Scans the resolv.conf-formatted file

Descrição

public EventDnsBase::parseResolvConf( int $flags , string $filename ): bool

Scans the resolv.conf-formatted file stored in filename, and read in all the options from it that are listed in flags

Parâmetros

flags

Determines what information is parsed from the resolv.conf file. See the man page for resolv.conf for the format of this file.

The following directives are not parsed from the file: sortlist, rotate, no-check-names, inet6, debug .

If this function encounters an error, the possible return values are:

  • 1 = failed to open file
  • 2 = failed to stat file
  • 3 = file too large
  • 4 = out of memory
  • 5 = short read from file
  • 6 = no nameservers listed in the file

filename

Path to resolv.conf file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Set the value of a configuration option

  • « EventDnsBase::parseResolvConf
  • EventDnsBase::setSearchNdots »
  • PHP Manual
  • EventDnsBase
  • Set the value of a configuration option

EventDnsBase::setOption

(PECL event >= 1.2.6-beta)

EventDnsBase::setOption — Set the value of a configuration option

Descrição

public EventDnsBase::setOption( string $option , string $value ): bool

Set the value of a configuration option.

Parâmetros

option

The currently available configuration options are: "ndots" , "timeout" , "max-timeouts" , "max-inflight" , and "attempts" .

value

Option value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Set the 'ndots' parameter for searches

  • « EventDnsBase::setOption
  • EventHttp »
  • PHP Manual
  • EventDnsBase
  • Set the 'ndots' parameter for searches

EventDnsBase::setSearchNdots

(PECL event >= 1.2.6-beta)

EventDnsBase::setSearchNdots — Set the 'ndots' parameter for searches

Descrição

public EventDnsBase::setSearchNdots( int $ndots ): bool

Set the 'ndots' parameter for searches. Sets the number of dots which, when found in a name, causes the first query to be without any search domain.

Parâmetros

ndots

The number of dots.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


The EventHttp class

(PECL event >= 1.4.0-beta)

Introdução

Represents HTTP server.

Resumo da classe

final class EventHttp {
/* Métodos */
public accept( mixed $socket ): bool
public addServerAlias( string $alias ): bool
public bind( string $address , int $port ): void
public __construct( EventBase $base , EventSslContext $ctx = null )
public removeServerAlias( string $alias ): bool
public setAllowedMethods( int $methods ): void
public setCallback( string $path , string $cb , string $arg = ?): void
public setDefaultCallback( string $cb , string $arg = ?): void
public setMaxBodySize( int $value ): void
public setMaxHeadersSize( int $value ): void
public setTimeout( int $value ): void
}

Índice

  • EventHttp::accept — Makes an HTTP server accept connections on the specified socket stream or resource
  • EventHttp::addServerAlias — Adds a server alias to the HTTP server object
  • EventHttp::bind — Binds an HTTP server on the specified address and port
  • EventHttp::__construct — Constructs EventHttp object (the HTTP server)
  • EventHttp::removeServerAlias — Removes server alias
  • EventHttp::setAllowedMethods — Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks
  • EventHttp::setCallback — Sets a callback for specified URI
  • EventHttp::setDefaultCallback — Sets default callback to handle requests that are not caught by specific callbacks
  • EventHttp::setMaxBodySize — Sets maximum request body size
  • EventHttp::setMaxHeadersSize — Sets maximum HTTP header size
  • EventHttp::setTimeout — Sets the timeout for an HTTP request


Makes an HTTP server accept connections on the specified socket stream or resource

  • « EventHttp
  • EventHttp::addServerAlias »
  • PHP Manual
  • EventHttp
  • Makes an HTTP server accept connections on the specified socket stream or resource

EventHttp::accept

(PECL event >= 1.2.6-beta)

EventHttp::accept — Makes an HTTP server accept connections on the specified socket stream or resource

Descrição

public EventHttp::accept( mixed $socket ): bool

Makes an HTTP server accept connections on the specified socket stream or resource. The socket should be ready to accept connections.

Can be called multiple times to accept connections on different sockets.

Nota:

To bind a socket, listen , and accept connections on the socket in s single call use EventHttp::bind() . EventHttp::accept() is needed only if one already has a socket ready to accept connections.

Parâmetros

socket

Socket resource, stream or numeric file descriptor representing a socket ready to accept connections.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 EventHttp::accept() example

<?php
$base = new EventBase();
$http = new EventHttp($base);

$addresses = array (
8091 => "127.0.0.1",
8092 => "127.0.0.2",
);
$i = 0;

$socket = array();

foreach ($addresses as $port => $ip) {
echo $ip, " ", $port, PHP_EOL;
$socket[$i] = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!socket_bind($socket[$i], $ip, $port)) {
exit("socket_bind failed\n");
}
socket_listen($socket[$i], 0);
socket_set_nonblock($socket[$i]);

if (!$http->accept($socket[$i])) {
echo "Accept failed\n";
exit(1);
}

++$i;
}

$http->setCallback("/some-page", function() {
echo "(some-page)\n";
echo "URI: ", $req->getUri(), PHP_EOL;
$req->sendReply(200, "OK");
echo "OK\n";
});

$http->setDefaultCallback(function($req) {
echo "URI: ", $req->getUri(), PHP_EOL;
$req->sendReply(200, "OK");
echo "OK\n";
});

$signal = Event::signal($base, SIGINT, function () use ($base) {
echo "Caught SIGINT. Stopping...\n";
$base->stop();
});
$signal->add();

$base->dispatch();
echo "END\n";
// We didn't close sockets, since Libevent already sets
// CLOSE_ON_FREE and CLOSE_ON_EXEC flags on the file
// descriptor associated with the sockets.
?>

O exemplo acima produzirá algo semelhante a:

Client:
$ nc 127.0.0.1 8091
GET /about HTTP/1.0
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Server:
127.0.0.1 8091
127.0.0.2 8092
URI: /about
OK

Veja Também

  • EventHttp::bind() - Binds an HTTP server on the specified address and port


Adds a server alias to the HTTP server object

  • « EventHttp::accept
  • EventHttp::bind »
  • PHP Manual
  • EventHttp
  • Adds a server alias to the HTTP server object

EventHttp::addServerAlias

(PECL event >= 1.4.0-beta)

EventHttp::addServerAlias — Adds a server alias to the HTTP server object

Descrição

public EventHttp::addServerAlias( string $alias ): bool

Adds a server alias to the HTTP server object.

Parâmetros

alias

The alias to add.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 EventHttp::addServerAlias() example

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
exit("bind(1) failed\n");
};

if (!$http->addServerAlias("local.net")) {
exit("Failed to add server alias\n");
}

$http->setCallback("/about", function($req) {
echo "URI: ", $req->getUri(), PHP_EOL;
$req->sendReply(200, "OK");
});
$base->dispatch();
?>

Veja Também

  • EventHttp::removeServerAlias() - Removes server alias


Binds an HTTP server on the specified address and port

  • « EventHttp::addServerAlias
  • EventHttp::__construct »
  • PHP Manual
  • EventHttp
  • Binds an HTTP server on the specified address and port

EventHttp::bind

(PECL event >= 1.2.6-beta)

EventHttp::bind — Binds an HTTP server on the specified address and port

Descrição

public EventHttp::bind( string $address , int $port ): void

Binds an HTTP server on the specified address and port.

Can be called multiple times to bind the same HTTP server to multiple different ports.

Parâmetros

address

A string containing the IP address to listen(2) on.

port

The port number to listen on.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 EventHttp::bind() example

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
exit("bind(1) failed\n");
};
if (!$http->bind("127.0.0.1", 8089)) {
exit("bind(2) failed\n");
};

$http->setCallback("/about", function($req) {
echo "URI: ", $req->getUri(), PHP_EOL;
$req->sendReply(200, "OK");
echo "OK\n";
});

$base->dispatch();
?>

O exemplo acima produzirá algo semelhante a:

Client:

$ nc 127.0.0.1 8088
GET /about HTTP/1.0
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

$ nc 127.0.0.1 8089
GET /unknown HTTP/1.0
Connection: close

HTTP/1.1 404 Not Found
Content-Type: text/html
Date: Wed, 13 Mar 2013 04:14:41 GMT
Content-Length: 149
Connection: close

<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL /unknown was not found on this server.</p></body></html>

Server:
URI: /about
OK

Veja Também

  • EventHttp::accept() - Makes an HTTP server accept connections on the specified socket stream or resource


Constructs EventHttp object (the HTTP server)

  • « EventHttp::bind
  • EventHttp::removeServerAlias »
  • PHP Manual
  • EventHttp
  • Constructs EventHttp object (the HTTP server)

EventHttp::__construct

(PECL event >= 1.2.6-beta)

EventHttp::__construct — Constructs EventHttp object (the HTTP server)

Descrição

public EventHttp::__construct( EventBase $base , EventSslContext $ctx = null )

Constructs the HTTP server object.

Parâmetros

base

Associated event base.

ctx

EventSslContext class object. Turns plain HTTP server into HTTPS server. It means that if ctx is configured correctly, then the underlying buffer events will be based on OpenSSL sockets. Thus, all traffic will pass through the SSL or TLS.

Nota:

This parameter is available only if Event is compiled with OpenSSL support and only with Libevent 2.1.0-alpha and higher.

Registro de Alterações

Versão | Descrição
PECL event 1.9.0 | OpenSSL support (ctx) added.

Exemplos

Exemplo #1 Simple HTTP server

<?php
/*
* Simple HTTP server.
*
* To test it:
* 1) Run it on a port of your choice, e.g.:
* $ php examples/http.php 8010
* 2) In another terminal connect to some address on this port
* and make GET or POST request(others are turned off here), e.g.:
* $ nc -t 127.0.0.1 8010
* POST /about HTTP/1.0
* Content-Type: text/plain
* Content-Length: 4
* Connection: close
* (press Enter)
*
* It will output
* a=12
* HTTP/1.0 200 OK
* Content-Type: text/html; charset=ISO-8859-1
* Connection: close
*
* $ nc -t 127.0.0.1 8010
* GET /dump HTTP/1.0
* Content-Type: text/plain
* Content-Encoding: UTF-8
* Connection: close
* (press Enter)
*
* It will output:
* HTTP/1.0 200 OK
* Content-Type: text/html; charset=ISO-8859-1
* Connection: close
* (press Enter)
*
* $ nc -t 127.0.0.1 8010
* GET /unknown HTTP/1.0
* Connection: close
*
* It will output:
* HTTP/1.0 200 OK
* Content-Type: text/html; charset=ISO-8859-1
* Connection: close
*
* 3) See what the server outputs on the previous terminal window.
*/

function _http_dump($req, $data) {
static $counter = 0;
static $max_requests = 2;

if (++$counter >= $max_requests) {
echo "Counter reached max requests $max_requests. Exiting\n";
exit();
}

echo __METHOD__, " called\n";
echo "request:"; var_dump($req);
echo "data:"; var_dump($data);

echo "\n===== DUMP =====\n";
echo "Command:", $req->getCommand(), PHP_EOL;
echo "URI:", $req->getUri(), PHP_EOL;
echo "Input headers:"; var_dump($req->getInputHeaders());
echo "Output headers:"; var_dump($req->getOutputHeaders());

echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";

echo "\n >> Reading input buffer ...\n";
$buf = $req->getInputBuffer();
while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
echo $s, PHP_EOL;
}
echo "No more data in the buffer\n";
}

function _http_about($req) {
echo __METHOD__, PHP_EOL;
echo "URI: ", $req->getUri(), PHP_EOL;
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
}

function _http_default($req, $data) {
echo __METHOD__, PHP_EOL;
echo "URI: ", $req->getUri(), PHP_EOL;
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
$port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

O exemplo acima produzirá algo semelhante a:

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
(press Enter)

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close


Removes server alias

  • « EventHttp::__construct
  • EventHttp::setAllowedMethods »
  • PHP Manual
  • EventHttp
  • Removes server alias

EventHttp::removeServerAlias

(PECL event >= 1.4.0-beta)

EventHttp::removeServerAlias — Removes server alias

Descrição

public EventHttp::removeServerAlias( string $alias ): bool

Removes server alias added with EventHttp::addServerAlias()

Parâmetros

alias

The alias to remove.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventHttp::addServerAlias() - Adds a server alias to the HTTP server object


Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

  • « EventHttp::removeServerAlias
  • EventHttp::setCallback »
  • PHP Manual
  • EventHttp
  • Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

EventHttp::setAllowedMethods

(PECL event >= 1.4.0-beta)

EventHttp::setAllowedMethods — Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

Descrição

public EventHttp::setAllowedMethods( int $methods ): void

Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

If not supported they will generate a "405 Method not allowed" response.

By default this includes the following methods: GET , POST , HEAD , PUT , DELETE . See EventHttpRequest::CMD_* constants.

Parâmetros

methods

A bit mask of EventHttpRequest::CMD_* constants .

Valor Retornado

Nenhum valor é retornado.


Sets a callback for specified URI

  • « EventHttp::setAllowedMethods
  • EventHttp::setDefaultCallback »
  • PHP Manual
  • EventHttp
  • Sets a callback for specified URI

EventHttp::setCallback

(PECL event >= 1.4.0-beta)

EventHttp::setCallback — Sets a callback for specified URI

Descrição

public EventHttp::setCallback( string $path , string $cb , string $arg = ?): void

Sets a callback for specified URI.

Parâmetros

path

The path for which to invoke the callback.

cb

The callback callable that gets invoked on requested path . It should match the following prototype:

callback( EventHttpRequest $req = NULL , mixed $arg = NULL ): void

req

EventHttpRequest object.

arg

Custom data.

arg

Custom data.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 EventHttp::setCallback() example

<?php
/*
* Simple HTTP server.
*
* To test it:
* 1) Run it on a port of your choice, e.g.:
* $ php examples/http.php 8010
* 2) In another terminal connect to some address on this port
* and make GET or POST request(others are turned off here), e.g.:
* $ nc -t 127.0.0.1 8010
* POST /about HTTP/1.0
* Content-Type: text/plain
* Content-Length: 4
* Connection: close
* (press Enter)
*
* It will output
* a=12
* HTTP/1.0 200 OK
* Content-Type: text/html; charset=ISO-8859-1
* Connection: close
*
* 3) See what the server outputs on the previous terminal window.
*/

function _http_dump($req, $data) {
static $counter = 0;
static $max_requests = 2;

if (++$counter >= $max_requests) {
echo "Counter reached max requests $max_requests. Exiting\n";
exit();
}

echo __METHOD__, " called\n";
echo "request:"; var_dump($req);
echo "data:"; var_dump($data);

echo "\n===== DUMP =====\n";
echo "Command:", $req->getCommand(), PHP_EOL;
echo "URI:", $req->getUri(), PHP_EOL;
echo "Input headers:"; var_dump($req->getInputHeaders());
echo "Output headers:"; var_dump($req->getOutputHeaders());

echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";

echo "\n >> Reading input buffer ...\n";
$buf = $req->getInputBuffer();
while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
echo $s, PHP_EOL;
}
echo "No more data in the buffer\n";
}

function _http_about($req) {
echo __METHOD__, PHP_EOL;
echo "URI: ", $req->getUri(), PHP_EOL;
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
}

function _http_default($req, $data) {
echo __METHOD__, PHP_EOL;
echo "URI: ", $req->getUri(), PHP_EOL;
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
$port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

O exemplo acima produzirá algo semelhante a:

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Veja Também

  • EventHttp::setDefaultCallback() - Sets default callback to handle requests that are not caught by specific callbacks


Sets default callback to handle requests that are not caught by specific callbacks

  • « EventHttp::setCallback
  • EventHttp::setMaxBodySize »
  • PHP Manual
  • EventHttp
  • Sets default callback to handle requests that are not caught by specific callbacks

EventHttp::setDefaultCallback

(PECL event >= 1.4.0-beta)

EventHttp::setDefaultCallback — Sets default callback to handle requests that are not caught by specific callbacks

Descrição

public EventHttp::setDefaultCallback( string $cb , string $arg = ?): void

Sets default callback to handle requests that are not caught by specific callbacks

Parâmetros

cb

The callback callable . It should match the following prototype:

callback( EventHttpRequest $req = NULL , mixed $arg = NULL ): void

req

EventHttpRequest object.

arg

Custom data.

arg

User custom data passed to the callback.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 EventHttp::setDefaultCallback() example

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
exit("bind(1) failed\n");
};

$http->setDefaultCallback(function($req) {
echo "URI: ", $req->getUri(), PHP_EOL;
$req->sendReply(200, "OK");
});

$base->dispatch();
?>

Veja Também

  • EventHttp::setCallback() - Sets a callback for specified URI


Sets maximum request body size

  • « EventHttp::setDefaultCallback
  • EventHttp::setMaxHeadersSize »
  • PHP Manual
  • EventHttp
  • Sets maximum request body size

EventHttp::setMaxBodySize

(PECL event >= 1.4.0-beta)

EventHttp::setMaxBodySize — Sets maximum request body size

Descrição

public EventHttp::setMaxBodySize( int $value ): void

Sets maximum request body size.

Parâmetros

value

The body size in bytes.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventHttp::setMaxHeadersSize() - Sets maximum HTTP header size


Sets maximum HTTP header size

  • « EventHttp::setMaxBodySize
  • EventHttp::setTimeout »
  • PHP Manual
  • EventHttp
  • Sets maximum HTTP header size

EventHttp::setMaxHeadersSize

(PECL event >= 1.4.0-beta)

EventHttp::setMaxHeadersSize — Sets maximum HTTP header size

Descrição

public EventHttp::setMaxHeadersSize( int $value ): void

Sets maximum HTTP header size.

Parâmetros

value

The header size in bytes.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventHttp::setMaxHeadersSize()


Sets the timeout for an HTTP request

  • « EventHttp::setMaxHeadersSize
  • EventHttpConnection »
  • PHP Manual
  • EventHttp
  • Sets the timeout for an HTTP request

EventHttp::setTimeout

(PECL event >= 1.4.0-beta)

EventHttp::setTimeout — Sets the timeout for an HTTP request

Descrição

public EventHttp::setTimeout( int $value ): void

Sets the timeout for an HTTP request.

Parâmetros

value

The timeout in seconds.

Valor Retornado

Nenhum valor é retornado.


The EventHttpConnection class

(PECL event >= 1.4.0-beta)

Introdução

Represents an HTTP connection.

Resumo da classe

class EventHttpConnection {
/* Métodos */
public __construct(
EventBase $base ,
EventDnsBase $dns_base ,
string $address ,
int $port ,
EventSslContext $ctx = null
)
public getBase(): EventBase
public getPeer( string &$address , int &$port ): void
public makeRequest( EventHttpRequest $req , int $type , string $uri ): bool
public setCloseCallback( callable $callback , mixed $data = ?): void
public setLocalAddress( string $address ): void
public setLocalPort( int $port ): void
public setMaxBodySize( string $max_size ): void
public setMaxHeadersSize( string $max_size ): void
public setRetries( int $retries ): void
public setTimeout( int $timeout ): void
}

Índice

  • EventHttpConnection::__construct — Constructs EventHttpConnection object
  • EventHttpConnection::getBase — Returns event base associated with the connection
  • EventHttpConnection::getPeer — Gets the remote address and port associated with the connection
  • EventHttpConnection::makeRequest — Makes an HTTP request over the specified connection
  • EventHttpConnection::setCloseCallback — Set callback for connection close
  • EventHttpConnection::setLocalAddress — Sets the IP address from which HTTP connections are made
  • EventHttpConnection::setLocalPort — Sets the local port from which connections are made
  • EventHttpConnection::setMaxBodySize — Sets maximum body size for the connection
  • EventHttpConnection::setMaxHeadersSize — Sets maximum header size
  • EventHttpConnection::setRetries — Sets the retry limit for the connection
  • EventHttpConnection::setTimeout — Sets the timeout for the connection


Constructs EventHttpConnection object

  • « EventHttpConnection
  • EventHttpConnection::getBase »
  • PHP Manual
  • EventHttpConnection
  • Constructs EventHttpConnection object

EventHttpConnection::__construct

(PECL event >= 1.2.6-beta)

EventHttpConnection::__construct — Constructs EventHttpConnection object

Descrição

public EventHttpConnection::__construct(
EventBase $base ,
EventDnsBase $dns_base ,
string $address ,
int $port ,
EventSslContext $ctx = null
)

Constructs EventHttpConnection object.

Parâmetros

base

Associated event base.

dns_base

If dns_base is null, hostname resolution will block.

address

The address to connect to.

port

The port to connect to.

ctx

EventSslContext class object. Enables OpenSSL.

Nota:

This parameter is available only if Event is compiled with OpenSSL support and only with Libevent 2.1.0-alpha and higher.

Registro de Alterações

Versão | Descrição
PECL event 1.9.0 | OpenSSL support (ctx) added.


Returns event base associated with the connection

  • « EventHttpConnection::__construct
  • EventHttpConnection::getPeer »
  • PHP Manual
  • EventHttpConnection
  • Returns event base associated with the connection

EventHttpConnection::getBase

(PECL event >= 1.2.6-beta)

EventHttpConnection::getBase — Returns event base associated with the connection

Descrição

public EventHttpConnection::getBase(): EventBase

Returns event base associated with the connection.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

On success returns EventBase object associated with the connection. Otherwise false.


Gets the remote address and port associated with the connection

  • « EventHttpConnection::getBase
  • EventHttpConnection::makeRequest »
  • PHP Manual
  • EventHttpConnection
  • Gets the remote address and port associated with the connection

EventHttpConnection::getPeer

(PECL event >= 1.2.6-beta)

EventHttpConnection::getPeer — Gets the remote address and port associated with the connection

Descrição

public EventHttpConnection::getPeer( string &$address , int &$port ): void

Gets the remote address and port associated with the connection

Parâmetros

address

Address of the peer.

port

Port of the peer.

Valor Retornado

Nenhum valor é retornado.


Makes an HTTP request over the specified connection

  • « EventHttpConnection::getPeer
  • EventHttpConnection::setCloseCallback »
  • PHP Manual
  • EventHttpConnection
  • Makes an HTTP request over the specified connection

EventHttpConnection::makeRequest

(PECL event >= 1.4.0-beta)

EventHttpConnection::makeRequest — Makes an HTTP request over the specified connection

Descrição

public EventHttpConnection::makeRequest( EventHttpRequest $req , int $type , string $uri ): bool

Makes an HTTP request over the specified connection. type is one of EventHttpRequest::CMD_* constants.

Parâmetros

req

The connection object over which to send the request.

type

One of EventHttpRequest::CMD_* constants .

uri

The URI associated with the request.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 EventHttpConnection::makeRequest() example

<?php
function _request_handler($req, $base) {
echo __FUNCTION__, PHP_EOL;

if (is_null($req)) {
echo "Timed out\n";
} else {
$response_code = $req->getResponseCode();

if ($response_code == 0) {
echo "Connection refused\n";
} elseif ($response_code != 200) {
echo "Unexpected response: $response_code\n";
} else {
echo "Success: $response_code\n";
$buf = $req->getInputBuffer();
echo "Body:\n";
while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
echo $s, PHP_EOL;
}
}
}

$base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

O exemplo acima produzirá algo semelhante a:

_request_handler
Success: 200
Body:
PHP, date:
2013-03-13T20:27:52+05:00

Veja Também

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Set callback for connection close

  • « EventHttpConnection::makeRequest
  • EventHttpConnection::setLocalAddress »
  • PHP Manual
  • EventHttpConnection
  • Set callback for connection close

EventHttpConnection::setCloseCallback

(PECL event >= 1.8.0)

EventHttpConnection::setCloseCallback — Set callback for connection close

Descrição

public EventHttpConnection::setCloseCallback( callable $callback , mixed $data = ?): void

Sets callback for connection close.

Parâmetros

callback

Callback which is called when connection is closed. Should match the following prototype:

callback( EventHttpConnection $conn = null , mixed $arg = null ): void

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 EventHttpConnection::setCloseCallback() example

<?php
/*
* Setting up close-connection callback
*
* The script handles closed connections using HTTP API.
*
* Usage:
* 1) Launch the server:
* $ php examples/http_closecb.php 4242
*
* 2) Launch a client in another terminal. Telnet-like
* session should look like the following:
*
* $ nc -t 127.0.0.1 4242
* GET / HTTP/1.0
* Connection: close
*
* The server will output something similar to the following:
*
* HTTP/1.0 200 OK
* Content-Type: multipart/x-mixed-replace;boundary=boundarydonotcross
* Connection: close
*
* <html>
*
* 3) Terminate the client connection abruptly,
* i.e. kill the process, or just press Ctrl-C.
*
* 4) Check if the server called _close_callback.
* The script should output "_close_callback" string to standard output.
*
* 5) Check if the server's process has no orphaned connections,
* e.g. with `lsof` utility.
*/

function _close_callback($conn)
{
echo __FUNCTION__, PHP_EOL;
}

function _http_default($req, $dummy)
{
$conn = $req->getConnection();
$conn->setCloseCallback('_close_callback', NULL);

/*
By enabling Event::READ we protect the server against unclosed conections.
This is a peculiarity of Libevent. The library disables Event::READ events
on this connection, and the server is not notified about terminated
connections.

So each time client terminates connection abruptly, we get an orphaned
connection. For instance, the following is a part of `lsof -p $PID | grep TCP`
command after client has terminated connection:

57-php 15057 ruslan 6u unix 0xffff8802fb59c780 0t0 125187 socket
58:php 15057 ruslan 7u IPv4 125189 0t0 TCP *:4242 (LISTEN)
59:php 15057 ruslan 8u IPv4 124342 0t0 TCP localhost:4242->localhost:37375 (CLOSE_WAIT)

where $PID is our process ID.

The following block of code fixes such kind of orphaned connections.
*/
$bev = $req->getBufferEvent();
$bev->enable(Event::READ);
// We have to free it explicitly. See
EventHttpRequest::getConnection()
$bev->free(); // we have to free it explicitly

$req->addHeader(
'Content-Type',
'multipart/x-mixed-replace;boundary=boundarydonotcross',
EventHttpRequest::OUTPUT_HEADER
);

$buf = new EventBuffer();
$buf->add('<html>');

$req->sendReply(200, "OK");
$req->sendReplyChunk($buf);
}

$port = 4242;
if ($argc > 1) {
$port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);

$http->setDefaultCallback("_http_default", NULL);
$http->bind("0.0.0.0", $port);
$base->loop();

?>


Sets the IP address from which HTTP connections are made

  • « EventHttpConnection::setCloseCallback
  • EventHttpConnection::setLocalPort »
  • PHP Manual
  • EventHttpConnection
  • Sets the IP address from which HTTP connections are made

EventHttpConnection::setLocalAddress

(PECL event >= 1.2.6-beta)

EventHttpConnection::setLocalAddress — Sets the IP address from which HTTP connections are made

Descrição

public EventHttpConnection::setLocalAddress( string $address ): void

Sets the IP address from which http connections are made.

Parâmetros

address

The IP address from which HTTP connections are made.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventHttpConnection::setLocalPort() - Sets the local port from which connections are made


Sets the local port from which connections are made

  • « EventHttpConnection::setLocalAddress
  • EventHttpConnection::setMaxBodySize »
  • PHP Manual
  • EventHttpConnection
  • Sets the local port from which connections are made

EventHttpConnection::setLocalPort

(PECL event >= 1.2.6-beta)

EventHttpConnection::setLocalPort — Sets the local port from which connections are made

Descrição

public EventHttpConnection::setLocalPort( int $port ): void

Sets the local port from which connections are made.

Parâmetros

port

The port number.

Valor Retornado

Veja Também

  • EventHttpConnection::setLocalAddress() - Sets the IP address from which HTTP connections are made


Sets maximum body size for the connection

  • « EventHttpConnection::setLocalPort
  • EventHttpConnection::setMaxHeadersSize »
  • PHP Manual
  • EventHttpConnection
  • Sets maximum body size for the connection

EventHttpConnection::setMaxBodySize

(PECL event >= 1.2.6-beta)

EventHttpConnection::setMaxBodySize — Sets maximum body size for the connection

Descrição

public EventHttpConnection::setMaxBodySize( string $max_size ): void

Sets maximum body size for the connection.

Parâmetros

max_size

The maximum body size in bytes.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventHttpConnection::setMaxHeadersSize() - Sets maximum header size


Sets maximum header size

  • « EventHttpConnection::setMaxBodySize
  • EventHttpConnection::setRetries »
  • PHP Manual
  • EventHttpConnection
  • Sets maximum header size

EventHttpConnection::setMaxHeadersSize

(PECL event >= 1.2.6-beta)

EventHttpConnection::setMaxHeadersSize — Sets maximum header size

Descrição

public EventHttpConnection::setMaxHeadersSize( string $max_size ): void

Sets maximum header size for the connection.

Parâmetros

max_size

The maximum header size in bytes.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventHttpConnection::setMaxBodySize() - Sets maximum body size for the connection


Sets the retry limit for the connection

  • « EventHttpConnection::setMaxHeadersSize
  • EventHttpConnection::setTimeout »
  • PHP Manual
  • EventHttpConnection
  • Sets the retry limit for the connection

EventHttpConnection::setRetries

(PECL event >= 1.2.6-beta)

EventHttpConnection::setRetries — Sets the retry limit for the connection

Descrição

public EventHttpConnection::setRetries( int $retries ): void

Sets the retry limit for the connection

Parâmetros

retries

The retry limit. -1 means infinity.

Valor Retornado

Nenhum valor é retornado.


Sets the timeout for the connection

  • « EventHttpConnection::setRetries
  • EventHttpRequest »
  • PHP Manual
  • EventHttpConnection
  • Sets the timeout for the connection

EventHttpConnection::setTimeout

(PECL event >= 1.2.6-beta)

EventHttpConnection::setTimeout — Sets the timeout for the connection

Descrição

public EventHttpConnection::setTimeout( int $timeout ): void

Sets the timeout for the connection

Parâmetros

timeout

Timeout in seconds.

Valor Retornado

Nenhum valor é retornado.


The EventHttpRequest class

(PECL event >= 1.4.0-beta)

Introdução

Represents an HTTP request.

Resumo da classe

class EventHttpRequest {
/* Constantes */
const int CMD_GET = 1;
const int CMD_POST = 2;
const int CMD_HEAD = 4;
const int CMD_PUT = 8;
const int CMD_DELETE = 16;
const int CMD_OPTIONS = 32;
const int CMD_TRACE = 64;
const int CMD_CONNECT = 128;
const int CMD_PATCH = 256;
const int INPUT_HEADER = 1;
const int OUTPUT_HEADER = 2;
/* Métodos */
public addHeader( string $key , string $value , int $type ): bool
public cancel(): void
public clearHeaders(): void
public closeConnection(): void
public __construct( callable $callback , mixed $data = null )
public findHeader( string $key , string $type ): void
public free(): void
public closeConnection(): EventBufferEvent
public getCommand(): void
public closeConnection(): EventHttpConnection
public getHost(): string
public getInputBuffer(): EventBuffer
public getInputHeaders(): array
public getOutputBuffer(): EventBuffer
public getOutputHeaders(): void
public getResponseCode(): int
public getUri(): string
public removeHeader( string $key , string $type ): void
public sendError( int $error , string $reason = null ): void
public sendReply( int $code , string $reason , EventBuffer $buf = ?): void
public sendReplyChunk( EventBuffer $buf ): void
public sendReplyEnd(): void
public sendReplyStart( int $code , string $reason ): void
}

Constantes pré-definidas

EventHttpRequest::CMD_GET

GET method(command)

EventHttpRequest::CMD_POST

POST method(command)

EventHttpRequest::CMD_HEAD

HEAD method(command)

EventHttpRequest::CMD_PUT

PUT method(command)

EventHttpRequest::CMD_DELETE

DELETE command(method)

EventHttpRequest::CMD_OPTIONS

OPTIONS method(command)

EventHttpRequest::CMD_TRACE

TRACE method(command)

EventHttpRequest::CMD_CONNECT

CONNECT method(command)

EventHttpRequest::CMD_PATCH

PATCH method(command)

EventHttpRequest::INPUT_HEADER

Request input header type.

EventHttpRequest::OUTPUT_HEADER

Request output header type.

Índice

  • EventHttpRequest::addHeader — Adds an HTTP header to the headers of the request
  • EventHttpRequest::cancel — Cancels a pending HTTP request
  • EventHttpRequest::clearHeaders — Removes all output headers from the header list of the request
  • EventHttpRequest::closeConnection — Closes associated HTTP connection
  • EventHttpRequest::__construct — Constructs EventHttpRequest object
  • EventHttpRequest::findHeader — Finds the value belonging a header
  • EventHttpRequest::free — Frees the object and removes associated events
  • EventHttpRequest::getBufferEvent — Returns EventBufferEvent object
  • EventHttpRequest::getCommand — Returns the request command(method)
  • EventHttpRequest::getConnection — Returns EventHttpConnection object
  • EventHttpRequest::getHost — Returns the request host
  • EventHttpRequest::getInputBuffer — Returns the input buffer
  • EventHttpRequest::getInputHeaders — Returns associative array of the input headers
  • EventHttpRequest::getOutputBuffer — Returns the output buffer of the request
  • EventHttpRequest::getOutputHeaders — Returns associative array of the output headers
  • EventHttpRequest::getResponseCode — Returns the response code
  • EventHttpRequest::getUri — Returns the request URI
  • EventHttpRequest::removeHeader — Removes an HTTP header from the headers of the request
  • EventHttpRequest::sendError — Send an HTML error message to the client
  • EventHttpRequest::sendReply — Send an HTML reply to the client
  • EventHttpRequest::sendReplyChunk — Send another data chunk as part of an ongoing chunked reply
  • EventHttpRequest::sendReplyEnd — Complete a chunked reply, freeing the request as appropriate
  • EventHttpRequest::sendReplyStart — Initiate a chunked reply


Adds an HTTP header to the headers of the request

  • « EventHttpRequest
  • EventHttpRequest::cancel »
  • PHP Manual
  • EventHttpRequest
  • Adds an HTTP header to the headers of the request

EventHttpRequest::addHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::addHeader — Adds an HTTP header to the headers of the request

Descrição

public EventHttpRequest::addHeader( string $key , string $value , int $type ): bool

Adds an HTTP header to the headers of the request.

Parâmetros

key

Header name.

value

Header value.

type

One of EventHttpRequest::*_HEADER constants .

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventHttpRequest::removeHeader() - Removes an HTTP header from the headers of the request


Cancels a pending HTTP request

  • « EventHttpRequest::addHeader
  • EventHttpRequest::clearHeaders »
  • PHP Manual
  • EventHttpRequest
  • Cancels a pending HTTP request

EventHttpRequest::cancel

(PECL event >= 1.4.0-beta)

EventHttpRequest::cancel — Cancels a pending HTTP request

Descrição

public EventHttpRequest::cancel(): void

Cancels a pending HTTP request.

Cancels an ongoing HTTP request. The callback associated with this request is not executed and the request object is freed. If the request is currently being processed, e.g. it is ongoing, the corresponding EventHttpConnection object is going to get reset.

A request cannot be canceled if its callback has executed already. A request may be canceled reentrantly from its chunked callback.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Removes all output headers from the header list of the request

  • « EventHttpRequest::cancel
  • EventHttpRequest::closeConnection »
  • PHP Manual
  • EventHttpRequest
  • Removes all output headers from the header list of the request

EventHttpRequest::clearHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::clearHeaders — Removes all output headers from the header list of the request

Descrição

public EventHttpRequest::clearHeaders(): void

Removes all output headers from the header list of the request.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Closes associated HTTP connection

  • « EventHttpRequest::clearHeaders
  • EventHttpRequest::__construct »
  • PHP Manual
  • EventHttpRequest
  • Closes associated HTTP connection

EventHttpRequest::closeConnection

(PECL event >= 1.8.0)

EventHttpRequest::closeConnection — Closes associated HTTP connection

Descrição

public EventHttpRequest::closeConnection(): void

Closes HTTP connection associated with the request.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Constructs EventHttpRequest object

  • « EventHttpRequest::closeConnection
  • EventHttpRequest::findHeader »
  • PHP Manual
  • EventHttpRequest
  • Constructs EventHttpRequest object

EventHttpRequest::__construct

(PECL event >= 1.4.0-beta)

EventHttpRequest::__construct — Constructs EventHttpRequest object

Descrição

public EventHttpRequest::__construct( callable $callback , mixed $data = null )

Constructs EventHttpRequest object.

Parâmetros

callback

Gets invoked on requesting path. Should match the following prototype:

callback( EventHttpRequest $req = null , mixed $arg = null ): void
data

User custom data passed to the callback.

Exemplos

Exemplo #1 EventHttpRequest::__construct() example

<?php

function _request_handler($req, $base) {
echo __FUNCTION__, PHP_EOL;

if (is_null($req)) {
echo "Timed out\n";
} else {
$response_code = $req->getResponseCode();

if ($response_code == 0) {
echo "Connection refused\n";
} elseif ($response_code != 200) {
echo "Unexpected response: $response_code\n";
} else {
echo "Success: $response_code\n";
$buf = $req->getInputBuffer();
echo "Body:\n";
while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
echo $s, PHP_EOL;
}
}
}

$base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

Veja Também

  • EventHttpRequest::cancel() - Cancels a pending HTTP request
  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Finds the value belonging a header

  • « EventHttpRequest::__construct
  • EventHttpRequest::free »
  • PHP Manual
  • EventHttpRequest
  • Finds the value belonging a header

EventHttpRequest::findHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::findHeader — Finds the value belonging a header

Descrição

public EventHttpRequest::findHeader( string $key , string $type ): void

Finds the value belonging a header.

Parâmetros

key

The header name.

type

One of EventHttpRequest::*_HEADER constants .

Valor Retornado

Returns null if header not found.

Veja Também

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Frees the object and removes associated events

  • « EventHttpRequest::findHeader
  • EventHttpRequest::getBufferEvent »
  • PHP Manual
  • EventHttpRequest
  • Frees the object and removes associated events

EventHttpRequest::free

(PECL event >= 1.4.0-beta)

EventHttpRequest::free — Frees the object and removes associated events

Descrição

public EventHttpRequest::free(): void

Frees the object and removes associated events.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Returns EventBufferEvent object

  • « EventHttpRequest::free
  • EventHttpRequest::getCommand »
  • PHP Manual
  • EventHttpRequest
  • Returns EventBufferEvent object

EventHttpRequest::getBufferEvent

(PECL event >= 1.8.0)

EventHttpRequest::getBufferEvent — Returns EventBufferEvent object

Descrição

public EventHttpRequest::closeConnection(): EventBufferEvent

Returns EventBufferEvent object which represents buffer event that the connection is using.

Aviso

The reference counter of the returned object will be incremented by one to protect internal structures against premature destruction when the method is called from a user callback. So the EventBufferEvent object should be freed explicitly with EventBufferEvent::free() method. Otherwise memory will leak.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns EventBufferEvent object.

Veja Também

  • EventHttpRequest::getConnection() - Returns EventHttpConnection object


Returns the request command(method)

  • « EventHttpRequest::getBufferEvent
  • EventHttpRequest::getConnection »
  • PHP Manual
  • EventHttpRequest
  • Returns the request command(method)

EventHttpRequest::getCommand

(PECL event >= 1.4.0-beta)

EventHttpRequest::getCommand — Returns the request command(method)

Descrição

public EventHttpRequest::getCommand(): void

Returns the request command, one of EventHttpRequest::CMD_* constants.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the request command, one of EventHttpRequest::CMD_* constants.


Returns EventHttpConnection object

  • « EventHttpRequest::getCommand
  • EventHttpRequest::getHost »
  • PHP Manual
  • EventHttpRequest
  • Returns EventHttpConnection object

EventHttpRequest::getConnection

(PECL event >= 1.8.0)

EventHttpRequest::getConnection — Returns EventHttpConnection object

Descrição

public EventHttpRequest::closeConnection(): EventHttpConnection

Returns EventHttpConnection object which represents HTTP connection associated with the request.

Aviso

Libevent API allows HTTP request objects to be not bound to any HTTP connection. Therefore we can't unambiguously associate EventHttpRequest with EventHttpConnection . Thus, we construct EventHttpConnection object on-the-fly. Having no information about the event base, DNS base and connection-close callback, we just leave these fields unset.

EventHttpRequest::getConnection() method is usually useful when we need to set up a callback on connection close. See EventHttpConnection::setCloseCallback() .

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns EventHttpConnection object.

Veja Também

  • EventHttpConnection::setCloseCallback() - Set callback for connection close
  • EventHttpRequest::getBufferEvent() - Returns EventBufferEvent object


Returns the request host

  • « EventHttpRequest::getConnection
  • EventHttpRequest::getInputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Returns the request host

EventHttpRequest::getHost

(PECL event >= 1.4.0-beta)

EventHttpRequest::getHost — Returns the request host

Descrição

public EventHttpRequest::getHost(): string

Returns the request host.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the request host.

Veja Também

  • EventHttpRequest::getUri() - Returns the request URI
  • EventHttpRequest::getCommand() - Returns the request command(method)


Returns the input buffer

  • « EventHttpRequest::getHost
  • EventHttpRequest::getInputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Returns the input buffer

EventHttpRequest::getInputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputBuffer — Returns the input buffer

Descrição

public EventHttpRequest::getInputBuffer(): EventBuffer

Returns the input buffer.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the input buffer.

Veja Também

  • EventHttpRequest::getOutputBuffer() - Returns the output buffer of the request


Returns associative array of the input headers

  • « EventHttpRequest::getInputBuffer
  • EventHttpRequest::getOutputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Returns associative array of the input headers

EventHttpRequest::getInputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputHeaders — Returns associative array of the input headers

Descrição

public EventHttpRequest::getInputHeaders(): array

Returns associative array of the input headers.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns associative array of the input headers.

Veja Também

  • EventHttpRequest::getOutputHeaders() - Returns associative array of the output headers


Returns the output buffer of the request

  • « EventHttpRequest::getInputHeaders
  • EventHttpRequest::getOutputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Returns the output buffer of the request

EventHttpRequest::getOutputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputBuffer — Returns the output buffer of the request

Descrição

public EventHttpRequest::getOutputBuffer(): EventBuffer

Returns the output buffer of the request.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the output buffer of the request.

Veja Também

  • EventHttpRequest::getInputBuffer() - Returns the input buffer


Returns associative array of the output headers

  • « EventHttpRequest::getOutputBuffer
  • EventHttpRequest::getResponseCode »
  • PHP Manual
  • EventHttpRequest
  • Returns associative array of the output headers

EventHttpRequest::getOutputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputHeaders — Returns associative array of the output headers

Descrição

public EventHttpRequest::getOutputHeaders(): void

Returns associative array of the output headers.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • EventHttpRequest::getInputHeaders() - Returns associative array of the input headers


Returns the response code

  • « EventHttpRequest::getOutputHeaders
  • EventHttpRequest::getUri »
  • PHP Manual
  • EventHttpRequest
  • Returns the response code

EventHttpRequest::getResponseCode

(PECL event >= 1.4.0-beta)

EventHttpRequest::getResponseCode — Returns the response code

Descrição

public EventHttpRequest::getResponseCode(): int

Returns the response code.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the response code of the request.

Veja Também

  • EventHttpRequest::getCommand() - Returns the request command(method)
  • EventHttpRequest::getHost() - Returns the request host
  • EventHttpRequest::getUri() - Returns the request URI


Returns the request URI

  • « EventHttpRequest::getResponseCode
  • EventHttpRequest::removeHeader »
  • PHP Manual
  • EventHttpRequest
  • Returns the request URI

EventHttpRequest::getUri

(PECL event >= 1.4.0-beta)

EventHttpRequest::getUri — Returns the request URI

Descrição

public EventHttpRequest::getUri(): string

Returns the request URI

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the request URI

Veja Também

  • EventHttpRequest::getCommand() - Returns the request command(method)
  • EventHttpRequest::getHost() - Returns the request host
  • EventHttpRequest::getResponseCode() - Returns the response code


Removes an HTTP header from the headers of the request

  • « EventHttpRequest::getUri
  • EventHttpRequest::sendError »
  • PHP Manual
  • EventHttpRequest
  • Removes an HTTP header from the headers of the request

EventHttpRequest::removeHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::removeHeader — Removes an HTTP header from the headers of the request

Descrição

public EventHttpRequest::removeHeader( string $key , string $type ): void

Removes an HTTP header from the headers of the request.

Parâmetros

key

The header name.

type

type is one of EventHttpRequest::*_HEADER constants.

Valor Retornado

Removes an HTTP header from the headers of the request.

Veja Também

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Send an HTML error message to the client

  • « EventHttpRequest::removeHeader
  • EventHttpRequest::sendReply »
  • PHP Manual
  • EventHttpRequest
  • Send an HTML error message to the client

EventHttpRequest::sendError

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendError — Send an HTML error message to the client

Descrição

public EventHttpRequest::sendError( int $error , string $reason = null ): void

Send an HTML error message to the client.

Parâmetros

error

The HTTP error code.

reason

A brief explanation ofthe error. If null, the standard meaning of the error code will be used.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 EventHttpRequest::sendError() example

<?php
function _http_400($req) {
$req->sendError(400);
}

$base = new EventBase();
$http = new EventHttp($base);

$http->setCallback("/err400", "_http_400");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Veja Também

  • EventHttpRequest::sendReply() - Send an HTML reply to the client


Send an HTML reply to the client

  • « EventHttpRequest::sendError
  • EventHttpRequest::sendReplyChunk »
  • PHP Manual
  • EventHttpRequest
  • Send an HTML reply to the client

EventHttpRequest::sendReply

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReply — Send an HTML reply to the client

Descrição

public EventHttpRequest::sendReply( int $code , string $reason , EventBuffer $buf = ?): void

Send an HTML reply to the client. The body of the reply consists of data in optional buf parameter.

Parâmetros

code

The HTTP response code to send.

reason

A brief message to send with the response code.

buf

The body of the response.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventHttpRequest::sendError() - Send an HTML error message to the client
  • EventHttpRequest::sendReplyChunk() - Send another data chunk as part of an ongoing chunked reply


Send another data chunk as part of an ongoing chunked reply

  • « EventHttpRequest::sendReply
  • EventHttpRequest::sendReplyEnd »
  • PHP Manual
  • EventHttpRequest
  • Send another data chunk as part of an ongoing chunked reply

EventHttpRequest::sendReplyChunk

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyChunk — Send another data chunk as part of an ongoing chunked reply

Descrição

public EventHttpRequest::sendReplyChunk( EventBuffer $buf ): void

Send another data chunk as part of an ongoing chunked reply. After calling this method buf will be empty.

Parâmetros

buf

The data chunk to send as part of the reply.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventHttpRequest::sendReplyStart() - Initiate a chunked reply
  • EventHttpRequest::sendReplyEnd() - Complete a chunked reply, freeing the request as appropriate


Complete a chunked reply, freeing the request as appropriate

  • « EventHttpRequest::sendReplyChunk
  • EventHttpRequest::sendReplyStart »
  • PHP Manual
  • EventHttpRequest
  • Complete a chunked reply, freeing the request as appropriate

EventHttpRequest::sendReplyEnd

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyEnd — Complete a chunked reply, freeing the request as appropriate

Descrição

public EventHttpRequest::sendReplyEnd(): void

Complete a chunked reply, freeing the request as appropriate.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventHttpRequest::sendReplyStart() - Initiate a chunked reply
  • EventHttpRequest::sendReplyChunk() - Send another data chunk as part of an ongoing chunked reply


Initiate a chunked reply

  • « EventHttpRequest::sendReplyEnd
  • EventListener »
  • PHP Manual
  • EventHttpRequest
  • Initiate a chunked reply

EventHttpRequest::sendReplyStart

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyStart — Initiate a chunked reply

Descrição

public EventHttpRequest::sendReplyStart( int $code , string $reason ): void

Initiate a reply that uses Transfer-Encoding chunked .

This allows the caller to stream the reply back to the client and is useful when either not all of the reply data is immediately available or when sending very large replies.

The caller needs to supply data chunks with EventHttpRequest::sendReplyChunk() and complete the reply by calling EventHttpRequest::sendReplyEnd() .

Parâmetros

code

The HTTP response code to send.

reason

A brief message to send with the response code.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • EventHttpRequest::sendReplyChunk() - Send another data chunk as part of an ongoing chunked reply
  • EventHttpRequest::sendReplyEnd() - Complete a chunked reply, freeing the request as appropriate


The EventListener class

(PECL event >= 1.5.0)

Introdução

Represents a connection listener.

Resumo da classe

final class EventListener {
/* Constantes */
const int OPT_LEAVE_SOCKETS_BLOCKING = 1;
const int OPT_CLOSE_ON_FREE = 2;
const int OPT_CLOSE_ON_EXEC = 4;
const int OPT_REUSEABLE = 8;
const int OPT_THREADSAFE = 16;
/* Propriedades */
public readonly int $fd;
/* Métodos */
public __construct(
EventBase $base ,
callable $cb ,
mixed $data ,
int $flags ,
int $backlog ,
mixed $target
)
public disable(): bool
public enable(): bool
public getBase(): void
public static getSocketName( string &$address , mixed &$port = ?): bool
public setCallback( callable $cb , mixed $arg = null ): void
public setErrorCallback( string $cb ): void
}

Propriedades

fd

Numeric file descriptor of the underlying socket. (Added in event-1.6.0 .)

Constantes pré-definidas

EventListener::OPT_LEAVE_SOCKETS_BLOCKING

By default Libevent turns underlying file descriptors, or sockets, to non-blocking mode. This flag tells Libevent to leave them in blocking mode.

EventListener::OPT_CLOSE_ON_FREE

If this option is set, the connection listener closes its underlying socket when the EventListener object is freed.

EventListener::OPT_CLOSE_ON_EXEC

If this option is set, the connection listener sets the close-on-exec flag on the underlying listener socket. See platform documentation for fcntl and FD_CLOEXEC for more information.

EventListener::OPT_REUSEABLE

By default on some platforms, once a listener socket is closed, no other socket can bind to the same port until a while has passed. Setting this option makes Libevent mark the socket as reusable, so that once it is closed, another socket can be opened to listen on the same port.

EventListener::OPT_THREADSAFE

Allocate locks for the listener, so that it’s safe to use it from multiple threads.

Índice

  • EventListener::__construct — Creates new connection listener associated with an event base
  • EventListener::disable — Disables an event connect listener object
  • EventListener::enable — Enables an event connect listener object
  • EventListener::getBase — Returns event base associated with the event listener
  • EventListener::getSocketName — Retreives the current address to which the listener's socket is bound
  • EventListener::setCallback — The setCallback purpose
  • EventListener::setErrorCallback — Set event listener's error callback


Creates new connection listener associated with an event base

  • « EventListener
  • EventListener::disable »
  • PHP Manual
  • EventListener
  • Creates new connection listener associated with an event base

EventListener::__construct

(PECL event >= 1.2.6-beta)

EventListener::__construct — Creates new connection listener associated with an event base

Descrição

public EventListener::__construct(
EventBase $base ,
callable $cb ,
mixed $data ,
int $flags ,
int $backlog ,
mixed $target
)

Creates new connection listener associated with an event base.

Parâmetros

base

Associated event base.

cb

A callable that will be invoked when new connection received.

data

Custom user data attached to cb .

flags

Bit mask of EventListener::OPT_* constants. See EventListener constants .

backlog

Controls the maximum number of pending connections that the network stack should allow to wait in a not-yet-accepted state at any time; see documentation for your system’s listen function for more details. If backlog is negative, Libevent tries to pick a good value for the backlog ; if it is zero, Event assumes that listen is already called on the socket (target).

target

May be string, socket resource, or a stream associated with a socket. In case if target is a string, the string will be parsed as network address. It will be interpreted as a UNIX domain socket path, if prefixed with 'unix:' , e.g. 'unix:/tmp/my.sock' .

Registro de Alterações

Versão | Descrição
PECL event 1.5.0 | UNIX domain sockets' support added.

Exemplos

Exemplo #1 EventListener::__construct() example

<?php
/*
* Simple echo server based on libevent's connection listener.
*
* Usage:
* 1) In one terminal window run:
*
* $ php listener.php 9881
*
* 2) In another terminal window open up connection, e.g.:
*
* $ nc 127.0.0.1 9881
*
* 3) start typing. The server should repeat the input.
*/

class MyListenerConnection {
private $bev, $base;

public function __destruct() {
$this->bev->free();
}

public function __construct($base, $fd) {
$this->base = $base;

$this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

$this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
array($this, "echoEventCallback"), NULL);

if (!$this->bev->enable(Event::READ)) {
echo "Failed to enable READ\n";
return;
}
}

public function echoReadCallback($bev, $ctx) {
// Copy all the data from the input buffer to the output buffer

// Variant #1
$bev->output->addBuffer($bev->input);

/* Variant #2 */
/*
$input = $bev->getInput();
$output = $bev->getOutput();
$output->addBuffer($input);
*/
}

public function echoEventCallback($bev, $events, $ctx) {
if ($events & EventBufferEvent::ERROR) {
echo "Error from bufferevent\n";
}

if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
//$bev->free();
$this->__destruct();
}
}
}

class MyListener {
public $base,
$listener,
$socket;
private $conn = array();

public function __destruct() {
foreach ($this->conn as &$c) $c = NULL;
}

public function __construct($port) {
$this->base = new EventBase();
if (!$this->base) {
echo "Couldn't open event base";
exit(1);
}

// Variant #1
/*
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!socket_bind($this->socket, '0.0.0.0', $port)) {
echo "Unable to bind socket\n";
exit(1);
}
$this->listener = new EventListener($this->base,
array($this, "acceptConnCallback"), $this->base,
EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
-1, $this->socket);
*/

// Variant #2
$this->listener = new EventListener($this->base,
array($this, "acceptConnCallback"), $this->base,
EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
"0.0.0.0:$port");

if (!$this->listener) {
echo "Couldn't create listener";
exit(1);
}

$this->listener->setErrorCallback(array($this, "accept_error_cb"));
}

public function dispatch() {
$this->base->dispatch();
}

// This callback is invoked when there is data to read on $bev
public function acceptConnCallback($listener, $fd, $address, $ctx) {
// We got a new connection! Set up a bufferevent for it. */
$base = $this->base;
$this->conn[] = new MyListenerConnection($base, $fd);
}

public function accept_error_cb($listener, $ctx) {
$base = $this->base;

fprintf(STDERR, "Got an error %d (%s) on the listener. "
."Shutting down.\n",
EventUtil::getLastSocketErrno(),
EventUtil::getLastSocketError());

$base->exit(NULL);
}
}

$port = 9808;

if ($argc > 1) {
$port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
exit("Invalid port");
}

$l = new MyListener($port);
$l->dispatch();
?>


Disables an event connect listener object

  • « EventListener::__construct
  • EventListener::enable »
  • PHP Manual
  • EventListener
  • Disables an event connect listener object

EventListener::disable

(PECL event >= 1.2.6-beta)

EventListener::disable — Disables an event connect listener object

Descrição

public EventListener::disable(): bool

Disables an event connect listener object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventListener::enable() - Enables an event connect listener object


Enables an event connect listener object

  • « EventListener::disable
  • EventListener::getBase »
  • PHP Manual
  • EventListener
  • Enables an event connect listener object

EventListener::enable

(PECL event >= 1.2.6-beta)

EventListener::enable — Enables an event connect listener object

Descrição

public EventListener::enable(): bool

Enables an event connect listener object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • EventListener::disable() - Disables an event connect listener object


Returns event base associated with the event listener

  • « EventListener::enable
  • EventListener::getSocketName »
  • PHP Manual
  • EventListener
  • Returns event base associated with the event listener

EventListener::getBase

(PECL event >= 1.2.6-beta)

EventListener::getBase — Returns event base associated with the event listener

Descrição

public EventListener::getBase(): void

Returns event base associated with the event listener.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns event base associated with the event listener.


Retreives the current address to which the listener's socket is bound

  • « EventListener::getBase
  • EventListener::setCallback »
  • PHP Manual
  • EventListener
  • Retreives the current address to which the listener's socket is bound

EventListener::getSocketName

(PECL event >= 1.5.0)

EventListener::getSocketName — Retreives the current address to which the listener's socket is bound

Descrição

public static EventListener::getSocketName( string &$address , mixed &$port = ?): bool

Retreives the current address to which the listener's socket is bound.

Parâmetros

address

Output parameter. IP-address depending on the socket address family.

port

Output parameter. The port the socket is bound to.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


The setCallback purpose

  • « EventListener::getSocketName
  • EventListener::setErrorCallback »
  • PHP Manual
  • EventListener
  • The setCallback purpose

EventListener::setCallback

(PECL event >= 1.2.6-beta)

EventListener::setCallback — The setCallback purpose

Descrição

public EventListener::setCallback( callable $cb , mixed $arg = null ): void

Adjust event connect listener's callback and optionally the callback argument.

Parâmetros

cb

The new callback for new connections. Ignored if null.

Should match the following prototype:

callback(
EventListener $listener = null ,
mixed $fd = null ,
array $address = null ,
mixed $arg = null
): void

listener

The EventListener object.

fd

The file descriptor or a resource associated with the listener.

address

Array of two elements: IP address and the server port.

arg

User custom data attached to the callback.

arg

Custom user data attached to the callback. Ignored if null.

Valor Retornado

Nenhum valor é retornado.


Set event listener's error callback

  • « EventListener::setCallback
  • EventSslContext »
  • PHP Manual
  • EventListener
  • Set event listener's error callback

EventListener::setErrorCallback

(PECL event >= 1.2.6-beta)

EventListener::setErrorCallback — Set event listener's error callback

Descrição

public EventListener::setErrorCallback( string $cb ): void

Set event listener's error callback

Parâmetros

cb

The error callback. Should match the following prototype:

callback( EventListener $listener = null , mixed $data = null ): void

listener

The EventListener object.

data

User custom data attached to the callback.

Valor Retornado

Veja Também

  • EventListener::setCallback() - The setCallback purpose


The EventSslContext class

(PECL event >= 1.2.6-beta)

Introdução

Represents SSL_CTX structure. Provides methods and properties to configure the SSL context.

Resumo da classe

final class EventSslContext {
/* Constantes */
const int SSLv2_CLIENT_METHOD = 1;
const int SSLv3_CLIENT_METHOD = 2;
const int SSLv23_CLIENT_METHOD = 3;
const int TLS_CLIENT_METHOD = 4;
const int SSLv2_SERVER_METHOD = 5;
const int SSLv3_SERVER_METHOD = 6;
const int SSLv23_SERVER_METHOD = 7;
const int TLS_SERVER_METHOD = 8;
const int OPT_LOCAL_CERT = 1;
const int OPT_LOCAL_PK = 2;
const int OPT_PASSPHRASE = 3;
const int OPT_CA_FILE = 4;
const int OPT_CA_PATH = 5;
const int OPT_ALLOW_SELF_SIGNED = 6;
const int OPT_VERIFY_PEER = 7;
const int OPT_VERIFY_DEPTH = 8;
const int OPT_CIPHERS = 9;
/* Propriedades */
public string $local_cert;
public string $local_pk;
/* Métodos */
public __construct( string $method , string $options )
}

Propriedades

local_cert

Path to local certificate file on filesystem. It must be a PEM-encoded file which contains certificate. It can optionally contain the certificate chain of issuers.

local_pk

Path to local private key file

Constantes pré-definidas

EventSslContext::SSLv2_CLIENT_METHOD

SSLv2 client method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv3_CLIENT_METHOD

SSLv3 client method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv23_CLIENT_METHOD

SSLv23 client method. See SSL_CTX_new(3) man page.

EventSslContext::TLS_CLIENT_METHOD

TLS client method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv2_SERVER_METHOD

SSLv2 server method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv3_SERVER_METHOD

SSLv3 server method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv23_SERVER_METHOD

SSLv23 server method. See SSL_CTX_new(3) man page.

EventSslContext::TLS_SERVER_METHOD

TLS server method. See SSL_CTX_new(3) man page.

EventSslContext::OPT_LOCAL_CERT

Key for an item of the options' array used in EventSslContext::__construct() . The option points to path of local certificate.

EventSslContext::OPT_LOCAL_PK

Key for an item of the options' array used in EventSslContext::__construct() . The option points to path of the private key.

EventSslContext::OPT_PASSPHRASE

Key for an item of the options' array used in EventSslContext::__construct() . Represents passphrase of the certificate.

EventSslContext::OPT_CA_FILE

Key for an item of the options' array used in EventSslContext::__construct() . Represents path of the certificate authority file.

EventSslContext::OPT_CA_PATH

Key for an item of the options' array used in EventSslContext::__construct() . Represents path where the certificate authority file should be searched for.

EventSslContext::OPT_ALLOW_SELF_SIGNED

Key for an item of the options' array used in EventSslContext::__construct() . Represents option that allows self-signed certificates.

EventSslContext::OPT_VERIFY_PEER

Key for an item of the options' array used in EventSslContext::__construct() . Represents option that tells Event to verify peer.

EventSslContext::OPT_VERIFY_DEPTH

Key for an item of the options' array used in EventSslContext::__construct() . Represents maximum depth for the certificate chain verification that shall be allowed for the SSL context.

EventSslContext::OPT_CIPHERS

Key for an item of the options' array used in EventSslContext::__construct() . Represents the cipher list for the SSL context.

Índice

  • EventSslContext::__construct — Constructs an OpenSSL context for use with Event classes


Constructs an OpenSSL context for use with Event classes

  • « EventSslContext
  • EventUtil »
  • PHP Manual
  • EventSslContext
  • Constructs an OpenSSL context for use with Event classes

EventSslContext::__construct

(PECL event >= 1.2.6-beta)

EventSslContext::__construct — Constructs an OpenSSL context for use with Event classes

Descrição

public EventSslContext::__construct( string $method , string $options )

Creates SSL context holding pointer to SSL_CTX (see the system manual).

Parâmetros

method

One of EventSslContext::*_METHOD constants .

options

Associative array of SSL context options One of EventSslContext::OPT_* constants .

Exemplos

Exemplo #1 EventSslContext::__construct() example

<?php
$ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array(
EventSslContext::OPT_LOCAL_CERT => $local_cert,
EventSslContext::OPT_LOCAL_PK => $local_pk,
EventSslContext::OPT_PASSPHRASE => "echo server",
EventSslContext::OPT_VERIFY_PEER => true,
EventSslContext::OPT_ALLOW_SELF_SIGNED => false,
));
?>


The EventUtil class

(PECL event >= 1.5.0)

Introdução

EventUtil is a singleton with supplimentary methods and constants.

Resumo da classe

final class EventUtil {
/* Constantes */
const int AF_INET = 2;
const int AF_INET6 = 10;
const int AF_UNSPEC = 0;
const int LIBEVENT_VERSION_NUMBER = 33559808;
const int SO_DEBUG = 1;
const int SO_REUSEADDR = 2;
const int SO_KEEPALIVE = 9;
const int SO_DONTROUTE = 5;
const int SO_LINGER = 13;
const int SO_BROADCAST = 6;
const int SO_OOBINLINE = 10;
const int SO_SNDBUF = 7;
const int SO_RCVBUF = 8;
const int SO_SNDLOWAT = 19;
const int SO_RCVLOWAT = 18;
const int SO_SNDTIMEO = 21;
const int SO_RCVTIMEO = 20;
const int SO_TYPE = 3;
const int SO_ERROR = 4;
const int SOL_SOCKET = 1;
const int SOL_TCP = 6;
const int SOL_UDP = 17;
const int IPPROTO_IP = 0;
const int IPPROTO_IPV6 = 41;
/* Métodos */
abstract public __construct()
public static getLastSocketErrno( mixed $socket = null ): int
public static getLastSocketError( mixed $socket = ?): string
public static getSocketFd( mixed $socket ): int
public static getSocketName( mixed $socket , string &$address , mixed &$port = ?): bool
public static setSocketOption(
mixed $socket ,
int $level ,
int $optname ,
mixed $optval
): bool
public static sslRandPoll(): void
}

Constantes pré-definidas

EventUtil::AF_INET

IPv4 address family

EventUtil::AF_INET6

IPv6 address family

EventUtil::AF_UNSPEC

Unspecified IP address family

EventUtil::SO_DEBUG

Socket option. Enable socket debugging. Only allowed for processes with the CAP_NET_ADMIN capability or an effective user ID of 0 . (Added in event-1.6.0.)

EventUtil::SO_REUSEADDR

Socket option. Indicates that the rules used in validating addresses supplied in a bind(2) call should allow reuse of local addresses. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_KEEPALIVE

Socket option. Enable sending of keep-alive messages on connection-oriented sockets. Expects an integer boolean flag. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_DONTROUTE

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_LINGER

Socket option. When enabled, a close(2) or shutdown(2) will not return until all queued messages for the socket have been successfully sent or the linger timeout has been reached. Otherwise, the call returns immediately and the closing is done in the background. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_BROADCAST

Socket option. Reports whether transmission of broadcast messages is supported. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_OOBINLINE

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_SNDBUF

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_RCVBUF

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_SNDLOWAT

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_RCVLOWAT

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_SNDTIMEO

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_RCVTIMEO

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_TYPE

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_ERROR

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SOL_SOCKET

Socket option level. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SOL_TCP

Socket option level. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SOL_UDP

Socket option level. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::IPPROTO_IP

See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::IPPROTO_IPV6

See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::LIBEVENT_VERSION_NUMBER

Libevent' version number at the time when Event extension had been compiled with the library.

Índice

  • EventUtil::__construct — The abstract constructor
  • EventUtil::getLastSocketErrno — Returns the most recent socket error number
  • EventUtil::getLastSocketError — Returns the most recent socket error
  • EventUtil::getSocketFd — Returns numeric file descriptor of a socket, or stream
  • EventUtil::getSocketName — Retreives the current address to which the socket is bound
  • EventUtil::setSocketOption — Sets socket options
  • EventUtil::sslRandPoll — Generates entropy by means of OpenSSL's RAND_poll()


The abstract constructor

  • « EventUtil
  • EventUtil::getLastSocketErrno »
  • PHP Manual
  • EventUtil
  • The abstract constructor

EventUtil::__construct

(PECL event >= 1.2.6-beta)

EventUtil::__construct — The abstract constructor

Descrição

abstract public EventUtil::__construct()

EventUtil is a singleton. Therefore the constructor is abstract, and it is impossible to create objects based on this class.

Parâmetros

Esta função não possui parâmetros.


Returns the most recent socket error number

  • « EventUtil::__construct
  • EventUtil::getLastSocketError »
  • PHP Manual
  • EventUtil
  • Returns the most recent socket error number

EventUtil::getLastSocketErrno

(PECL event >= 1.2.6-beta)

EventUtil::getLastSocketErrno — Returns the most recent socket error number

Descrição

public static EventUtil::getLastSocketErrno( mixed $socket = null ): int

Returns the most recent socket error number( errno ).

Parâmetros

socket

Socket resource, stream or a file descriptor of a socket.

Valor Retornado

Returns the most recent socket error number( errno ).

Veja Também

  • EventUtil::getLastSocketError() - Returns the most recent socket error


Returns the most recent socket error

  • « EventUtil::getLastSocketErrno
  • EventUtil::getSocketFd »
  • PHP Manual
  • EventUtil
  • Returns the most recent socket error

EventUtil::getLastSocketError

(PECL event >= 1.2.6-beta)

EventUtil::getLastSocketError — Returns the most recent socket error

Descrição

public static EventUtil::getLastSocketError( mixed $socket = ?): string

Returns the most recent socket error.

Parâmetros

socket

Socket resource, stream or a file descriptor of a socket.

Valor Retornado

Returns the most recent socket error.

Veja Também

  • EventUtil::getLastSocketErrno() - Returns the most recent socket error number


Returns numeric file descriptor of a socket, or stream

  • « EventUtil::getLastSocketError
  • EventUtil::getSocketName »
  • PHP Manual
  • EventUtil
  • Returns numeric file descriptor of a socket, or stream

EventUtil::getSocketFd

(PECL event >= 1.7.0)

EventUtil::getSocketFd — Returns numeric file descriptor of a socket, or stream

Descrição

public static EventUtil::getSocketFd( mixed $socket ): int

Returns numeric file descriptor of a socket or stream specified by socket argument just like the Event extension does it internally for all methods accepting socket resource or stream.

Parâmetros

socket

Socket resource or stream.

Valor Retornado

Returns numeric file descriptor of a socket, or stream. EventUtil::getSocketFd() returns false in case if it is whether failed to recognize the type of the underlying file, or detected that the file descriptor associated with socket is not valid.


Retreives the current address to which the socket is bound

  • « EventUtil::getSocketFd
  • EventUtil::setSocketOption »
  • PHP Manual
  • EventUtil
  • Retreives the current address to which the socket is bound

EventUtil::getSocketName

(PECL event >= 1.5.0)

EventUtil::getSocketName — Retreives the current address to which the socket is bound

Descrição

public static EventUtil::getSocketName( mixed $socket , string &$address , mixed &$port = ?): bool

Retreives the current address to which the socket is bound.

Parâmetros

socket

Socket resource, stream or a file descriptor of a socket.

address

Output parameter. IP-address, or the UNIX domain socket path depending on the socket address family.

port

Output parameter. The port the socket is bound to. Has no meaning for UNIX domain sockets.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sets socket options

  • « EventUtil::getSocketName
  • EventUtil::sslRandPoll »
  • PHP Manual
  • EventUtil
  • Sets socket options

EventUtil::setSocketOption

(PECL event >= 1.6.0)

EventUtil::setSocketOption — Sets socket options

Descrição

public static EventUtil::setSocketOption(
mixed $socket ,
int $level ,
int $optname ,
mixed $optval
): bool

Sets socket options.

Parâmetros

socket

Socket resource, stream, or numeric file descriptor associated with the socket.

level

One of EventUtil::SOL_* constants. Specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of EventUtil::SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function. See EventUtil constants .

optname

Option name(type). Has the same meaning as corresponding parameter of socket_get_option() function. See EventUtil constants .

optval

Accepts the same values as optval parameter of the socket_get_option() function.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • socket_get_option() - Gets socket options for the socket
  • socket_set_option() - Sets socket options for the socket


Generates entropy by means of OpenSSL's RAND_poll()

  • « EventUtil::setSocketOption
  • EventException »
  • PHP Manual
  • EventUtil
  • Generates entropy by means of OpenSSL's RAND_poll()

EventUtil::sslRandPoll

(PECL event >= 1.2.6-beta)

EventUtil::sslRandPoll — Generates entropy by means of OpenSSL's RAND_poll()

Descrição

public static EventUtil::sslRandPoll(): void

Generates entropy by means of OpenSSL's RAND_poll() (see the system manual).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


The EventException class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

A EventException is thrown when the Event extension methods encounter invalid user input or identify an unrecoverable error. This exception serves as a signal for developers to handle exceptional situations gracefully.

Resumo da classe

class EventException extends RuntimeException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


FTP

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Uso básico
  • Funções da extensão FTP
    • ftp_alloc — Allocates space for a file to be uploaded
    • ftp_append — Append the contents of a file to another file on the FTP server
    • ftp_cdup — Muda para o diretório acima
    • ftp_chdir — Muda o diretório atual em um servidor FTP
    • ftp_chmod — Define as permissões de um arquivo via FTP
    • ftp_close — Fecha uma conexão FTP
    • ftp_connect — Opens an FTP connection
    • ftp_delete — Exclui um arquivo no servidor FTP
    • ftp_exec — Solicita a execução de um comando no servidor FTP
    • ftp_fget — Downloads a file from the FTP server and saves to an open file
    • ftp_fput — Uploads from an open file to the FTP server
    • ftp_get_option — Obtém várias opções em tempo de execução da conexão FTP atual
    • ftp_get — Downloads a file from the FTP server
    • ftp_login — Realiza o login em uma conexão FTP
    • ftp_mdtm — Retorna o horário da última modificação do arquivo informado
    • ftp_mkdir — Cria um diretório
    • ftp_mlsd — Returns a list of files in the given directory
    • ftp_nb_continue — Continua a receber/enviar um arquivo (sem bloquear)
    • ftp_nb_fget — Retrieves a file from the FTP server and writes it to an open file (non-blocking)
    • ftp_nb_fput — Stores a file from an open file to the FTP server (non-blocking)
    • ftp_nb_get — Retrieves a file from the FTP server and writes it to a local file (non-blocking)
    • ftp_nb_put — Stores a file on the FTP server (non-blocking)
    • ftp_nlist — Retorna uma lista de arquivos em um diretório
    • ftp_pasv — Liga ou desliga o modo passivo
    • ftp_put — Uploads a file to the FTP server
    • ftp_pwd — Retorna o nome do diretório atual
    • ftp_quit — Sinônimo de ftp_close
    • ftp_raw — Envia um comando arbritário a um servidor FTP
    • ftp_rawlist — Returns a detailed list of files in the given directory
    • ftp_rename — Renomeia um arquivo ou um diretório no servidor FTP
    • ftp_rmdir — Remove um diretório
    • ftp_set_option — Define opções diversas em tempo de execução
    • ftp_site — Sends a SITE command to the server
    • ftp_size — Retorna o tamanho do arquivo especificado
    • ftp_ssl_connect — Opens a Secure SSL-FTP connection
    • ftp_systype — Retorna o identificador de tipo de sistema do servidor FTP remoto
  • FTP\Connection — The FTP\Connection class


Introdução

As funções nesta extensão implementam o acesso de clientes a servidores de arquivos usando o Protocolo de Transferência de Arquivos (File Transfer Protocol - FTP) como definido em » http://www.faqs.org/rfcs/rfc959. Esta extensão permite acesso detalhado ao servidor FTP provendo um grande controle ao script em execução. Se o objetivo for somente ler ou escrever em arquivo em um servidor FTP, pode-se considerar o uso do empacotador ftp:// com as funções de sistema de arquivo que fornecem uma interface mais simples e intuitiva.


Instalação

Para utilizar as funções FTP com o PHP, deve-se adicionar a opção --enable-ftp na instalação do PHP.

No Windows esta extensão é sempre compialada como uma extensão compartilhada e por isso deve ser habilitada no php.ini.


Tipos de Recurso

Antes do PHP 8.1.0, esta extensão usava um tipo de recurso que era o identificador da conexão FTP, retornado por ftp_connect() ou ftp_ssl_connect().


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

FTP_ASCII (int)

FTP_AUTOSEEK (int)

Consulte ftp_set_option() para informação.

FTP_AUTORESUME (int)

Determina automaticamente a posição de continuação e a posição de início para as requisições GET e PUT (só funciona se FTP_AUTOSEEK estiver habilitado)

FTP_FAILED (int)

A transferência assíncrona falhou

FTP_FINISHED (int)

A transferência assíncrona terminou

FTP_MOREDATA (int)

A transferência assíncrona ainda está ativa

FTP_TEXT (int)

Apelido de FTP_ASCII.

FTP_BINARY (int)

FTP_IMAGE (int)

Apelido de FTP_BINARY.

FTP_TIMEOUT_SEC (int)

Consulte ftp_set_option() para informação.

FTP_USEPASVADDRESS (int)

Consulte ftp_set_option() para informação.


  • « Constantes pré-definidas
  • Uso básico »
  • PHP Manual
  • FTP
  • Exemplos

Exemplos

Índice

  • Uso básico


Uso básico

Exemplo #1 Exemplo da extensão FTP

<?php
// configura uma conexão básica
$ftp = ftp_connect($ftp_server);

// faz login com usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// verifica conexão
if ((!$ftp) || (!$login_result)) {
echo "Conexão FTP falhou!";
echo "Tentativa de conexão a $ftp_server para o usuário $ftp_user_name";
exit;
} else {
echo "Conectado a $ftp_server, para o usuário $ftp_user_name";
}

// envia o arquivo
$upload = ftp_put($ftp, $destination_file, $source_file, FTP_BINARY);

// verifica estado do envio
if (!$upload) {
echo "Envio por FTP falhou!";
} else {
echo "Enviado $source_file a $ftp_server como $destination_file";
}

// fecha a conexão FTP
ftp_close($ftp);
?>


Funções da extensão FTP

Índice

  • ftp_alloc — Allocates space for a file to be uploaded
  • ftp_append — Append the contents of a file to another file on the FTP server
  • ftp_cdup — Muda para o diretório acima
  • ftp_chdir — Muda o diretório atual em um servidor FTP
  • ftp_chmod — Define as permissões de um arquivo via FTP
  • ftp_close — Fecha uma conexão FTP
  • ftp_connect — Opens an FTP connection
  • ftp_delete — Exclui um arquivo no servidor FTP
  • ftp_exec — Solicita a execução de um comando no servidor FTP
  • ftp_fget — Downloads a file from the FTP server and saves to an open file
  • ftp_fput — Uploads from an open file to the FTP server
  • ftp_get_option — Obtém várias opções em tempo de execução da conexão FTP atual
  • ftp_get — Downloads a file from the FTP server
  • ftp_login — Realiza o login em uma conexão FTP
  • ftp_mdtm — Retorna o horário da última modificação do arquivo informado
  • ftp_mkdir — Cria um diretório
  • ftp_mlsd — Returns a list of files in the given directory
  • ftp_nb_continue — Continua a receber/enviar um arquivo (sem bloquear)
  • ftp_nb_fget — Retrieves a file from the FTP server and writes it to an open file (non-blocking)
  • ftp_nb_fput — Stores a file from an open file to the FTP server (non-blocking)
  • ftp_nb_get — Retrieves a file from the FTP server and writes it to a local file (non-blocking)
  • ftp_nb_put — Stores a file on the FTP server (non-blocking)
  • ftp_nlist — Retorna uma lista de arquivos em um diretório
  • ftp_pasv — Liga ou desliga o modo passivo
  • ftp_put — Uploads a file to the FTP server
  • ftp_pwd — Retorna o nome do diretório atual
  • ftp_quit — Sinônimo de ftp_close
  • ftp_raw — Envia um comando arbritário a um servidor FTP
  • ftp_rawlist — Returns a detailed list of files in the given directory
  • ftp_rename — Renomeia um arquivo ou um diretório no servidor FTP
  • ftp_rmdir — Remove um diretório
  • ftp_set_option — Define opções diversas em tempo de execução
  • ftp_site — Sends a SITE command to the server
  • ftp_size — Retorna o tamanho do arquivo especificado
  • ftp_ssl_connect — Opens a Secure SSL-FTP connection
  • ftp_systype — Retorna o identificador de tipo de sistema do servidor FTP remoto


Allocates space for a file to be uploaded

  • « Funções da extensão FTP
  • ftp_append »
  • PHP Manual
  • Funções da extensão FTP
  • Allocates space for a file to be uploaded

ftp_alloc

(PHP 5, PHP 7, PHP 8)

ftp_alloc — Allocates space for a file to be uploaded

Descrição

ftp_alloc(FTP\Connection $ftp, int $size, string &$response = null): bool

Sends an ALLO command to the remote FTP server to allocate space for a file to be uploaded.

Nota:

Many FTP servers do not support this command. These servers may return a failure code (false) indicating the command is not supported or a success code (true) to indicate that pre-allocation is not necessary and the client should continue as though the operation were successful. Because of this, it may be best to reserve this function for servers which explicitly require preallocation.

Parâmetros

ftp

Uma instância de FTP\Connection.

size

The number of bytes to allocate.

response

A textual representation of the servers response will be returned by reference in response if a variable is provided.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 ftp_alloc() example

<?php

$file = "/home/user/myfile";

// connect to the server
$ftp = ftp_connect('ftp.example.com');
$login_result = ftp_login($ftp, 'anonymous', 'user@example.com');

if (ftp_alloc($ftp, filesize($file), $result)) {
echo "Space successfully allocated on server. Sending $file.\n";
ftp_put($ftp, '/incoming/myfile', $file, FTP_BINARY);
} else {
echo "Unable to allocate space on server. Server said: $result\n";
}

ftp_close($ftp);

?>

Veja Também

  • ftp_put() - Uploads a file to the FTP server
  • ftp_fput() - Uploads from an open file to the FTP server


Append the contents of a file to another file on the FTP server

  • « ftp_alloc
  • ftp_cdup »
  • PHP Manual
  • Funções da extensão FTP
  • Append the contents of a file to another file on the FTP server

ftp_append

(PHP 7 >= 7.2.0, PHP 8)

ftp_append — Append the contents of a file to another file on the FTP server

Descrição

ftp_append(
FTP\Connection $ftp,
string $remote_filename,
string $local_filename,
int $mode = FTP_BINARY
): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

ftp

Uma instância de FTP\Connection.

remote_filename

local_filename

mode

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.


Muda para o diretório acima

  • « ftp_append
  • ftp_chdir »
  • PHP Manual
  • Funções da extensão FTP
  • Muda para o diretório acima

ftp_cdup

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_cdup — Muda para o diretório acima

Descrição

ftp_cdup(FTP\Connection $ftp): bool

Muda para o diretório acima.

Parâmetros

ftp

Uma instância de FTP\Connection.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo ftp_cdup()

<?php
// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// muda o diretório atual para html
ftp_chdir($ftp, 'html');

echo ftp_pwd($ftp); // /html

// volta ao diretório acima
if (ftp_cdup($ftp)) {
echo "cdup bem sucedido\n";
} else {
echo "cdup não foi bem sucedido\n";
}

echo ftp_pwd($ftp); // /

ftp_close($ftp);
?>

Veja Também

  • ftp_chdir() - Muda o diretório atual em um servidor FTP
  • ftp_pwd() - Retorna o nome do diretório atual


Muda o diretório atual em um servidor FTP

  • « ftp_cdup
  • ftp_chmod »
  • PHP Manual
  • Funções da extensão FTP
  • Muda o diretório atual em um servidor FTP

ftp_chdir

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_chdir — Muda o diretório atual em um servidor FTP

Descrição

ftp_chdir(FTP\Connection $ftp, string $directory): bool

Muda o diretório atual para o especificado.

Parâmetros

ftp

Uma instância de FTP\Connection.

directory

O diretório de destino.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Se houver falha ao mudar o diretório, o PHP também irá disparar um alerta.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_chdir()

<?php

// estabelece uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com o nome de usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// confere a conexão
if ((!$ftp) || (!$login_result)) {
die("A conexão FTP falhou!");
}

echo "Diretório atual: " . ftp_pwd($ftp) . "\n";

// tenta mudar para algumDiretorio
if (ftp_chdir($ftp, "algumDiretorio")) {
echo "O diretório atual agora é: " . ftp_pwd($ftp) . "\n";
} else {
echo "Não foi possível mudar o diretório\n";
}

// fecha a conexão
ftp_close($ftp);
?>

Veja Também

  • ftp_cdup() - Muda para o diretório acima
  • ftp_pwd() - Retorna o nome do diretório atual


Define as permissões de um arquivo via FTP

  • « ftp_chdir
  • ftp_close »
  • PHP Manual
  • Funções da extensão FTP
  • Define as permissões de um arquivo via FTP

ftp_chmod

(PHP 5, PHP 7, PHP 8)

ftp_chmod — Define as permissões de um arquivo via FTP

Descrição

ftp_chmod(FTP\Connection $ftp, int $permissions, string $filename): int|false

Estabelece as permissões para o arquivo remoto especificado para permissions.

Parâmetros

ftp

Uma instância de FTP\Connection.

permissions

As novas permissões, informadas em valor octal.

filename

O arquivo remoto.

Valor Retornado

Retorna as novas permissões em caso de sucesso ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_chmod()

<?php
$file = 'public_html/index.php';

// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// tenta usar o chmod em $file para 644
if (ftp_chmod($ftp, 0644, $file) !== false) {
echo "Foram mudadas as permissões do arquivo $file para 644\n";
} else {
echo "Não foi possível usar o chmod no arquivo $file\n";
}

// fecha a conexão
ftp_close($ftp);
?>

Veja Também

  • chmod() - Modifica as permissões do arquivo


Fecha uma conexão FTP

  • « ftp_chmod
  • ftp_connect »
  • PHP Manual
  • Funções da extensão FTP
  • Fecha uma conexão FTP

ftp_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftp_close — Fecha uma conexão FTP

Descrição

ftp_close(FTP\Connection $ftp): bool

ftp_close() fecha o identificador de conexão informado e libera o recurso (resource).

Nota:

Após a chamada a esta função, não se pode mais usar a conexão FTP e deve-se criar uma nova com ftp_connect().

Parâmetros

ftp

Uma instância de FTP\Connection.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_close()

<?php

// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// mostra o diretório atual
echo ftp_pwd($ftp); // /

// fecha esta conexão
ftp_close($ftp);
?>

Veja Também

  • ftp_connect() - Opens an FTP connection


Opens an FTP connection

  • « ftp_close
  • ftp_delete »
  • PHP Manual
  • Funções da extensão FTP
  • Opens an FTP connection

ftp_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_connect — Opens an FTP connection

Descrição

ftp_connect(string $hostname, int $port = 21, int $timeout = 90): FTP\Connection|false

ftp_connect() opens an FTP connection to the specified hostname.

Parâmetros

hostname

The FTP server address. This parameter shouldn't have any trailing slashes and shouldn't be prefixed with ftp://.

port

This parameter specifies an alternate port to connect to. If it is omitted or set to zero, then the default FTP port, 21, will be used.

timeout

This parameter specifies the timeout in seconds for all subsequent network operations. If omitted, the default value is 90 seconds. The timeout can be changed and queried at any time with ftp_set_option() and ftp_get_option().

Valor Retornado

Returns an FTP\Connection instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Returns an FTP\Connection instance now; previously, a resource was returned.

Exemplos

Exemplo #1 ftp_connect() example

<?php

$ftp_server = "ftp.example.com";

// set up a connection or die
$ftp = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

?>

Veja Também

  • ftp_close() - Fecha uma conexão FTP
  • ftp_ssl_connect() - Opens a Secure SSL-FTP connection


Exclui um arquivo no servidor FTP

  • « ftp_connect
  • ftp_exec »
  • PHP Manual
  • Funções da extensão FTP
  • Exclui um arquivo no servidor FTP

ftp_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_delete — Exclui um arquivo no servidor FTP

Descrição

ftp_delete(FTP\Connection $ftp, string $filename): bool

ftp_delete() apaga o arquivo especificado por filename do servidor FTP.

Parâmetros

ftp

Uma instância de FTP\Connection.

filename

O arquivo a ser excluído.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_delete()

<?php
$file = 'public_html/old.txt';

// Define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com nome de usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// tenta excluir $file
if (ftp_delete($ftp, $file)) {
echo "O arquivo $file foi excluído\n";
} else {
echo "Não foi possível excluir $file\n";
}

// fecha a conexão
ftp_close($ftp);
?>


Solicita a execução de um comando no servidor FTP

  • « ftp_delete
  • ftp_fget »
  • PHP Manual
  • Funções da extensão FTP
  • Solicita a execução de um comando no servidor FTP

ftp_exec

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

ftp_exec — Solicita a execução de um comando no servidor FTP

Descrição

ftp_exec(FTP\Connection $ftp, string $command): bool

Envia uma solicitação de comando SITE EXEC especificada no parâmetro command para o servidor FTP.

Parâmetros

ftp

Uma instância de FTP\Connection.

command

O comando a executar.

Valor Retornado

Retorna true se o comando for bem sucedido (o servidor enviou o código de resposta: 200); caso contrário retorna false.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_exec()

<?php

// inicialização de variável
$command = 'ls -al >files.txt';

// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// executa o comando
if (ftp_exec($ftp, $command)) {
echo "$command executado com sucesso\n";
} else {
echo "Não foi possível executar $command\n";
}

// fecha a conexão
ftp_close($ftp);

?>

Veja Também

  • ftp_raw() - Envia um comando arbritário a um servidor FTP


Downloads a file from the FTP server and saves to an open file

  • « ftp_exec
  • ftp_fput »
  • PHP Manual
  • Funções da extensão FTP
  • Downloads a file from the FTP server and saves to an open file

ftp_fget

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_fget — Downloads a file from the FTP server and saves to an open file

Descrição

ftp_fget(
FTP\Connection $ftp,
resource $stream,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_fget() retrieves remote_filename from the FTP server, and writes it to the given file pointer.

Parâmetros

ftp

Uma instância de FTP\Connection.

stream

An open file pointer in which we store the data.

remote_filename

The remote file path.

mode

The transfer mode. Must be either FTP_ASCII or FTP_BINARY.

offset

The position in the remote file to start downloading from.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.
7.3.0 | The mode parameter is now optional. Formerly it has been mandatory.

Exemplos

Exemplo #1 ftp_fget() example

<?php

// path to remote file
$remote_file = 'somefile.txt';
$local_file = 'localfile.txt';

// open some file to write to
$handle = fopen($local_file, 'w');

// set up basic connection
$ftp = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// try to download $remote_file and save it to $handle
if (ftp_fget($ftp, $handle, $remote_file, FTP_ASCII, 0)) {
echo "successfully written to $local_file\n";
} else {
echo "There was a problem while downloading $remote_file to $local_file\n";
}

// close the connection and the file handler
ftp_close($ftp);
fclose($handle);
?>

Veja Também

  • ftp_get() - Downloads a file from the FTP server
  • ftp_nb_get() - Retrieves a file from the FTP server and writes it to a local file (non-blocking)
  • ftp_nb_fget() - Retrieves a file from the FTP server and writes it to an open file (non-blocking)


Uploads from an open file to the FTP server

  • « ftp_fget
  • ftp_get_option »
  • PHP Manual
  • Funções da extensão FTP
  • Uploads from an open file to the FTP server

ftp_fput

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_fput — Uploads from an open file to the FTP server

Descrição

ftp_fput(
FTP\Connection $ftp,
string $remote_filename,
resource $stream,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_fput() uploads the data from a file pointer to a remote file on the FTP server.

Parâmetros

ftp

Uma instância de FTP\Connection.

remote_filename

The remote file path.

stream

An open file pointer on the local file. Reading stops at end of file.

mode

The transfer mode. Must be either FTP_ASCII or FTP_BINARY.

offset

The position in the remote file to start uploading to.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.
7.3.0 | The mode parameter is now optional. Formerly it has been mandatory.

Exemplos

Exemplo #1 ftp_fput() example

<?php

// open some file for reading
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// set up basic connection
$ftp = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// try to upload $file
if (ftp_fput($ftp, $file, $fp, FTP_ASCII)) {
echo "Successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}

// close the connection and the file handler
ftp_close($ftp);
fclose($fp);

?>

Veja Também

  • ftp_put() - Uploads a file to the FTP server
  • ftp_nb_fput() - Stores a file from an open file to the FTP server (non-blocking)
  • ftp_nb_put() - Stores a file on the FTP server (non-blocking)


Obtém várias opções em tempo de execução da conexão FTP atual

  • « ftp_fput
  • ftp_get »
  • PHP Manual
  • Funções da extensão FTP
  • Obtém várias opções em tempo de execução da conexão FTP atual

ftp_get_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftp_get_option — Obtém várias opções em tempo de execução da conexão FTP atual

Descrição

ftp_get_option(FTP\Connection $ftp, int $option): int|bool

Esta função retorna o valor da opção solicitada no parâmetro option em relação à conexão FTP especificada.

Parâmetros

ftp

Uma instância de FTP\Connection.

option

Atualmente, as seguintes opções são suportadas:

Opções em tempo de execução do FTP suportadas
FTP_TIMEOUT_SEC | Retorna o limite de tempo usado atualmente para as operações de rede.
FTP_AUTOSEEK | Retorna true se esta opção estiver ativa, false caso contrário.

Valor Retornado

Retorna o valor em caso de sucesso ou false se a opção indicada em option não for suportada. Neste caso, uma mensagem de alerta também é emitida.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_get_option()

<?php
// Obtém o limite de tempo da conexão FTP informada
$timeout = ftp_get_option($ftp, FTP_TIMEOUT_SEC);
?>

Veja Também

  • ftp_set_option() - Define opções diversas em tempo de execução


Downloads a file from the FTP server

  • « ftp_get_option
  • ftp_login »
  • PHP Manual
  • Funções da extensão FTP
  • Downloads a file from the FTP server

ftp_get

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_get — Downloads a file from the FTP server

Descrição

ftp_get(
FTP\Connection $ftp,
string $local_filename,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_get() retrieves a remote file from the FTP server, and saves it into a local file.

Parâmetros

ftp

Uma instância de FTP\Connection.

local_filename

The local file path (will be overwritten if the file already exists).

remote_filename

The remote file path.

mode

The transfer mode. Must be either FTP_ASCII or FTP_BINARY.

offset

The position in the remote file to start downloading from.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.
7.3.0 | The mode parameter is now optional. Formerly it has been mandatory.

Exemplos

Exemplo #1 ftp_get() example

<?php

// define some variables
$local_file = 'local.zip';
$server_file = 'server.zip';

// set up basic connection
$ftp = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// try to download $server_file and save to $local_file
if (ftp_get($ftp, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}

// close the connection
ftp_close($ftp);

?>

Veja Também

  • ftp_pasv() - Liga ou desliga o modo passivo
  • ftp_fget() - Downloads a file from the FTP server and saves to an open file
  • ftp_nb_get() - Retrieves a file from the FTP server and writes it to a local file (non-blocking)
  • ftp_nb_fget() - Retrieves a file from the FTP server and writes it to an open file (non-blocking)


Realiza o login em uma conexão FTP

  • « ftp_get
  • ftp_mdtm »
  • PHP Manual
  • Funções da extensão FTP
  • Realiza o login em uma conexão FTP

ftp_login

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_login — Realiza o login em uma conexão FTP

Descrição

ftp_login(FTP\Connection $ftp, string $username, string $password): bool

Realiza o login na conexão FTP informada.

Parâmetros

ftp

Uma instância de FTP\Connection.

username

O nome de usuário (USER).

password

A senha (PASS).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Se o login falhar, o PHP também emitirá um alerta.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_login()

<?php

$ftp_server = "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// define uma conexão ou sai
$ftp = ftp_connect($ftp_server) or die("Não foi possível conectar a $ftp_server");

// tenta fazer login
if (@ftp_login($ftp, $ftp_user, $ftp_pass)) {
echo "Conectado como $ftp_user@$ftp_server\n";
} else {
echo "Não foi possível conectar como $ftp_user\n";
}

// fecha a conexão
ftp_close($ftp);
?>


Retorna o horário da última modificação do arquivo informado

  • « ftp_login
  • ftp_mkdir »
  • PHP Manual
  • Funções da extensão FTP
  • Retorna o horário da última modificação do arquivo informado

ftp_mdtm

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_mdtm — Retorna o horário da última modificação do arquivo informado

Descrição

ftp_mdtm(FTP\Connection $ftp, string $filename): int

ftp_mdtm() retorna o horário da última modificação de um arquivo remoto.

Nota:

Nem todos os servidores suportam este recurso!

Nota:

ftp_mdtm() não funciona com diretórios.

Parâmetros

ftp

Uma instância de FTP\Connection.

filename

O arquivo do qual será extraído o horário da última modificação.

Valor Retornado

Retorna o horário da última modificação como um timestamp Unix local em caso de sucesso, ou -1 em caso de erro.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_mdtm()

<?php

$file = 'algumArquivo.txt';

// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// obtém o horário da última modificação
$buff = ftp_mdtm($ftp, $file);

if ($buff != -1) {
// algumArquivo.txt foi modificado em: March 26 2003 14:16:41.
echo "$file foi modificado em : " . date("F d Y H:i:s.", $buff);
} else {
echo "Não foi possível obter mdtime";
}

// fecha a conexão
ftp_close($ftp);

?>


Cria um diretório

  • « ftp_mdtm
  • ftp_mlsd »
  • PHP Manual
  • Funções da extensão FTP
  • Cria um diretório

ftp_mkdir

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_mkdir — Cria um diretório

Descrição

ftp_mkdir(FTP\Connection $ftp, string $directory): string|false

Cria o diretório especificado pelo parâmetro directory no servidor FTP.

Parâmetros

ftp

Uma instância de FTP\Connection.

directory

O nome do diretório que será criado.

Valor Retornado

Retorna o nome do diretório recém criado em caso de sucesso ou false em caso de erro.

Erros/Exceções

Emite um erro de nível E_WARNING se o diretório já existir ou se as permissões relevantes impedem a criação do diretório.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_mkdir()

<?php

$dir = 'www';

// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// tenta criar o diretório $dir
if (ftp_mkdir($ftp, $dir)) {
echo "Sucesso na criação de $dir\n";
} else {
echo "Houve um problema ao tentar criar $dir\n";
}

// fecha a conexão
ftp_close($ftp);
?>

Veja Também

  • ftp_rmdir() - Remove um diretório


Returns a list of files in the given directory

  • « ftp_mkdir
  • ftp_nb_continue »
  • PHP Manual
  • Funções da extensão FTP
  • Returns a list of files in the given directory

ftp_mlsd

(PHP 7 >= 7.2.0, PHP 8)

ftp_mlsd — Returns a list of files in the given directory

Descrição

ftp_mlsd(FTP\Connection $ftp, string $directory): array|false

Parâmetros

ftp

Uma instância de FTP\Connection.

directory

The directory to be listed.

Valor Retornado

Returns an array of arrays with file infos from the specified directory on success or false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 ftp_mlsd() example

<?php

// set up basic connection
$ftp = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// get contents of the current directory
$contents = ftp_mlsd($ftp, ".");

// output $contents
var_dump($contents);

?>

O exemplo acima produzirá algo semelhante a:

array(5) {
  [0]=>
  array(8) {
    ["name"]=>
    string(1) "."
    ["modify"]=>
    string(14) "20171212154511"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(4) "cdir"
    ["unique"]=>
    string(11) "811U5740002"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [1]=>
  array(8) {
    ["name"]=>
    string(2) ".."
    ["modify"]=>
    string(14) "20171212154511"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(4) "pdir"
    ["unique"]=>
    string(11) "811U5740002"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [2]=>
  array(8) {
    ["name"]=>
    string(11) "public_html"
    ["modify"]=>
    string(14) "20171211171525"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U5740525"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [3]=>
  array(8) {
    ["name"]=>
    string(10) "public_ftp"
    ["modify"]=>
    string(14) "20171211174536"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U57405EE"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [4]=>
  array(8) {
    ["name"]=>
    string(3) "www"
    ["modify"]=>
    string(14) "www"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U5740780"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
}

Veja Também

  • ftp_rawlist() - Returns a detailed list of files in the given directory
  • ftp_nlist() - Retorna uma lista de arquivos em um diretório


Continua a receber/enviar um arquivo (sem bloquear)

  • « ftp_mlsd
  • ftp_nb_fget »
  • PHP Manual
  • Funções da extensão FTP
  • Continua a receber/enviar um arquivo (sem bloquear)

ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_continue — Continua a receber/enviar um arquivo (sem bloquear)

Descrição

ftp_nb_continue(FTP\Connection $ftp): int

Continua a receber/enviar um arquivo sem bloquear.

Parâmetros

ftp

Uma instância de FTP\Connection.

Valor Retornado

Retorna FTP_FAILED, FTP_FINISHED ou FTP_MOREDATA.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_nb_continue()

<?php

// Inicia o recebimento
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Continua o recebimento...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "Houve um erro no recebimento do arquivo...";
exit(1);
}
?>


Retrieves a file from the FTP server and writes it to an open file (non-blocking)

  • « ftp_nb_continue
  • ftp_nb_fput »
  • PHP Manual
  • Funções da extensão FTP
  • Retrieves a file from the FTP server and writes it to an open file (non-blocking)

ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_fget — Retrieves a file from the FTP server and writes it to an open file (non-blocking)

Descrição

ftp_nb_fget(
FTP\Connection $ftp,
resource $stream,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): int

ftp_nb_fget() retrieves a remote file from the FTP server.

The difference between this function and ftp_fget() is that this function retrieves the file asynchronously, so your program can perform other operations while the file is being downloaded.

Parâmetros

ftp

Uma instância de FTP\Connection.

stream

An open file pointer in which we store the data.

remote_filename

The remote file path.

mode

The transfer mode. Must be either FTP_ASCII or FTP_BINARY.

offset

The position in the remote file to start downloading from.

Valor Retornado

Returns FTP_FAILED or FTP_FINISHED or FTP_MOREDATA.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.
7.3.0 | The mode parameter is now optional. Formerly it has been mandatory.

Exemplos

Exemplo #1 ftp_nb_fget() example

<?php

// open some file for reading
$file = 'index.php';
$fp = fopen($file, 'w');

$ftp = ftp_connect($ftp_server);

$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Initiate the download
$ret = ftp_nb_fget($ftp, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Do whatever you want
echo ".";

// Continue downloading...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "There was an error downloading the file...";
exit(1);
}

// close filepointer
fclose($fp);
?>

Veja Também

  • ftp_nb_get() - Retrieves a file from the FTP server and writes it to a local file (non-blocking)
  • ftp_nb_continue() - Continua a receber/enviar um arquivo (sem bloquear)
  • ftp_fget() - Downloads a file from the FTP server and saves to an open file
  • ftp_get() - Downloads a file from the FTP server


Stores a file from an open file to the FTP server (non-blocking)

  • « ftp_nb_fget
  • ftp_nb_get »
  • PHP Manual
  • Funções da extensão FTP
  • Stores a file from an open file to the FTP server (non-blocking)

ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_fput — Stores a file from an open file to the FTP server (non-blocking)

Descrição

ftp_nb_fput(
FTP\Connection $ftp,
string $remote_filename,
resource $stream,
int $mode = FTP_BINARY,
int $offset = 0
): int

ftp_nb_fput() uploads the data from a file pointer to a remote file on the FTP server.

The difference between this function and the ftp_fput() is that this function uploads the file asynchronously, so your program can perform other operations while the file is being uploaded.

Parâmetros

ftp

Uma instância de FTP\Connection.

remote_filename

The remote file path.

stream

An open file pointer on the local file. Reading stops at end of file.

mode

The transfer mode. Must be either FTP_ASCII or FTP_BINARY.

offset

The position in the remote file to start uploading to.

Valor Retornado

Returns FTP_FAILED or FTP_FINISHED or FTP_MOREDATA.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.
7.3.0 | The mode parameter is now optional. Formerly it has been mandatory.

Exemplos

Exemplo #1 ftp_nb_fput() example

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$ftp = ftp_connect($ftp_server);

$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Initiate the upload
$ret = ftp_nb_fput($ftp, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Do whatever you want
echo ".";

// Continue upload...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "There was an error uploading the file...";
exit(1);
}

fclose($fp);
?>

Veja Também

  • ftp_nb_put() - Stores a file on the FTP server (non-blocking)
  • ftp_nb_continue() - Continua a receber/enviar um arquivo (sem bloquear)
  • ftp_put() - Uploads a file to the FTP server
  • ftp_fput() - Uploads from an open file to the FTP server


Retrieves a file from the FTP server and writes it to a local file (non-blocking)

  • « ftp_nb_fput
  • ftp_nb_put »
  • PHP Manual
  • Funções da extensão FTP
  • Retrieves a file from the FTP server and writes it to a local file (non-blocking)

ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_get — Retrieves a file from the FTP server and writes it to a local file (non-blocking)

Descrição

ftp_nb_get(
FTP\Connection $ftp,
string $local_filename,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): int|false

ftp_nb_get() retrieves a remote file from the FTP server, and saves it into a local file.

The difference between this function and ftp_get() is that this function retrieves the file asynchronously, so your program can perform other operations while the file is being downloaded.

Parâmetros

ftp

Uma instância de FTP\Connection.

local_filename

The local file path (will be overwritten if the file already exists).

remote_filename

The remote file path.

mode

The transfer mode. Must be either FTP_ASCII or FTP_BINARY.

offset

The position in the remote file to start downloading from.

Valor Retornado

Returns FTP_FAILED or FTP_FINISHED or FTP_MOREDATA, or false on failure to open the local file.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.
7.3.0 | The mode parameter is now optional. Formerly it has been mandatory.

Exemplos

Exemplo #1 ftp_nb_get() example

<?php

// Initiate the download
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Do whatever you want
echo ".";

// Continue downloading...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "There was an error downloading the file...";
exit(1);
}
?>

Exemplo #2 Resuming a download with ftp_nb_get()

<?php

// Initiate
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY,
filesize("test"));
// OR: $ret = ftp_nb_get($ftp, "test", "README",
// FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

// Do whatever you want
echo ".";

// Continue downloading...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "There was an error downloading the file...";
exit(1);
}
?>

Exemplo #3 Resuming a download at position 100 to a new file with ftp_nb_get()

<?php

// Disable Autoseek
ftp_set_option($ftp, FTP_AUTOSEEK, false);

// Initiate
$ret = ftp_nb_get($ftp, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

/* ... */

// Continue downloading...
$ret = ftp_nb_continue($ftp);
}
?>

In the example above, newfile is 100 bytes smaller than README on the FTP server because we started reading at offset 100. If we didn't disable FTP_AUTOSEEK, the first 100 bytes of newfile would be '\0'.

Veja Também

  • ftp_nb_fget() - Retrieves a file from the FTP server and writes it to an open file (non-blocking)
  • ftp_nb_continue() - Continua a receber/enviar um arquivo (sem bloquear)
  • ftp_fget() - Downloads a file from the FTP server and saves to an open file
  • ftp_get() - Downloads a file from the FTP server


Stores a file on the FTP server (non-blocking)

  • « ftp_nb_get
  • ftp_nlist »
  • PHP Manual
  • Funções da extensão FTP
  • Stores a file on the FTP server (non-blocking)

ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_put — Stores a file on the FTP server (non-blocking)

Descrição

ftp_nb_put(
FTP\Connection $ftp,
string $remote_filename,
string $local_filename,
int $mode = FTP_BINARY,
int $offset = 0
): int|false

ftp_nb_put() stores a local file on the FTP server.

The difference between this function and the ftp_put() is that this function uploads the file asynchronously, so your program can perform other operations while the file is being uploaded.

Parâmetros

ftp

Uma instância de FTP\Connection.

remote_filename

The remote file path.

local_filename

The local file path.

mode

The transfer mode. Must be either FTP_ASCII or FTP_BINARY.

offset

The position in the remote file to start uploading to.

Valor Retornado

Returns FTP_FAILED or FTP_FINISHED or FTP_MOREDATA, or false on failure to open the local file.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.
7.3.0 | The mode parameter is now optional. Formerly it has been mandatory.

Exemplos

Exemplo #1 ftp_nb_put() example

<?php

// Initiate the Upload
$ret = ftp_nb_put($ftp, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Do whatever you want
echo ".";

// Continue uploading...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "There was an error uploading the file...";
exit(1);
}
?>

Exemplo #2 Resuming an upload with ftp_nb_put()

<?php

// Initiate
$ret = ftp_nb_put($ftp, "test.remote", "test.local",
FTP_BINARY, ftp_size("test.remote"));
// OR: $ret = ftp_nb_put($ftp, "test.remote", "test.local",
// FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

// Do whatever you want
echo ".";

// Continue uploading...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "There was an error uploading the file...";
exit(1);
}
?>

Veja Também

  • ftp_nb_fput() - Stores a file from an open file to the FTP server (non-blocking)
  • ftp_nb_continue() - Continua a receber/enviar um arquivo (sem bloquear)
  • ftp_put() - Uploads a file to the FTP server
  • ftp_fput() - Uploads from an open file to the FTP server


Retorna uma lista de arquivos em um diretório

  • « ftp_nb_put
  • ftp_pasv »
  • PHP Manual
  • Funções da extensão FTP
  • Retorna uma lista de arquivos em um diretório

ftp_nlist

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_nlist — Retorna uma lista de arquivos em um diretório

Descrição

ftp_nlist(FTP\Connection $ftp, string $directory): array|false

Parâmetros

ftp

Uma instância de FTP\Connection.

directory

O diretório a ser listado. Este parâmetro também pode incluir argumentos, ex.: ftp_nlist($ftp, "-la /your/dir");. Note que este parâmetro não é escapado, portanto pode haver alguns problemas com nomes de arquivo contendo espaços e outros caracteres.

Valor Retornado

Retorna um array com os nomes dos arquivos do diretório especificado em caso de sucesso, ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_nlist()

<?php

// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// obtém o conteúdo do diretório atual
$contents = ftp_nlist($ftp, ".");

// mostra $contents
var_dump($contents);

?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  string(11) "public_html"
  [1]=>
  string(10) "public_ftp"
  [2]=>
  string(3) "www"

Veja Também

  • ftp_rawlist() - Returns a detailed list of files in the given directory
  • ftp_mlsd() - Returns a list of files in the given directory


Liga ou desliga o modo passivo

  • « ftp_nlist
  • ftp_put »
  • PHP Manual
  • Funções da extensão FTP
  • Liga ou desliga o modo passivo

ftp_pasv

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_pasv — Liga ou desliga o modo passivo

Descrição

ftp_pasv(FTP\Connection $ftp, bool $enable): bool

ftp_pasv() liga ou desliga o modo passivo. No modo passivo, as conexões de dados são iniciadas pelo cliente, e não pelo servidor. Pode ser necessário se o cliente estiver atrás de um firewall.

Note que ftp_pasv() somente pode ser chamada depois do login ter sido feito com sucesso, caso contrário irá falhar.

Parâmetros

ftp

Uma instância de FTP\Connection.

enable

Se true, o modo passivo será ligado, senão será desligado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_pasv()

<?php
$file = 'algumArquivo.txt';
$remote_file = 'leiame.txt';

// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// liga o modo passivo
ftp_pasv($ftp, true);

// envia um arquivo
if (ftp_put($ftp, $remote_file, $file, FTP_ASCII)) {
echo "Sucesso no envio de $file\n";
} else {
echo "Houve um problema ao enviar $file\n";
}

// fecha a conexão
ftp_close($ftp);
?>


Uploads a file to the FTP server

  • « ftp_pasv
  • ftp_pwd »
  • PHP Manual
  • Funções da extensão FTP
  • Uploads a file to the FTP server

ftp_put

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_put — Uploads a file to the FTP server

Descrição

ftp_put(
FTP\Connection $ftp,
string $remote_filename,
string $local_filename,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_put() stores a local file on the FTP server.

Parâmetros

ftp

Uma instância de FTP\Connection.

remote_filename

The remote file path.

local_filename

The local file path.

mode

The transfer mode. Must be either FTP_ASCII or FTP_BINARY.

offset

The position in the remote file to start uploading to.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.
7.3.0 | The mode parameter is now optional. Formerly it has been mandatory.

Exemplos

Exemplo #1 ftp_put() example

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// set up basic connection
$ftp = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// upload a file
if (ftp_put($ftp, $remote_file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($ftp);
?>

Veja Também

  • ftp_pasv() - Liga ou desliga o modo passivo
  • ftp_fput() - Uploads from an open file to the FTP server
  • ftp_nb_fput() - Stores a file from an open file to the FTP server (non-blocking)
  • ftp_nb_put() - Stores a file on the FTP server (non-blocking)


Retorna o nome do diretório atual

  • « ftp_put
  • ftp_quit »
  • PHP Manual
  • Funções da extensão FTP
  • Retorna o nome do diretório atual

ftp_pwd

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_pwd — Retorna o nome do diretório atual

Descrição

ftp_pwd(FTP\Connection $ftp): string|false

Parâmetros

ftp

Uma instância de FTP\Connection.

Valor Retornado

Retorna o nome do diretório atual ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_pwd()

<?php

// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// muda o diretório para public_html
ftp_chdir($ftp, 'public_html');

// mostra o diretório atual
echo ftp_pwd($ftp); // /public_html

// fecha a conexão
ftp_close($ftp);
?>

Veja Também

  • ftp_chdir() - Muda o diretório atual em um servidor FTP
  • ftp_cdup() - Muda para o diretório acima


Sinônimo de ftp_close

  • « ftp_pwd
  • ftp_raw »
  • PHP Manual
  • Funções da extensão FTP
  • Sinônimo de ftp_close

ftp_quit

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_quit — Sinônimo de ftp_close()

Descrição

Esta função é um apelido para: ftp_close().


Envia um comando arbritário a um servidor FTP

  • « ftp_quit
  • ftp_rawlist »
  • PHP Manual
  • Funções da extensão FTP
  • Envia um comando arbritário a um servidor FTP

ftp_raw

(PHP 5, PHP 7, PHP 8)

ftp_raw — Envia um comando arbritário a um servidor FTP

Descrição

ftp_raw(FTP\Connection $ftp, string $command): ?array

Envia um comando arbritário, especificado no parâmetro command, ao servidor FTP.

Parâmetros

ftp

Uma instância de FTP\Connection.

command

O comando a executar.

Valor Retornado

Retorna a resposta do servidor como um array de strings, ou null em caso de falha. Nenhuma interpretação é realizada na string de resposta, e ftp_raw() não determina se o comando foi bem sucedido .

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Usando ftp_raw() para fazer o login em um servidor FTP manualmente.

<?php
$ftp = ftp_connect("ftp.example.com");

/* Isto é o mesmo que:
ftp_login($ftp, "joeblow", "secret"); */
ftp_raw($ftp, "USER joeblow");
ftp_raw($ftp, "PASS secret");
?>

Veja Também

  • ftp_exec() - Solicita a execução de um comando no servidor FTP


Returns a detailed list of files in the given directory

  • « ftp_raw
  • ftp_rename »
  • PHP Manual
  • Funções da extensão FTP
  • Returns a detailed list of files in the given directory

ftp_rawlist

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_rawlist — Returns a detailed list of files in the given directory

Descrição

ftp_rawlist(FTP\Connection $ftp, string $directory, bool $recursive = false): array|false

ftp_rawlist() executes the FTP LIST command, and returns the result as an array.

Parâmetros

ftp

Uma instância de FTP\Connection.

directory

The directory path. May include arguments for the LIST command.

recursive

If set to true, the issued command will be LIST -R.

Valor Retornado

Returns an array where each element corresponds to one line of text. Returns false when passed directory is invalid.

The output is not parsed in any way. The system type identifier returned by ftp_systype() can be used to determine how the results should be interpreted.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 ftp_rawlist() example

<?php

// set up basic connection
$ftp = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// get the file list for /
$buff = ftp_rawlist($ftp, '/');

// close the connection
ftp_close($ftp);

// output the buffer
var_dump($buff);
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  string(65) "drwxr-x---   3 vincent  vincent      4096 Jul 12 12:16 public_ftp"
  [1]=>
  string(66) "drwxr-x---  15 vincent  vincent      4096 Nov  3 21:31 public_html"
  [2]=>
  string(73) "lrwxrwxrwx   1 vincent  vincent        11 Jul 12 12:16 www -> public_html"
}

Veja Também

  • ftp_nlist() - Retorna uma lista de arquivos em um diretório
  • ftp_mlsd() - Returns a list of files in the given directory


Renomeia um arquivo ou um diretório no servidor FTP

  • « ftp_rawlist
  • ftp_rmdir »
  • PHP Manual
  • Funções da extensão FTP
  • Renomeia um arquivo ou um diretório no servidor FTP

ftp_rename

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_rename — Renomeia um arquivo ou um diretório no servidor FTP

Descrição

ftp_rename(FTP\Connection $ftp, string $from, string $to): bool

ftp_rename() renomeia um arquivo ou diretório no servidor FTP.

Parâmetros

ftp

Uma instância de FTP\Connection.

from

O nome atual do arquivo/diretório.

to

O novo nome para o qual se deseja renomear.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Em caso de falha (como em tentativa de renomear um arquivo que não existe), um erro de nível E_WARNING será emitido.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_rename()

<?php
$old_file = 'algumArquivo.txt.bak';
$new_file = 'algumArquivo.txt';

// Configura uma conexão básica
$ftp = ftp_connect($ftp_server);

// Login com usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Tenta renomear $old_file para $new_file
if (ftp_rename($ftp, $old_file, $new_file)) {
echo "Sucesso ao renomear $old_file para $new_file\n";
} else {
echo "Houve um problema ao renomear $old_file para $new_file\n";
}

// Fecha a conexão
ftp_close($ftp);

?>


Remove um diretório

  • « ftp_rename
  • ftp_set_option »
  • PHP Manual
  • Funções da extensão FTP
  • Remove um diretório

ftp_rmdir

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_rmdir — Remove um diretório

Descrição

ftp_rmdir(FTP\Connection $ftp, string $directory): bool

Remove o directory especificado no servidor FTP.

Parâmetros

ftp

Uma instância de FTP\Connection.

directory

O diretório a excluir. Isto deve set um caminho absoluto ou relativo a um diretório vazio.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo ftp_rmdir()

<?php

$dir = 'www/';

// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// tenta remover o diretório $dir
if (ftp_rmdir($ftp, $dir)) {
echo "Sucesso ao remover $dir\n";
} else {
echo "Hou um problema ao remover $dir\n";
}

ftp_close($ftp);

?>

Veja Também

  • ftp_mkdir() - Cria um diretório


Define opções diversas em tempo de execução

  • « ftp_rmdir
  • ftp_site »
  • PHP Manual
  • Funções da extensão FTP
  • Define opções diversas em tempo de execução

ftp_set_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftp_set_option — Define opções diversas em tempo de execução

Descrição

ftp_set_option(FTP\Connection $ftp, int $option, int|bool $value): bool

Esta função controla várias opções em tempo de execução para a conexão FTP especificada.

Parâmetros

ftp

Uma instância de FTP\Connection.

option

Atualmente, as seguintes opções são suportadas:

Opção em tempo de execução do FTP suportada
FTP_TIMEOUT_SEC | Muda o limite de tempo em segundos usado para todas as operações de rede relacionadas. value deve ser um inteiro maior que 0. O limite de tempo padrão é de 90 segundos.
FTP_AUTOSEEK | Quando ativado, requisições GET ou PUT com um parâmetro resumepos ou startpos irão primeiro procurar a posição especificada no arquivo. Isto está ativado por padrâo.
FTP_USEPASVADDRESS | Quando desabilitado, PHP irá ignorar o endereço IP retornado pelo servidor FTP em resposta do comando PASV, e no lugar usará o endereço IP que foi fornecido em ftp_connect(). value deve ser um booleano.

value

Este parâmetro depende de qual opção foi escolhida em option para ser alterada.

Valor Retornado

Retorna true se a opção pôde ser definida; false se não. Uma mesangem de alerta será emitida se a opção em option não for suportada ou se o parâmetro value informado não corresponder ao valor esperado para a opção informada em option.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_set_option()

<?php
// Define o limite de tempo da rede a 10 segundos
ftp_set_option($ftp, FTP_TIMEOUT_SEC, 10);
?>

Veja Também

  • ftp_get_option() - Obtém várias opções em tempo de execução da conexão FTP atual


Sends a SITE command to the server

  • « ftp_set_option
  • ftp_size »
  • PHP Manual
  • Funções da extensão FTP
  • Sends a SITE command to the server

ftp_site

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_site — Sends a SITE command to the server

Descrição

ftp_site(FTP\Connection $ftp, string $command): bool

ftp_site() sends the given SITE command to the FTP server.

SITE commands are not standardized, and vary from server to server. They are useful for handling such things as file permissions and group membership.

Parâmetros

ftp

Uma instância de FTP\Connection.

command

The SITE command. Note that this parameter isn't escaped so there may be some issues with filenames containing spaces and other characters.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Sending a SITE command to an ftp server

<?php
// Connect to FTP server
$ftp = ftp_connect('ftp.example.com');
if (!$ftp) die('Unable to connect to ftp.example.com');

// Login as "user" with password "pass"
if (!ftp_login($ftp, 'user', 'pass')) die('Error logging into ftp.example.com');

// Issue: "SITE CHMOD 0600 /home/user/privatefile" command to ftp server
if (ftp_site($ftp, 'CHMOD 0600 /home/user/privatefile')) {
echo "Command executed successfully.\n";
} else {
die('Command failed.');
}
?>

Veja Também

  • ftp_raw() - Envia um comando arbritário a um servidor FTP


Retorna o tamanho do arquivo especificado

  • « ftp_site
  • ftp_ssl_connect »
  • PHP Manual
  • Funções da extensão FTP
  • Retorna o tamanho do arquivo especificado

ftp_size

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_size — Retorna o tamanho do arquivo especificado

Descrição

ftp_size(FTP\Connection $ftp, string $filename): int

ftp_size() retorna o tamanho do arquivo especificado, em bytes.

Nota:

Nem todos os servidores suportam este recurso.

Parâmetros

ftp

Uma instância de FTP\Connection.

filename

O arquivo remoto.

Valor Retornado

Retorna o tamanho do arquivo em caso de sucesso ou -1 em caso de erro.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_size()

<?php

$file = 'algumArquivo.txt';

// define uma conexão básica
$ftp = ftp_connect($ftp_server);

// login com usuário e senha
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// obtém o tamanho de $file
$res = ftp_size($ftp, $file);

if ($res != -1) {
echo "Tamanho de $file é $res bytes";
} else {
echo "Não foi possível obter o tamanho";
}

// fecha a conexão
ftp_close($ftp);

?>

Veja Também

  • ftp_rawlist() - Returns a detailed list of files in the given directory


Opens a Secure SSL-FTP connection

  • « ftp_size
  • ftp_systype »
  • PHP Manual
  • Funções da extensão FTP
  • Opens a Secure SSL-FTP connection

ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_ssl_connect — Opens a Secure SSL-FTP connection

Descrição

ftp_ssl_connect(string $hostname, int $port = 21, int $timeout = 90): FTP\Connection|false

ftp_ssl_connect() opens an explicit SSL-FTP connection to the specified hostname. That implies that ftp_ssl_connect() will succeed even if the server is not configured for SSL-FTP, or its certificate is invalid. Only when ftp_login() is called, the client will send the appropriate AUTH FTP command, so ftp_login() will fail in the mentioned cases.

Nota: Why this function may not exist

Before PHP 7.0.0, ftp_ssl_connect() was only available if both the ftp module and the OpenSSL support have been built statically into php; this means that on Windows this function had been undefined in the official PHP builds. To have this function available on Windows, it had been necessary to compile own PHP binaries.

Nota:

ftp_ssl_connect() is not intended for use with sFTP. To use sFTP with PHP, please see ssh2_sftp().

Parâmetros

hostname

The FTP server address. This parameter shouldn't have any trailing slashes and shouldn't be prefixed with ftp://.

port

This parameter specifies an alternate port to connect to. If it is omitted or set to zero, then the default FTP port, 21, will be used.

timeout

This parameter specifies the timeout for all subsequent network operations. If omitted, the default value is 90 seconds. The timeout can be changed and queried at any time with ftp_set_option() and ftp_get_option().

Valor Retornado

Returns an FTP\Connection instance on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | Returns an FTP\Connection instance now; previously, a resource was returned.

Exemplos

Exemplo #1 ftp_ssl_connect() example

<?php

// set up basic ssl connection
$ftp = ftp_ssl_connect($ftp_server);

// login with username and password
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

if (!$login_result) {
// PHP will already have raised an E_WARNING level message in this case
die("can't login");
}

echo ftp_pwd($ftp);

// close the ssl connection
ftp_close($ftp);
?>

Veja Também

  • ftp_connect() - Opens an FTP connection


Retorna o identificador de tipo de sistema do servidor FTP remoto

  • « ftp_ssl_connect
  • FTP\Connection »
  • PHP Manual
  • Funções da extensão FTP
  • Retorna o identificador de tipo de sistema do servidor FTP remoto

ftp_systype

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_systype — Retorna o identificador de tipo de sistema do servidor FTP remoto

Descrição

ftp_systype(FTP\Connection $ftp): string|false

Retorna o identificador de tipo de sistema do servidor FTP remoto.

Parâmetros

ftp

Uma instância de FTP\Connection.

Valor Retornado

Retorna o tipo do sistema remoto ou false em caso de erro.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ftp agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de ftp_systype()

<?php

// conexão ftp
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');

// obtém o tipo do sistema
if ($type = ftp_systype($ftp)) {
echo "Example.com é do tipo $type\n";
} else {
echo "Não foi possível obter o tipo do sistema";
}

?>

O exemplo acima produzirá algo semelhante a:

Example.com é do tipo UNIX


The FTP\Connection class

(PHP 8 >= 8.1.0)

Introdução

A fully opaque class which replaces a ftp resource as of PHP 8.1.0.

Resumo da classe

final class FTP\Connection {
}


Gearman

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Basic usage
    • Basic Gearman client and worker, background
    • Basic Gearman client and worker, submitting tasks
  • GearmanClient — The GearmanClient class
    • GearmanClient::addOptions — Add client options
    • GearmanClient::addServer — Add a job server to the client
    • GearmanClient::addServers — Add a list of job servers to the client
    • GearmanClient::addTask — Add a task to be run in parallel
    • GearmanClient::addTaskBackground — Add a background task to be run in parallel
    • GearmanClient::addTaskHigh — Add a high priority task to run in parallel
    • GearmanClient::addTaskHighBackground — Add a high priority background task to be run in parallel
    • GearmanClient::addTaskLow — Add a low priority task to run in parallel
    • GearmanClient::addTaskLowBackground — Add a low priority background task to be run in parallel
    • GearmanClient::addTaskStatus — Add a task to get status
    • GearmanClient::clearCallbacks — Clear all task callback functions
    • GearmanClient::clone — Create a copy of a GearmanClient object
    • GearmanClient::__construct — Create a GearmanClient instance
    • GearmanClient::context — Get the application context
    • GearmanClient::data — Get the application data (deprecated)
    • GearmanClient::do — Run a single task and return a result [deprecated]
    • GearmanClient::doBackground — Run a task in the background
    • GearmanClient::doHigh — Run a single high priority task
    • GearmanClient::doHighBackground — Run a high priority task in the background
    • GearmanClient::doJobHandle — Get the job handle for the running task
    • GearmanClient::doLow — Run a single low priority task
    • GearmanClient::doLowBackground — Run a low priority task in the background
    • GearmanClient::doNormal — Run a single task and return a result
    • GearmanClient::doStatus — Get the status for the running task
    • GearmanClient::echo — Send data to all job servers to see if they echo it back [deprecated]
    • GearmanClient::error — Returns an error string for the last error encountered
    • GearmanClient::getErrno — Get an errno value
    • GearmanClient::jobStatus — Get the status of a background job
    • GearmanClient::ping — Send data to all job servers to see if they echo it back
    • GearmanClient::removeOptions — Remove client options
    • GearmanClient::returnCode — Get the last Gearman return code
    • GearmanClient::runTasks — Run a list of tasks in parallel
    • GearmanClient::setClientCallback — Callback function when there is a data packet for a task (deprecated)
    • GearmanClient::setCompleteCallback — Set a function to be called on task completion
    • GearmanClient::setContext — Set application context
    • GearmanClient::setCreatedCallback — Set a callback for when a task is queued
    • GearmanClient::setData — Set application data (deprecated)
    • GearmanClient::setDataCallback — Callback function when there is a data packet for a task
    • GearmanClient::setExceptionCallback — Set a callback for worker exceptions
    • GearmanClient::setFailCallback — Set callback for job failure
    • GearmanClient::setOptions — Set client options
    • GearmanClient::setStatusCallback — Set a callback for collecting task status
    • GearmanClient::setTimeout — Set socket I/O activity timeout
    • GearmanClient::setWarningCallback — Set a callback for worker warnings
    • GearmanClient::setWorkloadCallback — Set a callback for accepting incremental data updates
    • GearmanClient::timeout — Get current socket I/O activity timeout value
    • GearmanClient::wait — Wait for I/O activity on all connections in a client
  • GearmanJob — The GearmanJob class
    • GearmanJob::complete — Send the result and complete status (deprecated)
    • GearmanJob::__construct — Create a GearmanJob instance
    • GearmanJob::data — Send data for a running job (deprecated)
    • GearmanJob::exception — Send exception for running job (deprecated)
    • GearmanJob::fail — Send fail status (deprecated)
    • GearmanJob::functionName — Get function name
    • GearmanJob::handle — Get the job handle
    • GearmanJob::returnCode — Get last return code
    • GearmanJob::sendComplete — Send the result and complete status
    • GearmanJob::sendData — Send data for a running job
    • GearmanJob::sendException — Send exception for running job (exception)
    • GearmanJob::sendFail — Send fail status
    • GearmanJob::sendStatus — Send status
    • GearmanJob::sendWarning — Send a warning
    • GearmanJob::setReturn — Set a return value
    • GearmanJob::status — Send status (deprecated)
    • GearmanJob::unique — Get the unique identifier
    • GearmanJob::warning — Send a warning (deprecated)
    • GearmanJob::workload — Get workload
    • GearmanJob::workloadSize — Get size of work load
  • GearmanTask — The GearmanTask class
    • GearmanTask::__construct — Create a GearmanTask instance
    • GearmanTask::create — Create a task (deprecated)
    • GearmanTask::data — Get data returned for a task
    • GearmanTask::dataSize — Get the size of returned data
    • GearmanTask::function — Get associated function name (deprecated)
    • GearmanTask::functionName — Get associated function name
    • GearmanTask::isKnown — Determine if task is known
    • GearmanTask::isRunning — Test whether the task is currently running
    • GearmanTask::jobHandle — Get the job handle
    • GearmanTask::recvData — Read work or result data into a buffer for a task
    • GearmanTask::returnCode — Get the last return code
    • GearmanTask::sendData — Send data for a task (deprecated)
    • GearmanTask::sendWorkload — Send data for a task
    • GearmanTask::taskDenominator — Get completion percentage denominator
    • GearmanTask::taskNumerator — Get completion percentage numerator
    • GearmanTask::unique — Get the unique identifier for a task
    • GearmanTask::uuid — Get the unique identifier for a task (deprecated)
  • GearmanWorker — The GearmanWorker class
    • GearmanWorker::addFunction — Register and add callback function
    • GearmanWorker::addOptions — Add worker options
    • GearmanWorker::addServer — Add a job server
    • GearmanWorker::addServers — Add job servers
    • GearmanWorker::clone — Create a copy of the worker
    • GearmanWorker::__construct — Create a GearmanWorker instance
    • GearmanWorker::echo — Test job server response
    • GearmanWorker::error — Get the last error encountered
    • GearmanWorker::getErrno — Get errno
    • GearmanWorker::options — Get worker options
    • GearmanWorker::register — Register a function with the job server
    • GearmanWorker::removeOptions — Remove worker options
    • GearmanWorker::returnCode — Get last Gearman return code
    • GearmanWorker::setId — Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers
    • GearmanWorker::setOptions — Set worker options
    • GearmanWorker::setTimeout — Set socket I/O activity timeout
    • GearmanWorker::timeout — Get socket I/O activity timeout
    • GearmanWorker::unregister — Unregister a function name with the job servers
    • GearmanWorker::unregisterAll — Unregister all function names with the job servers
    • GearmanWorker::wait — Wait for activity from one of the job servers
    • GearmanWorker::work — Wait for and perform jobs
  • GearmanException — The GearmanException class


Introdução

» Gearman is a generic application framework for farming out work to multiple machines or processes. It allows applications to complete tasks in parallel, to load balance processing, and to call functions between languages. The framework can be used in a variety of applications, from high-availability web sites to the transport of database replication events.

This extension provides classes for writing Gearman clients and workers.


Dependências

This extension requires the » libgearman, » libevent and » uuid libraries, and a running Gearman server.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/gearman


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Return values. Always check GearmanClient::error() or GearmanWorker() for a string error, as it may contain more details:

GEARMAN_SUCCESS (int)
Whatever action was taken was successful.
GEARMAN_IO_WAIT (int)
When in non-blocking mode, an event is hit that would have blocked.
GEARMAN_ERRNO (int)
A system error. Check GearmanClient::errno() or GearmanWorker::errno() for the system error code that was returned.
GEARMAN_NO_ACTIVE_FDS (int)
GearmanClient::wait() or GearmanWorker() was called with no connections.
GEARMAN_UNEXPECTED_PACKET (int)
Indicates something going very wrong in gearmand. Applies only to GearmanWorker.
GEARMAN_GETADDRINFO (int)
DNS resolution failed (invalid host, port, etc).
GEARMAN_NO_SERVERS (int)
Did not call GearmanClient::addServer() before submitting jobs or tasks.
GEARMAN_LOST_CONNECTION (int)
Lost a connection during a request.
GEARMAN_MEMORY_ALLOCATION_FAILURE (int)
Memory allocation failed (ran out of memory).
GEARMAN_SERVER_ERROR (int)
Something went wrong in the Gearman server and it could not handle the request gracefully.
GEARMAN_WORK_DATA (int)
Notice return code obtained with GearmanClient::returnCode() when using GearmanClient::do(). Sent to update the client with data from a running job. A worker uses this when it needs to send updates, send partial results, or flush data during long running jobs.
GEARMAN_WORK_WARNING (int)
Notice return code obtained with GearmanClient::returnCode() when using GearmanClient::do(). Updates the client with a warning. The behavior is just like GEARMAN_WORK_DATA, but should be treated as a warning instead of normal response data.
GEARMAN_WORK_STATUS (int)
Notice return code obtained with GearmanClient::returnCode() when using GearmanClient::do(). Sent to update the status of a long running job. Use GearmanClient::doStatus() to obtain the percentage complete of the task.
GEARMAN_WORK_EXCEPTION (int)
Notice return code obtained with GearmanClient::returnCode() when using GearmanClient::do(). Indicates that a job failed with a given exception.
GEARMAN_WORK_FAIL (int)
Notice return code obtained with GearmanClient::returnCode() when using GearmanClient::do(). Indicates that the job failed.
GEARMAN_COULD_NOT_CONNECT (int)
Failed to connect to servers.
GEARMAN_INVALID_FUNCTION_NAME (int)
Trying to register a function name of NULL or using the callback interface without specifying callbacks.
GEARMAN_INVALID_WORKER_FUNCTION (int)
Trying to register a function with a NULL callback function.
GEARMAN_NO_REGISTERED_FUNCTIONS (int)
When a worker gets a job for a function it did not register.
GEARMAN_NO_JOBS (int)
For a non-blocking worker, when GearmanWorker::work() does not have any active jobs.
GEARMAN_ECHO_DATA_CORRUPTION (int)
After GearmanClient::echo() or GearmanWorker::echo() the data returned doesn't match the data sent.
GEARMAN_NEED_WORKLOAD_FN (int)
When the client opted to stream the workload of a task, but did not specify a workload callback function.
GEARMAN_PAUSE (int)
For the non-blocking client task interface, can be returned from the task callback to "pause" the call and return from GearmanClient::runTasks(). Call GearmanClient::runTasks() again to continue.
GEARMAN_UNKNOWN_STATE (int)
Internal client/worker state error.
GEARMAN_SEND_BUFFER_TOO_SMALL (int)
Internal error: trying to flush more data in one atomic chunk than is possible due to hard-coded buffer sizes.
GEARMAN_TIMEOUT (int)
Hit the timeout limit set by the client/worker.

GearmanClient options:

GEARMAN_CLIENT_GENERATE_UNIQUE (int)
Generate a unique id (UUID) for each task.
GEARMAN_CLIENT_NON_BLOCKING (int)
Run the cient in a non-blocking mode.
GEARMAN_CLIENT_UNBUFFERED_RESULT (int)
Allow the client to read data in chunks rather than have the library buffer the entire data result and pass that back.
GEARMAN_CLIENT_FREE_TASKS (int)
Automatically free task objects once they are complete. This is the default setting in this extension to prevent memory leaks.

GearmanWorker options:

GEARMAN_WORKER_NON_BLOCKING (int)
Run the worker in non-blocking mode.
GEARMAN_WORKER_GRAB_UNIQ (int)
Return the client assigned unique ID in addition to the job handle.

Base Gearman configuration:

GEARMAN_DEFAULT_TCP_HOST (string)
GEARMAN_DEFAULT_TCP_PORT (int)
GEARMAN_DEFAULT_SOCKET_TIMEOUT (int)
GEARMAN_DEFAULT_SOCKET_SEND_SIZE (int)
GEARMAN_DEFAULT_SOCKET_RECV_SIZE (int)
GEARMAN_MAX_ERROR_SIZE (int)
GEARMAN_PACKET_HEADER_SIZE (int)
GEARMAN_JOB_HANDLE_SIZE (int)
GEARMAN_OPTION_SIZE (int)
GEARMAN_UNIQUE_SIZE (int)
GEARMAN_MAX_COMMAND_ARGS (int)
GEARMAN_ARGS_BUFFER_SIZE (int)
GEARMAN_SEND_BUFFER_SIZE (int)
GEARMAN_RECV_BUFFER_SIZE (int)
GEARMAN_WORKER_WAIT_TIMEOUT (int)


Exemplos

Índice

  • Basic usage
  • Basic Gearman client and worker, background
  • Basic Gearman client and worker, submitting tasks


Basic usage

Exemplo #1 Basic Gearman client and worker

This example shows a very simple client and worker. The client sends a string to the job server, and the worker reverses the string and sends it back. The job is performed synchronously.

<?php

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

# Send reverse job
do
{
$result = $gmclient->doNormal("reverse", "Hello!");

# Check for various return packets and errors.
switch($gmclient->returnCode())
{
case GEARMAN_WORK_DATA:
echo "Data: $result\n";
break;
case GEARMAN_WORK_STATUS:
list($numerator, $denominator)= $gmclient->doStatus();
echo "Status: $numerator/$denominator complete\n";
break;
case GEARMAN_WORK_FAIL:
echo "Failed\n";
exit;
case GEARMAN_SUCCESS:
echo "Success: $result\n";
break;
default:
echo "RET: " . $gmclient->returnCode() . "\n";
exit;
}
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

?>
<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}

function reverse_fn($job)
{
echo "Received job: " . $job->handle() . "\n";

$workload = $job->workload();
$workload_size = $job->workloadSize();

echo "Workload: $workload ($workload_size)\n";

# This status loop is not needed, just showing how it works
for ($x= 0; $x < $workload_size; $x++)
{
echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
$job->sendStatus($x, $workload_size);
sleep(1);
}

$result= strrev($workload);
echo "Result: $result\n";

# Return what we want to send back to the client.
return $result;
}

# A much simpler and less verbose version of the above function would be:
function reverse_fn_fast($job)
{
return strrev($job->workload());
}

?>

O exemplo acima produzirá algo semelhante a:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:36
Workload: Hello! (6)
Sending status: 1/6 complete
Sending status: 2/6 complete
Sending status: 3/6 complete
Sending status: 4/6 complete
Sending status: 5/6 complete
Sending status: 6/6 complete
Result: !olleH

% php reverse_client.php
Starting
Sending job
Status: 1/6 complete
Status: 2/6 complete
Status: 3/6 complete
Status: 4/6 complete
Status: 5/6 complete
Status: 6/6 complete
Success: !olleH


Basic Gearman client and worker, background

Exemplo #1 Basic Gearman client and worker, background

This example shows a very simple client and worker. The client sends a string to the job server as a background job, and the worker reverses the string. Note that since the work is performed asynchronously, the client does not wait for the job to complete and exits (and hence the client never receives the results).

<?php

# create our client object
$gmclient= new GearmanClient();

# add the default server (localhost)
$gmclient->addServer();

# run reverse client in the background
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
echo "bad return code\n";
exit;
}

echo "done!\n";

?>
<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}

function reverse_fn($job)
{
echo "Received job: " . $job->handle() . "\n";

$workload = $job->workload();
$workload_size = $job->workloadSize();

echo "Workload: $workload ($workload_size)\n";

# This status loop is not needed, just showing how it works
for ($x= 0; $x < $workload_size; $x++)
{
echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
$job->sendStatus($x, $workload_size);
sleep(1);
}

$result= strrev($workload);
echo "Result: $result\n";

# Return what we want to send back to the client.
return $result;
}

# A much simpler and less verbose version of the above function would be:
function reverse_fn_fast($job)
{
return strrev($job->workload());
}

?>

O exemplo acima produzirá algo semelhante a:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:41
Workload: this is a test (14)
1/14 complete
2/14 complete
3/14 complete
4/14 complete
5/14 complete
6/14 complete
7/14 complete
8/14 complete
9/14 complete
10/14 complete
11/14 complete
12/14 complete
13/14 complete
14/14 complete
Result: tset a si siht

% php reverse_client_bg.php
done!


Basic Gearman client and worker, submitting tasks

Exemplo #1 Basic Gearman client and worker, submitting tasks

In this example, the basic reverse client extended to run two tasks in parallel. The reverse worker is unchanged except to add sending of data back during processing.

<?php

# create the gearman client
$gmc= new GearmanClient();

# add the default server (localhost)
$gmc->addServer();

# register some callbacks
$gmc->setCreatedCallback("reverse_created");
$gmc->setDataCallback("reverse_data");
$gmc->setStatusCallback("reverse_status");
$gmc->setCompleteCallback("reverse_complete");
$gmc->setFailCallback("reverse_fail");

# set some arbitrary application data
$data['foo'] = 'bar';

# add two tasks
$task= $gmc->addTask("reverse", "foo", $data);
$task2= $gmc->addTaskLow("reverse", "bar", NULL);

# run the tasks in parallel (assuming multiple workers)
if (! $gmc->runTasks())
{
echo "ERROR " . $gmc->error() . "\n";
exit;
}

echo "DONE\n";

function reverse_created($task)
{
echo "CREATED: " . $task->jobHandle() . "\n";
}

function reverse_status($task)
{
echo "STATUS: " . $task->jobHandle() . " - " . $task->taskNumerator() .
"/" . $task->taskDenominator() . "\n";
}

function reverse_complete($task)
{
echo "COMPLETE: " . $task->jobHandle() . ", " . $task->data() . "\n";
}

function reverse_fail($task)
{
echo "FAILED: " . $task->jobHandle() . "\n";
}

function reverse_data($task)
{
echo "DATA: " . $task->data() . "\n";
}

?>
<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}

function reverse_fn($job)
{
echo "Received job: " . $job->handle() . "\n";

$workload = $job->workload();
$workload_size = $job->workloadSize();

echo "Workload: $workload ($workload_size)\n";

# This status loop is not needed, just showing how it works
for ($x= 0; $x < $workload_size; $x++)
{
echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
$job->sendStatus($x+1, $workload_size);
$job->sendData(substr($workload, $x, 1));
sleep(1);
}

$result= strrev($workload);
echo "Result: $result\n";

# Return what we want to send back to the client.
return $result;
}

# A much simpler and less verbose version of the above function would be:
function reverse_fn_fast($job)
{
return strrev($job->workload());
}

?>

O exemplo acima produzirá algo semelhante a:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:45
Workload: foo (3)
1/3 complete
2/3 complete
3/3 complete
Result: oof
Received job: H:foo.local:44
Workload: bar (3)
1/3 complete
2/3 complete
3/3 complete
Result: rab

% php reverse_client_task.php
CREATED: H:foo.local:44
CREATED: H:foo.local:45
STATUS: H:foo.local:45 - 1/3
DATA: f
STATUS: H:foo.local:45 - 2/3
DATA: o
STATUS: H:foo.local:45 - 3/3
DATA: o
COMPLETE: H:foo.local:45, oof
STATUS: H:foo.local:44 - 1/3
DATA: b
STATUS: H:foo.local:44 - 2/3
DATA: a
STATUS: H:foo.local:44 - 3/3
DATA: r
COMPLETE: H:foo.local:44, rab
DONE


The GearmanClient class

(PECL gearman >= 0.5.0)

Introdução

Represents a class for connecting to a Gearman job server and making requests to perform some function on provided data. The function performed must be one registered by a Gearman worker and the data passed is opaque to the job server.

Resumo da classe

class GearmanClient {
/* Métodos */
public __construct()
public addOptions(int $option): bool
public addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool
public addServers(string $servers = null, bool $setupExceptionHandler = true): bool
public addTask(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskHigh(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskHighBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskLow(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskLowBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskStatus(string $job_handle, mixed $context = null): GearmanTask|false
public clearCallbacks(): bool
public context(): string
public doBackground(string $function, string $workload, ?string $unique = null): string
public doHigh(string $function, string $workload, ?string $unique = null): string
public doHighBackground(string $function, string $workload, ?string $unique = null): string
public doJobHandle(): string
public doLow(string $function, string $workload, ?string $unique = null): string
public doLowBackground(string $function, string $workload, ?string $unique = null): string
public doNormal(string $function, string $workload, ?string $unique = null): string
public doStatus(): array
public error(): string|false
public getErrno(): int
public jobStatus(string $job_handle): array
public ping(string $workload): bool
public removeOptions(int $option): bool
public returnCode(): int
public runTasks(): bool
public setCompleteCallback(callable $function): bool
public setContext(string $data): bool
public setCreatedCallback(callable $function): bool
public setDataCallback(callable $function): bool
public setExceptionCallback(callable $function): bool
public setFailCallback(callable $function): bool
public setOptions(int $option): bool
public setStatusCallback(callable $function): bool
public setTimeout(int $timeout): bool
public setWarningCallback(callable $function): bool
public setWorkloadCallback(callable $function): bool
public timeout(): int
public wait(): bool
}

Índice

  • GearmanClient::addOptions — Add client options
  • GearmanClient::addServer — Add a job server to the client
  • GearmanClient::addServers — Add a list of job servers to the client
  • GearmanClient::addTask — Add a task to be run in parallel
  • GearmanClient::addTaskBackground — Add a background task to be run in parallel
  • GearmanClient::addTaskHigh — Add a high priority task to run in parallel
  • GearmanClient::addTaskHighBackground — Add a high priority background task to be run in parallel
  • GearmanClient::addTaskLow — Add a low priority task to run in parallel
  • GearmanClient::addTaskLowBackground — Add a low priority background task to be run in parallel
  • GearmanClient::addTaskStatus — Add a task to get status
  • GearmanClient::clearCallbacks — Clear all task callback functions
  • GearmanClient::clone — Create a copy of a GearmanClient object
  • GearmanClient::__construct — Create a GearmanClient instance
  • GearmanClient::context — Get the application context
  • GearmanClient::data — Get the application data (deprecated)
  • GearmanClient::do — Run a single task and return a result [deprecated]
  • GearmanClient::doBackground — Run a task in the background
  • GearmanClient::doHigh — Run a single high priority task
  • GearmanClient::doHighBackground — Run a high priority task in the background
  • GearmanClient::doJobHandle — Get the job handle for the running task
  • GearmanClient::doLow — Run a single low priority task
  • GearmanClient::doLowBackground — Run a low priority task in the background
  • GearmanClient::doNormal — Run a single task and return a result
  • GearmanClient::doStatus — Get the status for the running task
  • GearmanClient::echo — Send data to all job servers to see if they echo it back [deprecated]
  • GearmanClient::error — Returns an error string for the last error encountered
  • GearmanClient::getErrno — Get an errno value
  • GearmanClient::jobStatus — Get the status of a background job
  • GearmanClient::ping — Send data to all job servers to see if they echo it back
  • GearmanClient::removeOptions — Remove client options
  • GearmanClient::returnCode — Get the last Gearman return code
  • GearmanClient::runTasks — Run a list of tasks in parallel
  • GearmanClient::setClientCallback — Callback function when there is a data packet for a task (deprecated)
  • GearmanClient::setCompleteCallback — Set a function to be called on task completion
  • GearmanClient::setContext — Set application context
  • GearmanClient::setCreatedCallback — Set a callback for when a task is queued
  • GearmanClient::setData — Set application data (deprecated)
  • GearmanClient::setDataCallback — Callback function when there is a data packet for a task
  • GearmanClient::setExceptionCallback — Set a callback for worker exceptions
  • GearmanClient::setFailCallback — Set callback for job failure
  • GearmanClient::setOptions — Set client options
  • GearmanClient::setStatusCallback — Set a callback for collecting task status
  • GearmanClient::setTimeout — Set socket I/O activity timeout
  • GearmanClient::setWarningCallback — Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback — Set a callback for accepting incremental data updates
  • GearmanClient::timeout — Get current socket I/O activity timeout value
  • GearmanClient::wait — Wait for I/O activity on all connections in a client


Add client options

  • « GearmanClient
  • GearmanClient::addServer »
  • PHP Manual
  • GearmanClient
  • Add client options

GearmanClient::addOptions

(PECL gearman >= 0.6.0)

GearmanClient::addOptions — Add client options

Descrição

public GearmanClient::addOptions(int $option): bool

Adds one or more options to those already set.

Parâmetros

option

The options to add. One of the following constants, or a combination of them using the bitwise OR operator (|): GEARMAN_CLIENT_GENERATE_UNIQUE, GEARMAN_CLIENT_NON_BLOCKING, GEARMAN_CLIENT_UNBUFFERED_RESULT or GEARMAN_CLIENT_FREE_TASKS.

Valor Retornado

Always returns true.


Add a job server to the client

  • « GearmanClient::addOptions
  • GearmanClient::addServers »
  • PHP Manual
  • GearmanClient
  • Add a job server to the client

GearmanClient::addServer

(PECL gearman >= 0.5.0)

GearmanClient::addServer — Add a job server to the client

Descrição

public GearmanClient::addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool

Adds a job server to a list of servers that can be used to run a task. No socket I/O happens here; the server is simply added to the list.

Parâmetros

host

O nome do servidor de trabalho.

port

A porta do servidor de trabalho.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Adding two job servers

<?php

# Create our client object.
$gmclient= new GearmanClient();

# Add two job servers, the first on the default 4730 port
$gmclient->addServer("10.0.0.1");
$gmclient->addServer("10.0.0.2", 7003);

?>

Veja Também

  • GearmanClient::addServers() - Add a list of job servers to the client


Add a list of job servers to the client

  • « GearmanClient::addServer
  • GearmanClient::addTask »
  • PHP Manual
  • GearmanClient
  • Add a list of job servers to the client

GearmanClient::addServers

(PECL gearman >= 0.5.0)

GearmanClient::addServers — Add a list of job servers to the client

Descrição

public GearmanClient::addServers(string $servers = null, bool $setupExceptionHandler = true): bool

Adds a list of job servers that can be used to run a task. No socket I/O happens here; the servers are simply added to the full list of servers.

Parâmetros

servers

A comma-separated list of servers, each server specified in the format 'host:port'.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Add two job servers

<?php

# Create our client object.
$gmclient= new GearmanClient();

# Add multiple job servers, the first on the default 4730 port
$gmclient->addServers("10.0.0.1,10.0.0.2:7003");

?>

Veja Também

  • GearmanClient::addServer() - Add a job server to the client


Add a task to be run in parallel

  • « GearmanClient::addServers
  • GearmanClient::addTaskBackground »
  • PHP Manual
  • GearmanClient
  • Add a task to be run in parallel

GearmanClient::addTask

(PECL gearman >= 0.5.0)

GearmanClient::addTask — Add a task to be run in parallel

Descrição

public GearmanClient::addTask(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Adds a task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work. Note that enough workers need to be available for the tasks to all run in parallel.

Parâmetros

function_name

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

context

Contexto da aplicação para associar a uma tarefa

unique_key

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

A GearmanTask object or false if the task could not be added.

Exemplos

Exemplo #1 Basic submission of two tasks

<?php

# Create our gearman client
$gmclient= new GearmanClient();

# add the default job server
$gmclient->addServer();

# set a function to be called when the work is complete
$gmclient->setCompleteCallback("complete");

# add a task to perform the "reverse" function on the string "Hello World!"
$gmclient->addTask("reverse", "Hello World!", null, "1");

# add another task to perform the "reverse" function on the string "!dlroW olleH"
$gmclient->addTask("reverse", "!dlroW olleH", null, "2");

# run the tasks
$gmclient->runTasks();

function complete($task)
{
print "COMPLETE: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

O exemplo acima produzirá algo semelhante a:

COMPLETE: 2, Hello World!
COMPLETE: 1, !dlroW olleH

Exemplo #2 Basic submission of two tasks with passing application context

<?php

$client = new GearmanClient();
$client->addServer();

# set a function to be called when the work is complete
$client->setCompleteCallback("reverse_complete");

# Add some tasks for a placeholder of where to put the results
$results = array();
$client->addTask("reverse", "Hello World!", $results, "t1");
$client->addTask("reverse", "!dlroW olleH", $results, "t2");

$client->runTasks();

# The results should now be filled in from the callbacks
foreach ($results as $id => $result)
echo $id . ": " . $result['handle'] . ", " . $result['data'] . "\n";

function reverse_complete($task, $results)
{
$results[$task->unique()] = array("handle"=>$task->jobHandle(), "data"=>$task->data());
}

?>

O exemplo acima produzirá algo semelhante a:

t2: H.foo:21, Hello World!
t1: H:foo:22, !dlroW olleH

Veja Também

  • GearmanClient::addTaskHigh() - Add a high priority task to run in parallel
  • GearmanClient::addTaskLow() - Add a low priority task to run in parallel
  • GearmanClient::addTaskBackground() - Add a background task to be run in parallel
  • GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel
  • GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a background task to be run in parallel

  • « GearmanClient::addTask
  • GearmanClient::addTaskHigh »
  • PHP Manual
  • GearmanClient
  • Add a background task to be run in parallel

GearmanClient::addTaskBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskBackground — Add a background task to be run in parallel

Descrição

public GearmanClient::addTaskBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Adds a background task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work.

Parâmetros

function_name

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

context

Contexto da aplicação para associar a uma tarefa

unique_key

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

A GearmanTask object or false if the task could not be added.

Exemplos

Exemplo #1 Two tasks, one background and one not

This example illustrates the difference between running a background task and a normal task. The client adds two tasks to execute the same function, but one is added with addTaskBackground(). A callback is set so that progress of the job can be tracked. A simple worker with an artificial delay reports on the job progress and the client picks this up through the callback. Two workers are run for this example. Note that the background task does not show in the client output.

<?php

# The client script

# create our gearman client
$gmc= new GearmanClient();

# add the default job server
$gmc->addServer();

# set a couple of callbacks so we can track progress
$gmc->setCompleteCallback("reverse_complete");
$gmc->setStatusCallback("reverse_status");

# add a task for the "reverse" function
$task= $gmc->addTask("reverse", "Hello World!", null, "1");

# add another task, but this one to run in the background
$task= $gmc->addTaskBackground("reverse", "!dlroW olleH", null, "2");

if (! $gmc->runTasks())
{
echo "ERROR " . $gmc->error() . "\n";
exit;
}

echo "DONE\n";

function reverse_status($task)
{
echo "STATUS: " . $task->unique() . ", " . $task->jobHandle() . " - " . $task->taskNumerator() .
"/" . $task->taskDenominator() . "\n";
}

function reverse_complete($task)
{
echo "COMPLETE: " . $task->unique() . ", " . $task->data() . "\n";
}

?>
<?php

# The worker script

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}

function reverse_fn($job)
{
echo "Received job: " . $job->handle() . "\n";

$workload = $job->workload();
$workload_size = $job->workloadSize();

echo "Workload: $workload ($workload_size)\n";

# This status loop is not needed, just showing how it works
for ($x= 0; $x < $workload_size; $x++)
{
echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
$job->sendStatus($x+1, $workload_size);
$job->sendData(substr($workload, $x, 1));
sleep(1);
}

$result= strrev($workload);
echo "Result: $result\n";

# Return what we want to send back to the client.
return $result;
}

?>

Worker output for two workers running:

Received job: H:foo.local:65
Workload: !dlroW olleH (12)
1/12 complete
Received job: H:foo.local:66
Workload: Hello World! (12)
Sending status: 1/12 complete
Sending status: 2/12 complete
Sending status: 2/12 complete
Sending status: 3/12 complete
Sending status: 3/12 complete
Sending status: 4/12 complete
Sending status: 4/12 complete
Sending status: 5/12 complete
Sending status: 5/12 complete
Sending status: 6/12 complete
Sending status: 6/12 complete
Sending status: 7/12 complete
Sending status: 7/12 complete
Sending status: 8/12 complete
Sending status: 8/12 complete
Sending status: 9/12 complete
Sending status: 9/12 complete
Sending status: 10/12 complete
Sending status: 10/12 complete
Sending status: 11/12 complete
Sending status: 11/12 complete
Sending status: 12/12 complete
Sending status: 12/12 complete
Result: !dlroW olleH
Result: Hello World!

Client output:

STATUS: 1, H:foo.local:66 - 1/12
STATUS: 1, H:foo.local:66 - 2/12
STATUS: 1, H:foo.local:66 - 3/12
STATUS: 1, H:foo.local:66 - 4/12
STATUS: 1, H:foo.local:66 - 5/12
STATUS: 1, H:foo.local:66 - 6/12
STATUS: 1, H:foo.local:66 - 7/12
STATUS: 1, H:foo.local:66 - 8/12
STATUS: 1, H:foo.local:66 - 9/12
STATUS: 1, H:foo.local:66 - 10/12
STATUS: 1, H:foo.local:66 - 11/12
STATUS: 1, H:foo.local:66 - 12/12
COMPLETE: 1, !dlroW olleH
DONE

Veja Também

  • GearmanClient::addTask() - Add a task to be run in parallel
  • GearmanClient::addTaskHigh() - Add a high priority task to run in parallel
  • GearmanClient::addTaskLow() - Add a low priority task to run in parallel
  • GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel
  • GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a high priority task to run in parallel

  • « GearmanClient::addTaskBackground
  • GearmanClient::addTaskHighBackground »
  • PHP Manual
  • GearmanClient
  • Add a high priority task to run in parallel

GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHigh — Add a high priority task to run in parallel

Descrição

public GearmanClient::addTaskHigh(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Adds a high priority task to be run in parallel with other tasks. Call this method for all the high priority tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work. Tasks with a high priority will be selected from the queue before those of normal or low priority.

Parâmetros

function_name

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

context

Contexto da aplicação para associar a uma tarefa

unique_key

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

A GearmanTask object or false if the task could not be added.

Exemplos

Exemplo #1 A high priority task along with two normal tasks

A high priority task is included among two other tasks. A single worker is available, so that tasks are run one at a time, with the high priority task run first.

<?php

# create the gearman client
$gmc= new GearmanClient();

# add the default job server
$gmc->addServer();

# set the callback for when the job is complete
$gmc->setCompleteCallback("reverse_complete");

# add tasks, one of which is high priority
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskHigh("reverse", "!dlroW olleH", null, "2");
$task= $gmc->addTask("reverse", "Hello World!", null, "3");

if (! $gmc->runTasks())
{
echo "ERROR " . $gmc->error() . "\n";
exit;
}
echo "DONE\n";

function reverse_complete($task)
{
echo "COMPLETE: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

O exemplo acima produzirá algo semelhante a:

COMPLETE: 2, Hello World!
COMPLETE: 3, !dlroW olleH
COMPLETE: 1, !dlroW olleH
DONE

Veja Também

  • GearmanClient::addTask() - Add a task to be run in parallel
  • GearmanClient::addTaskLow() - Add a low priority task to run in parallel
  • GearmanClient::addTaskBackground() - Add a background task to be run in parallel
  • GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel
  • GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a high priority background task to be run in parallel

  • « GearmanClient::addTaskHigh
  • GearmanClient::addTaskLow »
  • PHP Manual
  • GearmanClient
  • Add a high priority background task to be run in parallel

GearmanClient::addTaskHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHighBackground — Add a high priority background task to be run in parallel

Descrição

public GearmanClient::addTaskHighBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Adds a high priority background task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work. Tasks with a high priority will be selected from the queue before those of normal or low priority.

Parâmetros

function_name

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

context

Contexto da aplicação para associar a uma tarefa

unique_key

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

A GearmanTask object or false if the task could not be added.

Veja Também

  • GearmanClient::addTask() - Add a task to be run in parallel
  • GearmanClient::addTaskHigh() - Add a high priority task to run in parallel
  • GearmanClient::addTaskLow() - Add a low priority task to run in parallel
  • GearmanClient::addTaskBackground() - Add a background task to be run in parallel
  • GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a low priority task to run in parallel

  • « GearmanClient::addTaskHighBackground
  • GearmanClient::addTaskLowBackground »
  • PHP Manual
  • GearmanClient
  • Add a low priority task to run in parallel

GearmanClient::addTaskLow

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLow — Add a low priority task to run in parallel

Descrição

public GearmanClient::addTaskLow(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Adds a low priority background task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work. Tasks with a low priority will be selected from the queue after those of normal or low priority.

Parâmetros

function_name

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

context

Contexto da aplicação para associar a uma tarefa

unique_key

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

A GearmanTask object or false if the task could not be added.

Exemplos

Exemplo #1 A low priority task along with two normal tasks

A low priority task is included among two other tasks. A single worker is available, so that tasks are run one at a time, with the low priority task run last.

<?php

# create the gearman client
$gmc= new GearmanClient();

# add the default job server
$gmc->addServer();

# set the callback for when the job is complete
$gmc->setCompleteCallback("reverse_complete");

# add tasks, one of which is low priority
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskLow("reverse", "!dlroW olleH", null, "2");
$task= $gmc->addTask("reverse", "Hello World!", null, "3");

if (! $gmc->runTasks())
{
echo "ERROR " . $gmc->error() . "\n";
exit;
}
echo "DONE\n";

function reverse_complete($task)
{
echo "COMPLETE: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

O exemplo acima produzirá algo semelhante a:

COMPLETE: 3, !dlroW olleH
COMPLETE: 1, !dlroW olleH
COMPLETE: 2, Hello World!
DONE

Veja Também

  • GearmanClient::addTask() - Add a task to be run in parallel
  • GearmanClient::addTaskHigh() - Add a high priority task to run in parallel
  • GearmanClient::addTaskBackground() - Add a background task to be run in parallel
  • GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel
  • GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a low priority background task to be run in parallel

  • « GearmanClient::addTaskLow
  • GearmanClient::addTaskStatus »
  • PHP Manual
  • GearmanClient
  • Add a low priority background task to be run in parallel

GearmanClient::addTaskLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLowBackground — Add a low priority background task to be run in parallel

Descrição

public GearmanClient::addTaskLowBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Adds a low priority background task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work. Tasks with a low priority will be selected from the queue after those of normal or high priority.

Parâmetros

function_name

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

context

Contexto da aplicação para associar a uma tarefa

unique_key

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

A GearmanTask object or false if the task could not be added.

Veja Também

  • GearmanClient::addTask() - Add a task to be run in parallel
  • GearmanClient::addTaskHigh() - Add a high priority task to run in parallel
  • GearmanClient::addTaskLow() - Add a low priority task to run in parallel
  • GearmanClient::addTaskBackground() - Add a background task to be run in parallel
  • GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a task to get status

  • « GearmanClient::addTaskLowBackground
  • GearmanClient::clearCallbacks »
  • PHP Manual
  • GearmanClient
  • Add a task to get status

GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatus — Add a task to get status

Descrição

public GearmanClient::addTaskStatus(string $job_handle, mixed $context = null): GearmanTask|false

Used to request status information from the Gearman server, which will call the specified status callback (set using GearmanClient::setStatusCallback()).

Parâmetros

job_handle

The job handle for the task to get status for

context

Data to be passed to the status callback, generally a reference to an array or object

Valor Retornado

A GearmanTask object or false on failure.

Exemplos

Exemplo #1 Monitor completion of multiple background tasks

An artificial delay is introduced in the worker in this example to simulate a long running process. There is only one worker running for this example.

<?php

/* create our object */
$gmclient= new GearmanClient();

/* add the default server */
$gmclient->addServer();

/* start some background jobs and save the handles */
$handles = array();
$handles[0] = $gmclient->doBackground("reverse", "Hello World!");
$handles[1] = $gmclient->doBackground("reverse", "!dlroW olleH");

$gmclient->setStatusCallback("reverse_status");

/* Poll the server to see when those background jobs finish; */
/* a better method would be to use event callbacks */
do
{
/* Use the context variable to track how many tasks have completed */
$done = 0;
$gmclient->addTaskStatus($handles[0], &$done);
$gmclient->addTaskStatus($handles[1], &$done);
$gmclient->runTasks();
echo "Done: $done\n";
sleep(1);
}
while ($done != 2);

function reverse_status($task, $done)
{
if (!$task->isKnown())
$done++;
}

?>

O exemplo acima produzirá algo semelhante a:

Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 2

Veja Também

  • GearmanClient::setStatusCallback() - Set a callback for collecting task status


Clear all task callback functions

  • « GearmanClient::addTaskStatus
  • GearmanClient::clone »
  • PHP Manual
  • GearmanClient
  • Clear all task callback functions

GearmanClient::clearCallbacks

(PECL gearman >= 0.5.0)

GearmanClient::clearCallbacks — Clear all task callback functions

Descrição

public GearmanClient::clearCallbacks(): bool

Clears all the task callback functions that have previously been set.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Always returns true.

Veja Também

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Create a copy of a GearmanClient object

  • « GearmanClient::clearCallbacks
  • GearmanClient::__construct »
  • PHP Manual
  • GearmanClient
  • Create a copy of a GearmanClient object

GearmanClient::clone

(PECL gearman >= 0.5.0)

GearmanClient::clone — Create a copy of a GearmanClient object

Descrição

public GearmanClient::clone(): GearmanClient

Creates a copy of a GearmanClient object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A GearmanClient on success, false on failure.


Create a GearmanClient instance

  • « GearmanClient::clone
  • GearmanClient::context »
  • PHP Manual
  • GearmanClient
  • Create a GearmanClient instance

GearmanClient::__construct

(PECL gearman >= 0.5.0)

GearmanClient::__construct — Create a GearmanClient instance

Descrição

public GearmanClient::__construct()

Creates a GearmanClient instance representing a client that connects to the job server and submits tasks to complete.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A GearmanClient object.

Veja Também

  • GearmanClient::clone() - Create a copy of a GearmanClient object


Get the application context

  • « GearmanClient::__construct
  • GearmanClient::data »
  • PHP Manual
  • GearmanClient
  • Get the application context

GearmanClient::context

(PECL gearman >= 0.6.0)

GearmanClient::context — Get the application context

Descrição

public GearmanClient::context(): string

Get the application context previously set with GearmanClient::setContext().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The same context data structure set with GearmanClient::setContext()

Veja Também

  • GearmanClient::setContext() - Set application context


Get the application data (deprecated)

  • « GearmanClient::context
  • GearmanClient::do »
  • PHP Manual
  • GearmanClient
  • Get the application data (deprecated)

GearmanClient::data

(PECL gearman <= 0.5.0)

GearmanClient::data — Get the application data (deprecated)

Descrição

public GearmanClient::data(): string

Get the application data previously set with GearmanClient::setData().

Nota:

This method was replaced by GearmanClient::setContext() in the 0.6.0 release of the Gearman extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The same string data set with GearmanClient::setData()

Veja Também

  • GearmanClient::setData() - Set application data (deprecated)


Run a single task and return a result [deprecated]

  • « GearmanClient::data
  • GearmanClient::doBackground »
  • PHP Manual
  • GearmanClient
  • Run a single task and return a result [deprecated]

GearmanClient::do

(PECL gearman >= 0.5.0)

GearmanClient::do — Run a single task and return a result [deprecated]

Descrição

public GearmanClient::do(string $function_name, string $workload, string $unique = ?): string

The GearmanClient::do() method is deprecated as of pecl/gearman 1.0.0. Use GearmanClient::doNormal().

Parâmetros

function_name

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

unique

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

A string representing the results of running a task.

Exemplos

Exemplo #1 Simple job submission with immediate return

<?php

# Client code

echo "Starting\n";

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

$result = $gmclient->doNormal("reverse", "Hello!");

echo "Success: $result\n";

?>
<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}

function reverse_fn($job)
{
return strrev($job->workload());
}

?>

O exemplo acima produzirá algo semelhante a:

Starting
Sending job
Success: !olleH

Exemplo #2 Submitting a job and retrieving incremental status

A job is submitted and the script loops to retrieve status information. The worker has an artificial delay which results in a long running job and sends status and data as processing occurs. Each subsequent call to GearmanClient::do() produces status information on the running job.

<?php

# Client code

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

# Send reverse job
do
{
$result = $gmclient->doNormal("reverse", "Hello!");
# Check for various return packets and errors.

switch($gmclient->returnCode())
{
case GEARMAN_WORK_DATA:
echo "Data: $result\n";
break;
case GEARMAN_WORK_STATUS:
list($numerator, $denominator)= $gmclient->doStatus();
echo "Status: $numerator/$denominator complete\n";
break;
case GEARMAN_WORK_FAIL:
echo "Failed\n";
exit;
case GEARMAN_SUCCESS:
break;
default:
echo "RET: " . $gmclient->returnCode() . "\n";
echo "Error: " . $gmclient->error() . "\n";
echo "Errno: " . $gmclient->getErrno() . "\n";
exit;
}
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Success: $result\n";

?>
<?php

# Worker code

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}

function reverse_fn($job)
{
echo "Received job: " . $job->handle() . "\n";

$workload = $job->workload();
$workload_size = $job->workloadSize();

echo "Workload: $workload ($workload_size)\n";

# This status loop is not needed, just showing how it works
for ($x= 0; $x < $workload_size; $x++)
{
echo "Sending status: " + $x + 1 . "/$workload_size complete\n";
$job->sendStatus($x+1, $workload_size);
$job->sendData(substr($workload, $x, 1));
sleep(1);
}

$result= strrev($workload);
echo "Result: $result\n";

# Return what we want to send back to the client.
return $result;
}

?>

O exemplo acima produzirá algo semelhante a:

Worker output:

Starting
Waiting for job...
Received job: H:foo.local:106
Workload: Hello! (6)
1/6 complete
2/6 complete
3/6 complete
4/6 complete
5/6 complete
6/6 complete
Result: !olleH

Client output:

Starting
Sending job
Status: 1/6 complete
Data: H
Status: 2/6 complete
Data: e
Status: 3/6 complete
Data: l
Status: 4/6 complete
Data: l
Status: 5/6 complete
Data: o
Status: 6/6 complete
Data: !
Success: !olleH

Veja Também

  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doHighBackground() - Run a high priority task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Run a task in the background

  • « GearmanClient::do
  • GearmanClient::doHigh »
  • PHP Manual
  • GearmanClient
  • Run a task in the background

GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient::doBackground — Run a task in the background

Descrição

public GearmanClient::doBackground(string $function, string $workload, ?string $unique = null): string

Runs a task in the background, returning a job handle which can be used to get the status of the running task.

Parâmetros

function

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

unique

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

The job handle for the submitted task.

Exemplos

Exemplo #1 Submit and monitor a background job

The worker in this example has an artificial delay introduced to mimic a long running job. The client script periodically checks the status of the running job.

<?php

/* create our object */
$gmclient= new GearmanClient();

/* add the default server */
$gmclient->addServer();

/* run reverse client */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
echo "bad return code\n";
exit;
}

$done = false;
do
{
sleep(3);
$stat = $gmclient->jobStatus($job_handle);
if (!$stat[0]) // the job is known so it is not done
$done = true;
echo "Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denominator: " . $stat[3] . "\n";
}
while(!$done);

echo "done!\n";

?>

O exemplo acima produzirá algo semelhante a:

Running: true, numerator: 3, denominator: 14
Running: true, numerator: 6, denominator: 14
Running: true, numerator: 9, denominator: 14
Running: true, numerator: 12, denominator: 14
Running: false, numerator: 0, denominator: 0
done!

Veja Também

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doHighBackground() - Run a high priority task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Run a single high priority task

  • « GearmanClient::doBackground
  • GearmanClient::doHighBackground »
  • PHP Manual
  • GearmanClient
  • Run a single high priority task

GearmanClient::doHigh

(PECL gearman >= 0.5.0)

GearmanClient::doHigh — Run a single high priority task

Descrição

public GearmanClient::doHigh(string $function, string $workload, ?string $unique = null): string

Runs a single high priority task and returns a string representation of the result. It is up to the GearmanClient and GearmanWorker to agree on the format of the result. High priority tasks will get precedence over normal and low priority tasks in the job queue.

Parâmetros

function

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

unique

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

A string representing the results of running a task.

Veja Também

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doHighBackground() - Run a high priority task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Run a high priority task in the background

  • « GearmanClient::doHigh
  • GearmanClient::doJobHandle »
  • PHP Manual
  • GearmanClient
  • Run a high priority task in the background

GearmanClient::doHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::doHighBackground — Run a high priority task in the background

Descrição

public GearmanClient::doHighBackground(string $function, string $workload, ?string $unique = null): string

Runs a high priority task in the background, returning a job handle which can be used to get the status of the running task. High priority tasks take precedence over normal and low priority tasks in the job queue.

Parâmetros

function

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

unique

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

The job handle for the submitted task.

Veja Também

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Get the job handle for the running task

  • « GearmanClient::doHighBackground
  • GearmanClient::doLow »
  • PHP Manual
  • GearmanClient
  • Get the job handle for the running task

GearmanClient::doJobHandle

(PECL gearman >= 0.5.0)

GearmanClient::doJobHandle — Get the job handle for the running task

Descrição

public GearmanClient::doJobHandle(): string

Gets that job handle for a running task. This should be used between repeated GearmanClient::doNormal() calls. The job handle can then be used to get information on the task.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The job handle for the running task.

Veja Também

  • GearmanClient::jobStatus() - Get the status of a background job


Run a single low priority task

  • « GearmanClient::doJobHandle
  • GearmanClient::doLowBackground »
  • PHP Manual
  • GearmanClient
  • Run a single low priority task

GearmanClient::doLow

(PECL gearman >= 0.5.0)

GearmanClient::doLow — Run a single low priority task

Descrição

public GearmanClient::doLow(string $function, string $workload, ?string $unique = null): string

Runs a single low priority task and returns a string representation of the result. It is up to the GearmanClient and GearmanWorker to agree on the format of the result. Normal and high priority tasks will get precedence over low priority tasks in the job queue.

Parâmetros

function

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

unique

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

A string representing the results of running a task.

Veja Também

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doHighBackground() - Run a high priority task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Run a low priority task in the background

  • « GearmanClient::doLow
  • GearmanClient::doNormal »
  • PHP Manual
  • GearmanClient
  • Run a low priority task in the background

GearmanClient::doLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::doLowBackground — Run a low priority task in the background

Descrição

public GearmanClient::doLowBackground(string $function, string $workload, ?string $unique = null): string

Runs a low priority task in the background, returning a job handle which can be used to get the status of the running task. Normal and high priority tasks take precedence over low priority tasks in the job queue.

Parâmetros

function

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

unique

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

The job handle for the submitted task.

Veja Também

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doHighBackground() - Run a high priority task in the background


Run a single task and return a result

  • « GearmanClient::doLowBackground
  • GearmanClient::doStatus »
  • PHP Manual
  • GearmanClient
  • Run a single task and return a result

GearmanClient::doNormal

(Não há informação de versão disponível, talvez apenas no Git)

GearmanClient::doNormal — Run a single task and return a result

Descrição

public GearmanClient::doNormal(string $function, string $workload, ?string $unique = null): string

Runs a single task and returns a string representation of the result. It is up to the GearmanClient and GearmanWorker to agree on the format of the result.

Parâmetros

function

Uma função registrada que o trabalhador deve executar

workload

Dados serializados a serem processados

unique

Um identificador único usado para identificar uma tarefa específica

Valor Retornado

A string representing the results of running a task.

Exemplos

Exemplo #1 Simple job submission with immediate return

<?php

?>
<?php

# Client code

echo "Starting\n";

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

$result = $gmclient->doNormal("reverse", "Hello!");

echo "Success: $result\n";

?>
<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}

function reverse_fn($job)
{
return strrev($job->workload());
}

?>

O exemplo acima produzirá algo semelhante a:

Starting
Sending job
Success: !olleH

Exemplo #2 Submitting a job and retrieving incremental status

A job is submitted and the script loops to retrieve status information. The worker has an artificial delay which results in a long running job and sends status and data as processing occurs. Each subsequent call to GearmanClient::doNormal() produces status information on the running job.

<?php

# Client code

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

# Send reverse job
do
{
$result = $gmclient->doNormal("reverse", "Hello!");
# Check for various return packets and errors.

switch($gmclient->returnCode())
{
case GEARMAN_WORK_DATA:
echo "Data: $result\n";
break;
case GEARMAN_WORK_STATUS:
list($numerator, $denominator)= $gmclient->doStatus();
echo "Status: $numerator/$denominator complete\n";
break;
case GEARMAN_WORK_FAIL:
echo "Failed\n";
exit;
case GEARMAN_SUCCESS:
break;
default:
echo "RET: " . $gmclient->returnCode() . "\n";
echo "Error: " . $gmclient->error() . "\n";
echo "Errno: " . $gmclient->getErrno() . "\n";
exit;
}
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Success: $result\n";

?>
<?php

# Worker code

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}

function reverse_fn($job)
{
echo "Received job: " . $job->handle() . "\n";

$workload = $job->workload();
$workload_size = $job->workloadSize();

echo "Workload: $workload ($workload_size)\n";

# This status loop is not needed, just showing how it works
for ($x= 0; $x < $workload_size; $x++)
{
echo "Sending status: " + $x + 1 . "/$workload_size complete\n";
$job->sendStatus($x+1, $workload_size);
$job->sendData(substr($workload, $x, 1));
sleep(1);
}

$result= strrev($workload);
echo "Result: $result\n";

# Return what we want to send back to the client.
return $result;
}

?>

O exemplo acima produzirá algo semelhante a:

Worker output:

Starting
Waiting for job...
Received job: H:foo.local:106
Workload: Hello! (6)
1/6 complete
2/6 complete
3/6 complete
4/6 complete
5/6 complete
6/6 complete
Result: !olleH

Client output:

Starting
Sending job
Status: 1/6 complete
Data: H
Status: 2/6 complete
Data: e
Status: 3/6 complete
Data: l
Status: 4/6 complete
Data: l
Status: 5/6 complete
Data: o
Status: 6/6 complete
Data: !
Success: !olleH

Veja Também

  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doHighBackground() - Run a high priority task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Get the status for the running task

  • « GearmanClient::doNormal
  • GearmanClient::echo »
  • PHP Manual
  • GearmanClient
  • Get the status for the running task

GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient::doStatus — Get the status for the running task

Descrição

public GearmanClient::doStatus(): array

Returns the status for the running task. This should be used between repeated GearmanClient::doNormal() calls.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array representing the percentage completion given as a fraction, with the first element the numerator and the second element the denomintor.

Exemplos

Exemplo #1 Get the status of a long running job

The worker in this example has an artificial delay added during processing of the string to be reversed. After each delay it calls GearmanJob::status() which the client then picks up.

<?php

echo "Starting\n";

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

# Send reverse job
do
{
$result = $gmclient->doNormal("reverse", "Hello!");

# Check for various return packets and errors.
switch($gmclient->returnCode())
{
case GEARMAN_WORK_DATA:
break;
case GEARMAN_WORK_STATUS:
# get the current job status
list($numerator, $denominator)= $gmclient->doStatus();
echo "Status: $numerator/$denominator complete\n";
break;
case GEARMAN_WORK_FAIL:
echo "Failed\n";
exit;
case GEARMAN_SUCCESS:
break;
default:
echo "RET: " . $gmclient->returnCode() . "\n";
exit;
}
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Success: $result\n";

?>

O exemplo acima produzirá algo semelhante a:

Starting
Sending job
Status: 1/6 complete
Status: 2/6 complete
Status: 3/6 complete
Status: 4/6 complete
Status: 5/6 complete
Status: 6/6 complete
Success: !olleH

Veja Também

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanJob::status() - Send status (deprecated)


Send data to all job servers to see if they echo it back [deprecated]

  • « GearmanClient::doStatus
  • GearmanClient::error »
  • PHP Manual
  • GearmanClient
  • Send data to all job servers to see if they echo it back [deprecated]

GearmanClient::echo

(PECL gearman >= 0.5.0)

GearmanClient::echo — Send data to all job servers to see if they echo it back [deprecated]

Descrição

public GearmanClient::echo(string $workload): bool

The GearmanClient::echo() method is deprecated as of pecl/gearman 1.0.0. Use GearmanClient::ping().

Parâmetros

workload

Some arbitrary serialized data to be echo back

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Returns an error string for the last error encountered

  • « GearmanClient::echo
  • GearmanClient::getErrno »
  • PHP Manual
  • GearmanClient
  • Returns an error string for the last error encountered

GearmanClient::error

(PECL gearman >= 0.5.0)

GearmanClient::error — Returns an error string for the last error encountered

Descrição

public GearmanClient::error(): string|false

Returns an error string for the last error encountered.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A human readable error string, or false if there is no error message available.

Veja Também

  • GearmanClient::getErrno() - Get an errno value


Get an errno value

  • « GearmanClient::error
  • GearmanClient::jobStatus »
  • PHP Manual
  • GearmanClient
  • Get an errno value

GearmanClient::getErrno

(PECL gearman >= 0.5.0)

GearmanClient::getErrno — Get an errno value

Descrição

public GearmanClient::getErrno(): int

Value of errno in the case of a GEARMAN_ERRNO return value.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A valid Gearman errno.

Veja Também

  • GearmanClient::error() - Returns an error string for the last error encountered


Get the status of a background job

  • « GearmanClient::getErrno
  • GearmanClient::ping »
  • PHP Manual
  • GearmanClient
  • Get the status of a background job

GearmanClient::jobStatus

gearman_job_status

(PECL gearman >= 0.5.0)

GearmanClient::jobStatus -- gearman_job_status — Get the status of a background job

Descrição

Estilo orientado a objetos (method):

public GearmanClient::jobStatus(string $job_handle): array

Gets the status for a background job given a job handle. The status information will specify whether the job is known, whether the job is currently running, and the percentage completion.

Parâmetros

job_handle

O manipulador de trabalho atribuído pelo servidor Gearman

Valor Retornado

An array containing status information for the job corresponding to the supplied job handle. The first array element is a boolean indicating whether the job is even known, the second is a boolean indicating whether the job is still running, and the third and fourth elements correspond to the numerator and denominator of the fractional completion percentage, respectively.

Exemplos

Exemplo #1 Monitor the status of a long running background job

<?php

/* create our object */
$gmclient= new GearmanClient();

/* add the default server */
$gmclient->addServer();

/* run reverse client */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
echo "bad return code\n";
exit;
}

$done = false;
do
{
sleep(3);
$stat = $gmclient->jobStatus($job_handle);
if (!$stat[0]) // the job is known so it is not done
$done = true;
echo "Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denomintor: " . $stat[3] . "\n";
}
while(!$done);

echo "done!\n";

?>

O exemplo acima produzirá algo semelhante a:

Running: true, numerator: 3, denomintor: 14
Running: true, numerator: 6, denomintor: 14
Running: true, numerator: 9, denomintor: 14
Running: true, numerator: 12, denomintor: 14
Running: false, numerator: 0, denomintor: 0
done!

Veja Também

  • GearmanClient::doStatus() - Get the status for the running task


Send data to all job servers to see if they echo it back

  • « GearmanClient::jobStatus
  • GearmanClient::removeOptions »
  • PHP Manual
  • GearmanClient
  • Send data to all job servers to see if they echo it back

GearmanClient::ping

(Não há informação de versão disponível, talvez apenas no Git)

GearmanClient::ping — Send data to all job servers to see if they echo it back

Descrição

public GearmanClient::ping(string $workload): bool

Sends some arbitrary data to all job servers to see if they echo it back. The data sent is not used or processed in any other way. Primarily used for testing and debugging.

Parâmetros

workload

Some arbitrary serialized data to be echo back

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Remove client options

  • « GearmanClient::ping
  • GearmanClient::returnCode »
  • PHP Manual
  • GearmanClient
  • Remove client options

GearmanClient::removeOptions

(PECL gearman >= 0.6.0)

GearmanClient::removeOptions — Remove client options

Descrição

public GearmanClient::removeOptions(int $option): bool

Removes (unsets) one or more options.

Parâmetros

option

The options to be removed (unset)

Valor Retornado

Always returns true.


Get the last Gearman return code

  • « GearmanClient::removeOptions
  • GearmanClient::runTasks »
  • PHP Manual
  • GearmanClient
  • Get the last Gearman return code

GearmanClient::returnCode

(PECL gearman >= 0.5.0)

GearmanClient::returnCode — Get the last Gearman return code

Descrição

public GearmanClient::returnCode(): int

Returns the last Gearman return code.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A valid Gearman return code.


Run a list of tasks in parallel

  • « GearmanClient::returnCode
  • GearmanClient::setClientCallback »
  • PHP Manual
  • GearmanClient
  • Run a list of tasks in parallel

GearmanClient::runTasks

(PECL gearman >= 0.5.0)

GearmanClient::runTasks — Run a list of tasks in parallel

Descrição

public GearmanClient::runTasks(): bool

For a set of tasks previously added with GearmanClient::addTask(), GearmanClient::addTaskHigh(), GearmanClient::addTaskLow(), GearmanClient::addTaskBackground(), GearmanClient::addTaskHighBackground(), or GearmanClient::addTaskLowBackground(), this call starts running the tasks in parallel.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::addTask() - Add a task to be run in parallel


Callback function when there is a data packet for a task (deprecated)

  • « GearmanClient::runTasks
  • GearmanClient::setCompleteCallback »
  • PHP Manual
  • GearmanClient
  • Callback function when there is a data packet for a task (deprecated)

GearmanClient::setClientCallback

(PECL gearman <= 0.5.0)

GearmanClient::setClientCallback — Callback function when there is a data packet for a task (deprecated)

Descrição

public GearmanClient::setClientCallback(callable $callback): void

Sets the callback function for accepting data packets for a task. The callback function should take a single argument, a GearmanTask object.

Nota:

This method has been replaced by GearmanClient::setDataCallback() in the 0.6.0 release of the Gearman extension.

Parâmetros

callback

A function or method to call

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set a function to be called on task completion

  • « GearmanClient::setClientCallback
  • GearmanClient::setContext »
  • PHP Manual
  • GearmanClient
  • Set a function to be called on task completion

GearmanClient::setCompleteCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCompleteCallback — Set a function to be called on task completion

Descrição

public GearmanClient::setCompleteCallback(callable $function): bool

Use to set a function to be called when a GearmanTask is completed, or when GearmanJob::sendComplete() is invoked by a worker (whichever happens first).

This callback executes only when executing a GearmanTask using GearmanClient::runTasks(). It is not used for individual jobs.

Parâmetros

function

A function to be called

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set application context

  • « GearmanClient::setCompleteCallback
  • GearmanClient::setCreatedCallback »
  • PHP Manual
  • GearmanClient
  • Set application context

GearmanClient::setContext

(PECL gearman >= 0.6.0)

GearmanClient::setContext — Set application context

Descrição

public GearmanClient::setContext(string $data): bool

Sets an arbitrary string to provide application context that can later be retrieved by GearmanClient::context().

Parâmetros

data

Arbitrary context data

Valor Retornado

Always returns true.

Veja Também

  • GearmanClient::context() - Get the application context


Set a callback for when a task is queued

  • « GearmanClient::setContext
  • GearmanClient::setData »
  • PHP Manual
  • GearmanClient
  • Set a callback for when a task is queued

GearmanClient::setCreatedCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCreatedCallback — Set a callback for when a task is queued

Descrição

public GearmanClient::setCreatedCallback(callable $function): bool

Sets a function to be called when a task is received and queued by the Gearman job server. The callback should accept a single argument, a GearmanTask object.

Parâmetros

function

A function to call

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set application data (deprecated)

  • « GearmanClient::setCreatedCallback
  • GearmanClient::setDataCallback »
  • PHP Manual
  • GearmanClient
  • Set application data (deprecated)

GearmanClient::setData

(PECL gearman <= 0.5.0)

GearmanClient::setData — Set application data (deprecated)

Descrição

public GearmanClient::setData(string $data): bool

Sets some arbitrary application data that can later be retrieved by GearmanClient::data().

Nota:

This method has been replaced by GearmanCient::setContext() in the 0.6.0 release of the Gearman extension.

Parâmetros

data

Valor Retornado

Always returns true.

Veja Também

  • GearmanClient::data() - Get the application data (deprecated)


Callback function when there is a data packet for a task

  • « GearmanClient::setData
  • GearmanClient::setExceptionCallback »
  • PHP Manual
  • GearmanClient
  • Callback function when there is a data packet for a task

GearmanClient::setDataCallback

(PECL gearman >= 0.6.0)

GearmanClient::setDataCallback — Callback function when there is a data packet for a task

Descrição

public GearmanClient::setDataCallback(callable $function): bool

Sets the callback function for accepting data packets for a task. The callback function should take a single argument, a GearmanTask object.

Parâmetros

function

A function or method to call

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set a callback for worker exceptions

  • « GearmanClient::setDataCallback
  • GearmanClient::setFailCallback »
  • PHP Manual
  • GearmanClient
  • Set a callback for worker exceptions

GearmanClient::setExceptionCallback

(PECL gearman >= 0.5.0)

GearmanClient::setExceptionCallback — Set a callback for worker exceptions

Descrição

public GearmanClient::setExceptionCallback(callable $function): bool

Specifies a function to call when a worker for a task sends an exception.

Parâmetros

function

Function to call when the worker throws an exception

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set callback for job failure

  • « GearmanClient::setExceptionCallback
  • GearmanClient::setOptions »
  • PHP Manual
  • GearmanClient
  • Set callback for job failure

GearmanClient::setFailCallback

(PECL gearman >= 0.5.0)

GearmanClient::setFailCallback — Set callback for job failure

Descrição

public GearmanClient::setFailCallback(callable $function): bool

Sets the callback function to be used when a task does not complete successfully. The function should accept a single argument, a GearmanTask object.

Parâmetros

function

A function to call

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set client options

  • « GearmanClient::setFailCallback
  • GearmanClient::setStatusCallback »
  • PHP Manual
  • GearmanClient
  • Set client options

GearmanClient::setOptions

(PECL gearman >= 0.5.0)

GearmanClient::setOptions — Set client options

Descrição

public GearmanClient::setOptions(int $option): bool

Sets one or more client options.

Parâmetros

option

The options to be set

Valor Retornado

Always returns true.


Set a callback for collecting task status

  • « GearmanClient::setOptions
  • GearmanClient::setTimeout »
  • PHP Manual
  • GearmanClient
  • Set a callback for collecting task status

GearmanClient::setStatusCallback

(PECL gearman >= 0.5.0)

GearmanClient::setStatusCallback — Set a callback for collecting task status

Descrição

public GearmanClient::setStatusCallback(callable $function): bool

Sets a callback function used for getting updated status information from a worker. The function should accept a single argument, a GearmanTask object.

Parâmetros

function

A function to call

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set socket I/O activity timeout

  • « GearmanClient::setStatusCallback
  • GearmanClient::setWarningCallback »
  • PHP Manual
  • GearmanClient
  • Set socket I/O activity timeout

GearmanClient::setTimeout

(PECL gearman >= 0.6.0)

GearmanClient::setTimeout — Set socket I/O activity timeout

Descrição

public GearmanClient::setTimeout(int $timeout): bool

Sets the timeout for socket I/O activity.

Parâmetros

timeout

An interval of time in milliseconds

Valor Retornado

Always returns true.


Set a callback for worker warnings

  • « GearmanClient::setTimeout
  • GearmanClient::setWorkloadCallback »
  • PHP Manual
  • GearmanClient
  • Set a callback for worker warnings

GearmanClient::setWarningCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWarningCallback — Set a callback for worker warnings

Descrição

public GearmanClient::setWarningCallback(callable $function): bool

Sets a function to be called when a worker sends a warning. The callback should accept a single argument, a GearmanTask object.

Parâmetros

function

A function to call

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set a callback for accepting incremental data updates

  • « GearmanClient::setWarningCallback
  • GearmanClient::timeout »
  • PHP Manual
  • GearmanClient
  • Set a callback for accepting incremental data updates

GearmanClient::setWorkloadCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWorkloadCallback — Set a callback for accepting incremental data updates

Descrição

public GearmanClient::setWorkloadCallback(callable $function): bool

Sets a function to be called when a worker needs to send back data prior to job completion. A worker can do this when it needs to send updates, send partial results, or flush data during long running jobs. The callback should accept a single argument, a GearmanTask object.

Parâmetros

function

A function to call

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings


Get current socket I/O activity timeout value

  • « GearmanClient::setWorkloadCallback
  • GearmanClient::wait »
  • PHP Manual
  • GearmanClient
  • Get current socket I/O activity timeout value

GearmanClient::timeout

(PECL gearman >= 0.6.0)

GearmanClient::timeout — Get current socket I/O activity timeout value

Descrição

public GearmanClient::timeout(): int

Returns the timeout in milliseconds to wait for I/O activity.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Timeout in milliseconds to wait for I/O activity. A negative value means an infinite timeout.

Veja Também

  • GearmanClient::setTimeout() - Set socket I/O activity timeout


Wait for I/O activity on all connections in a client

  • « GearmanClient::timeout
  • GearmanJob »
  • PHP Manual
  • GearmanClient
  • Wait for I/O activity on all connections in a client

GearmanClient::wait

(PECL gearman >= 0.6.0)

GearmanClient::wait — Wait for I/O activity on all connections in a client

Descrição

public GearmanClient::wait(): bool

This waits for activity from any one of the connected servers.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true on success false on an error.

Veja Também

  • GearmanWorker::wait() - Wait for activity from one of the job servers


The GearmanJob class

(PECL gearman >= 0.5.0)

Introdução

Resumo da classe

class GearmanJob {
/* Métodos */
public functionName(): false|string
public handle(): false|string
public returnCode(): int
public sendComplete(string $result): bool
public sendData(string $data): bool
public sendException(string $exception): bool
public sendFail(): bool
public sendStatus(int $numerator, int $denominator): bool
public sendWarning(string $warning): bool
public setReturn(int $gearman_return_t): bool
public unique(): false|string
public workload(): string
public workloadSize(): int
}

Índice

  • GearmanJob::complete — Send the result and complete status (deprecated)
  • GearmanJob::__construct — Create a GearmanJob instance
  • GearmanJob::data — Send data for a running job (deprecated)
  • GearmanJob::exception — Send exception for running job (deprecated)
  • GearmanJob::fail — Send fail status (deprecated)
  • GearmanJob::functionName — Get function name
  • GearmanJob::handle — Get the job handle
  • GearmanJob::returnCode — Get last return code
  • GearmanJob::sendComplete — Send the result and complete status
  • GearmanJob::sendData — Send data for a running job
  • GearmanJob::sendException — Send exception for running job (exception)
  • GearmanJob::sendFail — Send fail status
  • GearmanJob::sendStatus — Send status
  • GearmanJob::sendWarning — Send a warning
  • GearmanJob::setReturn — Set a return value
  • GearmanJob::status — Send status (deprecated)
  • GearmanJob::unique — Get the unique identifier
  • GearmanJob::warning — Send a warning (deprecated)
  • GearmanJob::workload — Get workload
  • GearmanJob::workloadSize — Get size of work load


Send the result and complete status (deprecated)

  • « GearmanJob
  • GearmanJob::__construct »
  • PHP Manual
  • GearmanJob
  • Send the result and complete status (deprecated)

GearmanJob::complete

(PECL gearman <= 0.5.0)

GearmanJob::complete — Send the result and complete status (deprecated)

Descrição

public GearmanJob::complete(string $result): bool

Sends result data and the complete status update for this job.

Nota:

This method has been replaced by GearmanJob::sendComplete() in the 0.6.0 release of the Gearman extension.

Parâmetros

result

Serialized result data.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanJob::sendFail() - Send fail status
  • GearmanJob::setReturn() - Set a return value


Create a GearmanJob instance

  • « GearmanJob::complete
  • GearmanJob::data »
  • PHP Manual
  • GearmanJob
  • Create a GearmanJob instance

GearmanJob::__construct

(PECL gearman >= 0.5.0)

GearmanJob::__construct — Create a GearmanJob instance

Descrição

public GearmanJob::__construct()

Creates a GearmanJob instance representing a job the worker is to complete.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A GearmanJob object.


Send data for a running job (deprecated)

  • « GearmanJob::__construct
  • GearmanJob::exception »
  • PHP Manual
  • GearmanJob
  • Send data for a running job (deprecated)

GearmanJob::data

(PECL gearman <= 0.5.0)

GearmanJob::data — Send data for a running job (deprecated)

Descrição

public GearmanJob::data(string $data): bool

Sends data to the job server (and any listening clients) for this job.

Nota:

This method has been replaced by GearmanJob::sendData() in the 0.6.0 release of the Gearman extension.

Parâmetros

data

Arbitrary serialized data.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanJob::workload() - Get workload
  • GearmanTask::data() - Get data returned for a task


Send exception for running job (deprecated)

  • « GearmanJob::data
  • GearmanJob::fail »
  • PHP Manual
  • GearmanJob
  • Send exception for running job (deprecated)

GearmanJob::exception

(PECL gearman <= 0.5.0)

GearmanJob::exception — Send exception for running job (deprecated)

Descrição

public GearmanJob::exception(string $exception): bool

Sends the supplied exception when this job is running.

Nota:

This method has been replaced by GearmanJob::sendException() in the 0.6.0 release of the Gearman extension.

Parâmetros

exception

An exception description.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanJob::setReturn() - Set a return value
  • GearmanJob::sendStatus() - Send status
  • GearmanJob::sendWarning() - Send a warning


Send fail status (deprecated)

  • « GearmanJob::exception
  • GearmanJob::functionName »
  • PHP Manual
  • GearmanJob
  • Send fail status (deprecated)

GearmanJob::fail

(PECL gearman <= 0.5.0)

GearmanJob::fail — Send fail status (deprecated)

Descrição

public GearmanJob::fail(): bool

Sends failure status for this job, indicating that the job failed in a known way (as opposed to failing due to a thrown exception).

Nota:

This method has been replaced by GearmanJob::sendFail() in the 0.6.0 release of the Gearman extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanJob::sendException() - Send exception for running job (exception)
  • GearmanJob::setReturn() - Set a return value
  • GearmanJob::sendStatus() - Send status
  • GearmanJob::sendWarning() - Send a warning


Get function name

  • « GearmanJob::fail
  • GearmanJob::handle »
  • PHP Manual
  • GearmanJob
  • Get function name

GearmanJob::functionName

(PECL gearman >= 0.5.0)

GearmanJob::functionName — Get function name

Descrição

public GearmanJob::functionName(): false|string

Returns the function name for this job. This is the function the work will execute to perform the job.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The name of a function, or false if the job has not yet been initialized.

Veja Também

  • GearmanTask::function() - Get associated function name (deprecated)


Get the job handle

  • « GearmanJob::functionName
  • GearmanJob::returnCode »
  • PHP Manual
  • GearmanJob
  • Get the job handle

GearmanJob::handle

(PECL gearman >= 0.5.0)

GearmanJob::handle — Get the job handle

Descrição

public GearmanJob::handle(): false|string

Returns the opaque job handle assigned by the job server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An opaque job handle, or false if the job has not yet been initialized.

Veja Também

  • GearmanTask::jobHandle() - Get the job handle


Get last return code

  • « GearmanJob::handle
  • GearmanJob::sendComplete »
  • PHP Manual
  • GearmanJob
  • Get last return code

GearmanJob::returnCode

(PECL gearman >= 0.5.0)

GearmanJob::returnCode — Get last return code

Descrição

public GearmanJob::returnCode(): int

Returns the last return code issued by the job server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A valid Gearman return code.

Veja Também

  • GearmanTask::returnCode() - Get the last return code


Send the result and complete status

  • « GearmanJob::returnCode
  • GearmanJob::sendData »
  • PHP Manual
  • GearmanJob
  • Send the result and complete status

GearmanJob::sendComplete

(PECL gearman >= 0.6.0)

GearmanJob::sendComplete — Send the result and complete status

Descrição

public GearmanJob::sendComplete(string $result): bool

Sends result data and the complete status update for this job.

Parâmetros

result

Serialized result data.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanJob::sendFail() - Send fail status
  • GearmanJob::setReturn() - Set a return value


Send data for a running job

  • « GearmanJob::sendComplete
  • GearmanJob::sendException »
  • PHP Manual
  • GearmanJob
  • Send data for a running job

GearmanJob::sendData

(PECL gearman >= 0.6.0)

GearmanJob::sendData — Send data for a running job

Descrição

public GearmanJob::sendData(string $data): bool

Sends data to the job server (and any listening clients) for this job.

Parâmetros

data

Arbitrary serialized data.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanJob::workload() - Get workload
  • GearmanTask::data() - Get data returned for a task


Send exception for running job (exception)

  • « GearmanJob::sendData
  • GearmanJob::sendFail »
  • PHP Manual
  • GearmanJob
  • Send exception for running job (exception)

GearmanJob::sendException

(PECL gearman >= 0.6.0)

GearmanJob::sendException — Send exception for running job (exception)

Descrição

public GearmanJob::sendException(string $exception): bool

Sends the supplied exception when this job is running.

Parâmetros

exception

An exception description.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanJob::setReturn() - Set a return value
  • GearmanJob::sendStatus() - Send status
  • GearmanJob::sendWarning() - Send a warning


Send fail status

  • « GearmanJob::sendException
  • GearmanJob::sendStatus »
  • PHP Manual
  • GearmanJob
  • Send fail status

GearmanJob::sendFail

(PECL gearman >= 0.6.0)

GearmanJob::sendFail — Send fail status

Descrição

public GearmanJob::sendFail(): bool

Sends failure status for this job, indicating that the job failed in a known way (as opposed to failing due to a thrown exception).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanJob::sendException() - Send exception for running job (exception)
  • GearmanJob::setReturn() - Set a return value
  • GearmanJob::sendStatus() - Send status
  • GearmanJob::sendWarning() - Send a warning


Send status

  • « GearmanJob::sendFail
  • GearmanJob::sendWarning »
  • PHP Manual
  • GearmanJob
  • Send status

GearmanJob::sendStatus

(PECL gearman >= 0.6.0)

GearmanJob::sendStatus — Send status

Descrição

public GearmanJob::sendStatus(int $numerator, int $denominator): bool

Sends status information to the job server and any listening clients. Use this to specify what percentage of the job has been completed.

Parâmetros

numerator

The numerator of the precentage completed expressed as a fraction.

denominator

The denominator of the precentage completed expressed as a fraction.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::jobStatus() - Get the status of a background job
  • GearmanTask::taskDenominator() - Get completion percentage denominator
  • GearmanTask::taskNumerator() - Get completion percentage numerator


Send a warning

  • « GearmanJob::sendStatus
  • GearmanJob::setReturn »
  • PHP Manual
  • GearmanJob
  • Send a warning

GearmanJob::sendWarning

(PECL gearman >= 0.6.0)

GearmanJob::sendWarning — Send a warning

Descrição

public GearmanJob::sendWarning(string $warning): bool

Sends a warning for this job while it is running.

Parâmetros

warning

A warning message.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanJob::sendComplete() - Send the result and complete status
  • GearmanJob::sendException() - Send exception for running job (exception)
  • GearmanJob::sendFail() - Send fail status


Set a return value

  • « GearmanJob::sendWarning
  • GearmanJob::status »
  • PHP Manual
  • GearmanJob
  • Set a return value

GearmanJob::setReturn

(PECL gearman >= 0.5.0)

GearmanJob::setReturn — Set a return value

Descrição

public GearmanJob::setReturn(int $gearman_return_t): bool

Sets the return value for this job, indicates how the job completed.

Parâmetros

gearman_return_t

A valid Gearman return value.

Valor Retornado

Description...


Send status (deprecated)

  • « GearmanJob::setReturn
  • GearmanJob::unique »
  • PHP Manual
  • GearmanJob
  • Send status (deprecated)

GearmanJob::status

(PECL gearman <= 0.5.0)

GearmanJob::status — Send status (deprecated)

Descrição

public GearmanJob::status(int $numerator, int $denominator): bool

Sends status information to the job server and any listening clients. Use this to specify what percentage of the job has been completed.

Nota:

This method has been replaced by GearmanJob::sendStatus() in the 0.6.0 release of the Gearman extenstion.

Parâmetros

numerator

The numerator of the precentage completed expressed as a fraction.

denominator

The denominator of the precentage completed expressed as a fraction.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanClient::jobStatus() - Get the status of a background job
  • GearmanTask::taskDenominator() - Get completion percentage denominator
  • GearmanTask::taskNumerator() - Get completion percentage numerator


Get the unique identifier

  • « GearmanJob::status
  • GearmanJob::warning »
  • PHP Manual
  • GearmanJob
  • Get the unique identifier

GearmanJob::unique

(PECL gearman >= 0.5.0)

GearmanJob::unique — Get the unique identifier

Descrição

public GearmanJob::unique(): false|string

Returns the unique identifier for this job. The identifier is assigned by the client.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An opaque unique identifier, or false if the job has not yet been initialized.

Veja Também

  • GearmanClient::do() - Run a single task and return a result [deprecated]
  • GearmanTask::uuid() - Get the unique identifier for a task (deprecated)


Send a warning (deprecated)

  • « GearmanJob::unique
  • GearmanJob::workload »
  • PHP Manual
  • GearmanJob
  • Send a warning (deprecated)

GearmanJob::warning

(PECL gearman <= 0.5.0)

GearmanJob::warning — Send a warning (deprecated)

Descrição

public GearmanJob::warning(string $warning): bool

Sends a warning for this job while it is running.

Nota:

This method has been replaced by GearmanJob::sendWarning() in the 0.6.0 release of the Gearman extension.

Parâmetros

warning

A warning messages.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • GearmanJob::sendComplete() - Send the result and complete status
  • GearmanJob::sendException() - Send exception for running job (exception)
  • GearmanJob::sendFail() - Send fail status


Get workload

  • « GearmanJob::warning
  • GearmanJob::workloadSize »
  • PHP Manual
  • GearmanJob
  • Get workload

GearmanJob::workload

(PECL gearman >= 0.5.0)

GearmanJob::workload — Get workload

Descrição

public GearmanJob::workload(): string

Returns the workload for the job. This is serialized data that is to be processed by the worker.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Serialized data.

Veja Também

  • GearmanClient::do() - Run a single task and return a result [deprecated]
  • GearmanJob::workloadSize() - Get size of work load


Get size of work load

  • « GearmanJob::workload
  • GearmanTask »
  • PHP Manual
  • GearmanJob
  • Get size of work load

GearmanJob::workloadSize

(PECL gearman >= 0.5.0)

GearmanJob::workloadSize — Get size of work load

Descrição

public GearmanJob::workloadSize(): int

Returns the size of the job's work load (the data the worker is to process) in bytes.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The size in bytes.

Veja Também

  • GearmanJob::workload() - Get workload


The GearmanTask class

(PECL gearman >= 0.5.0)

Introdução

Resumo da classe

class GearmanTask {
/* Métodos */
public __construct()
public data(): false|string
public dataSize(): int|false
public functionName(): false|string
public isKnown(): bool
public isRunning(): bool
public jobHandle(): false|string
public recvData(int $data_len): false|array
public returnCode(): int
public sendWorkload(string $data): int|false
public taskDenominator(): false|int
public taskNumerator(): false|int
public unique(): false|string
}

Índice

  • GearmanTask::__construct — Create a GearmanTask instance
  • GearmanTask::create — Create a task (deprecated)
  • GearmanTask::data — Get data returned for a task
  • GearmanTask::dataSize — Get the size of returned data
  • GearmanTask::function — Get associated function name (deprecated)
  • GearmanTask::functionName — Get associated function name
  • GearmanTask::isKnown — Determine if task is known
  • GearmanTask::isRunning — Test whether the task is currently running
  • GearmanTask::jobHandle — Get the job handle
  • GearmanTask::recvData — Read work or result data into a buffer for a task
  • GearmanTask::returnCode — Get the last return code
  • GearmanTask::sendData — Send data for a task (deprecated)
  • GearmanTask::sendWorkload — Send data for a task
  • GearmanTask::taskDenominator — Get completion percentage denominator
  • GearmanTask::taskNumerator — Get completion percentage numerator
  • GearmanTask::unique — Get the unique identifier for a task
  • GearmanTask::uuid — Get the unique identifier for a task (deprecated)


Create a GearmanTask instance

  • « GearmanTask
  • GearmanTask::create »
  • PHP Manual
  • GearmanTask
  • Create a GearmanTask instance

GearmanTask::__construct

(PECL gearman >= 0.5.0)

GearmanTask::__construct — Create a GearmanTask instance

Descrição

public GearmanTask::__construct()

Creates a GearmanTask instance representing a task to be submitted to a job server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A GearmanTask object.


Create a task (deprecated)

  • « GearmanTask::__construct
  • GearmanTask::data »
  • PHP Manual
  • GearmanTask
  • Create a task (deprecated)

GearmanTask::create

(PECL gearman <= 0.5.0)

GearmanTask::create — Create a task (deprecated)

Descrição

public GearmanTask::create(): GearmanTask|false

Returns a new GearmanTask object.

Nota:

This method was removed in the 0.6.0 version of the Gearman extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A GearmanTask oject ou false em caso de falha.


Get data returned for a task

  • « GearmanTask::create
  • GearmanTask::dataSize »
  • PHP Manual
  • GearmanTask
  • Get data returned for a task

GearmanTask::data

(PECL gearman >= 0.5.0)

GearmanTask::data — Get data returned for a task

Descrição

public GearmanTask::data(): false|string

Returns data being returned for a task by a worker.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The serialized data, or false if no data is present.

Veja Também

  • GearmanTask::dataSize() - Get the size of returned data


Get the size of returned data

  • « GearmanTask::data
  • GearmanTask::function »
  • PHP Manual
  • GearmanTask
  • Get the size of returned data

GearmanTask::dataSize

(PECL gearman >= 0.5.0)

GearmanTask::dataSize — Get the size of returned data

Descrição

public GearmanTask::dataSize(): int|false

Returns the size of the data being returned for a task.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The data size, or false if there is no data.

Veja Também

  • GearmanTask::data() - Get data returned for a task


Get associated function name (deprecated)

  • « GearmanTask::dataSize
  • GearmanTask::functionName »
  • PHP Manual
  • GearmanTask
  • Get associated function name (deprecated)

GearmanTask::function

(PECL gearman <= 0.5.0)

GearmanTask::function — Get associated function name (deprecated)

Descrição

public GearmanTask::function(): string

Returns the name of the function this task is associated with, i.e., the function the Gearman worker calls.

Nota:

This method has been replaced by GearmanTask::functionName() in the 0.6.0 release of the Gearman extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A function name.


Get associated function name

  • « GearmanTask::function
  • GearmanTask::isKnown »
  • PHP Manual
  • GearmanTask
  • Get associated function name

GearmanTask::functionName

(PECL gearman >= 0.6.0)

GearmanTask::functionName — Get associated function name

Descrição

public GearmanTask::functionName(): false|string

Returns the name of the function this task is associated with, i.e., the function the Gearman worker calls.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A function name, or false if the task has not yet been created.


Determine if task is known

  • « GearmanTask::functionName
  • GearmanTask::isRunning »
  • PHP Manual
  • GearmanTask
  • Determine if task is known

GearmanTask::isKnown

(PECL gearman >= 0.5.0)

GearmanTask::isKnown — Determine if task is known

Descrição

public GearmanTask::isKnown(): bool

Gets the status information for whether or not this task is known to the job server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the task is known, false otherwise.


Test whether the task is currently running

  • « GearmanTask::isKnown
  • GearmanTask::jobHandle »
  • PHP Manual
  • GearmanTask
  • Test whether the task is currently running

GearmanTask::isRunning

(PECL gearman >= 0.5.0)

GearmanTask::isRunning — Test whether the task is currently running

Descrição

public GearmanTask::isRunning(): bool

Indicates whether or not this task is currently running.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the task is running, false otherwise.


Get the job handle

  • « GearmanTask::isRunning
  • GearmanTask::recvData »
  • PHP Manual
  • GearmanTask
  • Get the job handle

GearmanTask::jobHandle

gearman_job_handle

(PECL gearman >= 0.5.0)

GearmanTask::jobHandle -- gearman_job_handle — Get the job handle

Descrição

public GearmanTask::jobHandle(): false|string

Returns the job handle for this task.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The opaque job handle, or false if the task has not yet been created.

Veja Também

  • GearmanClient::doJobHandle() - Get the job handle for the running task


Read work or result data into a buffer for a task

  • « GearmanTask::jobHandle
  • GearmanTask::returnCode »
  • PHP Manual
  • GearmanTask
  • Read work or result data into a buffer for a task

GearmanTask::recvData

(PECL gearman >= 0.5.0)

GearmanTask::recvData — Read work or result data into a buffer for a task

Descrição

public GearmanTask::recvData(int $data_len): false|array

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Parâmetros

data_len

Length of data to be read.

Valor Retornado

An array whose first element is the length of data read and the second is the data buffer. Returns false if the read failed.

Veja Também

  • GearmanTask::sendData() - Send data for a task (deprecated)


Get the last return code

  • « GearmanTask::recvData
  • GearmanTask::sendData »
  • PHP Manual
  • GearmanTask
  • Get the last return code

GearmanTask::returnCode

(PECL gearman >= 0.5.0)

GearmanTask::returnCode — Get the last return code

Descrição

public GearmanTask::returnCode(): int

Returns the last Gearman return code for this task.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A valid Gearman return code.

Veja Também

  • GearmanClient::returnCode() - Get the last Gearman return code


Send data for a task (deprecated)

  • « GearmanTask::returnCode
  • GearmanTask::sendWorkload »
  • PHP Manual
  • GearmanTask
  • Send data for a task (deprecated)

GearmanTask::sendData

(PECL gearman <= 0.5.0)

GearmanTask::sendData — Send data for a task (deprecated)

Descrição

public GearmanTask::sendData(string $data): int

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Parâmetros

data

Data to send to the worker.

Valor Retornado

The length of data sent, or false if the send failed.

Veja Também

  • GearmanTask::recvData() - Read work or result data into a buffer for a task


Send data for a task

  • « GearmanTask::sendData
  • GearmanTask::taskDenominator »
  • PHP Manual
  • GearmanTask
  • Send data for a task

GearmanTask::sendWorkload

(PECL gearman >= 0.6.0)

GearmanTask::sendWorkload — Send data for a task

Descrição

public GearmanTask::sendWorkload(string $data): int|false

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Parâmetros

data

Data to send to the worker.

Valor Retornado

The length of data sent, or false if the send failed.

Veja Também

  • GearmanTask::recvData() - Read work or result data into a buffer for a task


Get completion percentage denominator

  • « GearmanTask::sendWorkload
  • GearmanTask::taskNumerator »
  • PHP Manual
  • GearmanTask
  • Get completion percentage denominator

GearmanTask::taskDenominator

(PECL gearman >= 0.5.0)

GearmanTask::taskDenominator — Get completion percentage denominator

Descrição

public GearmanTask::taskDenominator(): false|int

Returns the denominator of the percentage of the task that is complete expressed as a fraction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A number between 0 and 100, or false if cannot be determined.

Veja Também

  • GearmanTask::taskNumerator() - Get completion percentage numerator


Get completion percentage numerator

  • « GearmanTask::taskDenominator
  • GearmanTask::unique »
  • PHP Manual
  • GearmanTask
  • Get completion percentage numerator

GearmanTask::taskNumerator

(PECL gearman >= 0.5.0)

GearmanTask::taskNumerator — Get completion percentage numerator

Descrição

public GearmanTask::taskNumerator(): false|int

Returns the numerator of the percentage of the task that is complete expressed as a fraction.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A number between 0 and 100, or false if cannot be determined.

Veja Também

  • GearmanTask::taskDenominator() - Get completion percentage denominator


Get the unique identifier for a task

  • « GearmanTask::taskNumerator
  • GearmanTask::uuid »
  • PHP Manual
  • GearmanTask
  • Get the unique identifier for a task

GearmanTask::unique

(PECL gearman >= 0.6.0)

GearmanTask::unique — Get the unique identifier for a task

Descrição

public GearmanTask::unique(): false|string

Returns the unique identifier for this task. This is assigned by the GearmanClient, as opposed to the job handle which is set by the Gearman job server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The unique identifier, or false if no identifier is assigned.

Veja Também

  • GearmanClient::do() - Run a single task and return a result [deprecated]
  • GearmanClient::addTask() - Add a task to be run in parallel


Get the unique identifier for a task (deprecated)

  • « GearmanTask::unique
  • GearmanWorker »
  • PHP Manual
  • GearmanTask
  • Get the unique identifier for a task (deprecated)

GearmanTask::uuid

(PECL gearman <= 0.5.0)

GearmanTask::uuid — Get the unique identifier for a task (deprecated)

Descrição

public GearmanTask::uuid(): string

Returns the unique identifier for this task. This is assigned by the GearmanClient, as opposed to the job handle which is set by the Gearman job server.

Nota:

This method has been replaced by GearmanTask::unique() in the 0.6.0 release of the Gearman extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The unique identifier, or false if no identifier is assigned.

Veja Também

  • GearmanClient::do() - Run a single task and return a result [deprecated]
  • GearmanClient::addTask() - Add a task to be run in parallel


The GearmanWorker class

(PECL gearman >= 0.5.0)

Introdução

Resumo da classe

class GearmanWorker {
/* Métodos */
public __construct()
public addFunction(
string $function_name,
callable $function,
mixed $context = null,
int $timeout = 0
): bool
public addOptions(int $option): true
public addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool
public addServers(string $servers = null, bool $setupExceptionHandler = true): bool
public error(): string|false
public getErrno(): int
public options(): int
public register(string $function_name, int $timeout = 0): bool
public removeOptions(int $option): true
public returnCode(): int
public setId(string $id): bool
public setOptions(int $option): true
public setTimeout(int $timeout): true
public timeout(): int
public unregister(string $function_name): bool
public unregisterAll(): bool
public wait(): bool
public work(): bool
}

Índice

  • GearmanWorker::addFunction — Register and add callback function
  • GearmanWorker::addOptions — Add worker options
  • GearmanWorker::addServer — Add a job server
  • GearmanWorker::addServers — Add job servers
  • GearmanWorker::clone — Create a copy of the worker
  • GearmanWorker::__construct — Create a GearmanWorker instance
  • GearmanWorker::echo — Test job server response
  • GearmanWorker::error — Get the last error encountered
  • GearmanWorker::getErrno — Get errno
  • GearmanWorker::options — Get worker options
  • GearmanWorker::register — Register a function with the job server
  • GearmanWorker::removeOptions — Remove worker options
  • GearmanWorker::returnCode — Get last Gearman return code
  • GearmanWorker::setId — Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers
  • GearmanWorker::setOptions — Set worker options
  • GearmanWorker::setTimeout — Set socket I/O activity timeout
  • GearmanWorker::timeout — Get socket I/O activity timeout
  • GearmanWorker::unregister — Unregister a function name with the job servers
  • GearmanWorker::unregisterAll — Unregister all function names with the job servers
  • GearmanWorker::wait — Wait for activity from one of the job servers
  • GearmanWorker::work — Wait for and perform jobs


Register and add callback function

  • « GearmanWorker
  • GearmanWorker::addOptions »
  • PHP Manual
  • GearmanWorker
  • Register and add callback function

GearmanWorker::addFunction

(PECL gearman >= 0.5.0)

GearmanWorker::addFunction — Register and add callback function

Descrição

public GearmanWorker::addFunction(
string $function_name,
callable $function,
mixed $context = null,
int $timeout = 0
): bool

Registers a function name with the job server and specifies a callback corresponding to that function. Optionally specify extra application context data to be used when the callback is called and a timeout.

Parâmetros

function_name

The name of a function to register with the job server

function

A callback that gets called when a job for the registered function name is submitted

context

A reference to arbitrary application context data that can be modified by the worker function

timeout

An interval of time in seconds

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Simple worker making use of extra application context data

<?php

# get a gearman worker
$worker= new GearmanWorker();

# add the default server (localhost)
$worker->addServer();

# define a variable to hold application data
$count= 0;

# add the "reverse" function
$worker->addFunction("reverse", "reverse_cb", $count);

# start the worker
while ($worker->work());

function reverse_cb($job, &$count)
{
$count++;
return "$count: " . strrev($job->workload());
}

?>

Running a client that submits two jobs for the reverse function would have output similar to the following:

1: olleh
2: dlrow

Veja Também

  • GearmanClient::do() - Run a single task and return a result [deprecated]


Add worker options

  • « GearmanWorker::addFunction
  • GearmanWorker::addServer »
  • PHP Manual
  • GearmanWorker
  • Add worker options

GearmanWorker::addOptions

(PECL gearman >= 0.6.0)

GearmanWorker::addOptions — Add worker options

Descrição

public GearmanWorker::addOptions(int $option): true

Adds one or more options to the options previously set.

Parâmetros

option

The options to be added

Valor Retornado

Sempre retorna true.

Veja Também

  • GearmanWorker::options() - Get worker options
  • GearmanClient::setOptions() - Set client options
  • GearmanClient::removeOptions() - Remove client options


Add a job server

  • « GearmanWorker::addOptions
  • GearmanWorker::addServers »
  • PHP Manual
  • GearmanWorker
  • Add a job server

GearmanWorker::addServer

(PECL gearman >= 0.5.0)

GearmanWorker::addServer — Add a job server

Descrição

public GearmanWorker::addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool

Adds a job server to this worker. This goes into a list of servers than can be used to run jobs. No socket I/O happens here.

Parâmetros

host

O nome do servidor de trabalho.

port

A porta do servidor de trabalho.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Add alternate Gearman servers

<?php
$worker= new GearmanWorker();
$worker->addServer("10.0.0.1");
$worker->addServer("10.0.0.2", 7003);
?>

Veja Também

  • GearmanWorker::addServers() - Add job servers


Add job servers

  • « GearmanWorker::addServer
  • GearmanWorker::clone »
  • PHP Manual
  • GearmanWorker
  • Add job servers

GearmanWorker::addServers

(PECL gearman >= 0.5.0)

GearmanWorker::addServers — Add job servers

Descrição

public GearmanWorker::addServers(string $servers = null, bool $setupExceptionHandler = true): bool

Adds one or more job servers to this worker. These go into a list of servers that can be used to run jobs. No socket I/O happens here.

Parâmetros

servers

A comma separated list of job servers in the format host:port. If no port is specified, it defaults to 4730.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Add two job servers

<?php

$worker= new GearmanWorker();
$worker->addServers("10.0.0.1,10.0.0.2:7003");

?>

Veja Também

  • GearmanWorker::addServer() - Add a job server


Create a copy of the worker

  • « GearmanWorker::addServers
  • GearmanWorker::__construct »
  • PHP Manual
  • GearmanWorker
  • Create a copy of the worker

GearmanWorker::clone

(PECL gearman >= 0.5.0)

GearmanWorker::clone — Create a copy of the worker

Descrição

public GearmanWorker::clone(): void

Creates a copy of the worker.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A GearmanWorker object


Create a GearmanWorker instance

  • « GearmanWorker::clone
  • GearmanWorker::echo »
  • PHP Manual
  • GearmanWorker
  • Create a GearmanWorker instance

GearmanWorker::__construct

(PECL gearman >= 0.5.0)

GearmanWorker::__construct — Create a GearmanWorker instance

Descrição

public GearmanWorker::__construct()

Creates a GearmanWorker instance representing a worker that connects to the job server and accepts tasks to run.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A GearmanWorker object

Veja Também

  • GearmanWorker::clone() - Create a copy of the worker


Test job server response

  • « GearmanWorker::__construct
  • GearmanWorker::error »
  • PHP Manual
  • GearmanWorker
  • Test job server response

GearmanWorker::echo

(PECL gearman >= 0.6.0)

GearmanWorker::echo — Test job server response

Descrição

public GearmanWorker::echo(string $workload): bool

Sends data to all job servers to see if they echo it back. This is a test function to see if job servers are responding properly.

Parâmetros

workload

Arbitrary serialized data

Valor Retornado

Standard Gearman return value.

Veja Também

  • GearmanClient::echo() - Send data to all job servers to see if they echo it back [deprecated]


Get the last error encountered

  • « GearmanWorker::echo
  • GearmanWorker::getErrno »
  • PHP Manual
  • GearmanWorker
  • Get the last error encountered

GearmanWorker::error

(PECL gearman >= 0.5.0)

GearmanWorker::error — Get the last error encountered

Descrição

public GearmanWorker::error(): string|false

Returns an error string for the last error encountered.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A human readable error string, or false if there is no error message available.

Veja Também

  • GearmanWorker::getErrno() - Get errno


Get errno

  • « GearmanWorker::error
  • GearmanWorker::options »
  • PHP Manual
  • GearmanWorker
  • Get errno

GearmanWorker::getErrno

(PECL gearman >= 0.5.0)

GearmanWorker::getErrno — Get errno

Descrição

public GearmanWorker::getErrno(): int

Returns the value of errno in the case of a GEARMAN_ERRNO return value.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A valid errno.

Veja Também

  • GearmanWorker::error() - Get the last error encountered


Get worker options

  • « GearmanWorker::getErrno
  • GearmanWorker::register »
  • PHP Manual
  • GearmanWorker
  • Get worker options

GearmanWorker::options

(PECL gearman >= 0.6.0)

GearmanWorker::options — Get worker options

Descrição

public GearmanWorker::options(): int

Gets the options previously set for the worker.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The options currently set for the worker.

Veja Também

  • GearmanWorker::setOptions() - Set worker options


Register a function with the job server

  • « GearmanWorker::options
  • GearmanWorker::removeOptions »
  • PHP Manual
  • GearmanWorker
  • Register a function with the job server

GearmanWorker::register

(PECL gearman >= 0.6.0)

GearmanWorker::register — Register a function with the job server

Descrição

public GearmanWorker::register(string $function_name, int $timeout = 0): bool

Registers a function name with the job server with an optional timeout. The timeout specifies how many seconds the server will wait before marking a job as failed. If the timeout is set to zero, there is no timeout.

Parâmetros

function_name

The name of a function to register with the job server

timeout

An interval of time in seconds

Valor Retornado

A standard Gearman return value.

Veja Também

  • GearmanWorker::unregister() - Unregister a function name with the job servers
  • GearmanWorker::unregisterAll() - Unregister all function names with the job servers


Remove worker options

  • « GearmanWorker::register
  • GearmanWorker::returnCode »
  • PHP Manual
  • GearmanWorker
  • Remove worker options

GearmanWorker::removeOptions

(PECL gearman >= 0.6.0)

GearmanWorker::removeOptions — Remove worker options

Descrição

public GearmanWorker::removeOptions(int $option): true

Removes (unsets) one or more worker options.

Parâmetros

option

The options to be removed (unset)

Valor Retornado

Sempre retorna true.

Veja Também

  • GearmanWorker::options() - Get worker options
  • GearmanWorker::setOptions() - Set worker options
  • GearmanWorker::addOptions() - Add worker options


Get last Gearman return code

  • « GearmanWorker::removeOptions
  • GearmanWorker::setId »
  • PHP Manual
  • GearmanWorker
  • Get last Gearman return code

GearmanWorker::returnCode

(PECL gearman >= 0.5.0)

GearmanWorker::returnCode — Get last Gearman return code

Descrição

public GearmanWorker::returnCode(): int

Returns the last Gearman return code.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A valid Gearman return code.

Veja Também

  • GearmanWorker::error() - Get the last error encountered
  • GearmanWorker::getErrno() - Get errno


Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers

  • « GearmanWorker::returnCode
  • GearmanWorker::setOptions »
  • PHP Manual
  • GearmanWorker
  • Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers

GearmanWorker::setId

(Não há informação de versão disponível, talvez apenas no Git)

GearmanWorker::setId — Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers

Descrição

public GearmanWorker::setId(string $id): bool

Assigns the worker an identifier.

Parâmetros

id

A string identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 GearmanWorker::setId() example

Set an identifier for a simple worker.

<?php
$worker= new GearmanWorker();
$worker->setId('test');
?>

O exemplo acima produzirá algo semelhante a:

Run the following command:
gearadmin --workers

Output:
30 ::3a3a:3361:3361:3a33%976303667 - : test


Set worker options

  • « GearmanWorker::setId
  • GearmanWorker::setTimeout »
  • PHP Manual
  • GearmanWorker
  • Set worker options

GearmanWorker::setOptions

(PECL gearman >= 0.5.0)

GearmanWorker::setOptions — Set worker options

Descrição

public GearmanWorker::setOptions(int $option): true

Sets one or more options to the supplied value.

Parâmetros

option

The options to be set

Valor Retornado

Sempre retorna true.

Veja Também

  • GearmanWorker::options() - Get worker options
  • GearmanWorker::addOptions() - Add worker options
  • GearmanWorker::removeOptions() - Remove worker options
  • GearmanClient::setOptions() - Set client options


Set socket I/O activity timeout

  • « GearmanWorker::setOptions
  • GearmanWorker::timeout »
  • PHP Manual
  • GearmanWorker
  • Set socket I/O activity timeout

GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeout — Set socket I/O activity timeout

Descrição

public GearmanWorker::setTimeout(int $timeout): true

Sets the interval of time to wait for socket I/O activity.

Parâmetros

timeout

An interval of time in milliseconds. A negative value indicates an infinite timeout.

Valor Retornado

Sempre retorna true.

Exemplos

Exemplo #1 A simple worker with a 5 second timeout

<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server.
$gmworker->addFunction("reverse", "reverse_fn");

# Set the timeout to 5 seconds
$gmworker->setTimeout(5000);

echo "Waiting for job...\n";
while(@$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT)
{
if ($gmworker->returnCode() == GEARMAN_TIMEOUT)
{
# Normally one would want to do something useful here ...
echo "Timeout. Waiting for next job...\n";
continue;
}

if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}

echo "Done\n";

function reverse_fn($job)
{
return strrev($job->workload());
}

?>

Running the worker with no submitted jobs will generate output that looks like the following:

Starting
Waiting for job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...

Veja Também

  • GearmanWorker::timeout() - Get socket I/O activity timeout


Get socket I/O activity timeout

  • « GearmanWorker::setTimeout
  • GearmanWorker::unregister »
  • PHP Manual
  • GearmanWorker
  • Get socket I/O activity timeout

GearmanWorker::timeout

(PECL gearman >= 0.6.0)

GearmanWorker::timeout — Get socket I/O activity timeout

Descrição

public GearmanWorker::timeout(): int

Returns the current time to wait, in milliseconds, for socket I/O activity.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A time period is milliseconds. A negative value indicates an infinite timeout.

Veja Também

  • GearmanWorker::setTimeout() - Set socket I/O activity timeout


Unregister a function name with the job servers

  • « GearmanWorker::timeout
  • GearmanWorker::unregisterAll »
  • PHP Manual
  • GearmanWorker
  • Unregister a function name with the job servers

GearmanWorker::unregister

(PECL gearman >= 0.6.0)

GearmanWorker::unregister — Unregister a function name with the job servers

Descrição

public GearmanWorker::unregister(string $function_name): bool

Unregisters a function name with the job servers ensuring that no more jobs (for that function) are sent to this worker.

Parâmetros

function_name

The name of a function to register with the job server

Valor Retornado

A standard Gearman return value.

Veja Também

  • GearmanWorker::register() - Register a function with the job server
  • GearmanWorker::unregisterAll() - Unregister all function names with the job servers


Unregister all function names with the job servers

  • « GearmanWorker::unregister
  • GearmanWorker::wait »
  • PHP Manual
  • GearmanWorker
  • Unregister all function names with the job servers

GearmanWorker::unregisterAll

(PECL gearman >= 0.6.0)

GearmanWorker::unregisterAll — Unregister all function names with the job servers

Descrição

public GearmanWorker::unregisterAll(): bool

Unregisters all previously registered functions, ensuring that no more jobs are sent to this worker.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A standard Gearman return value.

Veja Também

  • GearmanWorker::register() - Register a function with the job server
  • GearmanWorker::unregister() - Unregister a function name with the job servers


Wait for activity from one of the job servers

  • « GearmanWorker::unregisterAll
  • GearmanWorker::work »
  • PHP Manual
  • GearmanWorker
  • Wait for activity from one of the job servers

GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::wait — Wait for activity from one of the job servers

Descrição

public GearmanWorker::wait(): bool

Causes the worker to wait for activity from one of the Gearman job servers when operating in non-blocking I/O mode. On failure, issues a E_WARNING with the last Gearman error encountered.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Running worker in non-blocking mode

<?php

echo "Starting\n";

# Create our worker object
$worker= new GearmanWorker();

# Make the worker non-blocking
$worker->addOptions(GEARMAN_WORKER_NON_BLOCKING);

# Add the default server (localhost, port 4730)
$worker->addServer();

# Add our reverse function
$worker->addFunction('reverse', 'reverse_fn');

# Try to grab a job
while (@$worker->work() ||
$worker->returnCode() == GEARMAN_IO_WAIT ||
$worker->returnCode() == GEARMAN_NO_JOBS)
{
if ($worker->returnCode() == GEARMAN_SUCCESS)
continue;

echo "Waiting for next job...\n";
if (!@$worker->wait())
{
if ($worker->returnCode() == GEARMAN_NO_ACTIVE_FDS)
{
# We are not connected to any servers, so wait a bit before
# trying to reconnect.
sleep(5);
continue;
}
break;
}
}

echo "Worker Error: " . $worker->error() . "\n";

function reverse_fn($job)
{
return strrev($job->workload());
}

?>

Veja Também

  • GearmanWorker::work() - Wait for and perform jobs


Wait for and perform jobs

  • « GearmanWorker::wait
  • GearmanException »
  • PHP Manual
  • GearmanWorker
  • Wait for and perform jobs

GearmanWorker::work

(PECL gearman >= 0.5.0)

GearmanWorker::work — Wait for and perform jobs

Descrição

public GearmanWorker::work(): bool

Waits for a job to be assigned and then calls the appropriate callback function. Issues an E_WARNING with the last Gearman error if the return code is not one of GEARMAN_SUCCESS, GEARMAN_IO_WAIT, or GEARMAN_WORK_FAIL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 GearmanWorker::work() example

<?php

# create the worker
$worker = new GearmanWorker();

# add the default job server (localhost)
$worker->addServer();

# add the reverse function
$worker->addFunction("reverse", "my_reverse_function");

# start te worker listening for job submissions
while ($worker->work());

function my_reverse_function($job)
{
return strrev($job->workload());
}

?>

Veja Também

  • GearmanWorker::addFunction() - Register and add callback function


The GearmanException class

(PECL gearman >= 0.5.0)

Introdução

Resumo da classe

/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Protocolo Leve de Acesso ao Diretório

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Usando as chamadas LDAP do PHP
  • Controles LDAP
  • Exemplos
    • Uso básico
    • Controles LDAP
  • Funções do LDAP
    • ldap_8859_to_t61 — Translate 8859 characters to t61 characters
    • ldap_add_ext — Add entries to LDAP directory
    • ldap_add — Add entries to LDAP directory
    • ldap_bind_ext — Bind to LDAP directory
    • ldap_bind — Bind to LDAP directory
    • ldap_close — Sinônimo de ldap_unbind
    • ldap_compare — Compare value of attribute found in entry specified with DN
    • ldap_connect_wallet — Connect to an LDAP server
    • ldap_connect — Connect to an LDAP server
    • ldap_control_paged_result_response — Retrieve the LDAP pagination cookie
    • ldap_control_paged_result — Send LDAP pagination control
    • ldap_count_entries — Count the number of entries in a search
    • ldap_count_references — Counts the number of references in a search result
    • ldap_delete_ext — Delete an entry from a directory
    • ldap_delete — Delete an entry from a directory
    • ldap_dn2ufn — Convert DN to User Friendly Naming format
    • ldap_err2str — Convert LDAP error number into string error message
    • ldap_errno — Return the LDAP error number of the last LDAP command
    • ldap_error — Return the LDAP error message of the last LDAP command
    • ldap_escape — Escape a string for use in an LDAP filter or DN
    • ldap_exop_passwd — PASSWD extended operation helper
    • ldap_exop_refresh — Refresh extended operation helper
    • ldap_exop_sync — Performs an extended operation
    • ldap_exop_whoami — WHOAMI extended operation helper
    • ldap_exop — Performs an extended operation
    • ldap_explode_dn — Splits DN into its component parts
    • ldap_first_attribute — Return first attribute
    • ldap_first_entry — Return first result id
    • ldap_first_reference — Return first reference
    • ldap_free_result — Free result memory
    • ldap_get_attributes — Get attributes from a search result entry
    • ldap_get_dn — Get the DN of a result entry
    • ldap_get_entries — Get all result entries
    • ldap_get_option — Get the current value for given option
    • ldap_get_values_len — Get all binary values from a result entry
    • ldap_get_values — Get all values from a result entry
    • ldap_list — Single-level search
    • ldap_mod_add_ext — Add attribute values to current attributes
    • ldap_mod_add — Add attribute values to current attributes
    • ldap_mod_del_ext — Delete attribute values from current attributes
    • ldap_mod_del — Delete attribute values from current attributes
    • ldap_mod_replace_ext — Replace attribute values with new ones
    • ldap_mod_replace — Replace attribute values with new ones
    • ldap_modify_batch — Batch and execute modifications on an LDAP entry
    • ldap_modify — Sinônimo de ldap_mod_replace
    • ldap_next_attribute — Get the next attribute in result
    • ldap_next_entry — Get next result entry
    • ldap_next_reference — Get next reference
    • ldap_parse_exop — Parse result object from an LDAP extended operation
    • ldap_parse_reference — Extract information from reference entry
    • ldap_parse_result — Extract information from result
    • ldap_read — Read an entry
    • ldap_rename_ext — Modify the name of an entry
    • ldap_rename — Modify the name of an entry
    • ldap_sasl_bind — Bind to LDAP directory using SASL
    • ldap_search — Search LDAP tree
    • 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 on the client side
    • ldap_start_tls — Start TLS
    • ldap_t61_to_8859 — Translate t61 characters to 8859 characters
    • ldap_unbind — Unbind from LDAP directory
  • LDAP\Connection — A classe LDAP\Connection
  • LDAP\Result — A classe LDAP\Result
  • LDAP\ResultEntry — A classe LDAP\ResultEntry


Introdução

LDAP é o Protocolo Leve de Acesso ao Diretório, e é um protocolo usado para acessar "Servidores de Diretório". O Diretório é um tipo especial de banco de dados que contém informação em uma estrutura de árvore.

O conceito é similar a uma estrutura de diretórios de disco rígido, exceto que neste contexto, o diretório raiz é "O Mundo" e os sub-diretórios de primeiro nível são "países". Níveis mais baixos da estrutura de diretório contêm entradas para empresas, organizações ou lugares e, em níveis ainda mais baixos, encontram-se entradas de diretório para pessoas e talvez equipamentos ou documentos.

Para se referir a um arquivo em um sub-diretório no disco rígido, pode ser usado algo como:

   /usr/local/myapp/docs

As barras marcam cada divisão na referência, e a sequência é lida da esquerda para a direita.

O equivalente para a referência de arquivo completamente qualificada no LDAP é o "nome distinto" (distinguished name), referido simplesmente como "dn". Um exemplo de dn pode ser:

   cn=Maria Silva,ou=Contas,o=Minha Empresa,c=BR

A vírgula marca cada divisão na referência e a sequência é lida da direita para a esquerda. Este dn seria lido como:

   country = BR
   organization = Minha Empresa
   organizationalUnit = Contas
   commonName = Maria Silva

Da mesma forma que não há regras rígidas de como deve-se organizar a estrutura de diretórios de um disco rígido, um gerente de servidor de diretório pode configurar qualquer estrutura que faça sentido para o prorósito. Entretanto, há algumas convenções usadas. A mensagem é que não se pode escrever código para acessar um servidor de diretório a menos que se conheça algo sobre sua estrutura, da mesma forma que não se pode usar um banco de dados sem conhecimento do que está disponível.

Muita informação sobre LDAP pode ser encontrada em

  • » Mozilla

  • » Projeto OpenLDAP

  • Internet Engineering Taskforce RFCs » 4510 até » 4519.

O SDK da Netscape contém um » Guia do Programador muito útil, em formato HTML.


Dependências

É necessário obter e compilar bibliotecas clientes LDAP a partir de » OpenLDAP ou » Bind9.net para compilar o PHP com suporte LDAP. Para PHP 5.6 ou posterior é necessário OpenLDAP 2.4 ou mais recente.


Instalação

Suporte a LDAP no PHP não é habilitado por padrão. É necessário usar a opção de configuração --with-ldap[=DIR] na compilação do PHP para habilitar o suporte a LDAP. DIR é o diretório base de instalação do LDAP. Para habilitar suporte SASL, certifique-se que --with-ldap-sasl[=DIR] seja usado, e que o arquivo sasl.h exista no sistema.

Nota: Nota aos usuários Win32

Para que esta extensão funcione, existem arquivos DLL que devem estar disponíveis no PATH do sistema Windows. Para saber como fazer isso, veja a FAQ intitulada "Como eu adiciono o meu diretório PHP ao PATH do Windows". Embora copiar arquivos DLL da pasta do PHP para o diretório system do Windows também funcione (porque o diretório system está, por padrão, no PATH do sistema), isso não é recomendado. Esta extensão requer que os seguintes arquivos estejam no PATH: libeay32.dll e ssleay32.dll, ou, a partir do OpenSSL 1.1 libcrypto-*.dll e libssl-*.dll

Para usar as bibliotecas LDAP da Oracle, um ambiente Oracle adequado deve ser definido.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração LDAP
Nome | Padrão | Modificável | Registro de Alterações
ldap.max_links | "-1" | INI_SYSTEM |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

ldap.max_links int

O número máximo de conexões LDAP por processo.


Tipos de Recurso

Em versões anteriores ao PHP 8.1.0, a maior parte das funções LDAP operam ou retornam recursos (ex.: ldap_connect() retorna um identificador de ligação LDAP positivo requerido pela maior parte das funções LDAP).


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

LDAP_DEREF_NEVER (int)
Regra de desreferenciação de apelido - Nunca.
LDAP_DEREF_SEARCHING (int)
Regra de desreferenciação de apelido - Pesquisando.
LDAP_DEREF_FINDING (int)
Regra de desreferenciação de apelido - Encontrando.
LDAP_DEREF_ALWAYS (int)
Regra de desreferenciação de apelido - Sempre.
LDAP_OPT_DEREF (int)
Especifica regras alternativas para seguir apelidos no servidor.
LDAP_OPT_SIZELIMIT (int)

Especifica o número máximo de entradas que podem ser retornadas em uma operação de pesquisa.

Nota: O limite de tamanho real para operações é também ligado ao número máximo de entradas de retorno configurado no servidor. A menor destas duas configurações é o limite de tamanho real.

LDAP_OPT_TIMELIMIT (int)
Especifica o número de segundos a esperar por resultados de pesquisa.

Nota: O limite de tempo real para operações é também ligado ao tempo máximo de retorno configurado no servidor. A menor destas duas configurações é o limite de tempo real.

LDAP_OPT_NETWORK_TIMEOUT (int)
Opção de ldap_set_option() para permitir definir limite de tempo de rede. (Disponível a partir do PHP 5.3.0)
LDAP_OPT_PROTOCOL_VERSION (int)
Especifica o protocolo LDAP a ser usado (V2 or V3).
LDAP_OPT_ERROR_NUMBER (int)
Número de erro de sessão mais recente.
LDAP_OPT_REFERRALS (int)
Especifica se deve seguir automaticamente referências retornadas pelo servidor LDAP.
LDAP_OPT_RESTART (int)
Determina se a conexão deve ou não ser implicitamente reiniciada.
LDAP_OPT_HOST_NAME (int)
Define/obtém uma lista de servidores separadas por espaço ao tentar uma conexão.
LDAP_OPT_ERROR_STRING (int)
Sinônimo de LDAP_OPT_DIAGNOSTIC_MESSAGE.
LDAP_OPT_DIAGNOSTIC_MESSAGE (int)
Obtém a mensagem de erro mais recente da sessão.
LDAP_OPT_MATCHED_DN (int)
Define/obtém o DN correspondente associado com a conexão.
LDAP_OPT_SERVER_CONTROLS (int)
Especifica uma lista padrão de controles de servidor a ser enviada com cada requisição.
LDAP_OPT_CLIENT_CONTROLS (int)
Especifica um lista padrão de controles de cliente a ser processada com cada requisição.
LDAP_OPT_DEBUG_LEVEL (int)
Especifica um nível bit-a-bit para rastreamento de depuração.
LDAP_OPT_X_KEEPALIVE_IDLE (int)
Especifica o número de segundos em que uma conexão deve se manter ociosa antes que o TCP comece a enviar sondagens de manutenção de atividade.
LDAP_OPT_X_KEEPALIVE_PROBES (int)
Especifica o número máximo de sondagens de manutenção de atividade que o TCP deve enviar antes de derrubar a conexão.
LDAP_OPT_X_KEEPALIVE_INTERVAL (int)
Especifica o intervalo em segundos entre sondagens de manutenção de atividade individuais.
LDAP_OPT_X_TLS_CACERTDIR (int)
Especifica o caminho do diretório contendo os certificados CA.
LDAP_OPT_X_TLS_CACERTFILE (int)
Especifica o caminho completo do arquivo de certificado CA.
LDAP_OPT_X_TLS_CERTFILE (int)
Especifica o caminho completo do arquivo de certificado.
LDAP_OPT_X_TLS_CIPHER_SUITE (int)
Especifica o conjunto de cifras permitidas.
LDAP_OPT_X_TLS_CRLCHECK (int)
Especifica a estratégia de avaliação CRL. Deve ser uma das constantes: LDAP_OPT_X_TLS_CRL_NONE, LDAP_OPT_X_TLS_CRL_PEER, LDAP_OPT_X_TLS_CRL_ALL.

Nota: Esta opção é válida somente para OpenSSL.

LDAP_OPT_X_TLS_CRLFILE (int)
Especifica o caminho completo do arquivo CRL.

Nota: Esta opção é válida somente para GnuTLS.

LDAP_OPT_X_TLS_DHFILE (int)
Especifica o caminho completo do arquivo contendo os parâmetros para troca de chaves efêmera Diffie-Hellman.

Nota: Esta opção é ignorada pelo GnuTLS e pelo Mozilla NSS.

LDAP_OPT_X_TLS_KEYFILE (int)
Especifica o caminho completo do arquivo de chave de certificado.
LDAP_OPT_X_TLS_PROTOCOL_MIN (int)
Especifica a versão mínima de protocolo. Pode ser uma das constantes: LDAP_OPT_X_TLS_PROTOCOL_SSL2, LDAP_OPT_X_TLS_PROTOCOL_SSL3, LDAP_OPT_X_TLS_PROTOCOL_TLS1_0, LDAP_OPT_X_TLS_PROTOCOL_TLS1_1, LDAP_OPT_X_TLS_PROTOCOL_TLS1_2
LDAP_OPT_X_TLS_RANDOM_FILE (int)
Define/obtém o arquivo aleatório quando um dos padrões do sistema não estiver disponível.
LDAP_OPT_X_TLS_REQUIRE_CERT (int)
Especifica a estratégia de verificação de certificado. Deve ser uma das constantes: LDAP_OPT_X_TLS_NEVER, LDAP_OPT_X_TLS_HARD, LDAP_OPT_X_TLS_DEMAND, LDAP_OPT_X_TLS_ALLOW, LDAP_OPT_X_TLS_TRY. (Disponível a partir do PHP 7.0.0)
GSLC_SSL_NO_AUTH (int)
Modo de autenticação SSL - Nenhuma autenticação requerida. (Somente para LDAP Oracle)
GSLC_SSL_ONEWAY_AUTH (int)
Modo de autenticação SSL - Somente autenticação de servidor requerida. (Somente para LDAP Oracle)
GSLC_SSL_TWOWAY_AUTH (int)
Modo de autenticação SSL - Autenticação de servidor e cliente requeridas. (Somente para LDAP Oracle)
LDAP_EXOP_START_TLS (string)
Constante de operação estendida - Iniciar TLS » RFC 4511).
LDAP_EXOP_MODIFY_PASSWD (string)
Constante de operação estendida - Modify password (» RFC 3062).
LDAP_EXOP_REFRESH (string)
Constante de operação estendida - Atualizar (» RFC 2589).
LDAP_EXOP_WHO_AM_I (string)
Constante de operação estendida - WHOAMI (» RFC 4532).
LDAP_EXOP_TURN (string)
Constante de operação estendida - Turn (» RFC 4531).
LDAP_CONTROL_MANAGEDSAIT (string)
Constante de Controle - Gerencia IT DSA (» RFC 3296). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_PROXY_AUTHZ (string)
Constante de Controle - Autorização com Proxy (» RFC 4370). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_SUBENTRIES (string)
Constante de Controle - Sub-entradas (» RFC 3672). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_VALUESRETURNFILTER (string)
Constante de Controle - Filtrar valores de retorno (» RFC 3876). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_ASSERT (string)
Constante de Controle - Asserção (» RFC 4528). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_PRE_READ (string)
Constante de Controle - Pré-leitura (» RFC 4527). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_POST_READ (string)
Constante de Controle - Pós-leitura (» RFC 4527). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_SORTREQUEST (string)
Constante de Controle - Ordenar requisição (» RFC 2891). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_SORTRESPONSE (string)
Constante de Controle - Ordenar resposta (» RFC 2891). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_PAGEDRESULTS (string)
Constante de Controle - Resultados paginados (» RFC 2696). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_AUTHZID_REQUEST (string)
Constante de Controle - Requisição de Identidade de Autorização (» RFC 3829). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_AUTHZID_RESPONSE (string)
Constante de Controle - Reposta de Identidade de Autorização (» RFC 3829). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_SYNC (string)
Constante de Controle - Operação de Sincronização de Conteúdo (» RFC 4533). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_SYNC_STATE (string)
Constante de Controle - Estato de Operação de Sincronização de Conteúdo (» RFC 4533). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_SYNC_DONE (string)
Constante de Controle - Operação de Sincronização de Conteúdo Concluída (» RFC 4533). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_DONTUSECOPY (string)
Constante de Controle - Não Usar Cópia (» RFC 6171). Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_PASSWORDPOLICYREQUEST (string)
Constante de Controle - Requisição de Política de Senha. Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_PASSWORDPOLICYRESPONSE (string)
Constante de Controle - Resposta de Política de Senha. Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_X_INCREMENTAL_VALUES (string)
Constante de Controle - Valores Incrementais de Diretório Ativo. Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_X_DOMAIN_SCOPE (string)
Constante de Controle - Escopo de Domínio de Diretório Ativo. Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_X_PERMISSIVE_MODIFY (string)
Constante de Controle - Modificação Permissiva de Diretório Ativo. Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_X_SEARCH_OPTIONS (string)
Constante de Controle - Opções de Pesquisa de Diretório Ativo. Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_X_TREE_DELETE (string)
Constante de Controle - Remoção de Árvore de Diretório Ativo. Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_X_EXTENDED_DN (string)
Constante de Controle - DN Estendido de Diretório Ativo. Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_VLVREQUEST (string)
Constante de Controle - Requisição de Visualização de Lista Virtual. Disponível a partir do PHP 7.3.0.
LDAP_CONTROL_VLVRESPONSE (string)
Constante de Controle - Resposta de Visualização de Lista Virtual. Disponível a partir do PHP 7.3.0.


Usando as chamadas LDAP do PHP

Antes de usar as chamadas LDAP deve-se saber...

  • O nome ou endereço do servidor de diretório a ser usado

  • O "dn base" do servidor (a parte do diretório que é mantida neste servidor, que poderia ser "o=Minha Empresa,c=BR")

  • Se será necessária uma senha para acessar o servidor (muitos servidores irão fornecer acesso de leitura para uma "ligação anônima" mas irão requerer uma senha para as outras situações)

A sequência típica de chamadas LDAP em uma aplicação segue este padrão:

  ldap_connect()    // estabelece conexão ao servidor
     |
  ldap_bind()       // ligação anônima ou autenticada
     |
  faz algo como pesquisar ou atualizar o diretório
  e mostrar os resultados
     |
  ldap_close()      // fecha a conexão


Controles LDAP

Controles são objetos especiais que podem ser enviados junto com uma requisição LDAP para alterar o comportamento do servidor LDAP durante a realização da requisição. Pode também haver controles enviados pelo servidor junto com a resposta para fornecer mais informação, normalmente para responder a um objeto de controle da requisição.

Nota:

Nem todos os controles são suportados por todos os servidores LDAP. Para saber quais controles são suportados por um servidor, é necessário consultar o DSE raiz lendo-se um DN vazio com o filtro (objectClass=*).

Exemplo #1 Testando suporte ao controle de resultados paginados

<?php

// $ds é um identificador válido de ligação a um servidor de diretório

$result = ldap_read($ds, '', '(objectClass=*)', ['supportedControl']);
if (!in_array(LDAP_CONTROL_PAGEDRESULTS, ldap_get_entries($ds, $result)[0]['supportedcontrol'])) {
die("Este servidor não suporte controle de resultados paginados.");
}

?>

A partir do PHP 7.3, pode-se enviar controle com a requisição em todas as funções de requisição usando o parâmetro controls. Quando uma versão "ext" de uma função existir, deve-se usá-la se for desejado acessar o objeto de resposta completa e ser capaz de analisar controles de resposta a partir dele usando ldap_parse_result().

controls deve ser um array contendo um array para cada controle a enviar, contendo as seguintes chaves:

oid (string)
O OID do controle. Deve-se usar constantes LDAP_CONTROL_* para isto. Consulte as constantes LDAP.
iscritical (bool)
Se um controle for observado como crítico, a requisição falhará se o constrole não for suportado pelo servidor, ou se houver falha em sua aplicação. Observe que alguns controles devem ser sempre marcados como críticos como citado na RFC que os introduz. O padrão é false.
value (mixed)
Se aplicável, o valor do controle. Leia a seguir para mais informação.

A maior parte dos valores de controle são enviados ao servidor com codificação BER. O usuário pode aplicar a codificação BER por conta própria, ou pode-se passar um array com as chaves corretas de forma que a codificação é feita automaticamente. Controles que suportam ser passados como um array são:

  • LDAP_CONTROL_PAGEDRESULTS Chaves esperadas são [size] e [cookie]

  • LDAP_CONTROL_ASSERT Chave esperada é filter

  • LDAP_CONTROL_VALUESRETURNFILTER Chave esperada é filter

  • LDAP_CONTROL_PRE_READ Chave esperada é attrs

  • LDAP_CONTROL_POST_READ Chave esperada é attrs

  • LDAP_CONTROL_SORTREQUEST Espera um array de arrays com chaves attr, [oid], [reverse].

  • LDAP_CONTROL_VLVREQUEST Chaves esperadas são before, after, attrvalue|(offset, count), [context]

Os controles a seguir não precisam de nenhum valor:

  • LDAP_CONTROL_PASSWORDPOLICYREQUEST

  • LDAP_CONTROL_MANAGEDSAIT

  • LDAP_CONTROL_DONTUSECOPY

O controle LDAP_CONTROL_PROXY_AUTHZ é um caso especial já que não é esperado que seu valor seja codificado com BER, por usso pode-se usar diretamente uma string para seu valor.

Quando controles são analisados por ldap_parse_result(), valores são convertidos em array se suportado. Isto é suportado para:

  • LDAP_CONTROL_PASSWORDPOLICYRESPONSE Chaves são expire, grace, [error]

  • LDAP_CONTROL_PAGEDRESULTS Chaves são size, cookie

  • LDAP_CONTROL_PRE_READ Chaves são dn e nomes de atributo LDAP

  • LDAP_CONTROL_POST_READ Chaves são dn e nomes de atributo LDAP

  • LDAP_CONTROL_SORTRESPONSE Chaves são errcode, [attribute]

  • LDAP_CONTROL_VLVRESPONSE Chaves são target, count, errcode, context


  • « Controles LDAP
  • Uso básico »
  • PHP Manual
  • LDAP
  • Exemplos

Exemplos

Índice

  • Uso básico
  • Controles LDAP


Uso básico

Obtém informação para todas as entradas onde o sobrenome inicia com "S" em um servidor de diretório, mostrando um extrato com nome e endereço de correio eletrônico.

Exemplo #1 Exemplo de pesquisa LDAP

<?php
// sequência básica com o LDAP é conectar, ligar, pesquisar, interpretar resultado
// da pesquisa, fechar a conexão

echo "<h3>Teste de consulta LDAP</h3>";
echo "Conectando ...";
$ds=ldap_connect("localhost"); // deve ser um servidor LDAP válido!
echo "Resultado da conexão é " . $ds . "<br />";

if ($ds) {
echo "Ligando ...";
$r=ldap_bind($ds); // esta é uma ligação "anônima", tipicamente
// com acesso somente-leitura
echo "Resultado da ligação é " . $r . "<br />";

echo "Pesquisando por (sn=S*) ...";
// Pesquisa entrada de sobrenome
$sr=ldap_search($ds, "o=Minha Empresa, c=BR", "sn=S*");
echo "Resultado da pesquisa é " . $sr . "<br />";

echo "Número de entradas retornadas é " . ldap_count_entries($ds, $sr) . "<br />";

echo "Obtendo entradas ...<p>";
$info = ldap_get_entries($ds, $sr);
echo "Dados para " . $info["count"] . " itens retornados:<p>";

for ($i=0; $i<$info["count"]; $i++) {
echo "dn é: " . $info[$i]["dn"] . "<br />";
echo "primeira entrada cn é: " . $info[$i]["cn"][0] . "<br />";
echo "primeira entrada de e-mail é: " . $info[$i]["mail"][0] . "<br /><hr />";
}

echo "Fechando a conexão";
ldap_close($ds);

} else {
echo "<h4>Não foi possível conectar ao servidor LDAP</h4>";
}
?>


Controles LDAP

Aqui estão alguns exemplos de uso de Controles LDAP com PHP >= 7.3.0.

Exemplo #1 Ligação com informação de políticas

<?php

$user = 'cn=admin,dc=example,dc=com';
$passwd = 'senhaadministrador';

$ds = ldap_connect('ldap://localhost');

if ($ds) {
$r = ldap_bind_ext($ds, $user, $passwd, [['oid' => LDAP_CONTROL_PASSWORDPOLICYREQUEST]]);

if (ldap_parse_result($ds, $r, $errcode, $matcheddn, $errmsg, $referrals, $ctrls)) {
if ($errcode != 0) {
die("Erro: $errmsg ($errcode)");
}
if (isset($ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE])) {
$value = $ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE]['value'];
echo "Expira em: ".$value['expire']." segundos\n";
echo "Número de autenticações restantes: ".$value['grace']."\n";
if (isset($value['error'])) {
echo "Código de erro da política: ".$value['error'];
}
}
}
} else {
die("Não foi possível conectar ao servidor LDAP");
}
?>

Exemplo #2 Modifica a desencriptação somente se não estiver vazia

<?php
// $link é uma conexão LDAP

$result = ldap_mod_replace_ext(
$link,
'o=test,dc=example,dc=com',
['description' => 'Nova descrição'],
[
[
'oid' => LDAP_CONTROL_ASSERT,
'iscritical' => TRUE,
'value' => ['filter' => '(!(description=*))']
]
]
);

// E então usa ldap_parse_result
?>

Exemplo #3 Lendo alguns valores antes da remoção

<?php
// $link é uma conexão LDAP

$result = ldap_delete_ext(
$link,
'o=test,dc=example,dc=com',
[
[
'oid' => LDAP_CONTROL_PRE_READ,
'iscritical' => TRUE,
'value' => ['attrs' => ['o', 'description']]
]
]
);

// E então usa ldap_parse_result
?>

Exemplo #4 Remove uma referência

<?php
// $link é uma conexão LDAP

// Sem o controle o nó referenciado seria removido
// Certifique-se de definir o controle como crítico para evitar isso
$result = ldap_delete_ext(
$link,
'cn=reference,dc=example,dc=com',
[['oid' => LDAP_CONTROL_MANAGEDSAIT, 'iscritical' => TRUE]]
);

// E então usa ldap_parse_result
?>

Exemplo #5 Usa paginação para uma pesquisa

<?php
// $link é uma conexão LDAP

$cookie = '';

do {
$result = ldap_search(
$link, 'dc=example,dc=base', '(cn=*)', ['cn'], 0, 0, 0, LDAP_DEREF_NEVER,
[['oid' => LDAP_CONTROL_PAGEDRESULTS, 'value' => ['size' => 2, 'cookie' => $cookie]]]
);
ldap_parse_result($link, $result, $errcode , $matcheddn , $errmsg , $referrals, $controls);
// Para deixar o exemplo curto os erros não são testados
$entries = ldap_get_entries($link, $result);
foreach ($entries as $entry) {
echo "cn: ".$entry['cn'][0]."\n";
}
if (isset($controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'])) {
// É necessário passar o cookie da última chamada para a próxima
$cookie = $controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'];
} else {
$cookie = '';
}
// Cookie vazio significa última página
} while (strlen($cookie) > 0);
?>


Funções do LDAP

Índice

  • ldap_8859_to_t61 — Translate 8859 characters to t61 characters
  • ldap_add_ext — Add entries to LDAP directory
  • ldap_add — Add entries to LDAP directory
  • ldap_bind_ext — Bind to LDAP directory
  • ldap_bind — Bind to LDAP directory
  • ldap_close — Sinônimo de ldap_unbind
  • ldap_compare — Compare value of attribute found in entry specified with DN
  • ldap_connect_wallet — Connect to an LDAP server
  • ldap_connect — Connect to an LDAP server
  • ldap_control_paged_result_response — Retrieve the LDAP pagination cookie
  • ldap_control_paged_result — Send LDAP pagination control
  • ldap_count_entries — Count the number of entries in a search
  • ldap_count_references — Counts the number of references in a search result
  • ldap_delete_ext — Delete an entry from a directory
  • ldap_delete — Delete an entry from a directory
  • ldap_dn2ufn — Convert DN to User Friendly Naming format
  • ldap_err2str — Convert LDAP error number into string error message
  • ldap_errno — Return the LDAP error number of the last LDAP command
  • ldap_error — Return the LDAP error message of the last LDAP command
  • ldap_escape — Escape a string for use in an LDAP filter or DN
  • ldap_exop_passwd — PASSWD extended operation helper
  • ldap_exop_refresh — Refresh extended operation helper
  • ldap_exop_sync — Performs an extended operation
  • ldap_exop_whoami — WHOAMI extended operation helper
  • ldap_exop — Performs an extended operation
  • ldap_explode_dn — Splits DN into its component parts
  • ldap_first_attribute — Return first attribute
  • ldap_first_entry — Return first result id
  • ldap_first_reference — Return first reference
  • ldap_free_result — Free result memory
  • ldap_get_attributes — Get attributes from a search result entry
  • ldap_get_dn — Get the DN of a result entry
  • ldap_get_entries — Get all result entries
  • ldap_get_option — Get the current value for given option
  • ldap_get_values_len — Get all binary values from a result entry
  • ldap_get_values — Get all values from a result entry
  • ldap_list — Single-level search
  • ldap_mod_add_ext — Add attribute values to current attributes
  • ldap_mod_add — Add attribute values to current attributes
  • ldap_mod_del_ext — Delete attribute values from current attributes
  • ldap_mod_del — Delete attribute values from current attributes
  • ldap_mod_replace_ext — Replace attribute values with new ones
  • ldap_mod_replace — Replace attribute values with new ones
  • ldap_modify_batch — Batch and execute modifications on an LDAP entry
  • ldap_modify — Sinônimo de ldap_mod_replace
  • ldap_next_attribute — Get the next attribute in result
  • ldap_next_entry — Get next result entry
  • ldap_next_reference — Get next reference
  • ldap_parse_exop — Parse result object from an LDAP extended operation
  • ldap_parse_reference — Extract information from reference entry
  • ldap_parse_result — Extract information from result
  • ldap_read — Read an entry
  • ldap_rename_ext — Modify the name of an entry
  • ldap_rename — Modify the name of an entry
  • ldap_sasl_bind — Bind to LDAP directory using SASL
  • ldap_search — Search LDAP tree
  • 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 on the client side
  • ldap_start_tls — Start TLS
  • ldap_t61_to_8859 — Translate t61 characters to 8859 characters
  • ldap_unbind — Unbind from LDAP directory


Translate 8859 characters to t61 characters

  • « Funções do LDAP
  • ldap_add_ext »
  • PHP Manual
  • Funções do LDAP
  • Translate 8859 characters to t61 characters

ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

ldap_8859_to_t61 — Translate 8859 characters to t61 characters

Descrição

ldap_8859_to_t61(string $value): string|false

Translate ISO-8859 characters to t61 characters.

This function is useful if you have to talk to a legacy LDAPv2 server.

Parâmetros

value

The text to be translated.

Valor Retornado

Return the t61 translation of value, ou false em caso de falha.

Veja Também

  • ldap_t61_to_8859() - Translate t61 characters to 8859 characters


Add entries to LDAP directory

  • « ldap_8859_to_t61
  • ldap_add »
  • PHP Manual
  • Funções do LDAP
  • Add entries to LDAP directory

ldap_add_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_add_ext — Add entries to LDAP directory

Descrição

ldap_add_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Does the same thing as ldap_add() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Parâmetros

See ldap_add()

Valor Retornado

Retorna uma instância de LDAP\Result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • ldap_add() - Add entries to LDAP directory
  • ldap_parse_result() - Extract information from result


Add entries to LDAP directory

  • « ldap_add_ext
  • ldap_bind_ext »
  • PHP Manual
  • Funções do LDAP
  • Add entries to LDAP directory

ldap_add

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_add — Add entries to LDAP directory

Descrição

ldap_add(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Add entries in the LDAP directory.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

dn

The distinguished name of an LDAP entity.

entry

An array that specifies the information about the entry. The values in the entries are indexed by individual attributes. In case of multiple values for an attribute, they are indexed using integers starting with 0.

<?php
$entry["attribute1"] = "value";
$entry["attribute2"][0] = "value1";
$entry["attribute2"][1] = "value2";
?>

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Exemplos

Exemplo #1 Complete example with authenticated bind

<?php
$ds = ldap_connect("localhost"); // assuming the LDAP server is on this host

if ($ds) {
// bind with appropriate dn to give update access
$r = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");

// prepare data
$info["cn"] = "John Jones";
$info["sn"] = "Jones";
$info["objectclass"] = "person";

// add data to directory
$r = ldap_add($ds, "cn=John Jones, o=My Company, c=US", $info);

ldap_close($ds);
} else {
echo "Unable to connect to LDAP server";
}
?>

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • ldap_add_ext() - Add entries to LDAP directory
  • ldap_delete() - Delete an entry from a directory


Bind to LDAP directory

  • « ldap_add
  • ldap_bind »
  • PHP Manual
  • Funções do LDAP
  • Bind to LDAP directory

ldap_bind_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_bind_ext — Bind to LDAP directory

Descrição

ldap_bind_ext(
LDAP\Connection $ldap,
?string $dn = null,
?string $password = null,
?array $controls = null
): LDAP\Result|false

Does the same thing as ldap_bind() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Parâmetros

See ldap_bind()

Valor Retornado

Retorna uma instância de LDAP\Result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].

Veja Também

  • ldap_bind() - Bind to LDAP directory
  • ldap_parse_result() - Extract information from result


Bind to LDAP directory

  • « ldap_bind_ext
  • ldap_close »
  • PHP Manual
  • Funções do LDAP
  • Bind to LDAP directory

ldap_bind

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_bind — Bind to LDAP directory

Descrição

ldap_bind(LDAP\Connection $ldap, ?string $dn = null, ?string $password = null): bool

Binds to the LDAP directory with specified RDN and password.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

dn

password

If password is not specified or is empty, an anonymous bind is attempted. The dn can also be left empty for an anonymous bind. This is defined in https://tools.ietf.org/html/rfc2251#section-4.2.2

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.

Exemplos

Exemplo #1 Using LDAP Bind

<?php

// using ldap bind
$ldaprdn = 'uname'; // ldap rdn or dn
$ldappass = 'password'; // associated password

// connect to ldap server
$ldapconn = ldap_connect("ldap://ldap.example.com")
or die("Could not connect to LDAP server.");

if ($ldapconn) {

// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}

}

?>

Exemplo #2 Using LDAP Bind Anonymously

<?php

//using ldap bind anonymously

// connect to ldap server
$ldapconn = ldap_connect("ldap://ldap.example.com")
or die("Could not connect to LDAP server.");

if ($ldapconn) {

// binding anonymously
$ldapbind = ldap_bind($ldapconn);

if ($ldapbind) {
echo "LDAP bind anonymous successful...";
} else {
echo "LDAP bind anonymous failed...";
}

}

?>

Veja Também

  • ldap_bind_ext() - Bind to LDAP directory
  • ldap_unbind() - Unbind from LDAP directory


Sinônimo de ldap_unbind

  • « ldap_bind
  • ldap_compare »
  • PHP Manual
  • Funções do LDAP
  • Sinônimo de ldap_unbind

ldap_close

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_close — Sinônimo de ldap_unbind()

Descrição

Esta função é um apelido para: ldap_unbind().


Compare value of attribute found in entry specified with DN

  • « ldap_close
  • ldap_connect_wallet »
  • PHP Manual
  • Funções do LDAP
  • Compare value of attribute found in entry specified with DN

ldap_compare

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

ldap_compare — Compare value of attribute found in entry specified with DN

Descrição

ldap_compare(
LDAP\Connection $ldap,
string $dn,
string $attribute,
string $value,
?array $controls = null
): bool|int

Compare value of attribute with value of same attribute in an LDAP directory entry.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

dn

The distinguished name of an LDAP entity.

attribute

The attribute name.

value

The compared value.

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Returns true if value matches otherwise returns false. Returns -1 on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Exemplos

The following example demonstrates how to check whether or not given password matches the one defined in DN specified entry.

Exemplo #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.";
}
?>

Notas

Aviso

ldap_compare() can NOT be used to compare BINARY values!


Connect to an LDAP server

  • « ldap_compare
  • ldap_connect »
  • PHP Manual
  • Funções do LDAP
  • Connect to an LDAP server

ldap_connect_wallet

(PHP 8 >= 8.3.0)

ldap_connect_wallet — Connect to an LDAP server

Descrição

ldap_connect_wallet(
?string $uri = null,
string $wallet,
string $password,
int $auth_mode = GSLC_SSL_NO_AUTH
): LDAP\Connection|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

uri

wallet

password

auth_mode

Valor Retornado

Veja Também

  • ldap_connect() - Connect to an LDAP server


Connect to an LDAP server

  • « ldap_connect_wallet
  • ldap_control_paged_result_response »
  • PHP Manual
  • Funções do LDAP
  • Connect to an LDAP server

ldap_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_connect — Connect to an LDAP server

Descrição

ldap_connect(?string $uri = null): LDAP\Connection|false
Aviso

As of PHP 8.3.0, the following signature is deprecated.

ldap_connect(?string $host = null, int $port = 389): LDAP\Connection|false

Creates an LDAP\Connection connection and checks whether the given uri is plausible.

Nota: This function does not open a connection. It checks whether the given parameters are plausible and can be used to open a connection as soon as one is needed.

Parâmetros

uri

A full LDAP URI of the form ldap://hostname:port or ldaps://hostname:port for SSL encryption.

You can also provide multiple LDAP-URIs separated by a space as one string

Note that hostname:port is not a supported LDAP URI as the schema is missing.

host

The hostname to connect to.

port

The port to connect to.

Valor Retornado

Returns an LDAP\Connection instance when the provided LDAP URI seems plausible. It's a syntactic check of the provided parameter but the server(s) will not be contacted! If the syntactic check fails it returns false. ldap_connect() will otherwise return a LDAP\Connection instance as it does not actually connect but just initializes the connecting parameters. The actual connect happens with the next calls to ldap_* functions, usually with ldap_bind().

If no argument is specified then the LDAP\Connection instance of the already opened connection will be returned.

Registro de Alterações

Versão | Descrição
8.3.0 | Calling ldap_connect() with separate hostname and port is now deprecated.
8.1.0 | Returns an LDAP\Connection instance now; previously, a resource was returned.

Exemplos

Exemplo #1 Example of connecting to LDAP server.

<?php

// LDAP variables
$ldapuri = "ldap://ldap.example.com:389"; // your ldap-uri

// Connecting to LDAP
$ldapconn = ldap_connect($ldapuri)
or die("That LDAP-URI was not parseable");

?>

Exemplo #2 Example of connecting securely to LDAP server.

<?php

// make sure your host is the correct one
// that you issued your secure certificate to
$ldaphost = "ldaps://ldap.example.com/";

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost)
or die("That LDAP-URI was not parseable");

?>

Veja Também

  • ldap_bind() - Bind to LDAP directory


Retrieve the LDAP pagination cookie

  • « ldap_connect
  • ldap_control_paged_result »
  • PHP Manual
  • Funções do LDAP
  • Retrieve the LDAP pagination cookie

ldap_control_paged_result_response

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_result_response — Retrieve the LDAP pagination cookie

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. Em vez disso, o parâmetro controls da função ldap_search() deve ser usado. Veja também Controles LDAP para obter detalhes.

Descrição

ldap_control_paged_result_response(
resource $link,
resource $result,
string &$cookie = ?,
int &$estimated = ?
): bool

Retrieve the pagination information send by the server.

Parâmetros

link

An LDAP resource, returned by ldap_connect().

result

cookie

An opaque structure sent by the server.

estimated

The estimated number of entries to retrieve.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | This function has been removed.
7.4.0 | This function has been deprecated.

Veja Também

  • ldap_control_paged_result() - Send LDAP pagination control
  • » RFC2696 : LDAP Control Extension for Simple Paged Results Manipulation


Send LDAP pagination control

  • « ldap_control_paged_result_response
  • ldap_count_entries »
  • PHP Manual
  • Funções do LDAP
  • Send LDAP pagination control

ldap_control_paged_result

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_result — Send LDAP pagination control

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. Em vez disso, o parâmetro controls da função ldap_search() deve ser usado. Veja também Controles LDAP para obter detalhes.

Descrição

ldap_control_paged_result(
resource $link,
int $pagesize,
bool $iscritical = false,
string $cookie = ""
): bool

Enable LDAP pagination by sending the pagination control (page size, cookie...).

Parâmetros

link

An LDAP resource, returned by ldap_connect().

pagesize

The number of entries by page.

iscritical

Indicates whether the pagination is critical or not. If true and if the server doesn't support pagination, the search will return no result.

cookie

An opaque structure sent by the server (ldap_control_paged_result_response()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | This function has been removed.
7.4.0 | This function has been deprecated.

Exemplos

The example below show the retrieval of the first page of a search paginated with one entry by page.

Exemplo #1 LDAP pagination

<?php
// $ds is a valid link identifier (see ldap_connect)
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

$dn = 'ou=example,dc=org';
$filter = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');

// enable pagination with a page size of 1.
ldap_control_paged_result($ds, 1);

$sr = ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo $info['count'] . ' entries returned' . PHP_EOL;

The example below show the retrieval of all the result paginated with 100 entries by page.

Exemplo #2 LDAP pagination

<?php
// $ds is a valid link identifier (see ldap_connect)
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

$dn = 'ou=example,dc=org';
$filter = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');

// enable pagination with a page size of 100.
$pageSize = 100;

$cookie = '';
do {
ldap_control_paged_result($ds, $pageSize, true, $cookie);

$result = ldap_search($ds, $dn, $filter, $justthese);
$entries = ldap_get_entries($ds, $result);

foreach ($entries as $e) {
echo $e['dn'] . PHP_EOL;
}

ldap_control_paged_result_response($ds, $result, $cookie);

} while($cookie !== null && $cookie != '');

Notas

Nota:

Pagination control is a LDAPv3 protocol feature.

Veja Também

  • ldap_control_paged_result_response() - Retrieve the LDAP pagination cookie
  • » RFC2696 : LDAP Control Extension for Simple Paged Results Manipulation


Count the number of entries in a search

  • « ldap_control_paged_result
  • ldap_count_references »
  • PHP Manual
  • Funções do LDAP
  • Count the number of entries in a search

ldap_count_entries

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_count_entries — Count the number of entries in a search

Descrição

ldap_count_entries(LDAP\Connection $ldap, LDAP\Result $result): int

Returns the number of entries stored in the result of previous search operations.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

result

Uma instância de LDAP\Result, retornada por ldap_list() ou ldap_search().

Valor Retornado

Returns number of entries in the result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro result agora espera uma instância de LDAP\Result; anteriormente, um resource ldap result válido era esperado.

Exemplos

Exemplo #1 ldap_count_entries() example

Retrieve number of entries in the result.

// $ds is a valid LDAP\Connection instance for a directory server

$dn = 'ou=example,dc=org';
$filter = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');

$sr = ldap_search($ds, $dn, $filter, $justthese);

var_dump(ldap_count_entries($ds, $sr));

O exemplo acima produzirá algo semelhante a:

int(1)


Counts the number of references in a search result

  • « ldap_count_entries
  • ldap_delete_ext »
  • PHP Manual
  • Funções do LDAP
  • Counts the number of references in a search result

ldap_count_references

(PHP 8)

ldap_count_references — Counts the number of references in a search result

Descrição

ldap_count_references(LDAP\Connection $ldap, LDAP\Result $result): int

Counts the number of references in a search result.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

result

Uma instância de LDAP\Result, retornada por ldap_list() ou ldap_search().

Valor Retornado

Returns the number of references in a search result.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro result agora espera uma instância de LDAP\Result; anteriormente, um resource ldap result válido era esperado.

Veja Também

  • ldap_connect() - Connect to an LDAP server


Delete an entry from a directory

  • « ldap_count_references
  • ldap_delete »
  • PHP Manual
  • Funções do LDAP
  • Delete an entry from a directory

ldap_delete_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_delete_ext — Delete an entry from a directory

Descrição

ldap_delete_ext(LDAP\Connection $ldap, string $dn, ?array $controls = null): LDAP\Result|false

Does the same thing as ldap_delete() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Parâmetros

See ldap_delete()

Valor Retornado

Retorna uma instância de LDAP\Result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].

Veja Também

  • ldap_delete() - Delete an entry from a directory
  • ldap_parse_result() - Extract information from result


Delete an entry from a directory

  • « ldap_delete_ext
  • ldap_dn2ufn »
  • PHP Manual
  • Funções do LDAP
  • Delete an entry from a directory

ldap_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_delete — Delete an entry from a directory

Descrição

ldap_delete(LDAP\Connection $ldap, string $dn, ?array $controls = null): bool

Deletes a particular entry in LDAP directory.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

dn

The distinguished name of an LDAP entity.

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Veja Também

  • ldap_delete_ext() - Delete an entry from a directory
  • ldap_add() - Add entries to LDAP directory


Convert DN to User Friendly Naming format

  • « ldap_delete
  • ldap_err2str »
  • PHP Manual
  • Funções do LDAP
  • Convert DN to User Friendly Naming format

ldap_dn2ufn

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_dn2ufn — Convert DN to User Friendly Naming format

Descrição

ldap_dn2ufn(string $dn): string|false

Turns the specified dn, into a more user-friendly form, stripping off type names.

Parâmetros

dn

The distinguished name of an LDAP entity.

Valor Retornado

Returns the user friendly name, ou false em caso de falha.


Convert LDAP error number into string error message

  • « ldap_dn2ufn
  • ldap_errno »
  • PHP Manual
  • Funções do LDAP
  • Convert LDAP error number into string error message

ldap_err2str

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_err2str — Convert LDAP error number into string error message

Descrição

ldap_err2str(int $errno): string

Returns the string error message explaining the error number errno. While LDAP errno numbers are standardized, different libraries return different or even localized textual error messages. Never check for a specific error message text, but always use an error number to check.

Parâmetros

errno

The error number.

Valor Retornado

Returns the error message, as a string.

Exemplos

Exemplo #1 Enumerating all LDAP error messages

<?php
for ($i=0; $i<100; $i++) {
printf("Error $i: %s<br />\n", ldap_err2str($i));
}
?>

Veja Também

  • ldap_errno() - Return the LDAP error number of the last LDAP command
  • ldap_error() - Return the LDAP error message of the last LDAP command


Return the LDAP error number of the last LDAP command

  • « ldap_err2str
  • ldap_error »
  • PHP Manual
  • Funções do LDAP
  • Return the LDAP error number of the last LDAP command

ldap_errno

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_errno — Return the LDAP error number of the last LDAP command

Descrição

ldap_errno(LDAP\Connection $ldap): int

Returns the standardized error number returned by the last LDAP command. This number can be converted into a textual error message using ldap_err2str().

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

Valor Retornado

Return the LDAP error number of the last LDAP command for this link.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.

Exemplos

Unless you lower your warning level in your php.ini sufficiently or prefix your LDAP commands with @ (at) characters to suppress warning output, the errors generated will also show up in your HTML output.

Exemplo #1 Generating and catching an error

<?php
// This example contains an error, which we will catch.
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);
// syntax error in filter expression (errno 87),
// must be "objectclass=*" to work.
$res = @ldap_search($ld, "o=Myorg, c=DE", "objectclass");
if (!$res) {
echo "LDAP-Errno: " . ldap_errno($ld) . "<br />\n";
echo "LDAP-Error: " . ldap_error($ld) . "<br />\n";
die("Argh!<br />\n");
}
$info = ldap_get_entries($ld, $res);
echo $info["count"] . " matching entries.<br />\n";
?>

Veja Também

  • ldap_err2str() - Convert LDAP error number into string error message
  • ldap_error() - Return the LDAP error message of the last LDAP command


Return the LDAP error message of the last LDAP command

  • « ldap_errno
  • ldap_escape »
  • PHP Manual
  • Funções do LDAP
  • Return the LDAP error message of the last LDAP command

ldap_error

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_error — Return the LDAP error message of the last LDAP command

Descrição

ldap_error(LDAP\Connection $ldap): string

Returns the string error message explaining the error generated by the last LDAP command for the given ldap. While LDAP errno numbers are standardized, different libraries return different or even localized textual error messages. Never check for a specific error message text, but always use an error number to check.

Unless you lower your warning level in your php.ini sufficiently or prefix your LDAP commands with @ (at) characters to suppress warning output, the errors generated will also show up in your HTML output.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

Valor Retornado

Returns string error message.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.

Veja Também

  • ldap_err2str() - Convert LDAP error number into string error message
  • ldap_errno() - Return the LDAP error number of the last LDAP command


Escape a string for use in an LDAP filter or DN

  • « ldap_error
  • ldap_exop_passwd »
  • PHP Manual
  • Funções do LDAP
  • Escape a string for use in an LDAP filter or DN

ldap_escape

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

ldap_escape — Escape a string for use in an LDAP filter or DN

Descrição

ldap_escape(string $value, string $ignore = "", int $flags = 0): string

Escapes value for use in the context implied by flags.

Parâmetros

value

The value to escape.

ignore

Characters to ignore when escaping.

flags

The context the escaped string will be used in: LDAP_ESCAPE_FILTER for filters to be used with ldap_search(), or LDAP_ESCAPE_DN for DNs. If neither flag is passed, all chars are escaped.

Valor Retornado

Returns the escaped string.

Exemplos

When building an LDAP filter, you should use ldap_escape with LDAP_ESCAPE_FILTER flag.

Exemplo #1 Searching for an email address

<?php
// $ds is a valid LDAP\Connection instance for a directory server

// $mail is an email address provided by the user in a form

$base = "o=My Company, c=US";
$filter = "(mail=".ldap_escape($mail, "", LDAP_ESCAPE_FILTER).")";

$sr = ldap_search($ds, $base, $filter, array("sn", "givenname", "mail"));

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." entries returned\n";
?>


PASSWD extended operation helper

  • « ldap_escape
  • ldap_exop_refresh »
  • PHP Manual
  • Funções do LDAP
  • PASSWD extended operation helper

ldap_exop_passwd

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop_passwd — PASSWD extended operation helper

Descrição

ldap_exop_passwd(
LDAP\Connection $ldap,
string $user = "",
string $old_password = "",
string $new_password = "",
array &$controls = null
): string|bool

Performs a PASSWD extended operation.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

user

dn of the user to change the password of.

old_password

The old password of this user. May be ommited depending of server configuration.

new_password

The new password for this user. May be omitted or empty to have a generated password.

controls

If provided, a password policy request control is send with the request and this is filled with an array of LDAP Controls returned with the request.

Valor Retornado

Returns the generated password if new_password is empty or omitted. Otherwise returns true on success and false on failure.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Exemplos

Exemplo #1 PASSWD extended operation

<?php
$ds = ldap_connect("localhost"); // assuming the LDAP server is on this host

if ($ds) {
// bind with appropriate dn to give update access
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
if (!$bind) {
echo "Unable to bind to LDAP server";
exit;
}

// use PASSWD EXOP to change the user password for a generated one
$genpw = ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", "secret");
if ($genpw) {
// use the generated password to bind
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", $genpw);
}

// set the password back to "secret"
ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", $genpw, "secret");

ldap_close($ds);
} else {
echo "Unable to connect to LDAP server";
}
?>

Veja Também

  • ldap_exop() - Performs an extended operation
  • ldap_parse_exop() - Parse result object from an LDAP extended operation


Refresh extended operation helper

  • « ldap_exop_passwd
  • ldap_exop_sync »
  • PHP Manual
  • Funções do LDAP
  • Refresh extended operation helper

ldap_exop_refresh

(PHP 7 >= 7.3.0, PHP 8)

ldap_exop_refresh — Refresh extended operation helper

Descrição

ldap_exop_refresh(LDAP\Connection $ldap, string $dn, int $ttl): int|false

Performs a Refresh extended operation and returns the data.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

dn

dn of the entry to refresh.

ttl

Time in seconds (between 1 and 31557600) that the client requests that the entry exists in the directory before being automatically removed.

Valor Retornado

From RFC: The responseTtl field is the time in seconds which the server chooses to have as the time-to-live field for that entry. It must not be any smaller than that which the client requested, and it may be larger. However, to allow servers to maintain a relatively accurate directory, and to prevent clients from abusing the dynamic extensions, servers are permitted to shorten a client-requested time-to-live value, down to a minimum of 86400 seconds (one day). false will be returned on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.

Veja Também

  • ldap_exop() - Performs an extended operation


Performs an extended operation

  • « ldap_exop_refresh
  • ldap_exop_whoami »
  • PHP Manual
  • Funções do LDAP
  • Performs an extended operation

ldap_exop_sync

(PHP 8 >= 8.3.0)

ldap_exop_sync — Performs an extended operation

Descrição

ldap_exop_sync(
LDAP\Connection $ldap,
string $request_oid,
?string $request_data = null,
?array $controls = null,
string &$response_data = null,
string &$response_oid = null
): LDAP\Result|bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

request_oid

request_data

controls

response_data

response_oid

Valor Retornado

Veja Também

  • ldap_exop() - Performs an extended operation


WHOAMI extended operation helper

  • « ldap_exop_sync
  • ldap_exop »
  • PHP Manual
  • Funções do LDAP
  • WHOAMI extended operation helper

ldap_exop_whoami

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop_whoami — WHOAMI extended operation helper

Descrição

ldap_exop_whoami(LDAP\Connection $ldap): string|false

Performs a WHOAMI extended operation and returns the data.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

Valor Retornado

The data returned by the server, or false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.

Veja Também

  • ldap_exop() - Performs an extended operation


Performs an extended operation

  • « ldap_exop_whoami
  • ldap_explode_dn »
  • PHP Manual
  • Funções do LDAP
  • Performs an extended operation

ldap_exop

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop — Performs an extended operation

Descrição

ldap_exop(
LDAP\Connection $ldap,
string $request_oid,
string $request_data = null,
array $controls = null,
string &$response_data = ?,
string &$response_oid = ?
): mixed

Performs an extended operation on the specified ldap with request_oid the OID of the operation and request_data the data.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

request_oid

The extended operation request OID. You may use one of LDAP_EXOP_START_TLS, LDAP_EXOP_MODIFY_PASSWD, LDAP_EXOP_REFRESH, LDAP_EXOP_WHO_AM_I, LDAP_EXOP_TURN, or a string with the OID of the operation you want to send.

request_data

The extended operation request data. May be NULL for some operations like LDAP_EXOP_WHO_AM_I, may also need to be BER encoded.

controls

Array of LDAP Controls to send with the request.

response_data

Will be filled with the extended operation response data if provided. If not provided you may use ldap_parse_exop on the result object later to get this data.

response_oid

Will be filled with the response OID if provided, usually equal to the request OID.

Valor Retornado

When used with response_data, returns true on success or false on error. When used without response_data, returns a result identifier or false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
7.3.0 | Support for controls added

Exemplos

Exemplo #1 Whoami extended operation

<?php
$ds = ldap_connect("localhost"); // assuming the LDAP server is on this host

if ($ds) {
// bind with appropriate dn to give update access
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
if (!$bind) {
echo "Unable to bind to LDAP server";
exit;
}

// Call WHOAMI EXOP
$r = ldap_exop($ds, LDAP_EXOP_WHO_AM_I);

// Parse the result object
ldap_parse_exop($ds, $r, $retdata);
// Output: string(31) "dn:cn=root, o=My Company, c=US"
var_dump($retdata);

// Same thing using $response_data parameter
$success = ldap_exop($ds, LDAP_EXOP_WHO_AM_I, NULL, NULL, $retdata, $retoid);
if ($success) {
var_dump($retdata);
}

ldap_close($ds);
} else {
echo "Unable to connect to LDAP server";
}
?>

Veja Também

  • ldap_parse_result() - Extract information from result
  • ldap_parse_exop() - Parse result object from an LDAP extended operation
  • ldap_exop_whoami() - WHOAMI extended operation helper
  • ldap_exop_refresh() - Refresh extended operation helper
  • ldap_exop_passwd() - PASSWD extended operation helper


Splits DN into its component parts

  • « ldap_exop
  • ldap_first_attribute »
  • PHP Manual
  • Funções do LDAP
  • Splits DN into its component parts

ldap_explode_dn

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_explode_dn — Splits DN into its component parts

Descrição

ldap_explode_dn(string $dn, int $with_attrib): array|false

Splits the DN returned by ldap_get_dn() and breaks it up into its component parts. Each part is known as Relative Distinguished Name, or RDN.

Parâmetros

dn

The distinguished name of an LDAP entity.

with_attrib

Used to request if the RDNs are returned with only values or their attributes as well. To get RDNs with the attributes (i.e. in attribute=value format) set with_attrib to 0 and to get only values set it to 1.

Valor Retornado

Returns an array of all DN components, ou false em caso de falha. The first element in the array has count key and represents the number of returned values, next elements are numerically indexed DN components.


Return first attribute

  • « ldap_explode_dn
  • ldap_first_entry »
  • PHP Manual
  • Funções do LDAP
  • Return first attribute

ldap_first_attribute

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_first_attribute — Return first attribute

Descrição

ldap_first_attribute(LDAP\Connection $ldap, LDAP\ResultEntry $entry): string|false

Gets the first attribute in the given entry. Remaining attributes are retrieved by calling ldap_next_attribute() successively.

Similar to reading entries, attributes are also read one by one from a particular entry.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

entry

Uma instância de LDAP\ResultEntry.

Valor Retornado

Returns the first attribute in the entry on success and false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro entry agora espera uma instância de LDAP\ResultEntry; anteriormente, um resource ldap result entry válido era esperado.
8.0.0 | The unused third parameter ber_identifier is no longer accepted.

Veja Também

  • ldap_next_attribute() - Get the next attribute in result
  • ldap_get_attributes() - Get attributes from a search result entry


Return first result id

  • « ldap_first_attribute
  • ldap_first_reference »
  • PHP Manual
  • Funções do LDAP
  • Return first result id

ldap_first_entry

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_first_entry — Return first result id

Descrição

ldap_first_entry(LDAP\Connection $ldap, LDAP\Result $result): LDAP\ResultEntry|false

Returns the entry identifier for first entry in the result. This entry identifier is then supplied to ldap_next_entry() routine to get successive entries from the result.

Entries in the LDAP result are read sequentially using the ldap_first_entry() and ldap_next_entry() functions.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

result

Uma instância de LDAP\Result, retornada por ldap_list() ou ldap_search().

Valor Retornado

Returns an LDAP\ResultEntry instance, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro result agora espera uma instância de LDAP\Result; anteriormente, um resource ldap result válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\ResultEntry; anteriormente, um resource era retornado.

Veja Também

  • ldap_get_entries() - Get all result entries


Return first reference

  • « ldap_first_entry
  • ldap_free_result »
  • PHP Manual
  • Funções do LDAP
  • Return first reference

ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_first_reference — Return first reference

Descrição

ldap_first_reference(LDAP\Connection $ldap, LDAP\Result $result): LDAP\ResultEntry|false
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Free result memory

  • « ldap_first_reference
  • ldap_get_attributes »
  • PHP Manual
  • Funções do LDAP
  • Free result memory

ldap_free_result

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_free_result — Free result memory

Descrição

ldap_free_result(LDAP\Result $result): bool

Frees up the memory allocated internally to store the result. All result memory will be automatically freed when the script terminates.

Typically all the memory allocated for the LDAP result gets freed at the end of the script. In case the script is making successive searches which return large result sets, ldap_free_result() could be called to keep the runtime memory usage by the script low.

Parâmetros

result

Uma instância de LDAP\Result, retornada por ldap_list() ou ldap_search().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro result agora espera uma instância de LDAP\Result; anteriormente, um resource ldap result válido era esperado.


Get attributes from a search result entry

  • « ldap_free_result
  • ldap_get_dn »
  • PHP Manual
  • Funções do LDAP
  • Get attributes from a search result entry

ldap_get_attributes

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_attributes — Get attributes from a search result entry

Descrição

ldap_get_attributes(LDAP\Connection $ldap, LDAP\ResultEntry $entry): array

Reads attributes and values from an entry in the search result.

Having located a specific entry in the directory, you can find out what information is held for that entry by using this call. You would use this call for an application which "browses" directory entries and/or where you do not know the structure of the directory entries. In many applications you will be searching for a specific attribute such as an email address or a surname, and won't care what other data is held.

return_value["count"] = number of attributes in the entry
return_value[0] = first attribute
return_value[n] = nth attribute

return_value["attribute"]["count"] = number of values for attribute
return_value["attribute"][0] = first value of the attribute
return_value["attribute"][i] = (i+1)th value of the attribute

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

entry

Uma instância de LDAP\ResultEntry.

Valor Retornado

Returns a complete entry information in a multi-dimensional array.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro entry agora espera uma instância de LDAP\ResultEntry; anteriormente, um resource ldap result entry válido era esperado.

Exemplos

Exemplo #1 Show the list of attributes held for a particular directory entry

<?php
// $ds is a valid LDAP\Connection instance for a directory server

// $sr is a valid search result from a prior call to
// one of the ldap directory search calls

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"] . " attributes held for this entry:<p>";

for ($i=0; $i < $attrs["count"]; $i++) {
echo $attrs[$i] . "<br />";
}
?>

Veja Também

  • ldap_first_attribute() - Return first attribute
  • ldap_next_attribute() - Get the next attribute in result


Get the DN of a result entry

  • « ldap_get_attributes
  • ldap_get_entries »
  • PHP Manual
  • Funções do LDAP
  • Get the DN of a result entry

ldap_get_dn

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_dn — Get the DN of a result entry

Descrição

ldap_get_dn(LDAP\Connection $ldap, LDAP\ResultEntry $entry): string|false

Finds out the DN of an entry in the result.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

entry

Uma instância de LDAP\ResultEntry.

Valor Retornado

Returns the DN of the result entry and false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro entry agora espera uma instância de LDAP\ResultEntry; anteriormente, um resource ldap result entry válido era esperado.


Get all result entries

  • « ldap_get_dn
  • ldap_get_option »
  • PHP Manual
  • Funções do LDAP
  • Get all result entries

ldap_get_entries

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_entries — Get all result entries

Descrição

ldap_get_entries(LDAP\Connection $ldap, LDAP\Result $result): array|false

Reads multiple entries from the given result, and then reading the attributes and multiple values.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

result

Uma instância de LDAP\Result, retornada por ldap_list() ou ldap_search().

Valor Retornado

Returns a complete result information in a multi-dimensional array on success, ou false em caso de falha.

The structure of the array is as follows. The attribute index is converted to lowercase. (Attributes are case-insensitive for directory servers, but not when used as array indices.)

return_value["count"] = number of entries in the result
return_value[0] : refers to the details of first entry

return_value[i]["dn"] =  DN of the ith entry in the result

return_value[i]["count"] = number of attributes in ith entry
return_value[i][j] = NAME of the jth attribute in the ith entry in the result

return_value[i]["attribute"]["count"] = number of values for
                                        attribute in ith entry
return_value[i]["attribute"][j] = jth value of attribute in ith entry

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro result agora espera uma instância de LDAP\Result; anteriormente, um resource ldap result válido era esperado.

Veja Também

  • ldap_first_entry() - Return first result id
  • ldap_next_entry() - Get next result entry


Get the current value for given option

  • « ldap_get_entries
  • ldap_get_values_len »
  • PHP Manual
  • Funções do LDAP
  • Get the current value for given option

ldap_get_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ldap_get_option — Get the current value for given option

Descrição

ldap_get_option(LDAP\Connection $ldap, int $option, array|string|int &$value = null): bool

Sets value to the value of the specified option.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

option

The parameter option can be one of:

Option | Type | since
LDAP_OPT_DEREF int
LDAP_OPT_SIZELIMIT int
LDAP_OPT_TIMELIMIT int
LDAP_OPT_NETWORK_TIMEOUT int
LDAP_OPT_PROTOCOL_VERSION int
LDAP_OPT_ERROR_NUMBER int
LDAP_OPT_DIAGNOSTIC_MESSAGE string
LDAP_OPT_REFERRALS int
LDAP_OPT_RESTART int
LDAP_OPT_HOST_NAME string
LDAP_OPT_ERROR_STRING string
LDAP_OPT_MATCHED_DN string
LDAP_OPT_SERVER_CONTROLS array
LDAP_OPT_CLIENT_CONTROLS array
LDAP_OPT_X_KEEPALIVE_IDLE | int | 7.1
LDAP_OPT_X_KEEPALIVE_PROBES | int | 7.1
LDAP_OPT_X_KEEPALIVE_INTERVAL | int | 7.1
LDAP_OPT_X_TLS_CACERTDIR | string | 7.1
LDAP_OPT_X_TLS_CACERTFILE | string | 7.1
LDAP_OPT_X_TLS_CERTFILE | string | 7.1
LDAP_OPT_X_TLS_CIPHER_SUITE | string | 7.1
LDAP_OPT_X_TLS_CRLCHECK | int | 7.1
LDAP_OPT_X_TLS_CRL_NONE | int | 7.1
LDAP_OPT_X_TLS_CRL_PEER | int | 7.1
LDAP_OPT_X_TLS_CRL_ALL | int | 7.1
LDAP_OPT_X_TLS_CRLFILE | string | 7.1
LDAP_OPT_X_TLS_DHFILE | string | 7.1
LDAP_OPT_X_TLS_KEYFILE | string | 7.1
LDAP_OPT_X_TLS_PACKAGE | string | 7.1
LDAP_OPT_X_TLS_PROTOCOL_MIN | int | 7.1
LDAP_OPT_X_TLS_RANDOM_FILE | string | 7.1
LDAP_OPT_X_TLS_REQUIRE_CERT int

value

This will be set to the option value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.

Exemplos

Exemplo #1 Check protocol version

<?php
// $ds is a valid LDAP\Connection instance 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";
}
?>

Notas

Nota:

This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x.

Veja Também

  • ldap_set_option() - Set the value of the given option


Get all binary values from a result entry

  • « ldap_get_option
  • ldap_get_values »
  • PHP Manual
  • Funções do LDAP
  • Get all binary values from a result entry

ldap_get_values_len

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_values_len — Get all binary values from a result entry

Descrição

ldap_get_values_len(LDAP\Connection $ldap, LDAP\ResultEntry $entry, string $attribute): array|false

Reads all the values of the attribute in the entry in the result.

This function is used exactly like ldap_get_values() except that it handles binary data and not string data.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

entry

Uma instância de LDAP\ResultEntry.

attribute

Valor Retornado

Returns an array of values for the attribute on success and false on error. Individual values are accessed by integer index in the array. The first index is 0. The number of values can be found by indexing "count" in the resultant array.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro entry agora espera uma instância de LDAP\ResultEntry; anteriormente, um resource ldap result entry válido era esperado.

Veja Também

  • ldap_get_values() - Get all values from a result entry


Get all values from a result entry

  • « ldap_get_values_len
  • ldap_list »
  • PHP Manual
  • Funções do LDAP
  • Get all values from a result entry

ldap_get_values

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_values — Get all values from a result entry

Descrição

ldap_get_values(LDAP\Connection $ldap, LDAP\ResultEntry $entry, string $attribute): array|false

Reads all the values of the attribute in the entry in the result.

This call needs a entry, so needs to be preceded by one of the ldap search calls and one of the calls to get an individual entry.

You application will either be hard coded to look for certain attributes (such as "surname" or "mail") or you will have to use the ldap_get_attributes() call to work out what attributes exist for a given entry.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

entry

Uma instância de LDAP\ResultEntry.

attribute

Valor Retornado

Returns an array of values for the attribute on success and false on error. The number of values can be found by indexing "count" in the resultant array. Individual values are accessed by integer index in the array. The first index is 0.

LDAP allows more than one entry for an attribute, so it can, for example, store a number of email addresses for one person's directory entry all labeled with the attribute "mail"

    return_value["count"] = number of values for attribute
    return_value[0] = first value of attribute
    return_value[i] = ith value of attribute

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro entry agora espera uma instância de LDAP\ResultEntry; anteriormente, um resource ldap result entry válido era esperado.

Exemplos

Exemplo #1 List all values of the "mail" attribute for a directory entry

<?php
// $ds is a valid LDAP\Connection instance for a directory server

// $sr is a valid search result from a prior call to
// one of the ldap directory search calls

// $entry is a valid entry identifier from a prior call to
// one of the calls that returns a directory entry

$values = ldap_get_values($ds, $entry, "mail");

echo $values["count"] . " email addresses for this entry.<br />";

for ($i=0; $i < $values["count"]; $i++) {
echo $values[$i] . "<br />";
}
?>

Veja Também

  • ldap_get_values_len() - Get all binary values from a result entry


Single-level search

  • « ldap_get_values
  • ldap_mod_add_ext »
  • PHP Manual
  • Funções do LDAP
  • Single-level search

ldap_list

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_list — Single-level search

Descrição

ldap_list(
LDAP\Connection|array $ldap,
array|string $base,
array|string $filter,
array $attributes = [],
int $attributes_only = 0,
int $sizelimit = -1,
int $timelimit = -1,
int $deref = LDAP_DEREF_NEVER,
?array $controls = null
): LDAP\Result|array|false

Performs the search for a specified filter on the directory with the scope LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL means that the search should only return information that is at the level immediately below the base given in the call. (Equivalent to typing "ls" and getting a list of files and folders in the current working directory.)

Também é possível realizar buscas paralelas. Neste caso, o primeiro argumento deve ser um array de instâncias de LDAP\Connection, em vez de apenas uma instância. Se as pesquisas não devem usar a mesma DN base e filtro, um array de DNs base e/ou um array de filtros podem ser passados como argumentos. Esses arrays devem ter o mesmo tamanho que o array de instâncias de LDAP\Connection, já que as primeiras entradas dos arrays são usadas para uma pesquisa, as segundas entradas são usadas para outra e assim por diante. Ao fazer pesquisas paralelas, um array de instâncias de LDAP\Result é retornado, exceto em caso de erro, quando o valor retornado será false.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

base

The base DN for the directory.

filter

attributes

An array of the required attributes, e.g. array("mail", "sn", "cn"). Note that the "dn" is always returned irrespective of which attributes types are requested.

Using this parameter is much more efficient than the default action (which is to return all attributes and their associated values). The use of this parameter should therefore be considered good practice.

attributes_only

Should be set to 1 if only attribute types are wanted. If set to 0 both attributes types and attribute values are fetched which is the default behaviour.

sizelimit

Enables you to limit the count of entries fetched. Setting this to 0 means no limit.

Nota:

This parameter can NOT override server-side preset sizelimit. You can set it lower though.

Some directory server hosts will be configured to return no more than a preset number of entries. If this occurs, the server will indicate that it has only returned a partial results set. This also occurs if you use this parameter to limit the count of fetched entries.

timelimit

Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.

Nota:

This parameter can NOT override server-side preset timelimit. You can set it lower though.

deref

Specifies how aliases should be handled during the search. It can be one of the following:

  • LDAP_DEREF_NEVER - (default) aliases are never dereferenced.
  • LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but not when locating the base object of the search.
  • LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base object but not during the search.
  • LDAP_DEREF_ALWAYS - aliases should be dereferenced always.

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Retorna uma instância de LDAP\Result, um array de instâncias de LDAP\Result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Exemplos

Exemplo #1 Produce a list of all organizational units of an organization

<?php
// $ds is a valid LDAP\Connection instance for a directory server

$basedn = "o=My Company, c=US";
$justthese = array("ou");

$sr = ldap_list($ds, $basedn, "ou=*", $justthese);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i < $info["count"]; $i++) {
echo $info[$i]["ou"][0];
}
?>

Veja Também

  • ldap_search() - Search LDAP tree


Add attribute values to current attributes

  • « ldap_list
  • ldap_mod_add »
  • PHP Manual
  • Funções do LDAP
  • Add attribute values to current attributes

ldap_mod_add_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_mod_add_ext — Add attribute values to current attributes

Descrição

ldap_mod_add_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Does the same thing as ldap_mod_add() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Parâmetros

See ldap_mod_add()

Valor Retornado

Retorna uma instância de LDAP\Result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Veja Também

  • ldap_mod_add() - Add attribute values to current attributes
  • ldap_parse_result() - Extract information from result


Add attribute values to current attributes

  • « ldap_mod_add_ext
  • ldap_mod_del_ext »
  • PHP Manual
  • Funções do LDAP
  • Add attribute values to current attributes

ldap_mod_add

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_mod_add — Add attribute values to current attributes

Descrição

ldap_mod_add(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Adds one or more attribute values to the specified dn. To add a whole new object see ldap_add() function.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

dn

The distinguished name of an LDAP entity.

entry

An associative array listing the attirbute values to add. If an attribute was not existing yet it will be added. If an attribute is existing you can only add values to it if it supports multiple values.

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • ldap_mod_add_ext() - Add attribute values to current attributes
  • ldap_mod_del() - Delete attribute values from current attributes
  • ldap_mod_replace() - Replace attribute values with new ones
  • ldap_modify_batch() - Batch and execute modifications on an LDAP entry


Delete attribute values from current attributes

  • « ldap_mod_add
  • ldap_mod_del »
  • PHP Manual
  • Funções do LDAP
  • Delete attribute values from current attributes

ldap_mod_del_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_mod_del_ext — Delete attribute values from current attributes

Descrição

ldap_mod_del_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Does the same thing as ldap_mod_del() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Parâmetros

See ldap_mod_del()

Valor Retornado

Retorna uma instância de LDAP\Result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Veja Também

  • ldap_mod_del() - Delete attribute values from current attributes
  • ldap_parse_result() - Extract information from result


Delete attribute values from current attributes

  • « ldap_mod_del_ext
  • ldap_mod_replace_ext »
  • PHP Manual
  • Funções do LDAP
  • Delete attribute values from current attributes

ldap_mod_del

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_mod_del — Delete attribute values from current attributes

Descrição

ldap_mod_del(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Removes one or more attribute values from the specified dn. Object deletions are done by the ldap_delete() function.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

dn

The distinguished name of an LDAP entity.

entry

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Veja Também

  • ldap_mod_del_ext() - Delete attribute values from current attributes
  • ldap_mod_add() - Add attribute values to current attributes
  • ldap_mod_replace() - Replace attribute values with new ones
  • ldap_modify_batch() - Batch and execute modifications on an LDAP entry


Replace attribute values with new ones

  • « ldap_mod_del
  • ldap_mod_replace »
  • PHP Manual
  • Funções do LDAP
  • Replace attribute values with new ones

ldap_mod_replace_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_mod_replace_ext — Replace attribute values with new ones

Descrição

ldap_mod_replace_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Does the same thing as ldap_mod_replace() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Parâmetros

See ldap_mod_replace()

Valor Retornado

Retorna uma instância de LDAP\Result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Veja Também

  • ldap_mod_replace() - Replace attribute values with new ones
  • ldap_parse_result() - Extract information from result


Replace attribute values with new ones

  • « ldap_mod_replace_ext
  • ldap_modify_batch »
  • PHP Manual
  • Funções do LDAP
  • Replace attribute values with new ones

ldap_mod_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_mod_replace — Replace attribute values with new ones

Descrição

ldap_mod_replace(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Replaces one or more attributes from the specified dn. It may also add or remove attributes.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

dn

The distinguished name of an LDAP entity.

entry

An associative array listing the attributes to replace. Sending an empty array as value will remove the attribute, while sending an attribute not existing yet on this entry will add it.

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • ldap_mod_replace_ext() - Replace attribute values with new ones
  • ldap_mod_del() - Delete attribute values from current attributes
  • ldap_mod_add() - Add attribute values to current attributes
  • ldap_modify_batch() - Batch and execute modifications on an LDAP entry


Batch and execute modifications on an LDAP entry

  • « ldap_mod_replace
  • ldap_modify »
  • PHP Manual
  • Funções do LDAP
  • Batch and execute modifications on an LDAP entry

ldap_modify_batch

(PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0, PHP 7, PHP 8)

ldap_modify_batch — Batch and execute modifications on an LDAP entry

Descrição

ldap_modify_batch(
LDAP\Connection $ldap,
string $dn,
array $modifications_info,
?array $controls = null
): bool

Modifies an existing entry in the LDAP directory. Allows detailed specification of the modifications to perform.

Parâmetros

ldap

An LDAP resource, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

modifications_info

An array that specifies the modifications to make. Each entry in this array is an associative array with two or three keys: attrib maps to the name of the attribute to modify, modtype maps to the type of modification to perform, and (depending on the type of modification) values maps to an array of attribute values relevant to the modification.

Possible values for modtype include:

LDAP_MODIFY_BATCH_ADD

Each value specified through values is added (as an additional value) to the attribute named by attrib.

LDAP_MODIFY_BATCH_REMOVE

Each value specified through values is removed from the attribute named by attrib. Any value of the attribute not contained in the values array will remain untouched.

LDAP_MODIFY_BATCH_REMOVE_ALL

All values are removed from the attribute named by attrib. A values entry must not be provided.

LDAP_MODIFY_BATCH_REPLACE

All current values of the attribute named by attrib are replaced with the values specified through values.

Note that any value for attrib must be a string, any value for values must be an array of strings, and any value for modtype must be one of the LDAP_MODIFY_BATCH_* constants listed above.

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Exemplos

Exemplo #1 Add a telephone number to a contact

<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "telephoneNumber",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => ["+1 555 555 1717"],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Exemplo #2 Rename a user

<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "sn",
"modtype" => LDAP_MODIFY_BATCH_REPLACE,
"values" => ["Smith-Jones"],
],
[
"attrib" => "givenName",
"modtype" => LDAP_MODIFY_BATCH_REPLACE,
"values" => ["Jack"],
],
];
ldap_modify_batch($connection, $dn, $modifs);
ldap_rename($connection, $dn, "cn=Jack Smith-Jones", NULL, TRUE);
?>

Exemplo #3 Add two e-mail addresses to a user

<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "mail",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => [
"jack.smith@example.com",
"jack.smith-jones@example.com",
],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Exemplo #4 Change a user's password

<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "userPassword",
"modtype" => LDAP_MODIFY_BATCH_REMOVE,
"values" => ["Tr0ub4dor&3"],
],
[
"attrib" => "userPassword",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => ["correct horse battery staple"],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Exemplo #5 Change a user's password (Active Directory)

<?php
function adifyPw($pw)
{
return iconv("UTF-8", "UTF-16LE", '"' . $pw . '"');
}

$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=ad,dc=example,dc=com";
$modifs = [
[
"attrib" => "unicodePwd",
"modtype" => LDAP_MODIFY_BATCH_REMOVE,
"values" => [adifyPw("Tr0ub4dor&3")],
],
[
"attrib" => "unicodePwd",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => [adifyPw("correct horse battery staple")],
],
];
ldap_modify_batch($connection, $dn, $modifs);


Sinônimo de ldap_mod_replace

  • « ldap_modify_batch
  • ldap_next_attribute »
  • PHP Manual
  • Funções do LDAP
  • Sinônimo de ldap_mod_replace

ldap_modify

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_modify — Sinônimo de ldap_mod_replace()

Descrição

Esta função é um apelido para: ldap_mod_replace().

Veja Também

  • ldap_rename() - Modify the name of an entry


Get the next attribute in result

  • « ldap_modify
  • ldap_next_entry »
  • PHP Manual
  • Funções do LDAP
  • Get the next attribute in result

ldap_next_attribute

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_next_attribute — Get the next attribute in result

Descrição

ldap_next_attribute(LDAP\Connection $ldap, LDAP\ResultEntry $entry): string|false

Retrieves the attributes in an entry. The first call to ldap_next_attribute() is made with the entry returned from ldap_first_attribute().

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

entry

Uma instância de LDAP\ResultEntry.

Valor Retornado

Returns the next attribute in an entry on success and false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro entry agora espera uma instância de LDAP\ResultEntry; anteriormente, um resource ldap result entry válido era esperado.
8.0.0 | The unused third parameter ber_identifier is no longer accepted.

Veja Também

  • ldap_get_attributes() - Get attributes from a search result entry


Get next result entry

  • « ldap_next_attribute
  • ldap_next_reference »
  • PHP Manual
  • Funções do LDAP
  • Get next result entry

ldap_next_entry

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_next_entry — Get next result entry

Descrição

ldap_next_entry(LDAP\Connection $ldap, LDAP\ResultEntry $entry): LDAP\ResultEntry|false

Retrieve the entries stored in the result. Successive calls to the ldap_next_entry() return entries one by one till there are no more entries. The first call to ldap_next_entry() is made after the call to ldap_first_entry() with the entry as returned from the ldap_first_entry().

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

entry

Uma instância de LDAP\ResultEntry.

Valor Retornado

Returns an LDAP\ResultEntry instance for the next entry in the result whose entries are being read starting with ldap_first_entry(). If there are no more entries in the result then it returns false.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro entry agora espera uma instância de LDAP\ResultEntry; anteriormente, um resource ldap result entry válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.

Veja Também

  • ldap_get_entries() - Get all result entries


Get next reference

  • « ldap_next_entry
  • ldap_parse_exop »
  • PHP Manual
  • Funções do LDAP
  • Get next reference

ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_next_reference — Get next reference

Descrição

ldap_next_reference(LDAP\Connection $ldap, LDAP\ResultEntry $entry): LDAP\ResultEntry|false
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Parse result object from an LDAP extended operation

  • « ldap_next_reference
  • ldap_parse_reference »
  • PHP Manual
  • Funções do LDAP
  • Parse result object from an LDAP extended operation

ldap_parse_exop

(PHP 7 >= 7.2.0, PHP 8)

ldap_parse_exop — Parse result object from an LDAP extended operation

Descrição

ldap_parse_exop(
LDAP\Connection $ldap,
LDAP\Result $result,
string &$response_data = null,
string &$response_oid = null
): bool

Parse LDAP extended operation data from result object result

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

result

Uma instância de LDAP\Result, retornada por ldap_list() ou ldap_search().

response_data

Will be filled by the response data.

response_oid

Will be filled by the response OID.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro result agora espera uma instância de LDAP\Result; anteriormente, um resource ldap result válido era esperado.

Veja Também

  • ldap_exop() - Performs an extended operation


Extract information from reference entry

  • « ldap_parse_exop
  • ldap_parse_result »
  • PHP Manual
  • Funções do LDAP
  • Extract information from reference entry

ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_parse_reference — Extract information from reference entry

Descrição

ldap_parse_reference(LDAP\Connection $ldap, LDAP\ResultEntry $entry, array &$referrals): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Extract information from result

  • « ldap_parse_reference
  • ldap_read »
  • PHP Manual
  • Funções do LDAP
  • Extract information from result

ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_parse_result — Extract information from result

Descrição

ldap_parse_result(
LDAP\Connection $ldap,
LDAP\Result $result,
int &$error_code,
string &$matched_dn = null,
string &$error_message = null,
array &$referrals = null,
array &$controls = null
): bool

Parses an LDAP search result.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

result

Uma instância de LDAP\Result, retornada por ldap_list() ou ldap_search().

error_code

A reference to a variable that will be set to the LDAP error code in the result, or 0 if no error occurred.

matched_dn

A reference to a variable that will be set to a matched DN if one was recognised within the request, otherwise it will be set to null.

error_message

A reference to a variable that will be set to the LDAP error message in the result, or an empty string if no error occurred.

referrals

A reference to a variable that will be set to an array set to all of the referral strings in the result, or an empty array if no referrals were returned.

controls

An array of LDAP Controls which have been sent with the response.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | O parâmetro result agora espera uma instância de LDAP\Result; anteriormente, um resource ldap result válido era esperado.
7.3.0 | Support for controls added

Exemplos

Exemplo #1 ldap_parse_result() example

<?php
$result = ldap_search($ldap, "cn=userref,dc=my-domain,dc=com", "(cn=user*)");
$errcode = $dn = $errmsg = $refs = null;
if (ldap_parse_result($ldap, $result, $errcode, $dn, $errmsg, $refs)) {
// do something with $errcode, $dn, $errmsg and $refs
}
?>


Read an entry

  • « ldap_parse_result
  • ldap_rename_ext »
  • PHP Manual
  • Funções do LDAP
  • Read an entry

ldap_read

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_read — Read an entry

Descrição

ldap_read(
LDAP\Connection|array $ldap,
array|string $base,
array|string $filter,
array $attributes = [],
int $attributes_only = 0,
int $sizelimit = -1,
int $timelimit = -1,
int $deref = LDAP_DEREF_NEVER,
?array $controls = null
): LDAP\Result|array|false

Performs the search for a specified filter on the directory with the scope LDAP_SCOPE_BASE. So it is equivalent to reading an entry from the directory.

Também é possível realizar buscas paralelas. Neste caso, o primeiro argumento deve ser um array de instâncias de LDAP\Connection, em vez de apenas uma instância. Se as pesquisas não devem usar a mesma DN base e filtro, um array de DNs base e/ou um array de filtros podem ser passados como argumentos. Esses arrays devem ter o mesmo tamanho que o array de instâncias de LDAP\Connection, já que as primeiras entradas dos arrays são usadas para uma pesquisa, as segundas entradas são usadas para outra e assim por diante. Ao fazer pesquisas paralelas, um array de instâncias de LDAP\Result é retornado, exceto em caso de erro, quando o valor retornado será false.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

base

The base DN for the directory.

filter

An empty filter is not allowed. If you want to retrieve absolutely all information for this entry, use a filter of objectClass=*. If you know which entry types are used on the directory server, you might use an appropriate filter such as objectClass=inetOrgPerson.

attributes

An array of the required attributes, e.g. array("mail", "sn", "cn"). Note that the "dn" is always returned irrespective of which attributes types are requested.

Using this parameter is much more efficient than the default action (which is to return all attributes and their associated values). The use of this parameter should therefore be considered good practice.

attributes_only

Should be set to 1 if only attribute types are wanted. If set to 0 both attributes types and attribute values are fetched which is the default behaviour.

sizelimit

Enables you to limit the count of entries fetched. Setting this to 0 means no limit.

Nota:

This parameter can NOT override server-side preset sizelimit. You can set it lower though.

Some directory server hosts will be configured to return no more than a preset number of entries. If this occurs, the server will indicate that it has only returned a partial results set. This also occurs if you use this parameter to limit the count of fetched entries.

timelimit

Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.

Nota:

This parameter can NOT override server-side preset timelimit. You can set it lower though.

deref

Specifies how aliases should be handled during the search. It can be one of the following:

  • LDAP_DEREF_NEVER - (default) aliases are never dereferenced.
  • LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but not when locating the base object of the search.
  • LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base object but not during the search.
  • LDAP_DEREF_ALWAYS - aliases should be dereferenced always.

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Retorna uma instância de LDAP\Result, um array de instâncias de LDAP\Result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
4.0.5 | Parallel searches support was added. See ldap_search() for details.
7.3.0 | Support for controls added


Modify the name of an entry

  • « ldap_read
  • ldap_rename »
  • PHP Manual
  • Funções do LDAP
  • Modify the name of an entry

ldap_rename_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_rename_ext — Modify the name of an entry

Descrição

ldap_rename_ext(
LDAP\Connection $ldap,
string $dn,
string $new_rdn,
string $new_parent,
bool $delete_old_rdn,
?array $controls = null
): LDAP\Result|false

Does the same thing as ldap_rename() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Parâmetros

See ldap_rename()

Valor Retornado

Retorna uma instância de LDAP\Result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Veja Também

  • ldap_rename() - Modify the name of an entry
  • ldap_parse_result() - Extract information from result


Modify the name of an entry

  • « ldap_rename_ext
  • ldap_sasl_bind »
  • PHP Manual
  • Funções do LDAP
  • Modify the name of an entry

ldap_rename

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_rename — Modify the name of an entry

Descrição

ldap_rename(
LDAP\Connection $ldap,
string $dn,
string $new_rdn,
string $new_parent,
bool $delete_old_rdn,
?array $controls = null
): bool

The entry specified by dn is renamed/moved.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

dn

The distinguished name of an LDAP entity.

new_rdn

The new RDN.

new_parent

The new parent/superior entry.

delete_old_rdn

If true the old RDN value(s) is removed, else the old RDN value(s) is retained as non-distinguished values of the entry.

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Notas

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.

Veja Também

  • ldap_rename_ext() - Modify the name of an entry
  • ldap_modify() - Sinônimo de ldap_mod_replace


Bind to LDAP directory using SASL

  • « ldap_rename
  • ldap_search »
  • PHP Manual
  • Funções do LDAP
  • Bind to LDAP directory using SASL

ldap_sasl_bind

(PHP 5, PHP 7, PHP 8)

ldap_sasl_bind — Bind to LDAP directory using SASL

Descrição

ldap_sasl_bind(
LDAP\Connection $ldap,
?string $dn = null,
?string $password = null,
?string $mech = null,
?string $realm = null,
?string $authc_id = null,
?string $authz_id = null,
?string $props = null
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | dn, password, mech, realm, authc_id, authz_id and props are nullable now.

Notas

Nota: Requirement
ldap_sasl_bind() requires SASL support (sasl.h). Be sure --with-ldap-sasl is used when configuring PHP otherwise this function will be undefined.


Search LDAP tree

  • « ldap_sasl_bind
  • ldap_set_option »
  • PHP Manual
  • Funções do LDAP
  • Search LDAP tree

ldap_search

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_search — Search LDAP tree

Descrição

ldap_search(
LDAP\Connection|array $ldap,
array|string $base,
array|string $filter,
array $attributes = [],
int $attributes_only = 0,
int $sizelimit = -1,
int $timelimit = -1,
int $deref = LDAP_DEREF_NEVER,
?array $controls = null
): LDAP\Result|array|false

Performs the search for a specified filter on the directory with the scope of LDAP_SCOPE_SUBTREE. This is equivalent to searching the entire directory.

Também é possível realizar buscas paralelas. Neste caso, o primeiro argumento deve ser um array de instâncias de LDAP\Connection, em vez de apenas uma instância. Se as pesquisas não devem usar a mesma DN base e filtro, um array de DNs base e/ou um array de filtros podem ser passados como argumentos. Esses arrays devem ter o mesmo tamanho que o array de instâncias de LDAP\Connection, já que as primeiras entradas dos arrays são usadas para uma pesquisa, as segundas entradas são usadas para outra e assim por diante. Ao fazer pesquisas paralelas, um array de instâncias de LDAP\Result é retornado, exceto em caso de erro, quando o valor retornado será false.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

base

The base DN for the directory.

filter

The search filter can be simple or advanced, using boolean operators in the format described in the LDAP documentation (see the » Netscape Directory SDK or » RFC4515 for full information on filters).

attributes

An array of the required attributes, e.g. array("mail", "sn", "cn"). Note that the "dn" is always returned irrespective of which attributes types are requested.

Using this parameter is much more efficient than the default action (which is to return all attributes and their associated values). The use of this parameter should therefore be considered good practice.

attributes_only

Should be set to 1 if only attribute types are wanted. If set to 0 both attributes types and attribute values are fetched which is the default behaviour.

sizelimit

Enables you to limit the count of entries fetched. Setting this to 0 means no limit.

Nota:

This parameter can NOT override server-side preset sizelimit. You can set it lower though.

Some directory server hosts will be configured to return no more than a preset number of entries. If this occurs, the server will indicate that it has only returned a partial results set. This also occurs if you use this parameter to limit the count of fetched entries.

timelimit

Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.

Nota:

This parameter can NOT override server-side preset timelimit. You can set it lower though.

deref

Specifies how aliases should be handled during the search. It can be one of the following:

  • LDAP_DEREF_NEVER - (default) aliases are never dereferenced.
  • LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but not when locating the base object of the search.
  • LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base object but not during the search.
  • LDAP_DEREF_ALWAYS - aliases should be dereferenced always.

controls

Array of LDAP Controls to send with the request.

Valor Retornado

Retorna uma instância de LDAP\Result, um array de instâncias de LDAP\Result, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 | Agora retorna uma instância de LDAP\Result; anteriormente, um resource era retornado.
8.0.0 | O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [].
7.3.0 | Support for controls added

Exemplos

The example below retrieves the organizational unit, surname, given name and email address for all people in "My Company" where the surname or given name contains the substring $person. This example uses a boolean filter to tell the server to look for information in more than one attribute.

Exemplo #1 LDAP search

<?php
// $ds is a valid LDAP\Connection instance for a directory server

// $person is all or part of a person's name, eg "Jo"

$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." entries returned\n";
?>


Set the value of the given option

  • « ldap_search
  • ldap_set_rebind_proc »
  • PHP Manual
  • Funções do LDAP
  • Set the value of the given option

ldap_set_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ldap_set_option — Set the value of the given option

Descrição

ldap_set_option(?LDAP\Connection $ldap, int $option, array|string|int|bool $value): bool

Sets the value of the specified option to be value.

Parâmetros

ldap

Either an LDAP\Connection instance, returned by ldap_connect(), to set the option for that connection, or null to set the option globally.

option

The parameter option can be one of:

Option | Type | Available since
LDAP_OPT_DEREF int
LDAP_OPT_SIZELIMIT int
LDAP_OPT_TIMELIMIT int
LDAP_OPT_NETWORK_TIMEOUT int
LDAP_OPT_PROTOCOL_VERSION int
LDAP_OPT_ERROR_NUMBER int
LDAP_OPT_REFERRALS bool
LDAP_OPT_RESTART bool
LDAP_OPT_HOST_NAME string
LDAP_OPT_ERROR_STRING string
LDAP_OPT_DIAGNOSTIC_MESSAGE string
LDAP_OPT_MATCHED_DN string
LDAP_OPT_SERVER_CONTROLS array
LDAP_OPT_CLIENT_CONTROLS array
LDAP_OPT_X_KEEPALIVE_IDLE | int | PHP 7.1.0
LDAP_OPT_X_KEEPALIVE_PROBES | int | PHP 7.1.0
LDAP_OPT_X_KEEPALIVE_INTERVAL | int | PHP 7.1.0
LDAP_OPT_X_TLS_CACERTDIR | string | PHP 7.1.0
LDAP_OPT_X_TLS_CACERTFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CERTFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CIPHER_SUITE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CRLCHECK | int | PHP 7.1.0
LDAP_OPT_X_TLS_CRLFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_DHFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_KEYFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_PROTOCOL_MIN | int | PHP 7.1.0
LDAP_OPT_X_TLS_RANDOM_FILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_REQUIRE_CERT | int | PHP 7.0.5

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 » draft-ietf-ldapext-ldap-c-api-xx.txt for details. See also the second example below.

value

The new value for the specified option.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.

Exemplos

Exemplo #1 Set protocol version

<?php
// $ds is a valid LDAP\Connection instance 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";
}
?>

Exemplo #2 Set server controls

<?php
// $ds is a valid LDAP\Connection instance 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";
}
?>

Notas

Nota:

This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x.

Veja Também

  • ldap_get_option() - Get the current value for given option


Set a callback function to do re-binds on referral chasing

  • « ldap_set_option
  • ldap_sort »
  • PHP Manual
  • Funções do LDAP
  • Set a callback function to do re-binds on referral chasing

ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ldap_set_rebind_proc — Set a callback function to do re-binds on referral chasing

Descrição

ldap_set_rebind_proc(LDAP\Connection $ldap, ?callable $callback): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.0.0 | callback is nullable now.


Sort LDAP result entries on the client side

  • « ldap_set_rebind_proc
  • ldap_start_tls »
  • PHP Manual
  • Funções do LDAP
  • Sort LDAP result entries on the client side

ldap_sort

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_sort — Sort LDAP result entries on the client side

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.0.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

ldap_sort(resource $link, resource $result, string $sortfilter): bool

Sort the result of a LDAP search, returned by ldap_search().

As this function sorts the returned values on the client side it is possible that you might not get the expected results in case you reach the sizelimit either of the server or defined within ldap_search().

Parâmetros

link

An LDAP resource, returned by ldap_connect().

result

An search result identifier, returned by ldap_search().

sortfilter

The attribute to use as a key in the sort.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | This function has been removed.

Exemplos

Sorting the result of a search.

Exemplo #1 LDAP sort

<?php
// $ds is a valid link identifier (see ldap_connect)

$dn = 'ou=example,dc=org';
$filter = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');

$sr = ldap_search($ds, $dn, $filter, $justthese);

// Sort
ldap_sort($ds, $sr, 'sn');

// Retrieving the data
$info = ldap_get_entries($ds, $sr);


Start TLS

  • « ldap_sort
  • ldap_t61_to_8859 »
  • PHP Manual
  • Funções do LDAP
  • Start TLS

ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ldap_start_tls — Start TLS

Descrição

ldap_start_tls(LDAP\Connection $ldap): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Translate t61 characters to 8859 characters

  • « ldap_start_tls
  • ldap_unbind »
  • PHP Manual
  • Funções do LDAP
  • Translate t61 characters to 8859 characters

ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

ldap_t61_to_8859 — Translate t61 characters to 8859 characters

Descrição

ldap_t61_to_8859(string $value): string|false
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Unbind from LDAP directory

  • « ldap_t61_to_8859
  • LDAP\Connection »
  • PHP Manual
  • Funções do LDAP
  • Unbind from LDAP directory

ldap_unbind

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_unbind — Unbind from LDAP directory

Descrição

ldap_unbind(LDAP\Connection $ldap): bool

Unbinds from the LDAP directory.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.1.0 | O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.

Veja Também

  • ldap_bind() - Bind to LDAP directory


A classe LDAP\Connection

(PHP 8 >= 8.1.0)

Introdução

Uma classe totalmente opaca que substitui o recurso ldap a partir do PHP 8.1.0.

Resumo da classe

final class LDAP\Connection {
}


A classe LDAP\Result

(PHP 8 >= 8.1.0)

Introdução

Uma classe totalmente opaca que substitui o recurso ldap result a partir do PHP 8.1.0.

Resumo da classe

final class LDAP\Result {
}


A classe LDAP\ResultEntry

(PHP 8 >= 8.1.0)

Introdução

Uma classe totalmente opaca que substitui o recurso ldap result entry a partir do PHP 8.1.0.

Resumo da classe

final class LDAP\ResultEntry {
}


Memcache

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Uso básico
  • Memcache — A classe Memcache
    • Memcache::add — Add an item to the server
    • Memcache::addServer — Add a memcached server to connection pool
    • Memcache::close — Close memcached server connection
    • Memcache::connect — Open memcached server connection
    • Memcache::decrement — Decrement item's value
    • Memcache::delete — Delete item from the server
    • Memcache::flush — Flush all existing items at the server
    • Memcache::get — Retrieve item from the server
    • Memcache::getExtendedStats — Get statistics from all servers in pool
    • Memcache::getServerStatus — Returns server status
    • Memcache::getStats — Get statistics of the server
    • Memcache::getVersion — Return version of the server
    • Memcache::increment — Increment item's value
    • Memcache::pconnect — Open memcached server persistent connection
    • Memcache::replace — Replace value of the existing item
    • Memcache::set — Store data at the server
    • Memcache::setCompressThreshold — Enable automatic compression of large values
    • Memcache::setServerParams — Changes server parameters and status at runtime
  • Memcache Funções
    • memcache_debug — Turn debug output on/off


Introdução

O módulo Memcache fornece uma interface procedural e orientada a objetos conveniente para o memcached, um daemon de cache altamente eficaz, projetado especialmente para reduzir a carga do banco de dados em aplicações web dinâmicas.

O módulo Memcache também fornece um manipulador de sessão (memcache).

Mais informações sobre o memcached podem ser encontradas em » http://www.memcached.org/.


Dependências

Este módulo utiliza funções do » zlib para suportar a compressão de dados on-the-fly. O zlib é necessário para instalar este módulo.


Instalação

Esta extensão » PECL não é distribuída com o PHP. Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/memcache.

Nota:

É possível desabilitar o suporte ao manipulador de sessões do memcache. A opção 'pecl install' solicita isso (o padrão é ativado); no entanto, ao compilar estaticamente no PHP, a opção de configuração --disable-memcache-session pode ser utilizada.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração do Memcache
Nome | Padrão | Modificável | Registro de Alterações
memcache.allow_failover | "1" | INI_ALL | Disponível desde o memcache 2.0.2.
memcache.max_failover_attempts | "20" | INI_ALL | Disponível desde o memcache 2.1.0.
memcache.chunk_size | "8192" | INI_ALL | Disponível desde o memcache 2.0.2.
memcache.default_port | "11211" | INI_ALL | Disponível desde o memcache 2.0.2.
memcache.hash_strategy | "standard" | INI_ALL | Disponível desde o memcache 2.2.0.
memcache.hash_function | "crc32" | INI_ALL | Disponível desde o memcache 2.2.0.
memcache.protocol | ascii | INI_ALL | Suportado desde o memcache 3.0.0
memcache.redundancy | 1 | INI_ALL | Suportado desde o memcache 3.0.0
memcache.session_redundancy | 2 | INI_ALL | Suportado desde o memcache 3.0.0
memcache.compress_threshold | 20000 | INI_ALL | Suportado desde o memcache 3.0.3
memcache.lock_timeout | 15 | INI_ALL | Suportado desde o memcache 3.0.4
Opções de Configuração de Sessão que Afetam o Comportamento do Memcache
Nome | Padrão | Modificável | Registro de Alterações
session.save_handler | "files" | INI_ALL | Suportado desde o memcache 2.1.2
session.save_path | "" | INI_ALL | Suportado desde o memcache 2.1.2
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

memcache.allow_failover bool

Se deve falhar transparentemente para outros servidores em caso de erros.

memcache.max_failover_attempts int

Define quantos servidores tentar ao definir e obter dados. Usado apenas em conjunto com memcache.allow_failover.

memcache.chunk_size int

Os dados serão transferidos em pedaços desse tamanho, definir o valor menor requer mais gravações de rede. Experimente aumentar esse valor para 32768 se notar lentidões inexplicáveis.

memcache.default_port string

O número da porta TCP padrão a ser usado ao se conectar a o servidor memcached se nenhuma outra porta for especificada.

memcache.hash_strategy string

Controla qual estratégia usar ao mapear chaves para servidores. Defina este valor para consistent para habilitar o hashing consistente que permite servidores serem adicionados ou removidos do pool sem causar remapeamento de chaves. Definir este valor para standard resulta na antiga estratégia sendo usada.

memcache.hash_function string

Controla qual função de hash aplicar ao mapear chaves para servidores, crc32 usa o hash CRC32 padrão enquanto fnv usa FNV-1a.

memcache.protocol string

memcache.redundancy int

memcache.session_redundancy int

memcache.compress_threshold int

memcache.lock_timeout int

session.save_handler string

Use o memcache como manipulador de sessão definindo este valor para memcache.

session.save_path string

Define uma lista separada por vírgulas de URLs do servidor a serem usadas para o armazenamento de sessão, por exemplo, "tcp://host1:11211, tcp://host2:11211".

Cada URL pode conter parâmetros que são aplicados a esse servidor, eles são os mesmos que para o método Memcache::addServer(). Por exemplo, "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"


Tipos de Recurso

Existe apenas um tipo de recurso usado no módulo Memcache - é o identificador de link para uma conexão de servidor de cache.


Constantes pré-definidas

Constantes do Memcache
Nome | Descrição
MEMCACHE_COMPRESSED (int) | Usado para ativar a compressão de dados sob demanda com Memcache::set(), Memcache::add() e Memcache::replace().
MEMCACHE_HAVE_SESSION (int) | 1 se este manipulador de sessão Memcache estiver disponível, 0 caso contrário.
MEMCACHE_USER1 (int) | Usado para ativar a sinalização de aplicação definida pelo usuário com Memcache::set(), Memcache::add() e Memcache::replace().
MEMCACHE_USER2 (int) | Usado para ativar a sinalização de aplicação definida pelo usuário com Memcache::set(), Memcache::add() e Memcache::replace().
MEMCACHE_USER3 (int) | Usado para ativar a sinalização de aplicação definida pelo usuário com Memcache::set(), Memcache::add() e Memcache::replace().
MEMCACHE_USER4 (int) | Usado para ativar a sinalização de aplicação definida pelo usuário com Memcache::set(), Memcache::add() e Memcache::replace().


  • « Constantes pré-definidas
  • Uso básico »
  • PHP Manual
  • Memcache
  • Exemplos

Exemplos

Índice

  • Uso básico


Uso básico

Exemplo #1 Exemplo de visão geral da extensão Memcache

Neste exemplo, um objeto está sendo salvo no cache e, em seguida, recuperado. Objetos e outros tipos não escalares são serializados antes de salvar, então é impossível armazenar recursos (ou seja, identificadores de conexão e outros) no cache.

<?php

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");

$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";

$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";

var_dump($get_result);

?>

Exemplo #2 Usando o manipulador de sessão Memcache

<?php

$session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10, ,tcp://$host:$port ";
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);

?>


A classe Memcache

(PECL memcache >= 0.2.0)

Introdução

Representa uma conexão com um conjunto de servidores memcache.

Resumo da classe

class Memcache {
add(
string $key,
mixed $var,
int $flag = ?,
int $expire = ?
): bool
addServer(
string $host,
int $port = 11211,
bool $persistent = ?,
int $weight = ?,
int $timeout = ?,
int $retry_interval = ?,
bool $status = ?,
callable $failure_callback = ?,
int $timeoutms = ?
): bool
close(): bool
connect(string $host, int $port = ?, int $timeout = ?): bool
decrement(string $key, int $value = 1): int|false
delete(string $key, int $timeout = 0): bool
flush(): bool
get(string $key, int &$flags = ?): string
getExtendedStats(string $type = ?, int $slabid = ?, int $limit = 100): array
getServerStatus(string $host, int $port = 11211): int
getStats(string $type = ?, int $slabid = ?, int $limit = 100): array|false
getVersion(): string|false
increment(string $key, int $value = 1): int|false
pconnect(string $host, int $port = ?, int $timeout = ?): mixed
replace(
string $key,
mixed $var,
int $flag = ?,
int $expire = ?
): bool
set(
string $key,
mixed $var,
int $flag = ?,
int $expire = ?
): bool
setCompressThreshold(int $threshold, float $min_savings = ?): bool
setServerParams(
string $host,
int $port = 11211,
int $timeout = ?,
int $retry_interval = false,
bool $status = ?,
callable $failure_callback = ?
): bool
}

Índice

  • Memcache::add — Add an item to the server
  • Memcache::addServer — Add a memcached server to connection pool
  • Memcache::close — Close memcached server connection
  • Memcache::connect — Open memcached server connection
  • Memcache::decrement — Decrement item's value
  • Memcache::delete — Delete item from the server
  • Memcache::flush — Flush all existing items at the server
  • Memcache::get — Retrieve item from the server
  • Memcache::getExtendedStats — Get statistics from all servers in pool
  • Memcache::getServerStatus — Returns server status
  • Memcache::getStats — Get statistics of the server
  • Memcache::getVersion — Return version of the server
  • Memcache::increment — Increment item's value
  • Memcache::pconnect — Open memcached server persistent connection
  • Memcache::replace — Replace value of the existing item
  • Memcache::set — Store data at the server
  • Memcache::setCompressThreshold — Enable automatic compression of large values
  • Memcache::setServerParams — Changes server parameters and status at runtime


Add an item to the server

  • « Memcache
  • Memcache::addServer »
  • PHP Manual
  • Memcache
  • Add an item to the server

Memcache::add

(PECL memcache >= 0.2.0)

Memcache::add — Add an item to the server

Descrição

Memcache::add(
string $key,
mixed $var,
int $flag = ?,
int $expire = ?
): bool

Memcache::add() stores variable var with key only if such key doesn't exist at the server yet. Also you can use memcache_add() function.

Parâmetros

key

The key that will be associated with the item.

var

The variable to store. Strings and integers are stored as is, other types are stored serialized.

flag

Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).

expire

Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Returns false if such key already exist. For the rest Memcache::add() behaves similarly to Memcache::set().

Exemplos

Exemplo #1 Memcache::add() example

<?php

$memcache_obj = memcache_connect("localhost", 11211);

/* procedural API */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);

/* OO API */
$memcache_obj->add('var_key', 'test variable', false, 30);

?>

Veja Também

  • Memcache::set() - Store data at the server
  • Memcache::replace() - Replace value of the existing item


Add a memcached server to connection pool

  • « Memcache::add
  • Memcache::close »
  • PHP Manual
  • Memcache
  • Add a memcached server to connection pool

Memcache::addServer

(PECL memcache >= 2.0.0)

Memcache::addServer — Add a memcached server to connection pool

Descrição

Memcache::addServer(
string $host,
int $port = 11211,
bool $persistent = ?,
int $weight = ?,
int $timeout = ?,
int $retry_interval = ?,
bool $status = ?,
callable $failure_callback = ?,
int $timeoutms = ?
): bool

Memcache::addServer() adds a server to the connection pool. You can also use the memcache_add_server() function.

When using this method (as opposed to Memcache::connect() and Memcache::pconnect()) the network connection is not established until actually needed. Thus there is no overhead in adding a large number of servers to the pool, even though they might not all be used.

Failover may occur at any stage in any of the methods, as long as other servers are available the request the user won't notice. Any kind of socket or Memcached server level errors (except out-of-memory) may trigger the failover. Normal client errors such as adding an existing key will not trigger a failover.

Nota:

This function has been added to Memcache version 2.0.0.

Parâmetros

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.

Please note: port defaults to memcache.default_port if not specified. For this reason it is wise to specify the port explicitly in this method call.

persistent

Controls the use of a persistent connection. Default to true.

weight

Number of buckets to create for this server which in turn control its probability of it being selected. The probability is relative to the total weight of all servers.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

retry_interval

Controls how often a failed server will be retried, the default value is 15 seconds. Setting this parameter to -1 disables automatic retry. Neither this nor the persistent parameter has any effect when the extension is loaded dynamically via dl().

Each failed connection struct has its own timeout and before it has expired the struct will be skipped when selecting backends to serve a request. Once expired the connection will be successfully reconnected or marked as failed for another retry_interval seconds. The typical effect is that each web server child will retry the connection about every retry_interval seconds when serving a page.

status

Controls if the server should be flagged as online. Setting this parameter to false and retry_interval to -1 allows a failed server to be kept in the pool so as not to affect the key distribution algorithm. Requests for this server will then failover or fail immediately depending on the memcache.allow_failover setting. Default to true, meaning the server should be considered online.

failure_callback

Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. The function takes two parameters, the hostname and port of the failed server.

timeoutms

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::addServer() example

<?php

/* OO API */

$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
$memcache->addServer('memcache_host2', 11211);

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_add_server($memcache_obj, 'memcache_host2', 11211);

?>

Notas

Aviso

When the port is unspecified, this method defaults to the value set of the PHP ini directive memcache.default_port If this value was changed elsewhere in your application it might lead to unexpected results: for this reason it is wise to always specify the port explicitly in this method call.

Veja Também

  • Memcache::connect() - Open memcached server connection
  • Memcache::pconnect() - Open memcached server persistent connection
  • Memcache::close() - Close memcached server connection
  • Memcache::setServerParams() - Changes server parameters and status at runtime
  • Memcache::getServerStatus() - Returns server status


Close memcached server connection

  • « Memcache::addServer
  • Memcache::connect »
  • PHP Manual
  • Memcache
  • Close memcached server connection

Memcache::close

(PECL memcache >= 0.4.0)

Memcache::close — Close memcached server connection

Descrição

Memcache::close(): bool

Memcache::close() closes connection to memcached server. This function doesn't close persistent connections, which are closed only during web-server shutdown/restart. Also you can use memcache_close() function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::close() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/*
do something here...
*/
memcache_close($memcache_obj);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/*
do something here...
*/
$memcache_obj->close();

?>

Veja Também

  • Memcache::connect() - Open memcached server connection
  • Memcache::pconnect() - Open memcached server persistent connection


Open memcached server connection

  • « Memcache::close
  • Memcache::decrement »
  • PHP Manual
  • Memcache
  • Open memcached server connection

Memcache::connect

(PECL memcache >= 0.2.0)

Memcache::connect — Open memcached server connection

Descrição

Memcache::connect(string $host, int $port = ?, int $timeout = ?): bool

Memcache::connect() establishes a connection to the memcached server. The connection, which was opened using Memcache::connect() will be automatically closed at the end of script execution. Also you can close it with Memcache::close(). Also you can use memcache_connect() function.

Parâmetros

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.

Please note: port defaults to memcache.default_port if not specified. For this reason it is wise to specify the port explicitly in this method call.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::connect() example

<?php

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);

/* OO API */

$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);

?>

Notas

Aviso

When the port is unspecified, this method defaults to the value set of the PHP ini directive memcache.default_port If this value was changed elsewhere in your application it might lead to unexpected results: for this reason it is wise to always specify the port explicitly in this method call.

Veja Também

  • Memcache::pconnect() - Open memcached server persistent connection
  • Memcache::close() - Close memcached server connection


Decrement item's value

  • « Memcache::connect
  • Memcache::delete »
  • PHP Manual
  • Memcache
  • Decrement item's value

Memcache::decrement

(PECL memcache >= 0.2.0)

Memcache::decrement — Decrement item's value

Descrição

Memcache::decrement(string $key, int $value = 1): int|false

Memcache::decrement() decrements value of the item by value. Similarly to Memcache::increment(), current value of the item is being converted to numerical and after that value is subtracted.

Nota:

New item's value will not be less than zero.

Nota:

Do not use Memcache::decrement() with item, which was stored compressed, because consequent call to Memcache::get() will fail.

Memcache::decrement() does not create an item if it didn't exist. Also you can use memcache_decrement() function.

Parâmetros

key

Key of the item do decrement.

value

Decrement the item by value.

Valor Retornado

Returns item's new value on success ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::decrement() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* decrement item by 2 */
$new_value = memcache_decrement($memcache_obj, 'test_item', 2);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* decrement item by 3 */
$new_value = $memcache_obj->decrement('test_item', 3);
?>

Veja Também

  • Memcache::increment() - Increment item's value
  • Memcache::replace() - Replace value of the existing item


Delete item from the server

  • « Memcache::decrement
  • Memcache::flush »
  • PHP Manual
  • Memcache
  • Delete item from the server

Memcache::delete

(PECL memcache >= 0.2.0)

Memcache::delete — Delete item from the server

Descrição

Memcache::delete(string $key, int $timeout = 0): bool

Memcache::delete() deletes an item with the key.

Parâmetros

key

The key associated with the item to delete.

timeout

This deprecated parameter is not supported, and defaults to 0 seconds. Do not use this parameter.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
Unknown | It's not recommended to use the timeout parameter. The behavior differs between memcached versions, but setting to 0 is safe. Other values for this deprecated feature may cause the memcache delete to fail.

Exemplos

Exemplo #1 Memcache::delete() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

/* item will be deleted by the server */
memcache_delete($memcache_obj, 'key_to_delete');

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->delete('key_to_delete');

?>

Veja Também

  • Memcache::set() - Store data at the server
  • Memcache::replace() - Replace value of the existing item


Flush all existing items at the server

  • « Memcache::delete
  • Memcache::get »
  • PHP Manual
  • Memcache
  • Flush all existing items at the server

Memcache::flush

(PECL memcache >= 1.0.0)

Memcache::flush — Flush all existing items at the server

Descrição

Memcache::flush(): bool

Memcache::flush() immediately invalidates all existing items. Memcache::flush() doesn't actually free any resources, it only marks all the items as expired, so occupied memory will be overwritten by new items. Also you can use memcache_flush() function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::flush() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_flush($memcache_obj);

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->flush();

?>


Retrieve item from the server

  • « Memcache::flush
  • Memcache::getExtendedStats »
  • PHP Manual
  • Memcache
  • Retrieve item from the server

Memcache::get

(PECL memcache >= 0.2.0)

Memcache::get — Retrieve item from the server

Descrição

Memcache::get(string $key, int &$flags = ?): string
Memcache::get(array $keys, array &$flags = ?): array

Memcache::get() returns previously stored data of an item, if such key exists on the server at this moment.

You can pass array of keys to Memcache::get() to get array of values. The result array will contain only found key-value pairs.

Parâmetros

key

The key or array of keys to fetch.

flags

If present, flags fetched along with the values will be written to this parameter. These flags are the same as the ones given to for example Memcache::set(). The lowest byte of the int is reserved for pecl/memcache internal usage (e.g. to indicate compression and serialization status).

Valor Retornado

Returns the value associated with the key or an array of found key-value pairs when key is an array. Returns false on failure, key is not found or key is an empty array.

Exemplos

Exemplo #1 Memcache::get() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, 'some_key');

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get('some_key');

/*
You also can use array of keys as a parameter.
If such item wasn't found at the server, the result
array simply will not include such key.
*/

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, Array('some_key', 'another_key'));

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get(Array('some_key', 'second_key'));

?>


Get statistics from all servers in pool

  • « Memcache::get
  • Memcache::getServerStatus »
  • PHP Manual
  • Memcache
  • Get statistics from all servers in pool

Memcache::getExtendedStats

(PECL memcache >= 2.0.0)

Memcache::getExtendedStats — Get statistics from all servers in pool

Descrição

Memcache::getExtendedStats(string $type = ?, int $slabid = ?, int $limit = 100): array

Memcache::getExtendedStats() returns a two-dimensional associative array with server statistics. Array keys correspond to host:port of server and values contain the individual server statistics. A failed server will have its corresponding entry set to false. You can also use the memcache_get_extended_stats() function.

Nota:

This function has been added to Memcache version 2.0.0.

Parâmetros

type

The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".

slabid

Used in conjunction with type set to cachedump to identify the slab to dump from. The cachedump command ties up the server and is strictly to be used for debugging purposes.

limit

Used in conjunction with type set to cachedump to limit the number of entries to dump.

Aviso

The cachedump stat type has been removed from the memcached daemon due to security reasons.

Valor Retornado

Returns a two-dimensional associative array of server statistics or false on failure.

Exemplos

Exemplo #1 Memcache::getExtendedStats() example

<?php
$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->addServer('failed_host', 11211);

$stats = $memcache_obj->getExtendedStats();
print_r($stats);
?>

O exemplo acima produzirá:

Array
(
    [memcache_host:11211] => Array
        (
            [pid] => 3756
            [uptime] => 603011
            [time] => 1133810435
            [version] => 1.1.12
            [rusage_user] => 0.451931
            [rusage_system] => 0.634903
            [curr_items] => 2483
            [total_items] => 3079
            [bytes] => 2718136
            [curr_connections] => 2
            [total_connections] => 807
            [connection_structures] => 13
            [cmd_get] => 9748
            [cmd_set] => 3096
            [get_hits] => 5976
            [get_misses] => 3772
            [bytes_read] => 3448968
            [bytes_written] => 2318883
            [limit_maxbytes] => 33554432
        )

    [failed_host:11211] => false
)

Veja Também

  • Memcache::getVersion() - Return version of the server
  • Memcache::getStats() - Get statistics of the server


Returns server status

  • « Memcache::getExtendedStats
  • Memcache::getStats »
  • PHP Manual
  • Memcache
  • Returns server status

Memcache::getServerStatus

(PECL memcache >= 2.1.0)

Memcache::getServerStatus — Returns server status

Descrição

Memcache::getServerStatus(string $host, int $port = 11211): int

Memcache::getServerStatus() returns a the servers online/offline status. You can also use memcache_get_server_status() function.

Nota:

This function has been added to Memcache version 2.1.0.

Parâmetros

host

Point to the host where memcached is listening for connections.

port

Point to the port where memcached is listening for connections.

Valor Retornado

Returns a the servers status. 0 if server is failed, non-zero otherwise

Exemplos

Exemplo #1 Memcache::getServerStatus() example

<?php

/* OO API */
$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
echo $memcache->getServerStatus('memcache_host', 11211);

/* procedural API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_server_status($memcache, 'memcache_host', 11211);

?>

Veja Também

  • Memcache::addServer() - Add a memcached server to connection pool
  • Memcache::setServerParams() - Changes server parameters and status at runtime


Get statistics of the server

  • « Memcache::getServerStatus
  • Memcache::getVersion »
  • PHP Manual
  • Memcache
  • Get statistics of the server

Memcache::getStats

(PECL memcache >= 0.2.0)

Memcache::getStats — Get statistics of the server

Descrição

Memcache::getStats(string $type = ?, int $slabid = ?, int $limit = 100): array|false

Memcache::getStats() returns an associative array with server's statistics. Array keys correspond to stats parameters and values to parameter's values. Also you can use memcache_get_stats() function.

Parâmetros

type

The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".

slabid

Used in conjunction with type set to cachedump to identify the slab to dump from. The cachedump command ties up the server and is strictly to be used for debugging purposes.

limit

Used in conjunction with type set to cachedump to limit the number of entries to dump.

Valor Retornado

Returns an associative array of server statistics ou false em caso de falha.

Veja Também

  • Memcache::getVersion() - Return version of the server
  • Memcache::getExtendedStats() - Get statistics from all servers in pool


Return version of the server

  • « Memcache::getStats
  • Memcache::increment »
  • PHP Manual
  • Memcache
  • Return version of the server

Memcache::getVersion

(PECL memcache >= 0.2.0)

Memcache::getVersion — Return version of the server

Descrição

Memcache::getVersion(): string|false

Memcache::getVersion() returns a string with server's version number. Also you can use memcache_get_version() function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string of server version number ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::getVersion() example

<?php

/* OO API */
$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);
echo $memcache->getVersion();

/* procedural API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_version($memcache);

?>

Veja Também

  • Memcache::getExtendedStats() - Get statistics from all servers in pool
  • Memcache::getStats() - Get statistics of the server


Increment item's value

  • « Memcache::getVersion
  • Memcache::pconnect »
  • PHP Manual
  • Memcache
  • Increment item's value

Memcache::increment

(PECL memcache >= 0.2.0)

Memcache::increment — Increment item's value

Descrição

Memcache::increment(string $key, int $value = 1): int|false

Memcache::increment() increments value of an item by the specified value. If item specified by key was not numeric and cannot be converted to a number, it will change its value to value. Memcache::increment() does not create an item if it doesn't already exist.

Nota:

Do not use Memcache::increment() with items that have been stored compressed because subsequent calls to Memcache::get() will fail.

Also you can use memcache_increment() function.

Parâmetros

key

Key of the item to increment.

value

Increment the item by value.

Valor Retornado

Returns new items value on success ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::increment() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* increment counter by 2 */
$current_value = memcache_increment($memcache_obj, 'counter', 2);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* increment counter by 3 */
$current_value = $memcache_obj->increment('counter', 3);

?>

Veja Também

  • Memcache::decrement() - Decrement item's value
  • Memcache::replace() - Replace value of the existing item


Open memcached server persistent connection

  • « Memcache::increment
  • Memcache::replace »
  • PHP Manual
  • Memcache
  • Open memcached server persistent connection

Memcache::pconnect

(PECL memcache >= 0.4.0)

Memcache::pconnect — Open memcached server persistent connection

Descrição

Memcache::pconnect(string $host, int $port = ?, int $timeout = ?): mixed

Memcache::pconnect() is similar to Memcache::connect() with the difference, that the connection it establishes is persistent. This connection is not closed after the end of script execution and by Memcache::close() function. Also you can use memcache_pconnect() function.

Parâmetros

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

Valor Retornado

Returns a Memcache object ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::pconnect() example

<?php

/* procedural API */
$memcache_obj = memcache_pconnect('memcache_host', 11211);

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->pconnect('memcache_host', 11211);

?>

Veja Também

  • Memcache::connect() - Open memcached server connection


Replace value of the existing item

  • « Memcache::pconnect
  • Memcache::set »
  • PHP Manual
  • Memcache
  • Replace value of the existing item

Memcache::replace

(PECL memcache >= 0.2.0)

Memcache::replace — Replace value of the existing item

Descrição

Memcache::replace(
string $key,
mixed $var,
int $flag = ?,
int $expire = ?
): bool

Memcache::replace() should be used to replace value of
existing item with key. In case if item with such
key doesn't exists, Memcache::replace() returns
false. For the rest Memcache::replace() behaves
similarly to Memcache::set().
Also you can use memcache_replace() function.

Parâmetros

key

The key that will be associated with the item.

var

The variable to store. Strings and integers are stored as is, other types are stored serialized.

flag

Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).

expire

Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::replace() example

<?php

$memcache_obj = memcache_connect('memcache_host', 11211);

/* procedural API */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* OO API */
$memcache_obj->replace("test_key", "some variable", false, 30);

?>

Veja Também

  • Memcache::set() - Store data at the server
  • Memcache::add() - Add an item to the server


Store data at the server

  • « Memcache::replace
  • Memcache::setCompressThreshold »
  • PHP Manual
  • Memcache
  • Store data at the server

Memcache::set

(PECL memcache >= 0.2.0)

Memcache::set — Store data at the server

Descrição

Memcache::set(
string $key,
mixed $var,
int $flag = ?,
int $expire = ?
): bool

Memcache::set() stores an item var with key on the memcached server. Parameter expire is expiration time in seconds. If it's 0, the item never expires (but memcached server doesn't guarantee this item to be stored all the time, it could be deleted from the cache to make place for other items). You can use MEMCACHE_COMPRESSED constant as flag value if you want to use on-the-fly compression (uses zlib).

Nota:

Remember that resource variables (i.e. file and connection descriptors) cannot be stored in the cache, because they cannot be adequately represented in serialized state.

Also you can use memcache_set() function.

Parâmetros

key

The key that will be associated with the item.

var

The variable to store. Strings and integers are stored as is, other types are stored serialized.

flag

Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).

expire

Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::set() example

<?php
/* procedural API */

/* connect to memcached server */
$memcache_obj = memcache_connect('memcache_host', 11211);

/*
set value of item with key 'var_key'
using 0 as flag value, compression is not used
expire time is 30 seconds
*/
memcache_set($memcache_obj, 'var_key', 'some variable', 0, 30);

echo memcache_get($memcache_obj, 'var_key');

?>

Exemplo #2 Memcache::set() example

<?php
/* OO API */

$memcache_obj = new Memcache;

/* connect to memcached server */
$memcache_obj->connect('memcache_host', 11211);

/*
set value of item with key 'var_key', using on-the-fly compression
expire time is 50 seconds
*/
$memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50);

echo $memcache_obj->get('var_key');

?>

Veja Também

  • Memcache::add() - Add an item to the server
  • Memcache::replace() - Replace value of the existing item


Enable automatic compression of large values

  • « Memcache::set
  • Memcache::setServerParams »
  • PHP Manual
  • Memcache
  • Enable automatic compression of large values

Memcache::setCompressThreshold

(PECL memcache >= 2.0.0)

Memcache::setCompressThreshold — Enable automatic compression of large values

Descrição

Memcache::setCompressThreshold(int $threshold, float $min_savings = ?): bool

Memcache::setCompressThreshold() enables automatic compression of large values. You can also use the memcache_set_compress_threshold() function.

Nota:

This function has been added to Memcache version 2.0.0.

Parâmetros

threshold

Controls the minimum value length before attempting to compress automatically.

min_saving

Specifies the minimum amount of savings to actually store the value compressed. The supplied value must be between 0 and 1. Default value is 0.2 giving a minimum 20% compression savings.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::setCompressThreshold() example

<?php

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->setCompressThreshold(20000, 0.2);

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_compress_threshold($memcache_obj, 20000, 0.2);

?>


Changes server parameters and status at runtime

  • « Memcache::setCompressThreshold
  • Memcache Funções »
  • PHP Manual
  • Memcache
  • Changes server parameters and status at runtime

Memcache::setServerParams

(PECL memcache >= 2.1.0)

Memcache::setServerParams — Changes server parameters and status at runtime

Descrição

Memcache::setServerParams(
string $host,
int $port = 11211,
int $timeout = ?,
int $retry_interval = false,
bool $status = ?,
callable $failure_callback = ?
): bool

Memcache::setServerParams() changes server parameters at runtime. You can also use the memcache_set_server_params() function.

Nota:

This function has been added to Memcache version 2.1.0.

Parâmetros

host

Point to the host where memcached is listening for connections.

port

Point to the port where memcached is listening for connections.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

retry_interval

Controls how often a failed server will be retried, the default value is 15 seconds. Setting this parameter to -1 disables automatic retry. Neither this nor the persistent parameter has any effect when the extension is loaded dynamically via dl().

status

Controls if the server should be flagged as online. Setting this parameter to false and retry_interval to -1 allows a failed server to be kept in the pool so as not to affect the key distribution algorithm. Requests for this server will then failover or fail immediately depending on the memcache.allow_failover setting. Default to true, meaning the server should be considered online.

failure_callback

Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. The function takes two parameters, the hostname and port of the failed server.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcache::setServerParams() example

<?php

function _callback_memcache_failure($host, $port) {
print "memcache '$host:$port' failed";
}

/* OO API */

$memcache = new Memcache;

// Add the server in offline mode
$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);

// Bring the server back online
$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

?>

Veja Também

  • Memcache::addServer() - Add a memcached server to connection pool
  • Memcache::getServerStatus() - Returns server status


  • « Memcache::setServerParams
  • memcache_debug »
  • PHP Manual
  • Memcache
  • Memcache Funções

Memcache Funções

Índice

  • memcache_debug — Turn debug output on/off


Turn debug output on/off

  • « Memcache Funções
  • Memcached »
  • PHP Manual
  • Memcache Funções
  • Turn debug output on/off

memcache_debug

(PECL memcache >= 0.2.0)

memcache_debug — Turn debug output on/off

Descrição

memcache_debug(bool $on_off): bool

memcache_debug() turns on debug output if parameter on_off is equal to true and turns off if it's false.

Nota:

memcache_debug() is accessible only if PHP was built with --enable-debug option and always returns true in this case. Otherwise, this function has no effect and always returns false.

Parâmetros

on_off

Turns debug output on if equals to true. Turns debug output off if equals to false.

Valor Retornado

Returns true if PHP was built with --enable-debug option, otherwise returns false.


Memcached

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Prazos de Expiração
  • Callbacks
    • Callbacks de resultados
    • Callbacks de cache de leitura
  • Suporte a sessões
  • Memcached — A classe Memcached
    • Memcached::add — Adiciona um item em uma nova key
    • Memcached::addByKey — Adiciona um item sob uma nova key em um servidor específico
    • Memcached::addServer — Adiciona um servidor ao pool de servidores
    • Memcached::addServers — Adiciona múltiplos servidores ao pool de servidores
    • Memcached::append — Anexa dados a um item existente
    • Memcached::appendByKey — Anexa dados a um item existente em um servidor específico
    • Memcached::cas — Compara e troca um item
    • Memcached::casByKey — Compara e troca um item em um servidor específico
    • Memcached::__construct — Cria uma instância do Memcached
    • Memcached::decrement — Decrementa o valor do item numérico
    • Memcached::decrementByKey — Decrementa o valor do item numérico, armazenado em um servidor específico
    • Memcached::delete — Remover um item
    • Memcached::deleteByKey — Remover um item de um servidor específico
    • Memcached::deleteMulti — Remover vários itens
    • Memcached::deleteMultiByKey — Remover vários itens de um servidor específico
    • Memcached::fetch — Busca o próximo resultado
    • Memcached::fetchAll — Busca todos os resultados restantes
    • Memcached::flush — Invalida todos os itens no cache
    • Memcached::get — Recupera um item
    • Memcached::getAllKeys — Obtém as keys armazenadas em todos os servidores
    • Memcached::getByKey — Recupera item de um servidor específico
    • Memcached::getDelayed — Solicita vários itens
    • Memcached::getDelayedByKey — Solicita vários itens de um servidor específico
    • Memcached::getMulti — Recupera vários itens
    • Memcached::getMultiByKey — Recupere vários itens de um servidor específico
    • Memcached::getOption — Recupera um valor de opção do Memcached
    • Memcached::getResultCode — Retorna o código de resultado da última operação
    • Memcached::getResultMessage — Retorna a mensagem descrevendo o resultado da última operação
    • Memcached::getServerByKey — Mapear uma key para um servidor
    • Memcached::getServerList — Obtenha a lista dos servidores no pool
    • Memcached::getStats — Obtem estatísticas do pool de servidores
    • Memcached::getVersion — Obtem informações da versão do pool de servidores
    • Memcached::increment — Incrementa o valor do item numérico
    • Memcached::incrementByKey — Incrementa o valor do item numérico, armazenado em um servidor específico
    • Memcached::isPersistent — Verifica se uma conexão permanente com o memcache está sendo usada
    • Memcached::isPristine — Verifica se a instância foi criada recentemente
    • Memcached::prepend — Anexa dados a um item existente
    • Memcached::prependByKey — Anexa dados a um item existente em um servidor específico
    • Memcached::quit — Fecha todas as conexões abertas
    • Memcached::replace — Substitua o item em uma key existente
    • Memcached::replaceByKey — Substitua o item em uma key existente em um servidor específico
    • Memcached::resetServerList — Limpa todos os servidores da lista de servidores
    • Memcached::set — Armazena um item
    • Memcached::setByKey — Armazena um item em um servidor específico
    • Memcached::setMulti — Armazena vários itens
    • Memcached::setMultiByKey — Armazena vários itens em um servidor específico
    • Memcached::setOption — Define uma opção Memcached
    • Memcached::setOptions — Define opções do Memcached
    • Memcached::setSaslAuthData — Define as credenciais a serem usadas para autenticação
    • Memcached::touch — Define uma nova expiração para um item
    • Memcached::touchByKey — Define uma nova expiração para um item em um servidor específico
  • MemcachedException — A classe MemcachedException


Introdução

» memcached é um sistema de armazenamento em cache de objeto de memória distribuída de alto desempenho, de natureza genérica, mas destinado ao uso para acelerar aplicativos da Web dinâmicos, aliviando a carga do banco de dados.

Esta extensão usa a biblioteca libmemcached para fornecer uma API para comunicação com servidores memcached. Ele também fornece um manipulador de sessão (memcached).

Informações sobre libmemcached podem ser encontradas em » http://libmemcached.org/libMemcached.html.


Dependências

Esta extensão requer biblioteca cliente » libmemcached (versão 1.0.0 ou superior). Para suporte de autenticação SASL, libmemcached deve ser construído com SASL habilitado.

Desde a versão 0.2.0, esta extensão requer PHP versão 5.2.0 ou superior.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/memcached.

Se o libmemcached estiver instalado em um local não padrão, use a opção --with-libmemcached-dir=DIR, em que DIR é o prefixo de instalação do libmemcached. Este diretório deve conter o arquivo include/libmemcached/memcached.h.

Zlib é necessário para suporte de compactação. Para especificar a instalação não padrão do Zlib, use --with-zlib-dir=DIR, onde DIR é o prefixo de instalação do Zlib.

O suporte ao manipulador de sessão é ativado por padrão. Para desativá-lo, use a opção --disable-memcached-session.

O suporte à autenticação SASL é desabilitado por padrão. Para ativá-lo, use a opção --enable-memcached-sasl. Isso requer que libsasl2 tenha sido instalado e que libmemcached tenha sido construído com suporte a SASL ativado.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Memcached Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
memcached.sess_locking | On | INI_ALL | Disponível a partir do memcached 0.1.0.
memcached.sess_consistent_hash | On | INI_ALL | Disponível a partir do memcached 2.1.0. O valor padrão é On a partir do memcached 3.0.0.
memcached.sess_binary | Off | INI_ALL | Disponível a partir do memcached 2.0.0. Substituído por memcached.sess_binary_protocol a partir do memcached 3.0.0.
memcached.sess_lock_wait | 150000 | INI_ALL | Disponível a partir do memcached 0.1.0. Removido a partir do memcached 3.0.0.
memcached.sess_prefix | memc.sess.key. | INI_ALL | Disponível a partir do memcached 0.1.0.
memcached.sess_number_of_replicas | 0 | INI_ALL | Disponível a partir do memcached 2.1.0.
memcached.sess_randomize_replica_read | Off | INI_ALL | Disponível a partir do memcached 2.1.0.
memcached.sess_remove_failed | On | INI_ALL | Disponível a partir do memcached 2.1.0. Substituído por memcached.sess_remove_failed_servers a partir do memcached 3.0.0.
memcached.compression_type | fastlz | INI_ALL | Disponível a partir do memcached 0.1.0.
memcached.compression_factor | 1.3 | INI_ALL | Disponível a partir do memcached 0.1.0.
memcached.compression_threshold | 2000 | INI_ALL | Disponível a partir do memcached 0.1.0.
memcached.serializer | igbinary | INI_ALL | Disponível a partir do memcached 0.1.0.
memcached.use_sasl | Off | INI_ALL | Disponível a partir do memcached 2.2.0. Removido a partir do memcached 3.0.0.
memcached.default_binary_protocol | Off | INI_ALL | Disponível a partir do memcached 3.0.0.
memcached.default_connect_timeout | 0 | INI_ALL | Disponível a partir do memcached 3.0.0.
memcached.default_consistent_hash | Off | INI_ALL | Disponível a partir do memcached 3.0.0.
memcached.sess_binary_protocol | On | INI_ALL | Disponível a partir do memcached 3.0.0. Substitui memcached.sess_binary.
memcached.sess_connect_timeout | 1000 | INI_ALL | Disponível a partir do memcached 2.2.0.
memcached.sess_consistent_hash_type | ketama | INI_ALL | Disponível a partir do memcached 3.1.0.
memcached.sess_lock_expire | 0 | INI_ALL | Disponível a partir do memcached 2.2.0.
memcached.sess_lock_retries | 5 | INI_ALL | Disponível a partir do memcached 3.0.0.
memcached.sess_lock_wait_max | 150 | INI_ALL | Disponível a partir do memcached 3.0.0. Valor padrão 150 a partir do memcached 3.1.0 (anteriormente 2000).
memcached.sess_lock_wait_min | 150 | INI_ALL | Disponível a partir do memcached 3.0.0. Valor padrão 150 a partir do memcached 3.1.0 (anteriormente 1000).
memcached.sess_persistent | Off | INI_ALL | Disponível a partir do memcached 3.0.0.
memcached.sess_remove_failed_servers | Off | INI_ALL | Disponível a partir do memcached 3.0.0. Substitui memcached.sess_remove_failed.
memcached.sess_server_failure_limit | 0 | INI_ALL | Disponível a partir do memcached 3.0.0.
memcached.sess_sasl_password | null | INI_ALL | Disponível a partir do memcached 2.2.0.
memcached.sess_sasl_username | null | INI_ALL | Disponível a partir do memcached 2.2.0.
memcached.store_retry_count | 0 | INI_ALL | Disponível a partir do memcached 2.2.0 O valor padrão é 0 no memcached 3.2.0 (anteriormente 2).

Aqui está uma breve explicação das diretivas de configuração.

memcached.sess_locking bool

Usa travamento de sessão. Valores válidos: On, Off, o padrão é On.

memcached.sess_consistent_hash bool

Se definido como On, hashing consistente (libketama) é usado para manipulação de sessão. Quando hashing consistente é usado, pode-se adicionar ou remover nó(s) de cache sem atrapalhar muito as chaves existentes. O padrão é On.

memcached.sess_binary bool

Usa o modo binário de sessão memcached. As réplicas Libmemcached funcionam apenas se o modo binário estiver ativado. O padrão é Off.

memcached.sess_lock_wait int

Tempo de espera de tentativa de travamento rotativo da sessão em microssegundos. Tenha cuidado ao definir esse valor. Os valores válidos são inteiros, onde 0 é interpretado como o valor padrão. Valores negativos resultam em um travamento reduzido para um travamento de tentativa. O padrão é 150000.

memcached.sess_prefix string

Prefixo da chave de sessão Memcached. Os valores válidos são strings com menos de 219 bytes de comprimento. O valor padrão é memc.sess.key.

memcached.sess_number_of_replicas int

Grava dados em vários servidores memcached adicionais. Isso é "poor men's HA" (Alta Disponibilidade de pobre, em tradução livre), como libmemcached o chama. Se esse valor for positivo e sess_remove_failed_servers estiver ativado quando um servidor memcached falhar, a sessão continuará disponível a partir de uma réplica. No entanto, se o servidor de memcache com falha ficar disponível novamente, ele lerá a sessão a partir daí, que pode ter dados antigos ou nenhum dado. O padrão é 0.

memcached.sess_randomize_replica_read bool

A réplica da sessão do Memcached é lida aleatoriamente.

memcached.sess_remove_failed int

Permite que o servidor memcached com falha seja removido automaticamente.

memcached.compression_type string

Define o tipo de compactação, os valores válidos são: fastlz, zlib. O padrão é fastlz.

memcached.compression_factor float

Fator de compressão. Armazene o valor compactado somente se o fator de compactação (economia) exceder o limite definido. Armazene compactado se: plain_len > comp_len * factor. O valor padrão é 1.3 (23% de economia de espaço).

memcached.compression_threshold int

O limite de compressão. Não compacta valores serializados abaixo desse limite. O padrão é 2000 bytes.

memcached.serializer string

Define o serializador padrão para novos objetos memcached. Os valores válidos são: php, igbinary, json, json_array, msgpack.

json

Codificação JSON PHP padrão. Este serializador é rápido e compacto, mas funciona apenas em dados codificados em UTF-8 e não implementa totalmente a serialização. Consulte a extensão JSON. Disponível a partir do memcached 0.2.0.

json_array

Como json, mas decodifica em arrays. Disponível a partir do memcached 2.0.0.

php

O serializador PHP padrão.

igbinary

Um serializador binário. Disponível a partir do memcached 0.1.4.

msgpack

Um serializador binário multilíngue. Disponível a partir do memcached 2.2.0.

O padrão é igbinary se disponível, depois msgpack se disponível, depois php em último caso.

memcached.use_sasl bool

Use autenticação SASL para conexões. Valores válidos: On, Off. O padrão é Off.

memcached.default_binary_protocol bool

Define o protocolo memcached padrão para novas conexões. (Para configurar o protocolo memcached para conexões usadas por sessões, use memcached.sess_binary_protocol no lugar.) Se definido como On, o protocolo binário memcached é usado por padrão. Se definido como Off, o protocolo de texto memcached é usado. O padrão é Off.

memcached.default_connect_timeout int

Define o tempo limite de conexão memcached padrão para novas conexões. (Para configurar o tempo limite de conexão do memcached para sessões, use memcached.sess_connect_timeout no lugar.) No modo de não-bloqueio, isso altera o valor do tempo limite durante a conexão do socket em milissegundos. Especificar -1 significa um tempo limite infinito. Especificar 0 significa usar o tempo limite de conexão padrão da biblioteca memcached. O padrão é 0.

memcached.default_consistent_hash bool

Define o padrão para hash consistente para novas conexões. (Para configurar hashing consistente para conexões de sessão, use memcached.sess_consistent_hash no lugar.) Se definido como On, hashing consistente (libketama) é usado para manipulação de sessão. Quando hashing consistente é usado, pode-se adicionar ou remover nó(s) de cache sem bagunçar muito as chaves existentes. O padrão é Off.

memcached.sess_binary_protocol bool

Usa o protocolo binário memcached para sessões memcached em vez do protocolo de texto. As réplicas libmemcached funcionam apenas se o modo binário estiver ativado. No entanto, certos proxies (como twemproxy) funcionarão somente se o protocolo binário estiver desabilitado. O padrão é On a partir da libmemcached 1.0.18. Antes da libmemcached 1.0.18, padrão era Off.

Nota: Em versões mais antigas do php-memcached, essa configuração era chamada de memcached.sess_binary.

memcached.sess_connect_timeout int

Valor de tempo limite de conexão memcached. No modo de não-bloqueio, isso altera o valor do tempo limite durante a conexão do socket em milissegundos. Especificar -1 significa um tempo limite infinito.

memcached.sess_consistent_hash_type string

Tipo de hash consistente da sessão Memcached. Se definido como ketama, hash consistente (libketama) é usado para manipulação de sessão. Se definido como ketama_weighted, hashing consistente ponderado (libketama) é usado para manipulação de sessão. O padrão é ketama. Antes do memcached 3.0, o padrão era ketama_weighted.

memcached.sess_lock_expire int

O tempo, em segundos, antes que um bloqueio libere a si mesmo. Definir como 0 resulta no comportamento padrão, que é usar o max_execution_time do PHP. O padrão é 0.

memcached.sess_lock_retries int

O número de vezes para tentar travar novamente a trava de sessão, não incluindo a primeira tentativa. O padrão é 5.

memcached.sess_lock_wait_max int

O tempo máximo, em milissegundos, de espera entre tentativas de travamento de sessão. O padrão é 150.

memcached.sess_lock_wait_min int

O tempo mínimo, em milissegundos, de espera entre tentativas de travamento de sessão. Esse valor é dobrado em cada nova tentativa de travamento até que memcached.sess_lock_wait_max seja alcançado, após o qual qualquer nova tentativa levará memcached.sess_lock_wait_max segundos. O padrão é 150.

memcached.sess_persistent bool

Se deve-se ou não reutilizar as conexões memcached correspondentes ao(s) valor(es) de session.save_path após o término da execução do script. Não use isso se certas configurações (por exemplo, configurações SASL, sess_binary_protocol) forem substituídas entre as requisições. O padrão é Off.

memcached.sess_remove_failed_servers bool

Permite que o servidor memcached com falha seja removido automaticamente. O padrão é Off.

Nota: Nas versões anteriores de memcached, essa configuração era chamada de memcached.sess_remove_failed.

memcached.sess_server_failure_limit int

Defina esse valor para permitir que o servidor seja removido após o número configurado de falhas de conexão contínuas. O padrão é 0.

memcached.sess_sasl_password string

Senha SASL da sessão. O nome de usuário e a senha precisam ser definidos para que o SASL seja ativado.

memcached.sess_sasl_username string

Nome de usuário SASL da sessão. O nome de usuário e a senha precisam ser definidos para que o SASL seja ativado.

memcached.store_retry_count int

A quantidade de tentativas para comandos de armazenamento com falha. Esse mecanismo permite transferência transparente para servidores secundários quando as operações set/increment/decrement/setMulti falham no servidor desejado em um ambiente multiservidor. O padrão é 2.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Memcached::OPT_COMPRESSION

Ativa ou desativa a compactação de payload. Quando ativado, os valores de itens maiores que um determinado limite (atualmente 100 bytes) serão compactados durante o armazenamento e descompactados durante a recuperação de forma transparente.

Tipo: bool, padrão: true.

Memcached::OPT_SERIALIZER

Especifica o serializador a ser usado para serializar valores não escalares. Os serializadores válidos são Memcached::SERIALIZER_PHP ou Memcached::SERIALIZER_IGBINARY. O último é suportado apenas quando memcached é configurado com a opção --enable-memcached-igbinary e a extensão igbinary é carregada.

Tipo: int, padrão: Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

O serializador PHP padrão.

Memcached::SERIALIZER_IGBINARY

O serializador » igbinary. Em vez de representação textual, ele armazena estruturas de dados PHP em um formato binário compacto, resultando em ganhos de espaço e tempo.

Memcached::SERIALIZER_JSON

O serializador JSON.

Memcached::OPT_PREFIX_KEY

Isso pode ser usado para criar um "domínio" para suas keys de item. O valor especificado aqui será prefixado para cada uma das keys. Não pode ter mais de 128 caracteres e reduzirá o tamanho máximo de key disponível. O prefixo é aplicado apenas às keys do item, não às keys do servidor.

Tipo: string, padrão: "".

Memcached::OPT_HASH

Especifica o algoritmo de hash usado para as keys do item. Os valores válidos são fornecidos por meio das constantes Memcached::HASH_*. Cada algoritmo de hash tem suas vantagens e desvantagens. Vá com o padrão se você não souber ou não se importar.

Tipo: int, padrão: Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

O algoritmo de hash de key de item padrão (Jenkins one-at-a-time).

Memcached::HASH_MD5

Algoritmo de hash de key de item MD5.

Memcached::HASH_CRC

Algoritmo de hash de key de item CRC.

Memcached::HASH_FNV1_64

Algoritmo de hash de key de item FNV1_64.

Memcached::HASH_FNV1A_64

Algoritmo de hash de key de item FNV1_64A.

Memcached::HASH_FNV1_32

Algoritmo de hash de key de item FNV1_32.

Memcached::HASH_FNV1A_32

Algoritmo de hash de key de item FNV1_32A.

Memcached::HASH_HSIEH

Algoritmo de hash de key de item Hsieh.

Memcached::HASH_MURMUR

Algoritmo de hash de key de item de Murmur.

Memcached::OPT_DISTRIBUTION

Especifica o método de distribuição de keys de itens para os servidores. Os métodos atualmente suportados são modulo e hashing consistente. O hash consistente oferece melhor distribuição e permite que os servidores sejam adicionados ao cluster com perdas mínimas de cache.

Tipo: int, padrão: Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

Algoritmo de distribuição de keys baseado em módulo.

Memcached::DISTRIBUTION_CONSISTENT

Algoritmo consistente de distribuição de keys de hash (baseado em libketama).

Memcached::OPT_LIBKETAMA_COMPATIBLE

Ativa ou desativa a compatibilidade com comportamento semelhante ao libketama. Quando ativado, o algoritmo de hash da key do item é definido como MD5 e a distribuição é definida para ser uma distribuição de hash consistente ponderada. Isso é útil porque outros clientes baseados em libketama (Python, Ruby, etc.) com a mesma configuração de servidor poderão acessar as keys de forma transparente.

Nota:

É altamente recomendável ativar esta opção se você deseja usar hashing consistente e pode ser ativado por padrão em versões futuras.

Tipo: bool, padrão: false.

Memcached::OPT_BUFFER_WRITES

Ativa ou desativa a E/S em buffer. Habilitar a E/S em buffer faz com que os comandos de armazenamento sejam "armazenados" em vez de serem enviados. Qualquer ação que recupera dados faz com que esse buffer seja enviado para a conexão remota. Sair da conexão ou encerrar a conexão também fará com que os dados armazenados em buffer sejam enviados para a conexão remota.

Tipo: bool, padrão: false.

Memcached::OPT_BINARY_PROTOCOL

Habilite o uso do protocolo binário. Observe que você não pode alternar esta opção em uma conexão aberta.

Tipo: bool, padrão: false.

Memcached::OPT_NO_BLOCK

Ativa ou desativa a E/S assíncrona. Este é o transporte mais rápido disponível para funções de armazenamento.

Tipo: bool, padrão: false.

Memcached::OPT_NOREPLY

Habilita ou desabilita ignorar o resultado dos comandos de armazenamento (set, add, replace, append, prepend, delete, increment, decrement, etc.). Comandos de armazenamento serão enviados sem perder tempo esperando por uma resposta (não haveria resposta). Comandos de recuperação como Memcached::get() não são afetados por esta configuração..

Tipo: bool, padrão: false.

Memcached::OPT_TCP_NODELAY

Ativa ou desativa o recurso sem atraso para conectar sockets (pode ser mais rápido em alguns ambientes).

Tipo: bool, padrão: false.

Memcached::OPT_SOCKET_SEND_SIZE

O buffer máximo de envio de socket em bytes.

Tipo: int, padrão: varia de acordo com a plataforma/kernel configuração.

Memcached::OPT_SOCKET_RECV_SIZE

O buffer máximo de recebimento de socket em bytes.

Tipo: int, padrão: varia de acordo com a plataforma/kernel configuração.

Memcached::OPT_CONNECT_TIMEOUT

No modo non-blocking define o valor do timeout durante a conexão do socket, em milissegundos.

Tipo: int, padrão: 1000.

Memcached::OPT_RETRY_TIMEOUT

A quantidade de tempo, em segundos, para aguardar até tentar novamente uma tentativa de conexão com falha.

Tipo: int, padrão: 0.

Memcached::OPT_SEND_TIMEOUT

Tempo limite de envio do socket, em microssegundos. Nos casos em que você não pode usar non-blocking I/O, isso permitirá que você ainda tenha timeouts no envio de dados.

Tipo: int, padrão: 0.

Memcached::OPT_RECV_TIMEOUT

Tempo limite de leitura do Socket, em microssegundos. Nos casos em que você não pode usar non-blocking I/O, isso permitirá que você ainda tenha timeouts na leitura de dados.

Tipo: int, padrão: 0.

Memcached::OPT_POLL_TIMEOUT

Tempo limite para polling de conexão, em milissegundos.

Tipo: int, padrão: 1000.

Memcached::OPT_CACHE_LOOKUPS

Ativa ou desativa o cache de pesquisas de DNS.

Tipo: bool, padrão: false.

Memcached::OPT_SERVER_FAILURE_LIMIT

Especifica o limite de falha para tentativas de conexão do servidor. O servidor será removido após tantas falhas contínuas de conexão.

Tipo: int, padrão: 0.

Memcached::HAVE_IGBINARY

Indica se o suporte ao serializador igbinary está disponível.

Tipo: bool.

Memcached::HAVE_JSON

Indica se o suporte ao serializador JSON está disponível.

Tipo: bool.

Memcached::HAVE_MSGPACK

Indica se o suporte ao serializador msgpack está disponível.

Tipo: bool.

Disponível a partir do Memcached 3.0.0.

Memcached::HAVE_SESSION

Tipo: bool.

Disponível a partir do Memcached 3.0.0.

Memcached::HAVE_SASL

Tipo: bool.

Disponível a partir do Memcached 3.0.0.

Memcached::GET_EXTENDED

Uma flag para Memcached::get(), Memcached::getMulti() e Memcached::getMultiByKey() para garantir que os valores de token CAS também sejam retornados.

Disponível a partir do Memcached 3.0.0.

Memcached::GET_PRESERVE_ORDER

Uma flag para Memcached::getMulti() e Memcached::getMultiByKey() para garantir que as keys sejam retornadas na mesma ordem em que foram solicitadas. Keys não existentes obtêm um valor padrão de NULL.

Memcached::RES_SUCCESS

A operação foi bem-sucedida.

Memcached::RES_FAILURE

A operação falhou de alguma forma.

Memcached::RES_HOST_LOOKUP_FAILURE

Falha na pesquisa de DNS.

Memcached::RES_UNKNOWN_READ_FAILURE

Falha ao ler os dados da rede.

Memcached::RES_PROTOCOL_ERROR

Comando inválido no protocolo memcached.

Memcached::RES_CLIENT_ERROR

Erro no lado do cliente.

Memcached::RES_SERVER_ERROR

Erro no lado do servidor.

Memcached::RES_WRITE_FAILURE

Falha ao gravar dados de rede.

Memcached::RES_DATA_EXISTS

Falha ao comparar e trocar: o item que você está tentando armazenar foi modificado desde a última vez que foi obtido.

Memcached::RES_NOTSTORED

O item não foi armazenado: mas não devido a um erro. Isso normalmente significa que a condição para um comando "add" ou "replace" não foi atendida ou que o item está em uma fila de exclusão.

Memcached::RES_NOTFOUND

O item com esta keys não foi encontrado (com operação "get" ou operações "cas").

Memcached::RES_PARTIAL_READ

Erro parcial de leitura de dados de rede.

Memcached::RES_SOME_ERRORS

Alguns erros ocorreram durante a obtenção múltipla.

Memcached::RES_NO_SERVERS

A lista de servidores está vazia.

Memcached::RES_END

Fim do conjunto de resultados.

Memcached::RES_ERRNO

Erro no sistema.

Memcached::RES_BUFFERED

A operação foi armazenada em buffer.

Memcached::RES_TIMEOUT

A operação expirou.

Memcached::RES_BAD_KEY_PROVIDED

Key ruim.

Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE

Falha ao criar socket de rede.

Memcached::RES_PAYLOAD_FAILURE

Falha de payload: não foi possível compactar/descompactar ou serializar/desserializar o valor.

Memcached::RES_AUTH_PROBLEM

Disponível a partir do Memcached 3.0.0.

Memcached::RES_AUTH_FAILURE

Disponível a partir do Memcached 3.0.0.

Memcached::RES_AUTH_CONTINUE

Disponível a partir do Memcached 3.0.0.

Memcached::RES_E2BIG

Disponível a partir do Memcached 3.0.0.

Memcached::RES_KEY_TOO_BIG

Disponível a partir do Memcached 3.0.0.

Memcached::RES_SERVER_TEMPORARILY_DISABLED

Disponível a partir do Memcached 3.0.0.

Memcached::RES_SERVER_MEMORY_ALLOCATION_FAILURE

Disponível a partir do Memcached 3.0.0.


Prazos de Expiração

Alguns comandos de armazenamento envolvem o envio de um valor de expiração (relativo a um item ou a uma operação solicitada pelo cliente) para o servidor. Em todos esses casos, o valor real enviado pode ser o tempo Unix (número de segundos desde 1º de janeiro de 1970, como um número inteiro) ou um número de segundos a partir do horário atual. Neste último caso, este número de segundos não pode ultrapassar 60*60*24*30 (número de segundos em 30 dias); se o valor de expiração for maior que isso, o servidor o considerará como um valor de tempo real do Unix, em vez de um deslocamento do horário atual.

Se o valor de validade for 0 (o padrão), o item nunca expira (embora possa ser excluído do servidor para dar lugar a outros itens).


  • « Prazos de Expiração
  • Callbacks de resultados »
  • PHP Manual
  • Memcached
  • Callbacks

Callbacks

Índice

  • Callbacks de resultados
  • Callbacks de cache de leitura


Callbacks de resultados

Resultados callables são chamados pelos métodos Memcached::getDelayed() ou Memcached::getDelayedBykey() para cada item no conjunto de resultados. O retorno de chamada é passado para o objeto Memcached e o array com as informações do item. O retorno de callback não precisa retornar nada.

Exemplo #1 Exemplo de callback de resultado

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$m->setMulti($items);
$m->getDelayed(array('key1', 'key3'), true, 'result_cb');

function result_cb($memc, $item)
{
var_dump($item);
}
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  ["key"]=>
  string(4) "key1"
  ["value"]=>
  string(6) "value1"
  ["cas"]=>
  float(49)
}
array(3) {
  ["key"]=>
  string(4) "key3"
  ["value"]=>
  string(6) "value3"
  ["cas"]=>
  float(50)
}


Callbacks de cache de leitura

Os callbacks do cache de leitura são invocados quando um item não pode ser recuperado do servidor. O callback é passado para o objeto Memcached, a key solicitada e a variável de valor por referência. O callback é responsável por definir o valor e retornar true ou false. Se o callback retornar true, o Memcached armazenará o valor preenchido no servidor e o retornará à função de chamada original. Somente Memcached::get() e Memcached::getByKey() suportam esses callbacks, porque o protocolo memcache não fornece informações sobre quais keys não foram encontradas na solicitação de várias keys.

Exemplo #1 Exemplo de callback de leitura

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$profile_info = $m->get('user:'.$user_id, 'user_info_cb');

function user_info_cb($memc, $key, &$value)
{
$user_id = substr($key, 5);
/* lookup profile info in the DB */
/* ... */
$value = $profile_info;
return true;
}
?>


Suporte a sessões

Memcached fornece um manipulador de sessão personalizado que pode ser usado para armazenar sessões de usuário no memcache. Uma instância memcached completamente separada é usada para isso internamente, então você pode usar um pool de servidores diferente, se necessário. As keys de sessão são armazenadas sob o prefixo memc.sess.key., portanto, esteja ciente disso se usar o mesmo conjunto de servidores para sessões e armazenamento em cache genérico.

session.save_handler string

Defina como memcached para ativar o suporte a sessões.

session.save_path string

Defina uma vírgula separada das entradas hostname:port a serem usadas para o pool de servidores de sessão, por exemplo, "sess1:11211, sess2:11211".


A classe Memcached

(PECL memcached >= 0.1.0)

Introdução

Representa uma conexão com um conjunto de servidores memcached.

Resumo da classe

class Memcached {
/* Métodos */
public __construct(?string $persistent_id = null, ?callable $callback = null, ?string $connection_str = null)
public add(string $key, mixed $value, int $expiration = 0): bool
public addByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public addServer(string $host, int $port, int $weight = 0): bool
public addServers(array $servers): bool
public append(string $key, string $value): ?bool
public appendByKey(string $server_key, string $key, string $value): ?bool
public cas(
string|int|float $cas_token,
string $key,
mixed $value,
int $expiration = 0
): bool
public casByKey(
string|int|float $cas_token,
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public decrement(
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public decrementByKey(
string $server_key,
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public delete(string $key, int $time = 0): bool
public deleteByKey(string $server_key, string $key, int $time = 0): bool
public deleteMulti(array $keys, int $time = 0): array
public deleteMultiByKey(string $server_key, array $keys, int $time = 0): array
public fetch(): array|false
public fetchAll(): array|false
public flush(int $delay = 0): bool
public get(string $key, ?callable $cache_cb = null, int $get_flags = 0): mixed
public getAllKeys(): array|false
public getByKey(
string $server_key,
string $key,
?callable $cache_cb = null,
int $get_flags = 0
): mixed
public getDelayed(array $keys, bool $with_cas = false, ?callable $value_cb = null): bool
public getDelayedByKey(
string $server_key,
array $keys,
bool $with_cas = false,
?callable $value_cb = null
): bool
public getMulti(array $keys, int $get_flags = 0): array|false
public getMultiByKey(string $server_key, array $keys, int $get_flags = 0): array|false
public getOption(int $option): mixed
public getResultCode(): int
public getResultMessage(): string
public getServerByKey(string $server_key): array|false
public getServerList(): array
public getStats(?string $type = null): array|false
public getVersion(): array|false
public increment(
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public incrementByKey(
string $server_key,
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public isPersistent(): bool
public isPristine(): bool
public prepend(string $key, string $value): ?bool
public prependByKey(string $server_key, string $key, string $value): ?bool
public quit(): bool
public replace(string $key, mixed $value, int $expiration = 0): bool
public replaceByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public resetServerList(): bool
public set(string $key, mixed $value, int $expiration = 0): bool
public setByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public setMulti(array $items, int $expiration = 0): bool
public setMultiByKey(string $server_key, array $items, int $expiration = 0): bool
public setOption(int $option, mixed $value): bool
public setOptions(array $options): bool
public setSaslAuthData(string $username, string $password): bool
public touch(string $key, int $expiration = 0): bool
public touchByKey(string $server_key, string $key, int $expiration = 0): bool
}

Índice

  • Memcached::add — Adiciona um item em uma nova key
  • Memcached::addByKey — Adiciona um item sob uma nova key em um servidor específico
  • Memcached::addServer — Adiciona um servidor ao pool de servidores
  • Memcached::addServers — Adiciona múltiplos servidores ao pool de servidores
  • Memcached::append — Anexa dados a um item existente
  • Memcached::appendByKey — Anexa dados a um item existente em um servidor específico
  • Memcached::cas — Compara e troca um item
  • Memcached::casByKey — Compara e troca um item em um servidor específico
  • Memcached::__construct — Cria uma instância do Memcached
  • Memcached::decrement — Decrementa o valor do item numérico
  • Memcached::decrementByKey — Decrementa o valor do item numérico, armazenado em um servidor específico
  • Memcached::delete — Remover um item
  • Memcached::deleteByKey — Remover um item de um servidor específico
  • Memcached::deleteMulti — Remover vários itens
  • Memcached::deleteMultiByKey — Remover vários itens de um servidor específico
  • Memcached::fetch — Busca o próximo resultado
  • Memcached::fetchAll — Busca todos os resultados restantes
  • Memcached::flush — Invalida todos os itens no cache
  • Memcached::get — Recupera um item
  • Memcached::getAllKeys — Obtém as keys armazenadas em todos os servidores
  • Memcached::getByKey — Recupera item de um servidor específico
  • Memcached::getDelayed — Solicita vários itens
  • Memcached::getDelayedByKey — Solicita vários itens de um servidor específico
  • Memcached::getMulti — Recupera vários itens
  • Memcached::getMultiByKey — Recupere vários itens de um servidor específico
  • Memcached::getOption — Recupera um valor de opção do Memcached
  • Memcached::getResultCode — Retorna o código de resultado da última operação
  • Memcached::getResultMessage — Retorna a mensagem descrevendo o resultado da última operação
  • Memcached::getServerByKey — Mapear uma key para um servidor
  • Memcached::getServerList — Obtenha a lista dos servidores no pool
  • Memcached::getStats — Obtem estatísticas do pool de servidores
  • Memcached::getVersion — Obtem informações da versão do pool de servidores
  • Memcached::increment — Incrementa o valor do item numérico
  • Memcached::incrementByKey — Incrementa o valor do item numérico, armazenado em um servidor específico
  • Memcached::isPersistent — Verifica se uma conexão permanente com o memcache está sendo usada
  • Memcached::isPristine — Verifica se a instância foi criada recentemente
  • Memcached::prepend — Anexa dados a um item existente
  • Memcached::prependByKey — Anexa dados a um item existente em um servidor específico
  • Memcached::quit — Fecha todas as conexões abertas
  • Memcached::replace — Substitua o item em uma key existente
  • Memcached::replaceByKey — Substitua o item em uma key existente em um servidor específico
  • Memcached::resetServerList — Limpa todos os servidores da lista de servidores
  • Memcached::set — Armazena um item
  • Memcached::setByKey — Armazena um item em um servidor específico
  • Memcached::setMulti — Armazena vários itens
  • Memcached::setMultiByKey — Armazena vários itens em um servidor específico
  • Memcached::setOption — Define uma opção Memcached
  • Memcached::setOptions — Define opções do Memcached
  • Memcached::setSaslAuthData — Define as credenciais a serem usadas para autenticação
  • Memcached::touch — Define uma nova expiração para um item
  • Memcached::touchByKey — Define uma nova expiração para um item em um servidor específico


Adiciona um item em uma nova key

  • « Memcached
  • Memcached::addByKey »
  • PHP Manual
  • Memcached
  • Adiciona um item em uma nova key

Memcached::add

(PECL memcached >= 0.1.0)

Memcached::add — Adiciona um item em uma nova key

Descrição

public Memcached::add(string $key, mixed $value, int $expiration = 0): bool

Memcached::add() é semelhante a Memcached::set(), mas a operação falha se a key já existir no servidor.

Parâmetros

key

A chave sob a qual armazenar o valor.

value

O valor a ser armazenado.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. O Memcached::getResultCode() retornará Memcached::RES_NOTSTORED se a key já existir.

Veja Também

  • Memcached::addByKey() - Adiciona um item sob uma nova key em um servidor específico
  • Memcached::set() - Armazena um item
  • Memcached::replace() - Substitua o item em uma key existente


Adiciona um item sob uma nova key em um servidor específico

  • « Memcached::add
  • Memcached::addServer »
  • PHP Manual
  • Memcached
  • Adiciona um item sob uma nova key em um servidor específico

Memcached::addByKey

(PECL memcached >= 0.1.0)

Memcached::addByKey — Adiciona um item sob uma nova key em um servidor específico

Descrição

public Memcached::addByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool

Memcached::addByKey() é funcionalmente equivalente a Memcached::add(), exceto que o formato livre server_key pode ser usado para mapear a key para um servidor específico. Isso é útil se você precisar manter várias keys relacionadas em um determinado servidor.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A chave sob a qual armazenar o valor.

value

O valor a ser armazenado.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. O Memcached::getResultCode() retornará Memcached::RES_NOTSTORED se a key já existir.

Veja Também

  • Memcached::add() - Adiciona um item em uma nova key
  • Memcached::set() - Armazena um item
  • Memcached::replace() - Substitua o item em uma key existente


Adiciona um servidor ao pool de servidores

  • « Memcached::addByKey
  • Memcached::addServers »
  • PHP Manual
  • Memcached
  • Adiciona um servidor ao pool de servidores

Memcached::addServer

(PECL memcached >= 0.1.0)

Memcached::addServer — Adiciona um servidor ao pool de servidores

Descrição

public Memcached::addServer(string $host, int $port, int $weight = 0): bool

Memcached::addServer() adiciona o servidor especificado ao pool de servidores. Nenhuma conexão é estabelecida com o servidor neste momento, mas se você estiver usando a opção de distribuição de key consistente (via Memcached::DISTRIBUTION_CONSISTENT ou Memcached::OPT_LIBKETAMA_COMPATIBLE), algumas das estruturas de dados internas terão que ser atualizadas. Portanto, se você precisar adicionar vários servidores, é melhor usar o Memcached::addServers(), pois a atualização ocorrerá apenas uma vez.

O mesmo servidor pode aparecer várias vezes no pool de servidores porque nenhuma verificação de duplicação é feita. Isso não é aconselhável; em vez disso, use weight para aumentar o peso da seleção desse servidor.

Parâmetros

host

O nome do host do servidor memcache. Se o nome do host for inválido, as operações relacionadas a dados definirão o código de resultado Memcached::RES_HOST_LOOKUP_FAILURE. A partir da versão 2.0.0b1, este parâmetro também pode especificar o caminho de um arquivo de socket unix ex. /path/to/memcached.sock para usar sockets de domínio UNIX, neste caso, port também deve ser definida como 0.

port

A porta na qual o memcache está em execução. Geralmente, é 11211. A partir da versão 2.0.0b1, defina esse parâmetro como 0 ao usar sockets de domínio UNIX.

weight

O peso do servidor relativo ao peso total de todos os servidores no pool. Isso controla a probabilidade do servidor ser selecionado para operações. Isso é usado apenas com opção de distribuição consistente e geralmente corresponde à quantidade de memória disponível para memcache naquele servidor.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcached::addServer() exemplo

<?php
$m = new Memcached();

/* Adiciona 2 servidores, para que o segundo
tem duas vezes mais chances de ser selecionado. */
$m->addServer('mem1.domain.com', 11211, 33);
$m->addServer('mem2.domain.com', 11211, 67);
?>

Veja Também

  • Memcached::addServers() - Adiciona múltiplos servidores ao pool de servidores
  • Memcached::resetServerList() - Limpa todos os servidores da lista de servidores


Adiciona múltiplos servidores ao pool de servidores

  • « Memcached::addServer
  • Memcached::append »
  • PHP Manual
  • Memcached
  • Adiciona múltiplos servidores ao pool de servidores

Memcached::addServers

(PECL memcached >= 0.1.1)

Memcached::addServers — Adiciona múltiplos servidores ao pool de servidores

Descrição

public Memcached::addServers(array $servers): bool

Memcached::addServers() adiciona servidores ao pool de servers. Cada entrada em servers deve ser um array contendo hostname, porta e, opcionalmente, o peso do servidor. Nenhuma conexão é estabelecida com os servidores neste momento.

O mesmo servidor pode aparecer várias vezes no pool de servidores porque nenhuma verificação de duplicação é feita. Isso não é aconselhável; em vez disso, use a opção weight para aumentar o peso da seleção desse servidor.

Parâmetros

array

Array dos servidores a serem adicionados ao pool.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcached::addServers() exemplo

<?php
$m = new Memcached();

$servers = array(
array('mem1.domain.com', 11211, 33),
array('mem2.domain.com', 11211, 67)
);
$m->addServers($servers);
?>

Veja Também

  • Memcached::addServer() - Adiciona um servidor ao pool de servidores
  • Memcached::resetServerList() - Limpa todos os servidores da lista de servidores


Anexa dados a um item existente

  • « Memcached::addServers
  • Memcached::appendByKey »
  • PHP Manual
  • Memcached
  • Anexa dados a um item existente

Memcached::append

(PECL memcached >= 0.1.0)

Memcached::append — Anexa dados a um item existente

Descrição

public Memcached::append(string $key, string $value): ?bool

Memcached::append() acrescenta a string value fornecida ao valor de um item existente. A razão pela qual value é forçado a ser uma string é que anexar tipos mistos não é bem definido.

Nota:

Se o Memcached::OPT_COMPRESSION estiver ativado, a operação falhará e um aviso será emitido, pois não é possível anexar dados compactados a um valor potencialmente já compactado.

Parâmetros

key

A chave sob a qual armazenar o valor.

value

A string a ser anexada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Retorna null quando a compressão está ativada.

Erros/Exceções

Retorna null e gera um E_WARNING quando a compressão está habilitada.

Exemplos

Exemplo #1 Memcached::append() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->append('foo', 'def');
var_dump($m->get('foo'));
?>

O exemplo acima produzirá:

string(6) "abcdef"

Veja Também

  • Memcached::appendByKey() - Anexa dados a um item existente em um servidor específico
  • Memcached::prepend() - Anexa dados a um item existente


Anexa dados a um item existente em um servidor específico

  • « Memcached::append
  • Memcached::cas »
  • PHP Manual
  • Memcached
  • Anexa dados a um item existente em um servidor específico

Memcached::appendByKey

(PECL memcached >= 0.1.0)

Memcached::appendByKey — Anexa dados a um item existente em um servidor específico

Descrição

public Memcached::appendByKey(string $server_key, string $key, string $value): ?bool

Memcached::appendByKey() é funcionalmente equivalente a Memcached::append(), exceto que a forma livre server_key pode ser usada para mapear a key para um servidor específico.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A chave sob a qual armazenar o valor.

value

A string a ser anexada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Retorna null quando a compressão está ativada.

Erros/Exceções

Retorna null e gera um E_WARNING quando a compressão está habilitada.

Veja Também

  • Memcached::append() - Anexa dados a um item existente
  • Memcached::prepend() - Anexa dados a um item existente


Compara e troca um item

  • « Memcached::appendByKey
  • Memcached::casByKey »
  • PHP Manual
  • Memcached
  • Compara e troca um item

Memcached::cas

(PECL memcached >= 0.1.0)

Memcached::cas — Compara e troca um item

Descrição

public Memcached::cas(
string|int|float $cas_token,
string $key,
mixed $value,
int $expiration = 0
): bool

Memcached::cas() realiza uma operação de "check and set", de forma que o item será armazenado apenas se nenhum outro cliente o tiver atualizado desde a última vez que foi buscado por este cliente. A verificação é feita por meio do parâmetro cas_token, que é um valor exclusivo de 64 bits atribuído ao item existente pelo memcache. Consulte a documentação dos métodos Memcached::get*() para saber como obter esse token. Observe que o token é representado como um float devido às limitações do espaço inteiro do PHP.

Parâmetros

cas_token

Valor exclusivo associado ao item existente. Gerado por memcache.

key

A chave sob a qual armazenar o valor.

value

O valor a ser armazenado.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. O Memcached::getResultCode() retornará Memcached::RES_DATA_EXISTS se o item que você está tentando armazenar tiver sido modificado desde a última vez que você o buscou.

Exemplos

Exemplo #1 Memcached::cas() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

do {
/* busca lista de IP e seu token */
$ips = $m->get('ip_block', null, $cas);
/* se a lista ainda não existir, crie-a e faça
uma adição atômica que falhará se alguém já tiver adicionado i */
if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
$ips = array($_SERVER['REMOTE_ADDR']);
$m->add('ip_block', $ips);
/* caso contrário, adicione o IP à lista e armazene via comparação e troca
com o token, que falhará se outra pessoa atualizar a lista */
} else {
$ips[] = $_SERVER['REMOTE_ADDR'];
$m->cas($cas, 'ip_block', $ips);
}
} while ($m->getResultCode() != Memcached::RES_SUCCESS);

?>

Veja Também

  • Memcached::casByKey() - Compara e troca um item em um servidor específico


Compara e troca um item em um servidor específico

  • « Memcached::cas
  • Memcached::__construct »
  • PHP Manual
  • Memcached
  • Compara e troca um item em um servidor específico

Memcached::casByKey

(PECL memcached >= 0.1.0)

Memcached::casByKey — Compara e troca um item em um servidor específico

Descrição

public Memcached::casByKey(
string|int|float $cas_token,
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool

Memcached::casByKey() é funcionalmente equivalente a Memcached::cas(), exceto que a forma livre server_key pode ser usada para mapear a key para um servidor específico. Isso é útil se você precisar manter várias keys relacionadas em um determinado servidor.

Parâmetros

cas_token

Valor exclusivo associado ao item existente. Gerado por memcache.

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A chave sob a qual armazenar o valor.

value

O valor a ser armazenado.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. O Memcached::getResultCode() retornará Memcached::RES_DATA_EXISTS se o item que você está tentando armazenar tiver sido modificado desde a última vez que você o buscou.

Veja Também

  • Memcached::cas() - Compara e troca um item


Cria uma instância do Memcached

  • « Memcached::casByKey
  • Memcached::decrement »
  • PHP Manual
  • Memcached
  • Cria uma instância do Memcached

Memcached::__construct

(PECL memcached >= 0.1.0)

Memcached::__construct — Cria uma instância do Memcached

Descrição

public Memcached::__construct(?string $persistent_id = null, ?callable $callback = null, ?string $connection_str = null)

Cria uma instância Memcached que representa a conexão com os servidores Memcache.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

persistent_id

Por padrão, as instâncias do Memcached são destruídas ao final da solicitação. Para criar uma instância que persista entre as solicitações, use persistent_idpara especificar um ID exclusivo para a instância. Todas as instâncias criadas com o mesmo persistent_id compartilharão a mesma conexão.

callback

connection_str

Exemplos

Exemplo #1 Creating a Memcached object

<?php
/* Criar uma instância regular */
$m = new Memcached();
echo get_class($m);

/* Criar uma instância persistente */
$m2 = new Memcached('story_pool');
$m3 = new Memcached('story_pool');

/* agora $m2 e $m3 compartilham a mesma conexão */
?>


Decrementa o valor do item numérico

  • « Memcached::__construct
  • Memcached::decrementByKey »
  • PHP Manual
  • Memcached
  • Decrementa o valor do item numérico

Memcached::decrement

(PECL memcached >= 0.1.0)

Memcached::decrement — Decrementa o valor do item numérico

Descrição

public Memcached::decrement(
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false

Memcached::decrement() diminui o valor de um item numérico pelo offset especificado. Se o valor do item não for numérico, ocorrerá um erro. Se a operação diminuir o valor abaixo de 0, o novo valor será 0. Memcached::decrement() irá definir o item para o parâmetro initial_value se a key não existir.

Parâmetros

key

A key do item a ser decrementado.

offset

A quantia pela qual decrementar o valor do item.

initial_value

O valor para definir o item se ele não existir no momento.

expiry

O tempo de expiração a ser definido no item.

Valor Retornado

Retorna o novo valor do item em caso de sucesso ou ou false em caso de falha.

Exemplos

Exemplo #1 Memcached::decrement() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 5);
$n = $m->decrement('counter');
var_dump($n);

$n = $m->decrement('counter', 10);
var_dump($n);

var_dump($m->get('counter'));

$m->set('counter', 'abc');
$n = $m->increment('counter');
// ^ falhará devido ao valor do item não ser numérico
var_dump($n);
?>

O exemplo acima produzirá:

int(4)
int(0)
int(0)
bool(false)

Veja Também

  • Memcached::increment() - Incrementa o valor do item numérico
  • Memcached::incrementByKey() - Incrementa o valor do item numérico, armazenado em um servidor específico
  • Memcached::decrementByKey() - Decrementa o valor do item numérico, armazenado em um servidor específico


Decrementa o valor do item numérico, armazenado em um servidor específico

  • « Memcached::decrement
  • Memcached::delete »
  • PHP Manual
  • Memcached
  • Decrementa o valor do item numérico, armazenado em um servidor específico

Memcached::decrementByKey

(PECL memcached >= 2.0.0)

Memcached::decrementByKey — Decrementa o valor do item numérico, armazenado em um servidor específico

Descrição

public Memcached::decrementByKey(
string $server_key,
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false

Memcached::decrementByKey() diminui o valor de um item numérico pelo offset especificado. Se o valor do item não for numérico, ocorrerá um erro. Se a operação diminuir o valor abaixo de 0, o novo valor será 0. Memcached::decrementByKey() irá definir o item para o parâmetro initial_value se a key não existir.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A key do item a ser decrementado.

offset

A quantia pela qual decrementar o valor do item.

initial_value

O valor para definir o item se ele não existir no momento.

expiry

O tempo de expiração a ser definido no item.

Valor Retornado

Retorna o novo valor do item em caso de sucesso ou ou false em caso de falha.

Veja Também

  • Memcached::decrement() - Decrementa o valor do item numérico
  • Memcached::increment() - Incrementa o valor do item numérico
  • Memcached::incrementByKey() - Incrementa o valor do item numérico, armazenado em um servidor específico


Remover um item

  • « Memcached::decrementByKey
  • Memcached::deleteByKey »
  • PHP Manual
  • Memcached
  • Remover um item

Memcached::delete

(PECL memcached >= 0.1.0)

Memcached::delete — Remover um item

Descrição

public Memcached::delete(string $key, int $time = 0): bool

Remover a key do servidor.

Parâmetros

key

A key a ser excluída.

time

A quantidade de tempo que o servidor aguardará para excluir o item.

Nota: A partir da memcached 1.3.0 (lançada em 2009), este recurso não é mais suportado. Passar um parâmetro time diferente de zero causará a falha da exclusão. Memcached::getResultCode() retornará MEMCACHED_INVALID_ARGUMENTS.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. O Memcached::getResultCode() retornará Memcached::RES_NOTFOUND se a key não existir.

Exemplos

Exemplo #1 Memcached::delete() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->delete('key1');
?>

Veja Também

  • Memcached::deleteByKey() - Remover um item de um servidor específico
  • Memcached::deleteMulti() - Remover vários itens


Remover um item de um servidor específico

  • « Memcached::delete
  • Memcached::deleteMulti »
  • PHP Manual
  • Memcached
  • Remover um item de um servidor específico

Memcached::deleteByKey

(PECL memcached >= 0.1.0)

Memcached::deleteByKey — Remover um item de um servidor específico

Descrição

public Memcached::deleteByKey(string $server_key, string $key, int $time = 0): bool

Memcached::deleteByKey() é funcionalmente equivalente a Memcached::delete(), exceto que a forma livre server_key pode ser usada para mapear a key para um servidor específico.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A key a ser excluída.

time

A quantidade de tempo que o servidor aguardará para excluir o item.

Nota: A partir da memcached 1.3.0 (lançada em 2009), este recurso não é mais suportado. Passar um parâmetro time diferente de zero causará a falha da exclusão. Memcached::getResultCode() retornará MEMCACHED_INVALID_ARGUMENTS.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. O Memcached::getResultCode() retornará Memcached::RES_NOTFOUND se a key não existir.

Veja Também

  • Memcached::delete() - Remover um item
  • Memcached::deleteMulti() - Remover vários itens
  • Memcached::deleteMultiByKey() - Remover vários itens de um servidor específico


Remover vários itens

  • « Memcached::deleteByKey
  • Memcached::deleteMultiByKey »
  • PHP Manual
  • Memcached
  • Remover vários itens

Memcached::deleteMulti

(PECL memcached >= 2.0.0)

Memcached::deleteMulti — Remover vários itens

Descrição

public Memcached::deleteMulti(array $keys, int $time = 0): array

Exclua a array de keys do servidor.

Parâmetros

keys

As keys a serem excluídas.

time

A quantidade de tempo que o servidor aguardará para excluir os itens.

Nota: A partir da memcached 1.3.0 (lançada em 2009), este recurso não é mais suportado. Passar um parâmetro time diferente de zero causará a falha da exclusão. Memcached::getResultCode() retornará MEMCACHED_INVALID_ARGUMENTS.

Valor Retornado

Retorna um array indexado por keys. Cada elemento é true se a chave correspondente foi deletada ou uma das constantes Memcached::RES_* se a exclusão correspondente falhou.

O método Memcached::getResultCode() retornará o código de resultado da última operação de exclusão executada, ou seja, a operação de exclusão do último elemento de keys.

Veja Também

  • Memcached::delete() - Remover um item
  • Memcached::deleteByKey() - Remover um item de um servidor específico
  • Memcached::deleteMultiByKey() - Remover vários itens de um servidor específico


Remover vários itens de um servidor específico

  • « Memcached::deleteMulti
  • Memcached::fetch »
  • PHP Manual
  • Memcached
  • Remover vários itens de um servidor específico

Memcached::deleteMultiByKey

(PECL memcached >= 2.0.0)

Memcached::deleteMultiByKey — Remover vários itens de um servidor específico

Descrição

public Memcached::deleteMultiByKey(string $server_key, array $keys, int $time = 0): array

Memcached::deleteMultiByKey() é funcionalmente equivalente a Memcached::deleteMulti(), exceto que a forma livre server_key pode ser usada para mapear as keys para um servidor específico.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

keys

As keys a serem excluídas.

time

A quantidade de tempo que o servidor aguardará para excluir os itens.

Nota: A partir da memcached 1.3.0 (lançada em 2009), este recurso não é mais suportado. Passar um parâmetro time diferente de zero causará a falha da exclusão. Memcached::getResultCode() retornará MEMCACHED_INVALID_ARGUMENTS.

Valor Retornado

Retorna um array indexado por keys. Cada elemento é true se a chave correspondente foi deletada ou uma das constantes Memcached::RES_* se a exclusão correspondente falhou.

O método Memcached::getResultCode() retornará o código de resultado da última operação de exclusão executada, ou seja, a operação de exclusão do último elemento de keys.

Veja Também

  • Memcached::delete() - Remover um item
  • Memcached::deleteByKey() - Remover um item de um servidor específico
  • Memcached::deleteMulti() - Remover vários itens


Busca o próximo resultado

  • « Memcached::deleteMultiByKey
  • Memcached::fetchAll »
  • PHP Manual
  • Memcached
  • Busca o próximo resultado

Memcached::fetch

(PECL memcached >= 0.1.0)

Memcached::fetch — Busca o próximo resultado

Descrição

public Memcached::fetch(): array|false

Memcached::fetch() recupera o próximo resultado da última solicitação.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o próximo resultado ou false caso contrário. O Memcached::getResultCode() retornará Memcached::RES_END se o conjunto de resultados estiver esgotado.

Exemplos

Exemplo #1 Memcached::fetch() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
while ($result = $m->fetch()) {
var_dump($result);
}
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  ["key"]=>
  string(3) "int"
  "value"]=>
  int(99)
  ["cas"]=>
  float(2363)
}
array(3) {
  ["key"]=>
  string(5) "array"
  ["value"]=>
  array(2) {
    [0]=>
    int(11)
    [1]=>
    int(12)
  }
  ["cas"]=>
  float(2365)
}

Veja Também

  • Memcached::fetchAll() - Busca todos os resultados restantes
  • Memcached::getDelayed() - Solicita vários itens


Busca todos os resultados restantes

  • « Memcached::fetch
  • Memcached::flush »
  • PHP Manual
  • Memcached
  • Busca todos os resultados restantes

Memcached::fetchAll

(PECL memcached >= 0.1.0)

Memcached::fetchAll — Busca todos os resultados restantes

Descrição

public Memcached::fetchAll(): array|false

Memcached::fetchAll() recupera todos os resultados restantes da última solicitação.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna os resultados ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Exemplos

Exemplo #1 Memcached::getDelayed() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>

O exemplo acima produzirá:

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

Veja Também

  • Memcached::fetch() - Busca o próximo resultado
  • Memcached::getDelayed() - Solicita vários itens


Invalida todos os itens no cache

  • « Memcached::fetchAll
  • Memcached::get »
  • PHP Manual
  • Memcached
  • Invalida todos os itens no cache

Memcached::flush

(PECL memcached >= 0.1.0)

Memcached::flush — Invalida todos os itens no cache

Descrição

public Memcached::flush(int $delay = 0): bool

Memcached::flush() invalida todos os itens de cache existentes imediatamente (por padrão) ou após o delay especificado. Após a invalidação, nenhum dos itens será retornado em resposta a um comando de recuperação (a menos que seja armazenado novamente na mesma key após o Memcached::flush() ter invalidado os itens). Na verdade, o flush não libera toda a memória ocupada pelos itens existentes; isso acontecerá gradualmente à medida que novos itens forem armazenados.

Parâmetros

delay

Número de segundos a aguardar antes de invalidar os itens.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Exemplos

Exemplo #1 Memcached::flush() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

/* liberar todos os itens em 10 segundos */
$m->flush(10);
?>


Recupera um item

  • « Memcached::flush
  • Memcached::getAllKeys »
  • PHP Manual
  • Memcached
  • Recupera um item

Memcached::get

(PECL memcached >= 0.1.0)

Memcached::get — Recupera um item

Descrição

public Memcached::get(string $key, ?callable $cache_cb = null, int $get_flags = 0): mixed

Memcached::get() retorna o item que foi armazenado anteriormente na key. Se o item for encontrado e o get_flags for fornecido como Memcached::GET_EXTENDED, ele também retornará o valor do token CAS para o item. Consulte Memcached::cas() para saber como usar tokens CAS. O callback de cache de leitura pode ser especificado por meio do parâmetro cache_cb.

Parâmetros

key

A key do item a ser recuperado.

cache_cb

Callback de cache de leitura ou null.

get_flags

Flags para controlar o resultado retornado. Quando Memcached::GET_EXTENDED for fornecido, a função também retornará o token CAS.

Valor Retornado

Retorna o valor armazenado no cache ou false caso contrário. Se o parâmetro get_flags for definido como Memcached::GET_EXTENDED, um array contendo o valor e o token CAS será retornado em vez de apenas o valor. O Memcached::getResultCode() retornará Memcached::RES_NOTFOUND se a key não existir.

Registro de Alterações

Versão | Descrição
PECL memcached 3.0.0 | O parâmetro &cas_token foi removido. Em vez disso, as get_flags foram adicionadas e, quando receber o valor de Memcached::GET_EXTENDED, garantirá que o token CAS seja buscado.

Exemplos

Exemplo #1 Memcached::get() exemplo #1

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('foo', 100);
var_dump($m->get('foo'));
?>

O exemplo acima produzirá:

int(100)

Exemplo #2 Memcached::get() exemplo #2

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

if (!($ip = $m->get('ip_block'))) {
if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
$ip = array();
$m->set('ip_block', $ip);
} else {
/* log error */
/* ... */
}
}
?>

Veja Também

  • Memcached::getByKey() - Recupera item de um servidor específico
  • Memcached::getMulti() - Recupera vários itens
  • Memcached::getDelayed() - Solicita vários itens


Obtém as keys armazenadas em todos os servidores

  • « Memcached::get
  • Memcached::getByKey »
  • PHP Manual
  • Memcached
  • Obtém as keys armazenadas em todos os servidores

Memcached::getAllKeys

(PECL memcached >= 2.0.0)

Memcached::getAllKeys — Obtém as keys armazenadas em todos os servidores

Descrição

public Memcached::getAllKeys(): array|false

Memcached::getAllKeys() consulta cada servidor memcache e recupera um array com todas as keys armazenadas neles naquele momento. Esta não é uma operação atômica, portanto, não é um instantâneo verdadeiramente consistente das keys no momento. Como o memcache não garante o retorno de todas as keys, você também não pode presumir que todas as keys foram retornadas.

Nota:

Este método destina-se a fins de depuração e não deve ser usado em escala!

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna as keys armazenadas em todos os servidores em caso de sucesso ou false em caso de falha.


Recupera item de um servidor específico

  • « Memcached::getAllKeys
  • Memcached::getDelayed »
  • PHP Manual
  • Memcached
  • Recupera item de um servidor específico

Memcached::getByKey

(PECL memcached >= 0.1.0)

Memcached::getByKey — Recupera item de um servidor específico

Descrição

public Memcached::getByKey(
string $server_key,
string $key,
?callable $cache_cb = null,
int $get_flags = 0
): mixed

Memcached::getByKey() é funcionalmente equivalente a Memcached::get(), exceto que a forma livre server_key pode ser usada para mapear a key para um servidor específico.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A key do item a ser recuperado.

cache_cb

Callback de cache de leitura ou null

get_flags

Flags para controlar o resultado retornado. Quando o valor de Memcached::GET_EXTENDED for fornecido, retornará o token CAS.

Valor Retornado

Retorna o valor armazenado no cache ou false caso contrário. O Memcached::getResultCode() retornará Memcached::RES_NOTFOUND se a key não existir.

Registro de Alterações

Versão | Descrição
PECL memcached 3.0.0 | O parâmetro &cas_token foi removido. Em vez disso, o parâmetro get_flags foi adicionado e quando é fornecido o valor Memcached::GET_EXTENDED, ele garantirá que o token CAS seja obtido.

Veja Também

  • Memcached::get() - Recupera um item
  • Memcached::getMulti() - Recupera vários itens
  • Memcached::getDelayed() - Solicita vários itens


Solicita vários itens

  • « Memcached::getByKey
  • Memcached::getDelayedByKey »
  • PHP Manual
  • Memcached
  • Solicita vários itens

Memcached::getDelayed

(PECL memcached >= 0.1.0)

Memcached::getDelayed — Solicita vários itens

Descrição

public Memcached::getDelayed(array $keys, bool $with_cas = false, ?callable $value_cb = null): bool

Memcached::getDelayed() emite uma solicitação ao memcache para vários itens cujas keys são especificadas no array keys. O método não espera resposta e retorna imediatamente. Quando estiver pronto para coletar os itens, chame Memcached::fetch() ou Memcached::fetchAll(). Se with_cas for true, os valores do token CAS também serão solicitados.

Em vez de buscar os resultados explicitamente, você pode especificar um callback de resultado via o parâmetro value_cb.

Parâmetros

keys

Array de keys a ser recuperado.

with_cas

Se os valores de token CAS também devem ser solicitados.

value_cb

O resultado de callback ou null.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Exemplos

Exemplo #1 Memcached::getDelayed() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>

O exemplo acima produzirá:

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

Veja Também

  • Memcached::getDelayedByKey() - Solicita vários itens de um servidor específico
  • Memcached::fetch() - Busca o próximo resultado
  • Memcached::fetchAll() - Busca todos os resultados restantes


Solicita vários itens de um servidor específico

  • « Memcached::getDelayed
  • Memcached::getMulti »
  • PHP Manual
  • Memcached
  • Solicita vários itens de um servidor específico

Memcached::getDelayedByKey

(PECL memcached >= 0.1.0)

Memcached::getDelayedByKey — Solicita vários itens de um servidor específico

Descrição

public Memcached::getDelayedByKey(
string $server_key,
array $keys,
bool $with_cas = false,
?callable $value_cb = null
): bool

Memcached::getDelayedByKey() é funcionalmente equivalente a Memcached::getDelayed(), exceto que a forma livre server_key pode ser usada para mapear as keys para um servidor específico.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

keys

Array de keys a ser recuperado.

with_cas

Se os valores de token CAS também devem ser solicitados.

value_cb

O resultado de callback ou null.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Veja Também

  • Memcached::getDelayed() - Solicita vários itens
  • Memcached::fetch() - Busca o próximo resultado
  • Memcached::fetchAll() - Busca todos os resultados restantes


Recupera vários itens

  • « Memcached::getDelayedByKey
  • Memcached::getMultiByKey »
  • PHP Manual
  • Memcached
  • Recupera vários itens

Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMulti — Recupera vários itens

Descrição

public Memcached::getMulti(array $keys, int $get_flags = 0): array|false

Memcached::getMulti() é semelhante a Memcached::get(), mas em vez de um único item de key, ele recupera vários itens cujas keys são especificadas no array keys.

Nota:

Antes da versão 3.0, um segundo argumento &cas_tokens estava em uso. Ele foi preenchido com os valores de token CAS para os itens encontrados. O parâmetro &cas_tokens foi removido na v3.0 da extensão. Ele foi substituído por uma nova flag Memcached::GET_EXTENDED que precisa ser usado como valor para get_flags.

O parâmetro get_flags pode ser usado para especificar opções adicionais para Memcached::getMulti(). Memcached::GET_PRESERVE_ORDER garante que as keys sejam retornadas na mesma ordem em que foram solicitadas. Memcached::GET_EXTENDED garante que os tokens CAS também sejam buscados.

Parâmetros

keys

Array de keys a ser recuperado.

get_flags

As flags para a operação get.

Valor Retornado

Retorna o array de itens encontrados ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Registro de Alterações

Versão | Descrição
PECL memcached 3.0.0 | O parâmetro &cas_tokens foi removido. O Memcached::GET_EXTENDEDfoi adicionado e quando passado como flag garante que os tokens CAS sejam buscados.

Exemplos

Exemplo #1 Memcached::getMulti() exemplo para Memcached v3

<?php
// Válido para v3 da extensão

$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'));
var_dump($result);
?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}

Exemplo #2 Memcached::getMulti() exemplo para Memcached v1 e v2

<?php
// Válido para v1 e v2 da extensão

$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'), $cas);
var_dump($result, $cas);
?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}
array(2) {
  ["key1"]=>
  float(2360)
  ["key3"]=>
  float(2362)
}

Exemplo #3 Memcached::GET_PRESERVE_ORDER exemplo para Memcached v3

<?php
// Válido para v3 da extensão

$m = new Memcached();
$m->addServer('localhost', 11211);

$data = array(
'foo' => 'foo-data',
'bar' => 'bar-data',
'baz' => 'baz-data',
'lol' => 'lol-data',
'kek' => 'kek-data',
);

$m->setMulti($data, 3600);

$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, Memcached::GET_PRESERVE_ORDER);

foreach ($got as $k => $v) {
echo "$k $v\n";
}
?>

O exemplo acima produzirá algo semelhante a:

foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo

Exemplo #4 Memcached::GET_PRESERVE_ORDER exemplo para Memcached v1 e v2

<?php
// Válido para v1 e v2 da extensão

$m = new Memcached();
$m->addServer('localhost', 11211);

$data = array(
'foo' => 'foo-data',
'bar' => 'bar-data',
'baz' => 'baz-data',
'lol' => 'lol-data',
'kek' => 'kek-data',
);

$m->setMulti($data, 3600);

$null = null;
$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, $null, Memcached::GET_PRESERVE_ORDER);

foreach ($got as $k => $v) {
echo "$k $v\n";
}
?>

O exemplo acima produzirá algo semelhante a:

foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo

Veja Também

  • Memcached::getMultiByKey() - Recupere vários itens de um servidor específico
  • Memcached::get() - Recupera um item
  • Memcached::getDelayed() - Solicita vários itens


Recupere vários itens de um servidor específico

  • « Memcached::getMulti
  • Memcached::getOption »
  • PHP Manual
  • Memcached
  • Recupere vários itens de um servidor específico

Memcached::getMultiByKey

(PECL memcached >= 0.1.0)

Memcached::getMultiByKey — Recupere vários itens de um servidor específico

Descrição

public Memcached::getMultiByKey(string $server_key, array $keys, int $get_flags = 0): array|false

Memcached::getMultiByKey()é funcionalmente equivalente a Memcached::getMulti(), exceto que a forma livre server_key pode ser usada para mapear as keys para um servidor específico.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

keys

Array de keys a ser recuperado.

get_flags

As flags para a operação get.

Valor Retornado

Retorna o array de itens encontrados ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Registro de Alterações

Versão | Descrição
PECL memcached 3.0.0 | O parâmetro &cas_tokens foi removido. O Memcached::GET_EXTENDEDfoi adicionado e quando passado como flag garante que os tokens CAS sejam buscados.

Veja Também

  • Memcached::getMulti() - Recupera vários itens
  • Memcached::get() - Recupera um item
  • Memcached::getDelayed() - Solicita vários itens


Recupera um valor de opção do Memcached

  • « Memcached::getMultiByKey
  • Memcached::getResultCode »
  • PHP Manual
  • Memcached
  • Recupera um valor de opção do Memcached

Memcached::getOption

(PECL memcached >= 0.1.0)

Memcached::getOption — Recupera um valor de opção do Memcached

Descrição

public Memcached::getOption(int $option): mixed

Este método retorna o valor de uma option do Memcached. Algumas opções correspondem às definidas por libmemcached e algumas são específicas da extensão. Consulte Memcached Constants para obter mais informações.

Parâmetros

option

Uma das constantes Memcached::OPT_*.

Valor Retornado

Retorna o valor da opção solicitada, ou false em caso de erro.

Exemplos

Exemplo #1 Recuperando opções do Memcached

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_COMPRESSION));
var_dump($m->getOption(Memcached::OPT_POLL_TIMEOUT));
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
int(1000)

Veja Também

  • Memcached::getOption()
  • Memcached::setOption() - Define uma opção Memcached
  • Memcached Constants


Retorna o código de resultado da última operação

  • « Memcached::getOption
  • Memcached::getResultMessage »
  • PHP Manual
  • Memcached
  • Retorna o código de resultado da última operação

Memcached::getResultCode

(PECL memcached >= 0.1.0)

Memcached::getResultCode — Retorna o código de resultado da última operação

Descrição

public Memcached::getResultCode(): int

Memcached::getResultCode() retorna uma das constantes Memcached::RES_* que é o resultado do último método Memcached executado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Código de resultado da última operação do Memcached.

Exemplos

Exemplo #1 Memcached::getResultCode() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->add('foo', 'bar');
if ($m->getResultCode() == Memcached::RES_NOTSTORED) {
/* ... */
}
?>


Retorna a mensagem descrevendo o resultado da última operação

  • « Memcached::getResultCode
  • Memcached::getServerByKey »
  • PHP Manual
  • Memcached
  • Retorna a mensagem descrevendo o resultado da última operação

Memcached::getResultMessage

(PECL memcached >= 1.0.0)

Memcached::getResultMessage — Retorna a mensagem descrevendo o resultado da última operação

Descrição

public Memcached::getResultMessage(): string

Memcached::getResultMessage() retorna uma string que descreve o código de resultado do último método Memcached executado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Mensagem descrevendo o resultado da última operação do Memcached.

Exemplos

Exemplo #1 Memcached::getResultMessage() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->add('foo', 'bar'); // primeira vez deve ter sucesso
$m->add('foo', 'bar');
echo $m->getResultMessage(),"\n";
?>

O exemplo acima produzirá:

NOT STORED


Mapear uma key para um servidor

  • « Memcached::getResultMessage
  • Memcached::getServerList »
  • PHP Manual
  • Memcached
  • Mapear uma key para um servidor

Memcached::getServerByKey

(PECL memcached >= 0.1.0)

Memcached::getServerByKey — Mapear uma key para um servidor

Descrição

public Memcached::getServerByKey(string $server_key): array|false

Memcached::getServerByKey() retorna o servidor que seria selecionado por uma server_key particular em todas as operações Memcached::*ByKey().

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

Valor Retornado

Retorna um array contendo três keys de host, port e weight em caso de sucesso ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Exemplos

Exemplo #1 Memcached::getServerByKey() exemplo

<?php
$m = new Memcached();
$m->addServers(array(
array('mem1.domain.com', 11211, 40),
array('mem2.domain.com', 11211, 40),
array('mem3.domain.com', 11211, 20),
));

$m->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);

var_dump($m->getServerByKey('user'));
var_dump($m->getServerByKey('log'));
var_dump($m->getServerByKey('ip'));
?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  ["host"]=>
  string(15) "mem3.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(20)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}


Obtenha a lista dos servidores no pool

  • « Memcached::getServerByKey
  • Memcached::getStats »
  • PHP Manual
  • Memcached
  • Obtenha a lista dos servidores no pool

Memcached::getServerList

(PECL memcached >= 0.1.0)

Memcached::getServerList — Obtenha a lista dos servidores no pool

Descrição

public Memcached::getServerList(): array

Memcached::getServerList() retorna a lista de todos os servidores que estão em seu pool de servidores.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A lista de todos os servidores no pool de servidores.

Exemplos

Exemplo #1 Memcached::getServerList() exemplo

<?php
$m = new Memcached();
$m->addServers(array(
array('mem1.domain.com', 11211, 20),
array('mem2.domain.com', 11311, 80),
));
var_dump($m->getServerList());
?>

O exemplo acima produzirá:

array(2) {
  [0]=>
  array(3) {
    ["host"]=>
    string(15) "mem1.domain.com"
    ["port"]=>
    int(11211)
    ["weight"]=>
    int(20)
  }
  [1]=>
  array(3) {
    ["host"]=>
    string(15) "mem2.domain.com"
    ["port"]=>
    int(11311)
    ["weight"]=>
    int(80)
  }
}


Obtem estatísticas do pool de servidores

  • « Memcached::getServerList
  • Memcached::getVersion »
  • PHP Manual
  • Memcached
  • Obtem estatísticas do pool de servidores

Memcached::getStats

(PECL memcached >= 0.1.0)

Memcached::getStats — Obtem estatísticas do pool de servidores

Descrição

public Memcached::getStats(?string $type = null): array|false

Memcached::getStats() retorna um array contendo o estado de todos os servidores memcache disponíveis. Consulte a especificação do » memcache protocol para obter detalhes sobre essas estatísticas.

Parâmetros

type

O tipo de estatísticas a serem buscadas.

Valor Retornado

Array de estatísticas do servidor, uma entrada por servidor, ou false em caso de falha.

Exemplos

Exemplo #1 Memcached::getStats() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getStats());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [localhost:11211] => Array
        (
            [pid] => 4933
            [uptime] => 786123
            [threads] => 1
            [time] => 1233868010
            [pointer_size] => 32
            [rusage_user_seconds] => 0
            [rusage_user_microseconds] => 140000
            [rusage_system_seconds] => 23
            [rusage_system_microseconds] => 210000
            [curr_items] => 145
            [total_items] => 2374
            [limit_maxbytes] => 67108864
            [curr_connections] => 2
            [total_connections] => 151
            [connection_structures] => 3
            [bytes] => 20345
            [cmd_get] => 213343
            [cmd_set] => 2381
            [get_hits] => 204223
            [get_misses] => 9120
            [evictions] => 0
            [bytes_read] => 9092476
            [bytes_written] => 15420512
            [version] => 1.2.6
        )

)


Obtem informações da versão do pool de servidores

  • « Memcached::getStats
  • Memcached::increment »
  • PHP Manual
  • Memcached
  • Obtem informações da versão do pool de servidores

Memcached::getVersion

(PECL memcached >= 0.1.5)

Memcached::getVersion — Obtem informações da versão do pool de servidores

Descrição

public Memcached::getVersion(): array|false

Memcached::getVersion() retorna um array contendo as informações de versão para todos os servidores memcache disponíveis.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Array de versões de servidor, uma entrada por servidor.

Exemplos

Exemplo #1 Memcached::getVersion() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getVersion());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [localhost:11211] => 1.2.6
)


Incrementa o valor do item numérico

  • « Memcached::getVersion
  • Memcached::incrementByKey »
  • PHP Manual
  • Memcached
  • Incrementa o valor do item numérico

Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::increment — Incrementa o valor do item numérico

Descrição

public Memcached::increment(
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false

Memcached::increment() incrementa o valor de um item numérico pelo offset especificado. Se o valor do item não for numérico, ocorrerá um erro. Memcached::increment() irá definir o item para o parâmetro initial_value se a key não existir.

Parâmetros

key

A key do item a incrementar.

offset

A quantia pela qual incrementar o valor do item.

initial_value

O valor para definir o item se ele não existir no momento.

expiry

O tempo de expiração a ser definido no item.

Valor Retornado

Retorna o valor do novo item em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Memcached::increment() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 0);
$m->increment('counter');
$n = $m->increment('counter', 10);
var_dump($n);

$m->set('counter', 'abc');
$n = $m->increment('counter');
// ^ falhará devido ao valor do item não ser numérico
var_dump($n);
?>

O exemplo acima produzirá:

int(11)
bool(false)

Veja Também

  • Memcached::decrement() - Decrementa o valor do item numérico
  • Memcached::decrementByKey() - Decrementa o valor do item numérico, armazenado em um servidor específico
  • Memcached::incrementByKey() - Incrementa o valor do item numérico, armazenado em um servidor específico


Incrementa o valor do item numérico, armazenado em um servidor específico

  • « Memcached::increment
  • Memcached::isPersistent »
  • PHP Manual
  • Memcached
  • Incrementa o valor do item numérico, armazenado em um servidor específico

Memcached::incrementByKey

(PECL memcached >= 2.0.0)

Memcached::incrementByKey — Incrementa o valor do item numérico, armazenado em um servidor específico

Descrição

public Memcached::incrementByKey(
string $server_key,
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false

Memcached::incrementByKey() incrementa o valor de um item numérico pelo offset especificado. Se o valor do item não for numérico, ocorrerá um erro. Memcached::incrementByKey() irá definir o item para o parâmetro initial_value se a key não existir.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A key do item a incrementar.

offset

A quantia pela qual incrementar o valor do item.

initial_value

O valor para definir o item se ele não existir no momento.

expiry

O tempo de expiração a ser definido no item.

Valor Retornado

Retorna o valor do novo item em caso de sucesso ou false em caso de falha.

Veja Também

  • Memcached::decrement() - Decrementa o valor do item numérico
  • Memcached::decrementByKey() - Decrementa o valor do item numérico, armazenado em um servidor específico
  • Memcached::increment() - Incrementa o valor do item numérico


Verifica se uma conexão permanente com o memcache está sendo usada

  • « Memcached::incrementByKey
  • Memcached::isPristine »
  • PHP Manual
  • Memcached
  • Verifica se uma conexão permanente com o memcache está sendo usada

Memcached::isPersistent

(PECL memcached >= 2.0.0)

Memcached::isPersistent — Verifica se uma conexão permanente com o memcache está sendo usada

Descrição

public Memcached::isPersistent(): bool

Memcached::isPersistent() verifica se as conexões com os servidores memcache são conexões persistentes.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a instância do Memcache usar uma conexão persistente, false caso contrário.

Veja Também

  • Memcached::isPristine() - Verifica se a instância foi criada recentemente


Verifica se a instância foi criada recentemente

  • « Memcached::isPersistent
  • Memcached::prepend »
  • PHP Manual
  • Memcached
  • Verifica se a instância foi criada recentemente

Memcached::isPristine

(PECL memcached >= 2.0.0)

Memcached::isPristine — Verifica se a instância foi criada recentemente

Descrição

public Memcached::isPristine(): bool

Memcached::isPristine() verifica se a instância do Memcache foi criada recentemente.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se a instância foi criada recentemente, false caso contrário.

Veja Também

  • Memcached::isPersistent() - Verifica se uma conexão permanente com o memcache está sendo usada


Anexa dados a um item existente

  • « Memcached::isPristine
  • Memcached::prependByKey »
  • PHP Manual
  • Memcached
  • Anexa dados a um item existente

Memcached::prepend

(PECL memcached >= 0.1.0)

Memcached::prepend — Anexa dados a um item existente

Descrição

public Memcached::prepend(string $key, string $value): ?bool

Memcached::prepend() anexa a string value fornecida ao valor de um item existente. A razão pela qual value é forçado a ser uma string é que tipos mistos não são bem definidos.

Nota:

Se o Memcached::OPT_COMPRESSION estiver ativado, a operação falhará e um aviso será emitido, porque não é possível anexar dados compactados a um valor que já está compactado.

Parâmetros

key

A key do item para anexar os dados.

value

A string a ser anexada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Retorna null quando a compressão está ativada.

Erros/Exceções

Retorna null e gera um E_WARNING quando a compressão está habilitada.

Exemplos

Exemplo #1 Memcached::prepend() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->prepend('foo', 'def');
var_dump($m->get('foo'));
?>

O exemplo acima produzirá:

string(6) "defabc"

Veja Também

  • Memcached::prependByKey() - Anexa dados a um item existente em um servidor específico
  • Memcached::append() - Anexa dados a um item existente


Anexa dados a um item existente em um servidor específico

  • « Memcached::prepend
  • Memcached::quit »
  • PHP Manual
  • Memcached
  • Anexa dados a um item existente em um servidor específico

Memcached::prependByKey

(PECL memcached >= 0.1.0)

Memcached::prependByKey — Anexa dados a um item existente em um servidor específico

Descrição

public Memcached::prependByKey(string $server_key, string $key, string $value): ?bool

Memcached::prependByKey() é funcionalmente equivalente a Memcached::prepend(), exceto que a forma livre server_key pode ser usada para mapear a key para um servidor específico.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A key do item para anexar os dados.

value

A string a ser anexada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Retorna null quando a compressão está ativada.

Erros/Exceções

Retorna null e gera um E_WARNING quando a compressão está habilitada.

Veja Também

  • Memcached::prepend() - Anexa dados a um item existente
  • Memcached::append() - Anexa dados a um item existente


Fecha todas as conexões abertas

  • « Memcached::prependByKey
  • Memcached::replace »
  • PHP Manual
  • Memcached
  • Fecha todas as conexões abertas

Memcached::quit

(PECL memcached >= 2.0.0)

Memcached::quit — Fecha todas as conexões abertas

Descrição

public Memcached::quit(): bool

Memcached::quit() fecha qualquer conexão aberta com os servidores memcache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Substitua o item em uma key existente

  • « Memcached::quit
  • Memcached::replaceByKey »
  • PHP Manual
  • Memcached
  • Substitua o item em uma key existente

Memcached::replace

(PECL memcached >= 0.1.0)

Memcached::replace — Substitua o item em uma key existente

Descrição

public Memcached::replace(string $key, mixed $value, int $expiration = 0): bool

Memcached::replace() é semelhante a Memcached::set(), mas a operação falha se a key não existir no servidor.

Parâmetros

key

A chave sob a qual armazenar o valor.

value

O valor a ser armazenado.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. O Memcached::getResultCode() retornará Memcached::RES_NOTSTORED se a key não existir.

Veja Também

  • Memcached::replaceByKey() - Substitua o item em uma key existente em um servidor específico
  • Memcached::set() - Armazena um item
  • Memcached::add() - Adiciona um item em uma nova key


Substitua o item em uma key existente em um servidor específico

  • « Memcached::replace
  • Memcached::resetServerList »
  • PHP Manual
  • Memcached
  • Substitua o item em uma key existente em um servidor específico

Memcached::replaceByKey

(PECL memcached >= 0.1.0)

Memcached::replaceByKey — Substitua o item em uma key existente em um servidor específico

Descrição

public Memcached::replaceByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool

Memcached::replaceByKey() é funcionalmente equivalente a Memcached::replace(), exceto que a forma livre server_key pode ser usada para mapear a key para um servidor específico. Isso é útil se você precisar manter várias keys relacionadas em um determinado servidor.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A chave sob a qual armazenar o valor.

value

O valor a ser armazenado.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. O Memcached::getResultCode() retornará Memcached::RES_NOTSTORED se a key não existir.

Veja Também

  • Memcached::replace() - Substitua o item em uma key existente
  • Memcached::set() - Armazena um item
  • Memcached::add() - Adiciona um item em uma nova key


Limpa todos os servidores da lista de servidores

  • « Memcached::replaceByKey
  • Memcached::set »
  • PHP Manual
  • Memcached
  • Limpa todos os servidores da lista de servidores

Memcached::resetServerList

(PECL memcached >= 2.0.0)

Memcached::resetServerList — Limpa todos os servidores da lista de servidores

Descrição

public Memcached::resetServerList(): bool

Memcached::resetserverlist() remove todos os servidores memcache da lista de servidores conhecidos, redefinindo-a para vazio.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • Memcached::addServer() - Adiciona um servidor ao pool de servidores
  • Memcached::addServers() - Adiciona múltiplos servidores ao pool de servidores


Armazena um item

  • « Memcached::resetServerList
  • Memcached::setByKey »
  • PHP Manual
  • Memcached
  • Armazena um item

Memcached::set

(PECL memcached >= 0.1.0)

Memcached::set — Armazena um item

Descrição

public Memcached::set(string $key, mixed $value, int $expiration = 0): bool

Memcached::set() armazena o value em um servidor memcache sob a key especificada. O parâmetro expiration pode ser usado para controlar quando o valor é considerado expirado.

O valor pode ser qualquer tipo de PHP válido, exceto recursos, porque eles não podem ser representados de forma serializada. Se a opção Memcached::OPT_COMPRESSION estiver ativada, o valor serializado também será compactado antes do armazenamento.

Parâmetros

key

A chave sob a qual armazenar o valor.

value

O valor a ser armazenado.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Exemplos

Exemplo #1 Memcached::set() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
/* expire 'object' key in 5 minutes */
$m->set('object', new stdClass, time() + 300);

var_dump($m->get('int'));
var_dump($m->get('string'));
var_dump($m->get('array'));
var_dump($m->get('object'));
?>

O exemplo acima produzirá algo semelhante a:

int(99)
string(15) "a simple string"
array(2) {
  [0]=>
  int(11)
  [1]=>
  int(12)
}
object(stdClass)#1 (0) {
}

Veja Também

  • Memcached::setByKey() - Armazena um item em um servidor específico
  • Memcached::add() - Adiciona um item em uma nova key
  • Memcached::replace() - Substitua o item em uma key existente


Armazena um item em um servidor específico

  • « Memcached::set
  • Memcached::setMulti »
  • PHP Manual
  • Memcached
  • Armazena um item em um servidor específico

Memcached::setByKey

(PECL memcached >= 0.1.0)

Memcached::setByKey — Armazena um item em um servidor específico

Descrição

public Memcached::setByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool

Memcached::setByKey() é funcionalmente equivalente a Memcached::set(), exceto que a forma livre server_key pode ser usada para mapear a key para um servidor específico. Isso é útil se você precisar manter várias keys relacionadas em um determinado servidor.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A chave sob a qual armazenar o valor.

value

O valor a ser armazenado.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Exemplos

Exemplo #1 Memcached::setByKey() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

/* manter blocos de IP em um determinado servidor */
$m->setByKey('api-cache', 'block-ip:169.254.253.252', 1);
$m->setByKey('api-cache', 'block-ip:169.127.127.202', 1);
?>

Veja Também

  • Memcached::set() - Armazena um item


Armazena vários itens

  • « Memcached::setByKey
  • Memcached::setMultiByKey »
  • PHP Manual
  • Memcached
  • Armazena vários itens

Memcached::setMulti

(PECL memcached >= 0.1.0)

Memcached::setMulti — Armazena vários itens

Descrição

public Memcached::setMulti(array $items, int $expiration = 0): bool

Memcached::setMulti() é semelhante a Memcached::set(), mas em vez de um único item de key/value, ele funciona em vários itens especificados em items. O tempo de expiration se aplica a todos os itens de uma só vez.

Parâmetros

items

Um array de pares chave/valor para armazenar no servidor.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Exemplos

Exemplo #1 Memcached::setMulti() exemplo

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$m->setMulti($items, time() + 300);
?>

Veja Também

  • Memcached::setMultiByKey() - Armazena vários itens em um servidor específico
  • Memcached::set() - Armazena um item


Armazena vários itens em um servidor específico

  • « Memcached::setMulti
  • Memcached::setOption »
  • PHP Manual
  • Memcached
  • Armazena vários itens em um servidor específico

Memcached::setMultiByKey

(PECL memcached >= 0.1.0)

Memcached::setMultiByKey — Armazena vários itens em um servidor específico

Descrição

public Memcached::setMultiByKey(string $server_key, array $items, int $expiration = 0): bool

Memcached::setMultiByKey() é funcionalmente equivalente a Memcached::setMulti(), exceto que a forma livre server_key pode ser usada para mapear as keys de items para um servidor específico. Isso é útil se você precisar manter várias keys relacionadas em um determinado servidor.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

items

Um array de pares chave/valor para armazenar no servidor.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Veja Também

  • Memcached::setMulti() - Armazena vários itens
  • Memcached::set() - Armazena um item


Define uma opção Memcached

  • « Memcached::setMultiByKey
  • Memcached::setOptions »
  • PHP Manual
  • Memcached
  • Define uma opção Memcached

Memcached::setOption

(PECL memcached >= 0.1.0)

Memcached::setOption — Define uma opção Memcached

Descrição

public Memcached::setOption(int $option, mixed $value): bool

Este método define o valor de uma option do Memcached. Algumas opções correspondem às definidas por libmemcached e algumas são específicas da extensão.

Parâmetros

option

Uma das constantes Memcached::OPT_*. Consulte Memcached Constants para obter mais informações.

value

O valor a ser definido.

Nota:

As opções listadas abaixo requerem valores especificados por meio de constantes.

  • Memcached::OPT_HASH requer valores Memcached::HASH_*.
  • Memcached::OPT_DISTRIBUTION requer valores Memcached::DISTRIBUTION_*.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Definindo uma opção do Memcached

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
$m->setOption(Memcached::OPT_HASH, Memcached::HASH_MURMUR);
$m->setOption(Memcached::OPT_PREFIX_KEY, "widgets");
echo "Prefix key is now: ", $m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

O exemplo acima produzirá:

bool(true)
Prefix key is now: widgets

Veja Também

  • Memcached::getOption() - Recupera um valor de opção do Memcached
  • Memcached::setOptions() - Define opções do Memcached
  • Memcached Constantes


Define opções do Memcached

  • « Memcached::setOption
  • Memcached::setSaslAuthData »
  • PHP Manual
  • Memcached
  • Define opções do Memcached

Memcached::setOptions

(PECL memcached >= 2.0.0)

Memcached::setOptions — Define opções do Memcached

Descrição

public Memcached::setOptions(array $options): bool

Memcached::setOptions() é uma variação do Memcached::setOption() que leva um array de opções a serem definidas.

Parâmetros

options

Um array associativo de opções em que a key é a opção a ser definida e o valor é o novo valor da opção.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Configurando as opções do Memcached

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);

$m->setOptions(array(Memcached::OPT_HASH => Memcached::HASH_MURMUR, Memcached::OPT_PREFIX_KEY => "widgets"));

var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
echo "A key do prefixo agora é: ", $m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

O exemplo acima produzirá:

bool(true)
bool(false)
A key do prefixo agora é: widgets

Veja Também

  • Memcached::getOption() - Recupera um valor de opção do Memcached
  • Memcached::setOption() - Define uma opção Memcached
  • Memcached Constantes


Define as credenciais a serem usadas para autenticação

  • « Memcached::setOptions
  • Memcached::touch »
  • PHP Manual
  • Memcached
  • Define as credenciais a serem usadas para autenticação

Memcached::setSaslAuthData

(PECL memcached >= 2.0.0)

Memcached::setSaslAuthData — Define as credenciais a serem usadas para autenticação

Descrição

public Memcached::setSaslAuthData(string $username, string $password): bool

Memcached::setSaslAuthData() define o nome de usuário e a senha que devem ser usados para autenticação SASL com os servidores memcache.

Este método só está disponível quando a extensão memcached é criada com suporte a SASL. Consulte a configuração do Memcached para saber como fazer isso.

Parâmetros

username

O nome de usuário a ser usado para autenticação.

password

A senha a ser usada para autenticação.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Define uma nova expiração para um item

  • « Memcached::setSaslAuthData
  • Memcached::touchByKey »
  • PHP Manual
  • Memcached
  • Define uma nova expiração para um item

Memcached::touch

(PECL memcached >= 2.0.0)

Memcached::touch — Define uma nova expiração para um item

Descrição

public Memcached::touch(string $key, int $expiration = 0): bool

Memcached::touch()define um novo valor de expiração na key fornecida.

Parâmetros

key

A chave sob a qual armazenar o valor.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Veja Também

  • Memcached::touchByKey() - Define uma nova expiração para um item em um servidor específico


Define uma nova expiração para um item em um servidor específico

  • « Memcached::touch
  • MemcachedException »
  • PHP Manual
  • Memcached
  • Define uma nova expiração para um item em um servidor específico

Memcached::touchByKey

(PECL memcached >= 2.0.0)

Memcached::touchByKey — Define uma nova expiração para um item em um servidor específico

Descrição

public Memcached::touchByKey(string $server_key, string $key, int $expiration = 0): bool

Memcached::touchByKey() é funcionalmente equivalente a Memcached::touch(), exceto que a forma livre server_key pode ser usada para mapear a key para um servidor específico.

Parâmetros

server_key

A chave que identifica o servidor no qual armazenar o valor ou de onde recuperá-lo. Em vez de fazer o hash na chave real do item, o hash é feito na chave do servidor ao decidir com qual servidor memcached se comunicar. Isso permite que itens relacionados sejam agrupados em um único servidor para eficiência com múltiplas operações.

key

A chave sob a qual armazenar o valor.

expiration

O tempo de expiração padrão é 0. Consulte Tempos de Expiração para mais informações.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Use Memcached::getResultCode() se necessário.

Veja Também

  • Memcached::touch() - Define uma nova expiração para um item


A classe MemcachedException

(PECL memcached >= 0.1.0)

Introdução

Resumo da classe

class MemcachedException extends RuntimeException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


mqseries

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • mqseries Funções
    • mqseries_back — MQSeries MQBACK
    • mqseries_begin — MQseries MQBEGIN
    • mqseries_close — MQSeries MQCLOSE
    • mqseries_cmit — MQSeries MQCMIT
    • mqseries_conn — MQSeries MQCONN
    • mqseries_connx — MQSeries MQCONNX
    • mqseries_disc — MQSeries MQDISC
    • mqseries_get — MQSeries MQGET
    • mqseries_inq — MQSeries MQINQ
    • mqseries_open — MQSeries MQOPEN
    • mqseries_put1 — MQSeries MQPUT1
    • mqseries_put — MQSeries MQPUT
    • mqseries_set — MQSeries MQSET
    • mqseries_strerror — Returns the error message corresponding to a result code (MQRC)


Introdução

This extension aims to provide an interface for communicating with IBMs WebSphere MQ series Queue managers.

The interface mimics the C-API client interface of WebSphere MQ Series as close as possible. Using the same naming conventions and possibilities of the C-API. In order to understand the workings of this extension some level of understanding the C-API is required.

For MQ-options, MQ-structures, MQ-results etc. please read the WebSphere MQ Application Programming Guide and WebSphere MQ Application Programming Reference.


Dependências

A working IBM WebSphere MQ installation. If building the extension the SDK for IBM WebSphere MQ is also required.

Nota: Be aware that when running against a IBM WebSphere MQ Client installation some methods are not available. This is not a problem of the extension but just the way the WebSphere MQ Client Interface works.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/mqseries.

Nota: The official name of this extension is mqseries.

There are two ways to connect to a queue manager. These depend on the way the extension is compiled and linked.

  • First one and also the default one is using the mqic libraries. Compiling and linking the extension against these IBM WebSphere MQSeries libraries allows the extension to connect to the Queue manager using the client interface. Remote connections are possible this way.

  • The other way is to compile and link against the mqm libraries. Using these libraries it is possible to make use of the transaction management of a queue manager.

Currently selecting the libraries to use is done by changing the config.m4 file.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

There are no extra configuration parameters.


Tipos de Recurso

This extension defines a connection and object_handle resources.

The mqseries_conn() and mqseries_connx() define the connectionn handles.

The mqseries_open() defines the object handle.


Constantes pré-definidas

For each WebSphere MQ Constant there is a mqseries counterpart.

For definitions and usage see the WebSphere MQ Application Programming Guide and WebSphere MQ Application Programming Reference red books.

The name of the mqseries counterpart is made by appending the WebSphere MQ constant with MQSERIES_, for example the CompletionCode constants are:

mqseries constants
PHP Constant | MQ Constant
MQSERIES_MQCC_OK | MQCC_OK
MQSERIES_MQCC_WARNING | MQCC_WARNING
MQSERIES_MQCC_FAILED | MQCC_FAILED
MQSERIES_MQCC_UNKNOWN | MQCC_UNKNOWN


mqseries Funções

Índice

  • mqseries_back — MQSeries MQBACK
  • mqseries_begin — MQseries MQBEGIN
  • mqseries_close — MQSeries MQCLOSE
  • mqseries_cmit — MQSeries MQCMIT
  • mqseries_conn — MQSeries MQCONN
  • mqseries_connx — MQSeries MQCONNX
  • mqseries_disc — MQSeries MQDISC
  • mqseries_get — MQSeries MQGET
  • mqseries_inq — MQSeries MQINQ
  • mqseries_open — MQSeries MQOPEN
  • mqseries_put1 — MQSeries MQPUT1
  • mqseries_put — MQSeries MQPUT
  • mqseries_set — MQSeries MQSET
  • mqseries_strerror — Returns the error message corresponding to a result code (MQRC)


MQSeries MQBACK

  • « mqseries Funções
  • mqseries_begin »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQBACK

mqseries_back

(PECL mqseries >= 0.10.0)

mqseries_back — MQSeries MQBACK

Descrição

mqseries_back(resource $hconn, resource &$compCode, resource &$reason): void

The mqseries_back() (MQBACK) call indicates to the queue manager that all the message gets and puts that have occurred since the last syncpoint are to be backed out. Messages put as part of a unit of work are deleted; messages retrieved as part of a unit of work are reinstated on the queue.

Using mqseries_back() only works in conjunction with mqseries_begin() and only function when connecting directly to a Queueu manager. Not via the mqclient interface.

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_back() example

<?php
mqseries_back($conn, $comp_code, $reason);

if ($comp_code !== MQSERIES_MQCC_OK) {
printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
}
?>

Notas

Nota:

mqseries_back() will not function when using MQSeries Client to connect to a Queueu Manager.

Veja Também

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_begin() - MQseries MQBEGIN


MQseries MQBEGIN

  • « mqseries_back
  • mqseries_close »
  • PHP Manual
  • mqseries Funções
  • MQseries MQBEGIN

mqseries_begin

(PECL mqseries >= 0.10.0)

mqseries_begin — MQseries MQBEGIN

Descrição

mqseries_begin(
resource $hconn,
array $beginOptions,
resource &$compCode,
resource &$reason
): void

The mqseries_begin() (MQBEGIN) call begins a unit of work that is coordinated by the queue manager, and that may involve external resource managers.

Using mqseries_begin() starts the unit of work. Either mqseries_back() or mqseries_cmit() ends the unit of work.

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_begin() example

<?php
$mqbo = array();
mqseries_begin( $conn,
$mqbo,
$comp_code,
$reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
/* reason code 2121 is a warning for more information see MQSeries reference manual.*/
if ($reason !== 2121) {
printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
}
}
?>

Notas

Nota:

mqseries_begin() will not function when using MQSeries Client to connect to a Queueu Manager.

Veja Também

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_back() - MQSeries MQBACK
  • mqseries_cmit() - MQSeries MQCMIT


MQSeries MQCLOSE

  • « mqseries_begin
  • mqseries_cmit »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQCLOSE

mqseries_close

(PECL mqseries >= 0.10.0)

mqseries_close — MQSeries MQCLOSE

Descrição

mqseries_close(
resource $hconn,
resource $hobj,
int $options,
resource &$compCode,
resource &$reason
): void

The mqseries_close() (MQCLOSE) call relinquishes access to an object, and is the inverse of the mqseries_open() (MQOPEN) call.

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

options

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_close() example

<?php
mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("close CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
}
?>

Veja Também

  • mqseries_open() - MQSeries MQOPEN
  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQCMIT

  • « mqseries_close
  • mqseries_conn »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQCMIT

mqseries_cmit

(PECL mqseries >= 0.10.0)

mqseries_cmit — MQSeries MQCMIT

Descrição

mqseries_cmit(resource $hconn, resource &$compCode, resource &$reason): void

The mqseries_cmit() (MQCMIT) call indicates to the queue manager that the application has reached a syncpoint, and that all of the message gets and puts that have occurred since the last syncpoint are to be made permanent. Messages put as part of a unit of work are made available to other applications; messages retrieved as part of a unit of work are deleted.

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_cmit() example

<?php
mqseries_cmit($conn, $comp_code, $reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("cmit CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
}
?>

Notas

Nota:

mqseries_back() will not function when using MQSeries Client to connect to a Queueu Manager.

Veja Também

  • mqseries_begin() - MQseries MQBEGIN
  • mqseries_back() - MQSeries MQBACK
  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQCONN

  • « mqseries_cmit
  • mqseries_connx »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQCONN

mqseries_conn

(PECL mqseries >= 0.10.0)

mqseries_conn — MQSeries MQCONN

Descrição

mqseries_conn(
string $qManagerName,
resource &$hconn,
resource &$compCode,
resource &$reason
): void

The mqseries_conn() (MQCONN) call connects an application program to a queue manager. It provides a queue manager connection handle, which is used by the application on subsequent message queuing calls.

Parâmetros

qManagerName

Name of queue manager.

Name of the queue manager the application wishes to connect.

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_conn() example

<?php
mqseries_conn('WMQ1', $conn, $comp_code, $reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("conn CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
exit;
}
?>

Veja Também

  • mqseries_disc() - MQSeries MQDISC


MQSeries MQCONNX

  • « mqseries_conn
  • mqseries_disc »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQCONNX

mqseries_connx

(PECL mqseries >= 0.10.0)

mqseries_connx — MQSeries MQCONNX

Descrição

mqseries_connx(
string $qManagerName,
array &$connOptions,
resource &$hconn,
resource &$compCode,
resource &$reason
): void

The mqseries_connx() (MQCONNX) call connects an application program to a queue manager. It provides a queue manager connection handle, which is used by the application on subsequent MQ calls.

The mqseries_connx() call is like the mqseries_conn() (MQCONN) call, except that MQCONNX allows options to be specified to control the way that the call works.

Parâmetros

qManagerName

Name of queue manager.

Name of the queue manager the application wishes to connect.

connOps

Options that control the action of function

See also the MQCNO structure.

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_connx() example

<?php
$mqcno = array(
'Version' => MQSERIES_MQCNO_VERSION_2,
'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
'MQCD' => array('ChannelName' => 'MQNX9420.CLIENT',
'ConnectionName' => 'localhost',
'TransportType' => MQSERIES_MQXPT_TCP)
);

mqseries_connx('MQNX9420', $mqcno, $conn, $comp_code,$reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
exit;
}

?>

Exemplo #2 mqseries_connx() example using SSL connection & OCSP Responder URL

<?php
$mqcno = array(
'Version' => 4, //MQCNO_VERSION_4
'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
'MQCD' => array(
'Version' => 7, //MQCD_VERSION_7
'ConnectionName' => 'localhost',
'TransportType' => MQSERIES_MQXPT_TCP,
'ChannelName' => 'CONNECTIONCHANNEL',
'SSLCipherSpec' => 'NULL_SHA'
),
'MQSCO' => array(
'KeyRepository' => '/var/mqm/qmgrs/QUEUEMGR/ssl/key', //Local path where the SSL key repository can be found
'MQAIR' => array(
'Version' => 2, //MQAIR_VERSION_2
'AuthInfoType' => 2, //MQAIT_OCSP
'OCSPResponderURL' => 'http://dummy.OCSP.responder'
)
)
);

mqseries_connx('QUEUEMGR', $mqcno, $conn, $comp_code,$reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
exit;
}

?>

Veja Também

  • mqseries_disc() - MQSeries MQDISC


MQSeries MQDISC

  • « mqseries_connx
  • mqseries_get »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQDISC

mqseries_disc

(PECL mqseries >= 0.10.0)

mqseries_disc — MQSeries MQDISC

Descrição

mqseries_disc(resource $hconn, resource &$compCode, resource &$reason): void

The mqseries_disc() (MQDISC) call breaks the connection between the queue manager and the application program, and is the inverse of the mqseries_conn() (MQCONN) or mqseries_connx() (MQCONNX) call.

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_disc() example

<?php
mqseries_disc($conn, $comp_code, $reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("disc CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
}
?>

Veja Também

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQGET

  • « mqseries_disc
  • mqseries_inq »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQGET

mqseries_get

(PECL mqseries >= 0.10.0)

mqseries_get — MQSeries MQGET

Descrição

mqseries_get(
resource $hConn,
resource $hObj,
array &$md,
array &$gmo,
int &$bufferLength,
string &$msg,
int &$data_length,
resource &$compCode,
resource &$reason
): void

The mqseries_get() (MQGET) call retrieves a message from a local queue that has been opened using the mqseries_open() (MQOPEN) call

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

md

Message descriptor (MQMD).

gmo

Get message options (MQGMO).

bufferLength

Expected length of the result buffer

msg

Buffer holding the message that was retrieved from the object.

data_length

Actual buffer length

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_get() example

<?php
// open connection to the queue manager
mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connection to the testq queue
mqseries_open(
$conn,
array('ObjectName' => 'TESTQ'),
MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
$obj,
$comp_code,
$reason);
// $obj now holds the reference to the object (TESTQ)

// setup empty message descriptor.
$mdg = array();
// setup get message options
$gmo = array('Options' => MQSERIES_MQGMO_FAIL_IF_QUIESCING | MQSERIES_MQGMO_WAIT, 'WaitInterval' => 3000);

// get the message from the queue
mqseries_get($conn, $obj, $mdg, $gmo, 255, $msg, $data_length, $comp_code, $reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("GET CompCode:%d Reason:%d Text:%s<br>", $comp_code, $reason, mqseries_strerror($reason));
}

// close the object reference $obj
mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);

// disconnect from the queue manager.
mqseries_disc($conn, $comp_code, $reason);

?>

Veja Também

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_put() - MQSeries MQPUT


MQSeries MQINQ

  • « mqseries_get
  • mqseries_open »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQINQ

mqseries_inq

(PECL mqseries >= 0.10.0)

mqseries_inq — MQSeries MQINQ

Descrição

mqseries_inq(
resource $hconn,
resource $hobj,
int $selectorCount,
array $selectors,
int $intAttrCount,
resource &$intAttr,
int $charAttrLength,
resource &$charAttr,
resource &$compCode,
resource &$reason
): void

The mqseries_inq() (MQINQ) call returns an array of integers and a set of character strings containing the attributes of an object.

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

selectorCount

Count of selectors.

selectors

Array of attribute selectors.

intAttrLength

Count of integer attributes.

intAttr

Array of integer attributes.

charAttrLength

Length of character attributes buffer.

charAttr

Character attributes.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_inq() example

<?php
$int_attr = array();
$char_attr = "";

mqseries_inq($conn, $obj, 1, array(MQSERIES_MQCA_Q_MGR_NAME), 0, $int_attr, 48, $char_attr, $comp_code, $reason);

if ($comp_code !== MQSERIES_MQCC_OK) {
printf("INQ CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
} else {
echo "INQ QManager name result ".$char_attr."<br>\n";
}
?>

Veja Também

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN


MQSeries MQOPEN

  • « mqseries_inq
  • mqseries_put1 »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQOPEN

mqseries_open

(PECL mqseries >= 0.10.0)

mqseries_open — MQSeries MQOPEN

Descrição

mqseries_open(
resource $hconn,
array &$objDesc,
int $option,
resource &$hobj,
resource &$compCode,
resource &$reason
): void

The mqseries_open() (MQOPEN) call establishes access to an object.

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

objDesc

Object descriptor. (MQOD)

options

Options that control the action of the function.

hObj

Object handle.

This handle represents the object to be used.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_open() example

<?php
$mqods = array('ObjectName' => 'TESTQ');
mqseries_open(
$conn,
$mqods,
MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
$obj,
$comp_code,
$reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("open CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
exit;
}
?>

Veja Também

  • mqseries_close() - MQSeries MQCLOSE


MQSeries MQPUT1

  • « mqseries_open
  • mqseries_put »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQPUT1

mqseries_put1

(PECL mqseries >= 0.10.0)

mqseries_put1 — MQSeries MQPUT1

Descrição

mqseries_put1(
resource $hconn,
resource &$objDesc,
resource &$msgDesc,
resource &$pmo,
string $buffer,
resource &$compCode,
resource &$reason
): void

The mqseries_put1() (MQPUT1) call puts one message on a queue. The queue need not be open.

You can use both the mqseries_put() and mqseries_put1() calls to put messages on a queue; which call to use depends on the circumstances. Use the mqseries_put() (MQPUT) call to place multiple messages on the same queue. Use the mqseries_put1() (MQPUT1) call to put only one message on a queue. This call encapsulates the MQOPEN, MQPUT, and MQCLOSE calls into a single call, minimizing the number of calls that must be issued.

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

objDesc

Object descriptor. (MQOD)

This is a structure which identifies the queue to which the message is added.

msgDesc

Message descriptor (MQMD).

pmo

Put message options (MQPMO).

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_get() - MQSeries MQGET


MQSeries MQPUT

  • « mqseries_put1
  • mqseries_set »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQPUT

mqseries_put

(PECL mqseries >= 0.10.0)

mqseries_put — MQSeries MQPUT

Descrição

mqseries_put(
resource $hConn,
resource $hObj,
array &$md,
array &$pmo,
string $message,
resource &$compCode,
resource &$reason
): void

The mqseries_put() (MQPUT) call puts a message on a queue or distribution list. The queue or distribution list must already be open.

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

md

Message descriptor (MQMD).

pmo

Put message options (MQPMO).

message

The actual message to put onto the queue.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 mqseries_put() example

<?php
// open connection to the queue manager
mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connectio to the testq queueu
mqseries_open(
$conn,
array('ObjectName' => 'TESTQ'),
MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
$obj,
$comp_code,
$reason);
// $obj now holds the reference to the object (TESTQ)

// setup the message descriptor array. Check MQSeries reference manuals.
$md = array(
'Version' => MQSERIES_MQMD_VERSION_1,
'Expiry' => MQSERIES_MQEI_UNLIMITED,
'Report' => MQSERIES_MQRO_NONE,
'MsgType' => MQSERIES_MQMT_DATAGRAM,
'Format' => MQSERIES_MQFMT_STRING,
'Priority' => 1,
'Persistence' => MQSERIES_MQPER_PERSISTENT);

// setup the put message options.
$pmo = array('Options' => MQSERIES_MQPMO_NEW_MSG_ID|MQSERIES_MQPMO_SYNCPOINT);

// put the message 'Ping' on the queueu.
mqseries_put($conn, $obj, $md, $pmo, 'Ping', $comp_code, $reason);

if ($comp_code !== MQSERIES_MQCC_OK) {
printf("put CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
}

// close the object reference $obj
mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);

// disconnect from the queue manager.
mqseries_disc($conn, $comp_code, $reason);

?>

Veja Também

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_get() - MQSeries MQGET


MQSeries MQSET

  • « mqseries_put
  • mqseries_strerror »
  • PHP Manual
  • mqseries Funções
  • MQSeries MQSET

mqseries_set

(PECL mqseries >= 0.10.0)

mqseries_set — MQSeries MQSET

Descrição

mqseries_set(
resource $hConn,
resource $hObj,
int $selectorCount,
array $selectors,
int $intAttrCount,
array $intAttrs,
int $charAttrLength,
array $charAttrs,
resource &$compCode,
resource &$reason
): void

The mqseries_set() (MQSET) call is used to change the attributes of an object represented by a handle. The object must be a queue.

Parâmetros

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

selectorCount

Count of selectors.

selectors

Array of attribute selectors.

intAttrCount

Count of integer attributes.

intAttrs

Array of integer attributes.

charAttrLength

Length of character attributes buffer.

charAttrs

Character attributes.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • mqseries_inq() - MQSeries MQINQ


Returns the error message corresponding to a result code (MQRC)

  • « mqseries_set
  • Network »
  • PHP Manual
  • mqseries Funções
  • Returns the error message corresponding to a result code (MQRC)

mqseries_strerror

(PECL mqseries >= 0.10.0)

mqseries_strerror — Returns the error message corresponding to a result code (MQRC)

Descrição

mqseries_strerror(int $reason): string

mqseries_strerror() returns the message that correspond to the reason result code.

Parâmetros

reason

Reason code qualifying the compCode.

Valor Retornado

string representation of the reason code message.

Exemplos

Exemplo #1 mqseries_strerror() example

<?php
if ($comp_code !== MQSERIES_MQCC_OK) {
printf("open CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
exit;
}
?>

O exemplo acima produzirá:

Connx CompCode:2 Reason:2059 Text:Queue manager not available for connection.


Network

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções da Network
    • checkdnsrr — Checa os registros DNS correspondentes para o nome do host ou endereço IP informado
    • closelog — Close connection to system logger
    • dns_check_record — Sinônimo de checkdnsrr
    • dns_get_mx — Sinônimo de getmxrr
    • dns_get_record — Fetch DNS Resource Records associated with a hostname
    • fsockopen — Abre uma conexão socket de domínio Unix ou Internet
    • gethostbyaddr — Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido
    • gethostbyname — Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet
    • gethostbynamel — Obtenha uma lista de endereços IPv4 correspondentes a um determinado nome de host da Internet
    • gethostname — Gets the host name
    • getmxrr — Get MX records corresponding to a given Internet host name
    • getprotobyname — Get protocol number associated with protocol name
    • getprotobynumber — Get protocol name associated with protocol number
    • getservbyname — Get port number associated with an Internet service and protocol
    • getservbyport — Get Internet service which corresponds to port and protocol
    • header_register_callback — Call a header function
    • header_remove — Remove cabeçalhos definidos anteriormente
    • header — Send a raw HTTP header
    • headers_list — Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)
    • headers_sent — Checks if or where headers have been sent
    • http_response_code — Get or Set the HTTP response code
    • inet_ntop — Converts a packed internet address to a human readable representation
    • inet_pton — Converts a human readable IP address to its packed in_addr representation
    • ip2long — Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer
    • long2ip — Converts a long integer address into a string in (IPv4) Internet standard dotted format
    • net_get_interfaces — Get network interfaces
    • openlog — Open connection to system logger
    • pfsockopen — Open persistent Internet or Unix domain socket connection
    • setcookie — Envia um cookie
    • setrawcookie — Send a cookie without urlencoding the cookie value
    • socket_get_status — Sinônimo de stream_get_meta_data
    • socket_set_blocking — Sinônimo de stream_set_blocking
    • socket_set_timeout — Sinônimo de stream_set_timeout
    • syslog — Generate a system log message


  • « Network
  • Instalação/Configuração »
  • PHP Manual
  • Network
  • Introdução

Introdução

Fornece várias funções para rede.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

As funções checkdnsrr(), getmxrr() e dns_get_record() requerem o Bind no Linux.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão define um recurso de ponteiro de arquivo retornado pelas funções fsockopen() e pfsockopen().


Constantes pré-definidas

As constantes abaixo estão sempre disponíveis como parte do núcleo do PHP.

Opções de openlog()
Constante | Descrição
LOG_CONS | se houver um erro ao enviar dados ao registrador do sistema, escreve diretamente ao console do sistema
LOG_NDELAY | abre a conexão ao registrador imediatamente
LOG_ODELAY | (padrão) atrasa a abertura da conexão até que a primeira mensagem seja registrada
LOG_NOWAIT |
LOG_PERROR | mostra a mensagem também na saída de erro padrão
LOG_PID | incli o PID com cada mensagem
Facilidades de openlog()
Constante | Descrição
LOG_AUTH | mensagens de segurança/autorização (use LOG_AUTHPRIV em sistemas onde esta constante esteja definida)
LOG_AUTHPRIV | mensagens de segurança/autorização (privadas)
LOG_CRON | daemon de relógio (cron e at)
LOG_DAEMON | outros daemons de sistema
LOG_KERN | mensagens do kernel
LOG_LOCAL0 | reservada para uso local, não disponível no Windows
LOG_LOCAL1 | reservada para uso local, não disponível no Windows
LOG_LOCAL2 | reservada para uso local, não disponível no Windows
LOG_LOCAL3 | reservada para uso local, não disponível no Windows
LOG_LOCAL4 | reservada para uso local, não disponível no Windows
LOG_LOCAL5 | reservada para uso local, não disponível no Windows
LOG_LOCAL6 | reservada para uso local, não disponível no Windows
LOG_LOCAL7 | reservada para uso local, não disponível no Windows
LOG_LPR | subsistema de impressora de linha
LOG_MAIL | subsistema de correio
LOG_NEWS | Subsistema de notícias USENET
LOG_SYSLOG | mensagens geradas internamente pelo syslogd
LOG_USER | mensagens genéricas no nível do usuário
LOG_UUCP | Subsistema UUCP
Prioridades syslog() (em ordem decrescente)
Constante | Descrição
LOG_EMERG | o sistema está inutilizável
LOG_ALERT | medidas devem ser tomadas imediatamente
LOG_CRIT | condições críticas
LOG_ERR | condições de erro
LOG_WARNING | condições de alerta
LOG_NOTICE | condição normal, mas significativa
LOG_INFO | mensagem informativa
LOG_DEBUG | mensagem em nível de depuração
Opções de dns_get_record()
Constante | Descrição
DNS_A | Recurso de endereço IPv4
DNS_CAA | Recurso de Autorização da Autoridade de Certificação (disponível a partir do PHP 7.0.16 e 7.1.2)
DNS_MX | Recurso de Troca de Correio
DNS_CNAME | Recurso Alias ??(Nome Canônico)
DNS_NS | Recurso de servidor de nomes autoritativo
DNS_PTR | Recurso de ponteiro
DNS_HINFO | Recurso de informações do host (Consulte » Operating System Names da IANA para o significado destes valores)
DNS_SOA | Início do recurso de autoridade
DNS_TXT | Recurso de Texto
DNS_ANY | Qualquer registro de recurso. Na maioria dos sistemas, isso retorna todos os registros de recursos, porém não deve ser considerado para usos críticos. Tente DNS_ALL em seu lugar.
DNS_AAAA | Recurso de endereço IPv6
DNS_ALL | Consultar iterativamente o servidor de nomes para cada tipo de registro disponível.


Funções da Network

Índice

  • checkdnsrr — Checa os registros DNS correspondentes para o nome do host ou endereço IP informado
  • closelog — Close connection to system logger
  • dns_check_record — Sinônimo de checkdnsrr
  • dns_get_mx — Sinônimo de getmxrr
  • dns_get_record — Fetch DNS Resource Records associated with a hostname
  • fsockopen — Abre uma conexão socket de domínio Unix ou Internet
  • gethostbyaddr — Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido
  • gethostbyname — Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet
  • gethostbynamel — Obtenha uma lista de endereços IPv4 correspondentes a um determinado nome de host da Internet
  • gethostname — Gets the host name
  • getmxrr — Get MX records corresponding to a given Internet host name
  • getprotobyname — Get protocol number associated with protocol name
  • getprotobynumber — Get protocol name associated with protocol number
  • getservbyname — Get port number associated with an Internet service and protocol
  • getservbyport — Get Internet service which corresponds to port and protocol
  • header_register_callback — Call a header function
  • header_remove — Remove cabeçalhos definidos anteriormente
  • header — Send a raw HTTP header
  • headers_list — Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)
  • headers_sent — Checks if or where headers have been sent
  • http_response_code — Get or Set the HTTP response code
  • inet_ntop — Converts a packed internet address to a human readable representation
  • inet_pton — Converts a human readable IP address to its packed in_addr representation
  • ip2long — Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer
  • long2ip — Converts a long integer address into a string in (IPv4) Internet standard dotted format
  • net_get_interfaces — Get network interfaces
  • openlog — Open connection to system logger
  • pfsockopen — Open persistent Internet or Unix domain socket connection
  • setcookie — Envia um cookie
  • setrawcookie — Send a cookie without urlencoding the cookie value
  • socket_get_status — Sinônimo de stream_get_meta_data
  • socket_set_blocking — Sinônimo de stream_set_blocking
  • socket_set_timeout — Sinônimo de stream_set_timeout
  • syslog — Generate a system log message


Checa os registros DNS correspondentes para o nome do host ou endereço IP informado

  • « Funções da Network
  • closelog »
  • PHP Manual
  • Funções da Network
  • Checa os registros DNS correspondentes para o nome do host ou endereço IP informado

checkdnsrr

(PHP 4, PHP 5, PHP 7, PHP 8)

checkdnsrr — Checa os registros DNS correspondentes para o nome do host ou endereço IP informado

Descrição

checkdnsrr(string $hostname, string $type = "MX"): bool

Pesquisa o DNS para os registros type correspondentes hostname.

Parâmetros

hostname

hostname pode ser o endereço IP em notação quádrupla separada por pontos ou o nome do host.

type

type pode ser: A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT or ANY.

Valor Retornado

Retorna true se o registro for encontrado; retorna false se não encontrar registros ou um erro ocorrer.

Notas

Nota:

Para compatibilidade com Windows antes dessa implementação, tente a classe » PEAR » Net_DNS.

Veja Também

  • dns_get_record() - Fetch DNS Resource Records associated with a hostname
  • getmxrr() - Get MX records corresponding to a given Internet host name
  • gethostbyaddr() - Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido
  • gethostbyname() - Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet
  • gethostbynamel() - Obtenha uma lista de endereços IPv4 correspondentes a um determinado nome de host da Internet
  • the named(8) manual page


Close connection to system logger

  • « checkdnsrr
  • dns_check_record »
  • PHP Manual
  • Funções da Network
  • Close connection to system logger

closelog

(PHP 4, PHP 5, PHP 7, PHP 8)

closelog — Close connection to system logger

Descrição

closelog(): true

closelog() closes the descriptor being used to write to the system logger. The use of closelog() is optional.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna true.

Veja Também

  • syslog() - Generate a system log message
  • openlog() - Open connection to system logger


Sinônimo de checkdnsrr

  • « closelog
  • dns_get_mx »
  • PHP Manual
  • Funções da Network
  • Sinônimo de checkdnsrr

dns_check_record

(PHP 5, PHP 7, PHP 8)

dns_check_record — Sinônimo de checkdnsrr()

Descrição

Esta função é um apelido para: checkdnsrr().


Sinônimo de getmxrr

  • « dns_check_record
  • dns_get_record »
  • PHP Manual
  • Funções da Network
  • Sinônimo de getmxrr

dns_get_mx

(PHP 5, PHP 7, PHP 8)

dns_get_mx — Sinônimo de getmxrr()

Descrição

Esta função é um apelido para: getmxrr().


Fetch DNS Resource Records associated with a hostname

  • « dns_get_mx
  • fsockopen »
  • PHP Manual
  • Funções da Network
  • Fetch DNS Resource Records associated with a hostname

dns_get_record

(PHP 5, PHP 7, PHP 8)

dns_get_record — Fetch DNS Resource Records associated with a hostname

Descrição

dns_get_record(
string $hostname,
int $type = DNS_ANY,
array &$authoritative_name_servers = null,
array &$additional_records = null,
bool $raw = false
): array|false

Fetch DNS Resource Records associated with the given hostname.

Parâmetros

hostname

hostname should be a valid DNS hostname such as "www.example.com". Reverse lookups can be generated using in-addr.arpa notation, but gethostbyaddr() is more suitable for the majority of reverse lookups.

Nota:

Per DNS standards, email addresses are given in user.host format (for example: hostmaster.example.com as opposed to hostmaster@example.com), be sure to check this value and modify if necessary before using it with a functions such as mail().

type

By default, dns_get_record() will search for any resource records associated with hostname. To limit the query, specify the optional type parameter. May be any one of the following: DNS_A, DNS_CNAME, DNS_HINFO, DNS_CAA, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_A6, DNS_ALL or DNS_ANY.

Nota:

Because of eccentricities in the performance of libresolv between platforms, DNS_ANY will not always return every record, the slower DNS_ALL will collect all records more reliably.

Nota:

Windows: DNS_CAA is not supported. Support for DNS_A6 is not implemented.

authoritative_name_servers

Passed by reference and, if given, will be populated with Resource Records for the Authoritative Name Servers.

additional_records

Passed by reference and, if given, will be populated with any Additional Records.

raw

The type will be interpreted as a raw DNS type ID (the DNS_* constants cannot be used). The return value will contain a data key, which needs to be manually parsed.

Valor Retornado

This function returns an array of associative arrays, ou false em caso de falha. Each associative array contains at minimum the following keys:

Basic DNS attributes
Attribute | Meaning
host | The record in the DNS namespace to which the rest of the associated data refers.
class | dns_get_record() only returns Internet class records and as such this parameter will always return IN.
type | String containing the record type. Additional attributes will also be contained in the resulting array dependant on the value of type. See table below.
ttl | "Time To Live" remaining for this record. This will not equal the record's original ttl, but will rather equal the original ttl minus whatever length of time has passed since the authoritative name server was queried.

Other keys in associative arrays dependant on 'type'
Type | Extra Columns
A | ip: An IPv4 addresses in dotted decimal notation.
MX | pri: Priority of mail exchanger. Lower numbers indicate greater priority. target: FQDN of the mail exchanger. See also dns_get_mx().
CNAME | target: FQDN of location in DNS namespace to which the record is aliased.
NS | target: FQDN of the name server which is authoritative for this hostname.
PTR | target: Location within the DNS namespace to which this record points.
TXT | txt: Arbitrary string data associated with this record.
HINFO | cpu: IANA number designating the CPU of the machine referenced by this record. os: IANA number designating the Operating System on the machine referenced by this record. See IANA's » Operating System Names for the meaning of these values.
CAA | flags: A one-byte bitfield; currently only bit 0 is defined, meaning 'critical'; other bits are reserved and should be ignored. tag: The CAA tag name (alphanumeric ASCII string). value: The CAA tag value (binary string, may use subformats). For additional information see: » RFC 6844
SOA | mname: FQDN of the machine from which the resource records originated. rname: Email address of the administrative contact for this domain. serial: Serial # of this revision of the requested domain. refresh: Refresh interval (seconds) secondary name servers should use when updating remote copies of this domain. retry: Length of time (seconds) to wait after a failed refresh before making a second attempt. expire: Maximum length of time (seconds) a secondary DNS server should retain remote copies of the zone data without a successful refresh before discarding. minimum-ttl: Minimum length of time (seconds) a client can continue to use a DNS resolution before it should request a new resolution from the server. Can be overridden by individual resource records.
AAAA | ipv6: IPv6 address
A6 | masklen: Length (in bits) to inherit from the target specified by chain. ipv6: Address for this specific record to merge with chain. chain: Parent record to merge with ipv6 data.
SRV | pri: (Priority) lowest priorities should be used first. weight: Ranking to weight which of commonly prioritized targets should be chosen at random. target and port: hostname and port where the requested service can be found. For additional information see: » RFC 2782
NAPTR | order and pref: Equivalent to pri and weight above. flags, services, regex, and replacement: Parameters as defined by » RFC 2915.

Registro de Alterações

Versão | Descrição
7.0.16, 7.1.2 | Added support for CAA record type.

Exemplos

Exemplo #1 Using dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

O exemplo acima produzirá algo semelhante a:

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
        )

)

Exemplo #2 Using dns_get_record() and DNS_ANY

Since it's very common to want the IP address of a mail server once the MX record has been resolved, dns_get_record() also returns an array in additional_records which contains associate records. authoritative_name_servers is returned as well containing a list of authoritative name servers.

<?php
/* Request "ANY" record for php.net,
and create $authns and $addtl arrays
containing list of name servers and
any additional records which go with
them */
$result = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
echo "Result = ";
print_r($result);
echo "Auth NS = ";
print_r($authns);
echo "Additional = ";
print_r($addtl);
?>

O exemplo acima produzirá algo semelhante a:

Result = 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
        )

)
Additional = 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
        )

)

Veja Também

  • dns_get_mx() - Sinônimo de getmxrr
  • dns_check_record() - Sinônimo de checkdnsrr


Abre uma conexão socket de domínio Unix ou Internet

  • « dns_get_record
  • gethostbyaddr »
  • PHP Manual
  • Funções da Network
  • Abre uma conexão socket de domínio Unix ou Internet

fsockopen

(PHP 4, PHP 5, PHP 7, PHP 8)

fsockopen — Abre uma conexão socket de domínio Unix ou Internet

Descrição

fsockopen(
string $hostname,
int $port = -1,
int &$error_code = null,
string &$error_message = null,
?float $timeout = null
): resource|false

Inicia uma conexão socket para o recurso especificado em hostname.

O PHP suporta alvos na Internet ou domínios Unix, conforme descrito em Lista de Transportes via Socket Suportados. Uma lista dos transportes suportados pode ser encontrada utilizando-se a função stream_get_transports().

Por padrão o socket será aberto em modo de bloqueio. Pode-se mudar para o modo de não-bloqueio utilizando-se a função stream_set_blocking().

A função stream_socket_client() é similar mas fornece um número maior de opções, incluindo conexão não bloqueada e a habilidade de fornecer um contexto de fluxo .

Parâmetros

hostname

Se o suporte Open SSL estiver instalado, pode-se prefixar o hostname com ssl:// ou tls:// para utilizar uma conexão SSL ou TLS sobre TCP/IP para conectar-se ao servidor remoto.

port

O número da porta. Pode ser omitido e ignorado com -1 para transportes que não usam portas, como unix://.

error_code

Se informado, guarda o número do erro do sistema que aconteceu na chamada de connect() no nível do sistema.

Se o valor retornado em error_code for 0 e a função retornou false, é uma indicação que o erro aconteceu antes da chamada a connect(). A causa mais provável é um problema na inicialização do socket.

error_message

A mensagem de erro como uma string.

timeout

Limite de tempo de conexão, em segundos. Quando igual a null, a configuração default_socket_timeout php.ini é usada.

Nota:

Se for necessário um limite de tempo para ler/escrever dados através do socket, use stream_set_timeout(), já que o parâmetro timeout de fsockopen() somente é aplicável enquanto o socket estiver conectando.

Valor Retornado

fsockopen() retorna um ponteiro de arquivo que pode ser usado em em conjunto com outras funções de arquivo (como fgets(), fgetss(), fwrite(), fclose() e feof()). Se a chamada falhar, ela retornará false.

Erros/Exceções

Dispara um E_WARNING se hostname não for um domínio válido.

Registro de Alterações

Versão | Descrição
8.0.0 | timeout agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de fsockopen()

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>

Exemplo #2 Utilizando conexão UDP

O exemplo abaixo mostra como obter o dia e o horário do serviço UDP (porta 13) da própria máquina.

<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
echo "ERRO: $errno - $errstr<br />\n";
} else {
fwrite($fp, "\n");
echo fread($fp, 26);
fclose($fp);
}
?>

Notas

Nota:

Dependedendo do ambiente, o domínio Unix ou o limite opcional de tempo de conexão podem não estar disponíveis.

Aviso

Sockets UDP algumas vezes irão parecer que foram abertos sem erro, mesmo que o servidor remoto seja inalcançável. O erro só se tornará aparente quando dados são lidos ou escritos no socket. A razão disso é porque o UDP é um protocolo "sem conexão", o que significa que o sistema operacional não tenta estabelecer uma ligação para o socket até que ele realmente precise enviar ou receber dados.

Nota: Ao especificar um endereço IPv6 numérico (por exemplo, fe80::1), o IP deve ser colocado entre colchetes — por exemplo, tcp://[fe80::1]:80.

Veja Também

  • pfsockopen() - Open persistent Internet or Unix domain socket connection
  • stream_socket_client() - Abre conexão de socket de domínio Internet ou Unix
  • stream_set_blocking() - Definir modo de bloqueio/não-bloqueio em um fluxo
  • stream_set_timeout() - Define o limite de tempo em um fluxo
  • fgets() - Lê uma linha de um ponteiro de arquivo
  • fgetss() - Ler uma linha de um ponteiro de arquivo e retira as tags HTML
  • fwrite() - Escrita binary-safe em arquivos
  • fclose() - Fecha um ponteiro de arquivo aberto
  • feof() - Testa pelo fim-de-arquivo em um ponteiro de arquivo
  • socket_connect() - Initiates a connection on a socket
  • A extensão Curl


Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido

  • « fsockopen
  • gethostbyname »
  • PHP Manual
  • Funções da Network
  • Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido

gethostbyaddr

(PHP 4, PHP 5, PHP 7, PHP 8)

gethostbyaddr — Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido

Descrição

gethostbyaddr(string $ip): string|false

Retorna o nome do servidor de Internet especificado por ip.

Parâmetros

ip

O endereço IP do host.

Valor Retornado

Retorna o nome do servidor em caso de sucesso, o ip não modificado em caso de falha, ou false em caso de entrada mal formatada.

Exemplos

Exemplo #1 Um simples exemplo de gethostbyaddr()

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

echo $hostname;
?>

Veja Também

  • gethostbyname() - Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet
  • gethostbynamel() - Obtenha uma lista de endereços IPv4 correspondentes a um determinado nome de host da Internet


Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet

  • « gethostbyaddr
  • gethostbynamel »
  • PHP Manual
  • Funções da Network
  • Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet

gethostbyname

(PHP 4, PHP 5, PHP 7, PHP 8)

gethostbyname — Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet

Descrição

gethostbyname(string $hostname): string

Retorna o endereço IPv4 do host da Internet especificado por hostname.

Parâmetros

hostname

O nome do host.

Valor Retornado

Retorna o endereço IPv4 ou uma string contendo o endereço não modificado hostname em caso de falha.

Exemplos

Exemplo #1 Um exemplo simples gethostbyname()

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

Veja Também

  • gethostbyaddr() - Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido
  • gethostbynamel() - Obtenha uma lista de endereços IPv4 correspondentes a um determinado nome de host da Internet
  • inet_pton() - Converts a human readable IP address to its packed in_addr representation
  • inet_ntop() - Converts a packed internet address to a human readable representation


Obtenha uma lista de endereços IPv4 correspondentes a um determinado nome de host da Internet

  • « gethostbyname
  • gethostname »
  • PHP Manual
  • Funções da Network
  • Obtenha uma lista de endereços IPv4 correspondentes a um determinado nome de host da Internet

gethostbynamel

(PHP 4, PHP 5, PHP 7, PHP 8)

gethostbynamel — Obtenha uma lista de endereços IPv4 correspondentes a um determinado nome de host da Internet

Descrição

gethostbynamel(string $hostname): array|false

Retorna uma lista de endereços IPv4 aos quais o host da Internet especificado por hostname resolve.

Parâmetros

hostname

O nome do host.

Valor Retornado

Retorna uma matriz de endereços IPv4 ou false se o hostname não for possivel resolver.

Exemplos

Exemplo #1 gethostbynamel() exemplo

<?php
$hosts = gethostbynamel('www.example.com');
print_r($hosts);
?>

O exemplo acima produzirá:

Array
(
    [0] => 192.0.34.166
)

Veja Também

  • gethostbyname() - Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet
  • gethostbyaddr() - Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido
  • checkdnsrr() - Checa os registros DNS correspondentes para o nome do host ou endereço IP informado
  • getmxrr() - Get MX records corresponding to a given Internet host name
  • the named(8) manual page


Gets the host name

  • « gethostbynamel
  • getmxrr »
  • PHP Manual
  • Funções da Network
  • Gets the host name

gethostname

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gethostname — Gets the host name

Descrição

gethostname(): string|false

gethostname() gets the standard host name for the local machine.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string with the hostname on success, otherwise false is returned.

Exemplos

Exemplo #1 A simple gethostname() example

<?php
echo gethostname(); // may output e.g,: sandie
?>

Veja Também

  • gethostbyname() - Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet
  • gethostbyaddr() - Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido
  • php_uname() - Returns information about the operating system PHP is running on


Get MX records corresponding to a given Internet host name

  • « gethostname
  • getprotobyname »
  • PHP Manual
  • Funções da Network
  • Get MX records corresponding to a given Internet host name

getmxrr

(PHP 4, PHP 5, PHP 7, PHP 8)

getmxrr — Get MX records corresponding to a given Internet host name

Descrição

getmxrr(string $hostname, array &$hosts, array &$weights = null): bool

Searches DNS for MX records corresponding to hostname.

Parâmetros

hostname

The Internet host name.

hosts

A list of the MX records found is placed into the array hosts.

weights

If the weights array is given, it will be filled with the weight information gathered.

Valor Retornado

Returns true if any records are found; returns false if no records were found or if an error occurred.

Notas

Nota:

This function should not be used for the purposes of address verification. Only the mailexchangers found in DNS are returned, however, according to » RFC 2821 when no mail exchangers are listed, hostname itself should be used as the only mail exchanger with a priority of 0.

Nota:

For compatibility with Windows before this was implemented, then try the » PEAR class » Net_DNS.

Veja Também

  • checkdnsrr() - Checa os registros DNS correspondentes para o nome do host ou endereço IP informado
  • dns_get_record() - Fetch DNS Resource Records associated with a hostname
  • gethostbyname() - Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet
  • gethostbynamel() - Obtenha uma lista de endereços IPv4 correspondentes a um determinado nome de host da Internet
  • gethostbyaddr() - Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido
  • the named(8) manual page


Get protocol number associated with protocol name

  • « getmxrr
  • getprotobynumber »
  • PHP Manual
  • Funções da Network
  • Get protocol number associated with protocol name

getprotobyname

(PHP 4, PHP 5, PHP 7, PHP 8)

getprotobyname — Get protocol number associated with protocol name

Descrição

getprotobyname(string $protocol): int|false

getprotobyname() returns the protocol number associated with the protocol protocol as per /etc/protocols.

Parâmetros

protocol

The protocol name.

Valor Retornado

Returns the protocol number, ou false em caso de falha.

Exemplos

Exemplo #1 getprotobyname() example

<?php
$protocol = 'tcp';
$get_prot = getprotobyname($protocol);
if ($get_prot === FALSE) {
echo 'Invalid Protocol';
} else {
echo 'Protocol #' . $get_prot;
}
?>

Veja Também

  • getprotobynumber() - Get protocol name associated with protocol number


Get protocol name associated with protocol number

  • « getprotobyname
  • getservbyname »
  • PHP Manual
  • Funções da Network
  • Get protocol name associated with protocol number

getprotobynumber

(PHP 4, PHP 5, PHP 7, PHP 8)

getprotobynumber — Get protocol name associated with protocol number

Descrição

getprotobynumber(int $protocol): string|false

getprotobynumber() returns the protocol name associated with protocol protocol as per /etc/protocols.

Parâmetros

protocol

The protocol number.

Valor Retornado

Returns the protocol name as a string, ou false em caso de falha.

Veja Também

  • getprotobyname() - Get protocol number associated with protocol name


Get port number associated with an Internet service and protocol

  • « getprotobynumber
  • getservbyport »
  • PHP Manual
  • Funções da Network
  • Get port number associated with an Internet service and protocol

getservbyname

(PHP 4, PHP 5, PHP 7, PHP 8)

getservbyname — Get port number associated with an Internet service and protocol

Descrição

getservbyname(string $service, string $protocol): int|false

getservbyname() returns the Internet port which corresponds to service for the specified protocol as per /etc/services.

Parâmetros

service

The Internet service name, as a string.

protocol

protocol is either "tcp" or "udp" (in lowercase).

Valor Retornado

Returns the port number, or false if service or protocol is not found.

Exemplos

Exemplo #1 getservbyname() example

<?php
$services = array('http', 'ftp', 'ssh', 'telnet', 'imap',
'smtp', 'nicname', 'gopher', 'finger', 'pop3', 'www');

foreach ($services as $service) {
$port = getservbyname($service, 'tcp');
echo $service . ": " . $port . "<br />\n";
}
?>

Veja Também

  • getservbyport() - Get Internet service which corresponds to port and protocol
  • » http://www.iana.org/assignments/port-numbers for a complete list of port numbers.


Get Internet service which corresponds to port and protocol

  • « getservbyname
  • header_register_callback »
  • PHP Manual
  • Funções da Network
  • Get Internet service which corresponds to port and protocol

getservbyport

(PHP 4, PHP 5, PHP 7, PHP 8)

getservbyport — Get Internet service which corresponds to port and protocol

Descrição

getservbyport(int $port, string $protocol): string|false

getservbyport() returns the Internet service associated with port for the specified protocol as per /etc/services.

Parâmetros

port

The port number.

protocol

protocol is either "tcp" or "udp" (in lowercase).

Valor Retornado

Returns the Internet service name as a string, ou false em caso de falha.

Veja Também

  • getservbyname() - Get port number associated with an Internet service and protocol


Call a header function

  • « getservbyport
  • header_remove »
  • PHP Manual
  • Funções da Network
  • Call a header function

header_register_callback

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

header_register_callback — Call a header function

Descrição

header_register_callback(callable $callback): bool

Registers a function that will be called when PHP starts sending output.

The callback is executed just after PHP prepares all headers to be sent, and before any other output is sent, creating a window to manipulate the outgoing headers before being sent.

Parâmetros

callback

Function called just before the headers are sent. It gets no parameters and the return value is ignored.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 header_register_callback() example

<?php

header('Content-Type: text/plain');
header('X-Test: foo');

function foo() {
foreach (headers_list() as $header) {
if (strpos($header, 'X-Powered-By:') !== false) {
header_remove('X-Powered-By');
}
header_remove('X-Test');
}
}

$result = header_register_callback('foo');
echo "a";
?>

O exemplo acima produzirá algo semelhante a:

Content-Type: text/plain

a

Notas

header_register_callback() is executed just as the headers are about to be sent out, so any output from this function can break output.

Nota:

Os cabeçalhos só serão acessíveis e enviados quando uma SAPI que os suporta estiver em uso.

Veja Também

  • headers_list() - Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)
  • header_remove() - Remove cabeçalhos definidos anteriormente
  • header() - Send a raw HTTP header


Remove cabeçalhos definidos anteriormente

  • « header_register_callback
  • header »
  • PHP Manual
  • Funções da Network
  • Remove cabeçalhos definidos anteriormente

header_remove

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

header_remove — Remove cabeçalhos definidos anteriormente

Descrição

header_remove(?string $name = null): void

Remove um cabeçalho HTTP previamente definido usando header().

Parâmetros

name

O nome do cabeçalho a ser removido. Quando igual a null, todos os cabeçalhos anteriormente definidos são removidos.

Nota: Este parâmetro é insensível a maiúsculas/minúsculas.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | name agora pode ser nulo.

Exemplos

Exemplo #1 Removendo um cabeçalho específico.

<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove("X-Foo");
?>

O exemplo acima produzirá algo semelhante a:

X-Bar: Baz

Exemplo #2 Removendo todos os cabeçalhos definidos anteriormente.

<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove();
?>

O exemplo acima produzirá algo semelhante a:

Notas

Cuidado

    Esta função irá remover todos os cabeçalhos definidos pelo PHP,
    incluindo cabeçalhos de cookies, session e X-Powered-By.

Nota:

    Os cabeçalhos só serão acessíveis e enviados quando uma SAPI que os suporta
    estiver em uso.

Veja Também

  • header() - Send a raw HTTP header
    •

  • headers_sent() - Checks if or where headers have been sent
    •


Send a raw HTTP header

  • « header_remove
  • headers_list »
  • PHP Manual
  • Funções da Network
  • Send a raw HTTP header

header

(PHP 4, PHP 5, PHP 7, PHP 8)

header — Send a raw HTTP header

Descrição

header(string $header, bool $replace = true, int $response_code = 0): void

header() is used to send a raw HTTP header. See the » HTTP/1.1 specification for more information on HTTP headers.

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include, or require, functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

<html>
<?php
/* This will give an error. Note the output
* above, which is before the header() call */
header('Location: http://www.example.com/');
exit;
?>

Parâmetros

header

The header string.

There are two special-case header calls. The first is a header that starts with the string "HTTP/" (case is not significant), which will be used to figure out the HTTP status code to send. For example, if you have configured Apache to use a PHP script to handle requests for missing files (using the ErrorDocument directive), you may want to make sure that your script generates the proper status code.

<?php
// This example illustrates the "HTTP/" special case
// Better alternatives in typical use cases include:
// 1. header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found");
// (to override http status messages for clients that are still using HTTP/1.0)
// 2. http_response_code(404); (to use the default message)
header("HTTP/1.1 404 Not Found");
?>

The second special case is the "Location:" header. Not only does it send this header back to the browser, but it also returns a REDIRECT (302) status code to the browser unless the 201 or a 3xx status code has already been set.

<?php
header("Location: http://www.example.com/"); /* Redirect browser */

/* Make sure that code below does not get executed when we redirect. */
exit;
?>

replace

The optional replace parameter indicates whether the header should replace a previous similar header, or add a second header of the same type. By default it will replace, but if you pass in false as the second argument you can force multiple headers of the same type. For example:

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>

response_code

Forces the HTTP response code to the specified value. Note that this parameter only has an effect if the header is not empty.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

On failure to schedule the header to be sent, header() issues an E_WARNING level error.

Exemplos

Exemplo #1 Download dialog

If you want the user to be prompted to save the data you are sending, such as a generated PDF file, you can use the » Content-Disposition header to supply a recommended filename and force the browser to display the save dialog.

<?php
// We'll be outputting a PDF
header('Content-Type: application/pdf');

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// The PDF source is in original.pdf
readfile('original.pdf');
?>

Exemplo #2 Caching directives

PHP scripts often generate dynamic content that must not be cached by the client browser or any proxy caches between the server and the client browser. Many proxies and clients can be forced to disable caching with:

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>

Nota:

You may find that your pages aren't cached even if you don't output all of the headers above. There are a number of options that users may be able to set for their browser that change its default caching behavior. By sending the headers above, you should override any settings that may otherwise cause the output of your script to be cached.

Additionally, session_cache_limiter() and the session.cache_limiter configuration setting can be used to automatically generate the correct caching-related headers when sessions are being used.

Exemplo #3 Setting a cookie

setcookie() provides a convenient way to set cookies. To set a cookie that includes attributes which setcookie() doesn't support, header() can be used.

For example, the following sets a cookie that includes a Partitioned attribute.

<?php
header('Set-Cookie: name=value; Secure; Path=/; SameSite=None; Partitioned;');
?>

Notas

Nota:

Os cabeçalhos só serão acessíveis e enviados quando uma SAPI que os suporta estiver em uso.

Nota:

You can use output buffering to get around this problem, with the overhead of all of your output to the browser being buffered in the server until you send it. You can do this by calling ob_start() and ob_end_flush() in your script, or setting the output_buffering configuration directive on in your php.ini or server configuration files.

Nota:

The HTTP status header line will always be the first sent to the client, regardless of the actual header() call being the first or not. The status may be overridden by calling header() with a new status line at any time unless the HTTP headers have already been sent.

Nota:

Most contemporary clients accept relative URIs as argument to » Location:, but some older clients require an absolute URI including the scheme, hostname and absolute path. You can usually use $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] and dirname() to make an absolute URI from a relative one yourself:

<?php
/* Redirect to a different page in the current directory that was requested */
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>

Nota:

Session ID is not passed with Location header even if session.use_trans_sid is enabled. It must by passed manually using SID constant.

Veja Também

  • headers_sent() - Checks if or where headers have been sent
  • setcookie() - Envia um cookie
  • http_response_code() - Get or Set the HTTP response code
  • header_remove() - Remove cabeçalhos definidos anteriormente
  • headers_list() - Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)
  • The section on HTTP authentication


Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)

  • « header
  • headers_sent »
  • PHP Manual
  • Funções da Network
  • Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)

headers_list

(PHP 5, PHP 7, PHP 8)

headers_list — Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)

Descrição

headers_list(): array

headers_list() retornará uma lista de cabeçalhos a serem enviados ao navegador / cliente. Para determinar se esses cabeçalhos já foram ou não enviados, use headers_sent().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array de cabeçalhos indexado numericamente.

Exemplos

Exemplo #1 Exemplo usando headers_list()

<?php

/* setcookie() irá adicionar um cabeçalho de resposta por conta própria */
setcookie('foo', 'bar');

/* Define um cabeçalho de resposta personalizado
Isso será ignorado pela maioria dos clientes */
header("Example-Test: foo");

/* Especifica conteúdo em texto simples na resposta */
header('Content-Type: text/plain; CHARSET=Windows-1252');

/* Quais cabeçalhos serão enviados? */
var_dump(headers_list());

?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  [0]=>
  string(19) "Set-Cookie: foo=bar"
  [1]=>
  string(17) "Example-Test: foo"
  [2]=>
  string(39) "Content-Type: text/plain; CHARSET=Windows-1252"
}

Notas

Nota:

Os cabeçalhos só serão acessíveis e enviados quando uma SAPI que os suporta estiver em uso.

Veja Também

  • headers_sent() - Checks if or where headers have been sent
  • header() - Send a raw HTTP header
  • setcookie() - Envia um cookie
  • apache_response_headers() - Obtém todos os cabeçalhos da resposta HTTP
  • http_response_code() - Get or Set the HTTP response code


Checks if or where headers have been sent

  • « headers_list
  • http_response_code »
  • PHP Manual
  • Funções da Network
  • Checks if or where headers have been sent

headers_sent

(PHP 4, PHP 5, PHP 7, PHP 8)

headers_sent — Checks if or where headers have been sent

Descrição

headers_sent(string &$filename = null, int &$line = null): bool

Checks if or where headers have been sent.

You can't add any more header lines using the header() function once the header block has already been sent. Using this function you can at least prevent getting HTTP header related error messages. Another option is to use Output Buffering.

Parâmetros

filename

If the optional filename and line parameters are set, headers_sent() will put the PHP source file name and line number where output started in the filename and line variables.

Nota:

If the output has started before executing the PHP source file (for example due to a startup error), the filename parameter will be set to an empty string.

line

The line number where the output started.

Valor Retornado

headers_sent() will return false if no HTTP headers have already been sent or true otherwise.

Exemplos

Exemplo #1 Examples using headers_sent()

<?php

// If no headers are sent, send one
if (!headers_sent()) {
header('Location: http://www.example.com/');
exit;
}

// An example using the optional file and line parameters
// Note that $filename and $linenum are passed in for later use.
// Do not assign them values beforehand.
if (!headers_sent($filename, $linenum)) {
header('Location: http://www.example.com/');
exit;

// You would most likely trigger an error here.
} else {

echo "Headers already sent in $filename on line $linenum\n" .
"Cannot redirect, for now please click this <a " .
"href=\"http://www.example.com\">link</a> instead\n";
exit;
}

?>

Notas

Nota:

Os cabeçalhos só serão acessíveis e enviados quando uma SAPI que os suporta estiver em uso.

Veja Também

  • ob_start() - Ativa o buffer de saída
  • trigger_error() - Gera uma mensagem a nível de usuário de erro/alerta/nota
  • headers_list() - Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)
  • header() - Send a raw HTTP header for a more detailed discussion of the matters involved.


Get or Set the HTTP response code

  • « headers_sent
  • inet_ntop »
  • PHP Manual
  • Funções da Network
  • Get or Set the HTTP response code

http_response_code

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

http_response_code — Get or Set the HTTP response code

Descrição

http_response_code(int $response_code = 0): int|bool

Gets or sets the HTTP response status code.

Parâmetros

response_code

The optional response_code will set the response code.

Valor Retornado

If response_code is provided, then the previous status code will be returned. If response_code is not provided, then the current status code will be returned. Both of these values will default to a 200 status code if used in a web server environment.

false will be returned if response_code is not provided and it is not invoked in a web server environment (such as from a CLI application). true will be returned if response_code is provided and it is not invoked in a web server environment (but only when no previous response status has been set).

Exemplos

Exemplo #1 Using http_response_code() in a web server environment

<?php

// Get the current response code and set a new one
var_dump(http_response_code(404));

// Get the new response code
var_dump(http_response_code());
?>

O exemplo acima produzirá:

int(200)
int(404)

Exemplo #2 Using http_response_code() in a CLI environment

<?php

// Get the current default response code
var_dump(http_response_code());

// Set a response code
var_dump(http_response_code(201));

// Get the new response code
var_dump(http_response_code());
?>

O exemplo acima produzirá:

bool(false)
bool(true)
int(201)

Veja Também

  • header() - Send a raw HTTP header
  • headers_list() - Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)


Converts a packed internet address to a human readable representation

  • « http_response_code
  • inet_pton »
  • PHP Manual
  • Funções da Network
  • Converts a packed internet address to a human readable representation

inet_ntop

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

inet_ntop — Converts a packed internet address to a human readable representation

Descrição

inet_ntop(string $ip): string|false

This function converts a 32bit IPv4, or 128bit IPv6 address (if PHP was built with IPv6 support enabled) into an address family appropriate string representation.

Parâmetros

ip

A 32bit IPv4, or 128bit IPv6 address.

Valor Retornado

Returns a string representation of the address ou false em caso de falha.

Exemplos

Exemplo #1 inet_ntop() Example

<?php
$packed = chr(127) . chr(0) . chr(0) . chr(1);
$expanded = inet_ntop($packed);

/* Outputs: 127.0.0.1 */
echo $expanded;

$packed = str_repeat(chr(0), 15) . chr(1);
$expanded = inet_ntop($packed);

/* Outputs: ::1 */
echo $expanded;
?>

Veja Também

  • long2ip() - Converts a long integer address into a string in (IPv4) Internet standard dotted format
  • ip2long() - Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer
  • inet_pton() - Converts a human readable IP address to its packed in_addr representation


Converts a human readable IP address to its packed in_addr representation

  • « inet_ntop
  • ip2long »
  • PHP Manual
  • Funções da Network
  • Converts a human readable IP address to its packed in_addr representation

inet_pton

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

inet_pton — Converts a human readable IP address to its packed in_addr representation

Descrição

inet_pton(string $ip): string|false

This function converts a human readable IPv4 or IPv6 address (if PHP was built with IPv6 support enabled) into an address family appropriate 32bit or 128bit binary structure.

Parâmetros

ip

A human readable IPv4 or IPv6 address.

Valor Retornado

Returns the in_addr representation of the given ip, or false if a syntactically invalid ip is given (for example, an IPv4 address without dots or an IPv6 address without colons).

Exemplos

Exemplo #1 inet_pton() Example

<?php
$in_addr = inet_pton('127.0.0.1');

$in6_addr = inet_pton('::1');
?>

Veja Também

  • ip2long() - Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer
  • long2ip() - Converts a long integer address into a string in (IPv4) Internet standard dotted format
  • inet_ntop() - Converts a packed internet address to a human readable representation


Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer

  • « inet_pton
  • long2ip »
  • PHP Manual
  • Funções da Network
  • Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer

ip2long

(PHP 4, PHP 5, PHP 7, PHP 8)

ip2long — Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer

Descrição

ip2long(string $ip): int|false

The function ip2long() generates a long integer representation of IPv4 Internet network address from its Internet standard format (dotted string) representation.

ip2long() will also work with non-complete IP addresses. Read » http://ps-2.kev009.com/wisclibrary/aix52/usr/share/man/info/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm for more info.

Parâmetros

ip

A standard format address.

Valor Retornado

Returns the long integer or false if ip is invalid.

Exemplos

Exemplo #1 ip2long() Example

<?php
$ip = gethostbyname('www.example.com');
$out = "The following URLs are equivalent:<br />\n";
$out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Exemplo #2 Displaying an IP address

This second example shows how to print a converted address with the printf() function:

<?php
$ip = gethostbyname('www.example.com');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
echo 'Invalid IP, please try again';
} else {
echo $ip . "\n"; // 192.0.34.166
echo $long . "\n"; // 3221234342 (-1073732954 on 32-bit systems, due to integer overflow)
printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Notas

Nota:

Because PHP's int type is signed, and many IP addresses will result in negative integers on 32-bit architectures, you need to use the "%u" formatter of sprintf() or printf() to get the string representation of the unsigned IP address.

Nota:

ip2long() will return -1 for the IP 255.255.255.255 on 32-bit systems due to the integer value overflowing.

Veja Também

  • long2ip() - Converts a long integer address into a string in (IPv4) Internet standard dotted format
  • sprintf() - Return a formatted string


Converts a long integer address into a string in (IPv4) Internet standard dotted format

  • « ip2long
  • net_get_interfaces »
  • PHP Manual
  • Funções da Network
  • Converts a long integer address into a string in (IPv4) Internet standard dotted format

long2ip

(PHP 4, PHP 5, PHP 7, PHP 8)

long2ip — Converts a long integer address into a string in (IPv4) Internet standard dotted format

Descrição

long2ip(int $ip): string

The function long2ip() generates an Internet address in dotted format (i.e.: aaa.bbb.ccc.ddd) from the long integer representation.

Parâmetros

ip

A proper address representation in long integer.

Valor Retornado

Returns the Internet IP address as a string, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.1.0 | The parameter type of ip has been changed from string to int.

Notas

Nota:

On 32-bit architectures, casting integer representations of IP addresses from string to int will not give correct results for numbers which exceed PHP_INT_MAX.

Veja Também

  • ip2long() - Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer


Get network interfaces

  • « long2ip
  • openlog »
  • PHP Manual
  • Funções da Network
  • Get network interfaces

net_get_interfaces

(PHP 7 >= 7.3, PHP 8)

net_get_interfaces — Get network interfaces

Descrição

net_get_interfaces(): array|false

Returns an enumeration of network interfaces (adapters) on the local machine.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an associative array where the key is the name of the interface and the value an associative array of interface attributes, ou false em caso de falha.

Each interface associative array contains:

Interface attributes
Nome | Descrição
description | Optional string value for description of the interface. Windows only.
mac | Optional string value for MAC address of the interface. Windows only.
mtu | Integer value for Maximum transmission unit (MTU) of the interface. Windows only.
unicast | Array of associative arrays, see Unicast attributes below.
up | Boolean status (on/off) for interface.

Unicast attributes
Nome | Descrição
flags | Integer value.
family | Integer value.
address | String value for address in either IPv4 or IPv6.
netmask | String value for netmask in either IPv4 or IPv6.

Erros/Exceções

Emits an E_WARNING on failure to get interface information.


Open connection to system logger

  • « net_get_interfaces
  • pfsockopen »
  • PHP Manual
  • Funções da Network
  • Open connection to system logger

openlog

(PHP 4, PHP 5, PHP 7, PHP 8)

openlog — Open connection to system logger

Descrição

openlog(string $prefix, int $flags, int $facility): true

openlog() opens a connection to the system logger for a program.

The use of openlog() is optional. It will automatically be called by syslog() if necessary, in which case prefix will default to false.

Parâmetros

prefix

The string prefix is added to each message.

flags

The flags argument is used to indicate what logging options will be used when generating a log message.

openlog() Options
Constant | Description
LOG_CONS | if there is an error while sending data to the system logger, write directly to the system console
LOG_NDELAY | open the connection to the logger immediately
LOG_ODELAY | (default) delay opening the connection until the first message is logged
LOG_PERROR | print log message also to standard error
LOG_PID | include PID with each message
You can use one or more of these options. When using multiple options you need to OR them, i.e. to open the connection immediately, write to the console and include the PID in each message, you will use: LOG_CONS | LOG_NDELAY | LOG_PID

facility

The facility argument is used to specify what type of program is logging the message. This allows you to specify (in your machine's syslog configuration) how messages coming from different facilities will be handled.

openlog() Facilities
Constant | Description
LOG_AUTH | security/authorization messages (use LOG_AUTHPRIV instead in systems where that constant is defined)
LOG_AUTHPRIV | security/authorization messages (private)
LOG_CRON | clock daemon (cron and at)
LOG_DAEMON | other system daemons
LOG_KERN | kernel messages
LOG_LOCAL0 ... LOG_LOCAL7 | reserved for local use, these are not available in Windows
LOG_LPR | line printer subsystem
LOG_MAIL | mail subsystem
LOG_NEWS | USENET news subsystem
LOG_SYSLOG | messages generated internally by syslogd
LOG_USER | generic user-level messages
LOG_UUCP | UUCP subsystem

Nota:

LOG_USER is the only valid log type under Windows operating systems

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | The function now always returns true. Previously it returned false on failure.

Veja Também

  • syslog() - Generate a system log message
  • closelog() - Close connection to system logger


Open persistent Internet or Unix domain socket connection

  • « openlog
  • setcookie »
  • PHP Manual
  • Funções da Network
  • Open persistent Internet or Unix domain socket connection

pfsockopen

(PHP 4, PHP 5, PHP 7, PHP 8)

pfsockopen — Open persistent Internet or Unix domain socket connection

Descrição

pfsockopen(
string $hostname,
int $port = -1,
int &$error_code = null,
string &$error_message = null,
?float $timeout = null
): resource|false

This function behaves exactly as fsockopen() with the difference that the connection is not closed after the script finishes. It is the persistent version of fsockopen().

Parâmetros

For parameter information, see the fsockopen() documentation.

Valor Retornado

pfsockopen() returns a file pointer which may be used together with the other file functions (such as fgets(), fgetss(), fwrite(), fclose(), and feof()), ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | timeout is nullable now.

Veja Também

  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet


Envia um cookie

  • « pfsockopen
  • setrawcookie »
  • PHP Manual
  • Funções da Network
  • Envia um cookie

setcookie

(PHP 4, PHP 5, PHP 7, PHP 8)

setcookie — Envia um cookie

Descrição

setcookie(
string $name,
string $value = "",
int $expires_or_options = 0,
string $path = "",
string $domain = "",
bool $secure = false,
bool $httponly = false
): bool

Assinatura alternativa disponível a partir do PHP 7.3.0 (sem suporte a parâmetros nomeados):

setcookie(string $name, string $value = "", array $options = []): bool

A função setcookie() define um cookie para ser enviado juntamente com os cabeçalhos HTTP. Como outros cabeçalhos (headers), os cookies devem ser enviados antes de qualquer saída do seu script (isso é uma restrição do protocolo). O que quer dizer que você deve colocar chamadas a essa função antes de qualquer saída, incluindo as tags <html> e <head> assim como espaços em branco.

Uma vez que os cookies foram setados, eles podem ser acessados no próximo carregamento da página através do array $_COOKIE. Os valores dos cookies também podem existir no $_REQUEST.

Parâmetros

A » RFC 6265 fornece a referência normativa de como cada parâmetro de setcookie() é interpretado.

name

O nome do cookie.

value

O valor do cookie. Esse valor é guardado no computador do cliente; não guarde informação sensível. Supondo que o name seja 'cookiename', o valor pode ser lido através de $_COOKIE['cookiename']

expires_or_options

O tempo para o cookie expirar. Esse valor é uma timestamp Unix, portanto é o número de segundos desde a época (epoch). Um jeito de configurar esse valor é por adicionando o número de segundos que o cookie deve durar antes de expirar ao resultado da função time(). Por exemplo, time()+60*60*24*30 irá configurar o cookie para expirar em 30 dias. Outra opção é usar a função mktime(). Se configurado para 0 ou omitido, o cookie vai expirar no final da sessão (ao navegador fechar).

Nota:

Você pode ver que o parâmetro expires_or_options recebe uma timestamp Unix, ao contrário do formato de data Wdy, DD-Mon-YYYY HH:MM:SS GMT, isso se dá porque o PHP faz essa conversão internamente.

path

O caminho no servidor onde o cookie estará disponível. Se configurado para '/', o cookie estará disponível para todo o domain. Se configurado para o diretório '/foo/', o cookie estará disponível apenas dentro do diretório /foo/ e todos os subdiretórios como /foo/bar/ do domain. O valor padrão é o diretório atual onde o cookie está sendo configurado.

domain

O (sub)domínio para qual o cookie estará disponível. Definindo para um subdomínio (como 'www.example.com') deixará o cookie disponível para aquele subdomínio e todos os outros sub-domínios abaixo dele (exemplo w2.www.example.com). Para deixar o cookie disponível para todo o domínio (incluindo todos os subdomínios dele), simplesmente defina o valor para o nome do domínio ('example.com', nesse caso).

Browsers antigos ainda implementam a » RFC 2109 e podem requerer um . no início para funcionar com todos os subdomínios.

secure

Indica que o cookie só poderá ser transmitido sob uma conexão segura HTTPS do cliente. Quando configurado para true, o cookie será enviado somente se uma conexão segura existir. No lado do servidor, fica por conta do programador enviar esse tipo de cookie somente sob uma conexão segura (ex respeitando $_SERVER["HTTPS"]).

httponly

Quando for true o cookie será acessível somente sob o protocolo HTTP. Isso significa que o cookie não será acessível por linguagens de script, como JavaScript. É dito que essa configuração pode ajudar a reduzir ou identificar roubos de identidade através de ataques do tipo XSS (entretanto ela não é suportada por todos os browsers), mas essa informação é constantemente discutida. Foi adicionada no PHP 5.2.0. true ou false

options

Um array associativo onde quaisquer chaves expires, path, domain, secure, httponly e samesite. Se qualquer outra chave estiver presente, um alerta E_WARNING é gerado. Os valores têm o mesmo efeito como descrito acima, para os parâmetros de mesmo nome. O valor de samesite deve ser None, Lax ou Strict. Se uma das opções não é informada, os valores padrão são os mesmos valores padrão dos parâmetros explícitos. Se samesite for omitido, o atributo SameSite do cookie não será atribuído.

Nota:

Para definir um cookie que inclui atributos que não estão entre as chaves listadas, use a função header().

Valor Retornado

Se existe saída antes da chamada dessa função, setcookie() irá falhar e retornará false. Se a função setcookie() for executada com sucesso, ela retornará true. Isso não indica que o usuário aceitou o cookie.

Registro de Alterações

Versão | Descrição
8.2.0 | O formato de timestamp do cookie foi alterado para 'D, d M Y H:i:s \G\M\T'; anteriormente era 'D, d-M-Y H:i:s T'.
7.3.0 | Uma assinatura alternativa para suportar o array options foi adicionado. Essa assinatura também permite configurar o atributo SameSite do cookie.

Exemplos

Os exemplos a seguir demonstram algumas formas de enviar cookies.

Exemplo #1 Exemplo de setcookie() para enviar cookies

<?php
$value = 'alguma coisa de algum lugar';

setcookie("CookieTeste", $value);
setcookie("CookieTeste", $value, time()+3600); /* expira em 1 hora */
setcookie("CookieTeste", $value, time()+3600, "/~rasmus/", ".example.com", 1);
?>

Note que a porção do valor do cookie será automaticamente codificada com urlencode quando você enviar o cookie, e quando ele for recebido, será automaticamente decodificado e atribuído a uma variável com o mesmo nome do cookie. Se você não quer que isso aconteça, você pode utilizar no lugar a função setrawcookie() se você estiver utilizando o PHP 5. Para ver o conteúdo do nosso cookie de teste em um script, simplesmente utilize um dos exemplos abaixo:

<?php
// Mostra um cookie individual
echo $_COOKIE["CookieTeste"];

// Outra maneira de depurar(debug)/testar é vendo todos os cookies
print_r($_COOKIE);
?>

Exemplo #2 Exemplo de setcookie() para apagar cookies

Quando estiver apagando um cookie, tenha certeza de que a data de expiração dele está no passado, para acionar o mecanismo de remoção do navegador. O exemplo a seguir mostra como deletar os cookies enviados no exemplo anterior:

<?php
// Configura a data de expiração para uma hora atrás
setcookie("CookieTeste", "", time() - 3600);
setcookie("CookieTeste", "", time() - 3600, "/~rasmus/", ".example.com", 1);
?>

Exemplo #3 setcookie() e arrays

Você pode também enviar cookies de array, utilizando a notação de array no nome dele. Isso tem o efeito de enviar tantos cookies quantos elementos houverem no array, mas quando o cookie for recebido todos os valores serão colocados em um array com o nome do cookie:

<?php
// envia os cookies
setcookie("cookie[tres]", "cookietres");
setcookie("cookie[dois]", "cookiedois);
setcookie("cookie[um]", "cookieum");

// Depois que a página recarregar, mostra eles
if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $nome => $valor) {
$nome = htmlspecialchars($nome);
$valor = htmlspecialchars($valor);
echo "$nome : $valor <br />\n";
}
}
?>

O exemplo acima produzirá:

tres : cookietres
dois : cookiedois
um : cookieum

Nota: Utilizar caracteres como [ e ] no nome do cookie não é válido conforme o RFC 6265, seção 4, mas deve ser suportado por navegadores conforme o RFC 6265, seção 5.

Notas

Nota:

Você pode utilizar o output buffering para enviar a saída antes de chamar essa função, com o custo de toda sua saída ser guardada em buffer no servidor até que você a envie. Você pode fazer isso chamando ob_start() e ob_end_flush() em seu script, ou configurando a diretiva output_buffering no seu php.ini ou arquivos de configuração do servidor.

Problemas comuns:

  • Os cookies não estarão disponíveis até o próximo carregamento da página a qual o cookie deverá estar visível. Para testar se um cookie foi enviado com sucesso, verifique o cookie no próximo carregamento da página antes que ele expire. O tempo para expirar é configurado pelo parâmetro expires_or_options. Uma maneira boa de depurar a existência dos cookies é chamando a função print_r($_COOKIE);.
  • Os cookies devem ser deletados com os mesmos parâmetros com os quais foram configurados. Se o argumento de valor for uma string vazia, e todos os outros argumentos forem iguais a chamada anterior de setcookie, então o cookie com o nome especificado será deletado do cliente remoto. Internamente isso é feito colocando o valor do cookie para 'deleted' e a data de expiração para um ano no passado.
  • Quando você configurar um cookie com o valor false será tentando deletar o cookie. Portanto evite utilizar valores booleanos. No lugar, utilize 0 para false e 1 for true.
  • Nomes de cookies podem ser configurados como arrays e estarão disponíves para seus scripts PHP como arrays mas cookies separados serão guardados no sistema do usuário. Considere utilizar explode() para enviar um cookie com nomes e valores múltiplos. Não é recomendado o uso da função serialize() para esse propósito, pois ele pode resultar em furos de segurança.

Várias chamadas para a função setcookie() são feitas na ordem em que são chamadas.

Veja Também

  • header() - Send a raw HTTP header
  • setrawcookie() - Send a cookie without urlencoding the cookie value
  • Seção de cookies
  • » RFC 6265
  • » RFC 2109


Send a cookie without urlencoding the cookie value

  • « setcookie
  • socket_get_status »
  • PHP Manual
  • Funções da Network
  • Send a cookie without urlencoding the cookie value

setrawcookie

(PHP 5, PHP 7, PHP 8)

setrawcookie — Send a cookie without urlencoding the cookie value

Descrição

setrawcookie(
string $name,
string $value = ?,
int $expires_or_options = 0,
string $path = ?,
string $domain = ?,
bool $secure = false,
bool $httponly = false
): bool

Alternative signature available as of PHP 7.3.0 (not supported with named parameters):

setrawcookie(string $name, string $value = ?, array $options = []): bool

setrawcookie() is exactly the same as setcookie() except that the cookie value will not be automatically urlencoded when sent to the browser.

Parâmetros

For parameter information, see the setcookie() documentation.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.3.0 | An alternative signature supporting an options array has been added. This signature supports also setting of the SameSite cookie attribute.

Veja Também

  • setcookie() - Envia um cookie


Sinônimo de stream_get_meta_data

  • « setrawcookie
  • socket_set_blocking »
  • PHP Manual
  • Funções da Network
  • Sinônimo de stream_get_meta_data

socket_get_status

(PHP 4, PHP 5, PHP 7, PHP 8)

socket_get_status — Sinônimo de stream_get_meta_data()

Descrição

Esta função é um apelido para: stream_get_meta_data().


Sinônimo de stream_set_blocking

  • « socket_get_status
  • socket_set_timeout »
  • PHP Manual
  • Funções da Network
  • Sinônimo de stream_set_blocking

socket_set_blocking

(PHP 4, PHP 5, PHP 7, PHP 8)

socket_set_blocking — Sinônimo de stream_set_blocking()

Descrição

Esta função é um apelido para: stream_set_blocking().


Sinônimo de stream_set_timeout

  • « socket_set_blocking
  • syslog »
  • PHP Manual
  • Funções da Network
  • Sinônimo de stream_set_timeout

socket_set_timeout

(PHP 4, PHP 5, PHP 7, PHP 8)

socket_set_timeout — Sinônimo de stream_set_timeout()

Descrição

Esta função é um apelido para: stream_set_timeout().


Generate a system log message

  • « socket_set_timeout
  • RRD »
  • PHP Manual
  • Funções da Network
  • Generate a system log message

syslog

(PHP 4, PHP 5, PHP 7, PHP 8)

syslog — Generate a system log message

Descrição

syslog(int $priority, string $message): true

syslog() generates a log message that will be distributed by the system logger.

For information on setting up a user defined log handler, see the syslog.conf (5) Unix manual page. More information on the syslog facilities and option can be found in the man pages for syslog (3) on Unix machines.

Parâmetros

priority

priority is a combination of the facility and the level. Possible values are:

syslog() Priorities (in descending order)
Constant | Description
LOG_EMERG | system is unusable
LOG_ALERT | action must be taken immediately
LOG_CRIT | critical conditions
LOG_ERR | error conditions
LOG_WARNING | warning conditions
LOG_NOTICE | normal, but significant, condition
LOG_INFO | informational message
LOG_DEBUG | debug-level message

message

The message to send.

Valor Retornado

Sempre retorna true.

Exemplos

Exemplo #1 Using syslog()

<?php
// open syslog, include the process ID and also send
// the log to standard error, and use a user defined
// logging mechanism
openlog("myScriptLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

// some code

if (authorized_client()) {
// do something
} else {
// unauthorized client!
// log the attempt
$access = date("Y/m/d H:i:s");
syslog(LOG_WARNING, "Unauthorized client: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

closelog();
?>

Notas

On Windows, the syslog service is emulated using the Event Log.

Nota:

Use of LOG_LOCAL0 through LOG_LOCAL7 for the facility parameter of openlog() is not available in Windows.

Veja Também

  • openlog() - Open connection to system logger
  • closelog() - Close connection to system logger
  • syslog.filter INI setting (starting with PHP 7.3)


RRDtool

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Procedural PECL/rrd example
    • OOP PECL/rrd example
  • RRD Funções
    • rrd_create — Creates rrd database file
    • rrd_error — Gets latest error message
    • rrd_fetch — Fetch the data for graph as array
    • rrd_first — Gets the timestamp of the first sample from rrd file
    • rrd_graph — Creates image from a data
    • rrd_info — Gets information about rrd file
    • rrd_last — Gets unix timestamp of the last sample
    • rrd_lastupdate — Gets information about last updated data
    • rrd_restore — Restores the RRD file from XML dump
    • rrd_tune — Tunes some RRD database file header options
    • rrd_update — Updates the RRD database
    • rrd_version — Gets information about underlying rrdtool library
    • rrd_xport — Exports the information about RRD database
    • rrdc_disconnect — Close any outstanding connection to rrd caching daemon
  • RRDCreator — The RRDCreator class
    • RRDCreator::addArchive — Adds RRA - archive of data values for each data source
    • RRDCreator::addDataSource — Adds data source definition for RRD database
    • RRDCreator::__construct — Creates new RRDCreator instance
    • RRDCreator::save — Saves the RRD database to a file
  • RRDGraph — The RRDGraph class
    • RRDGraph::__construct — Creates new RRDGraph instance
    • RRDGraph::save — Saves the result of query into image
    • RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph
    • RRDGraph::setOptions — Sets the options for rrd graph export
  • RRDUpdater — The RRDUpdater class
    • RRDUpdater::__construct — Creates new RRDUpdater instance
    • RRDUpdater::update — Update the RRD database file


Introdução

The PECL/rrd extension provides bindings to the RRDtool C library. RRDtool is the open source industry standard, high performance data logging and graphing system for time series data.

The RRDtool homepage is » http://www.mrtg.org/rrdtool/.


Dependências

You need to install librrd first to be able to use PECL/rrd. Most common option is using of librrd-dev package from your favourite Linux distro. PECL/rrd is tested with librrd 1.4.3, older or newer versions might or might not work for you.

Aviso

Librrd and hence extension itself aren't mostly thread safe. There are many global and shared states in librrd. It can be dangerous use this extension in multi threaded environments like Apache2 mpm worker. If there are many parallel requests, one request can change some global librrd state of other runnig requests.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/rrd.


  • « Tipos de Recurso
  • Exemplos »
  • PHP Manual
  • RRD
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


  • « Constantes pré-definidas
  • Procedural PECL/rrd example »
  • PHP Manual
  • RRD
  • Exemplos

Exemplos

Índice

  • Procedural PECL/rrd example
  • OOP PECL/rrd example


Procedural PECL/rrd example

Exemplo #1 Procedural usage of rrd

<?php
$rrdFile = dirname(__FILE__) . "/speed.rrd";

//create rrd file
rrd_create($rrdFile,
array(
"--start",920804400,
"DS:speed:COUNTER:600:U:U",
"RRA:AVERAGE:0.5:1:24",
"RRA:AVERAGE:0.5:6:10"
)
);

//update rrd file
rrd_update($rrdFile,
array(
"920804700:12345",
"920805000:12357"
)
);

//graph output
rrd_graph(dirname(__FILE__) . "/speed.png",
array(
"--start", "920804400",
"--end", "920808000",
"--vertical-label", "m/s",
"DEF:myspeed=$rrdFile:speed:AVERAGE",
"CDEF:realspeed=myspeed,1000,*",
"LINE2:realspeed#FF0000"
)
);
?>


OOP PECL/rrd example

Exemplo #1 OO usage of rrd

<?php
$rrdFile = dirname(__FILE__) . "/speed.rrd";
$outputPngFile = dirname(__FILE__) . "/speed.png";

$creator = new RRDCreator($rrdFile, "now -10d", 500);
$creator->addDataSource("speed:COUNTER:600:U:U");
$creator->addArchive("AVERAGE:0.5:1:24");
$creator->addArchive("AVERAGE:0.5:6:10");
$creator->save();

$updater = new RRDUpdater($rrdFile);
$updater->update(array("speed" => "12345"), "920804700");
$updater->update(array("speed" => "12357"), "920805000");

$graphObj = new RRDGraph($outputPngFile);
$graphObj->setOptions(
array(
"--start" => "920804400",
"--end" => 920808000,
"--vertical-label" => "m/s",
"DEF:myspeed=$rrdFile:speed:AVERAGE",
"CDEF:realspeed=myspeed,1000,*",
"LINE2:realspeed#FF0000"
)
);
$graphObj->save();
?>


RRD Funções

Índice

  • rrd_create — Creates rrd database file
  • rrd_error — Gets latest error message
  • rrd_fetch — Fetch the data for graph as array
  • rrd_first — Gets the timestamp of the first sample from rrd file
  • rrd_graph — Creates image from a data
  • rrd_info — Gets information about rrd file
  • rrd_last — Gets unix timestamp of the last sample
  • rrd_lastupdate — Gets information about last updated data
  • rrd_restore — Restores the RRD file from XML dump
  • rrd_tune — Tunes some RRD database file header options
  • rrd_update — Updates the RRD database
  • rrd_version — Gets information about underlying rrdtool library
  • rrd_xport — Exports the information about RRD database
  • rrdc_disconnect — Close any outstanding connection to rrd caching daemon


Creates rrd database file

  • « RRD Funções
  • rrd_error »
  • PHP Manual
  • RRD Funções
  • Creates rrd database file

rrd_create

(PECL rrd >= 0.9.0)

rrd_create — Creates rrd database file

Descrição

rrd_create(string $filename, array $options): bool

Creates the rdd database file.

Parâmetros

filename

Filename for newly created rrd file.

options

Options for rrd create - list of strings. See man page of rrd create for whole list of options.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Gets latest error message

  • « rrd_create
  • rrd_fetch »
  • PHP Manual
  • RRD Funções
  • Gets latest error message

rrd_error

(PECL rrd >= 0.9.0)

rrd_error — Gets latest error message

Descrição

rrd_error(): string

Returns latest global rrd error message.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Latest error message.


Fetch the data for graph as array

  • « rrd_error
  • rrd_first »
  • PHP Manual
  • RRD Funções
  • Fetch the data for graph as array

rrd_fetch

(PECL rrd >= 0.9.0)

rrd_fetch — Fetch the data for graph as array

Descrição

rrd_fetch(string $filename, array $options): array

Gets data for graph output from RRD database file as array. This function has same result as rrd_graph(), but fetched data are returned as array, no image file is created.

Parâmetros

filename

RRD database file name.

options

Array of options for resolution specification.

Valor Retornado

Returns information about retrieved graph data.


Gets the timestamp of the first sample from rrd file

  • « rrd_fetch
  • rrd_graph »
  • PHP Manual
  • RRD Funções
  • Gets the timestamp of the first sample from rrd file

rrd_first

(PECL rrd >= 0.9.0)

rrd_first — Gets the timestamp of the first sample from rrd file

Descrição

rrd_first(string $file, int $raaindex = 0): int

Returns the first data sample from the specified RRA of the RRD file.

Parâmetros

file

RRD database file name.

raaindex

The index number of the RRA that is to be examined. Default value is 0.

Valor Retornado

Integer number of unix timestamp, ou false em caso de falha.


Creates image from a data

  • « rrd_first
  • rrd_info »
  • PHP Manual
  • RRD Funções
  • Creates image from a data

rrd_graph

(PECL rrd >= 0.9.0)

rrd_graph — Creates image from a data

Descrição

rrd_graph(string $filename, array $options): array

Creates image for a particular data from RRD file.

Parâmetros

filename

The filename to output the graph to. This will generally end in either .png, .svg or .eps, depending on the format you want to output.

options

Options for generating image. See man page of rrd graph for all possible options. All options (data definitions, variable definitions, etc.) are allowed.

Valor Retornado

Array with information about generated image is returned, ou false em caso de falha.


Gets information about rrd file

  • « rrd_graph
  • rrd_last »
  • PHP Manual
  • RRD Funções
  • Gets information about rrd file

rrd_info

(PECL rrd >= 0.9.0)

rrd_info — Gets information about rrd file

Descrição

rrd_info(string $filename): array

Returns information about particular RRD database file.

Parâmetros

file

RRD database file name.

Valor Retornado

Array with information about requested RRD file, ou false em caso de falha.


Gets unix timestamp of the last sample

  • « rrd_info
  • rrd_lastupdate »
  • PHP Manual
  • RRD Funções
  • Gets unix timestamp of the last sample

rrd_last

(PECL rrd >= 0.9.0)

rrd_last — Gets unix timestamp of the last sample

Descrição

rrd_last(string $filename): int

Returns the UNIX timestamp of the most recent update of the RRD database.

Parâmetros

filename

RRD database file name.

Valor Retornado

Integer as unix timestamp of the most recent data from the RRD database.


Gets information about last updated data

  • « rrd_last
  • rrd_restore »
  • PHP Manual
  • RRD Funções
  • Gets information about last updated data

rrd_lastupdate

(PECL rrd >= 0.9.0)

rrd_lastupdate — Gets information about last updated data

Descrição

rrd_lastupdate(string $filename): array

Gets array of the UNIX timestamp and the values stored for each date in the most recent update of the RRD database file.

Parâmetros

file

RRD database file name.

Valor Retornado

Array of information about last update, ou false em caso de falha.


Restores the RRD file from XML dump

  • « rrd_lastupdate
  • rrd_tune »
  • PHP Manual
  • RRD Funções
  • Restores the RRD file from XML dump

rrd_restore

(PECL rrd >= 0.9.0)

rrd_restore — Restores the RRD file from XML dump

Descrição

rrd_restore(string $xml_file, string $rrd_file, array $options = ?): bool

Restores the RRD file from the XML dump.

Parâmetros

xml_file

XML filename with the dump of the original RRD database file.

rrd_file

Restored RRD database file name.

options

Array of options for restoring. See man page for rrd restore.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Tunes some RRD database file header options

  • « rrd_restore
  • rrd_update »
  • PHP Manual
  • RRD Funções
  • Tunes some RRD database file header options

rrd_tune

(PECL rrd >= 0.9.0)

rrd_tune — Tunes some RRD database file header options

Descrição

rrd_tune(string $filename, array $options): bool

Change some options in the RRD dabase header file. E.g. renames the source for the data etc.

Parâmetros

filename

RRD database file name.

options

Options with RRD database file properties which will be changed. See rrd tune man page for details.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Updates the RRD database

  • « rrd_tune
  • rrd_version »
  • PHP Manual
  • RRD Funções
  • Updates the RRD database

rrd_update

(PECL rrd >= 0.9.0)

rrd_update — Updates the RRD database

Descrição

rrd_update(string $filename, array $options): bool

Updates the RRD database file. The input data is time interpolated according to the properties of the RRD database file.

Parâmetros

filename

RRD database file name. This database will be updated.

options

Options for updating the RRD database. This is list of strings. See man page of rrd update for whole list of options.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Gets information about underlying rrdtool library

  • « rrd_update
  • rrd_xport »
  • PHP Manual
  • RRD Funções
  • Gets information about underlying rrdtool library

rrd_version

(PECL rrd >= 1.0.0)

rrd_version — Gets information about underlying rrdtool library

Descrição

rrd_version(): string

Returns information about underlying rrdtool library.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

String with rrdtool version number e.g. "1.4.3".


Exports the information about RRD database

  • « rrd_version
  • rrdc_disconnect »
  • PHP Manual
  • RRD Funções
  • Exports the information about RRD database

rrd_xport

(PECL rrd >= 0.9.0)

rrd_xport — Exports the information about RRD database

Descrição

rrd_xport(array $options): array

Exports the information about RRD database file. This data can be converted to XML file via user space PHP script and then restored back as RRD database file.

Parâmetros

options

Array of options for the export, see rrd xport man page.

Valor Retornado

Array with information about RRD database file, ou false em caso de falha.


Close any outstanding connection to rrd caching daemon

  • « rrd_xport
  • RRDCreator »
  • PHP Manual
  • RRD Funções
  • Close any outstanding connection to rrd caching daemon

rrdc_disconnect

(PECL rrd >= 1.1.2)

rrdc_disconnect — Close any outstanding connection to rrd caching daemon

Descrição

rrdc_disconnect(): void

Close any outstanding connection to rrd caching daemon.

This function is automatically called when the whole PHP process is terminated. It depends on used SAPI. For example, it's called automatically at the end of command line script.

It's up user whether he wants to call this function at the end of every request or otherwise.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


The RRDCreator class

(PECL rrd >= 0.9.0)

Introdução

Class for creation of RRD database file.

Resumo da classe

class RRDCreator {
/* Métodos */
public __construct(string $path, string $startTime = ?, int $step = 0)
public addArchive(string $description): void
public addDataSource(string $description): void
public save(): bool
}

Índice

  • RRDCreator::addArchive — Adds RRA - archive of data values for each data source
  • RRDCreator::addDataSource — Adds data source definition for RRD database
  • RRDCreator::__construct — Creates new RRDCreator instance
  • RRDCreator::save — Saves the RRD database to a file


Adds RRA - archive of data values for each data source

  • « RRDCreator
  • RRDCreator::addDataSource »
  • PHP Manual
  • RRDCreator
  • Adds RRA - archive of data values for each data source

RRDCreator::addArchive

(PECL rrd >= 0.9.0)

RRDCreator::addArchive — Adds RRA - archive of data values for each data source

Descrição

public RRDCreator::addArchive(string $description): void

Adds RRA definition by description of archive. Archive consists of a number of data values or statistics for each of the defined data-sources (DS). Data sources are defined by method RRDCreator::addDataSource(). You need call this method for each requested archive.

Parâmetros

description

Definition of archive - RRA. This has same format as RRA definition in rrd create command. See man page of rrd create for more details.

Valor Retornado

Nenhum valor é retornado.


Adds data source definition for RRD database

  • « RRDCreator::addArchive
  • RRDCreator::__construct »
  • PHP Manual
  • RRDCreator
  • Adds data source definition for RRD database

RRDCreator::addDataSource

(PECL rrd >= 0.9.0)

RRDCreator::addDataSource — Adds data source definition for RRD database

Descrição

public RRDCreator::addDataSource(string $description): void

RRD can accept input from several data sources (DS), e.g incoming and outgoing traffic. This method adds data source by description. You need call this method for each data source.

Parâmetros

description

Definition of data source - DS. This has same format as DS definition in rrd create command. See man page of rrd create for more details.

Valor Retornado

Nenhum valor é retornado.


Creates new RRDCreator instance

  • « RRDCreator::addDataSource
  • RRDCreator::save »
  • PHP Manual
  • RRDCreator
  • Creates new RRDCreator instance

RRDCreator::__construct

(PECL rrd >= 0.9.0)

RRDCreator::__construct — Creates new RRDCreator instance

Descrição

public RRDCreator::__construct(string $path, string $startTime = ?, int $step = 0)

Creates new RRDCreator instance.

Parâmetros

path

Path for newly created RRD database file.

startTime

Time for the first value in RRD database. Parameter supports all formats which are supported by rrd create call.

intstep

Base interval in seconds with which data will be fed into the RRD database.


Saves the RRD database to a file

  • « RRDCreator::__construct
  • RRDGraph »
  • PHP Manual
  • RRDCreator
  • Saves the RRD database to a file

RRDCreator::save

(PECL rrd >= 0.9.0)

RRDCreator::save — Saves the RRD database to a file

Descrição

public RRDCreator::save(): bool

Saves the RRD database into file, which name is defined by RRDCreator::__construct().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


The RRDGraph class

(PECL rrd >= 0.9.0)

Introdução

Class for exporting data from RRD database to image file.

Resumo da classe

class RRDGraph {
/* Métodos */
public __construct(string $path)
public save(): array
public saveVerbose(): array
public setOptions(array $options): void
}

Índice

  • RRDGraph::__construct — Creates new RRDGraph instance
  • RRDGraph::save — Saves the result of query into image
  • RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph
  • RRDGraph::setOptions — Sets the options for rrd graph export


Creates new RRDGraph instance

  • « RRDGraph
  • RRDGraph::save »
  • PHP Manual
  • RRDGraph
  • Creates new RRDGraph instance

RRDGraph::__construct

(PECL rrd >= 0.9.0)

RRDGraph::__construct — Creates new RRDGraph instance

Descrição

public RRDGraph::__construct(string $path)

Creates new RRDGraph instance. This instance is responsible for rendering the result of RRD database query into image.

Parâmetros

path

Full path for the newly created image.


Saves the result of query into image

  • « RRDGraph::__construct
  • RRDGraph::saveVerbose »
  • PHP Manual
  • RRDGraph
  • Saves the result of query into image

RRDGraph::save

(PECL rrd >= 0.9.0)

RRDGraph::save — Saves the result of query into image

Descrição

public RRDGraph::save(): array

Saves the result of RRD database query into image defined by RRDGraph::__construct().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns array with information about generated image, ou false em caso de falha.


Saves the RRD database query into image and returns the verbose information about generated graph

  • « RRDGraph::save
  • RRDGraph::setOptions »
  • PHP Manual
  • RRDGraph
  • Saves the RRD database query into image and returns the verbose information about generated graph

RRDGraph::saveVerbose

(PECL rrd >= 0.9.0)

RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph

Descrição

public RRDGraph::saveVerbose(): array

Saves the RRD database query into image file defined by method RRDGraph::__construct() and returns the verbose information about generated graph, if "-" is used as image filename, image data are also returned in result array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns array with detailed information about generated image, ou false em caso de falha.


Sets the options for rrd graph export

  • « RRDGraph::saveVerbose
  • RRDUpdater »
  • PHP Manual
  • RRDGraph
  • Sets the options for rrd graph export

RRDGraph::setOptions

(PECL rrd >= 0.9.0)

RRDGraph::setOptions — Sets the options for rrd graph export

Descrição

public RRDGraph::setOptions(array $options): void

Parâmetros

options

List of options for the image generation from the RRD database file. It can be list of strings or list of strings with keys for better readability. Read the rrd graph man pages for list of available options.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 RRDGraph::setOptions() example

<?php
$graphObj->setOptions(array(
"--start" => "920804400",
"--end" => 920808000,
"--vertical-label" => "m/s",
"DEF:myspeed=$rrdFile:speed:AVERAGE",
"CDEF:realspeed=myspeed,1000,*",
"LINE2:realspeed#FF0000"
));
?>

Exemplo #2 Set multiple color options

<?php
$graphObj->setOptions(array(
"--start" => "920804400",
"--end" => 920808000,
"--vertical-label" => "m/s",
"--color=BACK#00000000",
"--color=GRID#00000000",
"--color=MGRID#00000000",
"DEF:myspeed=$rrdFile:speed:AVERAGE",
"CDEF:realspeed=myspeed,1000,*",
"LINE2:realspeed#FF0000"
));
?>

Don't use key value syntax for same rrd option. It looks more readable, but it doesn't work.

<?php
$graphObj->setOptions(array(
"--color" => "BACK#00000000",
"--color" => "GRID#00000000",
"--color" => "MGRID#00000000"
));
?>

In nature of php it's same as

<?php
$graphObj->setOptions(array(
"--color" => "MGRID#00000000"
));
?>


The RRDUpdater class

(PECL rrd >= 0.9.0)

Introdução

Class for updating RDD database file.

Resumo da classe

class RRDUpdater {
/* Métodos */
public __construct(string $path)
public update(array $values, string $time = time() ): bool
}

Índice

  • RRDUpdater::__construct — Creates new RRDUpdater instance
  • RRDUpdater::update — Update the RRD database file


Creates new RRDUpdater instance

  • « RRDUpdater
  • RRDUpdater::update »
  • PHP Manual
  • RRDUpdater
  • Creates new RRDUpdater instance

RRDUpdater::__construct

(PECL rrd >= 0.9.0)

RRDUpdater::__construct — Creates new RRDUpdater instance

Descrição

public RRDUpdater::__construct(string $path)

Creates new RRDUpdater instance. This instance is responsible for updating the RRD database file.

Parâmetros

path

Filesystem path for RRD database file, which will be updated.


Update the RRD database file

  • « RRDUpdater::__construct
  • ScoutAPM »
  • PHP Manual
  • RRDUpdater
  • Update the RRD database file

RRDUpdater::update

(PECL rrd >= 0.9.0)

RRDUpdater::update — Update the RRD database file

Descrição

public RRDUpdater::update(array $values, string $time = time() ): bool

Updates the RRD file defined via RRDUpdater::__construct(). The file is updated with a specific values.

Parâmetros

values

Data for update. Key is data source name.

time

Time value for updating the RRD with a particular data. Default value is current time.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Throws a Exception on error.

Exemplos

Exemplo #1 RRDUpdater::update() examples

<?php
$updator = new RRDUpdater("speed.rrd");
//updates the data source "speed" with value "12411"
//for time defined by timestamp "920807700"
$updator->update(array("speed" => "12411"), "920807700");
?>


ScoutAPM

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
  • Constantes pré-definidas
  • Scoutapm Funções
    • scoutapm_get_calls — Returns a list of instrumented calls that have occurred
    • scoutapm_list_instrumented_functions — List functions scoutapm will instrument.


Introdução

Nota: Esta extensão não está disponível em plataformas Windows.

ScoutAPM's extension for PHP provides additional capabilities to application monitoring over just using the base PHP userland library.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

  • PHP >= 7.1.0
  • Windows is not currently supported


Instalação

This extension is available on PECL. Run:

$ sudo pecl install scoutapm
You may need to add Scout to your php.ini, for example:
extension=scoutapm.so


  • « Configurações em Execução
  • Scoutapm Funções »
  • PHP Manual
  • ScoutAPM
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Scoutapm Funções

Índice

  • scoutapm_get_calls — Returns a list of instrumented calls that have occurred
  • scoutapm_list_instrumented_functions — List functions scoutapm will instrument.


Returns a list of instrumented calls that have occurred

  • « Scoutapm Funções
  • scoutapm_list_instrumented_functions »
  • PHP Manual
  • Scoutapm Funções
  • Returns a list of instrumented calls that have occurred

scoutapm_get_calls

(PECL scoutapm >= 1.0.0)

scoutapm_get_calls — Returns a list of instrumented calls that have occurred

Descrição

scoutapm_get_calls(): array

Returns a list of any instrumented function calls since scoutapm_get_calls() was last called. The list is cleared each time the function is called.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

scoutapm_get_calls() returns an array containing a list of all recorded calls to instrumented function calls.

Exemplos

Exemplo #1 Fetch instrumented calls

<?php

file_get_contents('a.txt');
file_get_contents('b.txt');

print_r(scoutapm_get_calls());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [function] => file_get_contents
            [entered] => 1576839727.7934
            [exited] => 1576839727.7935
            [time_taken] => 2.7894973754883E-5
            [argv] => Array
                (
                    [0] => a.txt
                )

        )

    [1] => Array
        (
            [function] => file_get_contents
            [entered] => 1576839727.7935
            [exited] => 1576839727.7935
            [time_taken] => 7.8678131103516E-6
            [argv] => Array
                (
                    [0] => b.txt
                )

        )

)


List functions scoutapm will instrument.

  • « scoutapm_get_calls
  • SNMP »
  • PHP Manual
  • Scoutapm Funções
  • List functions scoutapm will instrument.

scoutapm_list_instrumented_functions

(PECL scoutapm >= 1.0.2)

scoutapm_list_instrumented_functions — List functions scoutapm will instrument.

Descrição

scoutapm_list_instrumented_functions(): array

Returns a list of the functions the extension will instrument.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

scoutapm_list_instrumented_functions() returns an array containing a list of all functions that the scoutapm extension is able to instrument in the current installation.

Exemplos

Exemplo #1 Fetch the list of functions scoutapm will instrument

<?php
print_r(scoutapm_list_instrumented_functions());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => file_get_contents
    [1] => file_put_contents
    [2] => fopen
    [3] => fread
    [4] => fwrite
    [5] => pdo->exec
    [6] => pdo->query
    [7] => pdo->prepare
    [8] => pdostatement->execute
)


SNMP

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções SNMP
    • snmp_get_quick_print — Fetches the current value of the NET-SNMP library's quick_print setting
    • snmp_get_valueretrieval — Return the method how the SNMP values will be returned
    • snmp_read_mib — Reads and parses a MIB file into the active MIB tree
    • snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer
    • snmp_set_oid_numeric_print — Sinônimo de snmp_set_oid_output_format
    • snmp_set_oid_output_format — Set the OID output format
    • snmp_set_quick_print — Set the value of enable within the NET-SNMP library
    • snmp_set_valueretrieval — Specify the method how the SNMP values will be returned
    • snmp2_get — Fetch an SNMP object
    • snmp2_getnext — Fetch the SNMP object which follows the given object id
    • snmp2_real_walk — Return all objects including their respective object ID within the specified one
    • snmp2_set — Set the value of an SNMP object
    • snmp2_walk — Fetch all the SNMP objects from an agent
    • snmp3_get — Fetch an SNMP object
    • snmp3_getnext — Fetch the SNMP object which follows the given object id
    • snmp3_real_walk — Return all objects including their respective object ID within the specified one
    • snmp3_set — Set the value of an SNMP object
    • snmp3_walk — Fetch all the SNMP objects from an agent
    • snmpget — Fetch an SNMP object
    • snmpgetnext — Fetch the SNMP object which follows the given object id
    • snmprealwalk — Return all objects including their respective object ID within the specified one
    • snmpset — Set the value of an SNMP object
    • snmpwalk — Fetch all the SNMP objects from an agent
    • snmpwalkoid — Query for a tree of information about a network entity
  • SNMP — The SNMP class
    • SNMP::close — Close SNMP session
    • SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent
    • SNMP::get — Fetch an SNMP object
    • SNMP::getErrno — Get last error code
    • SNMP::getError — Get last error message
    • SNMP::getnext — Fetch an SNMP object which follows the given object id
    • SNMP::set — Set the value of an SNMP object
    • SNMP::setSecurity — Configures security-related SNMPv3 session parameters
    • SNMP::walk — Fetch SNMP object subtree
  • SNMPException — The SNMPException class


Introdução

A extensão SNMP provê um kit de ferramentas muito simples e fácil de usar para controlar dispositivos remotos através do Simple Network Management Protocol.

Como é um wrapper da biblioteca básica Net-SNMP, todos os conceitos básicos são os mesmos e as funções PHP alteram seus comportamentos dependendo dos arquivos de configuração Net-SNMP e das variáveis de ambiente.

Mais informações sobre o Net-SNMP podem ser encontradas em » http://www.net-snmp.org/


Dependências

A instalação do pacote » Net-SNMP é requerida para para utilizar as funções SNMP. As funções SNMPv3 só estarão disponíveis quando o pacote » OpenSSL também estiver instalado

Net-SNMP versão 5.3+ é necessária para Unix e o Net-SNMP 5.4+ para Windows.


Instalação

The Windows distribution of » Net-SNMP contains support files for SNMP in the mibs directory. This directory should be added to Windows' environment variables, as MIBDIRS, with the value being the full path to the mibs directory: e.g. c:\usr\mibs.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Para snmp_set_oid_output_format()
SNMP_OID_OUTPUT_SUFFIX (int)
SNMP_OID_OUTPUT_MODULE (int)
SNMP_OID_OUTPUT_FULL (int)
SNMP_OID_OUTPUT_NUMERIC (int)
SNMP_OID_OUTPUT_UCD (int)
SNMP_OID_OUTPUT_NONE (int)
Para snmp_set_valueretrieval()
SNMP_VALUE_LIBRARY (int)
SNMP_VALUE_PLAIN (int)
SNMP_VALUE_OBJECT (int)
Tipos SNMP retornados se SNMP_VALUE_OBJECT foi utilizado com snmp_set_valueretrieval()
SNMP_BIT_STR (int)
SNMP_OCTET_STR (int)
SNMP_OPAQUE (int)
SNMP_NULL (int)
SNMP_OBJECT_ID (int)
SNMP_IPADDRESS (int)
SNMP_COUNTER (int)
SNMP_UNSIGNED (int)
SNMP_TIMETICKS (int)
SNMP_UINTEGER (int)
SNMP_INTEGER (int)
SNMP_COUNTER64 (int)


Funções SNMP

Índice

  • snmp_get_quick_print — Fetches the current value of the NET-SNMP library's quick_print setting
  • snmp_get_valueretrieval — Return the method how the SNMP values will be returned
  • snmp_read_mib — Reads and parses a MIB file into the active MIB tree
  • snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer
  • snmp_set_oid_numeric_print — Sinônimo de snmp_set_oid_output_format
  • snmp_set_oid_output_format — Set the OID output format
  • snmp_set_quick_print — Set the value of enable within the NET-SNMP library
  • snmp_set_valueretrieval — Specify the method how the SNMP values will be returned
  • snmp2_get — Fetch an SNMP object
  • snmp2_getnext — Fetch the SNMP object which follows the given object id
  • snmp2_real_walk — Return all objects including their respective object ID within the specified one
  • snmp2_set — Set the value of an SNMP object
  • snmp2_walk — Fetch all the SNMP objects from an agent
  • snmp3_get — Fetch an SNMP object
  • snmp3_getnext — Fetch the SNMP object which follows the given object id
  • snmp3_real_walk — Return all objects including their respective object ID within the specified one
  • snmp3_set — Set the value of an SNMP object
  • snmp3_walk — Fetch all the SNMP objects from an agent
  • snmpget — Fetch an SNMP object
  • snmpgetnext — Fetch the SNMP object which follows the given object id
  • snmprealwalk — Return all objects including their respective object ID within the specified one
  • snmpset — Set the value of an SNMP object
  • snmpwalk — Fetch all the SNMP objects from an agent
  • snmpwalkoid — Query for a tree of information about a network entity


Fetches the current value of the NET-SNMP library's quick_print setting

  • « Funções SNMP
  • snmp_get_valueretrieval »
  • PHP Manual
  • Funções SNMP
  • Fetches the current value of the NET-SNMP library's quick_print setting

snmp_get_quick_print

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp_get_quick_print — Fetches the current value of the NET-SNMP library's quick_print setting

Descrição

snmp_get_quick_print(): bool

Returns the current value stored in the NET-SNMP Library for quick_print. quick_print is off by default.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if quick_print is on, false otherwise.

Exemplos

Exemplo #1 snmp_get_quick_print() example

<?php
$quickprint = snmp_get_quick_print();
?>

Veja Também

  • snmp_set_quick_print() - Set the value of enable within the NET-SNMP library for a full description of what quick_print does.


Return the method how the SNMP values will be returned

  • « snmp_get_quick_print
  • snmp_read_mib »
  • PHP Manual
  • Funções SNMP
  • Return the method how the SNMP values will be returned

snmp_get_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7, PHP 8)

snmp_get_valueretrieval — Return the method how the SNMP values will be returned

Descrição

snmp_get_valueretrieval(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

OR-ed combitantion of constants ( SNMP_VALUE_LIBRARY or SNMP_VALUE_PLAIN ) with possible SNMP_VALUE_OBJECT set.

Exemplos

Exemplo #1 Using snmp_get_valueretrieval()

<?php
$ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
if (snmp_get_valueretrieval() & SNMP_VALUE_OBJECT) {
echo $ret->value;
} else {
echo $ret;
}
?>

Veja Também

  • snmp_set_valueretrieval() - Specify the method how the SNMP values will be returned
  • Constantes pré-definidas


Reads and parses a MIB file into the active MIB tree

  • « snmp_get_valueretrieval
  • snmp_set_enum_print »
  • PHP Manual
  • Funções SNMP
  • Reads and parses a MIB file into the active MIB tree

snmp_read_mib

(PHP 5, PHP 7, PHP 8)

snmp_read_mib — Reads and parses a MIB file into the active MIB tree

Descrição

snmp_read_mib(string $filename): bool

This function is used to load additional, e.g. vendor specific, MIBs so that human readable OIDs like VENDOR-MIB::foo.1 instead of error prone numeric OIDs can be used.

The order in which the MIBs are loaded does matter as the underlying Net-SNMP library will print warnings if referenced objects cannot be resolved.

Parâmetros

filename

The filename of the MIB.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Using snmp_read_mib()

<?php
print_r( snmprealwalk('localhost', 'public', '.1.3.6.1.2.1.2.3.4.5') );

snmp_read_mib('./FOO-BAR-MIB.txt');
print_r( snmprealwalk('localhost', 'public', 'FOO-BAR-MIB::someTable') );
?>

The above example is made up but the results would look like:

Array
(
    [iso.3.6.1.2.1.2.3.4.5.0] => Gauge32: 6
)
Array
(
    [FOO-BAR-MIB::someTable.0] => Gauge32: 6
)


Return all values that are enums with their enum value instead of the raw integer

  • « snmp_read_mib
  • snmp_set_oid_numeric_print »
  • PHP Manual
  • Funções SNMP
  • Return all values that are enums with their enum value instead of the raw integer

snmp_set_enum_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer

Descrição

snmp_set_enum_print(bool $enable): true

This function toggles if snmpwalk/snmpget etc. should automatically lookup enum values in the MIB and return them together with their human readable string.

Parâmetros

enable

As the value is interpreted as boolean by the Net-SNMP library, it can only be "0" or "1".

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Using snmp_set_enum_print()

<?php
snmp_set_enum_print(0);
echo snmpget('localhost', 'public', 'IF-MIB::ifOperStatus.3') . "\n";
snmp_set_enum_print(1);
echo snmpget('localhost', 'public', 'IF-MIB::ifOperStatus.3') . "\n";
?>

The above would return

INTEGER: up(1)
 INTEGER: 1


Sinônimo de snmp_set_oid_output_format

  • « snmp_set_enum_print
  • snmp_set_oid_output_format »
  • PHP Manual
  • Funções SNMP
  • Sinônimo de snmp_set_oid_output_format

snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

snmp_set_oid_numeric_print — Sinônimo de snmp_set_oid_output_format()

Descrição

Esta função é um apelido para: snmp_set_oid_output_format().

Veja Também

  • snmp_set_oid_output_format() - Set the OID output format


Set the OID output format

  • « snmp_set_oid_numeric_print
  • snmp_set_quick_print »
  • PHP Manual
  • Funções SNMP
  • Set the OID output format

snmp_set_oid_output_format

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

snmp_set_oid_output_format — Set the OID output format

Descrição

snmp_set_oid_output_format(int $format): true

snmp_set_oid_output_format() sets the output format to be full or numeric.

Parâmetros

format
OID .1.3.6.1.2.1.1.3.0 representation for various format values
SNMP_OID_OUTPUT_FULL | .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NUMERIC | .1.3.6.1.2.1.1.3.0
SNMP_OID_OUTPUT_MODULE | DISMAN-EVENT-MIB::sysUpTimeInstance
SNMP_OID_OUTPUT_SUFFIX | sysUpTimeInstance
SNMP_OID_OUTPUT_UCD | system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NONE | Undefined

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Using snmprealwalk()

<?php

snmp_read_mib("/usr/share/mibs/netsnmp/NET-SNMP-TC");

// default or SNMP_OID_OUTPUT_MODULE
print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );

snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC);
print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );

snmp_set_oid_output_format(SNMP_OID_OUTPUT_FULL);
print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );
?>

The above would output:

Array
 (
    [RFC1213-MIB::sysObjectID.0] => OID: NET-SNMP-TC::linux
 )
 Array
 (
    [.1.3.6.1.2.1.1.2.0] => OID: .1.3.6.1.4.1.8072.3.2.10
 )
 Array
 (
    [.iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0] => OID: .iso.org.dod.internet.private.enterprises.netSnmp.netSnmpEnumerations.netSnmpAgentOIDs.linux
 )


Set the value of enable within the NET-SNMP library

  • « snmp_set_oid_output_format
  • snmp_set_valueretrieval »
  • PHP Manual
  • Funções SNMP
  • Set the value of enable within the NET-SNMP library

snmp_set_quick_print

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp_set_quick_print — Set the value of enable within the NET-SNMP library

Descrição

snmp_set_quick_print(bool $enable): true

Sets the value of enable within the NET-SNMP library. When this is set (1), the SNMP library will return 'quick printed' values. This means that just the value will be printed. When enable is not enabled (default) the NET-SNMP library prints extra information including the type of the value (i.e. IpAddress or OID). Additionally, if quick_print is not enabled, the library prints additional hex values for all strings of three characters or less.

By default the NET-SNMP library returns verbose values, quick_print is used to return only the value.

Currently strings are still returned with extra quotes, this will be corrected in a later release.

Parâmetros

enable

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Setting quick_print is often used when using the information returned rather than displaying it.

Exemplo #1 Using snmp_set_quick_print()

<?php
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\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\n";
?>

O exemplo acima produzirá algo semelhante a:

'Timeticks: (0) 0:00:00.00'
'0:00:00.00'

Veja Também

  • snmp_get_quick_print() - Fetches the current value of the NET-SNMP library's quick_print setting


Specify the method how the SNMP values will be returned

  • « snmp_set_quick_print
  • snmp2_get »
  • PHP Manual
  • Funções SNMP
  • Specify the method how the SNMP values will be returned

snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7, PHP 8)

snmp_set_valueretrieval — Specify the method how the SNMP values will be returned

Descrição

snmp_set_valueretrieval(int $method): true

Parâmetros

method
types
SNMP_VALUE_LIBRARY | The return values will be as returned by the Net-SNMP library.
SNMP_VALUE_PLAIN | The return values will be the plain value without the SNMP type information.
SNMP_VALUE_OBJECT | The return values will be objects with the properties value and type, where the latter is one of the SNMP_OCTET_STR, SNMP_COUNTER etc. constants. The way value is returned is based on which one of constants SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN is set.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Using snmp_set_valueretrieval()

<?php
snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);
$ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
// $ret = "STRING: lo"

snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
$ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
// $ret = "lo";

snmp_set_valueretrieval(SNMP_VALUE_OBJECT);
$ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
// stdClass Object
// (
// [type] => 4 <-- SNMP_OCTET_STR, see constants
// [value] => lo
// )

snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_PLAIN);
$ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
// stdClass Object
// (
// [type] => 4 <-- SNMP_OCTET_STR, see constants
// [value] => lo
// )

snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_LIBRARY);
$ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
// stdClass Object
// (
// [type] => 4 <-- SNMP_OCTET_STR, see constants
// [value] => STRING: lo
// )

?>

Veja Também

  • snmp_get_valueretrieval() - Return the method how the SNMP values will be returned
  • Constantes pré-definidas


Fetch an SNMP object

  • « snmp_set_valueretrieval
  • snmp2_getnext »
  • PHP Manual
  • Funções SNMP
  • Fetch an SNMP object

snmp2_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

snmp2_get — Fetch an SNMP object

Descrição

snmp2_get(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

The snmp2_get() function is used to read the value of an SNMP object specified by the object_id.

Parâmetros

hostname

The SNMP agent.

community

The read community.

object_id

The SNMP object.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns SNMP object value on success or false on error.

Exemplos

Exemplo #1 Using snmp2_get()

<?php
$syscontact = snmp2_get("127.0.0.1", "public", "system.SysContact.0");
?>

Veja Também

  • snmp2_set() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmp2_get
  • snmp2_real_walk »
  • PHP Manual
  • Funções SNMP
  • Fetch the SNMP object which follows the given object id

snmp2_getnext

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_getnext — Fetch the SNMP object which follows the given object id

Descrição

snmp2_getnext(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

The snmp2_get_next() function is used to read the value of the SNMP object that follows the specified object_id.

Parâmetros

hostname

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns SNMP object value on success or false on error. In case of an error, an E_WARNING message is shown.

Exemplos

Exemplo #1 Using snmp2_get_next()

<?php
$nameOfSecondInterface = snmp2_get_next('localhost', 'public', 'IF-MIB::ifName.1');
?>

Veja Também

  • snmp2_get() - Fetch an SNMP object
  • snmp2_walk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmp2_getnext
  • snmp2_set »
  • PHP Manual
  • Funções SNMP
  • Return all objects including their respective object ID within the specified one

snmp2_real_walk

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_real_walk — Return all objects including their respective object ID within the specified one

Descrição

snmp2_real_walk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

The snmp2_real_walk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Parâmetros

hostname

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns an associative array of the SNMP object ids and their values on success or false on error. In case of an error, an E_WARNING message is shown.

Exemplos

Exemplo #1 Using snmp2_real_walk()

<?php
print_r(snmp2_real_walk("localhost", "public", "IF-MIB::ifName"));
?>

The above will output something like:

Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Veja Também

  • snmp2_walk() - Fetch all the SNMP objects from an agent


Set the value of an SNMP object

  • « snmp2_real_walk
  • snmp2_walk »
  • PHP Manual
  • Funções SNMP
  • Set the value of an SNMP object

snmp2_set

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_set — Set the value of an SNMP object

Descrição

snmp2_set(
string $hostname,
string $community,
array|string $object_id,
array|string $type,
array|string $value,
int $timeout = -1,
int $retries = -1
): bool

snmp2_set() is used to set the value of an SNMP object specified by the object_id.

Parâmetros

hostname

The hostname of the SNMP agent (server).

community

The write community.

object_id

The SNMP object id.

type

O MIB define o tipo de cada ID de objeto. Deve ser especificado como um único caractere da lista abaixo.

Tipos
= O tipo é retirado do MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Se OPAQUE_SPECIAL_TYPES foi definida ao compilar a biblioteca SNMP, os seguintes tipos também são válidos:

Tipos
U | unsigned int64
I | signed int64
F | float
D | double

A maioria destes tipos usará o tipo ASN.1 correspondente óbvio. 's', 'x', 'd' e 'b' são todas maneiras diferentes de especificar um valor OCTET STRING e o tipo sem sinal 'u' também é usado para lidar com valores Gauge32.

Se os arquivos MIB forem carregados na árvore MIB com "snmp_read_mib" ou ao especificar isso na configuração da libsnmp, '=' pode ser usado como o parâmetro type para todos os IDs de objeto, pois o tipo pode ser lido automaticamente a partir do MIB.

Note que existem duas maneiras de definir uma variável do tipo BITS como, por exemplo, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Usando o tipo "b" e uma lista de números binários. Este método não é recomendado, pois a consulta GET para o mesmo OID retornaria, por exemplo, 0xF8.
  • Usando o tipo "x" e um número hexadecimal, mas sem (!) o prefixo "0x" comum.

Consulte a seção de exemplos para obter mais detalhes.

value

The new value.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Exemplos

Exemplo #1 Using snmp2_set()

<?php
snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Exemplo #2 Using snmp2_set() for setting BITS SNMP object id

<?php
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Veja Também

  • snmp2_get() - Fetch an SNMP object


Fetch all the SNMP objects from an agent

  • « snmp2_set
  • snmp3_get »
  • PHP Manual
  • Funções SNMP
  • Fetch all the SNMP objects from an agent

snmp2_walk

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_walk — Fetch all the SNMP objects from an agent

Descrição

snmp2_walk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

snmp2_walk() function is used to read all the values from an SNMP agent specified by the hostname.

Parâmetros

hostname

The SNMP agent (server).

community

The read community.

object_id

If null, object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array.

If object_id is specified, all the SNMP objects below that object_id are returned.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns an array of SNMP object values starting from the object_id as root or false on error.

Exemplos

Exemplo #1 snmp2_walk() Example

<?php
$a = snmp2_walk("127.0.0.1", "public", "");

foreach ($a as $val) {
echo "$val\n";
}

?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

Veja Também

  • snmp2_real_walk() - Return all objects including their respective object ID within the specified one


Fetch an SNMP object

  • « snmp2_walk
  • snmp3_getnext »
  • PHP Manual
  • Funções SNMP
  • Fetch an SNMP object

snmp3_get

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_get — Fetch an SNMP object

Descrição

snmp3_get(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

The snmp3_get() function is used to read the value of an SNMP object specified by the object_id.

Parâmetros

hostname

The hostname of the SNMP agent (server).

security_name

the security name, usually some kind of username

security_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol ("MD5", "SHA", "SHA256", or "SHA512")

auth_passphrase

the authentication pass phrase

privacy_protocol

the privacy protocol (DES or AES)

privacy_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns SNMP object value on success or false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | The auth_protocol now accepts "SHA256" and "SHA512" when supported by libnetsnmp.

Exemplos

Exemplo #1 Using snmp3_get()

<?php
$nameOfSecondInterface = snmp3_get('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.2');
?>

Veja Também

  • snmp3_set() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmp3_get
  • snmp3_real_walk »
  • PHP Manual
  • Funções SNMP
  • Fetch the SNMP object which follows the given object id

snmp3_getnext

(PHP 5, PHP 7, PHP 8)

snmp3_getnext — Fetch the SNMP object which follows the given object id

Descrição

snmp3_getnext(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

The snmp3_getnext() function is used to read the value of the SNMP object that follows the specified object_id.

Parâmetros

hostname

The hostname of the SNMP agent (server).

security_name

the security name, usually some kind of username

security_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol ("MD5", "SHA", "SHA256", or "SHA512")

auth_passphrase

the authentication pass phrase

privacy_protocol

the privacy protocol (DES or AES)

privacy_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns SNMP object value on success or false on error. In case of an error, an E_WARNING message is shown.

Registro de Alterações

Versão | Descrição
8.1.0 | The auth_protocol now accepts "SHA256" and "SHA512" when supported by libnetsnmp.

Exemplos

Exemplo #1 Using snmp3_getnext()

<?php
$nameOfSecondInterface = snmp3_getnext('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.1');
?>

Veja Também

  • snmp3_get() - Fetch an SNMP object
  • snmp3_walk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmp3_getnext
  • snmp3_set »
  • PHP Manual
  • Funções SNMP
  • Return all objects including their respective object ID within the specified one

snmp3_real_walk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_real_walk — Return all objects including their respective object ID within the specified one

Descrição

snmp3_real_walk(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

The snmp3_real_walk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Parâmetros

hostname

The hostname of the SNMP agent (server).

security_name

the security name, usually some kind of username

security_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

privacy_protocol

the authentication protocol ("MD5", "SHA", "SHA256", or "SHA512")

privacy_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns an associative array of the SNMP object ids and their values on success or false on error. In case of an error, an E_WARNING message is shown.

Registro de Alterações

Versão | Descrição
8.1.0 | The auth_protocol now accepts "SHA256" and "SHA512" when supported by libnetsnmp.

Exemplos

Exemplo #1 Using snmp3_real_walk()

<?php
var_export(snmp3_real_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName'));
?>

The above will output something like:

array (
  'IF-MIB::ifName.1' => 'STRING: lo',
  'IF-MIB::ifName.2' => 'STRING: eth0',
  'IF-MIB::ifName.3' => 'STRING: eth2',
  'IF-MIB::ifName.4' => 'STRING: sit0',
  'IF-MIB::ifName.5' => 'STRING: sixxs',
)

Veja Também

  • snmpwalk() - Fetch all the SNMP objects from an agent


Set the value of an SNMP object

  • « snmp3_real_walk
  • snmp3_walk »
  • PHP Manual
  • Funções SNMP
  • Set the value of an SNMP object

snmp3_set

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_set — Set the value of an SNMP object

Descrição

snmp3_set(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
array|string $type,
array|string $value,
int $timeout = -1,
int $retries = -1
): bool

snmp3_set() is used to set the value of an SNMP object specified by the object_id.

Even if the security level does not use an auth or priv protocol/password valid values have to be specified.

Parâmetros

hostname

The hostname of the SNMP agent (server).

security_name

the security name, usually some kind of username

security_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

privacy_protocol

the privacy protocol (DES or AES)

privacy_passphrase

the privacy pass phrase

object_id

The SNMP object id.

type

O MIB define o tipo de cada ID de objeto. Deve ser especificado como um único caractere da lista abaixo.

Tipos
= O tipo é retirado do MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Se OPAQUE_SPECIAL_TYPES foi definida ao compilar a biblioteca SNMP, os seguintes tipos também são válidos:

Tipos
U | unsigned int64
I | signed int64
F | float
D | double

A maioria destes tipos usará o tipo ASN.1 correspondente óbvio. 's', 'x', 'd' e 'b' são todas maneiras diferentes de especificar um valor OCTET STRING e o tipo sem sinal 'u' também é usado para lidar com valores Gauge32.

Se os arquivos MIB forem carregados na árvore MIB com "snmp_read_mib" ou ao especificar isso na configuração da libsnmp, '=' pode ser usado como o parâmetro type para todos os IDs de objeto, pois o tipo pode ser lido automaticamente a partir do MIB.

Note que existem duas maneiras de definir uma variável do tipo BITS como, por exemplo, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Usando o tipo "b" e uma lista de números binários. Este método não é recomendado, pois a consulta GET para o mesmo OID retornaria, por exemplo, 0xF8.
  • Usando o tipo "x" e um número hexadecimal, mas sem (!) o prefixo "0x" comum.

Consulte a seção de exemplos para obter mais detalhes.

value

The new value

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Exemplos

Exemplo #1 Using snmp3_set()

<?php
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>

Exemplo #2 Using snmp3_set() for setting BITS SNMP object id

<?php
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>


Fetch all the SNMP objects from an agent

  • « snmp3_set
  • snmpget »
  • PHP Manual
  • Funções SNMP
  • Fetch all the SNMP objects from an agent

snmp3_walk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_walk — Fetch all the SNMP objects from an agent

Descrição

snmp3_walk(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

snmp3_walk() function is used to read all the values from an SNMP agent specified by the hostname.

Even if the security level does not use an auth or priv protocol/password valid values have to be specified.

Parâmetros

hostname

The hostname of the SNMP agent (server).

security_name

the security name, usually some kind of username

security_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol ("MD5", "SHA", "SHA256", or "SHA512")

auth_passphrase

the authentication pass phrase

privacy_protocol

the privacy protocol (DES or AES)

privacy_passphrase

the privacy pass phrase

object_id

If null, object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array.

If object_id is specified, all the SNMP objects below that object_id are returned.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns an array of SNMP object values starting from the object_id as root or false on error.

Registro de Alterações

Versão | Descrição
8.1.0 | The auth_protocol now accepts "SHA256" and "SHA512" when supported by libnetsnmp.

Exemplos

Exemplo #1 snmp3_walk() Example

<?php
$ret = snmp3_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName');
var_export($ret);
?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost:

array (
  0 => 'STRING: lo',
  1 => 'STRING: eth0',
  2 => 'STRING: eth2',
  3 => 'STRING: sit0',
  4 => 'STRING: sixxs',
)

Veja Também

  • snmp3_real_walk() - Return all objects including their respective object ID within the specified one


Fetch an SNMP object

  • « snmp3_walk
  • snmpgetnext »
  • PHP Manual
  • Funções SNMP
  • Fetch an SNMP object

snmpget

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpget — Fetch an SNMP object

Descrição

snmpget(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

The snmpget() function is used to read the value of an SNMP object specified by the object_id.

Parâmetros

hostname

The SNMP agent.

community

The read community.

object_id

The SNMP object.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns SNMP object value on success or false on error.

Exemplos

Exemplo #1 Using snmpget()

<?php
$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");
?>

Veja Também

  • snmpset() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmpget
  • snmprealwalk »
  • PHP Manual
  • Funções SNMP
  • Fetch the SNMP object which follows the given object id

snmpgetnext

(PHP 5, PHP 7, PHP 8)

snmpgetnext — Fetch the SNMP object which follows the given object id

Descrição

snmpgetnext(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

The snmpgetnext() function is used to read the value of the SNMP object that follows the specified object_id.

Parâmetros

hostname

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns SNMP object value on success or false on error. In case of an error, an E_WARNING message is shown.

Exemplos

Exemplo #1 Using snmpgetnext()

<?php
$nameOfSecondInterface = snmpgetnetxt('localhost', 'public', 'IF-MIB::ifName.1');
?>

Veja Também

  • snmpget() - Fetch an SNMP object
  • snmpwalk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmpgetnext
  • snmpset »
  • PHP Manual
  • Funções SNMP
  • Return all objects including their respective object ID within the specified one

snmprealwalk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmprealwalk — Return all objects including their respective object ID within the specified one

Descrição

snmprealwalk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

The snmprealwalk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Parâmetros

hostname

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns an associative array of the SNMP object ids and their values on success or false on error. In case of an error, an E_WARNING message is shown.

Exemplos

Exemplo #1 Using snmprealwalk()

<?php
print_r(snmprealwalk("localhost", "public", "IF-MIB::ifName"));
?>

The above will output something like:

Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Veja Também

  • snmpwalk() - Fetch all the SNMP objects from an agent


Set the value of an SNMP object

  • « snmprealwalk
  • snmpwalk »
  • PHP Manual
  • Funções SNMP
  • Set the value of an SNMP object

snmpset

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpset — Set the value of an SNMP object

Descrição

snmpset(
string $hostname,
string $community,
array|string $object_id,
array|string $type,
array|string $value,
int $timeout = -1,
int $retries = -1
): bool

snmpset() is used to set the value of an SNMP object specified by the object_id.

Parâmetros

hostname

The hostname of the SNMP agent (server).

community

The write community.

object_id

The SNMP object id.

type

O MIB define o tipo de cada ID de objeto. Deve ser especificado como um único caractere da lista abaixo.

Tipos
= O tipo é retirado do MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Se OPAQUE_SPECIAL_TYPES foi definida ao compilar a biblioteca SNMP, os seguintes tipos também são válidos:

Tipos
U | unsigned int64
I | signed int64
F | float
D | double

A maioria destes tipos usará o tipo ASN.1 correspondente óbvio. 's', 'x', 'd' e 'b' são todas maneiras diferentes de especificar um valor OCTET STRING e o tipo sem sinal 'u' também é usado para lidar com valores Gauge32.

Se os arquivos MIB forem carregados na árvore MIB com "snmp_read_mib" ou ao especificar isso na configuração da libsnmp, '=' pode ser usado como o parâmetro type para todos os IDs de objeto, pois o tipo pode ser lido automaticamente a partir do MIB.

Note que existem duas maneiras de definir uma variável do tipo BITS como, por exemplo, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Usando o tipo "b" e uma lista de números binários. Este método não é recomendado, pois a consulta GET para o mesmo OID retornaria, por exemplo, 0xF8.
  • Usando o tipo "x" e um número hexadecimal, mas sem (!) o prefixo "0x" comum.

Consulte a seção de exemplos para obter mais detalhes.

value

The new value.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Exemplos

Exemplo #1 Using snmpset()

<?php
snmpset("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Exemplo #2 Using snmpset() for setting BITS SNMP object id

<?php
snmpset("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
snmpset("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Veja Também

  • snmpget() - Fetch an SNMP object


Fetch all the SNMP objects from an agent

  • « snmpset
  • snmpwalkoid »
  • PHP Manual
  • Funções SNMP
  • Fetch all the SNMP objects from an agent

snmpwalk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpwalk — Fetch all the SNMP objects from an agent

Descrição

snmpwalk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

snmpwalk() function is used to read all the values from an SNMP agent specified by the hostname.

Parâmetros

hostname

The SNMP agent (server).

community

The read community.

object_id

If null, object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array.

If object_id is specified, all the SNMP objects below that object_id are returned.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns an array of SNMP object values starting from the object_id as root or false on error.

Exemplos

Exemplo #1 snmpwalk() Example

<?php
$a = snmpwalk("127.0.0.1", "public", "");

foreach ($a as $val) {
echo "$val\n";
}

?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

Veja Também

  • snmprealwalk() - Return all objects including their respective object ID within the specified one


Query for a tree of information about a network entity

  • « snmpwalk
  • SNMP »
  • PHP Manual
  • Funções SNMP
  • Query for a tree of information about a network entity

snmpwalkoid

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpwalkoid — Query for a tree of information about a network entity

Descrição

snmpwalkoid(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

snmpwalkoid() function is used to read all object ids and their respective values from an SNMP agent specified by hostname.

The existence of snmpwalkoid() and snmpwalk() has historical reasons. Both functions are provided for backward compatibility. Use snmprealwalk() instead.

Parâmetros

hostname

The SNMP agent.

community

The read community.

object_id

If null, object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array.

If object_id is specified, all the SNMP objects below that object_id are returned.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Valor Retornado

Returns an associative array with object ids and their respective object value starting from the object_id as root or false on error.

Exemplos

Exemplo #1 snmpwalkoid() Example

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
for (reset($a); $i = key($a); next($a)) {
echo "$i: $a[$i]<br />\n";
}
?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

Veja Também

  • snmpwalk() - Fetch all the SNMP objects from an agent


The SNMP class

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Introdução

Represents SNMP session.

Resumo da classe

class SNMP {
/* Constantes */
public const int VERSION_1;
public const int VERSION_2c;
public const int VERSION_2C;
public const int VERSION_3;
public const int ERRNO_NOERROR;
public const int ERRNO_ANY;
public const int ERRNO_GENERIC;
public const int ERRNO_TIMEOUT;
public const int ERRNO_ERROR_IN_REPLY;
public const int ERRNO_OID_NOT_INCREASING;
public const int ERRNO_OID_PARSING_ERROR;
public const int ERRNO_MULTIPLE_SET_QUERIES;
/* Propriedades */
public readonly array $info;
public ?int $max_oids;
public int $valueretrieval;
public bool $quick_print;
public bool $enum_print;
public int $oid_output_format;
public bool $oid_increasing_check;
public int $exceptions_enabled;
/* Métodos */
public __construct(
int $version,
string $hostname,
string $community,
int $timeout = -1,
int $retries = -1
)
public close(): bool
public get(array|string $objectId, bool $preserveKeys = false): mixed
public getErrno(): int
public getError(): string
public getnext(array|string $objectId): mixed
public set(array|string $objectId, array|string $type, array|string $value): bool
public setSecurity(
string $securityLevel,
string $authProtocol = "",
string $authPassphrase = "",
string $privacyProtocol = "",
string $privacyPassphrase = "",
string $contextName = "",
string $contextEngineId = ""
): bool
public walk(
array|string $objectId,
bool $suffixAsKey = false,
int $maxRepetitions = -1,
int $nonRepeaters = -1
): array|false
}

Propriedades

max_oids

Maximum OID per GET/SET/GETBULK request

valueretrieval

Controls the method how the SNMP values will be returned

SNMP_VALUE_LIBRARY | The return values will be as returned by the Net-SNMP library.
SNMP_VALUE_PLAIN | The return values will be the plain value without the SNMP type information.
SNMP_VALUE_OBJECT | The return values will be objects with the properties "value" and "type", where the latter is one of the SNMP_OCTET_STR, SNMP_COUNTER etc. constants. The way "value" is returned is based on which one of SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN is set
quick_print

Value of quick_print within the NET-SNMP library

Sets the value of quick_print within the NET-SNMP library. When this is set (1), the SNMP library will return 'quick printed' values. This means that just the value will be printed. When quick_print is not enabled (default) the NET-SNMP library prints extra information including the type of the value (i.e. IpAddress or OID). Additionally, if quick_print is not enabled, the library prints additional hex values for all strings of three characters or less.

enum_print

Controls the way enum values are printed

Parameter toggles if walk/get etc. should automatically lookup enum values in the MIB and return them together with their human readable string.

oid_output_format

Controls OID output format

OID .1.3.6.1.2.1.1.3.0 representation for various oid_output_format values
SNMP_OID_OUTPUT_FULL | .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NUMERIC | .1.3.6.1.2.1.1.3.0
SNMP_OID_OUTPUT_MODULE | DISMAN-EVENT-MIB::sysUpTimeInstance
SNMP_OID_OUTPUT_SUFFIX | sysUpTimeInstance
SNMP_OID_OUTPUT_UCD | system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NONE | Undefined
oid_increasing_check

Controls disabling check for increasing OID while walking OID tree

Some SNMP agents are known for returning OIDs out of order but can complete the walk anyway. Other agents return OIDs that are out of order and can cause SNMP::walk() to loop indefinitely until memory limit will be reached. PHP SNMP library by default performs OID increasing check and stops walking on OID tree when it detects possible loop with issuing warning about non-increasing OID faced. Set oid_increasing_check to false to disable this check.

exceptions_enabled

Controls which failures will raise SNMPException instead of warning. Use bitwise OR'ed SNMP::ERRNO_* constants. By default all SNMP exceptions are disabled.

info

Read-only property with remote agent configuration: hostname, port, default timeout, default retries count

Constantes pré-definidas

SNMP Error Types

SNMP::ERRNO_NOERROR

No SNMP-specific error occurred.

SNMP::ERRNO_GENERIC

A generic SNMP error occurred.

SNMP::ERRNO_TIMEOUT

Request to SNMP agent timed out.

SNMP::ERRNO_ERROR_IN_REPLY

SNMP agent returned an error in reply.

SNMP::ERRNO_OID_NOT_INCREASING

SNMP agent faced OID cycling reporning non-increasing OID while executing (BULK)WALK command. This indicates bogus remote SNMP agent.

SNMP::ERRNO_OID_PARSING_ERROR

Library failed while parsing OID (and/or type for SET command). No queries has been made.

SNMP::ERRNO_MULTIPLE_SET_QUERIES

Library will use multiple queries for SET operation requested. That means that operation will be performed in a non-transaction manner and second or subsequent chunks may fail if a type or value failure will be faced.

SNMP::ERRNO_ANY

All SNMP::ERRNO_* codes bitwise OR'ed.

SNMP Protocol Versions

SNMP::VERSION_1

SNMP::VERSION_2C, SNMP::VERSION_2c

SNMP::VERSION_3

Índice

  • SNMP::close — Close SNMP session
  • SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent
  • SNMP::get — Fetch an SNMP object
  • SNMP::getErrno — Get last error code
  • SNMP::getError — Get last error message
  • SNMP::getnext — Fetch an SNMP object which follows the given object id
  • SNMP::set — Set the value of an SNMP object
  • SNMP::setSecurity — Configures security-related SNMPv3 session parameters
  • SNMP::walk — Fetch SNMP object subtree


Close SNMP session

  • « SNMP
  • SNMP::__construct »
  • PHP Manual
  • SNMP
  • Close SNMP session

SNMP::close

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::close — Close SNMP session

Descrição

public SNMP::close(): bool

Frees previously allocated SNMP session object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SNMP::close() example

<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
# ...
# get, walk, etc goes here
# ...
$session->close();
?>

Veja Também

  • SNMP::__construct() - Creates SNMP instance representing session to remote SNMP agent


Creates SNMP instance representing session to remote SNMP agent

  • « SNMP::close
  • SNMP::get »
  • PHP Manual
  • SNMP
  • Creates SNMP instance representing session to remote SNMP agent

SNMP::__construct

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent

Descrição

public SNMP::__construct(
int $version,
string $hostname,
string $community,
int $timeout = -1,
int $retries = -1
)

The function description goes here.

Parâmetros

version

SNMP protocol version:
SNMP::VERSION_1,
SNMP::VERSION_2C,
SNMP::VERSION_3.

hostname

The SNMP agent. hostname may be suffixed with optional SNMP agent port after colon. IPv6 addresses must be enclosed in square brackets if used with port. If FQDN is used for hostname it will be resolved by php-snmp library, not by Net-SNMP engine. Usage of IPv6 addresses when specifying FQDN may be forced by enclosing FQDN into square brackets. Here it is some examples:

IPv4 with default port | 127.0.0.1
IPv6 with default port | ::1 or [::1]
IPv4 with specific port | 127.0.0.1:1161
IPv6 with specific port | [::1]:1161
FQDN with default port | host.domain
FQDN with specific port | host.domain:1161
FQDN with default port, force usage of IPv6 address | [host.domain]
FQDN with specific port, force usage of IPv6 address | [host.domain]:1161

community

The purpuse of community is SNMP version specific:

SNMP::VERSION_1 | SNMP community
SNMP::VERSION_2C | SNMP community
SNMP::VERSION_3 | SNMPv3 securityName
timeout

The number of microseconds until the first timeout.

retries

The number of retries in case timeout occurs.

Erros/Exceções

SNMP::__construct() throws an exception when parameters count or types are wrong or unknown SNMP protocol version specified.

Exemplos

Exemplo #1 Fetching sysLocation

<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$sysdescr = $session->get("sysDescr.0");
echo "$sysdescr\n";
?>

O exemplo acima produzirá algo semelhante a:

STRING: Test server

Veja Também

  • SNMP::close() - Close SNMP session


Fetch an SNMP object

  • « SNMP::__construct
  • SNMP::getErrno »
  • PHP Manual
  • SNMP
  • Fetch an SNMP object

SNMP::get

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::get — Fetch an SNMP object

Descrição

public SNMP::get(array|string $objectId, bool $preserveKeys = false): mixed

Fetch an SNMP object specified in objectId using GET query.

Parâmetros

If objectId is a string, then SNMP::get() will return SNMP object as string. If objectId is a array, all requested SNMP objects will be returned as associative array of the SNMP object ids and their values.

objectId

The SNMP object (OID) or objects

preserveKeys

When objectId is a array and preserveKeys set to true keys in results will be taken exactly as in objectId, otherwise SNMP::oid_output_format property is used to determinate the form of keys.

Valor Retornado

Returns SNMP objects requested as string or array depending on objectId type or false on error.

Erros/Exceções

Esse método não lança nenhuma exceção por padrão. Para habilitar o lançamento de exceções SNMPException quando ocorrer algum dos erros da biblioteca, o parâmetro exceptions_enabled da classe SNMP deve ser definido com um valor correspondente. Consulte a explicação sobre SNMP::$exceptions_enabled para mais detalhes.

Exemplos

Exemplo #1 Single SNMP object

Single SNMP object may be requested in two ways: as string resulting string return value or as single-element array with associative array as output.

<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$sysdescr = $session->get("sysDescr.0");
echo "$sysdescr\n";
$sysdescr = $session->get(array("sysDescr.0"));
print_r($sysdescr);
?>

O exemplo acima produzirá algo semelhante a:

STRING: Test server
Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
)

Exemplo #2 Multiple SNMP objects

$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$results = $session->get(array("sysDescr.0", "sysName.0"));
print_r($results);
$session->close();

O exemplo acima produzirá algo semelhante a:

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysName.0] => STRING: myhost.nodomain
)

Veja Também

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


Get last error code

  • « SNMP::get
  • SNMP::getError »
  • PHP Manual
  • SNMP
  • Get last error code

SNMP::getErrno

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::getErrno — Get last error code

Descrição

public SNMP::getErrno(): int

Returns error code from last SNMP request.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns one of SNMP error code values described in constants chapter.

Exemplos

Exemplo #1 SNMP::getErrno() example

<?php
$session = new SNMP(SNMP::VERSION_2c, '127.0.0.1', 'boguscommunity');
var_dump(@$session->get('.1.3.6.1.2.1.1.1.0'));
var_dump($session->getErrno() == SNMP::ERRNO_TIMEOUT);
?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • SNMP::getError() - Get last error message


Get last error message

  • « SNMP::getErrno
  • SNMP::getnext »
  • PHP Manual
  • SNMP
  • Get last error message

SNMP::getError

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::getError — Get last error message

Descrição

public SNMP::getError(): string

Returns string with error from last SNMP request.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

String describing error from last SNMP request.

Exemplos

Exemplo #1 SNMP::getError() example

<?php
$session = new SNMP(SNMP::VERSION_2c, '127.0.0.1', 'boguscommunity');
var_dump(@$session->get('.1.3.6.1.2.1.1.1.0'));
var_dump($session->getError());
?>

O exemplo acima produzirá:

bool(false)
string(26) "No response from 127.0.0.1"

Veja Também

  • SNMP::getErrno() - Get last error code


Fetch an SNMP object which follows the given object id

  • « SNMP::getError
  • SNMP::set »
  • PHP Manual
  • SNMP
  • Fetch an SNMP object which follows the given object id

SNMP::getnext

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::getnext — Fetch an SNMP object which follows the given object id

Descrição

public SNMP::getnext(array|string $objectId): mixed

Fetch an SNMP object that follows specified objectId.

Parâmetros

If objectId is a string, then SNMP::getnext() will return SNMP object as string. If objectId is a array, all requested SNMP objects will be returned as associative array of the SNMP object ids and their values.

objectId

The SNMP object (OID) or objects

Valor Retornado

Returns SNMP objects requested as string or array depending on objectId type or false on error.

Erros/Exceções

Esse método não lança nenhuma exceção por padrão. Para habilitar o lançamento de exceções SNMPException quando ocorrer algum dos erros da biblioteca, o parâmetro exceptions_enabled da classe SNMP deve ser definido com um valor correspondente. Consulte a explicação sobre SNMP::$exceptions_enabled para mais detalhes.

Exemplos

Exemplo #1 Single SNMP object

Single SNMP object may be requested in two ways: as string resulting string return value or as single-element array with associative array as output.

<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$nsysdescr = $session->getnext("sysDescr.0");
echo "$nsysdescr\n";
$nsysdescr = $session->getnext(array("sysDescr.0"));
print_r($nsysdescr);
?>

O exemplo acima produzirá algo semelhante a:

OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
Array
(
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
)

Exemplo #2 Miltiple SNMP objects

<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$results = $session->getnext(array("sysDescr.0", "sysName.0"));
print_r($results);
$session->close();
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [SNMPv2-MIB::sysLocation.0] => STRING: Nowhere
)

Veja Também

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


Set the value of an SNMP object

  • « SNMP::getnext
  • SNMP::setSecurity »
  • PHP Manual
  • SNMP
  • Set the value of an SNMP object

SNMP::set

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::set — Set the value of an SNMP object

Descrição

public SNMP::set(array|string $objectId, array|string $type, array|string $value): bool

Requests remote SNMP agent setting the value of one or more SNMP objects specified by the objectId.

Parâmetros

If objectId is string, both type and value must be string too. If objectId is array value must be equal-sized array containing corresponding values, type may be either string (it's value will be used for all objectId-value pairs) or equal-sized array with per-OID value. When any other parameters' combinations are used, a number of E_WARNING messages may be shown with detailed description.

objectId

The SNMP object id

When count of OIDs in object_id array is greater than max_oids object property set method will have to use multiple queries to perform requested value updates. In this case type and value checks are made per-chunk so second or subsequent requests may fail due to wrong type or value for OID requested. To mark this a warning is raised when count of OIDs in object_id array is greater than max_oids.

type

O MIB define o tipo de cada ID de objeto. Deve ser especificado como um único caractere da lista abaixo.

Tipos
= O tipo é retirado do MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Se OPAQUE_SPECIAL_TYPES foi definida ao compilar a biblioteca SNMP, os seguintes tipos também são válidos:

Tipos
U | unsigned int64
I | signed int64
F | float
D | double

A maioria destes tipos usará o tipo ASN.1 correspondente óbvio. 's', 'x', 'd' e 'b' são todas maneiras diferentes de especificar um valor OCTET STRING e o tipo sem sinal 'u' também é usado para lidar com valores Gauge32.

Se os arquivos MIB forem carregados na árvore MIB com "snmp_read_mib" ou ao especificar isso na configuração da libsnmp, '=' pode ser usado como o parâmetro type para todos os IDs de objeto, pois o tipo pode ser lido automaticamente a partir do MIB.

Note que existem duas maneiras de definir uma variável do tipo BITS como, por exemplo, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Usando o tipo "b" e uma lista de números binários. Este método não é recomendado, pois a consulta GET para o mesmo OID retornaria, por exemplo, 0xF8.
  • Usando o tipo "x" e um número hexadecimal, mas sem (!) o prefixo "0x" comum.

Consulte a seção de exemplos para obter mais detalhes.

value

The new value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Esse método não lança nenhuma exceção por padrão. Para habilitar o lançamento de exceções SNMPException quando ocorrer algum dos erros da biblioteca, o parâmetro exceptions_enabled da classe SNMP deve ser definido com um valor correspondente. Consulte a explicação sobre SNMP::$exceptions_enabled para mais detalhes.

Exemplos

Exemplo #1 Set single SNMP object id

<?php
$session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>

Exemplo #2 Set multiple values using single SNMP::set() call

<?php
$session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), array('s', 's'), array("Nobody", "Nowhere"));
// or
$session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>

Exemplo #3 Using SNMP::set() for setting BITS SNMP object id

<?php
$session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
$session->set('FOO-MIB::bar.42', 'x', 'F0');
?>

Veja Também

  • SNMP::get() - Fetch an SNMP object


Configures security-related SNMPv3 session parameters

  • « SNMP::set
  • SNMP::walk »
  • PHP Manual
  • SNMP
  • Configures security-related SNMPv3 session parameters

SNMP::setSecurity

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::setSecurity — Configures security-related SNMPv3 session parameters

Descrição

public SNMP::setSecurity(
string $securityLevel,
string $authProtocol = "",
string $authPassphrase = "",
string $privacyProtocol = "",
string $privacyPassphrase = "",
string $contextName = "",
string $contextEngineId = ""
): bool

setSecurity configures security-related session parameters used in SNMP protocol version 3

Parâmetros

securityLevel

the security level (noAuthNoPriv|authNoPriv|authPriv)

authProtocol

the authentication protocol (MD5 or SHA)

authPassphrase

the authentication pass phrase

privacyProtocol

the privacy protocol (DES or AES)

privacyPassphrase

the privacy pass phrase

contextName

the context name

contextEngineId

the context EngineID

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SNMP::setSecurity() example

<?php
$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 'aeeeff');
?>

Veja Também

  • SNMP::__construct() - Creates SNMP instance representing session to remote SNMP agent


Fetch SNMP object subtree

  • « SNMP::setSecurity
  • SNMPException »
  • PHP Manual
  • SNMP
  • Fetch SNMP object subtree

SNMP::walk

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::walk — Fetch SNMP object subtree

Descrição

public SNMP::walk(
array|string $objectId,
bool $suffixAsKey = false,
int $maxRepetitions = -1,
int $nonRepeaters = -1
): array|false

SNMP::walk() is used to read SNMP subtree rooted at specified objectId.

Parâmetros

objectId

Root of subtree to be fetched

suffixAsKey

By default full OID notation is used for keys in output array. If set to true subtree prefix will be removed from keys leaving only suffix of object_id.

nonRepeaters

This specifies the number of supplied variables that should not be iterated over. The default is to use this value from SNMP object.

maxRepetitions

This specifies the maximum number of iterations over the repeating variables. The default is to use this value from SNMP object.

Valor Retornado

Returns an associative array of the SNMP object ids and their values on success or false on error. When a SNMP error occures SNMP::getErrno() and SNMP::getError() can be used for retrieving error number (specific to SNMP extension, see class constants) and error message respectively.

Erros/Exceções

Esse método não lança nenhuma exceção por padrão. Para habilitar o lançamento de exceções SNMPException quando ocorrer algum dos erros da biblioteca, o parâmetro exceptions_enabled da classe SNMP deve ser definido com um valor correspondente. Consulte a explicação sobre SNMP::$exceptions_enabled para mais detalhes.

Exemplos

Exemplo #1 SNMP::walk() example

<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$fulltree = $session->walk(".");
print_r($fulltree);
$session->close();
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [DISMAN-EVENT-MIB::sysUpTimeInstance] => Timeticks: (1150681750) 133 days, 4:20:17.50
    [SNMPv2-MIB::sysContact.0] => STRING: Nobody
    [SNMPv2-MIB::sysName.0] => STRING: server.localdomain
    ...
)

Exemplo #2 suffixAsKey example

suffixAsKey may be used when merging multiple SNMP subtrees into one. This example maps interface names to their type.

<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
$session->valueretrieval = SNMP_VALUE_PLAIN;
$ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);
$session->valueretrieval = SNMP_VALUE_LIBRARY;
$ifType = $session->walk(".1.3.6.1.2.1.2.2.1.3", TRUE);
print_r($ifDescr);
print_r($ifType);
$result = array();
foreach($ifDescr as $i => $n) {
$result[$n] = $ifType[$i];
}
print_r($result);
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [1] => igb0
    [2] => igb1
    [3] => ipfw0
    [4] => lo0
    [5] => lagg0
)
Array
(
    [1] => INTEGER: ieee8023adLag(161)
    [2] => INTEGER: ieee8023adLag(161)
    [3] => INTEGER: ethernetCsmacd(6)
    [4] => INTEGER: softwareLoopback(24)
    [5] => INTEGER: ethernetCsmacd(6)
)
Array
(
    [igb0] => INTEGER: ieee8023adLag(161)
    [igb1] => INTEGER: ieee8023adLag(161)
    [ipfw0] => INTEGER: ethernetCsmacd(6)
    [lo0] => INTEGER: softwareLoopback(24)
    [lagg0] => INTEGER: ethernetCsmacd(6)
)

Veja Também

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


The SNMPException class

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Introdução

Represents an error raised by SNMP. You should not throw a SNMPException from your own code. See Exceptions for more information about Exceptions in PHP.

Resumo da classe

class SNMPException extends RuntimeException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

code

SNMP library error code. Use Exception::getCode() to access it.


Sockets

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Socket Errors
  • Funções para Socket
    • socket_accept — Aceita uma conexão em um socket
    • socket_addrinfo_bind — Create and bind to a socket from a given addrinfo
    • socket_addrinfo_connect — Create and connect to a socket from a given addrinfo
    • socket_addrinfo_explain — Get information about addrinfo
    • socket_addrinfo_lookup — Get array with contents of getaddrinfo about the given hostname
    • socket_atmark — Determina se o socket está na marca fora-de-banda
    • socket_bind — Binds a name to a socket
    • socket_clear_error — Limpa o erro no socket ou o último código de erro
    • socket_close — Closes a Socket instance
    • socket_cmsg_space — Calculate message buffer size
    • 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 an array
    • socket_create — Create a socket (endpoint for communication)
    • socket_export_stream — Export a socket into a stream that encapsulates a socket
    • socket_get_option — Gets socket options for the socket
    • socket_getopt — Sinônimo de socket_get_option
    • 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_import_stream — Import a stream
    • 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_recv — Recebe dados de um socket conectado
    • socket_recvfrom — Receives data from a socket whether or not it is connection-oriented
    • socket_recvmsg — Read a message
    • 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 — Send a message
    • socket_sendto — Sends a message to a socket, whether it is connected or not
    • socket_set_block — Sets blocking mode on a socket
    • socket_set_nonblock — Sets nonblocking mode for file descriptor fd
    • socket_set_option — Sets socket options for the socket
    • socket_setopt — Sinônimo de socket_set_option
    • 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_wsaprotocol_info_export — Exports the WSAPROTOCOL_INFO Structure
    • socket_wsaprotocol_info_import — Imports a Socket from another Process
    • socket_wsaprotocol_info_release — Releases an exported WSAPROTOCOL_INFO Structure
  • Socket — The Socket class
  • AddressInfo — The AddressInfo class


Introdução

The socket extension implements a low-level interface to the socket communication functions based on the popular BSD sockets, providing the possibility to act as a socket server as well as a client.

For a more generic client-side socket interface, see
stream_socket_client(),
stream_socket_server(),
fsockopen(), and
pfsockopen().

When using these functions, 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.

Those unfamiliar with socket programming can 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. The » Unix Socket FAQ might be a good start.


Instalação

As funções de socket descritas aqui fazem parte de uma extensão do PHP que deve ser habilitada na hora de compilar adicionando a opção --enable-sockets à linha de comando configure.


Tipos de Recurso

Antes do PHP 8.0.0,
socket_accept(), socket_import_stream(),
socket_addrinfo_connect(), socket_addrinfo_bind(),
socket_create_listen(), socket_wsaprotocol_info_import() and
socket_create() recursos de Socket retornados.

Antes do PHP 8.0.0, socket_addrinfo_lookup() retornado um array de recursos AddressInfo.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

AF_UNIX (int)
AF_INET (int)
AF_INET6 (int)
Only available if compiled with IPv6 support.
AF_DIVERT (int)
Available as of PHP 8.3.0 (FreeBSD only)
SOCK_STREAM (int)
SOCK_DGRAM (int)
SOCK_RAW (int)
SOCK_SEQPACKET (int)
SOCK_RDM (int)
MSG_OOB (int)
MSG_WAITALL (int)
MSG_PEEK (int)
MSG_DONTROUTE (int)
MSG_EOR (int)
Not available on Windows platforms.
MSG_EOF (int)
Not available on Windows platforms.
MSG_ZEROCOPY (int)
Available as of PHP 8.2.0
SO_DEBUG (int)
SO_REUSEADDR (int)
SO_REUSEPORT (int)
This constant is only available on platforms that support the SO_REUSEPORT socket option: this includes Linux, macOS and *BSD, but does not include Windows.
SO_KEEPALIVE (int)
SO_DONTROUTE (int)
SO_LINGER (int)
SO_BROADCAST (int)
SO_OOBINLINE (int)
SO_SNDBUF (int)
SO_RCVBUF (int)
SO_SNDLOWAT (int)
SO_RCVLOWAT (int)
SO_SNDTIMEO (int)
SO_RCVTIMEO (int)
SO_TYPE (int)
SO_ERROR (int)
SO_ZEROCOPY (int)
Available as of PHP 8.2.0
TCP_NODELAY (int)
Used to disable Nagle TCP algorithm.
TCP_KEEPCNT (int)
Available as of PHP 8.2.0
TCP_KEEPIDLE (int)
Available as of PHP 8.2.0
TCP_KEEPINTVL (int)
Available as of PHP 8.2.0
TCP_KEEPALIVE (int)
Available as of PHP 8.2.0
TCP_NOTSENT_LOWAT (int)
Available as of PHP 8.2.0
SO_MARK (int)
Available as of PHP 8.1.0
SO_USER_COOKIE (int)
Available as of PHP 8.1.0
SO_RTABLE (int)
Available as of PHP 8.2.0
SO_ACCEPTFILTER (int)
Available as of PHP 8.1.0
SO_DONTTRUNC (int)
Available as of PHP 8.1.0
SO_WANTMORE (int)
Available as of PHP 8.1.0
SO_INCOMING_CPU (int)
Available as of PHP 8.2.0
SO_MEMINFO (int)
Available as of PHP 8.2.0
SO_BPF_EXTENSIONS (int)
Available as of PHP 8.2.0
SO_SETFIB (int)
Available as of PHP 8.2.0
SO_ATTACH_REUSEPORT_CBPF (int)
Available as of PHP 8.3.0 (Linux only)
SO_DETACH_BPF (int)
Available as of PHP 8.3.0 (Linux only)
SO_DETACH_FILTER (int)
Available as of PHP 8.3.0 (Linux only)
SO_RERROR (int)
Available as of PHP 8.3.0 (NetBSD only)
SO_ZEROIZE (int)
Available as of PHP 8.3.0 (OpenBSD only)
SO_SPLICE (int)
Available as of PHP 8.3.0 (OpenBSD only)
SO_REUSEPORT_LB (int)
Available as of PHP 8.3.0 (FreeBSD only)
SOL_FILTER (int)
Available as of PHP 8.2.0
SOL_UDPLITE (int)
Available as of PHP 8.3.0
UDPLITE_RECV_CSCOV (int)
Available as of PHP 8.3.0
UDPLITE_SEND_CSCOV (int)
Available as of PHP 8.3.0
TCP_DEFER_ACCEPT (int)
Available as of PHP 8.1.0
TCP_CONGESTION (int)
Available as of PHP 8.2.0
TCP_QUICKACK (int)
Available as of PHP 8.3.0 (Linux only)
TCP_REPAIR (int)
Available as of PHP 8.3.0 (Linux only)
IP_DONTFRAG (int)
Available as of PHP 8.3.0 (FreeBSD only)
IP_MTU_DISCOVER (int)
Available as of PHP 8.3.0 (Linux only)
IP_PMTUDISC_DO (int)
Available as of PHP 8.3.0 (Linux only)
IP_PMTUDISC_DONT (int)
Available as of PHP 8.3.0 (Linux only)
IP_PMTUDISC_WANT (int)
Available as of PHP 8.3.0 (Linux only)
IP_PMTUDISC_PROBE (int)
Available as of PHP 8.3.0 (Linux only)
IP_PMTUDISC_INTERFACE (int)
Available as of PHP 8.3.0 (Linux only)
IP_PMTUDISC_OMIT (int)
Available as of PHP 8.3.0 (Linux only)
IP_BIND_ADDRESS_NO_PORT (int)
Available as of PHP 8.3.0 (Linux only)
SOL_SOCKET (int)
PHP_NORMAL_READ (int)
PHP_BINARY_READ (int)
SOL_TCP (int)
SOL_UDP (int)

The following constants are defined under Windows and UNIX-like platforms. Each constant is only defined if their equal is available on the platform.

SOCKET_EINTR (int)
Interrupted system call.
SOCKET_EBADF (int)
Bad file descriptor number.
SOCKET_EACCES (int)
Permission denied.
SOCKET_EFAULT (int)
Bad address.
SOCKET_EINVAL (int)
Invalid argument.
SOCKET_EMFILE (int)
Too many open files.
SOCKET_ENAMETOOLONG (int)
File name too long.
SOCKET_ENOTEMPTY (int)
Directory not empty.
SOCKET_ELOOP (int)
Too many symbolic links encountered.
SOCKET_EWOULDBLOCK (int)
Operation would block.
SOCKET_EREMOTE (int)
Object is remote.
SOCKET_EUSERS (int)
Too many users.
SOCKET_ENOTSOCK (int)
Socket operation on non-socket.
SOCKET_EDESTADDRREQ (int)
Destination address required.
SOCKET_EMSGSIZE (int)
Message too long.
SOCKET_EPROTOTYPE (int)
Protocol wrong type for socket.
SOCKET_EPROTONOSUPPORT (int)
Protocol not supported.
SOCKET_ESOCKTNOSUPPORT (int)
Socket type not supported.
SOCKET_EOPNOTSUPP (int)
Operation not supported on transport endpoint.
SOCKET_EPFNOSUPPORT (int)
Protocol family not supported.
SOCKET_EAFNOSUPPORT (int)
Address family not supported by protocol.
SOCKET_EADDRNOTAVAIL (int)
Cannot assign requested address.
SOCKET_ENETDOWN (int)
Network is down.
SOCKET_ENETUNREACH (int)
Network is unreachable.
SOCKET_ENETRESET (int)
Network dropped connection because of reset.
SOCKET_ECONNABORTED (int)
Software caused connection abort.
SOCKET_ECONNRESET (int)
Connection reset by peer.
SOCKET_ENOBUFS (int)
No buffer space available.
SOCKET_EISCONN (int)
Transport endpoint is already connected.
SOCKET_ENOTCONN (int)
Transport endpoint is not connected.
SOCKET_ESHUTDOWN (int)
Cannot send after transport endpoint shutdown.
SOCKET_ETIMEDOUT (int)
Connection timed out.
SOCKET_ECONNREFUSED (int)
Connection refused.
SOCKET_EHOSTDOWN (int)
Host is down.
SOCKET_EHOSTUNREACH (int)
No route to host.
SOCKET_EALREADY (int)
Operation already in progress.
SOCKET_EINPROGRESS (int)
Operation now in progress.

The following constants are only defined under Windows.

SOCKET_ENOPROTOOPT (int)
SOCKET_EADDRINUSE (int)
SOCKET_ETOOMYREFS (int)
SOCKET_EPROCLIM (int)
SOCKET_EDUOT (int)
SOCKET_ESTALE (int)
SOCKET_EDISCON (int)
SOCKET_SYSNOTREADY (int)
SOCKET_VERNOTSUPPORTED (int)
SOCKET_NOTINITIALISED (int)
SOCKET_HOST_NOT_FOUND (int)
SOCKET_TRY_AGAIN (int)
SOCKET_NO_RECOVERY (int)
SOCKET_NO_DATA (int)
SOCKET_NO_ADDRESS (int)

The following constants are only available on UNIX-like platforms. Each constant is only defined if their equal is available on the platform.

SOCKET_EPERM (int)
Operation not permitted.
SOCKET_ENOENT (int)
No such file or directory.
SOCKET_EIO (int)
I/O error.
SOCKET_ENXIO (int)
No such device or address.
SOCKET_E2BIG (int)
Arg list too long.
SOCKET_EAGAIN (int)
Try again.
SOCKET_ENOMEM (int)
Out of memory.
SOCKET_ENOTBLK (int)
Block device required.
SOCKET_EBUSY (int)
Device or resource busy.
SOCKET_EEXIST (int)
File exists.
SOCKET_EXDEV (int)
Cross-device link.
SOCKET_ENODEV (int)
No such device.
SOCKET_ENOTDIR (int)
Not a directory.
SOCKET_EISDIR (int)
Is a directory.
SOCKET_ENFILE (int)
File table overflow.
SOCKET_ENOTTY (int)
Not a typewriter.
SOCKET_ENOSPC (int)
No space left on device.
SOCKET_ESPIPE (int)
Illegal seek.
SOCKET_EROFS (int)
Read-only file system.
SOCKET_EMLINK (int)
Too many links.
SOCKET_EPIPE (int)
Broken pipe.
SOCKET_ENOLCK (int)
No record locks available.
SOCKET_ENOSYS (int)
Function not implemented.
SOCKET_ENOMSG (int)
No message of desired type.
SOCKET_EIDRM (int)
Identifier removed.
SOCKET_ECHRNG (int)
Channel number out of range.
SOCKET_EL2NSYNC (int)
Level 2 not synchronized.
SOCKET_EL3HLT (int)
Level 3 halted.
SOCKET_EL3RST (int)
Level 3 reset.
SOCKET_ELNRNG (int)
Link number out of range.
SOCKET_EUNATCH (int)
Protocol driver not attached.
SOCKET_ENOCSI (int)
No CSI structure available.
SOCKET_EL2HLT (int)
Level 2 halted.
SOCKET_EBADE (int)
Invalid exchange.
SOCKET_EBADR (int)
Invalid request descriptor.
SOCKET_EXFULL (int)
Exchange full.
SOCKET_ENOANO (int)
No anode.
SOCKET_EBADRQC (int)
Invalid request code.
SOCKET_EBADSLT (int)
Invalid slot.
SOCKET_ENOSTR (int)
Device not a stream.
SOCKET_ENODATA (int)
No data available.
SOCKET_ETIME (int)
Timer expired.
SOCKET_ENOSR (int)
Out of streams resources.
SOCKET_ENONET (int)
Machine is not on the network.
SOCKET_ENOLINK (int)
Link has been severed.
SOCKET_EADV (int)
Advertise error.
SOCKET_ESRMNT (int)
Srmount error.
SOCKET_ECOMM (int)
Communication error on send.
SOCKET_EPROTO (int)
Protocol error.
SOCKET_EMULTIHOP (int)
Multihop attempted.
SOCKET_EBADMSG (int)
Not a data message.
SOCKET_ENOTUNIQ (int)
Name not unique on network.
SOCKET_EBADFD (int)
File descriptor in bad state.
SOCKET_EREMCHG (int)
Remote address changed.
SOCKET_ERESTART (int)
Interrupted system call should be restarted.
SOCKET_ESTRPIPE (int)
Streams pipe error.
SOCKET_EPROTOOPT (int)
Protocol not available.
SOCKET_ADDRINUSE (int)
Address already in use.
SOCKET_ETOOMANYREFS (int)
Too many references: cannot splice.
SOCKET_EISNAM (int)
Is a named type file.
SOCKET_EREMOTEIO (int)
Remote I/O error.
SOCKET_EDQUOT (int)
Quota exceeded.
SOCKET_ENOMEDIUM (int)
No medium found.
SOCKET_EMEDIUMTYPE (int)
Wrong medium type.
SCM_RIGHTS (int)
Send or receive a set of open file descriptors from another process.
SCM_CREDENTIALS (int)
SCM_CREDS (int)
Available as of PHP 8.2.0
SCM_CREDS2 (int)
Available as of PHP 8.2.0
LOCAL_CREDS (int)
Available as of PHP 8.2.0
LOCAL_CREDS_PERSISTENT (int)
Available as of PHP 8.2.0
SKF_AD_OFF (int)
Available as of PHP 8.2.0
SKF_AD_PROTOCOL (int)
Available as of PHP 8.2.0
SKF_AD_PKTTYPE (int)
Available as of PHP 8.2.0
SKF_AD_IFINDEX (int)
Available as of PHP 8.2.0
SKF_AD_NLATTR (int)
Available as of PHP 8.2.0
SKF_AD_NLATTR_NEST (int)
Available as of PHP 8.2.0
SKF_AD_MARK (int)
Available as of PHP 8.2.0
SKF_AD_QUEUE (int)
Available as of PHP 8.2.0
SKF_AD_HATYPE (int)
Available as of PHP 8.2.0
SKF_AD_RXHASH (int)
Available as of PHP 8.2.0
SKF_AD_CPU (int)
Available as of PHP 8.2.0
SKF_AD_ALU_XOR_X (int)
Available as of PHP 8.2.0
SKF_AD_VLAN_TAG (int)
Available as of PHP 8.2.0
SKF_AD_VLAN_TAG_PRESENT (int)
Available as of PHP 8.2.0
SKF_AD_PAY_OFFSET (int)
Available as of PHP 8.2.0
SKF_AD_RANDOM (int)
Available as of PHP 8.2.0
SKF_AD_VLAN_TPID (int)
Available as of PHP 8.2.0
SKF_AD_MAX (int)
Available as of PHP 8.2.0


Exemplos

Exemplo #1 Exemplo de socket: Simples servidor TCP/IP

Este exemplo mostra uma simples troca de informações do servidor. Alterar as variáveis address e port para o conjunto da sua configuração e execução. Você deve então conectar o servidor com uma linha de comando similiar a: telnet 192.168.1.53 10000 (onde o endereço e a porta partem da sua configuração). Algo que você digitar então irá sair no lado do servidor, e mostrar isso para você. Para desconectar, digite 'quit'.

#!/usr/local/bin/php -q
<?php
error_reporting(E_ALL);

/* Allow the script to hang around waiting for connections. */
set_time_limit(0);

/* Turn on implicit output flushing so we see what we're getting
* as it comes in. */
ob_implicit_flush();

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
}

if (socket_bind($sock, $address, $port) === false) {
echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
}

if (socket_listen($sock, 5) === false) {
echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
}

do {
if (($msgsock = socket_accept($sock)) === false) {
echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
break;
}
/* Send instructions. */
$msg = "\nWelcome to the PHP Test Server. \n" .
"To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
socket_write($msgsock, $msg, strlen($msg));

do {
if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
break 2;
}
if (!$buf = trim($buf)) {
continue;
}
if ($buf == 'quit') {
break;
}
if ($buf == 'shutdown') {
socket_close($msgsock);
break 2;
}
$talkback = "PHP: You said '$buf'.\n";
socket_write($msgsock, $talkback, strlen($talkback));
echo "$buf\n";
} while (true);
socket_close($msgsock);
} while (true);

socket_close($sock);
?>

Exemplo #2 Exemplo de Socket: Simples cliente TCP/IP

Este exemplo mostra um simples, one-shot cliente HTTP. Isso simplesmente conecta à uma página, envia um cabeçalho de requisição, mostra a resposta, e sai.

<?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.example.com');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "OK.\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Reading response:\n\n";
while ($out = socket_read($socket, 2048)) {
echo $out;
}

echo "Closing socket...";
socket_close($socket);
echo "OK.\n\n";
?>


Socket Errors

A extensão socket foi escrita para disponibilizar uma interface útil e poderosa para sockets BSD. Tem-se notado que as funções funcionam igualmente bem em Win32 e Unix. Quase todas as funções de sockets devem falhar sob certas condições e portanto emite uma mensagem E_WARNING descrevendo o erro. De vez em quando isso não acontece para desespero do desenvolvedor. Por exemplo a função socket_read() deve de repente emitir uma mensagem E_WARNING porque a conexão foi quebrada inesperadamente. É comum esconder as mensagens de warning com o operador @ e pegar o código de erro dentro da aplicação com a função socket_last_error(). Você deve chamar a função socket_strerror() com esse código de erro para retornar uma string descrevendo o erro. Veja sua descrição para mais informações.

Nota:

A mensagem de E_WARNING gerada pela extensão socket estão em inglês dificilmente a mensagem de erro retornada ira aparecer correto dependendo da localidade padrão (LC_MESSAGES):

Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet


Funções para Socket

Índice

  • socket_accept — Aceita uma conexão em um socket
  • socket_addrinfo_bind — Create and bind to a socket from a given addrinfo
  • socket_addrinfo_connect — Create and connect to a socket from a given addrinfo
  • socket_addrinfo_explain — Get information about addrinfo
  • socket_addrinfo_lookup — Get array with contents of getaddrinfo about the given hostname
  • socket_atmark — Determina se o socket está na marca fora-de-banda
  • socket_bind — Binds a name to a socket
  • socket_clear_error — Limpa o erro no socket ou o último código de erro
  • socket_close — Closes a Socket instance
  • socket_cmsg_space — Calculate message buffer size
  • 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 an array
  • socket_create — Create a socket (endpoint for communication)
  • socket_export_stream — Export a socket into a stream that encapsulates a socket
  • socket_get_option — Gets socket options for the socket
  • socket_getopt — Sinônimo de socket_get_option
  • 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_import_stream — Import a stream
  • 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_recv — Recebe dados de um socket conectado
  • socket_recvfrom — Receives data from a socket whether or not it is connection-oriented
  • socket_recvmsg — Read a message
  • 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 — Send a message
  • socket_sendto — Sends a message to a socket, whether it is connected or not
  • socket_set_block — Sets blocking mode on a socket
  • socket_set_nonblock — Sets nonblocking mode for file descriptor fd
  • socket_set_option — Sets socket options for the socket
  • socket_setopt — Sinônimo de socket_set_option
  • 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_wsaprotocol_info_export — Exports the WSAPROTOCOL_INFO Structure
  • socket_wsaprotocol_info_import — Imports a Socket from another Process
  • socket_wsaprotocol_info_release — Releases an exported WSAPROTOCOL_INFO Structure


Aceita uma conexão em um socket

  • « Funções para Socket
  • socket_addrinfo_bind »
  • PHP Manual
  • Funções para Socket
  • Aceita uma conexão em um socket

socket_accept

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_accept — Aceita uma conexão em um socket

Descrição

socket_accept(Socket $socket): Socket|false

Após o socket socket ter sido criado usando socket_create(), passar um nome com socket_bind(), e dizer para listar conexões com socket_listen(), essa função irá aceitar conexões vindas neste socket. Uma vez que uma conexão com sucesso é feita, uma nova instância de Socket é retornada, que pode ser usada para comunicação. Se houver múltiplas conexões na fila do socket, a primeira irá ser usada. Se não há conexões pendentes, socket_accept() irá bloquear até que uma conexão esteja presente. Se socket não for desbloqueado usando socket_set_blocking() ou socket_set_nonblock(), irá retornar false.

A instância Socket retornada por socket_accept() não deve ser usada para aceitar novas conexões. A escuta original, socket, de qualquer modo, permanecerá aberta e pode ser reutilizada.

Parâmetros

socket

Uma instância Socket criada com socket_create().

Valor Retornado

Retorna uma nova instância Socket em caso de sucesso, ou false em caso de erro. O código de erro real pode ser obtido chamando-se socket_last_error(). Este código de erro pode ser passado a socket_strerror() para obter uma explicação textual do erro.

Registro de Alterações

Versão | Descrição
8.0.0 | Em caso de sucesso, esta função agora retorna uma instância de Socket; anteriorementem um resource era retornado.

Veja Também

  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)
  • socket_bind() - Binds a name to a socket
  • socket_strerror() - Return a string describing a socket error


Create and bind to a socket from a given addrinfo

  • « socket_accept
  • socket_addrinfo_connect »
  • PHP Manual
  • Funções para Socket
  • Create and bind to a socket from a given addrinfo

socket_addrinfo_bind

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_bind — Create and bind to a socket from a given addrinfo

Descrição

socket_addrinfo_bind(AddressInfo $address): Socket|false

Create a Socket instance, and bind it to the provided AddressInfo. The return value of this function may be used with socket_listen().

Parâmetros

address

AddressInfo instance created from socket_addrinfo_lookup().

Valor Retornado

Returns a Socket instance on success or false on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.
8.0.0 | O parâmetro address agora espera uma instância de AddressInfo; anteriormente, um resource era esperado.

Veja Também

  • socket_addrinfo_connect() - Create and connect to a socket from a given addrinfo
  • socket_addrinfo_explain() - Get information about addrinfo
  • socket_addrinfo_lookup() - Get array with contents of getaddrinfo about the given hostname
  • socket_listen() - Listens for a connection on a socket


Create and connect to a socket from a given addrinfo

  • « socket_addrinfo_bind
  • socket_addrinfo_explain »
  • PHP Manual
  • Funções para Socket
  • Create and connect to a socket from a given addrinfo

socket_addrinfo_connect

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_connect — Create and connect to a socket from a given addrinfo

Descrição

socket_addrinfo_connect(AddressInfo $address): Socket|false

Create a Socket instance, and connect it to the provided AddressInfo instance. The return value of this function may be used with the rest of the socket functions.

Parâmetros

address

AddressInfo instance created from socket_addrinfo_lookup()

Valor Retornado

Returns a Socket instance on success or false on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.
8.0.0 | O parâmetro address agora espera uma instância de AddressInfo; anteriormente, um resource era esperado.

Veja Também

  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo
  • socket_addrinfo_explain() - Get information about addrinfo
  • socket_addrinfo_lookup() - Get array with contents of getaddrinfo about the given hostname


Get information about addrinfo

  • « socket_addrinfo_connect
  • socket_addrinfo_lookup »
  • PHP Manual
  • Funções para Socket
  • Get information about addrinfo

socket_addrinfo_explain

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_explain — Get information about addrinfo

Descrição

socket_addrinfo_explain(AddressInfo $address): array

socket_addrinfo_explain() exposed the underlying addrinfo structure.

Parâmetros

address

AddressInfo instance created from socket_addrinfo_lookup()

Valor Retornado

Returns an array containing the fields in the addrinfo structure.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro address agora espera uma instância de AddressInfo; anteriormente, um resource era esperado.

Veja Também

  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo
  • socket_addrinfo_connect() - Create and connect to a socket from a given addrinfo
  • socket_addrinfo_lookup() - Get array with contents of getaddrinfo about the given hostname


Get array with contents of getaddrinfo about the given hostname

  • « socket_addrinfo_explain
  • socket_atmark »
  • PHP Manual
  • Funções para Socket
  • Get array with contents of getaddrinfo about the given hostname

socket_addrinfo_lookup

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_lookup — Get array with contents of getaddrinfo about the given hostname

Descrição

socket_addrinfo_lookup(string $host, ?string $service = null, array $hints = []): array|false

Lookup different ways we can connect to host. The returned array contains a set of AddressInfo instances that we can bind to using socket_addrinfo_bind().

Parâmetros

host

Hostname to search.

service

The service to connect to. If service is a numeric string, it designates the port. Otherwise it designates a network service name, which is mapped to a port by the operating system.

hints

Hints provide criteria for selecting addresses returned. You may specify the hints as defined by getaddrinfo.

Valor Retornado

Returns an array of AddressInfo instances that can be used with the other socket_addrinfo functions. On failure, false is returned.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns a array of AddressInfo instances now; previously, an array of resources was returned.
8.0.0 | service is nullable now.

Veja Também

  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo
  • socket_addrinfo_connect() - Create and connect to a socket from a given addrinfo
  • socket_addrinfo_explain() - Get information about addrinfo


Determina se o socket está na marca fora-de-banda

  • « socket_addrinfo_lookup
  • socket_bind »
  • PHP Manual
  • Funções para Socket
  • Determina se o socket está na marca fora-de-banda

socket_atmark

(PHP 8 >= 8.3.0, PHP 8)

socket_atmark — Determina se o socket está na marca fora-de-banda

Descrição

socket_atmark(Socket $socket): bool

Determina se socket está na marca fora-de-banda.

Parâmetros

socket

Uma instância de Socket criada com socket_create().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Usando socket_atmark() para definir o endereço da fonte

<?php
// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
var_dump(socket_atmark($sock));
// Close
socket_close($sock);
?>

Veja Também

  • socket_connect() - Initiates a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)


Binds a name to a socket

  • « socket_atmark
  • socket_clear_error »
  • PHP Manual
  • Funções para Socket
  • Binds a name to a socket

socket_bind

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_bind — Binds a name to a socket

Descrição

socket_bind(Socket $socket, string $address, int $port = 0): bool

Binds the name given in address to the socket described by socket. This has to be done before a connection is established using socket_connect() or socket_listen().

Parâmetros

socket

A Socket instance created with socket_create().

address

If the socket is of the AF_INET family, the address is an IP in dotted-quad notation (e.g. 127.0.0.1).

If the socket is of the AF_UNIX family, the address is the path of a Unix-domain socket (e.g. /tmp/my.sock).

port (Optional)

The port parameter is only used when binding an AF_INET socket, and designates the port on which to listen for connections.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

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.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Using socket_bind() to set the source address

<?php
// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// An example list of IP addresses owned by the computer
$sourceips['kevin'] = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// Bind the source address
socket_bind($sock, $sourceips['madcoder']);

// Connect to destination address
socket_connect($sock, '127.0.0.1', 80);

// Write
$request = 'GET / HTTP/1.1' . "\r\n" .
'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);

// Close
socket_close($sock);

?>

Notas

Nota:

This function must be used on the socket before socket_connect().

Nota:

Windows 9x/ME compatibility note: socket_last_error() may return an invalid error code if trying to bind the socket to a wrong address that does not belong to your machine.

Veja Também

  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error


Limpa o erro no socket ou o último código de erro

  • « socket_bind
  • socket_close »
  • PHP Manual
  • Funções para Socket
  • Limpa o erro no socket ou o último código de erro

socket_clear_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

socket_clear_error — Limpa o erro no socket ou o último código de erro

Descrição

socket_clear_error(?Socket $socket = null): void

Essa função limpa o código de erro dado no socket ou o último erro de socket global se nenhum for especificado.

Essa função permite explicitamente resetar qualquer valor do código de erro do socket ou da extensão global do último código de erro. Isso deve ser útil para detectar dentro de uma parte da aplicação se um erro ocorreu ou não.

Parâmetros

socket

Uma instância de Socket criada com socket_create().

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.
8.0.0 | socket agora pode ser nulo.

Veja Também

  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error


Closes a Socket instance

  • « socket_clear_error
  • socket_cmsg_space »
  • PHP Manual
  • Funções para Socket
  • Closes a Socket instance

socket_close

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_close — Closes a Socket instance

Descrição

socket_close(Socket $socket): void

socket_close() closes the Socket instance given by socket.

Parâmetros

socket

A Socket instance created with socket_create() or socket_accept().

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Veja Também

  • socket_bind() - Binds a name to a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)
  • socket_strerror() - Return a string describing a socket error


Calculate message buffer size

  • « socket_close
  • socket_connect »
  • PHP Manual
  • Funções para Socket
  • Calculate message buffer size

socket_cmsg_space

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

socket_cmsg_space — Calculate message buffer size

Descrição

socket_cmsg_space(int $level, int $type, int $num = 0): ?int

Calculates the size of the buffer that should be allocated for receiving the ancillary data.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

level

type

Valor Retornado

Veja Também

  • socket_recvmsg() - Read a message
  • socket_sendmsg() - Send a message


Initiates a connection on a socket

  • « socket_cmsg_space
  • socket_create_listen »
  • PHP Manual
  • Funções para Socket
  • Initiates a connection on a socket

socket_connect

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_connect — Initiates a connection on a socket

Descrição

socket_connect(Socket $socket, string $address, ?int $port = null): bool

Initiate a connection to address using the Socket instance socket, which must be Socket instance created with socket_create().

Parâmetros

socket

A Socket instance created with socket_create().

address

The address parameter is either an IPv4 address in dotted-quad notation (e.g. 127.0.0.1) if socket is AF_INET, a valid IPv6 address (e.g. ::1) if IPv6 support is enabled and socket is AF_INET6 or the pathname of a Unix domain socket, if the socket family is AF_UNIX.

port

The port parameter is only used and is mandatory when connecting to an AF_INET or an AF_INET6 socket, and designates the port on the remote host to which a connection should be made.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. 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 the socket is non-blocking then this function returns false with an error Operation now in progress.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.
8.0.0 | port is nullable now.

Veja Também

  • socket_bind() - Binds a name to a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error


Opens a socket on port to accept connections

  • « socket_connect
  • socket_create_pair »
  • PHP Manual
  • Funções para Socket
  • Opens a socket on port to accept connections

socket_create_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_create_listen — Opens a socket on port to accept connections

Descrição

socket_create_listen(int $port, int $backlog = SOMAXCONN): Socket|false

socket_create_listen() creates a new Socket instance of type AF_INET listening on all local interfaces on the given port waiting for new connections.

This function is meant to ease the task of creating a new socket which only listens to accept new connections.

Parâmetros

port

The port on which to listen on all interfaces.

backlog

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.

Valor Retornado

socket_create_listen() returns a new Socket instance 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.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.

Notas

Nota:

If you want to create a socket which only listens on a certain interface you need to use socket_create(), socket_bind() and socket_listen().

Veja Também

  • socket_create() - Create a socket (endpoint for communication)
  • socket_create_pair() - Creates a pair of indistinguishable sockets and stores them in an array
  • socket_bind() - Binds a name to a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error


Creates a pair of indistinguishable sockets and stores them in an array

  • « socket_create_listen
  • socket_create »
  • PHP Manual
  • Funções para Socket
  • Creates a pair of indistinguishable sockets and stores them in an array

socket_create_pair

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_create_pair — Creates a pair of indistinguishable sockets and stores them in an array

Descrição

socket_create_pair(
int $domain,
int $type,
int $protocol,
array &$pair
): bool

socket_create_pair() creates two connected and indistinguishable sockets, and stores them in pair. This function is commonly used in IPC (InterProcess Communication).

Parâmetros

domain

The domain parameter specifies the protocol family to be used by the socket. See socket_create() for the full list.

type

The type parameter selects the type of communication to be used by the socket. See socket_create() for the full list.

protocol

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.

See socket_create() for the full list of supported protocols.

pair

Reference to an array in which the two Socket instances will be inserted.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | pair is a reference to an array of Socket instances now; previously, it was a reference to an array of resources.

Exemplos

Exemplo #1 socket_create_pair() example

<?php
$sockets = array();

/* On Windows we need to use AF_INET */
$domain = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' ? AF_INET : AF_UNIX);

/* Setup socket pair */
if (socket_create_pair($domain, SOCK_STREAM, 0, $sockets) === false) {
echo "socket_create_pair failed. Reason: ".socket_strerror(socket_last_error());
}
/* Send and Receive Data */
if (socket_write($sockets[0], "ABCdef123\n", strlen("ABCdef123\n")) === false) {
echo "socket_write() failed. Reason: ".socket_strerror(socket_last_error($sockets[0]));
}
if (($data = socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ)) === false) {
echo "socket_read() failed. Reason: ".socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);

/* Close sockets */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Exemplo #2 socket_create_pair() IPC example

<?php
$ary = array();
$strone = 'Message From Parent.';
$strtwo = 'Message From Child.';

if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary) === false) {
echo "socket_create_pair() failed. Reason: ".socket_strerror(socket_last_error());
}
$pid = pcntl_fork();
if ($pid == -1) {
echo 'Could not fork Process.';
} elseif ($pid) {
/*parent*/
socket_close($ary[0]);
if (socket_write($ary[1], $strone, strlen($strone)) === false) {
echo "socket_write() failed. Reason: ".socket_strerror(socket_last_error($ary[1]));
}
if (socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
echo "Received $strtwo\n";
}
socket_close($ary[1]);
} else {
/*child*/
socket_close($ary[1]);
if (socket_write($ary[0], $strtwo, strlen($strtwo)) === false) {
echo "socket_write() failed. Reason: ".socket_strerror(socket_last_error($ary[0]));
}
if (socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
echo "Received $strone\n";
}
socket_close($ary[0]);
}
?>

Veja Também

  • socket_create() - Create a socket (endpoint for communication)
  • socket_create_listen() - Opens a socket on port to accept connections
  • socket_bind() - Binds a name to a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error


Create a socket (endpoint for communication)

  • « socket_create_pair
  • socket_export_stream »
  • PHP Manual
  • Funções para Socket
  • Create a socket (endpoint for communication)

socket_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_create — Create a socket (endpoint for communication)

Descrição

socket_create(int $domain, int $type, int $protocol): Socket|false

Creates and returns a Socket instance, 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.

Parâmetros

domain

The domain parameter specifies the protocol family to be used by the socket.

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.
AF_UNIX | Local communication protocol family. High efficiency and low overhead make it a great form of IPC (Interprocess Communication).
type

The type parameter selects the type of communication to be used by the socket.

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).
SOCK_RDM | Provides a reliable datagram layer that does not guarantee ordering. This is most likely not implemented on your operating system.
protocol

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.

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.

Valor Retornado

socket_create() returns a Socket instance 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.

Erros/Exceções

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.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.

Veja Também

  • socket_accept() - Aceita uma conexão em um socket
  • socket_bind() - Binds a name to a socket
  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error


Export a socket into a stream that encapsulates a socket

  • « socket_create
  • socket_get_option »
  • PHP Manual
  • Funções para Socket
  • Export a socket into a stream that encapsulates a socket

socket_export_stream

(PHP 7 >= 7.0.7, PHP 8)

socket_export_stream — Export a socket into a stream that encapsulates a socket

Descrição

socket_export_stream(Socket $socket): resource|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

socket

Valor Retornado

Return resource ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.


Gets socket options for the socket

  • « socket_export_stream
  • socket_getopt »
  • PHP Manual
  • Funções para Socket
  • Gets socket options for the socket

socket_get_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

socket_get_option — Gets socket options for the socket

Descrição

socket_get_option(Socket $socket, int $level, int $option): array|int|false

The socket_get_option() function retrieves the value for the option specified by the option parameter for the specified socket.

Parâmetros

socket

A Socket instance created with socket_create() or socket_accept().

level

The level parameter specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function.

option
Available Socket Options
Option | Description | Type
SO_DEBUG | Reports whether debugging information is being recorded. | int
SO_BROADCAST | Reports whether transmission of broadcast messages is supported. | int
SO_REUSEADDR | Reports whether local addresses can be reused. | int
SO_REUSEPORT | Reports whether local ports can be reused. | int
SO_KEEPALIVE | Reports whether connections are kept active with periodic transmission of messages. If the connected socket fails to respond to these messages, the connection is broken and processes writing to that socket are notified with a SIGPIPE signal. | int
SO_LINGER

Reports whether the socket lingers on socket_close() if data is present. By default, when the socket is closed, it attempts to send all unsent data. In the case of a connection-oriented socket, socket_close() will wait for its peer to acknowledge the data.

If l_onoff is non-zero and l_linger is zero, all the unsent data will be discarded and RST (reset) is sent to the peer in the case of a connection-oriented socket.

On the other hand, if l_onoff is non-zero and l_linger is non-zero, socket_close() will block until all the data is sent or the time specified in l_linger elapses. If the socket is non-blocking, socket_close() will fail and return an error.

array. The array will contain two keys: l_onoff and l_linger.
SO_OOBINLINE | Reports whether the socket leaves out-of-band data inline. | int
SO_SNDBUF | Reports the size of the send buffer. | int
SO_RCVBUF | Reports the size of the receive buffer. | int
SO_ERROR | Reports information about error status and clears it. | int (cannot be set by socket_set_option())
SO_TYPE | Reports the socket type (e.g. SOCK_STREAM). | int (cannot be set by socket_set_option())
SO_DONTROUTE | Reports whether outgoing messages bypass the standard routing facilities. | int
SO_RCVLOWAT | Reports the minimum number of bytes to process for socket input operations. | int
SO_RCVTIMEO | Reports the timeout value for input operations. | array. The array will contain two keys: sec which is the seconds part on the timeout value and usec which is the microsecond part of the timeout value.
SO_SNDTIMEO | Reports the timeout value specifying the amount of time that an output function blocks because flow control prevents data from being sent. | array. The array will contain two keys: sec which is the seconds part on the timeout value and usec which is the microsecond part of the timeout value.
SO_SNDLOWAT | Reports the minimum number of bytes to process for socket output operations. | int
TCP_NODELAY | Reports whether the Nagle TCP algorithm is disabled. | int
MCAST_JOIN_GROUP | Joins a multicast group. | array with keys "group", specifying a string with an IPv4 or IPv6 multicast address and "interface", specifying either an interface number (type int) or a string with the interface name, like "eth0". 0 can be specified to indicate the interface should be selected using routing rules. (can only be used in socket_set_option())
MCAST_LEAVE_GROUP | Leaves a multicast group. | array. See MCAST_JOIN_GROUP for more information. (can only be used in socket_set_option())
MCAST_BLOCK_SOURCE | Blocks packets arriving from a specific source to a specific multicast group, which must have been previously joined. | array with the same keys as MCAST_JOIN_GROUP, plus one extra key, source, which maps to a string specifying an IPv4 or IPv6 address of the source to be blocked. (can only be used in socket_set_option())
MCAST_UNBLOCK_SOURCE | Unblocks (start receiving again) packets arriving from a specific source address to a specific multicast group, which must have been previously joined. | array with the same format as MCAST_BLOCK_SOURCE. (can only be used in socket_set_option())
MCAST_JOIN_SOURCE_GROUP | Receive packets destined to a specific multicast group whose source address matches a specific value. | array with the same format as MCAST_BLOCK_SOURCE. (can only be used in socket_set_option())
MCAST_LEAVE_SOURCE_GROUP | Stop receiving packets destined to a specific multicast group whose source address matches a specific value. | array with the same format as MCAST_BLOCK_SOURCE. (can only be used in socket_set_option())
IP_MULTICAST_IF | The outgoing interface for IPv4 multicast packets. | Either int specifying the interface number or a string with an interface name, like eth0. The value 0 can be used to indicate the routing table is to used in the interface selection. The function socket_get_option() returns an interface index. Note that, unlike the C API, this option does NOT take an IP address. This eliminates the interface difference between IP_MULTICAST_IF and IPV6_MULTICAST_IF.
IPV6_MULTICAST_IF | The outgoing interface for IPv6 multicast packets. | The same as IP_MULTICAST_IF.
IP_MULTICAST_LOOP | The multicast loopback policy for IPv4 packets enables or disables loopback of outgoing multicasts, which must have been previously joined. The effect differs, however, whether it applies on unixes or Windows, the former being on the receive path whereas the latter being on the send path. | int (either 0 or 1). For socket_set_option() any value will be accepted and will be converted to a boolean following the usual PHP rules.
IPV6_MULTICAST_LOOP | Analogous to IP_MULTICAST_LOOP, but for IPv6. | int. See IP_MULTICAST_LOOP.
IP_MULTICAST_TTL | The time-to-live of outgoing IPv4 multicast packets. This should be a value between 0 (don't leave the interface) and 255. The default value is 1 (only the local network is reached). | int between 0 and 255.
IPV6_MULTICAST_HOPS | Analogous to IP_MULTICAST_TTL, but for IPv6 packets. The value -1 is also accepted, meaning the route default should be used. | int between -1 and 255.
SO_MARK | Sets an identifier on the socket for packet filtering purpose on Linux. | int
SO_ACCEPTFILTER | Adds an accept filter on the listened socket (FreeBSD/NetBSD). An accept filter kernel module needs to be loaded beforehand on FreeBSD (e.g. accf_http). | string name of the filter (length 15 max).
SO_USER_COOKIE | Sets an identifier on the socket for packet filtering purpose on FreeBSD. | int
SO_RTABLE | Sets an identifier on the socket for packet filtering purpose on OpenBSD. | int
SO_DONTTRUNC | Retain unread data. | int
SO_WANTMORE | Give a hint when more data is ready. | int
TCP_DEFER_ACCEPT | Don't notify a listening socket until data is ready. | int
SO_INCOMING_CPU | Gets/Sets the cpu affinity of a socket. | int
SO_MEMINFO | Gets all the meminfo of a socket. | int
SO_BPF_EXTENSIONS | Gets the supported BPF extensions by the kernel to attach to a socket. | int
SO_SETFIB | Sets the route table (FIB) of a socket. (FreeBSD only) | int
SOL_FILTER | Filters attributed to a socket. (Solaris/Illumos only) | int
TCP_KEEPCNT | Sets the maximum number of keepalive probes TCP should send before dropping the connection. | int
TCP_KEEPIDLE | Sets the time the connection needs to remain idle. | int
TCP_KEEPINTVL | Sets the time between individual keepalive probes. | int
TCP_KEEPALIVE | Sets the time the connection needs to remain idle. (macOS only) | int
TCP_NOTSENT_LOWAT | Sets the limit number of unsent data in write queue by the socket stream. (Linux only) | int

Valor Retornado

Returns the value of the given option, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 socket_get_option() example

<?php
$socket = socket_create_listen(1223);

$linger = array('l_linger' => 1, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);

var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
?>

Veja Também

  • socket_create_listen() - Opens a socket on port to accept connections
  • socket_set_option() - Sets socket options for the socket


Sinônimo de socket_get_option

  • « socket_get_option
  • socket_getpeername »
  • PHP Manual
  • Funções para Socket
  • Sinônimo de socket_get_option

socket_getopt

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_getopt — Sinônimo de socket_get_option()

Descrição

Esta função é um apelido para: socket_get_option().


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_getopt
  • socket_getsockname »
  • PHP Manual
  • Funções para Socket
  • 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_getpeername

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

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

Descrição

socket_getpeername(Socket $socket, string &$address, int &$port = null): bool

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.

Parâmetros

socket

A Socket instance created with socket_create() or socket_accept().

address

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.

port

If given, this will hold the port associated to address.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. 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.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Notas

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.

Nota:

For having socket_getpeername() to return a meaningful value, the socket it is applied upon must of course be one for which the concept of "peer" makes sense.

Veja Também

  • 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_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error


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_getpeername
  • socket_import_stream »
  • PHP Manual
  • Funções para Socket
  • 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_getsockname

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

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

Descrição

socket_getsockname(Socket $socket, string &$address, int &$port = null): bool

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.

Parâmetros

socket

A Socket instance created with socket_create() or socket_accept().

address

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.

port

If provided, this will hold the associated port.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. 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.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Veja Também

  • 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_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error


Import a stream

  • « socket_getsockname
  • socket_last_error »
  • PHP Manual
  • Funções para Socket
  • Import a stream

socket_import_stream

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

socket_import_stream — Import a stream

Descrição

socket_import_stream(resource $stream): Socket|false

Imports a stream that encapsulates a socket into a socket extension resource.

Parâmetros

stream

The stream resource to import.

Valor Retornado

Returns false on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.

Exemplos

Exemplo #1 socket_import_stream() example

<?php
$stream = stream_socket_server("udp://0.0.0.0:58380", $errno, $errstr, STREAM_SERVER_BIND);
$sock = socket_import_stream($stream);
?>

Veja Também

  • stream_socket_server() - Cria socket de servidor de domínio Internet ou Unix


Returns the last error on the socket

  • « socket_import_stream
  • socket_listen »
  • PHP Manual
  • Funções para Socket
  • Returns the last error on the socket

socket_last_error

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_last_error — Returns the last error on the socket

Descrição

socket_last_error(?Socket $socket = null): int

If a Socket instance is passed to this function, the last error which occurred on this particular socket is returned. If socket is null, the error code of the last failed socket function is returned. The latter is particularly 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.

If no error had occurred, or the error had been cleared with socket_clear_error(), the function returns 0.

Parâmetros

socket

A Socket instance created with socket_create().

Valor Retornado

This function returns a socket error code.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.
8.0.0 | socket is nullable now.

Exemplos

Exemplo #1 socket_last_error() example

<?php
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket === false) {
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);

die("Couldn't create socket: [$errorcode] $errormsg");
}
?>

Notas

Nota:

socket_last_error() does not clear the error code, use socket_clear_error() for this purpose.


Listens for a connection on a socket

  • « socket_last_error
  • socket_read »
  • PHP Manual
  • Funções para Socket
  • Listens for a connection on a socket

socket_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_listen — Listens for a connection on a socket

Descrição

socket_listen(Socket $socket, int $backlog = 0): bool

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.

socket_listen() is applicable only to sockets of type SOCK_STREAM or SOCK_SEQPACKET.

Parâmetros

socket

A Socket instance created with socket_create() or socket_addrinfo_bind()

backlog

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.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. 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.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Veja Também

  • socket_accept() - Aceita uma conexão em um socket
  • socket_bind() - Binds a name to a socket
  • socket_connect() - Initiates a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)
  • socket_strerror() - Return a string describing a socket error
  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo


Reads a maximum of length bytes from a socket

  • « socket_listen
  • socket_recv »
  • PHP Manual
  • Funções para Socket
  • Reads a maximum of length bytes from a socket

socket_read

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_read — Reads a maximum of length bytes from a socket

Descrição

socket_read(Socket $socket, int $length, int $mode = PHP_BINARY_READ): string|false

The function socket_read() reads from the Socket instance socket created by the socket_create() or socket_accept() functions.

Parâmetros

socket

A Socket instance created with socket_create() or socket_accept().

length

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 mode parameter, see below).

mode

Optional mode parameter is a named constant:

  • PHP_BINARY_READ (Default) - use the system recv() function. Safe for reading binary data.
  • PHP_NORMAL_READ - reading stops at \n or \r.

Valor Retornado

socket_read() returns the data as a string on success, or false on error (including if the remote host has closed the connection). 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() returns a zero length string ("") when there is no more data to read.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Veja Também

  • socket_accept() - Aceita uma conexão em um socket
  • socket_bind() - Binds a name to a socket
  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error
  • socket_write() - Write to a socket


Recebe dados de um socket conectado

  • « socket_read
  • socket_recvfrom »
  • PHP Manual
  • Funções para Socket
  • Recebe dados de um socket conectado

socket_recv

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_recv — Recebe dados de um socket conectado

Descrição

socket_recv(
Socket $socket,
?string &$data,
int $length,
int $flags
): int|false

A função socket_recv() recebe o número de bytes definidos em length, dos dados definidos em data a partir do socket. socket_recv() pode ser usada para receber dados de sockets conectados. Adicionalmente, uma ou mais opções podem ser especificadas para modificar o comportamento da função.

O parâmetro data é passado por referência, por isso deve ser especificado como uma variável na lista de argumentos. Dados lidos do socket por socket_recv() serão retornados em data.

Parâmetros

socket

O socket deve ser uma instância de Socket previamente criada por socket_create().

data

Os dados recebidos serão guardados na variável especificada em data. Se um erro ocorrer, se a conexão for redefinida, ou se não houver dados disponíveis, data será igual a null.

length

length é o número máximo de bytes que serão recebidos do servidor remoto.

flags

O valor de flags pode ser qualquer combinação das opções a seguir, unidas pelo operador binário OR (|).

Valores possíveis para flags
Opção | Descrição
MSG_OOB | Processa dados fora-de-banda.
MSG_PEEK | Recebe dados do início da fila sem removê-los da fila.
MSG_WAITALL | Bloqueia até que pelo menos o número de bytem em length seja recebido. Entretando, se um sinal for capturado ou se o servidor remoto desconectar, a função pode retornar menos dados.
MSG_DONTWAIT | Com esta opção, a função retorna mesmo se ela normalmente tivesse bloqueado.

Valor Retornado

socket_recv() retorna o número de bytes recebidos, ou false se houver um erro. O código de erro real pode ser obtido chamando-se socket_last_error(). Este código de erro pode se passado a socket_strerror() para obter uma explicação textual do erro.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Exemplo de socket_recv()

Este exemplo é um re-escrita simples do primeiro exemplo de Exemplos para uso de socket_recv().

<?php
error_reporting(E_ALL);

echo "<h2>Conexão TCP/IP</h2>\n";

/* Obtém a porta do serviço WWW. */
$service_port = getservbyname('www', 'tcp');

/* Obtém o endereço IP do servidor de destino. */
$address = gethostbyname('www.example.com');

/* Cria o socket TCP/IP. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "OK.\n";
}

echo "Tentando conexão a '$address' na porta '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
echo "socket_connect() falhou.\nRazão: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Enviando requisição HTTP HEAD...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Lendo resposta:\n\n";
$buf = 'Este é o meu buffer.';
if (false !== ($bytes = socket_recv($socket, $buf, 2048, MSG_WAITALL))) {
echo "Lidos $bytes bytes de socket_recv(). Fechando socket...";
} else {
echo "socket_recv() falhou; razão: " . socket_strerror(socket_last_error($socket)) . "\n";
}
socket_close($socket);

echo $buf . "\n";
echo "OK.\n\n";
?>

O exemplo acima irá produzir algo assim:

<h2>Conexão TCP/IP</h2>
OK.
Tentando conexão a '208.77.188.166' na porta '80'...OK.
Enviando requisição HTTP HEAD...OK.
Lendo resposta:

Lidos 123 bytes de socket_recv(). Fechando socket...HTTP/1.1 200 OK
Date: Mon, 14 Sep 2009 08:56:36 GMT
Server: Apache/2.2.3 (Red Hat)
Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
ETag: "b80f4-1b6-80bfd280"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; CHARSET=Windows-1252

OK.


Receives data from a socket whether or not it is connection-oriented

  • « socket_recv
  • socket_recvmsg »
  • PHP Manual
  • Funções para Socket
  • Receives data from a socket whether or not it is connection-oriented

socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_recvfrom — Receives data from a socket whether or not it is connection-oriented

Descrição

socket_recvfrom(
Socket $socket,
string &$data,
int $length,
int $flags,
string &$address,
int &$port = null
): int|false

The socket_recvfrom() function receives length bytes of data in data from address on port port (if the socket is not of type AF_UNIX) using socket. socket_recvfrom() can be used to gather data from both connected and unconnected sockets. Additionally, one or more flags can be specified to modify the behaviour of the function.

The address and port must be passed by reference. If the socket is not connection-oriented, address will be set to the internet protocol address of the remote host or the path to the UNIX socket. If the socket is connection-oriented, address is null. Additionally, the port will contain the port of the remote host in the case of an unconnected AF_INET or AF_INET6 socket.

Nota: Esta função é compatível com dados binários.

Parâmetros

socket

The socket must be a Socket instance previously created by socket_create().

data

The data received will be fetched to the variable specified with data.

length

Up to length bytes will be fetched from remote host.

flags

The value of flags can be any combination of the following flags, joined with the binary OR (|) operator.

Possible values for flags
Flag | Description
MSG_OOB | Process out-of-band data.
MSG_PEEK | Receive data from the beginning of the receive queue without removing it from the queue.
MSG_WAITALL | Block until at least length are received. However, if a signal is caught or the remote host disconnects, the function may return less data.
MSG_DONTWAIT | With this flag set, the function returns even if it would normally have blocked.
address

If the socket is of the type AF_UNIX type, address is the path to the file. Else, for unconnected sockets, address is the IP address of, the remote host, or null if the socket is connection-oriented.

port

This argument only applies to AF_INET and AF_INET6 sockets, and specifies the remote port from which the data is received. If the socket is connection-oriented, port will be null.

Valor Retornado

socket_recvfrom() returns the number of bytes received, or false if there was an 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.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 socket_recvfrom() example

<?php

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

echo "Received $buf from remote address $from and remote port $port" . PHP_EOL;
?>

This example will initiate a UDP socket on port 1223 of 127.0.0.1 and print at most 12 characters received from a remote host.

Veja Também

  • socket_recv() - Recebe dados de um socket conectado
  • socket_send() - Sends data to a connected socket
  • socket_sendto() - Sends a message to a socket, whether it is connected or not
  • socket_create() - Create a socket (endpoint for communication)


Read a message

  • « socket_recvfrom
  • socket_select »
  • PHP Manual
  • Funções para Socket
  • Read a message

socket_recvmsg

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

socket_recvmsg — Read a message

Descrição

socket_recvmsg(Socket $socket, array &$message, int $flags = 0): int|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

socket

message

flags

Valor Retornado

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Veja Também

  • socket_sendmsg() - Send a message
  • socket_cmsg_space() - Calculate message buffer size


Runs the select() system call on the given arrays of sockets with a specified timeout

  • « socket_recvmsg
  • socket_send »
  • PHP Manual
  • Funções para Socket
  • Runs the select() system call on the given arrays of sockets with a specified timeout

socket_select

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_select — Runs the select() system call on the given arrays of sockets with a specified timeout

Descrição

socket_select(
?array &$read,
?array &$write,
?array &$except,
?int $seconds,
int $microseconds = 0
): int|false

socket_select() accepts arrays of sockets and waits for them to change status. Those coming with BSD sockets background will recognize that those socket arrays are in fact the so-called file descriptor sets. Three independent arrays of sockets are watched.

Parâmetros

read

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 is also ready on end-of-file, in which case a socket_read() will return a zero length string).

write

The sockets listed in the write array will be watched to see if a write will not block.

except

The sockets listed in the except array will be watched for exceptions.

seconds

The seconds and microseconds together form the timeout parameter. The timeout is an upper bound on the amount of time elapsed before socket_select() return. seconds may be zero , causing socket_select() to return immediately. This is useful for polling. If seconds is null (no timeout), socket_select() can block indefinitely.

microseconds

Aviso

On exit, the arrays are modified to indicate which socket 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.

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:

Exemplo #1 Using null with socket_select()

<?php
$e = NULL;
socket_select($r, $w, $e, 0);
?>

Valor Retornado

On success socket_select() returns the number of sockets 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:

Exemplo #2 Understanding socket_select()'s result

<?php
$e = NULL;
if (false === socket_select($r, $w, $e, 0)) {
echo "socket_select() failed, reason: " .
socket_strerror(socket_last_error()) . "\n";
}
?>

Exemplos

Exemplo #3 socket_select() example

<?php
/* Prepare the read array */
$read = array($socket1, $socket2);
$write = NULL;
$except = NULL;
$num_changed_sockets = socket_select($read, $write, $except, 0);

if ($num_changed_sockets === false) {
/* Error handling */
} else if ($num_changed_sockets > 0) {
/* At least at one of the sockets something interesting happened */
}
?>

Notas

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 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 sockets in all arrays must be checked. Any socket that is available for writing must be written to, and any socket 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.

Veja Também

  • socket_read() - Reads a maximum of length bytes from a socket
  • socket_write() - Write to a socket
  • socket_last_error() - Returns the last error on the socket
  • socket_strerror() - Return a string describing a socket error


Sends data to a connected socket

  • « socket_select
  • socket_sendmsg »
  • PHP Manual
  • Funções para Socket
  • Sends data to a connected socket

socket_send

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_send — Sends data to a connected socket

Descrição

socket_send(
Socket $socket,
string $data,
int $length,
int $flags
): int|false

The function socket_send() sends length bytes to the socket socket from data.

Parâmetros

socket

A Socket instance created with socket_create() or socket_accept().

data

A buffer containing the data that will be sent to the remote host.

length

The number of bytes that will be sent to the remote host from data.

flags

The value of flags can be any combination of the following flags, joined with the binary OR (|) operator.

Possible values for flags
MSG_OOB | Send OOB (out-of-band) data.
MSG_EOR | Indicate a record mark. The sent data completes the record.
MSG_EOF | Close the sender side of the socket and include an appropriate notification of this at the end of the sent data. The sent data completes the transaction.
MSG_DONTROUTE | Bypass routing, use direct interface.

Valor Retornado

socket_send() returns the number of bytes sent, or false on error.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Veja Também

  • socket_sendto() - Sends a message to a socket, whether it is connected or not


Send a message

  • « socket_send
  • socket_sendto »
  • PHP Manual
  • Funções para Socket
  • Send a message

socket_sendmsg

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

socket_sendmsg — Send a message

Descrição

socket_sendmsg(Socket $socket, array $message, int $flags = 0): int|false

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

socket

message

flags

Valor Retornado

Returns the number of bytes sent, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Veja Também

  • socket_recvmsg() - Read a message
  • socket_cmsg_space() - Calculate message buffer size


Sends a message to a socket, whether it is connected or not

  • « socket_sendmsg
  • socket_set_block »
  • PHP Manual
  • Funções para Socket
  • Sends a message to a socket, whether it is connected or not

socket_sendto

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_sendto — Sends a message to a socket, whether it is connected or not

Descrição

socket_sendto(
Socket $socket,
string $data,
int $length,
int $flags,
string $address,
?int $port = null
): int|false

The function socket_sendto() sends length bytes from data through the socket socket to the port at the address address.

Parâmetros

socket

A Socket instance created using socket_create().

data

The sent data will be taken from buffer data.

length

length bytes from data will be sent.

flags

The value of flags can be any combination of the following flags, joined with the binary OR (|) operator.

Possible values for flags
MSG_OOB | Send OOB (out-of-band) data.
MSG_EOR | Indicate a record mark. The sent data completes the record.
MSG_EOF | Close the sender side of the socket and include an appropriate notification of this at the end of the sent data. The sent data completes the transaction.
MSG_DONTROUTE | Bypass routing, use direct interface.

address

IP address of the remote host.

port

port is the remote port number at which the data will be sent.

Valor Retornado

socket_sendto() returns the number of bytes sent to the remote host, or false if an error occurred.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.
8.0.0 | port is nullable now.

Exemplos

Exemplo #1 socket_sendto() Example

<?php
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

$msg = "Ping !";
$len = strlen($msg);

socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 1223);
socket_close($sock);
?>

Veja Também

  • socket_send() - Sends data to a connected socket


Sets blocking mode on a socket

  • « socket_sendto
  • socket_set_nonblock »
  • PHP Manual
  • Funções para Socket
  • Sets blocking mode on a socket

socket_set_block

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

socket_set_block — Sets blocking mode on a socket

Descrição

socket_set_block(Socket $socket): bool

The socket_set_block() function removes the O_NONBLOCK flag on the socket specified by the socket parameter.

When an operation (e.g. receive, send, connect, accept, ...) is performed on a blocking socket, the script will pause its execution until it receives a signal or it can perform the operation.

Parâmetros

socket

A Socket instance created with socket_create() or socket_accept().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 socket_set_block() example

<?php
$socket = socket_create_listen(1223);
socket_set_block($socket);

socket_accept($socket);
?>

This example creates a listening socket on all interfaces on port 1223 and sets the socket to O_BLOCK mode. socket_accept() will hang until there is a connection to accept.

Veja Também

  • socket_set_nonblock() - Sets nonblocking mode for file descriptor fd
  • socket_set_option() - Sets socket options for the socket


Sets nonblocking mode for file descriptor fd

  • « socket_set_block
  • socket_set_option »
  • PHP Manual
  • Funções para Socket
  • Sets nonblocking mode for file descriptor fd

socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_set_nonblock — Sets nonblocking mode for file descriptor fd

Descrição

socket_set_nonblock(Socket $socket): bool

The socket_set_nonblock() function sets the O_NONBLOCK flag on the socket specified by the socket parameter.

When an operation (e.g. receive, send, connect, accept, ...) is performed on a non-blocking socket, the script will not pause its execution until it receives a signal or it can perform the operation. Rather, if the operation would result in a block, the called function will fail.

Parâmetros

socket

A Socket instance created with socket_create() or socket_accept().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 socket_set_nonblock() example

<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);

socket_accept($socket);
?>

This example creates a listening socket on all interfaces on port 1223 and sets the socket to O_NONBLOCK mode. socket_accept() will immediately fail unless there is a pending connection exactly at this moment.

Veja Também

  • socket_set_block() - Sets blocking mode on a socket
  • socket_set_option() - Sets socket options for the socket
  • stream_set_blocking() - Definir modo de bloqueio/não-bloqueio em um fluxo


Sets socket options for the socket

  • « socket_set_nonblock
  • socket_setopt »
  • PHP Manual
  • Funções para Socket
  • Sets socket options for the socket

socket_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

socket_set_option — Sets socket options for the socket

Descrição

socket_set_option(
Socket $socket,
int $level,
int $option,
array|string|int $value
): bool

The socket_set_option() function sets the option specified by the option parameter, at the specified protocol level, to the value pointed to by the value parameter for the socket.

Parâmetros

socket

A Socket instance created with socket_create() or socket_accept().

level

The level parameter specifies the protocol level at which the option resides. For example, to set options at the socket level, a level parameter of SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function.

option

The available socket options are the same as those for the socket_get_option() function.

value

The option value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 socket_set_option() example

<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!is_resource($socket)) {
echo 'Unable to create socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo 'Unable to set option on socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_bind($socket, '127.0.0.1', 1223)) {
echo 'Unable to bind socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);

if ($rval === false) {
echo 'Unable to get socket option: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
echo 'SO_REUSEADDR is set on socket !' . PHP_EOL;
}
?>

Veja Também

  • socket_create() - Create a socket (endpoint for communication)
  • socket_bind() - Binds a name to a socket
  • socket_strerror() - Return a string describing a socket error
  • socket_last_error() - Returns the last error on the socket
  • socket_get_option() - Gets socket options for the socket


Sinônimo de socket_set_option

  • « socket_set_option
  • socket_shutdown »
  • PHP Manual
  • Funções para Socket
  • Sinônimo de socket_set_option

socket_setopt

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_setopt — Sinônimo de socket_set_option()

Descrição

Esta função é um apelido para: socket_set_option().


Shuts down a socket for receiving, sending, or both

  • « socket_setopt
  • socket_strerror »
  • PHP Manual
  • Funções para Socket
  • Shuts down a socket for receiving, sending, or both

socket_shutdown

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_shutdown — Shuts down a socket for receiving, sending, or both

Descrição

socket_shutdown(Socket $socket, int $mode = 2): bool

The socket_shutdown() function allows you to stop incoming, outgoing or all data (the default) from being sent through the socket

Nota:

The associated buffer, or buffers, may or may not be emptied.

Parâmetros

socket

A Socket instance created with socket_create().

mode

The value of mode can be one of the following:

possible values for mode
0 | Shutdown socket reading
1 | Shutdown socket writing
2 | Shutdown socket reading and writing

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.


Return a string describing a socket error

  • « socket_shutdown
  • socket_write »
  • PHP Manual
  • Funções para Socket
  • Return a string describing a socket error

socket_strerror

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_strerror — Return a string describing a socket error

Descrição

socket_strerror(int $error_code): string

socket_strerror() takes as its error_code parameter a socket error code as returned by socket_last_error() and returns the corresponding explanatory text.

Nota:

Although the error messages generated by the socket extension are in English, the system messages retrieved with this function will appear depending on the current locale (LC_MESSAGES).

Parâmetros

error_code

A valid socket error number, likely produced by socket_last_error().

Valor Retornado

Returns the error message associated with the error_code parameter.

Exemplos

Exemplo #1 socket_strerror() example

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
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

Veja Também

  • socket_accept() - Aceita uma conexão em um socket
  • socket_bind() - Binds a name to a socket
  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_create() - Create a socket (endpoint for communication)


Write to a socket

  • « socket_strerror
  • socket_wsaprotocol_info_export »
  • PHP Manual
  • Funções para Socket
  • Write to a socket

socket_write

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_write — Write to a socket

Descrição

socket_write(Socket $socket, string $data, ?int $length = null): int|false

The function socket_write() writes to the socket from the given data.

Parâmetros

socket

data

The buffer to be written.

length

The optional parameter length can specify an alternate length of bytes written to the socket. If this length is greater than the buffer length, it is silently truncated to the length of the buffer.

Valor Retornado

Returns the number of bytes successfully written to the socket ou false em caso de falha. 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:

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.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.
8.0.0 | length is nullable now.

Notas

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.

Veja Também

  • socket_accept() - Aceita uma conexão em um socket
  • socket_bind() - Binds a name to a socket
  • socket_connect() - Initiates a connection on a socket
  • socket_listen() - Listens for a connection on a socket
  • socket_read() - Reads a maximum of length bytes from a socket
  • socket_strerror() - Return a string describing a socket error


Exports the WSAPROTOCOL_INFO Structure

  • « socket_write
  • socket_wsaprotocol_info_import »
  • PHP Manual
  • Funções para Socket
  • Exports the WSAPROTOCOL_INFO Structure

socket_wsaprotocol_info_export

(PHP 7 >= 7.3.0, PHP 8)

socket_wsaprotocol_info_export — Exports the WSAPROTOCOL_INFO Structure

Descrição

socket_wsaprotocol_info_export(Socket $socket, int $process_id): string|false

Exports the WSAPROTOCOL_INFO structure into shared memory and returns an identifier to be used with socket_wsaprotocol_info_import(). The exported ID is only valid for the given process_id.

Nota: This function is available only on Windows.

Parâmetros

socket

A Socket instance.

process_id

The ID of the process which will import the socket.

Valor Retornado

Returns an identifier to be used for the import, ou false em caso de falha

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro socket agora espera uma instância de Socket; anteriormente, um resource era esperado.

Veja Também

  • socket_wsaprotocol_info_import() - Imports a Socket from another Process
  • socket_wsaprotocol_info_release() - Releases an exported WSAPROTOCOL_INFO Structure


Imports a Socket from another Process

  • « socket_wsaprotocol_info_export
  • socket_wsaprotocol_info_release »
  • PHP Manual
  • Funções para Socket
  • Imports a Socket from another Process

socket_wsaprotocol_info_import

(PHP 7 >= 7.3.0, PHP 8)

socket_wsaprotocol_info_import — Imports a Socket from another Process

Descrição

socket_wsaprotocol_info_import(string $info_id): Socket|false

Imports a socket which has formerly been exported from another process.

Nota: This function is available only on Windows.

Parâmetros

info_id

The ID which has been returned by a former call to socket_wsaprotocol_info_export().

Valor Retornado

Returns a Socket instance on success, ou false em caso de falha

Registro de Alterações

Versão | Descrição
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.

Veja Também

  • socket_wsaprotocol_info_export() - Exports the WSAPROTOCOL_INFO Structure


Releases an exported WSAPROTOCOL_INFO Structure

  • « socket_wsaprotocol_info_import
  • Socket »
  • PHP Manual
  • Funções para Socket
  • Releases an exported WSAPROTOCOL_INFO Structure

socket_wsaprotocol_info_release

(PHP 7 >= 7.3.0, PHP 8)

socket_wsaprotocol_info_release — Releases an exported WSAPROTOCOL_INFO Structure

Descrição

socket_wsaprotocol_info_release(string $info_id): bool

Releases the shared memory corresponding to the given info_id.

Nota: This function is available only on Windows.

Parâmetros

info_id

The ID which has been returned by a former call to socket_wsaprotocol_info_export().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • socket_wsaprotocol_info_export() - Exports the WSAPROTOCOL_INFO Structure


The Socket class

(PHP 8)

Introdução

A fully opaque class which replaces Socket resources as of PHP 8.0.0.

Resumo da classe

final class Socket {
}


The AddressInfo class

(PHP 8)

Introdução

A fully opaque class which replaces AddressInfo resources as of PHP 8.0.0.

Resumo da classe

final class AddressInfo {
}


Secure Shell2

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • SSH2 Funções
    • ssh2_auth_agent — Authenticate over SSH using the ssh agent
    • ssh2_auth_hostbased_file — Authenticate using a public hostkey
    • ssh2_auth_none — Authenticate as "none"
    • ssh2_auth_password — Authenticate over SSH using a plain password
    • ssh2_auth_pubkey_file — Authenticate using a public key
    • ssh2_connect — Connect to an SSH server
    • ssh2_disconnect — Close a connection to a remote SSH server
    • ssh2_exec — Execute a command on a remote server
    • ssh2_fetch_stream — Fetch an extended data stream
    • ssh2_fingerprint — Retrieve fingerprint of remote server
    • ssh2_forward_accept — Accept a connection created by a listener
    • ssh2_forward_listen — Bind a port on the remote server and listen for connections
    • ssh2_methods_negotiated — Return list of negotiated methods
    • ssh2_poll — Poll the channels/listeners/streams for events
    • ssh2_publickey_add — Add an authorized publickey
    • ssh2_publickey_init — Initialize Publickey subsystem
    • ssh2_publickey_list — List currently authorized publickeys
    • ssh2_publickey_remove — Remove an authorized publickey
    • ssh2_scp_recv — Request a file via SCP
    • ssh2_scp_send — Send a file via SCP
    • ssh2_send_eof — Send EOF to stream
    • ssh2_sftp_chmod — Changes file mode
    • ssh2_sftp_lstat — Stat a symbolic link
    • ssh2_sftp_mkdir — Create a directory
    • ssh2_sftp_readlink — Return the target of a symbolic link
    • ssh2_sftp_realpath — Resolve the realpath of a provided path string
    • ssh2_sftp_rename — Rename a remote file
    • ssh2_sftp_rmdir — Remove a directory
    • ssh2_sftp_stat — Stat a file on a remote filesystem
    • ssh2_sftp_symlink — Create a symlink
    • ssh2_sftp_unlink — Delete a file
    • ssh2_sftp — Initialize SFTP subsystem
    • ssh2_shell — Request an interactive shell
    • ssh2_tunnel — Open a tunnel through a remote server


Introdução

Bindings to the » libssh2 library which provide access to resources (shell, remote exec, tunneling, file transfer) on a remote machine using a secure cryptographic transport.


Dependências

The » OpenSSL and » libssh2 libraries are required. Ensure that the development libraries are installed, where a typical package name might be openssl-dev.

Version 1.2 or newer of the libssh2 library is required, although it's possible newer releases of pecl/ssh2 may require newer versions (see the release notes).

The ssh2_auth_agent() function will only be available with libssh >= 1.2.3.

support for stream_set_timeout() to channel streams will only be available with libssh >= 1.2.9.

Libssh2 comes in two flavours: gcrypt or openssl. Some Linux distributions build libssh2 with the gcrypt library, some use openssl. Libssh2 has some issues when compiled with gcrypt, please use openssl.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/ssh2.

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.


Tipos de Recurso

This extension defines the following resource types:

  • SSH2 Session
  • SSH2 Listener
  • SSH2 SFTP
  • SSH2 Publickey Subsystem (as of ssh2 0.10)


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SSH2_FINGERPRINT_MD5 (int)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as an MD5 hash.
SSH2_FINGERPRINT_SHA1 (int)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as an SHA1 hash.
SSH2_FINGERPRINT_HEX (int)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as a string of hexits.
SSH2_FINGERPRINT_RAW (int)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as a raw string of 8-bit characters.
SSH2_TERM_UNIT_CHARS (int)
Flag to ssh2_shell() specifying that width and height are provided as character sizes.
SSH2_TERM_UNIT_PIXELS (int)
Flag to ssh2_shell() specifying that width and height are provided in pixel units.
SSH2_DEFAULT_TERM_WIDTH (int)
Default terminal width requested by ssh2_shell().
SSH2_DEFAULT_TERM_HEIGHT (int)
Default terminal height requested by ssh2_shell().
SSH2_DEFAULT_TERM_UNIT (int)
Default terminal units requested by ssh2_shell().
SSH2_STREAM_STDIO (int)
Flag to ssh2_fetch_stream() requesting STDIO subchannel.
SSH2_STREAM_STDERR (int)
Flag to ssh2_fetch_stream() requesting STDERR subchannel.
SSH2_DEFAULT_TERMINAL (string)
Default terminal type (e.g. vt102, ansi, xterm, vanilla) requested by ssh2_shell().
SSH2_POLLIN (int)
SSH2_POLLEXT (int)
SSH2_POLLOUT (int)
SSH2_POLLERR (int)
SSH2_POLLHUP (int)
SSH2_POLLNVAL (int)
SSH2_POLL_SESSION_CLOSED (int)
SSH2_POLL_CHANNEL_CLOSED (int)
SSH2_POLL_LISTENER_CLOSED (int)


SSH2 Funções

Índice

  • ssh2_auth_agent — Authenticate over SSH using the ssh agent
  • ssh2_auth_hostbased_file — Authenticate using a public hostkey
  • ssh2_auth_none — Authenticate as "none"
  • ssh2_auth_password — Authenticate over SSH using a plain password
  • ssh2_auth_pubkey_file — Authenticate using a public key
  • ssh2_connect — Connect to an SSH server
  • ssh2_disconnect — Close a connection to a remote SSH server
  • ssh2_exec — Execute a command on a remote server
  • ssh2_fetch_stream — Fetch an extended data stream
  • ssh2_fingerprint — Retrieve fingerprint of remote server
  • ssh2_forward_accept — Accept a connection created by a listener
  • ssh2_forward_listen — Bind a port on the remote server and listen for connections
  • ssh2_methods_negotiated — Return list of negotiated methods
  • ssh2_poll — Poll the channels/listeners/streams for events
  • ssh2_publickey_add — Add an authorized publickey
  • ssh2_publickey_init — Initialize Publickey subsystem
  • ssh2_publickey_list — List currently authorized publickeys
  • ssh2_publickey_remove — Remove an authorized publickey
  • ssh2_scp_recv — Request a file via SCP
  • ssh2_scp_send — Send a file via SCP
  • ssh2_send_eof — Send EOF to stream
  • ssh2_sftp_chmod — Changes file mode
  • ssh2_sftp_lstat — Stat a symbolic link
  • ssh2_sftp_mkdir — Create a directory
  • ssh2_sftp_readlink — Return the target of a symbolic link
  • ssh2_sftp_realpath — Resolve the realpath of a provided path string
  • ssh2_sftp_rename — Rename a remote file
  • ssh2_sftp_rmdir — Remove a directory
  • ssh2_sftp_stat — Stat a file on a remote filesystem
  • ssh2_sftp_symlink — Create a symlink
  • ssh2_sftp_unlink — Delete a file
  • ssh2_sftp — Initialize SFTP subsystem
  • ssh2_shell — Request an interactive shell
  • ssh2_tunnel — Open a tunnel through a remote server


Authenticate over SSH using the ssh agent

  • « SSH2 Funções
  • ssh2_auth_hostbased_file »
  • PHP Manual
  • SSH2 Funções
  • Authenticate over SSH using the ssh agent

ssh2_auth_agent

(PECL ssh2 >= 0.12)

ssh2_auth_agent — Authenticate over SSH using the ssh agent

Descrição

ssh2_auth_agent(resource $session, string $username): bool

Authenticate over SSH using the ssh agent

Nota: The ssh2_auth_agent() function will only be available when the ssh2 extension is compiled with libssh >= 1.2.3.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

Remote user name.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Authenticating with a ssh agent

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_agent($connection, 'username')) {
echo "Authentication Successful!\n";
} else {
die('Authentication Failed...');
}
?>


Authenticate using a public hostkey

  • « ssh2_auth_agent
  • ssh2_auth_none »
  • PHP Manual
  • SSH2 Funções
  • Authenticate using a public hostkey

ssh2_auth_hostbased_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_hostbased_file — Authenticate using a public hostkey

Descrição

ssh2_auth_hostbased_file(
resource $session,
string $username,
string $hostname,
string $pubkeyfile,
string $privkeyfile,
string $passphrase = ?,
string $local_username = ?
): bool

Authenticate using a public hostkey read from a file.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

hostname

pubkeyfile

privkeyfile

passphrase

If privkeyfile is encrypted (which it should be), the passphrase must be provided.

local_username

If local_username is omitted, then the value for username will be used for it.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Authentication using a public hostkey

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_hostbased_file($connection, 'remoteusername', 'myhost.example.com',
'/usr/local/etc/hostkey_rsa.pub',
'/usr/local/etc/hostkey_rsa', 'secret',
'localusername')) {
echo "Public Key Hostbased Authentication Successful\n";
} else {
die('Public Key Hostbased Authentication Failed');
}
?>

Notas

Nota:

ssh2_auth_hostbased_file() requires libssh2 >= 0.7 and PHP/SSH2 >= 0.7


Authenticate as "none"

  • « ssh2_auth_hostbased_file
  • ssh2_auth_password »
  • PHP Manual
  • SSH2 Funções
  • Authenticate as "none"

ssh2_auth_none

(PECL ssh2 >= 0.9.0)

ssh2_auth_none — Authenticate as "none"

Descrição

ssh2_auth_none(resource $session, string $username): mixed

Attempt "none" authentication which usually will (and should) fail. As part of the failure, this function will return an array of accepted authentication methods.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

Remote user name.

Valor Retornado

Returns true if the server does accept "none" as an authentication method, or an array of accepted authentication methods on failure.

Exemplos

Exemplo #1 Retrieving a list of authentication methods

<?php
$connection = ssh2_connect('shell.example.com', 22);

$auth_methods = ssh2_auth_none($connection, 'user');

if (in_array('password', $auth_methods)) {
echo "Server supports password based authentication\n";
}
?>


Authenticate over SSH using a plain password

  • « ssh2_auth_none
  • ssh2_auth_pubkey_file »
  • PHP Manual
  • SSH2 Funções
  • Authenticate over SSH using a plain password

ssh2_auth_password

(PECL ssh2 >= 0.9.0)

ssh2_auth_password — Authenticate over SSH using a plain password

Descrição

ssh2_auth_password(resource $session, string $username, string $password): bool

Authenticate over SSH using a plain password. Since version 0.12 this function also supports keyboard_interactive method.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

Remote user name.

password

Password for username

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Authenticating with a password

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_password($connection, 'username', 'secret')) {
echo "Authentication Successful!\n";
} else {
die('Authentication Failed...');
}
?>


Authenticate using a public key

  • « ssh2_auth_password
  • ssh2_connect »
  • PHP Manual
  • SSH2 Funções
  • Authenticate using a public key

ssh2_auth_pubkey_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_pubkey_file — Authenticate using a public key

Descrição

ssh2_auth_pubkey_file(
resource $session,
string $username,
string $pubkeyfile,
string $privkeyfile,
string $passphrase = ?
): bool

Authenticate using a public key read from a file.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

pubkeyfile

The public key file needs to be in OpenSSH's format. It should look something like:

ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110

privkeyfile

passphrase

If privkeyfile is encrypted (which it should be), the passphrase must be provided.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Authentication using a public key

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_pubkey_file($connection, 'username',
'/home/username/.ssh/id_rsa.pub',
'/home/username/.ssh/id_rsa', 'secret')) {
echo "Public Key Authentication Successful\n";
} else {
die('Public Key Authentication Failed');
}
?>

Notas

Nota:

The underlying libssh library doesn't support partial auths very cleanly That is, if you need to supply both a public key and a password it will appear as if this function has failed. In this particular case a failure from this call may just mean that auth hasn't been completed yet. You would need to ignore this failure and continue on and call ssh2_auth_password() in order to complete authentication.


Connect to an SSH server

  • « ssh2_auth_pubkey_file
  • ssh2_disconnect »
  • PHP Manual
  • SSH2 Funções
  • Connect to an SSH server

ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connect — Connect to an SSH server

Descrição

ssh2_connect(
string $host,
int $port = 22,
array $methods = ?,
array $callbacks = ?
): resource|false

Establish a connection to a remote SSH server.

Once connected, the client should verify the server's hostkey using ssh2_fingerprint(), then authenticate using either password or public key.

Parâmetros

host

port

methods

methods may be an associative array with up to four parameters as described below.

methods may be an associative array with any or all of the following parameters.
Index | Meaning | Supported Values*
kex | List of key exchange methods to advertise, comma separated in order of preference. | diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, and diffie-hellman-group-exchange-sha1
hostkey | List of hostkey methods to advertise, comma separated in order of preference. | ssh-rsa and ssh-dss
client_to_server | Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from client to server.
server_to_client | Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from server to client.

* - Supported Values are dependent on methods supported by underlying library. See » libssh2 documentation for additional information.

client_to_server and server_to_client may be an associative array with any or all of the following parameters.
Index | Meaning | Supported Values*
crypt | List of crypto methods to advertise, comma separated in order of preference. | rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, and none**
comp | List of compression methods to advertise, comma separated in order of preference. | zlib and none
mac | List of MAC methods to advertise, comma separated in order of preference. | hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, and none**

Nota: Crypt and MAC method "none"

For security reasons, none is disabled by the underlying » libssh2 library unless explicitly enabled during build time by using the appropriate ./configure options. See documentation for the underlying library for more information.

callbacks

callbacks may be an associative array with any or all of the following parameters.

Callbacks parameters
Index | Meaning | Prototype
ignore | Name of function to call when an SSH2_MSG_IGNORE packet is received | void ignore_cb($message)
debug | Name of function to call when an SSH2_MSG_DEBUG packet is received | void debug_cb($message, $language, $always_display)
macerror | Name of function to call when a packet is received but the message authentication code failed. If the callback returns true, the mismatch will be ignored, otherwise the connection will be terminated. | bool macerror_cb($packet)
disconnect | Name of function to call when an SSH2_MSG_DISCONNECT packet is received | void disconnect_cb($reason, $message, $language)

Valor Retornado

Returns a resource on success, or false on error.

Exemplos

Exemplo #1 ssh2_connect() example

Open a connection forcing 3des-cbc when sending packets, any strength aes cipher when receiving packets, no compression in either direction, and Group1 key exchange.

<?php
/* Notify the user if the server terminates the connection */
function my_ssh_disconnect($reason, $message, $language) {
printf("Server disconnected with reason code [%d] and message: %s\n",
$reason, $message);
}

$methods = array(
'kex' => 'diffie-hellman-group1-sha1',
'client_to_server' => array(
'crypt' => '3des-cbc',
'comp' => 'none'),
'server_to_client' => array(
'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
'comp' => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);
if (!$connection) die('Connection failed');
?>

Veja Também

  • ssh2_fingerprint() - Retrieve fingerprint of remote server
  • ssh2_auth_none() - Authenticate as "none"
  • ssh2_auth_password() - Authenticate over SSH using a plain password
  • ssh2_auth_pubkey_file() - Authenticate using a public key
  • ssh2_disconnect() - Close a connection to a remote SSH server


Close a connection to a remote SSH server

  • « ssh2_connect
  • ssh2_exec »
  • PHP Manual
  • SSH2 Funções
  • Close a connection to a remote SSH server

ssh2_disconnect

(PECL ssh2 >= 1.0)

ssh2_disconnect — Close a connection to a remote SSH server

Descrição

ssh2_disconnect(resource $session): bool

Close a connection to a remote SSH server.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ssh2_connect() - Connect to an SSH server


Execute a command on a remote server

  • « ssh2_disconnect
  • ssh2_fetch_stream »
  • PHP Manual
  • SSH2 Funções
  • Execute a command on a remote server

ssh2_exec

(PECL ssh2 >= 0.9.0)

ssh2_exec — Execute a command on a remote server

Descrição

ssh2_exec(
resource $session,
string $command,
string $pty = ?,
array $env = ?,
int $width = 80,
int $height = 25,
int $width_height_type = SSH2_TERM_UNIT_CHARS
): resource|false

Execute a command at the remote end and allocate a channel for it.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

command

pty

env

env may be passed as an associative array of name/value pairs to set in the target environment.

width

Width of the virtual terminal.

height

Height of the virtual terminal.

width_height_type

width_height_type should be one of SSH2_TERM_UNIT_CHARS or SSH2_TERM_UNIT_PIXELS.

Valor Retornado

Returns a stream on success ou false em caso de falha.

Exemplos

Exemplo #1 Executing a command

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_exec($connection, '/usr/local/bin/php -i');
?>

Veja Também

  • ssh2_connect() - Connect to an SSH server
  • ssh2_shell() - Request an interactive shell
  • ssh2_tunnel() - Open a tunnel through a remote server


Fetch an extended data stream

  • « ssh2_exec
  • ssh2_fingerprint »
  • PHP Manual
  • SSH2 Funções
  • Fetch an extended data stream

ssh2_fetch_stream

(PECL ssh2 >= 0.9.0)

ssh2_fetch_stream — Fetch an extended data stream

Descrição

ssh2_fetch_stream(resource $channel, int $streamid): resource

Fetches an alternate substream associated with an SSH2 channel stream. The SSH2 protocol currently defines only one substream, STDERR, which has a substream ID of SSH2_STREAM_STDERR (defined as 1).

Parâmetros

channel

streamid

An SSH2 channel stream.

Valor Retornado

Returns the requested stream resource.

Exemplos

Exemplo #1 Opening a shell and retrieving the stderr stream associated with it

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stdio_stream = ssh2_shell($connection);
$stderr_stream = ssh2_fetch_stream($stdio_stream, SSH2_STREAM_STDERR);
?>

Veja Também

  • ssh2_shell() - Request an interactive shell
  • ssh2_exec() - Execute a command on a remote server
  • ssh2_connect() - Connect to an SSH server


Retrieve fingerprint of remote server

  • « ssh2_fetch_stream
  • ssh2_forward_accept »
  • PHP Manual
  • SSH2 Funções
  • Retrieve fingerprint of remote server

ssh2_fingerprint

(PECL ssh2 >= 0.9.0)

ssh2_fingerprint — Retrieve fingerprint of remote server

Descrição

ssh2_fingerprint(resource $session, int $flags = SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX): string

Returns a server hostkey hash from an active session.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

flags

flags may be either of SSH2_FINGERPRINT_MD5 or SSH2_FINGERPRINT_SHA1 logically ORed with SSH2_FINGERPRINT_HEX or SSH2_FINGERPRINT_RAW.

Valor Retornado

Returns the hostkey hash as a string.

Exemplos

Exemplo #1 Checking the fingerprint against a known value

<?php
$known_host = '6F89C2F0A719B30CC38ABDF90755F2E4';

$connection = ssh2_connect('shell.example.com', 22);

$fingerprint = ssh2_fingerprint($connection,
SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX);

if ($fingerprint != $known_host) {
die("HOSTKEY MISMATCH!\n" .
"Possible Man-In-The-Middle Attack?");
}
?>


Accept a connection created by a listener

  • « ssh2_fingerprint
  • ssh2_forward_listen »
  • PHP Manual
  • SSH2 Funções
  • Accept a connection created by a listener

ssh2_forward_accept

(PECL ssh2 >= 0.9.0)

ssh2_forward_accept — Accept a connection created by a listener

Descrição

ssh2_forward_accept(resource $listener): resource|false

Accepts a connection created by a listener.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

desc

An SSH2 Listener resource, obtained from a call to ssh2_forward_listen().

Valor Retornado

Returns a stream resource, ou false em caso de falha.


Bind a port on the remote server and listen for connections

  • « ssh2_forward_accept
  • ssh2_methods_negotiated »
  • PHP Manual
  • SSH2 Funções
  • Bind a port on the remote server and listen for connections

ssh2_forward_listen

(PECL ssh2 >= 0.9.0)

ssh2_forward_listen — Bind a port on the remote server and listen for connections

Descrição

ssh2_forward_listen(
resource $session,
int $port,
string $host = ?,
int $max_connections = 16
): resource|false

Binds a port on the remote server and listen for connections.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

session

An SSH Session resource, obtained from a call to ssh2_connect().

port

The port of the remote server.

host

max_connections

Valor Retornado

Returns an SSH2 Listener, ou false em caso de falha.

Veja Também

  • ssh2_forward_accept() - Accept a connection created by a listener


Return list of negotiated methods

  • « ssh2_forward_listen
  • ssh2_poll »
  • PHP Manual
  • SSH2 Funções
  • Return list of negotiated methods

ssh2_methods_negotiated

(PECL ssh2 >= 0.9.0)

ssh2_methods_negotiated — Return list of negotiated methods

Descrição

ssh2_methods_negotiated(resource $session): array

Returns list of negotiated methods.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

Valor Retornado

Exemplos

Exemplo #1 Determining what methods were negotiated

<?php
$connection = ssh2_connect('shell.example.com', 22);
$methods = ssh2_methods_negotiated($connection);

echo "Encryption keys were negotiated using: {$methods['kex']}\n";
echo "Server identified using an {$methods['hostkey']} with ";
echo "fingerprint: " . ssh2_fingerprint($connection) . "\n";

echo "Client to Server packets will use methods:\n";
echo "\tCrypt: {$methods['client_to_server']['crypt']}\n";
echo "\tComp: {$methods['client_to_server']['comp']}\n";
echo "\tMAC: {$methods['client_to_server']['mac']}\n";

echo "Server to Client packets will use methods:\n";
echo "\tCrypt: {$methods['server_to_client']['crypt']}\n";
echo "\tComp: {$methods['server_to_client']['comp']}\n";
echo "\tMAC: {$methods['server_to_client']['mac']}\n";

?>

Veja Também

  • ssh2_connect() - Connect to an SSH server


Poll the channels/listeners/streams for events

  • « ssh2_methods_negotiated
  • ssh2_publickey_add »
  • PHP Manual
  • SSH2 Funções
  • Poll the channels/listeners/streams for events

ssh2_poll

(PECL ssh2 >= 0.9.0)

ssh2_poll — Poll the channels/listeners/streams for events

Descrição

ssh2_poll(array &$desc, int $timeout = 30): int

Polls the channels/listeners/streams for events, and returns the number of descriptors which returned non-zero revents.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

desc

An indexed array of subarrays with the keys 'resource' and 'events'. The value of the resource is a (channel) stream or an SSH2 Listener resource. The value of the event are SSH2_POLL* flags bitwise ORed together. Each subarray will be populated with an 'revents' element on return, whose values are SSH2_POLL* flags bitwise ORed together of the events that occurred.

timeout

The timeout in seconds.

Valor Retornado

Returns the number of descriptors which returned non-zero revents.


Add an authorized publickey

  • « ssh2_poll
  • ssh2_publickey_init »
  • PHP Manual
  • SSH2 Funções
  • Add an authorized publickey

ssh2_publickey_add

(PECL ssh2 >= 0.10)

ssh2_publickey_add — Add an authorized publickey

Descrição

ssh2_publickey_add(
resource $pkey,
string $algoname,
string $blob,
bool $overwrite = false,
array $attributes = ?
): bool

Nota: O subsistema de chave pública é usado para gerenciar chaves públicas em um servidor no qual o cliente já está autenticado. Para autenticar em um servidor remoto usando autenticação com chave pública, use a função ssh2_auth_pubkey_file().

Parâmetros

pkey

Publickey Subsystem resource created by ssh2_publickey_init().

algoname

Publickey algorithm (e.g.): ssh-dss, ssh-rsa

blob

Publickey blob as raw binary data

overwrite

If the specified key already exists, should it be overwritten?

attributes

Associative array of attributes to assign to this public key. Refer to ietf-secsh-publickey-subsystem for a list of supported attributes. To mark an attribute as mandatory, precede its name with an asterisk. If the server is unable to support an attribute marked mandatory, it will abort the add process.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Adding a publickey with ssh2_publickey_add()

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'password');
$pkey = ssh2_publickey_init($ssh2);

$keyblob = base64_decode('
AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5PTrLRdjNONxXH1tVFGn0
Bd26BF0aCP9qyJRlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xj
zaLpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VEHYckxQ16CjSTibI5X
69GmnYC9PNqEYq/1TP+HF10=');

ssh2_publickey_add($pkey, 'ssh-rsa', $keyblob, false, array('comment'=>"John's Key"));
?>

Veja Também

  • ssh2_publickey_init() - Initialize Publickey subsystem
  • ssh2_publickey_remove() - Remove an authorized publickey
  • ssh2_publickey_list() - List currently authorized publickeys


Initialize Publickey subsystem

  • « ssh2_publickey_add
  • ssh2_publickey_list »
  • PHP Manual
  • SSH2 Funções
  • Initialize Publickey subsystem

ssh2_publickey_init

(PECL ssh2 >= 0.10)

ssh2_publickey_init — Initialize Publickey subsystem

Descrição

ssh2_publickey_init(resource $session): resource|false

Request the Publickey subsystem from an already connected SSH2 server.

The publickey subsystem allows an already connected and authenticated client to manage the list of authorized public keys stored on the target server in an implementation agnostic manner. If the remote server does not support the publickey subsystem, the ssh2_publickey_init() function will return false.

Parâmetros

session

Valor Retornado

Returns an SSH2 Publickey Subsystem resource for use with all other ssh2_publickey_*() methods ou false em caso de falha.

Notas

Nota: O subsistema de chave pública é usado para gerenciar chaves públicas em um servidor no qual o cliente já está autenticado. Para autenticar em um servidor remoto usando autenticação com chave pública, use a função ssh2_auth_pubkey_file().

Veja Também

  • ssh2_publickey_add() - Add an authorized publickey
  • ssh2_publickey_remove() - Remove an authorized publickey
  • ssh2_publickey_list() - List currently authorized publickeys


List currently authorized publickeys

  • « ssh2_publickey_init
  • ssh2_publickey_remove »
  • PHP Manual
  • SSH2 Funções
  • List currently authorized publickeys

ssh2_publickey_list

(PECL ssh2 >= 0.10)

ssh2_publickey_list — List currently authorized publickeys

Descrição

ssh2_publickey_list(resource $pkey): array

List currently authorized publickeys.

Parâmetros

pkey

Publickey Subsystem resource

Valor Retornado

Returns a numerically indexed array of keys, each of which is an associative array containing: name, blob, and attrs elements.

Publickey elements
Array Key | Meaning
name | Name of algorithm used by this publickey, for example: ssh-dss or ssh-rsa.
blob | Publickey blob as raw binary data.
attrs | Attributes assigned to this publickey. The most common attribute, and the only one supported by publickey version 1 servers, is comment, which may be any freeform string.

Exemplos

Exemplo #1 Listing authorized keys with ssh2_publickey_list()

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'secret');
$pkey = ssh2_publickey_init($ssh2);

$list = ssh2_publickey_list($pkey);

foreach($list as $key) {
echo "Key: {$key['name']}\n";
echo "Blob: " . chunk_split(base64_encode($key['blob']), 40, "\n") . "\n";
echo "Comment: {$key['attrs']['comment']}\n\n";
}
?>

O exemplo acima produzirá:

Key: ssh-rsa
Blob: AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5P
TrLRdjNONxXH1tVFGn0Bd26BF0aCP9qyJRlvdJ3j
4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xjza
Lpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VE
HYckxQ16CjSTibI5X69GmnYC9PNqEYq/1TP+HF10
Comment: John's Key

Key: ssh-rsa
Blob: AAAAB3NzaHVt6VqSGd5C1yc2EAAAABIwA232dnJA
AIEA5HVt6VqSGd5PTrLRdjNONxX/1TP+HF1HVt6V
qSGd50H1tVFGn0BB3NzaC1yc2EAd26BF0aCP9qyJ
RlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26HVt6Vq
SGd5sDHwfL351xjzaLpipu\BGB3NzaC1yc2EA/1T
Comment: Alice's Key

Notas

Nota: O subsistema de chave pública é usado para gerenciar chaves públicas em um servidor no qual o cliente já está autenticado. Para autenticar em um servidor remoto usando autenticação com chave pública, use a função ssh2_auth_pubkey_file().

Veja Também

  • ssh2_publickey_init() - Initialize Publickey subsystem
  • ssh2_publickey_add() - Add an authorized publickey
  • ssh2_publickey_remove() - Remove an authorized publickey


Remove an authorized publickey

  • « ssh2_publickey_list
  • ssh2_scp_recv »
  • PHP Manual
  • SSH2 Funções
  • Remove an authorized publickey

ssh2_publickey_remove

(PECL ssh2 >= 0.10)

ssh2_publickey_remove — Remove an authorized publickey

Descrição

ssh2_publickey_remove(resource $pkey, string $algoname, string $blob): bool

Removes an authorized publickey.

Parâmetros

pkey

Publickey Subsystem Resource

algoname

Publickey algorithm (e.g.): ssh-dss, ssh-rsa

blob

Publickey blob as raw binary data

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Nota: O subsistema de chave pública é usado para gerenciar chaves públicas em um servidor no qual o cliente já está autenticado. Para autenticar em um servidor remoto usando autenticação com chave pública, use a função ssh2_auth_pubkey_file().

Veja Também

  • ssh2_publickey_init() - Initialize Publickey subsystem
  • ssh2_publickey_add() - Add an authorized publickey
  • ssh2_publickey_list() - List currently authorized publickeys


Request a file via SCP

  • « ssh2_publickey_remove
  • ssh2_scp_send »
  • PHP Manual
  • SSH2 Funções
  • Request a file via SCP

ssh2_scp_recv

(PECL ssh2 >= 0.9.0)

ssh2_scp_recv — Request a file via SCP

Descrição

ssh2_scp_recv(resource $session, string $remote_file, string $local_file): bool

Copy a file from the remote server to the local filesystem using the SCP protocol.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

remote_file

Path to the remote file.

local_file

Path to the local file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Downloading a file via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_recv($connection, '/remote/filename', '/local/filename');
?>

Veja Também

  • ssh2_scp_send() - Send a file via SCP
  • copy() - Copia arquivo


Send a file via SCP

  • « ssh2_scp_recv
  • ssh2_send_eof »
  • PHP Manual
  • SSH2 Funções
  • Send a file via SCP

ssh2_scp_send

(PECL ssh2 >= 0.9.0)

ssh2_scp_send — Send a file via SCP

Descrição

ssh2_scp_send(
resource $session,
string $local_file,
string $remote_file,
int $create_mode = 0644
): bool

Copy a file from the local filesystem to the remote server using the SCP protocol.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

local_file

Path to the local file.

remote_file

Path to the remote file.

create_mode

The file will be created with the mode specified by create_mode.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Uploading a file via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>

Veja Também

  • ssh2_scp_recv() - Request a file via SCP
  • copy() - Copia arquivo


Send EOF to stream

  • « ssh2_scp_send
  • ssh2_sftp_chmod »
  • PHP Manual
  • SSH2 Funções
  • Send EOF to stream

ssh2_send_eof

(PECL ssh2 >= 1.3)

ssh2_send_eof — Send EOF to stream

Descrição

ssh2_send_eof(resource $channel): bool

Sends an EOF to the stream; this is typically used to close standard input, while keeping output and error alive. For example, one can send a remote process some data over standard input, close it to start processing, and still be able to read out the results without creating additional files.

Parâmetros

channel

An SSH stream; can be acquired through functions like ssh2_fetch_stream() or ssh2_connect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ssh2_fetch_stream() - Fetch an extended data stream


Changes file mode

  • « ssh2_send_eof
  • ssh2_sftp_lstat »
  • PHP Manual
  • SSH2 Funções
  • Changes file mode

ssh2_sftp_chmod

(PECL ssh2 >= 0.12)

ssh2_sftp_chmod — Changes file mode

Descrição

ssh2_sftp_chmod(resource $sftp, string $filename, int $mode): bool

Attempts to change the mode of the specified file to that given in mode.

Parâmetros

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

filename

Path to the file.

mode

Permissions on the file. See the chmod() for more details on this parameter.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Changing the mode of a file on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_chmod($sftp, '/somedir/somefile', 0755);
?>

Veja Também

  • chmod() - Modifica as permissões do arquivo
  • ssh2_sftp() - Initialize SFTP subsystem
  • ssh2_connect() - Connect to an SSH server


Stat a symbolic link

  • « ssh2_sftp_chmod
  • ssh2_sftp_mkdir »
  • PHP Manual
  • SSH2 Funções
  • Stat a symbolic link

ssh2_sftp_lstat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_lstat — Stat a symbolic link

Descrição

ssh2_sftp_lstat(resource $sftp, string $path): array

Stats a symbolic link on the remote filesystem without following the link.

This function is similar to using the lstat() function with the ssh2.sftp:// wrapper and returns the same values.

Parâmetros

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

path

Path to the remote symbolic link.

Valor Retornado

See the documentation for stat() for details on the values which may be returned.

Exemplos

Exemplo #1 Stating a symbolic link via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_lstat($sftp, '/path/to/symlink');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

Veja Também

  • ssh2_sftp_stat() - Stat a file on a remote filesystem
  • lstat() - Obtém informações sobre um arquivo ou ligação simbólica
  • stat() - Obtém informações sobre um arquivo


Create a directory

  • « ssh2_sftp_lstat
  • ssh2_sftp_readlink »
  • PHP Manual
  • SSH2 Funções
  • Create a directory

ssh2_sftp_mkdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_mkdir — Create a directory

Descrição

ssh2_sftp_mkdir(
resource $sftp,
string $dirname,
int $mode = 0777,
bool $recursive = false
): bool

Creates a directory on the remote file server with permissions set to mode.

This function is similar to using mkdir() with the ssh2.sftp:// wrapper.

Parâmetros

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

dirname

Path of the new directory.

mode

Permissions on the new directory. The actual mode is affected by the current umask.

recursive

If recursive is true any parent directories required for dirname will be automatically created as well.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Creating a directory on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_mkdir($sftp, '/home/username/newdir');
/* Or: mkdir("ssh2.sftp://$sftp/home/username/newdir"); */
?>

Veja Também

  • mkdir() - Cria um diretório
  • ssh2_sftp_rmdir() - Remove a directory


Return the target of a symbolic link

  • « ssh2_sftp_mkdir
  • ssh2_sftp_realpath »
  • PHP Manual
  • SSH2 Funções
  • Return the target of a symbolic link

ssh2_sftp_readlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_readlink — Return the target of a symbolic link

Descrição

ssh2_sftp_readlink(resource $sftp, string $link): string

Returns the target of a symbolic link.

Parâmetros

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

link

Path of the symbolic link.

Valor Retornado

Returns the target of the symbolic link.

Exemplos

Exemplo #1 Reading a symbolic link

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$target = ssh2_sftp_readlink($sftp, '/tmp/mysql.sock');
/* $target is now (e.g.): '/var/run/mysql.sock' */
?>

Veja Também

  • readlink() - Retornar o alvo de uma ligação simbólica
  • ssh2_sftp_symlink() - Create a symlink


Resolve the realpath of a provided path string

  • « ssh2_sftp_readlink
  • ssh2_sftp_rename »
  • PHP Manual
  • SSH2 Funções
  • Resolve the realpath of a provided path string

ssh2_sftp_realpath

(PECL ssh2 >= 0.9.0)

ssh2_sftp_realpath — Resolve the realpath of a provided path string

Descrição

ssh2_sftp_realpath(resource $sftp, string $filename): string

Translates filename into the effective real path on the remote filesystem.

Parâmetros

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

filename

Valor Retornado

Returns the real path as a string.

Exemplos

Exemplo #1 Resolving a pathname

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$realpath = ssh2_sftp_realpath($sftp, '/home/username/../../../..//./usr/../etc/passwd');
/* $realpath is now: '/etc/passwd' */
?>

Veja Também

  • realpath() - Retorna o path absoluto canonizado
  • ssh2_sftp_symlink() - Create a symlink
  • ssh2_sftp_readlink() - Return the target of a symbolic link


Rename a remote file

  • « ssh2_sftp_realpath
  • ssh2_sftp_rmdir »
  • PHP Manual
  • SSH2 Funções
  • Rename a remote file

ssh2_sftp_rename

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rename — Rename a remote file

Descrição

ssh2_sftp_rename(resource $sftp, string $from, string $to): bool

Renames a file on the remote filesystem.

Parâmetros

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

from

The current file that is being renamed.

to

The new file name that replaces from.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Renaming a file via sftp

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rename($sftp, '/home/username/oldname', '/home/username/newname');
?>

Veja Também

  • rename() - Renomeia um arquivo ou diretório


Remove a directory

  • « ssh2_sftp_rename
  • ssh2_sftp_stat »
  • PHP Manual
  • SSH2 Funções
  • Remove a directory

ssh2_sftp_rmdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rmdir — Remove a directory

Descrição

ssh2_sftp_rmdir(resource $sftp, string $dirname): bool

Removes a directory from the remote file server.

This function is similar to using rmdir() with the ssh2.sftp:// wrapper.

Parâmetros

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

dirname

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Removing a directory on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rmdir($sftp, '/home/username/deltodel');
/* Or: rmdir("ssh2.sftp://$sftp/home/username/dirtodel"); */
?>

Veja Também

  • rmdir() - Remove um diretório
  • ssh2_sftp_mkdir() - Create a directory


Stat a file on a remote filesystem

  • « ssh2_sftp_rmdir
  • ssh2_sftp_symlink »
  • PHP Manual
  • SSH2 Funções
  • Stat a file on a remote filesystem

ssh2_sftp_stat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_stat — Stat a file on a remote filesystem

Descrição

ssh2_sftp_stat(resource $sftp, string $path): array

Stats a file on the remote filesystem following any symbolic links.

This function is similar to using the stat() function with the ssh2.sftp:// wrapper and returns the same values.

Parâmetros

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

path

Valor Retornado

See the documentation for stat() for details on the values which may be returned.

Exemplos

Exemplo #1 Stating a file via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_stat($sftp, '/path/to/file');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

Veja Também

  • ssh2_sftp_lstat() - Stat a symbolic link
  • lstat() - Obtém informações sobre um arquivo ou ligação simbólica
  • stat() - Obtém informações sobre um arquivo


Create a symlink

  • « ssh2_sftp_stat
  • ssh2_sftp_unlink »
  • PHP Manual
  • SSH2 Funções
  • Create a symlink

ssh2_sftp_symlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_symlink — Create a symlink

Descrição

ssh2_sftp_symlink(resource $sftp, string $target, string $link): bool

Creates a symbolic link named link on the remote filesystem pointing to target.

Parâmetros

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

target

Target of the symbolic link.

link

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Creating a symbolic link

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_symlink($sftp, '/var/run/mysql.sock', '/tmp/mysql.sock');
?>

Veja Também

  • ssh2_sftp_readlink() - Return the target of a symbolic link
  • symlink() - Cria uma ligação simbólica


Delete a file

  • « ssh2_sftp_symlink
  • ssh2_sftp »
  • PHP Manual
  • SSH2 Funções
  • Delete a file

ssh2_sftp_unlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_unlink — Delete a file

Descrição

ssh2_sftp_unlink(resource $sftp, string $filename): bool

Deletes a file on the remote filesystem.

Parâmetros

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

filename

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Deleting a file

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_unlink($sftp, '/home/username/stale_file');
?>

Veja Também

  • unlink() - Apaga um arquivo


Initialize SFTP subsystem

  • « ssh2_sftp_unlink
  • ssh2_shell »
  • PHP Manual
  • SSH2 Funções
  • Initialize SFTP subsystem

ssh2_sftp

(PECL ssh2 >= 0.9.0)

ssh2_sftp — Initialize SFTP subsystem

Descrição

ssh2_sftp(resource $session): resource|false

Request the SFTP subsystem from an already connected SSH2 server.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

Valor Retornado

This method returns an SSH2 SFTP resource for use with all other ssh2_sftp_*() methods and the ssh2.sftp:// fopen wrapper, ou false em caso de falha.

Exemplos

Exemplo #1 Opening a file via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);

$stream = fopen('ssh2.sftp://' . intval($sftp) . '/path/to/file', 'r');
?>

Veja Também

  • ssh2_scp_recv() - Request a file via SCP
  • ssh2_scp_send() - Send a file via SCP


Request an interactive shell

  • « ssh2_sftp
  • ssh2_tunnel »
  • PHP Manual
  • SSH2 Funções
  • Request an interactive shell

ssh2_shell

(PECL ssh2 >= 0.9.0)

ssh2_shell — Request an interactive shell

Descrição

ssh2_shell(
resource $session,
string $termtype = "vanilla",
?array $env = null,
int $width = 80,
int $height = 25,
int $width_height_type = SSH2_TERM_UNIT_CHARS
): resource|false

Open a shell at the remote end and allocate a stream for it.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

termtype

termtype should correspond to one of the entries in the target system's /etc/termcap file.

env

env may be passed as an associative array of name/value pairs to set in the target environment.

width

Width of the virtual terminal.

height

Height of the virtual terminal.

width_height_type

width_height_type should be one of SSH2_TERM_UNIT_CHARS or SSH2_TERM_UNIT_PIXELS.

Valor Retornado

Returns a stream resource on success, ou false em caso de falha.

Exemplos

Exemplo #1 Requesting an interactive shell

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_shell($connection, 'vt102', null, 80, 24, SSH2_TERM_UNIT_CHARS);
?>

Veja Também

  • ssh2_exec() - Execute a command on a remote server
  • ssh2_tunnel() - Open a tunnel through a remote server
  • ssh2_fetch_stream() - Fetch an extended data stream


Open a tunnel through a remote server

  • « ssh2_shell
  • Stomp »
  • PHP Manual
  • SSH2 Funções
  • Open a tunnel through a remote server

ssh2_tunnel

(PECL ssh2 >= 0.9.0)

ssh2_tunnel — Open a tunnel through a remote server

Descrição

ssh2_tunnel(resource $session, string $host, int $port): resource

Open a socket stream to an arbitrary host/port by way of the currently connected SSH server.

Parâmetros

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

host

port

Valor Retornado

Exemplos

Exemplo #1 Opening a tunnel to an arbitrary host

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_pubkey_file($connection, 'username', 'id_dsa.pub', 'id_dsa');

$tunnel = ssh2_tunnel($connection, '10.0.0.101', 12345);
?>

Veja Também

  • ssh2_connect() - Connect to an SSH server
  • fsockopen() - Abre uma conexão socket de domínio Unix ou Internet


Stomp Client

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Exemplos
  • Stomp Funções
    • stomp_connect_error — Returns a string description of the last connect error
    • stomp_version — Gets the current stomp extension version
  • Stomp — The Stomp class
    • Stomp::abort — Rolls back a transaction in progress
    • Stomp::ack — Acknowledges consumption of a message
    • Stomp::begin — Starts a transaction
    • Stomp::commit — Commits a transaction in progress
    • Stomp::__construct — Opens a connection
    • Stomp::__destruct — Closes stomp connection
    • Stomp::error — Gets the last stomp error
    • Stomp::getReadTimeout — Gets read timeout
    • Stomp::getSessionId — Gets the current stomp session ID
    • Stomp::hasFrame — Indicates whether or not there is a frame ready to read
    • Stomp::readFrame — Reads the next frame
    • Stomp::send — Sends a message
    • Stomp::setReadTimeout — Sets read timeout
    • Stomp::subscribe — Registers to listen to a given destination
    • Stomp::unsubscribe — Removes an existing subscription
  • StompFrame — The StompFrame class
    • StompFrame::__construct — Constructor
  • StompException — The StompException class
    • StompException::getDetails — Get exception details


Introdução

This extension allows php applications to communicate with any Stomp compliant Message Brokers through easy object-oriented and procedural interfaces. » Stomp official site


Dependências

The » OpenSSL package >= 0.9.6 and the openssl extension may also be required to use stomp over SSL.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/stomp


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Stomp Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
stomp.default_broker | tcp://localhost:61613 | INI_ALL |
stomp.default_connection_timeout_sec | 2 | INI_ALL |
stomp.default_connection_timeout_usec | 0 | INI_ALL |
stomp.default_read_timeout_sec | 2 | INI_ALL |
stomp.default_read_timeout_usec | 0 | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

stomp.default_broker string

The default broker URI to use when connecting to the message broker if no other URI is specified.

stomp.default_connection_timeout_sec int

The seconds part of the default connection timeout.

stomp.default_connection_timeout_usec int

The microseconds part of the default connection timeout.

stomp.default_read_timeout_sec int

The seconds part of the default reading timeout.

stomp.default_read_timeout_usec int

The microseconds part of the default reading timeout.


Tipos de Recurso

There is only one resource type used in the stomp extension - it's the link identifier for a stomp connection.


Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

$queue = '/queue/foo';
$msg = 'bar';

/* connection */
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}

/* send a message to the queue 'foo' */
$stomp->send($queue, $msg);

/* subscribe to messages from the queue 'foo' */
$stomp->subscribe($queue);

/* read a frame */
$frame = $stomp->readFrame();

if ($frame->body === $msg) {
var_dump($frame);

/* acknowledge that the frame was received */
$stomp->ack($frame);
}

/* close connection */
unset($stomp);

?>

O exemplo acima produzirá algo semelhante a:

object(StompFrame)#2 (3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["headers"]=>
  array(5) {
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257226805828"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
  ["body"]=>
  string(3) "bar"
}

Exemplo #2 Estilo procedural

<?php

$queue = '/queue/foo';
$msg = 'bar';

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}

/* begin a transaction */
stomp_begin($link, 't1');

/* send a message to the queue 'foo' */
stomp_send($link, $queue, $msg, array('transaction' => 't1'));

/* commit a transaction */
stomp_commit($link, 't1');

/* subscribe to messages from the queue 'foo' */
stomp_subscribe($link, $queue);

/* read a frame */
$frame = stomp_read_frame($link);

if ($frame['body'] === $msg) {
var_dump($frame);

/* acknowledge that the frame was received */
stomp_ack($link, $frame['headers']['message-id']);
}

/* close connection */
stomp_close($link);

?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["body"]=>
  string(3) "bar"
  ["headers"]=>
  array(6) {
    ["transaction"]=>
    string(2) "t1"
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:3:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257227037059"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
}


Stomp Funções

Índice

  • stomp_connect_error — Returns a string description of the last connect error
  • stomp_version — Gets the current stomp extension version


Returns a string description of the last connect error

  • « Stomp Funções
  • stomp_version »
  • PHP Manual
  • Stomp Funções
  • Returns a string description of the last connect error

stomp_connect_error

(PECL stomp >= 0.3.0)

stomp_connect_error — Returns a string description of the last connect error

Descrição

stomp_connect_error(): string

Returns a string description of the last connect error.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A string that describes the error, or null if no error occurred.

Exemplos

Exemplo #1 stomp_connect_error() example

<?php
$link = stomp_connect('http://localhost:61613');

if(!$link) {
die('Connection failed: ' . stomp_connect_error());
}
?>

O exemplo acima produzirá algo semelhante a:

Connection failed: Invalid Broker URI scheme


Gets the current stomp extension version

  • « stomp_connect_error
  • Stomp »
  • PHP Manual
  • Stomp Funções
  • Gets the current stomp extension version

stomp_version

(PECL stomp >= 0.1.0)

stomp_version — Gets the current stomp extension version

Descrição

stomp_version(): string

Returns a string containing the version of the current stomp extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

It returns the current stomp extension version

Exemplos

Exemplo #1 stomp_version() example

<?php

var_dump(stomp_version());

?>

O exemplo acima produzirá algo semelhante a:

string(5) "0.2.0"


The Stomp class

(PECL stomp >= 0.1.0)

Introdução

Represents a connection between PHP and a Stomp compliant Message Broker.

Resumo da classe

class Stomp {
/* Métodos */
public __construct(
string $broker = ini_get("stomp.default_broker_uri"),
string $username = ?,
string $password = ?,
array $headers = ?
)
public abort(string $transaction_id, array $headers = ?): bool
stomp_abort(resource $link, string $transaction_id, array $headers = ?): bool
public ack(mixed $msg, array $headers = ?): bool
stomp_ack(resource $link, mixed $msg, array $headers = ?): bool
public begin(string $transaction_id, array $headers = ?): bool
stomp_begin(resource $link, string $transaction_id, array $headers = ?): bool
public commit(string $transaction_id, array $headers = ?): bool
stomp_commit(resource $link, string $transaction_id, array $headers = ?): bool
stomp_connect(
string $broker = ini_get("stomp.default_broker_uri"),
string $username = ?,
string $password = ?,
array $headers = ?
): resource
stomp_close(resource $link): bool
public error(): string
stomp_error(resource $link): string
public getReadTimeout(): array
stomp_get_read_timeout(resource $link): array
public getSessionId(): string|false
stomp_get_session_id(resource $link): string|false
public hasFrame(): bool
stomp_has_frame(resource $link): bool
public readFrame(string $class_name = "stompFrame"): stompframe
stomp_read_frame(resource $link): array
public send(string $destination, mixed $msg, array $headers = ?): bool
stomp_send(
resource $link,
string $destination,
mixed $msg,
array $headers = ?
): bool
public setReadTimeout(int $seconds, int $microseconds = ?): void
stomp_set_read_timeout(resource $link, int $seconds, int $microseconds = ?): void
public subscribe(string $destination, array $headers = ?): bool
stomp_subscribe(resource $link, string $destination, array $headers = ?): bool
public unsubscribe(string $destination, array $headers = ?): bool
stomp_unsubscribe(resource $link, string $destination, array $headers = ?): bool
public __destruct()
}

Índice

  • Stomp::abort — Rolls back a transaction in progress
  • Stomp::ack — Acknowledges consumption of a message
  • Stomp::begin — Starts a transaction
  • Stomp::commit — Commits a transaction in progress
  • Stomp::__construct — Opens a connection
  • Stomp::__destruct — Closes stomp connection
  • Stomp::error — Gets the last stomp error
  • Stomp::getReadTimeout — Gets read timeout
  • Stomp::getSessionId — Gets the current stomp session ID
  • Stomp::hasFrame — Indicates whether or not there is a frame ready to read
  • Stomp::readFrame — Reads the next frame
  • Stomp::send — Sends a message
  • Stomp::setReadTimeout — Sets read timeout
  • Stomp::subscribe — Registers to listen to a given destination
  • Stomp::unsubscribe — Removes an existing subscription


Rolls back a transaction in progress

  • « Stomp
  • Stomp::ack »
  • PHP Manual
  • Stomp
  • Rolls back a transaction in progress

Stomp::abort

stomp_abort

(PECL stomp >= 0.1.0)

Stomp::abort -- stomp_abort — Rolls back a transaction in progress

Descrição

Estilo orientado a objetos (method):

public Stomp::abort(string $transaction_id, array $headers = ?): bool

Estilo procedural:

stomp_abort(resource $link, string $transaction_id, array $headers = ?): bool

Rolls back a transaction in progress.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

transaction_id

The transaction to abort.

headers

Um array associativo contendo os cabeçalhos adicionais (exemplo: receipt).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

/* connection */
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}

/* begin a transaction */
$stomp->begin('t1');

/* send a message to the queue */
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1'));

/* rollback */
$stomp->abort('t1');

/* close connection */
unset($stomp);
?>

Exemplo #2 Estilo procedural

<?php

/* connection */
$link = stomp_connect('tcp://localhost:61613');

/* check connection */
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}

/* begin a transaction */
stomp_begin($link, 't1');

/* send a message to the queue 'foo' */
stomp_send($link, '/queue/foo', 'bar', array('transaction' => 't1'));

/* rollback */
stomp_abort($link, 't1');

/* close connection */
stomp_close($link);

?>

Notas

Dica

O Stomp é naturalmente assíncrono. Comunicação síncrona pode ser implementada adicionando um cabeçalho receipt. Isso fará com que os métodos não retornem nada até que o servidor confirme o recebimento da mensagem ou até que o tempo limite de leitura seja atingido.


Acknowledges consumption of a message

  • « Stomp::abort
  • Stomp::begin »
  • PHP Manual
  • Stomp
  • Acknowledges consumption of a message

Stomp::ack

stomp_ack

(PECL stomp >= 0.1.0)

Stomp::ack -- stomp_ack — Acknowledges consumption of a message

Descrição

Estilo orientado a objetos (method):

public Stomp::ack(mixed $msg, array $headers = ?): bool

Estilo procedural:

stomp_ack(resource $link, mixed $msg, array $headers = ?): bool

Acknowledges consumption of a message from a subscription using client acknowledgment.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

msg

The message/messageId to be acknowledged.

headers

Um array associativo contendo os cabeçalhos adicionais (exemplo: receipt).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

$queue = '/queue/foo';
$msg = 'bar';

/* connection */
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}

/* send a message to the queue 'foo' */
$stomp->send($queue, $msg);

/* subscribe to messages from the queue 'foo' */
$stomp->subscribe($queue);

/* read a frame */
$frame = $stomp->readFrame();

if ($frame->body === $msg) {
/* acknowledge that the frame was received */
$stomp->ack($frame);
}

/* remove the subscription */
$stomp->unsubscribe($queue);

/* close connection */
unset($stomp);

?>

Exemplo #2 Estilo procedural

<?php

$queue = '/queue/foo';
$msg = 'bar';

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}

/* begin a transaction */
stomp_begin($link, 't1');

/* send a message to the queue 'foo' */
stomp_send($link, $queue, $msg, array('transaction' => 't1'));

/* commit a transaction */
stomp_commit($link, 't1');

/* subscribe to messages from the queue 'foo' */
stomp_subscribe($link, $queue);

/* read a frame */
$frame = stomp_read_frame($link);

if ($frame['body'] === $msg) {
/* acknowledge that the frame was received */
stomp_ack($link, $frame['headers']['message-id']);
}

/* remove the subscription */
stomp_unsubscribe($link, $queue);

/* close connection */
stomp_close($link);

?>

Notas

Nota:

Um cabeçalho de transação pode ser especificado, indicando que a confirmação da mensagem deve fazer parte da transação nomeada.

Dica

O Stomp é naturalmente assíncrono. Comunicação síncrona pode ser implementada adicionando um cabeçalho receipt. Isso fará com que os métodos não retornem nada até que o servidor confirme o recebimento da mensagem ou até que o tempo limite de leitura seja atingido.


Starts a transaction

  • « Stomp::ack
  • Stomp::commit »
  • PHP Manual
  • Stomp
  • Starts a transaction

Stomp::begin

stomp_begin

(PECL stomp >= 0.1.0)

Stomp::begin -- stomp_begin — Starts a transaction

Descrição

Estilo orientado a objetos (method):

public Stomp::begin(string $transaction_id, array $headers = ?): bool

Estilo procedural:

stomp_begin(resource $link, string $transaction_id, array $headers = ?): bool

Starts a transaction.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

transaction_id

The transaction id.

headers

Um array associativo contendo os cabeçalhos adicionais (exemplo: receipt).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

See stomp_commit() or stomp_abort().

Notas

Dica

O Stomp é naturalmente assíncrono. Comunicação síncrona pode ser implementada adicionando um cabeçalho receipt. Isso fará com que os métodos não retornem nada até que o servidor confirme o recebimento da mensagem ou até que o tempo limite de leitura seja atingido.


Commits a transaction in progress

  • « Stomp::begin
  • Stomp::__construct »
  • PHP Manual
  • Stomp
  • Commits a transaction in progress

Stomp::commit

stomp_commit

(PECL stomp >= 0.1.0)

Stomp::commit -- stomp_commit — Commits a transaction in progress

Descrição

Estilo orientado a objetos (method):

public Stomp::commit(string $transaction_id, array $headers = ?): bool

Estilo procedural:

stomp_commit(resource $link, string $transaction_id, array $headers = ?): bool

Commits a transaction in progress.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

transaction_id

The transaction id.

headers

Um array associativo contendo os cabeçalhos adicionais (exemplo: receipt).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

/* connection */
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}

/* begin a transaction */
$stomp->begin('t1');

/* send a message to the queue */
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1'));

/* commit */
$stomp->commit('t1');

/* close connection */
unset($stomp);

?>

Exemplo #2 Estilo procedural

<?php

/* connection */
$link = stomp_connect('tcp://localhost:61613');

/* check connection */
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}

/* begin a transaction */
stomp_begin($link, 't1');

/* send a message to the queue 'foo' */
stomp_send($link, '/queue/foo', 'bar', array('transaction' => 't1'));

/* commit */
stomp_commit($link, 't1');

/* close connection */
stomp_close($link);

?>

Notas

Dica

O Stomp é naturalmente assíncrono. Comunicação síncrona pode ser implementada adicionando um cabeçalho receipt. Isso fará com que os métodos não retornem nada até que o servidor confirme o recebimento da mensagem ou até que o tempo limite de leitura seja atingido.


Opens a connection

  • « Stomp::commit
  • Stomp::__destruct »
  • PHP Manual
  • Stomp
  • Opens a connection

Stomp::__construct

stomp_connect

(PECL stomp >= 0.1.0)

Stomp::__construct -- stomp_connect — Opens a connection

Descrição

Estilo orientado a objetos (constructor):

public Stomp::__construct(
string $broker = ini_get("stomp.default_broker_uri"),
string $username = ?,
string $password = ?,
array $headers = ?
)

Estilo procedural:

stomp_connect(
string $broker = ini_get("stomp.default_broker_uri"),
string $username = ?,
string $password = ?,
array $headers = ?
): resource

Opens a connection to a stomp compliant Message Broker.

Parâmetros

broker

The broker URI

username

The username.

password

The password.

headers

Um array associativo contendo os cabeçalhos adicionais (exemplo: receipt).

Valor Retornado

Nota:

Um cabeçalho de transação pode ser especificado, indicando que a confirmação da mensagem deve fazer parte da transação nomeada.

Registro de Alterações

Versão | Descrição
PECL stomp 1.0.1 | The headers parameter was added

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

/* connection */
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}

/* close connection */
unset($stomp);

?>

Exemplo #2 Estilo procedural

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}

/* close connection */
stomp_close($link);

?>


Closes stomp connection

  • « Stomp::__construct
  • Stomp::error »
  • PHP Manual
  • Stomp
  • Closes stomp connection

Stomp::__destruct

stomp_close

(PECL stomp >= 0.1.0)

Stomp::__destruct -- stomp_close — Closes stomp connection

Descrição

Estilo orientado a objetos (destructor):

public Stomp::__destruct()

Estilo procedural:

stomp_close(resource $link): bool

Closes a previously opened connection.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

See stomp_connect().


Gets the last stomp error

  • « Stomp::__destruct
  • Stomp::getReadTimeout »
  • PHP Manual
  • Stomp
  • Gets the last stomp error

Stomp::error

stomp_error

(PECL stomp >= 0.1.0)

Stomp::error -- stomp_error — Gets the last stomp error

Descrição

Estilo orientado a objetos (method):

public Stomp::error(): string

Estilo procedural:

stomp_error(resource $link): string

Gets the last stomp error.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

Valor Retornado

Returns an error string or false if no error occurred.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

/* connection */
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}

var_dump($stomp->error());

if (!$stomp->abort('unknown-transaction', array('receipt' => 'foo'))) {
var_dump($stomp->error());
}

/* close connection */
unset($stomp);

?>

O exemplo acima produzirá algo semelhante a:

bool(false)
string(43) "Invalid transaction id: unknown-transaction"

Exemplo #2 Estilo procedural

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}

var_dump(stomp_error($link));

if (!stomp_abort($link, 'unknown-transaction', array('receipt' => 'foo'))) {
var_dump(stomp_error($link));
}

/* close connection */
stomp_close($link);

?>

O exemplo acima produzirá algo semelhante a:

bool(false)
string(43) "Invalid transaction id: unknown-transaction"


Gets read timeout

  • « Stomp::error
  • Stomp::getSessionId »
  • PHP Manual
  • Stomp
  • Gets read timeout

Stomp::getReadTimeout

stomp_get_read_timeout

(PECL stomp >= 0.3.0)

Stomp::getReadTimeout -- stomp_get_read_timeout — Gets read timeout

Descrição

Estilo orientado a objetos (method):

public Stomp::getReadTimeout(): array

Estilo procedural:

stomp_get_read_timeout(resource $link): array

Gets read timeout

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

Valor Retornado

Returns an array with 2 elements: sec and usec.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

/* connection */
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}

var_dump($stomp->getReadTimeout());

/* close connection */
unset($stomp);

?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  ["sec"]=>
  int(2)
  ["usec"]=>
  int(0)
}

Exemplo #2 Estilo procedural

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}

var_dump(stomp_get_read_timeout($link));

/* close connection */
stomp_close($link);

?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  ["sec"]=>
  int(2)
  ["usec"]=>
  int(0)
}


Gets the current stomp session ID

  • « Stomp::getReadTimeout
  • Stomp::hasFrame »
  • PHP Manual
  • Stomp
  • Gets the current stomp session ID

Stomp::getSessionId

stomp_get_session_id

(PECL stomp >= 0.1.0)

Stomp::getSessionId -- stomp_get_session_id — Gets the current stomp session ID

Descrição

Estilo orientado a objetos (method):

public Stomp::getSessionId(): string|false

Estilo procedural:

stomp_get_session_id(resource $link): string|false

Gets the current stomp session ID.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

Valor Retornado

string session id on success ou false em caso de falha.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

/* connection */
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}

var_dump($stomp->getSessionId());

/* close connection */
unset($stomp);

?>

O exemplo acima produzirá algo semelhante a:

string(35) "ID:php.net-52873-1257291895530-4:14"

Exemplo #2 Estilo procedural

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}

var_dump(stomp_get_session_id($link));

/* close connection */
stomp_close($link);

?>

O exemplo acima produzirá algo semelhante a:

string(35) "ID:php.net-52873-1257291895530-4:14"


Indicates whether or not there is a frame ready to read

  • « Stomp::getSessionId
  • Stomp::readFrame »
  • PHP Manual
  • Stomp
  • Indicates whether or not there is a frame ready to read

Stomp::hasFrame

stomp_has_frame

(PECL stomp >= 0.1.0)

Stomp::hasFrame -- stomp_has_frame — Indicates whether or not there is a frame ready to read

Descrição

Estilo orientado a objetos (method):

public Stomp::hasFrame(): bool

Estilo procedural:

stomp_has_frame(resource $link): bool

Indicates whether or not there is a frame ready to read.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

Valor Retornado

Returns true if a frame is ready to read, or false otherwise.


Reads the next frame

  • « Stomp::hasFrame
  • Stomp::send »
  • PHP Manual
  • Stomp
  • Reads the next frame

Stomp::readFrame

stomp_read_frame

(PECL stomp >= 0.1.0)

Stomp::readFrame -- stomp_read_frame — Reads the next frame

Descrição

Estilo orientado a objetos (method):

public Stomp::readFrame(string $class_name = "stompFrame"): stompframe

Estilo procedural:

stomp_read_frame(resource $link): array

Reads the next frame. It is possible to instantiate an object of a specific class, and pass parameters to that class's constructor.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

class_name

The name of the class to instantiate. If not specified, a stompFrame object is returned.

Valor Retornado

Nota:

Um cabeçalho de transação pode ser especificado, indicando que a confirmação da mensagem deve fazer parte da transação nomeada.

Registro de Alterações

Versão | Descrição
Stomp 0.4.0 | class_name parameter was added.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

/* connection */
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}

/* subscribe to messages from the queue 'foo' */
$stomp->subscribe('/queue/foo');

/* read a frame */
var_dump($stomp->readFrame());

/* close connection */
unset($stomp);

?>

O exemplo acima produzirá algo semelhante a:

object(StompFrame)#2 (3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["headers"]=>
  array(5) {
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257226805828"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
  ["body"]=>
  string(3) "bar"
}

Exemplo #2 Estilo procedural

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}

/* subscribe to messages from the queue 'foo' */
stomp_subscribe($link, '/queue/foo');

/* read a frame */
$frame = stomp_read_frame($link);

/* close connection */
stomp_close($link);

?>

O exemplo acima produzirá algo semelhante a:

array(3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["body"]=>
  string(3) "bar"
  ["headers"]=>
  array(6) {
    ["transaction"]=>
    string(2) "t1"
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:3:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257227037059"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
}


Sends a message

  • « Stomp::readFrame
  • Stomp::setReadTimeout »
  • PHP Manual
  • Stomp
  • Sends a message

Stomp::send

stomp_send

(PECL stomp >= 0.1.0)

Stomp::send -- stomp_send — Sends a message

Descrição

Estilo orientado a objetos (method):

public Stomp::send(string $destination, mixed $msg, array $headers = ?): bool

Estilo procedural:

stomp_send(
resource $link,
string $destination,
mixed $msg,
array $headers = ?
): bool

Sends a message to the Message Broker.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

destination

Where to send the message

msg

Message to send.

headers

Um array associativo contendo os cabeçalhos adicionais (exemplo: receipt).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

See stomp_ack().

Notas

Nota:

Um cabeçalho de transação pode ser especificado, indicando que a confirmação da mensagem deve fazer parte da transação nomeada.

Dica

O Stomp é naturalmente assíncrono. Comunicação síncrona pode ser implementada adicionando um cabeçalho receipt. Isso fará com que os métodos não retornem nada até que o servidor confirme o recebimento da mensagem ou até que o tempo limite de leitura seja atingido.


Sets read timeout

  • « Stomp::send
  • Stomp::subscribe »
  • PHP Manual
  • Stomp
  • Sets read timeout

Stomp::setReadTimeout

stomp_set_read_timeout

(PECL stomp >= 0.3.0)

Stomp::setReadTimeout -- stomp_set_read_timeout — Sets read timeout

Descrição

Estilo orientado a objetos (method):

public Stomp::setReadTimeout(int $seconds, int $microseconds = ?): void

Estilo procedural:

stomp_set_read_timeout(resource $link, int $seconds, int $microseconds = ?): void

Sets read timeout.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

seconds

The seconds part of the timeout to be set.

microseconds

The microseconds part of the timeout to be set.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Estilo orientado a objetos

<?php

/* connection */
try {
$stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
die('Connection failed: ' . $e->getMessage());
}

$stomp->setReadTimeout(10);

/* close connection */
unset($stomp);

?>

Exemplo #2 Estilo procedural

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
die('Connection failed: ' . stomp_connect_error());
}

stomp_set_read_timeout($link, 10);

/* close connection */
stomp_close($link);

?>


Registers to listen to a given destination

  • « Stomp::setReadTimeout
  • Stomp::unsubscribe »
  • PHP Manual
  • Stomp
  • Registers to listen to a given destination

Stomp::subscribe

stomp_subscribe

(PECL stomp >= 0.1.0)

Stomp::subscribe -- stomp_subscribe — Registers to listen to a given destination

Descrição

Estilo orientado a objetos (method):

public Stomp::subscribe(string $destination, array $headers = ?): bool

Estilo procedural:

stomp_subscribe(resource $link, string $destination, array $headers = ?): bool

Registers to listen to a given destination.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

destination

Destination to subscribe to.

headers

Um array associativo contendo os cabeçalhos adicionais (exemplo: receipt).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

See stomp_ack().

Notas

Dica

O Stomp é naturalmente assíncrono. Comunicação síncrona pode ser implementada adicionando um cabeçalho receipt. Isso fará com que os métodos não retornem nada até que o servidor confirme o recebimento da mensagem ou até que o tempo limite de leitura seja atingido.


Removes an existing subscription

  • « Stomp::subscribe
  • StompFrame »
  • PHP Manual
  • Stomp
  • Removes an existing subscription

Stomp::unsubscribe

stomp_unsubscribe

(PECL stomp >= 0.1.0)

Stomp::unsubscribe -- stomp_unsubscribe — Removes an existing subscription

Descrição

Estilo orientado a objetos (method):

public Stomp::unsubscribe(string $destination, array $headers = ?): bool

Estilo procedural:

stomp_unsubscribe(resource $link, string $destination, array $headers = ?): bool

Removes an existing subscription.

Parâmetros

link

Somente no estilo procedural: O identificador do link stomp retornado por stomp_connect().

destination

Subscription to remove.

headers

Um array associativo contendo os cabeçalhos adicionais (exemplo: receipt).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

See stomp_ack().

Notas

Dica

O Stomp é naturalmente assíncrono. Comunicação síncrona pode ser implementada adicionando um cabeçalho receipt. Isso fará com que os métodos não retornem nada até que o servidor confirme o recebimento da mensagem ou até que o tempo limite de leitura seja atingido.


The StompFrame class

(PECL stomp >= 0.1.0)

Introdução

Represents a message which was sent or received from a Stomp compliant Message Broker.

Resumo da classe

class StompFrame {
/* Propriedades */
public $command;
public $headers;
public $body;
/* Métodos */
__construct(string $command = ?, array $headers = ?, string $body = ?)
}

Propriedades

command

Frame command.

headers

Frame headers (array).

body

Frame body.

Índice

  • StompFrame::__construct — Constructor


Constructor

  • « StompFrame
  • StompException »
  • PHP Manual
  • StompFrame
  • Constructor

StompFrame::__construct

(PECL stomp >= 0.1.0)

StompFrame::__construct — Constructor

Descrição

StompFrame::__construct(string $command = ?, array $headers = ?, string $body = ?)

Constructor.

Parâmetros

command

Frame command

headers

Frame headers (array).

body

Frame body.


The StompException class

(PECL stomp >= 0.1.0)

Introdução

Represents an error raised by the stomp extension. See Exceptions for more information about Exceptions in PHP.

Resumo da classe

class StompException extends Exception {
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
/* Métodos */
public getDetails(): string
}

Índice

  • StompException::getDetails — Get exception details


Get exception details

  • « StompException
  • SVM »
  • PHP Manual
  • StompException
  • Get exception details

StompException::getDetails

(PECL stomp >= 0.1.0)

StompException::getDetails — Get exception details

Descrição

public StompException::getDetails(): string

Get exception details.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

string containing the error details.


Support Vector Machine

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Exemplos
  • SVM — The SVM class
    • SVM::__construct — Construct a new SVM object
    • SVM::crossvalidate — Test training params on subsets of the training data
    • SVM::getOptions — Return the current training parameters
    • SVM::setOptions — Set training parameters
    • SVM::train — Create a SVMModel based on training data
  • SVMModel — The SVMModel class
    • SVMModel::checkProbabilityModel — Returns true if the model has probability information
    • SVMModel::__construct — Construct a new SVMModel
    • SVMModel::getLabels — Get the labels the model was trained on
    • SVMModel::getNrClass — Returns the number of classes the model was trained with
    • SVMModel::getSvmType — Get the SVM type the model was trained with
    • SVMModel::getSvrProbability — Get the sigma value for regression types
    • SVMModel::load — Load a saved SVM Model
    • SVMModel::predict_probability — Return class probabilities for previous unseen data
    • SVMModel::predict — Predict a value for previously unseen data
    • SVMModel::save — Save a model to a file


Introdução

LibSVM is an efficient solver for SVM classification and regression problems. The svm extension wraps this in a PHP interface for easy use in PHP scripts.


Dependências

Libsvm itself is required, and is available through some package management - libsvm-devel for RPM based system or libsvm-dev for Debian based ones. Alternatively it is available direct from the website. If installing from the » official website then some steps will need to be taken as the package does not install automatically. For example, assuming the latest version is 3.1:

wget http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+tar.gz
tar xvzf libsvm-3.1.tar.gz
cd libsvm-3.1
make lib
cp libsvm.so.1 /usr/lib
ln -s libsvm.so.1 libsvm.so
ldconfig
ldconfig --print | grep libsvm

This last step should show libsvm is installed.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/svm


Exemplos

The basic process is to define parameters, supply training data to generate a model on, then make predictions based on the model. There are a default set of parameters that should get some results with most any input, so we'll start by looking at the data.

Data is supplied in either a file, a stream, or as an array. If supplied in a file or a stream, it must contain one line per training example, which must be formatted as an integer class (usually 1 and -1) followed by a series of feature/value pairs, in increasing feature order. The features are integers, the values floats, usually scaled 0-1. For example:

-1 1:0.43 3:0.12 9284:0.2

In a document classification problem, say a spam checker, each line would represent a document. There would be two classes, -1 for spam, 1 for ham. Each feature would represent some word, and the value would represent that importance of that word to the document (perhaps the frequency count, with the total scaled to unit length). Features that were 0 (e.g. the word did not appear in the document at all) would simply not be included.

In array mode, the data must be passed as an array of arrays. Each sub-array must have the class as the first element, then key => value sets for the feature values pairs.

This data is passed to the SVM class's train function, which will return an SVM model is successful.

Once a model has been generated, it can be used to make predictions about previously unseen data. This can be passed as an array to the model's predict function, in the same format as before, but without the label. The response will be the class.

Models can be saved and restored as required, using the save and load functions, which both take a file location.

Exemplo #1 Train from array

<?php
$data = array(
array(-1, 1 => 0.43, 3 => 0.12, 9284 => 0.2),
array(1, 1 => 0.22, 5 => 0.01, 94 => 0.11),
);

$svm = new SVM();
$model = $svm->train($data);

$data = array(1 => 0.43, 3 => 0.12, 9284 => 0.2);
$result = $model->predict($data);
var_dump($result);
$model->save('model.svm');
?>

O exemplo acima produzirá algo semelhante a:

int(-1)

Exemplo #2 Train from a file

<?php
$svm = new SVM();
$model = $svm->train("traindata.txt");
?>


The SVM class

(PECL svm >= 0.1.0)

Introdução

Resumo da classe

class SVM {
/* Constantes */
const int C_SVC = 0;
const int NU_SVC = 1;
const int ONE_CLASS = 2;
const int EPSILON_SVR = 3;
const int NU_SVR = 4;
const int KERNEL_LINEAR = 0;
const int KERNEL_POLY = 1;
const int KERNEL_RBF = 2;
const int KERNEL_SIGMOID = 3;
const int KERNEL_PRECOMPUTED = 4;
const int OPT_TYPE = 101;
const int OPT_KERNEL_TYPE = 102;
const int OPT_DEGREE = 103;
const int OPT_SHRINKING = 104;
const int OPT_PROPABILITY = 105;
const int OPT_GAMMA = 201;
const int OPT_NU = 202;
const int OPT_EPS = 203;
const int OPT_P = 204;
const int OPT_COEF_ZERO = 205;
const int OPT_C = 206;
const int OPT_CACHE_SIZE = 207;
/* Métodos */
public __construct()
public svm::crossvalidate(array $problem, int $number_of_folds): float
public getOptions(): array
public setOptions(array $params): bool
public svm::train(array $problem, array $weights = ?): SVMModel
}

Constantes pré-definidas

SVM Constants

SVM::C_SVC

The basic C_SVC SVM type. The default, and a good starting point

SVM::NU_SVC

The NU_SVC type uses a different, more flexible, error weighting

SVM::ONE_CLASS

One class SVM type. Train just on a single class, using outliers as negative examples

SVM::EPSILON_SVR

A SVM type for regression (predicting a value rather than just a class)

SVM::NU_SVR

A NU style SVM regression type

SVM::KERNEL_LINEAR

A very simple kernel, can work well on large document classification problems

SVM::KERNEL_POLY

A polynomial kernel

SVM::KERNEL_RBF

The common Gaussian RBD kernel. Handles non-linear problems well and is a good default for classification

SVM::KERNEL_SIGMOID

A kernel based on the sigmoid function. Using this makes the SVM very similar to a two layer sigmoid based neural network

SVM::KERNEL_PRECOMPUTED

A precomputed kernel - currently unsupported.

SVM::OPT_TYPE

The options key for the SVM type

SVM::OPT_KERNEL_TYPE

The options key for the kernel type

SVM::OPT_DEGREE

SVM::OPT_SHRINKING

Training parameter, boolean, for whether to use the shrinking heuristics

SVM::OPT_PROBABILITY

Training parameter, boolean, for whether to collect and use probability estimates

SVM::OPT_GAMMA

Algorithm parameter for Poly, RBF and Sigmoid kernel types.

SVM::OPT_NU

The option key for the nu parameter, only used in the NU_ SVM types

SVM::OPT_EPS

The option key for the Epsilon parameter, used in epsilon regression

SVM::OPT_P

Training parameter used by Episilon SVR regression

SVM::OPT_COEF_ZERO

Algorithm parameter for poly and sigmoid kernels

SVM::OPT_C

The option for the cost parameter that controls tradeoff between errors and generality - effectively the penalty for misclassifying training examples.

SVM::OPT_CACHE_SIZE

Memory cache size, in MB

Índice

  • SVM::__construct — Construct a new SVM object
  • SVM::crossvalidate — Test training params on subsets of the training data
  • SVM::getOptions — Return the current training parameters
  • SVM::setOptions — Set training parameters
  • SVM::train — Create a SVMModel based on training data


Construct a new SVM object

  • « SVM
  • SVM::crossvalidate »
  • PHP Manual
  • SVM
  • Construct a new SVM object

SVM::__construct

(PECL svm >= 0.1.0)

SVM::__construct — Construct a new SVM object

Descrição

public SVM::__construct()

Constructs a new SVM object ready to accept training data.

Parâmetros

Esta função não possui parâmetros.

Erros/Exceções

Throws a SVMException if the libsvm library could not be loaded.


Test training params on subsets of the training data

  • « SVM::__construct
  • SVM::getOptions »
  • PHP Manual
  • SVM
  • Test training params on subsets of the training data

SVM::crossvalidate

(PECL svm >= 0.1.0)

SVM::crossvalidate — Test training params on subsets of the training data

Descrição

public svm::crossvalidate(array $problem, int $number_of_folds): float

Crossvalidate can be used to test the effectiveness of the current parameter set on a subset of the training data. Given a problem set and a n "folds", it separates the problem set into n subsets, and the repeatedly trains on one subset and tests on another. While the accuracy will generally be lower than a SVM trained on the enter data set, the accuracy score returned should be relatively useful, so it can be used to test different training parameters.

Parâmetros

problem

The problem data. This can either be in the form of an array, the URL of an SVMLight formatted file, or a stream to an opened SVMLight formatted datasource.

number_of_folds

The number of sets the data should be divided into and cross tested. A higher number means smaller training sets and less reliability. 5 is a good number to start with.

Valor Retornado

The correct percentage, expressed as a floating point number from 0-1. In the case of NU_SVC or EPSILON_SVR kernels the mean squared error will returned instead.

Veja Também

  • SVM::train() - Create a SVMModel based on training data


Return the current training parameters

  • « SVM::crossvalidate
  • SVM::setOptions »
  • PHP Manual
  • SVM
  • Return the current training parameters

SVM::getOptions

(PECL svm >= 0.1.0)

SVM::getOptions — Return the current training parameters

Descrição

public SVM::getOptions(): array

Retrieve an array containing the training parameters. The parameters will be keyed on the predefined SVM constants.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of configuration settings.


Set training parameters

  • « SVM::getOptions
  • SVM::train »
  • PHP Manual
  • SVM
  • Set training parameters

SVM::setOptions

(PECL svm >= 0.1.0)

SVM::setOptions — Set training parameters

Descrição

public SVM::setOptions(array $params): bool

Set one or more training parameters.

Parâmetros

params

An array of training parameters, keyed on the SVM constants.

Valor Retornado

Return true on success, throws SVMException on error.


Create a SVMModel based on training data

  • « SVM::setOptions
  • SVMModel »
  • PHP Manual
  • SVM
  • Create a SVMModel based on training data

SVM::train

(PECL svm >= 0.1.0)

SVM::train — Create a SVMModel based on training data

Descrição

public svm::train(array $problem, array $weights = ?): SVMModel

Train a support vector machine based on the supplied training data.

Parâmetros

problem

The problem can be provided in three different ways. An array, where the data should start with the class label (usually 1 or -1) then followed by a sparse data set of dimension => data pairs. A URL to a file containing a SVM Light formatted problem, with the each line being a new training example, the start of each line containing the class (1, -1) then a series of tab separated data values shows as key:value. A opened stream pointing to a data source formatted as in the file above.

weights

Weights are an optional set of weighting parameters for the different classes, to help account for unbalanced training sets. For example, if the classes were 1 and -1, and -1 had significantly more example than one, the weight for -1 could be 0.5. Weights should be in the range 0-1.

Valor Retornado

Returns an SVMModel that can be used to classify previously unseen data. Throws SVMException on error


The SVMModel class

(PECL svm >= 0.1.0)

Introdução

The SVMModel is the end result of the training process. It can be used to classify previously unseen data.

Resumo da classe

class SVMModel {
/* Métodos */
public __construct(string $filename = ?)
public checkProbabilityModel(): bool
public getLabels(): array
public getNrClass(): int
public getSvmType(): int
public getSvrProbability(): float
public load(string $filename): bool
public predict_probability(array $data): float
public predict(array $data): float
public save(string $filename): bool
}

Índice

  • SVMModel::checkProbabilityModel — Returns true if the model has probability information
  • SVMModel::__construct — Construct a new SVMModel
  • SVMModel::getLabels — Get the labels the model was trained on
  • SVMModel::getNrClass — Returns the number of classes the model was trained with
  • SVMModel::getSvmType — Get the SVM type the model was trained with
  • SVMModel::getSvrProbability — Get the sigma value for regression types
  • SVMModel::load — Load a saved SVM Model
  • SVMModel::predict_probability — Return class probabilities for previous unseen data
  • SVMModel::predict — Predict a value for previously unseen data
  • SVMModel::save — Save a model to a file


Returns true if the model has probability information

  • « SVMModel
  • SVMModel::__construct »
  • PHP Manual
  • SVMModel
  • Returns true if the model has probability information

SVMModel::checkProbabilityModel

(PECL svm >= 0.1.5)

SVMModel::checkProbabilityModel — Returns true if the model has probability information

Descrição

public SVMModel::checkProbabilityModel(): bool

Returns true if the model contains probability information.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return a boolean value


Construct a new SVMModel

  • « SVMModel::checkProbabilityModel
  • SVMModel::getLabels »
  • PHP Manual
  • SVMModel
  • Construct a new SVMModel

SVMModel::__construct

(PECL svm >= 0.1.0)

SVMModel::__construct — Construct a new SVMModel

Descrição

public SVMModel::__construct(string $filename = ?)

Build a new SVMModel. Models will usually be created from the SVM::train function, but then saved models may be restored directly.

Parâmetros

filename

The filename for the saved model file this model should load.

Erros/Exceções

Throws a SVMException on error

Veja Também

  • SVMModel::load() - Load a saved SVM Model


Get the labels the model was trained on

  • « SVMModel::__construct
  • SVMModel::getNrClass »
  • PHP Manual
  • SVMModel
  • Get the labels the model was trained on

SVMModel::getLabels

(PECL svm >= 0.1.5)

SVMModel::getLabels — Get the labels the model was trained on

Descrição

public SVMModel::getLabels(): array

Return an array of labels that the model was trained on. For regression and one class models an empty array is returned.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return an array of labels

Veja Também

  • SVMModel::getNrClass() - Returns the number of classes the model was trained with


Returns the number of classes the model was trained with

  • « SVMModel::getLabels
  • SVMModel::getSvmType »
  • PHP Manual
  • SVMModel
  • Returns the number of classes the model was trained with

SVMModel::getNrClass

(PECL svm >= 0.1.5)

SVMModel::getNrClass — Returns the number of classes the model was trained with

Descrição

public SVMModel::getNrClass(): int

Returns the number of classes the model was trained with, will return 2 for one class and regression models.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return an integer number of classes


Get the SVM type the model was trained with

  • « SVMModel::getNrClass
  • SVMModel::getSvrProbability »
  • PHP Manual
  • SVMModel
  • Get the SVM type the model was trained with

SVMModel::getSvmType

(PECL svm >= 0.1.5)

SVMModel::getSvmType — Get the SVM type the model was trained with

Descrição

public SVMModel::getSvmType(): int

Returns an integer value representing the type of the SVM model used, e.g SVM::C_SVC.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Return an integer SVM type


Get the sigma value for regression types

  • « SVMModel::getSvmType
  • SVMModel::load »
  • PHP Manual
  • SVMModel
  • Get the sigma value for regression types

SVMModel::getSvrProbability

(PECL svm >= 0.1.5)

SVMModel::getSvrProbability — Get the sigma value for regression types

Descrição

public SVMModel::getSvrProbability(): float

For regression models, returns a sigma value. If there is no probability information or the model is not SVR, 0 is returned.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a sigma value


Load a saved SVM Model

  • « SVMModel::getSvrProbability
  • SVMModel::predict_probability »
  • PHP Manual
  • SVMModel
  • Load a saved SVM Model

SVMModel::load

(PECL svm >= 0.1.00.1.0)

SVMModel::load — Load a saved SVM Model

Descrição

public SVMModel::load(string $filename): bool

Load a model file ready for classification or regression.

Parâmetros

filename

The filename of the model.

Valor Retornado

Throws SVMException on error. Returns true on success.

Veja Também

  • SVMModel::save() - Save a model to a file


Return class probabilities for previous unseen data

  • « SVMModel::load
  • SVMModel::predict »
  • PHP Manual
  • SVMModel
  • Return class probabilities for previous unseen data

SVMModel::predict_probability

(PECL svm >= 0.1.4)

SVMModel::predict_probability — Return class probabilities for previous unseen data

Descrição

public SVMModel::predict_probability(array $data): float

This function accepts an array of data and attempts to predict the class, as with the predict function. Additionally, however, this function returns an array of probabilities, one per class in the model, which represent the estimated chance of the data supplied being a member of that class. Requires that the model to be used has been trained with the probability parameter set to true.

Parâmetros

data

The array to be classified. This should be a series of key => value pairs in increasing key order, but not necessarily continuous.

probabilities

The supplied value will be filled with the probabilities. This will be either null, in the case of a model without probability information, or an array where the index is the class name and the value the predicted probability.

Valor Retornado

Float the predicted value. This will be a class label in the case of classification, a real value in the case of regression. Throws SVMException on error

Veja Também

  • SVM::predict()


Predict a value for previously unseen data

  • « SVMModel::predict_probability
  • SVMModel::save »
  • PHP Manual
  • SVMModel
  • Predict a value for previously unseen data

SVMModel::predict

(PECL svm >= 0.1.0)

SVMModel::predict — Predict a value for previously unseen data

Descrição

public SVMModel::predict(array $data): float

This function accepts an array of data and attempts to predict the class or regression value based on the model extracted from previously trained data.

Parâmetros

data

The array to be classified. This should be a series of key => value pairs in increasing key order, but not necessarily continuous.

Valor Retornado

Float the predicted value. This will be a class label in the case of classification, a real value in the case of regression. Throws SVMException on error

Veja Também

  • SVM::train() - Create a SVMModel based on training data


Save a model to a file

  • « SVMModel::predict
  • SVN »
  • PHP Manual
  • SVMModel
  • Save a model to a file

SVMModel::save

(PECL svm >= 0.1.0)

SVMModel::save — Save a model to a file

Descrição

public SVMModel::save(string $filename): bool

Save the model data to a file, for later use.

Parâmetros

filename

The file to save the model to.

Valor Retornado

Throws SVMException on error. Returns true on success.

Veja Também

  • SVMModel::load() - Load a saved SVM Model


Subversion

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • SVN Funções
    • svn_add — Schedules the addition of an item in a working directory
    • svn_auth_get_parameter — Retrieves authentication parameter
    • svn_auth_set_parameter — Sets an authentication parameter
    • svn_blame — Get the SVN blame for a file
    • svn_cat — Returns the contents of a file in a repository
    • svn_checkout — Checks out a working copy from the repository
    • svn_cleanup — Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
    • svn_client_version — Returns the version of the SVN client libraries
    • svn_commit — Sends changes from the local working copy to the repository
    • svn_delete — Delete items from a working copy or repository
    • svn_diff — Recursively diffs two paths
    • svn_export — Export the contents of a SVN directory
    • svn_fs_abort_txn — Aborts a transaction
    • svn_fs_apply_text — Creates and returns a stream that will be used to replace
    • svn_fs_begin_txn2 — Create a new transaction
    • svn_fs_change_node_prop — Return true if everything is ok, false otherwise
    • svn_fs_check_path — Determines what kind of item lives at path in a given repository fsroot
    • svn_fs_contents_changed — Return true if content is different, false otherwise
    • svn_fs_copy — Copies a file or a directory
    • svn_fs_delete — Deletes a file or a directory
    • svn_fs_dir_entries — Enumerates the directory entries under path; returns a hash of dir names to file type
    • svn_fs_file_contents — Returns a stream to access the contents of a file from a given version of the fs
    • svn_fs_file_length — Returns the length of a file from a given version of the fs
    • svn_fs_is_dir — Determines if a path points to a directory
    • svn_fs_is_file — Determines if a path points to a file
    • svn_fs_make_dir — Creates a new empty directory
    • svn_fs_make_file — Creates a new empty file
    • svn_fs_node_created_rev — Returns the revision in which path under fsroot was created
    • svn_fs_node_prop — Returns the value of a property for a node
    • svn_fs_props_changed — Return true if props are different, false otherwise
    • svn_fs_revision_prop — Fetches the value of a named property
    • svn_fs_revision_root — Get a handle on a specific version of the repository root
    • svn_fs_txn_root — Creates and returns a transaction root
    • svn_fs_youngest_rev — Returns the number of the youngest revision in the filesystem
    • svn_import — Imports an unversioned path into a repository
    • svn_log — Returns the commit log messages of a repository URL
    • svn_ls — Returns list of directory contents in repository URL, optionally at revision number
    • svn_mkdir — Creates a directory in a working copy or repository
    • svn_repos_create — Create a new subversion repository at path
    • svn_repos_fs_begin_txn_for_commit — Create a new transaction
    • svn_repos_fs_commit_txn — Commits a transaction and returns the new revision
    • svn_repos_fs — Gets a handle on the filesystem for a repository
    • svn_repos_hotcopy — Make a hot-copy of the repos at repospath; copy it to destpath
    • svn_repos_open — Open a shared lock on a repository
    • svn_repos_recover — Run recovery procedures on the repository located at path
    • svn_revert — Revert changes to the working copy
    • svn_status — Returns the status of working copy files and directories
    • svn_update — Update working copy


Introdução

This extension implements PHP bindings for » Subversion (SVN), a version control system, allowing PHP scripts to communicate with SVN repositories and working copies without direct command line calls to the svn executable.

Aviso

Esta extensão é EXPERIMENTAL. O comportamento desta extensão, incluindo os nomes de suas funções e qualquer outra documentação relacionada a esta extensão, pode mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Dependências

The Subversion binaries are not necessary to use this extension. However, when compiling the extension, libsvn (the Subversion headers) must be available.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/svn

If ./configure is having trouble finding the SVN files (for example, Subversion was installed with a different prefix directory), use ./configure --with-svn=$USR_PATH to specify the directory where the include/subversion-1/ folder is located.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.

Aviso

If the extension is compiled against libsvn 1.3, functions that work with working copies will fail when used on working copies created by Subversion 1.4.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SVN_REVISION_HEAD (int)
Magic number (-1) specifying the HEAD revision
Constants usable with svn_auth_set_parameter()
SVN_AUTH_PARAM_DEFAULT_USERNAME (string)
Property for default username to use when performing basic authentication
SVN_AUTH_PARAM_DEFAULT_PASSWORD (string)
Property for default password to use when performing basic authentication
SVN_AUTH_PARAM_NON_INTERACTIVE (string)
SVN_AUTH_PARAM_DONT_STORE_PASSWORDS (string)
SVN_AUTH_PARAM_NO_AUTH_CACHE (string)
SVN_AUTH_PARAM_SSL_SERVER_FAILURES (string)
SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO (string)
SVN_AUTH_PARAM_CONFIG (string)
SVN_AUTH_PARAM_SERVER_GROUP (string)
SVN_AUTH_PARAM_CONFIG_DIR (string)
PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS (string)
Custom property for ignoring SSL cert verification errors
Filesystem constants
SVN_FS_CONFIG_FS_TYPE (string)
Configuration key that determines filesystem type
SVN_FS_TYPE_BDB (string)
Filesystem is Berkeley-DB implementation
SVN_FS_TYPE_FSFS (string)
Filesystem is native-filesystem implementation
Reserved property constants
SVN_PROP_REVISION_DATE (string)
svn:date
SVN_PROP_REVISION_ORIG_DATE (string)
svn:original-date
SVN_PROP_REVISION_AUTHOR (string)
svn:author
SVN_PROP_REVISION_LOG (string)
svn:log
Working copy status constants
SVN_WC_STATUS_NONE (int)
Status does not exist
SVN_WC_STATUS_UNVERSIONED (int)
Item is not versioned in working copy
SVN_WC_STATUS_NORMAL (int)
Item exists, nothing else is happening
SVN_WC_STATUS_ADDED (int)
Item is scheduled for addition
SVN_WC_STATUS_MISSING (int)
Item is versioned but missing from the working copy
SVN_WC_STATUS_DELETED (int)
Item is scheduled for deletion
SVN_WC_STATUS_REPLACED (int)
Item was deleted and then re-added
SVN_WC_STATUS_MODIFIED (int)
Item (text or properties) was modified
SVN_WC_STATUS_MERGED (int)
Item's local modifications were merged with repository modifications
SVN_WC_STATUS_CONFLICTED (int)
Item's local modifications conflicted with repository modifications
SVN_WC_STATUS_IGNORED (int)
Item is unversioned but configured to be ignored
SVN_WC_STATUS_OBSTRUCTED (int)
Unversioned item is in the way of a versioned resource
SVN_WC_STATUS_EXTERNAL (int)
Unversioned path that is populated using svn:externals
SVN_WC_STATUS_INCOMPLETE (int)
Directory does not contain complete entries list
Node type constants
SVN_NODE_NONE (int)
Absent
SVN_NODE_FILE (int)
File
SVN_NODE_DIR (int)
Directory
SVN_NODE_UNKNOWN (int)
Something Subversion cannot identify


SVN Funções

Índice

  • svn_add — Schedules the addition of an item in a working directory
  • svn_auth_get_parameter — Retrieves authentication parameter
  • svn_auth_set_parameter — Sets an authentication parameter
  • svn_blame — Get the SVN blame for a file
  • svn_cat — Returns the contents of a file in a repository
  • svn_checkout — Checks out a working copy from the repository
  • svn_cleanup — Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
  • svn_client_version — Returns the version of the SVN client libraries
  • svn_commit — Sends changes from the local working copy to the repository
  • svn_delete — Delete items from a working copy or repository
  • svn_diff — Recursively diffs two paths
  • svn_export — Export the contents of a SVN directory
  • svn_fs_abort_txn — Aborts a transaction
  • svn_fs_apply_text — Creates and returns a stream that will be used to replace
  • svn_fs_begin_txn2 — Create a new transaction
  • svn_fs_change_node_prop — Return true if everything is ok, false otherwise
  • svn_fs_check_path — Determines what kind of item lives at path in a given repository fsroot
  • svn_fs_contents_changed — Return true if content is different, false otherwise
  • svn_fs_copy — Copies a file or a directory
  • svn_fs_delete — Deletes a file or a directory
  • svn_fs_dir_entries — Enumerates the directory entries under path; returns a hash of dir names to file type
  • svn_fs_file_contents — Returns a stream to access the contents of a file from a given version of the fs
  • svn_fs_file_length — Returns the length of a file from a given version of the fs
  • svn_fs_is_dir — Determines if a path points to a directory
  • svn_fs_is_file — Determines if a path points to a file
  • svn_fs_make_dir — Creates a new empty directory
  • svn_fs_make_file — Creates a new empty file
  • svn_fs_node_created_rev — Returns the revision in which path under fsroot was created
  • svn_fs_node_prop — Returns the value of a property for a node
  • svn_fs_props_changed — Return true if props are different, false otherwise
  • svn_fs_revision_prop — Fetches the value of a named property
  • svn_fs_revision_root — Get a handle on a specific version of the repository root
  • svn_fs_txn_root — Creates and returns a transaction root
  • svn_fs_youngest_rev — Returns the number of the youngest revision in the filesystem
  • svn_import — Imports an unversioned path into a repository
  • svn_log — Returns the commit log messages of a repository URL
  • svn_ls — Returns list of directory contents in repository URL, optionally at revision number
  • svn_mkdir — Creates a directory in a working copy or repository
  • svn_repos_create — Create a new subversion repository at path
  • svn_repos_fs_begin_txn_for_commit — Create a new transaction
  • svn_repos_fs_commit_txn — Commits a transaction and returns the new revision
  • svn_repos_fs — Gets a handle on the filesystem for a repository
  • svn_repos_hotcopy — Make a hot-copy of the repos at repospath; copy it to destpath
  • svn_repos_open — Open a shared lock on a repository
  • svn_repos_recover — Run recovery procedures on the repository located at path
  • svn_revert — Revert changes to the working copy
  • svn_status — Returns the status of working copy files and directories
  • svn_update — Update working copy


Schedules the addition of an item in a working directory

  • « SVN Funções
  • svn_auth_get_parameter »
  • PHP Manual
  • SVN Funções
  • Schedules the addition of an item in a working directory

svn_add

(PECL svn >= 0.1.0)

svn_add — Schedules the addition of an item in a working directory

Descrição

svn_add(string $path, bool $recursive = true, bool $force = false): bool

Adds the file, directory or symbolic link at path to the working directory. The item will be added to the repository the next time you call svn_commit() on the working copy.

Parâmetros

path

Path of item to add.

Nota: Os caminhos relativos serão resolvidos como se o diretório de trabalho atual fosse aquele que contém o binário do PHP. Para usar o diretório de trabalho do script de chamada, use realpath() ou dirname(__FILE__).

recursive

If item is directory, whether or not to recursively add all of its contents. Default is true

force

If true, Subversion will recurse into already versioned directories in order to add unversioned files that may be hiding in those directories. Default is false

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 svn_add() example

In a working directory where svn status returns:

$ svn status
?      foobar.txt

...this code:

<?php
svn_add('foobar.txt');
?>

...will schedule foobar.txt for addition into the repository.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • » SVN documentation on svn add


Retrieves authentication parameter

  • « svn_add
  • svn_auth_set_parameter »
  • PHP Manual
  • SVN Funções
  • Retrieves authentication parameter

svn_auth_get_parameter

(PECL svn >= 0.1.0)

svn_auth_get_parameter — Retrieves authentication parameter

Descrição

svn_auth_get_parameter(string $key): string

Retrieves authentication parameter at key. For a list of valid keys and their meanings, consult the authentication constants list.

Parâmetros

key

String key name. Use the authentication constants defined by this extension to specify a key.

Valor Retornado

Returns the string value of the parameter at key; returns null if parameter does not exist.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • svn_auth_set_parameter() - Sets an authentication parameter
  • Authentication constants


Sets an authentication parameter

  • « svn_auth_get_parameter
  • svn_blame »
  • PHP Manual
  • SVN Funções
  • Sets an authentication parameter

svn_auth_set_parameter

(PECL svn >= 0.1.0)

svn_auth_set_parameter — Sets an authentication parameter

Descrição

svn_auth_set_parameter(string $key, string $value): void

Sets authentication parameter at key to value. For a list of valid keys and their meanings, consult the authentication constants list.

Parâmetros

key

String key name. Use the authentication constants defined by this extension to specify a key.

value

String value to set to parameter at key. Format of value varies with the parameter.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Default authentication example

This example configures SVN so that the default username to use is 'Bob' and the default password is 'abc123':

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
?>

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • svn_auth_get_parameter() - Retrieves authentication parameter
  • Authentication constants


Get the SVN blame for a file

  • « svn_auth_set_parameter
  • svn_cat »
  • PHP Manual
  • SVN Funções
  • Get the SVN blame for a file

svn_blame

(PECL svn >= 0.3.0)

svn_blame — Get the SVN blame for a file

Descrição

svn_blame(string $repository_url, int $revision_no = SVN_REVISION_HEAD): array

Get the SVN blame of a file from a repository URL.

Parâmetros

repository_url

The repository URL.

revision_no

The revision number.

Valor Retornado

An array of SVN blame information separated by line which includes the revision number, line number, line of code, author, and date.

Exemplos

Exemplo #1 svn_blame() example

<?php
$svnurl = 'http://svn.example.org/svnroot/foo/trunk/index.php';

print_r( svn_blame($svnurl) );

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] = Array
          (
           [rev] = 1
           [line_no] = 1
           [line] = Hello World
           [author] = joesmith
           [date] = 2007-07-02T05:51:26.628396Z
          )
    [1] = Array
          ...

Veja Também

  • svn_diff() - Recursively diffs two paths
  • svn_logs()
  • svn_status() - Returns the status of working copy files and directories


Returns the contents of a file in a repository

  • « svn_blame
  • svn_checkout »
  • PHP Manual
  • SVN Funções
  • Returns the contents of a file in a repository

svn_cat

(PECL svn >= 0.1.0)

svn_cat — Returns the contents of a file in a repository

Descrição

svn_cat(string $repos_url, int $revision_no = ?): string

Returns the contents of the URL repos_url to a file in the repository, optionally at revision number revision_no.

Parâmetros

repos_url

String URL path to item in a repository.

revision_no

Integer revision number of item to retrieve, default is the HEAD revision.

Valor Retornado

Returns the string contents of the item from the repository on success, and false on failure.

Exemplos

Exemplo #1 Basic example

This example retrieves the contents of a file at revision 28:

<?php
$contents = svn_cat('http://www.example.com/svnroot/calc/gui.c', 28)
?>

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • svn_list()
  • » SVN documentation on svn cat


Checks out a working copy from the repository

  • « svn_cat
  • svn_cleanup »
  • PHP Manual
  • SVN Funções
  • Checks out a working copy from the repository

svn_checkout

(PECL svn >= 0.1.0)

svn_checkout — Checks out a working copy from the repository

Descrição

svn_checkout(
string $repos,
string $targetpath,
int $revision = ?,
int $flags = 0
): bool

Checks out a working copy from the repository at repos to targetpath at revision revision.

Parâmetros

repos

String URL path to directory in repository to check out.

targetpath

String local path to directory to check out in to

Nota: Os caminhos relativos serão resolvidos como se o diretório de trabalho atual fosse aquele que contém o binário do PHP. Para usar o diretório de trabalho do script de chamada, use realpath() ou dirname(__FILE__).

revision

Integer revision number of repository to check out. Default is HEAD, the most recent revision.

flags

Any combination of SVN_NON_RECURSIVE and SVN_IGNORE_EXTERNALS.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Basic example

This example demonstrates how to check out a directory from a repository to a directory named calc:

<?php
svn_checkout('http://www.example.com/svnroot/calc/trunk', dirname(__FILE__) . '/calc');
?>

The dirname(__FILE__) call is necessary in order to convert the calc relative path into an absolute one. If calc exists, you can also use realpath() to retrieve an absolute path.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • svn_add() - Schedules the addition of an item in a working directory
  • svn_commit() - Sends changes from the local working copy to the repository
  • svn_status() - Returns the status of working copy files and directories
  • svn_update() - Update working copy
  • » SVN documentation on svn checkout


Recursively cleanup a working copy directory, finishing incomplete operations and removing locks

  • « svn_checkout
  • svn_client_version »
  • PHP Manual
  • SVN Funções
  • Recursively cleanup a working copy directory, finishing incomplete operations and removing locks

svn_cleanup

(PECL svn >= 0.1.0)

svn_cleanup — Recursively cleanup a working copy directory, finishing incomplete operations and removing locks

Descrição

svn_cleanup(string $workingdir): bool

Recursively cleanup working copy directory workingdir, finishing any incomplete operations and removing working copy locks. Use when a working copy is in limbo and needs to be usable again.

Parâmetros

workingdir

String path to local working directory to cleanup

Nota: Os caminhos relativos serão resolvidos como se o diretório de trabalho atual fosse aquele que contém o binário do PHP. Para usar o diretório de trabalho do script de chamada, use realpath() ou dirname(__FILE__).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Basic example

This example demonstrates clean up of a working copy in a directory named help-me:

<?php
svn_cleanup(realpath('help-me'));
?>

The realpath() call is necessary due to SVN's quirky handling of relative paths.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • update()
  • » SVN documentation on svn cleanup


Returns the version of the SVN client libraries

  • « svn_cleanup
  • svn_commit »
  • PHP Manual
  • SVN Funções
  • Returns the version of the SVN client libraries

svn_client_version

(PECL svn >= 0.1.0)

svn_client_version — Returns the version of the SVN client libraries

Descrição

svn_client_version(): string

Returns the version of the SVN client libraries

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

String version number, usually in form of x.y.z.

Exemplos

Exemplo #1 Basic example

<?php
echo svn_client_version();
?>

O exemplo acima produzirá algo semelhante a:

1.3.1

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Sends changes from the local working copy to the repository

  • « svn_client_version
  • svn_delete »
  • PHP Manual
  • SVN Funções
  • Sends changes from the local working copy to the repository

svn_commit

(PECL svn >= 0.1.0)

svn_commit — Sends changes from the local working copy to the repository

Descrição

svn_commit(string $log, array $targets, bool $recursive = true): array

Commits changes made in the local working copy files enumerated in the targets array to the repository, with the log message log. Directories in the targets array will be recursively committed unless recursive is set to false.

Nota: This function does not have any parameters for specifying authentication, so a username and password must be set using svn_auth_set_parameter()

Parâmetros

log

String log text to commit

targets

Array of local paths of files to be committed

Aviso

This parameter must be an array, a string for a single target is not acceptable.

Nota: Os caminhos relativos serão resolvidos como se o diretório de trabalho atual fosse aquele que contém o binário do PHP. Para usar o diretório de trabalho do script de chamada, use realpath() ou dirname(__FILE__).

recursive

Boolean flag to disable recursive committing of directories in the targets array. Default is true.

Valor Retornado

Returns array in form of:

array(
    0 => integer revision number of commit
    1 => string ISO 8601 date and time of commit
    2 => name of committer
)

Returns false on failure.

Exemplos

Exemplo #1 Basic example

This example commits the calculator directory to a repository, using the username Bob and the password abc123 (hopefully, his password is stronger):

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
var_dump(svn_commit('Log message of Bob\'s commit', array(realpath('calculator'))));
?>

O exemplo acima produzirá:

array(
  0 => 1415,
  1 => '2007-05-26T01:44:28.453125Z',
  2 => 'Bob'
)

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • svn_auth_set_parameter() - Sets an authentication parameter
  • » SVN documentation on svn commit


Delete items from a working copy or repository

  • « svn_commit
  • svn_diff »
  • PHP Manual
  • SVN Funções
  • Delete items from a working copy or repository

svn_delete

(PECL svn >= 0.4.0)

svn_delete — Delete items from a working copy or repository

Descrição

svn_delete(string $path, bool $force = false): bool

Deletes the file, directory or symbolic link at path from the working directory. The item will be deleted from the repository the next time you call svn_commit() on the working copy.

Parâmetros

path

Path of item to delete.

Nota: Os caminhos relativos serão resolvidos como se o diretório de trabalho atual fosse aquele que contém o binário do PHP. Para usar o diretório de trabalho do script de chamada, use realpath() ou dirname(__FILE__).

force

If true, the file will be deleted even if it has local modifications. Otherwise, local modifications will result in a failure. Default is false

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • » SVN documentation on svn delete


Recursively diffs two paths

  • « svn_delete
  • svn_export »
  • PHP Manual
  • SVN Funções
  • Recursively diffs two paths

svn_diff

(PECL svn >= 0.1.0)

svn_diff — Recursively diffs two paths

Descrição

svn_diff(
string $path1,
int $rev1,
string $path2,
int $rev2
): array

Recursively diffs two paths, path1 and path2.

Nota:

This is not a general-purpose diff utility. Only local files that are versioned may be diffed: other files will fail.

Parâmetros

path1

First path to diff. This can be a URL to a file/directory in an SVN repository or a local file/directory path.

Nota: Os caminhos relativos serão resolvidos como se o diretório de trabalho atual fosse aquele que contém o binário do PHP. Para usar o diretório de trabalho do script de chamada, use realpath() ou dirname(__FILE__).

Aviso

If a local file path has only backslashes and no forward slashes, this extension will fail to find the path. Always replace all backslashes with forward slashes when using this function.

rev1

First path's revision number. Use SVN_REVISION_HEAD to specify the most recent revision.

path2

Second path to diff. See path1 for description.

rev2

Second path's revision number. See rev1 for description.

Valor Retornado

Returns an array-list consisting of two streams: the first is the diff output and the second contains error stream output. The streams can be read using fread(). Returns false or null on error.

The diff output will, by default, be in the form of Subversion's custom unified diff format, but an » external diff engine may be used depending on Subversion's configuration.

Exemplos

Exemplo #1 Basic example

This example demonstrates the basic usage of this function, and the retrieval of contents from the stream:

<?php
list($diff, $errors) = svn_diff(
'http://www.example.com/svnroot/trunk/foo', SVN_REVISION_HEAD,
'http://www.example.com/svnroot/branches/dev/foo', SVN_REVISION_HEAD
);
if (!$diff) exit;
$contents = '';
while (!feof($diff)) {
$contents .= fread($diff, 8192);
}
fclose($diff);
fclose($errors);
var_dump($contents);
?>

O exemplo acima produzirá:

Index: http://www.example.com/svnroot/trunk/foo
===================================================================
--- http://www.example.com/svnroot/trunk/foo        (.../foo) (revision 23)
+++ http://www.example.com/svnroot/branches/dev/foo (.../foo) (revision 27)
 // further diff output

Exemplo #2 Diffing two revisions of a repository path

This example implements a wrapper function that allows a user to easily diff two revisions of the same item using an external repository path (the default syntax is somewhat verbose):

<?php
function svn_diff_same_item($path, $rev1, $rev2) {
return svn_diff($path, $rev1, $path, $rev2);
}
?>

Exemplo #3 Portably diffing two local files

This example implements a wrapper function that portably diffs two local files, compensating for the realpath() fix and the backslashes bug:

<?php
function svn_diff_local($path1, $rev1, $path2, $rev2) {
$path1 = str_replace('\\', '/', realpath($path1));
$path2 = str_replace('\\', '/', realpath($path2));
return svn_diff($path1, $rev1, $path2, $rev2);
}
?>

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • » SVN documentation on svn diff


Export the contents of a SVN directory

  • « svn_diff
  • svn_fs_abort_txn »
  • PHP Manual
  • SVN Funções
  • Export the contents of a SVN directory

svn_export

(PECL svn >= 0.3.0)

svn_export — Export the contents of a SVN directory

Descrição

svn_export(
string $frompath,
string $topath,
bool $working_copy = true,
int $revision_no = -1
): bool

Export the contents of either a working copy or repository into a 'clean' directory.

Parâmetros

frompath

The path to the current repository.

topath

The path to the new repository.

working_copy

If true, it will export uncommitted files from the working copy.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 svn_export() example

<?php
$working_dir = '../';
$new_working_dir = '/home/user/devel/foo/trunk';

svn_export($working_dir, $new_working_dir);
?>

Veja Também

  • svn_import() - Imports an unversioned path into a repository


Aborts a transaction

  • « svn_export
  • svn_fs_apply_text »
  • PHP Manual
  • SVN Funções
  • Aborts a transaction

svn_fs_abort_txn

(PECL svn >= 0.2.0)

svn_fs_abort_txn — Aborts a transaction

Descrição

svn_fs_abort_txn(resource $txn): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Aborts a transaction.

Parâmetros

txn

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Creates and returns a stream that will be used to replace

  • « svn_fs_abort_txn
  • svn_fs_begin_txn2 »
  • PHP Manual
  • SVN Funções
  • Creates and returns a stream that will be used to replace

svn_fs_apply_text

(PECL svn >= 0.2.0)

svn_fs_apply_text — Creates and returns a stream that will be used to replace

Descrição

svn_fs_apply_text(resource $root, string $path): resource
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Creates and returns a stream that will be used to replace

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Create a new transaction

  • « svn_fs_apply_text
  • svn_fs_change_node_prop »
  • PHP Manual
  • SVN Funções
  • Create a new transaction

svn_fs_begin_txn2

(PECL svn >= 0.2.0)

svn_fs_begin_txn2 — Create a new transaction

Descrição

svn_fs_begin_txn2(resource $repos, int $rev): resource
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Create a new transaction

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Return true if everything is ok, false otherwise

  • « svn_fs_begin_txn2
  • svn_fs_check_path »
  • PHP Manual
  • SVN Funções
  • Return true if everything is ok, false otherwise

svn_fs_change_node_prop

(PECL svn >= 0.2.0)

svn_fs_change_node_prop — Return true if everything is ok, false otherwise

Descrição

svn_fs_change_node_prop(
resource $root,
string $path,
string $name,
string $value
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Return true if everything is ok, false otherwise

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Determines what kind of item lives at path in a given repository fsroot

  • « svn_fs_change_node_prop
  • svn_fs_contents_changed »
  • PHP Manual
  • SVN Funções
  • Determines what kind of item lives at path in a given repository fsroot

svn_fs_check_path

(PECL svn >= 0.1.0)

svn_fs_check_path — Determines what kind of item lives at path in a given repository fsroot

Descrição

svn_fs_check_path(resource $fsroot, string $path): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Determines what kind of item lives at path in a given repository fsroot

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Return true if content is different, false otherwise

  • « svn_fs_check_path
  • svn_fs_copy »
  • PHP Manual
  • SVN Funções
  • Return true if content is different, false otherwise

svn_fs_contents_changed

(PECL svn >= 0.2.0)

svn_fs_contents_changed — Return true if content is different, false otherwise

Descrição

svn_fs_contents_changed(
resource $root1,
string $path1,
resource $root2,
string $path2
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Return true if content is different, false otherwise

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Copies a file or a directory

  • « svn_fs_contents_changed
  • svn_fs_delete »
  • PHP Manual
  • SVN Funções
  • Copies a file or a directory

svn_fs_copy

(PECL svn >= 0.2.0)

svn_fs_copy — Copies a file or a directory

Descrição

svn_fs_copy(
resource $from_root,
string $from_path,
resource $to_root,
string $to_path
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Copies a file or a directory.

Parâmetros

from_root

from_path

to_root

to_path

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Deletes a file or a directory

  • « svn_fs_copy
  • svn_fs_dir_entries »
  • PHP Manual
  • SVN Funções
  • Deletes a file or a directory

svn_fs_delete

(PECL svn >= 0.2.0)

svn_fs_delete — Deletes a file or a directory

Descrição

svn_fs_delete(resource $root, string $path): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Deletes a file or a directory.

Parâmetros

root

path

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Enumerates the directory entries under path; returns a hash of dir names to file type

  • « svn_fs_delete
  • svn_fs_file_contents »
  • PHP Manual
  • SVN Funções
  • Enumerates the directory entries under path; returns a hash of dir names to file type

svn_fs_dir_entries

(PECL svn >= 0.1.0)

svn_fs_dir_entries — Enumerates the directory entries under path; returns a hash of dir names to file type

Descrição

svn_fs_dir_entries(resource $fsroot, string $path): array
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Enumerates the directory entries under path; returns a hash of dir names to file type

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Returns a stream to access the contents of a file from a given version of the fs

  • « svn_fs_dir_entries
  • svn_fs_file_length »
  • PHP Manual
  • SVN Funções
  • Returns a stream to access the contents of a file from a given version of the fs

svn_fs_file_contents

(PECL svn >= 0.1.0)

svn_fs_file_contents — Returns a stream to access the contents of a file from a given version of the fs

Descrição

svn_fs_file_contents(resource $fsroot, string $path): resource
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns a stream to access the contents of a file from a given version of the fs

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Returns the length of a file from a given version of the fs

  • « svn_fs_file_contents
  • svn_fs_is_dir »
  • PHP Manual
  • SVN Funções
  • Returns the length of a file from a given version of the fs

svn_fs_file_length

(PECL svn >= 0.1.0)

svn_fs_file_length — Returns the length of a file from a given version of the fs

Descrição

svn_fs_file_length(resource $fsroot, string $path): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the length of a file from a given version of the fs

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Determines if a path points to a directory

  • « svn_fs_file_length
  • svn_fs_is_file »
  • PHP Manual
  • SVN Funções
  • Determines if a path points to a directory

svn_fs_is_dir

(PECL svn >= 0.2.0)

svn_fs_is_dir — Determines if a path points to a directory

Descrição

svn_fs_is_dir(resource $root, string $path): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Determines if the given path points to a directory.

Parâmetros

root

path

Valor Retornado

Returns true if the path points to a directory, false otherwise.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Determines if a path points to a file

  • « svn_fs_is_dir
  • svn_fs_make_dir »
  • PHP Manual
  • SVN Funções
  • Determines if a path points to a file

svn_fs_is_file

(PECL svn >= 0.2.0)

svn_fs_is_file — Determines if a path points to a file

Descrição

svn_fs_is_file(resource $root, string $path): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Determines if the given path points to a file.

Parâmetros

root

path

Valor Retornado

Returns true if the path points to a file, false otherwise.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Creates a new empty directory

  • « svn_fs_is_file
  • svn_fs_make_file »
  • PHP Manual
  • SVN Funções
  • Creates a new empty directory

svn_fs_make_dir

(PECL svn >= 0.2.0)

svn_fs_make_dir — Creates a new empty directory

Descrição

svn_fs_make_dir(resource $root, string $path): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Creates a new empty directory.

Parâmetros

root

path

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Creates a new empty file

  • « svn_fs_make_dir
  • svn_fs_node_created_rev »
  • PHP Manual
  • SVN Funções
  • Creates a new empty file

svn_fs_make_file

(PECL svn >= 0.2.0)

svn_fs_make_file — Creates a new empty file

Descrição

svn_fs_make_file(resource $root, string $path): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Creates a new empty file.

Parâmetros

root

path

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Returns the revision in which path under fsroot was created

  • « svn_fs_make_file
  • svn_fs_node_prop »
  • PHP Manual
  • SVN Funções
  • Returns the revision in which path under fsroot was created

svn_fs_node_created_rev

(PECL svn >= 0.1.0)

svn_fs_node_created_rev — Returns the revision in which path under fsroot was created

Descrição

svn_fs_node_created_rev(resource $fsroot, string $path): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the revision in which path under fsroot was created

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Returns the value of a property for a node

  • « svn_fs_node_created_rev
  • svn_fs_props_changed »
  • PHP Manual
  • SVN Funções
  • Returns the value of a property for a node

svn_fs_node_prop

(PECL svn >= 0.1.0)

svn_fs_node_prop — Returns the value of a property for a node

Descrição

svn_fs_node_prop(resource $fsroot, string $path, string $propname): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the value of a property for a node

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Return true if props are different, false otherwise

  • « svn_fs_node_prop
  • svn_fs_revision_prop »
  • PHP Manual
  • SVN Funções
  • Return true if props are different, false otherwise

svn_fs_props_changed

(PECL svn >= 0.2.0)

svn_fs_props_changed — Return true if props are different, false otherwise

Descrição

svn_fs_props_changed(
resource $root1,
string $path1,
resource $root2,
string $path2
): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Return true if props are different, false otherwise

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Fetches the value of a named property

  • « svn_fs_props_changed
  • svn_fs_revision_root »
  • PHP Manual
  • SVN Funções
  • Fetches the value of a named property

svn_fs_revision_prop

(PECL svn >= 0.1.0)

svn_fs_revision_prop — Fetches the value of a named property

Descrição

svn_fs_revision_prop(resource $fs, int $revnum, string $propname): string
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Fetches the value of a named property

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Get a handle on a specific version of the repository root

  • « svn_fs_revision_prop
  • svn_fs_txn_root »
  • PHP Manual
  • SVN Funções
  • Get a handle on a specific version of the repository root

svn_fs_revision_root

(PECL svn >= 0.1.0)

svn_fs_revision_root — Get a handle on a specific version of the repository root

Descrição

svn_fs_revision_root(resource $fs, int $revnum): resource
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Get a handle on a specific version of the repository root

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Creates and returns a transaction root

  • « svn_fs_revision_root
  • svn_fs_youngest_rev »
  • PHP Manual
  • SVN Funções
  • Creates and returns a transaction root

svn_fs_txn_root

(PECL svn >= 0.2.0)

svn_fs_txn_root — Creates and returns a transaction root

Descrição

svn_fs_txn_root(resource $txn): resource
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Creates and returns a transaction root

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Returns the number of the youngest revision in the filesystem

  • « svn_fs_txn_root
  • svn_import »
  • PHP Manual
  • SVN Funções
  • Returns the number of the youngest revision in the filesystem

svn_fs_youngest_rev

(PECL svn >= 0.1.0)

svn_fs_youngest_rev — Returns the number of the youngest revision in the filesystem

Descrição

svn_fs_youngest_rev(resource $fs): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Returns the number of the youngest revision in the filesystem

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Imports an unversioned path into a repository

  • « svn_fs_youngest_rev
  • svn_log »
  • PHP Manual
  • SVN Funções
  • Imports an unversioned path into a repository

svn_import

(PECL svn >= 0.2.0)

svn_import — Imports an unversioned path into a repository

Descrição

svn_import(string $path, string $url, bool $nonrecursive): bool

Commits unversioned path into repository at url. If path is a directory and nonrecursive is false, the directory will be imported recursively.

Parâmetros

path

Path of file or directory to import.

Nota: Os caminhos relativos serão resolvidos como se o diretório de trabalho atual fosse aquele que contém o binário do PHP. Para usar o diretório de trabalho do script de chamada, use realpath() ou dirname(__FILE__).

url

Repository URL to import into.

nonrecursive

Whether or not to refrain from recursively processing directories.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Basic example

This example demonstrates a basic use-case of this function. To import a directory named new-files into the repository at http://www.example.com/svnroot/incoming/abc, use:

<?php
svn_import(realpath('new-files'), 'http://www.example.com/svnroot/incoming/abc', false);
?>

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • svn_add() - Schedules the addition of an item in a working directory
  • » SVN documentation for svn import


Returns the commit log messages of a repository URL

  • « svn_import
  • svn_ls »
  • PHP Manual
  • SVN Funções
  • Returns the commit log messages of a repository URL

svn_log

(PECL svn >= 0.1.0)

svn_log — Returns the commit log messages of a repository URL

Descrição

svn_log(
string $repos_url,
int $start_revision = ?,
int $end_revision = ?,
int $limit = 0,
int $flags = SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY
): array

svn_log() returns the complete history of the item at the repository URL repos_url, or the history of a specific revision if start_revision is set. This function is equivalent to svn log --verbose -r $start_revision $repos_url.

Parâmetros

repos_url

Repository URL of the item to retrieve log history from.

start_revision

Revision number of the first log to retrieve. Use SVN_REVISION_HEAD to retrieve the log from the most recent revision.

end_revision

Revision number of the last log to retrieve. Defaults to start_revision if specified or to SVN_REVISION_INITIAL otherwise.

limit

Number of logs to retrieve.

flags

Any combination of SVN_OMIT_MESSAGES, SVN_DISCOVER_CHANGED_PATHS and SVN_STOP_ON_COPY.

Valor Retornado

On success, this function returns an array file listing in the format of:

[0] => Array, ordered most recent (highest) revision first
(
    [rev] => integer revision number
    [author] => string author name
    [msg] => string log message
    [date] => string date formatted per ISO 8601, i.e. date('c')
    [paths] => Array, describing changed files
        (
            [0] => Array
                (
                    [action] => string letter signifying change
                    [path] =>  absolute repository path of changed file
                )
            [1] => ...
        )
)
[1] => ...

Nota:

The output will always be a numerically indexed array of arrays, even when there are none or only one log message(s).

The value of action is a subset of the » status output in the first column, where possible values are:

Actions
Letter | Description
M | Item/props was modified
A | Item was added
D | Item was deleted
R | Item was replaced

If no changes were made to the item, an empty array is returned.

Exemplos

Exemplo #1 svn_log() example

<?php
print_r( svn_log('http://www.example.com/', 23) );
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
    (
        [rev] => 23
        [author] => 'joe'
        [msg] => 'Add cheese and salami to our sandwich.'
        [date] => '2007-04-06T16:00:27-04:00'
        [paths] => Array
            (
                [0] => Array
                    (
                        [action] => 'M'
                        [path] =>  '/sandwich.txt'
                    )
            )
    )
)

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • » SVN documentation on svn log


Returns list of directory contents in repository URL, optionally at revision number

  • « svn_log
  • svn_mkdir »
  • PHP Manual
  • SVN Funções
  • Returns list of directory contents in repository URL, optionally at revision number

svn_ls

(PECL svn >= 0.1.0)

svn_ls — Returns list of directory contents in repository URL, optionally at revision number

Descrição

svn_ls(
string $repos_url,
int $revision_no = SVN_REVISION_HEAD,
bool $recurse = false,
bool $peg = false
): array

This function queries the repository URL and returns a list of files and directories, optionally from a specific revision. This is equivalent to svn list $repos_url[@$revision_no]

Nota:

This function does not work with working copies. repos_url must be a repository URL.

Parâmetros

url

URL of the repository, eg. http://www.example.com/svnroot. To access a local Subversion repository via filesystem, use the file URI scheme, eg. file:///home/user/svn-repos

revision

Integer revision number to retrieve listing of. When omitted, the HEAD revision is used.

recurse

Enables recursion.

Valor Retornado

On success, this function returns an array file listing in the format of:

[0] => Array
    (
        [created_rev] => integer revision number of last edit
        [last_author] => string author name of last edit
        [size] => integer byte file size of file
        [time] => string date of last edit in form 'M d H:i'
                  or 'M d Y', depending on how old the file is
        [time_t] => integer unix timestamp of last edit
        [name] => name of file/directory
        [type] => type, can be 'file' or 'dir'
    )
[1] => ...

Exemplos

Exemplo #1 svn_ls() example

<?php
print_r( svn_ls('http://www.example.com/svnroot/') );
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Array
        (
            [created_rev] => 20
            [last_author] => Joe
            [size] => 0
            [time] => Apr 02 09:28
            [time_t] => 1175520529
            [name] => tags
            [type] => dir
        )
    [1] => Array
        (
            [created_rev] => 23
            [last_author] => Bob
            [size] => 0
            [time] => Apr 02 15:15
            [time_t] => 1175541322
            [name] => trunk
            [type] => dir
        )
)

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • » SVN documentation on svn list


Creates a directory in a working copy or repository

  • « svn_ls
  • svn_repos_create »
  • PHP Manual
  • SVN Funções
  • Creates a directory in a working copy or repository

svn_mkdir

(PECL svn >= 0.4.0)

svn_mkdir — Creates a directory in a working copy or repository

Descrição

svn_mkdir(string $path, string $log_message = ?): bool

Creates a directory in a working copy or repository.

Parâmetros

path

The path to the working copy or repository.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • svn_add() - Schedules the addition of an item in a working directory
  • svn_copy()


Create a new subversion repository at path

  • « svn_mkdir
  • svn_repos_fs_begin_txn_for_commit »
  • PHP Manual
  • SVN Funções
  • Create a new subversion repository at path

svn_repos_create

(PECL svn >= 0.1.0)

svn_repos_create — Create a new subversion repository at path

Descrição

svn_repos_create(string $path, array $config = ?, array $fsconfig = ?): resource
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Create a new subversion repository at path

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Create a new transaction

  • « svn_repos_create
  • svn_repos_fs_commit_txn »
  • PHP Manual
  • SVN Funções
  • Create a new transaction

svn_repos_fs_begin_txn_for_commit

(PECL svn >= 0.2.0)

svn_repos_fs_begin_txn_for_commit — Create a new transaction

Descrição

svn_repos_fs_begin_txn_for_commit(
resource $repos,
int $rev,
string $author,
string $log_msg
): resource
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Create a new transaction

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Commits a transaction and returns the new revision

  • « svn_repos_fs_begin_txn_for_commit
  • svn_repos_fs »
  • PHP Manual
  • SVN Funções
  • Commits a transaction and returns the new revision

svn_repos_fs_commit_txn

(PECL svn >= 0.2.0)

svn_repos_fs_commit_txn — Commits a transaction and returns the new revision

Descrição

svn_repos_fs_commit_txn(resource $txn): int
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Commits a transaction and returns the new revision

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Gets a handle on the filesystem for a repository

  • « svn_repos_fs_commit_txn
  • svn_repos_hotcopy »
  • PHP Manual
  • SVN Funções
  • Gets a handle on the filesystem for a repository

svn_repos_fs

(PECL svn >= 0.1.0)

svn_repos_fs — Gets a handle on the filesystem for a repository

Descrição

svn_repos_fs(resource $repos): resource
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Gets a handle on the filesystem for a repository

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Make a hot-copy of the repos at repospath; copy it to destpath

  • « svn_repos_fs
  • svn_repos_open »
  • PHP Manual
  • SVN Funções
  • Make a hot-copy of the repos at repospath; copy it to destpath

svn_repos_hotcopy

(PECL svn >= 0.1.0)

svn_repos_hotcopy — Make a hot-copy of the repos at repospath; copy it to destpath

Descrição

svn_repos_hotcopy(string $repospath, string $destpath, bool $cleanlogs): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Make a hot-copy of the repos at repospath; copy it to destpath

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Open a shared lock on a repository

  • « svn_repos_hotcopy
  • svn_repos_recover »
  • PHP Manual
  • SVN Funções
  • Open a shared lock on a repository

svn_repos_open

(PECL svn >= 0.1.0)

svn_repos_open — Open a shared lock on a repository

Descrição

svn_repos_open(string $path): resource
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Open a shared lock on a repository.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Run recovery procedures on the repository located at path

  • « svn_repos_open
  • svn_revert »
  • PHP Manual
  • SVN Funções
  • Run recovery procedures on the repository located at path

svn_repos_recover

(PECL svn >= 0.1.0)

svn_repos_recover — Run recovery procedures on the repository located at path

Descrição

svn_repos_recover(string $path): bool
Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Run recovery procedures on the repository located at path.

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Revert changes to the working copy

  • « svn_repos_recover
  • svn_status »
  • PHP Manual
  • SVN Funções
  • Revert changes to the working copy

svn_revert

(PECL svn >= 0.3.0)

svn_revert — Revert changes to the working copy

Descrição

svn_revert(string $path, bool $recursive = false): bool

Revert any local changes to the path in a working copy.

Parâmetros

path

The path to the working repository.

recursive

Optionally make recursive changes.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • svn_delete() - Delete items from a working copy or repository
  • svn_export() - Export the contents of a SVN directory


Returns the status of working copy files and directories

  • « svn_revert
  • svn_update »
  • PHP Manual
  • SVN Funções
  • Returns the status of working copy files and directories

svn_status

(PECL svn >= 0.1.0)

svn_status — Returns the status of working copy files and directories

Descrição

svn_status(string $path, int $flags = 0): array

Returns the status of working copy files and directories, giving modifications, additions, deletions and other changes to items in the working copy.

Parâmetros

path

Local path to file or directory to retrieve status of.

Nota: Os caminhos relativos serão resolvidos como se o diretório de trabalho atual fosse aquele que contém o binário do PHP. Para usar o diretório de trabalho do script de chamada, use realpath() ou dirname(__FILE__).

flags

Any combination of Svn::NON_RECURSIVE, Svn::ALL (regardless of modification status), Svn::SHOW_UPDATES (entries will be added for items that are out-of-date), Svn::NO_IGNORE (disregard svn:ignore properties when scanning for new files) and Svn::IGNORE_EXTERNALS.

Valor Retornado

Returns a numerically indexed array of associative arrays detailing the status of items in the repository:

Array (
    [0] => Array (
        // information on item
    )
    [1] => ...
)

The information on the item is an associative array that can contain the following keys:

path
String path to file/directory of this entry on local filesystem.
text_status
Status of item's text. Consulte as constantes de status para obter os valores possíveis.
repos_text_status
Status of item's text in repository. Only accurate if update was set to true. Consulte as constantes de status para obter os valores possíveis.
prop_status
Status of item's properties. Consulte as constantes de status para obter os valores possíveis.
repos_prop_status
Status of item's property in repository. Only accurate if update was set to true. Consulte as constantes de status para obter os valores possíveis.
locked
Whether or not the item is locked. (Only set if true.)
copied
Whether or not the item was copied (scheduled for addition with history). (Only set if true.)
switched
Whether or not the item was switched using the switch command. (Only set if true)

These keys are only set if the item is versioned:

name
Base name of item in repository.
url
URL of item in repository.
repos
Base URL of repository.
revision
Integer revision of item in working copy.
kind
Type of item, i.e. file or directory. Consulte as constantes de tipo para obter os valores possíveis.
schedule
Scheduled action for item, i.e. addition or deletion. Constants for these magic numbers are not available, they can be emulated by using:
<?php
if (!defined('svn_wc_schedule_normal')) {
define('svn_wc_schedule_normal', 0); // nothing special
define('svn_wc_schedule_add', 1); // item will be added
define('svn_wc_schedule_delete', 2); // item will be deleted
define('svn_wc_schedule_replace', 3); // item will be added and deleted
}
?>
deleted
Whether or not the item was deleted, but parent revision lags behind. (Only set if true.)
absent
Whether or not the item is absent, that is, Subversion knows that there should be something there but there isn't. (Only set if true.)
incomplete
Whether or not the entries file for a directory is incomplete. (Only set if true.)
cmt_date
Integer Unix timestamp of last commit date. (Unaffected by update.)
cmt_rev
Integer revision of last commit. (Unaffected by update.)
cmt_author
String author of last commit. (Unaffected by update.)
prop_time
Integer Unix timestamp of last up-to-date time for properties
text_time
Integer Unix timestamp of last up-to-date time for text

Exemplos

Exemplo #1 Basic example

This example demonstrates a basic, theoretical usage of this function.

<?php
print_r(svn_status(realpath('wc')));
?>

O exemplo acima produzirá algo semelhante a:

Array (
    [0] => Array (
        [path] => /home/bob/wc/sandwich.txt
        [text_status] => 8 // item was modified
        [repos_text_status] => 1 // no information available, use update
        [prop_status] => 3 // no changes
        [repos_prop_status] => 1 // no information available, use update
        [name] => sandwich.txt
        [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt
        [repos] => http://www.example.com/svnroot/
        [revision] => 123
        [kind] => 1 // file
        [schedule] => 0 // no special actions scheduled
        [cmt_date] => 1165543135
        [cmt_rev] => 120
        [cmt_author] => Alice
        [prop_time] => 1180201728
        [text_time] => 1180201729
    )
)

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • svn_update() - Update working copy
  • svn_log() - Returns the commit log messages of a repository URL
  • » SVN documentation for svn status


Update working copy

  • « svn_status
  • TCP »
  • PHP Manual
  • SVN Funções
  • Update working copy

svn_update

(PECL svn >= 0.1.0)

svn_update — Update working copy

Descrição

svn_update(string $path, int $revno = SVN_REVISION_HEAD, bool $recurse = true): int

Update working copy at path to revision revno. If recurse is true, directories will be recursively updated.

Parâmetros

path

Path to local working copy.

Nota: Os caminhos relativos serão resolvidos como se o diretório de trabalho atual fosse aquele que contém o binário do PHP. Para usar o diretório de trabalho do script de chamada, use realpath() ou dirname(__FILE__).

revno

Revision number to update to, default is SVN_REVISION_HEAD.

recurse

Whether or not to recursively update directories.

Valor Retornado

Returns new revision number on success, returns false on failure.

Exemplos

Exemplo #1 Basic example

This example demonstrates basic usage of this function:

<?php
echo svn_update(realpath('working-copy'));
?>

O exemplo acima produzirá algo semelhante a:

234

Notas

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Veja Também

  • svn_checkout() - Checks out a working copy from the repository
  • svn_commit() - Sends changes from the local working copy to the repository
  • » SVN documentation for svn update


TCP Wrappers

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções de TCP
    • tcpwrap_check — Performs a tcpwrap check


Introdução

A TCP wrappers fornece um mecanismo clássico do Unix que foi projetado para verificar se o cliente remoto está disponível para conexão pelo dada endereço IP.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/tcpwrap.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


  • « Tipos de Recurso
  • Funções de TCP »
  • PHP Manual
  • TCP
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


  • « Constantes pré-definidas
  • tcpwrap_check »
  • PHP Manual
  • TCP
  • Funções de TCP

Funções de TCP

Índice

  • tcpwrap_check — Performs a tcpwrap check


Performs a tcpwrap check

  • « Funções de TCP
  • Varnish »
  • PHP Manual
  • Funções de TCP
  • Performs a tcpwrap check

tcpwrap_check

(PECL tcpwrap >= 0.1.0)

tcpwrap_check — Performs a tcpwrap check

Descrição

tcpwrap_check(
string $daemon,
string $address,
string $user = ?,
bool $nodns = false
): bool

This function consults the /etc/hosts.allow and /etc/hosts.deny files to check if access to service daemon should be granted or denied for a client.

Parâmetros

daemon

The service name.

address

The client remote address. Can be either an IP address or a domain name.

user

An optional user name.

nodns

If address looks like domain name then DNS is used to resolve it to IP address; set nodns to true to avoid this.

Valor Retornado

This function returns true if access should be granted, false otherwise.

Exemplos

Exemplo #1 Deny all connections from localhost

If your /etc/hosts.deny file contains:

php: 127.0.0.1

And your code looks like:

<?php
if (!tcpwrap_check('php', $_SERVER['REMOTE_ADDR'])) {
die('You are not welcome here');
}
?>

Veja Também

For more details please consult hosts_access(3) man page.


Varnish

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Basic VarnishAdmin usage
    • Basic VarnishStat usage
    • Basic VarnishLog usage
  • VarnishAdmin — The VarnishAdmin class
    • VarnishAdmin::auth — Authenticate on a varnish instance
    • VarnishAdmin::ban — Ban URLs using a VCL expression
    • VarnishAdmin::banUrl — Ban an URL using a VCL expression
    • VarnishAdmin::clearPanic — Clear varnish instance panic messages
    • VarnishAdmin::connect — Connect to a varnish instance administration interface
    • VarnishAdmin::__construct — VarnishAdmin constructor
    • VarnishAdmin::disconnect — Disconnect from a varnish instance administration interface
    • VarnishAdmin::getPanic — Get the last panic message on a varnish instance
    • VarnishAdmin::getParams — Fetch current varnish instance configuration parameters
    • VarnishAdmin::isRunning — Check if the varnish slave process is currently running
    • VarnishAdmin::setCompat — Set the class compat configuration param
    • VarnishAdmin::setHost — Set the class host configuration param
    • VarnishAdmin::setIdent — Set the class ident configuration param
    • VarnishAdmin::setParam — Set configuration param on the current varnish instance
    • VarnishAdmin::setPort — Set the class port configuration param
    • VarnishAdmin::setSecret — Set the class secret configuration param
    • VarnishAdmin::setTimeout — Set the class timeout configuration param
    • VarnishAdmin::start — Start varnish worker process
    • VarnishAdmin::stop — Stop varnish worker process
  • VarnishStat — The VarnishStat class
    • VarnishStat::__construct — VarnishStat constructor
    • VarnishStat::getSnapshot — Get the current varnish instance statistics snapshot
  • VarnishLog — The VarnishLog class
    • VarnishLog::__construct — Varnishlog constructor
    • VarnishLog::getLine — Get next log line
    • VarnishLog::getTagName — Get the log tag string representation by its index


Introdução

Varnish Cache is an open source, state of the art web application accelerator. The extension makes it possible to interact with a running varnish instance through TCP socket or shared memory.


Dependências

To use this extension, you will need Varnish Cache of the version >=3.0 installed, available on the » Varnish Cache homepage


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/varnish.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/varnish/.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

VARNISH_STATUS_SYNTAX (int)
VARNISH_STATUS_UNKNOWN (int)
VARNISH_STATUS_UNIMPL (int)
VARNISH_STATUS_TOOFEW (int)
VARNISH_STATUS_TOOMANY (int)
VARNISH_STATUS_PARAM (int)
VARNISH_STATUS_AUTH (int)
VARNISH_STATUS_OK (int)
VARNISH_STATUS_CANT (int)
VARNISH_STATUS_COMMS (int)
VARNISH_STATUS_CLOSE (int)
VARNISH_CONFIG_IDENT (string)
VARNISH_CONFIG_HOST (string)
VARNISH_CONFIG_PORT (string)
VARNISH_CONFIG_TIMEOUT (string)
VARNISH_CONFIG_SECRET (string)
VARNISH_CONFIG_COMPAT (string)
VARNISH_COMPAT_2 (int)
VARNISH_COMPAT_3 (int)


  • « Constantes pré-definidas
  • Basic VarnishAdmin usage »
  • PHP Manual
  • Varnish
  • Exemplos

Exemplos

Índice

  • Basic VarnishAdmin usage
  • Basic VarnishStat usage
  • Basic VarnishLog usage


Basic VarnishAdmin usage

The example illustrates a simple usage of the ban functionality

Exemplo #1 Ban an URL

<?php

$args = array(
VARNISH_CONFIG_HOST => "::1",
VARNISH_CONFIG_PORT => 6082,
VARNISH_CONFIG_SECRET => "5174826b-8595-4958-aa7a-0609632ad7ca",
VARNISH_CONFIG_TIMEOUT => 300,
);

$va = new VarnishAdmin($args);

try {
if(!$va->connect()) {
throw new VarnishException("Connection failed\n");
}
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}

try {
if(!$va->auth()) {
throw new VarnishException("Auth failed\n");
}
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}

try {
$status = $va->ban('req.url ~ "^/$"');
if (VARNISH_STATUS_OK != $status) {
throw new VarnishException("Ban method returned $status status\n");
}
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}

exit(0);

?>


Basic VarnishStat usage

The example illustrates getting varnish statistic snapshot from shared memory

Exemplo #1 Get statistic snapshot

<?php

$vs = new VarnishStat;

try {
$data = $vs->getSnapshot();
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}

exit(0);
?>


Basic VarnishLog usage

The example illustrates reading varnish log lines from shared memory

Exemplo #1 Read varnish shared memory log

<?php

$vl = new VarnishLog;
while(1) {
$line = $vl->getLine();
printf("%s %d %s", VarnishLog::getTagName($line['tag']), $line['id'],
$line['data']);
}

exit(0);
?>


The VarnishAdmin class

(PECL varnish >= 0.3)

Introdução

Resumo da classe

class VarnishAdmin {
/* Métodos */
public auth(): bool
public ban(string $vcl_regex): int
public banUrl(string $vcl_regex): int
public clearPanic(): int
public connect(): bool
public __construct(array $args = ?)
public disconnect(): bool
public getPanic(): string
public getParams(): array
public isRunning(): bool
public setCompat(int $compat): void
public setHost(string $host): void
public setIdent(string $ident): void
public setParam(string $name, string|int $value): int
public setPort(int $port): void
public setSecret(string $secret): void
public setTimeout(int $timeout): void
public start(): int
public stop(): int
}

Índice

  • VarnishAdmin::auth — Authenticate on a varnish instance
  • VarnishAdmin::ban — Ban URLs using a VCL expression
  • VarnishAdmin::banUrl — Ban an URL using a VCL expression
  • VarnishAdmin::clearPanic — Clear varnish instance panic messages
  • VarnishAdmin::connect — Connect to a varnish instance administration interface
  • VarnishAdmin::__construct — VarnishAdmin constructor
  • VarnishAdmin::disconnect — Disconnect from a varnish instance administration interface
  • VarnishAdmin::getPanic — Get the last panic message on a varnish instance
  • VarnishAdmin::getParams — Fetch current varnish instance configuration parameters
  • VarnishAdmin::isRunning — Check if the varnish slave process is currently running
  • VarnishAdmin::setCompat — Set the class compat configuration param
  • VarnishAdmin::setHost — Set the class host configuration param
  • VarnishAdmin::setIdent — Set the class ident configuration param
  • VarnishAdmin::setParam — Set configuration param on the current varnish instance
  • VarnishAdmin::setPort — Set the class port configuration param
  • VarnishAdmin::setSecret — Set the class secret configuration param
  • VarnishAdmin::setTimeout — Set the class timeout configuration param
  • VarnishAdmin::start — Start varnish worker process
  • VarnishAdmin::stop — Stop varnish worker process


Authenticate on a varnish instance

  • « VarnishAdmin
  • VarnishAdmin::ban »
  • PHP Manual
  • VarnishAdmin
  • Authenticate on a varnish instance

VarnishAdmin::auth

(PECL varnish >= 0.3)

VarnishAdmin::auth — Authenticate on a varnish instance

Descrição

public VarnishAdmin::auth(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Ban URLs using a VCL expression

  • « VarnishAdmin::auth
  • VarnishAdmin::banUrl »
  • PHP Manual
  • VarnishAdmin
  • Ban URLs using a VCL expression

VarnishAdmin::ban

(PECL varnish >= 0.3)

VarnishAdmin::ban — Ban URLs using a VCL expression

Descrição

public VarnishAdmin::ban(string $vcl_regex): int

Parâmetros

vcl_regex

Varnish VCL expression. It's based on the varnish ban command.

Valor Retornado

Returns the varnish command status.


Ban an URL using a VCL expression

  • « VarnishAdmin::ban
  • VarnishAdmin::clearPanic »
  • PHP Manual
  • VarnishAdmin
  • Ban an URL using a VCL expression

VarnishAdmin::banUrl

(PECL varnish >= 0.3)

VarnishAdmin::banUrl — Ban an URL using a VCL expression

Descrição

public VarnishAdmin::banUrl(string $vcl_regex): int

Parâmetros

vcl_regex

URL regular expression in PCRE compatible syntax. It's based on the ban.url varnish command.

Valor Retornado

Returns the varnish command status.


Clear varnish instance panic messages

  • « VarnishAdmin::banUrl
  • VarnishAdmin::connect »
  • PHP Manual
  • VarnishAdmin
  • Clear varnish instance panic messages

VarnishAdmin::clearPanic

(PECL varnish >= 0.4)

VarnishAdmin::clearPanic — Clear varnish instance panic messages

Descrição

public VarnishAdmin::clearPanic(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the varnish command status.


Connect to a varnish instance administration interface

  • « VarnishAdmin::clearPanic
  • VarnishAdmin::__construct »
  • PHP Manual
  • VarnishAdmin
  • Connect to a varnish instance administration interface

VarnishAdmin::connect

(PECL varnish >= 0.3)

VarnishAdmin::connect — Connect to a varnish instance administration interface

Descrição

public VarnishAdmin::connect(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


VarnishAdmin constructor

  • « VarnishAdmin::connect
  • VarnishAdmin::disconnect »
  • PHP Manual
  • VarnishAdmin
  • VarnishAdmin constructor

VarnishAdmin::__construct

(PECL varnish >= 0.3)

VarnishAdmin::__construct — VarnishAdmin constructor

Descrição

public VarnishAdmin::__construct(array $args = ?)

Parâmetros

args

Configuration arguments. The possible keys are:

VARNISH_CONFIG_IDENT - local varnish instance ident
VARNISH_CONFIG_HOST - varnish instance ip
VARNISH_CONFIG_PORT - varnish instance port
VARNISH_CONFIG_SECRET - varnish instance secret
VARNISH_CONFIG_TIMEOUT - connection read timeout
VARNISH_CONFIG_COMPAT - varnish major version compatibility

Valor Retornado

Exemplos

Exemplo #1 VarnishAdmin::__construct() example

<?php
$args = array(
VARNISH_CONFIG_HOST => "::1",
VARNISH_CONFIG_PORT => 6082,
VARNISH_CONFIG_SECRET => "5174826b-8595-4958-aa7a-0609632ad7ca",
VARNISH_CONFIG_TIMEOUT => 300,
);
$va = new VarnishAdmin($args);
?>


Disconnect from a varnish instance administration interface

  • « VarnishAdmin::__construct
  • VarnishAdmin::getPanic »
  • PHP Manual
  • VarnishAdmin
  • Disconnect from a varnish instance administration interface

VarnishAdmin::disconnect

(PECL varnish >= 1.0.0)

VarnishAdmin::disconnect — Disconnect from a varnish instance administration interface

Descrição

public VarnishAdmin::disconnect(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Get the last panic message on a varnish instance

  • « VarnishAdmin::disconnect
  • VarnishAdmin::getParams »
  • PHP Manual
  • VarnishAdmin
  • Get the last panic message on a varnish instance

VarnishAdmin::getPanic

(PECL varnish >= 0.4)

VarnishAdmin::getPanic — Get the last panic message on a varnish instance

Descrição

public VarnishAdmin::getPanic(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the last panic message on the current varnish instance.


Fetch current varnish instance configuration parameters

  • « VarnishAdmin::getPanic
  • VarnishAdmin::isRunning »
  • PHP Manual
  • VarnishAdmin
  • Fetch current varnish instance configuration parameters

VarnishAdmin::getParams

(PECL varnish >= 0.4)

VarnishAdmin::getParams — Fetch current varnish instance configuration parameters

Descrição

public VarnishAdmin::getParams(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with the varnish configuration parameters.


Check if the varnish slave process is currently running

  • « VarnishAdmin::getParams
  • VarnishAdmin::setCompat »
  • PHP Manual
  • VarnishAdmin
  • Check if the varnish slave process is currently running

VarnishAdmin::isRunning

(PECL varnish >= 0.3)

VarnishAdmin::isRunning — Check if the varnish slave process is currently running

Descrição

public VarnishAdmin::isRunning(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Set the class compat configuration param

  • « VarnishAdmin::isRunning
  • VarnishAdmin::setHost »
  • PHP Manual
  • VarnishAdmin
  • Set the class compat configuration param

VarnishAdmin::setCompat

(PECL varnish >= 0.9.2)

VarnishAdmin::setCompat — Set the class compat configuration param

Descrição

public VarnishAdmin::setCompat(int $compat): void

Parâmetros

compat

Varnish compatibility option.

Valor Retornado


Set the class host configuration param

  • « VarnishAdmin::setCompat
  • VarnishAdmin::setIdent »
  • PHP Manual
  • VarnishAdmin
  • Set the class host configuration param

VarnishAdmin::setHost

(PECL varnish >= 0.8)

VarnishAdmin::setHost — Set the class host configuration param

Descrição

public VarnishAdmin::setHost(string $host): void

Parâmetros

host

Connection host configuration parameter.

Valor Retornado


Set the class ident configuration param

  • « VarnishAdmin::setHost
  • VarnishAdmin::setParam »
  • PHP Manual
  • VarnishAdmin
  • Set the class ident configuration param

VarnishAdmin::setIdent

(PECL varnish >= 0.8)

VarnishAdmin::setIdent — Set the class ident configuration param

Descrição

public VarnishAdmin::setIdent(string $ident): void

Parâmetros

ident

Connection ident configuration parameter.

Valor Retornado


Set configuration param on the current varnish instance

  • « VarnishAdmin::setIdent
  • VarnishAdmin::setPort »
  • PHP Manual
  • VarnishAdmin
  • Set configuration param on the current varnish instance

VarnishAdmin::setParam

(PECL varnish >= 0.4)

VarnishAdmin::setParam — Set configuration param on the current varnish instance

Descrição

public VarnishAdmin::setParam(string $name, string|int $value): int

Parâmetros

name

Varnish configuration param name.

value

Varnish configuration param value.

Valor Retornado

Returns the varnish command status.


Set the class port configuration param

  • « VarnishAdmin::setParam
  • VarnishAdmin::setSecret »
  • PHP Manual
  • VarnishAdmin
  • Set the class port configuration param

VarnishAdmin::setPort

(PECL varnish >= 0.8)

VarnishAdmin::setPort — Set the class port configuration param

Descrição

public VarnishAdmin::setPort(int $port): void

Parâmetros

port

Connection port configuration parameter.

Valor Retornado


Set the class secret configuration param

  • « VarnishAdmin::setPort
  • VarnishAdmin::setTimeout »
  • PHP Manual
  • VarnishAdmin
  • Set the class secret configuration param

VarnishAdmin::setSecret

(PECL varnish >= 0.8)

VarnishAdmin::setSecret — Set the class secret configuration param

Descrição

public VarnishAdmin::setSecret(string $secret): void

Parâmetros

secret

Connection secret configuration parameter.

Valor Retornado


Set the class timeout configuration param

  • « VarnishAdmin::setSecret
  • VarnishAdmin::start »
  • PHP Manual
  • VarnishAdmin
  • Set the class timeout configuration param

VarnishAdmin::setTimeout

(PECL varnish >= 0.8)

VarnishAdmin::setTimeout — Set the class timeout configuration param

Descrição

public VarnishAdmin::setTimeout(int $timeout): void

Parâmetros

timeout

Connection timeout configuration parameter.

Valor Retornado


Start varnish worker process

  • « VarnishAdmin::setTimeout
  • VarnishAdmin::stop »
  • PHP Manual
  • VarnishAdmin
  • Start varnish worker process

VarnishAdmin::start

(PECL varnish >= 0.3)

VarnishAdmin::start — Start varnish worker process

Descrição

public VarnishAdmin::start(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the varnish command status.


Stop varnish worker process

  • « VarnishAdmin::start
  • VarnishStat »
  • PHP Manual
  • VarnishAdmin
  • Stop varnish worker process

VarnishAdmin::stop

(PECL varnish >= 0.3)

VarnishAdmin::stop — Stop varnish worker process

Descrição

public VarnishAdmin::stop(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the varnish command status.


The VarnishStat class

(PECL varnish >= 0.3)

Introdução

Resumo da classe

class VarnishStat {
/* Métodos */
public __construct(array $args = ?)
public getSnapshot(): array
}

Índice

  • VarnishStat::__construct — VarnishStat constructor
  • VarnishStat::getSnapshot — Get the current varnish instance statistics snapshot


VarnishStat constructor

  • « VarnishStat
  • VarnishStat::getSnapshot »
  • PHP Manual
  • VarnishStat
  • VarnishStat constructor

VarnishStat::__construct

(PECL varnish >= 0.3)

VarnishStat::__construct — VarnishStat constructor

Descrição

public VarnishStat::__construct(array $args = ?)

Parâmetros

args

Configuration arguments. The possible keys are:

VARNISH_CONFIG_IDENT - local varnish instance ident path

Valor Retornado


Get the current varnish instance statistics snapshot

  • « VarnishStat::__construct
  • VarnishLog »
  • PHP Manual
  • VarnishStat
  • Get the current varnish instance statistics snapshot

VarnishStat::getSnapshot

(PECL varnish >= 0.3)

VarnishStat::getSnapshot — Get the current varnish instance statistics snapshot

Descrição

public VarnishStat::getSnapshot(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Array with the varnish statistic snapshot. The array keys are identical to that in the varnishstat tool.


The VarnishLog class

(PECL varnish >= 0.6)

Introdução

Resumo da classe

class VarnishLog {
/* Constantes */
const int TAG_Debug = 0;
const int TAG_Error = 1;
const int TAG_CLI = 2;
const int TAG_StatSess = 3;
const int TAG_ReqEnd = 4;
const int TAG_SessionOpen = 5;
const int TAG_SessionClose = 6;
const int TAG_BackendOpen = 7;
const int TAG_BackendXID = 8;
const int TAG_BackendReuse = 9;
const int TAG_BackendClose = 10;
const int TAG_HttpGarbage = 11;
const int TAG_Backend = 12;
const int TAG_Length = 13;
const int TAG_FetchError = 14;
const int TAG_RxRequest = 15;
const int TAG_RxResponse = 16;
const int TAG_RxStatus = 17;
const int TAG_RxURL = 18;
const int TAG_RxProtocol = 19;
const int TAG_RxHeader = 20;
const int TAG_TxRequest = 21;
const int TAG_TxResponse = 22;
const int TAG_TxStatus = 23;
const int TAG_TxURL = 24;
const int TAG_TxProtocol = 25;
const int TAG_TxHeader = 26;
const int TAG_ObjRequest = 27;
const int TAG_ObjResponse = 28;
const int TAG_ObjStatus = 29;
const int TAG_ObjURL = 30;
const int TAG_ObjProtocol = 31;
const int TAG_ObjHeader = 32;
const int TAG_LostHeader = 33;
const int TAG_TTL = 34;
const int TAG_Fetch_Body = 35;
const int TAG_VCL_acl = 36;
const int TAG_VCL_call = 37;
const int TAG_VCL_trace = 38;
const int TAG_VCL_return = 39;
const int TAG_VCL_error = 40;
const int TAG_ReqStart = 41;
const int TAG_Hit = 42;
const int TAG_HitPass = 43;
const int TAG_ExpBan = 44;
const int TAG_ExpKill = 45;
const int TAG_WorkThread = 46;
const int TAG_ESI_xmlerror = 47;
const int TAG_Hash = 48;
const int TAG_Backend_health = 49;
const int TAG_VCL_Log = 50;
const int TAG_Gzip = 51;
/* Métodos */
public __construct(array $args = ?)
public getLine(): array
public static getTagName(int $index): string
}

Constantes pré-definidas

VarnishLog::TAG_Debug

VarnishLog::TAG_Error

VarnishLog::TAG_CLI

VarnishLog::TAG_StatSess

VarnishLog::TAG_ReqEnd

VarnishLog::TAG_SessionOpen

VarnishLog::TAG_SessionClose

VarnishLog::TAG_BackendOpen

VarnishLog::TAG_BackendXID

VarnishLog::TAG_BackendReuse

VarnishLog::TAG_BackendClose

VarnishLog::TAG_HttpGarbage

VarnishLog::TAG_Backend

VarnishLog::TAG_Length

VarnishLog::TAG_FetchError

VarnishLog::TAG_RxRequest

VarnishLog::TAG_RxResponse

VarnishLog::TAG_RxStatus

VarnishLog::TAG_RxURL

VarnishLog::TAG_RxProtocol

VarnishLog::TAG_RxHeader

VarnishLog::TAG_TxRequest

VarnishLog::TAG_TxResponse

VarnishLog::TAG_TxStatus

VarnishLog::TAG_TxURL

VarnishLog::TAG_TxProtocol

VarnishLog::TAG_TxHeader

VarnishLog::TAG_ObjRequest

VarnishLog::TAG_ObjResponse

VarnishLog::TAG_ObjStatus

VarnishLog::TAG_ObjURL

VarnishLog::TAG_ObjProtocol

VarnishLog::TAG_ObjHeader

VarnishLog::TAG_LostHeader

VarnishLog::TAG_TTL

VarnishLog::TAG_Fetch_Body

VarnishLog::TAG_VCL_acl

VarnishLog::TAG_VCL_call

VarnishLog::TAG_VCL_trace

VarnishLog::TAG_VCL_return

VarnishLog::TAG_VCL_error

VarnishLog::TAG_ReqStart

VarnishLog::TAG_Hit

VarnishLog::TAG_HitPass

VarnishLog::TAG_ExpBan

VarnishLog::TAG_ExpKill

VarnishLog::TAG_WorkThread

VarnishLog::TAG_ESI_xmlerror

VarnishLog::TAG_Hash

VarnishLog::TAG_Backend_health

VarnishLog::TAG_VCL_Log

VarnishLog::TAG_Gzip

Índice

  • VarnishLog::__construct — Varnishlog constructor
  • VarnishLog::getLine — Get next log line
  • VarnishLog::getTagName — Get the log tag string representation by its index


Varnishlog constructor

  • « VarnishLog
  • VarnishLog::getLine »
  • PHP Manual
  • VarnishLog
  • Varnishlog constructor

VarnishLog::__construct

(PECL varnish >= 0.6)

VarnishLog::__construct — Varnishlog constructor

Descrição

public VarnishLog::__construct(array $args = ?)

Parâmetros

args

Configuration arguments. The possible keys are:

VARNISH_CONFIG_IDENT - local varnish instance ident path

Valor Retornado


Get next log line

  • « VarnishLog::__construct
  • VarnishLog::getTagName »
  • PHP Manual
  • VarnishLog
  • Get next log line

VarnishLog::getLine

(PECL varnish >= 0.6)

VarnishLog::getLine — Get next log line

Descrição

public VarnishLog::getLine(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with the log line data.


Get the log tag string representation by its index

  • « VarnishLog::getLine
  • YAZ »
  • PHP Manual
  • VarnishLog
  • Get the log tag string representation by its index

VarnishLog::getTagName

(PECL varnish >= 0.6)

VarnishLog::getTagName — Get the log tag string representation by its index

Descrição

public static VarnishLog::getTagName(int $index): string

Parâmetros

index

Log tag index.

Valor Retornado

Returns the log tag name as string.


YAZ

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • YAZ Funções
    • yaz_addinfo — Returns additional error information
    • yaz_ccl_conf — Configure CCL parser
    • yaz_ccl_parse — Invoke CCL Parser
    • yaz_close — Close YAZ connection
    • yaz_connect — Prepares for a connection to a Z39.50 server
    • 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_es_result — Inspects Extended Services Result
    • yaz_es — Prepares for an Extended Service Request
    • 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 a range 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 — Wait for Z39.50 requests to complete


Introdução

This extension offers a PHP interface to the YAZ toolkit that implements the » Z39.50 Protocol for Information Retrieval. With this extension you can easily implement a Z39.50 origin (client) that searches or scans Z39.50 targets (servers) in parallel.

The module hides most of the complexity of Z39.50 so it should be fairly easy to use. It supports persistent stateless connections very similar to those offered by the various RDB APIs that are available for PHP. This means that sessions are stateless but shared among users, thus saving the connect and initialize phase steps in most cases.

YAZ is available at » http://www.indexdata.dk/yaz/. You can find news information, example scripts, etc. for this extension at » http://www.indexdata.dk/phpyaz/.

Nota:

Esta extensão foi movida para o repositório » PECL e não é mais distribuída com o PHP desde a versão 5.0.0.


Dependências

Obtain YAZ (ANSI/NISO Z39.50 support) and install it. YAZ can be fetched in source or in various prebuilt packages from the » YAZ archive. Systems such as Debian GNU/Linux, Suse Linux, FreeBSD also has YAZ as part of their distribution.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/yaz

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.

Nota: Information specific to Windows users

php_yaz.dll depends on yaz.dll. The yaz.dll is part of the Win32 ZIP from the PHP site. It is also part of the Windows YAZ install available from the » YAZ WIN32 area.

On windows, don't forget to add the PHP directory to the PATH, so that the yaz.dll file can be found by the system.

Aviso

As extensões IMAP, recode e YAZ não podem ser usadas em conjunto, pois compartilham os mesmos símbolos internos. Observação: a Yaz 2.0 e superiores não sofrem deste problema.


  • « Tipos de Recurso
  • Exemplos »
  • PHP Manual
  • YAZ
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Exemplos

PHP/YAZ keeps track of connections with targets (Z-Associations). A resource represents a connection to a target.

The script below demonstrates the parallel searching feature of the API. When invoked with no arguments it prints a query form; else (arguments are supplied) it searches the targets as given in array host.

Exemplo #1 Parallel searching using Yaz

<?php
$host=$_REQUEST[host];
$query=$_REQUEST[query];
$num_hosts = count($host);
if (empty($query) || 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="checked"
name="host[]" value="z3950.loc.gov:7090/voyager" />
Library of Congress
<br />
RPN Query:
<input type="text" size="30" name="query" />
<input type="submit" name="action" value="Search" />
</form>
';
} else {
echo 'You searched for ' . htmlspecialchars($query) . '<br />';
for ($i = 0; $i < $num_hosts; $i++) {
$id[] = yaz_connect($host[$i]);
yaz_syntax($id[$i], "usmarc");
yaz_range($id[$i], 1, 10);
yaz_search($id[$i], "rpn", $query);
}
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 nl2br($rec);
echo "</dd>";
}
echo '</dl>';
}
}
?>


YAZ Funções

Índice

  • yaz_addinfo — Returns additional error information
  • yaz_ccl_conf — Configure CCL parser
  • yaz_ccl_parse — Invoke CCL Parser
  • yaz_close — Close YAZ connection
  • yaz_connect — Prepares for a connection to a Z39.50 server
  • 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_es_result — Inspects Extended Services Result
  • yaz_es — Prepares for an Extended Service Request
  • 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 a range 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 — Wait for Z39.50 requests to complete


Returns additional error information

  • « YAZ Funções
  • yaz_ccl_conf »
  • PHP Manual
  • YAZ Funções
  • Returns additional error information

yaz_addinfo

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_addinfo — Returns additional error information

Descrição

yaz_addinfo(resource $id): string

Returns additional error information for the last request on the server.

With some servers, this function may return the same string as yaz_error().

Parâmetros

id

The connection resource returned by yaz_connect().

Valor Retornado

A string containing additional error information or an empty string if the last operation was successful or if no additional information was provided by the server.

Veja Também

  • yaz_error() - Returns error description
  • yaz_errno() - Returns error number


Configure CCL parser

  • « yaz_addinfo
  • yaz_ccl_parse »
  • PHP Manual
  • YAZ Funções
  • Configure CCL parser

yaz_ccl_conf

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_conf — Configure CCL parser

Descrição

yaz_ccl_conf(resource $id, array $config): void

This function configures the CCL query parser for a server 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.

Parâmetros

id

The connection resource returned by yaz_connect().

config

An array of configuration. Each key of the array 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.

Additional information can be found on the » CCL page.

Valor Retornado

Nenhum valor é retornado.

Exemplos

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.

Exemplo #1 CCL configuration

<?php
$fields = array(
"ti" => "1=4",
"au" => "1=1",
"isbn" => "1=7"
);
yaz_ccl_conf($id, $fields);
?>

Veja Também

  • yaz_ccl_parse() - Invoke CCL Parser


Invoke CCL Parser

  • « yaz_ccl_conf
  • yaz_close »
  • PHP Manual
  • YAZ Funções
  • Invoke CCL Parser

yaz_ccl_parse

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_parse — Invoke CCL Parser

Descrição

yaz_ccl_parse(resource $id, string $query, array &$result): bool

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.

Parâmetros

id

The connection resource returned by yaz_connect().

query

The CCL FIND query.

result

If the function was executed successfully, this will be an array containing the valid RPN query under the key rpn.

Upon failure, three indexes are set in this array to indicate the cause of failure:

  • errorcode - the CCL error code (integer)

  • errorstring - the CCL error string

  • errorpos - approximate position in query of failure (integer is character position)

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #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);
}
?>


Close YAZ connection

  • « yaz_ccl_parse
  • yaz_connect »
  • PHP Manual
  • YAZ Funções
  • Close YAZ connection

yaz_close

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_close — Close YAZ connection

Descrição

yaz_close(resource $id): bool

Closes the connection given by parameter id.

Nota:

This function will only close a non-persistent connection opened by setting the persistent option to false with yaz_connect().

Parâmetros

id

The connection resource returned by yaz_connect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • yaz_connect() - Prepares for a connection to a Z39.50 server


Prepares for a connection to a Z39.50 server

  • « yaz_close
  • yaz_database »
  • PHP Manual
  • YAZ Funções
  • Prepares for a connection to a Z39.50 server

yaz_connect

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_connect — Prepares for a connection to a Z39.50 server

Descrição

yaz_connect(string $zurl, mixed $options = ?): mixed

This function returns a connection resource on success, zero on failure.

yaz_connect() prepares for a connection to a Z39.50 server. This function is non-blocking and does not attempt to establish a connection - it merely prepares a connect to be performed later when yaz_wait() is called.

Nota:

The » YAZ proxy is a freely available Z39.50 proxy.

Parâmetros

zurl

A string that takes the form host[:port][/database]. If port is omitted, port 210 is used. If database is omitted Default is used.

options

If given as a string, it is treated as the Z39.50 V2 authentication string (OpenAuth).

If given as an array, the contents of the array serves as options.

user

Username for authentication.

group

Group for authentication.

password

Password for authentication.

cookie

Cookie for session (YAZ proxy).

proxy

Proxy for connection (YAZ proxy).

persistent

A boolean. If true the connection is persistent; If false the connection is not persistent. By default connections are persistent.

Nota:

If you open a persistent connection, you won't be able to close it later with yaz_close().

piggyback

A boolean. If true piggyback is enabled for searches; If false piggyback is disabled. By default piggyback is enabled.

Enabling piggyback is more efficient and usually saves a network-round-trip for first time fetches of records. However, a few Z39.50 servers do not support piggyback or they ignore element set names. For those, piggyback should be disabled.

charset

A string that specifies character set to be used in Z39.50 language and character set negotiation. Use strings such as: ISO-8859-1, UTF-8, UTF-16.

Most Z39.50 servers do not support this feature (and thus, this is ignored). Many servers use the ISO-8859-1 encoding for queries and messages. MARC21/USMARC records are not affected by this setting.

preferredMessageSize

An integer that specifies the maximum byte size of all records to be returned by a target during retrieval. See the » Z39.50 standard for more information.

Nota:

This option is supported in PECL YAZ 1.0.5 or later.

maximumRecordSize

An integer that specifies the maximum byte size of a single record to be returned by a target during retrieval. This entity is referred to as Exceptional-record-size in the » Z39.50 standard.

Nota:

This option is supported in PECL YAZ 1.0.5 or later.

Valor Retornado

A connection resource on success, false on error.

Registro de Alterações

Versão | Descrição
4.1.0 | The parameter options was added.

Veja Também

  • yaz_close() - Close YAZ connection


Specifies the databases within a session

  • « yaz_connect
  • yaz_element »
  • PHP Manual
  • YAZ Funções
  • Specifies the databases within a session

yaz_database

(PHP 4 >= 4.0.6, PECL yaz >= 0.9.0)

yaz_database — Specifies the databases within a session

Descrição

yaz_database(resource $id, string $databases): bool

This function allows you to change databases within a session by specifying one or more databases to be used in search, retrieval, etc. - overriding databases specified in call to yaz_connect().

Parâmetros

id

The connection resource returned by yaz_connect().

databases

A string containing one or more databases. Multiple databases are separated by a plus sign +.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Specifies Element-Set Name for retrieval

  • « yaz_database
  • yaz_errno »
  • PHP Manual
  • YAZ Funções
  • Specifies Element-Set Name for retrieval

yaz_element

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_element — Specifies Element-Set Name for retrieval

Descrição

yaz_element(resource $id, string $elementset): bool

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.

Nota:

If this function appears to have no effect, see the description of the piggybacking option in yaz_connect().

Parâmetros

id

The connection resource returned by yaz_connect().

elementset

Most servers support F (for full records) and B (for brief records).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Returns error number

  • « yaz_element
  • yaz_error »
  • PHP Manual
  • YAZ Funções
  • Returns error number

yaz_errno

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_errno — Returns error number

Descrição

yaz_errno(resource $id): int

Returns an error number for the server (last request) identified by id.

yaz_errno() should be called after network activity for each server - (after yaz_wait() returns) to determine the success or failure of the last operation (e.g. search).

Parâmetros

id

The connection resource returned by yaz_connect().

Valor Retornado

Returns an error code. The error code is either a Z39.50 diagnostic code (usually a Bib-1 diagnostic) or a client side error code which is generated by PHP/YAZ itself, such as "Connect failed", "Init Rejected", etc.

Veja Também

  • yaz_error() - Returns error description
  • yaz_addinfo() - Returns additional error information


Returns error description

  • « yaz_errno
  • yaz_es_result »
  • PHP Manual
  • YAZ Funções
  • Returns error description

yaz_error

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_error — Returns error description

Descrição

yaz_error(resource $id): string

yaz_error() returns an English text message corresponding to the last error number as returned by yaz_errno().

Parâmetros

id

The connection resource returned by yaz_connect().

Valor Retornado

Returns an error text message for server (last request), identified by parameter id. An empty string is returned if the last operation was successful.

Veja Também

  • yaz_errno() - Returns error number
  • yaz_addinfo() - Returns additional error information


Inspects Extended Services Result

  • « yaz_error
  • yaz_es »
  • PHP Manual
  • YAZ Funções
  • Inspects Extended Services Result

yaz_es_result

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_es_result — Inspects Extended Services Result

Descrição

yaz_es_result(resource $id): array

This function inspects the last returned Extended Service result from a server. An Extended Service is initiated by either yaz_item_order() or yaz_es().

Parâmetros

id

The connection resource returned by yaz_connect().

Valor Retornado

Returns array with element targetReference for the reference for the extended service operation (generated and returned from the server).

Veja Também

  • yaz_es() - Prepares for an Extended Service Request


Prepares for an Extended Service Request

  • « yaz_es_result
  • yaz_get_option »
  • PHP Manual
  • YAZ Funções
  • Prepares for an Extended Service Request

yaz_es

(PECL yaz >= 0.9.0)

yaz_es — Prepares for an Extended Service Request

Descrição

yaz_es( resource $id , string $type , array $args ): void

This function prepares for an Extended Service Request. Extended Services is family of various Z39.50 facilities, such as Record Update, Item Order, Database administration etc.

Nota:

Many Z39.50 Servers do not support Extended Services.

The yaz_es() creates an Extended Service Request packages and puts it into a queue of operations. Use yaz_wait() to send the request(s) to the server. After completion of yaz_wait() the result of the Extended Service operation should be expected with a call to yaz_es_result().

Parâmetros

id

The connection resource returned by yaz_connect().

type

A string which represents the type of the Extended Service: itemorder (Item Order), create (Create Database), drop (Drop Database), commit (Commit Operation), update (Update Record), xmlupdate (XML Update). Each type is specified in the following section.

args

An array with extended service options plus package specific options. The options are identical to those offered in the C API of ZOOM C. Refer to the ZOOM » Extended Services.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Record Update

<?php
$con = yaz_connect("myhost/database");
$args = array (
"record" => "<gils><title>some title</title></gils>",
"syntax" => "xml",
"action" => "specialUpdate"
);
yaz_es($con, "update", $args);
yaz_wait();
$result = yaz_es_result($id);
?>

Veja Também

  • yaz_es_result() - Inspects Extended Services Result


Returns value of option for connection

  • « yaz_es
  • yaz_hits »
  • PHP Manual
  • YAZ Funções
  • Returns value of option for connection

yaz_get_option

(PECL yaz >= 0.9.0)

yaz_get_option — Returns value of option for connection

Descrição

yaz_get_option(resource $id, string $name): string

Returns the value of the option specified with name.

Parâmetros

id

The connection resource returned by yaz_connect().

name

The option name.

Valor Retornado

Returns the value of the specified option or an empty string if the option wasn't set.

Veja Também

  • The description of yaz_set_option() - Sets one or more options for connection for available options


Returns number of hits for last search

  • « yaz_get_option
  • yaz_itemorder »
  • PHP Manual
  • YAZ Funções
  • Returns number of hits for last search

yaz_hits

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_hits — Returns number of hits for last search

Descrição

yaz_hits(resource $id, array &$searchresult = ?): int

yaz_hits() returns the number of hits for the last search.

Parâmetros

id

The connection resource returned by yaz_connect().

searchresult

Result array for detailed search result information.

Valor Retornado

Returns the number of hits for the last search or 0 if no search was performed.

The search result array (if supplied) holds information that is returned by a Z39.50 server in the SearchResult-1 format part of a search response. The SearchResult-1 format can be used to obtain information about hit counts for various parts of the query (subquery). In particular, it is possible to obtain hit counts for the individual search terms in a query. Information for first subquery is in $array[0], second subquery in $array[1], and so forth.

searchresult members
Element | Description
id | Sub query ID2 (string)
count | Result count / hits (integer)
subquery.term | Sub query term (string)
interpretation.term | Interpretated sub query term (string)
recommendation.term | Recommended sub query term (string)

Nota:

The SearchResult facility requires PECL YAZ 1.0.5 or later and YAZ 2.1.9 or later.

Nota:

Very few Z39.50 implementations support the SearchResult facility.


Prepares for Z39.50 Item Order with an ILL-Request package

  • « yaz_hits
  • yaz_present »
  • PHP Manual
  • YAZ Funções
  • Prepares for Z39.50 Item Order with an ILL-Request package

yaz_itemorder

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package

Descrição

yaz_itemorder(resource $id, array $args): void

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.

Parâmetros

id

The connection resource returned by yaz_connect().

args

Must be an associative 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

Valor Retornado

Nenhum valor é retornado.


Prepares for retrieval (Z39.50 present)

  • « yaz_itemorder
  • yaz_range »
  • PHP Manual
  • YAZ Funções
  • Prepares for retrieval (Z39.50 present)

yaz_present

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_present — Prepares for retrieval (Z39.50 present)

Descrição

yaz_present(resource $id): bool

This function prepares for retrieval of records after a successful search.

The yaz_range() function should be called prior to this function to specify the range of records to be retrieved.

Parâmetros

id

The connection resource returned by yaz_connect().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Specifies a range of records to retrieve

  • « yaz_present
  • yaz_record »
  • PHP Manual
  • YAZ Funções
  • Specifies a range of records to retrieve

yaz_range

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_range — Specifies a range of records to retrieve

Descrição

yaz_range(resource $id, int $start, int $number): void

Specifies a range of records to retrieve.

This function should be called before yaz_search() or yaz_present().

Parâmetros

id

The connection resource returned by yaz_connect().

start

Specifies the position of the first record to be retrieved. The records numbers goes from 1 to yaz_hits().

number

Specifies the number of records to be retrieved.

Valor Retornado

Nenhum valor é retornado.


Returns a record

  • « yaz_range
  • yaz_scan_result »
  • PHP Manual
  • YAZ Funções
  • Returns a record

yaz_record

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_record — Returns a record

Descrição

yaz_record(resource $id, int $pos, string $type): string

The yaz_record() function inspects a record in the current result set at the position specified by parameter pos.

Parâmetros

id

The connection resource returned by yaz_connect().

pos

The record position. Records positions in a result set are numbered 1, 2, ... $hits where $hits is the count returned by yaz_hits().

type

The type specifies the form of the returned record.

Nota:

It is the application which is responsible for actually ensuring that the records are returned from the Z39.50/SRW server in the proper format. The type given only specifies a conversion to take place on the client side (in PHP/YAZ).

Besides conversion of the transfer record to a string/array, PHP/YAZ it is also possible to perform a character set conversion of the record. Especially for USMARC/MARC21 that is recommended since these are typically returned in the character set MARC-8 that is not supported by browsers, etc. To specify a conversion, add ; charset=from, to where from is the original character set of the record and to is the resulting character set (as seen by PHP).

string

The record is returned as a string for simple display. In this mode, all MARC records are converted to a line-by-line format since ISO2709 is hardly readable. XML records and SUTRS are returned in their original format. GRS-1 are returned in a (ugly) line-by-line format.

This format is suitable if records are to be displayed in a quick way - for debugging - or because it is not feasible to perform proper display.

xml

The record is returned as an XML string if possible. In this mode, all MARC records are converted to » MARCXML. XML records and SUTRS are returned in their original format. GRS-1 is not supported.

This format is similar to string except that MARC records are converted to MARCXML

This format is suitable if records are processed by an XML parser or XSLT processor afterwards.

raw

The record is returned as a string in its original form. This type is suitable for MARC, XML and SUTRS. It does not work for GRS-1.

MARC records are returned as a ISO2709 string. XML and SUTRS are returned as strings.

syntax

The syntax of the record is returned as a string, i.e. USmarc, GRS-1, XML, etc.

database

The name of database associated with record at the position is returned as a string.

array

The record is returned as an array that reflects the GRS-1 structure. This type is suitable for MARC and GRS-1. XML, SUTRS are not supported and if the actual record is XML or SUTRS an empty string will be returned.

The array returned consists of a list corresponding to each leaf/internal node of GRS-1. Each list item consists a sub list with first element path and data (if data is available).

The path which is a string holds a list of each tree component (of the structured GRS-1 record) from root to leaf. Each component is a tag type, tag value pair of the form (type, value

String tags normally has a corresponding tag type 3. MARC can also be returned as an array (they are converted to GRS-1 internally).

Valor Retornado

Returns the record at position pos or an empty string if no record exists at the given position.

If no database record exists at the given position an empty string is returned.

Exemplos

Exemplo #1 Array for GRS-1 record

Consider this GRS-1 record:

(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
This record has two nodes at root level. First element at root level is (4,52) [tag type 4, tag value 52], and has data Robert M. Pirsig. Second element at root level (4,70) has a subtree with a single element (4,90). (4,90) has yet another sub tree (2,7) with data Transworld Publishers, ltd..

If this record is present at position $p, then

<?php

$ar = yaz_record($id, $p, "array");
print_r($ar);

?>
will output:
Array
(
    [0] => Array
        (
            [0] => (4,52)
            [1] => Robert M. Pirsig
        )
    [1] => Array
        (
            [0] => (4,70)
        )
    [2] => Array
        (
            [0] => (4,70)(4,90)
        )
    [3] => Array
        (
            [0] => (4,70)(4,90)(2,7)
            [1] => Transworld Publishers, ltd.
        )
)

Exemplo #2 Working with MARCXML

The following PHP snippet returns a MARC21/USMARC record as MARCXML. The original record is returned in marc-8 (unknown to most XML parsers), so we convert it to UTF-8 (which all XML parsers must support).

<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>

The record $rec can be processed with the Sablotron XSLT processor as follows:

<?php

$xslfile = 'display.xsl';
$processor = xslt_create();
$parms = array('/_xml' => $rec);
$res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms);
xslt_free($processor);
$res = preg_replace("'</?html[^>]*>'", '', $res);
echo $res;

?>


Returns Scan Response result

  • « yaz_record
  • yaz_scan »
  • PHP Manual
  • YAZ Funções
  • Returns Scan Response result

yaz_scan_result

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan_result — Returns Scan Response result

Descrição

yaz_scan_result(resource $id, array &$result = ?): array

yaz_scan_result() returns terms and associated information as received from the server in the last performed yaz_scan().

Parâmetros

id

The connection resource returned by yaz_connect().

result

If given, this array 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

Valor Retornado

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.


Prepares for a scan

  • « yaz_scan_result
  • yaz_schema »
  • PHP Manual
  • YAZ Funções
  • Prepares for a scan

yaz_scan

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan — Prepares for a scan

Descrição

yaz_scan(
resource $id,
string $type,
string $startterm,
array $flags = ?
): void

This function prepares for a Z39.50 Scan Request on the specified connection.

To actually transfer the Scan Request to the server 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.

Parâmetros

id

The connection resource returned by yaz_connect().

type

Currently only type rpn is supported.

startterm

Starting term point for the scan.

The form in which the starting term is specified is given by parameter type.

The syntax this parameter is similar to the RPN query as described in yaz_search(). It consists of zero or more @attr-operator specifications, then followed by exactly one token.

flags

This optional parameter specifies additional information to control the behaviour of the scan request. Three indexes are currently read from the flags array: number (number of terms requested), position (preferred position of term) and stepSize (preferred step size).

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #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; ';
foreach ($options as $key => $val) {
echo "$key = $val &nbsp;";
}
echo '<br /><table>';
while (list($key, list($k, $term, $tcount)) = each($ar)) {
if (empty($k)) continue;
echo "<tr><td>$term</td><td>$tcount</td></tr>";
}
echo '</table>';
} else {
echo "Scan failed. Error: " . yaz_error($id) . "<br />";
}
}
?>


Specifies schema for retrieval

  • « yaz_scan
  • yaz_search »
  • PHP Manual
  • YAZ Funções
  • Specifies schema for retrieval

yaz_schema

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_schema — Specifies schema for retrieval

Descrição

yaz_schema(resource $id, string $schema): void

yaz_schema() specifies the schema for retrieval.

This function should be called before yaz_search() or yaz_present().

Parâmetros

id

The connection resource returned by yaz_connect().

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, ...

Valor Retornado

Nenhum valor é retornado.


Prepares for a search

  • « yaz_schema
  • yaz_set_option »
  • PHP Manual
  • YAZ Funções
  • Prepares for a search

yaz_search

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_search — Prepares for a search

Descrição

yaz_search(resource $id, string $type, string $query): bool

yaz_search() prepares for a search on the given connection.

Like yaz_connect() this function is non-blocking and only prepares for a search to be executed later when yaz_wait() is called.

Parâmetros

id

The connection resource returned by yaz_connect().

type

This parameter represents the query type - only "rpn" is supported now in which case the third argument specifies a Type-1 query in prefix query notation.

query

The RPN query is a textual representation of the Type-1 query as defined by the Z39.50 standard. However, in the text representation as used by YAZ a prefix notation is used, that is the operator precedes the operands. The query string is a sequence of tokens where white space is ignored unless surrounded by double quotes. Tokens beginning with an at-character (@) are considered operators, otherwise they are treated as search terms.

RPN Operators
Construct | Description
@and query1 query2 | intersection of query1 and query2
@or query1 query2 | union of query1 and query2
@not query1 query2 | query1 and not query2
@set name | result set reference
@attrset set query | specifies attribute-set for query. This construction is only allowed once - in the beginning of the whole query
@attr [set] type=value query | applies attribute to query. The type and value are integers specifying the attribute-type and attribute-value respectively. The set, if given, specifies the attribute-set.

You can find information about attributes at the » Z39.50 Maintenance Agency site.

Nota:

If you would like to use a more friendly notation, use the CCL parser - functions yaz_ccl_conf() and yaz_ccl_parse().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Query Examples

You can search for simple terms, like this:

computer
which matches documents where "computer" occur. No attributes are specified.

The query

"knuth donald"
matches documents where "knuth donald" occur (provided that the server supports phrase search).

This query applies two attributes for the same phrase.

@attr 1=1003 @attr 4=1 "knuth donald"
First attribute is type 1 (Bib-1 use), attribute value is 1003 (Author). Second attribute has is type 4 (structure), value 1 (phrase), so this should match documents where Donald Knuth is author.

The query

@and @or a b @not @or c d e
would in infix notation look like (a or b) and ((c or d) not e).

Another, more complex, one:

@attrset gils @and @attr 1=4 art @attr 1=2000 company
The query as a whole uses the GILS attributeset. The query matches documents where art occur in the title (GILS,BIB-1) and in which company occur as Distributor (GILS).


Sets one or more options for connection

  • « yaz_search
  • yaz_sort »
  • PHP Manual
  • YAZ Funções
  • Sets one or more options for connection

yaz_set_option

(PECL yaz >= 0.9.0)

yaz_set_option — Sets one or more options for connection

Descrição

yaz_set_option(resource $id, string $name, string $value): void
yaz_set_option(resource $id, array $options): void

Sets one or more options on the given connection.

Parâmetros

id

The connection resource returned by yaz_connect().

name or options

May be either a string or an array.

If given as a string, this will be the name of the option to set. You'll need to give it's value.

If given as an array, this will be an associative array (option name => option value).

PHP/YAZ Connection Options
Name | Description
implementationName | implementation name of server
implementationVersion | implementation version of server
implementationId | implementation ID of server
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(). First record is numbered has a start value of 0. Second record has start value 1. 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().
value

The new value of the option. Use this only if the previous argument is a string.

Valor Retornado

Nenhum valor é retornado.


Sets sorting criteria

  • « yaz_set_option
  • yaz_syntax »
  • PHP Manual
  • YAZ Funções
  • Sets sorting criteria

yaz_sort

(PHP 4 >= 4.0.7, PECL yaz >= 0.9.0)

yaz_sort — Sets sorting criteria

Descrição

yaz_sort(resource $id, string $criteria): void

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().

Parâmetros

id

The connection resource returned by yaz_connect().

criteria

A string that 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 sequence 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

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #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


Specifies the preferred record syntax for retrieval

  • « yaz_sort
  • yaz_wait »
  • PHP Manual
  • YAZ Funções
  • Specifies the preferred record syntax for retrieval

yaz_syntax

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_syntax — Specifies the preferred record syntax for retrieval

Descrição

yaz_syntax(resource $id, string $syntax): void

yaz_syntax() specifies the preferred record syntax for retrieval

This function should be called before yaz_search() or yaz_present().

Parâmetros

id

The connection resource returned by yaz_connect().

syntax

The syntax must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.5.10) or as one of the known registered record syntaxes (sutrs, usmarc, grs1, xml, etc.).

Valor Retornado

Nenhum valor é retornado.


Wait for Z39.50 requests to complete

  • « yaz_syntax
  • API de Mensagens 0MQ »
  • PHP Manual
  • YAZ Funções
  • Wait for Z39.50 requests to complete

yaz_wait

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_wait — Wait for Z39.50 requests to complete

Descrição

yaz_wait(array &$options = ?): mixed

This function carries out networked (blocked) activity for outstanding
requests which have been prepared by the functions
yaz_connect(), yaz_search(),
yaz_present(), yaz_scan() and
yaz_itemorder().

yaz_wait() returns when all servers have either completed all requests or aborted (in case of errors).

Parâmetros

options

An associative array of options:

timeout

Sets timeout in seconds. If a server has not responded within the timeout it is considered dead and yaz_wait() returns. The default value for timeout is 15 seconds.

event

A boolean.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. In event mode, returns resource ou false em caso de falha.


ZMQ

  • Introdução
  • Instalação/Configuração
    • Dependências
  • ZMQ — A classe ZMQ
    • ZMQ::__construct — Construtor da classe ZMQ
  • ZMQContext — A classe ZMQContext
    • ZMQContext::__construct — Constrói um novo objeto ZMQContext
    • ZMQContext::getOpt — Obtém uma opção de contexto
    • ZMQContext::getSocket — Cria um novo socket
    • ZMQContext::isPersistent — Retorna se o contexto é persistente
    • ZMQContext::setOpt — Define uma opção de socket
  • ZMQSocket — A classe ZMQSocket
    • ZMQSocket::bind — Associa o socket
    • ZMQSocket::connect — Conecta o socket
    • ZMQSocket::__construct — Constrói um novo ZMQSocket
    • ZMQSocket::disconnect — Desconecta um socket
    • ZMQSocket::getEndpoints — Obtém uma lista de destinos
    • ZMQSocket::getPersistentId — Obtém o id persistente
    • ZMQSocket::getSocketType — Retorna o tipo de socket
    • ZMQSocket::getSockOpt — Obtém a opção do socket
    • ZMQSocket::isPersistent — Se o socket é persistente
    • ZMQSocket::recv — Recebe uma mensagem
    • ZMQSocket::recvMulti — Recebe uma mensagem de partes múltiplas
    • ZMQSocket::send — Envia uma mensagem
    • ZMQSocket::sendmulti — Envia uma mensagem de múltiplas partes
    • ZMQSocket::setSockOpt — Define uma opção de socket
    • ZMQSocket::unbind — Desvincula o socket
  • ZMQPoll — A classe ZMQPoll
    • ZMQPoll::add — Adiciona o item na lista de pesquisa
    • ZMQPoll::clear — Limpa a lista de consulta
    • ZMQPoll::count — Conta os itens na lista de consulta
    • ZMQPoll::getLastErrors — Obtém erros da consulta
    • ZMQPoll::poll — Consulta os itens
    • ZMQPoll::remove — Remove um item da lista de consulta
  • ZMQDevice — A classe ZMQDevice
    • ZMQDevice::__construct — Constrói um novo dispositivo
    • ZMQDevice::getIdleTimeout — Obtém o tempo limite de inatividade
    • ZMQDevice::getTimerTimeout — Obtém o tempo limite do temporizador
    • ZMQDevice::run — Executa o novo dispositivo
    • ZMQDevice::setIdleCallback — Define a função de retorno de inatividade
    • ZMQDevice::setIdleTimeout — Define o tempo limite de inatividade
    • ZMQDevice::setTimerCallback — Define a função de retorno do temporizador
    • ZMQDevice::setTimerTimeout — Define o tempo limite do temporizador


Introdução

"ØMQ é uma biblioteca que permite a criação e implementação rápida de aplicações baseadas na troca rápida de mensagens." --0MQ Website

Para mais informações sobre 0MQ, consulte » http://zeromq.org/.


  • « Introdução
  • Dependências »
  • PHP Manual
  • API de Mensagens 0MQ
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências


Dependências

A extensão ZMQ requer uma versão igual ou superior a versão 2.0.7 da biblioteca 0MQ. A biblioteca 0MQ pode ser adquirida em » http://zeromq.org/area:download.

Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/zmq


A classe ZMQ

(PECL zmq >= 0.5.0)

Introdução

Resumo da classe

class ZMQ {
/* Constantes */
const int SOCKET_PAIR;
const int SOCKET_PUB;
const int SOCKET_SUB;
const int SOCKET_REQ;
const int SOCKET_REP;
const int SOCKET_XREQ;
const int SOCKET_XREP;
const int SOCKET_PUSH;
const int SOCKET_PULL;
const int SOCKET_ROUTER;
const int SOCKET_DEALER;
const int SOCKET_XPUB;
const int SOCKET_XSUB;
const int SOCKET_STREAM;
const int SOCKOPT_HWM;
const int SOCKOPT_SNDHWM;
const int SOCKOPT_RCVHWM;
const int SOCKOPT_AFFINITY;
const int SOCKOPT_IDENTITY;
const int SOCKOPT_SUBSCRIBE;
const int SOCKOPT_UNSUBSCRIBE;
const int SOCKOPT_RATE;
const int SOCKOPT_RECOVERY_IVL;
const int SOCKOPT_RECONNECT_IVL;
const int SOCKOPT_RECONNECT_IVL_MAX;
const int SOCKOPT_MCAST_LOOP;
const int SOCKOPT_SNDBUF;
const int SOCKOPT_RCVBUF;
const int SOCKOPT_RCVMORE;
const int SOCKOPT_TYPE;
const int SOCKOPT_LINGER;
const int SOCKOPT_BACKLOG;
const int SOCKOPT_MAXMSGSIZE;
const int SOCKOPT_SNDTIMEO;
const int SOCKOPT_RCVTIMEO;
const int SOCKOPT_IPV4ONLY;
const int SOCKOPT_LAST_ENDPOINT;
const int SOCKOPT_TCP_KEEPALIVE_IDLE;
const int SOCKOPT_TCP_KEEPALIVE_CNT;
const int SOCKOPT_TCP_KEEPALIVE_INTVL;
const int SOCKOPT_TCP_ACCEPT_FILTER;
const int SOCKOPT_TCP_ACCEPT_FILTER;
const int SOCKOPT_DELAY_ATTACH_ON_CONNECT;
const int SOCKOPT_XPUB_VERBOSE;
const int SOCKOPT_ROUTER_RAW;
const int SOCKOPT_IPV6;
const int CTXOPT_MAX_SOCKETS;
const int POLL_IN;
const int POLL_OUT;
const int MODE_NOBLOCK;
const int MODE_DONTWAIT;
const int MODE_SNDMORE;
const int ERR_INTERNAL;
const int ERR_EAGAIN;
const int ERR_ENOTSUP;
const int ERR_EFSM;
const int ERR_ETERM;
/* Métodos */
private __construct()
}

Constantes pré-definidas

Tipos de Constantes ZMQ

ZMQ::SOCKET_PAIR

Padrão de paridade exclusiva

ZMQ::SOCKET_PUB

Socket de publicação

ZMQ::SOCKET_SUB

Socket de subscrição

ZMQ::SOCKET_REQ

Socket de requisição

ZMQ::SOCKET_REP

Socket de resposta

ZMQ::SOCKET_XREQ

Um pseudônimo para SOCKET_DEALER

ZMQ::SOCKET_XREP

Um pseudônimo para SOCKET_ROUTER

ZMQ::SOCKET_PUSH

Um socket para envio de fluxo

ZMQ::SOCKET_PULL

Um socket para recepção de fluxo

ZMQ::SOCKET_ROUTER

Um socket de resposta extendido que pode rotear respostas para os solicitantes

ZMQ::SOCKET_DEALER

Um socket extendido de requisição que equilibra a carga para todos os clientes conectados

ZMQ::SOCKET_XPUB

Similar ao SOCKET_PUB, exceto que é possível receber subscrições como mensagens. A mensagem de subscrição é 0 (não subscrever) ou 1 (subscrever) seguido por um tópico.

ZMQ::SOCKET_XSUB

Similar ao SOCKET_SUB, exceto que é possível enviar subscrições como mensagens. Consulte SOCKET_XPUB para saber o formato.

ZMQ::SOCKET_STREAM

Usado para enviar e receber dados via TCP de um cliente não ØMQ. Disponível se compilado em versão igual ou superior a 4.x da ZeroMQ (Valor: int)

ZMQ::SOCKOPT_HWM

O marcador High Water Mark (HWM) para as mensagens que entram e saem, é um marcador de limite do número máximo de mensagens que a ØMQ enfileira na memória para um cliente qualquer ao qual o socket especificado esteja se comunicando. Definir esta opção em um socket afetará apenas as conexões feitas após a configuração da opção. Na ZeroMQ 3.x esta opção é um wrapper para a configuração de SNDHWM e RCVHWM. (Valor: int).

ZMQ::SOCKOPT_SNDHWM

A opção ZMQ_SNDHWM define o limite HWM para as mensagens de saída no socket especificado. Disponível se compilado na versão 3.x ou maior da ZeroMQ (Valor: int).

ZMQ::SOCKOPT_RCVHWM

A opção ZMQ_RCVHWM define o limite HWM para as mensagens de entrada no socket especificado. Disponível se compilado na versão 3.x ou maior da ZeroMQ (Valor: int).

ZMQ::SOCKOPT_AFFINITY

Define a relação com a thread de I/O (Valor: int)

ZMQ::SOCKOPT_IDENTITY

Define a identidade do socket (Valor: string)

ZMQ::SOCKOPT_SUBSCRIBE

Estabelece um filtro de mensagens. Válido para o socket subscrito (Valor: string)

ZMQ::SOCKOPT_UNSUBSCRIBE

Remove um filtro de mensagens. Válido para o socket subscrito (Valor: string)

ZMQ::SOCKOPT_RATE

Define a taxa de envio para sockets multicast (pgm) (Valor: int >= 0)

ZMQ::SOCKOPT_RECOVERY_IVL

Define o intervalo de recuperação multicast (Valor: int >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL

Define o intervalo de reconexão inicial (Valor: int >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL_MAX

Define o intervalo máximo de reconexão (Valor: int >= 0)

ZMQ::SOCKOPT_MCAST_LOOP

Controla o retorno do multicast (Valor: int >= 0)

ZMQ::SOCKOPT_SNDBUF

Define o tamanho do buffer do kernel de transmissão (Valor: int >= 0)

ZMQ::SOCKOPT_RCVBUF

Define o tamanho do buffer do kernel de recepção (Valor: int >= 0)

ZMQ::SOCKOPT_RCVMORE

Recebe mensagens com várias partes (Valor: int)

ZMQ::SOCKOPT_TYPE

Obtém o tipo de socket. Válido para o método getSockOpt (Valor: int)

ZMQ::SOCKOPT_LINGER

O tempo de permanência após fechamento do socket. Especifica por quanto tempo o socket fica bloqueado enquanto tenta dar vazão às mensagens depois que ele tenha sido fechado (Valor: int)

ZMQ::SOCKOPT_BACKLOG

A opção SOCKOPT_BACKLOG define o comprimento máximo da fila de conexões de clientes para o socket especificado; isso só se aplica a transportes orientados a conexão. (Valor: int)

ZMQ::SOCKOPT_MAXMSGSIZE

Limita o tamanho máximo da mensagem de entrada. O valor -1 significa que não há limite. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: int)

ZMQ::SOCKOPT_SNDTIMEO

Define o tempo limite para a operação de envio no socket. O valor -1 indica que não há limite. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: int)

ZMQ::SOCKOPT_RCVTIMEO

Define o tempo limite para a operação de recepção no socket. O valor -1 indica que não há limite. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: int)

ZMQ::SOCKOPT_IPV4ONLY

Desabilita o suporte ao IPV6 caso o valor seja 1. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: int)

ZMQ::SOCKOPT_LAST_ENDPOINT

Recupera o último destino conectado - para o uso com as portas * coringa. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: string)

ZMQ::SOCKOPT_TCP_KEEPALIVE_IDLE

Tempo de ociosidade para os pacotes TCP keepalive. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: int)

ZMQ::SOCKOPT_TCP_KEEPALIVE_CNT

Contador para os pacotes TCp keepalive. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: int)

ZMQ::SOCKOPT_TCP_KEEPALIVE_INTVL

Intervalo para os pacotes TCP keepalive. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: int)

ZMQ::SOCKOPT_DELAY_ATTACH_ON_CONNECT

Define uma string CIDR para comparar com as conexões TCP de entrada. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: string)

ZMQ::SOCKOPT_TCP_ACCEPT_FILTER

Define uma string CIDR para comparar com as conexões TCP de entrada. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: string)

ZMQ::SOCKOPT_XPUB_VERBOSE

Define que a opção XPUB deve receber uma mensagem de aplicação em cada instância de subscrição. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: string)

ZMQ::SOCKOPT_ROUTER_RAW

Define o modo raw (sem processamento) para o ROUTER, quando passado o valor 1. No modo raw, ao usar um socket TCP, a leitura e escrita dos dados será realizada sem o processamento do ZeroMQ. Disponível se compilado em versão igual ou superior a 4.0 da ZeroMQ (Valor: string)

ZMQ::SOCKOPT_IPV6

Habilita o protocolo IPV6. Disponível se compilado em versão igual ou superior a 4.0 da ZeroMQ (Valor: string)

ZMQ::CTXOPT_MAX_SOCKETS

O número máximo de sockets para o contexto. Disponível se compilado em versão igual ou superior a 3.x da ZeroMQ (Valor: int)

ZMQ::POLL_IN

Consulta se há dados de entrada

ZMQ::POLL_OUT

Consulta se há dados e saída

ZMQ::MODE_NOBLOCK

Define a operação como não bloqueante. Constante descontinuada, use ZMQ::MODE_DONTWAIT em seu lugar

ZMQ::MODE_DONTWAIT

Define a operação como não bloqueante

ZMQ::MODE_SNDMORE

Envia uma mensagem particionada (com várias partes)

ZMQ::DEVICE_FORWARDER

Define um dispositivo de encaminhamento

ZMQ::DEVICE_QUEUE

Define um dispositivo de enfileiramento

ZMQ::DEVICE_STREAMER

Define um dispositivo de fluxo

ZMQ::ERR_INTERNAL

Erro interno na extensão ZMQ

ZMQ::ERR_EAGAIN

Impleca que a operação será bloqueante caso ZMQ::MODE_DONTWAIT seja usada

ZMQ::ERR_ENOTSUP

A operação não é suportada pelo tipo de socket informado

ZMQ::ERR_EFSM

A operação não pode ser executada porque o socket não está em um estado válido

ZMQ::ERR_ETERM

O contexto foi encerrado

Índice

  • ZMQ::__construct — Construtor da classe ZMQ


Construtor da classe ZMQ

  • « ZMQ
  • ZMQContext »
  • PHP Manual
  • ZMQ
  • Construtor da classe ZMQ

ZMQ::__construct

(PECL zmq >= 0.5.0)

ZMQ::__construct — Construtor da classe ZMQ

Descrição

private ZMQ::__construct()

Um construtor privado para prevenir a inicialização direta. Esta classe abriga as constantes para a extensão ZMQ.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


A classe ZMQContext

(PECL zmq >= 0.5.0)

Introdução

Resumo da classe

class ZMQContext {
/* Métodos */
public __construct(int $io_threads = 1, bool $is_persistent = true)
public getOpt(string $key): mixed
public getSocket(int $type, string $persistent_id = null, callable $on_new_socket = null): ZMQSocket
public isPersistent(): bool
public setOpt(int $key, mixed $value): ZMQContext
}

Índice

  • ZMQContext::__construct — Constrói um novo objeto ZMQContext
  • ZMQContext::getOpt — Obtém uma opção de contexto
  • ZMQContext::getSocket — Cria um novo socket
  • ZMQContext::isPersistent — Retorna se o contexto é persistente
  • ZMQContext::setOpt — Define uma opção de socket


Constrói um novo objeto ZMQContext

  • « ZMQContext
  • ZMQContext::getOpt »
  • PHP Manual
  • ZMQContext
  • Constrói um novo objeto ZMQContext

ZMQContext::__construct

(PECL zmq >= 0.5.0)

ZMQContext::__construct — Constrói um novo objeto ZMQContext

Descrição

public ZMQContext::__construct(int $io_threads = 1, bool $is_persistent = true)

Constrói um novo contexto ZMQ. O contexto é usado para inicializar os sockets. Um contexto persistente é necessário para inicializar sockets persistentes.

Parâmetros

io_threads

Número de threads de I/O no contexto.

is_persistent

Indica se o contexto é persistente. Um contexto persistente é armazenado ao longo de várias requisições e é um requisito para os sockets persistentes.

Erros/Exceções

Lança um ZMQContextException caso a inicialização do contexto falhe.

Exemplos

Exemplo #1 Um exemplo de ZMQContext()

Constrói um novo contexto e aloca um socket de requisição a partir dele

<?php
/* Aloca um novo contexto */
$contexto = new ZMQContext();

/* Cria um novo socket */
$socket = $contexto->getSocket(ZMQ::SOCKET_REQ, 'meu socket');

/* Conecta o socket */
$socket->connect("tcp://exemplo.com:1234");

/* Envia uma requisição */
$socket->send("Olá");

/* Recebe a resposta */
$mensagem = $socket->recv();
?>


Obtém uma opção de contexto

  • « ZMQContext::__construct
  • ZMQContext::getSocket »
  • PHP Manual
  • ZMQContext
  • Obtém uma opção de contexto

ZMQContext::getOpt

(PECL zmq >= 1.0.4)

ZMQContext::getOpt — Obtém uma opção de contexto

Descrição

public ZMQContext::getOpt(string $key): mixed

Retorna o valor de uma opção de contexto.

Parâmetros

key

Um interiro representando a opção. Consulte as constentes ZMQ::CTXOPT_*.

Valor Retornado

Retorna tanto uma string quanto um int dependendo do parâmetro key. Lança uma exceção ZMQContextException caso haja erro.


Cria um novo socket

  • « ZMQContext::getOpt
  • ZMQContext::isPersistent »
  • PHP Manual
  • ZMQContext
  • Cria um novo socket

ZMQContext::getSocket

(PECL zmq >= 0.5.0)

ZMQContext::getSocket — Cria um novo socket

Descrição

public ZMQContext::getSocket(int $type, string $persistent_id = null, callable $on_new_socket = null): ZMQSocket

Um atalho para criar sockets a partir de um contexto. Se o contexto não for persistente, o parâmetro persistent_id é ignorado e o socket continua sendo não persistente. o parâmetro on_new_socket é chamado apenas quando uma nova estrutura de socket for criada.

Parâmetros

type

Uma constante ZMQ::SOCKET_* que especifica o tipo do socket.

persistent_id

Se o parâmetro persistent_id for especificado, o socket será persistente ao longo de várias requisições.

on_new_socket

Uma função de retorno que é executada quando uma nova estrutura de socket é criada. Essa função não é invocada se uma conexão persistente for reusada. A função de retorno tem um ZMQSocket e um persistent_id como argumentos.

Valor Retornado

Retorna um objeto ZMQSocket.

Erros/Exceções

Lança um ZMQSocketException em caro de erro.

Exemplos

Exemplo #1 Um exemplo de ZMQContext()

Uso básico

<?php
/* Aloca um novo contexto */
$contexto = new ZMQContext();

/* Cria um novo socket */
$socket = $contexto->getSocket(ZMQ::SOCKET_REQ, 'meu socket');

/* Conecta o socket */
$socket->connect("tcp://exemplo.com:1234");

/* Envia uma requisição */
$socket->send("Olá");

/* Recebe a resposta */
$mensagem = $socket->recv();
echo "Mensagem recebida: {$mensagem}\n";
?>


Retorna se o contexto é persistente

  • « ZMQContext::getSocket
  • ZMQContext::setOpt »
  • PHP Manual
  • ZMQContext
  • Retorna se o contexto é persistente

ZMQContext::isPersistent

(PECL zmq >= 0.5.0)

ZMQContext::isPersistent — Retorna se o contexto é persistente

Descrição

public ZMQContext::isPersistent(): bool

Retorna se o contexto é persistente. É necessário um contexto persistente para uma conexão persistente pois cada socket é alocado a partir de um contexto.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o contexto for persistente e false caso contrário.


Define uma opção de socket

  • « ZMQContext::isPersistent
  • ZMQSocket »
  • PHP Manual
  • ZMQContext
  • Define uma opção de socket

ZMQContext::setOpt

(PECL zmq >= 1.0.4)

ZMQContext::setOpt — Define uma opção de socket

Descrição

public ZMQContext::setOpt(int $key, mixed $value): ZMQContext

Define uma opção de contexto ZMQ. O tipo do parâmetro value depende do parâmetro key. Consulte os Tipos de Constantes ZMQ para mais informações.

Parâmetros

key

Uma das constantes ZMQ::CTXOPT_*.

value

O valor do parâmetro.

Valor Retornado

Retorna o objeto atual. Lança uma exceção do tipo ZMQContextException caso haja erro.


A classe ZMQSocket

(PECL zmq >= 0.5.0)

Introdução

Resumo da classe

class ZMQSocket {
/* Métodos */
public bind(string $dsn, bool $force = false): ZMQSocket
public connect(string $dsn, bool $force = false): ZMQSocket
public __construct(
ZMQContext $context,
int $type,
string $persistent_id = null,
callable $on_new_socket = null
)
public disconnect(string $dsn): ZMQSocket
public getEndpoints(): array
public getPersistentId(): string
public getSocketType(): int
public getSockOpt(string $key): mixed
public isPersistent(): bool
public recv(int $mode = 0): string
public recvMulti(int $mode = 0): array
public send(string $message, int $mode = 0): ZMQSocket
public sendmulti(array $message, int $mode = 0): ZMQSocket
public setSockOpt(int $key, mixed $value): ZMQSocket
public unbind(string $dsn): ZMQSocket
}

Índice

  • ZMQSocket::bind — Associa o socket
  • ZMQSocket::connect — Conecta o socket
  • ZMQSocket::__construct — Constrói um novo ZMQSocket
  • ZMQSocket::disconnect — Desconecta um socket
  • ZMQSocket::getEndpoints — Obtém uma lista de destinos
  • ZMQSocket::getPersistentId — Obtém o id persistente
  • ZMQSocket::getSocketType — Retorna o tipo de socket
  • ZMQSocket::getSockOpt — Obtém a opção do socket
  • ZMQSocket::isPersistent — Se o socket é persistente
  • ZMQSocket::recv — Recebe uma mensagem
  • ZMQSocket::recvMulti — Recebe uma mensagem de partes múltiplas
  • ZMQSocket::send — Envia uma mensagem
  • ZMQSocket::sendmulti — Envia uma mensagem de múltiplas partes
  • ZMQSocket::setSockOpt — Define uma opção de socket
  • ZMQSocket::unbind — Desvincula o socket


Associa o socket

  • « ZMQSocket
  • ZMQSocket::connect »
  • PHP Manual
  • ZMQSocket
  • Associa o socket

ZMQSocket::bind

(PECL zmq >= 0.5.0)

ZMQSocket::bind — Associa o socket

Descrição

public ZMQSocket::bind(string $dsn, bool $force = false): ZMQSocket

Associa o socket a um destino. O destino é definido no formato transport://address, onde transport é um dos seguintes itens: inproc, ipc, tcp, pgm or epgm.

Parâmetros

dsn

O destino que será associado, por exemplo transport://address.

force

Tenta associar ao destino mesmo que o socket já tenha sido associado ao destino informado.

Valor Retornado

Retorna o objeto atual. Lança um aexceção ZMQSocketException caso haja erro.


Conecta o socket

  • « ZMQSocket::bind
  • ZMQSocket::__construct »
  • PHP Manual
  • ZMQSocket
  • Conecta o socket

ZMQSocket::connect

(PECL zmq >= 0.5.0)

ZMQSocket::connect — Conecta o socket

Descrição

public ZMQSocket::connect(string $dsn, bool $force = false): ZMQSocket

Conecta o socket ao destino remoto. O destino é definido no formato transport://address, onde transporte é um dos seguintes itens: inproc, ipc, tcp, pgm or epgm.

Parâmetros

dsn

O destino da conexão, por exemplo transport://address.

force

Tenta conectar mesmo se o socket já foi conectado a um dado destino.

Valor Retornado

Retorna o objeto atual.

Erros/Exceções

Lança um erro ZMQSocketException.

Exemplos

Exemplo #1 Um exemplo de ZMQContext()

Constrói um novo contexto e aloca a requisição do socket a partir dele

<?php
/* Nome do servidor */
$destino = "tcp://127.0.0.1:5555";

/* Cria um socket */
$socket = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ, 'meu socket');

/* Obtém uma lista dos destinos conectados */
$destinos = $socket->getEndpoints();

/* Verifica se o socket está conectado */
if (!in_array($destino, $destinos['connect'])) {
echo "<p>Conectando em $destino</p>";
$socket->connect($destino);
} else {
echo "<p>Já está conectado em $destino</p>";
}

/* Envia e Recebe */
$socket->send("Olá!");
$mensagem = $socket->recv();

echo "<p>O servidor disse: {$mensagem}</p>";
?>


Constrói um novo ZMQSocket

  • « ZMQSocket::connect
  • ZMQSocket::disconnect »
  • PHP Manual
  • ZMQSocket
  • Constrói um novo ZMQSocket

ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__construct — Constrói um novo ZMQSocket

Descrição

public ZMQSocket::__construct(
ZMQContext $context,
int $type,
string $persistent_id = null,
callable $on_new_socket = null
)

Constrói um objeto ZMQSocket. O parâmetro persistent_id pode ser usado para alocar um socket persistente. Um socket persistente deve ser alocado a partir de um contexto persistente e permanece conectado ao longo de várias requisições. O parâmetro persistent_id pode ser usado para chamar novamente o mesmo socket ao longo de várias requisições. O parâmetro on_new_socket é chamado apenas quando uma nova instância de socket for criada.

Parâmetros

context

Um objeto ZMQContext.

type

O tipo do socket. Consulte as constantes ZMQ::SOCKET_*.

persistent_id

Se o parâmetro persistent_id for especificado, o socket será persistente ao longo de várias requisições. Se o parâmetro context não for persistente, o socket volta para o modo não persistente.

on_new_socket

Uma finção de retorno que é executada quando uma nova instância de socket é criada. Essa função não é invocada se a conexão em uso for persistente e estiver sendo reusada.

callback(ZMQSocket $socket, string $persistent_id = null)

Erros/Exceções

Lança um ZMQSocketException em erros.

Exemplos

Exemplo #1 Exemplo de ZMQSocket()

Utilizando um callback para conectar associar um socket

<?php

/*
O socket é persistente e por isso essa função é chamada apanas na
primeira requisição ao script.
*/
function novo_socket_cb(ZMQSocket $socket, $id_persistente = null)
{
if ($id_persistente === 'servidor') {
$socket->bind("tcp://localhost:12122");
} else {
$socket->connect("tcp://localhost:12122");
}
}

/* Aloca um novo contexto */
$contexto = new ZMQContext();

/* Cria um novo socket */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'servidor', 'novo_socket_cb');

$mensagem = $socket->recv();
echo "Mensagem recebida: {$mensagem}\n";
?>


Desconecta um socket

  • « ZMQSocket::__construct
  • ZMQSocket::getEndpoints »
  • PHP Manual
  • ZMQSocket
  • Desconecta um socket

ZMQSocket::disconnect

(PECL zmq >= 1.0.4)

ZMQSocket::disconnect — Desconecta um socket

Descrição

public ZMQSocket::disconnect(string $dsn): ZMQSocket

Desconecta o socket de um destino remoto previamente conectado. O destino é definido no formato transport://address onde transporte é um dos itens a seguir: inproc, ipc, tcp, pgm or epgm.

Parâmetros

dsn

O destino conectado, por exemplo transport://address.

Valor Retornado

Retorna o objeto atual. Lança uma exceção ZMQSocketException caso haja erro.


Obtém uma lista de destinos

  • « ZMQSocket::disconnect
  • ZMQSocket::getPersistentId »
  • PHP Manual
  • ZMQSocket
  • Obtém uma lista de destinos

ZMQSocket::getEndpoints

(PECL zmq >= 0.5.0)

ZMQSocket::getEndpoints — Obtém uma lista de destinos

Descrição

public ZMQSocket::getEndpoints(): array

Retorna uma lista de destinos onde aos quais o socket está connectado ou associado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um vetor (array) contendo elementos 'bind' (associados) e 'connect' (conectados).


Obtém o id persistente

  • « ZMQSocket::getEndpoints
  • ZMQSocket::getSocketType »
  • PHP Manual
  • ZMQSocket
  • Obtém o id persistente

ZMQSocket::getPersistentId

(PECL zmq >= 0.5.0)

ZMQSocket::getPersistentId — Obtém o id persistente

Descrição

public ZMQSocket::getPersistentId(): string

Retorna o id do socket persistente.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a string com o id persistente atribuído ao objeto e null caso o socket não seja persistente.


Retorna o tipo de socket

  • « ZMQSocket::getPersistentId
  • ZMQSocket::getSockOpt »
  • PHP Manual
  • ZMQSocket
  • Retorna o tipo de socket

ZMQSocket::getSocketType

(PECL zmq >= 0.5.0)

ZMQSocket::getSocketType — Retorna o tipo de socket

Descrição

public ZMQSocket::getSocketType(): int

Retorna o tipo de socket.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um inteiro representando o tipo do socket. O inteiro pode ser comparado com as constantes ZMQ::SOCKET_*.


Obtém a opção do socket

  • « ZMQSocket::getSocketType
  • ZMQSocket::isPersistent »
  • PHP Manual
  • ZMQSocket
  • Obtém a opção do socket

ZMQSocket::getSockOpt

(PECL zmq >= 0.5.0)

ZMQSocket::getSockOpt — Obtém a opção do socket

Descrição

public ZMQSocket::getSockOpt(string $key): mixed

Retorna o valor de uma opção de socket.

Parâmetros

key

Um inteiro representando a opção. Consulte as constantes ZMQ::SOCKOPT_*.

Valor Retornado

Retorna tanto uma string ou um int dependendo do parâmetro key. Lança uma exceção ZMQSocketException caso haja erro.


Se o socket é persistente

  • « ZMQSocket::getSockOpt
  • ZMQSocket::recv »
  • PHP Manual
  • ZMQSocket
  • Se o socket é persistente

ZMQSocket::isPersistent

(PECL zmq >= 0.5.0)

ZMQSocket::isPersistent — Se o socket é persistente

Descrição

public ZMQSocket::isPersistent(): bool

Verifica se o socket é persistente

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um bool baseado caso o socket seja persistente ou não.


Recebe uma mensagem

  • « ZMQSocket::isPersistent
  • ZMQSocket::recvMulti »
  • PHP Manual
  • ZMQSocket
  • Recebe uma mensagem

ZMQSocket::recv

(PECL zmq >= 0.5.0)

ZMQSocket::recv — Recebe uma mensagem

Descrição

public ZMQSocket::recv(int $mode = 0): string

Recebe uma mensagem a partir de um socket. Por padrão a recepção será bloqueada até que uma mensagem esteja disponível a menos que a constante ZMQ::MODE_DONTWAIT seja usada. A constante ZMQ::SOCKOPT_RCVMORE pode ser usada para receber mensagens de múltiplas partes. Consulte ZMQSocket::setSockOpt() para mais informações.

Parâmetros

mode

Passa indicadores para a recepção de mensagens de múltiplas partes ou operações não bloqueantes. Consulte as constantes ZMQ::MODE_*.

Valor Retornado

Retorna a mensagem. Se ZMQ::MODE_DONTWAIT for usada e a operação for bloqueante, false deve ser retornado.

Erros/Exceções

Lança ZMQSocketException em erros.

Exemplos

Exemplo #1 Um exemplo de envio/recepção

Envio / recepção não bloqueantes

<?php

/* Cria um novo objeto de enfileiramento, é necessário existir um servidor na outra ponta */
$fila = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ);
$fila->connect("tcp://127.0.0.1:5555");

/* Atribui o socket 1 à fila, envia e recebe */
$tentativas = 5;
$enviando = true;

/* Inicia um laço */
do {
try {
/* Tenta enviar / receber */
if ($enviando) {
echo "Enviando mensagem\n";
$fila->send("Isso é uma mensagem", ZMQ::MODE_DONTWAIT);
$enviando = false;
} else {
echo "Obteve resposta: " . $fila->recv(ZMQ::MODE_DONTWAIT) . "\n";
break;
}
} catch (ZMQSocketException $e) {
/* EAGAIN significa que a operação foi bloqueada, tentar novamente */
if ($e->getCode() === ZMQ::ERR_EAGAIN) {
echo " - Obteve EAGAIN, tentando novamente ($tentativas)\n";
} else {
die(" - Erro: " . $e->getMessage());
}
}
/* Dá uma pausa durante as operações */
usleep(5);
} while (--$tentativas);
?>

O exemplo acima produzirá algo semelhante a:

Enviando mensagem
 - Obteve EAGAIN, tentando novamente (4)
Obteve resposta: Isso é uma mensagem


Recebe uma mensagem de partes múltiplas

  • « ZMQSocket::recv
  • ZMQSocket::send »
  • PHP Manual
  • ZMQSocket
  • Recebe uma mensagem de partes múltiplas

ZMQSocket::recvMulti

(PECL zmq >= 0.8.0)

ZMQSocket::recvMulti — Recebe uma mensagem de partes múltiplas

Descrição

public ZMQSocket::recvMulti(int $mode = 0): array

Recebe um array de mensagem de múltiplas partes de um socket. Por padrão a recepção será bloqueada até que uma mensagem esteja disponível, a menos que a constante ZMQ::MODE_NOBLOCK seja usada.

Parâmetros

mode

Passa indicadores de modo para receber mensagens com várias partes ou operações não bloqueantes. Consulte as constantes ZMQ::MODE_*.

Valor Retornado

Retorna o array de partes da mensagem. Lança uma exceção ZMQSocketException caso haja erro. Se a constante ZMQ::MODE_NOBLOCK for usada e a operação seja bloqueada, bool falso será retornado.


Envia uma mensagem

  • « ZMQSocket::recvMulti
  • ZMQSocket::sendmulti »
  • PHP Manual
  • ZMQSocket
  • Envia uma mensagem

ZMQSocket::send

(PECL zmq >= 0.5.0)

ZMQSocket::send — Envia uma mensagem

Descrição

public ZMQSocket::send(string $message, int $mode = 0): ZMQSocket

Envia uma mensagem usando o socket. A operação pode bloquear, a menos que a constante ZMQ::MODE_NOBLOCK seja usada.

Parâmetros

message

A mensagem a ser enviada.

mode

Passa um indicador para receber mensagens com várias partes ou operações não bloqueantes. Consulte as constantes ZMQ::MODE_*.

Valor Retornado

Retorna o objeto atual. Lança uma exceção ZMQSocketException caso haja erro. Se a constante ZMQ::MODE_NOBLOCK for usada e a operação bloquear, bool falso será retornado.


Envia uma mensagem de múltiplas partes

  • « ZMQSocket::send
  • ZMQSocket::setSockOpt »
  • PHP Manual
  • ZMQSocket
  • Envia uma mensagem de múltiplas partes

ZMQSocket::sendmulti

(PECL zmq >= 0.8.0)

ZMQSocket::sendmulti — Envia uma mensagem de múltiplas partes

Descrição

public ZMQSocket::sendmulti(array $message, int $mode = 0): ZMQSocket

Envia uma mensagem com várias partes usando o socket. A operação pode bloquear, exceto caso ZMQ::MODE_NOBLOCK seja usada.

Parâmetros

message

A mensagem a ser enviada - um vetor (array) de strings

mode

Passe indicadores mode para receber mensagens com múltiplas partes ou operações não bloqueantes. Consulte as constantes ZMQ::MODE_*.

Valor Retornado

Retorna o objeto atual. Lança uma exceção ZMQSocketException caso haja erro. Se a constante ZMQ::MODE_NOBLOCK for usada e a operação bloqueie, bool falso será retornado.


Define uma opção de socket

  • « ZMQSocket::sendmulti
  • ZMQSocket::unbind »
  • PHP Manual
  • ZMQSocket
  • Define uma opção de socket

ZMQSocket::setSockOpt

(PECL zmq >= 0.5.0)

ZMQSocket::setSockOpt — Define uma opção de socket

Descrição

public ZMQSocket::setSockOpt(int $key, mixed $value): ZMQSocket

Define uma opção para o socket ZMQ. O tipo do parâmetro value depende do parâmetro key. Consulte Tipos de Constantes ZMQ para mais informações.

Parâmetros

key

Uma das constantes ZMQ::SOCKOPT_*.

value

O valor do parâmetro.

Valor Retornado

Retorna o objeto atual. Lança uma exceção ZMQSocketException caso haja erro.


Desvincula o socket

  • « ZMQSocket::setSockOpt
  • ZMQPoll »
  • PHP Manual
  • ZMQSocket
  • Desvincula o socket

ZMQSocket::unbind

(PECL zmq >= 1.0.4)

ZMQSocket::unbind — Desvincula o socket

Descrição

public ZMQSocket::unbind(string $dsn): ZMQSocket

Desassocia o socket de um destino. O destino é definido no formato transport://address onde "transporte" é um dos seguintes: inproc, ipc, tcp, pgm or epgm.

Parâmetros

dsn

O destino associado anteriormente. Por exemplo transport://address.

Valor Retornado

Retorna o objeto atual. Lança uma ZMQSocketException em caso de erro.


A classe ZMQPoll

(PECL zmq >= 0.5.0)

Introdução

Resumo da classe

class ZMQPoll {
/* Métodos */
public add(mixed $entry, int $type): string
public clear(): ZMQPoll
public count(): int
public getLastErrors(): array
public poll(array &$readable, array &$writable, int $timeout = -1): int
public remove(mixed $item): bool
}

Índice

  • ZMQPoll::add — Adiciona o item na lista de pesquisa
  • ZMQPoll::clear — Limpa a lista de consulta
  • ZMQPoll::count — Conta os itens na lista de consulta
  • ZMQPoll::getLastErrors — Obtém erros da consulta
  • ZMQPoll::poll — Consulta os itens
  • ZMQPoll::remove — Remove um item da lista de consulta


Adiciona o item na lista de pesquisa

  • « ZMQPoll
  • ZMQPoll::clear »
  • PHP Manual
  • ZMQPoll
  • Adiciona o item na lista de pesquisa

ZMQPoll::add

(PECL zmq >= 0.5.0)

ZMQPoll::add — Adiciona o item na lista de pesquisa

Descrição

public ZMQPoll::add(mixed $entry, int $type): string

Adiciona um novo item na lista de pesquisa e retorna o id interno do item adicionado. O item pode ser removido da lista através da string de identificação retornada.

Parâmetros

entry

Um objeto ZMQSocket ou um recurso de fluxo (stream) PHP

type

Define para qual atividade o socket será consultado. Consulte as constantes ZMQ::POLL_IN e ZMQ::POLL_OUT.

Valor Retornado

Retorna uma string de identificação do item adicionado, que pode ser usada posteriormente para remover o item. Lança uma exceção ZMQPollException caso haja erro.


Limpa a lista de consulta

  • « ZMQPoll::add
  • ZMQPoll::count »
  • PHP Manual
  • ZMQPoll
  • Limpa a lista de consulta

ZMQPoll::clear

(PECL zmq >= 0.5.0)

ZMQPoll::clear — Limpa a lista de consulta

Descrição

public ZMQPoll::clear(): ZMQPoll

Exclui todos os elementos da lista de consulta.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o objeto atual.


Conta os itens na lista de consulta

  • « ZMQPoll::clear
  • ZMQPoll::getLastErrors »
  • PHP Manual
  • ZMQPoll
  • Conta os itens na lista de consulta

ZMQPoll::count

(PECL zmq >= 0.5.0)

ZMQPoll::count — Conta os itens na lista de consulta

Descrição

public ZMQPoll::count(): int

Conta os itens na lista de consulta.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um int representando a quantidade de itens na lista de consulta.


Obtém erros da consulta

  • « ZMQPoll::count
  • ZMQPoll::poll »
  • PHP Manual
  • ZMQPoll
  • Obtém erros da consulta

ZMQPoll::getLastErrors

(PECL zmq >= 0.5.0)

ZMQPoll::getLastErrors — Obtém erros da consulta

Descrição

public ZMQPoll::getLastErrors(): array

Retorna os ids dos objetos que tiveram erro na última consulta.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array contendo os ids dos itens que tiveram erro na última consulta. Um arrau vazio é retornado se não houveram erros.


Consulta os itens

  • « ZMQPoll::getLastErrors
  • ZMQPoll::remove »
  • PHP Manual
  • ZMQPoll
  • Consulta os itens

ZMQPoll::poll

(PECL zmq >= 0.5.0)

ZMQPoll::poll — Consulta os itens

Descrição

public ZMQPoll::poll(array &$readable, array &$writable, int $timeout = -1): int

Consulta os itens na lista de pesquisa atual. Os itens de leitura e escrita são retornados nos parâmetros readable e writable. A função ZMQPoll::getLastErrors() pode ser usada para verificar se houveram erros.

Parâmetros

readable

Um array (vetor) onde os ZMQSockets de leitura ou recursos de fluxo (streams) PHP são retornados. O array será esvaziado no início da operação.

writable

Um array (vetor) onde os ZMQSockets de escrita ou recursos de fluxo (streams) PHP são retornados. O array será esvaziado no início da operação.

timeout

O tempo limite de execução da operação. -1 significa que a pesquisa espera até pelo menos um item entre em atividade. Note que a partir da versão 1.0.0 o tempo limite de consulta é definido em milissegundos, em vez de microsegundos.

Valor Retornado

Retorna um inteiro representando a quantidade de itens com atividades.

Erros/Exceções

Lança um ZMQPollException em caso de erros.

Exemplos

Exemplo #1 Um exemplo de ZMQPoll()

Cria um servidor de consulta simples

<?php

/* Cria um socket, padrão requisição-resposta (socket de resposta) */
$contexto = new ZMQContext();
$servidor = $contexto->getSocket(ZMQ::SOCKET_REP);

/* Associa à porta 5555 em 127.0.0.1 */
$servidor->bind("tcp://127.0.0.1:5555");

/* Cria uma nova lista de consulta para mensagens de entrada/saída */
$consulta = new ZMQPoll();

/* Adiciona o objeto e espera por consultas de entrada/saída */
$id = $consulta->add($servidor, ZMQ::POLL_IN | ZMQ::POLL_OUT);
echo "Adicionou o objeto com id " . $id . "\n";

/* Inicializa os arrays de leitura e escrita */
$leitura = array();
$escrita = array();

while (true) {
/* Quantidade de eventos recuperados */
$eventos = 0;

try {
/* Pesquisa até que haja algo a ser feito */
$eventos = $consulta->poll($leitura, $escrita, -1);
$erros = $consulta->getLastErrors();

if (count($erros) > 0) {
foreach ($erros as $erro) {
echo "Erro ao consultar objeto " . $erro . "\n";
}
}
} catch (ZMQPollException $e) {
echo "A pesquisa falhou: " . $e->getMessage() . "\n";
}

if ($eventos > 0) {
/* Itera através dos objetos de leitura e mensagens recebidas */
foreach ($leitura as $le) {
try {
echo "Mensagem recebida: " . $le->recv() . "\n";
} catch (ZMQException $e) {
echo "o método recv falhou: " . $e->getMessage() . "\n";
}
}

/* Itera através dos objetos de escrita e das mensagens enviada */
foreach ($escrita as $es) {
try {
$es->send("Recebido!");
} catch (ZMQException $e) {
echo "o método send falhou: " . $e->getMessage() . "\n";
}
}
}
}
?>


Remove um item da lista de consulta

  • « ZMQPoll::poll
  • ZMQDevice »
  • PHP Manual
  • ZMQPoll
  • Remove um item da lista de consulta

ZMQPoll::remove

(PECL zmq >= 0.5.0)

ZMQPoll::remove — Remove um item da lista de consulta

Descrição

public ZMQPoll::remove(mixed $item): bool

Remove o item da lista de consulta. O parâmetro item pode ser um objeto ZMQSocket, um recurso de fluxo (stream) ou o id retornado pelo método ZMQPoll::add().

Parâmetros

item

O objeto ZMQSocket, recurso de fluxo (stream) ou a string id do item.

Valor Retornado

Retorna verdadeiro caso o item tenha sido removido e falso caso o objeto com o id informado não existe na lista de pesquisa.


A classe ZMQDevice

(PECL zmq >= 0.5.0)

Introdução

Resumo da classe

class ZMQDevice {
/* Métodos */
public __construct(ZMQSocket $frontend, ZMQSocket $backend, ZMQSocket $listener = ?)
public getIdleTimeout(): ZMQDevice
public getTimerTimeout(): ZMQDevice
public run(): void
public setIdleCallback(callable $cb_func, int $timeout, mixed $user_data = ?): ZMQDevice
public setIdleTimeout(int $timeout): ZMQDevice
public setTimerCallback(callable $cb_func, int $timeout, mixed $user_data = ?): ZMQDevice
public setTimerTimeout(int $timeout): ZMQDevice
}

Índice

  • ZMQDevice::__construct — Constrói um novo dispositivo
  • ZMQDevice::getIdleTimeout — Obtém o tempo limite de inatividade
  • ZMQDevice::getTimerTimeout — Obtém o tempo limite do temporizador
  • ZMQDevice::run — Executa o novo dispositivo
  • ZMQDevice::setIdleCallback — Define a função de retorno de inatividade
  • ZMQDevice::setIdleTimeout — Define o tempo limite de inatividade
  • ZMQDevice::setTimerCallback — Define a função de retorno do temporizador
  • ZMQDevice::setTimerTimeout — Define o tempo limite do temporizador


Constrói um novo dispositivo

  • « ZMQDevice
  • ZMQDevice::getIdleTimeout »
  • PHP Manual
  • ZMQDevice
  • Constrói um novo dispositivo

ZMQDevice::__construct

(PECL zmq >= 0.5.0)

ZMQDevice::__construct — Constrói um novo dispositivo

Descrição

public ZMQDevice::__construct(ZMQSocket $frontend, ZMQSocket $backend, ZMQSocket $listener = ?)

"Dispositivos ØMQ podem itermediar endereços, serviços, filas, ou qualquer outra abstração que se deseje definir sobre a mensagem e as camadas de socket." -- zguide

Parâmetros

frontend

Parametro de entrada dos dispositivos. Geralmente de onde as mensagens estão vindo.

backend

Parâmetro de destino dos dispositivos. Geralmente para onde as mensagens estão indo.

listener

Um socket ouvinte (listener), que recebe uma cópia de todas as mensagens indo em ambas direções. O tipo desse socket deve ser SUB, PULL ou DEALER.

Valor Retornado

A chamada para este método prepara o dispositivo. Geralmente os dispositivos são processos se longa execução, assim, executar esse método a partir de um script interativo não é recomendado. Esse método lança uma exceção ZMQDeviceException caso o dispositivo não possa ser inicializado.


Obtém o tempo limite de inatividade

  • « ZMQDevice::__construct
  • ZMQDevice::getTimerTimeout »
  • PHP Manual
  • ZMQDevice
  • Obtém o tempo limite de inatividade

ZMQDevice::getIdleTimeout

(Não há informação de versão disponível, talvez apenas no Git)

ZMQDevice::getIdleTimeout — Obtém o tempo limite de inatividade

Descrição

public ZMQDevice::getIdleTimeout(): ZMQDevice

Obtém o valor do tempo limite de inatividade do retorno. Adicionado na versão 1.0.0 da extensão ZMQ.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Esse método retorna o valor do tempo limite de inatividade do retorno.


Obtém o tempo limite do temporizador

  • « ZMQDevice::getIdleTimeout
  • ZMQDevice::run »
  • PHP Manual
  • ZMQDevice
  • Obtém o tempo limite do temporizador

ZMQDevice::getTimerTimeout

(Não há informação de versão disponível, talvez apenas no Git)

ZMQDevice::getTimerTimeout — Obtém o tempo limite do temporizador

Descrição

public ZMQDevice::getTimerTimeout(): ZMQDevice

Obtém o valor do tempo limite do temporizador. Adicionado na versão 1.0.0 da extensão ZMQ.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Este método retorna o valor do tempo limite do temporizador.


Executa o novo dispositivo

  • « ZMQDevice::getTimerTimeout
  • ZMQDevice::setIdleCallback »
  • PHP Manual
  • ZMQDevice
  • Executa o novo dispositivo

ZMQDevice::run

(Não há informação de versão disponível, talvez apenas no Git)

ZMQDevice::run — Executa o novo dispositivo

Descrição

public ZMQDevice::run(): void

Executa o dispositivo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A chamada para este método ficará bloqueada até que o dispositivo seja executado. Não é recomendado que os dispositivos sejam usados a partir de scripts interativos. Caso haja falha, esse método lançará uma exceção ZMQDeviceException.


Define a função de retorno de inatividade

  • « ZMQDevice::run
  • ZMQDevice::setIdleTimeout »
  • PHP Manual
  • ZMQDevice
  • Define a função de retorno de inatividade

ZMQDevice::setIdleCallback

(Não há informação de versão disponível, talvez apenas no Git)

ZMQDevice::setIdleCallback — Define a função de retorno de inatividade

Descrição

public ZMQDevice::setIdleCallback(callable $cb_func, int $timeout, mixed $user_data = ?): ZMQDevice

Define a função de retorno de inatividade. Se o tempo limite de inatividade for definido, a função de retorno será chamada se a consulta interna ficar sem eventos durante o tempo limite. Se a função de retorno retornar falso ou um valor que seja avaliado para falso, o dispositivo é interrompido. A assinatura da função de retorno é cb_func(mixed $user_data).

Parâmetros

cb_func

A função de retorno que será invocada de o dispositivo ficar inativo. Retornando falso ou um valor que avalia para falso dessa função causará a interrupção do dispositivo.

timeout

Com que frequência invocar a função de retorno em milissegundos. A função de retorno de inatividade é invocada periodicamente quando não há atividade no dispositivo. O valor do tempo limite garante que haverá no mínimo essa quantidade de milissegundos entre as chamadas à função de retorno.

user_data

Dados adicionais passados para a função de retorno.

Valor Retornado

Em caso de sucesso, esse método retorna o objeto atual.


Define o tempo limite de inatividade

  • « ZMQDevice::setIdleCallback
  • ZMQDevice::setTimerCallback »
  • PHP Manual
  • ZMQDevice
  • Define o tempo limite de inatividade

ZMQDevice::setIdleTimeout

(Não há informação de versão disponível, talvez apenas no Git)

ZMQDevice::setIdleTimeout — Define o tempo limite de inatividade

Descrição

public ZMQDevice::setIdleTimeout(int $timeout): ZMQDevice

Define o tempo limite da função de retorno de inatividade. A função de retorno de inatividade é invocada periodicamente quando o dispositivo está ocioso.

Parâmetros

timeout

O valor do tempo limite da função de retorno de inatividade.

Valor Retornado

Caso haja sucesso, esse método retorna o objeto atual.


Define a função de retorno do temporizador

  • « ZMQDevice::setIdleTimeout
  • ZMQDevice::setTimerTimeout »
  • PHP Manual
  • ZMQDevice
  • Define a função de retorno do temporizador

ZMQDevice::setTimerCallback

(Não há informação de versão disponível, talvez apenas no Git)

ZMQDevice::setTimerCallback — Define a função de retorno do temporizador

Descrição

public ZMQDevice::setTimerCallback(callable $cb_func, int $timeout, mixed $user_data = ?): ZMQDevice

Define a função de retorno do temporizador. A função de retorno do temporizados será invocada após a passagem do tempo limite. A diferença entre as funções de retorno de inatividade e do temporizador é que a função de retorno por inatividade é invocada apenas quando o dispositivo está ocioso. A assinatura da função de retorno é cb_func(mized $user_data). Adicionada à extensão ZMQ na versão 1.1.0.

Parâmetros

cb_func

Função de retorno que será invocada quando o dispositido estiver ocioso. Retornando falso ou um valor que avalie para falso nessa função causará a interrupção do dispositivo.

timeout

Com que frequência invocar a função de retorno em milissegundos. A função de retorno de inatividade é invocada periodicamente quando não há atividade no dispositivo. O valor do tempo limite garante que haverá no mínimo essa quantidade de milissegundos entre as chamadas à função de retorno.

user_data

Dados adicionais pasados para a função de retorno.

Valor Retornado

Em caso de sucesso, esse método retorna o objeto atual.


Define o tempo limite do temporizador

  • « ZMQDevice::setTimerCallback
  • ZooKeeper »
  • PHP Manual
  • ZMQDevice
  • Define o tempo limite do temporizador

ZMQDevice::setTimerTimeout

(Não há informação de versão disponível, talvez apenas no Git)

ZMQDevice::setTimerTimeout — Define o tempo limite do temporizador

Descrição

public ZMQDevice::setTimerTimeout(int $timeout): ZMQDevice

Define o tempo limite da função de retorno do temporizador. A função de retorno do temporizador é invocada periodicamente caso o mesmo seja definido. Adicionada à extensão ZMQ na versão 1.1.0.

Parâmetros

timeout

O valor do tempo limite da função de retorno do temporizador.

Valor Retornado

Em caso de sucesso, esse método retorna o objeto atual.


ZooKeeper

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • ZooKeeper Funções
    • zookeeper_dispatch — Calls callbacks for pending operations
  • Zookeeper — The Zookeeper class
    • Zookeeper::addAuth — Specify application credentials
    • Zookeeper::close — Close the zookeeper handle and free up any resources
    • Zookeeper::connect — Create a handle to used communicate with zookeeper
    • Zookeeper::__construct — Create a handle to used communicate with zookeeper
    • Zookeeper::create — Create a node synchronously
    • Zookeeper::delete — Delete a node in zookeeper synchronously
    • Zookeeper::exists — Checks the existence of a node in zookeeper synchronously
    • Zookeeper::get — Gets the data associated with a node synchronously
    • Zookeeper::getAcl — Gets the acl associated with a node synchronously
    • Zookeeper::getChildren — Lists the children of a node synchronously
    • Zookeeper::getClientId — Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getConfig — Get instance of ZookeeperConfig
    • Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
    • Zookeeper::getState — Get the state of the zookeeper connection
    • Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered
    • Zookeeper::set — Sets the data associated with a node
    • Zookeeper::setAcl — Sets the acl associated with a node synchronously
    • Zookeeper::setDebugLevel — Sets the debugging level for the library
    • Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization
    • Zookeeper::setLogStream — Sets the stream to be used by the library for logging
    • Zookeeper::setWatcher — Set a watcher function
  • ZookeeperConfig — The ZookeeperConfig class
    • ZookeeperConfig::add — Add servers to the ensemble
    • ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
    • ZookeeperConfig::remove — Remove servers from the ensemble
    • ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperException — The ZookeeperException class
  • ZookeeperAuthenticationException — The ZookeeperAuthenticationException class
  • ZookeeperConnectionException — The ZookeeperConnectionException class
  • ZookeeperMarshallingException — The ZookeeperMarshallingException class
  • ZookeeperNoNodeException — The ZookeeperNoNodeException class
  • ZookeeperOperationTimeoutException — The ZookeeperOperationTimeoutException class
  • ZookeeperSessionException — The ZookeeperSessionException class


Introdução

This extension uses libzookeeper library to provide API for communicating with ZooKeeper service.

ZooKeeper is an Apache project that enables centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.


Dependências

This extension requires » ZooKeeper C Binding (version 3.4.1 or greater). For more information, see » ZooKeeper Programmer's Guide.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/zookeeper.

To enable zookeeper support, configure with --with-libzookeeper-dir=DIR. DIR is the install prefix of ZooKeeper C Binding, which must contain the include/zookeeper/zookeeper.h

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Zookeeper Opções de Configuração
Nome | Padrão | Modificável | Changelog
zookeeper.recv_timeout | 10000 | INI_ALL |
zookeeper.session_lock | 1 | INI_SYSTEM |
zookeeper.sess_lock_wait | 150000 | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

zookeeper.recv_timeout int

Default the timeout for any ZooKeeper session.

zookeeper.session_lock int

Enable PHP session locking.

zookeeper.sess_lock_wait int

PHP Session spin lock retry wait time in microseconds. Be carefull when setting this value. Valid values are integers, where 0 is interpreted as the default value. Negative values result in a reduces locking to a try lock.


  • « Tipos de Recurso
  • ZooKeeper Funções »
  • PHP Manual
  • ZooKeeper
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


  • « Constantes pré-definidas
  • zookeeper_dispatch »
  • PHP Manual
  • ZooKeeper
  • ZooKeeper Funções

ZooKeeper Funções

Índice

  • zookeeper_dispatch — Calls callbacks for pending operations


Calls callbacks for pending operations

  • « ZooKeeper Funções
  • Zookeeper »
  • PHP Manual
  • ZooKeeper Funções
  • Calls callbacks for pending operations

zookeeper_dispatch

(PECL zookeeper >= 0.4.0)

zookeeper_dispatch — Calls callbacks for pending operations

Descrição

zookeeper_dispatch(): void

The zookeeper_dispatch() function calls the callbacks passed by operations like Zookeeper::get() or Zookeeper::exists().

Cuidado

Since version 0.4.0, this function must be called manually to achieve asynchronous operations. If you want that to be done automatically, you also can declare ticks at the beginning of your program.

After PHP 7.1, you can ignore this function. This extension uses EG(vm_interrupt) to implement async dispatch.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

This method emits PHP warning when callback could not be invoked.

Exemplos

Exemplo #1 zookeeper_dispatch() example #1

Dispatch callbacks manually.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->get('/zookeeper', function() {
echo "Callback was called".PHP_EOL;
});
while(true) {
sleep(1);
zookeeper_dispatch();
}
?>

Exemplo #2 zookeeper_dispatch() example #2

Declare ticks.

<?php
declare(ticks=1);

$client = new Zookeeper();
$client->connect('localhost:2181');
$client->get('/zookeeper', function() {
echo "Callback was called".PHP_EOL;
});
while(true) {
sleep(1);
}
?>

Veja Também

  • Zookeeper::addAuth() - Specify application credentials
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::exists() - Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • Zookeeper::setWatcher() - Set a watcher function


The Zookeeper class

(PECL zookeeper >= 0.1.0)

Introdução

Represents ZooKeeper session.

Resumo da classe

class Zookeeper {
/* Métodos */
public __construct(string $host = '', callable $watcher_cb = null, int $recv_timeout = 10000)
public addAuth(string $scheme, string $cert, callable $completion_cb = null): bool
public close(): void
public connect(string $host, callable $watcher_cb = null, int $recv_timeout = 10000): void
public create(
string $path,
string $value,
array $acls,
int $flags = null
): string
public delete(string $path, int $version = -1): bool
public exists(string $path, callable $watcher_cb = null): array
public get(
string $path,
callable $watcher_cb = null,
array &$stat = null,
int $max_size = 0
): string
public getAcl(string $path): array
public getChildren(string $path, callable $watcher_cb = null): array
public getClientId(): int
public getConfig(): ZookeeperConfig
public getRecvTimeout(): int
public getState(): int
public isRecoverable(): bool
public set(
string $path,
string $value,
int $version = -1,
array &$stat = null
): bool
public setAcl(string $path, int $version, array $acl): bool
public static setDebugLevel(int $logLevel): bool
public static setDeterministicConnOrder(bool $yesOrNo): bool
public setLogStream(resource $stream): bool
public setWatcher(callable $watcher_cb): bool
/* Constantes */
const int PERM_READ = 1;
const int PERM_WRITE = 2;
const int PERM_CREATE = 4;
const int PERM_DELETE = 8;
const int PERM_ADMIN = 16;
const int PERM_ALL = 31;
const int EPHEMERAL = 1;
const int SEQUENCE = 2;
const int LOG_LEVEL_ERROR = 1;
const int LOG_LEVEL_WARN = 2;
const int LOG_LEVEL_INFO = 3;
const int LOG_LEVEL_DEBUG = 4;
const int EXPIRED_SESSION_STATE = -112;
const int AUTH_FAILED_STATE = -113;
const int CONNECTING_STATE = 1;
const int ASSOCIATING_STATE = 2;
const int CONNECTED_STATE = 3;
const int READONLY_STATE = 5;
const int NOTCONNECTED_STATE = 999;
const int CREATED_EVENT = 1;
const int DELETED_EVENT = 2;
const int CHANGED_EVENT = 3;
const int CHILD_EVENT = 4;
const int SESSION_EVENT = -1;
const int NOTWATCHING_EVENT = -2;
const int SYSTEMERROR = -1;
const int RUNTIMEINCONSISTENCY = -2;
const int DATAINCONSISTENCY = -3;
const int CONNECTIONLOSS = -4;
const int MARSHALLINGERROR = -5;
const int UNIMPLEMENTED = -6;
const int OPERATIONTIMEOUT = -7;
const int BADARGUMENTS = -8;
const int INVALIDSTATE = -9;
const int NEWCONFIGNOQUORUM = -13;
const int RECONFIGINPROGRESS = -14;
const int OK = 0;
const int APIERROR = -100;
const int NONODE = -101;
const int NOAUTH = -102;
const int BADVERSION = -103;
const int NOCHILDRENFOREPHEMERALS = -108;
const int NODEEXISTS = -110;
const int NOTEMPTY = -111;
const int SESSIONEXPIRED = -112;
const int INVALIDCALLBACK = -113;
const int INVALIDACL = -114;
const int AUTHFAILED = -115;
const int CLOSING = -116;
const int NOTHING = -117;
const int SESSIONMOVED = -118;
const int NOTREADONLY = -119;
const int EPHEMERALONLOCALSESSION = -120;
const int NOWATCHER = -121;
const int RECONFIGDISABLED = -122;
}

Constantes pré-definidas

ZooKeeper Permissions

Zookeeper::PERM_READ

Can read nodes value and list its children

Zookeeper::PERM_WRITE

Can set the nodes value

Zookeeper::PERM_CREATE

Can create children

Zookeeper::PERM_DELETE

Can delete children

Zookeeper::PERM_ADMIN

Can execute set_acl()

Zookeeper::PERM_ALL

All of the above flags ORd together

ZooKeeper Create Flags

Zookeeper::EPHEMERAL

If Zookeeper::EPHEMERAL flag is set, the node will automatically get removed if the client session goes away.

Zookeeper::SEQUENCE

If the Zookeeper::SEQUENCE flag is set, a unique monotonically increasing sequence number is appended to the path name. The sequence number is always fixed length of 10 digits, 0 padded.

ZooKeeper Log Levels

Zookeeper::LOG_LEVEL_ERROR

Outputs only error mesages

Zookeeper::LOG_LEVEL_WARN

Outputs errors/warnings

Zookeeper::LOG_LEVEL_INFO

Outputs big action messages besides errors/warnings

Zookeeper::LOG_LEVEL_DEBUG

Outputs all

ZooKeeper States

Zookeeper::EXPIRED_SESSION_STATE

Connected but session expired

Zookeeper::AUTH_FAILED_STATE

Connected but auth failed

Zookeeper::CONNECTING_STATE

Connecting

Zookeeper::ASSOCIATING_STATE

Associating

Zookeeper::CONNECTED_STATE

Connected

Zookeeper::READONLY_STATE

TODO: help us improve this extension.

Zookeeper::NOTCONNECTED_STATE

Connection failed

ZooKeeper Watch Types

Zookeeper::CREATED_EVENT

A node has been created

This is only generated by watches on non-existent nodes. These watches are set using Zookeeper::exists.

Zookeeper::DELETED_EVENT

A node has been deleted

This is only generated by watches on nodes. These watches are set using Zookeeper::exists and Zookeeper::get.

Zookeeper::CHANGED_EVENT

A node has changed

This is only generated by watches on nodes. These watches are set using Zookeeper::exists and Zookeeper::get.

Zookeeper::CHILD_EVENT

A change as occurred in the list of children

This is only generated by watches on the child list of a node. These watches are set using Zookeeper::getChildren.

Zookeeper::SESSION_EVENT

A session has been lost

This is generated when a client loses contact or reconnects with a server.

Zookeeper::NOTWATCHING_EVENT

A watch has been removed

This is generated when the server for some reason, probably a resource constraint, will no longer watch a node for a client.

ZooKeeper System and Server-side Errors

Zookeeper::SYSTEMERROR

This is never thrown by the server, it shouldn't be used other than to indicate a range. Specifically error codes greater than this value, but lesser than Zookeeper::APIERROR, are system errors.

Zookeeper::RUNTIMEINCONSISTENCY

A runtime inconsistency was found.

Zookeeper::DATAINCONSISTENCY

A data inconsistency was found.

Zookeeper::CONNECTIONLOSS

Connection to the server has been lost.

Zookeeper::MARSHALLINGERROR

Error while marshalling or unmarshalling data.

Zookeeper::UNIMPLEMENTED

Operation is unimplemented.

Zookeeper::OPERATIONTIMEOUT

Operation timeout.

Zookeeper::BADARGUMENTS

Invalid arguments.

Zookeeper::INVALIDSTATE

Invliad zhandle state.

Zookeeper::NEWCONFIGNOQUORUM

No quorum of new config is connected and up-to-date with the leader of last committed config - try invoking reconfiguration after new servers are connected and synced.

Available as of ZooKeeper 3.5.0

Zookeeper::RECONFIGINPROGRESS

Reconfiguration requested while another reconfiguration is currently in progress. This is currently not supported. Please retry.

Available as of ZooKeeper 3.5.0

ZooKeeper API Errors

Zookeeper::OK

Everything is OK.

Zookeeper::APIERROR

This is never thrown by the server, it shouldn't be used other than to indicate a range. Specifically error codes greater than this value are API errors (while values less than this indicate a Zookeeper::SYSTEMERROR).

Zookeeper::NONODE

Node does not exist.

Zookeeper::NOAUTH

Not authenticated.

Zookeeper::BADVERSION

Version conflict.

Zookeeper::NOCHILDRENFOREPHEMERALS

Ephemeral nodes may not have children.

Zookeeper::NODEEXISTS

The node already exists.

Zookeeper::NOTEMPTY

The node has children.

Zookeeper::SESSIONEXPIRED

The session has been expired by the server.

Zookeeper::INVALIDCALLBACK

Invalid callback specified.

Zookeeper::INVALIDACL

Invalid ACL specified.

Zookeeper::AUTHFAILED

Client authentication failed.

Zookeeper::CLOSING

ZooKeeper is closing.

Zookeeper::NOTHING

(not error) No server responses to process.

Zookeeper::SESSIONMOVED

Session moved to another server, so operation is ignored.

Zookeeper::NOTREADONLY

State-changing request is passed to read-only server.

Zookeeper::EPHEMERALONLOCALSESSION

Attempt to create ephemeral node on a local session.

Zookeeper::NOWATCHER

The watcher couldn't be found.

Zookeeper::RECONFIGDISABLED

Attempts to perform a reconfiguration operation when reconfiguration feature is disabled.

Índice

  • Zookeeper::addAuth — Specify application credentials
  • Zookeeper::close — Close the zookeeper handle and free up any resources
  • Zookeeper::connect — Create a handle to used communicate with zookeeper
  • Zookeeper::__construct — Create a handle to used communicate with zookeeper
  • Zookeeper::create — Create a node synchronously
  • Zookeeper::delete — Delete a node in zookeeper synchronously
  • Zookeeper::exists — Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get — Gets the data associated with a node synchronously
  • Zookeeper::getAcl — Gets the acl associated with a node synchronously
  • Zookeeper::getChildren — Lists the children of a node synchronously
  • Zookeeper::getClientId — Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • Zookeeper::getConfig — Get instance of ZookeeperConfig
  • Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
  • Zookeeper::getState — Get the state of the zookeeper connection
  • Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered
  • Zookeeper::set — Sets the data associated with a node
  • Zookeeper::setAcl — Sets the acl associated with a node synchronously
  • Zookeeper::setDebugLevel — Sets the debugging level for the library
  • Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization
  • Zookeeper::setLogStream — Sets the stream to be used by the library for logging
  • Zookeeper::setWatcher — Set a watcher function


Specify application credentials

  • « Zookeeper
  • Zookeeper::close »
  • PHP Manual
  • Zookeeper
  • Specify application credentials

Zookeeper::addAuth

(PECL zookeeper >= 0.1.0)

Zookeeper::addAuth — Specify application credentials

Descrição

public Zookeeper::addAuth(string $scheme, string $cert, callable $completion_cb = null): bool

The application calls this function to specify its credentials for purposes of authentication. The server will use the security provider specified by the scheme parameter to authenticate the client connection. If the authentication request has failed: - the server connection is dropped. - the watcher is called with the ZOO_AUTH_FAILED_STATE value as the state parameter.

Parâmetros

scheme

The id of authentication scheme. Natively supported: "digest" password-based authentication

cert

Application credentials. The actual value depends on the scheme.

completion_cb

The routine to invoke when the request completes. One of the following result codes may be passed into the completion callback: - ZOK operation completed successfully - ZAUTHFAILED authentication failed

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemplos

Exemplo #1 Zookeeper::addAuth() example

Add auth before requesting node value.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$zookeeper->addAuth('digest', 'user0:passwd0');
$r = $zookeeper->get($path);
if ($r)
echo $r;
else
echo 'ERR';
?>

O exemplo acima produzirá:

nodevalue

Veja Também

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::setAcl() - Sets the acl associated with a node synchronously
  • Zookeeper::getAcl() - Gets the acl associated with a node synchronously
  • ZooKeeper States
  • ZookeeperException


Close the zookeeper handle and free up any resources

  • « Zookeeper::addAuth
  • Zookeeper::connect »
  • PHP Manual
  • Zookeeper
  • Close the zookeeper handle and free up any resources

Zookeeper::close

(PECL zookeeper >= 0.5.0)

Zookeeper::close — Close the zookeeper handle and free up any resources

Descrição

public Zookeeper::close(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

This method emits ZookeeperException and it's derivatives when closing an uninitialized instance.

Veja Também

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Create a handle to used communicate with zookeeper

  • « Zookeeper::close
  • Zookeeper::__construct »
  • PHP Manual
  • Zookeeper
  • Create a handle to used communicate with zookeeper

Zookeeper::connect

(PECL zookeeper >= 0.2.0)

Zookeeper::connect — Create a handle to used communicate with zookeeper

Descrição

public Zookeeper::connect(string $host, callable $watcher_cb = null, int $recv_timeout = 10000): void

This method creates a new handle and a zookeeper session that corresponds to that handle. Session establishment is asynchronous, meaning that the session should not be considered established until (and unless) an event of state ZOO_CONNECTED_STATE is received.

Parâmetros

host

Comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

The global watcher callback function. When notifications are triggered this function will be invoked.

recv_timeout

The timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE).

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Veja Também

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Create a handle to used communicate with zookeeper

  • « Zookeeper::connect
  • Zookeeper::create »
  • PHP Manual
  • Zookeeper
  • Create a handle to used communicate with zookeeper

Zookeeper::__construct

(PECL zookeeper >= 0.1.0)

Zookeeper::__construct — Create a handle to used communicate with zookeeper

Descrição

public Zookeeper::__construct(string $host = '', callable $watcher_cb = null, int $recv_timeout = 10000)

This method creates a new handle and a zookeeper session that corresponds to that handle. Session establishment is asynchronous, meaning that the session should not be considered established until (and unless) an event of state ZOO_CONNECTED_STATE is received.

Parâmetros

host

comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

the global watcher callback function. When notifications are triggered this function will be invoked.

recv_timeout

the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE).

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Veja Também

  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Create a node synchronously

  • « Zookeeper::__construct
  • Zookeeper::delete »
  • PHP Manual
  • Zookeeper
  • Create a node synchronously

Zookeeper::create

(PECL zookeeper >= 0.1.0)

Zookeeper::create — Create a node synchronously

Descrição

public Zookeeper::create(
string $path,
string $value,
array $acls,
int $flags = null
): string

This method will create a node in ZooKeeper. A node can only be created if it does not already exists. The Create Flags affect the creation of nodes. If ZOO_EPHEMERAL flag is set, the node will automatically get removed if the client session goes away. If the ZOO_SEQUENCE flag is set, a unique monotonically increasing sequence number is appended to the path name.

Parâmetros

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

value

The data to be stored in the node.

acls

The initial ACL of the node. The ACL must not be null or empty.

flags

this parameter can be set to 0 for normal create or an OR of the Create Flags

Valor Retornado

Returns the path of the new node (this might be different than the supplied path because of the ZOO_SEQUENCE flag) on success, and false on failure.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or fail to create node.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemplos

Exemplo #1 Zookeeper::create() example

Create a new node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
array(
'perms' => Zookeeper::PERM_ALL,
'scheme' => 'world',
'id' => 'anyone',
)
);
$path = '/path/to/newnode';
$realPath = $zookeeper->create($path, null, $aclArray);
if ($realPath)
echo $realPath;
else
echo 'ERR';
?>

O exemplo acima produzirá:

/path/to/newnode

Veja Também

  • Zookeeper::delete() - Delete a node in zookeeper synchronously
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • ZooKeeper Permissions
  • ZookeeperException


Delete a node in zookeeper synchronously

  • « Zookeeper::create
  • Zookeeper::exists »
  • PHP Manual
  • Zookeeper
  • Delete a node in zookeeper synchronously

Zookeeper::delete

(PECL zookeeper >= 0.2.0)

Zookeeper::delete — Delete a node in zookeeper synchronously

Descrição

public Zookeeper::delete(string $path, int $version = -1): bool

Parâmetros

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or fail to delete node.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemplos

Exemplo #1 Zookeeper::delete() example

Delete a existing node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->delete($path);
if ($r)
echo 'SUCCESS';
else
echo 'ERR';
?>

O exemplo acima produzirá:

SUCCESS

Veja Também

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • ZookeeperException


Checks the existence of a node in zookeeper synchronously

  • « Zookeeper::delete
  • Zookeeper::get »
  • PHP Manual
  • Zookeeper
  • Checks the existence of a node in zookeeper synchronously

Zookeeper::exists

(PECL zookeeper >= 0.1.0)

Zookeeper::exists — Checks the existence of a node in zookeeper synchronously

Descrição

public Zookeeper::exists(string $path, callable $watcher_cb = null): array

Parâmetros

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

if nonzero, a watch will be set at the server to notify the client if the node changes. The watch will be set even if the node does not

Valor Retornado

Returns the value of stat for the path if the given node exists, otherwise false.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or fail to check the existence of a node.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemplos

Exemplo #1 Zookeeper::exists() example

Check the existence of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->exists($path);
if ($r)
echo 'EXISTS';
else
echo 'N/A or ERR';
?>

O exemplo acima produzirá:

EXISTS

Veja Também

  • Zookeeper::get() - Gets the data associated with a node synchronously
  • ZookeeperException


Gets the data associated with a node synchronously

  • « Zookeeper::exists
  • Zookeeper::getAcl »
  • PHP Manual
  • Zookeeper
  • Gets the data associated with a node synchronously

Zookeeper::get

(PECL zookeeper >= 0.1.0)

Zookeeper::get — Gets the data associated with a node synchronously

Descrição

public Zookeeper::get(
string $path,
callable $watcher_cb = null,
array &$stat = null,
int $max_size = 0
): string

Parâmetros

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

stat

If not NULL, will hold the value of stat for the path on return.

max_size

Max size of the data. If 0 is used, this method will return the whole data.

Valor Retornado

Returns the data on success, and false on failure.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or fail to get value from node.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemplos

Exemplo #1 Zookeeper::get() example

Get value from node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$r = $zookeeper->get($path);
if ($r)
echo $r;
else
echo 'ERR';
?>

O exemplo acima produzirá:

nodevalue

Exemplo #2 Zookeeper::get() stat example

Get node stat info.

<?php
$zookeeper = new Zookeeper('localhost:2181');
$path = '/path/to/node';
$stat = [];
$zookeeper->get($path, null, $stat);
var_dump($stat);
?>

O exemplo acima produzirá:

array(11) {
  ["czxid"]=>
  float(0)
  ["mzxid"]=>
  float(0)
  ["ctime"]=>
  float(0)
  ["mtime"]=>
  float(0)
  ["version"]=>
  int(0)
  ["cversion"]=>
  int(-2)
  ["aversion"]=>
  int(0)
  ["ephemeralOwner"]=>
  float(0)
  ["dataLength"]=>
  int(0)
  ["numChildren"]=>
  int(2)
  ["pzxid"]=>
  float(0)
}

Veja Também

  • Zookeeper::set() - Sets the data associated with a node
  • ZookeeperException


Gets the acl associated with a node synchronously

  • « Zookeeper::get
  • Zookeeper::getChildren »
  • PHP Manual
  • Zookeeper
  • Gets the acl associated with a node synchronously

Zookeeper::getAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::getAcl — Gets the acl associated with a node synchronously

Descrição

public Zookeeper::getAcl(string $path): array

Parâmetros

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

Valor Retornado

Return acl array on success and false on failure.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or fail to get ACL of a node.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemplos

Exemplo #1 Zookeeper::getAcl() example

Get ACL of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
array(
'perms' => Zookeeper::PERM_ALL,
'scheme' => 'world',
'id' => 'anyone',
)
);
$path = '/path/to/newnode';
$zookeeper->setAcl($path, $aclArray);

$r = $zookeeper->getAcl($path);
if ($r)
var_dump($r);
else
echo 'ERR';
?>

O exemplo acima produzirá:

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Veja Também

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::setAcl() - Sets the acl associated with a node synchronously
  • ZooKeeper Permissions
  • ZookeeperException


Lists the children of a node synchronously

  • « Zookeeper::getAcl
  • Zookeeper::getClientId »
  • PHP Manual
  • Zookeeper
  • Lists the children of a node synchronously

Zookeeper::getChildren

(PECL zookeeper >= 0.1.0)

Zookeeper::getChildren — Lists the children of a node synchronously

Descrição

public Zookeeper::getChildren(string $path, callable $watcher_cb = null): array

Parâmetros

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

Valor Retornado

Returns an array with children paths on success, and false on failure.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or fail to list children of a node.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemplos

Exemplo #1 Zookeeper::getChildren() example

Lists children of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/zookeeper';
$r = $zookeeper->getchildren($path);
if ($r)
var_dump($r);
else
echo 'ERR';
?>

O exemplo acima produzirá:

array(1) {
  [0]=>
  string(6) "config"
}

Veja Também

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::delete() - Delete a node in zookeeper synchronously
  • ZookeeperException


Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

  • « Zookeeper::getChildren
  • Zookeeper::getConfig »
  • PHP Manual
  • Zookeeper
  • Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

Zookeeper::getClientId

(PECL zookeeper >= 0.1.0)

Zookeeper::getClientId — Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

Descrição

public Zookeeper::getClientId(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the client session id on success, and false on failure.

Erros/Exceções

This method emits PHP error/warning when it could not get client session id.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Veja Também

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::getState() - Get the state of the zookeeper connection
  • ZooKeeper States
  • ZookeeperException


Get instance of ZookeeperConfig

  • « Zookeeper::getClientId
  • Zookeeper::getRecvTimeout »
  • PHP Manual
  • Zookeeper
  • Get instance of ZookeeperConfig

Zookeeper::getConfig

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

Zookeeper::getConfig — Get instance of ZookeeperConfig

Descrição

public Zookeeper::getConfig(): ZookeeperConfig

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns instance of ZookeeperConfig.

Veja Também

  • ZookeeperConfig


Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect

  • « Zookeeper::getConfig
  • Zookeeper::getState »
  • PHP Manual
  • Zookeeper
  • Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect

Zookeeper::getRecvTimeout

(PECL zookeeper >= 0.1.0)

Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect

Descrição

public Zookeeper::getRecvTimeout(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the timeout for this session on success, and false on failure.

Erros/Exceções

This method emits PHP error/warning when operation fails.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Veja Também

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Get the state of the zookeeper connection

  • « Zookeeper::getRecvTimeout
  • Zookeeper::isRecoverable »
  • PHP Manual
  • Zookeeper
  • Get the state of the zookeeper connection

Zookeeper::getState

(PECL zookeeper >= 0.1.0)

Zookeeper::getState — Get the state of the zookeeper connection

Descrição

public Zookeeper::getState(): int

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the state of zookeeper connection on success, and false on failure.

Erros/Exceções

This method emits PHP error/warning when it fails to get state of zookeeper connection.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Veja Também

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::getClientId() - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • ZooKeeper States
  • ZookeeperException


Checks if the current zookeeper connection state can be recovered

  • « Zookeeper::getState
  • Zookeeper::set »
  • PHP Manual
  • Zookeeper
  • Checks if the current zookeeper connection state can be recovered

Zookeeper::isRecoverable

(PECL zookeeper >= 0.1.0)

Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered

Descrição

public Zookeeper::isRecoverable(): bool

The application must close the handle and try to reconnect.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true/false on success, and false on failure.

Erros/Exceções

This method emits PHP error/warning when operation fails.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Veja Também

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::getClientId() - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • ZooKeeper States
  • ZookeeperException


Sets the data associated with a node

  • « Zookeeper::isRecoverable
  • Zookeeper::setAcl »
  • PHP Manual
  • Zookeeper
  • Sets the data associated with a node

Zookeeper::set

(PECL zookeeper >= 0.1.0)

Zookeeper::set — Sets the data associated with a node

Descrição

public Zookeeper::set(
string $path,
string $value,
int $version = -1,
array &$stat = null
): bool

Parâmetros

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

value

The data to be stored in the node.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or fail to save value to node.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemplos

Exemplo #1 Zookeeper::set() example

Save value to node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$r = $zookeeper->set($path, $value);
if ($r)
echo 'SUCCESS';
else
echo 'ERR';
?>

O exemplo acima produzirá:

SUCCESS

Veja Também

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • ZookeeperException


Sets the acl associated with a node synchronously

  • « Zookeeper::set
  • Zookeeper::setDebugLevel »
  • PHP Manual
  • Zookeeper
  • Sets the acl associated with a node synchronously

Zookeeper::setAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::setAcl — Sets the acl associated with a node synchronously

Descrição

public Zookeeper::setAcl(string $path, int $version, array $acl): bool

Parâmetros

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

version

The expected version of the path.

acl

The acl to be set on the path.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or fail to set ACL for a node.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemplos

Exemplo #1 Zookeeper::setAcl() example

Set ACL for a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
array(
'perms' => Zookeeper::PERM_ALL,
'scheme' => 'world',
'id' => 'anyone',
)
);
$path = '/path/to/newnode';
$zookeeper->setAcl($path, $aclArray);

$r = $zookeeper->getAcl($path);
if ($r)
var_dump($r);
else
echo 'ERR';
?>

O exemplo acima produzirá:

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Veja Também

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::getAcl() - Gets the acl associated with a node synchronously
  • ZooKeeper Permissions
  • ZookeeperException


Sets the debugging level for the library

  • « Zookeeper::setAcl
  • Zookeeper::setDeterministicConnOrder »
  • PHP Manual
  • Zookeeper
  • Sets the debugging level for the library

Zookeeper::setDebugLevel

(PECL zookeeper >= 0.1.0)

Zookeeper::setDebugLevel — Sets the debugging level for the library

Descrição

public static Zookeeper::setDebugLevel(int $logLevel): bool

Parâmetros

logLevel

ZooKeeper log level constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or fail to set debug level.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemplos

Exemplo #1 Zookeeper::setDebugLevel() example

Set debugl level.

<?php
$r = Zookeeper::setDebugLevel(Zookeeper::LOG_LEVEL_WARN);
if ($r)
echo 'SUCCESS';
else
echo 'ERR';
?>
?>

O exemplo acima produzirá:

SUCCESS

Veja Também

  • ZooKeeper Log Levels
  • ZookeeperException


Enable/disable quorum endpoint order randomization

  • « Zookeeper::setDebugLevel
  • Zookeeper::setLogStream »
  • PHP Manual
  • Zookeeper
  • Enable/disable quorum endpoint order randomization

Zookeeper::setDeterministicConnOrder

(PECL zookeeper >= 0.1.0)

Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization

Descrição

public static Zookeeper::setDeterministicConnOrder(bool $yesOrNo): bool

If passed a true value, will make the client connect to quorum peers in the order as specified in the zookeeper_init() call. A false value causes zookeeper_init() to permute the peer endpoints which is good for more even client connection distribution among the quorum peers. ZooKeeper C Client uses false by default.

Parâmetros

yesOrNo

Disable/enable quorum endpoint order randomization.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Veja Também

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Sets the stream to be used by the library for logging

  • « Zookeeper::setDeterministicConnOrder
  • Zookeeper::setWatcher »
  • PHP Manual
  • Zookeeper
  • Sets the stream to be used by the library for logging

Zookeeper::setLogStream

(PECL zookeeper >= 0.1.0)

Zookeeper::setLogStream — Sets the stream to be used by the library for logging

Descrição

public Zookeeper::setLogStream(resource $stream): bool

The zookeeper library uses stderr as its default log stream. Application must make sure the stream is writable. Passing in NULL resets the stream to its default value (stderr).

Parâmetros

stream

The stream to be used by the library for logging.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Veja Também

  • Zookeeper::setDebugLevel() - Sets the debugging level for the library
  • ZookeeperException


Set a watcher function

  • « Zookeeper::setLogStream
  • ZookeeperConfig »
  • PHP Manual
  • Zookeeper
  • Set a watcher function

Zookeeper::setWatcher

(PECL zookeeper >= 0.1.0)

Zookeeper::setWatcher — Set a watcher function

Descrição

public Zookeeper::setWatcher(callable $watcher_cb): bool

Parâmetros

watcher_cb

A watch will be set at the server to notify the client if the node changes.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

This method emits PHP error/warning when parameters count or types are wrong or fail to set watcher.

Cuidado

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Veja Também

  • Zookeeper::exists() - Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • ZookeeperException


The ZookeeperConfig class

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

Introdução

The ZooKeeper Config handling class.

Resumo da classe

class ZookeeperConfig {
/* Métodos */
public add(string $members, int $version = -1, array &$stat = null): void
public get(callable $watcher_cb = null, array &$stat = null): string
public remove(string $id_list, int $version = -1, array &$stat = null): void
public set(string $members, int $version = -1, array &$stat = null): void
}

Índice

  • ZookeeperConfig::add — Add servers to the ensemble
  • ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::remove — Remove servers from the ensemble
  • ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers


Add servers to the ensemble

  • « ZookeeperConfig
  • ZookeeperConfig::get »
  • PHP Manual
  • ZookeeperConfig
  • Add servers to the ensemble

ZookeeperConfig::add

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::add — Add servers to the ensemble

Descrição

public ZookeeperConfig::add(string $members, int $version = -1, array &$stat = null): void

Parâmetros

members

Comma separated list of servers to be added to the ensemble. Each has a configuration line for a server to be added (as would appear in a configuration file), only for maj. quorums.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Exemplos

Exemplo #1 ZookeeperConfig::add() example

Add members.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181");
$zkConfig->add("server.2=localhost:2889:3889:participant;0.0.0.0:2182");
$r = $zkConfig->get();
if ($r)
echo $r;
else
echo 'ERR';
?>

O exemplo acima produzirá:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
server.2=localhost:2889:3889:participant;0.0.0.0:2182
version=0xca01e881a2

Veja Também

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

  • « ZookeeperConfig::add
  • ZookeeperConfig::remove »
  • PHP Manual
  • ZookeeperConfig
  • Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

ZookeeperConfig::get

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

Descrição

public ZookeeperConfig::get(callable $watcher_cb = null, array &$stat = null): string

Parâmetros

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

stat

If not NULL, will hold the value of stat for the path on return.

Valor Retornado

Returns the configuration string on success, and false on failure.

Erros/Exceções

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to get configuration.

Exemplos

Exemplo #1 ZookeeperConfig::get() example

Get configuration.

<?php
$zk = new Zookeeper();
$zk->connect('localhost:2181');
$zk->addAuth('digest', 'timandes:timandes');
$zkConfig = $zk->getConfig();
$r = $zkConfig->get();
if ($r)
echo $r;
else
echo 'ERR';
?>

O exemplo acima produzirá:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
version=0xca01e881a2

Veja Também

  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


Remove servers from the ensemble

  • « ZookeeperConfig::get
  • ZookeeperConfig::set »
  • PHP Manual
  • ZookeeperConfig
  • Remove servers from the ensemble

ZookeeperConfig::remove

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::remove — Remove servers from the ensemble

Descrição

public ZookeeperConfig::remove(string $id_list, int $version = -1, array &$stat = null): void

Parâmetros

id_list

Comma separated list of server IDs to be removed from the ensemble. Each has an id of a server to be removed, only for maj. quorums.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Exemplos

Exemplo #1 ZookeeperConfig::remove() example

Remove members.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181,server.2=localhost:2889:3889:participant;0.0.0.0:2182");
$zkConfig->remove("2");
echo $zkConfig->get();
if ($r)
echo $r;
else
echo 'ERR';
?>

O exemplo acima produzirá:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
version=0xca01e881a2

Veja Também

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperException


Change ZK cluster ensemble membership and roles of ensemble peers

  • « ZookeeperConfig::remove
  • ZookeeperException »
  • PHP Manual
  • ZookeeperConfig
  • Change ZK cluster ensemble membership and roles of ensemble peers

ZookeeperConfig::set

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers

Descrição

public ZookeeperConfig::set(string $members, int $version = -1, array &$stat = null): void

Parâmetros

members

Comma separated list of new membership (e.g., contents of a membership configuration file) - for use only with a non-incremental reconfiguration.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Exemplos

Exemplo #1 ZookeeperConfig::set() example

Reconfig.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181");
?>

Veja Também

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


The ZookeeperException class

(PECL zookeeper >= 0.3.0)

Introdução

The ZooKeeper exception handling class.

Resumo da classe

class ZookeeperException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperAuthenticationException class

(PECL zookeeper >= 0.3.0)

Introdução

The ZooKeeper authentication exception handling class.

Resumo da classe

class ZookeeperAuthenticationException extends ZookeeperException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperConnectionException class

(PECL zookeeper >= 0.3.0)

Introdução

The ZooKeeper connection exception handling class.

Resumo da classe

class ZookeeperConnectionException extends ZookeeperException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperMarshallingException class

(PECL zookeeper >= 0.3.0)

Introdução

The ZooKeeper exception (while marshalling or unmarshalling data) handling class.

Resumo da classe

class ZookeeperMarshallingException extends ZookeeperException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperNoNodeException class

(PECL zookeeper >= 0.3.0)

Introdução

The ZooKeeper exception (when node does not exist) handling class.

Resumo da classe

class ZookeeperNoNodeException extends ZookeeperException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperOperationTimeoutException class

(PECL zookeeper >= 0.3.0)

Introdução

The ZooKeeper operation timeout exception handling class.

Resumo da classe

class ZookeeperOperationTimeoutException extends ZookeeperException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperSessionException class

(PECL zookeeper >= 0.3.0)

Introdução

The ZooKeeper session exception handling class.

Resumo da classe

class ZookeeperSessionException extends ZookeeperException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Extensões de Motor de Busca

  • Solr — Apache Solr
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Solr Funções
    • Exemplos
    • SolrUtils — The SolrUtils class
    • SolrInputDocument — The SolrInputDocument class
    • SolrDocument — The SolrDocument class
    • SolrDocumentField — The SolrDocumentField class
    • SolrObject — The SolrObject class
    • SolrClient — The SolrClient class
    • SolrResponse — The SolrResponse class
    • SolrQueryResponse — The SolrQueryResponse class
    • SolrUpdateResponse — The SolrUpdateResponse class
    • SolrPingResponse — The SolrPingResponse class
    • SolrGenericResponse — The SolrGenericResponse class
    • SolrParams — The SolrParams class
    • SolrModifiableParams — The SolrModifiableParams class
    • SolrQuery — The SolrQuery class
    • SolrDisMaxQuery — The SolrDisMaxQuery class
    • SolrCollapseFunction — The SolrCollapseFunction class
    • SolrException — The SolrException class
    • SolrClientException — The SolrClientException class
    • SolrServerException — The SolrServerException class
    • SolrIllegalArgumentException — The SolrIllegalArgumentException class
    • SolrIllegalOperationException — The SolrIllegalOperationException class
    • SolrMissingMandatoryParameterException — The SolrMissingMandatoryParameterException class


Apache Solr

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Solr Funções
    • solr_get_version — Retorna a versão atual da extensão Apache Solr
  • Exemplos
  • SolrUtils — The SolrUtils class
    • SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject
    • SolrUtils::escapeQueryChars — Escapes a lucene query string
    • SolrUtils::getSolrVersion — Returns the current version of the Solr extension
    • SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string
  • SolrInputDocument — The SolrInputDocument class
    • SolrInputDocument::addChildDocument — Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments — Adds an array of child documents
    • SolrInputDocument::addField — Adds a field to the document
    • SolrInputDocument::clear — Resets the input document
    • SolrInputDocument::__clone — Creates a copy of a SolrDocument
    • SolrInputDocument::__construct — Constructor
    • SolrInputDocument::deleteField — Removes a field from the document
    • SolrInputDocument::__destruct — Destructor
    • SolrInputDocument::fieldExists — Checks if a field exists
    • SolrInputDocument::getBoost — Retrieves the current boost value for the document
    • SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount — Returns the number of child documents
    • SolrInputDocument::getField — Retrieves a field by name
    • SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field
    • SolrInputDocument::getFieldCount — Returns the number of fields in the document
    • SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document
    • SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents
    • SolrInputDocument::merge — Merges one input document into another
    • SolrInputDocument::reset — Sinônimo de SolrInputDocument::clear
    • SolrInputDocument::setBoost — Sets the boost value for this document
    • SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field
    • SolrInputDocument::sort — Sorts the fields within the document
    • SolrInputDocument::toArray — Returns an array representation of the input document
  • SolrDocument — The SolrDocument class
    • SolrDocument::addField — Adds a field to the document
    • SolrDocument::clear — Drops all the fields in the document
    • SolrDocument::__clone — Creates a copy of a SolrDocument object
    • SolrDocument::__construct — Constructor
    • SolrDocument::current — Retrieves the current field
    • SolrDocument::deleteField — Removes a field from the document
    • SolrDocument::__destruct — Destructor
    • SolrDocument::fieldExists — Checks if a field exists in the document
    • SolrDocument::__get — Access the field as a property
    • SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount — Returns the number of child documents
    • SolrDocument::getField — Retrieves a field by name
    • SolrDocument::getFieldCount — Returns the number of fields in this document
    • SolrDocument::getFieldNames — Returns an array of fields names in the document
    • SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object
    • SolrDocument::hasChildDocuments — Checks whether the document has any child documents
    • SolrDocument::__isset — Checks if a field exists
    • SolrDocument::key — Retrieves the current key
    • SolrDocument::merge — Merges source to the current SolrDocument
    • SolrDocument::next — Moves the internal pointer to the next field
    • SolrDocument::offsetExists — Checks if a particular field exists
    • SolrDocument::offsetGet — Retrieves a field
    • SolrDocument::offsetSet — Adds a field to the document
    • SolrDocument::offsetUnset — Removes a field
    • SolrDocument::reset — Sinônimo de SolrDocument::clear
    • SolrDocument::rewind — Resets the internal pointer to the beginning
    • SolrDocument::serialize — Used for custom serialization
    • SolrDocument::__set — Adds another field to the document
    • SolrDocument::sort — Sorts the fields in the document
    • SolrDocument::toArray — Returns an array representation of the document
    • SolrDocument::unserialize — Custom serialization of SolrDocument objects
    • SolrDocument::__unset — Removes a field from the document
    • SolrDocument::valid — Checks if the current position internally is still valid
  • SolrDocumentField — The SolrDocumentField class
    • SolrDocumentField::__construct — Constructor
    • SolrDocumentField::__destruct — Destructor
  • SolrObject — The SolrObject class
    • SolrObject::__construct — Creates Solr object
    • SolrObject::__destruct — Destructor
    • SolrObject::getPropertyNames — Returns an array of all the names of the properties
    • SolrObject::offsetExists — Checks if the property exists
    • SolrObject::offsetGet — Used to retrieve a property
    • SolrObject::offsetSet — Sets the value for a property
    • SolrObject::offsetUnset — Unsets the value for the property
  • SolrClient — The SolrClient class
    • SolrClient::addDocument — Adds a document to the index
    • SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index
    • SolrClient::commit — Finalizes all add/deletes made to the index
    • SolrClient::__construct — Constructor for the SolrClient object
    • SolrClient::deleteById — Delete by Id
    • SolrClient::deleteByIds — Deletes by Ids
    • SolrClient::deleteByQueries — Removes all documents matching any of the queries
    • SolrClient::deleteByQuery — Deletes all documents matching the given query
    • SolrClient::__destruct — Destructor for SolrClient
    • SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getDebug — Returns the debug data for the last connection attempt
    • SolrClient::getOptions — Returns the client options set internally
    • SolrClient::optimize — Defragments the index
    • SolrClient::ping — Checks if Solr server is still up
    • SolrClient::query — Sends a query to the server
    • SolrClient::request — Sends a raw update request
    • SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit
    • SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr
    • SolrClient::setServlet — Changes the specified servlet type to a new value
    • SolrClient::system — Retrieve Solr Server information
    • SolrClient::threads — Checks the threads status
  • SolrResponse — The SolrResponse class
    • SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data
    • SolrResponse::getHttpStatus — Returns the HTTP status of the response
    • SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status
    • SolrResponse::getRawRequest — Returns the raw request sent to the Solr server
    • SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server
    • SolrResponse::getRawResponse — Returns the raw response from the server
    • SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server
    • SolrResponse::getRequestUrl — Returns the full URL the request was sent to
    • SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server
    • SolrResponse::setParseMode — Sets the parse mode
    • SolrResponse::success — Was the request a success
  • SolrQueryResponse — The SolrQueryResponse class
    • SolrQueryResponse::__construct — Constructor
    • SolrQueryResponse::__destruct — Destructor
  • SolrUpdateResponse — The SolrUpdateResponse class
    • SolrUpdateResponse::__construct — Constructor
    • SolrUpdateResponse::__destruct — Destructor
  • SolrPingResponse — The SolrPingResponse class
    • SolrPingResponse::__construct — Constructor
    • SolrPingResponse::__destruct — Destructor
    • SolrPingResponse::getResponse — Returns the response from the server
  • SolrGenericResponse — The SolrGenericResponse class
    • SolrGenericResponse::__construct — Constructor
    • SolrGenericResponse::__destruct — Destructor
  • SolrParams — The SolrParams class
    • SolrParams::add — Sinônimo de SolrParams::addParam
    • SolrParams::addParam — Adds a parameter to the object
    • SolrParams::get — Sinônimo de SolrParams::getParam
    • SolrParams::getParam — Returns a parameter value
    • SolrParams::getParams — Returns an array of non URL-encoded parameters
    • SolrParams::getPreparedParams — Returns an array of URL-encoded parameters
    • SolrParams::serialize — Used for custom serialization
    • SolrParams::set — Sinônimo de SolrParams::setParam
    • SolrParams::setParam — Sets the parameter to the specified value
    • SolrParams::toString — Returns all the name-value pair parameters in the object
    • SolrParams::unserialize — Used for custom serialization
  • SolrModifiableParams — The SolrModifiableParams class
    • SolrModifiableParams::__construct — Constructor
    • SolrModifiableParams::__destruct — Destructor
  • SolrQuery — The SolrQuery class
    • SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group
    • SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter)
    • SolrQuery::addFacetDateField — Maps to facet.date
    • SolrQuery::addFacetDateOther — Adds another facet.date.other parameter
    • SolrQuery::addFacetField — Adds another field to the facet
    • SolrQuery::addFacetQuery — Adds a facet query
    • SolrQuery::addField — Specifies which fields to return in the result
    • SolrQuery::addFilterQuery — Specifies a filter query
    • SolrQuery::addGroupField — Add a field to be used to group results
    • SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter)
    • SolrQuery::addGroupQuery — Allows grouping of documents that match the given query
    • SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter)
    • SolrQuery::addHighlightField — Maps to hl.fl
    • SolrQuery::addMltField — Sets a field to use for similarity
    • SolrQuery::addMltQueryField — Maps to mlt.qf
    • SolrQuery::addSortField — Used to control how the results should be sorted
    • SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet
    • SolrQuery::addStatsField — Maps to stats.field parameter
    • SolrQuery::collapse — Collapses the result set to a single document per group
    • SolrQuery::__construct — Constructor
    • SolrQuery::__destruct — Destructor
    • SolrQuery::getExpand — Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries — Returns the expand filter queries
    • SolrQuery::getExpandQuery — Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields — Returns an array of fields
    • SolrQuery::getFacet — Returns the value of the facet parameter
    • SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter
    • SolrQuery::getFacetDateFields — Returns all the facet.date fields
    • SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter
    • SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter
    • SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter
    • SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field
    • SolrQuery::getFacetFields — Returns all the facet fields
    • SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields
    • SolrQuery::getFacetMethod — Returns the value of the facet.method parameter
    • SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response
    • SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter
    • SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination
    • SolrQuery::getFacetPrefix — Returns the facet prefix
    • SolrQuery::getFacetQueries — Returns all the facet queries
    • SolrQuery::getFacetSort — Returns the facet sort type
    • SolrQuery::getFields — Returns the list of fields that will be returned in the response
    • SolrQuery::getFilterQueries — Returns an array of filter queries
    • SolrQuery::getGroup — Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent — Returns group cache percent value
    • SolrQuery::getGroupFacet — Returns the group.facet parameter value
    • SolrQuery::getGroupFields — Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat — Returns the group.format value
    • SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit — Returns the group.limit value
    • SolrQuery::getGroupMain — Returns the group.main value
    • SolrQuery::getGroupNGroups — Returns the group.ngroups value
    • SolrQuery::getGroupOffset — Returns the group.offset value
    • SolrQuery::getGroupQueries — Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields — Returns the group.sort value
    • SolrQuery::getGroupTruncate — Returns the group.truncate value
    • SolrQuery::getHighlight — Returns the state of the hl parameter
    • SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default
    • SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for
    • SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output
    • SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text
    • SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting
    • SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
    • SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return
    • SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets
    • SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter
    • SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting
    • SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size
    • SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field
    • SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term
    • SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term
    • SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field
    • SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter
    • SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled
    • SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance
    • SolrQuery::getMltCount — Returns the number of similar documents to return for each result
    • SolrQuery::getMltFields — Returns all the fields to use for similarity
    • SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query
    • SolrQuery::getMltMaxNumTokens — Retorna o número máximo de tokens para analisar em cada campo do documento que não está armazenado com suporte a TermVector
    • SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored
    • SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
    • SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document
    • SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored
    • SolrQuery::getMltQueryFields — Returns the query fields and their boosts
    • SolrQuery::getQuery — Returns the main query
    • SolrQuery::getRows — Returns the maximum number of documents
    • SolrQuery::getSortFields — Returns all the sort fields
    • SolrQuery::getStart — Returns the offset in the complete result set
    • SolrQuery::getStats — Returns whether or not stats is enabled
    • SolrQuery::getStatsFacets — Returns all the stats facets that were set
    • SolrQuery::getStatsFields — Returns all the statistics fields
    • SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled
    • SolrQuery::getTermsField — Returns the field from which the terms are retrieved
    • SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set
    • SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set
    • SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return
    • SolrQuery::getTermsLowerBound — Returns the term to start at
    • SolrQuery::getTermsMaxCount — Returns the maximum document frequency
    • SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included
    • SolrQuery::getTermsPrefix — Returns the term prefix
    • SolrQuery::getTermsReturnRaw — Whether or not to return raw characters
    • SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted
    • SolrQuery::getTermsUpperBound — Returns the term to stop at
    • SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish
    • SolrQuery::removeExpandFilterQuery — Removes an expand filter query
    • SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter
    • SolrQuery::removeFacetDateField — Removes one of the facet date fields
    • SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters
    • SolrQuery::removeFacetField — Removes one of the facet.date parameters
    • SolrQuery::removeFacetQuery — Removes one of the facet.query parameters
    • SolrQuery::removeField — Removes a field from the list of fields
    • SolrQuery::removeFilterQuery — Removes a filter query
    • SolrQuery::removeHighlightField — Removes one of the fields used for highlighting
    • SolrQuery::removeMltField — Removes one of the moreLikeThis fields
    • SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields
    • SolrQuery::removeSortField — Removes one of the sort fields
    • SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters
    • SolrQuery::removeStatsField — Removes one of the stats.field parameters
    • SolrQuery::setEchoHandler — Toggles the echoHandler parameter
    • SolrQuery::setEchoParams — Determines what kind of parameters to include in the response
    • SolrQuery::setExpand — Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery — Sets the expand.q parameter
    • SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther — Sets the explainOther common query parameter
    • SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting
    • SolrQuery::setFacetDateEnd — Maps to facet.date.end
    • SolrQuery::setFacetDateGap — Maps to facet.date.gap
    • SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend
    • SolrQuery::setFacetDateStart — Maps to facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count
    • SolrQuery::setFacetLimit — Maps to facet.limit
    • SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field
    • SolrQuery::setFacetMinCount — Maps to facet.mincount
    • SolrQuery::setFacetMissing — Maps to facet.missing
    • SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination
    • SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet
    • SolrQuery::setFacetSort — Determines the ordering of the facet field constraints
    • SolrQuery::setGroup — Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent — Enables caching for result grouping
    • SolrQuery::setGroupFacet — Sets group.facet parameter
    • SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter)
    • SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1
    • SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
    • SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results
    • SolrQuery::setGroupOffset — Sets the group.offset parameter
    • SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query
    • SolrQuery::setHighlight — Enables or disables highlighting
    • SolrQuery::setHighlightAlternateField — Specifies the backup field to use
    • SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output
    • SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text
    • SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting
    • SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms
    • SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return
    • SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets
    • SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze
    • SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting
    • SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size
    • SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting
    • SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term
    • SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term
    • SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field
    • SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase
    • SolrQuery::setMlt — Enables or disables moreLikeThis
    • SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance
    • SolrQuery::setMltCount — Set the number of similar documents to return for each result
    • SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included
    • SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse
    • SolrQuery::setMltMaxWordLength — Sets the maximum word length
    • SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency
    • SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs
    • SolrQuery::setMltMinWordLength — Sets the minimum word length
    • SolrQuery::setOmitHeader — Exclude the header from the returned results
    • SolrQuery::setQuery — Sets the search query
    • SolrQuery::setRows — Specifies the maximum number of rows to return in the result
    • SolrQuery::setShowDebugInfo — Flag to show debug information
    • SolrQuery::setStart — Specifies the number of rows to skip
    • SolrQuery::setStats — Enables or disables the Stats component
    • SolrQuery::setTerms — Enables or disables the TermsComponent
    • SolrQuery::setTermsField — Sets the name of the field to get the Terms from
    • SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set
    • SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set
    • SolrQuery::setTermsLimit — Sets the maximum number of terms to return
    • SolrQuery::setTermsLowerBound — Specifies the Term to start from
    • SolrQuery::setTermsMaxCount — Sets the maximum document frequency
    • SolrQuery::setTermsMinCount — Sets the minimum document frequency
    • SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix
    • SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term
    • SolrQuery::setTermsSort — Specifies how to sort the returned terms
    • SolrQuery::setTermsUpperBound — Sets the term to stop at
    • SolrQuery::setTimeAllowed — The time allowed for search to finish
  • SolrDisMaxQuery — The SolrDisMaxQuery class
    • SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::__construct — Class Constructor
    • SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter)
    • SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop — Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax
  • SolrCollapseFunction — The SolrCollapseFunction class
    • SolrCollapseFunction::__construct — Constructor
    • SolrCollapseFunction::getField — Returns the field that is being collapsed on
    • SolrCollapseFunction::getHint — Returns collapse hint
    • SolrCollapseFunction::getMax — Returns max parameter
    • SolrCollapseFunction::getMin — Returns min parameter
    • SolrCollapseFunction::getNullPolicy — Returns null policy
    • SolrCollapseFunction::getSize — Returns size parameter
    • SolrCollapseFunction::setField — Sets the field to collapse on
    • SolrCollapseFunction::setHint — Sets collapse hint
    • SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query
    • SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy — Sets the NULL Policy
    • SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function
  • SolrException — The SolrException class
    • SolrException::getInternalInfo — Returns internal information where the Exception was thrown
  • SolrClientException — The SolrClientException class
    • SolrClientException::getInternalInfo — Returns internal information where the Exception was thrown
  • SolrServerException — The SolrServerException class
    • SolrServerException::getInternalInfo — Returns internal information where the Exception was thrown
  • SolrIllegalArgumentException — The SolrIllegalArgumentException class
    • SolrIllegalArgumentException::getInternalInfo — Returns internal information where the Exception was thrown
  • SolrIllegalOperationException — The SolrIllegalOperationException class
    • SolrIllegalOperationException::getInternalInfo — Returns internal information where the Exception was thrown
  • SolrMissingMandatoryParameterException — The SolrMissingMandatoryParameterException class


Introdução

A extensão Solr permite comunicar-se de forma eficaz com um servidor Apache Solr a partir do PHP.

A extensão Solr é uma biblioteca extremamente rápida, leve, rica em recursos, que permite aos desenvolvedores PHP de comunicarem com instâncias Solr.

Versões 1.x dessa extensão PECL suportam Apache Solr Server 1.3-3.x

Versões 2.x dessa extensão PECL suportam Apache Solr Server 4.0+

Existem funcionalidades nativas para acrescentar documentos e fazer atualizações no servidor Solr.

Também contém funcionalidades que permitem consultas avançadas para localizar documentos.


Dependências

The libxml and curl extensions must also be enabled for the Apache Solr extension to be available.

libxml2 2.6.31 or later is required.

libcurl 7.18.0 or later is also required.

The above library versions are required and attempting to hack the code to make it compile is strongly discouraged. It will fail, possibly with errors that could be hard to debug


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/solr.

For help and support, please visit the extension google group. » Apache Solr PHP Extension

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.

Nota:

The solr module can be compiled in debug mode by passing the --enable-solr-debug flag to configure

When building manually, be sure to include curl and libxml support within the build.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SOLR_MAJOR_VERSION (int)
SOLR_MINOR_VERSION (int)
SOLR_PATCH_VERSION (int)
SOLR_EXTENSION_VERSION (string)


  • « Constantes pré-definidas
  • solr_get_version »
  • PHP Manual
  • Solr
  • Solr Funções

Solr Funções

Índice

  • solr_get_version — Retorna a versão atual da extensão Apache Solr


Retorna a versão atual da extensão Apache Solr

  • « Solr Funções
  • Exemplos »
  • PHP Manual
  • Solr Funções
  • Retorna a versão atual da extensão Apache Solr

solr_get_version

(PECL solr >= 0.9.1)

solr_get_version — Retorna a versão atual da extensão Apache Solr

Descrição

solr_get_version(): string

Essa função retorna uma string com a versão atual da extensão Solr.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string, ou false se falhar.

Erros/Exceções

Essa função não lança nenhum erro ou exeções.

Exemplos

Exemplo #1 Exemplo de solr_get_version()

<?php

$solr_version = solr_get_version();

print $solr_version;

?>

O exemplo acima produzirá algo semelhante a:

0.9.6

Veja Também

  • SolrUtils::getSolrVersion() - Returns the current version of the Solr extension


Exemplos

Examples of how to use the Apache Solr extension in PHP

Exemplo #1 Contents of the BootStrap file

<?php

/* Domain name of the Solr server */
define('SOLR_SERVER_HOSTNAME', 'solr.example.com');

/* Whether or not to run in secure mode */
define('SOLR_SECURE', true);

/* HTTP Port to connection */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 : 8983));

/* HTTP Basic Authentication Username */
define('SOLR_SERVER_USERNAME', 'admin');

/* HTTP Basic Authentication password */
define('SOLR_SERVER_PASSWORD', 'changeit');

/* HTTP connection timeout */
/* This is maximum time in seconds allowed for the http data transfer operation. Default value is 30 seconds */
define('SOLR_SERVER_TIMEOUT', 10);

/* File name to a PEM-formatted private key + private certificate (concatenated in that order) */
define('SOLR_SSL_CERT', 'certs/combo.pem');

/* File name to a PEM-formatted private certificate only */
define('SOLR_SSL_CERT_ONLY', 'certs/solr.crt');

/* File name to a PEM-formatted private key */
define('SOLR_SSL_KEY', 'certs/solr.key');

/* Password for PEM-formatted private key file */
define('SOLR_SSL_KEYPASSWORD', 'StrongAndSecurePassword');

/* Name of file holding one or more CA certificates to verify peer with*/
define('SOLR_SSL_CAINFO', 'certs/cacert.crt');

/* Name of directory holding multiple CA certificates to verify peer with */
define('SOLR_SSL_CAPATH', 'certs/');

?>

Exemplo #2 Adding a document to the index

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

print_r($updateResponse->getResponse());

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 446
        )

)

Exemplo #3 Merging one document into another document

<?php

include "bootstrap.php";

$doc = new SolrDocument();

$second_doc = new SolrDocument();

$doc->addField('id', 1123);

$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat = 'Information Technology';

$second_doc->addField('cat', 'Lucene Search');

$second_doc->merge($doc, true);

print_r($second_doc->toArray());

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

        )

)

Exemplo #4 Searching for documents - SolrObject responses

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334456
                        )

                    [1] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334455
                        )

                    [2] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: héllo (hello with an accent over the e)
                                )

                            [id] => SOLR1000
                            [timestamp] => 2009-09-04T20:38:55.906
                        )

                )

        )

)

Exemplo #5 Searching for documents - SolrDocument responses

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$query_response->setParseMode(SolrQueryResponse::PARSE_SOLR_DOC);

$response = $query_response->getResponse();

print_r($response);

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 19740
                        )

                    [1] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25485
                        )

                    [2] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25052
                        )

                )

        )

)

Exemplo #6 Simple TermsComponent example - basic

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

$query->setTermsField('cat');

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [electronics] => 14
                    [Lucene] => 4
                    [Software] => 4
                    [memory] => 3
                    [card] => 2
                    [connector] => 2
                    [drive] => 2
                    [graphics] => 2
                    [hard] => 2
                    [monitor] => 2
                )

        )

)

Exemplo #7 Simple TermsComponent example - using a prefix

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix = 'c';

$query->setTermsField('cat')->setTermsPrefix($prefix);

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                    [camera] => 1
                    [copier] => 1
                )

        )

)

Exemplo #8 Simple TermsComponent example - specifying a minimum frequency

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix = 'c';

/* Return only terms with a frequency of 2 or greater */
$min_frequency = 2;

$query->setTermsField('cat')->setTermsPrefix($prefix)->setTermsMinCount($min_frequency);

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 0
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                )

        )

)

Exemplo #9 Simple Facet Example

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2);

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
            [1] => 3
            [184] => 3
            [2] => 3
            [3200] => 3
            [400] => 3
            [500] => 3
            [ddr] => 3
            [i] => 3
            [ipod] => 3
            [memori] => 3
            [pc] => 3
            [pin] => 3
            [pod] => 3
            [sdram] => 3
            [system] => 3
            [unbuff] => 3
            [canon] => 2
            [corsair] => 2
            [drive] => 2
            [hard] => 2
            [mb] => 2
            [n] => 2
            [power] => 2
            [retail] => 2
            [video] => 2
            [x] => 2
        )

)

Exemplo #10 Simple Facet Example - with optional field override for mincount

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Exemplo #11 Facet Date Example

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetDateField('manufacturedate_dt');

$query->setFacetDateStart('2006-02-13T00:00:00Z');

$query->setFacetDateEnd('2012-02-13T00:00:00Z');

$query->setFacetDateGap('+1YEAR');

$query->setFacetDateHardEnd(1);

$query->addFacetDateOther('before');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_dates;

print_r($facet_data);

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [manufacturedate_dt] => SolrObject Object
        (
            [2006-02-13T00:00:00Z] => 9
            [2007-02-13T00:00:00Z] => 0
            [2008-02-13T00:00:00Z] => 0
            [2009-02-13T00:00:00Z] => 0
            [2010-02-13T00:00:00Z] => 0
            [2011-02-13T00:00:00Z] => 0
            [gap] => +1YEAR
            [start] => 2006-02-13T00:00:00Z
            [end] => 2012-02-13T00:00:00Z
            [before] => 2
        )

)

Exemplo #12 Connecting to SSL-Enabled Server

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'timeout' => SOLR_SERVER_TIMEOUT,
'secure' => SOLR_SECURE,
'ssl_cert' => SOLR_SSL_CERT_ONLY,
'ssl_key' => SOLR_SSL_KEY,
'ssl_keypassword' => SOLR_SSL_KEYPASSWORD,
'ssl_cainfo' => SOLR_SSL_CAINFO,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Exemplo #13 Collapsing a SolrQuery

<?php
include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$collapseFunction = new SolrCollapseFunction('manu_id_s');

$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);

$query
->collapse($collapseFunction)
->setRows(4);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);
?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [q] => *:*
                    [indent] => on
                    [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore}
                    [rows] => 4
                    [version] => 2.2
                    [wt] => xml
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 14
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SP2514N
                            [name] => Array
                                (
                                    [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133
                                )

                            [manu] => Array
                                (
                                    [0] => Samsung Electronics Co. Ltd.
                                )

                            [manu_id_s] => samsung
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133
                                    [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor
                                )

                            [price] => Array
                                (
                                    [0] => 92
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [store] => Array
                                (
                                    [0] => 35.0752,-97.032
                                )

                            [_version_] => 1510294336412057600
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                    [2] => SolrObject Object
                        (
                            [id] => F8V7067-APL-KIT
                            [name] => Array
                                (
                                    [0] => Belkin Mobile Power Cord for iPod w/ Dock
                                )

                            [manu] => Array
                                (
                                    [0] => Belkin
                                )

                            [manu_id_s] => belkin
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => connector
                                )

                            [features] => Array
                                (
                                    [0] => car power adapter, white
                                )

                            [weight] => Array
                                (
                                    [0] => 4
                                )

                            [price] => Array
                                (
                                    [0] => 19.95
                                )

                            [popularity] => Array
                                (
                                    [0] => 1
                                )

                            [inStock] => Array
                                (
                                    [0] =>
                                )

                            [store] => Array
                                (
                                    [0] => 45.18014,-93.87741
                                )

                            [manufacturedate_dt] => 2005-08-01T16:30:25Z
                            [_version_] => 1510294336458194944
                        )

                    [3] => SolrObject Object
                        (
                            [id] => MA147LL/A
                            [name] => Array
                                (
                                    [0] => Apple 60 GB iPod with Video Playback Black
                                )

                            [manu] => Array
                                (
                                    [0] => Apple Computer Inc.
                                )

                            [manu_id_s] => apple
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => music
                                )

                            [features] => Array
                                (
                                    [0] => iTunes, Podcasts, Audiobooks
                                    [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video
                                    [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight
                                    [3] => Up to 20 hours of battery life
                                    [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video
                                    [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication
                                )

                            [includes] => Array
                                (
                                    [0] => earbud headphones, USB cable
                                )

                            [weight] => Array
                                (
                                    [0] => 5.5
                                )

                            [price] => Array
                                (
                                    [0] => 399
                                )

                            [popularity] => Array
                                (
                                    [0] => 10
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 37.7752,-100.0232
                                )

                            [manufacturedate_dt] => 2005-10-12T08:00:00Z
                            [_version_] => 1510294336562003968
                        )

                )

        )

)

Exemplo #14 Solr Real Time Get (RTG) example SolrClient::getById()

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getById('GB18030TEST');
print_r($response->getResponse());

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [doc] => SolrObject Object
        (
            [id] => GB18030TEST
            [name] => Array
                (
                    [0] => Test with some GB18030 encoded characters
                )

            [features] => Array
                (
                    [0] => No accents here
                    [1] => ??????
                    [2] => This is a feature (translated)
                    [3] => ?????????
                    [4] => This document is very shiny (translated)
                )

            [price] => Array
                (
                    [0] => 0
                )

            [inStock] => Array
                (
                    [0] => 1
                )

            [_version_] => 1510294336239042560
        )

)


The SolrUtils class

(PECL solr >= 0.9.2)

Introdução

Contains utility methods for retrieving the current extension version and preparing query phrases.

Also contains method for escaping query strings and parsing XML responses.

Resumo da classe

abstract class SolrUtils {
/* Métodos */
public static digestXmlResponse(string $xmlresponse, int $parse_mode = 0): SolrObject
public static escapeQueryChars(string $str): string|false
public static getSolrVersion(): string
public static queryPhrase(string $str): string
}

Índice

  • SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject
  • SolrUtils::escapeQueryChars — Escapes a lucene query string
  • SolrUtils::getSolrVersion — Returns the current version of the Solr extension
  • SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string


Parses an response XML string into a SolrObject

  • « SolrUtils
  • SolrUtils::escapeQueryChars »
  • PHP Manual
  • SolrUtils
  • Parses an response XML string into a SolrObject

SolrUtils::digestXmlResponse

(PECL solr >= 0.9.2)

SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject

Descrição

public static SolrUtils::digestXmlResponse(string $xmlresponse, int $parse_mode = 0): SolrObject

This method parses an response XML string from the Apache Solr server into a SolrObject. It throws a SolrException if there was an error.

Parâmetros

xmlresponse

The XML response string from the Solr server.

parse_mode

Use SolrResponse::PARSE_SOLR_OBJ or SolrResponse::PARSE_SOLR_DOC

Valor Retornado

Returns the SolrObject representing the XML response.

If the parse_mode parameter is set to SolrResponse::PARSE_SOLR_OBJ Solr documents will be parses as SolrObject instances.

If it is set to SolrResponse::PARSE_SOLR_DOC, they will be parsed as SolrDocument instances.


Escapes a lucene query string

  • « SolrUtils::digestXmlResponse
  • SolrUtils::getSolrVersion »
  • PHP Manual
  • SolrUtils
  • Escapes a lucene query string

SolrUtils::escapeQueryChars

(PECL solr >= 0.9.2)

SolrUtils::escapeQueryChars — Escapes a lucene query string

Descrição

public static SolrUtils::escapeQueryChars(string $str): string|false

Lucene supports escaping special characters that are part of the query syntax.

The current list special characters are:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /

These characters are part of the query syntax and must be escaped

Parâmetros

str

This is the query string to be escaped.

Valor Retornado

Returns the escaped string ou false em caso de falha.


Returns the current version of the Solr extension

  • « SolrUtils::escapeQueryChars
  • SolrUtils::queryPhrase »
  • PHP Manual
  • SolrUtils
  • Returns the current version of the Solr extension

SolrUtils::getSolrVersion

(PECL solr >= 0.9.2)

SolrUtils::getSolrVersion — Returns the current version of the Solr extension

Descrição

public static SolrUtils::getSolrVersion(): string

Returns the current Solr version.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current version of the Apache Solr extension.


Prepares a phrase from an unescaped lucene string

  • « SolrUtils::getSolrVersion
  • SolrInputDocument »
  • PHP Manual
  • SolrUtils
  • Prepares a phrase from an unescaped lucene string

SolrUtils::queryPhrase

(PECL solr >= 0.9.2)

SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string

Descrição

public static SolrUtils::queryPhrase(string $str): string

Prepares a phrase from an unescaped lucene string.

Parâmetros

str

The lucene phrase.

Valor Retornado

Returns the phrase contained in double quotes.


The SolrInputDocument class

(PECL solr >= 0.9.2)

Introdução

This class represents a Solr document that is about to be submitted to the Solr index.

Resumo da classe

final class SolrInputDocument {
/* Constantes */
const int SORT_DEFAULT = 1;
const int SORT_ASC = 1;
const int SORT_DESC = 2;
const int SORT_FIELD_NAME = 1;
const int SORT_FIELD_VALUE_COUNT = 2;
const int SORT_FIELD_BOOST_VALUE = 4;
/* Métodos */
public __construct()
public addChildDocument(SolrInputDocument $child): void
public addChildDocuments(array &$docs): void
public addField(string $fieldName, string $fieldValue, float $fieldBoostValue = 0.0): bool
public clear(): bool
public __clone(): void
public deleteField(string $fieldName): bool
public fieldExists(string $fieldName): bool
public getBoost(): float
public getChildDocuments(): array
public getChildDocumentsCount(): int
public getField(string $fieldName): SolrDocumentField
public getFieldBoost(string $fieldName): float
public getFieldCount(): int|false
public getFieldNames(): array
public hasChildDocuments(): bool
public merge(SolrInputDocument $sourceDoc, bool $overwrite = true): bool
public reset(): bool
public setBoost(float $documentBoostValue): bool
public setFieldBoost(string $fieldName, float $fieldBoostValue): bool
public sort(int $sortOrderBy, int $sortDirection = SolrInputDocument::SORT_ASC): bool
public toArray(): array
public __destruct()
}

Constantes pré-definidas

SolrInputDocument Class Constants

SolrInputDocument::SORT_DEFAULT

Sorts the fields in ascending order.

SolrInputDocument::SORT_ASC

Sorts the fields in ascending order.

SolrInputDocument::SORT_DESC

Sorts the fields in descending order.

SolrInputDocument::SORT_FIELD_NAME

Sorts the fields by name

SolrInputDocument::SORT_FIELD_VALUE_COUNT

Sorts the fields by number of values.

SolrInputDocument::SORT_FIELD_BOOST_VALUE

Sorts the fields by boost value.

Índice

  • SolrInputDocument::addChildDocument — Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments — Adds an array of child documents
  • SolrInputDocument::addField — Adds a field to the document
  • SolrInputDocument::clear — Resets the input document
  • SolrInputDocument::__clone — Creates a copy of a SolrDocument
  • SolrInputDocument::__construct — Constructor
  • SolrInputDocument::deleteField — Removes a field from the document
  • SolrInputDocument::__destruct — Destructor
  • SolrInputDocument::fieldExists — Checks if a field exists
  • SolrInputDocument::getBoost — Retrieves the current boost value for the document
  • SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount — Returns the number of child documents
  • SolrInputDocument::getField — Retrieves a field by name
  • SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field
  • SolrInputDocument::getFieldCount — Returns the number of fields in the document
  • SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document
  • SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents
  • SolrInputDocument::merge — Merges one input document into another
  • SolrInputDocument::reset — Sinônimo de SolrInputDocument::clear
  • SolrInputDocument::setBoost — Sets the boost value for this document
  • SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field
  • SolrInputDocument::sort — Sorts the fields within the document
  • SolrInputDocument::toArray — Returns an array representation of the input document


Adds a child document for block indexing

  • « SolrInputDocument
  • SolrInputDocument::addChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Adds a child document for block indexing

SolrInputDocument::addChildDocument

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocument — Adds a child document for block indexing

Descrição

public SolrInputDocument::addChildDocument(SolrInputDocument $child): void

Adds a child document to construct a document block with nested documents.

Parâmetros

child

A SolrInputDocument object.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

Exemplos

Exemplo #1 SolrInputDocument::addChildDocument() example

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_STORE_PATH,
);

$client = new SolrClient($options);

$product = new SolrInputDocument();

$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');

$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);

$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);

$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);

// add child documents
$product->addChildDocument($small);
$product->addChildDocument($medium);
$product->addChildDocument($large);

// add product document block to the index
$updateResponse = $client->addDocument(
$product,
true, // overwrite if the document exists
10000 // commit within 10 seconds
);

print_r($updateResponse->getResponse());

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Veja Também

  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Adds an array of child documents

  • « SolrInputDocument::addChildDocument
  • SolrInputDocument::addField »
  • PHP Manual
  • SolrInputDocument
  • Adds an array of child documents

SolrInputDocument::addChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocuments — Adds an array of child documents

Descrição

public SolrInputDocument::addChildDocuments(array &$docs): void

Adds an array of child documents to the current input document.

Parâmetros

docs

An array of SolrInputDocument objects.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

Exemplos

Exemplo #1 SolrInputDocument::addChildDocuments() example

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_STORE_PATH,
);

$client = new SolrClient($options);

$product = new SolrInputDocument();

$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');

$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);

$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);

$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);

// add child documents
$skus = [$small, $medium, $large];
$product->addChildDocuments($skus);

// add the product document block to the index
$updateResponse = $client->addDocument(
$product,
true, // overwrite if the document exists
10000 // commit within 10 seconds
);

print_r($updateResponse->getResponse());

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Veja Também

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Adds a field to the document

  • « SolrInputDocument::addChildDocuments
  • SolrInputDocument::clear »
  • PHP Manual
  • SolrInputDocument
  • Adds a field to the document

SolrInputDocument::addField

(PECL solr >= 0.9.2)

SolrInputDocument::addField — Adds a field to the document

Descrição

public SolrInputDocument::addField(string $fieldName, string $fieldValue, float $fieldBoostValue = 0.0): bool

For multi-value fields, if a valid boost value is specified, the specified value will be multiplied by the current boost value for this field.

Parâmetros

fieldName

The name of the field

fieldValue

The value for the field.

fieldBoostValue

The index time boost for the field. Though this cannot be negative, you can still pass values less than 1.0 but they must be greater than zero.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Resets the input document

  • « SolrInputDocument::addField
  • SolrInputDocument::__clone »
  • PHP Manual
  • SolrInputDocument
  • Resets the input document

SolrInputDocument::clear

(PECL solr >= 0.9.2)

SolrInputDocument::clear — Resets the input document

Descrição

public SolrInputDocument::clear(): bool

Resets the document by dropping all the fields and resets the document boost to zero.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Creates a copy of a SolrDocument

  • « SolrInputDocument::clear
  • SolrInputDocument::__construct »
  • PHP Manual
  • SolrInputDocument
  • Creates a copy of a SolrDocument

SolrInputDocument::__clone

(PECL solr >= 0.9.2)

SolrInputDocument::__clone — Creates a copy of a SolrDocument

Descrição

public SolrInputDocument::__clone(): void

Should not be called directly. It is used to create a deep copy of a SolrInputDocument.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Creates a new SolrInputDocument instance.


Constructor

  • « SolrInputDocument::__clone
  • SolrInputDocument::deleteField »
  • PHP Manual
  • SolrInputDocument
  • Constructor

SolrInputDocument::__construct

(PECL solr >= 0.9.2)

SolrInputDocument::__construct — Constructor

Descrição

public SolrInputDocument::__construct()

Constructor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None.


Removes a field from the document

  • « SolrInputDocument::__construct
  • SolrInputDocument::__destruct »
  • PHP Manual
  • SolrInputDocument
  • Removes a field from the document

SolrInputDocument::deleteField

(PECL solr >= 0.9.2)

SolrInputDocument::deleteField — Removes a field from the document

Descrição

public SolrInputDocument::deleteField(string $fieldName): bool

Removes a field from the document.

Parâmetros

fieldName

The name of the field.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Destructor

  • « SolrInputDocument::deleteField
  • SolrInputDocument::fieldExists »
  • PHP Manual
  • SolrInputDocument
  • Destructor

SolrInputDocument::__destruct

(PECL solr >= 0.9.2)

SolrInputDocument::__destruct — Destructor

Descrição

public SolrInputDocument::__destruct()

Destructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None.


Checks if a field exists

  • « SolrInputDocument::__destruct
  • SolrInputDocument::getBoost »
  • PHP Manual
  • SolrInputDocument
  • Checks if a field exists

SolrInputDocument::fieldExists

(PECL solr >= 0.9.2)

SolrInputDocument::fieldExists — Checks if a field exists

Descrição

public SolrInputDocument::fieldExists(string $fieldName): bool

Checks if a field exists

Parâmetros

fieldName

Name of the field.

Valor Retornado

Returns true if the field was found and false if it was not found.


Retrieves the current boost value for the document

  • « SolrInputDocument::fieldExists
  • SolrInputDocument::getChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Retrieves the current boost value for the document

SolrInputDocument::getBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getBoost — Retrieves the current boost value for the document

Descrição

public SolrInputDocument::getBoost(): float

Retrieves the current boost value for the document.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the boost value on success and false on failure.


Returns an array of child documents (SolrInputDocument)

  • « SolrInputDocument::getBoost
  • SolrInputDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrInputDocument
  • Returns an array of child documents (SolrInputDocument)

SolrInputDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)

Descrição

public SolrInputDocument::getChildDocuments(): array

Returns an array of child documents (SolrInputDocument)

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Returns the number of child documents

  • « SolrInputDocument::getChildDocuments
  • SolrInputDocument::getField »
  • PHP Manual
  • SolrInputDocument
  • Returns the number of child documents

SolrInputDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocumentsCount — Returns the number of child documents

Descrição

public SolrInputDocument::getChildDocumentsCount(): int

Returns the number of child documents

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)


Retrieves a field by name

  • « SolrInputDocument::getChildDocumentsCount
  • SolrInputDocument::getFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Retrieves a field by name

SolrInputDocument::getField

(PECL solr >= 0.9.2)

SolrInputDocument::getField — Retrieves a field by name

Descrição

public SolrInputDocument::getField(string $fieldName): SolrDocumentField

Retrieves a field in the document.

Parâmetros

fieldName

The name of the field.

Valor Retornado

Returns a SolrDocumentField object on success and false on failure.


Retrieves the boost value for a particular field

  • « SolrInputDocument::getField
  • SolrInputDocument::getFieldCount »
  • PHP Manual
  • SolrInputDocument
  • Retrieves the boost value for a particular field

SolrInputDocument::getFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field

Descrição

public SolrInputDocument::getFieldBoost(string $fieldName): float

Retrieves the boost value for a particular field.

Parâmetros

fieldName

The name of the field.

Valor Retornado

Returns the boost value for the field or false if there was an error.


Returns the number of fields in the document

  • « SolrInputDocument::getFieldBoost
  • SolrInputDocument::getFieldNames »
  • PHP Manual
  • SolrInputDocument
  • Returns the number of fields in the document

SolrInputDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldCount — Returns the number of fields in the document

Descrição

public SolrInputDocument::getFieldCount(): int|false

Returns the number of fields in the document.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success ou false em caso de falha.


Returns an array containing all the fields in the document

  • « SolrInputDocument::getFieldCount
  • SolrInputDocument::hasChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Returns an array containing all the fields in the document

SolrInputDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document

Descrição

public SolrInputDocument::getFieldNames(): array

Returns an array containing all the fields in the document.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on success and false on failure.


Returns true if the document has any child documents

  • « SolrInputDocument::getFieldNames
  • SolrInputDocument::merge »
  • PHP Manual
  • SolrInputDocument
  • Returns true if the document has any child documents

SolrInputDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents

Descrição

public SolrInputDocument::hasChildDocuments(): bool

Checks whether the document has any child documents

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Merges one input document into another

  • « SolrInputDocument::hasChildDocuments
  • SolrInputDocument::reset »
  • PHP Manual
  • SolrInputDocument
  • Merges one input document into another

SolrInputDocument::merge

(PECL solr >= 0.9.2)

SolrInputDocument::merge — Merges one input document into another

Descrição

public SolrInputDocument::merge(SolrInputDocument $sourceDoc, bool $overwrite = true): bool

Merges one input document into another.

Parâmetros

sourceDoc

The source document.

overwrite

If this is true it will replace matching fields in the destination document.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. In the future, this will be modified to return the number of fields in the new document.


Sinônimo de SolrInputDocument::clear

  • « SolrInputDocument::merge
  • SolrInputDocument::setBoost »
  • PHP Manual
  • SolrInputDocument
  • Sinônimo de SolrInputDocument::clear

SolrInputDocument::reset

(PECL solr >= 0.9.2)

SolrInputDocument::reset — Sinônimo de SolrInputDocument::clear()

Descrição

public SolrInputDocument::reset(): bool

This is an alias of SolrInputDocument::clear

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sets the boost value for this document

  • « SolrInputDocument::reset
  • SolrInputDocument::setFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Sets the boost value for this document

SolrInputDocument::setBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setBoost — Sets the boost value for this document

Descrição

public SolrInputDocument::setBoost(float $documentBoostValue): bool

Sets the boost value for this document.

Parâmetros

documentBoostValue

The index-time boost value for this document.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sets the index-time boost value for a field

  • « SolrInputDocument::setBoost
  • SolrInputDocument::sort »
  • PHP Manual
  • SolrInputDocument
  • Sets the index-time boost value for a field

SolrInputDocument::setFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field

Descrição

public SolrInputDocument::setFieldBoost(string $fieldName, float $fieldBoostValue): bool

Sets the index-time boost value for a field. This replaces the current boost value for this field.

Parâmetros

fieldName

The name of the field.

fieldBoostValue

The index time boost value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sorts the fields within the document

  • « SolrInputDocument::setFieldBoost
  • SolrInputDocument::toArray »
  • PHP Manual
  • SolrInputDocument
  • Sorts the fields within the document

SolrInputDocument::sort

(PECL solr >= 0.9.2)

SolrInputDocument::sort — Sorts the fields within the document

Descrição

public SolrInputDocument::sort(int $sortOrderBy, int $sortDirection = SolrInputDocument::SORT_ASC): bool

The fields are rearranged according to the specified criteria and sort direction

   Fields can be sorted by boost values, field names and number of values.

   The $order_by parameter must be one of :

   * SolrInputDocument::SORT_FIELD_NAME
   * SolrInputDocument::SORT_FIELD_BOOST_VALUE
   * SolrInputDocument::SORT_FIELD_VALUE_COUNT

   The sort direction can be one of :

   * SolrInputDocument::SORT_DEFAULT
   * SolrInputDocument::SORT_ASC
   * SolrInputDocument::SORT_DESC

Parâmetros

sortOrderBy

The sort criteria

sortDirection

The sort direction

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Returns an array representation of the input document

  • « SolrInputDocument::sort
  • SolrDocument »
  • PHP Manual
  • SolrInputDocument
  • Returns an array representation of the input document

SolrInputDocument::toArray

(PECL solr >= 0.9.2)

SolrInputDocument::toArray — Returns an array representation of the input document

Descrição

public SolrInputDocument::toArray(): array

Returns an array representation of the input document.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array containing the fields. It returns false on failure.


The SolrDocument class

(PECL solr >= 0.9.2)

Introdução

Represents a Solr document retrieved from a query response.

Resumo da classe

final class SolrDocument implements ArrayAccess, Iterator, Serializable {
/* Constantes */
const int SORT_DEFAULT = 1;
const int SORT_ASC = 1;
const int SORT_DESC = 2;
const int SORT_FIELD_NAME = 1;
const int SORT_FIELD_VALUE_COUNT = 2;
const int SORT_FIELD_BOOST_VALUE = 4;
/* Métodos */
public __construct()
public addField(string $fieldName, string $fieldValue): bool
public clear(): bool
public __clone(): void
public current(): SolrDocumentField
public deleteField(string $fieldName): bool
public fieldExists(string $fieldName): bool
public __get(string $fieldName): SolrDocumentField
public getChildDocuments(): array
public getChildDocumentsCount(): int
public getField(string $fieldName): SolrDocumentField
public getFieldCount(): int
public getFieldNames(): array
public getInputDocument(): SolrInputDocument
public hasChildDocuments(): bool
public __isset(string $fieldName): bool
public key(): string
public merge(SolrDocument $sourceDoc, bool $overwrite = true): bool
public next(): void
public offsetExists(string $fieldName): bool
public offsetGet(string $fieldName): SolrDocumentField
public offsetSet(string $fieldName, string $fieldValue): void
public offsetUnset(string $fieldName): void
public reset(): bool
public rewind(): void
public serialize(): string
public __set(string $fieldName, string $fieldValue): bool
public sort(int $sortOrderBy, int $sortDirection = SolrDocument::SORT_ASC): bool
public toArray(): array
public unserialize(string $serialized): void
public __unset(string $fieldName): bool
public valid(): bool
public __destruct()
}

Constantes pré-definidas

SolrDocument::SORT_DEFAULT

Default mode for sorting fields within the document.

SolrDocument::SORT_ASC

Sorts the fields in ascending order

SolrDocument::SORT_DESC

Sorts the fields in descending order

SolrDocument::SORT_FIELD_NAME

Sorts the fields by field name.

SolrDocument::SORT_FIELD_VALUE_COUNT

Sorts the fields by number of values in each field.

SolrDocument::SORT_FIELD_BOOST_VALUE

Sorts the fields by thier boost values.

Índice

  • SolrDocument::addField — Adds a field to the document
  • SolrDocument::clear — Drops all the fields in the document
  • SolrDocument::__clone — Creates a copy of a SolrDocument object
  • SolrDocument::__construct — Constructor
  • SolrDocument::current — Retrieves the current field
  • SolrDocument::deleteField — Removes a field from the document
  • SolrDocument::__destruct — Destructor
  • SolrDocument::fieldExists — Checks if a field exists in the document
  • SolrDocument::__get — Access the field as a property
  • SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)
  • SolrDocument::getChildDocumentsCount — Returns the number of child documents
  • SolrDocument::getField — Retrieves a field by name
  • SolrDocument::getFieldCount — Returns the number of fields in this document
  • SolrDocument::getFieldNames — Returns an array of fields names in the document
  • SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object
  • SolrDocument::hasChildDocuments — Checks whether the document has any child documents
  • SolrDocument::__isset — Checks if a field exists
  • SolrDocument::key — Retrieves the current key
  • SolrDocument::merge — Merges source to the current SolrDocument
  • SolrDocument::next — Moves the internal pointer to the next field
  • SolrDocument::offsetExists — Checks if a particular field exists
  • SolrDocument::offsetGet — Retrieves a field
  • SolrDocument::offsetSet — Adds a field to the document
  • SolrDocument::offsetUnset — Removes a field
  • SolrDocument::reset — Sinônimo de SolrDocument::clear
  • SolrDocument::rewind — Resets the internal pointer to the beginning
  • SolrDocument::serialize — Used for custom serialization
  • SolrDocument::__set — Adds another field to the document
  • SolrDocument::sort — Sorts the fields in the document
  • SolrDocument::toArray — Returns an array representation of the document
  • SolrDocument::unserialize — Custom serialization of SolrDocument objects
  • SolrDocument::__unset — Removes a field from the document
  • SolrDocument::valid — Checks if the current position internally is still valid


Adds a field to the document

  • « SolrDocument
  • SolrDocument::clear »
  • PHP Manual
  • SolrDocument
  • Adds a field to the document

SolrDocument::addField

(PECL solr >= 0.9.2)

SolrDocument::addField — Adds a field to the document

Descrição

public SolrDocument::addField(string $fieldName, string $fieldValue): bool

This method adds a field to the SolrDocument instance.

Parâmetros

fieldName

The name of the field

fieldValue

The value of the field.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Drops all the fields in the document

  • « SolrDocument::addField
  • SolrDocument::__clone »
  • PHP Manual
  • SolrDocument
  • Drops all the fields in the document

SolrDocument::clear

(PECL solr >= 0.9.2)

SolrDocument::clear — Drops all the fields in the document

Descrição

public SolrDocument::clear(): bool

Resets the current object. Discards all the fields and resets the document boost to zero.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Creates a copy of a SolrDocument object

  • « SolrDocument::clear
  • SolrDocument::__construct »
  • PHP Manual
  • SolrDocument
  • Creates a copy of a SolrDocument object

SolrDocument::__clone

(PECL solr >= 0.9.2)

SolrDocument::__clone — Creates a copy of a SolrDocument object

Descrição

public SolrDocument::__clone(): void

Creates a copy of a SolrDocument object. Not to be called directly.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None.


Constructor

  • « SolrDocument::__clone
  • SolrDocument::current »
  • PHP Manual
  • SolrDocument
  • Constructor

SolrDocument::__construct

(PECL solr >= 0.9.2)

SolrDocument::__construct — Constructor

Descrição

public SolrDocument::__construct()

Constructor for SolrDocument

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Retrieves the current field

  • « SolrDocument::__construct
  • SolrDocument::deleteField »
  • PHP Manual
  • SolrDocument
  • Retrieves the current field

SolrDocument::current

(PECL solr >= 0.9.2)

SolrDocument::current — Retrieves the current field

Descrição

public SolrDocument::current(): SolrDocumentField

Retrieves the current field

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the field


Removes a field from the document

  • « SolrDocument::current
  • SolrDocument::__destruct »
  • PHP Manual
  • SolrDocument
  • Removes a field from the document

SolrDocument::deleteField

(PECL solr >= 0.9.2)

SolrDocument::deleteField — Removes a field from the document

Descrição

public SolrDocument::deleteField(string $fieldName): bool

Removes a field from the document.

Parâmetros

fieldName

Name of the field

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Destructor

  • « SolrDocument::deleteField
  • SolrDocument::fieldExists »
  • PHP Manual
  • SolrDocument
  • Destructor

SolrDocument::__destruct

(PECL solr >= 0.9.2)

SolrDocument::__destruct — Destructor

Descrição

public SolrDocument::__destruct()

Destructor for SolrDocument.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Checks if a field exists in the document

  • « SolrDocument::__destruct
  • SolrDocument::__get »
  • PHP Manual
  • SolrDocument
  • Checks if a field exists in the document

SolrDocument::fieldExists

(PECL solr >= 0.9.2)

SolrDocument::fieldExists — Checks if a field exists in the document

Descrição

public SolrDocument::fieldExists(string $fieldName): bool

Checks if the requested field as a valid fieldname in the document.

Parâmetros

fieldName

The name of the field.

Valor Retornado

Returns true if the field is present and false if it does not.


Access the field as a property

  • « SolrDocument::fieldExists
  • SolrDocument::getChildDocuments »
  • PHP Manual
  • SolrDocument
  • Access the field as a property

SolrDocument::__get

(PECL solr >= 0.9.2)

SolrDocument::__get — Access the field as a property

Descrição

public SolrDocument::__get(string $fieldName): SolrDocumentField

Magic method for accessing the field as a property.

Parâmetros

fieldName

The name of the field.

Valor Retornado

Returns a SolrDocumentField instance.


Returns an array of child documents (SolrDocument)

  • « SolrDocument::__get
  • SolrDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrDocument
  • Returns an array of child documents (SolrDocument)

SolrDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)

Descrição

public SolrDocument::getChildDocuments(): array

Returns an array of child documents (SolrDocument)

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrDocument::hasChildDocuments() - Checks whether the document has any child documents
  • SolrDocument::getChildDocumentsCount() - Returns the number of child documents


Returns the number of child documents

  • « SolrDocument::getChildDocuments
  • SolrDocument::getField »
  • PHP Manual
  • SolrDocument
  • Returns the number of child documents

SolrDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrDocument::getChildDocumentsCount — Returns the number of child documents

Descrição

public SolrDocument::getChildDocumentsCount(): int

Returns the number of child documents

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrDocument::hasChildDocuments() - Checks whether the document has any child documents
  • SolrDocument::getChildDocuments() - Returns an array of child documents (SolrDocument)


Retrieves a field by name

  • « SolrDocument::getChildDocumentsCount
  • SolrDocument::getFieldCount »
  • PHP Manual
  • SolrDocument
  • Retrieves a field by name

SolrDocument::getField

(PECL solr >= 0.9.2)

SolrDocument::getField — Retrieves a field by name

Descrição

public SolrDocument::getField(string $fieldName): SolrDocumentField

Retrieves a field by name.

Parâmetros

fieldName

Name of the field.

Valor Retornado

Returns a SolrDocumentField on success and false on failure.


Returns the number of fields in this document

  • « SolrDocument::getField
  • SolrDocument::getFieldNames »
  • PHP Manual
  • SolrDocument
  • Returns the number of fields in this document

SolrDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrDocument::getFieldCount — Returns the number of fields in this document

Descrição

public SolrDocument::getFieldCount(): int

Returns the number of fields in this document. Multi-value fields are only counted once.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and false on failure.


Returns an array of fields names in the document

  • « SolrDocument::getFieldCount
  • SolrDocument::getInputDocument »
  • PHP Manual
  • SolrDocument
  • Returns an array of fields names in the document

SolrDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrDocument::getFieldNames — Returns an array of fields names in the document

Descrição

public SolrDocument::getFieldNames(): array

Returns an array of fields names in the document.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array containing the names of the fields in this document.


Returns a SolrInputDocument equivalent of the object

  • « SolrDocument::getFieldNames
  • SolrDocument::hasChildDocuments »
  • PHP Manual
  • SolrDocument
  • Returns a SolrInputDocument equivalent of the object

SolrDocument::getInputDocument

(PECL solr >= 0.9.2)

SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object

Descrição

public SolrDocument::getInputDocument(): SolrInputDocument

Returns a SolrInputDocument equivalent of the object. This is useful if one wishes to resubmit/update a document retrieved from a query.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a SolrInputDocument on success and null on failure.


Checks whether the document has any child documents

  • « SolrDocument::getInputDocument
  • SolrDocument::__isset »
  • PHP Manual
  • SolrDocument
  • Checks whether the document has any child documents

SolrDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::hasChildDocuments — Checks whether the document has any child documents

Descrição

public SolrDocument::hasChildDocuments(): bool

Checks whether the document has any child documents

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrDocument::getChildDocuments() - Returns an array of child documents (SolrDocument)
  • SolrDocument::getChildDocumentsCount() - Returns the number of child documents


Checks if a field exists

  • « SolrDocument::hasChildDocuments
  • SolrDocument::key »
  • PHP Manual
  • SolrDocument
  • Checks if a field exists

SolrDocument::__isset

(PECL solr >= 0.9.2)

SolrDocument::__isset — Checks if a field exists

Descrição

public SolrDocument::__isset(string $fieldName): bool

Checks if a field exists

Parâmetros

fieldName

Name of the field.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Retrieves the current key

  • « SolrDocument::__isset
  • SolrDocument::merge »
  • PHP Manual
  • SolrDocument
  • Retrieves the current key

SolrDocument::key

(PECL solr >= 0.9.2)

SolrDocument::key — Retrieves the current key

Descrição

public SolrDocument::key(): string

Retrieves the current key.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current key.


Merges source to the current SolrDocument

  • « SolrDocument::key
  • SolrDocument::next »
  • PHP Manual
  • SolrDocument
  • Merges source to the current SolrDocument

SolrDocument::merge

(PECL solr >= 0.9.2)

SolrDocument::merge — Merges source to the current SolrDocument

Descrição

public SolrDocument::merge(SolrDocument $sourceDoc, bool $overwrite = true): bool

Merges source to the current SolrDocument.

Parâmetros

sourceDoc

The source document.

overwrite

If this is true then fields with the same name in the destination document will be overwritten.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Moves the internal pointer to the next field

  • « SolrDocument::merge
  • SolrDocument::offsetExists »
  • PHP Manual
  • SolrDocument
  • Moves the internal pointer to the next field

SolrDocument::next

(PECL solr >= 0.9.2)

SolrDocument::next — Moves the internal pointer to the next field

Descrição

public SolrDocument::next(): void

Moves the internal pointer to the next field.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

This method has no return value.


Checks if a particular field exists

  • « SolrDocument::next
  • SolrDocument::offsetGet »
  • PHP Manual
  • SolrDocument
  • Checks if a particular field exists

SolrDocument::offsetExists

(PECL solr >= 0.9.2)

SolrDocument::offsetExists — Checks if a particular field exists

Descrição

public SolrDocument::offsetExists(string $fieldName): bool

Checks if a particular field exists. This is used when the object is treated as an array.

Parâmetros

fieldName

The name of the field.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Retrieves a field

  • « SolrDocument::offsetExists
  • SolrDocument::offsetSet »
  • PHP Manual
  • SolrDocument
  • Retrieves a field

SolrDocument::offsetGet

(PECL solr >= 0.9.2)

SolrDocument::offsetGet — Retrieves a field

Descrição

public SolrDocument::offsetGet(string $fieldName): SolrDocumentField

This is used to retrieve the field when the object is treated as an array.

Parâmetros

fieldName

The name of the field.

Valor Retornado

Returns a SolrDocumentField object.


Adds a field to the document

  • « SolrDocument::offsetGet
  • SolrDocument::offsetUnset »
  • PHP Manual
  • SolrDocument
  • Adds a field to the document

SolrDocument::offsetSet

(PECL solr >= 0.9.2)

SolrDocument::offsetSet — Adds a field to the document

Descrição

public SolrDocument::offsetSet(string $fieldName, string $fieldValue): void

Used when the object is treated as an array to add a field to the document.

Parâmetros

fieldName

The name of the field.

fieldValue

The value for this field.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Removes a field

  • « SolrDocument::offsetSet
  • SolrDocument::reset »
  • PHP Manual
  • SolrDocument
  • Removes a field

SolrDocument::offsetUnset

(PECL solr >= 0.9.2)

SolrDocument::offsetUnset — Removes a field

Descrição

public SolrDocument::offsetUnset(string $fieldName): void

Removes a field from the document.

Parâmetros

fieldName

The name of the field.

Valor Retornado

No return value.


Sinônimo de SolrDocument::clear

  • « SolrDocument::offsetUnset
  • SolrDocument::rewind »
  • PHP Manual
  • SolrDocument
  • Sinônimo de SolrDocument::clear

SolrDocument::reset

(PECL solr >= 0.9.2)

SolrDocument::reset — Sinônimo de SolrDocument::clear()

Descrição

public SolrDocument::reset(): bool

This is an alias to SolrDocument::clear()

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Resets the internal pointer to the beginning

  • « SolrDocument::reset
  • SolrDocument::serialize »
  • PHP Manual
  • SolrDocument
  • Resets the internal pointer to the beginning

SolrDocument::rewind

(PECL solr >= 0.9.2)

SolrDocument::rewind — Resets the internal pointer to the beginning

Descrição

public SolrDocument::rewind(): void

Resets the internal pointer to the beginning.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

This method has no return value.


Used for custom serialization

  • « SolrDocument::rewind
  • SolrDocument::__set »
  • PHP Manual
  • SolrDocument
  • Used for custom serialization

SolrDocument::serialize

(PECL solr >= 0.9.2)

SolrDocument::serialize — Used for custom serialization

Descrição

public SolrDocument::serialize(): string

Used for custom serialization.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string representing the serialized Solr document.


Adds another field to the document

  • « SolrDocument::serialize
  • SolrDocument::sort »
  • PHP Manual
  • SolrDocument
  • Adds another field to the document

SolrDocument::__set

(PECL solr >= 0.9.2)

SolrDocument::__set — Adds another field to the document

Descrição

public SolrDocument::__set(string $fieldName, string $fieldValue): bool

Adds another field to the document. Used to set the fields as new properties.

Parâmetros

fieldName

Name of the field.

fieldValue

Field value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Sorts the fields in the document

  • « SolrDocument::__set
  • SolrDocument::toArray »
  • PHP Manual
  • SolrDocument
  • Sorts the fields in the document

SolrDocument::sort

(PECL solr >= 0.9.2)

SolrDocument::sort — Sorts the fields in the document

Descrição

public SolrDocument::sort(int $sortOrderBy, int $sortDirection = SolrDocument::SORT_ASC): bool

The fields are rearranged according to the specified criteria and sort direction

   Fields can be sorted by boost values, field names and number of values.

   The sortOrderBy parameter must be one of :

   * SolrDocument::SORT_FIELD_NAME
   * SolrDocument::SORT_FIELD_BOOST_VALUE
   * SolrDocument::SORT_FIELD_VALUE_COUNT

   The sortDirection can be one of :

   * SolrDocument::SORT_DEFAULT
   * SolrDocument::SORT_ASC
   * SolrDocument::SORT_DESC

   The default way is to sort in ascending order.

Parâmetros

sortOrderBy

The sort criteria.

sortDirection

The sort direction.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Returns an array representation of the document

  • « SolrDocument::sort
  • SolrDocument::unserialize »
  • PHP Manual
  • SolrDocument
  • Returns an array representation of the document

SolrDocument::toArray

(PECL solr >= 0.9.2)

SolrDocument::toArray — Returns an array representation of the document

Descrição

public SolrDocument::toArray(): array

Returns an array representation of the document.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array representation of the document.

Exemplos

Exemplo #1 SolrDocument::toArray() example

<?php

$doc = new SolrDocument();

$doc->addField('id', 1123);

$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat = 'Information Technology';

print_r($doc->toArray());

?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

        )

)


Custom serialization of SolrDocument objects

  • « SolrDocument::toArray
  • SolrDocument::__unset »
  • PHP Manual
  • SolrDocument
  • Custom serialization of SolrDocument objects

SolrDocument::unserialize

(PECL solr >= 0.9.2)

SolrDocument::unserialize — Custom serialization of SolrDocument objects

Descrição

public SolrDocument::unserialize(string $serialized): void

Custom serialization of SolrDocument objects

Parâmetros

serialized

An XML representation of the document.

Valor Retornado

None.


Removes a field from the document

  • « SolrDocument::unserialize
  • SolrDocument::valid »
  • PHP Manual
  • SolrDocument
  • Removes a field from the document

SolrDocument::__unset

(PECL solr >= 0.9.2)

SolrDocument::__unset — Removes a field from the document

Descrição

public SolrDocument::__unset(string $fieldName): bool

Removes a field from the document when the field is access as an object property.

Parâmetros

fieldName

The name of the field.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Checks if the current position internally is still valid

  • « SolrDocument::__unset
  • SolrDocumentField »
  • PHP Manual
  • SolrDocument
  • Checks if the current position internally is still valid

SolrDocument::valid

(PECL solr >= 0.9.2)

SolrDocument::valid — Checks if the current position internally is still valid

Descrição

public SolrDocument::valid(): bool

Checks if the current position internally is still valid. It is used during foreach operations.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true on success and false if the current position is no longer valid.


The SolrDocumentField class

(PECL solr >= 0.9.2)

Introdução

This represents a field in a Solr document. All its properties are read-only.

Resumo da classe

final class SolrDocumentField {
/* Propriedades */
public readonly string $name;
public readonly float $boost;
public readonly array $values;
/* Métodos */
public __construct()
public __destruct()
}

Propriedades

name

The name of the field.

boost

The boost value for the field

values

An array of values for this field

Índice

  • SolrDocumentField::__construct — Constructor
  • SolrDocumentField::__destruct — Destructor


Constructor

  • « SolrDocumentField
  • SolrDocumentField::__destruct »
  • PHP Manual
  • SolrDocumentField
  • Constructor

SolrDocumentField::__construct

(PECL solr >= 0.9.2)

SolrDocumentField::__construct — Constructor

Descrição

public SolrDocumentField::__construct()

Constructor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None.


Destructor

  • « SolrDocumentField::__construct
  • SolrObject »
  • PHP Manual
  • SolrDocumentField
  • Destructor

SolrDocumentField::__destruct

(PECL solr >= 0.9.2)

SolrDocumentField::__destruct — Destructor

Descrição

public SolrDocumentField::__destruct()

Destructor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None.


The SolrObject class

(PECL solr >= 0.9.2)

Introdução

This is an object whose properties can also by accessed using the array syntax. All its properties are read-only.

Resumo da classe

final class SolrObject implements ArrayAccess {
/* Métodos */
public __construct()
public getPropertyNames(): array
public offsetExists(string $property_name): bool
public offsetGet(string $property_name): mixed
public offsetSet(string $property_name, string $property_value): void
public offsetUnset(string $property_name): void
public __destruct()
}

Índice

  • SolrObject::__construct — Creates Solr object
  • SolrObject::__destruct — Destructor
  • SolrObject::getPropertyNames — Returns an array of all the names of the properties
  • SolrObject::offsetExists — Checks if the property exists
  • SolrObject::offsetGet — Used to retrieve a property
  • SolrObject::offsetSet — Sets the value for a property
  • SolrObject::offsetUnset — Unsets the value for the property


Creates Solr object

  • « SolrObject
  • SolrObject::__destruct »
  • PHP Manual
  • SolrObject
  • Creates Solr object

SolrObject::__construct

(PECL solr >= 0.9.2)

SolrObject::__construct — Creates Solr object

Descrição

public SolrObject::__construct()

Creates Solr object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None

Exemplos

Exemplo #1 SolrObject::__construct() example

<?php
/* ... */
?>

O exemplo acima produzirá algo semelhante a:

...


Destructor

  • « SolrObject::__construct
  • SolrObject::getPropertyNames »
  • PHP Manual
  • SolrObject
  • Destructor

SolrObject::__destruct

(PECL solr >= 0.9.2)

SolrObject::__destruct — Destructor

Descrição

public SolrObject::__destruct()

The destructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None.


Returns an array of all the names of the properties

  • « SolrObject::__destruct
  • SolrObject::offsetExists »
  • PHP Manual
  • SolrObject
  • Returns an array of all the names of the properties

SolrObject::getPropertyNames

(PECL solr >= 0.9.2)

SolrObject::getPropertyNames — Returns an array of all the names of the properties

Descrição

public SolrObject::getPropertyNames(): array

Returns an array of all the names of the properties

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array.


Checks if the property exists

  • « SolrObject::getPropertyNames
  • SolrObject::offsetGet »
  • PHP Manual
  • SolrObject
  • Checks if the property exists

SolrObject::offsetExists

(PECL solr >= 0.9.2)

SolrObject::offsetExists — Checks if the property exists

Descrição

public SolrObject::offsetExists(string $property_name): bool

Checks if the property exists. This is used when the object is treated as an array.

Parâmetros

property_name

The name of the property.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Used to retrieve a property

  • « SolrObject::offsetExists
  • SolrObject::offsetSet »
  • PHP Manual
  • SolrObject
  • Used to retrieve a property

SolrObject::offsetGet

(PECL solr >= 0.9.2)

SolrObject::offsetGet — Used to retrieve a property

Descrição

public SolrObject::offsetGet(string $property_name): mixed

Used to get the value of a property. This is used when the object is treated as an array.

Parâmetros

property_name

Name of the property.

Valor Retornado

Returns the property value.


Sets the value for a property

  • « SolrObject::offsetGet
  • SolrObject::offsetUnset »
  • PHP Manual
  • SolrObject
  • Sets the value for a property

SolrObject::offsetSet

(PECL solr >= 0.9.2)

SolrObject::offsetSet — Sets the value for a property

Descrição

public SolrObject::offsetSet(string $property_name, string $property_value): void

Sets the value for a property. This is used when the object is treated as an array. This object is read-only. This should never be attempted.

Parâmetros

property_name

The name of the property.

property_value

The new value.

Valor Retornado

None.


Unsets the value for the property

  • « SolrObject::offsetSet
  • SolrClient »
  • PHP Manual
  • SolrObject
  • Unsets the value for the property

SolrObject::offsetUnset

(PECL solr >= 0.9.2)

SolrObject::offsetUnset — Unsets the value for the property

Descrição

public SolrObject::offsetUnset(string $property_name): void

Unsets the value for the property. This is used when the object is treated as an array. This object is read-only. This should never be attempted.

Parâmetros

property_name

The name of the property.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SolrObject::offsetUnset() example

<?php
/* ... */
?>

O exemplo acima produzirá algo semelhante a:

...


The SolrClient class

(PECL solr >= 0.9.2)

Introdução

Used to send requests to a Solr server. Currently, cloning and serialization of SolrClient instances is not supported.

Resumo da classe

final class SolrClient {
/* Constantes */
const int SEARCH_SERVLET_TYPE = 1;
const int UPDATE_SERVLET_TYPE = 2;
const int THREADS_SERVLET_TYPE = 4;
const int PING_SERVLET_TYPE = 8;
const int TERMS_SERVLET_TYPE = 16;
const int SYSTEM_SERVLET_TYPE = 32;
const string DEFAULT_SEARCH_SERVLET = select;
const string DEFAULT_UPDATE_SERVLET = update;
const string DEFAULT_THREADS_SERVLET = admin/threads;
const string DEFAULT_PING_SERVLET = admin/ping;
const string DEFAULT_TERMS_SERVLET = terms;
const string DEFAULT_SYSTEM_SERVLET = admin/system;
/* Métodos */
public __construct(array $clientOptions)
public addDocument(SolrInputDocument $doc, bool $overwrite = true, int $commitWithin = 0): SolrUpdateResponse
public addDocuments(array $docs, bool $overwrite = true, int $commitWithin = 0): void
public commit(bool $softCommit = false, bool $waitSearcher = true, bool $expungeDeletes = false): SolrUpdateResponse
public deleteById(string $id): SolrUpdateResponse
public deleteByIds(array $ids): SolrUpdateResponse
public deleteByQueries(array $queries): SolrUpdateResponse
public deleteByQuery(string $query): SolrUpdateResponse
public getById(string $id): SolrQueryResponse
public getByIds(array $ids): SolrQueryResponse
public getDebug(): string
public getOptions(): array
public optimize(int $maxSegments = 1, bool $softCommit = true, bool $waitSearcher = true): SolrUpdateResponse
public ping(): SolrPingResponse
public query(SolrParams $query): SolrQueryResponse
public request(string $raw_request): SolrUpdateResponse
public rollback(): SolrUpdateResponse
public setResponseWriter(string $responseWriter): void
public setServlet(int $type, string $value): bool
public system(): void
public threads(): void
public __destruct()
}

Constantes pré-definidas

SolrClient::SEARCH_SERVLET_TYPE

Used when updating the search servlet.

SolrClient::UPDATE_SERVLET_TYPE

Used when updating the update servlet.

SolrClient::THREADS_SERVLET_TYPE

Used when updating the threads servlet.

SolrClient::PING_SERVLET_TYPE

Used when updating the ping servlet.

SolrClient::TERMS_SERVLET_TYPE

Used when updating the terms servlet.

SolrClient::SYSTEM_SERVLET_TYPE

Used when retrieving system information from the system servlet.

SolrClient::DEFAULT_SEARCH_SERVLET

This is the initial value for the search servlet.

SolrClient::DEFAULT_UPDATE_SERVLET

This is the initial value for the update servlet.

SolrClient::DEFAULT_THREADS_SERVLET

This is the initial value for the threads servlet.

SolrClient::DEFAULT_PING_SERVLET

This is the initial value for the ping servlet.

SolrClient::DEFAULT_TERMS_SERVLET

This is the initial value for the terms servlet used for the TermsComponent

SolrClient::DEFAULT_SYSTEM_SERVLET

This is the initial value for the system servlet used to obtain Solr Server information

Índice

  • SolrClient::addDocument — Adds a document to the index
  • SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index
  • SolrClient::commit — Finalizes all add/deletes made to the index
  • SolrClient::__construct — Constructor for the SolrClient object
  • SolrClient::deleteById — Delete by Id
  • SolrClient::deleteByIds — Deletes by Ids
  • SolrClient::deleteByQueries — Removes all documents matching any of the queries
  • SolrClient::deleteByQuery — Deletes all documents matching the given query
  • SolrClient::__destruct — Destructor for SolrClient
  • SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG)
  • SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
  • SolrClient::getDebug — Returns the debug data for the last connection attempt
  • SolrClient::getOptions — Returns the client options set internally
  • SolrClient::optimize — Defragments the index
  • SolrClient::ping — Checks if Solr server is still up
  • SolrClient::query — Sends a query to the server
  • SolrClient::request — Sends a raw update request
  • SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit
  • SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr
  • SolrClient::setServlet — Changes the specified servlet type to a new value
  • SolrClient::system — Retrieve Solr Server information
  • SolrClient::threads — Checks the threads status


Adds a document to the index

  • « SolrClient
  • SolrClient::addDocuments »
  • PHP Manual
  • SolrClient
  • Adds a document to the index

SolrClient::addDocument

(PECL solr >= 0.9.2)

SolrClient::addDocument — Adds a document to the index

Descrição

public SolrClient::addDocument(SolrInputDocument $doc, bool $overwrite = true, int $commitWithin = 0): SolrUpdateResponse

This method adds a document to the index.

Parâmetros

doc

The SolrInputDocument instance.

overwrite

Whether to overwrite existing document or not. If false there will be duplicates (several documents with the same ID).

Aviso

PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite bool flag.

$allowDups = false is the same as $overwrite = true

commitWithin

Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means disabled.

When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a commit when the oldest add in the buffer is due.

Valor Retornado

Returns a SolrUpdateResponse object or throws an Exception on failure.

Erros/Exceções

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Exemplos

Exemplo #1 SolrClient::addDocument() example

<?php

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

// you will have to commit changes to be written if you didn't use $commitWithin
$client->commit();

print_r($updateResponse->getResponse());

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Exemplo #2 SolrClient::addDocument() example 2

<?php

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

// No need to call commit() because $commitWithin is passed, so Solr Server will auto commit within 10 seconds
$updateResponse = $client->addDocument($doc, false, 10000);

print_r($updateResponse->getResponse());

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Veja Também

  • SolrClient::addDocuments() - Adds a collection of SolrInputDocument instances to the index
  • SolrClient::commit() - Finalizes all add/deletes made to the index


Adds a collection of SolrInputDocument instances to the index

  • « SolrClient::addDocument
  • SolrClient::commit »
  • PHP Manual
  • SolrClient
  • Adds a collection of SolrInputDocument instances to the index

SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index

Descrição

public SolrClient::addDocuments(array $docs, bool $overwrite = true, int $commitWithin = 0): void

Adds a collection of documents to the index.

Parâmetros

docs

An array containing the collection of SolrInputDocument instances. This array must be an actual variable.

overwrite

Whether to overwrite existing documents or not. If false there will be duplicates (several documents with the same ID).

Aviso

PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite bool flag.

$allowDups = false is the same as $overwrite = true

commitWithin

Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means disabled.

When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a commit when the oldest add in the buffer is due.

Valor Retornado

Returns a SolrUpdateResponse object or throws an exception on failure.

Erros/Exceções

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Exemplos

Exemplo #1 SolrClient::addDocuments() example

<?php

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$doc2 = clone $doc;

$doc2->deleteField('id');
$doc2->addField('id', 334456);

$docs = array($doc, $doc2);

$updateResponse = $client->addDocuments($docs);

// no changes will be written to disk unless $commitWithin is passed or SolrClient::commit is called

print_r($updateResponse->getResponse());

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

)

Veja Também

  • SolrClient::addDocument() - Adds a document to the index
  • SolrClient::commit() - Finalizes all add/deletes made to the index


Finalizes all add/deletes made to the index

  • « SolrClient::addDocuments
  • SolrClient::__construct »
  • PHP Manual
  • SolrClient
  • Finalizes all add/deletes made to the index

SolrClient::commit

(PECL solr >= 0.9.2)

SolrClient::commit — Finalizes all add/deletes made to the index

Descrição

public SolrClient::commit(bool $softCommit = false, bool $waitSearcher = true, bool $expungeDeletes = false): SolrUpdateResponse

This method finalizes all add/deletes made to the index.

Parâmetros

softCommit

This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees. (Solr4.0+)

A soft commit is much faster since it only makes index changes visible and does not fsync index files or write a new index descriptor. If the JVM crashes or there is a loss of power, changes that occurred after the last hard commit will be lost. Search collections that have near-real-time requirements (that want index changes to be quickly visible to searches) will want to soft commit often but hard commit less frequently.

waitSearcher

block until a new searcher is opened and registered as the main query searcher, making the changes visible.

expungeDeletes

Merge segments with deletes away. (Solr1.4+)

Valor Retornado

Returns a SolrUpdateResponse object on success or throws an exception on failure.

Erros/Exceções

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Registro de Alterações

Versão | Descrição
PECL solr 1.1.0, 2.0.0 | $maxSegments removed
PECL solr 2.0.0b | API Changed: SolrClient::commit ([ int $maxSegments = 0 [, bool $softCommit = false [, bool $waitSearcher = true[, bool $expungeDeletes = false ]]] )
PECL solr 0.9.2 | Signature: SolrClient::commit ([ int $maxSegments = 1 [, bool $waitFlush = true [, bool $waitSearcher = true ]]] ). $waitFlush: Block until index changes are flushed to disk.

Notas

Aviso

PECL Solr >= 2.0 only supports Solr Server >= 4.0

Veja Também

  • SolrClient::optimize() - Defragments the index
  • SolrClient::rollback() - Rollbacks all add/deletes made to the index since the last commit


Constructor for the SolrClient object

  • « SolrClient::commit
  • SolrClient::deleteById »
  • PHP Manual
  • SolrClient
  • Constructor for the SolrClient object

SolrClient::__construct

(PECL solr >= 0.9.2)

SolrClient::__construct — Constructor for the SolrClient object

Descrição

public SolrClient::__construct(array $clientOptions)

Constructor for the SolrClient object

Parâmetros

clientOptions

This is an array containing one of the following keys :

- secure          (Boolean value indicating whether or not to connect in secure mode)
 - hostname        (The hostname for the Solr server)
 - port            (The port number)
 - path            (The path to solr)
 - wt              (The name of the response writer e.g. xml, json)
 - login           (The username used for HTTP Authentication, if any)
 - password        (The HTTP Authentication password)
 - proxy_host      (The hostname for the proxy server, if any)
 - proxy_port      (The proxy port)
 - proxy_login     (The proxy username)
 - proxy_password  (The proxy password)
 - timeout         (This is maximum time in seconds allowed for the http data transfer operation. Default is 30 seconds)
 - ssl_cert        (File name to a PEM-formatted file containing the private key + private certificate (concatenated in that order) )
 - ssl_key         (File name to a PEM-formatted private key file only)
 - ssl_keypassword (Password for private key)
 - ssl_cainfo      (Name of file holding one or more CA certificates to verify peer with)
 - ssl_capath      (Name of directory holding multiple CA certificates to verify peer with )

 Please note the if the ssl_cert file only contains the private certificate, you have to specify a separate ssl_key file

 The ssl_keypassword option is required if the ssl_cert or ssl_key options are set.

Erros/Exceções

Throws SolrIllegalArgumentException on failure.

Exemplos

Exemplo #1 SolrClient::__construct() example

<?php

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_PATH_TO_SOLR,
'wt' => 'xml',
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

?>

O exemplo acima produzirá algo semelhante a:

Veja Também

  • SolrClient::getOptions() - Returns the client options set internally
    •


Delete by Id

  • « SolrClient::__construct
  • SolrClient::deleteByIds »
  • PHP Manual
  • SolrClient
  • Delete by Id

SolrClient::deleteById

(PECL solr >= 0.9.2)

SolrClient::deleteById — Delete by Id

Descrição

public SolrClient::deleteById(string $id): SolrUpdateResponse

Deletes the document with the specified ID. Where ID is the value of the uniqueKey field declared in the schema

Parâmetros

id

The value of the uniqueKey field declared in the schema

Valor Retornado

Returns a SolrUpdateResponse on success and throws an exception on failure.

Erros/Exceções

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Veja Também

  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Deletes by Ids

  • « SolrClient::deleteById
  • SolrClient::deleteByQueries »
  • PHP Manual
  • SolrClient
  • Deletes by Ids

SolrClient::deleteByIds

(PECL solr >= 0.9.2)

SolrClient::deleteByIds — Deletes by Ids

Descrição

public SolrClient::deleteByIds(array $ids): SolrUpdateResponse

Deletes a collection of documents with the specified set of ids.

Parâmetros

ids

An array of IDs representing the uniqueKey field declared in the schema for each document to be deleted. This must be an actual php variable.

Valor Retornado

Returns a SolrUpdateResponse on success and throws an exception on failure.

Erros/Exceções

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Veja Também

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Removes all documents matching any of the queries

  • « SolrClient::deleteByIds
  • SolrClient::deleteByQuery »
  • PHP Manual
  • SolrClient
  • Removes all documents matching any of the queries

SolrClient::deleteByQueries

(PECL solr >= 0.9.2)

SolrClient::deleteByQueries — Removes all documents matching any of the queries

Descrição

public SolrClient::deleteByQueries(array $queries): SolrUpdateResponse

Removes all documents matching any of the queries

Parâmetros

queries

The array of queries. This must be an actual php variable.

Valor Retornado

Returns a SolrUpdateResponse on success and throws a SolrClientException on failure.

Erros/Exceções

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Veja Também

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query


Deletes all documents matching the given query

  • « SolrClient::deleteByQueries
  • SolrClient::__destruct »
  • PHP Manual
  • SolrClient
  • Deletes all documents matching the given query

SolrClient::deleteByQuery

(PECL solr >= 0.9.2)

SolrClient::deleteByQuery — Deletes all documents matching the given query

Descrição

public SolrClient::deleteByQuery(string $query): SolrUpdateResponse

Deletes all documents matching the given query.

Parâmetros

query

The query

Valor Retornado

Returns a SolrUpdateResponse on success and throws an exception on failure.

Erros/Exceções

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Exemplos

Exemplo #1 SolrQuery::deleteByQuery() example

<?php

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

//This will erase the entire index
$client->deleteByQuery("*:*");
$client->commit();

?>

Veja Também

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Destructor for SolrClient

  • « SolrClient::deleteByQuery
  • SolrClient::getById »
  • PHP Manual
  • SolrClient
  • Destructor for SolrClient

SolrClient::__destruct

(PECL solr >= 0.9.2)

SolrClient::__destruct — Destructor for SolrClient

Descrição

public SolrClient::__destruct()

Destructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Destructor for SolrClient

Veja Também

  • SolrClient::__construct() - Constructor for the SolrClient object


Get Document By Id. Utilizes Solr Realtime Get (RTG)

  • « SolrClient::__destruct
  • SolrClient::getByIds »
  • PHP Manual
  • SolrClient
  • Get Document By Id. Utilizes Solr Realtime Get (RTG)

SolrClient::getById

(PECL solr >= 2.2.0)

SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG)

Descrição

public SolrClient::getById(string $id): SolrQueryResponse

Get Document By Id. Utilizes Solr Realtime Get (RTG).

Parâmetros

id

Document ID

Valor Retornado

SolrQueryResponse

Exemplos

Exemplo #1 SolrClient::getById() example

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getById('GB18030TEST');
print_r($response->getResponse());

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [doc] => SolrObject Object
        (
            [id] => GB18030TEST
            [name] => Array
                (
                    [0] => Test with some GB18030 encoded characters
                )

            [features] => Array
                (
                    [0] => No accents here
                    [1] => ??????
                    [2] => This is a feature (translated)
                    [3] => ?????????
                    [4] => This document is very shiny (translated)
                )

            [price] => Array
                (
                    [0] => 0
                )

            [inStock] => Array
                (
                    [0] => 1
                )

            [_version_] => 1510294336239042560
        )

)

Veja Também

  • SolrClient::getByIds() - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)


Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)

  • « SolrClient::getById
  • SolrClient::getDebug »
  • PHP Manual
  • SolrClient
  • Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)

SolrClient::getByIds

(PECL solr >= 2.2.0)

SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)

Descrição

public SolrClient::getByIds(array $ids): SolrQueryResponse

Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

Parâmetros

ids

Document ids

Valor Retornado

SolrQueryResponse

Exemplos

Exemplo #1 SolrClient::getByIds() example

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getByIds(['GB18030TEST', '6H500F0']);

print_r($response->getResponse());

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [response] => SolrObject Object
        (
            [numFound] => 2
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => GB18030TEST
                            [name] => Array
                                (
                                    [0] => Test with some GB18030 encoded characters
                                )

                            [features] => Array
                                (
                                    [0] => No accents here
                                    [1] => ??????
                                    [2] => This is a feature (translated)
                                    [3] => ?????????
                                    [4] => This document is very shiny (translated)
                                )

                            [price] => Array
                                (
                                    [0] => 0
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [_version_] => 1510294336239042560
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                )

        )

)

Veja Também

  • SolrClient::getById() - Get Document By Id. Utilizes Solr Realtime Get (RTG)


Returns the debug data for the last connection attempt

  • « SolrClient::getByIds
  • SolrClient::getOptions »
  • PHP Manual
  • SolrClient
  • Returns the debug data for the last connection attempt

SolrClient::getDebug

(PECL solr >= 0.9.7)

SolrClient::getDebug — Returns the debug data for the last connection attempt

Descrição

public SolrClient::getDebug(): string

Returns the debug data for the last connection attempt

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string on success and null if there is nothing to return.


Returns the client options set internally

  • « SolrClient::getDebug
  • SolrClient::optimize »
  • PHP Manual
  • SolrClient
  • Returns the client options set internally

SolrClient::getOptions

(PECL solr >= 0.9.6)

SolrClient::getOptions — Returns the client options set internally

Descrição

public SolrClient::getOptions(): array

Returns the client options set internally. Very useful for debugging. The values returned are readonly and can only be set when the object is instantiated.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array containing all the options for the SolrClient object set internally.

Veja Também

  • SolrClient::__construct() - Constructor for the SolrClient object


Defragments the index

  • « SolrClient::getOptions
  • SolrClient::ping »
  • PHP Manual
  • SolrClient
  • Defragments the index

SolrClient::optimize

(PECL solr >= 0.9.2)

SolrClient::optimize — Defragments the index

Descrição

public SolrClient::optimize(int $maxSegments = 1, bool $softCommit = true, bool $waitSearcher = true): SolrUpdateResponse

Defragments the index for faster search performance.

Parâmetros

maxSegments

Optimizes down to at most this number of segments. Since Solr 1.3

softCommit

This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees. (Solr4.0+)

waitSearcher

Block until a new searcher is opened and registered as the main query searcher, making the changes visible.

Valor Retornado

Returns a SolrUpdateResponse on success or throws an exception on failure.

Erros/Exceções

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Notas

Aviso

PECL Solr >= 2.0 only supports Solr Server >= 4.0

Prior to PECL Solr 2.0 this method used to accept these arguments "int $maxSegments, bool $waitFlush, bool $waitSearcher".

Veja Também

  • SolrClient::commit() - Finalizes all add/deletes made to the index
  • SolrClient::rollback() - Rollbacks all add/deletes made to the index since the last commit


Checks if Solr server is still up

  • « SolrClient::optimize
  • SolrClient::query »
  • PHP Manual
  • SolrClient
  • Checks if Solr server is still up

SolrClient::ping

(PECL solr >= 0.9.2)

SolrClient::ping — Checks if Solr server is still up

Descrição

public SolrClient::ping(): SolrPingResponse

Checks if the Solr server is still alive. Sends a HEAD request to the Apache Solr server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a SolrPingResponse object on success and throws an exception on failure.

Erros/Exceções

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the request.

Exemplos

Exemplo #1 SolrClient::ping() example

<?php
$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$pingresponse = $client->ping();

?>

O exemplo acima produzirá algo semelhante a:


Sends a query to the server

  • « SolrClient::ping
  • SolrClient::request »
  • PHP Manual
  • SolrClient
  • Sends a query to the server

SolrClient::query

(PECL solr >= 0.9.2)

SolrClient::query — Sends a query to the server

Descrição

public SolrClient::query(SolrParams $query): SolrQueryResponse

Sends a query to the server.

Parâmetros

query

A SolrParams object. It is recommended to use SolrQuery for advanced queries.

Valor Retornado

Returns a SolrQueryResponse object on success and throws an exception on failure.

Erros/Exceções

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the query.

Exemplos

Exemplo #1 SolrClient::query() example

<?php

$options = array
(
'hostname' => 'localhost',
'login' => 'username',
'password' => 'password',
'port' => '8983',
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 3
            [params] => SolrObject Object
                (
                    [fl] => cat,features,id,timestamp
                    [indent] => on
                    [start] => 0
                    [q] => lucene
                    [wt] => xml
                    [version] => 2.2
                    [rows] => 50
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 1
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SOLR1000
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: héllo (hello with an accent over the e)
                                )

                        )

                )

        )

)


Sends a raw update request

  • « SolrClient::query
  • SolrClient::rollback »
  • PHP Manual
  • SolrClient
  • Sends a raw update request

SolrClient::request

(PECL solr >= 0.9.2)

SolrClient::request — Sends a raw update request

Descrição

public SolrClient::request(string $raw_request): SolrUpdateResponse

Sends a raw XML update request to the server

Parâmetros

raw_request

An XML string with the raw request to the server.

Valor Retornado

Returns a SolrUpdateResponse on success. Throws an exception on failure.

Erros/Exceções

Throws SolrIllegalArgumentException if raw_request was an empty string

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the query.

Exemplos

Exemplo #1 SolrClient::request() example

<?php
$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$update_response = $client->request("<commit/>");

$response = $update_response->getResponse();

print_r($response);
?>

O exemplo acima produzirá algo semelhante a:

...


Rollbacks all add/deletes made to the index since the last commit

  • « SolrClient::request
  • SolrClient::setResponseWriter »
  • PHP Manual
  • SolrClient
  • Rollbacks all add/deletes made to the index since the last commit

SolrClient::rollback

(PECL solr >= 0.9.2)

SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit

Descrição

public SolrClient::rollback(): SolrUpdateResponse

Rollbacks all add/deletes made to the index since the last commit. It neither calls any event listeners nor creates a new searcher.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a SolrUpdateResponse on success or throws a SolrClientException on failure.

Veja Também

  • SolrClient::commit() - Finalizes all add/deletes made to the index
  • SolrClient::optimize() - Defragments the index


Sets the response writer used to prepare the response from Solr

  • « SolrClient::rollback
  • SolrClient::setServlet »
  • PHP Manual
  • SolrClient
  • Sets the response writer used to prepare the response from Solr

SolrClient::setResponseWriter

(PECL solr >= 0.9.11)

SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr

Descrição

public SolrClient::setResponseWriter(string $responseWriter): void

Sets the response writer used to prepare the response from Solr

Parâmetros

responseWriter

One of the following:

  • json
  • phps
  • xml

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 SolrClient::setResponseWriter() example

<?php

// This is my custom class for objects
class SolrClass
{
public $_properties = array();

public function __get($property_name) {

if (property_exists($this, $property_name)) {

return $this->$property_name;

} else if (isset($_properties[$property_name])) {

return $_properties[$property_name];
}

return null;
}
}

$options = array
(
'hostname' => 'localhost',
'port' => 8983,
'path' => '/solr/core1'
);

$client = new SolrClient($options);

$client->setResponseWriter("json");

//$response = $client->ping();

$query = new SolrQuery();

$query->setQuery("*:*");

$query->set("objectClassName", "SolrClass");

$query->set("objectPropertiesStorageMode", 1); // 0 for independent properties, 1 for combined

try
{

$response = $client->query($query);

$resp = $response->getResponse();

print_r($response);

print_r($resp);

} catch (Exception $e) {

print_r($e);

}

?>


Changes the specified servlet type to a new value

  • « SolrClient::setResponseWriter
  • SolrClient::system »
  • PHP Manual
  • SolrClient
  • Changes the specified servlet type to a new value

SolrClient::setServlet

(PECL solr >= 0.9.2)

SolrClient::setServlet — Changes the specified servlet type to a new value

Descrição

public SolrClient::setServlet(int $type, string $value): bool

Changes the specified servlet type to a new value

Parâmetros

type

One of the following :

- SolrClient::SEARCH_SERVLET_TYPE
 - SolrClient::UPDATE_SERVLET_TYPE
 - SolrClient::THREADS_SERVLET_TYPE
 - SolrClient::PING_SERVLET_TYPE
 - SolrClient::TERMS_SERVLET_TYPE

value

The new value for the servlet

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Retrieve Solr Server information

  • « SolrClient::setServlet
  • SolrClient::threads »
  • PHP Manual
  • SolrClient
  • Retrieve Solr Server information

SolrClient::system

(PECL solr >= 2.0.0)

SolrClient::system — Retrieve Solr Server information

Descrição

public SolrClient::system(): void

Retrieve Solr Server information

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a SolrGenericResponse object on success.

Erros/Exceções

Emits SolrClientException if the client failed, or there was a connection issue.

Emits SolrServerException if the Solr Server failed to satisfy the query.


Checks the threads status

  • « SolrClient::system
  • SolrResponse »
  • PHP Manual
  • SolrClient
  • Checks the threads status

SolrClient::threads

(PECL solr >= 0.9.2)

SolrClient::threads — Checks the threads status

Descrição

public SolrClient::threads(): void

Checks the threads status

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a SolrGenericResponse object.

Erros/Exceções

Throws SolrClientException if the client failed, or there was a connection issue.

throws SolrServerException if the Solr Server failed to process the request.


The SolrResponse class

(PECL solr >= 0.9.2)

Introdução

Represents a response from the Solr server.

Resumo da classe

abstract class SolrResponse {
/* Constantes */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Propriedades */
protected int $http_status;
protected int $parser_mode;
protected bool $success;
protected string $http_status_message;
protected string $http_request_url;
protected string $http_raw_request_headers;
protected string $http_raw_request;
protected string $http_raw_response_headers;
protected string $http_raw_response;
protected string $http_digested_response;
/* Métodos */
public getDigestedResponse(): string
public getHttpStatus(): int
public getHttpStatusMessage(): string
public getRawRequest(): string
public getRawRequestHeaders(): string
public getRawResponse(): string
public getRawResponseHeaders(): string
public getRequestUrl(): string
public getResponse(): SolrObject
public setParseMode(int $parser_mode = 0): bool
public success(): bool
}

Propriedades

http_status

The http status of the response.

parser_mode

Whether to parse the solr documents as SolrObject or SolrDocument instances.

success

Was there an error during the request

http_status_message

Detailed message on http status

http_request_url

The request URL

http_raw_request_headers

A string of raw headers sent during the request.

http_raw_request

The raw request sent to the server

http_raw_response_headers

Response headers from the Solr server.

http_raw_response

The response message from the server.

http_digested_response

The response in PHP serialized format.

Constantes pré-definidas

SolrResponse Class Constants

SolrResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Índice

  • SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data
  • SolrResponse::getHttpStatus — Returns the HTTP status of the response
  • SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status
  • SolrResponse::getRawRequest — Returns the raw request sent to the Solr server
  • SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server
  • SolrResponse::getRawResponse — Returns the raw response from the server
  • SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server
  • SolrResponse::getRequestUrl — Returns the full URL the request was sent to
  • SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server
  • SolrResponse::setParseMode — Sets the parse mode
  • SolrResponse::success — Was the request a success


Returns the XML response as serialized PHP data

  • « SolrResponse
  • SolrResponse::getHttpStatus »
  • PHP Manual
  • SolrResponse
  • Returns the XML response as serialized PHP data

SolrResponse::getDigestedResponse

(PECL solr >= 0.9.2)

SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data

Descrição

public SolrResponse::getDigestedResponse(): string

Returns the XML response as serialized PHP data

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the XML response as serialized PHP data


Returns the HTTP status of the response

  • « SolrResponse::getDigestedResponse
  • SolrResponse::getHttpStatusMessage »
  • PHP Manual
  • SolrResponse
  • Returns the HTTP status of the response

SolrResponse::getHttpStatus

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatus — Returns the HTTP status of the response

Descrição

public SolrResponse::getHttpStatus(): int

Returns the HTTP status of the response.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the HTTP status of the response.


Returns more details on the HTTP status

  • « SolrResponse::getHttpStatus
  • SolrResponse::getRawRequest »
  • PHP Manual
  • SolrResponse
  • Returns more details on the HTTP status

SolrResponse::getHttpStatusMessage

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status

Descrição

public SolrResponse::getHttpStatusMessage(): string

Returns more details on the HTTP status.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns more details on the HTTP status


Returns the raw request sent to the Solr server

  • « SolrResponse::getHttpStatusMessage
  • SolrResponse::getRawRequestHeaders »
  • PHP Manual
  • SolrResponse
  • Returns the raw request sent to the Solr server

SolrResponse::getRawRequest

(PECL solr >= 0.9.2)

SolrResponse::getRawRequest — Returns the raw request sent to the Solr server

Descrição

public SolrResponse::getRawRequest(): string

Returns the raw request sent to the Solr server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the raw request sent to the Solr server


Returns the raw request headers sent to the Solr server

  • « SolrResponse::getRawRequest
  • SolrResponse::getRawResponse »
  • PHP Manual
  • SolrResponse
  • Returns the raw request headers sent to the Solr server

SolrResponse::getRawRequestHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server

Descrição

public SolrResponse::getRawRequestHeaders(): string

Returns the raw request headers sent to the Solr server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the raw request headers sent to the Solr server


Returns the raw response from the server

  • « SolrResponse::getRawRequestHeaders
  • SolrResponse::getRawResponseHeaders »
  • PHP Manual
  • SolrResponse
  • Returns the raw response from the server

SolrResponse::getRawResponse

(PECL solr >= 0.9.2)

SolrResponse::getRawResponse — Returns the raw response from the server

Descrição

public SolrResponse::getRawResponse(): string

Returns the raw response from the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the raw response from the server.


Returns the raw response headers from the server

  • « SolrResponse::getRawResponse
  • SolrResponse::getRequestUrl »
  • PHP Manual
  • SolrResponse
  • Returns the raw response headers from the server

SolrResponse::getRawResponseHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server

Descrição

public SolrResponse::getRawResponseHeaders(): string

Returns the raw response headers from the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the raw response headers from the server.


Returns the full URL the request was sent to

  • « SolrResponse::getRawResponseHeaders
  • SolrResponse::getResponse »
  • PHP Manual
  • SolrResponse
  • Returns the full URL the request was sent to

SolrResponse::getRequestUrl

(PECL solr >= 0.9.2)

SolrResponse::getRequestUrl — Returns the full URL the request was sent to

Descrição

public SolrResponse::getRequestUrl(): string

Returns the full URL the request was sent to.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the full URL the request was sent to


Returns a SolrObject representing the XML response from the server

  • « SolrResponse::getRequestUrl
  • SolrResponse::setParseMode »
  • PHP Manual
  • SolrResponse
  • Returns a SolrObject representing the XML response from the server

SolrResponse::getResponse

(PECL solr >= 0.9.2)

SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server

Descrição

public SolrResponse::getResponse(): SolrObject

Returns a SolrObject representing the XML response from the server.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a SolrObject representing the XML response from the server


Sets the parse mode

  • « SolrResponse::getResponse
  • SolrResponse::success »
  • PHP Manual
  • SolrResponse
  • Sets the parse mode

SolrResponse::setParseMode

(PECL solr >= 0.9.2)

SolrResponse::setParseMode — Sets the parse mode

Descrição

public SolrResponse::setParseMode(int $parser_mode = 0): bool

Sets the parse mode.

Parâmetros

parser_mode

SolrResponse::PARSE_SOLR_DOC parses documents in SolrDocument instances. SolrResponse::PARSE_SOLR_OBJ parses document into SolrObjects.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Was the request a success

  • « SolrResponse::setParseMode
  • SolrQueryResponse »
  • PHP Manual
  • SolrResponse
  • Was the request a success

SolrResponse::success

(PECL solr >= 0.9.2)

SolrResponse::success — Was the request a success

Descrição

public SolrResponse::success(): bool

Used to check if the request to the server was successful.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if it was successful and false if it was not.


The SolrQueryResponse class

(PECL solr >= 0.9.2)

Introdução

Represents a response to a query request.

Resumo da classe

final class SolrQueryResponse extends SolrResponse {
/* Constantes */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Propriedades herdadas */
const int SolrResponse::PARSE_SOLR_OBJ = 0;
const int SolrResponse::PARSE_SOLR_DOC = 1;
protected int $http_status;
protected int $parser_mode;
protected bool $success;
protected string $http_status_message;
protected string $http_request_url;
protected string $http_raw_request_headers;
protected string $http_raw_request;
protected string $http_raw_response_headers;
protected string $http_raw_response;
protected string $http_digested_response;
/* Métodos */
public __construct()
public __destruct()
/* Métodos herdados */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

Constantes pré-definidas

SolrQueryResponse Class constants

SolrQueryResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrQueryResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Índice

  • SolrQueryResponse::__construct — Constructor
  • SolrQueryResponse::__destruct — Destructor


Constructor

  • « SolrQueryResponse
  • SolrQueryResponse::__destruct »
  • PHP Manual
  • SolrQueryResponse
  • Constructor

SolrQueryResponse::__construct

(PECL solr >= 0.9.2)

SolrQueryResponse::__construct — Constructor

Descrição

public SolrQueryResponse::__construct()

Constructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None


Destructor

  • « SolrQueryResponse::__construct
  • SolrUpdateResponse »
  • PHP Manual
  • SolrQueryResponse
  • Destructor

SolrQueryResponse::__destruct

(PECL solr >= 0.9.2)

SolrQueryResponse::__destruct — Destructor

Descrição

public SolrQueryResponse::__destruct()

Destructor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None


The SolrUpdateResponse class

(PECL solr >= 0.9.2)

Introdução

Represents a response to an update request.

Resumo da classe

final class SolrUpdateResponse extends SolrResponse {
/* Constantes */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Propriedades herdadas */
const int SolrResponse::PARSE_SOLR_OBJ = 0;
const int SolrResponse::PARSE_SOLR_DOC = 1;
protected int $http_status;
protected int $parser_mode;
protected bool $success;
protected string $http_status_message;
protected string $http_request_url;
protected string $http_raw_request_headers;
protected string $http_raw_request;
protected string $http_raw_response_headers;
protected string $http_raw_response;
protected string $http_digested_response;
/* Métodos */
public __construct()
public __destruct()
/* Métodos herdados */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

Constantes pré-definidas

SolrUpdateResponse Class Constants

SolrUpdateResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrUpdateResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Índice

  • SolrUpdateResponse::__construct — Constructor
  • SolrUpdateResponse::__destruct — Destructor


Constructor

  • « SolrUpdateResponse
  • SolrUpdateResponse::__destruct »
  • PHP Manual
  • SolrUpdateResponse
  • Constructor

SolrUpdateResponse::__construct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__construct — Constructor

Descrição

public SolrUpdateResponse::__construct()

Constructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None


Destructor

  • « SolrUpdateResponse::__construct
  • SolrPingResponse »
  • PHP Manual
  • SolrUpdateResponse
  • Destructor

SolrUpdateResponse::__destruct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__destruct — Destructor

Descrição

public SolrUpdateResponse::__destruct()

Destructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None


The SolrPingResponse class

(PECL solr >= 0.9.2)

Introdução

Represents a response to a ping request to the server

Resumo da classe

final class SolrPingResponse extends SolrResponse {
/* Constantes */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Propriedades */
/* Métodos */
public __construct()
public getResponse(): string
public __destruct()
/* Métodos herdados */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

Propriedades

http_status

The http status of the response.

parser_mode

Whether to parse the solr documents as SolrObject or SolrDocument instances.

success

Was there an error during the request

http_status_message

Detailed message on http status

http_request_url

The request URL

http_raw_request_headers

A string of raw headers sent during the request

http_raw_request

The raw request sent to the server

http_raw_response_headers

Response headers from the Solr server

http_raw_response

The response message from the server

http_digested_response

The response in PHP serialized format.

Constantes pré-definidas

SolrPingResponse Class Constants

SolrPingResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrPingResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Índice

  • SolrPingResponse::__construct — Constructor
  • SolrPingResponse::__destruct — Destructor
  • SolrPingResponse::getResponse — Returns the response from the server


Constructor

  • « SolrPingResponse
  • SolrPingResponse::__destruct »
  • PHP Manual
  • SolrPingResponse
  • Constructor

SolrPingResponse::__construct

(PECL solr >= 0.9.2)

SolrPingResponse::__construct — Constructor

Descrição

public SolrPingResponse::__construct()

Constructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None


Destructor

  • « SolrPingResponse::__construct
  • SolrPingResponse::getResponse »
  • PHP Manual
  • SolrPingResponse
  • Destructor

SolrPingResponse::__destruct

(PECL solr >= 0.9.2)

SolrPingResponse::__destruct — Destructor

Descrição

public SolrPingResponse::__destruct()

Destructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None


Returns the response from the server

  • « SolrPingResponse::__destruct
  • SolrGenericResponse »
  • PHP Manual
  • SolrPingResponse
  • Returns the response from the server

SolrPingResponse::getResponse

(PECL solr >= 0.9.2)

SolrPingResponse::getResponse — Returns the response from the server

Descrição

public SolrPingResponse::getResponse(): string

Returns the response from the server. This should be empty because the request as a HEAD request.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an empty string.


The SolrGenericResponse class

(PECL solr >= 0.9.2)

Introdução

Represents a response from the solr server.

Resumo da classe

final class SolrGenericResponse extends SolrResponse {
/* Constantes */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Propriedades herdadas */
const int SolrResponse::PARSE_SOLR_OBJ = 0;
const int SolrResponse::PARSE_SOLR_DOC = 1;
protected int $http_status;
protected int $parser_mode;
protected bool $success;
protected string $http_status_message;
protected string $http_request_url;
protected string $http_raw_request_headers;
protected string $http_raw_request;
protected string $http_raw_response_headers;
protected string $http_raw_response;
protected string $http_digested_response;
/* Métodos */
public __construct()
public __destruct()
/* Métodos herdados */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

Constantes pré-definidas

SolrGenericResponse Class constants

SolrGenericResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrGenericResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Índice

  • SolrGenericResponse::__construct — Constructor
  • SolrGenericResponse::__destruct — Destructor


Constructor

  • « SolrGenericResponse
  • SolrGenericResponse::__destruct »
  • PHP Manual
  • SolrGenericResponse
  • Constructor

SolrGenericResponse::__construct

(PECL solr >= 0.9.2)

SolrGenericResponse::__construct — Constructor

Descrição

public SolrGenericResponse::__construct()

Constructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None


Destructor

  • « SolrGenericResponse::__construct
  • SolrParams »
  • PHP Manual
  • SolrGenericResponse
  • Destructor

SolrGenericResponse::__destruct

(PECL solr >= 0.9.2)

SolrGenericResponse::__destruct — Destructor

Descrição

public SolrGenericResponse::__destruct()

Destructor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None


The SolrParams class

(PECL solr >= 0.9.2)

Introdução

Represents a collection of name-value pairs sent to the Solr server during a request.

Resumo da classe

abstract class SolrParams implements Serializable {
/* Métodos */
final public add(string $name, string $value): SolrParams
public addParam(string $name, string $value): SolrParams
final public get(string $param_name): mixed
final public getParam(string $param_name = ?): mixed
final public getParams(): array
final public getPreparedParams(): array
final public serialize(): string
final public set(string $name, string $value): void
public setParam(string $name, string $value): SolrParams
final public toString(bool $url_encode = false): string
final public unserialize(string $serialized): void
}

Índice

  • SolrParams::add — Sinônimo de SolrParams::addParam
  • SolrParams::addParam — Adds a parameter to the object
  • SolrParams::get — Sinônimo de SolrParams::getParam
  • SolrParams::getParam — Returns a parameter value
  • SolrParams::getParams — Returns an array of non URL-encoded parameters
  • SolrParams::getPreparedParams — Returns an array of URL-encoded parameters
  • SolrParams::serialize — Used for custom serialization
  • SolrParams::set — Sinônimo de SolrParams::setParam
  • SolrParams::setParam — Sets the parameter to the specified value
  • SolrParams::toString — Returns all the name-value pair parameters in the object
  • SolrParams::unserialize — Used for custom serialization


Sinônimo de SolrParams::addParam

  • « SolrParams
  • SolrParams::addParam »
  • PHP Manual
  • SolrParams
  • Sinônimo de SolrParams::addParam

SolrParams::add

(PECL solr >= 0.9.2)

SolrParams::add — Sinônimo de SolrParams::addParam()

Descrição

final public SolrParams::add(string $name, string $value): SolrParams

This is an alias for SolrParams::addParam

Parâmetros

name

The name of the parameter

value

The value of the parameter

Valor Retornado

Returns a SolrParams instance on success


Adds a parameter to the object

  • « SolrParams::add
  • SolrParams::get »
  • PHP Manual
  • SolrParams
  • Adds a parameter to the object

SolrParams::addParam

(PECL solr >= 0.9.2)

SolrParams::addParam — Adds a parameter to the object

Descrição

public SolrParams::addParam(string $name, string $value): SolrParams

Adds a parameter to the object. This is used for parameters that can be specified multiple times.

Parâmetros

name

Name of parameter

value

Value of parameter

Valor Retornado

Returns a SolrParam object on success and false on failure.


Sinônimo de SolrParams::getParam

  • « SolrParams::addParam
  • SolrParams::getParam »
  • PHP Manual
  • SolrParams
  • Sinônimo de SolrParams::getParam

SolrParams::get

(PECL solr >= 0.9.2)

SolrParams::get — Sinônimo de SolrParams::getParam()

Descrição

final public SolrParams::get(string $param_name): mixed

This is an alias for SolrParams::getParam

Parâmetros

param_name

Then name of the parameter

Valor Retornado

Returns an array or string depending on the type of parameter


Returns a parameter value

  • « SolrParams::get
  • SolrParams::getParams »
  • PHP Manual
  • SolrParams
  • Returns a parameter value

SolrParams::getParam

(PECL solr >= 0.9.2)

SolrParams::getParam — Returns a parameter value

Descrição

final public SolrParams::getParam(string $param_name = ?): mixed

Returns a parameter with name param_name

Parâmetros

param_name

The name of the parameter

Valor Retornado

Returns a string or an array depending on the type of the parameter


Returns an array of non URL-encoded parameters

  • « SolrParams::getParam
  • SolrParams::getPreparedParams »
  • PHP Manual
  • SolrParams
  • Returns an array of non URL-encoded parameters

SolrParams::getParams

(PECL solr >= 0.9.2)

SolrParams::getParams — Returns an array of non URL-encoded parameters

Descrição

final public SolrParams::getParams(): array

Returns an array of non URL-encoded parameters

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of non URL-encoded parameters


Returns an array of URL-encoded parameters

  • « SolrParams::getParams
  • SolrParams::serialize »
  • PHP Manual
  • SolrParams
  • Returns an array of URL-encoded parameters

SolrParams::getPreparedParams

(PECL solr >= 0.9.2)

SolrParams::getPreparedParams — Returns an array of URL-encoded parameters

Descrição

final public SolrParams::getPreparedParams(): array

Returns an array on URL-encoded parameters

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on URL-encoded parameters


Used for custom serialization

  • « SolrParams::getPreparedParams
  • SolrParams::set »
  • PHP Manual
  • SolrParams
  • Used for custom serialization

SolrParams::serialize

(PECL solr >= 0.9.2)

SolrParams::serialize — Used for custom serialization

Descrição

final public SolrParams::serialize(): string

Used for custom serialization

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Used for custom serialization


Sinônimo de SolrParams::setParam

  • « SolrParams::serialize
  • SolrParams::setParam »
  • PHP Manual
  • SolrParams
  • Sinônimo de SolrParams::setParam

SolrParams::set

(PECL solr >= 0.9.2)

SolrParams::set — Sinônimo de SolrParams::setParam()

Descrição

final public SolrParams::set(string $name, string $value): void

An alias of SolrParams::setParam

Parâmetros

name

Then name of the parameter

value

The parameter value

Valor Retornado

Returns an instance of the SolrParams object on success


Sets the parameter to the specified value

  • « SolrParams::set
  • SolrParams::toString »
  • PHP Manual
  • SolrParams
  • Sets the parameter to the specified value

SolrParams::setParam

(PECL solr >= 0.9.2)

SolrParams::setParam — Sets the parameter to the specified value

Descrição

public SolrParams::setParam(string $name, string $value): SolrParams

Sets the query parameter to the specified value. This is used for parameters that can only be specified once. Subsequent calls with the same parameter name will override the existing value

Parâmetros

name

Name of the parameter

value

Value of the parameter

Valor Retornado

Returns a SolrParam object on success and false on value.

Exemplos

Exemplo #1 SolrParams::setParam() example

<?php

$param = new SolrParams();

$param->setParam('q', 'solr')->setParam('rows', 2);

?>

O exemplo acima produzirá algo semelhante a:


Returns all the name-value pair parameters in the object

  • « SolrParams::setParam
  • SolrParams::unserialize »
  • PHP Manual
  • SolrParams
  • Returns all the name-value pair parameters in the object

SolrParams::toString

(PECL solr >= 0.9.2)

SolrParams::toString — Returns all the name-value pair parameters in the object

Descrição

final public SolrParams::toString(bool $url_encode = false): string

Returns all the name-value pair parameters in the object

Parâmetros

url_encode

Whether to return URL-encoded values

Valor Retornado

Returns a string on success and false on failure.


Used for custom serialization

  • « SolrParams::toString
  • SolrModifiableParams »
  • PHP Manual
  • SolrParams
  • Used for custom serialization

SolrParams::unserialize

(PECL solr >= 0.9.2)

SolrParams::unserialize — Used for custom serialization

Descrição

final public SolrParams::unserialize(string $serialized): void

Used for custom serialization

Parâmetros

serialized

The serialized representation of the object

Valor Retornado

None


The SolrModifiableParams class

(PECL solr >= 0.9.2)

Introdução

Represents a collection of name-value pairs sent to the Solr server during a request.

Resumo da classe

class SolrModifiableParams extends SolrParams implements Serializable {
/* Métodos */
public __construct()
public __destruct()
/* Métodos herdados */
final public SolrParams::add(string $name, string $value): SolrParams
public SolrParams::addParam(string $name, string $value): SolrParams
final public SolrParams::get(string $param_name): mixed
final public SolrParams::getParam(string $param_name = ?): mixed
final public SolrParams::getParams(): array
final public SolrParams::getPreparedParams(): array
final public SolrParams::serialize(): string
final public SolrParams::set(string $name, string $value): void
public SolrParams::setParam(string $name, string $value): SolrParams
final public SolrParams::toString(bool $url_encode = false): string
final public SolrParams::unserialize(string $serialized): void
}

Índice

  • SolrModifiableParams::__construct — Constructor
  • SolrModifiableParams::__destruct — Destructor


Constructor

  • « SolrModifiableParams
  • SolrModifiableParams::__destruct »
  • PHP Manual
  • SolrModifiableParams
  • Constructor

SolrModifiableParams::__construct

(PECL solr >= 0.9.2)

SolrModifiableParams::__construct — Constructor

Descrição

public SolrModifiableParams::__construct()

Constructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None


Destructor

  • « SolrModifiableParams::__construct
  • SolrQuery »
  • PHP Manual
  • SolrModifiableParams
  • Destructor

SolrModifiableParams::__destruct

(PECL solr >= 0.9.2)

SolrModifiableParams::__destruct — Destructor

Descrição

public SolrModifiableParams::__destruct()

Destructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None


The SolrQuery class

(PECL solr >= 0.9.2)

Introdução

Represents a collection of name-value pairs sent to the Solr server during a request.

Resumo da classe

class SolrQuery extends SolrModifiableParams implements Serializable {
/* Constantes */
const int ORDER_ASC = 0;
const int ORDER_DESC = 1;
const int FACET_SORT_INDEX = 0;
const int FACET_SORT_COUNT = 1;
const int TERMS_SORT_INDEX = 0;
const int TERMS_SORT_COUNT = 1;
/* Propriedades */
/* Métodos */
public __construct(string $q = ?)
public addExpandFilterQuery(string $fq): SolrQuery
public addExpandSortField(string $field, string $order = ?): SolrQuery
public addFacetDateField(string $dateField): SolrQuery
public addFacetDateOther(string $value, string $field_override = ?): SolrQuery
public addFacetField(string $field): SolrQuery
public addFacetQuery(string $facetQuery): SolrQuery
public addField(string $field): SolrQuery
public addFilterQuery(string $fq): SolrQuery
public addGroupField(string $value): SolrQuery
public addGroupFunction(string $value): SolrQuery
public addGroupQuery(string $value): SolrQuery
public addGroupSortField(string $field, int $order = ?): SolrQuery
public addHighlightField(string $field): SolrQuery
public addMltField(string $field): SolrQuery
public addMltQueryField(string $field, float $boost): SolrQuery
public addSortField(string $field, int $order = SolrQuery::ORDER_DESC): SolrQuery
public addStatsFacet(string $field): SolrQuery
public addStatsField(string $field): SolrQuery
public collapse(SolrCollapseFunction $collapseFunction): SolrQuery
public getExpand(): bool
public getExpandFilterQueries(): array
public getExpandQuery(): array
public getExpandRows(): int
public getExpandSortFields(): array
public getFacet(): bool
public getFacetDateEnd(string $field_override = ?): string
public getFacetDateFields(): array
public getFacetDateGap(string $field_override = ?): string
public getFacetDateHardEnd(string $field_override = ?): string
public getFacetDateOther(string $field_override = ?): array
public getFacetDateStart(string $field_override = ?): string
public getFacetFields(): array
public getFacetLimit(string $field_override = ?): int
public getFacetMethod(string $field_override = ?): string
public getFacetMinCount(string $field_override = ?): int
public getFacetMissing(string $field_override = ?): bool
public getFacetOffset(string $field_override = ?): int
public getFacetPrefix(string $field_override = ?): string
public getFacetQueries(): array
public getFacetSort(string $field_override = ?): int
public getFields(): array
public getFilterQueries(): array
public getGroup(): bool
public getGroupCachePercent(): int
public getGroupFacet(): bool
public getGroupFields(): array
public getGroupFormat(): string
public getGroupFunctions(): array
public getGroupLimit(): int
public getGroupMain(): bool
public getGroupNGroups(): bool
public getGroupOffset(): int
public getGroupQueries(): array
public getGroupSortFields(): array
public getGroupTruncate(): bool
public getHighlight(): bool
public getHighlightAlternateField(string $field_override = ?): string
public getHighlightFields(): array
public getHighlightFormatter(string $field_override = ?): string
public getHighlightFragmenter(string $field_override = ?): string
public getHighlightFragsize(string $field_override = ?): int
public getHighlightHighlightMultiTerm(): bool
public getHighlightMaxAlternateFieldLength(string $field_override = ?): int
public getHighlightMaxAnalyzedChars(): int
public getHighlightMergeContiguous(string $field_override = ?): bool
public getHighlightRegexMaxAnalyzedChars(): int
public getHighlightRegexPattern(): string
public getHighlightRegexSlop(): float
public getHighlightRequireFieldMatch(): bool
public getHighlightSimplePost(string $field_override = ?): string
public getHighlightSimplePre(string $field_override = ?): string
public getHighlightSnippets(string $field_override = ?): int
public getHighlightUsePhraseHighlighter(): bool
public getMlt(): bool
public getMltBoost(): bool
public getMltCount(): int
public getMltFields(): array
public getMltMaxNumQueryTerms(): int
public getMltMaxNumTokens(): int
public getMltMaxWordLength(): int
public getMltMinDocFrequency(): int
public getMltMinTermFrequency(): int
public getMltMinWordLength(): int
public getMltQueryFields(): array
public getQuery(): string
public getRows(): int
public getSortFields(): array
public getStart(): int
public getStats(): bool
public getStatsFacets(): array
public getStatsFields(): array
public getTerms(): bool
public getTermsField(): string
public getTermsIncludeLowerBound(): bool
public getTermsIncludeUpperBound(): bool
public getTermsLimit(): int
public getTermsLowerBound(): string
public getTermsMaxCount(): int
public getTermsMinCount(): int
public getTermsPrefix(): string
public getTermsReturnRaw(): bool
public getTermsSort(): int
public getTermsUpperBound(): string
public getTimeAllowed(): int
public removeExpandFilterQuery(string $fq): SolrQuery
public removeExpandSortField(string $field): SolrQuery
public removeFacetDateField(string $field): SolrQuery
public removeFacetDateOther(string $value, string $field_override = ?): SolrQuery
public removeFacetField(string $field): SolrQuery
public removeFacetQuery(string $value): SolrQuery
public removeField(string $field): SolrQuery
public removeFilterQuery(string $fq): SolrQuery
public removeHighlightField(string $field): SolrQuery
public removeMltField(string $field): SolrQuery
public removeMltQueryField(string $queryField): SolrQuery
public removeSortField(string $field): SolrQuery
public removeStatsFacet(string $value): SolrQuery
public removeStatsField(string $field): SolrQuery
public setEchoHandler(bool $flag): SolrQuery
public setEchoParams(string $type): SolrQuery
public setExpand(bool $value): SolrQuery
public setExpandQuery(string $q): SolrQuery
public setExpandRows(int $value): SolrQuery
public setExplainOther(string $query): SolrQuery
public setFacet(bool $flag): SolrQuery
public setFacetDateEnd(string $value, string $field_override = ?): SolrQuery
public setFacetDateGap(string $value, string $field_override = ?): SolrQuery
public setFacetDateHardEnd(bool $value, string $field_override = ?): SolrQuery
public setFacetDateStart(string $value, string $field_override = ?): SolrQuery
public setFacetEnumCacheMinDefaultFrequency(int $frequency, string $field_override = ?): SolrQuery
public setFacetLimit(int $limit, string $field_override = ?): SolrQuery
public setFacetMethod(string $method, string $field_override = ?): SolrQuery
public setFacetMinCount(int $mincount, string $field_override = ?): SolrQuery
public setFacetMissing(bool $flag, string $field_override = ?): SolrQuery
public setFacetOffset(int $offset, string $field_override = ?): SolrQuery
public setFacetPrefix(string $prefix, string $field_override = ?): SolrQuery
public setFacetSort(int $facetSort, string $field_override = ?): SolrQuery
public setGroup(bool $value): SolrQuery
public setGroupCachePercent(int $percent): SolrQuery
public setGroupFacet(bool $value): SolrQuery
public setGroupFormat(string $value): SolrQuery
public setGroupLimit(int $value): SolrQuery
public setGroupMain(string $value): SolrQuery
public setGroupNGroups(bool $value): SolrQuery
public setGroupOffset(int $value): SolrQuery
public setGroupTruncate(bool $value): SolrQuery
public setHighlight(bool $flag): SolrQuery
public setHighlightAlternateField(string $field, string $field_override = ?): SolrQuery
public setHighlightFormatter(string $formatter, string $field_override = ?): SolrQuery
public setHighlightFragmenter(string $fragmenter, string $field_override = ?): SolrQuery
public setHighlightFragsize(int $size, string $field_override = ?): SolrQuery
public setHighlightHighlightMultiTerm(bool $flag): SolrQuery
public setHighlightMaxAlternateFieldLength(int $fieldLength, string $field_override = ?): SolrQuery
public setHighlightMaxAnalyzedChars(int $value): SolrQuery
public setHighlightMergeContiguous(bool $flag, string $field_override = ?): SolrQuery
public setHighlightRegexMaxAnalyzedChars(int $maxAnalyzedChars): SolrQuery
public setHighlightRegexPattern(string $value): SolrQuery
public setHighlightRegexSlop(float $factor): SolrQuery
public setHighlightRequireFieldMatch(bool $flag): SolrQuery
public setHighlightSimplePost(string $simplePost, string $field_override = ?): SolrQuery
public setHighlightSimplePre(string $simplePre, string $field_override = ?): SolrQuery
public setHighlightSnippets(int $value, string $field_override = ?): SolrQuery
public setHighlightUsePhraseHighlighter(bool $flag): SolrQuery
public setMlt(bool $flag): SolrQuery
public setMltBoost(bool $flag): SolrQuery
public setMltCount(int $count): SolrQuery
public setMltMaxNumQueryTerms(int $value): SolrQuery
public setMltMaxNumTokens(int $value): SolrQuery
public setMltMaxWordLength(int $maxWordLength): SolrQuery
public setMltMinDocFrequency(int $minDocFrequency): SolrQuery
public setMltMinTermFrequency(int $minTermFrequency): SolrQuery
public setMltMinWordLength(int $minWordLength): SolrQuery
public setOmitHeader(bool $flag): SolrQuery
public setQuery(string $query): SolrQuery
public setRows(int $rows): SolrQuery
public setShowDebugInfo(bool $flag): SolrQuery
public setStart(int $start): SolrQuery
public setStats(bool $flag): SolrQuery
public setTerms(bool $flag): SolrQuery
public setTermsField(string $fieldname): SolrQuery
public setTermsIncludeLowerBound(bool $flag): SolrQuery
public setTermsIncludeUpperBound(bool $flag): SolrQuery
public setTermsLimit(int $limit): SolrQuery
public setTermsLowerBound(string $lowerBound): SolrQuery
public setTermsMaxCount(int $frequency): SolrQuery
public setTermsMinCount(int $frequency): SolrQuery
public setTermsPrefix(string $prefix): SolrQuery
public setTermsReturnRaw(bool $flag): SolrQuery
public setTermsSort(int $sortType): SolrQuery
public setTermsUpperBound(string $upperBound): SolrQuery
public setTimeAllowed(int $timeAllowed): SolrQuery
public __destruct()
/* Métodos herdados */
public SolrModifiableParams::__construct()
public SolrModifiableParams::__destruct()
}

Constantes pré-definidas

SolrQuery::ORDER_ASC

Used to specify that the sorting should be in acending order

SolrQuery::ORDER_DESC

Used to specify that the sorting should be in descending order

SolrQuery::FACET_SORT_INDEX

Used to specify that the facet should sort by index

SolrQuery::FACET_SORT_COUNT

Used to specify that the facet should sort by count

SolrQuery::TERMS_SORT_INDEX

Used in the TermsComponent

SolrQuery::TERMS_SORT_COUNT

Used in the TermsComponent

Índice

  • SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::addFacetDateField — Maps to facet.date
  • SolrQuery::addFacetDateOther — Adds another facet.date.other parameter
  • SolrQuery::addFacetField — Adds another field to the facet
  • SolrQuery::addFacetQuery — Adds a facet query
  • SolrQuery::addField — Specifies which fields to return in the result
  • SolrQuery::addFilterQuery — Specifies a filter query
  • SolrQuery::addGroupField — Add a field to be used to group results
  • SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery — Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter)
  • SolrQuery::addHighlightField — Maps to hl.fl
  • SolrQuery::addMltField — Sets a field to use for similarity
  • SolrQuery::addMltQueryField — Maps to mlt.qf
  • SolrQuery::addSortField — Used to control how the results should be sorted
  • SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet
  • SolrQuery::addStatsField — Maps to stats.field parameter
  • SolrQuery::collapse — Collapses the result set to a single document per group
  • SolrQuery::__construct — Constructor
  • SolrQuery::__destruct — Destructor
  • SolrQuery::getExpand — Returns true if group expanding is enabled
  • SolrQuery::getExpandFilterQueries — Returns the expand filter queries
  • SolrQuery::getExpandQuery — Returns the expand query expand.q parameter
  • SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)
  • SolrQuery::getExpandSortFields — Returns an array of fields
  • SolrQuery::getFacet — Returns the value of the facet parameter
  • SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter
  • SolrQuery::getFacetDateFields — Returns all the facet.date fields
  • SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter
  • SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter
  • SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter
  • SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field
  • SolrQuery::getFacetFields — Returns all the facet fields
  • SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields
  • SolrQuery::getFacetMethod — Returns the value of the facet.method parameter
  • SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response
  • SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter
  • SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination
  • SolrQuery::getFacetPrefix — Returns the facet prefix
  • SolrQuery::getFacetQueries — Returns all the facet queries
  • SolrQuery::getFacetSort — Returns the facet sort type
  • SolrQuery::getFields — Returns the list of fields that will be returned in the response
  • SolrQuery::getFilterQueries — Returns an array of filter queries
  • SolrQuery::getGroup — Returns true if grouping is enabled
  • SolrQuery::getGroupCachePercent — Returns group cache percent value
  • SolrQuery::getGroupFacet — Returns the group.facet parameter value
  • SolrQuery::getGroupFields — Returns group fields (group.field parameter values)
  • SolrQuery::getGroupFormat — Returns the group.format value
  • SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)
  • SolrQuery::getGroupLimit — Returns the group.limit value
  • SolrQuery::getGroupMain — Returns the group.main value
  • SolrQuery::getGroupNGroups — Returns the group.ngroups value
  • SolrQuery::getGroupOffset — Returns the group.offset value
  • SolrQuery::getGroupQueries — Returns all the group.query parameter values
  • SolrQuery::getGroupSortFields — Returns the group.sort value
  • SolrQuery::getGroupTruncate — Returns the group.truncate value
  • SolrQuery::getHighlight — Returns the state of the hl parameter
  • SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default
  • SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for
  • SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output
  • SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text
  • SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting
  • SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
  • SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return
  • SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets
  • SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment
  • SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter
  • SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting
  • SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size
  • SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field
  • SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term
  • SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term
  • SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field
  • SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter
  • SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled
  • SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance
  • SolrQuery::getMltCount — Returns the number of similar documents to return for each result
  • SolrQuery::getMltFields — Returns all the fields to use for similarity
  • SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query
  • SolrQuery::getMltMaxNumTokens — Retorna o número máximo de tokens para analisar em cada campo do documento que não está armazenado com suporte a TermVector
  • SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored
  • SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
  • SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document
  • SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored
  • SolrQuery::getMltQueryFields — Returns the query fields and their boosts
  • SolrQuery::getQuery — Returns the main query
  • SolrQuery::getRows — Returns the maximum number of documents
  • SolrQuery::getSortFields — Returns all the sort fields
  • SolrQuery::getStart — Returns the offset in the complete result set
  • SolrQuery::getStats — Returns whether or not stats is enabled
  • SolrQuery::getStatsFacets — Returns all the stats facets that were set
  • SolrQuery::getStatsFields — Returns all the statistics fields
  • SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled
  • SolrQuery::getTermsField — Returns the field from which the terms are retrieved
  • SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set
  • SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set
  • SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return
  • SolrQuery::getTermsLowerBound — Returns the term to start at
  • SolrQuery::getTermsMaxCount — Returns the maximum document frequency
  • SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included
  • SolrQuery::getTermsPrefix — Returns the term prefix
  • SolrQuery::getTermsReturnRaw — Whether or not to return raw characters
  • SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted
  • SolrQuery::getTermsUpperBound — Returns the term to stop at
  • SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish
  • SolrQuery::removeExpandFilterQuery — Removes an expand filter query
  • SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter
  • SolrQuery::removeFacetDateField — Removes one of the facet date fields
  • SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters
  • SolrQuery::removeFacetField — Removes one of the facet.date parameters
  • SolrQuery::removeFacetQuery — Removes one of the facet.query parameters
  • SolrQuery::removeField — Removes a field from the list of fields
  • SolrQuery::removeFilterQuery — Removes a filter query
  • SolrQuery::removeHighlightField — Removes one of the fields used for highlighting
  • SolrQuery::removeMltField — Removes one of the moreLikeThis fields
  • SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields
  • SolrQuery::removeSortField — Removes one of the sort fields
  • SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters
  • SolrQuery::removeStatsField — Removes one of the stats.field parameters
  • SolrQuery::setEchoHandler — Toggles the echoHandler parameter
  • SolrQuery::setEchoParams — Determines what kind of parameters to include in the response
  • SolrQuery::setExpand — Enables/Disables the Expand Component
  • SolrQuery::setExpandQuery — Sets the expand.q parameter
  • SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExplainOther — Sets the explainOther common query parameter
  • SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting
  • SolrQuery::setFacetDateEnd — Maps to facet.date.end
  • SolrQuery::setFacetDateGap — Maps to facet.date.gap
  • SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend
  • SolrQuery::setFacetDateStart — Maps to facet.date.start
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count
  • SolrQuery::setFacetLimit — Maps to facet.limit
  • SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field
  • SolrQuery::setFacetMinCount — Maps to facet.mincount
  • SolrQuery::setFacetMissing — Maps to facet.missing
  • SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination
  • SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet
  • SolrQuery::setFacetSort — Determines the ordering of the facet field constraints
  • SolrQuery::setGroup — Enable/Disable result grouping (group parameter)
  • SolrQuery::setGroupCachePercent — Enables caching for result grouping
  • SolrQuery::setGroupFacet — Sets group.facet parameter
  • SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupOffset — Sets the group.offset parameter
  • SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setHighlight — Enables or disables highlighting
  • SolrQuery::setHighlightAlternateField — Specifies the backup field to use
  • SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output
  • SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text
  • SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting
  • SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms
  • SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return
  • SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets
  • SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment
  • SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze
  • SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting
  • SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size
  • SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting
  • SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term
  • SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term
  • SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field
  • SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase
  • SolrQuery::setMlt — Enables or disables moreLikeThis
  • SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance
  • SolrQuery::setMltCount — Set the number of similar documents to return for each result
  • SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included
  • SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse
  • SolrQuery::setMltMaxWordLength — Sets the maximum word length
  • SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency
  • SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs
  • SolrQuery::setMltMinWordLength — Sets the minimum word length
  • SolrQuery::setOmitHeader — Exclude the header from the returned results
  • SolrQuery::setQuery — Sets the search query
  • SolrQuery::setRows — Specifies the maximum number of rows to return in the result
  • SolrQuery::setShowDebugInfo — Flag to show debug information
  • SolrQuery::setStart — Specifies the number of rows to skip
  • SolrQuery::setStats — Enables or disables the Stats component
  • SolrQuery::setTerms — Enables or disables the TermsComponent
  • SolrQuery::setTermsField — Sets the name of the field to get the Terms from
  • SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set
  • SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set
  • SolrQuery::setTermsLimit — Sets the maximum number of terms to return
  • SolrQuery::setTermsLowerBound — Specifies the Term to start from
  • SolrQuery::setTermsMaxCount — Sets the maximum document frequency
  • SolrQuery::setTermsMinCount — Sets the minimum document frequency
  • SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix
  • SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term
  • SolrQuery::setTermsSort — Specifies how to sort the returned terms
  • SolrQuery::setTermsUpperBound — Sets the term to stop at
  • SolrQuery::setTimeAllowed — The time allowed for search to finish


Overrides main filter query, determines which documents to include in the main group

  • « SolrQuery
  • SolrQuery::addExpandSortField »
  • PHP Manual
  • SolrQuery
  • Overrides main filter query, determines which documents to include in the main group

SolrQuery::addExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group

Descrição

public SolrQuery::addExpandFilterQuery(string $fq): SolrQuery

Overrides main filter query, determines which documents to include in the main group.

Parâmetros

fq

Valor Retornado

SolrQuery

Veja Também

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Orders the documents within the expanded groups (expand.sort parameter)

  • « SolrQuery::addExpandFilterQuery
  • SolrQuery::addFacetDateField »
  • PHP Manual
  • SolrQuery
  • Orders the documents within the expanded groups (expand.sort parameter)

SolrQuery::addExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter)

Descrição

public SolrQuery::addExpandSortField(string $field, string $order = ?): SolrQuery

Orders the documents within the expanded groups (expand.sort parameter).

Parâmetros

field

field name

order

Order ASC/DESC, utilizes SolrQuery::ORDER_* constants.

Default: SolrQuery::ORDER_DESC

Valor Retornado

SolrQuery

Veja Também

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Maps to facet.date

  • « SolrQuery::addExpandSortField
  • SolrQuery::addFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date

SolrQuery::addFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateField — Maps to facet.date

Descrição

public SolrQuery::addFacetDateField(string $dateField): SolrQuery

This method allows you to specify a field which should be treated as a facet.

It can be used multiple times with different field names to indicate multiple facet fields

Parâmetros

dateField

The name of the date field.

Valor Retornado

Returns a SolrQuery object.


Adds another facet.date.other parameter

  • « SolrQuery::addFacetDateField
  • SolrQuery::addFacetField »
  • PHP Manual
  • SolrQuery
  • Adds another facet.date.other parameter

SolrQuery::addFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateOther — Adds another facet.date.other parameter

Descrição

public SolrQuery::addFacetDateOther(string $value, string $field_override = ?): SolrQuery

Sets the facet.date.other parameter. Accepts an optional field override

Parâmetros

value

The value to use.

field_override

The field name for the override.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Adds another field to the facet

  • « SolrQuery::addFacetDateOther
  • SolrQuery::addFacetQuery »
  • PHP Manual
  • SolrQuery
  • Adds another field to the facet

SolrQuery::addFacetField

(PECL solr >= 0.9.2)

SolrQuery::addFacetField — Adds another field to the facet

Descrição

public SolrQuery::addFacetField(string $field): SolrQuery

Adds another field to the facet

Parâmetros

field

The name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.

Exemplos

Exemplo #1 SolrQuery::addFacetField() example

<?php

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery($query);

$query->addField('price')->addField('color');

$query->setFacet(true);

$query->addFacetField('price')->addFacetField('color');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [color] => SolrObject Object
        (
            [blue] => 20
            [green] => 100
        )

)


Adds a facet query

  • « SolrQuery::addFacetField
  • SolrQuery::addField »
  • PHP Manual
  • SolrQuery
  • Adds a facet query

SolrQuery::addFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::addFacetQuery — Adds a facet query

Descrição

public SolrQuery::addFacetQuery(string $facetQuery): SolrQuery

Adds a facet query

Parâmetros

facetQuery

The facet query

Valor Retornado

Returns the current SolrQuery object, if the return value is used.

Exemplos

Exemplo #1 SolrQuery::addFacetField() example

<?php

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetQuery('price:[* TO 500]')->addFacetQuery('price:[500 TO *]');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response->facet_counts->facet_queries);

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [price:[* TO 500]] => 14
    [price:[500 TO *]] => 2
)


Specifies which fields to return in the result

  • « SolrQuery::addFacetQuery
  • SolrQuery::addFilterQuery »
  • PHP Manual
  • SolrQuery
  • Specifies which fields to return in the result

SolrQuery::addField

(PECL solr >= 0.9.2)

SolrQuery::addField — Specifies which fields to return in the result

Descrição

public SolrQuery::addField(string $field): SolrQuery

This method is used to used to specify a set of fields to return, thereby restricting the amount of data returned in the response.

It should be called multiple time, once for each field name.

Parâmetros

field

The name of the field

Valor Retornado

Returns the current SolrQuery object


Specifies a filter query

  • « SolrQuery::addField
  • SolrQuery::addGroupField »
  • PHP Manual
  • SolrQuery
  • Specifies a filter query

SolrQuery::addFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::addFilterQuery — Specifies a filter query

Descrição

public SolrQuery::addFilterQuery(string $fq): SolrQuery

Specifies a filter query

Parâmetros

fq

The filter query

Valor Retornado

Returns the current SolrQuery object.

Exemplos

Exemplo #1 SolrQuery::addFilterQuery() example

<?php

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('*:*');

$query->addFilterQuery('color:blue,green');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

O exemplo acima produzirá algo semelhante a:

&fq=color:blue,green


Add a field to be used to group results

  • « SolrQuery::addFilterQuery
  • SolrQuery::addGroupFunction »
  • PHP Manual
  • SolrQuery
  • Add a field to be used to group results

SolrQuery::addGroupField

(PECL solr >= 2.2.0)

SolrQuery::addGroupField — Add a field to be used to group results

Descrição

public SolrQuery::addGroupField(string $value): SolrQuery

The name of the field by which to group results. The field must be single-valued, and either be indexed or a field type that has a value source and works in a function query, such as ExternalFileField. It must also be a string-based field, such as StrField or TextField Uses group.field parameter

Parâmetros

value

The name of the field.

Valor Retornado

Returns an instance of SolrQuery.

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Allows grouping results based on the unique values of a function query (group.func parameter)

  • « SolrQuery::addGroupField
  • SolrQuery::addGroupQuery »
  • PHP Manual
  • SolrQuery
  • Allows grouping results based on the unique values of a function query (group.func parameter)

SolrQuery::addGroupFunction

(PECL solr >= 2.2.0)

SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter)

Descrição

public SolrQuery::addGroupFunction(string $value): SolrQuery

Adds a group function (group.func parameter) Allows grouping results based on the unique values of a function query.

Parâmetros

value

Valor Retornado

SolrQuery

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Allows grouping of documents that match the given query

  • « SolrQuery::addGroupFunction
  • SolrQuery::addGroupSortField »
  • PHP Manual
  • SolrQuery
  • Allows grouping of documents that match the given query

SolrQuery::addGroupQuery

(PECL solr >= 2.2.0)

SolrQuery::addGroupQuery — Allows grouping of documents that match the given query

Descrição

public SolrQuery::addGroupQuery(string $value): SolrQuery

Allows grouping of documents that match the given query. Adds query to the group.query parameter

Parâmetros

value

Valor Retornado

SolrQuery

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Add a group sort field (group.sort parameter)

  • « SolrQuery::addGroupQuery
  • SolrQuery::addHighlightField »
  • PHP Manual
  • SolrQuery
  • Add a group sort field (group.sort parameter)

SolrQuery::addGroupSortField

(PECL solr >= 2.2.0)

SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter)

Descrição

public SolrQuery::addGroupSortField(string $field, int $order = ?): SolrQuery

Allow sorting group documents, using group sort field (group.sort parameter).

Parâmetros

field

Field name

order

Order ASC/DESC, utilizes SolrQuery::ORDER_* constants

Valor Retornado

Exemplos

Exemplo #1 SolrQuery::addGroupSortField() example

<?php

$solrQuery = new SolrQuery('*:*');
$solrQuery
->setGroup(true)
->addGroupSortField('price', SolrQuery::ORDER_ASC);

echo $solrQuery;
?>

O exemplo acima produzirá algo semelhante a:

q=*:*&group=true&group.sort=price asc

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Maps to hl.fl

  • « SolrQuery::addGroupSortField
  • SolrQuery::addMltField »
  • PHP Manual
  • SolrQuery
  • Maps to hl.fl

SolrQuery::addHighlightField

(PECL solr >= 0.9.2)

SolrQuery::addHighlightField — Maps to hl.fl

Descrição

public SolrQuery::addHighlightField(string $field): SolrQuery

Maps to hl.fl. This is used to specify that highlighted snippets should be generated for a particular field

Parâmetros

field

Name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets a field to use for similarity

  • « SolrQuery::addHighlightField
  • SolrQuery::addMltQueryField »
  • PHP Manual
  • SolrQuery
  • Sets a field to use for similarity

SolrQuery::addMltField

(PECL solr >= 0.9.2)

SolrQuery::addMltField — Sets a field to use for similarity

Descrição

public SolrQuery::addMltField(string $field): SolrQuery

Maps to mlt.fl. It specifies that a field should be used for similarity.

Parâmetros

field

The name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Maps to mlt.qf

  • « SolrQuery::addMltField
  • SolrQuery::addSortField »
  • PHP Manual
  • SolrQuery
  • Maps to mlt.qf

SolrQuery::addMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::addMltQueryField — Maps to mlt.qf

Descrição

public SolrQuery::addMltQueryField(string $field, float $boost): SolrQuery

Maps to mlt.qf. It is used to specify query fields and their boosts

Parâmetros

field

The name of the field

boost

Its boost value

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Used to control how the results should be sorted

  • « SolrQuery::addMltQueryField
  • SolrQuery::addStatsFacet »
  • PHP Manual
  • SolrQuery
  • Used to control how the results should be sorted

SolrQuery::addSortField

(PECL solr >= 0.9.2)

SolrQuery::addSortField — Used to control how the results should be sorted

Descrição

public SolrQuery::addSortField(string $field, int $order = SolrQuery::ORDER_DESC): SolrQuery

Used to control how the results should be sorted.

Parâmetros

field

The name of the field

order

The sort direction. This should be either SolrQuery::ORDER_ASC or SolrQuery::ORDER_DESC.

Valor Retornado

Returns the current SolrQuery object.


Requests a return of sub results for values within the given facet

  • « SolrQuery::addSortField
  • SolrQuery::addStatsField »
  • PHP Manual
  • SolrQuery
  • Requests a return of sub results for values within the given facet

SolrQuery::addStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet

Descrição

public SolrQuery::addStatsFacet(string $field): SolrQuery

Requests a return of sub results for values within the given facet. Maps to the stats.facet field

Parâmetros

field

The name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Maps to stats.field parameter

  • « SolrQuery::addStatsFacet
  • SolrQuery::collapse »
  • PHP Manual
  • SolrQuery
  • Maps to stats.field parameter

SolrQuery::addStatsField

(PECL solr >= 0.9.2)

SolrQuery::addStatsField — Maps to stats.field parameter

Descrição

public SolrQuery::addStatsField(string $field): SolrQuery

Maps to stats.field parameter This methods adds another stats.field parameter.

Parâmetros

field

The name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Collapses the result set to a single document per group

  • « SolrQuery::addStatsField
  • SolrQuery::__construct »
  • PHP Manual
  • SolrQuery
  • Collapses the result set to a single document per group

SolrQuery::collapse

(Não há informação de versão disponível, talvez apenas no Git)

SolrQuery::collapse — Collapses the result set to a single document per group

Descrição

public SolrQuery::collapse(SolrCollapseFunction $collapseFunction): SolrQuery

Collapses the result set to a single document per group before it forwards the result set to the rest of the search components.

So all downstream components (faceting, highlighting, etc...) will work with the collapsed result set.

Parâmetros

collapseFunction

Valor Retornado

Returns the current SolrQuery object

Exemplos

Exemplo #1 SolrQuery::collapse() example

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$collapseFunction = new SolrCollapseFunction('manu_id_s');

$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);

$query
->collapse($collapseFunction)
->setRows(4);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);

?>

O exemplo acima produzirá algo semelhante a:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [q] => *:*
                    [indent] => on
                    [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore}
                    [rows] => 4
                    [version] => 2.2
                    [wt] => xml
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 14
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SP2514N
                            [name] => Array
                                (
                                    [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133
                                )

                            [manu] => Array
                                (
                                    [0] => Samsung Electronics Co. Ltd.
                                )

                            [manu_id_s] => samsung
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133
                                    [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor
                                )

                            [price] => Array
                                (
                                    [0] => 92
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [store] => Array
                                (
                                    [0] => 35.0752,-97.032
                                )

                            [_version_] => 1510294336412057600
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                    [2] => SolrObject Object
                        (
                            [id] => F8V7067-APL-KIT
                            [name] => Array
                                (
                                    [0] => Belkin Mobile Power Cord for iPod w/ Dock
                                )

                            [manu] => Array
                                (
                                    [0] => Belkin
                                )

                            [manu_id_s] => belkin
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => connector
                                )

                            [features] => Array
                                (
                                    [0] => car power adapter, white
                                )

                            [weight] => Array
                                (
                                    [0] => 4
                                )

                            [price] => Array
                                (
                                    [0] => 19.95
                                )

                            [popularity] => Array
                                (
                                    [0] => 1
                                )

                            [inStock] => Array
                                (
                                    [0] =>
                                )

                            [store] => Array
                                (
                                    [0] => 45.18014,-93.87741
                                )

                            [manufacturedate_dt] => 2005-08-01T16:30:25Z
                            [_version_] => 1510294336458194944
                        )

                    [3] => SolrObject Object
                        (
                            [id] => MA147LL/A
                            [name] => Array
                                (
                                    [0] => Apple 60 GB iPod with Video Playback Black
                                )

                            [manu] => Array
                                (
                                    [0] => Apple Computer Inc.
                                )

                            [manu_id_s] => apple
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => music
                                )

                            [features] => Array
                                (
                                    [0] => iTunes, Podcasts, Audiobooks
                                    [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video
                                    [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight
                                    [3] => Up to 20 hours of battery life
                                    [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video
                                    [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication
                                )

                            [includes] => Array
                                (
                                    [0] => earbud headphones, USB cable
                                )

                            [weight] => Array
                                (
                                    [0] => 5.5
                                )

                            [price] => Array
                                (
                                    [0] => 399
                                )

                            [popularity] => Array
                                (
                                    [0] => 10
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 37.7752,-100.0232
                                )

                            [manufacturedate_dt] => 2005-10-12T08:00:00Z
                            [_version_] => 1510294336562003968
                        )

                )

        )

)


Constructor

  • « SolrQuery::collapse
  • SolrQuery::__destruct »
  • PHP Manual
  • SolrQuery
  • Constructor

SolrQuery::__construct

(PECL solr >= 0.9.2)

SolrQuery::__construct — Constructor

Descrição

public SolrQuery::__construct(string $q = ?)

Constructor.

Parâmetros

q

Optional search query

Valor Retornado

None

Erros/Exceções

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Registro de Alterações

Versão | Descrição
PECL solr 2.0.0 | If q was invalid, then a SolrIllegalArgumentException is now thrown. Previously an error was emitted.


Destructor

  • « SolrQuery::__construct
  • SolrQuery::getExpand »
  • PHP Manual
  • SolrQuery
  • Destructor

SolrQuery::__destruct

(PECL solr >= 0.9.2)

SolrQuery::__destruct — Destructor

Descrição

public SolrQuery::__destruct()

Destructor

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

None.


Returns true if group expanding is enabled

  • « SolrQuery::__destruct
  • SolrQuery::getExpandFilterQueries »
  • PHP Manual
  • SolrQuery
  • Returns true if group expanding is enabled

SolrQuery::getExpand

(PECL solr >= 2.2.0)

SolrQuery::getExpand — Returns true if group expanding is enabled

Descrição

public SolrQuery::getExpand(): bool

Returns true if group expanding is enabled

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns whether group expanding is enabled.


Returns the expand filter queries

  • « SolrQuery::getExpand
  • SolrQuery::getExpandQuery »
  • PHP Manual
  • SolrQuery
  • Returns the expand filter queries

SolrQuery::getExpandFilterQueries

(PECL solr >= 2.2.0)

SolrQuery::getExpandFilterQueries — Returns the expand filter queries

Descrição

public SolrQuery::getExpandFilterQueries(): array

Returns the expand filter queries

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the expand filter queries.


Returns the expand query expand.q parameter

  • « SolrQuery::getExpandFilterQueries
  • SolrQuery::getExpandRows »
  • PHP Manual
  • SolrQuery
  • Returns the expand query expand.q parameter

SolrQuery::getExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::getExpandQuery — Returns the expand query expand.q parameter

Descrição

public SolrQuery::getExpandQuery(): array

Returns the expand query expand.q parameter

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the expand query.


Returns The number of rows to display in each group (expand.rows)

  • « SolrQuery::getExpandQuery
  • SolrQuery::getExpandSortFields »
  • PHP Manual
  • SolrQuery
  • Returns The number of rows to display in each group (expand.rows)

SolrQuery::getExpandRows

(PECL solr >= 2.2.0)

SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)

Descrição

public SolrQuery::getExpandRows(): int

Returns The number of rows to display in each group (expand.rows)

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of rows.


Returns an array of fields

  • « SolrQuery::getExpandRows
  • SolrQuery::getFacet »
  • PHP Manual
  • SolrQuery
  • Returns an array of fields

SolrQuery::getExpandSortFields

(PECL solr >= 2.2.0)

SolrQuery::getExpandSortFields — Returns an array of fields

Descrição

public SolrQuery::getExpandSortFields(): array

Returns an array of fields

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of fields.


Returns the value of the facet parameter

  • « SolrQuery::getExpandSortFields
  • SolrQuery::getFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet parameter

SolrQuery::getFacet

(PECL solr >= 0.9.2)

SolrQuery::getFacet — Returns the value of the facet parameter

Descrição

public SolrQuery::getFacet(): bool

Returns the value of the facet parameter.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set


Returns the value for the facet.date.end parameter

  • « SolrQuery::getFacet
  • SolrQuery::getFacetDateFields »
  • PHP Manual
  • SolrQuery
  • Returns the value for the facet.date.end parameter

SolrQuery::getFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter

Descrição

public SolrQuery::getFacetDateEnd(string $field_override = ?): string

Returns the value for the facet.date.end parameter. This method accepts an optional field override

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set


Returns all the facet.date fields

  • « SolrQuery::getFacetDateEnd
  • SolrQuery::getFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Returns all the facet.date fields

SolrQuery::getFacetDateFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateFields — Returns all the facet.date fields

Descrição

public SolrQuery::getFacetDateFields(): array

Returns all the facet.date fields

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns all the facet.date fields as an array or null if none was set


Returns the value of the facet.date.gap parameter

  • « SolrQuery::getFacetDateFields
  • SolrQuery::getFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.date.gap parameter

SolrQuery::getFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter

Descrição

public SolrQuery::getFacetDateGap(string $field_override = ?): string

Returns the value of the facet.date.gap parameter. It accepts an optional field override

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set


Returns the value of the facet.date.hardend parameter

  • « SolrQuery::getFacetDateGap
  • SolrQuery::getFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.date.hardend parameter

SolrQuery::getFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter

Descrição

public SolrQuery::getFacetDateHardEnd(string $field_override = ?): string

Returns the value of the facet.date.hardend parameter. Accepts an optional field override

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set


Returns the value for the facet.date.other parameter

  • « SolrQuery::getFacetDateHardEnd
  • SolrQuery::getFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Returns the value for the facet.date.other parameter

SolrQuery::getFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter

Descrição

public SolrQuery::getFacetDateOther(string $field_override = ?): array

Returns the value for the facet.date.other parameter. This method accepts an optional field override.

Parâmetros

field_override

The name of the field

Valor Retornado

Returns an array on success and null if not set.


Returns the lower bound for the first date range for all date faceting on this field

  • « SolrQuery::getFacetDateOther
  • SolrQuery::getFacetFields »
  • PHP Manual
  • SolrQuery
  • Returns the lower bound for the first date range for all date faceting on this field

SolrQuery::getFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field

Descrição

public SolrQuery::getFacetDateStart(string $field_override = ?): string

Returns the lower bound for the first date range for all date faceting on this field. Accepts an optional field override

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set


Returns all the facet fields

  • « SolrQuery::getFacetDateStart
  • SolrQuery::getFacetLimit »
  • PHP Manual
  • SolrQuery
  • Returns all the facet fields

SolrQuery::getFacetFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetFields — Returns all the facet fields

Descrição

public SolrQuery::getFacetFields(): array

Returns all the facet fields

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of all the fields and null if none was set


Returns the maximum number of constraint counts that should be returned for the facet fields

  • « SolrQuery::getFacetFields
  • SolrQuery::getFacetMethod »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of constraint counts that should be returned for the facet fields

SolrQuery::getFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields

Descrição

public SolrQuery::getFacetLimit(string $field_override = ?): int

Returns the maximum number of constraint counts that should be returned for the facet fields. This method accepts an optional field override

Parâmetros

field_override

The name of the field to override for

Valor Retornado

Returns an integer on success and null if not set


Returns the value of the facet.method parameter

  • « SolrQuery::getFacetLimit
  • SolrQuery::getFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.method parameter

SolrQuery::getFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::getFacetMethod — Returns the value of the facet.method parameter

Descrição

public SolrQuery::getFacetMethod(string $field_override = ?): string

Returns the value of the facet.method parameter. This accepts an optional field override.

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set


Returns the minimum counts for facet fields should be included in the response

  • « SolrQuery::getFacetMethod
  • SolrQuery::getFacetMissing »
  • PHP Manual
  • SolrQuery
  • Returns the minimum counts for facet fields should be included in the response

SolrQuery::getFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response

Descrição

public SolrQuery::getFacetMinCount(string $field_override = ?): int

Returns the minimum counts for facet fields should be included in the response. It accepts an optional field override

Parâmetros

field_override

The name of the field

Valor Retornado

Returns an integer on success and null if not set


Returns the current state of the facet.missing parameter

  • « SolrQuery::getFacetMinCount
  • SolrQuery::getFacetOffset »
  • PHP Manual
  • SolrQuery
  • Returns the current state of the facet.missing parameter

SolrQuery::getFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter

Descrição

public SolrQuery::getFacetMissing(string $field_override = ?): bool

Returns the current state of the facet.missing parameter. This accepts an optional field override

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a boolean on success and null if not set


Returns an offset into the list of constraints to be used for pagination

  • « SolrQuery::getFacetMissing
  • SolrQuery::getFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Returns an offset into the list of constraints to be used for pagination

SolrQuery::getFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination

Descrição

public SolrQuery::getFacetOffset(string $field_override = ?): int

Returns an offset into the list of constraints to be used for pagination. Accepts an optional field override

Parâmetros

field_override

The name of the field to override for.

Valor Retornado

Returns an integer on success and null if not set


Returns the facet prefix

  • « SolrQuery::getFacetOffset
  • SolrQuery::getFacetQueries »
  • PHP Manual
  • SolrQuery
  • Returns the facet prefix

SolrQuery::getFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::getFacetPrefix — Returns the facet prefix

Descrição

public SolrQuery::getFacetPrefix(string $field_override = ?): string

Returns the facet prefix

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set.


Returns all the facet queries

  • « SolrQuery::getFacetPrefix
  • SolrQuery::getFacetSort »
  • PHP Manual
  • SolrQuery
  • Returns all the facet queries

SolrQuery::getFacetQueries

(PECL solr >= 0.9.2)

SolrQuery::getFacetQueries — Returns all the facet queries

Descrição

public SolrQuery::getFacetQueries(): array

Returns all the facet queries

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on success and null if not set.


Returns the facet sort type

  • « SolrQuery::getFacetQueries
  • SolrQuery::getFields »
  • PHP Manual
  • SolrQuery
  • Returns the facet sort type

SolrQuery::getFacetSort

(PECL solr >= 0.9.2)

SolrQuery::getFacetSort — Returns the facet sort type

Descrição

public SolrQuery::getFacetSort(string $field_override = ?): int

Returns an integer (SolrQuery::FACET_SORT_INDEX or SolrQuery::FACET_SORT_COUNT)

Parâmetros

field_override

The name of the field

Valor Retornado

Returns an integer (SolrQuery::FACET_SORT_INDEX or SolrQuery::FACET_SORT_COUNT) on success or null if not set.


Returns the list of fields that will be returned in the response

  • « SolrQuery::getFacetSort
  • SolrQuery::getFilterQueries »
  • PHP Manual
  • SolrQuery
  • Returns the list of fields that will be returned in the response

SolrQuery::getFields

(PECL solr >= 0.9.2)

SolrQuery::getFields — Returns the list of fields that will be returned in the response

Descrição

public SolrQuery::getFields(): array

Returns the list of fields that will be returned in the response

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on success and null if not set.


Returns an array of filter queries

  • « SolrQuery::getFields
  • SolrQuery::getGroup »
  • PHP Manual
  • SolrQuery
  • Returns an array of filter queries

SolrQuery::getFilterQueries

(PECL solr >= 0.9.2)

SolrQuery::getFilterQueries — Returns an array of filter queries

Descrição

public SolrQuery::getFilterQueries(): array

Returns an array of filter queries. These are queries that can be used to restrict the super set of documents that can be returned, without influencing score

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on success and null if not set.


Returns true if grouping is enabled

  • « SolrQuery::getFilterQueries
  • SolrQuery::getGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Returns true if grouping is enabled

SolrQuery::getGroup

(PECL solr >= 2.2.0)

SolrQuery::getGroup — Returns true if grouping is enabled

Descrição

public SolrQuery::getGroup(): bool

Returns true if grouping is enabled

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)


Returns group cache percent value

  • « SolrQuery::getGroup
  • SolrQuery::getGroupFacet »
  • PHP Manual
  • SolrQuery
  • Returns group cache percent value

SolrQuery::getGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::getGroupCachePercent — Returns group cache percent value

Descrição

public SolrQuery::getGroupCachePercent(): int

Returns group cache percent value

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Returns the group.facet parameter value

  • « SolrQuery::getGroupCachePercent
  • SolrQuery::getGroupFields »
  • PHP Manual
  • SolrQuery
  • Returns the group.facet parameter value

SolrQuery::getGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::getGroupFacet — Returns the group.facet parameter value

Descrição

public SolrQuery::getGroupFacet(): bool

Returns the group.facet parameter value

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::setGroupFacet() - Sets group.facet parameter


Returns group fields (group.field parameter values)

  • « SolrQuery::getGroupFacet
  • SolrQuery::getGroupFormat »
  • PHP Manual
  • SolrQuery
  • Returns group fields (group.field parameter values)

SolrQuery::getGroupFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupFields — Returns group fields (group.field parameter values)

Descrição

public SolrQuery::getGroupFields(): array

Returns group fields (group.field parameter values)

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::addGroupField() - Add a field to be used to group results


Returns the group.format value

  • « SolrQuery::getGroupFields
  • SolrQuery::getGroupFunctions »
  • PHP Manual
  • SolrQuery
  • Returns the group.format value

SolrQuery::getGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::getGroupFormat — Returns the group.format value

Descrição

public SolrQuery::getGroupFormat(): string

Returns the group.format value

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)


Returns group functions (group.func parameter values)

  • « SolrQuery::getGroupFormat
  • SolrQuery::getGroupLimit »
  • PHP Manual
  • SolrQuery
  • Returns group functions (group.func parameter values)

SolrQuery::getGroupFunctions

(PECL solr >= 2.2.0)

SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)

Descrição

public SolrQuery::getGroupFunctions(): array

Returns group functions (group.func parameter values)

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)


Returns the group.limit value

  • « SolrQuery::getGroupFunctions
  • SolrQuery::getGroupMain »
  • PHP Manual
  • SolrQuery
  • Returns the group.limit value

SolrQuery::getGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::getGroupLimit — Returns the group.limit value

Descrição

public SolrQuery::getGroupLimit(): int

Returns the group.limit value

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1


Returns the group.main value

  • « SolrQuery::getGroupLimit
  • SolrQuery::getGroupNGroups »
  • PHP Manual
  • SolrQuery
  • Returns the group.main value

SolrQuery::getGroupMain

(PECL solr >= 2.2.0)

SolrQuery::getGroupMain — Returns the group.main value

Descrição

public SolrQuery::getGroupMain(): bool

Returns the group.main value

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple


Returns the group.ngroups value

  • « SolrQuery::getGroupMain
  • SolrQuery::getGroupOffset »
  • PHP Manual
  • SolrQuery
  • Returns the group.ngroups value

SolrQuery::getGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::getGroupNGroups — Returns the group.ngroups value

Descrição

public SolrQuery::getGroupNGroups(): bool

Returns the group.ngroups value

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results


Returns the group.offset value

  • « SolrQuery::getGroupNGroups
  • SolrQuery::getGroupQueries »
  • PHP Manual
  • SolrQuery
  • Returns the group.offset value

SolrQuery::getGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::getGroupOffset — Returns the group.offset value

Descrição

public SolrQuery::getGroupOffset(): int

Returns the group.offset value

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::setGroupOffset() - Sets the group.offset parameter


Returns all the group.query parameter values

  • « SolrQuery::getGroupOffset
  • SolrQuery::getGroupSortFields »
  • PHP Manual
  • SolrQuery
  • Returns all the group.query parameter values

SolrQuery::getGroupQueries

(PECL solr >= 2.2.0)

SolrQuery::getGroupQueries — Returns all the group.query parameter values

Descrição

public SolrQuery::getGroupQueries(): array

Returns all the group.query parameter values

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

array

Veja Também

  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query


Returns the group.sort value

  • « SolrQuery::getGroupQueries
  • SolrQuery::getGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Returns the group.sort value

SolrQuery::getGroupSortFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupSortFields — Returns the group.sort value

Descrição

public SolrQuery::getGroupSortFields(): array

Returns the group.sort value

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)


Returns the group.truncate value

  • « SolrQuery::getGroupSortFields
  • SolrQuery::getHighlight »
  • PHP Manual
  • SolrQuery
  • Returns the group.truncate value

SolrQuery::getGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::getGroupTruncate — Returns the group.truncate value

Descrição

public SolrQuery::getGroupTruncate(): bool

Returns the group.truncate value

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query


Returns the state of the hl parameter

  • « SolrQuery::getGroupTruncate
  • SolrQuery::getHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Returns the state of the hl parameter

SolrQuery::getHighlight

(PECL solr >= 0.9.2)

SolrQuery::getHighlight — Returns the state of the hl parameter

Descrição

public SolrQuery::getHighlight(): bool

Returns a boolean indicating whether or not to enable highlighted snippets to be generated in the query response.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns the highlight field to use as backup or default

  • « SolrQuery::getHighlight
  • SolrQuery::getHighlightFields »
  • PHP Manual
  • SolrQuery
  • Returns the highlight field to use as backup or default

SolrQuery::getHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default

Descrição

public SolrQuery::getHighlightAlternateField(string $field_override = ?): string

Returns the highlight field to use as backup or default. It accepts an optional override.

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set.


Returns all the fields that Solr should generate highlighted snippets for

  • « SolrQuery::getHighlightAlternateField
  • SolrQuery::getHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Returns all the fields that Solr should generate highlighted snippets for

SolrQuery::getHighlightFields

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for

Descrição

public SolrQuery::getHighlightFields(): array

Returns all the fields that Solr should generate highlighted snippets for

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on success and null if not set.


Returns the formatter for the highlighted output

  • « SolrQuery::getHighlightFields
  • SolrQuery::getHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Returns the formatter for the highlighted output

SolrQuery::getHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output

Descrição

public SolrQuery::getHighlightFormatter(string $field_override = ?): string

Returns the formatter for the highlighted output

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set.


Returns the text snippet generator for highlighted text

  • « SolrQuery::getHighlightFormatter
  • SolrQuery::getHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Returns the text snippet generator for highlighted text

SolrQuery::getHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text

Descrição

public SolrQuery::getHighlightFragmenter(string $field_override = ?): string

Returns the text snippet generator for highlighted text. Accepts an optional field override.

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set.


Returns the number of characters of fragments to consider for highlighting

  • « SolrQuery::getHighlightFragmenter
  • SolrQuery::getHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • Returns the number of characters of fragments to consider for highlighting

SolrQuery::getHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting

Descrição

public SolrQuery::getHighlightFragsize(string $field_override = ?): int

Returns the number of characters of fragments to consider for highlighting. Zero implies no fragmenting. The entire field should be used.

Parâmetros

field_override

The name of the field

Valor Retornado

Returns an integer on success or null if not set.


Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

  • « SolrQuery::getHighlightFragsize
  • SolrQuery::getHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

SolrQuery::getHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

Descrição

public SolrQuery::getHighlightHighlightMultiTerm(): bool

Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns the maximum number of characters of the field to return

  • « SolrQuery::getHighlightHighlightMultiTerm
  • SolrQuery::getHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters of the field to return

SolrQuery::getHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return

Descrição

public SolrQuery::getHighlightMaxAlternateFieldLength(string $field_override = ?): int

Returns the maximum number of characters of the field to return

Parâmetros

field_override

The name of the field

Valor Retornado

Returns an integer on success and null if not set.


Returns the maximum number of characters into a document to look for suitable snippets

  • « SolrQuery::getHighlightMaxAlternateFieldLength
  • SolrQuery::getHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters into a document to look for suitable snippets

SolrQuery::getHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets

Descrição

public SolrQuery::getHighlightMaxAnalyzedChars(): int

Returns the maximum number of characters into a document to look for suitable snippets

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns whether or not the collapse contiguous fragments into a single fragment

  • « SolrQuery::getHighlightMaxAnalyzedChars
  • SolrQuery::getHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the collapse contiguous fragments into a single fragment

SolrQuery::getHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment

Descrição

public SolrQuery::getHighlightMergeContiguous(string $field_override = ?): bool

Returns whether or not the collapse contiguous fragments into a single fragment. Accepts an optional field override.

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a boolean on success and null if not set.


Returns the maximum number of characters from a field when using the regex fragmenter

  • « SolrQuery::getHighlightMergeContiguous
  • SolrQuery::getHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters from a field when using the regex fragmenter

SolrQuery::getHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter

Descrição

public SolrQuery::getHighlightRegexMaxAnalyzedChars(): int

Returns the maximum number of characters from a field when using the regex fragmenter

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns the regular expression for fragmenting

  • « SolrQuery::getHighlightRegexMaxAnalyzedChars
  • SolrQuery::getHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Returns the regular expression for fragmenting

SolrQuery::getHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting

Descrição

public SolrQuery::getHighlightRegexPattern(): string

Returns the regular expression used for fragmenting

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string on success and null if not set.


Returns the deviation factor from the ideal fragment size

  • « SolrQuery::getHighlightRegexPattern
  • SolrQuery::getHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Returns the deviation factor from the ideal fragment size

SolrQuery::getHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size

Descrição

public SolrQuery::getHighlightRegexSlop(): float

Returns the factor by which the regex fragmenter can deviate from the ideal fragment size to accommodate the regular expression

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a float on success and null if not set.


Returns if a field will only be highlighted if the query matched in this particular field

  • « SolrQuery::getHighlightRegexSlop
  • SolrQuery::getHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Returns if a field will only be highlighted if the query matched in this particular field

SolrQuery::getHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field

Descrição

public SolrQuery::getHighlightRequireFieldMatch(): bool

Returns if a field will only be highlighted if the query matched in this particular field.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns the text which appears after a highlighted term

  • « SolrQuery::getHighlightRequireFieldMatch
  • SolrQuery::getHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Returns the text which appears after a highlighted term

SolrQuery::getHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term

Descrição

public SolrQuery::getHighlightSimplePost(string $field_override = ?): string

Returns the text which appears after a highlighted term. Accepts an optional field override

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set.


Returns the text which appears before a highlighted term

  • « SolrQuery::getHighlightSimplePost
  • SolrQuery::getHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Returns the text which appears before a highlighted term

SolrQuery::getHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term

Descrição

public SolrQuery::getHighlightSimplePre(string $field_override = ?): string

Returns the text which appears before a highlighted term. Accepts an optional field override

Parâmetros

field_override

The name of the field

Valor Retornado

Returns a string on success and null if not set.


Returns the maximum number of highlighted snippets to generate per field

  • « SolrQuery::getHighlightSimplePre
  • SolrQuery::getHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of highlighted snippets to generate per field

SolrQuery::getHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field

Descrição

public SolrQuery::getHighlightSnippets(string $field_override = ?): int

Returns the maximum number of highlighted snippets to generate per field. Accepts an optional field override

Parâmetros

field_override

The name of the field

Valor Retornado

Returns an integer on success and null if not set.


Returns the state of the hl.usePhraseHighlighter parameter

  • « SolrQuery::getHighlightSnippets
  • SolrQuery::getMlt »
  • PHP Manual
  • SolrQuery
  • Returns the state of the hl.usePhraseHighlighter parameter

SolrQuery::getHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter

Descrição

public SolrQuery::getHighlightUsePhraseHighlighter(): bool

Returns whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns whether or not MoreLikeThis results should be enabled

  • « SolrQuery::getHighlightUsePhraseHighlighter
  • SolrQuery::getMltBoost »
  • PHP Manual
  • SolrQuery
  • Returns whether or not MoreLikeThis results should be enabled

SolrQuery::getMlt

(PECL solr >= 0.9.2)

SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled

Descrição

public SolrQuery::getMlt(): bool

Returns whether or not MoreLikeThis results should be enabled

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns whether or not the query will be boosted by the interesting term relevance

  • « SolrQuery::getMlt
  • SolrQuery::getMltCount »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the query will be boosted by the interesting term relevance

SolrQuery::getMltBoost

(PECL solr >= 0.9.2)

SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance

Descrição

public SolrQuery::getMltBoost(): bool

Returns whether or not the query will be boosted by the interesting term relevance

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns the number of similar documents to return for each result

  • « SolrQuery::getMltBoost
  • SolrQuery::getMltFields »
  • PHP Manual
  • SolrQuery
  • Returns the number of similar documents to return for each result

SolrQuery::getMltCount

(PECL solr >= 0.9.2)

SolrQuery::getMltCount — Returns the number of similar documents to return for each result

Descrição

public SolrQuery::getMltCount(): int

Returns the number of similar documents to return for each result

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns all the fields to use for similarity

  • « SolrQuery::getMltCount
  • SolrQuery::getMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Returns all the fields to use for similarity

SolrQuery::getMltFields

(PECL solr >= 0.9.2)

SolrQuery::getMltFields — Returns all the fields to use for similarity

Descrição

public SolrQuery::getMltFields(): array

Returns all the fields to use for similarity

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on success and null if not set.


Returns the maximum number of query terms that will be included in any generated query

  • « SolrQuery::getMltFields
  • SolrQuery::getMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of query terms that will be included in any generated query

SolrQuery::getMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query

Descrição

public SolrQuery::getMltMaxNumQueryTerms(): int

Returns the maximum number of query terms that will be included in any generated query

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Retorna o número máximo de tokens para analisar em cada campo do documento que não está armazenado com suporte a TermVector

  • « SolrQuery::getMltMaxNumQueryTerms
  • SolrQuery::getMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Retorna o número máximo de tokens para analisar em cada campo do documento que não está armazenado com suporte a TermVector

SolrQuery::getMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumTokens — Retorna o número máximo de tokens para analisar em cada campo do documento que não está armazenado com suporte a TermVector

Descrição

public SolrQuery::getMltMaxNumTokens(): int

Retorna o número máximo de tokens para analisar em cada campo do documento que não está armazenado com suporte a TermVector

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um inteiro em caso de sucesso e null se não for definido.


Returns the maximum word length above which words will be ignored

  • « SolrQuery::getMltMaxNumTokens
  • SolrQuery::getMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Returns the maximum word length above which words will be ignored

SolrQuery::getMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored

Descrição

public SolrQuery::getMltMaxWordLength(): int

Returns the maximum word length above which words will be ignored

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

  • « SolrQuery::getMltMaxWordLength
  • SolrQuery::getMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

SolrQuery::getMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

Descrição

public SolrQuery::getMltMinDocFrequency(): int

Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns the frequency below which terms will be ignored in the source document

  • « SolrQuery::getMltMinDocFrequency
  • SolrQuery::getMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Returns the frequency below which terms will be ignored in the source document

SolrQuery::getMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document

Descrição

public SolrQuery::getMltMinTermFrequency(): int

Returns the frequency below which terms will be ignored in the source document

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns the minimum word length below which words will be ignored

  • « SolrQuery::getMltMinTermFrequency
  • SolrQuery::getMltQueryFields »
  • PHP Manual
  • SolrQuery
  • Returns the minimum word length below which words will be ignored

SolrQuery::getMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored

Descrição

public SolrQuery::getMltMinWordLength(): int

Returns the minimum word length below which words will be ignored

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns the query fields and their boosts

  • « SolrQuery::getMltMinWordLength
  • SolrQuery::getQuery »
  • PHP Manual
  • SolrQuery
  • Returns the query fields and their boosts

SolrQuery::getMltQueryFields

(PECL solr >= 0.9.2)

SolrQuery::getMltQueryFields — Returns the query fields and their boosts

Descrição

public SolrQuery::getMltQueryFields(): array

Returns the query fields and their boosts

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on success and null if not set.


Returns the main query

  • « SolrQuery::getMltQueryFields
  • SolrQuery::getRows »
  • PHP Manual
  • SolrQuery
  • Returns the main query

SolrQuery::getQuery

(PECL solr >= 0.9.2)

SolrQuery::getQuery — Returns the main query

Descrição

public SolrQuery::getQuery(): string

Returns the main search query

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string on success and null if not set.


Returns the maximum number of documents

  • « SolrQuery::getQuery
  • SolrQuery::getSortFields »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of documents

SolrQuery::getRows

(PECL solr >= 0.9.2)

SolrQuery::getRows — Returns the maximum number of documents

Descrição

public SolrQuery::getRows(): int

Returns the maximum number of documents from the complete result set to return to the client for every request

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns all the sort fields

  • « SolrQuery::getRows
  • SolrQuery::getStart »
  • PHP Manual
  • SolrQuery
  • Returns all the sort fields

SolrQuery::getSortFields

(PECL solr >= 0.9.2)

SolrQuery::getSortFields — Returns all the sort fields

Descrição

public SolrQuery::getSortFields(): array

Returns all the sort fields

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on success and null if none of the parameters was set.


Returns the offset in the complete result set

  • « SolrQuery::getSortFields
  • SolrQuery::getStats »
  • PHP Manual
  • SolrQuery
  • Returns the offset in the complete result set

SolrQuery::getStart

(PECL solr >= 0.9.2)

SolrQuery::getStart — Returns the offset in the complete result set

Descrição

public SolrQuery::getStart(): int

Returns the offset in the complete result set for the queries where the set of returned documents should begin.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns whether or not stats is enabled

  • « SolrQuery::getStart
  • SolrQuery::getStatsFacets »
  • PHP Manual
  • SolrQuery
  • Returns whether or not stats is enabled

SolrQuery::getStats

(PECL solr >= 0.9.2)

SolrQuery::getStats — Returns whether or not stats is enabled

Descrição

public SolrQuery::getStats(): bool

Returns whether or not stats is enabled

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns all the stats facets that were set

  • « SolrQuery::getStats
  • SolrQuery::getStatsFields »
  • PHP Manual
  • SolrQuery
  • Returns all the stats facets that were set

SolrQuery::getStatsFacets

(PECL solr >= 0.9.2)

SolrQuery::getStatsFacets — Returns all the stats facets that were set

Descrição

public SolrQuery::getStatsFacets(): array

Returns all the stats facets that were set

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on success and null if not set.


Returns all the statistics fields

  • « SolrQuery::getStatsFacets
  • SolrQuery::getTerms »
  • PHP Manual
  • SolrQuery
  • Returns all the statistics fields

SolrQuery::getStatsFields

(PECL solr >= 0.9.2)

SolrQuery::getStatsFields — Returns all the statistics fields

Descrição

public SolrQuery::getStatsFields(): array

Returns all the statistics fields

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array on success and null if not set.


Returns whether or not the TermsComponent is enabled

  • « SolrQuery::getStatsFields
  • SolrQuery::getTermsField »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the TermsComponent is enabled

SolrQuery::getTerms

(PECL solr >= 0.9.2)

SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled

Descrição

public SolrQuery::getTerms(): bool

Returns whether or not the TermsComponent is enabled

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns the field from which the terms are retrieved

  • « SolrQuery::getTerms
  • SolrQuery::getTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Returns the field from which the terms are retrieved

SolrQuery::getTermsField

(PECL solr >= 0.9.2)

SolrQuery::getTermsField — Returns the field from which the terms are retrieved

Descrição

public SolrQuery::getTermsField(): string

Returns the field from which the terms are retrieved

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string on success and null if not set.


Returns whether or not to include the lower bound in the result set

  • « SolrQuery::getTermsField
  • SolrQuery::getTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to include the lower bound in the result set

SolrQuery::getTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set

Descrição

public SolrQuery::getTermsIncludeLowerBound(): bool

Returns whether or not to include the lower bound in the result set

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns whether or not to include the upper bound term in the result set

  • « SolrQuery::getTermsIncludeLowerBound
  • SolrQuery::getTermsLimit »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to include the upper bound term in the result set

SolrQuery::getTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set

Descrição

public SolrQuery::getTermsIncludeUpperBound(): bool

Returns whether or not to include the upper bound term in the result set

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns the maximum number of terms Solr should return

  • « SolrQuery::getTermsIncludeUpperBound
  • SolrQuery::getTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of terms Solr should return

SolrQuery::getTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return

Descrição

public SolrQuery::getTermsLimit(): int

Returns the maximum number of terms Solr should return

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns the term to start at

  • « SolrQuery::getTermsLimit
  • SolrQuery::getTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Returns the term to start at

SolrQuery::getTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsLowerBound — Returns the term to start at

Descrição

public SolrQuery::getTermsLowerBound(): string

Returns the term to start at

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string on success and null if not set.


Returns the maximum document frequency

  • « SolrQuery::getTermsLowerBound
  • SolrQuery::getTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Returns the maximum document frequency

SolrQuery::getTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMaxCount — Returns the maximum document frequency

Descrição

public SolrQuery::getTermsMaxCount(): int

Returns the maximum document frequency

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns the minimum document frequency to return in order to be included

  • « SolrQuery::getTermsMaxCount
  • SolrQuery::getTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Returns the minimum document frequency to return in order to be included

SolrQuery::getTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included

Descrição

public SolrQuery::getTermsMinCount(): int

Returns the minimum document frequency to return in order to be included

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns the term prefix

  • « SolrQuery::getTermsMinCount
  • SolrQuery::getTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Returns the term prefix

SolrQuery::getTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::getTermsPrefix — Returns the term prefix

Descrição

public SolrQuery::getTermsPrefix(): string

Returns the prefix to which matching terms must be restricted. This will restrict matches to only terms that start with the prefix

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string on success and null if not set.


Whether or not to return raw characters

  • « SolrQuery::getTermsPrefix
  • SolrQuery::getTermsSort »
  • PHP Manual
  • SolrQuery
  • Whether or not to return raw characters

SolrQuery::getTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::getTermsReturnRaw — Whether or not to return raw characters

Descrição

public SolrQuery::getTermsReturnRaw(): bool

Returns a boolean indicating whether or not to return the raw characters of the indexed term, regardless of if it is human readable

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a boolean on success and null if not set.


Returns an integer indicating how terms are sorted

  • « SolrQuery::getTermsReturnRaw
  • SolrQuery::getTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Returns an integer indicating how terms are sorted

SolrQuery::getTermsSort

(PECL solr >= 0.9.2)

SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted

Descrição

public SolrQuery::getTermsSort(): int

SolrQuery::TERMS_SORT_INDEX indicates that the terms are returned by index order. SolrQuery::TERMS_SORT_COUNT implies that the terms are sorted by term frequency (highest count first)

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an integer on success and null if not set.


Returns the term to stop at

  • « SolrQuery::getTermsSort
  • SolrQuery::getTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Returns the term to stop at

SolrQuery::getTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsUpperBound — Returns the term to stop at

Descrição

public SolrQuery::getTermsUpperBound(): string

Returns the term to stop at

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string on success and null if not set.


Returns the time in milliseconds allowed for the query to finish

  • « SolrQuery::getTermsUpperBound
  • SolrQuery::removeExpandFilterQuery »
  • PHP Manual
  • SolrQuery
  • Returns the time in milliseconds allowed for the query to finish

SolrQuery::getTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish

Descrição

public SolrQuery::getTimeAllowed(): int

Returns the time in milliseconds allowed for the query to finish.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns and integer on success and null if it is not set.


Removes an expand filter query

  • « SolrQuery::getTimeAllowed
  • SolrQuery::removeExpandSortField »
  • PHP Manual
  • SolrQuery
  • Removes an expand filter query

SolrQuery::removeExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::removeExpandFilterQuery — Removes an expand filter query

Descrição

public SolrQuery::removeExpandFilterQuery(string $fq): SolrQuery

Removes an expand filter query.

Parâmetros

fq

Valor Retornado

SolrQuery

Veja Também

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group


Removes an expand sort field from the expand.sort parameter

  • « SolrQuery::removeExpandFilterQuery
  • SolrQuery::removeFacetDateField »
  • PHP Manual
  • SolrQuery
  • Removes an expand sort field from the expand.sort parameter

SolrQuery::removeExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter

Descrição

public SolrQuery::removeExpandSortField(string $field): SolrQuery

Removes an expand sort field from the expand.sort parameter.

Parâmetros

field

field name

Valor Retornado

SolrQuery

Veja Também

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Removes one of the facet date fields

  • « SolrQuery::removeExpandSortField
  • SolrQuery::removeFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet date fields

SolrQuery::removeFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateField — Removes one of the facet date fields

Descrição

public SolrQuery::removeFacetDateField(string $field): SolrQuery

The name of the field

Parâmetros

field

The name of the date field to remove

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.date.other parameters

  • « SolrQuery::removeFacetDateField
  • SolrQuery::removeFacetField »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.date.other parameters

SolrQuery::removeFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters

Descrição

public SolrQuery::removeFacetDateOther(string $value, string $field_override = ?): SolrQuery

Removes one of the facet.date.other parameters

Parâmetros

value

The value

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.date parameters

  • « SolrQuery::removeFacetDateOther
  • SolrQuery::removeFacetQuery »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.date parameters

SolrQuery::removeFacetField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetField — Removes one of the facet.date parameters

Descrição

public SolrQuery::removeFacetField(string $field): SolrQuery

Removes one of the facet.date parameters

Parâmetros

field

The name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.query parameters

  • « SolrQuery::removeFacetField
  • SolrQuery::removeField »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.query parameters

SolrQuery::removeFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFacetQuery — Removes one of the facet.query parameters

Descrição

public SolrQuery::removeFacetQuery(string $value): SolrQuery

Removes one of the facet.query parameters.

Parâmetros

value

The value

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes a field from the list of fields

  • « SolrQuery::removeFacetQuery
  • SolrQuery::removeFilterQuery »
  • PHP Manual
  • SolrQuery
  • Removes a field from the list of fields

SolrQuery::removeField

(PECL solr >= 0.9.2)

SolrQuery::removeField — Removes a field from the list of fields

Descrição

public SolrQuery::removeField(string $field): SolrQuery

Removes a field from the list of fields

Parâmetros

field

Name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes a filter query

  • « SolrQuery::removeField
  • SolrQuery::removeHighlightField »
  • PHP Manual
  • SolrQuery
  • Removes a filter query

SolrQuery::removeFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFilterQuery — Removes a filter query

Descrição

public SolrQuery::removeFilterQuery(string $fq): SolrQuery

Removes a filter query.

Parâmetros

fq

The filter query to remove

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes one of the fields used for highlighting

  • « SolrQuery::removeFilterQuery
  • SolrQuery::removeMltField »
  • PHP Manual
  • SolrQuery
  • Removes one of the fields used for highlighting

SolrQuery::removeHighlightField

(PECL solr >= 0.9.2)

SolrQuery::removeHighlightField — Removes one of the fields used for highlighting

Descrição

public SolrQuery::removeHighlightField(string $field): SolrQuery

Removes one of the fields used for highlighting.

Parâmetros

field

The name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes one of the moreLikeThis fields

  • « SolrQuery::removeHighlightField
  • SolrQuery::removeMltQueryField »
  • PHP Manual
  • SolrQuery
  • Removes one of the moreLikeThis fields

SolrQuery::removeMltField

(PECL solr >= 0.9.2)

SolrQuery::removeMltField — Removes one of the moreLikeThis fields

Descrição

public SolrQuery::removeMltField(string $field): SolrQuery

Removes one of the moreLikeThis fields.

Parâmetros

field

Name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes one of the moreLikeThis query fields

  • « SolrQuery::removeMltField
  • SolrQuery::removeSortField »
  • PHP Manual
  • SolrQuery
  • Removes one of the moreLikeThis query fields

SolrQuery::removeMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields

Descrição

public SolrQuery::removeMltQueryField(string $queryField): SolrQuery

Removes one of the moreLikeThis query fields.

Parâmetros

queryField

The query field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes one of the sort fields

  • « SolrQuery::removeMltQueryField
  • SolrQuery::removeStatsFacet »
  • PHP Manual
  • SolrQuery
  • Removes one of the sort fields

SolrQuery::removeSortField

(PECL solr >= 0.9.2)

SolrQuery::removeSortField — Removes one of the sort fields

Descrição

public SolrQuery::removeSortField(string $field): SolrQuery

Removes one of the sort fields

Parâmetros

field

The name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes one of the stats.facet parameters

  • « SolrQuery::removeSortField
  • SolrQuery::removeStatsField »
  • PHP Manual
  • SolrQuery
  • Removes one of the stats.facet parameters

SolrQuery::removeStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters

Descrição

public SolrQuery::removeStatsFacet(string $value): SolrQuery

Removes one of the stats.facet parameters

Parâmetros

value

The value

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Removes one of the stats.field parameters

  • « SolrQuery::removeStatsFacet
  • SolrQuery::setEchoHandler »
  • PHP Manual
  • SolrQuery
  • Removes one of the stats.field parameters

SolrQuery::removeStatsField

(PECL solr >= 0.9.2)

SolrQuery::removeStatsField — Removes one of the stats.field parameters

Descrição

public SolrQuery::removeStatsField(string $field): SolrQuery

Removes one of the stats.field parameters

Parâmetros

field

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Toggles the echoHandler parameter

  • « SolrQuery::removeStatsField
  • SolrQuery::setEchoParams »
  • PHP Manual
  • SolrQuery
  • Toggles the echoHandler parameter

SolrQuery::setEchoHandler

(PECL solr >= 0.9.2)

SolrQuery::setEchoHandler — Toggles the echoHandler parameter

Descrição

public SolrQuery::setEchoHandler(bool $flag): SolrQuery

If set to true, Solr places the name of the handle used in the response to the client for debugging purposes.

Parâmetros

flag

true or false

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Determines what kind of parameters to include in the response

  • « SolrQuery::setEchoHandler
  • SolrQuery::setExpand »
  • PHP Manual
  • SolrQuery
  • Determines what kind of parameters to include in the response

SolrQuery::setEchoParams

(PECL solr >= 0.9.2)

SolrQuery::setEchoParams — Determines what kind of parameters to include in the response

Descrição

public SolrQuery::setEchoParams(string $type): SolrQuery

Instructs Solr what kinds of Request parameters should be included in the response for debugging purposes, legal values include:

- none - don't include any request parameters for debugging
- explicit - include the parameters explicitly specified by the client in the request
- all - include all parameters involved in this request, either specified explicitly by the client, or implicit because of the request handler configuration.

Parâmetros

type

The type of parameters to include

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Enables/Disables the Expand Component

  • « SolrQuery::setEchoParams
  • SolrQuery::setExpandQuery »
  • PHP Manual
  • SolrQuery
  • Enables/Disables the Expand Component

SolrQuery::setExpand

(PECL solr >= 2.2.0)

SolrQuery::setExpand — Enables/Disables the Expand Component

Descrição

public SolrQuery::setExpand(bool $value): SolrQuery

Enables/Disables the Expand Component.

Parâmetros

value

Bool flag

Valor Retornado

SolrQuery

Exemplos

Exemplo #1 SolrQuery::setExpand() example

<?php

$query = new SolrQuery('lucene');

$query
->setExpand(true)
->setExpandRows(50)
->setExpandQuery('text:product')
->addExpandFilterQuery('manu:apple')
->addExpandFilterQuery('inStock:true')
->addExpandSortField('score', SolrQuery::ORDER_DESC)
->addExpandSortField('title', SolrQuery::ORDER_ASC);

echo $query.PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&expand=true&expand.rows=50&expand.q=text:product&expand.fq=manu:apple&expand.fq=inStock:true&expand.sort=score desc,title asc

Veja Também

  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the expand.q parameter

  • « SolrQuery::setExpand
  • SolrQuery::setExpandRows »
  • PHP Manual
  • SolrQuery
  • Sets the expand.q parameter

SolrQuery::setExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::setExpandQuery — Sets the expand.q parameter

Descrição

public SolrQuery::setExpandQuery(string $q): SolrQuery

Sets the expand.q parameter.

Overrides the main q parameter, determines which documents to include in the main group.

Parâmetros

q

Valor Retornado

SolrQuery

Veja Também

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the number of rows to display in each group (expand.rows). Server Default 5

  • « SolrQuery::setExpandQuery
  • SolrQuery::setExplainOther »
  • PHP Manual
  • SolrQuery
  • Sets the number of rows to display in each group (expand.rows). Server Default 5

SolrQuery::setExpandRows

(PECL solr >= 2.2.0)

SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5

Descrição

public SolrQuery::setExpandRows(int $value): SolrQuery

Sets the number of rows to display in each group (expand.rows). Server Default 5

Parâmetros

value

Valor Retornado

SolrQuery

Veja Também

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the explainOther common query parameter

  • « SolrQuery::setExpandRows
  • SolrQuery::setFacet »
  • PHP Manual
  • SolrQuery
  • Sets the explainOther common query parameter

SolrQuery::setExplainOther

(PECL solr >= 0.9.2)

SolrQuery::setExplainOther — Sets the explainOther common query parameter

Descrição

public SolrQuery::setExplainOther(string $query): SolrQuery

Sets the explainOther common query parameter

Parâmetros

query

The Lucene query to identify a set of documents

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Maps to the facet parameter. Enables or disables facetting

  • « SolrQuery::setExplainOther
  • SolrQuery::setFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Maps to the facet parameter. Enables or disables facetting

SolrQuery::setFacet

(PECL solr >= 0.9.2)

SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting

Descrição

public SolrQuery::setFacet(bool $flag): SolrQuery

Enables or disables faceting.

Parâmetros

value

true enables faceting and false disables it.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.end

  • « SolrQuery::setFacet
  • SolrQuery::setFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.end

SolrQuery::setFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateEnd — Maps to facet.date.end

Descrição

public SolrQuery::setFacetDateEnd(string $value, string $field_override = ?): SolrQuery

Maps to facet.date.end

Parâmetros

value

See facet.date.end

field_override

Name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.gap

  • « SolrQuery::setFacetDateEnd
  • SolrQuery::setFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.gap

SolrQuery::setFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateGap — Maps to facet.date.gap

Descrição

public SolrQuery::setFacetDateGap(string $value, string $field_override = ?): SolrQuery

Maps to facet.date.gap

Parâmetros

value

See facet.date.gap

field_override

The name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.hardend

  • « SolrQuery::setFacetDateGap
  • SolrQuery::setFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.hardend

SolrQuery::setFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend

Descrição

public SolrQuery::setFacetDateHardEnd(bool $value, string $field_override = ?): SolrQuery

Maps to facet.date.hardend

Parâmetros

value

See facet.date.hardend

field_override

The name of the field

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.start

  • « SolrQuery::setFacetDateHardEnd
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.start

SolrQuery::setFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateStart — Maps to facet.date.start

Descrição

public SolrQuery::setFacetDateStart(string $value, string $field_override = ?): SolrQuery

Maps to facet.date.start

Parâmetros

value

See facet.date.start

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the minimum document frequency used for determining term count

  • « SolrQuery::setFacetDateStart
  • SolrQuery::setFacetLimit »
  • PHP Manual
  • SolrQuery
  • Sets the minimum document frequency used for determining term count

SolrQuery::setFacetEnumCacheMinDefaultFrequency

(PECL solr >= 0.9.2)

SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count

Descrição

public SolrQuery::setFacetEnumCacheMinDefaultFrequency(int $frequency, string $field_override = ?): SolrQuery

Sets the minimum document frequency used for determining term count

Parâmetros

value

The minimum frequency

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Maps to facet.limit

  • « SolrQuery::setFacetEnumCacheMinDefaultFrequency
  • SolrQuery::setFacetMethod »
  • PHP Manual
  • SolrQuery
  • Maps to facet.limit

SolrQuery::setFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::setFacetLimit — Maps to facet.limit

Descrição

public SolrQuery::setFacetLimit(int $limit, string $field_override = ?): SolrQuery

Maps to facet.limit. Sets the maximum number of constraint counts that should be returned for the facet fields.

Parâmetros

limit

The maximum number of constraint counts

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specifies the type of algorithm to use when faceting a field

  • « SolrQuery::setFacetLimit
  • SolrQuery::setFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Specifies the type of algorithm to use when faceting a field

SolrQuery::setFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field

Descrição

public SolrQuery::setFacetMethod(string $method, string $field_override = ?): SolrQuery

Specifies the type of algorithm to use when faceting a field. This method accepts optional field override.

Parâmetros

method

The method to use.

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Maps to facet.mincount

  • « SolrQuery::setFacetMethod
  • SolrQuery::setFacetMissing »
  • PHP Manual
  • SolrQuery
  • Maps to facet.mincount

SolrQuery::setFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::setFacetMinCount — Maps to facet.mincount

Descrição

public SolrQuery::setFacetMinCount(int $mincount, string $field_override = ?): SolrQuery

Sets the minimum counts for facet fields that should be included in the response

Parâmetros

mincount

The minimum count

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Maps to facet.missing

  • « SolrQuery::setFacetMinCount
  • SolrQuery::setFacetOffset »
  • PHP Manual
  • SolrQuery
  • Maps to facet.missing

SolrQuery::setFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::setFacetMissing — Maps to facet.missing

Descrição

public SolrQuery::setFacetMissing(bool $flag, string $field_override = ?): SolrQuery

Used to indicate that in addition to the Term-based constraints of a facet field, a count of all matching results which have no value for the field should be computed

Parâmetros

flag

true turns this feature on. false disables it.

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the offset into the list of constraints to allow for pagination

  • « SolrQuery::setFacetMissing
  • SolrQuery::setFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Sets the offset into the list of constraints to allow for pagination

SolrQuery::setFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination

Descrição

public SolrQuery::setFacetOffset(int $offset, string $field_override = ?): SolrQuery

Sets the offset into the list of constraints to allow for pagination.

Parâmetros

offset

The offset

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specifies a string prefix with which to limits the terms on which to facet

  • « SolrQuery::setFacetOffset
  • SolrQuery::setFacetSort »
  • PHP Manual
  • SolrQuery
  • Specifies a string prefix with which to limits the terms on which to facet

SolrQuery::setFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet

Descrição

public SolrQuery::setFacetPrefix(string $prefix, string $field_override = ?): SolrQuery

Specifies a string prefix with which to limits the terms on which to facet.

Parâmetros

prefix

The prefix string

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Determines the ordering of the facet field constraints

  • « SolrQuery::setFacetPrefix
  • SolrQuery::setGroup »
  • PHP Manual
  • SolrQuery
  • Determines the ordering of the facet field constraints

SolrQuery::setFacetSort

(PECL solr >= 0.9.2)

SolrQuery::setFacetSort — Determines the ordering of the facet field constraints

Descrição

public SolrQuery::setFacetSort(int $facetSort, string $field_override = ?): SolrQuery

Determines the ordering of the facet field constraints

Parâmetros

facetSort

Use SolrQuery::FACET_SORT_INDEX for sorting by index order or SolrQuery::FACET_SORT_COUNT for sorting by count.

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Enable/Disable result grouping (group parameter)

  • « SolrQuery::setFacetSort
  • SolrQuery::setGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Enable/Disable result grouping (group parameter)

SolrQuery::setGroup

(PECL solr >= 2.2.0)

SolrQuery::setGroup — Enable/Disable result grouping (group parameter)

Descrição

public SolrQuery::setGroup(bool $value): SolrQuery

Enable/Disable result grouping (group parameter)

Parâmetros

value

Valor Retornado

Veja Também

  • SolrQuery::getGroup() - Returns true if grouping is enabled
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Enables caching for result grouping

  • « SolrQuery::setGroup
  • SolrQuery::setGroupFacet »
  • PHP Manual
  • SolrQuery
  • Enables caching for result grouping

SolrQuery::setGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::setGroupCachePercent — Enables caching for result grouping

Descrição

public SolrQuery::setGroupCachePercent(int $percent): SolrQuery

Setting this parameter to a number greater than 0 enables caching for result grouping. Result Grouping executes two searches; this option caches the second search. The server default value is 0. Testing has shown that group caching only improves search time with Boolean, wildcard, and fuzzy queries. For simple queries like term or "match all" queries, group caching degrades performance. group.cache.percent parameter

Parâmetros

percent

Valor Retornado

Erros/Exceções

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)


Sets group.facet parameter

  • « SolrQuery::setGroupCachePercent
  • SolrQuery::setGroupFormat »
  • PHP Manual
  • SolrQuery
  • Sets group.facet parameter

SolrQuery::setGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::setGroupFacet — Sets group.facet parameter

Descrição

public SolrQuery::setGroupFacet(bool $value): SolrQuery

Determines whether to compute grouped facets for the field facets specified in facet.field parameters. Grouped facets are computed based on the first specified group.

Parâmetros

value

Valor Retornado

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Sets the group format, result structure (group.format parameter)

  • « SolrQuery::setGroupFacet
  • SolrQuery::setGroupLimit »
  • PHP Manual
  • SolrQuery
  • Sets the group format, result structure (group.format parameter)

SolrQuery::setGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter)

Descrição

public SolrQuery::setGroupFormat(string $value): SolrQuery

Sets the group.format parameter. If this parameter is set to simple, the grouped documents are presented in a single flat list, and the start and rows parameters affect the numbers of documents instead of groups. Accepts: grouped/simple

Parâmetros

value

Valor Retornado

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Specifies the number of results to return for each group. The server default value is 1

  • « SolrQuery::setGroupFormat
  • SolrQuery::setGroupMain »
  • PHP Manual
  • SolrQuery
  • Specifies the number of results to return for each group. The server default value is 1

SolrQuery::setGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1

Descrição

public SolrQuery::setGroupLimit(int $value): SolrQuery

Specifies the number of results to return for each group. The server default value is 1.

Parâmetros

value

Valor Retornado

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple

  • « SolrQuery::setGroupLimit
  • SolrQuery::setGroupNGroups »
  • PHP Manual
  • SolrQuery
  • If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple

SolrQuery::setGroupMain

(PECL solr >= 2.2.0)

SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple

Descrição

public SolrQuery::setGroupMain(string $value): SolrQuery

If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

Parâmetros

value

If true, the result of the first field grouping command is used as the main result list in the response.

Valor Retornado

Returns an instance of SolrQuery.

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupMain()
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, Solr includes the number of groups that have matched the query in the results

  • « SolrQuery::setGroupMain
  • SolrQuery::setGroupOffset »
  • PHP Manual
  • SolrQuery
  • If true, Solr includes the number of groups that have matched the query in the results

SolrQuery::setGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results

Descrição

public SolrQuery::setGroupNGroups(bool $value): SolrQuery

If true, Solr includes the number of groups that have matched the query in the results.

Parâmetros

value

Valor Retornado

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Sets the group.offset parameter

  • « SolrQuery::setGroupNGroups
  • SolrQuery::setGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Sets the group.offset parameter

SolrQuery::setGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::setGroupOffset — Sets the group.offset parameter

Descrição

public SolrQuery::setGroupOffset(int $value): SolrQuery

Sets the group.offset parameter.

Parâmetros

value

Valor Retornado

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, facet counts are based on the most relevant document of each group matching the query

  • « SolrQuery::setGroupOffset
  • SolrQuery::setHighlight »
  • PHP Manual
  • SolrQuery
  • If true, facet counts are based on the most relevant document of each group matching the query

SolrQuery::setGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query

Descrição

public SolrQuery::setGroupTruncate(bool $value): SolrQuery

If true, facet counts are based on the most relevant document of each group matching the query. The server default value is false. group.truncate parameter

Parâmetros

value

Valor Retornado

Veja Também

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Enables or disables highlighting

  • « SolrQuery::setGroupTruncate
  • SolrQuery::setHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Enables or disables highlighting

SolrQuery::setHighlight

(PECL solr >= 0.9.2)

SolrQuery::setHighlight — Enables or disables highlighting

Descrição

public SolrQuery::setHighlight(bool $flag): SolrQuery

Setting it to true enables highlighted snippets to be generated in the query response.

Setting it to false disables highlighting

Parâmetros

flag

Enable or disable highlighting

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specifies the backup field to use

  • « SolrQuery::setHighlight
  • SolrQuery::setHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Specifies the backup field to use

SolrQuery::setHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::setHighlightAlternateField — Specifies the backup field to use

Descrição

public SolrQuery::setHighlightAlternateField(string $field, string $field_override = ?): SolrQuery

If a snippet cannot be generated because there were no matching terms, one can specify a field to use as the backup or default summary

Parâmetros

field

The name of the backup field

field_override

The name of the field we are overriding this setting for.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specify a formatter for the highlight output

  • « SolrQuery::setHighlightAlternateField
  • SolrQuery::setHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Specify a formatter for the highlight output

SolrQuery::setHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output

Descrição

public SolrQuery::setHighlightFormatter(string $formatter, string $field_override = ?): SolrQuery

Specify a formatter for the highlight output.

Parâmetros

formatter

Currently the only legal value is "simple"

field_override

The name of the field.

Valor Retornado

Returns an instance of SolrQuery.


Sets a text snippet generator for highlighted text

  • « SolrQuery::setHighlightFormatter
  • SolrQuery::setHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Sets a text snippet generator for highlighted text

SolrQuery::setHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text

Descrição

public SolrQuery::setHighlightFragmenter(string $fragmenter, string $field_override = ?): SolrQuery

Specify a text snippet generator for highlighted text.

Parâmetros

fragmenter

The standard fragmenter is gap. Another option is regex, which tries to create fragments that resembles a certain regular expression

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


The size of fragments to consider for highlighting

  • « SolrQuery::setHighlightFragmenter
  • SolrQuery::setHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • The size of fragments to consider for highlighting

SolrQuery::setHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting

Descrição

public SolrQuery::setHighlightFragsize(int $size, string $field_override = ?): SolrQuery

Sets the size, in characters, of fragments to consider for highlighting. "0" indicates that the whole field value should be used (no fragmenting).

Parâmetros

size

The size, in characters, of fragments to consider for highlighting

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Use SpanScorer to highlight phrase terms

  • « SolrQuery::setHighlightFragsize
  • SolrQuery::setHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Use SpanScorer to highlight phrase terms

SolrQuery::setHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms

Descrição

public SolrQuery::setHighlightHighlightMultiTerm(bool $flag): SolrQuery

Use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Parâmetros

flag

Whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of characters of the field to return

  • « SolrQuery::setHighlightHighlightMultiTerm
  • SolrQuery::setHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of characters of the field to return

SolrQuery::setHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return

Descrição

public SolrQuery::setHighlightMaxAlternateFieldLength(int $fieldLength, string $field_override = ?): SolrQuery

If SolrQuery::setHighlightAlternateField() was passed the value true, this parameter specifies the maximum number of characters of the field to return

Any value less than or equal to 0 means unlimited.

Parâmetros

fieldLength

The length of the field

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specifies the number of characters into a document to look for suitable snippets

  • « SolrQuery::setHighlightMaxAlternateFieldLength
  • SolrQuery::setHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Specifies the number of characters into a document to look for suitable snippets

SolrQuery::setHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets

Descrição

public SolrQuery::setHighlightMaxAnalyzedChars(int $value): SolrQuery

Specifies the number of characters into a document to look for suitable snippets

Parâmetros

value

The number of characters into a document to look for suitable snippets

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Whether or not to collapse contiguous fragments into a single fragment

  • « SolrQuery::setHighlightMaxAnalyzedChars
  • SolrQuery::setHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Whether or not to collapse contiguous fragments into a single fragment

SolrQuery::setHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment

Descrição

public SolrQuery::setHighlightMergeContiguous(bool $flag, string $field_override = ?): SolrQuery

Whether or not to collapse contiguous fragments into a single fragment

Parâmetros

value

Whether or not to collapse contiguous fragments into a single fragment

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specify the maximum number of characters to analyze

  • « SolrQuery::setHighlightMergeContiguous
  • SolrQuery::setHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Specify the maximum number of characters to analyze

SolrQuery::setHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze

Descrição

public SolrQuery::setHighlightRegexMaxAnalyzedChars(int $maxAnalyzedChars): SolrQuery

Specify the maximum number of characters to analyze from a field when using the regex fragmenter

Parâmetros

maxAnalyzedChars

The maximum number of characters to analyze from a field when using the regex fragmenter

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specify the regular expression for fragmenting

  • « SolrQuery::setHighlightRegexMaxAnalyzedChars
  • SolrQuery::setHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Specify the regular expression for fragmenting

SolrQuery::setHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting

Descrição

public SolrQuery::setHighlightRegexPattern(string $value): SolrQuery

Specifies the regular expression for fragmenting. This could be used to extract sentences

Parâmetros

value

The regular expression for fragmenting. This could be used to extract sentences

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the factor by which the regex fragmenter can stray from the ideal fragment size

  • « SolrQuery::setHighlightRegexPattern
  • SolrQuery::setHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Sets the factor by which the regex fragmenter can stray from the ideal fragment size

SolrQuery::setHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size

Descrição

public SolrQuery::setHighlightRegexSlop(float $factor): SolrQuery

The factor by which the regex fragmenter can stray from the ideal fragment size ( specfied by SolrQuery::setHighlightFragsize )to accommodate the regular expression

Parâmetros

factor

The factor by which the regex fragmenter can stray from the ideal fragment size

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Require field matching during highlighting

  • « SolrQuery::setHighlightRegexSlop
  • SolrQuery::setHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Require field matching during highlighting

SolrQuery::setHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting

Descrição

public SolrQuery::setHighlightRequireFieldMatch(bool $flag): SolrQuery

If true, then a field will only be highlighted if the query matched in this particular field.

This will only work if SolrQuery::setHighlightUsePhraseHighlighter() was set to true

Parâmetros

flag

true or false

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the text which appears after a highlighted term

  • « SolrQuery::setHighlightRequireFieldMatch
  • SolrQuery::setHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Sets the text which appears after a highlighted term

SolrQuery::setHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term

Descrição

public SolrQuery::setHighlightSimplePost(string $simplePost, string $field_override = ?): SolrQuery

Sets the text which appears before a highlighted term

Parâmetros

simplePost

Sets the text which appears after a highlighted term

The default is </em>

field_override

The name of the field.

Valor Retornado

Returns an instance of SolrQuery.


Sets the text which appears before a highlighted term

  • « SolrQuery::setHighlightSimplePost
  • SolrQuery::setHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Sets the text which appears before a highlighted term

SolrQuery::setHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term

Descrição

public SolrQuery::setHighlightSimplePre(string $simplePre, string $field_override = ?): SolrQuery

Sets the text which appears before a highlighted term

The default is <em>

Parâmetros

simplePre

The text which appears before a highlighted term

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of highlighted snippets to generate per field

  • « SolrQuery::setHighlightSimplePre
  • SolrQuery::setHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of highlighted snippets to generate per field

SolrQuery::setHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field

Descrição

public SolrQuery::setHighlightSnippets(int $value, string $field_override = ?): SolrQuery

Sets the maximum number of highlighted snippets to generate per field

Parâmetros

value

The maximum number of highlighted snippets to generate per field

field_override

The name of the field.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Whether to highlight phrase terms only when they appear within the query phrase

  • « SolrQuery::setHighlightSnippets
  • SolrQuery::setMlt »
  • PHP Manual
  • SolrQuery
  • Whether to highlight phrase terms only when they appear within the query phrase

SolrQuery::setHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase

Descrição

public SolrQuery::setHighlightUsePhraseHighlighter(bool $flag): SolrQuery

Sets whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document

Parâmetros

value

Whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Enables or disables moreLikeThis

  • « SolrQuery::setHighlightUsePhraseHighlighter
  • SolrQuery::setMltBoost »
  • PHP Manual
  • SolrQuery
  • Enables or disables moreLikeThis

SolrQuery::setMlt

(PECL solr >= 0.9.2)

SolrQuery::setMlt — Enables or disables moreLikeThis

Descrição

public SolrQuery::setMlt(bool $flag): SolrQuery

Enables or disables moreLikeThis

Parâmetros

flag

true enables it and false turns it off.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Set if the query will be boosted by the interesting term relevance

  • « SolrQuery::setMlt
  • SolrQuery::setMltCount »
  • PHP Manual
  • SolrQuery
  • Set if the query will be boosted by the interesting term relevance

SolrQuery::setMltBoost

(PECL solr >= 0.9.2)

SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance

Descrição

public SolrQuery::setMltBoost(bool $flag): SolrQuery

Set if the query will be boosted by the interesting term relevance

Parâmetros

value

Sets to true or false

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Set the number of similar documents to return for each result

  • « SolrQuery::setMltBoost
  • SolrQuery::setMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Set the number of similar documents to return for each result

SolrQuery::setMltCount

(PECL solr >= 0.9.2)

SolrQuery::setMltCount — Set the number of similar documents to return for each result

Descrição

public SolrQuery::setMltCount(int $count): SolrQuery

Set the number of similar documents to return for each result

Parâmetros

count

The number of similar documents to return for each result

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of query terms included

  • « SolrQuery::setMltCount
  • SolrQuery::setMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of query terms included

SolrQuery::setMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included

Descrição

public SolrQuery::setMltMaxNumQueryTerms(int $value): SolrQuery

Sets the maximum number of query terms that will be included in any generated query.

Parâmetros

value

The maximum number of query terms that will be included in any generated query

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specifies the maximum number of tokens to parse

  • « SolrQuery::setMltMaxNumQueryTerms
  • SolrQuery::setMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Specifies the maximum number of tokens to parse

SolrQuery::setMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse

Descrição

public SolrQuery::setMltMaxNumTokens(int $value): SolrQuery

Specifies the maximum number of tokens to parse in each example doc field that is not stored with TermVector support.

Parâmetros

value

The maximum number of tokens to parse

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the maximum word length

  • « SolrQuery::setMltMaxNumTokens
  • SolrQuery::setMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Sets the maximum word length

SolrQuery::setMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxWordLength — Sets the maximum word length

Descrição

public SolrQuery::setMltMaxWordLength(int $maxWordLength): SolrQuery

Sets the maximum word length above which words will be ignored.

Parâmetros

maxWordLength

The maximum word length above which words will be ignored

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the mltMinDoc frequency

  • « SolrQuery::setMltMaxWordLength
  • SolrQuery::setMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Sets the mltMinDoc frequency

SolrQuery::setMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency

Descrição

public SolrQuery::setMltMinDocFrequency(int $minDocFrequency): SolrQuery

The frequency at which words will be ignored which do not occur in at least this many docs.

Parâmetros

minDocFrequency

Sets the frequency at which words will be ignored which do not occur in at least this many docs.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the frequency below which terms will be ignored in the source docs

  • « SolrQuery::setMltMinDocFrequency
  • SolrQuery::setMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Sets the frequency below which terms will be ignored in the source docs

SolrQuery::setMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs

Descrição

public SolrQuery::setMltMinTermFrequency(int $minTermFrequency): SolrQuery

Sets the frequency below which terms will be ignored in the source docs

Parâmetros

minTermFrequency

The frequency below which terms will be ignored in the source docs

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the minimum word length

  • « SolrQuery::setMltMinTermFrequency
  • SolrQuery::setOmitHeader »
  • PHP Manual
  • SolrQuery
  • Sets the minimum word length

SolrQuery::setMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMinWordLength — Sets the minimum word length

Descrição

public SolrQuery::setMltMinWordLength(int $minWordLength): SolrQuery

Sets the minimum word length below which words will be ignored.

Parâmetros

minWordLength

The minimum word length below which words will be ignored

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Exclude the header from the returned results

  • « SolrQuery::setMltMinWordLength
  • SolrQuery::setQuery »
  • PHP Manual
  • SolrQuery
  • Exclude the header from the returned results

SolrQuery::setOmitHeader

(PECL solr >= 0.9.2)

SolrQuery::setOmitHeader — Exclude the header from the returned results

Descrição

public SolrQuery::setOmitHeader(bool $flag): SolrQuery

Exclude the header from the returned results.

Parâmetros

flag

true excludes the header from the result.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the search query

  • « SolrQuery::setOmitHeader
  • SolrQuery::setRows »
  • PHP Manual
  • SolrQuery
  • Sets the search query

SolrQuery::setQuery

(PECL solr >= 0.9.2)

SolrQuery::setQuery — Sets the search query

Descrição

public SolrQuery::setQuery(string $query): SolrQuery

Sets the search query.

Parâmetros

query

The search query

Valor Retornado

Returns the current SolrQuery object


Specifies the maximum number of rows to return in the result

  • « SolrQuery::setQuery
  • SolrQuery::setShowDebugInfo »
  • PHP Manual
  • SolrQuery
  • Specifies the maximum number of rows to return in the result

SolrQuery::setRows

(PECL solr >= 0.9.2)

SolrQuery::setRows — Specifies the maximum number of rows to return in the result

Descrição

public SolrQuery::setRows(int $rows): SolrQuery

Specifies the maximum number of rows to return in the result

Parâmetros

rows

The maximum number of rows to return

Valor Retornado

Returns the current SolrQuery object.


Flag to show debug information

  • « SolrQuery::setRows
  • SolrQuery::setStart »
  • PHP Manual
  • SolrQuery
  • Flag to show debug information

SolrQuery::setShowDebugInfo

(PECL solr >= 0.9.2)

SolrQuery::setShowDebugInfo — Flag to show debug information

Descrição

public SolrQuery::setShowDebugInfo(bool $flag): SolrQuery

Whether to show debug info

Parâmetros

flag

Whether to show debug info. true or false

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specifies the number of rows to skip

  • « SolrQuery::setShowDebugInfo
  • SolrQuery::setStats »
  • PHP Manual
  • SolrQuery
  • Specifies the number of rows to skip

SolrQuery::setStart

(PECL solr >= 0.9.2)

SolrQuery::setStart — Specifies the number of rows to skip

Descrição

public SolrQuery::setStart(int $start): SolrQuery

Specifies the number of rows to skip. Useful in pagination of results.

Parâmetros

start

The number of rows to skip.

Valor Retornado

Returns the current SolrQuery object.


Enables or disables the Stats component

  • « SolrQuery::setStart
  • SolrQuery::setTerms »
  • PHP Manual
  • SolrQuery
  • Enables or disables the Stats component

SolrQuery::setStats

(PECL solr >= 0.9.2)

SolrQuery::setStats — Enables or disables the Stats component

Descrição

public SolrQuery::setStats(bool $flag): SolrQuery

Enables or disables the Stats component.

Parâmetros

flag

true turns on the stats component and false disables it.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Enables or disables the TermsComponent

  • « SolrQuery::setStats
  • SolrQuery::setTermsField »
  • PHP Manual
  • SolrQuery
  • Enables or disables the TermsComponent

SolrQuery::setTerms

(PECL solr >= 0.9.2)

SolrQuery::setTerms — Enables or disables the TermsComponent

Descrição

public SolrQuery::setTerms(bool $flag): SolrQuery

Enables or disables the TermsComponent

Parâmetros

flag

true enables it. false turns it off

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the name of the field to get the Terms from

  • « SolrQuery::setTerms
  • SolrQuery::setTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Sets the name of the field to get the Terms from

SolrQuery::setTermsField

(PECL solr >= 0.9.2)

SolrQuery::setTermsField — Sets the name of the field to get the Terms from

Descrição

public SolrQuery::setTermsField(string $fieldname): SolrQuery

Sets the name of the field to get the terms from

Parâmetros

fieldname

The field name

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Include the lower bound term in the result set

  • « SolrQuery::setTermsField
  • SolrQuery::setTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Include the lower bound term in the result set

SolrQuery::setTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set

Descrição

public SolrQuery::setTermsIncludeLowerBound(bool $flag): SolrQuery

Include the lower bound term in the result set.

Parâmetros

flag

Include the lower bound term in the result set

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Include the upper bound term in the result set

  • « SolrQuery::setTermsIncludeLowerBound
  • SolrQuery::setTermsLimit »
  • PHP Manual
  • SolrQuery
  • Include the upper bound term in the result set

SolrQuery::setTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set

Descrição

public SolrQuery::setTermsIncludeUpperBound(bool $flag): SolrQuery

Include the upper bound term in the result set.

Parâmetros

flag

true or false

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of terms to return

  • « SolrQuery::setTermsIncludeUpperBound
  • SolrQuery::setTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of terms to return

SolrQuery::setTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::setTermsLimit — Sets the maximum number of terms to return

Descrição

public SolrQuery::setTermsLimit(int $limit): SolrQuery

Sets the maximum number of terms to return

Parâmetros

limit

The maximum number of terms to return. All the terms will be returned if the limit is negative.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specifies the Term to start from

  • « SolrQuery::setTermsLimit
  • SolrQuery::setTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Specifies the Term to start from

SolrQuery::setTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsLowerBound — Specifies the Term to start from

Descrição

public SolrQuery::setTermsLowerBound(string $lowerBound): SolrQuery

Specifies the Term to start from

Parâmetros

lowerBound

The lower bound Term

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the maximum document frequency

  • « SolrQuery::setTermsLowerBound
  • SolrQuery::setTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Sets the maximum document frequency

SolrQuery::setTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMaxCount — Sets the maximum document frequency

Descrição

public SolrQuery::setTermsMaxCount(int $frequency): SolrQuery

Sets the maximum document frequency.

Parâmetros

frequency

The maximum document frequency.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the minimum document frequency

  • « SolrQuery::setTermsMaxCount
  • SolrQuery::setTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Sets the minimum document frequency

SolrQuery::setTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMinCount — Sets the minimum document frequency

Descrição

public SolrQuery::setTermsMinCount(int $frequency): SolrQuery

Sets the minimum doc frequency to return in order to be included

Parâmetros

frequency

The minimum frequency

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Restrict matches to terms that start with the prefix

  • « SolrQuery::setTermsMinCount
  • SolrQuery::setTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Restrict matches to terms that start with the prefix

SolrQuery::setTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix

Descrição

public SolrQuery::setTermsPrefix(string $prefix): SolrQuery

Restrict matches to terms that start with the prefix

Parâmetros

prefix

Restrict matches to terms that start with the prefix

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Return the raw characters of the indexed term

  • « SolrQuery::setTermsPrefix
  • SolrQuery::setTermsSort »
  • PHP Manual
  • SolrQuery
  • Return the raw characters of the indexed term

SolrQuery::setTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term

Descrição

public SolrQuery::setTermsReturnRaw(bool $flag): SolrQuery

If true, return the raw characters of the indexed term, regardless of if it is human readable

Parâmetros

value

true or false

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Specifies how to sort the returned terms

  • « SolrQuery::setTermsReturnRaw
  • SolrQuery::setTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Specifies how to sort the returned terms

SolrQuery::setTermsSort

(PECL solr >= 0.9.2)

SolrQuery::setTermsSort — Specifies how to sort the returned terms

Descrição

public SolrQuery::setTermsSort(int $sortType): SolrQuery

If SolrQuery::TERMS_SORT_COUNT, sorts the terms by the term frequency (highest count first). If SolrQuery::TERMS_SORT_INDEX, returns the terms in index order

Parâmetros

sortType

SolrQuery::TERMS_SORT_INDEX or SolrQuery::TERMS_SORT_COUNT

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


Sets the term to stop at

  • « SolrQuery::setTermsSort
  • SolrQuery::setTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Sets the term to stop at

SolrQuery::setTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsUpperBound — Sets the term to stop at

Descrição

public SolrQuery::setTermsUpperBound(string $upperBound): SolrQuery

Sets the term to stop at

Parâmetros

upperBound

The term to stop at

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


The time allowed for search to finish

  • « SolrQuery::setTermsUpperBound
  • SolrDisMaxQuery »
  • PHP Manual
  • SolrQuery
  • The time allowed for search to finish

SolrQuery::setTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::setTimeAllowed — The time allowed for search to finish

Descrição

public SolrQuery::setTimeAllowed(int $timeAllowed): SolrQuery

The time allowed for a search to finish. This value only applies to the search and not to requests in general. Time is in milliseconds. Values less than or equal to zero implies no time restriction. Partial results may be returned, if there are any.

Parâmetros

timeAllowed

The time allowed for a search to finish.

Valor Retornado

Returns the current SolrQuery object, if the return value is used.


The SolrDisMaxQuery class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

Resumo da classe

class SolrDisMaxQuery extends SolrQuery implements Serializable {
/* Propriedades herdadas */
const int SolrQuery::ORDER_ASC = 0;
const int SolrQuery::ORDER_DESC = 1;
const int SolrQuery::FACET_SORT_INDEX = 0;
const int SolrQuery::FACET_SORT_COUNT = 1;
const int SolrQuery::TERMS_SORT_INDEX = 0;
const int SolrQuery::TERMS_SORT_COUNT = 1;
/* Métodos */
public __construct(string $q = ?)
public addBigramPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery
public addBoostQuery(string $field, string $value, string $boost = ?): SolrDisMaxQuery
public addPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery
public addQueryField(string $field, string $boost = ?): SolrDisMaxQuery
public addTrigramPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery
public addUserField(string $field): SolrDisMaxQuery
public removeBigramPhraseField(string $field): SolrDisMaxQuery
public removeBoostQuery(string $field): SolrDisMaxQuery
public removePhraseField(string $field): SolrDisMaxQuery
public removeQueryField(string $field): SolrDisMaxQuery
public removeTrigramPhraseField(string $field): SolrDisMaxQuery
public removeUserField(string $field): SolrDisMaxQuery
public setBigramPhraseFields(string $fields): SolrDisMaxQuery
public setBigramPhraseSlop(string $slop): SolrDisMaxQuery
public setBoostFunction(string $function): SolrDisMaxQuery
public setBoostQuery(string $q): SolrDisMaxQuery
public setMinimumMatch(string $value): SolrDisMaxQuery
public setPhraseFields(string $fields): SolrDisMaxQuery
public setPhraseSlop(string $slop): SolrDisMaxQuery
public setQueryAlt(string $q): SolrDisMaxQuery
public setQueryPhraseSlop(string $slop): SolrDisMaxQuery
public setTieBreaker(string $tieBreaker): SolrDisMaxQuery
public setTrigramPhraseFields(string $fields): SolrDisMaxQuery
public setTrigramPhraseSlop(string $slop): SolrDisMaxQuery
public setUserFields(string $fields): SolrDisMaxQuery
public useDisMaxQueryParser(): SolrDisMaxQuery
public useEDisMaxQueryParser(): SolrDisMaxQuery
/* Métodos herdados */
public SolrQuery::addExpandFilterQuery(string $fq): SolrQuery
public SolrQuery::addExpandSortField(string $field, string $order = ?): SolrQuery
public SolrQuery::addFacetDateField(string $dateField): SolrQuery
public SolrQuery::addFacetDateOther(string $value, string $field_override = ?): SolrQuery
public SolrQuery::addFacetField(string $field): SolrQuery
public SolrQuery::addFacetQuery(string $facetQuery): SolrQuery
public SolrQuery::addField(string $field): SolrQuery
public SolrQuery::addFilterQuery(string $fq): SolrQuery
public SolrQuery::addGroupField(string $value): SolrQuery
public SolrQuery::addGroupFunction(string $value): SolrQuery
public SolrQuery::addGroupQuery(string $value): SolrQuery
public SolrQuery::addGroupSortField(string $field, int $order = ?): SolrQuery
public SolrQuery::addHighlightField(string $field): SolrQuery
public SolrQuery::addMltField(string $field): SolrQuery
public SolrQuery::addMltQueryField(string $field, float $boost): SolrQuery
public SolrQuery::addSortField(string $field, int $order = SolrQuery::ORDER_DESC): SolrQuery
public SolrQuery::addStatsFacet(string $field): SolrQuery
public SolrQuery::addStatsField(string $field): SolrQuery
public SolrQuery::collapse(SolrCollapseFunction $collapseFunction): SolrQuery
public SolrQuery::getExpand(): bool
public SolrQuery::getExpandFilterQueries(): array
public SolrQuery::getExpandQuery(): array
public SolrQuery::getExpandRows(): int
public SolrQuery::getExpandSortFields(): array
public SolrQuery::getFacet(): bool
public SolrQuery::getFacetDateEnd(string $field_override = ?): string
public SolrQuery::getFacetDateFields(): array
public SolrQuery::getFacetDateGap(string $field_override = ?): string
public SolrQuery::getFacetDateHardEnd(string $field_override = ?): string
public SolrQuery::getFacetDateOther(string $field_override = ?): array
public SolrQuery::getFacetDateStart(string $field_override = ?): string
public SolrQuery::getFacetFields(): array
public SolrQuery::getFacetLimit(string $field_override = ?): int
public SolrQuery::getFacetMethod(string $field_override = ?): string
public SolrQuery::getFacetMinCount(string $field_override = ?): int
public SolrQuery::getFacetMissing(string $field_override = ?): bool
public SolrQuery::getFacetOffset(string $field_override = ?): int
public SolrQuery::getFacetPrefix(string $field_override = ?): string
public SolrQuery::getFacetQueries(): array
public SolrQuery::getFacetSort(string $field_override = ?): int
public SolrQuery::getFields(): array
public SolrQuery::getFilterQueries(): array
public SolrQuery::getGroup(): bool
public SolrQuery::getGroupCachePercent(): int
public SolrQuery::getGroupFacet(): bool
public SolrQuery::getGroupFields(): array
public SolrQuery::getGroupFormat(): string
public SolrQuery::getGroupFunctions(): array
public SolrQuery::getGroupLimit(): int
public SolrQuery::getGroupMain(): bool
public SolrQuery::getGroupNGroups(): bool
public SolrQuery::getGroupOffset(): int
public SolrQuery::getGroupQueries(): array
public SolrQuery::getGroupSortFields(): array
public SolrQuery::getGroupTruncate(): bool
public SolrQuery::getHighlight(): bool
public SolrQuery::getHighlightAlternateField(string $field_override = ?): string
public SolrQuery::getHighlightFields(): array
public SolrQuery::getHighlightFormatter(string $field_override = ?): string
public SolrQuery::getHighlightFragmenter(string $field_override = ?): string
public SolrQuery::getHighlightFragsize(string $field_override = ?): int
public SolrQuery::getHighlightHighlightMultiTerm(): bool
public SolrQuery::getHighlightMaxAlternateFieldLength(string $field_override = ?): int
public SolrQuery::getHighlightMaxAnalyzedChars(): int
public SolrQuery::getHighlightMergeContiguous(string $field_override = ?): bool
public SolrQuery::getHighlightRegexMaxAnalyzedChars(): int
public SolrQuery::getHighlightRegexPattern(): string
public SolrQuery::getHighlightRegexSlop(): float
public SolrQuery::getHighlightRequireFieldMatch(): bool
public SolrQuery::getHighlightSimplePost(string $field_override = ?): string
public SolrQuery::getHighlightSimplePre(string $field_override = ?): string
public SolrQuery::getHighlightSnippets(string $field_override = ?): int
public SolrQuery::getHighlightUsePhraseHighlighter(): bool
public SolrQuery::getMlt(): bool
public SolrQuery::getMltBoost(): bool
public SolrQuery::getMltCount(): int
public SolrQuery::getMltFields(): array
public SolrQuery::getMltMaxNumQueryTerms(): int
public SolrQuery::getMltMaxNumTokens(): int
public SolrQuery::getMltMaxWordLength(): int
public SolrQuery::getMltMinDocFrequency(): int
public SolrQuery::getMltMinTermFrequency(): int
public SolrQuery::getMltMinWordLength(): int
public SolrQuery::getMltQueryFields(): array
public SolrQuery::getQuery(): string
public SolrQuery::getRows(): int
public SolrQuery::getSortFields(): array
public SolrQuery::getStart(): int
public SolrQuery::getStats(): bool
public SolrQuery::getStatsFacets(): array
public SolrQuery::getStatsFields(): array
public SolrQuery::getTerms(): bool
public SolrQuery::getTermsField(): string
public SolrQuery::getTermsIncludeLowerBound(): bool
public SolrQuery::getTermsIncludeUpperBound(): bool
public SolrQuery::getTermsLimit(): int
public SolrQuery::getTermsLowerBound(): string
public SolrQuery::getTermsMaxCount(): int
public SolrQuery::getTermsMinCount(): int
public SolrQuery::getTermsPrefix(): string
public SolrQuery::getTermsReturnRaw(): bool
public SolrQuery::getTermsSort(): int
public SolrQuery::getTermsUpperBound(): string
public SolrQuery::getTimeAllowed(): int
public SolrQuery::removeExpandFilterQuery(string $fq): SolrQuery
public SolrQuery::removeExpandSortField(string $field): SolrQuery
public SolrQuery::removeFacetDateField(string $field): SolrQuery
public SolrQuery::removeFacetDateOther(string $value, string $field_override = ?): SolrQuery
public SolrQuery::removeFacetField(string $field): SolrQuery
public SolrQuery::removeFacetQuery(string $value): SolrQuery
public SolrQuery::removeField(string $field): SolrQuery
public SolrQuery::removeFilterQuery(string $fq): SolrQuery
public SolrQuery::removeHighlightField(string $field): SolrQuery
public SolrQuery::removeMltField(string $field): SolrQuery
public SolrQuery::removeMltQueryField(string $queryField): SolrQuery
public SolrQuery::removeSortField(string $field): SolrQuery
public SolrQuery::removeStatsFacet(string $value): SolrQuery
public SolrQuery::removeStatsField(string $field): SolrQuery
public SolrQuery::setEchoHandler(bool $flag): SolrQuery
public SolrQuery::setEchoParams(string $type): SolrQuery
public SolrQuery::setExpand(bool $value): SolrQuery
public SolrQuery::setExpandQuery(string $q): SolrQuery
public SolrQuery::setExpandRows(int $value): SolrQuery
public SolrQuery::setExplainOther(string $query): SolrQuery
public SolrQuery::setFacet(bool $flag): SolrQuery
public SolrQuery::setFacetDateEnd(string $value, string $field_override = ?): SolrQuery
public SolrQuery::setFacetDateGap(string $value, string $field_override = ?): SolrQuery
public SolrQuery::setFacetDateHardEnd(bool $value, string $field_override = ?): SolrQuery
public SolrQuery::setFacetDateStart(string $value, string $field_override = ?): SolrQuery
public SolrQuery::setFacetEnumCacheMinDefaultFrequency(int $frequency, string $field_override = ?): SolrQuery
public SolrQuery::setFacetLimit(int $limit, string $field_override = ?): SolrQuery
public SolrQuery::setFacetMethod(string $method, string $field_override = ?): SolrQuery
public SolrQuery::setFacetMinCount(int $mincount, string $field_override = ?): SolrQuery
public SolrQuery::setFacetMissing(bool $flag, string $field_override = ?): SolrQuery
public SolrQuery::setFacetOffset(int $offset, string $field_override = ?): SolrQuery
public SolrQuery::setFacetPrefix(string $prefix, string $field_override = ?): SolrQuery
public SolrQuery::setFacetSort(int $facetSort, string $field_override = ?): SolrQuery
public SolrQuery::setGroup(bool $value): SolrQuery
public SolrQuery::setGroupCachePercent(int $percent): SolrQuery
public SolrQuery::setGroupFacet(bool $value): SolrQuery
public SolrQuery::setGroupFormat(string $value): SolrQuery
public SolrQuery::setGroupLimit(int $value): SolrQuery
public SolrQuery::setGroupMain(string $value): SolrQuery
public SolrQuery::setGroupNGroups(bool $value): SolrQuery
public SolrQuery::setGroupOffset(int $value): SolrQuery
public SolrQuery::setGroupTruncate(bool $value): SolrQuery
public SolrQuery::setHighlight(bool $flag): SolrQuery
public SolrQuery::setHighlightAlternateField(string $field, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightFormatter(string $formatter, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightFragmenter(string $fragmenter, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightFragsize(int $size, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightHighlightMultiTerm(bool $flag): SolrQuery
public SolrQuery::setHighlightMaxAlternateFieldLength(int $fieldLength, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightMaxAnalyzedChars(int $value): SolrQuery
public SolrQuery::setHighlightMergeContiguous(bool $flag, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightRegexMaxAnalyzedChars(int $maxAnalyzedChars): SolrQuery
public SolrQuery::setHighlightRegexPattern(string $value): SolrQuery
public SolrQuery::setHighlightRegexSlop(float $factor): SolrQuery
public SolrQuery::setHighlightRequireFieldMatch(bool $flag): SolrQuery
public SolrQuery::setHighlightSimplePost(string $simplePost, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightSimplePre(string $simplePre, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightSnippets(int $value, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightUsePhraseHighlighter(bool $flag): SolrQuery
public SolrQuery::setMlt(bool $flag): SolrQuery
public SolrQuery::setMltBoost(bool $flag): SolrQuery
public SolrQuery::setMltCount(int $count): SolrQuery
public SolrQuery::setMltMaxNumQueryTerms(int $value): SolrQuery
public SolrQuery::setMltMaxNumTokens(int $value): SolrQuery
public SolrQuery::setMltMaxWordLength(int $maxWordLength): SolrQuery
public SolrQuery::setMltMinDocFrequency(int $minDocFrequency): SolrQuery
public SolrQuery::setMltMinTermFrequency(int $minTermFrequency): SolrQuery
public SolrQuery::setMltMinWordLength(int $minWordLength): SolrQuery
public SolrQuery::setOmitHeader(bool $flag): SolrQuery
public SolrQuery::setQuery(string $query): SolrQuery
public SolrQuery::setRows(int $rows): SolrQuery
public SolrQuery::setShowDebugInfo(bool $flag): SolrQuery
public SolrQuery::setStart(int $start): SolrQuery
public SolrQuery::setStats(bool $flag): SolrQuery
public SolrQuery::setTerms(bool $flag): SolrQuery
public SolrQuery::setTermsField(string $fieldname): SolrQuery
public SolrQuery::setTermsIncludeLowerBound(bool $flag): SolrQuery
public SolrQuery::setTermsIncludeUpperBound(bool $flag): SolrQuery
public SolrQuery::setTermsLimit(int $limit): SolrQuery
public SolrQuery::setTermsLowerBound(string $lowerBound): SolrQuery
public SolrQuery::setTermsMaxCount(int $frequency): SolrQuery
public SolrQuery::setTermsMinCount(int $frequency): SolrQuery
public SolrQuery::setTermsPrefix(string $prefix): SolrQuery
public SolrQuery::setTermsReturnRaw(bool $flag): SolrQuery
public SolrQuery::setTermsSort(int $sortType): SolrQuery
public SolrQuery::setTermsUpperBound(string $upperBound): SolrQuery
public SolrQuery::setTimeAllowed(int $timeAllowed): SolrQuery
}

Constantes pré-definidas

SolrDisMaxQuery::ORDER_ASC

Used to specify that the sorting should be in acending order (Duplicated for easier migration)

SolrDisMaxQuery::ORDER_DESC

Used to specify that the sorting should be in descending order (Duplicated for easier migration)

SolrDisMaxQuery::FACET_SORT_INDEX

Used to specify that the facet should sort by index (Duplicated for easier migration)

SolrDisMaxQuery::FACET_SORT_COUNT

Used to specify that the facet should sort by count (Duplicated for easier migration)

SolrDisMaxQuery::TERMS_SORT_INDEX

Used in the TermsComponent (Duplicated for easier migration)

SolrDisMaxQuery::TERMS_SORT_COUNT

Used in the TermsComponent (Duplicated for easier migration)

Índice

  • SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)
  • SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)
  • SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)
  • SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::__construct — Class Constructor
  • SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)
  • SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)
  • SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)
  • SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)
  • SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter)
  • SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)
  • SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)
  • SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)
  • SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)
  • SolrDisMaxQuery::setQueryPhraseSlop — Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
  • SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)
  • SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)
  • SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser
  • SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax


Adds a Phrase Bigram Field (pf2 parameter)

  • « SolrDisMaxQuery
  • SolrDisMaxQuery::addBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Phrase Bigram Field (pf2 parameter)

SolrDisMaxQuery::addBigramPhraseField

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)

Descrição

public SolrDisMaxQuery::addBigramPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery

Adds a Phrase Bigram Field (pf2 parameter) output format: field~slop^boost OR field^boost Slop is optional

Parâmetros

field

boost

slop

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::addBigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
->addBigramPhraseField('cat', 2, 5.1)
->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5

Veja Também

  • SolrDisMaxQuery::removeBigramPhraseField() - Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::setBigramPhraseFields() - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)


Adds a boost query field with value and optional boost (bq parameter)

  • « SolrDisMaxQuery::addBigramPhraseField
  • SolrDisMaxQuery::addPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a boost query field with value and optional boost (bq parameter)

SolrDisMaxQuery::addBoostQuery

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)

Descrição

public SolrDisMaxQuery::addBoostQuery(string $field, string $value, string $boost = ?): SolrDisMaxQuery

Adds a Boost Query field with value [and boost] (bq parameter)

Parâmetros

field

value

boost

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::addBoostQuery() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
->addBoostQuery('cat', 'clothing', 2)
->addBoostQuery('cat', 'electronics', 5.1)
;
echo $dismaxQuery.PHP_EOL;
?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&bq=cat:clothing^2 cat:electronics^5.1

Veja Também

  • SolrDisMaxQuery::removeBoostQuery() - Removes a boost query partial by field name (bq)
  • SolrDisMaxQuery::setBoostQuery() - Directly Sets Boost Query Parameter (bq)


Adds a Phrase Field (pf parameter)

  • « SolrDisMaxQuery::addBoostQuery
  • SolrDisMaxQuery::addQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Phrase Field (pf parameter)

SolrDisMaxQuery::addPhraseField

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)

Descrição

public SolrDisMaxQuery::addPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery

Adds a Phrase Field (pf parameter)

Parâmetros

field

field name

boost

slop

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::addPhraseField() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
->addPhraseField('cat', 3, 1)
->addPhraseField('third', 4, 2)
->addPhraseField('source', 55)
;
echo $dismaxQuery;
?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&pf=cat~1^3 third~2^4 source^55

Veja Também

  • SolrDisMaxQuery::removePhraseField() - Removes a Phrase Field (pf parameter)
  • SolrDisMaxQuery::setPhraseFields() - Sets Phrase Fields and their boosts (and slops) using pf2 parameter


Add a query field with optional boost (qf parameter)

  • « SolrDisMaxQuery::addPhraseField
  • SolrDisMaxQuery::addTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Add a query field with optional boost (qf parameter)

SolrDisMaxQuery::addQueryField

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)

Descrição

public SolrDisMaxQuery::addQueryField(string $field, string $boost = ?): SolrDisMaxQuery

Add a query field with optional boost (qf parameter)

Parâmetros

field

field name

boost

Boost value. Boosts documents with matching terms.

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::addQueryField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
->addQueryField("location", 4)
->addQueryField("price")
->addQueryField("sku")
->addQueryField("title",3.4)
;
echo $dismaxQuery;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&qf=location^4 price sku title^3.4

Veja Também

  • SolrDisMaxQuery::removeQueryField() - Removes a Query Field (qf parameter)


Adds a Trigram Phrase Field (pf3 parameter)

  • « SolrDisMaxQuery::addQueryField
  • SolrDisMaxQuery::addUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Trigram Phrase Field (pf3 parameter)

SolrDisMaxQuery::addTrigramPhraseField

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)

Descrição

public SolrDisMaxQuery::addTrigramPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery

Adds a Trigram Phrase Field (pf3 parameter)

Parâmetros

field

Field Name

boost

Field Boost

slop

Field Slop

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::addTrigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá:

q=lucene&defType=%s&pf3=cat~5.1^2 feature^4.5

Veja Também

  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Adds a field to User Fields Parameter (uf)

  • « SolrDisMaxQuery::addTrigramPhraseField
  • SolrDisMaxQuery::__construct »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a field to User Fields Parameter (uf)

SolrDisMaxQuery::addUserField

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)

Descrição

public SolrDisMaxQuery::addUserField(string $field): SolrDisMaxQuery

Adds a field to The User Fields Parameter (uf)

Parâmetros

field

Field Name

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::addUserField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt');

echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&uf=cat text *_dt

Veja Também

  • SolrDisMaxQuery::removeUserField() - Removes a field from The User Fields Parameter (uf)
  • SolrDisMaxQuery::setUserFields() - Sets User Fields parameter (uf)


Class Constructor

  • « SolrDisMaxQuery::addUserField
  • SolrDisMaxQuery::removeBigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Class Constructor

SolrDisMaxQuery::__construct

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::__construct — Class Constructor

Descrição

public SolrDisMaxQuery::__construct(string $q = ?)

Class constructor initializes the object and sets the q parameter if passed

Parâmetros

q

Search Query (q parameter)

Valor Retornado

Erros/Exceções

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Exemplos

Exemplo #1 SolrDisMaxQuery::__construct() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
echo $dismaxQuery;

?>

O exemplo acima produzirá:

q=lucene&defType=edismax


Removes phrase bigram field (pf2 parameter)

  • « SolrDisMaxQuery::__construct
  • SolrDisMaxQuery::removeBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes phrase bigram field (pf2 parameter)

SolrDisMaxQuery::removeBigramPhraseField

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)

Descrição

public SolrDisMaxQuery::removeBigramPhraseField(string $field): SolrDisMaxQuery

Removes a Bigram Phrase Field (pf2 parameter) that was previously added using SolrDisMaxQuery::addBigramPhraseField()

Parâmetros

field

The Field Name

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::removeBigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
->addBigramPhraseField('cat', 2, 5.1)
->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

// remove cat from pf2
$dismaxQuery
->removeBigramPhraseField('cat');
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5
q=lucene&defType=edismax&pf2=feature^4.5

Veja Também

  • SolrDisMaxQuery::addBigramPhraseField() - Adds a Phrase Bigram Field (pf2 parameter)
  • SolrDisMaxQuery::setBigramPhraseFields() - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)


Removes a boost query partial by field name (bq)

  • « SolrDisMaxQuery::removeBigramPhraseField
  • SolrDisMaxQuery::removePhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a boost query partial by field name (bq)

SolrDisMaxQuery::removeBoostQuery

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)

Descrição

public SolrDisMaxQuery::removeBoostQuery(string $field): SolrDisMaxQuery

Removes a boost query partial from the existing query, only if SolrDisMaxQuery::addBoostQuery() was used.

Parâmetros

field

Field Name

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::removeBoostQuery() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
->addBoostQuery('cat', 'electronics', 5.1)
->addBoostQuery('cat', 'hard drive')
;
echo $dismaxQuery.PHP_EOL;
// now remove a query part with field 'cat'
$dismaxQuery
->removeBoostQuery('cat');
echo $dismaxQuery . PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&bq=cat:electronics^5.1 cat:hard drive
q=lucene&defType=edismax&bq=cat:hard drive

Veja Também

  • SolrDisMaxQuery::addBoostQuery() - Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::setBoostQuery() - Directly Sets Boost Query Parameter (bq)


Removes a Phrase Field (pf parameter)

  • « SolrDisMaxQuery::removeBoostQuery
  • SolrDisMaxQuery::removeQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Phrase Field (pf parameter)

SolrDisMaxQuery::removePhraseField

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)

Descrição

public SolrDisMaxQuery::removePhraseField(string $field): SolrDisMaxQuery

Removes a Phrase Field (pf parameter) that was previously added using SolrDisMaxQuery::addPhraseField

Parâmetros

field

Field Name

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::removePhraseField() example

<?php
$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addPhraseField('first', 3, 1)
->addPhraseField('second', 4, 1)
->addPhraseField('cat', 55);
echo $dismaxQuery . PHP_EOL;
echo $dismaxQuery->removePhraseField('second');
?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&pf=first~1^3 second~1^4 cat^55
q=lucene&defType=edismax&pf=first~1^3 cat^55

Veja Também

  • SolrDisMaxQuery::addPhraseField() - Adds a Phrase Field (pf parameter)
  • SolrDisMaxQuery::setPhraseFields() - Sets Phrase Fields and their boosts (and slops) using pf2 parameter


Removes a Query Field (qf parameter)

  • « SolrDisMaxQuery::removePhraseField
  • SolrDisMaxQuery::removeTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Query Field (qf parameter)

SolrDisMaxQuery::removeQueryField

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)

Descrição

public SolrDisMaxQuery::removeQueryField(string $field): SolrDisMaxQuery

Removes a Query Field (qf parameter) from the field list added by SolrDisMaxQuery::addQueryField()

qf: When building DisjunctionMaxQueries from the user's query it specifies the fields to search in, and boosts for those fields.

Parâmetros

field

Field Name

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::removeQueryField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addQueryField('first', 3)
->addQueryField('second', 0.2)
->addQueryField('cat');
echo $dismaxQuery . PHP_EOL;
// remove field 'second'
echo $dismaxQuery->removeQueryField('second');
?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&qf=first^3 second^0.2 cat
q=lucene&defType=edismax&qf=first^3 cat

Veja Também

  • SolrDisMaxQuery::addQueryField() - Add a query field with optional boost (qf parameter)


Removes a Trigram Phrase Field (pf3 parameter)

  • « SolrDisMaxQuery::removeQueryField
  • SolrDisMaxQuery::removeUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Trigram Phrase Field (pf3 parameter)

SolrDisMaxQuery::removeTrigramPhraseField

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)

Descrição

public SolrDisMaxQuery::removeTrigramPhraseField(string $field): SolrDisMaxQuery

Removes a Trigram Phrase Field (pf3 parameter)

Parâmetros

field

Field Name

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::removeTrigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;
// reverse
$dismaxQuery
->removeTrigramPhraseField('cat');
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá:

q=lucene&defType=%s&pf3=cat~5.1^2 feature^4.5
q=lucene&defType=%s&pf3=feature^4.5

Veja Também

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Removes a field from The User Fields Parameter (uf)

  • « SolrDisMaxQuery::removeTrigramPhraseField
  • SolrDisMaxQuery::setBigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a field from The User Fields Parameter (uf)

SolrDisMaxQuery::removeUserField

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)

Descrição

public SolrDisMaxQuery::removeUserField(string $field): SolrDisMaxQuery

Removes a field from The User Fields Parameter (uf)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

field

Field Name

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::removeUserField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt')
;
echo $dismaxQuery.PHP_EOL;

// remove field named 'text'
$dismaxQuery
->removeUserField('text');
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=%s&uf=cat text *_dt
q=lucene&defType=%s&uf=cat *_dt

Veja Também

  • SolrDisMaxQuery::addUserField() - Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::setUserFields() - Sets User Fields parameter (uf)


Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

  • « SolrDisMaxQuery::removeUserField
  • SolrDisMaxQuery::setBigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

SolrDisMaxQuery::setBigramPhraseFields

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

Descrição

public SolrDisMaxQuery::setBigramPhraseFields(string $fields): SolrDisMaxQuery

Sets Bigram Phrase Fields (pf2) and their boosts (and slops)

Parâmetros

fields

Fields boosts (slops)

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setBigramPhraseFields() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery->setBigramPhraseFields("cat~5.1^2 feature^4.5");
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5

Veja Também

  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)
  • SolrDisMaxQuery::addBigramPhraseFields()
  • SolrDisMaxQuery::removeBigramPhraseField() - Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)


Sets Bigram Phrase Slop (ps2 parameter)

  • « SolrDisMaxQuery::setBigramPhraseFields
  • SolrDisMaxQuery::setBoostFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Bigram Phrase Slop (ps2 parameter)

SolrDisMaxQuery::setBigramPhraseSlop

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)

Descrição

public SolrDisMaxQuery::setBigramPhraseSlop(string $slop): SolrDisMaxQuery

Sets Bigram Phrase Slop (ps2 parameter). A default slop for Bigram phrase fields.

Parâmetros

slop

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setBigramPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setBigramPhraseSlop(5);
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&ps2=5


Sets a Boost Function (bf parameter)

  • « SolrDisMaxQuery::setBigramPhraseSlop
  • SolrDisMaxQuery::setBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets a Boost Function (bf parameter)

SolrDisMaxQuery::setBoostFunction

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter)

Descrição

public SolrDisMaxQuery::setBoostFunction(string $function): SolrDisMaxQuery

Sets Boost Function (bf parameter).

Functions (with optional boosts) that will be included in the user's query to influence the score. Any function supported natively by Solr can be used, along with a boost value. e.g.:

recip(rord(myfield),1,2,3)^1.5

Parâmetros

function

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setBoostFunction() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$boostRecentDocsFunction = "recip(ms(NOW,mydatefield),3.16e-11,1,1)";
$dismaxQuery->setBoostFunction($boostRecentDocsFunction);

echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&bf=recip(ms(NOW,mydatefield),3.16e-11,1,1)


Directly Sets Boost Query Parameter (bq)

  • « SolrDisMaxQuery::setBoostFunction
  • SolrDisMaxQuery::setMinimumMatch »
  • PHP Manual
  • SolrDisMaxQuery
  • Directly Sets Boost Query Parameter (bq)

SolrDisMaxQuery::setBoostQuery

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)

Descrição

public SolrDisMaxQuery::setBoostQuery(string $q): SolrDisMaxQuery

Sets Boost Query Parameter (bq)

Parâmetros

q

query

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setBoostQuery() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");

$dismaxQuery->setBoostQuery('cat:electronics manu:local^2');
echo $dismaxQuery.PHP_EOL;
?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&bq=cat:electronics manu:local^2

Veja Também

  • SolrDisMaxQuery::addBoostQuery() - Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::removeBoostQuery() - Removes a boost query partial by field name (bq)


Set Minimum "Should" Match (mm)

  • « SolrDisMaxQuery::setBoostQuery
  • SolrDisMaxQuery::setPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Set Minimum "Should" Match (mm)

SolrDisMaxQuery::setMinimumMatch

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)

Descrição

public SolrDisMaxQuery::setMinimumMatch(string $value): SolrDisMaxQuery

Set Minimum "Should" Match parameter (mm). If the default query operator is AND then mm=100%, if the default query operator (q.op) is OR, then mm=0%.

Parâmetros

value

Minimum match value/expression

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setMinimumMatch() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
// 75% of the query clauses must match
$dismaxQuery->setMinimumMatch("75%");
echo $dismaxQuery . PHP_EOL;

?>

O exemplo acima produzirá:

q=lucene&defType=edismax&mm=75%


Sets Phrase Fields and their boosts (and slops) using pf2 parameter

  • « SolrDisMaxQuery::setMinimumMatch
  • SolrDisMaxQuery::setPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Phrase Fields and their boosts (and slops) using pf2 parameter

SolrDisMaxQuery::setPhraseFields

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter

Descrição

public SolrDisMaxQuery::setPhraseFields(string $fields): SolrDisMaxQuery

Sets Phrase Fields (pf) and their boosts (and slops)

Parâmetros

fields

Fields, boosts [, slops]

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setPhraseFields() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery->setPhraseFields("cat~5.1^2 feature^4.5");
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&pf=cat~5.1^2 feature^4.5

Veja Também

  • SolrDisMaxQuery::addPhraseFields()
  • SolrDisMaxQuery::removePhraseField() - Removes a Phrase Field (pf parameter)


Sets the default slop on phrase queries (ps parameter)

  • « SolrDisMaxQuery::setPhraseFields
  • SolrDisMaxQuery::setQueryAlt »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets the default slop on phrase queries (ps parameter)

SolrDisMaxQuery::setPhraseSlop

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)

Descrição

public SolrDisMaxQuery::setPhraseSlop(string $slop): SolrDisMaxQuery

Sets the default amount of slop on phrase queries built with "pf", "pf2" and/or "pf3" fields (affects boosting). "ps" parameter

Parâmetros

slop

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setPhraseSlop(4);
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá:

q=lucene&defType=edismax&ps=4


Set Query Alternate (q.alt parameter)

  • « SolrDisMaxQuery::setPhraseSlop
  • SolrDisMaxQuery::setQueryPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Set Query Alternate (q.alt parameter)

SolrDisMaxQuery::setQueryAlt

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)

Descrição

public SolrDisMaxQuery::setQueryAlt(string $q): SolrDisMaxQuery

Set Query Alternate (q.alt parameter)

When the main q parameter is not specified or is blank. The q.alt parameter is used

Parâmetros

q

Query String

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setQueryAlt() example

<?php

$dismaxQuery = new DisMaxQuery();
$dismaxQuery->setQueryAlt('*:*');

?>

O exemplo acima produzirá algo semelhante a:

defType=edismax&q.alt=*:*&q=


Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

  • « SolrDisMaxQuery::setQueryAlt
  • SolrDisMaxQuery::setTieBreaker »
  • PHP Manual
  • SolrDisMaxQuery
  • Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

SolrDisMaxQuery::setQueryPhraseSlop

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setQueryPhraseSlop — Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

Descrição

public SolrDisMaxQuery::setQueryPhraseSlop(string $slop): SolrDisMaxQuery

The Query Phrase Slop is the amount of slop permitted on phrase queries explicitly included in the user's query string with the qf parameter.

slop refers to the number of positions one token needs to be moved in relation to another token in order to match a phrase specified in a query.

Parâmetros

slop

Amount of slop

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setQueryPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setQueryPhraseSlop(3);
echo $dismaxQuery;
?>

O exemplo acima produzirá algo semelhante a:

defType=edismax&qs=3


Sets Tie Breaker parameter (tie parameter)

  • « SolrDisMaxQuery::setQueryPhraseSlop
  • SolrDisMaxQuery::setTrigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Tie Breaker parameter (tie parameter)

SolrDisMaxQuery::setTieBreaker

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)

Descrição

public SolrDisMaxQuery::setTieBreaker(string $tieBreaker): SolrDisMaxQuery

Sets Tie Breaker parameter (tie parameter)

Parâmetros

tieBreaker

The tie parameter specifies a float value (which should be something much less than 1) to use as tiebreaker in DisMax queries.

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setTieBreaker() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setTieBreaker(0.1);

echo $dismaxQuery;

?>

O exemplo acima produzirá:

defType=edismax&tie=0.1


Directly Sets Trigram Phrase Fields (pf3 parameter)

  • « SolrDisMaxQuery::setTieBreaker
  • SolrDisMaxQuery::setTrigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Directly Sets Trigram Phrase Fields (pf3 parameter)

SolrDisMaxQuery::setTrigramPhraseFields

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)

Descrição

public SolrDisMaxQuery::setTrigramPhraseFields(string $fields): SolrDisMaxQuery

Directly Sets Trigram Phrase Fields (pf3 parameter)

Parâmetros

fields

Trigram Phrase Fields

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setTrigramPhraseFields() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseFields('cat~5.1^2 feature^4.5');
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá:

q=lucene&defType=edismax&pf3=cat~5.1^2 feature^4.5

Veja Também

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Sets Trigram Phrase Slop (ps3 parameter)

  • « SolrDisMaxQuery::setTrigramPhraseFields
  • SolrDisMaxQuery::setUserFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Trigram Phrase Slop (ps3 parameter)

SolrDisMaxQuery::setTrigramPhraseSlop

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)

Descrição

public SolrDisMaxQuery::setTrigramPhraseSlop(string $slop): SolrDisMaxQuery

Sets Trigram Phrase Slop (ps3 parameter)

Parâmetros

slop

Phrase slop

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setTrigramPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseSlop(2);
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&ps3=2

Veja Também

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)


Sets User Fields parameter (uf)

  • « SolrDisMaxQuery::setTrigramPhraseSlop
  • SolrDisMaxQuery::useDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets User Fields parameter (uf)

SolrDisMaxQuery::setUserFields

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)

Descrição

public SolrDisMaxQuery::setUserFields(string $fields): SolrDisMaxQuery

Sets User Fields parameter (uf)

User Fields: Specifies which schema fields the end user shall be allowed to query.

Parâmetros

fields

Fields names separated by space

This parameter supports wildcards.

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::setUserFields() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setUserFields('field1 field2 *_txt');
echo $dismaxQuery.PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

q=lucene&defType=edismax&uf=field1 field2 *_txt

Veja Também

  • SolrDisMaxQuery::addUserField() - Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::removeUserField() - Removes a field from The User Fields Parameter (uf)


Switch QueryParser to be DisMax Query Parser

  • « SolrDisMaxQuery::setUserFields
  • SolrDisMaxQuery::useEDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Switch QueryParser to be DisMax Query Parser

SolrDisMaxQuery::useDisMaxQueryParser

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser

Descrição

public SolrDisMaxQuery::useDisMaxQueryParser(): SolrDisMaxQuery

Switch QueryParser to be DisMax Query Parser

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::useDisMaxQueryParser() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useDisMaxQueryParser();
echo $dismaxQuery;
?>

O exemplo acima produzirá algo semelhante a:

defType=dismax

Veja Também

  • SolrDisMaxQuery::useDisMaxQueryParser()


Switch QueryParser to be EDisMax

  • « SolrDisMaxQuery::useDisMaxQueryParser
  • SolrCollapseFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Switch QueryParser to be EDisMax

SolrDisMaxQuery::useEDisMaxQueryParser

(Não há informação de versão disponível, talvez apenas no Git)

SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax

Descrição

public SolrDisMaxQuery::useEDisMaxQueryParser(): SolrDisMaxQuery

Switch QueryParser to be EDisMax. By default the query builder uses edismax, if it was switched using SolrDisMaxQuery::useDisMaxQueryParser(), it can be switched back using this method.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

SolrDisMaxQuery

Exemplos

Exemplo #1 SolrDisMaxQuery::useEDisMaxQueryParser() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useEDisMaxQueryParser();
echo $dismaxQuery;

?>

O exemplo acima produzirá algo semelhante a:

defType=edismax


The SolrCollapseFunction class

(PECL solr >= 2.2.0)

Introdução

Resumo da classe

class SolrCollapseFunction {
/* Constantes */
const string NULLPOLICY_IGNORE = ignore;
const string NULLPOLICY_EXPAND = expand;
const string NULLPOLICY_COLLAPSE = collapse;
/* Métodos */
public __construct(string $field = ?)
public getField(): string
public getHint(): string
public getMax(): string
public getMin(): string
public getNullPolicy(): string
public getSize(): int
public setField(string $fieldName): SolrCollapseFunction
public setHint(string $hint): SolrCollapseFunction
public setMax(string $max): SolrCollapseFunction
public setMin(string $min): SolrCollapseFunction
public setNullPolicy(string $nullPolicy): SolrCollapseFunction
public setSize(int $size): SolrCollapseFunction
public __toString(): string
}

Constantes pré-definidas

SolrCollapseFunction::NULLPOLICY_IGNORE

SolrCollapseFunction::NULLPOLICY_EXPAND

SolrCollapseFunction::NULLPOLICY_COLLAPSE

Índice

  • SolrCollapseFunction::__construct — Constructor
  • SolrCollapseFunction::getField — Returns the field that is being collapsed on
  • SolrCollapseFunction::getHint — Returns collapse hint
  • SolrCollapseFunction::getMax — Returns max parameter
  • SolrCollapseFunction::getMin — Returns min parameter
  • SolrCollapseFunction::getNullPolicy — Returns null policy
  • SolrCollapseFunction::getSize — Returns size parameter
  • SolrCollapseFunction::setField — Sets the field to collapse on
  • SolrCollapseFunction::setHint — Sets collapse hint
  • SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query
  • SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only
  • SolrCollapseFunction::setNullPolicy — Sets the NULL Policy
  • SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only
  • SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function


Constructor

  • « SolrCollapseFunction
  • SolrCollapseFunction::getField »
  • PHP Manual
  • SolrCollapseFunction
  • Constructor

SolrCollapseFunction::__construct

(PECL solr >= 2.2.0)

SolrCollapseFunction::__construct — Constructor

Descrição

public SolrCollapseFunction::__construct(string $field = ?)

Collapse Function constructor

Parâmetros

field

The field name to collapse on.

In order to collapse a result. The field type must be a single valued String, Int or Float.

Exemplos

Exemplo #1 SolrCollapseFunction::__construct() example

<?php

include "bootstrap.php";

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
'path' => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_other_field))');
$func->setSize(100);
$func->setNullPolicy(SolrCollapseFunction::NULLPOLICY_EXPAND);

$query->collapse($func);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);

?>

Veja Também

  • SolrQuery::collapse() - Collapses the result set to a single document per group


Returns the field that is being collapsed on

  • « SolrCollapseFunction::__construct
  • SolrCollapseFunction::getHint »
  • PHP Manual
  • SolrCollapseFunction
  • Returns the field that is being collapsed on

SolrCollapseFunction::getField

(PECL solr >= 2.2.0)

SolrCollapseFunction::getField — Returns the field that is being collapsed on

Descrição

public SolrCollapseFunction::getField(): string

Returns the field that is being collapsed on.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrCollapseFunction::setField() - Sets the field to collapse on


Returns collapse hint

  • « SolrCollapseFunction::getField
  • SolrCollapseFunction::getMax »
  • PHP Manual
  • SolrCollapseFunction
  • Returns collapse hint

SolrCollapseFunction::getHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::getHint — Returns collapse hint

Descrição

public SolrCollapseFunction::getHint(): string

Returns collapse hint

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrCollapseFunction::setHint() - Sets collapse hint


Returns max parameter

  • « SolrCollapseFunction::getHint
  • SolrCollapseFunction::getMin »
  • PHP Manual
  • SolrCollapseFunction
  • Returns max parameter

SolrCollapseFunction::getMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMax — Returns max parameter

Descrição

public SolrCollapseFunction::getMax(): string

Returns max parameter

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrCollapseFunction::setMax() - Selects the group heads by the max value of a numeric field or function query


Returns min parameter

  • « SolrCollapseFunction::getMax
  • SolrCollapseFunction::getNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Returns min parameter

SolrCollapseFunction::getMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMin — Returns min parameter

Descrição

public SolrCollapseFunction::getMin(): string

Returns min parameter

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrCollapseFunction::setMin() - Sets the initial size of the collapse data structures when collapsing on a numeric field only


Returns null policy

  • « SolrCollapseFunction::getMin
  • SolrCollapseFunction::getSize »
  • PHP Manual
  • SolrCollapseFunction
  • Returns null policy

SolrCollapseFunction::getNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::getNullPolicy — Returns null policy

Descrição

public SolrCollapseFunction::getNullPolicy(): string

Returns null policy used or null

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrCollapseFunction::setNullPolicy() - Sets the NULL Policy


Returns size parameter

  • « SolrCollapseFunction::getNullPolicy
  • SolrCollapseFunction::setField »
  • PHP Manual
  • SolrCollapseFunction
  • Returns size parameter

SolrCollapseFunction::getSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::getSize — Returns size parameter

Descrição

public SolrCollapseFunction::getSize(): int

Gets the initial size of the collapse data structures when collapsing on a numeric field only

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • SolrCollapseFunction::setSize() - Sets the initial size of the collapse data structures when collapsing on a numeric field only


Sets the field to collapse on

  • « SolrCollapseFunction::getSize
  • SolrCollapseFunction::setHint »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the field to collapse on

SolrCollapseFunction::setField

(PECL solr >= 2.2.0)

SolrCollapseFunction::setField — Sets the field to collapse on

Descrição

public SolrCollapseFunction::setField(string $fieldName): SolrCollapseFunction

The field name to collapse on. In order to collapse a result. The field type must be a single valued String, Int or Float.

Parâmetros

fieldName

Valor Retornado

SolrCollapseFunction


Sets collapse hint

  • « SolrCollapseFunction::setField
  • SolrCollapseFunction::setMax »
  • PHP Manual
  • SolrCollapseFunction
  • Sets collapse hint

SolrCollapseFunction::setHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::setHint — Sets collapse hint

Descrição

public SolrCollapseFunction::setHint(string $hint): SolrCollapseFunction

Sets collapse hint

Parâmetros

hint

Currently there is only one hint available "top_fc", which stands for top level FieldCache

Valor Retornado

SolrCollapseFunction

Exemplos

Exemplo #1 SolrCollapseFunction::setHint() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...


Selects the group heads by the max value of a numeric field or function query

  • « SolrCollapseFunction::setHint
  • SolrCollapseFunction::setMin »
  • PHP Manual
  • SolrCollapseFunction
  • Selects the group heads by the max value of a numeric field or function query

SolrCollapseFunction::setMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query

Descrição

public SolrCollapseFunction::setMax(string $max): SolrCollapseFunction

Selects the group heads by the max value of a numeric field or function query.

Parâmetros

max

Valor Retornado

SolrCollapseFunction

Exemplos

Exemplo #1 SolrCollapseFunction::setMax() example

<?php

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_field))');

$query = new SolrQuery('*:*');

$query->collapse($func);

?>


Sets the initial size of the collapse data structures when collapsing on a numeric field only

  • « SolrCollapseFunction::setMax
  • SolrCollapseFunction::setNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the initial size of the collapse data structures when collapsing on a numeric field only

SolrCollapseFunction::setMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only

Descrição

public SolrCollapseFunction::setMin(string $min): SolrCollapseFunction

Sets the initial size of the collapse data structures when collapsing on a numeric field only

Parâmetros

min

Valor Retornado

SolrCollapseFunction


Sets the NULL Policy

  • « SolrCollapseFunction::setMin
  • SolrCollapseFunction::setSize »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the NULL Policy

SolrCollapseFunction::setNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::setNullPolicy — Sets the NULL Policy

Descrição

public SolrCollapseFunction::setNullPolicy(string $nullPolicy): SolrCollapseFunction

Sets the NULL Policy. One of the 3 policies defined as class constants shall be passed. Accepts ignore, expand, or collapse policies.

Parâmetros

nullPolicy

Valor Retornado

SolrCollapseFunction


Sets the initial size of the collapse data structures when collapsing on a numeric field only

  • « SolrCollapseFunction::setNullPolicy
  • SolrCollapseFunction::__toString »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the initial size of the collapse data structures when collapsing on a numeric field only

SolrCollapseFunction::setSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only

Descrição

public SolrCollapseFunction::setSize(int $size): SolrCollapseFunction

Sets the initial size of the collapse data structures when collapsing on a numeric field only.

Parâmetros

size

Valor Retornado

SolrCollapseFunction


Returns a string representing the constructed collapse function

  • « SolrCollapseFunction::setSize
  • SolrException »
  • PHP Manual
  • SolrCollapseFunction
  • Returns a string representing the constructed collapse function

SolrCollapseFunction::__toString

(PECL solr >= 2.2.0)

SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function

Descrição

public SolrCollapseFunction::__toString(): string

Returns a string representing the constructed collapse function

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The SolrException class

(PECL solr >= 0.9.2)

Introdução

This is the base class for all exception thrown by the Solr extension classes.

Resumo da classe

class SolrException extends Exception {
/* Propriedades */
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
public getInternalInfo(): array
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

sourceline

The line in c-space source file where exception was generated

sourcefile

The c-space source file where exception was generated

zif_name

The c-space function where exception was generated

Índice

  • SolrException::getInternalInfo — Returns internal information where the Exception was thrown


Returns internal information where the Exception was thrown

  • « SolrException
  • SolrClientException »
  • PHP Manual
  • SolrException
  • Returns internal information where the Exception was thrown

SolrException::getInternalInfo

(PECL solr >= 0.9.2)

SolrException::getInternalInfo — Returns internal information where the Exception was thrown

Descrição

public SolrException::getInternalInfo(): array

Returns internal information where the Exception was thrown.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array containing internal information where the error was thrown. Used only for debugging by extension developers.


The SolrClientException class

(PECL solr >= 0.9.2)

Introdução

An exception thrown when there is an error while making a request to the server from the client.

Resumo da classe

class SolrClientException extends SolrException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Métodos */
public getInternalInfo(): array
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

Índice

  • SolrClientException::getInternalInfo — Returns internal information where the Exception was thrown


Returns internal information where the Exception was thrown

  • « SolrClientException
  • SolrServerException »
  • PHP Manual
  • SolrClientException
  • Returns internal information where the Exception was thrown

SolrClientException::getInternalInfo

(PECL solr >= 0.9.2)

SolrClientException::getInternalInfo — Returns internal information where the Exception was thrown

Descrição

public SolrClientException::getInternalInfo(): array

Returns internal information where the Exception was thrown.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array containing internal information where the error was thrown. Used only for debugging by extension developers.


The SolrServerException class

(PECL Solr >= 1.1.0, >=2.0.0)

Introdução

An exception thrown when there is an error produced by the Solr Server itself.

Resumo da classe

class SolrServerException extends SolrException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Métodos */
public getInternalInfo(): array
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

Índice

  • SolrServerException::getInternalInfo — Returns internal information where the Exception was thrown


Returns internal information where the Exception was thrown

  • « SolrServerException
  • SolrIllegalArgumentException »
  • PHP Manual
  • SolrServerException
  • Returns internal information where the Exception was thrown

SolrServerException::getInternalInfo

(PECL solr >= 1.1.0, >=2.0.0)

SolrServerException::getInternalInfo — Returns internal information where the Exception was thrown

Descrição

public SolrServerException::getInternalInfo(): array

Returns internal information where the Exception was thrown.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array containing internal information where the error was thrown. Used only for debugging by extension developers.


The SolrIllegalArgumentException class

(PECL solr >= 0.9.2)

Introdução

This object is thrown when an illegal or invalid argument is passed to a method.

Resumo da classe

class SolrIllegalArgumentException extends SolrException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Métodos */
public getInternalInfo(): array
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

Índice

  • SolrIllegalArgumentException::getInternalInfo — Returns internal information where the Exception was thrown


Returns internal information where the Exception was thrown

  • « SolrIllegalArgumentException
  • SolrIllegalOperationException »
  • PHP Manual
  • SolrIllegalArgumentException
  • Returns internal information where the Exception was thrown

SolrIllegalArgumentException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalArgumentException::getInternalInfo — Returns internal information where the Exception was thrown

Descrição

public SolrIllegalArgumentException::getInternalInfo(): array

Returns internal information where the Exception was thrown.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array containing internal information where the error was thrown. Used only for debugging by extension developers.


The SolrIllegalOperationException class

(PECL solr >= 0.9.2)

Introdução

This object is thrown when an illegal or unsupported operation is performed on an object.

Resumo da classe

class SolrIllegalOperationException extends SolrException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Métodos */
public getInternalInfo(): array
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

Índice

  • SolrIllegalOperationException::getInternalInfo — Returns internal information where the Exception was thrown


Returns internal information where the Exception was thrown

  • « SolrIllegalOperationException
  • SolrMissingMandatoryParameterException »
  • PHP Manual
  • SolrIllegalOperationException
  • Returns internal information where the Exception was thrown

SolrIllegalOperationException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalOperationException::getInternalInfo — Returns internal information where the Exception was thrown

Descrição

public SolrIllegalOperationException::getInternalInfo(): array

Returns internal information where the Exception was thrown.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array containing internal information where the error was thrown. Used only for debugging by extension developers.


The SolrMissingMandatoryParameterException class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

Resumo da classe

class SolrMissingMandatoryParameterException extends SolrException {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}


Extensões Específicas para Servidor

  • Apache
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Apache Funções
  • FastCGI Process Manager
    • Introdução
    • Instalação/Configuração
    • Observability
    • FPM Funções


Apache

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Apache Funções
    • apache_child_terminate — Finaliza o processo Apache depois da requisição
    • apache_get_modules — Retorna uma lista de módulos carregados do Apache
    • apache_get_version — Retorna a versão do Apache
    • apache_getenv — Retorna uma variável subprocess_env do Apache
    • apache_lookup_uri — Realiza uma requisição parcial para a URI especificada e retorna todas as informações sobre ela
    • apache_note — Obtêm e configura notas de requisição
    • apache_request_headers — Obtém todos os cabeçalhos da requisição HTTP
    • apache_response_headers — Obtém todos os cabeçalhos da resposta HTTP
    • apache_setenv — Define uma variável subprocess_env do Apache
    • getallheaders — Obtém todos os cabeçalhos da requisição HTTP
    • virtual — Realiza uma sub-requisição Apache


Introdução

Estas funções estão disponíveis somente quando o PHP estiver rodando como módulo do Apache.


  • « Dependências
  • Configurações em Execução »
  • PHP Manual
  • Instalação/Configuração
  • Instalação

Instalação

Para instalação do PHP no Apache, veja o capítulo de instalação.


Configurações em Execução

O comportamento do módulo PHP sob o Apache é afetado pelas configurações no php.ini. As diretivas de configuração no php.ini podem ser sobrescritas por diretivas php_flag no arquivo de configuração do servidor ou por arquivos .htaccess locais.

Exemplo #1 Desligando a interpretação do PHP em um diretório utilizando .htaccess

php_flag engine off

Opções de configuração do Apache
Nome | Padrão | Modificável | Registro de Alterações
engine | "1" | INI_ALL |
child_terminate | "0" | INI_ALL |
last_modified | "0" | INI_ALL |
xbithack | "0" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

engine bool

Liga ou desliga a interpretação do PHP. Esta diretiva é útil somente para a módulo do Apache do PHP. É utilizada por sites que desejam desligar e ligar a interpretação do PHP em nível de diretórios ou servidores virtuais. Colocando engine off nos lugares apropriados do arquivo httpd.conf, o PHP pode ser ativado ou desativado.

child_terminate bool

Especifica se scripts PHP podem requisitar o término de processos filhos no final da requisição, veja também apache_child_terminate().

last_modified bool

Envia a data de modificação dos scripts PHP com cabeçalho Last-Modified: para esta requisição.

xbithack bool

Interpreta arquivos marcados como executável como PHP, indiferente da extensão.


  • « Tipos de Recurso
  • Apache Funções »
  • PHP Manual
  • Apache
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Apache Funções

Índice

  • apache_child_terminate — Finaliza o processo Apache depois da requisição
  • apache_get_modules — Retorna uma lista de módulos carregados do Apache
  • apache_get_version — Retorna a versão do Apache
  • apache_getenv — Retorna uma variável subprocess_env do Apache
  • apache_lookup_uri — Realiza uma requisição parcial para a URI especificada e retorna todas as informações sobre ela
  • apache_note — Obtêm e configura notas de requisição
  • apache_request_headers — Obtém todos os cabeçalhos da requisição HTTP
  • apache_response_headers — Obtém todos os cabeçalhos da resposta HTTP
  • apache_setenv — Define uma variável subprocess_env do Apache
  • getallheaders — Obtém todos os cabeçalhos da requisição HTTP
  • virtual — Realiza uma sub-requisição Apache


Finaliza o processo Apache depois da requisição

  • « Apache Funções
  • apache_get_modules »
  • PHP Manual
  • Apache Funções
  • Finaliza o processo Apache depois da requisição

apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

apache_child_terminate — Finaliza o processo Apache depois da requisição

Descrição

apache_child_terminate(): void

apache_child_terminate() registrará o processo Apache atual para finalização após a execução do código PHP terminar. Isto pode ser utilizado para terminar um processo depois que um script que tem um alto consumo de memória for rodado e quando essa memória normalmente só é liberada internamente, mas não é devolviva para o sistema operacional.

Funciona no Apache e em servidores FastCGI.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Notas

Nota: Esta função não foi implementada em plataformas Windows.

Veja Também

  • exit() - Mostra uma mensagem e termina o script atual


Retorna uma lista de módulos carregados do Apache

  • « apache_child_terminate
  • apache_get_version »
  • PHP Manual
  • Apache Funções
  • Retorna uma lista de módulos carregados do Apache

apache_get_modules

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

apache_get_modules — Retorna uma lista de módulos carregados do Apache

Descrição

apache_get_modules(): array

Retorna uma lista de módulos carregados do Apache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array de módulos carregados do Apache.

Exemplos

Exemplo #1 Exemplo da função apache_get_modules()

<?php
print_r(apache_get_modules());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)


Retorna a versão do Apache

  • « apache_get_modules
  • apache_getenv »
  • PHP Manual
  • Apache Funções
  • Retorna a versão do Apache

apache_get_version

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

apache_get_version — Retorna a versão do Apache

Descrição

apache_get_version(): string|false

Retorna a versão do Apache.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna a versão do Apache se tiver sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo da função apache_get_version()

<?php
$version = apache_get_version();
echo "$version\n";
?>

O exemplo acima produzirá algo semelhante a:

Apache/1.3.29 (Unix) PHP/4.3.4

Veja Também

  • phpinfo() - Outputs information about PHP's configuration


Retorna uma variável subprocess_env do Apache

  • « apache_get_version
  • apache_lookup_uri »
  • PHP Manual
  • Apache Funções
  • Retorna uma variável subprocess_env do Apache

apache_getenv

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

apache_getenv — Retorna uma variável subprocess_env do Apache

Descrição

apache_getenv(string $variable, bool $walk_to_top = false): string|false

Retorna a variável de ambiente do Apache especificada por variable.

Parâmetros

variable

A variável de ambiente do Apache

walk_to_top

Se deve ou não retorna a variável de alto-nível disponíveis em todas as camadas do Apache.

Valor Retornado

O valor da variável de ambiente do Apache se tiver sucesso, ou false se falhar

Exemplos

Exemplo #1 Exemplo de uso da função apache_getenv()

O exemplo abaixo mostra como obter o valor da variável de ambiente SERVER_ADDR do Apache.

<?php
$ret = apache_getenv("SERVER_ADDR");
echo $ret;
?>

O exemplo acima produzirá algo semelhante a:

42.24.42.240

Veja Também

  • apache_setenv() - Define uma variável subprocess_env do Apache
  • getenv() - Gets the value of a single or all environment variables
  • Superglobais


Realiza uma requisição parcial para a URI especificada e retorna todas as informações sobre ela

  • « apache_getenv
  • apache_note »
  • PHP Manual
  • Apache Funções
  • Realiza uma requisição parcial para a URI especificada e retorna todas as informações sobre ela

apache_lookup_uri

(PHP 4, PHP 5, PHP 7, PHP 8)

apache_lookup_uri — Realiza uma requisição parcial para a URI especificada e retorna todas as informações sobre ela

Descrição

apache_lookup_uri(string $filename): object|false

Realiza uma requisição parcial para uma URI. Trabalha o suficiente para obter odas as informações importantes sobre o recurso informado.

Esta função é suportada quando o PHP é instalado como um módulo do servidor web Apache.

Parâmetros

filename

O nome do arquivo (URI) que está sendo requisitado.

Valor Retornado

Um object com informações relacionadas a URI. As propriedades deste object são:

  • 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

Retorna false se falhar.

Exemplos

Exemplo #1 Exemplo da função apache_lookup_uri()

<?php
$info = apache_lookup_uri('index.php?var=value');
print_r($info);

if (file_exists($info->filename)) {
echo 'Arquivo existe!';
}
?>

O exemplo acima produzirá algo semelhante a:

stdClass Object
(
    [status] => 200
    [the_request] => GET /dir/file.php HTTP/1.1
    [method] => GET
    [mtime] => 0
    [clength] => 0
    [chunked] => 0
    [content_type] => application/x-httpd-php
    [no_cache] => 0
    [no_local_copy] => 1
    [unparsed_uri] => /dir/index.php?var=value
    [uri] => /dir/index.php
    [filename] => /home/htdocs/dir/index.php
    [args] => var=value
    [allowed] => 0
    [sent_bodyct] => 0
    [bytes_sent] => 0
    [request_time] => 1074282764
)
Arquivo existe!


Obtêm e configura notas de requisição

  • « apache_lookup_uri
  • apache_request_headers »
  • PHP Manual
  • Apache Funções
  • Obtêm e configura notas de requisição

apache_note

(PHP 4, PHP 5, PHP 7, PHP 8)

apache_note — Obtêm e configura notas de requisição

Descrição

apache_note(string $note_name, ?string $note_value = null): string|false

Esta função chama as funções table_get e table_set do Apache. Edita as tabelas de notas que existem durante uma requisição. O objetivo das tabelas é permitir que os módulos do Apache se comuniquem entre entre si.

O principal uso da função apache_note() é passar informações de um módulo para outro dentro da mesma requisição.

Parâmetros

note_name

O nome da nota.

note_value

O valor da nota.

Valor Retornado

Se note_value for omitido ou null, retorna o valor atual da nota note_name. Se chamado com dois argumentos, define o valor da nota note_name para o valor note_value e retorna o valor anterior da nota note_name. Se a nota não puder ser retornada false é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | note_value agora permite null.

Exemplos

Exemplo #1 Passando informações entre PHP e Perl

<?php

apache_note('name', 'Fredrik Ekengren');

// Chama o script perl
virtual("/perl/some_script.pl");

$result = apache_note("resultdata");
?>
# Obtém o objeto request do Apache
my $r = Apache->request()->main();

# Obtém o dado repassado
my $name = $r->notes('name');

# algum processamento

# Devolce o resultado ao PHP
$r->notes('resultdata', $result);

Exemplo #2 Logar valores no access.log

<?php

apache_note('sessionID', session_id());

?>
# "%{sessionID}n" pode ser utilizado numa diretiva LogFormat

Veja Também

  • virtual() - Realiza uma sub-requisição Apache


Obtém todos os cabeçalhos da requisição HTTP

  • « apache_note
  • apache_response_headers »
  • PHP Manual
  • Apache Funções
  • Obtém todos os cabeçalhos da requisição HTTP

apache_request_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

apache_request_headers — Obtém todos os cabeçalhos da requisição HTTP

Descrição

apache_request_headers(): array

Obtém todos os cabeçalhos HTTP da requisição atual. Funciona na CLI e nos servidores web Apache, FastCGI e FPM.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array associativo de todos os cabeçalho HTTP da requisição atual, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.3.0 | Esta função tornou-se disponível na SAPI FPM.

Exemplos

Exemplo #1 Exemplo da função apache_request_headers()

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
echo "$header: $value <br />\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.example.com
Connection: Keep-Alive

Notas

Nota:

Você também pode obter o valor das variáveis CGI comuns lendo-as do ambiente, o que funciona independentemente de você estar usando o PHP como um módulo do Apache ou não. Utilize a função phpinfo() para ver uma lista de todas as variáveis de ambiente disponíveis.

Veja Também

  • apache_response_headers() - Obtém todos os cabeçalhos da resposta HTTP


Obtém todos os cabeçalhos da resposta HTTP

  • « apache_request_headers
  • apache_setenv »
  • PHP Manual
  • Apache Funções
  • Obtém todos os cabeçalhos da resposta HTTP

apache_response_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

apache_response_headers — Obtém todos os cabeçalhos da resposta HTTP

Descrição

apache_response_headers(): array|false

Obtém todos os cabeçalhos de resposta. Funciona na CLI e nos servidores web Apache, FastCGI e FPM.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array de todos os cabeçalhos de resposta do Apache em caso de sucesso, ou ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo da função apache_response_headers()

<?php
print_r(apache_response_headers());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [Accept-Ranges] => bytes
    [X-Powered-By] => PHP/4.3.8
)

Veja Também

  • apache_request_headers() - Obtém todos os cabeçalhos da requisição HTTP
  • headers_sent() - Checks if or where headers have been sent
  • headers_list() - Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)


Define uma variável subprocess_env do Apache

  • « apache_response_headers
  • getallheaders »
  • PHP Manual
  • Apache Funções
  • Define uma variável subprocess_env do Apache

apache_setenv

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

apache_setenv — Define uma variável subprocess_env do Apache

Descrição

apache_setenv(string $variable, string $value, bool $walk_to_top = false): bool

A função apache_setenv() define o valor de uma variável de ambiente Apache denotada por variable.

Nota:

Quando configurar uma variável de ambiente, o valor correspondente em $_SERVER não é alterado.

Parâmetros

variable

O nome da variável de ambiente a ser configurada.

value

O novo valor de variable.

walk_to_top

Se o valor deve ser definido como uma variável de alto nível em todos as camadas do Apache.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Configurando uma variável Apache utilizando apache_setenv()

<?php
apache_setenv("EXAMPLE_VAR", "Valor exemplo");
?>

Notas

Nota:

apache_setenv() pode ser pareado com apache_getenv() entre páginas diferentes para configurar variáveis a repassar em Server Side Includes (.shtml), repassando dados incluídos em scripts PHP.

Veja Também

  • apache_getenv() - Retorna uma variável subprocess_env do Apache


Obtém todos os cabeçalhos da requisição HTTP

  • « apache_setenv
  • virtual »
  • PHP Manual
  • Apache Funções
  • Obtém todos os cabeçalhos da requisição HTTP

getallheaders

(PHP 4, PHP 5, PHP 7, PHP 8)

getallheaders — Obtém todos os cabeçalhos da requisição HTTP

Descrição

getallheaders(): array

Obtém todos cabeçalhos HTTP da requisição atual.

Essa função é um sinônimo de apache_request_headers(). Veja a documentação de apache_request_headers() para mais informações dessa função.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array associativo de todos cabeçalhos HTTP da requisição atual, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.3.0 | Esta função tornou-se disponível na SAPI FPM.

Exemplos

Exemplo #1 Exemplo da função getallheaders()

<?php

foreach (getallheaders() as $name => $value) {
echo "$name: $value\n";
}

?>

Veja Também

  • apache_response_headers() - Obtém todos os cabeçalhos da resposta HTTP


Realiza uma sub-requisição Apache

  • « getallheaders
  • FastCGI Process Manager »
  • PHP Manual
  • Apache Funções
  • Realiza uma sub-requisição Apache

virtual

(PHP 4, PHP 5, PHP 7, PHP 8)

virtual — Realiza uma sub-requisição Apache

Descrição

virtual(string $uri): bool

virtual() é uma função específica do Apache equivalente a <!--#include virtual...--> no mod_include. Realiza uma sub-requisição do Apache. Util na inclusão de scripts CGI ou arquivos .shtml, ou qualquer outra coisa que você possa interpretar no Apache. Note que para um script CGI, o script precisa gerar um cabeçalho CGI válido. Isto significa que, no mínimo, ele precisa gerar um header Content-Type.

Para executar a sub-requisição, todos os buffers são finalizados e enviados para o browser. Cabeçalhos pendentes também serão enviados.

Esta função é suportada quando o PHP é instalado como um módulo do servidor web Apache.

Parâmetros

uri

A URL no qual o comando virtual será realizado.

Valor Retornado

Realizada o comando virtual em sucesso, retorna false em erros.

Exemplos

Veja apache_note() para um exemplo.

Notas

Aviso

Uma query string pode ser passada para o arquivo incluído mas $_GET é copiado do script anterior somente se $_SERVER['QUERY_STRING'] é preenchido com o valor da query string. A query string pode ser passada somente no Apache 2. A página requisitada não será listada nos logs do Apache.

Nota:

Variáveis de ambiente configuradas no arquivo requisitado não estarão visíveis no script incluído.

Nota:

Essa função pode ser utilizada em scripts PHP. Entretanto é geralmente melhor utilizar as funções include ou require para arquivos PHP.

Veja Também

  • apache_note() - Obtêm e configura notas de requisição


FastCGI Process Manager

  • Introdução
  • Instalação/Configuração
  • Observability
    • Status Page
  • FPM Funções
    • fastcgi_finish_request — Envia todos os dados de resposta ao cliente
    • fpm_get_status — Returns the current FPM pool status


Introdução

FPM (FastCGI Process Manager) é uma implementação PHP primária do FastCGI contendo alguns recursos úteis (principalmente) para sites pesados.

This SAPI is bundled with PHP.


Instalação/Configuração

Information on installing and configuring FPM can be found in the installation and configuration section of the PHP manual.


  • « Instalação/Configuração
  • Status Page »
  • PHP Manual
  • FastCGI Process Manager
  • Observability

Observability

Índice

  • Status Page


Status Page

This page provides information on the setup and contents of the FPM status page. See also fpm_get_status().

Configuration

The FPM status page can be enabled by setting the pm.status_path configuration parameter in the FPM pool configuration.

Cuidado

For security the FPM status page should be restricted to internal requests or known client IPs only as the page reveals request URLs and information about available resources.

Depending on the web server configuration it might be needed to configure the web server to allow requests directly to this path, bypassing any PHP scripts. An example of a configuration for Apache with FPM listening on UDS and pm.status_path set to /fpm-status would look like:

<LocationMatch "/fpm-status">
 Order Allow,Deny
 Allow from 127.0.0.1
 ProxyPass "unix:/var/run/php-fpm.sock|fcgi://localhost/fpm-status"
</LocationMatch>

After reloading or restarting both FPM and the web server the status page will be accessible from the browser (as long as the request comes from an allowed IP address if the IP restriction was configured).

Query Parameters

The format of the status page output can be altered by specifying one of the following query parameters:

  • html
  • json
  • openmetrics
  • xml

Additional information can also be returned using the full query parameter.

Example status page URLs:

  • https://localhost/fpm-status - Brief output in the default text format
  • https://localhost/fpm-status?full - Full output in the default text format
  • https://localhost/fpm-status?json - Brief output in JSON format
  • https://localhost/fpm-status?html&full - Full output in HTML format

Displayed Information

Date/Time values use the unix timestamp format in JSON and XML output, otherwise they use the format resulting in the following example date "03/Jun/2021:07:21:46 +0100".

Basic information - Always displayed on the status page
Parameter | Description
pool | The name of the FPM process pool.
proccess manager | The process manager type - static, dynamic or ondemand.
start time | The date/time that the process pool was last started.
start since | The time in seconds since the process pool was last started.
accepted conn | The total number of accepted connections.
listen queue | The number of requests (backlog) currently waiting for a free process.
max listen queue | The maximum number of requests seen in the listen queue at any one time.
listen queue len | The maximum allowed size of the listen queue.
idle processes | The number of processes that are currently idle (waiting for requests).
active processes | The number of processes that are currently processing requests.
total processes | The current total number of processes.
max active processes | The maximum number of concurrently active processes.
max children reached | Has the maximum number of processes ever been reached? If so the displayed value is greater than or equal to 1 otherwise the value is 0.
slow requests | The total number of requests that have hit the configured request_slowlog_timeout.
Per-process information - only displayed in full output mode
Parameter | Description
pid | The system PID of the process.
state | The state of the process - Idle, Running, ...
start time | The date/time at which the process started.
start since | The number of seconds since the process started.
requests | The total number of requests served.
request duration | The total time in microseconds spent serving last request.
request method | The HTTP method of the last served request.
request uri | The URI of the last served request (after webserver processing, it may always be /index.php if you use a front controller pattern redirect).
content length | The length of the request body, in bytes, of the last request.
user | The HTTP user (PHP_AUTH_USER) of the last request.
script | The full path of the script executed by the last request. This will be '-' if not applicable (eg. status page requests).
last request cpu | The %cpu of the last request. This will be 0 if the process is not Idle because the calculation is done when the request processing is complete. The value can exceed 100%, because metric will tell which percentage of the total cpu time was used in the last request - takes processes on all cores into account, whereas the 100% is for one core only.
last request memory | The maximum amount of memory consumed by the last request. This will be 0 if the process is not Idle because the calculation is done when the request processing is complete.

Nota:

All values are specific to the pool and are reset when FPM is restarted.

Nota:

OpenMetrics format output uses different parameter types to better suit the OpenMetrics format. The parameters and descriptions of their values are included in the OpenMetrics format output.

Registro de Alterações

Versão | Descrição
8.1.0 | The openmetrics format was added.


FPM Funções

Índice

  • fastcgi_finish_request — Envia todos os dados de resposta ao cliente
  • fpm_get_status — Returns the current FPM pool status


Envia todos os dados de resposta ao cliente

  • « FPM Funções
  • fpm_get_status »
  • PHP Manual
  • FPM Funções
  • Envia todos os dados de resposta ao cliente

fastcgi_finish_request

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

fastcgi_finish_request — Envia todos os dados de resposta ao cliente

Descrição

fastcgi_finish_request(): bool

Esta função envia todos os dados de resposta para o cliente e finaliza a requisição. Isso permite que tarefas demoradas sejam executadas sem que a conexão com o cliente seja mantida aberta.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Returns the current FPM pool status

  • « fastcgi_finish_request
  • Extensões de Sessão »
  • PHP Manual
  • FPM Funções
  • Returns the current FPM pool status

fpm_get_status

(PHP 7 >= 7.3, PHP 8)

fpm_get_status — Returns the current FPM pool status

Descrição

fpm_get_status(): array|false

This function returns the full current FPM pool status as an associative array. It always returns the full status, including per-process status information. See the FPM status page guide for further details.

Note that this function will only be defined if FPM is being used to serve the script.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Associative array containing the full FPM pool status, ou false em caso de falha.


Extensões de Sessão

  • Sessões — Manipulação de Sessão
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Progresso de Upload em Sessão
    • Sessões e Segurança
    • Funções para Sessão
    • SessionHandler — A classe SessionHandler
    • SessionHandlerInterface — A classe SessionHandlerInterface
    • SessionIdInterface — The SessionIdInterface interface
    • SessionUpdateTimestampHandlerInterface — The SessionUpdateTimestampHandlerInterface interface


Manipulação de Sessão

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Uso básico
    • Passando o ID de sessão
    • Manipuladores de Sessão Personalizados
  • Progresso de Upload em Sessão
  • Sessões e Segurança
    • Gerencimento básico de sessão
    • Protegendo as configurações INI relacionadas à sessão
  • Funções para Sessão
    • session_abort — Descarta as alterações no array da sessão e encerra a sessão
    • session_cache_expire — Obter e/ou definir a expiração do cache atual
    • session_cache_limiter — Obtém e/ou define o limitador do cache atual
    • session_commit — Sinônimo de session_write_close
    • session_create_id — Cria novo ID de sessão
    • session_decode — Decodifica dados de sessão de uma sessão codificada em formato string
    • session_destroy — Destrói todos os dados registrados em uma sessão
    • session_encode — Codifica os dados atuais da sessão como uma sessão codificada em formato string
    • session_gc — Executa a coleta de lixo de dados da sessão
    • session_get_cookie_params — Obtém os parâmetros do cookie da sessão
    • session_id — Obtém e/ou define o id de sessão atual
    • session_module_name — Obtém e/ou define o módulo da sessão atual
    • session_name — Obtém e/ou define o nome da sessão atual
    • session_regenerate_id — Atualiza o id da sessão atual com um novo id gerado
    • session_register_shutdown — Função de finalização da sessão
    • session_reset — Reinicializa um array de sessão com os valores originais
    • session_save_path — Obtém e/ou define o caminho para armazenamento da sessão atual
    • session_set_cookie_params — Define os parâmetros do cookie de sessão
    • session_set_save_handler — Define funções de armazenamento de sessão à nível de usuário
    • session_start — Inicia uma nova sessão ou continua uma sessão existente
    • session_status — Retorna o status atual da sessão
    • session_unset — Libera todas as variáveis de sessão
    • session_write_close — Guarda os dados de sessão e fecha a sessão
  • SessionHandler — A classe SessionHandler
    • SessionHandler::close — Fecha a sessão
    • SessionHandler::create_sid — Retorna um novo ID de sessão
    • SessionHandler::destroy — Destrói uma sessão
    • SessionHandler::gc — Apaga sessões antigas
    • SessionHandler::open — Inicia uma sessão
    • SessionHandler::read — Lê os dados de sessão
    • SessionHandler::write — Escreve os dados de sessão
  • SessionHandlerInterface — A classe SessionHandlerInterface
    • SessionHandlerInterface::close — Fecha a sessão
    • SessionHandlerInterface::destroy — Destrói uma sessão
    • SessionHandlerInterface::gc — Remove sessões antigas
    • SessionHandlerInterface::open — Inicializa uma sessão
    • SessionHandlerInterface::read — Lê os dados de sessão
    • SessionHandlerInterface::write — Escreve os dados de sessão
  • SessionIdInterface — The SessionIdInterface interface
    • SessionIdInterface::create_sid — Cria um ID de sessão.
  • SessionUpdateTimestampHandlerInterface — The SessionUpdateTimestampHandlerInterface interface
    • SessionUpdateTimestampHandlerInterface::updateTimestamp — Atualiza o timestamp
    • SessionUpdateTimestampHandlerInterface::validateId — Valida o ID


Introdução

O suporte a sessões no PHP consiste em uma maneira de preservar certos dados atráves dos acessos subsequentes.

Um visitante acessando o seu web site ganha um identificador único, o assim chamado id de sessão. Ele é salvo em um cookie do lado do usuário ou propagado via URL.

O suporte à sessão permite armazenar dados entre as requisições no array super global $_SESSION. Quando um visitante acessar seu site, o PHP vai conferir automaticamente (se session.auto_start estiver definido como 1) ou quando você pedir (explicitamente atráves de session_start()) se um id de sessão específico foi enviado com a requisição. Se este for o caso, o ambiente anteriormente salvo é recriado.

Cuidado

Se você ativar session.auto_start, então a única maneira de colocar objetos em suas sessões é carregando a definição da classe usando auto_prepend_file, onde você pode carregar a definição da classe, caso contrário você terá que usar serialize() no objeto, e unserialize() nele depois.

$_SESSION (e todas as variávels registradas) são serializadas internamente pelo PHP usando o manipulador de serialização especificado pela configuração INI session.serialize_handler depois que a requisição terminar. Variáveis registradas que estejam indefinidas são marcadas como não definidas. Nos acessos subsequentes, elas não são definidas pelo módulo da sessão, a menos que o usuário as definam posteriormente.

Aviso

Porque as variáveis de sessão são serializadas, variáveis resource não podem ser armazenadas em sessão.

Manipuladores de serialização (php e php_binary) herdam as limitações de register_globals. Portanto, índices numéricos ou strings contendo caracteres especiais (| e !) não podem ser usados. Se usados, resultará em erros na finalização do script. php_serialize não possui tais limitações.

Nota:

Por favor, note que ao trabalhar com sessões, um registro de uma sessão não é criado até que uma variável tenha sindo registrada pela adição de uma nova chave ao array super global $_SESSION. Isto continua valendo mesmo se uma sessão tenha sido iniciada usando a função session_start().


Dependências

Nenhuma biblioteca externa é necessária para compilar esta extensão.

Nota:

Opcionalmente você pode usar alocação de memória compartilhada (mm), desenvolvida por Ralf S. Engelschall, para armazenar a sessão. Você terá que baixar » mm e instalá-lo. Esta opção não está disponível para plataformas Windows. Note que o módulo de armazenamento de sessões para o mm não garante que acessos concorrentes à mesma sessão sejam travados apropriadamente. Pode ser mais apropriado usar um sistema de arquivos baseado em memória compartilhada (como tmpfs em Solaris/Linux, ou /dev/md em BSD) para armazenar sessões em arquivos, por que eles são travados apropriadamente. Os dados das sessões são salvos na memória então se o servidor for reiniciado os dados são excluídos.


Instalação

Esta extensão está habilitada por padrão. Ela pode ser desabilitada usando a seguinte opção em tempo de compilação: --disable-session

Para usar alocação de memória compartilhada (mm) para armazenamento de sessão, configure o PHP com --with-mm[=DIR].

A versão do PHP para Windows tem suporte nativo para esta extensão. Nenhuma extensão adicional precisa ser carregada para usar essas funções.

Nota:

Por padrão, todos os dados relacionados com uma sessão em particular serão armazenados em um arquivo no diretório especificado pela configuração INI session.save_path. Um arquivo para cada sessão (independente se alguma informação está associada com esta sessão) será criado. Isto é devido ao fato de que uma sessão é aberta (um arquivo é criado) mas nenhum dado é escrito neste arquivo. Note que este comportamento é um efeito colateral das limitações de se trabalhar com o sistema de arquivos e é possível que um manipulador de sessão personalizado (como um que utilize banco de dados) não mantenha registros de sessões que não armazenem dados.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração de sessão
Nome | Padrão | Modificável | Registro de Alterações
session.save_path | "" | INI_ALL |
session.name | "PHPSESSID" | INI_ALL |
session.save_handler | "files" | INI_ALL |
session.auto_start | "0" | INI_PERDIR |
session.gc_probability | "1" | INI_ALL |
session.gc_divisor | "100" | INI_ALL |
session.gc_maxlifetime | "1440" | INI_ALL |
session.serialize_handler | "php" | INI_ALL |
session.cookie_lifetime | "0" | INI_ALL |
session.cookie_path | "/" | INI_ALL |
session.cookie_domain | "" | INI_ALL |
session.cookie_secure | "0" | INI_ALL | Antes do PHP 7.2.0, o padrão era "".
session.cookie_httponly | "0" | INI_ALL | Antes do PHP 7.2.0, o padrão era "".
session.cookie_samesite | "" | INI_ALL | Disponível a partir do PHP 7.3.0.
session.use_strict_mode | "0" | INI_ALL |
session.use_cookies | "1" | INI_ALL |
session.use_only_cookies | "1" | INI_ALL |
session.referer_check | "" | INI_ALL |
session.cache_limiter | "nocache" | INI_ALL |
session.cache_expire | "180" | INI_ALL |
session.use_trans_sid | "0" | INI_ALL |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | INI_ALL | Disponível desde o PHP 7.1.0.
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | INI_ALL | Disponível desde o PHP 7.1.0.
session.sid_length | "32" | INI_ALL | Disponível desde o PHP 7.1.0.
session.sid_bits_per_character | "5" | INI_ALL | Disponível desde o PHP 7.1.0.
session.upload_progress.enabled | "1" | INI_PERDIR |
session.upload_progress.cleanup | "1" | INI_PERDIR |
session.upload_progress.prefix | "upload_progress_" | INI_PERDIR |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | INI_PERDIR |
session.upload_progress.freq | "1%" | INI_PERDIR |
session.upload_progress.min_freq | "1" | INI_PERDIR |
session.lazy_write | "1" | INI_ALL |
session.hash_function | "0" | INI_ALL | Removido no PHP 7.1.0.
session.hash_bits_per_character | "4" | INI_ALL | Removido no PHP 7.1.0.
session.entropy_file | "" | INI_ALL | Removido no PHP 7.1.0.
session.entropy_length | "0" | INI_ALL | Removido no PHP 7.1.0
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

O sistema de gerenciamento de sessões suporta várias opções de configurações que podem ser colocados no arquivo php.ini. A seguir um breve resumo.

session.save_handler string
session.save_handler define o nome do manipulador que será utilizado para armazenar e recuperar dados associados à sessão. Padrão para files. Note que extensões podem registrar seus próprios save_handlers; manipuladores registrados podem ser obtidos ao se vefificar o phpinfo(). Veja também session_set_save_handler().
session.save_path string
session.save_path define o argumento que é passado para o manipulador de gravação. Se você escolher o manipulador padrão (de arquivos), este é o caminho onde os arquivos serão criados. Veja também session_save_path().

Há um argumento opcional N para esta diretiva que determina o número de níveis de diretório que seus arquivos de sessão serão espalhados. Por exemplo, definindo para '5;/tmp' pode levar a criação de um arquivo de sessão e diretórios como /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If . Para fazer uso do N você deve criar todos estes diretórios antes do uso. Um pequeno script shell existe em ext/session para fazer isto, chamado mod_files.sh, com uma versão para o Windows chamada mod_files.bat. Também note que se N é usado e maior do que 0 então a limpeza de sessões não será executada, veja uma cópia do php.ini para mais informações. Também, se você usar N, certifique-se de cercar session.save_path com "aspas" porque o separador (;) é usado também para comentátios no php.ini.

O módulo de armazenamento em arquivo cria arquivos com permissões 600 por padrão. Esse padrão pode ser alterado com o argumento opcional MODE: N;MODE;/path onde MODE é o valor octal representando as permissões. Configurar MODE não afeta o umask do processo.

Aviso

Se você deixar isto definido num diretório de leitura público, como /tmp (o padrão), outros usuários no servidor poderão raptar sessões pegando a lista de arquivos nesse diretório.

Cuidado

Ao utilizar o argumento opcional de nível de diretório N, como descrito acima, note que utilizar um valor maior que 1 ou 2 é inapropriado na maioria dos sites por conta da geração de um grande número de diretórios exigidos: por exemplo, um valor de 3 implica que existirão (2 ** session.sid_bits_per_character) ** 3 diretórios em disco, o que pode resultar numa quantidade enorme de espaço e inodes desperdiçados.

Somente use N maiores que 2 se você estiver absolutamente certo que o seu site é grande o suficiente para exigí-lo.

session.name string
session.name especifica o nome da sessão que é usada como o nome do cookie. Deve conter apenas caracteres alfanuméricos. O padrão é PHPSESSID. Veja também session_name().
session.auto_start bool
session.auto_start especifica se o módulo da sessão deve iniciar uma sessão automaticamente no início da requisição. Padrão 0 (desabilitado).
session.serialize_handler string
session.serialize_handler define o nome do manipulador utilizado para serializar/desserializar dados. São suportados o formato serial do PHP (php_serialize), o formato interno do PHP (php e php_binary) e WDDX (wddx). O WDDX somente está disponível se o PHP foi compilado com suporte WDDX. php_serialize utiliza as funções serialize/unserialize internamente e não tem as limitações que php e php_binary tem. Serializadores antigos não conseguem gravar índices numéricos ou índices string que contenham caracteres especiais (| e !) no array $_SESSION. Utilize php_serialize para evitar erros de índices numéricos ou índices com caracteres especiais no final do script. O padrão é php.
session.gc_probability int
session.gc_probability em conjunto com session.gc_divisor é usado para gerenciar a probabilidade que o gc (coletor de lixo) seja iniciado. O padrão é 1. Veja session.gc_divisor para detalhes.
session.gc_divisor int
session.gc_divisor em conjunto com session.gc_probability define a probabilidade que o processo do gc (coletor de lixo) seja iniciado na inicialização de cada sessão. A probabilidade é calculada usando gc_probability/gc_divisor, ex. 1/100 indica que existe 1% de chance que o processo GC inicie em cada requisição. O padrão para session.gc_divisor é 100.
session.gc_maxlifetime int
session.gc_maxlifetime especifica o número de segundos, que, depois de decorridos, os dados serão considerados como lixo ('garbage') e eventualmente apagados. Isso pode ocorrer no início da sessão (dependendo de session.gc_probability e session.gc_divisor). O padrão é 1440 (24 minutos).

Nota: Se scripts diferentes tem valores diferentes para session.gc_maxlifetime mas compartilham o mesmo lugar para guardar os dados da sessão então o script com o menor valor estará limpando os dados. Neste caso, use esta diretiva em conjunto com session.save_path.

session.referer_check string
session.referer_check contém a substring que você quer checar contra cada HTTP Referer. Se o Referer for enviado pelo cliente e a substring não foi encontrada, a id de sessão embutida será marcada como inválida. O padrão é uma string vazia.
session.entropy_file string
session.entropy_file informa o caminho para um recurso externo (arquivo) que será usado como uma fonte de entropia no processo de criação da id de sessão. Exemplos são /dev/random ou /dev/urandom que estão disponíveis em muitos sistemas UNIX. Este recurso é suportado no Windows. Configurando session.entropy_length para um valor diferente de zero fará o PHP utilizar o Windows Random API como fonte de entropia.

Nota: Removido no PHP 7.1.0. session.entropy_file tem como padrão /dev/urandom ou /dev/arandom, se disponível.

session.entropy_length int
session.entropy_length especifica o número de bytes que serão lidos do arquivo especificado acima. Padrão em 32. Removido no PHP 7.1.0.
session.use_strict_mode bool
session.use_strict_mode especifica se o módulo utilizará o modo id de sessão rigoroso (strict). Se esse modo estiver ativo, o módulo não aceitará um id de sessão não inicializado. Se um id de sessão não inicializado for enviado pelo browser, um novo id de sessão é devolvido para o browser. Aplicações são protegidas da fixação de sessão adotando o modo de sessão rigoroso (strict). Padrão é 0 (desativado).

Nota: Ativar session.use_strict_mode é mandatório para segurança geral das sessões. A todos os sites é recomendado mantê-lo ativado. Veja o código em session_create_id() para mais detalhes.

Aviso

Se um manipulador de sessão personalizado registrado via session_set_save_handler() não implementa SessionUpdateTimestampHandlerInterface::validateId(), nem fornece o callback validate_sid, respectivamente, o modo rigoroso(strict) do ID da sessão é efetivamente desativado, independentemente do valor desta diretiva. É importante observar que SessionHandler não implementa SessionHandler::validateId().

session.use_cookies bool
session.use_cookies especifica se o módulo utilizará cookies para guardar a id da sessão no lado do cliente. O padrão é 1 (habilitado).
session.use_only_cookies bool
session.use_only_cookies especifica se o módulo usará somente cookies para guardar a id no lado do cliente. Habilitar esta configuração previne ataques envolvendo passagem de IDs de sessão nas URLs. Padrão 1 (ativado).
session.cookie_lifetime int
session.cookie_lifetime especifica o tempo de vida do cookie em segundos que é enviado para o browser. O valor 0 significa "até o browser ser fechado". O padrão é 0. Veja também session_get_cookie_params() e session_set_cookie_params().

Nota: O timestamp de expiração é informado em relação à hora do servidor, que não necessariamente coincide com o horário do navegador do cliente.

session.cookie_path string
session.cookie_path especifica o caminho para definir em session_cookie. O padrão é /. Veja também session_get_cookie_params() e session_set_cookie_params().
session.cookie_domain string
session.cookie_domain especifica o domínio para definir no cookie de sessão. O padrão é nenhum significando o nome do servidor que gerou o cookie de acordo com a especificação dos cookies. Veja também session_get_cookie_params() e session_set_cookie_params().
session.cookie_secure bool
session.cookie_secure especifica se os cookies devem ser enviados apenas em conexões seguras. Com esta opção definida para on, as sessões só funcionam com conexões HTTPS. Se estiver em off, as sessões funcionam tanto com HTTP quanto com HTTPS. O padrão é off. Veja também session_get_cookie_params() e session_set_cookie_params().
session.cookie_httponly bool
Marca o cookie para ser acessível apenas atráves do protocolo HTTP. Isto significa que o cookie não será acessível por linguagens de script, como o JavaScript. Esta configuração pode efetivamente reduzir o roubo de identidade atráves de ataques XSS (apesar de não ser suportado por todos os browsers).
session.cookie_samesite string
Permite que os servidores declarem que um cookie não deve ser enviado junto com solicitações entre sites. Essa afirmação permite que os agentes do usuário reduzam o risco de vazamento de informações entre origens e fornece alguma proteção contra ataques de falsificação de solicitações entre sites (CSRF). Observe que isso não é suportado por todos os navegadores. Um valor vazio significa que nenhum atributo de cookie SameSite será definido. Lax e Strict significam que o cookie não será enviado entre domínios para solicitações POST; Lax enviará o cookie para solicitações GET entre domínios, enquanto Strict não enviará.
session.cache_limiter string
session.cache_limiter especifica o método de controle de cache para usar em páginas de sessão. Pode ser um dos seguintes valores: nocache, private, private_no_expire ou public. Padrão nocache. Veja também a documentação de session_cache_limiter() para ver o que os valores significam.
session.cache_expire int
session.cache_expire especifica o time-to-live (tempo de vida) para páginas de sessão em cache, em minutos, não tendo efeito na limitação de nocache. O padrão é 180. Veja também session_cache_expire().
session.use_trans_sid bool
session.use_trans_sid se o suporte a sid transparente está habilitado ou não. O padrão é 0 (desabilitado).

Nota: Gerenciamento de sessões baseadas em URLs tem riscos de segurança adicionais comparados ao gerenciamento baseado em cookies. Usuários podem enviar uma URL que contenha uma ID de sessão ativa para seus amigos por e-mail ou usuários podem salvar uma URL que contenha uma ID de sessão em seus bookmarks e acessar seu site sempre com a mesma ID de sessão, por exemplo. Desde o PHP 7.1.0 uma URL completa, por exemplo https://php.net/, é manipulada pelo recurso trans sid. Versões anteriores do PHP manipulavam apenas URLs relativas. Alvos de rewrite estão definidos em session.trans_sid_hosts.

session.trans_sid_tags string
session.trans_sid_tags especifica quais tags HTML serão reescritas para incluir IDs de sessão quando o suporte ao SID transparente estiver ativo. Por padrão: a=href,area=href,frame=src,input=src,form= form é uma tag especial. <input hidden="session_id" name="session_name"> é adicionado a variável de formulário.

Nota: Antes do PHP 7.1.0 url_rewriter.tags era utilizada para essa funcionalidade. Desde o PHP 7.1.0, fieldset não é mais considerada uma tag especial.

session.trans_sid_hosts string
session.trans_sid_hosts especifica quais hosts serão reescritos para incluir IDs de sessão quando o suporte ao SID transparente estiver ativo. Padrão para $_SERVER['HTTP_HOST'] Vários hosts podem ser especificados, separados por ",", mas sem espaços entre os hosts. Por exemplo: php.net,wiki.php.net,bugs.php.net
session.sid_length int
session.sid_length permite especificar o tamanho do texto do ID de sessão. IDs de sessão podem ter tamanhos entre 22 a 256 letras. O padrão é 32. Para compatibilidade, você pode especificar 32, 40, etc. IDs de sessão maiores são mais difíceis de adivinhar. Ao menos 32 letras é o recomendados.
Dica

Nota de compatibilidade: Utilize 32 para que
session.hash_function=0 (MD5) e
session.hash_bits_per_character=4,
session.hash_function=1 (SHA1) e
session.hash_bits_per_character=6. Utilize 26 para que
session.hash_function=0 (MD5) e
session.hash_bits_per_character=5. Utilize 22 para que
session.hash_function=0 (MD5) e
session.hash_bits_per_character=6. Você precisa
configurar os valores INI para ao menos 128 bits no ID de sessão. Não
se esqueça de configurar o valor apropriado em
session.sid_bits_per_character, de outra forma
você terá um ID de sessão fraco.

Nota: Esta configuração foi introduzida no PHP 7.1.0.

session.sid_bits_per_character int
session.sid_bits_per_character permite especificar o número de bits codificados no ID de sessão. Os valores possíveis são '4' (0-9, a-f), '5' (0-9, a-v), and '6' (0-9, a-z, A-Z, "-", ","). O padrão é 4. Mais bits resultam em IDs de sessão mais fortes. 5 é recomendado para a maioria dos elementos.

Nota: Esta configuração foi introduzida no PHP 7.1.0.

session.hash_function mixed
session.hash_function permite especificar o algoritimo de hash usado para gerar os IDs de sessão. '0' indica MD5 (128 bits) e '1' indica SHA-1 (160 bits).

Também é possível especificar qualquer um dos algoritmos disponibilizados pela extensão hash (se habilitada), como sha512 ou whirlpool. A lista completa de algoritmos suportados pode ser obtida com a função hash_algos().

Nota: Removido no PHP 7.1.0.

session.hash_bits_per_character int
session.hash_bits_per_character permite a você definir quantos bits são guardados em cada caractere ao converter os dados binários de hash para algo legível. Os valores possíveis são '4' (0-9, a-f), '5' (0-9, a-v) e '6' (0-9, a-z, A-Z, "-", ",").

Nota: Removido no PHP 7.1.0.

session.upload_progress.enabled bool
Permite o rastreamento do progresso de upload, populando a variável $_SESSION. O padrão é 1, habilitado.
session.upload_progress.cleanup bool
Limpa a informação de progresso assim que todos os dados POST forem lidos (upload completado). Padrão 1, habilitado.

Nota: É altamente recomendável manter esse recurso ligado.

session.upload_progress.prefix string
Um prefixo utilizado na chave da variável $_SESSION. Essa chave será concatenada com o valor de $_POST[ini_get("session.upload_progress.name")] para prover um índice único. Padrão "upload_progress_".
session.upload_progress.name string
O nome da chave utilizada em $_SESSION para armazenar a informação de progresso. Veja também session.upload_progress.prefix. Se $_POST[ini_get("session.upload_progress.name")] não for passado ou estiver indisponível, o progresso de upload não será registrado. Padrão "PHP_SESSION_UPLOAD_PROGRESS".
session.upload_progress.freq mixed
Define a frequência com que a informação de progresso de upload será atualizada. Isso pode ser definido em bytes ("atualize a informação a cada 100 bytes") ou em percentagens ("atualize a informação de progresso a cada 1% do total do arquivo"). Padrão "1%".
session.upload_progress.min_freq int
O intervalo mínimo entre as atualizações, em segundos. Padrão "1" (um segundo).
session.lazy_write bool
session.lazy_write, quando configurado para 1, significa que os dados de sessão somente serão reescrito caso eles mudem. O padrão é 1, habilitado.

O progresso de upload não será registrado, a não ser que session.upload_progress.enabled esteja habilitado e a variável $_POST[ini_get("session.upload_progress.name")] esteja definida. Veja Progresso de Upload em sessões para mais detalhes dessa funcionalidade.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SID (string)
Constante contendo nome da sessão e id da sessão na forma de "name=ID" ou string vazia se o ID da sessão foi definido em um apropriado cookie de sessão. Este é o mesmo id que é retornado por session_id().
PHP_SESSION_DISABLED (int)
Retorna o valor de session_status() se as sessões estiverem desabilitadas.
PHP_SESSION_NONE (int)
Retorna o valor de session_status() se as sessões estiverem habilitadas, mas nenhuma sessão existir.
PHP_SESSION_ACTIVE (int)
Retorna o valor de session_status() se as sessões estiverem habilitadas, e uma sessão existir.


Exemplos

Índice

  • Uso básico
  • Passando o ID de sessão
  • Manipuladores de Sessão Personalizados


Uso básico

Sessões são uma forma simples de armazenar dados para usuários individuais usando um ID de sessão único. Sessões podem ser usadas para persistir informações entre requisições de páginas. IDs de sessão normalmente são enviados ao navegador através de cookies de sessão e o ID é usado para recuperar dados da sessão existente. A ausência de um ID ou cookie de sessão permite que o PHP saiba que deve criar uma nova sessão e gerar um novo ID de sessão.

Sessões seguem um fluxo simples. Quando uma sessão é iniciada, o PHP recupera uma sessão existente usando o ID informado (normalmente de um cookie de sessão) ou se nenhum é informado então será criada uma nova sessão. O PHP preencherá a super global $_SESSION com todos os dados de sessão depois que a sessão iniciar. Quando o PHP finalizar, automaticamente ele pegará o conteúdo da super global $_SESSION, então vai serializá-lo e enviá-lo para armazenamento usando o manipulador de gravação da sessão.

Por padrão, o PHP usa o manipulador de gravação interno files que é configurado por session.save_handler. Isto salva os dados da sessão no servidor no local configurado pela diretiva de configuração session.save_path.

Sessões podem ser iniciadas manualmente usando a função session_start(). Se a diretiva session.auto_start estiver configurada como 1, a sessão será iniciada automaticamente no início da requisição.

Sessões normalmente se encerram automaticamente quando o PHP termina de executar um script, mas podem ser encerradas manualmente usando a função session_write_close().

Exemplo #1 Registrando uma variável com $_SESSION.

<?php
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
?>

Exemplo #2 Desregistrando uma variável com $_SESSION.

<?php
session_start();
unset($_SESSION['count']);
?>

Cuidado

NÃO desregistre toda a $_SESSION com unset($_SESSION) já que isso desativará o registro de variáveis de sessões da super global $_SESSION.

Aviso

Referências não podem ser usadas nas variáveis de sessão já que não existe uma maneira de restaurar uma referência para outra variável.

Nota:

Sessões baseadas em arquivos (padrão no PHP) adicionam travas no arquivo de sessão assim que a sessão é iniciada via session_start() ou simplesmente via session.auto_start. Assim que adicionada a trava, nenhum outro script pode acessar o mesmo arquivo de sessão até que ela seja finalizada pelo encerramento do primeiro script ou pela chamada de session_write_close().

Isto é possivelmente um problema para web sites que utilizam fortemente o AJAX e que tem múltiplas solicitações concorrentes. A maneira mais fácil de lidar com isto é chamar session_write_close() assim que as alterações necessárias na sessão forem feitas, de preferência no início do script. Como alternativa, um manipulador de sessão diferente que suporte concorrência poderia ser usado.


Passando o ID de sessão

Existem dois métodos para a propagação do id de sessão:

  • Cookies
  • URL parameter

O módulo de sessão suporta ambos os métodos. Cookies são melhores, mas como nem sempre eles estão disponíveis, também é oferecido um método alternativo. O segundo método embute o id de sessão diretamente nas URLs.

O PHP é capaz de transformar links de forma transparente. Se a opção de tempo de execução session.use_trans_sid estiver habilitada, URIs relativas serão alteradas automaticamente para conter o ID da sessão.

Nota:

O arg_separator.output, diretiva php.ini, permite configurar o separador de argumentos. Para completa conformidade com XHTML, especifique &amp; aqui.

Alternativamente, pode ser usada a constante SID, a qual é definida se uma sessão é iniciada. Se o cliente não enviou um cookie de sessão apropriado, a constante terá o formato session_name=session_id. Se não, ela será uma string vazia. Dessa forma, ela pode ser colocada incondicionalmente em URLs.

O exemplo a seguir demonstra como registrar uma variável e como criar um link corretamente para outra página usando o SID.

Exemplo #1 Contando o número de acessos de um único usuário

<?php

session_start();

if (empty($_SESSION['count'])) {
$_SESSION['count'] = 1;
} else {
$_SESSION['count']++;
}
?>

<p>
Olá visitante, você acessou esta página <?php echo $_SESSION['count']; ?> vezes.
</p>

<p>
Para continuar, <a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">clique
aqui</a>.
</p>

A função htmlspecialchars() pode ser usada ao mostrar o SID com o intuito de prevenir ataques relacionados a XSS.

Mostrar o SID, como mostrado acima, não é necessário se --enable-trans-sid foi usado para compilar o PHP.

Nota:

Para URLs não-relativas, assume-se que elas apontam para sites externos e por isso não é adicionado o SID, já que seria um risco de segurança vazar o SID para um servidor diferente.


Manipuladores de Sessão Personalizados

Para implementar as sessões em banco de dados, ou qualquer outro método de armazenamento, é preciso usar session_set_save_handler() para criar um conjunto de funções de armazenamento a nível de usuário. Um manipulador de sessão pode ser criado usando SessionHandlerInterface ou estender os manipuladores internos do PHP herdando de SessionHandler.

Os callbacks especificados em session_set_save_handler() são métodos executados pelo PHP durante o ciclo de vida de uma sessão: open, read, write e close e para as tarefas de manutenção: destroy para deletar uma sessão e gc para recolha periódica de lixo.

Portanto, o PHP sempre requer manipuladores de gravação de sessão. O padrão normalmente é o manipulador de gravação interno de 'arquivos'. Um manipulador personalizado pode ser configurado usando session_set_save_handler(). Manipuladores internos alternativos também são disponibilizados por extensões do PHP, como sqlite, memcache e memcached e podem ser definidos com session.save_handler.

Quando a sessão inicia, o PHP internamente executa o manipulador open seguido pelo callback read que deve retornar uma string codificada exatamente como foi originalmente passado para armazenamento. Após o read retornar a string codificada, o PHP vai decodificá-la e colocar o array resultante na super global $_SESSION.

Quando o PHP é encerrado (ou quando session_write_close() for chamada), o PHP internamente vai codificar a super global $_SESSION e passá-la junto com o ID de sessão para o callback write. Depois que o callback write finalizar, o PHP internamente invocará o callback close.

Quando uma sessão é destruída, o PHP chamará o manipulador destroy com o ID de sessão.

O PHP executará o callback gc de tempo em tempo para apagar quaisquer informações na sessão de acordo com o tempo de vida máximo (lifetime) definido para a sessão. Esta rotina deve apagar todas as informações do armazenamento persistente em que a diferença de tempo do último acesso até o momento atual seja maior que $lifetime.


Progresso de Upload em Sessão

Quando a configuração INI session.upload_progress.enabled estiver habilitada, o PHP será capaz de rastrear o progresso do upload de arquivos individuais que estiverem sendo feito upload. Esta informação não é muito útil para a requisição atual, mas durante o upload do arquivo uma aplicação pode enviar uma requisição POST para um endpoint separado (via XHR por exemplo) para checar o status.

O progresso do upload estará disponível na variável super global $_SESSION quando um upload estiver em progresso e quando a requisição POST tiver uma variável com o mesmo nome que a configuração INI session.upload_progress.name estiver configurada. Quando o PHP detectar requisições como essa, ele preencherá um array em $_SESSION, onde o índice é um valor resultante da concatenação de session.upload_progress.prefix e session.upload_progress.name (configurações INI). O índice normalmente é obtido lendo essas configurações INI, ou seja

<?php
$key = ini_get("session.upload_progress.prefix") . $_POST[ini_get("session.upload_progress.name")];
var_dump($_SESSION[$key]);
?>

Também é possível cancelar o upload do arquivo em andamento ao definir o índice $_SESSION[$key]["cancel_upload"] para true. Quando houver upload de múltiplos arquivos em uma mesma requisição, isso vai cancelar apenas o upload dos arquivos que ainda estiverem em andamento e pendentes, mas não removerá uploads já concluídos com sucesso. Quando um upload é cancelado dessa forma, o índice error no array $_FILES será alterado para UPLOAD_ERR_EXTENSION.

As configurações INI session.upload_progress.freq e session.upload_progress.min_freq controlam a frequência com que a informação do progresso do upload deve ser recalculado. Com um valor razoável para estas duas configurações, a sobrecarga desse recurso é quase inexistente.

Exemplo #1 Informação de exemplo

Exemplo de estrutura do array de progresso do upload.

<form action="upload.php" method="POST" enctype="multipart/form-data">
 <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" />
 <input type="file" name="file1" />
 <input type="file" name="file2" />
 <input type="submit" />
</form>

Os dados armazenados na sessão serão parecidos com isto:

<?php
$_SESSION["upload_progress_123"] = array(
"start_time" => 1234567890, // A hora da requisição
"content_length" => 57343257, // tamanho do conteúdo de POST
"bytes_processed" => 453489, // Quantidade de bytes recebidos e processados
"done" => false, // true quando o manipulador do POST finalizar, com sucesso ou não
"files" => array(
0 => array(
"field_name" => "file1", // Nome do campo <input/>
// Os próximos 3 elementos se assemelham aos de $_FILES
"name" => "foo.avi",
"tmp_name" => "/tmp/phpxxxxxx",
"error" => 0,
"done" => true, // True quando o manipulador do POST terminar de manipular este arquivo
"start_time" => 1234567890, // Quando este arquivo começou a ser processado
"bytes_processed" => 57343250, // Quantidade de bytes recebidos e processados para este arquivo
),
// Um outro arquivo, em que o upload ainda não acabou, na mesma requisição
1 => array(
"field_name" => "file2",
"name" => "bar.avi",
"tmp_name" => NULL,
"error" => 0,
"done" => false,
"start_time" => 1234567899,
"bytes_processed" => 54554,
),
)
);

Aviso

O buffer de requisições do servidor web deve estar desabilitado para que isso funcione corretamente ou o PHP pode enxergar o upload apenas quando ele já estiver completado. É de conhecimento que servidores como Nginx criam buffer para requisições maiores.

Cuidado

A informação do progresso do upload é escrita na sessão antes da execução de quaisquer scripts. Portanto, alterar o nome da sessão através da função ini_set() ou session_name() resultará em uma sessão sem as informações de progresso do upload.


Sessões e Segurança

Índice

  • Gerencimento básico de sessão
  • Protegendo as configurações INI relacionadas à sessão

Links externos: » Fixação de Sessão

O gerenciamento de sessões HTTP representa o centro da segurança na web. Todas as medídas possíveis de mitigação devem ser adotadas para garantir que as sessões estão seguras. Os desenvolvedores devem também habilitar/utilizar as medidas de segurança aplicáveis.


Gerencimento básico de sessão

Segurança da sessão

O módulo de sessão não garante que a informação armazenada em uma sessão seja visualizada apenas pelo usuário que criou a sessão. Medidas adicionais devem ser tomadas para proteger a confidencialidade da sessão, dependendo do valor associado à ela.

A importância dos dados carregados na sessões precisam ser avaliada proteções adicionais podes ser disparadas; isso normalmente tem efeitos colaterais, como redução na comodidade do usuário. Por exemplo, para proteger os usuários de táticas de engenharia social simples, a opção session.use_only_cookies deve ser habilitada. E nesse caso, os cookies devem obrigatoriamente estar habilitados no lado do usuário, ou as sessões não irão funcionar.

Existem várias maneiras de expor um ID de sessão existente para terceiros. Exemplos: injeção de JavaScript, ID de sessão nas URLs, interceptação de pacotes, acesso físico ao dispositivo, etc. Um ID de sessão exposto possibilita que terceiros tenham acesso a todos os recursos que estão associados a um ID específico. Primeiro, URLs que contenham IDs de sessão. Se houver ligações para um site ou recurso externo, a URL que contém o ID de sessão pode ser armazenada nos registros do site externo. Segundo, um atacante mais ativo pode interceptar o tráfego de rede. Caso não estejam criptografados, os IDs de sessão serão transmitidos em texto puro pela rede. A solução é implementar SSL/TLS no servidor e torná-lo obrigatório para os usuários. HSTS deve ser usado para uma melhor segurança.

Nota: Até mesmo o HTTPS não consegue proteger dados confidenciais em todos os momentos. Por exemplo, as vulnerabilidades "CRIME" e "Beast" podem permitir que um atacantes leia os dados. Além disso, existem muitas redes que utilizam proxy HTTPS MITM com o propósito de auditoria. Atacantes também podem configurar um proxy semelhante.

Gerenciamento de sessão não adaptativo

O gerenciador de sessão do PHP atualmente é adaptativo por padrão atualmente. Os gerenciadores de sessão adaptativos possuem riscos adicionais.

Quando session.use_strict_mode está habilitada e o manipulador de armazenamento de sessão suportá-la, um ID de sessão que não inicializado é rejeitado, e um novo é criado. Isso protege contra ataques que forçam o usuário a usar um ID de sessão conhecido. Atacantes podem colar links ou enviar e-mail que contém ID de sessão. Ex.: http://example.com/page.php?PHPSESSID=123456789, se session.use_trans_sid estiver habilitado, a vítima iniciará uma sessão usando o ID de sessão fornecido pelo atacante. A opção session.use_strict_mode mitiga este risco.

Aviso

Um manipulador de armazenamento definido pelo usuário também pode suportar o modo de sessão estrita implementando validação do ID de sessão. Todos os manipuladores de armazenamento definidos pelo usuário devem implementar uma validação do ID de sessão.

O cookie de ID de sessão pode ser definido usando os atributos domain, path, httponly e secure; e a partir do PHP 7.3, SameSite. Existe uma certa precedência que é definida pelos navegadores. Ao usar a precedência, o atacante pode definir um ID de sessão que pode ser usado permanentemente. O uso de session.use_only_cookies não resolverá essa questão. session.use_strict_mode mitiga este risco. Com session.use_strict_mode=On, um ID de sessão não inicializado será recusado.

Nota: Apesar da opção session.use_strict_mode diminuir o risco do gerenciamento de sessão adaptativo, um atacante pode forçar os usuários a usarem um ID de sessão inicializado e que foi criado pelo atacante. Por exemplo, com injeção de JavaScript. Esse tipo de ataque pode ser evitado seguindo as recomendações deste manual. Ao seguir este manual, desenvolvedores devem habilitar a opção session.use_strict_mode, e também usa um gerenciamento de sessão baseado em timestamp e gerar novamente um ID de sessão usando session_regenerate_id() com os procedimentos recomendados. Se tudo isso for seguido, o ID de sessão gerado por um atacante eventualmente será deletado. Quando ocorre um acesso à uma sessão obsoleta, todos os dados da sessão ativa devem ser salvos. Isso será útil para uma investigação mais tarde. Será feito logout forçado do usuário de todas as sessões, ou seja, o usuário será obrigado a se autenticar novamente. Desta forma se evita que atacantes abusem de sessões roubadas.

Aviso

O acesso aos dados de sessões obsoletas nem sempre é por causa de ataques. Redes instáveis e/ou remoção imediata de sessão ativa farão com que usuários legítimos usem sessões obsoletas.

A partir do PHP 7.1.0, session_create_id() foi adicionado. Essa função poderia ser usada para adicionar o ID do usuário como prefixo no ID de sessão para acessar a sessão ativa do usuário de forma eficiente. Habilitar session.use_strict_mode é muito importante com essa configuração. Caso contrário, usuários maliciosos podem definir IDs de sessão maliciosos para outros usuários.

Nota: Usuários de versões anteriores ao PHP 7.1.0 devem usar CSPRNG, como por exemplo /dev/urandom ou random_bytes(), e funções de hash para gerar um novo ID de sessão. session_create_id() possui detecção de colisão e gera o ID de sessão de acordo com as configurações INI de sessão. O uso de session_create_id() é preferível.

Renovação do ID de sessão

session.use_strict_mode é uma boa prevenção, mas não é o suficiente. Desenvolvedores devem usar session_regenerate_id() para a segurança da sessão.

A renovação do ID de sessão reduz o risco de roubo do ID de sessão, sendo assim, session_regenerate_id() deve ser chamada periodicamente. Por exemplo, a renovação do ID de sessão a cada 15 minutos para a segurança de conteúdos sensíveis. Mesmo se o ID de sessão for roubado, tanto a sessão do usuário legítimo quanto a do atacante terão expirados. Ou seja, o acesso do usuário ou do atacante irá gerar erro de acesso à sessão obsoleta.

O ID de sessão deve ser renovado quando o privilégios do usuário são elevados, por exemplo após o usuário se autenticar. session_regenerate_id() deve ser chamado antes de salvar as informações de autenticação em $_SESSION. (session_regenerate_id() salva os dados da sessão atual automaticamente com o intuito de salvar o timestamp/etc na sessão atual.) Assegure-se de que apenas a nova sessão contenha flag autenticada.

Desenvolvedores não devem depender da expiração do ID de sessão proveniente de session.gc_maxlifetime. Atacantes podem acessar o ID de sessão da vítima periodicamente para impedir que ele expire e para poder continuar explorando o ID, inclusive as sessões autenticadas.

Ao invés disso, desenvolvedores devem implementar um gerenciamento de sessão baseada em timestamp.

Aviso

Embora o gerenciador de sessão possa gerenciar o timestamp de forma transparente, essa funcionalidade não está implementada. Dados de sessões antigas devem ser mantidos até a execução do GC (coletor de lixo). Ao mesmo tempo, desenvolvedores devem assegurar-se de remover dados de sessões obsoletas. Porém, os desenvolvedores não devem remover dados de sessões ativas imediatamente. Isto é, session_regenerate_id(true); e session_destroy() nunca devem ser chamados juntos para uma sessão ativa. Isso pode soar contraditório, mas é um requisito obrigatório.

session_regenerate_id() não apaga sessão antiga por padrão. Uma sessão obsoleta e autenticada pode estar disponível para uso. Os desenvolvedores devem impedir que sessões desatualizadas sejam utilizadas por qualquer pessoa. Eles devem impedir acesso acesso aos dados de sessões obsoletas por conta própria utilizando timestamps.

Aviso

A remoção repentina de sessão ativa produz efeitos colaterais indesejados. A sessão pode desaparecer quando houver conexões concorrentes em uma aplicação web e/ou a rede estiver instável.

Possíveis acessos maliciosos também não podem ser detectados com a remoção imediata de sessões ativas.

Ao invés de remover a sessão antiga imediatamente, deve ser configurado, na $_SESSION, um tempo curto (timestamp) para a expiração e proibir acesso aos dados da sessão (essa implementação é por contra própria).

O acesso aos dados de sessões antigas não deve ser bloqueado imediatamente depois de executar session_regenerate_id(). O acesso deve ser bloqueado um pouco depois, como por exemplo, alguns segundos depois para redes estáveis, como redes cabeadas, e alguns minutos depois para redes instáveis como celulares ou sem Wi-Fi.

Se um usuário tentar acessar uma sessão obsoleta (que já tenha expirado), o acesso deve ser proibido. É recomendável que seja removido o status de autenticação de todas as sessões do usuário, porque é provável que seja um ataque.

O uso adequado de session.use_only_cookies e session_regenerate_id() poderia causar um ataque DoS pessoal por causa de cookies impossíveis de serem removidos e que foram configurados por atacantes. Quando isso acontecer, o desenvolvedor pode solicitar aos usuários que removam os cookies e avisá-los que podem existir problemas de segurança. Atacantes podem configurar cookies maliciosos via aplicações web vulneráveis, extensões maliciosas para navegadores, dispositivos comprometidos fisicamente, etc.

Aviso

Não interprete de forma equivocada o risco de DoS. session.use_strict_mode=On é obrigatório para a segurança geral do ID de sessão! É recomendável que todos os sites habilitem session.use_strict_mode.

DoS somente pode acontecer quando a conta está sob ataque. Uma vulnerabilidade de injeção de JavaScript na aplicação representa a causa mais comum.

Remoção dos dados de sessão

Os dados de sessões obsoletas devem ser inacessíveis e removidos. O módulo de sessão atual não manipula isso muito bem.

É melhor remover os dados de sessões obsoletas o mais cedo possível. Ainda assim, sessões ativas não devem ser removidas imediatamente. Para preencher esses requisitos, o gerenciamento dos dados de sessões baseadas em timestamp deve ser implementado pelo próprio desenvolvedor.

Configure e gerencie um timestamp de expiração na $_SESSION. Bloqueie os acessos aos dados de sessões desatualizadas. Quando um acesso aos dados de uma sessão obsoleta for detectado, é aconselhável remover todos os status de autenticação das sessões dos usuários e forçá-los a refazer a autenticação. O acesso aos dados de uma sessão obsoleta pode ser um ataque. Para fazer isso, deve ser mantido um registro das sessões ativas por usuário.

Nota: O acesso à uma sessão obsoleta pode ocorrer por causa de redes instáveis e/ou acessos concorrentes ao website. O servidor tenta definir um novo ID de sessão via cookie, mas o pacote que define o cookie (Set-Cookie) pode não ter chegado ao cliente por perda de conexão. Uma conexão pode gerar um novo ID de sessão executando session_regenerate_id(), mas uma outra conexão concorrente pode não ter pego ainda o novo ID de sessão. Além disso, o acesso aos dados da sessão obsoleta deve ser bloqueado algum tempo depois. Ou seja, o gerenciamento de sessão baseada em timestamp é necessário.

Em poucas palavras, dados de sessão não devem ser destruídos com session_regenerate_id() ou session_destroy(), mas timestamps dem ser utilizados para controlar o acesso aos dados da sessão. Deixe que session_gc() remova os dados obsoletos do armazenamento de dados da sessão.

Sessão e Travamento dos dados

Os dados de sessão são travados para evitar condição de corrida (data race) por padrão. A trava é necessária para manter os dados consistentes entre as requisições.

Contudo, o travamento pode ser abusado por um atacante para realizar um ataque DoS. Para diminuir os riscos de DoS por travamento de sessão, reduza o travamento. Use sessões somente leitura quando a alteração dos dados não for necessária. Use a opção 'read_and_close' com session_start(). session_start(['read_and_close'=>1]); Feche a sessão assim que você terminar de alterar $_SESSION, usando session_commit().

O módulo de sessão atual não detecta modificações em $_SESSION enquanto a sessão está inativa. É responsabilidade do desenvolvedor não modificar a variável $_SESSION quando a sessão está inativa.

Sessões ativas

Os desenvolvedores devem manter um registro de sessões ativas por usuário. E notificar o usuário sobre quantas sessões ativas, de qual IP (e área), há quanto tempo a sessão está ativa, etc. O PHP não mantém um registro dessas informações. É o desenvolvedor quem deve manter.

Existem inúmeras formas de implementação. Pode ser configurado um banco de dados que mantém um registro dos dados necessários e armazena as informações nele. Como os dados de sessão são removidos pelo coletor de lixo, o desenvolvedor deve cuidar dos dados removidos para manter a consistência do banco de dados das sessões ativas.

Uma das implementações mais simples é prefixar o ID de sessão com o ID do usuário e armazenar as informações necessárias na $_SESSION. Muitos bancos de dados têm bom desempenho para selecionar o prefixo de uma string. Desemvolvedores PODEM usar session_regenerate_id() e session_create_id() para isso.

Aviso

Nunca utilize informações confidenciais como prefixo. Se o ID do usuário for confidencial, considere a utilização de hash_hmac().

Aviso

Habilitar session.use_strict_mode é obrigatório para esse setup. Certifique-se de que essa opção esteja habilitada, caso contrário o banco de dados de sessões ativas pode ser comprometido.

O gerenciamento de sessão baseada em timestamp é necessário para detectar acesso em sessões obsoletas. Quando um acesso à uma sessão obsoleta é detectado, as flags de autenticação devem ser removidas de todas as sessões ativas para esse usuário. Isso evita que atacantes explorem sessões roubadas.

Sessão e login automático

Desenvolvedores não devem utilizar ID de sessão de longa vida para o login automático, pois isso aumenta o risco de roubo da sessão. O login automático deve ser implementado pelo desenvolvedor.

Use um hash seguro de uso único como chave para o login automático usando setcookie(). Use um hash seguro e mais forte que SHA-2, como por exemplo, SHA-256 ou maior com dados randômicos provenientes de random_bytes() ou /dev/urandom.

Se o usuário não estiver autenticado, verifique se a chave de login automático é válida ou não. Se a chave é válida, autentique o usuário e configure uma nova chave "one-time hash" segura. Deve ser possível usar a chave de login automático apenas uma vez, ou seja, nunca reutilize uma chave de login automático; ao invés disso, sempre gere uma nova chave.

A chave de login automático é uma chave de autenticação de longa vida, portanto essa chave deve estar o mais protegida possível. Use os atributos de cookie path/httponly/secure para protegê-la. Ou seja, nunca transmita a chave de login automático a não ser que seja realmente necessário.

Desenvolvedores devem implementar funcionalidades que desabilitam login automático e removem cookies de login automático desnecessários.

Ataques CSRF (Cross-Site Request Forgeries)

Sessão e autenticação não protegem contra ataques CSRF. Os desenvolvedores devem implementar proteções contra CSRF por conta própria.

output_add_rewrite_var() pode ser usada para proteção contra CSRF. Visite o manual para mais detalhes.

Nota: Versões do PHP anteriores à 7.2.0 utilizam o mesmo buffer de saída e as mesmas configurações INI que o recurso trans sid. Portanto, o uso de output_add_rewrite_var() em versões do PHP anteriores à 7.2.0 não é recomendado.

A maioria dos frameworks para aplicações web tem suporte à proteção CSRF. Visite o manual do framework de sua aplicação para mais detalhes.

A partir do PHP 7.3, o atributo SameSite para cookies de sessão pode ser utilizado. É uma medida adicional que pode mitigar vulnerabilidades CSRF.


Protegendo as configurações INI relacionadas à sessão

Ao proteger as configurações INI relacionadas à sessão, a segurança das sessões também aumenta. Algumas configurações INI importantes não possuem recomendações. O desenvolvedor é o responsável em garantir a segurança das configurações de sessão.

  • session.cookie_lifetime=0

    0 tem um sentido especial. Ele diz para o navegador não armazenar cookies no armazenamento permanente. Sendo assim, quando o navegador é encerrado, o cookie com o ID de sessão é deletado imediatamente. Se o desenvolvedor configurar um valor diferente de "0", pode permitir que outros usuários utilizem o ID de sessão. A maioria das aplicações devem utilizar 0 para isto.

    Se a funcionalidade de login automático é necessária, o desenvolvedor deve implementá-la por conta própria e de forma segura. Não utilize um ID de sessão de longa vida para isso. Mais informações podem ser encontradas acima na seção sobre este assunto.

  • session.use_cookies=On

    session.use_only_cookies=On

    Embora o cookie HTTP tenha alguns problemas, ele é o modo preferido para gerenciar o ID de sessão. Utilize apenas cookies para o gerenciamento do ID de sessão quando possível. A maioria das aplicações devem utilizar cookie para o ID de sessão.

    Se session.use_only_cookies=Off, o módulo de sessão usará valores para o ID de sessão definidos por GET ou POST desde que o cookie de ID de sessão não tenha sido inicializado.

  • session.use_strict_mode=On

    Contudo, habilitar session.use_strict_mode é obrigatório para sessões seguras. Essa opção está desabilitada por padrão.

    Essa opção evita que o módulo de sessão utilize um ID de sessão que não tenha sido inicializado. Em outras palavras, o módulo de sessão aceita apenas ID de sessão válido e que tenha sido gerado pelo módulo de sessão. O módulo de sessão rejeita o ID caso ele tenha sido fornecido pelo usuário.

    Por causa das especificações dos cookies, atacantes podem configurar cookies de ID de sessão indeletáveis por causa de configurações locais ou por injeção de JavaScript. session.use_strict_mode pode evitar que um ID de sessão inicializado por um atacante seja utilizado.

    Nota:

    Atacantes podem inicializar um ID de sessão utilizando os próprios computadores e depois configurá-lo como o da vítima. No entanto, eles precisariam manter o ID de sessão ativo. Também seria necessário alguns passos adicionais para executar um ataque nesse cenário. Portanto, a opção session.use_strict_mode funciona como prevenção.

  • session.cookie_httponly=On

    Proíbe o acesso ao cookie de sessão através do JavaScript. Essa configuração evita o roubo de cookies por injeção de JavaScript.

    É possível usar um ID de sessão como chave de proteção contra CSRF, mas isso não é recomendado. Por exemplo, o código HTML pode ser salvo e enviado para outros usuários. Os desenvolvedores não devem escrever o ID de sessão nas páginas, para evitar problemas de segurança. Quase todas as aplicações devem utilizar o atributo httponly para o cookie do ID de sessão.

    Nota:

    O token de proteção contra CSRF deve ser renovado periodicamente, exatamente como o ID de sessão.

  • session.cookie_secure=On

    Permite o acesso ao cookie de ID de sessão apenas quando o protocolo é HTTPS. Se seu website utiliza apenas HTTPS, então essa opção deve ser habilitada.

    O uso de HSTS deve ser considerado em websites que utilizem apenas HTTPS.

  • session.cookie_samesite="Lax" ou session.cookie_samesite="Strict"

    A partir do PHP 7.3 o atributo "SameSite" pode ser definido para o cookie de ID de sessão. Este atributo é uma forma de se mitigar ataques CSRF (Cross Site Request Forgery).

    A diferença entre Lax e Strict é a acessibilidade do cookie em requisições que se original de outro domínio registrável empregando o método HTTP GET. Cookies usando Lax serão acessíveis em uma requisição GET originada de outro domínio registrável, enquanto que cookies que usam Strict não serão.

  • session.gc_maxlifetime=[choose smallest possible]

    session.gc_maxlifetime é a configuração para remoção de ID de sessão obsoleta. Depender dessa configuração não é recomendado. O gerenciamento do tempo de vida da sessão deve ser feito utilizando timestamp e por contra própria.

    É melhor que a coleta de lixo (garbage collection) da sessão seja feita pela função session_gc(). session_gc() é recomendada ser executada pelos gerenciadores de tarefas, como, por exemplo, cron em sistemas tipo Unix.

    Por padrão, a coleta de lixo (GC) é executada por probabilidade. Essa configuração não garante a remoção de sessões antigas. Embora o desenvolvedor não possa depender dessa configuração, defini-la com o menor valor possível é recomendado. Ajuste session.gc_probability e session.gc_divisor para que as sessões obsoletas sejam deletadas na frequência apropriada. Se a funcionalidade de login automático é necessária, o desenvolvedor deve implementá-la por contra própria e de forma segura, veja acima para mais informação. Nunca utilize ID de sessão de longa vida para isso.

    Nota:

    Alguns módulos de manipuladores de armazenamento de sessão não utilizam essa configuração para a expiração baseada em probabilidade, como, por exemplo, memcached e memcache. Visite a documentação do manipulador de armazenamento de sessão para mais detalhes.

  • session.use_trans_sid=Off

    O uso de gerenciamento transparente do ID de sessão não é proibido. Ele pode ser utilizado quando necessário. Contudo, desabilitar o gerenciamento transparente do ID de sessão melhora a segurança geral do ID de sessão, pois remove a possibilidade de injeção e vazamento do ID de sessão.

    Nota:

    O ID de sessão pode ser exposto através de uma URL salva nos Favoritos do navegador, uma URL enviada por e-mail ou mesmo caso o código-fonte HTML seja salvo.

  • session.trans_sid_tags=[tags limitadas]

    (PHP 7.1.0 >=) Desenvolvedores não devem reescrever tags HTML sem necessidade. A configuração padrão é suficiente para a maioria dos casos. Versões anteriores do PHP utilizam a configuração url_rewriter.tags para tal.

  • session.trans_sid_hosts=[hosts limitados]

    (PHP 7.1.0 >=) Essa configuração INI define uma lista de hosts que permitem a reescrita do recurso trans sid. Nunca adicione hosts que não sejam confiáveis. O módulo de sessão permite apenas o valor de $_SERVER['HTTP_HOST'] quando essa configuração está vazia.

  • session.referer_check=[sua URL de origem]

    Quando session.use_trans_sid estiver habilitada, o uso dessa opção é recomendado. Ela reduz o risco de injeção do ID de sessão. Se seu site é http://example.com/, defina essa opção como http://example.com/. Note que quando HTTPS é utilizado, o navegador não enviará o cabeçalho relacionado ao "referer". O navegador também pode não enviar o "referer" dependendo da configuração. Portanto, essa configuração não é uma medida de segurança confiável. O uso desta configuração é recomendado.

  • session.cache_limiter=nocache

    Certifique-se de que o conteúdo HTTP não é armazenado em cache para sessões autenticadas. Permita o armazenamento em cache apenas quando o conteúdo não é privado. Caso contrário, o conteúdo pode ser exposto. "private" pode ser usado se o conteúdo HTTP não incluir dados sensíveis/confidenciais. Note que "private" pode fazer com que dados privados sejam armazenados em cache em clientes compartilhados. "public" pode ser usado somente quando o conteúdo HTTP não contém dados privados e ou confidenciais.

  • session.sid_length="48"

    (PHP 7.1.0 >=) Um ID de sessão mais longo resulta em um ID de sessão mais forte. Desenvolvedores devem considerar o uso de ID de sessão com 32 caracteres ou mais. Pelo menos 26 caracteres são necessários quando session.sid_bits_per_character="5".

  • session.sid_bits_per_character="6"

    (PHP 7.1.0 >=) Quanto mais bits houver em um caractere de ID de sessão, mais forte será o ID de sessão gerado pelo módulo de sessão para a mesma quantidade de caracteres.

  • session.hash_function="sha256"

    (PHP 7.1.0 <) Funções de hash mais fortes também geram um ID de sessão mais forte. Embora a colisão de hash é pouco provável até mesmo com MD5, desenvolvedores devem usar SHA-2 ou funções de hash ainda mais fortes para essa tarefa. Os desenvolvedores podem usar um hash mais forte como sha384 ou sha512. Certifique-se de informar um valor suficientemente longo em entropy para a função de hash usada.

  • session.save_path=[diretório não público]

    Se for definido para um diretório público, como /tmp (o padrão), outros usuários no servidor podem ser capazes de sequestrar seções obtendo a lista de arquivos nesse diretório.


Funções para Sessão

Índice

  • session_abort — Descarta as alterações no array da sessão e encerra a sessão
  • session_cache_expire — Obter e/ou definir a expiração do cache atual
  • session_cache_limiter — Obtém e/ou define o limitador do cache atual
  • session_commit — Sinônimo de session_write_close
  • session_create_id — Cria novo ID de sessão
  • session_decode — Decodifica dados de sessão de uma sessão codificada em formato string
  • session_destroy — Destrói todos os dados registrados em uma sessão
  • session_encode — Codifica os dados atuais da sessão como uma sessão codificada em formato string
  • session_gc — Executa a coleta de lixo de dados da sessão
  • session_get_cookie_params — Obtém os parâmetros do cookie da sessão
  • session_id — Obtém e/ou define o id de sessão atual
  • session_module_name — Obtém e/ou define o módulo da sessão atual
  • session_name — Obtém e/ou define o nome da sessão atual
  • session_regenerate_id — Atualiza o id da sessão atual com um novo id gerado
  • session_register_shutdown — Função de finalização da sessão
  • session_reset — Reinicializa um array de sessão com os valores originais
  • session_save_path — Obtém e/ou define o caminho para armazenamento da sessão atual
  • session_set_cookie_params — Define os parâmetros do cookie de sessão
  • session_set_save_handler — Define funções de armazenamento de sessão à nível de usuário
  • session_start — Inicia uma nova sessão ou continua uma sessão existente
  • session_status — Retorna o status atual da sessão
  • session_unset — Libera todas as variáveis de sessão
  • session_write_close — Guarda os dados de sessão e fecha a sessão


Descarta as alterações no array da sessão e encerra a sessão

  • « Funções para Sessão
  • session_cache_expire »
  • PHP Manual
  • Funções para Sessão
  • Descarta as alterações no array da sessão e encerra a sessão

session_abort

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

session_abort — Descarta as alterações no array da sessão e encerra a sessão

Descrição

session_abort(): bool

session_abort() encerra a sessão sem salvar dados. Consequentemente, os valores originais da sessão são mantidos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.2.0 | O tipo de retorno dessa função agora é bool. Antigamente, era void.

Veja Também

  • $_SESSION
  • Diretiva de configuração session.auto_start
  • session_start() - Inicia uma nova sessão ou continua uma sessão existente
  • session_reset() - Reinicializa um array de sessão com os valores originais
  • session_commit() - Sinônimo de session_write_close


Obter e/ou definir a expiração do cache atual

  • « session_abort
  • session_cache_limiter »
  • PHP Manual
  • Funções para Sessão
  • Obter e/ou definir a expiração do cache atual

session_cache_expire

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

session_cache_expire — Obter e/ou definir a expiração do cache atual

Descrição

session_cache_expire(?int $value = null): int|false

session_cache_expire() retorna a configuração atual de session.cache_expire.

O prazo para o cache expirar é redefinido para o padrão de 180 guardado em session.cache_expire na inicialização da requisição. Então você precisa chamar session_cache_expire() para cada requesição (e antes que session_start() seja utilizada).

Parâmetros

value

Se value é informado e não null, a expiração do cache atual é modificado para value.

Nota: Definir o valor de value tem valor apenas se session.cache_limiter é definido como um valor diferente de nocache.

Valor Retornado

Retorna a configuração atual de session.cache_expire. O valor retornado deve ser lido em minutos, padrão de 180. Caso não seja possível alterar o valor, false é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | value é anulável agora.

Exemplos

Exemplo #1 Exemplo de session_cache_expire()

<?php

/* define o limitador de cache para 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* define o prazo do cache em 30 minutos */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* inicia a sessão */

session_start();

echo "O limitador de cache está definido agora como $cache_limiter<br />";
echo "As sessões em cache irão expirar depois de $cache_expire minutos";
?>

Veja Também

  • session.cache_expire
  • session.cache_limiter
  • session_cache_limiter() - Obtém e/ou define o limitador do cache atual


Obtém e/ou define o limitador do cache atual

  • « session_cache_expire
  • session_commit »
  • PHP Manual
  • Funções para Sessão
  • Obtém e/ou define o limitador do cache atual

session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

session_cache_limiter — Obtém e/ou define o limitador do cache atual

Descrição

session_cache_limiter(?string $value = null): string|false

session_cache_limiter() retorna o nome do atual limitador do cache.

O limitador do cache controla quais HTTP headers de controle de cache são enviados para o cliente. Estes headers determinam as regras pelas quais o conteúdo da página pode ser guardado em cache pelo cliente e proxy intermediário. Definindo o limitador do cache para nocache rejeitaria qualquer cache do cliente/proxy. Um valor como public permitiria o cache do proxy e do cliente, e private rejeitaria o cache do proxy mas permite que o cliente armazene o conteúdo em cache.

No modo private, o cabeçalho Expire enviado para o cliente pode provocar confusão em alguns browsers, incluindo o Mozilla. Você pode evitar este problema usando o modo private_no_expire. O cabeçalho Expire nunca é enviado para o cliente nesse modo.

Definindo o limitador do cache como '' desativará completamente o envio automático de cabeçalhos de cache.

O limitador do cache é redefinido para o valor padrão guardado em session.cache_limiter na inicialização da requisição. Então você precisa chamar session_cache_limiter() para cada requisição (e antes que session_start() seja chamada).

Parâmetros

value

Se value é especificado e não null, o nome do limitador de cache atual é modificado para o novo valor.

Valores possíveis
Valor Cabeçalhos enviados
public
Expires: (em algum momento do futuro, de acordo com session.cache_expire)
Cache-Control: public, max-age=(em algum momento do futuro, de acordo com session.cache_expire)
Last-Modified: (o timestamp de quando a sessão foi salva pela última vez)
private_no_expire
Cache-Control: private, max-age=(session.cache_expire no futuro), pre-check=(session.cache_expire no futuro)
Last-Modified: (o timestamp de quando a sessão foi salva pela última vez)
private
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private, max-age=(session.cache_expire no futuro), pre-check=(session.cache_expire no futuro)
Last-Modified: (o timestamp de quando a sessão foi salva pela última vez)
nocache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

Valor Retornado

Retorna o nome do limitador de cache atual. Caso não seja possível alterar o valor, false é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | value is nullable now.

Exemplos

Exemplo #1 Exemplo de session_cache_limiter()

<?php

/* define o limitador do cache para 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

echo "O limitador do cache está definido agora para $cache_limiter<br />";
?>

Veja Também

  • session.cache_limiter


Sinônimo de session_write_close

  • « session_cache_limiter
  • session_create_id »
  • PHP Manual
  • Funções para Sessão
  • Sinônimo de session_write_close

session_commit

(PHP 4 >= 4.4.0, PHP 5, PHP 7, PHP 8)

session_commit — Sinônimo de session_write_close()

Descrição

Esta função é um apelido para: session_write_close().


Cria novo ID de sessão

  • « session_commit
  • session_decode »
  • PHP Manual
  • Funções para Sessão
  • Cria novo ID de sessão

session_create_id

(PHP 7 >= 7.1.0, PHP 8)

session_create_id — Cria novo ID de sessão

Descrição

session_create_id(string $prefix = ""): string|false

session_create_id() é usado para criar um novo id de sessão para a sessão atual. Ele retorna um ID de sessão livre de colisão.

Se a sessão não estiver ativa, a verificação de colisão será omitida.

O id de sessão é criado de acordo com a configuração no php.ini.

É importante usar o mesmo ID de usuário do seu servidor web para o script de tarefa do GC. Caso contrário, você poderá ter problemas de permissão, especialmente com o gerenciador de salvamento de arquivos.

Parâmetros

prefix

Se prefix for especificado, o novo id de sessão é prefixado por prefix. Nem todos os caracteres são permitidos no ID da sessão. Caracteres entre a-z A-Z 0-9 , (vírgula) e - (sinal de menos) são permitidos.

Valor Retornado

session_create_id() retorna um novo id de sessão livre de colisão para a sessão atual. Se for usado sem uma sessão ativa, a verificação de colisão é omitida. Em caso de falha, false é retornado.

Exemplos

Exemplo #1 session_create_id() exemplo com session_regenerate_id()

<?php
// Minha função de início de sessão suporta gerenciamento de timestamp
function my_session_start() {
session_start();
// Não permitir o uso de ID de sessão muito antigo
if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) {
session_destroy();
session_start();
}
}

// Minha função de regeneração de id de sessão
function my_session_regenerate_id() {
// Chame session_create_id() enquanto a sessão estiver ativa
// para garantir que não haja colisões.
if (session_status() != PHP_SESSION_ACTIVE) {
session_start();
}
// AVISO: Nunca use strings confidenciais para prefixo!
$newid = session_create_id('myprefix-');
// Definir timestamp de exclusão. Os dados da sessão não devem ser excluídos imediatamente por motivos.
$_SESSION['deleted_time'] = time();
// Terminar sessão
session_commit();
// Certifique-se de aceitar o ID de sessão definido pelo usuário
// NOTA: Você deve ativar use_strict_mode para operações normais.
ini_set('session.use_strict_mode', 0);
// Define novo ID de sessão personalizado
session_id($newid);
// Comece com um ID de sessão personalizado
session_start();
}

// Certifique-se de que use_strict_mode está habilitado.
// use_strict_mode é obrigatório por motivos de segurança.
ini_set('session.use_strict_mode', 1);
my_session_start();

// O ID da sessão deve ser regenerado quando
// - Usuário se loga
// - Usuário se desloga
// - Certo período já passou
my_session_regenerate_id();

// Escreva códigos úteis
?>

Veja Também

  • session_regenerate_id() - Atualiza o id da sessão atual com um novo id gerado
  • session_start() - Inicia uma nova sessão ou continua uma sessão existente
  • session.use_strict_mode
  • SessionHandler::create_sid() - Retorna um novo ID de sessão


Decodifica dados de sessão de uma sessão codificada em formato string

  • « session_create_id
  • session_destroy »
  • PHP Manual
  • Funções para Sessão
  • Decodifica dados de sessão de uma sessão codificada em formato string

session_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

session_decode — Decodifica dados de sessão de uma sessão codificada em formato string

Descrição

session_decode(string $data): bool

session_decode() decodifica os dado de sessão serializados fornecidos em $data e preenche a super global $_SESSION com o resultado.

Por padrão, o método de deserialização usado é interno do PHP e não é o mesmo que unserialize(). O método de deserialização pode ser configurado usando session.serialize_handler.

Parâmetros

data

Os dados codificados para serem armazenados.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • session_encode() - Codifica os dados atuais da sessão como uma sessão codificada em formato string
  • session.serialize_handler


Destrói todos os dados registrados em uma sessão

  • « session_decode
  • session_encode »
  • PHP Manual
  • Funções para Sessão
  • Destrói todos os dados registrados em uma sessão

session_destroy

(PHP 4, PHP 5, PHP 7, PHP 8)

session_destroy — Destrói todos os dados registrados em uma sessão

Descrição

session_destroy(): bool

session_destroy() destrói todos os dados associados com a sessão atual. Ela não apaga nenhuma das variáveis globais associadas à sessão atual, nem apaga o cookie de sessão. Para usar as variáveis de sessão novamente, session_start() deve ser chamada.

Nota: Não é necessário chamar session_destroy() em um código habitual. Ao invés de destruir os dados da sessão, limpe o array $_SESSION.

Para matar a sessão completamente, o ID da sessão também deve ser apagado. Se um cookie for usado para propagar o ID da sessão (funcionamento padrão), então o cookie de sessão deve ser excluído. setcookie() pode ser usado para isso.

Quando session.use_strict_mode está habilitado, não é necessário remover o cookie de ID das sessões obsoletas porque o módulo de sessão não aceitará um cookie de ID de sessão quando não houver dados associados ao ID de sessão, e irá criar um novo cookie de ID de sessão. Habilitar session.use_strict_mode é recomendado para todos os sites.

Aviso

A remoção imediata da sessão pode causar resultados indesejados. Quando há requisições concorrentes, outras conexões podem perder de forma repentina os dados da sessão, como por exemplo, requisições originadas no JavaScript e/ou requisições de links.

Embora o módulo de sessão atual não aceita um cookie de ID de sessão vazio, a remoção imediata da sessão pode resultar em um cookie de ID de sessão vazio por causa da condição de corrida no navegador do usuário. Isso fará com que o usuário crie vários IDs de sessão desnecessariamente.

Para evitar isso, deve ser definido um timestamp de removação em $_SESSION e o acesso à sessão deve ser rejeitado algum tempo depois. Ou então a aplicação não pode ter requisições concorrentes. Isso se aplica à session_regenerate_id() também.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Destruindo uma sessão com $_SESSION

<?php
// Inicializa a sessão.
// Se estiver sendo usado session_name("something"), não esqueça de usá-lo agora!
session_start();

// Apaga todas as variáveis da sessão
$_SESSION = array();

// Se é preciso matar a sessão, então os cookies de sessão também devem ser apagados.
// Nota: Isto destruirá a sessão, e não apenas os dados!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}

// Por último, destrói a sessão
session_destroy();
?>

Veja Também

  • session.use_strict_mode
  • session_reset() - Reinicializa um array de sessão com os valores originais
  • session_regenerate_id() - Atualiza o id da sessão atual com um novo id gerado
  • unset() - Remove a definição de uma variável informada
  • setcookie() - Envia um cookie


Codifica os dados atuais da sessão como uma sessão codificada em formato string

  • « session_destroy
  • session_gc »
  • PHP Manual
  • Funções para Sessão
  • Codifica os dados atuais da sessão como uma sessão codificada em formato string

session_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

session_encode — Codifica os dados atuais da sessão como uma sessão codificada em formato string

Descrição

session_encode(): string|false

session_encode() retorna uma string serializada do conteúdo atual da sessão armazenados na super global $_SESSION.

Por padrão, o método de serialização usado é interno do PHP e não é o mesmo que serialize(). O método de serialização pode ser configurado usando session.serialize_handler.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o conteúdo da sessão atual codificado, ou false em caso de falha.

Notas

Aviso

Must call session_start() before using session_encode().

Veja Também

  • session_decode() - Decodifica dados de sessão de uma sessão codificada em formato string
  • session.serialize_handler


Executa a coleta de lixo de dados da sessão

  • « session_encode
  • session_get_cookie_params »
  • PHP Manual
  • Funções para Sessão
  • Executa a coleta de lixo de dados da sessão

session_gc

(PHP 7 >= 7.1.0, PHP 8)

session_gc — Executa a coleta de lixo de dados da sessão

Descrição

session_gc(): int|false

session_gc() é usado para realizar o GC (coleta de lixo) de dados da sessão. O PHP faz GC de sessão baseado em probabilidade por padrão.

A coleta de lixo baseada em probabilidade funciona até certo ponto, mas possui alguns problemas. 1) Os dados de sessão de sites com baixo tráfego podem não ser excluídos dentro do período preferido. 2) A coleta de lixo em sites com alto tráfego pode ser muito frequente. 3) A coleta de lixo é realizada mediante solicitação do usuário, e o usuário pode experimentar um atraso durante o processo de coleta de lixo.

Portanto, é recomendado executar a coleta de lixo periodicamente em sistemas de produção, utilizando, por exemplo, o "cron" para sistemas semelhantes ao UNIX. Certifique-se de desativar a coleta de lixo baseada em probabilidade definindo session.gc_probability como 0.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

session_gc() retorna o número de dados de sessão excluídos em caso de sucesso e false em caso de falha.

Os manipuladores de salvamento antigos não retornam o número de dados de sessão excluídos, apenas um indicativo de sucesso ou falha. Se este for o caso, o número de dados de sessão excluídos se torna 1, independentemente dos dados realmente excluídos.

Exemplos

Exemplo #1 Exemplo de session_gc() para gerenciadores de tarefas como o cron

<?php
// Observação: Este script deve ser executado pelo mesmo usuário do processo do servidor web.

// É necessário ter uma sessão ativa para inicializar o acesso ao armazenamento de dados da sessão.
session_start();

// Execute a coleta de lixo (GC) imediatamente.
session_gc();

// Limpa o ID da sessão criado pelo
session_destroy();
?>

Exemplo #2 session_gc() example for user accessible script

<?php
// Observação: session_gc() é recomendado para ser usado por um script de gerenciador de tarefas, mas
// pode ser utilizado da seguinte forma.

// Usado para verificar o último horário de coleta de lixo (GC).
$gc_time = '/tmp/php_session_last_gc';
$gc_period = 1800;

session_start();
// Execute a coleta de lixo (GC) apenas quando o período de GC tiver decorrido.
// Ou seja, chamar session_gc() a cada solicitação é desperdício de recursos.
if (file_exists($gc_time)) {
if (filemtime($gc_time) < time() - $gc_period) {
session_gc();
touch($gc_time);
}
} else {
touch($gc_time);
}
?>

Veja Também

  • session_start() - Inicia uma nova sessão ou continua uma sessão existente
  • session_destroy() - Destrói todos os dados registrados em uma sessão
  • session.gc_probability


Obtém os parâmetros do cookie da sessão

  • « session_gc
  • session_id »
  • PHP Manual
  • Funções para Sessão
  • Obtém os parâmetros do cookie da sessão

session_get_cookie_params

(PHP 4, PHP 5, PHP 7, PHP 8)

session_get_cookie_params — Obtém os parâmetros do cookie da sessão

Descrição

session_get_cookie_params(): array

Obtém os parâmetros do cookie da sessão.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array com informação do cookie da sessão atual. O array contém os seguintes items:

  • "lifetime" - A duração do cookie em segundos.
  • "path" - O caminho onde a informação está armazenada.
  • "domain" - O domínio do cookie.
  • "secure" - O cookie deve ser enviado apenas em conexões seguras.
  • "httponly" - O cookie pode ser acessado somente atráves do protocolo HTTP.
  • "samesite" - Controla o envio entre domínios do cookie.

Registro de Alterações

Versão | Descrição
7.3.0 | A entrada "samesite" foi adicionada ao array retornado.

Veja Também

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session.cookie_samesite
  • session_set_cookie_params() - Define os parâmetros do cookie de sessão


Obtém e/ou define o id de sessão atual

  • « session_get_cookie_params
  • session_module_name »
  • PHP Manual
  • Funções para Sessão
  • Obtém e/ou define o id de sessão atual

session_id

(PHP 4, PHP 5, PHP 7, PHP 8)

session_id — Obtém e/ou define o id de sessão atual

Descrição

session_id(?string $id = null): string|false

session_id() é usado para obter ou definir o id de sessão para a sessão atual.

A constante SID também pode ser usada para obter o nome e id da sessão atual como uma string adequado para adicionar em URLs. Veja também Manipulação de Sessão.

Parâmetros

id

Se id for especificado e não null, ele substituirá o id de sessão atual. session_id() precisa ser chamado antes de session_start() para este fim. Dependendo do manipulador de sessão, nem todos os caracteres são permitidos em um id de sessão. Por exemplo, o manipulador de sessão em arquivo permite apenas caracteres no intervalo a-z A-Z 0-9 , (comma) and - (minus)!

Nota: Quando estiver usando cookies de sessão, especificar um id para session_id() sempre enviará um novo cookie quando session_start() for chamada, sem importar se o id da sessão atual for idêntico ao que está sendo definido.

Valor Retornado

session_id() retorna o id de sessão para a sessão atual ou uma string vazia ("") se não houver sessão atual (não existe um id de sessão atual). Em caso de falha, false é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | id é anulável agora.

Veja Também

  • session_regenerate_id() - Atualiza o id da sessão atual com um novo id gerado
  • session_start() - Inicia uma nova sessão ou continua uma sessão existente
  • session_set_save_handler() - Define funções de armazenamento de sessão à nível de usuário
  • session.save_handler


Obtém e/ou define o módulo da sessão atual

  • « session_id
  • session_name »
  • PHP Manual
  • Funções para Sessão
  • Obtém e/ou define o módulo da sessão atual

session_module_name

(PHP 4, PHP 5, PHP 7, PHP 8)

session_module_name — Obtém e/ou define o módulo da sessão atual

Descrição

session_module_name(?string $module = null): string|false

session_module_name() obtém o nome do módulo da sessão atual, que também é conhecido como session.save_handler.

Parâmetros

module

Se module é especificado e não null, então é este módulo que será usado. É proibido passar "user" para este parâmetro. Em vez de session_set_save_handler() deve ser chamado para definir um usuário manipulador de sessão definido.

Valor Retornado

Retorna o nome do módulo da sessão atual, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | module é anulável agora.
7.2.0 | Agora é explicitamente proibido definir o nome do módulo como "user". Anteriormente, isso era silenciosamente ignorado.


Obtém e/ou define o nome da sessão atual

  • « session_module_name
  • session_regenerate_id »
  • PHP Manual
  • Funções para Sessão
  • Obtém e/ou define o nome da sessão atual

session_name

(PHP 4, PHP 5, PHP 7, PHP 8)

session_name — Obtém e/ou define o nome da sessão atual

Descrição

session_name(?string $name = null): string|false

session_name() retorna o nome da sessão atual. Se name é informado, session_name() vai atualizar o nome da sessão e retornar o nome da sessão antiga.

Se um novo name de sessão é fornecido, session_name() modifica o cookie HTTP (e saída de conteúdo quando session.transid é habilitado). Assim que o cookie HTTP é enviado, session_name() gera erro. session_name() deve ser chamado antes de session_start() para a sessão funcionar apropriadamente.

O nome da sessão é redefinido para o padrão guardado em session.name na inicialização da requisição. Então você deve chamar session_name() para cada requisição (e antes que session_start() seja chamado).

Parâmetros

name

O nome da sessão refere-se ao nome da sessão, que é usado em cookies e URLs (por exemplo, PHPSESSID). Ele deve conter apenas caracteres alfanuméricos; ele deve ser curto e descritivo (para usuários com avisos de cookie habilitados). Se name é informado e não null, o nome da sessão atual é modificado para o novo valor.

Aviso

O nome da sessão não pode consistir apenas de dígitos, pelo menos uma letra deve estar presente. Caso contrário um novo id de sessão é gerado toda vez.

Valor Retornado

Retorna o nome da sessão atual. Se name é informado e a função atualizar o nome da sessão, o nome da sessão antiga é retornado, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | name é anulável agora.
7.2.0 | session_name() verifica o status da sessão, anteriormente, apenas verificava o status do cookie. Portanto, session_name() mais antigo permite chamar session_name() depois de session_start() que pode travar o PHP e pode resultar em mau comportamento.

Exemplos

Exemplo #1 Exemplo de session_name()

<?php

/* defina o nome da sessão para WebsiteID */

$previous_name = session_name("WebsiteID");

echo "O nome da sessão anterior era $previous_name<br />";
?>

Veja Também

  • session.name (diretiva de configuração)


Atualiza o id da sessão atual com um novo id gerado

  • « session_name
  • session_register_shutdown »
  • PHP Manual
  • Funções para Sessão
  • Atualiza o id da sessão atual com um novo id gerado

session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

session_regenerate_id — Atualiza o id da sessão atual com um novo id gerado

Descrição

session_regenerate_id(bool $delete_old_session = false): bool

session_regenerate_id() substituirá o id da sessão atual com um novo id e manterá a informação da sessão atual.

Quando session.use_trans_sid estiver habilitada, saídas (output) devem ser iniciadas depois de session_regenerate_id() ser chamada. Caso contrário, o ID da sessão antiga é utilizado.

Aviso

Atualmente, session_regenerate_id não lida muito bem em redes instáveis como, por exemplo, móvel e WiFi. Pode ocorrer perda da sessão ao chamar session_regenerate_id.

Os dados de sessões antigas não devem ser destruídos imediatamente; ao invés disso, deve ser usado timestamp para destruir a sessão e controlar o acesso aos dados de sessões antigas. Caso contrário, acessos concorrentes à página podem causar inconsistências, a perda da sessão, ou pode causar uma condição de corrida no navegador do usuário que faz com que vários IDs de sessão sejam criados desnecessariamente. A remoção imediata dos dados de sessão impossibilita a detecção de ataques de roubo de sessão, e também a prevenção.

Parâmetros

delete_old_session

Se o arquivo associado à sessão anterior deve ser excluído ou não. A sessão antiga não deve ser removida se for necessário evitar condições de corrida causadas pela remoção, ou se for necessário detectar/evitar ataques de roubo de sessão.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de session_regenerate_id()

<?php
// NOTA: Este código não é totalmente funcional, mas apenas um exemplo!

session_start();

// Verifica o timestamp para remoção
if (isset($_SESSION['destroyed'])
&& $_SESSION['destroyed'] < time() - 300) {
// Normalmente não deve acontecer. Isso pode ser um ataque ou então causado por uma rede instável.
// Remove todos os status de autenticação da sessão deste usuário.
remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
throw(new DestroyedSessionAccessException);
}

$old_sessionid = session_id();

// Define o timestamp para remoção
$_SESSION['destroyed'] = time(); // session_regenerate_id() salva os dados da sessão anterior

// Apenas chamar session_regenerate_id() pode causar a perda da sessão, etc.
// Veja o próximo exemplo.
session_regenerate_id();

// A nova sessão não precisa da flag destroyed
unset($_SESSION['destroyed']);

$new_sessionid = session_id();

echo "Old Session: $old_sessionid<br />";
echo "New Session: $new_sessionid<br />";

print_r($_SESSION);
?>

O módulo de sessão atual não trabalha bem com redes instáveis. O programador deve gerenciar o ID de sessão para evitar a perda da sessão causada por session_regenerate_id.

Exemplo #2 Evitando a perda de sessão causada por session_regenerate_id()

<?php
// NOTA: Este código não é totalmente funcional, mas apenas um exemplo!
// my_session_start() e my_session_regenerate_id() evitam a perda da sessão causada por
// redes instáveis. Além disso, este código pode evitar que a sessão seja
// roubada por atacantes.

function my_session_start() {
session_start();
if (isset($_SESSION['destroyed'])) {
if ($_SESSION['destroyed'] < time()-300) {
// Normalmente não deve acontecer. Isso pode ser um ataque ou então causado por uma rede instável.
// Remove todos os status de autenticação da sessão deste usuário.
remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
throw(new DestroyedSessionAccessException);
}
if (isset($_SESSION['new_session_id'])) {
// Não está completamente expirado ainda. O cookie pode ter sido perdido por causa de uma rede instável.
// Tenta novamente definir o cookie de ID de sessão.
// NOTA: Não tente definir o ID de sessão novamente se você quiser remover
// as flags de autenticação
session_commit();
session_id($_SESSION['new_session_id']);
// O novo ID de sessão deve existir
session_start();
return;
}
}
}

function my_session_regenerate_id() {
// Um novo ID de sessão é necessário para definir o ID de sessão corretamente
// quando o ID de sessão não é configurado por causa de instabilidade na rede.
$new_session_id = session_create_id();
$_SESSION['new_session_id'] = $new_session_id;

// Definie o timestamp para remoção
$_SESSION['destroyed'] = time();

// Escreve e fecha a sessão
session_commit();

// Inicia a sessão com um novo ID de sessão
session_id($new_session_id);
ini_set('session.use_strict_mode', 0);
session_start();
ini_set('session.use_strict_mode', 1);

// A nova sessão não precisa destas informações
unset($_SESSION['destroyed']);
unset($_SESSION['new_session_id']);
}
?>

Veja Também

  • session_id() - Obtém e/ou define o id de sessão atual
  • session_create_id() - Cria novo ID de sessão
  • session_start() - Inicia uma nova sessão ou continua uma sessão existente
  • session_destroy() - Destrói todos os dados registrados em uma sessão
  • session_reset() - Reinicializa um array de sessão com os valores originais
  • session_name() - Obtém e/ou define o nome da sessão atual


Função de finalização da sessão

  • « session_regenerate_id
  • session_reset »
  • PHP Manual
  • Funções para Sessão
  • Função de finalização da sessão

session_register_shutdown

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

session_register_shutdown — Função de finalização da sessão

Descrição

session_register_shutdown(): void

Registra session_write_close() como uma função de finalização.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Dispara um E_WARNING se o processo de registrar a função falhar.


Reinicializa um array de sessão com os valores originais

  • « session_register_shutdown
  • session_save_path »
  • PHP Manual
  • Funções para Sessão
  • Reinicializa um array de sessão com os valores originais

session_reset

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

session_reset — Reinicializa um array de sessão com os valores originais

Descrição

session_reset(): bool

session_reset() reinicializa uma sessão com os valores originais salvos no armazenamento de sessão. Esta função requer uma sessão ativa e descarta as alterações em $_SESSION.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.2.0 | O tipo de retorno desta função é bool agora. Anteriormente, era void.

Veja Também

  • $_SESSION
  • A diretiva de configuração session.auto_start
  • session_start() - Inicia uma nova sessão ou continua uma sessão existente
  • session_abort() - Descarta as alterações no array da sessão e encerra a sessão
  • session_commit() - Sinônimo de session_write_close


Obtém e/ou define o caminho para armazenamento da sessão atual

  • « session_reset
  • session_set_cookie_params »
  • PHP Manual
  • Funções para Sessão
  • Obtém e/ou define o caminho para armazenamento da sessão atual

session_save_path

(PHP 4, PHP 5, PHP 7, PHP 8)

session_save_path — Obtém e/ou define o caminho para armazenamento da sessão atual

Descrição

session_save_path(?string $path = null): string|false

session_save_path() retorna o caminho do diretório atual utilizado para salvar os dados de sessão.

Parâmetros

path

Caminho dos dados de sessão. Se informado e não null, o caminho onde os dados são salvos será alterado. session_save_path() precisa ser chamada antes de session_start() para isto.

Nota:

Em alguns sistemas operacionais, talvez você queira especificar um caminho em um sistema de arquivos (filesystem) que possa manuzear grande quantidade de pequenos arquivos eficientemente. Por exemplo, no Linux, reiserfs pode ter performance melhor do que ext2fs.

Valor Retornado

Retorna o caminho atual do diretório usado para o armazenamento de dados, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | path is nullable now.

Veja Também

  • session.save_path (diretiva de configuração)


Define os parâmetros do cookie de sessão

  • « session_save_path
  • session_set_save_handler »
  • PHP Manual
  • Funções para Sessão
  • Define os parâmetros do cookie de sessão

session_set_cookie_params

(PHP 4, PHP 5, PHP 7, PHP 8)

session_set_cookie_params — Define os parâmetros do cookie de sessão

Descrição

session_set_cookie_params(
int $lifetime_or_options,
?string $path = null,
?string $domain = null,
?bool $secure = null,
?bool $httponly = null
): bool

Alternative signature available as of PHP 7.3.0:

session_set_cookie_params(array $lifetime_or_options): bool

Define parâmetros dos cookies configurados no arquivo php.ini. O efeito desta função é apenas pela duração do script. Então, você precisa chamar session_set_cookie_params() para cada requisição e antes que session_start() seja chamada.

Esta função atualiza os valores em tempo de execução correspondentes às configurações INI que podem ser obetidos com ini_get().

Parâmetros

lifetime_or_options

Ao usar a primeira assinatura, lifetime do cookie de sessão, definido em segundos.

Ao usar a segunda assinatura, um array associativo que pode ter qualquer uma das chaves lifetime, path, domain, secure, httponly e samesite. Os valores têm o mesmo significado descrito para os parâmetros com o mesmo nome. O valor do elemento samesite deve ser ou Lax ou Strict. Se alguma das opções permitidas não for fornecida, seus valores padrão serão os iguais aos valores padrão dos parâmetros explícitos. Se o O elemento samesite é omitido, nenhum cookie SameSite atributo é definido.

path

Caminho no domínio onde o cookie vai funcionar. Use uma única barra ('/') para que funcione em todos os caminhos do domínio.

domain

Domínio do cookie, por exemplo 'www.php.net'. Para tornar os cookies visíveis em todos os subdomínios, o domínio deve ser prefixado com um ponto, como '.php.net'.

secure

Se true, o cookie só será enviado em conexões seguras.

httponly

Se true, então o PHP tentará enviar a flag httponly ao definir o cookie de sessão.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | path, domain, secure e httponly são anuláveis agora.
7.3.0 | Uma assinatura alternativa que suporta um lifetime_or_options array foi adicionado. Esta assinatura suporta também a configuração do Atributo de cookie SameSite.
7.2.0 | Retorna true em caso de sucesso ou false em caso de falha. Anteriormente a função retornava void.

Veja Também

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session.cookie_samesite
  • session_get_cookie_params() - Obtém os parâmetros do cookie da sessão


Define funções de armazenamento de sessão à nível de usuário

  • « session_set_cookie_params
  • session_start »
  • PHP Manual
  • Funções para Sessão
  • Define funções de armazenamento de sessão à nível de usuário

session_set_save_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

session_set_save_handler — Define funções de armazenamento de sessão à nível de usuário

Descrição

session_set_save_handler(
callable $open,
callable $close,
callable $read,
callable $write,
callable $destroy,
callable $gc,
callable $create_sid = ?,
callable $validate_sid = ?,
callable $update_timestamp = ?
): bool

É possível registrar o seguinte protótipo:

session_set_save_handler(object $sessionhandler, bool $register_shutdown = true): bool

session_set_save_handler() define, a nível de usuário, as funções de armazenamento de sessão que serão usadas para guardar e buscar dados associados à uma sessão. Ela é mais útil quando um método de armazenamento diferente do método disponibilizado pelas sessões do PHP é preferido, por exemplo armazenar os dados de sessão em um banco de dados.

Parâmetros

Essa função tem dois protótipos.

sessionhandler

Uma instância de uma classe implementando SessionHandlerInterface, e opcionalmente SessionIdInterface e/ou SessionUpdateTimestampHandlerInterface, como SessionHandler, para registrá-la como manipulador de sessão.

register_shutdown

Registra session_write_close() como uma função register_shutdown_function().

or
open

Um callable com a seguinte assinatura:

open(string $savePath, string $sessionName): bool

O callback open funciona igual um construtor em classes e é executado quando a sessão está sendo aberta. É a primeira função de callback executada quando a sessão é iniciada automaticamente ou manualmente com session_start(). O valor de retorno é true para sucesso, false para falha.

close

Um callable com a seguinte assinatura:

close(): bool

O callback close funciona igual um destrutor em classes e é executado depois que o callback write da sessão for chamado. Ele também é invocado quando a função session_write_close() é chamada. O valor de retorno é true para sucesso, false para falha.

read

Um callable com a seguinte assinatura:

read(string $sessionId): string

O callback read sempre deve retornar uma sessão codificada (serializada) no formato string ou uma string vazia se não há dados para leitura.

Esse callback é chamado internamente pelo PHP quando a sessão inicia ou quando a função session_start() é chamada. Antes que esse callback seja invocado, o PHP invocará o callback open.

O valor que esse callback retorna deve estar exatamente no mesmo formato de serialização que originalmente foi passado para armazenamento ao callback write. O valor retornado será desserializado automaticamente pelo PHP e usado para preencher a super global $_SESSION. Mesmo que os dados pareçam similares ao de serialize(), note que é um formato diferente, especificado na configuração INI session.serialize_handler.

write

Um callable com a seguinte assinatura:

write(string $sessionId, string $data): bool

O callback write é chamado quando a sessão precisa ser salva e fechada. Esse callback recebe o ID da sessão atual e uma versão serializada da super global $_SESSION. O método de serialização usado internamente pelo PHP é definido pela configuração INI session.serialize_handler.

Os dados de sessão serializados passado para esse callback devem ser armazenados junto com o ID de sessão passado. Ao buscar esses dados, o callback read deve retornar exatamente o mesmo valor que foi passado originalmente para o callback write.

Esse callback é invocado quando o PHP é encerrado ou explicitamente quando a função session_write_close() é chamada. Note que depois de executar esta função, o PHP executará internamente o callback close.

Nota:

O manipulador "write" não é executado enquanto o fluxo de saída não for encerrado. Portanto, saídas de comandos de debug no manipulador "write" nunca serão vistas pelo browser. Se a saída de debug é necessária, é recomendado que ela seja escrita em arquivo.

destroy

Um callable com a seguinte assinatura:

destroy(string $sessionId): bool

Esse callback é executado quando uma sessão é destruída com session_destroy() ou com session_regenerate_id() com o parâmetro de destruição definido como true. O valor de retorno deve ser true para sucesso, false para falha.

gc

Um callable com a seguinte assinatura:

gc(int $lifetime): bool

O callback de limpeza (gc) é invocado pelo PHP, internamente e periodicamente, para apagar dados de sessão antiga. A frequência é controlada por session.gc_probability e session.gc_divisor. O valor do parâmetro que é passado para esse callback pode ser definido em session.gc_maxlifetime. O valor de retorno deve ser true para sucesso, false para falha.

create_sid

Um callable com a seguinte assinatura:

create_sid(): string

Esse callback é executado quando um novo ID de sessão é necessário. Nenhum parâmetro é necessário e o valor de retorno deve ser uma string que seja um ID de sessão válido para seu manipulador.

validate_sid

Um callable com a seguinte assinatura:

validate_sid(string $key): bool

Este callback é executado quando uma sessão é iniciada, um ID de sessão é fornecido e session.use_strict_mode é habilitado. A key é o ID da sessão para validar. Um ID de sessão é válido se já existir uma sessão com esse ID. O valor retornado deve ser true em caso de sucesso, false em caso de falha.

update_timestamp

Um callable com a seguinte assinatura:

update_timestamp(string $key, string $val): bool

Este callback é executado quando uma sessão é atualizada. key é o ID da sessão, val são os dados da sessão. O valor retornado deve ser true em caso de sucesso, false em caso de falha.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Manipulador de sessão personalizado: veja o código completo na sinópse de SessionHandlerInterface.

Aqui é demonstrado apenas a execução, o código completo pode ser visto na sinópse de SessionHandlerInterface no link acima.

Note que é usado orientação à objetos com session_set_save_handler() e a função de encerramento (register_shutdown) é registrada usando sua respectiva flag. Isto geralmente é aconselhável ao registrar objetos como manipuladores de gravação de sessão.

<?php
class MySessionHandler implements SessionHandlerInterface
{
// implementa a interface aqui
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// proceder para definir e recuperar os valores pela chave de $_SESSION

Notas

Aviso

The write e close são executados depois da destruição de objetos e portanto não podem usar objetos ou lançar exceções. Não é possível capturar nem exibir o rastro (trace) de exceções e a execução simplesmente será interrompida de forma inesperada. Contudo, os destrutores do objeto podem usar sessões.

É possível chamar session_write_close() do destrutor para resolver esse problema de 'o ovo e a galinha' mas a forma mais confiável é registrar a função de finalização como descrito acima.

Aviso

O diretório de trabalho atual é alterado com algumas SAPIs (Server API) se a sessão for fechada na finalização do script. É possível fechar a sessão antecipadamente com session_write_close().

Veja Também

  • session.save_handler (diretiva de configuração)
  • session.serialize_handler (diretiva de configuração)
  • A register_shutdown_function() - Register a function for execution on shutdown
  • The session_register_shutdown() - Função de finalização da sessão
  • Visite » save_handler.inc para ver uma implementação completamente procedural


Inicia uma nova sessão ou continua uma sessão existente

  • « session_set_save_handler
  • session_status »
  • PHP Manual
  • Funções para Sessão
  • Inicia uma nova sessão ou continua uma sessão existente

session_start

(PHP 4, PHP 5, PHP 7, PHP 8)

session_start — Inicia uma nova sessão ou continua uma sessão existente

Descrição

session_start(array $options = []): bool

session_start() cria uma sessão ou continua a sessão atual baseado em um ID de sessão passado via GET ou POST, ou passado via cookie.

Quando session_start() é chamada ou quando uma sessão inicia automaticamente, o PHP chamará os manipuladores de gravação de sessão de abertura e de leitura. Eles serão manipuladores de gravação internos fornecidos por padrão ou por extensões do PHP (como SQLite ou Memcached); ou podem ser manipuladores personalizados definidos por session_set_save_handler(). A função de leitura recuperará qualquer informação de sessão existente (armazenada em um formato serializado especial) e será desserializado e usado para preencher automaticamente a variável super global $_SESSION quando a função de leitura retornar os dados de sessão gravados para o tratamento de sessão do PHP.

Para utilizar uma sessão com nome, session_name() deve ser chamada antes de session_start().

Quando session.use_trans_sid está habilitada, a função session_start() registrará um manipulador de saída interno para a reescrita da URL.

Se um usuário usar ob_gzhandler ou similar com ob_start(), a ordem da função é importante para saída/output adequado. Por exemplo, ob_gzhandler deve ser registrado antes de iniciar a sessão.

Parâmetros

options

Se informado, este é um array associativo de opções que irão substituir os que estiverem configurados nas diretivas de configuração de sessão. As chaves não devem incluir o prefixo session..

Além do conjunto de diretivas de configuração comum, a opção read_and_close pode ser informada. Se definida como true, fará com que a sessão seja fechada imediatamente depois de ser lida, evitando o bloqueio desnecessário caso os dados da sessão não sejam alterados.

Valor Retornado

Esta função retorna true se uma sessão foi iniciada com sucesso, caso contrário false.

Registro de Alterações

Versão | Descrição
7.1.0 | session_start() agora retorna false e não mais inicializa $_SESSION quando este falha em iniciar a sessão.

Exemplos

Um exemplo básico de sessão

Exemplo #1 page1.php

<?php
// page1.php

session_start();

echo 'Bem vindo à página #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();

// Funciona se o cookie de sessão foi aceito
echo '<br /><a href="page2.php">page 2</a>';

// Ou talvez passando o ID da sessão se necessário
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

Após acessar page1.php, a segunda página page2.php magicamente terá os dados da sessão. Leia funções para sessão para informações sobre propagação de IDs de sessão já que, por exemplo, explica o que é a constante SID.

Exemplo #2 page2.php

<?php
// page2.php

session_start();

echo 'Bem vindo à página #2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal']; // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// Pode ser desejado usar o SID aqui, como foi feito em page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

Fornecendo configurações para session_start()

Exemplo #3 Sobrepondo o tempo de duração de cookie

<?php
// Isto envia um cookie persistente que dura um dia
session_start([
'cookie_lifetime' => 86400,
]);
?>

Exemplo #4 Lendo e fechando a sessão

<?php
// Se não houver necessidade de alterar nada na
// sessão, pode-se apenas lê-la e já fechá-la para evitar
// travar o arquivo de sessão e bloquear outras páginas
session_start([
'cookie_lifetime' => 86400,
'read_and_close' => true,
]);

Notas

Nota:

Para usar sessões baseadas em cookies, session_start() deve ser chamada antes de enviar qualquer saída para o browser.

Nota:

O uso de zlib.output_compression é recomendado ao invés de ob_gzhandler()

Nota:

Esta função envia vários cabeçalhos HTTP dependendo da configuração. Veja session_cache_limiter() para personalizar estes cabeçalhos.

Veja Também

  • $_SESSION
  • session.auto_start (diretiva de configuração)
  • session_id() - Obtém e/ou define o id de sessão atual


Retorna o status atual da sessão

  • « session_start
  • session_unset »
  • PHP Manual
  • Funções para Sessão
  • Retorna o status atual da sessão

session_status

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

session_status — Retorna o status atual da sessão

Descrição

session_status(): int

session_status() é usada para retornar o status atual da sessão.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

  • PHP_SESSION_DISABLED se as sessões estiverem desabilitadas.
  • PHP_SESSION_NONE se as sessões estiverem habilitadas, mas nenhuma existir.
  • PHP_SESSION_ACTIVE se as sessões estiverem habilitadas, e uma existir.

Veja Também

  • session_start() - Inicia uma nova sessão ou continua uma sessão existente


Libera todas as variáveis de sessão

  • « session_status
  • session_write_close »
  • PHP Manual
  • Funções para Sessão
  • Libera todas as variáveis de sessão

session_unset

(PHP 4, PHP 5, PHP 7, PHP 8)

session_unset — Libera todas as variáveis de sessão

Descrição

session_unset(): bool

A função session_unset() libera todas as variáveis atualmente registradas na sessão.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.2.0 | O tipo de retorno desta função é bool agora. Anteriormente, era void.

Notas

Nota:

Se $_SESSION é usado, use unset() para desregistrar a variável da sessão, isto é, unset($_SESSION['varname']);.

Cuidado

NÃO elimine completamente $_SESSION com unset($_SESSION) já que isto desabilitará o registro de variáveis de sessão através da super global $_SESSION.

Nota:

O uso de session_unset() é idêntico a $_SESSION = [].

Cuidado

Esta função funciona apenas se uma sessão estiver ativa. Não limpará o array $_SESSION se a sessão ainda não foi iniciada ou já foi destruída. Use $_SESSION = [] para desmontar todas as variáveis de sessão mesmo que a sessão não esteja ativa.


Guarda os dados de sessão e fecha a sessão

  • « session_unset
  • SessionHandler »
  • PHP Manual
  • Funções para Sessão
  • Guarda os dados de sessão e fecha a sessão

session_write_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

session_write_close — Guarda os dados de sessão e fecha a sessão

Descrição

session_write_close(): bool

Fecha a sessão atual e guarda os dados.

Os dados de sessão geralmente são guardados depois que o script termina, sem a necessidade de chamar session_write_close(); mas como dados de sessão são travados para evitar escritas concorrentes, apenas um script pode operar em uma sessão por vez. Ao usar iframe/framesets junto com sessões, os frames serão lidos um a um devido à esta trava. Pode-se reduzir o tempo necessário para carregar todos os frames fechando a sessão o mais cedo possível, assim que todas as alterações na variável de sessão tiverem sido feitas.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
7.2.0 | O tipo de retorno desta função é bool agora. Anteriormente, era void.

Veja Também

  • A session_register_shutdown() - Função de finalização da sessão


A classe SessionHandler

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Introdução

SessionHandler é uma classe especial que pode ser usada para expor o manipulador interno atual do PHP de gravação de sessão por herança. Existem sete métodos que envolvem (wrap) as sete funções internas de callbacks do manipulador de gravação de sessão (open, close, read, write, destroy, gc e create_sid). Por padrão, esta classe vai envolver qualquer manipulador de gravação interno definido pela diretiva de configuração session.save_handler, que normalmente é files por padrão. Outros manipuladores internos de gravação de sessão podem ser fornecidos por extensões do PHP, como por exemplo SQLite (como sqlite), Memcache (como memcache), e Memcached (como memcached).

Quando uma instância de SessionHandler é definida como manipulador de gravação usando session_set_save_handler(), ela envolverá o manipulador de gravação atual. Uma classe que estende SessionHandler permite sobrescrever os métodos, interceptá-los ou filtrá-los chamando os métodos da classe pai que envolvem os manipuladores de sessão internos do PHP.

Isto permite, por exemplo, interceptar os métodos read e write para criptografar/descriptografar os dados de sessão e então passar o resultado de e para a classe pai. Alternativamente, pode-se sobrescrever completamente um método como o callback de limpeza gc.

Como o SessionHandler envolve os manipuladores de gravação atuais, o exemplo acima de criptografia pode ser aplicado em qualquer manipulador de gravação interno sem precisar saber o funcionamento interno dos manipuladores.

Para usar esta classe, primeiro configure o manipulador de gravação que você quer expor usando session.save_handler e então passe uma instância de SessionHandler ou uma classe que a estenda para session_set_save_handler().

Note que os métodos de callbacks desta classe são projetados para serem chamados internamente pelo PHP e não para serem chamados pelo código do usuário. Os valores de retorno são igualmente processados internamente pelo PHP. Para mais informações do fluxo de trabalho da sessão, consulte session_set_save_handler().

Resumo da classe

class SessionHandler implements SessionHandlerInterface, SessionIdInterface {
/* Métodos */
public close(): bool
public create_sid(): string
public destroy(string $id): bool
public gc(int $max_lifetime): int|false
public open(string $path, string $name): bool
public read(string $id): string|false
public write(string $id, string $data): bool
}

Notas

Aviso

Esta classe é projetada para expor o manipulador interno do PHP de gravação de sessão; se você quiser escrever manipuladores de gravação personalizados, implemente a interface SessionHandlerInterface ao invés de estender a classe SessionHandler.

Exemplos

Exemplo #1 Usando SessionHandler para adicionar criptografia aos manipuladores internos do PHP de gravação.

<?php

/**
* decrypt AES 256
*
* @param data $edata
* @param string $password
* @return decrypted data
*/
function decrypt($edata, $password) {
$data = base64_decode($edata);
$salt = substr($data, 0, 16);
$ct = substr($data, 16);

$rounds = 3; // depende do comprimento da chave
$data00 = $password.$salt;
$hash = array();
$hash[0] = hash('sha256', $data00, true);
$result = $hash[0];
for ($i = 1; $i < $rounds; $i++) {
$hash[$i] = hash('sha256', $hash[$i - 1].$data00, true);
$result .= $hash[$i];
}
$key = substr($result, 0, 32);
$iv = substr($result, 32,16);

return openssl_decrypt($ct, 'AES-256-CBC', $key, true, $iv);
}

/**
* crypt AES 256
*
* @param data $data
* @param string $password
* @return base64 encrypted data
*/
function encrypt($data, $password) {
// Gera um salt aleatório criptograficamente seguro usando random_bytes()
$salt = random_bytes(16);

$salted = '';
$dx = '';
// Salt em key(32) e iv(16) = 48
while (strlen($salted) < 48) {
$dx = hash('sha256', $dx.$password.$salt, true);
$salted .= $dx;
}

$key = substr($salted, 0, 32);
$iv = substr($salted, 32,16);

$encrypted_data = openssl_encrypt($data, 'AES-256-CBC', $key, true, $iv);
return base64_encode($salt . $encrypted_data);
}

class EncryptedSessionHandler extends SessionHandler
{
private $key;

public function __construct($key)
{
$this->key = $key;
}

public function read($id)
{
$data = parent::read($id);

if (!$data) {
return "";
} else {
return decrypt($data, $this->key);
}
}

public function write($id, $data)
{
$data = encrypt($data, $this->key);

return parent::write($id, $data);
}
}

// iremos interceptar o manipulador nativo de arquivos, mas trabalharemos igualmente
// com outros manipuladores internos como 'sqlite', 'memcache' ou 'memcached'
// que são disponibilizados por extensões do PHP
ini_set('session.save_handler', 'files');

$key = 'secret_string';
$handler = new EncryptedSessionHandler($key);
session_set_save_handler($handler, true);
session_start();

// proceder para definir e recuperar os valores pela chave de $_SESSION

Nota:

Como os métodos dessa classe são projetados para serem chamados internamente pelo PHP como parte do fluxo normal da sessão, chamadas à esses métodos (ou seja, os manipuladores internos nativos reais) por classes filhas irão retornar false, a não ser que a sessão tenha sido iniciada (independente se foi de forma automática ou pela chamada de session_start()). É importante levar isto em consideração quando escrever testes unitários onde os métodos da classe podem ser invocados manualmente.

Índice

  • SessionHandler::close — Fecha a sessão
  • SessionHandler::create_sid — Retorna um novo ID de sessão
  • SessionHandler::destroy — Destrói uma sessão
  • SessionHandler::gc — Apaga sessões antigas
  • SessionHandler::open — Inicia uma sessão
  • SessionHandler::read — Lê os dados de sessão
  • SessionHandler::write — Escreve os dados de sessão


Fecha a sessão

  • « SessionHandler
  • SessionHandler::create_sid »
  • PHP Manual
  • SessionHandler
  • Fecha a sessão

SessionHandler::close

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::close — Fecha a sessão

Descrição

public SessionHandler::close(): bool

Fecha a sessão atual. Este método é executado automaticamente e internamente pelo PHP ao fechar a sessão, ou explicitamente com session_write_close() (que primeiro chama SessionHandler::write()).

Este método envolve o manipulador interno de gravação do PHP definido na configuração ini session.save_handler que foi definido antes deste manipulador ser ativado por session_set_save_handler().

Se esta classe for estendida por herança, chamar o método close da classe pai invocará a função que envolve este método, portanto invocará o callback interno. Isto permite que esse método seja substituído ou interceptado.

Para mais informações relacionadas ao que é esperado que este método faça, por favor leia a documentação de SessionHandlerInterface::close().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor retornado (geralmente true em caso de sucesso, false em caso de falha). Note que este valor é retornado internamente ao PHP para processamento.


Retorna um novo ID de sessão

  • « SessionHandler::close
  • SessionHandler::destroy »
  • PHP Manual
  • SessionHandler
  • Retorna um novo ID de sessão

SessionHandler::create_sid

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

SessionHandler::create_sid — Retorna um novo ID de sessão

Descrição

public SessionHandler::create_sid(): string

Gera e retorna um novo ID de sessão.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um ID de sessão válido para o manipulador de sessão padrão.

Veja Também

  • session_id() - Obtém e/ou define o id de sessão atual
  • session_create_id() - Cria novo ID de sessão


Destrói uma sessão

  • « SessionHandler::create_sid
  • SessionHandler::gc »
  • PHP Manual
  • SessionHandler
  • Destrói uma sessão

SessionHandler::destroy

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::destroy — Destrói uma sessão

Descrição

public SessionHandler::destroy(string $id): bool

Destrói uma sessão. Chamada internamente pelo PHP com session_regenerate_id() (desde que $destroy seja true), por session_destroy() ou quando session_decode() falhar.

Este método envolve o manipulador de gravação interno do PHP, definido na configuração ini session.save_handler, configurado antes da definição deste manipulador por session_set_save_handler().

Se esta classe for estendida por herança, chamar o método destroy da classe pai invocará a função que envolve este método, portanto invocará o callback interno. Isto permite que esse método seja substituído e ou interceptado e filtrado.

Para mais informações relacionadas ao que é esperado que este método faça, por favor leia a documentação de SessionHandlerInterface::destroy().

Parâmetros

id

O ID de sessão que estiver sendo destruído.

Valor Retornado

O valor retornado (geralmente true em caso de sucesso, false em caso de falha). Note que este valor é retornado internamente ao PHP para processamento.


Apaga sessões antigas

  • « SessionHandler::destroy
  • SessionHandler::open »
  • PHP Manual
  • SessionHandler
  • Apaga sessões antigas

SessionHandler::gc

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::gc — Apaga sessões antigas

Descrição

public SessionHandler::gc(int $max_lifetime): int|false

Apaga sessões expiradas. Chamada internamente e aleatoriamente pelo PHP quando uma sessão inicia ou quando session_start() é invocada. A frequência que ela é chamada é baseada em session.gc_divisor e session.gc_probability (diretivas de configuração).

Este método envolve o manipulador de gravação interno do PHP definido na configuração ini session.save_handler e que foi configurado antes desse manipulador ser definido por session_set_save_handler().

Se esta classe for estendida por herança, chamar o método gc da classe pai invocará a função que envolve este método, portanto invocará o callback interno. Isto permite que esse método seja substituído e ou interceptado e filtrado.

Para mais informações relacionadas ao que é esperado que este método faça, por favor leia a documentação de SessionHandlerInterface::gc().

Parâmetros

max_lifetime

Sessões que não foram atualizados nos últimos max_lifetime segundos serão removidas.

Valor Retornado

Retornar o número de sessões eliminadas no caso de sucesso, ou false em caso de falha. Observe que esse valor é retornado internamente ao PHP para processamento.

Registro de Alterações

Versão | Descrição
7.1.0 | Antes dessa versão, a função retornava true no caso de sucesso.


Inicia uma sessão

  • « SessionHandler::gc
  • SessionHandler::read »
  • PHP Manual
  • SessionHandler
  • Inicia uma sessão

SessionHandler::open

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::open — Inicia uma sessão

Descrição

public SessionHandler::open(string $path, string $name): bool

Cria uma nova sessão, ou reinicializa uma sessão existente. Chamada internamente pelo PHP quando uma sessão inicia, quer seja de forma automática ou quando session_start() é invocada.

Este método envolve o manipulador de gravação interno do PHP definido na configuração ini session.save_handler e que foi configurado antes desse manipulador ser definido por session_set_save_handler().

Se esta classe for estendida por herança, chamar o método open da classe pai invocará a função que envolve este método, portanto invocará o callback interno. Isto permite que esse método seja substituído e ou interceptado e filtrado.

Para mais informações relacionadas ao que é esperado que este método faça, por favor leia a documentação de SessionHandlerInterface::open().

Parâmetros

path

O caminho para armazenar/recuperar a sessão.

name

O nome da sessão.

Valor Retornado

O valor retornado (geralmente true em caso de sucesso, false em caso de falha). Note que este valor é retornado internamente ao PHP para processamento.

Veja Também

  • session.auto-start (diretiva de configuração).


Lê os dados de sessão

  • « SessionHandler::open
  • SessionHandler::write »
  • PHP Manual
  • SessionHandler
  • Lê os dados de sessão

SessionHandler::read

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::read — Lê os dados de sessão

Descrição

public SessionHandler::read(string $id): string|false

Lê os dados de sessão do armazenamento de sessão e retorna o resultado de volta para o PHP para processamento interno. Este método é chamado automaticamente pelo PHP quando uma sessão é iniciada (quer seja de forma automática ou explicitamente com session_start()) e é precedida por uma chamada interna de SessionHandler::open().

Este método envolve o manipulador interno de gravação do PHP definido na configuração ini session.save_handler que foi definido antes deste manipulador ser ativado por session_set_save_handler().

Se esta classe for estendida por herança, chamar o método read da classe pai invocará a função que envolve este método, portanto invocará o callback interno. Isto permite que esse método seja substituído ou interceptado e filtrado (por exemplo, descriptografar o valor de $data retornado pelo método read da classe pai).

Para mais informações relacionadas ao que é esperado que este método faça, por favor leia a documentação de SessionHandlerInterface::read().

Parâmetros

id

O id da sessão onde deve ser feita a leitura dos dados.

Valor Retornado

Retorna uma string, codificada, dos dados lidos. Se nada foi lido, deve retornar false. Note que este valor é retornado internamente ao PHP para processamento.

Veja Também

  • session.serialize_handler (diretiva de configuração).


Escreve os dados de sessão

  • « SessionHandler::read
  • SessionHandlerInterface »
  • PHP Manual
  • SessionHandler
  • Escreve os dados de sessão

SessionHandler::write

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::write — Escreve os dados de sessão

Descrição

public SessionHandler::write(string $id, string $data): bool

Escreve os dados de sessão no armazenamento de sessão. Chamada na finalização normal do PHP; por session_write_close(); ou quando session_register_shutdown() falha. O PHP chamará SessionHandler::close() imediatamente depois que este método retornar.

Este método envolve o manipulador interno de gravação do PHP definido na configuração ini session.save_handler que foi definido antes deste manipulador ser ativado por session_set_save_handler().

Se esta classe for estendida por herança, chamar o método write da classe pai invocará a função que envolve este método, portanto invocará o callback interno. Isto permite que esse método seja substituído ou interceptado e filtrado (por exemplo, descriptografar o valor de $data antes de enviar para o método write da classe pai).

Para mais informações relacionadas ao que é esperado que este método faça, por favor leia a documentação de SessionHandlerInterface::write().

Parâmetros

id

O id da sessão.

data

Os dados de sessão codificados. Esta informação é o resultado codificado internamente pelo PHP da super global $_SESSION em uma string serializada e passada como este parâmetro. Note que sessões usam um método alternativo de serialização.

Valor Retornado

O valor retornado (geralmente true em caso de sucesso, false em caso de falha). Note que este valor é retornado internamente ao PHP para processamento.

Veja Também

  • session.serialize_handler (diretiva de configuração).


A classe SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Introdução

SessionHandlerInterface é uma interface que define o protótipo mínimo para criar um manipulador de sessão personalizado. Para passar um manipulador de sessão personalizado para session_set_save_handler() usando invocação OOP (Orientada à Objetos), a classe deve implementar esta interface.

Note que os métodos de callbacks desta classe são projetos para serem chamados internamente pelo PHP e não para serem chamados pelo código do usuário.

Resumo da Interface

interface SessionHandlerInterface {
/* Métodos */
public close(): bool
public destroy(string $id): bool
public gc(int $max_lifetime): int|false
public open(string $path, string $name): bool
public read(string $id): string|false
public write(string $id, string $data): bool
}

Exemplos

Exemplo #1 Exemplo usando SessionHandlerInterface

O exemplo a seguir apresenta um armazenamento de sessão baseada em arquivos semelhante aos manipuladores de gravação de sessão padrões do PHP files. Este exemplo poderia ser facilmente estendido para cobrir armazenamento em banco de dados usando sua engine de banco de dados favorita que seja suportada pelo PHP.

Note que é usado orientação à objetos com session_set_save_handler() e a função de encerramento (register_shutdown) é registrada usando sua respectiva flag. Isto é aconselhável ao registrar objetos como manipuladores de gravação de sessão.

Cuidado

Por brevidade, este exemplo omite a validação de entrada. No entanto, o Os parâmetros $id são, na verdade, valores fornecidos pelo usuário que exigem validação/sanitização adequada para evitar vulnerabilidades, como problemas de passagem de caminho. Portanto, não use este exemplo não modificado em ambientes de produção.

<?php
class MySessionHandler implements SessionHandlerInterface
{
private $savePath;

public function open($savePath, $sessionName): bool
{
$this->savePath = $savePath;
if (!is_dir($this->savePath)) {
mkdir($this->savePath, 0777);
}

return true;
}

public function close(): bool
{
return true;
}

#[\ReturnTypeWillChange]
public function read($id)
{
return (string)@file_get_contents("$this->savePath/sess_$id");
}

public function write($id, $data): bool
{
return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
}

public function destroy($id): bool
{
$file = "$this->savePath/sess_$id";
if (file_exists($file)) {
unlink($file);
}

return true;
}

#[\ReturnTypeWillChange]
public function gc($maxlifetime)
{
foreach (glob("$this->savePath/sess_*") as $file) {
if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
unlink($file);
}
}

return true;
}
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// proceder para definir e recuperar valores pela chave de $_SESSION

Índice

  • SessionHandlerInterface::close — Fecha a sessão
  • SessionHandlerInterface::destroy — Destrói uma sessão
  • SessionHandlerInterface::gc — Remove sessões antigas
  • SessionHandlerInterface::open — Inicializa uma sessão
  • SessionHandlerInterface::read — Lê os dados de sessão
  • SessionHandlerInterface::write — Escreve os dados de sessão


Fecha a sessão

  • « SessionHandlerInterface
  • SessionHandlerInterface::destroy »
  • PHP Manual
  • SessionHandlerInterface
  • Fecha a sessão

SessionHandlerInterface::close

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::close — Fecha a sessão

Descrição

public SessionHandlerInterface::close(): bool

Fecha a sessão atual. Esta função é executada automaticamente quando a sessão é fechada ou explicitamente com session_write_close().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O valor retornado (geralmente true em caso de sucesso, false em caso de falha). Note que este valor é retornado internamente ao PHP para processamento.


Destrói uma sessão

  • « SessionHandlerInterface::close
  • SessionHandlerInterface::gc »
  • PHP Manual
  • SessionHandlerInterface
  • Destrói uma sessão

SessionHandlerInterface::destroy

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::destroy — Destrói uma sessão

Descrição

public SessionHandlerInterface::destroy(string $id): bool

Destrói uma sessão. Chamada por session_regenerate_id() (se $destroy = true), session_destroy() e quando session_decode() falhar.

Parâmetros

id

O ID da sessão a ser destruída.

Valor Retornado

O valor retornado (geralmente true em caso de sucesso, false em caso de falha). Note que este valor é retornado internamente ao PHP para processamento.


Remove sessões antigas

  • « SessionHandlerInterface::destroy
  • SessionHandlerInterface::open »
  • PHP Manual
  • SessionHandlerInterface
  • Remove sessões antigas

SessionHandlerInterface::gc

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::gc — Remove sessões antigas

Descrição

public SessionHandlerInterface::gc(int $max_lifetime): int|false

Remove sessões expiradas. Chamada por session_start(), baseado nas configurações session.gc_divisor, session.gc_probability e session.gc_maxlifetime.

Parâmetros

max_lifetime

Sessões que não foram atualizados nos últimos max_lifetime segundos serão removidas.

Valor Retornado

Retorna o número de sessões excluídas com sucesso, ou false em caso de falha. Observe que este valor é retornado internamente ao PHP para processamento.

Registro de Alterações

Versão | Descrição
7.1.0 | Antes desta versão, a função retornava true em caso de sucesso.


Inicializa uma sessão

  • « SessionHandlerInterface::gc
  • SessionHandlerInterface::read »
  • PHP Manual
  • SessionHandlerInterface
  • Inicializa uma sessão

SessionHandlerInterface::open

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::open — Inicializa uma sessão

Descrição

public SessionHandlerInterface::open(string $path, string $name): bool

Reinicializa uma sessão existente ou cria uma nova. Chamada quando uma sessão inicia ou quando session_start() é invocada.

Parâmetros

path

O caminho para armazenar/recuperar a sessão.

name

O nome da sessão.

Valor Retornado

O valor retornado (geralmente true em caso de sucesso, false em caso de falha). Note que este valor é retornado internamente ao PHP para processamento.

Veja Também

  • session_name() - Obtém e/ou define o nome da sessão atual
  • session.auto-start (diretiva de configuração).


Lê os dados de sessão

  • « SessionHandlerInterface::open
  • SessionHandlerInterface::write »
  • PHP Manual
  • SessionHandlerInterface
  • Lê os dados de sessão

SessionHandlerInterface::read

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::read — Lê os dados de sessão

Descrição

public SessionHandlerInterface::read(string $id): string|false

Lê os dados de sessão do armazenamento de sessão e retorna os resultados. Chamada logo depois que a sessão inicia ou quando session_start() é chamada. Note que antes desse método ser chamado, o método SessionHandlerInterface::open() é invocado.

Este método é chamado pelo próprio PHP quando uma sessão é iniciada. Este método deve recuperar os dados de sessão do armazenamento de sessão relacionados ao ID de sessão fornecido. A string retornada por este método deve estar no mesmo formato de serialização de quando ela foi originalmente passada para SessionHandlerInterface::write(). Se a informação não for encontrada, retorna false

Os dados retornados por este método serão decodificados internamente pelo PHP usando o método de deserialização especificado em session.serialize_handler. Os dados resultantes serão usados para preencher a super global $_SESSION.

Note que o esquema de serialização não é o mesmo que unserialize() e pode ser acessado por session_decode().

Parâmetros

id

O id da sessão.

Valor Retornado

Retorna uma string codificada dos dados lidos. Se nada foi lido, então deve retornar false. Note que este valor é retornado internamente para o PHP para processamento.

Veja Também

  • session.serialize_handler (diretiva de configuração).


Escreve os dados de sessão

  • « SessionHandlerInterface::read
  • SessionIdInterface »
  • PHP Manual
  • SessionHandlerInterface
  • Escreve os dados de sessão

SessionHandlerInterface::write

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::write — Escreve os dados de sessão

Descrição

public SessionHandlerInterface::write(string $id, string $data): bool

Escreve os dados de sessão no armazenamento de sessão. Chamada por session_write_close(), quando session_register_shutdown() falhar ou na finalização normal. Note que o método SessionHandlerInterface::close() é chamado imediatamente depois desta função.

O PHP chamará este método quando a sessão estiver pronta para salvar e fechar. O PHP codifica os dados da super global $_SESSION em uma string serializada e passa o resultado junto com o ID de sessão à este método para armazenamento. O método de serialização usado é especificado na configuração session.serialize_handler.

Note que este método normalmente é chamado pelo PHP depois que o buffer de saída é fechado, a não ser que ele seja chamado explicitamente por session_write_close()

Parâmetros

id

O id da sessão.

data

Os dados de sessão codificados. Esta informação é o resultado codificado internamente pelo PHP da super global $_SESSION em uma string serializada e passada como este parâmetro. Note que sessões usam um método alternativo de serialização.

Valor Retornado

O valor retornado (geralmente true em caso de sucesso, false em caso de falha). Note que este valor é retornado internamente ao PHP para processamento.

Veja Também

  • session.serialize_handler (diretiva de configuração).


The SessionIdInterface interface

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

Introdução

SessionIdInterface é uma interface que define métodos opcionais para criar um manipulador de sessão personalizado. Para passar um manipulador de sessão personalizado para session_set_save_handler() usando sua invocação OOP, a classe pode implementar esta interface.

Observe que os métodos de retorno de chamada das classes que implementam esta interface são projetados para serem chamados internamente pelo PHP e não devem ser chamados a partir do código do espaço do usuário.

Resumo da Interface

interface SessionIdInterface {
/* Métodos */
public create_sid(): string
}

Índice

  • SessionIdInterface::create_sid — Cria um ID de sessão.


Cria um ID de sessão.

  • « SessionIdInterface
  • SessionUpdateTimestampHandlerInterface »
  • PHP Manual
  • SessionIdInterface
  • Cria um ID de sessão.

SessionIdInterface::create_sid

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

SessionIdInterface::create_sid — Cria um ID de sessão.

Descrição

public SessionIdInterface::create_sid(): string

Cria um novo ID de sessão. Esta função é executada automaticamente quando é necessário criar um novo ID de sessão.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O novo ID de sessão. Observe que este valor é retornado internamente para o PHP para processamento.

Veja Também

  • SessionHandler::create_sid() - Retorna um novo ID de sessão


The SessionUpdateTimestampHandlerInterface interface

(PHP 7, PHP 8)

Introdução

SessionUpdateTimestampHandlerInterface é uma interface que define métodos opcionais para criar um manipulador de sessão personalizado. Para passar um manipulador de sessão personalizado para session_set_save_handler() usando sua invocação OOP, a classe pode implementar esta interface.

Observe que os métodos de retorno de chamada das classes que implementam esta interface são projetados para serem chamados internamente pelo PHP e não devem ser chamados a partir do código do espaço do usuário.

Resumo da classe

interface SessionUpdateTimestampHandlerInterface {
/* Métodos */
public updateTimestamp(string $id, string $data): bool
public validateId(string $id): bool
}

Índice

  • SessionUpdateTimestampHandlerInterface::updateTimestamp — Atualiza o timestamp
  • SessionUpdateTimestampHandlerInterface::validateId — Valida o ID


Atualiza o timestamp

  • « SessionUpdateTimestampHandlerInterface
  • SessionUpdateTimestampHandlerInterface::validateId »
  • PHP Manual
  • SessionUpdateTimestampHandlerInterface
  • Atualiza o timestamp

SessionUpdateTimestampHandlerInterface::updateTimestamp

(PHP 7, PHP 8)

SessionUpdateTimestampHandlerInterface::updateTimestamp — Atualiza o timestamp

Descrição

public SessionUpdateTimestampHandlerInterface::updateTimestamp(string $id, string $data): bool

Atualiza o último timestamp de modificação da sessão. Esta função é executada automaticamente quando uma sessão é atualizada.

Parâmetros

id

O id da sessão

data

Os dados da sessão.

Valor Retornado

Retorna true se o timestamp foi atualizado, false caso contrário. Observe que esse valor é retornado internamente para o processamento pelo PHP.


Valida o ID

  • « SessionUpdateTimestampHandlerInterface::updateTimestamp
  • Processamento de Texto »
  • PHP Manual
  • SessionUpdateTimestampHandlerInterface
  • Valida o ID

SessionUpdateTimestampHandlerInterface::validateId

(PHP 7, PHP 8)

SessionUpdateTimestampHandlerInterface::validateId — Valida o ID

Descrição

public SessionUpdateTimestampHandlerInterface::validateId(string $id): bool

Valida um ID de sessão fornecido. Um ID de sessão é válido se já existir uma sessão com esse ID. Essa função é executada automaticamente quando uma sessão está prestes a ser iniciada, um ID de sessão é fornecido e session.use_strict_mode é habilitado.

Parâmetros

id

O ID da sessão.

Valor Retornado

Retorna true para ID válido, false caso contrário. Observe que este valor é retornado internamente ao PHP para processamento.


Processamento de Texto

  • CommonMark
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • CommonMark\Node\Document — Document concrete CommonMark\Node
    • CommonMark\Node\Heading — Heading concrete CommonMark\Node
    • CommonMark\Node\Paragraph — Paragraph concrete CommonMark\Node
    • CommonMark\Node\BlockQuote — BlockQuote concrete CommonMark\Node
    • CommonMark\Node\BulletList — BulletList concrete CommonMark\Node
    • CommonMark\Node\OrderedList — OrderedList concrete CommonMark\Node
    • CommonMark\Node\Item — Item concrete CommonMark\Node
    • CommonMark\Node\Text — Text concrete CommonMark\Node
    • CommonMark\Node\Text\Strong — Strong concrete CommonMark\Node
    • CommonMark\Node\Text\Emphasis — Emphasis concrete CommonMark\Node
    • CommonMark\Node\ThematicBreak — ThematicBreak concrete CommonMark\Node
    • CommonMark\Node\SoftBreak — SoftBreak concrete CommonMark\Node
    • CommonMark\Node\LineBreak — LineBreak concrete CommonMark\Node
    • CommonMark\Node\Code — Code concrete CommonMark\Node
    • CommonMark\Node\CodeBlock — CodeBlock concrete CommonMark\Node
    • CommonMark\Node\HTMLBlock — HTMLBlock concrete CommonMark\Node
    • CommonMark\Node\HTMLInline — HTMLInline concrete CommonMark\Node
    • CommonMark\Node\Image — Image concrete CommonMark\Node
    • CommonMark\Node\Link — Link concrete CommonMark\Node
    • CommonMark\Node\CustomBlock — CustomBlock concrete CommonMark\Node
    • CommonMark\Node\CustomInline — CustomInline concrete CommonMark\Node
    • CommonMark\Node — Abstract CommonMark\Node
    • CommonMark\Interfaces\IVisitor — The CommonMark\Interfaces\IVisitor interface
    • CommonMark\Interfaces\IVisitable — The CommonMark\Interfaces\IVisitable interface
    • CommonMark\Parser — The CommonMark\Parser class
    • CommonMark\CQL — The CommonMark\CQL class
    • CommonMark Funções
  • Parle — Parsing and lexing
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Pattern matching — Parle pattern matching
    • Exemplos
    • Parle\Lexer — The Parle\Lexer class
    • Parle\RLexer — The Parle\RLexer class
    • Parle\Parser — The Parle\Parser class
    • Parle\RParser — The Parle\RParser class
    • Parle\Stack — The Parle\Stack class
    • Parle\Token — The Parle\Token class
    • Parle\ErrorInfo — The Parle\ErrorInfo class
    • Parle\LexerException — The Parle\LexerException class
    • Parle\ParserException — The Parle\ParserException class
  • PCRE — Expressões Regulares (Compatíveis com Perl)
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Padrões PCRE
    • Funções da PCRE
  • ssdeep — ssdeep Fuzzy Hashing
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • ssdeep Funções
  • Strings
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções de String
    • Registro de Alterações


CommonMark

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
  • Constantes pré-definidas
  • CommonMark\Node\Document — Document concrete CommonMark\Node
  • CommonMark\Node\Heading — Heading concrete CommonMark\Node
    • CommonMark\Node\Heading::__construct — Heading Construction
  • CommonMark\Node\Paragraph — Paragraph concrete CommonMark\Node
  • CommonMark\Node\BlockQuote — BlockQuote concrete CommonMark\Node
  • CommonMark\Node\BulletList — BulletList concrete CommonMark\Node
    • CommonMark\Node\BulletList::__construct — BulletList Construction
  • CommonMark\Node\OrderedList — OrderedList concrete CommonMark\Node
    • CommonMark\Node\OrderedList::__construct — OrderedList Construction
  • CommonMark\Node\Item — Item concrete CommonMark\Node
  • CommonMark\Node\Text — Text concrete CommonMark\Node
    • CommonMark\Node\Text::__construct — Text Construction
  • CommonMark\Node\Text\Strong — Strong concrete CommonMark\Node
  • CommonMark\Node\Text\Emphasis — Emphasis concrete CommonMark\Node
  • CommonMark\Node\ThematicBreak — ThematicBreak concrete CommonMark\Node
  • CommonMark\Node\SoftBreak — SoftBreak concrete CommonMark\Node
  • CommonMark\Node\LineBreak — LineBreak concrete CommonMark\Node
  • CommonMark\Node\Code — Code concrete CommonMark\Node
  • CommonMark\Node\CodeBlock — CodeBlock concrete CommonMark\Node
    • CommonMark\Node\CodeBlock::__construct — CodeBlock Construction
  • CommonMark\Node\HTMLBlock — HTMLBlock concrete CommonMark\Node
  • CommonMark\Node\HTMLInline — HTMLInline concrete CommonMark\Node
  • CommonMark\Node\Image — Image concrete CommonMark\Node
    • CommonMark\Node\Image::__construct — Image Construction
  • CommonMark\Node\Link — Link concrete CommonMark\Node
    • CommonMark\Node\Link::__construct — Link Construction
  • CommonMark\Node\CustomBlock — CustomBlock concrete CommonMark\Node
  • CommonMark\Node\CustomInline — CustomInline concrete CommonMark\Node
  • CommonMark\Node — Abstract CommonMark\Node
    • CommonMark\Node::appendChild — AST Manipulation
    • CommonMark\Node::prependChild — AST Manipulation
    • CommonMark\Node::insertAfter — AST Manipulation
    • CommonMark\Node::insertBefore — AST Manipulation
    • CommonMark\Node::replace — AST Manipulation
    • CommonMark\Node::unlink — AST Manipulation
    • CommonMark\Node::accept — Visitation
  • CommonMark\Interfaces\IVisitor — The CommonMark\Interfaces\IVisitor interface
    • CommonMark\Interfaces\IVisitor::enter — Visitation
    • CommonMark\Interfaces\IVisitor::leave — Visitation
  • CommonMark\Interfaces\IVisitable — The CommonMark\Interfaces\IVisitable interface
    • CommonMark\Interfaces\IVisitable::accept — Visitation
  • CommonMark\Parser — The CommonMark\Parser class
    • CommonMark\Parser::__construct — Parsing
    • CommonMark\Parser::parse — Parsing
    • CommonMark\Parser::finish — Parsing
  • CommonMark\CQL — The CommonMark\CQL class
    • CommonMark\CQL::__construct — CQL Construction
    • CommonMark\CQL::__invoke — CQL Execution
  • CommonMark Funções
    • CommonMark\Parse — Parsing
    • CommonMark\Render — Rendering
    • CommonMark\Render\HTML — Rendering
    • CommonMark\Render\Latex — Rendering
    • CommonMark\Render\Man — Rendering
    • CommonMark\Render\XML — Rendering


Introdução

This extension provides access to the reference implementation of CommonMark, a rationalized version of Markdown syntax with a specification.

Parsing:

The CommonMark extension provides a simple parsing API:

CommonMark\Parse(string $content, int $options = ?): CommonMark\Node

Rendering:

The CommonMark extension provides simple rendering API that supports multiple formats:

CommonMark\Render(CommonMark\Node $node, int $options = ?, int $width = ?): string
CommonMark\Render\HTML(CommonMark\Node $node, int $options = ?): string
CommonMark\Render\XML(CommonMark\Node $node, int $options = ?): string
CommonMark\Render\Man(CommonMark\Node $node, int $options = ?, int $width = ?): string
CommonMark\Render\Latex(CommonMark\Node $node, int $options = ?, int $width = ?): string

AST:

The CommonMark extension implements visitation for CommonMark\Node objects:

public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void

CQL:

The CommonMark extension provides an interface to CQL, CommonMark Query Language:

public CommonMark\CQL::__construct(string $query)


  • « Introdução
  • Dependências »
  • PHP Manual
  • CommonMark
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

The CommonMark extension requires the (C) reference implementation of » cmark.


Instalação

The CommonMark extension releases are hosted by PECL and source is hosted on » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/cmark.

Windows users can download prebuilt release binaries from the » PECL website.

Cuidado

Windows users need to take the additional step of adding cmark.dll (distributed with Windows releases) to their PATH.


Constantes pré-definidas

CommonMark\Parser\Normal (int)
CommonMark\Parser\Normalize (int)
CommonMark\Parser\Smart (int)
CommonMark\Parser\ValidateUTF8 (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\NoBreaks (int)
CommonMark\Render\Normal (int)
CommonMark\Render\Safe (int)
CommonMark\Render\SourcePos (int)


Document concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\Document extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Heading concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\Heading extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriedades */
public int $level;
/* Constructor */
public __construct()
public __construct(int $level)
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Índice

  • CommonMark\Node\Heading::__construct — Heading Construction


Heading Construction

  • « CommonMark\Node\Heading
  • CommonMark\Node\Paragraph »
  • PHP Manual
  • CommonMark\Node\Heading
  • Heading Construction

CommonMark\Node\Heading::__construct

(cmark >= 1.0.0)

CommonMark\Node\Heading::__construct — Heading Construction

Descrição

public CommonMark\Node\Heading::__construct()
public CommonMark\Node\Heading::__construct(int $level)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.


Paragraph concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\Paragraph extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


BlockQuote concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\BlockQuote extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


BulletList concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\BulletList extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriedades */
public bool $tight;
public int $delimiter;
/* Constructor */
public __construct()
public __construct(int $tight)
public __construct(int $tight, int $delimiter)
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Índice

  • CommonMark\Node\BulletList::__construct — BulletList Construction


BulletList Construction

  • « CommonMark\Node\BulletList
  • CommonMark\Node\OrderedList »
  • PHP Manual
  • CommonMark\Node\BulletList
  • BulletList Construction

CommonMark\Node\BulletList::__construct

(cmark >= 1.0.0)

CommonMark\Node\BulletList::__construct — BulletList Construction

Descrição

public CommonMark\Node\BulletList::__construct()
public CommonMark\Node\BulletList::__construct(int $tight)
public CommonMark\Node\BulletList::__construct(int $tight, int $delimiter)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.


OrderedList concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\OrderedList extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriedades */
public bool $tight;
public int $delimiter;
public int $start;
/* Constructor */
public __construct()
public __construct(int $tight)
public __construct(int $tight, int $delimiter)
public __construct(int $tight, int $delimiter, int $start)
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Índice

  • CommonMark\Node\OrderedList::__construct — OrderedList Construction


OrderedList Construction

  • « CommonMark\Node\OrderedList
  • CommonMark\Node\Item »
  • PHP Manual
  • CommonMark\Node\OrderedList
  • OrderedList Construction

CommonMark\Node\OrderedList::__construct

(cmark >= 1.0.0)

CommonMark\Node\OrderedList::__construct — OrderedList Construction

Descrição

public CommonMark\Node\OrderedList::__construct()
public CommonMark\Node\OrderedList::__construct(int $tight)
public CommonMark\Node\OrderedList::__construct(int $tight, int $delimiter)
public CommonMark\Node\OrderedList::__construct(int $tight, int $delimiter, int $start)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

tight

delimiter

start


Item concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\Item extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Text concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\Text extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriedades */
public ?string $literal;
/* Constructor */
public __construct()
public __construct(string $literal)
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Índice

  • CommonMark\Node\Text::__construct — Text Construction


Text Construction

  • « CommonMark\Node\Text
  • CommonMark\Node\Text\Strong »
  • PHP Manual
  • CommonMark\Node\Text
  • Text Construction

CommonMark\Node\Text::__construct

(cmark >= 1.0.0)

CommonMark\Node\Text::__construct — Text Construction

Descrição

public CommonMark\Node\Text::__construct()
public CommonMark\Node\Text::__construct(string $literal)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

literal


Strong concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\Text\Strong extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Emphasis concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\Text\Emphasis extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


ThematicBreak concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\ThematicBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


SoftBreak concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\SoftBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


LineBreak concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\LineBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Code concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\Code extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
public ?string $literal;
/* Constructor */
public CommonMark\Node\Text::__construct()
public CommonMark\Node\Text::__construct(string $literal)
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


CodeBlock concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\CodeBlock extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
public ?string $literal;
/* Propriedades */
public ?string $fence;
/* Constructor */
public CommonMark\Node\Text::__construct()
public CommonMark\Node\Text::__construct(string $literal)
public __construct(string $fence, string $literal)
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Índice

  • CommonMark\Node\CodeBlock::__construct — CodeBlock Construction


CodeBlock Construction

  • « CommonMark\Node\CodeBlock
  • CommonMark\Node\HTMLBlock »
  • PHP Manual
  • CommonMark\Node\CodeBlock
  • CodeBlock Construction

CommonMark\Node\CodeBlock::__construct

(cmark >= 1.0.0)

CommonMark\Node\CodeBlock::__construct — CodeBlock Construction

Descrição

public CommonMark\Node\CodeBlock::__construct(string $fence, string $literal)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

fence

literal


HTMLBlock concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\HTMLBlock extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
public ?string $literal;
/* Constructor */
public CommonMark\Node\Text::__construct()
public CommonMark\Node\Text::__construct(string $literal)
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


HTMLInline concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\HTMLInline extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
public ?string $literal;
/* Constructor */
public CommonMark\Node\Text::__construct()
public CommonMark\Node\Text::__construct(string $literal)
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Image concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\Image extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriedades */
public ?string $url;
public ?string $title;
/* Constructor */
public __construct()
public __construct(string $url)
public __construct(string $url, string $title)
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Índice

  • CommonMark\Node\Image::__construct — Image Construction


Image Construction

  • « CommonMark\Node\Image
  • CommonMark\Node\Link »
  • PHP Manual
  • CommonMark\Node\Image
  • Image Construction

CommonMark\Node\Image::__construct

(cmark >= 1.0.0)

CommonMark\Node\Image::__construct — Image Construction

Descrição

public CommonMark\Node\Image::__construct()
public CommonMark\Node\Image::__construct(string $url)
public CommonMark\Node\Image::__construct(string $url, string $title)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

url

title


Link concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\Link extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriedades */
public ?string $url;
public ?string $title;
/* Constructor */
public __construct()
public __construct(string $url)
public __construct(string $url, string $title)
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Índice

  • CommonMark\Node\Link::__construct — Link Construction


Link Construction

  • « CommonMark\Node\Link
  • CommonMark\Node\CustomBlock »
  • PHP Manual
  • CommonMark\Node\Link
  • Link Construction

CommonMark\Node\Link::__construct

(cmark >= 1.0.0)

CommonMark\Node\Link::__construct — Link Construction

Descrição

public CommonMark\Node\Link::__construct()
public CommonMark\Node\Link::__construct(string $url)
public CommonMark\Node\Link::__construct(string $url, string $title)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

url

title


CustomBlock concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\CustomBlock extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriedades */
public ?string $onEnter;
public ?string $onLeave;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


CustomInline concrete CommonMark\Node

(cmark >= 1.0.0)

Resumo da classe

final class CommonMark\Node\CustomInline extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades herdadas */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriedades */
public ?string $onEnter;
public ?string $onLeave;
/* Métodos herdados */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Abstract CommonMark\Node

(cmark >= 1.0.0)

Introdução

Represents an Abstract Node, this final abstract is not for direct use by the programmer.

Resumo da classe

final abstract class CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriedades */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Métodos */
public appendChild(CommonMark\Node $child): CommonMark\Node
public prependChild(CommonMark\Node $child): CommonMark\Node
public insertAfter(CommonMark\Node $sibling): CommonMark\Node
public insertBefore(CommonMark\Node $sibling): CommonMark\Node
public replace(CommonMark\Node $target): CommonMark\Node
public unlink(): void
public accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Índice

  • CommonMark\Node::appendChild — AST Manipulation
  • CommonMark\Node::prependChild — AST Manipulation
  • CommonMark\Node::insertAfter — AST Manipulation
  • CommonMark\Node::insertBefore — AST Manipulation
  • CommonMark\Node::replace — AST Manipulation
  • CommonMark\Node::unlink — AST Manipulation
  • CommonMark\Node::accept — Visitation


AST Manipulation

  • « CommonMark\Node
  • CommonMark\Node::prependChild »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::appendChild

(cmark >= 1.0.0)

CommonMark\Node::appendChild — AST Manipulation

Descrição

public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

child

Valor Retornado


AST Manipulation

  • « CommonMark\Node::appendChild
  • CommonMark\Node::insertAfter »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::prependChild

(cmark >= 1.0.0)

CommonMark\Node::prependChild — AST Manipulation

Descrição

public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

child

Valor Retornado


AST Manipulation

  • « CommonMark\Node::prependChild
  • CommonMark\Node::insertBefore »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::insertAfter

(cmark >= 1.0.0)

CommonMark\Node::insertAfter — AST Manipulation

Descrição

public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

sibling

Valor Retornado


AST Manipulation

  • « CommonMark\Node::insertAfter
  • CommonMark\Node::replace »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::insertBefore

(cmark >= 1.0.0)

CommonMark\Node::insertBefore — AST Manipulation

Descrição

public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

sibling

Valor Retornado


AST Manipulation

  • « CommonMark\Node::insertBefore
  • CommonMark\Node::unlink »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::replace

(cmark >= 1.0.0)

CommonMark\Node::replace — AST Manipulation

Descrição

public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

target

Valor Retornado


AST Manipulation

  • « CommonMark\Node::replace
  • CommonMark\Node::accept »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::unlink

(cmark >= 1.0.0)

CommonMark\Node::unlink — AST Manipulation

Descrição

public CommonMark\Node::unlink(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Visitation

  • « CommonMark\Node::unlink
  • CommonMark\Interfaces\IVisitor »
  • PHP Manual
  • CommonMark\Node
  • Visitation

CommonMark\Node::accept

(cmark >= 1.0.0)

CommonMark\Node::accept — Visitation

Descrição

public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void

Parâmetros

visitor

An object implementing CommonMark\Interfaces\IVisitor

Veja Também

  • CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitor::leave


The CommonMark\Interfaces\IVisitor interface

(cmark >= 1.0.0)

Introdução

Resumo da classe

final class CommonMark\Interfaces\IVisitor {
/* Constantes */
const int Done;
const int Enter;
const int Leave;
/* Métodos */
abstract public enter(IVisitable $visitable): int|IVisitable|null
abstract public leave(IVisitable $visitable): int|IVisitable|null
}

Índice

  • CommonMark\Interfaces\IVisitor::enter — Visitation
  • CommonMark\Interfaces\IVisitor::leave — Visitation


Visitation

  • « CommonMark\Interfaces\IVisitor
  • CommonMark\Interfaces\IVisitor::leave »
  • PHP Manual
  • CommonMark\Interfaces\IVisitor
  • Visitation

CommonMark\Interfaces\IVisitor::enter

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitor::enter — Visitation

Descrição

abstract public CommonMark\Interfaces\IVisitor::enter(IVisitable $visitable): int|IVisitable|null

Parâmetros

visitable

The current CommonMark\Interfaces\IVisitable being entered

Valor Retornado

Returning CommonMark\Interfaces\IVisitor::Done will cause the backing iterator to exit.

Returning CommonMark\Interfaces\IVisitor::Enter will reset the backing iterator at entering the current IVisitable

Returning CommonMark\Interfaces\IVisitor::Leave will reset the backing iterator at exiting the current IVisitable

Returning an IVisitable will reset the backing iterator at entering the given IVisitable

Returning nothing will allow the backing iterator to continue

Veja Também

  • CommonMark\Interfaces\IVisitable::accept


Visitation

  • « CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitable »
  • PHP Manual
  • CommonMark\Interfaces\IVisitor
  • Visitation

CommonMark\Interfaces\IVisitor::leave

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitor::leave — Visitation

Descrição

abstract public CommonMark\Interfaces\IVisitor::leave(IVisitable $visitable): int|IVisitable|null

Parâmetros

visitable

The current CommonMark\Interfaces\IVisitable being exited

Valor Retornado

Returning CommonMark\Interfaces\IVisitor::Done will cause the backing iterator to exit.

Returning CommonMark\Interfaces\IVisitor::Enter will reset the backing iterator at entering the current IVisitable

Returning CommonMark\Interfaces\IVisitor::Leave will reset the backing iterator at exiting the current IVisitable

Returning an IVisitable will reset the backing iterator at exiting the given IVisitable

Returning nothing will allow the backing iterator to continue

Veja Também

  • CommonMark\Interfaces\IVisitable::accept


The CommonMark\Interfaces\IVisitable interface

(cmark >= 1.0.0)

Introdução

Resumo da classe

final class CommonMark\Interfaces\IVisitable {
abstract public accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Índice

  • CommonMark\Interfaces\IVisitable::accept — Visitation


Visitation

  • « CommonMark\Interfaces\IVisitable
  • CommonMark\Parser »
  • PHP Manual
  • CommonMark\Interfaces\IVisitable
  • Visitation

CommonMark\Interfaces\IVisitable::accept

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitable::accept — Visitation

Descrição

abstract public CommonMark\Interfaces\IVisitable::accept(CommonMark\Interfaces\IVisitor $visitor): void

Parâmetros

visitor

An object implementing CommonMark\Interfaces\IVisitor

Veja Também

  • CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitor::leave


The CommonMark\Parser class

(cmark >= 1.0.0)

Introdução

Provides an incremental parser as an alternative to the simple Parsing API function

Resumo da classe

final class CommonMark\Parser {
/* Constructor */
public __construct(int $options = ?)
/* Métodos */
public parse(string $buffer): void
public finish(): CommonMark\Node
}

Índice

  • CommonMark\Parser::__construct — Parsing
  • CommonMark\Parser::parse — Parsing
  • CommonMark\Parser::finish — Parsing


Parsing

  • « CommonMark\Parser
  • CommonMark\Parser::parse »
  • PHP Manual
  • CommonMark\Parser
  • Parsing

CommonMark\Parser::__construct

(cmark >= 1.0.0)

CommonMark\Parser::__construct — Parsing

Descrição

public CommonMark\Parser::__construct(int $options = ?)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

options

A mask of:

CommonMark\Parser\Normal (int)
CommonMark\Parser\Normalize (int)
CommonMark\Parser\ValidateUTF8 (int)
CommonMark\Parser\Smart (int)


Parsing

  • « CommonMark\Parser::__construct
  • CommonMark\Parser::finish »
  • PHP Manual
  • CommonMark\Parser
  • Parsing

CommonMark\Parser::parse

(cmark >= 1.0.0)

CommonMark\Parser::parse — Parsing

Descrição

public CommonMark\Parser::parse(string $buffer): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

buffer

Valor Retornado


Parsing

  • « CommonMark\Parser::parse
  • CommonMark\CQL »
  • PHP Manual
  • CommonMark\Parser
  • Parsing

CommonMark\Parser::finish

(cmark >= 1.0.0)

CommonMark\Parser::finish — Parsing

Descrição

public CommonMark\Parser::finish(): CommonMark\Node

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


The CommonMark\CQL class

(cmark >= 1.1.0)

Introdução

CommonMark Query Language is a DSL for describing how to travel through a CommonMark Node tree implemented as a parser and compiler for a small set of instructions, and a virtual machine for executing those instructions.

Paths:

In it's most simplistic form, a CQL query combines the following paths and / to describe how to travel through a tree:

  • firstChild
  • lastChild
  • previous
  • next
  • parent
For example, /firstChild/lastChild would travel to the last child node of the first child node.

Loops

CQL can be instructed to loop, for example through the children of, or siblings to a particular node, by using the path children, or siblings. For example, /firstChild/children will travel to all the children of the first child node.

Subqueries

CQL can be instructed how to travel by using a subquery like [/firstChild]. For example, /firstChild/children[/firstChild] will travel to the first child node of all the children of the first child node.

Loop Constraints

While looping, CQL can be instructed to constrict the travelled path to nodes of particular type. For example /children(BlockQuote) will travel to the children of a node where the type is BlockQuote. The following types are recognized (case insensitively):

  • BlockQuote
  • List
  • Item
  • CodeBlock
  • HtmlBlock
  • CustomBlock
  • Paragraph
  • Heading
  • ThematicBreak
  • Text
  • SoftBreak
  • LineBreak
  • Code
  • HtmlInline
  • CustomInline
  • Emphasis
  • Strong
  • Link
  • Image
Types may be used as a union, for example /children(BlockQuote|List) will travel to the children of a node where the type is BlockQuote or List. Types, or unions of types, may be also negated. For example /children(~BlockQuote) will travel to the children of a node where the type is not BlockQuote, and /children(~BlockQuote|Paragraph) will travel to the children of a node where the type is not BlockQuote or Paragraph

Path Constraints

CQL can be instructed to create a loop to travel to a node of a particular type, at a particular path. For example, /firstChild(BlockQuote) will travel to the first child node where the type is BlockQuote. Note that like other loops for children and siblings, this kind of path can only be followed by a subquery.

Implementation Notes

While CQL has been implemented as part of the PHP CommonMark extension, it stands separately from PHP and does not use PHP's virtual machine or internal representation of values.

Resumo da classe

class CommonMark\CQL {
/* Constructor */
public __construct(string $query)
/* Métodos */
public __invoke(CommonMark\Node $root, callable $handler)
}

Índice

  • CommonMark\CQL::__construct — CQL Construction
  • CommonMark\CQL::__invoke — CQL Execution


CQL Construction

  • « CommonMark\CQL
  • CommonMark\CQL::__invoke »
  • PHP Manual
  • CommonMark\CQL
  • CQL Construction

CommonMark\CQL::__construct

(cmark >= 1.1.0)

CommonMark\CQL::__construct — CQL Construction

Descrição

public CommonMark\CQL::__construct(string $query)

Parâmetros

query

a CQL string


CQL Execution

  • « CommonMark\CQL::__construct
  • CommonMark Funções »
  • PHP Manual
  • CommonMark\CQL
  • CQL Execution

CommonMark\CQL::__invoke

(cmark >= 1.1.0)

CommonMark\CQL::__invoke — CQL Execution

Descrição

public CommonMark\CQL::__invoke(CommonMark\Node $root, callable $handler)

Shall invoke the current CQL function on the given root, executing the given handler on entry to a CommonMark\Node

Parâmetros

root

the root node of a tree

handler

should have the prototype:

handler(CommonMark\Node $root, CommonMark\Node $entering): ?bool
  • Should handler fail to return (void), or return null, CQL will continue executing
  • Should the handler return a truthy value, CQL will continue executing.
  • Should the handler return a falsy value, CQL will stop executing


CommonMark Funções

Índice

  • CommonMark\Parse — Parsing
  • CommonMark\Render — Rendering
  • CommonMark\Render\HTML — Rendering
  • CommonMark\Render\Latex — Rendering
  • CommonMark\Render\Man — Rendering
  • CommonMark\Render\XML — Rendering


Parsing

  • « CommonMark Funções
  • CommonMark\Render »
  • PHP Manual
  • CommonMark Funções
  • Parsing

CommonMark\Parse

(cmark >= 1.0.0)

CommonMark\Parse — Parsing

Descrição

CommonMark\Parse(string $content, int $options = ?): CommonMark\Node

Shall parse content

Parâmetros

content

markdown string

options

A mask of:

CommonMark\Parser\Normal (int)
CommonMark\Parser\Normalize (int)
CommonMark\Parser\ValidateUTF8 (int)
CommonMark\Parser\Smart (int)

Valor Retornado

Shall return root CommonMark\Node


Rendering

  • « CommonMark\Parse
  • CommonMark\Render\HTML »
  • PHP Manual
  • CommonMark Funções
  • Rendering

CommonMark\Render

(cmark >= 1.0.0)

CommonMark\Render — Rendering

Descrição

CommonMark\Render(CommonMark\Node $node, int $options = ?, int $width = ?): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
width

Valor Retornado


Rendering

  • « CommonMark\Render
  • CommonMark\Render\Latex »
  • PHP Manual
  • CommonMark Funções
  • Rendering

CommonMark\Render\HTML

(cmark >= 1.0.0)

CommonMark\Render\HTML — Rendering

Descrição

CommonMark\Render\HTML(CommonMark\Node $node, int $options = ?): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)

Valor Retornado


Rendering

  • « CommonMark\Render\HTML
  • CommonMark\Render\Man »
  • PHP Manual
  • CommonMark Funções
  • Rendering

CommonMark\Render\Latex

(cmark >= 1.0.0)

CommonMark\Render\Latex — Rendering

Descrição

CommonMark\Render\Latex(CommonMark\Node $node, int $options = ?, int $width = ?): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
width

Valor Retornado


Rendering

  • « CommonMark\Render\Latex
  • CommonMark\Render\XML »
  • PHP Manual
  • CommonMark Funções
  • Rendering

CommonMark\Render\Man

(cmark >= 1.0.0)

CommonMark\Render\Man — Rendering

Descrição

CommonMark\Render\Man(CommonMark\Node $node, int $options = ?, int $width = ?): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
width

Valor Retornado


Rendering

  • « CommonMark\Render\Man
  • Parle »
  • PHP Manual
  • CommonMark Funções
  • Rendering

CommonMark\Render\XML

(cmark >= 1.0.0)

CommonMark\Render\XML — Rendering

Descrição

CommonMark\Render\XML(CommonMark\Node $node, int $options = ?): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)

Valor Retornado


Parsing and lexing

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
  • Constantes pré-definidas
  • Pattern matching — Parle pattern matching
  • Exemplos
    • Lexer examples
    • Parser examples
  • Parle\Lexer — The Parle\Lexer class
    • Parle\Lexer::advance — Process next lexer rule
    • Parle\Lexer::build — Finalize the lexer rule set
    • Parle\Lexer::callout — Define token callback
    • Parle\Lexer::consume — Pass the data for processing
    • Parle\Lexer::dump — Dump the state machine
    • Parle\Lexer::getToken — Retrieve the current token
    • Parle\Lexer::insertMacro — Insert regex macro
    • Parle\Lexer::push — Add a lexer rule
    • Parle\Lexer::reset — Reset lexer
  • Parle\RLexer — The Parle\RLexer class
    • Parle\RLexer::advance — Process next lexer rule
    • Parle\RLexer::build — Finalize the lexer rule set
    • Parle\RLexer::callout — Define token callback
    • Parle\RLexer::consume — Pass the data for processing
    • Parle\RLexer::dump — Dump the state machine
    • Parle\RLexer::getToken — Retrieve the current token
    • Parle\RLexer::insertMacro — Insert regex macro
    • Parle\RLexer::push — Add a lexer rule
    • Parle\RLexer::pushState — Push a new start state
    • Parle\RLexer::reset — Reset lexer
  • Parle\Parser — The Parle\Parser class
    • Parle\Parser::advance — Process next parser rule
    • Parle\Parser::build — Finalize the grammar rules
    • Parle\Parser::consume — Consume the data for processing
    • Parle\Parser::dump — Dump the grammar
    • Parle\Parser::errorInfo — Retrieve the error information
    • Parle\Parser::left — Declare a token with left-associativity
    • Parle\Parser::nonassoc — Declare a token with no associativity
    • Parle\Parser::precedence — Declare a precedence rule
    • Parle\Parser::push — Add a grammar rule
    • Parle\Parser::reset — Reset parser state
    • Parle\Parser::right — Declare a token with right-associativity
    • Parle\Parser::sigil — Retrieve a matching part of a rule
    • Parle\Parser::sigilCount — Number of elements in matched rule
    • Parle\Parser::sigilName — Retrieve a rule or token name
    • Parle\Parser::token — Declare a token
    • Parle\Parser::tokenId — Get token id
    • Parle\Parser::trace — Trace the parser operation
    • Parle\Parser::validate — Validate input
  • Parle\RParser — The Parle\RParser class
    • Parle\RParser::advance — Process next parser rule
    • Parle\RParser::build — Finalize the grammar rules
    • Parle\RParser::consume — Consume the data for processing
    • Parle\RParser::dump — Dump the grammar
    • Parle\RParser::errorInfo — Retrieve the error information
    • Parle\RParser::left — Declare a token with left-associativity
    • Parle\RParser::nonassoc — Declare a token with no associativity
    • Parle\RParser::precedence — Declare a precedence rule
    • Parle\RParser::push — Add a grammar rule
    • Parle\RParser::reset — Reset parser state
    • Parle\RParser::right — Declare a token with right-associativity
    • Parle\RParser::sigil — Retrieve a matching part of a rule
    • Parle\RParser::sigilCount — Number of elements in matched rule
    • Parle\RParser::sigilName — Retrieve a rule or token name
    • Parle\RParser::token — Declare a token
    • Parle\RParser::tokenId — Get token id
    • Parle\RParser::trace — Trace the parser operation
    • Parle\RParser::validate — Validate input
  • Parle\Stack — The Parle\Stack class
    • Parle\Stack::pop — Pop an item from the stack
    • Parle\Stack::push — Push an item into the stack
  • Parle\Token — The Parle\Token class
  • Parle\ErrorInfo — The Parle\ErrorInfo class
  • Parle\LexerException — The Parle\LexerException class
  • Parle\ParserException — The Parle\ParserException class


Introdução

The parle extension provides general purpose lexing and parsing facilities. The implementation is based on » Ben Hanson's libraries and requires a » C++14 capable compiler. The lexer is based on the regex matching, the parser is LALR(1). Lexers and parsers are generated on the fly and can be used immediately after they've been finalized. Parle deals with parsing and lexing, the appropriate data structures representation and processing are the implementer's task. Serialization and code generation are not supported by the extension, yet.

Lexer analysis is a process of splitting a character sequence into a list of lexemes. The lexeme list can be then used for the syntax analysis against a formal grammar. These operations are also known as lexing and parsing. This documentation doesn't aim to provide an exhaustive information on lexing and parsing. Good information in this regard is available on the numerous resources on the net. Several usage examples are included, to show the functionality. The extension is useful for PHP programmers both willing to learn or to utilize parsing and lexing. State machines and grammar parsing don't have to be implemented manually, these complex tasks are taken away by parle. Thanks to that, the development can be focused on the actual problem solving.

The common use case for parle is, when a data format is too complex to be handled by the regex matching with PCRE. The practical application is herewith wide. Be it a specific data format, a behavior modification of existing functions, even an own programming language and beyond. The helper methods such as Parle\Lexer::dump() to inspect the generated state machine, or Parle\Parser::dump() to inspect the generated grammar, are useful. The method Parle\Parser::trace() can also be used to track the parsing operation.


  • « Introdução
  • Dependências »
  • PHP Manual
  • Parle
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação


Dependências

PHP 7.4 or above is supported. A C++14 capable compiler is required. A successful extension build was produced with at least clang 5.0, GCC 5.0 and Visual Studio 2015.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/parle.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/parle/.

Available configure options
Option | Description
--enable-parle | Enable parle extension.
--enable-parle-utf32 | Enable internal UTF-32 support. Available since parle 0.7.2.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Parle\INTERNAL_UTF32 bool
Flag whether the internal UTF-32 support is compiled in. Available since parle 0.7.2.


Parle pattern matching

Parle supports regex matching similar to flex. Also supported are the following POSIX character sets: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:] .

The Unicode character classes are currently not enabled by default, pass --enable-parle-utf32 to make them available. A particular encoding can be mapped with a correctly constructed regex. For example, to match the EURO symbol encoded in UTF-8, the regular expression [\xe2][\x82][\xac] can be used. The pattern for an UTF-8 encoded string could be [ -\x7f]{+}[\x80-\xbf]{+}[\xc2-\xdf]{+}[\xe0-\xef]{+}[\xf0-\xff]+.

Character representations

Character representations
Sequence | Description
\a | Alert (bell).
\b | Backspace.
\e | ESC character, \x1b.
\n | Newline.
\r | Carriage return.
\f | Form feed, \x0c.
\t | Horizontal tab, \x09.
\v | Vertical tab, \x0b.
\oct | Character specified by a three-digit octal code.
\xhex | Character specified by a hex code.
\cchar | Named control character.

Character classes

Character classes
Sequence | Description
[...] | A single character listed or contained within a listed range. Ranges can be combined with the {+} and {-} operators. For example [a-z]{+}[0-9] is the same as [0-9a-z] and [a-z]{-}[aeiou] is the same as [b-df-hj-np-tv-z].
[^...] | A single character not listed and not contained within a listed range.
. | Any character, default [^\n].
\d | Digit character, [0-9].
\D | Non-digit character, [^0-9].
\s | White space character, [ \t\n\r\f\v].
\S | Non-white space character, [^ \t\n\r\f\v].
\w | Word character, [a-zA-Z0-9_].
\W | Non-word character, [^a-zA-Z0-9_].

Unicode character classes

Unicode character classes
Sequence | Description
\p{C} | Other.
\p{Cc} | Other, control.
\p{Cf} | Other, format.
\p{Co} | Other, private use.
\p{Cs} | Other, surrogate.
\p{L} | Letter.
\p{LC} | Letter, cased.
\p{Ll} | Letter, lowercase.
\p{Lm} | Letter, modifier.
\p{Lo} | Letter, other.
\p{Lt} | Letter, titlecase.
\p{Lu} | Letter, uppercase.
\p{M} | Mark.
\p{Mc} | Mark, space combining.
\p{Me} | Mark, enclosing.
\p{Mn} | Mark, nonspacing.
\p{N} | Number.
\p{Nd} | Number, decimal digit.
\p{Nl} | Number, letter.
\p{No} | Number, other.
\p{P} | Punctuation.
\p{Pc} | Punctiation, connector.
\p{Pd} | Punctuation, dash.
\p{Pe} | Punctuation, close.
\p{Pf} | Punctuation, final quote.
\p{Pi} | Punctuation, initial quote.
\p{Po} | Punctuation, other.
\p{Ps} | Punctuation, open.
\p{S} | Symbol.
\p{Sc} | Symbol, currency.
\p{Sk} | Symbol, modifier.
\p{Sm} | Symbol, math.
\p{So} | Symbol, other.
\p{Z} | Separator.
\p{Zl} | Separator, line.
\p{Zp} | Separator, paragraph.
\p{Zs} | Separator, space.

These character classes are only available, if the option --enable-parle-utf32 was passed at the compilation time.

Alternation and repetition

Alternation and repetition
Sequence | Greedy | Description
...|... | - | Try sub-patterns in alternation.
* | yes | Match 0 or more times.
+ | yes | Match 1 or more times.
? | yes | Match 0 or 1 times.
{n} | no | Match exactly n times.
{n,} | yes | Match at least n times.
{n,m} | yes | Match at least n times but no more than m times.
*? | no | Match 0 or more times.
+? | no | Match 1 or more times.
?? | no | Match 0 or 1 times.
{n,}? | no | Match at least n times.
{n,m}? | no | Match at least n times but no more than m times.
{MACRO} | - | Include the regex MACRO in the current regex.

Anchors

Anchors
Sequence | Description
^ | Start of string or after a newline.
$ | End of string or before a newline.

Grouping

Grouping
Sequence | Description
(...) | Group a regular expression to override default operator precedence.
(?r-s:pattern) | Apply option r and omit option s while interpreting pattern. Options may be zero or more of the characters i, s, or x. i means case-insensitive. -i means case-sensitive. s alters the meaning of . to match any character whatsoever. -s alters the meaning of . to match any character except \n. x ignores comments and whitespace in patterns. Whitespace is ignored unless it is backslash-escaped, contained within ""s, or appears inside a character range. These options can be applied globally at the rules level by passing a combination of the bit flags to the lexer.
(?# comment ) | Omit everything within (). The first ) character encountered ends the pattern. It is not possible for the comment to contain a ) character. The comment may span lines.


  • « Pattern matching
  • Lexer examples »
  • PHP Manual
  • Parle
  • Exemplos

Exemplos

Índice

  • Lexer examples
  • Parser examples


Lexer examples

Exemplo #1 Tokenize comma separated integer list

<?php

use Parle\Token;
use Parle\Lexer;
use Parle\LexerException;

/* name => id */
$token = array(
"COMMA" => 1,
"CRLF" => 2,
"DECIMAL" => 3,
);
/* id => name */
$tokenIdToName = array_flip($token);

$lex = new Lexer;
$lex->push("[\x2c]", $token["COMMA"]);
$lex->push("[\r][\n]", $token["CRLF"]);
$lex->push("[\d]+", $token["DECIMAL"]);
$lex->build();

$in = "0,1,2\r\n3,42,5\r\n6,77,8\r\n";

$lex->consume($in);

do {
$lex->advance();
$tok = $lex->getToken();

if (Token::UNKNOWN == $tok->id) {
throw new LexerException("Unknown token '{$tok->value}' at offset {$lex->marker}.");
}

echo "TOKEN: ", $tokenIdToName[$tok->id], PHP_EOL;
} while (Token::EOI != $tok->id);

Exemplo #2 Tokenize assign statement

<?php

use Parle\{Token, Lexer};

$lex = new Lexer;

$lex->push("\$[a-zA-Z_][a-zA-Z0-9_]*", 1);
$lex->push("=", 2);
$lex->push("\d+", 3);
$lex->push(";", 4);

$lex->build();

$lex->consume('$x = 42; $y = 24;');

do {
$lex->advance();
$tok = $lex->getToken();
var_dump($tok);
} while (Token::EOI != $tok->id);


Parser examples

Exemplo #1 Simple calculator

<?php

use Parle\{Parser, ParserException, Lexer, Token};

$p = new Parser;
$p->token("INTEGER");
$p->left("'+' '-' '*' '/'");

$p->push("start", "exp");
$prod_add = $p->push("exp", "exp '+' exp");
$prod_sub = $p->push("exp", "exp '-' exp");
$prod_mul = $p->push("exp", "exp '*' exp");
$prod_div = $p->push("exp", "exp '/' exp");
$p->push("exp", "INTEGER"); /* Production index unused. */

$p->build();

$lex = new Lexer;
$lex->push("[+]", $p->tokenId("'+'"));
$lex->push("[-]", $p->tokenId("'-'"));
$lex->push("[*]", $p->tokenId("'*'"));
$lex->push("[/]", $p->tokenId("'/'"));
$lex->push("\\d+", $p->tokenId("INTEGER"));
$lex->push("\\s+", Token::SKIP);

$lex->build();

$exp = array(
"1 + 1",
"33 / 10",
"100 * 45",
"17 - 45",
);

foreach ($exp as $in) {
if (!$p->validate($in, $lex)) {
throw new ParserException("Failed to validate input");
}

$p->consume($in, $lex);

while (Parser::ACTION_ERROR != $p->action && Parser::ACTION_ACCEPT != $p->action) {
switch ($p->action) {
case Parser::ACTION_ERROR:
throw new ParserException("Parser error");
break;
case Parser::ACTION_SHIFT:
case Parser::ACTION_GOTO:
case Parser::ACTION_ACCEPT:
break;
case Parser::ACTION_REDUCE:
switch ($p->reduceId) {
case $prod_add:
$l = $p->sigil(0);
$r = $p->sigil(2);
echo "$l + $r = " . ($l + $r) . "\n";
break;
case $prod_sub:
$l = $p->sigil(0);
$r = $p->sigil(2);
echo "$l - $r = " . ($l - $r) . "\n";
break;
case $prod_mul:
$l = $p->sigil(0);
$r = $p->sigil(2);
echo "$l * $r = " . ($l * $r) . "\n";
break;
case $prod_div:
$l = $p->sigil(0);
$r = $p->sigil(2);
echo "$l / $r = " . ($l / $r) . "\n";
break;
}
break;
}
$p->advance();
}
}

Exemplo #2 Parse words out from a sentence

<?php

use Parle\{Lexer, Token, Parser, ParserException};

$p = new Parser;
$p->token("WORD");
$p->push("START", "SENTENCE");
$p->push("SENTENCE", "WORDS");
$prod_word_0 = $p->push("WORDS", "WORDS WORD");
$prod_word_1 = $p->push("WORDS", "WORD");
$p->build();

$lex = new Lexer;
$lex->push("[^\s]{-}[\.,\:\;\?]+", $p->tokenId("WORD"));
$lex->push("[\s\.,\:\;\?]+", Token::SKIP);
$lex->build();

$in = "Dis-moi où est ton papa?";
$p->consume($in, $lex);
do {
switch ($p->action) {
case Parser::ACTION_ERROR:
throw new ParserException("Error");
break;
case Parser::ACTION_SHIFT:
case Parser::ACTION_GOTO:
/* var_dump($p->trace());*/
break;
case Parser::ACTION_REDUCE:
$rid = $p->reduceId();
if ($rid == $prod_word_1) {
var_dump($p->sigil(0));
} if ($rid == $prod_word_0) {
var_dump($p->sigil(1));
}
break;
}
$p->advance();
} while (Parser::ACTION_ACCEPT != $p->action);


The Parle\Lexer class

(PECL parle >= 0.5.1)

Introdução

Single state lexer class. Lexemes can be defined on the fly. If the particular lexer instance is meant to be used with Parle\Parser, the token IDs need to be taken from there. Otherwise, arbitrary token IDs can be supplied. This lexer can give a certain performance advantage over Parle\RLexer, if no multiple states are required. Note, that Parle\RParser is not compatible with this lexer.

Resumo da classe

class Parle\Lexer {
/* Constantes */
const int ICASE = 1;
const int DOT_NOT_LF = 2;
const int DOT_NOT_CRLF = 4;
const int SKIP_WS = 8;
const int MATCH_ZERO_LEN = 16;
/* Propriedades */
public bool $bol = false;
public int $flags = 0;
public int $state = 0;
public int $marker = 0;
public int $cursor = 0;
/* Métodos */
public advance(): void
public build(): void
public callout(int $id, callable $callback): void
public consume(string $data): void
public dump(): void
public getToken(): Parle\Token
public insertMacro(string $name, string $regex): void
public push(string $regex, int $id): void
public reset(int $pos): void
}

Constantes pré-definidas

Parle\Lexer::ICASE

Parle\Lexer::DOT_NOT_LF

Parle\Lexer::DOT_NOT_CRLF

Parle\Lexer::SKIP_WS

Parle\Lexer::MATCH_ZERO_LEN

Propriedades

bol

Start of input flag.

flags

Lexer flags.

state

Current lexer state, readonly.

marker

Position of the latest token match, readonly.

cursor

Current input offset, readonly.

Índice

  • Parle\Lexer::advance — Process next lexer rule
  • Parle\Lexer::build — Finalize the lexer rule set
  • Parle\Lexer::callout — Define token callback
  • Parle\Lexer::consume — Pass the data for processing
  • Parle\Lexer::dump — Dump the state machine
  • Parle\Lexer::getToken — Retrieve the current token
  • Parle\Lexer::insertMacro — Insert regex macro
  • Parle\Lexer::push — Add a lexer rule
  • Parle\Lexer::reset — Reset lexer


Process next lexer rule

  • « Parle\Lexer
  • Parle\Lexer::build »
  • PHP Manual
  • Parle\Lexer
  • Process next lexer rule

Parle\Lexer::advance

(PECL parle >= 0.5.1)

Parle\Lexer::advance — Process next lexer rule

Descrição

public Parle\Lexer::advance(): void

Processes the next rule and prepares the resulting token data.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Finalize the lexer rule set

  • « Parle\Lexer::advance
  • Parle\Lexer::callout »
  • PHP Manual
  • Parle\Lexer
  • Finalize the lexer rule set

Parle\Lexer::build

(PECL parle >= 0.5.1)

Parle\Lexer::build — Finalize the lexer rule set

Descrição

public Parle\Lexer::build(): void

Rules, previously added with Parle\Lexer::push() are finalized. This method call has to be done after all the necessary rules was pushed. The rule set becomes read only. The lexing can begin.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Define token callback

  • « Parle\Lexer::build
  • Parle\Lexer::consume »
  • PHP Manual
  • Parle\Lexer
  • Define token callback

Parle\Lexer::callout

(PECL parle >= 0.7.2)

Parle\Lexer::callout — Define token callback

Descrição

public Parle\Lexer::callout(int $id, callable $callback): void

Define a callback to be invoked once lexer encounters a particular token.

Parâmetros

id

Token id.

callback

Callable to be invoked. The callable doesn't receive any arguments and its return value is ignored.

Valor Retornado

Nenhum valor é retornado.


Pass the data for processing

  • « Parle\Lexer::callout
  • Parle\Lexer::dump »
  • PHP Manual
  • Parle\Lexer
  • Pass the data for processing

Parle\Lexer::consume

(PECL parle >= 0.5.1)

Parle\Lexer::consume — Pass the data for processing

Descrição

public Parle\Lexer::consume(string $data): void

Consume the data for lexing.

Parâmetros

data

Data to be lexed.

Valor Retornado

Nenhum valor é retornado.


Dump the state machine

  • « Parle\Lexer::consume
  • Parle\Lexer::getToken »
  • PHP Manual
  • Parle\Lexer
  • Dump the state machine

Parle\Lexer::dump

(PECL parle >= 0.5.1)

Parle\Lexer::dump — Dump the state machine

Descrição

public Parle\Lexer::dump(): void

Dump the current state machine to stdout.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Retrieve the current token

  • « Parle\Lexer::dump
  • Parle\Lexer::insertMacro »
  • PHP Manual
  • Parle\Lexer
  • Retrieve the current token

Parle\Lexer::getToken

(PECL parle >= 0.5.1)

Parle\Lexer::getToken — Retrieve the current token

Descrição

public Parle\Lexer::getToken(): Parle\Token

Retrieve the current token.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an instance of Parle\Token.


Insert regex macro

  • « Parle\Lexer::getToken
  • Parle\Lexer::push »
  • PHP Manual
  • Parle\Lexer
  • Insert regex macro

Parle\Lexer::insertMacro

(PECL parle >= 0.5.1)

Parle\Lexer::insertMacro — Insert regex macro

Descrição

public Parle\Lexer::insertMacro(string $name, string $regex): void

Insert a regex macro, that can be later used as a shortcut and included in other regular expressions.

Parâmetros

name

Name of the macros.

regex

Regular expression.

Valor Retornado

Nenhum valor é retornado.


Add a lexer rule

  • « Parle\Lexer::insertMacro
  • Parle\Lexer::reset »
  • PHP Manual
  • Parle\Lexer
  • Add a lexer rule

Parle\Lexer::push

(PECL parle >= 0.5.1)

Parle\Lexer::push — Add a lexer rule

Descrição

public Parle\Lexer::push(string $regex, int $id): void

Push a pattern for lexeme recognition.

Parâmetros

regex

Regular expression used for token matching.

id

Token id. If the lexer instance is meant to be used standalone, this can be an arbitrary number. If the lexer instance is going to be passed to the parser, it has to be an id returned by Parle\Parser::tokenid().

Valor Retornado

Nenhum valor é retornado.


Reset lexer

  • « Parle\Lexer::push
  • Parle\RLexer »
  • PHP Manual
  • Parle\Lexer
  • Reset lexer

Parle\Lexer::reset

(PECL parle >= 0.7.1)

Parle\Lexer::reset — Reset lexer

Descrição

public Parle\Lexer::reset(int $pos): void

Reset lexing optionally supplying the desired offset.

Parâmetros

pos

Reset position.

Valor Retornado

Nenhum valor é retornado.


The Parle\RLexer class

(PECL parle >= 0.5.1)

Introdução

Multistate lexer class. Lexemes can be defined on the fly. If the particular lexer instance is meant to be used with Parle\RParser, the token IDs need to be taken from there. Otherwise, arbitrary token IDs can be supplied. Note, that Parle\Parser is not compatible with this lexer.

Resumo da classe

class Parle\RLexer {
/* Constantes */
const int ICASE = 1;
const int DOT_NOT_LF = 2;
const int DOT_NOT_CRLF = 4;
const int SKIP_WS = 8;
const int MATCH_ZERO_LEN = 16;
/* Propriedades */
public bool $bol = false;
public int $flags = 0;
public int $state = 0;
public int $marker = 0;
public int $cursor = 0;
/* Métodos */
public advance(): void
public build(): void
public callout(int $id, callable $callback): void
public consume(string $data): void
public dump(): void
public getToken(): Parle\Token
public insertMacro(string $name, string $regex): void
public push(string $regex, int $id): void
public push(
string $state,
string $regex,
int $id,
string $newState
): void
public push(string $state, string $regex, string $newState): void
public pushState(string $state): int
public reset(int $pos): void
}

Constantes pré-definidas

Parle\RLexer::ICASE

Parle\RLexer::DOT_NOT_LF

Parle\RLexer::DOT_NOT_CRLF

Parle\RLexer::SKIP_WS

Parle\RLexer::MATCH_ZERO_LEN

Propriedades

bol

Start of input flag.

flags

Lexer flags.

state

Current lexer state, readonly.

marker

Position of the latest token match, readonly.

cursor

Current input offset, readonly.

Índice

  • Parle\RLexer::advance — Process next lexer rule
  • Parle\RLexer::build — Finalize the lexer rule set
  • Parle\RLexer::callout — Define token callback
  • Parle\RLexer::consume — Pass the data for processing
  • Parle\RLexer::dump — Dump the state machine
  • Parle\RLexer::getToken — Retrieve the current token
  • Parle\RLexer::insertMacro — Insert regex macro
  • Parle\RLexer::push — Add a lexer rule
  • Parle\RLexer::pushState — Push a new start state
  • Parle\RLexer::reset — Reset lexer


Process next lexer rule

  • « Parle\RLexer
  • Parle\RLexer::build »
  • PHP Manual
  • Parle\RLexer
  • Process next lexer rule

Parle\RLexer::advance

(PECL parle >= 0.5.1)

Parle\RLexer::advance — Process next lexer rule

Descrição

public Parle\RLexer::advance(): void

Processes the next rule and prepares the resulting token data.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Finalize the lexer rule set

  • « Parle\RLexer::advance
  • Parle\RLexer::callout »
  • PHP Manual
  • Parle\RLexer
  • Finalize the lexer rule set

Parle\RLexer::build

(PECL parle >= 0.5.1)

Parle\RLexer::build — Finalize the lexer rule set

Descrição

public Parle\RLexer::build(): void

Rules, previously added with Parle\RLexer::push() are finalized. This method call has to be done after all the necessary rules was pushed. The rule set becomes read only. The lexing can begin.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Define token callback

  • « Parle\RLexer::build
  • Parle\RLexer::consume »
  • PHP Manual
  • Parle\RLexer
  • Define token callback

Parle\RLexer::callout

(PECL parle >= 0.7.2)

Parle\RLexer::callout — Define token callback

Descrição

public Parle\RLexer::callout(int $id, callable $callback): void

Define a callback to be invoked once lexer encounters a particular token.

Parâmetros

id

Token id.

callback

Callable to be invoked. The callable doesn't receive any arguments and its return value is ignored.

Valor Retornado

Nenhum valor é retornado.


Pass the data for processing

  • « Parle\RLexer::callout
  • Parle\RLexer::dump »
  • PHP Manual
  • Parle\RLexer
  • Pass the data for processing

Parle\RLexer::consume

(PECL parle >= 0.5.1)

Parle\RLexer::consume — Pass the data for processing

Descrição

public Parle\RLexer::consume(string $data): void

Consume the data for lexing.

Parâmetros

data

Data to be lexed.

Valor Retornado

Nenhum valor é retornado.


Dump the state machine

  • « Parle\RLexer::consume
  • Parle\RLexer::getToken »
  • PHP Manual
  • Parle\RLexer
  • Dump the state machine

Parle\RLexer::dump

(PECL parle >= 0.5.1)

Parle\RLexer::dump — Dump the state machine

Descrição

public Parle\RLexer::dump(): void

Dump the current state machine to stdout.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Retrieve the current token

  • « Parle\RLexer::dump
  • Parle\RLexer::insertMacro »
  • PHP Manual
  • Parle\RLexer
  • Retrieve the current token

Parle\RLexer::getToken

(PECL parle >= 0.5.1)

Parle\RLexer::getToken — Retrieve the current token

Descrição

public Parle\RLexer::getToken(): Parle\Token

Retrive the current token.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an instance of Parle\Token.


Insert regex macro

  • « Parle\RLexer::getToken
  • Parle\RLexer::push »
  • PHP Manual
  • Parle\RLexer
  • Insert regex macro

Parle\RLexer::insertMacro

(PECL parle >= 0.5.1)

Parle\RLexer::insertMacro — Insert regex macro

Descrição

public Parle\RLexer::insertMacro(string $name, string $regex): void

Insert a regex macro, that can be later used as a shortcut and included in other regular expressions.

Parâmetros

name

Name of the macros.

regex

Regular expression.

Valor Retornado

Nenhum valor é retornado.


Add a lexer rule

  • « Parle\RLexer::insertMacro
  • Parle\RLexer::pushState »
  • PHP Manual
  • Parle\RLexer
  • Add a lexer rule

Parle\RLexer::push

(PECL parle >= 0.5.1)

Parle\RLexer::push — Add a lexer rule

Descrição

public Parle\RLexer::push(string $regex, int $id): void
public Parle\RLexer::push(
string $state,
string $regex,
int $id,
string $newState
): void
public Parle\RLexer::push(string $state, string $regex, string $newState): void

Push a pattern for lexeme recognition.

A 'start state' and 'exit state' can be specified by using a suitable signature.

Parâmetros

regex

Regular expression used for token matching.

id

Token id. If the lexer instance is meant to be used standalone, this can be an arbitrary number. If the lexer instance is going to be passed to the parser, it has to be an id returned by Parle\RParser::tokenid().

state

State name. If '*' is used as start state, then the rule is applied to all lexer states.

newState

New state name, after the rule was applied.

If '.' is specified as the exit state, then the lexer state is unchanged when that rule matches. An exit state with '>' before the name means push. Use the signature without id for either continuation or to start matching, when a continuation or recursion is required.

If '<' is specified as exit state, it means pop. In that case, the signature containing the id can be used to identify the match. Note that even in the case an id is specified, the rule will finish first when all the previous pushes popped.

Valor Retornado

Nenhum valor é retornado.


Push a new start state

  • « Parle\RLexer::push
  • Parle\RLexer::reset »
  • PHP Manual
  • Parle\RLexer
  • Push a new start state

Parle\RLexer::pushState

(PECL parle >= 0.5.1)

Parle\RLexer::pushState — Push a new start state

Descrição

public Parle\RLexer::pushState(string $state): int

This lexer type can have more than one state machine. This allows you to lex different tokens depending on context, thus allowing simple parsing to take place. Once a state pushed, it can be used with a suitable Parle\RLexer::push() signature variant.

Parâmetros

state

Name of the state.

Valor Retornado


Reset lexer

  • « Parle\RLexer::pushState
  • Parle\Parser »
  • PHP Manual
  • Parle\RLexer
  • Reset lexer

Parle\RLexer::reset

(PECL parle >= 0.7.1)

Parle\RLexer::reset — Reset lexer

Descrição

public Parle\RLexer::reset(int $pos): void

Reset lexing optionally supplying the desired offset.

Parâmetros

pos

Reset position.

Valor Retornado

Nenhum valor é retornado.


The Parle\Parser class

(PECL parle >= 0.5.1)

Introdução

Parser class. Rules can be defined on the fly. Once finalized, a Parle\Lexer instance is required to deliver the token stream.

Resumo da classe

class Parle\Parser {
/* Constantes */
const int ACTION_ERROR = 0;
const int ACTION_SHIFT = 1;
const int ACTION_REDUCE = 2;
const int ACTION_GOTO = 3;
const int ACTION_ACCEPT = 4;
const int ERROR_SYNTAX = 0;
const int ERROR_NON_ASSOCIATIVE = 1;
const int ERROR_UNKNOWN_TOKEN = 2;
/* Propriedades */
public int $action = 0;
public int $reduceId = 0;
/* Métodos */
public advance(): void
public build(): void
public consume(string $data, Parle\Lexer $lexer): void
public dump(): void
public errorInfo(): Parle\ErrorInfo
public left(string $tok): void
public nonassoc(string $tok): void
public precedence(string $tok): void
public push(string $name, string $rule): int
public reset(int $tokenId = ?): void
public right(string $tok): void
public sigil(int $idx): string
public sigilCount(): int
public sigilName(int $idx): string
public token(string $tok): void
public tokenId(string $tok): int
public trace(): string
public validate(string $data, Parle\Lexer $lexer): bool
}

Constantes pré-definidas

Parle\Parser::ACTION_ERROR

Parle\Parser::ACTION_SHIFT

Parle\Parser::ACTION_REDUCE

Parle\Parser::ACTION_GOTO

Parle\Parser::ACTION_ACCEPT

Parle\Parser::ERROR_SYNTAX

Parle\Parser::ERROR_NON_ASSOCIATIVE

Parle\Parser::ERROR_UNKNOWN_TOKEN

Propriedades

action

Current parser action that matches one of the action class constants, readonly.

reduceId

Grammar rule id just processed in the reduce action. The value corresponds either to a token or to a production id. Readonly.

Índice

  • Parle\Parser::advance — Process next parser rule
  • Parle\Parser::build — Finalize the grammar rules
  • Parle\Parser::consume — Consume the data for processing
  • Parle\Parser::dump — Dump the grammar
  • Parle\Parser::errorInfo — Retrieve the error information
  • Parle\Parser::left — Declare a token with left-associativity
  • Parle\Parser::nonassoc — Declare a token with no associativity
  • Parle\Parser::precedence — Declare a precedence rule
  • Parle\Parser::push — Add a grammar rule
  • Parle\Parser::reset — Reset parser state
  • Parle\Parser::right — Declare a token with right-associativity
  • Parle\Parser::sigil — Retrieve a matching part of a rule
  • Parle\Parser::sigilCount — Number of elements in matched rule
  • Parle\Parser::sigilName — Retrieve a rule or token name
  • Parle\Parser::token — Declare a token
  • Parle\Parser::tokenId — Get token id
  • Parle\Parser::trace — Trace the parser operation
  • Parle\Parser::validate — Validate input


Process next parser rule

  • « Parle\Parser
  • Parle\Parser::build »
  • PHP Manual
  • Parle\Parser
  • Process next parser rule

Parle\Parser::advance

(PECL parle >= 0.5.1)

Parle\Parser::advance — Process next parser rule

Descrição

public Parle\Parser::advance(): void

Process next parser rule.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Finalize the grammar rules

  • « Parle\Parser::advance
  • Parle\Parser::consume »
  • PHP Manual
  • Parle\Parser
  • Finalize the grammar rules

Parle\Parser::build

(PECL parle >= 0.5.1)

Parle\Parser::build — Finalize the grammar rules

Descrição

public Parle\Parser::build(): void

Any tokens and grammar rules previously added are finalized. The rule set becomes readonly and the parser is ready to start.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Consume the data for processing

  • « Parle\Parser::build
  • Parle\Parser::dump »
  • PHP Manual
  • Parle\Parser
  • Consume the data for processing

Parle\Parser::consume

(PECL parle >= 0.5.1)

Parle\Parser::consume — Consume the data for processing

Descrição

public Parle\Parser::consume(string $data, Parle\Lexer $lexer): void

Consume the data for parsing.

Parâmetros

data

Data to be parsed.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Valor Retornado

Nenhum valor é retornado.


Dump the grammar

  • « Parle\Parser::consume
  • Parle\Parser::errorInfo »
  • PHP Manual
  • Parle\Parser
  • Dump the grammar

Parle\Parser::dump

(PECL parle >= 0.5.1)

Parle\Parser::dump — Dump the grammar

Descrição

public Parle\Parser::dump(): void

Dump the current grammar to stdout.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Retrieve the error information

  • « Parle\Parser::dump
  • Parle\Parser::left »
  • PHP Manual
  • Parle\Parser
  • Retrieve the error information

Parle\Parser::errorInfo

(PECL parle >= 0.5.1)

Parle\Parser::errorInfo — Retrieve the error information

Descrição

public Parle\Parser::errorInfo(): Parle\ErrorInfo

Retrieve the error information in case Parle\Parser::action() returned the error action.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an instance of Parle\ErrorInfo.


Declare a token with left-associativity

  • « Parle\Parser::errorInfo
  • Parle\Parser::nonassoc »
  • PHP Manual
  • Parle\Parser
  • Declare a token with left-associativity

Parle\Parser::left

(PECL parle >= 0.5.1)

Parle\Parser::left — Declare a token with left-associativity

Descrição

public Parle\Parser::left(string $tok): void

Declare a terminal with left associativity.

Parâmetros

tok

Token name.

Valor Retornado

Nenhum valor é retornado.


Declare a token with no associativity

  • « Parle\Parser::left
  • Parle\Parser::precedence »
  • PHP Manual
  • Parle\Parser
  • Declare a token with no associativity

Parle\Parser::nonassoc

(PECL parle >= 0.5.1)

Parle\Parser::nonassoc — Declare a token with no associativity

Descrição

public Parle\Parser::nonassoc(string $tok): void

Declare a terminal, that cannot appear more than once in the row.

Parâmetros

tok

Token name.

Valor Retornado

Nenhum valor é retornado.


Declare a precedence rule

  • « Parle\Parser::nonassoc
  • Parle\Parser::push »
  • PHP Manual
  • Parle\Parser
  • Declare a precedence rule

Parle\Parser::precedence

(PECL parle >= 0.5.1)

Parle\Parser::precedence — Declare a precedence rule

Descrição

public Parle\Parser::precedence(string $tok): void

Declares a precedence rule for a fictitious terminal symbol. This rule can be later used in the specific grammar rules.

Parâmetros

tok

Token name.

Valor Retornado

Nenhum valor é retornado.


Add a grammar rule

  • « Parle\Parser::precedence
  • Parle\Parser::reset »
  • PHP Manual
  • Parle\Parser
  • Add a grammar rule

Parle\Parser::push

(PECL parle >= 0.5.1)

Parle\Parser::push — Add a grammar rule

Descrição

public Parle\Parser::push(string $name, string $rule): int

Push a grammar rule. The production id returned can be used later in the parsing process to identify the rule matched.

Parâmetros

name

Rule name.

rule

The rule to be added. The syntax is Bison compatible.

Valor Retornado

Returns int representing the rule index.


Reset parser state

  • « Parle\Parser::push
  • Parle\Parser::right »
  • PHP Manual
  • Parle\Parser
  • Reset parser state

Parle\Parser::reset

(PECL parle >= 0.7.1)

Parle\Parser::reset — Reset parser state

Descrição

public Parle\Parser::reset(int $tokenId = ?): void

Reset parser state using the given token id.

Parâmetros

tokenId

Token id.

Valor Retornado

Nenhum valor é retornado.


Declare a token with right-associativity

  • « Parle\Parser::reset
  • Parle\Parser::sigil »
  • PHP Manual
  • Parle\Parser
  • Declare a token with right-associativity

Parle\Parser::right

(PECL parle >= 0.5.1)

Parle\Parser::right — Declare a token with right-associativity

Descrição

public Parle\Parser::right(string $tok): void

Declare a terminal with right associativity.

Parâmetros

tok

Token name.

Valor Retornado

Nenhum valor é retornado.


Retrieve a matching part of a rule

  • « Parle\Parser::right
  • Parle\Parser::sigilCount »
  • PHP Manual
  • Parle\Parser
  • Retrieve a matching part of a rule

Parle\Parser::sigil

(PECL parle >= 0.5.1)

Parle\Parser::sigil — Retrieve a matching part of a rule

Descrição

public Parle\Parser::sigil(int $idx): string

Retrieve a part of the match by a rule. This method is equivalent to the pseudo variable functionality in Bison.

Parâmetros

idx

Match index, zero based.

Valor Retornado

Returns a string with the matched part.


Number of elements in matched rule

  • « Parle\Parser::sigil
  • Parle\Parser::sigilName »
  • PHP Manual
  • Parle\Parser
  • Number of elements in matched rule

Parle\Parser::sigilCount

(PECL parle >= 0.8.4)

Parle\Parser::sigilCount — Number of elements in matched rule

Descrição

public Parle\Parser::sigilCount(): int

Get number of elements in the matched rule.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns int


Retrieve a rule or token name

  • « Parle\Parser::sigilCount
  • Parle\Parser::token »
  • PHP Manual
  • Parle\Parser
  • Retrieve a rule or token name

Parle\Parser::sigilName

(PECL parle >= 0.8.4)

Parle\Parser::sigilName — Retrieve a rule or token name

Descrição

public Parle\Parser::sigilName(int $idx): string

Retrieve a partial rule name or token name corresponding to the sigil index.

Parâmetros

idx

Match index, zero based.

Valor Retornado

Returns a string with the matched part.


Declare a token

  • « Parle\Parser::sigilName
  • Parle\Parser::tokenId »
  • PHP Manual
  • Parle\Parser
  • Declare a token

Parle\Parser::token

(PECL parle >= 0.5.1)

Parle\Parser::token — Declare a token

Descrição

public Parle\Parser::token(string $tok): void

Declare a terminal to be used in the grammar.

Parâmetros

tok

Token name.

Valor Retornado

Nenhum valor é retornado.


Get token id

  • « Parle\Parser::token
  • Parle\Parser::trace »
  • PHP Manual
  • Parle\Parser
  • Get token id

Parle\Parser::tokenId

(PECL parle >= 0.5.1)

Parle\Parser::tokenId — Get token id

Descrição

public Parle\Parser::tokenId(string $tok): int

Retrieve the id of the named token.

Parâmetros

tok

Name of the token as used in Parle\Parser::token().

Valor Retornado

Returns int representing the token id.


Trace the parser operation

  • « Parle\Parser::tokenId
  • Parle\Parser::validate »
  • PHP Manual
  • Parle\Parser
  • Trace the parser operation

Parle\Parser::trace

(PECL parle >= 0.5.1)

Parle\Parser::trace — Trace the parser operation

Descrição

public Parle\Parser::trace(): string

Retrieve the current parser operation description. This can be especially useful for studying the parser and to optimize the grammar.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string with the trace information.


Validate input

  • « Parle\Parser::trace
  • Parle\RParser »
  • PHP Manual
  • Parle\Parser
  • Validate input

Parle\Parser::validate

(PECL parle >= 0.5.1)

Parle\Parser::validate — Validate input

Descrição

public Parle\Parser::validate(string $data, Parle\Lexer $lexer): bool

Validate an input string. The string is parsed internally, thus this method is useful for the quick input validation.

Parâmetros

data

String to be validated.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Valor Retornado

Returns bool witnessing whether the input chimes or not with the defined rules.


The Parle\RParser class

(PECL parle >= 0.7.0)

Introdução

Parser class. Rules can be defined on the fly. Once finalized, a Parle\RLexer instance is required to deliver the token stream.

Resumo da classe

class Parle\RParser {
/* Constantes */
const int ACTION_ERROR = 0;
const int ACTION_SHIFT = 1;
const int ACTION_REDUCE = 2;
const int ACTION_GOTO = 3;
const int ACTION_ACCEPT = 4;
const int ERROR_SYNTAX = 0;
const int ERROR_NON_ASSOCIATIVE = 1;
const int ERROR_UNKNOWN_TOKEN = 2;
/* Propriedades */
public int $action = 0;
public int $reduceId = 0;
/* Métodos */
public advance(): void
public build(): void
public consume(string $data, Parle\RLexer $rlexer): void
public dump(): void
public errorInfo(): Parle\ErrorInfo
public left(string $tok): void
public nonassoc(string $tok): void
public precedence(string $tok): void
public push(string $name, string $rule): int
public reset(int $tokenId = ?): void
public right(string $tok): void
public sigil(int $idx = ?): string
public sigilCount(): int
public sigilName(int $idx): string
public token(string $tok): void
public tokenId(string $tok): int
public trace(): string
public validate(string $data, Parle\RLexer $lexer): bool
}

Constantes pré-definidas

Parle\RParser::ACTION_ERROR

Parle\RParser::ACTION_SHIFT

Parle\RParser::ACTION_REDUCE

Parle\RParser::ACTION_GOTO

Parle\RParser::ACTION_ACCEPT

Parle\RParser::ERROR_SYNTAX

Parle\RParser::ERROR_NON_ASSOCIATIVE

Parle\RParser::ERROR_UNKNOWN_TOKEN

Propriedades

action

Current parser action that matches one of the action class constants, readonly.

reduceId

Grammar rule id just processed in the reduce action. The value corresponds either to a token or to a production id. Readonly.

Índice

  • Parle\RParser::advance — Process next parser rule
  • Parle\RParser::build — Finalize the grammar rules
  • Parle\RParser::consume — Consume the data for processing
  • Parle\RParser::dump — Dump the grammar
  • Parle\RParser::errorInfo — Retrieve the error information
  • Parle\RParser::left — Declare a token with left-associativity
  • Parle\RParser::nonassoc — Declare a token with no associativity
  • Parle\RParser::precedence — Declare a precedence rule
  • Parle\RParser::push — Add a grammar rule
  • Parle\RParser::reset — Reset parser state
  • Parle\RParser::right — Declare a token with right-associativity
  • Parle\RParser::sigil — Retrieve a matching part of a rule
  • Parle\RParser::sigilCount — Number of elements in matched rule
  • Parle\RParser::sigilName — Retrieve a rule or token name
  • Parle\RParser::token — Declare a token
  • Parle\RParser::tokenId — Get token id
  • Parle\RParser::trace — Trace the parser operation
  • Parle\RParser::validate — Validate input


Process next parser rule

  • « Parle\RParser
  • Parle\RParser::build »
  • PHP Manual
  • Parle\RParser
  • Process next parser rule

Parle\RParser::advance

(PECL parle >= 0.7.0)

Parle\RParser::advance — Process next parser rule

Descrição

public Parle\RParser::advance(): void

Prosess next parser rule.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Finalize the grammar rules

  • « Parle\RParser::advance
  • Parle\RParser::consume »
  • PHP Manual
  • Parle\RParser
  • Finalize the grammar rules

Parle\RParser::build

(PECL parle >= 0.7.0)

Parle\RParser::build — Finalize the grammar rules

Descrição

public Parle\RParser::build(): void

Any tokens and grammar rules previously added are finalized. The rule set becomes readonly and the parser is ready to start.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Consume the data for processing

  • « Parle\RParser::build
  • Parle\RParser::dump »
  • PHP Manual
  • Parle\RParser
  • Consume the data for processing

Parle\RParser::consume

(PECL parle >= 0.7.0)

Parle\RParser::consume — Consume the data for processing

Descrição

public Parle\RParser::consume(string $data, Parle\RLexer $rlexer): void

Consume the data for parsing.

Parâmetros

data

Data to be parsed.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Valor Retornado

Nenhum valor é retornado.


Dump the grammar

  • « Parle\RParser::consume
  • Parle\RParser::errorInfo »
  • PHP Manual
  • Parle\RParser
  • Dump the grammar

Parle\RParser::dump

(PECL parle >= 0.7.0)

Parle\RParser::dump — Dump the grammar

Descrição

public Parle\RParser::dump(): void

Dump the current grammar to stdout.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Retrieve the error information

  • « Parle\RParser::dump
  • Parle\RParser::left »
  • PHP Manual
  • Parle\RParser
  • Retrieve the error information

Parle\RParser::errorInfo

(PECL parle >= 0.7.0)

Parle\RParser::errorInfo — Retrieve the error information

Descrição

public Parle\RParser::errorInfo(): Parle\ErrorInfo

Retrieve the error information in case Parle\RParser::action() returned the error action.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an instance of Parle\ErrorInfo.


Declare a token with left-associativity

  • « Parle\RParser::errorInfo
  • Parle\RParser::nonassoc »
  • PHP Manual
  • Parle\RParser
  • Declare a token with left-associativity

Parle\RParser::left

(PECL parle >= 0.7.0)

Parle\RParser::left — Declare a token with left-associativity

Descrição

public Parle\RParser::left(string $tok): void

Declare a terminal with left associativity.

Parâmetros

tok

Token name.

Valor Retornado

Nenhum valor é retornado.


Declare a token with no associativity

  • « Parle\RParser::left
  • Parle\RParser::precedence »
  • PHP Manual
  • Parle\RParser
  • Declare a token with no associativity

Parle\RParser::nonassoc

(PECL parle >= 0.7.0)

Parle\RParser::nonassoc — Declare a token with no associativity

Descrição

public Parle\RParser::nonassoc(string $tok): void

Declare a terminal, that cannot appear more than once in the row.

Parâmetros

tok

Token name.

Valor Retornado

Nenhum valor é retornado.


Declare a precedence rule

  • « Parle\RParser::nonassoc
  • Parle\RParser::push »
  • PHP Manual
  • Parle\RParser
  • Declare a precedence rule

Parle\RParser::precedence

(PECL parle >= 0.7.0)

Parle\RParser::precedence — Declare a precedence rule

Descrição

public Parle\RParser::precedence(string $tok): void

Declares a precedence rule for a fictious terminal symbol. This rule can be later used in the specific grammar rules.

Parâmetros

tok

Token name.

Valor Retornado

Nenhum valor é retornado.


Add a grammar rule

  • « Parle\RParser::precedence
  • Parle\RParser::reset »
  • PHP Manual
  • Parle\RParser
  • Add a grammar rule

Parle\RParser::push

(PECL parle >= 0.7.0)

Parle\RParser::push — Add a grammar rule

Descrição

public Parle\RParser::push(string $name, string $rule): int

Push a grammar rule. The production id returned can be used later in the parsing process to identify the rule matched.

Parâmetros

name

Rule name.

rule

The rule to be added. The syntax is Bison compatible.

Valor Retornado

Returns int representing the rule index.


Reset parser state

  • « Parle\RParser::push
  • Parle\RParser::right »
  • PHP Manual
  • Parle\RParser
  • Reset parser state

Parle\RParser::reset

(PECL parle >= 0.7.1)

Parle\RParser::reset — Reset parser state

Descrição

public Parle\RParser::reset(int $tokenId = ?): void

Reset parser state using the given token id.

Parâmetros

tokenId

Token id.

Valor Retornado

Nenhum valor é retornado.


Declare a token with right-associativity

  • « Parle\RParser::reset
  • Parle\RParser::sigil »
  • PHP Manual
  • Parle\RParser
  • Declare a token with right-associativity

Parle\RParser::right

(PECL parle >= 0.7.0)

Parle\RParser::right — Declare a token with right-associativity

Descrição

public Parle\RParser::right(string $tok): void

Declare a terminal with right associativity.

Parâmetros

tok

Token name.

Valor Retornado

Nenhum valor é retornado.


Retrieve a matching part of a rule

  • « Parle\RParser::right
  • Parle\RParser::sigilCount »
  • PHP Manual
  • Parle\RParser
  • Retrieve a matching part of a rule

Parle\RParser::sigil

(PECL parle >= 0.7.0)

Parle\RParser::sigil — Retrieve a matching part of a rule

Descrição

public Parle\RParser::sigil(int $idx = ?): string

Retrieve a part of the match by a rule. This method is equivalent to the pseudo variable functionality in Bison.

Parâmetros

idx

Match index, zero based.

Valor Retornado

Returns a string with the matched part.


Number of elements in matched rule

  • « Parle\RParser::sigil
  • Parle\RParser::sigilName »
  • PHP Manual
  • Parle\RParser
  • Number of elements in matched rule

Parle\RParser::sigilCount

(PECL parle >= 0.8.4)

Parle\RParser::sigilCount — Number of elements in matched rule

Descrição

public Parle\RParser::sigilCount(): int

Get number of elements in the matched rule.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns int


Retrieve a rule or token name

  • « Parle\RParser::sigilCount
  • Parle\RParser::token »
  • PHP Manual
  • Parle\RParser
  • Retrieve a rule or token name

Parle\RParser::sigilName

(PECL parle >= 0.8.4)

Parle\RParser::sigilName — Retrieve a rule or token name

Descrição

public Parle\RParser::sigilName(int $idx): string

Retrieve a partial rule name or token name corresponding to the sigil index.

Parâmetros

idx

Match index, zero based.

Valor Retornado

Returns a string with the matched part.


Declare a token

  • « Parle\RParser::sigilName
  • Parle\RParser::tokenId »
  • PHP Manual
  • Parle\RParser
  • Declare a token

Parle\RParser::token

(PECL parle >= 0.7.0)

Parle\RParser::token — Declare a token

Descrição

public Parle\RParser::token(string $tok): void

Declare a terminal to be used in the grammar.

Parâmetros

tok

Token name.

Valor Retornado

Nenhum valor é retornado.


Get token id

  • « Parle\RParser::token
  • Parle\RParser::trace »
  • PHP Manual
  • Parle\RParser
  • Get token id

Parle\RParser::tokenId

(PECL parle >= 0.7.0)

Parle\RParser::tokenId — Get token id

Descrição

public Parle\RParser::tokenId(string $tok): int

Retrieve the id of the named token.

Parâmetros

tok

Name of the token as used in Parle\RParser::token().

Valor Retornado

Returns int representing the token id.


Trace the parser operation

  • « Parle\RParser::tokenId
  • Parle\RParser::validate »
  • PHP Manual
  • Parle\RParser
  • Trace the parser operation

Parle\RParser::trace

(PECL parle >= 0.7.0)

Parle\RParser::trace — Trace the parser operation

Descrição

public Parle\RParser::trace(): string

Retrieve the current parser operation description. This can be especially useful to study the parser and to optimize the grammar.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string with the trace information.


Validate input

  • « Parle\RParser::trace
  • Parle\Stack »
  • PHP Manual
  • Parle\RParser
  • Validate input

Parle\RParser::validate

(PECL parle >= 0.7.0)

Parle\RParser::validate — Validate input

Descrição

public Parle\RParser::validate(string $data, Parle\RLexer $lexer): bool

Validate an input string. The string is parsed internally, thus this method is useful for the quick input validation.

Parâmetros

data

String to be validated.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Valor Retornado

Returns bool whitnessing whether the input chimes or not with the defined rules.


The Parle\Stack class

(PECL parle >= 0.7.0)

Introdução

Parle\Stack is a LIFO stack. The elements are inserted and removed only from one end.

Resumo da classe

class Parle\Stack {
/* Propriedades */
public bool $empty = true;
public int $size = 0;
public mixed $top;
/* Métodos */
public pop(): void
public push(mixed $item): void
}

Propriedades

empty

Whether the stack is empty, readonly.

size

Stack size, readonly.

top

Element on the top of the stack.

Índice

  • Parle\Stack::pop — Pop an item from the stack
  • Parle\Stack::push — Push an item into the stack


Pop an item from the stack

  • « Parle\Stack
  • Parle\Stack::push »
  • PHP Manual
  • Parle\Stack
  • Pop an item from the stack

Parle\Stack::pop

(PECL parle >= 0.5.1)

Parle\Stack::pop — Pop an item from the stack

Descrição

public Parle\Stack::pop(): void

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.


Push an item into the stack

  • « Parle\Stack::pop
  • Parle\Token »
  • PHP Manual
  • Parle\Stack
  • Push an item into the stack

Parle\Stack::push

(PECL parle >= 0.5.1)

Parle\Stack::push — Push an item into the stack

Descrição

public Parle\Stack::push(mixed $item): void

Parâmetros

item

Variable to be pushed.

Valor Retornado

Nenhum valor é retornado.


The Parle\Token class

(PECL parle >= 0.5.2)

Introdução

This class represents a token. Lexer returns instances of this class.

Resumo da classe

class Parle\Token {
/* Constantes */
const int EOI = 0;
const int UNKNOWN = -1;
const int SKIP = -2;
/* Propriedades */
public int $id;
public string $value;
/* Métodos */
}

Propriedades

id

Token id.

value

Token value.

Constantes pré-definidas

Parle\Token::EOI

End of input token id.

Parle\Token::UNKNOWN

Unknown token id.

Parle\Token::SKIP

Skip token id.


The Parle\ErrorInfo class

(PECL parle >= 0.5.2)

Introdução

The class represents detailed error information as supplied by Parle\Parser::errorInfo()

Resumo da classe

class Parle\ErrorInfo {
/* Propriedades */
public int $id;
public int $position;
public mixed $token;
/* Métodos */
}

Propriedades

id

Error id.

position

Position in the input, where the error occurred.

token

If applicable - the Parle\Token related to the error, otherwise null.


The Parle\LexerException class

(PECL parle >= 0.5.1)

Introdução

Resumo da classe

class Parle\LexerException extends Exception implements Throwable {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The Parle\ParserException class

(PECL parle >= 0.5.1)

Introdução

Resumo da classe

class Parle\ParserException extends Exception implements Throwable {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Expressões Regulares (Compatíveis com Perl)

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Padrões PCRE
    • PCRE regex syntax — Pattern Syntax
    • Possible modifiers in regex patterns — Pattern Modifiers
    • Differences From Perl — Perl Differences
  • Funções da PCRE
    • preg_filter — Perform a regular expression search and replace
    • preg_grep — Return array entries that match the pattern
    • preg_last_error_msg — Returns the error message of the last PCRE regex execution
    • preg_last_error — Retorna o código de erro da última expressão regular PCRE executada
    • preg_match_all — Perform a global regular expression match
    • preg_match — Perform a regular expression match
    • preg_quote — Quote regular expression characters
    • preg_replace_callback_array — Perform a regular expression search and replace using callbacks
    • preg_replace_callback — Executa uma busca por expressão regular e substitui usando uma chamada de retorno
    • preg_replace — Realiza uma pesquisa por uma expressão regular e substitui
    • preg_split — Split string by a regular expression


Introdução

A sintaxe para padrões usados nestas funções assemelham-se com Perl. A expressão precisa estar incluída entre delimitadores, uma barra (/), por exemplo. Qualquer caractere pode ser usado para delimitar desde que não seja alfanumérico ou backslash (\). Se o caractere delimitador tem de ser usado na própria expressão, ele necessitará de escape. Desde o PHP 4.0.4, você pode também usar delimitadores Perl-style (), {}, [], e <>. Veja Sintaxe do Padrão para mais detalhes.

No final do delimitador pode ser seguido por vários modificadores que afetam a combinação. Veja Modificadores do Padrão.

Nota:

Esta extensão mantém uma global por thread cache da expressão regular compilada (até 4096).

Aviso

Você precisa estar ciente de algumas limitações da PCRE. Leia » http://www.pcre.org/pcre.txt para mais informações.

A biblioteca PCRE fornece um conjunto de funções que implementam pattern matching de expressões regulares usando a mesma sintaxe e semântica do Perl 5, com apenas algumas diferenças (veja abaixo). A atual implementação corresponde ao Perl 5.005.


Instalação

The PCRE extension is a core PHP extension, so it is always enabled. By default, this extension is compiled using the bundled PCRE library. Alternatively, an external PCRE library can be used by passing in the --with-pcre-regex=DIR configuration option where DIR is the location of PCRE's include and library files. It is recommended to use PCRE 8.10 or newer; as of PHP 7.3.0, PCRE2 is required.

PCRE's just-in-time compilation is supported by default, which can be disabled with the --without-pcre-jit configuration option as of PHP 7.0.12.

A versão do PHP para Windows tem suporte nativo para esta extensão. Nenhuma extensão adicional precisa ser carregada para usar essas funções.

PCRE is an active project and as it changes so does the PHP functionality that relies upon it. It is possible that certain parts of the PHP documentation is outdated, in that it may not cover the newest features that PCRE provides. For a list of changes, see the » PCRE library changelog and also the following bundled PCRE history:

Upgrade history of the bundled PCRE library
PHP Versão | Updated PCRE Versão | Notes
8.2.0 | 10.40 |
8.1.0 | 10.39 |
7.4.12, 8.0.0 | 10.35 |
7.4.6 | 10.34 |
7.4.0 | 10.33 |
7.3.0 | 10.32 |
7.2.0 | 8.41 |
7.0.3 | 8.38 | See CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394
7.0.0 | 8.37 | See CVE-2015-2325, CVE-2015-2326


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração da PCRE
Nome | Padrão | Modificável | Registro de Alterações
pcre.backtrack_limit | "1000000" | INI_ALL |
pcre.recursion_limit | "100000" | INI_ALL |
pcre.jit | "1" | INI_ALL |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

pcre.backtrack_limit int

Limite de backtracking da PCRE. Padrão em 100000 para PHP < 5.3.7.

pcre.recursion_limit int

Limite de recursões da PCRE. Nota que se você definir este valor para um número bem alto poderá consumir toda a pilha de processo disponível e eventualmente travar o PHP (devido a alcançar o limite do tamanho da pilha imposto pelo Sistema Operacional).

pcre.jit bool

Configura se a compilação just-in-time do PCRE será utilizada.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

PREG constantes
Constantes | Descrição | Desde
PREG_PATTERN_ORDER (int) | Ordena os resultados de modo que $matches[0] seja um array de todas as combinações do padrão. $matches[1] é um array de strings combinadas pelo primeiro subpadrão, e assim por diante. Esta flag é somente usada com preg_match_all(). |
PREG_SET_ORDER (int) | Ordena os resultados de modo que $matches[0] seja um array do primeiro conjunto de combinações, $matches[1] é um array do segundo conjunto de combinações, e assim por diante. Esta flag é somente usada com preg_match_all(). |
PREG_OFFSET_CAPTURE (int) | Veja a descrição de PREG_SPLIT_OFFSET_CAPTURE. |
PREG_SPLIT_NO_EMPTY (int) | Esta flag configura preg_split() para retornar apenas pedaços não vazios. |
PREG_SPLIT_DELIM_CAPTURE (int) | Esta flag congigura preg_split() para capturar expressões entre parênteses em padrões delimitados. |
PREG_SPLIT_OFFSET_CAPTURE (int) | Esta flag configura que em cada acerto, o offset da string anexante também seja retornado. Observe que isto modifica os valores retornados em array, onde cada elemento é um array associativo consistido de strings encontradas no offset 0 e o offset da string objeto estará no offset 1. Esta flag somente é utilizada por preg_split(). |
PREG_UNMATCHED_AS_NULL (int) | Esta flag informa a preg_match() e preg_match_all() para incluir subpadrões não combinados em $matches como null. Sem essa flag, subpadrões sem combinação são reportados como strings vazias, como se fosse combinações vazias. Informar essa flag permite diferenciar entre esses dois casos. | 7.2.0
PREG_NO_ERROR (int) | Retornado pela preg_last_error() se não haver erros. | 5.2.0
PREG_INTERNAL_ERROR (int) | Retornado pela preg_last_error() se houve um erro interno na PCRE. | 5.2.0
PREG_BACKTRACK_LIMIT_ERROR (int) | Retornado pela preg_last_error() se backtrack limit foi esgotado. | 5.2.0
PREG_RECURSION_LIMIT_ERROR (int) | Retornado pela preg_last_error() se recursion limit foi esgotado. | 5.2.0
PREG_BAD_UTF8_ERROR (int) | Retornado pela preg_last_error() se o último erro foi causado por informação deformada em UTF-8 (somente quando usado a regex em modo UTF-8). | 5.2.0
PREG_BAD_UTF8_OFFSET_ERROR (int) | Retornado pela preg_last_error() se o offset não correspondeu ao início de um válido code point UTF-8 (somente quando executando uma regex em modo UTF-8). | 5.3.0
PREG_JIT_STACKLIMIT_ERROR (int) | Retornado por preg_last_error() se a última função PCRE falhou por falta de JIT stack space. | 7.0.0
PCRE_VERSION (string) | Versão da PCRE e data de liberação (e.g. "7.0 18-Dec-2006"). | 5.2.4


Exemplos

Exemplo #1 Exemplos de padrões válidos

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

Exemplo #2 Exemplos de padrões inválidos

  • /href='(.*)' - faltando o delimitador final
  • /\w+\s*\w+/J - modificador 'J' desconhecido
  • 1-\d3-\d3-\d4| - faltando delimitador inicial


Padrões PCRE

Índice

  • PCRE regex syntax
  • Possible modifiers in regex patterns
  • Differences From Perl


Pattern Syntax

Índice

  • Introduction
  • Delimiters
  • Meta-characters
  • Escape sequences
  • Unicode character properties
  • Anchors
  • Dot
  • Character classes
  • Alternation
  • Internal option setting
  • Subpatterns
  • Repetition
  • Back references
  • Assertions
  • Once-only subpatterns
  • Conditional subpatterns
  • Comments
  • Recursive patterns
  • Performance


Introduction

The syntax and semantics of the regular expressions supported by PCRE are described below. Regular expressions are also described in the Perl documentation and in a number of other books, some of which have copious examples. Jeffrey Friedl's "Mastering Regular Expressions", published by O'Reilly (ISBN 1-56592-257-3), covers them in great detail. The description here is intended as reference documentation.

A regular expression is a pattern that is matched against a subject string from left to right. Most characters stand for themselves in a pattern, and match the corresponding characters in the subject. As a trivial example, the pattern The quick brown fox matches a portion of a subject string that is identical to itself.


Delimiters

When using the PCRE functions, it is required that the pattern is enclosed by delimiters. A delimiter can be any non-alphanumeric, non-backslash, non-whitespace character. Leading whitespace before a valid delimiter is silently ignored.

Often used delimiters are forward slashes (/), hash signs (#) and tildes (~). The following are all examples of valid delimited patterns.

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

It is also possible to use bracket style delimiters where the opening and closing brackets are the starting and ending delimiter, respectively. (), {}, [] and <> are all valid bracket style delimiter pairs.

(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>
Bracket style delimiters do not need to be escaped when they are used as meta characters within the pattern, but as with other delimiters they must be escaped when they are used as literal characters.

If the delimiter needs to be matched inside the pattern it must be escaped using a backslash. If the delimiter appears often inside the pattern, it is a good idea to choose another delimiter in order to increase readability.

/http:\/\//
#http://#
The preg_quote() function may be used to escape a string for injection into a pattern and its optional second parameter may be used to specify the delimiter to be escaped.

You may add pattern modifiers after the ending delimiter. The following is an example of case-insensitive matching:

#[a-z]#i


Meta-characters

The power of regular expressions comes from the ability to include alternatives and repetitions in the pattern. These are encoded in the pattern by the use of meta-characters, which do not stand for themselves but instead are interpreted in some special way.

There are two different sets of meta-characters: those that are recognized anywhere in the pattern except within square brackets, and those that are recognized in square brackets. Outside square brackets, the meta-characters are as follows:

Meta-characters outside square brackets
Meta-character | Description
\ | general escape character with several uses
^ | assert start of subject (or line, in multiline mode)
$ | assert end of subject or before a terminating newline (or end of line, in multiline mode)
. | match any character except newline (by default)
[ | start character class definition
] | end character class definition
| | start of alternative branch
( | start subpattern
) | end subpattern
? | extends the meaning of (, also 0 or 1 quantifier, also makes greedy quantifiers lazy (see repetition)
* | 0 or more quantifier
+ | 1 or more quantifier
{ | start min/max quantifier
} | end min/max quantifier
Part of a pattern that is in square brackets is called a character class. In a character class the only meta-characters are:
Meta-characters inside square brackets (character classes)
Meta-character | Description
\ | general escape character
^ | negate the class, but only if the first character
- | indicates character range
The following sections describe the use of each of the meta-characters.


Escape sequences

The backslash character has several uses. Firstly, if it is followed by a non-alphanumeric character, it takes away any special meaning that character may have. This use of backslash as an escape character applies both inside and outside character classes.

For example, if you want to match a "*" character, you write "\*" in the pattern. This applies whether or not the following character would otherwise be interpreted as a meta-character, so it is always safe to precede a non-alphanumeric with "\" to specify that it stands for itself. In particular, if you want to match a backslash, you write "\\".

Nota:

Single and double quoted PHP strings have special meaning of backslash. Thus if \ has to be matched with a regular expression \\, then "\\\\" or '\\\\' must be used in PHP code.

If a pattern is compiled with the PCRE_EXTENDED option, whitespace in the pattern (other than in a character class) and characters between a "#" outside a character class and the next newline character are ignored. An escaping backslash can be used to include a whitespace or "#" character as part of the pattern.

A second use of backslash provides a way of encoding non-printing characters in patterns in a visible manner. There is no restriction on the appearance of non-printing characters, apart from the binary zero that terminates a pattern, but when a pattern is being prepared by text editing, it is usually easier to use one of the following escape sequences than the binary character it represents:

\a
alarm, that is, the BEL character (hex 07)
\cx
"control-x", where x is any character
\e
escape (hex 1B)
\f
formfeed (hex 0C)
\n
newline (hex 0A)
\p{xx}
a character with the xx property, see unicode properties for more info
\P{xx}
a character without the xx property, see unicode properties for more info
\r
carriage return (hex 0D)
\R
line break: matches \n, \r and \r\n
\t
tab (hex 09)
\xhh
character with hex code hh
\ddd
character with octal code ddd, or backreference

The precise effect of "\cx" is as follows: if "x" is a lower case letter, it is converted to upper case. Then bit 6 of the character (hex 40) is inverted. Thus "\cz" becomes hex 1A, but "\c{" becomes hex 3B, while "\c;" becomes hex 7B.

After "\x", up to two hexadecimal digits are read (letters can be in upper or lower case). In UTF-8 mode, "\x{...}" is allowed, where the contents of the braces is a string of hexadecimal digits. It is interpreted as a UTF-8 character whose code number is the given hexadecimal number. The original hexadecimal escape sequence, \xhh, matches a two-byte UTF-8 character if the value is greater than 127.

After "\0" up to two further octal digits are read. In both cases, if there are fewer than two digits, just those that are present are used. Thus the sequence "\0\x\07" specifies two binary zeros followed by a BEL character. Make sure you supply two digits after the initial zero if the character that follows is itself an octal digit.

The handling of a backslash followed by a digit other than 0 is complicated. Outside a character class, PCRE reads it and any following digits as a decimal number. If the number is less than 10, or if there have been at least that many previous capturing left parentheses in the expression, the entire sequence is taken as a back reference. A description of how this works is given later, following the discussion of parenthesized subpatterns.

Inside a character class, or if the decimal number is greater than 9 and there have not been that many capturing subpatterns, PCRE re-reads up to three octal digits following the backslash, and generates a single byte from the least significant 8 bits of the value. Any subsequent digits stand for themselves. For example:

\040
is another way of writing a space
\40
is the same, provided there are fewer than 40 previous capturing subpatterns
\7
is always a back reference
\11
might be a back reference, or another way of writing a tab
\011
is always a tab
\0113
is a tab followed by the character "3"
\113
is the character with octal code 113 (since there can be no more than 99 back references)
\377
is a byte consisting entirely of 1 bits
\81
is either a back reference, or a binary zero followed by the two characters "8" and "1"

Note that octal values of 100 or greater must not be introduced by a leading zero, because no more than three octal digits are ever read.

All the sequences that define a single byte value can be used both inside and outside character classes. In addition, inside a character class, the sequence "\b" is interpreted as the backspace character (hex 08). Outside a character class it has a different meaning (see below).

The third use of backslash is for specifying generic character types:

\d
any decimal digit
\D
any character that is not a decimal digit
\h
any horizontal whitespace character
\H
any character that is not a horizontal whitespace character
\s
any whitespace character
\S
any character that is not a whitespace character
\v
any vertical whitespace character
\V
any character that is not a vertical whitespace character
\w
any "word" character
\W
any "non-word" character

Each pair of escape sequences partitions the complete set of characters into two disjoint sets. Any given character matches one, and only one, of each pair.

The "whitespace" characters are HT (9), LF (10), FF (12), CR (13), and space (32). However, if locale-specific matching is happening, characters with code points in the range 128-255 may also be considered as whitespace characters, for instance, NBSP (A0).

A "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word". The definition of letters and digits is controlled by PCRE's character tables, and may vary if locale-specific matching is taking place. For example, in the "fr" (French) locale, some character codes greater than 128 are used for accented letters, and these are matched by \w.

These character type sequences can appear both inside and outside character classes. They each match one character of the appropriate type. If the current matching point is at the end of the subject string, all of them fail, since there is no character to match.

The fourth use of backslash is for certain simple assertions. An assertion specifies a condition that has to be met at a particular point in a match, without consuming any characters from the subject string. The use of subpatterns for more complicated assertions is described below. The backslashed assertions are

\b
word boundary
\B
not a word boundary
\A
start of subject (independent of multiline mode)
\Z
end of subject or newline at end (independent of multiline mode)
\z
end of subject (independent of multiline mode)
\G
first matching position in subject

These assertions may not appear in character classes (but note that "\b" has a different meaning, namely the backspace character, inside a character class).

A word boundary is a position in the subject string where the current character and the previous character do not both match \w or \W (i.e. one matches \w and the other matches \W), or the start or end of the string if the first or last character matches \w, respectively.

The \A, \Z, and \z assertions differ from the traditional circumflex and dollar (described in anchors ) in that they only ever match at the very start and end of the subject string, whatever options are set. They are not affected by the PCRE_MULTILINE or PCRE_DOLLAR_ENDONLY options. The difference between \Z and \z is that \Z matches before a newline that is the last character of the string as well as at the end of the string, whereas \z matches only at the end.

The \G assertion is true only when the current matching position is at the start point of the match, as specified by the offset argument of preg_match(). It differs from \A when the value of offset is non-zero.

\Q and \E can be used to ignore regexp metacharacters in the pattern. For example: \w+\Q.$.\E$ will match one or more word characters, followed by literals .$. and anchored at the end of the string. Note that this does not change the behavior of delimiters; for instance the pattern #\Q#\E#$ is not valid, because the second # marks the end of the pattern, and the \E# is interpreted as invalid modifiers.

\K can be used to reset the match start. For example, the pattern foo\Kbar matches "foobar", but reports that it has matched "bar". The use of \K does not interfere with the setting of captured substrings. For example, when the pattern (foo)\Kbar matches "foobar", the first substring is still set to "foo".


Unicode character properties

Since 5.1.0, three additional escape sequences to match generic character types are available when UTF-8 mode is selected. They are:

\p{xx}
a character with the xx property
\P{xx}
a character without the xx property
\X
an extended Unicode sequence

The property names represented by xx above are limited to the Unicode general category properties. Each character has exactly one such property, specified by a two-letter abbreviation. For compatibility with Perl, negation can be specified by including a circumflex between the opening brace and the property name. For example, \p{^Lu} is the same as \P{Lu}.

If only one letter is specified with \p or \P, it includes all the properties that start with that letter. In this case, in the absence of negation, the curly brackets in the escape sequence are optional; these two examples have the same effect:

\p{L}
\pL

Supported property codes
Property | Matches | Notes
C | Other |
Cc | Control |
Cf | Format |
Cn | Unassigned |
Co | Private use |
Cs | Surrogate |
L | Letter | Includes the following properties: Ll, Lm, Lo, Lt and Lu.
Ll | Lower case letter |
Lm | Modifier letter |
Lo | Other letter |
Lt | Title case letter |
Lu | Upper case letter |
M | Mark |
Mc | Spacing mark |
Me | Enclosing mark |
Mn | Non-spacing mark |
N | Number |
Nd | Decimal number |
Nl | Letter number |
No | Other number |
P | Punctuation |
Pc | Connector punctuation |
Pd | Dash punctuation |
Pe | Close punctuation |
Pf | Final punctuation |
Pi | Initial punctuation |
Po | Other punctuation |
Ps | Open punctuation |
S | Symbol |
Sc | Currency symbol |
Sk | Modifier symbol |
Sm | Mathematical symbol |
So | Other symbol |
Z | Separator |
Zl | Line separator |
Zp | Paragraph separator |
Zs | Space separator |

Extended properties such as InMusicalSymbols are not supported by PCRE.

Specifying case-insensitive (caseless) matching does not affect these escape sequences. For example, \p{Lu} always matches only upper case letters.

Sets of Unicode characters are defined as belonging to certain scripts. A character from one of these sets can be matched using a script name. For example:

  • \p{Greek}
  • \P{Han}

Those that are not part of an identified script are lumped together as Common. The current list of scripts is:

Supported scripts
Arabic | Armenian | Avestan | Balinese | Bamum
Batak | Bengali | Bopomofo | Brahmi | Braille
Buginese | Buhid | Canadian_Aboriginal | Carian | Chakma
Cham | Cherokee | Common | Coptic | Cuneiform
Cypriot | Cyrillic | Deseret | Devanagari | Egyptian_Hieroglyphs
Ethiopic | Georgian | Glagolitic | Gothic | Greek
Gujarati | Gurmukhi | Han | Hangul | Hanunoo
Hebrew | Hiragana | Imperial_Aramaic | Inherited | Inscriptional_Pahlavi
Inscriptional_Parthian | Javanese | Kaithi | Kannada | Katakana
Kayah_Li | Kharoshthi | Khmer | Lao | Latin
Lepcha | Limbu | Linear_B | Lisu | Lycian
Lydian | Malayalam | Mandaic | Meetei_Mayek | Meroitic_Cursive
Meroitic_Hieroglyphs | Miao | Mongolian | Myanmar | New_Tai_Lue
Nko | Ogham | Old_Italic | Old_Persian | Old_South_Arabian
Old_Turkic | Ol_Chiki | Oriya | Osmanya | Phags_Pa
Phoenician | Rejang | Runic | Samaritan | Saurashtra
Sharada | Shavian | Sinhala | Sora_Sompeng | Sundanese
Syloti_Nagri | Syriac | Tagalog | Tagbanwa | Tai_Le
Tai_Tham | Tai_Viet | Takri | Tamil | Telugu
Thaana | Thai | Tibetan | Tifinagh | Ugaritic
Vai | Yi |  |  |

The \X escape matches a Unicode extended grapheme cluster. An extended grapheme cluster is one or more Unicode characters that combine to form a single glyph. In effect, this can be thought of as the Unicode equivalent of . as it will match one composed character, regardless of how many individual characters are actually used to render it.

In versions of PCRE older than 8.32 (which corresponds to PHP versions before 5.4.14 when using the bundled PCRE library), \X is equivalent to (?>\PM\pM*). That is, it matches a character without the "mark" property, followed by zero or more characters with the "mark" property, and treats the sequence as an atomic group (see below). Characters with the "mark" property are typically accents that affect the preceding character.

Matching characters by Unicode property is not fast, because PCRE has to search a structure that contains data for over fifteen thousand characters. That is why the traditional escape sequences such as \d and \w do not use Unicode properties in PCRE.


Anchors

Outside a character class, in the default matching mode, the circumflex character (^) is an assertion which is true only if the current matching point is at the start of the subject string. Inside a character class, circumflex (^) has an entirely different meaning (see below).

Circumflex (^) need not be the first character of the pattern if a number of alternatives are involved, but it should be the first thing in each alternative in which it appears if the pattern is ever to match that branch. If all possible alternatives start with a circumflex (^), that is, if the pattern is constrained to match only at the start of the subject, it is said to be an "anchored" pattern. (There are also other constructs that can cause a pattern to be anchored.)

A dollar character ($) is an assertion which is true only if the current matching point is at the end of the subject string, or immediately before a newline character that is the last character in the string (by default). Dollar ($) need not be the last character of the pattern if a number of alternatives are involved, but it should be the last item in any branch in which it appears. Dollar has no special meaning in a character class.

The meaning of dollar can be changed so that it matches only at the very end of the string, by setting the PCRE_DOLLAR_ENDONLY option at compile or matching time. This does not affect the \Z assertion.

The meanings of the circumflex and dollar characters are changed if the PCRE_MULTILINE option is set. When this is the case, they match immediately after and immediately before an internal "\n" character, respectively, in addition to matching at the start and end of the subject string. For example, the pattern /^abc$/ matches the subject string "def\nabc" in multiline mode, but not otherwise. Consequently, patterns that are anchored in single line mode because all branches start with "^" are not anchored in multiline mode. The PCRE_DOLLAR_ENDONLY option is ignored if PCRE_MULTILINE is set.

Note that the sequences \A, \Z, and \z can be used to match the start and end of the subject in both modes, and if all branches of a pattern start with \A is it always anchored, whether PCRE_MULTILINE is set or not.


Dot

Outside a character class, a dot in the pattern matches any one character in the subject, including a non-printing character, but not (by default) newline. If the PCRE_DOTALL option is set, then dots match newlines as well. The handling of dot is entirely independent of the handling of circumflex and dollar, the only relationship being that they both involve newline characters. Dot has no special meaning in a character class.

\C can be used to match single byte. It makes sense in UTF-8 mode where full stop matches the whole character which can consist of multiple bytes.


Character classes

An opening square bracket introduces a character class, terminated by a closing square bracket. A closing square bracket on its own is not special. If a closing square bracket is required as a member of the class, it should be the first data character in the class (after an initial circumflex, if present) or escaped with a backslash.

A character class matches a single character in the subject; the character must be in the set of characters defined by the class, unless the first character in the class is a circumflex, in which case the subject character must not be in the set defined by the class. If a circumflex is actually required as a member of the class, ensure it is not the first character, or escape it with a backslash.

For example, the character class [aeiou] matches any lower case vowel, while [^aeiou] matches any character that is not a lower case vowel. Note that a circumflex is just a convenient notation for specifying the characters which are in the class by enumerating those that are not. It is not an assertion: it still consumes a character from the subject string, and fails if the current pointer is at the end of the string.

When case-insensitive (caseless) matching is set, any letters in a class represent both their upper case and lower case versions, so for example, an insensitive [aeiou] matches "A" as well as "a", and an insensitive [^aeiou] does not match "A", whereas a sensitive (caseful) version would.

The newline character is never treated in any special way in character classes, whatever the setting of the PCRE_DOTALL or PCRE_MULTILINE options is. A class such as [^a] will always match a newline.

The minus (hyphen) character can be used to specify a range of characters in a character class. For example, [d-m] matches any letter between d and m, inclusive. If a minus character is required in a class, it must be escaped with a backslash or appear in a position where it cannot be interpreted as indicating a range, typically as the first or last character in the class.

It is not possible to have the literal character "]" as the end character of a range. A pattern such as [W-]46] is interpreted as a class of two characters ("W" and "-") followed by a literal string "46]", so it would match "W46]" or "-46]". However, if the "]" is escaped with a backslash it is interpreted as the end of range, so [W-\]46] is interpreted as a single class containing a range followed by two separate characters. The octal or hexadecimal representation of "]" can also be used to end a range.

Ranges operate in ASCII collating sequence. They can also be used for characters specified numerically, for example [\000-\037]. If a range that includes letters is used when case-insensitive (caseless) matching is set, it matches the letters in either case. For example, [W-c] is equivalent to [][\^_`wxyzabc], matched case-insensitively, and if character tables for the "fr" locale are in use, [\xc8-\xcb] matches accented E characters in both cases.

The character types \d, \D, \s, \S, \w, and \W may also appear in a character class, and add the characters that they match to the class. For example, [\dABCDEF] matches any hexadecimal digit. A circumflex can conveniently be used with the upper case character types to specify a more restricted set of characters than the matching lower case type. For example, the class [^\W_] matches any letter or digit, but not underscore.

All non-alphanumeric characters other than \, -, ^ (at the start) and the terminating ] are non-special in character classes, but it does no harm if they are escaped. The pattern terminator is always special and must be escaped when used within an expression.

Perl supports the POSIX notation for character classes. This uses names enclosed by [: and :] within the enclosing square brackets. PCRE also supports this notation. For example, [01[:alpha:]%] matches "0", "1", any alphabetic character, or "%". The supported class names are:

Character classes
alnum | letters and digits
alpha | letters
ascii | character codes 0 - 127
blank | space or tab only
cntrl | control characters
digit | decimal digits (same as \d)
graph | printing characters, excluding space
lower | lower case letters
print | printing characters, including space
punct | printing characters, excluding letters and digits
space | white space (not quite the same as \s)
upper | upper case letters
word | "word" characters (same as \w)
xdigit | hexadecimal digits
The space characters are HT (9), LF (10), VT (11), FF (12), CR (13), and space (32). Notice that this list includes the VT character (code 11). This makes "space" different to \s, which does not include VT (for Perl compatibility).

The name word is a Perl extension, and blank is a GNU extension from Perl 5.8. Another Perl extension is negation, which is indicated by a ^ character after the colon. For example, [12[:^digit:]] matches "1", "2", or any non-digit.

In UTF-8 mode, characters with values greater than 128 do not match any of the POSIX character classes. As of libpcre 8.10 some character classes are changed to use Unicode character properties, in which case the mentioned restriction does not apply. Refer to the » PCRE(3) manual for details.

Unicode character properties can appear inside a character class. They can not be part of a range. The minus (hyphen) character after a Unicode character class will match literally. Trying to end a range with a Unicode character property will result in a warning.


Alternation

Vertical bar characters are used to separate alternative patterns. For example, the pattern gilbert|sullivan matches either "gilbert" or "sullivan". Any number of alternatives may appear, and an empty alternative is permitted (matching the empty string). The matching process tries each alternative in turn, from left to right, and the first one that succeeds is used. If the alternatives are within a subpattern (defined below), "succeeds" means matching the rest of the main pattern as well as the alternative in the subpattern.


Internal option setting

The settings of PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, PCRE_UNGREEDY, PCRE_EXTRA, PCRE_EXTENDED and PCRE_DUPNAMES can be changed from within the pattern by a sequence of Perl option letters enclosed between "(?" and ")". The option letters are:

Internal option letters
i | for PCRE_CASELESS
m | for PCRE_MULTILINE
s | for PCRE_DOTALL
x | for PCRE_EXTENDED
U | for PCRE_UNGREEDY
X | for PCRE_EXTRA (no longer supported as of PHP 7.3.0)
J | for PCRE_INFO_JCHANGED

For example, (?im) sets case-insensitive (caseless), multiline matching. It is also possible to unset these options by preceding the letter with a hyphen, and a combined setting and unsetting such as (?im-sx), which sets PCRE_CASELESS and PCRE_MULTILINE while unsetting PCRE_DOTALL and PCRE_EXTENDED, is also permitted. If a letter appears both before and after the hyphen, the option is unset.

When an option change occurs at top level (that is, not inside subpattern parentheses), the change applies to the remainder of the pattern that follows. So /ab(?i)c/ matches only "abc" and "abC".

If an option change occurs inside a subpattern, the effect is different. This is a change of behaviour in Perl 5.005. An option change inside a subpattern affects only that part of the subpattern that follows it, so (a(?i)b)c matches "abc" and "aBc" and no other strings (assuming PCRE_CASELESS is not used). By this means, options can be made to have different settings in different parts of the pattern. Any changes made in one alternative do carry on into subsequent branches within the same subpattern. For example, (a(?i)b|c) matches "ab", "aB", "c", and "C", even though when matching "C" the first branch is abandoned before the option setting. This is because the effects of option settings happen at compile time. There would be some very weird behaviour otherwise.

The PCRE-specific options PCRE_UNGREEDY and PCRE_EXTRA can be changed in the same way as the Perl-compatible options by using the characters U and X respectively. The (?X) flag setting is special in that it must always occur earlier in the pattern than any of the additional features it turns on, even when it is at top level. It is best put at the start.


Subpatterns

Subpatterns are delimited by parentheses (round brackets), which can be nested. Marking part of a pattern as a subpattern does two things:

  1. It localizes a set of alternatives. For example, the pattern cat(aract|erpillar|) matches one of the words "cat", "cataract", or "caterpillar". Without the parentheses, it would match "cataract", "erpillar" or the empty string.

  2. It sets up the subpattern as a capturing subpattern (as defined above). When the whole pattern matches, that portion of the subject string that matched the subpattern is passed back to the caller via the ovector argument of pcre_exec(). Opening parentheses are counted from left to right (starting from 1) to obtain the numbers of the capturing subpatterns.

For example, if the string "the red king" is matched against the pattern the ((red|white) (king|queen)) the captured substrings are "red king", "red", and "king", and are numbered 1, 2, and 3.

The fact that plain parentheses fulfill two functions is not always helpful. There are often times when a grouping subpattern is required without a capturing requirement. If an opening parenthesis is followed by "?:", the subpattern does not do any capturing, and is not counted when computing the number of any subsequent capturing subpatterns. For example, if the string "the white queen" is matched against the pattern the ((?:red|white) (king|queen)) the captured substrings are "white queen" and "queen", and are numbered 1 and 2. The maximum number of captured substrings is 65535. It may not be possible to compile such large patterns, however, depending on the configuration options of libpcre.

As a convenient shorthand, if any option settings are required at the start of a non-capturing subpattern, the option letters may appear between the "?" and the ":". Thus the two patterns

(?i:saturday|sunday)
(?:(?i)saturday|sunday)

match exactly the same set of strings. Because alternative branches are tried from left to right, and options are not reset until the end of the subpattern is reached, an option setting in one branch does affect subsequent branches, so the above patterns match "SUNDAY" as well as "Saturday".

It is possible to name a subpattern using the syntax (?P<name>pattern). This subpattern will then be indexed in the matches array by its normal numeric position and also by name. There are two alternative syntaxes (?<name>pattern) and (?'name'pattern).

Sometimes it is necessary to have multiple matching, but alternating subgroups in a regular expression. Normally, each of these would be given their own backreference number even though only one of them would ever possibly match. To overcome this, the (?| syntax allows having duplicate numbers. Consider the following regex matched against the string Sunday:

(?:(Sat)ur|(Sun))day

Here Sun is stored in backreference 2, while backreference 1 is empty. Matching Saturday yields Sat in backreference 1 while backreference 2 does not exist. Changing the pattern to use the (?| fixes this problem:

(?|(Sat)ur|(Sun))day

Using this pattern, both Sun and Sat would be stored in backreference 1.


Repetition

Repetition is specified by quantifiers, which can follow any of the following items:

  • a single character, possibly escaped
  • the . metacharacter
  • a character class
  • a back reference (see next section)
  • a parenthesized subpattern (unless it is an assertion - see below)

The general repetition quantifier specifies a minimum and maximum number of permitted matches, by giving the two numbers in curly brackets (braces), separated by a comma. The numbers must be less than 65536, and the first must be less than or equal to the second. For example: z{2,4} matches "zz", "zzz", or "zzzz". A closing brace on its own is not a special character. If the second number is omitted, but the comma is present, there is no upper limit; if the second number and the comma are both omitted, the quantifier specifies an exact number of required matches. Thus [aeiou]{3,} matches at least 3 successive vowels, but may match many more, while \d{8} matches exactly 8 digits. An opening curly bracket that appears in a position where a quantifier is not allowed, or one that does not match the syntax of a quantifier, is taken as a literal character. For example, {,6} is not a quantifier, but a literal string of four characters.

The quantifier {0} is permitted, causing the expression to behave as if the previous item and the quantifier were not present.

For convenience (and historical compatibility) the three most common quantifiers have single-character abbreviations:

Single-character quantifiers
* | equivalent to {0,}
+ | equivalent to {1,}
? | equivalent to {0,1}

It is possible to construct infinite loops by following a subpattern that can match no characters with a quantifier that has no upper limit, for example: (a?)*

Earlier versions of Perl and PCRE used to give an error at compile time for such patterns. However, because there are cases where this can be useful, such patterns are now accepted, but if any repetition of the subpattern does in fact match no characters, the loop is forcibly broken.

By default, the quantifiers are "greedy", that is, they match as much as possible (up to the maximum number of permitted times), without causing the rest of the pattern to fail. The classic example of where this gives problems is in trying to match comments in C programs. These appear between the sequences /* and */ and within the sequence, individual * and / characters may appear. An attempt to match C comments by applying the pattern /\*.*\*/ to the string /* first comment */ not comment /* second comment */ fails, because it matches the entire string due to the greediness of the .* item.

However, if a quantifier is followed by a question mark, then it becomes lazy, and instead matches the minimum number of times possible, so the pattern /\*.*?\*/ does the right thing with the C comments. The meaning of the various quantifiers is not otherwise changed, just the preferred number of matches. Do not confuse this use of question mark with its use as a quantifier in its own right. Because it has two uses, it can sometimes appear doubled, as in \d??\d which matches one digit by preference, but can match two if that is the only way the rest of the pattern matches.

If the PCRE_UNGREEDY option is set (an option which is not available in Perl) then the quantifiers are not greedy by default, but individual ones can be made greedy by following them with a question mark. In other words, it inverts the default behaviour.

Quantifiers followed by + are "possessive". They eat as many characters as possible and don't return to match the rest of the pattern. Thus .*abc matches "aabc" but .*+abc doesn't because .*+ eats the whole string. Possessive quantifiers can be used to speed up processing.

When a parenthesized subpattern is quantified with a minimum repeat count that is greater than 1 or with a limited maximum, more store is required for the compiled pattern, in proportion to the size of the minimum or maximum.

If a pattern starts with .* or .{0,} and the PCRE_DOTALL option (equivalent to Perl's /s) is set, thus allowing the . to match newlines, then the pattern is implicitly anchored, because whatever follows will be tried against every character position in the subject string, so there is no point in retrying the overall match at any position after the first. PCRE treats such a pattern as though it were preceded by \A. In cases where it is known that the subject string contains no newlines, it is worth setting PCRE_DOTALL when the pattern begins with .* in order to obtain this optimization, or alternatively using ^ to indicate anchoring explicitly.

When a capturing subpattern is repeated, the value captured is the substring that matched the final iteration. For example, after (tweedle[dume]{3}\s*)+ has matched "tweedledum tweedledee" the value of the captured substring is "tweedledee". However, if there are nested capturing subpatterns, the corresponding captured values may have been set in previous iterations. For example, after /(a|(b))+/ matches "aba" the value of the second captured substring is "b".


Back references

Outside a character class, a backslash followed by a digit greater than 0 (and possibly further digits) is a back reference to a capturing subpattern earlier (i.e. to its left) in the pattern, provided there have been that many previous capturing left parentheses.

However, if the decimal number following the backslash is less than 10, it is always taken as a back reference, and causes an error only if there are not that many capturing left parentheses in the entire pattern. In other words, the parentheses that are referenced need not be to the left of the reference for numbers less than 10. A "forward back reference" can make sense when a repetition is involved and the subpattern to the right has participated in an earlier iteration. See the section escape sequences for further details of the handling of digits following a backslash.

A back reference matches whatever actually matched the capturing subpattern in the current subject string, rather than anything matching the subpattern itself. So the pattern (sens|respons)e and \1ibility matches "sense and sensibility" and "response and responsibility", but not "sense and responsibility". If case-sensitive (caseful) matching is in force at the time of the back reference, then the case of letters is relevant. For example, ((?i)rah)\s+\1 matches "rah rah" and "RAH RAH", but not "RAH rah", even though the original capturing subpattern is matched case-insensitively (caselessly).

There may be more than one back reference to the same subpattern. If a subpattern has not actually been used in a particular match, then any back references to it always fail. For example, the pattern (a|(bc))\2 always fails if it starts to match "a" rather than "bc". Because there may be up to 99 back references, all digits following the backslash are taken as part of a potential back reference number. If the pattern continues with a digit character, then some delimiter must be used to terminate the back reference. If the PCRE_EXTENDED option is set, this can be whitespace. Otherwise an empty comment can be used.

A back reference that occurs inside the parentheses to which it refers fails when the subpattern is first used, so, for example, (a\1) never matches. However, such references can be useful inside repeated subpatterns. For example, the pattern (a|b\1)+ matches any number of "a"s and also "aba", "ababba" etc. At each iteration of the subpattern, the back reference matches the character string corresponding to the previous iteration. In order for this to work, the pattern must be such that the first iteration does not need to match the back reference. This can be done using alternation, as in the example above, or by a quantifier with a minimum of zero.

The \g escape sequence can be used for absolute and relative referencing of subpatterns. This escape sequence must be followed by an unsigned number or a negative number, optionally enclosed in braces. The sequences \1, \g1 and \g{1} are synonymous with one another. The use of this pattern with an unsigned number can help remove the ambiguity inherent when using digits following a backslash. The sequence helps to distinguish back references from octal characters and also makes it easier to have a back reference followed by a literal number, e.g. \g{2}1.

The use of the \g sequence with a negative number signifies a relative reference. For example, (foo)(bar)\g{-1} would match the sequence "foobarbar" and (foo)(bar)\g{-2} matches "foobarfoo". This can be useful in long patterns as an alternative to keeping track of the number of subpatterns in order to reference a specific previous subpattern.

Back references to the named subpatterns can be achieved by (?P=name), \k<name>, \k'name', \k{name}, \g{name}, \g<name> or \g'name'.


Assertions

An assertion is a test on the characters following or preceding the current matching point that does not actually consume any characters. The simple assertions coded as \b, \B, \A, \Z, \z, ^ and $ are described in escape sequences. More complicated assertions are coded as subpatterns. There are two kinds: those that look ahead of the current position in the subject string, and those that look behind it.

An assertion subpattern is matched in the normal way, except that it does not cause the current matching position to be changed. Lookahead assertions start with (?= for positive assertions and (?! for negative assertions. For example, \w+(?=;) matches a word followed by a semicolon, but does not include the semicolon in the match, and foo(?!bar) matches any occurrence of "foo" that is not followed by "bar". Note that the apparently similar pattern (?!foo)bar does not find an occurrence of "bar" that is preceded by something other than "foo"; it finds any occurrence of "bar" whatsoever, because the assertion (?!foo) is always true when the next three characters are "bar". A lookbehind assertion is needed to achieve this effect.

Lookbehind assertions start with (?<= for positive assertions and (?<! for negative assertions. For example, (?<!foo)bar does find an occurrence of "bar" that is not preceded by "foo". The contents of a lookbehind assertion are restricted such that all the strings it matches must have a fixed length. However, if there are several alternatives, they do not all have to have the same fixed length. Thus (?<=bullock|donkey) is permitted, but (?<!dogs?|cats?) causes an error at compile time. Branches that match different length strings are permitted only at the top level of a lookbehind assertion. This is an extension compared with Perl 5.005, which requires all branches to match the same length of string. An assertion such as (?<=ab(c|de)) is not permitted, because its single top-level branch can match two different lengths, but it is acceptable if rewritten to use two top-level branches: (?<=abc|abde) The implementation of lookbehind assertions is, for each alternative, to temporarily move the current position back by the fixed width and then try to match. If there are insufficient characters before the current position, the match is deemed to fail. Lookbehinds in conjunction with once-only subpatterns can be particularly useful for matching at the ends of strings; an example is given at the end of the section on once-only subpatterns.

Several assertions (of any sort) may occur in succession. For example, (?<=\d{3})(?<!999)foo matches "foo" preceded by three digits that are not "999". Notice that each of the assertions is applied independently at the same point in the subject string. First there is a check that the previous three characters are all digits, then there is a check that the same three characters are not "999". This pattern does not match "foo" preceded by six characters, the first of which are digits and the last three of which are not "999". For example, it doesn't match "123abcfoo". A pattern to do that is (?<=\d{3}...)(?<!999)foo

This time the first assertion looks at the preceding six characters, checking that the first three are digits, and then the second assertion checks that the preceding three characters are not "999".

Assertions can be nested in any combination. For example, (?<=(?<!foo)bar)baz matches an occurrence of "baz" that is preceded by "bar" which in turn is not preceded by "foo", while (?<=\d{3}...(?<!999))foo is another pattern which matches "foo" preceded by three digits and any three characters that are not "999".

Assertion subpatterns are not capturing subpatterns, and may not be repeated, because it makes no sense to assert the same thing several times. If any kind of assertion contains capturing subpatterns within it, these are counted for the purposes of numbering the capturing subpatterns in the whole pattern. However, substring capturing is carried out only for positive assertions, because it does not make sense for negative assertions.

Assertions count towards the maximum of 200 parenthesized subpatterns.


Once-only subpatterns

With both maximizing and minimizing repetition, failure of what follows normally causes the repeated item to be re-evaluated to see if a different number of repeats allows the rest of the pattern to match. Sometimes it is useful to prevent this, either to change the nature of the match, or to cause it fail earlier than it otherwise might, when the author of the pattern knows there is no point in carrying on.

Consider, for example, the pattern \d+foo when applied to the subject line 123456bar

After matching all 6 digits and then failing to match "foo", the normal action of the matcher is to try again with only 5 digits matching the \d+ item, and then with 4, and so on, before ultimately failing. Once-only subpatterns provide the means for specifying that once a portion of the pattern has matched, it is not to be re-evaluated in this way, so the matcher would give up immediately on failing to match "foo" the first time. The notation is another kind of special parenthesis, starting with (?> as in this example: (?>\d+)bar

This kind of parenthesis "locks up" the part of the pattern it contains once it has matched, and a failure further into the pattern is prevented from backtracking into it. Backtracking past it to previous items, however, works as normal.

An alternative description is that a subpattern of this type matches the string of characters that an identical standalone pattern would match, if anchored at the current point in the subject string.

Once-only subpatterns are not capturing subpatterns. Simple cases such as the above example can be thought of as a maximizing repeat that must swallow everything it can. So, while both \d+ and \d+? are prepared to adjust the number of digits they match in order to make the rest of the pattern match, (?>\d+) can only match an entire sequence of digits.

This construction can of course contain arbitrarily complicated subpatterns, and it can be nested.

Once-only subpatterns can be used in conjunction with lookbehind assertions to specify efficient matching at the end of the subject string. Consider a simple pattern such as abcd$ when applied to a long string which does not match. Because matching proceeds from left to right, PCRE will look for each "a" in the subject and then see if what follows matches the rest of the pattern. If the pattern is specified as ^.*abcd$ then the initial .* matches the entire string at first, but when this fails (because there is no following "a"), it backtracks to match all but the last character, then all but the last two characters, and so on. Once again the search for "a" covers the entire string, from right to left, so we are no better off. However, if the pattern is written as ^(?>.*)(?<=abcd) then there can be no backtracking for the .* item; it can match only the entire string. The subsequent lookbehind assertion does a single test on the last four characters. If it fails, the match fails immediately. For long strings, this approach makes a significant difference to the processing time.

When a pattern contains an unlimited repeat inside a subpattern that can itself be repeated an unlimited number of times, the use of a once-only subpattern is the only way to avoid some failing matches taking a very long time indeed. The pattern (\D+|<\d+>)*[!?] matches an unlimited number of substrings that either consist of non-digits, or digits enclosed in <>, followed by either ! or ?. When it matches, it runs quickly. However, if it is applied to aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa it takes a long time before reporting failure. This is because the string can be divided between the two repeats in a large number of ways, and all have to be tried. (The example used [!?] rather than a single character at the end, because both PCRE and Perl have an optimization that allows for fast failure when a single character is used. They remember the last single character that is required for a match, and fail early if it is not present in the string.) If the pattern is changed to ((?>\D+)|<\d+>)*[!?] sequences of non-digits cannot be broken, and failure happens quickly.


Conditional subpatterns

It is possible to cause the matching process to obey a subpattern conditionally or to choose between two alternative subpatterns, depending on the result of an assertion, or whether a previous capturing subpattern matched or not. The two possible forms of conditional subpattern are

(?(condition)yes-pattern)
(?(condition)yes-pattern|no-pattern)

If the condition is satisfied, the yes-pattern is used; otherwise the no-pattern (if present) is used. If there are more than two alternatives in the subpattern, a compile-time error occurs.

There are two kinds of condition. If the text between the parentheses consists of a sequence of digits, then the condition is satisfied if the capturing subpattern of that number has previously matched. Consider the following pattern, which contains non-significant white space to make it more readable (assume the PCRE_EXTENDED option) and to divide it into three parts for ease of discussion:

( \( )? [^()]+ (?(1) \) )

The first part matches an optional opening parenthesis, and if that character is present, sets it as the first captured substring. The second part matches one or more characters that are not parentheses. The third part is a conditional subpattern that tests whether the first set of parentheses matched or not. If they did, that is, if subject started with an opening parenthesis, the condition is true, and so the yes-pattern is executed and a closing parenthesis is required. Otherwise, since no-pattern is not present, the subpattern matches nothing. In other words, this pattern matches a sequence of non-parentheses, optionally enclosed in parentheses.

If the condition is the string (R), it is satisfied if a recursive call to the pattern or subpattern has been made. At "top level", the condition is false.

If the condition is not a sequence of digits or (R), it must be an assertion. This may be a positive or negative lookahead or lookbehind assertion. Consider this pattern, again containing non-significant white space, and with the two alternatives on the second line:

(?(?=[^a-z]*[a-z])
\d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} )

The condition is a positive lookahead assertion that matches an optional sequence of non-letters followed by a letter. In other words, it tests for the presence of at least one letter in the subject. If a letter is found, the subject is matched against the first alternative; otherwise it is matched against the second. This pattern matches strings in one of the two forms dd-aaa-dd or dd-dd-dd, where aaa are letters and dd are digits.


Comments

The sequence (?# marks the start of a comment which continues up to the next closing parenthesis. Nested parentheses are not permitted. The characters that make up a comment play no part in the pattern matching at all.

If the PCRE_EXTENDED option is set, an unescaped # character outside a character class introduces a comment that continues up to the next newline character in the pattern.

Exemplo #1 Usage of comments in PCRE pattern

<?php

$subject = 'test';

/* (?# can be used to add comments without enabling PCRE_EXTENDED */
$match = preg_match('/te(?# this is a comment)st/', $subject);
var_dump($match);

/* Whitespace and # is treated as part of the pattern unless PCRE_EXTENDED is enabled */
$match = preg_match('/te #~~~~
st/', $subject);
var_dump($match);

/* When PCRE_EXTENDED is enabled, all whitespace data characters and anything
that follows an unescaped # on the same line is ignored */
$match = preg_match('/te #~~~~
st/x', $subject);
var_dump($match);

O exemplo acima produzirá:

int(1)
int(0)
int(1)


Recursive patterns

Consider the problem of matching a string in parentheses, allowing for unlimited nested parentheses. Without the use of recursion, the best that can be done is to use a pattern that matches up to some fixed depth of nesting. It is not possible to handle an arbitrary nesting depth. Perl 5.6 has provided an experimental facility that allows regular expressions to recurse (among other things). The special item (?R) is provided for the specific case of recursion. This PCRE pattern solves the parentheses problem (assume the PCRE_EXTENDED option is set so that white space is ignored): \( ( (?>[^()]+) | (?R) )* \)

First it matches an opening parenthesis. Then it matches any number of substrings which can either be a sequence of non-parentheses, or a recursive match of the pattern itself (i.e. a correctly parenthesized substring). Finally there is a closing parenthesis.

This particular example pattern contains nested unlimited repeats, and so the use of a once-only subpattern for matching strings of non-parentheses is important when applying the pattern to strings that do not match. For example, when it is applied to (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() it yields "no match" quickly. However, if a once-only subpattern is not used, the match runs for a very long time indeed because there are so many different ways the + and * repeats can carve up the subject, and all have to be tested before failure can be reported.

The values set for any capturing subpatterns are those from the outermost level of the recursion at which the subpattern value is set. If the pattern above is matched against (ab(cd)ef) the value for the capturing parentheses is "ef", which is the last value taken on at the top level. If additional parentheses are added, giving \( ( ( (?>[^()]+) | (?R) )* ) \) then the string they capture is "ab(cd)ef", the contents of the top level parentheses. If there are more than 15 capturing parentheses in a pattern, PCRE has to obtain extra memory to store data during a recursion, which it does by using pcre_malloc, freeing it via pcre_free afterwards. If no memory can be obtained, it saves data for the first 15 capturing parentheses only, as there is no way to give an out-of-memory error from within a recursion.

(?1), (?2) and so on can be used for recursive subpatterns too. It is also possible to use named subpatterns: (?P>name) or (?&name).

If the syntax for a recursive subpattern reference (either by number or by name) is used outside the parentheses to which it refers, it operates like a subroutine in a programming language. An earlier example pointed out that the pattern (sens|respons)e and \1ibility matches "sense and sensibility" and "response and responsibility", but not "sense and responsibility". If instead the pattern (sens|respons)e and (?1)ibility is used, it does match "sense and responsibility" as well as the other two strings. Such references must, however, follow the subpattern to which they refer.

The maximum length of a subject string is the largest positive number that an integer variable can hold. However, PCRE uses recursion to handle subpatterns and indefinite repetition. This means that the available stack space may limit the size of a subject string that can be processed by certain patterns.


Performance

Certain items that may appear in patterns are more efficient than others. It is more efficient to use a character class like [aeiou] than a set of alternatives such as (a|e|i|o|u). In general, the simplest construction that provides the required behaviour is usually the most efficient. Jeffrey Friedl's book contains a lot of discussion about optimizing regular expressions for efficient performance.

When a pattern begins with .* and the PCRE_DOTALL option is set, the pattern is implicitly anchored by PCRE, since it can match only at the start of a subject string. However, if PCRE_DOTALL is not set, PCRE cannot make this optimization, because the . metacharacter does not then match a newline, and if the subject string contains newlines, the pattern may match from the character immediately following one of them instead of from the very start. For example, the pattern (.*) second matches the subject "first\nand second" (where \n stands for a newline character) with the first captured substring being "and". In order to do this, PCRE has to retry the match starting after every newline in the subject.

If you are using such a pattern with subject strings that do not contain newlines, the best performance is obtained by setting PCRE_DOTALL, or starting the pattern with ^.* to indicate explicit anchoring. That saves PCRE from having to scan along the subject looking for a newline to restart at.

Beware of patterns that contain nested indefinite repeats. These can take a long time to run when applied to a string that does not match. Consider the pattern fragment (a+)*

This can match "aaaa" in 33 different ways, and this number increases very rapidly as the string gets longer. (The * repeat can match 0, 1, 2, 3, or 4 times, and for each of those cases other than 0, the + repeats can match different numbers of times.) When the remainder of the pattern is such that the entire match is going to fail, PCRE has in principle to try every possible variation, and this can take an extremely long time.

An optimization catches some of the more simple cases such as (a+)*b where a literal character follows. Before embarking on the standard matching procedure, PCRE checks that there is a "b" later in the subject string, and if there is not, it fails the match immediately. However, when there is no following literal this optimization cannot be used. You can see the difference by comparing the behaviour of (a+)*\d with the pattern above. The former gives a failure almost instantly when applied to a whole line of "a" characters, whereas the latter takes an appreciable time with strings longer than about 20 characters.


Pattern Modifiers

The current possible PCRE modifiers are listed below. The names in parentheses refer to internal PCRE names for these modifiers. Spaces and newlines are ignored in modifiers, other characters cause error.

i (PCRE_CASELESS)
If this modifier is set, letters in the pattern match both upper and lower case letters.
m (PCRE_MULTILINE)
By default, PCRE treats the subject string as consisting of a single "line" of characters (even if it actually contains several newlines). The "start of line" metacharacter (^) matches only at the start of the string, while the "end of line" metacharacter ($) matches only at the end of the string, or before a terminating newline (unless D modifier is set). This is the same as Perl. When this modifier is set, the "start of line" and "end of line" constructs match immediately following or immediately before any newline in the subject string, respectively, as well as at the very start and end. This is equivalent to Perl's /m modifier. If there are no "\n" characters in a subject string, or no occurrences of ^ or $ in a pattern, setting this modifier has no effect.
s (PCRE_DOTALL)
If this modifier is set, a dot metacharacter in the pattern matches all characters, including newlines. Without it, newlines are excluded. This modifier is equivalent to Perl's /s modifier. A negative class such as [^a] always matches a newline character, independent of the setting of this modifier.
x (PCRE_EXTENDED)
If this modifier is set, whitespace data characters in the pattern are totally ignored except when escaped or inside a character class, and characters between an unescaped # outside a character class and the next newline character, inclusive, are also ignored. This is equivalent to Perl's /x modifier, and makes it possible to include commentary inside complicated patterns. Note, however, that this applies only to data characters. Whitespace characters may never appear within special character sequences in a pattern, for example within the sequence (?( which introduces a conditional subpattern.
A (PCRE_ANCHORED)
If this modifier is set, the pattern is forced to be "anchored", that is, it is constrained to match only at the start of the string which is being searched (the "subject string"). This effect can also be achieved by appropriate constructs in the pattern itself, which is the only way to do it in Perl.
D (PCRE_DOLLAR_ENDONLY)
If this modifier is set, a dollar metacharacter in the pattern matches only at the end of the subject string. Without this modifier, a dollar also matches immediately before the final character if it is a newline (but not before any other newlines). This modifier is ignored if m modifier is set. There is no equivalent to this modifier in Perl.
S
When a pattern is going to be used several times, it is worth spending more time analyzing it in order to speed up the time taken for matching. If this modifier is set, then this extra analysis is performed. At present, studying a pattern is useful only for non-anchored patterns that do not have a single fixed starting character.
U (PCRE_UNGREEDY)
This modifier inverts the "greediness" of the quantifiers so that they are not greedy by default, but become greedy if followed by ?. It is not compatible with Perl. It can also be set by a (?U) modifier setting within the pattern or by a question mark behind a quantifier (e.g. .*?).

Nota:

It is usually not possible to match more than pcre.backtrack_limit characters in ungreedy mode.

X (PCRE_EXTRA)
This modifier turns on additional functionality of PCRE that is incompatible with Perl. Any backslash in a pattern that is followed by a letter that has no special meaning causes an error, thus reserving these combinations for future expansion. By default, as in Perl, a backslash followed by a letter with no special meaning is treated as a literal. There are at present no other features controlled by this modifier.
J (PCRE_INFO_JCHANGED)
The (?J) internal option setting changes the local PCRE_DUPNAMES option. Allow duplicate names for subpatterns. As of PHP 7.2.0 J is supported as modifier as well.
u (PCRE_UTF8)
This modifier turns on additional functionality of PCRE that is incompatible with Perl. Pattern and subject strings are treated as UTF-8. An invalid subject will cause the preg_* function to match nothing; an invalid pattern will trigger an error of level E_WARNING. Five and six octet UTF-8 sequences are regarded as invalid.
n (PCRE_NO_AUTO_CAPTURE)
This modifier makes simple (xyz) groups non-capturing. Only named groups like (?<name>xyz) are capturing. This only affects which groups are capturing, it is still possible to use numbered subpattern references, and the matches array will still contain numbered results.


Perl Differences

The differences described here are with respect to Perl 5.005.

  1. By default, a whitespace character is any character that the C library function isspace() recognizes, though it is possible to compile PCRE with alternative character type tables. Normally isspace() matches space, formfeed, newline, carriage return, horizontal tab, and vertical tab. Perl 5 no longer includes vertical tab in its set of whitespace characters. The \v escape that was in the Perl documentation for a long time was never in fact recognized. However, the character itself was treated as whitespace at least up to 5.002. In 5.004 and 5.005 it does not match \s.
  2. PCRE does not allow repeat quantifiers on lookahead assertions. Perl permits them, but they do not mean what you might think. For example, (?!a){3} does not assert that the next three characters are not "a". It just asserts that the next character is not "a" three times.
  3. Capturing subpatterns that occur inside negative lookahead assertions are counted, but their entries in the offsets vector are never set. Perl sets its numerical variables from any such patterns that are matched before the assertion fails to match something (thereby succeeding), but only if the negative lookahead assertion contains just one branch.
  4. Though binary zero characters are supported in the subject string, they are not allowed in a pattern string because it is passed as a normal C string, terminated by zero. The escape sequence "\x00" can be used in the pattern to represent a binary zero.
  5. The following Perl escape sequences are not supported: \l, \u, \L, \U. In fact these are implemented by Perl's general string-handling and are not part of its pattern matching engine.
  6. The Perl \G assertion is not supported as it is not relevant to single pattern matches.
  7. Fairly obviously, PCRE does not support the (?{code}) and (??{code}) construction. However, there is support for recursive patterns.
  8. There are at the time of writing some oddities in Perl 5.005_02 concerned with the settings of captured strings when part of a pattern is repeated. For example, matching "aba" against the pattern /^(a(b)?)+$/ sets $2 to the value "b", but matching "aabbaa" against /^(aa(bb)?)+$/ leaves $2 unset. However, if the pattern is changed to /^(aa(b(b))?)+$/ then $2 (and $3) get set. In Perl 5.004 $2 is set in both cases, and that is also true of PCRE. If in the future Perl changes to a consistent state that is different, PCRE may change to follow.
  9. Another as yet unresolved discrepancy is that in Perl 5.005_02 the pattern /^(a)?(?(1)a|b)+$/ matches the string "a", whereas in PCRE it does not. However, in both Perl and PCRE /^(a)?a/ matched against "a" leaves $1 unset.

  10. PCRE provides some extensions to the Perl regular expression facilities:

    1. Although lookbehind assertions must match fixed length strings, each alternative branch of a lookbehind assertion can match a different length of string. Perl 5.005 requires them all to have the same length.
    2. If PCRE_DOLLAR_ENDONLY is set and PCRE_MULTILINE is not set, the $ meta-character matches only at the very end of the string.
    3. If PCRE_EXTRA is set, a backslash followed by a letter with no special meaning is faulted.
    4. If PCRE_UNGREEDY is set, the greediness of the repetition quantifiers is inverted, that is, by default they are not greedy, but if followed by a question mark they are.


Funções da PCRE

Índice

  • preg_filter — Perform a regular expression search and replace
  • preg_grep — Return array entries that match the pattern
  • preg_last_error_msg — Returns the error message of the last PCRE regex execution
  • preg_last_error — Retorna o código de erro da última expressão regular PCRE executada
  • preg_match_all — Perform a global regular expression match
  • preg_match — Perform a regular expression match
  • preg_quote — Quote regular expression characters
  • preg_replace_callback_array — Perform a regular expression search and replace using callbacks
  • preg_replace_callback — Executa uma busca por expressão regular e substitui usando uma chamada de retorno
  • preg_replace — Realiza uma pesquisa por uma expressão regular e substitui
  • preg_split — Split string by a regular expression


Perform a regular expression search and replace

  • « Funções da PCRE
  • preg_grep »
  • PHP Manual
  • Funções da PCRE
  • Perform a regular expression search and replace

preg_filter

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

preg_filter — Perform a regular expression search and replace

Descrição

preg_filter(
string|array $pattern,
string|array $replacement,
string|array $subject,
int $limit = -1,
int &$count = null
): string|array|null

preg_filter() is identical to preg_replace() except it only returns the (possibly transformed) subjects where there was a match. For details about how this function works, read the preg_replace() documentation.

Parâmetros

Parameters are described in the documentation for preg_replace().

Valor Retornado

Returns an array if the subject parameter is an array, or a string otherwise.

If no matches are found or an error occurred, an empty array is returned when subject is an array or null otherwise.

Erros/Exceções

Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um E_WARNING será emitido.

Exemplos

Exemplo #1 Example comparing preg_filter() with preg_replace()

<?php
$subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');
$pattern = array('/\d/', '/[a-z]/', '/[1a]/');
$replace = array('A:$0', 'B:$0', 'C:$0');

echo "preg_filter returns\n";
print_r(preg_filter($pattern, $replace, $subject));

echo "preg_replace returns\n";
print_r(preg_replace($pattern, $replace, $subject));
?>

O exemplo acima produzirá:

preg_filter returns
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [7] => A:4
)
preg_replace returns
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [5] => A
    [6] => B
    [7] => A:4
)

Veja Também

  • PCRE Patterns
  • preg_quote() - Quote regular expression characters
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
  • preg_replace_callback() - Executa uma busca por expressão regular e substitui usando uma chamada de retorno
  • preg_grep() - Return array entries that match the pattern
  • preg_last_error() - Retorna o código de erro da última expressão regular PCRE executada


Return array entries that match the pattern

  • « preg_filter
  • preg_last_error_msg »
  • PHP Manual
  • Funções da PCRE
  • Return array entries that match the pattern

preg_grep

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_grep — Return array entries that match the pattern

Descrição

preg_grep(string $pattern, array $array, int $flags = 0): array|false

Returns the array consisting of the elements of the array array that match the given pattern.

Parâmetros

pattern

The pattern to search for, as a string.

array

The input array.

flags

If set to PREG_GREP_INVERT, this function returns the elements of the input array that do not match the given pattern.

Valor Retornado

Returns an array indexed using the keys from the array array, ou false em caso de falha.

Erros/Exceções

Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um E_WARNING será emitido.

Exemplos

Exemplo #1 preg_grep() example

<?php
// return all array elements
// containing floating point numbers
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Veja Também

  • PCRE Patterns
  • preg_quote() - Quote regular expression characters
  • preg_match_all() - Perform a global regular expression match
  • preg_filter() - Perform a regular expression search and replace
  • preg_last_error() - Retorna o código de erro da última expressão regular PCRE executada


Returns the error message of the last PCRE regex execution

  • « preg_grep
  • preg_last_error »
  • PHP Manual
  • Funções da PCRE
  • Returns the error message of the last PCRE regex execution

preg_last_error_msg

(PHP 8)

preg_last_error_msg — Returns the error message of the last PCRE regex execution

Descrição

preg_last_error_msg(): string

Returns the error message of the last PCRE regex execution.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the error message on success, or "No error" if no error has occurred.

Exemplos

Exemplo #1 preg_last_error_msg() example

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() !== PREG_NO_ERROR) {
echo preg_last_error_msg();
}

?>

O exemplo acima produzirá:

Backtrack limit exhausted

Veja Também

  • preg_last_error() - Retorna o código de erro da última expressão regular PCRE executada


Retorna o código de erro da última expressão regular PCRE executada

  • « preg_last_error_msg
  • preg_match_all »
  • PHP Manual
  • Funções da PCRE
  • Retorna o código de erro da última expressão regular PCRE executada

preg_last_error

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

preg_last_error — Retorna o código de erro da última expressão regular PCRE executada

Descrição

preg_last_error(): int

Retorna o código de erro da última expressão regular PCRE executada.

Exemplo #1 Exemplo de preg_last_error()

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted!';
}

?>

O exemplo acima produzirá:

Backtrack limit was exhausted!

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma das seguintes constantes (explicadas em sua própria página):

  • PREG_NO_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_BACKTRACK_LIMIT_ERROR (veja também pcre.backtrack_limit)
  • PREG_RECURSION_LIMIT_ERROR (veja também pcre.recursion_limit)
  • PREG_BAD_UTF8_ERROR
  • PREG_BAD_UTF8_OFFSET_ERROR
  • PREG_JIT_STACKLIMIT_ERROR

Veja Também

  • preg_last_error_msg() - Returns the error message of the last PCRE regex execution


Perform a global regular expression match

  • « preg_last_error
  • preg_match »
  • PHP Manual
  • Funções da PCRE
  • Perform a global regular expression match

preg_match_all

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_match_all — Perform a global regular expression match

Descrição

preg_match_all(
string $pattern,
string $subject,
array &$matches = null,
int $flags = 0,
int $offset = 0
): int|false

Searches subject for all matches to the regular expression given in pattern and puts them in matches in the order specified by flags.

After the first match is found, the subsequent searches are continued on from end of the last match.

Parâmetros

pattern

The pattern to search for, as a string.

subject

The input string.

matches

Array of all matches in multi-dimensional array ordered according to flags.

flags

Can be a combination of the following flags (note that it doesn't make sense to use PREG_PATTERN_ORDER together with PREG_SET_ORDER):

PREG_PATTERN_ORDER

Orders results so that $matches[0] is an array of full pattern matches, $matches[1] is an array of strings matched by the first parenthesized subpattern, and so on.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
"<b>example: </b><div align=left>this is a test</div>",
$out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

O exemplo acima produzirá:

<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test

So, $out[0] contains an array of strings that matched the full pattern, and $out[1] contains an array of strings enclosed by tags.

If the pattern contains named subpatterns, $matches additionally contains entries for keys with the subpattern name.

If the pattern contains duplicate named subpatterns, only the rightmost subpattern is stored in $matches[NAME].

<?php
preg_match_all(
'/(?J)(?<match>foo)|(?<match>bar)/',
'foo bar',
$matches,
PREG_PATTERN_ORDER
);
print_r($matches['match']);
?>

O exemplo acima produzirá:

Array
(
    [0] =>
    [1] => bar
)

PREG_SET_ORDER

Orders results so that $matches[0] is an array of first set of matches, $matches[1] is an array of second set of matches, and so on.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
"<b>example: </b><div align=\"left\">this is a test</div>",
$out, PREG_SET_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

O exemplo acima produzirá:

<b>example: </b>, example:
<div align="left">this is a test</div>, this is a test

PREG_OFFSET_CAPTURE

If this flag is passed, for every occurring match the appendant string offset (in bytes) will also be returned. Note that this changes the value of matches into an array of arrays where every element is an array consisting of the matched string at offset 0 and its string offset into subject at offset 1.

<?php
preg_match_all('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

O exemplo acima produzirá:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => foobarbaz
                    [1] => 0
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => foo
                    [1] => 0
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [0] => bar
                    [1] => 3
                )

        )

    [3] => Array
        (
            [0] => Array
                (
                    [0] => baz
                    [1] => 6
                )

        )

)

PREG_UNMATCHED_AS_NULL

If this flag is passed, unmatched subpatterns are reported as null; otherwise they are reported as an empty string.

If no order flag is given, PREG_PATTERN_ORDER is assumed.

offset

Normally, the search starts from the beginning of the subject string. The optional parameter offset can be used to specify the alternate place from which to start the search (in bytes).

Nota:

Using offset is not equivalent to passing substr($subject, $offset) to preg_match_all() in place of the subject string, because pattern can contain assertions such as ^, $ or (?<=x). See preg_match() for examples.

Valor Retornado

Returns the number of full pattern matches (which might be zero), ou false em caso de falha.

Erros/Exceções

Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um E_WARNING será emitido.

Registro de Alterações

Versão | Descrição
7.2.0 | The PREG_UNMATCHED_AS_NULL is now supported for the $flags parameter.

Exemplos

Exemplo #1 Getting all phone numbers out of some text.

<?php
preg_match_all("/\(? (\d{3})? \)? (?(1) [\-\s] ) \d{3}-\d{4}/x",
"Call 555-1212 or 1-800-555-1212", $phones);
?>

Exemplo #2 Find matching HTML tags (greedy)

<?php
// The \\2 is an example of backreferencing. This tells pcre that
// it must match the second set of parentheses in the regular expression
// itself, which would be the ([\w]+) in this case. The extra backslash is
// required because the string is in double quotes.
$html = "<b>bold text</b><a href=howdy.html>click me</a>";

preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);

foreach ($matches as $val) {
echo "matched: " . $val[0] . "\n";
echo "part 1: " . $val[1] . "\n";
echo "part 2: " . $val[2] . "\n";
echo "part 3: " . $val[3] . "\n";
echo "part 4: " . $val[4] . "\n\n";
}
?>

O exemplo acima produzirá:

matched: <b>bold text</b>
part 1: <b>
part 2: b
part 3: bold text
part 4: </b>

matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: a
part 3: click me
part 4: </a>

Exemplo #3 Using named subpattern

<?php

$str = <<<FOO
a: 1
b: 2
c: 3
FOO;

preg_match_all('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);

/* Alternative */
// preg_match_all('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);

print_r($matches);

?>

O exemplo acima produzirá:

Array
(
    [0] => Array
        (
            [0] => a: 1
            [1] => b: 2
            [2] => c: 3
        )

    [name] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [digit] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

)

Veja Também

  • PCRE Patterns
  • preg_quote() - Quote regular expression characters
  • preg_match() - Perform a regular expression match
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
  • preg_split() - Split string by a regular expression
  • preg_last_error() - Retorna o código de erro da última expressão regular PCRE executada


Perform a regular expression match

  • « preg_match_all
  • preg_quote »
  • PHP Manual
  • Funções da PCRE
  • Perform a regular expression match

preg_match

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_match — Perform a regular expression match

Descrição

preg_match(
string $pattern,
string $subject,
array &$matches = null,
int $flags = 0,
int $offset = 0
): int|false

Searches subject for a match to the regular expression given in pattern.

Parâmetros

pattern

The pattern to search for, as a string.

subject

The input string.

matches

If matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.

flags

flags can be a combination of the following flags:

PREG_OFFSET_CAPTURE

If this flag is passed, for every occurring match the appendant string offset (in bytes) will also be returned. Note that this changes the value of matches into an array where every element is an array consisting of the matched string at offset 0 and its string offset into subject at offset 1.

<?php
preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

O exemplo acima produzirá:

Array
(
    [0] => Array
        (
            [0] => foobarbaz
            [1] => 0
        )

    [1] => Array
        (
            [0] => foo
            [1] => 0
        )

    [2] => Array
        (
            [0] => bar
            [1] => 3
        )

    [3] => Array
        (
            [0] => baz
            [1] => 6
        )

)

PREG_UNMATCHED_AS_NULL

If this flag is passed, unmatched subpatterns are reported as null; otherwise they are reported as an empty string.

<?php
preg_match('/(a)(b)*(c)/', 'ac', $matches);
var_dump($matches);
preg_match('/(a)(b)*(c)/', 'ac', $matches, PREG_UNMATCHED_AS_NULL);
var_dump($matches);
?>

O exemplo acima produzirá:

array(4) {
  [0]=>
  string(2) "ac"
  [1]=>
  string(1) "a"
  [2]=>
  string(0) ""
  [3]=>
  string(1) "c"
}
array(4) {
  [0]=>
  string(2) "ac"
  [1]=>
  string(1) "a"
  [2]=>
  NULL
  [3]=>
  string(1) "c"
}

offset

Normally, the search starts from the beginning of the subject string. The optional parameter offset can be used to specify the alternate place from which to start the search (in bytes).

Nota:

Using offset is not equivalent to passing substr($subject, $offset) to preg_match() in place of the subject string, because pattern can contain assertions such as ^, $ or (?<=x). Compare:

<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>

O exemplo acima produzirá:

Array
(
)

while this example

<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

will produce

Array
(
    [0] => Array
        (
            [0] => def
            [1] => 0
        )

)

Alternatively, to avoid using substr(), use the \G assertion rather than the ^ anchor, or the A modifier instead, both of which work with the offset parameter.

Valor Retornado

preg_match() returns 1 if the pattern matches given subject, 0 if it does not, ou false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Erros/Exceções

Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um E_WARNING será emitido.

Registro de Alterações

Versão | Descrição
7.2.0 | The PREG_UNMATCHED_AS_NULL is now supported for the $flags parameter.

Exemplos

Exemplo #1 Find the string of text "php"

<?php
// The "i" after the pattern delimiter indicates a case-insensitive search
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>

Exemplo #2 Find the word "web"

<?php
/* The \b in the pattern indicates a word boundary, so only the distinct
* word "web" is matched, and not a word partial like "webbing" or "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}

if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>

Exemplo #3 Getting the domain name out of a URL

<?php
// get host name from URL
preg_match('@^(?:http://)?([^/]+)@i',
"http://www.php.net/index.html", $matches);
$host = $matches[1];

// get last two segments of host name
preg_match('/[^.]+\.[^.]+$/', $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

O exemplo acima produzirá:

domain name is: php.net

Exemplo #4 Using named subpattern

<?php

$str = 'foobar: 2008';

preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);

/* Alternative */
// preg_match('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);

print_r($matches);

?>

O exemplo acima produzirá:

Array
(
    [0] => foobar: 2008
    [name] => foobar
    [1] => foobar
    [digit] => 2008
    [2] => 2008
)

Notas

Dica

Do not use preg_match() if you only want to check if one string is contained in another string. Use strpos() instead as it will be faster.

Veja Também

  • PCRE Patterns
  • preg_quote() - Quote regular expression characters
  • preg_match_all() - Perform a global regular expression match
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
  • preg_split() - Split string by a regular expression
  • preg_last_error() - Retorna o código de erro da última expressão regular PCRE executada
  • preg_last_error_msg() - Returns the error message of the last PCRE regex execution


Quote regular expression characters

  • « preg_match
  • preg_replace_callback_array »
  • PHP Manual
  • Funções da PCRE
  • Quote regular expression characters

preg_quote

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_quote — Quote regular expression characters

Descrição

preg_quote(string $str, ?string $delimiter = null): string

preg_quote() takes str and puts a backslash in front of every character that is part of the regular expression syntax. This is useful if you have a run-time string that you need to match in some text and the string may contain special regex characters.

The special regular expression characters are: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #

Note that / is not a special regular expression character.

Nota:

Note that preg_quote() is not meant to be applied to the $replacement string(s) of preg_replace() etc.

Parâmetros

str

The input string.

delimiter

If the optional delimiter is specified, it will also be escaped. This is useful for escaping the delimiter that is required by the PCRE functions. The / is the most commonly used delimiter.

Valor Retornado

Returns the quoted (escaped) string.

Registro de Alterações

Versão | Descrição
7.3.0 | The # character is now quoted
7.2.0 | delimiter is nullable now.

Exemplos

Exemplo #1 preg_quote() example

<?php
$keywords = '$40 for a g3/400';
$keywords = preg_quote($keywords, '/');
echo $keywords; // returns \$40 for a g3\/400
?>

Exemplo #2 Italicizing a word within some text

<?php
// In this example, preg_quote($word) is used to keep the
// asterisks from having special meaning to the regular
// expression.

$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$textbody = preg_replace ("/" . preg_quote($word, '/') . "/",
"<i>" . $word . "</i>",
$textbody);
?>

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • PCRE Patterns
  • escapeshellcmd() - Escapa meta-caracteres shell


Perform a regular expression search and replace using callbacks

  • « preg_quote
  • preg_replace_callback »
  • PHP Manual
  • Funções da PCRE
  • Perform a regular expression search and replace using callbacks

preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_array — Perform a regular expression search and replace using callbacks

Descrição

preg_replace_callback_array(
array $pattern,
string|array $subject,
int $limit = -1,
int &$count = null,
int $flags = 0
): string|array|null

The behavior of this function is similar to preg_replace_callback(), except that callbacks are executed on a per-pattern basis.

Parâmetros

pattern

An associative array mapping patterns (keys) to callables (values).

subject

The string or an array with strings to search and replace.

limit

The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit).

count

If specified, this variable will be filled with the number of replacements done.

flags

flags can be a combination of the PREG_OFFSET_CAPTURE and PREG_UNMATCHED_AS_NULL flags, which influence the format of the matches array. See the description in preg_match() for more details.

Valor Retornado

preg_replace_callback_array() returns an array if the subject parameter is an array, or a string otherwise. On errors the return value is null

If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.

Erros/Exceções

Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um E_WARNING será emitido.

Registro de Alterações

Versão | Descrição
7.4.0 | The flags parameter was added.

Exemplos

Exemplo #1 preg_replace_callback_array() example

<?php
$subject = 'Aaaaaa Bbb';

preg_replace_callback_array(
[
'~[a]+~i' => function ($match) {
echo strlen($match[0]), ' matches for "a" found', PHP_EOL;
},
'~[b]+~i' => function ($match) {
echo strlen($match[0]), ' matches for "b" found', PHP_EOL;
}
],
$subject
);
?>

O exemplo acima produzirá:

6 matches for "a" found
3 matches for "b" found

Veja Também

  • PCRE Patterns
  • preg_replace_callback() - Executa uma busca por expressão regular e substitui usando uma chamada de retorno
  • preg_quote() - Quote regular expression characters
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
  • preg_last_error() - Retorna o código de erro da última expressão regular PCRE executada
  • Anonymous functions


Executa uma busca por expressão regular e substitui usando uma chamada de retorno

  • « preg_replace_callback_array
  • preg_replace »
  • PHP Manual
  • Funções da PCRE
  • Executa uma busca por expressão regular e substitui usando uma chamada de retorno

preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

preg_replace_callback — Executa uma busca por expressão regular e substitui usando uma chamada de retorno

Descrição

preg_replace_callback(
string|array $pattern,
callable $callback,
string|array $subject,
int $limit = -1,
int &$count = null,
int $flags = 0
): string|array|null

O comportamento desta função é quase idêntico ao da preg_replace(), exceto pelo fato que ao invés do parâmetro replacement, deve-se especificar o parâmetro callback.

Parâmetros

pattern

A padrão usado para busca. Pode ser tanto uma string como um array de strings.

callback

Uma função de retorno que será chamada e passado um array dos elementos correspondentes na string subject. A função deve retornar a string substituta. Esta é a assinatura da função de retorno:

handler(array $matches): string

Normalmente será necessária uma função callback para preg_replace_callback() em apenas um lugar. Neste caso você pode-se usar uma função anônima para declarar a função de retorno dentro da chamada a preg_replace_callback(). Desta forma, todas as informações para a chamada estarão no mesmo lugar e não polui o espaço de nomes com um nome de função que não é usado em nenhum outro lugar.

Exemplo #1 preg_replace_callback() e função anônima

<?php
/* um filtro de linha de comando em estilo unix para converter maiúsculas
* no início de parágrafos para letras minúsculas */
$fp = fopen("php://stdin", "r") or die("can't read stdin");
while (!feof($fp)) {
$line = fgets($fp);
$line = preg_replace_callback(
'|<p>\s*\w|',
function ($matches) {
return strtolower($matches[0]);
},
$line
);
echo $line;
}
fclose($fp);
?>

subject

A string ou array com strings para procurar e modificar.

limit

O máximo de possíveis substituições para cada padrão em cada string de subject. O padrão é -1 (sem limite).

count

Se especificado, esta variável irá ser preenchida com o número de substituições feitas.

flags

flags pode ser uma combinação das opções PREG_OFFSET_CAPTURE e PREG_UNMATCHED_AS_NULL, que influenciam o formato do array de correspondências. Veja a descrição em preg_match() para mais detalhes.

Valor Retornado

preg_replace_callback() retorna um array se o parâmetro subject for um array, ou uma string caso contrário. Em erros o valor de retorno é null.

Se ocorrer correspondência, a nova string será retornada, caso contrário subject será retornada inalterada.

Erros/Exceções

Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um E_WARNING será emitido.

Registro de Alterações

Versão | Descrição
7.4.0 | O parâmetro flags foi adicionado.

Exemplos

Exemplo #2 Exemplo de preg_replace_callback()

<?php
// este texto foi usado em 2002
// se quisermos atualizá-lo para 2003
$text = "Dia da mentira é 01/04/2002\n";
$text.= "Último Natal foi em 25/12/2001\n";
// a chamada de retorno
function next_year($matches)
{
// como sempre: $matches[0] é a correspondência completa
// $matches[1] é a correspondência do primeiro sub-padrão
// envolvido por '(...)' e assim por diante
return $matches[1].($matches[2]+1);
}
echo preg_replace_callback(
"|(\d{2}/\d{2}/)(\d{4})|",
"next_year",
$text);

?>

O exemplo acima produzirá:

Dia da mentira é 01/04/2003
Último Natal foi em 25/12/2002

Exemplo #3 preg_replace_callback() usando estrutura recursiva para manipular código BB encapsulado

<?php
$input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";

function parseTagsRecursive($input)
{

$regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';

if (is_array($input)) {
$input = '<div style="margin-left: 10px">'.$input[1].'</div>';
}

return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}

$output = parseTagsRecursive($input);

echo $output;
?>

Veja Também

  • PCRE Patterns
  • preg_replace_callback_array() - Perform a regular expression search and replace using callbacks
  • preg_quote() - Quote regular expression characters
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
  • preg_last_error() - Retorna o código de erro da última expressão regular PCRE executada
  • Funções Anônimas


Realiza uma pesquisa por uma expressão regular e substitui

  • « preg_replace_callback
  • preg_split »
  • PHP Manual
  • Funções da PCRE
  • Realiza uma pesquisa por uma expressão regular e substitui

preg_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_replace — Realiza uma pesquisa por uma expressão regular e substitui

Descrição

preg_replace(
string|array $pattern,
string|array $replacement,
string|array $subject,
int $limit = -1,
int &$count = null
): string|array|null

Pesquisa subject por correspondências a pattern e substitui-as por replacement.

Para procurar correspondência por uma string exata, e não por um padrão, considere usar str_replace() ou str_ireplace() no lugar desta função.

Parâmetros

pattern

O padrão a ser pesquisado. Pode ser uma string ou um array com strings.

Diversos modificadores PCRE também estão disponíveis.

replacement

A string ou array com strings para substituir. Se este parâmetro é uma string e o parâmetro pattern é um array, todos patterns vão ser substituídos por esta string. Se ambos pattern e replacement parâmetros são arrays, cada pattern vai ser substituído pelo seureplacement correspondente. Se houver menos elementos no replacement array do que no pattern array, qualquer pattern extra será substituído por uma string vazia.

replacement pode conter referências na forma \n ou $n, com a última forma sendo a preferível. Cada referência desse tipo será substituída pelo texto capturado pelo n-ésimo padrão entre parentêses. n pode ser de 0 to 99, e \0 ou $0 referem-se ao texto correspondente ao padrão inteiro. Parênteses de abertura são contados da esquerda para direita (iniciando em 1) para obter o número do sub-padrão de captura. Note que barra invertida em strings literais podem precisar ser escapados.

Quando se trabalha com uma padrão de substituição, onde a referência passada é imediatamente seguida por outro número (isto é, inserido um número literal imediatamente após um padrão correspondente), não se pode usar a habitual notação \1 para a referência passada. \11, por exemplo, iria confundir a função preg_replace() pois ela não saberá se o desejado é a referência \1 seguida por um literal 1, ou a referência \11 seguida por nada. Neste caso, a solução é usar ${1}1. Isto cria uma referência $1 isolada, deixando o 1 como um literal.

Ao usar o modificador e que está defasado, esta função escapa alguns caracteres (nomeadamente ', ", \ e NULL) nas strings que substituem as referências passadas. Isto é feito para garantir que nenhum erro de sintaxe surja de uso de referência passada com aspas simples ou duplas (por exemplo, 'strlen(\'$1\')+strlen("$2")'). Certifique-se de estar ciente da sintaxe string do PHP para ter uma visão exata de como será a string interpretada.

subject

String ou um array com strings para pesquisar e substituir.

Se subject é um array, então a pesquisa e a substituição são executadas em cada entrada do subject, e o valor de retorno é um array também.

Se o array subject for associativo, as chaves são preservadas no valor de retorno.

limit

O máximo possível de substituições para cada padrão em cada string de subject. O padrão é -1 (sem limite).

count

Se especificada, essa variável será preenchida com o número de substiuições realizadas.

Valor Retornado

preg_replace() retorna um array se o parâmetro subject é um array, caso contrário retorna uma string.

Se correspondências forem encontradas, o novo subject será devolvido, caso contrário subject será devolvido inalterado ou null se um erro ocorreu.

Erros/Exceções

Usar o modificador "\e" é um erro; um erro de nível E_WARNING é emitido neste caso.

Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um E_WARNING será emitido.

Exemplos

Exemplo #1 Usando referências passadas seguidas por literais numéricos

<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>

O exemplo acima produzirá:

April1,2003

Exemplo #2 Usando array indexados com preg_replace()

<?php
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);
?>

O exemplo acima produzirá:

The bear black slow jumped over the lazy dog.

Ao ordenar padrões e substituições com ksort, obtém-se o desejado.

<?php
ksort($patterns);
ksort($replacements);
echo preg_replace($patterns, $replacements, $string);
?>

O exemplo acima produzirá:

The slow black bear jumped over the lazy dog.

Exemplo #3 Substituindo vários valores

<?php
$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
'/^\s*{(\w+)}\s*=/');
$replace = array ('\3/\4/\1\2', '$\1 =');
echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27');
?>

O exemplo acima produzirá:

$startDate = 5/27/1999

Exemplo #4 Removendo espaços

Este exemplo retira o excesso de espaçoes em branco de uma string.

<?php
$str = 'foo o';
$str = preg_replace('/\s\s+/', ' ', $str);
// This will be 'foo o' now
echo $str;
?>

Exemplo #5 Usando o parâmetro count

<?php
$count = 0;

echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $count);
echo $count; //3
?>

O exemplo acima produzirá:

xp***to
3

Notas

Nota:

Ao usar arrays com pattern e replacement, as chaves são processadas na ordem que aparecem no array. Isto não é necessariamente o mesmo que a ordem de índice numérico. Se é feito o uso dos índices para indentificar qual pattern deve ser substituído por qual replacement, é necessário executar a função ksort() em cada array antes de chamar a função preg_replace().

Nota:

Quando ambos pattern e replacement forem arrays, as regras de correspondência irão operar sequancialmente. Isto é, o segundo par pattern/replacement irá operar na string que resulta do primeiro par pattern/replacement, e não da string original. Se for desejado simular substituições operando em paralelo, como inversão de dois valores, substitua um padrão por uma referência intermediária, e então em um par posterior substitua a referência intermediária pelo substituto desejado.

<?php
$p = array('/a/', '/b/', '/c/');
$r = array('b', 'c', 'd');
print_r(preg_replace($p, $r, 'a'));
// prints d
?>

Veja Também

  • Padrões PCRE
  • preg_quote() - Quote regular expression characters
  • preg_filter() - Perform a regular expression search and replace
  • preg_match() - Perform a regular expression match
  • preg_replace_callback() - Executa uma busca por expressão regular e substitui usando uma chamada de retorno
  • preg_split() - Split string by a regular expression
  • preg_last_error() - Retorna o código de erro da última expressão regular PCRE executada
  • str_replace() - Substitui todas as ocorrências da string de pesquisa com a string de substituição


Split string by a regular expression

  • « preg_replace
  • ssdeep »
  • PHP Manual
  • Funções da PCRE
  • Split string by a regular expression

preg_split

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_split — Split string by a regular expression

Descrição

preg_split(
string $pattern,
string $subject,
int $limit = -1,
int $flags = 0
): array|false

Split the given string by a regular expression.

Parâmetros

pattern

The pattern to search for, as a string.

subject

The input string.

limit

If specified, then only substrings up to limit are returned with the rest of the string being placed in the last substring. A limit of -1 or 0 means "no limit".

flags

flags can be any combination of the following flags (combined with the | bitwise operator):

PREG_SPLIT_NO_EMPTY
If this flag is set, only non-empty pieces will be returned by preg_split().
PREG_SPLIT_DELIM_CAPTURE
If this flag is set, parenthesized expression in the delimiter pattern will be captured and returned as well.
PREG_SPLIT_OFFSET_CAPTURE

If this flag is set, for every occurring match the appendant string offset will also be returned. Note that this changes the return value in an array where every element is an array consisting of the matched string at offset 0 and its string offset into subject at offset 1.

Valor Retornado

Returns an array containing substrings of subject split along boundaries matched by pattern, ou false em caso de falha.

Erros/Exceções

Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um E_WARNING será emitido.

Exemplos

Exemplo #1 preg_split() example : Get the parts of a search string

<?php
// split the phrase by any number of commas or space characters,
// which include " ", \r, \t, \n and \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
?>

O exemplo acima produzirá:

Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)

Exemplo #2 Splitting a string into component characters

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

O exemplo acima produzirá:

Array
(
    [0] => s
    [1] => t
    [2] => r
    [3] => i
    [4] => n
    [5] => g
)

Exemplo #3 Splitting a string into matches and their offsets

<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

O exemplo acima produzirá:

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)

Notas

Dica

If you don't need the power of regular expressions, you can choose faster (albeit simpler) alternatives like explode() or str_split().

Dica

If matching fails, an array with a single element containing the input string will be returned.

Veja Também

  • PCRE Patterns
  • preg_quote() - Quote regular expression characters
  • implode() - Join array elements with a string
  • preg_match() - Perform a regular expression match
  • preg_match_all() - Perform a global regular expression match
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
  • preg_last_error() - Retorna o código de erro da última expressão regular PCRE executada


ssdeep Fuzzy Hashing

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • ssdeep Funções
    • ssdeep_fuzzy_compare — Calculates the match score between two fuzzy hash signatures
    • ssdeep_fuzzy_hash_filename — Create a fuzzy hash from a file
    • ssdeep_fuzzy_hash — Create a fuzzy hash from a string


Introdução

ssdeep é uma utilidade para criar e comparar hashes difusos ou » hashing por partes acionado por contexto .

O hashing difuso pode corresponder a assinaturas que têm "...sequências de bytes idênticos na mesma ordem, embora bytes entre essas sequências possam ser diferentes em conteúdo e comprimento". (» Página do projeto ssdeep)

Esta extensão fornece funções para criar e comparar hashes difusos.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

Esta extensão requer a biblioteca » ssdeep.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/ssdeep.


  • « Tipos de Recurso
  • ssdeep Funções »
  • PHP Manual
  • ssdeep
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


ssdeep Funções

Índice

  • ssdeep_fuzzy_compare — Calculates the match score between two fuzzy hash signatures
  • ssdeep_fuzzy_hash_filename — Create a fuzzy hash from a file
  • ssdeep_fuzzy_hash — Create a fuzzy hash from a string


Calculates the match score between two fuzzy hash signatures

  • « ssdeep Funções
  • ssdeep_fuzzy_hash_filename »
  • PHP Manual
  • ssdeep Funções
  • Calculates the match score between two fuzzy hash signatures

ssdeep_fuzzy_compare

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_compare — Calculates the match score between two fuzzy hash signatures

Descrição

ssdeep_fuzzy_compare(string $signature1, string $signature2): int

Calculates the match score between signature1 and signature2 using » context-triggered piecewise hashing, and returns the match score.

Parâmetros

signature1

The first fuzzy hash signature string.

signature2

The second fuzzy hash signature string.

Valor Retornado

Returns an integer from 0 to 100 on success, false otherwise.


Create a fuzzy hash from a file

  • « ssdeep_fuzzy_compare
  • ssdeep_fuzzy_hash »
  • PHP Manual
  • ssdeep Funções
  • Create a fuzzy hash from a file

ssdeep_fuzzy_hash_filename

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash_filename — Create a fuzzy hash from a file

Descrição

ssdeep_fuzzy_hash_filename(string $file_name): string

ssdeep_fuzzy_hash_filename() calculates the hash of the file specified by file_name using » context-triggered piecewise hashing, and returns that hash.

Parâmetros

file_name

The filename of the file to hash.

Valor Retornado

Returns a string on success, false otherwise.


Create a fuzzy hash from a string

  • « ssdeep_fuzzy_hash_filename
  • Strings »
  • PHP Manual
  • ssdeep Funções
  • Create a fuzzy hash from a string

ssdeep_fuzzy_hash

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash — Create a fuzzy hash from a string

Descrição

ssdeep_fuzzy_hash(string $to_hash): string

ssdeep_fuzzy_hash() calculates the hash of to_hash using » context-triggered piecewise hashing, and returns that hash.

Parâmetros

to_hash

The input string.

Valor Retornado

Returns a string on success, false otherwise.


Strings

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções de String
    • addcslashes — Quote string with slashes in a C style
    • addslashes — Adiciona barras a uma string
    • bin2hex — Converte um dado binário em representação hexadecimal
    • chop — Sinônimo de rtrim
    • chr — Generate a single-byte string from a number
    • chunk_split — Divide uma string em pedaços menores
    • convert_cyr_string — Converte de um conjunto de caracteres cirílico para outro
    • convert_uudecode — Decodifica uma string codificada com uuencode
    • convert_uuencode — Codifica uma string com uuencode
    • count_chars — Return information about characters used in a string
    • crc32 — Calcula polinômio crc32 de uma string
    • crypt — One-way string hashing
    • echo — Output one or more strings
    • explode — Split a string by a string
    • fprintf — Escreve uma string formatada para um fluxo
    • get_html_translation_table — Returns the translation table used by htmlspecialchars and htmlentities
    • hebrev — Convert logical Hebrew text to visual text
    • hebrevc — Convert logical Hebrew text to visual text with newline conversion
    • hex2bin — Decodifica uma string binária codificada em hexadecimal
    • html_entity_decode — Convert HTML entities to their corresponding characters
    • htmlentities — Convert all applicable characters to HTML entities
    • htmlspecialchars_decode — Convert special HTML entities back to characters
    • htmlspecialchars — Convert special characters to HTML entities
    • implode — Join array elements with a string
    • join — Sinônimo de implode
    • lcfirst — Torna minúsculo o primeiro caractere de uma string
    • levenshtein — Calculate Levenshtein distance between two strings
    • localeconv — Get numeric formatting information
    • ltrim — Retira espaços em branco (ou outros caracteres) do início de uma string
    • md5_file — Calculates the md5 hash of a given file
    • md5 — Calculate the md5 hash of a string
    • metaphone — Calculate the metaphone key of a string
    • money_format — Formata um número como uma string de moeda
    • nl_langinfo — Query language and locale information
    • nl2br — Inserts HTML line breaks before all newlines in a string
    • number_format — Format a number with grouped thousands
    • ord — Converte o primeiro byte de uma string para um valor entre 0 e 255
    • parse_str — Converte a string em variáveis
    • print — Mostra uma string
    • printf — Output a formatted string
    • quoted_printable_decode — Converte uma string Quoted-Printable para uma string de 8 bits
    • quoted_printable_encode — Converte uma string de 8 bits para uma string Quoted-Printable
    • quotemeta — Quote meta characters
    • rtrim — Retira espaço em branco (ou outros caracteres) do final de uma string
    • setlocale — Set locale information
    • sha1_file — Calcula a hash sha1 de um arquivo
    • sha1 — Calculate the sha1 hash of a string
    • similar_text — Calcula a similaridade entre duas strings
    • soundex — Calcula a chave soundex de uma string
    • sprintf — Return a formatted string
    • sscanf — Interpreta a entrada de uma string de acordo com um formato
    • str_contains — Determina se uma string contém uma substring fornecida
    • str_decrement — Decrement an alphanumeric string
    • str_ends_with — Verifica se uma string termina com uma substring fornecida
    • str_getcsv — Analisa uma string CSV e retorna os dados em um array
    • str_increment — Increment an alphanumeric string
    • str_ireplace — Case-insensitive version of str_replace
    • str_pad — Pad a string to a certain length with another string
    • str_repeat — Repete uma string
    • str_replace — Substitui todas as ocorrências da string de pesquisa com a string de substituição
    • str_rot13 — Executa a transformação rot13 em uma string
    • str_shuffle — Embaralha uma string aleatoriamente
    • str_split — Convert a string to an array
    • str_starts_with — Verifica se uma string começa com uma substring fornecida
    • str_word_count — Retorna informação sobre palavras usadas em uma string
    • strcasecmp — Binary safe case-insensitive string comparison
    • strchr — Sinônimo de strstr
    • strcmp — Binary safe string comparison
    • strcoll — Locale based string comparison
    • strcspn — Encontra o tamanho do segmento inicial que não corresponde à máscara
    • strip_tags — Retira as tags HTML e PHP de uma string
    • stripcslashes — Remove o escape de strings escapadas com addcslashes
    • stripos — Find the position of the first occurrence of a case-insensitive substring in a string
    • stripslashes — Desfaz os escapes de uma string escapada
    • stristr — Case-insensitive strstr
    • strlen — Retorna o tamanho de uma string
    • strnatcasecmp — Comparação de strings insensível a maiúsculas/minúsculas usando o algoritmo de "ordem natural"
    • strnatcmp — String comparisons using a "natural order" algorithm
    • strncasecmp — Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres
    • strncmp — Binary safe string comparison of the first n characters
    • strpbrk — Procura na string por um dos caracteres de um conjunto
    • strpos — Find the position of the first occurrence of a substring in a string
    • strrchr — Find the last occurrence of a character in a string
    • strrev — Reverte uma string
    • strripos — Find the position of the last occurrence of a case-insensitive substring in a string
    • strrpos — Find the position of the last occurrence of a substring in a string
    • strspn — Encontra o comprimento do segmento inicial de uma string composta totalmente de caracteres contidos em uma máscara informada
    • strstr — Find the first occurrence of a string
    • strtok — Tokenize string
    • strtolower — Converte uma string para minúsculas
    • strtoupper — Make a string uppercase
    • strtr — Translate characters or replace substrings
    • substr_compare — Comparação binária de duas strings a partir de uma posição até n caracteres
    • substr_count — Conta o número de ocorrências de uma substring
    • substr_replace — Substitui o texto dentro de uma parte de uma string
    • substr — Retorna parte de uma string
    • trim — Retira espaço (ou outros caracteres) do início e do final de uma string
    • ucfirst — Make a string's first character uppercase
    • ucwords — Converte para maiúsculas o primeiro caractere de cada palavra
    • utf8_decode — Converts a string from UTF-8 to ISO-8859-1, replacing invalid or unrepresentable characters
    • utf8_encode — Converts a string from ISO-8859-1 to UTF-8
    • vfprintf — Escreve uma string formatada para um fluxo
    • vprintf — Output a formatted string
    • vsprintf — Return a formatted string
    • wordwrap — Quebra uma string em um dado número de caracteres
  • Registro de Alterações


Introdução

Todas estas funções manipulam strings de várias formas. Algumas seções mais especializadas podem ser encontradas nas seções de expressões regulares e manipulação de URLs.

Para informações sobre como as strings funcionam, especialmente sobre o uso de aspas simples, aspas duplas e sequências de escape veja o verbete sobre Strings na seção Tipos do manual.


Instalação

Nenhuma instalação é necessária para usar estas funções; elas fazem parte do núcleo do PHP.

A partir do PHP 8.1.0, crypt() pode ser compilada contra uma bilbioteca de criptografia de sistema especificando-se a opção de configuração --with-external-libcrypt.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

CRYPT_SALT_LENGTH (int)
CRYPT_STD_DES int
Indica se hashes baseados em DES padrão são suportados em crypt(). Sempre 1.
CRYPT_EXT_DES int
Indica se hashes baseados em DES estendido são suportados em crypt(). Sempre 1.
CRYPT_MD5 int
Indica se hashes MD5 são suportados em crypt(). Sempre 1.
CRYPT_BLOWFISH int
Indica se hashes Blowfish são suportados em crypt(). Sempre 1.
CRYPT_SHA256 (int)
Indica se hashes SHA-256 hashes são suportados em crypt(). Sempre 1.
CRYPT_SHA512 (int)
Indica se hashes SHA-512 hashes são suportados em crypt(). Sempre 1.
HTML_SPECIALCHARS (int)
HTML_ENTITIES (int)
ENT_COMPAT (int)
ENT_QUOTES (int)
ENT_NOQUOTES (int)
ENT_IGNORE (int)
ENT_SUBSTITUTE (int)
ENT_DISALLOWED (int)
ENT_HTML401 (int)
ENT_XML1 (int)
ENT_XHTML (int)
ENT_HTML5 (int)
CHAR_MAX (int)
LC_CTYPE (int)
LC_NUMERIC (int)
LC_TIME (int)
LC_COLLATE (int)
LC_MONETARY (int)
LC_ALL (int)
LC_MESSAGES (int)
STR_PAD_LEFT (int)
STR_PAD_RIGHT (int)
STR_PAD_BOTH (int)


Funções de String

Veja Também

Para funções de manipulação de string mais poderosas, veja as funções de expressões regulares estilo Perl. Para trabalhar com strings com codificação multibyte, veja as funções Multibyte String.

Índice

  • addcslashes — Quote string with slashes in a C style
  • addslashes — Adiciona barras a uma string
  • bin2hex — Converte um dado binário em representação hexadecimal
  • chop — Sinônimo de rtrim
  • chr — Generate a single-byte string from a number
  • chunk_split — Divide uma string em pedaços menores
  • convert_cyr_string — Converte de um conjunto de caracteres cirílico para outro
  • convert_uudecode — Decodifica uma string codificada com uuencode
  • convert_uuencode — Codifica uma string com uuencode
  • count_chars — Return information about characters used in a string
  • crc32 — Calcula polinômio crc32 de uma string
  • crypt — One-way string hashing
  • echo — Output one or more strings
  • explode — Split a string by a string
  • fprintf — Escreve uma string formatada para um fluxo
  • get_html_translation_table — Returns the translation table used by htmlspecialchars and htmlentities
  • hebrev — Convert logical Hebrew text to visual text
  • hebrevc — Convert logical Hebrew text to visual text with newline conversion
  • hex2bin — Decodifica uma string binária codificada em hexadecimal
  • html_entity_decode — Convert HTML entities to their corresponding characters
  • htmlentities — Convert all applicable characters to HTML entities
  • htmlspecialchars_decode — Convert special HTML entities back to characters
  • htmlspecialchars — Convert special characters to HTML entities
  • implode — Join array elements with a string
  • join — Sinônimo de implode
  • lcfirst — Torna minúsculo o primeiro caractere de uma string
  • levenshtein — Calculate Levenshtein distance between two strings
  • localeconv — Get numeric formatting information
  • ltrim — Retira espaços em branco (ou outros caracteres) do início de uma string
  • md5_file — Calculates the md5 hash of a given file
  • md5 — Calculate the md5 hash of a string
  • metaphone — Calculate the metaphone key of a string
  • money_format — Formata um número como uma string de moeda
  • nl_langinfo — Query language and locale information
  • nl2br — Inserts HTML line breaks before all newlines in a string
  • number_format — Format a number with grouped thousands
  • ord — Converte o primeiro byte de uma string para um valor entre 0 e 255
  • parse_str — Converte a string em variáveis
  • print — Mostra uma string
  • printf — Output a formatted string
  • quoted_printable_decode — Converte uma string Quoted-Printable para uma string de 8 bits
  • quoted_printable_encode — Converte uma string de 8 bits para uma string Quoted-Printable
  • quotemeta — Quote meta characters
  • rtrim — Retira espaço em branco (ou outros caracteres) do final de uma string
  • setlocale — Set locale information
  • sha1_file — Calcula a hash sha1 de um arquivo
  • sha1 — Calculate the sha1 hash of a string
  • similar_text — Calcula a similaridade entre duas strings
  • soundex — Calcula a chave soundex de uma string
  • sprintf — Return a formatted string
  • sscanf — Interpreta a entrada de uma string de acordo com um formato
  • str_contains — Determina se uma string contém uma substring fornecida
  • str_decrement — Decrement an alphanumeric string
  • str_ends_with — Verifica se uma string termina com uma substring fornecida
  • str_getcsv — Analisa uma string CSV e retorna os dados em um array
  • str_increment — Increment an alphanumeric string
  • str_ireplace — Case-insensitive version of str_replace
  • str_pad — Pad a string to a certain length with another string
  • str_repeat — Repete uma string
  • str_replace — Substitui todas as ocorrências da string de pesquisa com a string de substituição
  • str_rot13 — Executa a transformação rot13 em uma string
  • str_shuffle — Embaralha uma string aleatoriamente
  • str_split — Convert a string to an array
  • str_starts_with — Verifica se uma string começa com uma substring fornecida
  • str_word_count — Retorna informação sobre palavras usadas em uma string
  • strcasecmp — Binary safe case-insensitive string comparison
  • strchr — Sinônimo de strstr
  • strcmp — Binary safe string comparison
  • strcoll — Locale based string comparison
  • strcspn — Encontra o tamanho do segmento inicial que não corresponde à máscara
  • strip_tags — Retira as tags HTML e PHP de uma string
  • stripcslashes — Remove o escape de strings escapadas com addcslashes
  • stripos — Find the position of the first occurrence of a case-insensitive substring in a string
  • stripslashes — Desfaz os escapes de uma string escapada
  • stristr — Case-insensitive strstr
  • strlen — Retorna o tamanho de uma string
  • strnatcasecmp — Comparação de strings insensível a maiúsculas/minúsculas usando o algoritmo de "ordem natural"
  • strnatcmp — String comparisons using a "natural order" algorithm
  • strncasecmp — Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres
  • strncmp — Binary safe string comparison of the first n characters
  • strpbrk — Procura na string por um dos caracteres de um conjunto
  • strpos — Find the position of the first occurrence of a substring in a string
  • strrchr — Find the last occurrence of a character in a string
  • strrev — Reverte uma string
  • strripos — Find the position of the last occurrence of a case-insensitive substring in a string
  • strrpos — Find the position of the last occurrence of a substring in a string
  • strspn — Encontra o comprimento do segmento inicial de uma string composta totalmente de caracteres contidos em uma máscara informada
  • strstr — Find the first occurrence of a string
  • strtok — Tokenize string
  • strtolower — Converte uma string para minúsculas
  • strtoupper — Make a string uppercase
  • strtr — Translate characters or replace substrings
  • substr_compare — Comparação binária de duas strings a partir de uma posição até n caracteres
  • substr_count — Conta o número de ocorrências de uma substring
  • substr_replace — Substitui o texto dentro de uma parte de uma string
  • substr — Retorna parte de uma string
  • trim — Retira espaço (ou outros caracteres) do início e do final de uma string
  • ucfirst — Make a string's first character uppercase
  • ucwords — Converte para maiúsculas o primeiro caractere de cada palavra
  • utf8_decode — Converts a string from UTF-8 to ISO-8859-1, replacing invalid or unrepresentable characters
  • utf8_encode — Converts a string from ISO-8859-1 to UTF-8
  • vfprintf — Escreve uma string formatada para um fluxo
  • vprintf — Output a formatted string
  • vsprintf — Return a formatted string
  • wordwrap — Quebra uma string em um dado número de caracteres


Quote string with slashes in a C style

  • « Funções de String
  • addslashes »
  • PHP Manual
  • Funções de String
  • Quote string with slashes in a C style

addcslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

addcslashes — Quote string with slashes in a C style

Descrição

addcslashes(string $string, string $characters): string

Returns a string with backslashes before characters that are listed in characters parameter.

Parâmetros

string

The string to be escaped.

characters

A list of characters to be escaped. If characters contains characters \n, \r etc., they are converted in C-like style, while other non-alphanumeric characters with ASCII codes lower than 32 and higher than 126 converted to octal representation.

When you define a sequence of characters in the characters argument make sure that you know what characters come between the characters that you set as the start and end of the range.

<?php
echo addcslashes('foo[ ]', 'A..z');
// output: \f\o\o\[ \]
// All upper and lower-case letters will be escaped
// ... but so will the [\]^_`
?>
Also, if the first character in a range has a higher ASCII value than the second character in the range, no range will be constructed. Only the start, end and period characters will be escaped. Use the ord() function to find the ASCII value for a character.
<?php
echo addcslashes("zoo['.']", 'z..A');
// output: \zoo['\.']
?>

Be careful if you choose to escape characters 0, a, b, f, n, r, t and v. They will be converted to \0, \a, \b, \f, \n, \r, \t and \v, all of which are predefined escape sequences in C. Many of these sequences are also defined in other C-derived languages, including PHP, meaning that you may not get the desired result if you use the output of addcslashes() to generate code in those languages with these characters defined in characters.

Valor Retornado

Returns the escaped string.

Exemplos

characters like "\0..\37", which would escape all characters with ASCII code between 0 and 31.

Exemplo #1 addcslashes() example

<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>

Veja Também

  • stripcslashes() - Remove o escape de strings escapadas com addcslashes
  • stripslashes() - Desfaz os escapes de uma string escapada
  • addslashes() - Adiciona barras a uma string
  • htmlspecialchars() - Convert special characters to HTML entities
  • quotemeta() - Quote meta characters


Adiciona barras a uma string

  • « addcslashes
  • bin2hex »
  • PHP Manual
  • Funções de String
  • Adiciona barras a uma string

addslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

addslashes — Adiciona barras a uma string

Descrição

addslashes(string $string): string

Retorna uma string com barras adicionadas antes de caracteres que precisam ser escapados. Estes caracteres são:

  • aspas simples (')
  • aspas duplas (")
  • barra invertida (\)
  • NUL (o byte NUL)

Um caso de uso de addslashes() é o escape dos caracteres mencionados em uma string que deve ser avaliada pelo PHP:

<?php
$str = "O'Reilly?";
eval("echo '" . addslashes($str) . "';");
?>

A função addslashes() às vezes é usada incorretamente para tentar prevenir Injeção de SQL. Em vez disso, funções de escape específicas do banco de dados e/ou instruções preparadas devem ser usadas.

Parâmetros

string

A string a ser escapada.

Valor Retornado

Retorna a string com escapes.

Exemplos

Exemplo #1 Exemplo com addslashes()

<?php
$str = "Seu nome é O'reilly?";

// Mostra: Seu nome é O\'reilly?
echo addslashes($str);
?>

Veja Também

  • stripcslashes() - Remove o escape de strings escapadas com addcslashes
  • stripslashes() - Desfaz os escapes de uma string escapada
  • addcslashes() - Quote string with slashes in a C style
  • htmlspecialchars() - Convert special characters to HTML entities
  • quotemeta() - Quote meta characters
  • get_magic_quotes_gpc() - Obtém a configuração atual de magic_quotes_gpc


Converte um dado binário em representação hexadecimal

  • « addslashes
  • chop »
  • PHP Manual
  • Funções de String
  • Converte um dado binário em representação hexadecimal

bin2hex

(PHP 4, PHP 5, PHP 7, PHP 8)

bin2hex — Converte um dado binário em representação hexadecimal

Descrição

bin2hex(string $string): string

Retorna uma string ASCII uma representação hexadecimal de string. A conversão é feita byte-wise com o high-nibble primeiro.

Parâmetros

string

Uma string.

Valor Retornado

Retorna a representação hexadecimal de uma dada string.

Exemplos

Exemplo #1 bin2hex() example

<?php

$hex = bin2hex('Hello world!');

var_dump($hex);
var_dump(hex2bin($hex));
?>

O exemplo acima produzirá:

string(24) "48656c6c6f20776f726c6421"
string(12) "Hello world!"

Veja Também

  • hex2bin() - Decodifica uma string binária codificada em hexadecimal
  • pack() - Empacota dados em uma string binária


Sinônimo de rtrim

  • « bin2hex
  • chr »
  • PHP Manual
  • Funções de String
  • Sinônimo de rtrim

chop

(PHP 4, PHP 5, PHP 7, PHP 8)

chop — Sinônimo de rtrim()

Descrição

Esta função é um apelido para: rtrim().

Notas

Nota:

chop() é diferente da função do Perl chop(), que remove o último caractere da string.


Generate a single-byte string from a number

  • « chop
  • chunk_split »
  • PHP Manual
  • Funções de String
  • Generate a single-byte string from a number

chr

(PHP 4, PHP 5, PHP 7, PHP 8)

chr — Generate a single-byte string from a number

Descrição

chr(int $codepoint): string

Returns a one-character string containing the character specified by interpreting codepoint as an unsigned integer.

This can be used to create a one-character string in a single-byte encoding such as ASCII, ISO-8859, or Windows 1252, by passing the position of a desired character in the encoding's mapping table. However, note that this function is not aware of any string encoding, and in particular cannot be passed a Unicode code point value to generate a string in a multibyte encoding like UTF-8 or UTF-16.

This function complements ord().

Parâmetros

codepoint

An integer between 0 and 255.

Values outside the valid range (0..255) will be bitwise and'ed with 255, which is equivalent to the following algorithm:

while ($bytevalue < 0) {
$bytevalue += 256;
}
$bytevalue %= 256;

Valor Retornado

A single-character string containing the specified byte.

Registro de Alterações

Versão | Descrição
7.4.0 | The function no longer silently accepts unsupported codepoints, and casts these to 0.

Exemplos

Exemplo #1 chr() example

<?php
// Assumes the string will be used as ASCII or an ASCII-compatible encoding

$str = "The string ends in escape: ";
$str .= chr(27); /* add an escape character at the end of $str */

/* Often this is more useful */

$str = sprintf("The string ends in escape: %c", 27);
?>

Exemplo #2 Overflow behavior

<?php
echo chr(-159), chr(833), PHP_EOL;
?>

O exemplo acima produzirá:

aA

Exemplo #3 Building a UTF-8 string from individual bytes

<?php
$str = chr(240) . chr(159) . chr(144) . chr(152);
echo $str;
?>

O exemplo acima produzirá:

??

Veja Também

  • sprintf() - Return a formatted string with a format string of %c
  • ord() - Converte o primeiro byte de uma string para um valor entre 0 e 255
  • An » ASCII-table
  • mb_chr() - Retorna um caractere pelo valor do ponto de código Unicode
  • IntlChar::chr() - Retorna um caractere Unicode por valor de ponto de código


Divide uma string em pedaços menores

  • « chr
  • convert_cyr_string »
  • PHP Manual
  • Funções de String
  • Divide uma string em pedaços menores

chunk_split

(PHP 4, PHP 5, PHP 7, PHP 8)

chunk_split — Divide uma string em pedaços menores

Descrição

chunk_split(string $string, int $length = 76, string $separator = "\r\n"): string

Pode ser usada para dividir uma string em pedaços menores, o que é útil para por exemplo converter a saída de base64_encode() para adequação às semânticas RFC 2045 . Ela insere um separador definido em separator a cada número de caracteres definido emlength.

Parâmetros

string

A string a ser dividida.

length

O tamanho do pedaço.

separator

A sequência de terminação de linha.

Valor Retornado

Retorna a string dividida.

Exemplos

Exemplo #1 Exemplo da chunk_split()

<?php
// formata $data usando semântica RFC 2045
$new_string = chunk_split(base64_encode($data));
?>

Veja Também

  • str_split() - Convert a string to an array
  • explode() - Split a string by a string
  • wordwrap() - Quebra uma string em um dado número de caracteres
  • » RFC 2045


Converte de um conjunto de caracteres cirílico para outro

  • « chunk_split
  • convert_uudecode »
  • PHP Manual
  • Funções de String
  • Converte de um conjunto de caracteres cirílico para outro

convert_cyr_string

(PHP 4, PHP 5, PHP 7)

convert_cyr_string — Converte de um conjunto de caracteres cirílico para outro

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

convert_cyr_string(string $str, string $from, string $to): string

Converte de um conjunto de caracteres cirílico para outro.

Parâmetros

str

A string a ser convertida.

from

A fonte do conjunto de caracteres cirílico, como um único caractere.

to

O conjunto de caracteres cirílico alvo, como um único caractere.

Os caracteres suportados são:

  • k - koi8-r
  • w - windows-1251
  • i - iso8859-5
  • a - x-cp866
  • d - x-cp866
  • m - x-mac-cyrillic

Valor Retornado

Retorna a string convertida.

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • mb_convert_encoding() - Converte uma string de uma codificação de caracteres para outra
  • iconv() - Converte uma string de uma codificação de caracteres para outra


Decodifica uma string codificada com uuencode

  • « convert_cyr_string
  • convert_uuencode »
  • PHP Manual
  • Funções de String
  • Decodifica uma string codificada com uuencode

convert_uudecode

(PHP 5, PHP 7, PHP 8)

convert_uudecode — Decodifica uma string codificada com uuencode

Descrição

convert_uudecode(string $string): string|false

convert_uudecode() decodifica uma string codificada com uuencode.

Nota: convert_uudecode() não aceita a linha begin nem a linha end, que são parte dos arquivos codificados com uuencode.

Parâmetros

string

Os dados codificados com uuencode.

Valor Retornado

Retorna os dados decodificados como uma string ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo da convert_uudecode()

<?php
echo convert_uudecode("+22!L;W9E(%!(4\"$`\n`");
?>

O exemplo acima produzirá:

I love PHP!

Veja Também

  • convert_uuencode() - Codifica uma string com uuencode


Codifica uma string com uuencode

  • « convert_uudecode
  • count_chars »
  • PHP Manual
  • Funções de String
  • Codifica uma string com uuencode

convert_uuencode

(PHP 5, PHP 7, PHP 8)

convert_uuencode — Codifica uma string com uuencode

Descrição

convert_uuencode(string $string): string

convert_uuencode() codifica uma string usando o algoritmo uuencode.

Uuencode traduz toda string (incluindo dados binários) em caracteres imprimíveis, fazendo eles seguro para transmissão em rede. Dados uuencoded fica 35% maior que o original.

Nota: convert_uuencode() não produz a linha begin nem a linha end, que são parte dos arquivos codificados com uuencode.

Parâmetros

string

A informação a ser codificada.

Valor Retornado

Retorna os dados convertidos com uuencode.

Registro de Alterações

Versão | Descrição
8.0.0 | Antes desta versão, tentar converter uma string vazia retornava false sem nenhuma razão particular.

Exemplos

Exemplo #1 Exemplo da convert_uuencode()

<?php
$some_string = "test\ntext text\r\n";

echo convert_uuencode($some_string);
?>

O exemplo acima produzirá:

0=&5S=`IT97AT('1E>'0-"@``
`

Veja Também

  • convert_uudecode() - Decodifica uma string codificada com uuencode
  • base64_encode() - Codifica dados com MIME base64


Return information about characters used in a string

  • « convert_uuencode
  • crc32 »
  • PHP Manual
  • Funções de String
  • Return information about characters used in a string

count_chars

(PHP 4, PHP 5, PHP 7, PHP 8)

count_chars — Return information about characters used in a string

Descrição

count_chars(string $string, int $mode = 0): array|string

Counts the number of occurrences of every byte-value (0..255) in string and returns it in various ways.

Parâmetros

string

The examined string.

mode

See return values.

Valor Retornado

Depending on mode count_chars() returns one of the following:

  • 0 - an array with the byte-value as key and the frequency of every byte as value.
  • 1 - same as 0 but only byte-values with a frequency greater than zero are listed.
  • 2 - same as 0 but only byte-values with a frequency equal to zero are listed.
  • 3 - a string containing all unique characters is returned.
  • 4 - a string containing all not used characters is returned.

Registro de Alterações

Versão | Descrição
8.0.0 | Prior to this version, the function returned false on failure.

Exemplos

Exemplo #1 count_chars() example

<?php
$data = "Two Ts and one F.";

foreach (count_chars($data, 1) as $i => $val) {
echo "There were $val instance(s) of \"" , chr($i) , "\" in the string.\n";
}
?>

O exemplo acima produzirá:

There were 4 instance(s) of " " in the string.
There were 1 instance(s) of "." in the string.
There were 1 instance(s) of "F" in the string.
There were 2 instance(s) of "T" in the string.
There were 1 instance(s) of "a" in the string.
There were 1 instance(s) of "d" in the string.
There were 1 instance(s) of "e" in the string.
There were 2 instance(s) of "n" in the string.
There were 2 instance(s) of "o" in the string.
There were 1 instance(s) of "s" in the string.
There were 1 instance(s) of "w" in the string.

Veja Também

  • strpos() - Find the position of the first occurrence of a substring in a string
  • substr_count() - Conta o número de ocorrências de uma substring


Calcula polinômio crc32 de uma string

  • « count_chars
  • crypt »
  • PHP Manual
  • Funções de String
  • Calcula polinômio crc32 de uma string

crc32

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

crc32 — Calcula polinômio crc32 de uma string

Descrição

crc32(string $string): int

Gera a soma de verificação de redundância cíclica de 32-bits de comprimento da string. É usado geralmente para validar a integridade de um dado sendo transferido.

Aviso

Pelo fato do tipo inteiro do PHP ser com sinal, muitas somas de verificação crc32 resultarão em inteiros negativos em plataformas de 32 bits. Em instalações de 64 bits todos os resultados de crc32() serão inteiros positivos.

Por isso, é necessário usar o formatador "%u" da função sprintf() ou printf() para obter a representação em string da soma de verificação sem sinal da função crc32() em formato decimal.

Para uma representação hexadecimal da soma de verificação, pode-se usar tanto o formatador "%x" de sprintf() ou printf() quanto as funções de conversão dechex(), ambas destas soluções também tomam o cuidado de converter o resultado de crc32() para um inteiro sem sinal.

Foi considerado que instalações de 64 bits também retornassem inteiros negativos para valores mais altos de resultados, porém isto iria quebrar a conversão para hexadecimal, já que os negativos teriam um deslocamento extra de 0xFFFFFFFF######## neste caso. Como a representação hexadecimal parece ser o uso de caso mais comum, decidiu-se não quebrar esta conversão mesmo que ela quebre comparações diretas em decimal em aproximadamente 50% dos casos ao mover de 32 para 64 bits.

Em retrospecto, fazer com que a função retornasse um inteiro talvez não tenha sido a melhor ideia, e retornar uma representação hexadecimal em string diretamente (como, por exemplo, a função md5() faz) poderia ter sido um plano melhor para se começar.

Para uma solução mais portável, pode-se considerar a função genérica hash(). hash("crc32b", $str) retornará a mesma string que str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT).

Parâmetros

string

Os dados.

Valor Retornado

Retorna a soma de verificação crc32 da string como um inteiro.

Exemplos

Exemplo #1 Mostrando uma soma de verificação crc32

Este exemplo mostra como exibir uma soma de verificação convertida com a função printf():

<?php
$checksum = crc32("The quick brown fox jumped over the lazy dog.");
printf("%u\n", $checksum);
?>

Veja Também

  • hash() - Generate a hash value (message digest)
  • md5() - Calculate the md5 hash of a string
  • sha1() - Calculate the sha1 hash of a string


One-way string hashing

  • « crc32
  • echo »
  • PHP Manual
  • Funções de String
  • One-way string hashing

crypt

(PHP 4, PHP 5, PHP 7, PHP 8)

crypt — One-way string hashing

Aviso

Esta função (ainda) não é compatível com dados binários!

Descrição

crypt(string $string, string $salt): string

crypt() will return a hashed string using the standard Unix DES-based algorithm or alternative algorithms. password_verify() is compatible with crypt(). Therefore, password hashes created by crypt() can be used with password_verify().

Prior to PHP 8.0.0, the salt parameter was optional. However, crypt() creates a weak hash without the salt, and raises an E_NOTICE error without it. Make sure to specify a strong enough salt for better security.

password_hash() uses a strong hash, generates a strong salt, and applies proper rounds automatically. password_hash() is a simple crypt() wrapper and compatible with existing password hashes. Use of password_hash() is encouraged.

The hash type is triggered by the salt argument. If no salt is provided, PHP will auto-generate either a standard two character (DES) salt, or a twelve character (MD5), depending on the availability of MD5 crypt(). PHP sets a constant named CRYPT_SALT_LENGTH which indicates the longest valid salt allowed by the available hashes.

The standard DES-based crypt() returns the salt as the first two characters of the output. It also only uses the first eight characters of string, so longer strings that start with the same eight characters will generate the same result (when the same salt is used).

The following hash types are supported:

  • CRYPT_STD_DES - Standard DES-based hash with a two character salt from the alphabet "./0-9A-Za-z". Using invalid characters in the salt will cause crypt() to fail.
  • CRYPT_EXT_DES - Extended DES-based hash. The "salt" is a 9-character string consisting of an underscore followed by 4 characters of iteration count and 4 characters of salt. Each of these 4-character strings encode 24 bits, least significant character first. The values 0 to 63 are encoded as ./0-9A-Za-z. Using invalid characters in the salt will cause crypt() to fail.
  • CRYPT_MD5 - MD5 hashing with a twelve character salt starting with $1$
  • CRYPT_BLOWFISH - Blowfish hashing with a salt as follows: "$2a$", "$2x$" or "$2y$", a two digit cost parameter, "$", and 22 characters from the alphabet "./0-9A-Za-z". Using characters outside of this range in the salt will cause crypt() to return a zero-length string. The two digit cost parameter is the base-2 logarithm of the iteration count for the underlying Blowfish-based hashing algorithm and must be in range 04-31, values outside this range will cause crypt() to fail. "$2x$" hashes are potentially weak; "$2a$" hashes are compatible and mitigate this weakness. For new hashes, "$2y$" should be used.
  • CRYPT_SHA256 - SHA-256 hash with a sixteen character salt prefixed with $5$. If the salt string starts with 'rounds=<N>$', the numeric value of N is used to indicate how many times the hashing loop should be executed, much like the cost parameter on Blowfish. The default number of rounds is 5000, there is a minimum of 1000 and a maximum of 999,999,999. Any selection of N outside this range will be truncated to the nearest limit.
  • CRYPT_SHA512 - SHA-512 hash with a sixteen character salt prefixed with $6$. If the salt string starts with 'rounds=<N>$', the numeric value of N is used to indicate how many times the hashing loop should be executed, much like the cost parameter on Blowfish. The default number of rounds is 5000, there is a minimum of 1000 and a maximum of 999,999,999. Any selection of N outside this range will be truncated to the nearest limit.

Parâmetros

string

The string to be hashed.

Cuidado

Using the CRYPT_BLOWFISH algorithm, will result in the string parameter being truncated to a maximum length of 72 bytes.

salt

A salt string to base the hashing on. If not provided, the behaviour is defined by the algorithm implementation and can lead to unexpected results.

Valor Retornado

Returns the hashed string or a string that is shorter than 13 characters and is guaranteed to differ from the salt on failure.

Aviso

When validating passwords, a string comparison function that isn't vulnerable to timing attacks should be used to compare the output of crypt() to the previously known hash. PHP provides hash_equals() for this purpose.

Registro de Alterações

Versão | Descrição
8.0.0 | The salt is no longer optional.

Exemplos

Exemplo #1 crypt() examples

<?php
$user_input = 'rasmuslerdorf';
$hashed_password = '$6$rounds=1000000$NJy4rIPjpOaU$0ACEYGg/aKCY3v8O8AfyiO7CTfZQ8/W231Qfh2tRLmfdvFD6XfHk12u6hMr9cYIA4hnpjLNSTRtUwYr9km9Ij/';

// Validate an existing crypt() hash in a way that is compatible with non-PHP software.
if (hash_equals($hashed_password, crypt($user_input, $hashed_password))) {
echo "Password verified!";
}
?>

Notas

Nota: There is no decrypt function, since crypt() uses a one-way algorithm.

Veja Também

  • hash_equals() - Timing attack safe string comparison
  • password_hash() - Cria um hash de senha
  • The Unix man page for your crypt function for more information


Output one or more strings

  • « crypt
  • explode »
  • PHP Manual
  • Funções de String
  • Output one or more strings

echo

(PHP 4, PHP 5, PHP 7, PHP 8)

echo — Output one or more strings

Descrição

echo(string ...$expressions): void

Outputs one or more expressions, with no additional newlines or spaces.

echo is not a function but a language construct. Its arguments are a list of expressions following the echo keyword, separated by commas, and not delimited by parentheses. Unlike some other language constructs, echo does not have any return value, so it cannot be used in the context of an expression.

echo also has a shortcut syntax, where you can immediately follow the opening tag with an equals sign. This syntax is available even with the short_open_tag configuration setting disabled.

I have <?=$foo?> foo.

The major differences to print are that echo accepts multiple arguments and doesn't have a return value.

Parâmetros

expressions

One or more string expressions to output, separated by commas. Non-string values will be coerced to strings, even when the strict_types directive is enabled.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 echo examples

<?php
echo "echo does not require parentheses.";

// Strings can either be passed individually as multiple arguments or
// concatenated together and passed as a single argument
echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', "\n";
echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";

// No newline or space is added; the below outputs "helloworld" all on one line
echo "hello";
echo "world";

// Same as above
echo "hello", "world";

echo "This string spans
multiple lines. The newlines will be
output as well";

echo "This string spans\nmultiple lines. The newlines will be\noutput as well.";

// The argument can be any expression which produces a string
$foo = "example";
echo "foo is $foo"; // foo is example

$fruits = ["lemon", "orange", "banana"];
echo implode(" and ", $fruits); // lemon and orange and banana

// Non-string expressions are coerced to string, even if declare(strict_types=1) is used
echo 6 * 7; // 42

// Because echo does not behave as an expression, the following code is invalid.
($some_var) ? echo 'true' : echo 'false';

// However, the following examples will work:
($some_var) ? print 'true' : print 'false'; // print is also a construct, but
// it is a valid expression, returning 1,
// so it may be used in this context.

echo $some_var ? 'true': 'false'; // evaluating the expression first and passing it to echo
?>

Notas

Nota: Como esta é uma construção da linguagem e não uma função, ela não pode ser chamada usando funções variáveis ou argumentos nomeados.

Nota: Using with parentheses

Surrounding a single argument to echo with parentheses will not raise a syntax error, and produces syntax which looks like a normal function call. However, this can be misleading, because the parentheses are actually part of the expression being output, not part of the echo syntax itself.

<?php
echo "hello";
// outputs "hello"

echo("hello");
// also outputs "hello", because ("hello") is a valid expression

echo(1 + 2) * 3;
// outputs "9"; the parentheses cause 1+2 to be evaluated first, then 3*3
// the echo statement sees the whole expression as one argument

echo "hello", " world";
// outputs "hello world"

echo("hello"), (" world");
// outputs "hello world"; the parentheses are part of each expression

echo("hello", " world");
// Throws a Parse Error because ("hello", " world") is not a valid expression
?>

Dica

Passing multiple arguments to echo can avoid complications arising from the precedence of the concatenation operator in PHP. For instance, the concatenation operator has higher precedence than the ternary operator, and prior to PHP 8.0.0 had the same precedence as addition and subtraction:

<?php
// Below, the expression 'Hello ' . isset($name) is evaluated first,
// and is always true, so the argument to echo is always $name
echo 'Hello ' . isset($name) ? $name : 'John Doe' . '!';

// The intended behaviour requires additional parentheses
echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';

// In PHP prior to 8.0.0, the below outputs "2", rather than "Sum: 3"
echo 'Sum: ' . 1 + 2;

// Again, adding parentheses ensures the intended order of evaluation
echo 'Sum: ' . (1 + 2);

If multiple arguments are passed in, then parentheses will not be required to enforce precedence, because each expression is separate:

<?php
echo "Hello ", isset($name) ? $name : "John Doe", "!";

echo "Sum: ", 1 + 2;

Veja Também

  • print - Mostra uma string
  • printf() - Output a formatted string
  • flush() - Flush system output buffer
  • Ways to specify literal strings


Split a string by a string

  • « echo
  • fprintf »
  • PHP Manual
  • Funções de String
  • Split a string by a string

explode

(PHP 4, PHP 5, PHP 7, PHP 8)

explode — Split a string by a string

Descrição

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array

Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the string separator.

Parâmetros

separator

The boundary string.

string

The input string.

limit

If limit is set and positive, the returned array will contain a maximum of limit elements with the last element containing the rest of string.

If the limit parameter is negative, all components except the last -limit are returned.

If the limit parameter is zero, then this is treated as 1.

Nota:

Prior to PHP 8.0, implode() accepted its parameters in either order. explode() has never supported this: you must ensure that the separator argument comes before the string argument.

Valor Retornado

Returns an array of strings created by splitting the string parameter on boundaries formed by the separator.

If separator is an empty string (""), explode() throws a ValueError. If separator contains a value that is not contained in string and a negative limit is used, then an empty array will be returned, otherwise an array containing string will be returned. If separator values appear at the start or end of string, said values will be added as an empty array value either in the first or last position of the returned array respectively.

Registro de Alterações

Versão | Descrição
8.0.0 | explode() will now throw ValueError when separator parameter is given an empty string (""). Previously, explode() returned false instead.

Exemplos

Exemplo #1 explode() examples

<?php
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

Exemplo #2 explode() return examples

<?php
/*
A string that doesn't contain the delimiter will simply
return a one-length array of the original string.
*/
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );

?>

O exemplo acima produzirá:

array(1)
(
    [0] => string(5) "hello"
)
array(2)
(
    [0] => string(5) "hello"
    [1] => string(5) "there"
)
array(2)
(
    [0] => string(0) ""
    [1] => string(0) ""
)

Exemplo #3 limit parameter examples

<?php
$str = 'one|two|three|four';

// positive limit
print_r(explode('|', $str, 2));

// negative limit
print_r(explode('|', $str, -1));
?>

O exemplo acima produzirá:

Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • preg_split() - Split string by a regular expression
  • str_split() - Convert a string to an array
  • mb_split() - Divide uma string multibyte usando expressão regular
  • str_word_count() - Retorna informação sobre palavras usadas em uma string
  • strtok() - Tokenize string
  • implode() - Join array elements with a string


Escreve uma string formatada para um fluxo

  • « explode
  • get_html_translation_table »
  • PHP Manual
  • Funções de String
  • Escreve uma string formatada para um fluxo

fprintf

(PHP 5, PHP 7, PHP 8)

fprintf — Escreve uma string formatada para um fluxo

Descrição

fprintf(resource $stream, string $format, mixed ...$values): int

Escreve uma string produzida de acordo com o formato em format para o recurso de fluxo especificado por stream.

Parâmetros

stream

Um resource de ponteiro do sistema de arquivos que normalmente é criado usando fopen().

format

A string de formato é composta de zero ou mais diretivas: caracteres comuns (excluindo %) que são copiados diretamente para o resultado e especificações de conversão, cada uma das quais resulta na busca de seu próprio parâmetro.

Uma especificação de conversão segue este protótipo: %[argnum$][flags][width][.precision]especificador.

Argnum

Um número inteiro seguido por um cifrão $, para especificar qual o número de argumento a tratar na conversão.

Flags
Flag | Descrição
- Justificar à esquerda dentro da largura de campo especificada; A justificação à direita é o padrão.
+ Prefixa números positivos com um sinal de mais +; Por padrão, apenas números negativos são prefixados com um sinal negativo.
(espaço) | Preenche o resultado com espaços. Este é o padrão.
0 | Preenche números com zeros apenas à esquerda. Com os especificadores s, também pode preencher com zeros à direita.
'(char) | Preenche o resultado com o caractere (char).

Width

Um número inteiro que define em quantos caracteres (mínimo) esta conversão deve resultar, ou *. Se * for usado, a largura será fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Precision

Um ponto . opcionalmente seguido por um número inteiro ou *, cujo significado depende do especificador:

  • Para os especificadores e, E, f e F: este é o número de dígitos a serem impressos após o ponto decimal (por padrão, é 6).
  • Para os especificadores g, G, h e H: este é o número máximo de dígitos significativos a serem impressos.
  • Para o especificador s: atua como um ponto de corte, definindo um limite máximo de caracteres para a string.

Nota: Se o ponto for especificado sem um valor explícito para precisão, 0 é assumido. Se * for usado, a precisão é fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Especificadores
Especificador | Descrição
% Um caractere literal de porcentagem. Nenhum argumento é necessário.
b | O argumento é tratado como um número inteiro e apresentado como um número binário.
c | O argumento é tratado como um número inteiro e apresentado como o caractere com aquele código ASCII.
d | O argumento é tratado como um número inteiro e apresentado como um número decimal (com sinal).
e | O argumento é tratado como notação científica (por exemplo, 1.2e+2).
E | Como o especificador e, mas usa letra maiúscula (por exemplo, 1.2E+2).
f | O argumento é tratado como um float e apresentado como um número de ponto flutuante (com reconhecimento da localidade).
F | O argumento é tratado como um float e apresentado como um número de ponto flutuante (sem reconhecimento da localidade).
g

Formato geral.

Deixa P igual à precisão se for diferente de zero, 6 se a precisão for omitida, ou 1 se a precisão for zero. Então, se uma conversão com estilo E tivesse um expoente de X:

Se P > X = -4, a conversão é com estilo f e precisão P - (X + 1). Caso contrário, a conversão é com estilo e e precisão P - 1.

G | Como o especificador g, mas usa E e f.
h | Como o especificador g, mas usa F. Disponível a partir do PHP 8.0.0.
H | Como o especificador g, mas usa E e F. Disponível a partir do PHP 8.0.0.
o | O argumento é tratado como um número inteiro e apresentado como um número octal.
s | O argumento é tratado e apresentado como uma string.
u | O argumento é tratado como um número inteiro e apresentado como um número decimal sem sinal.
x | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras minúsculas).
X | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras maiúsculas).

Aviso

O especificador de tipo c ignora preenchimento e largura.

Aviso

Tentar usar uma combinação dos especificadores de string e largura com conjuntos de caracteres que requerem mais de um byte por caractere pode resultar em resultados inesperados.

As variáveis serão forçadas a um tipo adequado para o especificador:

Tratamento de Tipos
Tipo | Especificadores
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valor Retornado

Retorna o tamanho da string escrita.

Erros/Exceções

A partir do PHP 8.0.0, um erro ValueError será lançado se o número de argumentos for zero. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [width] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [precision] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ArgumentCountError será lançado quando menos argumentos do que o necessário forem fornecidos. Antes do PHP 8.0.0, false era retornado e um E_WARNING era emitido.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função não retorna mais false em caso de falha.
8.0.0 | Lança um erro ValueError se o número de argumentos for zero; anteriormente, esta função emitia um E_WARNING.
8.0.0 | Lança um erro ValueError se [width] for menor que zero ou maior que PHP_INT_MAX; anteriormente, esta função emitia um E_WARNING.
8.0.0 | Lança um erro ValueError se [precision] for menor que zero ou maior que PHP_INT_MAX; anteriormente, esta função emitia um E_WARNING.
8.0.0 | Lança um erro ArgumentCountError quando menos argumentos do que o necessário são fornecidos; anteriormente, esta função emitia um E_WARNING.

Exemplos

Exemplo #1 fprintf(): inteiros com zero à esquerda

<?php
if (!($fp = fopen('date.txt', 'w'))) {
return;
}

fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
// escreverá a data em formato ISO no arquivo date.txt
?>

Exemplo #2 fprintf(): formatando moeda

<?php
if (!($fp = fopen('currency.txt', 'w'))) {
return;
}

$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money irá mostrar "123.1";
$len = fprintf($fp, '%01.2f', $money);
// escreverá "123.10" em currency.txt

echo "wrote $len bytes to currency.txt";
// usa o valor de retorno de fprintf para determinar quantos bytes foram escritos
?>

Veja Também

  • printf() - Output a formatted string
  • sprintf() - Return a formatted string
  • vprintf() - Output a formatted string
  • vsprintf() - Return a formatted string
  • vfprintf() - Escreve uma string formatada para um fluxo
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato
  • fscanf() - Interpreta a leitura de um arquivo de acordo com um formato
  • number_format() - Format a number with grouped thousands
  • date() - Formatar um timestamp Unix


Returns the translation table used by htmlspecialchars and htmlentities

  • « fprintf
  • hebrev »
  • PHP Manual
  • Funções de String
  • Returns the translation table used by htmlspecialchars and htmlentities

get_html_translation_table

(PHP 4, PHP 5, PHP 7, PHP 8)

get_html_translation_table — Returns the translation table used by htmlspecialchars() and htmlentities()

Descrição

get_html_translation_table(int $table = HTML_SPECIALCHARS, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, string $encoding = "UTF-8"): array

get_html_translation_table() will return the translation table that is used internally for htmlspecialchars() and htmlentities().

Nota:

Special characters can be encoded in several ways. E.g. " can be encoded as &quot;, &#34; or &#x22. get_html_translation_table() returns only the form used by htmlspecialchars() and htmlentities().

Parâmetros

table

Which table to return. Either HTML_ENTITIES or HTML_SPECIALCHARS.

flags

A bitmask of one or more of the following flags, which specify which quotes the table will contain as well as which document type the table is for. The default is ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Available flags constants
Constant Name | Description
ENT_COMPAT | Table will contain entities for double-quotes, but not for single-quotes.
ENT_QUOTES | Table will contain entities for both double and single quotes.
ENT_NOQUOTES | Table will neither contain entities for single quotes nor for double quotes.
ENT_SUBSTITUTE | Replace invalid code unit sequences with a Unicode Replacement Character U+FFFD (UTF-8) or &#xFFFD; (otherwise) instead of returning an empty string.
ENT_HTML401 | Table for HTML 4.01.
ENT_XML1 | Table for XML 1.
ENT_XHTML | Table for XHTML.
ENT_HTML5 | Table for HTML 5.

encoding

Encoding to use. If omitted, the default value for this argument is UTF-8.

Os seguintes conjuntos de caracteres são suportados:

Conjuntos de caracteres suportados
Conjunto de caracteres | Apelidos | Descrição
ISO-8859-1 | ISO8859-1 | Western European, Latin-1.
ISO-8859-5 | ISO8859-5 | Conjunto de caracteres cirílicos pouco usado (Latim/Cirílico).
ISO-8859-15 | ISO8859-15 | Western European, Latin-9. Adiciona o símbolo do Euro, letras Francesas e Filandesas faltando no Latin-1 (ISO-8859-1).
UTF-8 | Código de multi-byte 8-bit Unicode compatível com ASCII.
cp866 | ibm866, 866 | Conjunto de caracteres do DOS específico para o Russo.
cp1251 | Windows-1251, win-1251, 1251 | Conjunto de caracteres do Windows específico para o Russo.
cp1252 | Windows-1252, 1252 | Conjunto de caracteres do Windows específico para a Europa Ocidental.
KOI8-R | koi8-ru, koi8r | Russo.
BIG5 | 950 | Chinês Tradicional, usado principalmente em Taiwan.
GB2312 | 936 | Chins Simplificado, conjunto de caracteres padrão nacional.
BIG5-HKSCS | Big5 com extenções de Hong Kong, Chinês Tradicional.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonês
EUC-JP | EUCJP, eucJP-win | Japonês
MacRoman | Conjunto de caracteres que era usado pelo Mac OS.
'' Uma string vazia ativa a detecção a partir de codificação de script (multibyte Zend), conjunto padrão de caracteres e localidade atual (consulte nl_langinfo() e setlocale()), nesta ordem. Não recomendado.

Nota: Nenhum outro conjunto de caracteres é reconhecido. A codificação padrão será usada no lugar e um alerta será emitido.

Valor Retornado

Returns the translation table as an array, with the original characters as keys and entities as values.

Registro de Alterações

Versão | Descrição
8.1.0 | flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Exemplos

Exemplo #1 Translation Table Example

<?php
var_dump(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5));
?>

O exemplo acima produzirá algo semelhante a:

array(1510) {
  ["
"]=>
  string(9) "&NewLine;"
  ["!"]=>
  string(6) "&excl;"
  ["""]=>
  string(6) "&quot;"
  ["#"]=>
  string(5) "&num;"
  ["$"]=>
  string(8) "&dollar;"
  ["%"]=>
  string(8) "&percnt;"
  ["&"]=>
  string(5) "&amp;"
  ["'"]=>
  string(6) "&apos;"
  // ...
}

Veja Também

  • htmlspecialchars() - Convert special characters to HTML entities
  • htmlentities() - Convert all applicable characters to HTML entities
  • html_entity_decode() - Convert HTML entities to their corresponding characters


Convert logical Hebrew text to visual text

  • « get_html_translation_table
  • hebrevc »
  • PHP Manual
  • Funções de String
  • Convert logical Hebrew text to visual text

hebrev

(PHP 4, PHP 5, PHP 7, PHP 8)

hebrev — Convert logical Hebrew text to visual text

Descrição

hebrev(string $string, int $max_chars_per_line = 0): string

Converts logical Hebrew text to visual text.

The function tries to avoid breaking words.

Parâmetros

string

A Hebrew input string.

max_chars_per_line

This optional parameter indicates maximum number of characters per line that will be returned.

Valor Retornado

Returns the visual string.

Veja Também

  • hebrevc() - Convert logical Hebrew text to visual text with newline conversion


Convert logical Hebrew text to visual text with newline conversion

  • « hebrev
  • hex2bin »
  • PHP Manual
  • Funções de String
  • Convert logical Hebrew text to visual text with newline conversion

hebrevc

(PHP 4, PHP 5, PHP 7)

hebrevc — Convert logical Hebrew text to visual text with newline conversion

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

hebrevc(string $hebrew_text, int $max_chars_per_line = 0): string

This function is similar to hebrev() with the difference that it converts newlines (\n) to "<br>\n".

The function tries to avoid breaking words.

Parâmetros

hebrew_text

A Hebrew input string.

max_chars_per_line

This optional parameter indicates maximum number of characters per line that will be returned.

Valor Retornado

Returns the visual string.

Veja Também

  • hebrev() - Convert logical Hebrew text to visual text


Decodifica uma string binária codificada em hexadecimal

  • « hebrevc
  • html_entity_decode »
  • PHP Manual
  • Funções de String
  • Decodifica uma string binária codificada em hexadecimal

hex2bin

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

hex2bin — Decodifica uma string binária codificada em hexadecimal

Descrição

hex2bin(string $string): string|false

Decodifica uma string binária codificada em hexadecimal.

Cuidado

Esta função NÃO converte um número hexadecimal para um número binário. Isso pode ser feito através da função base_convert().

Parâmetros

string

Representação hexadecimal dos dados.

Valor Retornado

Retorna a representação binária dos dados fornecidos ou false em caso de falha.

Erros/Exceções

Se a string fornecida em hexadecimal tiver tamanho ímpar ou for um hexadecimal inválido, um erro de nível E_WARNING será lançado.

Exemplos

Exemplo #1 Exemplo de hex2bin()

<?php
$hex = hex2bin("6578616d706c65206865782064617461");
var_dump($hex);
?>

O exemplo acima produzirá algo semelhante a:

string(16) "example hex data"

Veja Também

  • bin2hex() - Converte um dado binário em representação hexadecimal
  • unpack() - Desempacota dados de uma string binária


Convert HTML entities to their corresponding characters

  • « hex2bin
  • htmlentities »
  • PHP Manual
  • Funções de String
  • Convert HTML entities to their corresponding characters

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

html_entity_decode — Convert HTML entities to their corresponding characters

Descrição

html_entity_decode(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, ?string $encoding = null): string

html_entity_decode() is the opposite of htmlentities() in that it converts HTML entities in the string to their corresponding characters.

More precisely, this function decodes all the entities (including all numeric entities) that a) are necessarily valid for the chosen document type — i.e., for XML, this function does not decode named entities that might be defined in some DTD — and b) whose character or characters are in the coded character set associated with the chosen encoding and are permitted in the chosen document type. All other entities are left as is.

Parâmetros

string

The input string.

flags

A bitmask of one or more of the following flags, which specify how to handle quotes and which document type to use. The default is ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Available flags constants
Constant Name | Description
ENT_COMPAT | Will convert double-quotes and leave single-quotes alone.
ENT_QUOTES | Will convert both double and single quotes.
ENT_NOQUOTES | Will leave both double and single quotes unconverted.
ENT_SUBSTITUTE | Replace invalid code unit sequences with a Unicode Replacement Character U+FFFD (UTF-8) or &#xFFFD; (otherwise) instead of returning an empty string.
ENT_HTML401 | Handle code as HTML 4.01.
ENT_XML1 | Handle code as XML 1.
ENT_XHTML | Handle code as XHTML.
ENT_HTML5 | Handle code as HTML 5.

encoding

Um argumento opcional que define a codificação usada na conversão de caracteres.

Se omitido, encoding assume como padrão o valor da opção de configuração default_charset .

Embora este argumento seja tecnicamente opcional, especificar o valor correto para o código é altamente recomendável se a opção de configuração default_charset puder ser definida incorretamente para a entrada fornecida.

Os seguintes conjuntos de caracteres são suportados:

Conjuntos de caracteres suportados
Conjunto de caracteres | Apelidos | Descrição
ISO-8859-1 | ISO8859-1 | Western European, Latin-1.
ISO-8859-5 | ISO8859-5 | Conjunto de caracteres cirílicos pouco usado (Latim/Cirílico).
ISO-8859-15 | ISO8859-15 | Western European, Latin-9. Adiciona o símbolo do Euro, letras Francesas e Filandesas faltando no Latin-1 (ISO-8859-1).
UTF-8 | Código de multi-byte 8-bit Unicode compatível com ASCII.
cp866 | ibm866, 866 | Conjunto de caracteres do DOS específico para o Russo.
cp1251 | Windows-1251, win-1251, 1251 | Conjunto de caracteres do Windows específico para o Russo.
cp1252 | Windows-1252, 1252 | Conjunto de caracteres do Windows específico para a Europa Ocidental.
KOI8-R | koi8-ru, koi8r | Russo.
BIG5 | 950 | Chinês Tradicional, usado principalmente em Taiwan.
GB2312 | 936 | Chins Simplificado, conjunto de caracteres padrão nacional.
BIG5-HKSCS | Big5 com extenções de Hong Kong, Chinês Tradicional.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonês
EUC-JP | EUCJP, eucJP-win | Japonês
MacRoman | Conjunto de caracteres que era usado pelo Mac OS.
'' Uma string vazia ativa a detecção a partir de codificação de script (multibyte Zend), conjunto padrão de caracteres e localidade atual (consulte nl_langinfo() e setlocale()), nesta ordem. Não recomendado.

Nota: Nenhum outro conjunto de caracteres é reconhecido. A codificação padrão será usada no lugar e um alerta será emitido.

Valor Retornado

Returns the decoded string.

Registro de Alterações

Versão | Descrição
8.1.0 | flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
8.0.0 | encoding is nullable now.

Exemplos

Exemplo #1 Decoding HTML entities

<?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
?>

Notas

Nota:

You might wonder why trim(html_entity_decode('&nbsp;')); doesn't reduce the string to an empty string, that's because the '&nbsp;' entity is not ASCII code 32 (which is stripped by trim()) but ASCII code 160 (0xa0) in the default ISO 8859-1 encoding.

Veja Também

  • htmlentities() - Convert all applicable characters to HTML entities
  • htmlspecialchars() - Convert special characters to HTML entities
  • get_html_translation_table() - Returns the translation table used by htmlspecialchars and htmlentities
  • urldecode() - Decodifica uma URL codificada


Convert all applicable characters to HTML entities

  • « html_entity_decode
  • htmlspecialchars_decode »
  • PHP Manual
  • Funções de String
  • Convert all applicable characters to HTML entities

htmlentities

(PHP 4, PHP 5, PHP 7, PHP 8)

htmlentities — Convert all applicable characters to HTML entities

Descrição

htmlentities(
string $string,
int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
?string $encoding = null,
bool $double_encode = true
): string

This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all characters which have HTML character entity equivalents are translated into these entities. The get_html_translation_table() function can be used to return the translation table used dependent upon the provided flags constants.

If you want to decode instead (the reverse) you can use html_entity_decode().

Parâmetros

string

The input string.

flags

A bitmask of one or more of the following flags, which specify how to handle quotes, invalid code unit sequences and the used document type. The default is ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Available flags constants
Constant Name | Description
ENT_COMPAT | Will convert double-quotes and leave single-quotes alone.
ENT_QUOTES | Will convert both double and single quotes.
ENT_NOQUOTES | Will leave both double and single quotes unconverted.
ENT_IGNORE | Silently discard invalid code unit sequences instead of returning an empty string. Using this flag is discouraged as it » may have security implications.
ENT_SUBSTITUTE | Replace invalid code unit sequences with a Unicode Replacement Character U+FFFD (UTF-8) or &#FFFD; (otherwise) instead of returning an empty string.
ENT_DISALLOWED | Replace invalid code points for the given document type with a Unicode Replacement Character U+FFFD (UTF-8) or &#FFFD; (otherwise) instead of leaving them as is. This may be useful, for instance, to ensure the well-formedness of XML documents with embedded external content.
ENT_HTML401 | Handle code as HTML 4.01.
ENT_XML1 | Handle code as XML 1.
ENT_XHTML | Handle code as XHTML.
ENT_HTML5 | Handle code as HTML 5.

encoding

Um argumento opcional que define a codificação usada na conversão de caracteres.

Se omitido, encoding assume como padrão o valor da opção de configuração default_charset .

Embora este argumento seja tecnicamente opcional, especificar o valor correto para o código é altamente recomendável se a opção de configuração default_charset puder ser definida incorretamente para a entrada fornecida.

Os seguintes conjuntos de caracteres são suportados:

Conjuntos de caracteres suportados
Conjunto de caracteres | Apelidos | Descrição
ISO-8859-1 | ISO8859-1 | Western European, Latin-1.
ISO-8859-5 | ISO8859-5 | Conjunto de caracteres cirílicos pouco usado (Latim/Cirílico).
ISO-8859-15 | ISO8859-15 | Western European, Latin-9. Adiciona o símbolo do Euro, letras Francesas e Filandesas faltando no Latin-1 (ISO-8859-1).
UTF-8 | Código de multi-byte 8-bit Unicode compatível com ASCII.
cp866 | ibm866, 866 | Conjunto de caracteres do DOS específico para o Russo.
cp1251 | Windows-1251, win-1251, 1251 | Conjunto de caracteres do Windows específico para o Russo.
cp1252 | Windows-1252, 1252 | Conjunto de caracteres do Windows específico para a Europa Ocidental.
KOI8-R | koi8-ru, koi8r | Russo.
BIG5 | 950 | Chinês Tradicional, usado principalmente em Taiwan.
GB2312 | 936 | Chins Simplificado, conjunto de caracteres padrão nacional.
BIG5-HKSCS | Big5 com extenções de Hong Kong, Chinês Tradicional.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonês
EUC-JP | EUCJP, eucJP-win | Japonês
MacRoman | Conjunto de caracteres que era usado pelo Mac OS.
'' Uma string vazia ativa a detecção a partir de codificação de script (multibyte Zend), conjunto padrão de caracteres e localidade atual (consulte nl_langinfo() e setlocale()), nesta ordem. Não recomendado.

Nota: Nenhum outro conjunto de caracteres é reconhecido. A codificação padrão será usada no lugar e um alerta será emitido.

double_encode

When double_encode is turned off PHP will not encode existing html entities. The default is to convert everything.

Valor Retornado

Returns the encoded string.

If the input string contains an invalid code unit sequence within the given encoding an empty string will be returned, unless either the ENT_IGNORE or ENT_SUBSTITUTE flags are set.

Registro de Alterações

Versão | Descrição
8.1.0 | flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
8.0.0 | encoding is nullable now.

Exemplos

Exemplo #1 A htmlentities() example

<?php
$str = "A 'quote' is <b>bold</b>";

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

Exemplo #2 Usage of ENT_IGNORE

<?php
$str = "\x8F!!!";

// Outputs an empty string
echo htmlentities($str, ENT_QUOTES, "UTF-8");

// Outputs "!!!"
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>

Veja Também

  • html_entity_decode() - Convert HTML entities to their corresponding characters
  • get_html_translation_table() - Returns the translation table used by htmlspecialchars and htmlentities
  • htmlspecialchars() - Convert special characters to HTML entities
  • nl2br() - Inserts HTML line breaks before all newlines in a string
  • urlencode() - URL-encodes string


Convert special HTML entities back to characters

  • « htmlentities
  • htmlspecialchars »
  • PHP Manual
  • Funções de String
  • Convert special HTML entities back to characters

htmlspecialchars_decode

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

htmlspecialchars_decode — Convert special HTML entities back to characters

Descrição

htmlspecialchars_decode(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401): string

This function is the opposite of htmlspecialchars(). It converts special HTML entities back to characters.

The converted entities are: &amp;, &quot; (when ENT_NOQUOTES is not set), &#039; (when ENT_QUOTES is set), &lt; and &gt;.

Parâmetros

string

The string to decode.

flags

A bitmask of one or more of the following flags, which specify how to handle quotes and which document type to use. The default is ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Available flags constants
Constant Name | Description
ENT_COMPAT | Will convert double-quotes and leave single-quotes alone.
ENT_QUOTES | Will convert both double and single quotes.
ENT_NOQUOTES | Will leave both double and single quotes unconverted.
ENT_SUBSTITUTE | Replace invalid code unit sequences with a Unicode Replacement Character U+FFFD (UTF-8) or &#xFFFD; (otherwise) instead of returning an empty string.
ENT_HTML401 | Handle code as HTML 4.01.
ENT_XML1 | Handle code as XML 1.
ENT_XHTML | Handle code as XHTML.
ENT_HTML5 | Handle code as HTML 5.

Valor Retornado

Returns the decoded string.

Registro de Alterações

Versão | Descrição
8.1.0 | flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Exemplos

Exemplo #1 A htmlspecialchars_decode() example

<?php
$str = "<p>this -&gt; &quot;</p>\n";

echo htmlspecialchars_decode($str);

// note that here the quotes aren't converted
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

O exemplo acima produzirá:

<p>this -> "</p>
<p>this -> &quot;</p>

Veja Também

  • htmlspecialchars() - Convert special characters to HTML entities
  • html_entity_decode() - Convert HTML entities to their corresponding characters
  • get_html_translation_table() - Returns the translation table used by htmlspecialchars and htmlentities


Convert special characters to HTML entities

  • « htmlspecialchars_decode
  • implode »
  • PHP Manual
  • Funções de String
  • Convert special characters to HTML entities

htmlspecialchars

(PHP 4, PHP 5, PHP 7, PHP 8)

htmlspecialchars — Convert special characters to HTML entities

Descrição

htmlspecialchars(
string $string,
int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
?string $encoding = null,
bool $double_encode = true
): string

Certain characters have special significance in HTML, and should be represented by HTML entities if they are to preserve their meanings. This function returns a string with these conversions made. If you require all input substrings that have associated named entities to be translated, use htmlentities() instead.

If the input string passed to this function and the final document share the same character set, this function is sufficient to prepare input for inclusion in most contexts of an HTML document. If, however, the input can represent characters that are not coded in the final document character set and you wish to retain those characters (as numeric or named entities), both this function and htmlentities() (which only encodes substrings that have named entity equivalents) may be insufficient. You may have to use mb_encode_numericentity() instead.

Performed translations
Character | Replacement
& (ampersand) | &amp;
" (double quote) | &quot;, unless ENT_NOQUOTES is set
' (single quote) | &#039; (for ENT_HTML401) or &apos; (for ENT_XML1, ENT_XHTML or ENT_HTML5), but only when ENT_QUOTES is set
< (less than) | &lt;
> (greater than) | &gt;

Parâmetros

string

The string being converted.

flags

A bitmask of one or more of the following flags, which specify how to handle quotes, invalid code unit sequences and the used document type. The default is ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Available flags constants
Constant Name | Description
ENT_COMPAT | Will convert double-quotes and leave single-quotes alone.
ENT_QUOTES | Will convert both double and single quotes.
ENT_NOQUOTES | Will leave both double and single quotes unconverted.
ENT_IGNORE | Silently discard invalid code unit sequences instead of returning an empty string. Using this flag is discouraged as it » may have security implications.
ENT_SUBSTITUTE | Replace invalid code unit sequences with a Unicode Replacement Character U+FFFD (UTF-8) or &#xFFFD; (otherwise) instead of returning an empty string.
ENT_DISALLOWED | Replace invalid code points for the given document type with a Unicode Replacement Character U+FFFD (UTF-8) or &#xFFFD; (otherwise) instead of leaving them as is. This may be useful, for instance, to ensure the well-formedness of XML documents with embedded external content.
ENT_HTML401 | Handle code as HTML 4.01.
ENT_XML1 | Handle code as XML 1.
ENT_XHTML | Handle code as XHTML.
ENT_HTML5 | Handle code as HTML 5.

encoding

Um argumento opcional que define a codificação usada na conversão de caracteres.

Se omitido, encoding assume como padrão o valor da opção de configuração default_charset .

Embora este argumento seja tecnicamente opcional, especificar o valor correto para o código é altamente recomendável se a opção de configuração default_charset puder ser definida incorretamente para a entrada fornecida.

For the purposes of this function, the encodings ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252, and KOI8-R are effectively equivalent, provided the string itself is valid for the encoding, as the characters affected by htmlspecialchars() occupy the same positions in all of these encodings.

Os seguintes conjuntos de caracteres são suportados:

Conjuntos de caracteres suportados
Conjunto de caracteres | Apelidos | Descrição
ISO-8859-1 | ISO8859-1 | Western European, Latin-1.
ISO-8859-5 | ISO8859-5 | Conjunto de caracteres cirílicos pouco usado (Latim/Cirílico).
ISO-8859-15 | ISO8859-15 | Western European, Latin-9. Adiciona o símbolo do Euro, letras Francesas e Filandesas faltando no Latin-1 (ISO-8859-1).
UTF-8 | Código de multi-byte 8-bit Unicode compatível com ASCII.
cp866 | ibm866, 866 | Conjunto de caracteres do DOS específico para o Russo.
cp1251 | Windows-1251, win-1251, 1251 | Conjunto de caracteres do Windows específico para o Russo.
cp1252 | Windows-1252, 1252 | Conjunto de caracteres do Windows específico para a Europa Ocidental.
KOI8-R | koi8-ru, koi8r | Russo.
BIG5 | 950 | Chinês Tradicional, usado principalmente em Taiwan.
GB2312 | 936 | Chins Simplificado, conjunto de caracteres padrão nacional.
BIG5-HKSCS | Big5 com extenções de Hong Kong, Chinês Tradicional.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japonês
EUC-JP | EUCJP, eucJP-win | Japonês
MacRoman | Conjunto de caracteres que era usado pelo Mac OS.
'' Uma string vazia ativa a detecção a partir de codificação de script (multibyte Zend), conjunto padrão de caracteres e localidade atual (consulte nl_langinfo() e setlocale()), nesta ordem. Não recomendado.

Nota: Nenhum outro conjunto de caracteres é reconhecido. A codificação padrão será usada no lugar e um alerta será emitido.

double_encode

When double_encode is turned off PHP will not encode existing html entities, the default is to convert everything.

Valor Retornado

The converted string.

If the input string contains an invalid code unit sequence within the given encoding an empty string will be returned, unless either the ENT_IGNORE or ENT_SUBSTITUTE flags are set.

Registro de Alterações

Versão | Descrição
8.1.0 | flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Exemplos

Exemplo #1 htmlspecialchars() example

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Notas

Nota:

Note that this function does not translate anything beyond what is listed above. For full entity translation, see htmlentities().

Nota:

In case of an ambiguous flags value, the following rules apply:

  • When neither of ENT_COMPAT, ENT_QUOTES, ENT_NOQUOTES is present, the default is ENT_NOQUOTES.
  • When more than one of ENT_COMPAT, ENT_QUOTES, ENT_NOQUOTES is present, ENT_QUOTES takes the highest precedence, followed by ENT_COMPAT.
  • When neither of ENT_HTML401, ENT_HTML5, ENT_XHTML, ENT_XML1 is present, the default is ENT_HTML401.
  • When more than one of ENT_HTML401, ENT_HTML5, ENT_XHTML, ENT_XML1 is present, ENT_HTML5 takes the highest precedence, followed by ENT_XHTML, ENT_XML1 and ENT_HTML401.
  • When more than one of ENT_DISALLOWED, ENT_IGNORE, ENT_SUBSTITUTE are present, ENT_IGNORE takes the highest precedence, followed by ENT_SUBSTITUTE.

Veja Também

  • get_html_translation_table() - Returns the translation table used by htmlspecialchars and htmlentities
  • htmlspecialchars_decode() - Convert special HTML entities back to characters
  • strip_tags() - Retira as tags HTML e PHP de uma string
  • htmlentities() - Convert all applicable characters to HTML entities
  • nl2br() - Inserts HTML line breaks before all newlines in a string


Join array elements with a string

  • « htmlspecialchars
  • join »
  • PHP Manual
  • Funções de String
  • Join array elements with a string

implode

(PHP 4, PHP 5, PHP 7, PHP 8)

implode — Join array elements with a string

Descrição

implode(string $separator, array $array): string

Alternative signature (not supported with named arguments):

implode(array $array): string

Legacy signature (deprecated as of PHP 7.4.0, removed as of PHP 8.0.0):

implode(array $array, string $separator): string

Join array elements with a separator string.

Parâmetros

separator

Optional. Defaults to an empty string.

array

The array of strings to implode.

Valor Retornado

Returns a string containing a string representation of all the array elements in the same order, with the separator string between each element.

Registro de Alterações

Versão | Descrição
8.0.0 | Passing the separator after the array is no longer supported.
7.4.0 | Passing the separator after the array (i.e. using the legacy signature) has been deprecated.

Exemplos

Exemplo #1 implode() example

<?php

$array = ['lastname', 'email', 'phone'];
var_dump(implode(",", $array)); // string(20) "lastname,email,phone"

// Empty string when using an empty array:
var_dump(implode('hello', [])); // string(0) ""

// The separator is optional:
var_dump(implode(['a', 'b', 'c'])); // string(3) "abc"

?>

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • explode() - Split a string by a string
  • preg_split() - Split string by a regular expression
  • http_build_query() - Gera a string de consulta (query) em formato URL


Sinônimo de implode

  • « implode
  • lcfirst »
  • PHP Manual
  • Funções de String
  • Sinônimo de implode

join

(PHP 4, PHP 5, PHP 7, PHP 8)

join — Sinônimo de implode()

Descrição

Esta função é um apelido para: implode().


Torna minúsculo o primeiro caractere de uma string

  • « join
  • levenshtein »
  • PHP Manual
  • Funções de String
  • Torna minúsculo o primeiro caractere de uma string

lcfirst

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

lcfirst — Torna minúsculo o primeiro caractere de uma string

Descrição

lcfirst(string $string): string

Retorna uma string com o primeiro caractere de string em letra minúscula se o caractere for um ASCII na faixa de "A" (0x41) a "Z" (0x5a).

Parâmetros

string

A string de entrada.

Valor Retornado

Retorna a string resultante.

Registro de Alterações

Versão | Descrição
8.2.0 | A conversão de maiúsculas e minúsculas não depende mais da localidade definida com setlocale(). Somente caracteres ASCII serão convertidos.

Exemplos

Exemplo #1 Exemplo de lcfirst()

<?php
$foo = 'OlaMundo';
$foo = lcfirst($foo); // olaMundo

$bar = 'OLA MUNDO!';
$bar = lcfirst($bar); // oLA MUNDO!
$bar = lcfirst(strtoupper($bar)); // oLA MUNDO!
?>

Veja Também

  • ucfirst() - Make a string's first character uppercase
  • strtolower() - Converte uma string para minúsculas
  • strtoupper() - Make a string uppercase
  • ucwords() - Converte para maiúsculas o primeiro caractere de cada palavra


Calculate Levenshtein distance between two strings

  • « lcfirst
  • localeconv »
  • PHP Manual
  • Funções de String
  • Calculate Levenshtein distance between two strings

levenshtein

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

levenshtein — Calculate Levenshtein distance between two strings

Descrição

levenshtein(
string $string1,
string $string2,
int $insertion_cost = 1,
int $replacement_cost = 1,
int $deletion_cost = 1
): int

The Levenshtein distance is defined as the minimal number of characters you have to replace, insert or delete to transform string1 into string2. The complexity of the algorithm is O(m*n), where n and m are the length of string1 and string2 (rather good when compared to similar_text(), which is O(max(n,m)**3), but still expensive).

If insertion_cost, replacement_cost and/or deletion_cost are unequal to 1, the algorithm adapts to choose the cheapest transforms. E.g. if $insertion_cost + $deletion_cost < $replacement_cost, no replacements will be done, but rather inserts and deletions instead.

Parâmetros

string1

One of the strings being evaluated for Levenshtein distance.

string2

One of the strings being evaluated for Levenshtein distance.

insertion_cost

Defines the cost of insertion.

replacement_cost

Defines the cost of replacement.

deletion_cost

Defines the cost of deletion.

Valor Retornado

This function returns the Levenshtein-Distance between the two argument strings.

Registro de Alterações

Versão | Descrição
8.0.0 | Prior to this version, levenshtein() had to be called with either two or five arguments.
8.0.0 | Prior to this version, levenshtein() would return -1 if one of the argument strings is longer than 255 characters.

Exemplos

Exemplo #1 levenshtein() example

<?php
// input misspelled word
$input = 'carrrot';

// array of words to check against
$words = array('apple','pineapple','banana','orange',
'radish','carrot','pea','bean','potato');

// no shortest distance found, yet
$shortest = -1;

// loop through words to find the closest
foreach ($words as $word) {

// calculate the distance between the input word,
// and the current word
$lev = levenshtein($input, $word);

// check for an exact match
if ($lev == 0) {

// closest word is this one (exact match)
$closest = $word;
$shortest = 0;

// break out of the loop; we've found an exact match
break;
}

// if this distance is less than the next found shortest
// distance, OR if a next shortest word has not yet been found
if ($lev <= $shortest || $shortest < 0) {
// set the closest match, and shortest distance
$closest = $word;
$shortest = $lev;
}
}

echo "Input word: $input\n";
if ($shortest == 0) {
echo "Exact match found: $closest\n";
} else {
echo "Did you mean: $closest?\n";
}

?>

O exemplo acima produzirá:

Input word: carrrot
Did you mean: carrot?

Veja Também

  • soundex() - Calcula a chave soundex de uma string
  • similar_text() - Calcula a similaridade entre duas strings
  • metaphone() - Calculate the metaphone key of a string


Get numeric formatting information

  • « levenshtein
  • ltrim »
  • PHP Manual
  • Funções de String
  • Get numeric formatting information

localeconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

localeconv — Get numeric formatting information

Descrição

localeconv(): array

Returns an associative array containing localized numeric and monetary formatting information.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

localeconv() returns data based upon the current locale as set by setlocale(). The associative array that is returned contains the following fields:

Array element | Description
decimal_point | Decimal point character
thousands_sep | Thousands separator
grouping | Array containing numeric groupings
int_curr_symbol | International currency symbol (i.e. USD)
currency_symbol | Local currency symbol (i.e. $)
mon_decimal_point | Monetary decimal point character
mon_thousands_sep | Monetary thousands separator
mon_grouping | Array containing monetary groupings
positive_sign | Sign for positive values
negative_sign | Sign for negative values
int_frac_digits | International fractional digits
frac_digits | Local fractional digits
p_cs_precedes | true if currency_symbol precedes a positive value, false if it succeeds one
p_sep_by_space | true if a space separates currency_symbol from a positive value, false otherwise
n_cs_precedes | true if currency_symbol precedes a negative value, false if it succeeds one
n_sep_by_space | true if a space separates currency_symbol from a negative value, false otherwise
p_sign_posn
  • 0 - Parentheses surround the quantity and currency_symbol
  • 1 - The sign string precedes the quantity and currency_symbol
  • 2 - The sign string succeeds the quantity and currency_symbol
  • 3 - The sign string immediately precedes the currency_symbol
  • 4 - The sign string immediately succeeds the currency_symbol
n_sign_posn
  • 0 - Parentheses surround the quantity and currency_symbol
  • 1 - The sign string precedes the quantity and currency_symbol
  • 2 - The sign string succeeds the quantity and currency_symbol
  • 3 - The sign string immediately precedes the currency_symbol
  • 4 - The sign string immediately succeeds the currency_symbol

The p_sign_posn, and n_sign_posn contain a string of formatting options. Each number representing one of the above listed conditions.

The grouping fields contain arrays that define the way numbers should be grouped. For example, the monetary grouping field for the nl_NL locale (in UTF-8 mode with the euro sign), would contain a 2 item array with the values 3 and 3. The higher the index in the array, the farther left the grouping is. If an array element is equal to CHAR_MAX, no further grouping is done. If an array element is equal to 0, the previous element should be used.

Exemplos

Exemplo #1 localeconv() example

<?php
if (false !== setlocale(LC_ALL, 'nl_NL.UTF-8@euro')) {
$locale_info = localeconv();
print_r($locale_info);
}
?>

O exemplo acima produzirá:

Array
(
    [decimal_point] => .
    [thousands_sep] =>
    [int_curr_symbol] => EUR
    [currency_symbol] => €
    [mon_decimal_point] => ,
    [mon_thousands_sep] =>
    [positive_sign] =>
    [negative_sign] => -
    [int_frac_digits] => 2
    [frac_digits] => 2
    [p_cs_precedes] => 1
    [p_sep_by_space] => 1
    [n_cs_precedes] => 1
    [n_sep_by_space] => 1
    [p_sign_posn] => 1
    [n_sign_posn] => 2
    [grouping] => Array
        (
        )

    [mon_grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

)

Veja Também

  • setlocale() - Set locale information


Retira espaços em branco (ou outros caracteres) do início de uma string

  • « localeconv
  • md5_file »
  • PHP Manual
  • Funções de String
  • Retira espaços em branco (ou outros caracteres) do início de uma string

ltrim

(PHP 4, PHP 5, PHP 7, PHP 8)

ltrim — Retira espaços em branco (ou outros caracteres) do início de uma string

Descrição

ltrim(string $string, string $characters = " \n\r\t\v\x00"): string

Retira espaços em branco (ou outros caracteres) do início de uma string.

Parâmetros

string

A string de entrada.

characters

Pode-se também especificar os caracteres que deseja-se retirar, por meio do parâmetro characters. Simplesmente lista-se todos os caracteres que devem ser removidos. Com .. pode-se especificar um intervalo de caracteres.

Valor Retornado

Esta função retorna uma string com espaços em branco retirados do início de string. Sem o segundo parâmetro, ltrim() retirará estes caracteres:

  • " " (ASCII 32 (0x20)), um espaço normal.
  • "\t" (ASCII 9 (0x09)), uma tabulação.
  • "\n" (ASCII 10 (0x0A)), uma linha nova (alimentação de linha).
  • "\r" (ASCII 13 (0x0D)), um retono de carro.
  • "\0" (ASCII 0 (0x00)), o byte NUL.
  • "\v" (ASCII 11 (0x0B)), uma tabulação vertical.

Exemplos

Exemplo #1 Exemplo de uso de ltrim()

<?php

$text = "\t\tThese are a few words :) ... ";
$binary = "\x09Example string\x0A";
$hello = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = ltrim($text);
var_dump($trimmed);

$trimmed = ltrim($text, " \t.");
var_dump($trimmed);

$trimmed = ltrim($hello, "Hdle");
var_dump($trimmed);

// tira os caracteres de controle ASCII do início de $binary
// (de 0 a 31 inclusive)
$clean = ltrim($binary, "\x00..\x1F");
var_dump($clean);

?>

O exemplo acima produzirá:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "These are a few words :) ...  "
string(30) "These are a few words :) ...  "
string(7) "o World"
string(15) "Example string
"

Veja Também

  • trim() - Retira espaço (ou outros caracteres) do início e do final de uma string
  • rtrim() - Retira espaço em branco (ou outros caracteres) do final de uma string


Calculates the md5 hash of a given file

  • « ltrim
  • md5 »
  • PHP Manual
  • Funções de String
  • Calculates the md5 hash of a given file

md5_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

md5_file — Calculates the md5 hash of a given file

Descrição

md5_file(string $filename, bool $binary = false): string|false

Calculates the MD5 hash of the file specified by the filename parameter using the » RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash. The hash is a 32-character hexadecimal number.

Parâmetros

filename

The filename

binary

When true, returns the digest in raw binary format with a length of 16.

Valor Retornado

Returns a string on success, false otherwise.

Exemplos

Exemplo #1 Usage example of md5_file()

<?php
$file = 'php-5.3.0alpha2-Win32-VC9-x64.zip';

echo 'MD5 file hash of ' . $file . ': ' . md5_file($file);
?>

Veja Também

  • md5() - Calculate the md5 hash of a string
  • sha1_file() - Calcula a hash sha1 de um arquivo
  • crc32() - Calcula polinômio crc32 de uma string


Calculate the md5 hash of a string

  • « md5_file
  • metaphone »
  • PHP Manual
  • Funções de String
  • Calculate the md5 hash of a string

md5

(PHP 4, PHP 5, PHP 7, PHP 8)

md5 — Calculate the md5 hash of a string

Aviso

Não é recomendado usar esta função para proteger senhas, devido à natureza rápida deste algoritmo de hash. Consulte as Perguntas Frequentes sobre Hashing de Senha para obter detalhes e melhores práticas.

Descrição

md5(string $string, bool $binary = false): string

Calculates the MD5 hash of string using the » RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash.

Parâmetros

string

The string.

binary

If the optional binary is set to true, then the md5 digest is instead returned in raw binary format with a length of 16.

Valor Retornado

Returns the hash as a 32-character hexadecimal number.

Exemplos

Exemplo #1 A md5() example

<?php
$str = 'apple';

if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
echo "Would you like a green or red apple?";
}
?>

Veja Também

  • md5_file() - Calculates the md5 hash of a given file
  • sha1_file() - Calcula a hash sha1 de um arquivo
  • crc32() - Calcula polinômio crc32 de uma string
  • sha1() - Calculate the sha1 hash of a string
  • hash() - Generate a hash value (message digest)
  • crypt() - One-way string hashing
  • password_hash() - Cria um hash de senha


Calculate the metaphone key of a string

  • « md5
  • money_format »
  • PHP Manual
  • Funções de String
  • Calculate the metaphone key of a string

metaphone

(PHP 4, PHP 5, PHP 7, PHP 8)

metaphone — Calculate the metaphone key of a string

Descrição

metaphone(string $string, int $max_phonemes = 0): string

Calculates the metaphone key of string.

Similar to soundex() metaphone creates the same key for similar sounding words. It's more accurate than soundex() as it knows the basic rules of English pronunciation. The metaphone generated keys are of variable length.

Metaphone was developed by Lawrence Philips <lphilips at verity dot com>. It is described in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Parâmetros

string

The input string.

max_phonemes

This parameter restricts the returned metaphone key to max_phonemes characters in length. However, the resulting phonemes are always transcribed completely, so the resulting string length may be slightly longer than max_phonemes. The default value of 0 means no restriction.

Valor Retornado

Returns the metaphone key as a string.

Registro de Alterações

Versão | Descrição
8.0.0 | The function returned false on failure.

Exemplos

Exemplo #1 metaphone() basic example

<?php
var_dump(metaphone('programming'));
var_dump(metaphone('programmer'));
?>

O exemplo acima produzirá:

string(7) "PRKRMNK"
string(6) "PRKRMR"

Exemplo #2 Using the max_phonemes parameter

<?php
var_dump(metaphone('programming', 5));
var_dump(metaphone('programmer', 5));
?>

O exemplo acima produzirá:

string(5) "PRKRM"
string(5) "PRKRM"

Exemplo #3 Using the max_phonemes parameter

In this example, metaphone() is advised to produce a string of five characters, but that would require to split the final phoneme ('x' is supposed to be transcribed to 'KS'), so the function returns a string with six characters.

<?php
var_dump(metaphone('Asterix', 5));
?>

O exemplo acima produzirá:

string(6) "ASTRKS"


Formata um número como uma string de moeda

  • « metaphone
  • nl_langinfo »
  • PHP Manual
  • Funções de String
  • Formata um número como uma string de moeda

money_format

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

money_format — Formata um número como uma string de moeda

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

money_format(string $format, float $number): string

money_format() retorna uma versão formatada de um number. Esta função engloba a biblioteca de função do C strfmon(), com a diferença que esta implementação converte apenas um número por vez.

Parâmetros

format

A especificação do formato consistem da seguinte sequência:

  • a % character

  • flags opcionais

  • largura de campo opcional

  • precisão da esquerda opcional

  • precisão da direita opcional

  • conversão de caractere requerida

Flags

Uma ou mais, das flags opcionais abaixo podem ser usadas:

=f

O caracter = seguido por um caractere (único byte) f para ser usado como o caracter númerico de preenchimento. O caractere de preenchimento padrão é o espaço.

^

Desabilite o uso de agrupamento de caractere (como definido pela localidade atual).

+ ou (

Especifique o estilo de formatação para números positivos e negativos. Se + é usado, o equivalente da localidade para + e - será usado. Se ( é usado, quantias negativas são fechadas em parêntesis. se nenhuma especificação é dada, o padrão será +.

!

Suprima o símbolo atual da string de saída.

-

Se presente, isso fará todos os campos esquerda-justificados (arrumados para a direita), em oposição ao padrão que é para campos serem direita-justificados (arrumados para a esquerda).

Largura de campo

w

Uma string de dígito decimal especificando uma largura de campo mínima. O campo será direita-justificado a menos que o flag - seja usado. Valor padrão é 0 (zero) por definição.

Precisão de esquerdan

#n

O número máximo de dígitos (n) esperado para a esquerda do caracatere decimal(ex. ponto decimal). Isso é usado normalmente para manter a saída formatada alinhada nas mesmas colunas, usando o caractere de preenchimento se o número de dígitos é menor do que n. Se o número de dígitos atual é maior do que n, então esta especificação é ignorada.

Se agrupamento foi suprimido usando a flag ^, separatores de agrupamento serão inseridos antes dos caracteres de preenchimento (se algum) são adicionados, mesmo se o caractere de preenchimento é um dígito.

Para garantir alinhamento, quaisquer caracteres aparecendo, antes ou depois do número em saída formatada, como moeda ou simbolos de sinal, são arrumado conforme necessário, com caracteres de espaço para fazer seus formatos positivos e negativos num comprimento igual.

Precisão de direita

.p

Um período seguido por um número de dígitos (p) depois do caractere decimal. Se o valor de p é 0 (zero), o caractere decimal e os digitos à sua direita serão omitidos. Se nenhuma precisão de direita é incluida, o padrão será ditado pela localidade atual em uso. A quantia sendo formatada é arredondada para o número de dígitos especificados a priori para ser formatado.

Caracteres de conversão

i

O número é formatado de acordo com o formato de moeda internacional da localidade (ex para a localidade de EUA: USD 1,234.56).

n

O número é formatado de acordo com o formato de moeda nacional da localidade (ex: para a localidade de_DE: DM1.234,56).

%

Retorna o caractere %.

number

O número para ser formatado.

Valor Retornado

Retorna a string formatada. Os caracteres antes e depois da string de formatação serão retornados sem modificação. O parâmetro number com dígitos inválidos causa o retorno de null e o lançamento de um E_WARNING.

Registro de Alterações

Versão | Descrição
7.4.0 | Esta função foi descontinuada. Utilize NumberFormatter::formatCurrency().

Exemplos

Exemplo #1 Exemplo da money_format()

Nós usaremos localidades diferentes e especificações de formatos e localidades para ilustrar o uso desta função.

<?php

$number = 1234.56;

// let's print the international format for the en_US locale
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56

// Italian national format with 2 decimals`
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// Eu 1.234,56

// Using a negative number
$number = -1234.5672;

// US national format, using () for negative numbers
// and 10 digits for left precision
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($ 1,234.57)

// Similar format as above, adding the use of 2 digits of right
// precision and '*' as a fill character
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)

// Let's justify to the left, with 14 positions of width, 8 digits of
// left precision, 2 of right precision, without the grouping character
// and using the international format for the de_DE locale.
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56) . "\n";
// Eu 1234,56****

// Let's add some blurb before and after the conversion specification
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'The final value is %i (after a 10%% discount)';
echo money_format($fmt, 1234.56) . "\n";
// The final value is GBP 1,234.56 (after a 10% discount)

?>

Notas

Nota:

A função money_format() é apenas definida se o sistema tem capacidades de strfmon. Por exemplo, o Windows não tem, então money_format() está indefinida o Windows.

Nota:

A categoria LC_MONETARY de configurações de localidade, afeta o comportamento desta função. Utilize setlocale() para definir a localidade padrão apropriadamente antes de usar esta função.

Veja Também

  • setlocale() - Set locale information
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato
  • sprintf() - Return a formatted string
  • printf() - Output a formatted string
  • number_format() - Format a number with grouped thousands


Query language and locale information

  • « money_format
  • nl2br »
  • PHP Manual
  • Funções de String
  • Query language and locale information

nl_langinfo

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

nl_langinfo — Query language and locale information

Descrição

nl_langinfo(int $item): string|false

nl_langinfo() is used to access individual elements of the locale categories. Unlike localeconv(), which returns all of the elements, nl_langinfo() allows you to select any specific element.

Parâmetros

item

item may be an integer value of the element or the constant name of the element. The following is a list of constant names for item that may be used and their description. Some of these constants may not be defined or hold no value for certain locales.

nl_langinfo Constants
Constant | Description
LC_TIME Category Constants
ABDAY_(1-7) | Abbreviated name of n-th day of the week.
DAY_(1-7) | Name of the n-th day of the week (DAY_1 = Sunday).
ABMON_(1-12) | Abbreviated name of the n-th month of the year.
MON_(1-12) | Name of the n-th month of the year.
AM_STR | String for Ante meridian.
PM_STR | String for Post meridian.
D_T_FMT | String that can be used as the format string for strftime() to represent time and date.
D_FMT | String that can be used as the format string for strftime() to represent date.
T_FMT | String that can be used as the format string for strftime() to represent time.
T_FMT_AMPM | String that can be used as the format string for strftime() to represent time in 12-hour format with ante/post meridian.
ERA | Alternate era.
ERA_YEAR | Year in alternate era format.
ERA_D_T_FMT | Date and time in alternate era format (string can be used in strftime()).
ERA_D_FMT | Date in alternate era format (string can be used in strftime()).
ERA_T_FMT | Time in alternate era format (string can be used in strftime()).
LC_MONETARY Category Constants
INT_CURR_SYMBOL | International currency symbol.
CURRENCY_SYMBOL | Local currency symbol.
CRNCYSTR | Same value as CURRENCY_SYMBOL.
MON_DECIMAL_POINT | Decimal point character.
MON_THOUSANDS_SEP | Thousands separator (groups of three digits).
MON_GROUPING | Like "grouping" element.
POSITIVE_SIGN | Sign for positive values.
NEGATIVE_SIGN | Sign for negative values.
INT_FRAC_DIGITS | International fractional digits.
FRAC_DIGITS | Local fractional digits.
P_CS_PRECEDES | Returns 1 if CURRENCY_SYMBOL precedes a positive value.
P_SEP_BY_SPACE | Returns 1 if a space separates CURRENCY_SYMBOL from a positive value.
N_CS_PRECEDES | Returns 1 if CURRENCY_SYMBOL precedes a negative value.
N_SEP_BY_SPACE | Returns 1 if a space separates CURRENCY_SYMBOL from a negative value.
P_SIGN_POSN
  • Returns 0 if parentheses surround the quantity and CURRENCY_SYMBOL.
  • Returns 1 if the sign string precedes the quantity and CURRENCY_SYMBOL.
  • Returns 2 if the sign string follows the quantity and CURRENCY_SYMBOL.
  • Returns 3 if the sign string immediately precedes the CURRENCY_SYMBOL.
  • Returns 4 if the sign string immediately follows the CURRENCY_SYMBOL.
N_SIGN_POSN
LC_NUMERIC Category Constants
DECIMAL_POINT | Decimal point character.
RADIXCHAR | Same value as DECIMAL_POINT.
THOUSANDS_SEP | Separator character for thousands (groups of three digits).
THOUSEP | Same value as THOUSANDS_SEP.
GROUPING
LC_MESSAGES Category Constants
YESEXPR | Regex string for matching "yes" input.
NOEXPR | Regex string for matching "no" input.
YESSTR | Output string for "yes".
NOSTR | Output string for "no".
LC_CTYPE Category Constants
CODESET | Return a string with the name of the character encoding.

Valor Retornado

Returns the element as a string, or false if item is not valid.

Exemplos

Exemplo #1 nl_langinfo() example

<?php

var_dump(nl_langinfo(CODESET));
var_dump(nl_langinfo(YESEXPR));
?>

O exemplo acima produzirá algo semelhante a:

string(14) "ANSI_X3.4-1968"
string(5) "^[yY]"

Notas

Nota: Esta função não foi implementada em plataformas Windows.

Veja Também

  • setlocale() - Set locale information
  • localeconv() - Get numeric formatting information


Inserts HTML line breaks before all newlines in a string

  • « nl_langinfo
  • number_format »
  • PHP Manual
  • Funções de String
  • Inserts HTML line breaks before all newlines in a string

nl2br

(PHP 4, PHP 5, PHP 7, PHP 8)

nl2br — Inserts HTML line breaks before all newlines in a string

Descrição

nl2br(string $string, bool $use_xhtml = true): string

Returns string with <br /> or <br> inserted before all newlines (\r\n, \n\r, \n and \r).

Parâmetros

string

The input string.

use_xhtml

Whether to use XHTML compatible line breaks or not.

Valor Retornado

Returns the altered string.

Exemplos

Exemplo #1 Using nl2br()

<?php
echo nl2br("foo isn't\n bar");
?>

O exemplo acima produzirá:

foo isn't<br />
 bar

Exemplo #2 Generating valid HTML markup using the use_xhtml parameter

<?php
echo nl2br("Welcome\r\nThis is my HTML document", false);
?>

O exemplo acima produzirá:

Welcome<br>
This is my HTML document

Exemplo #3 Various newline separators

<?php
$string = "This\r\nis\n\ra\nstring\r";
echo nl2br($string);
?>

O exemplo acima produzirá:

This<br />
is<br />
a<br />
string<br />

Veja Também

  • htmlspecialchars() - Convert special characters to HTML entities
  • htmlentities() - Convert all applicable characters to HTML entities
  • wordwrap() - Quebra uma string em um dado número de caracteres
  • str_replace() - Substitui todas as ocorrências da string de pesquisa com a string de substituição


Format a number with grouped thousands

  • « nl2br
  • ord »
  • PHP Manual
  • Funções de String
  • Format a number with grouped thousands

number_format

(PHP 4, PHP 5, PHP 7, PHP 8)

number_format — Format a number with grouped thousands

Descrição

number_format(
float $num,
int $decimals = 0,
?string $decimal_separator = ".",
?string $thousands_separator = ","
): string

Formats a number with grouped thousands and optionally decimal digits using the rounding half up rule.

Parâmetros

num

The number being formatted.

decimals

Sets the number of decimal digits. If 0, the decimal_separator is omitted from the return value.

decimal_separator

Sets the separator for the decimal point.

thousands_separator

Sets the thousands separator.

Valor Retornado

A formatted version of num.

Registro de Alterações

Versão | Descrição
8.0.0 | Prior to this version, number_format() accepted one, two, or four parameters (but not three).
7.2.0 | number_format() was changed to not being able to return -0, previously -0 could be returned for cases like where num would be -0.01.

Exemplos

Exemplo #1 number_format() Example

For instance, French notation usually use two decimals, comma (',') as decimal separator, and space (' ') as thousand separator. The following example demonstrates various ways to format a number:

<?php

$number = 1234.56;

// english notation (default)
$english_format_number = number_format($number);
// 1,235

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// english notation without thousands separator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

Veja Também

  • money_format() - Formata um número como uma string de moeda
  • sprintf() - Return a formatted string
  • printf() - Output a formatted string
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato


Converte o primeiro byte de uma string para um valor entre 0 e 255

  • « number_format
  • parse_str »
  • PHP Manual
  • Funções de String
  • Converte o primeiro byte de uma string para um valor entre 0 e 255

ord

(PHP 4, PHP 5, PHP 7, PHP 8)

ord — Converte o primeiro byte de uma string para um valor entre 0 e 255

Descrição

ord(string $character): int

Interpreta o valor binário do primeiro byte de character como um inteiro sem sinal entre 0 e 255.

Se a string estiver em codificação de um byte, como ASCII, ISO-8859 ou Windows 1252, é equivalente a retornar a posição de um caractere na tabela de mapeamento do conjunto de caracteres. Entretanto, note que esta função não tem ciência da codificação da string, e em particular nunca irá identificar um ponto de código Unicode em uma codificação multi-byte como UTF-8 ou UTF-16.

Esta função complementa a função chr().

Parâmetros

character

A string que terá o primeiro caractere avaliado.

Valor Retornado

An integer between 0 and 255.

Exemplos

Exemplo #1 Exemplo de ord()

<?php
$str = "\n";
if (ord($str) == 10) {
echo "O primeiro caractere de \$str é uma nova linha.\n";
}
?>

Exemplo #2 Examinando os bytes individuais de uma string UTF-8

<?php
declare(encoding='UTF-8');
$str = "??";
for ( $pos=0; $pos < strlen($str); $pos ++ ) {
$byte = substr($str, $pos);
echo 'Byte ' . $pos . ' de $str tem valor ' . ord($byte) . PHP_EOL;
}
?>

O exemplo acima produzirá:

Byte 0 de $str tem valor 240
Byte 1 de $str tem valor 159
Byte 2 de $str tem valor 144
Byte 3 de $str tem valor 152

Veja Também

  • chr() - Generate a single-byte string from a number
  • » Tabela ASCII
  • mb_ord() - Obtém o ponto de código Unicode do caractere
  • IntlChar::ord() - Retorna o valor do ponto de código Unicode do caractere


Converte a string em variáveis

  • « ord
  • print »
  • PHP Manual
  • Funções de String
  • Converte a string em variáveis

parse_str

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_str — Converte a string em variáveis

Descrição

parse_str(string $string, array &$result): void

Interpreta string como se ela fosse uma query string passada via URL e cria variáveis no escopo atual ou no array se informado em result.

Parâmetros

string

The input string.

result

Se o segundo parâmetro result for informado, as variáveis serão gravadas como elementos de array.

Aviso

Utilizar esta função sem o parâmetro result é altamente DESENCORAJADO e foi DESCONTINUADO a partir do PHP 7.2. Desde o 8.0.0, o parâmetro result é obrigatório.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | result não é mais opcional.
7.2.0 | Utilização de parse_str() sem o segundo parâmetro agora emite um aviso de E_DEPRECATED.

Exemplos

Exemplo #1 Using parse_str()

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";

// Recommended
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

// DISCOURAGED
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>

Como variáveis no PHP não podem conter pontos ou espaços em seus nomes, estes são convertidos em underlines. O mesmo se aplica aos nomes de chaves de array no caso de utilizar esta função com o parâmetro result.

Exemplo #2 Name mangling em parse_str()

<?php
parse_str("My Value=Something");
echo $My_Value; // Something

parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>

Notas

Nota:

Todas as variáveis criadas, ou os valores informados no array do segundo parâmetro, já estarão automaticamente convertidos porurldecode().

Nota:

Para obter a QUERY_STRING em si, voc? pode utilizar a variável $_SERVER['QUERY_STRING']. Além disso, leia a seção sobre variáveis de fontes externas.

Veja Também

  • parse_url() - Parse a URL and return its components
  • pathinfo() - Retorna informações sobre um caminho de arquivo
  • http_build_query() - Gera a string de consulta (query) em formato URL
  • urldecode() - Decodifica uma URL codificada


Mostra uma string

  • « parse_str
  • printf »
  • PHP Manual
  • Funções de String
  • Mostra uma string

print

(PHP 4, PHP 5, PHP 7, PHP 8)

print — Mostra uma string

Descrição

print(string $expression): int

Mostra o conteúdo de expression.

print não é uma função, é uma construção de linguagem. Seu argumento é a expressão logo após da palavra-chave print, e não é delimitada por parênteses.

As principais diferenças para echo são que print aceita apenas um único argumento e sempre retorna 1.

Parâmetros

expression

A expressão a ser mostrada. Valores não-string serão convertidos coercitivamente para strings, mesmo quando a diretiva strict_types estiver habilitada.

Valor Retornado

Retorna 1, sempre.

Exemplos

Exemplo #1 Exemplos print

<?php
print "print não requer parênteses.";

// Não é adicionado espaço ou quebra de linha; o exemplo abaixo mostra "olámundo" em uma só linha
print "olá";
print "mundo";

print "Este string ocupa
múltiplas linhas. As quebras de linha
também serão mostradas.";

print "Este string ocupa\nmúltiplas linhas. As quebras de linha\ntambém serão mostradas.";

// O argumento pode ser qualquer expressão que produza uma string
$foo = "exemplo";
print "foo é um $foo"; // foo é um exemplo

$frutas = ["limão", "laranja", "banana"];
print implode(" e ", $frutas); // limão e laranja e banana

// Expressões não string são convertidas coercitivamente para strings, mesmo que declare(strict_types=1) seja usado
print 6 * 7; // 42

// Como print tem um valor de retorno, pode ser usado em expressões
// O código a seguir mostra "olá mundo"
if ( print "olá" ) {
echo " mundo";
}

// O código a seguir mostra "verdadeiro"
( 1 === 1 ) ? print 'verdadeiro' : print 'falso';
?>

Notas

Nota: Usando com parênteses

Envolver o argumento de print com parênteses não irá causar um erro de sintaxe, e produz uma sintaxe que se parece com uma chamada normal de função. Entretanto, isso pode causar confusão, porque os parênteses são na verdade parte da expressão sendo mostrada, e não parte da sintaxe de print propriamente.

<?php
print "olá";
// mostra "olá"

print("hello");
// também mostra "olá", porque ("olá") é uma expressão válida

print(1 + 2) * 3;
// mostra "9"; os parênteses fazem com que 1+2 seja avaliado primeiro, e depois 3*3
// a declaração print enxerga toda a expressão como um único argumento

if ( print("olá") && false ) {
print " - dentro do if";
}
else {
print " - dentro do else";
}
// Mostra " - dentro do if"
// A expressão ("olá") && false é avaliada primeiro, produzindo resultado falso.
// Isto é convertido à força para a string vazia "" e mostrado.
// A declaração print á partir daí retorna 1, então o código dentro do bloco if é executado
?>

Ao usar print com uma expressão maior, colocar tanto a palavra-chave quanto seu argumento entre parênteses pode ser necessário para gerar o resultado desejado:

<?php
if ( (print "olá") && false ) {
print " - dentro do if";
}
else {
print " - dentro do else";
}
// Mostra "olá - dentro do else"
// Diferentemente do exemplo anterior, a expressão (print "olá") é avaliada primeiro.
// Depois de mostrar "olá", print retorna 1.
// Já que 1 && false é falso, o código dentro do bloco else é executado.

print "olá " && print "mundo";
// Mostra "mundo1"; print "mundo" é avaliado primeiro,
// e depois a expressão "olá " && 1 é passada ao print da esquerda

(print "olá ") && (print "mundo");
// Mostra "olá mundo"; os parênteses forçam a avaliação das expressões print
// antes da operação &&
?>

Nota: Como esta é uma construção da linguagem e não uma função, ela não pode ser chamada usando funções variáveis ou argumentos nomeados.

Veja Também

  • echo - Output one or more strings
  • printf() - Output a formatted string
  • flush() - Flush system output buffer
  • Maneiras de especificar strings literais


Output a formatted string

  • « print
  • quoted_printable_decode »
  • PHP Manual
  • Funções de String
  • Output a formatted string

printf

(PHP 4, PHP 5, PHP 7, PHP 8)

printf — Output a formatted string

Descrição

printf(string $format, mixed ...$values): int

Produces output according to format.

Parâmetros

format

A string de formato é composta de zero ou mais diretivas: caracteres comuns (excluindo %) que são copiados diretamente para o resultado e especificações de conversão, cada uma das quais resulta na busca de seu próprio parâmetro.

Uma especificação de conversão segue este protótipo: %[argnum$][flags][width][.precision]especificador.

Argnum

Um número inteiro seguido por um cifrão $, para especificar qual o número de argumento a tratar na conversão.

Flags
Flag | Descrição
- Justificar à esquerda dentro da largura de campo especificada; A justificação à direita é o padrão.
+ Prefixa números positivos com um sinal de mais +; Por padrão, apenas números negativos são prefixados com um sinal negativo.
(espaço) | Preenche o resultado com espaços. Este é o padrão.
0 | Preenche números com zeros apenas à esquerda. Com os especificadores s, também pode preencher com zeros à direita.
'(char) | Preenche o resultado com o caractere (char).

Width

Um número inteiro que define em quantos caracteres (mínimo) esta conversão deve resultar, ou *. Se * for usado, a largura será fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Precision

Um ponto . opcionalmente seguido por um número inteiro ou *, cujo significado depende do especificador:

  • Para os especificadores e, E, f e F: este é o número de dígitos a serem impressos após o ponto decimal (por padrão, é 6).
  • Para os especificadores g, G, h e H: este é o número máximo de dígitos significativos a serem impressos.
  • Para o especificador s: atua como um ponto de corte, definindo um limite máximo de caracteres para a string.

Nota: Se o ponto for especificado sem um valor explícito para precisão, 0 é assumido. Se * for usado, a precisão é fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Especificadores
Especificador | Descrição
% Um caractere literal de porcentagem. Nenhum argumento é necessário.
b | O argumento é tratado como um número inteiro e apresentado como um número binário.
c | O argumento é tratado como um número inteiro e apresentado como o caractere com aquele código ASCII.
d | O argumento é tratado como um número inteiro e apresentado como um número decimal (com sinal).
e | O argumento é tratado como notação científica (por exemplo, 1.2e+2).
E | Como o especificador e, mas usa letra maiúscula (por exemplo, 1.2E+2).
f | O argumento é tratado como um float e apresentado como um número de ponto flutuante (com reconhecimento da localidade).
F | O argumento é tratado como um float e apresentado como um número de ponto flutuante (sem reconhecimento da localidade).
g

Formato geral.

Deixa P igual à precisão se for diferente de zero, 6 se a precisão for omitida, ou 1 se a precisão for zero. Então, se uma conversão com estilo E tivesse um expoente de X:

Se P > X = -4, a conversão é com estilo f e precisão P - (X + 1). Caso contrário, a conversão é com estilo e e precisão P - 1.

G | Como o especificador g, mas usa E e f.
h | Como o especificador g, mas usa F. Disponível a partir do PHP 8.0.0.
H | Como o especificador g, mas usa E e F. Disponível a partir do PHP 8.0.0.
o | O argumento é tratado como um número inteiro e apresentado como um número octal.
s | O argumento é tratado e apresentado como uma string.
u | O argumento é tratado como um número inteiro e apresentado como um número decimal sem sinal.
x | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras minúsculas).
X | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras maiúsculas).

Aviso

O especificador de tipo c ignora preenchimento e largura.

Aviso

Tentar usar uma combinação dos especificadores de string e largura com conjuntos de caracteres que requerem mais de um byte por caractere pode resultar em resultados inesperados.

As variáveis serão forçadas a um tipo adequado para o especificador:

Tratamento de Tipos
Tipo | Especificadores
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valor Retornado

Returns the length of the outputted string.

Erros/Exceções

A partir do PHP 8.0.0, um erro ValueError será lançado se o número de argumentos for zero. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [width] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [precision] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ArgumentCountError será lançado quando menos argumentos do que o necessário forem fornecidos. Antes do PHP 8.0.0, false era retornado e um E_WARNING era emitido.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função não retorna mais false em caso de falha.
8.0.0 | Lança um erro ValueError se o número de argumentos for zero; anteriormente, esta função emitia um E_WARNING.
8.0.0 | Lança um erro ValueError se [width] for menor que zero ou maior que PHP_INT_MAX; anteriormente, esta função emitia um E_WARNING.
8.0.0 | Lança um erro ValueError se [precision] for menor que zero ou maior que PHP_INT_MAX; anteriormente, esta função emitia um E_WARNING.
8.0.0 | Lança um erro ArgumentCountError quando menos argumentos do que o necessário são fornecidos; anteriormente, esta função emitia um E_WARNING.

Exemplos

Exemplo #1 printf(): various examples

<?php
$n = 43951789;
$u = -43951789;
$c = 65; // ASCII 65 is 'A'

// notice the double %%, this prints a literal '%' character
printf("%%b = '%b'\n", $n); // binary representation
printf("%%c = '%c'\n", $c); // print the ascii character, same as chr() function
printf("%%d = '%d'\n", $n); // standard integer representation
printf("%%e = '%e'\n", $n); // scientific notation
printf("%%u = '%u'\n", $n); // unsigned integer representation of a positive integer
printf("%%u = '%u'\n", $u); // unsigned integer representation of a negative integer
printf("%%f = '%f'\n", $n); // floating point representation
printf("%%o = '%o'\n", $n); // octal representation
printf("%%s = '%s'\n", $n); // string representation
printf("%%x = '%x'\n", $n); // hexadecimal representation (lower-case)
printf("%%X = '%X'\n", $n); // hexadecimal representation (upper-case)

printf("%%+d = '%+d'\n", $n); // sign specifier on a positive integer
printf("%%+d = '%+d'\n", $u); // sign specifier on a negative integer
?>

O exemplo acima produzirá:

%b = '10100111101010011010101101'
%c = 'A'
%d = '43951789'
%e = '4.39518e+7'
%u = '43951789'
%u = '4251015507'
%f = '43951789.000000'
%o = '247523255'
%s = '43951789'
%x = '29ea6ad'
%X = '29EA6AD'
%+d = '+43951789'
%+d = '-43951789'

Exemplo #2 printf(): string specifiers

<?php
$s = 'monkey';
$t = 'many monkeys';

printf("[%s]\n", $s); // standard string output
printf("[%10s]\n", $s); // right-justification with spaces
printf("[%-10s]\n", $s); // left-justification with spaces
printf("[%010s]\n", $s); // zero-padding works on strings too
printf("[%'#10s]\n", $s); // use the custom padding character '#'
printf("[%'#*s]\n", 10, $s); // Provide the padding width as an additional argument
printf("[%10.9s]\n", $t); // right-justification but with a cutoff of 8 characters
printf("[%-10.9s]\n", $t); // left-justification but with a cutoff of 8 characters
?>

O exemplo acima produzirá:

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[####monkey]
[ many monk]
[many monk ]

Veja Também

  • print - Mostra uma string
  • sprintf() - Return a formatted string
  • fprintf() - Escreve uma string formatada para um fluxo
  • vprintf() - Output a formatted string
  • vsprintf() - Return a formatted string
  • vfprintf() - Escreve uma string formatada para um fluxo
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato
  • fscanf() - Interpreta a leitura de um arquivo de acordo com um formato
  • number_format() - Format a number with grouped thousands
  • date() - Formatar um timestamp Unix
  • flush() - Flush system output buffer


Converte uma string Quoted-Printable para uma string de 8 bits

  • « printf
  • quoted_printable_encode »
  • PHP Manual
  • Funções de String
  • Converte uma string Quoted-Printable para uma string de 8 bits

quoted_printable_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

quoted_printable_decode — Converte uma string Quoted-Printable para uma string de 8 bits

Descrição

quoted_printable_decode(string $string): string

Esta função retorna uma string binária de 8 bits correspondendo à string Quoted-Printable decodificada (de acordo com a » RFC2045 seção 6.7, e não à » RFC2821 seção 4.5.2, de forma que pontos adicionais não são removidos do início da linha).

Esta função é similar à imap_qprint(), exceto que essa não requer o módulo IMAP para funcionar.

Parâmetros

string

A string de entrada.

Valor Retornado

Retorna uma string binária de 8 bits.

Exemplos

Exemplo #1 Exemplo de quoted_printable_decode()

<?php

$encoded = quoted_printable_encode('Möchten Sie ein paar Äpfel?');

var_dump($encoded);
var_dump(quoted_printable_decode($encoded));
?>

O exemplo acima produzirá:

string(37) "M=C3=B6chten Sie ein paar =C3=84pfel?"
string(29) "Möchten Sie ein paar Äpfel?"

Veja Também

  • quoted_printable_encode() - Converte uma string de 8 bits para uma string Quoted-Printable


Converte uma string de 8 bits para uma string Quoted-Printable

  • « quoted_printable_decode
  • quotemeta »
  • PHP Manual
  • Funções de String
  • Converte uma string de 8 bits para uma string Quoted-Printable

quoted_printable_encode

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

quoted_printable_encode — Converte uma string de 8 bits para uma string Quoted-Printable

Descrição

quoted_printable_encode(string $string): string

Retorna uma string Quoted-Printable de acordo com a » RFC2045 seção 6.7.

Esta função é similar à imap_8bit(), exceto que essa não requer o módulo IMAP para funcionar.

Parâmetros

string

A string de entrada.

Valor Retornado

Retorna a string codificada.

Exemplos

Exemplo #1 Exemplo de quoted_printable_encode()

<?php

$encoded = quoted_printable_encode('Möchten Sie ein paar Äpfel?');

var_dump($encoded);
var_dump(quoted_printable_decode($encoded));
?>

O exemplo acima produzirá:

string(37) "M=C3=B6chten Sie ein paar =C3=84pfel?"
string(29) "Möchten Sie ein paar Äpfel?"

Veja Também

  • quoted_printable_decode() - Converte uma string Quoted-Printable para uma string de 8 bits
  • iconv_mime_encode() - Compõe um campo de cabeçalho MIME


Quote meta characters

  • « quoted_printable_encode
  • rtrim »
  • PHP Manual
  • Funções de String
  • Quote meta characters

quotemeta

(PHP 4, PHP 5, PHP 7, PHP 8)

quotemeta — Quote meta characters

Descrição

quotemeta(string $string): string

Returns a version of str with a backslash character (\) before every character that is among these:

. \ + * ? [ ^ ] ( $ )

Parâmetros

string

The input string.

Valor Retornado

Returns the string with meta characters quoted, or false if an empty string is given as string.

Exemplos

Exemplo #1 quotemeta() example

<?php

var_dump(quotemeta('PHP is a popular scripting language. Fast, flexible, and pragmatic.'));
?>

O exemplo acima produzirá:

string(69) "PHP is a popular scripting language\. Fast, flexible, and pragmatic\."

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • addslashes() - Adiciona barras a uma string
  • addcslashes() - Quote string with slashes in a C style
  • htmlentities() - Convert all applicable characters to HTML entities
  • htmlspecialchars() - Convert special characters to HTML entities
  • nl2br() - Inserts HTML line breaks before all newlines in a string
  • stripslashes() - Desfaz os escapes de uma string escapada
  • stripcslashes() - Remove o escape de strings escapadas com addcslashes
  • preg_quote() - Quote regular expression characters


Retira espaço em branco (ou outros caracteres) do final de uma string

  • « quotemeta
  • setlocale »
  • PHP Manual
  • Funções de String
  • Retira espaço em branco (ou outros caracteres) do final de uma string

rtrim

(PHP 4, PHP 5, PHP 7, PHP 8)

rtrim — Retira espaço em branco (ou outros caracteres) do final de uma string

Descrição

rtrim(string $string, string $characters = " \n\r\t\v\x00"): string

Esta função retorna uma string com os espaços (ou outros caracteres) retirados do final de string.

Sem o segundo parâmetro, rtrim() irá retirar os seguintes caracteres:

  • " " (ASCII 32 (0x20)), um espaço comum.
  • "\t" (ASCII 9 (0x09)), uma tabulação.
  • "\n" (ASCII 10 (0x0A)), uma nova linha.
  • "\r" (ASCII 13 (0x0D)), um retorno de carro(ENTER).
  • "\0" (ASCII 0 (0x00)), o byte NULL.
  • "\v" (ASCII 11 (0x0B)), uma tabulação vertical.

Parâmetros

string

A string de entrada.

characters

Pode-se também especificar outros caracteres que deseja-se que sejam retirados, por meio do parâmetro characters. Simplesmente liste todos os caracteres que devem ser retirados. Com .., pode-se especificar um intervalo de caracteres.

Valor Retornado

Retorna a string modificada.

Exemplos

Exemplo #1 Exemplo de uso da função rtrim()

<?php

$text = "\t\tThese are a few words :) ... ";
$binary = "\x09Example string\x0A";
$hello = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = rtrim($text);
var_dump($trimmed);

$trimmed = rtrim($text, " \t.");
var_dump($trimmed);

$trimmed = rtrim($hello, "Hdle");
var_dump($trimmed);

// Retira os caracteres de controle ASCII no final de $binary
// (de 0 a 31 inclusive)
$clean = rtrim($binary, "\x00..\x1F");
var_dump($clean);

?>

O exemplo acima produzirá:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "        These are a few words :) ..."
string(26) "        These are a few words :)"
string(9) "Hello Wor"
string(15) "    Example string"

Veja Também

  • trim() - Retira espaço (ou outros caracteres) do início e do final de uma string
  • ltrim() - Retira espaços em branco (ou outros caracteres) do início de uma string


Set locale information

  • « rtrim
  • sha1_file »
  • PHP Manual
  • Funções de String
  • Set locale information

setlocale

(PHP 4, PHP 5, PHP 7, PHP 8)

setlocale — Set locale information

Descrição

setlocale(int $category, string $locales, string ...$rest): string|false

Alternative signature (not supported with named arguments):

setlocale(int $category, array $locale_array): string|false

Sets locale information.

Aviso

The locale information is maintained per process, not per thread. If you are running PHP on a multithreaded server API , you may experience sudden changes in locale settings while a script is running, though the script itself never called setlocale(). This happens due to other scripts running in different threads of the same process at the same time, changing the process-wide locale using setlocale(). On Windows, locale information is maintained per thread as of PHP 7.0.5.

Parâmetros

category

category is a named constant specifying the category of the functions affected by the locale setting:

  • LC_ALL for all of the below
  • LC_COLLATE for string comparison, see strcoll()
  • LC_CTYPE for character classification and conversion, for example ctype_alpha()
  • LC_MONETARY for localeconv()
  • LC_NUMERIC for decimal separator (See also localeconv())
  • LC_TIME for date and time formatting with strftime()
  • LC_MESSAGES for system responses (available if PHP was compiled with libintl)

locales

If locales is the empty string "", the locale names will be set from the values of environment variables with the same names as the above categories, or from "LANG".

If locales is "0", the locale setting is not affected, only the current setting is returned.

If locales is followed by additional parameters then each parameter is tried to be set as new locale until success. This is useful if a locale is known under different names on different systems or for providing a fallback for a possibly not available locale.

rest

Optional string parameters to try as locale settings until success.

locale_array

Each array element is tried to be set as new locale until success. This is useful if a locale is known under different names on different systems or for providing a fallback for a possibly not available locale.

Nota:

On Windows, setlocale(LC_ALL, '') sets the locale names from the system's regional/language settings (accessible via Control Panel).

Valor Retornado

Returns the new current locale, or false if the locale functionality is not implemented on your platform, the specified locale does not exist or the category name is invalid.

An invalid category name also causes a warning message. Category/locale names can be found in » RFC 1766 and » ISO 639. Different systems have different naming schemes for locales.

Nota:

The return value of setlocale() depends on the system that PHP is running. It returns exactly what the system setlocale function returns.

Exemplos

Exemplo #1 setlocale() Examples

<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'nl_NL');

/* Output: vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* try different possible locale names for german */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
?>

Exemplo #2 setlocale() Examples for Windows

<?php
/* Set locale to Dutch */
setlocale(LC_ALL, 'nld_nld');

/* Output: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* try different possible locale names for german */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Preferred locale for german on this system is '$loc_de'";
?>

Notas

Dica

Windows users will find useful information about locales strings at Microsoft's MSDN website. Supported language strings can be found in the » language strings documentation and supported country/region strings in the » country/region strings documentation.


Calcula a hash sha1 de um arquivo

  • « setlocale
  • sha1 »
  • PHP Manual
  • Funções de String
  • Calcula a hash sha1 de um arquivo

sha1_file

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

sha1_file — Calcula a hash sha1 de um arquivo

Descrição

sha1_file(string $filename, bool $binary = false): string|false

Calcula a hash sha1 do arquivo especificado por filename usando o » US Secure Hash Algorithm 1, e retorna esta hash. A hash é um número hexadecimal de 40 caracteres.

Parâmetros

filename

O nome do arquivo de onde a hash será obtida.

binary

Quando true, retorna a hash no formato binário bruto com um tamanho de 20 caracteres.

Valor Retornado

Retorna uma string em caso de sucesso, false caso contrário.

Exemplos

Exemplo #1 Exemplo de sha1_file()

<?php
foreach(glob('/home/Kalle/myproject/*.php') as $ent)
{
if(is_dir($ent))
{
continue;
}

echo $ent . ' (SHA1: ' . sha1_file($ent) . ')', PHP_EOL;
}
?>

Veja Também

  • sha1() - Calculate the sha1 hash of a string
  • md5_file() - Calculates the md5 hash of a given file
  • crc32() - Calcula polinômio crc32 de uma string


Calculate the sha1 hash of a string

  • « sha1_file
  • similar_text »
  • PHP Manual
  • Funções de String
  • Calculate the sha1 hash of a string

sha1

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

sha1 — Calculate the sha1 hash of a string

Aviso

Não é recomendado usar esta função para proteger senhas, devido à natureza rápida deste algoritmo de hash. Consulte as Perguntas Frequentes sobre Hashing de Senha para obter detalhes e melhores práticas.

Descrição

sha1(string $string, bool $binary = false): string

Calculates the sha1 hash of string using the » US Secure Hash Algorithm 1.

Parâmetros

string

The input string.

binary

If the optional binary is set to true, then the sha1 digest is instead returned in raw binary format with a length of 20, otherwise the returned value is a 40-character hexadecimal number.

Valor Retornado

Returns the sha1 hash as a string.

Exemplos

Exemplo #1 A sha1() example

<?php
$str = 'apple';

if (sha1($str) === 'd0be2dc421be4fcd0172e5afceea3970e2f3d940') {
echo "Would you like a green or red apple?";
}
?>

Veja Também

  • sha1_file() - Calcula a hash sha1 de um arquivo
  • crc32() - Calcula polinômio crc32 de uma string
  • md5() - Calculate the md5 hash of a string
  • hash() - Generate a hash value (message digest)
  • crypt() - One-way string hashing
  • password_hash() - Cria um hash de senha


Calcula a similaridade entre duas strings

  • « sha1
  • soundex »
  • PHP Manual
  • Funções de String
  • Calcula a similaridade entre duas strings

similar_text

(PHP 4, PHP 5, PHP 7, PHP 8)

similar_text — Calcula a similaridade entre duas strings

Descrição

similar_text(string $string1, string $string2, float &$percent = null): int

Calcula a similaridade entre duas strings como descrito em Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Note que esta implementação não usa uma pilha como no pseudo-código de Oliver, mas chamadas recursivas que podem ou não acelerar todo o processo. Note também que a complexidade deste algoritmo é O(N**3) onde N é o tamanho da string mais longa.

Parâmetros

string1

A primeira string.

string2

A segunda string.

Nota:

Trocar a string1 de lugar com a string2 pode gerar um resultado diferente; veja o exemplo abaixo.

percent

Ao passar referência como terceiro argumento, similar_text() irá calcular a similaridade em percentual, dividindo o resultado de similar_text() percentual média de comprimentos das strings fornecidas vezes 100.

Valor Retornado

Retorna o número de caracteres correspondentes em ambas as strings.

O número de caracteres correspondentes é calculado encontrando-se a primeira substring comum mais longa, e depois fazendo o mesmo para os prefixos e sufixos, recursivamente. Os comprimentos de todas as substrings comuns encontradas são somados.

Exemplos

Exemplo #1 Exemplo de similar_text() com inversão de ordem de argumentos

Este exemplo mostra que a inversão da ordem de string1 e string2 pode gerar resultados diferentes.

<?php
$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "similarity: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "similarity: $sim ($perc %)\n";

O exemplo acima produzirá algo semelhante a:

similarity: 5 (71.428571428571 %)
similarity: 3 (42.857142857143 %)

Veja Também

  • levenshtein() - Calculate Levenshtein distance between two strings
  • soundex() - Calcula a chave soundex de uma string


Calcula a chave soundex de uma string

  • « similar_text
  • sprintf »
  • PHP Manual
  • Funções de String
  • Calcula a chave soundex de uma string

soundex

(PHP 4, PHP 5, PHP 7, PHP 8)

soundex — Calcula a chave soundex de uma string

Descrição

soundex(string $string): string

Calcula a chave soundex de string.

Chaves soundex têm a propriedade de que palavras pronunciadas de forma semelhante produzem a mesma chave soundex e podem, portanto, ser usadas para simplificar pesquisas em bancos de dados onde a pronúncia é conhecida mas não a soletração.

Esta função soundex em particular é a descrita por Donald Knuth em "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), pp. 391-392.

Parâmetros

string

A string de entrada.

Valor Retornado

Retorna a chave soundex como uma string com quatro caracteres. Se pelo menos uma letra estiver contida na string, a string retornada começa com uma letra. Caso contrário, "0000" é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | Antes desta versão, chamar a função com uma string vazia retornava false por nenhuma razão em particular.

Exemplos

Exemplo #1 Exemplos de Soundex

<?php
soundex("Euler") == soundex("Ellery"); // E460
soundex("Gauss") == soundex("Ghosh"); // G200
soundex("Hilbert") == soundex("Heilbronn"); // H416
soundex("Knuth") == soundex("Kant"); // K530
soundex("Lloyd") == soundex("Ladd"); // L300
soundex("Lukasiewicz") == soundex("Lissajous"); // L222
?>

Veja Também

  • levenshtein() - Calculate Levenshtein distance between two strings
  • metaphone() - Calculate the metaphone key of a string
  • similar_text() - Calcula a similaridade entre duas strings


Return a formatted string

  • « soundex
  • sscanf »
  • PHP Manual
  • Funções de String
  • Return a formatted string

sprintf

(PHP 4, PHP 5, PHP 7, PHP 8)

sprintf — Return a formatted string

Descrição

sprintf(string $format, mixed ...$values): string

Returns a string produced according to the formatting string format.

Parâmetros

format

A string de formato é composta de zero ou mais diretivas: caracteres comuns (excluindo %) que são copiados diretamente para o resultado e especificações de conversão, cada uma das quais resulta na busca de seu próprio parâmetro.

Uma especificação de conversão segue este protótipo: %[argnum$][flags][width][.precision]especificador.

Argnum

Um número inteiro seguido por um cifrão $, para especificar qual o número de argumento a tratar na conversão.

Flags
Flag | Descrição
- Justificar à esquerda dentro da largura de campo especificada; A justificação à direita é o padrão.
+ Prefixa números positivos com um sinal de mais +; Por padrão, apenas números negativos são prefixados com um sinal negativo.
(espaço) | Preenche o resultado com espaços. Este é o padrão.
0 | Preenche números com zeros apenas à esquerda. Com os especificadores s, também pode preencher com zeros à direita.
'(char) | Preenche o resultado com o caractere (char).

Width

Um número inteiro que define em quantos caracteres (mínimo) esta conversão deve resultar, ou *. Se * for usado, a largura será fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Precision

Um ponto . opcionalmente seguido por um número inteiro ou *, cujo significado depende do especificador:

  • Para os especificadores e, E, f e F: este é o número de dígitos a serem impressos após o ponto decimal (por padrão, é 6).
  • Para os especificadores g, G, h e H: este é o número máximo de dígitos significativos a serem impressos.
  • Para o especificador s: atua como um ponto de corte, definindo um limite máximo de caracteres para a string.

Nota: Se o ponto for especificado sem um valor explícito para precisão, 0 é assumido. Se * for usado, a precisão é fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Especificadores
Especificador | Descrição
% Um caractere literal de porcentagem. Nenhum argumento é necessário.
b | O argumento é tratado como um número inteiro e apresentado como um número binário.
c | O argumento é tratado como um número inteiro e apresentado como o caractere com aquele código ASCII.
d | O argumento é tratado como um número inteiro e apresentado como um número decimal (com sinal).
e | O argumento é tratado como notação científica (por exemplo, 1.2e+2).
E | Como o especificador e, mas usa letra maiúscula (por exemplo, 1.2E+2).
f | O argumento é tratado como um float e apresentado como um número de ponto flutuante (com reconhecimento da localidade).
F | O argumento é tratado como um float e apresentado como um número de ponto flutuante (sem reconhecimento da localidade).
g

Formato geral.

Deixa P igual à precisão se for diferente de zero, 6 se a precisão for omitida, ou 1 se a precisão for zero. Então, se uma conversão com estilo E tivesse um expoente de X:

Se P > X = -4, a conversão é com estilo f e precisão P - (X + 1). Caso contrário, a conversão é com estilo e e precisão P - 1.

G | Como o especificador g, mas usa E e f.
h | Como o especificador g, mas usa F. Disponível a partir do PHP 8.0.0.
H | Como o especificador g, mas usa E e F. Disponível a partir do PHP 8.0.0.
o | O argumento é tratado como um número inteiro e apresentado como um número octal.
s | O argumento é tratado e apresentado como uma string.
u | O argumento é tratado como um número inteiro e apresentado como um número decimal sem sinal.
x | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras minúsculas).
X | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras maiúsculas).

Aviso

O especificador de tipo c ignora preenchimento e largura.

Aviso

Tentar usar uma combinação dos especificadores de string e largura com conjuntos de caracteres que requerem mais de um byte por caractere pode resultar em resultados inesperados.

As variáveis serão forçadas a um tipo adequado para o especificador:

Tratamento de Tipos
Tipo | Especificadores
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valor Retornado

Returns a string produced according to the formatting string format.

Erros/Exceções

A partir do PHP 8.0.0, um erro ValueError será lançado se o número de argumentos for zero. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [width] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [precision] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ArgumentCountError será lançado quando menos argumentos do que o necessário forem fornecidos. Antes do PHP 8.0.0, false era retornado e um E_WARNING era emitido.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função não retorna mais false em caso de falha.
8.0.0 | Lança um erro ValueError se o número de argumentos for zero; anteriormente, esta função emitia um E_WARNING.
8.0.0 | Lança um erro ValueError se [width] for menor que zero ou maior que PHP_INT_MAX; anteriormente, esta função emitia um E_WARNING.
8.0.0 | Lança um erro ValueError se [precision] for menor que zero ou maior que PHP_INT_MAX; anteriormente, esta função emitia um E_WARNING.
8.0.0 | Lança um erro ArgumentCountError quando menos argumentos do que o necessário são fornecidos; anteriormente, esta função emitia um E_WARNING.

Exemplos

Exemplo #1 Argument swapping

The format string supports argument numbering/swapping.

<?php
$num = 5;
$location = 'tree';

$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);
?>

O exemplo acima produzirá:

There are 5 monkeys in the tree

However imagine we are creating a format string in a separate file, commonly because we would like to internationalize it and we rewrite it as:

<?php
$format = 'The %s contains %d monkeys';
echo sprintf($format, $num, $location);
?>

We now have a problem. The order of the placeholders in the format string does not match the order of the arguments in the code. We would like to leave the code as is and simply indicate in the format string which arguments the placeholders refer to. We would write the format string like this instead:

<?php
$format = 'The %2$s contains %1$d monkeys';
echo sprintf($format, $num, $location);
?>

An added benefit is that placeholders can be repeated without adding more arguments in the code.

<?php
$format = 'The %2$s contains %1$d monkeys.
That\'s a nice %2$s full of %1$d monkeys.';
echo sprintf($format, $num, $location);
?>

When using argument swapping, the n$ position specifier must come immediately after the percent sign (%), before any other specifiers, as shown below.

Exemplo #2 Specifying padding character

<?php
echo sprintf("%'.9d\n", 123);
echo sprintf("%'.09d\n", 123);
?>

O exemplo acima produzirá:

......123
000000123

Exemplo #3 Position specifier with other specifiers

<?php
$format = 'The %2$s contains %1$04d monkeys';
echo sprintf($format, $num, $location);
?>

O exemplo acima produzirá:

The tree contains 0005 monkeys

Exemplo #4 sprintf(): zero-padded integers

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Exemplo #5 sprintf(): formatting currency

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
echo $money;
echo "\n";
$formatted = sprintf("%01.2f", $money);
echo $formatted;
?>

O exemplo acima produzirá:

123.1
123.10

Exemplo #6 sprintf(): scientific notation

<?php
$number = 362525200;

echo sprintf("%.3e", $number);
?>

O exemplo acima produzirá:

3.625e+8

Veja Também

  • printf() - Output a formatted string
  • fprintf() - Escreve uma string formatada para um fluxo
  • vprintf() - Output a formatted string
  • vsprintf() - Return a formatted string
  • vfprintf() - Escreve uma string formatada para um fluxo
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato
  • fscanf() - Interpreta a leitura de um arquivo de acordo com um formato
  • number_format() - Format a number with grouped thousands
  • date() - Formatar um timestamp Unix


Interpreta a entrada de uma string de acordo com um formato

  • « sprintf
  • str_contains »
  • PHP Manual
  • Funções de String
  • Interpreta a entrada de uma string de acordo com um formato

sscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

sscanf — Interpreta a entrada de uma string de acordo com um formato

Descrição

sscanf(string $string, string $format, mixed &...$vars): array|int|null

A função sscanf() é a análoga de entrada a printf(). sscanf() lê da string string e interpreta-a de acordo com o especificado em format.

Qualquer espaço em branco na string de formato corresponde a qualquer espaço em branco na string de entrada. Isto significa que até mesmo uma tabulação (\t) na string de formato pode corresponder a um caractere de espaço simples na string de entrada.

Parâmetros

string

A string de entrada a ser analisada.

format

O formato interpretado para string, que é descrito na documentação para sprintf() com as seguintes diferenças:

  • A função não reconhece a localidade.
  • F, g, G e b não são suportados.
  • D significa número decimal.
  • i significa inteiro com detecção de base.
  • n representa o número de caracteres processados até o momento.
  • s pára de ler em qualquer caractere de espaço em branco.
  • * em vez de argnum$ suprime a atribuição desta especificação de conversão.

vars

Variáveis opcionais passadas por referência que conterão os valores analisados.

Valor Retornado

Se apenas dois parâmetros forem passados para esta função, os valores interpretados serão retornados como um array. Caso contrário, se parâmetros opcionais forem passados, a função retornará o número de valores atribuídos. Os parâmetros opcionais precisam ser passados por referência.

Se houver mais substrings esperadas em format do que estiverem disponíveis na string, null será retornado.

Exemplos

Exemplo #1 Exemplo de sscanf()

<?php
// Pegando o número serial
list($serial) = sscanf("SN/2350001", "SN/%d");
// e a data de produção
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "O item $serial foi produzido em: $year-" . substr($month, 0, 3) . "-$day\n";
?>

Se parâmetros opcionais forem passados, a função retornará o número de valores atribuídos.

Exemplo #2 sscanf() - usando parâmetros opcionais

<?php
// pega informação do autor e gera uma entrada de DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
<firstname>$first</firstname>
<surname>$last</surname>
</author>\n";
?>

Veja Também

  • printf() - Output a formatted string
  • sprintf() - Return a formatted string
  • fprintf() - Escreve uma string formatada para um fluxo
  • vprintf() - Output a formatted string
  • vsprintf() - Return a formatted string
  • vfprintf() - Escreve uma string formatada para um fluxo
  • fscanf() - Interpreta a leitura de um arquivo de acordo com um formato
  • number_format() - Format a number with grouped thousands
  • date() - Formatar um timestamp Unix


Determina se uma string contém uma substring fornecida

  • « sscanf
  • str_decrement »
  • PHP Manual
  • Funções de String
  • Determina se uma string contém uma substring fornecida

str_contains

(PHP 8)

str_contains — Determina se uma string contém uma substring fornecida

Descrição

str_contains(string $haystack, string $needle): bool

Realiza uma busca case-sensitive indicando se needle existe em haystack.

Parâmetros

haystack

A string onde será feita a busca.

needle

A substring para ser buscada em haystack.

Valor Retornado

Retorna true se needle está em haystack, false caso contrário.

Exemplos

Exemplo #1 Usando a string vazia ''

<?php
if (str_contains('abc', '')) {
echo "Verificando a existência de uma string vazia sempre retornará true";
}
?>

O exemplo acima produzirá:

Verificando a existência de uma string vazia sempre retornará true

Exemplo #2 Mostrando o case-sensitivity

<?php
$string = 'A raposa preguiçosa pulou a cerca';

if (str_contains($string, 'raposa')) {
echo "A string 'raposa' foi encontrada na string\n";
}

if (str_contains($string, 'Raposa')) {
echo 'A string "Raposa" foi encontrada na string';
} else {
echo '"Raposa" não foi encontrada porque o case não corresponde';
}

?>

O exemplo acima produzirá:

A string 'raposa' foi encontrada na string
"Raposa" não foi encontrada porque o case não corresponde

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • str_ends_with() - Verifica se uma string termina com uma substring fornecida
  • str_starts_with() - Verifica se uma string começa com uma substring fornecida
  • stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
  • strrpos() - Find the position of the last occurrence of a substring in a string
  • strripos() - Find the position of the last occurrence of a case-insensitive substring in a string
  • strstr() - Find the first occurrence of a string
  • strpbrk() - Procura na string por um dos caracteres de um conjunto
  • substr() - Retorna parte de uma string
  • preg_match() - Perform a regular expression match


Decrement an alphanumeric string

  • « str_contains
  • str_ends_with »
  • PHP Manual
  • Funções de String
  • Decrement an alphanumeric string

str_decrement

(PHP 8 >= 8.3.0)

str_decrement — Decrement an alphanumeric string

Descrição

str_decrement(string $string): string

Returns the decremented alphanumeric ASCII string.

Parâmetros

string

The input string.

Valor Retornado

Returns the decremented alphanumeric ASCII string.

Erros/Exceções

A ValueError is thrown if string is empty.

A ValueError is thrown if string is not an alphanumeric ASCII string.

A ValueError is thrown if string cannot be decremented. For example, "A" or "0".

Exemplos

Exemplo #1 Basic str_decrement() example

<?php
$str = 'ABC';
var_dump(str_decrement($str));
?>

O exemplo acima produzirá:

string(3) "ABB"

Exemplo #2 str_decrement() example with a carry

<?php
$str = 'ZA';
var_dump(str_decrement($str));

$str = 'AA';
var_dump(str_decrement($str));
?>

O exemplo acima produzirá:

string(2) "YZ"
string(1) "Z"

Veja Também

  • str_increment() - Increment an alphanumeric string


Verifica se uma string termina com uma substring fornecida

  • « str_decrement
  • str_getcsv »
  • PHP Manual
  • Funções de String
  • Verifica se uma string termina com uma substring fornecida

str_ends_with

(PHP 8)

str_ends_with — Verifica se uma string termina com uma substring fornecida

Descrição

str_ends_with(string $haystack, string $needle): bool

Realiza uma verificação case-sensitive indicando se haystack termina com needle.

Parâmetros

haystack

A string onde será feita a busca.

needle

A substring para procurar em haystack.

Valor Retornado

Retorna true se haystack terminar com needle, false caso contrário.

Exemplos

Exemplo #1 Usando a string vazia ''

<?php
if (str_ends_with('abc', '')) {
echo "Toda string termina com uma string vazia";
}
?>

O exemplo acima produzirá:

Toda string termina com uma string vazia

Exemplo #2 Mostrando o case-sensitivity

<?php
$string = 'A raposa preguiçosa pulou a cerca';

if (str_ends_with($string, 'cerca')) {
echo "A string termina com 'cerca'\n";
}

if (str_ends_with($string, 'Cerca')) {
echo 'A string termina com "Cerca"';
} else {
echo '"Cerca" não foi encontrado porque o case não corresponde';
}

?>

O exemplo acima produzirá:

A string termina com 'cerca'
"Cerca" não foi encontrada porque o case não corresponde

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • str_contains() - Determina se uma string contém uma substring fornecida
  • str_starts_with() - Verifica se uma string começa com uma substring fornecida
  • stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
  • strrpos() - Find the position of the last occurrence of a substring in a string
  • strripos() - Find the position of the last occurrence of a case-insensitive substring in a string
  • strstr() - Find the first occurrence of a string
  • strpbrk() - Procura na string por um dos caracteres de um conjunto
  • substr() - Retorna parte de uma string
  • preg_match() - Perform a regular expression match


Analisa uma string CSV e retorna os dados em um array

  • « str_ends_with
  • str_increment »
  • PHP Manual
  • Funções de String
  • Analisa uma string CSV e retorna os dados em um array

str_getcsv

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

str_getcsv — Analisa uma string CSV e retorna os dados em um array

Descrição

str_getcsv(
string $string,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\"
): array

Interpreta uma string de entrada procurando por campos no formato CSV e retorna um array contendo os campos encontrados.

Nota:

As configurações de localidade são levadas em consideração por esta função. Se LC_CTYPE for, por exemplo, en_US.UTF-8, strings com codificação de um byte podem ser lidas incorretamente por esta função.

Parâmetros

string

A string a ser analisada.

separator

Define o delimitador de campos (somente um caractere de um byte).

enclosure

Define o caractere que envolve os campos (somente um caractere de um byte).

escape

Define o caractere de escape (no máximo um caractere de um byte). O valor padrão é a barra invertida. (\) Uma string vazia ("") desabilita o mecanismo proprietário de escape.

Nota: Normalmente um caractere de enclosure é escapado dentro do campo por duplicação; entretanto, o caratere definido em escape pode ser utilizado como alternativa. Então, para os valores do parâmetro padrões "" e \" têm o mesmo significado. Além de permitir escapar o caractere de enclosure, o caractere de escape não possui significado especial; nem mesmo para escapar a si mesmo.

Valor Retornado

Retorna um array indexado contendo os campos lidos.

Registro de Alterações

Versão | Descrição
7.4.0 | O parâmetro escape agora interpreta uma string vazia como o sinal para desabilitar o mecanismo de escape. Antes, uma string vazia era tratada como valor padrão do parâmetro.

Exemplos

Exemplo #1 Exemplo de str_getcsv()

<?php

$string = 'PHP,Java,Python,Kotlin,Swift';
$data = str_getcsv($string);

var_dump($data);
?>

O exemplo acima produzirá:

array(5) {
  [0]=>
  string(3) "PHP"
  [1]=>
  string(4) "Java"
  [2]=>
  string(6) "Python"
  [3]=>
  string(6) "Kotlin"
  [4]=>
  string(5) "Swift"
}

Exemplo #2 Exemplo de str_getcsv()com uma string vazia

Cuidado

Com uma string vazia esta função retorna o valor [null] em vez de um array vazio.

<?php

$string = '';
$data = str_getcsv($string);

var_dump($data);
?>

O exemplo acima produzirá:

array(1) {
  [0]=>
  NULL
}

Veja Também

  • fgetcsv() - Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV


Increment an alphanumeric string

  • « str_getcsv
  • str_ireplace »
  • PHP Manual
  • Funções de String
  • Increment an alphanumeric string

str_increment

(PHP 8 >= 8.3.0)

str_increment — Increment an alphanumeric string

Descrição

str_increment(string $string): string

Returns the incremented alphanumeric ASCII string.

Parâmetros

string

The input string.

Valor Retornado

Returns the incremented alphanumeric ASCII string.

Erros/Exceções

A ValueError is thrown if string is empty.

A ValueError is thrown if string is not an alphanumeric ASCII string.

Exemplos

Exemplo #1 Basic str_increment() example

<?php
$str = 'ABC';
var_dump(str_increment($str));
?>

O exemplo acima produzirá:

string(3) "ABD"

Exemplo #2 str_increment() example with a carry

<?php
$str = 'DZ';
var_dump(str_increment($str));

$str = 'ZZ';
var_dump(str_increment($str));
?>

O exemplo acima produzirá:

string(2) "EA"
string(3) "AAA"

Veja Também

  • str_decrement() - Decrement an alphanumeric string


Case-insensitive version of str_replace

  • « str_increment
  • str_pad »
  • PHP Manual
  • Funções de String
  • Case-insensitive version of str_replace

str_ireplace

(PHP 5, PHP 7, PHP 8)

str_ireplace — Case-insensitive version of str_replace()

Descrição

str_ireplace(
array|string $search,
array|string $replace,
string|array $subject,
int &$count = null
): string|array

This function returns a string or an array with all occurrences of search in subject (ignoring case) replaced with the given replace value.

To replace text based on a pattern rather than a fixed string, use preg_replace() with the i pattern modifier.

Parâmetros

If search and replace are arrays, then str_ireplace() takes a value from each array and uses them to search and replace on subject. If replace has fewer values than search, then an empty string is used for the rest of replacement values. If search is an array and replace is a string, then this replacement string is used for every value of search. The converse would not make sense, though.

If search or replace are arrays, their elements are processed first to last.

search

The value being searched for, otherwise known as the needle. An array may be used to designate multiple needles.

replace

The replacement value that replaces found search values. An array may be used to designate multiple replacements.

subject

The string or array being searched and replaced on, otherwise known as the haystack.

If subject is an array, then the search and replace is performed with every entry of subject, and the return value is an array as well.

count

If passed, this will be set to the number of replacements performed.

Valor Retornado

Returns a string or an array of replacements.

Registro de Alterações

Versão | Descrição
8.2.0 | A redução de todas as letras a maiúsculas ou minúsculas não depende mais da localidade definida com setlocale(). Somente a redução de todas as letras ASCII a maiúsculas ou minúsculas será feita. Os bytes não ASCII serão comparados por seu valor de byte.

Exemplos

Exemplo #1 str_ireplace() example

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
echo $bodytag; // <body text=black>
?>

Notas

Nota: Esta função é compatível com dados binários.

Cuidado

Replacement order gotcha

Because str_ireplace() replaces left to right, it might replace a previously inserted value when doing multiple replacements. Example #2 in the str_replace() documentation demonstrates how this may affect you in practice.

Veja Também

  • str_replace() - Substitui todas as ocorrências da string de pesquisa com a string de substituição
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
  • strtr() - Translate characters or replace substrings


Pad a string to a certain length with another string

  • « str_ireplace
  • str_repeat »
  • PHP Manual
  • Funções de String
  • Pad a string to a certain length with another string

str_pad

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

str_pad — Pad a string to a certain length with another string

Descrição

str_pad(
string $string,
int $length,
string $pad_string = " ",
int $pad_type = STR_PAD_RIGHT
): string

This function returns the string string padded on the left, the right, or both sides to the specified padding length. If the optional argument pad_string is not supplied, the string is padded with spaces, otherwise it is padded with characters from pad_string up to the limit.

Parâmetros

string

The input string.

length

The desired length of the final padded string. If the value of length is negative, less than, or equal to the length of the input string, no padding takes place, and string will be returned.

pad_string

Nota:

The pad_string may be truncated if the required number of padding characters can't be evenly divided by the pad_string's length.

pad_type

Optional argument pad_type can be STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH. If pad_type is not specified it is assumed to be STR_PAD_RIGHT.

Valor Retornado

Returns the padded string.

Exemplos

Exemplo #1 str_pad() example

<?php
$input = "Alien";
echo str_pad($input, 10); // produces "Alien "
echo str_pad($input, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH); // produces "__Alien___"
echo str_pad($input, 6, "___"); // produces "Alien_"
echo str_pad($input, 3, "*"); // produces "Alien"
?>

Veja Também

  • mb_str_pad() - Preenche uma string multibyte para um comprimento específico com outra string multibyte


Repete uma string

  • « str_pad
  • str_replace »
  • PHP Manual
  • Funções de String
  • Repete uma string

str_repeat

(PHP 4, PHP 5, PHP 7, PHP 8)

str_repeat — Repete uma string

Descrição

str_repeat(string $string, int $times): string

Retorna a string repetida pelo número de vezes definido em times.

Parâmetros

string

A string a ser repetida.

times

Número de vezes que a string será repetida.

times deve ser maior ou igual a 0. Se o parâmetro times for 0, a função irá retornar uma string vazia.

Valor Retornado

Retorna a string repetida.

Exemplos

Exemplo #1 Exemplo de str_repeat()

<?php
echo str_repeat("-=", 10);
?>

O exemplo acima produzirá:

-=-=-=-=-=-=-=-=-=-=

Veja Também

  • for
  • str_pad() - Pad a string to a certain length with another string
  • substr_count() - Conta o número de ocorrências de uma substring


Substitui todas as ocorrências da string de pesquisa com a string de substituição

  • « str_repeat
  • str_rot13 »
  • PHP Manual
  • Funções de String
  • Substitui todas as ocorrências da string de pesquisa com a string de substituição

str_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

str_replace — Substitui todas as ocorrências da string de pesquisa com a string de substituição

Descrição

str_replace(
array|string $search,
array|string $replace,
string|array $subject,
int &$count = null
): string|array

Esta função retorna uma string ou um array com todas as ocorrências de search em subject substituídas com o valor informado em replace.

Para substituir texto baseado em um padrão que não seja uma string fixa, use preg_replace().

Parâmetros

Se search e replace forem arrays, então str_replace() pega um valor de cada array e os usa para pesquisar e substituir em subject. Se replace tiver menos valores do que search, então uma string vazia é usada para o restante dos valores de substituição. Se search for um array e replace for uma string, então esta string de substituição é usada para cada valor de search. O contrário não faria sentido, contudo.

Se search ou replace forem arrays, seus elementos são processados do primeiro ao último.

search

O valor sendo pesquisado, também conhecido como agulha. Um array pode ser usado para designar múltiplas agulhas.

replace

O valor de substituição que será usado no lugar dos valores de search encontrados. Um array pode ser usado para deignar múltiplas substituições.

subject

A string ou array sendo pesquisado ou substituído, também conhecido como o palheiro.

Se subject for um array, então a pesquisa e a substituição são executadas com cada entrada de subject, e o valor de retorno é um array também.

count

Se passado, será definido para o número de substituições realizadas.

Valor Retornado

Esta função retorna uma string ou um array com os valores substituídos.

Exemplos

Exemplo #1 Exemplos básicos de str_replace()

<?php
// Produz: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Produz: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// Produz: Você deveria comer pizza, cerveja e sorvete todos os dias.
$frase = "Você deveria comer frutas, vegetais, e fibra todos os dias.";
$saudavel = array("frutas", "vegetais", "fibra");
$saboroso = array("pizza", "cerveja", "sorvete");

$novafrase = str_replace($saudavel, $saboroso, $frase);

// Produz: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>

Exemplo #2 Exemplos de armadilhas potenciais de str_replace()

<?php
// Ordem da substituição
$str = "Linha 1\nLinha 2\rLinha 3\r\nLinha 4\n";
$order = array("\r\n", "\n", "\r");
$replace = '<br />';

// Processa \r\n primeiro para que não sejam substituídos duas vezes.
$newstr = str_replace($order, $replace, $str);

// Mostra F porque A é substituído por B, depois B é substituído por C, e assim por diante...
// Finalmente E é substituído por F, porque a substituição é feita da esquerda para a direita.
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

// Mostra: apearpearle pear
// Pelo memos motivo mencionado acima
$letters = array('a', 'p');
$fruit = array('apple', 'pear');
$text = 'a p';
$output = str_replace($letters, $fruit, $text);
echo $output;
?>

Notas

Nota: Esta função é compatível com dados binários.

Cuidado

Armadilha da ordem de substituição

Como str_replace() substitui da esquerda para a direita, ela pode substituir um valor previamente inserido quando estiver fazendo múltiplas substituições. Veja também os exemplos neste documento.

Nota:

Esta função é sensível a maiúsculas/minúsculas. Use str_ireplace() para substituição insensível a maiúsculas/minúsculas.

Veja Também

  • str_ireplace() - Case-insensitive version of str_replace
  • substr_replace() - Substitui o texto dentro de uma parte de uma string
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui
  • strtr() - Translate characters or replace substrings


Executa a transformação rot13 em uma string

  • « str_replace
  • str_shuffle »
  • PHP Manual
  • Funções de String
  • Executa a transformação rot13 em uma string

str_rot13

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

str_rot13 — Executa a transformação rot13 em uma string

Descrição

str_rot13(string $string): string

Executa a codificação ROT13 no argumento string e retorna a string resultante.

A codificação ROT13 simplesmente troca cada letra por 13 lugares no alfabeto, enquanto não muda os caracteres não alfabéticos. Codificação e decodificação são feitos pela mesma função, passando uma string codificada como argumento retornará a string com a versão original.

Parâmetros

string

A string de entrada.

Valor Retornado

Retorna a versão ROT13 de uma dada string.

Exemplos

Exemplo #1 Exemplo de str_rot13()

<?php

echo str_rot13('PHP 8.3.0'); // CUC 8.3.0

?>


Embaralha uma string aleatoriamente

  • « str_rot13
  • str_split »
  • PHP Manual
  • Funções de String
  • Embaralha uma string aleatoriamente

str_shuffle

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

str_shuffle — Embaralha uma string aleatoriamente

Descrição

str_shuffle(string $string): string

str_shuffle() embaralha uma string. Uma permutação de todas as possíveis é criada.

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Parâmetros

string

A string de entrada.

Valor Retornado

Retorna a string embaralhada.

Registro de Alterações

Versão | Descrição
7.1.0 | O algoritmo interno de randomização mudou e agora usa o Gerador de Números Aleatórios » Mersenne Twister em vez da função rand da biblioteca libc.

Exemplos

Exemplo #1 Exemplo de str_shuffle()

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// Isto exibirá algo como: bfdaec
echo $shuffled;
?>

Veja Também

  • Random\Randomizer::shuffleBytes() - Get a byte-wise permutation of a string
  • Random\Randomizer::shuffleArray() - Get a permutation of an array


Convert a string to an array

  • « str_shuffle
  • str_starts_with »
  • PHP Manual
  • Funções de String
  • Convert a string to an array

str_split

(PHP 5, PHP 7, PHP 8)

str_split — Convert a string to an array

Descrição

str_split(string $string, int $length = 1): array

Converts a string to an array.

Parâmetros

string

The input string.

length

Maximum length of the chunk.

Valor Retornado

If the optional length parameter is specified, the returned array will be broken down into chunks with each being length in length, except the final chunk which may be shorter if the string does not divide evenly. The default length is 1, meaning every chunk will be one byte in size.

Erros/Exceções

If length is less than 1, a ValueError will be thrown.

Registro de Alterações

Versão | Descrição
8.2.0 | If string is empty an empty array is now returned. Previously an array containing a single empty string was returned.
8.0.0 | If length is less than 1, a ValueError will be thrown now; previously, an error of level E_WARNING has been raised instead, and the function returned false.

Exemplos

Exemplo #1 Example uses of str_split()

<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

O exemplo acima produzirá:

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
)

Notas

Nota:

str_split() will split into bytes, rather than characters when dealing with a multi-byte encoded string. Use mb_str_split() to split the string into code points.

Veja Também

  • mb_str_split() - Dada uma string multibyte, retorna um array de seus caracteres
  • chunk_split() - Divide uma string em pedaços menores
  • preg_split() - Split string by a regular expression
  • explode() - Split a string by a string
  • count_chars() - Return information about characters used in a string
  • str_word_count() - Retorna informação sobre palavras usadas em uma string
  • for


Verifica se uma string começa com uma substring fornecida

  • « str_split
  • str_word_count »
  • PHP Manual
  • Funções de String
  • Verifica se uma string começa com uma substring fornecida

str_starts_with

(PHP 8)

str_starts_with — Verifica se uma string começa com uma substring fornecida

Descrição

str_starts_with(string $haystack, string $needle): bool

Realiza uma verificação case-sensitive indicando se haystack começa com needle.

Parâmetros

haystack

A string onde será feita a busca.

needle

A substring para procurar em haystack.

Valor Retornado

Retorna true se haystack começa com needle, false caso contrário.

Exemplos

Exemplo #1 Usando uma string vazia ''

<?php
if (str_starts_with('abc', '')) {
echo "Toda string começa com uma string vazia";
}
?>

O exemplo acima produzirá:

Toda string começa com uma string vazia

Exemplo #2 Mostrando o case-sensitivity

<?php
$string = 'Uma raposa preguiçosa pulou a cerca';

if (str_starts_with($string, 'Uma')) {
echo "A string começa com 'Uma'\n";
}

if (str_starts_with($string, 'uma')) {
echo 'A string começa com "uma"';
} else {
echo '"uma" não foi encontrado porque o case não corresponde';
}

?>

O exemplo acima produzirá:

A string começa com 'A'
"a" não foi encontrado porque o case não corresponde

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • str_contains() - Determina se uma string contém uma substring fornecida
  • str_ends_with() - Verifica se uma string termina com uma substring fornecida
  • stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
  • strrpos() - Find the position of the last occurrence of a substring in a string
  • strripos() - Find the position of the last occurrence of a case-insensitive substring in a string
  • strstr() - Find the first occurrence of a string
  • strpbrk() - Procura na string por um dos caracteres de um conjunto
  • substr() - Retorna parte de uma string
  • preg_match() - Perform a regular expression match


Retorna informação sobre palavras usadas em uma string

  • « str_starts_with
  • strcasecmp »
  • PHP Manual
  • Funções de String
  • Retorna informação sobre palavras usadas em uma string

str_word_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

str_word_count — Retorna informação sobre palavras usadas em uma string

Descrição

str_word_count(string $string, int $format = 0, ?string $characters = null): array|int

Conta o número de palavras dentro de string. Se o parâmetro opcional format não for especificado, então o valor de retorno será um inteiro representando o número de palavras encontradas. Caso format seja especificado, o valor de retorno será um array, cujo conteúdo é dependente de format. Os valores possíveis para format e as saídas resultantes estão listadas abaixo.

Para o propósito desta função, 'palavra' é definida como uma string dependente da localidade contendo caracteres alfabéticos, que também podem conter, mas não iniciar com os caracteres "'" and "-". Note que localidades que utilizam caracteres multibyte não são suportadas.

Parâmetros

string

A string

format

Especifica o valor de retorno desta função. Os valores atualmente suportados são:

  • 0 - retorna o número de palavras encontradas
  • 1 - retorna um array contendo todas as palavras encontradas dentro da string
  • 2 - retorna um array associativo, onde a chave é a posição numérica da palavra dentro da string e o valor é a própria palavra

characters

Uma lista de caracteres adicionais que serão considerados como 'palavra'.

Valor Retornado

Retorna um array ou um inteiro, dependendo do parâmetro format.

Registro de Alterações

Versão | Descrição
8.0.0 | characters agora pode ser nulo.

Exemplos

Exemplo #1 Um exemplo de str_word_count()

<?php

$str = "Hello fri3nd, you're
looking good today!";

print_r(str_word_count($str, 1));
print_r(str_word_count($str, 2));
print_r(str_word_count($str, 1, 'àáãç3'));

echo str_word_count($str);

?>

O exemplo acima produzirá:

Array
(
    [0] => Hello
    [1] => fri
    [2] => nd
    [3] => you're
    [4] => looking
    [5] => good
    [6] => today
)

Array
(
    [0] => Hello
    [6] => fri
    [10] => nd
    [14] => you're
    [29] => looking
    [46] => good
    [51] => today
)

Array
(
    [0] => Hello
    [1] => fri3nd
    [2] => you're
    [3] => looking
    [4] => good
    [5] => today
)

7

Veja Também

  • explode() - Split a string by a string
  • preg_split() - Split string by a regular expression
  • count_chars() - Return information about characters used in a string
  • substr_count() - Conta o número de ocorrências de uma substring


Binary safe case-insensitive string comparison

  • « str_word_count
  • strchr »
  • PHP Manual
  • Funções de String
  • Binary safe case-insensitive string comparison

strcasecmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strcasecmp — Binary safe case-insensitive string comparison

Descrição

strcasecmp(string $string1, string $string2): int

Binary safe case-insensitive string comparison. The comparison is not locale aware; only ASCII letters are compared in a case-insensitive way.

Parâmetros

string1

The first string

string2

The second string

Valor Retornado

Returns -1 if string1 is less than string2; 1 if string1 is greater than string2, and 0 if they are equal.

Registro de Alterações

Versão | Descrição
8.2.0 | Esta função agora retorna -1 ou 1, onde anteriormente retornava um número negativo ou positivo.

Exemplos

Exemplo #1 strcasecmp() example

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcasecmp($var1, $var2) == 0) {
echo '$var1 is equal to $var2 in a case-insensitive string comparison';
}
?>

Veja Também

  • strcmp() - Binary safe string comparison
  • preg_match() - Perform a regular expression match
  • substr_compare() - Comparação binária de duas strings a partir de uma posição até n caracteres
  • strncasecmp() - Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres
  • stristr() - Case-insensitive strstr
  • substr() - Retorna parte de uma string


Sinônimo de strstr

  • « strcasecmp
  • strcmp »
  • PHP Manual
  • Funções de String
  • Sinônimo de strstr

strchr

(PHP 4, PHP 5, PHP 7, PHP 8)

strchr — Sinônimo de strstr()

Descrição

Esta função é um apelido para: strstr().


Binary safe string comparison

  • « strchr
  • strcoll »
  • PHP Manual
  • Funções de String
  • Binary safe string comparison

strcmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strcmp — Binary safe string comparison

Descrição

strcmp(string $string1, string $string2): int

Note that this comparison is case sensitive.

Parâmetros

string1

The first string.

string2

The second string.

Valor Retornado

Returns -1 if string1 is less than string2; 1 if string1 is greater than string2, and 0 if they are equal.

Registro de Alterações

Versão | Descrição
8.2.0 | Esta função agora retorna -1 ou 1, onde anteriormente retornava um número negativo ou positivo.

Exemplos

Exemplo #1 strcmp() example

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcmp($var1, $var2) !== 0) {
echo '$var1 is not equal to $var2 in a case sensitive string comparison';
}
?>

Veja Também

  • strcasecmp() - Binary safe case-insensitive string comparison
  • preg_match() - Perform a regular expression match
  • substr_compare() - Comparação binária de duas strings a partir de uma posição até n caracteres
  • strncmp() - Binary safe string comparison of the first n characters
  • strstr() - Find the first occurrence of a string
  • substr() - Retorna parte de uma string


Locale based string comparison

  • « strcmp
  • strcspn »
  • PHP Manual
  • Funções de String
  • Locale based string comparison

strcoll

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

strcoll — Locale based string comparison

Descrição

strcoll(string $string1, string $string2): int

Note that this comparison is case sensitive, and unlike strcmp() this function is not binary safe.

strcoll() uses the current locale for doing the comparisons. If the current locale is C or POSIX, this function is equivalent to strcmp().

Parâmetros

string1

The first string.

string2

The second string.

Valor Retornado

Returns < 0 if string1 is less than string2; > 0 if string1 is greater than string2, and 0 if they are equal.

Veja Também

  • preg_match() - Perform a regular expression match
  • strcmp() - Binary safe string comparison
  • strcasecmp() - Binary safe case-insensitive string comparison
  • substr() - Retorna parte de uma string
  • stristr() - Case-insensitive strstr
  • strncasecmp() - Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres
  • strncmp() - Binary safe string comparison of the first n characters
  • strstr() - Find the first occurrence of a string
  • setlocale() - Set locale information


Encontra o tamanho do segmento inicial que não corresponde à máscara

  • « strcoll
  • strip_tags »
  • PHP Manual
  • Funções de String
  • Encontra o tamanho do segmento inicial que não corresponde à máscara

strcspn

(PHP 4, PHP 5, PHP 7, PHP 8)

strcspn — Encontra o tamanho do segmento inicial que não corresponde à máscara

Descrição

strcspn(
string $string,
string $characters,
int $offset = 0,
?int $length = null
): int

Retorna o tamanho do segmento inicial de string que não contiver nenhum dos caracteres definidos no parâmetro characters.

Se offset e length forem omitidos, então tudo da string será examinado. Se forem incluídos, então o efeito será o mesmo que chamar strcspn(substr($string, $offset, $length), $characters) (consulte substr para mais informações).

Parâmetros

string

O string a ser examinado.

characters

A string contendo os caracteres não permitidos.

offset

A posição na string para iniciar a pesquisa.

Se offset for informado e não negativo, a função strcspn() começará a examinar a string na posição offset. Por exemplo, na string 'abcdef', o caractere na posição 0 é 'a', na posição 2 é 'c', e assim por diante.

Se offset for informado e negativo, a função strcspn() começará a examinar a string na posição offset a partir do final da string.

length

O tamanho do segmento da string a ser examinado.

Se length for informado e não negativo, a string será examinada pelo número de caracteres em length a partir da posição inicial.

Se length for informado e negativo, a string será examinada a partir da posição inicial até o número de caracteres informado em length contados a partir do final da string.

Valor Retornado

Retorna o tamanho do segmento inicial da string que consiste inteiramente de caracteres que não estejam em characters.

Nota:

Quando offset estiver definido, o tamanho retornado é contado a partir deste posição, e não a partir do início da string.

Registro de Alterações

Versão | Descrição
8.0.0 | length agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de strcspn()

<?php
$a = strcspn('abcd', 'apple');
$b = strcspn('abcd', 'banana');
$c = strcspn('hello', 'l');
$d = strcspn('hello', 'world');
$e = strcspn('abcdhelloabcd', 'abcd', -9);
$f = strcspn('abcdhelloabcd', 'abcd', -9, -5);

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);
var_dump($f);
?>

O exemplo acima produzirá:

int(0)
int(0)
int(2)
int(2)
int(5)
int(4)

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • strspn() - Encontra o comprimento do segmento inicial de uma string composta totalmente de caracteres contidos em uma máscara informada


Retira as tags HTML e PHP de uma string

  • « strcspn
  • stripcslashes »
  • PHP Manual
  • Funções de String
  • Retira as tags HTML e PHP de uma string

strip_tags

(PHP 4, PHP 5, PHP 7, PHP 8)

strip_tags — Retira as tags HTML e PHP de uma string

Descrição

strip_tags(string $string, array|string|null $allowed_tags = null): string

Esta função tenta retornar uma string com todos os bytes nulos e tags HTML e PHP removidas da string informada. Usa a mesma máquina de estados de remoção de tags que a função fgetss().

Parâmetros

string

A string de entrada.

allowed_tags

Pode-se utilizar o segundo parâmetro, que é opcional, para indicar tags que não devam ser retiradas. Podem ser informadas como string, ou a partir do PHP 7.4.0, como array. Refira-se ao exemplo abaixo sobre o formato deste parâmetro.

Nota:

Comentários HTML e tags PHP também são retirados. Isto não pode ser modificado com allowed_tags.

Nota:

Tags XHTML com auto-fechamento são ignoradas e apenas tags sem auto-fechamento devem ser usadas em allowed_tags. Por examplo, para permitir tanto <br> quanto <br/>, deve-se usar:

<?php
strip_tags($input, '<br>');
?>

Valor Retornado

Retorna a string modificada.

Registro de Alterações

Versão | Descrição
8.0.0 | allowed_tags agora pode ser nulo.
7.4.0 | O parâmetro allowed_tags agora alternativamente aceita um array.

Exemplos

Exemplo #1 Exemplo de strip_tags()

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');

// A partir do PHP 7.4.0 a linha acima pode ser escrita como:
// echo strip_tags($text, ['p', 'a']);
?>

O exemplo acima produzirá:

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>

Notas

Aviso

Esta função não deve ser usada para evitar ataques XSS. Use funções mais apropriadas como htmlspecialchars() ou outros meios dependendo do contexto da saída.

Aviso

Como strip_tags() não valida realmente o HTML, tags parciais ou quebradas podem resultar na remoção de mais texto e dados que o esperado.

Aviso

Esta função não modifica nenhum dos atributos das tags que forem permitidas usando allowed_tags, incluindo os atributos style e onmouseover que um usuário malicioso pode abusar ao enviar texto que será mostrado a outros usuários.

Nota:

Nomes de tags no HTML de entrada que forem maiores que 1023 bytes em comprimento serão tratados como se fossem inválidos, independente, do parâmetro allowed_tags.

Veja Também

  • htmlspecialchars() - Convert special characters to HTML entities


Remove o escape de strings escapadas com addcslashes

  • « strip_tags
  • stripos »
  • PHP Manual
  • Funções de String
  • Remove o escape de strings escapadas com addcslashes

stripcslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

stripcslashes — Remove o escape de strings escapadas com addcslashes()

Descrição

stripcslashes(string $string): string

Retorna uma string com as barras invertidas retiradas. Reconhece represenações no estilo C \n, \r ..., octais e hexadecimais.

Parâmetros

string

A string para remover os escapes.

Valor Retornado

Retorna a string com escapes retirados.

Exemplos

Exemplo #1 Exemplo de stripcslashes()

<?php

var_dump(stripcslashes('I\'d have a coffee.\nNot a problem.') === "I'd have a coffee.
Not a problem."); // verdadeiro
?>

Veja Também

  • addcslashes() - Quote string with slashes in a C style


Find the position of the first occurrence of a case-insensitive substring in a string

  • « stripcslashes
  • stripslashes »
  • PHP Manual
  • Funções de String
  • Find the position of the first occurrence of a case-insensitive substring in a string

stripos

(PHP 5, PHP 7, PHP 8)

stripos — Find the position of the first occurrence of a case-insensitive substring in a string

Descrição

stripos(string $haystack, string $needle, int $offset = 0): int|false

Find the numeric position of the first occurrence of needle in the haystack string.

Unlike the strpos(), stripos() is case-insensitive.

Parâmetros

haystack

The string to search in.

needle

The string to search for.

Antes do PHP 8.0.0, se needle não for uma string, ela será convertida para um número inteiro e aplicada como o valor ordinal de um caractere. Este comportamento tornou-se defasado a partir do PHP 7.3.0 e depender dele é altamente desaconselhado. Dependendo do comportamento pretendido, o parâmetro needle deve ser explicitamente convertido em string ou uma chamada explícita para chr() deve ser realizada.

offset

If specified, search will start this number of characters counted from the beginning of the string. If the offset is negative, the search will start this number of characters counted from the end of the string.

Valor Retornado

Returns the position of where the needle exists relative to the beginning of the haystack string (independent of offset). Also note that string positions start at 0, and not 1.

Returns false if the needle was not found.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.2.0 | A redução de todas as letras a maiúsculas ou minúsculas não depende mais da localidade definida com setlocale(). Somente a redução de todas as letras ASCII a maiúsculas ou minúsculas será feita. Os bytes não ASCII serão comparados por seu valor de byte.
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | Passing an int as needle is no longer supported.
7.3.0 | Passing an int as needle has been deprecated.
7.1.0 | Support for negative offsets has been added.

Exemplos

Exemplo #1 stripos() examples

<?php
$findme = 'a';
$mystring1 = 'xyz';
$mystring2 = 'ABC';

$pos1 = stripos($mystring1, $findme);
$pos2 = stripos($mystring2, $findme);

// Nope, 'a' is certainly not in 'xyz'
if ($pos1 === false) {
echo "The string '$findme' was not found in the string '$mystring1'";
}

// Note our use of ===. Simply == would not work as expected
// because the position of 'a' is the 0th (first) character.
if ($pos2 !== false) {
echo "We found '$findme' in '$mystring2' at position $pos2";
}
?>

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • mb_stripos() - Encontra a posição da primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
  • str_contains() - Determina se uma string contém uma substring fornecida
  • str_ends_with() - Verifica se uma string termina com uma substring fornecida
  • str_starts_with() - Verifica se uma string começa com uma substring fornecida
  • strpos() - Find the position of the first occurrence of a substring in a string
  • strrpos() - Find the position of the last occurrence of a substring in a string
  • strripos() - Find the position of the last occurrence of a case-insensitive substring in a string
  • stristr() - Case-insensitive strstr
  • substr() - Retorna parte de uma string
  • str_ireplace() - Case-insensitive version of str_replace


Desfaz os escapes de uma string escapada

  • « stripos
  • stristr »
  • PHP Manual
  • Funções de String
  • Desfaz os escapes de uma string escapada

stripslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

stripslashes — Desfaz os escapes de uma string escapada

Descrição

stripslashes(string $string): string

Remove barras invertidas de uma string.

stripslashes() pode ser utilizada quando você não esta inserindo estes dados em um lugar (como um banco de dados) que precise de escapar. Por exemplo, se você esta usando estes dados para gerar um formulário HTML.

Parâmetros

string

A string de entrada.

Valor Retornado

Retorna uma string com as barras invertidas retiradas. (\' se torna ' e assim por diante.) Duas barras invertidas (\\) se tornam uma (\).

Exemplos

Exemplo #1 Exemplo stripslashes()

<?php
$str = "Seu nome é O\'reilly?";

// Mostra: Seu nome é O'reilly?
echo stripslashes($str);
?>

Nota:

stripslashes() não é recursiva. Se você quer aplicar esta função a um array multi-dimensional, você precisa usar uma função recursiva.

Exemplo #2 Usando stripslashes() em um array

<?php
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);

return $value;
}

// Example
$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);

// Output
print_r($array);
?>

O exemplo acima produzirá:

Array
(
    [0] => f'oo
    [1] => b'ar
    [2] => Array
        (
            [0] => fo'o
            [1] => b'ar
        )

)

Veja Também

  • addslashes() - Adiciona barras a uma string
  • get_magic_quotes_gpc() - Obtém a configuração atual de magic_quotes_gpc


Case-insensitive strstr

  • « stripslashes
  • strlen »
  • PHP Manual
  • Funções de String
  • Case-insensitive strstr

stristr

(PHP 4, PHP 5, PHP 7, PHP 8)

stristr — Case-insensitive strstr()

Descrição

stristr(string $haystack, string $needle, bool $before_needle = false): string|false

Returns all of haystack starting from and including the first occurrence of needle to the end.

Parâmetros

haystack

The string to search in

needle

The string to search for.

Antes do PHP 8.0.0, se needle não for uma string, ela será convertida para um número inteiro e aplicada como o valor ordinal de um caractere. Este comportamento tornou-se defasado a partir do PHP 7.3.0 e depender dele é altamente desaconselhado. Dependendo do comportamento pretendido, o parâmetro needle deve ser explicitamente convertido em string ou uma chamada explícita para chr() deve ser realizada.

before_needle

If true, stristr() returns the part of the haystack before the first occurrence of the needle (excluding needle).

needle and haystack are examined in a case-insensitive manner.

Valor Retornado

Returns the matched substring. If needle is not found, returns false.

Registro de Alterações

Versão | Descrição
8.2.0 | A redução de todas as letras a maiúsculas ou minúsculas não depende mais da localidade definida com setlocale(). Somente a redução de todas as letras ASCII a maiúsculas ou minúsculas será feita. Os bytes não ASCII serão comparados por seu valor de byte.
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | Passing an int as needle is no longer supported.
7.3.0 | Passing an int as needle has been deprecated.

Exemplos

Exemplo #1 stristr() example

<?php
$email = 'USER@EXAMPLE.com';
echo stristr($email, 'e'); // outputs ER@EXAMPLE.com
echo stristr($email, 'e', true); // outputs US
?>

Exemplo #2 Testing if a string is found or not

<?php
$string = 'Hello World!';
if(stristr($string, 'earth') === FALSE) {
echo '"earth" not found in string';
}
// outputs: "earth" not found in string
?>

Exemplo #3 Using a non "string" needle

<?php
$string = 'APPLE';
echo stristr($string, 97); // 97 = lowercase a
// outputs: APPLE
?>

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • strstr() - Find the first occurrence of a string
  • strrchr() - Find the last occurrence of a character in a string
  • stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
  • strpbrk() - Procura na string por um dos caracteres de um conjunto
  • preg_match() - Perform a regular expression match


Retorna o tamanho de uma string

  • « stristr
  • strnatcasecmp »
  • PHP Manual
  • Funções de String
  • Retorna o tamanho de uma string

strlen

(PHP 4, PHP 5, PHP 7, PHP 8)

strlen — Retorna o tamanho de uma string

Descrição

strlen(string $string): int

Retorna o tamanho da string informada.

Parâmetros

string

A string a ter seu tamanho medido.

Valor Retornado

O tamanho da string em bytes.

Exemplos

Exemplo #1 Exemplo de strlen()

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

Notas

Nota:

strlen() retorna o número de bytes em vez do número de caracteres de uma string.

Veja Também

  • count() - Conta todos os elementos de um array ou de um objeto Countable
  • grapheme_strlen() - Obtém o comprimento de uma string em unidade de grafema
  • iconv_strlen() - Retorna a contagem de caracteres da string
  • mb_strlen() - Obtém o comprimento da string


Comparação de strings insensível a maiúsculas/minúsculas usando o algoritmo de "ordem natural"

  • « strlen
  • strnatcmp »
  • PHP Manual
  • Funções de String
  • Comparação de strings insensível a maiúsculas/minúsculas usando o algoritmo de "ordem natural"

strnatcasecmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strnatcasecmp — Comparação de strings insensível a maiúsculas/minúsculas usando o algoritmo de "ordem natural"

Descrição

strnatcasecmp(string $string1, string $string2): int

Esta função implementa um algoritmo de comparação que ordena strings alfanuméricos da maneira que um ser humano faria. O comportamento desta função é similar a strnatcmp(), exceto que a comparação não é sensível a maiúsculas/minúsculas. Para maiores informações consulte: » Comparação de Strings em Ordem Natural, de Martin Pool.

Parâmetros

string1

A primeira string.

string2

A segunda string.

Valor Retornado

Similar a outras funções de comparação de strings, esta retorna -1 se string1 representar menos que string2 1 se string1 representar mais que string2, e 0 se forem iguais.

Registro de Alterações

Versão | Descrição
8.2.0 | Esta função agora retorna -1 ou 1, onde anteriormente retornava um número negativo ou positivo.

Exemplos

Exemplo #1 Exemplo de strnatcasecmp()

<?php

var_dump(strnatcasecmp('Apple', 'Banana'));
var_dump(strnatcasecmp('Banana', 'Apple'));
var_dump(strnatcasecmp('apple', 'Apple'));
?>

O exemplo acima produzirá:

int(-1)
int(1)
int(0)

Veja Também

  • preg_match() - Perform a regular expression match
  • strcmp() - Binary safe string comparison
  • strcasecmp() - Binary safe case-insensitive string comparison
  • substr() - Retorna parte de uma string
  • stristr() - Case-insensitive strstr
  • strncasecmp() - Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres
  • strncmp() - Binary safe string comparison of the first n characters
  • strstr() - Find the first occurrence of a string
  • setlocale() - Set locale information


String comparisons using a "natural order" algorithm

  • « strnatcasecmp
  • strncasecmp »
  • PHP Manual
  • Funções de String
  • String comparisons using a "natural order" algorithm

strnatcmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strnatcmp — String comparisons using a "natural order" algorithm

Descrição

strnatcmp(string $string1, string $string2): int

This function implements a comparison algorithm that orders alphanumeric strings in the way a human being would, this is described as a "natural ordering". Note that this comparison is case sensitive.

Parâmetros

string1

The first string.

string2

The second string.

Valor Retornado

Similar to other string comparison functions, this one returns -1 if string1 is less than string2; 1 if string1 is greater than string2, and 0 if they are equal.

Registro de Alterações

Versão | Descrição
8.2.0 | Esta função agora retorna -1 ou 1, onde anteriormente retornava um número negativo ou positivo.

Exemplos

An example of the difference between this algorithm and the regular computer string sorting algorithms (used in strcmp()) can be seen below:

<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Standard string comparison\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nNatural order string comparison\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>

O exemplo acima produzirá:

Standard string comparison
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order string comparison
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)
For more information see: Martin Pool's » Natural Order String Comparison page.

Veja Também

  • preg_match() - Perform a regular expression match
  • strcasecmp() - Binary safe case-insensitive string comparison
  • substr() - Retorna parte de uma string
  • stristr() - Case-insensitive strstr
  • strcmp() - Binary safe string comparison
  • strncmp() - Binary safe string comparison of the first n characters
  • strncasecmp() - Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres
  • strnatcasecmp() - Comparação de strings insensível a maiúsculas/minúsculas usando o algoritmo de "ordem natural"
  • strstr() - Find the first occurrence of a string
  • natsort() - Ordena um array utilizando o algoritmo de "ordem natural"
  • natcasesort() - Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas


Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres

  • « strnatcmp
  • strncmp »
  • PHP Manual
  • Funções de String
  • Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres

strncasecmp

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

strncasecmp — Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres

Descrição

strncasecmp(string $string1, string $string2, int $length): int

Esta função é similar a strcasecmp(), com a diferença que pode ser especificado o número (limite superior) de caracteres de cada string usada na comparação.

Parâmetros

string1

A primeira string.

string2

A segunda string.

length

O tamanho das strings, que será usado na comparação.

Valor Retornado

Retorna -1 se string1 representa menos que string2; 1 se string1 representa mais que string2, e 0 se são iguais.

Registro de Alterações

Versão | Descrição
8.2.0 | Esta função agora retorna -1 ou 1, onde anteriormente retornava um número negativo ou positivo.

Exemplos

Exemplo #1 Exemplo de strncasecmp()

<?php

$var1 = 'Hello John';
$var2 = 'hello Doe';
if (strncasecmp($var1, $var2, 5) === 0) {
echo 'Primeiros 5 caracteres de $var1 e $var2 são iguais em uma comparação insensível a maiúsculas/minúsculas';
}
?>

Veja Também

  • strncmp() - Binary safe string comparison of the first n characters
  • preg_match() - Perform a regular expression match
  • substr_compare() - Comparação binária de duas strings a partir de uma posição até n caracteres
  • strcasecmp() - Binary safe case-insensitive string comparison
  • stristr() - Case-insensitive strstr
  • substr() - Retorna parte de uma string


Binary safe string comparison of the first n characters

  • « strncasecmp
  • strpbrk »
  • PHP Manual
  • Funções de String
  • Binary safe string comparison of the first n characters

strncmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strncmp — Binary safe string comparison of the first n characters

Descrição

strncmp(string $string1, string $string2, int $length): int

This function is similar to strcmp(), with the difference that you can specify the (upper limit of the) number of characters from each string to be used in the comparison.

Note that this comparison is case sensitive.

Parâmetros

string1

The first string.

string2

The second string.

length

Number of characters to use in the comparison.

Valor Retornado

Returns -1 if string1 is less than string2; 1 if string1 is greater than string2, and 0 if they are equal.

Registro de Alterações

Versão | Descrição
8.2.0 | Esta função agora retorna -1 ou 1, onde anteriormente retornava um número negativo ou positivo.

Exemplos

Exemplo #1 strncmp() example

<?php

$var1 = 'Hello John';
$var2 = 'Hello Doe';
if (strncmp($var1, $var2, 5) === 0) {
echo 'First 5 characters of $var1 and $var2 are equals in a case-sensitive string comparison';
}
?>

Veja Também

  • strncasecmp() - Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres
  • preg_match() - Perform a regular expression match
  • substr_compare() - Comparação binária de duas strings a partir de uma posição até n caracteres
  • strcmp() - Binary safe string comparison
  • strstr() - Find the first occurrence of a string
  • substr() - Retorna parte de uma string


Procura na string por um dos caracteres de um conjunto

  • « strncmp
  • strpos »
  • PHP Manual
  • Funções de String
  • Procura na string por um dos caracteres de um conjunto

strpbrk

(PHP 5, PHP 7, PHP 8)

strpbrk — Procura na string por um dos caracteres de um conjunto

Descrição

strpbrk(string $string, string $characters): string|false

strpbrk() busca na string por qualquer caractere contido em characters.

Parâmetros

string

A string onde characters é procurado.

characters

Este parâmetro é sensível a maiúsculas/minúsculas.

Valor Retornado

Retorna uma string iniciando do caractere encontrado, ou false se nada for encontrado.

Exemplos

Exemplo #1 Exemplo de strpbrk()

<?php

$text = 'This is a Simple text.';

// isto mostrará "is is a Simple text." porque 'i' aparece primeiro
echo strpbrk($text, 'mi');

// isto mostrará "Simple text." porque a função é sensível a maiúsculas/minúsculas
echo strpbrk($text, 'S');
?>

Veja Também

  • strpos() - Find the position of the first occurrence of a substring in a string
  • strstr() - Find the first occurrence of a string
  • preg_match() - Perform a regular expression match


Find the position of the first occurrence of a substring in a string

  • « strpbrk
  • strrchr »
  • PHP Manual
  • Funções de String
  • Find the position of the first occurrence of a substring in a string

strpos

(PHP 4, PHP 5, PHP 7, PHP 8)

strpos — Find the position of the first occurrence of a substring in a string

Descrição

strpos(string $haystack, string $needle, int $offset = 0): int|false

Find the numeric position of the first occurrence of needle in the haystack string.

Parâmetros

haystack

The string to search in.

needle

The string to search for.

Antes do PHP 8.0.0, se needle não for uma string, ela será convertida para um número inteiro e aplicada como o valor ordinal de um caractere. Este comportamento tornou-se defasado a partir do PHP 7.3.0 e depender dele é altamente desaconselhado. Dependendo do comportamento pretendido, o parâmetro needle deve ser explicitamente convertido em string ou uma chamada explícita para chr() deve ser realizada.

offset

If specified, search will start this number of characters counted from the beginning of the string. If the offset is negative, the search will start this number of characters counted from the end of the string.

Valor Retornado

Returns the position of where the needle exists relative to the beginning of the haystack string (independent of offset). Also note that string positions start at 0, and not 1.

Returns false if the needle was not found.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | Passing an int as needle is no longer supported.
7.3.0 | Passing an int as needle has been deprecated.
7.1.0 | Support for negative offsets has been added.

Exemplos

Exemplo #1 Using ===

<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);

// Note our use of ===. Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
}
?>

Exemplo #2 Using !==

<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);

// The !== operator can also be used. Using != would not work as expected
// because the position of 'a' is 0. The statement (0 != false) evaluates
// to false.
if ($pos !== false) {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
} else {
echo "The string '$findme' was not found in the string '$mystring'";
}
?>

Exemplo #3 Using an offset

<?php
// We can search for the character, ignoring anything before the offset
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, not 0
?>

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
  • str_contains() - Determina se uma string contém uma substring fornecida
  • str_ends_with() - Verifica se uma string termina com uma substring fornecida
  • str_starts_with() - Verifica se uma string começa com uma substring fornecida
  • strrpos() - Find the position of the last occurrence of a substring in a string
  • strripos() - Find the position of the last occurrence of a case-insensitive substring in a string
  • strstr() - Find the first occurrence of a string
  • strpbrk() - Procura na string por um dos caracteres de um conjunto
  • substr() - Retorna parte de uma string
  • preg_match() - Perform a regular expression match


Find the last occurrence of a character in a string

  • « strpos
  • strrev »
  • PHP Manual
  • Funções de String
  • Find the last occurrence of a character in a string

strrchr

(PHP 4, PHP 5, PHP 7, PHP 8)

strrchr — Find the last occurrence of a character in a string

Descrição

strrchr(string $haystack, string $needle, bool $before_needle = false): string|false

This function returns the portion of haystack which starts at the last occurrence of needle and goes until the end of haystack.

Parâmetros

haystack

The string to search in

needle

If needle contains more than one character, only the first is used. This behavior is different from that of strstr().

Antes do PHP 8.0.0, se needle não for uma string, ela será convertida para um número inteiro e aplicada como o valor ordinal de um caractere. Este comportamento tornou-se defasado a partir do PHP 7.3.0 e depender dele é altamente desaconselhado. Dependendo do comportamento pretendido, o parâmetro needle deve ser explicitamente convertido em string ou uma chamada explícita para chr() deve ser realizada.

before_needle

If true, strrchr() returns the part of the haystack before the last occurrence of the needle (excluding the needle).

Valor Retornado

This function returns the portion of string, or false if needle is not found.

Registro de Alterações

Versão | Descrição
8.3.0 | The before_needle parameter was added.
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | Passing an int as needle is no longer supported.
7.3.0 | Passing an int as needle has been deprecated.

Exemplos

Exemplo #1 strrchr() example

<?php
$ext = strrchr('somefile.txt', '.');
echo "file extension: $ext \n";
$ext = $ext ? strtolower(substr($ext, 1)) : '';
echo "file extension: $ext";
?>

O exemplo acima produzirá algo semelhante a:

file extension: .txt
file extension: txt

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • strstr() - Find the first occurrence of a string
  • strrpos() - Find the position of the last occurrence of a substring in a string


Reverte uma string

  • « strrchr
  • strripos »
  • PHP Manual
  • Funções de String
  • Reverte uma string

strrev

(PHP 4, PHP 5, PHP 7, PHP 8)

strrev — Reverte uma string

Descrição

strrev(string $string): string

Retorna a string revertida.

Parâmetros

string

A string a ser revertida.

Valor Retornado

Retorna a string revertida.

Exemplos

Exemplo #1 Revertendo uma string strrev()

<?php
echo strrev("Hello world!"); // mostra "!dlrow olleH"
?>


Find the position of the last occurrence of a case-insensitive substring in a string

  • « strrev
  • strrpos »
  • PHP Manual
  • Funções de String
  • Find the position of the last occurrence of a case-insensitive substring in a string

strripos

(PHP 5, PHP 7, PHP 8)

strripos — Find the position of the last occurrence of a case-insensitive substring in a string

Descrição

strripos(string $haystack, string $needle, int $offset = 0): int|false

Find the numeric position of the last occurrence of needle in the haystack string.

Unlike the strrpos(), strripos() is case-insensitive.

Parâmetros

haystack

The string to search in.

needle

The string to search for.

Antes do PHP 8.0.0, se needle não for uma string, ela será convertida para um número inteiro e aplicada como o valor ordinal de um caractere. Este comportamento tornou-se defasado a partir do PHP 7.3.0 e depender dele é altamente desaconselhado. Dependendo do comportamento pretendido, o parâmetro needle deve ser explicitamente convertido em string ou uma chamada explícita para chr() deve ser realizada.

offset

If zero or positive, the search is performed left to right skipping the first offset bytes of the haystack.

If negative, the search is performed right to left skipping the last offset bytes of the haystack and searching for the first occurrence of needle.

Nota:

This is effectively looking for the last occurrence of needle before the last offset bytes.

Valor Retornado

Returns the position where the needle exists relative to the beginnning of the haystack string (independent of search direction or offset).

Nota: String positions start at 0, and not 1.

Returns false if the needle was not found.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.2.0 | A redução de todas as letras a maiúsculas ou minúsculas não depende mais da localidade definida com setlocale(). Somente a redução de todas as letras ASCII a maiúsculas ou minúsculas será feita. Os bytes não ASCII serão comparados por seu valor de byte.
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | Passing an int as needle is no longer supported.
7.3.0 | Passing an int as needle has been deprecated.

Exemplos

Exemplo #1 A simple strripos() example

<?php
$haystack = 'ababcd';
$needle = 'aB';

$pos = strripos($haystack, $needle);

if ($pos === false) {
echo "Sorry, we did not find ($needle) in ($haystack)";
} else {
echo "Congratulations!\n";
echo "We found the last ($needle) in ($haystack) at position ($pos)";
}
?>

O exemplo acima produzirá:

Congratulations!
   We found the last (aB) in (ababcd) at position (2)

Veja Também

  • strpos() - Find the position of the first occurrence of a substring in a string
  • stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
  • strrpos() - Find the position of the last occurrence of a substring in a string
  • strrchr() - Find the last occurrence of a character in a string
  • stristr() - Case-insensitive strstr
  • substr() - Retorna parte de uma string


Find the position of the last occurrence of a substring in a string

  • « strripos
  • strspn »
  • PHP Manual
  • Funções de String
  • Find the position of the last occurrence of a substring in a string

strrpos

(PHP 4, PHP 5, PHP 7, PHP 8)

strrpos — Find the position of the last occurrence of a substring in a string

Descrição

strrpos(string $haystack, string $needle, int $offset = 0): int|false

Find the numeric position of the last occurrence of needle in the haystack string.

Parâmetros

haystack

The string to search in.

needle

The string to search for.

Antes do PHP 8.0.0, se needle não for uma string, ela será convertida para um número inteiro e aplicada como o valor ordinal de um caractere. Este comportamento tornou-se defasado a partir do PHP 7.3.0 e depender dele é altamente desaconselhado. Dependendo do comportamento pretendido, o parâmetro needle deve ser explicitamente convertido em string ou uma chamada explícita para chr() deve ser realizada.

offset

If zero or positive, the search is performed left to right skipping the first offset bytes of the haystack.

If negative, the search starts offset bytes from the right instead of from the beginning of haystack. The search is performed right to left, searching for the first occurrence of needle from the selected byte.

Nota:

This is effectively looking for the last occurrence of needle at or before the last offset bytes.

Valor Retornado

Returns the position where the needle exists relative to the beginning of the haystack string (independent of search direction or offset).

Nota: String positions start at 0, and not 1.

Returns false if the needle was not found.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | Passing an int as needle is no longer supported.
7.3.0 | Passing an int as needle has been deprecated.

Exemplos

Exemplo #1 Checking if a needle is in the haystack

It is easy to mistake the return values for "character found at position 0" and "character not found". Here's how to detect the difference:

<?php

$pos = strrpos($mystring, "b");
if ($pos === false) { // note: three equal signs
// not found...
}

?>

Exemplo #2 Searching with offsets

<?php
$foo = "0123456789a123456789b123456789c";

// Looking for '0' from the 0th byte (from the beginning)
var_dump(strrpos($foo, '0', 0));

// Looking for '0' from the 1st byte (after byte "0")
var_dump(strrpos($foo, '0', 1));

// Looking for '7' from the 21th byte (after byte 20)
var_dump(strrpos($foo, '7', 20));

// Looking for '7' from the 29th byte (after byte 28)
var_dump(strrpos($foo, '7', 28));

// Looking for '7' right to left from the 5th byte from the end
var_dump(strrpos($foo, '7', -5));

// Looking for 'c' right to left from the 2nd byte from the end
var_dump(strrpos($foo, 'c', -2));

// Looking for '9c' right to left from the 2nd byte from the end
var_dump(strrpos($foo, '9c', -2));
?>

O exemplo acima produzirá:

int(0)
bool(false)
int(27)
bool(false)
int(17)
bool(false)
int(29)

Veja Também

  • strpos() - Find the position of the first occurrence of a substring in a string
  • stripos() - Find the position of the first occurrence of a case-insensitive substring in a string
  • strripos() - Find the position of the last occurrence of a case-insensitive substring in a string
  • strrchr() - Find the last occurrence of a character in a string
  • substr() - Retorna parte de uma string


Encontra o comprimento do segmento inicial de uma string composta totalmente de caracteres contidos em uma máscara informada

  • « strrpos
  • strstr »
  • PHP Manual
  • Funções de String
  • Encontra o comprimento do segmento inicial de uma string composta totalmente de caracteres contidos em uma máscara informada

strspn

(PHP 4, PHP 5, PHP 7, PHP 8)

strspn — Encontra o comprimento do segmento inicial de uma string composta totalmente de caracteres contidos em uma máscara informada

Descrição

strspn(
string $string,
string $characters,
int $offset = 0,
?int $length = null
): int

Encontra o comprimento do segmento inicial da string que contenha somente caracteres contidos em characters.

Se offset e length forem omitidos, então toda a string será examinada. Se forem incluídos, o efeito será o mesmo que chamar strspn(substr($string, $offset, $length), $characters) (consulte substr para mais informações).

A linha de código:

<?php
$var = strspn("42 is the answer to the 128th question.", "1234567890");
?>
atribuirá 2 para $var, porque a string "42" é o segmento inicial de string que consiste somente de caracteres contidos em "1234567890".

Parâmetros

string

A primeira a ser examinada.

characters

A lista de caracteres permitidos.

offset

A posição na string para iniciar a pesquisa.

Se offset for informado e não negativo, a função strspn() começará a examinar a string na posição offset. Por exemplo, na string 'abcdef', o caractere na posição 0 é 'a', na posição 2 é 'c', e assim por diante.

Se offset for informado e negativo, a função strspn() começará a examinar a string na posição offset a partir do final da string.

length

O tamanho do segmento da string a ser examinado.

Se length for informado e não negativo, a string será examinada pelo número de caracteres em length a partir da posição inicial.

Se length for informado e negativo, a string será examinada a partir da posição inicial até o número de caracteres informado em length contados a partir do final da string.

Valor Retornado

Retorna o comprimento do segmento inicial de string que consistir inteiramente dos caracteres definidos em characters.

Nota:

Quando o parâmetro offset estiver definido, o comprimento retornado é contado iniciando-se desta posição, não do início da string.

Registro de Alterações

Versão | Descrição
8.0.0 | length agora pode ser nulo.

Exemplos

Exemplo #1 strspn() example

<?php
// string não começa com nenhum dos caracteres da máscara
var_dump(strspn("foo", "o"));

// examina dois caracteres da string iniciando na posição 1
var_dump(strspn("foo", "o", 1, 2));

// examina um caractere da string iniciando na posição 1
var_dump(strspn("foo", "o", 1, 1));
?>

O exemplo acima produzirá:

int(0)
int(2)
int(1)

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • strcspn() - Encontra o tamanho do segmento inicial que não corresponde à máscara


Find the first occurrence of a string

  • « strspn
  • strtok »
  • PHP Manual
  • Funções de String
  • Find the first occurrence of a string

strstr

(PHP 4, PHP 5, PHP 7, PHP 8)

strstr — Find the first occurrence of a string

Descrição

strstr(string $haystack, string $needle, bool $before_needle = false): string|false

Returns part of haystack string starting from and including the first occurrence of needle to the end of haystack.

Nota:

This function is case-sensitive. For case-insensitive searches, use stristr().

Nota:

If it is only required to determine if a particular needle occurs within haystack, the faster and less memory intensive str_contains() function should be used instead.

Parâmetros

haystack

The input string.

needle

The string to search for.

Antes do PHP 8.0.0, se needle não for uma string, ela será convertida para um número inteiro e aplicada como o valor ordinal de um caractere. Este comportamento tornou-se defasado a partir do PHP 7.3.0 e depender dele é altamente desaconselhado. Dependendo do comportamento pretendido, o parâmetro needle deve ser explicitamente convertido em string ou uma chamada explícita para chr() deve ser realizada.

before_needle

If true, strstr() returns the part of the haystack before the first occurrence of the needle (excluding the needle).

Valor Retornado

Returns the portion of string, or false if needle is not found.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro needle agora aceita uma string vazia.
8.0.0 | Passing an int as needle is no longer supported.
7.3.0 | Passing an int as needle has been deprecated.

Exemplos

Exemplo #1 strstr() example

<?php
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com

$user = strstr($email, '@', true);
echo $user; // prints name
?>

Veja Também

  • stristr() - Case-insensitive strstr
  • strrchr() - Find the last occurrence of a character in a string
  • strpos() - Find the position of the first occurrence of a substring in a string
  • strpbrk() - Procura na string por um dos caracteres de um conjunto
  • preg_match() - Perform a regular expression match


Tokenize string

  • « strstr
  • strtolower »
  • PHP Manual
  • Funções de String
  • Tokenize string

strtok

(PHP 4, PHP 5, PHP 7, PHP 8)

strtok — Tokenize string

Descrição

strtok(string $string, string $token): string|false

Alternative signature (not supported with named arguments):

strtok(string $token): string|false

strtok() splits a string (string) into smaller strings (tokens), with each token being delimited by any character from token. That is, if you have a string like "This is an example string" you could tokenize this string into its individual words by using the space character as the token.

Note that only the first call to strtok uses the string argument. Every subsequent call to strtok only needs the token to use, as it keeps track of where it is in the current string. To start over, or to tokenize a new string you simply call strtok with the string argument again to initialize it. Note that you may put multiple tokens in the token parameter. The string will be tokenized when any one of the characters in the token argument is found.

Nota:

This function behaves slightly different from what one may expect being familiar with explode(). First, a sequence of two or more contiguous token characters in the parsed string is considered to be a single delimiter. Also, a token situated at the start or end of the string is ignored. For example, if a string ";aaa;;bbb;" is used, successive calls to strtok() with ";" as a token would return strings "aaa" and "bbb", and then false. As a result, the string will be split into only two elements, while explode(";", $string) would return an array of 5 elements.

Parâmetros

string

The string being split up into smaller strings (tokens).

token

The delimiter used when splitting up string.

Valor Retornado

A string token, or false if no more tokens are available.

Registro de Alterações

Versão | Descrição
8.3.0 | Now emits E_WARNING when token is not provided.

Exemplos

Exemplo #1 strtok() example

<?php
$string = "This is\tan example\nstring";
/* Use tab and newline as tokenizing characters as well */
$tok = strtok($string, " \n\t");

while ($tok !== false) {
echo "Word=$tok<br />";
$tok = strtok(" \n\t");
}
?>

Exemplo #2 strtok() behavior on empty part found

<?php
$first_token = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

O exemplo acima produzirá:

string(9) "something"
    bool(false)

Exemplo #3 The difference between strtok() and explode()

<?php
$string = ";aaa;;bbb;";

$parts = [];
$tok = strtok($string, ";");
while ($tok !== false) {
$parts[] = $tok;
$tok = strtok(";");
}
echo json_encode($parts),"\n";

$parts = explode(";", $string);
echo json_encode($parts),"\n";

O exemplo acima produzirá:

["aaa","bbb"]
["","aaa","","bbb",""]

Notas

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Veja Também

  • explode() - Split a string by a string


Converte uma string para minúsculas

  • « strtok
  • strtoupper »
  • PHP Manual
  • Funções de String
  • Converte uma string para minúsculas

strtolower

(PHP 4, PHP 5, PHP 7, PHP 8)

strtolower — Converte uma string para minúsculas

Descrição

strtolower(string $string): string

Retorna uma string com todos os caracteres alfabéticos ASCII convertidos para minúsculas.

Bytes na faixa "A" (0x41) a "Z" (0x5a) serão convertidos para a letra minúscula correspondente pela adição de 32 a cada valor de byte.

Esta função pode ser usada para converter caracteres ASCII em string codificadas com UTF-8, já que os caracteres multibyte UTF-8 serão ignorados. Para converter caracteres multibyte não-ASCII, use mb_strtolower().

Parâmetros

string

A string de entrada.

Valor Retornado

Retorna a string minúscula.

Registro de Alterações

Versão | Descrição
8.2.0 | A conversão de maiúsculas e minúsculas não depende mais da localidade definida com setlocale(). Somente caracteres ASCII serão convertidos.

Exemplos

Exemplo #1 Exemplo de strtolower()

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtolower($str);
echo $str; // Prints mary had a little lamb and she loved it so
?>

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • strtoupper() - Make a string uppercase
  • ucfirst() - Make a string's first character uppercase
  • ucwords() - Converte para maiúsculas o primeiro caractere de cada palavra
  • mb_strtolower() - Torna uma string minúscula


Make a string uppercase

  • « strtolower
  • strtr »
  • PHP Manual
  • Funções de String
  • Make a string uppercase

strtoupper

(PHP 4, PHP 5, PHP 7, PHP 8)

strtoupper — Make a string uppercase

Descrição

strtoupper(string $string): string

Returns string with all ASCII alphabetic characters converted to uppercase.

Bytes in the range "a" (0x61) to "z" (0x7a) will be converted to the corresponding uppercase letter by subtracting 32 from each byte value.

This can be used to convert ASCII characters within strings encoded with UTF-8, since multibyte UTF-8 characters will be ignored. To convert multibyte non-ASCII characters, use mb_strtoupper().

Parâmetros

string

The input string.

Valor Retornado

Returns the uppercased string.

Registro de Alterações

Versão | Descrição
8.2.0 | A conversão de maiúsculas e minúsculas não depende mais da localidade definida com setlocale(). Somente caracteres ASCII serão convertidos.

Exemplos

Exemplo #1 strtoupper() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper($str);
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • strtolower() - Converte uma string para minúsculas
  • ucfirst() - Make a string's first character uppercase
  • ucwords() - Converte para maiúsculas o primeiro caractere de cada palavra
  • mb_strtoupper() - Faz uma string ficar em maiúsculas


Translate characters or replace substrings

  • « strtoupper
  • substr_compare »
  • PHP Manual
  • Funções de String
  • Translate characters or replace substrings

strtr

(PHP 4, PHP 5, PHP 7, PHP 8)

strtr — Translate characters or replace substrings

Descrição

strtr(string $string, string $from, string $to): string

Alternative signature (not supported with named arguments):

strtr(string $string, array $replace_pairs): string

If given three arguments, this function returns a copy of string where all occurrences of each (single-byte) character in from have been translated to the corresponding character in to, i.e., every occurrence of $from[$n] has been replaced with $to[$n], where $n is a valid offset in both arguments.

If from and to have different lengths, the extra characters in the longer of the two are ignored. The length of string will be the same as the return value's.

If given two arguments, the second should be an array in the form array('from' => 'to', ...). The return value is a string where all the occurrences of the array keys have been replaced by the corresponding values. The longest keys will be tried first. Once a substring has been replaced, its new value will not be searched again.

In this case, the keys and the values may have any length, provided that there is no empty key; additionally, the length of the return value may differ from that of string. However, this function will be the most efficient when all the keys have the same size.

Parâmetros

string

The string being translated.

from

The string being translated to to.

to

The string replacing from.

replace_pairs

The replace_pairs parameter may be used instead of to and from, in which case it's an array in the form array('from' => 'to', ...).

If replace_pairs contains a key which is an empty string (""), the element is ignored; as of PHP 8.0.0 E_WARNING is raised in this case.

Valor Retornado

Returns the translated string.

Exemplos

Exemplo #1 strtr() example

<?php
//In this form, strtr() does byte-by-byte translation
//Therefore, we are assuming a single-byte encoding here:
$addr = strtr($addr, "äåö", "aao");
?>

The next example shows the behavior of strtr() when called with only two arguments. Note the preference of the replacements ("h" is not picked because there are longer matches) and how replaced text was not searched again.

Exemplo #2 strtr() example with two arguments

<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>

O exemplo acima produzirá:

hello all, I said hi

The two modes of behavior are substantially different. With three arguments, strtr() will replace bytes; with two, it may replace longer substrings.

Exemplo #3 strtr() behavior comparison

<?php
echo strtr("baab", "ab", "01"),"\n";

$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>

O exemplo acima produzirá:

1001
ba01

Veja Também

  • str_replace() - Substitui todas as ocorrências da string de pesquisa com a string de substituição
  • preg_replace() - Realiza uma pesquisa por uma expressão regular e substitui


Comparação binária de duas strings a partir de uma posição até n caracteres

  • « strtr
  • substr_count »
  • PHP Manual
  • Funções de String
  • Comparação binária de duas strings a partir de uma posição até n caracteres

substr_compare

(PHP 5, PHP 7, PHP 8)

substr_compare — Comparação binária de duas strings a partir de uma posição até n caracteres

Descrição

substr_compare(
string $haystack,
string $needle,
int $offset,
?int $length = null,
bool $case_insensitive = false
): int

substr_compare() compara haystack a partir da posição offset com needle até length caracteres.

Parâmetros

haystack

A string principal a ser comparada.

needle

A string secundária a ser comparada.

offset

A posição inicial para a comparação. Se negativa, inicia contando da final da string.

length

O comprimento da comparação. O valor padrão é o maior comprimento entre o comprimento de needle comparado com o comprimento de haystack menos o offset.

case_insensitive

Se case_insensitive for true, a comparação é insensível a maiúsculas/minúsculas.

Valor Retornado

Retorna -1 se haystack a partir da posição offset for menor que needle, 1 se for marior que needle, e 0 se forem iguais. Se offset for igual a (antes do PHP 7.2.18, 7.3.5) ou maior que o comprimento de haystack, ou length estiver definido e menor que 0, substr_compare() mostra um alerta e retorna false.

Registro de Alterações

Versão | Descrição
8.2.0 | Esta função agora retorna -1 ou 1, onde anteriormente retornava um número negativo ou positivo.
8.0.0 | length agora pode ser nulo.
7.2.18, 7.3.5 | offset agora pode ser iagual ao comprimento de haystack.

Exemplos

Exemplo #1 Exemplo de substr_compare()

<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // alerta
?>

Veja Também

  • strncmp() - Binary safe string comparison of the first n characters


Conta o número de ocorrências de uma substring

  • « substr_compare
  • substr_replace »
  • PHP Manual
  • Funções de String
  • Conta o número de ocorrências de uma substring

substr_count

(PHP 4, PHP 5, PHP 7, PHP 8)

substr_count — Conta o número de ocorrências de uma substring

Descrição

substr_count(
string $haystack,
string $needle,
int $offset = 0,
?int $length = null
): int

substr_count() retorna o número de vezes que a substring needle ocorre na string haystack. Note que needle faz distinção de maiúscula e minúscula.

Nota:

Esta função não conta substrings sobrepostas. Veja o exemplo abaixo!

Parâmetros

haystack

A string onde será feita a busca

needle

A substring a ser procurada

offset

A posição onde deve-se iniciar a contagem. Se a posição for negativa, a contagem começa do final da string.

length

O comprimento máximo depois da posição especificada para buscar pela substring. Mostra um alerta se a posição mais o comprimento for maior que o comprimento de haystack. Um comprimento negativo conta a partir do final de haystack.

Valor Retornado

Esta função retorna um int.

Registro de Alterações

Versão | Descrição
8.0.0 | length agora pode ser nulo.
7.1.0 | Suporte a valores negativos para offset e length foi adicionado. length agora também pode ser 0.

Exemplos

Exemplo #1 Exemplo de substr_count()

<?php
$text = 'This is a test';
echo strlen($text); // 14

echo substr_count($text, 'is'); // 2

// a string é reduzida a 's is a test', então mostra 1
echo substr_count($text, 'is', 3);

// o texto é reduzido a 's i', então mostra 0
echo substr_count($text, 'is', 3, 3);

// gera um alerta porque 5+10 > 14
echo substr_count($text, 'is', 5, 10);

// mostra apenas 1, porque não conta substrings sobrepostos
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>

Veja Também

  • count_chars() - Return information about characters used in a string
  • strpos() - Find the position of the first occurrence of a substring in a string
  • substr() - Retorna parte de uma string
  • strstr() - Find the first occurrence of a string


Substitui o texto dentro de uma parte de uma string

  • « substr_count
  • substr »
  • PHP Manual
  • Funções de String
  • Substitui o texto dentro de uma parte de uma string

substr_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

substr_replace — Substitui o texto dentro de uma parte de uma string

Descrição

substr_replace(
array|string $string,
array|string $replace,
array|int $offset,
array|int|null $length = null
): string|array

substr_replace() substitui uma cópia de string delimitada pelos parâmetros offset e (opcionalmente) length com a string informada em replace.

Parâmetros

string

A string de entrada.

Um array de strings pode ser fornecido, e neste caso as substituições irão ocorrer em um string de cada vez. Neste caso, os parâmetros replace, offset e length podem ser fornecidos tanto como valores escalares a ser aplicados a um string de entrada de cada vez, quanto como arrays, neste caso o elemento correspondente do array será usado por cada string de entrada.

replace

A string substituta.

offset

Se offset for não-negativo, a substituição começará na posição offset da string.

Se offset for negativo, a substituição começará a partir da posição offset contada a partir do final da string.

length

Se fornecido e positivo, ele representa o comprimento da porção de string que deve ser substituída. Se negativo, ele representa o número de caracteres do final de string onde parar a substituição. Se ele não for fornecido, o padrão será até strlen( string); isto é, parar a substituição no final de string. Obviamente, se length for zero então esta função irá ter efeito de inserir replace em string na posição fornecida em offset.

Valor Retornado

A string de resultado é retornada. Se string for um array, então um array será retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | length agora pode ser nulo.

Exemplos

Exemplo #1 Exemplo de substr_replace()

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";

/* Estes dois exemplos substituem tudo de $var com 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";

/* Insere 'bob' direto no começo de $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";

/* Estes dois exemplos substituem 'MNRPQR' em $var com 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";

/* Deleta 'MNRPQR' de $var. */
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>

Exemplo #2 Usando substr_replace() para substituir múltiplas strings de uma só vez

<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');

// Um caso simples: substituir XXX em cada string com YYY.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";

// Um caso mais complicado onde cada substituição é diferente.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";

// Substituir um número diferente de caracteres a cada vez.
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>

O exemplo acima produzirá:

A: YYY; B: YYY; C: YYY
A: AAA; B: BBB; C: CCC
A: AAAXX; B: BBBX; C: CCC

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • str_replace() - Substitui todas as ocorrências da string de pesquisa com a string de substituição
  • substr() - Retorna parte de uma string
  • Acesso e modificação de strings por caractere


Retorna parte de uma string

  • « substr_replace
  • trim »
  • PHP Manual
  • Funções de String
  • Retorna parte de uma string

substr

(PHP 4, PHP 5, PHP 7, PHP 8)

substr — Retorna parte de uma string

Descrição

substr(string $string, int $offset, ?int $length = null): string

Retorna a parte de string especificada pelo parâmetro offset e length.

Parâmetros

string

A string de entrada

offset

Se offset for não-negativo, a string retornada iniciará na posição offset em string, começando em zero. Por exemplo, na string 'abcdef', o caractere na posição 0 é 'a', na posição 2 é 'c', e assim por diante.

Se offset for negativo, a string retornada irá começar no caractere offset contado a partir do fim da string.

Se a string for mais curta que o parâmetro offset, uma string vazia será retornada.

Exemplo #1 Usando um offset negativo

<?php
$rest = substr("abcdef", -1); // retorna "f"
$rest = substr("abcdef", -2); // retorna "ef"
$rest = substr("abcdef", -3, 1); // retorna "d"
?>

length

Se length for fornecido e for positivo, a string retornada irá conter, no máximo, length caracteres começando em offset (dependendo do tamanho da string).

Se length for informado e for negativo, então esta quantidade caracteres será omitida do final da string (após a posicão de inicio ter sido calculada quando offset for negativo). Se offset denota a posição da truncagem ou além, uma string vazia será retornada.

Se length for informado e for igual a 0, uma string vazia será retornada.

Se length for omitido ou null, a substring iniciando em offset será retornada.

Exemplo #2 Usando um length negativo

<?php
$rest = substr("abcdef", 0, -1); // retorna "abcde"
$rest = substr("abcdef", 2, -1); // retorna "cde"
$rest = substr("abcdef", 4, -4); // retorna ""; antes do PHP 8.0.0, falso era retornado
$rest = substr("abcdef", -3, -1); // retorna "de"
?>

Valor Retornado

Retorna a parte extraída da string, ou uma string vazia.

Registro de Alterações

Versão | Descrição
8.0.0 | length agora pode ser nulo. Quando length for especificamente definido para null, a função retorna uma substring terminando no final da string, quando anteriormente retornava uma string vazia.
8.0.0 | A função retorna uma string vazia quando antes retornava false.

Exemplos

Exemplo #3 Uso básico de substr()

<?php
echo substr('abcdef', 1); // bcdef
echo substr("abcdef", 1, null); // bcdef; antes do PHP 8.0.0, string vazia era retornada
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f

// O acesso a caracteres individuais pode
// ser feito atravéz de indexação
$string = 'abcdef';
echo $string[0]; // a
echo $string[3]; // d
echo $string[strlen($string)-1]; // f

?>

Exemplo #4 Comportamento de conversão no substr()

<?php
class apple {
public function __toString() {
return "green";
}
}

echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>

O exemplo acima produzirá:

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) ''
6) ''
7) '1200'

Exemplo #5 Faixa Inválida de Caracteres

Se uma faixa inválida de caracteres for requisitada, substr() retorna uma string vazia a partir do PHP 8.0.0; anteriormente, false era retornado.

<?php
var_dump(substr('a', 2));
?>

Saída do exemplo acima no PHP 8:

string(0) ""

Saída do exemplo acima no PHP 7:

bool(false)

Veja Também

  • strrchr() - Find the last occurrence of a character in a string
  • substr_replace() - Substitui o texto dentro de uma parte de uma string
  • preg_match() - Perform a regular expression match
  • trim() - Retira espaço (ou outros caracteres) do início e do final de uma string
  • mb_substr() - Obtém parte da string
  • wordwrap() - Quebra uma string em um dado número de caracteres
  • Acesso e modificação de strings por caractere


Retira espaço (ou outros caracteres) do início e do final de uma string

  • « substr
  • ucfirst »
  • PHP Manual
  • Funções de String
  • Retira espaço (ou outros caracteres) do início e do final de uma string

trim

(PHP 4, PHP 5, PHP 7, PHP 8)

trim — Retira espaço (ou outros caracteres) do início e do final de uma string

Descrição

trim(string $string, string $characters = " \n\r\t\v\x00"): string

Esta função retorna uma string com os espaços retirados do ínicio e do final de string. Sem o segundo parâmetro, trim() irá retirar estes caracteres

  • " " (ASCII 32 (0x20)), um espaço normal.
  • "\t" (ASCII 9 (0x09)), uma tabulação.
  • "\n" (ASCII 10 (0x0A)), uma linha nova (alimentação de linha).
  • "\r" (ASCII 13 (0x0D)), um retono de carro.
  • "\0" (ASCII 0 (0x00)), o byte NUL.
  • "\v" (ASCII 11 (0x0B)), uma tabulação vertical.

Parâmetros

string

A string que será modificada.

characters

Opcionalmente, os caracteres removidos pode também ser especificados usando o parâmetro characters. Simplesmente liste todos os caracteres que você quer retirar. Com .. você pode especificar um intervalo de caracteres.

Valor Retornado

A string com caracteres removidos.

Exemplos

Exemplo #1 Exemplo de uso de trim()

<?php

$text = "\t\tThese are a few words :) ... ";
$binary = "\x09Example string\x0A";
$hello = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = trim($text);
var_dump($trimmed);

$trimmed = trim($text, " \t.");
var_dump($trimmed);

$trimmed = trim($hello, "Hdle");
var_dump($trimmed);

$trimmed = trim($hello, 'HdWr');
var_dump($trimmed);

// retira os caracteres ASCII de controle no início e fim de $binary
// (de 0 a 31 inclusive)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);

?>

O exemplo acima produzirá:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(9) "ello Worl"
string(14) "Example string"

Exemplo #2 Usando trim() em valores de array

<?php
function trim_value(&$value)
{
$value = trim($value);
}

$fruit = array('apple','banana ', ' cranberry ');
var_dump($fruit);

array_walk($fruit, 'trim_value');
var_dump($fruit);

?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "banana "
  [2]=>
  string(11) " cranberry "
}
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(9) "cranberry"
}

Notas

Nota: Possível armadilha: removendo caracteres no meio da string

Como trim() retira caracteres do início de do fim de uma string, pode ser confuso quando caracteres são (ou não) removidos do meio. trim('abc', 'bad') remove tanto 'a' quanto 'b' porque ele retira 'a', portanto move 'b' para o início e também será retirado. Portanto, este é o motivo pelo qual isso "funciona" enquanto que trim('abc', 'b') aparentemente não funciona.

Veja Também

  • ltrim() - Retira espaços em branco (ou outros caracteres) do início de uma string
  • rtrim() - Retira espaço em branco (ou outros caracteres) do final de uma string
  • str_replace() - Substitui todas as ocorrências da string de pesquisa com a string de substituição


Make a string's first character uppercase

  • « trim
  • ucwords »
  • PHP Manual
  • Funções de String
  • Make a string's first character uppercase

ucfirst

(PHP 4, PHP 5, PHP 7, PHP 8)

ucfirst — Make a string's first character uppercase

Descrição

ucfirst(string $string): string

Returns a string with the first character of string capitalized, if that character is an ASCII character in the range from "a" (0x61) to "z" (0x7a).

Parâmetros

string

The input string.

Valor Retornado

Returns the resulting string.

Registro de Alterações

Versão | Descrição
8.2.0 | A conversão de maiúsculas e minúsculas não depende mais da localidade definida com setlocale(). Somente caracteres ASCII serão convertidos.

Exemplos

Exemplo #1 ucfirst() example

<?php
$foo = 'hello world!';
$foo = ucfirst($foo); // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar); // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>

Veja Também

  • lcfirst() - Torna minúsculo o primeiro caractere de uma string
  • strtolower() - Converte uma string para minúsculas
  • strtoupper() - Make a string uppercase
  • ucwords() - Converte para maiúsculas o primeiro caractere de cada palavra
  • mb_convert_case() - Realiza a conversão de caixa em uma string


Converte para maiúsculas o primeiro caractere de cada palavra

  • « ucfirst
  • utf8_decode »
  • PHP Manual
  • Funções de String
  • Converte para maiúsculas o primeiro caractere de cada palavra

ucwords

(PHP 4, PHP 5, PHP 7, PHP 8)

ucwords — Converte para maiúsculas o primeiro caractere de cada palavra

Descrição

ucwords(string $string, string $separators = " \t\r\n\f\v"): string

Retorna uma string com o primeiro caractere de cada palavra em string em maiúscula, se este caractere for uma letra ASCII entre "a" (0x61) e "z" (0x7a).

Nesta função, uma palavra é qualquer sequência de caracteres não listada no parâmetro separators. Por padrão, os separadores são: espaço, tab horizontal, retorno de carro, nova linha, form feed e tab vertical.

Para realizar uma conversão similar em strings multibyte, utilize mb_convert_case() com a opção MB_CASE_TITLE.

Parâmetros

string

A string de entrada.

separators

O parâmetro opcional separators contém os caracteres separadores das palavras.

Valor Retornado

Retorna a string modificada.

Registro de Alterações

Versão | Descrição
8.2.0 | A conversão de maiúsculas e minúsculas não depende mais da localidade definida com setlocale(). Somente caracteres ASCII serão convertidos.

Exemplos

Exemplo #1 Exemplo da ucwords()

<?php
$foo = 'hello world!';
$foo = ucwords($foo); // Hello World!

$bar = 'HELLO WORLD!';
$bar = ucwords($bar); // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>

Exemplo #2 Exemplo de ucwords() com delimitador

<?php
$foo = 'hello|world!';
$bar = ucwords($foo); // Hello|world!

$baz = ucwords($foo, "|"); // Hello|World!
?>

Exemplo #3 Exemplo de ucwords() com delimitadores adicionais

<?php
$foo = "mike o'hara";
$bar = ucwords($foo); // Mike O'hara

$baz = ucwords($foo, " \t\r\n\f\v'"); // Mike O'Hara
?>

Notas

Nota: Esta função é compatível com dados binários.

Veja Também

  • strtoupper() - Make a string uppercase
  • strtolower() - Converte uma string para minúsculas
  • ucfirst() - Make a string's first character uppercase
  • mb_convert_case() - Realiza a conversão de caixa em uma string


Converts a string from UTF-8 to ISO-8859-1, replacing invalid or unrepresentable characters

  • « ucwords
  • utf8_encode »
  • PHP Manual
  • Funções de String
  • Converts a string from UTF-8 to ISO-8859-1, replacing invalid or unrepresentable characters

utf8_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_decode — Converts a string from UTF-8 to ISO-8859-1, replacing invalid or unrepresentable characters

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.2.0. O uso desta função é fortemente desencorajado.

Descrição

utf8_decode(string $string): string

This function converts the string string from the UTF-8 encoding to ISO-8859-1. Bytes in the string which are not valid UTF-8, and UTF-8 characters which do not exist in ISO-8859-1 (that is, code points above U+00FF) are replaced with ?.

Nota:

Many web pages marked as using the ISO-8859-1 character encoding actually use the similar Windows-1252 encoding, and web browsers will interpret ISO-8859-1 web pages as Windows-1252. Windows-1252 features additional printable characters, such as the Euro sign (€) and curly quotes (“ ”), instead of certain ISO-8859-1 control characters. This function will not convert such Windows-1252 characters correctly. Use a different function if Windows-1252 conversion is required.

Parâmetros

string

A UTF-8 encoded string.

Valor Retornado

Returns the ISO-8859-1 translation of string.

Registro de Alterações

Versão | Descrição
8.2.0 | This function has been deprecated.
7.2.0 | This function has been moved from the XML extension to the core of PHP. In previous versions, it was only available if the XML extension was installed.

Exemplos

Exemplo #1 Basic examples

<?php
// Convert the string 'Zoë' from UTF-8 to ISO 8859-1
$utf8_string = "\x5A\x6F\xC3\xAB";
$iso8859_1_string = utf8_decode($utf8_string);
echo bin2hex($iso8859_1_string), "\n";

// Invalid UTF-8 sequences are replaced with '?'
$invalid_utf8_string = "\xC3";
$iso8859_1_string = utf8_decode($invalid_utf8_string);
var_dump($iso8859_1_string);

// Characters which don't exist in ISO 8859-1, such as
// '€' (Euro Sign) are also replaced with '?'
$utf8_string = "\xE2\x82\xAC";
$iso8859_1_string = utf8_decode($utf8_string);
var_dump($iso8859_1_string);
?>

O exemplo acima produzirá:

5a6feb
string(1) "?"
string(1) "?"

Notas

Nota: Deprecation and alternatives

This function is deprecated as of PHP 8.2.0, and will be removed in a future version. Existing uses should be checked and replaced with appropriate alternatives.

Similar functionality can be achieved with mb_convert_encoding(), which supports ISO-8859-1 and many other character encodings.

<?php
$utf8_string = "\xC3\xAB"; // 'ë' (e with diaeresis) in UTF-8
$iso8859_1_string = mb_convert_encoding($utf8_string, 'ISO-8859-1', 'UTF-8');
echo bin2hex($iso8859_1_string), "\n";

$utf8_string = "\xCE\xBB"; // '?' (Greek lower-case lambda) in UTF-8
$iso8859_7_string = mb_convert_encoding($utf8_string, 'ISO-8859-7', 'UTF-8');
echo bin2hex($iso8859_7_string), "\n";

$utf8_string = "\xE2\x82\xAC"; // '€' (Euro sign) in UTF-8 (not present in ISO-8859-1)
$windows_1252_string = mb_convert_encoding($utf8_string, 'Windows-1252', 'UTF-8');
echo bin2hex($windows_1252_string), "\n";
?>

O exemplo acima produzirá:

eb
eb
80

Other options which may be available depending on the extensions installed are UConverter::transcode() and iconv().

The following all give the same result:

<?php
$utf8_string = "\x5A\x6F\xC3\xAB"; // 'Zoë' in UTF-8
$iso8859_1_string = utf8_decode($utf8_string);
echo bin2hex($iso8859_1_string), "\n";

$iso8859_1_string = mb_convert_encoding($utf8_string, 'ISO-8859-1', 'UTF-8');
echo bin2hex($iso8859_1_string), "\n";

$iso8859_1_string = iconv('UTF-8', 'ISO-8859-1', $utf8_string);
echo bin2hex($iso8859_1_string), "\n";

$iso8859_1_string = UConverter::transcode($utf8_string, 'ISO-8859-1', 'UTF8');
echo bin2hex($iso8859_1_string), "\n";
?>

O exemplo acima produzirá:

5a6feb
5a6feb
5a6feb
5a6feb
Specifying '?' as the 'to_subst' option to UConverter::transcode() gives the same result as utf8_decode() for strings which are invalid or which can not be represented in ISO 8859-1.
<?php
$utf8_string = "\xE2\x82\xAC"; // € (Euro Sign) does not exist in ISO 8859-1
$iso8859_1_string = UConverter::transcode(
$utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
var_dump($iso8859_1_string);
?>

O exemplo acima produzirá:

sring(1) "?"

Veja Também

  • utf8_encode() - Converts a string from ISO-8859-1 to UTF-8
  • mb_convert_encoding() - Converte uma string de uma codificação de caracteres para outra
  • UConverter::transcode() - Converte uma string de uma codificação de caracteres para outra
  • iconv() - Converte uma string de uma codificação de caracteres para outra


Converts a string from ISO-8859-1 to UTF-8

  • « utf8_decode
  • vfprintf »
  • PHP Manual
  • Funções de String
  • Converts a string from ISO-8859-1 to UTF-8

utf8_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_encode — Converts a string from ISO-8859-1 to UTF-8

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.2.0. O uso desta função é fortemente desencorajado.

Descrição

utf8_encode(string $string): string

This function converts the string string from the ISO-8859-1 encoding to UTF-8.

Nota:

This function does not attempt to guess the current encoding of the provided string, it assumes it is encoded as ISO-8859-1 (also known as "Latin 1") and converts to UTF-8. Since every sequence of bytes is a valid ISO-8859-1 string, this never results in an error, but will not result in a useful string if a different encoding was intended.

Many web pages marked as using the ISO-8859-1 character encoding actually use the similar Windows-1252 encoding, and web browsers will interpret ISO-8859-1 web pages as Windows-1252. Windows-1252 features additional printable characters, such as the Euro sign (€) and curly quotes (“ ”), instead of certain ISO-8859-1 control characters. This function will not convert such Windows-1252 characters correctly. Use a different function if Windows-1252 conversion is required.

Parâmetros

string

An ISO-8859-1 string.

Valor Retornado

Returns the UTF-8 translation of string.

Registro de Alterações

Versão | Descrição
8.2.0 | This function has been deprecated.
7.2.0 | This function has been moved from the XML extension to the core of PHP. In previous versions, it was only available if the XML extension was installed.

Exemplos

Exemplo #1 Basic example

<?php
// Convert the string 'Zoë' from ISO 8859-1 to UTF-8
$iso8859_1_string = "\x5A\x6F\xEB";
$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>

O exemplo acima produzirá:

5a6fc3ab

Notas

Nota: Deprecation and alternatives

This function is deprecated as of PHP 8.2.0, and will be removed in a future version. Existing uses should be checked and replaced with appropriate alternatives.

Similar functionality can be achieved with mb_convert_encoding(), which supports ISO-8859-1 and many other character encodings.

<?php
$iso8859_1_string = "\xEB"; // 'ë' (e with diaeresis) in ISO-8859-1
$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";

$iso8859_7_string = "\xEB"; // the same string in ISO-8859-7 represents '?' (Greek lower-case lambda)
$utf8_string = mb_convert_encoding($iso8859_7_string, 'UTF-8', 'ISO-8859-7');
echo bin2hex($utf8_string), "\n";

$windows_1252_string = "\x80"; // '€' (Euro sign) in Windows-1252, but not in ISO-8859-1
$utf8_string = mb_convert_encoding($windows_1252_string, 'UTF-8', 'Windows-1252');
echo bin2hex($utf8_string), "\n";
?>

O exemplo acima produzirá:

c3ab
cebb
e282ac

Other options which may be available depending on the extensions installed are UConverter::transcode() and iconv().

The following all give the same result:

<?php
$iso8859_1_string = "\x5A\x6F\xEB"; // 'Zoë' in ISO-8859-1

$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";

$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";

$utf8_string = UConverter::transcode($iso8859_1_string, 'UTF8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";

$utf8_string = iconv('ISO-8859-1', 'UTF-8', $iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>

O exemplo acima produzirá:

5a6fc3ab
5a6fc3ab
5a6fc3ab
5a6fc3ab

Veja Também

  • utf8_decode() - Converts a string from UTF-8 to ISO-8859-1, replacing invalid or unrepresentable characters
  • mb_convert_encoding() - Converte uma string de uma codificação de caracteres para outra
  • UConverter::transcode() - Converte uma string de uma codificação de caracteres para outra
  • iconv() - Converte uma string de uma codificação de caracteres para outra


Escreve uma string formatada para um fluxo

  • « utf8_encode
  • vprintf »
  • PHP Manual
  • Funções de String
  • Escreve uma string formatada para um fluxo

vfprintf

(PHP 5, PHP 7, PHP 8)

vfprintf — Escreve uma string formatada para um fluxo

Descrição

vfprintf(resource $stream, string $format, array $values): int

Escreve uma string produzida de acordo com format para o recurso do fluxo especificado por stream.

Funciona como fprintf() mas aceita um array de argumentos, ao invés de um número váriavel de argumentos.

Parâmetros

stream

format

A string de formato é composta de zero ou mais diretivas: caracteres comuns (excluindo %) que são copiados diretamente para o resultado e especificações de conversão, cada uma das quais resulta na busca de seu próprio parâmetro.

Uma especificação de conversão segue este protótipo: %[argnum$][flags][width][.precision]especificador.

Argnum

Um número inteiro seguido por um cifrão $, para especificar qual o número de argumento a tratar na conversão.

Flags
Flag | Descrição
- Justificar à esquerda dentro da largura de campo especificada; A justificação à direita é o padrão.
+ Prefixa números positivos com um sinal de mais +; Por padrão, apenas números negativos são prefixados com um sinal negativo.
(espaço) | Preenche o resultado com espaços. Este é o padrão.
0 | Preenche números com zeros apenas à esquerda. Com os especificadores s, também pode preencher com zeros à direita.
'(char) | Preenche o resultado com o caractere (char).

Width

Um número inteiro que define em quantos caracteres (mínimo) esta conversão deve resultar, ou *. Se * for usado, a largura será fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Precision

Um ponto . opcionalmente seguido por um número inteiro ou *, cujo significado depende do especificador:

  • Para os especificadores e, E, f e F: este é o número de dígitos a serem impressos após o ponto decimal (por padrão, é 6).
  • Para os especificadores g, G, h e H: este é o número máximo de dígitos significativos a serem impressos.
  • Para o especificador s: atua como um ponto de corte, definindo um limite máximo de caracteres para a string.

Nota: Se o ponto for especificado sem um valor explícito para precisão, 0 é assumido. Se * for usado, a precisão é fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Especificadores
Especificador | Descrição
% Um caractere literal de porcentagem. Nenhum argumento é necessário.
b | O argumento é tratado como um número inteiro e apresentado como um número binário.
c | O argumento é tratado como um número inteiro e apresentado como o caractere com aquele código ASCII.
d | O argumento é tratado como um número inteiro e apresentado como um número decimal (com sinal).
e | O argumento é tratado como notação científica (por exemplo, 1.2e+2).
E | Como o especificador e, mas usa letra maiúscula (por exemplo, 1.2E+2).
f | O argumento é tratado como um float e apresentado como um número de ponto flutuante (com reconhecimento da localidade).
F | O argumento é tratado como um float e apresentado como um número de ponto flutuante (sem reconhecimento da localidade).
g

Formato geral.

Deixa P igual à precisão se for diferente de zero, 6 se a precisão for omitida, ou 1 se a precisão for zero. Então, se uma conversão com estilo E tivesse um expoente de X:

Se P > X = -4, a conversão é com estilo f e precisão P - (X + 1). Caso contrário, a conversão é com estilo e e precisão P - 1.

G | Como o especificador g, mas usa E e f.
h | Como o especificador g, mas usa F. Disponível a partir do PHP 8.0.0.
H | Como o especificador g, mas usa E e F. Disponível a partir do PHP 8.0.0.
o | O argumento é tratado como um número inteiro e apresentado como um número octal.
s | O argumento é tratado e apresentado como uma string.
u | O argumento é tratado como um número inteiro e apresentado como um número decimal sem sinal.
x | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras minúsculas).
X | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras maiúsculas).

Aviso

O especificador de tipo c ignora preenchimento e largura.

Aviso

Tentar usar uma combinação dos especificadores de string e largura com conjuntos de caracteres que requerem mais de um byte por caractere pode resultar em resultados inesperados.

As variáveis serão forçadas a um tipo adequado para o especificador:

Tratamento de Tipos
Tipo | Especificadores
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valor Retornado

Retorna o tamanho da string mostrada.

Erros/Exceções

A partir do PHP 8.0.0, um erro ValueError será lançado se o número de argumentos for zero. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [width] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [precision] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ArgumentCountError será lançado quando menos argumentos do que o necessário forem fornecidos. Antes do PHP 8.0.0, false era retornado e um E_WARNING era emitido.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função não mais retorna false em caso de falha.
8.0.0 | Lança uma exceção ValueError se o número de argumentos for zero; anteriormente esta função emitia um E_WARNING.
8.0.0 | Lança uma exceção ValueError se [width] for menor que zero ou maior que PHP_INT_MAX; anteriormente esta função emitia um E_WARNING.
8.0.0 | Lança uma exceção ValueError se [precision] for menor que zero ou maior que PHP_INT_MAX; anteriormente esta função emitia um E_WARNING.
8.0.0 | Lança uma exceção ValueError quando houver menos parâmetros que os necessários; anteriormente esta função emitia um E_WARNING.

Exemplos

Exemplo #1 vfprintf(): inteiros precedidos por zero

<?php
if (!($fp = fopen('date.txt', 'w')))
return;

vfprintf($fp, "%04d-%02d-%02d", array($year, $month, $day));
// escreverá a data em formato ISP em date.txt
?>

Veja Também

  • printf() - Output a formatted string
  • sprintf() - Return a formatted string
  • fprintf() - Escreve uma string formatada para um fluxo
  • vprintf() - Output a formatted string
  • vsprintf() - Return a formatted string
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato
  • fscanf() - Interpreta a leitura de um arquivo de acordo com um formato
  • number_format() - Format a number with grouped thousands
  • date() - Formatar um timestamp Unix


Output a formatted string

  • « vfprintf
  • vsprintf »
  • PHP Manual
  • Funções de String
  • Output a formatted string

vprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

vprintf — Output a formatted string

Descrição

vprintf(string $format, array $values): int

Display array values as a formatted string according to format (which is described in the documentation for sprintf()).

Operates as printf() but accepts an array of arguments, rather than a variable number of arguments.

Parâmetros

format

A string de formato é composta de zero ou mais diretivas: caracteres comuns (excluindo %) que são copiados diretamente para o resultado e especificações de conversão, cada uma das quais resulta na busca de seu próprio parâmetro.

Uma especificação de conversão segue este protótipo: %[argnum$][flags][width][.precision]especificador.

Argnum

Um número inteiro seguido por um cifrão $, para especificar qual o número de argumento a tratar na conversão.

Flags
Flag | Descrição
- Justificar à esquerda dentro da largura de campo especificada; A justificação à direita é o padrão.
+ Prefixa números positivos com um sinal de mais +; Por padrão, apenas números negativos são prefixados com um sinal negativo.
(espaço) | Preenche o resultado com espaços. Este é o padrão.
0 | Preenche números com zeros apenas à esquerda. Com os especificadores s, também pode preencher com zeros à direita.
'(char) | Preenche o resultado com o caractere (char).

Width

Um número inteiro que define em quantos caracteres (mínimo) esta conversão deve resultar, ou *. Se * for usado, a largura será fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Precision

Um ponto . opcionalmente seguido por um número inteiro ou *, cujo significado depende do especificador:

  • Para os especificadores e, E, f e F: este é o número de dígitos a serem impressos após o ponto decimal (por padrão, é 6).
  • Para os especificadores g, G, h e H: este é o número máximo de dígitos significativos a serem impressos.
  • Para o especificador s: atua como um ponto de corte, definindo um limite máximo de caracteres para a string.

Nota: Se o ponto for especificado sem um valor explícito para precisão, 0 é assumido. Se * for usado, a precisão é fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Especificadores
Especificador | Descrição
% Um caractere literal de porcentagem. Nenhum argumento é necessário.
b | O argumento é tratado como um número inteiro e apresentado como um número binário.
c | O argumento é tratado como um número inteiro e apresentado como o caractere com aquele código ASCII.
d | O argumento é tratado como um número inteiro e apresentado como um número decimal (com sinal).
e | O argumento é tratado como notação científica (por exemplo, 1.2e+2).
E | Como o especificador e, mas usa letra maiúscula (por exemplo, 1.2E+2).
f | O argumento é tratado como um float e apresentado como um número de ponto flutuante (com reconhecimento da localidade).
F | O argumento é tratado como um float e apresentado como um número de ponto flutuante (sem reconhecimento da localidade).
g

Formato geral.

Deixa P igual à precisão se for diferente de zero, 6 se a precisão for omitida, ou 1 se a precisão for zero. Então, se uma conversão com estilo E tivesse um expoente de X:

Se P > X = -4, a conversão é com estilo f e precisão P - (X + 1). Caso contrário, a conversão é com estilo e e precisão P - 1.

G | Como o especificador g, mas usa E e f.
h | Como o especificador g, mas usa F. Disponível a partir do PHP 8.0.0.
H | Como o especificador g, mas usa E e F. Disponível a partir do PHP 8.0.0.
o | O argumento é tratado como um número inteiro e apresentado como um número octal.
s | O argumento é tratado e apresentado como uma string.
u | O argumento é tratado como um número inteiro e apresentado como um número decimal sem sinal.
x | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras minúsculas).
X | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras maiúsculas).

Aviso

O especificador de tipo c ignora preenchimento e largura.

Aviso

Tentar usar uma combinação dos especificadores de string e largura com conjuntos de caracteres que requerem mais de um byte por caractere pode resultar em resultados inesperados.

As variáveis serão forçadas a um tipo adequado para o especificador:

Tratamento de Tipos
Tipo | Especificadores
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valor Retornado

Returns the length of the outputted string.

Erros/Exceções

A partir do PHP 8.0.0, um erro ValueError será lançado se o número de argumentos for zero. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [width] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [precision] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ArgumentCountError será lançado quando menos argumentos do que o necessário forem fornecidos. Antes do PHP 8.0.0, false era retornado e um E_WARNING era emitido.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função não mais retorna false em caso de falha.
8.0.0 | Lança uma exceção ValueError se o número de argumentos for zero; anteriormente esta função emitia um E_WARNING.
8.0.0 | Lança uma exceção ValueError se [width] for menor que zero ou maior que PHP_INT_MAX; anteriormente esta função emitia um E_WARNING.
8.0.0 | Lança uma exceção ValueError se [precision] for menor que zero ou maior que PHP_INT_MAX; anteriormente esta função emitia um E_WARNING.
8.0.0 | Lança uma exceção ValueError quando houver menos parâmetros que os necessários; anteriormente esta função emitia um E_WARNING.

Exemplos

Exemplo #1 vprintf(): zero-padded integers

<?php
vprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>

O exemplo acima produzirá:

1988-08-01

Veja Também

  • printf() - Output a formatted string
  • sprintf() - Return a formatted string
  • fprintf() - Escreve uma string formatada para um fluxo
  • vsprintf() - Return a formatted string
  • vfprintf() - Escreve uma string formatada para um fluxo
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato
  • fscanf() - Interpreta a leitura de um arquivo de acordo com um formato
  • number_format() - Format a number with grouped thousands
  • date() - Formatar um timestamp Unix


Return a formatted string

  • « vprintf
  • wordwrap »
  • PHP Manual
  • Funções de String
  • Return a formatted string

vsprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

vsprintf — Return a formatted string

Descrição

vsprintf(string $format, array $values): string

Operates as sprintf() but accepts an array of arguments, rather than a variable number of arguments.

Parâmetros

format

A string de formato é composta de zero ou mais diretivas: caracteres comuns (excluindo %) que são copiados diretamente para o resultado e especificações de conversão, cada uma das quais resulta na busca de seu próprio parâmetro.

Uma especificação de conversão segue este protótipo: %[argnum$][flags][width][.precision]especificador.

Argnum

Um número inteiro seguido por um cifrão $, para especificar qual o número de argumento a tratar na conversão.

Flags
Flag | Descrição
- Justificar à esquerda dentro da largura de campo especificada; A justificação à direita é o padrão.
+ Prefixa números positivos com um sinal de mais +; Por padrão, apenas números negativos são prefixados com um sinal negativo.
(espaço) | Preenche o resultado com espaços. Este é o padrão.
0 | Preenche números com zeros apenas à esquerda. Com os especificadores s, também pode preencher com zeros à direita.
'(char) | Preenche o resultado com o caractere (char).

Width

Um número inteiro que define em quantos caracteres (mínimo) esta conversão deve resultar, ou *. Se * for usado, a largura será fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Precision

Um ponto . opcionalmente seguido por um número inteiro ou *, cujo significado depende do especificador:

  • Para os especificadores e, E, f e F: este é o número de dígitos a serem impressos após o ponto decimal (por padrão, é 6).
  • Para os especificadores g, G, h e H: este é o número máximo de dígitos significativos a serem impressos.
  • Para o especificador s: atua como um ponto de corte, definindo um limite máximo de caracteres para a string.

Nota: Se o ponto for especificado sem um valor explícito para precisão, 0 é assumido. Se * for usado, a precisão é fornecida como um valor inteiro adicional precedendo aquele formatado pelo especificador.

Especificadores
Especificador | Descrição
% Um caractere literal de porcentagem. Nenhum argumento é necessário.
b | O argumento é tratado como um número inteiro e apresentado como um número binário.
c | O argumento é tratado como um número inteiro e apresentado como o caractere com aquele código ASCII.
d | O argumento é tratado como um número inteiro e apresentado como um número decimal (com sinal).
e | O argumento é tratado como notação científica (por exemplo, 1.2e+2).
E | Como o especificador e, mas usa letra maiúscula (por exemplo, 1.2E+2).
f | O argumento é tratado como um float e apresentado como um número de ponto flutuante (com reconhecimento da localidade).
F | O argumento é tratado como um float e apresentado como um número de ponto flutuante (sem reconhecimento da localidade).
g

Formato geral.

Deixa P igual à precisão se for diferente de zero, 6 se a precisão for omitida, ou 1 se a precisão for zero. Então, se uma conversão com estilo E tivesse um expoente de X:

Se P > X = -4, a conversão é com estilo f e precisão P - (X + 1). Caso contrário, a conversão é com estilo e e precisão P - 1.

G | Como o especificador g, mas usa E e f.
h | Como o especificador g, mas usa F. Disponível a partir do PHP 8.0.0.
H | Como o especificador g, mas usa E e F. Disponível a partir do PHP 8.0.0.
o | O argumento é tratado como um número inteiro e apresentado como um número octal.
s | O argumento é tratado e apresentado como uma string.
u | O argumento é tratado como um número inteiro e apresentado como um número decimal sem sinal.
x | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras minúsculas).
X | O argumento é tratado como um número inteiro e apresentado como um número hexadecimal (com letras maiúsculas).

Aviso

O especificador de tipo c ignora preenchimento e largura.

Aviso

Tentar usar uma combinação dos especificadores de string e largura com conjuntos de caracteres que requerem mais de um byte por caractere pode resultar em resultados inesperados.

As variáveis serão forçadas a um tipo adequado para o especificador:

Tratamento de Tipos
Tipo | Especificadores
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valor Retornado

Return array values as a formatted string according to format.

Erros/Exceções

A partir do PHP 8.0.0, um erro ValueError será lançado se o número de argumentos for zero. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [width] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ValueError será lançado se [precision] for menor que zero ou maior que PHP_INT_MAX. Antes do PHP 8.0.0, um E_WARNING era emitido.

A partir do PHP 8.0.0, um erro ArgumentCountError será lançado quando menos argumentos do que o necessário forem fornecidos. Antes do PHP 8.0.0, false era retornado e um E_WARNING era emitido.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função não mais retorna false em caso de falha.
8.0.0 | Lança uma exceção ValueError se o número de argumentos for zero; anteriormente esta função emitia um E_WARNING.
8.0.0 | Lança uma exceção ValueError se [width] for menor que zero ou maior que PHP_INT_MAX; anteriormente esta função emitia um E_WARNING.
8.0.0 | Lança uma exceção ValueError se [precision] for menor que zero ou maior que PHP_INT_MAX; anteriormente esta função emitia um E_WARNING.
8.0.0 | Lança uma exceção ValueError quando houver menos parâmetros que os necessários; anteriormente esta função emitia um E_WARNING.

Exemplos

Exemplo #1 vsprintf(): zero-padded integers

<?php
print vsprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>

O exemplo acima produzirá:

1988-08-01

Veja Também

  • printf() - Output a formatted string
  • sprintf() - Return a formatted string
  • fprintf() - Escreve uma string formatada para um fluxo
  • vprintf() - Output a formatted string
  • vfprintf() - Escreve uma string formatada para um fluxo
  • sscanf() - Interpreta a entrada de uma string de acordo com um formato
  • fscanf() - Interpreta a leitura de um arquivo de acordo com um formato
  • number_format() - Format a number with grouped thousands
  • date() - Formatar um timestamp Unix


Quebra uma string em um dado número de caracteres

  • « vsprintf
  • Registro de Alterações »
  • PHP Manual
  • Funções de String
  • Quebra uma string em um dado número de caracteres

wordwrap

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

wordwrap — Quebra uma string em um dado número de caracteres

Descrição

wordwrap(
string $string,
int $width = 75,
string $break = "\n",
bool $cut_long_words = false
): string

Quebra uma string em um dado número de caracteres usando um caractere de quebra de string.

Parâmetros

string

A string de entrada.

width

O número de caracteres nos quais a string será quebrada.

break

A linha é quebrada usando o parâmetro opcional break.

cut_long_words

Se cut_long_words for definido para true, a string é sempre quebrada na largura especificada em width ou antes. Então se existir uma palavra longa que a largura informada, ela será quebrada. (Veja o segundo exemplo). Quando false, a função não quebra a palavra mesmo se width for menor que o comprimento dela.

Valor Retornado

Retorna a string dada quebrada na largura especificada.

Exemplos

Exemplo #1 Exemplo de wordwrap()

<?php
$text = "The quick brown fox jumped over the lazy dog.";
$newtext = wordwrap($text, 20, "<br />\n");

echo $newtext;
?>

O exemplo acima produzirá:

The quick brown fox<br />
jumped over the lazy<br />
dog.

Exemplo #2 Exemplo de wordwrap()

<?php
$text = "A very long woooooooooooord.";
$newtext = wordwrap($text, 8, "\n", true);

echo "$newtext\n";
?>

O exemplo acima produzirá:

A very
long
wooooooo
ooooord.

Exemplo #3 Exemplo de wordwrap()

<?php
$text = "A very long woooooooooooooooooord. and something";
$newtext = wordwrap($text, 8, "\n", false);

echo "$newtext\n";
?>

O exemplo acima produzirá:

A very
long
woooooooooooooooooord.
and
something

Veja Também

  • nl2br() - Inserts HTML line breaks before all newlines in a string
  • chunk_split() - Divide uma string em pedaços menores


Extensões Relacionadas a Variáveis e Tipos

  • Arrays
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Ordenando Arrays
    • Funções para Array
  • Classes/Objetos — Informação de Classe/Objeto
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções para Classes/Objetos
  • Ctype — Verificação de tipo de caractere
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções da Ctype
  • Filter — Filtragem de dados
    • Introdução
    • Instalação/Configuração
    • Tipos de filtros
    • Constantes pré-definidas
    • Exemplos
    • Funções da Filter
  • Gerenciamento de funções
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções para Manuseamento de Funções
  • Quickhash
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • QuickHashIntSet — The QuickHashIntSet class
    • QuickHashIntHash — The QuickHashIntHash class
    • QuickHashStringIntHash — The QuickHashStringIntHash class
    • QuickHashIntStringHash — The QuickHashIntStringHash class
  • Reflexão
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Extendendo
    • Reflection — Classe Reflection
    • ReflectionClass — Classe ReflectionClass
    • ReflectionClassConstant — A classe ReflectionClassConstant
    • ReflectionEnum — A classe ReflectionEnum
    • ReflectionEnumUnitCase — A classe ReflectionEnumUnitCase
    • ReflectionEnumBackedCase — A classe ReflectionEnumBackedCase
    • ReflectionZendExtension — A classe ReflectionZendExtension
    • ReflectionExtension — Classe ReflectionExtension
    • ReflectionFunction — Classe ReflectionFunction
    • ReflectionFunctionAbstract — A classe ReflectionFunctionAbstract
    • ReflectionMethod — A classe ReflectionMethod
    • ReflectionNamedType — A classe ReflectionNamedType
    • ReflectionObject — A classe ReflectionObject
    • ReflectionParameter — A classe ReflectionParameter
    • ReflectionProperty — A classe ReflectionProperty
    • ReflectionType — A classe ReflectionType
    • ReflectionUnionType — A classe ReflectionUnionType
    • ReflectionGenerator — A classe ReflectionGenerator
    • ReflectionFiber — A classe ReflectionFiber
    • ReflectionIntersectionType — A classe ReflectionIntersectionType
    • ReflectionReference — A classe ReflectionReference
    • ReflectionAttribute — A classe ReflectionAttribute
    • Reflector — A interface Reflector
    • ReflectionException — Classe ReflectionException
  • Manipulação de variável
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções para Manipulação de variáveis


Arrays

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Ordenando Arrays
  • Funções para Array
    • array_change_key_case — Modifica a caixa de todas as chaves em um array
    • array_chunk — Divide um array em pedaços
    • array_column — Retorna os valores de uma coluna do array informado
    • array_combine — Cria um array usando um array para chaves e outro para valores
    • array_count_values — Conta as ocorrências de cada valor distinto em um array
    • array_diff_assoc — Computa a diferença entre arrays com checagem adicional de índice
    • array_diff_key — Computa a diferença entre arrays usando as chaves na comparação
    • array_diff_uassoc — Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
    • array_diff_ukey — Computa a diferença entre arrays usando uma função callback na comparação de chaves
    • array_diff — Computa as diferenças entre arrays
    • array_fill_keys — Preenche um array com valores, especificando chaves
    • array_fill — Preenche um array com valores
    • array_filter — Filtra elementos de um array utilizando uma função callback
    • array_flip — Permuta todas as chaves e seus valores associados em um array
    • array_intersect_assoc — Computa a interseção de arrays com uma adicional verificação de índice
    • array_intersect_key — Calcula a interseção de arrays, comparando pelas chaves
    • array_intersect_uassoc — Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
    • array_intersect_ukey — Computa a interseção de arrays usando uma função de callback nas chaves para comparação
    • array_intersect — Calcula a interseção entre arrays
    • array_is_list — Verifica se um array é uma lista
    • array_key_exists — Verifica se uma chave ou índice existe em um array
    • array_key_first — Obtém a primeira chave de um array
    • array_key_last — Obtém a última chave de um array
    • array_keys — Retorna todas as chaves ou uma parte das chaves de um array
    • array_map — Aplica uma função em todos os elementos dos arrays dados
    • array_merge_recursive — Mescla um ou mais arrays recursivamente
    • array_merge — Combina um ou mais arrays
    • array_multisort — Ordena múltiplos arrays ou arrays multidimensionais
    • array_pad — Expande um array para um certo comprimento utilizando um determinado valor
    • array_pop — Extrai um elemento do final do array
    • array_product — Calcula o produto dos valores de um array
    • array_push — Adiciona um ou mais elementos no final de um array
    • array_rand — Escolhe uma ou mais chaves aleatórias de um array
    • array_reduce — Reduz um array para um único valor através de um processo iterativo via callback
    • array_replace_recursive — Substitui elementos de arrays passado no primeiro array recursivamente
    • array_replace — Substitui elementos de arrays passados no primeiro array
    • array_reverse — Retorna um array com os elementos na ordem inversa
    • array_search — Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado
    • array_shift — Retira o primeiro elemento de um array
    • array_slice — Extrai uma parcela de um array
    • array_splice — Remove uma parte array e a substitui por outra coisa
    • array_sum — Calcula a soma dos elementos de um array
    • array_udiff_assoc — Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
    • array_udiff_uassoc — Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
    • array_udiff — Computa a diferença de arrays usando uma função de callback para comparação dos dados
    • array_uintersect_assoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
    • array_uintersect_uassoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas
    • array_uintersect — Computa a interseção de array, comparando dados com uma função callback
    • array_unique — Remove os valores duplicados de um array
    • array_unshift — Adiciona um ou mais elementos no início de um array
    • array_values — Retorna todos os valores de um array
    • array_walk_recursive — Aplica um função do usuário recursivamente para cada membro de um array
    • array_walk — Aplica uma determinada função em cada elemento de um array
    • array — Cria um array
    • arsort — Ordena um array em ordem descrescente e mantém a associação de índices
    • asort — Ordena um array em ordem crescente e mantém a associação de índices
    • compact — Cria um array contendo variáveis e seus valores
    • count — Conta todos os elementos de um array ou de um objeto Countable
    • current — Retorna o elemento atual em um array
    • each — Retorna o par atual de chave e valor de um array e avança o seu cursor
    • end — Define o ponteiro interno de um array para seu último elemento
    • extract — Importa variáveis para a tabela de símbolos a partir de um array
    • in_array — Checa se um valor existe em um array
    • key_exists — Sinônimo de array_key_exists
    • key — Retorna uma chave de um array
    • krsort — Ordena um array pelas chaves em ordem descrescente
    • ksort — Ordena um array pelas chaves em ordem crescente
    • list — Cria variáveis como se fossem arrays
    • natcasesort — Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas
    • natsort — Ordena um array utilizando o algoritmo de "ordem natural"
    • next — Avança o ponteiro interno de um array
    • pos — Sinônimo de current
    • prev — Retrocede o ponteiro interno de um array
    • range — Cria um array contendo uma faixa de elementos
    • reset — Faz o ponteiro interno de um array apontar para o seu primeiro elemento
    • rsort — Ordena um array em ordem descrescente
    • shuffle — Embaralha um array
    • sizeof — Sinônimo de count
    • sort — Ordena um array em ordem ascendente
    • uasort — Ordena um array com uma função de comparação definida pelo usuário e mantém associações de índices
    • uksort — Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.
    • usort — Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário


Introdução

Estas funções permitem interagir e manipular arrays de várias formas. Arrays são essenciais para armazenar, gerenciar e operar sobre conjuntos de variáveis.

Arrays simples e multidimensionais são suportados e podem ser criados pelo usuário ou por outras funções. Existem funções específicas de manipulação de banco de dados para preencher arrays a partir de consultas a banco de dados, e diversas funções retornam arrays.

Consulte a seção Arrays do manual para uma explicação detalhada sobre como arrays são implementados e usados no PHP. Veja também Operadores de array para outras maneiras de manipular os arrays.


Constantes pré-definidas

As constantes abaixo estão sempre disponíveis como parte do núcleo do PHP.

CASE_LOWER (int)
CASE_LOWER é utilizado com a função array_change_key_case() para converter chaves de arrays para minúsculo. É o valor padrão utilizado na função array_change_key_case(). A partir do PHP 8.2.0, somente caracteres ASCII serão convertidos.
CASE_UPPER (int)
CASE_UPPER é utilizado com a função array_change_key_case() para converter chaves de arrays para maiúsculo. A partir do PHP 8.2.0, somente caracteres ASCII serão convertidos.

Sinais de ordenação:

SORT_ASC (int)
SORT_ASC é utilizado com array_multisort() para ordenar em ordem crescente.
SORT_DESC (int)
SORT_DESC é utilizado com array_multisort() para ordenar em ordem decrescente.

Sinais de tipos de ordenação: utilizado por várias funções de ordenação

SORT_REGULAR (int)
SORT_REGULAR é utilizado para comparar itens normalmente.
SORT_NUMERIC (int)
SORT_NUMERIC é utilizado para comparar itens numericamente.
SORT_STRING (int)
SORT_STRING é utilizado para comparar itens como strings.
SORT_LOCALE_STRING (int)
SORT_LOCALE_STRING é utilizado para comparar itens como strings, baseado no local atual.
SORT_NATURAL (int)
SORT_NATURAL é utilizado para comparar itens como strings utilizando a "ordenação natural", como a função natsort().
SORT_FLAG_CASE (int)
SORT_FLAG_CASE pode ser combinado (operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings de forma case-insensitive. A partir do PHP 8.2.0, somente a redução de todas as letras ASCII a maiúsculas ou minúsculas será feita.

Sinais de filtro:

ARRAY_FILTER_USE_KEY (int)
ARRAY_FILTER_USE_KEY é utilizado com a função array_filter() para passar cada chave como primeiro argumento de uma função callback informada.
ARRAY_FILTER_USE_BOTH (int)
ARRAY_FILTER_USE_BOTH é utilizado com a função array_filter() para passar tanto chave, quanto valor, para a função callback informada.

COUNT_NORMAL (int)
COUNT_RECURSIVE (int)
EXTR_OVERWRITE (int)
EXTR_SKIP (int)
EXTR_PREFIX_SAME (int)
EXTR_PREFIX_ALL (int)
EXTR_PREFIX_INVALID (int)
EXTR_PREFIX_IF_EXISTS (int)
EXTR_IF_EXISTS (int)
EXTR_REFS (int)


Ordenando Arrays

O PHP tem muitas funções para lidar com ordenação de arrays, e esse documento existe para ajudar a você lidar com elas.

As principais diferenças são:

  • Algumas ordenam com base nas chaves do array, enquanto outras pelos valores: $array['chave'] = 'valor';
  • A correlação entre as chaves e os valores do array não são mantidas depois da ordenação, o que pode fazer com que as chaves sejam resetadas numericamente (0, 1, 2, ...)
  • A ordem da ordenação: alfabética, ascendente (menor para maior), descendente (maior para menor), natural, aleatório, ou definida pelo usuário
  • Nota: Todas essas funções agem diretamente na própria variável do array, ao invés de retornar um novo array ordenado
  • Se qualquer uma dessas funções avaliar dois membros como iguais então eles retém sua ordem original. Antes do PHP 8.2.0, sua ordem eram indefinida (a ordenação não é estável).

Atributos das funções de ordenação
Nome da função | Ordena por | Mantém a associação de chaves | Ordem da ordenação | Funções relacionadas
array_multisort() | valor | string chaves sim, int chaves não | primeiro array ou opções de ordenação | array_walk()
asort() | valor | sim | ascendente | arsort()
arsort() | valor | sim | descendente | asort()
krsort() | chave | sim | descendente | ksort()
ksort() | chave | sim | ascendente | krsort()
natcasesort() | valor | sim | natural, não sensível a maiúsculas | natsort()
natsort() | valor | sim | natural | natcasesort()
rsort() | valor | não | descendente | sort()
shuffle() | valor | não | random | array_rand()
sort() | valor | não | menor para maior | rsort()
uasort() | valor | sim | definido pelo usuário | uksort()
uksort() | chave | sim | definido pelo usuário | uasort()
usort() | valor | não | definido pelo usuário | uasort()


Funções para Array

Veja Também

Veja também is_array(), explode(),
implode(),
preg_split(), e unset().

Índice

  • array_change_key_case — Modifica a caixa de todas as chaves em um array
  • array_chunk — Divide um array em pedaços
  • array_column — Retorna os valores de uma coluna do array informado
  • array_combine — Cria um array usando um array para chaves e outro para valores
  • array_count_values — Conta as ocorrências de cada valor distinto em um array
  • array_diff_assoc — Computa a diferença entre arrays com checagem adicional de índice
  • array_diff_key — Computa a diferença entre arrays usando as chaves na comparação
  • array_diff_uassoc — Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
  • array_diff_ukey — Computa a diferença entre arrays usando uma função callback na comparação de chaves
  • array_diff — Computa as diferenças entre arrays
  • array_fill_keys — Preenche um array com valores, especificando chaves
  • array_fill — Preenche um array com valores
  • array_filter — Filtra elementos de um array utilizando uma função callback
  • array_flip — Permuta todas as chaves e seus valores associados em um array
  • array_intersect_assoc — Computa a interseção de arrays com uma adicional verificação de índice
  • array_intersect_key — Calcula a interseção de arrays, comparando pelas chaves
  • array_intersect_uassoc — Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
  • array_intersect_ukey — Computa a interseção de arrays usando uma função de callback nas chaves para comparação
  • array_intersect — Calcula a interseção entre arrays
  • array_is_list — Verifica se um array é uma lista
  • array_key_exists — Verifica se uma chave ou índice existe em um array
  • array_key_first — Obtém a primeira chave de um array
  • array_key_last — Obtém a última chave de um array
  • array_keys — Retorna todas as chaves ou uma parte das chaves de um array
  • array_map — Aplica uma função em todos os elementos dos arrays dados
  • array_merge_recursive — Mescla um ou mais arrays recursivamente
  • array_merge — Combina um ou mais arrays
  • array_multisort — Ordena múltiplos arrays ou arrays multidimensionais
  • array_pad — Expande um array para um certo comprimento utilizando um determinado valor
  • array_pop — Extrai um elemento do final do array
  • array_product — Calcula o produto dos valores de um array
  • array_push — Adiciona um ou mais elementos no final de um array
  • array_rand — Escolhe uma ou mais chaves aleatórias de um array
  • array_reduce — Reduz um array para um único valor através de um processo iterativo via callback
  • array_replace_recursive — Substitui elementos de arrays passado no primeiro array recursivamente
  • array_replace — Substitui elementos de arrays passados no primeiro array
  • array_reverse — Retorna um array com os elementos na ordem inversa
  • array_search — Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado
  • array_shift — Retira o primeiro elemento de um array
  • array_slice — Extrai uma parcela de um array
  • array_splice — Remove uma parte array e a substitui por outra coisa
  • array_sum — Calcula a soma dos elementos de um array
  • array_udiff_assoc — Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
  • array_udiff_uassoc — Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
  • array_udiff — Computa a diferença de arrays usando uma função de callback para comparação dos dados
  • array_uintersect_assoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
  • array_uintersect_uassoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas
  • array_uintersect — Computa a interseção de array, comparando dados com uma função callback
  • array_unique — Remove os valores duplicados de um array
  • array_unshift — Adiciona um ou mais elementos no início de um array
  • array_values — Retorna todos os valores de um array
  • array_walk_recursive — Aplica um função do usuário recursivamente para cada membro de um array
  • array_walk — Aplica uma determinada função em cada elemento de um array
  • array — Cria um array
  • arsort — Ordena um array em ordem descrescente e mantém a associação de índices
  • asort — Ordena um array em ordem crescente e mantém a associação de índices
  • compact — Cria um array contendo variáveis e seus valores
  • count — Conta todos os elementos de um array ou de um objeto Countable
  • current — Retorna o elemento atual em um array
  • each — Retorna o par atual de chave e valor de um array e avança o seu cursor
  • end — Define o ponteiro interno de um array para seu último elemento
  • extract — Importa variáveis para a tabela de símbolos a partir de um array
  • in_array — Checa se um valor existe em um array
  • key_exists — Sinônimo de array_key_exists
  • key — Retorna uma chave de um array
  • krsort — Ordena um array pelas chaves em ordem descrescente
  • ksort — Ordena um array pelas chaves em ordem crescente
  • list — Cria variáveis como se fossem arrays
  • natcasesort — Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas
  • natsort — Ordena um array utilizando o algoritmo de "ordem natural"
  • next — Avança o ponteiro interno de um array
  • pos — Sinônimo de current
  • prev — Retrocede o ponteiro interno de um array
  • range — Cria um array contendo uma faixa de elementos
  • reset — Faz o ponteiro interno de um array apontar para o seu primeiro elemento
  • rsort — Ordena um array em ordem descrescente
  • shuffle — Embaralha um array
  • sizeof — Sinônimo de count
  • sort — Ordena um array em ordem ascendente
  • uasort — Ordena um array com uma função de comparação definida pelo usuário e mantém associações de índices
  • uksort — Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.
  • usort — Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário


Modifica a caixa de todas as chaves em um array

  • « Funções para Array
  • array_chunk »
  • PHP Manual
  • Funções para Array
  • Modifica a caixa de todas as chaves em um array

array_change_key_case

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

array_change_key_case — Modifica a caixa de todas as chaves em um array

Descrição

array_change_key_case(array $array, int $case = CASE_LOWER): array

Retorna um array com todas as chaves de array em minúsculo ou maiúsculo. Índices numéricos são mantidos como são.

Parâmetros

array

O array a ser modificado

case

Tanto CASE_UPPER quanto CASE_LOWER (padrão)

Valor Retornado

Retorna um array com as chaves em minúsculo ou maiúsculo.

Exemplos

Exemplo #1 Exemplo da função array_change_key_case()

<?php
$input_array = array("primeiRo" => 1, "segunDo" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER);
?>

O exemplo acima produzirá:

Array
(
    [PRIMEIRO] => 1
    [SEGUNDO] => 2
)

Notas

Nota:

Se uma matriz tem índices que serão os mesmos após a utilização desta função (ex: "chaVE" e "CHave"), o valor que estiver ao final do array irá sobrescrever os outros índices.


Divide um array em pedaços

  • « array_change_key_case
  • array_column »
  • PHP Manual
  • Funções para Array
  • Divide um array em pedaços

array_chunk

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

array_chunk — Divide um array em pedaços

Descrição

array_chunk(array $array, int $length, bool $preserve_keys = false): array

Divide um array em length pedaços. O último pedaço pode conter menos elementos que o parâmetro length.

Parâmetros

array

O array.

length

O tamanho de cada pedaço

preserve_keys

Quando definido para true, chaves serão preservadas. O padrão é false que reindexará os pedaços numericamente

Valor Retornado

Retorna um array multidimensional numericamente indexado, iniciando com 0, com cada dimensão contendo length elementos.

Erros/Exceções

Se length é menor que 1 ValueError será disparado.

Registro de Alterações

Versão | Descrição
8.0.0 | Se length é menor que 1, ValueError será disparado agora; antes, um erro de nível E_WARNING será disparado ao invez de a função retornará null.

Exemplos

Exemplo #1 Exemplo da função array_chunk()

<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, true));
?>

O exemplo acima produzirá:

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
        )

)

Veja Também

  • array_slice() - Extrai uma parcela de um array


Retorna os valores de uma coluna do array informado

  • « array_chunk
  • array_combine »
  • PHP Manual
  • Funções para Array
  • Retorna os valores de uma coluna do array informado

array_column

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

array_column — Retorna os valores de uma coluna do array informado

Descrição

array_column(array $array, int|string|null $column_key, int|string|null $index_key = null): array

A função array_column() retorna os valores de uma coluna do array informado, indentificada pelo column_key. Opcionalmente, uma index_key pode ser informada para indexar os valores do array retornado pelos valores da coluna index_key do array.

Parâmetros

array

Um array multidimensional ou um array de objetos que se deseja extrair os valores da coluna. Se um array de objetos for fornecido, propriedades públicas podem ser extraídas diretamente. Para extrair propriedades protegidas e privadas, a classe deve implementar ambos os métodos mágicos __get() e __isset().

column_key

A coluna de valores a ser retornada. Este valor pode ser uma chave inteira da coluna que se deseja recuperar, ou uma uma string com o nome da chave de um array associativo ou nome de propriedade. Também pode ser null para retornar arrays completos ou objetos (isso é útil com o parâmetro index_key, para reindexar o array).

index_key

A coluna a ser utilizada como índices/chaves do array retornado. Este valor pode ser uma chave inteira da coluna, ou uma uma string com o nome da chave. O valor é convertido como de costume para chaves de array (no entanto, antes do PHP 8.0.0, objetos que suportam conversão para string também eram permitidos).

Valor Retornado

Retorna um array com os valores que representam uma coluna do array informado.

Registro de Alterações

Versão | Descrição
8.0.0 | Objetos em colunas indicadas pelo parâmetro index_key não serão mais convertidos em string e agora irão lançar um TypeError em vez disso.

Exemplos

Exemplo #1 Obtém a coluna first_name dos registros

<?php
// Array representing a possible record set returned from a database
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
),
array(
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
)
);

$first_names = array_column($records, 'first_name');
print_r($first_names);
?>

O exemplo acima produzirá:

Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

Exemplo #2 Obtém a coluna last_name dos registros, indexados pela coluna "id"

<?php
// Using the $records array from Example #1
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>

O exemplo acima produzirá:

Array
(
    [2135] => Doe
    [3245] => Smith
    [5342] => Jones
    [5623] => Doe
)

Exemplo #3 Obtém a coluna de nomes de usuários da propriedade pública "username" de um objeto

<?php

class User
{
public $username;

public function __construct(string $username)
{
$this->username = $username;
}
}

$users = [
new User('user 1'),
new User('user 2'),
new User('user 3'),
];

print_r(array_column($users, 'username'));
?>

O exemplo acima produzirá:

Array
(
    [0] => user 1
    [1] => user 2
    [2] => user 3
)

Exemplo #4 Obtém a coluna de nomes da propriedade privada "name" de um objeto utilizando o método mágico __get().

<?php

class Person
{
private $name;

public function __construct(string $name)
{
$this->name = $name;
}

public function __get($prop)
{
return $this->$prop;
}

public function __isset($prop) : bool
{
return isset($this->$prop);
}
}

$people = [
new Person('Fred'),
new Person('Jane'),
new Person('John'),
];

print_r(array_column($people, 'name'));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fred
    [1] => Jane
    [2] => John
)
Se o método __isset() não for fornecido, um array vazio será retornado.


Cria um array usando um array para chaves e outro para valores

  • « array_column
  • array_count_values »
  • PHP Manual
  • Funções para Array
  • Cria um array usando um array para chaves e outro para valores

array_combine

(PHP 5, PHP 7, PHP 8)

array_combine — Cria um array usando um array para chaves e outro para valores

Descrição

array_combine(array $keys, array $values): array

Cria um array usando os valores do array keys como chaves e os valores do array values como valores correspondentes.

Parâmetros

keys

Array a ser usado como chaves. Valores ilegais para chave serão convertidos para string.

values

Array a ser usado como valores

Valor Retornado

Retorna o array combinado.

Erros/Exceções

A partir do PHP 8.0.0, a ValueError é disparado se o número de elementos em keys e values não correspondem. Antes do PHP 8.0.0, um E_WARNING será disparado no lugar.

Registro de Alterações

Versão | Descrição
8.0.0 | array_combine() será agora dispara ValueError se o numero de elementos para cada array não é igual; antes esta função retorna false no lugar.

Exemplos

Exemplo #1 Um simples exemplo usando a função array_combine()

<?php
$a = array('verde', 'vermelho', 'amarelo');
$b = array('abacate', 'maçã', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

O exemplo acima produzirá:

Array
(
    [verde] => abacate
    [vermelho] => maçã
    [amarelo] => banana
)

Veja Também

  • array_merge() - Combina um ou mais arrays
  • array_walk() - Aplica uma determinada função em cada elemento de um array
  • array_values() - Retorna todos os valores de um array
  • array_map() - Aplica uma função em todos os elementos dos arrays dados


Conta as ocorrências de cada valor distinto em um array

  • « array_combine
  • array_diff_assoc »
  • PHP Manual
  • Funções para Array
  • Conta as ocorrências de cada valor distinto em um array

array_count_values

(PHP 4, PHP 5, PHP 7, PHP 8)

array_count_values — Conta as ocorrências de cada valor distinto em um array

Descrição

array_count_values(array $array): array

A função array_count_values() retorna um array utilizando os valores do parâmetro array (que devem ser ints ou strings) como chaves e suas respectivas frequências em array como valores.

Parâmetros

array

O array de valores para contar

Valor Retornado

Retorna um array associativo de valores de array como chaves e suas quantias como valor.

Erros/Exceções

Dispara E_WARNING para cada elemento que não for string ou int.

Exemplos

Exemplo #1 Exemplo da array_count_values()

<?php
$array = array(1, "ola", 1, "mundo", "ola");
array_count_values($array);
?>

O exemplo acima produzirá:

Array
(
    [1] => 2
    [ola] => 2
    [mundo] => 1
)

Veja Também

  • count() - Conta todos os elementos de um array ou de um objeto Countable
  • array_unique() - Remove os valores duplicados de um array
  • array_values() - Retorna todos os valores de um array
  • count_chars() - Return information about characters used in a string


Computa a diferença entre arrays com checagem adicional de índice

  • « array_count_values
  • array_diff_key »
  • PHP Manual
  • Funções para Array
  • Computa a diferença entre arrays com checagem adicional de índice

array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

array_diff_assoc — Computa a diferença entre arrays com checagem adicional de índice

Descrição

array_diff_assoc(array $array, array ...$arrays): array

Compara array com arrays e retorna a diferença. Ao contrário de array_diff(), as chaves dos arrays também são usadas na comparação.

Parâmetros

array

O array a ser comparado

arrays

Arrays para comparar

Valor Retornado

Retorna um array contendo todos os valores do array que não estão presentes em qualquer um dos outros arrays.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora pode ser chamada com apenas um parâmetro. Anteriormente, pelo menos dois parâmetros eram necessários.

Exemplos

Exemplo #1 Exemplo de array_diff_assoc()

Neste exemplo o par "a" => "verde" está presente em ambos os arrays e por isso não está na saída da função. Por outro lado, o par 0 => "vermelho" está na saída porque a chave de "vermelho" é automaticamente atribuído para 0 no primeiro array, enquanto é atribuído para 1 no segundo array já que a chave 0 já foi tomada por amarelo.

<?php
$array1 = array("a" => "verde", "b" => "marrom", "c" => "azul", "vermelho");
$array2 = array("a" => "verde", "amarelo", "vermelho");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

O exemplo acima produzirá:

Array
(
    [b] => marrom
    [c] => azul
    [0] => vermelho
)

Exemplo #2 Exemplo da função array_diff_assoc()

Dois valores dos pares chave => valor são considerados iguais somente se (string) $elem1 === (string) $elem2 . Em outras palavras, uma checagem estrita de string é feita para que representações de string sejam as mesmas.

<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

O exemplo acima produzirá:

Array
(
    [0] => 0
    [1] => 1
)

Notas

Nota: Esta função checa somente uma dimensão de um array n-dimensional. É possível verificar dimensões mais profundas usando, por exemplo, array_diff_assoc($array1[0], $array2[0]);.

Nota: Certifique-se de que os argumentos sejam passados na ordem correta ao comparar arrays semelhantes com mais chaves. O novo array deve ser o primeiro array da lista.

Veja Também

  • array_diff() - Computa as diferenças entre arrays
  • array_diff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
  • array_udiff_assoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
  • array_udiff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice


Computa a diferença entre arrays usando as chaves na comparação

  • « array_diff_assoc
  • array_diff_uassoc »
  • PHP Manual
  • Funções para Array
  • Computa a diferença entre arrays usando as chaves na comparação

array_diff_key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_diff_key — Computa a diferença entre arrays usando as chaves na comparação

Descrição

array_diff_key(array $array, array ...$arrays): array

Compara as chaves do array com as chaves do arrays e retorna a diferença. Esta função é similar a array_diff(), com exceção que a comparação é feita com as chaves, ao invés dos valores.

Parâmetros

array

O array a ser comparado

arrays

Arrays para comparar

Valor Retornado

Retorna um array contendo todas as entradas de array cujas chaves não estão presentes em qualquer dos outros arrays.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora pode ser chamada com apenas um parâmetro. Anteriormente, pelo menos dois parâmetros eram necessários.

Exemplos

Exemplo #1 Exemplo da função array_diff_key()

As duas chaves dos pares chave => valor são consideradas iguais somente se (string) $key1 === (string) $key2 . Em outras palavras, uma checagem de tipo estrita é feita para que representações de string sejam as mesmas.

<?php
$array1 = array('azul' => 1, 'vermelho' => 2, 'verde' => 3, 'roxo' => 4);
$array2 = array('verde' => 5, 'amarelo' => 6, 'ciano' => 8);

var_dump(array_diff_key($array1, $array2));
?>

O exemplo acima produzirá:

array(3) {
  ["azul"]=>
  int(1)
  ["vermelho"]=>
  int(2)
  ["roxo"]=>
  int(4)
}
<?php
$array1 = array('azul' => 1, 'vermelho' => 2, 'verde' => 3, 'roxo' => 4);
$array2 = array('verde' => 5, 'amarelo' => 7, 'ciano' => 8);
$array3 = array('azul' => 6, 'amarelo' => 7, 'malva' => 8);

var_dump(array_diff_key($array1, $array2, $array3));
?>

O exemplo acima produzirá:

array(2) {
  ["vermelho"]=>
  int(2)
  ["roxo"]=>
  int(4)
}

Notas

Nota:

Essa função checa somente uma dimensão de um array n-dimensional. É claro que você pode checar dimensões mais profundas usando array_diff_key($array1[0], $array2[0]);.

Veja Também

  • array_diff() - Computa as diferenças entre arrays
  • array_udiff() - Computa a diferença de arrays usando uma função de callback para comparação dos dados
  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice
  • array_diff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
  • array_udiff_assoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
  • array_udiff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
  • array_diff_ukey() - Computa a diferença entre arrays usando uma função callback na comparação de chaves
  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_intersect_uassoc() - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
  • array_intersect_key() - Calcula a interseção de arrays, comparando pelas chaves
  • array_intersect_ukey() - Computa a interseção de arrays usando uma função de callback nas chaves para comparação


Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário

  • « array_diff_key
  • array_diff_ukey »
  • PHP Manual
  • Funções para Array
  • Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário

array_diff_uassoc

(PHP 5, PHP 7, PHP 8)

array_diff_uassoc — Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário

Descrição

array_diff_uassoc(array $array, array ...$arrays, callable $key_compare_func): array

Compara array com arrays e retorna a diferença. Ao contrário de array_diff(), as chaves dos arrays são usadas na comparação.

Ao contrário de array_diff_assoc(), uma função de callback fornecida pelo usuário é usada na comparação dos índices, não uma função interna.

Parâmetros

array

O array a ser comparado

arrays

Arrays para comparar

key_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Retorna um array contendo todas as entradas de array que não estão presentes em qualquer um dos outros arrays.

Exemplos

Exemplo #1 Exemplo de array_diff_uassoc()

Neste exemplo o "a" => "verde" está presente em ambos os arrays e assim não está na saída da função. Ao contrário disso, o par 0 => "vermelho" está na saída porque a chave de "vermelho" é atribuído automaticamente como 0 no primeiro array, enquanto é atribuído em 1 no segundo array, já que a chave 0 já foi atribuída a amarelo.

<?php
function key_compare_func($a, $b)
{
return $a <=> $b;
}

$array1 = array("a" => "verde", "b" => "marrom", "c" => "azul", "vermelho");
$array2 = array("a" => "verde", "amarelo", "vermelho");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>

O exemplo acima produzirá:

Array
(
    [b] => marrom
    [c] => azul
    [0] => vermelho
)

A igualdade de 2 índices é checada pela função de callback fornecida pelo usuário.

Notas

Nota:

Esta função checa somente uma dimensão de um array n-dimensional. É possível verificar dimensões mais profundas usando, por exemplo, array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.

Veja Também

  • array_diff() - Computa as diferenças entre arrays
  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice
  • array_udiff() - Computa a diferença de arrays usando uma função de callback para comparação dos dados
  • array_udiff_assoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
  • array_udiff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_uintersect() - Computa a interseção de array, comparando dados com uma função callback
  • array_uintersect_assoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
  • array_uintersect_uassoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas


Computa a diferença entre arrays usando uma função callback na comparação de chaves

  • « array_diff_uassoc
  • array_diff »
  • PHP Manual
  • Funções para Array
  • Computa a diferença entre arrays usando uma função callback na comparação de chaves

array_diff_ukey

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_diff_ukey — Computa a diferença entre arrays usando uma função callback na comparação de chaves

Descrição

array_diff_ukey(array $array, array ...$arrays, callable $key_compare_func): array

Compara as chaves de array com as chaves de arrays e retorna a diferença. Esta função é similar a array_diff(), com exceção que a comparação é feita nas chaves ao invés dos valores.

Diferente de array_diff_key() uma função callback é fornecida e usada para comparação de índices, não função interna.

Parâmetros

array

O array a ser comparado

arrays

Arrays para comparar

key_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Retorna um array contendo todas as entradas de array que não estão presentes em nenhum outro array.

Exemplos

Exemplo #1 Exemplo da função array_diff_ukey()

<?php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}

$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);

var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>

O exemplo acima produzirá:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Notas

Nota:

Esta função somente verifica uma dimensão de um array com n-dimensões. Obviamente você pode verificar as dimensões usando array_diff_ukey($array1[0], $array2[0], 'callback_func');.

Veja Também

  • array_diff() - Computa as diferenças entre arrays
  • array_udiff() - Computa a diferença de arrays usando uma função de callback para comparação dos dados
  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice
  • array_diff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
  • array_udiff_assoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
  • array_udiff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
  • array_diff_key() - Computa a diferença entre arrays usando as chaves na comparação
  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_intersect_uassoc() - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
  • array_intersect_key() - Calcula a interseção de arrays, comparando pelas chaves
  • array_intersect_ukey() - Computa a interseção de arrays usando uma função de callback nas chaves para comparação


Computa as diferenças entre arrays

  • « array_diff_ukey
  • array_fill_keys »
  • PHP Manual
  • Funções para Array
  • Computa as diferenças entre arrays

array_diff

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_diff — Computa as diferenças entre arrays

Descrição

array_diff(array $array, array ...$arrays): array

Compara array com um ou mais arrays e retorna os valores no array que não estão presentes em nenhum dos outros arrays.

Parâmetros

array

O array a ser comparado

arrays

Arrays para comparar

Valor Retornado

Retorna um array contendo todas as entradas de array que não estão presentes em nenhum dos outros arrays. Chaves no array array são preservadas.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora pode ser chamada com apenas um parâmetro. Anteriormente, pelo menos dois parâmetros eram necessários.

Exemplos

Exemplo #1 Exemplo da função array_diff()

<?php
$array1 = array("a" => "verde", "vermelho", "azul", "vermelho");
$array2 = array("b" => "verde", "amarelo", "vermelho");
$result = array_diff($array1, $array2);

print_r($result);
?>

Multiplas ocorrências de $array1 são todas tratadas da mesma maneira. Isto irá mostrar:

Array
(
  [1] => azul
)

Exemplo #2 Exemplo de array_diff() com tipos não correspondentes

Dois elementos são considerados iguais se e somente se (string) $elem1 === (string) $elem2. Isto é, quando a representação em string é a mesma.

<?php
// Isto irá gerar uma Notícia de que um array não pode ser convertido em uma string.
$fonte = [1, 2, 3, 4];
$filtro = [3, 4, [5], 6];
$resultado = array_diff($fonte, $filtro);

// Enquanto isto não é um problema, uma vez que o objeto pode ser convertido em string.
class S {
private $v;

public function __construct(string $v) {
$this->v = $v;
}

public function __toString() {
return $this->v;
}
}

$fonte = [new S('a'), new S('b'), new S('c')];
$filtro = [new S('b'), new S('c'), new S('d')];

$resultado = array_diff($fonte, $filtro);

// $resultado agora contém uma instância de S('a');
?>

Para usar uma função de comparação alternativa, veja array_udiff().

Notas

Nota:

Esta função compara apenas uma dimensão de um array com n dimensões. Mas, obviamente, você pode comparar outras dimensões usando array_diff($array1[0], $array2[0]);.

Veja Também

  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice
  • array_udiff() - Computa a diferença de arrays usando uma função de callback para comparação dos dados
  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice


Preenche um array com valores, especificando chaves

  • « array_diff
  • array_fill »
  • PHP Manual
  • Funções para Array
  • Preenche um array com valores, especificando chaves

array_fill_keys

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

array_fill_keys — Preenche um array com valores, especificando chaves

Descrição

array_fill_keys(array $keys, mixed $value): array

Preenche um array com o valor do parâmetro value, usando os valores do array keys como chaves.

Parâmetros

keys

Array de valores que serão usados como chaves. Valores ilegais para chaves serão convertidos para string.

value

Valor para usar no preenchimento

Valor Retornado

Retorna o array preenchido

Exemplos

Exemplo #1 Exemplo da função array_fill_keys()

<?php
$keys = array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'banana');
print_r($a);
?>

O exemplo acima produzirá:

Array
(
    [foo] => banana
    [5] => banana
    [10] => banana
    [bar] => banana
)

Veja Também

  • array_fill() - Preenche um array com valores
  • array_combine() - Cria um array usando um array para chaves e outro para valores


Preenche um array com valores

  • « array_fill_keys
  • array_filter »
  • PHP Manual
  • Funções para Array
  • Preenche um array com valores

array_fill

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

array_fill — Preenche um array com valores

Descrição

array_fill(int $start_index, int $count, mixed $value): array

Preenche um array com count elementos com o valor do parâmetro value e chaves começando a partir de start_index.

Parâmetros

start_index

O primeiro índice do array retornado

Se start_index for negativo, o primeiro índice do array retornado será start_index, e os índices seguintes começarão do zero antes do PHP 8.0.0. A partir do PHP 8.0.0, chaves negativas são incrementadas normalmente (veja o exemplo).

count

Número de elementos a inserir. Deve ser maior ou igual a zero, e menor ou igual a 2147483647.

value

Valores a preencher

Valor Retornado

Retorna o array preenchido

Erros/Exceções

Lança um ValueError se count estiver fora do alcance.

Registro de Alterações

Versão | Descrição
8.0.0 | array_fill() agora lança um ValueError se count estiver fora de alance; anteriormente um E_WARNING era disparado, e a função retornava false.

Exemplos

Exemplo #1 Exemplo da função array_fill()

<?php
$a = array_fill(5, 6, 'banana');
print_r($a);
?>

O exemplo acima produzirá:

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)

Exemplo #2 Exemplo da array_fill() com um índice de início negativo

<?php
$a = array_fill(-2, 4, 'pera');
print_r($a);
?>

Saída do exemplo acima no PHP 7:

Array
(
    [-2] => pera
    [0] => pera
    [1] => pera
    [2] => pera
)

Saída do exemplo acima no PHP 8:

Array
(
    [-2] => pera
    [-1] => pera
    [0] => pera
    [1] => pera
)

Note que o índice -1 não está presente antes do PHP 8.0.0.

Notas

Veja também a seção Arrays do manual para a explicação detalhada de chaves negativas.

Veja Também

  • array_fill_keys() - Preenche um array com valores, especificando chaves
  • str_repeat() - Repete uma string
  • range() - Cria um array contendo uma faixa de elementos


Filtra elementos de um array utilizando uma função callback

  • « array_fill
  • array_flip »
  • PHP Manual
  • Funções para Array
  • Filtra elementos de um array utilizando uma função callback

array_filter

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

array_filter — Filtra elementos de um array utilizando uma função callback

Descrição

array_filter(array $array, ?callable $callback = null, int $mode = 0): array

Itera sobre cada valor de array passando-os para a função callback. Se a função callback retornar true, o valor atual de array é retornado no array resultante.

Chaves do array são preservadas,e podem resultar em lacunas se o array foi indexado. O array resultante pode ser reindexado usando a função array_values().

Parâmetros

array

O array a ser iterado

callback

A função callback a ser usada

Se nenhum callback é fornecido, todas entradas vazias do array serão removidas. Veja empty() para saber como o PHP define vazia nesse caso.

mode

Flag determinando quais argumentos são passados para callback:

  • ARRAY_FILTER_USE_KEY - passa chaves como argumentos para callback em vez de valor
  • ARRAY_FILTER_USE_BOTH - passa tanto valor quanto chave como argumento para callback em vez do valor
Padrão é 0 que em vez disso irá passar valor como o único argumento para callback.

Valor Retornado

Retorna o array filtrado.

Registro de Alterações

Versão | Descrição
8.0.0 | callback agora é anulável.
8.0.0 | Se a função callback espera que um parâmetro seja passado por referência, esta função agora emitirá um E_WARNING.

Exemplos

Exemplo #1 Exemplo da função array_filter()

<?php
function impar($var)
{
// retorna se o inteiro informado é impar
return $var & 1;
}

function par($var)
{
// retorna se o inteiro informado é par
return !($var & 1);
}

$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [6, 7, 8, 9, 10, 11, 12];

echo "Ímpares: \n";
print_r(array_filter($array1, "impar"));
echo "Pares: \n";
print_r(array_filter($array2, "par"));
?>

O exemplo acima produzirá:

Ímpares:
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Pares:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Exemplo #2 array_filter() sem callback

<?php

$entry = [
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => '',
5 => '0',
6 => 0,
];

print_r(array_filter($entry));
?>

O exemplo acima produzirá:

Array
(
    [0] => foo
    [2] => -1
}

Exemplo #3 array_filter() com mode

<?php

$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];

var_dump(array_filter($arr, function($k) {
return $k == 'b';
}, ARRAY_FILTER_USE_KEY));

var_dump(array_filter($arr, function($v, $k) {
return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
?>

O exemplo acima produzirá:

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}

Notas

Cuidado

Se o array é modificado por uma função callback (e.g. elemento adicionado, deletado ou apagado) o comportamento desta função é indefinido.

Veja Também

  • array_intersect() - Calcula a interseção entre arrays
  • array_map() - Aplica uma função em todos os elementos dos arrays dados
  • array_reduce() - Reduz um array para um único valor através de um processo iterativo via callback
  • array_walk() - Aplica uma determinada função em cada elemento de um array


Permuta todas as chaves e seus valores associados em um array

  • « array_filter
  • array_intersect_assoc »
  • PHP Manual
  • Funções para Array
  • Permuta todas as chaves e seus valores associados em um array

array_flip

(PHP 4, PHP 5, PHP 7, PHP 8)

array_flip — Permuta todas as chaves e seus valores associados em um array

Descrição

array_flip(array $array): array

array_flip() retorna um array com suas relações trocadas, ou seja, as chaves de array passam a ser os valores e os valores de array passam a ser as chaves.

Note que os valores de array devem ser chaves válidas, ou seja, eles precisam ser int ou string. Um aviso será mostrado se um valor é de um tipo inválido para chaves, e o par chave/valor em questão não será invertido.

Se um valor tem várias ocorrências, a última chave será usada como valor, e todos os outros serão perdidos.

Parâmetros

array

Um array de pares chave/valor para inverter.

Valor Retornado

Retorna o array trocado.

Exemplos

Exemplo #1 Exemplo da função array_flip()

<?php
$input = array("oranges", "apples", "pears");
$flipped = array_flip($input);

print_r($flipped);
?>

O exemplo acima produzirá:

Array
(
    [oranges] => 0
    [apples] => 1
    [pears] => 2
)

Exemplo #2 Exemplo da função array_flip(): colisão

<?php
$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);

print_r($trans);
?>

O exemplo acima produzirá:

Array
(
    [1] => b
    [2] => c
)

Veja Também

  • array_values() - Retorna todos os valores de um array
  • array_keys() - Retorna todas as chaves ou uma parte das chaves de um array
  • array_reverse() - Retorna um array com os elementos na ordem inversa


Computa a interseção de arrays com uma adicional verificação de índice

  • « array_flip
  • array_intersect_key »
  • PHP Manual
  • Funções para Array
  • Computa a interseção de arrays com uma adicional verificação de índice

array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

array_intersect_assoc — Computa a interseção de arrays com uma adicional verificação de índice

Descrição

array_intersect_assoc(array $array, array ...$arrays): array

array_intersect_assoc() retorna um array contendo todos os valores de array que estão presentes em todos os argumentos. Note que estas chaves também são usadas na comparação diferindo de array_intersect().

Parâmetros

array

O array com os valores a serem verificados.

arrays

Arrays para comparar os valores.

Valor Retornado

Retorna um array associativo contendo todos os valores em array que estão presentes em todos os argumentos.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora pode ser chamada com apenas um parâmetro. Anteriormente, pelo menos dois parâmetros eram necessários.

Exemplos

Exemplo #1 Exemplo da array_intersect_assoc()

<?php
$array1 = array("a" => "verde", "b" => "marrom", "c" => "azul", "vermelho");
$array2 = array("a" => "verde", "b" => "amarelo", "azul", "vermelho");
$result_array = array_intersect_assoc($array1, $array2);
print_r($result_array);
?>

O exemplo acima produzirá:

Array
(
    [a] => verde
)

Em nosso exemplo você pode ver que somente o par "a" => "verde" está presente em ambos array, então logo é retornado. O valor "vermelho" não é retornado porque no $array1 a chave é 0 quando a chave de "vermelho" no $array2 é 1, e a chave "b" não será retornada por que seu valor é diferente em cada array.

Os dois valores dos pares key => value são considerados iguais somente se (string) $elem1 === (string) $elem2 . Em outras palavras uma verificação do tipo é executada então a representação string precisa ser a mesma.

Veja Também

  • array_intersect() - Calcula a interseção entre arrays
  • array_uintersect_assoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
  • array_intersect_uassoc() - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
  • array_uintersect_uassoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas
  • array_diff() - Computa as diferenças entre arrays
  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice


Calcula a interseção de arrays, comparando pelas chaves

  • « array_intersect_assoc
  • array_intersect_uassoc »
  • PHP Manual
  • Funções para Array
  • Calcula a interseção de arrays, comparando pelas chaves

array_intersect_key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_intersect_key — Calcula a interseção de arrays, comparando pelas chaves

Descrição

array_intersect_key(array $array, array ...$arrays): array

array_intersect_key() retorna um array contendo todos os valores de array que tem as mesmas chaves presentes em todos os argumentos.

Parâmetros

array

O array com as chaves a serem verificadas.

arrays

Arrays para comparar as chaves.

Valor Retornado

Retorna um array associativo contendo todos os valores de array que estão presentes em todos os argumentos.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora pode ser chamada com apenas um parâmetro. Anteriormente, pelo menos dois parâmetros eram necessários.

Exemplos

Exemplo #1 Exemplo da array_intersect_key()

<?php
$array1 = array('azul' => 1, 'vermelho' => 2, 'verde' => 3, 'roxo' => 4);
$array2 = array('verde' => 5, 'azul' => 6, 'amarelo' => 7, 'ciano' => 8);

var_dump(array_intersect_key($array1, $array2));
?>

O exemplo acima produzirá:

array(2) {
  ["azul"]=>
  int(1)
  ["verde"]=>
  int(3)
}

Em nosso exemplo você pode ver que somente as chaves 'azul' e 'verde' estão presentes em ambos os array e assim são retornados. Também note que os valores das chaves 'azul' e 'verde' diferem nos dois arrays. A combinação ocorre porque somente as chaves são verificadas. Os valores retornados são do array.

As duas chaves do par key => value são considerados iguais somente se (string) $key1 === (string) $key2 . Em outras palavras um verificação do tipo é executada, então a representação string precisa ser a mesma.

Veja Também

  • array_diff() - Computa as diferenças entre arrays
  • array_udiff() - Computa a diferença de arrays usando uma função de callback para comparação dos dados
  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice
  • array_diff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
  • array_udiff_assoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
  • array_udiff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
  • array_diff_key() - Computa a diferença entre arrays usando as chaves na comparação
  • array_diff_ukey() - Computa a diferença entre arrays usando uma função callback na comparação de chaves
  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_intersect_uassoc() - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
  • array_intersect_ukey() - Computa a interseção de arrays usando uma função de callback nas chaves para comparação


Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback

  • « array_intersect_key
  • array_intersect_ukey »
  • PHP Manual
  • Funções para Array
  • Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback

array_intersect_uassoc

(PHP 5, PHP 7, PHP 8)

array_intersect_uassoc — Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback

Descrição

array_intersect_uassoc(array $array, array ...$arrays, callable $key_compare_func): array

array_intersect_uassoc() retorna um array contendo todos os valores de array que estão presentes em todos os argumentos. Note que as chaves são usadas na comparação, ao contrário da função array_intersect().

Parâmetros

array

Array inicial para comparação dos arrays.

arrays

Arrays para comparar as chaves.

key_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Retorna os valores de array cujos valores existem em todos os argumentos.

Exemplos

Exemplo #1 Exemplo da função array_intersect_uassoc()

<?php
$array1 = array("a" => "verde", "b" => "marrom", "c" => "azul", "vermelho");
$array2 = array("a" => "VERDE", "B" => "marrom", "amarelo", "vermelho");

print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
?>

O exemplo acima produzirá:

Array
(
    [b] => marrom
)

Veja Também

  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_uintersect_assoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
  • array_uintersect_uassoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas
  • array_intersect_key() - Calcula a interseção de arrays, comparando pelas chaves
  • array_intersect_ukey() - Computa a interseção de arrays usando uma função de callback nas chaves para comparação


Computa a interseção de arrays usando uma função de callback nas chaves para comparação

  • « array_intersect_uassoc
  • array_intersect »
  • PHP Manual
  • Funções para Array
  • Computa a interseção de arrays usando uma função de callback nas chaves para comparação

array_intersect_ukey

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_intersect_ukey — Computa a interseção de arrays usando uma função de callback nas chaves para comparação

Descrição

array_intersect_ukey(array $array, array ...$arrays, callable $key_compare_func): array

array_intersect_ukey() retorna um array contendo todos os valores de array que têm as mesmas chaves presentes em todos os argumentos.

Parâmetros

array

Array inicial para comparação dos arrays.

arrays

Arrays para comparar as chaves.

key_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Retorna os valores de array cujas chaves existem em todos os argumentos.

Exemplos

Exemplo #1 Exemplo da função array_intersect_ukey()

<?php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}

$array1 = array('azul' => 1, 'vermelho' => 2, 'verde' => 3, 'roxo' => 4);
$array2 = array('verde' => 5, 'azul' => 6, 'amarelo' => 7, 'rosa' => 8);

var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>

O exemplo acima produzirá:

array(2) {
  ["azul"]=>
  int(1)
  ["verde"]=>
  int(3)
}

Em nosso exemplo você vê que somente as chaves 'azul' e 'verde' estão presentes em ambos os arrays e assim retornadas. Também note que os valores para as chaves 'azul' e 'verde' diferem entre os dois arrays. Uma combinação ainda ocorre porque somente as chaves são checadas. Os valores retornados são os do array.

Veja Também

  • array_diff() - Computa as diferenças entre arrays
  • array_udiff() - Computa a diferença de arrays usando uma função de callback para comparação dos dados
  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice
  • array_diff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
  • array_udiff_assoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
  • array_udiff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
  • array_diff_key() - Computa a diferença entre arrays usando as chaves na comparação
  • array_diff_ukey() - Computa a diferença entre arrays usando uma função callback na comparação de chaves
  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_intersect_uassoc() - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
  • array_intersect_key() - Calcula a interseção de arrays, comparando pelas chaves


Calcula a interseção entre arrays

  • « array_intersect_ukey
  • array_is_list »
  • PHP Manual
  • Funções para Array
  • Calcula a interseção entre arrays

array_intersect

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_intersect — Calcula a interseção entre arrays

Descrição

array_intersect(array $array, array ...$arrays): array

array_intersect() retorna um array contendo todos os valores de array que estão presentes nos outros argumentos. Note que as chaves são preservadas.

Parâmetros

array

O array com os valores que serão verificados.

arrays

Arrays para comparar os valores.

Valor Retornado

Retorna um array contendo todos os valores em array cujo existem em todos os parâmetros.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função agora pode ser chamada com apenas um parâmetro. Anteriormente, pelo menos dois parâmetros eram necessários.

Exemplos

Exemplo #1 Exemplo da array_intersect()

<?php
$array1 = array("a" => "verde", "vermelho", "azul");
$array2 = array("b" => "verde", "amarelo", "vermelho");
$result = array_intersect($array1, $array2);
print_r($result);
?>

O exemplo acima produzirá:

Array
(
    [a] => verde
    [0] => vermelho
)

Notas

Nota: Dois elementos são considerados iguais se, e somente se, (string) $elem1 === (string) $elem2. Em palavras: quando a representação em string é a mesma.

Veja Também

  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_diff() - Computa as diferenças entre arrays
  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice


Verifica se um array é uma lista

  • « array_intersect
  • array_key_exists »
  • PHP Manual
  • Funções para Array
  • Verifica se um array é uma lista

array_is_list

(PHP 8 >= 8.1.0)

array_is_list — Verifica se um array é uma lista

Descrição

array_is_list(array $array): bool

Determina se o array fornecido é uma lista. Um array é considerado uma lista se suas keys consistem em números consecutivos de 0 a count($array)-1.

Parâmetros

array

O array que está sendo avaliado.

Valor Retornado

Retorna true se array for uma lista, false caso contrário.

Exemplos

Exemplo #1 array_is_list() example

<?php

array_is_list([]); // true
array_is_list(['maçã', 2, 3]); // true
array_is_list([0 => 'maçã', 'laranja']); // true

// O array não começa em 0
array_is_list([1 => 'maçã', 'laranja']); // false

// As keys não estão na ordem correta
array_is_list([1 => 'maçã', 0 => 'laranja']); // false

// Keys não inteiras
array_is_list([0 => 'maçã', 'foo' => 'bar']); // false

// Keys não consecutivas
array_is_list([0 => 'maçã', 2 => 'bar']); // false
?>

Notas

Nota:

Esta função retorna true em arrays vazios.

Veja Também

  • array_values() - Retorna todos os valores de um array


Verifica se uma chave ou índice existe em um array

  • « array_is_list
  • array_key_first »
  • PHP Manual
  • Funções para Array
  • Verifica se uma chave ou índice existe em um array

array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

array_key_exists — Verifica se uma chave ou índice existe em um array

Descrição

array_key_exists(string|int|float|bool|resource|null $key, array $array): bool

array_key_exists() retorna true se a chave key existe no array. key pode ser qualquer valor possível para um índice de um array.

Parâmetros

key

Valor para verificar.

array

Um array com chaves para verificar.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Nota:

array_key_exists() procurará pelas chaves na primeira dimensão apenas. Chaves aninhadas em arrays multidimensionais não serão encontradas.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro key agora aceita bool, float, int, null, resource e string como argumentos.

Exemplos

Exemplo #1 Exemplo da função array_key_exists()

<?php
$busca_array = array("primeiro" => 1, "segundo" => 4);
if (array_key_exists("primeiro", $busca_array)) {
echo "O elemento 'primeiro' está no array!";
}
?>

Exemplo #2 array_key_exists() versus isset()

isset() não retorna true para valores de chave que correspondam a um valor null, enquanto que array_key_exists() faz isto.

<?php
$search_array = array('first' => null, 'second' => 4);

// returns false
isset($search_array['first']);

// returns true
array_key_exists('first', $search_array);
?>

Notas

Nota:

Por motivo de retrocompatibilidade, a função array_key_exists() também retornará true se o parâmetro key for uma propriedade definida em um dado object como parâmetro array. Esse comportamento está descontinuado a partir do PHP 7.4.0, e removido a partir do PHP 8.0.0.

Para checar a existência de uma propriedade em um objeto, property_exists() deve ser utilizada.

Veja Também

  • isset() - Determina se uma variável está declarada e é diferente de null
  • array_keys() - Retorna todas as chaves ou uma parte das chaves de um array
  • in_array() - Checa se um valor existe em um array
  • property_exists() - Verifica se o objeto ou a classe tem uma propriedade


Obtém a primeira chave de um array

  • « array_key_exists
  • array_key_last »
  • PHP Manual
  • Funções para Array
  • Obtém a primeira chave de um array

array_key_first

(PHP 7 >= 7.3.0, PHP 8)

array_key_first — Obtém a primeira chave de um array

Descrição

array_key_first(array $array): int|string|null

Obtenha a primeira chave do array fornecido sem afetar o ponteiro do array interno.

Parâmetros

array

Um array.

Valor Retornado

Retorna a primeira key do array se o array não estiver vazio; null caso contrário.

Exemplos

Exemplo #1 Uso básico de array_key_first()

<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];

$firstKey = array_key_first($array);

var_dump($firstKey);
?>

O exemplo acima produzirá:

string(1) "a"

Notas

Dica

Existem várias maneiras de fornecer essa funcionalidade para versões anteriores ao PHP 7.3.0. É possível usar array_keys(), mas isso pode ser bastante ineficiente. Também é possível usar reset() e key(), mas isso pode alterar o ponteiro do array interno. Uma solução eficiente, que não altera o ponteiro interno do array, escrito como polyfill:

<?php
if (!function_exists('array_key_first')) {
function array_key_first(array $arr) {
foreach($arr as $key => $unused) {
return $key;
}
return NULL;
}
}
?>

Veja Também

  • array_key_last() - Obtém a última chave de um array
  • reset() - Faz o ponteiro interno de um array apontar para o seu primeiro elemento


Obtém a última chave de um array

  • « array_key_first
  • array_keys »
  • PHP Manual
  • Funções para Array
  • Obtém a última chave de um array

array_key_last

(PHP 7 >= 7.3.0, PHP 8)

array_key_last — Obtém a última chave de um array

Descrição

array_key_last(array $array): int|string|null

Obtenha a última chave do array fornecido sem afetar o ponteiro do array interno.

Parâmetros

array

Um array.

Valor Retornado

Retorna a última key do array se o array não estiver vazio; null caso contrário.

Veja Também

  • array_key_first() - Obtém a primeira chave de um array
  • end() - Define o ponteiro interno de um array para seu último elemento


Retorna todas as chaves ou uma parte das chaves de um array

  • « array_key_last
  • array_map »
  • PHP Manual
  • Funções para Array
  • Retorna todas as chaves ou uma parte das chaves de um array

array_keys

(PHP 4, PHP 5, PHP 7, PHP 8)

array_keys — Retorna todas as chaves ou uma parte das chaves de um array

Descrição

array_keys(array $array): array
array_keys(array $array, mixed $filter_value, bool $strict = false): array

array_keys() retorna as chaves, numéricas e string, do array array.

Se um parâmetro filter_value for especificado, então apenas as chaves para esse valor serão retornadas. Do contrário, todas as chaves de array serão retornadas.

Parâmetros

array

Um array contendo chaves a serem retornadas.

filter_value

Se especificado, somente chaves contendo este valor são retornadas.

strict

Determina se a comparação é rígida (===) deve ser utilizada durante a busca.

Valor Retornado

Retorna um array de todas as chaves em array.

Exemplos

Exemplo #1 Exemplo de array_keys()

<?php
$array = array(0 => 100, "cor" => "vermelho");
print_r(array_keys($array));

$array = array("azul", "vermelho", "verde", "azul", "azul");
print_r(array_keys($array, "azul"));

$array = array("cor" => array("azul", "vermelho", "verde"),
"tamanho" => array("pequeno", "medio", "grande"));
print_r(array_keys($array));
?>

O exemplo acima produzirá:

Array
(
    [0] => 0
    [1] => cor
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => cor
    [1] => tamanho
)

Veja Também

  • array_values() - Retorna todos os valores de um array
  • array_combine() - Cria um array usando um array para chaves e outro para valores
  • array_key_exists() - Verifica se uma chave ou índice existe em um array
  • array_search() - Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado


Aplica uma função em todos os elementos dos arrays dados

  • « array_keys
  • array_merge_recursive »
  • PHP Manual
  • Funções para Array
  • Aplica uma função em todos os elementos dos arrays dados

array_map

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

array_map — Aplica uma função em todos os elementos dos arrays dados

Descrição

array_map(?callable $callback, array $array, array ...$arrays): array

array_map() retorna um array contendo os resultados da aplicação do callback ao valor correspondente do array (e arrays se mais arrays forem fornecidos) usados como argumentos para a função de callback. O número de parâmetros que a função callback aceita deve coincidir com o número de arrays passados para array_map(). Arrays de entrada excedentes são ignorados. Um ArgumentCountError é lançado se um número insuficiente de argumentos é fornecido.

Parâmetros

callback

Um callable para executar para cada elemento em cada array.

null pode ser passado como um valor para callback para realizar uma operação zip em múltiplos arrays. Se apenas array for fornecido, array_map() retornará o array de entrada.

array

Um array para percorrer chamando função callback.

arrays

Lista variável suplementar de argumentos array para passar pela função callback.

Valor Retornado

Retorna um array contendo os resultados da aplicação da função callback ao valor correspondente do array (e arrays se mais arrays forem fornecidos) usados como argumentos para o callback.

O array retornado irá preservar as chaves do argumento array se e somente se exatamente um array for passado. Se mais de um array for passado, o array retornado terá chaves inteiras sequenciais.

Registro de Alterações

Versão | Descrição
8.0.0 | Se a função callback espera que um parâmetro seja passado por referência, esta função agora emitirá um E_WARNING.

Exemplos

Exemplo #1 Exemplo da função array_map()

<?php
function cube($n)
{
return ($n * $n * $n);
}

$a = [1, 2, 3, 4, 5];
$b = array_map('cube', $a);
print_r($b);
?>

Faz com que $b tenha:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Exemplo #2 array_map() utilizando uma função lambda

<?php
$func = function(int $value): int {
return $value * 2;
};

print_r(array_map($func, range(1, 5)));

// Ou a partir do PHP 7.4.0:

print_r(array_map(fn($value): int => $value * 2, range(1, 5)));

?>
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

Exemplo #3 array_map() - usando mais de um array

<?php
function mostrar_Espanhol(int $n, string $m): string
{
return "O número {$n} é chamado de {$m} em espanhol";
}

function map_Espanhol(int $n, string $m): array
{
return [$n => $m];
}

$a = [1, 2, 3, 4, 5];
$b = ['uno', 'dos', 'tres', 'cuatro', 'cinco'];

$c = array_map('mostrar_Espanhol', $a, $b);
print_r($c);

$d = array_map('map_Espanhol', $a , $b);
print_r($d);
?>

O exemplo acima produzirá:

// Saída de $c
Array
(
    [0] => O número 1 é chamado de uno em espanhol
    [1] => O número 2 é chamado de dos em espanhol
    [2] => O número 3 é chamado de tres em espanhol
    [3] => O número 4 é chamado de cuatro em espanhol
    [4] => O número 5 é chamado de cinco em espanhol
)

// Saída de $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Normalmente quando se usa dois ou mais arrays, eles devem ter o mesmo tamanho porque a função callback é aplicada paralelamente nos elementos correpondentes. Se os arrays tem tamanhos diferentes, o menor array será extendido com elementos vazios.

Uma forma interessante de se usar esta função é na construção de um array de arrays, o que pode ser facilmente feito usando null como o nome da função callback.

Exemplo #4 Realizando uma operação zip de arrays

<?php
$a = [1, 2, 3, 4, 5];
$b = ['one', 'two', 'three', 'four', 'five'];
$c = ['uno', 'dos', 'tres', 'cuatro', 'cinco'];

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

O exemplo acima produzirá:

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
        )

)

Exemplo #5 callback null apenas com array

<?php
$array = [1, 2, 3];
var_dump(array_map(null, $array));
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Exemplo #6 array_map() - com chaves string

<?php
$arr = ['stringkey' => 'value'];
function cb1($a) {
return [$a];
}
function cb2($a, $b) {
return [$a, $b];
}
var_dump(array_map('cb1', $arr));
var_dump(array_map('cb2', $arr, $arr));
var_dump(array_map(null, $arr));
var_dump(array_map(null, $arr, $arr));
?>

O exemplo acima produzirá:

array(1) {
  ["stringkey"]=>
  array(1) {
    [0]=>
    string(5) "value"
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}
array(1) {
  ["stringkey"]=>
  string(5) "value"
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}

Exemplo #7 array_map() - arrays associativos

Enquanto array_map() não suporta diretamente o uso da chave do array como entrada, isso pode ser simulado usando array_keys().

<?php
$arr = [
'v1' => 'Primeiro lançamento',
'v2' => 'Segundo lançamento',
'v3' => 'Terceiro lançamento',
];

// Nota: Antes da 7.4.0, use a sintaxe mais longa para funções anônimas.
$callback = fn(string $k, string $v): string => "$k foi o $v";

$result = array_map($callback, array_keys($arr), array_values($arr));

var_dump($result);
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(24) "v1 foi o Primeiro lançamento"
  [1]=>
  string(25) "v2 foi o Segundo lançamento"
  [2]=>
  string(24) "v3 foi o Terceiro lançamento"
}

Veja Também

  • array_filter() - Filtra elementos de um array utilizando uma função callback
  • array_reduce() - Reduz um array para um único valor através de um processo iterativo via callback
  • array_walk() - Aplica uma determinada função em cada elemento de um array


Mescla um ou mais arrays recursivamente

  • « array_map
  • array_merge »
  • PHP Manual
  • Funções para Array
  • Mescla um ou mais arrays recursivamente

array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_merge_recursive — Mescla um ou mais arrays recursivamente

Descrição

array_merge_recursive(array ...$arrays): array

array_merge_recursive() mescla os elementos de um ou mais arrays de forma que os elementos de um são colocados no final do array anterior. Retorna o array resultante da fusão.

Se os arrays dados tem as mesmas chaves string, então os valores para uma chave são mesclados em um array, e isso é feito recursivamente, sendo que, se um dos valores for um array também, este função irá mesclá-lo com os valores correspondentes no array resultante também. Se, no entanto, os arrays tem as mesmas chaves numéricas, o último valor para uma chave não sobrescreverá o valor original, e sim adicionado ao array resultante.

Parâmetros

arrays

Lista variável de arrays para mesclar recursivamente.

Valor Retornado

Um array de valores resultados da mesclagem dos argumentos. Se chamada sem nenhum argumento, retorna um array vazio.

Registro de Alterações

Versão | Descrição
7.4.0 | Essa função agora pode ser chamada sem nenhum parâmetro. Anteriormente, pelo menos um parâmetro era necessário.

Exemplos

Exemplo #1 Exemplo de array_merge_recursive()

<?php
$ar1 = array("cor" => array ("favorita" => "vermelho"), 5);
$ar2 = array(10, "cor" => array ("favorita" => "verde", "azul"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>

O exemplo acima produzirá:

Array
(
    [cor] => Array
        (
            [favorita] => Array
                (
                    [0] => vermelho
                    [1] => verde
                )

            [0] => azul
        )

    [0] => 5
    [1] => 10
)

Veja Também

  • array_merge() - Combina um ou mais arrays
  • array_replace_recursive() - Substitui elementos de arrays passado no primeiro array recursivamente


Combina um ou mais arrays

  • « array_merge_recursive
  • array_multisort »
  • PHP Manual
  • Funções para Array
  • Combina um ou mais arrays

array_merge

(PHP 4, PHP 5, PHP 7, PHP 8)

array_merge — Combina um ou mais arrays

Descrição

array_merge(array ...$arrays): array

Combina os elementos de dois ou mais arrays de forma que os elementos de um são colocados no final do array anterior. Retorna o array resultante da fusão.

Se os arrays dados têm as mesmas chaves string, então o último valor para uma chave irá sobrescrever o valor anterior. Se, no entanto, os arrays tem as mesmas chaves numéricas, o último valor para uma chave não sobrescreverá o valor original, e sim adicionado ao array resultante.

Se apenas um array é dado e o array é indexado numericamente, as chaves são reindexadas de uma maneira contínua.

Parâmetros

arrays

Uma lista de arrays a combinar.

Valor Retornado

Retorna o array resultante. Se chamado sem argumentos, retorna um array vazio.

Registro de Alterações

Versão | Descrição
7.4.0 | A função agora pode ser chamada sem argumentos. Anteriormente, ao menos um parâmetro era necessário.

Exemplos

Exemplo #1 Exemplo de array_merge()

<?php
$array1 = array("cor" => "vermelho", 2, 4);
$array2 = array("a", "b", "cor" => "verde", "forma" => "trapezoide", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>

O exemplo acima produzirá:

Array
(
    [cor] => verde
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [forma] => trapezoide
    [4] => 4
)

Exemplo #2 Exemplo simples de array_merge()

<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>

Não esqueça que as chaves numéricas serão reordenadas!

Array
(
    [0] => data
)

Se você deseja apenas adicionar os elementos do segundo array no primeiro, sem sobrescrever os elementos e sem causar a reindexação, utilize o operador +:

<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');
$result = $array1 + $array2;
var_dump($result);
?>

As chaves do primeiro array são preservadas. Se uma chave existir em dois arrays, então o elemento do primeiro array será preservado e o elemento de mesma chave no segundo array será descartado.

array(5) {
  [0]=>
  string(6) "zero_a"
  [2]=>
  string(5) "two_a"
  [3]=>
  string(7) "three_a"
  [1]=>
  string(5) "one_b"
  [4]=>
  string(6) "four_b"
}

Exemplo #3 array_merge() com tipos não array

<?php
$beginning = 'foo';
$end = array(1 => 'bar');
$result = array_merge((array)$beginning, (array)$end);
print_r($result);
?>

O exemplo acima produzirá:

Array
    (
        [0] => foo
        [1] => bar
    )

Veja Também

  • array_merge_recursive() - Mescla um ou mais arrays recursivamente
  • array_replace() - Substitui elementos de arrays passados no primeiro array
  • array_combine() - Cria um array usando um array para chaves e outro para valores
  • array operators


Ordena múltiplos arrays ou arrays multidimensionais

  • « array_merge
  • array_pad »
  • PHP Manual
  • Funções para Array
  • Ordena múltiplos arrays ou arrays multidimensionais

array_multisort

(PHP 4, PHP 5, PHP 7, PHP 8)

array_multisort — Ordena múltiplos arrays ou arrays multidimensionais

Descrição

array_multisort(
array &$array1,
mixed $array1_sort_order = SORT_ASC,
mixed $array1_sort_flags = SORT_REGULAR,
mixed ...$rest
): bool

array_multisort() pode ser usada para ordenar vários arrays de uma vez, ou um array multidimensional por uma ou mais dimensões.

Chaves associativas (string) serão mantidas, mas chaves númericas serão reindexadas.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array1

Um array a ser ordenado.

array1_sort_order

A ordenação para ser utilizada no argumento array anterior. Pode ser SORT_ASC para ordenar na ascendente (crescente) SORT_DESC para ordernar na descendente (decrescente).

Este argumento pode ser trocado com array1_sort_flags ou ser omitido completamente, e nesse caso é utilizado SORT_ASC.

array1_sort_flags

Opções de ordenamento para o argumento array anterior:

Flags:

  • SORT_REGULAR - comparar itens normalmente (não modidifica tipos)
  • SORT_NUMERIC - compare itens numericamente
  • SORT_STRING - compare itens como strings
  • SORT_LOCALE_STRING - compare itens como strings, utilizando o locate atual. Utiliza o locale, que pode ser modificado com setlocale()
  • SORT_NATURAL - compare itens como strings utilizando a "ordenação natural" de natsort()
  • SORT_FLAG_CASE - pode ser combinado (bitwise OR) com SORT_STRING ou SORT_NATURAL para ordenar as strings sem considerar maiúsculas e minúsculas

Este argumento pode ser trocado com array1_sort_order ou completamente omitido, e nesse caso é utilizado SORT_REGULAR.

rest

Outros arrays, podendo informar também ordem e flags de ordenação. Somente elementos correspondentes a elementos equivalentes nos arrays anteriores são comparados. Em outras palavras, a ordem é lexigráfica.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Ordenando vários arrays

<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

Nesse exemplo, após a ordenação o primeiro array conterá 0, 10, 100, 100. O segundo array conterá 4, 1, 2, 3. Os itens no segundo array correspondentes ao itens idênticos do primeiro array (100 e 100) também são ordenados.

array(4) {
  [0]=> int(0)
  [1]=> int(10)
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(4)
  [1]=> int(1)
  [2]=> int(2)
  [3]=> int(3)
}

Exemplo #2 Ordenando arrays multi dimensionais

<?php
$ar = array(
array("10", 11, 100, 100, "a"),
array( 1, 2, "2", 3, 1)
);
array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>

Neste exemplo, após a ordenação o primeiro array será transformado para "10", 100, 100, 11, "a" (ordenado os itens como strings em ordem crescente). O segundo conterá 1, 3, "2", 2, 1 (ordenado como números, em ordem decrescente).

array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}

Exemplo #3 Ordenando resultados de bancos de dados

Neste exemplo, cada elemento no array data representa um iten em uma tabela. Esse tipo de conjunto de dados é típico de registros de base de dados.

Exemplo:

volume | edition
-------+--------
    67 |       2
    86 |       1
    85 |       6
    98 |       2
    86 |       6
    67 |       7

Os dados estão em um array, chamado data. Isso pode ser obtido, por exemplo, de rodar mysqli_fetch_assoc() em loop.

<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>

Vamos ordenar volume decrescente e edition crescente.

Aqui temos um array de registros, mas array_multisort() exige um array de colunas, então é preciso converter os dados utilizando o código abaixo para então executar a ordenação.

<?php
// Obtain a list of columns
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}

// Você pode usar array_column() em vez do código acima
$volume = array_column($data, 'volume');
$edition = array_column($data, 'edition');

// Ordena os dados por volume decrescente, edição crescente.
// Adiciona $data como último parâmetro, para ordenar por uma chave comum.
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>

O conjunto de dados agora está ordenado, assim:

volume | edition
-------+--------
    98 |       2
    86 |       1
    86 |       6
    85 |       6
    67 |       2
    67 |       7

Exemplo #4 Ordenação case insensitive

SORT_STRING e SORT_REGULAR são sensíveis a maiúsculas e minúsculas, de forma que strings começando com maiúsculas aparecerão primeiro que strings começando com minúsculas.

Para realizar uma ordenação case insensitive é preciso forçar a ordenação a rodar com uma cópia do array original, transformado em minúsculas.

<?php
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array);
?>

O exemplo acima produzirá:

Array
(
    [0] => Alpha
    [1] => atomic
    [2] => bank
    [3] => Beta
)

Veja Também

  • usort() - Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário
  • Comparação entre as funções de ordenação de array


Expande um array para um certo comprimento utilizando um determinado valor

  • « array_multisort
  • array_pop »
  • PHP Manual
  • Funções para Array
  • Expande um array para um certo comprimento utilizando um determinado valor

array_pad

(PHP 4, PHP 5, PHP 7, PHP 8)

array_pad — Expande um array para um certo comprimento utilizando um determinado valor

Descrição

array_pad(array $array, int $length, mixed $value): array

array_pad() retorna uma cópia de array expandido para o comprimento especificado por length com o valor value. Se length for positivo então o array é expandido pela direita, se for negativo, pela esquerda. Se o valor absoluto de length for menor ou igual ao comprimento de array, então ele permanece inalterado.

Parâmetros

array

Array inicial de valores para ser preenchido.

length

Nova tamanho do array.

value

Valor para preencher se array é menor que length.

Valor Retornado

Retorna uma cópia de array preenchido pela quantidade especificada por length com o valor value. Se length é positivo, então o array é preenchido na direita, se ele é negativo, então da esquerda. Se o valor absoluto de length é menor que ou igual ao comprimento de array então nenhum preenchimento ocorre.

Registro de Alterações

Versão | Descrição
8.3.0 | Antes do PHP 8.3.0, somente 1.048.576 elementos podiam ser adicionados de uma vez. Agora é limitado apenas pelo tamanho máximo de um array.

Exemplos

Exemplo #1 Exemplo de array_pad()

<?php
$input = array(12, 10, 9);

$result = array_pad($input, 5, 0);
// $result é array(12, 10, 9, 0, 0)

$result = array_pad($input, -7, -1);
// $result é array(-1, -1, -1, -1, 12, 10, 9)

$result = array_pad($input, 2, "noop");
// Não será expandido
?>

Veja Também

  • array_fill() - Preenche um array com valores
  • range() - Cria um array contendo uma faixa de elementos


Extrai um elemento do final do array

  • « array_pad
  • array_product »
  • PHP Manual
  • Funções para Array
  • Extrai um elemento do final do array

array_pop

(PHP 4, PHP 5, PHP 7, PHP 8)

array_pop — Extrai um elemento do final do array

Descrição

array_pop(array &$array): mixed

array_pop() extrai e retorna o valor do último elemento de array, diminuindo o array em um elemento.

Nota: Após o uso desta função, assim como na função reset(), o ponteiro interno do array fornecido apontará para o primeiro elemento.

Parâmetros

array

O array para obter os valores.

Valor Retornado

Retorna o valor do último elemento de array. Se array é vazio, null será retornado.

Exemplos

Exemplo #1 Exemplo da array_pop()

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>

Depois disso, $stack irá conter apenas 3 elementos:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

e raspberry será passado para $fruit.

Veja Também

  • array_push() - Adiciona um ou mais elementos no final de um array
  • array_shift() - Retira o primeiro elemento de um array
  • array_unshift() - Adiciona um ou mais elementos no início de um array


Calcula o produto dos valores de um array

  • « array_pop
  • array_push »
  • PHP Manual
  • Funções para Array
  • Calcula o produto dos valores de um array

array_product

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_product — Calcula o produto dos valores de um array

Descrição

array_product(array $array): int|float

array_product() retorna o produto dos valores de um array.

Parâmetros

array

O array.

Valor Retornado

Retorna o produto com um inteiro ou float.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora emite um E_WARNING quando os valores do array não puderem ser convertidos para int ou float. Anteriormente, arrays e objects eram ignorados enquanto outros valores eram convertidos para int. Adicionalmente, objetos que definem uma conversão numérica (ex.: GMP) agora são convertidos ao invés de ignorados.

Exemplos

Exemplo #1 Exemplo da array_product()

<?php

$a = array(2, 4, 6, 8);
echo "product(a) = " . array_product($a) . "\n";
echo "product(array()) = " . array_product(array()) . "\n";

?>

O exemplo acima produzirá:

product(a) = 384
product(array()) = 1


Adiciona um ou mais elementos no final de um array

  • « array_product
  • array_rand »
  • PHP Manual
  • Funções para Array
  • Adiciona um ou mais elementos no final de um array

array_push

(PHP 4, PHP 5, PHP 7, PHP 8)

array_push — Adiciona um ou mais elementos no final de um array

Descrição

array_push(array &$array, mixed ...$values): int

array_push() trata array como uma pilha, e adiciona as variáveis passadas como argumentos no final de array. O tamanho do array aumenta de acordo com o número de variáveis adicionadas. Tem o mesmo efeito de:

<?php
$array[] = $var;
?>
repetido para cada argumento.

Nota: Se você usar array_push() para adicionar um elemento ao array, é melhor usar $array[] = porque deste jeito não há uma chamada a uma função.

Nota: array_push() irá emitir um aviso se o primeiro argumento não for um array. Isto era diferente do funcionamento de $var[] onde um novo array era criado, antes do PHP 7.1.0.

Parâmetros

array

O array de entrada.

values

Os valores a serem colocados no final do array.

Valor Retornado

Retorna o novo número de elementos do array.

Registro de Alterações

Versão | Descrição
7.3.0 | Essa função agora pode ser chamada com apenas um parâmetro. This function can now be called with only one parameter. Anteriormente, pelo menos dois parâmetros eram necessários.

Exemplos

Exemplo #1 Exemplo de array_push()

<?php
$cesta = array("laranja", "morango");
array_push($cesta, "melancia", "batata");
print_r($cesta);
?>

O exemplo acima produzirá:

Array
(
    [0] => laranja
    [1] => morango
    [2] => melancia
    [3] => batata
)

Veja Também

  • array_pop() - Extrai um elemento do final do array
  • array_shift() - Retira o primeiro elemento de um array
  • array_unshift() - Adiciona um ou mais elementos no início de um array


Escolhe uma ou mais chaves aleatórias de um array

  • « array_push
  • array_reduce »
  • PHP Manual
  • Funções para Array
  • Escolhe uma ou mais chaves aleatórias de um array

array_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

array_rand — Escolhe uma ou mais chaves aleatórias de um array

Descrição

array_rand(array $array, int $num = 1): int|string|array

Escolhe aleatóriamente um ou mais itens de um array, e retorna a chave (ou chaves) do itens selecionados.

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Parâmetros

array

O array de entrada. Não pode ser vazio.

num

Especifica quantos elementos deseja obter. Deve ser maior que zero, e menor ou igual ao comprimento do array.

Valor Retornado

Se estiver selecionando apenas um elemento, array_rand() retorna a chave para este elemento aleatório. De outra forma, ele retorna um array com as chaves desses elementos selecionados. Assim é possível selecionar os elementos pelas chaves no array assim como valores aleatórios. Se múltiplas chaves forem retornadas, elas serão retornadas na ordem em que estavam presentes no array original.

Erros/Exceções

Lança uma exceção ValueError se array estiver vazio, ou se num estiver fora do intervalo permitido.

Registro de Alterações

Versão | Descrição
8.0.0 | array_rand() agora lança uma exceção ValueError se num estiver fora do intervalo; anteriormente um E_WARNING era emitido, e a função retornava null.
8.0.0 | array_rand() agora lança uma exceção ValueError se array estiver vazio; anteriormente um E_WARNING era emitido, e a função retornava null.
7.1.0 | O algoritmo de embaralhamento interno foi alterado para usar o Gerador de Números Aleatórios » Mersenne Twister em vez da função rand da libc.

Exemplos

Exemplo #1 Exemplo de array_rand()

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

Veja Também

  • Random\Randomizer::pickArrayKeys() - Select random array keys
  • Random\Randomizer::shuffleArray() - Get a permutation of an array


Reduz um array para um único valor através de um processo iterativo via callback

  • « array_rand
  • array_replace_recursive »
  • PHP Manual
  • Funções para Array
  • Reduz um array para um único valor através de um processo iterativo via callback

array_reduce

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

array_reduce — Reduz um array para um único valor através de um processo iterativo via callback

Descrição

array_reduce(array $array, callable $callback, mixed $initial = null): mixed

array_reduce() aplica iterativamente a função callback aos elementos de array, de forma a reduzir o array a um único valor.

Parâmetros

array

O array de entrada.

callback
callback(mixed $carry, mixed $item): mixed
carry

Informa o valor da iteração anterior. No caso da primeira iteração ele terá o valor de initial.

item

Mantém o valor da iteração atual.

initial

Se o argumento opcional initial for passado, ele será utilizado no início do processo, ou como um resultado final se o array estiver vazio.

Valor Retornado

Retorna o valor resultante.

Se a array estiver vazio e initial não for passado, array_reduce() retornará null.

Registro de Alterações

Versão | Descrição
8.0.0 | Se a função callback espera que um parâmetro seja passado por referência, esta função agora emitirá um E_WARNING.

Exemplos

Exemplo #1 Exemplo de array_reduce()

<?php
function sum($carry, $item)
{
$carry += $item;
return $carry;
}

function product($carry, $item)
{
$carry *= $item;
return $carry;
}

$a = array(1, 2, 3, 4, 5);
$x = array();

var_dump(array_reduce($a, "sum")); // int(15)
var_dump(array_reduce($a, "product", 10)); // int(1200), because: 10*1*2*3*4*5
var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce"
?>

Veja Também

  • array_filter() - Filtra elementos de um array utilizando uma função callback
  • array_map() - Aplica uma função em todos os elementos dos arrays dados
  • array_unique() - Remove os valores duplicados de um array
  • array_count_values() - Conta as ocorrências de cada valor distinto em um array


Substitui elementos de arrays passado no primeiro array recursivamente

  • « array_reduce
  • array_replace »
  • PHP Manual
  • Funções para Array
  • Substitui elementos de arrays passado no primeiro array recursivamente

array_replace_recursive

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

array_replace_recursive — Substitui elementos de arrays passado no primeiro array recursivamente

Descrição

array_replace_recursive(array $array, array ...$replacements): array

array_replace_recursive() substitui os valores de array pelos mesmos valores de todos os arrays seguintes. Se uma key do primeiro array existir no segundo array, seu valor será substituído pelo valor do segundo array. Se a key existir no segundo array, e não no primeiro, ela será criada no primeiro array. Se uma key existir apenas no primeiro array, ela será deixada como está. Se vários arrays forem passados para substituição, eles serão processados em ordem, o array posterior sobrescrevendo os valores anteriores.

array_replace_recursive() é recursivo: ele será recursivo em arrays e aplicará o mesmo processo ao valor interno.

Quando o valor do primeiro array for escalar, ele será substituído pelo valor do segundo array, seja ele escalar ou array. Quando o valor no primeiro array e no segundo array são ambos arrays, array_replace_recursive() substituirá seus respectivos valores recursivamente.

Parâmetros

array

O array no qual os elementos são substituídos.

replacements

Arrays dos quais os elementos serão extraídos.

Valor Retornado

Returns an array.

Exemplos

Exemplo #1 array_replace_recursive() example

<?php
$base = array('frutas_citricas' => array( "laranja") , 'frutas_vermelhas' => array("amora", "framboesa"), );
$substituicoes = array('frutas_citricas' => array('abacaxi'), 'frutas_vermelhas' => array('mirtilo'));

$cesta = array_replace_recursive($base, $substituicoes);
print_r($cesta);

$cesta = array_replace($base, $substituicoes);
print_r($cesta);
?>

O exemplo acima produzirá:

Array
(
    [frutas_citricas] => Array
        (
            [0] => abacaxi
        )

    [frutas_vermelhas] => Array
        (
            [0] => mirtilo
            [1] => framboesa
        )

)
Array
(
    [frutas_citricas] => Array
        (
            [0] => abacaxi
        )

    [frutas_vermelhas] => Array
        (
            [0] => mirtilo
        )

)

Exemplo #2 array_replace_recursive() e recursive behavior

<?php
$base = array('frutas_citricas' => array("laranja") , 'frutas_vermelhas' => array("amora", "framboesa"), 'outras' => 'banana' );
$substituicoes = array('frutas_citricas' => 'abacaxi', 'frutas_vermelhas' => array('mirtilo'), 'outras' => array('lichia'));
$substituicoes2 = array('frutas_citricas' => array('abacaxi'), 'frutas_vermelhas' => array('mirtilo'), 'outras' => 'lichia');

$cesta = array_replace_recursive($base, $substituicoes, $substituicoes2);
print_r($cesta);

?>

O exemplo acima produzirá:

Array
(
    [frutas_citricas] => Array
        (
            [0] => abacaxi
        )

    [frutas_vermelhas] => Array
        (
            [0] => mirtilo
            [1] => framboesa
        )

    [outras] => lichia
)

Veja Também

  • array_replace() - Substitui elementos de arrays passados no primeiro array
  • array_merge_recursive() - Mescla um ou mais arrays recursivamente


Substitui elementos de arrays passados no primeiro array

  • « array_replace_recursive
  • array_reverse »
  • PHP Manual
  • Funções para Array
  • Substitui elementos de arrays passados no primeiro array

array_replace

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

array_replace — Substitui elementos de arrays passados no primeiro array

Descrição

array_replace(array $array, array ...$replacements): array

array_replace() substitui os valores de array por valores com as mesmas keys em cada um dos seguintes arrays. Se uma key do primeiro array existir no segundo array, seu valor será substituído pelo valor do segundo array. Se a key existir no segundo array, e não no primeiro, ela será criada no primeiro array. Se uma key existir apenas na primeira matriz, ela será deixada como está. Se vários arrays forem passados para substituição, eles serão processados em ordem, os arrays posteriores sobrescrevendo os valores anteriores.

array_replace() não é recursivo: substituirá os valores no primeiro array por qualquer tipo que esteja no segundo array.

Parâmetros

array

O array no qual os elementos são substituídos.

replacements

Arrays dos quais os elementos serão extraídos. Os valores dos arrays posteriores substituem os valores anteriores.

Valor Retornado

Retorna um array.

Exemplos

Exemplo #1 array_replace() exemplo

<?php
$base = array("laranja", "banana", "maçã", "framboesa");
$substituicoes = array(0 => "abacaxi", 4 => "cereja");
$substituicoes2 = array(0 => "uva");

$cesta = array_replace($base, $substituicoes, $substituicoes2);
print_r($cesta);
?>

O exemplo acima produzirá:

Array
(
    [0] => uva
    [1] => banana
    [2] => maçã
    [3] => framboesa
    [4] => cereja
)

Veja Também

  • array_replace_recursive() - Substitui elementos de arrays passado no primeiro array recursivamente
  • array_merge() - Combina um ou mais arrays


Retorna um array com os elementos na ordem inversa

  • « array_replace
  • array_search »
  • PHP Manual
  • Funções para Array
  • Retorna um array com os elementos na ordem inversa

array_reverse

(PHP 4, PHP 5, PHP 7, PHP 8)

array_reverse — Retorna um array com os elementos na ordem inversa

Descrição

array_reverse(array $array, bool $preserve_keys = false): array

Recebe como entrada array e retorna um novo array com a ordem dos elementos invertida.

Parâmetros

array

O array de entrada.

preserve_keys

Se definido para true as chaves serão preservadas. Chaves não numéricas não são afetadas por essa opção, e são sempre preservadas.

Valor Retornado

Retorna o array invertido.

Exemplos

Exemplo #1 array_reverse() example

<?php
$input = array("php", 4.0, array("green", "red"));
$reversed = array_reverse($input);
$preserved = array_reverse($input, true);

print_r($input);
print_r($reversed);
print_r($preserved);
?>

O exemplo acima produzirá:

Array
(
    [0] => php
    [1] => 4
    [2] => Array
        (
            [0] => green
            [1] => red
        )

)
Array
(
    [0] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [0] => php
)

Veja Também

  • array_flip() - Permuta todas as chaves e seus valores associados em um array


Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado

  • « array_reverse
  • array_shift »
  • PHP Manual
  • Funções para Array
  • Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado

array_search

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

array_search — Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado

Descrição

array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false

Procura a needle (agulha) em haystack (palheiro).

Parâmetros

needle

O valor procurado.

Nota:

Se needle for uma string, a comparação é feita de uma maneira que diferencia maiúsculas e minúsculas.

haystack

O array.

strict

Se o terceiro parâmetro opcional strict for informador como true então array_search() fará uma busca por elementos idênticos em haystack. Isto significa que haverá uma checagem adicional de tipos no parâmetro needle ao percorrer haystack, de forma que os objetos sejam a mesma instância.

Valor Retornado

Retorna a chave para needle se foi encontrada no array, false caso contrário.

Se needle for encontrado em haystack mais de uma vez, a primeira chave encontrada é retornada. Para retornar as chaves de todos os valores correspondentes, utilize a função array_keys() com o parâmetro opcional filter_value.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Exemplos

Exemplo #1 Exemplo de array_search()

<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
?>

Veja Também

  • array_keys() - Retorna todas as chaves ou uma parte das chaves de um array
  • array_values() - Retorna todos os valores de um array
  • array_key_exists() - Verifica se uma chave ou índice existe em um array
  • in_array() - Checa se um valor existe em um array


Retira o primeiro elemento de um array

  • « array_search
  • array_slice »
  • PHP Manual
  • Funções para Array
  • Retira o primeiro elemento de um array

array_shift

(PHP 4, PHP 5, PHP 7, PHP 8)

array_shift — Retira o primeiro elemento de um array

Descrição

array_shift(array &$array): mixed

array_shift() retira o primeiro elemento de array e o retorna, diminuindo array em um elemento e movendo todos os outros elementos para trás. Todas as chaves numéricas serão alteradas para começar a contar a partir de zero, enquanto chaves literais não serão afetadas.

Nota: Após o uso desta função, assim como na função reset(), o ponteiro interno do array fornecido apontará para o primeiro elemento.

Parâmetros

array

O array de entrada.

Valor Retornado

Retorna o valor removido, ou null se array for vazio ou não é um array.

Exemplos

Exemplo #1 Exemplo da array_shift()

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

O exemplo acima produzirá:

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

e orange seria passado para $fruit.

Veja Também

  • array_unshift() - Adiciona um ou mais elementos no início de um array
  • array_push() - Adiciona um ou mais elementos no final de um array
  • array_pop() - Extrai um elemento do final do array


Extrai uma parcela de um array

  • « array_shift
  • array_splice »
  • PHP Manual
  • Funções para Array
  • Extrai uma parcela de um array

array_slice

(PHP 4, PHP 5, PHP 7, PHP 8)

array_slice — Extrai uma parcela de um array

Descrição

array_slice(
array $array,
int $offset,
?int $length = null,
bool $preserve_keys = false
): array

array_slice() retorna a sequência de elementos de um array delimitado pelos parâmetros offset e length.

Parâmetros

array

O array de entrada.

offset

Se offset for não negativo, a sequência iniciará no início do array.

Se offset for negativo, a sequência iniciará a partir do fim do array.

Nota:

O parâmetro offset denota uma posição dentro do array, não das chaves.

length

Se length for positivo, então a sequência terá até essa quantidade de elementos.

Se o array for mais curto que length, então somente os elementos presentes serão retornados.

Se length for negativo então a sequência conterá até essa quantidade de elementos do final do array.

Se esse parâmetro for omitido, a sequência conterá todos os elementos a partir de offset até o final do array.

preserve_keys

Nota:

array_slice() não irá reordenar ou resetar os índices inteiros do array por padrão. Este comportamento pode ser alterado ao informar preserve_keys para true. Chaves string são sempre preservados, independente do parâmetro.

Valor Retornado

Retorna a parcela. Se o offset for maior que o tamanho do array, um array vazio é retornado.

Exemplos

Exemplo #1 Exemplos de array_slice()

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2); // retorna "c", "d", e "e"
$output = array_slice($input, -2, 1); // retorna "d"
$output = array_slice($input, 0, 3); // retorna "a", "b", e "c"

// Obverse as diferenças nas chaves retornadas
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>

O exemplo acima produzirá:

Array
(
    [0] => c
    [1] => d
)
Array
(
    [2] => c
    [3] => d
)

Exemplo #2 array_slice() e arrays baseados em 1

<?php
$input = array(1 => "a", "b", "c", "d", "e");
print_r(array_slice($input, 1, 2));
?>

O exemplo acima produzirá:

Array
(
    [0] => b
    [1] => c
)

Exemplo #3 array_slice() com chaves mistas

<?php
$ar = array('a'=>'apple', 'b'=>'banana', '42'=>'pear', 'd'=>'orange');
print_r(array_slice($ar, 0, 3));
print_r(array_slice($ar, 0, 3, true));
?>

O exemplo acima produzirá:

Array
(
    [a] => apple
    [b] => banana
    [0] => pear
)
Array
(
    [a] => apple
    [b] => banana
    [42] => pear
)

Veja Também

  • array_chunk() - Divide um array em pedaços
  • array_splice() - Remove uma parte array e a substitui por outra coisa
  • unset() - Remove a definição de uma variável informada


Remove uma parte array e a substitui por outra coisa

  • « array_slice
  • array_sum »
  • PHP Manual
  • Funções para Array
  • Remove uma parte array e a substitui por outra coisa

array_splice

(PHP 4, PHP 5, PHP 7, PHP 8)

array_splice — Remove uma parte array e a substitui por outra coisa

Descrição

array_splice(
array &$array,
int $offset,
?int $length = null,
mixed $replacement = []
): array

Remove os elementos especificados por offset e length do array array, e os substitui com os elementos do array replacement, se for especificado.

Nota:

Chaves numéricas em array não são preservadas.

Nota: Se replacement não for um array, ele será convertido para um array (i.e. (array) $replacement). Isso pode resultar em um comportamento inesperado ao usar um objeto ou replacement null.

Parâmetros

array

O array de entrada.

offset

Se offset for positivo então o começo da região removida será nesse deslocamento a partir do início do array array.

Se offset for negativo então o começo da região removida será nesse deslocamento a partir do final do array array.

length

Se length for omitido, remove tudo a partir de offset até o final do array.

Se length for especificado e for positivo, então essa quantidade de elementos será removida.

Se length for especificado e for negativo, então o final da região removida será essa quantidade de elementos a partir do final do array.

Se length for especificado e for zero, nenhum elemento será removido.

Dica

Para remover tudo a partir de offset até o final do array quando replacement também é especificado, use count($input) para length.

replacement

Se o array replacement for especificado, então os elementos removidos serão substituidos pelo elementos desse array.

Se offset e length são tais que nada é removido, então os elementos do array replacement serão inseridos no lugar especificado pelo offset.

Nota:

Chaves em replacement não são preservadas.

Se replacement for de apenas um elemento então não é necessário colocar array() ou colchetes ao redor dele, a não ser que elementos seja um array em si, um objeto ou null.

Valor Retornado

Retorna um array que consiste nos elementos extraídos.

Registro de Alterações

Versão | Descrição
8.0.0 | length agora é anulável.

Exemplos

Exemplo #1 Exemplos da array_splice()

<?php
$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 2);
var_dump($input);

$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 1, -1);
var_dump($input);

$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 1, count($input), "laranja");
var_dump($input);

$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, -1, 1, array("preto", "marrom"));
var_dump($input);
?>

O exemplo acima produzirá:

array(2) {
  [0]=>
  string(3) "vermelho"
  [1]=>
  string(5) "verde"
}
array(2) {
  [0]=>
  string(3) "vermelho"
  [1]=>
  string(6) "amarelo"
}
array(2) {
  [0]=>
  string(3) "vermelho"
  [1]=>
  string(6) "laranja"
}
array(5) {
  [0]=>
  string(3) "vermelho"
  [1]=>
  string(5) "verde"
  [2]=>
  string(4) "azul"
  [3]=>
  string(5) "preto"
  [4]=>
  string(6) "marrom"
}

Exemplo #2 Declarações equivalentes a vários exemplos da array_splice()

As seguintes declarações são equivalentes:

<?php

// adiciona dois elementos a $input
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));

// remove o último elemento de $input
array_pop($input);
array_splice($input, -1);

// remove o primeiro elemento de $input
array_shift($input);
array_splice($input, 0, 1);

// insere um elemento no início de $input
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));

// substitui o valor em $input no índice $x
$input[$x] = $y; // para arrays onde a chave é igual ao deslocamento
array_splice($input, $x, 1, $y);

?>

Veja Também

  • array_merge() - Combina um ou mais arrays
  • array_slice() - Extrai uma parcela de um array
  • unset() - Remove a definição de uma variável informada


Calcula a soma dos elementos de um array

  • « array_splice
  • array_udiff_assoc »
  • PHP Manual
  • Funções para Array
  • Calcula a soma dos elementos de um array

array_sum

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

array_sum — Calcula a soma dos elementos de um array

Descrição

array_sum(array $array): int|float

array_sum() retorna a soma dos valores de um array.

Parâmetros

array

O array de entrada.

Valor Retornado

Retorna a soma de valores como um inteiro ou float; 0 se o array estiver vazio.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora emite um E_WARNING quando os valores do array não puderem ser convertidos para int ou float. Anteriormente, arrays e objects eram ignorados enquanto outros valores eram convertidos para int. Adicionalmente, objetos que definem uma conversão numérica (ex.: GMP) agora são convertidos ao invés de ignorados.

Exemplos

Exemplo #1 Exemplos da array_sum()

<?php
$a = array(2, 4, 6, 8);
echo "soma(a) = ".array_sum($a)."\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "soma(b) = ".array_sum($b)."\n";
?>

O exemplo acima produzirá:

soma(a) = 20
soma(b) = 6.9


Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback

  • « array_sum
  • array_udiff_uassoc »
  • PHP Manual
  • Funções para Array
  • Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback

array_udiff_assoc

(PHP 5, PHP 7, PHP 8)

array_udiff_assoc — Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback

Descrição

array_udiff_assoc(array $array, array ...$arrays, callable $value_compare_func): array

Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback.

Nota: Por favor, note que esta função somente verifica uma dimensão de um array n-dimensional. Obviamente você pode checar dimensões mais profundas usando, por exemplo, array_udiff_assoc($array1[0], $array2[0], "some_comparison_func");.

Parâmetros

array

O primeiro array.

arrays

Arrays para comparar.

value_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Cuidado

A função chamada de ordenação deve lidar com qualquer valor de qualquer array em qualquer ordem, independentemente da ordem em que eles foram originalmente fornecidos. O motivo é que cada array individual é primeiramente ordenado antes de ser comparado com outros arrays. Por exemplo:

<?php
$arrayA = ["string", 1];
$arrayB = [["value" => 1]];
// $item1 e $item2 podem ser "string", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

Valor Retornado

array_udiff_assoc() retorna um array contendo todos os valores de array que não estão presentes em qualquer dos outros argumentos. Note que as chaves são usadas na comparação, ao contrário de array_diff() e array_udiff(). A comparação dos dados dos arrays é executada usando uma função de callback fornecida pelo usuário. Neste aspecto o comportamente é oposto ao de array_diff_assoc() que usa função interna para comparação.

Exemplos

Exemplo #1 Exemplo de array_udiff_assoc()

<?php
class cr {
private $priv_member;
function __construct($val)
{
$this->priv_member = $val;
}

static function comp_func_cr($a, $b)
{
if ($a->priv_member === $b->priv_member) return 0;
return ($a->priv_member > $b->priv_member)? 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),);

$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

O exemplo acima produzirá:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

Em nosso exemplo acima você vê que o par "1" => new cr(4) está presente em ambos os arrays e assim ele não está presente na saída da função.

Veja Também

  • array_diff() - Computa as diferenças entre arrays
  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice
  • array_diff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
  • array_udiff() - Computa a diferença de arrays usando uma função de callback para comparação dos dados
  • array_udiff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_uintersect() - Computa a interseção de array, comparando dados com uma função callback
  • array_uintersect_assoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
  • array_uintersect_uassoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas


Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback

  • « array_udiff_assoc
  • array_udiff »
  • PHP Manual
  • Funções para Array
  • Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback

array_udiff_uassoc

(PHP 5, PHP 7, PHP 8)

array_udiff_uassoc — Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback

Descrição

array_udiff_uassoc(
array $array,
array ...$arrays,
callable $value_compare_func,
callable $key_compare_func
): array

Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback.

Note que as chaves são usadas na comparação, ao contrário de array_diff() e array_udiff().

Parâmetros

array

O primeiro array.

arrays

Arrays para comparar.

value_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Cuidado

A função chamada de ordenação deve lidar com qualquer valor de qualquer array em qualquer ordem, independentemente da ordem em que eles foram originalmente fornecidos. O motivo é que cada array individual é primeiramente ordenado antes de ser comparado com outros arrays. Por exemplo:

<?php
$arrayA = ["string", 1];
$arrayB = [["value" => 1]];
// $item1 e $item2 podem ser "string", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

key_compare_func

A comparação das chaves (índices) é feita também por função de callback: key_compare_func. Este comportamento é contrário ao que array_udiff_assoc() faz, já que esta compara os índices usando uma função interna.

Valor Retornado

Retorna um array contendo todos os valores de array que não estão presentes em qualquer dos outros argumentos.

Exemplos

Exemplo #1 Exemplo de array_udiff_uassoc()

<?php
class cr {
private $priv_member;
function __construct($val)
{
$this->priv_member = $val;
}

static function comp_func_cr($a, $b)
{
if ($a->priv_member === $b->priv_member) return 0;
return ($a->priv_member > $b->priv_member)? 1:-1;
}

static function comp_func_key($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),);

$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>

O exemplo acima produzirá:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

Em nosso exemplo acima você vê que o par "1" => new cr(4) está presente em ambos os arrays e assim não está na saída da função. Mantenha em mente que você deve fornecer duas funções de callback.

Notas

Nota: Por favor note que esta função somente checa uma dimensão de um array n-dimensional. É claro que você pode checar dimensões mais profundas usando, por exemplo, array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.

Veja Também

  • array_diff() - Computa as diferenças entre arrays
  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice
  • array_udiff() - Computa a diferença de arrays usando uma função de callback para comparação dos dados
  • array_udiff_assoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_uintersect() - Computa a interseção de array, comparando dados com uma função callback
  • array_uintersect_assoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
  • array_uintersect_uassoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas


Computa a diferença de arrays usando uma função de callback para comparação dos dados

  • « array_udiff_uassoc
  • array_uintersect_assoc »
  • PHP Manual
  • Funções para Array
  • Computa a diferença de arrays usando uma função de callback para comparação dos dados

array_udiff

(PHP 5, PHP 7, PHP 8)

array_udiff — Computa a diferença de arrays usando uma função de callback para comparação dos dados

Descrição

array_udiff(array $array, array ...$arrays, callable $value_compare_func): array

Computa a diferença de arrays usando uma função de callback para comparação dos dados. Esta é contrária a array_diff() que usa uma função interna para comparar os dados.

Parâmetros

array

O primeiro array.

arrays

Arrays para comparar.

value_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Cuidado

A função chamada de ordenação deve lidar com qualquer valor de qualquer array em qualquer ordem, independentemente da ordem em que eles foram originalmente fornecidos. O motivo é que cada array individual é primeiramente ordenado antes de ser comparado com outros arrays. Por exemplo:

<?php
$arrayA = ["string", 1];
$arrayB = [["value" => 1]];
// $item1 e $item2 podem ser "string", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

Valor Retornado

Retorna um array contendo todos os valores de array que não estão presentes em qualquer dos outros argumentos.

Exemplos

Exemplo #1 Exemplo de array_udiff() usando Objetos stdClass

<?php
// Arrays para comprar
$array1 = array(new stdClass, new stdClass,
new stdClass, new stdClass,
);

$array2 = array(
new stdClass, new stdClass,
);

// Define algumas propriedades para cada objeto
$array1[0]->largura = 11; $array1[0]->altura = 3;
$array1[1]->largura = 7; $array1[1]->altura = 1;
$array1[2]->largura = 2; $array1[2]->altura = 9;
$array1[3]->largura = 5; $array1[3]->altura = 7;

$array2[0]->largura = 7; $array2[0]->altura = 5;
$array2[1]->largura = 9; $array2[1]->altura = 2;

function comparar_por_area($a, $b) {
$areaA = $a->largura * $a->altura;
$areaB = $b->largura * $b->altura;

if ($areaA < $areaB) {
return -1;
} elseif ($areaA > $areaB) {
return 1;
} else {
return 0;
}
}

print_r(array_udiff($array1, $array2, 'comparar_por_area'));
?>

O exemplo acima produzirá:

Array
(
    [0] => stdClass Object
        (
            [largura] => 11
            [altura] => 3
        )

    [1] => stdClass Object
        (
            [largura] => 7
            [altura] => 1
        )

)

Exemplo #2 Exemplo de array_udiff() usando Objetos DateTime

<?php
class MeuCalendario {
public $livres = array();
public $reservadas = array();

public function __construct($semana = 'now') {
$inicio = new DateTime($semana);
$inicio->modify('Monday this week midnight');
$fim = clone $inicio;
$fim->modify('Friday this week midnight');
$intervalo = new DateInterval('P1D');
foreach (new DatePeriod($inicio, $intervalo, $fim) as $tempoLivre) {
$this->livres[] = $tempoLivre;
}
}

public function marcarCompromisso(DateTime $data, $nota) {
$this->reservadas[] = array('data' => $data->modify('midnight'), 'nota' => $nota);
}

public function checarDisponibilidade() {
return array_udiff($this->livres, $this->reservadas, array($this, 'compararPersonalizado'));
}

public function compararPersonalizado($livres, $reservadas) {
if (is_array($livres)) $a = $livres['data'];
else $a = $livres;
if (is_array($reservadas)) $b = $reservadas['data'];
else $b = $reservadas;
if ($a == $b) {
return 0;
} elseif ($a > $b) {
return 1;
} else {
return -1;
}
}
}

// Cria um calendário para compromissos semanais
$meuCalendario = new MeuCalendario;

// Marca alguns compromissos para esta semana
$meuCalendario->marcarCompromisso(new DateTime('Monday this week'), "Limpando apartamento do GoogleGuy.");
$meuCalendario->marcarCompromisso(new DateTime('Wednesday this week'), "Fazendo uma viagem de snowboarding.");
$meuCalendario->marcarCompromisso(new DateTime('Friday this week'), "Corrigindo código bugado.");

// Checar disponibilidade de dias comparando datas $reservadas com datas $livres
echo "Estou disponível nos seguintes dias desta semana...\n\n";
foreach ($meuCalendario->checarDisponibilidade() as $livre) {
echo $livre->format('l'), "\n";
}
echo "\n\n";
echo "Estou ocupado(a) nos seguintes dias desta semana...\n\n";
foreach ($meuCalendario->reservadas as $reservada) {
echo $reservada['data']->format('l'), ": ", $reservada['nota'], "\n";
}
?>

O exemplo acima produzirá:

Estou disponível nos seguintes dias desta semana...

Tuesday
Thursday

Estou ocupado(a) nos seguintes dias desta semana...

Monday: Limpando apartamento do GoogleGuy.
Wednesday: Fazendo uma viagem de snowboarding.
Friday: Corrigindo código bugado.

Notas

Nota: Por favor note que esta função somente checa uma dimensão de um array n-dimensional. É claro que você pode checar dimensões mais profundas usando array_udiff($array1[0], $array2[0], "data_compare_func");.

Veja Também

  • array_diff() - Computa as diferenças entre arrays
  • array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice
  • array_diff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
  • array_udiff_assoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
  • array_udiff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_uintersect() - Computa a interseção de array, comparando dados com uma função callback
  • array_uintersect_assoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
  • array_uintersect_uassoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas


Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback

  • « array_udiff
  • array_uintersect_uassoc »
  • PHP Manual
  • Funções para Array
  • Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback

array_uintersect_assoc

(PHP 5, PHP 7, PHP 8)

array_uintersect_assoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback

Descrição

array_uintersect_assoc(array $array, array ...$arrays, callable $value_compare_func): array

Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback.

Note que as chaves são utilizadas na comparação, diferente de array_uintersect(). Os dados são comparados utilizando funções de callback.

Parâmetros

array

Primeiro array.

arrays

Arrays para comparar.

value_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Cuidado

A função chamada de ordenação deve lidar com qualquer valor de qualquer array em qualquer ordem, independentemente da ordem em que eles foram originalmente fornecidos. O motivo é que cada array individual é primeiramente ordenado antes de ser comparado com outros arrays. Por exemplo:

<?php
$arrayA = ["string", 1];
$arrayB = [["value" => 1]];
// $item1 e $item2 podem ser "string", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

Valor Retornado

Retorna um array contendo todos os valores de array que estão presentes em todos os argumentos.

Exemplos

Exemplo #1 Exemplo de array_uintersect_assoc()

<?php
$array1 = array("a" => "verde", "b" => "marrom", "c" => "azul", "vermelho");
$array2 = array("a" => "VERDE", "B" => "marrom", "amarelo", "vermelho");

print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>

O exemplo acima produzirá:

Array
(
    [a] => verde
)

Veja Também

  • array_uintersect() - Computa a interseção de array, comparando dados com uma função callback
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_intersect_uassoc() - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
  • array_uintersect_uassoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas


Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas

  • « array_uintersect_assoc
  • array_uintersect »
  • PHP Manual
  • Funções para Array
  • Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas

array_uintersect_uassoc

(PHP 5, PHP 7, PHP 8)

array_uintersect_uassoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas

Descrição

array_uintersect_uassoc(
array $array1,
array ...$arrays,
callable $value_compare_func,
callable $key_compare_func
): array

Computa a interseção de arrays com checagem adicional de índice, compara dados e índices utilizando funções de callback separadas.

Parâmetros

array1

Primeiro array.

arrays

Outros arrays.

value_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Cuidado

A função chamada de ordenação deve lidar com qualquer valor de qualquer array em qualquer ordem, independentemente da ordem em que eles foram originalmente fornecidos. O motivo é que cada array individual é primeiramente ordenado antes de ser comparado com outros arrays. Por exemplo:

<?php
$arrayA = ["string", 1];
$arrayB = [["value" => 1]];
// $item1 e $item2 podem ser "string", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

key_compare_func

Função para comparação das chaves (índices).

Valor Retornado

Retorna um array contendo todos os valores de array1 que estão presentes em todos os argumentos.

Exemplos

Exemplo #1 Exemplo de array_uintersect_uassoc()

<?php
$array1 = array("a" => "verde", "b" => "marrom", "c" => "azul", "vermelho");
$array2 = array("a" => "VERDE", "B" => "marrom", "amarelo", "vermelho");

print_r(array_uintersect_uassoc($array1, $array2, "strcasecmp", "strcasecmp"));
?>

O exemplo acima produzirá:

Array
(
    [a] => verde
    [b] => marrom
)

Veja Também

  • array_uintersect() - Computa a interseção de array, comparando dados com uma função callback
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_intersect_uassoc() - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
  • array_uintersect_assoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback


Computa a interseção de array, comparando dados com uma função callback

  • « array_uintersect_uassoc
  • array_unique »
  • PHP Manual
  • Funções para Array
  • Computa a interseção de array, comparando dados com uma função callback

array_uintersect

(PHP 5, PHP 7, PHP 8)

array_uintersect — Computa a interseção de array, comparando dados com uma função callback

Descrição

array_uintersect(array $array, array ...$arrays, callable $value_compare_func): array

Computa a interseção de arrays, compara as informações usando uma função callback.

Parâmetros

array

O primeiro array.

arrays

Arrays para comparar.

value_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Cuidado

A função chamada de ordenação deve lidar com qualquer valor de qualquer array em qualquer ordem, independentemente da ordem em que eles foram originalmente fornecidos. O motivo é que cada array individual é primeiramente ordenado antes de ser comparado com outros arrays. Por exemplo:

<?php
$arrayA = ["string", 1];
$arrayB = [["value" => 1]];
// $item1 e $item2 podem ser "string", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

Valor Retornado

Retorna um array contendo todos os valores de array que estão presentes em todos os argumentos.

Exemplos

Exemplo #1 Exemplo da array_uintersect()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>

O exemplo acima produzirá:

Array
(
    [a] => green
    [b] => brown
    [0] => red
)

Veja Também

  • array_intersect() - Calcula a interseção entre arrays
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_uintersect_assoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
  • array_uintersect_uassoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas


Remove os valores duplicados de um array

  • « array_uintersect
  • array_unshift »
  • PHP Manual
  • Funções para Array
  • Remove os valores duplicados de um array

array_unique

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_unique — Remove os valores duplicados de um array

Descrição

array_unique(array $array, int $flags = SORT_STRING): array

Recebe uma entrada array e retorna um novo array sem valores duplicados.

Note que as chaves são preservadas. Se vários elementos forem iguais sob as flags fornecidas, então a chave e o valor do primeiro elemento igual serão retidos.

Nota: Dois elementos são considerados iguais se, e somente se, (string) $elem1 === (string) $elem2. Em palavras: quando a represetação em string é a mesma, o primeiro elemento será usado.

Parâmetros

array

O array de entrada.

flags

O segundo parâmetro opcional flags pode ser utilizado para modificar o comportamento de comparação usando estes valores:

Flags de tipo de comparação:

  • SORT_REGULAR - compara os itens normalmente (não altera tipos)
  • SORT_NUMERIC - compara itens numericamente
  • SORT_STRING - compara itens como strings
  • SORT_LOCALE_STRING - compara itens como strings baseado na localidade atual.

Valor Retornado

Retorna o array filtrado.

Registro de Alterações

Versão | Descrição
7.2.0 | Se flags for SORT_STRING, o array anterior foi copiado e os elementos não únicos foram removidos (sem empacotar o array em seguida), mas um novo array é criado ao adicionar os novos elementos. Isto pode resultar em índices numéricos diferentes.

Exemplos

Exemplo #1 Exemplo de array_unique()

<?php
$input = array("a" => "verde", "vermelho", "b" => "verde", "azul", "vermelho");
$result = array_unique($input);
print_r($result);
?>

O exemplo acima produzirá:

Array
(
    [a] => verde
    [0] => vermelho
    [1] => azul
)

Exemplo #2 array_unique() e tipos

<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>

O exemplo acima produzirá:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Notas

Nota: Note que array_unique() não se destina a funcionar em arrays multidimensionais.

Veja Também

  • array_count_values() - Conta as ocorrências de cada valor distinto em um array


Adiciona um ou mais elementos no início de um array

  • « array_unique
  • array_values »
  • PHP Manual
  • Funções para Array
  • Adiciona um ou mais elementos no início de um array

array_unshift

(PHP 4, PHP 5, PHP 7, PHP 8)

array_unshift — Adiciona um ou mais elementos no início de um array

Descrição

array_unshift(array &$array, mixed ...$values): int

array_unshift() adiciona os elementos passados como argumentos no início de array. Note que a lista de elementos é adicionada como um todo, de forma que eles ficam na mesma ordem. Todas as chaves numéricas serão modificadas para começar a contar de zero enquanto chaves literais permanecerão inalteradas.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

values

Os valores a serem adicionados.

Valor Retornado

Retorna o novo número de elementos em array.

Registro de Alterações

Versão | Descrição
7.3.0 | Essa função agora pode ser chamada com apenas um parâmetro. Anteriomente, pelo menos dois parâmetros eram necessários.

Exemplos

Exemplo #1 Exemplo de array_unshift()

<?php
$cesta = [
"laranja",
"banana"
];

array_unshift($cesta, "melancia", "morango");
var_dump($cesta);
?>

O exemplo acima produzirá:

array(4) {
  [0] =>
  string(8) "melancia"
  [1] =>
  string(7) "morango"
  [2] =>
  string(7) "laranja"
  [3] =>
  string(6) "banana"
}

Exemplo #2 Uso de arrays associativos

Se um array associativo é pre anexado a outro array associativo, o array anexado é numeralmente indexado no array anterior.

<?php
$frutas = [
'maca' => [
'McIntosh' => 'vermelho',
'Granny Smith' => 'verde',
],
'laranja' => [
'Navel' => 'laranja',
'Valencia' => 'laranja',
],
];
$vegetais = [
'alface' => [
'Iceberg' => 'verde',
'Butterhead' => 'verde',
],
'cenoura' => [
'Deep Purple Hybrid' => 'roxo',
'Imperator' => 'laranja',
],
'pepino' => [
'Kirby' => 'verde',
'Gherkin' => 'verde',
],
];

array_unshift($frutas, $vegetais);
var_dump($frutas);

O exemplo acima produzirá:

array(3) {
  [0] =>
  array(3) {
    'alface' =>
    array(2) {
      'Iceberg' =>
      string(5) "verde"
      'Butterhead' =>
      string(5) "verde"
    }
    'cenoura' =>
    array(2) {
      'Deep Purple Hybrid' =>
      string(4) "roxo"
      'Imperator' =>
      string(7) "laranja"
    }
    'pepino' =>
    array(2) {
      'Kirby' =>
      string(5) "verde"
      'Gherkin' =>
      string(5) "verde"
    }
  }
  'maca' =>
  array(2) {
    'McIntosh' =>
    string(8) "vermelho"
    'Granny Smith' =>
    string(5) "verde"
  }
  'laranja' =>
  array(2) {
    'Navel' =>
    string(7) "laranja"
    'Valencia' =>
    string(7) "laranja"
  }
}

Veja Também

  • array_merge() - Combina um ou mais arrays
  • array_shift() - Retira o primeiro elemento de um array
  • array_push() - Adiciona um ou mais elementos no final de um array
  • array_pop() - Extrai um elemento do final do array


Retorna todos os valores de um array

  • « array_unshift
  • array_walk_recursive »
  • PHP Manual
  • Funções para Array
  • Retorna todos os valores de um array

array_values

(PHP 4, PHP 5, PHP 7, PHP 8)

array_values — Retorna todos os valores de um array

Descrição

array_values(array $array): array

array_values() retorna todos os valores do array array num array indexado numericamente.

Parâmetros

array

O array.

Valor Retornado

Retorna um array indexado de valores.

Exemplos

Exemplo #1 Exemplo de array_values()

<?php
$array = array("tamanho" => "G", "cor" => "dourado");
print_r(array_values ($array));
?>

O exemplo acima produzirá:

Array
(
    [0] => G
    [1] => dourado
)

Veja Também

  • array_keys() - Retorna todas as chaves ou uma parte das chaves de um array
  • array_combine() - Cria um array usando um array para chaves e outro para valores


Aplica um função do usuário recursivamente para cada membro de um array

  • « array_values
  • array_walk »
  • PHP Manual
  • Funções para Array
  • Aplica um função do usuário recursivamente para cada membro de um array

array_walk_recursive

(PHP 5, PHP 7, PHP 8)

array_walk_recursive — Aplica um função do usuário recursivamente para cada membro de um array

Descrição

array_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool

Aplica a função callback definida pelo usuário para cada elemento do array array. Esta função irá recursar em arrays mais profundos.

Parâmetros

array

O array de entrada.

callback

Tipicamente, callback usa dois parâmetros. O valor do parâmetro array sendo o primeiro, e a chave/índice o segundo.

Nota:

Se callback precisa trabalhar com atuais valores da array, especifique o primeiro parâmetro da callback com uma referência. Então, as modificações feitas para estes elementos serão feitas no próprio array original.

arg

Se o parâmetro opcional arg for fornecido, ele será passado como o terceiro parâmetro para o callback.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo da array_walk_recursive()

<?php
$doce = array('a' => 'maça', 'b' => 'banana');
$frutas = array('doce' => $doce, 'azedo' => 'limão');

function test_print($item, $chave)
{
echo "$chave contém $item\n";
}

array_walk_recursive($frutas, 'test_print');
?>

O exemplo acima produzirá:

a contém maça
b contém banana
azedo contém limão

Você pode notar que a chave 'doce' nunca é exibida. Qualquer chave que contém um array não será passada para a função.

Veja Também

  • array_walk() - Aplica uma determinada função em cada elemento de um array


Aplica uma determinada função em cada elemento de um array

  • « array_walk_recursive
  • array »
  • PHP Manual
  • Funções para Array
  • Aplica uma determinada função em cada elemento de um array

array_walk

(PHP 4, PHP 5, PHP 7, PHP 8)

array_walk — Aplica uma determinada função em cada elemento de um array

Descrição

array_walk(array|object &$array, callable $callback, mixed $arg = null): bool

Aplica uma função definida pelo usuário passada pelo argumento callback em cada elemento de array.

array_walk() não é afetado pelo ponteiro interno de array. array_walk() percorrerá por todo array desconsiderando a posição do ponteiro.

Parâmetros

array

O array de entrada.

callback

Normalmente, o callback recebe dois parâmetros. O valor do parâmetro array sendo o primeiro, e a chave/índice o segundo.

Nota:

Se callback precisar alterar realmente os valores do array, especifique que o primeiro parâmetro de callback deve ser passado por referência. Então qualquer mudança feita nesses elementos serão feitas no próprio array também.

Nota:

Muitas funções internas (por exemplo strtolower()) lançarão um alerta se forem passados mais argumentos que o esperado e não forem utilizados diretamente no callback.

Apenas os valores de um array podem potencialmente ser alterados; sua estrutura não pode ser alterada, por exemplo, o programador não pode adicionar, remover ou reordenar elementos. Se o callback não respeitar esta regra, o comportamento desta função é indefinido e imprevisível.

arg

Se o parâmetro opcional arg é fornecido, será passado como o terceiro parâmetro para o callback callback.

Valor Retornado

Retorna true.

Erros/Exceções

A partir do PHP 7.1.0, uma exceção ArgumentCountError será lançada se a função callback requerer mais de 2 parâmetros (o valor e a chave do item de array), ou se mais de 3 argumentos no caso de arg ser informado. Anteriormente, nesses casos um erro de nível E_WARNING seria gerado em cada vez que array_walk() chamasse o callback.

Registro de Alterações

Versão | Descrição
8.0.0 | Se callback espera que o segundo ou terceiro parâmetro seja passado por referência, essa função agora emite um E_WARNING.

Exemplos

Exemplo #1 Exemplo da array_walk()

<?php
$frutas = array("d" => "limao", "a" => "laranja", "b" => "banana", "c" => "melancia");

function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}

function test_print($item2, $key)
{
echo "$key. $item2\n";
}

echo "Antes ...:\n";
array_walk($frutas, 'test_print');

array_walk($frutas, 'test_alter', 'fruta');
echo "... e depois:\n";

array_walk($frutas, 'test_print');
?>

O exemplo acima produzirá:

Antes ...:
d. limao
a. laranja
b. banana
c. melancia
... e depois:
d. fruit: limao
a. fruit: laranja
b. fruit: banana
c. fruit: melancia

Exemplo #2 Exemplo de array_walk() e funções anônimas

<?php
$elements = ['a', 'b', 'c'];

array_walk($elements, function ($value, $key) {
echo "{$key} => {$value}\n";
});

?>

O exemplo acima produzirá:

0 => a
1 => b
2 => c

Veja Também

  • array_walk_recursive() - Aplica um função do usuário recursivamente para cada membro de um array
  • iterator_apply() - Chama uma função para cada elemento em um iterador
  • list() - Cria variáveis como se fossem arrays
  • each() - Retorna o par atual de chave e valor de um array e avança o seu cursor
  • call_user_func_array() - Call a callback with an array of parameters
  • array_map() - Aplica uma função em todos os elementos dos arrays dados
  • foreach


Cria um array

  • « array_walk
  • arsort »
  • PHP Manual
  • Funções para Array
  • Cria um array

array

(PHP 4, PHP 5, PHP 7, PHP 8)

array — Cria um array

Descrição

array(mixed ...$values): array

Cria um array. Leia a seção sobre tipo array para mais informação sobre o que é um array.

Parâmetros

values

A sintaxe "índice => valores", separados por vírgulas, definem índice e valores respectivamente. O índice pode ser do tipo string ou inteiro. Quando o índice é omitido, um índice inteiro é automaticamente gerado, começando em 0. Se o índice é um inteiro, o próximo índice gerado será igual ao maior índice inteiro + 1. Note que quando dois índices idênticos são definidos, o último sobrescreve o primeiro.

Inserir uma vírgula após a última entrada definida do array, mesmo sendo incomum, é uma sintaxe válida.

Valor Retornado

Retorna um array dos parâmetros. Os parâmetros podem ser fornecidos com um índice com o operador =>. Leia a seção sobre tipo de array para mais informação sobre o que é um array.

Exemplos

O exemplo a seguir demonstra como criar um array de duas dimensões, como especificar chaves para arrays associativos, e como pular e continuar índices numéricos em arrays normais.

Exemplo #1 Exemplo de array()

<?php
$frutas = array (
"frutas" => array("a" => "laranja", "b" => "banana", "c" => "maçã"),
"numeros" => array(1, 2, 3, 4, 5, 6),
"buracos" => array("primeiro", 5 => "segundo", "terceiro")
);
?>

Exemplo #2 Indexação automática com array()

<?php
$array = array(1, 1, 1, 1, 1, 8 => 1, 4 => 1, 19, 3 => 13);
print_r($array);
?>

O exemplo acima produzirá:

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

Note que o índice 3 é definido duas vezes, e retêm seu último valor 13. O índice 4 é definido depois do índice 8, e o índice gerado a seguir (valor 19) é 9, uma vez que o maior índice era 8.

Esse exemplo cria um array com o índices iniciando em 1.

Exemplo #3 Array com índices a partir do 1 com array()

<?php
$firstquarter = array(1 => 'Janeiro', 'Fevereiro', 'Março');
print_r($firstquarter);
?>

O exemplo acima produzirá:

Array
(
    [1] => Janeiro
    [2] => Fevereiro
    [3] => Março
)

Como no Perl, pode-se acessar o valor de um array dentro de aspas. Entretanto, com o PHP é necessário envolver o array entre chaves {}.

Exemplo #4 Acessando um array dentro de chaves

<?php

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!

?>

Notas

Nota:

array() é um construtor de linguagem usado para representar arrays literais, e não uma função normal.

Veja Também

  • array_pad() - Expande um array para um certo comprimento utilizando um determinado valor
  • list() - Cria variáveis como se fossem arrays
  • count() - Conta todos os elementos de um array ou de um objeto Countable
  • range() - Cria um array contendo uma faixa de elementos
  • foreach
  • O tipo array


Ordena um array em ordem descrescente e mantém a associação de índices

  • « array
  • asort »
  • PHP Manual
  • Funções para Array
  • Ordena um array em ordem descrescente e mantém a associação de índices

arsort

(PHP 4, PHP 5, PHP 7, PHP 8)

arsort — Ordena um array em ordem descrescente e mantém a associação de índices

Descrição

arsort(array &$array, int $flags = SORT_REGULAR): true

Ordena o array em ordem decrescente, de forma que suas chaves mantenham suas correlações com os valores aos quais estão associadas.

É usada principalmente para ordenar arrays associativos onde a ordem dos elementos é um fator significativo.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

flags

O segundo parâmetro opcional flags pode ser usado para modificar o comportamento da ordenação usando estes valores:

Flags dos tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente; os detalhes são descritos na seção operadores de comparação
  • SORT_NUMERIC - compara os elementos numericamente
  • SORT_STRING - compara os elementos como strings
  • SORT_LOCALE_STRING - compara os elementos como strings, com base na localidade atual. A localidade pode ser alterada usando setlocale()
  • SORT_NATURAL - compara os elementos como strings usando "ordenação natural" como natsort()
  • SORT_FLAG_CASE - pode ser combinada (usando o operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem fazer distinção entre maiúsculas e minúsculas

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de arsort()

<?php
$frutas = array("d" => "limão", "a" => "laranja", "b" => "banana", "c" => "maçã");
arsort($frutas);
foreach ($frutas as $chave => $valor) {
echo "$chave = $valor\n";
}
?>

O exemplo acima produzirá:

c = maçã
d = limao
a = laranja
b = banana

As frutas foram ordenadas na ordem alfabética inversa, e os índices associados a cada elemento foram mantidos.

Veja Também

  • sort() - Ordena um array em ordem ascendente
  • asort() - Ordena um array em ordem crescente e mantém a associação de índices
  • Comparação entre as funções de ordenação de array


Ordena um array em ordem crescente e mantém a associação de índices

  • « arsort
  • compact »
  • PHP Manual
  • Funções para Array
  • Ordena um array em ordem crescente e mantém a associação de índices

asort

(PHP 4, PHP 5, PHP 7, PHP 8)

asort — Ordena um array em ordem crescente e mantém a associação de índices

Descrição

asort(array &$array, int $flags = SORT_REGULAR): true

Ordena um array em ordem crescente, se forma que suas chaves mantenham suas correlações com os valores aos quais estão associadas.

Isto é usado principalmente ao ordenar arrays associativos onde a ordem real dos elementos é significativa.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

flags

O segundo parâmetro opcional flags pode ser usado para modificar o comportamento da ordenação usando estes valores:

Flags dos tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente; os detalhes são descritos na seção operadores de comparação
  • SORT_NUMERIC - compara os elementos numericamente
  • SORT_STRING - compara os elementos como strings
  • SORT_LOCALE_STRING - compara os elementos como strings, com base na localidade atual. A localidade pode ser alterada usando setlocale()
  • SORT_NATURAL - compara os elementos como strings usando "ordenação natural" como natsort()
  • SORT_FLAG_CASE - pode ser combinada (usando o operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem fazer distinção entre maiúsculas e minúsculas

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de asort()

<?php
$frutas = array("d" => "limão", "a" => "laranja", "b" => "banana", "c" => "maçã");
asort($frutas);
foreach( $frutas as $chave => $valor ){
echo "$chave = $valor\n";
}
?>

O exemplo acima produzirá:

b = banana
a = laranja
d = limão
c = maçã

As frutas foram ordenadas na ordem alfabética, e os índices associados a cada elemento foram mantidos.

Veja Também

  • sort() - Ordena um array em ordem ascendente
  • arsort() - Ordena um array em ordem descrescente e mantém a associação de índices
  • Comparação entre as funções de ordenação de array


Cria um array contendo variáveis e seus valores

  • « asort
  • count »
  • PHP Manual
  • Funções para Array
  • Cria um array contendo variáveis e seus valores

compact

(PHP 4, PHP 5, PHP 7, PHP 8)

compact — Cria um array contendo variáveis e seus valores

Descrição

compact(array|string $var_name, array|string ...$var_names): array

Cria um array contendo variáveis e seus valores.

Para cada um dos parâmetros passados, compact() procura uma variável com o nome especificado na tabela de símbolos e a adiciona no array de saída de forma que o nome da variável será a chave e o seu conteúdo será o valor para esta chave. Em resumo, ela faz o oposto de extract().

Nota:

Antes do PHP 7.3, quaisquer strings que não estão definidas serão silenciosamente ignoradas.

Parâmetros

var_name
var_names

compact() recebe um número variável de parâmetros. Cada parâmetro pode ser ou uma string contendo o nome da variável, ou um array de nomes de variáveis. O array pode conter outros arrays de nomes de variáveis; compact() o manipula recursivamente.

Valor Retornado

Retorna a saída do array com todas as variáveis adicionadas a ele.

Erros/Exceções

compact() emite um erro nível E_WARNING se uma determinada string se refere a uma variável não definida.

Registro de Alterações

Versão | Descrição
8.0.0 | Se uma determinada string fizer referência a uma variável não definida, um erro de nível E_WARNING será emitido.
7.3.0 | compact() agora emite um erro nível E_NOTICE se uma determinada string se refere a uma variável não definida. Anteriomente, strings como essa seriam ignoradas silenciosamente.

Exemplos

Exemplo #1 Exemplo de compact()

<?php
$cidade = "Sao Paulo";
$estado = "SP";
$evento = "SIGGRAPH";

$vars_localidade = array("cidade", "estado");

$result = compact("evento", $vars_localidade);
print_r($result);
?>

O exemplo acima produzirá:

Array
(
    [evento] => SIGGRAPH
    [cidade] => Sao Paulo
    [estado] => SP
)

Notas

Nota: Gotcha

Devido a variáveis variável não poderem ser usadas com arrays superglobais do PHP dentro de funções, os arrays superglobais não podem ser passados na compact().

Veja Também

  • extract() - Importa variáveis para a tabela de símbolos a partir de um array


Conta todos os elementos de um array ou de um objeto Countable

  • « compact
  • current »
  • PHP Manual
  • Funções para Array
  • Conta todos os elementos de um array ou de um objeto Countable

count

(PHP 4, PHP 5, PHP 7, PHP 8)

count — Conta todos os elementos de um array ou de um objeto Countable

Descrição

count(Countable|array $value, int $mode = COUNT_NORMAL): int

Conta todos os elementos de um array quando usado com um array. Quando usado com um objeto que implementa a interface Countable, retorna o valor de retorno do método Countable::count().

Parâmetros

value

Um array ou objeto Countable.

mode

Se o parâmetro opcional mode for definido para COUNT_RECURSIVE (ou 1), a função count() irá recursivamente contar o array. Isto é particularmente útil para contar todos os elementos de um array multidimensional.

Cuidado

count() pode detectar recursividade para evitar um loop infinito, mas irá emitir um aviso E_WARNING cada vez que o fizer (caso o array contenha a si mesmo mais de uma vez) e retornará uma contagem maior que a esperada.

Valor Retornado

Retorna o número de elementos em value. Antes do PHP 8.0.0, se o parâmetro não fosse um array nem um object que implementa a interface Countable, 1 seria retornado, a menos que value fosse null, e neste caso 0 seria retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | count() irá agora disparar TypeError em tipos contáveis inválidos passados no parâmetro value.
7.2.0 | count() irá agora emitir um aviso em tipos contáveis inválidos passados no parâmetro value.

Exemplos

Exemplo #1 Exemplo da função count()

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));

$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));
?>

O exemplo acima produzirá:

int(3)
int(3)

Exemplo #2 Exemplo de count() em não-Countable|array (contra exemplo - não deve ser feito)

<?php
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));

var_dump(count(null));

var_dump(count(false));
?>

O exemplo acima produzirá:

int(3)
int(0)
int(1)

Saída do exemplo acima no PHP 7.2:

int(3)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12
int(0)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14
int(1)

Saída do exemplo acima no PHP 8:

int(3)

Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable .. on line 12

Exemplo #3 Uso recursivo da função count()

<?php
$comidas = array('frutas' => array('laranja', 'banana', 'maçã'),
'vegetais' => array('cenoura', 'couve', 'ervilha'));

// contagem recursiva
var_dump(count($comidas, COUNT_RECURSIVE));

// contagem normal
var_dump(count($comidas));

?>

O exemplo acima produzirá:

int(8)
int(2)

Exemplo #4 Objeto Countable

<?php
class CountOfMethods implements Countable
{
private function someMethod()
{
}

public function count(): int
{
return count(get_class_methods($this));
}
}

$obj = new CountOfMethods();
var_dump(count($obj));
?>

O exemplo acima produzirá:

int(2)

Veja Também

  • is_array() - Verifica se a variável é um array
  • isset() - Determina se uma variável está declarada e é diferente de null
  • empty() - Determina se uma variável está vazia
  • strlen() - Retorna o tamanho de uma string
  • is_countable() - Verifica se o conteúdo de uma variável é um valor contável
  • Arrays


Retorna o elemento atual em um array

  • « count
  • each »
  • PHP Manual
  • Funções para Array
  • Retorna o elemento atual em um array

current

(PHP 4, PHP 5, PHP 7, PHP 8)

current — Retorna o elemento atual em um array

Descrição

current(array|object $array): mixed

Todo array tem um ponteiro interno para o elemento "atual", o qual é inicializado para apontar para o primeiro elemento inserido em um array.

Parâmetros

array

O array.

Valor Retornado

A função current() simplesmente retorna o valor do elemento do array que está sendo apontado pelo ponteiro interno. Ela não move o ponteiro de forma alguma. Se o ponteiro interno aponta para além do final da lista de elementos ou o array está vazio, current() retorna false.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.1.0 | Chamar esta função em objects tornou-se defasado. Converta o object para um array usando get_mangled_object_vars() primeiro ou, em vez disso, use os métodos fornecidos por uma classe que implementa Iterator, como ArrayIterator.
7.4.0 | Instâncias de classes SPL agora são tratadas como objetos vazios que não possuem propriedades em vez de chamar o método da interface Iterator com o mesmo nome desta função.

Exemplos

Exemplo #1 Exemplo do uso de current() e amigos

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport); // $mode = 'foot';
$mode = end($transport); // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';

$arr = array();
var_dump(current($arr)); // bool(false)

$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>

Notas

Nota: Os resultados de chamar current() em um array vazio e em um array, cujo ponteiro interno aponta para além do fim dos elementos, são indistinguíveis de um elemento bool false. Para percorrer adequadamente um array que pode conter elementos false, veja a estrutura de controle foreach. Para ainda usar current() e checar adequadamente se o valor é realmente um elemento do array, a key() do elemento current() deve ser verificada como estritamente diferente de null.

Veja Também

  • end() - Define o ponteiro interno de um array para seu último elemento
  • key() - Retorna uma chave de um array
  • each() - Retorna o par atual de chave e valor de um array e avança o seu cursor
  • prev() - Retrocede o ponteiro interno de um array
  • reset() - Faz o ponteiro interno de um array apontar para o seu primeiro elemento
  • next() - Avança o ponteiro interno de um array
  • foreach


Retorna o par atual de chave e valor de um array e avança o seu cursor

  • « current
  • end »
  • PHP Manual
  • Funções para Array
  • Retorna o par atual de chave e valor de um array e avança o seu cursor

each

(PHP 4, PHP 5, PHP 7)

each — Retorna o par atual de chave e valor de um array e avança o seu cursor

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.2.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

each(array|object &$array): array

Retorna o par atual de chave e valor de um array e avança o seu cursor.

Depois da execução de each(), o cursor do array irá apontar para o próximo elemento do array, ou após o último elemento se ele atingir o final do array. Deve-se utilizar reset() se for desejado percorrer o array novamente usando a função.

Parâmetros

array

O array de entrada.

Valor Retornado

Retorna o par atual de chave e valor do array. Este par é retornado em um array de quatro elementos, com as chaves 0, 1, key e value. Elementos 0 e key contêm o nome da chave do elemento do array; e 1 e value contêm os dados.

Se o cursor interno do array estiver apontando para além do final do conteúdo do array, each() retorna false.

Exemplos

Exemplo #1 Exemplos de each()

<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>

$bar agora contém os seguintes pares de chaves e valores:

Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)

<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>

$bar agora contém os seguintes pares de chaves e valores:

Array
(
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
)

each() é tipicamente usada em conjunto com list() para percorrer um array, por exemplo:

Exemplo #2 Percorrendo um array com each()

<?php
$fruta = array('a' => 'amora', 'b' => 'banana', 'c' => 'caju');

reset($fruta);
while (list($chave, $valor) = each($fruta)) {
echo "$chave => $valor\n";
}
?>

O exemplo acima produzirá:

a => amora
b => banana
c => caju

Cuidado

Pelo fato da atribuição de um array a outra variável redefinir o ponteiro original do array, o exemplo acima deveria causar um loop sem fim se a variável $fruta fosse atribuída a outra variável dentro do loop.

Aviso

each() também aceitará objetos, porém pode retornar resultados inesperados. Portanto não é recomendado iterar por propriedades de objeto com each().

Veja Também

  • key() - Retorna uma chave de um array
  • list() - Cria variáveis como se fossem arrays
  • current() - Retorna o elemento atual em um array
  • reset() - Faz o ponteiro interno de um array apontar para o seu primeiro elemento
  • next() - Avança o ponteiro interno de um array
  • prev() - Retrocede o ponteiro interno de um array
  • foreach
  • Object Iteration


Define o ponteiro interno de um array para seu último elemento

  • « each
  • extract »
  • PHP Manual
  • Funções para Array
  • Define o ponteiro interno de um array para seu último elemento

end

(PHP 4, PHP 5, PHP 7, PHP 8)

end — Define o ponteiro interno de um array para seu último elemento

Descrição

end(array|object &$array): mixed

end() avança o ponteiro interno de array até o último elemento, e retorna seu valor.

Parâmetros

array

O array. Este array é passado por referência porque ele é modificado pela função. Isto significa que deve-se passar a esta função uma variável real, e não uma função retornando um array, porque somente variáveis reais podem ser passadas por referência.

Valor Retornado

Retorna o valor do último elemento ou false para array vazio.

Registro de Alterações

Versão | Descrição
8.1.0 | Chamar esta função em objects tornou-se defasado. Converta o object para um array usando get_mangled_object_vars() primeiro ou, em vez disso, use os métodos fornecidos por uma classe que implementa Iterator, como ArrayIterator.
7.4.0 | Instâncias de classes SPL agora são tratadas como objetos vazios que não possuem propriedades em vez de chamar o método da interface Iterator com o mesmo nome desta função.

Exemplos

Exemplo #1 Exemplo de end()

<?php

$frutas = array('melancia', 'banana', 'morango');
echo end($frutas); // morango

?>

Veja Também

  • current() - Retorna o elemento atual em um array
  • each() - Retorna o par atual de chave e valor de um array e avança o seu cursor
  • prev() - Retrocede o ponteiro interno de um array
  • reset() - Faz o ponteiro interno de um array apontar para o seu primeiro elemento
  • next() - Avança o ponteiro interno de um array
  • array_key_last() - Obtém a última chave de um array


Importa variáveis para a tabela de símbolos a partir de um array

  • « end
  • in_array »
  • PHP Manual
  • Funções para Array
  • Importa variáveis para a tabela de símbolos a partir de um array

extract

(PHP 4, PHP 5, PHP 7, PHP 8)

extract — Importa variáveis para a tabela de símbolos a partir de um array

Descrição

extract(array &$array, int $flags = EXTR_OVERWRITE, string $prefix = ""): int

Importar variáveis a partir de um array para a tabela de símbolos corrente.

Verifica cada chave se ela tem nome de variável válido. Também verifica por colisões com já existente variáveis na tabela de símbolos.

Aviso

Não use extract() em dados inseguros, como informações externas (e.g. $_GET, $_FILES).

Parâmetros

array

Um array associativo. Esta função trata chaves como nome de variáveis e valores com os valores da variáveis. Para cada par chave/valor ela cria uma variável na atual tabela de símbolo, seguindo os parâmetros flags e prefix.

Você precisa usar um array associativo, um array numericamente indexado não irá produzir resultado até que você use EXTR_PREFIX_ALL ou EXTR_PREFIX_INVALID.

flags

A forma como inválida/chaves numéricas e colisões são tratadas é determinada por flags. Pode ser um dos seguintes valores:

EXTR_OVERWRITE
Se houver uma colisão, sobrescreve a variável existente.
EXTR_SKIP
Se houver uma colisão, não sobrescreve a variável existente.
EXTR_PREFIX_SAME
Se houver uma colisão, adiciona um prefixo ao nome da variável definido pelo argumento prefix.
EXTR_PREFIX_ALL
Adiciona um prefixo ao nome de todas as variáveis definido por prefix.
EXTR_PREFIX_INVALID
Adiciona um prefixo definido por prefix apenas para variáveis como nomes inválidos ou numéricos.
EXTR_IF_EXISTS
Só sobrescreve a variável se ela já existe na tabela de símbolos corrente, caso contrário, não faz nada. Isso é útil quando se quer definir uma lista de variáveis válidas e então extrair só as que foram definidas em $_REQUEST, por exemplo.
EXTR_PREFIX_IF_EXISTS
Só cria nomes de variáveis usando o prefixo se na tabela de símbolos já existe uma variável com o nome sem esse prefixo.
EXTR_REFS
Extrai variáveis como referências, ou seja, os valores das variáveis importadas ainda estarão referenciando os valores do parâmetro array. Essa opção pode ser usada sozinha ou em conjunto com as outras usando o operador 'ou' em flags.

Se flags não for especificado, é assumido o valor EXTR_OVERWRITE.

prefix

Note que prefix só é necessário se flags for EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, ou EXTR_PREFIX_INVALID ou EXTR_PREFIX_IF_EXISTS. Se o nome com o prefixo não for um nome de variável válido, ela não será importada para a tabela de símbolos. Prefixos são automaticamente separados da chave do array pelo caractere underscore.

Valor Retornado

Retorna o número de variáveis importadas com sucesso para a tabela de símbolo.

Exemplos

Exemplo #1 Exemplo da extract()

Uma possível utilização de extract() é na importação de variáveis contidas num array associativo retornado pela função wddx_deserialize().

<?php

/* Suponha que $var_array é um array retornado pela função
wddx_deserialize */

$size = "large";
$var_array = array("color" => "blue",
"size" => "medium",
"shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_size\n";

?>

O exemplo acima produzirá:

blue, large, sphere, medium

O $size não foi sobrescrito, porque nós especificamos EXTR_PREFIX_SAME, o que resultou na criação da variável $wddx_size. Se EXTR_SKIP fosse utilizado, então $wddx_size não seria criada. EXTR_OVERWRITE teria feito com que $size tivesse o valor "medium", e EXTR_PREFIX_ALL resultaria em novas variáveis com os nomes $wddx_color, $wddx_size, e $wddx_shape.

Notas

Aviso

Não use extract() em dados não confiáveis, como entrada de usuário (por exemplo, $_GET, $_FILES, etc.). Se usar, certifique-se de que está usando um dos valores de flags que não fazem sobrescrita como EXTR_SKIP e tenha cuidado para que extraia na mesma ordem que é definida em variables_order no php.ini.

Veja Também

  • compact() - Cria um array contendo variáveis e seus valores
  • list() - Cria variáveis como se fossem arrays


Checa se um valor existe em um array

  • « extract
  • key_exists »
  • PHP Manual
  • Funções para Array
  • Checa se um valor existe em um array

in_array

(PHP 4, PHP 5, PHP 7, PHP 8)

in_array — Checa se um valor existe em um array

Descrição

in_array(mixed $needle, array $haystack, bool $strict = false): bool

Procura por needle (agulha) no haystack (palheiro) usando comparação frouxa a não ser que strict seja definido.

Parâmetros

needle

O valor procurado.

Nota:

Se needle for uma string, a comparação é feita diferenciando caracteres maiúsculos e minúsculos.

haystack

O array.

strict

Se o terceiro parâmetro strict for true então in_array() também irá checar os tipos de needle em haystack.

Nota:

Antes do PHP 8.0.0, uma needle string irá corresponder a um valor de 0 no array em modo não estrito, e vice-versa. Isso pode levar a resultados indesejáveis. Casos extremos similares exitem para outros tipos, também. Se você não tem certeza absoluta dos tipos dos valores involvidos, sempre use a flag strict para evitar comportamento inesperado.

Valor Retornado

Retorna true se needle é encontrado no array, false caso contrário.

Exemplos

Exemplo #1 Exemplo da in_array()

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Tem Irix";
}
if (in_array("mac", $os)) {
echo "Tem mac";
}
?>

A segunda condicional falha pois in_array() diferencia letras minúsculas e maiúsculas. Então, a saída seria:

Tem Irix

Exemplo #2 in_array() com checagem de tipos

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
echo "'12.4' encontrado com checagem de tipo\n";
}

if (in_array(1.13, $a, true)) {
echo "1.13 encontrado com checagem de tipo\n";
}
?>

O exemplo acima produzirá:

1.13 encontrado com checagem de tipo

Exemplo #3 Exemplo de in_array() passando um array como um needle

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
echo "'ph' foi encontrado\n";
}

if (in_array(array('f', 'i'), $a)) {
echo "'fi' foi encontrado\n";
}

if (in_array('o', $a)) {
echo "'o' foi encontrado\n";
}
?>

O exemplo acima produzirá:

'ph' foi encontrado
    'o' foi encontrado

Veja Também

  • array_search() - Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado
  • isset() - Determina se uma variável está declarada e é diferente de null
  • array_key_exists() - Verifica se uma chave ou índice existe em um array


Sinônimo de array_key_exists

  • « in_array
  • key »
  • PHP Manual
  • Funções para Array
  • Sinônimo de array_key_exists

key_exists

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

key_exists — Sinônimo de array_key_exists()

Descrição

Esta função é um apelido para: array_key_exists().


Retorna uma chave de um array

  • « key_exists
  • krsort »
  • PHP Manual
  • Funções para Array
  • Retorna uma chave de um array

key

(PHP 4, PHP 5, PHP 7, PHP 8)

key — Retorna uma chave de um array

Descrição

key(array|object $array): int|string|null

key() retorna a chave da posição atual de um array.

Parâmetros

array

O array.

Valor Retornado

A função key() simplesmente retorna a chave do elemento do array que está atualmente sendo apontada pelo ponteiro interno. Isso não move o ponteiro de nenhuma forma. Se o ponteiro interno aponta além do fim de elementos da lista ou o array está vazio, key() retorna null.

Registro de Alterações

Versão | Descrição
8.1.0 | Chamar esta função em objects tornou-se defasado. Converta o object para um array usando get_mangled_object_vars() primeiro ou, em vez disso, use os métodos fornecidos por uma classe que implementa Iterator, como ArrayIterator.
7.4.0 | Instâncias de classes SPL agora são tratadas como objetos vazios que não possuem propriedades em vez de chamar o método da interface Iterator com o mesmo nome desta função.

Exemplos

Exemplo #1 Exemplo da key()

<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');

// este ciclo exibirá toda a chave do array associativo
// onde o valor é igual a "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array), "\n";
}
next($array);
}
?>

O exemplo acima produzirá:

fruit1
fruit4
fruit5

Veja Também

  • current() - Retorna o elemento atual em um array
  • next() - Avança o ponteiro interno de um array
  • array_key_first() - Obtém a primeira chave de um array
  • foreach


Ordena um array pelas chaves em ordem descrescente

  • « key
  • ksort »
  • PHP Manual
  • Funções para Array
  • Ordena um array pelas chaves em ordem descrescente

krsort

(PHP 4, PHP 5, PHP 7, PHP 8)

krsort — Ordena um array pelas chaves em ordem descrescente

Descrição

krsort(array &$array, int $flags = SORT_REGULAR): true

Ordena o array pelas chaves em ordem descrescente.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

flags

O segundo parâmetro opcional flags pode ser usado para modificar o comportamento da ordenação usando estes valores:

Flags dos tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente; os detalhes são descritos na seção operadores de comparação
  • SORT_NUMERIC - compara os elementos numericamente
  • SORT_STRING - compara os elementos como strings
  • SORT_LOCALE_STRING - compara os elementos como strings, com base na localidade atual. A localidade pode ser alterada usando setlocale()
  • SORT_NATURAL - compara os elementos como strings usando "ordenação natural" como natsort()
  • SORT_FLAG_CASE - pode ser combinada (usando o operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem fazer distinção entre maiúsculas e minúsculas

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de krsort()

<?php
$frutas = array("d"=>"limão", "a"=>"laranja", "b"=>"banana", "c"=>"maçã");
krsort($frutas);
foreach ($frutas as $chave => $valor) {
echo "$chave = $valor\n";
}
?>

O exemplo acima produzirá:

d = limão
c = maçã
b = banana
a = laranja

Veja Também

  • sort() - Ordena um array em ordem ascendente
  • ksort() - Ordena um array pelas chaves em ordem crescente
  • Comparação entre as funções de ordenação de array


Ordena um array pelas chaves em ordem crescente

  • « krsort
  • list »
  • PHP Manual
  • Funções para Array
  • Ordena um array pelas chaves em ordem crescente

ksort

(PHP 4, PHP 5, PHP 7, PHP 8)

ksort — Ordena um array pelas chaves em ordem crescente

Descrição

ksort(array &$array, int $flags = SORT_REGULAR): true

Ordena o array pelas chaves em ordem crescente.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

flags

O segundo parâmetro opcional flags pode ser usado para modificar o comportamento da ordenação usando estes valores:

Flags dos tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente; os detalhes são descritos na seção operadores de comparação
  • SORT_NUMERIC - compara os elementos numericamente
  • SORT_STRING - compara os elementos como strings
  • SORT_LOCALE_STRING - compara os elementos como strings, com base na localidade atual. A localidade pode ser alterada usando setlocale()
  • SORT_NATURAL - compara os elementos como strings usando "ordenação natural" como natsort()
  • SORT_FLAG_CASE - pode ser combinada (usando o operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem fazer distinção entre maiúsculas e minúsculas

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo da ksort()

<?php
$frutas = array("d"=>"limão", "a"=>"laranja", "b" =>"banana", "c"=>"maçã");
ksort($frutas);
foreach ($frutas as $chave => $valor) {
echo "$chave = $valor\n";
}
?>

O exemplo acima produzirá:

a = laranja
b = banana
c = maçã
d = limão

Exemplo #2 ksort() com chaves int

<?php
$a = [0 => 'Primeiro', 2 => 'Último', 1 => 'Intermediário'];
var_dump($a);
ksort($a);
var_dump($a);
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(5) "Primeiro"
  [2]=>
  string(4) "Último"
  [1]=>
  string(6) "Intermediário"
}
array(3) {
  [0]=>
  string(5) "Primeiro"
  [1]=>
  string(6) "Intermediário"
  [2]=>
  string(4) "Último"
}

Veja Também

  • sort() - Ordena um array em ordem ascendente
  • krsort() - Ordena um array pelas chaves em ordem descrescente
  • Comparação entre as funções de ordenação de array


Cria variáveis como se fossem arrays

  • « ksort
  • natcasesort »
  • PHP Manual
  • Funções para Array
  • Cria variáveis como se fossem arrays

list

(PHP 4, PHP 5, PHP 7, PHP 8)

list — Cria variáveis como se fossem arrays

Descrição

list(mixed $var, mixed ...$vars = ?): array

Assim como array(), não é exatamente uma função, e sim uma construção da própria linguagem. list() é usada para criar uma lista de variáveis em apenas uma operação. String não pode ser desempacotada e expressões como list() não pode ser completamente vazia.

Nota:

Antes, PHP 7.1.0, list() apenas funcionava em arrays numéricos e assume o índice numérico começando em 0.

Parâmetros

var

A variável.

vars

Outras variaveis.

Valor Retornado

Retorna o array atribuído.

Registro de Alterações

Versão | Descrição
7.3.0 | Foi adicionado suporte para atribuições de referência na desestruturação de array.
7.1.0 | Agora é possível especificar chaves em list(). Isso habilita desestruturar os arrays com chaves não-integer e não-sequencial.

Exemplos

Exemplo #1 Exemplo da list()

<?php

$info = array('Café', 'marrom', 'cafeína');

// Listando todas as variáveis
list($bebida, $cor, $substancia) = $info;
echo "$bebida é $cor e $substancia o faz especial.\n";

// Listando apenas alguns deles
list($bebida, , $substancia) = $info;
echo "$bebida tem $substancia.\n";

// Ou ignoramos os primeiros valores para conseguir apenas o último
list( , , $substancia) = $info;
echo "I need $substancia!\n";

// list() não funciona com strings
list($bar) = "abcde";
var_dump($bar); // NULL
?>

Exemplo #2 Exemplo da list()

<?php
$resultado = $pdo->query("SELECT id, nome FROM empregados");
while (list($id, $nome) = $resultado->fetch(PDO::FETCH_NUM)) {
echo "id: $id, nome: $nome\n";
}
?>

Exemplo #3 list() e ordem das definições de índice

<?php

list($a, list($b, $c)) = array(1, array(2, 3));

var_dump($a, $b, $c);

?>
int(1)
int(2)
int(3)

Exemplo #4 Usando list() com índices de array

A ordem em que são definidos os índices do array para ser consumido pela list() é irrelevante.

<?php
$foo = array(2 => 'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list($x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);

O retorno desse script é o seguinte (note a ordem dos elementos em comparação com a ordem que foram escritos com a sintaxe list()):

array(4) {
  [2]=>
  string(1) "a"
  ["foo"]=>
  string(1) "b"
  [0]=>
  string(1) "c"
  [1]=>
  string(1) "d"
}
string(1) "c"
string(1) "d"
string(1) "a"

Exemplo #5 list() com chaves

A partir do PHP 7.1.0 list() também pode agora conter chaves explícitas, na qual pode ser dada expressões arbitrárias. A mistura chaves de integer e string é permitida; no entanto, elementos com e sem chaves não podem ser misturados.

<?php
$dados = [
["id" => 1, "nome" => 'Mario'],
["id" => 2, "nome" => 'Frederico'],
];
foreach ($dados as ["id" => $id, "nome" => $nome]) {
echo "id: $id, nome: $nome\n";
}
echo PHP_EOL;
list(1 => $segundo, 3 => $quarto) = [1, 2, 3, 4];
echo "$segundo, $quarto\n";

O exemplo acima produzirá:

id: 1, name: Mario
id: 2, name: Frederico

2, 4

Veja Também

  • each() - Retorna o par atual de chave e valor de um array e avança o seu cursor
  • array() - Cria um array
  • extract() - Importa variáveis para a tabela de símbolos a partir de um array


Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas

  • « list
  • natsort »
  • PHP Manual
  • Funções para Array
  • Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas

natcasesort

(PHP 4, PHP 5, PHP 7, PHP 8)

natcasesort — Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas

Descrição

natcasesort(array &$array): true

natcasesort() é uma versão case-insensitive (não diferencia letras maiúsculas de minúsculas) da natsort().

Essa função implementa o algoritmo de ordenação que ordena strings alfanuméricas da forma que os humanos fariam mantendo associação de chave/valor. Essa forma de ordenação é denominada "ordenação natural".

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo da natcasesort()

<?php
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

sort($array1);
echo "Standard sorting\n";
print_r($array1);

natcasesort($array2);
echo "\nNatural order sorting (case-insensitive)\n";
print_r($array2);
?>

O exemplo acima produzirá:

Standard sorting
Array
(
    [0] => IMG0.png
    [1] => IMG3.png
    [2] => img1.png
    [3] => img10.png
    [4] => img12.png
    [5] => img2.png
)

Natural order sorting (case-insensitive)
Array
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

Para mais informação veja: Martin Pool's » Natural Order String Comparison page.

Veja Também

  • natsort() - Ordena um array utilizando o algoritmo de "ordem natural"
  • Comparação entre as funções de ordenação de array
  • strnatcmp() - String comparisons using a "natural order" algorithm
  • strnatcasecmp() - Comparação de strings insensível a maiúsculas/minúsculas usando o algoritmo de "ordem natural"


Ordena um array utilizando o algoritmo de "ordem natural"

  • « natcasesort
  • next »
  • PHP Manual
  • Funções para Array
  • Ordena um array utilizando o algoritmo de "ordem natural"

natsort

(PHP 4, PHP 5, PHP 7, PHP 8)

natsort — Ordena um array utilizando o algoritmo de "ordem natural"

Descrição

natsort(array &$array): true

Essa função implementa um algoritmo que ordena strings alfanuméricas da forma como um ser humano faria enquanto mantém associações de chave/valor. Isto é descrito como "ordenação natural". Um exemplo da diferença entre este algoritmo e o algoritmo de ordenação comum de strings (usado em sort()) pode ser visto no exemplo abaixo:

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de natsort() demonstrando seu uso básico

<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

sort($array1);
echo "Classificação padrão\n";
print_r($array1);

natsort($array2);
echo "\nClassificação em ordem natural\n";
print_r($array2);
?>

O exemplo acima produzirá:

Classificação padrão
Array
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Classificação em ordem natural
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Para mais informações, consulte a página » Comparação de Strings em Ordem Natural do autor Martin Pool.

Exemplo #2 Exemplos de natsort() demonstrando potenciais ciladas

<?php
echo "Números negativos\n";
$negativos = array('-5','3','-2','0','-1000','9','1');
print_r($negativos);
natsort($negativos);
print_r($negativos);

echo "Zero à esquerda\n";
$zeros = array('09', '8', '10', '009', '011', '0');
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>

O exemplo acima produzirá:

Números negativos
Array
(
    [0] => -5
    [1] => 3
    [2] => -2
    [3] => 0
    [4] => -1000
    [5] => 9
    [6] => 1
)
Array
(
    [2] => -2
    [0] => -5
    [4] => -1000
    [3] => 0
    [6] => 1
    [1] => 3
    [5] => 9
)

Zero à esquerda
Array
(
    [0] => 09
    [1] => 8
    [2] => 10
    [3] => 009
    [4] => 011
    [5] => 0
)
Array
(
    [5] => 0
    [1] => 8
    [3] => 009
    [0] => 09
    [2] => 10
    [4] => 011
)

Veja Também

  • natcasesort() - Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas
  • Comparação entre as funções de ordenação de array
  • strnatcmp() - String comparisons using a "natural order" algorithm
  • strnatcasecmp() - Comparação de strings insensível a maiúsculas/minúsculas usando o algoritmo de "ordem natural"


Avança o ponteiro interno de um array

  • « natsort
  • pos »
  • PHP Manual
  • Funções para Array
  • Avança o ponteiro interno de um array

next

(PHP 4, PHP 5, PHP 7, PHP 8)

next — Avança o ponteiro interno de um array

Descrição

next(array|object &$array): mixed

next() funciona de forma semelhante a current(), com uma diferença. Ele avança o ponteiro interno do array em uma posição antes de retornar o valor do elemento. Isso significa que ela retorna o próximo valor do array avançando o ponteiro interno em uma posição.

Parâmetros

array

O array a ser afetado.

Valor Retornado

Retorna o elemento do array que está na próxima posição que é apontada pelo ponteiro interno do array, ou false caso não existam mais elementos.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.1.0 | Chamar esta função em objects tornou-se defasado. Converta o object para um array usando get_mangled_object_vars() primeiro ou, em vez disso, use os métodos fornecidos por uma classe que implementa Iterator, como ArrayIterator.
7.4.0 | Instâncias de classes SPL agora são tratadas como objetos vazios que não possuem propriedades em vez de chamar o método da interface Iterator com o mesmo nome desta função.

Exemplos

Exemplo #1 Exemplo de uso da next() e funções relacionadas

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'bike';
$mode = end($transport); // $mode = 'plane';
?>

Notas

Nota: O final do array não é distinguível de um elemento bool false. Para atravessar um array que contenha elementos false, veja a função foreach. Para continuar utilizando next() e verificar se o fim do array foi atingido, verifique se key() é null.

Veja Também

  • current() - Retorna o elemento atual em um array
  • end() - Define o ponteiro interno de um array para seu último elemento
  • prev() - Retrocede o ponteiro interno de um array
  • reset() - Faz o ponteiro interno de um array apontar para o seu primeiro elemento
  • each() - Retorna o par atual de chave e valor de um array e avança o seu cursor


Sinônimo de current

  • « next
  • prev »
  • PHP Manual
  • Funções para Array
  • Sinônimo de current

pos

(PHP 4, PHP 5, PHP 7, PHP 8)

pos — Sinônimo de current()

Descrição

Esta função é um apelido para: current()


Retrocede o ponteiro interno de um array

  • « pos
  • range »
  • PHP Manual
  • Funções para Array
  • Retrocede o ponteiro interno de um array

prev

(PHP 4, PHP 5, PHP 7, PHP 8)

prev — Retrocede o ponteiro interno de um array

Descrição

prev(array|object &$array): mixed

Retrocede o ponteiro interno do array.

prev() funciona como next(), exceto que ela retrocede o ponteiro interno do array ao invés de avançá-lo.

Parâmetros

array

O array de entrada.

Valor Retornado

Retorna o valor do array que está na posição anterior à posição apontada pelo ponteiro interno, ou false se não houver mais elementos.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.1.0 | Chamar esta função em objects tornou-se defasado. Converta o object para um array usando get_mangled_object_vars() primeiro ou, em vez disso, use os métodos fornecidos por uma classe que implementa Iterator, como ArrayIterator.
7.4.0 | Instâncias de classes SPL agora são tratadas como objetos vazios que não possuem propriedades em vez de chamar o método da interface Iterator com o mesmo nome desta função.

Exemplos

Exemplo #1 Exemplo de uso de prev() e funções relacionadas

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'bike';
$mode = end($transport); // $mode = 'plane';
?>

Notas

Nota: Você não conseguirá distinguir o começo de um array de um elemento bool false. Para conseguir identificar o início do array, veja se key() do elemento prev() não seja null.

Veja Também

  • current() - Retorna o elemento atual em um array
  • end() - Define o ponteiro interno de um array para seu último elemento
  • next() - Avança o ponteiro interno de um array
  • reset() - Faz o ponteiro interno de um array apontar para o seu primeiro elemento
  • each() - Retorna o par atual de chave e valor de um array e avança o seu cursor


Cria um array contendo uma faixa de elementos

  • « prev
  • reset »
  • PHP Manual
  • Funções para Array
  • Cria um array contendo uma faixa de elementos

range

(PHP 4, PHP 5, PHP 7, PHP 8)

range — Cria um array contendo uma faixa de elementos

Descrição

range(string|int|float $start, string|int|float $end, int|float $step = 1): array

Cria um array contendo uma faixa de elementos.

Se ambos start e end forem strings, e step é int, o array produzido será uma sequência de bytes. Em outros casos, o array produzido será uma sequência de números.

A sequência é crescente se start é menor ou igual a end. Em outros casos, a sequência é decrescente.

Parâmetros

start

O primeiro valor da sequência.

end

O último valor possível da sequência.

step

step indica o tamanho do deslocamento entre os os valores produzidos na sequência.

step pode ser negativo em sequências decrescentes.

Se step é um float sem uma parte fracional, ele é interpretado como int.

Valor Retornado

Retorna uma sequência de elementos como um array onde o primeiro elemento é start progredindo a até end, com cada valor da sequência separados por step valores.

O último elemento do array retornado pode ser end ou um valor anterior da sequência, a depender do valor de step.

Se ambos start e end são strings, e step é int, o array produzido será uma sequ?ncia de bytes, geralmente as letras latinas no padrão ASCII.

Se start, end, ou step forem float, o array produzido será uma sequ?ncia de floats.

Em outros casos, o array produzido será uma sequência de int.

Erros/Exceções

  • Se step é 0, um erro ValueError é lançado.
  • se start, end, ou step não for is_finite(), um erro ValueError é lançado.
  • Se step é negativo, mas o array produzido é crescente ($start <= $end), um erro ValueError é lançado.
  • Se start ou end é um string vazia '', um aviso E_WARNING é emitido e a string vazia é interpretada como 0.
  • Se start ou end forem uma string não numérica com mais de um byte, um aviso E_WARNING é emitido.
  • Se start ou end é uma string que pode ser implicitamente convertida para um int, um aviso E_WARNING é emitido.
  • Se step é um float, e start e end forem uma string não numérica, um aviso E_WARNING é emitido.

Registro de Alterações

Versão | Descrição
8.3.0 | Se ambos start e end forem strings então range() nem sempre produzirá um array de bytes. Anteriormente, se um dos valores limite for uma string numérica, então o outro valor string é implicitamente convertido para um int.
8.3.0 | Um aviso E_WARNING agora é emitido se start ou end é uma string implicitamente conversível para int se quaisquer valores limite é interpretado como um número.
8.3.0 | Um aviso E_WARNING agora é emitido se start ou end é uma string não numérica com mais de um byte.
8.3.0 | Um aviso E_WARNING agora é emitido se start ou end é uma string vazia.
8.3.0 | Se step é um float sem parte fracionária, ele será interpretado como um int.
8.3.0 | Um erro ValueError agora é lançado se step é negativo quando da produção de um array crescente.
8.3.0 | Um erro ValueError agora é lançado se step não for finito.
8.3.0 | Um erro TypeError agora é lançado se start ou end é um array, object ou resource. Anteriormente eles eram implicitamente convertidos para int.

Exemplos

Exemplo #1 range() examples

<?php
echo implode(', ', range(0, 12)), PHP_EOL;

echo implode(', ', range(0, 100, 10)), PHP_EOL;

echo implode(', ', range('a', 'i')), PHP_EOL;

echo implode(', ', range('c', 'a')), PHP_EOL;

echo implode(', ', range('A', 'z')), PHP_EOL;
?>

O exemplo acima produzirá:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
a, b, c, d, e, f, g, h, i
c, b, a
A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, [, \, ], ^, _, `, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z

Veja Também

  • shuffle() - Embaralha um array
  • array_fill() - Preenche um array com valores
  • foreach


Faz o ponteiro interno de um array apontar para o seu primeiro elemento

  • « range
  • rsort »
  • PHP Manual
  • Funções para Array
  • Faz o ponteiro interno de um array apontar para o seu primeiro elemento

reset

(PHP 4, PHP 5, PHP 7, PHP 8)

reset — Faz o ponteiro interno de um array apontar para o seu primeiro elemento

Descrição

reset(array|object &$array): mixed

reset() retrocede o ponteiro interno de array para o primeiro elemento e retorna o valor do primeiro elemento do array.

Parâmetros

array

O array de entrada.

Valor Retornado

Retorna o valor do primeiro elemento do array, ou false se o array estiver vazio.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Registro de Alterações

Versão | Descrição
8.1.0 | Chamar esta função em objects tornou-se defasado. Converta o object para um array usando get_mangled_object_vars() primeiro ou, em vez disso, use os métodos fornecidos por uma classe que implementa Iterator, como ArrayIterator.
7.4.0 | Instâncias de classes SPL agora são tratadas como objetos vazios que não possuem propriedades em vez de chamar o método da interface Iterator com o mesmo nome desta função.

Exemplos

Exemplo #1 Exemplo da reset()

<?php

$array = array('primero passo', 'segundo passo', 'terceiro passo', 'quarto passo');

// por definição, o ponteiro está sobre o primeiro elemento
echo current($array)."<br />\n"; // "Primeiro passo"

// pula dois passos
next($array);
next($array);
echo current($array)."<br />\n"; // "passo três"

// reinicia o ponteiro, começa novamente o primeiro passo
reset($array);
echo current($array)."<br />\n"; // "primeiro passo"

?>

Notas

Nota: O valor retornado em um array vazio não é diferente de o valor retornado no caso de um array contendo um primeiro elemento bool false. Para verificar corretamente o primeiro elemento de um array que possa conter elementos false, primeiro verifique se count() do array, ou verifique se key() não é null, depois de chamar reset().

Veja Também

  • current() - Retorna o elemento atual em um array
  • each() - Retorna o par atual de chave e valor de um array e avança o seu cursor
  • end() - Define o ponteiro interno de um array para seu último elemento
  • next() - Avança o ponteiro interno de um array
  • prev() - Retrocede o ponteiro interno de um array
  • array_key_first() - Obtém a primeira chave de um array


Ordena um array em ordem descrescente

  • « reset
  • shuffle »
  • PHP Manual
  • Funções para Array
  • Ordena um array em ordem descrescente

rsort

(PHP 4, PHP 5, PHP 7, PHP 8)

rsort — Ordena um array em ordem descrescente

Descrição

rsort(array &$array, int $flags = SORT_REGULAR): true

Ordena array pelos valores em ordem descrescente.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota: Esta função atribui novas chaves aos elementos do array. Ela removerá todas as chaves existentes que possam ter sido atribuídas, em vez de apenas reordenar as chaves.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

flags

O segundo parâmetro opcional flags pode ser usado para modificar o comportamento da ordenação usando estes valores:

Flags dos tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente; os detalhes são descritos na seção operadores de comparação
  • SORT_NUMERIC - compara os elementos numericamente
  • SORT_STRING - compara os elementos como strings
  • SORT_LOCALE_STRING - compara os elementos como strings, com base na localidade atual. A localidade pode ser alterada usando setlocale()
  • SORT_NATURAL - compara os elementos como strings usando "ordenação natural" como natsort()
  • SORT_FLAG_CASE - pode ser combinada (usando o operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem fazer distinção entre maiúsculas e minúsculas

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de rsort()

<?php
$frutas = array ("limão", "laranja", "banana", "maçã");
rsort ($frutas);
foreach( $frutas as $chave => $valor ){
echo "$chave = $valor\n";
}
?>

O exemplo acima produzirá:

0 = maçã
1 = limão
2 = laranja
3 = banana

As frutas foram ordenadas em ordem alfabética decrescente.

Veja Também

  • sort() - Ordena um array em ordem ascendente
  • arsort() - Ordena um array em ordem descrescente e mantém a associação de índices
  • krsort() - Ordena um array pelas chaves em ordem descrescente
  • Comparação entre as funções de ordenação de array


Embaralha um array

  • « rsort
  • sizeof »
  • PHP Manual
  • Funções para Array
  • Embaralha um array

shuffle

(PHP 4, PHP 5, PHP 7, PHP 8)

shuffle — Embaralha um array

Descrição

shuffle(array &$array): true

Essa função embaralha (mistura de forma aleatória os elementos de) um array.

Cuidado

Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.

Se aleatoriedade criptograficamente segura for necessária, a classe Random\Randomizer pode ser usada com o mecanismo Random\Engine\Secure. Para casos de uso simples, as funções random_int() e random_bytes() fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema operacional.

Parâmetros

array

O array.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
7.1.0 | O algoritmo interno de randomização mudou para o Gerado de Números Aleatórios » Mersenne Twister no lugar da função rand do libc.

Exemplos

Exemplo #1 Exemplo de shuffle()

<?php
$numeros = range(1,20);
shuffle($numeros);
foreach ($numeros as $numero) {
echo "$numero ";
}
?>

Notas

Nota: Esta função atribui novas chaves aos elementos do array. Ela removerá todas as chaves existentes que possam ter sido atribuídas, em vez de apenas reordenar as chaves.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Veja Também

  • Random\Randomizer::shuffleArray() - Get a permutation of an array
  • Random\Randomizer::shuffleBytes() - Get a byte-wise permutation of a string
  • Random\Randomizer::pickArrayKeys() - Select random array keys
  • Comparação entre as funções de ordenação de array


Sinônimo de count

  • « shuffle
  • sort »
  • PHP Manual
  • Funções para Array
  • Sinônimo de count

sizeof

(PHP 4, PHP 5, PHP 7, PHP 8)

sizeof — Sinônimo de count()

Descrição

Esta função é um apelido para: count().


Ordena um array em ordem ascendente

  • « sizeof
  • uasort »
  • PHP Manual
  • Funções para Array
  • Ordena um array em ordem ascendente

sort

(PHP 4, PHP 5, PHP 7, PHP 8)

sort — Ordena um array em ordem ascendente

Descrição

sort(array &$array, int $flags = SORT_REGULAR): true

Ordena os valores do array em ordem ascendente, modificando o array.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota: Esta função atribui novas chaves aos elementos do array. Ela removerá todas as chaves existentes que possam ter sido atribuídas, em vez de apenas reordenar as chaves.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

flags

O segundo parâmetro opcional flags pode ser usado para modificar o comportamento da ordenação usando estes valores:

Flags dos tipos de ordenação:

  • SORT_REGULAR - compara os elementos normalmente; os detalhes são descritos na seção operadores de comparação
  • SORT_NUMERIC - compara os elementos numericamente
  • SORT_STRING - compara os elementos como strings
  • SORT_LOCALE_STRING - compara os elementos como strings, com base na localidade atual. A localidade pode ser alterada usando setlocale()
  • SORT_NATURAL - compara os elementos como strings usando "ordenação natural" como natsort()
  • SORT_FLAG_CASE - pode ser combinada (usando o operador bit a bit OR) com SORT_STRING ou SORT_NATURAL para ordenar strings sem fazer distinção entre maiúsculas e minúsculas

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.

Exemplos

Exemplo #1 Exemplo de sort()

<?php

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

O exemplo acima produzirá:

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

As frutas foram classificadas em ordem alfabética.

Exemplo #2 Exemplo de sort() utilizando comparações naturais ignorando maiúsculas e minúculas

<?php

$fruits = array(
"Orange1", "orange2", "Orange3", "orange20"
);
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($fruits as $key => $val) {
echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

O exemplo acima produzirá:

fruits[0] = Orange1
fruits[1] = orange2
fruits[2] = Orange3
fruits[3] = orange20

A lista foi ordenada como se tivesse sido utilizada natcasesort().

Notas

Nota: Como muitas funções de ordenação do PHP, sort() usa uma implementação da » Quicksort. O pivot é escolhido no meio da partição, o que resulta num processamento rápido para arrays já ordenados. Mas isso é um detalhe de implementação, que não pode ser garantido.

Aviso

Cuidado ao ordenar arrays com valores com tipos variados, dado que sort() pode produzir resultados inesperados, mesmo se flags for SORT_REGULAR.

Veja Também

  • rsort() - Ordena um array em ordem descrescente
  • Comparação entre as funções de ordenação de array


Ordena um array com uma função de comparação definida pelo usuário e mantém associações de índices

  • « sort
  • uksort »
  • PHP Manual
  • Funções para Array
  • Ordena um array com uma função de comparação definida pelo usuário e mantém associações de índices

uasort

(PHP 4, PHP 5, PHP 7, PHP 8)

uasort — Ordena um array com uma função de comparação definida pelo usuário e mantém associações de índices

Descrição

uasort(array &$array, callable $callback): true

Ordena o array de forma que as chaves mantenham suas correlações com os valores aos quais estão associadas, usando uma função de comparação definida pelo usuário.

Esta função é usada principalmente para ordenar arrays associativos onde a ordem real dos elementos é significativa.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

callback

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.
8.0.0 | Se a função callback espera que um parâmetro seja passado por referência, esta função agora emitirá um E_WARNING.

Exemplos

Exemplo #1 Exemplo básico de uasort()

<?php
// Função de comparação
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}

// Array a ser ordenado
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
print_r($array);

// Ordena e mostra o array resultante
uasort($array, 'cmp');
print_r($array);
?>

O exemplo acima produzirá:

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Veja Também

  • usort() - Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário
  • uksort() - Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.
  • Comparação entre as funções de ordenação de array


Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.

  • « uasort
  • usort »
  • PHP Manual
  • Funções para Array
  • Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.

uksort

(PHP 4, PHP 5, PHP 7, PHP 8)

uksort — Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.

Descrição

uksort(array &$array, callable $callback): true

Ordena o array pelas chaves usando uma função de comparação fornecida pelo usuário para determinar a ordem.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota:

Redefine o ponteiro interno do array para o primeiro elemento.

Parâmetros

array

O array de entrada.

callback

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.
8.0.0 | Se a função callback espera que um parâmetro seja passado por referência, esta função agora emitirá um E_WARNING.

Exemplos

Exemplo #1 uksort() example

<?php
function cmp($a, $b)
{
$a = preg_replace('@^(a|an|the) @', '', $a);
$b = preg_replace('@^(a|an|the) @', '', $b);
return strcasecmp($a, $b);
}

$a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);

uksort($a, "cmp");

foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?>

O exemplo acima produzirá:

an apple: 3
a banana: 4
the Earth: 2
John: 1

Veja Também

  • usort() - Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário
  • uasort() - Ordena um array com uma função de comparação definida pelo usuário e mantém associações de índices
  • Comparação entre as funções de ordenação de array


Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário

  • « uksort
  • Classes/Objetos »
  • PHP Manual
  • Funções para Array
  • Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário

usort

(PHP 4, PHP 5, PHP 7, PHP 8)

usort — Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário

Descrição

usort(array &$array, callable $callback): true

Ordenar o array pelos valores usando uma função de comparação definida pelo usuário para determinar a ordem.

Nota:

Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0, sua ordem relativa no array ordenado era indefinida.

Nota: Esta função atribui novas chaves aos elementos do array. Ela removerá todas as chaves existentes que possam ter sido atribuídas, em vez de apenas reordenar as chaves.

Parâmetros

array

The input array.

callback

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

callback(mixed $a, mixed $b): int
Cuidado

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.2.0 | O tipo do retorno agora é true; anteriormente, era bool.
8.0.0 | Se a função callback espera que um parâmetro seja passado por referência, esta função agora emitirá um E_WARNING.

Exemplos

Exemplo #1 Exemplo de usort()

<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $chave => $valor) {
echo "$chave: $valor\n";
}
?>

O exemplo acima produzirá:

0: 1
1: 2
2: 3
3: 5
4: 6

O operador nave espacial (<=>) pode ser usado para simplificar ainda mais a comparação interna.

<?php
function cmp($a, $b)
{
return $a <=> $b;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $chave => $valor) {
echo "$chave: $valor\n";
}
?>

Nota:

Obviamente que nesse caso trivial a função sort() seria mais apropriada.

Exemplo #2 Exemplo de usort() usando um array multidimensional

<?php
function cmp($a, $b)
{
return strcmp($a["fruta"], $b["fruta"]);
}

$frutas[0]["fruta"] = "limões";
$frutas[1]["fruta"] = "abacaxis";
$frutas[2]["fruta"] = "goiabas";

usort($frutas, "cmp");

foreach ($frutas as $chave => $valor) {
echo "\$frutas[$chave]: " . $valor["fruta"] . "\n";
}
?>

Na ordenação de um array multi-dimensional, $a e $b contêm referências ao primeiro índice do array.

O exemplo acima produzirá:

$frutas[0]: abacaxis
$frutas[1]: goiabas
$frutas[2]: limões

Exemplo #3 Exemplo de usort() usando uma função membro de um objeto

<?php
class TestObj {
var $name;

function TestObj($name)
{
$this->name = $name;
}

/* Essa é a função estática de comparação */
static function cmp_obj($a, $b)
{
return strtolower($a->name) <=> strtolower($b->name);
}
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, [TestObj::class, "cmp_obj"]);

foreach ($a as $item) {
echo $item->name . "\n";
}
?>

O exemplo acima produzirá:

b
c
d

Exemplo #4 Exemplo de usort() usando uma closure para ordernar um array multidimensional

<?php
$array[0] = array('key_a' => 'z', 'key_b' => 'c');
$array[1] = array('key_a' => 'x', 'key_b' => 'b');
$array[2] = array('key_a' => 'y', 'key_b' => 'a');

function build_sorter($key) {
return function ($a, $b) use ($key) {
return strnatcmp($a[$key], $b[$key]);
};
}

usort($array, build_sorter('key_b'));

foreach ($array as $item) {
echo $item['key_a'] . ', ' . $item['key_b'] . "\n";
}
?>

O exemplo acima produzirá:

y, a
x, b
z, c

Exemplo #5 Exemplo de usort() usando o operador nave espacial

O operador nave espacial permite comparação direta de valores compostos atráves de múltiplos eixos. O exemplo a seguir irá ordenar $pessoas pelo último nome, e depois pelo primeiro nome se o último nome for igual.

<?php
$pessoas[0] = ['primeiro' => 'Adam', 'ultimo' => 'West'];
$pessoas[1] = ['primeiro' => 'Alec', 'ultimo' => 'Baldwin'];
$pessoas[2] = ['primeiro' => 'Adam', 'ultimo' => 'Baldwin'];

function sorter(array $a, array $b) {
return [$a['ultimo'], $a['primeiro']] <=> [$b['ultimo'], $b['primeiro']];
}

usort($pessoas, 'sorter');

foreach ($pessoas as $pessoa) {
print $pessoa['ultimo'] . ', ' . $pessoa['primeiro'] . PHP_EOL;
}
?>

O exemplo acima produzirá:

Baldwin, Adam
Baldwin, Alec
West, Adam

Veja Também

  • uasort() - Ordena um array com uma função de comparação definida pelo usuário e mantém associações de índices
  • uksort() - Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.
  • Comparação entre as funções de ordenação de array


Informação de Classe/Objeto

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Funções para Classes/Objetos
    • __autoload — Tenta carregar uma classe indefinida
    • class_alias — Cria um apelido para uma classe
    • class_exists — Verifica se uma classe foi definida
    • enum_exists — Verifica se uma enumeração foi definida
    • get_called_class — O nome da classe da qual o método estático foi chamado
    • get_class_methods — Obtém o nome dos métodos da classe
    • get_class_vars — Obtém as propriedades padrão da classe
    • get_class — Retorna o nome da classe de um objeto
    • get_declared_classes — Retorna um array com os nomes das classes definidas
    • get_declared_interfaces — Retorna um array com todas as interfaces declaradas
    • get_declared_traits — Retorna um array de todas as Traits declaradas
    • get_mangled_object_vars — Retorna um array de nomes únicos e valores das propriedades do objeto
    • get_object_vars — Obtém as propriedades de um objeto
    • get_parent_class — Obtém o nome da classe pai para o objeto ou classe
    • interface_exists — Verifica se a interface foi definida
    • is_a — Verifica se um objeto é ou herda de uma classe
    • is_subclass_of — Verifica se o objeto tem esta classe como uma de suas classes pai
    • method_exists — Verifica se o método da classe existe
    • property_exists — Verifica se o objeto ou a classe tem uma propriedade
    • trait_exists — Verifica se a trait existe


Introdução

Estas funções te permitem obter informações sobre classes e instâncias de objetos. Você pode obter o nome da classe ao qual um objeto pertence, bem como suas propriedades e métodos. Usando estas funções, você pode descobrir não apenas a classe de um objeto, mas também seu parentesco (no caso, que classe este objeto de classe se estende).

Por favor, veja a seção Objetos do manual para uma explicação detalhada de como classes e objetos são implementados e utilizados no PHP.


  • « Tipos de Recurso
  • Exemplos »
  • PHP Manual
  • Classes/Objetos
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Exemplos

Neste exemplo, nós primeiramente definiremos uma classe base e uma extensão da classe. A classe base descreve um vegetal comum, que é comestível ou não e qual é sua cor. A sub-classe Espinafre adiciona um método para cozinhá-lo e outro para descobrir se ele está cozido.

Exemplo #1 Definições da Classe

Vegetal

<?php

class Vegetal {
public $comestivel;

public $cor;

public function __construct($comestivel, $cor = "verde")
{
$this->comestivel = $comestivel;
$this->cor = $cor;
}

public function comestivel()
{
return $this->comestivel;
}

public function qual_cor()
{
return $this->cor;
}
}

?>

Espinafre

<?php

class Espinafre extends Vegetal {
public $cozido = false;

public function __construct()
{
parent::__construct(true, "verde");
}

public function cozinhe()
{
$this->cozido = true;
}

public function esta_cozido()
{
return $this->cozido;
}
}

?>

Agora serão instanciados objetos destas classes e exibidas informações sobre elas, incluindo o parentesco entre elas. Também serão definidas algumas funções úteis, principalmente para ter uma saída bem formatada de variáveis.

Exemplo #2 test_script.php

<?php

// register autoloader to load classes
spl_autoload_register();

function printProperties($obj)
{
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}

function printMethods($obj)
{
$arr = get_class_methods(get_class($obj));
foreach ($arr as $metodo) {
echo "\tfunção $metodo()\n";
}
}

function objetoPertenceA($obj, $classe)
{
if (is_subclass_of($obj, $classe)) {
echo "Objeto pertence à classe " . get_class($obj);
echo ", uma sub-classe de $classe\n";
} else {
echo "Objeto não pertence a uma sub-classe de $classe\n";
}
}

// instancia 2 objetos

$vegetal = new Vegetal(true, "azul");
$folha = new Espinafre();

// mostra informação sobre os objetos
echo "vegetal: CLASSE " . get_class($vegetal) . "\n";
echo "folha: CLASSE " . get_class($folha);
echo ", CLASSE PAI " . get_parent_class($folha) . "\n";

// mostra propriedades do vegetal
echo "\nvegetal: Propriedades\n";
printProperties($vegetal);

// e métodos de folha
echo "\nfolha: Métodos\n";
printMethods($folha);

echo "\nParentesco:\n";
objetoPertenceA($folha, Espinafre::class);
objetoPertenceA($folha, Vegetal::class);
?>

Os exemplos acima produzirão:

vegetal: CLASSE Vegetal
folha: CLASSE Espinafre, CLASSE PAI Vegetal

vegetal: Propriedades
        comestivel = 1
        cor = azul

folha: Métodos
        function __construct()
        function cozinhe()
        function esta_cozido()
        function comestivel()
        function qual_cor()

Parentesco:
Objeto não pertence a uma sub-classe de Espinafre
Objeto pertence à classe Espinafre, uma sub-classe de Vegetal

Uma nota importante sobre o exemplo acima é que o objeto $folha é uma instância da classe Espinafre que é uma sub-classe de Vegetal.


Funções para Classes/Objetos

Índice

  • __autoload — Tenta carregar uma classe indefinida
  • class_alias — Cria um apelido para uma classe
  • class_exists — Verifica se uma classe foi definida
  • enum_exists — Verifica se uma enumeração foi definida
  • get_called_class — O nome da classe da qual o método estático foi chamado
  • get_class_methods — Obtém o nome dos métodos da classe
  • get_class_vars — Obtém as propriedades padrão da classe
  • get_class — Retorna o nome da classe de um objeto
  • get_declared_classes — Retorna um array com os nomes das classes definidas
  • get_declared_interfaces — Retorna um array com todas as interfaces declaradas
  • get_declared_traits — Retorna um array de todas as Traits declaradas
  • get_mangled_object_vars — Retorna um array de nomes únicos e valores das propriedades do objeto
  • get_object_vars — Obtém as propriedades de um objeto
  • get_parent_class — Obtém o nome da classe pai para o objeto ou classe
  • interface_exists — Verifica se a interface foi definida
  • is_a — Verifica se um objeto é ou herda de uma classe
  • is_subclass_of — Verifica se o objeto tem esta classe como uma de suas classes pai
  • method_exists — Verifica se o método da classe existe
  • property_exists — Verifica se o objeto ou a classe tem uma propriedade
  • trait_exists — Verifica se a trait existe


Tenta carregar uma classe indefinida

  • « Funções para Classes/Objetos
  • class_alias »
  • PHP Manual
  • Funções para Classes/Objetos
  • Tenta carregar uma classe indefinida

__autoload

(PHP 5, PHP 7)

__autoload — Tenta carregar uma classe indefinida

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.2.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

__autoload(string $class): void

Pode-se definir esta função para habilitar carregamento automático de classes.

Parâmetros

class

Nome da classe a ser carregada

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • spl_autoload_register() - Registra a função dada como implementação __autoload()


Cria um apelido para uma classe

  • « __autoload
  • class_exists »
  • PHP Manual
  • Funções para Classes/Objetos
  • Cria um apelido para uma classe

class_alias

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

class_alias — Cria um apelido para uma classe

Descrição

class_alias(string $class, string $alias, bool $autoload = true): bool

Criando um apelido com o nome informado em alias com base na classe definida pelo usuário class. A classe com apelido é exatamente igual à classe original.

Nota: A partir do PHP 8.3.0, class_alias() também suporta a criação de um apelido de uma classe interna do PHP.

Parâmetros

class

A classe original.

alias

O nome do alias da classe.

autoload

Se deve-se carregar automaticamente caso a classe original não seja encontrada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.3.0 | class_alias() agora suporta criação de apelido de uma classe interna.

Exemplos

Exemplo #1 Exemplo de class_alias()

<?php

class Foo { }

class_alias('Foo', 'Bar');

$a = new Foo;
$b = new Bar;

// os objetos são os mesmos
var_dump($a == $b, $a === $b);
var_dump($a instanceof $b);

// as classes são as mesmas
var_dump($a instanceof Foo);
var_dump($a instanceof Bar);

var_dump($b instanceof Foo);
var_dump($b instanceof Bar);

?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Notas

Nota:

Nomes de classe não são sensíveis a maiúsculas/minúsculas no PHP, e isto é refletido nesta função. Apelidos criados por class_alias() são declarados em minúsculas. Isto significa que para uma classe MinhaClasse, a chamada a class_alias('MinhaClasse', 'ApelidoDaMinhaClasse') irá declarar um novo apelido de classe chamado apelidodaminhaclasse.

Veja Também

  • get_parent_class() - Obtém o nome da classe pai para o objeto ou classe
  • is_subclass_of() - Verifica se o objeto tem esta classe como uma de suas classes pai


Verifica se uma classe foi definida

  • « class_alias
  • enum_exists »
  • PHP Manual
  • Funções para Classes/Objetos
  • Verifica se uma classe foi definida

class_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

class_exists — Verifica se uma classe foi definida

Descrição

class_exists(string $class, bool $autoload = true): bool

Esta função verifica se uma classe foi definida.

Parâmetros

class

O nome da classe. O nome da classe é verificada sem fazer distinção de maiúscula e minúscula.

autoload

Se deve-se carregar automaticamente caso não tenha sido carregada.

Valor Retornado

Retorna true se class é uma classe definida, caso contrário retorna false.

Exemplos

Exemplo #1 Exemplo de class_exists()

<?php
// Verifica que a classe existe antes de se tentar usá-la
if (class_exists('MinhaClasse')) {
$minhaclasse = new MinhaClasse();
}

?>

Exemplo #2 Exemplo do parâmetro autoload

<?php
spl_autoload_register(function ($nome_classe) {
include $nome_classe . '.php';

// Verifica se o arquivo incluído declarou a classe
if (!class_exists($nome_classe, false)) {
throw new LogicException("Não foi possível carregar a classe: $nome_classe");
}
});

if (class_exists(MinhaClasse::class)) {
$minhaclasse = new MinhaClasse();
}

?>

Veja Também

  • function_exists() - Retorna true se a função informada estiver definida
  • enum_exists() - Verifica se uma enumeração foi definida
  • interface_exists() - Verifica se a interface foi definida
  • get_declared_classes() - Retorna um array com os nomes das classes definidas


Verifica se uma enumeração foi definida

  • « class_exists
  • get_called_class »
  • PHP Manual
  • Funções para Classes/Objetos
  • Verifica se uma enumeração foi definida

enum_exists

(PHP 8 >= 8.1.0)

enum_exists — Verifica se uma enumeração foi definida

Descrição

enum_exists(string $enum, bool $autoload = true): bool

Esta função verifica se o enum fornecido foi definido.

Parâmetros

enum

O nome da enumetação. O nome é verificado sem sensibilidade a maiúsculas/minúsculas.

autoload

Se deve-se carregar automaticamente a enumeração caso não tenha sido carregada.

Valor Retornado

Retorna true se enum é uma enumeração definida, false caso contrário.

Exemplos

Exemplo #1 Exemplo de enum_exists()

<?php
// Verifica se a enumeração existe antes de tentar usá-la
if (enum_exists(Suit::class)) {
$myclass = Suit::Hearts;
}
?>

Veja Também

  • function_exists() - Retorna true se a função informada estiver definida
  • class_exists() - Verifica se uma classe foi definida
  • interface_exists() - Verifica se a interface foi definida
  • get_declared_classes() - Retorna um array com os nomes das classes definidas


O nome da classe da qual o método estático foi chamado

  • « enum_exists
  • get_class_methods »
  • PHP Manual
  • Funções para Classes/Objetos
  • O nome da classe da qual o método estático foi chamado

get_called_class

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

get_called_class — O nome da classe da qual o método estático foi chamado

Descrição

get_called_class(): string

Obtém o nome da classe da qual o método estático foi chamado.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o nome da classe.

Erros/Exceções

Se get_called_class() for chamada de fora de uma classe, um Error é disparado. Antes do PHP 8.0.0, um aviso E_WARNING era emitido.

Registro de Alterações

Versão | Descrição
8.0.0 | Chamar esta função de fora de uma classe agora irá disparar um Error. Anteriormente, um aviso E_WARNING era emitido e a função retornava false.

Exemplos

Exemplo #1 Usando get_called_class()

<?php

class foo {
static public function test() {
var_dump(get_called_class());
}
}

class bar extends foo {
}

foo::test();
bar::test();

?>

O exemplo acima produzirá:

string(3) "foo"
string(3) "bar"

Veja Também

  • get_parent_class() - Obtém o nome da classe pai para o objeto ou classe
  • get_class() - Retorna o nome da classe de um objeto
  • is_subclass_of() - Verifica se o objeto tem esta classe como uma de suas classes pai


Obtém o nome dos métodos da classe

  • « get_called_class
  • get_class_vars »
  • PHP Manual
  • Funções para Classes/Objetos
  • Obtém o nome dos métodos da classe

get_class_methods

(PHP 4, PHP 5, PHP 7, PHP 8)

get_class_methods — Obtém o nome dos métodos da classe

Descrição

get_class_methods(object|string $object_or_class): array

Obtém o nome dos métodos da classe.

Parâmetros

object_or_class

O nome da classe ou a instância do objeto

Valor Retornado

Retorna um array de nome de métodos definidos para a classe especificada por object_or_class.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro object_or_class agora aceita apenas objetos ou nomes de classe válidos.

Exemplos

Exemplo #1 Exemplo de get_class_methods()

<?php

class minhaclasse {
// construtor
function __construct()
{
return(true);
}

// método 1
function minhafuncao1()
{
return(true);
}

// método 2
function minhafuncao2()
{
return(true);
}
}

$metodos_da_classe = get_class_methods('minhaclasse');
// ou
$metodos_da_classe = get_class_methods(new minhaclasse());

foreach ($metodos_da_classe as $nome_do_metodo) {
echo "$nome_do_metodo\n";
}

?>

O exemplo acima produzirá:

__construct
minhafuncao1
minhafuncao2

Veja Também

  • get_class() - Retorna o nome da classe de um objeto
  • get_class_vars() - Obtém as propriedades padrão da classe
  • get_object_vars() - Obtém as propriedades de um objeto


Obtém as propriedades padrão da classe

  • « get_class_methods
  • get_class »
  • PHP Manual
  • Funções para Classes/Objetos
  • Obtém as propriedades padrão da classe

get_class_vars

(PHP 4, PHP 5, PHP 7, PHP 8)

get_class_vars — Obtém as propriedades padrão da classe

Descrição

get_class_vars(string $class): array

Obtém as propriedades padrão de uma dada classe.

Parâmetros

class

O nome da classe

Valor Retornado

Retorna um array associativo das propriedades declaradas visíveis no escopo atual, com seu valor padrão. Os elementos do array resultante estão na forma de varname => value. Em caso de um erro, retornará false.

Exemplos

Exemplo #1 Exemplo da get_class_vars()

<?php

class myclass {

var $var1; // sem valor default
var $var2 = "xyz";
var $var3 = 100;
private $var4;

// construtor
function myclass() {
// mudar algumas propriedades
$this->var1 = "foo";
$this->var2 = "bar";
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";
}

?>

O exemplo acima produzirá:

var1 :
var2 : xyz
var3 : 100

Exemplo #2 get_class_vars() e comportamento de escopo

<?php
function format($array)
{
return implode('|', array_keys($array)) . "\r\n";
}

class TestCase
{
public $a = 1;
protected $b = 2;
private $c = 3;

public static function expose()
{
echo format(get_class_vars(__CLASS__));
}
}

TestCase::expose();
echo format(get_class_vars('TestCase'));
?>

O exemplo acima produzirá:

// 5.0.0
a| * b| TestCase c
a| * b| TestCase c

// 5.0.1 - 5.0.2
a|b|c
a|b|c

// 5.0.3 +
a|b|c
a

Veja Também

  • get_class_methods() - Obtém o nome dos métodos da classe
  • get_object_vars() - Obtém as propriedades de um objeto


Retorna o nome da classe de um objeto

  • « get_class_vars
  • get_declared_classes »
  • PHP Manual
  • Funções para Classes/Objetos
  • Retorna o nome da classe de um objeto

get_class

(PHP 4, PHP 5, PHP 7, PHP 8)

get_class — Retorna o nome da classe de um objeto

Descrição

get_class(object $object = ?): string

Obtém o nome da classe do object informado.

Parâmetros

object

O objeto testado.

Nota: Passar explicitamente null no parâmetro object não é mais permitido a partir do PHP 7.2.0 e emite um E_WARNING. A partir do 8.0.0, um TypeError é emitido quando null é usado.

Valor Retornado

Retorna o nome da classe da qual object é uma instância.

Se object for uma instância de uma classe que existe em um espaço de nomes, o nome da classe qualificado com espaço de nomes é retornado.

Erros/Exceções

Se get_class() for chamada com qualquer outro parâmetro que não seja um objeto, TypeError é disparado. Antes do PHP 8.0.0, um alerta E_WARNING era emitido.

Se get_class() for chamada sem parâmetros de fora de uma classe, um Error é disparado. Antes do PHP 8.0.0, um alerta E_WARNING era emitido.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar get_class() sem um argumento agora emite um alerta E_DEPRECATED; anteriormente, chamar esta função de dentro de uma classe retornava o nome dessa classe.
8.0.0 | Chamar esta função de fora de uma classe, sem argumentos, agora dispara um Error. Anteriormente, um alerta E_WARNING era emitido e a função retornava false.
7.2.0 | Antes desta versão o valor padrão para object era null e tinha o mesmo efeito de não se passar nenhum valor. Agora, null foi removido do valor padrão para object, e não é mais uma entrada válida.

Exemplos

Exemplo #1 Usando get_class()

<?php

class foo {
function name()
{
echo "Meu nome é " , get_class($this) , "\n";
}
}

// cria um objeto
$bar = new foo();

// chamada externa
echo "Seu nome é " , get_class($bar) , "\n";

// chamada interna
$bar->name();

?>

O exemplo acima produzirá:

Meu nome é foo
Seu nome é foo

Exemplo #2 Usando get_class() em superclasse

<?php

abstract class bar {
public function __construct()
{
var_dump(get_class($this));
var_dump(get_class());
}
}

class foo extends bar {
}

new foo;

?>

O exemplo acima produzirá:

string(3) "foo"
string(3) "bar"

Exemplo #3 Usando get_class() em classe com espaço de nomes

<?php

namespace Foo\Bar;

class Baz {
public function __construct()
{

}
}

$baz = new \Foo\Bar\Baz;

var_dump(get_class($baz));
?>

O exemplo acima produzirá:

string(11) "Foo\Bar\Baz"

Veja Também

  • get_called_class() - O nome da classe da qual o método estático foi chamado
  • get_parent_class() - Obtém o nome da classe pai para o objeto ou classe
  • gettype() - Obtém o tipo de uma variável
  • get_debug_type() - Obtém o nome do tipo de uma variável de forma adequada a depuração
  • is_subclass_of() - Verifica se o objeto tem esta classe como uma de suas classes pai


Retorna um array com os nomes das classes definidas

  • « get_class
  • get_declared_interfaces »
  • PHP Manual
  • Funções para Classes/Objetos
  • Retorna um array com os nomes das classes definidas

get_declared_classes

(PHP 4, PHP 5, PHP 7, PHP 8)

get_declared_classes — Retorna um array com os nomes das classes definidas

Descrição

get_declared_classes(): array

Obtém as classes declaradas.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array de nomes das classes declaradas no script atual.

Nota:

Note que, dependendo de quais bibliotecas você tenha compilado ou carregado no PHP, classes adicionais podem estar presentes. Isto significa que não será possível definir classes de usuário usando estes nomes. Há uma lista de classes pré-definidas na seção Classes Pré-definidas dos apêndices.

Registro de Alterações

Versão | Descrição
7.4.0 | Anteriormente a função get_declared_classes() sempre retornada classes pais antes das classes filhas. Isto não é mais o que acontece. Nenhuma ordem em particular é garantida para o valor de retorno de get_declared_classes().

Exemplos

Exemplo #1 Exemplo de get_declared_classes()

<?php
print_r(get_declared_classes());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => stdClass
    [1] => __PHP_Incomplete_Class
    [2] => Directory
)

Veja Também

  • class_exists() - Verifica se uma classe foi definida
  • get_declared_interfaces() - Retorna um array com todas as interfaces declaradas
  • get_defined_functions() - Retorna um array com todas as funções definidas


Retorna um array com todas as interfaces declaradas

  • « get_declared_classes
  • get_declared_traits »
  • PHP Manual
  • Funções para Classes/Objetos
  • Retorna um array com todas as interfaces declaradas

get_declared_interfaces

(PHP 5, PHP 7, PHP 8)

get_declared_interfaces — Retorna um array com todas as interfaces declaradas

Descrição

get_declared_interfaces(): array

Retorna as interfaces declaradas.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Essa função retorna um array com os nomes de interfaces declaradas no script atual.

Exemplos

Exemplo #1 Exemplo de uso de get_declared_interfaces()

<?php
print_r(get_declared_interfaces());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

Veja Também

  • interface_exists() - Verifica se a interface foi definida
  • get_declared_classes() - Retorna um array com os nomes das classes definidas
  • class_implements() - Retorna as interfaces que são implementadas pela classe ou interface fornecida


Retorna um array de todas as Traits declaradas

  • « get_declared_interfaces
  • get_mangled_object_vars »
  • PHP Manual
  • Funções para Classes/Objetos
  • Retorna um array de todas as Traits declaradas

get_declared_traits

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

get_declared_traits — Retorna um array de todas as Traits declaradas

Descrição

get_declared_traits(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array com todos os nomes das Traits declaradas em seus valores.

Veja Também

  • class_uses() - Retorna os traits usados pela classe fornecida
  • trait_exists() - Verifica se a trait existe


Retorna um array de nomes únicos e valores das propriedades do objeto

  • « get_declared_traits
  • get_object_vars »
  • PHP Manual
  • Funções para Classes/Objetos
  • Retorna um array de nomes únicos e valores das propriedades do objeto

get_mangled_object_vars

(PHP 7 >= 7.4.0, PHP 8)

get_mangled_object_vars — Retorna um array de nomes únicos e valores das propriedades do objeto

Descrição

get_mangled_object_vars(object $object): array

Retorna um array cujos elementos são as propriedades de object. As chaves são os nomes das variáveis membras, com algumas exceções notáveis: variáveis privadas têm o nome da classe prefixada ao nome da variável, e variáveis protegidas têm um * prefixado ao nome da variável. Estes valores prefixados têm bytes NUL de cada um dos lados. Propriedades tipadas não inicializadas são silenciosamente descartadas.

Parâmetros

object

Uma instância de objeto.

Valor Retornado

Retorna um array contendo todas as propriedades de object, independente da visibilidade.

Exemplos

Exemplo #1 Exemplo de get_mangled_object_vars()

<?php

class A
{
public $public = 1;

protected $protected = 2;

private $private = 3;
}

class B extends A
{
private $private = 4;
}

$object = new B;
$object->dynamic = 5;
$object->{'6'} = 6;

var_dump(get_mangled_object_vars($object));

class AO extends ArrayObject
{
private $private = 1;
}

$arrayObject = new AO(['x' => 'y']);
$arrayObject->dynamic = 2;

var_dump(get_mangled_object_vars($arrayObject));

O exemplo acima produzirá:

array(6) {
  ["Bprivate"]=>
  int(4)
  ["public"]=>
  int(1)
  ["*protected"]=>
  int(2)
  ["Aprivate"]=>
  int(3)
  ["dynamic"]=>
  int(5)
  [6]=>
  int(6)
}
array(2) {
  ["AOprivate"]=>
  int(1)
  ["dynamic"]=>
  int(2)
}

Veja Também

  • get_class_vars() - Obtém as propriedades padrão da classe
  • get_object_vars() - Obtém as propriedades de um objeto


Obtém as propriedades de um objeto

  • « get_mangled_object_vars
  • get_parent_class »
  • PHP Manual
  • Funções para Classes/Objetos
  • Obtém as propriedades de um objeto

get_object_vars

(PHP 4, PHP 5, PHP 7, PHP 8)

get_object_vars — Obtém as propriedades de um objeto

Descrição

get_object_vars(object $object): array

Obtém as propriedades não estáticas acessíveis do object informado de acordo com o escopo.

Parâmetros

object

Uma instância de objeto.

Valor Retornado

Retorna um array associativo das propriedades não estáticas acessíveis definidas para o object especificado dentro do escopo.

Exemplos

Exemplo #1 Uso da get_object_vars()

<?php

class foo {
private $a;
public $b = 1;
public $c;
private $d;
static $e;

public function test() {
var_dump(get_object_vars($this));
}
}

$test = new foo;
var_dump(get_object_vars($test));

$test->test();

?>

O exemplo acima produzirá:

array(2) {
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
}
array(4) {
  ["a"]=>
  NULL
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
  ["d"]=>
  NULL
}

Nota:

Propriedades não inicializadas são consideradas inacessíveis, e portanto não serão incluídas no array.

Veja Também

  • get_class_methods() - Obtém o nome dos métodos da classe
  • get_class_vars() - Obtém as propriedades padrão da classe


Obtém o nome da classe pai para o objeto ou classe

  • « get_object_vars
  • interface_exists »
  • PHP Manual
  • Funções para Classes/Objetos
  • Obtém o nome da classe pai para o objeto ou classe

get_parent_class

(PHP 4, PHP 5, PHP 7, PHP 8)

get_parent_class — Obtém o nome da classe pai para o objeto ou classe

Descrição

get_parent_class(object|string $object_or_class = ?): string|false

Obtém o nome da classe pai para o objeto ou classe.

Parâmetros

object_or_class

O objeto testado ou o nome da classe.

Valor Retornado

Retorna o nome da classe pai da classe da qual object_or_class é uma instância ou o nome.

Se o objeto não tiver um pai ou a classe informada não existir, será retornado false.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar get_parent_class() sem um argumento agora emite um alerta E_DEPRECATED; anteriormente, chamar esta função de dentro de uma classe retornava o nome dessa classe.
8.0.0 | O parâmetro object_or_class agora aceita apenas objetos ou nomes de classe válidos.

Exemplos

Exemplo #1 Usando get_parent_class()

<?php

class Pai {
function __construct()
{
// implemente alguma lógica
}
}

class Filha extends Pai {
function __construct()
{
echo "Eu sou filha de " , get_parent_class($this) , "\n";
}
}

class Filha2 extends Pai {
function __construct()
{
echo "Eu também sou filha de " , get_parent_class('filha2') , "\n";
}
}

$foo = new Filha();
$bar = new Filha2();

?>

O exemplo acima produzirá:

Eu sou filha de Pai
Eu também sou filha de Pai

Veja Também

  • get_class() - Retorna o nome da classe de um objeto
  • is_subclass_of() - Verifica se o objeto tem esta classe como uma de suas classes pai
  • class_parents() - Retorna as classes pai da classe fornecida


Verifica se a interface foi definida

  • « get_parent_class
  • is_a »
  • PHP Manual
  • Funções para Classes/Objetos
  • Verifica se a interface foi definida

interface_exists

(PHP 5 >= 5.0.2, PHP 7, PHP 8)

interface_exists — Verifica se a interface foi definida

Descrição

interface_exists(string $interface, bool $autoload = true): bool

Verifica se a interface foi definida.

Parâmetros

interface

O nome da interface.

autoload

Se deve-se carregar automaticamente a interface se já não tiver sido carregada.

Valor Retornado

Retorna true se a interface fornecida pelo parâmetro interface já foi definida, false caso contrário.

Exemplos

Exemplo #1 Exemplo de interface_exists()

<?php
// Verifica se a interface existe antes de tentar usá-la
if (interface_exists('MyInterface')) {
class MyClass implements MyInterface
{
// Métodos
}
}

?>

Veja Também

  • get_declared_interfaces() - Retorna um array com todas as interfaces declaradas
  • class_implements() - Retorna as interfaces que são implementadas pela classe ou interface fornecida
  • class_exists() - Verifica se uma classe foi definida
  • enum_exists() - Verifica se uma enumeração foi definida


Verifica se um objeto é ou herda de uma classe

  • « interface_exists
  • is_subclass_of »
  • PHP Manual
  • Funções para Classes/Objetos
  • Verifica se um objeto é ou herda de uma classe

is_a

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_a — Verifica se um objeto é ou herda de uma classe

Descrição

is_a(mixed $object_or_class, string $class, bool $allow_string = false): bool

Determina se o object_or_class é do tipo class, ou se tem class como um dos tipos herdados.

Parâmetros

object_or_class

O nome da classe ou o objeto.

class

O nome da classe.

allow_string

Se esse parâmetro for configurado para false, um nome de classe em string em object_or_class não será permitido. Isso evita chamar o autoloader de uma classe inexistente.

Valor Retornado

Retorna true se o object_or_class for do tipo class ou se tiver class como um dos tipos herdados, false caso contrário.

Exemplos

Exemplo #1 Exemplo de is_a()

<?php
// Define uma classe
class WidgetFactory
{
var $oink = 'moo';
}

// Cria um objeto
$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
echo "\$WF implementa WidgetFactory\n";
}
?>

Exemplo #2 Utilizando o operador instanceof

<?php
if ($WF instanceof WidgetFactory) {
echo "\$WF implementa WidgetFactory\n";
}
?>

Veja Também

  • get_class() - Retorna o nome da classe de um objeto
  • get_parent_class() - Obtém o nome da classe pai para o objeto ou classe
  • is_subclass_of() - Verifica se o objeto tem esta classe como uma de suas classes pai


Verifica se o objeto tem esta classe como uma de suas classes pai

  • « is_a
  • method_exists »
  • PHP Manual
  • Funções para Classes/Objetos
  • Verifica se o objeto tem esta classe como uma de suas classes pai

is_subclass_of

(PHP 4, PHP 5, PHP 7, PHP 8)

is_subclass_of — Verifica se o objeto tem esta classe como uma de suas classes pai

Descrição

is_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool

Verifica se object_or_class informado tem a classe class como uma de suas classes pai ou o/a implementa.

Parâmetros

object_or_class

O nome da classe ou um instância do objeto. Nenhum erro é gerado se a classe não existir.

class

O nome da classe

allow_string

Se este parâmetro for definido para falso, nome de classe em string no parâmetro object_or_class não será permitido. Isto também evita chamada ao carregamento automático se a classe não existir.

Valor Retornado

Esta função retorna true se o objeto object_or_class, pertencer a uma classe que é uma subclasse de class, false caso contrário.

Exemplos

Exemplo #1 Exemplo de is_subclass_of()

<?php
// define uma classe
class WidgetFactory
{
var $oink = 'moo';
}

// define uma classe filha
class WidgetFactory_Child extends WidgetFactory
{
var $oink = 'oink';
}

// cria um novo objeto
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (is_subclass_of($WFC, 'WidgetFactory')) {
echo "sim, \$WFC é uma subclasse de WidgetFactory\n";
} else {
echo "não, \$WFC não é uma subclasse de WidgetFactory\n";
}

if (is_subclass_of($WF, 'WidgetFactory')) {
echo "sim, \$WF é uma subclasse de WidgetFactory\n";
} else {
echo "não, \$WF não é uma subclasse de WidgetFactory\n";
}

if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
echo "sim, WidgetFactory_Child é uma subclasse de WidgetFactory\n";
} else {
echo "não, WidgetFactory_Child não é uma subclasse de WidgetFactory\n";
}
?>

O exemplo acima produzirá:

sim, $WFC é uma subclasse de WidgetFactory
não, $WF não é uma subclasse de WidgetFactory
sim, WidgetFactory_Child é uma subclasse de WidgetFactory

Exemplo #2 Exemplo de is_subclass_of() usando interface

<?php
// Define a Interface
interface MyInterface
{
public function MyFunction();
}

// Define a implementação de classe da interface
class MyClass implements MyInterface
{
public function MyFunction()
{
return "MyClass Implementa MyInterface!";
}
}

// Instancia o objeto object
$my_object = new MyClass;

// Funciona desde 5.3.7

// Teste usando a instância do objeto da classe
if (is_subclass_of($my_object, 'MyInterface')) {
echo "Sim, \$my_object é uma subclasse de MyInterface\n";
} else {
echo "No, \$my_object não é uma subclasse de MyInterface\n";
}

// Teste usando a string do nome da classe
if (is_subclass_of('MyClass', 'MyInterface')) {
echo "Sim, MyClass é uma subclasse de MyInterface\n";
} else {
echo "No, MyClass não é uma subclasse de MyInterface\n";
}
?>

O exemplo acima produzirá:

Sim, $my_object é uma subclasse de MyInterface
Sim, MyClass é uma subclasse de MyInterface

Notas

Nota:

Usar esta função fará com que qualquer autoloader registrado seja usado se a classe ainda não for conhecida.

Veja Também

  • get_class() - Retorna o nome da classe de um objeto
  • get_parent_class() - Obtém o nome da classe pai para o objeto ou classe
  • is_a() - Verifica se um objeto é ou herda de uma classe
  • class_parents() - Retorna as classes pai da classe fornecida


Verifica se o método da classe existe

  • « is_subclass_of
  • property_exists »
  • PHP Manual
  • Funções para Classes/Objetos
  • Verifica se o método da classe existe

method_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

method_exists — Verifica se o método da classe existe

Descrição

method_exists(object|string $object_or_class, string $method): bool

Verifica se o método da classe existe no object_or_class fornecido.

Parâmetros

object_or_class

Uma instância de objeto ou um nome de classe

method

O nome do método

Valor Retornado

Retorna true se método informado no parâmetro method foi definido para o object_or_class informado, false caso contrário.

Exemplos

Exemplo #1 Exemplo de method_exists()

<?php
$directory = new Directory('.');
var_dump(method_exists($directory,'read'));
?>

O exemplo acima produzirá:

bool(true)

Exemplo #2 Exemplo de method_exists() com método estático

<?php
var_dump(method_exists('Directory','read'));
?>

O exemplo acima produzirá:

bool(true)

Notas

Nota:

Usar esta função fará com que qualquer autoloader registrado seja usado se a classe ainda não for conhecida.

Veja Também

  • function_exists() - Retorna true se a função informada estiver definida
  • is_callable() - Verifica se um valor pode ser chamado como uma função a partir do escopo atual.
  • class_exists() - Verifica se uma classe foi definida


Verifica se o objeto ou a classe tem uma propriedade

  • « method_exists
  • trait_exists »
  • PHP Manual
  • Funções para Classes/Objetos
  • Verifica se o objeto ou a classe tem uma propriedade

property_exists

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

property_exists — Verifica se o objeto ou a classe tem uma propriedade

Descrição

property_exists(object|string $object_or_class, string $property): bool

Essa função verifica se a propriedade informada em property existe na classe especificada.

Nota:

Ao contrário de isset(), property_exists() retorna true mesmo se a propriedade tiver o valor null.

Parâmetros

object_or_class

O nome da classe ou um objeto da classe a ser testada

property

O nome da propriedade

Valor Retornado

Retorna true se a propriedade existe, false se ela não existir.

Exemplos

Exemplo #1 Exemplo de property_exists()

<?php

class myClass {
public $mine;
private $xpto;
static protected $test;

static function test() {
var_dump(property_exists('myClass', 'xpto')); //true
}
}

var_dump(property_exists('myClass', 'mine')); //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto')); //true
var_dump(property_exists('myClass', 'bar')); //false
var_dump(property_exists('myClass', 'test')); //true
myClass::test();

?>

Notas

Nota:

Usar esta função fará com que qualquer autoloader registrado seja usado se a classe ainda não for conhecida.

Nota:

A função property_exists() não consegue detectar propriedades que são magicamente acessíveis usando o método mágico __get.

Veja Também

  • method_exists() - Verifica se o método da classe existe


Verifica se a trait existe

  • « property_exists
  • Ctype »
  • PHP Manual
  • Funções para Classes/Objetos
  • Verifica se a trait existe

trait_exists

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

trait_exists — Verifica se a trait existe

Descrição

trait_exists(string $trait, bool $autoload = true): bool

Parâmetros

trait

Nome da trait para verificação

autoload

Se deve-se carregar automaticamente a trait caso não tenha sido caregada.

Valor Retornado

Retorna true se a Trait existir, false caso não exista.


Verificação de tipo de caractere

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções da Ctype
    • ctype_alnum — Verifica se os caracteres são alfanuméricos
    • ctype_alpha — Verifica se os caracteres são alfabéticos
    • ctype_cntrl — Verifica se os caracteres são de controle
    • ctype_digit — Verifica se os caracteres são numéricos
    • ctype_graph — Verifica se os caracteres são imprimíveis exceto espaço
    • ctype_lower — Verifica se os caracteres estão minúsculos
    • ctype_print — Verifica se os caracteres são imprimíveis
    • ctype_punct — Verifica se é um caractere imprimível que não é whitespace ou alfanumério
    • ctype_space — Verifica se os caracteres são whitespace
    • ctype_upper — Verifica se os caracteres são maiúsculos
    • ctype_xdigit — Verifica se os caracteres representam um dígito hexadecimal


Introdução

As funções providas por esta extensão verificam se um caractere ou uma string está dentro de uma certa classe de caracteres de acordo com a localidade atual (veja também setlocale()).

Quando chamada com um argumento inteiro, estas funções comportam-se exatamente como ocorre na linguagem C usando ctype.h. Significa que se for passado um inteiro menor que 256, será usado o valor ASCII dele para ver se está dentro do intervalo especificado (dígitos estão entre 0x30-0x39). Se o número estiver entre -128 e -1 (inclusive) então será adicionado 256 e a verificação estará concluída.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Quando chamada com uma string como argumento ela irá verificar todos os caracteres na string e somente retornará true se todos caracteres da string combinarem com o critério solicitado. Quando chamada com uma string vazia, o resultado sempre será false.

Se for passado qualquer tipo diferente de string ou inteiro a função retornará false.

Note que funções ctype são sempre preferenciais em relação às expressões regulares, e às funções equivalentes "str_*" e "is_*". Isto pelo fato de que ctype usa a biblioteca nativa C e assim tem um processamento significativamente mais rápido.

Nota:

Estas funções não estão relacionadas às da biblioteca "ctypes" do Python. O nome da extensão vem do arquivo de cabeçalho ctype.h onde suas funções equivalentes em C são definidas.

Esta extensão também é anterior a biblioteca "ctypes" do Python, então qualquer confusão causada por conta da nomenclatura dificilmente é por conta do PHP.


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

Nenhum adicional para estas funções da biblioteca padrão C que estão sempre disponíveis.


Instalação

Esta extensão está habilitada por padrão. Ela pode ser desabilitada usando a seguinte opção em tempo de compilação: --disable-ctype

A versão do PHP para Windows tem suporte nativo para esta extensão. Nenhuma extensão adicional precisa ser carregada para usar essas funções.


  • « Tipos de Recurso
  • Funções da Ctype »
  • PHP Manual
  • Ctype
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Funções da Ctype

Índice

  • ctype_alnum — Verifica se os caracteres são alfanuméricos
  • ctype_alpha — Verifica se os caracteres são alfabéticos
  • ctype_cntrl — Verifica se os caracteres são de controle
  • ctype_digit — Verifica se os caracteres são numéricos
  • ctype_graph — Verifica se os caracteres são imprimíveis exceto espaço
  • ctype_lower — Verifica se os caracteres estão minúsculos
  • ctype_print — Verifica se os caracteres são imprimíveis
  • ctype_punct — Verifica se é um caractere imprimível que não é whitespace ou alfanumério
  • ctype_space — Verifica se os caracteres são whitespace
  • ctype_upper — Verifica se os caracteres são maiúsculos
  • ctype_xdigit — Verifica se os caracteres representam um dígito hexadecimal


Verifica se os caracteres são alfanuméricos

  • « Funções da Ctype
  • ctype_alpha »
  • PHP Manual
  • Funções da Ctype
  • Verifica se os caracteres são alfanuméricos

ctype_alnum

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_alnum — Verifica se os caracteres são alfanuméricos

Descrição

ctype_alnum(mixed $text): bool

Verifica se todos os caracteres na string fornecida, text, são alfanuméricos.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se todos os caracteres em text são letra ou dígito, false caso contrário. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 Um exemplo da ctype_alnum() (usando a localidade padrão)

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
if (ctype_alnum($testcase)) {
echo "The string $testcase consists of all letters or digits.\n";
} else {
echo "The string $testcase does not consist of all letters or digits.\n";
}
}
?>

O exemplo acima produzirá:

The string AbCd1zyZ9 consists of all letters or digits.
The string foo!#$bar does not consist of all letters or digits.

Veja Também

  • ctype_alpha() - Verifica se os caracteres são alfabéticos
  • ctype_digit() - Verifica se os caracteres são numéricos
  • setlocale() - Set locale information
  • IntlChar::isalnum() - Verifica se um ponto de código é um caractere alfanumérico


Verifica se os caracteres são alfabéticos

  • « ctype_alnum
  • ctype_cntrl »
  • PHP Manual
  • Funções da Ctype
  • Verifica se os caracteres são alfabéticos

ctype_alpha

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_alpha — Verifica se os caracteres são alfabéticos

Descrição

ctype_alpha(mixed $text): bool

Verifica se todos os caracteres na string fornecida, text, são alfabéticos. No padrão C locale letras são [A-Za-z] e ctype_alpha() é equivalente a (ctype_upper($text) || ctype_lower($text)) se $text é um único caractere, mas outras linguagens possuem letras que não são considerada nem maiúscula nem minúscula.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se todos caracteres em text é uma letra do atual locale, false caso contrário. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 Um exemplo da ctype_alpha() (usando o locale padrão)

<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
if (ctype_alpha($testcase)) {
echo "The string $testcase consists of all letters.\n";
} else {
echo "The string $testcase does not consist of all letters.\n";
}
}
?>

O exemplo acima produzirá:

The string KjgWZC consists of all letters.
The string arf12 does not consist of all letters.

Veja Também

  • ctype_upper() - Verifica se os caracteres são maiúsculos
  • ctype_lower() - Verifica se os caracteres estão minúsculos
  • setlocale() - Set locale information
  • IntlChar::isalpha() - Verifica se um ponto de código é uma letra


Verifica se os caracteres são de controle

  • « ctype_alpha
  • ctype_digit »
  • PHP Manual
  • Funções da Ctype
  • Verifica se os caracteres são de controle

ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_cntrl — Verifica se os caracteres são de controle

Descrição

ctype_cntrl(mixed $text): bool

Verifica se todos os caracteres na string fornecedia, text, são caracteres de controle. Caracteres de controle são e.g. line feed, tab, escape.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se todos caracteres em text são caracteres de controle do atual locale, false caso contrário. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 Um exemplo da ctype_cntrl()

<?php
$strings = array('string1' => "\n\r\t", 'string2' => 'arf12');
foreach ($strings as $name => $testcase) {
if (ctype_cntrl($testcase)) {
echo "The string '$name' consists of all control characters.\n";
} else {
echo "The string '$name' does not consist of all control characters.\n";
}
}
?>

O exemplo acima produzirá:

The string 'string1' consists of all control characters.
The string 'string2' does not consist of all control characters.

Veja Também

  • ctype_print() - Verifica se os caracteres são imprimíveis
  • IntlChar::iscntrl() - Verifica se um ponto de código é um caractere de controle


Verifica se os caracteres são numéricos

  • « ctype_cntrl
  • ctype_graph »
  • PHP Manual
  • Funções da Ctype
  • Verifica se os caracteres são numéricos

ctype_digit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_digit — Verifica se os caracteres são numéricos

Descrição

ctype_digit(mixed $text): bool

Verifica se todos os caracteres na string fornecida, text, são numéricos.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se todos caracteres na string text são dígitos decimais, false caso contrário. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 Um exemplo de ctype_digit()

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $caso_de_teste) {
if (ctype_digit($caso_de_teste)) {
echo "A string $caso_de_teste consiste inteiramente de dígitos.\n";
} else {
echo "A string $caso_de_teste não consiste inteiramente de dígitos.\n";
}
}
?>

O exemplo acima produzirá:

A string 1820.20 não consiste inteiramente de dígitos.
A string 10002 consiste inteiramente de dígitos.
A string wsl!12 não consiste inteiramente de dígitos.

Exemplo #2 Um exemplo de ctype_digit() comparando strings com inteiros

<?php

$string_numerica = '42';
$inteiro = 42;

ctype_digit($string_numerica); // verdadeiro
ctype_digit($inteiro); // false (código ASCII 42 é o caractere *)

is_numeric($string_numerica); // verdadeiro
is_numeric($inteiro); // verdadeiro
?>

Veja Também

  • ctype_alnum() - Verifica se os caracteres são alfanuméricos
  • ctype_xdigit() - Verifica se os caracteres representam um dígito hexadecimal
  • is_numeric() - Verifica se uma variável é um número ou uma string numérica
  • is_int() - Informa se o tipo de uma variável é um inteiro
  • is_string() - Verifica se o tipo de uma variável é string
  • IntlChar::isdigit() - Verifica se um ponto de código é um caractere de dígito


Verifica se os caracteres são imprimíveis exceto espaço

  • « ctype_digit
  • ctype_lower »
  • PHP Manual
  • Funções da Ctype
  • Verifica se os caracteres são imprimíveis exceto espaço

ctype_graph

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_graph — Verifica se os caracteres são imprimíveis exceto espaço

Descrição

ctype_graph(mixed $text): bool

Verifica se todos os caracteres na string fornecida, text, são visíveis.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se todos caracteres em text são imprimíveis e criam uma saída visível (sem white space), false caso contrário. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 A ctype_graph() example

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
if (ctype_graph($testcase)) {
echo "The string '$name' consists of all (visibly) printable characters.\n";
} else {
echo "The string '$name' does not consist of all (visibly) printable characters.\n";
}
}
?>

O exemplo acima produzirá:

The string 'string1' does not consist of all (visibly) printable characters.
The string 'string2' consists of all (visibly) printable characters.
The string 'string3' consists of all (visibly) printable characters.

Veja Também

  • ctype_alnum() - Verifica se os caracteres são alfanuméricos
  • ctype_print() - Verifica se os caracteres são imprimíveis
  • ctype_punct() - Verifica se é um caractere imprimível que não é whitespace ou alfanumério
  • IntlChar::isgraph() - Verifica se um ponto de código é um caractere gráfico


Verifica se os caracteres estão minúsculos

  • « ctype_graph
  • ctype_print »
  • PHP Manual
  • Funções da Ctype
  • Verifica se os caracteres estão minúsculos

ctype_lower

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_lower — Verifica se os caracteres estão minúsculos

Descrição

ctype_lower(mixed $text): bool

Verifica se todos os caracteres na string fornecida, text, são letras minúsculas.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se todos caracteres em text é uma letra minúscula no atual locale. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 Um exemplo da ctype_lower() (usando o locale padrão)

<?php
$strings = array('aac123', 'qiutoas', 'QASsdks');
foreach ($strings as $testcase) {
if (ctype_lower($testcase)) {
echo "The string $testcase consists of all lowercase letters.\n";
} else {
echo "The string $testcase does not consist of all lowercase letters.\n";
}
}
?>

O exemplo acima produzirá:

The string aac123 does not consist of all lowercase letters.
The string qiutoas consists of all lowercase letters.
The string QASsdks does not consist of all lowercase letters.

Veja Também

  • ctype_alpha() - Verifica se os caracteres são alfabéticos
  • ctype_upper() - Verifica se os caracteres são maiúsculos
  • setlocale() - Set locale information
  • IntlChar::islower() - Verifica se um ponto de código é uma letra minúscula


Verifica se os caracteres são imprimíveis

  • « ctype_lower
  • ctype_punct »
  • PHP Manual
  • Funções da Ctype
  • Verifica se os caracteres são imprimíveis

ctype_print

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_print — Verifica se os caracteres são imprimíveis

Descrição

ctype_print(mixed $text): bool

Verifica se todos os caracteres na string fornecida, text, são imprimíveis.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se todos caracteres em text irá produzir saída (incluindo em branco). Retorna false se text contem caracteres de controle ou caracteres que não tem uma saída ou funções de controle inteiramente. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 Um exemplo da ctype_print()

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
if (ctype_print($testcase)) {
echo "The string '$name' consists of all printable characters.\n";
} else {
echo "The string '$name' does not consist of all printable characters.\n";
}
}
?>

O exemplo acima produzirá:

The string 'string1' does not consist of all printable characters.
The string 'string2' consists of all printable characters.
The string 'string3' consists of all printable characters.

Veja Também

  • ctype_cntrl() - Verifica se os caracteres são de controle
  • ctype_graph() - Verifica se os caracteres são imprimíveis exceto espaço
  • ctype_punct() - Verifica se é um caractere imprimível que não é whitespace ou alfanumério
  • IntlChar::isprint() - Verifica se um ponto de código é um caractere imprimível


Verifica se é um caractere imprimível que não é whitespace ou alfanumério

  • « ctype_print
  • ctype_space »
  • PHP Manual
  • Funções da Ctype
  • Verifica se é um caractere imprimível que não é whitespace ou alfanumério

ctype_punct

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_punct — Verifica se é um caractere imprimível que não é whitespace ou alfanumério

Descrição

ctype_punct(mixed $text): bool

Verifica se todos os caracteres da string fornecida, text, são caracteres de pontuação.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se cada caractere em text é imprimível, não sendo letra, dígito ou espaço em branco, false caso contrário. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 Um exemplo da ctype_punct()

<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
if (ctype_punct($testcase)) {
echo "The string $testcase consists of all punctuation.\n";
} else {
echo "The string $testcase does not consist of all punctuation.\n";
}
}
?>

O exemplo acima produzirá:

The string ABasdk!@!$# does not consist of all punctuation.
The string !@ # $ does not consist of all punctuation.
The string *&$() consists of all punctuation.

Veja Também

  • ctype_cntrl() - Verifica se os caracteres são de controle
  • ctype_graph() - Verifica se os caracteres são imprimíveis exceto espaço
  • IntlChar::ispunct() - Verifica se um ponto de código é um caractere de pontuação


Verifica se os caracteres são whitespace

  • « ctype_punct
  • ctype_upper »
  • PHP Manual
  • Funções da Ctype
  • Verifica se os caracteres são whitespace

ctype_space

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_space — Verifica se os caracteres são whitespace

Descrição

ctype_space(mixed $text): bool

Verifica se todos os caracteres na string fornecida, text, são whitespace.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se todos caracteres em text são white space, false caso contrário. Além de caracteres em branco isto também inclui os caracteres tab, vertical tab, line feed, carriage return e form feed. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 Um exemplo da ctype_space()

<?php
$strings = array(
'string1' => "\n\r\t",
'string2' => "\narf12",
'string3' => '\n\r\t' // note the single quotes
);
foreach ($strings as $name => $testcase) {
if (ctype_space($testcase)) {
echo "A string '$name' consiste apenas em caracteres de espaço em branco.\n";
} else {
echo "A string '$name' contém caracteres sem espaço em branco.\n";
}
}
?>

O exemplo acima produzirá:

A string 'string1' consiste apenas em caracteres de espaço em branco.
A string 'string2' contém caracteres sem espaço em branco.
A string 'string3' contém caracteres sem espaço em branco.

Veja Também

  • ctype_cntrl() - Verifica se os caracteres são de controle
  • ctype_graph() - Verifica se os caracteres são imprimíveis exceto espaço
  • ctype_punct() - Verifica se é um caractere imprimível que não é whitespace ou alfanumério
  • IntlChar::isspace() - Verifica se um ponto de código é um caractere de espaçamento


Verifica se os caracteres são maiúsculos

  • « ctype_space
  • ctype_xdigit »
  • PHP Manual
  • Funções da Ctype
  • Verifica se os caracteres são maiúsculos

ctype_upper

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_upper — Verifica se os caracteres são maiúsculos

Descrição

ctype_upper(mixed $text): bool

Verifica se todos os caracteres na string fornecida, text, são maiúsculos.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se todos caracteres em text é uma letra maiúscula no locale atual. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 Um exemplo da ctype_upper() (usando o locale padrão)

<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
if (ctype_upper($testcase)) {
echo "The string $testcase consists of all uppercase letters.\n";
} else {
echo "The string $testcase does not consist of all uppercase letters.\n";
}
}
?>

O exemplo acima produzirá:

The string AKLWC139 does not consist of all uppercase letters.
The string LMNSDO consists of all uppercase letters.
The string akwSKWsm does not consist of all uppercase letters.

Veja Também

  • ctype_alpha() - Verifica se os caracteres são alfabéticos
  • ctype_lower() - Verifica se os caracteres estão minúsculos
  • setlocale() - Set locale information
  • IntlChar::isupper() - Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)


Verifica se os caracteres representam um dígito hexadecimal

  • « ctype_upper
  • Filter »
  • PHP Manual
  • Funções da Ctype
  • Verifica se os caracteres representam um dígito hexadecimal

ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_xdigit — Verifica se os caracteres representam um dígito hexadecimal

Descrição

ctype_xdigit(mixed $text): bool

Verifica se todos os caracteres na string fornecida, text, são 'dígitos' hexadecimal.

Parâmetros

text

A string a ser testada.

Nota:

Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.

Aviso

A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.

Valor Retornado

Retorna true se todos caracteres em text é um 'dígito' hexadecimal, que é um dígito ou um caractere de [A-Fa-f], false caso contrário. Quando chamada com uma string vazia, o resultado sempre será false.

Exemplos

Exemplo #1 Um exemplo da ctype_xdigit()

<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
if (ctype_xdigit($testcase)) {
echo "The string $testcase consists of all hexadecimal digits.\n";
} else {
echo "The string $testcase does not consist of all hexadecimal digits.\n";
}
}
?>

O exemplo acima produzirá:

The string AB10BC99 consists of all hexadecimal digits.
The string AR1012 does not consist of all hexadecimal digits.
The string ab12bc99 consists of all hexadecimal digits.

Veja Também

  • ctype_digit() - Verifica se os caracteres são numéricos
  • IntlChar::isxdigit() - Verifica se um ponto de código é um dígito hexadecimal


Filtragem de dados

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Tipos de filtros
    • Filtros de validação
    • Filtros de Sanitize (Limpeza)
    • Outros filtros
    • Filtro flags
  • Constantes pré-definidas
  • Exemplos
    • Validation
    • Sanitization
  • Funções da Filter
    • filter_has_var — Verifica se uma variável de um especificado tipo existe
    • filter_id — Retorna o ID de filtro pertencente a um filtro nomeado
    • filter_input_array — Obtem variáveis externas e opcionalmente as filtra
    • filter_input — Gets a specific external variable by name and optionally filters it
    • filter_list — Retorna a lista de todos os filtros suportados
    • filter_var_array — Obtêm múltiplas variáveis e opcionalmente as filtra
    • filter_var — Filters a variable with a specified filter


Introdução

Esta extensão filtra dados ou por validação ou por higienização. Isto é útil quando as fontes de dados contém dados desconhecidos ou externos, como dados enviados pelo usuário, por exemplo, dados vindos de um formulário HTML.

Há dois tipos principais de filtragem: validação e higienização.

Validação é utilizada para verificar ou conferir se os dados cumprem certas qualificações. Por exemplo, passar FILTER_VALIDATE_EMAIL irá determinar se o dado é um endereço de email válido, mas não mudará os dados.

Higienização irá limpar os dados, podendo alterá-lo pela remoção de trechos indesejáveis. Por exemplo, passar FILTER_SANITIZE_EMAIL irá remover letras não previstas em um endereço de email válido. No entanto, ele não irá validar os dados.

Flags opcionais são usadas na validação e higienização para configurar o comportamento conforme necessário. Por exemplo, passar FILTER_FLAG_PATH_REQUIRED enquanto filtrando uma URL irá requer que um caminho (por exemplo, /foo em http://example.org/foo) seja preservado.


Instalação

Esta extensão está habilitada por padrão. Ela pode ser desabilitada usando a seguinte opção em tempo de compilação: --disable-filter


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração da Filter
Nome | Padrão | Modificável | Registro de Alterações
filter.default | "unsafe_raw" | INI_PERDIR | Descontinuado desde o PHP 8.1.0.
filter.default_flags | NULL | INI_PERDIR |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

filter.default string

Filtra todas informações de $_GET, $_POST, $_COOKIE, $_REQUEST and $_SERVER com este filtro. A informação original pode ser acessada através da filter_input().

Aceita o nome do filtro que você quer usar por padrão. Veja a filter list existentes na lista de nomes de filtros.

Nota:

Cuidado com os valores padrão dos filtros. Você deve explicitamente informar quais deseja. Por exemplo, para configurar o filtro padrão para para se comportar exatamente como htmlspecialchars() você deve configurar o falgs para 0 como mostrado abaixo.

Exemplo #1 Configurando o filtro padrão para agir como htmlspecialchars

filter.default = full_special_chars
filter.default_flags = 0

filter.default_flags int

Flags padrão a serem aplicados ao filtro padrão. Inicialmente configurado para FILTER_FLAG_NO_ENCODE_QUOTES por padrão para compatibilidade reversa. Veja a lista de flags para uma listagem dos nomes das flags.


  • « Configurações em Execução
  • Tipos de filtros »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


Tipos de filtros

Índice

  • Filtros de validação
  • Filtros de Sanitize (Limpeza)
  • Outros filtros
  • Filtro flags


Filtros de validação

Listagem de filtros para validação
ID | Nome | Opções | Flags | Descrição
FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_BOOL | "boolean" | default | FILTER_NULL_ON_FAILURE | Retorna true para "1", "true", "on" e "yes". Retorna false caso contrário. Se FILTER_NULL_ON_FAILURE está definido, false é retornado apenas para "0", "false", "off", "no", e "", e null é retornado para todos os valores não booleanos. Valores string passam pela função trim() antes da comparação.
FILTER_VALIDATE_DOMAIN | "validate_domain" | default | FILTER_FLAG_HOSTNAME, FILTER_NULL_ON_FAILURE | Valida se os comprimentos do nome de domínio são válidos Valida nomes de domínio contra RFC 1034, RFC 1035, RFC 952, RFC 1123, RFC 2732, RFC 2181, and RFC 1123. Flag opcional FILTER_FLAG_HOSTNAME adiciona capacidade de validar especificamente nomes de host (eles devem começar com um caractere alfanumérico e conter apenas alfanuméricos ou hifens).
FILTER_VALIDATE_EMAIL | "validate_email" | default | FILTER_FLAG_EMAIL_UNICODE, FILTER_NULL_ON_FAILURE | Valida se o valor é um endereço de e-mail válido. Em geral, isso valida os endereços de e-mail com relação à sintaxe addr-spec da » RFC 822, com as exceções que comentários e espaço em branco dobrável e nomes de domínio sem ponto não são suportados.
FILTER_VALIDATE_FLOAT | "float" | default, decimal, min_range, max_range | FILTER_FLAG_ALLOW_THOUSAND, FILTER_NULL_ON_FAILURE | Valida o valor como float, opcionalmente dentro dos limites, e converte para float no sucesso. Valores string passam pela função trim() antes da comparação.
FILTER_VALIDATE_INT | "int" | default, min_range, max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX, FILTER_NULL_ON_FAILURE | Valida o valor como inteiro, opcionalmente dentro dos limites, e converte para float no sucesso. Valores string passam pela função trim() antes da comparação.
FILTER_VALIDATE_IP | "validate_ip" | default | FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE, FILTER_FLAG_GLOBAL_RANGE, FILTER_NULL_ON_FAILURE | Valida o valor como endereço IP, opcionalmente apenas IPv4 ou IPv6 ou não de intervalos privados ou reservados.
FILTER_VALIDATE_MAC | "validate_mac_address" | default | FILTER_NULL_ON_FAILURE | Valida o valor como endereço MAC.
FILTER_VALIDATE_REGEXP | "validate_regexp" | default, regexp | FILTER_NULL_ON_FAILURE | Valida o valor contra regexp, um Perl-compatible expressão regular.
FILTER_VALIDATE_URL | "validate_url" | default | FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED, FILTER_NULL_ON_FAILURE | Valida o valor como URL (de acordo com » http://www.faqs.org/rfcs/rfc2396), opcionalmente com componentes requeridos. Cuidado, uma URL válido pode não especificar o protocolo HTTP http:// Assim, a validação adicional pode ser necessária para determinar a URL utiliza um protocolo esperado, e.g. ssh:// ou mailto:. Note que a função só encontrará URLs ASCII válidas; nomes de domínio internacionalizados (contendo caracteres não ASCII) vai falhar.

Nota:

Quando default está definido para a opção, default é usado se o valor não for validado.

Registro de Alterações

Versão | Descrição
8.0.0 | As flags FILTER_FLAG_SCHEME_REQUIRED e FILTER_FLAG_HOST_REQUIRED do filtro FILTER_VALIDATE_URL foram removidas. Os elementos scheme e host são e sempre foram requeridos.
8.0.0 | Adicionado FILTER_VALIDATE_BOOL como um apelido de FILTER_VALIDATE_BOOLEAN. Usar FILTER_VALIDATE_BOOL é preferível.
7.4.0 | Adicionado as opções min_range e max_range para FILTER_VALIDATE_FLOAT.
7.0.0 | Adicionado FILTER_FLAG_HOSTNAME e FILTER_VALIDATE_DOMAIN.


Filtros de Sanitize (Limpeza)

Lista de filtros para sanitização (Limpeza)
ID | Nome | Flags | Descrição
FILTER_SANITIZE_EMAIL | "email" |  | Remova todos os caracteres, exceto letras, dígitos e !#$%&'*+-=?^_`{|}~@.[].
FILTER_SANITIZE_ENCODED | "encoded" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH | URL-encode string, opcionalmente tira ou codifica caracteres especiais.
FILTER_SANITIZE_MAGIC_QUOTES | "magic_quotes" |  | Aplica addslashes() (DESCONTINUADO no PHP 7.3.0 e REMOVIDO no PHP 8.0.0, utilize FILTER_SANITIZE_ADD_SLASHES).
FILTER_SANITIZE_ADD_SLASHES | "add_slashes" |  | Aplica addslashes(). (A partir do PHP 7.3.0)
FILTER_SANITIZE_NUMBER_FLOAT | "number_float" | FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC | Remove todos os caracteres, exceto dígitos, +- e opcionalmente .,eE.
FILTER_SANITIZE_NUMBER_INT | "number_int" |  | Remove todos os caracteres, exceto os dígitos, sinal de mais e menos.
FILTER_SANITIZE_SPECIAL_CHARS | "special_chars" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_HIGH | Codifica em HTML '"<>& e caracteres com valor ASCII menor que 32, opcionalmente, tira ou codifica outros caracteres especiais.
FILTER_SANITIZE_FULL_SPECIAL_CHARS | "full_special_chars" | FILTER_FLAG_NO_ENCODE_QUOTES | Equivalente a chamar htmlspecialchars() junto com ENT_QUOTES. Citações de codificação podem ser desabilitadas FILTER_FLAG_NO_ENCODE_QUOTES. Como htmlspecialchars(), este filtro está ciente do default_charset e se uma sequência de bytes for detectada cria um caractere inválido no conjunto de caracteres atual e, em seguida, a cadeia inteira é rejeitada, resultando em uma cadeia de caracteres de comprimento igual a 0. Ao usar esse filtro como um filtro padrão, consulte o aviso abaixo sobre como definir os sinalizadores padrão como 0
FILTER_SANITIZE_STRING | "string" | FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Remove tags e codifica aspas duplas e simples no estilo HTML, opcionalmente remove ou codifica caracteres HTML especiais. Codificar aspas pode ser desligado ao ativar FILTER_FLAG_NO_ENCODE_QUOTES (Descontinuado desde o PHP 8.1.0, utilize htmlspecialchars()).
FILTER_SANITIZE_STRIPPED | "stripped" |  | Alias do filtro "string" (Descontinuado desde o PHP 8.1.0, utilize htmlspecialchars()).
FILTER_SANITIZE_URL | "url" |  | Remove todos os caracteres, exceto letras, dígitos e $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_UNSAFE_RAW | "unsafe_raw" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Não faz nada, opcionalmente descasque ou codifique caracteres especiais. este filtro também é alias do FILTER_DEFAULT.

Aviso

Ao usar um desses filtros como um filtro padrão através do seu arquivo ini ou através da configuração do seu servidor web, os sinalizadores padrão são definidos para FILTER_FLAG_NO_ENCODE_QUOTES. Você precisa definir explicitamente filter.default_flags para 0 ter aspas codificadas por padrão. Assim:

Exemplo #1 Configurando o filtro padrão para agir como htmlspecialchars

filter.default = full_special_chars
filter.default_flags = 0

Registro de Alterações

Versão | Descrição
8.1.0 | FILTER_SANITIZE_STRING e FILTER_SANITIZE_STRIPPED foram descontinuadas.
8.0.0 | FILTER_SANITIZE_MAGIC_QUOTES foi removido.
7.3.0 | FILTER_SANITIZE_ADD_SLASHES foi adicionado como substitutivo de FILTER_SANITIZE_MAGIC_QUOTES
7.3.0 | FILTER_SANITIZE_MAGIC_QUOTES foi descontinuado.


Outros filtros

Lista de filtros diversos
ID | Nome | Opções | Flags | Descrição
FILTER_CALLBACK | "callback" | callable função ou método | Todas as flags são ignoradas | Chama a função definida pelo usuário para filtrar os dados.


Filtro flags

Lista de sinalizadores de filtro
ID | Usado com | Descrição
FILTER_FLAG_STRIP_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Retira caracteres que têm um valor numérico <32.
FILTER_FLAG_STRIP_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Retira caracteres que têm um valor numérico >127.
FILTER_FLAG_STRIP_BACKTICK | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Retira crase dos caracteres.
FILTER_FLAG_ALLOW_FRACTION | FILTER_SANITIZE_NUMBER_FLOAT | Permite um ponto (.) como um separador fracionário em números.
FILTER_FLAG_ALLOW_THOUSAND | FILTER_SANITIZE_NUMBER_FLOAT, FILTER_VALIDATE_FLOAT | Permite uma vírgula (,) como um separador de milhares em números.
FILTER_FLAG_ALLOW_SCIENTIFIC | FILTER_SANITIZE_NUMBER_FLOAT | Permite um e ou E para fins científicos notação em números.
FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_SANITIZE_STRING | Se este flag estiver presente, Aspas simples (') e duplas (") duplas não serão codificadas.
FILTER_FLAG_ENCODE_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Codifica todos os caracteres com um valor numérico <32.
FILTER_FLAG_ENCODE_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Codifica todos os caracteres com um valor numérico >127.
FILTER_FLAG_ENCODE_AMP | FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Codifica e comercial (&).
FILTER_NULL_ON_FAILURE | quaisquer FILTER_VALIDATE_* | Retorna null para valores não reconhecidos.
FILTER_FLAG_ALLOW_OCTAL | FILTER_VALIDATE_INT | Considera entradas começando com zero (0) como números octal. Isso só permite que os dígitos seguintes sejam 0-7.
FILTER_FLAG_ALLOW_HEX | FILTER_VALIDATE_INT | Atenciosamente entradas começando com 0x ou 0X como números hexadecimais. Isso só permite que os caracteres seguintes sejam a-fA-F0-9.
FILTER_FLAG_EMAIL_UNICODE | FILTER_VALIDATE_EMAIL | Permite que a parte local do endereço de e-mail contenha caracteres Unicode.
FILTER_FLAG_IPV4 | FILTER_VALIDATE_IP | Permite que o endereço IP esteja no formato IPv4.
FILTER_FLAG_IPV6 | FILTER_VALIDATE_IP | Permite que o endereço IP esteja no formato IPv6.
FILTER_FLAG_NO_PRIV_RANGE FILTER_VALIDATE_IP

Falha na validação para os seguintes intervalos de IPv4 privados: 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16.

Falha na validação dos endereços IPv6 que começam com FD ou FC.

FILTER_FLAG_NO_RES_RANGE FILTER_VALIDATE_IP

Falha na validação para os seguintes intervalos de IPv4 reservados: 0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8 e 240.0.0.0/4.

Falha na validação para os seguintes intervalos reservados de IPv6: ::1/128, ::/128, ::ffff:0:0/96 e fe80::/10.

Há ranges marcados como Reserved-By-Protocol no » RFC 6890.

FILTER_FLAG_GLOBAL_RANGE FILTER_VALIDATE_IP

Falha validando faixas não globais de IPv4/IPv6 como detalhado em » RFC 6890 com o atributo Global igual a False.

FILTER_FLAG_SCHEME_REQUIRED | FILTER_VALIDATE_URL | Requer que a URL contenha uma parte do esquema.
FILTER_FLAG_HOST_REQUIRED | FILTER_VALIDATE_URL | Requer que a URL contenha uma parte do host.
FILTER_FLAG_PATH_REQUIRED | FILTER_VALIDATE_URL | Requer que o URL contenha uma parte do caminho.
FILTER_FLAG_QUERY_REQUIRED | FILTER_VALIDATE_URL | Requer que o URL contenha uma string de consulta.
FILTER_REQUIRE_SCALAR | Requer que o valor seja escalar.
FILTER_REQUIRE_ARRAY | Requer que o valor seja um array. Filtros informados serão aplicados a cara valor escalar do array.
FILTER_FORCE_ARRAY | Se o valor é um escalar, é tratado como array com o valor escalar como único elemento.

Registro de Alterações

Versão | Descrição
8.2.0 | FILTER_FLAG_GLOBAL_RANGE como uma flag de FILTER_VALIDATE_IP foi adicionado.
7.3.0 | O uso explícito de FILTER_FLAG_SCHEME_REQUIRED e FILTER_FLAG_HOST_REQUIRED foi descontinuado.
7.1.0 | FILTER_FLAG_EMAIL_UNICODE foi adicionado.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

INPUT_POST (int)
Variáveis POST.
INPUT_GET (int)
Variáveis GET.
INPUT_COOKIE (int)
Variáveis COOKIE.
INPUT_ENV (int)
Variáveis ENV.
INPUT_SERVER (int)
Variáveis SERVER.
INPUT_SESSION (int)
Variáveis SESSION. (ainda não implementada)
INPUT_REQUEST (int)
Variáveis REQUEST. (ainda não implementada)
FILTER_FLAG_NONE (int)
Sem flags.
FILTER_REQUIRE_SCALAR (int)
Flag usada para requerer escalar como entrada
FILTER_REQUIRE_ARRAY (int)
Requer um array como entrada.
FILTER_FORCE_ARRAY (int)
Sempre retorna um array.
FILTER_NULL_ON_FAILURE (int)
Usa NULL ao invés de FALSE em falha.
FILTER_VALIDATE_INT (int)
ID do filtro "int".
FILTER_VALIDATE_BOOL (int)
Apelido de FILTER_VALIDATE_BOOLEAN.
FILTER_VALIDATE_BOOLEAN (int)
ID do filtro "boolean".
FILTER_VALIDATE_FLOAT (int)
ID do filtro "float".
FILTER_VALIDATE_REGEXP (int)
ID do filtro "validate_regexp".
FILTER_VALIDATE_URL (int)
ID do filtro "validate_url".
FILTER_VALIDATE_DOMAIN (int)
ID do filtro "validate_domain". (Disponível a partir do PHP 7.0.0)
FILTER_VALIDATE_EMAIL (int)
ID do filtro "validate_email".
FILTER_VALIDATE_IP (int)
ID do filtro "validate_ip".
FILTER_VALIDATE_MAC (int)
ID do filtro "validate_mac_address".
FILTER_DEFAULT (int)
ID do filtro padrão ("unsafe_raw"). Equivalente a FILTER_UNSAFE_RAW.
FILTER_UNSAFE_RAW (int)
ID do filtro "unsafe_raw".
FILTER_SANITIZE_STRING (int)
ID do filtro "string". (Descontinuado a partir do PHP 8.1.0, ao invés, use htmlspecialchars().)
FILTER_SANITIZE_STRIPPED (int)
ID do filtro "stripped". (Descontinuado a partir do PHP 8.1.0, ao invés, use htmlspecialchars().)
FILTER_SANITIZE_ENCODED (int)
ID do filtro "encoded".
FILTER_SANITIZE_SPECIAL_CHARS (int)
ID do filtro "special_chars".
FILTER_SANITIZE_EMAIL (int)
ID do filtro "email".
FILTER_SANITIZE_URL (int)
ID do filtro "url".
FILTER_SANITIZE_NUMBER_INT (int)
ID do filtro "number_int".
FILTER_SANITIZE_NUMBER_FLOAT (int)
ID do filtro "number_float".
FILTER_SANITIZE_MAGIC_QUOTES (int)
ID do filtro "magic_quotes". (DESCONTINUADO a partir do PHP 7.3.0 e REMOVIDO a partir do PHP 8.0.0, ao invés, use FILTER_SANITIZE_ADD_SLASHES.)
FILTER_SANITIZE_ADD_SLASHES (int)
ID do filtro "add_slashes". (Disponível a partir do PHP 7.3.0)
FILTER_CALLBACK (int)
ID do filtro "callback".
FILTER_FLAG_ALLOW_OCTAL (int)
Permite notação octal (0[0-7]+) no filtro "int".
FILTER_FLAG_ALLOW_HEX (int)
Permite notação hexadecimal (0x[0-9a-fA-F]+) no filtro "int".
FILTER_FLAG_STRIP_LOW (int)
Remove caracteres com valor ASCII menor que 32.
FILTER_FLAG_STRIP_HIGH (int)
Remove caracteres com valor ASCII maior que 127.
FILTER_FLAG_STRIP_BACKTICK (int)
Remove barra invertida.
FILTER_FLAG_ENCODE_LOW (int)
Codifica caracteres com valor ASCII menor que 32.
FILTER_FLAG_ENCODE_HIGH (int)
Codifica caracteres com valor ASCII maior que 127.
FILTER_FLAG_ENCODE_AMP (int)
Codifica &.
FILTER_FLAG_NO_ENCODE_QUOTES (int)
Não codifica ' e ".
FILTER_FLAG_EMPTY_STRING_NULL (int)
(Nenhum uso no momento.)
FILTER_FLAG_ALLOW_FRACTION (int)
Permite parte fracional no filtro "number_float".
FILTER_FLAG_ALLOW_THOUSAND (int)
Permite separador de milhar (,) no filtro "number_float".
FILTER_FLAG_ALLOW_SCIENTIFIC (int)
Permite notação científica (e, E) no filtro "number_float".
FILTER_FLAG_PATH_REQUIRED (int)
Requer path no filtro "validate_url".
FILTER_FLAG_QUERY_REQUIRED (int)
Requer query no filtro "validate_url".
FILTER_FLAG_SCHEME_REQUIRED (int)
Requer scheme no filtro "validate_url". (Descontinuado a partir do PHP 7.3.0 e removido a partir do PHP 8.0.0, por já estar implícito no filtro.)
FILTER_FLAG_HOST_REQUIRED (int)
Requer host no filtro "validate_url". (Descontinuado a partir do PHP 7.3.0 e removido a partir do PHP 8.0.0, por já estar implícito no filtro.)
FILTER_FLAG_HOSTNAME (int)
Requer que hostnames inicial com caracteres alfanuméricos e contenham apenas alfanuméricos ou hífen. (Disponível a partir do PHP 7.0.0)
FILTER_FLAG_IPV4 (int)
Permite somente endereço IPv4 no filtro "validate_ip".
FILTER_FLAG_IPV6 (int)
Permite somente endereço IPv6 no filtro "validate_ip".
FILTER_FLAG_NO_RES_RANGE (int)
Não permite endereços reservados no filtro "validate_ip".
FILTER_FLAG_NO_PRIV_RANGE (int)
Não permite endereços privados no filtro "validate_ip".
FILTER_FLAG_EMAIL_UNICODE (int)
Aceita caracteres Unicode na parte local no filtro "validate_email". (Disponível a partir do PHP 7.1.0)


  • « Constantes pré-definidas
  • Validation »
  • PHP Manual
  • Filter
  • Exemplos

Exemplos

Índice

  • Validation
  • Sanitization


Validation

Exemplo #1 Validating email addresses with filter_var()

<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';

if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
echo "Email address '$email_a' is considered valid.\n";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo "Email address '$email_b' is considered valid.\n";
} else {
echo "Email address '$email_b' is considered invalid.\n";
}
?>

O exemplo acima produzirá:

Email address 'joe@example.com' is considered valid.
Email address 'bogus' is considered invalid.

Exemplo #2 Validating IP addresses with filter_var()

<?php
$ip_a = '127.0.0.1';
$ip_b = '42.42';

if (filter_var($ip_a, FILTER_VALIDATE_IP)) {
echo "IP address '$ip_a' is considered valid.";
}
if (filter_var($ip_b, FILTER_VALIDATE_IP)) {
echo "IP address '$ip_b' is considered valid.";
}
?>

O exemplo acima produzirá:

IP address '127.0.0.1' is considered valid.

Exemplo #3 Passing options to filter_var()

<?php
$int_a = '1';
$int_b = '-1';
$int_c = '4';
$options = array(
'options' => array(
'min_range' => 0,
'max_range' => 3,
)
);
if (filter_var($int_a, FILTER_VALIDATE_INT, $options) !== FALSE) {
echo "Integer A '$int_a' is considered valid (between 0 and 3).\n";
}
if (filter_var($int_b, FILTER_VALIDATE_INT, $options) !== FALSE) {
echo "Integer B '$int_b' is considered valid (between 0 and 3).\n";
}
if (filter_var($int_c, FILTER_VALIDATE_INT, $options) !== FALSE) {
echo "Integer C '$int_c' is considered valid (between 0 and 3).\n";
}

$options['options']['default'] = 1;
if (($int_c = filter_var($int_c, FILTER_VALIDATE_INT, $options)) !== FALSE) {
echo "Integer C '$int_c' is considered valid (between 0 and 3).";
}
?>

O exemplo acima produzirá:

Integer A '1' is considered valid (between 0 and 3).
Integer C '1' is considered valid (between 0 and 3).


Sanitization

Exemplo #1 Sanitizing and validating email addresses

<?php
$a = 'joe@example.org';
$b = 'bogus - at - example dot org';
$c = '(bogus@example.org)';

$sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) {
echo "This (a) sanitized email address is considered valid.\n";
}

$sanitized_b = filter_var($b, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_b, FILTER_VALIDATE_EMAIL)) {
echo "This sanitized email address is considered valid.";
} else {
echo "This (b) sanitized email address is considered invalid.\n";
}

$sanitized_c = filter_var($c, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_c, FILTER_VALIDATE_EMAIL)) {
echo "This (c) sanitized email address is considered valid.\n";
echo "Before: $c\n";
echo "After: $sanitized_c\n";
}
?>

O exemplo acima produzirá:

This (a) sanitized email address is considered valid.
This (b) sanitized email address is considered invalid.
This (c) sanitized email address is considered valid.
Before: (bogus@example.org)
After: bogus@example.org

Exemplo #2 Configuring a default filter

filter.default = full_special_chars
filter.default_flags = 0


Funções da Filter

Índice

  • filter_has_var — Verifica se uma variável de um especificado tipo existe
  • filter_id — Retorna o ID de filtro pertencente a um filtro nomeado
  • filter_input_array — Obtem variáveis externas e opcionalmente as filtra
  • filter_input — Gets a specific external variable by name and optionally filters it
  • filter_list — Retorna a lista de todos os filtros suportados
  • filter_var_array — Obtêm múltiplas variáveis e opcionalmente as filtra
  • filter_var — Filters a variable with a specified filter


Verifica se uma variável de um especificado tipo existe

  • « Funções da Filter
  • filter_id »
  • PHP Manual
  • Funções da Filter
  • Verifica se uma variável de um especificado tipo existe

filter_has_var

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_has_var — Verifica se uma variável de um especificado tipo existe

Descrição

filter_has_var(int $input_type, string $var_name): bool

Parâmetros

input_type

Uma das constantes INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

var_name

Nome da variável a ser verificada.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Retorna o ID de filtro pertencente a um filtro nomeado

  • « filter_has_var
  • filter_input_array »
  • PHP Manual
  • Funções da Filter
  • Retorna o ID de filtro pertencente a um filtro nomeado

filter_id

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_id — Retorna o ID de filtro pertencente a um filtro nomeado

Descrição

filter_id(string $name): int|false

Parâmetros

name

Nome do filtro a ser obtido.

Valor Retornado

ID do filtro em caso de sucesso ou false se o filtro não existir.

Veja Também

  • filter_list() - Retorna a lista de todos os filtros suportados


Obtem variáveis externas e opcionalmente as filtra

  • « filter_id
  • filter_input »
  • PHP Manual
  • Funções da Filter
  • Obtem variáveis externas e opcionalmente as filtra

filter_input_array

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_input_array — Obtem variáveis externas e opcionalmente as filtra

Descrição

filter_input_array(int $type, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

Esta função é útil para receber muitos valores sem repetidamente chamar a função filter_input().

Parâmetros

type

Uma das constantes INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

options

Um array definindo os argumentos. Uma chave válida é uma string contendo um nome da variável, e um valor válido é um tipo de filtro, ou um array opcionalmente especificando o filtro, marcas e opções. Se o valor for um array, chaves válidas são filter que especifica o tipo de filtro, flags que especifica quaisquer marcas que se aplicam ao filtro, e options que especifica quaisquer opções que serão aplicadas ao filtro. Veja os exemplos abaixo para um melhor entendimento.

Este parâmetro pode ser também um inteiro contendo uma constante de filtro. Desta forma, todos os valores no array de entrada serão filtradas por este filtro.

add_empty

Adiciona chaves faltantes como null ao valor de retorno.

Valor Retornado

Um array contendo os valores das variáveis requisitads em caso de sucesso. Se o array de entrada designado por type não for preenchido, a função retorna null se a marca FILTER_NULL_ON_FAILURE não for fornecida, ou false caso contrário. Para outras falhas, false é retornado.

Um valor de array será false se o filtro falhar, ou null se a variável não estiver definida. Ou, se a marca FILTER_NULL_ON_FAILURE for usada, a função retorna false se a variável não estiver definida e null se o filtro falhar. Se o parâmetro add_empty for false, nenhum elemento de array será adicionado para variáveis não definidas.

Exemplos

Exemplo #1 Um exemplo da filter_input_array()

<?php

/* dados realmente vieram de POST
$_POST = array(
'product_id' => 'libgd<script>',
'component' => array('10'),
'version' => '2.0.33',
'testarray' => array('2', '23', '10', '12'),
'testscalar' => '2',
);
*/

$args = array(
'product_id' => FILTER_SANITIZE_ENCODED,
'component' => array('filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_ARRAY,
'options' => array('min_range' => 1, 'max_range' => 10)
),
'version' => FILTER_SANITIZE_ENCODED,
'doesnotexist' => FILTER_VALIDATE_INT,
'testscalar' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_SCALAR,
),
'testarray' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_ARRAY,
)

);

$myinputs = filter_input_array(INPUT_POST, $args);

var_dump($myinputs);
echo "\n";
?>

O exemplo acima produzirá:

array(6) {
  ["product_id"]=>
  string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["version"]=>
  string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  int(2)
  ["testarray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(23)
    [2]=>
    int(10)
    [3]=>
    int(12)
  }
}

Notas

Nota:

Não existe a chave REQUEST_TIME no array INPUT_SERVER porque ela será inserida na variável $_SERVER mais tarde.

Veja Também

  • filter_input() - Gets a specific external variable by name and optionally filters it
  • filter_var_array() - Obtêm múltiplas variáveis e opcionalmente as filtra
  • Tipos de filtros


Gets a specific external variable by name and optionally filters it

  • « filter_input_array
  • filter_list »
  • PHP Manual
  • Funções da Filter
  • Gets a specific external variable by name and optionally filters it

filter_input

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_input — Gets a specific external variable by name and optionally filters it

Descrição

filter_input(
int $type,
string $var_name,
int $filter = FILTER_DEFAULT,
array|int $options = 0
): mixed

Parâmetros

type

One of INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, or INPUT_ENV.

var_name

Name of a variable to get.

filter

O ID do filtro a ser aplicado. A página do manual Tipos de filtros lista os filtros disponíveis.

Se omitido, FILTER_DEFAULT será usado, que é equivalente a FILTER_UNSAFE_RAW. Isso resultará em nenhuma filtragem ocorrendo por padrão.

options

Associative array of options or bitwise disjunction of flags. If filter accepts options, flags can be provided in "flags" field of array.

Valor Retornado

Value of the requested variable on success, false if the filter fails, or null if the var_name variable is not set. If the flag FILTER_NULL_ON_FAILURE is used, it returns false if the variable is not set and null if the filter fails.

Exemplos

Exemplo #1 A filter_input() example

<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "You have searched for $search_html.\n";
echo "<a href='?search=$search_url'>Search again.</a>";
?>

O exemplo acima produzirá algo semelhante a:

You have searched for Me &#38; son.
<a href='?search=Me%20%26%20son'>Search again.</a>

Veja Também

  • filter_var() - Filters a variable with a specified filter
  • filter_input_array() - Obtem variáveis externas e opcionalmente as filtra
  • filter_var_array() - Obtêm múltiplas variáveis e opcionalmente as filtra
  • Tipos de filtros


Retorna a lista de todos os filtros suportados

  • « filter_input
  • filter_var_array »
  • PHP Manual
  • Funções da Filter
  • Retorna a lista de todos os filtros suportados

filter_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_list — Retorna a lista de todos os filtros suportados

Descrição

filter_list(): array

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array de nomes de todos os filtros suportados, um array vazio se não houver filtros. Índices deste array não são IDs de filtros, estes podem ser obtidos com filter_id() a partir do nome.

Exemplos

Exemplo #1 Um exemplo de filter_list()

<?php
print_r(filter_list());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => int
    [1] => boolean
    [2] => float
    [3] => validate_regexp
    [4] => validate_url
    [5] => validate_email
    [6] => validate_ip
    [7] => string
    [8] => stripped
    [9] => encoded
    [10] => special_chars
    [11] => unsafe_raw
    [12] => email
    [13] => url
    [14] => number_int
    [15] => number_float
    [16] => magic_quotes
    [17] => callback
)


Obtêm múltiplas variáveis e opcionalmente as filtra

  • « filter_list
  • filter_var »
  • PHP Manual
  • Funções da Filter
  • Obtêm múltiplas variáveis e opcionalmente as filtra

filter_var_array

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_var_array — Obtêm múltiplas variáveis e opcionalmente as filtra

Descrição

filter_var_array(array $array, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

Esta função é útil para receber muitos valores sem repetidamente chamar a função filter_var().

Parâmetros

array

Um array com as chaves string contendo os dados a filtrar.

options

Um array definindo os argumentos. Uma chave válida é uma string contendo o nome da variável, e um valor válido é um tipo de filtro ou um array opcionalmente especificando o filtro, marcas e opções. Se o valor for um array, chaves válida são filter que especifica o tipo de filtro, flags que especifica alguma marca aplicada ao filtro, e options que especifica uma opção que é aplicada ao filtro. Veja o exemplo abaixo para um melhor entendimento.

Este parâmetro pode ser também um inteiro contendo uma constante de filtro. Desta forma, todos valores no array de entrada serão filtrados por este filtro.

add_empty

Adiciona chaves faltantes como null ao valor de retorno.

Valor Retornado

Um array contendo valores das variáveis requisitadas em caso de sucesso, ou false em caso de falha. Um valor de array será false se o filtro falhar, ou null se a variável não estiver definida.

Exemplos

Exemplo #1 Um exemplo de filter_var_array()

<?php

$data = array(
'product_id' => 'libgd<script>',
'component' => '10',
'versions' => '2.0.33',
'testscalar' => array('2', '23', '10', '12'),
'testarray' => '2',
);

$args = array(
'product_id' => FILTER_SANITIZE_ENCODED,
'component' => array('filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
'options' => array('min_range' => 1, 'max_range' => 10)
),
'versions' => FILTER_SANITIZE_ENCODED,
'doesnotexist' => FILTER_VALIDATE_INT,
'testscalar' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_SCALAR,
),
'testarray' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
)

);

$myinputs = filter_var_array($data, $args);

var_dump($myinputs);
echo "\n";
?>

O exemplo acima produzirá:

array(6) {
  ["product_id"]=>
  string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Veja Também

  • filter_input_array() - Obtem variáveis externas e opcionalmente as filtra
  • filter_var() - Filters a variable with a specified filter
  • filter_input() - Gets a specific external variable by name and optionally filters it
  • Tipos de filtros


Filters a variable with a specified filter

  • « filter_var_array
  • Gerenciamento de funções »
  • PHP Manual
  • Funções da Filter
  • Filters a variable with a specified filter

filter_var

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_var — Filters a variable with a specified filter

Descrição

filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed

Parâmetros

value

Value to filter. Note that scalar values are converted to string internally before they are filtered.

filter

O ID do filtro a ser aplicado. A página do manual Tipos de filtros lista os filtros disponíveis.

Se omitido, FILTER_DEFAULT será usado, que é equivalente a FILTER_UNSAFE_RAW. Isso resultará em nenhuma filtragem ocorrendo por padrão.

options

Associative array of options or bitwise disjunction of flags. If filter accepts options, flags can be provided in "flags" field of array. For the "callback" filter, callable type should be passed. The callback must accept one argument, the value to be filtered, and return the value after filtering/sanitizing it.

<?php
// for filters that accept options, use this format
$options = array(
'options' => array(
'default' => 3, // value to return if the filter fails
// other options here
'min_range' => 0
),
'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);

// for filters that only accept flags, you can pass them directly
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

// for filters that only accept flags, you can also pass as an array
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
array('flags' => FILTER_NULL_ON_FAILURE));

// callback validate filter
function foo($value)
{
// Expected format: Surname, GivenNames
if (strpos($value, ", ") === false) return false;
list($surname, $givennames) = explode(", ", $value, 2);
$empty = (empty($surname) || empty($givennames));
$notstrings = (!is_string($surname) || !is_string($givennames));
if ($empty || $notstrings) {
return false;
} else {
return $value;
}
}
$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
?>

Valor Retornado

Returns the filtered data, or false if the filter fails.

Exemplos

Exemplo #1 A filter_var() example

<?php
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>

O exemplo acima produzirá:

string(15) "bob@example.com"
bool(false)

Exemplo #2 Filter an array example

<?php
$emails = [
"bob@example.com",
"test@example.local",
"invalidemail"
];

var_dump(filter_var($emails, FILTER_VALIDATE_EMAIL, FILTER_REQUIRE_ARRAY));
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  string(15) "bob@example.com"
  [1]=>
  string(18) "test@example.local"
  [2]=>
  bool(false)
}

Veja Também

  • filter_var_array() - Obtêm múltiplas variáveis e opcionalmente as filtra
  • filter_input() - Gets a specific external variable by name and optionally filters it
  • filter_input_array() - Obtem variáveis externas e opcionalmente as filtra
  • Tipos de filtros


Gerenciamento de funções

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções para Manuseamento de Funções
    • call_user_func_array — Call a callback with an array of parameters
    • call_user_func — Call the callback given by the first parameter
    • create_function — Cria uma função dinamicamente avaliando uma string de código
    • forward_static_call_array — Call a static method and pass the arguments as array
    • forward_static_call — Call a static method
    • func_get_arg — Retorna um item de uma lista de argumentos
    • func_get_args — Returns an array comprising a function's argument list
    • func_num_args — Returns the number of arguments passed to the function
    • function_exists — Retorna true se a função informada estiver definida
    • get_defined_functions — Retorna um array com todas as funções definidas
    • register_shutdown_function — Register a function for execution on shutdown
    • register_tick_function — Register a function for execution on each tick
    • unregister_tick_function — Desregistra uma função executada a cada instante


  • « Gerenciamento de funções
  • Instalação/Configuração »
  • PHP Manual
  • Gerenciamento de funções
  • Introdução

Introdução

Todas estas funções lidam com várias operações envolvidas no trabalho com funções.


  • « Tipos de Recurso
  • Funções para Manuseamento de Funções »
  • PHP Manual
  • Gerenciamento de funções
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Funções para Manuseamento de Funções

Índice

  • call_user_func_array — Call a callback with an array of parameters
  • call_user_func — Call the callback given by the first parameter
  • create_function — Cria uma função dinamicamente avaliando uma string de código
  • forward_static_call_array — Call a static method and pass the arguments as array
  • forward_static_call — Call a static method
  • func_get_arg — Retorna um item de uma lista de argumentos
  • func_get_args — Returns an array comprising a function's argument list
  • func_num_args — Returns the number of arguments passed to the function
  • function_exists — Retorna true se a função informada estiver definida
  • get_defined_functions — Retorna um array com todas as funções definidas
  • register_shutdown_function — Register a function for execution on shutdown
  • register_tick_function — Register a function for execution on each tick
  • unregister_tick_function — Desregistra uma função executada a cada instante


Call a callback with an array of parameters

  • « Funções para Manuseamento de Funções
  • call_user_func »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Call a callback with an array of parameters

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

call_user_func_array — Call a callback with an array of parameters

Descrição

call_user_func_array(callable $callback, array $args): mixed

Calls the callback given by the first parameter with the parameters in args.

Parâmetros

callback

The callable to be called.

args

The parameters to be passed to the callback, as an array.

If the keys of args are all numeric, the keys are ignored and each element will be passed to callback as a positional argument, in order.

If any keys of args are strings, those elements will be passed to callback as named arguments, with the name given by the key.

It is a fatal error to have a numeric key in args appear after a string key, or to have a string key that does not match the name of any parameter of callback.

Valor Retornado

Returns the return value of the callback, or false on error.

Registro de Alterações

Versão | Descrição
8.0.0 | args keys will now be interpreted as parameter names, instead of being silently ignored.

Exemplos

Exemplo #1 call_user_func_array() example

<?php
function foobar($arg, $arg2) {
echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
function bar($arg, $arg2) {
echo __METHOD__, " got $arg and $arg2\n";
}
}

// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two"));

// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>

O exemplo acima produzirá algo semelhante a:

foobar got one and two
foo::bar got three and four

Exemplo #2 call_user_func_array() using namespace name

<?php

namespace Foobar;

class Foo {
static public function test($name) {
print "Hello {$name}!\n";
}
}

call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));

call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));

?>

O exemplo acima produzirá algo semelhante a:

Hello Hannes!
Hello Philip!

Exemplo #3 Using lambda function

<?php

$func = function($arg1, $arg2) {
return $arg1 * $arg2;
};

var_dump(call_user_func_array($func, array(2, 4)));

?>

O exemplo acima produzirá:

int(8)

Exemplo #4 Passing values by reference

<?php

function mega(&$a){
$a = 55;
echo "function mega \$a=$a\n";
}
$bar = 77;
call_user_func_array('mega',array(&$bar));
echo "global \$bar=$bar\n";

?>

O exemplo acima produzirá:

function mega $a=55
global $bar=55

Exemplo #5 call_user_func_array() using named arguments

<?php
function foobar($first, $second) {
echo __FUNCTION__, " got $first and $second\n";
}

// Call the foobar() function with named arguments in non-positional order
call_user_func_array("foobar", array("second" => "two", "first" => "one"));

// Call the foobar() function with one named argument
call_user_func_array("foobar", array("foo", "second" => "bar"));

// Fatal error: Cannot use positional argument after named argument
call_user_func_array("foobar", array("first" => "one", "bar"));

?>

O exemplo acima produzirá algo semelhante a:

foobar got one and two
foobar got foo and bar

Fatal error: Uncaught Error: Cannot use positional argument after named argument

Notas

Nota:

Callbacks registrados com funções como call_user_func() e call_user_func_array() não serão chamados se houver uma exceção não capturada que foi lançada em um callback anterior.

Veja Também

  • call_user_func() - Call the callback given by the first parameter
  • ReflectionFunction::invokeArgs() - Invokes function args
  • ReflectionMethod::invokeArgs() - Invoke args


Call the callback given by the first parameter

  • « call_user_func_array
  • create_function »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Call the callback given by the first parameter

call_user_func

(PHP 4, PHP 5, PHP 7, PHP 8)

call_user_func — Call the callback given by the first parameter

Descrição

call_user_func(callable $callback, mixed ...$args): mixed

Calls the callback given by the first parameter and passes the remaining parameters as arguments.

Parâmetros

callback

The callable to be called.

args

Zero or more parameters to be passed to the callback.

Nota:

Note that the parameters for call_user_func() are not passed by reference.

Exemplo #1 call_user_func() example and references

<?php
error_reporting(E_ALL);
function increment(&$var)
{
$var++;
}

$a = 0;
call_user_func('increment', $a);
echo $a."\n";

// it is possible to use this instead
call_user_func_array('increment', array(&$a));
echo $a."\n";

// it is also possible to use a variable function
$increment = 'increment';
$increment($a);
echo $a."\n";
?>

O exemplo acima produzirá:

Warning: Parameter 1 to increment() expected to be a reference, value given in …
0
1
2

Valor Retornado

Returns the return value of the callback.

Exemplos

Exemplo #2 call_user_func() example

<?php
function barber($type)
{
echo "You wanted a $type haircut, no problem\n";
}
call_user_func('barber', "mushroom");
call_user_func('barber', "shave");
?>

O exemplo acima produzirá:

You wanted a mushroom haircut, no problem
You wanted a shave haircut, no problem

Exemplo #3 call_user_func() using namespace name

<?php

namespace Foobar;

class Foo {
static public function test() {
print "Hello world!\n";
}
}

call_user_func(__NAMESPACE__ .'\Foo::test');
call_user_func(array(__NAMESPACE__ .'\Foo', 'test'));

?>

O exemplo acima produzirá:

Hello world!
Hello world!

Exemplo #4 Using a class method with call_user_func()

<?php

class myclass {
static function say_hello()
{
echo "Hello!\n";
}
}

$classname = "myclass";

call_user_func(array($classname, 'say_hello'));
call_user_func($classname .'::say_hello');

$myobject = new myclass();

call_user_func(array($myobject, 'say_hello'));

?>

O exemplo acima produzirá:

Hello!
Hello!
Hello!

Exemplo #5 Using lambda function with call_user_func()

<?php
call_user_func(function($arg) { print "[$arg]\n"; }, 'test');
?>

O exemplo acima produzirá:

[test]

Notas

Nota:

Callbacks registrados com funções como call_user_func() e call_user_func_array() não serão chamados se houver uma exceção não capturada que foi lançada em um callback anterior.

Veja Também

  • call_user_func_array() - Call a callback with an array of parameters
  • is_callable() - Verifica se um valor pode ser chamado como uma função a partir do escopo atual.
  • Variable functions
  • ReflectionFunction::invoke() - Invokes function
  • ReflectionMethod::invoke() - Invoke


Cria uma função dinamicamente avaliando uma string de código

  • « call_user_func
  • forward_static_call_array »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Cria uma função dinamicamente avaliando uma string de código

create_function

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

create_function — Cria uma função dinamicamente avaliando uma string de código

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.2.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

create_function(string $args, string $code): string

Cria uma função dinamicamente a partir dos parâmetros passados e retorna um nome único para ela.

Cuidado

Essa funcão executa um eval() internamente e, por isso, tem os mesmos problemas de segurança de eval(). Além disso, ela tem características ruins de desempenho e uso de memória, porque as funções criadas são globais e não podem ser liberadas da memória.

Uma função anônima nativa deve ser utilizada alternativamente.

Parâmetros

É recomendável passar estes parâmetros como strings em aspas simples. Se forem usadas strings em aspas duplas, os nomes de variáveis no código devem ser escapados com cuidado, ex.: \$somevar.

args

Os argumentos da função, em uma string única, separados por vírgulas.

code

O código da função.

Valor Retornado

Retorna um nome de função único como uma string, ou false em caso de falha. Note que o nome contém um caractere não imprimível ("\0"), portanto deve-se tomar cuidado ao imprimir o nome ou incorporá-lo em qualquer outra string.

Exemplos

Exemplo #1 Criando uma função dinamicamente, com create_function() ou funções anônimas

Pode-se usar uma função criada dinamicamente para (por exemplo) criar uma função a partir de informação obtida em tempo de execução. Primeiro, usando create_function():

<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo $newfunc(2, M_E) . "\n";
?>

Agora o mesmo código, usando uma função anônima; note que o código e os argumentos não estão mais contidos em strings:

<?php
$newfunc = function($a,$b) { return "ln($a) + ln($b) = " . log($a * $b); };
echo $newfunc(2, M_E) . "\n";
?>

O exemplo acima produzirá:

ln(2) + ln(2.718281828459) = 1.6931471805599

Exemplo #2 Criação de uma função de processamento geral, com create_function() ou funções anônimas

Outro uso seria ter uma função manipuladora geral que possa aplicar um conjunto de operações a uma lista de parâmetros:

<?php
function process($var1, $var2, $farr)
{
foreach ($farr as $f) {
echo $f($var1, $var2) . "\n";
}
}

// cria uma porção de funções matemáticas
$farr = array(
create_function('$x,$y', 'return "um pouco de trigonometria: ".(sin($x) + $x*cos($y));'),
create_function('$x,$y', 'return "uma hipotenusa: ".sqrt($x*$x + $y*$y);'),
create_function('$a,$b', 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}'),
create_function('$a,$b', "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);"),
create_function('$a,$b', 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; }')
);

echo "\nUsando o primeiro array de funções dinâmicas\n";
echo "parâmetros: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// agora cria uma porção de funções de processamento de strings
$garr = array(
create_function('$b,$a', 'if (strncmp($a, $b, 3) == 0) return "** \"$a\" '.
'e \"$b\"\n** Parecem iguais para mim! (olhando para os 3 primeiros caracteres)";'),
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 "\nUsando o segundo array de funções dinâmicas\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
?>

Novamente, aqui está o mesmo código usando funções anônimas. Note que os nomes das variáveis no código não precisam mais ser escapados, porque não estão em uma string.

<?php
function process($var1, $var2, $farr)
{
foreach ($farr as $f) {
echo $f($var1, $var2) . "\n";
}
}

// cria uma porção de funções matemáticas
$farr = array(
function($x,$y) { return "um pouco de trigonometria: ".(sin($x) + $x*cos($y)); },
function($x,$y) { return "uma hipotenusa: ".sqrt($x*$x + $y*$y); },
function($a,$b) { if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;} },
function($a,$b) { return "min(b^2+a, a^2,b) = " . min($a*$a+$b, $b*$b+$a); },
function($a,$b) { if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; } }
);

echo "\nUsando o primeiro array de funções dinâmicas\n";
echo "parâmetros: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// agora cria uma porção de funções de processamento de strings
$garr = array(
function($b,$a) { if (strncmp($a, $b, 3) == 0) return "** \"$a\" " .
"e \"$b\"\n** Parecem iguais para mim! (olhando para os 3 primeiros caracteres)"; },
function($a,$b) { return "CRCs: " . crc32($a) . ", ".crc32($b); },
function($a,$b) { return "similar(a,b) = " . similar_text($a, $b, $p) . "($p%)"; }
);
echo "\nUsando o segundo array de funções dinâmicas\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
?>

O exemplo acima produzirá:

Usando o primeiro array de funções dinâmicas
parâmetros: 2.3445, M_PI
um pouco de trigonometria: -1.6291725057799
uma hipotenusa: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a)/b = 0.27122299212594

Usando o segundo array de funções dinâmicas
** "Twas the night" e "Twas brilling and the slithy toves"
** Parecem iguais para mim! (olhando para os 3 primeiros caracteres)
CRCs: -725381282, 342550513
similar(a,b) = 11(45.833333333333%)

Exemplo #3 Uso de funções anônimas como funções callback

Talvez o uso mais comum para funções dinâmicas seja passá-las como chamadas de retorno, por exemplo ao usar array_walk() ou usort().

<?php
$av = array("a ", "uma ", "aquela ", "esta ");
array_walk($av, create_function('&$v,$k', '$v = $v . "manga";'));
print_r($av);
?>

Converted to an anonymous function:

<?php
$av = array("a ", "uma ", "aquela ", "esta ");
array_walk($av, function(&$v,$k) { $v = $v . "manga"; });
print_r($av);
?>

O exemplo acima produzirá:

Array
(
  [0] => a manga
  [1] => uma manga
  [2] => aquela manga
  [3] => esta manga
)

Ordenando strings do mais longo ao mais curto com create_function():

<?php
$sv = array("pequena", "uma string grande", "pouco maior", "é uma coisa essa string");
echo "Original:\n";
print_r($sv);
echo "Ordenado:\n";
usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);
?>

Convertida em função anônima:

<?php
$sv = array("pequena", "uma string grande", "pouco maior", "é uma coisa essa string");
echo "Original:\n";
print_r($sv);
echo "Ordenado:\n";
usort($sv, function($a,$b) { return strlen($b) - strlen($a); });
print_r($sv);
?>

O exemplo acima produzirá:

Original:
Array
(
  [0] => pequena
  [1] => uma string grande
  [2] => pouco maior
  [3] => é uma coisa essa string
)
Sorted:
Array
(
  [0] => é uma coisa essa string
  [1] => uma string grande
  [2] => pouco maior
  [3] => pequena
)

Veja Também

  • Funções anônimas


Call a static method and pass the arguments as array

  • « create_function
  • forward_static_call »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Call a static method and pass the arguments as array

forward_static_call_array

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

forward_static_call_array — Call a static method and pass the arguments as array

Descrição

forward_static_call_array(callable $callback, array $args): mixed

Calls a user defined function or method given by the callback parameter. This function must be called within a method context, it can't be used outside a class. It uses the late static binding. All arguments of the forwarded method are passed as values, and as an array, similarly to call_user_func_array().

Parâmetros

callback

The function or method to be called. This parameter may be an array, with the name of the class, and the method, or a string, with a function name.

parameter

One parameter, gathering all the method parameter in one array.

Nota:

Note that the parameters for forward_static_call_array() are not passed by reference.

Valor Retornado

Returns the function result, or false on error.

Exemplos

Exemplo #1 forward_static_call_array() example

<?php

class A
{
const NAME = 'A';
public static function test() {
$args = func_get_args();
echo static::NAME, " ".join(',', $args)." \n";
}
}

class B extends A
{
const NAME = 'B';

public static function test() {
echo self::NAME, "\n";
forward_static_call_array(array('A', 'test'), array('more', 'args'));
forward_static_call_array( 'test', array('other', 'args'));
}
}

B::test('foo');

function test() {
$args = func_get_args();
echo "C ".join(',', $args)." \n";
}

?>

O exemplo acima produzirá:

B
B more,args
C other,args

Veja Também

  • forward_static_call() - Call a static method
  • call_user_func() - Call the callback given by the first parameter
  • call_user_func_array() - Call a callback with an array of parameters
  • is_callable() - Verifica se um valor pode ser chamado como uma função a partir do escopo atual.


Call a static method

  • « forward_static_call_array
  • func_get_arg »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Call a static method

forward_static_call

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

forward_static_call — Call a static method

Descrição

forward_static_call(callable $callback, mixed ...$args): mixed

Calls a user defined function or method given by the callback parameter, with the following arguments. This function must be called within a method context, it can't be used outside a class. It uses the late static binding.

Parâmetros

callback

The function or method to be called. This parameter may be an array, with the name of the class, and the method, or a string, with a function name.

args

Zero or more parameters to be passed to the function.

Valor Retornado

Returns the function result, or false on error.

Exemplos

Exemplo #1 forward_static_call() example

<?php

class A
{
const NAME = 'A';
public static function test() {
$args = func_get_args();
echo static::NAME, " ".join(',', $args)." \n";
}
}

class B extends A
{
const NAME = 'B';

public static function test() {
echo self::NAME, "\n";
forward_static_call(array('A', 'test'), 'more', 'args');
forward_static_call( 'test', 'other', 'args');
}
}

B::test('foo');

function test() {
$args = func_get_args();
echo "C ".join(',', $args)." \n";
}

?>

O exemplo acima produzirá:

B
B more,args
C other,args

Veja Também

  • forward_static_call_array() - Call a static method and pass the arguments as array
  • call_user_func_array() - Call a callback with an array of parameters
  • call_user_func() - Call the callback given by the first parameter
  • is_callable() - Verifica se um valor pode ser chamado como uma função a partir do escopo atual.


Retorna um item de uma lista de argumentos

  • « forward_static_call
  • func_get_args »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Retorna um item de uma lista de argumentos

func_get_arg

(PHP 4, PHP 5, PHP 7, PHP 8)

func_get_arg — Retorna um item de uma lista de argumentos

Descrição

func_get_arg(int $position): mixed

Obtém o argumento especificado de uma lista de argumentos de uma função definida pelo usuário.

Esta função pode ser usada juntamente com func_get_args() e func_num_args() para permitir que funções definidas pelo usuário aceitem listas de argumentos com comprimento variável.

Parâmetros

position

O índice do argumento. Argumentos de função são contados iniciando de zero.

Valor Retornado

Retorna o argumento especificado, ou false em caso de erro.

Erros/Exceções

Gera um alerta se chamada fora de uma função definida pelo usuário, ou se position for maior que o número de argumentos realmente passados.

Exemplos

Exemplo #1 Exemplo de func_get_arg()

<?php
function foo()
{
$numargs = func_num_args();
echo "Número de argumentos: $numargs<br />\n";
if ($numargs >= 2) {
echo "Segundo argumento é: " . func_get_arg(1) . "<br />\n";
}
}

foo (1, 2, 3);
?>

O exemplo acima produzirá:

Número de argumentos: 3
Segundo argumento é: 2

Exemplo #2 Exemplo de func_get_arg() com argumentos por valor e por referência

<?php
function byVal($arg) {
echo 'Como passado : ', var_export(func_get_arg(0)), PHP_EOL;
$arg = 'baz';
echo 'Depois da mudança: ', var_export(func_get_arg(0)), PHP_EOL;
}

function byRef(&$arg) {
echo 'Como passado : ', var_export(func_get_arg(0)), PHP_EOL;
$arg = 'baz';
echo 'Depois da mudança: ', var_export(func_get_arg(0)), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

O exemplo acima produzirá:

Como passado : 'bar'
Depois da mudança: 'baz'
Como passado : 'bar'
Depois da mudança: 'baz'

Notas

Nota:

A partir do PHP 8.0.0, a família de funções func_*() deve ser mais transparente em relação aos argumentos nomeados, tratando os argumentos como se fossem todos passados posicionalmente, e os argumentos ausentes são substituídos por seus valores padrão. Esta função ignora a coleção de argumentos variádicos nomeados desconhecidos. Argumentos nomeados desconhecidos que são coletados só podem ser acessados por meio do parâmetro variádico.

Nota:

Se os argumentos forem passados por referência, qualquer alteração nos argumentos será refletida nos valores retornados por esta função. A partir do PHP 7, os valores atuais também serão retornados se os argumentos forem passados por valor.

Nota: Esta função retorna uma cópia apenas dos argumentos informados, e não leva em consideração argumentos padrão (não informados).

Veja Também

  • Sintaxe ...
  • func_get_args() - Returns an array comprising a function's argument list
  • func_num_args() - Returns the number of arguments passed to the function


Returns an array comprising a function's argument list

  • « func_get_arg
  • func_num_args »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Returns an array comprising a function's argument list

func_get_args

(PHP 4, PHP 5, PHP 7, PHP 8)

func_get_args — Returns an array comprising a function's argument list

Descrição

func_get_args(): array

Gets an array of the function's argument list.

This function may be used in conjunction with func_get_arg() and func_num_args() to allow user-defined functions to accept variable-length argument lists.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array in which each element is a copy of the corresponding member of the current user-defined function's argument list.

Erros/Exceções

Generates a warning if called from outside of a user-defined function.

Exemplos

Exemplo #1 func_get_args() example

<?php
function foo()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs \n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "\n";
}
}

foo(1, 2, 3);
?>

O exemplo acima produzirá:

Number of arguments: 3
Second argument is: 2
Argument 0 is: 1
Argument 1 is: 2
Argument 2 is: 3

Exemplo #2 func_get_args() example of byref and byval arguments

<?php
function byVal($arg) {
echo 'As passed : ', var_export(func_get_args()), PHP_EOL;
$arg = 'baz';
echo 'After change : ', var_export(func_get_args()), PHP_EOL;
}

function byRef(&$arg) {
echo 'As passed : ', var_export(func_get_args()), PHP_EOL;
$arg = 'baz';
echo 'After change : ', var_export(func_get_args()), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

O exemplo acima produzirá:

As passed : array (
0 => 'bar',
)
After change : array (
0 => 'baz',
)
As passed : array (
0 => 'bar',
)
After change : array (
0 => 'baz',
)

Notas

Nota:

A partir do PHP 8.0.0, a família de funções func_*() deve ser mais transparente em relação aos argumentos nomeados, tratando os argumentos como se fossem todos passados posicionalmente, e os argumentos ausentes são substituídos por seus valores padrão. Esta função ignora a coleção de argumentos variádicos nomeados desconhecidos. Argumentos nomeados desconhecidos que são coletados só podem ser acessados por meio do parâmetro variádico.

Nota:

Se os argumentos forem passados por referência, qualquer alteração nos argumentos será refletida nos valores retornados por esta função. A partir do PHP 7, os valores atuais também serão retornados se os argumentos forem passados por valor.

Nota: This function returns a copy of the passed arguments only, and does not account for default (non-passed) arguments.

Veja Também

  • ... syntax
  • func_get_arg() - Retorna um item de uma lista de argumentos
  • func_num_args() - Returns the number of arguments passed to the function
  • ReflectionFunctionAbstract::getParameters() - Gets parameters


Returns the number of arguments passed to the function

  • « func_get_args
  • function_exists »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Returns the number of arguments passed to the function

func_num_args

(PHP 4, PHP 5, PHP 7, PHP 8)

func_num_args — Returns the number of arguments passed to the function

Descrição

func_num_args(): int

Gets the number of arguments passed to the function.

This function may be used in conjunction with func_get_arg() and func_get_args() to allow user-defined functions to accept variable-length argument lists.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the number of arguments passed into the current user-defined function.

Erros/Exceções

Generates a warning if called from outside of a user-defined function.

Exemplos

Exemplo #1 func_num_args() example

<?php
function foo()
{
echo "Number of arguments: ", func_num_args(), PHP_EOL;
}

foo(1, 2, 3);
?>

O exemplo acima produzirá:

Number of arguments: 3

Notas

Nota:

A partir do PHP 8.0.0, a família de funções func_*() deve ser mais transparente em relação aos argumentos nomeados, tratando os argumentos como se fossem todos passados posicionalmente, e os argumentos ausentes são substituídos por seus valores padrão. Esta função ignora a coleção de argumentos variádicos nomeados desconhecidos. Argumentos nomeados desconhecidos que são coletados só podem ser acessados por meio do parâmetro variádico.

Veja Também

  • ... syntax
  • func_get_arg() - Retorna um item de uma lista de argumentos
  • func_get_args() - Returns an array comprising a function's argument list
  • ReflectionFunctionAbstract::getNumberOfParameters() - Gets number of parameters


Retorna true se a função informada estiver definida

  • « func_num_args
  • get_defined_functions »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Retorna true se a função informada estiver definida

function_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

function_exists — Retorna true se a função informada estiver definida

Descrição

function_exists(string $function): bool

Verifica a lista de funções definidas, tanto as internas quanto as definidas pelo usuário, procurando por function.

Parâmetros

function

O nome da função, como uma string.

Valor Retornado

Retorna true se function existir e for uma função, false caso contrário.

Nota:

Esta função retornará false para instruções de linguagem, como include_once e echo.

Exemplos

Exemplo #1 Exemplo de function_exists()

<?php
if (function_exists('imap_open')) {
echo "Funções IMAP estão disponíveis.<br />\n";
} else {
echo "Funções IMAP não estão disponíveis.<br />\n";
}
?>

Notas

Nota:

Um nome de função pode existir mesmo se a própria função não puder ser usada devido a opções de configuração ou compilação (por exemplo, as funções image).

Veja Também

  • method_exists() - Verifica se o método da classe existe
  • is_callable() - Verifica se um valor pode ser chamado como uma função a partir do escopo atual.
  • get_defined_functions() - Retorna um array com todas as funções definidas
  • class_exists() - Verifica se uma classe foi definida
  • extension_loaded() - Descobre se uma extensão está carregada


Retorna um array com todas as funções definidas

  • « function_exists
  • register_shutdown_function »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Retorna um array com todas as funções definidas

get_defined_functions

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

get_defined_functions — Retorna um array com todas as funções definidas

Descrição

get_defined_functions(bool $exclude_disabled = true): array

Obtém um array com todas as funções definidas.

Parâmetros

exclude_disabled

Opção para definir se funções desabilitadas devem ser excluídas do valor de retorno.

Valor Retornado

Retorna um array multidimensional contendo uma lista de todas as funções definidas, tanto as internas quanto as definidas pelo usuário. As funções internas podem ser acessadas em $arr["internal"], e as definidas por usuário em $arr["user"] (veja exemplo abaixo).

Registro de Alterações

Versão | Descrição
8.0.0 | O valor padrão do parâmetro exclude_disabled mudou de false para true.
7.0.15, 7.1.1 | O parâmetro exclude_disabled foi adicionado.

Exemplos

Exemplo #1 Exemplo de get_defined_functions()

<?php
function myrow($id, $data)
{
return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

O exemplo acima produzirá algo semelhante a:

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
        )

)

Veja Também

  • function_exists() - Retorna true se a função informada estiver definida
  • get_defined_vars() - Retorna um array com todas variáveis definidas
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values
  • get_declared_classes() - Retorna um array com os nomes das classes definidas


Register a function for execution on shutdown

  • « get_defined_functions
  • register_tick_function »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Register a function for execution on shutdown

register_shutdown_function

(PHP 4, PHP 5, PHP 7, PHP 8)

register_shutdown_function — Register a function for execution on shutdown

Descrição

register_shutdown_function(callable $callback, mixed ...$args): void

Registers a callback to be executed after script execution finishes or exit() is called.

Multiple calls to register_shutdown_function() can be made, and each will be called in the same order as they were registered. If you call exit() within one registered shutdown function, processing will stop completely and no other registered shutdown functions will be called.

Shutdown functions may also call register_shutdown_function() themselves to add a shutdown function to the end of the queue.

Parâmetros

callback

The shutdown callback to register.

The shutdown callbacks are executed as the part of the request, so it's possible to send output from them and access output buffers.

args

It is possible to pass parameters to the shutdown function by passing additional parameters.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 register_shutdown_function() example

<?php
function shutdown()
{
// This is our shutdown function, in
// here we can do any last operations
// before the script is complete.

echo 'Script executed with success', PHP_EOL;
}

register_shutdown_function('shutdown');
?>

Notas

Nota:

The working directory of the script can change inside the shutdown function under some web servers, e.g. Apache.

Nota:

Shutdown functions will not be executed if the process is killed with a SIGTERM or SIGKILL signal. While you cannot intercept a SIGKILL, you can use pcntl_signal() to install a handler for a SIGTERM which uses exit() to end cleanly.

Nota:

Shutdown functions run separately from the time tracked by max_execution_time. That means even if a process is terminated for running too long, shutdown functions will still be called. Additionally, if the max_execution_time runs out while a shutdown function is running it will not be terminated.

Veja Também

  • auto_append_file
  • exit() - Mostra uma mensagem e termina o script atual
  • fastcgi_finish_request() - Envia todos os dados de resposta ao cliente
  • The section on connection handling


Register a function for execution on each tick

  • « register_shutdown_function
  • unregister_tick_function »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Register a function for execution on each tick

register_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

register_tick_function — Register a function for execution on each tick

Descrição

register_tick_function(callable $callback, mixed ...$args): bool

Registers the given callback to be executed when a tick is called.

Parâmetros

callback

The function to register.

args

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 register_tick_function() example

<?php
declare(ticks=1);

// 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);
?>

Veja Também

  • declare
  • unregister_tick_function() - Desregistra uma função executada a cada instante


Desregistra uma função executada a cada instante

  • « register_tick_function
  • Quickhash »
  • PHP Manual
  • Funções para Manuseamento de Funções
  • Desregistra uma função executada a cada instante

unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

unregister_tick_function — Desregistra uma função executada a cada instante

Descrição

unregister_tick_function(callable $callback): void

Desregistra a função nomeada por callback de forma que não seja mais executada quando um tique for chamado.

Parâmetros

callback

O nome da função a ser desregistrada.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • register_tick_function() - Register a function for execution on each tick


Quickhash

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
  • Constantes pré-definidas
  • Exemplos
  • QuickHashIntSet — The QuickHashIntSet class
    • QuickHashIntSet::add — This method adds a new entry to the set
    • QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
    • QuickHashIntSet::delete — This method deletes an entry from the set
    • QuickHashIntSet::exists — This method checks whether a key is part of the set
    • QuickHashIntSet::getSize — Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile — This factory method creates a set from a file
    • QuickHashIntSet::loadFromString — This factory method creates a set from a string
    • QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString — This method returns a serialized version of the set
  • QuickHashIntHash — The QuickHashIntHash class
    • QuickHashIntHash::add — This method adds a new entry to the hash
    • QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
    • QuickHashIntHash::delete — This method deletes an entry from the hash
    • QuickHashIntHash::exists — This method checks whether a key is part of the hash
    • QuickHashIntHash::get — This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize — Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString — This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString — This method returns a serialized version of the hash
    • QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update — This method updates an entry in the hash with a new value
  • QuickHashStringIntHash — The QuickHashStringIntHash class
    • QuickHashStringIntHash::add — This method adds a new entry to the hash
    • QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
    • QuickHashStringIntHash::delete — This method deletes an entry from the hash
    • QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize — Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
    • QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update — This method updates an entry in the hash with a new value
  • QuickHashIntStringHash — The QuickHashIntStringHash class
    • QuickHashIntStringHash::add — This method adds a new entry to the hash
    • QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
    • QuickHashIntStringHash::delete — This method deletes an entry from the hash
    • QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize — Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
    • QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update — This method updates an entry in the hash with a new value


Introdução

The quickhash extension contains a set of specific strongly-typed classes to deal with specific set and hash implementations.


  • « Introdução
  • Dependências »
  • PHP Manual
  • Quickhash
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Configurações em Execução


  • « Instalação/Configuração
  • Instalação »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

This extension requires no additional libraries.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/quickhash


  • « Configurações em Execução
  • Exemplos »
  • PHP Manual
  • Quickhash
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Exemplos

Exemplo #1 Quickhash Example

<?php
$set = new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES );
$set->add( 1 );
$set->add( 3 );

var_dump( $set->exists( 3 ) );
var_dump( $set->exists( 4 ) );

$set->saveToFile( "/tmp/test-set.set" );

$newSet = QuickHashIntSet::loadFromFile(
"/tmp/test-set.set"
);

var_dump( $newSet->exists( 3 ) );
var_dump( $newSet->exists( 4 ) );
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)
bool(true)
bool(false)

Exemplo #2 Quickhash ArrayAccess Example

<?php
$hash = new QuickHashIntHash( 64 );

// Adding and updating hash entries.
$hash[3] = 145926;
$hash[3] = 1415926;
$hash[2] = 72;

// Checking if keys exist
var_dump( isset( $hash[3] ) );

// Removing hash entries
unset( $hash[2] );

// Retrieving the value stored for a hash
echo $hash[3], "\n";
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
1415926

Exemplo #3 Quickhash Iterator Example

<?php
$hash = new QuickHashIntHash( 64 );

// Adding hash entries.
$hash[1] = 145926;
$hash[2] = 1415926;
$hash[3] = 72;
$hash[4] = 712314;
$hash[5] = -4234;

foreach( $hash as $key => $value )
{
echo $key, ' => ', $value, "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

5 => -4234
4 => 712314
1 => 145926
2 => 1415926
3 => 72

Exemplo #4 Quickhash String Values Example

<?php
$hash = new QuickHashIntStringHash( 64 );

// Adding hash entries.
$hash[1] = "one million four hundred fifteen thousand nine hundred twenty six";
$hash->add( 2, "one more" );

foreach( $hash as $key => $value )
{
echo $key, ' => ', $value, "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

1 => one million four hundred fifteen thousand nine hundred twenty six
2 => one more


The QuickHashIntSet class

(PECL quickhash >= Unknown)

Introdução

This class wraps around a set containing integer numbers.

Sets can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Resumo da classe

class QuickHashIntSet {
/* Constantes */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
const int HASHER_NO_HASH = 256;
const int HASHER_JENKINS1 = 512;
const int HASHER_JENKINS2 = 1024;
/* Métodos */
public add(int $key): bool
public __construct(int $size, int $options = ?)
public delete(int $key): bool
public exists(int $key): bool
publicgetSize(): int
public static loadFromFile(string $filename, int $size = ?, int $options = ?): QuickHashIntSet
public static loadFromString(string $contents, int $size = ?, int $options = ?): QuickHashIntSet
public saveToFile(string $filename): void
public saveToString(): string
}

Constantes pré-definidas

QuickHashIntSet::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either QuickHashIntSet::add() or QuickHashIntSet::loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntSet::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntSet::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntSet::HASHER_JENKINS2

Selects a variant hashing algorithm.

Índice

  • QuickHashIntSet::add — This method adds a new entry to the set
  • QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
  • QuickHashIntSet::delete — This method deletes an entry from the set
  • QuickHashIntSet::exists — This method checks whether a key is part of the set
  • QuickHashIntSet::getSize — Returns the number of elements in the set
  • QuickHashIntSet::loadFromFile — This factory method creates a set from a file
  • QuickHashIntSet::loadFromString — This factory method creates a set from a string
  • QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
  • QuickHashIntSet::saveToString — This method returns a serialized version of the set


This method adds a new entry to the set

  • « QuickHashIntSet
  • QuickHashIntSet::__construct »
  • PHP Manual
  • QuickHashIntSet
  • This method adds a new entry to the set

QuickHashIntSet::add

(PECL quickhash >= Unknown)

QuickHashIntSet::add — This method adds a new entry to the set

Descrição

public QuickHashIntSet::add(int $key): bool

This method adds a new entry to the set, and returns whether the entry was added. Entries are by default always added unless QuickHashIntSet::CHECK_FOR_DUPES has been passed when the set was created.

Parâmetros

key

The key of the entry to add.

Valor Retornado

true when the entry was added, and false if the entry was not added.

Exemplos

Exemplo #1 QuickHashIntSet::add() example

<?php
echo "without dupe checking\n";
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

echo "\nwith dupe checking\n";
$set = new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
?>

O exemplo acima produzirá algo semelhante a:

without dupe checking
bool(false)
bool(true)
bool(true)
bool(true)

with dupe checking
bool(false)
bool(true)
bool(true)
bool(false)


Creates a new QuickHashIntSet object

  • « QuickHashIntSet::add
  • QuickHashIntSet::delete »
  • PHP Manual
  • QuickHashIntSet
  • Creates a new QuickHashIntSet object

QuickHashIntSet::__construct

(PECL quickhash >= Unknown)

QuickHashIntSet::__construct — Creates a new QuickHashIntSet object

Descrição

public QuickHashIntSet::__construct(int $size, int $options = ?)

This constructor creates a new QuickHashIntSet. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Parâmetros

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The options that you can pass in are: QuickHashIntSet::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the set; QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntSet::HASHER_NO_HASH, QuickHashIntSet::HASHER_JENKINS1 or QuickHashIntSet::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Valor Retornado

Returns a new QuickHashIntSet object.

Exemplos

Exemplo #1 QuickHashIntSet::__construct() example

<?php
var_dump( new QuickHashIntSet( 1024 ) );
var_dump( new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES ) );
var_dump(
new QuickHashIntSet(
1024,
QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC | QuickHashIntSet::HASHER_JENKINS2
)
);
?>


This method deletes an entry from the set

  • « QuickHashIntSet::__construct
  • QuickHashIntSet::exists »
  • PHP Manual
  • QuickHashIntSet
  • This method deletes an entry from the set

QuickHashIntSet::delete

(PECL quickhash >= Unknown)

QuickHashIntSet::delete — This method deletes an entry from the set

Descrição

public QuickHashIntSet::delete(int $key): bool

This method deletes an entry from the set, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the set itself is freed.

Parâmetros

key

The key of the entry to delete.

Valor Retornado

true when the entry was deleted, and false if the entry was not deleted.

Exemplos

Exemplo #1 QuickHashIntSet::delete() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->delete( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->delete( 4 ) );
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the set

  • « QuickHashIntSet::delete
  • QuickHashIntSet::getSize »
  • PHP Manual
  • QuickHashIntSet
  • This method checks whether a key is part of the set

QuickHashIntSet::exists

(PECL quickhash >= Unknown)

QuickHashIntSet::exists — This method checks whether a key is part of the set

Descrição

public QuickHashIntSet::exists(int $key): bool

This method checks whether an entry with the provided key exists in the set.

Parâmetros

key

The key of the entry to check for whether it exists in the set.

Valor Retornado

Returns true when the entry was found, or false when the entry is not found.

Exemplos

Exemplo #1 QuickHashIntSet::exists() example

<?php
//generate 200000 elements
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Creating set: ", microtime( true ), "\n";
$set = new QuickHashIntSet( 100000 );
echo "Adding elements: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
$set->add( $key );
}

echo "Doing 1000 tests: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
$foundCount += $set->exists( $key );
}
echo "Done, $foundCount found: ", microtime( true ), "\n";
?>

O exemplo acima produzirá algo semelhante a:

Creating set: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


Returns the number of elements in the set

  • « QuickHashIntSet::exists
  • QuickHashIntSet::loadFromFile »
  • PHP Manual
  • QuickHashIntSet
  • Returns the number of elements in the set

QuickHashIntSet::getSize

(PECL quickhash >= Unknown)

QuickHashIntSet::getSize — Returns the number of elements in the set

Descrição

publicQuickHashIntSet::getSize(): int

Returns the number of elements in the set.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of elements in the set.

Exemplos

Exemplo #1 QuickHashIntSet::getSize() example

<?php
$set = new QuickHashIntSet( 8 );
var_dump( $set->add( 2 ) );
var_dump( $set->add( 3 ) );
var_dump( $set->getSize() );
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
int(2)


This factory method creates a set from a file

  • « QuickHashIntSet::getSize
  • QuickHashIntSet::loadFromString »
  • PHP Manual
  • QuickHashIntSet
  • This factory method creates a set from a file

QuickHashIntSet::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromFile — This factory method creates a set from a file

Descrição

public static QuickHashIntSet::loadFromFile(string $filename, int $size = ?, int $options = ?): QuickHashIntSet

This factory method creates a new set from a definition file on disk. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses.

Parâmetros

filename

The filename of the file to read the set from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the set, rounded up to the nearest power of two with a maximum limit of 4194304.

Valor Retornado

Returns a new QuickHashIntSet.

Exemplos

Exemplo #1 QuickHashIntSet::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.set";
$set = QuickHashIntSet::loadFromFile(
$file,
QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Key %3d (%2x) is %s\n",
$key, $key,
$set->exists( $key ) ? 'set' : 'unset'
);
}
?>

O exemplo acima produzirá algo semelhante a:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a set from a string

  • « QuickHashIntSet::loadFromFile
  • QuickHashIntSet::saveToFile »
  • PHP Manual
  • QuickHashIntSet
  • This factory method creates a set from a string

QuickHashIntSet::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromString — This factory method creates a set from a string

Descrição

public static QuickHashIntSet::loadFromString(string $contents, int $size = ?, int $options = ?): QuickHashIntSet

This factory method creates a new set from a definition in a string. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses.

Parâmetros

contents

The string containing a serialized format of the set.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the set, rounded up to the nearest power of two automatically limited from 64 to 4194304.

Valor Retornado

Returns a new QuickHashIntSet.

Exemplos

Exemplo #1 QuickHashIntSet::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.set" );
$set = QuickHashIntSet::loadFromString(
$contents,
QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Key %3d (%2x) is %s\n",
$key, $key,
$set->exists( $key ) ? 'set' : 'unset'
);
}
?>

O exemplo acima produzirá algo semelhante a:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory set to disk

  • « QuickHashIntSet::loadFromString
  • QuickHashIntSet::saveToString »
  • PHP Manual
  • QuickHashIntSet
  • This method stores an in-memory set to disk

QuickHashIntSet::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToFile — This method stores an in-memory set to disk

Descrição

public QuickHashIntSet::saveToFile(string $filename): void

This method stores an existing set to a file on disk, in the same format that QuickHashIntSet::loadFromFile() can read.

Parâmetros

filename

The filename of the file to store the hash in.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 QuickHashIntSet::saveToFile() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

$set->saveToFile( '/tmp/test.set' );
?>


This method returns a serialized version of the set

  • « QuickHashIntSet::saveToFile
  • QuickHashIntHash »
  • PHP Manual
  • QuickHashIntSet
  • This method returns a serialized version of the set

QuickHashIntSet::saveToString

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToString — This method returns a serialized version of the set

Descrição

public QuickHashIntSet::saveToString(): string

This method returns a serialized version of the set in the same format that QuickHashIntSet::loadFromString() can read.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

This method returns a string containing a serialized format of the set. Each element is stored as a four byte value in the Endianness that the current system uses.

Exemplos

Exemplo #1 QuickHashIntSet::saveToString() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

var_dump( $set->saveToString() );
?>


The QuickHashIntHash class

(PECL quickhash >= Unknown)

Introdução

This class wraps around a hash containing integer numbers, where the values are also integer numbers. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Resumo da classe

class QuickHashIntHash {
/* Constantes */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
const int HASHER_NO_HASH = 256;
const int HASHER_JENKINS1 = 512;
const int HASHER_JENKINS2 = 1024;
/* Métodos */
public add(int $key, int $value = ?): bool
public __construct(int $size, int $options = ?)
public delete(int $key): bool
public exists(int $key): bool
public get(int $key): int
public getSize(): int
public static loadFromFile(string $filename, int $options = ?): QuickHashIntHash
public static loadFromString(string $contents, int $options = ?): QuickHashIntHash
public saveToFile(string $filename): void
public saveToString(): string
public set(int $key, int $value): bool
public update(int $key, int $value): bool
}

Constantes pré-definidas

QuickHashIntHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either QuickHashIntHash::add() or QuickHashIntHash::loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntHash::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntHash::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntHash::HASHER_JENKINS2

Selects a variant hashing algorithm.

Índice

  • QuickHashIntHash::add — This method adds a new entry to the hash
  • QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
  • QuickHashIntHash::delete — This method deletes an entry from the hash
  • QuickHashIntHash::exists — This method checks whether a key is part of the hash
  • QuickHashIntHash::get — This method retrieves a value from the hash by its key
  • QuickHashIntHash::getSize — Returns the number of elements in the hash
  • QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashIntHash::loadFromString — This factory method creates a hash from a string
  • QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashIntHash::saveToString — This method returns a serialized version of the hash
  • QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashIntHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashIntHash
  • QuickHashIntHash::__construct »
  • PHP Manual
  • QuickHashIntHash
  • This method adds a new entry to the hash

QuickHashIntHash::add

(PECL quickhash >= Unknown)

QuickHashIntHash::add — This method adds a new entry to the hash

Descrição

public QuickHashIntHash::add(int $key, int $value = ?): bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashIntHash::CHECK_FOR_DUPES has been passed when the hash was created.

Parâmetros

key

The key of the entry to add.

value

The optional value of the entry to add. If no value is specified, 1 will be used.

Valor Retornado

true when the entry was added, and false if the entry was not added.

Exemplos

Exemplo #1 QuickHashIntHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 22 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 12 ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashIntHash( 1024, QuickHashIntHash::CHECK_FOR_DUPES );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 78 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 9 ) );

echo "\ndefault value\n";
var_dump( $hash->add( 5 ) );
var_dump( $hash->get( 5 ) );
?>

O exemplo acima produzirá algo semelhante a:

without dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

with dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)

default value
bool(true)
int(1)


Creates a new QuickHashIntHash object

  • « QuickHashIntHash::add
  • QuickHashIntHash::delete »
  • PHP Manual
  • QuickHashIntHash
  • Creates a new QuickHashIntHash object

QuickHashIntHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntHash::__construct — Creates a new QuickHashIntHash object

Descrição

public QuickHashIntHash::__construct(int $size, int $options = ?)

This constructor creates a new QuickHashIntHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Parâmetros

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashIntHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash; QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntHash::HASHER_NO_HASH, QuickHashIntHash::HASHER_JENKINS1 or QuickHashIntHash::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Valor Retornado

Returns a new QuickHashIntHash object.

Exemplos

Exemplo #1 QuickHashIntHash::__construct() example

<?php
var_dump( new QuickHashIntHash( 1024 ) );
var_dump( new QuickHashIntHash( 1024, QuickHashIntHash::CHECK_FOR_DUPES ) );
var_dump(
new QuickHashIntHash(
1024,
QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC | QuickHashIntHash::HASHER_JENKINS2
)
);
?>


This method deletes an entry from the hash

  • « QuickHashIntHash::__construct
  • QuickHashIntHash::exists »
  • PHP Manual
  • QuickHashIntHash
  • This method deletes an entry from the hash

QuickHashIntHash::delete

(PECL quickhash >= Unknown)

QuickHashIntHash::delete — This method deletes an entry from the hash

Descrição

public QuickHashIntHash::delete(int $key): bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return false like would happen with any other deletion failure.

Parâmetros

key

The key of the entry to delete.

Valor Retornado

true when the entry was deleted, and false if the entry was not deleted.

Exemplos

Exemplo #1 QuickHashIntHash::delete() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 5 ) );
var_dump( $hash->delete( 4 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->delete( 4 ) );
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashIntHash::delete
  • QuickHashIntHash::get »
  • PHP Manual
  • QuickHashIntHash
  • This method checks whether a key is part of the hash

QuickHashIntHash::exists

(PECL quickhash >= Unknown)

QuickHashIntHash::exists — This method checks whether a key is part of the hash

Descrição

public QuickHashIntHash::exists(int $key): bool

This method checks whether an entry with the provided key exists in the hash.

Parâmetros

key

The key of the entry to check for whether it exists in the hash.

Valor Retornado

Returns true when the entry was found, or false when the entry is not found.

Exemplos

Exemplo #1 QuickHashIntHash::exists() example

<?php
//generate 200000 elements
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Creating hash: ", microtime( true ), "\n";
$hash = new QuickHashIntHash( 100000 );
echo "Adding elements: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
$hash->add( $key, 56 );
}

echo "Doing 1000 tests: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
$foundCount += $hash->exists( $key );
}
echo "Done, $foundCount found: ", microtime( true ), "\n";
?>

O exemplo acima produzirá algo semelhante a:

Creating hash: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


This method retrieves a value from the hash by its key

  • « QuickHashIntHash::exists
  • QuickHashIntHash::getSize »
  • PHP Manual
  • QuickHashIntHash
  • This method retrieves a value from the hash by its key

QuickHashIntHash::get

(PECL quickhash >= Unknown)

QuickHashIntHash::get — This method retrieves a value from the hash by its key

Descrição

public QuickHashIntHash::get(int $key): int

This method retrieves a value from the hash by its key.

Parâmetros

key

The key of the entry to retrieve.

Valor Retornado

The value if the key exists, or null if the key wasn't part of the hash.

Exemplos

Exemplo #1 QuickHashIntHash::get() example

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->get( 1 ) );

var_dump( $hash->add( 2 ) );
var_dump( $hash->get( 2 ) );

var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->get( 3 ) );
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)
int(1)
bool(true)
int(5)


Returns the number of elements in the hash

  • « QuickHashIntHash::get
  • QuickHashIntHash::loadFromFile »
  • PHP Manual
  • QuickHashIntHash
  • Returns the number of elements in the hash

QuickHashIntHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntHash::getSize — Returns the number of elements in the hash

Descrição

public QuickHashIntHash::getSize(): int

Returns the number of elements in the hash.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of elements in the hash.

Exemplos

Exemplo #1 QuickHashIntHash::getSize() example

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->add( 2 ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashIntHash::getSize
  • QuickHashIntHash::loadFromString »
  • PHP Manual
  • QuickHashIntHash
  • This factory method creates a hash from a file

QuickHashIntHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromFile — This factory method creates a hash from a file

Descrição

public static QuickHashIntHash::loadFromFile(string $filename, int $options = ?): QuickHashIntHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x11\0', the number of elements as a 32 bit signed integer in system Endianness, followed by 32 bit signed integers packed together in the Endianness that the system that the code runs on uses. For each hash element there are two 32 bit signed integers stored. The first of each element is the key, and the second is the value belonging to the key. An example could be:

Exemplo #1 QuickHash IntHash file format

00000000  51 48 11 00 02 00 00 00  01 00 00 00 01 00 00 00  |QH..............|
00000010  03 00 00 00 09 00 00 00                           |........|
00000018

Exemplo #2 QuickHash IntHash file format

header signature ('QH'; key type: 1; value type: 1; filler: \0x00)
00000000  51 48 11 00

number of elements:
00000004  02 00 00 00

data string:
00000000  01 00 00 00 01 00 00 00  03 00 00 00 09 00 00 00

key/value 1 (key = 1, value = 1)
01 00 00 00  01 00 00 00

key/value 2 (key = 3, value = 9)
03 00 00 00  09 00 00 00

Parâmetros

filename

The filename of the file to read the hash from.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Valor Retornado

Returns a new QuickHashIntHash.

Exemplos

Exemplo #3 QuickHashIntHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.hash";
$hash = QuickHashIntHash::loadFromFile(
$file,
QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Key %3d (%2x) is %s\n",
$key, $key,
$hash->exists( $key ) ? 'set' : 'unset'
);
}
?>

O exemplo acima produzirá algo semelhante a:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a hash from a string

  • « QuickHashIntHash::loadFromFile
  • QuickHashIntHash::saveToFile »
  • PHP Manual
  • QuickHashIntHash
  • This factory method creates a hash from a string

QuickHashIntHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromString — This factory method creates a hash from a string

Descrição

public static QuickHashIntHash::loadFromString(string $contents, int $options = ?): QuickHashIntHash

This factory method creates a new hash from a definition in a string. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses. For each element there are two 32 bit signed integers stored. The first of each element is the key, and the second is the value belonging to the key.

Parâmetros

contents

The string containing a serialized format of the hash.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Valor Retornado

Returns a new QuickHashIntHash.

Exemplos

Exemplo #1 QuickHashIntHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash" );
$hash = QuickHashIntHash::loadFromString(
$contents,
QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Key %3d (%2x) is %s\n",
$key, $key,
$hash->exists( $key ) ? 'set' : 'unset'
);
}
?>

O exemplo acima produzirá algo semelhante a:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory hash to disk

  • « QuickHashIntHash::loadFromString
  • QuickHashIntHash::saveToString »
  • PHP Manual
  • QuickHashIntHash
  • This method stores an in-memory hash to disk

QuickHashIntHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk

Descrição

public QuickHashIntHash::saveToFile(string $filename): void

This method stores an existing hash to a file on disk, in the same format that QuickHashIntHash::loadFromFile() can read.

Parâmetros

filename

The filename of the file to store the hash in.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 QuickHashIntHash::saveToFile() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 43 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 52 ) );

$hash->saveToFile( '/tmp/test.hash' );
?>


This method returns a serialized version of the hash

  • « QuickHashIntHash::saveToFile
  • QuickHashIntHash::set »
  • PHP Manual
  • QuickHashIntHash
  • This method returns a serialized version of the hash

QuickHashIntHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToString — This method returns a serialized version of the hash

Descrição

public QuickHashIntHash::saveToString(): string

This method returns a serialized version of the hash in the same format that QuickHashIntHash::loadFromString() can read.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

This method returns a string containing a serialized format of the hash. Each element is stored as a four byte value in the Endianness that the current system uses.

Exemplos

Exemplo #1 QuickHashIntHash::saveToString() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 34 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 55 ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashIntHash::saveToString
  • QuickHashIntHash::update »
  • PHP Manual
  • QuickHashIntHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashIntHash::set

(PECL quickhash >= Unknown)

QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Descrição

public QuickHashIntHash::set(int $key, int $value): bool

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parâmetros

key

The key of the entry to add or update.

value

The new value to set the entry with.

Valor Retornado

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Exemplos

Exemplo #1 QuickHashIntHash::set() example

<?php
$hash = new QuickHashIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, 16091 ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, 29906 ) );
var_dump( $hash->get( 46692 ) );
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


This method updates an entry in the hash with a new value

  • « QuickHashIntHash::set
  • QuickHashStringIntHash »
  • PHP Manual
  • QuickHashIntHash
  • This method updates an entry in the hash with a new value

QuickHashIntHash::update

(PECL quickhash >= Unknown)

QuickHashIntHash::update — This method updates an entry in the hash with a new value

Descrição

public QuickHashIntHash::update(int $key, int $value): bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parâmetros

key

The key of the entry to update.

value

The new value to update the entry with.

Valor Retornado

true when the entry was found and updated, and false if the entry was not part of the hash already.

Exemplos

Exemplo #1 QuickHashIntHash::update() example

<?php
$hash = new QuickHashIntHash( 1024 );

var_dump( $hash->add( 141421, 173205 ) );
var_dump( $hash->update( 141421, 223606 ) );
var_dump( $hash->get( 141421 ) );
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
int(223606)


The QuickHashStringIntHash class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

This class wraps around a hash containing strings, where the values are integer numbers. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Resumo da classe

class QuickHashStringIntHash {
/* Constantes */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
/* Métodos */
public add(string $key, int $value): bool
public __construct(int $size, int $options = 0)
public delete(string $key): bool
public exists(string $key): bool
public get(string $key): mixed
public getSize(): int
public static loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashStringIntHash
public static loadFromString(string $contents, int $size = 0, int $options = 0): QuickHashStringIntHash
public saveToFile(string $filename): void
public saveToString(): string
public set(string $key, int $value): int
public update(string $key, int $value): bool
}

Constantes pré-definidas

QuickHashStringIntHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either QuickHashStringIntHash::add() or QuickHashStringIntHash::loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

Índice

  • QuickHashStringIntHash::add — This method adds a new entry to the hash
  • QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
  • QuickHashStringIntHash::delete — This method deletes an entry from the hash
  • QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
  • QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
  • QuickHashStringIntHash::getSize — Returns the number of elements in the hash
  • QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
  • QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
  • QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashStringIntHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashStringIntHash
  • QuickHashStringIntHash::__construct »
  • PHP Manual
  • QuickHashStringIntHash
  • This method adds a new entry to the hash

QuickHashStringIntHash::add

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::add — This method adds a new entry to the hash

Descrição

public QuickHashStringIntHash::add(string $key, int $value): bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashStringIntHash::CHECK_FOR_DUPES has been passed when the hash was created.

Parâmetros

key

The key of the entry to add.

value

The value of the entry to add.

Valor Retornado

true when the entry was added, and false if the entry was not added.

Exemplos

Exemplo #1 QuickHashStringIntHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 22 ) );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 12 ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES );
var_dump( $hash );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 78 ) );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 9 ) );
?>

O exemplo acima produzirá algo semelhante a:

without dupe checking
object(QuickHashStringIntHash)#1 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

with dupe checking
object(QuickHashStringIntHash)#2 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)


Creates a new QuickHashStringIntHash object

  • « QuickHashStringIntHash::add
  • QuickHashStringIntHash::delete »
  • PHP Manual
  • QuickHashStringIntHash
  • Creates a new QuickHashStringIntHash object

QuickHashStringIntHash::__construct

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object

Descrição

public QuickHashStringIntHash::__construct(int $size, int $options = 0)

This constructor creates a new QuickHashStringIntHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Parâmetros

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashStringIntHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash and QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager.

Valor Retornado

Returns a new QuickHashStringIntHash object.

Exemplos

Exemplo #1 QuickHashStringIntHash::__construct() example

<?php
var_dump( new QuickHashStringIntHash( 1024 ) );
var_dump( new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES ) );
?>


This method deletes an entry from the hash

  • « QuickHashStringIntHash::__construct
  • QuickHashStringIntHash::exists »
  • PHP Manual
  • QuickHashStringIntHash
  • This method deletes an entry from the hash

QuickHashStringIntHash::delete

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::delete — This method deletes an entry from the hash

Descrição

public QuickHashStringIntHash::delete(string $key): bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return false like would happen with any other deletion failure.

Parâmetros

key

The key of the entry to delete.

Valor Retornado

true when the entry was deleted, and false if the entry was not deleted.

Exemplos

Exemplo #1 QuickHashStringIntHash::delete() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->exists( 'four' ) );
var_dump( $hash->add( 'four', 5 ) );
var_dump( $hash->get( 'four' ) );
var_dump( $hash->delete( 'four' ) );
var_dump( $hash->exists( 'four' ) );
var_dump( $hash->get( 'four' ) );
var_dump( $hash->delete( 'four' ) );
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)
int(5)
bool(true)
bool(false)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashStringIntHash::delete
  • QuickHashStringIntHash::get »
  • PHP Manual
  • QuickHashStringIntHash
  • This method checks whether a key is part of the hash

QuickHashStringIntHash::exists

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::exists — This method checks whether a key is part of the hash

Descrição

public QuickHashStringIntHash::exists(string $key): bool

This method checks whether an entry with the provided key exists in the hash.

Parâmetros

key

The key of the entry to check for whether it exists in the hash.

Valor Retornado

Returns true when the entry was found, or false when the entry is not found.


This method retrieves a value from the hash by its key

  • « QuickHashStringIntHash::exists
  • QuickHashStringIntHash::getSize »
  • PHP Manual
  • QuickHashStringIntHash
  • This method retrieves a value from the hash by its key

QuickHashStringIntHash::get

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::get — This method retrieves a value from the hash by its key

Descrição

public QuickHashStringIntHash::get(string $key): mixed

This method retrieves a value from the hash by its key.

Parâmetros

key

The key of the entry to retrieve.

Valor Retornado

The value if the key exists, or null if the key wasn't part of the hash.

Exemplos

Exemplo #1 QuickHashStringIntHash::get() example

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->get( "one" ) );

var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->get( "two" ) );
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)
int(2)


Returns the number of elements in the hash

  • « QuickHashStringIntHash::get
  • QuickHashStringIntHash::loadFromFile »
  • PHP Manual
  • QuickHashStringIntHash
  • Returns the number of elements in the hash

QuickHashStringIntHash::getSize

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::getSize — Returns the number of elements in the hash

Descrição

public QuickHashStringIntHash::getSize(): int

Returns the number of elements in the hash.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of elements in the hash.

Exemplos

Exemplo #1 QuickHashStringIntHash::getSize() example

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->add( "three", 5 ) );
var_dump( $hash->getSize() );
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashStringIntHash::getSize
  • QuickHashStringIntHash::loadFromString »
  • PHP Manual
  • QuickHashStringIntHash
  • This factory method creates a hash from a file

QuickHashStringIntHash::loadFromFile

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file

Descrição

public static QuickHashStringIntHash::loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashStringIntHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x21\0', the number of elements as a 32 bit signed integer in system Endianness, an unsigned 32 bit integer containing the number of element data to follow in characters. This element data contains all the strings. The follows another signed 32 bit integer containing the number of bucket lists. After the header and the strings, the elements follow. They are ordered by bucket list so that the keys don't have to be hashed in order to restore the hash. For each bucket list, the following information is stored (all as 32 bit integers): the bucket list index, the number of elements in that list, and then in pairs of two unsigned 32 bit integers the elements, where the first one is the index into the string list containing the keys, and the second one the value. An example could be:

Exemplo #1 QuickHash StringIntHash file format

00000000  51 48 21 00 02 00 00 00  09 00 00 00 40 00 00 00  |QH!.........@...|
00000010  4f 4e 45 00 4e 49 4e 45  00 07 00 00 00 01 00 00  |ONE.NINE........|
00000020  00 00 00 00 00 01 00 00  00 2f 00 00 00 01 00 00  |........./......|
00000030  00 04 00 00 00 03 00 00  00                       |.........|
00000039

Exemplo #2 QuickHash IntHash file format

header signature ('QH'; key type: 2; value type: 1; filler: \0x00)
00000000  51 48 21 00

number of elements:
00000004  02 00 00 00

length of string values (9 characters):
00000008  09 00 00 00

number of hash bucket lists (this is configured for hashes as argument to the
constructor normally, 64 in this case):
0000000C  40 00 00 00

string values:
00000010  4f 4e 45 00 4e 49 4e 45  00

bucket lists:
  bucket list 1 (with key 7, and 1 element):
    header:
    07 00 00 00 01 00 00 00
    elements (key index: 0 ('ONE'), value = 0):
    00 00 00 00 01 00 00 00
  bucket list 2 (with key 0x2f, and 1 element):
    header:
    2f 00 00 00 01 00 00 00
    elements (key index: 4 ('NINE'), value = 3):
    04 00 00 00 03 00 00 00

Parâmetros

filename

The filename of the file to read the hash from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is read from the file format (unlike the QuickHashIntHash and QuickHashIntStringHash classes, where it is automatically calculated from the number of entries in the hash.)

Valor Retornado

Returns a new QuickHashStringIntHash.

Exemplos

Exemplo #3 QuickHashStringIntHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.hash.string";
$hash = QuickHashStringIntHash::loadFromFile(
$file,
QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
$i = 48712 + $key * 1631;
$k = base_convert( $i, 10, 36 );
echo $k, ' => ', $hash->get( $k ), "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177


This factory method creates a hash from a string

  • « QuickHashStringIntHash::loadFromFile
  • QuickHashStringIntHash::saveToFile »
  • PHP Manual
  • QuickHashStringIntHash
  • This factory method creates a hash from a string

QuickHashStringIntHash::loadFromString

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string

Descrição

public static QuickHashStringIntHash::loadFromString(string $contents, int $size = 0, int $options = 0): QuickHashStringIntHash

This factory method creates a new hash from a definition in a string. The format is the same as the one used in "loadFromFile".

Parâmetros

contents

The string containing a serialized format of the hash.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Valor Retornado

Returns a new QuickHashStringIntHash.

Exemplos

Exemplo #1 QuickHashStringIntHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash.string" );
$hash = QuickHashStringIntHash::loadFromString(
$contents,
QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
$i = 48712 + $key * 1631;
$k = base_convert( $i, 10, 36 );
echo $k, ' => ', $hash->get( $k ), "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177


This method stores an in-memory hash to disk

  • « QuickHashStringIntHash::loadFromString
  • QuickHashStringIntHash::saveToString »
  • PHP Manual
  • QuickHashStringIntHash
  • This method stores an in-memory hash to disk

QuickHashStringIntHash::saveToFile

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk

Descrição

public QuickHashStringIntHash::saveToFile(string $filename): void

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Parâmetros

filename

The filename of the file to store the hash in.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 QuickHashStringIntHash::saveToFile() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "forty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

$hash->saveToFile( '/tmp/test.hash.string' );
?>


This method returns a serialized version of the hash

  • « QuickHashStringIntHash::saveToFile
  • QuickHashStringIntHash::set »
  • PHP Manual
  • QuickHashStringIntHash
  • This method returns a serialized version of the hash

QuickHashStringIntHash::saveToString

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash

Descrição

public QuickHashStringIntHash::saveToString(): string

This method returns a serialized version of the hash in the same format that QuickHashStringIntHash::loadFromString() can read.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

This method returns a serialized format of an existing hash, in the same format that QuickHashStringIntHash::loadFromString() can read.

Exemplos

Exemplo #1 QuickHashStringIntHash::saveToString() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "forty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashStringIntHash::saveToString
  • QuickHashStringIntHash::update »
  • PHP Manual
  • QuickHashStringIntHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashStringIntHash::set

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Descrição

public QuickHashStringIntHash::set(string $key, int $value): int

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashStringIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parâmetros

key

The key of the entry to add or update.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Valor Retornado

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Exemplos

Exemplo #1 QuickHashStringIntHash::set() example

<?php
$hash = new QuickHashStringIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( "forty six thousand six hundred ninety two" ) );
var_dump( $hash->set( "forty six thousand six hundred ninety two", 16091 ) );
var_dump( $hash->get( "forty six thousand six hundred ninety two" ) );

echo "Set->Update\n";
var_dump( $hash->set( "forty six thousand six hundred ninety two", 29906 ) );
var_dump( $hash->get( "forty six thousand six hundred ninety two" ) );
?>

O exemplo acima produzirá algo semelhante a:

Set->Add
bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


This method updates an entry in the hash with a new value

  • « QuickHashStringIntHash::set
  • QuickHashIntStringHash »
  • PHP Manual
  • QuickHashStringIntHash
  • This method updates an entry in the hash with a new value

QuickHashStringIntHash::update

(Não há informação de versão disponível, talvez apenas no Git)

QuickHashStringIntHash::update — This method updates an entry in the hash with a new value

Descrição

public QuickHashStringIntHash::update(string $key, int $value): bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashStringIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parâmetros

key

The key of the entry to update.

value

The new value for the entry. If a non-string is passed, it will be converted to a string automatically if possible.

Valor Retornado

true when the entry was found and updated, and false if the entry was not part of the hash already.

Exemplos

Exemplo #1 QuickHashStringIntHash::update() example

<?php
$hash = new QuickHashStringIntHash( 1024 );

$hash->add( 'six', 314159265 );
$hash->add( "a lot", 314159265 );

echo $hash->get( 'six' ), "\n";
echo $hash->get( 'a lot' ), "\n";

var_dump( $hash->update( 'a lot', 314159266 ) );
var_dump( $hash->update( "a lot plus one", 314159999 ) );

echo $hash->get( 'six' ), "\n";
echo $hash->get( 'a lot' ), "\n";
?>

O exemplo acima produzirá algo semelhante a:

314159265
314159265
bool(true)
bool(false)
314159265
314159266


The QuickHashIntStringHash class

(PECL quickhash >= Unknown)

Introdução

This class wraps around a hash containing integer numbers, where the values are strings. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Resumo da classe

class QuickHashIntStringHash {
/* Constantes */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
const int HASHER_NO_HASH = 256;
const int HASHER_JENKINS1 = 512;
const int HASHER_JENKINS2 = 1024;
/* Métodos */
public add(int $key, string $value): bool
public __construct(int $size, int $options = 0)
public delete(int $key): bool
public exists(int $key): bool
public get(int $key): mixed
public getSize(): int
public static loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashIntStringHash
public static loadFromString(string $contents, int $size = 0, int $options = 0): QuickHashIntStringHash
public saveToFile(string $filename): void
public saveToString(): string
public set(int $key, string $value): int
public update(int $key, string $value): bool
}

Constantes pré-definidas

QuickHashIntStringHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either QuickHashIntStringHash::add() or QuickHashIntStringHash::loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntStringHash::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntStringHash::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntStringHash::HASHER_JENKINS2

Selects a variant hashing algorithm.

Índice

  • QuickHashIntStringHash::add — This method adds a new entry to the hash
  • QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
  • QuickHashIntStringHash::delete — This method deletes an entry from the hash
  • QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
  • QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
  • QuickHashIntStringHash::getSize — Returns the number of elements in the hash
  • QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
  • QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
  • QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashIntStringHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashIntStringHash
  • QuickHashIntStringHash::__construct »
  • PHP Manual
  • QuickHashIntStringHash
  • This method adds a new entry to the hash

QuickHashIntStringHash::add

(PECL quickhash >= Unknown)

QuickHashIntStringHash::add — This method adds a new entry to the hash

Descrição

public QuickHashIntStringHash::add(int $key, string $value): bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashIntStringHash::CHECK_FOR_DUPES has been passed when the hash was created.

Parâmetros

key

The key of the entry to add.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Valor Retornado

true when the entry was added, and false if the entry was not added.

Exemplos

Exemplo #1 QuickHashIntStringHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "twenty two" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "twelve" ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashIntStringHash( 1024, QuickHashIntStringHash::CHECK_FOR_DUPES );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "seventy eight" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "nine" ) );
?>

O exemplo acima produzirá algo semelhante a:

without dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
string(10) "twenty two"
bool(true)

with dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
string(13) "seventy eight"
bool(false)


Creates a new QuickHashIntStringHash object

  • « QuickHashIntStringHash::add
  • QuickHashIntStringHash::delete »
  • PHP Manual
  • QuickHashIntStringHash
  • Creates a new QuickHashIntStringHash object

QuickHashIntStringHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object

Descrição

public QuickHashIntStringHash::__construct(int $size, int $options = 0)

This constructor creates a new QuickHashIntStringHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Parâmetros

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashIntStringHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash; QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntStringHash::HASHER_NO_HASH, QuickHashIntStringHash::HASHER_JENKINS1 or QuickHashIntStringHash::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Valor Retornado

Returns a new QuickHashIntStringHash object.

Exemplos

Exemplo #1 QuickHashIntStringHash::__construct() example

<?php
var_dump( new QuickHashIntStringHash( 1024 ) );
var_dump( new QuickHashIntStringHash( 1024, QuickHashIntStringHash::CHECK_FOR_DUPES ) );
var_dump(
new QuickHashIntStringHash(
1024,
QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC | QuickHashIntStringHash::HASHER_JENKINS2
)
);
?>


This method deletes an entry from the hash

  • « QuickHashIntStringHash::__construct
  • QuickHashIntStringHash::exists »
  • PHP Manual
  • QuickHashIntStringHash
  • This method deletes an entry from the hash

QuickHashIntStringHash::delete

(PECL quickhash >= Unknown)

QuickHashIntStringHash::delete — This method deletes an entry from the hash

Descrição

public QuickHashIntStringHash::delete(int $key): bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return false like would happen with any other deletion failure.

Parâmetros

key

The key of the entry to delete.

Valor Retornado

true when the entry was deleted, and false if the entry was not deleted.

Exemplos

Exemplo #1 QuickHashIntStringHash::delete() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "five" ) );
var_dump( $hash->delete( 4 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->delete( 4 ) );
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashIntStringHash::delete
  • QuickHashIntStringHash::get »
  • PHP Manual
  • QuickHashIntStringHash
  • This method checks whether a key is part of the hash

QuickHashIntStringHash::exists

(PECL quickhash >= Unknown)

QuickHashIntStringHash::exists — This method checks whether a key is part of the hash

Descrição

public QuickHashIntStringHash::exists(int $key): bool

This method checks whether an entry with the provided key exists in the hash.

Parâmetros

key

The key of the entry to check for whether it exists in the hash.

Valor Retornado

Returns true when the entry was found, or false when the entry is not found.


This method retrieves a value from the hash by its key

  • « QuickHashIntStringHash::exists
  • QuickHashIntStringHash::getSize »
  • PHP Manual
  • QuickHashIntStringHash
  • This method retrieves a value from the hash by its key

QuickHashIntStringHash::get

(PECL quickhash >= Unknown)

QuickHashIntStringHash::get — This method retrieves a value from the hash by its key

Descrição

public QuickHashIntStringHash::get(int $key): mixed

This method retrieves a value from the hash by its key.

Parâmetros

key

The key of the entry to retrieve.

Valor Retornado

The value if the key exists, or null if the key wasn't part of the hash.

Exemplos

Exemplo #1 QuickHashIntStringHash::get() example

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->get( 1 ) );

var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->get( 2 ) );

var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->get( 3 ) );
?>

O exemplo acima produzirá algo semelhante a:

bool(false)
bool(true)
string(3) "two"
bool(true)
string(1) "5"


Returns the number of elements in the hash

  • « QuickHashIntStringHash::get
  • QuickHashIntStringHash::loadFromFile »
  • PHP Manual
  • QuickHashIntStringHash
  • Returns the number of elements in the hash

QuickHashIntStringHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntStringHash::getSize — Returns the number of elements in the hash

Descrição

public QuickHashIntStringHash::getSize(): int

Returns the number of elements in the hash.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of elements in the hash.

Exemplos

Exemplo #1 QuickHashIntStringHash::getSize() example

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashIntStringHash::getSize
  • QuickHashIntStringHash::loadFromString »
  • PHP Manual
  • QuickHashIntStringHash
  • This factory method creates a hash from a file

QuickHashIntStringHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file

Descrição

public static QuickHashIntStringHash::loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashIntStringHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x12\0', the number of elements as a 32 bit signed integer in system Endianness, an unsigned 32 bit integer containing the number of element data to follow in characters. This element data contains all the strings. After the header and the strings, the elements follow in pairs of two unsigned 32 bit integers where the first one is the key, and the second one the index in the element data string. An example could be:

Exemplo #1 QuickHash IntString file format

00000000  51 48 12 00 02 00 00 00  09 00 00 00 4f 4e 45 00  |QH..........ONE.|
00000010  4e 49 4e 45 00 01 00 00  00 00 00 00 00 03 00 00  |NINE............|
00000020  00 04 00 00 00                                    |.....|
00000025

Exemplo #2 QuickHash IntString file format

header signature ('QH'; key type: 1; value type: 2; filler: \0x00)
00000000  51 48 12 00

number of elements:
00000004  02 00 00 00

length of string values (9 characters):
00000008  09 00 00 00

string values:
0000000C  4f 4e 45 00 4e 49 4e 45  00

data string:
00000015  01 00 00 00 00 00 00 00  03 00 00 00 04 00 00 00

key/value 1 (key = 1, string index = 0 ("ONE")):
01 00 00 00  00 00 00 00

key/value 2 (key = 3, string index = 4 ("NINE")):
03 00 00 00  04 00 00 00

Parâmetros

filename

The filename of the file to read the hash from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Valor Retornado

Returns a new QuickHashIntStringHash.

Exemplos

Exemplo #3 QuickHashIntStringHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.string.hash";
$hash = QuickHashIntStringHash::loadFromFile(
$file,
QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Key %3d (%2x) is %s\n",
$key, $key,
$hash->exists( $key ) ? 'set' : 'unset'
);
}
?>

O exemplo acima produzirá algo semelhante a:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a hash from a string

  • « QuickHashIntStringHash::loadFromFile
  • QuickHashIntStringHash::saveToFile »
  • PHP Manual
  • QuickHashIntStringHash
  • This factory method creates a hash from a string

QuickHashIntStringHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string

Descrição

public static QuickHashIntStringHash::loadFromString(string $contents, int $size = 0, int $options = 0): QuickHashIntStringHash

This factory method creates a new hash from a definition in a string. The format is the same as the one used in "loadFromFile".

Parâmetros

contents

The string containing a serialized format of the hash.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Valor Retornado

Returns a new QuickHashIntStringHash.

Exemplos

Exemplo #1 QuickHashIntStringHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash" );
$hash = QuickHashIntStringHash::loadFromString(
$contents,
QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Key %3d (%2x) is %s\n",
$key, $key,
$hash->exists( $key ) ? 'set' : 'unset'
);
}
?>

O exemplo acima produzirá algo semelhante a:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory hash to disk

  • « QuickHashIntStringHash::loadFromString
  • QuickHashIntStringHash::saveToString »
  • PHP Manual
  • QuickHashIntStringHash
  • This method stores an in-memory hash to disk

QuickHashIntStringHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk

Descrição

public QuickHashIntStringHash::saveToFile(string $filename): void

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Parâmetros

filename

The filename of the file to store the hash in.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 QuickHashIntStringHash::saveToFile() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "forty three" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "fifty two" ) );

$hash->saveToFile( '/tmp/test.string.hash' );
?>


This method returns a serialized version of the hash

  • « QuickHashIntStringHash::saveToFile
  • QuickHashIntStringHash::set »
  • PHP Manual
  • QuickHashIntStringHash
  • This method returns a serialized version of the hash

QuickHashIntStringHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash

Descrição

public QuickHashIntStringHash::saveToString(): string

This method returns a serialized version of the hash in the same format that QuickHashIntStringHash::loadFromString() can read.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

This method returns a string containing a serialized format of the hash. Each element is stored as a four byte value in the Endianness that the current system uses.

Exemplos

Exemplo #1 QuickHashIntStringHash::saveToString() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "thirty four" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 5, "fifty five" ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashIntStringHash::saveToString
  • QuickHashIntStringHash::update »
  • PHP Manual
  • QuickHashIntStringHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashIntStringHash::set

(PECL quickhash >= Unknown)

QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Descrição

public QuickHashIntStringHash::set(int $key, string $value): int

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntStringHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parâmetros

key

The key of the entry to add or update.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Valor Retornado

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Exemplos

Exemplo #1 QuickHashIntStringHash::set() example

<?php
$hash = new QuickHashIntStringHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, "sixteen thousand ninety one" ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, "twenty nine thousand nine hundred six" ) );
var_dump( $hash->get( 46692 ) );
?>

O exemplo acima produzirá algo semelhante a:

Set->Add
bool(false)
int(2)
string(27) "sixteen thousand ninety one"
Set->Update
int(1)
string(37) "twenty nine thousand nine hundred six"


This method updates an entry in the hash with a new value

  • « QuickHashIntStringHash::set
  • Reflexão »
  • PHP Manual
  • QuickHashIntStringHash
  • This method updates an entry in the hash with a new value

QuickHashIntStringHash::update

(PECL quickhash >= Unknown)

QuickHashIntStringHash::update — This method updates an entry in the hash with a new value

Descrição

public QuickHashIntStringHash::update(int $key, string $value): bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntStringHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parâmetros

key

The key of the entry to update.

value

The new value for the entry. If a non-string is passed, it will be converted to a string automatically if possible.

Valor Retornado

true when the entry was found and updated, and false if the entry was not part of the hash already.

Exemplos

Exemplo #1 QuickHashIntStringHash::update() example

<?php
$hash->add( 161803398, "--" );
$hash->add( 314159265, "a lot" );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";

var_dump( $hash->update( 314159265, "a lot plus one" ) );
var_dump( $hash->update( 314159999, "a lot plus one" ) );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";
?>

O exemplo acima produzirá algo semelhante a:

--
a lot
bool(true)
bool(false)
--
a lot plus one


Reflexão

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Extendendo
  • Reflection — Classe Reflection
    • Reflection::export — Exports
    • Reflection::getModifierNames — Obtém os nomes dos modificadores
  • ReflectionClass — Classe ReflectionClass
    • ReflectionClass::__construct — Constructs a ReflectionClass
    • ReflectionClass::export — Exports a class
    • ReflectionClass::getAttributes — Gets Attributes
    • ReflectionClass::getConstant — Gets defined constant
    • ReflectionClass::getConstants — Gets constants
    • ReflectionClass::getConstructor — Gets the constructor of the class
    • ReflectionClass::getDefaultProperties — Gets default properties
    • ReflectionClass::getDocComment — Gets doc comments
    • ReflectionClass::getEndLine — Gets end line
    • ReflectionClass::getExtension — Gets a ReflectionExtension object for the extension which defined the class
    • ReflectionClass::getExtensionName — Gets the name of the extension which defined the class
    • ReflectionClass::getFileName — Gets the filename of the file in which the class has been defined
    • ReflectionClass::getInterfaceNames — Gets the interface names
    • ReflectionClass::getInterfaces — Gets the interfaces
    • ReflectionClass::getMethod — Gets a ReflectionMethod for a class method
    • ReflectionClass::getMethods — Gets an array of methods
    • ReflectionClass::getModifiers — Gets the class modifiers
    • ReflectionClass::getName — Gets class name
    • ReflectionClass::getNamespaceName — Gets namespace name
    • ReflectionClass::getParentClass — Gets parent class
    • ReflectionClass::getProperties — Gets properties
    • ReflectionClass::getProperty — Gets a ReflectionProperty for a class's property
    • ReflectionClass::getReflectionConstant — Gets a ReflectionClassConstant for a class's constant
    • ReflectionClass::getReflectionConstants — Gets class constants
    • ReflectionClass::getShortName — Gets short name
    • ReflectionClass::getStartLine — Gets starting line number
    • ReflectionClass::getStaticProperties — Gets static properties
    • ReflectionClass::getStaticPropertyValue — Gets static property value
    • ReflectionClass::getTraitAliases — Returns an array of trait aliases
    • ReflectionClass::getTraitNames — Returns an array of names of traits used by this class
    • ReflectionClass::getTraits — Returns an array of traits used by this class
    • ReflectionClass::hasConstant — Checks if constant is defined
    • ReflectionClass::hasMethod — Checks if method is defined
    • ReflectionClass::hasProperty — Checks if property is defined
    • ReflectionClass::implementsInterface — Implements interface
    • ReflectionClass::inNamespace — Checks if in namespace
    • ReflectionClass::isAbstract — Checks if class is abstract
    • ReflectionClass::isAnonymous — Checks if class is anonymous
    • ReflectionClass::isCloneable — Returns whether this class is cloneable
    • ReflectionClass::isEnum — Returns whether this is an enum
    • ReflectionClass::isFinal — Checks if class is final
    • ReflectionClass::isInstance — Checks class for instance
    • ReflectionClass::isInstantiable — Checks if the class is instantiable
    • ReflectionClass::isInterface — Checks if the class is an interface
    • ReflectionClass::isInternal — Checks if class is defined internally by an extension, or the core
    • ReflectionClass::isIterable — Check whether this class is iterable
    • ReflectionClass::isIterateable — Sinônimo de ReflectionClass::isIterable
    • ReflectionClass::isReadOnly — Checks if class is readonly
    • ReflectionClass::isSubclassOf — Checks if a subclass
    • ReflectionClass::isTrait — Returns whether this is a trait
    • ReflectionClass::isUserDefined — Checks if user defined
    • ReflectionClass::newInstance — Creates a new class instance from given arguments
    • ReflectionClass::newInstanceArgs — Creates a new class instance from given arguments
    • ReflectionClass::newInstanceWithoutConstructor — Creates a new class instance without invoking the constructor
    • ReflectionClass::setStaticPropertyValue — Sets static property value
    • ReflectionClass::__toString — Returns the string representation of the ReflectionClass object
  • ReflectionClassConstant — A classe ReflectionClassConstant
    • ReflectionClassConstant::__construct — Constructs a ReflectionClassConstant
    • ReflectionClassConstant::export — Export
    • ReflectionClassConstant::getAttributes — Gets Attributes
    • ReflectionClassConstant::getDeclaringClass — Gets declaring class
    • ReflectionClassConstant::getDocComment — Gets doc comments
    • ReflectionClassConstant::getModifiers — Gets the class constant modifiers
    • ReflectionClassConstant::getName — Get name of the constant
    • ReflectionClassConstant::getValue — Gets value
    • ReflectionClassConstant::isEnumCase — Checks if class constant is an Enum case
    • ReflectionClassConstant::isFinal — Checks if class constant is final
    • ReflectionClassConstant::isPrivate — Checks if class constant is private
    • ReflectionClassConstant::isProtected — Checks if class constant is protected
    • ReflectionClassConstant::isPublic — Checks if class constant is public
    • ReflectionClassConstant::__toString — Returns the string representation of the ReflectionClassConstant object
  • ReflectionEnum — A classe ReflectionEnum
    • ReflectionEnum::__construct — Instantiates a ReflectionEnum object
    • ReflectionEnum::getBackingType — Gets the backing type of an Enum, if any
    • ReflectionEnum::getCase — Returns a specific case of an Enum
    • ReflectionEnum::getCases — Returns a list of all cases on an Enum
    • ReflectionEnum::hasCase — Checks for a case on an Enum
    • ReflectionEnum::isBacked — Determines if an Enum is a Backed Enum
  • ReflectionEnumUnitCase — A classe ReflectionEnumUnitCase
    • ReflectionEnumUnitCase::__construct — Instantiates a ReflectionEnumUnitCase object
    • ReflectionEnumUnitCase::getEnum — Gets the reflection of the enum of this case
    • ReflectionEnumUnitCase::getValue — Gets the enum case object described by this reflection object
  • ReflectionEnumBackedCase — A classe ReflectionEnumBackedCase
    • ReflectionEnumBackedCase::__construct — Instantiates a ReflectionEnumBackedCase object
    • ReflectionEnumBackedCase::getBackingValue — Gets the scalar value backing this Enum case
  • ReflectionZendExtension — A classe ReflectionZendExtension
    • ReflectionZendExtension::__clone — Clone handler
    • ReflectionZendExtension::__construct — Constructs a ReflectionZendExtension object
    • ReflectionZendExtension::export — Export
    • ReflectionZendExtension::getAuthor — Gets author
    • ReflectionZendExtension::getCopyright — Gets copyright
    • ReflectionZendExtension::getName — Gets name
    • ReflectionZendExtension::getURL — Gets URL
    • ReflectionZendExtension::getVersion — Gets version
    • ReflectionZendExtension::__toString — To string handler
  • ReflectionExtension — Classe ReflectionExtension
    • ReflectionExtension::__clone — Clones
    • ReflectionExtension::__construct — Constructs a ReflectionExtension
    • ReflectionExtension::export — Export
    • ReflectionExtension::getClasses — Gets classes
    • ReflectionExtension::getClassNames — Gets class names
    • ReflectionExtension::getConstants — Gets constants
    • ReflectionExtension::getDependencies — Gets dependencies
    • ReflectionExtension::getFunctions — Gets extension functions
    • ReflectionExtension::getINIEntries — Gets extension ini entries
    • ReflectionExtension::getName — Gets extension name
    • ReflectionExtension::getVersion — Gets extension version
    • ReflectionExtension::info — Imprime informações da extensão
    • ReflectionExtension::isPersistent — Returns whether this extension is persistent
    • ReflectionExtension::isTemporary — Returns whether this extension is temporary
    • ReflectionExtension::__toString — To string
  • ReflectionFunction — Classe ReflectionFunction
    • ReflectionFunction::__construct — Constructs a ReflectionFunction object
    • ReflectionFunction::export — Exports function
    • ReflectionFunction::getClosure — Returns a dynamically created closure for the function
    • ReflectionFunction::invoke — Invokes function
    • ReflectionFunction::invokeArgs — Invokes function args
    • ReflectionFunction::isAnonymous — Checks if a function is anonymous
    • ReflectionFunction::isDisabled — Checks if function is disabled
    • ReflectionFunction::__toString — Returns the string representation of the ReflectionFunction object
  • ReflectionFunctionAbstract — A classe ReflectionFunctionAbstract
    • ReflectionFunctionAbstract::__clone — Clones function
    • ReflectionFunctionAbstract::getAttributes — Gets Attributes
    • ReflectionFunctionAbstract::getClosureScopeClass — Returns the scope class associated with the closure
    • ReflectionFunctionAbstract::getClosureThis — Returns this pointer bound to closure
    • ReflectionFunctionAbstract::getClosureUsedVariables — Returns an array of the used variables in the Closure
    • ReflectionFunctionAbstract::getDocComment — Gets doc comment
    • ReflectionFunctionAbstract::getEndLine — Gets end line number
    • ReflectionFunctionAbstract::getExtension — Gets extension info
    • ReflectionFunctionAbstract::getExtensionName — Gets extension name
    • ReflectionFunctionAbstract::getFileName — Gets file name
    • ReflectionFunctionAbstract::getName — Gets function name
    • ReflectionFunctionAbstract::getNamespaceName — Gets namespace name
    • ReflectionFunctionAbstract::getNumberOfParameters — Gets number of parameters
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters — Gets number of required parameters
    • ReflectionFunctionAbstract::getParameters — Gets parameters
    • ReflectionFunctionAbstract::getReturnType — Gets the specified return type of a function
    • ReflectionFunctionAbstract::getShortName — Gets function short name
    • ReflectionFunctionAbstract::getStartLine — Gets starting line number
    • ReflectionFunctionAbstract::getStaticVariables — Gets static variables
    • ReflectionFunctionAbstract::getTentativeReturnType — Returns the tentative return type associated with the function
    • ReflectionFunctionAbstract::hasReturnType — Checks if the function has a specified return type
    • ReflectionFunctionAbstract::hasTentativeReturnType — Returns whether the function has a tentative return type
    • ReflectionFunctionAbstract::inNamespace — Checks if function in namespace
    • ReflectionFunctionAbstract::isClosure — Checks if closure
    • ReflectionFunctionAbstract::isDeprecated — Checks if deprecated
    • ReflectionFunctionAbstract::isGenerator — Returns whether this function is a generator
    • ReflectionFunctionAbstract::isInternal — Checks if is internal
    • ReflectionFunctionAbstract::isStatic — Checks if the function is static
    • ReflectionFunctionAbstract::isUserDefined — Checks if user defined
    • ReflectionFunctionAbstract::isVariadic — Checks if the function is variadic
    • ReflectionFunctionAbstract::returnsReference — Checks if returns reference
    • ReflectionFunctionAbstract::__toString — Returns the string representation of the ReflectionFunctionAbstract object
  • ReflectionMethod — A classe ReflectionMethod
    • ReflectionMethod::__construct — Constructs a ReflectionMethod
    • ReflectionMethod::createFromMethodName — Creates a new ReflectionMethod
    • ReflectionMethod::export — Export a reflection method
    • ReflectionMethod::getClosure — Returns a dynamically created closure for the method
    • ReflectionMethod::getDeclaringClass — Gets declaring class for the reflected method
    • ReflectionMethod::getModifiers — Gets the method modifiers
    • ReflectionMethod::getPrototype — Gets the method prototype (if there is one)
    • ReflectionMethod::hasPrototype — Returns whether a method has a prototype
    • ReflectionMethod::invoke — Invoke
    • ReflectionMethod::invokeArgs — Invoke args
    • ReflectionMethod::isAbstract — Checks if method is abstract
    • ReflectionMethod::isConstructor — Checks if method is a constructor
    • ReflectionMethod::isDestructor — Checks if method is a destructor
    • ReflectionMethod::isFinal — Checks if method is final
    • ReflectionMethod::isPrivate — Checks if method is private
    • ReflectionMethod::isProtected — Checks if method is protected
    • ReflectionMethod::isPublic — Checks if method is public
    • ReflectionMethod::setAccessible — Set method accessibility
    • ReflectionMethod::__toString — Returns the string representation of the Reflection method object
  • ReflectionNamedType — A classe ReflectionNamedType
    • ReflectionNamedType::getName — Obtém o nome do tipo como uma string
    • ReflectionNamedType::isBuiltin — Checks if it is a built-in type
  • ReflectionObject — A classe ReflectionObject
    • ReflectionObject::__construct — Constructs a ReflectionObject
    • ReflectionObject::export — Export
  • ReflectionParameter — A classe ReflectionParameter
    • ReflectionParameter::allowsNull — Checks if null is allowed
    • ReflectionParameter::canBePassedByValue — Returns whether this parameter can be passed by value
    • ReflectionParameter::__clone — Clone
    • ReflectionParameter::__construct — Construct
    • ReflectionParameter::export — Exports
    • ReflectionParameter::getAttributes — Gets Attributes
    • ReflectionParameter::getClass — Get a ReflectionClass object for the parameter being reflected or null
    • ReflectionParameter::getDeclaringClass — Gets declaring class
    • ReflectionParameter::getDeclaringFunction — Gets declaring function
    • ReflectionParameter::getDefaultValue — Gets default parameter value
    • ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null
    • ReflectionParameter::getName — Gets parameter name
    • ReflectionParameter::getPosition — Gets parameter position
    • ReflectionParameter::getType — Gets a parameter's type
    • ReflectionParameter::hasType — Checks if parameter has a type
    • ReflectionParameter::isArray — Checks if parameter expects an array
    • ReflectionParameter::isCallable — Returns whether parameter MUST be callable
    • ReflectionParameter::isDefaultValueAvailable — Checks if a default value is available
    • ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is a constant
    • ReflectionParameter::isOptional — Checks if optional
    • ReflectionParameter::isPassedByReference — Checks if passed by reference
    • ReflectionParameter::isVariadic — Checks if the parameter is variadic
    • ReflectionParameter::__toString — To string
  • ReflectionProperty — A classe ReflectionProperty
    • ReflectionProperty::__clone — Clone
    • ReflectionProperty::__construct — Construct a ReflectionProperty object
    • ReflectionProperty::export — Export
    • ReflectionProperty::getAttributes — Gets Attributes
    • ReflectionProperty::getDeclaringClass — Gets declaring class
    • ReflectionProperty::getDefaultValue — Returns the default value declared for a property
    • ReflectionProperty::getDocComment — Gets the property doc comment
    • ReflectionProperty::getModifiers — Gets the property modifiers
    • ReflectionProperty::getName — Gets property name
    • ReflectionProperty::getType — Gets a property's type
    • ReflectionProperty::getValue — Gets value
    • ReflectionProperty::hasDefaultValue — Checks if property has a default value declared
    • ReflectionProperty::hasType — Checks if property has a type
    • ReflectionProperty::isDefault — Checks if property is a default property
    • ReflectionProperty::isInitialized — Checks whether a property is initialized
    • ReflectionProperty::isPrivate — Checks if property is private
    • ReflectionProperty::isPromoted — Checks if property is promoted
    • ReflectionProperty::isProtected — Checks if property is protected
    • ReflectionProperty::isPublic — Checks if property is public
    • ReflectionProperty::isReadOnly — Checks if property is readonly
    • ReflectionProperty::isStatic — Checks if property is static
    • ReflectionProperty::setAccessible — Set property accessibility
    • ReflectionProperty::setValue — Set property value
    • ReflectionProperty::__toString — To string
  • ReflectionType — A classe ReflectionType
    • ReflectionType::allowsNull — Checks if null is allowed
    • ReflectionType::__toString — To string
  • ReflectionUnionType — A classe ReflectionUnionType
    • ReflectionUnionType::getTypes — Returns the types included in the union type
  • ReflectionGenerator — A classe ReflectionGenerator
    • ReflectionGenerator::__construct — Constructs a ReflectionGenerator object
    • ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator
    • ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object
    • ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator
    • ReflectionGenerator::getFunction — Gets the function name of the generator
    • ReflectionGenerator::getThis — Gets the $this value of the generator
    • ReflectionGenerator::getTrace — Gets the trace of the executing generator
  • ReflectionFiber — A classe ReflectionFiber
    • ReflectionFiber::__construct — Constructs a ReflectionFiber object
    • ReflectionFiber::getCallable — Gets the callable used to create the Fiber
    • ReflectionFiber::getExecutingFile — Get the file name of the current execution point
    • ReflectionFiber::getExecutingLine — Get the line number of the current execution point
    • ReflectionFiber::getFiber — Get the reflected Fiber instance
    • ReflectionFiber::getTrace — Get the backtrace of the current execution point
  • ReflectionIntersectionType — A classe ReflectionIntersectionType
    • ReflectionIntersectionType::getTypes — Returns the types included in the intersection type
  • ReflectionReference — A classe ReflectionReference
    • ReflectionReference::__construct — Private constructor to disallow direct instantiation
    • ReflectionReference::fromArrayElement — Create a ReflectionReference from an array element
    • ReflectionReference::getId — Get unique ID of a reference
  • ReflectionAttribute — A classe ReflectionAttribute
    • ReflectionAttribute::__construct — Construtor privado para evitar a instanciação direta
    • ReflectionAttribute::getArguments — Obtém os argumentos passados para o atributo
    • ReflectionAttribute::getName — Obtém o nome do atributo
    • ReflectionAttribute::getTarget — Retorna o alvo do atributo como uma máscara de bits
    • ReflectionAttribute::isRepeated — Retorna se o atributo deste nome foi repetido em um elemento de código
    • ReflectionAttribute::newInstance — Instancia a classe de atributo representada por esta classe ReflectionAttribute e argumentos
  • Reflector — A interface Reflector
    • Reflector::export — Exports
  • ReflectionException — Classe ReflectionException


Introdução

O PHP vem com uma API completa de reflexão que acrescenta a capacidade de realizar introspecção em classes, interfaces, funções, métodos e extensões. Além disso, a API de reflexão oferece maneiras de recuperar comentários de documentação para as funções, classes e métodos.

Por favor note que algumas partes da API está faltando o código necessário para executar a extensão de reflexão. Por exemplo, uma classe PHP interna pode estar faltando dados de reflexão para as propriedades. Estes são poucos casos que são considerados bugs, não entando, devem ser descobertos e corrigidos.


  • « Tipos de Recurso
  • Exemplos »
  • PHP Manual
  • Reflexão
  • Constantes pré-definidas

Constantes pré-definidas

Cada classe descreve suas próprias constantes.


Exemplos

Existem muitos exemplos dentro da documentação Reflexão, tipicamente dentro da documentação do __construct de cada classe.

Exemplo #1 Exemplo de Reflexão no shell (terminal)

$ php --rf strlen
$ php --rc finfo
$ php --re json
$ php --ri dom

O exemplo acima produzirá algo semelhante a:

Function [ <internal:Core> function strlen ] {

  - Parameters [1] {
    Parameter #0 [ <required> $str ]
  }
}

Class [ <internal:fileinfo> class finfo ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [4] {
    Method [ <internal:fileinfo, ctor> public method finfo ] {

      - Parameters [2] {
        Parameter #0 [ <optional> $options ]
        Parameter #1 [ <optional> $arg ]
      }
    }

    Method [ <internal:fileinfo> public method set_flags ] {

      - Parameters [1] {
        Parameter #0 [ <required> $options ]
      }
    }

    Method [ <internal:fileinfo> public method file ] {

      - Parameters [3] {
        Parameter #0 [ <required> $filename ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }

    Method [ <internal:fileinfo> public method buffer ] {

      - Parameters [3] {
        Parameter #0 [ <required> $string ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }
  }
}

Extension [ <persistent> extension #23 json version 1.2.1 ] {

  - Constants [10] {
    Constant [ integer JSON_HEX_TAG ] { 1 }
    Constant [ integer JSON_HEX_AMP ] { 2 }
    Constant [ integer JSON_HEX_APOS ] { 4 }
    Constant [ integer JSON_HEX_QUOT ] { 8 }
    Constant [ integer JSON_FORCE_OBJECT ] { 16 }
    Constant [ integer JSON_ERROR_NONE ] { 0 }
    Constant [ integer JSON_ERROR_DEPTH ] { 1 }
    Constant [ integer JSON_ERROR_STATE_MISMATCH ] { 2 }
    Constant [ integer JSON_ERROR_CTRL_CHAR ] { 3 }
    Constant [ integer JSON_ERROR_SYNTAX ] { 4 }
  }

  - Functions {
    Function [ <internal:json> function json_encode ] {

      - Parameters [2] {
        Parameter #0 [ <required> $value ]
        Parameter #1 [ <optional> $options ]
      }
    }
    Function [ <internal:json> function json_decode ] {

      - Parameters [3] {
        Parameter #0 [ <required> $json ]
        Parameter #1 [ <optional> $assoc ]
        Parameter #2 [ <optional> $depth ]
      }
    }
    Function [ <internal:json> function json_last_error ] {

      - Parameters [0] {
      }
    }
  }
}

dom

DOM/XML => enabled
DOM/XML API Version => 20031129
libxml Version => 2.7.3
HTML Support => enabled
XPath Support => enabled
XPointer Support => enabled
Schema Support => enabled
RelaxNG Support => enabled


Extendendo

Caso queira criar versões especializdas das classes nativas(digamos, para criar HTML colorido quando sendo exportado, tendo variáveis membros de fácil acesso ao invés de métodos ou tendo métodos utilitários), você pode extendê-las.

Exemplo #1 Extendendo classe nativas

<?php
/**
* Minha Classe Reflection_Method
*/
class My_Reflection_Method extends ReflectionMethod
{
public $visibility = array();

public function __construct($o, $m)
{
parent::__construct($o, $m);
$this->visibility = Reflection::getModifierNames($this->getModifiers());
}
}

/**
* Demonstração classe #1
*
*/
class T {
protected function x() {}
}

/**
* Demonstração classe #2
*
*/
class U extends T {
function x() {}
}

// Imprimir as informações
var_dump(new My_Reflection_Method('U', 'x'));
?>

O exemplo acima produzirá algo semelhante a:

object(My_Reflection_Method)#1 (3) {
  ["visibility"]=>
  array(1) {
    [0]=>
    string(6) "public"
  }
  ["name"]=>
  string(1) "x"
  ["class"]=>
  string(1) "U"
}
Cuidado

Se construtor for sobrescrito, lembre-se de chamar o contrutor pai antes de qualquer código que você adicionar. Se isto não for feito irá resultar no seguinte erro: Fatal error: Internal error: Failed to retrieve the reflection object


Classe Reflection

(PHP 5, PHP 7, PHP 8)

Introdução

Classe de reflexão.

Resumo da classe

class Reflection {
/* Métodos */
public static export(Reflector $reflector, bool $return = false): string
public static getModifierNames(int $modifiers): array
}

Índice

  • Reflection::export — Exports
  • Reflection::getModifierNames — Obtém os nomes dos modificadores


Exports

  • « Reflection
  • Reflection::getModifierNames »
  • PHP Manual
  • Reflection
  • Exports

Reflection::export

(PHP 5, PHP 7)

Reflection::export — Exports

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static Reflection::export(Reflector $reflector, bool $return = false): string

Exporta uma reflexão.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

reflector

A reflexão a ser exportada.

return

Definir como true retornará a exportação, em vez de emiti-la. Definir como false (o padrão) fará o oposto.

Valor Retornado

Se o parâmetro return for definido como true, então a exportação será retornada como uma string, caso contrário, null será retornado.

Veja Também

  • Reflection::getModifierNames() - Obtém os nomes dos modificadores


Obtém os nomes dos modificadores

  • « Reflection::export
  • ReflectionClass »
  • PHP Manual
  • Reflection
  • Obtém os nomes dos modificadores

Reflection::getModifierNames

(PHP 5, PHP 7, PHP 8)

Reflection::getModifierNames — Obtém os nomes dos modificadores

Descrição

public static Reflection::getModifierNames(int $modifiers): array

Obtém os nomes dos modificadores.

Parâmetros

modifiers

Campo de bits dos modificadores a serem obtidos.

Valor Retornado

Um array com os nomes dos modificadores.

Exemplos

Exemplo #1 Exemplo de Reflection::getModifierNames()

<?php
class Testing
{
final public static function foo()
{
return;
}

public function bar()
{
return;
}
}

$foo = new ReflectionMethod('Testing', 'foo');

echo "Modifiers for method foo():\n";
echo $foo->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($foo->getModifiers())) . "\n";

$bar = new ReflectionMethod('Testing', 'bar');

echo "Modifiers for method bar():\n";
echo $bar->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($bar->getModifiers()));

O exemplo acima produzirá algo semelhante a:

Modifiers for method foo():
261
final public static
Modifiers for method bar():
65792
public

Veja Também

  • ReflectionClass::getModifiers() - Gets the class modifiers
  • ReflectionClassConstant::getModifiers() - Gets the class constant modifiers
  • ReflectionMethod::getModifiers() - Gets the method modifiers
  • ReflectionProperty::getModifiers() - Gets the property modifiers


Classe ReflectionClass

(PHP 5, PHP 7, PHP 8)

Introdução

Classe ReflectionClassreporta informações sobre uma classe.

Resumo da classe

class ReflectionClass implements Reflector {
/* Constantes */
public const int IS_IMPLICIT_ABSTRACT;
public const int IS_EXPLICIT_ABSTRACT;
public const int IS_FINAL;
public const int IS_READONLY;
/* Propriedades */
public string $name;
/* Métodos */
public __construct(object|string $objectOrClass)
public static export(mixed $argument, bool $return = false): string
public getAttributes(?string $name = null, int $flags = 0): array
public getConstant(string $name): mixed
public getConstants(?int $filter = null): array
public getConstructor(): ?ReflectionMethod
public getDefaultProperties(): array
public getDocComment(): string|false
public getEndLine(): int|false
public getExtension(): ?ReflectionExtension
public getExtensionName(): string|false
public getFileName(): string|false
public getInterfaceNames(): array
public getInterfaces(): array
public getMethod(string $name): ReflectionMethod
public getMethods(?int $filter = null): array
public getModifiers(): int
public getName(): string
public getNamespaceName(): string
public getParentClass(): ReflectionClass|false
public getProperties(?int $filter = null): array
public getProperty(string $name): ReflectionProperty
public getReflectionConstant(string $name): ReflectionClassConstant|false
public getReflectionConstants(?int $filter = null): array
public getShortName(): string
public getStartLine(): int|false
public getStaticProperties(): array
public getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public getTraitAliases(): array
public getTraitNames(): array
public getTraits(): array
public hasConstant(string $name): bool
public hasMethod(string $name): bool
public hasProperty(string $name): bool
public implementsInterface(ReflectionClass|string $interface): bool
public inNamespace(): bool
public isAbstract(): bool
public isAnonymous(): bool
public isCloneable(): bool
public isEnum(): bool
public isFinal(): bool
public isInstance(object $object): bool
public isInstantiable(): bool
public isInterface(): bool
public isInternal(): bool
public isIterable(): bool
public isReadOnly(): bool
public isSubclassOf(ReflectionClass|string $class): bool
public isTrait(): bool
public isUserDefined(): bool
public newInstance(mixed ...$args): object
public newInstanceArgs(array $args = []): ?object
public newInstanceWithoutConstructor(): object
public setStaticPropertyValue(string $name, mixed $value): void
public __toString(): string
}

Propriedades

name

Nome da classe. Apenas leitura, gera ReflectionException na tentativa de escrita.

Constantes pré-definidas

Modificadores ReflectionClass

ReflectionClass::IS_IMPLICIT_ABSTRACT

Indica que a classe é abstrata pois possui alguns métodos abstratos.

ReflectionClass::IS_EXPLICIT_ABSTRACT

Indica que a classe é abstrata por causa da sua definição.

ReflectionClass::IS_FINAL

Indica que a classe é final.

ReflectionClass::IS_READONLY

Indica que a classe é readonly.

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionClass::export() foi removida.

Índice

  • ReflectionClass::__construct — Constructs a ReflectionClass
  • ReflectionClass::export — Exports a class
  • ReflectionClass::getAttributes — Gets Attributes
  • ReflectionClass::getConstant — Gets defined constant
  • ReflectionClass::getConstants — Gets constants
  • ReflectionClass::getConstructor — Gets the constructor of the class
  • ReflectionClass::getDefaultProperties — Gets default properties
  • ReflectionClass::getDocComment — Gets doc comments
  • ReflectionClass::getEndLine — Gets end line
  • ReflectionClass::getExtension — Gets a ReflectionExtension object for the extension which defined the class
  • ReflectionClass::getExtensionName — Gets the name of the extension which defined the class
  • ReflectionClass::getFileName — Gets the filename of the file in which the class has been defined
  • ReflectionClass::getInterfaceNames — Gets the interface names
  • ReflectionClass::getInterfaces — Gets the interfaces
  • ReflectionClass::getMethod — Gets a ReflectionMethod for a class method
  • ReflectionClass::getMethods — Gets an array of methods
  • ReflectionClass::getModifiers — Gets the class modifiers
  • ReflectionClass::getName — Gets class name
  • ReflectionClass::getNamespaceName — Gets namespace name
  • ReflectionClass::getParentClass — Gets parent class
  • ReflectionClass::getProperties — Gets properties
  • ReflectionClass::getProperty — Gets a ReflectionProperty for a class's property
  • ReflectionClass::getReflectionConstant — Gets a ReflectionClassConstant for a class's constant
  • ReflectionClass::getReflectionConstants — Gets class constants
  • ReflectionClass::getShortName — Gets short name
  • ReflectionClass::getStartLine — Gets starting line number
  • ReflectionClass::getStaticProperties — Gets static properties
  • ReflectionClass::getStaticPropertyValue — Gets static property value
  • ReflectionClass::getTraitAliases — Returns an array of trait aliases
  • ReflectionClass::getTraitNames — Returns an array of names of traits used by this class
  • ReflectionClass::getTraits — Returns an array of traits used by this class
  • ReflectionClass::hasConstant — Checks if constant is defined
  • ReflectionClass::hasMethod — Checks if method is defined
  • ReflectionClass::hasProperty — Checks if property is defined
  • ReflectionClass::implementsInterface — Implements interface
  • ReflectionClass::inNamespace — Checks if in namespace
  • ReflectionClass::isAbstract — Checks if class is abstract
  • ReflectionClass::isAnonymous — Checks if class is anonymous
  • ReflectionClass::isCloneable — Returns whether this class is cloneable
  • ReflectionClass::isEnum — Returns whether this is an enum
  • ReflectionClass::isFinal — Checks if class is final
  • ReflectionClass::isInstance — Checks class for instance
  • ReflectionClass::isInstantiable — Checks if the class is instantiable
  • ReflectionClass::isInterface — Checks if the class is an interface
  • ReflectionClass::isInternal — Checks if class is defined internally by an extension, or the core
  • ReflectionClass::isIterable — Check whether this class is iterable
  • ReflectionClass::isIterateable — Sinônimo de ReflectionClass::isIterable
  • ReflectionClass::isReadOnly — Checks if class is readonly
  • ReflectionClass::isSubclassOf — Checks if a subclass
  • ReflectionClass::isTrait — Returns whether this is a trait
  • ReflectionClass::isUserDefined — Checks if user defined
  • ReflectionClass::newInstance — Creates a new class instance from given arguments
  • ReflectionClass::newInstanceArgs — Creates a new class instance from given arguments
  • ReflectionClass::newInstanceWithoutConstructor — Creates a new class instance without invoking the constructor
  • ReflectionClass::setStaticPropertyValue — Sets static property value
  • ReflectionClass::__toString — Returns the string representation of the ReflectionClass object


Constructs a ReflectionClass

  • « ReflectionClass
  • ReflectionClass::export »
  • PHP Manual
  • ReflectionClass
  • Constructs a ReflectionClass

ReflectionClass::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionClass::__construct — Constructs a ReflectionClass

Descrição

public ReflectionClass::__construct(object|string $objectOrClass)

Constructs a new ReflectionClass object.

Parâmetros

objectOrClass

Either a string containing the name of the class to reflect, or an object.

Erros/Exceções

Throws ReflectionException if the class to reflect does not exist.

Exemplos

Exemplo #1 Basic usage ReflectionClass

<?php
$reflection = new ReflectionClass('Exception');
echo $reflection;
?>

O exemplo acima produzirá algo semelhante a:

Class [ <internal:Core> class Exception implements Stringable, Throwable ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ protected $message = '' ]
    Property [ private string $string = '' ]
    Property [ protected $code = 0 ]
    Property [ protected string $file = '' ]
    Property [ protected int $line = 0 ]
    Property [ private array $trace = [] ]
    Property [ private ?Throwable $previous = NULL ]
  }

  - Methods [11] {
    Method [ <internal:Core> private method __clone ] {

      - Parameters [0] {
      }
      - Return [ void ]
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> string $message = "" ]
        Parameter #1 [ <optional> int $code = 0 ]
        Parameter #2 [ <optional> ?Throwable $previous = null ]
      }
    }

    Method [ <internal:Core> public method __wakeup ] {

      - Parameters [0] {
      }
      - Tentative return [ void ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getMessage ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getCode ] {

      - Parameters [0] {
      }
    }

    Method [ <internal:Core, prototype Throwable> final public method getFile ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getLine ] {

      - Parameters [0] {
      }
      - Return [ int ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getTrace ] {

      - Parameters [0] {
      }
      - Return [ array ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getPrevious ] {

      - Parameters [0] {
      }
      - Return [ ?Throwable ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getTraceAsString ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }

    Method [ <internal:Core, prototype Stringable> public method __toString ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }
  }
}

Veja Também

  • ReflectionObject::__construct() - Constructs a ReflectionObject
  • Constructors


Exports a class

  • « ReflectionClass::__construct
  • ReflectionClass::getAttributes »
  • PHP Manual
  • ReflectionClass
  • Exports a class

ReflectionClass::export

(PHP 5, PHP 7)

ReflectionClass::export — Exports a class

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static ReflectionClass::export(mixed $argument, bool $return = false): string

Exports a reflected class.

Parâmetros

argument

A reflexão a ser exportada.

return

Definir como true retornará a exportação, em vez de emiti-la. Definir como false (o padrão) fará o oposto.

Valor Retornado

Se o parâmetro return for definido como true, então a exportação será retornada como uma string, caso contrário, null será retornado.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::export()

<?php
class Apple {
public $var1;
public $var2 = 'Orange';

public function type() {
return 'Apple';
}
}
ReflectionClass::export('Apple');
?>

O exemplo acima produzirá algo semelhante a:

Class [ <user> class Apple ] {
  @@ php shell code 1-8

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [2] {
    Property [ <default> public $var1 ]
    Property [ <default> public $var2 ]
  }

  - Methods [1] {
    Method [ <user> public method type ] {
      @@ php shell code 5 - 7
    }
  }
}

Veja Também

  • ReflectionClass::getName() - Gets class name
  • ReflectionClass::__toString() - Returns the string representation of the ReflectionClass object


Gets Attributes

  • « ReflectionClass::export
  • ReflectionClass::getConstant »
  • PHP Manual
  • ReflectionClass
  • Gets Attributes

ReflectionClass::getAttributes

(PHP 8)

ReflectionClass::getAttributes — Gets Attributes

Descrição

public ReflectionClass::getAttributes(?string $name = null, int $flags = 0): array

Returns all attributes declared on this class as an array of ReflectionAttribute.

Parâmetros

name

Filtra os resultados para incluir apenas instâncias de ReflectionAttribute para atributos correspondentes a este nome de classe.

flags

Flags para determinar como filtrar os resultados, se name for fornecido.

O padrão é 0, que retornará apenas os resultados para atributos que são da classe name.

A única outra opção disponível é usar ReflectionAttribute::IS_INSTANCEOF, que usará instanceof para filtragem.

Valor Retornado

Array of attributes, as a ReflectionAttribute object.

Exemplos

Exemplo #1 Basic usage

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

#[Fruit]
#[Red]
class Apple {
}

$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
    [1] => Red
)

Exemplo #2 Filtering results by class name

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

#[Fruit]
#[Red]
class Apple {
}

$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
)

Exemplo #3 Filtering results by class name, with inheritance

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

#[Fruit]
#[Red]
class Apple {
}

$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes(Color::class, ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Red
)

Veja Também

  • ReflectionClassConstant::getAttributes() - Gets Attributes
  • ReflectionFunctionAbstract::getAttributes() - Gets Attributes
  • ReflectionParameter::getAttributes() - Gets Attributes
  • ReflectionProperty::getAttributes() - Gets Attributes


Gets defined constant

  • « ReflectionClass::getAttributes
  • ReflectionClass::getConstants »
  • PHP Manual
  • ReflectionClass
  • Gets defined constant

ReflectionClass::getConstant

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getConstant — Gets defined constant

Descrição

public ReflectionClass::getConstant(string $name): mixed

Gets the defined constant.

Parâmetros

name

The name of the class constant to get.

Valor Retornado

Value of the constant with the name name. Returns false if the constant was not found in the class.

Exemplos

Exemplo #1 Usage of ReflectionClass::getConstant()

<?php

class Example {
const C1 = false;
const C2 = 'I am a constant';
}

$reflection = new ReflectionClass('Example');

var_dump($reflection->getConstant('C1'));
var_dump($reflection->getConstant('C2'));
var_dump($reflection->getConstant('C3'));
?>

O exemplo acima produzirá:

bool(false)
string(15) "I am a constant"
bool(false)

Veja Também

  • ReflectionClass::getConstants() - Gets constants


Gets constants

  • « ReflectionClass::getConstant
  • ReflectionClass::getConstructor »
  • PHP Manual
  • ReflectionClass
  • Gets constants

ReflectionClass::getConstants

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getConstants — Gets constants

Descrição

public ReflectionClass::getConstants(?int $filter = null): array

Gets all defined constants from a class, regardless of their visibility.

Parâmetros

filter

The optional filter, for filtering desired constant visibilities. It's configured using the ReflectionClassConstant constants, and defaults to all constant visibilities.

Valor Retornado

An array of constants, where the keys hold the name and the values the value of the constants.

Registro de Alterações

Versão | Descrição
8.0.0 | filter has been added.

Veja Também

  • ReflectionClass::getConstant() - Gets defined constant


Gets the constructor of the class

  • « ReflectionClass::getConstants
  • ReflectionClass::getDefaultProperties »
  • PHP Manual
  • ReflectionClass
  • Gets the constructor of the class

ReflectionClass::getConstructor

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getConstructor — Gets the constructor of the class

Descrição

public ReflectionClass::getConstructor(): ?ReflectionMethod

Gets the constructor of the reflected class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionMethod object reflecting the class' constructor, or null if the class has no constructor.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::getConstructor()

<?php
$class = new ReflectionClass('ReflectionClass');
$constructor = $class->getConstructor();
var_dump($constructor);
?>

O exemplo acima produzirá:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(11) "__construct"
  ["class"]=>
  string(15) "ReflectionClass"
}

Veja Também

  • ReflectionClass::getName() - Gets class name


Gets default properties

  • « ReflectionClass::getConstructor
  • ReflectionClass::getDocComment »
  • PHP Manual
  • ReflectionClass
  • Gets default properties

ReflectionClass::getDefaultProperties

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getDefaultProperties — Gets default properties

Descrição

public ReflectionClass::getDefaultProperties(): array

Gets default properties from a class (including inherited properties).

Nota:

This method only works for static properties when used on internal classes. The default value of a static class property can not be tracked when using this method on user defined classes.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of default properties, with the key being the name of the property and the value being the default value of the property or null if the property doesn't have a default value. The function does not distinguish between static and non static properties and does not take visibility modifiers into account.

Exemplos

Exemplo #1 ReflectionClass::getDefaultProperties() example

<?php
class Bar {
protected $inheritedProperty = 'inheritedDefault';
}

class Foo extends Bar {
public $property = 'propertyDefault';
private $privateProperty = 'privatePropertyDefault';
public static $staticProperty = 'staticProperty';
public $defaultlessProperty;
}

$reflectionClass = new ReflectionClass('Foo');
var_dump($reflectionClass->getDefaultProperties());
?>

O exemplo acima produzirá:

array(5) {
   ["staticProperty"]=>
   string(14) "staticProperty"
   ["property"]=>
   string(15) "propertyDefault"
   ["privateProperty"]=>
   string(22) "privatePropertyDefault"
   ["defaultlessProperty"]=>
   NULL
   ["inheritedProperty"]=>
   string(16) "inheritedDefault"
}

Veja Também

  • ReflectionClass::getProperties() - Gets properties
  • ReflectionClass::getStaticProperties() - Gets static properties
  • ReflectionClass::getProperty() - Gets a ReflectionProperty for a class's property


Gets doc comments

  • « ReflectionClass::getDefaultProperties
  • ReflectionClass::getEndLine »
  • PHP Manual
  • ReflectionClass
  • Gets doc comments

ReflectionClass::getDocComment

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getDocComment — Gets doc comments

Descrição

public ReflectionClass::getDocComment(): string|false

Gets doc comments from a class. Doc comments start with /**, followed by whitespace. If there are multiple doc comments above the class definition, the one closest to the class will be taken.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The doc comment if it exists, otherwise false.

Exemplos

Exemplo #1 ReflectionClass::getDocComment() example

<?php
/**
* A test class
*
* @param foo bar
* @return baz
*/
class TestClass { }

$rc = new ReflectionClass('TestClass');
var_dump($rc->getDocComment());
?>

O exemplo acima produzirá:

string(61) "/**
 * A test class
 *
 * @param  foo bar
 * @return baz
 */"

Veja Também

  • ReflectionClass::getName() - Gets class name


Gets end line

  • « ReflectionClass::getDocComment
  • ReflectionClass::getExtension »
  • PHP Manual
  • ReflectionClass
  • Gets end line

ReflectionClass::getEndLine

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getEndLine — Gets end line

Descrição

public ReflectionClass::getEndLine(): int|false

Gets end line number from a user-defined class definition.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The ending line number of the user defined class, or false if unknown.

Exemplos

Exemplo #1 ReflectionClass::getEndLine() example

<?php
// Test Class
class TestClass { }

$rc = new ReflectionClass('TestClass');

echo $rc->getEndLine();
?>

O exemplo acima produzirá:

3

Veja Também

  • ReflectionClass::getStartLine() - Gets starting line number


Gets a ReflectionExtension object for the extension which defined the class

  • « ReflectionClass::getEndLine
  • ReflectionClass::getExtensionName »
  • PHP Manual
  • ReflectionClass
  • Gets a ReflectionExtension object for the extension which defined the class

ReflectionClass::getExtension

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getExtension — Gets a ReflectionExtension object for the extension which defined the class

Descrição

public ReflectionClass::getExtension(): ?ReflectionExtension

Gets a ReflectionExtension object for the extension which defined the class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionExtension object representing the extension which defined the class, or null for user-defined classes.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::getExtension()

<?php
$class = new ReflectionClass('ReflectionClass');
$extension = $class->getExtension();
var_dump($extension);
?>

O exemplo acima produzirá:

object(ReflectionExtension)#2 (1) {
  ["name"]=>
  string(10) "Reflection"
}

Veja Também

  • ReflectionClass::getExtensionName() - Gets the name of the extension which defined the class


Gets the name of the extension which defined the class

  • « ReflectionClass::getExtension
  • ReflectionClass::getFileName »
  • PHP Manual
  • ReflectionClass
  • Gets the name of the extension which defined the class

ReflectionClass::getExtensionName

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getExtensionName — Gets the name of the extension which defined the class

Descrição

public ReflectionClass::getExtensionName(): string|false

Gets the name of the extension which defined the class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The name of the extension which defined the class, or false for user-defined classes.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::getExtensionName()

<?php
$class = new ReflectionClass('ReflectionClass');
$extension = $class->getExtensionName();
var_dump($extension);
?>

O exemplo acima produzirá:

string(10) "Reflection"

Veja Também

  • ReflectionClass::getExtension() - Gets a ReflectionExtension object for the extension which defined the class


Gets the filename of the file in which the class has been defined

  • « ReflectionClass::getExtensionName
  • ReflectionClass::getInterfaceNames »
  • PHP Manual
  • ReflectionClass
  • Gets the filename of the file in which the class has been defined

ReflectionClass::getFileName

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getFileName — Gets the filename of the file in which the class has been defined

Descrição

public ReflectionClass::getFileName(): string|false

Gets the filename of the file in which the class has been defined.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the filename of the file in which the class has been defined. If the class is defined in the PHP core or in a PHP extension, false is returned.

Veja Também

  • ReflectionClass::getExtensionName() - Gets the name of the extension which defined the class


Gets the interface names

  • « ReflectionClass::getFileName
  • ReflectionClass::getInterfaces »
  • PHP Manual
  • ReflectionClass
  • Gets the interface names

ReflectionClass::getInterfaceNames

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionClass::getInterfaceNames — Gets the interface names

Descrição

public ReflectionClass::getInterfaceNames(): array

Get the interface names.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numerical array with interface names as the values.

Exemplos

Exemplo #1 ReflectionClass::getInterfaceNames() example

<?php
interface Foo { }

interface Bar { }

class Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaceNames());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [0] => Foo
    [1] => Bar
)

Veja Também

  • ReflectionClass::getInterfaces() - Gets the interfaces


Gets the interfaces

  • « ReflectionClass::getInterfaceNames
  • ReflectionClass::getMethod »
  • PHP Manual
  • ReflectionClass
  • Gets the interfaces

ReflectionClass::getInterfaces

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getInterfaces — Gets the interfaces

Descrição

public ReflectionClass::getInterfaces(): array

Gets the interfaces.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An associative array of interfaces, with keys as interface names and the array values as ReflectionClass objects.

Exemplos

Exemplo #1 ReflectionClass::getInterfaces() example

<?php
interface Foo { }

interface Bar { }

class Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaces());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [Foo] => ReflectionClass Object
        (
            [name] => Foo
        )

    [Bar] => ReflectionClass Object
        (
            [name] => Bar
        )

)

Veja Também

  • ReflectionClass::getInterfaceNames() - Gets the interface names


Gets a ReflectionMethod for a class method

  • « ReflectionClass::getInterfaces
  • ReflectionClass::getMethods »
  • PHP Manual
  • ReflectionClass
  • Gets a ReflectionMethod for a class method

ReflectionClass::getMethod

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getMethod — Gets a ReflectionMethod for a class method

Descrição

public ReflectionClass::getMethod(string $name): ReflectionMethod

Gets a ReflectionMethod for a class method.

Parâmetros

name

The method name to reflect.

Valor Retornado

A ReflectionMethod.

Erros/Exceções

A ReflectionException if the method does not exist.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::getMethod()

<?php
$class = new ReflectionClass('ReflectionClass');
$method = $class->getMethod('getMethod');
var_dump($method);
?>

O exemplo acima produzirá:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(9) "getMethod"
  ["class"]=>
  string(15) "ReflectionClass"
}

Veja Também

  • ReflectionClass::getMethods() - Gets an array of methods


Gets an array of methods

  • « ReflectionClass::getMethod
  • ReflectionClass::getModifiers »
  • PHP Manual
  • ReflectionClass
  • Gets an array of methods

ReflectionClass::getMethods

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getMethods — Gets an array of methods

Descrição

public ReflectionClass::getMethods(?int $filter = null): array

Gets an array of methods for the class.

Parâmetros

filter

Filter the results to include only methods with certain attributes. Defaults to no filtering.

Any bitwise disjunction of ReflectionMethod::IS_STATIC,
ReflectionMethod::IS_PUBLIC,
ReflectionMethod::IS_PROTECTED,
ReflectionMethod::IS_PRIVATE,
ReflectionMethod::IS_ABSTRACT,
ReflectionMethod::IS_FINAL,
so that all methods with any of the given
attributes will be returned.

Nota: Note that other bitwise operations, for instance ~ will not work as expected. In other words, it is not possible to retrieve all non-static methods, for example.

Valor Retornado

An array of ReflectionMethod objects reflecting each method.

Registro de Alterações

Versão | Descrição
7.2.0 | filter is nullable now.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::getMethods()

<?php
class Apple {
public function firstMethod() { }
final protected function secondMethod() { }
private static function thirdMethod() { }
}

$class = new ReflectionClass('Apple');
$methods = $class->getMethods();
var_dump($methods);
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(11) "firstMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [2]=>
  object(ReflectionMethod)#4 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}

Exemplo #2 Filtering results from ReflectionClass::getMethods()

<?php
class Apple {
public function firstMethod() { }
final protected function secondMethod() { }
private static function thirdMethod() { }
}

$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_STATIC | ReflectionMethod::IS_FINAL);
var_dump($methods);
?>

O exemplo acima produzirá:

array(2) {
  [0]=>
  object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}

Veja Também

  • ReflectionClass::getMethod() - Gets a ReflectionMethod for a class method
  • get_class_methods() - Obtém o nome dos métodos da classe


Gets the class modifiers

  • « ReflectionClass::getMethods
  • ReflectionClass::getName »
  • PHP Manual
  • ReflectionClass
  • Gets the class modifiers

ReflectionClass::getModifiers

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getModifiers — Gets the class modifiers

Descrição

public ReflectionClass::getModifiers(): int

Returns a bitfield of the access modifiers for this class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns bitmask of modifier constants.

Veja Também

  • ReflectionClass::getProperties() - Gets properties
  • Reflection::getModifierNames() - Obtém os nomes dos modificadores


Gets class name

  • « ReflectionClass::getModifiers
  • ReflectionClass::getNamespaceName »
  • PHP Manual
  • ReflectionClass
  • Gets class name

ReflectionClass::getName

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getName — Gets class name

Descrição

public ReflectionClass::getName(): string

Gets the class name.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The class name.

Exemplos

Exemplo #1 ReflectionClass::getName() example

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

O exemplo acima produzirá:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Veja Também

  • ReflectionClass::getNamespaceName() - Gets namespace name


Gets namespace name

  • « ReflectionClass::getName
  • ReflectionClass::getParentClass »
  • PHP Manual
  • ReflectionClass
  • Gets namespace name

ReflectionClass::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionClass::getNamespaceName — Gets namespace name

Descrição

public ReflectionClass::getNamespaceName(): string

Gets the namespace name.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The namespace name.

Exemplos

Exemplo #1 ReflectionClass::getNamespaceName() example

<?php
namespace A\B;

class Foo { }

$class = new \ReflectionClass('stdClass');

var_dump($class->inNamespace());
var_dump($class->getName());
var_dump($class->getNamespaceName());
var_dump($class->getShortName());

$class = new \ReflectionClass('A\\B\\Foo');

var_dump($class->inNamespace());
var_dump($class->getName());
var_dump($class->getNamespaceName());
var_dump($class->getShortName());
?>

O exemplo acima produzirá:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Veja Também

  • ReflectionClass::getParentClass() - Gets parent class
  • namespaces


Gets parent class

  • « ReflectionClass::getNamespaceName
  • ReflectionClass::getProperties »
  • PHP Manual
  • ReflectionClass
  • Gets parent class

ReflectionClass::getParentClass

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getParentClass — Gets parent class

Descrição

public ReflectionClass::getParentClass(): ReflectionClass|false

Get the parent class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionClass or false if there's no parent.

Veja Também

  • ReflectionClass::__construct() - Constructs a ReflectionClass


Gets properties

  • « ReflectionClass::getParentClass
  • ReflectionClass::getProperty »
  • PHP Manual
  • ReflectionClass
  • Gets properties

ReflectionClass::getProperties

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getProperties — Gets properties

Descrição

public ReflectionClass::getProperties(?int $filter = null): array

Retrieves reflected properties.

Parâmetros

filter

The optional filter, for filtering desired property types. It's configured using the ReflectionProperty constants, and defaults to all property types.

Valor Retornado

An array of ReflectionProperty objects.

Registro de Alterações

Versão | Descrição
7.2.0 | filter is nullable now.

Exemplos

Exemplo #1 ReflectionClass::getProperties() filtering example

This example demonstrates usage of the optional filter parameter, where it essentially skips private properties.

<?php
class Foo {
public $foo = 1;
protected $bar = 2;
private $baz = 3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$props = $reflect->getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED);

foreach ($props as $prop) {
print $prop->getName() . "\n";
}

var_dump($props);

?>

O exemplo acima produzirá algo semelhante a:

foo
bar
array(2) {
  [0]=>
  object(ReflectionProperty)#3 (2) {
    ["name"]=>
    string(3) "foo"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  object(ReflectionProperty)#4 (2) {
    ["name"]=>
    string(3) "bar"
    ["class"]=>
    string(3) "Foo"
  }
}

Veja Também

  • ReflectionClass::getProperty() - Gets a ReflectionProperty for a class's property
  • ReflectionProperty
  • ReflectionProperty modifier constants


Gets a ReflectionProperty for a class's property

  • « ReflectionClass::getProperties
  • ReflectionClass::getReflectionConstant »
  • PHP Manual
  • ReflectionClass
  • Gets a ReflectionProperty for a class's property

ReflectionClass::getProperty

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getProperty — Gets a ReflectionProperty for a class's property

Descrição

public ReflectionClass::getProperty(string $name): ReflectionProperty

Gets a ReflectionProperty for a class's property.

Parâmetros

name

The property name.

Valor Retornado

A ReflectionProperty.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::getProperty()

<?php
$class = new ReflectionClass('ReflectionClass');
$property = $class->getProperty('name');
var_dump($property);
?>

O exemplo acima produzirá:

object(ReflectionProperty)#2 (2) {
  ["name"]=>
  string(4) "name"
  ["class"]=>
  string(15) "ReflectionClass"
}

Veja Também

  • ReflectionClass::getProperties() - Gets properties


Gets a ReflectionClassConstant for a class's constant

  • « ReflectionClass::getProperty
  • ReflectionClass::getReflectionConstants »
  • PHP Manual
  • ReflectionClass
  • Gets a ReflectionClassConstant for a class's constant

ReflectionClass::getReflectionConstant

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClass::getReflectionConstant — Gets a ReflectionClassConstant for a class's constant

Descrição

public ReflectionClass::getReflectionConstant(string $name): ReflectionClassConstant|false

Gets a ReflectionClassConstant for a class's constant.

Parâmetros

name

The class constant name.

Valor Retornado

A ReflectionClassConstant, ou false em caso de falha.

Veja Também

  • ReflectionClass::getReflectionConstants() - Gets class constants
  • ReflectionClassConstant


Gets class constants

  • « ReflectionClass::getReflectionConstant
  • ReflectionClass::getShortName »
  • PHP Manual
  • ReflectionClass
  • Gets class constants

ReflectionClass::getReflectionConstants

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClass::getReflectionConstants — Gets class constants

Descrição

public ReflectionClass::getReflectionConstants(?int $filter = null): array

Retrieves reflected constants.

Parâmetros

filter

The optional filter, for filtering desired constant visibilities. It's configured using the ReflectionClassConstant constants, and defaults to all constant visibilities.

Valor Retornado

An array of ReflectionClassConstant objects.

Registro de Alterações

Versão | Descrição
8.0.0 | filter has been added.

Exemplos

Exemplo #1 Basic ReflectionClass::getReflectionConstants() example

<?php
class Foo {
public const FOO = 1;
protected const BAR = 2;
private const BAZ = 3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$consts = $reflect->getReflectionConstants();

foreach ($consts as $const) {
print $const->getName() . "\n";
}

var_dump($consts);

?>

O exemplo acima produzirá algo semelhante a:

FOO
BAR
BAZ
array(3) {
  [0]=>
  object(ReflectionClassConstant)#3 (2) {
    ["name"]=>
    string(3) "FOO"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  object(ReflectionClassConstant)#4 (2) {
    ["name"]=>
    string(3) "BAR"
    ["class"]=>
    string(3) "Foo"
  }
  [2]=>
  object(ReflectionClassConstant)#5 (2) {
    ["name"]=>
    string(3) "BAZ"
    ["class"]=>
    string(3) "Foo"
  }
}

Veja Também

  • ReflectionClass::getReflectionConstant() - Gets a ReflectionClassConstant for a class's constant
  • ReflectionClassConstant


Gets short name

  • « ReflectionClass::getReflectionConstants
  • ReflectionClass::getStartLine »
  • PHP Manual
  • ReflectionClass
  • Gets short name

ReflectionClass::getShortName

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionClass::getShortName — Gets short name

Descrição

public ReflectionClass::getShortName(): string

Gets the short name of the class, the part without the namespace.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The class short name.

Exemplos

Exemplo #1 ReflectionClass::getShortName() example

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

O exemplo acima produzirá:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Veja Também

  • ReflectionClass::getName() - Gets class name


Gets starting line number

  • « ReflectionClass::getShortName
  • ReflectionClass::getStaticProperties »
  • PHP Manual
  • ReflectionClass
  • Gets starting line number

ReflectionClass::getStartLine

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getStartLine — Gets starting line number

Descrição

public ReflectionClass::getStartLine(): int|false

Get the starting line number.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The starting line number, as an int, or false if unknown.

Veja Também

  • ReflectionClass::getEndLine() - Gets end line


Gets static properties

  • « ReflectionClass::getStartLine
  • ReflectionClass::getStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Gets static properties

ReflectionClass::getStaticProperties

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getStaticProperties — Gets static properties

Descrição

public ReflectionClass::getStaticProperties(): array

Get the static properties.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The static properties, as an array.

Registro de Alterações

Versão | Descrição
8.3.0 | The return type of ReflectionClass::getStaticProperties() has been changed to array from ?array.

Veja Também

  • ReflectionClass::getStaticPropertyValue() - Gets static property value
  • ReflectionClass::setStaticPropertyValue() - Sets static property value


Gets static property value

  • « ReflectionClass::getStaticProperties
  • ReflectionClass::getTraitAliases »
  • PHP Manual
  • ReflectionClass
  • Gets static property value

ReflectionClass::getStaticPropertyValue

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionClass::getStaticPropertyValue — Gets static property value

Descrição

public ReflectionClass::getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed

Gets the value of a static property on this class.

Parâmetros

name

The name of the static property for which to return a value.

def_value

A default value to return in case the class does not declare a static property with the given name. If the property does not exist and this argument is omitted, a ReflectionException is thrown.

Valor Retornado

The value of the static property.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::getStaticPropertyValue()

<?php
class Apple {
public static $color = 'Red';
}

$class = new ReflectionClass('Apple');
var_dump($class->getStaticPropertyValue('color'));
?>

O exemplo acima produzirá:

string(3) "Red"

Veja Também

  • ReflectionClass::getStaticProperties() - Gets static properties
  • ReflectionClass::setStaticPropertyValue() - Sets static property value


Returns an array of trait aliases

  • « ReflectionClass::getStaticPropertyValue
  • ReflectionClass::getTraitNames »
  • PHP Manual
  • ReflectionClass
  • Returns an array of trait aliases

ReflectionClass::getTraitAliases

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::getTraitAliases — Returns an array of trait aliases

Descrição

public ReflectionClass::getTraitAliases(): array

Get the array of trait method aliases defined in the current class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with new method names in keys and original names (in the format "TraitName::original") in values.


Returns an array of names of traits used by this class

  • « ReflectionClass::getTraitAliases
  • ReflectionClass::getTraits »
  • PHP Manual
  • ReflectionClass
  • Returns an array of names of traits used by this class

ReflectionClass::getTraitNames

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::getTraitNames — Returns an array of names of traits used by this class

Descrição

public ReflectionClass::getTraitNames(): array

Get the names of the traits used by this class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with trait names in values.


Returns an array of traits used by this class

  • « ReflectionClass::getTraitNames
  • ReflectionClass::hasConstant »
  • PHP Manual
  • ReflectionClass
  • Returns an array of traits used by this class

ReflectionClass::getTraits

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::getTraits — Returns an array of traits used by this class

Descrição

public ReflectionClass::getTraits(): array

Get the array of traits used by this class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array with trait names in keys and instances of trait's ReflectionClass in values. Returns null in case of an error.


Checks if constant is defined

  • « ReflectionClass::getTraits
  • ReflectionClass::hasMethod »
  • PHP Manual
  • ReflectionClass
  • Checks if constant is defined

ReflectionClass::hasConstant

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionClass::hasConstant — Checks if constant is defined

Descrição

public ReflectionClass::hasConstant(string $name): bool

Checks whether the class has a specific constant defined or not.

Parâmetros

name

The name of the constant being checked for.

Valor Retornado

true if the constant is defined, otherwise false.

Exemplos

Exemplo #1 ReflectionClass::hasConstant() example

<?php
class Foo {
const c1 = 1;
}

$class = new ReflectionClass("Foo");

var_dump($class->hasConstant("c1"));
var_dump($class->hasConstant("c2"));
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)

Veja Também

  • ReflectionClass::hasMethod() - Checks if method is defined
  • ReflectionClass::hasProperty() - Checks if property is defined


Checks if method is defined

  • « ReflectionClass::hasConstant
  • ReflectionClass::hasProperty »
  • PHP Manual
  • ReflectionClass
  • Checks if method is defined

ReflectionClass::hasMethod

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionClass::hasMethod — Checks if method is defined

Descrição

public ReflectionClass::hasMethod(string $name): bool

Checks whether a specific method is defined in a class.

Parâmetros

name

Name of the method being checked for.

Valor Retornado

true if it has the method, otherwise false

Exemplos

Exemplo #1 ReflectionClass::hasMethod() example

<?php
Class C {
public function publicFoo() {
return true;
}

protected function protectedFoo() {
return true;
}

private function privateFoo() {
return true;
}

static function staticFoo() {
return true;
}
}

$rc = new ReflectionClass("C");

var_dump($rc->hasMethod('publicFoo'));

var_dump($rc->hasMethod('protectedFoo'));

var_dump($rc->hasMethod('privateFoo'));

var_dump($rc->hasMethod('staticFoo'));

// C should not have method bar
var_dump($rc->hasMethod('bar'));

// Method names are case insensitive
var_dump($rc->hasMethod('PUBLICfOO'));
?>

O exemplo acima produzirá:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)

Veja Também

  • ReflectionClass::hasConstant() - Checks if constant is defined
  • ReflectionClass::hasProperty() - Checks if property is defined


Checks if property is defined

  • « ReflectionClass::hasMethod
  • ReflectionClass::implementsInterface »
  • PHP Manual
  • ReflectionClass
  • Checks if property is defined

ReflectionClass::hasProperty

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionClass::hasProperty — Checks if property is defined

Descrição

public ReflectionClass::hasProperty(string $name): bool

Checks whether the specified property is defined.

Parâmetros

name

Name of the property being checked for.

Valor Retornado

true if it has the property, otherwise false

Exemplos

Exemplo #1 ReflectionClass::hasProperty() example

<?php
class Foo {
public $p1;
protected $p2;
private $p3;

}

$obj = new ReflectionObject(new Foo());

var_dump($obj->hasProperty("p1"));
var_dump($obj->hasProperty("p2"));
var_dump($obj->hasProperty("p3"));
var_dump($obj->hasProperty("p4"));
?>

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(true)
bool(true)
bool(false)

Veja Também

  • ReflectionClass::hasConstant() - Checks if constant is defined
  • ReflectionClass::hasMethod() - Checks if method is defined


Implements interface

  • « ReflectionClass::hasProperty
  • ReflectionClass::inNamespace »
  • PHP Manual
  • ReflectionClass
  • Implements interface

ReflectionClass::implementsInterface

(PHP 5, PHP 7, PHP 8)

ReflectionClass::implementsInterface — Implements interface

Descrição

public ReflectionClass::implementsInterface(ReflectionClass|string $interface): bool

Checks whether it implements an interface.

Parâmetros

interface

The interface name.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

ReflectionClass::implementsInterface() throws an ReflectionException if interface is not an interface.

Veja Também

  • ReflectionClass::isInterface() - Checks if the class is an interface
  • ReflectionClass::isSubclassOf() - Checks if a subclass
  • interface_exists() - Verifica se a interface foi definida
  • Object Interfaces


Checks if in namespace

  • « ReflectionClass::implementsInterface
  • ReflectionClass::isAbstract »
  • PHP Manual
  • ReflectionClass
  • Checks if in namespace

ReflectionClass::inNamespace

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionClass::inNamespace — Checks if in namespace

Descrição

public ReflectionClass::inNamespace(): bool

Checks if this class is defined in a namespace.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ReflectionClass::inNamespace() example

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

O exemplo acima produzirá:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Veja Também

  • ReflectionClass::getNamespaceName() - Gets namespace name
  • PHP Namespaces


Checks if class is abstract

  • « ReflectionClass::inNamespace
  • ReflectionClass::isAnonymous »
  • PHP Manual
  • ReflectionClass
  • Checks if class is abstract

ReflectionClass::isAbstract

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isAbstract — Checks if class is abstract

Descrição

public ReflectionClass::isAbstract(): bool

Checks if the class is abstract.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ReflectionClass::isAbstract() example

<?php
class TestClass { }
abstract class TestAbstractClass { }

$testClass = new ReflectionClass('TestClass');
$abstractClass = new ReflectionClass('TestAbstractClass');

var_dump($testClass->isAbstract());
var_dump($abstractClass->isAbstract());
?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • ReflectionClass::isInterface() - Checks if the class is an interface
  • Class Abstraction


Checks if class is anonymous

  • « ReflectionClass::isAbstract
  • ReflectionClass::isCloneable »
  • PHP Manual
  • ReflectionClass
  • Checks if class is anonymous

ReflectionClass::isAnonymous

(PHP 7, PHP 8)

ReflectionClass::isAnonymous — Checks if class is anonymous

Descrição

public ReflectionClass::isAnonymous(): bool

Checks if a class is an anonymous class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ReflectionClass::isAnonymous() example

<?php
class TestClass {}
$anonClass = new class {};

$normalClass = new ReflectionClass('TestClass');
$anonClass = new ReflectionClass($anonClass);

var_dump($normalClass->isAnonymous());
var_dump($anonClass->isAnonymous());

?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • ReflectionClass::isFinal() - Checks if class is final


Returns whether this class is cloneable

  • « ReflectionClass::isAnonymous
  • ReflectionClass::isEnum »
  • PHP Manual
  • ReflectionClass
  • Returns whether this class is cloneable

ReflectionClass::isCloneable

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::isCloneable — Returns whether this class is cloneable

Descrição

public ReflectionClass::isCloneable(): bool

Returns whether this class is cloneable.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the class is cloneable, false otherwise.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::isCloneable()

<?php
class NotCloneable {
public $var1;

private function __clone() {
}
}

class Cloneable {
public $var1;
}

$notCloneable = new ReflectionClass('NotCloneable');
$cloneable = new ReflectionClass('Cloneable');

var_dump($notCloneable->isCloneable());
var_dump($cloneable->isCloneable());
?>

O exemplo acima produzirá:

bool(false)
bool(true)


Returns whether this is an enum

  • « ReflectionClass::isCloneable
  • ReflectionClass::isFinal »
  • PHP Manual
  • ReflectionClass
  • Returns whether this is an enum

ReflectionClass::isEnum

(PHP 8 >= 8.1.0)

ReflectionClass::isEnum — Returns whether this is an enum

Descrição

public ReflectionClass::isEnum(): bool

Checks if a class is an enum.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if this is an enum, false otherwise.


Checks if class is final

  • « ReflectionClass::isEnum
  • ReflectionClass::isInstance »
  • PHP Manual
  • ReflectionClass
  • Checks if class is final

ReflectionClass::isFinal

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isFinal — Checks if class is final

Descrição

public ReflectionClass::isFinal(): bool

Checks if a class is final.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ReflectionClass::isFinal() example

<?php
class TestClass { }
final class TestFinalClass { }

$normalClass = new ReflectionClass('TestClass');
$finalClass = new ReflectionClass('TestFinalClass');

var_dump($normalClass->isFinal());
var_dump($finalClass->isFinal());

?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • ReflectionClass::isAbstract() - Checks if class is abstract
  • Final Keyword


Checks class for instance

  • « ReflectionClass::isFinal
  • ReflectionClass::isInstantiable »
  • PHP Manual
  • ReflectionClass
  • Checks class for instance

ReflectionClass::isInstance

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isInstance — Checks class for instance

Descrição

public ReflectionClass::isInstance(object $object): bool

Checks if an object is an instance of a class.

Parâmetros

object

The object being compared to.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ReflectionClass::isInstance() related examples

<?php
// Example usage
$class = new ReflectionClass('Foo');

if ($class->isInstance($arg)) {
echo "Yes";
}

// Equivalent to
if ($arg instanceof Foo) {
echo "Yes";
}

// Equivalent to
if (is_a($arg, 'Foo')) {
echo "Yes";
}
?>

O exemplo acima produzirá algo semelhante a:

Yes
Yes
Yes

Veja Também

  • ReflectionClass::isInterface() - Checks if the class is an interface
  • Type operators (instanceof)
  • Object Interfaces
  • is_a() - Verifica se um objeto é ou herda de uma classe


Checks if the class is instantiable

  • « ReflectionClass::isInstance
  • ReflectionClass::isInterface »
  • PHP Manual
  • ReflectionClass
  • Checks if the class is instantiable

ReflectionClass::isInstantiable

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isInstantiable — Checks if the class is instantiable

Descrição

public ReflectionClass::isInstantiable(): bool

Checks if the class is instantiable.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 ReflectionClass::isInstantiable() example

<?php
class C { }

interface iface {
function f1();
}

class ifaceImpl implements iface {
function f1() {}
}

abstract class abstractClass {
function f1() { }
abstract function f2();
}

class D extends abstractClass {
function f2() { }
}

trait T {
function f1() {}
}

class privateConstructor {
private function __construct() { }
}

$classes = array(
"C",
"iface",
"ifaceImpl",
"abstractClass",
"D",
"T",
"privateConstructor",
);

foreach($classes as $class ) {
$reflectionClass = new ReflectionClass($class);
echo "Is $class instantiable? ";
var_dump($reflectionClass->isInstantiable());
}

?>

O exemplo acima produzirá:

Is C instantiable?  bool(true)
Is iface instantiable?  bool(false)
Is ifaceImpl instantiable?  bool(true)
Is abstractClass instantiable?  bool(false)
Is D instantiable?  bool(true)
Is T instantiable?  bool(false)
Is privateConstructor instantiable?  bool(false)

Veja Também

  • ReflectionClass::isInstance() - Checks class for instance


Checks if the class is an interface

  • « ReflectionClass::isInstantiable
  • ReflectionClass::isInternal »
  • PHP Manual
  • ReflectionClass
  • Checks if the class is an interface

ReflectionClass::isInterface

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isInterface — Checks if the class is an interface

Descrição

public ReflectionClass::isInterface(): bool

Checks whether the class is an interface.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::isInterface()

<?php
interface SomeInterface {
public function interfaceMethod();
}

$class = new ReflectionClass('SomeInterface');
var_dump($class->isInterface());
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • ReflectionClass::isInstance() - Checks class for instance


Checks if class is defined internally by an extension, or the core

  • « ReflectionClass::isInterface
  • ReflectionClass::isIterable »
  • PHP Manual
  • ReflectionClass
  • Checks if class is defined internally by an extension, or the core

ReflectionClass::isInternal

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isInternal — Checks if class is defined internally by an extension, or the core

Descrição

public ReflectionClass::isInternal(): bool

Checks if the class is defined internally by an extension, or the core, as opposed to user-defined.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::isInternal()

<?php
$internalclass = new ReflectionClass('ReflectionClass');

class Apple {}
$userclass = new ReflectionClass('Apple');

var_dump($internalclass->isInternal());
var_dump($userclass->isInternal());
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Veja Também

  • ReflectionClass::isUserDefined() - Checks if user defined


Check whether this class is iterable

  • « ReflectionClass::isInternal
  • ReflectionClass::isIterateable »
  • PHP Manual
  • ReflectionClass
  • Check whether this class is iterable

ReflectionClass::isIterable

(PHP 7 >= 7.2.0, PHP 8)

ReflectionClass::isIterable — Check whether this class is iterable

Descrição

public ReflectionClass::isIterable(): bool

Check whether this class is iterable (i.e. can be used inside foreach).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Basic ReflectionClass::isIterable() Usage

<?php

class IteratorClass implements Iterator {
public function __construct() { }
public function key() { }
public function current() { }
function next() { }
function valid() { }
function rewind() { }
}
class DerivedClass extends IteratorClass { }
class NonIterator { }

function dump_iterable($class) {
$reflection = new ReflectionClass($class);
var_dump($reflection->isIterable());
}

$classes = array("ArrayObject", "IteratorClass", "DerivedClass", "NonIterator");

foreach ($classes as $class) {
echo "Is $class iterable? ";
dump_iterable($class);
}
?>

O exemplo acima produzirá:

Is ArrayObject iterable? bool(true)
Is IteratorClass iterable? bool(true)
Is DerivedClass iterable? bool(true)
Is NonIterator iterable? bool(false)

Veja Também

  • ReflectionClass::__construct() - Constructs a ReflectionClass


Sinônimo de ReflectionClass::isIterable

  • « ReflectionClass::isIterable
  • ReflectionClass::isReadOnly »
  • PHP Manual
  • ReflectionClass
  • Sinônimo de ReflectionClass::isIterable

ReflectionClass::isIterateable

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isIterateable — Sinônimo de ReflectionClass::isIterable()

Descrição

Sinônimo de ReflectionClass::isIterable()

As of PHP 7.2.0, instead of the missspelled RefectionClass::isIterateable(), ReflectionClass::isIterable() should be preferred.


Checks if class is readonly

  • « ReflectionClass::isIterateable
  • ReflectionClass::isSubclassOf »
  • PHP Manual
  • ReflectionClass
  • Checks if class is readonly

ReflectionClass::isReadOnly

(PHP 8 >= 8.2.0)

ReflectionClass::isReadOnly — Checks if class is readonly

Descrição

public ReflectionClass::isReadOnly(): bool

Checks if a class is readonly.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if a class is readonly, false otherwise.

Exemplos

Exemplo #1 ReflectionClass::isReadOnly() example

<?php
class TestClass { }
readonly class TestReadOnlyClass { }

$normalClass = new ReflectionClass('TestClass');
$readonlyClass = new ReflectionClass('TestReadOnlyClass');

var_dump($normalClass->isReadOnly());
var_dump($readonlyClass->isReadOnly());

?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • ReflectionClass::isAbstract() - Checks if class is abstract
  • Readonly classes


Checks if a subclass

  • « ReflectionClass::isReadOnly
  • ReflectionClass::isTrait »
  • PHP Manual
  • ReflectionClass
  • Checks if a subclass

ReflectionClass::isSubclassOf

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isSubclassOf — Checks if a subclass

Descrição

public ReflectionClass::isSubclassOf(ReflectionClass|string $class): bool

Checks if the class is a subclass of a specified class or implements a specified interface.

Parâmetros

class

Either the name of the class as string or a ReflectionClass object of the class to check against.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ReflectionClass::isInterface() - Checks if the class is an interface
  • ReflectionClass::implementsInterface() - Implements interface
  • is_subclass_of() - Verifica se o objeto tem esta classe como uma de suas classes pai
  • get_parent_class() - Obtém o nome da classe pai para o objeto ou classe


Returns whether this is a trait

  • « ReflectionClass::isSubclassOf
  • ReflectionClass::isUserDefined »
  • PHP Manual
  • ReflectionClass
  • Returns whether this is a trait

ReflectionClass::isTrait

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::isTrait — Returns whether this is a trait

Descrição

public ReflectionClass::isTrait(): bool

Check whether this ReflectionClass refers to a trait.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if this is a trait, false otherwise.


Checks if user defined

  • « ReflectionClass::isTrait
  • ReflectionClass::newInstance »
  • PHP Manual
  • ReflectionClass
  • Checks if user defined

ReflectionClass::isUserDefined

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isUserDefined — Checks if user defined

Descrição

public ReflectionClass::isUserDefined(): bool

Checks whether the class is user-defined, as opposed to internal.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • ReflectionClass::isInternal() - Checks if class is defined internally by an extension, or the core


Creates a new class instance from given arguments

  • « ReflectionClass::isUserDefined
  • ReflectionClass::newInstanceArgs »
  • PHP Manual
  • ReflectionClass
  • Creates a new class instance from given arguments

ReflectionClass::newInstance

(PHP 5, PHP 7, PHP 8)

ReflectionClass::newInstance — Creates a new class instance from given arguments

Descrição

public ReflectionClass::newInstance(mixed ...$args): object

Creates a new instance of the class. The given arguments are passed to the class constructor.

Parâmetros

args

Accepts a variable number of arguments which are passed to the class constructor, much like call_user_func().

Valor Retornado

Erros/Exceções

A ReflectionException if the class constructor is not public.

A ReflectionException if the class does not have a constructor and the args parameter contains one or more parameters.

Veja Também

  • ReflectionClass::newInstanceArgs() - Creates a new class instance from given arguments
  • ReflectionClass::newInstanceWithoutConstructor() - Creates a new class instance without invoking the constructor


Creates a new class instance from given arguments

  • « ReflectionClass::newInstance
  • ReflectionClass::newInstanceWithoutConstructor »
  • PHP Manual
  • ReflectionClass
  • Creates a new class instance from given arguments

ReflectionClass::newInstanceArgs

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

ReflectionClass::newInstanceArgs — Creates a new class instance from given arguments

Descrição

public ReflectionClass::newInstanceArgs(array $args = []): ?object

Creates a new instance of the class, the given arguments are passed to the class constructor.

Parâmetros

args

The parameters to be passed to the class constructor as an array.

Valor Retornado

Returns a new instance of the class, or null on failure.

Erros/Exceções

A ReflectionException if the class constructor is not public.

A ReflectionException if the class does not have a constructor and the args parameter contains one or more parameters.

Exemplos

Exemplo #1 Basic usage of ReflectionClass::newInstanceArgs()

<?php
$class = new ReflectionClass('ReflectionFunction');
$instance = $class->newInstanceArgs(array('substr'));
var_dump($instance);
?>

O exemplo acima produzirá:

object(ReflectionFunction)#2 (1) {
  ["name"]=>
  string(6) "substr"
}

Veja Também

  • ReflectionClass::newInstance() - Creates a new class instance from given arguments
  • ReflectionClass::newInstanceWithoutConstructor() - Creates a new class instance without invoking the constructor


Creates a new class instance without invoking the constructor

  • « ReflectionClass::newInstanceArgs
  • ReflectionClass::setStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Creates a new class instance without invoking the constructor

ReflectionClass::newInstanceWithoutConstructor

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::newInstanceWithoutConstructor — Creates a new class instance without invoking the constructor

Descrição

public ReflectionClass::newInstanceWithoutConstructor(): object

Creates a new instance of the class without invoking the constructor.

Parâmetros

Valor Retornado

Erros/Exceções

A ReflectionException if the class is an internal class that cannot be instantiated without invoking the constructor. This exception is limited only to internal classes that are final.

Veja Também

  • ReflectionClass::newInstance() - Creates a new class instance from given arguments
  • ReflectionClass::newInstanceArgs() - Creates a new class instance from given arguments


Sets static property value

  • « ReflectionClass::newInstanceWithoutConstructor
  • ReflectionClass::__toString »
  • PHP Manual
  • ReflectionClass
  • Sets static property value

ReflectionClass::setStaticPropertyValue

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionClass::setStaticPropertyValue — Sets static property value

Descrição

public ReflectionClass::setStaticPropertyValue(string $name, mixed $value): void

Sets static property value.

Parâmetros

name

Property name.

value

New property value.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • ReflectionClass::getStaticPropertyValue() - Gets static property value


Returns the string representation of the ReflectionClass object

  • « ReflectionClass::setStaticPropertyValue
  • ReflectionClassConstant »
  • PHP Manual
  • ReflectionClass
  • Returns the string representation of the ReflectionClass object

ReflectionClass::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionClass::__toString — Returns the string representation of the ReflectionClass object

Descrição

public ReflectionClass::__toString(): string

Returns the string representation of the ReflectionClass object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A string representation of this ReflectionClass instance.

Exemplos

Exemplo #1 ReflectionClass::__toString() example

<?php
$reflectionClass = new ReflectionClass('Exception');
echo $reflectionClass->__toString();
?>

O exemplo acima produzirá:

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

Veja Também

  • ReflectionClass::export() - Exports a class
  • __toString()


A classe ReflectionClassConstant

(PHP 7 >= 7.1.0, PHP 8)

Introdução

A classe ReflectionClassConstant relata informações sobre uma constante de classe.

Resumo da classe

class ReflectionClassConstant implements Reflector {
/* Constantes */
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
public const int IS_FINAL;
/* Propriedades */
public string $name;
public string $class;
/* Métodos */
public __construct(object|string $class, string $constant)
public static export(mixed $class, string $name, bool $return = ?): string
public getAttributes(?string $name = null, int $flags = 0): array
public getDeclaringClass(): ReflectionClass
public getDocComment(): string|false
public getModifiers(): int
public getName(): string
public getValue(): mixed
public isEnumCase(): bool
public isFinal(): bool
public isPrivate(): bool
public isProtected(): bool
public isPublic(): bool
public __toString(): string
}

Propriedades

name

Nome da constante de classe. Somente leitura, lança ReflectionException em tentativa de escrita.

class

Nome da classe onde a constante de classe está definida. Somente leitura, lança ReflectionException em tentativa de escrita.

Constantes pré-definidas

Modificadores de ReflectionClassConstant

ReflectionClassConstant::IS_PUBLIC

Indica constantes públicas. Antes do PHP 7.4.0, o valor era 256.

ReflectionClassConstant::IS_PROTECTED

Indica constantes protegidas. Antes do PHP 7.4.0, o valor era 512.

ReflectionClassConstant::IS_PRIVATE

Indica constantes privadas. Antes do PHP 7.4.0, o valor era 1024.

ReflectionClassConstant::IS_FINAL

Indica constantes finais. Disponível a partir do PHP 8.1.0.

Nota:

Os valores dessas constantes podem mudar entre as versões do PHP. É recomendado sempre utilizar as constantes e não depender diretamente dos valores.

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionClassConstant::export() foi removido.

Índice

  • ReflectionClassConstant::__construct — Constructs a ReflectionClassConstant
  • ReflectionClassConstant::export — Export
  • ReflectionClassConstant::getAttributes — Gets Attributes
  • ReflectionClassConstant::getDeclaringClass — Gets declaring class
  • ReflectionClassConstant::getDocComment — Gets doc comments
  • ReflectionClassConstant::getModifiers — Gets the class constant modifiers
  • ReflectionClassConstant::getName — Get name of the constant
  • ReflectionClassConstant::getValue — Gets value
  • ReflectionClassConstant::isEnumCase — Checks if class constant is an Enum case
  • ReflectionClassConstant::isFinal — Checks if class constant is final
  • ReflectionClassConstant::isPrivate — Checks if class constant is private
  • ReflectionClassConstant::isProtected — Checks if class constant is protected
  • ReflectionClassConstant::isPublic — Checks if class constant is public
  • ReflectionClassConstant::__toString — Returns the string representation of the ReflectionClassConstant object


Constructs a ReflectionClassConstant

  • « ReflectionClassConstant
  • ReflectionClassConstant::export »
  • PHP Manual
  • ReflectionClassConstant
  • Constructs a ReflectionClassConstant

ReflectionClassConstant::__construct

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::__construct — Constructs a ReflectionClassConstant

Descrição

public ReflectionClassConstant::__construct(object|string $class, string $constant)

Constructs a new ReflectionClassConstant object.

Parâmetros

class

Either a string containing the name of the class to reflect, or an object.

constant

The name of the class constant.

Erros/Exceções

Throws an Exception in case the given class constant does not exist.

Veja Também

  • Constructors


Export

  • « ReflectionClassConstant::__construct
  • ReflectionClassConstant::getAttributes »
  • PHP Manual
  • ReflectionClassConstant
  • Export

ReflectionClassConstant::export

(PHP 7 >= 7.1.0)

ReflectionClassConstant::export — Export

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static ReflectionClassConstant::export(mixed $class, string $name, bool $return = ?): string

Exports a reflection.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

class

A reflexão a ser exportada.

name

The class constant name.

return

Definir como true retornará a exportação, em vez de emiti-la. Definir como false (o padrão) fará o oposto.

Valor Retornado

Veja Também

  • ReflectionClassConstant::__toString() - Returns the string representation of the ReflectionClassConstant object


Gets Attributes

  • « ReflectionClassConstant::export
  • ReflectionClassConstant::getDeclaringClass »
  • PHP Manual
  • ReflectionClassConstant
  • Gets Attributes

ReflectionClassConstant::getAttributes

(PHP 8)

ReflectionClassConstant::getAttributes — Gets Attributes

Descrição

public ReflectionClassConstant::getAttributes(?string $name = null, int $flags = 0): array

Returns all attributes declared on this class constant as an array of ReflectionAttribute.

Parâmetros

name

Filtra os resultados para incluir apenas instâncias de ReflectionAttribute para atributos correspondentes a este nome de classe.

flags

Flags para determinar como filtrar os resultados, se name for fornecido.

O padrão é 0, que retornará apenas os resultados para atributos que são da classe name.

A única outra opção disponível é usar ReflectionAttribute::IS_INSTANCEOF, que usará instanceof para filtragem.

Valor Retornado

Array of attributes, as a ReflectionAttribute object.

Exemplos

Exemplo #1 Basic usage

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}

$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
    [1] => Red
)

Exemplo #2 Filtering results by class name

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}

$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
)

Exemplo #3 Filtering results by class name, with inheritance

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}

$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Red
)

Veja Também

  • ReflectionClass::getAttributes() - Gets Attributes
  • ReflectionFunctionAbstract::getAttributes() - Gets Attributes
  • ReflectionParameter::getAttributes() - Gets Attributes
  • ReflectionProperty::getAttributes() - Gets Attributes


Gets declaring class

  • « ReflectionClassConstant::getAttributes
  • ReflectionClassConstant::getDocComment »
  • PHP Manual
  • ReflectionClassConstant
  • Gets declaring class

ReflectionClassConstant::getDeclaringClass

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getDeclaringClass — Gets declaring class

Descrição

public ReflectionClassConstant::getDeclaringClass(): ReflectionClass

Gets the declaring class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionClass object.


Gets doc comments

  • « ReflectionClassConstant::getDeclaringClass
  • ReflectionClassConstant::getModifiers »
  • PHP Manual
  • ReflectionClassConstant
  • Gets doc comments

ReflectionClassConstant::getDocComment

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getDocComment — Gets doc comments

Descrição

public ReflectionClassConstant::getDocComment(): string|false

Gets doc comments from a class constant.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The doc comment if it exists, otherwise false


Gets the class constant modifiers

  • « ReflectionClassConstant::getDocComment
  • ReflectionClassConstant::getName »
  • PHP Manual
  • ReflectionClassConstant
  • Gets the class constant modifiers

ReflectionClassConstant::getModifiers

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getModifiers — Gets the class constant modifiers

Descrição

public ReflectionClassConstant::getModifiers(): int

Returns a bitfield of the access modifiers for this class constant.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numeric representation of the modifiers. The actual meaning of these modifiers are described under predefined constants.

Veja Também

  • Reflection::getModifierNames() - Obtém os nomes dos modificadores


Get name of the constant

  • « ReflectionClassConstant::getModifiers
  • ReflectionClassConstant::getValue »
  • PHP Manual
  • ReflectionClassConstant
  • Get name of the constant

ReflectionClassConstant::getName

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getName — Get name of the constant

Descrição

public ReflectionClassConstant::getName(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the constant's name.

Registro de Alterações

Versão | Descrição
8.1.0 | Throws an Error in case the name property has not been initialized. Previously, the method returned false on failure.


Gets value

  • « ReflectionClassConstant::getName
  • ReflectionClassConstant::isEnumCase »
  • PHP Manual
  • ReflectionClassConstant
  • Gets value

ReflectionClassConstant::getValue

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getValue — Gets value

Descrição

public ReflectionClassConstant::getValue(): mixed

Gets the class constant's value.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The value of the class constant.


Checks if class constant is an Enum case

  • « ReflectionClassConstant::getValue
  • ReflectionClassConstant::isFinal »
  • PHP Manual
  • ReflectionClassConstant
  • Checks if class constant is an Enum case

ReflectionClassConstant::isEnumCase

(PHP 8 >= 8.1.0)

ReflectionClassConstant::isEnumCase — Checks if class constant is an Enum case

Descrição

public ReflectionClassConstant::isEnumCase(): bool

Checks if the class constant is an Enum case.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the class constant is an Enum case; false otherwise.

Exemplos

Exemplo #1 ReflectionClassConstant::isEnumCase() example

Distinguish between Enum cases and regular class constants.

<?php
enum Status
{
const BORING_CONSTANT = 'test';
const ENUM_VALUE = Status::PUBLISHED;

case DRAFT;
case PUBLISHED;
case ARCHIVED;
}

$reflection = new ReflectionEnum(Status::class);
foreach ($reflection->getReflectionConstants() as $constant) {
echo "{$constant->name} is ",
$constant->isEnumCase() ? "an enum case" : "a regular class constant",
PHP_EOL;
}
?>

O exemplo acima produzirá:

BORING_CONSTANT is a regular class constant
ENUM_VALUE is a regular class constant
DRAFT is an enum case
PUBLISHED is an enum case
ARCHIVED is an enum case

Veja Também

  • ReflectionEnum


Checks if class constant is final

  • « ReflectionClassConstant::isEnumCase
  • ReflectionClassConstant::isPrivate »
  • PHP Manual
  • ReflectionClassConstant
  • Checks if class constant is final

ReflectionClassConstant::isFinal

(PHP 8 >= 8.1.0)

ReflectionClassConstant::isFinal — Checks if class constant is final

Descrição

public ReflectionClassConstant::isFinal(): bool

Checks if the class constant is final.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the class constant is final, otherwise false

Veja Também

  • ReflectionClassConstant::isPublic() - Checks if class constant is public
  • ReflectionClassConstant::isPrivate() - Checks if class constant is private
  • ReflectionClassConstant::isProtected() - Checks if class constant is protected


Checks if class constant is private

  • « ReflectionClassConstant::isFinal
  • ReflectionClassConstant::isProtected »
  • PHP Manual
  • ReflectionClassConstant
  • Checks if class constant is private

ReflectionClassConstant::isPrivate

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::isPrivate — Checks if class constant is private

Descrição

public ReflectionClassConstant::isPrivate(): bool

Checks if the class constant is private.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the class constant is private, otherwise false

Veja Também

  • ReflectionClassConstant::isFinal() - Checks if class constant is final
  • ReflectionClassConstant::isPublic() - Checks if class constant is public
  • ReflectionClassConstant::isProtected() - Checks if class constant is protected


Checks if class constant is protected

  • « ReflectionClassConstant::isPrivate
  • ReflectionClassConstant::isPublic »
  • PHP Manual
  • ReflectionClassConstant
  • Checks if class constant is protected

ReflectionClassConstant::isProtected

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::isProtected — Checks if class constant is protected

Descrição

public ReflectionClassConstant::isProtected(): bool

Checks if the class constant is protected.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the class constant is protected, otherwise false

Veja Também

  • ReflectionClassConstant::isFinal() - Checks if class constant is final
  • ReflectionClassConstant::isPublic() - Checks if class constant is public
  • ReflectionClassConstant::isPrivate() - Checks if class constant is private


Checks if class constant is public

  • « ReflectionClassConstant::isProtected
  • ReflectionClassConstant::__toString »
  • PHP Manual
  • ReflectionClassConstant
  • Checks if class constant is public

ReflectionClassConstant::isPublic

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::isPublic — Checks if class constant is public

Descrição

public ReflectionClassConstant::isPublic(): bool

Checks if the class constant is public.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the class constant is public, otherwise false

Veja Também

  • ReflectionClassConstant::isFinal() - Checks if class constant is final
  • ReflectionClassConstant::isPrivate() - Checks if class constant is private
  • ReflectionClassConstant::isProtected() - Checks if class constant is protected


Returns the string representation of the ReflectionClassConstant object

  • « ReflectionClassConstant::isPublic
  • ReflectionEnum »
  • PHP Manual
  • ReflectionClassConstant
  • Returns the string representation of the ReflectionClassConstant object

ReflectionClassConstant::__toString

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::__toString — Returns the string representation of the ReflectionClassConstant object

Descrição

public ReflectionClassConstant::__toString(): string

Returns the string representation of the ReflectionClassConstant object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A string representation of this ReflectionClassConstant instance.

Veja Também

  • ReflectionClassConstant::export() - Export
  • __toString()


A classe ReflectionEnum

(PHP 8 >= 8.1.0)

Introdução

A classe ReflectionEnum relata informações sobre um Enum.

Resumo da classe

class ReflectionEnum extends ReflectionClass {
/* Constantes herdadas */
public const int ReflectionClass::IS_IMPLICIT_ABSTRACT;
public const int ReflectionClass::IS_EXPLICIT_ABSTRACT;
public const int ReflectionClass::IS_FINAL;
public const int ReflectionClass::IS_READONLY;
/* Propriedades herdadas */
public string $name;
/* Métodos */
public __construct(object|string $objectOrClass)
public getBackingType(): ?ReflectionNamedType
public getCase(string $name): ReflectionEnumUnitCase
public getCases(): array
public hasCase(string $name): bool
public isBacked(): bool
/* Métodos herdados */
public static ReflectionClass::export(mixed $argument, bool $return = false): string
public ReflectionClass::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClass::getConstant(string $name): mixed
public ReflectionClass::getConstants(?int $filter = null): array
public ReflectionClass::getConstructor(): ?ReflectionMethod
public ReflectionClass::getDefaultProperties(): array
public ReflectionClass::getDocComment(): string|false
public ReflectionClass::getEndLine(): int|false
public ReflectionClass::getExtension(): ?ReflectionExtension
public ReflectionClass::getExtensionName(): string|false
public ReflectionClass::getFileName(): string|false
public ReflectionClass::getInterfaceNames(): array
public ReflectionClass::getInterfaces(): array
public ReflectionClass::getMethod(string $name): ReflectionMethod
public ReflectionClass::getMethods(?int $filter = null): array
public ReflectionClass::getModifiers(): int
public ReflectionClass::getName(): string
public ReflectionClass::getNamespaceName(): string
public ReflectionClass::getParentClass(): ReflectionClass|false
public ReflectionClass::getProperties(?int $filter = null): array
public ReflectionClass::getProperty(string $name): ReflectionProperty
public ReflectionClass::getReflectionConstant(string $name): ReflectionClassConstant|false
public ReflectionClass::getReflectionConstants(?int $filter = null): array
public ReflectionClass::getShortName(): string
public ReflectionClass::getStartLine(): int|false
public ReflectionClass::getStaticProperties(): array
public ReflectionClass::getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public ReflectionClass::getTraitAliases(): array
public ReflectionClass::getTraitNames(): array
public ReflectionClass::getTraits(): array
public ReflectionClass::hasConstant(string $name): bool
public ReflectionClass::hasMethod(string $name): bool
public ReflectionClass::hasProperty(string $name): bool
public ReflectionClass::implementsInterface(ReflectionClass|string $interface): bool
public ReflectionClass::inNamespace(): bool
public ReflectionClass::isAbstract(): bool
public ReflectionClass::isAnonymous(): bool
public ReflectionClass::isCloneable(): bool
public ReflectionClass::isEnum(): bool
public ReflectionClass::isFinal(): bool
public ReflectionClass::isInstance(object $object): bool
public ReflectionClass::isInstantiable(): bool
public ReflectionClass::isInterface(): bool
public ReflectionClass::isInternal(): bool
public ReflectionClass::isIterable(): bool
public ReflectionClass::isReadOnly(): bool
public ReflectionClass::isSubclassOf(ReflectionClass|string $class): bool
public ReflectionClass::isTrait(): bool
public ReflectionClass::isUserDefined(): bool
public ReflectionClass::newInstance(mixed ...$args): object
public ReflectionClass::newInstanceArgs(array $args = []): ?object
public ReflectionClass::newInstanceWithoutConstructor(): object
public ReflectionClass::setStaticPropertyValue(string $name, mixed $value): void
public ReflectionClass::__toString(): string
}

Veja Também

  • Enumerations

Índice

  • ReflectionEnum::__construct — Instantiates a ReflectionEnum object
  • ReflectionEnum::getBackingType — Gets the backing type of an Enum, if any
  • ReflectionEnum::getCase — Returns a specific case of an Enum
  • ReflectionEnum::getCases — Returns a list of all cases on an Enum
  • ReflectionEnum::hasCase — Checks for a case on an Enum
  • ReflectionEnum::isBacked — Determines if an Enum is a Backed Enum


Instantiates a ReflectionEnum object

  • « ReflectionEnum
  • ReflectionEnum::getBackingType »
  • PHP Manual
  • ReflectionEnum
  • Instantiates a ReflectionEnum object

ReflectionEnum::__construct

(PHP 8 >= 8.1.0)

ReflectionEnum::__construct — Instantiates a ReflectionEnum object

Descrição

public ReflectionEnum::__construct(object|string $objectOrClass)

Parâmetros

objectOrClass

An enum instance or a name.


Gets the backing type of an Enum, if any

  • « ReflectionEnum::__construct
  • ReflectionEnum::getCase »
  • PHP Manual
  • ReflectionEnum
  • Gets the backing type of an Enum, if any

ReflectionEnum::getBackingType

(PHP 8 >= 8.1.0)

ReflectionEnum::getBackingType — Gets the backing type of an Enum, if any

Descrição

public ReflectionEnum::getBackingType(): ?ReflectionNamedType

If the enumeration is a Backed Enum, this method will return an instance of ReflectionType for the backing type of the Enum. If it is not a Backed Enum, it will return null.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An instance of ReflectionNamedType, or null if the Enum has no backing type.

Registro de Alterações

Versão | Descrição
8.2.0 | The return type is now declared as ?ReflectionNamedType. Previously, ?ReflectionType was declared.

Exemplos

Exemplo #1 ReflectionEnum::getBackingType() example

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$rEnum = new ReflectionEnum(Suit::class);

$rBackingType = $rEnum->getBackingType();

var_dump((string)$rBackingType);
?>

O exemplo acima produzirá:

string(6) "string"

Veja Também

  • Enumerations
  • ReflectionEnum::isBacked() - Determines if an Enum is a Backed Enum


Returns a specific case of an Enum

  • « ReflectionEnum::getBackingType
  • ReflectionEnum::getCases »
  • PHP Manual
  • ReflectionEnum
  • Returns a specific case of an Enum

ReflectionEnum::getCase

(PHP 8 >= 8.1.0)

ReflectionEnum::getCase — Returns a specific case of an Enum

Descrição

public ReflectionEnum::getCase(string $name): ReflectionEnumUnitCase

Returns the reflection object for a specific Enum case by name. If the requested case is not defined, a ReflectionException is thrown.

Parâmetros

name

The name of the case to retrieve.

Valor Retornado

An instance of ReflectionEnumUnitCase or ReflectionEnumBackedCase, as appropriate.

Exemplos

Exemplo #1 ReflectionEnum::getCase() example

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

$rCase = $rEnum->getCase('Clubs');

var_dump($rCase->getValue());
?>

O exemplo acima produzirá:

enum(Suit::Clubs)

Veja Também

  • Enumerations
  • ReflectionEnum::getCases() - Returns a list of all cases on an Enum
  • ReflectionEnum::hasCase() - Checks for a case on an Enum
  • ReflectionEnum::isBacked() - Determines if an Enum is a Backed Enum


Returns a list of all cases on an Enum

  • « ReflectionEnum::getCase
  • ReflectionEnum::hasCase »
  • PHP Manual
  • ReflectionEnum
  • Returns a list of all cases on an Enum

ReflectionEnum::getCases

(PHP 8 >= 8.1.0)

ReflectionEnum::getCases — Returns a list of all cases on an Enum

Descrição

public ReflectionEnum::getCases(): array

An Enum may contain zero or more cases. This method retrieves all defined cases, in lexical order (that is, the order they appear in the source code).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of Enum reflection objects, one for each case in the Enum. For a Unit Enum, they will all be instances of ReflectionEnumUnitCase. For a Backed Enum, they will all be instances of ReflectionEnumBackedCase.

Exemplos

Exemplo #1 ReflectionEnum::getCases() example

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

$cases = $rEnum->getCases();

foreach ($cases as $rCase) {
var_dump($rCase->getValue());
}
?>

O exemplo acima produzirá:

enum(Suit::Hearts)
enum(Suit::Diamonds)
enum(Suit::Clubs)
enum(Suit::Spades)

Veja Também

  • Enumerations
  • ReflectionEnum::getCase() - Returns a specific case of an Enum
  • ReflectionEnum::isBacked() - Determines if an Enum is a Backed Enum


Checks for a case on an Enum

  • « ReflectionEnum::getCases
  • ReflectionEnum::isBacked »
  • PHP Manual
  • ReflectionEnum
  • Checks for a case on an Enum

ReflectionEnum::hasCase

(PHP 8 >= 8.1.0)

ReflectionEnum::hasCase — Checks for a case on an Enum

Descrição

public ReflectionEnum::hasCase(string $name): bool

Determines if a given case is defined on an Enum.

Parâmetros

name

The case to check for.

Valor Retornado

true if the case is defined, false if not.

Exemplos

Exemplo #1 ReflectionEnum::hasCase() example

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

var_dump($rEnum->hasCase('Hearts'));
var_dump($rEnum->hasCase('Horseshoes'));
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Veja Também

  • Enumerations
  • ReflectionEnum::getCase() - Returns a specific case of an Enum
  • ReflectionEnum::getCases() - Returns a list of all cases on an Enum


Determines if an Enum is a Backed Enum

  • « ReflectionEnum::hasCase
  • ReflectionEnumUnitCase »
  • PHP Manual
  • ReflectionEnum
  • Determines if an Enum is a Backed Enum

ReflectionEnum::isBacked

(PHP 8 >= 8.1.0)

ReflectionEnum::isBacked — Determines if an Enum is a Backed Enum

Descrição

public ReflectionEnum::isBacked(): bool

A Backed Enum is one that has a native backing scalar equivalent, either a string or an int. Not all Enums are backed.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the Enum has a backing scalar, false if not.

Exemplos

Exemplo #1 ReflectionEnum::isBacked() example

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

enum BackedSuit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

var_dump((new ReflectionEnum(Suit::class))->isBacked());
var_dump((new ReflectionEnum(BackedSuit::class))->isBacked());
?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • Enumerations
  • ReflectionEnum::getBackingType() - Gets the backing type of an Enum, if any


A classe ReflectionEnumUnitCase

(PHP 8 >= 8.1.0)

Introdução

A classe ReflectionEnumUnitCase relata informações sobre um caso de unidade Enum, que não tem um equivalente escalar.

Resumo da classe

class ReflectionEnumUnitCase extends ReflectionClassConstant {
/* Constantes herdadas */
public const int ReflectionClassConstant::IS_PUBLIC;
public const int ReflectionClassConstant::IS_PROTECTED;
public const int ReflectionClassConstant::IS_PRIVATE;
public const int ReflectionClassConstant::IS_FINAL;
/* Propriedades herdadas */
public string $name;
public string $class;
/* Métodos */
public __construct(object|string $class, string $constant)
public getEnum(): ReflectionEnum
public getValue(): UnitEnum
/* Métodos herdados */
public static ReflectionClassConstant::export(mixed $class, string $name, bool $return = ?): string
public ReflectionClassConstant::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClassConstant::getDeclaringClass(): ReflectionClass
public ReflectionClassConstant::getDocComment(): string|false
public ReflectionClassConstant::getModifiers(): int
public ReflectionClassConstant::getName(): string
public ReflectionClassConstant::getValue(): mixed
public ReflectionClassConstant::isEnumCase(): bool
public ReflectionClassConstant::isFinal(): bool
public ReflectionClassConstant::isPrivate(): bool
public ReflectionClassConstant::isProtected(): bool
public ReflectionClassConstant::isPublic(): bool
public ReflectionClassConstant::__toString(): string
}

Veja Também

  • Enumerations
  • ReflectionEnumBackedCase

Índice

  • ReflectionEnumUnitCase::__construct — Instantiates a ReflectionEnumUnitCase object
  • ReflectionEnumUnitCase::getEnum — Gets the reflection of the enum of this case
  • ReflectionEnumUnitCase::getValue — Gets the enum case object described by this reflection object


Instantiates a ReflectionEnumUnitCase object

  • « ReflectionEnumUnitCase
  • ReflectionEnumUnitCase::getEnum »
  • PHP Manual
  • ReflectionEnumUnitCase
  • Instantiates a ReflectionEnumUnitCase object

ReflectionEnumUnitCase::__construct

(PHP 8 >= 8.1.0)

ReflectionEnumUnitCase::__construct — Instantiates a ReflectionEnumUnitCase object

Descrição

public ReflectionEnumUnitCase::__construct(object|string $class, string $constant)

Parâmetros

class

An enum instance or a name.

constant

An enum constant name.


Gets the reflection of the enum of this case

  • « ReflectionEnumUnitCase::__construct
  • ReflectionEnumUnitCase::getValue »
  • PHP Manual
  • ReflectionEnumUnitCase
  • Gets the reflection of the enum of this case

ReflectionEnumUnitCase::getEnum

(PHP 8 >= 8.1.0)

ReflectionEnumUnitCase::getEnum — Gets the reflection of the enum of this case

Descrição

public ReflectionEnumUnitCase::getEnum(): ReflectionEnum

Gets the reflection of the enum of this case.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionEnum instance describing the Enum this case belongs to.

Veja Também

  • Enumerations


Gets the enum case object described by this reflection object

  • « ReflectionEnumUnitCase::getEnum
  • ReflectionEnumBackedCase »
  • PHP Manual
  • ReflectionEnumUnitCase
  • Gets the enum case object described by this reflection object

ReflectionEnumUnitCase::getValue

(PHP 8 >= 8.1.0)

ReflectionEnumUnitCase::getValue — Gets the enum case object described by this reflection object

Descrição

public ReflectionEnumUnitCase::getValue(): UnitEnum

Returns the enum case object described by this reflection object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The enum case object described by this reflection object.

Exemplos

Exemplo #1 ReflectionEnum::getValue() example

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

$rCase = $rEnum->getCase('Diamonds');

var_dump($rCase->getValue());
?>

O exemplo acima produzirá:

enum(Suit::Diamonds)

Veja Também

  • Enumerations


A classe ReflectionEnumBackedCase

(PHP 8 >= 8.1.0)

Introdução

A classe ReflectionEnumBackedCase relata informações sobre um caso Enum respaldado, que tem um equivalente escalar.

Resumo da classe

class ReflectionEnumBackedCase extends ReflectionEnumUnitCase {
/* Constantes herdadas */
public const int ReflectionClassConstant::IS_PUBLIC;
public const int ReflectionClassConstant::IS_PROTECTED;
public const int ReflectionClassConstant::IS_PRIVATE;
public const int ReflectionClassConstant::IS_FINAL;
/* Propriedades herdadas */
public string $name;
public string $class;
/* Métodos */
public __construct(object|string $class, string $constant)
public getBackingValue(): int|string
/* Métodos herdados */
public ReflectionEnumUnitCase::getEnum(): ReflectionEnum
public ReflectionEnumUnitCase::getValue(): UnitEnum
public static ReflectionClassConstant::export(mixed $class, string $name, bool $return = ?): string
public ReflectionClassConstant::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClassConstant::getDeclaringClass(): ReflectionClass
public ReflectionClassConstant::getDocComment(): string|false
public ReflectionClassConstant::getModifiers(): int
public ReflectionClassConstant::getName(): string
public ReflectionClassConstant::getValue(): mixed
public ReflectionClassConstant::isEnumCase(): bool
public ReflectionClassConstant::isFinal(): bool
public ReflectionClassConstant::isPrivate(): bool
public ReflectionClassConstant::isProtected(): bool
public ReflectionClassConstant::isPublic(): bool
public ReflectionClassConstant::__toString(): string
}

Veja Também

  • Enumerations
  • ReflectionEnumUnitCase

Índice

  • ReflectionEnumBackedCase::__construct — Instantiates a ReflectionEnumBackedCase object
  • ReflectionEnumBackedCase::getBackingValue — Gets the scalar value backing this Enum case


Instantiates a ReflectionEnumBackedCase object

  • « ReflectionEnumBackedCase
  • ReflectionEnumBackedCase::getBackingValue »
  • PHP Manual
  • ReflectionEnumBackedCase
  • Instantiates a ReflectionEnumBackedCase object

ReflectionEnumBackedCase::__construct

(PHP 8 >= 8.1.0)

ReflectionEnumBackedCase::__construct — Instantiates a ReflectionEnumBackedCase object

Descrição

public ReflectionEnumBackedCase::__construct(object|string $class, string $constant)

Parâmetros

class

An enum instance or a name.

constant

An enum constant name.


Gets the scalar value backing this Enum case

  • « ReflectionEnumBackedCase::__construct
  • ReflectionZendExtension »
  • PHP Manual
  • ReflectionEnumBackedCase
  • Gets the scalar value backing this Enum case

ReflectionEnumBackedCase::getBackingValue

(PHP 8 >= 8.1.0)

ReflectionEnumBackedCase::getBackingValue — Gets the scalar value backing this Enum case

Descrição

public ReflectionEnumBackedCase::getBackingValue(): int|string

Gets the scalar value backing this Enum case.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The scalar equivalent of this enum case.

Exemplos

Exemplo #1 ReflectionEnum::getBackingValue() example

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$rEnum = new ReflectionEnum(Suit::class);

$rCase = $rEnum->getCase('Spades');

var_dump($rCase->getBackingValue());
?>

O exemplo acima produzirá:

string(1) "S"

Veja Também

  • Enumerations


A classe ReflectionZendExtension

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Introdução

Resumo da classe

class ReflectionZendExtension implements Reflector {
/* Propriedades */
public string $name;
/* Métodos */
public __construct(string $name)
private __clone(): void
public static export(string $name, bool $return = ?): string
public getAuthor(): string
public getCopyright(): string
public getName(): string
public getURL(): string
public getVersion(): string
public __toString(): string
}

Propriedades

name

Nome da extensão. Somente leitura, lança ReflectionException ao tentar escrever.

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionZendExtension::export() foi removido.

Índice

  • ReflectionZendExtension::__clone — Clone handler
  • ReflectionZendExtension::__construct — Constructs a ReflectionZendExtension object
  • ReflectionZendExtension::export — Export
  • ReflectionZendExtension::getAuthor — Gets author
  • ReflectionZendExtension::getCopyright — Gets copyright
  • ReflectionZendExtension::getName — Gets name
  • ReflectionZendExtension::getURL — Gets URL
  • ReflectionZendExtension::getVersion — Gets version
  • ReflectionZendExtension::__toString — To string handler


Clone handler

  • « ReflectionZendExtension
  • ReflectionZendExtension::__construct »
  • PHP Manual
  • ReflectionZendExtension
  • Clone handler

ReflectionZendExtension::__clone

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::__clone — Clone handler

Descrição

private ReflectionZendExtension::__clone(): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Registro de Alterações

Versão | Descrição
8.1.0 | This method is no longer final.


Constructs a ReflectionZendExtension object

  • « ReflectionZendExtension::__clone
  • ReflectionZendExtension::export »
  • PHP Manual
  • ReflectionZendExtension
  • Constructs a ReflectionZendExtension object

ReflectionZendExtension::__construct

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::__construct — Constructs a ReflectionZendExtension object

Descrição

public ReflectionZendExtension::__construct(string $name)

Constructs a new ReflectionZendExtension object.

Parâmetros

name

The extension name.

Erros/Exceções

Throws ReflectionException if the extension to reflect does not exist.


Export

  • « ReflectionZendExtension::__construct
  • ReflectionZendExtension::getAuthor »
  • PHP Manual
  • ReflectionZendExtension
  • Export

ReflectionZendExtension::export

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::export — Export

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static ReflectionZendExtension::export(string $name, bool $return = ?): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

name

return

Valor Retornado

Veja Também

  • ReflectionClassConstant::__toString() - Returns the string representation of the ReflectionClassConstant object


Gets author

  • « ReflectionZendExtension::export
  • ReflectionZendExtension::getCopyright »
  • PHP Manual
  • ReflectionZendExtension
  • Gets author

ReflectionZendExtension::getAuthor

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getAuthor — Gets author

Descrição

public ReflectionZendExtension::getAuthor(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Gets copyright

  • « ReflectionZendExtension::getAuthor
  • ReflectionZendExtension::getName »
  • PHP Manual
  • ReflectionZendExtension
  • Gets copyright

ReflectionZendExtension::getCopyright

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getCopyright — Gets copyright

Descrição

public ReflectionZendExtension::getCopyright(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Gets name

  • « ReflectionZendExtension::getCopyright
  • ReflectionZendExtension::getURL »
  • PHP Manual
  • ReflectionZendExtension
  • Gets name

ReflectionZendExtension::getName

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getName — Gets name

Descrição

public ReflectionZendExtension::getName(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Gets URL

  • « ReflectionZendExtension::getName
  • ReflectionZendExtension::getVersion »
  • PHP Manual
  • ReflectionZendExtension
  • Gets URL

ReflectionZendExtension::getURL

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getURL — Gets URL

Descrição

public ReflectionZendExtension::getURL(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Gets version

  • « ReflectionZendExtension::getURL
  • ReflectionZendExtension::__toString »
  • PHP Manual
  • ReflectionZendExtension
  • Gets version

ReflectionZendExtension::getVersion

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getVersion — Gets version

Descrição

public ReflectionZendExtension::getVersion(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


To string handler

  • « ReflectionZendExtension::getVersion
  • ReflectionExtension »
  • PHP Manual
  • ReflectionZendExtension
  • To string handler

ReflectionZendExtension::__toString

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::__toString — To string handler

Descrição

public ReflectionZendExtension::__toString(): string

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Classe ReflectionExtension

(PHP 5, PHP 7, PHP 8)

Introdução

A classe ReflectionExtension reporta informações sobre uma extensão.

Resumo da classe

class ReflectionExtension implements Reflector {
/* Propriedades */
public string $name;
/* Métodos */
public __construct(string $name)
private __clone(): void
public static export(string $name, string $return = false): string
public getClasses(): array
public getClassNames(): array
public getConstants(): array
public getDependencies(): array
public getFunctions(): array
public getINIEntries(): array
public getName(): string
public getVersion(): ?string
public info(): void
public isPersistent(): bool
public isTemporary(): bool
public __toString(): string
}

Propriedades

name

Nome da extensão, o mesmo que chamar o ReflectionExtension::getName() (método)

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionExtension::export() foi removido.

Índice

  • ReflectionExtension::__clone — Clones
  • ReflectionExtension::__construct — Constructs a ReflectionExtension
  • ReflectionExtension::export — Export
  • ReflectionExtension::getClasses — Gets classes
  • ReflectionExtension::getClassNames — Gets class names
  • ReflectionExtension::getConstants — Gets constants
  • ReflectionExtension::getDependencies — Gets dependencies
  • ReflectionExtension::getFunctions — Gets extension functions
  • ReflectionExtension::getINIEntries — Gets extension ini entries
  • ReflectionExtension::getName — Gets extension name
  • ReflectionExtension::getVersion — Gets extension version
  • ReflectionExtension::info — Imprime informações da extensão
  • ReflectionExtension::isPersistent — Returns whether this extension is persistent
  • ReflectionExtension::isTemporary — Returns whether this extension is temporary
  • ReflectionExtension::__toString — To string


Clones

  • « ReflectionExtension
  • ReflectionExtension::__construct »
  • PHP Manual
  • ReflectionExtension
  • Clones

ReflectionExtension::__clone

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::__clone — Clones

Descrição

private ReflectionExtension::__clone(): void

The clone method prevents an object from being cloned. Reflection objects cannot be cloned.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

No value is returned, if called a fatal error will occur.

Registro de Alterações

Versão | Descrição
8.1.0 | This method is no longer final.

Veja Também

  • ReflectionExtension::__construct() - Constructs a ReflectionExtension
  • Object cloning


Constructs a ReflectionExtension

  • « ReflectionExtension::__clone
  • ReflectionExtension::export »
  • PHP Manual
  • ReflectionExtension
  • Constructs a ReflectionExtension

ReflectionExtension::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::__construct — Constructs a ReflectionExtension

Descrição

public ReflectionExtension::__construct(string $name)

Construct a ReflectionExtension object.

Parâmetros

name

Name of the extension.

Erros/Exceções

Throws ReflectionException if the extension to reflect does not exist.

Exemplos

Exemplo #1 ReflectionExtension example

<?php
$ext = new ReflectionExtension('Reflection');

printf('Extension: %s (version: %s)', $ext->getName(), $ext->getVersion());
?>

O exemplo acima produzirá algo semelhante a:

Extension: Reflection (version: $Revision$)

Veja Também

  • ReflectionExtension::info() - Imprime informações da extensão
  • Constructors


Export

  • « ReflectionExtension::__construct
  • ReflectionExtension::getClasses »
  • PHP Manual
  • ReflectionExtension
  • Export

ReflectionExtension::export

(PHP 5, PHP 7)

ReflectionExtension::export — Export

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static ReflectionExtension::export(string $name, string $return = false): string

Exports a reflected extension. The output format of this function is the same as the CLI argument --re [extension].

Parâmetros

name

A reflexão a ser exportada.

return

Definir como true retornará a exportação, em vez de emiti-la. Definir como false (o padrão) fará o oposto.

Valor Retornado

Se o parâmetro return for definido como true, então a exportação será retornada como uma string, caso contrário, null será retornado.

Veja Também

  • ReflectionExtension::info() - Imprime informações da extensão
  • ReflectionExtension::__toString() - To string


Gets classes

  • « ReflectionExtension::export
  • ReflectionExtension::getClassNames »
  • PHP Manual
  • ReflectionExtension
  • Gets classes

ReflectionExtension::getClasses

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::getClasses — Gets classes

Descrição

public ReflectionExtension::getClasses(): array

Gets a list of classes from an extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of ReflectionClass objects, one for each class within the extension. If no classes are defined, an empty array is returned.

Exemplos

Exemplo #1 ReflectionExtension::getClasses() example

<?php
$ext = new ReflectionExtension('XMLWriter');
var_dump($ext->getClasses());
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  ["XMLWriter"]=>
  object(ReflectionClass)#2 (1) {
    ["name"]=>
    string(9) "XMLWriter"
  }
}

Veja Também

  • ReflectionExtension::getClassNames() - Gets class names


Gets class names

  • « ReflectionExtension::getClasses
  • ReflectionExtension::getConstants »
  • PHP Manual
  • ReflectionExtension
  • Gets class names

ReflectionExtension::getClassNames

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::getClassNames — Gets class names

Descrição

public ReflectionExtension::getClassNames(): array

Gets a listing of class names as defined in the extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of class names, as defined in the extension. If no classes are defined, an empty array is returned.

Exemplos

Exemplo #1 ReflectionExtension::getClassNames() example

<?php
$ext = new ReflectionExtension('XMLWriter');
var_dump($ext->getClassNames());
?>

O exemplo acima produzirá algo semelhante a:

array(1) {
  [0]=>
  string(9) "XMLWriter"
}

Veja Também

  • ReflectionExtension::getClasses() - Gets classes
  • ReflectionExtension::getName() - Gets extension name


Gets constants

  • « ReflectionExtension::getClassNames
  • ReflectionExtension::getDependencies »
  • PHP Manual
  • ReflectionExtension
  • Gets constants

ReflectionExtension::getConstants

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::getConstants — Gets constants

Descrição

public ReflectionExtension::getConstants(): array

Get defined constants from an extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An associative array with constant names as keys.

Exemplos

Exemplo #1 ReflectionExtension::getConstants() example

<?php
$ext = new ReflectionExtension('DOM');

print_r($ext->getConstants());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [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_HTML_DOCUMENT_NODE] => 13
    [XML_DTD_NODE] => 14
    [XML_ELEMENT_DECL_NODE] => 15
    [XML_ATTRIBUTE_DECL_NODE] => 16
    [XML_ENTITY_DECL_NODE] => 17
    [XML_NAMESPACE_DECL_NODE] => 18
    [XML_LOCAL_NAMESPACE] => 18
    [XML_ATTRIBUTE_CDATA] => 1
    [XML_ATTRIBUTE_ID] => 2
    [XML_ATTRIBUTE_IDREF] => 3
    [XML_ATTRIBUTE_IDREFS] => 4
    [XML_ATTRIBUTE_ENTITY] => 6
    [XML_ATTRIBUTE_NMTOKEN] => 7
    [XML_ATTRIBUTE_NMTOKENS] => 8
    [XML_ATTRIBUTE_ENUMERATION] => 9
    [XML_ATTRIBUTE_NOTATION] => 10
    [DOM_PHP_ERR] => 0
    [DOM_INDEX_SIZE_ERR] => 1
    [DOMSTRING_SIZE_ERR] => 2
    [DOM_HIERARCHY_REQUEST_ERR] => 3
    [DOM_WRONG_DOCUMENT_ERR] => 4
    [DOM_INVALID_CHARACTER_ERR] => 5
    [DOM_NO_DATA_ALLOWED_ERR] => 6
    [DOM_NO_MODIFICATION_ALLOWED_ERR] => 7
    [DOM_NOT_FOUND_ERR] => 8
    [DOM_NOT_SUPPORTED_ERR] => 9
    [DOM_INUSE_ATTRIBUTE_ERR] => 10
    [DOM_INVALID_STATE_ERR] => 11
    [DOM_SYNTAX_ERR] => 12
    [DOM_INVALID_MODIFICATION_ERR] => 13
    [DOM_NAMESPACE_ERR] => 14
    [DOM_INVALID_ACCESS_ERR] => 15
    [DOM_VALIDATION_ERR] => 16
)

Veja Também

  • ReflectionExtension::getINIEntries() - Gets extension ini entries


Gets dependencies

  • « ReflectionExtension::getConstants
  • ReflectionExtension::getFunctions »
  • PHP Manual
  • ReflectionExtension
  • Gets dependencies

ReflectionExtension::getDependencies

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

ReflectionExtension::getDependencies — Gets dependencies

Descrição

public ReflectionExtension::getDependencies(): array

Gets dependencies, by listing both required and conflicting dependencies.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An associative array with dependencies as keys and either Required, Optional or Conflicts as the values.

Exemplos

Exemplo #1 ReflectionExtension::getDependencies() example

<?php
$dom = new ReflectionExtension('dom');

print_r($dom->getDependencies());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [libxml] => Required
    [domxml] => Conflicts
)

Veja Também

  • ReflectionClass::getVersion()


Gets extension functions

  • « ReflectionExtension::getDependencies
  • ReflectionExtension::getINIEntries »
  • PHP Manual
  • ReflectionExtension
  • Gets extension functions

ReflectionExtension::getFunctions

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::getFunctions — Gets extension functions

Descrição

public ReflectionExtension::getFunctions(): array

Get defined functions from an extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An associative array of ReflectionFunction objects, for each function defined in the extension with the keys being the function names. If no function are defined, an empty array is returned.

Exemplos

Exemplo #1 ReflectionExtension::getFunctions() example

<?php
$dom = new ReflectionExtension('SimpleXML');

print_r($dom->getFunctions());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [simplexml_load_file] => ReflectionFunction Object
        (
            [name] => simplexml_load_file
        )

    [simplexml_load_string] => ReflectionFunction Object
        (
            [name] => simplexml_load_string
        )

    [simplexml_import_dom] => ReflectionFunction Object
        (
            [name] => simplexml_import_dom
        )

)

Veja Também

  • ReflectionExtension::getClasses() - Gets classes
  • get_extension_funcs() - Retorna um array com os nomes das funções de um módulo


Gets extension ini entries

  • « ReflectionExtension::getFunctions
  • ReflectionExtension::getName »
  • PHP Manual
  • ReflectionExtension
  • Gets extension ini entries

ReflectionExtension::getINIEntries

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::getINIEntries — Gets extension ini entries

Descrição

public ReflectionExtension::getINIEntries(): array

Get the ini entries for an extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An associative array with the ini entries as keys, with their defined values as values.

Exemplos

Exemplo #1 ReflectionExtension::getINIEntries() example

<?php
$ext = new ReflectionExtension('mysql');

print_r($ext->getINIEntries());
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [mysql.allow_persistent] => 1
    [mysql.max_persistent] => -1
    [mysql.max_links] => -1
    [mysql.default_host] =>
    [mysql.default_user] =>
    [mysql.default_password] =>
    [mysql.default_port] =>
    [mysql.default_socket] =>
    [mysql.connect_timeout] => 60
    [mysql.trace_mode] =>
    [mysql.allow_local_infile] => 1
    [mysql.cache_size] => 2000
)

Veja Também

  • ini_get_all() - Gets all configuration options
  • ReflectionExtension::getConstants() - Gets constants


Gets extension name

  • « ReflectionExtension::getINIEntries
  • ReflectionExtension::getVersion »
  • PHP Manual
  • ReflectionExtension
  • Gets extension name

ReflectionExtension::getName

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::getName — Gets extension name

Descrição

public ReflectionExtension::getName(): string

Gets the extensions name.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The extensions name.

Exemplos

Exemplo #1 ReflectionExtension::getName() example

<?php
$ext = new ReflectionExtension('mysqli');
var_dump($ext->getName());
?>

O exemplo acima produzirá algo semelhante a:

string(6) "mysqli"

Veja Também

  • ReflectionExtension::getClassNames() - Gets class names


Gets extension version

  • « ReflectionExtension::getName
  • ReflectionExtension::info »
  • PHP Manual
  • ReflectionExtension
  • Gets extension version

ReflectionExtension::getVersion

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::getVersion — Gets extension version

Descrição

public ReflectionExtension::getVersion(): ?string

Gets the version of the extension.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The version of the extension, or null if the extension has no version.

Exemplos

Exemplo #1 ReflectionExtension::getVersion() example

<?php
$ext = new ReflectionExtension('mysqli');
var_dump($ext->getVersion());
?>

O exemplo acima produzirá algo semelhante a:

string(3) "0.1"

Veja Também

  • ReflectionExtension::info() - Imprime informações da extensão


Imprime informações da extensão

  • « ReflectionExtension::getVersion
  • ReflectionExtension::isPersistent »
  • PHP Manual
  • ReflectionExtension
  • Imprime informações da extensão

ReflectionExtension::info

(PHP 5 >= 5.2.4, PHP 7, PHP 8)

ReflectionExtension::info — Imprime informações da extensão

Descrição

public ReflectionExtension::info(): void

Imprime a saída do trecho "phpinfo()" de uma dada extensão.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Informação sobre a extensão.

Exemplos

Exemplo #1 ReflectionExtension::info() exemplo

<?php
$ext = new ReflectionExtension('mysqli');
$ext->info();
?>

O exemplo acima produzirá algo semelhante a:

mysqli

MysqlI Support => enabled
Client API library version => mysqlnd 5.0.5-dev - 081106 - $Revision: 315808 $
Active Persistent Links => 0
Inactive Persistent Links => 0
Active Links => 0
Persistent cache => enabled
put_hits => 0
put_misses => 0
get_hits => 0
get_misses => 0
size => 2000
free_items => 2000
references => 2

Directive => Local Value => Master Value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_user => no value => no value
mysqli.default_pw => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_socket => no value => no value
mysqli.reconnect => Off => Off
mysqli.allow_local_infile => On => On
mysqli.cache_size => 2000 => 2000

Veja Também

  • ReflectionExtension::getName() - Gets extension name
  • phpinfo() - Outputs information about PHP's configuration


Returns whether this extension is persistent

  • « ReflectionExtension::info
  • ReflectionExtension::isTemporary »
  • PHP Manual
  • ReflectionExtension
  • Returns whether this extension is persistent

ReflectionExtension::isPersistent

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionExtension::isPersistent — Returns whether this extension is persistent

Descrição

public ReflectionExtension::isPersistent(): bool

Check whether the extension is persistent.

An extension is persistent when it is loaded using php.ini. An extension is temporary, not persistent, when it is loaded with dl().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true for extensions loaded by extension, false otherwise.

Veja Também

  • ReflectionExtension::isTemporary() - Returns whether this extension is temporary


Returns whether this extension is temporary

  • « ReflectionExtension::isPersistent
  • ReflectionExtension::__toString »
  • PHP Manual
  • ReflectionExtension
  • Returns whether this extension is temporary

ReflectionExtension::isTemporary

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionExtension::isTemporary — Returns whether this extension is temporary

Descrição

public ReflectionExtension::isTemporary(): bool

Check whether the extension is temporary.

An extension is temporary when it is loaded with dl().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true for extensions loaded by dl(), false otherwise.

Veja Também

  • ReflectionExtension::isPersistent() - Returns whether this extension is persistent


To string

  • « ReflectionExtension::isTemporary
  • ReflectionFunction »
  • PHP Manual
  • ReflectionExtension
  • To string

ReflectionExtension::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::__toString — To string

Descrição

public ReflectionExtension::__toString(): string

Exports a reflected extension and returns it as a string. This is the same as the ReflectionExtension::export() with the return set to true.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the exported extension as a string, in the same way as the ReflectionExtension::export().

Veja Também

  • ReflectionExtension::__construct() - Constructs a ReflectionExtension
  • ReflectionExtension::export() - Export
  • __toString()


Classe ReflectionFunction

(PHP 5, PHP 7, PHP 8)

Introdução

A classe ReflectionFunction reporta informações sobre uma função.

Resumo da classe

class ReflectionFunction extends ReflectionFunctionAbstract {
/* Constantes */
public const int IS_DEPRECATED;
/* Propriedades herdadas */
public string $name;
/* Métodos */
public __construct(Closure|string $function)
public static export(string $name, string $return = ?): string
public getClosure(): Closure
public invoke(mixed ...$args): mixed
public invokeArgs(array $args): mixed
public isAnonymous(): bool
public isDisabled(): bool
public __toString(): string
/* Métodos herdados */
private ReflectionFunctionAbstract::__clone(): void
public ReflectionFunctionAbstract::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClass
public ReflectionFunctionAbstract::getClosureThis(): ?object
public ReflectionFunctionAbstract::getClosureUsedVariables(): array
public ReflectionFunctionAbstract::getDocComment(): string|false
public ReflectionFunctionAbstract::getEndLine(): int|false
public ReflectionFunctionAbstract::getExtension(): ?ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName(): string|false
public ReflectionFunctionAbstract::getFileName(): string|false
public ReflectionFunctionAbstract::getName(): string
public ReflectionFunctionAbstract::getNamespaceName(): string
public ReflectionFunctionAbstract::getNumberOfParameters(): int
public ReflectionFunctionAbstract::getNumberOfRequiredParameters(): int
public ReflectionFunctionAbstract::getParameters(): array
public ReflectionFunctionAbstract::getReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::getShortName(): string
public ReflectionFunctionAbstract::getStartLine(): int|false
public ReflectionFunctionAbstract::getStaticVariables(): array
public ReflectionFunctionAbstract::getTentativeReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::hasReturnType(): bool
public ReflectionFunctionAbstract::hasTentativeReturnType(): bool
public ReflectionFunctionAbstract::inNamespace(): bool
public ReflectionFunctionAbstract::isClosure(): bool
public ReflectionFunctionAbstract::isDeprecated(): bool
public ReflectionFunctionAbstract::isGenerator(): bool
public ReflectionFunctionAbstract::isInternal(): bool
public ReflectionFunctionAbstract::isStatic(): bool
public ReflectionFunctionAbstract::isUserDefined(): bool
public ReflectionFunctionAbstract::isVariadic(): bool
public ReflectionFunctionAbstract::returnsReference(): bool
abstract public ReflectionFunctionAbstract::__toString(): void
}

Constantes pré-definidas

Modificadores ReflectionFunction

ReflectionFunction::IS_DEPRECATED

Indica funções descontinuadas.

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionFunction::export() foi removido.

Índice

  • ReflectionFunction::__construct — Constructs a ReflectionFunction object
  • ReflectionFunction::export — Exports function
  • ReflectionFunction::getClosure — Returns a dynamically created closure for the function
  • ReflectionFunction::invoke — Invokes function
  • ReflectionFunction::invokeArgs — Invokes function args
  • ReflectionFunction::isAnonymous — Checks if a function is anonymous
  • ReflectionFunction::isDisabled — Checks if function is disabled
  • ReflectionFunction::__toString — Returns the string representation of the ReflectionFunction object


Constructs a ReflectionFunction object

  • « ReflectionFunction
  • ReflectionFunction::export »
  • PHP Manual
  • ReflectionFunction
  • Constructs a ReflectionFunction object

ReflectionFunction::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionFunction::__construct — Constructs a ReflectionFunction object

Descrição

public ReflectionFunction::__construct(Closure|string $function)

Constructs a ReflectionFunction object.

Parâmetros

function

The name of the function to reflect or a closure.

Erros/Exceções

A ReflectionException if the function parameter does not contain a valid function.

Exemplos

Exemplo #1 ReflectionFunction::__construct() example

<?php
/**
* A simple counter
*
* @return int
*/
function counter1()
{
static $c = 0;
return ++$c;
}

/**
* Another simple counter
*
* @return int
*/
$counter2 = function()
{
static $d = 0;
return ++$d;

};

function dumpReflectionFunction($func)
{
// Print out basic information
printf(
"\n\n===> The %s function '%s'\n".
" declared in %s\n".
" lines %d to %d\n",
$func->isInternal() ? 'internal' : 'user-defined',
$func->getName(),
$func->getFileName(),
$func->getStartLine(),
$func->getEndline()
);

// Print documentation comment
printf("---> Documentation:\n %s\n", var_export($func->getDocComment(), 1));

// Print static variables if existant
if ($statics = $func->getStaticVariables())
{
printf("---> Static variables: %s\n", var_export($statics, 1));
}
}

// Create an instance of the ReflectionFunction class
dumpReflectionFunction(new ReflectionFunction('counter1'));
dumpReflectionFunction(new ReflectionFunction($counter2));
?>

O exemplo acima produzirá algo semelhante a:

===> The user-defined function 'counter1'
     declared in Z:\reflectcounter.php
     lines 7 to 11
---> Documentation:
 '/**
 * A simple counter
 *
 * @return    int
 */'
---> Static variables: array (
  'c' => 0,
)

===> The user-defined function '{closure}'
     declared in Z:\reflectcounter.php
     lines 18 to 23
---> Documentation:
 '/**
 * Another simple counter
 *
 * @return    int
 */'
---> Static variables: array (
  'd' => 0,
)

Veja Também

  • ReflectionMethod::__construct() - Constructs a ReflectionMethod
  • Constructors


Exports function

  • « ReflectionFunction::__construct
  • ReflectionFunction::getClosure »
  • PHP Manual
  • ReflectionFunction
  • Exports function

ReflectionFunction::export

(PHP 5, PHP 7)

ReflectionFunction::export — Exports function

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static ReflectionFunction::export(string $name, string $return = ?): string

Exports a Reflected function.

Parâmetros

name

A reflexão a ser exportada.

return

Definir como true retornará a exportação, em vez de emiti-la. Definir como false (o padrão) fará o oposto.

Valor Retornado

Se o parâmetro return for definido como true, então a exportação será retornada como uma string, caso contrário, null será retornado.

Veja Também

  • ReflectionFunction::invoke() - Invokes function
  • ReflectionFunction::__toString() - Returns the string representation of the ReflectionFunction object


Returns a dynamically created closure for the function

  • « ReflectionFunction::export
  • ReflectionFunction::invoke »
  • PHP Manual
  • ReflectionFunction
  • Returns a dynamically created closure for the function

ReflectionFunction::getClosure

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionFunction::getClosure — Returns a dynamically created closure for the function

Descrição

public ReflectionFunction::getClosure(): Closure

Get a dynamically created closure for the function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the newly created Closure.

Veja Também

  • First class callable syntax


Invokes function

  • « ReflectionFunction::getClosure
  • ReflectionFunction::invokeArgs »
  • PHP Manual
  • ReflectionFunction
  • Invokes function

ReflectionFunction::invoke

(PHP 5, PHP 7, PHP 8)

ReflectionFunction::invoke — Invokes function

Descrição

public ReflectionFunction::invoke(mixed ...$args): mixed

Invokes a reflected function.

Parâmetros

args

The passed in argument list. It accepts a variable number of arguments which are passed to the function much like call_user_func() is.

Valor Retornado

Returns the result of the invoked function call.

Exemplos

Exemplo #1 ReflectionFunction::invoke() example

<?php
function title($title, $name)
{
return sprintf("%s. %s\r\n", $title, $name);
}

$function = new ReflectionFunction('title');

echo $function->invoke('Dr', 'Phil');
?>

O exemplo acima produzirá:

Dr. Phil

Notas

Nota:

ReflectionFunction::invoke() cannot be used when reference parameters are expected. ReflectionFunction::invokeArgs() has to be used instead (passing references in the argument list).

Veja Também

  • ReflectionFunction::export() - Exports function
  • __invoke()
  • call_user_func() - Call the callback given by the first parameter


Invokes function args

  • « ReflectionFunction::invoke
  • ReflectionFunction::isAnonymous »
  • PHP Manual
  • ReflectionFunction
  • Invokes function args

ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionFunction::invokeArgs — Invokes function args

Descrição

public ReflectionFunction::invokeArgs(array $args): mixed

Invokes the function and pass its arguments as array.

Parâmetros

args

The passed arguments to the function as an array, much like call_user_func_array() works.

Valor Retornado

Returns the result of the invoked function

Registro de Alterações

Versão | Descrição
8.0.0 | args keys will now be interpreted as parameter names, instead of being silently ignored.

Exemplos

Exemplo #1 ReflectionFunction::invokeArgs() example

<?php
function title($title, $name)
{
return sprintf("%s. %s\r\n", $title, $name);
}

$function = new ReflectionFunction('title');

echo $function->invokeArgs(array('Dr', 'Phil'));
?>

O exemplo acima produzirá:

Dr. Phil

Exemplo #2 ReflectionFunction::invokeArgs() with references example

<?php
function get_false_conditions(array $conditions, array &$false_conditions)
{
foreach ($conditions as $condition) {
if (!$condition) {
$false_conditions[] = $condition;
}
}
}

$function_ref = new ReflectionFunction('get_false_conditions');

$conditions = array(true, false, -1, 0, 1);
$false_conditions = array();

$function_ref->invokeArgs(array($conditions, &$false_conditions));

var_dump($false_conditions);
?>

O exemplo acima produzirá:

array(2) {
  [0]=>
  bool(false)
  [1]=>
  int(0)
}

Notas

Nota:

Se a função tiver argumentos que precisam ser referências, então eles devem ser referências na lista de argumentos passada.

Veja Também

  • ReflectionFunction::invoke() - Invokes function
  • ReflectionFunctionAbstract::getNumberOfParameters() - Gets number of parameters
  • __invoke()
  • call_user_func_array() - Call a callback with an array of parameters


Checks if a function is anonymous

  • « ReflectionFunction::invokeArgs
  • ReflectionFunction::isDisabled »
  • PHP Manual
  • ReflectionFunction
  • Checks if a function is anonymous

ReflectionFunction::isAnonymous

(PHP 8 >= 8.2.0)

ReflectionFunction::isAnonymous — Checks if a function is anonymous

Descrição

public ReflectionFunction::isAnonymous(): bool

Checks if a function is anonymous.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the function is anonymous, otherwise false.

Exemplos

Exemplo #1 ReflectionFunction::isAnonymous() example

<?php

$rf = new ReflectionFunction(function() {});
var_dump($rf->isAnonymous());

$rf = new ReflectionFunction('strlen');
var_dump($rf->isAnonymous());
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Veja Também

  • Anonymous functions


Checks if function is disabled

  • « ReflectionFunction::isAnonymous
  • ReflectionFunction::__toString »
  • PHP Manual
  • ReflectionFunction
  • Checks if function is disabled

ReflectionFunction::isDisabled

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunction::isDisabled — Checks if function is disabled

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public ReflectionFunction::isDisabled(): bool

Checks if the function is disabled, via the disable_functions directive.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if it's disable, otherwise false

Veja Também

  • ReflectionFunctionAbstract::isUserDefined() - Checks if user defined
  • disable_functions directive


Returns the string representation of the ReflectionFunction object

  • « ReflectionFunction::isDisabled
  • ReflectionFunctionAbstract »
  • PHP Manual
  • ReflectionFunction
  • Returns the string representation of the ReflectionFunction object

ReflectionFunction::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionFunction::__toString — Returns the string representation of the ReflectionFunction object

Descrição

public ReflectionFunction::__toString(): string

Get a human-readable description of the function, its parameters and return values.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The string.

Exemplos

Exemplo #1 ReflectionFunction::__toString() example

<?php
function title($title, $name)
{
return sprintf("%s. %s\r\n", $title, $name);
}

echo new ReflectionFunction('title');
?>

O exemplo acima produzirá algo semelhante a:

Function [ <user> function title ] {
  @@ Command line code 1 - 1

  - Parameters [2] {
    Parameter #0 [ <required> $title ]
    Parameter #1 [ <required> $name ]
  }
}

Veja Também

  • ReflectionFunction::export() - Exports function
  • __toString()


A classe ReflectionFunctionAbstract

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Introdução

Uma classe pai para ReflectionFunction, leia sua descrição para detalhes.

Resumo da classe

abstract class ReflectionFunctionAbstract implements Reflector {
/* Propriedades */
public string $name;
/* Métodos */
private __clone(): void
public getAttributes(?string $name = null, int $flags = 0): array
public getClosureScopeClass(): ?ReflectionClass
public getClosureThis(): ?object
public getClosureUsedVariables(): array
public getDocComment(): string|false
public getEndLine(): int|false
public getExtension(): ?ReflectionExtension
public getExtensionName(): string|false
public getFileName(): string|false
public getName(): string
public getNamespaceName(): string
public getNumberOfParameters(): int
public getNumberOfRequiredParameters(): int
public getParameters(): array
public getReturnType(): ?ReflectionType
public getShortName(): string
public getStartLine(): int|false
public getStaticVariables(): array
public getTentativeReturnType(): ?ReflectionType
public hasReturnType(): bool
public hasTentativeReturnType(): bool
public inNamespace(): bool
public isClosure(): bool
public isDeprecated(): bool
public isGenerator(): bool
public isInternal(): bool
public isStatic(): bool
public isUserDefined(): bool
public isVariadic(): bool
public returnsReference(): bool
abstract public __toString(): void
}

Propriedades

name

Nome da função. Somente leitura, lança ReflectionException em tentativa de escrita.

Índice

  • ReflectionFunctionAbstract::__clone — Clones function
  • ReflectionFunctionAbstract::getAttributes — Gets Attributes
  • ReflectionFunctionAbstract::getClosureScopeClass — Returns the scope class associated with the closure
  • ReflectionFunctionAbstract::getClosureThis — Returns this pointer bound to closure
  • ReflectionFunctionAbstract::getClosureUsedVariables — Returns an array of the used variables in the Closure
  • ReflectionFunctionAbstract::getDocComment — Gets doc comment
  • ReflectionFunctionAbstract::getEndLine — Gets end line number
  • ReflectionFunctionAbstract::getExtension — Gets extension info
  • ReflectionFunctionAbstract::getExtensionName — Gets extension name
  • ReflectionFunctionAbstract::getFileName — Gets file name
  • ReflectionFunctionAbstract::getName — Gets function name
  • ReflectionFunctionAbstract::getNamespaceName — Gets namespace name
  • ReflectionFunctionAbstract::getNumberOfParameters — Gets number of parameters
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters — Gets number of required parameters
  • ReflectionFunctionAbstract::getParameters — Gets parameters
  • ReflectionFunctionAbstract::getReturnType — Gets the specified return type of a function
  • ReflectionFunctionAbstract::getShortName — Gets function short name
  • ReflectionFunctionAbstract::getStartLine — Gets starting line number
  • ReflectionFunctionAbstract::getStaticVariables — Gets static variables
  • ReflectionFunctionAbstract::getTentativeReturnType — Returns the tentative return type associated with the function
  • ReflectionFunctionAbstract::hasReturnType — Checks if the function has a specified return type
  • ReflectionFunctionAbstract::hasTentativeReturnType — Returns whether the function has a tentative return type
  • ReflectionFunctionAbstract::inNamespace — Checks if function in namespace
  • ReflectionFunctionAbstract::isClosure — Checks if closure
  • ReflectionFunctionAbstract::isDeprecated — Checks if deprecated
  • ReflectionFunctionAbstract::isGenerator — Returns whether this function is a generator
  • ReflectionFunctionAbstract::isInternal — Checks if is internal
  • ReflectionFunctionAbstract::isStatic — Checks if the function is static
  • ReflectionFunctionAbstract::isUserDefined — Checks if user defined
  • ReflectionFunctionAbstract::isVariadic — Checks if the function is variadic
  • ReflectionFunctionAbstract::returnsReference — Checks if returns reference
  • ReflectionFunctionAbstract::__toString — Returns the string representation of the ReflectionFunctionAbstract object


Clones function

  • « ReflectionFunctionAbstract
  • ReflectionFunctionAbstract::getAttributes »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Clones function

ReflectionFunctionAbstract::__clone

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::__clone — Clones function

Descrição

private ReflectionFunctionAbstract::__clone(): void

Clones a function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.1.0 | This method is no longer final.

Veja Também

  • Object cloning


Gets Attributes

  • « ReflectionFunctionAbstract::__clone
  • ReflectionFunctionAbstract::getClosureScopeClass »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets Attributes

ReflectionFunctionAbstract::getAttributes

(PHP 8)

ReflectionFunctionAbstract::getAttributes — Gets Attributes

Descrição

public ReflectionFunctionAbstract::getAttributes(?string $name = null, int $flags = 0): array

Returns all attributes declared on this function or method as an array of ReflectionAttribute.

Parâmetros

name

Filtra os resultados para incluir apenas instâncias de ReflectionAttribute para atributos correspondentes a este nome de classe.

flags

Flags para determinar como filtrar os resultados, se name for fornecido.

O padrão é 0, que retornará apenas os resultados para atributos que são da classe name.

A única outra opção disponível é usar ReflectionAttribute::IS_INSTANCEOF, que usará instanceof para filtragem.

Valor Retornado

Array of attributes, as a ReflectionAttribute object.

Exemplos

Exemplo #1 Basic usage with a class method

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Factory {
#[Fruit]
#[Red]
public function makeApple(): string
{
return 'apple';
}
}

$method = new ReflectionMethod('Factory', 'makeApple');
$attributes = $method->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
    [1] => Red
)

Exemplo #2 Basic usage with a function

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

#[Fruit]
#[Red]
function makeApple(): string
{
return 'apple';
}

$function = new ReflectionFunction('makeApple');
$attributes = $function->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
    [1] => Red
)

Exemplo #3 Filtering results by class name

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

#[Fruit]
#[Red]
function makeApple(): string
{
return 'apple';
}

$function = new ReflectionFunction('makeApple');
$attributes = $function->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
)

Exemplo #4 Filtering results by class name, with inheritance

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

#[Fruit]
#[Red]
function makeApple(): string
{
return 'apple';
}

$function = new ReflectionFunction('makeApple');
$attributes = $function->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Red
)

Veja Também

  • ReflectionClass::getAttributes() - Gets Attributes
  • ReflectionClassConstant::getAttributes() - Gets Attributes
  • ReflectionParameter::getAttributes() - Gets Attributes
  • ReflectionProperty::getAttributes() - Gets Attributes


Returns the scope class associated with the closure

  • « ReflectionFunctionAbstract::getAttributes
  • ReflectionFunctionAbstract::getClosureThis »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns the scope class associated with the closure

ReflectionFunctionAbstract::getClosureScopeClass

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getClosureScopeClass — Returns the scope class associated with the closure

Descrição

public ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClass

Get the class enclosing the closure declaration.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the class, or null if the function is not a closure or if there was no enclosing class.


Returns this pointer bound to closure

  • « ReflectionFunctionAbstract::getClosureScopeClass
  • ReflectionFunctionAbstract::getClosureUsedVariables »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns this pointer bound to closure

ReflectionFunctionAbstract::getClosureThis

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getClosureThis — Returns this pointer bound to closure

Descrição

public ReflectionFunctionAbstract::getClosureThis(): ?object

If the function is a non-static closure, get the object bound to $this inside the closure.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns $this pointer. Returns null in case of an error.


Returns an array of the used variables in the Closure

  • « ReflectionFunctionAbstract::getClosureThis
  • ReflectionFunctionAbstract::getDocComment »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns an array of the used variables in the Closure

ReflectionFunctionAbstract::getClosureUsedVariables

(PHP 8 >= 8.1.0)

ReflectionFunctionAbstract::getClosureUsedVariables — Returns an array of the used variables in the Closure

Descrição

public ReflectionFunctionAbstract::getClosureUsedVariables(): array

Returns an array of the used variables in the Closure.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of the used variables in the Closure.

Exemplos

Exemplo #1 ReflectionFunctionAbstract::getClosureUsedVariables() example

<?php

$one = 1;
$two = 2;

$function = function() use ($one, $two) {
static $three = 3;
};

$reflector = new ReflectionFunction($function);

var_dump($reflector->getClosureUsedVariables());
?>

O exemplo acima produzirá algo semelhante a:

array(2) {
  ["one"]=>
  int(1)
  ["two"]=>
  int(2)
}

Veja Também

  • ReflectionFunctionAbstract::getClosureScopeClass() - Returns the scope class associated with the closure
  • ReflectionFunctionAbstract::getClosureThis() - Returns this pointer bound to closure


Gets doc comment

  • « ReflectionFunctionAbstract::getClosureUsedVariables
  • ReflectionFunctionAbstract::getEndLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets doc comment

ReflectionFunctionAbstract::getDocComment

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getDocComment — Gets doc comment

Descrição

public ReflectionFunctionAbstract::getDocComment(): string|false

Get a Doc comment from a function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The doc comment if it exists, otherwise false

Veja Também

  • ReflectionFunctionAbstract::getStartLine() - Gets starting line number


Gets end line number

  • « ReflectionFunctionAbstract::getDocComment
  • ReflectionFunctionAbstract::getExtension »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets end line number

ReflectionFunctionAbstract::getEndLine

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getEndLine — Gets end line number

Descrição

public ReflectionFunctionAbstract::getEndLine(): int|false

Get the ending line number.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The ending line number of the user defined function, or false if unknown.

Veja Também

  • ReflectionFunctionAbstract::getStartLine() - Gets starting line number


Gets extension info

  • « ReflectionFunctionAbstract::getEndLine
  • ReflectionFunctionAbstract::getExtensionName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets extension info

ReflectionFunctionAbstract::getExtension

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getExtension — Gets extension info

Descrição

public ReflectionFunctionAbstract::getExtension(): ?ReflectionExtension

Get the extension information of a function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The extension information, as a ReflectionExtension object, or null for user-defined functions.

Veja Também

  • ReflectionFunctionAbstract::getExtensionName() - Gets extension name


Gets extension name

  • « ReflectionFunctionAbstract::getExtension
  • ReflectionFunctionAbstract::getFileName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets extension name

ReflectionFunctionAbstract::getExtensionName

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getExtensionName — Gets extension name

Descrição

public ReflectionFunctionAbstract::getExtensionName(): string|false

Get the extensions name.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The name of the extension which defined the function, or false for user-defined functions.

Veja Também

  • ReflectionFunctionAbstract::getExtension() - Gets extension info


Gets file name

  • « ReflectionFunctionAbstract::getExtensionName
  • ReflectionFunctionAbstract::getName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets file name

ReflectionFunctionAbstract::getFileName

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getFileName — Gets file name

Descrição

public ReflectionFunctionAbstract::getFileName(): string|false

Gets the file name from a user-defined function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the filename of the file in which the function has been defined. If the class is defined in the PHP core or in a PHP extension, false is returned.

Veja Também

  • ReflectionFunctionAbstract::getNamespaceName() - Gets namespace name


Gets function name

  • « ReflectionFunctionAbstract::getFileName
  • ReflectionFunctionAbstract::getNamespaceName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets function name

ReflectionFunctionAbstract::getName

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getName — Gets function name

Descrição

public ReflectionFunctionAbstract::getName(): string

Get the name of the function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The name of the function.

Veja Também

  • ReflectionFunctionAbstract::getExtensionName() - Gets extension name
  • ReflectionFunctionAbstract::isUserDefined() - Checks if user defined


Gets namespace name

  • « ReflectionFunctionAbstract::getName
  • ReflectionFunctionAbstract::getNumberOfParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets namespace name

ReflectionFunctionAbstract::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getNamespaceName — Gets namespace name

Descrição

public ReflectionFunctionAbstract::getNamespaceName(): string

Get the namespace name where the class is defined.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The namespace name.

Veja Também

  • ReflectionFunctionAbstract::getFileName() - Gets file name
  • namespaces


Gets number of parameters

  • « ReflectionFunctionAbstract::getNamespaceName
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets number of parameters

ReflectionFunctionAbstract::getNumberOfParameters

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getNumberOfParameters — Gets number of parameters

Descrição

public ReflectionFunctionAbstract::getNumberOfParameters(): int

Get the number of parameters that a function defines, both optional and required.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of parameters.

Veja Também

  • ReflectionFunctionAbstract::getNumberOfRequiredParameters() - Gets number of required parameters
  • func_num_args() - Returns the number of arguments passed to the function


Gets number of required parameters

  • « ReflectionFunctionAbstract::getNumberOfParameters
  • ReflectionFunctionAbstract::getParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets number of required parameters

ReflectionFunctionAbstract::getNumberOfRequiredParameters

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getNumberOfRequiredParameters — Gets number of required parameters

Descrição

public ReflectionFunctionAbstract::getNumberOfRequiredParameters(): int

Get the number of required parameters that a function defines.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of required parameters.

Veja Também

  • ReflectionFunctionAbstract::getNumberOfParameters() - Gets number of parameters


Gets parameters

  • « ReflectionFunctionAbstract::getNumberOfRequiredParameters
  • ReflectionFunctionAbstract::getReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets parameters

ReflectionFunctionAbstract::getParameters

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getParameters — Gets parameters

Descrição

public ReflectionFunctionAbstract::getParameters(): array

Get the parameters as an array of ReflectionParameter, in the order in which they are defined in the source.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The parameters, as a ReflectionParameter object.

Veja Também

  • ReflectionFunctionAbstract::getNumberOfParameters() - Gets number of parameters
  • func_get_args() - Returns an array comprising a function's argument list


Gets the specified return type of a function

  • « ReflectionFunctionAbstract::getParameters
  • ReflectionFunctionAbstract::getShortName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets the specified return type of a function

ReflectionFunctionAbstract::getReturnType

(PHP 7, PHP 8)

ReflectionFunctionAbstract::getReturnType — Gets the specified return type of a function

Descrição

public ReflectionFunctionAbstract::getReturnType(): ?ReflectionType

Gets the specified return type of a reflected function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a ReflectionType object if a return type is specified, null otherwise.

Exemplos

Exemplo #1 ReflectionFunctionAbstract::getReturnType() example

<?php

function to_int($param) : int {
return (int) $param;
}

$reflection1 = new ReflectionFunction('to_int');
echo $reflection1->getReturnType();

O exemplo acima produzirá:

int

Exemplo #2 Usage on built-in functions

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->getReturnType());

O exemplo acima produzirá:

null

This is because many internal functions do not have types specified for their parameters or return values. It is therefore best to avoid using this method on built-in functions.

Veja Também

  • ReflectionFunctionAbstract::hasReturnType() - Checks if the function has a specified return type
  • ReflectionType::__toString() - To string


Gets function short name

  • « ReflectionFunctionAbstract::getReturnType
  • ReflectionFunctionAbstract::getStartLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets function short name

ReflectionFunctionAbstract::getShortName

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getShortName — Gets function short name

Descrição

public ReflectionFunctionAbstract::getShortName(): string

Get the short name of the function (without the namespace part).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The short name of the function.

Veja Também

  • ReflectionFunctionAbstract::getNamespaceName() - Gets namespace name
  • namespaces


Gets starting line number

  • « ReflectionFunctionAbstract::getShortName
  • ReflectionFunctionAbstract::getStaticVariables »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets starting line number

ReflectionFunctionAbstract::getStartLine

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getStartLine — Gets starting line number

Descrição

public ReflectionFunctionAbstract::getStartLine(): int|false

Gets the starting line number of the function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The starting line number, or false if unknown.

Veja Também

  • ReflectionFunctionAbstract::getEndLine() - Gets end line number


Gets static variables

  • « ReflectionFunctionAbstract::getStartLine
  • ReflectionFunctionAbstract::getTentativeReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets static variables

ReflectionFunctionAbstract::getStaticVariables

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getStaticVariables — Gets static variables

Descrição

public ReflectionFunctionAbstract::getStaticVariables(): array

Get the static variables.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of static variables.

Veja Também

  • ReflectionFunctionAbstract::getParameters() - Gets parameters


Returns the tentative return type associated with the function

  • « ReflectionFunctionAbstract::getStaticVariables
  • ReflectionFunctionAbstract::hasReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns the tentative return type associated with the function

ReflectionFunctionAbstract::getTentativeReturnType

(PHP 8 >= 8.1.0)

ReflectionFunctionAbstract::getTentativeReturnType — Returns the tentative return type associated with the function

Descrição

public ReflectionFunctionAbstract::getTentativeReturnType(): ?ReflectionType

Returns the tentative return type associated with the function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a ReflectionType object if a tentative return type is specified, null otherwise.

Exemplos

Exemplo #1 ReflectionFunctionAbstract::getTentativeReturnType() example

<?php

$method = new ReflectionMethod(\ArrayAccess::class, 'offsetGet');
var_dump($method->getTentativeReturnType());

O exemplo acima produzirá algo semelhante a:

object(ReflectionNamedType)#2 (0) {
}

Veja Também

  • ReflectionFunctionAbstract::getReturnType() - Gets the specified return type of a function
  • ReflectionFunctionAbstract::hasTentativeReturnType() - Returns whether the function has a tentative return type
  • Return Type Compatibility with Internal Classes


Checks if the function has a specified return type

  • « ReflectionFunctionAbstract::getTentativeReturnType
  • ReflectionFunctionAbstract::hasTentativeReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if the function has a specified return type

ReflectionFunctionAbstract::hasReturnType

(PHP 7, PHP 8)

ReflectionFunctionAbstract::hasReturnType — Checks if the function has a specified return type

Descrição

public ReflectionFunctionAbstract::hasReturnType(): bool

Checks whether the reflected function has a return type specified.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the function is a specified return type, otherwise false.

Exemplos

Exemplo #1 ReflectionFunctionAbstract::hasReturnType() example

<?php

function to_int($param) : int {
return (int) $param;
}

$reflection1 = new ReflectionFunction('to_int');
var_dump($reflection1->hasReturnType());

O exemplo acima produzirá:

bool(true)

Exemplo #2 Usage on built-in functions

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->hasReturnType());

O exemplo acima produzirá:

bool(false)

This is because many internal functions do not have types specified for their parameters or return values. It is therefore best to avoid using this method on built-in functions.

Veja Também

  • ReflectionFunctionAbstract::getReturnType() - Gets the specified return type of a function


Returns whether the function has a tentative return type

  • « ReflectionFunctionAbstract::hasReturnType
  • ReflectionFunctionAbstract::inNamespace »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns whether the function has a tentative return type

ReflectionFunctionAbstract::hasTentativeReturnType

(PHP 8 >= 8.1.0)

ReflectionFunctionAbstract::hasTentativeReturnType — Returns whether the function has a tentative return type

Descrição

public ReflectionFunctionAbstract::hasTentativeReturnType(): bool

Returns whether the function has a tentative return type.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the function has a tentative return type, otherwise false.

Exemplos

Exemplo #1 ReflectionFunctionAbstract::hasTentativeReturnType() example

<?php

$method = new ReflectionMethod(\ArrayAccess::class, 'offsetGet');
var_dump($method->hasTentativeReturnType());

O exemplo acima produzirá:

bool(true)

Veja Também

  • ReflectionFunctionAbstract::getTentativeReturnType() - Returns the tentative return type associated with the function
  • ReflectionFunctionAbstract::hasReturnType() - Checks if the function has a specified return type
  • Return Type Compatibility with Internal Classes


Checks if function in namespace

  • « ReflectionFunctionAbstract::hasTentativeReturnType
  • ReflectionFunctionAbstract::isClosure »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if function in namespace

ReflectionFunctionAbstract::inNamespace

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::inNamespace — Checks if function in namespace

Descrição

public ReflectionFunctionAbstract::inNamespace(): bool

Checks whether a function is defined in a namespace.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if it's in a namespace, otherwise false

Veja Também

  • ReflectionFunctionAbstract::getNamespaceName() - Gets namespace name
  • namespaces


Checks if closure

  • « ReflectionFunctionAbstract::inNamespace
  • ReflectionFunctionAbstract::isDeprecated »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if closure

ReflectionFunctionAbstract::isClosure

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isClosure — Checks if closure

Descrição

public ReflectionFunctionAbstract::isClosure(): bool

Checks whether the reflected function is a Closure.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the function is a Closure, otherwise false.

Exemplos

Exemplo #1 ReflectionFunctionAbstract::isClosure() example

<?php
// Non-closure
$function1 = 'str_replace';
$reflection1 = new ReflectionFunction($function1);
var_dump($reflection1->isClosure());

// Closure
$function2 = function () {};
$reflection2 = new ReflectionFunction($function2);
var_dump($reflection2->isClosure());
?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • ReflectionFunctionAbstract::isGenerator() - Returns whether this function is a generator


Checks if deprecated

  • « ReflectionFunctionAbstract::isClosure
  • ReflectionFunctionAbstract::isGenerator »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if deprecated

ReflectionFunctionAbstract::isDeprecated

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isDeprecated — Checks if deprecated

Descrição

public ReflectionFunctionAbstract::isDeprecated(): bool

Checks whether the function is deprecated.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if it's deprecated, otherwise false

Exemplos

Exemplo #1 ReflectionFunctionAbstract::isDeprecated() example

<?php
$rf = new ReflectionFunction('ereg');
var_dump($rf->isDeprecated());
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • ReflectionFunctionAbstract::getDocComment() - Gets doc comment


Returns whether this function is a generator

  • « ReflectionFunctionAbstract::isDeprecated
  • ReflectionFunctionAbstract::isInternal »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns whether this function is a generator

ReflectionFunctionAbstract::isGenerator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isGenerator — Returns whether this function is a generator

Descrição

public ReflectionFunctionAbstract::isGenerator(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the function is generator, false if it is not or null on failure.


Checks if is internal

  • « ReflectionFunctionAbstract::isGenerator
  • ReflectionFunctionAbstract::isStatic »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if is internal

ReflectionFunctionAbstract::isInternal

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isInternal — Checks if is internal

Descrição

public ReflectionFunctionAbstract::isInternal(): bool

Checks whether the function is internal, as opposed to user-defined.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if it's internal, otherwise false

Veja Também

  • ReflectionFunctionAbstract::isUserDefined() - Checks if user defined


Checks if the function is static

  • « ReflectionFunctionAbstract::isInternal
  • ReflectionFunctionAbstract::isUserDefined »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if the function is static

ReflectionFunctionAbstract::isStatic

(PHP 5, PHP 7, PHP 8)

ReflectionFunctionAbstract::isStatic — Checks if the function is static

Descrição

public ReflectionFunctionAbstract::isStatic(): bool

Checks if the function is static.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the function is static, otherwise false

Registro de Alterações

Versão | Descrição
8.1.0 | This method has been pulled up. Previously, it was only defined in ReflectionMethod.

Veja Também

  • ReflectionMethod::isFinal() - Checks if method is final


Checks if user defined

  • « ReflectionFunctionAbstract::isStatic
  • ReflectionFunctionAbstract::isVariadic »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if user defined

ReflectionFunctionAbstract::isUserDefined

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isUserDefined — Checks if user defined

Descrição

public ReflectionFunctionAbstract::isUserDefined(): bool

Checks whether the function is user-defined, as opposed to internal.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if it's user-defined, otherwise false;

Veja Também

  • ReflectionFunctionAbstract::isInternal() - Checks if is internal


Checks if the function is variadic

  • « ReflectionFunctionAbstract::isUserDefined
  • ReflectionFunctionAbstract::returnsReference »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if the function is variadic

ReflectionFunctionAbstract::isVariadic

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isVariadic — Checks if the function is variadic

Descrição

public ReflectionFunctionAbstract::isVariadic(): bool

Checks if the function is variadic.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the function is variadic, otherwise false.


Checks if returns reference

  • « ReflectionFunctionAbstract::isVariadic
  • ReflectionFunctionAbstract::__toString »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if returns reference

ReflectionFunctionAbstract::returnsReference

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::returnsReference — Checks if returns reference

Descrição

public ReflectionFunctionAbstract::returnsReference(): bool

Checks whether the function returns a reference.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if it returns a reference, otherwise false

Veja Também

  • ReflectionFunctionAbstract::isClosure() - Checks if closure


Returns the string representation of the ReflectionFunctionAbstract object

  • « ReflectionFunctionAbstract::returnsReference
  • ReflectionMethod »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns the string representation of the ReflectionFunctionAbstract object

ReflectionFunctionAbstract::__toString

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::__toString — Returns the string representation of the ReflectionFunctionAbstract object

Descrição

abstract public ReflectionFunctionAbstract::__toString(): void

Get a human-readable description of the function, its parameters and return values.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The string.

Veja Também

  • ReflectionFunction::__toString() - Returns the string representation of the ReflectionFunction object
  • ReflectionMethod::__toString() - Returns the string representation of the Reflection method object
  • __toString()


A classe ReflectionMethod

(PHP 5, PHP 7, PHP 8)

Introdução

A classe ReflectionMethod relata informações sobre um método.

Resumo da classe

class ReflectionMethod extends ReflectionFunctionAbstract {
/* Constantes */
public const int IS_STATIC;
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
public const int IS_ABSTRACT;
public const int IS_FINAL;
/* Propriedades */
public string $class;
/* Propriedades herdadas */
public string $name;
/* Métodos */
public __construct(object|string $objectOrMethod, string $method)
public __construct(string $classMethod)
public static createFromMethodName(string $method): static
public static export(string $class, string $name, bool $return = false): string
public getClosure(?object $object = null): Closure
public getDeclaringClass(): ReflectionClass
public getModifiers(): int
public getPrototype(): ReflectionMethod
public hasPrototype(): bool
public invoke(?object $object, mixed ...$args): mixed
public invokeArgs(?object $object, array $args): mixed
public isAbstract(): bool
public isConstructor(): bool
public isDestructor(): bool
public isFinal(): bool
public isPrivate(): bool
public isProtected(): bool
public isPublic(): bool
public setAccessible(bool $accessible): void
public __toString(): string
/* Métodos herdados */
private ReflectionFunctionAbstract::__clone(): void
public ReflectionFunctionAbstract::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClass
public ReflectionFunctionAbstract::getClosureThis(): ?object
public ReflectionFunctionAbstract::getClosureUsedVariables(): array
public ReflectionFunctionAbstract::getDocComment(): string|false
public ReflectionFunctionAbstract::getEndLine(): int|false
public ReflectionFunctionAbstract::getExtension(): ?ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName(): string|false
public ReflectionFunctionAbstract::getFileName(): string|false
public ReflectionFunctionAbstract::getName(): string
public ReflectionFunctionAbstract::getNamespaceName(): string
public ReflectionFunctionAbstract::getNumberOfParameters(): int
public ReflectionFunctionAbstract::getNumberOfRequiredParameters(): int
public ReflectionFunctionAbstract::getParameters(): array
public ReflectionFunctionAbstract::getReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::getShortName(): string
public ReflectionFunctionAbstract::getStartLine(): int|false
public ReflectionFunctionAbstract::getStaticVariables(): array
public ReflectionFunctionAbstract::getTentativeReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::hasReturnType(): bool
public ReflectionFunctionAbstract::hasTentativeReturnType(): bool
public ReflectionFunctionAbstract::inNamespace(): bool
public ReflectionFunctionAbstract::isClosure(): bool
public ReflectionFunctionAbstract::isDeprecated(): bool
public ReflectionFunctionAbstract::isGenerator(): bool
public ReflectionFunctionAbstract::isInternal(): bool
public ReflectionFunctionAbstract::isStatic(): bool
public ReflectionFunctionAbstract::isUserDefined(): bool
public ReflectionFunctionAbstract::isVariadic(): bool
public ReflectionFunctionAbstract::returnsReference(): bool
abstract public ReflectionFunctionAbstract::__toString(): void
}

Propriedades

name

Nome do método

class

Nome da classe

Constantes pré-definidas

Modificadores de ReflectionMethod

ReflectionMethod::IS_STATIC

Indica que o método é estático. Antes do PHP 7.4.0, o valor era 1.

ReflectionMethod::IS_PUBLIC

Indica que o método é público. Antes do PHP 7.4.0, o valor era 256.

ReflectionMethod::IS_PROTECTED

Indica que o método é protegido. Antes do PHP 7.4.0, o valor era 512.

ReflectionMethod::IS_PRIVATE

Indica que o método é privado. Antes do PHP 7.4.0, o valor era 1024.

ReflectionMethod::IS_ABSTRACT

Indica que o método é abstrato. Antes do PHP 7.4.0, o valor era 2.

ReflectionMethod::IS_FINAL

Indica que o método é final. Antes do PHP 7.4.0, o valor era 4.

Nota:

Os valores dessas constantes podem mudar entre as versões do PHP. É recomendado sempre utilizar as constantes e não depender diretamente dos valores.

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionMethod::export() foi removido.

Índice

  • ReflectionMethod::__construct — Constructs a ReflectionMethod
  • ReflectionMethod::createFromMethodName — Creates a new ReflectionMethod
  • ReflectionMethod::export — Export a reflection method
  • ReflectionMethod::getClosure — Returns a dynamically created closure for the method
  • ReflectionMethod::getDeclaringClass — Gets declaring class for the reflected method
  • ReflectionMethod::getModifiers — Gets the method modifiers
  • ReflectionMethod::getPrototype — Gets the method prototype (if there is one)
  • ReflectionMethod::hasPrototype — Returns whether a method has a prototype
  • ReflectionMethod::invoke — Invoke
  • ReflectionMethod::invokeArgs — Invoke args
  • ReflectionMethod::isAbstract — Checks if method is abstract
  • ReflectionMethod::isConstructor — Checks if method is a constructor
  • ReflectionMethod::isDestructor — Checks if method is a destructor
  • ReflectionMethod::isFinal — Checks if method is final
  • ReflectionMethod::isPrivate — Checks if method is private
  • ReflectionMethod::isProtected — Checks if method is protected
  • ReflectionMethod::isPublic — Checks if method is public
  • ReflectionMethod::setAccessible — Set method accessibility
  • ReflectionMethod::__toString — Returns the string representation of the Reflection method object


Constructs a ReflectionMethod

  • « ReflectionMethod
  • ReflectionMethod::createFromMethodName »
  • PHP Manual
  • ReflectionMethod
  • Constructs a ReflectionMethod

ReflectionMethod::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::__construct — Constructs a ReflectionMethod

Descrição

public ReflectionMethod::__construct(object|string $objectOrMethod, string $method)

Alternative signature (not supported with named arguments):

public ReflectionMethod::__construct(string $classMethod)

Constructs a new ReflectionMethod.

Parâmetros

objectOrMethod

Classname or object (instance of the class) that contains the method.

method

Name of the method.

classMethod

Class name and method name delimited by ::.

Erros/Exceções

A ReflectionException is thrown if the given method does not exist.

Exemplos

Exemplo #1 ReflectionMethod::__construct() example

<?php
class Counter
{
private static $c = 0;

/**
* Increment counter
*
* @final
* @static
* @access public
* @return int
*/
final public static function increment()
{
return ++self::$c;
}
}

// Create an instance of the ReflectionMethod class
$method = new ReflectionMethod('Counter', 'increment');

// Print out basic information
printf(
"===> The %s%s%s%s%s%s%s method '%s' (which is %s)\n" .
" declared in %s\n" .
" lines %d to %d\n" .
" having the modifiers %d[%s]\n",
$method->isInternal() ? 'internal' : 'user-defined',
$method->isAbstract() ? ' abstract' : '',
$method->isFinal() ? ' final' : '',
$method->isPublic() ? ' public' : '',
$method->isPrivate() ? ' private' : '',
$method->isProtected() ? ' protected' : '',
$method->isStatic() ? ' static' : '',
$method->getName(),
$method->isConstructor() ? 'the constructor' : 'a regular method',
$method->getFileName(),
$method->getStartLine(),
$method->getEndline(),
$method->getModifiers(),
implode(' ', Reflection::getModifierNames($method->getModifiers()))
);

// Print documentation comment
printf("---> Documentation:\n %s\n", var_export($method->getDocComment(), true));

// Print static variables if existant
if ($statics= $method->getStaticVariables()) {
printf("---> Static variables: %s\n", var_export($statics, true));
}

// Invoke the method
printf("---> Invocation results in: ");
var_dump($method->invoke(NULL));
?>

O exemplo acima produzirá algo semelhante a:

===> The user-defined final public static method 'increment' (which is a regular method)
     declared in /Users/philip/cvs/phpdoc/test.php
     lines 14 to 17
     having the modifiers 261[final public static]
---> Documentation:
 '/**
     * Increment counter
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */'
---> Invocation results in: int(1)

Veja Também

  • ReflectionMethod::export() - Export a reflection method
  • Constructors


Creates a new ReflectionMethod

  • « ReflectionMethod::__construct
  • ReflectionMethod::export »
  • PHP Manual
  • ReflectionMethod
  • Creates a new ReflectionMethod

ReflectionMethod::createFromMethodName

(PHP 8 >= 8.3.0)

ReflectionMethod::createFromMethodName — Creates a new ReflectionMethod

Descrição

public static ReflectionMethod::createFromMethodName(string $method): static

Creates a new ReflectionMethod.

Parâmetros

method

Class name and method name delimited by ::.

Valor Retornado

Returns a new ReflectionMethod on success.

Erros/Exceções

A ReflectionException is thrown if the given method does not exist.

Exemplos

Exemplo #1 ReflectionMethod::createFromMethodName() example

<?php

class Foo {
public function bar() {

}
}

$methodInfo = ReflectionMethod::createFromMethodName("Foo::bar");
var_dump($methodInfo);
?>

O exemplo acima produzirá:

object(ReflectionMethod)#1 (2) {
  ["name"]=>
  string(3) "bar"
  ["class"]=>
  string(3) "Foo"
}


Export a reflection method

  • « ReflectionMethod::createFromMethodName
  • ReflectionMethod::getClosure »
  • PHP Manual
  • ReflectionMethod
  • Export a reflection method

ReflectionMethod::export

(PHP 5, PHP 7)

ReflectionMethod::export — Export a reflection method

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static ReflectionMethod::export(string $class, string $name, bool $return = false): string

Exports a ReflectionMethod.

Parâmetros

class

The class name.

name

The name of the method.

return

Definir como true retornará a exportação, em vez de emiti-la. Definir como false (o padrão) fará o oposto.

Valor Retornado

Se o parâmetro return for definido como true, então a exportação será retornada como uma string, caso contrário, null será retornado.

Veja Também

  • ReflectionMethod::__construct() - Constructs a ReflectionMethod
  • ReflectionMethod::__toString() - Returns the string representation of the Reflection method object


Returns a dynamically created closure for the method

  • « ReflectionMethod::export
  • ReflectionMethod::getDeclaringClass »
  • PHP Manual
  • ReflectionMethod
  • Returns a dynamically created closure for the method

ReflectionMethod::getClosure

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionMethod::getClosure — Returns a dynamically created closure for the method

Descrição

public ReflectionMethod::getClosure(?object $object = null): Closure

Create a closure which will call the method.

Parâmetros

object

Forbidden for static methods, required for other methods.

Valor Retornado

Returns the newly created Closure.

Erros/Exceções

Throws a ValueError if object is null but the method is non-static.

Throws a ReflectionException if object is not an instance of the class this method was declared in.

Registro de Alterações

Versão | Descrição
8.0.0 | object is now nullable.

Veja Também

  • First class callable syntax


Gets declaring class for the reflected method

  • « ReflectionMethod::getClosure
  • ReflectionMethod::getModifiers »
  • PHP Manual
  • ReflectionMethod
  • Gets declaring class for the reflected method

ReflectionMethod::getDeclaringClass

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::getDeclaringClass — Gets declaring class for the reflected method

Descrição

public ReflectionMethod::getDeclaringClass(): ReflectionClass

Gets the declaring class for the reflected method.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionClass object of the class that the reflected method is part of.

Exemplos

Exemplo #1 ReflectionMethod::getDeclaringClass() example

<?php
class HelloWorld {

protected function sayHelloTo($name) {
return 'Hello ' . $name;
}

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
var_dump($reflectionMethod->getDeclaringClass());
?>

O exemplo acima produzirá:

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(10) "HelloWorld"
}

Veja Também

  • ReflectionMethod::isAbstract() - Checks if method is abstract


Gets the method modifiers

  • « ReflectionMethod::getDeclaringClass
  • ReflectionMethod::getPrototype »
  • PHP Manual
  • ReflectionMethod
  • Gets the method modifiers

ReflectionMethod::getModifiers

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::getModifiers — Gets the method modifiers

Descrição

public ReflectionMethod::getModifiers(): int

Returns a bitfield of the access modifiers for this method.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numeric representation of the modifiers. The actual meaning of these modifiers are described under predefined constants.

Exemplos

Exemplo #1 ReflectionMethod::getModifiers() example

<?php
class Testing
{
final public static function foo()
{
return;
}
public function bar()
{
return;
}
}

$foo = new ReflectionMethod('Testing', 'foo');

echo "Modifiers for method foo():\n";
echo $foo->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($foo->getModifiers())) . "\n";

$bar = new ReflectionMethod('Testing', 'bar');

echo "Modifiers for method bar():\n";
echo $bar->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($bar->getModifiers()));
?>

O exemplo acima produzirá algo semelhante a:

Modifiers for method foo():
49
final public static
Modifiers for method bar():
1
public

Veja Também

  • Reflection::getModifierNames() - Obtém os nomes dos modificadores


Gets the method prototype (if there is one)

  • « ReflectionMethod::getModifiers
  • ReflectionMethod::hasPrototype »
  • PHP Manual
  • ReflectionMethod
  • Gets the method prototype (if there is one)

ReflectionMethod::getPrototype

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionMethod::getPrototype — Gets the method prototype (if there is one)

Descrição

public ReflectionMethod::getPrototype(): ReflectionMethod

Returns the methods prototype.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionMethod instance of the method prototype.

Erros/Exceções

A ReflectionException exception is thrown if the method does not have a prototype.

Exemplos

Exemplo #1 ReflectionMethod::getPrototype() example

<?php
class Hello {

public function sayHelloTo($name) {
return 'Hello ' . $name;
}

}
class HelloWorld extends Hello {

public function sayHelloTo($name) {
return 'Hello world: ' . $name;
}

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
var_dump($reflectionMethod->getPrototype());
?>

O exemplo acima produzirá:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(10) "sayHelloTo"
  ["class"]=>
  string(5) "Hello"
}

Veja Também

  • ReflectionMethod::getModifiers() - Gets the method modifiers
  • ReflectionMethod::hasPrototype() - Returns whether a method has a prototype


Returns whether a method has a prototype

  • « ReflectionMethod::getPrototype
  • ReflectionMethod::invoke »
  • PHP Manual
  • ReflectionMethod
  • Returns whether a method has a prototype

ReflectionMethod::hasPrototype

(PHP 8 >= 8.2.0)

ReflectionMethod::hasPrototype — Returns whether a method has a prototype

Descrição

public ReflectionMethod::hasPrototype(): bool

Returns whether a method has a prototype.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the method has a prototype, otherwise false.

Exemplos

Exemplo #1 ReflectionMethod::hasPrototype() example

<?php

class Hello
{
public function sayHelloTo($name)
{
return 'Hello '.$name;
}
}

class HelloWorld extends Hello
{
public function sayHelloTo($name)
{
return 'Hello world: '.$name;
}
}
$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
var_dump($reflectionMethod->hasPrototype());
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • ReflectionMethod::getPrototype() - Gets the method prototype (if there is one)


Invoke

  • « ReflectionMethod::hasPrototype
  • ReflectionMethod::invokeArgs »
  • PHP Manual
  • ReflectionMethod
  • Invoke

ReflectionMethod::invoke

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::invoke — Invoke

Descrição

public ReflectionMethod::invoke(?object $object, mixed ...$args): mixed

Invokes a reflected method.

Parâmetros

object

The object to invoke the method on. For static methods, pass null to this parameter.

args

Zero or more parameters to be passed to the method. It accepts a variable number of parameters which are passed to the method.

Valor Retornado

Returns the method result.

Erros/Exceções

A ReflectionException if the object parameter does not contain an instance of the class that this method was declared in.

A ReflectionException if the method invocation failed.

Exemplos

Exemplo #1 ReflectionMethod::invoke() example

<?php
class HelloWorld {

public function sayHelloTo($name) {
return 'Hello ' . $name;
}

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invoke(new HelloWorld(), 'Mike');
?>

O exemplo acima produzirá:

Hello Mike

Notas

Nota:

ReflectionMethod::invoke() cannot be used when reference parameters are expected. ReflectionMethod::invokeArgs() has to be used instead (passing references in the argument list).

Veja Também

  • ReflectionMethod::invokeArgs() - Invoke args
  • __invoke()
  • call_user_func() - Call the callback given by the first parameter


Invoke args

  • « ReflectionMethod::invoke
  • ReflectionMethod::isAbstract »
  • PHP Manual
  • ReflectionMethod
  • Invoke args

ReflectionMethod::invokeArgs

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionMethod::invokeArgs — Invoke args

Descrição

public ReflectionMethod::invokeArgs(?object $object, array $args): mixed

Invokes the reflected method and pass its arguments as array.

Parâmetros

object

The object to invoke the method on. In case of static methods, you can pass null to this parameter.

args

The parameters to be passed to the function, as an array.

Valor Retornado

Returns the method result.

Erros/Exceções

A ReflectionException if the object parameter does not contain an instance of the class that this method was declared in.

A ReflectionException if the method invocation failed.

Registro de Alterações

Versão | Descrição
8.0.0 | args keys will now be interpreted as parameter names, instead of being silently ignored.

Exemplos

Exemplo #1 ReflectionMethod::invokeArgs() example

<?php
class HelloWorld {

public function sayHelloTo($name) {
return 'Hello ' . $name;
}

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invokeArgs(new HelloWorld(), array('Mike'));
?>

O exemplo acima produzirá:

Hello Mike

Notas

Nota:

Se a função tiver argumentos que precisam ser referências, então eles devem ser referências na lista de argumentos passada.

Veja Também

  • ReflectionMethod::invoke() - Invoke
  • __invoke()
  • call_user_func_array() - Call a callback with an array of parameters


Checks if method is abstract

  • « ReflectionMethod::invokeArgs
  • ReflectionMethod::isConstructor »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is abstract

ReflectionMethod::isAbstract

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isAbstract — Checks if method is abstract

Descrição

public ReflectionMethod::isAbstract(): bool

Checks if the method is abstract.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the method is abstract, otherwise false

Veja Também

  • ReflectionMethod::getDeclaringClass() - Gets declaring class for the reflected method


Checks if method is a constructor

  • « ReflectionMethod::isAbstract
  • ReflectionMethod::isDestructor »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is a constructor

ReflectionMethod::isConstructor

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isConstructor — Checks if method is a constructor

Descrição

public ReflectionMethod::isConstructor(): bool

Checks if the method is a constructor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the method is a constructor, otherwise false

Veja Também

  • ReflectionMethod::__construct() - Constructs a ReflectionMethod
  • ReflectionMethod::isAbstract() - Checks if method is abstract
  • ReflectionMethod::isDestructor() - Checks if method is a destructor


Checks if method is a destructor

  • « ReflectionMethod::isConstructor
  • ReflectionMethod::isFinal »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is a destructor

ReflectionMethod::isDestructor

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isDestructor — Checks if method is a destructor

Descrição

public ReflectionMethod::isDestructor(): bool

Checks if the method is a destructor.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the method is a destructor, otherwise false

Veja Também

  • ReflectionMethod::isConstructor() - Checks if method is a constructor


Checks if method is final

  • « ReflectionMethod::isDestructor
  • ReflectionMethod::isPrivate »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is final

ReflectionMethod::isFinal

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isFinal — Checks if method is final

Descrição

public ReflectionMethod::isFinal(): bool

Checks if the method is final.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the method is final, otherwise false

Veja Também

  • ReflectionMethod::isStatic()


Checks if method is private

  • « ReflectionMethod::isFinal
  • ReflectionMethod::isProtected »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is private

ReflectionMethod::isPrivate

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isPrivate — Checks if method is private

Descrição

public ReflectionMethod::isPrivate(): bool

Checks if the method is private.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the method is private, otherwise false

Veja Também

  • ReflectionMethod::isPublic() - Checks if method is public


Checks if method is protected

  • « ReflectionMethod::isPrivate
  • ReflectionMethod::isPublic »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is protected

ReflectionMethod::isProtected

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isProtected — Checks if method is protected

Descrição

public ReflectionMethod::isProtected(): bool

Checks if the method is protected.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the method is protected, otherwise false

Veja Também

  • ReflectionMethod::isPrivate() - Checks if method is private


Checks if method is public

  • « ReflectionMethod::isProtected
  • ReflectionMethod::setAccessible »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is public

ReflectionMethod::isPublic

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isPublic — Checks if method is public

Descrição

public ReflectionMethod::isPublic(): bool

Checks if the method is public.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the method is public, otherwise false

Veja Também

  • ReflectionMethod::isPrivate() - Checks if method is private


Set method accessibility

  • « ReflectionMethod::isPublic
  • ReflectionMethod::__toString »
  • PHP Manual
  • ReflectionMethod
  • Set method accessibility

ReflectionMethod::setAccessible

(PHP 5 >= 5.3.2, PHP 7, PHP 8)

ReflectionMethod::setAccessible — Set method accessibility

Descrição

public ReflectionMethod::setAccessible(bool $accessible): void

Enables invoking of a protected or private method via the ReflectionMethod::invoke() method.

Nota: As of PHP 8.1.0, calling this method has no effect; all methods are invokable by default.

Parâmetros

accessible

true to allow accessibility, or false.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Simple Class definition

<?php
class MyClass
{
private function foo()
{
return 'bar';
}
}

$method = new ReflectionMethod("MyClass", "foo");
$method->setAccessible(true);

$obj = new MyClass();
echo $method->invoke($obj);
echo $obj->foo();
?>

O exemplo acima produzirá algo semelhante a:

bar
Fatal error: Uncaught Error: Call to private method MyClass::foo() from global scope in /in/qdaZS:16

Veja Também

  • ReflectionMethod::isPrivate() - Checks if method is private
  • ReflectionMethod::isProtected() - Checks if method is protected


Returns the string representation of the Reflection method object

  • « ReflectionMethod::setAccessible
  • ReflectionNamedType »
  • PHP Manual
  • ReflectionMethod
  • Returns the string representation of the Reflection method object

ReflectionMethod::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::__toString — Returns the string representation of the Reflection method object

Descrição

public ReflectionMethod::__toString(): string

Returns the string representation of the Reflection method object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A string representation of this ReflectionMethod instance.

Exemplos

Exemplo #1 ReflectionMethod::__toString() example

<?php
class HelloWorld {

public function sayHelloTo($name) {
return 'Hello ' . $name;
}

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
echo $reflectionMethod;
?>

O exemplo acima produzirá:

Method [ <user> public method sayHelloTo ] {
  @@ /var/www/examples/reflection.php 16 - 18

  - Parameters [1] {
    Parameter #0 [ <required> $name ]
  }
}

Veja Também

  • ReflectionMethod::export() - Export a reflection method
  • __toString()


A classe ReflectionNamedType

(PHP 7 >= 7.1.0, PHP 8)

Introdução

Resumo da classe

class ReflectionNamedType extends ReflectionType {
/* Métodos */
public getName(): string
public isBuiltin(): bool
/* Métodos herdados */
public ReflectionType::allowsNull(): bool
public ReflectionType::__toString(): string
}

Índice

  • ReflectionNamedType::getName — Obtém o nome do tipo como uma string
  • ReflectionNamedType::isBuiltin — Checks if it is a built-in type


Obtém o nome do tipo como uma string

  • « ReflectionNamedType
  • ReflectionNamedType::isBuiltin »
  • PHP Manual
  • ReflectionNamedType
  • Obtém o nome do tipo como uma string

ReflectionNamedType::getName

(PHP 7 >= 7.1.0, PHP 8)

ReflectionNamedType::getName — Obtém o nome do tipo como uma string

Descrição

public ReflectionNamedType::getName(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o nome do tipo que está sendo refletido.

Veja Também

  • ReflectionType::__toString() - To string


Checks if it is a built-in type

  • « ReflectionNamedType::getName
  • ReflectionObject »
  • PHP Manual
  • ReflectionNamedType
  • Checks if it is a built-in type

ReflectionNamedType::isBuiltin

(PHP 7, PHP 8)

ReflectionNamedType::isBuiltin — Checks if it is a built-in type

Descrição

public ReflectionNamedType::isBuiltin(): bool

Checks if the type is a built-in type in PHP. A built-in type is any type that is not a class, interface, or trait.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if it's a built-in type, otherwise false

Exemplos

Exemplo #1 ReflectionNamedType::isBuiltin() example

<?php
class SomeClass {}

function someFunction(string $param, SomeClass $param2, stdClass $param3) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->getType()->isBuiltin());
var_dump($reflectionParams[1]->getType()->isBuiltin());
var_dump($reflectionParams[2]->getType()->isBuiltin());

O exemplo acima produzirá:

bool(true)
bool(false)
bool(false)

Note that the ReflectionNamedType::isBuiltin() method does not distinguish between internal and custom classes. To make this distinction, the ReflectionClass::isInternal() method should be used on the returned class name.

Veja Também

  • ReflectionType::allowsNull() - Checks if null is allowed
  • ReflectionType::__toString() - To string
  • ReflectionClass::isInternal() - Checks if class is defined internally by an extension, or the core
  • ReflectionParameter::getType() - Gets a parameter's type


A classe ReflectionObject

(PHP 5, PHP 7, PHP 8)

Introdução

A classe ReflectionObject relata informações sobre um objeto object.

Resumo da classe

class ReflectionObject extends ReflectionClass {
/* Constantes herdadas */
public const int ReflectionClass::IS_IMPLICIT_ABSTRACT;
public const int ReflectionClass::IS_EXPLICIT_ABSTRACT;
public const int ReflectionClass::IS_FINAL;
public const int ReflectionClass::IS_READONLY;
/* Propriedades herdadas */
public string $name;
/* Métodos */
public __construct(object $object)
/* Métodos herdados */
public static ReflectionClass::export(mixed $argument, bool $return = false): string
public ReflectionClass::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClass::getConstant(string $name): mixed
public ReflectionClass::getConstants(?int $filter = null): array
public ReflectionClass::getConstructor(): ?ReflectionMethod
public ReflectionClass::getDefaultProperties(): array
public ReflectionClass::getDocComment(): string|false
public ReflectionClass::getEndLine(): int|false
public ReflectionClass::getExtension(): ?ReflectionExtension
public ReflectionClass::getExtensionName(): string|false
public ReflectionClass::getFileName(): string|false
public ReflectionClass::getInterfaceNames(): array
public ReflectionClass::getInterfaces(): array
public ReflectionClass::getMethod(string $name): ReflectionMethod
public ReflectionClass::getMethods(?int $filter = null): array
public ReflectionClass::getModifiers(): int
public ReflectionClass::getName(): string
public ReflectionClass::getNamespaceName(): string
public ReflectionClass::getParentClass(): ReflectionClass|false
public ReflectionClass::getProperties(?int $filter = null): array
public ReflectionClass::getProperty(string $name): ReflectionProperty
public ReflectionClass::getReflectionConstant(string $name): ReflectionClassConstant|false
public ReflectionClass::getReflectionConstants(?int $filter = null): array
public ReflectionClass::getShortName(): string
public ReflectionClass::getStartLine(): int|false
public ReflectionClass::getStaticProperties(): array
public ReflectionClass::getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public ReflectionClass::getTraitAliases(): array
public ReflectionClass::getTraitNames(): array
public ReflectionClass::getTraits(): array
public ReflectionClass::hasConstant(string $name): bool
public ReflectionClass::hasMethod(string $name): bool
public ReflectionClass::hasProperty(string $name): bool
public ReflectionClass::implementsInterface(ReflectionClass|string $interface): bool
public ReflectionClass::inNamespace(): bool
public ReflectionClass::isAbstract(): bool
public ReflectionClass::isAnonymous(): bool
public ReflectionClass::isCloneable(): bool
public ReflectionClass::isEnum(): bool
public ReflectionClass::isFinal(): bool
public ReflectionClass::isInstance(object $object): bool
public ReflectionClass::isInstantiable(): bool
public ReflectionClass::isInterface(): bool
public ReflectionClass::isInternal(): bool
public ReflectionClass::isIterable(): bool
public ReflectionClass::isReadOnly(): bool
public ReflectionClass::isSubclassOf(ReflectionClass|string $class): bool
public ReflectionClass::isTrait(): bool
public ReflectionClass::isUserDefined(): bool
public ReflectionClass::newInstance(mixed ...$args): object
public ReflectionClass::newInstanceArgs(array $args = []): ?object
public ReflectionClass::newInstanceWithoutConstructor(): object
public ReflectionClass::setStaticPropertyValue(string $name, mixed $value): void
public ReflectionClass::__toString(): string
}

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionObject::export() foi removido.

Índice

  • ReflectionObject::__construct — Constructs a ReflectionObject
  • ReflectionObject::export — Export


Constructs a ReflectionObject

  • « ReflectionObject
  • ReflectionObject::export »
  • PHP Manual
  • ReflectionObject
  • Constructs a ReflectionObject

ReflectionObject::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionObject::__construct — Constructs a ReflectionObject

Descrição

public ReflectionObject::__construct(object $object)

Constructs a ReflectionObject.

Parâmetros

object

An object instance.

Veja Também

  • ReflectionObject::export() - Export
  • Constructors


Export

  • « ReflectionObject::__construct
  • ReflectionParameter »
  • PHP Manual
  • ReflectionObject
  • Export

ReflectionObject::export

(PHP 5, PHP 7)

ReflectionObject::export — Export

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static ReflectionObject::export(string $argument, bool $return = ?): string

Exports a reflection.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

argument

A reflexão a ser exportada.

return

Definir como true retornará a exportação, em vez de emiti-la. Definir como false (o padrão) fará o oposto.

Valor Retornado

Se o parâmetro return for definido como true, então a exportação será retornada como uma string, caso contrário, null será retornado.

Veja Também

  • ReflectionObject::__construct() - Constructs a ReflectionObject


A classe ReflectionParameter

(PHP 5, PHP 7, PHP 8)

Introdução

A classe ReflectionParameter recupera informações sobre os parâmetros de uma função ou método.

Para inspecionar os parâmetros de uma função, primeiro crie uma instância das classes ReflectionFunction ou ReflectionMethod e, em seguida, use seus método ReflectionFunctionAbstract::getParameters() para recuperar uma array de parâmetros.

Resumo da classe

class ReflectionParameter implements Reflector {
/* Propriedades */
public string $name;
/* Métodos */
public __construct(string|array|object $function, int|string $param)
public allowsNull(): bool
public canBePassedByValue(): bool
private __clone(): void
public static export(string $function, string $parameter, bool $return = ?): string
public getAttributes(?string $name = null, int $flags = 0): array
public getClass(): ?ReflectionClass
public getDeclaringClass(): ?ReflectionClass
public getDeclaringFunction(): ReflectionFunctionAbstract
public getDefaultValue(): mixed
public getDefaultValueConstantName(): ?string
public getName(): string
public getPosition(): int
public getType(): ?ReflectionType
public hasType(): bool
public isArray(): bool
public isCallable(): bool
public isDefaultValueAvailable(): bool
public isDefaultValueConstant(): bool
public isOptional(): bool
public isPassedByReference(): bool
public isVariadic(): bool
public __toString(): string
}

Propriedades

name

Nome do parâmetro. Somente leitura, lança ReflectionException ao tentar escrever.

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionParameter::export() foi removido.

Índice

  • ReflectionParameter::allowsNull — Checks if null is allowed
  • ReflectionParameter::canBePassedByValue — Returns whether this parameter can be passed by value
  • ReflectionParameter::__clone — Clone
  • ReflectionParameter::__construct — Construct
  • ReflectionParameter::export — Exports
  • ReflectionParameter::getAttributes — Gets Attributes
  • ReflectionParameter::getClass — Get a ReflectionClass object for the parameter being reflected or null
  • ReflectionParameter::getDeclaringClass — Gets declaring class
  • ReflectionParameter::getDeclaringFunction — Gets declaring function
  • ReflectionParameter::getDefaultValue — Gets default parameter value
  • ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null
  • ReflectionParameter::getName — Gets parameter name
  • ReflectionParameter::getPosition — Gets parameter position
  • ReflectionParameter::getType — Gets a parameter's type
  • ReflectionParameter::hasType — Checks if parameter has a type
  • ReflectionParameter::isArray — Checks if parameter expects an array
  • ReflectionParameter::isCallable — Returns whether parameter MUST be callable
  • ReflectionParameter::isDefaultValueAvailable — Checks if a default value is available
  • ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is a constant
  • ReflectionParameter::isOptional — Checks if optional
  • ReflectionParameter::isPassedByReference — Checks if passed by reference
  • ReflectionParameter::isVariadic — Checks if the parameter is variadic
  • ReflectionParameter::__toString — To string


Checks if null is allowed

  • « ReflectionParameter
  • ReflectionParameter::canBePassedByValue »
  • PHP Manual
  • ReflectionParameter
  • Checks if null is allowed

ReflectionParameter::allowsNull

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::allowsNull — Checks if null is allowed

Descrição

public ReflectionParameter::allowsNull(): bool

Checks whether the parameter allows null.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if null is allowed, otherwise false

Veja Também

  • ReflectionParameter::isOptional() - Checks if optional


Returns whether this parameter can be passed by value

  • « ReflectionParameter::allowsNull
  • ReflectionParameter::__clone »
  • PHP Manual
  • ReflectionParameter
  • Returns whether this parameter can be passed by value

ReflectionParameter::canBePassedByValue

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionParameter::canBePassedByValue — Returns whether this parameter can be passed by value

Descrição

public ReflectionParameter::canBePassedByValue(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the parameter can be passed by value, false otherwise. Returns null in case of an error.


Clone

  • « ReflectionParameter::canBePassedByValue
  • ReflectionParameter::__construct »
  • PHP Manual
  • ReflectionParameter
  • Clone

ReflectionParameter::__clone

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::__clone — Clone

Descrição

private ReflectionParameter::__clone(): void

Clones.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Registro de Alterações

Versão | Descrição
8.1.0 | This method is no longer final.

Veja Também

  • ReflectionParameter::toString()
  • Object cloning


Construct

  • « ReflectionParameter::__clone
  • ReflectionParameter::export »
  • PHP Manual
  • ReflectionParameter
  • Construct

ReflectionParameter::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::__construct — Construct

Descrição

public ReflectionParameter::__construct(string|array|object $function, int|string $param)

Constructs a ReflectionParameter instance.

Parâmetros

function

The function to reflect parameters from.

param

Either an int specifying the position of the parameter (starting with zero), or the parameter name as string.

Exemplos

Exemplo #1 Using the ReflectionParameter class

<?php
function foo($a, $b, $c) { }
function bar(Exception $a, &$b, $c) { }
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
function abc() { }

$reflect = new ReflectionFunction('foo');

echo $reflect;

foreach ($reflect->getParameters() as $i => $param) {
printf(
"-- Parameter #%d: %s {\n".
" Class: %s\n".
" Allows NULL: %s\n".
" Passed to by reference: %s\n".
" Is optional?: %s\n".
"}\n",
$i, // $param->getPosition() can be used
$param->getName(),
var_export($param->getClass(), 1),
var_export($param->allowsNull(), 1),
var_export($param->isPassedByReference(), 1),
$param->isOptional() ? 'yes' : 'no'
);
}
?>

O exemplo acima produzirá algo semelhante a:

Function [ <user> function foo ] {
  @@ /Users/philip/cvs/phpdoc/a 2 - 2

  - Parameters [3] {
    Parameter #0 [ <required> $a ]
    Parameter #1 [ <required> $b ]
    Parameter #2 [ <required> $c ]
  }
}
-- Parameter #0: a {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}
-- Parameter #1: b {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}
-- Parameter #2: c {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}

Veja Também

  • ReflectionFunctionAbstract::getParameters() - Gets parameters
  • ReflectionFunction::__construct() - Constructs a ReflectionFunction object
  • ReflectionMethod::__construct() - Constructs a ReflectionMethod
  • Constructors


Exports

  • « ReflectionParameter::__construct
  • ReflectionParameter::getAttributes »
  • PHP Manual
  • ReflectionParameter
  • Exports

ReflectionParameter::export

(PHP 5, PHP 7)

ReflectionParameter::export — Exports

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static ReflectionParameter::export(string $function, string $parameter, bool $return = ?): string

Exports.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

function

The function name.

parameter

The parameter name.

return

Definir como true retornará a exportação, em vez de emiti-la. Definir como false (o padrão) fará o oposto.

Valor Retornado

The exported reflection.

Veja Também

  • ReflectionParameter::__toString() - To string


Gets Attributes

  • « ReflectionParameter::export
  • ReflectionParameter::getClass »
  • PHP Manual
  • ReflectionParameter
  • Gets Attributes

ReflectionParameter::getAttributes

(PHP 8)

ReflectionParameter::getAttributes — Gets Attributes

Descrição

public ReflectionParameter::getAttributes(?string $name = null, int $flags = 0): array

Returns all attributes declared on this parameter as an array of ReflectionAttribute.

Parâmetros

name

Filtra os resultados para incluir apenas instâncias de ReflectionAttribute para atributos correspondentes a este nome de classe.

flags

Flags para determinar como filtrar os resultados, se name for fornecido.

O padrão é 0, que retornará apenas os resultados para atributos que são da classe name.

A única outra opção disponível é usar ReflectionAttribute::IS_INSTANCEOF, que usará instanceof para filtragem.

Valor Retornado

Array of attributes, as a ReflectionAttribute object.

Exemplos

Exemplo #1 Basic usage

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

function fruitBasket(
#[Fruit]
#[Red]
string $apple
) { }

$reflection = new ReflectionFunction('fruitBasket');
$parameter = $reflection->getParameter('apple');
$attributes = $parameter->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
    [1] => Red
)

Exemplo #2 Filtering results by class name

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

function fruitBasket(
#[Fruit]
#[Red]
string $apple
) { }

$reflection = new ReflectionFunction('fruitBasket');
$parameter = $reflection->getParameter('apple');
$attributes = $parameter->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
)

Exemplo #3 Filtering results by class name, with inheritance

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

function fruitBasket(
#[Fruit]
#[Red]
string $apple
) { }

$reflection = new ReflectionFunction('fruitBasket');
$parameter = $reflection->getParameter('apple');
$attributes = $parameter->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Red
)

Veja Também

  • ReflectionClass::getAttributes() - Gets Attributes
  • ReflectionClassConstant::getAttributes() - Gets Attributes
  • ReflectionFunctionAbstract::getAttributes() - Gets Attributes
  • ReflectionProperty::getAttributes() - Gets Attributes


Get a ReflectionClass object for the parameter being reflected or null

  • « ReflectionParameter::getAttributes
  • ReflectionParameter::getDeclaringClass »
  • PHP Manual
  • ReflectionParameter
  • Get a ReflectionClass object for the parameter being reflected or null

ReflectionParameter::getClass

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::getClass — Get a ReflectionClass object for the parameter being reflected or null

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public ReflectionParameter::getClass(): ?ReflectionClass

Gets a ReflectionClass object for the parameter being reflected or null.

As of PHP 8.0.0 this function is deprecated and not recommended. Instead, use ReflectionParameter::getType() to get the ReflectionType of the parameter, then interrogate that object to determine the parameter type.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionClass object, or null if no type is declared, or the declared type is not a class or interface.

Exemplos

Exemplo #1 Using the ReflectionParameter class

<?php
function foo(Exception $a) { }

$functionReflection = new ReflectionFunction('foo');
$parameters = $functionReflection->getParameters();
$aParameter = $parameters[0];

echo $aParameter->getClass()->name;
?>

Veja Também

  • ReflectionParameter::getDeclaringClass() - Gets declaring class


Gets declaring class

  • « ReflectionParameter::getClass
  • ReflectionParameter::getDeclaringFunction »
  • PHP Manual
  • ReflectionParameter
  • Gets declaring class

ReflectionParameter::getDeclaringClass

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

ReflectionParameter::getDeclaringClass — Gets declaring class

Descrição

public ReflectionParameter::getDeclaringClass(): ?ReflectionClass

Gets the declaring class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionClass object or null if called on function.

Exemplos

Exemplo #1 Getting the class that declared the method

<?php
class Foo
{
public function bar(\DateTime $datetime)
{
}
}

class Baz extends Foo
{
}

$param = new \ReflectionParameter(['Baz', 'bar'], 0);

var_dump($param->getDeclaringClass());

O exemplo acima produzirá:

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(3) "Foo"
}

Veja Também

  • ReflectionParameter::getClass() - Get a ReflectionClass object for the parameter being reflected or null


Gets declaring function

  • « ReflectionParameter::getDeclaringClass
  • ReflectionParameter::getDefaultValue »
  • PHP Manual
  • ReflectionParameter
  • Gets declaring function

ReflectionParameter::getDeclaringFunction

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

ReflectionParameter::getDeclaringFunction — Gets declaring function

Descrição

public ReflectionParameter::getDeclaringFunction(): ReflectionFunctionAbstract

Gets the declaring function.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionFunction object.

Veja Também

  • ReflectionParameter::getDeclaringClass() - Gets declaring class


Gets default parameter value

  • « ReflectionParameter::getDeclaringFunction
  • ReflectionParameter::getDefaultValueConstantName »
  • PHP Manual
  • ReflectionParameter
  • Gets default parameter value

ReflectionParameter::getDefaultValue

(PHP 5 >= 5.0.3, PHP 7, PHP 8)

ReflectionParameter::getDefaultValue — Gets default parameter value

Descrição

public ReflectionParameter::getDefaultValue(): mixed

Gets the default value of the parameter for any user-defined or internal function or method. If the parameter is not optional a ReflectionException will be thrown.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The parameters default value.

Registro de Alterações

Versão | Descrição
8.0.0 | This method now allows getting the default value of parameters of built-in functions and built-in class methods. Previously, a ReflectionException was thrown.

Exemplos

Exemplo #1 Getting default values of function parameters

<?php
function foo($test, $bar = 'baz')
{
echo $test . $bar;
}

$function = new ReflectionFunction('foo');

foreach ($function->getParameters() as $param) {
echo 'Name: ' . $param->getName() . PHP_EOL;
if ($param->isOptional()) {
echo 'Default value: ' . $param->getDefaultValue() . PHP_EOL;
}
echo PHP_EOL;
}
?>

O exemplo acima produzirá:

Name: test

Name: bar
Default value: baz

Veja Também

  • ReflectionParameter::isOptional() - Checks if optional
  • ReflectionParameter::isDefaultValueAvailable() - Checks if a default value is available
  • ReflectionParameter::getDefaultValueConstantName() - Returns the default value's constant name if default value is constant or null
  • ReflectionParameter::isPassedByReference() - Checks if passed by reference


Returns the default value's constant name if default value is constant or null

  • « ReflectionParameter::getDefaultValue
  • ReflectionParameter::getName »
  • PHP Manual
  • ReflectionParameter
  • Returns the default value's constant name if default value is constant or null

ReflectionParameter::getDefaultValueConstantName

(PHP 5 >= 5.4.6, PHP 7, PHP 8)

ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null

Descrição

public ReflectionParameter::getDefaultValueConstantName(): ?string

Returns the default value's constant name of the parameter of any user-defined or internal function or method, if default value is constant or null. If the parameter is not optional a ReflectionException will be thrown.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns string on success or null on failure.

Registro de Alterações

Versão | Descrição
8.0.0 | This method now allows getting the default values' constant names of built-in functions and built-in class methods. Previously, a ReflectionException was thrown.

Exemplos

Exemplo #1 Getting default values' constant names of function parameters

<?php
function foo($test, $bar = PHP_INT_MIN)
{
echo $test . $bar;
}

$function = new ReflectionFunction('foo');

foreach ($function->getParameters() as $param) {
echo 'Name: ' . $param->getName() . PHP_EOL;
if ($param->isOptional()) {
echo 'Default value: ' . $param->getDefaultValueConstantName() . PHP_EOL;
}
echo PHP_EOL;
}
?>

O exemplo acima produzirá:

Name: test

Name: bar
Default value: PHP_INT_MIN

Veja Também

  • ReflectionParameter::isOptional() - Checks if optional
  • ReflectionParameter::isDefaultValueConstant() - Returns whether the default value of this parameter is a constant
  • ReflectionParameter::getDefaultValue() - Gets default parameter value


Gets parameter name

  • « ReflectionParameter::getDefaultValueConstantName
  • ReflectionParameter::getPosition »
  • PHP Manual
  • ReflectionParameter
  • Gets parameter name

ReflectionParameter::getName

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::getName — Gets parameter name

Descrição

public ReflectionParameter::getName(): string

Gets the name of the parameter.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The name of the reflected parameter.

Veja Também

  • ReflectionParameter::getValue()


Gets parameter position

  • « ReflectionParameter::getName
  • ReflectionParameter::getType »
  • PHP Manual
  • ReflectionParameter
  • Gets parameter position

ReflectionParameter::getPosition

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

ReflectionParameter::getPosition — Gets parameter position

Descrição

public ReflectionParameter::getPosition(): int

Gets the position of the parameter.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The position of the parameter, left to right, starting at position #0.

Veja Também

  • ReflectionParameter::getName() - Gets parameter name


Gets a parameter's type

  • « ReflectionParameter::getPosition
  • ReflectionParameter::hasType »
  • PHP Manual
  • ReflectionParameter
  • Gets a parameter's type

ReflectionParameter::getType

(PHP 7, PHP 8)

ReflectionParameter::getType — Gets a parameter's type

Descrição

public ReflectionParameter::getType(): ?ReflectionType

Gets the associated type of a parameter.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a ReflectionType object if a parameter type is specified, null otherwise.

Exemplos

Exemplo #1 ReflectionParameter::getType() Usage as of PHP 7.1.0

As of PHP 7.1.0, ReflectionType::__toString() is deprecated, and ReflectionParameter::getType() may return an instance of ReflectionNamedType. To get the name of the parameter type, ReflectionNamedType() is available in this case.

<?php
function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

assert($reflectionType1 instanceof ReflectionNamedType);
echo $reflectionType1->getName(), PHP_EOL;
var_dump($reflectionType2);
?>

O exemplo acima produzirá:

int
NULL

Exemplo #2 ReflectionParameter::getType() Usage before PHP 7.1.0

<?php
function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

echo $reflectionType1, PHP_EOL;
var_dump($reflectionType2);
?>

Saída do exemplo acima no PHP 7.0:

int
NULL

Exemplo #3 ReflectionParameter::getType() Usage in PHP 8.0.0 and later

As of PHP 8.0.0, this method may return a ReflectionNamedType instance or a ReflectionUnionType instance. The latter is a collection of the former. To analyze a type, it is often convenient to normalize it to an array of ReflectionNamedType objects. The following function will return an array of 0 or more ReflectionNamedType instances.

<?php
function getAllTypes(ReflectionParameter $reflectionParameter): array
{
$reflectionType = $reflectionParameter->getType();

if (!$reflectionType) return [];

return $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];
}
?>

Veja Também

  • ReflectionParameter::hasType() - Checks if parameter has a type
  • ReflectionType::__toString() - To string


Checks if parameter has a type

  • « ReflectionParameter::getType
  • ReflectionParameter::isArray »
  • PHP Manual
  • ReflectionParameter
  • Checks if parameter has a type

ReflectionParameter::hasType

(PHP 7, PHP 8)

ReflectionParameter::hasType — Checks if parameter has a type

Descrição

public ReflectionParameter::hasType(): bool

Checks if the parameter has a type associated with it.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if a type is specified, false otherwise.

Exemplos

Exemplo #1 ReflectionParameter::hasType() example

<?php
function someFunction(string $param, $param2 = null) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->hasType());
var_dump($reflectionParams[1]->hasType());

O exemplo acima produzirá algo semelhante a:

bool(true)
bool(false)

Veja Também

  • ReflectionParameter::getType() - Gets a parameter's type


Checks if parameter expects an array

  • « ReflectionParameter::hasType
  • ReflectionParameter::isCallable »
  • PHP Manual
  • ReflectionParameter
  • Checks if parameter expects an array

ReflectionParameter::isArray

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionParameter::isArray — Checks if parameter expects an array

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

See the example below for an alternative way to derive this information.

Descrição

public ReflectionParameter::isArray(): bool

Checks if the parameter expects an array.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if an array is expected, false otherwise.

Exemplos

Exemplo #1 PHP 8.0.0 equivalent

As of PHP 8.0.0, the following code will report if a type declares arrays, including as part of a union.

<?php
function declaresArray(ReflectionParameter $reflectionParameter): bool
{
$reflectionType = $reflectionParameter->getType();

if (!$reflectionType) return false;

$types = $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];

return in_array('array', array_map(fn(ReflectionNamedType $t) => $t->getName(), $types));
}
?>

Veja Também

  • ReflectionParameter::isOptional() - Checks if optional


Returns whether parameter MUST be callable

  • « ReflectionParameter::isArray
  • ReflectionParameter::isDefaultValueAvailable »
  • PHP Manual
  • ReflectionParameter
  • Returns whether parameter MUST be callable

ReflectionParameter::isCallable

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionParameter::isCallable — Returns whether parameter MUST be callable

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

See the example below for an alternative way to derive this information.

Descrição

public ReflectionParameter::isCallable(): bool

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the parameter is callable, false if it is not or null on failure.

Exemplos

Exemplo #1 PHP 8.0.0 equivalent

As of PHP 8.0.0, the following code will report if a type supports callables, including as part of a union.

<?php
function declaresCallable(ReflectionParameter $reflectionParameter): bool
{
$reflectionType = $reflectionParameter->getType();

if (!$reflectionType) return false;

$types = $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];

return in_array('callable', array_map(fn(ReflectionNamedType $t) => $t->getName(), $types));
}
?>


Checks if a default value is available

  • « ReflectionParameter::isCallable
  • ReflectionParameter::isDefaultValueConstant »
  • PHP Manual
  • ReflectionParameter
  • Checks if a default value is available

ReflectionParameter::isDefaultValueAvailable

(PHP 5 >= 5.0.3, PHP 7, PHP 8)

ReflectionParameter::isDefaultValueAvailable — Checks if a default value is available

Descrição

public ReflectionParameter::isDefaultValueAvailable(): bool

Checks if a default value for the parameter is available.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if a default value is available, otherwise false

Veja Também

  • ReflectionParameter::getDefaultValue() - Gets default parameter value
  • ReflectionParameter::isDefaultValueConstant() - Returns whether the default value of this parameter is a constant
  • ReflectionParameter::getName() - Gets parameter name


Returns whether the default value of this parameter is a constant

  • « ReflectionParameter::isDefaultValueAvailable
  • ReflectionParameter::isOptional »
  • PHP Manual
  • ReflectionParameter
  • Returns whether the default value of this parameter is a constant

ReflectionParameter::isDefaultValueConstant

(PHP 5 >= 5.4.6, PHP 7, PHP 8)

ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is a constant

Descrição

public ReflectionParameter::isDefaultValueConstant(): bool

Returns whether the default value of this parameter is a constant.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the default value is constant, and false otherwise.

Veja Também

  • ReflectionParameter::getDefaultValueConstantName() - Returns the default value's constant name if default value is constant or null
  • ReflectionParameter::isDefaultValueAvailable() - Checks if a default value is available


Checks if optional

  • « ReflectionParameter::isDefaultValueConstant
  • ReflectionParameter::isPassedByReference »
  • PHP Manual
  • ReflectionParameter
  • Checks if optional

ReflectionParameter::isOptional

(PHP 5 >= 5.0.3, PHP 7, PHP 8)

ReflectionParameter::isOptional — Checks if optional

Descrição

public ReflectionParameter::isOptional(): bool

Checks if the parameter is optional.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the parameter is optional, otherwise false

Veja Também

  • ReflectionParameter::getName() - Gets parameter name


Checks if passed by reference

  • « ReflectionParameter::isOptional
  • ReflectionParameter::isVariadic »
  • PHP Manual
  • ReflectionParameter
  • Checks if passed by reference

ReflectionParameter::isPassedByReference

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::isPassedByReference — Checks if passed by reference

Descrição

public ReflectionParameter::isPassedByReference(): bool

Checks if the parameter is passed in by reference.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the parameter is passed in by reference, otherwise false

Veja Também

  • ReflectionParameter::getName() - Gets parameter name


Checks if the parameter is variadic

  • « ReflectionParameter::isPassedByReference
  • ReflectionParameter::__toString »
  • PHP Manual
  • ReflectionParameter
  • Checks if the parameter is variadic

ReflectionParameter::isVariadic

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

ReflectionParameter::isVariadic — Checks if the parameter is variadic

Descrição

public ReflectionParameter::isVariadic(): bool

Checks if the parameter was declared as a variadic parameter.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the parameter is variadic, otherwise false.


To string

  • « ReflectionParameter::isVariadic
  • ReflectionProperty »
  • PHP Manual
  • ReflectionParameter
  • To string

ReflectionParameter::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::__toString — To string

Descrição

public ReflectionParameter::__toString(): string

Get a human-readable description of the parameter.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The string.

Exemplos

Exemplo #1 ReflectionParameter::__toString() example

<?php
echo new ReflectionParameter('substr', 0);
?>

O exemplo acima produzirá algo semelhante a:

Parameter #0 [ <required> string $string ]

Veja Também

  • ReflectionFunction::__toString() - Returns the string representation of the ReflectionFunction object
  • ReflectionMethod::__toString() - Returns the string representation of the Reflection method object
  • __toString()


A classe ReflectionProperty

(PHP 5, PHP 7, PHP 8)

Introdução

A classe ReflectionProperty relata informações sobre as propriedades de uma classe.

Resumo da classe

class ReflectionProperty implements Reflector {
/* Constantes */
public const int IS_STATIC;
public const int IS_READONLY;
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
/* Propriedades */
public string $name;
public string $class;
/* Métodos */
public __construct(object|string $class, string $property)
private __clone(): void
public static export(mixed $class, string $name, bool $return = ?): string
public getAttributes(?string $name = null, int $flags = 0): array
public getDeclaringClass(): ReflectionClass
public getDefaultValue(): mixed
public getDocComment(): string|false
public getModifiers(): int
public getName(): string
public getType(): ?ReflectionType
public getValue(?object $object = null): mixed
public hasDefaultValue(): bool
public hasType(): bool
public isDefault(): bool
public isInitialized(?object $object = null): bool
public isPrivate(): bool
public isPromoted(): bool
public isProtected(): bool
public isPublic(): bool
public isReadOnly(): bool
public isStatic(): bool
public setAccessible(bool $accessible): void
public setValue(object $object, mixed $value): void
public __toString(): string
}

Propriedades

name

Nome da propriedade. Somente leitura, lança ReflectionException ao tentar escrever.

class

Nome da classe onde a propriedade está definida. Somente leitura, lança ReflectionException ao tentar escrever.

Constantes pré-definidas

Modificadores de ReflectionProperty

ReflectionProperty::IS_STATIC

Indica propriedades estáticas. Antes do PHP 7.4.0, o valor era 1.

ReflectionProperty::IS_READONLY

Indica propriedades somente leitura. Disponível a partir do PHP 8.1.0.

ReflectionProperty::IS_PUBLIC

Indica propriedades públicas. Antes do PHP 7.4.0, o valor era 256.

ReflectionProperty::IS_PROTECTED

Indica propriedades protegidas. Antes do PHP 7.4.0, o valor era 512.

ReflectionProperty::IS_PRIVATE

Indica propriedades privadas. Antes do PHP 7.4.0, o valor era 1024.

Nota:

Os valores dessas constantes podem mudar entre as versões do PHP. É recomendável sempre usar as constantes e não depender dos valores diretamente.

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionProperty::export() foi removido.

Índice

  • ReflectionProperty::__clone — Clone
  • ReflectionProperty::__construct — Construct a ReflectionProperty object
  • ReflectionProperty::export — Export
  • ReflectionProperty::getAttributes — Gets Attributes
  • ReflectionProperty::getDeclaringClass — Gets declaring class
  • ReflectionProperty::getDefaultValue — Returns the default value declared for a property
  • ReflectionProperty::getDocComment — Gets the property doc comment
  • ReflectionProperty::getModifiers — Gets the property modifiers
  • ReflectionProperty::getName — Gets property name
  • ReflectionProperty::getType — Gets a property's type
  • ReflectionProperty::getValue — Gets value
  • ReflectionProperty::hasDefaultValue — Checks if property has a default value declared
  • ReflectionProperty::hasType — Checks if property has a type
  • ReflectionProperty::isDefault — Checks if property is a default property
  • ReflectionProperty::isInitialized — Checks whether a property is initialized
  • ReflectionProperty::isPrivate — Checks if property is private
  • ReflectionProperty::isPromoted — Checks if property is promoted
  • ReflectionProperty::isProtected — Checks if property is protected
  • ReflectionProperty::isPublic — Checks if property is public
  • ReflectionProperty::isReadOnly — Checks if property is readonly
  • ReflectionProperty::isStatic — Checks if property is static
  • ReflectionProperty::setAccessible — Set property accessibility
  • ReflectionProperty::setValue — Set property value
  • ReflectionProperty::__toString — To string


Clone

  • « ReflectionProperty
  • ReflectionProperty::__construct »
  • PHP Manual
  • ReflectionProperty
  • Clone

ReflectionProperty::__clone

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::__clone — Clone

Descrição

private ReflectionProperty::__clone(): void

Clones.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Registro de Alterações

Versão | Descrição
8.1.0 | This method is no longer final.

Veja Também

  • ReflectionProperty::export() - Export
  • Object cloning


Construct a ReflectionProperty object

  • « ReflectionProperty::__clone
  • ReflectionProperty::export »
  • PHP Manual
  • ReflectionProperty
  • Construct a ReflectionProperty object

ReflectionProperty::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::__construct — Construct a ReflectionProperty object

Descrição

public ReflectionProperty::__construct(object|string $class, string $property)

Parâmetros

class

Either a string containing the name of the class to reflect, or an object.

property

The name of the property being reflected.

Erros/Exceções

Trying to get or set private or protected class property's values will result in an exception being thrown.

Exemplos

Exemplo #1 ReflectionProperty::__construct() example

<?php

class Str
{
public $length = 5;
}

// Create an instance of the ReflectionProperty class
$prop = new ReflectionProperty('Str', 'length');

// Print out basic information
printf(
"===> The%s%s%s%s property '%s' (which was %s)\n" .
" having the modifiers %s\n",
$prop->isPublic() ? ' public' : '',
$prop->isPrivate() ? ' private' : '',
$prop->isProtected() ? ' protected' : '',
$prop->isStatic() ? ' static' : '',
$prop->getName(),
$prop->isDefault() ? 'declared at compile-time' : 'created at run-time',
var_export(Reflection::getModifierNames($prop->getModifiers()), true)
);

// Create an instance of Str
$obj= new Str();

// Get current value
printf("---> Value is: ");
var_dump($prop->getValue($obj));

// Change value
$prop->setValue($obj, 10);
printf("---> Setting value to 10, new value is: ");
var_dump($prop->getValue($obj));

// Dump object
var_dump($obj);

?>

O exemplo acima produzirá algo semelhante a:

===> The public property 'length' (which was declared at compile-time)
     having the modifiers array (
  0 => 'public',
)
---> Value is: int(5)
---> Setting value to 10, new value is: int(10)
object(Str)#2 (1) {
  ["length"]=>
  int(10)
}

Exemplo #2 Getting value from private and protected properties using ReflectionProperty class

<?php

class Foo
{
public $x = 1;
protected $y = 2;
private $z = 3;
}

$obj = new Foo;

$prop = new ReflectionProperty('Foo', 'y');
$prop->setAccessible(true);
var_dump($prop->getValue($obj)); // int(2)

$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true);
var_dump($prop->getValue($obj)); // int(2)

?>

O exemplo acima produzirá algo semelhante a:

int(2)
int(3)

Veja Também

  • ReflectionProperty::getName() - Gets property name
  • Constructors


Export

  • « ReflectionProperty::__construct
  • ReflectionProperty::getAttributes »
  • PHP Manual
  • ReflectionProperty
  • Export

ReflectionProperty::export

(PHP 5, PHP 7)

ReflectionProperty::export — Export

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static ReflectionProperty::export(mixed $class, string $name, bool $return = ?): string

Exports a reflection.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

argument

A reflexão a ser exportada.

name

The property name.

return

Definir como true retornará a exportação, em vez de emiti-la. Definir como false (o padrão) fará o oposto.

Valor Retornado

Veja Também

  • ReflectionProperty::__toString() - To string


Gets Attributes

  • « ReflectionProperty::export
  • ReflectionProperty::getDeclaringClass »
  • PHP Manual
  • ReflectionProperty
  • Gets Attributes

ReflectionProperty::getAttributes

(PHP 8)

ReflectionProperty::getAttributes — Gets Attributes

Descrição

public ReflectionProperty::getAttributes(?string $name = null, int $flags = 0): array

Returns all attributes declared on this class property as an array of ReflectionAttribute.

Parâmetros

name

Filtra os resultados para incluir apenas instâncias de ReflectionAttribute para atributos correspondentes a este nome de classe.

flags

Flags para determinar como filtrar os resultados, se name for fornecido.

O padrão é 0, que retornará apenas os resultados para atributos que são da classe name.

A única outra opção disponível é usar ReflectionAttribute::IS_INSTANCEOF, que usará instanceof para filtragem.

Valor Retornado

Array of attributes, as a ReflectionAttribute object.

Exemplos

Exemplo #1 Basic usage

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public string $apple = 'apple';
}

$property = new ReflectionProperty('Basket', 'apple');
$attributes = $property->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
    [1] => Red
)

Exemplo #2 Filtering results by class name

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public string $apple = 'apple';
}

$property = new ReflectionProperty('Basket', 'apple');
$attributes = $property->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Fruit
)

Exemplo #3 Filtering results by class name, with inheritance

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

class Basket {
#[Fruit]
#[Red]
public string $apple = 'apple';
}

$property = new ReflectionProperty('Basket', 'apple');
$attributes = $property->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

O exemplo acima produzirá:

Array
(
    [0] => Red
)

Veja Também

  • ReflectionClass::getAttributes() - Gets Attributes
  • ReflectionClassConstant::getAttributes() - Gets Attributes
  • ReflectionFunctionAbstract::getAttributes() - Gets Attributes
  • ReflectionParameter::getAttributes() - Gets Attributes


Gets declaring class

  • « ReflectionProperty::getAttributes
  • ReflectionProperty::getDefaultValue »
  • PHP Manual
  • ReflectionProperty
  • Gets declaring class

ReflectionProperty::getDeclaringClass

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getDeclaringClass — Gets declaring class

Descrição

public ReflectionProperty::getDeclaringClass(): ReflectionClass

Gets the declaring class.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A ReflectionClass object.

Veja Também

  • ReflectionProperty::getName() - Gets property name


Returns the default value declared for a property

  • « ReflectionProperty::getDeclaringClass
  • ReflectionProperty::getDocComment »
  • PHP Manual
  • ReflectionProperty
  • Returns the default value declared for a property

ReflectionProperty::getDefaultValue

(PHP 8)

ReflectionProperty::getDefaultValue — Returns the default value declared for a property

Descrição

public ReflectionProperty::getDefaultValue(): mixed

Gets the implicit or explicitly declared default value for a property.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The default value if the property has any default value (including null). If there is no default value, then null is returned. It is not possible to differentiate between a null default value and an unitialized typed property. Use ReflectionProperty::hasDefaultValue() to detect the difference.

Exemplos

Exemplo #1 ReflectionProperty::getDefaultValue() example

<?php
class Foo {
public $bar = 1;
public ?int $baz;
public int $boing = 0;
public function __construct(public string $bak = "default") { }
}

$ro = new ReflectionClass(Foo::class);
var_dump($ro->getProperty('bar')->getDefaultValue());
var_dump($ro->getProperty('baz')->getDefaultValue());
var_dump($ro->getProperty('boing')->getDefaultValue());
var_dump($ro->getProperty('bak')->getDefaultValue());
?>

O exemplo acima produzirá:

int(1)
NULL
int(0)
NULL

Veja Também

  • ReflectionProperty::hasDefaultValue() - Checks if property has a default value declared


Gets the property doc comment

  • « ReflectionProperty::getDefaultValue
  • ReflectionProperty::getModifiers »
  • PHP Manual
  • ReflectionProperty
  • Gets the property doc comment

ReflectionProperty::getDocComment

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ReflectionProperty::getDocComment — Gets the property doc comment

Descrição

public ReflectionProperty::getDocComment(): string|false

Gets the doc comment for a property.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The doc comment if it exists, otherwise false.

Exemplos

Exemplo #1 ReflectionProperty::getDocComment() example

<?php
class Str
{
/**
* @var int The length of the string
*/
public $length = 5;
}

$prop = new ReflectionProperty('Str', 'length');

var_dump($prop->getDocComment());

?>

O exemplo acima produzirá algo semelhante a:

string(53) "/**
     * @var int  The length of the string
     */"

Exemplo #2 Multiple property declarations

If multiple property declarations are preceeded by a single doc comment, the doc comment refers to the first property only.

<?php
class Foo
{
/** @var string */
public $a, $b;
}
$class = new \ReflectionClass('Foo');
foreach ($class->getProperties() as $property) {
echo $property->getName() . ': ' . var_export($property->getDocComment(), true) . PHP_EOL;
}
?>

O exemplo acima produzirá:

a: '/** @var string */'
b: false

Veja Também

  • ReflectionProperty::getModifiers() - Gets the property modifiers
  • ReflectionProperty::getName() - Gets property name
  • ReflectionProperty::getValue() - Gets value


Gets the property modifiers

  • « ReflectionProperty::getDocComment
  • ReflectionProperty::getName »
  • PHP Manual
  • ReflectionProperty
  • Gets the property modifiers

ReflectionProperty::getModifiers

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getModifiers — Gets the property modifiers

Descrição

public ReflectionProperty::getModifiers(): int

Gets the modifiers.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A numeric representation of the modifiers. The actual meaning of these modifiers are described under predefined constants.

Veja Também

  • ReflectionProperty::isPrivate() - Checks if property is private
  • Reflection::getModifierNames() - Obtém os nomes dos modificadores


Gets property name

  • « ReflectionProperty::getModifiers
  • ReflectionProperty::getType »
  • PHP Manual
  • ReflectionProperty
  • Gets property name

ReflectionProperty::getName

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getName — Gets property name

Descrição

public ReflectionProperty::getName(): string

Gets the properties name.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The name of the reflected property.

Veja Também

  • ReflectionProperty::getValue() - Gets value


Gets a property's type

  • « ReflectionProperty::getName
  • ReflectionProperty::getValue »
  • PHP Manual
  • ReflectionProperty
  • Gets a property's type

ReflectionProperty::getType

(PHP 7 >= 7.4.0, PHP 8)

ReflectionProperty::getType — Gets a property's type

Descrição

public ReflectionProperty::getType(): ?ReflectionType

Gets the associated type of a property.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a ReflectionType if the property has a type, and null otherwise.

Exemplos

Exemplo #1 ReflectionProperty::getType() example

<?php
class User
{
public string $name;
}

$rp = new ReflectionProperty('User', 'name');
echo $rp->getType()->getName();
?>

O exemplo acima produzirá:

string

Veja Também

  • ReflectionProperty::hasType() - Checks if property has a type
  • ReflectionProperty::isInitialized() - Checks whether a property is initialized


Gets value

  • « ReflectionProperty::getType
  • ReflectionProperty::hasDefaultValue »
  • PHP Manual
  • ReflectionProperty
  • Gets value

ReflectionProperty::getValue

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getValue — Gets value

Descrição

public ReflectionProperty::getValue(?object $object = null): mixed

Gets the property's value.

Parâmetros

object

If the property is non-static an object must be provided to fetch the property from. If you want to fetch the default property without providing an object use ReflectionClass::getDefaultProperties() instead.

Valor Retornado

The current value of the property.

Registro de Alterações

Versão | Descrição
8.1.0 | Private and protected properties can be accessed by ReflectionProperty::getValue() right away. Previously, they needed to be made accessible by calling ReflectionProperty::setAccessible(); otherwise a ReflectionException was thrown.
8.0.0 | object is nullable now.

Exemplos

Exemplo #1 ReflectionProperty::getValue() example

<?php
class Foo {
public static $staticProperty = 'foobar';

public $property = 'barfoo';
protected $privateProperty = 'foofoo';
}

$reflectionClass = new ReflectionClass('Foo');

var_dump($reflectionClass->getProperty('staticProperty')->getValue());
var_dump($reflectionClass->getProperty('property')->getValue(new Foo));

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true); // only required prior to PHP 8.1.0
var_dump($reflectionProperty->getValue(new Foo));
?>

O exemplo acima produzirá:

string(6) "foobar"
string(6) "barfoo"
string(6) "foofoo"

Veja Também

  • ReflectionProperty::setValue() - Set property value
  • ReflectionProperty::setAccessible() - Set property accessibility
  • ReflectionClass::getDefaultProperties() - Gets default properties
  • ReflectionClass::getStaticPropertyValue() - Gets static property value


Checks if property has a default value declared

  • « ReflectionProperty::getValue
  • ReflectionProperty::hasType »
  • PHP Manual
  • ReflectionProperty
  • Checks if property has a default value declared

ReflectionProperty::hasDefaultValue

(PHP 8)

ReflectionProperty::hasDefaultValue — Checks if property has a default value declared

Descrição

public ReflectionProperty::hasDefaultValue(): bool

Checks whether the property was declared with a default value, including an implicit null default value. Only returns false for typed properties without default value (or dynamic properties).

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

If the property has any default value (including null) true is returned; if the property is typed without a default value declared or is a dynamic property, false is returned.

Exemplos

Exemplo #1 ReflectionProperty::hasDefaultValue() example

<?php
class Foo {
public $bar;
public ?int $baz;
public ?int $foo = null;
public int $boing;

public function __construct()
{
$this->ping = '';
}
}

$ro = new ReflectionObject(new Foo());
var_dump($ro->getProperty('bar')->hasDefaultValue());
var_dump($ro->getProperty('baz')->hasDefaultValue());
var_dump($ro->getProperty('foo')->hasDefaultValue());
var_dump($ro->getProperty('boing')->hasDefaultValue());
var_dump($ro->getProperty('ping')->hasDefaultValue()); // Dynamic property
var_dump($ro->getProperty('pong')->hasDefaultValue()); // Not defined property
?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Fatal error: Uncaught ReflectionException: Property Foo::$pong does not exist in example.php

Veja Também

  • ReflectionProperty::getDefaultValue() - Returns the default value declared for a property


Checks if property has a type

  • « ReflectionProperty::hasDefaultValue
  • ReflectionProperty::isDefault »
  • PHP Manual
  • ReflectionProperty
  • Checks if property has a type

ReflectionProperty::hasType

(PHP 7 >= 7.4.0, PHP 8)

ReflectionProperty::hasType — Checks if property has a type

Descrição

public ReflectionProperty::hasType(): bool

Checks if the property has a type associated with it.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if a type is specified, false otherwise.

Exemplos

Exemplo #1 ReflectionProperty::hasType() example

<?php
class User
{
public string $name;
}

$rp = new ReflectionProperty('User', 'name');
var_dump($rp->hasType());
?>

O exemplo acima produzirá:

bool(true)

Veja Também

  • ReflectionProperty::getType() - Gets a property's type
  • ReflectionProperty::isInitialized() - Checks whether a property is initialized


Checks if property is a default property

  • « ReflectionProperty::hasType
  • ReflectionProperty::isInitialized »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is a default property

ReflectionProperty::isDefault

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isDefault — Checks if property is a default property

Descrição

public ReflectionProperty::isDefault(): bool

Checks whether the property was declared at compile-time, or whether the property was dynamically declared at run-time.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the property was declared at compile-time, or false if it was created at run-time.

Exemplos

Exemplo #1 ReflectionProperty::isDefault() example

<?php
class Foo {
public $bar;
}

$o = new Foo();
$o->bar = 42;
$o->baz = 42;

$ro = new ReflectionObject($o);
var_dump($ro->getProperty('bar')->isDefault());
var_dump($ro->getProperty('baz')->isDefault());
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Veja Também

  • ReflectionProperty::getValue() - Gets value


Checks whether a property is initialized

  • « ReflectionProperty::isDefault
  • ReflectionProperty::isPrivate »
  • PHP Manual
  • ReflectionProperty
  • Checks whether a property is initialized

ReflectionProperty::isInitialized

(PHP 7 >= 7.4.0, PHP 8)

ReflectionProperty::isInitialized — Checks whether a property is initialized

Descrição

public ReflectionProperty::isInitialized(?object $object = null): bool

Checks whether a property is initialized.

Parâmetros

object

If the property is non-static an object must be provided to fetch the property from.

Valor Retornado

Returns false for typed properties prior to initialization, and for properties that have been explicitly unset(). For all other properties true will be returned.

Erros/Exceções

Throws a ReflectionException if the property is inaccessible. You can make a protected or private property accessible using ReflectionProperty::setAccessible().

Registro de Alterações

Versão | Descrição
8.0.0 | object is nullable now.

Exemplos

Exemplo #1 ReflectionProperty::isInitialized() example

<?php
class User
{
public string $name;
}

$rp = new ReflectionProperty('User', 'name');
$user = new User;
var_dump($rp->isInitialized($user));
$user->name = 'Nikita';
var_dump($rp->isInitialized($user));
?>

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • ReflectionProperty::hasType() - Checks if property has a type


Checks if property is private

  • « ReflectionProperty::isInitialized
  • ReflectionProperty::isPromoted »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is private

ReflectionProperty::isPrivate

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isPrivate — Checks if property is private

Descrição

public ReflectionProperty::isPrivate(): bool

Checks whether the property is private.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the property is private, false otherwise.

Veja Também

  • ReflectionProperty::isPublic() - Checks if property is public
  • ReflectionProperty::isProtected() - Checks if property is protected
  • ReflectionProperty::isReadOnly() - Checks if property is readonly
  • ReflectionProperty::isStatic() - Checks if property is static


Checks if property is promoted

  • « ReflectionProperty::isPrivate
  • ReflectionProperty::isProtected »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is promoted

ReflectionProperty::isPromoted

(PHP 8)

ReflectionProperty::isPromoted — Checks if property is promoted

Descrição

public ReflectionProperty::isPromoted(): bool

Checks whether the property is promoted

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the property is promoted, false otherwise.

Exemplos

Exemplo #1 ReflectionProperty::isPromoted() example

<?php
class Foo {
public $baz;

public function __construct(public $bar) {}
}

$o = new Foo(42);
$o->baz = 42;

$ro = new ReflectionObject($o);
var_dump($ro->getProperty('bar')->isPromoted());
var_dump($ro->getProperty('baz')->isPromoted());
?>

O exemplo acima produzirá:

bool(true)
bool(false)

Veja Também

  • ReflectionProperty::isDefault() - Checks if property is a default property
  • ReflectionProperty::isInitialized() - Checks whether a property is initialized
  • ReflectionProperty::getValue() - Gets value


Checks if property is protected

  • « ReflectionProperty::isPromoted
  • ReflectionProperty::isPublic »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is protected

ReflectionProperty::isProtected

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isProtected — Checks if property is protected

Descrição

public ReflectionProperty::isProtected(): bool

Checks whether the property is protected.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the property is protected, false otherwise.

Veja Também

  • ReflectionProperty::isPublic() - Checks if property is public
  • ReflectionProperty::isPrivate() - Checks if property is private
  • ReflectionProperty::isReadOnly() - Checks if property is readonly
  • ReflectionProperty::isStatic() - Checks if property is static


Checks if property is public

  • « ReflectionProperty::isProtected
  • ReflectionProperty::isReadOnly »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is public

ReflectionProperty::isPublic

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isPublic — Checks if property is public

Descrição

public ReflectionProperty::isPublic(): bool

Checks whether the property is public.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the property is public, false otherwise.

Veja Também

  • ReflectionProperty::isProtected() - Checks if property is protected
  • ReflectionProperty::isPrivate() - Checks if property is private
  • ReflectionProperty::isReadOnly() - Checks if property is readonly
  • ReflectionProperty::isStatic() - Checks if property is static


Checks if property is readonly

  • « ReflectionProperty::isPublic
  • ReflectionProperty::isStatic »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is readonly

ReflectionProperty::isReadOnly

(PHP 8 >= 8.1.0)

ReflectionProperty::isReadOnly — Checks if property is readonly

Descrição

public ReflectionProperty::isReadOnly(): bool

Checks whether the property is readonly.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the property is readonly, false otherwise.

Veja Também

  • ReflectionProperty::isPublic() - Checks if property is public
  • ReflectionProperty::isProtected() - Checks if property is protected
  • ReflectionProperty::isPrivate() - Checks if property is private
  • ReflectionProperty::isStatic() - Checks if property is static


Checks if property is static

  • « ReflectionProperty::isReadOnly
  • ReflectionProperty::setAccessible »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is static

ReflectionProperty::isStatic

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isStatic — Checks if property is static

Descrição

public ReflectionProperty::isStatic(): bool

Checks whether the property is static.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the property is static, false otherwise.

Veja Também

  • ReflectionProperty::isPublic() - Checks if property is public
  • ReflectionProperty::isProtected() - Checks if property is protected
  • ReflectionProperty::isPrivate() - Checks if property is private
  • ReflectionProperty::isReadOnly() - Checks if property is readonly


Set property accessibility

  • « ReflectionProperty::isStatic
  • ReflectionProperty::setValue »
  • PHP Manual
  • ReflectionProperty
  • Set property accessibility

ReflectionProperty::setAccessible

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionProperty::setAccessible — Set property accessibility

Descrição

public ReflectionProperty::setAccessible(bool $accessible): void

Enables access to a protected or private property via the ReflectionProperty::getValue() and ReflectionProperty::setValue() methods.

Nota: As of PHP 8.1.0, calling this method has no effect; all properties are accessible by default.

Parâmetros

accessible

true to allow accessibility, or false.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Simple Class definition

<?php
class MyClass
{
private $foo = 'bar';
}

$property = new ReflectionProperty("MyClass", "foo");
$property->setAccessible(true);

$obj = new MyClass();
echo $property->getValue($obj);
echo $obj->foo;
?>

O exemplo acima produzirá algo semelhante a:

bar
Fatal error: Uncaught Error: Cannot access private property MyClass::$foo in /in/WJqTv:12

Veja Também

  • ReflectionProperty::isPrivate() - Checks if property is private
  • ReflectionProperty::isProtected() - Checks if property is protected


Set property value

  • « ReflectionProperty::setAccessible
  • ReflectionProperty::__toString »
  • PHP Manual
  • ReflectionProperty
  • Set property value

ReflectionProperty::setValue

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::setValue — Set property value

Descrição

public ReflectionProperty::setValue(object $object, mixed $value): void
public ReflectionProperty::setValue(mixed $value): void

Sets (changes) the property's value.

Nota: As of PHP 8.3.0, calling this method with a single argument is deprecated, use ReflectionClass::setStaticPropertyValue() instead.

Parâmetros

object

If the property is non-static an object must be provided to change the property on. If the property is static a value of null must be to be provided.

value

The new value.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.3.0 | Calling this method with a single argument is deprecated, ReflectionClass::setStaticPropertyValue() should be used instead to modify static properties.
8.1.0 | Private and protected properties can be accessed by ReflectionProperty::setValue() right away. Previously, they needed to be made accessible by calling ReflectionProperty::setAccessible(); otherwise a ReflectionException was thrown.

Exemplos

Exemplo #1 ReflectionProperty::setValue() example

<?php
class Foo {
public static $staticProperty;

public $property;
protected $privateProperty;
}

$reflectionClass = new ReflectionClass('Foo');

// As of PHP 8.3, setValue should no longer be used to set static property value, use setStaticPropertyValue() instead
$reflectionClass->setStaticPropertyValue('staticProperty', 'foo');
var_dump(Foo::$staticProperty);

$foo = new Foo;

$reflectionClass->getProperty('property')->setValue($foo, 'bar');
var_dump($foo->property);

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true); // only required prior to PHP 8.1.0
$reflectionProperty->setValue($foo, 'foobar');
var_dump($reflectionProperty->getValue($foo));
?>

O exemplo acima produzirá:

string(3) "foo"
string(3) "bar"
string(6) "foobar"

Veja Também

  • ReflectionProperty::getValue() - Gets value
  • ReflectionProperty::setAccessible() - Set property accessibility
  • ReflectionClass::setStaticPropertyValue() - Sets static property value


To string

  • « ReflectionProperty::setValue
  • ReflectionType »
  • PHP Manual
  • ReflectionProperty
  • To string

ReflectionProperty::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::__toString — To string

Descrição

public ReflectionProperty::__toString(): string

Returns the string representation of the property.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The string.

Veja Também

  • __toString()


A classe ReflectionType

(PHP 7, PHP 8)

Introdução

A classe ReflectionType relata informações sobre o tipo de parâmetro/retorno de uma função ou o tipo de propriedade de uma classe. A extensão Reflection declara os seguintes subtipos:

  • ReflectionNamedType (a partir do PHP 7.1.0)
  • ReflectionUnionType (a partir do PHP 8.0.0)
  • ReflectionIntersectionType (a partir do PHP 8.1.0)

Resumo da classe

abstract class ReflectionType implements Stringable {
/* Métodos */
public allowsNull(): bool
public __toString(): string
}

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionType tornou-se abstrata e ReflectionType::isBuiltin() foi movida para ReflectionNamedType::isBuiltin().

Índice

  • ReflectionType::allowsNull — Checks if null is allowed
  • ReflectionType::__toString — To string


Checks if null is allowed

  • « ReflectionType
  • ReflectionType::__toString »
  • PHP Manual
  • ReflectionType
  • Checks if null is allowed

ReflectionType::allowsNull

(PHP 7, PHP 8)

ReflectionType::allowsNull — Checks if null is allowed

Descrição

public ReflectionType::allowsNull(): bool

Checks whether the parameter allows null.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if null is allowed, otherwise false

Exemplos

Exemplo #1 ReflectionType::allowsNull() example

<?php
function someFunction(string $param, stdClass $param2 = null) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->getType()->allowsNull());
var_dump($reflectionParams[1]->getType()->allowsNull());

O exemplo acima produzirá:

bool(false)
bool(true)

Veja Também

  • ReflectionNamedType::isBuiltin() - Checks if it is a built-in type
  • ReflectionType::__toString() - To string
  • ReflectionParameter::getType() - Gets a parameter's type


To string

  • « ReflectionType::allowsNull
  • ReflectionUnionType »
  • PHP Manual
  • ReflectionType
  • To string

ReflectionType::__toString

(PHP 7, PHP 8)

ReflectionType::__toString — To string

Descrição

public ReflectionType::__toString(): string

Gets the parameter type name.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the type of the parameter.

Registro de Alterações

Versão | Descrição
8.0.0 | ReflectionType::__toString() has been undeprecated.
7.1.0 | ReflectionType::__toString() has been deprecated.

Exemplos

Exemplo #1 ReflectionType::__toString() example

<?php
function someFunction(string $param) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

echo $reflectionParam->getType();

O exemplo acima produzirá algo semelhante a:

string

Veja Também

  • ReflectionNamedType::getName() - Obtém o nome do tipo como uma string
  • ReflectionNamedType::isBuiltin() - Checks if it is a built-in type
  • ReflectionType::allowsNull() - Checks if null is allowed
  • ReflectionUnionType::getTypes() - Returns the types included in the union type
  • ReflectionParameter::getType() - Gets a parameter's type


A classe ReflectionUnionType

(PHP 8)

Introdução

Resumo da classe

class ReflectionUnionType extends ReflectionType {
/* Métodos */
public getTypes(): array
/* Métodos herdados */
public ReflectionType::allowsNull(): bool
public ReflectionType::__toString(): string
}

Índice

  • ReflectionUnionType::getTypes — Returns the types included in the union type


Returns the types included in the union type

  • « ReflectionUnionType
  • ReflectionGenerator »
  • PHP Manual
  • ReflectionUnionType
  • Returns the types included in the union type

ReflectionUnionType::getTypes

(PHP 8)

ReflectionUnionType::getTypes — Returns the types included in the union type

Descrição

public ReflectionUnionType::getTypes(): array

Returns the reflections of types included in the union type.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of ReflectionType objects.

Exemplos

Exemplo #1 ReflectionUnionType::getTypes() example

<?php
function someFunction(int|float $number) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

var_dump($reflectionParam->getType()->getTypes());

O exemplo acima produzirá algo semelhante a:

array(2) {
    [0] =>
    class ReflectionNamedType#4(0) {
    }
    [1] =>
    class ReflectionNamedType#5(0) {
    }
}

Veja Também

  • ReflectionType::allowsNull() - Checks if null is allowed
  • ReflectionParameter::getType() - Gets a parameter's type


A classe ReflectionGenerator

(PHP 7, PHP 8)

Introdução

A classe ReflectionGenerator relata informações sobre um gerador.

Resumo da classe

final class ReflectionGenerator {
/* Métodos */
public __construct(Generator $generator)
public getExecutingFile(): string
public getExecutingGenerator(): Generator
public getExecutingLine(): int
public getFunction(): ReflectionFunctionAbstract
public getThis(): ?object
public getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array
}

Registro de Alterações

Versão | Descrição
8.0.0 | A classe é final agora.

Índice

  • ReflectionGenerator::__construct — Constructs a ReflectionGenerator object
  • ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator
  • ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object
  • ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator
  • ReflectionGenerator::getFunction — Gets the function name of the generator
  • ReflectionGenerator::getThis — Gets the $this value of the generator
  • ReflectionGenerator::getTrace — Gets the trace of the executing generator


Constructs a ReflectionGenerator object

  • « ReflectionGenerator
  • ReflectionGenerator::getExecutingFile »
  • PHP Manual
  • ReflectionGenerator
  • Constructs a ReflectionGenerator object

ReflectionGenerator::__construct

(PHP 7, PHP 8)

ReflectionGenerator::__construct — Constructs a ReflectionGenerator object

Descrição

public ReflectionGenerator::__construct(Generator $generator)

Constructs a ReflectionGenerator object.

Parâmetros

generator

A generator object.

Exemplos

Exemplo #1 ReflectionGenerator::__construct() example

<?php

function gen()
{
yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

echo <<< output
{$reflectionGen->getFunction()->name}
Line: {$reflectionGen->getExecutingLine()}
File: {$reflectionGen->getExecutingFile()}
output;

O exemplo acima produzirá algo semelhante a:

gen
Line: 5
File: /path/to/file/example.php

Veja Também

  • ReflectionGenerator::getFunction() - Gets the function name of the generator
  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the file name of the currently executing generator

  • « ReflectionGenerator::__construct
  • ReflectionGenerator::getExecutingGenerator »
  • PHP Manual
  • ReflectionGenerator
  • Gets the file name of the currently executing generator

ReflectionGenerator::getExecutingFile

(PHP 7, PHP 8)

ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator

Descrição

public ReflectionGenerator::getExecutingFile(): string

Get the full path and file name of the currently executing generator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the full path and file name of the currently executing generator.

Exemplos

Exemplo #1 ReflectionGenerator::getExecutingFile() example

<?php

class GenExample
{
public function gen()
{
yield 1;
}
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "File: {$reflectionGen->getExecutingFile()}";

O exemplo acima produzirá algo semelhante a:

File: /path/to/file/example.php

Veja Também

  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingGenerator() - Gets the executing Generator object


Gets the executing Generator object

  • « ReflectionGenerator::getExecutingFile
  • ReflectionGenerator::getExecutingLine »
  • PHP Manual
  • ReflectionGenerator
  • Gets the executing Generator object

ReflectionGenerator::getExecutingGenerator

(PHP 7, PHP 8)

ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object

Descrição

public ReflectionGenerator::getExecutingGenerator(): Generator

Get the executing Generator object

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the currently executing Generator object.

Exemplos

Exemplo #1 ReflectionGenerator::getExecutingGenerator() example

<?php

class GenExample
{
public function gen()
{
yield 1;
}
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

$gen2 = $reflectionGen->getExecutingGenerator();

var_dump($gen2 === $gen);
var_dump($gen2->current());

O exemplo acima produzirá algo semelhante a:

bool(true)
int(1);

Veja Também

  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the currently executing line of the generator

  • « ReflectionGenerator::getExecutingGenerator
  • ReflectionGenerator::getFunction »
  • PHP Manual
  • ReflectionGenerator
  • Gets the currently executing line of the generator

ReflectionGenerator::getExecutingLine

(PHP 7, PHP 8)

ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator

Descrição

public ReflectionGenerator::getExecutingLine(): int

Get the currently executing line number of the generator.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the line number of the currently executing statement in the generator.

Exemplos

Exemplo #1 ReflectionGenerator::getExecutingLine() example

<?php

class GenExample
{
public function gen()
{
yield 1;
}
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "Line: {$reflectionGen->getExecutingLine()}";

O exemplo acima produzirá algo semelhante a:

Line: 7

Veja Também

  • ReflectionGenerator::getExecutingGenerator() - Gets the executing Generator object
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the function name of the generator

  • « ReflectionGenerator::getExecutingLine
  • ReflectionGenerator::getThis »
  • PHP Manual
  • ReflectionGenerator
  • Gets the function name of the generator

ReflectionGenerator::getFunction

(PHP 7, PHP 8)

ReflectionGenerator::getFunction — Gets the function name of the generator

Descrição

public ReflectionGenerator::getFunction(): ReflectionFunctionAbstract

Enables the function name of the generator to be obtained by returning a class derived from ReflectionFunctionAbstract.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a ReflectionFunctionAbstract class. This will be ReflectionFunction for functions, or ReflectionMethod for methods.

Exemplos

Exemplo #1 ReflectionGenerator::getFunction() example

<?php

function gen()
{
yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

var_dump($reflectionGen->getFunction());

O exemplo acima produzirá algo semelhante a:

object(ReflectionFunction)#3 (1) {
  ["name"]=>
  string(3) "gen"
}

Veja Também

  • ReflectionGenerator::getThis() - Gets the $this value of the generator
  • ReflectionGenerator::getTrace() - Gets the trace of the executing generator


Gets the $this value of the generator

  • « ReflectionGenerator::getFunction
  • ReflectionGenerator::getTrace »
  • PHP Manual
  • ReflectionGenerator
  • Gets the $this value of the generator

ReflectionGenerator::getThis

(PHP 7, PHP 8)

ReflectionGenerator::getThis — Gets the $this value of the generator

Descrição

public ReflectionGenerator::getThis(): ?object

Get the $this value that the generator has access to.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the $this value, or null if the generator was not created in a class context.

Exemplos

Exemplo #1 ReflectionGenerator::getThis() example

<?php

class GenExample
{
public function gen()
{
yield 1;
}
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

var_dump($reflectionGen->getThis());

O exemplo acima produzirá algo semelhante a:

object(GenExample)#3 (0) {
}

Veja Também

  • ReflectionGenerator::getFunction() - Gets the function name of the generator
  • ReflectionGenerator::getTrace() - Gets the trace of the executing generator


Gets the trace of the executing generator

  • « ReflectionGenerator::getThis
  • ReflectionFiber »
  • PHP Manual
  • ReflectionGenerator
  • Gets the trace of the executing generator

ReflectionGenerator::getTrace

(PHP 7, PHP 8)

ReflectionGenerator::getTrace — Gets the trace of the executing generator

Descrição

public ReflectionGenerator::getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array

Get the trace of the currently executing generator.

Parâmetros

options

The value of options can be any of the following flags.

Available options
Option | Description
DEBUG_BACKTRACE_PROVIDE_OBJECT | Default.
DEBUG_BACKTRACE_IGNORE_ARGS | Don't include the argument information for functions in the stack trace.

Valor Retornado

Returns the trace of the currently executing generator.

Exemplos

Exemplo #1 ReflectionGenerator::getTrace() example

<?php
function foo() {
yield 1;
}

function bar()
{
yield from foo();
}

function baz()
{
yield from bar();
}

$gen = baz();
$gen->valid(); // start the generator

var_dump((new ReflectionGenerator($gen))->getTrace());

O exemplo acima produzirá algo semelhante a:

array(2) {
  [0]=>
  array(4) {
    ["file"]=>
    string(18) "example.php"
    ["line"]=>
    int(8)
    ["function"]=>
    string(3) "foo"
    ["args"]=>
    array(0) {
    }
  }
  [1]=>
  array(4) {
    ["file"]=>
    string(18) "example.php"
    ["line"]=>
    int(12)
    ["function"]=>
    string(3) "bar"
    ["args"]=>
    array(0) {
    }
  }
}

Veja Também

  • ReflectionGenerator::getFunction() - Gets the function name of the generator
  • ReflectionGenerator::getThis() - Gets the $this value of the generator


A classe ReflectionFiber

(PHP 8 >= 8.1.0)

Introdução

Resumo da classe

final class ReflectionFiber {
/* Métodos */
public __construct(Fiber $fiber)
public getCallable(): callable
public getExecutingFile(): ?string
public getExecutingLine(): ?int
public getFiber(): Fiber
public getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array
}

Índice

  • ReflectionFiber::__construct — Constructs a ReflectionFiber object
  • ReflectionFiber::getCallable — Gets the callable used to create the Fiber
  • ReflectionFiber::getExecutingFile — Get the file name of the current execution point
  • ReflectionFiber::getExecutingLine — Get the line number of the current execution point
  • ReflectionFiber::getFiber — Get the reflected Fiber instance
  • ReflectionFiber::getTrace — Get the backtrace of the current execution point


Constructs a ReflectionFiber object

  • « ReflectionFiber
  • ReflectionFiber::getCallable »
  • PHP Manual
  • ReflectionFiber
  • Constructs a ReflectionFiber object

ReflectionFiber::__construct

(PHP 8 >= 8.1.0)

ReflectionFiber::__construct — Constructs a ReflectionFiber object

Descrição

public ReflectionFiber::__construct(Fiber $fiber)

Constructs a ReflectionFiber object.

Parâmetros

fiber

The Fiber to reflect.


Gets the callable used to create the Fiber

  • « ReflectionFiber::__construct
  • ReflectionFiber::getExecutingFile »
  • PHP Manual
  • ReflectionFiber
  • Gets the callable used to create the Fiber

ReflectionFiber::getCallable

(PHP 8 >= 8.1.0)

ReflectionFiber::getCallable — Gets the callable used to create the Fiber

Descrição

public ReflectionFiber::getCallable(): callable

Returns the callable used to construct the Fiber. If the fiber has terminated, an Error is thrown.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The callable used to create the Fiber.


Get the file name of the current execution point

  • « ReflectionFiber::getCallable
  • ReflectionFiber::getExecutingLine »
  • PHP Manual
  • ReflectionFiber
  • Get the file name of the current execution point

ReflectionFiber::getExecutingFile

(PHP 8 >= 8.1.0)

ReflectionFiber::getExecutingFile — Get the file name of the current execution point

Descrição

public ReflectionFiber::getExecutingFile(): ?string

Returns the full path and file name of the current execution point in the reflected Fiber. If the fiber has not been started or has terminated, an Error is thrown.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The full path and file name of the reflected fiber. If the reflected fiber is used outside a user-defined function, null is returned.


Get the line number of the current execution point

  • « ReflectionFiber::getExecutingFile
  • ReflectionFiber::getFiber »
  • PHP Manual
  • ReflectionFiber
  • Get the line number of the current execution point

ReflectionFiber::getExecutingLine

(PHP 8 >= 8.1.0)

ReflectionFiber::getExecutingLine — Get the line number of the current execution point

Descrição

public ReflectionFiber::getExecutingLine(): ?int

Returns the line number of the current execution point in the reflected Fiber. If the reflected fiber is used outside a user-defined function, null is returned. If the fiber has not been started or has terminated, an Error is thrown.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The line number of the current execution point in the fiber.


Get the reflected Fiber instance

  • « ReflectionFiber::getExecutingLine
  • ReflectionFiber::getTrace »
  • PHP Manual
  • ReflectionFiber
  • Get the reflected Fiber instance

ReflectionFiber::getFiber

(PHP 8 >= 8.1.0)

ReflectionFiber::getFiber — Get the reflected Fiber instance

Descrição

public ReflectionFiber::getFiber(): Fiber

Returns the Fiber instance being reflected.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The Fiber instance being reflected.


Get the backtrace of the current execution point

  • « ReflectionFiber::getFiber
  • ReflectionIntersectionType »
  • PHP Manual
  • ReflectionFiber
  • Get the backtrace of the current execution point

ReflectionFiber::getTrace

(PHP 8 >= 8.1.0)

ReflectionFiber::getTrace — Get the backtrace of the current execution point

Descrição

public ReflectionFiber::getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array

Get the backtrace of the current execution point in the reflected Fiber.

Parâmetros

options

The value of options can be any of the following flags.

Available options
Option | Descrição
DEBUG_BACKTRACE_PROVIDE_OBJECT | Default.
DEBUG_BACKTRACE_IGNORE_ARGS | Don't include the argument information for functions in the stack trace.

Valor Retornado

The backtrace of the current execution point in the fiber.


A classe ReflectionIntersectionType

(PHP 8 >= 8.1.0)

Introdução

Resumo da classe

class ReflectionIntersectionType extends ReflectionType {
/* Métodos */
public getTypes(): array
/* Métodos herdados */
public ReflectionType::allowsNull(): bool
public ReflectionType::__toString(): string
}

Índice

  • ReflectionIntersectionType::getTypes — Returns the types included in the intersection type


Returns the types included in the intersection type

  • « ReflectionIntersectionType
  • ReflectionReference »
  • PHP Manual
  • ReflectionIntersectionType
  • Returns the types included in the intersection type

ReflectionIntersectionType::getTypes

(PHP 8 >= 8.1.0)

ReflectionIntersectionType::getTypes — Returns the types included in the intersection type

Descrição

public ReflectionIntersectionType::getTypes(): array

Returns the reflections of types included in the intersection type.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of ReflectionType objects.

Exemplos

Exemplo #1 ReflectionIntersectionType::getTypes() example

<?php

function someFunction(Iterator&Countable $value) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

var_dump($reflectionParam->getType()->getTypes());
?>

O exemplo acima produzirá algo semelhante a:

array(2) {
    [0] =>
    class ReflectionNamedType#4(0) {
    }
    [1] =>
    class ReflectionNamedType#5(0) {
    }
}

Veja Também

  • ReflectionType::allowsNull() - Checks if null is allowed
  • ReflectionParameter::getType() - Gets a parameter's type


A classe ReflectionReference

(PHP 7 >= 7.4.0, PHP 8)

Introdução

A classe ReflectionReference fornece informações sobre uma referência.

Resumo da classe

final class ReflectionReference {
/* Métodos */
private __construct()
public static fromArrayElement(array $array, int|string $key): ?ReflectionReference
public getId(): string
}

Índice

  • ReflectionReference::__construct — Private constructor to disallow direct instantiation
  • ReflectionReference::fromArrayElement — Create a ReflectionReference from an array element
  • ReflectionReference::getId — Get unique ID of a reference


Private constructor to disallow direct instantiation

  • « ReflectionReference
  • ReflectionReference::fromArrayElement »
  • PHP Manual
  • ReflectionReference
  • Private constructor to disallow direct instantiation

ReflectionReference::__construct

(Não há informação de versão disponível, talvez apenas no Git)

ReflectionReference::__construct — Private constructor to disallow direct instantiation

Descrição

private ReflectionReference::__construct()

Parâmetros

Esta função não possui parâmetros.


Create a ReflectionReference from an array element

  • « ReflectionReference::__construct
  • ReflectionReference::getId »
  • PHP Manual
  • ReflectionReference
  • Create a ReflectionReference from an array element

ReflectionReference::fromArrayElement

(PHP 7 >= 7.4.0, PHP 8)

ReflectionReference::fromArrayElement — Create a ReflectionReference from an array element

Descrição

public static ReflectionReference::fromArrayElement(array $array, int|string $key): ?ReflectionReference

Creates a ReflectionReference from an array element.

Parâmetros

array

The array which contains the potential reference.

key

The key; either an int or a string.

Valor Retornado

Returns a ReflectionReference instance if $array[$key] is a reference, or null otherwise.

Erros/Exceções

If array is not an array, or key is not an int or string, a TypeError is thrown. If $array[$key] does not exist, a ReflectionException is thrown.


Get unique ID of a reference

  • « ReflectionReference::fromArrayElement
  • ReflectionAttribute »
  • PHP Manual
  • ReflectionReference
  • Get unique ID of a reference

ReflectionReference::getId

(PHP 7 >= 7.4.0, PHP 8)

ReflectionReference::getId — Get unique ID of a reference

Descrição

public ReflectionReference::getId(): string

Returns an ID which is unique for the reference for the lifetime of that reference. This ID can be used to compare references for equality, or to maintain a map of known references.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a string of unspecified format.

Exemplos

Exemplo #1 Basic ReflectionReference::getId() usage

<?php
$val1 = 'foo';
$val2 = 'bar';
$arr = [&$val1, &$val2, &$val1];

$rr1 = ReflectionReference::fromArrayElement($arr, 0);
$rr2 = ReflectionReference::fromArrayElement($arr, 1);
$rr3 = ReflectionReference::fromArrayElement($arr, 2);

var_dump($rr1->getId() === $rr2->getId());
var_dump($rr1->getId() === $rr3->getId());
?>

O exemplo acima produzirá:

bool(false)
bool(true)


A classe ReflectionAttribute

(PHP 8)

Introdução

A classe ReflectionAttribute fornece informações sobre um Atributo.

Resumo da classe

class ReflectionAttribute implements Reflector {
/* Constantes */
public const int IS_INSTANCEOF;
/* Métodos */
private __construct()
public getArguments(): array
public getName(): string
public getTarget(): int
public isRepeated(): bool
public newInstance(): object
}

Constantes pré-definidas

ReflectionAttribute Flags

ReflectionAttribute::IS_INSTANCEOF

Recupere atributos usando uma verificação instanceof.

Nota:

Os valores dessas constantes podem mudar entre as versões do PHP. É recomendado sempre usar as constantes e não confiar diretamente nos valores.

Índice

  • ReflectionAttribute::__construct — Construtor privado para evitar a instanciação direta
  • ReflectionAttribute::getArguments — Obtém os argumentos passados para o atributo
  • ReflectionAttribute::getName — Obtém o nome do atributo
  • ReflectionAttribute::getTarget — Retorna o alvo do atributo como uma máscara de bits
  • ReflectionAttribute::isRepeated — Retorna se o atributo deste nome foi repetido em um elemento de código
  • ReflectionAttribute::newInstance — Instancia a classe de atributo representada por esta classe ReflectionAttribute e argumentos


Construtor privado para evitar a instanciação direta

  • « ReflectionAttribute
  • ReflectionAttribute::getArguments »
  • PHP Manual
  • ReflectionAttribute
  • Construtor privado para evitar a instanciação direta

ReflectionAttribute::__construct

(PHP 8)

ReflectionAttribute::__construct — Construtor privado para evitar a instanciação direta

Descrição

private ReflectionAttribute::__construct()

Parâmetros

Esta função não possui parâmetros.


Obtém os argumentos passados para o atributo

  • « ReflectionAttribute::__construct
  • ReflectionAttribute::getName »
  • PHP Manual
  • ReflectionAttribute
  • Obtém os argumentos passados para o atributo

ReflectionAttribute::getArguments

(PHP 8)

ReflectionAttribute::getArguments — Obtém os argumentos passados para o atributo

Descrição

public ReflectionAttribute::getArguments(): array

Obtém os argumentos passados para o atributo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Os argumentos passados para o atributo.


Obtém o nome do atributo

  • « ReflectionAttribute::getArguments
  • ReflectionAttribute::getTarget »
  • PHP Manual
  • ReflectionAttribute
  • Obtém o nome do atributo

ReflectionAttribute::getName

(PHP 8)

ReflectionAttribute::getName — Obtém o nome do atributo

Descrição

public ReflectionAttribute::getName(): string

Obtém o nome do atributo.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

nome do atributo.


Retorna o alvo do atributo como uma máscara de bits

  • « ReflectionAttribute::getName
  • ReflectionAttribute::isRepeated »
  • PHP Manual
  • ReflectionAttribute
  • Retorna o alvo do atributo como uma máscara de bits

ReflectionAttribute::getTarget

(PHP 8)

ReflectionAttribute::getTarget — Retorna o alvo do atributo como uma máscara de bits

Descrição

public ReflectionAttribute::getTarget(): int

Obtém o alvo do atributo como uma máscara de bits.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Obtém o alvo do atributo como uma máscara de bits.


Retorna se o atributo deste nome foi repetido em um elemento de código

  • « ReflectionAttribute::getTarget
  • ReflectionAttribute::newInstance »
  • PHP Manual
  • ReflectionAttribute
  • Retorna se o atributo deste nome foi repetido em um elemento de código

ReflectionAttribute::isRepeated

(PHP 8)

ReflectionAttribute::isRepeated — Retorna se o atributo deste nome foi repetido em um elemento de código

Descrição

public ReflectionAttribute::isRepeated(): bool

Retorna se o atributo deste nome foi repetido em um elemento de código.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true quando o atributo é usado repetidamente, caso contrário, false.


Instancia a classe de atributo representada por esta classe ReflectionAttribute e argumentos

  • « ReflectionAttribute::isRepeated
  • Reflector »
  • PHP Manual
  • ReflectionAttribute
  • Instancia a classe de atributo representada por esta classe ReflectionAttribute e argumentos

ReflectionAttribute::newInstance

(PHP 8)

ReflectionAttribute::newInstance — Instancia a classe de atributo representada por esta classe ReflectionAttribute e argumentos

Descrição

public ReflectionAttribute::newInstance(): object

IInstancia a classe de atributo representada por esta classe ReflectionAttribute e argumentos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nova instância do atributo.


A interface Reflector

(PHP 5, PHP 7, PHP 8)

Introdução

Reflector é uma interface implementada por todas as classes de Reflexão exportáveis.

Resumo da Interface

interface Reflector extends Stringable {
/* Métodos herdados */
public Stringable::__toString(): string
}

Registro de Alterações

Versão | Descrição
8.0.0 | Reflector::export() foi removido.
8.0.0 | Reflector estende Stringable agora. Ele herda Stringable::__toString(), substituindo Reflector::__toString().

Veja Também

  • Reflector::export()

Índice

  • Reflector::export — Exports


Exports

  • « Reflector
  • ReflectionException »
  • PHP Manual
  • Reflector
  • Exports

Reflector::export

(PHP 5, PHP 7)

Reflector::export — Exports

Aviso

Esta função tornou-se DEFASADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

public static Reflector::export(): string

Exports.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Veja Também

  • Reflection::__toString()


Classe ReflectionException

(PHP 5, PHP 7, PHP 8)

Introdução

Classe ReflectionException.

Resumo da classe

class ReflectionException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Manipulação de variável

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções para Manipulação de variáveis
    • boolval — Obtém o valor booleano de uma variável
    • debug_zval_dump — Exibe na saída uma representação em string de uma estrutura zval interna
    • doubleval — Sinônimo de floatval
    • empty — Determina se uma variável está vazia
    • floatval — Obtém o valor em ponto flutuante da variável
    • get_debug_type — Obtém o nome do tipo de uma variável de forma adequada a depuração
    • get_defined_vars — Retorna um array com todas variáveis definidas
    • get_resource_id — Retorna um idenficador inteiro para o recurso informado
    • get_resource_type — Retorna o tipo de recurso
    • gettype — Obtém o tipo de uma variável
    • intval — Obtém o valor em número inteiro de uma variável
    • is_array — Verifica se a variável é um array
    • is_bool — Verifica se a variável é um booleano
    • is_callable — Verifica se um valor pode ser chamado como uma função a partir do escopo atual.
    • is_countable — Verifica se o conteúdo de uma variável é um valor contável
    • is_double — Sinônimo de is_float
    • is_float — Verifica se a variável é do tipo float
    • is_int — Informa se o tipo de uma variável é um inteiro
    • is_integer — Sinônimo de is_int
    • is_iterable — Verifica se o conteúdo de uma variável é um valor iterável
    • is_long — Sinônimo de is_int
    • is_null — Verifica se uma variável é null
    • is_numeric — Verifica se uma variável é um número ou uma string numérica
    • is_object — Verifica se uma variável é um objeto
    • is_real — Sinônimo de is_float
    • is_resource — Verifica se uma variável é um recurso
    • is_scalar — Verifica se é uma váriavel é escalar
    • is_string — Verifica se o tipo de uma variável é string
    • isset — Determina se uma variável está declarada e é diferente de null
    • print_r — Exibe informação legível sobre uma variável
    • serialize — Gera uma representação armazenável de um valor
    • settype — Define o tipo de uma variável
    • strval — Retorna o valor string de uma variável
    • unserialize — Cria um valor PHP a partir de uma representação armazenada
    • unset — Remove a definição de uma variável informada
    • var_dump — Despeja na saída informações sobre uma variável
    • var_export — Mostra ou retorna uma representação string analisável de uma variável


Introdução

Para maiores informações do comportamento de variáveis veja Variavéis localizada na seção do manual Referências da Linguagem.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de Configuração de Variáveis
Nome | Padrão | Modificável | Registro de Alterações
unserialize_callback_func | null | INI_ALL |
unserialize_max_depth | "4096" | INI_ALL | Disponível a partir do PHP 7.4.0.
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

unserialize_callback_func string

A função de retorno é chamada quando a função unserialize() tentar utilizar uma classe indefinida. Um aviso aparecerá se a função de retorno especificada não estiver definida, ou se a função de retorno falhar ao definir a classe ausente.

Veja também unserialize() e Autoloading de Classes.

unserialize_max_depth int

A profundidade máxima de estruturas permitida durante a desserialização ao usar unserialize(), com a intenção de evitar sobrecargas de pilha. Este limite pode ser desativado definindo unserialize_max_depth=0.

Veja também unserialize() e Autoloading de Classes.


  • « Tipos de Recurso
  • Funções para Manipulação de variáveis »
  • PHP Manual
  • Manipulação de variável
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Funções para Manipulação de variáveis

Índice

  • boolval — Obtém o valor booleano de uma variável
  • debug_zval_dump — Exibe na saída uma representação em string de uma estrutura zval interna
  • doubleval — Sinônimo de floatval
  • empty — Determina se uma variável está vazia
  • floatval — Obtém o valor em ponto flutuante da variável
  • get_debug_type — Obtém o nome do tipo de uma variável de forma adequada a depuração
  • get_defined_vars — Retorna um array com todas variáveis definidas
  • get_resource_id — Retorna um idenficador inteiro para o recurso informado
  • get_resource_type — Retorna o tipo de recurso
  • gettype — Obtém o tipo de uma variável
  • intval — Obtém o valor em número inteiro de uma variável
  • is_array — Verifica se a variável é um array
  • is_bool — Verifica se a variável é um booleano
  • is_callable — Verifica se um valor pode ser chamado como uma função a partir do escopo atual.
  • is_countable — Verifica se o conteúdo de uma variável é um valor contável
  • is_double — Sinônimo de is_float
  • is_float — Verifica se a variável é do tipo float
  • is_int — Informa se o tipo de uma variável é um inteiro
  • is_integer — Sinônimo de is_int
  • is_iterable — Verifica se o conteúdo de uma variável é um valor iterável
  • is_long — Sinônimo de is_int
  • is_null — Verifica se uma variável é null
  • is_numeric — Verifica se uma variável é um número ou uma string numérica
  • is_object — Verifica se uma variável é um objeto
  • is_real — Sinônimo de is_float
  • is_resource — Verifica se uma variável é um recurso
  • is_scalar — Verifica se é uma váriavel é escalar
  • is_string — Verifica se o tipo de uma variável é string
  • isset — Determina se uma variável está declarada e é diferente de null
  • print_r — Exibe informação legível sobre uma variável
  • serialize — Gera uma representação armazenável de um valor
  • settype — Define o tipo de uma variável
  • strval — Retorna o valor string de uma variável
  • unserialize — Cria um valor PHP a partir de uma representação armazenada
  • unset — Remove a definição de uma variável informada
  • var_dump — Despeja na saída informações sobre uma variável
  • var_export — Mostra ou retorna uma representação string analisável de uma variável


Obtém o valor booleano de uma variável

  • « Funções para Manipulação de variáveis
  • debug_zval_dump »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Obtém o valor booleano de uma variável

boolval

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

boolval — Obtém o valor booleano de uma variável

Descrição

boolval(mixed $value): bool

Retorna o valor bool do parâmetro value.

Parâmetros

value

O valor escalar a ser convertido para um bool.

Valor Retornado

O valor bool do parâmetrovalue.

Exemplos

Exemplo #1 Exemplos da função boolval()

<?php
echo '0: '.(boolval(0) ? 'true' : 'false')."\n";
echo '42: '.(boolval(42) ? 'true' : 'false')."\n";
echo '0.0: '.(boolval(0.0) ? 'true' : 'false')."\n";
echo '4.2: '.(boolval(4.2) ? 'true' : 'false')."\n";
echo '"": '.(boolval("") ? 'true' : 'false')."\n";
echo '"string": '.(boolval("string") ? 'true' : 'false')."\n";
echo '"0": '.(boolval("0") ? 'true' : 'false')."\n";
echo '"1": '.(boolval("1") ? 'true' : 'false')."\n";
echo '[1, 2]: '.(boolval([1, 2]) ? 'true' : 'false')."\n";
echo '[]: '.(boolval([]) ? 'true' : 'false')."\n";
echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."\n";
?>

O exemplo acima produzirá:

0:        false
42:       true
0.0:      false
4.2:      true
"":       false
"string": true
"0":      false
"1":      true
[1, 2]:   true
[]:       false
stdClass: true

Veja Também

  • floatval() - Obtém o valor em ponto flutuante da variável
  • intval() - Obtém o valor em número inteiro de uma variável
  • strval() - Retorna o valor string de uma variável
  • settype() - Define o tipo de uma variável
  • is_bool() - Verifica se a variável é um booleano
  • Manipulação de tipos


Exibe na saída uma representação em string de uma estrutura zval interna

  • « boolval
  • doubleval »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Exibe na saída uma representação em string de uma estrutura zval interna

debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

debug_zval_dump — Exibe na saída uma representação em string de uma estrutura zval interna

Descrição

debug_zval_dump(mixed $value, mixed ...$values): void

Descarrega para a saída uma representação em string de uma estrutura zval interna (valor Zend). Muito útil para entender ou depurar detalhes de implementação do motor Zend ou de extensões PHP.

Parâmetros

value

A variável ou valor a exibir.

values

Mais variáveis ou valores a exibir.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de debug_zval_dump()

<?php
$var1 = 'Hello';
$var1 .= ' World';
$var2 = $var1;

debug_zval_dump($var1);
?>

O exemplo acima produzirá:

string(11) "Hello World" refcount(3)

Nota: Entendendo o refcount (contagem de referências)

O valor de refcount mostrado por este função pode ser surpreendente sem um entendimento detalhado da implementação interna do motor.

O Motor Zend usa contagem de referência para dois propósitos diferentes:

  • Otimização de uso de memória usando a técnica chamada "cópia na escrita", onde múltiplas variáveis com o mesmo valor apontam para o mesma posição na memória. Quando alguma dessas variáveis é modificada, ela é apontada para uma nova cópia na memória, e a contagem de referências na original é diminuída em 1.
  • Rastrear variáveis que foram atribuídas ou passadas por referência (consulte Referências). Esta contagem de referências é armazenada em um zval de referência separado, apontando para o zval correspondente ao valor atual. Este zval adicional atualmente não é mostrado pela função debug_zval_dump().

Como a função debug_zval_dump() recebe suas entradas como parâmetros normais, passados por valor, a técnica de cópia na escrita será usada para passá-los: em vez de copiar os dados, a contagem de referências será adicionada em uma unidade durante toda a duração da chamada à função. Se a função modificasse o parâmetro depois de recebê-lo, então seria feita uma cópia; como ela não modifica, ela irá mostrar uma contagem uma unidade acima em relação ao escopo que a chamou.

A passagem de parâmetros também evita que debug_zval_dump() mostre variáveis que foram atribuídas por referência. Para ilustrar, considere uma versão levemente modificada do exemplo acima:

<?php
$var1 = 'Hello';
$var1 .= ' World';
// Aponta três variáveis como referências ao mesmo valor
$var2 =& $var1;
$var3 =& $var1;

debug_zval_dump($var1);
?>

O exemplo acima produzirá:

string(11) "Hello World" refcount(2)

Embora $var1, $var2 e $var3 estejam ligadas como referências, apenas o valor é passado a debug_zval_dump(). Este valor é usado uma vez pelo conjunto de referências, e uma vez dentro de debug_zval_dump(), por isso mostra uma contagem de 2.

Complicações adicionais aparecem por conta de otimizações implementadas no motor para diferentes tipos de dados. Alguns tipos como inteiros não usam "cópia na escrita", por isso não exibem nenhuma contagem de referência. Em outros casos, a contagem mostra cópias extras usadas internamente, como quando uma string ou array literais são armazenados como parte de uma instrução de código.

Veja Também

  • var_dump() - Despeja na saída informações sobre uma variável
  • debug_backtrace() - Gera uma rastreamento retroativo
  • Referências
  • » Referências Explicadas (por Derick Rethans)


Sinônimo de floatval

  • « debug_zval_dump
  • empty »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Sinônimo de floatval

doubleval

(PHP 4, PHP 5, PHP 7, PHP 8)

doubleval — Sinônimo de floatval()

Descrição

Esta função é um apelido para: floatval().


Determina se uma variável está vazia

  • « doubleval
  • floatval »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Determina se uma variável está vazia

empty

(PHP 4, PHP 5, PHP 7, PHP 8)

empty — Determina se uma variável está vazia

Descrição

empty(mixed $var): bool

Determina se uma variável é considerada vazia. Uma variável é considerada vazia se não existir ou seu valor for igual a false. A função empty() não gera um aviso se a variável não existir.

Parâmetros

var

Variável a ser verificada

Nenhum aviso é gerado se a variável não existir. Isso significa que a função empty() é essencialmente o equivalente sucinto de !isset($var) || $var == false.

Valor Retornado

Retorna true se var não existir ou se tiver um valor que é vazio ou igual a zero. Consulte conversão para booleano. Caso contrário, retorna false.

Exemplos

Exemplo #1 Uma simples comparação entre as funções empty() / isset().

<?php
$var = 0;

// Avaliado como verdadeiro porque $var está vazia
if (empty($var)) {
echo '$var é 0, vazia ou não definida';
}

// Avaliado como verdadeiro porque $var está definida
if (isset($var)) {
echo '$var está definida embora esteja vazia';
}
?>

Exemplo #2 Função empty() em Deslocamentos de String

<?php
$expected_array_got_string = 'somestring';
var_dump(empty($expected_array_got_string['some_key']));
var_dump(empty($expected_array_got_string[0]));
var_dump(empty($expected_array_got_string['0']));
var_dump(empty($expected_array_got_string[0.5]));
var_dump(empty($expected_array_got_string['0.5']));
var_dump(empty($expected_array_got_string['0 Mostel']));
?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

Notas

Nota: Como esta é uma construção da linguagem e não uma função, ela não pode ser chamada usando funções variáveis ou argumentos nomeados.

Nota:

Ao utilizar a função empty() em propriedades de objetos inacessíveis, o método de sobrecarga __isset() será chamado, se declarado.

Veja Também

  • isset() - Determina se uma variável está declarada e é diferente de null
  • __isset()
  • unset() - Remove a definição de uma variável informada
  • array_key_exists() - Verifica se uma chave ou índice existe em um array
  • count() - Conta todos os elementos de um array ou de um objeto Countable
  • strlen() - Retorna o tamanho de uma string
  • A tabela de comparação de tipos


Obtém o valor em ponto flutuante da variável

  • « empty
  • get_debug_type »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Obtém o valor em ponto flutuante da variável

floatval

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

floatval — Obtém o valor em ponto flutuante da variável

Descrição

floatval(mixed $value): float

Obtém o valor float de value.

Parâmetros

value

Pode ser qualquer tipo escalar. floatval() não deve ser utilizada em objetos, pois isso ocasionará emissão de um erro de nível E_WARNING e retornará 1.

Valor Retornado

O valor em ponto flutuante da variável informada. Arrays vazios retornam 0, arrays com valores retoram 1.

Strings provavelmente retornarão 0, embora esse comportamento dependa dos caracteres à esquerda da string. A regra geral de conversão para ponto flutuante é aplicada.

Registro de Alterações

Versão | Descrição
8.0.0 | O nível de erro ao converter um objeto mudou de E_NOTICE para E_WARNING.

Exemplos

Exemplo #1 Exemplo da função floatval()

<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
?>

Exemplo #2 Exemplo da função floatval() em string com caracteres não numéricos à esquerda

<?php
$var = 'The122.34343';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 0
?>

Veja Também

  • boolval() - Obtém o valor booleano de uma variável
  • intval() - Obtém o valor em número inteiro de uma variável
  • strval() - Retorna o valor string de uma variável
  • settype() - Define o tipo de uma variável
  • Manipulação de Tipos


Obtém o nome do tipo de uma variável de forma adequada a depuração

  • « floatval
  • get_defined_vars »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Obtém o nome do tipo de uma variável de forma adequada a depuração

get_debug_type

(PHP 8)

get_debug_type — Obtém o nome do tipo de uma variável de forma adequada a depuração

Descrição

get_debug_type(mixed $value): string

Retorna o nome resolvido da variável PHP value. Esta função resolverá objetos ao nome da classe deles, recursos ao nome do tipo de recurso deles, e valores escalares ao nome comum deles como seria usado em declarações de tipo.

Este função difere de gettype() pelo fato de retornar nomes de tipo que são mais consistentes com o uso real, ao invés daqueles exsitentes por razões históricas.

Parâmetros

value

A variáver a ter o tipo verificado.

Valor Retornado

Valores possíveis para a string de retorno são:

Tipo + Estado | Valor de Retorno | Notas
nulo | "null" | -
Booleanos (verdadeiro ou falso) | "bool" | -
Inteiros | "int" | -
Números de ponto flutuante | "float" | -
Strings | "string" | -
Arrays | "array" | -
Recursos | "resource (resourcename)" | -
Recursos (Fechados) | "resource (closed)" | Exemplo: um fluxo de arquivo depois de ter sido fechado com fclose.
Objetos de Classes com Nome | O nome completo da classe incluindo seu espaço de nomes, ex.: Foo\Bar | -
Objetos de Classes Anônimas | "class@anonymous" | Classes anônimas são aquelas criadas através da sintaxe $x = new class { ... }

Exemplos

Exemplo #1 Exemplo de get_debug_type()

<?php
echo get_debug_type(null) . PHP_EOL;
echo get_debug_type(true) . PHP_EOL;
echo get_debug_type(1) . PHP_EOL;
echo get_debug_type(0.1) . PHP_EOL;
echo get_debug_type("foo") . PHP_EOL;
echo get_debug_type([]) . PHP_EOL;

$fp = fopen(__FILE__, 'rb');
echo get_debug_type($fp) . PHP_EOL;

fclose($fp);
echo get_debug_type($fp) . PHP_EOL;

echo get_debug_type(new stdClass) . PHP_EOL;
echo get_debug_type(new class {}) . PHP_EOL;
?>

O exemplo acima produzirá algo semelhante a:

null
bool
int
float
string
array
resource (stream)
resource (closed)
stdClass
class@anonymous

Veja Também

  • gettype() - Obtém o tipo de uma variável
  • get_class() - Retorna o nome da classe de um objeto


Retorna um array com todas variáveis definidas

  • « get_debug_type
  • get_resource_id »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Retorna um array com todas variáveis definidas

get_defined_vars

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

get_defined_vars — Retorna um array com todas variáveis definidas

Descrição

get_defined_vars(): array

Essa função retorna um array multimensional contendo uma lista com todas as variáveis definidas, incluindo variáveis de ambiente, servidor ou variáveis definidas pelo usuário, dentro do escopo que get_defined_vars() foi chamada.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array multidimensional com todas as variáveis.

Exemplos

Exemplo #1 Exemplo da get_defined_vars()

<?php
$b = array(1,1,2,3,5,8);

$arr = get_defined_vars();

// mostra $b
print_r($arr["b"]);

/* mostra o caminho do interpretador do PHP (se for usado como CGI)
* por exemplo /usr/local/bin/php */
echo $arr["_"];

// mostra os parâmetros da linha de comando se for usado
print_r($arr["argv"]);

// mostra todas variáveis de servidor
print_r($arr["_SERVER"]);

// mostra todos os indíces possíveis para a matriz de variáveis
print_r(array_keys(get_defined_vars()));
?>

Veja Também

  • isset() - Determina se uma variável está declarada e é diferente de null
  • get_defined_functions() - Retorna um array com todas as funções definidas
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values


Retorna um idenficador inteiro para o recurso informado

  • « get_defined_vars
  • get_resource_type »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Retorna um idenficador inteiro para o recurso informado

get_resource_id

(PHP 8)

get_resource_id — Retorna um idenficador inteiro para o recurso informado

Descrição

get_resource_id(resource $resource): int

Esta função fornece uma maneira segura (do ponto de vista de tipo) de gerar o identificador inteiro para um recurso.

Parâmetros

resource

O manipulador de recurso a ser avaliado.

Valor Retornado

O identificador int para o recurso informado em resource.

Esta função é essencialmente uma conversão para int do parâmetro resource para tornar mais fácil a obtenção do ID do recurso.

Exemplos

Exemplo #1 get_resource_id() produz o mesmo resultado de uma conversão int

<?php
$handle = fopen("php://stdout", "w");

echo (int) $handle . "\n";

echo get_resource_id($handle);

?>

O exemplo acima produzirá algo semelhante a:

698
698

Veja Também

  • get_resource_type() - Retorna o tipo de recurso


Retorna o tipo de recurso

  • « get_resource_id
  • gettype »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Retorna o tipo de recurso

get_resource_type

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

get_resource_type — Retorna o tipo de recurso

Descrição

get_resource_type(resource $resource): string

Essa função obtém o tipo do recurso informado.

Parâmetros

resource

O manipulador de recurso a ser avaliado.

Valor Retornado

Se o parâmetro resource for um recurso, esta função retornará uma string representando seu tipo. Se o tipo não for identificado por esta função, o valor de retorno será a string Unknown.

Esta função retornará null e gerará um erro se resource não for um recurso do tipo resource.

Exemplos

Exemplo #1 Exemplo de get_resource_type()

<?php
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// A partir do PHP 8.0.0, o código a segui não funciona mais. A função curl_init agora retorna um objeto CurlHandle.
$c = curl_init();
echo get_resource_type($c) . "\n";
?>

Saída do exemplo acima no PHP 7:

stream
curl

Veja Também

  • get_resource_id() - Retorna um idenficador inteiro para o recurso informado


Obtém o tipo de uma variável

  • « get_resource_type
  • intval »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Obtém o tipo de uma variável

gettype

(PHP 4, PHP 5, PHP 7, PHP 8)

gettype — Obtém o tipo de uma variável

Descrição

gettype(mixed $value): string

Retorna o tipo da variável PHP value. Para checagem de tipo, utilize as funções is_*.

Parâmetros

value

A variável a ter o tipo verificado.

Valor Retornado

Os valores possíveis para a string retornada são:

  • "boolean" - booleano
  • "integer" - inteiro
  • "double" - ponto flutuante (por razões históricas, "double" é retornado no caso de um float, e não simplesmente "float")
  • "string" - cadeia de caracteres
  • "array"
  • "object" - objeto
  • "resource" - recurso
  • "resource (closed)" a partir do PHP 7.2.0 - recurso (fechado)
  • "NULL" - nulo
  • "unknown type" - tipo desconhecido

Registro de Alterações

Versão | Descrição
7.2.0 | Recursos já fechados agora são reportados como 'resource (closed)'. Anteriormente os valores retornados para recursos fechados eram 'unknown type'.

Exemplos

Exemplo #1 Exemplo da função gettype()

<?php

$data = array(1, 1., NULL, new stdClass, 'foo');

foreach ($data as $value) {
echo gettype($value), "\n";
}

?>

O exemplo acima produzirá algo semelhante a:

integer
double
NULL
object
string

Veja Também

  • get_debug_type() - Obtém o nome do tipo de uma variável de forma adequada a depuração
  • settype() - Define o tipo de uma variável
  • get_class() - Retorna o nome da classe de um objeto
  • is_array() - Verifica se a variável é um array
  • is_bool() - Verifica se a variável é um booleano
  • is_callable() - Verifica se um valor pode ser chamado como uma função a partir do escopo atual.
  • is_float() - Verifica se a variável é do tipo float
  • is_int() - Informa se o tipo de uma variável é um inteiro
  • is_null() - Verifica se uma variável é null
  • is_numeric() - Verifica se uma variável é um número ou uma string numérica
  • is_object() - Verifica se uma variável é um objeto
  • is_resource() - Verifica se uma variável é um recurso
  • is_scalar() - Verifica se é uma váriavel é escalar
  • is_string() - Verifica se o tipo de uma variável é string
  • function_exists() - Retorna true se a função informada estiver definida
  • method_exists() - Verifica se o método da classe existe


Obtém o valor em número inteiro de uma variável

  • « gettype
  • is_array »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Obtém o valor em número inteiro de uma variável

intval

(PHP 4, PHP 5, PHP 7, PHP 8)

intval — Obtém o valor em número inteiro de uma variável

Descrição

intval(mixed $value, int $base = 10): int

Retorta o valor do tipo int do parâmetro value, usando a base especificada para a conversão (o padrão é base 10). intval() não deve ser usada em objetos, se isto for feito emitirá um erro de nível E_WARNING e retornará 1.

Parâmetros

value

O valor escalar a ser convertido para um número inteiro

base

A base para conversão

Nota:

Se base for 0, a base usada será determinada pelo formado de value:

  • se a string incluir um prefixo "0x" (ou "0X"), a base será 16 (hexadecimal); senão,
  • se a string começar com um "0b" (ou "0B"), a base será 2 (binária); senão,
  • sea string começar com "0", a base será 8 (octal); senão,
  • a base será 10 (decimal).

Valor Retornado

O valor inteiro de value em caso de sucesso ou 0 em caso de falhar. Arrays vazios retornam 0, arrays não vazios retornam 1.

O valor máximo depende do sistema. Sistemas de 32 bits têm uma faixa inteiros com sinal de -2147483648 to 2147483647. Então, por exemplo, em um sistema desses, intval('1000000000000') retornará 2147483647. O máximo inteiro com sinal para sistemas de 64 bits é 9223372036854775807.

Strings na maior parte das vezes retornarão 0 embora isso dependa do caractere mais à esquerda dele da string. As regras comuns à conversão para inteiros se aplicam.

Registro de Alterações

Versão | Descrição
8.0.0 | O nível de erro na conversão de objeto mudou de E_NOTICE para E_WARNING.

Exemplos

Exemplo #1 Exemplos de intval()

Os seguintes exemplos são baseados em um sistema de 64 bits.

<?php
echo intval(42); // 42
echo intval(4.2); // 4
echo intval('42'); // 42
echo intval('+42'); // 42
echo intval('-42'); // -42
echo intval(042); // 34
echo intval('042'); // 42
echo intval(1e10); // 10000000000
echo intval('1e10'); // 10000000000
echo intval(0x1A); // 26
echo intval('0x1A'); // 0
echo intval('0x1A', 0); // 26
echo intval(42000000); // 42000000
echo intval(420000000000000000000); // -4275113695319687168
echo intval('420000000000000000000'); // 9223372036854775807
echo intval(42, 8); // 42
echo intval('42', 8); // 34
echo intval(array()); // 0
echo intval(array('foo', 'bar')); // 1
echo intval(false); // 0
echo intval(true); // 1
?>

Notas

Nota:

O parâmetro base não terá efeito a menos que o parâmetro value seja uma string.

Veja Também

  • boolval() - Obtém o valor booleano de uma variável
  • floatval() - Obtém o valor em ponto flutuante da variável
  • strval() - Retorna o valor string de uma variável
  • settype() - Define o tipo de uma variável
  • is_numeric() - Verifica se uma variável é um número ou uma string numérica
  • Manipulação de Tipos
  • BCMath Funções Matemáticas de Precisão Arbitrária


Verifica se a variável é um array

  • « intval
  • is_bool »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se a variável é um array

is_array

(PHP 4, PHP 5, PHP 7, PHP 8)

is_array — Verifica se a variável é um array

Descrição

is_array(mixed $value): bool

Verifica se uma dada variável é um array.

Parâmetros

value

A variável a ser avaliada.

Valor Retornado

Retorna true se value é um array, false caso contrário.

Exemplos

Exemplo #1 Verificando se a variável é um array

<?php
$sim = array('este', 'é', 'um array');

echo is_array($sim) ? 'Array' : 'não Array';
echo "\n";

$nao = 'esta é uma string';

echo is_array($nao) ? 'Array' : 'não Array';
?>

O exemplo acima produzirá:

Array
não Array

Veja Também

  • array_is_list() - Verifica se um array é uma lista
  • is_float() - Verifica se a variável é do tipo float
  • is_int() - Informa se o tipo de uma variável é um inteiro
  • is_string() - Verifica se o tipo de uma variável é string
  • is_object() - Verifica se uma variável é um objeto


Verifica se a variável é um booleano

  • « is_array
  • is_callable »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se a variável é um booleano

is_bool

(PHP 4, PHP 5, PHP 7, PHP 8)

is_bool — Verifica se a variável é um booleano

Descrição

is_bool(mixed $value): bool

Verifica se uma dada variável é um booleano.

Parâmetros

value

A variavel a ser verificada.

Valor Retornado

Retorna true se value for um bool, false caso contrário.

Exemplos

Exemplo #1 Exemplo de is_bool()

<?php
$a = false;
$b = 0;

// Como $a é boolean, retornará true
if (is_bool($a) === true) {
echo 'Sim, isso é booleano';
}

// Como $b não é boolean, retornará false
if (is_bool($b) === false) {
echo 'Não, isso não é booleano';
}
?>

Veja Também

  • is_float() - Verifica se a variável é do tipo float
  • is_int() - Informa se o tipo de uma variável é um inteiro
  • is_string() - Verifica se o tipo de uma variável é string
  • is_object() - Verifica se uma variável é um objeto
  • is_array() - Verifica se a variável é um array


Verifica se um valor pode ser chamado como uma função a partir do escopo atual.

  • « is_bool
  • is_countable »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se um valor pode ser chamado como uma função a partir do escopo atual.

is_callable

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

is_callable — Verifica se um valor pode ser chamado como uma função a partir do escopo atual.

Descrição

is_callable(mixed $value, bool $syntax_only = false, string &$callable_name = null): bool

Verifica se um valor é do tipo callable.

Parâmetros

value

O valor a ser verificado

syntax_only

Se definido para true a função apenas verifica se value pode ser uma função o método. Ela irá apenas rejeitar variáveis simples que não sejam strings, ou um array que não tem estrutura válida para ser usado como função de chamada de retorno. Os válidos devem ter apenas 2 entradas, a primeira delas é um objeto ou uma string, e a segunda uma string.

callable_name

Recebe o "nome da função chamável". No exemplo abaixo é "someClass::someMethod". Note, entretando, que embora a implicação de que someClass::SomeMethod() seja um método estático que pode ser chamado, este não é o caso.

Valor Retornado

Retorna true se value puder ser chamado como função, false caso contrário.

Exemplos

Exemplo #1 Exemplo de is_callable()

<?php
// Como verificar uma variável para ver se ela pode ser chamada
// como uma função.

//
// Variável simples contendo uma função
//

function someFunction()
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name)); // bool(true)

echo $callable_name, "\n"; // someFunction

//
// Array contendo um método
//

class someClass {

function someMethod()
{
}

}

$anObject = new someClass();

$methodVariable = array($anObject, 'someMethod');

var_dump(is_callable($methodVariable, true, $callable_name)); // bool(true)

echo $callable_name, "\n"; // someClass::someMethod

?>

Exemplo #2 Exemplo de is_callable() e contrutores

is_callable() reporta construtores como métodos que não podem ser chamados.

<?php

class Foo
{
public function __construct() {}
public function foo() {}
}

var_dump(
is_callable(array('Foo', '__construct')),
is_callable(array('Foo', 'foo'))
);

O exemplo acima produzirá:

bool(false)
bool(false)

Notas

  • Um objeto é sempre chamável se ele implementar o método __invoke(), e este método estiver visível no escopo atual.
  • Um nome de classe é chamável se ela implementa o método __callStatic().
  • Se um objeto implementa o método __call(), então esta função retornará true para qualquer método neste objeto, mesmo se o método não estiver definido.
  • Esta função pode disparar o auto-carregamento se chamada com o nome de uma classe.

Veja Também

  • function_exists() - Retorna true se a função informada estiver definida
  • method_exists() - Verifica se o método da classe existe


Verifica se o conteúdo de uma variável é um valor contável

  • « is_callable
  • is_double »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se o conteúdo de uma variável é um valor contável

is_countable

(PHP 7 >= 7.3.0, PHP 8)

is_countable — Verifica se o conteúdo de uma variável é um valor contável

Descrição

is_countable(mixed $value): bool

Verifica se o conteúdo de uma variável é um array ou um objeto que implementa a classe Countable

Parâmetros

value

O valor a ser verificado

Valor Retornado

Retorna true se value for contável, false caso contrário.

Registro de Alterações

Versão | Descrição
7.3.0 | A função is_countable() foi adicionada.

Exemplos

Exemplo #1 Exemplos de is_countable()

<?php
var_dump(is_countable([1, 2, 3])); // bool(true)
var_dump(is_countable(new ArrayIterator(['foo', 'bar', 'baz']))); // bool(true)
var_dump(is_countable(new ArrayIterator())); // bool(true)
var_dump(is_countable(new stdClass())); // bool(false)

Veja Também

  • is_array() - Verifica se a variável é um array
  • is_object() - Verifica se uma variável é um objeto
  • is_iterable() - Verifica se o conteúdo de uma variável é um valor iterável
  • is_bool() - Verifica se a variável é um booleano


Sinônimo de is_float

  • « is_countable
  • is_float »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Sinônimo de is_float

is_double

(PHP 4, PHP 5, PHP 7, PHP 8)

is_double — Sinônimo de is_float()

Descrição

Esta função é um apelido para: is_float().


Verifica se a variável é do tipo float

  • « is_double
  • is_int »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se a variável é do tipo float

is_float

(PHP 4, PHP 5, PHP 7, PHP 8)

is_float — Verifica se a variável é do tipo float

Descrição

is_float(mixed $value): bool

Verifica se a variável informada é do tipo ponto flutuante.

Nota:

Para verificar se a variável é um número ou uma string numérica (como as entradas de formulário, que são sempre strings), deve ser usada a função is_numeric().

Parâmetros

value

A variável a ser avaliada.

Valor Retornado

Retorna true se value for um float, false caso contrário.

Exemplos

Exemplo #1 Exemplo de is_float()

<?php

var_dump(is_float(27.25));
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7)); // Notação científica
var_dump(is_float(true));
?>

O exemplo acima produzirá:

bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)

Veja Também

  • is_bool() - Verifica se a variável é um booleano
  • is_int() - Informa se o tipo de uma variável é um inteiro
  • is_numeric() - Verifica se uma variável é um número ou uma string numérica
  • is_string() - Verifica se o tipo de uma variável é string
  • is_array() - Verifica se a variável é um array
  • is_object() - Verifica se uma variável é um objeto


Informa se o tipo de uma variável é um inteiro

  • « is_float
  • is_integer »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Informa se o tipo de uma variável é um inteiro

is_int

(PHP 4, PHP 5, PHP 7, PHP 8)

is_int — Informa se o tipo de uma variável é um inteiro

Descrição

is_int(mixed $value): bool

Verifica se o tipo da variável informada é um inteiro.

Nota:

Para verificar se a variável é um número ou uma string numérica (como em entrada de formulário, que é sempre uma string), deve-se usar is_numeric().

Parâmetros

value

A variável a ser avaliada.

Valor Retornado

Retorna true se value for um int, false caso contrário.

Exemplos

Exemplo #1 Exemplo de is_int()

<?php
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
echo "is_int(";
var_export($value);
echo ") = ";
var_dump(is_int($value));
}
?>

O exemplo acima produzirá:

is_int(23) = bool(true)
is_int('23') = bool(false)
is_int(23.5) = bool(false)
is_int('23.5') = bool(false)
is_int(NULL) = bool(false)
is_int(true) = bool(false)
is_int(false) = bool(false)

Veja Também

  • is_bool() - Verifica se a variável é um booleano
  • is_float() - Verifica se a variável é do tipo float
  • is_numeric() - Verifica se uma variável é um número ou uma string numérica
  • is_string() - Verifica se o tipo de uma variável é string
  • is_array() - Verifica se a variável é um array
  • is_object() - Verifica se uma variável é um objeto


Sinônimo de is_int

  • « is_int
  • is_iterable »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Sinônimo de is_int

is_integer

(PHP 4, PHP 5, PHP 7, PHP 8)

is_integer — Sinônimo de is_int()

Descrição

Esta função é um apelido para: is_int().


Verifica se o conteúdo de uma variável é um valor iterável

  • « is_integer
  • is_long »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se o conteúdo de uma variável é um valor iterável

is_iterable

(PHP 7 >= 7.1.0, PHP 8)

is_iterable — Verifica se o conteúdo de uma variável é um valor iterável

Descrição

is_iterable(mixed $value): bool

Verifica se o conteúdo de uma variável é aceita pelo pseudo-tipo iterable, ou seja, ela é um array ou um objeto que implementa a classe Traversable

Parâmetros

value

O valor a ser verificado

Valor Retornado

Retorna true se value for iterável, false caso contrário.

Exemplos

Exemplo #1 Exemplos de is_iterable()

<?php

var_dump(is_iterable([1, 2, 3])); // bool(true)
var_dump(is_iterable(new ArrayIterator([1, 2, 3]))); // bool(true)
var_dump(is_iterable((function () { yield 1; })())); // bool(true)
var_dump(is_iterable(1)); // bool(false)
var_dump(is_iterable(new stdClass())); // bool(false)

?>

Veja Também

  • is_array() - Verifica se a variável é um array


Sinônimo de is_int

  • « is_iterable
  • is_null »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Sinônimo de is_int

is_long

(PHP 4, PHP 5, PHP 7, PHP 8)

is_long — Sinônimo de is_int()

Descrição

Esta função é um apelido para: is_int().


Verifica se uma variável é null

  • « is_long
  • is_numeric »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se uma variável é null

is_null

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

is_null — Verifica se uma variável é null

Descrição

is_null(mixed $value): bool

Verifica se a variável fornecida é null.

Parâmetros

value

A variável a ser avaliada.

Valor Retornado

Retorna true se value for null, false caso contrário.

Exemplos

Exemplo #1 Exemplo de is_null()

<?php

error_reporting(E_ALL);

$foo = NULL;
var_dump(is_null($inexistent), is_null($foo));

?>
Notice: Undefined variable: inexistent in ...
bool(true)
bool(true)

Veja Também

  • The null type
  • isset() - Determina se uma variável está declarada e é diferente de null
  • is_bool() - Verifica se a variável é um booleano
  • is_numeric() - Verifica se uma variável é um número ou uma string numérica
  • is_float() - Verifica se a variável é do tipo float
  • is_int() - Informa se o tipo de uma variável é um inteiro
  • is_string() - Verifica se o tipo de uma variável é string
  • is_object() - Verifica se uma variável é um objeto
  • is_array() - Verifica se a variável é um array


Verifica se uma variável é um número ou uma string numérica

  • « is_null
  • is_object »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se uma variável é um número ou uma string numérica

is_numeric

(PHP 4, PHP 5, PHP 7, PHP 8)

is_numeric — Verifica se uma variável é um número ou uma string numérica

Descrição

is_numeric(mixed $value): bool

Determina se a variável fornecida é um número ou uma string numérica.

Parâmetros

value

A variável a ser avaliada.

Valor Retornado

Retorna true se value for um número ou uma string numérica, false caso contrário.

Registro de Alterações

Versão | Descrição
8.0.0 | String numéricas terminando com espaços ("42 ") agora retornam true. Anteriormente, false era retornado.

Exemplos

Exemplo #1 Exemplos de is_numeric()

<?php
$tests = array(
"42",
1337,
0x539,
02471,
0b10100111001,
1337e0,
"0x539",
"02471",
"0b10100111001",
"1337e0",
"not numeric",
array(),
9.1,
null,
'',
);

foreach ($tests as $element) {
if (is_numeric($element)) {
echo var_export($element, true) . " é numérico", PHP_EOL;
} else {
echo var_export($element, true) . " NÃO é numérico", PHP_EOL;
}
}
?>

O exemplo acima produzirá:

'42' é numérico
1337 é numérico
1337 é numérico
1337 é numérico
1337 é numérico
1337.0 é numérico
'0x539' NÃO é numérico
'02471' é numérico
'0b10100111001' NÃO é numérico
'1337e0' é numérico
'not numeric' NÃO é numérico
array (
) NÃO é numérico
9.1 é numérico
NULL NÃO é numérico
'' NÃO é numérico

Exemplo #2 is_numeric() with whitespace

<?php
$tests = [
" 42",
"42 ",
"\u{A0}9001", // non-breaking space
"9001\u{A0}", // non-breaking space
];

foreach ($tests as $element) {
if (is_numeric($element)) {
echo var_export($element, true) . " é numérico", PHP_EOL;
} else {
echo var_export($element, true) . " NÃO é numérico", PHP_EOL;
}
}
?>

Saída do exemplo acima no PHP 8:

' 42' é numérico
'42 ' é numérico
' 9001' NÃO é numérico
'9001 ' NÃO é numérico

Saída do exemplo acima no PHP 7:

' 42' é numérico
'42 ' NÃO é numérico
' 9001' NÃO é numérico
'9001 ' NÃO é numérico

Veja Também

  • Strings numéricas
  • ctype_digit() - Verifica se os caracteres são numéricos
  • is_bool() - Verifica se a variável é um booleano
  • is_null() - Verifica se uma variável é null
  • is_float() - Verifica se a variável é do tipo float
  • is_int() - Informa se o tipo de uma variável é um inteiro
  • is_string() - Verifica se o tipo de uma variável é string
  • is_object() - Verifica se uma variável é um objeto
  • is_array() - Verifica se a variável é um array
  • filter_var() - Filters a variable with a specified filter


Verifica se uma variável é um objeto

  • « is_numeric
  • is_real »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se uma variável é um objeto

is_object

(PHP 4, PHP 5, PHP 7, PHP 8)

is_object — Verifica se uma variável é um objeto

Descrição

is_object(mixed $value): bool

Verifica se a variável fornecida é um objeto.

Parâmetros

value

A variável a ser avaliada.

Valor Retornado

Retorna true se value for um object, false caso contrário.

Registro de Alterações

Versão | Descrição
7.2.0 | is_object() agora retorna true para objetos desserializados sem definição de classe (classe de __PHP_Incomplete_Class). Anteriormente false era retornado.

Exemplos

Exemplo #1 Exemplo de is_object()

<?php
// Declara uma função simples para retornar um
// array do nosso objeto
function get_students($obj)
{
if (!is_object($obj)) {
return false;
}

return $obj->students;
}

// Declara uma nova instância de classe e preenche
// alguns valores
$obj = new stdClass();
$obj->students = array('Kalle', 'Ross', 'Felipe');

var_dump(get_students(null));
var_dump(get_students($obj));
?>

Veja Também

  • is_bool() - Verifica se a variável é um booleano
  • is_int() - Informa se o tipo de uma variável é um inteiro
  • is_float() - Verifica se a variável é do tipo float
  • is_string() - Verifica se o tipo de uma variável é string
  • is_array() - Verifica se a variável é um array


Sinônimo de is_float

  • « is_object
  • is_resource »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Sinônimo de is_float

is_real

(PHP 4, PHP 5, PHP 7, PHP 8)

is_real — Sinônimo de is_float()

Descrição

Esta função é um apelido para: is_float().

Aviso

Este apelido tornou-se DEFASADO a partir do PHP 7.4.0 e foi REMOVIDO a partir do PHP 8.0.0.


Verifica se uma variável é um recurso

  • « is_real
  • is_scalar »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se uma variável é um recurso

is_resource

(PHP 4, PHP 5, PHP 7, PHP 8)

is_resource — Verifica se uma variável é um recurso

Descrição

is_resource(mixed $value): bool

Verifica se a variável informada é um resource.

Parâmetros

value

A variável a ser avaliada.

Valor Retornado

Retorna true se value é um resource, false caso contrário.

Exemplos

Exemplo #1 Exemplo de is_resource()

<?php

$handle = fopen("php://stdout", "w");
if (is_resource($handle)) {
echo '$handle is a resource';
}

?>

O exemplo acima produzirá:

$handle is a resource

Notas

Nota:

is_resource() não é um método estrito de validação de tipo: retornará false se value for uma variável de recurso que foi fechada.

Veja Também

  • Documentação sobre o tipo Recurso
  • get_resource_type() - Retorna o tipo de recurso


Verifica se é uma váriavel é escalar

  • « is_resource
  • is_string »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se é uma váriavel é escalar

is_scalar

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

is_scalar — Verifica se é uma váriavel é escalar

Descrição

is_scalar(mixed $value): bool

Verifica se a variável informada é uma variável escalar.

Variáveis escalares são as que contém um int, float, string ou bool. Os tipos array, object, resource e null não são escalares.

Nota:

is_scalar() não considera valores de recurso do tipo resource como escalares, porque recursos são tipos de dados abstratos que atualmente são baseados em inteiros. Esse detalhe de implementação não deve ser levado em consideração pois pode ser modificado futuramente.

Nota:

is_scalar() não considera valores nulos como sendo do tipo escalar.

Parâmetros

value

A variável a ser avaliada.

Valor Retornado

Retorna true se value for uma variável escalar, false caso contrário.

Exemplos

Exemplo #1 Exemplo de is_scalar()

<?php
function show_var($var)
{
if (is_scalar($var)) {
echo $var;
} else {
var_dump($var);
}
}
$pi = 3.1416;
$proteins = array("hemoglobin", "cytochrome c oxidase", "ferredoxin");

show_var($pi);
show_var($proteins)

?>

O exemplo acima produzirá:

3.1416
array(3) {
  [0]=>
  string(10) "hemoglobin"
  [1]=>
  string(20) "cytochrome c oxidase"
  [2]=>
  string(10) "ferredoxin"
}

Veja Também

  • is_float() - Verifica se a variável é do tipo float
  • is_int() - Informa se o tipo de uma variável é um inteiro
  • is_numeric() - Verifica se uma variável é um número ou uma string numérica
  • is_real() - Sinônimo de is_float
  • is_string() - Verifica se o tipo de uma variável é string
  • is_bool() - Verifica se a variável é um booleano
  • is_object() - Verifica se uma variável é um objeto
  • is_array() - Verifica se a variável é um array


Verifica se o tipo de uma variável é string

  • « is_scalar
  • isset »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Verifica se o tipo de uma variável é string

is_string

(PHP 4, PHP 5, PHP 7, PHP 8)

is_string — Verifica se o tipo de uma variável é string

Descrição

is_string(mixed $value): bool

Verifica se o tipo da variável informada é string.

Parâmetros

value

A variável a ser analisada.

Valor Retornado

Retorna true se value for do tipo string, false caso contrário.

Exemplos

Exemplo #1 Exemplo de is_string()

<?php
$values = array(false, true, null, 'abc', '23', 23, '23.5', 23.5, '', ' ', '0', 0);
foreach ($values as $value) {
echo "is_string(";
var_export($value);
echo ") = ";
echo var_dump(is_string($value));
}
?>

O exemplo acima produzirá:

is_string(false) = bool(false)
is_string(true) = bool(false)
is_string(NULL) = bool(false)
is_string('abc') = bool(true)
is_string('23') = bool(true)
is_string(23) = bool(false)
is_string('23.5') = bool(true)
is_string(23.5) = bool(false)
is_string('') = bool(true)
is_string(' ') = bool(true)
is_string('0') = bool(true)
is_string(0) = bool(false)

Veja Também

  • is_float() - Verifica se a variável é do tipo float
  • is_int() - Informa se o tipo de uma variável é um inteiro
  • is_bool() - Verifica se a variável é um booleano
  • is_object() - Verifica se uma variável é um objeto
  • is_array() - Verifica se a variável é um array


Determina se uma variável está declarada e é diferente de null

  • « is_string
  • print_r »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Determina se uma variável está declarada e é diferente de null

isset

(PHP 4, PHP 5, PHP 7, PHP 8)

isset — Determina se uma variável está declarada e é diferente de null

Descrição

isset(mixed $var, mixed ...$vars): bool

Determina se uma variável é considerada definida, isto é, está declarada e é diferente de null.

Se a variável tornou-se indefinida com a função unset(), ela não é mais considerada definida.

isset() retornará false ao verificar uma variável que foi atribuída com o valor null. Note também que um caractere nulo ("\0") não é equivalente à constante null do PHP.

Se múltiplos parâmetros forem fornecidos então isset() retornará true apenas se todos os parâmetros forem considerados definidos. A avaliação ocorre da esquerda para a direira e para assim que uma variável indefinida for encontrada.

Parâmetros

var

A variável a ser verificada.

vars

Mais variáveis a verificar.

Valor Retornado

Retorna true se var existe e tem qualquer valor diferente de null. false caso contrário.

Exemplos

Exemplo #1 Exemplos de isset()

<?php

$var = '';

// Isto será avaliado como VERDADEIRO e por isso o texto será mostrado.
if (isset($var)) {
echo "Esta variável está definida então vou imprimir.";
}

// Nos próximos exemplos, será utilizado var_dump() para mostrar
// o valor de retorno de isset().

$a = "teste";
$b = "outroteste";

var_dump(isset($a)); // VERDADEIRO
var_dump(isset($a, $b)); // VERDADEIRO

unset ($a);

var_dump(isset($a)); // FALSO
var_dump(isset($a, $b)); // FALSO

$foo = NULL;
var_dump(isset($foo)); // FALSO

?>

Isto também funciona para elementos em arrays:

<?php

$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));

var_dump(isset($a['test'])); // VERDADEIRO
var_dump(isset($a['foo'])); // FALSO
var_dump(isset($a['hello'])); // FALSO

// A chave 'hello' é igual a NULO então é considerada indefinida
// Se deseja-se verificar por chaves de valores NULOS, deve-se tentar:
var_dump(array_key_exists('hello', $a)); // VERDADEIRO

// Verificando valores de array em maior profundidade
var_dump(isset($a['pie']['a'])); // VERDADEIRO
var_dump(isset($a['pie']['b'])); // FALSO
var_dump(isset($a['cake']['a']['b'])); // FALSO

?>

Exemplo #2 isset() em Deslocamento de Strings

<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>

O exemplo acima produzirá:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)

Notas

Aviso

isset() somente funciona com variáveis, pois passar qualquer outra coisa resultará em erro de interpretação. Para verificar se constantes estão definidas, use a função defined().

Nota: Como esta é uma construção da linguagem e não uma função, ela não pode ser chamada usando funções variáveis ou argumentos nomeados.

Nota:

Ao usar isset() em propriedades inacessíveis de objetos, o método de sobrecarga __isset() será chamado, se declarado.

Veja Também

  • empty() - Determina se uma variável está vazia
  • __isset()
  • unset() - Remove a definição de uma variável informada
  • defined() - Verifica se existe uma constante com o nome informado
  • Tabelas de comparação de tipos
  • array_key_exists() - Verifica se uma chave ou índice existe em um array
  • is_null() - Verifica se uma variável é null
  • Operador @ de controle de erro


Exibe informação legível sobre uma variável

  • « isset
  • serialize »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Exibe informação legível sobre uma variável

print_r

(PHP 4, PHP 5, PHP 7, PHP 8)

print_r — Exibe informação legível sobre uma variável

Descrição

print_r(mixed $value, bool $return = false): string|bool

print_r() exibe informação sobre uma variável de uma forma legível para humanos.

print_r(), var_dump() e var_export() mostrarão também propriedades protegidas e privadas de objetos. Membros de classes estáticas não serão mostrados.

Parâmetros

value

A expressão a ser exibida.

return

Se for desejado capturar a saída de print_r(), utilize o parâmetro return. Quando esse parâmetro for definido para true, print_r() retornará a informação, ao invés de exibi-la.

Valor Retornado

Se for fornecido uma string, um int ou um float, o próprio valor será impresso. Se for fornecido um array, valores serão apresentados em um formato que mostra chaves e elementos. Notação similar é utilizada para objetos (objects).

Quando o parâmetro return for true, esta função retornará uma string. Caso contrário, o valor retornado será true.

Exemplos

Exemplo #1 Exemplo de print_r()

<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>

O exemplo acima produzirá:

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

Exemplo #2 Exemplo do parâmetro return

<?php
$b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
$results = print_r($b, true); // $results agora contém a saída de print_r
?>

Notas

Nota:

Quando o parâmetro return é usado, esta função usa um buffer de saída interno antes do PHP 7.1.0, portanto não pode ser usada em uma função callback da função ob_start().

Veja Também

  • ob_start() - Ativa o buffer de saída
  • var_dump() - Despeja na saída informações sobre uma variável
  • var_export() - Mostra ou retorna uma representação string analisável de uma variável


Gera uma representação armazenável de um valor

  • « print_r
  • settype »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Gera uma representação armazenável de um valor

serialize

(PHP 4, PHP 5, PHP 7, PHP 8)

serialize — Gera uma representação armazenável de um valor

Descrição

serialize(mixed $value): string

Gera uma representação armazenável de um valor.

É útil para armazenar ou passar um valor do PHP sem perder seu tipo ou estrutura.

Para restaurar uma string serializada de volta a um valor PHP, use unserialize().

Parâmetros

value

O valor a ser serializado. serialize() lida com todos os tipos, exceto recursos (resource) e alguns objetos (object)s (veja nota abaixo). Pode-se até usar serialize() para array que contenha referência a si mesmo. Referências circulaes dentro do array/objeto a ser serializado também serão armazenadas. Qualquer outra referência será perdida.

Ao serializar objetos, o PHP tentará chamar as funções membro __serialize() ou __sleep() antes da serialização. Isto serve para permitir ao objeto alguma limpeza de última hora, etc. antes de ser realizado. Da mesma forma, quando o objeto é restaurado usando unserialize(), a função membro __unserialize() ou __wakeup() será chamada.

Nota:

Os membros privados terão o nome da classe prefixando o nome do membro; membros protegidos terão um '*' prefixando o nome. Estes prefixos serão envolvidos por bytes nulos, um de cada lado.

Valor Retornado

Retorna uma string contendo uma representação em fluxo de bytes de value que pode ser armazenada em qualquer lugar.

Note que esta string é binária e pode incluir bytes nulos, e precisa ser armazenada e gerenciada como tal. Por exemplo, a saída de serialize() deveria ser armazenada geralmente em um campo BLOB de um banco de dados, e não em um campo tipo CHAR ou TEXT.

Exemplos

Exemplo #1 Exemplo de serialize()

<?php
// $session_data contém um array multi-dimensional com informação
// de sessão do usuário atual. serialize() será utilizada para armazenar
// a variável em um banco de dados ao final da requisição.

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata)) {
$stmt = odbc_prepare($conn,
"INSERT INTO sessions (id, data) VALUES(?, ?)");
if (!odbc_execute($stmt, array_reverse($sqldata))) {
/* Algo deu errado.. */
}
}
?>

Notas

Nota:

Note que muitos objetos internos do PHP não podem ser serializados. Entretando, os que tiverem esta habilidade ou implementam a interface Serializable ou os métodos mágicos __serialize()/__unserialize() ou __sleep()/__wakeup(). Se uma classe interna não preencher algum desses requisitos, ela não poderá ser serializada com confiança.

Existem algumas exceções histórias à regra acima, onde alguns objetos internos poderiam ser serializados sem implementar a interface ou expor os métodos.

Aviso

Quando serialize() serializa objetos, a barra invertida no início não é incluída nas classes com espaço de nomes para máxima compatibilidade.

Veja Também

  • unserialize() - Cria um valor PHP a partir de uma representação armazenada
  • var_export() - Mostra ou retorna uma representação string analisável de uma variável
  • json_encode() - Retorna a representação JSON de um valor
  • Serializando Objetos
  • __sleep()
  • __wakeup()
  • __serialize()
  • __unserialize()


Define o tipo de uma variável

  • « serialize
  • strval »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Define o tipo de uma variável

settype

(PHP 4, PHP 5, PHP 7, PHP 8)

settype — Define o tipo de uma variável

Descrição

settype(mixed &$var, string $type): bool

Define o tipo da variável var para type.

Parâmetros

var

A variável a ser convertida.

type

Os valores possíveis para type são:

  • "boolean" ou "bool"
  • "integer" ou "int"
  • "float" ou "double"
  • "string"
  • "array"
  • "object"
  • "null"

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo da função settype()

<?php
$foo = "5bar"; // string
$bar = true; // boolean

settype($foo, "integer"); // $foo é agora 5 (integer)
settype($bar, "string"); // $bar é agora "1" (string)
?>

Notas

Nota:

O valor máximo para "int" é PHP_INT_MAX.

Veja Também

  • gettype() - Obtém o tipo de uma variável
  • Conversão de tipos
  • Manipulação de tipos


Retorna o valor string de uma variável

  • « settype
  • unserialize »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Retorna o valor string de uma variável

strval

(PHP 4, PHP 5, PHP 7, PHP 8)

strval — Retorna o valor string de uma variável

Descrição

strval(mixed $value): string

Obtém o valor string de uma variável. Consulte a documentação sobre string para maiores informações sobre conversão para o tipo string.

Esta função não faz nenhuma formatação no valor retornado. Se o objetivo for formatar um valor numérico como uma string, favor consultar sprintf() ou number_format().

Parâmetros

value

A variável que será convertida para o tipo string.

value pode ser qualquer tipo escalar, null, ou um objeto (object) que implemente o método __toString(). strval() não pode ser usado em arrays ou em objetos que não implementem o método __toString().

Valor Retornado

O valor em string do parâmetro value.

Exemplos

Exemplo #1 Exemplo de strval() usando o método mágico __toString().

<?php
class StrValTest
{
public function __toString()
{
return __CLASS__;
}
}

// Prints 'StrValTest'
echo strval(new StrValTest);
?>

Veja Também

  • boolval() - Obtém o valor booleano de uma variável
  • floatval() - Obtém o valor em ponto flutuante da variável
  • intval() - Obtém o valor em número inteiro de uma variável
  • settype() - Define o tipo de uma variável
  • sprintf() - Return a formatted string
  • number_format() - Format a number with grouped thousands
  • Manipulação de tipos
  • __toString()


Cria um valor PHP a partir de uma representação armazenada

  • « strval
  • unset »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Cria um valor PHP a partir de uma representação armazenada

unserialize

(PHP 4, PHP 5, PHP 7, PHP 8)

unserialize — Cria um valor PHP a partir de uma representação armazenada

Descrição

unserialize(string $data, array $options = []): mixed

unserialize() toma uma única variável serializada e converte-a de volta em um valor PHP.

Aviso

Entradas de usuário não confiáveis não devem ser passadas a unserialize() independente dos valores do elemento allowed_classes do parâmetro options. Desserialização pode resultar em um código carregado e executado devido a uma instanciação de objeto e auto-carregamento, e um usuário malicioso pode ser capaz de explorar isto. Use um formato padrão e seguro de troca de dados como JSON (via json_decode() e json_encode()) se for necessário passar dados serializados ao usuário.

Se for necessário desserializar dados armazenados externamente, considere o uso de hash_hmac() para validação de dados. Certifique-se que os dados não foram modificados por outras pessoas.

Parâmetros

data

A string serializada.

Se a variável a ser desserializada for um objeto, após a reconstrução bem sucedida do objeto o PHP tentará automaticamente chamar os métodos __unserialize() ou __wakeup() (se existirem).

Nota: unserialize_callback_func directive

É possível definir uma função de retorno de chamada, se uma classe indefinida tiver sido instanciada durante a desserialização. (para evitar receber um objeto imcompleto do tipo object "__PHP_Incomplete_Class".) Deve-se usar o php.ini, a função ini_set() ou o arquivo .htaccess para definir unserialize_callback_func. Toda vez que uma classe indefinida precisar ser instanciada, ela será chamada. Para desabilitar este recurso basta esvaziar esta configuração.

options

Quaisquer opções podem ser fornecidas a unserialize() como um array associativo.

Opções válidas
Nome | Tipo | Descrição
allowed_classes | mixed | Pode ser um array de nomes de classe que devem ser aceitas, false para não aceitar nenhuma classe, ou true para aceitar todas as classes. Se esta opção for definida e unserialize() encontrar um objeto de uma classe que não deve ser aceita, o objeto será instanciado como uma __PHP_Incomplete_Class. Omitir esta opção é o mesmo que defini-la como true: o PHP tentará instanciar objetos de qualquer classe.
max_depth | int | A profundidade máxima de estruturas permitidas durante a desserialização, com a intenção de prevenir sobrecarga de pilha. O limite padrão de profundidade é 4096 e pode ser desabilitado definindo-se max_depth para 0.

Valor Retornado

O valor convertido é retornado, e pode ser bool, int, float, string, array ou object.

Caso a string informada não for desserializável, false é retornado e um erro de nível E_WARNING é emitido.

Erros/Exceções

Objetos podem disparar exceções da classe Throwable em seus manipuladores de desserialização.

Registro de Alterações

Versão | Descrição
8.3.0 | Agora emite um E_WARNING quando a string informada não for desserializável; anteriormente um E_NOTICE era emitido.
7.4.0 | Adicionado elemento max_depth do array options para definir a profundidade máxima de estruturas permitidas durante desserialização.
7.1.0 | O elemento allowed_classes de options) agora é estritamente tipado, isto é, se algo que não seja um array ou um bool for fornecido, unserialize() retorna false e emite um erro de nível E_WARNING.

Exemplos

Exemplo #1 Exemplo de unserialize()

<?php
// Aqui, será usado unserialize() para carregar dados de sessão para o
// array $session_data a partir de uma string selecionada de um banco de dados.
// Este exemplo complementa o descrito em serialize().

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array($_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata) || !odbc_fetch_into($stmt, $tmp)) {
// se a execute ou fetch falharem, inicializa como um array vazio
$session_data = array();
} else {
// agora os dados serializados devem estar em $tmp[0].
$session_data = unserialize($tmp[0]);
if (!is_array($session_data)) {
// algo deu errado, inicializa como um array vazio
$session_data = array();
}
}
?>

Exemplo #2 Exemplo de unserialize_callback_func

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

ini_set('unserialize_callback_func', 'mycallback'); // define a função de retorno de chamada

function mycallback($classname)
{
// apenas inclua um arquivo contendo sua definição de classe
// $classname serve para determinar que definição de classe é requerida
}
?>

Notas

Aviso

false é retornado tanto em caso de um erro quanto no caso de desserializar o valor false serializado. É possível capturar este caso especial comparando-se data com serialize(false) ou capturando-se o erro de nível E_NOTICE emitido.

Veja Também

  • json_encode() - Retorna a representação JSON de um valor
  • json_decode() - Decodifica uma string JSON
  • hash_hmac() - Generate a keyed hash value using the HMAC method
  • serialize() - Gera uma representação armazenável de um valor
  • Auto-carregamento de Classes
  • unserialize_callback_func
  • unserialize_max_depth
  • __wakeup()
  • __serialize()
  • __unserialize()


Remove a definição de uma variável informada

  • « unserialize
  • var_dump »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Remove a definição de uma variável informada

unset

(PHP 4, PHP 5, PHP 7, PHP 8)

unset — Remove a definição de uma variável informada

Descrição

unset(mixed $var, mixed ...$vars): void

unset() destrói as variáveis especificadas.

O comportamento de unset() dentro de uma função pode variar dependendo de qual tipo de variável está tentando-se destruir.

Se uma variável global tornar-se indefinida por unset() dentro de uma função, apenas a variável local é destruída. A variável no ambiente que chamou a função manterá o mesmo valor anterior à chamada a unset().

<?php
function destroy_foo()
{
global $foo;
unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

O exemplo acima produzirá:

bar

Para remover a definição de uma variável global usando unset() dentro de uma função, use o array $GLOBALS:

<?php
function foo()
{
unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

Se uma variável que é PASSADA POR REFERÊNCIA tiver sua definição removida por unset() dentro de uma função, apenas a variável local é destruída. A variável no ambiente que chamou a função manterá o mesmo valor anterior à chamada a unset().

<?php
function foo(&$bar)
{
unset($bar);
$bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

O exemplo acima produzirá:

something
something

Se uma variável estática tiver a definição removida por unset() dentro de uma função, unset() destrói a variável apenas no contexto do resto da função. Chamadas subsequentes à função irão restaurar o valor anterior da variável.

<?php
function foo()
{
static $bar;
$bar++;
echo "Antes de unset: $bar, ";
unset($bar);
$bar = 23;
echo "depois de unset: $bar\n";
}

foo();
foo();
foo();
?>

O exemplo acima produzirá:

Antes de unset: 1, depois de unset: 23
Antes de unset: 2, depois de unset: 23
Antes de unset: 3, depois de unset: 23

Parâmetros

var

A variável que terá sua definição removida.

vars

Mais variáveis que terão definições removidas.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de unset()

<?php
// destrói uma única variável
unset($foo);

// destrói um único elemento de um array
unset($bar['quux']);

// destrói mais de uma variável
unset($foo1, $foo2, $foo3);
?>

Exemplo #2 Usando a conversão (unset)

A conversão (unset) é frequentemente confundida com a função unset() function. A conversão (unset) serve apenas como uma conversão para tipo NULL, para completude. Ela não altera a variável que ela está convertendo. A conversão (unset) tornou-se defasada a partir do PHP 7.2.0, e foi removida a partir do PHP 8.0.0.

<?php
$name = 'Felipe';

var_dump((unset) $name);
var_dump($name);
?>

O exemplo acima produzirá:

NULL
string(6) "Felipe"

Notas

Nota: Como esta é uma construção da linguagem e não uma função, ela não pode ser chamada usando funções variáveis ou argumentos nomeados.

Nota:

É possível remover definições de propriedades de objeto visíveis no contexto atual.

Se declarados, o método __get() é chamado ao acessar uma propriedade indefinida, e o método __set() é chamado ao definir uma propriedade indefinida.

Nota:

Não é possível remover a definição de $this dentro de um método do objeto.

Nota:

Ao usar unset() em propriedades de objeto inacessíveis, o método de sobrecarga __unset() será chamado, caso esteja declarado.

Veja Também

  • isset() - Determina se uma variável está declarada e é diferente de null
  • empty() - Determina se uma variável está vazia
  • __unset()
  • array_splice() - Remove uma parte array e a substitui por outra coisa
  • Conversão (unset)


Despeja na saída informações sobre uma variável

  • « unset
  • var_export »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Despeja na saída informações sobre uma variável

var_dump

(PHP 4, PHP 5, PHP 7, PHP 8)

var_dump — Despeja na saída informações sobre uma variável

Descrição

var_dump(mixed $value, mixed ...$values): void

Esta função mostra na saída uma informação estruturada sobre uma ou mais expressões, incluindo o tipo e o valor. Arrays e objetos são explorados recursivamente com valores identados para mostrar a estrutura.

Todas as propriedades públicas, privadas e protegidas de objetos serão retornadas na saída a menos que o objeto implemente um método __debugInfo().

Dica

Assim como qualquer coisa que envia seu resultado diretamente para o navegador, as funções de controle de saída podem ser usadas para capturar a saída desta função e salvá-la em uma string, por exemplo.

Parâmetros

value

A expressão a ser despejada.

values

Mais expressões a despejar.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de var_dump()

<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>

O exemplo acima produzirá:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}
<?php

$b = 3.1;
$c = true;
var_dump($b,$c);

?>

O exemplo acima produzirá:

float(3.1)
bool(true)

Veja Também

  • print_r() - Exibe informação legível sobre uma variável
  • debug_zval_dump() - Exibe na saída uma representação em string de uma estrutura zval interna
  • var_export() - Mostra ou retorna uma representação string analisável de uma variável
  • __debugInfo()


Mostra ou retorna uma representação string analisável de uma variável

  • « var_dump
  • Serviços para Web »
  • PHP Manual
  • Funções para Manipulação de variáveis
  • Mostra ou retorna uma representação string analisável de uma variável

var_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

var_export — Mostra ou retorna uma representação string analisável de uma variável

Descrição

var_export(mixed $value, bool $return = false): ?string

var_export() obtém informação estruturada sobre a variável informada. Ela é similar a var_dump() com uma exceção: a representação retornada é um código PHP válido.

Parâmetros

value

A variável a ser exportada.

return

Se usado e definido para true, var_export() irá retornar a representação da variável ao invés de exibí-la.

Valor Retornado

Retorna a representação da variável quando o parâmetro return é usado e avaliado para true. Caso contrário, esta função retornará null.

Registro de Alterações

Versão | Descrição
8.2.0 | Nomes de classe exportados agora são completamente qualificadas; anteriormente, a barra invertida no início era omitida.
7.3.0 | Agora exporta objetos stdClass como um array convertido para um objeto ((object) array( ... )), ao invés de usar o método inexistente stdClass::__setState(). O efeito prático é que agora stdClass é exportável e o código resultante funcionará até mesmo em versões anteriores do PHP.

Exemplos

Exemplo #1 Exemplos de var_export()

<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export($a);
?>

O exemplo acima produzirá:

array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php

$b = 3.1;
$v = var_export($b, true);
echo $v;

?>

O exemplo acima produzirá:

3.1

Exemplo #2 Exportando stdClass (a partir do PHP 7.3.0)

<?php
$person = new stdClass;
$person->name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';

var_export($person);

O exemplo acima produzirá:

(object) array(
   'name' => 'ElePHPant ElePHPantsdotter',
   'website' => 'https://php.net/elephpant.php',
)

Exemplo #3 Exportando classes

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>

O exemplo acima produzirá:

A::__set_state(array(
   'var' => 5,
))

Exemplo #4 Usando __set_state()

<?php
class A
{
public $var1;
public $var2;

public static function __set_state($an_array)
{
$obj = new A;
$obj->var1 = $an_array['var1'];
$obj->var2 = $an_array['var2'];
return $obj;
}
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
// 'var1' => 5,
// 'var2' => 'foo',
// ));
var_dump($b);
?>

O exemplo acima produzirá:

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Notas

Nota:

Variáveis do tipo resource não podem ser exportadas por esta função.

Nota:

var_export() não lida com referência circular já que seria praticamente impossível gerar código PHP analisável para isto. Se for desejado fazer algo com a representação completa de um array ou objeto, use serialize().

Aviso

Antes do PHP 8.2.0, quando var_export() exporta objetos, a barra inicial no início não é incluída no nome de classes com namespace para máxima compatibilidade.

Nota:

Para ser possível avaliar o código PHP gerado por var_export(), todos os objetos processados devem implementar o método mágico __set_state. A única exceção é stdClass, que é exportada usando um array convertido para um objeto.

Veja Também

  • print_r() - Exibe informação legível sobre uma variável
  • serialize() - Gera uma representação armazenável de um valor
  • var_dump() - Despeja na saída informações sobre uma variável


Serviços para Web

  • OAuth
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções OAuth
    • OAuth — A classe OAuth
    • OAuthProvider — A classe OAuthProvider
    • OAuthException — Classe OAuthException
  • SOAP
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • SOAP Funções
    • SoapClient — The SoapClient class
    • SoapServer — The SoapServer class
    • SoapFault — The SoapFault class
    • SoapHeader — The SoapHeader class
    • SoapParam — The SoapParam class
    • SoapVar — The SoapVar class
  • Yar — Yet Another RPC Framework
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Yar_Server — The Yar_Server class
    • Yar_Client — The Yar_Client class
    • Yar_Concurrent_Client — The Yar_Concurrent_Client class
    • Yar_Server_Exception — The Yar_Server_Exception class
    • Yar_Client_Exception — The Yar_Client_Exception class
  • XML-RPC
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Funções para XML-RPC


OAuth

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • FireEagle
  • Funções OAuth
    • oauth_get_sbs — Gera uma String Base de Assinatura
    • oauth_urlencode — Codifica uma URI conforme RFC 3986
  • OAuth — A classe OAuth
    • OAuth::__construct — Cria um objeto OAuth
    • OAuth::__destruct — O destruidor
    • OAuth::disableDebug — Desativa a depuração detalhada
    • OAuth::disableRedirects — Desativa o redirecionamento
    • OAuth::disableSSLChecks — Desativa verificações SSL
    • OAuth::enableDebug — Ativa a depuração detalhada
    • OAuth::enableRedirects — Habilita redirecionamentos
    • OAuth::enableSSLChecks — Ativa verificações SSL
    • OAuth::fetch — Busca um recurso protegido OAuth
    • OAuth::generateSignature — Gera uma assinatura
    • OAuth::getAccessToken — Busca um token de acesso
    • OAuth::getCAPath — Obtém informação de CA
    • OAuth::getLastResponse — Obtém a última resposta
    • OAuth::getLastResponseHeaders — Obtém cabeçalhos para a última resposta
    • OAuth::getLastResponseInfo — Obtém informação HTTP sobre a última resposta
    • OAuth::getRequestHeader — Gera assinatura string de cabeçalho OAuth
    • OAuth::getRequestToken — Busca um token de requisição
    • OAuth::setAuthType — Define o tipo de autorização
    • OAuth::setCAPath — Define caminho e informação da CA
    • OAuth::setNonce — Define o nonce para requisições subsequentes
    • OAuth::setRequestEngine — Defineo o mecanismo da requisição
    • OAuth::setRSACertificate — Define o certificado RSA
    • OAuth::setSSLChecks — Ajusta verficações SSL específicas para requisições
    • OAuth::setTimestamp — Define o timestamp
    • OAuth::setToken — Define o token e o segredo
    • OAuth::setVersion — Define a versão OAuth
  • OAuthProvider — A classe OAuthProvider
    • OAuthProvider::addRequiredParameter — Adiciona parâmetros requeridos
    • OAuthProvider::callconsumerHandler — Chama a função de retorno consumerHandler
    • OAuthProvider::callTimestampNonceHandler — Chama a função de retorno timestampNonceHandler
    • OAuthProvider::calltokenHandler — Chama a função de retorno tokenHandler
    • OAuthProvider::checkOAuthRequest — Verifica uma requisição OAuth
    • OAuthProvider::__construct — Constrói um novo objeto OAuthProvider
    • OAuthProvider::consumerHandler — Define a função de retorno de gerenciamento de consumidor
    • OAuthProvider::generateToken — Gera um token aleatório
    • OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint — Define isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter — Remove um parâmetro requerido
    • OAuthProvider::reportProblem — Reporta um problema
    • OAuthProvider::setParam — Define um parâmetro
    • OAuthProvider::setRequestTokenPath — Define o caminho para o token de requisição
    • OAuthProvider::timestampNonceHandler — Define a função de retorno de gerenciamento de timestamp nonce
    • OAuthProvider::tokenHandler — Define a função de retorno de gerenciamento de token
  • OAuthException — Classe OAuthException


Introdução

Essa extensão fornece vínculos de consumidor e provedor OAuth 1.0a. OAuth é um protocolo de autorização construído em cima do HTTP que permite que aplicativos acessem dados com segurança sem precisar armazenar nomes de usuário e senhas.


Dependências

PECL/oauth requer PHP 5.1 ou mais recente, ext/hash e ext/pcre.

PECL/oauth pode opcionalmente requerer libcurl se selecionado durante a compilação. Se configurado com libcurl, ela deve ser compilada com suporte a HTTPS.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pear.php.net/package/oauth


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

A maioria destas constantes envolve problemas, os quais também são descritos na documentação oficial do » Reportador de Problemas do OAuth. No entanto, observe que esses nomes de constantes são específicos do PHP, embora o esquema de nomes seja semelhante.

OAUTH_SIG_METHOD_RSASHA1 (string)
Método de assinatura OAuth RSA-SHA1.
OAUTH_SIG_METHOD_HMACSHA1 (string)

Método de assinatura OAuth HMAC-SHA1.

OAUTH_SIG_METHOD_HMACSHA256 (string)
Método de assinatura OAuth HMAC-SHA256.
OAUTH_AUTH_TYPE_AUTHORIZATION (string)

Esta constante representa a inserção de parâmetros OAuth no cabeçalho Authorization.

OAUTH_AUTH_TYPE_NONE (string)

Esta constante indica uma solicitação NoAuth OAuth.

OAUTH_AUTH_TYPE_URI (string)

Esta constante representa a inserção de parâmetros OAuth na solicitação URI.

OAUTH_AUTH_TYPE_FORM (string)

Esta constante representa a inserção de parâmetros OAuth como parte do corpo do POST HTTP.

OAUTH_HTTP_METHOD_GET (string)

Use o método GET para a solicitação OAuth.

OAUTH_HTTP_METHOD_POST (string)

Use o método POST para a solicitação OAuth.

OAUTH_HTTP_METHOD_PUT (string)

Use o método PUT para a solicitação OAuth.

OAUTH_HTTP_METHOD_HEAD (string)

Use o método HEAD para a solicitação OAuth.

OAUTH_HTTP_METHOD_DELETE (string)
Use o método DELETE para a solicitação OAuth.
OAUTH_REQENGINE_STREAMS (int)
Utilizado pelo método OAuth::setRequestEngine() para definir o mecanismo para PHP streams, ao contrário do OAUTH_REQENGINE_CURL para Curl.
OAUTH_REQENGINE_CURL (int)
Utilizado pelo método OAuth::setRequestEngine() para definir o mecanismo para Curl, ao contrário do OAUTH_REQENGINE_STREAMS para PHP streams.
OAUTH_OK (int)
Tudo certo.
OAUTH_BAD_NONCE (int)
O valor oauth_nonce foi usado em uma solicitação anterior, portanto, não pode ser usado agora.
OAUTH_BAD_TIMESTAMP (int)
O valor oauth_timestamp não foi aceito pelo provedor de serviço. Neste caso, a resposta também deve conter o parâmetro oauth_acceptable_timestamps.
OAUTH_CONSUMER_KEY_UNKNOWN (int)
O oauth_consumer_key é temporariamente inaceitável para o provedor de serviço. Por exemplo, o provedor de serviço pode estar limitando o consumo do cliente.
OAUTH_CONSUMER_KEY_REFUSED (int)
A chave do consumidor foi recusada.
OAUTH_INVALID_SIGNATURE (int)
O oauth_signature é inválido, pois não corresponde à assinatura calculada pelo provedor de serviço.
OAUTH_TOKEN_USED (int)
O oauth_token foi utilizado. Não pode mais ser utilizado porque já foi usado em solicitações anteriores.
OAUTH_TOKEN_EXPIRED (int)
O oauth_token expirou.
OAUTH_TOKEN_REVOKED (int)
O oauth_token foi revogado e nunca será aceito.
OAUTH_TOKEN_REJECTED (int)
O oauth_token não foi aceito pelo provedor de serviço. O motivo não é conhecido, mas pode ser porque o token nunca foi emitido, já foi consumido, expirou e/ou foi esquecido pelo provedor de serviço.
OAUTH_VERIFIER_INVALID (int)
O oauth_verifier está incorreto.
OAUTH_PARAMETER_ABSENT (int)
Um parâmetro obrigatório não foi recebido. Neste caso, a resposta também deve conter o parâmetro oauth_parameters_absent.
OAUTH_SIGNATURE_METHOD_REJECTED (int)
O oauth_signature_method não foi aceito pelo provedor de serviço.


  • « Constantes pré-definidas
  • FireEagle »
  • PHP Manual
  • OAuth
  • Exemplos

Exemplos

Índice

  • FireEagle


FireEagle

<?php
$req_url = 'https://fireeagle.yahooapis.com/oauth/request_token';
$authurl = 'https://fireeagle.yahoo.net/oauth/authorize';
$acc_url = 'https://fireeagle.yahooapis.com/oauth/access_token';
$api_url = 'https://fireeagle.yahooapis.com/api/0.1';
$conskey = 'your_consumer_key';
$conssec = 'your_consumer_secret';

session_start();

// Em state=1 a próxima solicitação deve incluir um oauth_token.
// Se não volta para 0
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;
try {
$oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);
$oauth->enableDebug();
if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
$request_token_info = $oauth->getRequestToken($req_url);
$_SESSION['secret'] = $request_token_info['oauth_token_secret'];
$_SESSION['state'] = 1;
header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']);
exit;
} else if($_SESSION['state']==1) {
$oauth->setToken($_GET['oauth_token'],$_SESSION['secret']);
$access_token_info = $oauth->getAccessToken($acc_url);
$_SESSION['state'] = 2;
$_SESSION['token'] = $access_token_info['oauth_token'];
$_SESSION['secret'] = $access_token_info['oauth_token_secret'];
}
$oauth->setToken($_SESSION['token'],$_SESSION['secret']);
$oauth->fetch("$api_url/user.json");
$json = json_decode($oauth->getLastResponse());
print_r($json);
} catch(OAuthException $E) {
print_r($E);
}
?>


Funções OAuth

Índice

  • oauth_get_sbs — Gera uma String Base de Assinatura
  • oauth_urlencode — Codifica uma URI conforme RFC 3986


Gera uma String Base de Assinatura

  • « Funções OAuth
  • oauth_urlencode »
  • PHP Manual
  • Funções OAuth
  • Gera uma String Base de Assinatura

oauth_get_sbs

(PECL OAuth >=0.99.7)

oauth_get_sbs — Gera uma String Base de Assinatura

Descrição

oauth_get_sbs(string $http_method, string $uri, array $request_parameters = ?): string

Gera uma String Base de Assinatura de acordo com pecl/oauth.

Parâmetros

http_method

O método HTTP.

uri

URI a codificar.

request_parameters

Array de parâmetros de requisição.

Valor Retornado

Retorna uma String Base de Assinatura


Codifica uma URI conforme RFC 3986

  • « oauth_get_sbs
  • OAuth »
  • PHP Manual
  • Funções OAuth
  • Codifica uma URI conforme RFC 3986

oauth_urlencode

(PECL OAuth >=0.99.2)

oauth_urlencode — Codifica uma URI conforme RFC 3986

Descrição

oauth_urlencode(string $uri): string

Codifica uma URI conforme a » RFC 3986.

Parâmetros

uri

URI a codificar.

Valor Retornado

Retorna uma string codificada conforme a » RFC 3986.


A classe OAuth

(PECL OAuth >= 0.99.1)

Introdução

A extensão OAuth fornece uma interface simples para interagir com provedores de dados usando a especificação HTTP OAuth para proteger recursos privados.

Resumo da classe

class OAuth {
/* Propriedades */
public $debug;
public $sslChecks;
public $debugInfo;
/* Métodos */
public __construct(
string $consumer_key,
string $consumer_secret,
string $signature_method = OAUTH_SIG_METHOD_HMACSHA1,
int $auth_type = 0
)
public __destruct(): void
public disableDebug(): bool
public disableRedirects(): bool
public disableSSLChecks(): bool
public enableDebug(): bool
public enableRedirects(): bool
public enableSSLChecks(): bool
public fetch(
string $protected_resource_url,
array $extra_parameters = ?,
string $http_method = ?,
array $http_headers = ?
): mixed
public generateSignature(string $http_method, string $url, mixed $extra_parameters = ?): string|false
public getAccessToken(
string $access_token_url,
string $auth_session_handle = ?,
string $verifier_token = ?,
string $http_method = ?
): array
public getCAPath(): array
public getLastResponse(): string
public getLastResponseHeaders(): string|false
public getLastResponseInfo(): array
public getRequestHeader(string $http_method, string $url, mixed $extra_parameters = ?): string|false
public getRequestToken(string $request_token_url, string $callback_url = ?, string $http_method = ?): array
public setAuthType(int $auth_type): bool
public setCAPath(string $ca_path = ?, string $ca_info = ?): mixed
public setNonce(string $nonce): mixed
public setRequestEngine(int $reqengine): void
public setRSACertificate(string $cert): mixed
public setSSLChecks(int $sslcheck): bool
public setTimestamp(string $timestamp): mixed
public setToken(string $token, string $token_secret): bool
public setVersion(string $version): bool
}

Propriedades

debug

sslChecks

debugInfo

Índice

  • OAuth::__construct — Cria um objeto OAuth
  • OAuth::__destruct — O destruidor
  • OAuth::disableDebug — Desativa a depuração detalhada
  • OAuth::disableRedirects — Desativa o redirecionamento
  • OAuth::disableSSLChecks — Desativa verificações SSL
  • OAuth::enableDebug — Ativa a depuração detalhada
  • OAuth::enableRedirects — Habilita redirecionamentos
  • OAuth::enableSSLChecks — Ativa verificações SSL
  • OAuth::fetch — Busca um recurso protegido OAuth
  • OAuth::generateSignature — Gera uma assinatura
  • OAuth::getAccessToken — Busca um token de acesso
  • OAuth::getCAPath — Obtém informação de CA
  • OAuth::getLastResponse — Obtém a última resposta
  • OAuth::getLastResponseHeaders — Obtém cabeçalhos para a última resposta
  • OAuth::getLastResponseInfo — Obtém informação HTTP sobre a última resposta
  • OAuth::getRequestHeader — Gera assinatura string de cabeçalho OAuth
  • OAuth::getRequestToken — Busca um token de requisição
  • OAuth::setAuthType — Define o tipo de autorização
  • OAuth::setCAPath — Define caminho e informação da CA
  • OAuth::setNonce — Define o nonce para requisições subsequentes
  • OAuth::setRequestEngine — Defineo o mecanismo da requisição
  • OAuth::setRSACertificate — Define o certificado RSA
  • OAuth::setSSLChecks — Ajusta verficações SSL específicas para requisições
  • OAuth::setTimestamp — Define o timestamp
  • OAuth::setToken — Define o token e o segredo
  • OAuth::setVersion — Define a versão OAuth


Cria um objeto OAuth

  • « OAuth
  • OAuth::__destruct »
  • PHP Manual
  • OAuth
  • Cria um objeto OAuth

OAuth::__construct

(PECL OAuth >= 0.99.1)

OAuth::__construct — Cria um objeto OAuth

Descrição

public OAuth::__construct(
string $consumer_key,
string $consumer_secret,
string $signature_method = OAUTH_SIG_METHOD_HMACSHA1,
int $auth_type = 0
)

Cria um novo objeto OAuth.

Parâmetros

consumer_key

A chave do consumidor fornecida pelo provedor do serviço.

consumer_secret

A senha do consumidor fornecida pelo provedor do serviço.

signature_method

Este parâmetro opcional define o método de assinatura a ser usado, por padrão é OAUTH_SIG_METHOD_HMACSHA1 (HMAC-SHA1).

auth_type

Este parâmetro opcional define como passar os parâmetros OAuth para um consumidor, por padrão é OAUTH_AUTH_TYPE_AUTHORIZATION (no cabeçalho Authorization).


O destruidor

  • « OAuth::__construct
  • OAuth::disableDebug »
  • PHP Manual
  • OAuth
  • O destruidor

OAuth::__destruct

(PECL OAuth >= 0.99.9)

OAuth::__destruct — O destruidor

Descrição

public OAuth::__destruct(): void

O destruidor.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • OAuth::__construct() - Cria um objeto OAuth


Desativa a depuração detalhada

  • « OAuth::__destruct
  • OAuth::disableRedirects »
  • PHP Manual
  • OAuth
  • Desativa a depuração detalhada

OAuth::disableDebug

(PECL OAuth >= 0.99.3)

OAuth::disableDebug — Desativa a depuração detalhada

Descrição

public OAuth::disableDebug(): bool

Desativa a informação detalhada da requisição (desligada por padrão). Alternativamente, a propriedade debug pode ser definida para false para desligar a depuração.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true

Registro de Alterações

Versão | Descrição
PECL oauth 0.99.8 | A propriedade debug foi adicionada.

Veja Também

  • OAuth::enableDebug() - Ativa a depuração detalhada


Desativa o redirecionamento

  • « OAuth::disableDebug
  • OAuth::disableSSLChecks »
  • PHP Manual
  • OAuth
  • Desativa o redirecionamento

OAuth::disableRedirects

(PECL OAuth >= 0.99.9)

OAuth::disableRedirects — Desativa o redirecionamento

Descrição

public OAuth::disableRedirects(): bool

Desativa o redirecionamento automático, permitindo que a requisição seja redirecionada manualmente.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true

Veja Também

  • OAuth::enableRedirects() - Habilita redirecionamentos


Desativa verificações SSL

  • « OAuth::disableRedirects
  • OAuth::enableDebug »
  • PHP Manual
  • OAuth
  • Desativa verificações SSL

OAuth::disableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::disableSSLChecks — Desativa verificações SSL

Descrição

public OAuth::disableSSLChecks(): bool

Desativa as verificação usuais de certificado e servidor SSL, não é para se usado em ambiente de produção. Alternativamente, o membro sslChecks pode ser definido para false para desativar as verificações SSL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true

Registro de Alterações

Versão | Descrição
PECL oauth 0.99.8 | O membro sslChecks foi adicionado.

Veja Também

  • OAuth::enableSSLChecks() - Ativa verificações SSL


Ativa a depuração detalhada

  • « OAuth::disableSSLChecks
  • OAuth::enableRedirects »
  • PHP Manual
  • OAuth
  • Ativa a depuração detalhada

OAuth::enableDebug

(PECL OAuth >= 0.99.3)

OAuth::enableDebug — Ativa a depuração detalhada

Descrição

public OAuth::enableDebug(): bool

Ativa a informação de requisição detalhada, útil para depuração. A informação de depuração é armazenada no membro debugInfo. Alternativamente, o membro debug pode ser definido para um valor não-false para ativar a depuração.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true

Registro de Alterações

Versão | Descrição
PECL oauth 0.99.8 | Os membros debug e debugInfo foram adicionados.

Veja Também

  • OAuth::disableDebug() - Desativa a depuração detalhada


Habilita redirecionamentos

  • « OAuth::enableDebug
  • OAuth::enableSSLChecks »
  • PHP Manual
  • OAuth
  • Habilita redirecionamentos

OAuth::enableRedirects

(PECL OAuth >= 0.99.9)

OAuth::enableRedirects — Habilita redirecionamentos

Descrição

public OAuth::enableRedirects(): bool

Segue e assina redirecionamentos automaticamente, o que é habilitado por padrão.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true

Veja Também

  • OAuth::disableRedirects() - Desativa o redirecionamento


Ativa verificações SSL

  • « OAuth::enableRedirects
  • OAuth::fetch »
  • PHP Manual
  • OAuth
  • Ativa verificações SSL

OAuth::enableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::enableSSLChecks — Ativa verificações SSL

Descrição

public OAuth::enableSSLChecks(): bool

Ativa as verificações usuais de certificado e servidor SSL (habilitadas por padrão). Alternativamente o membro sslChecks pode ser definido para um valor não-false para ativar as verificações SSL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true

Registro de Alterações

Versão | Descrição
PECL oauth 0.99.8 | The sslChecks member was added

Veja Também

  • OAuth::disableSSLChecks() - Desativa verificações SSL


Busca um recurso protegido OAuth

  • « OAuth::enableSSLChecks
  • OAuth::generateSignature »
  • PHP Manual
  • OAuth
  • Busca um recurso protegido OAuth

OAuth::fetch

(PECL OAuth >= 0.99.1)

OAuth::fetch — Busca um recurso protegido OAuth

Descrição

public OAuth::fetch(
string $protected_resource_url,
array $extra_parameters = ?,
string $http_method = ?,
array $http_headers = ?
): mixed

Busca um recurso.

Parâmetros

protected_resource_url

URL para o recurso protegido OAuth.

extra_parameters

Parâmetros extra a enviar com a requisição para o recurso.

http_method

Uma das constantes OAUTH OAUTH_HTTP_METHOD_*, que incluem GET, POST, PUT, HEAD, ou DELETE.

HEAD (OAUTH_HTTP_METHOD_HEAD) pode ser útil para descobrir informações antes da requisição (se as credenciais OAuth estiverem no cabeçalho Authorization).

http_headers

Cabeçalhos de cliente HTTP (tais como User-Agent, Accept, etc.)

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL oauth 1.0.0 | Anteriormente, retornava null em caso de falha, em vez de false.
PECL oauth 0.99.5 | O parâmetro http_method foi adicionado.
PECL oauth 0.99.8 | O parâmetro http_headers foi adicionado.

Exemplos

Exemplo #1 Exemplo de OAuth::fetch()

<?php
try {
$oauth = new OAuth("chave_consumidor","senha_consumidor",OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->setToken("token_acesso","senha_token_acesso");

$oauth->fetch("http://photos.example.net/photo?file=vacation.jpg");

$response_info = $oauth->getLastResponseInfo();
header("Content-Type: {$response_info["content_type"]}");
echo $oauth->getLastResponse();
} catch(OAuthException $E) {
echo "Exceção capturada!\n";
echo "Resposta: ". $E->lastResponse . "\n";
}
?>

Veja Também

  • OAuth::getLastResponse() - Obtém a última resposta
  • OAuth::getLastResponseInfo() - Obtém informação HTTP sobre a última resposta
  • OAuth::setToken() - Define o token e o segredo


Gera uma assinatura

  • « OAuth::fetch
  • OAuth::getAccessToken »
  • PHP Manual
  • OAuth
  • Gera uma assinatura

OAuth::generateSignature

(Não há informação de versão disponível, talvez apenas no Git)

OAuth::generateSignature — Gera uma assinatura

Descrição

public OAuth::generateSignature(string $http_method, string $url, mixed $extra_parameters = ?): string|false

Gera uma assinatura baseada no método HTTP final, URL e uma string/array de parâmetros.

Parâmetros

http_method

Método HTTP para requisição

url

URL para requisição

extra_parameters

String ou array de parâmetros adicionais.

Valor Retornado

Uma string contendo a assinatura gerada ou false em caso de falha


Busca um token de acesso

  • « OAuth::generateSignature
  • OAuth::getCAPath »
  • PHP Manual
  • OAuth
  • Busca um token de acesso

OAuth::getAccessToken

(PECL OAuth >= 0.99.1)

OAuth::getAccessToken — Busca um token de acesso

Descrição

public OAuth::getAccessToken(
string $access_token_url,
string $auth_session_handle = ?,
string $verifier_token = ?,
string $http_method = ?
): array

Busca um token de acesso, segredo e quaisquer parâmetros de resposta adicionais do provedor de serviço.

Parâmetros

access_token_url

URL para acessar a API do token.

auth_session_handle

Identificador de sessão de autorização, este parâmetro não tem qualquer citação na especificação interna do OAuth 1.0 mas pode ser implementada por grandes provedores. Consulte » ScalableOAuth para mais informação.

verifier_token

Para provedores de serviço que suportam 1.0a, um verifier_token deve ser passado durante a troca do token de requisição pelo token de acesso. Se o verifier_token estiver presente em $_GET ou $_POST, ele é passado automaticamente e o chamador não precisa especificar um verifier_token (normalmente se o token de acesso for trocado na URL oauth_callback). Consulte » ScalableOAuth para mais informação.

http_method

Método HTTP a ser usado, e.g. GET ou POST.

Valor Retornado

Retorna um array contendo a resposta OAuth interpretada em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL oauth 1.0.0 | Anteriormente, retornava null em caso de falha, em vez de false.
PECL oauth 0.99.9 | O parâmetro verifier_token foi adicionado.

Exemplos

Exemplo #1 Exemplo de OAuth::getAccessToken()

<?php
try {
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
$oauth->setToken($request_token,$request_token_secret);
$access_token_info = $oauth->getAccessToken("https://example.com/oauth/access_token");
if(!empty($access_token_info)) {
print_r($access_token_info);
} else {
print "Falha ao buscar o token de acesso, resposta foi: " . $oauth->getLastResponse();
}
} catch(OAuthException $E) {
echo "Resposta: ". $E->lastResponse . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [oauth_token] => algum_token
    [oauth_token_secret] => algum_segredo_de_token
)

Veja Também

  • OAuth::getLastResponse() - Obtém a última resposta
  • OAuth::getLastResponseInfo() - Obtém informação HTTP sobre a última resposta
  • OAuth::setToken() - Define o token e o segredo


Obtém informação de CA

  • « OAuth::getAccessToken
  • OAuth::getLastResponse »
  • PHP Manual
  • OAuth
  • Obtém informação de CA

OAuth::getCAPath

(PECL OAuth >= 0.99.8)

OAuth::getCAPath — Obtém informação de CA

Descrição

public OAuth::getCAPath(): array

Obtém a informação de Autoridade de Certificado, que inclui ca_path e ca_info definidos por OAuth::setCaPath().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Um array de informação de Autoridade de Certificado, especificamente como chaver ca_path e ca_info dentro do array associativo retornado.

Veja Também

  • OAuth::setCAPath() - Define caminho e informação da CA
  • OAuth::getLastResponseInfo() - Obtém informação HTTP sobre a última resposta


Obtém a última resposta

  • « OAuth::getCAPath
  • OAuth::getLastResponseHeaders »
  • PHP Manual
  • OAuth
  • Obtém a última resposta

OAuth::getLastResponse

(PECL OAuth >= 0.99.1)

OAuth::getLastResponse — Obtém a última resposta

Descrição

public OAuth::getLastResponse(): string

Obtém a resposta bruta da requisição mais recente.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string contendo a última resposta.

Veja Também

  • OAuth::getLastResponseInfo() - Obtém informação HTTP sobre a última resposta
  • OAuth::fetch() - Busca um recurso protegido OAuth


Obtém cabeçalhos para a última resposta

  • « OAuth::getLastResponse
  • OAuth::getLastResponseInfo »
  • PHP Manual
  • OAuth
  • Obtém cabeçalhos para a última resposta

OAuth::getLastResponseHeaders

(Não há informação de versão disponível, talvez apenas no Git)

OAuth::getLastResponseHeaders — Obtém cabeçalhos para a última resposta

Descrição

public OAuth::getLastResponseHeaders(): string|false

Obtém cabeçalhos para a última resposta.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma string contendo os cabeçalhos da última resposta ou false em caso de falha


Obtém informação HTTP sobre a última resposta

  • « OAuth::getLastResponseHeaders
  • OAuth::getRequestHeader »
  • PHP Manual
  • OAuth
  • Obtém informação HTTP sobre a última resposta

OAuth::getLastResponseInfo

(PECL OAuth >= 0.99.1)

OAuth::getLastResponseInfo — Obtém informação HTTP sobre a última resposta

Descrição

public OAuth::getLastResponseInfo(): array

Obtém informação HTTP sobre a última resposta.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array contendo a informação de resposta para a última requisição. Constantes de curl_getinfo() podem ser usadas.

Veja Também

  • OAuth::fetch() - Busca um recurso protegido OAuth
  • OAuth::getLastResponse() - Obtém a última resposta


Gera assinatura string de cabeçalho OAuth

  • « OAuth::getLastResponseInfo
  • OAuth::getRequestToken »
  • PHP Manual
  • OAuth
  • Gera assinatura string de cabeçalho OAuth

OAuth::getRequestHeader

(Não há informação de versão disponível, talvez apenas no Git)

OAuth::getRequestHeader — Gera assinatura string de cabeçalho OAuth

Descrição

public OAuth::getRequestHeader(string $http_method, string $url, mixed $extra_parameters = ?): string|false

Gera assinatura string de cabeçalho OAuth baseada no método HTTP final, URL e uma string/array de parâmetros.

Parâmetros

http_method

Método HTTP para requisição.

url

URL para requisição.

extra_parameters

String ou array de parâmetros adicionais.

Valor Retornado

Uma string contendo o cabeçalho de requisição gerado ou false em caso de falha


Busca um token de requisição

  • « OAuth::getRequestHeader
  • OAuth::setAuthType »
  • PHP Manual
  • OAuth
  • Busca um token de requisição

OAuth::getRequestToken

(PECL OAuth >= 0.99.1)

OAuth::getRequestToken — Busca um token de requisição

Descrição

public OAuth::getRequestToken(string $request_token_url, string $callback_url = ?, string $http_method = ?): array

Busca um token de requisição, segredo e quaisquer parâmetros de resposta adicionais do provedor de serviço.

Parâmetros

request_token_url

URL para a API do token de requisição.

callback_url

URL de chamada de retorno OAuth. Se callback_url for informado e for um valor, é definido para "oob" para endereçar o alerta OAuth 2009.1.

http_method

Método HTTP a ser usado, ex.: GET ou POST.

Valor Retornado

Retorna um array contendo a resposta OAuth interpretada em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
PECL oauth 1.0.0 | Anteriormente, retornava null em caso de falha, em vez de false.
PECL oauth 0.99.9 | O parâmetro callback_url foi adicionado

Exemplos

Exemplo #1 Exemplo de OAuth::getRequestToken()

<?php
try {
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
$request_token_info = $oauth->getRequestToken("https://example.com/oauth/request_token");
if(!empty($request_token_info)) {
print_r($request_token_info);
} else {
print "Falha ao buscar token de requisição, resposta foi: " . $oauth->getLastResponse();
}
} catch(OAuthException $E) {
echo "Resposta: ". $E->lastResponse . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

Array
(
    [oauth_token] => algum_token
    [oauth_token_secret] => algum_segredo_de_token
)

Veja Também

  • OAuth::getLastResponse() - Obtém a última resposta
  • OAuth::getLastResponseInfo() - Obtém informação HTTP sobre a última resposta


Define o tipo de autorização

  • « OAuth::getRequestToken
  • OAuth::setCAPath »
  • PHP Manual
  • OAuth
  • Define o tipo de autorização

OAuth::setAuthType

(PECL OAuth >= 0.99.1)

OAuth::setAuthType — Define o tipo de autorização

Descrição

public OAuth::setAuthType(int $auth_type): bool

Define onde os parâmetros OAuth devem ser passados.

Parâmetros

auth_type

auth_type pode ser uma das seguintes opções (em ordem de preferência decrescente de acordo com o OAuth 1.0 seção 5.2):

OAUTH_AUTH_TYPE_AUTHORIZATION
Passar os parâmetros OAuth no cabeçalho Authorization do HTTP.
OAUTH_AUTH_TYPE_FORM
Anexar os parâmetros OAuth ao corpo de requisição do POST HTTP.
OAUTH_AUTH_TYPE_URI
Anexar os parâmetros OAuth à URI da requisição.
OAUTH_AUTH_TYPE_NONE
Nenhum.

Valor Retornado

Retorna true se um parâemtro for corretamente definido, caso contrário false (ex.:, se um auth_type inválido for passado).

Registro de Alterações

Versão | Descrição
PECL oauth 1.0.0 | Anteriormente, retornava null em caso de falha, em vez de false.


Define caminho e informação da CA

  • « OAuth::setAuthType
  • OAuth::setNonce »
  • PHP Manual
  • OAuth
  • Define caminho e informação da CA

OAuth::setCAPath

(PECL OAuth >= 0.99.8)

OAuth::setCAPath — Define caminho e informação da CA

Descrição

public OAuth::setCAPath(string $ca_path = ?, string $ca_info = ?): mixed

Define a Autoridade de Certificado (CA), tanto o caminho quanto a informação.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

ca_path

O caminnho CA sendo definido.

ca_info

A informação CA sendo definida.

Valor Retornado

Retorna true em caso de sucesso, ou false se ca_path ou ca_info forem considerados inválidos.

Registro de Alterações

Versão | Descrição
PECL oauth 1.0.0 | Anteriormente, retornava null em caso de falha, em vez de false.

Veja Também

  • OAuth::getCaPath() - Obtém informação de CA


Define o nonce para requisições subsequentes

  • « OAuth::setCAPath
  • OAuth::setRequestEngine »
  • PHP Manual
  • OAuth
  • Define o nonce para requisições subsequentes

OAuth::setNonce

(PECL OAuth >= 0.99.1)

OAuth::setNonce — Define o nonce para requisições subsequentes

Descrição

public OAuth::setNonce(string $nonce): mixed

Define o nonce para todas as requisições subsequentes.

Parâmetros

nonce

O valor para oauth_nonce.

Valor Retornado

Retorna true em caso de sucesso, ou false se o nonce for considerado inválido.

Registro de Alterações

Versão | Descrição
PECL oauth 1.0.0 | Anteriormente, retornava null em caso de falha, em vez de false.

Veja Também

  • OAuth::setToken() - Define o token e o segredo
  • OAuth::setAuthType() - Define o tipo de autorização
  • OAuth::setVersion() - Define a versão OAuth


Defineo o mecanismo da requisição

  • « OAuth::setNonce
  • OAuth::setRSACertificate »
  • PHP Manual
  • OAuth
  • Defineo o mecanismo da requisição

OAuth::setRequestEngine

(PECL OAuth >= 1.0.0)

OAuth::setRequestEngine — Defineo o mecanismo da requisição

Descrição

public OAuth::setRequestEngine(int $reqengine): void

Define o mecanismo que enviará as requisições HTTP.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

reqengine

O mecanismo de requisição desejado. Definido como OAUTH_REQENGINE_STREAMS para uso de Fluxos PHP ou OAUTH_REQENGINE_CURL para usar Curl.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Emite uma exceção OAuthException se um mecanismo de requisição inválido for escolhido.

Exemplos

Exemplo #1 Exemplo de OAuth::setRequestEngine()

<?php
$consumer = new OAuth();

$consumer->setRequestEngine(OAUTH_REQENGINE_STREAMS);
?>

Veja Também

  • Curl
  • Fluxos PHP
  • OAuthException


Define o certificado RSA

  • « OAuth::setRequestEngine
  • OAuth::setSSLChecks »
  • PHP Manual
  • OAuth
  • Define o certificado RSA

OAuth::setRSACertificate

(PECL OAuth >= 1.0.0)

OAuth::setRSACertificate — Define o certificado RSA

Descrição

public OAuth::setRSACertificate(string $cert): mixed

Define o certificado RSA.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

cert

O certificado RSA.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha (ex.: o certificado RSA não pode ser analisado).

Registro de Alterações

Versão | Descrição
PECL oauth 1.0.0 | Anteriormente, retornava null em caso de falha, em vez de false.

Exemplos

Exemplo #1 Um exemplo de OAuth::setRsaCertificate()

<?php
$consume = new OAuth('1234', '', OAUTH_SIG_METHOD_RSASHA1);

$consume->setRSACertificate(file_get_contents('test.pem'));
?>

Veja Também

  • OAuth::setCaPath() - Define caminho e informação da CA


Ajusta verficações SSL específicas para requisições

  • « OAuth::setRSACertificate
  • OAuth::setTimestamp »
  • PHP Manual
  • OAuth
  • Ajusta verficações SSL específicas para requisições

OAuth::setSSLChecks

(Não há informação de versão disponível, talvez apenas no Git)

OAuth::setSSLChecks — Ajusta verficações SSL específicas para requisições

Descrição

public OAuth::setSSLChecks(int $sslcheck): bool

Ajusta verficações SSL específicas para requisições.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

sslcheck

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Define o timestamp

  • « OAuth::setSSLChecks
  • OAuth::setToken »
  • PHP Manual
  • OAuth
  • Define o timestamp

OAuth::setTimestamp

(PECL OAuth >= 1.0.0)

OAuth::setTimestamp — Define o timestamp

Descrição

public OAuth::setTimestamp(string $timestamp): mixed

Define o timestamp OAuth para requisições subsequentes.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

timestamp

O timestamp.

Valor Retornado

Retorna true, a menos que timestamp seja inválido, neste caso retorna false.

Registro de Alterações

Versão | Descrição
PECL oauth 1.0.0 | Anteriormente, retornava null em caso de falha, em vez de false.

Veja Também

  • OAuth::setNonce() - Define o nonce para requisições subsequentes


Define o token e o segredo

  • « OAuth::setTimestamp
  • OAuth::setVersion »
  • PHP Manual
  • OAuth
  • Define o token e o segredo

OAuth::setToken

(PECL OAuth >= 0.99.1)

OAuth::setToken — Define o token e o segredo

Descrição

public OAuth::setToken(string $token, string $token_secret): bool

Define o token e o segredo para requisições subsequentes.

Parâmetros

token

O token OAuth.

token_secret

O segredo de token OAuth.

Valor Retornado

true

Exemplos

Exemplo #1 Exemplo de OAuth::setToken()

<?php
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
$oauth->setToken("token","segredo-token");
?>


Define a versão OAuth

  • « OAuth::setToken
  • OAuthProvider »
  • PHP Manual
  • OAuth
  • Define a versão OAuth

OAuth::setVersion

(PECL OAuth >= 0.99.1)

OAuth::setVersion — Define a versão OAuth

Descrição

public OAuth::setVersion(string $version): bool

Define a versão OAuth para requisições subsequentes.

Parâmetros

version

Versão OAuth, o valor padrão é sempre "1.0".

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


A classe OAuthProvider

(PECL OAuth >= 1.0.0)

Introdução

Gerencia uma classe de provedor OAuth.

Veja também um tutorial externo detalhado intitulado » Escrevendo um Serviço Provedor OAuth, que adota uma abordagem prática para fornecer este serviço. Também existem » exemplos de provedor OAuth dentro das fontes de extensão OAuth.

Resumo da classe

class OAuthProvider {
/* Métodos */
final public addRequiredParameter(string $req_params): bool
public callconsumerHandler(): void
public callTimestampNonceHandler(): void
public calltokenHandler(): void
public checkOAuthRequest(string $uri = ?, string $method = ?): void
public __construct(array $params_array = ?)
public consumerHandler(callable $callback_function): void
final public static generateToken(int $size, bool $strong = false): string
public is2LeggedEndpoint(mixed $params_array): void
public isRequestTokenEndpoint(bool $will_issue_request_token): void
final public removeRequiredParameter(string $req_params): bool
final public static reportProblem(string $oauthexception, bool $send_headers = true): string
final public setParam(string $param_key, mixed $param_val = ?): bool
final public setRequestTokenPath(string $path): bool
public timestampNonceHandler(callable $callback_function): void
public tokenHandler(callable $callback_function): void
}

Índice

  • OAuthProvider::addRequiredParameter — Adiciona parâmetros requeridos
  • OAuthProvider::callconsumerHandler — Chama a função de retorno consumerHandler
  • OAuthProvider::callTimestampNonceHandler — Chama a função de retorno timestampNonceHandler
  • OAuthProvider::calltokenHandler — Chama a função de retorno tokenHandler
  • OAuthProvider::checkOAuthRequest — Verifica uma requisição OAuth
  • OAuthProvider::__construct — Constrói um novo objeto OAuthProvider
  • OAuthProvider::consumerHandler — Define a função de retorno de gerenciamento de consumidor
  • OAuthProvider::generateToken — Gera um token aleatório
  • OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint
  • OAuthProvider::isRequestTokenEndpoint — Define isRequestTokenEndpoint
  • OAuthProvider::removeRequiredParameter — Remove um parâmetro requerido
  • OAuthProvider::reportProblem — Reporta um problema
  • OAuthProvider::setParam — Define um parâmetro
  • OAuthProvider::setRequestTokenPath — Define o caminho para o token de requisição
  • OAuthProvider::timestampNonceHandler — Define a função de retorno de gerenciamento de timestamp nonce
  • OAuthProvider::tokenHandler — Define a função de retorno de gerenciamento de token


Adiciona parâmetros requeridos

  • « OAuthProvider
  • OAuthProvider::callconsumerHandler »
  • PHP Manual
  • OAuthProvider
  • Adiciona parâmetros requeridos

OAuthProvider::addRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::addRequiredParameter — Adiciona parâmetros requeridos

Descrição

final public OAuthProvider::addRequiredParameter(string $req_params): bool

Adiciona parâmetros requeridos pelo provedor OAuth.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

req_params

Os parâmetros requeridos.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • OAuthProvider::removeRequiredParameter() - Remove um parâmetro requerido


Chama a função de retorno consumerHandler

  • « OAuthProvider::addRequiredParameter
  • OAuthProvider::callTimestampNonceHandler »
  • PHP Manual
  • OAuthProvider
  • Chama a função de retorno consumerHandler

OAuthProvider::callconsumerHandler

(Não há informação de versão disponível, talvez apenas no Git)

OAuthProvider::callconsumerHandler — Chama a função de retorno consumerHandler

Descrição

public OAuthProvider::callconsumerHandler(): void

Chama a função de retorno de gerenciamento de consumidor registrada, que é definida com OAuthProvider::consumerHandler().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Emite um erro de nível E_ERROR se a função callback não puder ser chamada ou não for especificada.

Veja Também

  • OAuthProvider::consumerHandler() - Define a função de retorno de gerenciamento de consumidor


Chama a função de retorno timestampNonceHandler

  • « OAuthProvider::callconsumerHandler
  • OAuthProvider::calltokenHandler »
  • PHP Manual
  • OAuthProvider
  • Chama a função de retorno timestampNonceHandler

OAuthProvider::callTimestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::callTimestampNonceHandler — Chama a função de retorno timestampNonceHandler

Descrição

public OAuthProvider::callTimestampNonceHandler(): void

chama a função de retorno de gerenciamento de timestamp registrada, que é definida com OAuthProvider::timestampNonceHandler().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Emite um erro de nível E_ERROR se a função callback não puder ser chamada ou não for especificada.

Veja Também

  • OAuthProvider::timestampNonceHandler() - Define a função de retorno de gerenciamento de timestamp nonce


Chama a função de retorno tokenHandler

  • « OAuthProvider::callTimestampNonceHandler
  • OAuthProvider::checkOAuthRequest »
  • PHP Manual
  • OAuthProvider
  • Chama a função de retorno tokenHandler

OAuthProvider::calltokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::calltokenHandler — Chama a função de retorno tokenHandler

Descrição

public OAuthProvider::calltokenHandler(): void

Chama a função de retorno de gerenciamento de token registrada, que é definida com OAuthProvider::tokenHandler().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Emite um erro de nível E_ERROR se a função callback não puder ser chamada ou não for especificada.

Veja Também

  • OAuthProvider::tokenHandler() - Define a função de retorno de gerenciamento de token


Verifica uma requisição OAuth

  • « OAuthProvider::calltokenHandler
  • OAuthProvider::__construct »
  • PHP Manual
  • OAuthProvider
  • Verifica uma requisição OAuth

OAuthProvider::checkOAuthRequest

(PECL OAuth >= 1.0.0)

OAuthProvider::checkOAuthRequest — Verifica uma requisição OAuth

Descrição

public OAuthProvider::checkOAuthRequest(string $uri = ?, string $method = ?): void

Verifica uma requisição OAuth.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

uri

A URI opcional, ou ponto de extremidade.

method

O método HTTP. Opcional, pode ser passada uma das constantes OAuth OAUTH_HTTP_METHOD_*.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

Emite um erro de nível E_ERROR se o método HTTP não puder ser detectado.

Veja Também

  • OAuthProvider::reportProblem() - Reporta um problema


Constrói um novo objeto OAuthProvider

  • « OAuthProvider::checkOAuthRequest
  • OAuthProvider::consumerHandler »
  • PHP Manual
  • OAuthProvider
  • Constrói um novo objeto OAuthProvider

OAuthProvider::__construct

(PECL OAuth >= 1.0.0)

OAuthProvider::__construct — Constrói um novo objeto OAuthProvider

Descrição

public OAuthProvider::__construct(array $params_array = ?)

Inicia um novo object da classe OAuthProvider.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

params_array

Definir estes parâmetros opcionais está limitado ao SAPI CLI.

Valor Retornado

Um object da classe OAuthProvider.

Exemplos

Exemplo #1 Exemplo de OAuthProvider::__construct()

<?php
try {

$op = new OAuthProvider();

// Usa funções de retorno definidas pelo usuário
$op->consumerHandler(array($this, 'procuraConsumidor'));
$op->timestampNonceHandler(array($this, 'verificadorTimestampNonce'));
$op->tokenHandler(array($this, 'meuGerenciadorDeToken'));

// Ignora o parâmetro foo_uri
$op->setParam('foo_uri', NULL);

// Não é necessário token para este ponto de extremidade
$op->setRequestTokenPath('/v1/oauth/request_token');

$op->checkOAuthRequest();

} catch (OAuthException $e) {

echo OAuthProvider::reportProblem($e);
}
?>

Veja Também

  • OAuthProvider::setParam() - Define um parâmetro


Define a função de retorno de gerenciamento de consumidor

  • « OAuthProvider::__construct
  • OAuthProvider::generateToken »
  • PHP Manual
  • OAuthProvider
  • Define a função de retorno de gerenciamento de consumidor

OAuthProvider::consumerHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::consumerHandler — Define a função de retorno de gerenciamento de consumidor

Descrição

public OAuthProvider::consumerHandler(callable $callback_function): void

Define a função de retorno de gerenciamento de consumidor, que posteriormente será chamada com OAuthProvider::callConsumerHandler().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

callback_function

O nome da função do tipo callable.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de função OAuthProvider::consumerHandler()

<?php
function procuraConsumidor($provider) {

if ($provider->consumer_key === 'unknown') {
return OAUTH_CONSUMER_KEY_UNKNOWN;
} else if($provider->consumer_key == 'blacklisted' || $provider->consumer_key === 'throttled') {
return OAUTH_CONSUMER_KEY_REFUSED;
}

$provider->consumer_secret = "the_consumers_secret";

return OAUTH_OK;
}
?>

Veja Também

  • OAuthProvider::callConsumerHandler() - Chama a função de retorno consumerHandler


Gera um token aleatório

  • « OAuthProvider::consumerHandler
  • OAuthProvider::is2LeggedEndpoint »
  • PHP Manual
  • OAuthProvider
  • Gera um token aleatório

OAuthProvider::generateToken

(PECL OAuth >= 1.0.0)

OAuthProvider::generateToken — Gera um token aleatório

Descrição

final public static OAuthProvider::generateToken(int $size, bool $strong = false): string

Gera uma string de bytes pseudo-randômicos.

Parâmetros

size

O comprimento desejado do token, em bytes.

strong

Definir para true significa que /dev/random será usado para entropia, caso contrário /dev/urandom (de não-bloqueio) será usado. Este parâmetro é ignorado no Windows.

Valor Retornado

O token gerado, como uma string de bytes.

Erros/Exceções

Se o parâmetro strong for true, um erro de nível E_WARNING será emitido quando a implementação de rand() for usada para preencher os bytes aleatórios remanescentes (ex.: quando não forem encontrados dados aleatórios suficientes inicialmente).

Exemplos

Exemplo #1 Exemplo de OAuthProvider::generateToken()

<?php
$p = new OAuthProvider();

$t = $p->generateToken(4);

echo strlen($t), PHP_EOL;
echo bin2hex($t), PHP_EOL;

?>

O exemplo acima produzirá algo semelhante a:

4
b6a82c27

Notas

Nota:

Quando dados aleatórios insuficientes estiverem disponíveis ao sistema, esta função irá preencher os bytes aleatórios remanescentes usando a implementação rand() interna do PHP.

Veja Também

  • openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes
  • mcrypt_create_iv() - Creates an initialization vector (IV) from a random source


is2LeggedEndpoint

  • « OAuthProvider::generateToken
  • OAuthProvider::isRequestTokenEndpoint »
  • PHP Manual
  • OAuthProvider
  • is2LeggedEndpoint

OAuthProvider::is2LeggedEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint

Descrição

public OAuthProvider::is2LeggedEndpoint(mixed $params_array): void

O fluxo de duas etapas ou assinatura de solicitação. Não requer um token.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

params_array

Valor Retornado

Um object da classe OAuthProvider.

Exemplos

Exemplo #1 Exemplo de OAuthProvider::is2LeggedEndpoint()

<?php

$provider = new OAuthProvider();

$provider->is2LeggedEndpoint(true);

?>

Veja Também

  • OAuthProvider::__construct() - Constrói um novo objeto OAuthProvider


Define isRequestTokenEndpoint

  • « OAuthProvider::is2LeggedEndpoint
  • OAuthProvider::removeRequiredParameter »
  • PHP Manual
  • OAuthProvider
  • Define isRequestTokenEndpoint

OAuthProvider::isRequestTokenEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::isRequestTokenEndpoint — Define isRequestTokenEndpoint

Descrição

public OAuthProvider::isRequestTokenEndpoint(bool $will_issue_request_token): void

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

will_issue_request_token

Define se será ou não emitido um token de requisição, assim determinando se OAuthProvider::tokenHandler() precisa ser chamado.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • OAuthProvider::setRequestTokenPath() - Define o caminho para o token de requisição
  • OAuthProvider::reportProblem() - Reporta um problema


Remove um parâmetro requerido

  • « OAuthProvider::isRequestTokenEndpoint
  • OAuthProvider::reportProblem »
  • PHP Manual
  • OAuthProvider
  • Remove um parâmetro requerido

OAuthProvider::removeRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::removeRequiredParameter — Remove um parâmetro requerido

Descrição

final public OAuthProvider::removeRequiredParameter(string $req_params): bool

Remove um parâmetro requerido.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

req_params

O parâmetro requerido a ser removido.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • OAuthProvider::setParam() - Define um parâmetro
  • OAuthProvider::addRequiredParameter() - Adiciona parâmetros requeridos


Reporta um problema

  • « OAuthProvider::removeRequiredParameter
  • OAuthProvider::setParam »
  • PHP Manual
  • OAuthProvider
  • Reporta um problema

OAuthProvider::reportProblem

(PECL OAuth >= 1.0.0)

OAuthProvider::reportProblem — Reporta um problema

Descrição

final public static OAuthProvider::reportProblem(string $oauthexception, bool $send_headers = true): string

Passa um problema como uma exceção OAuthException, com possíveis problemas listados na seção de constantes OAuth.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

oauthexception

A exceção OAuthException.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • OAuthProvider::checkOAuthRequest() - Verifica uma requisição OAuth
  • OAuthProvider::isRequestTokenEndpoint() - Define isRequestTokenEndpoint


Define um parâmetro

  • « OAuthProvider::reportProblem
  • OAuthProvider::setRequestTokenPath »
  • PHP Manual
  • OAuthProvider
  • Define um parâmetro

OAuthProvider::setParam

(PECL OAuth >= 1.0.0)

OAuthProvider::setParam — Define um parâmetro

Descrição

final public OAuthProvider::setParam(string $param_key, mixed $param_val = ?): bool

Define um parâmetro.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

param_key

A chave do parâmetro.

param_val

O valor do parâmetro, opcional.

Para excluir um parâmetro da verificação de assinatura, defina seu valor para null.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • OAuthProvider::addRequiredParameter() - Adiciona parâmetros requeridos


Define o caminho para o token de requisição

  • « OAuthProvider::setParam
  • OAuthProvider::timestampNonceHandler »
  • PHP Manual
  • OAuthProvider
  • Define o caminho para o token de requisição

OAuthProvider::setRequestTokenPath

(PECL OAuth >= 1.0.0)

OAuthProvider::setRequestTokenPath — Define o caminho para o token de requisição

Descrição

final public OAuthProvider::setRequestTokenPath(string $path): bool

Define o caminho para o token de requisição.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

path

O caminho.

Valor Retornado

true

Veja Também

  • OAuthProvider::tokenHandler() - Define a função de retorno de gerenciamento de token


Define a função de retorno de gerenciamento de timestamp nonce

  • « OAuthProvider::setRequestTokenPath
  • OAuthProvider::tokenHandler »
  • PHP Manual
  • OAuthProvider
  • Define a função de retorno de gerenciamento de timestamp nonce

OAuthProvider::timestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::timestampNonceHandler — Define a função de retorno de gerenciamento de timestamp nonce

Descrição

public OAuthProvider::timestampNonceHandler(callable $callback_function): void

Define a função de retorno de gerenciamento de timestamp nonce, que posteriormente será chamada com OAuthProvider::callTimestampNonceHandler(). Erros relacionados a timestamp/nonce são lançados a esta função.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

callback_function

O nome da função callable.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de função OAuthProvider::timestampNonceHandler()

<?php
function verificadorTimestampNonce($provider) {

if ($provider->nonce === 'bad') {
return OAUTH_BAD_NONCE;
} elseif ($provider->timestamp == '0') {
return OAUTH_BAD_TIMESTAMP;
}

return OAUTH_OK;
}
?>

Veja Também

  • OAuthProvider::callTimestampNonceHandler() - Chama a função de retorno timestampNonceHandler


Define a função de retorno de gerenciamento de token

  • « OAuthProvider::timestampNonceHandler
  • OAuthException »
  • PHP Manual
  • OAuthProvider
  • Define a função de retorno de gerenciamento de token

OAuthProvider::tokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::tokenHandler — Define a função de retorno de gerenciamento de token

Descrição

public OAuthProvider::tokenHandler(callable $callback_function): void

Define a função de retorno de gerenciamento de token, que posteriormente será chamada com OAuthProvider::callTokenHandler().

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

callback_function

O nome da função callable.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de função OAuthProvider::tokenHandler()

<?php
function gerenciadorDeToken($provider) {

if ($provider->token === 'rejected') {
return OAUTH_TOKEN_REJECTED;
} elseif ($provider->token === 'revoked') {
return OAUTH_TOKEN_REVOKED;
}

$provider->token_secret = "the_tokens_secret";
return OAUTH_OK;
}
?>

Veja Também

  • OAuthProvider::callTokenHandler() - Chama a função de retorno tokenHandler


Classe OAuthException

(PECL OAuth >= 0.99.1)

Introdução

Essa exceção é lançada quando erros excepcionais ocorrem ao usar a extensão OAuth e contém informações úteis de depuração.

Resumo da classe

class OAuthException extends Exception {
/* Propriedades */
public $lastResponse;
public $debugInfo;
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

lastResponse

A resposta da exceção que ocorreu, se houver

debugInfo


SOAP

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • SOAP Funções
    • is_soap_fault — Checks if a SOAP call has failed
    • use_soap_error_handler — Set whether to use the SOAP error handler
  • SoapClient — The SoapClient class
    • SoapClient::__call — Chama uma função SOAP (descontinuada)
    • SoapClient::__construct — SoapClient constructor
    • SoapClient::__doRequest — Performs a SOAP request
    • SoapClient::__getCookies — Get list of cookies
    • SoapClient::__getFunctions — Returns list of available SOAP functions
    • SoapClient::__getLastRequest — Returns last SOAP request
    • SoapClient::__getLastRequestHeaders — Returns the SOAP headers from the last request
    • SoapClient::__getLastResponse — Returns last SOAP response
    • SoapClient::__getLastResponseHeaders — Returns the SOAP headers from the last response
    • SoapClient::__getTypes — Returns a list of SOAP types
    • SoapClient::__setCookie — Defines a cookie for SOAP requests
    • SoapClient::__setLocation — Sets the location of the Web service to use
    • SoapClient::__setSoapHeaders — Sets SOAP headers for subsequent calls
    • SoapClient::__soapCall — Calls a SOAP function
  • SoapServer — The SoapServer class
    • SoapServer::addFunction — Adds one or more functions to handle SOAP requests
    • SoapServer::addSoapHeader — Add a SOAP header to the response
    • SoapServer::__construct — SoapServer constructor
    • SoapServer::fault — Issue SoapServer fault indicating an error
    • SoapServer::getFunctions — Returns list of defined functions
    • SoapServer::handle — Handles a SOAP request
    • SoapServer::setClass — Sets the class which handles SOAP requests
    • SoapServer::setObject — Sets the object which will be used to handle SOAP requests
    • SoapServer::setPersistence — Sets SoapServer persistence mode
  • SoapFault — The SoapFault class
    • SoapFault::__construct — SoapFault constructor
    • SoapFault::__toString — Obtain a string representation of a SoapFault
  • SoapHeader — The SoapHeader class
    • SoapHeader::__construct — SoapHeader constructor
  • SoapParam — The SoapParam class
    • SoapParam::__construct — SoapParam constructor
  • SoapVar — The SoapVar class
    • SoapVar::__construct — SoapVar constructor


Introdução

The SOAP extension can be used to write SOAP Servers and Clients. It supports subsets of » SOAP 1.1, » SOAP 1.2 and » WSDL 1.1 specifications.


Dependências

Esta extensão requer a extensão PHP libxml. Isso significa que ao compilar o PHP é preciso passar a flag de configuração --with-libxml, ou antes do PHP 7.4, --enable-libxml, embora isso seja feito implicitamente pois a libxml está habilitada por padrão.


  • « Dependências
  • Configurações em Execução »
  • PHP Manual
  • Instalação/Configuração
  • Instalação

Instalação

To enable SOAP support, configure PHP with --enable-soap.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

SOAP Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
soap.wsdl_cache_enabled | 1 | INI_ALL |
soap.wsdl_cache_dir | /tmp | INI_ALL |
soap.wsdl_cache_ttl | 86400 | INI_ALL |
soap.wsdl_cache | 1 | INI_ALL |
soap.wsdl_cache_limit | 5 | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

soap.wsdl_cache_enabled int

Enables or disables the WSDL caching feature.

soap.wsdl_cache_dir string

Sets the directory name where the SOAP extension will put cache files.

soap.wsdl_cache_ttl int

Sets the number of seconds (time to live) that cached files will be used instead of the originals.

soap.wsdl_cache int

If soap.wsdl_cache_enabled is on, this setting determines the type of caching. It can be any of: WSDL_CACHE_NONE (0), WSDL_CACHE_DISK (1), WSDL_CACHE_MEMORY (2) or WSDL_CACHE_BOTH (3). This can also be set via the options array in the SoapClient or SoapServer constructor.

soap.wsdl_cache_limit int

Maximum number of in-memory cached WSDL files. Adding further files into a full memory cache will delete the oldest files from it.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

SOAP constants
Constant | Value | Description
SOAP_1_1 (int) | 1 | Specifies use of SOAP 1.1 when passed as soap_version option to SoapServer::__construct() or SoapClient::__construct().
SOAP_1_2 (int) | 2 | Specifies use of SOAP 1.2 when passed as soap_version option to SoapServer::__construct() or SoapClient::__construct().
SOAP_PERSISTENCE_SESSION (int) | 1 |
SOAP_PERSISTENCE_REQUEST (int) | 2 |
SOAP_FUNCTIONS_ALL (int) | 999 |
SOAP_ENCODED (int) | 1 | Specifies use of SOAP Encoding when passed as use option to SoapClient::__construct().
SOAP_LITERAL (int) | 2 | Specifies use of service-specific encoding when passed as use option to SoapClient::__construct().
SOAP_RPC (int) | 1 | Specifies use of RPC-style binding when passed as style option to SoapClient::__construct().
SOAP_DOCUMENT (int) | 2 | Specifies use of document binding when passed as style option to SoapClient::__construct().
SOAP_ACTOR_NEXT (int) | 1 |
SOAP_ACTOR_NONE (int) | 2 |
SOAP_ACTOR_UNLIMATERECEIVER (int) | 3 |
SOAP_COMPRESSION_ACCEPT (int) | 32 | Specifies use of an "Accept-Encoding" header when passed as part of the compression option to SoapClient::__construct().
SOAP_COMPRESSION_GZIP (int) | 0 | Specifies use of gzip compression when passed as part of the compression option to SoapClient::__construct().
SOAP_COMPRESSION_DEFLATE (int) | 16 | Specifies use of deflate compression when passed as part of the compression option to SoapClient::__construct().
SOAP_AUTHENTICATION_BASIC (int) | 0 | Specifies use of HTTP Basic Authentication when passed as authentication option to SoapClient::__construct().
SOAP_AUTHENTICATION_DIGEST (int) | 1 | Specifies use of HTTP Digest Authentication when passed as authentication option to SoapClient::__construct().
SOAP_SSL_METHOD_TLS (int) | 0 | Used with the deprecated ssl_method option to SoapClient::__construct().
SOAP_SSL_METHOD_SSLv2 (int) | 1 | Used with the deprecated ssl_method option to SoapClient::__construct().
SOAP_SSL_METHOD_SSLv3 (int) | 2 | Used with the deprecated ssl_method option to SoapClient::__construct().
SOAP_SSL_METHOD_SSLv23 (int) | 3 | Used with the deprecated ssl_method option to SoapClient::__construct().
UNKNOWN_TYPE (int) | 999998 |
XSD_STRING (int) | 101 |
XSD_BOOLEAN (int) | 102 |
XSD_DECIMAL (int) | 103 |
XSD_FLOAT (int) | 104 |
XSD_DOUBLE (int) | 105 |
XSD_DURATION (int) | 106 |
XSD_DATETIME (int) | 107 |
XSD_TIME (int) | 108 |
XSD_DATE (int) | 109 |
XSD_GYEARMONTH (int) | 110 |
XSD_GYEAR (int) | 111 |
XSD_GMONTHDAY (int) | 112 |
XSD_GDAY (int) | 113 |
XSD_GMONTH (int) | 114 |
XSD_HEXBINARY (int) | 115 |
XSD_BASE64BINARY (int) | 116 |
XSD_ANYURI (int) | 117 |
XSD_QNAME (int) | 118 |
XSD_NOTATION (int) | 119 |
XSD_NORMALIZEDSTRING (int) | 120 |
XSD_TOKEN (int) | 121 |
XSD_LANGUAGE (int) | 122 |
XSD_NMTOKEN (int) | 123 |
XSD_NAME (int) | 124 |
XSD_NCNAME (int) | 125 |
XSD_ID (int) | 126 |
XSD_IDREF (int) | 127 |
XSD_IDREFS (int) | 128 |
XSD_ENTITY (int) | 129 |
XSD_ENTITIES (int) | 130 |
XSD_INTEGER (int) | 131 |
XSD_NONPOSITIVEINTEGER (int) | 132 |
XSD_NEGATIVEINTEGER (int) | 133 |
XSD_LONG (int) | 134 |
XSD_INT (int) | 135 |
XSD_SHORT (int) | 136 |
XSD_BYTE (int) | 137 |
XSD_NONNEGATIVEINTEGER (int) | 138 |
XSD_UNSIGNEDLONG (int) | 139 |
XSD_UNSIGNEDINT (int) | 140 |
XSD_UNSIGNEDSHORT (int) | 141 |
XSD_UNSIGNEDBYTE (int) | 142 |
XSD_POSITIVEINTEGER (int) | 143 |
XSD_NMTOKENS (int) | 144 |
XSD_ANYTYPE (int) | 145 |
XSD_ANYXML (int) | 147 |
APACHE_MAP (int) | 200 |
SOAP_ENC_OBJECT (int) | 301 |
SOAP_ENC_ARRAY (int) | 300 |
XSD_1999_TIMEINSTANT (int) | 401 |
XSD_NAMESPACE (string) | http://www.w3.org/2001/XMLSchema |
XSD_1999_NAMESPACE (string) | http://www.w3.org/1999/XMLSchema |
SOAP_SINGLE_ELEMENT_ARRAYS (int) | 1 | Used with the features option to SoapClient::__construct().
SOAP_WAIT_ONE_WAY_CALLS (int) | 2 | Used with the features option to SoapClient::__construct().
SOAP_USE_XSI_ARRAY_TYPE (int) | 4 | Used with the features option to SoapClient::__construct().
WSDL_CACHE_NONE (int) | 0 | Disables the WSDL cache when used in the soap.wsdl_cache configuration option or the wsdl_cache option to SoapClient::__construct() and SoapServer::__construct().
WSDL_CACHE_DISK (int) | 1 | Specifies use of the on-disk WSDL cache only when used in the soap.wsdl_cache configuration option or the wsdl_cache option to SoapClient::__construct() and SoapServer::__construct().
WSDL_CACHE_MEMORY (int) | 2 | Specifies use of the in-memory WSDL cache only when used in the soap.wsdl_cache configuration option or the wsdl_cache option to SoapClient::__construct() and SoapServer::__construct().
WSDL_CACHE_BOTH (int) | 3 | Specifies use of both on-disk and in-memory WSDL caches when used in the soap.wsdl_cache configuration option or the wsdl_cache option to SoapClient::__construct() and SoapServer::__construct().


SOAP Funções

Índice

  • is_soap_fault — Checks if a SOAP call has failed
  • use_soap_error_handler — Set whether to use the SOAP error handler


Checks if a SOAP call has failed

  • « SOAP Funções
  • use_soap_error_handler »
  • PHP Manual
  • SOAP Funções
  • Checks if a SOAP call has failed

is_soap_fault

(PHP 5, PHP 7, PHP 8)

is_soap_fault — Checks if a SOAP call has failed

Descrição

is_soap_fault(mixed $object): bool

This function is useful to check if the SOAP call failed, but without using exceptions. To use it, create a SoapClient object with the exceptions option set to zero or false. In this case, the SOAP method will return a special SoapFault object which encapsulates the fault details (faultcode, faultstring, faultactor and faultdetails).

If exceptions is not set then SOAP call will throw an exception on error. is_soap_fault() checks if the given parameter is a SoapFault object.

Parâmetros

object

The object to test.

Valor Retornado

This will return true on error, and false otherwise.

Exemplos

Exemplo #1 is_soap_fault() example

<?php
$client = new SoapClient("some.wsdl", array('exceptions' => 0));
$result = $client->SomeFunction();
if (is_soap_fault($result)) {
trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_USER_ERROR);
}
?>

Exemplo #2 SOAP's standard method for error reporting is exceptions

<?php
try {
$client = new SoapClient("some.wsdl");
$result = $client->SomeFunction(/* ... */);
} catch (SoapFault $fault) {
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}
?>

Veja Também

  • SoapClient::__construct() - SoapClient constructor
  • SoapFault::__construct() - SoapFault constructor


Set whether to use the SOAP error handler

  • « is_soap_fault
  • SoapClient »
  • PHP Manual
  • SOAP Funções
  • Set whether to use the SOAP error handler

use_soap_error_handler

(PHP 5, PHP 7, PHP 8)

use_soap_error_handler — Set whether to use the SOAP error handler

Descrição

use_soap_error_handler(bool $enable = true): bool

This function sets whether or not to use the SOAP error handler in the SOAP server. It will return the previous value. If set to true, details of errors in a SoapServer application will be sent to the client as a SOAP fault message. If false, the standard PHP error handler is used. The default is to send error to the client as SOAP fault message.

Parâmetros

enable

Set to true to send error details to clients.

Valor Retornado

Returns the original value.

Veja Também

  • set_error_handler() - Define uma função de usuário para manipulação de erro
  • set_exception_handler() - Define uma função de manipulação de exceção definida pelo usuário


The SoapClient class

(PHP 5, PHP 7, PHP 8)

Introdução

The SoapClient class provides a client for » SOAP 1.1, » SOAP 1.2 servers. It can be used in WSDL or non-WSDL mode.

Resumo da classe

class SoapClient {
/* Propriedades */
private ?string $uri = null;
private ?int $style = null;
private ?int $use = null;
private ?string $location = null;
private bool $trace = false;
private ?int $compression = null;
private ?resource $sdl = null;
private ?resource $typemap = null;
private ?resource $httpsocket = null;
private ?resource $httpurl = null;
private ?string $_login = null;
private ?string $_password = null;
private bool $_use_digest = false;
private ?string $_digest = null;
private ?string $_proxy_host = null;
private ?int $_proxy_port = null;
private ?string $_proxy_login = null;
private ?string $_proxy_password = null;
private bool $_exceptions = true;
private ?string $_encoding = null;
private ?array $_classmap = null;
private ?int $_features = null;
private int $_connection_timeout;
private ?resource $_stream_context = null;
private ?string $_user_agent = null;
private bool $_keep_alive = true;
private ?int $_ssl_method = null;
private int $_soap_version;
private ?int $_use_proxy = null;
private array $_cookies = [];
private ?array $__default_headers = null;
private ?SoapFault $__soap_fault = null;
private ?string $__last_request = null;
private ?string $__last_response = null;
private ?string $__last_request_headers = null;
private ?string $__last_response_headers = null;
/* Métodos */
public __construct(?string $wsdl, array $options = [])
public __call(string $name, array $args): mixed
public __doRequest(
string $request,
string $location,
string $action,
int $version,
bool $oneWay = false
): ?string
public __getCookies(): array
public __getFunctions(): ?array
public __getLastRequest(): ?string
public __getLastRequestHeaders(): ?string
public __getLastResponse(): ?string
public __getLastResponseHeaders(): ?string
public __getTypes(): ?array
public __setCookie(string $name, ?string $value = null): void
public __setLocation(?string $location = null): ?string
public __setSoapHeaders(SoapHeader|array|null $headers = null): bool
public __soapCall(
string $name,
array $args,
?array $options = null,
SoapHeader|array|null $inputHeaders = null,
array &$outputHeaders = null
): mixed
}

Propriedades

__default_headers

__last_request

__last_request_headers

__last_response

__last_response_headers

__soap_fault

_classmap

_connection_timeout

_cookies

_digest

_encoding

_exceptions

_features

_keep_alive

_login

_password

_proxy_host

_proxy_login

_proxy_password

_proxy_port

_soap_version

_ssl_method

_stream_context

_use_digest

_use_proxy

_user_agent

compression

httpsocket

httpurl

location

sdl

style

trace

typemap

uri

use

Índice

  • SoapClient::__call — Chama uma função SOAP (descontinuada)
  • SoapClient::__construct — SoapClient constructor
  • SoapClient::__doRequest — Performs a SOAP request
  • SoapClient::__getCookies — Get list of cookies
  • SoapClient::__getFunctions — Returns list of available SOAP functions
  • SoapClient::__getLastRequest — Returns last SOAP request
  • SoapClient::__getLastRequestHeaders — Returns the SOAP headers from the last request
  • SoapClient::__getLastResponse — Returns last SOAP response
  • SoapClient::__getLastResponseHeaders — Returns the SOAP headers from the last response
  • SoapClient::__getTypes — Returns a list of SOAP types
  • SoapClient::__setCookie — Defines a cookie for SOAP requests
  • SoapClient::__setLocation — Sets the location of the Web service to use
  • SoapClient::__setSoapHeaders — Sets SOAP headers for subsequent calls
  • SoapClient::__soapCall — Calls a SOAP function


Chama uma função SOAP (descontinuada)

  • « SoapClient
  • SoapClient::__construct »
  • PHP Manual
  • SoapClient
  • Chama uma função SOAP (descontinuada)

SoapClient::__call

(PHP 5, PHP 7, PHP 8)

SoapClient::__call — Chama uma função SOAP (descontinuada)

Descrição

public SoapClient::__call(string $name, array $args): mixed

Chamar este método diretamente foi descontinuado. Em vez disso, recomenda-se a utilização das funções SOAP como métodos do objeto SoapClient. No entanto, em alguns casos pode ser necessário utilizar opções adicionais ou chamar funções com nomes dinâmicos, e nesses casos é recomendado utilizar o método SoapClient::__soapCall(). Este último permite um controle mais detalhado sobre a chamada da função, incluindo a especificação do nome da função como uma string.

Parâmetros

name

O nome da função SOAP a ser chamada.

args

Ao chamar uma função SOAP, é necessário passar os argumentos adequados para que a operação seja executada corretamente. Esses argumentos são fornecidos como um array, que pode ser organizado de duas formas distintas: array indexado (também conhecido por "array ordenado") ou array associativo. É importante notar que muitos servidores SOAP requerem que os nomes dos parâmetros sejam fornecidos na chamada da função. Nesse caso, é necessário utilizar um array associativo para garantir que cada valor seja atribuído ao parâmetro correto.

Valor Retornado

Funções SOAP podem retornar um ou vários valores. Caso a função retorne apenas um valor, tratar-se-á um valor escalar. Se vários valores forem retornados, em vez disso, será retornado um array associativo de parâmetros de saída nomeados. Já no caso de retornar múltiplos valores, tratar-se-á de um array associativo de parâmetros de saída nomeados.

Ao ocorrer um erro durante a execução de uma operação SOAP, o objeto SoapClient poderá retornar um objeto SoapFault para indicar o problema. No entanto, vale referir que esse comportamento depende da opção exceptions, sendo que esta pode ser configurada no momento que o objecto é instanciado. Caso ocorra um erro e essa opção esteja definida como false, a biblioteca do PHP não lançará uma exceção.


SoapClient constructor

  • « SoapClient::__call
  • SoapClient::__doRequest »
  • PHP Manual
  • SoapClient
  • SoapClient constructor

SoapClient::__construct

(PHP 5, PHP 7, PHP 8)

SoapClient::__construct — SoapClient constructor

Descrição

public SoapClient::__construct(?string $wsdl, array $options = [])

Creates a SoapClient object to connect to a SOAP service.

Parâmetros

wsdl

URI of a WSDL file describing the service, which is used to automatically configure the client. If not provided, the client will operate in non-WSDL mode.

Nota:

By default, the WSDL file will be cached for performance. To disable or configure this caching, see SOAP Opções de Configuração and the cache_wsdl option.

options

An associative array specifying additional options for the SOAP client. If wsdl is provided, this is optional; otherwise, at least location and url must be provided.

location string

The URL of the SOAP server to send the request to.

Required if the wsdl parameter is not provided. If both a wsdl parameter and location option are provided, the location option will over-ride any location specified in the WSDL file.

uri string

The target namespace of the SOAP service.

Required if the wsdl parameter is not provided; ignored otherwise.

style int

Specifies the binding style to use for this client, using the constants SOAP_RPC and SOAP_DOCUMENT. SOAP_RPC indicates RPC-style binding, where the SOAP request body contains a standard encoding of a function call. SOAP_DOCUMENT indicates document-style binding, where the SOAP request body contains an XML document with service-defined meaning.

If the wsdl parameter is provided, this option is ignored, and the style is read from the WSDL file.

If neither this option nor the wsdl parameter is provided, RPC-style is used.

use int

Specifies the encoding style to use for this client, using the constants SOAP_ENCODED or SOAP_LITERAL. SOAP_ENCODED indicates encoding using the types defined in the SOAP specification. SOAP_LITERAL indicates encoding using a schema defined by the service.

If the wsdl parameter is provided, this option is ignored, and the encoding is read from the WSDL file.

If neither this option nor the wsdl parameter is provided, the "encoded" style is used.

soap_version int

Specifies the version of the SOAP protocol to use: SOAP_1_1 for SOAP 1.1, or SOAP_1_2 for SOAP 1.2.

If omitted, SOAP 1.1 is used.

authentication int

Specifies the authentication method when using HTTP authentication in requests. The value may be either SOAP_AUTHENTICATION_BASIC or SOAP_AUTHENTICATION_DIGEST.

If omitted, and the login option is provided, Basic Authentication is used.

login string

Username to use with HTTP Basic or Digest Authentication.

password string

Password to use with HTTP Basic or Digest Authentication.

Not to be confused with passphrase, which is used with HTTPS Client Certificate authentication.

local_cert string

Path to a client certificate for use with HTTPS authentication. It must be a PEM encoded file which contains your certificate and private key.

The file can also include a chain of issuers, which must come after the client certificate.

Can also be set via stream_context, which also supports specifying a separate private key file.

passphrase string

Passphrase for the client certificate specified in the local_cert option.

Not to be confused with password, which is used for Basic or Digest Authentication.

Can also be set via stream_context.

proxy_host string

Hostname to use as a proxy server for HTTP requests.

The proxy_port option must also be specified.

proxy_port int

TCP port to use when connecting to the proxy server specified in proxy_host.

proxy_login string

Optional username to authenticate with the proxy server specified in proxy_host, using HTTP Basic Authentication.

proxy_password string

Optional password to authenticate with the proxy server specified in proxy_host, using HTTP Basic Authentication.

compression int

Enables compression of HTTP SOAP requests and responses.

The value should be the bitwise OR of three parts: an optional SOAP_COMPRESSION_ACCEPT, to send an "Accept-Encoding" header; either SOAP_COMPRESSION_GZIP or SOAP_COMPRESSION_DEFLATE to indicate the compression algorithm to use; and a number between 1 and 9 to indicate the level of compression to use in the request. For example, to enable two-way gzip compression with the maximum compression level, use SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 9.

encoding string

Defines the internal character encoding. Requests are always sent in UTF-8, and converted to and from this encoding.

trace bool

Captures request and response information, which can then be
accessed with the methods
SoapClient::__getLastRequest(),
SoapClient::__getLastRequestHeaders(),
SoapClient::__getLastResponse(),
and SoapClient::__getLastResponseHeaders().

If omitted, defaults to false

classmap array

Used to map types defined in the WSDL to PHP classes. It should be specified as an associative array with type names from the WSDL as keys and names of PHP classes as values. Note that the type names of an element is not necessarily the same as the element (tag) name.

The provided class names should always be fully qualified with any namespaces, and never start with a leading \. The correct form can be generated by using ::class.

Note that when creating a class, the constructor will not be called, but magic __set() and __get() methods for individual properties will be.

typemap array

Used to define type mappings using user-defined callback functions. Each type mapping should be an array with keys type_name (string specifying the XML element type); type_ns (string containing namespace URI); from_xml (callable accepting one string parameter and returning an object) and to_xml (callable accepting one object parameter and returning a string).

exceptions bool

Defines whether errors throw exceptions of type SoapFault.

Defaults to true

connection_timeout int

Defines a timeout in seconds for the connection to the SOAP service. This option does not define a timeout for services with slow responses. To limit the time to wait for calls to finish the default_socket_timeout configuration option is available.

cache_wsdl int

If the wsdl parameter is provided, and the soap.wsdl_cache_enabled configuration option is on, this option determines the type of caching. One of WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY or WSDL_CACHE_BOTH.

Two types of cache are available: in-memory caching, which caches the WSDL in the memory of the current process; and disk caching, which caches the WSDL in a file on disk, shared between all processes. The directory to use for the disk cache is determined by the soap.wsdl_cache_dir configuration option. Both caches use the same lifetime, determined by the soap.wsdl_cache_ttl configuration option. The in-memory cache also has a maximum number of entries determined by the soap.wsdl_cache_limit configuration option.

If not specified, the soap.wsdl_cache configuration option will be used.

user_agent string

The value to use in the User-Agent HTTP header when making requests.

Can also be set via stream_context.

If not specified, the user agent will be "PHP-SOAP/" followed by the value of PHP_VERSION.

stream_context resource

A stream context created by stream_context_create(), which allows additional options to be set.

The context may include socket context options, SSL context options, plus selected HTTP context options: content_type, header, max_redirects, protocol_version, and user_agent.

Note that the following HTTP headers are generated automatically or from other options, and will be ignored if specified in the 'header' context option: host, connection, user-agent, content-length, content-type, cookie, authorization, and proxy-authorization

features int

A bitmask to enable one or more of the following features:

SOAP_SINGLE_ELEMENT_ARRAYS

When decoding a response to an array, the default behaviour is to detect whether an element name appears once or multiple times in a particular parent element. For elements which appear only once, an object property allows direct access to the content; for elements which appear more than once, the property contains an array with the content of each matching element.

If the SOAP_SINGLE_ELEMENT_ARRAYS feature is enabled, elements which appear only once are placed in a single-element array, so that access is consistent for all elements. This only has an effect when using a WSDL containing a schema for the response. See Examples section for an illustration.

SOAP_USE_XSI_ARRAY_TYPE

When the use option or WSDL property is set to encoded, force arrays to use a type of SOAP-ENC:Array, rather than a schema-specific type.

SOAP_WAIT_ONE_WAY_CALLS

Wait for a response even if the WSDL indicates a one-way request.

keep_alive bool

a boolean value defining whether to send the Connection: Keep-Alive header or Connection: close.

Defaults to true

ssl_method string

Specifies the SSL or TLS protocol version to use with secure HTTP connections, instead of the default negotiation. Specifying SOAP_SSL_METHOD_SSLv2 or SOAP_SSL_METHOD_SSLv3 will force use of SSL 2 or SSL 3, respectively. Specifying SOAP_SSL_METHOD_SSLv23 has no effect; the constant exists only for backwards compatibility. As of PHP 7.2, specifying SOAP_SSL_METHOD_TLS also has no effect; in earlier versions, it forced use of TLS 1.0.

Note that SSL versions 2 and 3 are considered insecure, and may not be supported by the installed OpenSSL library.

This option is DEPRECATED as of PHP 8.1.0. A more flexible alternative, which allows specifying individual versions of TLS, is to use the stream_context option with the 'crypto_method' context parameter.

Exemplo #1 Specifying use of TLS 1.3 only

<?php
$context = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT
]
]);
$client = new SoapClient("some.wsdl", ['context' => $context]);

Erros/Exceções

SoapClient::__construct() will generate an E_ERROR error if the location and uri options aren't provided in non-WSDL mode.

A SoapFault exception will be thrown if the wsdl URI cannot be loaded.

Exemplos

Exemplo #2 SoapClient::__construct() example

<?php

$client = new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version' => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login' => "some_name",
'password' => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host' => "localhost",
'proxy_port' => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host' => "localhost",
'proxy_port' => 8080,
'proxy_login' => "some_name",
'proxy_password' => "some_password"));

$client = new SoapClient("some.wsdl", array('local_cert' => "cert_key.pem"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/",
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL));

$client = new SoapClient("some.wsdl",
array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 9));

$client = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class MyBook {
public $title;
public $author;
}

$client = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

$typemap = array(
array("type_ns" => "http://schemas.example.com",
"type_name" => "book",
"from_xml" => "unserialize_book",
"to_xml" => "serialize_book")
);
$client = new SoapClient("books.wsdl", array('typemap' => $typemap));

?>

Exemplo #3 Using the SOAP_SINGLE_ELEMENT_ARRAYS feature

/* Assuming a response like this, and an appropriate WSDL:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:example">
<SOAP-ENV:Body>
<response>
<collection>
<item>Single</item>
</collection>
<collection>
<item>First</item>
<item>Second</item>
</collection>
</response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
*/

echo "Default:\n";

$client = new TestSoapClient(__DIR__ . '/temp.wsdl');
$response = $client->exampleRequest();
var_dump( $response->collection[0]->item );
var_dump( $response->collection[1]->item );

echo "\nWith SOAP_SINGLE_ELEMENT_ARRAYS:\n";

$client = new TestSoapClient(__DIR__ . '/temp.wsdl', ['features' => SOAP_SINGLE_ELEMENT_ARRAYS]);
$response = $client->exampleRequest();
var_dump( $response->collection[0]->item );
var_dump( $response->collection[1]->item );

O exemplo acima produzirá:

Default:
string(6) "Single"
array(2) {
  [0] =>
  string(5) "First"
  [1] =>
  string(6) "Second"
}

With SOAP_SINGLE_ELEMENT_ARRAYS:
array(1) {
  [0] =>
  string(6) "Single"
}
array(2) {
  [0] =>
  string(5) "First"
  [1] =>
  string(6) "Second"
}


Performs a SOAP request

  • « SoapClient::__construct
  • SoapClient::__getCookies »
  • PHP Manual
  • SoapClient
  • Performs a SOAP request

SoapClient::__doRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__doRequest — Performs a SOAP request

Descrição

public SoapClient::__doRequest(
string $request,
string $location,
string $action,
int $version,
bool $oneWay = false
): ?string

Performs SOAP request over HTTP.

This method can be overridden in subclasses to implement different transport layers, perform additional XML processing or other purpose.

Parâmetros

request

The XML SOAP request.

location

The URL to request.

action

The SOAP action.

version

The SOAP version.

oneWay

If oneWay is set to true, this method returns nothing. Use this where a response is not expected.

Valor Retornado

The XML SOAP response.

Registro de Alterações

Versão | Descrição
8.0.0 | The type of oneWay is bool now; formerly it was int.

Exemplos

Exemplo #1 SoapClient::__doRequest() example

<?php
function Add($x,$y) {
return $x+$y;
}

class LocalSoapClient extends SoapClient {

function __construct($wsdl, $options) {
parent::__construct($wsdl, $options);
$this->server = new SoapServer($wsdl, $options);
$this->server->addFunction('Add');
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
ob_start();
$this->server->handle($request);
$response = ob_get_contents();
ob_end_clean();
return $response;
}

}

$x = new LocalSoapClient(NULL,array('location'=>'test://',
'uri'=>'http://testuri.org'));
var_dump($x->Add(3,4));
?>


Get list of cookies

  • « SoapClient::__doRequest
  • SoapClient::__getFunctions »
  • PHP Manual
  • SoapClient
  • Get list of cookies

SoapClient::__getCookies

(PHP 5 >= 5.4.30, PHP 7, PHP 8)

SoapClient::__getCookies — Get list of cookies

Descrição

public SoapClient::__getCookies(): array

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Returns list of available SOAP functions

  • « SoapClient::__getCookies
  • SoapClient::__getLastRequest »
  • PHP Manual
  • SoapClient
  • Returns list of available SOAP functions

SoapClient::__getFunctions

(PHP 5, PHP 7, PHP 8)

SoapClient::__getFunctions — Returns list of available SOAP functions

Descrição

public SoapClient::__getFunctions(): ?array

Returns an array of functions described in the WSDL for the Web service.

Nota:

Esta função funciona apenas no modo WSDL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The array of SOAP function prototypes, detailing the return type, the function name and parameter types.

Exemplos

Exemplo #1 SoapClient::__getFunctions() example

<?php
$client = new SoapClient('http://soap.amazon.com/schemas3/AmazonWebServices.wsdl');
var_dump($client->__getFunctions());
?>

O exemplo acima produzirá:

array(26) {
  [0]=>
  string(70) "ProductInfo KeywordSearchRequest(KeywordRequest $KeywordSearchRequest)"
  [1]=>
  string(79) "ProductInfo TextStreamSearchRequest(TextStreamRequest $TextStreamSearchRequest)"
  [2]=>
  string(64) "ProductInfo PowerSearchRequest(PowerRequest $PowerSearchRequest)"
...
  [23]=>
  string(107) "ShoppingCart RemoveShoppingCartItemsRequest(RemoveShoppingCartItemsRequest $RemoveShoppingCartItemsRequest)"
  [24]=>
  string(107) "ShoppingCart ModifyShoppingCartItemsRequest(ModifyShoppingCartItemsRequest $ModifyShoppingCartItemsRequest)"
  [25]=>
  string(118) "GetTransactionDetailsResponse GetTransactionDetailsRequest(GetTransactionDetailsRequest $GetTransactionDetailsRequest)"
}

Veja Também

  • SoapClient::__construct() - SoapClient constructor


Returns last SOAP request

  • « SoapClient::__getFunctions
  • SoapClient::__getLastRequestHeaders »
  • PHP Manual
  • SoapClient
  • Returns last SOAP request

SoapClient::__getLastRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastRequest — Returns last SOAP request

Descrição

public SoapClient::__getLastRequest(): ?string

Returns the XML sent in the last SOAP request.

Nota:

This method works only if the SoapClient object was created with the trace option set to true.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The last SOAP request, as an XML string.

Exemplos

Exemplo #1 SoapClient::__getLastRequest() example

<?php
$client = new SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
?>

Veja Também

  • SoapClient::__getLastRequestHeaders() - Returns the SOAP headers from the last request
  • SoapClient::__getLastResponse() - Returns last SOAP response
  • SoapClient::__getLastResponseHeaders() - Returns the SOAP headers from the last response


Returns the SOAP headers from the last request

  • « SoapClient::__getLastRequest
  • SoapClient::__getLastResponse »
  • PHP Manual
  • SoapClient
  • Returns the SOAP headers from the last request

SoapClient::__getLastRequestHeaders

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastRequestHeaders — Returns the SOAP headers from the last request

Descrição

public SoapClient::__getLastRequestHeaders(): ?string

Returns the SOAP headers from the last request.

Nota:

This function only works if the SoapClient object was created with the trace option set to true.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The last SOAP request headers.

Exemplos

Exemplo #1 SoapClient::__getLastRequestHeaders() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "REQUEST HEADERS:\n" . $client->__getLastRequestHeaders() . "\n";
?>

Veja Também

  • SoapClient::__getLastResponseHeaders() - Returns the SOAP headers from the last response
  • SoapClient::__getLastRequest() - Returns last SOAP request
  • SoapClient::__getLastResponse() - Returns last SOAP response


Returns last SOAP response

  • « SoapClient::__getLastRequestHeaders
  • SoapClient::__getLastResponseHeaders »
  • PHP Manual
  • SoapClient
  • Returns last SOAP response

SoapClient::__getLastResponse

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastResponse — Returns last SOAP response

Descrição

public SoapClient::__getLastResponse(): ?string

Returns the XML received in the last SOAP response.

Nota:

This method works only if the SoapClient object was created with the trace option set to true.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The last SOAP response, as an XML string.

Exemplos

Exemplo #1 SoapClient::__getLastResponse() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "Response:\n" . $client->__getLastResponse() . "\n";
?>

Veja Também

  • SoapClient::__getLastResponseHeaders() - Returns the SOAP headers from the last response
  • SoapClient::__getLastRequest() - Returns last SOAP request
  • SoapClient::__getLastRequestHeaders() - Returns the SOAP headers from the last request


Returns the SOAP headers from the last response

  • « SoapClient::__getLastResponse
  • SoapClient::__getTypes »
  • PHP Manual
  • SoapClient
  • Returns the SOAP headers from the last response

SoapClient::__getLastResponseHeaders

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastResponseHeaders — Returns the SOAP headers from the last response

Descrição

public SoapClient::__getLastResponseHeaders(): ?string

Returns the SOAP headers from the last response.

Nota:

This function only works if the SoapClient object was created with the trace option set to true.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The last SOAP response headers.

Exemplos

Exemplo #1 SoapClient::__getLastResponse() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "RESPONSE HEADERS:\n" . $client->__getLastResponseHeaders() . "\n";
?>

Veja Também

  • SoapClient::__getLastRequestHeaders() - Returns the SOAP headers from the last request
  • SoapClient::__getLastRequest() - Returns last SOAP request
  • SoapClient::__getLastResponse() - Returns last SOAP response


Returns a list of SOAP types

  • « SoapClient::__getLastResponseHeaders
  • SoapClient::__setCookie »
  • PHP Manual
  • SoapClient
  • Returns a list of SOAP types

SoapClient::__getTypes

(PHP 5, PHP 7, PHP 8)

SoapClient::__getTypes — Returns a list of SOAP types

Descrição

public SoapClient::__getTypes(): ?array

Returns an array of types described in the WSDL for the Web service.

Nota:

Esta função funciona apenas no modo WSDL.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The array of SOAP types, detailing all structures and types.

Exemplos

Exemplo #1 SoapClient::__getTypes() example

<?php
$client = new SoapClient('http://soap.amazon.com/schemas3/AmazonWebServices.wsdl');
var_dump($client->__getTypes());
?>

O exemplo acima produzirá:

array(88) {
  [0]=>
  string(30) "ProductLine ProductLineArray[]"
  [1]=>
  string(85) "struct ProductLine {
 string Mode;
 string RelevanceRank;
 ProductInfo ProductInfo;
}"
  [2]=>
  string(105) "struct ProductInfo {
 string TotalResults;
 string TotalPages;
 string ListName;
 DetailsArray Details;
}"
...
  [85]=>
  string(32) "ShortSummary ShortSummaryArray[]"
  [86]=>
  string(121) "struct GetTransactionDetailsRequest {
 string tag;
 string devtag;
 string key;
 OrderIdArray OrderIds;
 string locale;
}"
  [87]=>
  string(75) "struct GetTransactionDetailsResponse {
 ShortSummaryArray ShortSummaries;
}"
}

Veja Também

  • SoapClient::__construct() - SoapClient constructor


Defines a cookie for SOAP requests

  • « SoapClient::__getTypes
  • SoapClient::__setLocation »
  • PHP Manual
  • SoapClient
  • Defines a cookie for SOAP requests

SoapClient::__setCookie

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

SoapClient::__setCookie — Defines a cookie for SOAP requests

Descrição

public SoapClient::__setCookie(string $name, ?string $value = null): void

Defines a cookie to be sent along with the SOAP requests.

Nota:

Calling this method will affect all following calls to SoapClient methods.

Parâmetros

name

The name of the cookie.

value

The value of the cookie. If not specified, the cookie will be deleted.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | value is now nullable.


Sets the location of the Web service to use

  • « SoapClient::__setCookie
  • SoapClient::__setSoapHeaders »
  • PHP Manual
  • SoapClient
  • Sets the location of the Web service to use

SoapClient::__setLocation

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

SoapClient::__setLocation — Sets the location of the Web service to use

Descrição

public SoapClient::__setLocation(?string $location = null): ?string

Sets the endpoint URL that will be touched by following SOAP requests. This is equivalent to specifying the location option when constructing the SoapClient.

Nota:

Calling this method is optional. The SoapClient uses the endpoint from the WSDL file by default.

Parâmetros

location

The new endpoint URL.

Valor Retornado

The old endpoint URL.

Registro de Alterações

Versão | Descrição
8.0.3 | location is nullable now.

Exemplos

Exemplo #1 SoapClient::__setLocation() example

<?php
$client = new SoapClient('http://example.com/webservice.php?wsdl');

$client->__setLocation('http://www.somethirdparty.com');

$old_location = $client->__setLocation(); // unsets the location option

echo $old_location;

?>

O exemplo acima produzirá algo semelhante a:

http://www.somethirdparty.com

Veja Também

  • SoapClient::__construct() - SoapClient constructor


Sets SOAP headers for subsequent calls

  • « SoapClient::__setLocation
  • SoapClient::__soapCall »
  • PHP Manual
  • SoapClient
  • Sets SOAP headers for subsequent calls

SoapClient::__setSoapHeaders

(PHP 5 >= 5.0.5, PHP 7, PHP 8)

SoapClient::__setSoapHeaders — Sets SOAP headers for subsequent calls

Descrição

public SoapClient::__setSoapHeaders(SoapHeader|array|null $headers = null): bool

Defines headers to be sent along with the SOAP requests.

Nota:

Calling this method will replace any previous values.

Parâmetros

headers

The headers to be set. It could be SoapHeader object or array of SoapHeader objects. If not specified or set to null, the headers will be deleted.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 SoapClient::__setSoapHeaders() example

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$header = new SoapHeader('http://soapinterop.org/echoheader/',
'echoMeStringRequest',
'hello world');

$client->__setSoapHeaders($header);

$client->__soapCall("echoVoid", null);
?>

Exemplo #2 Set Multiple Headers

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$headers = array();

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
'echoMeStringRequest',
'hello world');

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
'echoMeStringRequest',
'hello world again');

$client->__setSoapHeaders($headers);

$client->__soapCall("echoVoid", null);
?>


Calls a SOAP function

  • « SoapClient::__setSoapHeaders
  • SoapServer »
  • PHP Manual
  • SoapClient
  • Calls a SOAP function

SoapClient::__soapCall

(PHP 5, PHP 7, PHP 8)

SoapClient::__soapCall — Calls a SOAP function

Descrição

public SoapClient::__soapCall(
string $name,
array $args,
?array $options = null,
SoapHeader|array|null $inputHeaders = null,
array &$outputHeaders = null
): mixed

This is a low level API function that is used to make a SOAP call. Usually, in WSDL mode, SOAP functions can be called as methods of the SoapClient object. This method is useful in non-WSDL mode when soapaction is unknown, uri differs from the default or when sending and/or receiving SOAP Headers.

On error, a call to a SOAP function can cause PHP to throw exceptions or return a SoapFault object if exceptions are disabled. To check if the function call failed to catch the SoapFault exceptions, check the result with is_soap_fault().

Parâmetros

name

The name of the SOAP function to call.

args

An array of the arguments to pass to the function. This can be either an ordered or an associative array. Note that most SOAP servers require parameter names to be provided, in which case this must be an associative array.

options

An associative array of options to pass to the client.

The location option is the URL of the remote Web service.

The uri option is the target namespace of the SOAP service.

The soapaction option is the action to call.

inputHeaders

An array of headers to be sent along with the SOAP request.

outputHeaders

If supplied, this array will be filled with the headers from the SOAP response.

Valor Retornado

SOAP functions may return one, or multiple values. If only one value is returned by the SOAP function, the return value will be a scalar. If multiple values are returned, an associative array of named output parameters is returned instead.

On error, if the SoapClient object was constructed with the exceptions option set to false, a SoapFault object will be returned.

Exemplos

Exemplo #1 SoapClient::__soapCall() example

<?php

$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);

$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c), NULL,
new SoapHeader(), $output_headers);

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c),
array('soapaction' => 'some_action',
'uri' => 'some_uri'));
?>

Veja Também

  • SoapClient::__construct() - SoapClient constructor
  • SoapParam::__construct() - SoapParam constructor
  • SoapVar::__construct() - SoapVar constructor
  • SoapHeader::__construct() - SoapHeader constructor
  • SoapFault::__construct() - SoapFault constructor
  • is_soap_fault() - Checks if a SOAP call has failed


The SoapServer class

(PHP 5, PHP 7, PHP 8)

Introdução

The SoapServer class provides a server for the » SOAP 1.1 and » SOAP 1.2 protocols. It can be used with or without a WSDL service description.

Resumo da classe

class SoapServer {
/* Propriedades */
private ?SoapFault $__soap_fault = null;
/* Métodos */
public __construct(?string $wsdl, array $options = [])
public addFunction(array|string|int $functions): void
public addSoapHeader(SoapHeader $header): void
public fault(
string $code,
string $string,
string $actor = "",
mixed $details = null,
string $name = ""
): void
public getFunctions(): array
public handle(?string $request = null): void
public setClass(string $class, mixed ...$args): void
public setObject(object $object): void
public setPersistence(int $mode): void
}

Propriedades

service

__soap_fault

Índice

  • SoapServer::addFunction — Adds one or more functions to handle SOAP requests
  • SoapServer::addSoapHeader — Add a SOAP header to the response
  • SoapServer::__construct — SoapServer constructor
  • SoapServer::fault — Issue SoapServer fault indicating an error
  • SoapServer::getFunctions — Returns list of defined functions
  • SoapServer::handle — Handles a SOAP request
  • SoapServer::setClass — Sets the class which handles SOAP requests
  • SoapServer::setObject — Sets the object which will be used to handle SOAP requests
  • SoapServer::setPersistence — Sets SoapServer persistence mode


Adds one or more functions to handle SOAP requests

  • « SoapServer
  • SoapServer::addSoapHeader »
  • PHP Manual
  • SoapServer
  • Adds one or more functions to handle SOAP requests

SoapServer::addFunction

(PHP 5, PHP 7, PHP 8)

SoapServer::addFunction — Adds one or more functions to handle SOAP requests

Descrição

public SoapServer::addFunction(array|string|int $functions): void

Exports one or more functions for remote clients

Parâmetros

functions

To export one function, pass the function name into this parameter as a string.

To export several functions, pass an array of function names.

To export all the functions, pass a special constant SOAP_FUNCTIONS_ALL.

Nota:

functions must receive all input arguments in the same order as defined in the WSDL file (They should not receive any output parameters as arguments) and return one or more values. To return several values they must return an array with named output parameters.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 SoapServer::addFunction() example

<?php

function echoString($inputString)
{
return $inputString;
}

$server->addFunction("echoString");

function echoTwoStrings($inputString1, $inputString2)
{
return array("outputString1" => $inputString1,
"outputString2" => $inputString2);
}
$server->addFunction(array("echoString", "echoTwoStrings"));

$server->addFunction(SOAP_FUNCTIONS_ALL);

?>

Veja Também

  • SoapServer::__construct() - SoapServer constructor
  • SoapServer::setClass() - Sets the class which handles SOAP requests


Add a SOAP header to the response

  • « SoapServer::addFunction
  • SoapServer::__construct »
  • PHP Manual
  • SoapServer
  • Add a SOAP header to the response

SoapServer::addSoapHeader

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SoapServer::addSoapHeader — Add a SOAP header to the response

Descrição

public SoapServer::addSoapHeader(SoapHeader $header): void

Adds a SOAP header to be returned with the response to the current request.

Parâmetros

header

The header to be returned.

Valor Retornado

Nenhum valor é retornado.


SoapServer constructor

  • « SoapServer::addSoapHeader
  • SoapServer::fault »
  • PHP Manual
  • SoapServer
  • SoapServer constructor

SoapServer::__construct

(PHP 5, PHP 7, PHP 8)

SoapServer::__construct — SoapServer constructor

Descrição

public SoapServer::__construct(?string $wsdl, array $options = [])

This constructor allows the creation of SoapServer objects in WSDL or non-WSDL mode.

Parâmetros

wsdl

To use the SoapServer in WSDL mode, pass the URI of a WSDL file. Otherwise, pass null and set the uri option to the target namespace for the server.

options

Allow setting a default SOAP version (soap_version), internal character encoding (encoding), and actor URI (actor).

The classmap option can be used to map some WSDL types to PHP classes. This option must be an array with WSDL types as keys and names of PHP classes as values.

The typemap option is an array of type mappings. Type mapping is an array with keys type_name, type_ns (namespace URI), from_xml (callback accepting one string parameter) and to_xml (callback accepting one object parameter).

The cache_wsdl option is one of WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY or WSDL_CACHE_BOTH.

There is also a features option which can be set to SOAP_WAIT_ONE_WAY_CALLS, SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE.

The send_errors option can be set to false to sent a generic error message ("Internal error") instead of the specific error message sent otherwise.

Exemplos

Exemplo #1 SoapServer::__construct() example

<?php

$server = new SoapServer("some.wsdl");

$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1'));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

class MyBook {
public $title;
public $author;
}

$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>

Veja Também

  • SoapClient::__construct() - SoapClient constructor


Issue SoapServer fault indicating an error

  • « SoapServer::__construct
  • SoapServer::getFunctions »
  • PHP Manual
  • SoapServer
  • Issue SoapServer fault indicating an error

SoapServer::fault

(PHP 5, PHP 7, PHP 8)

SoapServer::fault — Issue SoapServer fault indicating an error

Descrição

public SoapServer::fault(
string $code,
string $string,
string $actor = "",
mixed $details = null,
string $name = ""
): void

Sends a response to the client of the current request indicating an error.

Nota:

This can only be called when handling a request.

Parâmetros

code

The error code to return

string

A brief description of the error

actor

A string identifying the actor that caused the fault.

details

More details of the fault

name

The name of the fault. This can be used to select a name from a WSDL file.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • SoapFault::__construct() - SoapFault constructor


Returns list of defined functions

  • « SoapServer::fault
  • SoapServer::handle »
  • PHP Manual
  • SoapServer
  • Returns list of defined functions

SoapServer::getFunctions

(PHP 5, PHP 7, PHP 8)

SoapServer::getFunctions — Returns list of defined functions

Descrição

public SoapServer::getFunctions(): array

Returns a list of the defined functions in the SoapServer object. This method returns the list of all functions added by SoapServer::addFunction() or SoapServer::setClass().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

An array of the defined functions.

Exemplos

Exemplo #1 SoapServer::getFunctions() example

<?php
$server = new SoapServer(NULL, array("uri" => "http://test-uri"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$server->handle();
} else {
echo "This SOAP server can handle following functions: ";
$functions = $server->getFunctions();
foreach($functions as $func) {
echo $func . "\n";
}
}
?>

Veja Também

  • SoapServer::__construct() - SoapServer constructor
  • SoapServer::addFunction() - Adds one or more functions to handle SOAP requests
  • SoapServer::setClass() - Sets the class which handles SOAP requests


Handles a SOAP request

  • « SoapServer::getFunctions
  • SoapServer::setClass »
  • PHP Manual
  • SoapServer
  • Handles a SOAP request

SoapServer::handle

(PHP 5, PHP 7, PHP 8)

SoapServer::handle — Handles a SOAP request

Descrição

public SoapServer::handle(?string $request = null): void

Processes a SOAP request, calls necessary functions, and sends a response back.

Parâmetros

request

The SOAP request. If this argument is omitted, the request is assumed to be in the raw POST data of the HTTP request.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão | Descrição
8.0.0 | request is now nullable.

Exemplos

Exemplo #1 SoapServer::handle() example

<?php
function test($x)
{
return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Veja Também

  • SoapServer::__construct() - SoapServer constructor


Sets the class which handles SOAP requests

  • « SoapServer::handle
  • SoapServer::setObject »
  • PHP Manual
  • SoapServer
  • Sets the class which handles SOAP requests

SoapServer::setClass

(PHP 5, PHP 7, PHP 8)

SoapServer::setClass — Sets the class which handles SOAP requests

Descrição

public SoapServer::setClass(string $class, mixed ...$args): void

Exports all methods from specified class.

The object can be made persistent across request for a given PHP session with the SoapServer::setPersistence() method.

Parâmetros

class

The name of the exported class.

args

These optional parameters will be passed to the default class constructor during object creation.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • SoapServer::__construct() - SoapServer constructor
  • SoapServer::addFunction() - Adds one or more functions to handle SOAP requests
  • SoapServer::setPersistence() - Sets SoapServer persistence mode


Sets the object which will be used to handle SOAP requests

  • « SoapServer::setClass
  • SoapServer::setPersistence »
  • PHP Manual
  • SoapServer
  • Sets the object which will be used to handle SOAP requests

SoapServer::setObject

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

SoapServer::setObject — Sets the object which will be used to handle SOAP requests

Descrição

public SoapServer::setObject(object $object): void

This sets a specific object as the handler for SOAP requests, rather than just a class as in SoapServer::setClass().

Parâmetros

object

The object to handle the requests.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • SoapServer::setClass() - Sets the class which handles SOAP requests


Sets SoapServer persistence mode

  • « SoapServer::setObject
  • SoapFault »
  • PHP Manual
  • SoapServer
  • Sets SoapServer persistence mode

SoapServer::setPersistence

(PHP 5, PHP 7, PHP 8)

SoapServer::setPersistence — Sets SoapServer persistence mode

Descrição

public SoapServer::setPersistence(int $mode): void

This function allows changing the persistence state of a SoapServer object between requests. This function allows saving data between requests utilizing PHP sessions. This method only has an affect on a SoapServer after it has exported functions utilizing SoapServer::setClass().

Nota:

The persistence of SOAP_PERSISTENCE_SESSION makes only objects of the given class persistent, but not the class static data. In this case, use $this->bar instead of self::$bar.

Nota:

SOAP_PERSISTENCE_SESSION serializes data on the class object between requests. In order to properly utilize resources (e.g. PDO), __wakeup() and __sleep() magic methods should be utilized.

Parâmetros

mode

One of the SOAP_PERSISTENCE_XXX constants.

SOAP_PERSISTENCE_REQUEST - SoapServer data does not persist between requests. This is the default behavior of any SoapServer object after setClass is called.

SOAP_PERSISTENCE_SESSION - SoapServer data persists between requests. This is accomplished by serializing the SoapServer class data into $_SESSION['_bogus_session_name'], because of this session_start() must be called before this persistence mode is set.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 SoapServer::setPersistence() example

<?php
class MyFirstPersistentSoapServer {
private $resource; // (Such as PDO, mysqli, etc..)
public $myvar1;
public $myvar2;

public function __construct() {
$this->__wakeup(); // We're calling our wakeup to handle starting our resource
}

public function __wakeup() {
$this->resource = CodeToStartOurResourceUp();
}

public function __sleep() {
// We make sure to leave out $resource here, so our session data remains persistent
// Failure to do so will result in the failure during the unserialization of data
// on the next request; thus, our SoapObject would not be persistent across requests.
return array('myvar1','myvar2');
}
}

try {
session_start();
$server = new SoapServer(null, array('uri' => $_SERVER['REQUEST_URI']));
$server->setClass('MyFirstPersistentSoapServer');
// setPersistence MUST be called after setClass, because setClass's
// behavior sets SESSION_PERSISTENCE_REQUEST upon enacting the method.
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
$server->handle();
} catch(SoapFault $e) {
error_log("SOAP ERROR: ". $e->getMessage());
}
?>

Veja Também

  • SoapServer::setClass() - Sets the class which handles SOAP requests


The SoapFault class

(PHP 5, PHP 7, PHP 8)

Introdução

Represents a SOAP fault.

Resumo da classe

class SoapFault extends Exception {
/* Propriedades */
public string $faultstring;
public ?string $faultcode = null;
public ?string $faultcodens = null;
public ?string $faultactor = null;
public mixed $detail = null;
public ?string $_name = null;
public mixed $headerfault = null;
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos */
public __construct(
array|string|null $code,
string $string,
?string $actor = null,
mixed $details = null,
?string $name = null,
mixed $headerFault = null
)
public __toString(): string
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

_name

detail

faultactor

faultcode

faultcodens

faultstring

headerfault

Índice

  • SoapFault::__construct — SoapFault constructor
  • SoapFault::__toString — Obtain a string representation of a SoapFault


SoapFault constructor

  • « SoapFault
  • SoapFault::__toString »
  • PHP Manual
  • SoapFault
  • SoapFault constructor

SoapFault::__construct

(PHP 5, PHP 7, PHP 8)

SoapFault::__construct — SoapFault constructor

Descrição

public SoapFault::__construct(
array|string|null $code,
string $string,
?string $actor = null,
mixed $details = null,
?string $name = null,
mixed $headerFault = null
)

This class is used to send SOAP fault responses from the PHP handler. faultcode, faultstring, faultactor and detail are standard elements of a SOAP Fault.

Parâmetros

faultcode

The error code of the SoapFault.

faultstring

The error message of the SoapFault.

faultactor

A string identifying the actor that caused the error.

detail

More details about the cause of the error.

faultname

Can be used to select the proper fault encoding from WSDL.

headerfault

Can be used during SOAP header handling to report an error in the response header.

Exemplos

Exemplo #1 Some examples

<?php
function test($x)
{
return new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

It is possible to use PHP exception mechanism to throw SOAP Fault.

Exemplo #2 Some examples

<?php
function test($x)
{
throw new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Veja Também

  • SoapServer::fault() - Issue SoapServer fault indicating an error
  • is_soap_fault() - Checks if a SOAP call has failed


Obtain a string representation of a SoapFault

  • « SoapFault::__construct
  • SoapHeader »
  • PHP Manual
  • SoapFault
  • Obtain a string representation of a SoapFault

SoapFault::__toString

(PHP 5, PHP 7, PHP 8)

SoapFault::__toString — Obtain a string representation of a SoapFault

Descrição

public SoapFault::__toString(): string

Returns a string representation of the SoapFault.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

A string describing the SoapFault.


The SoapHeader class

(PHP 5, PHP 7, PHP 8)

Introdução

Represents a SOAP header.

Resumo da classe

class SoapHeader {
/* Propriedades */
public string $namespace;
public string $name;
public mixed $data = null;
public bool $mustUnderstand;
public string|int|null $actor;
/* Métodos */
public __construct(
string $namespace,
string $name,
mixed $data = ?,
bool $mustunderstand = ?,
string $actor = ?
)
}

Propriedades

actor

data

mustUnderstand

name

namespace

Índice

  • SoapHeader::__construct — SoapHeader constructor


SoapHeader constructor

  • « SoapHeader
  • SoapParam »
  • PHP Manual
  • SoapHeader
  • SoapHeader constructor

SoapHeader::__construct

(PHP 5, PHP 7, PHP 8)

SoapHeader::__construct — SoapHeader constructor

Descrição

public SoapHeader::__construct(
string $namespace,
string $name,
mixed $data = ?,
bool $mustunderstand = ?,
string $actor = ?
)

Constructs a new SoapHeader object.

Parâmetros

namespace

The namespace of the SOAP header element.

name

The name of the SoapHeader object.

data

A SOAP header's content. It can be a PHP value or a SoapVar object.

mustUnderstand

Value of the mustUnderstand attribute of the SOAP header element.

actor

Value of the actor attribute of the SOAP header element.

Exemplos

Exemplo #1 SoapHeader::__construct() example

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client->__soapCall("echoVoid", null, null,
new SoapHeader('http://soapinterop.org/echoheader/',
'echoMeStringRequest',
'hello world'));
?>

Veja Também

  • SoapClient::__soapCall() - Calls a SOAP function
  • SoapVar::__construct() - SoapVar constructor
  • SoapParam::__construct() - SoapParam constructor
  • SoapServer::addSoapHeader() - Add a SOAP header to the response


The SoapParam class

(PHP 5, PHP 7, PHP 8)

Introdução

Represents parameter to a SOAP call.

Resumo da classe

class SoapParam {
/* Propriedades */
public string $param_name;
public mixed $param_data;
/* Métodos */
public __construct(mixed $data, string $name)
}

Propriedades

param_data

param_name

Índice

  • SoapParam::__construct — SoapParam constructor


SoapParam constructor

  • « SoapParam
  • SoapVar »
  • PHP Manual
  • SoapParam
  • SoapParam constructor

SoapParam::__construct

(PHP 5, PHP 7, PHP 8)

SoapParam::__construct — SoapParam constructor

Descrição

public SoapParam::__construct(mixed $data, string $name)

Constructs a new SoapParam object.

Parâmetros

data

The data to pass or return. This parameter can be passed directly as PHP value, but in this case it will be named as paramN and the SOAP service may not understand it.

name

The parameter name.

Exemplos

Exemplo #1 SoapParam::__construct() example

<?php
$client = new SoapClient(null,array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client->SomeFunction(new SoapParam($a, "a"),
new SoapParam($b, "b"),
new SoapParam($c, "c"));
?>

Veja Também

  • SoapClient::__soapCall() - Calls a SOAP function
  • SoapVar::__construct() - SoapVar constructor


The SoapVar class

(PHP 5, PHP 7, PHP 8)

Introdução

A class representing a variable or object for use with SOAP services.

Resumo da classe

class SoapVar {
/* Propriedades */
public int $enc_type;
public mixed $enc_value = null;
public ?string $enc_stype = null;
public ?string $enc_ns = null;
public ?string $enc_name = null;
public ?string $enc_namens = null;
/* Métodos */
public __construct(
mixed $data,
?int $encoding,
?string $typeName = null,
?string $typeNamespace = null,
?string $nodeName = null,
?string $nodeNamespace = null
)
}

Propriedades

enc_name

enc_namens

enc_ns

enc_type

enc_stype

enc_value

Índice

  • SoapVar::__construct — SoapVar constructor


SoapVar constructor

  • « SoapVar
  • Yar »
  • PHP Manual
  • SoapVar
  • SoapVar constructor

SoapVar::__construct

(PHP 5, PHP 7, PHP 8)

SoapVar::__construct — SoapVar constructor

Descrição

public SoapVar::__construct(
mixed $data,
?int $encoding,
?string $typeName = null,
?string $typeNamespace = null,
?string $nodeName = null,
?string $nodeNamespace = null
)

Constructs a new SoapVar object.

Parâmetros

data

The data to pass or return.

encoding

The encoding ID, one of the XSD_... constants.

type_name

The type name.

type_namespace

The type namespace.

node_name

The XML node name.

node_namespace

The XML node namespace.

Registro de Alterações

Versão | Descrição
8.0.3 | typeName, typeNamespace, nodeName,and nodeNamespace are nullable now.

Exemplos

Exemplo #1 SoapVar::__construct() example

<?php
class SOAPStruct {
function SOAPStruct($s, $i, $f)
{
$this->varString = $s;
$this->varInt = $i;
$this->varFloat = $f;
}
}
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$struct = new SOAPStruct('arg', 34, 325.325);
$soapstruct = new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd");
$client->echoStruct(new SoapParam($soapstruct, "inputStruct"));
?>

Veja Também

  • SoapClient::__soapCall() - Calls a SOAP function
  • SoapParam::__construct() - SoapParam constructor


Yet Another RPC Framework

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • Yar_Server — The Yar_Server class
    • Yar_Server::__construct — Register a server
    • Yar_Server::handle — Start RPC Server
  • Yar_Client — The Yar_Client class
    • Yar_Client::__call — Call service
    • Yar_Client::__construct — Create a client
    • Yar_Client::setOpt — Set calling contexts
  • Yar_Concurrent_Client — The Yar_Concurrent_Client class
    • Yar_Concurrent_Client::call — Register a concurrent call
    • Yar_Concurrent_Client::loop — Send all calls
    • Yar_Concurrent_Client::reset — Clean all registered calls
  • Yar_Server_Exception — The Yar_Server_Exception class
    • Yar_Server_Exception::getType — Retrieve exception's type
  • Yar_Client_Exception — The Yar_Client_Exception class
    • Yar_Client_Exception::getType — Retrieve exception's type


Introdução

Yar is a RPC framework which aims to provide a simple and easy way to do communication between PHP applications It has the ability to concurrently call multiple remote services.


Dependências

if you want to use msgpack as packager, you need compile Yar by your self with ./configure --enable-msgpack


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/yar.

Uma DLL para esta extensão PECL não está disponível no momento. Veja também a seção Compilando no Windows.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Yar Opções de Configuração
Nome | Padrão | Modificável | Registro de Alterações
yar.packager | php | INI_SYSTEM |
yar.debug | Off | INI_ALL |
yar.connect_timeout | 1000 | INI_ALL |
yar.timeout | 5000 | INI_ALL |
yar.expose_info | On | INI_SYSTEM |

Aqui está uma breve explicação das diretivas de configuração.

yar.packager string

it could be php, json, and msgpack(require built with msgpack support)

yar.debug string

yar.connect_timeout int

timeout in ms

yar.timeout int

timeout in ms

yar.expose_info bool

whether expose the service info(when access the server via GET)


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

YAR_VERSION (string)
YAR_CLIENT_PROTOCOL_HTTP (int)
YAR_OPT_PACKAGER (int)
YAR_OPT_TIMEOUT (int)
YAR_OPT_CONNECT_TIMEOUT (int)
YAR_OPT_HEADER (array)
Since 2.0.4
YAR_PACKAGER_PHP (string)
YAR_PACKAGER_JSON (string)
YAR_ERR_OKEY (int)
YAR_ERR_OUTPUT (int)
YAR_ERR_TRANSPORT (int)
YAR_ERR_REQUEST (int)
YAR_ERR_PROTOCOL (int)
YAR_ERR_PACKAGER (int)
YAR_ERR_EXCEPTION (int)


Exemplos

Exemplo #1 Yar Server Example

<?php

/* assume this page can be accessed by http://example.com/operator.php */

class Operator {

/**
* Add two operands
* @param interge
* @return interge
*/
public function add($a, $b) {
return $this->_add($a, $b);
}

/**
* Sub
*/
public function sub($a, $b) {
return $a - $b;
}

/**
* Mul
*/
public function mul($a, $b) {
return $a * $b;
}

/**
* Protected methods will not be exposed
* @param interge
* @return interge
*/
protected function _add($a, $b) {
return $a + $b;
}
}

$server = new Yar_Server(new Operator());
$server->handle();
?>

Exemplo #2 Access the server in borwser(GET request)

O exemplo acima produzirá algo semelhante a:

Yar Server Info

Exemplo #3 Yar Client Example

<?php
$client = new yar_client("http://example.com/operator.php");

/* call directly */
var_dump($client->add(1, 2));

/* call via call */
var_dump($client->call("add", array(3, 2)));

/* __add can not be called */
var_dump($client->_add(1, 2));
?>

O exemplo acima produzirá algo semelhante a:

int(3)
int(5)
PHP Fatal error:  Uncaught exception 'Yar_Server_Exception' with message 'call to api Operator::_add() failed' in *

Exemplo #4 Yar Concurrent Client Example

<?php
function callback($ret, $callinfo) {
echo $callinfo['method'] , " result: ", $ret , "\n";
}

/* register async call to remote services */
Yar_Concurrent_Client::call("http://example.com/operator.php", "add", array(1, 2), "callback");
Yar_Concurrent_Client::call("http://example.com/operator.php", "sub", array(2, 1), "callback");
Yar_Concurrent_Client::call("http://example.com/operator.php", "mul", array(2, 2), "callback");

/* sent all request and wait for response */
Yar_Concurrent_Client::loop();
?>

O exemplo acima produzirá algo semelhante a:

mul result: 4
sub result: 1
add result: 3


The Yar_Server class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

Resumo da classe

class Yar_Server {
/* Propriedades */
protected $_executor;
/* Métodos */
final public __construct(Object $obj)
public handle(): bool
}

Propriedades

_executor

Índice

  • Yar_Server::__construct — Register a server
  • Yar_Server::handle — Start RPC Server


Register a server

  • « Yar_Server
  • Yar_Server::handle »
  • PHP Manual
  • Yar_Server
  • Register a server

Yar_Server::__construct

(PECL yar >= 1.0.0)

Yar_Server::__construct — Register a server

Descrição

final public Yar_Server::__construct(Object $obj)

Set up a Yar HTTP RPC Server, All the public methods of $obj will be register as a RPC service.

Parâmetros

obj

An Object, all public methods of its will be registered as RPC services.

Valor Retornado

An instance of Yar_Server.

Exemplos

Exemplo #1 Yar_Server::__construct() example

<?php
class API {
/**
* the doc info will be generated automatically into service info page.
* @params
* @return
*/
public function some_method($parameter, $option = "foo") {
return "some_method";
}

protected function client_can_not_see() {
}
}

$service = new Yar_Server(new API());
$service->handle();
?>

O exemplo acima produzirá algo semelhante a:

Veja Também

  • Yar_Server::handle() - Start RPC Server
    •


Start RPC Server

  • « Yar_Server::__construct
  • Yar_Client »
  • PHP Manual
  • Yar_Server
  • Start RPC Server

Yar_Server::handle

(PECL yar >= 1.0.0)

Yar_Server::handle — Start RPC Server

Descrição

public Yar_Server::handle(): bool

Start a RPC HTTP server, and ready for accpet RPC requests.

Nota:

Usual RPC calls will be issued as HTTP POST requests. If a HTTP GET request is issued to the uri, the service information (commented section above) will be printed on the page

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

boolean

Exemplos

Exemplo #1 Yar_Server::handle() example

<?php
class API {
/**
* the doc info will be generated automatically into service info page.
* @params
* @return
*/
public function some_method($parameter, $option = "foo") {
}

protected function client_can_not_see() {
}
}

$service = new Yar_Server(new API());
$service->handle();
?>

O exemplo acima produzirá algo semelhante a:

Veja Também

  • Yar_Server::__construct() - Register a server
    •


The Yar_Client class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

Resumo da classe

class Yar_Client {
/* Propriedades */
protected $_protocol;
protected $_uri;
protected $_options;
protected $_running;
/* Métodos */
public __call(string $method, array $parameters): void
final public __construct(string $url, array $options = ?)
public setOpt(int $name, mixed $value): Yar_Client|false
}

Propriedades

_protocol

_uri

_options

_running

Índice

  • Yar_Client::__call — Call service
  • Yar_Client::__construct — Create a client
  • Yar_Client::setOpt — Set calling contexts


Call service

  • « Yar_Client
  • Yar_Client::__construct »
  • PHP Manual
  • Yar_Client
  • Call service

Yar_Client::__call

(PECL yar >= 1.0.0)

Yar_Client::__call — Call service

Descrição

public Yar_Client::__call(string $method, array $parameters): void

Issue a call to remote RPC method.

Parâmetros

method

Remote RPC method name.

parameters

Parameters.

Valor Retornado

Exemplos

Exemplo #1 Yar_Client::__call() example

<?php

$client = new Yar_Client("http://host/api/");

/* call remote service */
$result = $client->some_method("parameter");
?>

O exemplo acima produzirá algo semelhante a:

Veja Também

  • Yar_Client::setOpt() - Set calling contexts
    •


Create a client

  • « Yar_Client::__call
  • Yar_Client::setOpt »
  • PHP Manual
  • Yar_Client
  • Create a client

Yar_Client::__construct

(PECL yar >= 1.0.0)

Yar_Client::__construct — Create a client

Descrição

final public Yar_Client::__construct(string $url, array $options = ?)

Create a Yar_Client to a Yar_Server.

Parâmetros

url

Yar Server URL.

Valor Retornado

Yar_Client instance.

Exemplos

Exemplo #1 Yar_Client::__construct() example

<?php
$client = new Yar_Client("http://host/api/");
?>

O exemplo acima produzirá algo semelhante a:

Veja Também

  • Yar_Client::__call() - Call service
    •

  • Yar_Client::setOpt() - Set calling contexts
    •


Set calling contexts

  • « Yar_Client::__construct
  • Yar_Concurrent_Client »
  • PHP Manual
  • Yar_Client
  • Set calling contexts

Yar_Client::setOpt

(PECL yar >= 1.0.0)

Yar_Client::setOpt — Set calling contexts

Descrição

public Yar_Client::setOpt(int $name, mixed $value): Yar_Client|false

Parâmetros

name

it can be: YAR_OPT_PACKAGER, YAR_OPT_PERSISTENT (Need server support), YAR_OPT_TIMEOUT, YAR_OPT_CONNECT_TIMEOUT, YAR_OPT_HEADER (as of 2.0.4), YAR_OPT_PROXY (as of 2.2.0)

value

Valor Retornado

Returns $this on success ou false em caso de falha.

Exemplos

Exemplo #1 Yar_Client::setOpt() example

<?php

$cient = new Yar_Client("http://host/api/");

//Set timeout to 1s
$client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);

//Set packager to JSON
$client->SetOpt(YAR_OPT_PACKAGER, "json");

//Set Custom headers
$client->SetOpt(YAR_OPT_HEADER, array("hr1: val1", "hd2: val2"));

// Set Http Proxy
$client->SetOpt(YAR_OPT_PROXY, "127.0.0.1:8888");

/* call remote service */
$result = $client->some_method("parameter");
?>

O exemplo acima produzirá algo semelhante a:

Veja Também

  • Yar_Client::__call() - Call service
    •


The Yar_Concurrent_Client class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

Resumo da classe

class Yar_Concurrent_Client {
/* Propriedades */
static $_callstack;
static $_callback;
static $_error_callback;
/* Métodos */
public static call(
string $uri,
string $method,
array $parameters = ?,
callable $callback = ?,
callable $error_callback = ?,
array $options = ?
): int
public static loop(callable $callback = ?, callable $error_callback = ?): bool
public static reset(): bool
}

Propriedades

_callstack

_callback

_error_callback

Índice

  • Yar_Concurrent_Client::call — Register a concurrent call
  • Yar_Concurrent_Client::loop — Send all calls
  • Yar_Concurrent_Client::reset — Clean all registered calls


Register a concurrent call

  • « Yar_Concurrent_Client
  • Yar_Concurrent_Client::loop »
  • PHP Manual
  • Yar_Concurrent_Client
  • Register a concurrent call

Yar_Concurrent_Client::call

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::call — Register a concurrent call

Descrição

public static Yar_Concurrent_Client::call(
string $uri,
string $method,
array $parameters = ?,
callable $callback = ?,
callable $error_callback = ?,
array $options = ?
): int

Register a RPC call, but won't sent it immediately, it will be send while further call to Yar_Concurrent_Client::loop()

Parâmetros

uri

The RPC server URI(http, tcp)

method

Service name(aka the method name)

parameters

Parameters

callback

A function callback, which will be called while the response return.

Valor Retornado

An unique id, can be used to identified which call it is.

Exemplos

Exemplo #1 Yar_Concurrent_Client::call() example

<?php
function callback($retval, $callinfo) {
var_dump($retval);
}

function error_callback($type, $error, $callinfo) {
error_log($error);
}

Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters")); // if the callback is not specificed,
// callback in loop will be used
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
//this server accept json packager
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
//custom timeout

//The requests are not sent yet
?>

O exemplo acima produzirá algo semelhante a:

Veja Também

  • Yar_Concurrent_Client::loop() - Send all calls
    •

  • Yar_Concurrent_Client::reset() - Clean all registered calls
    •

  • Yar_Server::__construct() - Register a server
    •

  • Yar_Server::handle() - Start RPC Server
    •


Send all calls

  • « Yar_Concurrent_Client::call
  • Yar_Concurrent_Client::reset »
  • PHP Manual
  • Yar_Concurrent_Client
  • Send all calls

Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::loop — Send all calls

Descrição

public static Yar_Concurrent_Client::loop(callable $callback = ?, callable $error_callback = ?): bool

Send all registed remote RPC calls.

Parâmetros

callback

If this callback is set, then Yar will call this callback after all calls are sent and before any response return, with a $callinfo NULL.

Then, if user didn't specify callback when registering concurrent call, this callback will be used to handle response, otherwise, the callback specified while registering will be used.

error_callback

If this callback is set, then Yar will call this callback while error occurred.

Valor Retornado

Exemplos

Exemplo #1 Yar_Concurrent_Client::loop() example

<?php
function callback($retval, $callinfo) {
if ($callinfo == NULL) {
echo "Now, all requests are sent, and no any response available\n";
} else {
echo "This is a remote call response, the method name is", $callinfo["method"],
". calling sequence is " , $callinfo["sequence"] , "\n";
var_dump($retval);
}
}

function error_callback($type, $error, $callinfo) {
error_log($error);
}

Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters")); // if the callback is not specificed,
// callback in loop will be used
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
//this server accept json packager
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
//custom timeout

Yar_Concurrent_Client::loop("callback", "error_callback"); //send the requests,
//the error_callback is optional
?>

O exemplo acima produzirá algo semelhante a:

Now, all requests are sent, and no any response available
This is a remote call response, the method name issome_method. calling sequence is 4
string(11) "some_method"
This is a remote call response, the method name issome_method. calling sequence is 1
string(11) "some_method"
This is a remote call response, the method name issome_method. calling sequence is 2
string(11) "some_method"
This is a remote call response, the method name issome_method. calling sequence is 3
string(11) "some_method"

Veja Também

  • Yar_Concurrent_Client::call() - Register a concurrent call
  • Yar_Concurrent_Client::reset() - Clean all registered calls
  • Yar_Server::__construct() - Register a server
  • Yar_Server::handle() - Start RPC Server


Clean all registered calls

  • « Yar_Concurrent_Client::loop
  • Yar_Server_Exception »
  • PHP Manual
  • Yar_Concurrent_Client
  • Clean all registered calls

Yar_Concurrent_Client::reset

(PECL yar >= 1.2.4)

Yar_Concurrent_Client::reset — Clean all registered calls

Descrição

public static Yar_Concurrent_Client::reset(): bool

Clean all registered calls

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Exemplos

Exemplo #1 Yar_Concurrent_Client::reset() example

O exemplo acima produzirá algo semelhante a:

Veja Também

  • Yar_Concurrent_Client::call() - Register a concurrent call
    •

  • Yar_Concurrent_Client::loop() - Send all calls
    •

  • Yar_Server::__construct() - Register a server
    •

  • Yar_Server::handle() - Start RPC Server
    •


The Yar_Server_Exception class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

If service threw exceptions, A Yar_Server_Exception will be threw in client side.

Resumo da classe

class Yar_Server_Exception extends Exception {
/* Propriedades */
protected $_type;
/* Métodos */
public getType(): string
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

message

code

file

line

_type

Índice

  • Yar_Server_Exception::getType — Retrieve exception's type


Retrieve exception's type

  • « Yar_Server_Exception
  • Yar_Client_Exception »
  • PHP Manual
  • Yar_Server_Exception
  • Retrieve exception's type

Yar_Server_Exception::getType

(PECL yar >= 1.0.0)

Yar_Server_Exception::getType — Retrieve exception's type

Descrição

public Yar_Server_Exception::getType(): string

Get the exception original type threw by server

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

string

Exemplos

Exemplo #1 Yar_Server_Exception::getType() example

//Server.php
<?php
class Custom_Exception extends Exception {};

class API {
public function throw_exception($name) {
throw new Custom_Exception($name);
}
}

$service = new Yar_Server(new API());
$service->handle();
?>

//Client.php
<?php
$client = new Yar_Client("http://host/api.php");

try {
$client->throw_exception("client");
} catch (Yar_Server_Exception $e) {
var_dump($e->getType());
var_dump($e->getMessage());
}

O exemplo acima produzirá algo semelhante a:

string(16) "Custom_Exception"
string(6) "client"

Veja Também


The Yar_Client_Exception class

(Não há informação de versão disponível, talvez apenas no Git)

Introdução

Resumo da classe

class Yar_Client_Exception extends Exception {
/* Propriedades */
/* Métodos */
public getType(): string
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

message

code

file

line

Índice

  • Yar_Client_Exception::getType — Retrieve exception's type


Retrieve exception's type

  • « Yar_Client_Exception
  • XML-RPC »
  • PHP Manual
  • Yar_Client_Exception
  • Retrieve exception's type

Yar_Client_Exception::getType

(PECL yar >= 1.0.0)

Yar_Client_Exception::getType — Retrieve exception's type

Descrição

public Yar_Client_Exception::getType(): string

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns "Yar_Exception_Client".

Exemplos

Exemplo #1 Yar_Client_Exception::getType() example

<?php

/* ... */

?>

O exemplo acima produzirá algo semelhante a:

...

Veja Também

  • Yaf_Server_Exception::getType()


XML-RPC

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Funções para XML-RPC
    • xmlrpc_decode_request — Decodifica XML para tipos nativos do PHP
    • xmlrpc_decode — Decodifica XML para tipos nativos do PHP
    • xmlrpc_encode_request — Gera XML para uma requisição de método
    • xmlrpc_encode — Gera XML para um valor do PHP
    • xmlrpc_get_type — Obtém o tipo XML-RPC para um valor PHP
    • xmlrpc_is_fault — Determina se um valor de array representa uma falha XML-RPC
    • xmlrpc_parse_method_descriptions — Decodifica XML e gera uma lista de descrição de métodos
    • xmlrpc_server_add_introspection_data — Adiciona documentação de introspecção
    • xmlrpc_server_call_method — Trata requisiçães de XML e chamadas de métodos
    • xmlrpc_server_create — Cria um servidor xmlrpc
    • xmlrpc_server_destroy — Destrói recursos de servidor
    • xmlrpc_server_register_introspection_callback — Registra uma função do PHP para gerar documentação
    • xmlrpc_server_register_method — Registra uma função do PHP para o método com nome method_name
    • xmlrpc_set_type — Sets xmlrpc type, base64 or datetime, for a PHP string value


Introdução

Estas funções podem ser usadas para escrever servidores e clientes XML-RPC. Mais informações sobre XML-RPC podem ser encontradas em » http://www.xmlrpc.com/, e mais documentação sobre esta extensão e suas funções em » http://xmlrpc-epi.sourceforge.net/.

Aviso

Esta extensão é EXPERIMENTAL. O comportamento desta extensão, incluindo os nomes de suas funções e qualquer outra documentação relacionada a esta extensão, pode mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.


Instalação

Suporte a XML-RPC no PHP não é habilitado por padrão. Deve-se usar a opção de configuração --with-xmlrpc[=DIR] ao compilar o PHP para habilitar o suporte a XML-RPC.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Essa extensão define um recurso (resource) para um servidor XML-RPC retornado por xmlrpc_server_create().


  • « Tipos de Recurso
  • Funções para XML-RPC »
  • PHP Manual
  • XML-RPC
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Funções para XML-RPC

Índice

  • xmlrpc_decode_request — Decodifica XML para tipos nativos do PHP
  • xmlrpc_decode — Decodifica XML para tipos nativos do PHP
  • xmlrpc_encode_request — Gera XML para uma requisição de método
  • xmlrpc_encode — Gera XML para um valor do PHP
  • xmlrpc_get_type — Obtém o tipo XML-RPC para um valor PHP
  • xmlrpc_is_fault — Determina se um valor de array representa uma falha XML-RPC
  • xmlrpc_parse_method_descriptions — Decodifica XML e gera uma lista de descrição de métodos
  • xmlrpc_server_add_introspection_data — Adiciona documentação de introspecção
  • xmlrpc_server_call_method — Trata requisiçães de XML e chamadas de métodos
  • xmlrpc_server_create — Cria um servidor xmlrpc
  • xmlrpc_server_destroy — Destrói recursos de servidor
  • xmlrpc_server_register_introspection_callback — Registra uma função do PHP para gerar documentação
  • xmlrpc_server_register_method — Registra uma função do PHP para o método com nome method_name
  • xmlrpc_set_type — Sets xmlrpc type, base64 or datetime, for a PHP string value


Decodifica XML para tipos nativos do PHP

  • « Funções para XML-RPC
  • xmlrpc_decode »
  • PHP Manual
  • Funções para XML-RPC
  • Decodifica XML para tipos nativos do PHP

xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_decode_request — Decodifica XML para tipos nativos do PHP

Descrição

xmlrpc_decode_request(string $xml, string &$method, string $encoding = ?): mixed
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Decodifica XML para tipos nativos do PHP

  • « xmlrpc_decode_request
  • xmlrpc_encode_request »
  • PHP Manual
  • Funções para XML-RPC
  • Decodifica XML para tipos nativos do PHP

xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_decode — Decodifica XML para tipos nativos do PHP

Descrição

xmlrpc_decode(string $xml, string $encoding = "iso-8859-1"): mixed
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Parâmetros

xml

Resposta XML retornada por método XMLRPC.

encoding

Codificação da entrada suportada por iconv.

Valor Retornado

Retorna ou um array, ou um inteiro, ou uma string, ou um booleano de acordo com a resposta retornada via XMLRPC.

Exemplos

Veja exemplos em xmlrpc_encode_request().

Veja Também

  • xmlrpc_encode_request() - Gera XML para uma requisição de método
  • xmlrpc_is_fault() - Determina se um valor de array representa uma falha XML-RPC


Gera XML para uma requisição de método

  • « xmlrpc_decode
  • xmlrpc_encode »
  • PHP Manual
  • Funções para XML-RPC
  • Gera XML para uma requisição de método

xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_encode_request — Gera XML para uma requisição de método

Descrição

xmlrpc_encode_request(string $method, mixed $params, array $output_options = ?): string
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Parâmetros

method

Nome do método a ser chamado.

params

Parâmetros do método compatível com assinatura do método.

output_options

Array especificando opções de saída. Pode conter (valores padrão estão em negrito):

  • output_type: php, xml

  • verbosity: no_white_space, newlines_only, pretty

  • escaping: cdata, non-ascii, non-print, markup (pode ser uma string com um valor ou um array com múltiplos valores)

  • version: simple, xmlrpc, soap 1.1, auto

  • encoding: iso-8859-1, outra codificação suportada por iconv

Valor Retornado

Retorna uma string contendo a representação XML da requisição.

Exemplos

Exemplo #1 Exemplo de uso das funções de cliente XMLRPC

<?php
$request = xmlrpc_encode_request("method", array(1, 2, 3));
$context = stream_context_create(array('http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml",
'content' => $request
)));
$file = file_get_contents("http://www.example.com/xmlrpc", false, $context);
$response = xmlrpc_decode($file);
if ($response && xmlrpc_is_fault($response)) {
trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
} else {
print_r($response);
}
?>

Veja Também

  • stream_context_create() - Cria um contexto de fluxo
  • file_get_contents() - Lê todo o conteúdo de um arquivo para uma string
  • xmlrpc_decode() - Decodifica XML para tipos nativos do PHP


Gera XML para um valor do PHP

  • « xmlrpc_encode_request
  • xmlrpc_get_type »
  • PHP Manual
  • Funções para XML-RPC
  • Gera XML para um valor do PHP

xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_encode — Gera XML para um valor do PHP

Descrição

xmlrpc_encode(mixed $value): string
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Obtém o tipo XML-RPC para um valor PHP

  • « xmlrpc_encode
  • xmlrpc_is_fault »
  • PHP Manual
  • Funções para XML-RPC
  • Obtém o tipo XML-RPC para um valor PHP

xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_get_type — Obtém o tipo XML-RPC para um valor PHP

Descrição

xmlrpc_get_type(mixed $value): string
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Essa função é especialmente útil para strings datetime e base64.

Parâmetros

value

Valor PHP

Valor Retornado

Retorna o tipo XML-RPC.

Exemplos

Exemplo #1 Exemplo de tipo XML-RPC

<?php
echo xmlrpc_get_type(null) . "\n"; // base64
echo xmlrpc_get_type(false) . "\n"; // boolean
echo xmlrpc_get_type(1) . "\n"; // int
echo xmlrpc_get_type(1.0) . "\n"; // double
echo xmlrpc_get_type("") . "\n"; // string
echo xmlrpc_get_type(array()) . "\n"; // array
echo xmlrpc_get_type(new stdClass) . "\n"; // array
echo xmlrpc_get_type(STDIN) . "\n"; // int
?>

Veja Também

  • xmlrpc_set_type() - Sets xmlrpc type, base64 or datetime, for a PHP string value


Determina se um valor de array representa uma falha XML-RPC

  • « xmlrpc_get_type
  • xmlrpc_parse_method_descriptions »
  • PHP Manual
  • Funções para XML-RPC
  • Determina se um valor de array representa uma falha XML-RPC

xmlrpc_is_fault

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

xmlrpc_is_fault — Determina se um valor de array representa uma falha XML-RPC

Descrição

xmlrpc_is_fault(array $arg): bool
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Parâmetros

arg

Array retornado por xmlrpc_decode().

Valor Retornado

Retorna true se o argumento significa falha, false caso contrário. Descrição da falha está disponível em $arg["faultString"], código da falha está em $arg["faultCode"].

Exemplos

Veja o exemplo em xmlrpc_encode_request().

Veja Também

  • xmlrpc_decode() - Decodifica XML para tipos nativos do PHP


Decodifica XML e gera uma lista de descrição de métodos

  • « xmlrpc_is_fault
  • xmlrpc_server_add_introspection_data »
  • PHP Manual
  • Funções para XML-RPC
  • Decodifica XML e gera uma lista de descrição de métodos

xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_parse_method_descriptions — Decodifica XML e gera uma lista de descrição de métodos

Descrição

xmlrpc_parse_method_descriptions(string $xml): array
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Adiciona documentação de introspecção

  • « xmlrpc_parse_method_descriptions
  • xmlrpc_server_call_method »
  • PHP Manual
  • Funções para XML-RPC
  • Adiciona documentação de introspecção

xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_add_introspection_data — Adiciona documentação de introspecção

Descrição

xmlrpc_server_add_introspection_data(resource $server, array $desc): int
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Trata requisiçães de XML e chamadas de métodos

  • « xmlrpc_server_add_introspection_data
  • xmlrpc_server_create »
  • PHP Manual
  • Funções para XML-RPC
  • Trata requisiçães de XML e chamadas de métodos

xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_call_method — Trata requisiçães de XML e chamadas de métodos

Descrição

xmlrpc_server_call_method(
resource $server,
string $xml,
mixed $user_data,
array $output_options = ?
): string
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Cria um servidor xmlrpc

  • « xmlrpc_server_call_method
  • xmlrpc_server_destroy »
  • PHP Manual
  • Funções para XML-RPC
  • Cria um servidor xmlrpc

xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_create — Cria um servidor xmlrpc

Descrição

xmlrpc_server_create(): resource
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Destrói recursos de servidor

  • « xmlrpc_server_create
  • xmlrpc_server_register_introspection_callback »
  • PHP Manual
  • Funções para XML-RPC
  • Destrói recursos de servidor

xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_destroy — Destrói recursos de servidor

Descrição

xmlrpc_server_destroy(resource $server): bool
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Registra uma função do PHP para gerar documentação

  • « xmlrpc_server_destroy
  • xmlrpc_server_register_method »
  • PHP Manual
  • Funções para XML-RPC
  • Registra uma função do PHP para gerar documentação

xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_register_introspection_callback — Registra uma função do PHP para gerar documentação

Descrição

xmlrpc_server_register_introspection_callback(resource $server, string $function): bool
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Registra uma função do PHP para o método com nome method_name

  • « xmlrpc_server_register_introspection_callback
  • xmlrpc_set_type »
  • PHP Manual
  • Funções para XML-RPC
  • Registra uma função do PHP para o método com nome method_name

xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_register_method — Registra uma função do PHP para o método com nome method_name

Descrição

xmlrpc_server_register_method(resource $server, string $method_name, string $function): bool
Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.


Sets xmlrpc type, base64 or datetime, for a PHP string value

  • « xmlrpc_server_register_method
  • Extensões Somente para Windows »
  • PHP Manual
  • Funções para XML-RPC
  • Sets xmlrpc type, base64 or datetime, for a PHP string value

xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_set_type — Sets xmlrpc type, base64 or datetime, for a PHP string value

Descrição

xmlrpc_set_type(string &$value, string $type): bool

Sets xmlrpc type, base64 or datetime, for a PHP string value.

Aviso

Esta função é EXPERIMENTAL. O comportamento desta função, seu nome e documentação poderão mudar sem aviso prévio em futuras versões do PHP. Use por sua conta e risco.

Parâmetros

value

Value to set the type

type

'base64' or 'datetime'

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. If successful, value is converted to an object.

Erros/Exceções

Issues E_WARNING with type unsupported by XMLRPC.

Exemplos

Exemplo #1 A xmlrpc_set_type() example

<?php

$params = date("Ymd\TH:i:s", time());
xmlrpc_set_type($params, 'datetime');
echo xmlrpc_encode($params);

?>

O exemplo acima produzirá algo semelhante a:

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <dateTime.iso8601>20090322T23:43:03</dateTime.iso8601>
 </value>
</param>
</params>


Extensões Somente para Windows

  • COM — COM and .Net (Windows)
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Errors and error handling
    • Exemplos
    • com — The com class
    • dotnet — The dotnet class
    • variant — variant class
    • COMPersistHelper — The COMPersistHelper class
    • com_exception — The com_exception class
    • com_safearray_proxy — The com_safearray_proxy class
    • COM Funções
  • win32service
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Win32ServiceException — The Win32ServiceException class
    • Exemplos
    • win32service Funções


COM and .Net (Windows)

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Errors and error handling
  • Exemplos
    • For Each
    • Arrays and Array-style COM properties
  • com — The com class
    • com::__construct — com class constructor
  • dotnet — The dotnet class
    • dotnet::__construct — dotnet class constructor
  • variant — variant class
    • variant::__construct — variant class constructor
  • COMPersistHelper — The COMPersistHelper class
    • COMPersistHelper::__construct — Construct a COMPersistHelper object
    • COMPersistHelper::GetCurFileName — Get current filename
    • COMPersistHelper::GetMaxStreamSize — Get maximum stream size
    • COMPersistHelper::InitNew — Initialize object to default state
    • COMPersistHelper::LoadFromFile — Load object from file
    • COMPersistHelper::LoadFromStream — Load object from stream
    • COMPersistHelper::SaveToFile — Save object to file
    • COMPersistHelper::SaveToStream — Save object to stream
  • com_exception — The com_exception class
  • com_safearray_proxy — The com_safearray_proxy class
  • COM Funções
    • com_create_guid — Generate a globally unique identifier (GUID)
    • com_event_sink — Connect events from a COM object to a PHP object
    • com_get_active_object — Returns a handle to an already running instance of a COM object
    • com_load_typelib — Loads a Typelib
    • com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds
    • com_print_typeinfo — Print out a PHP class definition for a dispatchable interface
    • variant_abs — Returns the absolute value of a variant
    • variant_add — "Adds" two variant values together and returns the result
    • variant_and — Performs a bitwise AND operation between two variants
    • variant_cast — Convert a variant into a new variant object of another type
    • variant_cat — Concatenates two variant values together and returns the result
    • variant_cmp — Compares two variants
    • variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp
    • variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp
    • variant_div — Returns the result from dividing two variants
    • variant_eqv — Performs a bitwise equivalence on two variants
    • variant_fix — Returns the integer portion of a variant
    • variant_get_type — Returns the type of a variant object
    • variant_idiv — Converts variants to integers and then returns the result from dividing them
    • variant_imp — Performs a bitwise implication on two variants
    • variant_int — Returns the integer portion of a variant
    • variant_mod — Divides two variants and returns only the remainder
    • variant_mul — Multiplies the values of the two variants
    • variant_neg — Performs logical negation on a variant
    • variant_not — Performs bitwise not negation on a variant
    • variant_or — Performs a logical disjunction on two variants
    • variant_pow — Returns the result of performing the power function with two variants
    • variant_round — Rounds a variant to the specified number of decimal places
    • variant_set_type — Convert a variant into another type "in-place"
    • variant_set — Assigns a new value for a variant object
    • variant_sub — Subtracts the value of the right variant from the left variant value
    • variant_xor — Performs a logical exclusion on two variants


Introdução

COM is an acronym for Component Object Model; it is an object orientated layer (and associated services) on top of DCE RPC (an open standard) and defines a common calling convention that enables code written in any language to call and interoperate with code written in any other language (provided those languages are COM aware). Not only can the code be written in any language, but it need not even be part of the same executable; the code can be loaded from a DLL, be found in another process running on the same machine, or, with DCOM (Distributed COM), be found in another process on a remote machine, all without your code even needing to know where a component resides.

There is a subset of COM known as OLE Automation which comprises a set of COM interfaces that allow loose binding to COM objects, so that they can be introspected and called at run-time without compile-time knowledge of how the object works. The PHP COM extension utilizes the OLE Automation interfaces to allow you to create and call compatible objects from your scripts. Technically speaking, this should really be called the "OLE Automation Extension for PHP", since not all COM objects are OLE compatible.

Now, why would or should you use COM? COM is one of the main ways to glue applications and components together on the Windows platform; using COM you can launch Microsoft Word, fill in a document template and save the result as a Word document and send it to a visitor of your web site. You can also use COM to perform administrative tasks for your network and to configure your IIS; these are just the most common uses; you can do much more with COM.

Additionally, we support the instantiation and creation of .Net assemblies using the COM interoperability layer provided by Microsoft.


Dependências

COM functions are only available for the Windows version of PHP.

.Net support requires the .Net runtime.


Instalação

This extension requires php_com_dotnet.dll to be enabled inside of php.ini in order to use these functions.

You are responsible for installing support for the various COM objects that you intend to use (such as MS Word); we don't and can't bundle all of those with PHP.


Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Com configuration options
Nome | Padrão | Modificável | Registro de Alterações
com.allow_dcom | "0" | INI_SYSTEM |
com.autoregister_typelib | "0" | INI_ALL |
com.autoregister_verbose | "0" | INI_ALL |
com.autoregister_casesensitive | "1" | INI_ALL |
com.code_page | "" | INI_ALL |
com.dotnet_version | "" | INI_SYSTEM | As of PHP 8.0.0
com.typelib_file | "" | INI_SYSTEM |
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

com.allow_dcom

When this is turned on, PHP will be allowed to operate as a D-COM (Distributed COM) client and will allow the PHP script to instantiate COM objects on a remote server.

com.autoregister_typelib

When this is turned on, PHP will attempt to register constants from the typelibrary of COM objects that it instantiates, if those objects implement the interfaces required to obtain that information. The case sensitivity of the constants it registers is controlled by the com.autoregister_casesensitive php.ini directive.

com.autoregister_verbose

When this is turned on, any problems with loading a typelibrary during object instantiation will be reported using the PHP error mechanism. The default is off, which does not emit any indication if there was an error finding or loading the type library.

com.autoregister_casesensitive

When this is turned on (the default), constants found in auto-loaded type libraries when instatiating COM objects will be registered case sensitively. See com_load_typelib() for more details.

com.code_page

It controls the default character set code-page to use when passing strings to and from COM objects. If set to an empty string, PHP will assume that you want CP_ACP, which is the default system ANSI code page.

If the text in your scripts is encoded using a different encoding/character set by default, setting this directive will save you from having to pass the code page as a parameter to the com class constructor. Please note that by using this directive (as with any PHP configuration directive), your PHP script becomes less portable; you should use the COM constructor parameter whenever possible.

com.dotnet_version

The version of the .NET framework to use for dotnet objects. The value of the setting is the first three parts of the framework's version number, separated by dots, and prefixed with v, e.g. v4.0.30319.

com.typelib_file

When set, this should hold the path to a file that contains a list of typelibraries that should be loaded on startup. Each line of the file will be treated as the type library name and loaded as though you had called com_load_typelib(). The constants will be registered persistently, so that the library only needs to be loaded once. If a type library name ends with the string #cis or #case_insensitive, then the constants from that library will be registered case insensitively.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

COM constants
Constant | Description | Notes
CLSCTX_INPROC_SERVER (int) | The code that creates and manages objects of this class is a DLL that runs in the same process as the caller of the function specifying the class context. |
CLSCTX_INPROC_HANDLER (int) | The code that manages objects of this class is an in-process handler. This is a DLL that runs in the client process and implements client-side structures of this class when instances of the class are accessed remotely. |
CLSCTX_LOCAL_SERVER (int) | The EXE code that creates and manages objects of this class runs on same machine but is loaded in a separate process space. |
CLSCTX_REMOTE_SERVER (int) | A remote context. The code that creates and manages objects of this class is run on a different computer. |
CLSCTX_SERVER (int) | Indicates server code, whether in-process, local, or remote. This definition ORs CLSCTX_INPROC_SERVER, CLSCTX_LOCAL_SERVER, and CLSCTX_REMOTE_SERVER. |
CLSCTX_ALL (int) | Indicates all class contexts. This definition ORs CLSCTX_INPROC_HANDLER and CLSCTX_SERVER. |
VT_NULL (int) | NULL pointer reference. |
VT_EMPTY (int) | A property with a type indicator of VT_EMPTY has no data associated with it; that is, the size of the value is zero. |
VT_INT (int) | 4-byte signed integer value (equivalent to VT_I4). |
VT_I1 (int) | 1-byte signed integer. |
VT_I2 (int) | Two bytes representing a 2-byte signed integer value. |
VT_I4 (int) | 4-byte signed integer value. |
VT_I8 (int) | 8-byte signed integer value. | x64 only
VT_UINT (int) | 4-byte unsigned integer (equivalent to VT_UI4). |
VT_UI1 (int) | 1-byte unsigned integer. |
VT_UI2 (int) | 2-byte unsigned integer. |
VT_UI4 (int) | 4-byte unsigned integer. |
VT_UI8 (int) | 8-byte unsigned integer. | x64 only
VT_R4 (int) | 32-bit IEEE floating point value. |
VT_R8 (int) | 64-bit IEEE floating point value. |
VT_BOOL (int) | Boolean value. |
VT_ERROR (int) | Error code; containing the status code associated with the error. |
VT_CY (int) | 8-byte two's complement integer (scaled by 10,000). |
VT_DATE (int) | A 64-bit floating point number representing the number of days (not seconds) since December 31, 1899. For example, January 1, 1900 is 2.0, January 2, 1900 is 3.0, etc. This is stored in the same representation as VT_R8. |
VT_BSTR (int) | Pointer to a null-terminated Unicode string. |
VT_DECIMAL (int) | A decimal structure. |
VT_UNKNOWN (int) | A pointer to an object that implements the IUnknown interface. |
VT_DISPATCH (int) | A pointer to a pointer to an object was specified. |
VT_VARIANT (int) | A type indicator followed by the corresponding value. VT_VARIANT can be used only with VT_BYREF. |
VT_ARRAY (int) | If the type indicator is combined with VT_ARRAY by an OR operator, the value is a pointer to a SAFEARRAY. VT_ARRAY can use the OR with the following data types: VT_I1, VT_UI1, VT_I2, VT_UI2, VT_I4, VT_UI4, VT_INT, VT_UINT, VT_R4, VT_R8, VT_BOOL, VT_DECIMAL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH, VT_UNKNOWN and VT_VARIANT. |
VT_BYREF (int) | If the type indicator is combined with VT_BYREF by an OR operator, the value is a reference. Reference types are interpreted as a reference to data, similar to the reference type in C++. |
CP_ACP (int) | Default to ANSI code page. |
CP_MACCP (int) | Macintosh code page. |
CP_OEMCP (int) | Default to OEM code page. |
CP_UTF7 (int) | Unicode (UTF-7). |
CP_UTF8 (int) | Unicode (UTF-8). |
CP_SYMBOL (int) | SYMBOL translations. |
CP_THREAD_ACP (int) | Current thread's ANSI code page |
VARCMP_LT (int) | The left bstr is less than right bstr. |
VARCMP_EQ (int) | The two parameters are equal. |
VARCMP_GT (int) | The left bstr is greater than right bstr. |
VARCMP_NULL (int) | Either expression is NULL. |
NORM_IGNORECASE (int) | Ignore case sensitivity. |
NORM_IGNORENONSPACE (int) | Ignore nonspacing characters. |
NORM_IGNORESYMBOLS (int) | Ignore symbols. |
NORM_IGNOREWIDTH (int) | Ignore string width. |
NORM_IGNOREKANATYPE (int) | Ignore Kana type. |
NORM_IGNOREKASHIDA (int) | Ignore Arabic kashida characters. | Availability is dependent upon under lying library.
DISP_E_DIVBYZERO (int) | A return error that indicates a divide by zero error. |
DISP_E_OVERFLOW (int) | An error that indicates that a value could not be coerced to its expected representation. |
DISP_E_BADINDEX (int) | An error that indicates that an array index does not exist. |
DISP_E_PARAMNOTFOUND (int) | A return value that indicates that one of the parameter IDs does not correspond to a parameter on the method. |
MK_E_UNAVAILABLE (int) | iMoniker COM status code, return on errors where the function call failed due to unavailability. |
LOCALE_NEUTRAL (int) | The neutral locale. This constant is generally not used when calling NLS APIs. Instead, use LOCALE_SYSTEM_DEFAULT. |
LOCALE_SYSTEM_DEFAULT (int) | The default locale for the operating system. |


Errors and error handling

This extension will throw instances of the class com_exception whenever there is a potentially fatal error reported by COM. All COM exceptions have a well-defined code property that corresponds to the HRESULT return value from the various COM operations. You may use this code to make programmatic decisions on how to handle the exception.


  • « Errors and error handling
  • For Each »
  • PHP Manual
  • COM
  • Exemplos

Exemplos

Índice

  • For Each
  • Arrays and Array-style COM properties


For Each

You may use PHP's own foreach statement to iterate over the contents of a standard COM/OLE IEnumVariant. In layman's terms, this means that you can use foreach in places where you would have used For Each in VB/ASP code.

Exemplo #1 For Each in ASP

<%
Set domainObject = GetObject("WinNT://Domain")
For Each obj in domainObject
  Response.Write obj.Name & "<br />"
Next
%>

Exemplo #2 foreach in PHP

<?php
$domainObject = new COM("WinNT://Domain");
foreach ($domainObject as $obj) {
echo $obj->Name . "<br />";
}
?>


Arrays and Array-style COM properties

Many COM objects expose their properties as arrays, or using array-style access.

You can:

  • Access multi-dimensional arrays, or COM properties that require multiple parameters using PHP array syntax. You can also write or set properties using this technique.

  • Iterate SafeArrays ("true" arrays) using the foreach control structure. This works because SafeArrays include information about their size. If an array-style property implements IEnumVariant then you can also use foreach for that property too; take a look at For Each for more information on this topic.


The com class

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Introdução

The com class allows you to instantiate an OLE compatible COM object and call its methods and access its properties.

Resumo da classe

class com extends variant {
/* Métodos */
public __construct(
string $module_name,
array|string|null $server_name = null,
int $codepage = CP_ACP,
string $typelib = ""
)
}

Overloaded Methods

The returned object is an overloaded object, which means that PHP does not see any fixed methods as it does with regular classes; instead, any property or method accesses are passed through to COM.

PHP will automatically detect methods that accept parameters by reference, and will automatically convert regular PHP variables to a form that can be passed by reference. This means that you can call the method very naturally; you needn't go to any extra effort in your code.

com examples

Exemplo #1 com example (1)

<?php
// starting word
$word = new com("word.application") or die("Unable to instantiate Word");
echo "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 = null;
?>

Exemplo #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 = null;
$conn = null;

?>

Índice

  • com::__construct — com class constructor


com class constructor

  • « com
  • dotnet »
  • PHP Manual
  • com
  • com class constructor

com::__construct

(PHP 4 > 4.1.0, PHP 5, PHP 7, PHP 8)

com::__construct — com class constructor

Descrição

public com::__construct(
string $module_name,
array|string|null $server_name = null,
int $codepage = CP_ACP,
string $typelib = ""
)

Constructs a new com object.

Parâmetros

module_name
Can be a ProgID, Class ID or Moniker that names the component to load. A ProgID is typically the application or DLL name, followed by a period, followed by the object name. e.g: Word.Application. A Class ID is the UUID that uniquely identifies a given class. A Moniker is a special form of naming, similar in concept to a URL scheme, that identifies a resource and specifies how it should be loaded. As an example, you could load up Word and get an object representing a word document by specifying the full path to the word document as the module name, or you can use LDAP: as a moniker to use the ADSI interface to LDAP.
server_name
The name of the DCOM server on which the component should be loaded and run. If null, the object is run using the default for the application. The default is typically to run it on the local machine, although the administrator might have configured the application to launch on a different machine. If a non-null value is specified for server, PHP will refuse to load the object unless the com.allow_dcom php.ini option is set to true.

If server_name is an array, it should contain the following elements (case sensitive!). Note that they are all optional (although you need to specify both Username and Password together); if you omit the Server setting, the default server will be used (as mentioned above), and the instantiation of the object will not be affected by the com.allow_dcom php.ini directive.

DCOM server name
key | type | description
Server | string | The name of the server.
Username | string | The username to connect as.
Password | string | The password for Username.
Domain | string | The domain of server.
Flags | integer | One or more of the following constants, logically OR'd together: CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_REMOTE_SERVER, CLSCTX_SERVER and CLSCTX_ALL. The default value if not specified here is CLSCTX_SERVER if you also omit Server, or CLSCTX_REMOTE_SERVER if you do specify a server. You should consult the Microsoft documentation for CoCreateInstance for more information on the meaning of these constants; you will typically never have to use them.

codepage
Specifies the codepage that is used to convert strings to unicode-strings and vice versa. The conversion is applied whenever a PHP string is passed as a parameter or returned from a method of this COM object. The code page is sticky, which means that it will propagate to objects and variants returned from the object. Possible values are CP_ACP (use system default ANSI code page - the default if this parameter is omitted), CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP (use codepage/locale set for the current executing thread), CP_UTF7 and CP_UTF8. You may also use the number for a given codepage; consult the Microsoft documentation for more details on codepages and their numeric values.


The dotnet class

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Introdução

The dotnet class allows you to instantiate a class from a .Net assembly and call its methods and access its properties, if the class and the methods and properties are » visible to COM.

Neither instantiating static classes nor calling static methods is supported. Instantiating generic classes such as System.Collections.Generic.List is not supported either.

Some .Net classes do not implement IDispatch, so while they can be instantiated, calling methods or accessing properties on these classes is not supported.

Nota:

You need to install the .Net runtime on your web server to take advantage of this feature.

Nota:

Prior to PHP 8.0.0, .Net framework 4.0 and later were not supported by the dotnet class. If assemblies had been registered with regasm.exe, the classes could be instantiated as com objects, though. As of PHP 8.0.0, .Net framework 4.0 and later are supported via the php.ini directive com.dotnet_version.

Resumo da classe

class dotnet extends variant {
/* Métodos */
public __construct(string $assembly_name, string $datatype_name, int $codepage = CP_ACP)
}

Overloaded Methods

The returned object is an overloaded object, which means that PHP does not see any fixed methods as it does with regular classes; instead, any property or method accesses are passed through to COM and from there to DOTNET. In other words, the .Net object is mapped through the COM interoperability layer provided by the .Net runtime.

Once you have created a dotnet object, PHP treats it identically to any other COM object; all the same rules apply.

dotnet examples

Exemplo #1 dotnet example

<?php
$stack = new dotnet("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo $stack->Pop() . $stack->Pop();
?>

Índice

  • dotnet::__construct — dotnet class constructor


dotnet class constructor

  • « dotnet
  • variant »
  • PHP Manual
  • dotnet
  • dotnet class constructor

dotnet::__construct

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

dotnet::__construct — dotnet class constructor

Descrição

public dotnet::__construct(string $assembly_name, string $datatype_name, int $codepage = CP_ACP)

Constructs a new dotnet object.

Parâmetros

assembly_name
Specifies which assembly should be loaded.
datatype_name
Specifices which class in that assembly to instantiate.
codepage
Codepage to use for unicode string transformations; see the com class for more details on code pages.


variant class

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Introdução

The VARIANT is COM's equivalent of the PHP zval; it is a structure that can contain a value with a range of different possible types. The variant class provided by the COM extension allows you to have more control over the way that PHP passes values to and from COM.

Resumo da classe

class variant {
/* Métodos */
public __construct(mixed $value = null, int $type = VT_EMPTY, int $codepage = CP_ACP)
}

variant examples

Exemplo #1 variant example

<?php
$v = new variant(42);
print "The type is " . variant_get_type($v) . "<br/>";
print "The value is " . $v . "<br/>";
?>

Nota:

When returning a value or fetching a variant property, the variant is converted to a PHP value only when there is a direct mapping between the types that would not result in a loss of information. In all other cases, the result is returned as an instance of the variant class. You can force PHP to convert or evaluate the variant as a PHP native type by using a casting operator explicitly, or implicitly casting to a string by printing it. You may use the wide range of variant functions to perform arithmetic operations on variants without forcing a conversion or risking a loss of data.

See also variant_get_type().

Índice

  • variant::__construct — variant class constructor


variant class constructor

  • « variant
  • COMPersistHelper »
  • PHP Manual
  • variant
  • variant class constructor

variant::__construct

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

variant::__construct — variant class constructor

Descrição

public variant::__construct(mixed $value = null, int $type = VT_EMPTY, int $codepage = CP_ACP)

Constructs a new variant object.

Parâmetros

value
Initial value. If omitted, or set to null an VT_EMPTY object is created.
type
Specifies the content type of the variant object. Possible values are one of the VT_XXX Constantes pré-definidas. PHP can detect parameters passed by reference automatically; they do not even need to be passed as variant objects. Consult the MSDN library for additional information on the VARIANT type.
codepage
Specifies the codepage that is used to convert strings to unicode. See the parameter of the same name in the com class for more information.


The COMPersistHelper class

(PHP 5, PHP 7, PHP 8)

Introdução

COMPersistHelper improves the interoperability of COM and PHP with regard to the php.ini directive open_basedir, and stream resources.

Resumo da classe

final class COMPersistHelper {
/* Métodos */
public __construct(?variant $variant = null)
public GetCurFileName(): string|false
public GetMaxStreamSize(): int
public InitNew(): bool
public LoadFromFile(string $filename, int $flags = 0): bool
public LoadFromStream(resource $stream): bool
public SaveToFile(?string $filename, bool $remember = true): bool
public SaveToStream(resource $stream): bool
}

Índice

  • COMPersistHelper::__construct — Construct a COMPersistHelper object
  • COMPersistHelper::GetCurFileName — Get current filename
  • COMPersistHelper::GetMaxStreamSize — Get maximum stream size
  • COMPersistHelper::InitNew — Initialize object to default state
  • COMPersistHelper::LoadFromFile — Load object from file
  • COMPersistHelper::LoadFromStream — Load object from stream
  • COMPersistHelper::SaveToFile — Save object to file
  • COMPersistHelper::SaveToStream — Save object to stream


Construct a COMPersistHelper object

  • « COMPersistHelper
  • COMPersistHelper::GetCurFileName »
  • PHP Manual
  • COMPersistHelper
  • Construct a COMPersistHelper object

COMPersistHelper::__construct

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::__construct — Construct a COMPersistHelper object

Descrição

public COMPersistHelper::__construct(?variant $variant = null)

Constructs a persistence helper object, usually associated with a variant.

Parâmetros

variant
A COM object which implements IDispatch. To be able to successfully call any of COMPersistHelper's methods, the object has to implement IPersistFile, IPersistStream and/or IPersistStreamInit. Passing null as variant is only useful if the object is to be loaded from a stream by calling COMPersistHelper::LoadFromStream().


Get current filename

  • « COMPersistHelper::__construct
  • COMPersistHelper::GetMaxStreamSize »
  • PHP Manual
  • COMPersistHelper
  • Get current filename

COMPersistHelper::GetCurFileName

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::GetCurFileName — Get current filename

Descrição

public COMPersistHelper::GetCurFileName(): string|false

Retrieves the current name of the file associated with the object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current name of the file associated with the object.

Erros/Exceções

A com_exception is thrown if the associated object does not implement the COM interface IPersistFile, or when calling the IPersistFile::GetCurFile() method failed.


Get maximum stream size

  • « COMPersistHelper::GetCurFileName
  • COMPersistHelper::InitNew »
  • PHP Manual
  • COMPersistHelper
  • Get maximum stream size

COMPersistHelper::GetMaxStreamSize

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::GetMaxStreamSize — Get maximum stream size

Descrição

public COMPersistHelper::GetMaxStreamSize(): int

Retrieves the size of the stream (in bytes) needed to save the object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the size of the stream (in bytes) needed to save the object.

Erros/Exceções

A com_exception is thrown if the associated object does neither implement the COM interface IPersistStream nor IPersistStreamInit, or when calling the IPersistStream::GetSizeMax() method failed.


Initialize object to default state

  • « COMPersistHelper::GetMaxStreamSize
  • COMPersistHelper::LoadFromFile »
  • PHP Manual
  • COMPersistHelper
  • Initialize object to default state

COMPersistHelper::InitNew

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::InitNew — Initialize object to default state

Descrição

public COMPersistHelper::InitNew(): bool

Initializes an object to a default state.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

A com_exception is thrown if the associated object does not implement the COM interface IPersistStreamInit, or when calling its IPersistStreamInit::Init() method failed.


Load object from file

  • « COMPersistHelper::InitNew
  • COMPersistHelper::LoadFromStream »
  • PHP Manual
  • COMPersistHelper
  • Load object from file

COMPersistHelper::LoadFromFile

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::LoadFromFile — Load object from file

Descrição

public COMPersistHelper::LoadFromFile(string $filename, int $flags = 0): bool

Opens the specified file and initializes an object from the file contents.

Parâmetros

filename
The name of the file from which to load the object.
flags
The access mode to be used when opening the file. Possible values are taken from the » STGM enumeration. The method can treat this value as a suggestion, adding more restrictive permissions if necessary. If flags is 0, the implementation is supposed to open the file using whatever default permissions are used when a user opens the file.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

A com_exception is thrown if the associated object does not implement the COM interface IPersistFile, or when calling the IPersistFile::Load() method failed.


Load object from stream

  • « COMPersistHelper::LoadFromFile
  • COMPersistHelper::SaveToFile »
  • PHP Manual
  • COMPersistHelper
  • Load object from stream

COMPersistHelper::LoadFromStream

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::LoadFromStream — Load object from stream

Descrição

public COMPersistHelper::LoadFromStream(resource $stream): bool

Initializes an object from the stream where it was saved previously.

Parâmetros

stream
The stream resource from which to load the object.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

A com_exception is thrown if the associated object does not implement the COM interface IPersistStream, or when calling the IPersistStream::Load() method failed.


Save object to file

  • « COMPersistHelper::LoadFromStream
  • COMPersistHelper::SaveToStream »
  • PHP Manual
  • COMPersistHelper
  • Save object to file

COMPersistHelper::SaveToFile

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::SaveToFile — Save object to file

Descrição

public COMPersistHelper::SaveToFile(?string $filename, bool $remember = true): bool

Saves a copy of the object to the specified file.

Parâmetros

filename
The name of the file to which to save the object.
remember
Indicates whether the filename parameter is to be used as the current working file. If true, filename becomes the current file and the object is supposed to clear its dirty flag after the save. If false, this save operation is a "Save A Copy As ..." operation. In this case, the current file is unchanged and the object is not supposed to clear its dirty flag.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

A com_exception is thrown if the associated object does not implement the COM interface IPersistFile, or when calling the IPersistFile::Save() method failed.

Exemplos

Exemplo #1 Basic COMPersistHelper::saveToFile() Usage

<?php
$word = new COM('Word.Application');
$doc = $word->Documents->Add();
$ph = new COMPersistHelper($doc);
$ph->SaveToFile('C:\\Users\\cmb\\Documents\\my.docx');
$word->Quit();
?>


Save object to stream

  • « COMPersistHelper::SaveToFile
  • com_exception »
  • PHP Manual
  • COMPersistHelper
  • Save object to stream

COMPersistHelper::SaveToStream

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::SaveToStream — Save object to stream

Descrição

public COMPersistHelper::SaveToStream(resource $stream): bool

Saves an object to the specified stream.

Parâmetros

stream
The stream resource to which to save the object.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

A com_exception is thrown if the associated object does neither implement the COM interface IPersistStream nor IPersistStreamInit, or when calling the IPersistStream::Save() method failed.


The com_exception class

(PHP 5, PHP 7, PHP 8)

Introdução

Resumo da classe

final class com_exception extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The com_safearray_proxy class

(PHP 5, PHP 7, PHP 8)

Introdução

com_safearray_proxy is an internal class used for resolving multi-dimensional array accesses on SafeArray types.

Resumo da classe

final class com_safearray_proxy {
}


COM Funções

Veja Também

For further information on COM read the » COM specification. You might find some additional useful information in our FAQ for PHP e COM. If you're thinking of using MS Office applications on the server side, you should read the information here: » Considerations for Server-Side Automation of Office.

Índice

  • com_create_guid — Generate a globally unique identifier (GUID)
  • com_event_sink — Connect events from a COM object to a PHP object
  • com_get_active_object — Returns a handle to an already running instance of a COM object
  • com_load_typelib — Loads a Typelib
  • com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds
  • com_print_typeinfo — Print out a PHP class definition for a dispatchable interface
  • variant_abs — Returns the absolute value of a variant
  • variant_add — "Adds" two variant values together and returns the result
  • variant_and — Performs a bitwise AND operation between two variants
  • variant_cast — Convert a variant into a new variant object of another type
  • variant_cat — Concatenates two variant values together and returns the result
  • variant_cmp — Compares two variants
  • variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp
  • variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp
  • variant_div — Returns the result from dividing two variants
  • variant_eqv — Performs a bitwise equivalence on two variants
  • variant_fix — Returns the integer portion of a variant
  • variant_get_type — Returns the type of a variant object
  • variant_idiv — Converts variants to integers and then returns the result from dividing them
  • variant_imp — Performs a bitwise implication on two variants
  • variant_int — Returns the integer portion of a variant
  • variant_mod — Divides two variants and returns only the remainder
  • variant_mul — Multiplies the values of the two variants
  • variant_neg — Performs logical negation on a variant
  • variant_not — Performs bitwise not negation on a variant
  • variant_or — Performs a logical disjunction on two variants
  • variant_pow — Returns the result of performing the power function with two variants
  • variant_round — Rounds a variant to the specified number of decimal places
  • variant_set_type — Convert a variant into another type "in-place"
  • variant_set — Assigns a new value for a variant object
  • variant_sub — Subtracts the value of the right variant from the left variant value
  • variant_xor — Performs a logical exclusion on two variants


Generate a globally unique identifier (GUID)

  • « COM Funções
  • com_event_sink »
  • PHP Manual
  • COM Funções
  • Generate a globally unique identifier (GUID)

com_create_guid

(PHP 5, PHP 7, PHP 8)

com_create_guid — Generate a globally unique identifier (GUID)

Descrição

com_create_guid(): string|false

Generates a Globally Unique Identifier (GUID).

A GUID is generated in the same way as DCE UUID's, except that the Microsoft convention is to enclose a GUID in curly braces.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the GUID as a string, ou false em caso de falha.

Veja Também

  • uuid_create() in the PECL uuid extension


Connect events from a COM object to a PHP object

  • « com_create_guid
  • com_get_active_object »
  • PHP Manual
  • COM Funções
  • Connect events from a COM object to a PHP object

com_event_sink

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

com_event_sink — Connect events from a COM object to a PHP object

Descrição

com_event_sink(variant $variant, object $sink_object, array|string|null $sink_interface = null): bool

Instructs COM to sink events generated by variant into the PHP object sink_object.

Be careful how you use this feature; if you are doing something similar to the example below, then it doesn't really make sense to run it in a web server context.

Parâmetros

variant

sink_object

sink_object should be an instance of a class with methods named after those of the desired dispinterface; you may use com_print_typeinfo() to help generate a template class for this purpose.

sink_interface

PHP will attempt to use the default dispinterface type specified by the typelibrary associated with variant, but you may override this choice by setting sink_interface to the name of the dispinterface that you want to use.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | sink_interface is nullable now.

Exemplos

Exemplo #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.example.org");
while(!$sink->terminated) {
com_message_pump(4000);
}
$ie = null;
?>

Notas

Cuidado

Prior to PHP 8.0.0, calling exit() from any of the event handlers is not supported, and may cause PHP to hang. This can be worked around by throwing an exception from the event handler, catching the exception in the main code, and calling exit() from there.

Veja Também

  • com_print_typeinfo() - Print out a PHP class definition for a dispatchable interface
  • com_message_pump() - Process COM messages, sleeping for up to timeoutms milliseconds


Returns a handle to an already running instance of a COM object

  • « com_event_sink
  • com_load_typelib »
  • PHP Manual
  • COM Funções
  • Returns a handle to an already running instance of a COM object

com_get_active_object

(PHP 5, PHP 7, PHP 8)

com_get_active_object — Returns a handle to an already running instance of a COM object

Descrição

com_get_active_object(string $prog_id, ?int $codepage = null): variant

com_get_active_object() is similar to creating a new instance of a com object, except that it will only return an object to your script if the object is already running. OLE applications use something known as the "Running Object Table" to allow well-known applications to be launched only once; this function exposes the COM library function GetActiveObject() to get a handle on a running instance.

Parâmetros

prog_id

prog_id must be either the ProgID or CLSID for the object that you want to access (for example Word.Application).

codepage

Acts in precisely the same way that it does for the com class.

Valor Retornado

If the requested object is running, it will be returned to your script just like any other COM object.

Erros/Exceções

There are a variety of reasons why this function might fail, the most common being that the object is not already running. In that situation, the exception error code will be MK_E_UNAVAILABLE; you can use the getCode method of the exception object to check the exception code.

Registro de Alterações

Versão | Descrição
8.0.0 | codepage is nullable now.

Notas

Aviso

Using com_get_active_object() in a web server context is not always a smart idea. Most COM/OLE applications are not designed to handle more than one client concurrently, even (or especially!) Microsoft Office. You should read » Considerations for Server-Side Automation of Office for more information on the general issues involved.


Loads a Typelib

  • « com_get_active_object
  • com_message_pump »
  • PHP Manual
  • COM Funções
  • Loads a Typelib

com_load_typelib

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

com_load_typelib — Loads a Typelib

Descrição

com_load_typelib(string $typelib, bool $case_insensitive = true): bool

Loads a type-library and registers its constants in the engine, as though they were defined using define().

Note that it is much more efficient to use the com.typelib-file php.ini setting to pre-load and register the constants, although not so flexible.

If com.autoregister-typelib is turned on, then PHP will attempt to automatically register the constants associated with a COM object when you instantiate it. This depends on the interfaces provided by the COM object itself, and may not always be possible.

Parâmetros

typelib

typelib can be one of the following:

  • The filename of a .tlb file or the executable module that contains the type library.

  • The type library GUID, followed by its version number, for example {00000200-0000-0010-8000-00AA006D2EA4},2,0.

  • The type library name, e.g. Microsoft OLE DB ActiveX Data Objects 1.0 Library.

PHP will attempt to resolve the type library in this order, as the process gets more and more expensive as you progress down the list; searching for the type library by name is handled by physically enumerating the registry until we find a match.

case_insensitive

The case_insensitive behaves inversely to the parameter $case_insensitive in the define() function.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Process COM messages, sleeping for up to timeoutms milliseconds

  • « com_load_typelib
  • com_print_typeinfo »
  • PHP Manual
  • COM Funções
  • Process COM messages, sleeping for up to timeoutms milliseconds

com_message_pump

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds

Descrição

com_message_pump(int $timeout_milliseconds = 0): bool

This function will sleep for up to timeout_milliseconds milliseconds, or until a message arrives in the queue.

The purpose of this function is to route COM calls between apartments and handle various synchronization issues. This allows your script to wait efficiently for events to be triggered, while still handling other events or running other code in the background. You should use it in a loop, as demonstrated by the example in the com_event_sink() function, until you are finished using event bound COM objects.

Parâmetros

timeout_milliseconds

The timeout, in milliseconds.

If you do not specify a value for timeout_milliseconds, then 0 will be assumed. A 0 value means that no waiting will be performed; if there are messages pending they will be dispatched as before; if there are no messages pending, the function will return false immediately without sleeping.

Valor Retornado

If a message or messages arrives before the timeout, they will be dispatched, and the function will return true. If the timeout occurs and no messages were processed, the return value will be false.


Print out a PHP class definition for a dispatchable interface

  • « com_message_pump
  • variant_abs »
  • PHP Manual
  • COM Funções
  • Print out a PHP class definition for a dispatchable interface

com_print_typeinfo

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

com_print_typeinfo — Print out a PHP class definition for a dispatchable interface

Descrição

com_print_typeinfo(variant|string $variant, ?string $dispatch_interface = null, bool $display_sink = false): bool

The purpose of this function is to help generate a skeleton class for use as an event sink. You may also use it to generate a dump of any COM object, provided that it supports enough of the introspection interfaces, and that you know the name of the interface you want to display.

Parâmetros

variant

variant should be either an instance of a COM object, or be the name of a typelibrary (which will be resolved according to the rules set out in com_load_typelib()).

dispatch_interface

The name of an IDispatch descendant interface that you want to display.

display_sink

If set to true, the corresponding sink interface will be displayed instead.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • com_event_sink() - Connect events from a COM object to a PHP object
  • com_load_typelib() - Loads a Typelib


Returns the absolute value of a variant

  • « com_print_typeinfo
  • variant_add »
  • PHP Manual
  • COM Funções
  • Returns the absolute value of a variant

variant_abs

(PHP 5, PHP 7, PHP 8)

variant_abs — Returns the absolute value of a variant

Descrição

variant_abs(mixed $value): variant

Returns the absolute value of a variant.

Parâmetros

value

The variant.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Returns the absolute value of value.

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • abs() - Valor absoluto


"Adds" two variant values together and returns the result

  • « variant_abs
  • variant_and »
  • PHP Manual
  • COM Funções
  • "Adds" two variant values together and returns the result

variant_add

(PHP 5, PHP 7, PHP 8)

variant_add — "Adds" two variant values together and returns the result

Descrição

variant_add(mixed $left, mixed $right): variant

Adds left to right using the following rules (taken from the MSDN library), which correspond to those of Visual Basic:

Variant Addition Rules
If | Then
Both expressions are of the string type | Concatenation
One expression is a string type and the other a character | Addition
One expression is numeric and the other is a string | Addition
Both expressions are numeric | Addition
Either expression is NULL | NULL is returned
Both expressions are empty | Integer subtype is returned

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Returns the result.

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • variant_sub() - Subtracts the value of the right variant from the left variant value


Performs a bitwise AND operation between two variants

  • « variant_add
  • variant_cast »
  • PHP Manual
  • COM Funções
  • Performs a bitwise AND operation between two variants

variant_and

(PHP 5, PHP 7, PHP 8)

variant_and — Performs a bitwise AND operation between two variants

Descrição

variant_and(mixed $left, mixed $right): variant

Performs a bitwise AND operation. Note that this is slightly different from a regular AND operation.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Variant AND Rules
If left is | If right is | then the result is
true | true | true
true | false | false
true | null | null
false | true | false
false | false | false
false | null | false
null | true | null
null | false | false
null | null | null

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • variant_or() - Performs a logical disjunction on two variants


Convert a variant into a new variant object of another type

  • « variant_and
  • variant_cat »
  • PHP Manual
  • COM Funções
  • Convert a variant into a new variant object of another type

variant_cast

(PHP 5, PHP 7, PHP 8)

variant_cast — Convert a variant into a new variant object of another type

Descrição

variant_cast(variant $variant, int $type): variant

This function makes a copy of variant and then performs a variant cast operation to force the copy to have the type given by type.

This function wraps VariantChangeType() in the COM library; consult MSDN for more information.

Parâmetros

variant

The variant.

type

type should be one of the VT_XXX constants.

Valor Retornado

Returns a variant of given type.

Veja Também

  • variant_set_type() - Convert a variant into another type "in-place"


Concatenates two variant values together and returns the result

  • « variant_cast
  • variant_cmp »
  • PHP Manual
  • COM Funções
  • Concatenates two variant values together and returns the result

variant_cat

(PHP 5, PHP 7, PHP 8)

variant_cat — Concatenates two variant values together and returns the result

Descrição

variant_cat(mixed $left, mixed $right): variant

Concatenates left with right and returns the result.

This function is notionally equivalent to $left . $right.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Returns the result of the concatenation.

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • String for the string concatenation operator


Compares two variants

  • « variant_cat
  • variant_date_from_timestamp »
  • PHP Manual
  • COM Funções
  • Compares two variants

variant_cmp

(PHP 5, PHP 7, PHP 8)

variant_cmp — Compares two variants

Descrição

variant_cmp(
mixed $left,
mixed $right,
int $locale_id = LOCALE_SYSTEM_DEFAULT,
int $flags = 0
): int

Compares left with right.

This function will only compare scalar values, not arrays or variant records.

Parâmetros

left

The left operand.

right

The right operand.

locale_id

A valid Locale Identifier to use when comparing strings (this affects string collation).

flags

flags can be one or more of the following values OR'd together, and affects string comparisons:

Variant Comparision Flags
value | meaning
NORM_IGNORECASE | Compare case insensitively
NORM_IGNORENONSPACE | Ignore nonspacing characters
NORM_IGNORESYMBOLS | Ignore symbols
NORM_IGNOREWIDTH | Ignore string width
NORM_IGNOREKANATYPE | Ignore Kana type
NORM_IGNOREKASHIDA | Ignore Arabic kashida characters

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Returns one of the following:

Variant Comparision Results
value | meaning
VARCMP_LT | left is less than right
VARCMP_EQ | left is equal to right
VARCMP_GT | left is greater than right
VARCMP_NULL | Either left, right or both are null


Returns a variant date representation of a Unix timestamp

  • « variant_cmp
  • variant_date_to_timestamp »
  • PHP Manual
  • COM Funções
  • Returns a variant date representation of a Unix timestamp

variant_date_from_timestamp

(PHP 5, PHP 7, PHP 8)

variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp

Descrição

variant_date_from_timestamp(int $timestamp): variant

Converts timestamp from a unix timestamp value into a variant of type VT_DATE. This allows easier interopability between the unix-ish parts of PHP and COM.

Parâmetros

timestamp

A unix timestamp.

Valor Retornado

Returns a VT_DATE variant.

Veja Também

  • variant_date_to_timestamp() - Converts a variant date/time value to Unix timestamp
  • mktime() - Obtém um timestamp Unix de uma data
  • time() - Retorna o timestamp Unix atual


Converts a variant date/time value to Unix timestamp

  • « variant_date_from_timestamp
  • variant_div »
  • PHP Manual
  • COM Funções
  • Converts a variant date/time value to Unix timestamp

variant_date_to_timestamp

(PHP 5, PHP 7, PHP 8)

variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp

Descrição

variant_date_to_timestamp(variant $variant): ?int

Converts variant from a VT_DATE (or similar) value into a Unix timestamp. This allows easier interopability between the Unix-ish parts of PHP and COM.

Parâmetros

variant

The variant.

Valor Retornado

Returns a unix timestamp, or null on failure.

Veja Também

  • variant_date_from_timestamp() - Returns a variant date representation of a Unix timestamp
  • date() - Formatar um timestamp Unix
  • strftime() - Formata uma hora/data de acordo com as configurações locais


Returns the result from dividing two variants

  • « variant_date_to_timestamp
  • variant_eqv »
  • PHP Manual
  • COM Funções
  • Returns the result from dividing two variants

variant_div

(PHP 5, PHP 7, PHP 8)

variant_div — Returns the result from dividing two variants

Descrição

variant_div(mixed $left, mixed $right): variant

Divides left by right and returns the result.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Variant Division Rules
If | Then
Both expressions are of the string, date, character, boolean type | Double is returned
One expression is a string type and the other a character | Division and a double is returned
One expression is numeric and the other is a string | Division and a double is returned.
Both expressions are numeric | Division and a double is returned
Either expression is NULL | NULL is returned
right is empty and left is anything but empty | A com_exception with code DISP_E_DIVBYZERO is thrown
left is empty and right is anything but empty. | 0 as type double is returned
Both expressions are empty | A com_exception with code DISP_E_OVERFLOW is thrown

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • variant_idiv() - Converts variants to integers and then returns the result from dividing them


Performs a bitwise equivalence on two variants

  • « variant_div
  • variant_fix »
  • PHP Manual
  • COM Funções
  • Performs a bitwise equivalence on two variants

variant_eqv

(PHP 5, PHP 7, PHP 8)

variant_eqv — Performs a bitwise equivalence on two variants

Descrição

variant_eqv(mixed $left, mixed $right): variant

Performs a bitwise equivalence on two variants.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

If each bit in left is equal to the corresponding bit in right then true is returned, otherwise false is returned.

Erros/Exceções

Throws a com_exception on failure.


Returns the integer portion of a variant

  • « variant_eqv
  • variant_get_type »
  • PHP Manual
  • COM Funções
  • Returns the integer portion of a variant

variant_fix

(PHP 5, PHP 7, PHP 8)

variant_fix — Returns the integer portion of a variant

Descrição

variant_fix(mixed $value): variant

Gets the integer portion of a variant.

Parâmetros

value

The variant.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

If value is negative, then the first negative integer greater than or equal to the variant is returned, otherwise returns the integer portion of the value of value.

Erros/Exceções

Throws a com_exception on failure.

Notas

Aviso

This documentation is based on the MSDN documentation; it appears that this function is either the same as variant_int(), or that there is an error in the MSDN documentation.

Veja Também

  • variant_int() - Returns the integer portion of a variant
  • variant_round() - Rounds a variant to the specified number of decimal places
  • floor() - Arredonda frações para baixo
  • ceil() - Arredonda frações para cima
  • round() - Arredonda um float


Returns the type of a variant object

  • « variant_fix
  • variant_idiv »
  • PHP Manual
  • COM Funções
  • Returns the type of a variant object

variant_get_type

(PHP 5, PHP 7, PHP 8)

variant_get_type — Returns the type of a variant object

Descrição

variant_get_type(variant $variant): int

Returns the type of a variant object.

Parâmetros

variant

The variant object.

Valor Retornado

This function returns an integer value that indicates the type of variant, which can be an instance of com, dotnet or variant classes. The return value can be compared to one of the VT_XXX constants.

The return value for COM and DOTNET objects will usually be VT_DISPATCH; the only reason this function works for those classes is because COM and DOTNET are descendants of VARIANT.

Veja Também

  • variant_set_type() - Convert a variant into another type "in-place"


Converts variants to integers and then returns the result from dividing them

  • « variant_get_type
  • variant_imp »
  • PHP Manual
  • COM Funções
  • Converts variants to integers and then returns the result from dividing them

variant_idiv

(PHP 5, PHP 7, PHP 8)

variant_idiv — Converts variants to integers and then returns the result from dividing them

Descrição

variant_idiv(mixed $left, mixed $right): variant

Converts left and right to integer values, and then performs integer division.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Variant Integer Division Rules
If | Then
Both expressions are of the string, date, character, boolean type | Division and integer is returned
One expression is a string type and the other a character | Division
One expression is numeric and the other is a string | Division
Both expressions are numeric | Division
Either expression is NULL | NULL is returned
Both expressions are empty | A com_exception with code DISP_E_DIVBYZERO is thrown

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • variant_div() - Returns the result from dividing two variants


Performs a bitwise implication on two variants

  • « variant_idiv
  • variant_int »
  • PHP Manual
  • COM Funções
  • Performs a bitwise implication on two variants

variant_imp

(PHP 5, PHP 7, PHP 8)

variant_imp — Performs a bitwise implication on two variants

Descrição

variant_imp(mixed $left, mixed $right): variant

Performs a bitwise implication operation.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Variant Implication Table
If left is | If right is | then the result is
true | true | true
true | false | false
true | null | true
false | true | true
false | false | true
false | null | true
null | true | true
null | false | null
null | null | null

Erros/Exceções

Throws a com_exception on failure.


Returns the integer portion of a variant

  • « variant_imp
  • variant_mod »
  • PHP Manual
  • COM Funções
  • Returns the integer portion of a variant

variant_int

(PHP 5, PHP 7, PHP 8)

variant_int — Returns the integer portion of a variant

Descrição

variant_int(mixed $value): variant

Gets the integer portion of a variant.

Parâmetros

value

The variant.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

If value is negative, then the first negative integer greater than or equal to the variant is returned, otherwise returns the integer portion of the value of value.

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • variant_fix() - Returns the integer portion of a variant
  • variant_round() - Rounds a variant to the specified number of decimal places
  • floor() - Arredonda frações para baixo
  • ceil() - Arredonda frações para cima
  • round() - Arredonda um float


Divides two variants and returns only the remainder

  • « variant_int
  • variant_mul »
  • PHP Manual
  • COM Funções
  • Divides two variants and returns only the remainder

variant_mod

(PHP 5, PHP 7, PHP 8)

variant_mod — Divides two variants and returns only the remainder

Descrição

variant_mod(mixed $left, mixed $right): variant

Divides left by right and returns the remainder.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Returns the remainder of the division.

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • variant_div() - Returns the result from dividing two variants
  • variant_idiv() - Converts variants to integers and then returns the result from dividing them


Multiplies the values of the two variants

  • « variant_mod
  • variant_neg »
  • PHP Manual
  • COM Funções
  • Multiplies the values of the two variants

variant_mul

(PHP 5, PHP 7, PHP 8)

variant_mul — Multiplies the values of the two variants

Descrição

variant_mul(mixed $left, mixed $right): variant

Multiplies left by right.

Parâmetros

left

The left operand.

right

The right operand.

Boolean values are converted to -1 for false and 0 for true.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Variant Multiplication Rules
If | Then
Both expressions are of the string, date, character, boolean type | Multiplication
One expression is a string type and the other a character | Multiplication
One expression is numeric and the other is a string | Multiplication
Both expressions are numeric | Multiplication
Either expression is NULL | NULL is returned
Both expressions are empty | Empty string is returned

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • variant_div() - Returns the result from dividing two variants
  • variant_idiv() - Converts variants to integers and then returns the result from dividing them


Performs logical negation on a variant

  • « variant_mul
  • variant_not »
  • PHP Manual
  • COM Funções
  • Performs logical negation on a variant

variant_neg

(PHP 5, PHP 7, PHP 8)

variant_neg — Performs logical negation on a variant

Descrição

variant_neg(mixed $value): variant

Performs logical negation of value.

Parâmetros

value

The variant.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Returns the result of the logical negation.

Erros/Exceções

Throws a com_exception on failure.


Performs bitwise not negation on a variant

  • « variant_neg
  • variant_or »
  • PHP Manual
  • COM Funções
  • Performs bitwise not negation on a variant

variant_not

(PHP 5, PHP 7, PHP 8)

variant_not — Performs bitwise not negation on a variant

Descrição

variant_not(mixed $value): variant

Performs bitwise not negation on value and returns the result.

Parâmetros

value

The variant.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Returns the bitwise not negation. If value is null, the result will also be null.

Erros/Exceções

Throws a com_exception on failure.


Performs a logical disjunction on two variants

  • « variant_not
  • variant_pow »
  • PHP Manual
  • COM Funções
  • Performs a logical disjunction on two variants

variant_or

(PHP 5, PHP 7, PHP 8)

variant_or — Performs a logical disjunction on two variants

Descrição

variant_or(mixed $left, mixed $right): variant

Performs a bitwise OR operation. Note that this is slightly different from a regular OR operation.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Variant OR Rules
If left is | If right is | then the result is
true | true | true
true | false | true
true | null | true
false | true | true
false | false | false
false | null | null
null | true | true
null | false | null
null | null | null

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • variant_and() - Performs a bitwise AND operation between two variants
  • variant_xor() - Performs a logical exclusion on two variants


Returns the result of performing the power function with two variants

  • « variant_or
  • variant_round »
  • PHP Manual
  • COM Funções
  • Returns the result of performing the power function with two variants

variant_pow

(PHP 5, PHP 7, PHP 8)

variant_pow — Returns the result of performing the power function with two variants

Descrição

variant_pow(mixed $left, mixed $right): variant

Returns the result of left to the power of right.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Returns the result of left to the power of right.

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • pow() - Expressão exponencial


Rounds a variant to the specified number of decimal places

  • « variant_pow
  • variant_set_type »
  • PHP Manual
  • COM Funções
  • Rounds a variant to the specified number of decimal places

variant_round

(PHP 5, PHP 7, PHP 8)

variant_round — Rounds a variant to the specified number of decimal places

Descrição

variant_round(mixed $value, int $decimals): ?variant

Returns the value of value rounded to decimals decimal places.

Parâmetros

value

The variant.

decimals

Number of decimal places.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Returns the rounded value, or null on failure.

Veja Também

  • round() - Arredonda um float


Convert a variant into another type "in-place"

  • « variant_round
  • variant_set »
  • PHP Manual
  • COM Funções
  • Convert a variant into another type "in-place"

variant_set_type

(PHP 5, PHP 7, PHP 8)

variant_set_type — Convert a variant into another type "in-place"

Descrição

variant_set_type(variant $variant, int $type): void

This function is similar to variant_cast() except that the variant is modified "in-place"; no new variant is created. The parameters for this function have identical meaning to those of variant_cast().

Parâmetros

variant

The variant.

type

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • variant_cast() - Convert a variant into a new variant object of another type
  • variant_get_type() - Returns the type of a variant object


Assigns a new value for a variant object

  • « variant_set_type
  • variant_sub »
  • PHP Manual
  • COM Funções
  • Assigns a new value for a variant object

variant_set

(PHP 5, PHP 7, PHP 8)

variant_set — Assigns a new value for a variant object

Descrição

variant_set(variant $variant, mixed $value): void

Converts value to a variant and assigns it to the variant object; no new variant object is created, and the old value of variant is freed/released.

Parâmetros

variant

The variant.

value

Valor Retornado

Nenhum valor é retornado.


Subtracts the value of the right variant from the left variant value

  • « variant_set
  • variant_xor »
  • PHP Manual
  • COM Funções
  • Subtracts the value of the right variant from the left variant value

variant_sub

(PHP 5, PHP 7, PHP 8)

variant_sub — Subtracts the value of the right variant from the left variant value

Descrição

variant_sub(mixed $left, mixed $right): variant

Subtracts right from left.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Variant Subtraction Rules
If | Then
Both expressions are of the string type | Subtraction
One expression is a string type and the other a character | Subtraction
One expression is numeric and the other is a string | Subtraction.
Both expressions are numeric | Subtraction
Either expression is NULL | NULL is returned
Both expressions are empty | Empty string is returned

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • variant_add() - "Adds" two variant values together and returns the result


Performs a logical exclusion on two variants

  • « variant_sub
  • win32service »
  • PHP Manual
  • COM Funções
  • Performs a logical exclusion on two variants

variant_xor

(PHP 5, PHP 7, PHP 8)

variant_xor — Performs a logical exclusion on two variants

Descrição

variant_xor(mixed $left, mixed $right): variant

Performs a logical exclusion.

Parâmetros

left

The left operand.

right

The right operand.

Nota:

Assim como todas as funções aritméticas variantes, os parâmetros para esta função podem ser um tipo nativo do PHP (inteiro, string, ponto flutuante, booleano ou null) ou uma instância de uma classe COM, VARIANT ou DOTNET. Tipos nativos do PHP serão convertidos em variantes usando as mesmas regras encontradas no construtor da classe variant. Objetos COM e DOTNET terão o valor de sua propriedade padrão obtido e usado como o valor da variante.

As funções aritméticas variantes são wrappers para funções com nomes semelhantes na biblioteca COM; para mais informações sobre estas funções, consulte a biblioteca MSDN. As funções do PHP são nomeadas de forma ligeiramente diferente; por exemplo, variant_add() no PHP corresponde a VarAdd() na documentação da MSDN.

Valor Retornado

Variant XOR Rules
If left is | If right is | then the result is
true | true | false
true | false | true
false | true | true
false | false | false
null | null | null

Erros/Exceções

Throws a com_exception on failure.

Veja Também

  • variant_or() - Performs a logical disjunction on two variants
  • variant_and() - Performs a bitwise AND operation between two variants


win32service

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
    • Security consideration
  • Constantes pré-definidas
  • Win32ServiceException — The Win32ServiceException class
  • Exemplos
  • win32service Funções
    • win32_continue_service — Resumes a paused service
    • win32_create_service — Creates a new service entry in the SCM database
    • win32_delete_service — Deletes a service entry from the SCM database
    • win32_get_last_control_message — Returns the last control message that was sent to this service
    • win32_pause_service — Pauses a service
    • win32_query_service_status — Queries the status of a service
    • win32_send_custom_control — Send a custom control to the service
    • win32_set_service_exit_code — Define or return the exit code for the current running service
    • win32_set_service_exit_mode — Define or return the exit mode for the current running service
    • win32_set_service_status — Update the service status
    • win32_start_service_ctrl_dispatcher — Registers the script with the SCM, so that it can act as the service with the given name
    • win32_start_service — Starts a service
    • win32_stop_service — Stops a service


Introdução

The win32service extension is a Windows specific extension that allows PHP to communicate with the Service Control Manager to start, stop, register and unregister services, and even allows your PHP scripts to run as a service.


Instalação/Configuração

Índice

  • Dependências
  • Instalação
  • Configurações em Execução
  • Tipos de Recurso
  • Security consideration


Dependências

The versions of Windows supported are the same as the Visual C++ redistributable package used to build PHP.


Instalação

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/win32service


  • « Configurações em Execução
  • Security consideration »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


Security consideration

This extension needs administrator privileges for some actions such as create, delete, start, stop, pause and continue. This requirement can cause an elevation of privileges if the service control is available from the web interface or remote control.

You can set the ACL on the service after adding it into SCM to delegate the current administration tasks to an non administrator account or service account. For further instructions, see the » Microsoft Knowledge Base.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Win32Service Service Type Bitmasks
Constant | Value | Description
WIN32_SERVICE_WIN32_OWN_PROCESS | 0x00000010 | The service runs in its own process.
WIN32_SERVICE_INTERACTIVE_PROCESS | 0x00000100 | The service can interact with the desktop. This option is not available on Windows Vista or later.
WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE | 0x00000110 | The service runs in its own process and can interact with the desktop. This option is not available on Windows Vista or later.
Win32Service Service Status Constants
Constant | Value | Description
WIN32_SERVICE_CONTINUE_PENDING | 0x00000005 | The service continue is pending.
WIN32_SERVICE_PAUSE_PENDING | 0x00000006 | The service pause is pending.
WIN32_SERVICE_PAUSED | 0x00000007 | The service is paused.
WIN32_SERVICE_RUNNING | 0x00000004 | The service is running.
WIN32_SERVICE_START_PENDING | 0x00000002 | The service is starting.
WIN32_SERVICE_STOP_PENDING | 0x00000003 | The service is stopping.
WIN32_SERVICE_STOPPED | 0x00000001 | The service is not running.
Win32Service Service Control Message Constants
Constant | Value | Description
WIN32_SERVICE_CONTROL_CONTINUE | 0x00000003 | Notifies a paused service that it should resume.
WIN32_SERVICE_CONTROL_DEVICEEVENT | 0x0000000B |
WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE | 0x0000000C |
WIN32_SERVICE_CONTROL_INTERROGATE | 0x00000004 | Notifies a service that it should report its current status information to the service control manager.
WIN32_SERVICE_CONTROL_NETBINDADD | 0x00000007 | Notifies a network service that there is a new component for binding.
WIN32_SERVICE_CONTROL_NETBINDDISABLE | 0x0000000A | Notifies a network service that one of its bindings has been disabled.
WIN32_SERVICE_CONTROL_NETBINDENABLE | 0x00000009 | Notifies a network service that a disabled binding has been enabled.
WIN32_SERVICE_CONTROL_NETBINDREMOVE | 0x00000008 | Notifies a network service that a component for binding has been removed.
WIN32_SERVICE_CONTROL_PARAMCHANGE | 0x00000006 | Notifies a service that its startup parameters have changed.
WIN32_SERVICE_CONTROL_PAUSE | 0x00000002 | Notifies a service that it should pause.
WIN32_SERVICE_CONTROL_POWEREVENT | 0x0000000D |
WIN32_SERVICE_CONTROL_PRESHUTDOWN | 0x0000000F | Notifies a service that the system will be shutting down. A service that handles this notification blocks system shutdown until the service stops or the preshutdown time-out interval expires. This value is not supported by Windows Server 2003 and Windows XP/2000.
WIN32_SERVICE_CONTROL_SESSIONCHANGE | 0x0000000E |
WIN32_SERVICE_CONTROL_SHUTDOWN | 0x00000005 | Notifies a service that the system is shutting down so the service can perform cleanup tasks. If a service accepts this control code, it must stop after it performs its cleanup tasks. After the SCM sends this control code, it will not send other control codes to the service.
WIN32_SERVICE_CONTROL_STOP | 0x00000001 | Notifies a service that it should stop.
Win32Service Service Control Message Accepted Bitmasks
Constant | Value | Description
WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE | 0x00000020 | The service is notified when the computer's hardware profile has changed. This enables the system to send WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE notifications to the service.
WIN32_SERVICE_ACCEPT_NETBINDCHANGE | 0x00000010 | The service is a network component that can accept changes in its binding without being stopped and restarted. This control code allows the service to receive WIN32_SERVICE_CONTROL_NETBINDADD, WIN32_SERVICE_CONTROL_NETBINDREMOVE, WIN32_SERVICE_CONTROL_NETBINDENABLE, and WIN32_SERVICE_CONTROL_NETBINDDISABLE notifications.
WIN32_SERVICE_ACCEPT_PARAMCHANGE | 0x00000008 | The service can reread its startup parameters without being stopped and restarted. This control code allows the service to receive WIN32_SERVICE_CONTROL_PARAMCHANGE notifications.
WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE | 0x00000002 | The service can be paused and continued. This control code allows the service to receive WIN32_SERVICE_CONTROL_PAUSE and WIN32_SERVICE_CONTROL_CONTINUE notifications.
WIN32_SERVICE_ACCEPT_POWEREVENT | 0x00000040 | The service is notified when the computer's power status has changed. This enables the system to send WIN32_SERVICE_CONTROL_POWEREVENT notifications to the service.
WIN32_SERVICE_ACCEPT_PRESHUTDOWN | 0x00000100 | The service can perform preshutdown tasks. This control code enables the service to receive WIN32_SERVICE_CONTROL_PRESHUTDOWN notifications. This value is not supported by Windows Server 2003 and Windows XP/2000.
WIN32_SERVICE_ACCEPT_SESSIONCHANGE | 0x00000080 | The service is notified when the computer's session status has changed. This enables the system to send WIN32_SERVICE_CONTROL_SESSIONCHANGE notifications to the service. Windows 2000: This value is not supported
WIN32_SERVICE_ACCEPT_SHUTDOWN | 0x00000004 | The service is notified when system shutdown occurs. This control code allows the service to receive WIN32_SERVICE_CONTROL_SHUTDOWN notifications.
WIN32_SERVICE_ACCEPT_STOP | 0x00000001 | The service can be stopped. This control code allows the service to receive WIN32_SERVICE_CONTROL_STOP notifications.
WIN32_SERVICE_ACCEPT_TIMECHANGE | 0x00000200 | The service is notified when the system time has changed. This enables the system to send WIN32_SERVICE_CONTROL_TIMECHANGE notifications to the service. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000: This control code is not supported.
WIN32_SERVICE_ACCEPT_TRIGGEREVENT | 0x00000400 | The service is notified when an event for which the service has registered occurs. This enables the system to send WIN32_SERVICE_CONTROL_TRIGGEREVENT notifications to the service. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000: This control code is not supported.
Win32Service Service Start Type Constants
Constant | Value | Description
WIN32_SERVICE_BOOT_START | 0x00000000 | A device driver started by the system loader. This value is valid only for driver services.
WIN32_SERVICE_SYSTEM_START | 0x00000001 | A device driver started by the IoInitSystem function. This value is valid only for driver services.
WIN32_SERVICE_AUTO_START | 0x00000002 | A service started automatically by the service control manager during system startup.
WIN32_SERVICE_DEMAND_START | 0x00000003 | A service started by the service control manager when a process calls the StartService function.
WIN32_SERVICE_DISABLED | 0x00000004 | A service that cannot be started. Attempts to start the service result in the error code WIN32_ERROR_SERVICE_DISABLED.
Win32Service Service Error Control Constants
Constant | Value | Description
WIN32_SERVICE_ERROR_IGNORE | 0x00000000 | The startup program ignores the error and continues the startup operation.
WIN32_SERVICE_ERROR_NORMAL | 0x00000001 | The startup program logs the error in the event log but continues the startup operation.
WIN32_SERVICE_ERROR_SEVERE | 0x00000002 | The startup program logs the error in the event log. If the last-known-good configuration is being started, the startup operation continues. Otherwise, the system is restarted with the last-known-good configuration.
WIN32_SERVICE_ERROR_CRITICAL | 0x00000003 | The startup program logs the error in the event log, if possible. If the last-known-good configuration is being started, the startup operation fails. Otherwise, the system is restarted with the last-known good configuration.
Win32Service Service Flag Constants
Constant | Value | Description
WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS | 0x00000001 | The service runs in a system process that must always be running.

Nota:

These constants are no longer in use as of Win32Service 1.0.0.

Win32 Error Codes
Constant | Value | Description
WIN32_ERROR_ACCESS_DENIED | 0x00000005 | The handle to the SCM database does not have the appropriate access rights.
WIN32_ERROR_CIRCULAR_DEPENDENCY | 0x00000423 | A circular service dependency was specified.
WIN32_ERROR_DATABASE_DOES_NOT_EXIST | 0x00000429 | The specified database does not exist.
WIN32_ERROR_DEPENDENT_SERVICES_RUNNING | 0x0000041B | The service cannot be stopped because other running services are dependent on it.
WIN32_ERROR_DUPLICATE_SERVICE_NAME | 0x00000436 | The display name already exists in the service control manager database either as a service name or as another display name.
WIN32_ERROR_FAILED_SERVICE_CONTROLLER_CONNECT | 0x00000427 | This error is returned if the program is being run as a console application rather than as a service. If the program will be run as a console application for debugging purposes, structure it such that service-specific code is not called.
WIN32_ERROR_INSUFFICIENT_BUFFER | 0x0000007A | The buffer is too small for the service status structure. Nothing was written to the structure.
WIN32_ERROR_INVALID_DATA | 0x0000000D | The specified service status structure is invalid.
WIN32_ERROR_INVALID_HANDLE | 0x00000006 | The handle to the specified service control manager database is invalid.
WIN32_ERROR_INVALID_LEVEL | 0x0000007C | The InfoLevel parameter contains an unsupported value.
WIN32_ERROR_INVALID_NAME | 0x0000007B | The specified service name is invalid.
WIN32_ERROR_INVALID_PARAMETER | 0x00000057 | A parameter that was specified is invalid.
WIN32_ERROR_INVALID_SERVICE_ACCOUNT | 0x00000421 | The user account name specified in the user parameter does not exist. See win32_create_service().
WIN32_ERROR_INVALID_SERVICE_CONTROL | 0x0000041C | The requested control code is not valid, or it is unacceptable to the service.
WIN32_ERROR_PATH_NOT_FOUND | 0x00000003 | The service binary file could not be found.
WIN32_ERROR_SERVICE_ALREADY_RUNNING | 0x00000420 | An instance of the service is already running.
WIN32_ERROR_SERVICE_CANNOT_ACCEPT_CTRL | 0x00000425 | The requested control code cannot be sent to the service because the state of the service is WIN32_SERVICE_STOPPED, WIN32_SERVICE_START_PENDING, or WIN32_SERVICE_STOP_PENDING.
WIN32_ERROR_SERVICE_DATABASE_LOCKED | 0x0000041F | The database is locked.
WIN32_ERROR_SERVICE_DEPENDENCY_DELETED | 0x00000433 | The service depends on a service that does not exist or has been marked for deletion.
WIN32_ERROR_SERVICE_DEPENDENCY_FAIL | 0x0000042C | The service depends on another service that has failed to start.
WIN32_ERROR_SERVICE_DISABLED | 0x00000422 | The service has been disabled.
WIN32_ERROR_SERVICE_DOES_NOT_EXIST | 0x00000424 | The specified service does not exist as an installed service.
WIN32_ERROR_SERVICE_EXISTS | 0x00000431 | The specified service already exists in this database.
WIN32_ERROR_SERVICE_LOGON_FAILED | 0x0000042D | The service did not start due to a logon failure. This error occurs if the service is configured to run under an account that does not have the "Log on as a service" right.
WIN32_ERROR_SERVICE_MARKED_FOR_DELETE | 0x00000430 | The specified service has already been marked for deletion.
WIN32_ERROR_SERVICE_NO_THREAD | 0x0000041E | A thread could not be created for the service.
WIN32_ERROR_SERVICE_NOT_ACTIVE | 0x00000426 | The service has not been started.
WIN32_ERROR_SERVICE_REQUEST_TIMEOUT | 0x0000041D | The process for the service was started, but it did not call StartServiceCtrlDispatcher, or the thread that called StartServiceCtrlDispatcher may be blocked in a control handler function.
WIN32_ERROR_SHUTDOWN_IN_PROGRESS | 0x0000045B | The system is shutting down; this function cannot be called.
WIN32_ERROR_SERVICE_SPECIFIC_ERROR | 0x0000042A | The service has returned a service-specific error code.
WIN32_NO_ERROR | 0x00000000 | No error.
Win32 Base Priority Classes
Constant | Value | Description
WIN32_ABOVE_NORMAL_PRIORITY_CLASS | 0x00008000 | Process that has priority above WIN32_NORMAL_PRIORITY_CLASS but below WIN32_HIGH_PRIORITY_CLASS.
WIN32_BELOW_NORMAL_PRIORITY_CLASS | 0x00004000 | Process that has priority above WIN32_IDLE_PRIORITY_CLASS but below WIN32_NORMAL_PRIORITY_CLASS.
WIN32_HIGH_PRIORITY_CLASS | 0x00000080 | Process that performs time-critical tasks that must be executed immediately. The threads of the process preempt the threads of normal or idle priority class processes. An example is the Task List, which must respond quickly when called by the user, regardless of the load on the operating system. Use extreme care when using the high-priority class, because a high-priority class application can use nearly all available CPU time.
WIN32_IDLE_PRIORITY_CLASS | 0x00000040 | Process whose threads run only when the system is idle. The threads of the process are preempted by the threads of any process running in a higher priority class. An example is a screen saver. The idle-priority class is inherited by child processes.
WIN32_NORMAL_PRIORITY_CLASS | 0x00000020 | Process with no special scheduling needs.
WIN32_REALTIME_PRIORITY_CLASS | 0x00000100 | Process that has the highest possible priority. The threads of the process preempt the threads of all other processes, including operating system processes performing important tasks. For example, a real-time process that executes for more than a very brief interval can cause disk caches not to flush or cause the mouse to be unresponsive.
Win32 Recovery action
Constant | Value | Description
WIN32_SC_ACTION_NONE | 0x00000000 | No action.
WIN32_SC_ACTION_RESTART | 0x00000001 | Restart the service.
WIN32_SC_ACTION_REBOOT | 0x00000002 | Restart the server.
WIN32_SC_ACTION_RUN_COMMAND | 0x00000003 | Run a command.
Win32 Service informations
Constant | Value | Description
WIN32_INFO_SERVICE | "service" |
WIN32_INFO_DISPLAY | "display" |
WIN32_INFO_USER | "user" |
WIN32_INFO_PASSWORD | "password" |
WIN32_INFO_PATH | "path" |
WIN32_INFO_PARAMS | "params" |
WIN32_INFO_DESCRIPTION | "description" |
WIN32_INFO_START_TYPE | "start_type" |
INFO_LOAD_ORDER | "load_order" |
INFO_SVC_TYPE | "svc_type" |
INFO_ERROR_CONTROL | "error_control" |
INFO_DELAYED_START | "delayed_start" |
INFO_BASE_PRIORITY | "base_priority" |
INFO_DEPENDENCIES | "dependencies" |
INFO_RECOVERY_DELAY | "recovery_delay" |
INFO_RECOVERY_ACTION_1 | "recovery_action_1" |
INFO_RECOVERY_ACTION_2 | "recovery_action_2" |
INFO_RECOVERY_ACTION_3 | "recovery_action_3" |
INFO_RECOVERY_RESET_PERIOD | "recovery_reset_period" |
INFO_RECOVERY_ENABLED | "recovery_enabled" |
INFO_RECOVERY_REBOOT_MSG | "recovery_reboot_msg" |
INFO_RECOVERY_COMMAND | "recovery_command" |


The Win32ServiceException class

(PECL win32service >=1.0.0)

Introdução

The exception replaces the old mechanism where the error value needed to be compared to constants to detect which error was emitted. The Exception code is equal to the value of the error value and the exception message is based on the corresponding constant name.

Resumo da classe

class Win32ServiceException extends Exception {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Exemplos

Exemplo #1 Registering a PHP script to run as a service

<?php
win32_create_service(array(
'service' => 'dummyphp', # the name of your service
'display' => 'sample dummy PHP service', # short description
'description' => 'This is a dummy Windows service created using PHP.', # long description
'params' => '"' . __FILE__ . '" run', # path to the script and parameters
));
?>

Exemplo #2 Unregistering a service

<?php
win32_delete_service('dummyphp');
?>

Exemplo #3 Running as a service

<?php
if ($argv[1] == 'run') {
win32_start_service_ctrl_dispatcher('dummyphp');

while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
# do your work here.
# try not to take up more than 30 seconds before going around the loop
# again
}
}
?>


win32service Funções

Índice

  • win32_continue_service — Resumes a paused service
  • win32_create_service — Creates a new service entry in the SCM database
  • win32_delete_service — Deletes a service entry from the SCM database
  • win32_get_last_control_message — Returns the last control message that was sent to this service
  • win32_pause_service — Pauses a service
  • win32_query_service_status — Queries the status of a service
  • win32_send_custom_control — Send a custom control to the service
  • win32_set_service_exit_code — Define or return the exit code for the current running service
  • win32_set_service_exit_mode — Define or return the exit mode for the current running service
  • win32_set_service_status — Update the service status
  • win32_start_service_ctrl_dispatcher — Registers the script with the SCM, so that it can act as the service with the given name
  • win32_start_service — Starts a service
  • win32_stop_service — Stops a service


Resumes a paused service

  • « win32service Funções
  • win32_create_service »
  • PHP Manual
  • win32service Funções
  • Resumes a paused service

win32_continue_service

(PECL win32service >=0.1.0)

win32_continue_service — Resumes a paused service

Descrição

win32_continue_service(string $servicename, string $machine = ?): void

Resumes a paused, named service. Requires administrative privileges or an account with appropriate rights set in the service's ACL.

Parâmetros

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Valor Retornado

Nenhum valor é retornado.

Prior to version 1.0.0, retornava WIN32_NO_ERROR em caso de sucesso, false se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.

Erros/Exceções

A ValueError is thrown if the value of servicename parameter is empty.

A Win32ServiceException is thrown on error.

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.3.0 | This function does not longer require an administrator account if ACL is set for another account.

Veja Também

  • win32_start_service() - Starts a service
  • win32_stop_service() - Stops a service
  • win32_pause_service() - Pauses a service
  • win32_send_custom_control() - Send a custom control to the service
  • Win32 Error Codes


Creates a new service entry in the SCM database

  • « win32_continue_service
  • win32_delete_service »
  • PHP Manual
  • win32service Funções
  • Creates a new service entry in the SCM database

win32_create_service

(PECL win32service >=0.1.0)

win32_create_service — Creates a new service entry in the SCM database

Descrição

win32_create_service(array $details, string $machine = ?): void

Attempts to add a service into the SCM database. Administrative privileges are required for this to succeed.

Parâmetros

details

An array of service details:

service

The short name of the service. This is the name that you will use to control the service using the net command. The service must be unique (no two services can share the same name), and, ideally, should avoid having spaces in the name.

display

The display name of the service. This is the name that you will see in the Services Applet.

description

The long description of the service. This is the description that you will see in the Services Applet.

user

The name of the user account under which you want the service to run. If omitted, the service will run as the LocalSystem account. If the username is specified, you must also provide a password.

password

The password that corresponds to the user.

path

The full path to the executable module that will be launched when the service is started. If omitted, the path to the current PHP process will be used.

params

Command line parameters to pass to the service when it starts. If you want to run a PHP script as the service, then the first parameter should be the full path to the PHP script that you intend to run. If the script name or path contains spaces, then wrap the full path to the PHP script with ".

load_order

Controls the load_order. This is not yet fully supported.

svc_type

Sets the service type. If omitted, the default value is WIN32_SERVICE_WIN32_OWN_PROCESS. Don't change this unless you know what you're doing.

start_type

Specifies how the service should be started. The default is WIN32_SERVICE_AUTO_START which means the service will be launched when the machine starts up.

error_control

Informs the SCM what it should do when it detects a problem with the service. The default is WIN32_SERVER_ERROR_IGNORE. Changing this value is not yet fully supported.

delayed_start

If delayed_start is set to true, then this will inform the SCM that this service should be started after other auto-start services are started plus a short delay.

Any service can be marked as a delayed auto-start service; however, this setting has no effect unless the service's start_type is WIN32_SERVICE_AUTO_START.

This setting is only applicable on Windows Vista and Windows Server 2008 or greater.

base_priority

To reduce the impact on processor utilisation, it may be necessary to set a base priority lower than normal.

The base_priority can be set to one of the constants define in Win32 Base Priority Classes.

dependencies

To define the dependencies for your service, it may be necessary to set this parameter to the list of the services names in an array.

recovery_delay

This parameter defines the delay between the fail and the execution of recovery action. The value is in milliseconds.

The default value is 60000.

recovery_action_1

The action will be executed on first failure. The default value is WIN32_SC_ACTION_NONE.

The recovery_action_1 can be set to one of the constants defined in Win32 Recovery action.

recovery_action_2

The action will be executed on second failure. The default value is WIN32_SC_ACTION_NONE.

The recovery_action_2 can be set to one of the constants defined in Win32 Recovery action.

recovery_action_3

The action will be executed on next failures. The default value is WIN32_SC_ACTION_NONE.

The recovery_action_3 can be set to one of the constants defined in Win32 Recovery action.

recovery_reset_period

The failure count will be reset after the delay defined in the parameter. The delay is expirement in seconds.

The default value is 86400.

recovery_enabled

Set this parameter at true to enable the recovery settings, false to disable.

The default value is false

recovery_reboot_msg

Set this parameter to define the message saved into the Windows Event Log before the reboot. Used only if one action is set to WIN32_SC_ACTION_REBOOT.

recovery_command

Set this parameter to define the command executed when one action is defined on WIN32_SC_ACTION_RUN_COMMAND.

machine

The optional machine name on which you want to create a service. If omitted, it will use the local machine.

Valor Retornado

Nenhum valor é retornado.

Prior to version 1.0.0, retornava WIN32_NO_ERROR em caso de sucesso, false se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.

Erros/Exceções

A ValueError is thrown if the value of service parameter is empty.

A ValueError is thrown if the value of path parameter is missing or empty.

A ValueError is thrown if the value of svc_type parameter is wrong.

A ValueError is thrown if the value of start_type parameter is wrong.

A ValueError is thrown if the value of error_control parameter is wrong.

A ValueError is thrown if the value of base_priority parameter is wrong.

A ValueError is thrown if the value of recovery_delay parameter is not between 0 and PHP_INT_MAX.

A ValueError is thrown if the value of recovery_action_1 parameter is wrong.

A ValueError is thrown if the value of recovery_action_2 parameter is wrong.

A ValueError is thrown if the value of recovery_action_3 parameter is wrong.

A ValueError is thrown if the value of recovery_reset_period parameter is not between 0 and PHP_INT_MAX.

A Win32ServiceException is thrown on error.

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.4.0 | The dependencies, recovery_delay, recovery_action_1, recovery_action_2, recovery_action_3, recovery_reset_period, recovery_enabled, recovery_reboot_msg and recovery_command parameters have been added.

Exemplos

Exemplo #1 A win32_create_service() example

Create a service with the short name 'dummyphp'.

<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // the name of your service
'display' => 'sample dummy PHP service', // short description
'description' => 'This is a dummy Windows service created using PHP.', // long description
'params' => '"' . __FILE__ . '" run', // path to the script and parameters
));
debug_zval_dump($x);
?>

Exemplo #2 A win32_create_service() example with dependencies

Create a service with the short name 'dummyphp' and dependencies.

<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // the name of your service
'display' => 'sample dummy PHP service', // short description
'description' => 'This is a dummy Windows service created using PHP.', // long description
'params' => '"' . __FILE__ . '" run', // path to the script and parameters
'dependencies' => array("Netman"), // The list of the dependencies
));
debug_zval_dump($x);
?>

Exemplo #3 A win32_create_service() example with recovery

Create a service with the short name 'dummyphp' and recovery settings.

<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // the name of your service
'display' => 'sample dummy PHP service', // short description
'description' => 'This is a dummy Windows service created using PHP.', // long description
'params' => '"' . __FILE__ . '" run', // path to the script and parameters
'recovery_delay' => 120000, // Recovery action is executed after 2 minutes
'recovery_action_1' => WIN32_SC_ACTION_RESTART, // On first failure, restart the service
'recovery_action_2' => WIN32_SC_ACTION_RUN_COMMAND, // On second failure, execute the commmand
'recovery_action_3' => WIN32_SC_ACTION_NONE, // On other failure, do nothing
'recovery_reset_period' => 86400, // Reset the fail counter after 1 day
'recovery_enabled' => true, // Enable the recovery parameter
'recovery_reboot_msg' => null, // Do not define a reboot message, it's not needed here
'recovery_command' => "c:\clean-service.bat", // When the action is WIN32_SC_ACTION_RUN_COMMAND, execute this command
));
debug_zval_dump($x);
?>

Veja Também

  • win32_delete_service() - Deletes a service entry from the SCM database
  • Win32 Base Priority Classes
  • Win32 Recovery action
  • Win32 Error Codes


Deletes a service entry from the SCM database

  • « win32_create_service
  • win32_get_last_control_message »
  • PHP Manual
  • win32service Funções
  • Deletes a service entry from the SCM database

win32_delete_service

(PECL win32service >=0.1.0)

win32_delete_service — Deletes a service entry from the SCM database

Descrição

win32_delete_service(string $servicename, string $machine = ?): void

Attempts to delete a service from the SCM database. Administrative privileges are required for this to succeed.

This function really just marks the service for deletion. If other processes (such as the Services Applet) are open, then the deletion will be deferred until those applications are closed. If a service is marked for deletion, further attempts to delete it will fail, and attempts to create a new service with that name will also fail.

Parâmetros

servicename

The short name of the service.

machine

The optional machine name. If omitted, the local machine will be used.

Valor Retornado

Nenhum valor é retornado.

Prior to version 1.0.0, retornava WIN32_NO_ERROR em caso de sucesso, false se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.

Erros/Exceções

A ValueError is thrown if the value of servicename parameter is empty.

A Win32ServiceException is thrown on error.

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.

Exemplos

Exemplo #1 A win32_delete_service() example

Deletes the dummyphp service.

<?php
win32_delete_service('dummyphp');
?>

Veja Também

  • win32_create_service() - Creates a new service entry in the SCM database
  • Win32 Error Codes


Returns the last control message that was sent to this service

  • « win32_delete_service
  • win32_pause_service »
  • PHP Manual
  • win32service Funções
  • Returns the last control message that was sent to this service

win32_get_last_control_message

(PECL win32service >=0.1.0)

win32_get_last_control_message — Returns the last control message that was sent to this service

Descrição

win32_get_last_control_message(): int

Returns the control code that was last sent to this service process. When running as a service you should periodically check this to determine if your service needs to stop running.

Cuidado

Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a control constant which will be one of the Win32Service Service Control Message Constants: WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_DEVICEEVENT, WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_NETBINDADD, WIN32_SERVICE_CONTROL_NETBINDDISABLE, WIN32_SERVICE_CONTROL_NETBINDENABLE, WIN32_SERVICE_CONTROL_NETBINDREMOVE, WIN32_SERVICE_CONTROL_PARAMCHANGE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_POWEREVENT, WIN32_SERVICE_CONTROL_PRESHUTDOWN, WIN32_SERVICE_CONTROL_SESSIONCHANGE, WIN32_SERVICE_CONTROL_SHUTDOWN, WIN32_SERVICE_CONTROL_STOP.

If the value is between 128 and 255, the control code is custom.

Erros/Exceções

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 0.2.0 | This function works only in the "cli" SAPI.

Veja Também

  • win32_start_service_ctrl_dispatcher() - Registers the script with the SCM, so that it can act as the service with the given name
  • win32_set_service_status() - Update the service status
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service
  • win32_set_service_exit_code() - Define or return the exit code for the current running service
  • Win32Service Service Control Message Constants


Pauses a service

  • « win32_get_last_control_message
  • win32_query_service_status »
  • PHP Manual
  • win32service Funções
  • Pauses a service

win32_pause_service

(PECL win32service >=0.1.0)

win32_pause_service — Pauses a service

Descrição

win32_pause_service(string $servicename, string $machine = ?): void

Pauses a named service. Requires administrative privileges or an account with appropriate rights set in the service's ACL.

Parâmetros

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Valor Retornado

Nenhum valor é retornado.

Prior to version 1.0.0, retornava WIN32_NO_ERROR em caso de sucesso, false se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.

Erros/Exceções

A ValueError is thrown if the value of servicename parameter is empty.

A Win32ServiceException is thrown on error.

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.3.0 | This function does not longer require an administrator account if ACL is set for another account.

Veja Também

  • win32_start_service() - Starts a service
  • win32_stop_service() - Stops a service
  • win32_continue_service() - Resumes a paused service
  • win32_send_custom_control() - Send a custom control to the service
  • Win32 Error Codes


Queries the status of a service

  • « win32_pause_service
  • win32_send_custom_control »
  • PHP Manual
  • win32service Funções
  • Queries the status of a service

win32_query_service_status

(PECL win32service >=0.1.0)

win32_query_service_status — Queries the status of a service

Descrição

win32_query_service_status(string $servicename, string $machine = ?): array

Queries the current status for a service, returning an array of information.

Parâmetros

servicename

The short name of the service.

machine

The optional machine name. If omitted, the local machine will be used.

Valor Retornado

Returns an array consisting of the following information on success

Prior version 1.0.0, false se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.

ServiceType

The dwServiceType. See Win32Service Service Type Bitmasks.

CurrentState

The dwCurrentState. See Win32Service Service Status Constants.

ControlsAccepted

Which service controls are accepted by the service. See Win32Service Service Control Message Accepted Bitmasks.

Win32ExitCode

If the service exited, the return code from the process. This value is equal to WIN32_ERROR_SERVICE_SPECIFIC_ERROR if the exit mode is not gracefuly. See Win32Service error codes and win32_set_service_exit_mode()

ServiceSpecificExitCode

If the service exited with an error condition, the service specific code that is logged in the event log is visible here. This value is equal to the value defined by win32_set_service_exit_code()

CheckPoint

If the service is shutting down, holds the current check point number. This is used by the SCM as a kind of heart-beat to detect a wedged service process. The value of the check point is best interpreted in conjunction with the WaitHint value.

WaitHint

If the service is shutting down it will set WaitHint to a checkpoint value that will indicate 100% completion. This can be used to implement a progress indicator.

ProcessId

The Windows process identifier. If 0, the process is not running.

ServiceFlags

The dwServiceFlags. See Win32Service Service Flag Constants.

Erros/Exceções

A ValueError is thrown if the value of servicename parameter is empty.

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now array, previously it was mixed.

Veja Também

  • Win32Service Predefined Constants


Send a custom control to the service

  • « win32_query_service_status
  • win32_set_service_exit_code »
  • PHP Manual
  • win32service Funções
  • Send a custom control to the service

win32_send_custom_control

(PECL win32service >=0.4.0)

win32_send_custom_control — Send a custom control to the service

Descrição

win32_send_custom_control(string $servicename, int $control, string $machine = ?): void

See » Microsoft ControlService function for more details

Parâmetros

servicename

The short name of the service.

control

The custom contole value between 128 and 255.

machine

Optional machine name. If omitted, the local machine is used.

Valor Retornado

Nenhum valor é retornado.

Prior to version 1.0.0, retornava WIN32_NO_ERROR em caso de sucesso, false se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.

Erros/Exceções

Prior to version 1.0.0, if the control value is not between 128 and 255, this function emits an E_ERROR level error.

A ValueError is thrown if the value of servicename parameter is empty.

A ValueError is thrown if the value of control parameter is not between 128 and 255.

A Win32ServiceException is thrown on error.

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.

Veja Também

  • win32_start_service() - Starts a service
  • win32_stop_service() - Stops a service
  • win32_pause_service() - Pauses a service
  • win32_continue_service() - Resumes a paused service
  • Win32 Error Codes


Define or return the exit code for the current running service

  • « win32_send_custom_control
  • win32_set_service_exit_mode »
  • PHP Manual
  • win32service Funções
  • Define or return the exit code for the current running service

win32_set_service_exit_code

(PECL win32service >=0.4.0)

win32_set_service_exit_code — Define or return the exit code for the current running service

Descrição

win32_set_service_exit_code(int $exitCode = 1): int

Change or return the exit code. The exit code is used only if the exit mode is not graceful. If the value is not zero, the recovery configuration can be used after service fail. See » Microsoft system error codes for more details

Cuidado

This function work only in "cli" SAPI. On other SAPI this function is disabled.

Parâmetros

exitCode

The return code used on exit.

Valor Retornado

Return the current or old exit code.

Erros/Exceções

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.

Veja Também

  • win32_start_service_ctrl_dispatcher() - Registers the script with the SCM, so that it can act as the service with the given name
  • win32_set_service_status() - Update the service status
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service


Define or return the exit mode for the current running service

  • « win32_set_service_exit_code
  • win32_set_service_status »
  • PHP Manual
  • win32service Funções
  • Define or return the exit mode for the current running service

win32_set_service_exit_mode

(PECL win32service >=0.4.0)

win32_set_service_exit_mode — Define or return the exit mode for the current running service

Descrição

win32_set_service_exit_mode(bool $gracefulMode = true): bool

If gracefulMode parameter is provided, the exit mode is changed. When the exit mode is not gracefuly, the exit code used can be set with the win32_set_service_exit_code() function.

Cuidado

This function work only in "cli" SAPI. On other SAPI this function is disabled.

Parâmetros

gracefulMode

true for exit graceful. false for exit with error.

Valor Retornado

Return the current or old exit mode.

Erros/Exceções

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.

Veja Também

  • win32_start_service_ctrl_dispatcher() - Registers the script with the SCM, so that it can act as the service with the given name
  • win32_set_service_status() - Update the service status
  • win32_set_service_exit_code() - Define or return the exit code for the current running service


Update the service status

  • « win32_set_service_exit_mode
  • win32_start_service_ctrl_dispatcher »
  • PHP Manual
  • win32service Funções
  • Update the service status

win32_set_service_status

(PECL win32service >=0.1.0)

win32_set_service_status — Update the service status

Descrição

win32_set_service_status(int $status, int $checkpoint = 0): void

Informs the SCM of the current status of a running service. This call is only valid for a running service process.

Cuidado

Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.

Parâmetros

status

The service status code, one of WIN32_SERVICE_RUNNING, WIN32_SERVICE_STOPPED, WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING, WIN32_SERVICE_PAUSE_PENDING, WIN32_SERVICE_PAUSED.

checkpoint

The checkpoint value the service increments periodically to report its progress during a lengthy start, stop, pause, or continue operation. For example, the service should increment this value as it completes each step of its initialization when it is starting up.

The checkpoint is only valid when the status is one of WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING or WIN32_SERVICE_PAUSE_PENDING.

Valor Retornado

Nenhum valor é retornado.

Prior to version 1.0.0, retornava WIN32_NO_ERROR em caso de sucesso, false se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.

Erros/Exceções

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.2.0 | This function works only in the "cli" SAPI.

Veja Também

  • win32_start_service_ctrl_dispatcher() - Registers the script with the SCM, so that it can act as the service with the given name
  • win32_get_last_control_message() - Returns the last control message that was sent to this service
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service
  • win32_set_service_exit_code() - Define or return the exit code for the current running service
  • Win32Service Service Status Constants


Registers the script with the SCM, so that it can act as the service with the given name

  • « win32_set_service_status
  • win32_start_service »
  • PHP Manual
  • win32service Funções
  • Registers the script with the SCM, so that it can act as the service with the given name

win32_start_service_ctrl_dispatcher

(PECL win32service >=0.1.0)

win32_start_service_ctrl_dispatcher — Registers the script with the SCM, so that it can act as the service with the given name

Descrição

win32_start_service_ctrl_dispatcher(string $name, bool $gracefulMode = true): void

When launched via the Service Control Manager, a service process is required to "check-in" with it to establish service monitoring and communication facilities. This function performs the check-in by spawning a thread to handle the lower-level communication with the service control manager.

Once started, the service process should do 2 things. The first is to tell the Service Control Manager that the service is running. This is achieved by calling win32_set_service_status() with the WIN32_SERVICE_RUNNING constant. If you need to perform some lengthy process before the service is actually running, then you can use the WIN32_SERVICE_START_PENDING constant. The second is to continue to check-in with the service control manager so that it can determine if it should terminate. This is achieved by periodically calling win32_get_last_control_message() and handling the return code appropriately.

Cuidado

Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.

Parâmetros

name

The short-name of the service, as registered by win32_create_service().

gracefulMode

true for exit graceful. false for exit with error. See win32_set_service_exit_mode() for more details.

Valor Retornado

Nenhum valor é retornado.

Prior to version 1.0.0, retornava WIN32_NO_ERROR em caso de sucesso, false se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.

Erros/Exceções

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.4.0 | The parameter gracefulMode has been added.
PECL win32service 0.2.0 | This function works only in the "cli" SAPI.

Exemplos

Exemplo #1 A win32_start_service_ctrl_dispatcher() example

Check if the service is runnig under the SCM.

<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
die("I'm probably not running under the service control manager");
}

win32_set_service_status(WIN32_SERVICE_START_PENDING);

// Some lengthy process to get this service up and running.

win32_set_service_status(WIN32_SERVICE_RUNNING);

while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
# do some work here, trying not to take more than around 30 seconds
# before coming back into the loop again
}
?>

Veja Também

  • win32_set_service_status() - Update the service status
  • win32_get_last_control_message() - Returns the last control message that was sent to this service
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service
  • win32_set_service_exit_code() - Define or return the exit code for the current running service
  • Win32 Error Codes


Starts a service

  • « win32_start_service_ctrl_dispatcher
  • win32_stop_service »
  • PHP Manual
  • win32service Funções
  • Starts a service

win32_start_service

(PECL win32service >=0.1.0)

win32_start_service — Starts a service

Descrição

win32_start_service(string $servicename, string $machine = ?): void

Attempts to start the named service. Requires administrative privileges or an account with appropriate rights set in the service's ACL.

Parâmetros

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Valor Retornado

Nenhum valor é retornado.

Prior to version 1.0.0, retornava WIN32_NO_ERROR em caso de sucesso, false se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.

Erros/Exceções

A ValueError is thrown if the value of servicename parameter is empty.

A Win32ServiceException is thrown on error.

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.3.0 | This function does not longer require an administrator account if ACL is set for another account.

Veja Também

  • win32_stop_service() - Stops a service
  • win32_pause_service() - Pauses a service
  • win32_continue_service() - Resumes a paused service
  • win32_send_custom_control() - Send a custom control to the service
  • Win32 Error Codes


Stops a service

  • « win32_start_service
  • Manipulação de XML »
  • PHP Manual
  • win32service Funções
  • Stops a service

win32_stop_service

(PECL win32service >=0.1.0)

win32_stop_service — Stops a service

Descrição

win32_stop_service(string $servicename, string $machine = ?): void

Stops a named service. Requires administrative privileges or an account with appropriate rights set in the service's ACL.

Parâmetros

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Valor Retornado

Nenhum valor é retornado.

Prior to version 1.0.0, retornava WIN32_NO_ERROR em caso de sucesso, false se houver um problema com os parâmetros ou um Código de Erro Win32 em caso de falha.

Erros/Exceções

A ValueError is thrown if the value of servicename parameter is empty.

A Win32ServiceException is thrown on error.

Registro de Alterações

Versão | Descrição
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.3.0 | This function does not longer require an administrator account if ACL is set for another account.

Veja Também

  • win32_start_service() - Starts a service
  • win32_pause_service() - Pauses a service
  • win32_continue_service() - Resumes a paused service
  • win32_send_custom_control() - Send a custom control to the service
  • Win32 Error Codes


Manipulação de XML

  • DOM — Document Object Model
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • DOMAttr — Classe DOMAttr
    • DOMCdataSection — A classe DOMCdataSection
    • DOMCharacterData — A classe DOMCharacterData
    • DOMChildNode — A interface DOMChildNode
    • DOMComment — A classe DOMComment
    • DOMDocument — A classe DOMDocument
    • DOMDocumentFragment — A classe DOMDocumentFragment
    • DOMDocumentType — A classe DOMDocumentType
    • DOMElement — A classe DOMElement
    • DOMEntity — A classe DOMEntity
    • DOMEntityReference — A classe DOMEntityReference
    • DOMException — A classe DOMException
    • DOMImplementation — A classe DOMImplementation
    • DOMNamedNodeMap — A classe DOMNamedNodeMap
    • DOMNameSpaceNode — A classe DOMNameSpaceNode
    • DOMNode — A classe DOMNode
    • DOMNodeList — A classe DOMNodeList
    • DOMNotation — A classe DOMNotation
    • DOMParentNode — A interface DOMParentNode
    • DOMProcessingInstruction — A classe DOMProcessingInstruction
    • DOMText — A classe DOMText
    • DOMXPath — A classe DOMXPath
    • DOM Funções
  • libxml
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • LibXMLError — A classe LibXMLError
    • Funções da libxml
  • SimpleXML
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • SimpleXMLElement — A classe SimpleXMLElement
    • SimpleXMLIterator — A classe SimpleXMLIterator
    • Funções da SimpleXML
  • WDDX
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • Funções da WDDX
  • XMLDiff — XML diff and merge
    • Introdução
    • Instalação/Configuração
    • XMLDiff\Base — The XMLDiff\Base class
    • XMLDiff\DOM — The XMLDiff\DOM class
    • XMLDiff\Memory — The XMLDiff\Memory class
    • XMLDiff\File — The XMLDiff\File class
  • Analisador de XML
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Manipuladores de Evento
    • Transformação em Maiúsculas
    • Códigos de Erro
    • Codificação de caracteres
    • Exemplos
    • Funções para analisar XML
    • XMLParser — A classe XMLParser
  • XMLReader
    • Introdução
    • Instalação/Configuração
    • XMLReader — The XMLReader class
  • XMLWriter
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • XMLWriter — The XMLWriter class
  • XSL
    • Introdução
    • Instalação/Configuração
    • Constantes pré-definidas
    • Exemplos
    • XSLTProcessor — A classe XSLTProcessor


Document Object Model

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
  • DOMAttr — Classe DOMAttr
    • DOMAttr::__construct — Cria um novo objeto DOMAttr
    • DOMAttr::isId — Verifica se o atributo é um ID definido
  • DOMCdataSection — A classe DOMCdataSection
    • DOMCdataSection::__construct — Constrói um novo objeto DOMCdataSection
  • DOMCharacterData — A classe DOMCharacterData
    • DOMCharacterData::after — Adiciona nós após os dados do caractere
    • DOMCharacterData::appendData — Acrescenta a string ao final dos dados de caractere do nó
    • DOMCharacterData::before — Adiciona nós antes do nó
    • DOMCharacterData::deleteData — Remove uma faixa de caracteres do nó
    • DOMCharacterData::insertData — Insere uma string na posição especificada da unidade de 16 bits
    • DOMCharacterData::remove — Remove os dados do caractere
    • DOMCharacterData::replaceData — Substitui uma substring dentro do nó DOMCharacterData
    • DOMCharacterData::replaceWith — Substitui os dados de caracteres por novos nós
    • DOMCharacterData::substringData — Extrai uma faixa de dados do nó
  • DOMChildNode — A interface DOMChildNode
    • DOMChildNode::after — Adiciona nós após o nó
    • DOMChildNode::before — Adiciona nós antes do nó
    • DOMChildNode::remove — Remove o nó
    • DOMChildNode::replaceWith — Substitui o nó por novos nós
  • DOMComment — A classe DOMComment
    • DOMComment::__construct — Cria um novo objeto DOMComment
  • DOMDocument — A classe DOMDocument
    • DOMDocument::adoptNode — Transfere um nó de outro documento
    • DOMDocument::append — Adiciona nós após o último nó filho
    • DOMDocument::__construct — Cria um novo objeto DOMDocument
    • DOMDocument::createAttribute — Cria um novo attribute
    • DOMDocument::createAttributeNS — Cria um novo nó de atributo com um namespace associado
    • DOMDocument::createCDATASection — Cria um novo nó de CDATA
    • DOMDocument::createComment — Cria novo nó de comentárioe
    • DOMDocument::createDocumentFragment — Cria novo fragmento de documento
    • DOMDocument::createElement — Cria novo nó de elemento
    • DOMDocument::createElementNS — Cria novo nó de elemento com um namespace associado
    • DOMDocument::createEntityReference — Cria novo nó de referência de entidade
    • DOMDocument::createProcessingInstruction — Cria novo nó PI (Processing Instruction)
    • DOMDocument::createTextNode — Cria novo nó de texto
    • DOMDocument::getElementById — Procura por um elemento com um determinado ID
    • DOMDocument::getElementsByTagName — Procura por todos os elementos com uma determinada tag name local
    • DOMDocument::getElementsByTagNameNS — Procura por todos os elementos com uma determinada tag name em um namespace específico
    • DOMDocument::importNode — Importa um nó para o documento atual
    • DOMDocument::load — Carrega XML de um arquivo
    • DOMDocument::loadHTML — Carrega HTML a partir de uma string
    • DOMDocument::loadHTMLFile — Carrega HTML de um arquivo
    • DOMDocument::loadXML — Carrega XML a partir de uma string
    • DOMDocument::normalizeDocument — Normaliza o documento
    • DOMDocument::prepend — Adiciona nós antes do primeiro nó filho
    • DOMDocument::registerNodeClass — Registra uma classe estendida usada para criar um tipo de nó base
    • DOMDocument::relaxNGValidate — Realiza a validação relaxNG no documento
    • DOMDocument::relaxNGValidateSource — Realiza a validação relaxNG no documento
    • DOMDocument::replaceChildren — Substitui filhos no documento
    • DOMDocument::save — Grava a árvore XML interna de volta em um arquivo
    • DOMDocument::saveHTML — Despeja o documento interno em uma string usando formatação HTML
    • DOMDocument::saveHTMLFile — Despeja o documento interno em um arquivo usando formatação HTML
    • DOMDocument::saveXML — Despeja a árvore XML interna de volta em uma string
    • DOMDocument::schemaValidate — Valida um documento com base em um esquema. Apenas XML Schema 1.0 é suportado.
    • DOMDocument::schemaValidateSource — Valida um documento com base em um esquema
    • DOMDocument::validate — Valida o documento com base em seu DTD
    • DOMDocument::xinclude — Substitui XIncludes em um objeto DOMDocument
  • DOMDocumentFragment — A classe DOMDocumentFragment
    • DOMDocumentFragment::append — Acrescenta nós após o último nó filho
    • DOMDocumentFragment::appendXML — Anexa dados XML brutos
    • DOMDocumentFragment::__construct — Constrói um objeto DOMDocumentFragment
    • DOMDocumentFragment::prepend — Insere nós antes do primeiro nó filho
    • DOMDocumentFragment::replaceChildren — Substitui filhos no fragmento
  • DOMDocumentType — A classe DOMDocumentType
  • DOMElement — A classe DOMElement
    • DOMElement::after — Adiciona nós após o elemento
    • DOMElement::append — Adiciona nós após o último nó filho
    • DOMElement::before — Adiciona nós antes do elemento
    • DOMElement::__construct — Cria um novo objeto DOMElement
    • DOMElement::getAttribute — Retorna o valor do atributo
    • DOMElement::getAttributeNames — Obtém nomes de atributos
    • DOMElement::getAttributeNode — Retorna o nó do atributo
    • DOMElement::getAttributeNodeNS — Retorna o nó do atributo
    • DOMElement::getAttributeNS — Retorna o valor do atributo
    • DOMElement::getElementsByTagName — Obtém elementos pelo nome da tag
    • DOMElement::getElementsByTagNameNS — Obtém elementos por namespaceURI e localName
    • DOMElement::hasAttribute — Verifica se o atributo existe
    • DOMElement::hasAttributeNS — Verifica se o atributo existe
    • DOMElement::insertAdjacentElement — Insere um elemento adjacente
    • DOMElement::insertAdjacentText — Insere texto adjacente
    • DOMElement::prepend — Adiciona nós antes do primeiro nó filho
    • DOMElement::remove — Remove o elemento
    • DOMElement::removeAttribute — Remove atributo
    • DOMElement::removeAttributeNode — Remove atributo
    • DOMElement::removeAttributeNS — Remove atributo
    • DOMElement::replaceChildren — Substitui filhos no elemento
    • DOMElement::replaceWith — Substitui o elemento por novos nodes
    • DOMElement::setAttribute — Adiciona ou modifica um atributo existente
    • DOMElement::setAttributeNode — Adiciona um novo nó de atributo ao elemento
    • DOMElement::setAttributeNodeNS — Adiciona um novo nó de atributo ao elemento
    • DOMElement::setAttributeNS — Adiciona um novo atributo
    • DOMElement::setIdAttribute — Declara que o atributo especificado pelo nome é do tipo ID
    • DOMElement::setIdAttributeNode — Declara que o atributo especificado pelo nó é do tipo ID
    • DOMElement::setIdAttributeNS — Declara que o atributo especificado pelo nome local e pelo URI do namespace é do tipo ID
    • DOMElement::toggleAttribute — Alterna atributo
  • DOMEntity — A classe DOMEntity
  • DOMEntityReference — A classe DOMEntityReference
    • DOMEntityReference::__construct — Cria um novo objeto DOMEntityReference
  • DOMException — A classe DOMException
  • DOMImplementation — A classe DOMImplementation
    • DOMImplementation::__construct — Cria um novo objeto DOMImplementation
    • DOMImplementation::createDocument — Cria um objeto DOMDocument do tipo especificado com seu elemento de documento
    • DOMImplementation::createDocumentType — Cria um objeto DOMDocumentType vazio
    • DOMImplementation::hasFeature — Testa se a implementação DOM implementa um recurso específico
  • DOMNamedNodeMap — A classe DOMNamedNodeMap
    • DOMNamedNodeMap::count — Obtém o número de nós no mapa
    • DOMNamedNodeMap::getIterator — Recupera um iterador externo
    • DOMNamedNodeMap::getNamedItem — Recupera um nó especificado pelo nome
    • DOMNamedNodeMap::getNamedItemNS — Recupera um nó especificado pelo nome local e URI do namespace
    • DOMNamedNodeMap::item — Recupera um nó especificado pelo índice
  • DOMNameSpaceNode — A classe DOMNameSpaceNode
  • DOMNode — A classe DOMNode
    • DOMNode::appendChild — Adiciona um novo filho ao final dos filhos
    • DOMNode::C14N — Canonicaliza nós para uma string
    • DOMNode::C14NFile — Canonicaliza nós para um arquivo
    • DOMNode::cloneNode — Clona um nó
    • DOMNode::contains — Verifica se o nó contém outro nó
    • DOMNode::getLineNo — Obtém o número da linha para um nó
    • DOMNode::getNodePath — Obtém um XPath para um nó
    • DOMNode::getRootNode — Obtém o nó raiz
    • DOMNode::hasAttributes — Verifica se o nó possui atributos
    • DOMNode::hasChildNodes — Verifica se o nó possui filhos
    • DOMNode::insertBefore — Adiciona um novo filho antes de um nó de referência
    • DOMNode::isDefaultNamespace — Verifica se o namespaceURI especificado é o namespace padrão ou não
    • DOMNode::isEqualNode — Verifica se ambos os nós são iguais
    • DOMNode::isSameNode — Indica se dois nós são o mesmo nó
    • DOMNode::isSupported — Verifica se o recurso é suportado para a versão especificada
    • DOMNode::lookupNamespaceURI — Obtém o URI do namespace do nó com base no prefixo
    • DOMNode::lookupPrefix — Obtém o prefixo do namespace do nó com base no URI do namespace
    • DOMNode::normalize — Normaliza o nó
    • DOMNode::removeChild — Remove um filho da lista de filhos
    • DOMNode::replaceChild — Substitui um filho
  • DOMNodeList — A classe DOMNodeList
    • DOMNodeList::count — Obtém o número de nós na lista
    • DOMNodeList::getIterator — Retorna um iterador externo
    • DOMNodeList::item — Recupera um nó especificado pelo índice
  • DOMNotation — A classe DOMNotation
  • DOMParentNode — A interface DOMParentNode
    • DOMParentNode::append — Acrescenta nós após o último nó filho
    • DOMParentNode::prepend — Insere nós antes do primeiro nó filho
    • DOMParentNode::replaceChildren — Substitui filhos no nó
  • DOMProcessingInstruction — A classe DOMProcessingInstruction
    • DOMProcessingInstruction::__construct — Cria um novo objeto DOMProcessingInstruction
  • DOMText — A classe DOMText
    • DOMText::__construct — Cria um novo objeto DOMText
    • DOMText::isElementContentWhitespace — Retorna se este nó de texto contém espaços em branco no conteúdo do elemento
    • DOMText::isWhitespaceInElementContent — Indica se este nó de texto contém espaços em branco
    • DOMText::splitText — Quebra este nó em dois nós no deslocamento especificado
  • DOMXPath — A classe DOMXPath
    • DOMXPath::__construct — Cria um novo objeto DOMXPath
    • DOMXPath::evaluate — Avalia a expressão XPath fornecida e retorna um resultado tipado se possível
    • DOMXPath::query — Avalia a expressão XPath fornecida
    • DOMXPath::registerNamespace — Registra o namespace com o objeto DOMXPath
    • DOMXPath::registerPhpFunctions — Registra funções PHP como funções XPath
  • DOM Funções
    • dom_import_simplexml — Obtém um objeto DOMElement a partir de um objeto SimpleXMLElement


Introdução

A extensão DOM permite operar em documentos XML e HTML através da API DOM diretamente do PHP.

Nota:

A extensão DOM usa codificação UTF-8. Use mb_convert_encoding(), UConverter::transcode() ou iconv() para lidar com outras codificações.


Instalação

Esta extensão está habilitada por padrão. Ela pode ser desabilitada usando a seguinte opção em tempo de compilação: --disable-dom


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

Constantes XML
Constante | Valor | Descrição
XML_ELEMENT_NODE (int) | 1 | Nó é um DOMElement
XML_ATTRIBUTE_NODE (int) | 2 | Nó é um DOMAttr
XML_TEXT_NODE (int) | 3 | Nó é um DOMText
XML_CDATA_SECTION_NODE (int) | 4 | Nó é um DOMCharacterData
XML_ENTITY_REF_NODE (int) | 5 | Nó é um DOMEntityReference
XML_ENTITY_NODE (int) | 6 | Nó é um DOMEntity
XML_PI_NODE (int) | 7 | Nó é um DOMProcessingInstruction
XML_COMMENT_NODE (int) | 8 | Nó é um DOMComment
XML_DOCUMENT_NODE (int) | 9 | Nó é um DOMDocument
XML_DOCUMENT_TYPE_NODE (int) | 10 | Nó é um DOMDocumentType
XML_DOCUMENT_FRAG_NODE (int) | 11 | Nó é um DOMDocumentFragment
XML_NOTATION_NODE (int) | 12 | Nó é um DOMNotation
XML_HTML_DOCUMENT_NODE (int) | 13 |
XML_DTD_NODE (int) | 14 |
XML_ELEMENT_DECL_NODE (int) | 15 |
XML_ATTRIBUTE_DECL_NODE (int) | 16 |
XML_ENTITY_DECL_NODE (int) | 17 |
XML_NAMESPACE_DECL_NODE (int) | 18 |
XML_ATTRIBUTE_CDATA (int) | 1 |
XML_ATTRIBUTE_ID (int) | 2 |
XML_ATTRIBUTE_IDREF (int) | 3 |
XML_ATTRIBUTE_IDREFS (int) | 4 |
XML_ATTRIBUTE_ENTITY (int) | 5 |
XML_ATTRIBUTE_NMTOKEN (int) | 7 |
XML_ATTRIBUTE_NMTOKENS (int) | 8 |
XML_ATTRIBUTE_ENUMERATION (int) | 9 |
XML_ATTRIBUTE_NOTATION (int) | 10 |
Constantes DOMException
Constante | Valor | Descrição
DOM_PHP_ERR (int) | 0 | Código não pertencente á especificação DOM. Significativa apenas para erros do PHP
DOM_INDEX_SIZE_ERR (int) | 1 | Se o índice ou tamanho for negativo, ou maior do que o permitido.
DOMSTRING_SIZE_ERR (int) | 2 | Se o tamanho do texto especificado não couber em DOMString.
DOM_HIERARCHY_REQUEST_ERR (int) | 3 | Se algum nó for inserido em um lugar que não o pertence
DOM_WRONG_DOCUMENT_ERR (int) | 4 | Se um nó é utilizado em um documento diferente ao qual foi criado
DOM_INVALID_CHARACTER_ERR (int) | 5 | Se um caracter inválido é utilizado, como por exemplo em um nome.
DOM_NO_DATA_ALLOWED_ERR (int) | 6 | Se um conteúdo é utilizado com um nó que não suporta conteúdo.
DOM_NO_MODIFICATION_ALLOWED_ERR (int) | 7 | Se ocorrer uma tentativa de modificação é feita em um objeto que não permite modificações
DOM_NOT_FOUND_ERR (int) | 8 | Se ocorrer uma tentativa de referênciar um nó em um contexto onde o mesmo não existe.
DOM_NOT_SUPPORTED_ERR (int) | 9 | Se a implementação não suportar o tipo de objeto ou operação solicitados.
DOM_INUSE_ATTRIBUTE_ERR (int) | 10 | Se ocorrer a tentativa de adicionar um atributo que já está em uso em outro lugar.
DOM_INVALID_STATE_ERR (int) | 11 | Se ocorrer a tentativa de usar um objeto que não é mais válido.
DOM_SYNTAX_ERR (int) | 12 | Se um conjunto de caracteres inválido ou ilegal for utilizado.
DOM_INVALID_MODIFICATION_ERR (int) | 13 | If an attempt is made to modify the type of the underlying object.
DOM_NAMESPACE_ERR (int) | 14 | Se uma tentativa de criar ou modificar um objeto incorretamente considerando namespaces.
DOM_INVALID_ACCESS_ERR (int) | 15 | Se o parâmetro ou operação não é suportada pelo objeto subjacente.
DOM_VALIDATION_ERR (int) | 16 | Se uma chamada á um método como insertBefore ou removeChild invalidar o nó respeitando a "validação parcial", essa exceção será lançada e a operação não será realizada.


Exemplos

Muitos exemplos nesta referência requerem um arquivo XML. Vamos usar book.xml, que contém o seguinte:

Exemplo #1 book.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>
<book id="listing">
 <title>My lists</title>
 <chapter id="books">
  <title>My books</title>
  <para>
   <informaltable>
    <tgroup cols="4">
     <thead>
      <row>
       <entry>Title</entry>
       <entry>Author</entry>
       <entry>Language</entry>
       <entry>ISBN</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
      <row>
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
      <row>
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
      <!-- TODO: I have a lot of remaining books to add.. -->
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </chapter>
</book>


Classe DOMAttr

(PHP 5, PHP 7, PHP 8)

Introdução

DOMAttr representa um atributo no objeto DOMElement.

Resumo da classe

class DOMAttr extends DOMNode {
/* Propriedades */
public readonly string $name;
public readonly bool $specified = true;
public string $value;
public readonly ?DOMElement $ownerElement;
public readonly mixed $schemaTypeInfo = null;
/* Propriedades herdadas */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public __construct(string $name, string $value = "")
public isId(): bool
/* Métodos herdados */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

name

O nome do atributo

ownerElement

O elemento que contém o atributo ou null.

schemaTypeInfo

Não foi implementado ainda, sempre será null

specified

Não foi implementado ainda, sempre será true

value

O valor do atributo.

Nota:

Observe que entidades XML são expandidas ao atribuir um valor. Portanto o caracter & tem um comportamento especial. Configurar um value para si mesmo irá falhar se value contiver um &. Para evitar uma substituição de entidades, utilize DOMElement::setAttribute().

Veja Também

  • » Especificação da W3C para Attr

Índice

  • DOMAttr::__construct — Cria um novo objeto DOMAttr
  • DOMAttr::isId — Verifica se o atributo é um ID definido


Cria um novo objeto DOMAttr

  • « DOMAttr
  • DOMAttr::isId »
  • PHP Manual
  • DOMAttr
  • Cria um novo objeto DOMAttr

DOMAttr::__construct

(PHP 5, PHP 7, PHP 8)

DOMAttr::__construct — Cria um novo objeto DOMAttr

Descrição

public DOMAttr::__construct(string $name, string $value = "")

Cria um novo objeto DOMAttr. Este objeto é somente leitura. Pode ser anexado a um documento, mas nós adicionais não podem ser anexados a este nó até que o nó esteja associado a um documento. Para criar um nó gravável, use DOMDocument::createAttribute.

Parâmetros

name

O nome da tag do atributo.

value

O valor do atributo.

Exemplos

Exemplo #1 Cria um novo objeto DOMAttr

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$attr = $element->setAttributeNode(new DOMAttr('attr', 'attrvalue'));
echo $dom->saveXML();

?>

O exemplo acima produzirá:

<?xml version="1.0" encoding="utf-8"?>
<root attr="attrvalue" />

Veja Também

  • DOMDocument::createAttribute() - Cria um novo attribute


Verifica se o atributo é um ID definido

  • « DOMAttr::__construct
  • DOMCdataSection »
  • PHP Manual
  • DOMAttr
  • Verifica se o atributo é um ID definido

DOMAttr::isId

(PHP 5, PHP 7, PHP 8)

DOMAttr::isId — Verifica se o atributo é um ID definido

Descrição

public DOMAttr::isId(): bool

Esta função verifica se o atributo é um ID definido.

De acordo com o padrão DOM, isso requer um DTD que define o atributo ID como do tipo ID. Você precisa validar seu documento com DOMDocument::validate ou DOMDocument::$validateOnParse antes de usar esta função.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de DOMAttr::isId()

<?php

$doc = new DomDocument;

// Precisamos validar nosso documento antes de referenciar o id
$doc->validateOnParse = true;
$doc->Load('book.xml');

// Recuperamos o atributo chamado id do elemento chapter
$attr = $doc->getElementsByTagName('chapter')->item(0)->getAttributeNode('id');

var_dump($attr->isId()); // bool(true)

?>


A classe DOMCdataSection

(PHP 5, PHP 7, PHP 8)

Introdução

A classe DOMCdataSection herda de DOMText para a representação textual de construções CData.

Resumo da classe

class DOMCdataSection extends DOMText {
/* Propriedades herdadas */
public readonly string $wholeText;
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public __construct(string $data)
/* Métodos herdados */
public DOMText::isElementContentWhitespace(): bool
public DOMText::isWhitespaceInElementContent(): bool
public DOMText::splitText(int $offset): DOMText|false
public DOMCharacterData::after(DOMNode|string ...$nodes): void
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::before(DOMNode|string ...$nodes): void
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::remove(): void
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Índice

  • DOMCdataSection::__construct — Constrói um novo objeto DOMCdataSection


Constrói um novo objeto DOMCdataSection

  • « DOMCdataSection
  • DOMCharacterData »
  • PHP Manual
  • DOMCdataSection
  • Constrói um novo objeto DOMCdataSection

DOMCdataSection::__construct

(PHP 5, PHP 7, PHP 8)

DOMCdataSection::__construct — Constrói um novo objeto DOMCdataSection

Descrição

public DOMCdataSection::__construct(string $data)

Constrói um novo nó CDATA. Isso funciona como a classe DOMText class.

Parâmetros

data

O valor do nó CDATA. Se não fornecido, um nó CDATA vazio é criado.

Exemplos

Exemplo #1 Criando um novo objeto DOMCdataSection

<?php

$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMCdataSection('root value'));
echo $dom->saveXML();

?>

O exemplo acima produzirá:

<?xml version="1.0" encoding="utf-8"?>
<root><![CDATA[root value]]></root>

Veja Também

  • DOMText::__construct() - Cria um novo objeto DOMText
  • DOMDocument::createTextNode() - Cria novo nó de texto


A classe DOMCharacterData

(PHP 5, PHP 7, PHP 8)

Introdução

Representa nós com dados de caracteres. Não há nós que correspondam diretamente a esta classe, mas outros nós herdam dela.

Resumo da classe

class DOMCharacterData extends DOMNode implements DOMChildNode {
/* Propriedades */
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
/* Propriedades herdadas */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public after(DOMNode|string ...$nodes): void
public appendData(string $data): true
public before(DOMNode|string ...$nodes): void
public deleteData(int $offset, int $count): bool
public insertData(int $offset, string $data): bool
public remove(): void
public replaceData(int $offset, int $count, string $data): bool
public replaceWith(DOMNode|string ...$nodes): void
public substringData(int $offset, int $count): string|false
/* Métodos herdados */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

data

O conteúdo do nó.

length

O comprimento do conteúdo.

nextElementSibling

O próximo elemento irmão ou null.

previousElementSibling

O elemento irmão anterior ou null.

Registro de Alterações

Versão | Descrição
8.0.0 | As propriedades nextElementSibling e previousElementSibling foram adicionadas.
8.0.0 | DOMCharacterData implementa DOMChildNode agora.

Veja Também

  • » Especificação do W3C para CharacterData.

Índice

  • DOMCharacterData::after — Adiciona nós após os dados do caractere
  • DOMCharacterData::appendData — Acrescenta a string ao final dos dados de caractere do nó
  • DOMCharacterData::before — Adiciona nós antes do nó
  • DOMCharacterData::deleteData — Remove uma faixa de caracteres do nó
  • DOMCharacterData::insertData — Insere uma string na posição especificada da unidade de 16 bits
  • DOMCharacterData::remove — Remove os dados do caractere
  • DOMCharacterData::replaceData — Substitui uma substring dentro do nó DOMCharacterData
  • DOMCharacterData::replaceWith — Substitui os dados de caracteres por novos nós
  • DOMCharacterData::substringData — Extrai uma faixa de dados do nó


Adiciona nós após os dados do caractere

  • « DOMCharacterData
  • DOMCharacterData::appendData »
  • PHP Manual
  • DOMCharacterData
  • Adiciona nós após os dados do caractere

DOMCharacterData::after

(PHP 8)

DOMCharacterData::after — Adiciona nós após os dados do caractere

Descrição

public DOMCharacterData::after(DOMNode|string ...$nodes): void

Adiciona os nodes passados após o elemento.

Parâmetros

nodes

Nós a serem adicionados após o nó. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se o pai é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem pai agora é uma operação sem efeito para alinhar o comportamento com a especificação do DOM. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMCharacterData::after() example

Adiciona nós após os dados do caractere.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[hello]]></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->after("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container><![CDATA[hello]]>beautiful<world/></container>

Veja Também

  • DOMChildNode::after() - Adiciona nós após o nó
  • DOMCharacterData::before() - Adiciona nós antes do nó


Acrescenta a string ao final dos dados de caractere do nó

  • « DOMCharacterData::after
  • DOMCharacterData::before »
  • PHP Manual
  • DOMCharacterData
  • Acrescenta a string ao final dos dados de caractere do nó

DOMCharacterData::appendData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::appendData — Acrescenta a string ao final dos dados de caractere do nó

Descrição

public DOMCharacterData::appendData(string $data): true

Acrescenta a string data ao final dos dados de caractere do nó

Parâmetros

data

A string a ser acrescentada.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.3.0 | Esta função agora tem um tipo de retorno true tentativo.

Veja Também

  • DOMCharacterData::deleteData() - Remove uma faixa de caracteres do nó
  • DOMCharacterData::insertData() - Insere uma string na posição especificada da unidade de 16 bits
  • DOMCharacterData::replaceData() - Substitui uma substring dentro do nó DOMCharacterData
  • DOMCharacterData::substringData() - Extrai uma faixa de dados do nó


Adiciona nós antes do nó

  • « DOMCharacterData::appendData
  • DOMCharacterData::deleteData »
  • PHP Manual
  • DOMCharacterData
  • Adiciona nós antes do nó

DOMCharacterData::before

(PHP 8)

DOMCharacterData::before — Adiciona nós antes do nó

Descrição

public DOMCharacterData::before(DOMNode|string ...$nodes): void

Adiciona os nodes passados antes do nó.

Parâmetros

nodes

Nós a serem adicionados antes do nó. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se o pai é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem pai agora é uma operação sem efeito para alinhar o comportamento com a especificação do DOM. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 Exemplo de DOMCharacterData::before()

Adiciona nós antes dos dados do caractere.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[world]]></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->before("hello", $doc->createElement("beautiful"));

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container>hello<beautiful/><![CDATA[world]]></container>

Veja Também

  • DOMChildNode::before() - Adiciona nós antes do nó
  • DOMCharacterData::after() - Adiciona nós após os dados do caractere


Remove uma faixa de caracteres do nó

  • « DOMCharacterData::before
  • DOMCharacterData::insertData »
  • PHP Manual
  • DOMCharacterData
  • Remove uma faixa de caracteres do nó

DOMCharacterData::deleteData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::deleteData — Remove uma faixa de caracteres do nó

Descrição

public DOMCharacterData::deleteData(int $offset, int $count): bool

Exclui count caracteres a partir da posição offset.

Parâmetros

offset

O deslocamento a partir do qual começar a remover.

count

O número de caracteres a serem excluídos. Se a soma de offset e count exceder o comprimento, então todos os caracteres até o final dos dados são excluídos.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

DOM_INDEX_SIZE_ERR

Gerado se offset for negativo ou maior que o número de unidades de 16 bits em data, ou se count for negativo.

Veja Também

  • DOMCharacterData::appendData() - Acrescenta a string ao final dos dados de caractere do nó
  • DOMCharacterData::insertData() - Insere uma string na posição especificada da unidade de 16 bits
  • DOMCharacterData::replaceData() - Substitui uma substring dentro do nó DOMCharacterData
  • DOMCharacterData::substringData() - Extrai uma faixa de dados do nó


Insere uma string na posição especificada da unidade de 16 bits

  • « DOMCharacterData::deleteData
  • DOMCharacterData::remove »
  • PHP Manual
  • DOMCharacterData
  • Insere uma string na posição especificada da unidade de 16 bits

DOMCharacterData::insertData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::insertData — Insere uma string na posição especificada da unidade de 16 bits

Descrição

public DOMCharacterData::insertData(int $offset, string $data): bool

Insere a string data na posição offset.

Parâmetros

offset

O deslocamento de caractere no qual inserir.

data

A string a ser inserida.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

DOM_INDEX_SIZE_ERR

Gerado se offset for negativo ou maior que o número de unidades de 16 bits em data.

Veja Também

  • DOMCharacterData::appendData() - Acrescenta a string ao final dos dados de caractere do nó
  • DOMCharacterData::deleteData() - Remove uma faixa de caracteres do nó
  • DOMCharacterData::replaceData() - Substitui uma substring dentro do nó DOMCharacterData
  • DOMCharacterData::substringData() - Extrai uma faixa de dados do nó


Remove os dados do caractere

  • « DOMCharacterData::insertData
  • DOMCharacterData::replaceData »
  • PHP Manual
  • DOMCharacterData
  • Remove os dados do caractere

DOMCharacterData::remove

(PHP 8)

DOMCharacterData::remove — Remove os dados do caractere

Descrição

public DOMCharacterData::remove(): void

Remove os dados do caractere.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 DOMCharacterData::remove() exemplo

Remove os dados do caractere.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[hello]]><world/></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->remove();

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container><world/></container>

Veja Também

  • DOMChildNode::remove() - Remove o nó
  • DOMCharacterData::after() - Adiciona nós após os dados do caractere
  • DOMCharacterData::before() - Adiciona nós antes do nó
  • DOMCharacterData::replaceWith() - Substitui os dados de caracteres por novos nós
  • DOMNode::removeChild() - Remove um filho da lista de filhos


Substitui uma substring dentro do nó DOMCharacterData

  • « DOMCharacterData::remove
  • DOMCharacterData::replaceWith »
  • PHP Manual
  • DOMCharacterData
  • Substitui uma substring dentro do nó DOMCharacterData

DOMCharacterData::replaceData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::replaceData — Substitui uma substring dentro do nó DOMCharacterData

Descrição

public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool

Substitui count caracteres a partir da posição offset com data.

Parâmetros

offset

O deslocamento a partir do qual começar a substituição.

count

O número de caracteres a serem substituídos. Se a soma de offset e count exceder o comprimento, então todos os caracteres até o final dos dados são substituídos.

data

A string com a qual a faixa deve ser substituída.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

DOM_INDEX_SIZE_ERR

Gerado se offset for negativo ou maior que o número de unidades de 16 bits em data, ou se count for negativo.

Veja Também

  • DOMCharacterData::appendData() - Acrescenta a string ao final dos dados de caractere do nó
  • DOMCharacterData::deleteData() - Remove uma faixa de caracteres do nó
  • DOMCharacterData::insertData() - Insere uma string na posição especificada da unidade de 16 bits
  • DOMCharacterData::substringData() - Extrai uma faixa de dados do nó


Substitui os dados de caracteres por novos nós

  • « DOMCharacterData::replaceData
  • DOMCharacterData::substringData »
  • PHP Manual
  • DOMCharacterData
  • Substitui os dados de caracteres por novos nós

DOMCharacterData::replaceWith

(PHP 8)

DOMCharacterData::replaceWith — Substitui os dados de caracteres por novos nós

Descrição

public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void

Substitui os dados de caracteres por novos nodes.

Parâmetros

nodes

Os nós de substituição. As strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se o pai é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem pai agora é uma operação sem efeito para alinhar o comportamento com a especificação do DOM. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMCharacterData::replaceWith() exemplo

Substitui os dados de caracteres por novos nós.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[hello]]></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container>beautiful<world/></container>

Veja Também

  • DOMChildNode::replaceWith() - Substitui o nó por novos nós
  • DOMCharacterData::after() - Adiciona nós após os dados do caractere
  • DOMCharacterData::before() - Adiciona nós antes do nó
  • DOMCharacterData::remove() - Remove os dados do caractere


Extrai uma faixa de dados do nó

  • « DOMCharacterData::replaceWith
  • DOMChildNode »
  • PHP Manual
  • DOMCharacterData
  • Extrai uma faixa de dados do nó

DOMCharacterData::substringData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::substringData — Extrai uma faixa de dados do nó

Descrição

public DOMCharacterData::substringData(int $offset, int $count): string|false

Retorna a substring especificada.

Parâmetros

offset

Offset de início da substring a ser extraída.

count

O número de caracteres a serem extraídos.

Valor Retornado

A substring especificada. Se a soma de offset e count exceder o comprimento, então todas as unidades de 16 bits até o final dos dados são retornadas.

Erros/Exceções

DOM_INDEX_SIZE_ERR

Gerado se offset for negativo ou maior que o número de unidades de 16 bits nos dados, ou se count for negativo.

Veja Também

  • DOMCharacterData::appendData() - Acrescenta a string ao final dos dados de caractere do nó
  • DOMCharacterData::deleteData() - Remove uma faixa de caracteres do nó
  • DOMCharacterData::insertData() - Insere uma string na posição especificada da unidade de 16 bits
  • DOMCharacterData::replaceData() - Substitui uma substring dentro do nó DOMCharacterData


A interface DOMChildNode

(PHP 8)

Resumo da Interface

interface DOMChildNode {
/* Métodos */
public after(DOMNode|string ...$nodes): void
public before(DOMNode|string ...$nodes): void
public remove(): void
public replaceWith(DOMNode|string ...$nodes): void
}

Índice

  • DOMChildNode::after — Adiciona nós após o nó
  • DOMChildNode::before — Adiciona nós antes do nó
  • DOMChildNode::remove — Remove o nó
  • DOMChildNode::replaceWith — Substitui o nó por novos nós


Adiciona nós após o nó

  • « DOMChildNode
  • DOMChildNode::before »
  • PHP Manual
  • DOMChildNode
  • Adiciona nós após o nó

DOMChildNode::after

(PHP 8)

DOMChildNode::after — Adiciona nós após o nó

Descrição

public DOMChildNode::after(DOMNode|string ...$nodes): void

Adiciona os nodes passados após o nó.

Parâmetros

nodes

Nós a serem adicionados após o nó. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se o pai é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem pai agora é uma operação sem efeito para alinhar o comportamento com a especificação do DOM. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Veja Também

  • DOMChildNode::before() - Adiciona nós antes do nó
  • DOMChildNode::remove() - Remove o nó
  • DOMChildNode::replaceWith() - Substitui o nó por novos nós
  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos


Adiciona nós antes do nó

  • « DOMChildNode::after
  • DOMChildNode::remove »
  • PHP Manual
  • DOMChildNode
  • Adiciona nós antes do nó

DOMChildNode::before

(PHP 8)

DOMChildNode::before — Adiciona nós antes do nó

Descrição

public DOMChildNode::before(DOMNode|string ...$nodes): void

Adiciona os nodes passados antes do nó.

Parâmetros

nodes

Nós a serem adicionados antes do nó. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se o pai é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem pai agora é uma operação sem efeito para alinhar o comportamento com a especificação do DOM. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Veja Também

  • DOMChildNode::after() - Adiciona nós após o nó
  • DOMChildNode::remove() - Remove o nó
  • DOMChildNode::replaceWith() - Substitui o nó por novos nós


Remove o nó

  • « DOMChildNode::before
  • DOMChildNode::replaceWith »
  • PHP Manual
  • DOMChildNode
  • Remove o nó

DOMChildNode::remove

(PHP 8)

DOMChildNode::remove — Remove o nó

Descrição

public DOMChildNode::remove(): void

Remove o nó.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • DOMChildNode::after() - Adiciona nós após o nó
  • DOMChildNode::before() - Adiciona nós antes do nó
  • DOMChildNode::replaceWith() - Substitui o nó por novos nós
  • DOMNode::removeChild() - Remove um filho da lista de filhos


Substitui o nó por novos nós

  • « DOMChildNode::remove
  • DOMComment »
  • PHP Manual
  • DOMChildNode
  • Substitui o nó por novos nós

DOMChildNode::replaceWith

(PHP 8)

DOMChildNode::replaceWith — Substitui o nó por novos nós

Descrição

public DOMChildNode::replaceWith(DOMNode|string ...$nodes): void

Substitui o nó por novos nodes.

Parâmetros

nodes

Os nós de substituição. As strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se o pai é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem pai agora é uma operação sem efeito para alinhar o comportamento com a especificação do DOM. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Veja Também

  • DOMChildNode::after() - Adiciona nós após o nó
  • DOMChildNode::before() - Adiciona nós antes do nó
  • DOMChildNode::remove() - Remove o nó
  • DOMNode::replaceChild() - Substitui um filho


A classe DOMComment

(PHP 5, PHP 7, PHP 8)

Introdução

Representa nós de comentário, caracteres delimitados por <!-- e -->.

Resumo da classe

class DOMComment extends DOMCharacterData {
/* Propriedades herdadas */
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public __construct(string $data = "")
/* Métodos herdados */
public DOMCharacterData::after(DOMNode|string ...$nodes): void
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::before(DOMNode|string ...$nodes): void
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::remove(): void
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Veja Também

  • » Especificação do W3C para Comentário.

Índice

  • DOMComment::__construct — Cria um novo objeto DOMComment


Cria um novo objeto DOMComment

  • « DOMComment
  • DOMDocument »
  • PHP Manual
  • DOMComment
  • Cria um novo objeto DOMComment

DOMComment::__construct

(PHP 5, PHP 7, PHP 8)

DOMComment::__construct — Cria um novo objeto DOMComment

Descrição

public DOMComment::__construct(string $data = "")

Cria um novo objeto DOMComment. Este objeto é somente leitura. Pode ser anexado a um documento, mas nós adicionais não podem ser anexados a este nó até que o nó esteja associado a um documento. Para criar um nó gravável, use DOMDocument::createComment.

Parâmetros

data

O valor do comentário.

Exemplos

Exemplo #1 Criando um novo DOMComment

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$comment = $element->appendChild(new DOMComment('root comment'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root><!--root comment--></root> */

?>

Veja Também

  • DOMDocument::createComment() - Cria novo nó de comentárioe


A classe DOMDocument

(PHP 5, PHP 7, PHP 8)

Introdução

Representa um documento HTML ou XML inteiro; serve como a raiz da árvore do documento.

Resumo da classe

class DOMDocument extends DOMNode implements DOMParentNode {
/* Propriedades */
public readonly ?DOMDocumentType $doctype;
public readonly DOMImplementation $implementation;
public readonly ?DOMElement $documentElement;
public readonly ?string $actualEncoding;
public ?string $encoding;
public readonly ?string $xmlEncoding;
public bool $standalone;
public bool $xmlStandalone;
public ?string $version;
public ?string $xmlVersion;
public bool $strictErrorChecking;
public ?string $documentURI;
public readonly mixed $config;
public bool $formatOutput;
public bool $validateOnParse;
public bool $resolveExternals;
public bool $preserveWhiteSpace;
public bool $recover;
public bool $substituteEntities;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* Propriedades herdadas */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public __construct(string $version = "1.0", string $encoding = "")
public adoptNode(DOMNode $node): DOMNode|false
public append(DOMNode|string ...$nodes): void
public createAttribute(string $localName): DOMAttr|false
public createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public createCDATASection(string $data): DOMCdataSection|false
public createComment(string $data): DOMComment
public createDocumentFragment(): DOMDocumentFragment
public createElement(string $localName, string $value = ""): DOMElement|false
public createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
public createEntityReference(string $name): DOMEntityReference|false
public createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false
public createTextNode(string $data): DOMText
public getElementById(string $elementId): ?DOMElement
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public importNode(DOMNode $node, bool $deep = false): DOMNode|false
public load(string $filename, int $options = 0): bool
public loadHTML(string $source, int $options = 0): bool
public loadHTMLFile(string $filename, int $options = 0): bool
public loadXML(string $source, int $options = 0): bool
public normalizeDocument(): void
public prepend(DOMNode|string ...$nodes): void
public registerNodeClass(string $baseClass, ?string $extendedClass): bool
public relaxNGValidate(string $filename): bool
public relaxNGValidateSource(string $source): bool
public replaceChildren(DOMNode|string ...$nodes): void
public save(string $filename, int $options = 0): int|false
public saveHTML(?DOMNode $node = null): string|false
public saveHTMLFile(string $filename): int|false
public saveXML(?DOMNode $node = null, int $options = 0): string|false
public schemaValidate(string $filename, int $flags = 0): bool
public schemaValidateSource(string $source, int $flags = 0): bool
public validate(): bool
public xinclude(int $options = 0): int|false
/* Métodos herdados */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

actualEncoding

Descontinuado.Codificação real do documento, é uma leitura apenas equivalente a encoding.

childElementCount

O número de elementos filhos.

config

Descontinuado. Configuração usando quando DOMDocument::normalizeDocument() é invocada.

doctype

A Declaração de Tipo de Documento associada a este documento.

documentElement

O objeto DOMElement que é o primeiro elemento do documento. Se não encontrado, é avaliado como null.

documentURI

A localização do documento ou null se indefinido.

encoding

Codificação do documento, conforme especificado pela declaração XML. Este atributo não está presente na especificação final do DOM Nível 3, mas é a única maneira de manipular a codificação do documento XML nesta implementação.

firstElementChild

Primeiro elemento filho ou null.

formatOutput

Formata a saída com espaçamento e recuo adicionais. Isso não tem efeito se o documento foi carregado com preserveWhitespace habilitado.

implementation

O objeto DOMImplementation que manipula este documento.

lastElementChild

Último elemento filho ou null.

preserveWhiteSpace

Não remover espaços em branco redundantes. O padrão é true. Definir isso como false tem o mesmo efeito que passar LIBXML_NOBLANKS como option para DOMDocument::load() etc.

recover

Proprietário. Ativa o modo de recuperação, ou seja, tenta analisar documentos mal formados. Este atributo não faz parte da especificação DOM e é específico para o libxml.

resolveExternals

Configure como true para carregar entidades externas de uma declaração de tipo de documento (doctype). Isso é útil para incluir entidades de caracteres em seu documento XML.

standalone

Descontinuado. Se o documento é ou não independente, conforme especificado pela declaração XML, corresponde a xmlStandalone.

strictErrorChecking

Lança DOMException em caso de erro. Padrão é true.

substituteEntities

Proprietário. Se deve ou não substituir entidades. Este atributo não faz parte da especificação DOM e é específico para o libxml. Padrão é false.

Cuidado

A ativação da substituição de entidades pode facilitar ataques de XML External Entity (XXE).

validateOnParse

Carrega e valida em relação ao DTD. Padrão é false.

Cuidado

Ativar a validação do DTD pode facilitar ataques de XML External Entity (XXE).

version

Descontinuado. Versão do XML, corresponde a xmlVersion.

xmlEncoding

Um atributo especificando, como parte da declaração XML, a codificação deste documento. Isso é null quando não especificado ou quando não é conhecido, como quando o Documento foi criado na memória.

xmlStandalone

Um atributo que especifica, como parte da declaração XML, se este documento é independente. Isso é false quando não especificado. Um documento independente é aquele que não possui declarações de marcações externas. Um exemplo de tal declaração de marcação é quando o DTD declara um atributo com um valor padrão.

xmlVersion

Um atributo que especifica, como parte da declaração XML, o número da versão deste documento. Se não houver declaração e se este documento suportar o recurso "XML", o valor é "1.0".

Registro de Alterações

Versão | Descrição
8.0.0 | DOMDocument implements DOMParentNode now.
8.0.0 | O método não implementado DOMDocument::renameNode() foi removido.

Notas

Nota:

A extensão DOM usa codificação UTF-8. Use mb_convert_encoding(), UConverter::transcode() ou iconv() para lidar com outras codificações.

Nota:

Ao usar json_encode() em um objeto DOMDocument, o resultado será a codificação de um objeto vazio.

Veja Também

  • » Especificação do W3C para Documento.

Índice

  • DOMDocument::adoptNode — Transfere um nó de outro documento
  • DOMDocument::append — Adiciona nós após o último nó filho
  • DOMDocument::__construct — Cria um novo objeto DOMDocument
  • DOMDocument::createAttribute — Cria um novo attribute
  • DOMDocument::createAttributeNS — Cria um novo nó de atributo com um namespace associado
  • DOMDocument::createCDATASection — Cria um novo nó de CDATA
  • DOMDocument::createComment — Cria novo nó de comentárioe
  • DOMDocument::createDocumentFragment — Cria novo fragmento de documento
  • DOMDocument::createElement — Cria novo nó de elemento
  • DOMDocument::createElementNS — Cria novo nó de elemento com um namespace associado
  • DOMDocument::createEntityReference — Cria novo nó de referência de entidade
  • DOMDocument::createProcessingInstruction — Cria novo nó PI (Processing Instruction)
  • DOMDocument::createTextNode — Cria novo nó de texto
  • DOMDocument::getElementById — Procura por um elemento com um determinado ID
  • DOMDocument::getElementsByTagName — Procura por todos os elementos com uma determinada tag name local
  • DOMDocument::getElementsByTagNameNS — Procura por todos os elementos com uma determinada tag name em um namespace específico
  • DOMDocument::importNode — Importa um nó para o documento atual
  • DOMDocument::load — Carrega XML de um arquivo
  • DOMDocument::loadHTML — Carrega HTML a partir de uma string
  • DOMDocument::loadHTMLFile — Carrega HTML de um arquivo
  • DOMDocument::loadXML — Carrega XML a partir de uma string
  • DOMDocument::normalizeDocument — Normaliza o documento
  • DOMDocument::prepend — Adiciona nós antes do primeiro nó filho
  • DOMDocument::registerNodeClass — Registra uma classe estendida usada para criar um tipo de nó base
  • DOMDocument::relaxNGValidate — Realiza a validação relaxNG no documento
  • DOMDocument::relaxNGValidateSource — Realiza a validação relaxNG no documento
  • DOMDocument::replaceChildren — Substitui filhos no documento
  • DOMDocument::save — Grava a árvore XML interna de volta em um arquivo
  • DOMDocument::saveHTML — Despeja o documento interno em uma string usando formatação HTML
  • DOMDocument::saveHTMLFile — Despeja o documento interno em um arquivo usando formatação HTML
  • DOMDocument::saveXML — Despeja a árvore XML interna de volta em uma string
  • DOMDocument::schemaValidate — Valida um documento com base em um esquema. Apenas XML Schema 1.0 é suportado.
  • DOMDocument::schemaValidateSource — Valida um documento com base em um esquema
  • DOMDocument::validate — Valida o documento com base em seu DTD
  • DOMDocument::xinclude — Substitui XIncludes em um objeto DOMDocument


Transfere um nó de outro documento

  • « DOMDocument
  • DOMDocument::append »
  • PHP Manual
  • DOMDocument
  • Transfere um nó de outro documento

DOMDocument::adoptNode

(PHP >= 8.3)

DOMDocument::adoptNode — Transfere um nó de outro documento

Descrição

public DOMDocument::adoptNode(DOMNode $node): DOMNode|false

Transfere um nó de outro documento para o documento atual.

Parâmetros

node

O nó a ser transferido.

Valor Retornado

O nó que foi transferido, ou false em caso de erro.

Erros/Exceções

DOM_NOT_SUPPORTED_ERR

Gerado se o tipo de nó não é suportado para transferências de documentos.

Exemplos

Exemplo #1 DOMDocument::adoptNode() example

Transfere o elemento hello do primeiro documento para o segundo.

<?php
$doc1 = new DOMDocument;
$doc1->loadXML("<container><hello><world/></hello></container>");
$hello = $doc1->documentElement->firstChild;

$doc2 = new DOMDocument;
$doc2->loadXML("<root/>");
$doc2->documentElement->appendChild($doc2->adoptNode($hello));

echo $doc1->saveXML() . PHP_EOL;
echo $doc2->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container/>

<?xml version="1.0"?>
<root><hello><world/></hello></root>

Veja Também

  • DOMDocument::importNode() - Importa um nó para o documento atual


Adiciona nós após o último nó filho

  • « DOMDocument::adoptNode
  • DOMDocument::__construct »
  • PHP Manual
  • DOMDocument
  • Adiciona nós após o último nó filho

DOMDocument::append

(PHP 8)

DOMDocument::append — Adiciona nós após o último nó filho

Descrição

public DOMDocument::append(DOMNode|string ...$nodes): void

Adiciona um ou muitos nodes à lista de filhos após o último nó filho.

Parâmetros

nodes

Os nós a serem acrescentados. As strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMDocument::append() exemplo

Adiciona nós após a raiz do documento.

<?php
$doc = new DOMDocument;
$doc->loadXML("<hello/>");

$doc->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<hello/>
beautiful
<world/>

Veja Também

  • DOMParentNode::append() - Acrescenta nós após o último nó filho
  • DOMDocument::prepend() - Adiciona nós antes do primeiro nó filho


Cria um novo objeto DOMDocument

  • « DOMDocument::append
  • DOMDocument::createAttribute »
  • PHP Manual
  • DOMDocument
  • Cria um novo objeto DOMDocument

DOMDocument::__construct

(PHP 5, PHP 7, PHP 8)

DOMDocument::__construct — Cria um novo objeto DOMDocument

Descrição

public DOMDocument::__construct(string $version = "1.0", string $encoding = "")

Cria um novo objeto DOMDocument.

Parâmetros

version

O número da versão do documento como parte da declaração XML.

encoding

A codificação do documento como parte da declaração XML.

Exemplos

Exemplo #1 Criando um novo DOMDocument

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */

?>

Veja Também

  • DOMImplementation::createDocument() - Cria um objeto DOMDocument do tipo especificado com seu elemento de documento


Cria um novo attribute

  • « DOMDocument::__construct
  • DOMDocument::createAttributeNS »
  • PHP Manual
  • DOMDocument
  • Cria um novo attribute

DOMDocument::createAttribute

(PHP 5, PHP 7, PHP 8)

DOMDocument::createAttribute — Cria um novo attribute

Descrição

public DOMDocument::createAttribute(string $localName): DOMAttr|false

Esta função cria uma nova instância da classe DOMAttr. Este nó não aparecerá no documento a menos que seja inserido, por exemplo, com DOMNode::appendChild().

Parâmetros

localName

O nome do atributo.

Valor Retornado

O novo DOMAttr ou false se ocorrer um erro.

Erros/Exceções

DOM_INVALID_CHARACTER_ERR

Gerado se localName contiver um caractere inválido.

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMDocument::createAttributeNS() - Cria um novo nó de atributo com um namespace associado
  • DOMDocument::createCDATASection() - Cria um novo nó de CDATA
  • DOMDocument::createComment() - Cria novo nó de comentárioe
  • DOMDocument::createDocumentFragment() - Cria novo fragmento de documento
  • DOMDocument::createElement() - Cria novo nó de elemento
  • DOMDocument::createElementNS() - Cria novo nó de elemento com um namespace associado
  • DOMDocument::createEntityReference() - Cria novo nó de referência de entidade
  • DOMDocument::createProcessingInstruction() - Cria novo nó PI (Processing Instruction)
  • DOMDocument::createTextNode() - Cria novo nó de texto


Cria um novo nó de atributo com um namespace associado

  • « DOMDocument::createAttribute
  • DOMDocument::createCDATASection »
  • PHP Manual
  • DOMDocument
  • Cria um novo nó de atributo com um namespace associado

DOMDocument::createAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMDocument::createAttributeNS — Cria um novo nó de atributo com um namespace associado

Descrição

public DOMDocument::createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false

Esta função cria uma nova instância da classe DOMAttr. Este nó não aparecerá no documento a menos que seja inserido, por exemplo, com DOMNode::appendChild().

Parâmetros

namespace

O URI do namespace.

qualifiedName

O nome qualificado e o prefixo do atributo, como prefix:tagname.

Valor Retornado

O novo DOMAttr ou false se ocorrer um erro.

Erros/Exceções

DOM_INVALID_CHARACTER_ERR

Gerado se qualifiedName contiver um caractere inválido.

DOM_NAMESPACE_ERR

Gerado se qualifiedName for um nome qualificado malformado, ou se qualifiedName tiver um prefixo e namespace for null.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método sem especificar um prefixo agora escolherá um prefixo em vez de assumir o namespace padrão. Anteriormente, isso criaria um atributo sem prefixo e aplicaria incorretamente o namespace ao elemento pai porque os namespaces padrão não se aplicam a atributos.
8.3.0 | Chamar este método usando um prefixo que já foi declarado no elemento pai com um URI de namespace diferente agora mudará o novo prefixo para evitar criar conflitos de namespace. Isso alinha o comportamento com a especificação DOM. Anteriormente, isso lançava uma DOMException com o código DOM_NAMESPACE_ERR.

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMDocument::createAttribute() - Cria um novo attribute
  • DOMDocument::createCDATASection() - Cria um novo nó de CDATA
  • DOMDocument::createComment() - Cria novo nó de comentárioe
  • DOMDocument::createDocumentFragment() - Cria novo fragmento de documento
  • DOMDocument::createElement() - Cria novo nó de elemento
  • DOMDocument::createElementNS() - Cria novo nó de elemento com um namespace associado
  • DOMDocument::createEntityReference() - Cria novo nó de referência de entidade
  • DOMDocument::createProcessingInstruction() - Cria novo nó PI (Processing Instruction)
  • DOMDocument::createTextNode() - Cria novo nó de texto


Cria um novo nó de CDATA

  • « DOMDocument::createAttributeNS
  • DOMDocument::createComment »
  • PHP Manual
  • DOMDocument
  • Cria um novo nó de CDATA

DOMDocument::createCDATASection

(PHP 5, PHP 7, PHP 8)

DOMDocument::createCDATASection — Cria um novo nó de CDATA

Descrição

public DOMDocument::createCDATASection(string $data): DOMCdataSection|false

Esta função cria uma nova instância da classe DOMCDATASection. Este nó não aparecerá no documento a menos que seja inserido, por exemplo, com DOMNode::appendChild().

Parâmetros

data

O conteúdo do CDATA.

Valor Retornado

O novo DOMCDATASection ou false se ocorrer um erro.

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMDocument::createAttribute() - Cria um novo attribute
  • DOMDocument::createAttributeNS() - Cria um novo nó de atributo com um namespace associado
  • DOMDocument::createComment() - Cria novo nó de comentárioe
  • DOMDocument::createDocumentFragment() - Cria novo fragmento de documento
  • DOMDocument::createElement() - Cria novo nó de elemento
  • DOMDocument::createElementNS() - Cria novo nó de elemento com um namespace associado
  • DOMDocument::createEntityReference() - Cria novo nó de referência de entidade
  • DOMDocument::createProcessingInstruction() - Cria novo nó PI (Processing Instruction)
  • DOMDocument::createTextNode() - Cria novo nó de texto


Cria novo nó de comentárioe

  • « DOMDocument::createCDATASection
  • DOMDocument::createDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Cria novo nó de comentárioe

DOMDocument::createComment

(PHP 5, PHP 7, PHP 8)

DOMDocument::createComment — Cria novo nó de comentárioe

Descrição

public DOMDocument::createComment(string $data): DOMComment

Esta função cria uma nova instância da classe DOMComment. Este nó não aparecerá no documento a menos que seja inserido, por exemplo, com DOMNode::appendChild().

Parâmetros

data

O conteúdo do comentário.

Valor Retornado

O novo DOMComment.

Registro de Alterações

Versão | Descrição
8.1.0 | Em caso de erro, agora é lançada uma DomException. Anteriormente, false era retornado.

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMDocument::createAttribute() - Cria um novo attribute
  • DOMDocument::createAttributeNS() - Cria um novo nó de atributo com um namespace associado
  • DOMDocument::createCDATASection() - Cria um novo nó de CDATA
  • DOMDocument::createDocumentFragment() - Cria novo fragmento de documento
  • DOMDocument::createElement() - Cria novo nó de elemento
  • DOMDocument::createElementNS() - Cria novo nó de elemento com um namespace associado
  • DOMDocument::createEntityReference() - Cria novo nó de referência de entidade
  • DOMDocument::createProcessingInstruction() - Cria novo nó PI (Processing Instruction)
  • DOMDocument::createTextNode() - Cria novo nó de texto


Cria novo fragmento de documento

  • « DOMDocument::createComment
  • DOMDocument::createElement »
  • PHP Manual
  • DOMDocument
  • Cria novo fragmento de documento

DOMDocument::createDocumentFragment

(PHP 5, PHP 7, PHP 8)

DOMDocument::createDocumentFragment — Cria novo fragmento de documento

Descrição

public DOMDocument::createDocumentFragment(): DOMDocumentFragment

Esta função cria uma nova instância da classe DOMDocumentFragment. Este nó não aparecerá no documento a menos que seja inserido, por exemplo, com DOMNode::appendChild().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O novo DOMDocumentFragment.

Registro de Alterações

Versão | Descrição
8.1.0 | Em caso de erro, agora é lançada uma DomException. Anteriormente, false era retornado.

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMDocument::createAttribute() - Cria um novo attribute
  • DOMDocument::createAttributeNS() - Cria um novo nó de atributo com um namespace associado
  • DOMDocument::createCDATASection() - Cria um novo nó de CDATA
  • DOMDocument::createComment() - Cria novo nó de comentárioe
  • DOMDocument::createElement() - Cria novo nó de elemento
  • DOMDocument::createElementNS() - Cria novo nó de elemento com um namespace associado
  • DOMDocument::createEntityReference() - Cria novo nó de referência de entidade
  • DOMDocument::createProcessingInstruction() - Cria novo nó PI (Processing Instruction)
  • DOMDocument::createTextNode() - Cria novo nó de texto


Cria novo nó de elemento

  • « DOMDocument::createDocumentFragment
  • DOMDocument::createElementNS »
  • PHP Manual
  • DOMDocument
  • Cria novo nó de elemento

DOMDocument::createElement

(PHP 5, PHP 7, PHP 8)

DOMDocument::createElement — Cria novo nó de elemento

Descrição

public DOMDocument::createElement(string $localName, string $value = ""): DOMElement|false

Esta função cria uma nova instância da classe DOMElement. Este nó não aparecerá no documento a menos que seja inserido, por exemplo, com DOMNode::appendChild().

Parâmetros

localName

O nome da tag do elemento.

value

O valor do elemento. Por padrão, um elemento vazio será criado. O valor também pode ser definido posteriormente com DOMElement::$nodeValue. The value of the element. By default, an empty element will be created.

O valor é utilizado literalmente, exceto que as referências de entidade < e > serão escapadas. Note que & precisa ser escapado manualmente; caso contrário, é considerado como o início de uma referência de entidade. Além disso " não será escapado.

Valor Retornado

Retorna uma nova instância da classe DOMElement ou false se ocorrer um erro.

Erros/Exceções

DOM_INVALID_CHARACTER_ERR

Gerado se localName contiver um caractere inválido.

Exemplos

Exemplo #1 Criando um novo elemento e inserindo-o como raiz

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElement('test', 'This is the root element!');

// Inserimos o novo elemento como raiz (filho do documento)
$dom->appendChild($element);

echo $dom->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0" encoding="utf-8"?>
<test>This is the root element!</test>

Exemplo #2 Passando texto contendo um & não escapado como value

<?php
$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->createElement('foo', 'me & you');
$dom->appendChild($element);
echo $dom->saveXML();
?>

O exemplo acima produzirá algo semelhante a:

Warning: DOMDocument::createElement(): unterminated entity reference             you in /in/BjTCg on line 4
<?xml version="1.0" encoding="utf-8"?>
<foo/>

Notas

Nota:

O value não será escapado. Use DOMDocument::createTextNode() para criar um nó de texto com suporte a escapamento.

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMDocument::createAttribute() - Cria um novo attribute
  • DOMDocument::createAttributeNS() - Cria um novo nó de atributo com um namespace associado
  • DOMDocument::createCDATASection() - Cria um novo nó de CDATA
  • DOMDocument::createComment() - Cria novo nó de comentárioe
  • DOMDocument::createDocumentFragment() - Cria novo fragmento de documento
  • DOMDocument::createElementNS() - Cria novo nó de elemento com um namespace associado
  • DOMDocument::createEntityReference() - Cria novo nó de referência de entidade
  • DOMDocument::createProcessingInstruction() - Cria novo nó PI (Processing Instruction)
  • DOMDocument::createTextNode() - Cria novo nó de texto


Cria novo nó de elemento com um namespace associado

  • « DOMDocument::createElement
  • DOMDocument::createEntityReference »
  • PHP Manual
  • DOMDocument
  • Cria novo nó de elemento com um namespace associado

DOMDocument::createElementNS

(PHP 5, PHP 7, PHP 8)

DOMDocument::createElementNS — Cria novo nó de elemento com um namespace associado

Descrição

public DOMDocument::createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false

Esta função cria um novo nó de elemento com um namespace associado. Este nó não aparecerá no documento a menos que seja inserido, por exemplo, com DOMNode::appendChild().

Parâmetros

namespace

O URI do namespace.

qualifiedName

O nome qualificado do elemento, como prefixo:nomedatag.

value

O valor do elemento. Por padrão, um elemento vazio será criado. Você também pode definir o valor posteriormente com DOMElement::$nodeValue.

Valor Retornado

O novo DOMElement ou false se ocorrer um erro.

Erros/Exceções

DOM_INVALID_CHARACTER_ERR

Gerado se qualifiedName contiver um caractere inválido.

DOM_NAMESPACE_ERR

Gerado se qualifiedName for um nome qualificado malformado.

Exemplos

Exemplo #1 Criando um novo elemento e inserindo-o como raiz

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElementNS('http://www.example.com/XFoo', 'xfoo:test', 'This is the root element!');

// Inserimos o novo elemento como raiz (filho do documento)
$dom->appendChild($element);

echo $dom->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0" encoding="utf-8"?>
<xfoo:test xmlns:xfoo="http://www.example.com/XFoo">This is the root element!</xfoo:test>

Exemplo #2 Um exemplo de prefixo de namespace

<?php
$doc = new DOMDocument('1.0', 'utf-8');
$doc->formatOutput = true;
$root = $doc->createElementNS('http://www.w3.org/2005/Atom', 'element');
$doc->appendChild($root);
$root->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:g', 'http://base.google.com/ns/1.0');
$item = $doc->createElementNS('http://base.google.com/ns/1.0', 'g:item_type', 'house');
$root->appendChild($item);

echo $doc->saveXML(), "\n";

echo $item->namespaceURI, "\n"; // Outputs: http://base.google.com/ns/1.0
echo $item->prefix, "\n"; // Outputs: g
echo $item->localName, "\n"; // Outputs: item_type
?>

O exemplo acima produzirá:

<?xml version="1.0" encoding="utf-8"?>
<element xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
  <g:item_type>house</g:item_type>
</element>

http://base.google.com/ns/1.0
g
item_type

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMDocument::createAttribute() - Cria um novo attribute
  • DOMDocument::createAttributeNS() - Cria um novo nó de atributo com um namespace associado
  • DOMDocument::createCDATASection() - Cria um novo nó de CDATA
  • DOMDocument::createComment() - Cria novo nó de comentárioe
  • DOMDocument::createDocumentFragment() - Cria novo fragmento de documento
  • DOMDocument::createElement() - Cria novo nó de elemento
  • DOMDocument::createEntityReference() - Cria novo nó de referência de entidade
  • DOMDocument::createProcessingInstruction() - Cria novo nó PI (Processing Instruction)
  • DOMDocument::createTextNode() - Cria novo nó de texto


Cria novo nó de referência de entidade

  • « DOMDocument::createElementNS
  • DOMDocument::createProcessingInstruction »
  • PHP Manual
  • DOMDocument
  • Cria novo nó de referência de entidade

DOMDocument::createEntityReference

(PHP 5, PHP 7, PHP 8)

DOMDocument::createEntityReference — Cria novo nó de referência de entidade

Descrição

public DOMDocument::createEntityReference(string $name): DOMEntityReference|false

Esta função cria uma nova instância da classe DOMEntityReference. Este nó não aparecerá no documento a menos que seja inserido, por exemplo, com DOMNode::appendChild().

Parâmetros

name

O conteúdo da referência de entidade, por exemplo, a referência de entidade menos os caracteres de & iniciais e os caracteres finais ;.

Valor Retornado

A nova instância de DOMEntityReference ou false se ocorrer um erro.

Erros/Exceções

DOM_INVALID_CHARACTER_ERR

Gerado se name contiver um caractere inválido.

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMDocument::createAttribute() - Cria um novo attribute
  • DOMDocument::createAttributeNS() - Cria um novo nó de atributo com um namespace associado
  • DOMDocument::createCDATASection() - Cria um novo nó de CDATA
  • DOMDocument::createComment() - Cria novo nó de comentárioe
  • DOMDocument::createDocumentFragment() - Cria novo fragmento de documento
  • DOMDocument::createElement() - Cria novo nó de elemento
  • DOMDocument::createElementNS() - Cria novo nó de elemento com um namespace associado
  • DOMDocument::createProcessingInstruction() - Cria novo nó PI (Processing Instruction)
  • DOMDocument::createTextNode() - Cria novo nó de texto


Cria novo nó PI (Processing Instruction)

  • « DOMDocument::createEntityReference
  • DOMDocument::createTextNode »
  • PHP Manual
  • DOMDocument
  • Cria novo nó PI (Processing Instruction)

DOMDocument::createProcessingInstruction

(PHP 5, PHP 7, PHP 8)

DOMDocument::createProcessingInstruction — Cria novo nó PI (Processing Instruction)

Descrição

public DOMDocument::createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false

Esta função cria uma nova instância da classe DOMProcessingInstruction. Este nó não aparecerá no documento a menos que seja inserido, por exemplo, com DOMNode::appendChild().

Parâmetros

target

O alvo da instrução de processamento.

data

O conteúdo da instrução de processamento.

Valor Retornado

O novo DOMProcessingInstruction ou false em caso de erro.

Erros/Exceções

DOM_INVALID_CHARACTER_ERR

Gerado se target contiver um caractere inválido.

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMDocument::createAttribute() - Cria um novo attribute
  • DOMDocument::createAttributeNS() - Cria um novo nó de atributo com um namespace associado
  • DOMDocument::createCDATASection() - Cria um novo nó de CDATA
  • DOMDocument::createComment() - Cria novo nó de comentárioe
  • DOMDocument::createDocumentFragment() - Cria novo fragmento de documento
  • DOMDocument::createElement() - Cria novo nó de elemento
  • DOMDocument::createElementNS() - Cria novo nó de elemento com um namespace associado
  • DOMDocument::createEntityReference() - Cria novo nó de referência de entidade
  • DOMDocument::createTextNode() - Cria novo nó de texto


Cria novo nó de texto

  • « DOMDocument::createProcessingInstruction
  • DOMDocument::getElementById »
  • PHP Manual
  • DOMDocument
  • Cria novo nó de texto

DOMDocument::createTextNode

(PHP 5, PHP 7, PHP 8)

DOMDocument::createTextNode — Cria novo nó de texto

Descrição

public DOMDocument::createTextNode(string $data): DOMText

Esta função cria uma nova instância da classe DOMText. Este nó não aparecerá no documento a menos que seja inserido, por exemplo, com DOMNode::appendChild().

Parâmetros

data

O conteúdo do texto.

Valor Retornado

A nova instância de DOMText.

Registro de Alterações

Versão | Descrição
8.1.0 | Em caso de erro, agora é lançada uma DomException. Anteriormente, retornava false.

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMDocument::createAttribute() - Cria um novo attribute
  • DOMDocument::createAttributeNS() - Cria um novo nó de atributo com um namespace associado
  • DOMDocument::createCDATASection() - Cria um novo nó de CDATA
  • DOMDocument::createComment() - Cria novo nó de comentárioe
  • DOMDocument::createDocumentFragment() - Cria novo fragmento de documento
  • DOMDocument::createElement() - Cria novo nó de elemento
  • DOMDocument::createElementNS() - Cria novo nó de elemento com um namespace associado
  • DOMDocument::createEntityReference() - Cria novo nó de referência de entidade
  • DOMDocument::createProcessingInstruction() - Cria novo nó PI (Processing Instruction)


Procura por um elemento com um determinado ID

  • « DOMDocument::createTextNode
  • DOMDocument::getElementsByTagName »
  • PHP Manual
  • DOMDocument
  • Procura por um elemento com um determinado ID

DOMDocument::getElementById

(PHP 5, PHP 7, PHP 8)

DOMDocument::getElementById — Procura por um elemento com um determinado ID

Descrição

public DOMDocument::getElementById(string $elementId): ?DOMElement

Esta função é semelhante a DOMDocument::getElementsByTagName mas procura por um elemento com um determinado ID.

Para que esta função funcione, será necessário definir alguns atributos de ID com DOMElement::setIdAttribute ou um DTD que define um atributo como tipo ID. Neste último caso, será necessário validar o documento com DOMDocument::validate ou DOMDocument::$validateOnParse antes de usar esta função.

Parâmetros

elementId

O valor de ID único para um elemento.

Valor Retornado

Retorna o DOMElement ou null se o elemento não for encontrado.

Exemplos

Exemplo #1 DOMDocument::getElementById() Example

Os exemplos a seguir usam um arquivo book.xml que contém o seguinte:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
  <!ELEMENT books   (book+)>
  <!ELEMENT book    (title, author+, xhtml:blurb?)>
  <!ELEMENT title   (#PCDATA)>
  <!ELEMENT blurb   (#PCDATA)>
  <!ELEMENT author  (#PCDATA)>
  <!ATTLIST books   xmlns        CDATA  #IMPLIED>
  <!ATTLIST books   xmlns:xhtml  CDATA  #IMPLIED>
  <!ATTLIST book    id           ID     #IMPLIED>
  <!ATTLIST author  email        CDATA  #IMPLIED>
]>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<books xmlns="http://books.php/" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <book id="php-basics">
    <title>Princípios do PHP</title>
    <author email="jim.smith@basics.php">Jim Smith</author>
    <author email="jane.smith@basics.php">Jane Smith</author>
    <xhtml:blurb><![CDATA[
<p><em>Princípios do PHP</em> fornece uma introdução ao PHP.</p>
]]></xhtml:blurb>
  </book>
  <book id="php-advanced">
    <title>Programação PHP Avançada</title>
    <author email="jon.doe@advanced.php">Jon Doe</author>
  </book>
</books>
<?php

$doc = new DomDocument;

// Precisamos validar nosso documento antes de referenciar o ID
$doc->validateOnParse = true;
$doc->Load('book.xml');

echo "The element whose id is 'php-basics' is: " . $doc->getElementById('php-basics')->tagName . "\n";

?>

O exemplo acima produzirá:

The element whose id is 'php-basics' is: book

Veja Também

  • DOMDocument::getElementsByTagName() - Procura por todos os elementos com uma determinada tag name local


Procura por todos os elementos com uma determinada tag name local

  • « DOMDocument::getElementById
  • DOMDocument::getElementsByTagNameNS »
  • PHP Manual
  • DOMDocument
  • Procura por todos os elementos com uma determinada tag name local

DOMDocument::getElementsByTagName

(PHP 5, PHP 7, PHP 8)

DOMDocument::getElementsByTagName — Procura por todos os elementos com uma determinada tag name local

Descrição

public DOMDocument::getElementsByTagName(string $qualifiedName): DOMNodeList

Esta função retorna uma nova instância da classe DOMNodeList contendo todos os elementos com uma determinada tag name local.

Parâmetros

qualifiedName

O name local (sem namespace) da tag a ser correspondida. O valor especial * corresponde a todas as tags.

Valor Retornado

Um novo objeto DOMNodeList contendo todos os elementos correspondentes.

Exemplos

Exemplo #1 Exemplo Básico de Uso

<?php
$xml = <<< XML
<?xml version="1.0" encoding="utf-8"?>
<books>
<book>Patterns of Enterprise Application Architecture</book>
<book>Design Patterns: Elements of Reusable Software Design</book>
<book>Clean Code</book>
</books>
XML;

$dom = new DOMDocument;
$dom->loadXML($xml);
$books = $dom->getElementsByTagName('book');
foreach ($books as $book) {
echo $book->nodeValue, PHP_EOL;
}
?>

O exemplo acima produzirá:

Patterns of Enterprise Application Architecture
Design Patterns: Elements of Reusable Software Design
Clean Code

Veja Também

  • DOMDocument::getElementsByTagNameNS() - Procura por todos os elementos com uma determinada tag name em um namespace específico


Procura por todos os elementos com uma determinada tag name em um namespace específico

  • « DOMDocument::getElementsByTagName
  • DOMDocument::importNode »
  • PHP Manual
  • DOMDocument
  • Procura por todos os elementos com uma determinada tag name em um namespace específico

DOMDocument::getElementsByTagNameNS

(PHP 5, PHP 7, PHP 8)

DOMDocument::getElementsByTagNameNS — Procura por todos os elementos com uma determinada tag name em um namespace específico

Descrição

public DOMDocument::getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList

Retorna um objeto DOMNodeList de todos os elementos com um name local e um URI de namespace específicos.

Parâmetros

namespace

O URI do namespace dos elementos a serem correspondidos. O valor especial "*" corresponde a todos os namespaces. Passar null corresponde ao namespace vazio.

localName

O nome local dos elementos a serem correspondidos. O valor especial "*" corresponde a todos os nomes locais.

Valor Retornado

Um novo objeto DOMNodeList contendo todos os elementos correspondentes.

Registro de Alterações

Versão | Descrição
8.0.3 | namespace agora pode ser nulo.

Exemplos

Exemplo #1 Obter todos os elementos XInclude

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
<xi:include href="book.xml">
<xi:fallback>
<error>xinclude: book.xml not found</error>
</xi:fallback>
</xi:include>
<include>
This is another namespace
</include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;

// carregue a string XML definida acima
$dom->loadXML($xml);

foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') as $element) {
echo 'local name: ', $element->localName, ', prefix: ', $element->prefix, "\n";
}
?>

O exemplo acima produzirá:

local name: include, prefix: xi
local name: fallback, prefix: xi

Veja Também

  • DOMDocument::getElementsByTagName() - Procura por todos os elementos com uma determinada tag name local


Importa um nó para o documento atual

  • « DOMDocument::getElementsByTagNameNS
  • DOMDocument::load »
  • PHP Manual
  • DOMDocument
  • Importa um nó para o documento atual

DOMDocument::importNode

(PHP 5, PHP 7, PHP 8)

DOMDocument::importNode — Importa um nó para o documento atual

Descrição

public DOMDocument::importNode(DOMNode $node, bool $deep = false): DOMNode|false

Esta função retorna uma cópia do nó a ser importado e o associa com o documento atual.

Parâmetros

node

O nó a ser importado.

deep

Se definido como true, este método importará recursivamente a subárvore sob o node.

Nota:

Para copiar os atributos dos nós, deep precisa ser definido como true.

Valor Retornado

O nó copiado ou false, se não puder ser copiado.

Erros/Exceções

DOMException é lançado se o nó não puder ser importado.

Exemplos

Exemplo #1 DOMDocument::importNode() exemplo

Copiando nós entre documentos.

<?php

$orgdoc = new DOMDocument;
$orgdoc->loadXML("<root><element><child>text in child</child></element></root>");

// O nó que queremos importar para um novo documento
$node = $orgdoc->getElementsByTagName("element")->item(0);

// Crie um novo documento
$newdoc = new DOMDocument;
$newdoc->formatOutput = true;

// Adicione alguma marcação
$newdoc->loadXML("<root><someelement>text in some element</someelement></root>");

echo "The 'new document' before copying nodes into it:\n";
echo $newdoc->saveXML();

// Importe o nó, e todos os seus filhos, para o documento
$node = $newdoc->importNode($node, true);
// E então acrescente-o ao nó "<root>"
$newdoc->documentElement->appendChild($node);

echo "\nThe 'new document' after copying the nodes into it:\n";
echo $newdoc->saveXML();
?>

O exemplo acima produzirá:

The 'new document' before copying nodes into it:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
</root>

The 'new document' after copying the nodes into it:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
  <element>
    <child>text in child</child>
  </element>
</root>


Carrega XML de um arquivo

  • « DOMDocument::importNode
  • DOMDocument::loadHTML »
  • PHP Manual
  • DOMDocument
  • Carrega XML de um arquivo

DOMDocument::load

(PHP 5, PHP 7, PHP 8)

DOMDocument::load — Carrega XML de um arquivo

Descrição

public DOMDocument::load(string $filename, int $options = 0): bool

Carrega um documento XML de um arquivo.

Aviso

Caminhos no estilo Unix com barras inclinadas podem causar degradação significativa de desempenho em sistemas Windows; certifique-se de chamar realpath() nesse caso.

Parâmetros

filename

O caminho para o documento XML.

options

Operação bit a bit OU das constantes de opções libxml.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se uma string vazia for passada como filename ou um arquivo vazio for nomeado, um aviso será gerado. Este aviso não é gerado pelo libxml e não pode ser tratado usando as funções de manipulação de erros do libxml.

Registro de Alterações

Versão | Descrição
8.3.0 | Esta função agora tem um tipo de retorno bool tentativo.
8.0.0 | Chamar esta função estaticamente agora irá gerar um Error. Anteriormente, era gerado um E_DEPRECATED.

Exemplos

Exemplo #1 Criando um Documento

<?php
$doc = new DOMDocument();
$doc->load('book.xml');
echo $doc->saveXML();
?>

Veja Também

  • DOMDocument::loadXML() - Carrega XML a partir de uma string
  • DOMDocument::save() - Grava a árvore XML interna de volta em um arquivo
  • DOMDocument::saveXML() - Despeja a árvore XML interna de volta em uma string


Carrega HTML a partir de uma string

  • « DOMDocument::load
  • DOMDocument::loadHTMLFile »
  • PHP Manual
  • DOMDocument
  • Carrega HTML a partir de uma string

DOMDocument::loadHTML

(PHP 5, PHP 7, PHP 8)

DOMDocument::loadHTML — Carrega HTML a partir de uma string

Descrição

public DOMDocument::loadHTML(string $source, int $options = 0): bool

A função analisa o HTML contido na string source. Ao contrário do carregamento de XML, o HTML não precisa ser bem formado para carregar.

Aviso

Esta função analisa a entrada usando um analisador HTML 4. As regras de análise do HTML 5, que é o que os navegadores web modernos usam, são diferentes. Dependendo da entrada, isso pode resultar em uma estrutura DOM diferente. Portanto, esta função não pode ser usada com segurança para sanitizar HTML.

Como exemplo, alguns elementos HTML fecharão implicitamente um elemento pai quando encontrados. As regras para fechar automaticamente os elementos pais diferem entre HTML 4 e HTML 5 e, portanto, a estrutura DOM resultante que DOMDocument vê pode ser diferente da estrutura DOM que um navegador web vê, possibilitando que um invasor quebre o HTML resultante.

Parâmetros

source

A string HTML.

options

Bit a bit OR das constantes de opções da libxml.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se uma string vazia for passada como source, um aviso será gerado. Este aviso não é gerado pelo libxml e não pode ser tratado usando as funções de manipulação de erros do libxml.

Embora o HTML malformado deva ser carregado com sucesso, esta função pode gerar erros E_WARNING quando encontrar marcação incorreta. As funções de tratamento de erros da biblioteca libxml podem ser usadas para lidar com esses erros.

Registro de Alterações

Versão | Descrição
8.3.0 | Esta função agora tem um tipo de retorno bool tentativo.
8.0.0 | Chamando esta função estaticamente agora irá gerar um Error. Anteriormente, era gerado um E_DEPRECATED.

Exemplos

Exemplo #1 Criando um Documento

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>

Veja Também

  • DOMDocument::loadHTMLFile() - Carrega HTML de um arquivo
  • DOMDocument::saveHTML() - Despeja o documento interno em uma string usando formatação HTML
  • DOMDocument::saveHTMLFile() - Despeja o documento interno em um arquivo usando formatação HTML


Carrega HTML de um arquivo

  • « DOMDocument::loadHTML
  • DOMDocument::loadXML »
  • PHP Manual
  • DOMDocument
  • Carrega HTML de um arquivo

DOMDocument::loadHTMLFile

(PHP 5, PHP 7, PHP 8)

DOMDocument::loadHTMLFile — Carrega HTML de um arquivo

Descrição

public DOMDocument::loadHTMLFile(string $filename, int $options = 0): bool

A função analisa o documento HTML no arquivo com o nome filename. Ao contrário do carregamento de XML, o HTML não precisa ser bem formado para ser carregado.

Aviso

Esta função analisa a entrada usando um analisador HTML 4. As regras de análise do HTML 5, que é o que os navegadores web modernos usam, são diferentes. Dependendo da entrada, isso pode resultar em uma estrutura DOM diferente. Portanto, esta função não pode ser usada com segurança para sanitizar HTML.

Como exemplo, alguns elementos HTML fecharão implicitamente um elemento pai quando encontrados. As regras para fechar automaticamente os elementos pais diferem entre HTML 4 e HTML 5 e, portanto, a estrutura DOM resultante que DOMDocument vê pode ser diferente da estrutura DOM que um navegador web vê, possibilitando que um invasor quebre o HTML resultante.

Parâmetros

filename

O caminho para o arquivo HTML.

options

Bit a bit OR das constantes de opções da libxml.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se uma string vazia for passada como o filename ou um arquivo vazio for nomeado, um aviso será gerado. Este aviso não é gerado pelo libxml e não pode ser tratado usando as funções de manipulação de erros do libxml.

Embora o HTML malformado deva ser carregado com sucesso, esta função pode gerar erros E_WARNING quando encontrar marcação incorreta. As funções de tratamento de erros da biblioteca libxml podem ser usadas para lidar com esses erros.

Registro de Alterações

Versão | Descrição
8.3.0 | Esta função agora tem um tipo de retorno bool tentativo.
8.0.0 | Chamando esta função estaticamente agora irá gerar um Error. Anteriormente, era gerado um E_DEPRECATED.

Exemplos

Exemplo #1 Criando um Documento

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>

Veja Também

  • DOMDocument::loadHTML() - Carrega HTML a partir de uma string
  • DOMDocument::saveHTML() - Despeja o documento interno em uma string usando formatação HTML
  • DOMDocument::saveHTMLFile() - Despeja o documento interno em um arquivo usando formatação HTML


Carrega XML a partir de uma string

  • « DOMDocument::loadHTMLFile
  • DOMDocument::normalizeDocument »
  • PHP Manual
  • DOMDocument
  • Carrega XML a partir de uma string

DOMDocument::loadXML

(PHP 5, PHP 7, PHP 8)

DOMDocument::loadXML — Carrega XML a partir de uma string

Descrição

public DOMDocument::loadXML(string $source, int $options = 0): bool

Carrega um documento XML a partir de uma string.

Parâmetros

source

A string contendo o XML.

options

Operação bit a bit OU das constantes de opção libxml.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se uma string vazia for passada como o source, um aviso será gerado. Este aviso não é gerado pelo libxml e não pode ser tratado usando as funções de manipulação de erros do libxml.

Registro de Alterações

Versão | Descrição
8.3.0 | Esta função agora tem um tipo de retorno bool tentativo.
8.0.0 | Chamando esta função estaticamente agora irá gerar um Error. Anteriormente, era gerado um E_DEPRECATED.

Exemplos

Exemplo #1 Criando um Documento

<?php
$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Veja Também

  • DOMDocument::load() - Carrega XML de um arquivo
  • DOMDocument::save() - Grava a árvore XML interna de volta em um arquivo
  • DOMDocument::saveXML() - Despeja a árvore XML interna de volta em uma string


Normaliza o documento

  • « DOMDocument::loadXML
  • DOMDocument::prepend »
  • PHP Manual
  • DOMDocument
  • Normaliza o documento

DOMDocument::normalizeDocument

(PHP 5, PHP 7, PHP 8)

DOMDocument::normalizeDocument — Normaliza o documento

Descrição

public DOMDocument::normalizeDocument(): void

Este método age como se fosse salvo e carregado o documento, colocando o documento em uma forma "normal".

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • » A Especificação DOM
  • DOMNode::normalize() - Normaliza o nó


Adiciona nós antes do primeiro nó filho

  • « DOMDocument::normalizeDocument
  • DOMDocument::registerNodeClass »
  • PHP Manual
  • DOMDocument
  • Adiciona nós antes do primeiro nó filho

DOMDocument::prepend

(PHP 8)

DOMDocument::prepend — Adiciona nós antes do primeiro nó filho

Descrição

public DOMDocument::prepend(DOMNode|string ...$nodes): void

Adiciona um ou muitos nodes à lista de filhos antes do primeiro nó filho.

Parâmetros

nodes

Os nós a serem inseridos. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMDocument::prepend() example

Adiciona nós antes da raiz do documento.

<?php
$doc = new DOMDocument;
$doc->loadXML("<world/>");

$doc->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<hello/>
beautiful
<world/>

Veja Também

  • DOMParentNode::prepend() - Insere nós antes do primeiro nó filho
  • DOMDocument::append() - Adiciona nós após o último nó filho


Registra uma classe estendida usada para criar um tipo de nó base

  • « DOMDocument::prepend
  • DOMDocument::relaxNGValidate »
  • PHP Manual
  • DOMDocument
  • Registra uma classe estendida usada para criar um tipo de nó base

DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMDocument::registerNodeClass — Registra uma classe estendida usada para criar um tipo de nó base

Descrição

public DOMDocument::registerNodeClass(string $baseClass, ?string $extendedClass): bool

Este método permite registrar sua própria classe DOM estendida para ser usada posteriormente pela extensão PHP DOM.

Este método não faz parte do padrão DOM.

Cuidado

O construtor dos objetos das classes de nó registradas não é chamado.

Parâmetros

baseClass

A classe DOM que você deseja estender. Você pode encontrar uma lista dessas classes na introdução ao capítulo.

extendedClass

O nome da sua classe estendida. Se null for fornecido, qualquer classe previamente registrada estendendo baseClass será removida.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Adicionando um novo método a DOMElement para facilitar nosso código

<?php

class myElement extends DOMElement {
function appendElement($name) {
return $this->appendChild(new myElement($name));
}
}

class myDocument extends DOMDocument {
function setRoot($name) {
return $this->appendChild(new myElement($name));
}
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement', 'myElement');

// A partir de agora, adicionar um elemento a outro custa apenas uma chamada de método!
$root = $doc->setRoot('root');
$child = $root->appendElement('child');
$child->setAttribute('foo', 'bar');

echo $doc->saveXML();

?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<root><child foo="bar"/></root>

Exemplo #2 Recuperando elementos como uma classe personalizada

<?php
class myElement extends DOMElement {
public function __toString() {
return $this->nodeValue;
}
}

$doc = new DOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");
$doc->registerNodeClass("DOMElement", "myElement");

$element = $doc->getElementsByTagName("child")->item(0);
var_dump(get_class($element));

// E aproveite o método __toString..
echo $element;
?>

O exemplo acima produzirá:

string(9) "myElement"
text in child

Exemplo #3 Recuperando o documento proprietário

Ao instanciar um DOMDocument personalizado, a propriedade ownerDocument se referirá à classe instanciada. No entanto, se todas as referências a essa classe forem removidas, ela será destruída e um novo DOMDocument será criado. Por esse motivo, você pode usar DOMDocument::registerNodeClass() com DOMDocument

<?php
class MyDOMDocument extends DOMDocument {
}

class MyOtherDOMDocument extends DOMDocument {
}

// Crie MyDOMDocument com algum XML
$doc = new MyDOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");

$child = $doc->getElementsByTagName("child")->item(0);

// O proprietário atual do nó é MyDOMDocument
var_dump(get_class($child->ownerDocument));
// MyDOMDocument é destruído
unset($doc);
// E uma nova instância DOMDocument é criada
var_dump(get_class($child->ownerDocument));

// Importe um nó de MyDOMDocument
$newdoc = new MyOtherDOMDocument;
$child = $newdoc->importNode($child);

// Registre DOMDocument personalizado
$newdoc->registerNodeClass("DOMDocument", "MyOtherDOMDocument");

var_dump(get_class($child->ownerDocument));
unset($doc);
// Nova instância MyOtherDOMDocument é criada
var_dump(get_class($child->ownerDocument));
?>

O exemplo acima produzirá:

string(13) "MyDOMDocument"
string(11) "DOMDocument"
string(18) "MyOtherDOMDocument"
string(18) "MyOtherDOMDocument"

Exemplo #4 Objetos personalizados são transitórios

Cuidado

Objetos das classes de nó registradas são transitórios, ou seja, eles são destruídos quando não são mais referenciados pelo código PHP e recriados ao serem recuperados novamente. Isso implica que os valores das propriedades personalizadas serão perdidos após a recriação.

<?php
class MyDOMElement extends DOMElement
{
public $myProp = 'default value';
}

$doc = new DOMDocument();
$doc->registerNodeClass('DOMElement', 'MyDOMElement');

$node = $doc->createElement('a');
$node->myProp = 'modified value';
$doc->appendChild($node);

echo $doc->childNodes[0]->myProp, PHP_EOL;
unset($node);
echo $doc->childNodes[0]->myProp, PHP_EOL;
?>

O exemplo acima produzirá:

modified value
default value


Realiza a validação relaxNG no documento

  • « DOMDocument::registerNodeClass
  • DOMDocument::relaxNGValidateSource »
  • PHP Manual
  • DOMDocument
  • Realiza a validação relaxNG no documento

DOMDocument::relaxNGValidate

(PHP 5, PHP 7, PHP 8)

DOMDocument::relaxNGValidate — Realiza a validação relaxNG no documento

Descrição

public DOMDocument::relaxNGValidate(string $filename): bool

Realiza a validação » relaxNG no documento com base no esquema RNG fornecido.

Parâmetros

filename

O arquivo RNG.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • DOMDocument::relaxNGValidateSource() - Realiza a validação relaxNG no documento
  • DOMDocument::schemaValidate() - Valida um documento com base em um esquema. Apenas XML Schema 1.0 é suportado.
  • DOMDocument::schemaValidateSource() - Valida um documento com base em um esquema
  • DOMDocument::validate() - Valida o documento com base em seu DTD


Realiza a validação relaxNG no documento

  • « DOMDocument::relaxNGValidate
  • DOMDocument::replaceChildren »
  • PHP Manual
  • DOMDocument
  • Realiza a validação relaxNG no documento

DOMDocument::relaxNGValidateSource

(PHP 5, PHP 7, PHP 8)

DOMDocument::relaxNGValidateSource — Realiza a validação relaxNG no documento

Descrição

public DOMDocument::relaxNGValidateSource(string $source): bool

Realiza a validação » relaxNG no documento com base no esquema RNG fornecido.

Parâmetros

source

Uma string contendo o esquema RNG.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • DOMDocument::relaxNGValidate() - Realiza a validação relaxNG no documento
  • DOMDocument::schemaValidate() - Valida um documento com base em um esquema. Apenas XML Schema 1.0 é suportado.
  • DOMDocument::schemaValidateSource() - Valida um documento com base em um esquema
  • DOMDocument::validate() - Valida o documento com base em seu DTD


Substitui filhos no documento

  • « DOMDocument::relaxNGValidateSource
  • DOMDocument::save »
  • PHP Manual
  • DOMDocument
  • Substitui filhos no documento

DOMDocument::replaceChildren

(PHP 8 >= 8.3.0)

DOMDocument::replaceChildren — Substitui filhos no documento

Descrição

public DOMDocument::replaceChildren(DOMNode|string ...$nodes): void

Substitui os filhos no documento por novos nodes.

Parâmetros

nodes

Os nós que substituirão os filhos. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMDocument::replaceChildren() exemplo

Substitui os filhos por novos nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");

$doc->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
beautiful
<world/>

Veja Também

  • DOMParentNode::replaceChildren() - Substitui filhos no nó
  • DOMDocument::append() - Adiciona nós após o último nó filho
  • DOMDocument::prepend() - Adiciona nós antes do primeiro nó filho


Grava a árvore XML interna de volta em um arquivo

  • « DOMDocument::replaceChildren
  • DOMDocument::saveHTML »
  • PHP Manual
  • DOMDocument
  • Grava a árvore XML interna de volta em um arquivo

DOMDocument::save

(PHP 5, PHP 7, PHP 8)

DOMDocument::save — Grava a árvore XML interna de volta em um arquivo

Descrição

public DOMDocument::save(string $filename, int $options = 0): int|false

Cria um documento XML a partir da representação DOM. Esta função é geralmente chamada após construir um novo documento DOM do zero, como no exemplo abaixo.

Parâmetros

filename

O caminho para o documento XML salvo.

options

Opções adicionais. Atualmente, apenas LIBXML_NOEMPTYTAG é suportado.

Valor Retornado

Retorna o número de bytes gravados ou false se ocorrer um erro.

Exemplos

Exemplo #1 Salvando uma árvore DOM em um arquivo

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo 'Wrote: ' . $doc->save("/tmp/test.xml") . ' bytes'; // Wrote: 72 bytes

?>

Veja Também

  • DOMDocument::saveXML() - Despeja a árvore XML interna de volta em uma string
  • DOMDocument::load() - Carrega XML de um arquivo
  • DOMDocument::loadXML() - Carrega XML a partir de uma string


Despeja o documento interno em uma string usando formatação HTML

  • « DOMDocument::save
  • DOMDocument::saveHTMLFile »
  • PHP Manual
  • DOMDocument
  • Despeja o documento interno em uma string usando formatação HTML

DOMDocument::saveHTML

(PHP 5, PHP 7, PHP 8)

DOMDocument::saveHTML — Despeja o documento interno em uma string usando formatação HTML

Descrição

public DOMDocument::saveHTML(?DOMNode $node = null): string|false

Cria um documento HTML a partir da representação DOM. Esta função é geralmente chamada após construir um novo documento DOM do zero, como no exemplo abaixo.

Parâmetros

node

Parâmetro opcional para gerar a saída de um subconjunto do documento.

Valor Retornado

Retorna o HTML, ou false se ocorrer um erro.

Exemplos

Exemplo #1 Salvando uma árvore HTML em uma string

<?php

$doc = new DOMDocument('1.0');

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo $doc->saveHTML();

?>

Veja Também

  • DOMDocument::saveHTMLFile() - Despeja o documento interno em um arquivo usando formatação HTML
  • DOMDocument::loadHTML() - Carrega HTML a partir de uma string
  • DOMDocument::loadHTMLFile() - Carrega HTML de um arquivo


Despeja o documento interno em um arquivo usando formatação HTML

  • « DOMDocument::saveHTML
  • DOMDocument::saveXML »
  • PHP Manual
  • DOMDocument
  • Despeja o documento interno em um arquivo usando formatação HTML

DOMDocument::saveHTMLFile

(PHP 5, PHP 7, PHP 8)

DOMDocument::saveHTMLFile — Despeja o documento interno em um arquivo usando formatação HTML

Descrição

public DOMDocument::saveHTMLFile(string $filename): int|false

Cria um documento HTML a partir da representação DOM. Esta função é geralmente chamada após construir um novo documento DOM do zero, como no exemplo abaixo.

Parâmetros

filename

O caminho para o documento HTML salvo.

Valor Retornado

Retorna o número de bytes gravados ou false se ocorrer um erro.

Exemplos

Exemplo #1 Salvando uma árvore HTML em um arquivo

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo 'Wrote: ' . $doc->saveHTMLFile("/tmp/test.html") . ' bytes'; // Wrote: 129 bytes

?>

Veja Também

  • DOMDocument::saveHTML() - Despeja o documento interno em uma string usando formatação HTML
  • DOMDocument::loadHTML() - Carrega HTML a partir de uma string
  • DOMDocument::loadHTMLFile() - Carrega HTML de um arquivo


Despeja a árvore XML interna de volta em uma string

  • « DOMDocument::saveHTMLFile
  • DOMDocument::schemaValidate »
  • PHP Manual
  • DOMDocument
  • Despeja a árvore XML interna de volta em uma string

DOMDocument::saveXML

(PHP 5, PHP 7, PHP 8)

DOMDocument::saveXML — Despeja a árvore XML interna de volta em uma string

Descrição

public DOMDocument::saveXML(?DOMNode $node = null, int $options = 0): string|false

Cria um documento XML a partir da representação DOM. Esta função é geralmente chamada após construir um novo documento DOM do zero, como no exemplo abaixo.

Parâmetros

node

Use este parâmetro para gerar apenas um nó específico sem declaração XML, em vez de gerar o documento inteiro.

options

Opções adicionais. As opções LIBXML_NOEMPTYTAG e LIBXML_NOXMLDECL são suportadas. Antes do PHP 8.3.0, apenas a opção LIBXML_NOEMPTYTAG é suportada.

Valor Retornado

Retorna o XML, ou false se ocorrer um erro.

Erros/Exceções

DOM_WRONG_DOCUMENT_ERR

Gerado se node pertencer a outro documento.

Registro de Alterações

Versão | Descrição
8.3.0 | LIBXML_NOXMLDECL agora é suportada.

Exemplos

Exemplo #1 Salvando uma árvore DOM em uma string

<?php

$doc = new DOMDocument('1.0');
// queremos uma saída formatada
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo "Saving all the document:\n";
echo $doc->saveXML() . "\n";

echo "Saving only the title part:\n";
echo $doc->saveXML($title);

?>

O exemplo acima produzirá:

Saving all the document:
<?xml version="1.0"?>
<book>
  <title>This is the title</title>
</book>

Saving only the title part:
<title>This is the title</title>

Veja Também

  • DOMDocument::save() - Grava a árvore XML interna de volta em um arquivo
  • DOMDocument::load() - Carrega XML de um arquivo
  • DOMDocument::loadXML() - Carrega XML a partir de uma string


Valida um documento com base em um esquema. Apenas XML Schema 1.0 é suportado.

  • « DOMDocument::saveXML
  • DOMDocument::schemaValidateSource »
  • PHP Manual
  • DOMDocument
  • Valida um documento com base em um esquema. Apenas XML Schema 1.0 é suportado.

DOMDocument::schemaValidate

(PHP 5, PHP 7, PHP 8)

DOMDocument::schemaValidate — Valida um documento com base em um esquema. Apenas XML Schema 1.0 é suportado.

Descrição

public DOMDocument::schemaValidate(string $filename, int $flags = 0): bool

Valida um documento com base no arquivo de esquema fornecido.

Parâmetros

filename

O caminho para o esquema.

flags

Um conjunto de bits para as flags de validação de esquema do Libxml. Atualmente, o único valor suportado é LIBXML_SCHEMA_CREATE. Disponível desde o Libxml 2.6.14.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • DOMDocument::schemaValidateSource() - Valida um documento com base em um esquema
  • DOMDocument::relaxNGValidate() - Realiza a validação relaxNG no documento
  • DOMDocument::relaxNGValidateSource() - Realiza a validação relaxNG no documento
  • DOMDocument::validate() - Valida o documento com base em seu DTD


Valida um documento com base em um esquema

  • « DOMDocument::schemaValidate
  • DOMDocument::validate »
  • PHP Manual
  • DOMDocument
  • Valida um documento com base em um esquema

DOMDocument::schemaValidateSource

(PHP 5, PHP 7, PHP 8)

DOMDocument::schemaValidateSource — Valida um documento com base em um esquema

Descrição

public DOMDocument::schemaValidateSource(string $source, int $flags = 0): bool

Valida um documento com base em um esquema definido na string fornecida.

Parâmetros

source

Uma string contendo o esquema.

flags

Um conjunto de bits para as flags de validação de esquema do Libxml. Atualmente, o único valor suportado é LIBXML_SCHEMA_CREATE. Disponível desde o Libxml 2.6.14.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • DOMDocument::schemaValidate() - Valida um documento com base em um esquema. Apenas XML Schema 1.0 é suportado.
  • DOMDocument::relaxNGValidate() - Realiza a validação relaxNG no documento
  • DOMDocument::relaxNGValidateSource() - Realiza a validação relaxNG no documento
  • DOMDocument::validate() - Valida o documento com base em seu DTD


Valida o documento com base em seu DTD

  • « DOMDocument::schemaValidateSource
  • DOMDocument::xinclude »
  • PHP Manual
  • DOMDocument
  • Valida o documento com base em seu DTD

DOMDocument::validate

(PHP 5, PHP 7, PHP 8)

DOMDocument::validate — Valida o documento com base em seu DTD

Descrição

public DOMDocument::validate(): bool

Valida o documento com base em seu DTD.

Você também pode usar a propriedade validateOnParse de DOMDocument para fazer uma validação DTD.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. Se o documento não tiver um DTD anexado, este método retornará false.

Exemplos

Exemplo #1 Exemplo de validação DTD

<?php
$dom = new DOMDocument;
$dom->load('book.xml');
if ($dom->validate()) {
echo "This document is valid!\n";
}
?>

Você também pode validar seu arquivo XML durante o carregamento:

<?php
$dom = new DOMDocument;
$dom->validateOnParse = true;
$dom->load('book.xml');
?>

Veja Também

  • DOMDocument::schemaValidate() - Valida um documento com base em um esquema. Apenas XML Schema 1.0 é suportado.
  • DOMDocument::schemaValidateSource() - Valida um documento com base em um esquema
  • DOMDocument::relaxNGValidate() - Realiza a validação relaxNG no documento
  • DOMDocument::relaxNGValidateSource() - Realiza a validação relaxNG no documento


Substitui XIncludes em um objeto DOMDocument

  • « DOMDocument::validate
  • DOMDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Substitui XIncludes em um objeto DOMDocument

DOMDocument::xinclude

(PHP 5, PHP 7, PHP 8)

DOMDocument::xinclude — Substitui XIncludes em um objeto DOMDocument

Descrição

public DOMDocument::xinclude(int $options = 0): int|false

Este método substitui » XIncludes em um objeto DOMDocument.

Nota:

Devido ao libxml2 resolver automaticamente entidades, este método produzirá resultados inesperados se o arquivo XML incluído tiver um DTD anexado.

Parâmetros

options

Bit a bit OR das constantes de opções da libxml.

Valor Retornado

Retorna o número de XIncludes no documento, -1 se algum processamento falhar, ou false se não houver substituições.

Exemplos

Exemplo #1 DOMDocument::xinclude() exemplo

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
<xi:include href="book.xml">
<xi:fallback>
<error>xinclude: book.xml not found</error>
</xi:fallback>
</xi:include>
</para>
</chapter>
EOD;

$dom = new DOMDocument;

// vamos ter uma saída bonita
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;

// carrega a string XML definida acima
$dom->loadXML($xml);

// substitui xincludes
$dom->xinclude();

echo $dom->saveXML();

?>

O exemplo acima produzirá algo semelhante a:

<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>Books of the other guy..</title>
  <para>
    <row xml:base="/home/didou/book.xml">
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
  </para>
</chapter>


A classe DOMDocumentFragment

(PHP 5, PHP 7, PHP 8)

Resumo da classe

class DOMDocumentFragment extends DOMNode implements DOMParentNode {
/* Propriedades */
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* Propriedades herdadas */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public __construct()
public append(DOMNode|string ...$nodes): void
public appendXML(string $data): bool
public prepend(DOMNode|string ...$nodes): void
public replaceChildren(DOMNode|string ...$nodes): void
/* Métodos herdados */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

childElementCount

O número de elementos filhos.

firstElementChild

Primeiro elemento filho ou null.

lastElementChild

Último elemento filho ou null.

Registro de Alterações

Versão | Descrição
8.0.0 | As propriedades firstElementChild, lastElementChild, e childElementCount foram adicionadas.
8.0.0 | DOMDocumentFragment implementa DOMParentNode agora.

Índice

  • DOMDocumentFragment::append — Acrescenta nós após o último nó filho
  • DOMDocumentFragment::appendXML — Anexa dados XML brutos
  • DOMDocumentFragment::__construct — Constrói um objeto DOMDocumentFragment
  • DOMDocumentFragment::prepend — Insere nós antes do primeiro nó filho
  • DOMDocumentFragment::replaceChildren — Substitui filhos no fragmento


Acrescenta nós após o último nó filho

  • « DOMDocumentFragment
  • DOMDocumentFragment::appendXML »
  • PHP Manual
  • DOMDocumentFragment
  • Acrescenta nós após o último nó filho

DOMDocumentFragment::append

(PHP 8)

DOMDocumentFragment::append — Acrescenta nós após o último nó filho

Descrição

public DOMDocumentFragment::append(DOMNode|string ...$nodes): void

Acrescenta um ou muitos nodes à lista de filhos após o último nó filho.

Parâmetros

nodes

Os nós a serem acrescentados. As strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMDocumentFragment::append() exemplo

Acrescenta nós no fragmento.

<?php
$doc = new DOMDocument;
$fragment = $doc->createDocumentFragment();
$fragment->appendChild($doc->createElement("hello"));

$fragment->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML($fragment);
?>

O exemplo acima produzirá:

<hello/>beautiful<world/>

Veja Também

  • DOMParentNode::append() - Acrescenta nós após o último nó filho
  • DOMDocumentFragment::prepend() - Insere nós antes do primeiro nó filho


Anexa dados XML brutos

  • « DOMDocumentFragment::append
  • DOMDocumentFragment::__construct »
  • PHP Manual
  • DOMDocumentFragment
  • Anexa dados XML brutos

DOMDocumentFragment::appendXML

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

DOMDocumentFragment::appendXML — Anexa dados XML brutos

Descrição

public DOMDocumentFragment::appendXML(string $data): bool

Anexa dados XML brutos a um DOMDocumentFragment.

Este método não faz parte do padrão DOM. Ele foi criado como uma abordagem mais simples para anexar um DOMDocumentFragment em um DOMDocument.

Se você deseja seguir os padrões, precisará criar um DOMDocument temporário com uma raiz fictícia e em seguida percorrer os nós filhos da raiz dos seus dados XML para anexá-los.

Parâmetros

data

XML a ser anexado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Anexando dados XML ao seu documento

<?php
$doc = new DOMDocument();
$doc->loadXML("<root/>");
$f = $doc->createDocumentFragment();
$f->appendXML("<foo>text</foo><bar>text2</bar>");
$doc->documentElement->appendChild($f);
echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<root><foo>text</foo><bar>text2</bar></root>


Constrói um objeto DOMDocumentFragment

  • « DOMDocumentFragment::appendXML
  • DOMDocumentFragment::prepend »
  • PHP Manual
  • DOMDocumentFragment
  • Constrói um objeto DOMDocumentFragment

DOMDocumentFragment::__construct

(PHP 5, PHP 7, PHP 8)

DOMDocumentFragment::__construct — Constrói um objeto DOMDocumentFragment

Descrição

public DOMDocumentFragment::__construct()

Parâmetros

Esta função não possui parâmetros.


Insere nós antes do primeiro nó filho

  • « DOMDocumentFragment::__construct
  • DOMDocumentFragment::replaceChildren »
  • PHP Manual
  • DOMDocumentFragment
  • Insere nós antes do primeiro nó filho

DOMDocumentFragment::prepend

(PHP 8)

DOMDocumentFragment::prepend — Insere nós antes do primeiro nó filho

Descrição

public DOMDocumentFragment::prepend(DOMNode|string ...$nodes): void

Insere um ou muitos nodes na lista de filhos antes do primeiro nó filho.

Parâmetros

nodes

Os nós a serem inseridos. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMDocumentFragment::prepend() exemplo

Insere nós antes da raiz do fragmento.

<?php
$doc = new DOMDocument;
$fragment = $doc->createDocumentFragment();
$fragment->appendChild($doc->createElement("world"));

$fragment->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML($fragment);
?>

O exemplo acima produzirá:

<hello/>beautiful<world/>

Veja Também

  • DOMParentNode::prepend() - Insere nós antes do primeiro nó filho
  • DOMDocumentFragment::append() - Acrescenta nós após o último nó filho


Substitui filhos no fragmento

  • « DOMDocumentFragment::prepend
  • DOMDocumentType »
  • PHP Manual
  • DOMDocumentFragment
  • Substitui filhos no fragmento

DOMDocumentFragment::replaceChildren

(PHP 8 >= 8.3.0)

DOMDocumentFragment::replaceChildren — Substitui filhos no fragmento

Descrição

public DOMDocumentFragment::replaceChildren(DOMNode|string ...$nodes): void

Substitui os filhos no fragmento de documento por novos nodes.

Parâmetros

nodes

Os nós que substituirão os filhos. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMDocumentFragment::replaceChildren() exemplo

Substitui os filhos por novos nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$fragment = $doc->createDocumentFragment();
$fragment->append("hello");

$fragment->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML($fragment);
?>

O exemplo acima produzirá:

beautiful
<world/>

Veja Também

  • DOMParentNode::replaceChildren() - Substitui filhos no nó
  • DOMDocumentFragment::append() - Acrescenta nós após o último nó filho
  • DOMDocumentFragment::prepend() - Insere nós antes do primeiro nó filho


A classe DOMDocumentType

(PHP 5, PHP 7, PHP 8)

Introdução

Cada DOMDocument possui um atributo doctype cujo valor é ou null ou um objeto DOMDocumentType.

Resumo da classe

class DOMDocumentType extends DOMNode {
/* Propriedades */
public readonly string $name;
public readonly DOMNamedNodeMap $entities;
public readonly DOMNamedNodeMap $notations;
public readonly string $publicId;
public readonly string $systemId;
public readonly ?string $internalSubset;
/* Propriedades herdadas */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos herdados */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

publicId

O identificador público do subconjunto externo.

systemId

O identificador do sistema do subconjunto externo. Isso pode ser um URI absoluto ou não.

name

O nome do DTD, ou seja, o nome imediatamente após a palavra-chave DOCTYPE.

entities

Um DOMNamedNodeMap que contém as entidades gerais, tanto externas quanto internas, declaradas no DTD.

notations

Um DOMNamedNodeMap que contém as notações declaradas no DTD.

internalSubset

O subconjunto interno como uma string, ou null se não houver nenhum. Isso não contém os colchetes delimitadores.


A classe DOMElement

(PHP 5, PHP 7, PHP 8)

Resumo da classe

class DOMElement extends DOMNode implements DOMParentNode, DOMChildNode {
/* Propriedades */
public readonly string $tagName;
public string $className;
public string $id;
public readonly mixed $schemaTypeInfo = null;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
/* Propriedades herdadas */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public __construct(string $qualifiedName, ?string $value = null, string $namespace = "")
public after(DOMNode|string ...$nodes): void
public append(DOMNode|string ...$nodes): void
public before(DOMNode|string ...$nodes): void
public getAttribute(string $qualifiedName): string
public getAttributeNames(): array
public getAttributeNode(string $qualifiedName): DOMAttr|DOMNameSpaceNode|false
public getAttributeNodeNS(?string $namespace, string $localName): DOMAttr|DOMNameSpaceNode|null
public getAttributeNS(?string $namespace, string $localName): string
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public hasAttribute(string $qualifiedName): bool
public hasAttributeNS(?string $namespace, string $localName): bool
public insertAdjacentElement(string $where, DOMElement $element): ?DOMElement
public insertAdjacentText(string $where, string $data): void
public prepend(DOMNode|string ...$nodes): void
public remove(): void
public removeAttribute(string $qualifiedName): bool
public removeAttributeNode(DOMAttr $attr): DOMAttr|false
public removeAttributeNS(?string $namespace, string $localName): void
public replaceChildren(DOMNode|string ...$nodes): void
public replaceWith(DOMNode|string ...$nodes): void
public setAttribute(string $qualifiedName, string $value): DOMAttr|bool
public setAttributeNode(DOMAttr $attr): DOMAttr|null|false
public setAttributeNodeNS(DOMAttr $attr): DOMAttr|null|false
public setAttributeNS(?string $namespace, string $qualifiedName, string $value): void
public setIdAttribute(string $qualifiedName, bool $isId): void
public setIdAttributeNode(DOMAttr $attr, bool $isId): void
public setIdAttributeNS(string $namespace, string $qualifiedName, bool $isId): void
public toggleAttribute(string $qualifiedName, ?bool $force = null): bool
/* Métodos herdados */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

childElementCount

O número de elementos filhos.

firstElementChild

O primeiro elemento filho ou null.

lastElementChild

O último elemento filho ou null.

nextElementSibling

O próximo elemento irmão ou null.

previousElementSibling

O elemento irmão anterior ou null.

schemaTypeInfo

Ainda não implementado, sempre retorna null

tagName

O nome do elemento

className

Uma string representando as classes do elemento separadas por espaços

id

O ID do elemento

Registro de Alterações

Versão | Descrição
8.0.0 | As propriedades firstElementChild, lastElementChild, childElementCount, previousElementSibling, e nextElementSibling foram adicionadas.
8.0.0 | DOMElement implementa DOMParentNode e DOMChildNode agora.

Notas

Nota:

A extensão DOM usa codificação UTF-8. Use mb_convert_encoding(), UConverter::transcode() ou iconv() para lidar com outras codificações.

Índice

  • DOMElement::after — Adiciona nós após o elemento
  • DOMElement::append — Adiciona nós após o último nó filho
  • DOMElement::before — Adiciona nós antes do elemento
  • DOMElement::__construct — Cria um novo objeto DOMElement
  • DOMElement::getAttribute — Retorna o valor do atributo
  • DOMElement::getAttributeNames — Obtém nomes de atributos
  • DOMElement::getAttributeNode — Retorna o nó do atributo
  • DOMElement::getAttributeNodeNS — Retorna o nó do atributo
  • DOMElement::getAttributeNS — Retorna o valor do atributo
  • DOMElement::getElementsByTagName — Obtém elementos pelo nome da tag
  • DOMElement::getElementsByTagNameNS — Obtém elementos por namespaceURI e localName
  • DOMElement::hasAttribute — Verifica se o atributo existe
  • DOMElement::hasAttributeNS — Verifica se o atributo existe
  • DOMElement::insertAdjacentElement — Insere um elemento adjacente
  • DOMElement::insertAdjacentText — Insere texto adjacente
  • DOMElement::prepend — Adiciona nós antes do primeiro nó filho
  • DOMElement::remove — Remove o elemento
  • DOMElement::removeAttribute — Remove atributo
  • DOMElement::removeAttributeNode — Remove atributo
  • DOMElement::removeAttributeNS — Remove atributo
  • DOMElement::replaceChildren — Substitui filhos no elemento
  • DOMElement::replaceWith — Substitui o elemento por novos nodes
  • DOMElement::setAttribute — Adiciona ou modifica um atributo existente
  • DOMElement::setAttributeNode — Adiciona um novo nó de atributo ao elemento
  • DOMElement::setAttributeNodeNS — Adiciona um novo nó de atributo ao elemento
  • DOMElement::setAttributeNS — Adiciona um novo atributo
  • DOMElement::setIdAttribute — Declara que o atributo especificado pelo nome é do tipo ID
  • DOMElement::setIdAttributeNode — Declara que o atributo especificado pelo nó é do tipo ID
  • DOMElement::setIdAttributeNS — Declara que o atributo especificado pelo nome local e pelo URI do namespace é do tipo ID
  • DOMElement::toggleAttribute — Alterna atributo


Adiciona nós após o elemento

  • « DOMElement
  • DOMElement::append »
  • PHP Manual
  • DOMElement
  • Adiciona nós após o elemento

DOMElement::after

(PHP 8)

DOMElement::after — Adiciona nós após o elemento

Descrição

public DOMElement::after(DOMNode|string ...$nodes): void

Adiciona os nodes passados após o elemento.

Parâmetros

nodes

Nós a serem adicionados após o nó. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se o pai é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem pai agora é uma operação sem efeito para alinhar o comportamento com a especificação do DOM. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMElement::after() exemplo

Adiciona nós após o elemento "hello".

<?php
$doc = new DOMDocument;
$doc->loadXML("<hello/>");
$container = $doc->documentElement;

$container->after("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<hello/>
beautiful
<world/>

Veja Também

  • DOMChildNode::after() - Adiciona nós após o nó
  • DOMElement::before() - Adiciona nós antes do elemento


Adiciona nós após o último nó filho

  • « DOMElement::after
  • DOMElement::before »
  • PHP Manual
  • DOMElement
  • Adiciona nós após o último nó filho

DOMElement::append

(PHP 8)

DOMElement::append — Adiciona nós após o último nó filho

Descrição

public DOMElement::append(DOMNode|string ...$nodes): void

Adiciona um ou muitos nodes à lista de filhos após o último nó filho.

Parâmetros

nodes

Os nós a serem acrescentados. As strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMElement::append() exemplo

Adiciona nós no elemento "container".

<?php
$doc = new DOMDocument;
$doc->loadXML("<container>hello </container>");
$world = $doc->documentElement;

$world->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container>hello beautiful<world/></container>

Veja Também

  • DOMParentNode::append() - Acrescenta nós após o último nó filho
  • DOMElement::prepend() - Adiciona nós antes do primeiro nó filho


Adiciona nós antes do elemento

  • « DOMElement::append
  • DOMElement::__construct »
  • PHP Manual
  • DOMElement
  • Adiciona nós antes do elemento

DOMElement::before

(PHP 8)

DOMElement::before — Adiciona nós antes do elemento

Descrição

public DOMElement::before(DOMNode|string ...$nodes): void

Adiciona os nodes passados antes do elemento.

Parâmetros

nodes

Nós a serem adicionados antes do nó. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se o pai é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem pai agora é uma operação sem efeito para alinhar o comportamento com a especificação do DOM. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMElement::before() exemplo

Adiciona nodes antes do elemento "hello".

<?php
$doc = new DOMDocument;
$doc->loadXML("<world/>");
$world = $doc->documentElement;

$world->before("hello", $doc->createElement("beautiful"));

echo $doc->saveXML();
?>

O exemplo acima produzirá:

hello
<beautiful/>
<world/>

Veja Também

  • DOMChildNode::before() - Adiciona nós antes do nó
  • DOMElement::after() - Adiciona nós após o elemento


Cria um novo objeto DOMElement

  • « DOMElement::before
  • DOMElement::getAttribute »
  • PHP Manual
  • DOMElement
  • Cria um novo objeto DOMElement

DOMElement::__construct

(PHP 5, PHP 7, PHP 8)

DOMElement::__construct — Cria um novo objeto DOMElement

Descrição

public DOMElement::__construct(string $qualifiedName, ?string $value = null, string $namespace = "")

Cria um novo objeto DOMElement. Este objeto é somente leitura. Pode ser anexado a um documento, mas nós adicionais não podem ser anexados a este nó até que o nó esteja associado a um documento. Para criar um nó gravável, use DOMDocument::createElement ou DOMDocument::createElementNS.

Parâmetros

qualifiedName

O nome da tag do elemento. Quando também passando o namespaceURI, o nome do elemento pode ter um prefixo associado ao URI.

value

O valor do elemento.

namespace

Um URI de namespace para criar o elemento dentro de um namespace específico.

Exemplos

Exemplo #1 Criando um novo DOMElement

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$element_ns = new DOMElement('pr:node1', 'thisvalue', 'http://xyz');
$element->appendChild($element_ns);
echo $dom->saveXML(); /* <?xml version="1.0" encoding="utf-8"?>
<root><pr:node1 xmlns:pr="http://xyz">thisvalue</pr:node1></root> */

?>

Veja Também

  • DOMDocument::createElement() - Cria novo nó de elemento
  • DOMDocument::createElementNS() - Cria novo nó de elemento com um namespace associado


Retorna o valor do atributo

  • « DOMElement::__construct
  • DOMElement::getAttributeNames »
  • PHP Manual
  • DOMElement
  • Retorna o valor do atributo

DOMElement::getAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttribute — Retorna o valor do atributo

Descrição

public DOMElement::getAttribute(string $qualifiedName): string

Obtém o valor do atributo com o nome qualifiedName para o nó atual.

Parâmetros

qualifiedName

O nome do atributo.

Valor Retornado

O valor do atributo, ou uma string vazia se nenhum atributo com o qualifiedName fornecido for encontrado.

Veja Também

  • DOMElement::hasAttribute() - Verifica se o atributo existe
  • DOMElement::setAttribute() - Adiciona ou modifica um atributo existente
  • DOMElement::removeAttribute() - Remove atributo


Obtém nomes de atributos

  • « DOMElement::getAttribute
  • DOMElement::getAttributeNode »
  • PHP Manual
  • DOMElement
  • Obtém nomes de atributos

DOMElement::getAttributeNames

(PHP 8 >= 8.3.0)

DOMElement::getAttributeNames — Obtém nomes de atributos

Descrição

public DOMElement::getAttributeNames(): array

Obtém nomes de atributos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna os nomes dos atributos.

Exemplos

Exemplo #1 DOMElement::getAttributeNames() exemplo

<?php

$dom = new DOMDocument();
$dom->loadXML('<html xmlns:some="some:ns" some:test="a" test2="b"/>');
var_dump($dom->documentElement->getAttributeNames());
?>

O exemplo acima produzirá:

array(3) {
 [0]=>
 string(10) "xmlns:some"
 [1]=>
 string(9) "some:test"
 [2]=>
 string(5) "test2"
}


Retorna o nó do atributo

  • « DOMElement::getAttributeNames
  • DOMElement::getAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Retorna o nó do atributo

DOMElement::getAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttributeNode — Retorna o nó do atributo

Descrição

public DOMElement::getAttributeNode(string $qualifiedName): DOMAttr|DOMNameSpaceNode|false

Retorna o nó do atributo com o nome qualifiedName para o elemento atual.

Parâmetros

qualifiedName

O nome do atributo.

Valor Retornado

O nó do atributo. Observe que, para declarações de espaço para nomes XML (atributos xmlns e xmlns:*), uma instância de DOMNameSpaceNode é retornada em vez de um DOMAttr.

Veja Também

  • DOMElement::hasAttribute() - Verifica se o atributo existe
  • DOMElement::setAttributeNode() - Adiciona um novo nó de atributo ao elemento
  • DOMElement::removeAttributeNode() - Remove atributo


Retorna o nó do atributo

  • « DOMElement::getAttributeNode
  • DOMElement::getAttributeNS »
  • PHP Manual
  • DOMElement
  • Retorna o nó do atributo

DOMElement::getAttributeNodeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttributeNodeNS — Retorna o nó do atributo

Descrição

public DOMElement::getAttributeNodeNS(?string $namespace, string $localName): DOMAttr|DOMNameSpaceNode|null

Retorna o nó do atributo no namespace namespace com o nome local localName para o nó atual.

Parâmetros

namespace

O URI do namespace.

localName

O nome local.

Valor Retornado

O nó do atributo. Observe que, para declarações de espaço para nomes XML (atributos xmlns e xmlns:*), uma instância de DOMNameSpaceNode é retornada em vez de um objeto DOMAttr.

Veja Também

  • DOMElement::hasAttributeNS() - Verifica se o atributo existe
  • DOMElement::setAttributeNodeNS() - Adiciona um novo nó de atributo ao elemento
  • DOMElement::removeAttributeNode() - Remove atributo


Retorna o valor do atributo

  • « DOMElement::getAttributeNodeNS
  • DOMElement::getElementsByTagName »
  • PHP Manual
  • DOMElement
  • Retorna o valor do atributo

DOMElement::getAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttributeNS — Retorna o valor do atributo

Descrição

public DOMElement::getAttributeNS(?string $namespace, string $localName): string

Obtém o valor do atributo no namespace namespace com o nome local localName para o nó atual.

Parâmetros

namespace

O URI do namespace.

localName

O nome local.

Valor Retornado

O valor do atributo ou uma string vazia se nenhum atributo com o localName e namespace dados for encontrado.

Veja Também

  • DOMElement::hasAttributeNS() - Verifica se o atributo existe
  • DOMElement::setAttributeNS() - Adiciona um novo atributo
  • DOMElement::removeAttributeNS() - Remove atributo


Obtém elementos pelo nome da tag

  • « DOMElement::getAttributeNS
  • DOMElement::getElementsByTagNameNS »
  • PHP Manual
  • DOMElement
  • Obtém elementos pelo nome da tag

DOMElement::getElementsByTagName

(PHP 5, PHP 7, PHP 8)

DOMElement::getElementsByTagName — Obtém elementos pelo nome da tag

Descrição

public DOMElement::getElementsByTagName(string $qualifiedName): DOMNodeList

Esta função retorna uma nova instância da classe DOMNodeList de todos os elementos descendentes com um determinado nome de tag qualifiedName, na ordem em que são encontrados em uma travessia em pré-ordem desta árvore de elementos.

Parâmetros

qualifiedName

O nome da tag. Use * para retornar todos os elementos dentro da árvore de elementos.

Valor Retornado

Esta função retorna uma nova instância da classe DOMNodeList de todos os elementos correspondentes.

Veja Também

  • DOMElement::getElementsByTagNameNS() - Obtém elementos por namespaceURI e localName


Obtém elementos por namespaceURI e localName

  • « DOMElement::getElementsByTagName
  • DOMElement::hasAttribute »
  • PHP Manual
  • DOMElement
  • Obtém elementos por namespaceURI e localName

DOMElement::getElementsByTagNameNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getElementsByTagNameNS — Obtém elementos por namespaceURI e localName

Descrição

public DOMElement::getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList

Esta função busca todos os elementos descendentes com um determinado localName e namespace.

Parâmetros

namespace

O URI do namespace dos elementos a serem correspondidos. O valor especial "*" corresponde a todos os namespaces. Passar null corresponde ao namespace vazio.

localName

O nome local dos elementos a serem correspondidos. O valor especial "*" corresponde a todos os nomes locais.

Valor Retornado

Esta função retorna uma nova instância da classe DOMNodeList de todos os elementos correspondentes na ordem em que são encontrados em uma travessia em pré-ordem desta árvore de elementos.

Registro de Alterações

Versão | Descrição
8.0.3 | namespace é anulável agora.

Veja Também

  • DOMElement::getElementsByTagName() - Obtém elementos pelo nome da tag


Verifica se o atributo existe

  • « DOMElement::getElementsByTagNameNS
  • DOMElement::hasAttributeNS »
  • PHP Manual
  • DOMElement
  • Verifica se o atributo existe

DOMElement::hasAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::hasAttribute — Verifica se o atributo existe

Descrição

public DOMElement::hasAttribute(string $qualifiedName): bool

Indica se o atributo com o nome qualifiedName existe como membro do elemento.

Parâmetros

qualifiedName

O nome do atributo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • DOMElement::hasAttributeNS() - Verifica se o atributo existe
  • DOMElement::getAttribute() - Retorna o valor do atributo
  • DOMElement::setAttribute() - Adiciona ou modifica um atributo existente
  • DOMElement::removeAttribute() - Remove atributo


Verifica se o atributo existe

  • « DOMElement::hasAttribute
  • DOMElement::insertAdjacentElement »
  • PHP Manual
  • DOMElement
  • Verifica se o atributo existe

DOMElement::hasAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::hasAttributeNS — Verifica se o atributo existe

Descrição

public DOMElement::hasAttributeNS(?string $namespace, string $localName): bool

Indica se o atributo no namespace namespace com o nome localName existe como membro do elemento.

Parâmetros

namespace

O URI do namespace.

localName

O nome local.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • DOMElement::hasAttribute() - Verifica se o atributo existe
  • DOMElement::getAttributeNS() - Retorna o valor do atributo
  • DOMElement::setAttributeNS() - Adiciona um novo atributo
  • DOMElement::removeAttributeNS() - Remove atributo


Insere um elemento adjacente

  • « DOMElement::hasAttributeNS
  • DOMElement::insertAdjacentText »
  • PHP Manual
  • DOMElement
  • Insere um elemento adjacente

DOMElement::insertAdjacentElement

(PHP 8 >= 8.3.0)

DOMElement::insertAdjacentElement — Insere um elemento adjacente

Descrição

public DOMElement::insertAdjacentElement(string $where, DOMElement $element): ?DOMElement

Insere um elemento em uma posição relativa dada por where.

Parâmetros

where

  • beforebegin - Inserir antes do elemento de destino.
  • afterbegin - Inserir como o primeiro filho do elemento de destino.
  • beforeend - Inserir como o último filho do elemento de destino.
  • afterend - Inserir após o elemento de destino.

element

O elemento a ser inserido.

Valor Retornado

Retorna DOMElement ou null em caso de falha.

Exemplos

Exemplo #1 DOMElement::insertAdjacentElement() exemplo

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><container><p>foo</p></container>');
$container = $dom->documentElement;
$p = $container->firstElementChild;

$p->insertAdjacentElement('beforebegin', $dom->createElement('A'));
echo $dom->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container><A/><p>foo</p></container>

Veja Também

  • DOMElement::insertAdjacentText() - Insere texto adjacente


Insere texto adjacente

  • « DOMElement::insertAdjacentElement
  • DOMElement::prepend »
  • PHP Manual
  • DOMElement
  • Insere texto adjacente

DOMElement::insertAdjacentText

(PHP 8 >= 8.3.0)

DOMElement::insertAdjacentText — Insere texto adjacente

Descrição

public DOMElement::insertAdjacentText(string $where, string $data): void

Insere texto em uma posição relativa indicada por where.

Parâmetros

where

  • beforebegin - Inserir antes do elemento de destino.
  • afterbegin - Inserir como o primeiro filho do elemento de destino.
  • beforeend - Inserir como o último filho do elemento de destino.
  • afterend - Inserir após o elemento de destino.

data

A string a ser inserida.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 DOMElement::insertAdjacentText() exemplo

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><container><p>H</p></container>');

$container = $dom->documentElement;
$p = $container->firstElementChild;

$p->insertAdjacentText("afterbegin", "P");
$p->insertAdjacentText("beforeend", "P");

echo $dom->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container><p>PHP</p></container>

Veja Também

  • DOMElement::insertAdjacentElement() - Insere um elemento adjacente


Adiciona nós antes do primeiro nó filho

  • « DOMElement::insertAdjacentText
  • DOMElement::remove »
  • PHP Manual
  • DOMElement
  • Adiciona nós antes do primeiro nó filho

DOMElement::prepend

(PHP 8)

DOMElement::prepend — Adiciona nós antes do primeiro nó filho

Descrição

public DOMElement::prepend(DOMNode|string ...$nodes): void

Adiciona um ou muitos nodes à lista de filhos antes do primeiro nó filho.

Parâmetros

nodes

Os nós a serem inseridos. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMElement::prepend() exemplo

Adiciona nós no elemento "container".

<?php
$doc = new DOMDocument;
$doc->loadXML("<container> world</container>");
$world = $doc->documentElement;

$world->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container><hello/>beautiful world</container>

Veja Também

  • DOMParentNode::prepend() - Insere nós antes do primeiro nó filho
  • DOMElement::append() - Adiciona nós após o último nó filho


Remove o elemento

  • « DOMElement::prepend
  • DOMElement::removeAttribute »
  • PHP Manual
  • DOMElement
  • Remove o elemento

DOMElement::remove

(PHP 8)

DOMElement::remove — Remove o elemento

Descrição

public DOMElement::remove(): void

Remove o elemento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 DOMElement::remove() exemplo

Remove o elemento.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/><world/></container>");
$hello = $doc->documentElement->firstChild;

$hello->remove();

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container><world/></container>

Veja Também

  • DOMElement::after() - Adiciona nós após o elemento
  • DOMElement::before() - Adiciona nós antes do elemento
  • DOMElement::replaceWith() - Substitui o elemento por novos nodes
  • DOMNode::removeChild() - Remove um filho da lista de filhos


Remove atributo

  • « DOMElement::remove
  • DOMElement::removeAttributeNode »
  • PHP Manual
  • DOMElement
  • Remove atributo

DOMElement::removeAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttribute — Remove atributo

Descrição

public DOMElement::removeAttribute(string $qualifiedName): bool

Remove o atributo com o nome qualifiedName do elemento.

Parâmetros

qualifiedName

O nome do atributo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se o nó for somente leitura.

Veja Também

  • DOMElement::hasAttribute() - Verifica se o atributo existe
  • DOMElement::getAttribute() - Retorna o valor do atributo
  • DOMElement::setAttribute() - Adiciona ou modifica um atributo existente


Remove atributo

  • « DOMElement::removeAttribute
  • DOMElement::removeAttributeNS »
  • PHP Manual
  • DOMElement
  • Remove atributo

DOMElement::removeAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttributeNode — Remove atributo

Descrição

public DOMElement::removeAttributeNode(DOMAttr $attr): DOMAttr|false

Remove o atributo attr do elemento.

Parâmetros

attr

O nó do atributo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se o nó for somente leitura.

DOM_NOT_FOUND_ERROR

Gerado se attr não for um atributo do elemento.

Veja Também

  • DOMElement::hasAttribute() - Verifica se o atributo existe
  • DOMElement::getAttributeNode() - Retorna o nó do atributo
  • DOMElement::setAttributeNode() - Adiciona um novo nó de atributo ao elemento


Remove atributo

  • « DOMElement::removeAttributeNode
  • DOMElement::replaceChildren »
  • PHP Manual
  • DOMElement
  • Remove atributo

DOMElement::removeAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttributeNS — Remove atributo

Descrição

public DOMElement::removeAttributeNS(?string $namespace, string $localName): void

Remove o atributo localName no namespace namespace do elemento.

Parâmetros

namespace

O URI do namespace.

localName

O nome local.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se o nó for somente leitura.

Veja Também

  • DOMElement::hasAttributeNS() - Verifica se o atributo existe
  • DOMElement::getAttributeNS() - Retorna o valor do atributo
  • DOMElement::setAttributeNS() - Adiciona um novo atributo


Substitui filhos no elemento

  • « DOMElement::removeAttributeNS
  • DOMElement::replaceWith »
  • PHP Manual
  • DOMElement
  • Substitui filhos no elemento

DOMElement::replaceChildren

(PHP 8 >= 8.3.0)

DOMElement::replaceChildren — Substitui filhos no elemento

Descrição

public DOMElement::replaceChildren(DOMNode|string ...$nodes): void

Substitui os filhos no elemento com novos nodes.

Parâmetros

nodes

Os nós que substituirão os filhos. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMElement::replaceChildren() exemplo

Substitui os filhos com novos nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$container = $doc->documentElement;

$container->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
beautiful
<world/>

Veja Também

  • DOMParentNode::replaceChildren() - Substitui filhos no nó
  • DOMElement::replaceWith() - Substitui o elemento por novos nodes
  • DOMElement::after() - Adiciona nós após o elemento
  • DOMElement::before() - Adiciona nós antes do elemento
  • DOMElement::remove() - Remove o elemento


Substitui o elemento por novos nodes

  • « DOMElement::replaceChildren
  • DOMElement::setAttribute »
  • PHP Manual
  • DOMElement
  • Substitui o elemento por novos nodes

DOMElement::replaceWith

(PHP 8)

DOMElement::replaceWith — Substitui o elemento por novos nodes

Descrição

public DOMElement::replaceWith(DOMNode|string ...$nodes): void

Substitui o elemento por novos nodes.

Parâmetros

nodes

Os nós de substituição. As strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se o pai é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem pai agora é uma operação sem efeito para alinhar o comportamento com a especificação do DOM. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMElement::replaceWith() exemplo

Substitui o elemento por novos nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<container>beautiful<world/></container>

Veja Também

  • DOMChildNode::replaceWith() - Substitui o nó por novos nós
  • DOMElement::replaceChildren() - Substitui filhos no elemento
  • DOMElement::after() - Adiciona nós após o elemento
  • DOMElement::before() - Adiciona nós antes do elemento
  • DOMElement::remove() - Remove o elemento


Adiciona ou modifica um atributo existente

  • « DOMElement::replaceWith
  • DOMElement::setAttributeNode »
  • PHP Manual
  • DOMElement
  • Adiciona ou modifica um atributo existente

DOMElement::setAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttribute — Adiciona ou modifica um atributo existente

Descrição

public DOMElement::setAttribute(string $qualifiedName, string $value): DOMAttr|bool

Define um atributo com o nome qualifiedName para o valor fornecido. Se o atributo não existir, ele será criado.

Parâmetros

qualifiedName

O nome do atributo.

value

O valor do atributo.

Valor Retornado

O DOMAttr criado ou modificado, ou false se ocorrer um erro.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se o nó for somente leitura.

Exemplos

Exemplo #1 Setando um atributo

<?php
$doc = new DOMDocument("1.0");
$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("align", "left");
?>

Veja Também

  • DOMElement::hasAttribute() - Verifica se o atributo existe
  • DOMElement::getAttribute() - Retorna o valor do atributo
  • DOMElement::removeAttribute() - Remove atributo


Adiciona um novo nó de atributo ao elemento

  • « DOMElement::setAttribute
  • DOMElement::setAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Adiciona um novo nó de atributo ao elemento

DOMElement::setAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttributeNode — Adiciona um novo nó de atributo ao elemento

Descrição

public DOMElement::setAttributeNode(DOMAttr $attr): DOMAttr|null|false

Adiciona um novo nó de atributo attr ao elemento. Se um atributo com o mesmo nome já existir no elemento, esse atributo será substituído por attr.

Parâmetros

attr

O nó de atributo.

Valor Retornado

Retorna o atributo antigo se tiver sido substituído ou null se não houver atributo antigo. Se ocorrer um erro de DOM_WRONG_DOCUMENT_ERR, e strictErrorChecking for false, false será retornado.

Erros/Exceções

DOM_WRONG_DOCUMENT_ERR

Gerado se attr pertencer a um documento diferente do elemento.

Veja Também

  • DOMElement::hasAttribute() - Verifica se o atributo existe
  • DOMElement::getAttributeNode() - Retorna o nó do atributo
  • DOMElement::removeAttributeNode() - Remove atributo


Adiciona um novo nó de atributo ao elemento

  • « DOMElement::setAttributeNode
  • DOMElement::setAttributeNS »
  • PHP Manual
  • DOMElement
  • Adiciona um novo nó de atributo ao elemento

DOMElement::setAttributeNodeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttributeNodeNS — Adiciona um novo nó de atributo ao elemento

Descrição

public DOMElement::setAttributeNodeNS(DOMAttr $attr): DOMAttr|null|false

Adiciona um novo nó de atributo attr ao elemento, levando em consideração o namespace. Se um atributo com o mesmo nome já existir no elemento, esse atributo será substituído por attr.

Parâmetros

attr

O nó de atributo.

Valor Retornado

Retorna o atributo antigo se tiver sido substituído ou null se não houver atributo antigo. Se ocorrer um erro de DOM_WRONG_DOCUMENT_ERR, e strictErrorChecking for false, false será retornado.

Erros/Exceções

DOM_WRONG_DOCUMENT_ERR

Gerado se attr pertencer a um documento diferente do elemento.

Veja Também

  • DOMElement::hasAttributeNS() - Verifica se o atributo existe
  • DOMElement::getAttributeNodeNS() - Retorna o nó do atributo
  • DOMElement::removeAttributeNode() - Remove atributo


Adiciona um novo atributo

  • « DOMElement::setAttributeNodeNS
  • DOMElement::setIdAttribute »
  • PHP Manual
  • DOMElement
  • Adiciona um novo atributo

DOMElement::setAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttributeNS — Adiciona um novo atributo

Descrição

public DOMElement::setAttributeNS(?string $namespace, string $qualifiedName, string $value): void

Define um atributo com namespace namespace e nome qualifiedName para o valor fornecido. Se o atributo não existir, ele será criado.

Parâmetros

namespace

O URI do namespace.

qualifiedName

O nome qualificado do atributo, comoprefix:tagname.

value

O valor do atributo.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se o nó for somente leitura.

DOM_NAMESPACE_ERR

Gerado se qualifiedName for um nome qualificado mal formado, ou se qualifiedName tiver um prefixo e namespace for null.

Veja Também

  • DOMElement::hasAttributeNS() - Verifica se o atributo existe
  • DOMElement::getAttributeNS() - Retorna o valor do atributo
  • DOMElement::removeAttributeNS() - Remove atributo


Declara que o atributo especificado pelo nome é do tipo ID

  • « DOMElement::setAttributeNS
  • DOMElement::setIdAttributeNode »
  • PHP Manual
  • DOMElement
  • Declara que o atributo especificado pelo nome é do tipo ID

DOMElement::setIdAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::setIdAttribute — Declara que o atributo especificado pelo nome é do tipo ID

Descrição

public DOMElement::setIdAttribute(string $qualifiedName, bool $isId): void

Declara que o atributo qualifiedName é do tipo ID.

Parâmetros

qualifiedName

O nome do atributo.

isId

Defina como true se desejar que qualifiedName seja do tipo ID, false caso contrário.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se o nó estiver somente leitura.

DOM_NOT_FOUND

Gerado se qualifiedName não for um atributo deste elemento.

Veja Também

  • DOMDocument::getElementById() - Procura por um elemento com um determinado ID
  • DOMElement::setIdAttributeNode() - Declara que o atributo especificado pelo nó é do tipo ID
  • DOMElement::setIdAttributeNS() - Declara que o atributo especificado pelo nome local e pelo URI do namespace é do tipo ID


Declara que o atributo especificado pelo nó é do tipo ID

  • « DOMElement::setIdAttribute
  • DOMElement::setIdAttributeNS »
  • PHP Manual
  • DOMElement
  • Declara que o atributo especificado pelo nó é do tipo ID

DOMElement::setIdAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::setIdAttributeNode — Declara que o atributo especificado pelo nó é do tipo ID

Descrição

public DOMElement::setIdAttributeNode(DOMAttr $attr, bool $isId): void

Declara que o atributo especificado por attr é do tipo ID.

Parâmetros

attr

O nó do atributo.

isId

Defina como true se deseja que name seja do tipo ID, false caso contrário.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se o nó estiver somente leitura.

DOM_NOT_FOUND

Gerado se name não for um atributo deste elemento.

Veja Também

  • DOMDocument::getElementById() - Procura por um elemento com um determinado ID
  • DOMElement::setIdAttribute() - Declara que o atributo especificado pelo nome é do tipo ID
  • DOMElement::setIdAttributeNS() - Declara que o atributo especificado pelo nome local e pelo URI do namespace é do tipo ID


Declara que o atributo especificado pelo nome local e pelo URI do namespace é do tipo ID

  • « DOMElement::setIdAttributeNode
  • DOMElement::toggleAttribute »
  • PHP Manual
  • DOMElement
  • Declara que o atributo especificado pelo nome local e pelo URI do namespace é do tipo ID

DOMElement::setIdAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::setIdAttributeNS — Declara que o atributo especificado pelo nome local e pelo URI do namespace é do tipo ID

Descrição

public DOMElement::setIdAttributeNS(string $namespace, string $qualifiedName, bool $isId): void

Declara que o atributo especificado por qualifiedName e namespace é do tipo ID.

Parâmetros

namespace

O URI do namespace do atributo.

qualifiedName

O nome local do atributo, como prefix:tagname.

isId

Defina como true se deseja que name seja do tipo ID, false caso contrário.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se o nó estiver somente leitura.

DOM_NOT_FOUND

Gerado se name não for um atributo deste elemento.

Veja Também

  • DOMDocument::getElementById() - Procura por um elemento com um determinado ID
  • DOMElement::setIdAttribute() - Declara que o atributo especificado pelo nome é do tipo ID
  • DOMElement::setIdAttributeNode() - Declara que o atributo especificado pelo nó é do tipo ID


Alterna atributo

  • « DOMElement::setIdAttributeNS
  • DOMEntity »
  • PHP Manual
  • DOMElement
  • Alterna atributo

DOMElement::toggleAttribute

(PHP 8 >= 8.3.0)

DOMElement::toggleAttribute — Alterna atributo

Descrição

public DOMElement::toggleAttribute(string $qualifiedName, ?bool $force = null): bool

Toggle the attribute.

Parâmetros

qualifiedName

O nome qualificado do atributo.

force

  • se null, a função alternará o atributo.
  • se true, a função adiciona o atributo.
  • se false, a função remove o atributo.

Valor Retornado

Retorna true se o atributo estiver presente após a conclusão da chamada, false caso contrário.

Exemplos

Exemplo #1 DOMElement::toggleAttribute() exemplo

<?php

$dom = new DOMDocument();
$dom->loadXML("<?xml version='1.0'?><container selected=\"\"/>");

var_dump($dom->documentElement->toggleAttribute('selected'));
echo $dom->saveXML() . PHP_EOL;

var_dump($dom->documentElement->toggleAttribute('selected'));
echo $dom->saveXML();
?>

O exemplo acima produzirá:

bool(false)
<?xml version="1.0"?>
<container/>

bool(true)
<?xml version="1.0"?>
<container selected=""/>


A classe DOMEntity

(PHP 5, PHP 7, PHP 8)

Introdução

Esta interface representa uma entidade conhecida, seja ela analisada ou não analisada, em um documento XML.

Resumo da classe

class DOMEntity extends DOMNode {
/* Propriedades */
public readonly ?string $publicId;
public readonly ?string $systemId;
public readonly ?string $notationName;
public readonly ?string $actualEncoding = null;
public readonly ?string $encoding = null;
public readonly ?string $version = null;
/* Propriedades herdadas */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos herdados */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

publicId

O identificador público associado à entidade, se especificado, e null caso contrário.

systemId

O identificador do sistema associado à entidade, se especificado, e null caso contrário. Isso pode ser um URI absoluto ou não.

notationName

Para entidades não analisadas, o nome da notação da entidade. Para entidades analisadas, isso é null.

actualEncoding

Um atributo que especifica a codificação usada para esta entidade no momento da análise, quando é uma entidade analisada externa. Isso é null se for uma entidade do subconjunto interno ou se não for conhecido.

encoding

Um atributo que especifica, como parte da declaração de texto, a codificação desta entidade, quando é uma entidade analisada externa. Isso é null caso contrário.

version

Um atributo que especifica, como parte da declaração de texto, o número da versão desta entidade, quando é uma entidade analisada externa. Isso é null caso contrário.


A classe DOMEntityReference

(PHP 5, PHP 7, PHP 8)

Resumo da classe

class DOMEntityReference extends DOMNode {
/* Propriedades herdadas */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public __construct(string $name)
/* Métodos herdados */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Índice

  • DOMEntityReference::__construct — Cria um novo objeto DOMEntityReference


Cria um novo objeto DOMEntityReference

  • « DOMEntityReference
  • DOMException »
  • PHP Manual
  • DOMEntityReference
  • Cria um novo objeto DOMEntityReference

DOMEntityReference::__construct

(PHP 5, PHP 7, PHP 8)

DOMEntityReference::__construct — Cria um novo objeto DOMEntityReference

Descrição

public DOMEntityReference::__construct(string $name)

Cria um novo objeto DOMEntityReference.

Parâmetros

name

O nome da referência de entidade.

Exemplos

Exemplo #1 Criando um novo DOMEntityReference

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$entity = $element->appendChild(new DOMEntityReference('nbsp'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>&nbsp;</root> */

?>

Veja Também

  • DOMDocument::createEntityReference() - Cria novo nó de referência de entidade


A classe DOMException

(PHP 5, PHP 7, PHP 8)

Introdução

Operações DOM levantam exceções em circunstâncias particulares, ou seja, quando uma operação é impossível de ser realizada por razões lógicas.

Veja também Exceções.

Resumo da classe

final class DOMException extends Exception {
/* Propriedades */
public int $code;
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriedades

code

Um número inteiro indicando o tipo de erro gerado


A classe DOMImplementation

(PHP 5, PHP 7, PHP 8)

Introdução

A classe DOMImplementation fornece vários métodos para realizar operações independentes de qualquer instância específica do modelo de objeto de documento.

Resumo da classe

class DOMImplementation {
/* Métodos */
public createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null): DOMDocument|false
public createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = ""): DOMDocumentType|false
public hasFeature(string $feature, string $version): bool
}

Índice

  • DOMImplementation::__construct — Cria um novo objeto DOMImplementation
  • DOMImplementation::createDocument — Cria um objeto DOMDocument do tipo especificado com seu elemento de documento
  • DOMImplementation::createDocumentType — Cria um objeto DOMDocumentType vazio
  • DOMImplementation::hasFeature — Testa se a implementação DOM implementa um recurso específico


Cria um novo objeto DOMImplementation

  • « DOMImplementation
  • DOMImplementation::createDocument »
  • PHP Manual
  • DOMImplementation
  • Cria um novo objeto DOMImplementation

DOMImplementation::__construct

(PHP 5, PHP 7)

DOMImplementation::__construct — Cria um novo objeto DOMImplementation

Descrição

DOMImplementation::__construct()

Cria um novo objeto DOMImplementation.

Parâmetros

Esta função não possui parâmetros.


Cria um objeto DOMDocument do tipo especificado com seu elemento de documento

  • « DOMImplementation::__construct
  • DOMImplementation::createDocumentType »
  • PHP Manual
  • DOMImplementation
  • Cria um objeto DOMDocument do tipo especificado com seu elemento de documento

DOMImplementation::createDocument

(PHP 5, PHP 7, PHP 8)

DOMImplementation::createDocument — Cria um objeto DOMDocument do tipo especificado com seu elemento de documento

Descrição

public DOMImplementation::createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null): DOMDocument|false

Cria um objeto DOMDocument do tipo especificado com seu elemento de documento.

Parâmetros

namespace

O URI do namespace do elemento de documento a ser criado.

qualifiedName

O nome qualificado do elemento de documento a ser criado.

doctype

O tipo de documento a ser criado ou null.

Valor Retornado

Um novo objeto DOMDocument ou false em caso de erro. Se namespace, qualifiedName, e doctype forem nulos, o DOMDocument retornado estará vazio, sem elemento de documento.

Erros/Exceções

DOM_WRONG_DOCUMENT_ERR

Gerado se doctype já foi usado em um documento diferente ou foi criado por uma implementação diferente.

DOM_NAMESPACE_ERR

Gerado se houver um erro com o namespace, conforme determinado por namespace e qualifiedName.

Registro de Alterações

Versão | Descrição
8.0.3 | namespace agora é anulável.
8.0.0 | doctype agora é anulável.
8.0.0 | Chamar esta função estaticamente agora lançará um Error. Anteriormente, era gerado um E_DEPRECATED.

Veja Também

  • DOMDocument::__construct() - Cria um novo objeto DOMDocument
  • DOMImplementation::createDocumentType() - Cria um objeto DOMDocumentType vazio


Cria um objeto DOMDocumentType vazio

  • « DOMImplementation::createDocument
  • DOMImplementation::hasFeature »
  • PHP Manual
  • DOMImplementation
  • Cria um objeto DOMDocumentType vazio

DOMImplementation::createDocumentType

(PHP 5, PHP 7, PHP 8)

DOMImplementation::createDocumentType — Cria um objeto DOMDocumentType vazio

Descrição

public DOMImplementation::createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = ""): DOMDocumentType|false

Cria um objeto DOMDocumentType vazio. Declarações de entidade e notações não são disponibilizadas. Expansões de referências de entidade e adições de atributos padrão não ocorrem.

Parâmetros

qualifiedName

O nome qualificado do tipo de documento a ser criado.

publicId

O identificador público do conjunto externo.

systemId

O identificador do sistema do conjunto externo.

Valor Retornado

Um novo nó DOMDocumentType com seu ownerDocument definido como null ou false em caso de erro.

Erros/Exceções

DOM_NAMESPACE_ERR

Gerado se houver um erro com o namespace, conforme determinado por qualifiedName.

Registro de Alterações

Versão | Descrição
8.0.0 | Chamar esta função estaticamente agora lançará um Error. Anteriormente, era gerado um E_DEPRECATED.

Exemplos

Exemplo #1 Criando um documento com um DTD anexado

<?php

// Cria uma instância da classe DOMImplementation
$imp = new DOMImplementation;

// Cria uma instância DOMDocumentType
$dtd = $imp->createDocumentType('graph', '', 'graph.dtd');

// Cria uma instância DOMDocument
$dom = $imp->createDocument("", "", $dtd);

// Define outras propriedades
$dom->encoding = 'UTF-8';
$dom->standalone = false;

// Cria um elemento vazio
$element = $dom->createElement('graph');

// Anexa o elemento
$dom->appendChild($element);

// Recupera e imprime o documento
echo $dom->saveXML();

?>

O exemplo acima produzirá:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>

Veja Também

  • DOMImplementation::createDocument() - Cria um objeto DOMDocument do tipo especificado com seu elemento de documento


Testa se a implementação DOM implementa um recurso específico

  • « DOMImplementation::createDocumentType
  • DOMNamedNodeMap »
  • PHP Manual
  • DOMImplementation
  • Testa se a implementação DOM implementa um recurso específico

DOMImplementation::hasFeature

(PHP 5, PHP 7, PHP 8)

DOMImplementation::hasFeature — Testa se a implementação DOM implementa um recurso específico

Descrição

public DOMImplementation::hasFeature(string $feature, string $version): bool

Testa se a implementação DOM implementa um feature específico.

Você pode encontrar uma lista de todos os recursos na seção de » Conformidade da especificação DOM.

Parâmetros

feature

O recurso a ser testado.

version

O número da versão do feature a ser testado. Em nível 2, isso pode ser 2.0 ou 1.0.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | Chamar esta função estaticamente agora lançará um Error. Anteriormente, era gerado um E_DEPRECATED.

Exemplos

Exemplo #1 Testando sua Implementação DOM

<?php

$features = array(
'Core' => 'Core module',
'XML' => 'XML module',
'HTML' => 'HTML module',
'Views' => 'Views module',
'Stylesheets' => 'Style Sheets module',
'CSS' => 'CSS module',
'CSS2' => 'CSS2 module',
'Events' => 'Events module',
'UIEvents' => 'User interface Events module',
'MouseEvents' => 'Mouse Events module',
'MutationEvents' => 'Mutation Events module',
'HTMLEvents' => 'HTML Events module',
'Range' => 'Range module',
'Traversal' => 'Traversal module'
);

$implementation = new DOMImplementation;

foreach ($features as $key => $name) {
if ($implementation->hasFeature($key, '2.0')) {
echo "Has feature $name\n";
} else {
echo "Missing feature $name\n";
}
}

?>

Veja Também

  • DOMNode::isSupported() - Verifica se o recurso é suportado para a versão especificada


A classe DOMNamedNodeMap

(PHP 5, PHP 7, PHP 8)

Resumo da classe

class DOMNamedNodeMap implements IteratorAggregate, Countable {
/* Propriedades */
public readonly int $length;
/* Métodos */
public count(): int
public getIterator(): Iterator
public getNamedItem(string $qualifiedName): ?DOMNode
public getNamedItemNS(?string $namespace, string $localName): ?DOMNode
public item(int $index): ?DOMNode
}

Propriedades

length

O número de nós no mapa. A faixa de índices válidos para nós filhos é de 0 a length - 1, inclusive.

Registro de Alterações

Versão | Descrição
8.0.0 | Os métodos não implementados DOMNamedNodeMap::setNamedItem(), DOMNamedNodeMap::removeNamedItem(), DOMNamedNodeMap::setNamedItemNS() e DOMNamedNodeMap::removeNamedItem() foram removidos.
8.0.0 | DOMNamedNodeMap implementa IteratorAggregate agora. Anteriormente, Traversable foi implementado em seu lugar.

Índice

  • DOMNamedNodeMap::count — Obtém o número de nós no mapa
  • DOMNamedNodeMap::getIterator — Recupera um iterador externo
  • DOMNamedNodeMap::getNamedItem — Recupera um nó especificado pelo nome
  • DOMNamedNodeMap::getNamedItemNS — Recupera um nó especificado pelo nome local e URI do namespace
  • DOMNamedNodeMap::item — Recupera um nó especificado pelo índice


Obtém o número de nós no mapa

  • « DOMNamedNodeMap
  • DOMNamedNodeMap::getIterator »
  • PHP Manual
  • DOMNamedNodeMap
  • Obtém o número de nós no mapa

DOMNamedNodeMap::count

(PHP 7 >= 7.2.0, PHP 8)

DOMNamedNodeMap::count — Obtém o número de nós no mapa

Descrição

public DOMNamedNodeMap::count(): int

Obtém o número de nós no mapa.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de nós no mapa, que é idêntico à propriedade length.


Recupera um iterador externo

  • « DOMNamedNodeMap::count
  • DOMNamedNodeMap::getNamedItem »
  • PHP Manual
  • DOMNamedNodeMap
  • Recupera um iterador externo

DOMNamedNodeMap::getIterator

(PHP 8)

DOMNamedNodeMap::getIterator — Recupera um iterador externo

Descrição

public DOMNamedNodeMap::getIterator(): Iterator

Retorna um iterador externo para o mapa de nós nomeados.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma instância de um objeto que implementa Iterator ou Traversable

Erros/Exceções

Lança uma Exception em caso de falha.

Veja Também

  • IteratorAggregate::getIterator() - Recupera um iterator externo


Recupera um nó especificado pelo nome

  • « DOMNamedNodeMap::getIterator
  • DOMNamedNodeMap::getNamedItemNS »
  • PHP Manual
  • DOMNamedNodeMap
  • Recupera um nó especificado pelo nome

DOMNamedNodeMap::getNamedItem

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::getNamedItem — Recupera um nó especificado pelo nome

Descrição

public DOMNamedNodeMap::getNamedItem(string $qualifiedName): ?DOMNode

Recupera um nó especificado pelo seu nodeName.

Parâmetros

qualifiedName

O nodeName do nó a ser recuperado.

Valor Retornado

Um nó (de qualquer tipo) com o nodeName especificado, ou null se nenhum nó for encontrado.

Veja Também

  • DOMNamedNodeMap::getNamedItemNS() - Recupera um nó especificado pelo nome local e URI do namespace


Recupera um nó especificado pelo nome local e URI do namespace

  • « DOMNamedNodeMap::getNamedItem
  • DOMNamedNodeMap::item »
  • PHP Manual
  • DOMNamedNodeMap
  • Recupera um nó especificado pelo nome local e URI do namespace

DOMNamedNodeMap::getNamedItemNS

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::getNamedItemNS — Recupera um nó especificado pelo nome local e URI do namespace

Descrição

public DOMNamedNodeMap::getNamedItemNS(?string $namespace, string $localName): ?DOMNode

Recupera um nó especificado pelo localName e namespace.

Parâmetros

namespace

O URI do namespace do nó a ser recuperado.

localName

O nome local do nó a ser recuperado.

Valor Retornado

Um nó (de qualquer tipo) com o nome local e URI do namespace especificados, ou null se nenhum nó for encontrado.

Veja Também

  • DOMNamedNodeMap::getNamedItem() - Recupera um nó especificado pelo nome


Recupera um nó especificado pelo índice

  • « DOMNamedNodeMap::getNamedItemNS
  • DOMNameSpaceNode »
  • PHP Manual
  • DOMNamedNodeMap
  • Recupera um nó especificado pelo índice

DOMNamedNodeMap::item

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::item — Recupera um nó especificado pelo índice

Descrição

public DOMNamedNodeMap::item(int $index): ?DOMNode

Recupera um nó especificado pelo index dentro do objeto DOMNamedNodeMap.

Parâmetros

index

Índice dentro deste mapa.

Valor Retornado

O nó na posição index no mapa, ou null se esse não for um índice válido (maior ou igual ao número de nós neste mapa).


A classe DOMNameSpaceNode

(PHP 5, PHP 7, PHP 8)

Resumo da classe

class DOMNameSpaceNode {
/* Propriedades */
public readonly string $nodeName;
public readonly ?string $nodeValue;
public readonly int $nodeType;
public readonly string $prefix;
public readonly ?string $localName;
public readonly ?string $namespaceURI;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
}

Propriedades

nodeName

O nome qualificado deste nó.

nodeValue

O URI do namespace declarado por este nó, ou null se o namespace estiver vazio.

nodeType

O tipo do nó. Neste caso, retorna XML_NAMESPACE_DECL_NODE .

prefix

O prefixo de namespace declarado por este nó.

localName

A parte local do nome qualificado deste nó.

namespaceURI

O URI do namespace declarado por este nó, ou null se não estiver especificado.

isConnected

Se o nó está conectado a um documento.

ownerDocument

O objeto DOMDocument associado a este nó, ou null se este nó for um DOMDocument.

parentNode

O pai deste nó. Se não houver tal nó, isso retorna null.

parentElement

O elemento pai deste nó. Se não houver tal elemento, isso retorna null.

Registro de Alterações

Versão | Descrição
8.3.0 | As propriedades DOMNameSpaceNode::$parentElement e DOMNameSpaceNode::$isConnected foram adicionadas.


A classe DOMNode

(PHP 5, PHP 7, PHP 8)

Resumo da classe

class DOMNode {
/* Propriedades */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public appendChild(DOMNode $node): DOMNode|false
public C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public cloneNode(bool $deep = false): DOMNode|false
public contains(DOMNode|DOMNameSpaceNode|null $other): bool
public getLineNo(): int
public getNodePath(): ?string
public getRootNode(?array $options = null): DOMNode
public hasAttributes(): bool
public hasChildNodes(): bool
public insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public isDefaultNamespace(string $namespace): bool
public isEqualNode(?DOMNode $otherNode): bool
public isSameNode(DOMNode $otherNode): bool
public isSupported(string $feature, string $version): bool
public lookupNamespaceURI(?string $prefix): ?string
public lookupPrefix(string $namespace): ?string
public normalize(): void
public removeChild(DOMNode $child): DOMNode|false
public replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

nodeName

Retorna o nome mais preciso para o tipo atual de nó

nodeValue

O valor deste nó, dependendo do seu tipo. Contrariamente à especificação do W3C, o valor do nó de DOMElement é igual a DOMNode::textContent em vez de null.

nodeType

Obtém o tipo do nó. Um dos constantes predefinidas XML_xxx_NODE

parentNode

O pai deste nó. Se não houver tal nó, isso retorna null.

parentElement

O elemento pai deste elemento. Se não houver tal elemento, isso retorna null.

childNodes

Um DOMNodeList que contém todos os filhos deste nó. Se não houver filhos, isso é um DOMNodeList vazio.

firstChild

O primeiro filho deste nó. Se não houver tal nó, isso retorna null.

lastChild

O último filho deste nó. Se não houver tal nó, isso retorna null.

previousSibling

O nó imediatamente anterior a este nó. Se não houver tal nó, isso retorna null.

nextSibling

O nó imediatamente seguinte a este nó. Se não houver tal nó, isso retorna null.

attributes

Um DOMNamedNodeMap que contém os atributos deste nó (se for um DOMElement) ou null caso contrário.

isConnected

Se o nó está conectado a um documento.

ownerDocument

O objeto DOMDocument associado a este nó, ou null se este nó for um DOMDocument

namespaceURI

O URI do namespace deste nó, ou null se não estiver especificado.

prefix

O prefixo do namespace deste nó.

localName

Retorna a parte local do nome qualificado deste nó.

baseURI

O URI base absoluto deste nó, ou null se a implementação não conseguir obter um URI absoluto.

textContent

O conteúdo textual deste nó e de seus descendentes.

Registro de Alterações

Versão | Descrição
8.3.0 | As propriedades DOMNode::$parentElement, e DOMNode::$isConnected foram adicionadas.
8.0.0 | Os métodos não implementados DOMNode::compareDocumentPosition(), DOMNode::isEqualNode(), DOMNode::getFeature(), DOMNode::setUserData() e DOMNode::getUserData() foram removidos.

Notas

Nota:

A extensão DOM usa codificação UTF-8. Use mb_convert_encoding(), UConverter::transcode() ou iconv() para lidar com outras codificações.

Veja Também

  • » Especificação do W3C para Node

Índice

  • DOMNode::appendChild — Adiciona um novo filho ao final dos filhos
  • DOMNode::C14N — Canonicaliza nós para uma string
  • DOMNode::C14NFile — Canonicaliza nós para um arquivo
  • DOMNode::cloneNode — Clona um nó
  • DOMNode::contains — Verifica se o nó contém outro nó
  • DOMNode::getLineNo — Obtém o número da linha para um nó
  • DOMNode::getNodePath — Obtém um XPath para um nó
  • DOMNode::getRootNode — Obtém o nó raiz
  • DOMNode::hasAttributes — Verifica se o nó possui atributos
  • DOMNode::hasChildNodes — Verifica se o nó possui filhos
  • DOMNode::insertBefore — Adiciona um novo filho antes de um nó de referência
  • DOMNode::isDefaultNamespace — Verifica se o namespaceURI especificado é o namespace padrão ou não
  • DOMNode::isEqualNode — Verifica se ambos os nós são iguais
  • DOMNode::isSameNode — Indica se dois nós são o mesmo nó
  • DOMNode::isSupported — Verifica se o recurso é suportado para a versão especificada
  • DOMNode::lookupNamespaceURI — Obtém o URI do namespace do nó com base no prefixo
  • DOMNode::lookupPrefix — Obtém o prefixo do namespace do nó com base no URI do namespace
  • DOMNode::normalize — Normaliza o nó
  • DOMNode::removeChild — Remove um filho da lista de filhos
  • DOMNode::replaceChild — Substitui um filho


Adiciona um novo filho ao final dos filhos

  • « DOMNode
  • DOMNode::C14N »
  • PHP Manual
  • DOMNode
  • Adiciona um novo filho ao final dos filhos

DOMNode::appendChild

(PHP 5, PHP 7, PHP 8)

DOMNode::appendChild — Adiciona um novo filho ao final dos filhos

Descrição

public DOMNode::appendChild(DOMNode $node): DOMNode|false

Esta função acrescenta um filho a uma lista existente de filhos, ou cria uma nova lista de filhos. O filho pode ser criado, por exemplo, com DOMDocument::createElement(), DOMDocument::createTextNode() etc. ou simplesmente pode usaando-se qualquer outro nó.

Ao usar um nó existente ele será movido.

Parâmetros

node

O nó filho anexado.

Valor Retornado

O nó adicionado ou false em caso de erro.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Lançado se este nó for somente leitura, ou se o pai anterior do nó que está sendo inserido for somente leitura.

DOM_HIERARCHY_REQUEST_ERR

Lançada se este nó for de um tipo que não permite que filhos do tipo do node, ou se o nó a ser anexado for um dos ancestrais deste nó, ou se for este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Lançado se node foi criado por um documento diferente do documento que criou este nó.

Exemplos

O exemplo a seguir irá adicionar um novo nó de elemento de um documento novo.

Exemplo #1 Adicionando um nó filho

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>

Exemplo #2 Filhos aninhados

<?php

$doc = new DOMDocument;

$headNode = $doc->createElement("head");
$doc->appendChild($headNode);

$titleNode = $doc->createElement("title");
$headNode->appendChild($titleNode);

echo $doc->saveXML();
?>

Veja Também

  • DOMChildNode::after() - Adiciona nós após o nó
  • DOMNode::insertBefore() - Adiciona um novo filho antes de um nó de referência
  • DOMNode::removeChild() - Remove um filho da lista de filhos
  • DOMNode::replaceChild() - Substitui um filho


Canonicaliza nós para uma string

  • « DOMNode::appendChild
  • DOMNode::C14NFile »
  • PHP Manual
  • DOMNode
  • Canonicaliza nós para uma string

DOMNode::C14N

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::C14N — Canonicaliza nós para uma string

Descrição

public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false

Canonicaliza nós para uma string

Parâmetros

exclusive

Habilita a análise exclusiva apenas dos nós correspondentes à expressão xpath fornecida ou aos prefixos de namespace.

withComments

Mantém comentários na saída.

xpath

Um array de expressões xpath para filtrar os nós.

nsPrefixes

Um array de prefixos de namespace para filtrar os nós.

Valor Retornado

Retorna nós canonizados como uma string ou false em caso de falha

Veja Também

  • DOMNode::C14NFile() - Canonicaliza nós para um arquivo


Canonicaliza nós para um arquivo

  • « DOMNode::C14N
  • DOMNode::cloneNode »
  • PHP Manual
  • DOMNode
  • Canonicaliza nós para um arquivo

DOMNode::C14NFile

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::C14NFile — Canonicaliza nós para um arquivo

Descrição

public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false

Canonicar nós para um arquivo.

Parâmetros

uri

Caminho para escrever a saída.

exclusive

Habilitar a análise exclusiva apenas dos nós correspondentes ao xpath fornecido ou aos prefixos de namespace.

withComments

Manter comentários na saída.

xpath

Um array de xpath para filtrar os nós.

nsPrefixes

Um array de prefixos de namespace para filtrar os nós.

Valor Retornado

Número de bytes escritos ou false em caso de falha

Veja Também

  • DOMNode::C14N() - Canonicaliza nós para uma string


Clona um nó

  • « DOMNode::C14NFile
  • DOMNode::contains »
  • PHP Manual
  • DOMNode
  • Clona um nó

DOMNode::cloneNode

(PHP 5, PHP 7, PHP 8)

DOMNode::cloneNode — Clona um nó

Descrição

public DOMNode::cloneNode(bool $deep = false): DOMNode|false

Cria uma cópia do nó.

Parâmetros

deep

Indica se deve copiar todos os nós descendentes. Este parâmetro é predefinido como false.

Valor Retornado

O nó clonado.


Verifica se o nó contém outro nó

  • « DOMNode::cloneNode
  • DOMNode::getLineNo »
  • PHP Manual
  • DOMNode
  • Verifica se o nó contém outro nó

DOMNode::contains

(PHP 8 >= 8.3.0)

DOMNode::contains — Verifica se o nó contém outro nó

Descrição

public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool

Verifica se o nó contém o nó other.

Parâmetros

other

Nó a ser verificado.

Valor Retornado

Retorna true se o nó contém o nó other, false caso contrário.

Exemplos

Exemplo #1 DOMNode::contains() exemplo

<?php

$dom = new DOMDocument();
$dom->loadXML(<<<XML
<!DOCTYPE HTML>
<html>
<body>
<main>
<p>Hello, world!</p>
</main>
</body>
</html>
XML);

$xpath = new DOMXPath($dom);
$main = $xpath->query("//main")[0];

var_dump($dom->documentElement->contains($main));
?>

O exemplo acima produzirá:

bool(true)


Obtém o número da linha para um nó

  • « DOMNode::contains
  • DOMNode::getNodePath »
  • PHP Manual
  • DOMNode
  • Obtém o número da linha para um nó

DOMNode::getLineNo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DOMNode::getLineNo — Obtém o número da linha para um nó

Descrição

public DOMNode::getLineNo(): int

Obtém o número da linha onde o nó foi definido durante o tempo de análise.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número da linha onde o nó foi definido durante o tempo de análise. Se o nó foi criado manualmente, o valor retornado será 0.

Exemplos

Exemplo #1 DOMNode::getLineNo() exemplo

<?php
// Dump XML para o exemplo abaixo
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<root>
<node />
</root>
XML;

// Crie uma nova instância de DOMDocument
$dom = new DOMDocument;

// Load the XML
$dom->loadXML($xml);

// Imprima a linha onde o elemento 'node' foi definido
printf('The <node> tag is defined on line %d', $dom->getElementsByTagName('node')->item(0)->getLineNo());
?>

O exemplo acima produzirá:

The <node> tag is defined in line 3


Obtém um XPath para um nó

  • « DOMNode::getLineNo
  • DOMNode::getRootNode »
  • PHP Manual
  • DOMNode
  • Obtém um XPath para um nó

DOMNode::getNodePath

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::getNodePath — Obtém um XPath para um nó

Descrição

public DOMNode::getNodePath(): ?string

Obtém um caminho de localização XPath para o nó.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string contendo o XPath, ou null em caso de erro.

Exemplos

Exemplo #1 DOMNode::getNodePath() exemplo

<?php
// Crie uma nova instância de DOMDocument
$dom = new DOMDocument;

// Carregue o XML
$dom->loadXML('
<fruits>
<apples>
<apple>braeburn</apple>
<apple>granny smith</apple>
</apples>
<pears>
<pear>conference</pear>
</pears>
</fruits>
');

// Imprima o XPath para cada elemento
foreach ($dom->getElementsByTagName('*') as $node) {
echo $node->getNodePath() . "\n";
}
?>

O exemplo acima produzirá:

/fruits
/fruits/apples
/fruits/apples/apple[1]
/fruits/apples/apple[2]
/fruits/pears
/fruits/pears/pear

Veja Também

  • DOMXPath


Obtém o nó raiz

  • « DOMNode::getNodePath
  • DOMNode::hasAttributes »
  • PHP Manual
  • DOMNode
  • Obtém o nó raiz

DOMNode::getRootNode

(PHP 8 >= 8.3.0)

DOMNode::getRootNode — Obtém o nó raiz

Descrição

public DOMNode::getRootNode(?array $options = null): DOMNode

Obtém o nó raiz.

Parâmetros

options

Este parâmetro ainda não tem efeito.

Valor Retornado

Retorna o nó raiz.

Exemplos

Exemplo #1 DOMNode::getRootNode() exemplo

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><html><body/></html>');

var_dump($dom->documentElement->firstElementChild->getRootNode() === $dom);
?>

O exemplo acima produzirá:

bool(true)


Verifica se o nó possui atributos

  • « DOMNode::getRootNode
  • DOMNode::hasChildNodes »
  • PHP Manual
  • DOMNode
  • Verifica se o nó possui atributos

DOMNode::hasAttributes

(PHP 5, PHP 7, PHP 8)

DOMNode::hasAttributes — Verifica se o nó possui atributos

Descrição

public DOMNode::hasAttributes(): bool

Este método verifica se o nó possui atributos. O nó testado deve ser um XML_ELEMENT_NODE.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • DOMNode::hasChildNodes() - Verifica se o nó possui filhos


Verifica se o nó possui filhos

  • « DOMNode::hasAttributes
  • DOMNode::insertBefore »
  • PHP Manual
  • DOMNode
  • Verifica se o nó possui filhos

DOMNode::hasChildNodes

(PHP 5, PHP 7, PHP 8)

DOMNode::hasChildNodes — Verifica se o nó possui filhos

Descrição

public DOMNode::hasChildNodes(): bool

Esta função verifica se o nó possui filhos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • DOMNode::hasAttributes() - Verifica se o nó possui atributos


Adiciona um novo filho antes de um nó de referência

  • « DOMNode::hasChildNodes
  • DOMNode::isDefaultNamespace »
  • PHP Manual
  • DOMNode
  • Adiciona um novo filho antes de um nó de referência

DOMNode::insertBefore

(PHP 5, PHP 7, PHP 8)

DOMNode::insertBefore — Adiciona um novo filho antes de um nó de referência

Descrição

public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false

Esta função insere um novo nó imediatamente antes do nó de referência. Se você planeja fazer mais modificações no nó adicionado, deve usar o nó retornado.

Ao usar um nó existente, ele será movido.

Parâmetros

node

O novo nó.

child

O nó de referência. Se não fornecido, node é anexado aos filhos.

Valor Retornado

O nó inserido ou false em caso de erro.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se este nó for somente leitura ou se o pai anterior do nó sendo inserido for somente leitura.

DOM_HIERARCHY_REQUEST_ERR

Gerado se este nó for de um tipo que não permite filhos do tipo do nó node, ou se o nó a ser anexado for um dos ancestrais deste nó ou este próprio nó.

DOM_WRONG_DOCUMENT_ERR

Gerado se node foi criado a partir de um documento diferente daquele que criou este nó.

DOM_NOT_FOUND

Gerado se child não for um filho deste nó.

Veja Também

  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos


Verifica se o namespaceURI especificado é o namespace padrão ou não

  • « DOMNode::insertBefore
  • DOMNode::isEqualNode »
  • PHP Manual
  • DOMNode
  • Verifica se o namespaceURI especificado é o namespace padrão ou não

DOMNode::isDefaultNamespace

(PHP 5, PHP 7, PHP 8)

DOMNode::isDefaultNamespace — Verifica se o namespaceURI especificado é o namespace padrão ou não

Descrição

public DOMNode::isDefaultNamespace(string $namespace): bool

Indica se namespace é o namespace padrão.

Parâmetros

namespace

O URI do namespace a ser verificado.

Valor Retornado

Retorna true se namespace for o namespace padrão, false caso contrário.


Verifica se ambos os nós são iguais

  • « DOMNode::isDefaultNamespace
  • DOMNode::isSameNode »
  • PHP Manual
  • DOMNode
  • Verifica se ambos os nós são iguais

DOMNode::isEqualNode

(PHP 8 >= 8.3.0)

DOMNode::isEqualNode — Verifica se ambos os nós são iguais

Descrição

public DOMNode::isEqualNode(?DOMNode $otherNode): bool

Verifica se ambos os nós são iguais.

Parâmetros

otherNode

O nó.

Valor Retornado

Retorna true se ambos os nós forem iguais, false caso contrário.

Exemplos

Exemplo #1 DOMNode::isEqualNode() exemplo

<?php

$dom1 = (new DOMDocument())->createElement('h1', 'Hello World!');
$dom2 = (new DOMDocument())->createElement('h1', 'Hello World!');

var_dump($dom1->isEqualNode($dom2));
?>

O exemplo acima produzirá:

bool(true)


Indica se dois nós são o mesmo nó

  • « DOMNode::isEqualNode
  • DOMNode::isSupported »
  • PHP Manual
  • DOMNode
  • Indica se dois nós são o mesmo nó

DOMNode::isSameNode

(PHP 5, PHP 7, PHP 8)

DOMNode::isSameNode — Indica se dois nós são o mesmo nó

Descrição

public DOMNode::isSameNode(DOMNode $otherNode): bool

Esta função indica se dois nós são o mesmo nó. A comparação não é baseada no conteúdo.

Parâmetros

otherNode

O nó comparado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Verifica se o recurso é suportado para a versão especificada

  • « DOMNode::isSameNode
  • DOMNode::lookupNamespaceURI »
  • PHP Manual
  • DOMNode
  • Verifica se o recurso é suportado para a versão especificada

DOMNode::isSupported

(PHP 5, PHP 7, PHP 8)

DOMNode::isSupported — Verifica se o recurso é suportado para a versão especificada

Descrição

public DOMNode::isSupported(string $feature, string $version): bool

Verifica se o feature solicitado é suportado para a version especificada.

Parâmetros

feature

O recurso a ser testado. Veja o exemplo de DOMImplementation::hasFeature() para uma lista de recursos.

version

O número da versão do feature a ser testado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • DOMImplementation::hasFeature() - Testa se a implementação DOM implementa um recurso específico


Obtém o URI do namespace do nó com base no prefixo

  • « DOMNode::isSupported
  • DOMNode::lookupPrefix »
  • PHP Manual
  • DOMNode
  • Obtém o URI do namespace do nó com base no prefixo

DOMNode::lookupNamespaceURI

(PHP 5, PHP 7, PHP 8)

DOMNode::lookupNamespaceURI — Obtém o URI do namespace do nó com base no prefixo

Descrição

public DOMNode::lookupNamespaceURI(?string $prefix): ?string

Obtém o URI do namespace do nó com base no prefix.

Parâmetros

prefix

O prefixo a ser procurado. Se este parâmetro for null, o método retornará o URI do namespace padrão, se existir.

Valor Retornado

Retorna o URI do namespace associado ou null se nenhum for encontrado.

Veja Também

  • DOMNode::lookupPrefix() - Obtém o prefixo do namespace do nó com base no URI do namespace


Obtém o prefixo do namespace do nó com base no URI do namespace

  • « DOMNode::lookupNamespaceURI
  • DOMNode::normalize »
  • PHP Manual
  • DOMNode
  • Obtém o prefixo do namespace do nó com base no URI do namespace

DOMNode::lookupPrefix

(PHP 5, PHP 7, PHP 8)

DOMNode::lookupPrefix — Obtém o prefixo do namespace do nó com base no URI do namespace

Descrição

public DOMNode::lookupPrefix(string $namespace): ?string

Obtém o prefixo do namespace do nó com base no URI do namespace.

Parâmetros

namespace

O URI do namespace.

Valor Retornado

O prefixo do namespace ou null em caso de erro.

Veja Também

  • DOMNode::lookupNamespaceUri() - Obtém o URI do namespace do nó com base no prefixo


Normaliza o nó

  • « DOMNode::lookupPrefix
  • DOMNode::removeChild »
  • PHP Manual
  • DOMNode
  • Normaliza o nó

DOMNode::normalize

(PHP 5, PHP 7, PHP 8)

DOMNode::normalize — Normaliza o nó

Descrição

public DOMNode::normalize(): void

Remove nós de texto vazios e mescla nós de texto adjacentes neste nó e em todos os seus filhos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • » A Especificação DOM
  • DOMDocument::normalizeDocument() - Normaliza o documento


Remove um filho da lista de filhos

  • « DOMNode::normalize
  • DOMNode::replaceChild »
  • PHP Manual
  • DOMNode
  • Remove um filho da lista de filhos

DOMNode::removeChild

(PHP 5, PHP 7, PHP 8)

DOMNode::removeChild — Remove um filho da lista de filhos

Descrição

public DOMNode::removeChild(DOMNode $child): DOMNode|false

Esta função remove um filho da lista de filhos.

Parâmetros

child

O filho removido.

Valor Retornado

Se o filho puder ser removido, a função retorna o antigo filho ou false em caso de erro.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se este nó for somente leitura.

DOM_NOT_FOUND

Gerado se child não for um filho deste nó.

Exemplos

O exemplo a seguir excluirá o elemento chapter do nosso documento XML.

Exemplo #1 Removendo um filho

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$book = $doc->documentElement;

// recuperamos o capítulo e o removemos do livro
$chapter = $book->getElementsByTagName('chapter')->item(0);
$oldchapter = $book->removeChild($chapter);

echo $doc->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="listing">
 <title>My lists</title>

</book>

Veja Também

  • DOMChildNode::remove() - Remove o nó
  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMNode::replaceChild() - Substitui um filho


Substitui um filho

  • « DOMNode::removeChild
  • DOMNodeList »
  • PHP Manual
  • DOMNode
  • Substitui um filho

DOMNode::replaceChild

(PHP 5, PHP 7, PHP 8)

DOMNode::replaceChild — Substitui um filho

Descrição

public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false

Esta função substitui o filho child pelo novo nó passado. Se o node já for um filho, ele não será adicionado novamente. Se a substituição for bem-sucedida, o nó antigo é retornado.

Parâmetros

node

O novo nó. Ele deve ser um membro do documento de destino, ou seja, criado por um dos métodos DOMDocument->createXXX() ou importado no documento por DOMDocument::importNode.

child

O nó antigo.

Valor Retornado

O nó antigo ou false se ocorrer um erro.

Erros/Exceções

DOM_NO_MODIFICATION_ALLOWED_ERR

Gerado se este nó for somente leitura ou se o pai anterior do nó sendo inserido for somente leitura.

DOM_HIERARCHY_REQUEST_ERR

Gerado se este nó for de um tipo que não permite filhos do tipo do nó node, ou se o nó a ser inserido for um dos ancestrais deste nó ou este nó mesmo.

DOM_WRONG_DOCUMENT_ERR

Gerado se node foi criado a partir de um documento diferente daquele que criou este nó.

DOM_NOT_FOUND

Gerado se child não for um filho deste nó.

Veja Também

  • DOMChildNode::replaceWith() - Substitui o nó por novos nós
  • DOMNode::appendChild() - Adiciona um novo filho ao final dos filhos
  • DOMNode::removeChild() - Remove um filho da lista de filhos


A classe DOMNodeList

(PHP 5, PHP 7, PHP 8)

Resumo da classe

class DOMNodeList implements IteratorAggregate, Countable {
/* Propriedades */
public readonly int $length;
/* Métodos */
public count(): int
public getIterator(): Iterator
public item(int $index): DOMElement|DOMNode|DOMNameSpaceNode|null
}

Propriedades

length

O número de nós na lista. A faixa de índices válidos para nós filhos é de 0 a length - 1, inclusive.

Registro de Alterações

Versão | Descrição
8.0.0 | DOMNodeList implementa IteratorAggregate agora. Anteriormente, foi implementado Traversable em vez disso.
7.2.0 | A interface Countable é implementada e retorna o valor da propriedade length.

Veja Também

  • » Especificação da W3C para NodeList.

Índice

  • DOMNodeList::count — Obtém o número de nós na lista
  • DOMNodeList::getIterator — Retorna um iterador externo
  • DOMNodeList::item — Recupera um nó especificado pelo índice


Obtém o número de nós na lista

  • « DOMNodeList
  • DOMNodeList::getIterator »
  • PHP Manual
  • DOMNodeList
  • Obtém o número de nós na lista

DOMNodeList::count

(PHP 7 >= 7.2.0, PHP 8)

DOMNodeList::count — Obtém o número de nós na lista

Descrição

public DOMNodeList::count(): int

Obtém o número de nós na lista.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de nós na lista, que é idêntico à propriedade length.


Retorna um iterador externo

  • « DOMNodeList::count
  • DOMNodeList::item »
  • PHP Manual
  • DOMNodeList
  • Retorna um iterador externo

DOMNodeList::getIterator

(PHP 8)

DOMNodeList::getIterator — Retorna um iterador externo

Descrição

public DOMNodeList::getIterator(): Iterator

Retorna um iterador externo para a lista de nós.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma instância de um objeto que implementa Iterator ou Traversable

Erros/Exceções

Lança uma Exception em caso de falha.

Veja Também

  • IteratorAggregate::getIterator() - Recupera um iterator externo


Recupera um nó especificado pelo índice

  • « DOMNodeList::getIterator
  • DOMNotation »
  • PHP Manual
  • DOMNodeList
  • Recupera um nó especificado pelo índice

DOMNodeList::item

(PHP 5, PHP 7, PHP 8)

DOMNodeList::item — Recupera um nó especificado pelo índice

Descrição

public DOMNodeList::item(int $index): DOMElement|DOMNode|DOMNameSpaceNode|null

Recupera um nó especificado pelo índice index dentro do objeto DOMNodeList.

Dica

Se você precisar saber o número de nós na coleção, use a propriedade length do objeto DOMNodeList.

Parâmetros

index

Índice do nó na coleção.

Valor Retornado

O nó na posição index na DOMNodeList, ou null se esse não for um índice válido.

Exemplos

Exemplo #1 Percorrendo todas as entradas da tabela

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$items = $doc->getElementsByTagName('entry');

for ($i = 0; $i < $items->length; $i++) {
echo $items->item($i)->nodeValue . "\n";
}

?>

Alternativamente, você pode usar foreach, que é uma maneira muito mais conveniente:

<?php

foreach ($items as $item) {
echo $item->nodeValue . "\n";
}

?>

O exemplo acima produzirá:

Title
Author
Language
ISBN
The Grapes of Wrath
John Steinbeck
en
0140186409
The Pearl
John Steinbeck
en
014017737X
Samarcande
Amine Maalouf
fr
2253051209


A classe DOMNotation

(PHP 5, PHP 7, PHP 8)

Resumo da classe

class DOMNotation extends DOMNode {
/* Propriedades */
public readonly string $publicId;
public readonly string $systemId;
/* Propriedades herdadas */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos herdados */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

publicId

systemId


A interface DOMParentNode

(PHP 8)

Resumo da Interface

interface DOMParentNode {
/* Métodos */
public append(DOMNode|string ...$nodes): void
public prepend(DOMNode|string ...$nodes): void
public replaceChildren(DOMNode|string ...$nodes): void
}

Índice

  • DOMParentNode::append — Acrescenta nós após o último nó filho
  • DOMParentNode::prepend — Insere nós antes do primeiro nó filho
  • DOMParentNode::replaceChildren — Substitui filhos no nó


Acrescenta nós após o último nó filho

  • « DOMParentNode
  • DOMParentNode::prepend »
  • PHP Manual
  • DOMParentNode
  • Acrescenta nós após o último nó filho

DOMParentNode::append

(PHP 8)

DOMParentNode::append — Acrescenta nós após o último nó filho

Descrição

public DOMParentNode::append(DOMNode|string ...$nodes): void

Acrescenta um ou muitos nodes à lista de filhos após o último nó filho.

Parâmetros

nodes

Os nós a serem acrescentados. As strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Veja Também

  • DOMParentNode::prepend() - Insere nós antes do primeiro nó filho


Insere nós antes do primeiro nó filho

  • « DOMParentNode::append
  • DOMParentNode::replaceChildren »
  • PHP Manual
  • DOMParentNode
  • Insere nós antes do primeiro nó filho

DOMParentNode::prepend

(PHP 8)

DOMParentNode::prepend — Insere nós antes do primeiro nó filho

Descrição

public DOMParentNode::prepend(DOMNode|string ...$nodes): void

Insere um ou muitos nodes à lista de filhos antes do primeiro nó filho.

Parâmetros

nodes

Os nós a serem inseridos. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Veja Também

  • DOMParentNode::append() - Acrescenta nós após o último nó filho


Substitui filhos no nó

  • « DOMParentNode::prepend
  • DOMProcessingInstruction »
  • PHP Manual
  • DOMParentNode
  • Substitui filhos no nó

DOMParentNode::replaceChildren

(PHP 8 >= 8.3.0)

DOMParentNode::replaceChildren — Substitui filhos no nó

Descrição

public DOMParentNode::replaceChildren(DOMNode|string ...$nodes): void

Substitui os filhos no nó.

Parâmetros

nodes

Os nós que substituirão os filhos. Strings são automaticamente convertidas em nós de texto.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

DOM_HIERARCHY_REQUEST_ERR

Emitido se este nó é de um tipo que não permite filhos do tipo de um dos nodes informados, ou se o nó a ser inserido é um dos ancestrais deste nó, ou o próprio nó.

DOM_WRONG_DOCUMENT_ERR

Emitido se um dos nodes informados foi criado a partir de um documento diferente daquele que criou este nó.

Registro de Alterações

Versão | Descrição
8.3.0 | Chamar este método em um nó sem um documento proprietário agora funciona. Anteriormente, era lançada uma exceção DOMException com código DOM_HIERARCHY_REQUEST_ERR.

Exemplos

Exemplo #1 DOMParentNode::replaceChildren() exemplo

<?php

$dom = new DOMDocument();
$dom->loadHTML('<!DOCTYPE HTML><html><p>hi</p> test <p>hi2</p></html>');

$dom->documentElement->replaceChildren('foo', $dom->createElement('p'), 'bar');
echo $dom->saveXML();
?>

O exemplo acima produzirá:

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE HTML>
<html>foo<p/>bar</html>


A classe DOMProcessingInstruction

(PHP 5, PHP 7, PHP 8)

Resumo da classe

class DOMProcessingInstruction extends DOMNode {
/* Propriedades */
public readonly string $target;
public string $data;
/* Propriedades herdadas */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public __construct(string $name, string $value = "")
/* Métodos herdados */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

target

data

Índice

  • DOMProcessingInstruction::__construct — Cria um novo objeto DOMProcessingInstruction


Cria um novo objeto DOMProcessingInstruction

  • « DOMProcessingInstruction
  • DOMText »
  • PHP Manual
  • DOMProcessingInstruction
  • Cria um novo objeto DOMProcessingInstruction

DOMProcessingInstruction::__construct

(PHP 5, PHP 7, PHP 8)

DOMProcessingInstruction::__construct — Cria um novo objeto DOMProcessingInstruction

Descrição

public DOMProcessingInstruction::__construct(string $name, string $value = "")

Cria um novo objeto DOMProcessingInstruction. Este objeto é somente leitura. Pode ser anexado a um documento, mas nós adicionais não podem ser anexados a este nó até que o nó esteja associado a um documento. Para criar um nó gravável, use DOMDocument::createProcessingInstruction.

Parâmetros

name

O nome da tag da instrução de processamento.

value

O valor da instrução de processamento.

Exemplos

Exemplo #1 Criando um novo objeto DOMProcessingInstruction

<?php

$dom = new DOMDocument('1.0', 'UTF-8');
$html = $dom->appendChild(new DOMElement('html'));
$body = $html->appendChild(new DOMElement('body'));
$pinode = new DOMProcessingInstruction('php', 'echo "Hello World"; ');
$body->appendChild($pinode);
echo $dom->saveXML();

?>

O exemplo acima produzirá:

<?xml version="1.0" encoding="UTF-8"?>
<html><body><?php echo "Hello World"; ?></body></html>

Veja Também

  • DOMDocument::createProcessingInstruction() - Cria novo nó PI (Processing Instruction)


A classe DOMText

(PHP 5, PHP 7, PHP 8)

Introdução

A classe DOMText herda de DOMCharacterData e representa o conteúdo textua de um elemento DOMElement ou DOMAttr.

Resumo da classe

class DOMText extends DOMCharacterData {
/* Propriedades */
public readonly string $wholeText;
/* Propriedades herdadas */
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Métodos */
public __construct(string $data = "")
public isElementContentWhitespace(): bool
public isWhitespaceInElementContent(): bool
public splitText(int $offset): DOMText|false
/* Métodos herdados */
public DOMCharacterData::after(DOMNode|string ...$nodes): void
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::before(DOMNode|string ...$nodes): void
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::remove(): void
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriedades

wholeText

Contém todo o texto de nós de texto logicamente adjacentes (não separados por Elemento, Comentário ou Instrução de Processamento).

Registro de Alterações

Versão | Descrição
8.0.0 | O método não implementado DOMText::replaceWholeText() foi removido.

Índice

  • DOMText::__construct — Cria um novo objeto DOMText
  • DOMText::isElementContentWhitespace — Retorna se este nó de texto contém espaços em branco no conteúdo do elemento
  • DOMText::isWhitespaceInElementContent — Indica se este nó de texto contém espaços em branco
  • DOMText::splitText — Quebra este nó em dois nós no deslocamento especificado


Cria um novo objeto DOMText

  • « DOMText
  • DOMText::isElementContentWhitespace »
  • PHP Manual
  • DOMText
  • Cria um novo objeto DOMText

DOMText::__construct

(PHP 5, PHP 7, PHP 8)

DOMText::__construct — Cria um novo objeto DOMText

Descrição

public DOMText::__construct(string $data = "")

Cria um novo objeto DOMText

Parâmetros

data

O valor do nó de texto. Se não fornecido, um nó de texto vazio é criado.

Exemplos

Exemplo #1 Criando um novo DOMText

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMText('root value'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>root value</root> */

?>

Veja Também

  • DOMDocument::createTextNode() - Cria novo nó de texto


Retorna se este nó de texto contém espaços em branco no conteúdo do elemento

  • « DOMText::__construct
  • DOMText::isWhitespaceInElementContent »
  • PHP Manual
  • DOMText
  • Retorna se este nó de texto contém espaços em branco no conteúdo do elemento

DOMText::isElementContentWhitespace

(Não há informação de versão disponível, talvez apenas no Git)

DOMText::isElementContentWhitespace — Retorna se este nó de texto contém espaços em branco no conteúdo do elemento

Descrição

public DOMText::isElementContentWhitespace(): bool

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Indica se este nó de texto contém espaços em branco

  • « DOMText::isElementContentWhitespace
  • DOMText::splitText »
  • PHP Manual
  • DOMText
  • Indica se este nó de texto contém espaços em branco

DOMText::isWhitespaceInElementContent

(PHP 5, PHP 7, PHP 8)

DOMText::isWhitespaceInElementContent — Indica se este nó de texto contém espaços em branco

Descrição

public DOMText::isWhitespaceInElementContent(): bool

Indica se este nó de texto contém apenas espaços em branco ou se está vazio. O nó de texto é considerado conter espaços em branco no conteúdo do elemento durante o carregamento do documento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true se o nó contiver zero ou mais caracteres de espaço em branco e nada mais. Retorna false caso contrário.


Quebra este nó em dois nós no deslocamento especificado

  • « DOMText::isWhitespaceInElementContent
  • DOMXPath »
  • PHP Manual
  • DOMText
  • Quebra este nó em dois nós no deslocamento especificado

DOMText::splitText

(PHP 5, PHP 7, PHP 8)

DOMText::splitText — Quebra este nó em dois nós no deslocamento especificado

Descrição

public DOMText::splitText(int $offset): DOMText|false

Quebra este nó em dois no offset especificado, mantendo ambos na árvore como irmãos.

Depois de dividido, esse nó conterá todo o conteúdo até o offset. Se o nó original tinha um nó pai, o novo nó será inserido como o próximo irmão do nó original. Quando o offset for igual ao tamanho desse nó, o novo nó não terá dados.

Parâmetros

offset

O deslocamento para dividir, começando em 0.

Valor Retornado

O novo nó do mesmo tipo, que contém todo o conteúdo durante e após o offset.


A classe DOMXPath

(PHP 5, PHP 7, PHP 8)

Introdução

Suporta XPath 1.0

Resumo da classe

class DOMXPath {
/* Propriedades */
public readonly DOMDocument $document;
public bool $registerNodeNamespaces;
/* Métodos */
public __construct(DOMDocument $document, bool $registerNodeNS = true)
public evaluate(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed
public query(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed
public registerNamespace(string $prefix, string $namespace): bool
public registerPhpFunctions(string|array|null $restrict = null): void
}

Propriedades

document

registerNodeNamespaces

Quando definido como true, os namespaces no nó são registrados.

Registro de Alterações

Versão | Descrição
8.0.0 | A propriedade registerNodeNamespaces foi adicionada.

Índice

  • DOMXPath::__construct — Cria um novo objeto DOMXPath
  • DOMXPath::evaluate — Avalia a expressão XPath fornecida e retorna um resultado tipado se possível
  • DOMXPath::query — Avalia a expressão XPath fornecida
  • DOMXPath::registerNamespace — Registra o namespace com o objeto DOMXPath
  • DOMXPath::registerPhpFunctions — Registra funções PHP como funções XPath


Cria um novo objeto DOMXPath

  • « DOMXPath
  • DOMXPath::evaluate »
  • PHP Manual
  • DOMXPath
  • Cria um novo objeto DOMXPath

DOMXPath::__construct

(PHP 5, PHP 7, PHP 8)

DOMXPath::__construct — Cria um novo objeto DOMXPath

Descrição

public DOMXPath::__construct(DOMDocument $document, bool $registerNodeNS = true)

Cria um novo objeto DOMXPath.

Parâmetros

document

O DOMDocument associado ao DOMXPath.

registerNodeNS

Define se deve-se registrar automaticamente os prefixos de espaços de nomes dentro do escopo no nó de contexto para o objeto DOMXPath. Isto pode ser usado para evitar a necessidade de se chamar DOMXPath::registerNamespace() manuallmente para cada espaço de nome dentro do escopo. Quando existir um conflito entre prefixos de espaços de nomes, apenas o prefixo do espaço de nome descendente mais próximo será registrado.


Avalia a expressão XPath fornecida e retorna um resultado tipado se possível

  • « DOMXPath::__construct
  • DOMXPath::query »
  • PHP Manual
  • DOMXPath
  • Avalia a expressão XPath fornecida e retorna um resultado tipado se possível

DOMXPath::evaluate

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

DOMXPath::evaluate — Avalia a expressão XPath fornecida e retorna um resultado tipado se possível

Descrição

public DOMXPath::evaluate(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed

Executa a expressão XPath expression fornecida e retorna um resultado tipado se possível.

Parâmetros

expression

A expressão XPath a ser executada.

contextNode

O contextNode opcional pode ser especificado para realizar consultas XPath relativas. Por padrão, as consultas são relativas ao elemento raiz.

registerNodeNS

Define se deve-se registrar automaticamente os prefixos de espaços de nomes dentro do escopo no nó de contexto para o objeto DOMXPath. Isto pode ser usado para evitar a necessidade de se chamar DOMXPath::registerNamespace() manuallmente para cada espaço de nome dentro do escopo. Quando existir um conflito entre prefixos de espaços de nomes, apenas o prefixo do espaço de nome descendente mais próximo será registrado.

Valor Retornado

Retorna um resultado tipado se possível ou uma DOMNodeList contendo todos os nós que correspondem à expressão XPath expression.

Se a expression estiver malformada ou o contextNode for inválido, DOMXPath::evaluate() retorna false.

Exemplos

Exemplo #1 Obtendo a contagem de todos os livros em inglês

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// nossa consulta é relativa ao nó tbody
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo "There are $entries english books\n";

?>

O exemplo acima produzirá:

There are 2 english books

Veja Também

  • DOMXPath::query() - Avalia a expressão XPath fornecida


Avalia a expressão XPath fornecida

  • « DOMXPath::evaluate
  • DOMXPath::registerNamespace »
  • PHP Manual
  • DOMXPath
  • Avalia a expressão XPath fornecida

DOMXPath::query

(PHP 5, PHP 7, PHP 8)

DOMXPath::query — Avalia a expressão XPath fornecida

Descrição

public DOMXPath::query(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed

Executa a expression XPath fornecida.

Parâmetros

expression

A expressão XPath a ser executada.

contextNode

O contextNode opcional pode ser especificado para realizar consultas XPath relativas. Por padrão, as consultas são relativas ao elemento raiz.

registerNodeNS

Define se deve-se registrar automaticamente os prefixos de espaços de nomes dentro do escopo no nó de contexto para o objeto DOMXPath. Isto pode ser usado para evitar a necessidade de se chamar DOMXPath::registerNamespace() manuallmente para cada espaço de nome dentro do escopo. Quando existir um conflito entre prefixos de espaços de nomes, apenas o prefixo do espaço de nome descendente mais próximo será registrado.

Valor Retornado

Retorna uma DOMNodeList contendo todos os nós que correspondem à expression XPath fornecida. Qualquer expressão que não retorne nós resultará em uma DOMNodeList vazia.

Se a expression estiver malformada ou o contextNode for inválido, DOMXPath::query() retorna false.

Exemplos

Exemplo #1 Obtendo todos os livros em inglês

<?php

$doc = new DOMDocument;

// Não queremos nos preocupar com espaços em branco
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Começamos do elemento raiz
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';

$entries = $xpath->query($query);

foreach ($entries as $entry) {
echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
" by {$entry->previousSibling->nodeValue}\n";
}
?>

O exemplo acima produzirá:

Found The Grapes of Wrath, by John Steinbeck
Found The Pearl, by John Steinbeck

Também podemos usar o parâmetro contextNode para encurtar nossa expressão:

<?php

$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// nossa consulta é relativa ao nó tbody
$query = 'row/entry[. = "en"]';

$entries = $xpath->query($query, $tbody);

foreach ($entries as $entry) {
echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
" by {$entry->previousSibling->nodeValue}\n";
}
?>

Veja Também

  • DOMXPath::evaluate() - Avalia a expressão XPath fornecida e retorna um resultado tipado se possível


Registra o namespace com o objeto DOMXPath

  • « DOMXPath::query
  • DOMXPath::registerPhpFunctions »
  • PHP Manual
  • DOMXPath
  • Registra o namespace com o objeto DOMXPath

DOMXPath::registerNamespace

(PHP 5, PHP 7, PHP 8)

DOMXPath::registerNamespace — Registra o namespace com o objeto DOMXPath

Descrição

public DOMXPath::registerNamespace(string $prefix, string $namespace): bool

Registra o namespace e prefix com o objeto DOMXPath.

Parâmetros

prefix

O prefixo.

namespace

O URI do namespace.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Registra funções PHP como funções XPath

  • « DOMXPath::registerNamespace
  • DOM Funções »
  • PHP Manual
  • DOMXPath
  • Registra funções PHP como funções XPath

DOMXPath::registerPhpFunctions

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DOMXPath::registerPhpFunctions — Registra funções PHP como funções XPath

Descrição

public DOMXPath::registerPhpFunctions(string|array|null $restrict = null): void

Este método permite o uso de funções PHP dentro de expressões XPath.

Parâmetros

restrict

Use este parâmetro para permitir apenas que certas funções sejam chamadas do XPath.

Este parâmetro pode ser uma string (um nome de função) ou um array de nomes de função.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Os exemplos a seguir usam book.xml que contém o seguinte:

Exemplo #1 book.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book>
  <title>PHP Basics</title>
  <author>Jim Smith</author>
  <author>Jane Smith</author>
 </book>
 <book>
  <title>PHP Secrets</title>
  <author>Jenny Smythe</author>
 </book>
 <book>
  <title>XML basics</title>
  <author>Joe Black</author>
 </book>
</books>

Exemplo #2 DOMXPath::registerPHPFunctions() com php:functionString

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Registra o namespace php: (obrigatório)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Registra funções PHP (sem restrições)
$xpath->registerPHPFunctions();

// hama a função substr no título do livro
$nodes = $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');

echo "Found {$nodes->length} books starting with 'PHP':\n";
foreach ($nodes as $node) {
$title = $node->getElementsByTagName("title")->item(0)->nodeValue;
$author = $node->getElementsByTagName("author")->item(0)->nodeValue;
echo "$title by $author\n";
}

?>

O exemplo acima produzirá algo semelhante a:

Found 2 books starting with 'PHP':
PHP Basics by Jim Smith
PHP Secrets by Jenny Smythe

Exemplo #3 DOMXPath::registerPHPFunctions() com php:function

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Registra o namespace php: (obrigatório)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Registra funções PHP (apenas has_multiple)
$xpath->registerPHPFunctions("has_multiple");

function has_multiple($nodes) {
// Retorna true se mais de um autor
return count($nodes) > 1;
}
// Filtra livros com múltiplos autores
$books = $xpath->query('//book[php:function("has_multiple", author)]');

echo "Books with multiple authors:\n";
foreach ($books as $book) {
echo $book->getElementsByTagName("title")->item(0)->nodeValue . "\n";
}

?>

O exemplo acima produzirá algo semelhante a:

Books with multiple authors:
PHP Basics

Veja Também

  • DOMXPath::registerNamespace() - Registra o namespace com o objeto DOMXPath
  • DOMXPath::query() - Avalia a expressão XPath fornecida
  • DOMXPath::evaluate() - Avalia a expressão XPath fornecida e retorna um resultado tipado se possível


DOM Funções

Índice

  • dom_import_simplexml — Obtém um objeto DOMElement a partir de um objeto SimpleXMLElement


Obtém um objeto DOMElement a partir de um objeto SimpleXMLElement

  • « DOM Funções
  • libxml »
  • PHP Manual
  • DOM Funções
  • Obtém um objeto DOMElement a partir de um objeto SimpleXMLElement

dom_import_simplexml

(PHP 5, PHP 7, PHP 8)

dom_import_simplexml — Obtém um objeto DOMElement a partir de um objeto SimpleXMLElement

Descrição

dom_import_simplexml(object $node): DOMElement

Esta função pega o nó node da classe SimpleXML e o transforma em um nó DOMElement. Este novo objeto pode então ser usado como um nó nativo DOMElement.

Parâmetros

node

O nó SimpleXMLElement.

Valor Retornado

O nó DOMElement adicionado.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função não retorna mais null em caso de falha.

Exemplos

Exemplo #1 Importar SimpleXML para DOM com dom_import_simplexml()

<?php

$sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');

if ($sxe === false) {
echo 'Error while parsing the document';
exit;
}

$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
echo 'Error while converting XML';
exit;
}

$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);

echo $dom->saveXML();

?>

Veja Também

  • simplexml_import_dom() - Recebe um objeto SimpleXMLElement de um nó DOM


libxml

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação para versões do PHP >= 7.4
    • Instalação para versões do PHP < 7.4
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • LibXMLError — A classe LibXMLError
  • Funções da libxml
    • libxml_clear_errors — Limpa o buffer de erro da libxml
    • libxml_disable_entity_loader — Desabilita a capacidade de carregar entidades externas
    • libxml_get_errors — Obtém um array de erros
    • libxml_get_external_entity_loader — Obtém o carregador atual de entidade externa
    • libxml_get_last_error — Obtém o último erro da libxml
    • libxml_set_external_entity_loader — Altera o carregador padrão de entidades externas
    • libxml_set_streams_context — Define o contexto de fluxos para o próximo carregamento ou escrita de documento libxml
    • libxml_use_internal_errors — Desabilita erros da libxml e permite que o usuário obtenha informações de erro conforme necessário


Introdução

Estas funções/constantes estão disponíveis a partir do PHP 5.1.0, e as seguintes extensões do núcleo dependem desta extensão libxml: DOM, libxml, SimpleXML, SOAP, WDDX, XSL, XML, XMLReader, XMLRPC e XMLWriter.


Instalação/Configuração

Índice

  • Dependências
  • Instalação para versões do PHP >= 7.4
  • Instalação para versões do PHP < 7.4
  • Configurações em Execução
  • Tipos de Recurso


  • « Instalação/Configuração
  • Instalação para versões do PHP >= 7.4 »
  • PHP Manual
  • Instalação/Configuração
  • Dependências

Dependências

Esta extensão requer » libxml >= 2.9.0 a partir do PHP 8.0. libxml >= 2.6.0 antes do PHP 8.0.


Instalação para versões do PHP >= 7.4

A extensão libxml está habilitada por padrão, embora possa ser desabilitada com --without-libxml.

O PHP usa pkg-config para selecionar o arquivos correto de biblioteca e cabeçalhos, e as opções de compilação a serem usadas para libxml2. Para assegurar-se de que a versão pretendida da libxml2 está selecionada, a variável de ambiente PKG_CONFIG_PATH pode ser usada para controlar o caminho de pesquisa para pkg-config antes de executar o script de configuração:

PKG_CONFIG_PATH="/path/to/libxml2/prefix/lib/pkgconfig:/lib/pkgconfig"


Instalação para versões do PHP < 7.4

A extensão libxml está habilitada por padrão, embora possa ser desabilitada com --disable-libxml.

A diretiva opcional --with-libxml-dir é usada para especificar a localização da libxml no sistema onde o PHP está sendo compilado, caso contrário apenas a localicação padrão é pesquisada. O processo configure pesquisa pela libxml (especificamente, xml2-config) na seguinte ordem:

  1. A localização ([DIR]) especificada com --with-libxml-dir ([DIR]=/bin/xml2-config)

  2. /usr/local/bin/xml2-config

  3. /usr/bin/xml2-config

Se configure não puder encontrar xml2-config no diretório especificado por --with-libxml-dir, ele continuará e pesquisará nas localizações padrões.


  • « Instalação para versões do PHP < 7.4
  • Tipos de Recurso »
  • PHP Manual
  • Instalação/Configuração
  • Configurações em Execução

Configurações em Execução

Esta extensão não possui diretivas de configuração definidas no php.ini.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

LIBXML_BIGLINES (int)
Permite que números de linha maiores que 65535 sejam reportados corretamente.

Nota:

Disponível somente a partir do PHP 7.0.0 com Libxml >= 2.9.0

LIBXML_COMPACT (int)
Ativa a otimização de alocação de nós pequenos. Isto pode acelerar a aplicação sem a necessidade de se modificar o código.

Nota:

Somente disponível na Libxml >= 2.6.21

LIBXML_DTDATTR (int)
Atributos DTD padrões
LIBXML_DTDLOAD (int)
Carrega o subconjunto externo
LIBXML_DTDVALID (int)
Valida com o DTD
Cuidado

Habilitar a validação do DTD pode facilitar ataques do tipo XXE (Entidade Externa XML).

LIBXML_HTML_NOIMPLIED (int)
Define a opção HTML_PARSE_NOIMPLIED, que desliga a adição automática de elementos html/body... implícitos.

Nota:

Disponível somente na Libxml >= 2.7.7 (a partir do PHP >= 5.4.0)

LIBXML_HTML_NODEFDTD (int)
Define a opção HTML_PARSE_NODEFDTD, que evita que um doctype padrão seja adicionado quando um não for encontrado.

Nota:

Disponível somente na Libxml >= 2.7.8 (a partir do PHP >= 5.4.0)

LIBXML_NOBLANKS (int)
Remove nós em branco
LIBXML_NOCDATA (int)
Funde CDATA como nós de texto
LIBXML_NOEMPTYTAG (int)
Expande etiquetas vazias (ex.: <br/> para <br></br>)

Nota:

Atualmente, esta opção está disponível somente nas funções DOMDocument::save e DOMDocument::saveXML.

LIBXML_NOENT (int)
Substitui entidades
Cuidado

Habilitar dubstituição de entidade pode facilitar ataques do tipo XXE (XML External Entity).

LIBXML_NOERROR (int)
Suprime mensagens de erro
LIBXML_NONET (int)
Desabilita o acesso à rede ao carregar documentos
LIBXML_NOWARNING (int)
Suprime mensagens de alerta
LIBXML_NOXMLDECL (int)
Remove a declaração do XML ao salvar um documento

Nota:

Somente disponível na Libxml >= 2.6.21

LIBXML_NSCLEAN (int)
Remove declarações redundantes de espaço de nomes
LIBXML_PARSEHUGE (int)
Define a opção XML_PARSE_HUGE, que relaxa qualquer limite codificado do analisador. Isto afeta limites como profundidade máxima de um documento ou de recursão de entidade, assim como limites do tamanho dos nós de texto.

Nota:

Disponível somente na Libxml >= 2.7.0 (a partir do PHP >= 5.3.2 e do PHP >= 5.2.12)

LIBXML_PEDANTIC (int)
Defina a opção XML_PARSE_PEDANTIC, que habilita relatório pedantes de erros.

Nota:

Disponível a partir do PHP >= 5.4.0

LIBXML_XINCLUDE (int)
Implementa substituições XInclude
LIBXML_ERR_ERROR (int)
Um erro recuperável
LIBXML_ERR_FATAL (int)
Um erro fatal
LIBXML_ERR_NONE (int)
Sem erros
LIBXML_ERR_WARNING (int)
Um alerta simples
LIBXML_VERSION (int)
Versão da libxml como 20605 ou 20617
LIBXML_DOTTED_VERSION (string)
Versão da libxml como 2.6.5 ou 2.6.17
LIBXML_SCHEMA_CREATE (int)
Cria nós de valores padrões/fixos durante validação do esquema XSD

Nota:

Disponível somente na Libxml >= 2.6.14 (a partir do PHP >= 5.5.2)


A classe LibXMLError

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

Contém várias informações sobre erros lançados pela biblioteca libxml. Os códigos de erro estão descritos na » documentação da API xmlError oficial.

Resumo da classe

class LibXMLError {
/* Propriedades */
public int $level;
public int $code;
public int $column;
public string $message;
public string $file;
public int $line;
}

Propriedades

level

A severidade do erro (uma das constantes a seguir: LIBXML_ERR_WARNING, LIBXML_ERR_ERROR ou LIBXML_ERR_FATAL)

code

O código do erro.

column

A coluna onde o erro ocorreu.

Nota:

Esta propriedade não está completamente implementada na libxml e portanto 0 é frequentemente retornado.

message

A mensagem de erro, se houver.

file

O nome do arquivo, ou vazio se o XML foi carregado de uma string.

line

A linha onde o erro ocorreu.


Funções da libxml

Índice

  • libxml_clear_errors — Limpa o buffer de erro da libxml
  • libxml_disable_entity_loader — Desabilita a capacidade de carregar entidades externas
  • libxml_get_errors — Obtém um array de erros
  • libxml_get_external_entity_loader — Obtém o carregador atual de entidade externa
  • libxml_get_last_error — Obtém o último erro da libxml
  • libxml_set_external_entity_loader — Altera o carregador padrão de entidades externas
  • libxml_set_streams_context — Define o contexto de fluxos para o próximo carregamento ou escrita de documento libxml
  • libxml_use_internal_errors — Desabilita erros da libxml e permite que o usuário obtenha informações de erro conforme necessário


Limpa o buffer de erro da libxml

  • « Funções da libxml
  • libxml_disable_entity_loader »
  • PHP Manual
  • Funções da libxml
  • Limpa o buffer de erro da libxml

libxml_clear_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_clear_errors — Limpa o buffer de erro da libxml

Descrição

libxml_clear_errors(): void

libxml_clear_errors() limpa o buffer de erro da libxml.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Veja Também

  • libxml_get_errors() - Obtém um array de erros
  • libxml_get_last_error() - Obtém o último erro da libxml


Desabilita a capacidade de carregar entidades externas

  • « libxml_clear_errors
  • libxml_get_errors »
  • PHP Manual
  • Funções da libxml
  • Desabilita a capacidade de carregar entidades externas

libxml_disable_entity_loader

(PHP 5 >= 5.2.11, PHP 7, PHP 8)

libxml_disable_entity_loader — Desabilita a capacidade de carregar entidades externas

Aviso

Esta função tornou-se DEFASADA a partir do PHP 8.0.0. O uso desta função é fortemente desencorajado.

Descrição

libxml_disable_entity_loader(bool $disable = true): bool

Desabilita/habilita a capacidade de carregar entidades externas. Observe que desabilitar o carregamento de entidades externas pode causar problemas gerais com carregamento de documentos XML. Entretanto, a partir da libxml 2.9.0, substituição de entidade está desabilitada por padrão, portanto não é necessário desabilitari o carregamento de entidades externas, a menos que haja necessidade de resolver referências de entidades internas com LIBXML_NOENT. Geralmente, é preferível usar libxml_set_external_entity_loader() para suprimir carregamento de entidades externas.

Parâmetros

disable

Desabilita (true) ou habilita (false) a capacidade de extensões libxml (como DOM, XMLWriter e XMLReader) carregarem entidades externas.

Valor Retornado

Retorna o valor anterior.

Veja Também

  • libxml_use_internal_errors() - Desabilita erros da libxml e permite que o usuário obtenha informações de erro conforme necessário
  • libxml_set_external_entity_loader() - Altera o carregador padrão de entidades externas


Obtém um array de erros

  • « libxml_disable_entity_loader
  • libxml_get_external_entity_loader »
  • PHP Manual
  • Funções da libxml
  • Obtém um array de erros

libxml_get_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_get_errors — Obtém um array de erros

Descrição

libxml_get_errors(): array

Obtém um array de erros.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array com objetos LibXMLError se houver algum erro no buffer, ou um array vazio caso contrário.

Exemplos

Exemplo #1 Um exemplo de libxml_get_errors()

Este exemplo demonstra como construir um simples manipulador de erro da libxml.

<?php

libxml_use_internal_errors(true);

$xmlstr = <<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
<movie>
<titles>PHP: Por Trás do Analisador</title>
</movie>
</movies>
XML;

$doc = simplexml_load_string($xmlstr);
$xml = explode("\n", $xmlstr);

if ($doc === false) {
$errors = libxml_get_errors();

foreach ($errors as $error) {
echo display_xml_error($error, $xml);
}

libxml_clear_errors();
}

function display_xml_error($error, $xml)
{
$return = $xml[$error->line - 1] . "\n";
$return .= str_repeat('-', $error->column) . "^\n";

switch ($error->level) {
case LIBXML_ERR_WARNING:
$return .= "Alerta $error->code: ";
break;
case LIBXML_ERR_ERROR:
$return .= "Erro $error->code: ";
break;
case LIBXML_ERR_FATAL:
$return .= "Erro fatal $error->code: ";
break;
}

$return .= trim($error->message) .
"\n Line: $error->line" .
"\n Column: $error->column";

if ($error->file) {
$return .= "\n Arquivo: $error->file";
}

return "$return\n\n--------------------------------------------\n\n";
}

?>

O exemplo acima produzirá:

<titles>PHP: Por Trás do Analisador</title>
----------------------------------------------^
Erro fatal 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 46

--------------------------------------------

Veja Também

  • libxml_get_last_error() - Obtém o último erro da libxml
  • libxml_clear_errors() - Limpa o buffer de erro da libxml


Obtém o carregador atual de entidade externa

  • « libxml_get_errors
  • libxml_get_last_error »
  • PHP Manual
  • Funções da libxml
  • Obtém o carregador atual de entidade externa

libxml_get_external_entity_loader

(PHP 8 >= 8.2.0)

libxml_get_external_entity_loader — Obtém o carregador atual de entidade externa

Descrição

libxml_get_external_entity_loader(): ?callable

Obtém o carregador de entidade externa previamente instalado por libxml_set_external_entity_loader().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O carregador de entidade externa previamente instalado por libxml_set_external_entity_loader(). Se essa função nunca foi chamada, ou se foi chamada com null, null será retornado.

Veja Também

  • libxml_set_external_entity_loader() - Altera o carregador padrão de entidades externas


Obtém o último erro da libxml

  • « libxml_get_external_entity_loader
  • libxml_set_external_entity_loader »
  • PHP Manual
  • Funções da libxml
  • Obtém o último erro da libxml

libxml_get_last_error

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_get_last_error — Obtém o último erro da libxml

Descrição

libxml_get_last_error(): LibXMLError|false

Obtém o último erro da libxml.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um objeto LibXMLError se houver algum erro no buffer, false caso contrário.

Veja Também

  • libxml_get_errors() - Obtém um array de erros
  • libxml_clear_errors() - Limpa o buffer de erro da libxml


Altera o carregador padrão de entidades externas

  • « libxml_get_last_error
  • libxml_set_streams_context »
  • PHP Manual
  • Funções da libxml
  • Altera o carregador padrão de entidades externas

libxml_set_external_entity_loader

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

libxml_set_external_entity_loader — Altera o carregador padrão de entidades externas

Descrição

libxml_set_external_entity_loader(?callable $resolver_function): bool

Altera o carregador padrão de entidades externas. Pode ser usado para suprimir a expansão de entidades externas arbitrárias para evitar ataques XXE, mesmo quando LIBXML_NOENT tiver sido definida para a operação respectiva, e normalmente é preferível em relação à chamada a libxml_disable_entity_loader().

Parâmetros

resolver_function

Uma função/método do tipo callable com a seguinte assinatura:

resolver(?string $public_id, string $system_id, array $context): resource|string|null
public_id
O ID público.
system_id
O ID do sistema.
context
Um array com os quatro elementos: "directory", "intSubName", "extSubURI" e "extSubSystem".
Esta função deve retornar um resource, uma string a partir da qual um recurso possa ser aberto. Se null for retornado, a resolução de referência de entidade irá falhar.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de libxml_set_external_entity_loader()

<?php
$xml = <<<XML
<!DOCTYPE foo PUBLIC "-//FOO/BAR" "http://example.com/foobar">
<foo>bar</foo>
XML;

$dtd = <<<DTD
<!ELEMENT foo (#PCDATA)>
DTD;

libxml_set_external_entity_loader(
function ($public, $system, $context) use($dtd) {
var_dump($public);
var_dump($system);
var_dump($context);
$f = fopen("php://temp", "r+");
fwrite($f, $dtd);
rewind($f);
return $f;
}
);

$dd = new DOMDocument;
$r = $dd->loadXML($xml);

var_dump($dd->validate());
?>

O exemplo acima produzirá:

string(10) "-//FOO/BAR"
string(25) "http://example.com/foobar"
array(4) {
    ["directory"]    => NULL
    ["intSubName"]   => NULL
    ["extSubURI"]    => NULL
    ["extSubSystem"] => NULL
}
bool(true)

Veja Também

  • libxml_disable_entity_loader() - Desabilita a capacidade de carregar entidades externas
  • libxml_get_external_entity_loader() - Obtém o carregador atual de entidade externa


Define o contexto de fluxos para o próximo carregamento ou escrita de documento libxml

  • « libxml_set_external_entity_loader
  • libxml_use_internal_errors »
  • PHP Manual
  • Funções da libxml
  • Define o contexto de fluxos para o próximo carregamento ou escrita de documento libxml

libxml_set_streams_context

(PHP 5, PHP 7, PHP 8)

libxml_set_streams_context — Define o contexto de fluxos para o próximo carregamento ou escrita de documento libxml

Descrição

libxml_set_streams_context(resource $context): void

Define contexto de fluxos para o próximo carregamento ou escrita de documento libxml.

Parâmetros

context

O recurso do contexto de fluxo (criado com stream_context_create())

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Um exemplo de libxml_set_streams_context()

<?php

$opts = array(
'http' => array(
'user_agent' => 'PHP libxml agent',
)
);

$context = stream_context_create($opts);
libxml_set_streams_context($context);

// solicita um arquivo por HTTP
$doc = DOMDocument::load('http://www.example.com/file.xml');

?>

Veja Também

  • stream_context_create() - Cria um contexto de fluxo


Desabilita erros da libxml e permite que o usuário obtenha informações de erro conforme necessário

  • « libxml_set_streams_context
  • SimpleXML »
  • PHP Manual
  • Funções da libxml
  • Desabilita erros da libxml e permite que o usuário obtenha informações de erro conforme necessário

libxml_use_internal_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_use_internal_errors — Desabilita erros da libxml e permite que o usuário obtenha informações de erro conforme necessário

Descrição

libxml_use_internal_errors(?bool $use_errors = null): bool

A função libxml_use_internal_errors() permite desabilitar os erros padrão da libxml e habilitar o tratamento de erros do usuário.

Parâmetros

use_errors

Habilita (true) ou desabilita (false) o tratamento de erros do usuário. Desabilitar também limpará quaisquer erros libxml existentes.

Valor Retornado

Esta função retorna o valor anterior de use_errors.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro use_errors agora pode ser nulo. Anteriormente, o padrão era false.

Exemplos

Exemplo #1 Exemplo de libxml_use_internal_errors()

Este exemplo demonstra o uso básico dos erros da libxml e o valor retornado por esta função.

<?php

// habilita o tratamento de erros do usuário
var_dump(libxml_use_internal_errors(true));

// carrega o documento
$doc = new DOMDocument;

if (!$doc->load('arquivo.xml')) {
foreach (libxml_get_errors() as $erro) {
// trata os erros aqui
}

libxml_clear_errors();
}

?>

O exemplo acima produzirá:

bool(false)

Veja Também

  • libxml_clear_errors() - Limpa o buffer de erro da libxml
  • libxml_get_errors() - Obtém um array de erros


SimpleXML

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Basic SimpleXML usage
    • Dealing with XML errors
  • SimpleXMLElement — A classe SimpleXMLElement
    • SimpleXMLElement::addAttribute — Adiciona um atributo a elemento SimpleXML
    • SimpleXMLElement::addChild — Adiciona um elemento filho à um nó XML
    • SimpleXMLElement::asXML — Retorna uma string XML bem formada (well-formed) baseada em um elemento SimpleXML
    • SimpleXMLElement::attributes — Identifica um atributo de um elemento
    • SimpleXMLElement::children — Encontra os nós filhos de um dado nó
    • SimpleXMLElement::__construct — Cria um novo objeto SimpleXMLElement
    • SimpleXMLElement::count — Conta os filhos de um elemento
    • SimpleXMLElement::current — Returns the current element
    • SimpleXMLElement::getDocNamespaces — Retorna um namespace declarado no documento
    • SimpleXMLElement::getName — Pega o nome de um elemento XML
    • SimpleXMLElement::getNamespaces — Retorna os namespaces utilizados no documento
    • SimpleXMLElement::getChildren — Returns the sub-elements of the current element
    • SimpleXMLElement::hasChildren — Checks whether the current element has sub elements
    • SimpleXMLElement::key — Return current key
    • SimpleXMLElement::next — Move to next element
    • SimpleXMLElement::registerXPathNamespace — Cria um prefixo/namespace de contexto para a próxima consulta XPath
    • SimpleXMLElement::rewind — Rewind to the first element
    • SimpleXMLElement::saveXML — Sinônimo de SimpleXMLElement::asXML
    • SimpleXMLElement::__toString — Retorna o conteúdo como uma string
    • SimpleXMLElement::valid — Check whether the current element is valid
    • SimpleXMLElement::xpath — Executa uma consulta XPath em dados XML
  • SimpleXMLIterator — A classe SimpleXMLIterator
  • Funções da SimpleXML
    • simplexml_import_dom — Recebe um objeto SimpleXMLElement de um nó DOM
    • simplexml_load_file — Interpreta um arquivo XML e o transforma em um objeto
    • simplexml_load_string — Interpreta uma string XML e a transforma em um objeto


Introdução

A extensão SimpleXML provê um conjunto de ferramentas fáceis e de simples utilização para converter XML em objetos que podem ser processados com seletores de propriedades e iteradores de arrays.


Instalação

Esta extensão está habilitada por padrão. Ela pode ser desabilitada usando a seguinte opção em tempo de compilação: --disable-simplexml


  • « Tipos de Recurso
  • Exemplos »
  • PHP Manual
  • SimpleXML
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


  • « Constantes pré-definidas
  • Basic SimpleXML usage »
  • PHP Manual
  • SimpleXML
  • Exemplos

Exemplos

Índice

  • Basic SimpleXML usage
  • Dealing with XML errors


Basic SimpleXML usage

Many examples in this reference require an XML string. Instead of repeating this string in every example, we put it into a file which we include in each example. This included file is shown in the following example section. Alternatively, you could create an XML document and read it with simplexml_load_file().

Exemplo #1 Include file example.php with XML string

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
<movie>
<title>PHP: Behind the Parser</title>
<characters>
<character>
<name>Ms. Coder</name>
<actor>Onlivia Actora</actor>
</character>
<character>
<name>Mr. Coder</name>
<actor>El Act&#211;r</actor>
</character>
</characters>
<plot>
So, this language. It's like, a programming language. Or is it a
scripting language? All is revealed in this thrilling horror spoof
of a documentary.
</plot>
<great-lines>
<line>PHP solves all my web problems</line>
</great-lines>
<rating type="thumbs">7</rating>
<rating type="stars">5</rating>
</movie>
</movies>
XML;
?>

The simplicity of SimpleXML appears most clearly when one extracts a string or number from a basic XML document.

Exemplo #2 Getting <plot>

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

echo $movies->movie[0]->plot;
?>

O exemplo acima produzirá:

   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.

Accessing elements within an XML document that contain characters not permitted under PHP's naming convention (e.g. the hyphen) can be accomplished by encapsulating the element name within braces and the apostrophe.

Exemplo #3 Getting <line>

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

echo $movies->movie->{'great-lines'}->line;
?>

O exemplo acima produzirá:

PHP solves all my web problems

Exemplo #4 Accessing non-unique elements in SimpleXML

When multiple instances of an element exist as children of a single parent element, normal iteration techniques apply.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* For each <character> node, we echo a separate <name>. */
foreach ($movies->movie->characters->character as $character) {
echo $character->name, ' played by ', $character->actor, PHP_EOL;
}

?>

O exemplo acima produzirá:

Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr

Nota:

Properties ($movies->movie in previous example) are not arrays. They are iterable and accessible objects.

Exemplo #5 Using attributes

So far, we have only covered the work of reading element names and their values. SimpleXML can also access element attributes. Access attributes of an element just as you would elements of an array.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* Access the <rating> nodes of the first movie.
* Output the rating scale, too. */
foreach ($movies->movie[0]->rating as $rating) {
switch((string) $rating['type']) { // Get attributes as element indices
case 'thumbs':
echo $rating, ' thumbs up';
break;
case 'stars':
echo $rating, ' stars';
break;
}
}
?>

O exemplo acima produzirá:

7 thumbs up5 stars

Exemplo #6 Comparing Elements and Attributes with Text

To compare an element or attribute with a string or pass it into a function that requires a string, you must cast it to a string using (string). Otherwise, PHP treats the element as an object.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

if ((string) $movies->movie->title == 'PHP: Behind the Parser') {
print 'My favorite movie.';
}

echo htmlentities((string) $movies->movie->title);
?>

O exemplo acima produzirá:

My favorite movie.PHP: Behind the Parser

Exemplo #7 Comparing Two Elements

Two SimpleXMLElements are considered different even if they point to the same element.

<?php
include 'example.php';

$movies1 = new SimpleXMLElement($xmlstr);
$movies2 = new SimpleXMLElement($xmlstr);
var_dump($movies1 == $movies2);
?>

O exemplo acima produzirá:

bool(false)

Exemplo #8 Using XPath

SimpleXML includes built-in XPath support. To find all <character> elements:

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

foreach ($movies->xpath('//character') as $character) {
echo $character->name, ' played by ', $character->actor, PHP_EOL;
}
?>

'//' serves as a wildcard. To specify absolute paths, omit one of the slashes.

O exemplo acima produzirá:

Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr

Exemplo #9 Setting values

Data in SimpleXML doesn't have to be constant. The object allows for manipulation of all of its elements.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$movies->movie[0]->characters->character[0]->name = 'Miss Coder';

echo $movies->asXML();
?>

O exemplo acima produzirá:

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Miss Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>

Exemplo #10 Adding elements and attributes

SimpleXML has had the ability to easily add children and attributes.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$character = $movies->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movies->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $movies->asXML();
?>

O exemplo acima produzirá:

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  <character><name>Mr. Parser</name><actor>John Doe</actor></character></characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 <rating type="mpaa">PG</rating></movie>
</movies>

Exemplo #11 DOM Interoperability

PHP has a mechanism to convert XML nodes between SimpleXML and DOM formats. This example shows how one might change a DOM element to SimpleXML.

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
echo 'Error while parsing the document';
exit;
}

$books = simplexml_import_dom($dom);

echo $books->book[0]->title;
?>

O exemplo acima produzirá:

blah


Dealing with XML errors

Dealing with XML errors when loading documents is a very simple task. Using the libxml functionality it is possible to suppress all XML errors when loading the document and then iterate over the errors.

The libXMLError object, returned by libxml_get_errors(), contains several properties including the message, line and column (position) of the error.

Exemplo #1 Loading broken XML string

<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if ($sxe === false) {
echo "Failed loading XML\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}
?>

O exemplo acima produzirá:

Failed loading XML
    Blank needed here
    parsing XML declaration: '?>' expected
    Opening and ending tag mismatch: xml line 1 and broken
    Premature end of data in tag broken line 1

Veja Também

  • libxml_use_internal_errors()
  • libxml_get_errors()
  • LibXMLError


A classe SimpleXMLElement

(PHP 5, PHP 7, PHP 8)

Introdução

Representa um elemento em um documento XML.

Resumo da classe

class SimpleXMLElement implements Stringable, Countable, RecursiveIterator {
/* Métodos */
public __construct(
string $data,
int $options = 0,
bool $dataIsURL = false,
string $namespaceOrPrefix = "",
bool $isPrefix = false
)
public addAttribute(string $qualifiedName, string $value, ?string $namespace = null): void
public addChild(string $qualifiedName, ?string $value = null, ?string $namespace = null): ?SimpleXMLElement
public asXML(?string $filename = null): string|bool
public attributes(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public children(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public count(): int
public current(): SimpleXMLElement
public getDocNamespaces(bool $recursive = false, bool $fromRoot = true): array|false
public getName(): string
public getNamespaces(bool $recursive = false): array
public getChildren(): ?SimpleXMLElement
public hasChildren(): bool
public key(): string
public next(): void
public registerXPathNamespace(string $prefix, string $namespace): bool
public rewind(): void
public __toString(): string
public valid(): bool
public xpath(string $expression): array|null|false
}

Registro de Alterações

Versão | Descrição
8.0.0 | SimpleXMLElement implementa Stringable, Countable, e RecursiveIterator agora.

Índice

  • SimpleXMLElement::addAttribute — Adiciona um atributo a elemento SimpleXML
  • SimpleXMLElement::addChild — Adiciona um elemento filho à um nó XML
  • SimpleXMLElement::asXML — Retorna uma string XML bem formada (well-formed) baseada em um elemento SimpleXML
  • SimpleXMLElement::attributes — Identifica um atributo de um elemento
  • SimpleXMLElement::children — Encontra os nós filhos de um dado nó
  • SimpleXMLElement::__construct — Cria um novo objeto SimpleXMLElement
  • SimpleXMLElement::count — Conta os filhos de um elemento
  • SimpleXMLElement::current — Returns the current element
  • SimpleXMLElement::getDocNamespaces — Retorna um namespace declarado no documento
  • SimpleXMLElement::getName — Pega o nome de um elemento XML
  • SimpleXMLElement::getNamespaces — Retorna os namespaces utilizados no documento
  • SimpleXMLElement::getChildren — Returns the sub-elements of the current element
  • SimpleXMLElement::hasChildren — Checks whether the current element has sub elements
  • SimpleXMLElement::key — Return current key
  • SimpleXMLElement::next — Move to next element
  • SimpleXMLElement::registerXPathNamespace — Cria um prefixo/namespace de contexto para a próxima consulta XPath
  • SimpleXMLElement::rewind — Rewind to the first element
  • SimpleXMLElement::saveXML — Sinônimo de SimpleXMLElement::asXML
  • SimpleXMLElement::__toString — Retorna o conteúdo como uma string
  • SimpleXMLElement::valid — Check whether the current element is valid
  • SimpleXMLElement::xpath — Executa uma consulta XPath em dados XML


Adiciona um atributo a elemento SimpleXML

  • « SimpleXMLElement
  • SimpleXMLElement::addChild »
  • PHP Manual
  • SimpleXMLElement
  • Adiciona um atributo a elemento SimpleXML

SimpleXMLElement::addAttribute

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::addAttribute — Adiciona um atributo a elemento SimpleXML

Descrição

public SimpleXMLElement::addAttribute(string $qualifiedName, string $value, ?string $namespace = null): void

Adiciona um atributo à elemento SimpleXML

Parâmetros

qualifiedName

O nome do atributo a ser adicionado.

value

O valor do atributo.

namespace

Se especificado, diz a qual namespace o atributo pertence.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Nota:

Os exemplos listados podem incluir o arquivo example.php, que referem-se a uma string XML encontrada no primeiro exemplo do guia de uso básico.

Exemplo #1 Adiciona atributos e filhos à um elemento SimpleXML

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

O exemplo acima produzirá algo semelhante a:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: More Parser Stories</title>
  <plot>This is all about the people who make it work.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Veja Também

  • SimpleXMLElement::addChild() - Adiciona um elemento filho à um nó XML
  • Basic SimpleXML usage


Adiciona um elemento filho à um nó XML

  • « SimpleXMLElement::addAttribute
  • SimpleXMLElement::asXML »
  • PHP Manual
  • SimpleXMLElement
  • Adiciona um elemento filho à um nó XML

SimpleXMLElement::addChild

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::addChild — Adiciona um elemento filho à um nó XML

Descrição

public SimpleXMLElement::addChild(string $qualifiedName, ?string $value = null, ?string $namespace = null): ?SimpleXMLElement

Adiciona um elemento filho ao nó e retorna um elemento SimpleXML do nó filho.

Parâmetros

qualifiedName

O nome do elemento filho à ser adicionado.

value

Se especificado, o valor do elemento filho.

namespace

Se especificado, o namespace ao qual o elemento filho pertence.

Valor Retornado

O método addChild retorna um objeto SimpleXMLElement representando o filho adicionado ao nó XML em caso de sucesso; null em caso de falha.

Exemplos

Nota:

Os exemplos listados podem incluir o arquivo example.php, que referem-se a uma string XML encontrada no primeiro exemplo do guia de uso básico.

Exemplo #1 Adiciona atributos e filhos à um elemento SimpleXML

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

O exemplo acima produzirá algo semelhante a:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: More Parser Stories</title>
  <plot>This is all about the people who make it work.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Veja Também

  • SimpleXMLElement::addAttribute() - Adiciona um atributo a elemento SimpleXML
  • Basic SimpleXML usage


Retorna uma string XML bem formada (well-formed) baseada em um elemento SimpleXML

  • « SimpleXMLElement::addChild
  • SimpleXMLElement::attributes »
  • PHP Manual
  • SimpleXMLElement
  • Retorna uma string XML bem formada (well-formed) baseada em um elemento SimpleXML

SimpleXMLElement::asXML

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::asXML — Retorna uma string XML bem formada (well-formed) baseada em um elemento SimpleXML

Descrição

public SimpleXMLElement::asXML(?string $filename = null): string|bool

O método asXML formata os dados dos objetos pais em XML de versão 1.0.

Parâmetros

filename

Se um string for fornecido, a função grava os dados no arquivo em vez de retorná-lo.

Valor Retornado

Se o filename não for especificado, esta função retornará uma string no caso de sucesso, e false no caso de erro. Se o parâmetro for especificado, retornará true se o arquivo for escrito com sucesso, e false caso contrário.

Registro de Alterações

Versão | Descrição
8.0.0 | filename é anulável agora.

Exemplos

Exemplo #1 Recuperando o XML

<?php
$string = <<<XML
<a>
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;

$xml = new SimpleXMLElement($string);

echo $xml->asXML(); // <?xml ... <a><b><c>text</c><c>stuff</c> ...

?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>

O método asXML também funcionará em resultados Xpath:

Exemplo #2 Utilizando asXML() em resultados SimpleXMLElement::xpath()

<?php
// Continued from example XML above.

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

foreach ($result as $node) {
echo $node->asXML(); // <c>text</c> and <c>stuff</c>
}
?>

O exemplo acima produzirá:

<c>text</c><c>stuff</c>

Veja Também

  • SimpleXMLElement::__toString() - Retorna o conteúdo como uma string
  • Basic SimpleXML usage


Identifica um atributo de um elemento

  • « SimpleXMLElement::asXML
  • SimpleXMLElement::children »
  • PHP Manual
  • SimpleXMLElement
  • Identifica um atributo de um elemento

SimpleXMLElement::attributes

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::attributes — Identifica um atributo de um elemento

Descrição

public SimpleXMLElement::attributes(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement

Esta função provê os atributos e valores definidos dentro de uma tag XML.

Nota: Na SimpleXML tornou-se comum adicionar propriedades iterativas à maioria dos métodos. Elas não podem ser visualizadas usando var_dump() ou qualquer outra coisa que possa examinar objetos.

Parâmetros

namespaceOrPrefix

Um namespace opcional para os atributos retornados

isPrefix

false por padrão

Valor Retornado

Retorna um objeto SimpleXMLElement que pode iterar os atributos da tag.

Retornará null se chamado em um objeto SimpleXMLElement que já represente um atributo e não uma tag.

Exemplos

Exemplo #1 Interpretando uma string XML

<?php
$string = <<<XML
<a xmlns:b>
<foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
echo $a,'="',$b,"\"\n";
}
?>

O exemplo acima produzirá:

name="one"
game="lonely"

Veja Também

  • Basic SimpleXML usage


Encontra os nós filhos de um dado nó

  • « SimpleXMLElement::attributes
  • SimpleXMLElement::__construct »
  • PHP Manual
  • SimpleXMLElement
  • Encontra os nós filhos de um dado nó

SimpleXMLElement::children

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::children — Encontra os nós filhos de um dado nó

Descrição

public SimpleXMLElement::children(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement

Este método encontra os nós filhos que estão dentro de um dado membro. O resultado segue as regras normais de iteração.

Nota: Na SimpleXML tornou-se comum adicionar propriedades iterativas à maioria dos métodos. Elas não podem ser visualizadas usando var_dump() ou qualquer outra coisa que possa examinar objetos.

Parâmetros

namespaceOrPrefix

Um namespace XML.

isPrefix

Se o parâmetro isPrefix for definido como true, namespaceOrPrefix será considerado um prefixo. Se definido como false, namespaceOrPrefix será considerado uma URL de um namespace.

Valor Retornado

Retorna um elemento SimpleXMLElement, não importando se o nó tem filhos ou não, a menos que o nó represente um atributo, caso em que null é retornado.

Exemplos

Exemplo #1 Percorrendo um pseudo-array children()

<?php
$xml = new SimpleXMLElement(
'<person>
<child role="son">
<child role="daughter"/>
</child>
<child role="daughter">
<child role="son">
<child role="son"/>
</child>
</child>
</person>');

foreach ($xml->children() as $second_gen) {
echo ' The person begot a ' . $second_gen['role'];

foreach ($second_gen->children() as $third_gen) {
echo ' who begot a ' . $third_gen['role'] . ';';

foreach ($third_gen->children() as $fourth_gen) {
echo ' and that ' . $third_gen['role'] .
' begot a ' . $fourth_gen['role'];
}
}
}
?>

O exemplo acima produzirá:

The person begot a son who begot a daughter; The person
begot a daughter who begot a son; and that son begot a son

Exemplo #2 Utilizando namespaces

<?php
$xml = '<example xmlns:foo="my.foo.urn">
<foo:a>Apple</foo:a>
<foo:b>Banana</foo:b>
<c>Cherry</c>
</example>';

$sxe = new SimpleXMLElement($xml);

$kids = $sxe->children('foo');
var_dump(count($kids));

$kids = $sxe->children('foo', TRUE);
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn');
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn', TRUE);
var_dump(count($kids));

$kids = $sxe->children();
var_dump(count($kids));
?>
int(0)
int(2)
int(2)
int(0)
int(1)

Veja Também

  • SimpleXMLElement::count() - Conta os filhos de um elemento
  • count() - Conta todos os elementos de um array ou de um objeto Countable


Cria um novo objeto SimpleXMLElement

  • « SimpleXMLElement::children
  • SimpleXMLElement::count »
  • PHP Manual
  • SimpleXMLElement
  • Cria um novo objeto SimpleXMLElement

SimpleXMLElement::__construct

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::__construct — Cria um novo objeto SimpleXMLElement

Descrição

public SimpleXMLElement::__construct(
string $data,
int $options = 0,
bool $dataIsURL = false,
string $namespaceOrPrefix = "",
bool $isPrefix = false
)

Cria um novo objeto SimpleXMLElement.

Parâmetros

data

Uma string XML bem formada ou, um caminho ou URL para um documento XML se dataIsURL for true.

options

Opcionalmente utilizado para especificar parâmetros adicionais da Libxml, que afetam a leitura de documentos XML. Opções que afetam a saída de documentos XML (por exemplo, LIBXML_NOEMPTYTAG) é ignorada silenciosamente.

Nota:

Pode ser necessário passar LIBXML_PARSEHUGE para poder processar XML profundamente aninhados ou nós de texto muito grandes.

dataIsURL

Por padrão, dataIsURL é false. Utilize true para especificar que o parâmetro data é um caminho ou URL para um documento XML ao invés de string.

namespaceOrPrefix

Prefixo ou URI do namespace.

isPrefix

true se namespaceOrPrefix é um prefixo, false se é uma URI; o padrão será false.

Erros/Exceções

Produz uma mensagem de erro E_WARNING para cada erro encontrado nos dados do XML e, adicionalmente, dispara uma Exception se as informações no XML não puderem ser interpretadas.

Dica

Utilize a função libxml_use_internal_errors() para suprimir todos os erros XML, e a função libxml_get_errors() para iterá-los, depois.

Exemplos

Nota:

Os exemplos listados podem incluir o arquivo example.php, que referem-se a uma string XML encontrada no primeiro exemplo do guia de uso básico.

Exemplo #1 Cria um objeto SimpleXMLElement

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
echo $sxe->movie[0]->title;

?>

O exemplo acima produzirá:

PHP: Behind the Parser

Exemplo #2 Cria um objeto SimpleXMLElement de uma URL

<?php

$sxe = new SimpleXMLElement('http://example.org/document.xml', 0, true);
echo $sxe->asXML();

?>

Veja Também

  • Basic SimpleXML usage
  • simplexml_load_string() - Interpreta uma string XML e a transforma em um objeto
  • simplexml_load_file() - Interpreta um arquivo XML e o transforma em um objeto
  • Dealing with XML errors
  • libxml_use_internal_errors() - Desabilita erros da libxml e permite que o usuário obtenha informações de erro conforme necessário
  • libxml_set_streams_context() - Define o contexto de fluxos para o próximo carregamento ou escrita de documento libxml


Conta os filhos de um elemento

  • « SimpleXMLElement::__construct
  • SimpleXMLElement::current »
  • PHP Manual
  • SimpleXMLElement
  • Conta os filhos de um elemento

SimpleXMLElement::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::count — Conta os filhos de um elemento

Descrição

public SimpleXMLElement::count(): int

Este método conta o número de filhos de um elemento.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o número de elementos de um elemento.

Exemplos

Exemplo #1 Contando o número de filhos

<?php
$xml = <<<EOF
<people>
<person name="Person 1">
<child/>
<child/>
<child/>
</person>
<person name="Person 2">
<child/>
<child/>
<child/>
<child/>
<child/>
</person>
</people>
EOF;

$elem = new SimpleXMLElement($xml);

foreach ($elem as $person) {
printf("%s has got %d children.\n", $person['name'], $person->count());
}
?>

O exemplo acima produzirá:

Person 1 has got 3 children.
Person 2 has got 5 children.

Veja Também

  • SimpleXMLElement::children() - Encontra os nós filhos de um dado nó


Returns the current element

  • « SimpleXMLElement::count
  • SimpleXMLElement::getDocNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Returns the current element

SimpleXMLElement::current

(Não há informação de versão disponível, talvez apenas no Git)

SimpleXMLElement::current — Returns the current element

Descrição

public SimpleXMLElement::current(): SimpleXMLElement
Aviso

Prior to PHP 8.0, SimpleXMLElement::current() was only declared on the subclass SimpleXMLIterator.

This method returns the current element as a SimpleXMLElement object.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the current element as a SimpleXMLElement object.

Erros/Exceções

Throws an Error on failure.

Registro de Alterações

Versão | Descrição
8.1.0 | An Error is now thrown if SimpleXMLElement::current() is called on an invalid iterator. Previously, null was returned.

Exemplos

Exemplo #1 Return the current element

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP basics</book><book>XML basics</book></books>');

$xmlElement->rewind(); // rewind to first element, otherwise current() won't work
var_dump($xmlElement->current());
?>

O exemplo acima produzirá:

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "PHP basics"
}

Veja Também

  • SimpleXMLElement::key() - Return current key
  • SimpleXMLElement::next() - Move to next element
  • SimpleXMLElement::rewind() - Rewind to the first element
  • SimpleXMLElement::valid() - Check whether the current element is valid
  • SimpleXMLElement


Retorna um namespace declarado no documento

  • « SimpleXMLElement::current
  • SimpleXMLElement::getName »
  • PHP Manual
  • SimpleXMLElement
  • Retorna um namespace declarado no documento

SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SimpleXMLElement::getDocNamespaces — Retorna um namespace declarado no documento

Descrição

public SimpleXMLElement::getDocNamespaces(bool $recursive = false, bool $fromRoot = true): array|false

Retorna um namespace declarado no documento

Parâmetros

recursive

Se especificado, retorna todos os namespaces declarados no nó pai e nos nós filhos. De outra forma, retornará apenas os namespaces declarados no nó raiz.

fromRoot

Permite checar recursivamente os namespaces sob um nó filho em vez do nó raiz do documento XML.

Valor Retornado

O método getDocNamespaces retorna uma array com os namespaces associados às suas URIs.

Exemplos

Exemplo #1 Pega os namespaces do documento

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns">
<p:person id="1">John Doe</p:person>
<p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces();
var_dump($namespaces);

?>

O exemplo acima produzirá:

array(1) {
   ["p"]=>
   string(21) "http://example.org/ns"
}

Exemplo #2 Trabalhando com múltiplos namespaces

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
<p:person t:id="1">John Doe</p:person>
<p:person t:id="2" a:addr="123 Street" xmlns:a="http://example.org/addr">
Susie Q. Public
</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);

?>

O exemplo acima produzirá:

array(3) {
  ["p"]=>
  string(21) "http://example.org/ns"
  ["t"]=>
  string(23) "http://example.org/test"
  ["a"]=>
  string(23) "http://example.org/addr"
}

Veja Também

  • SimpleXMLElement::getNamespaces() - Retorna os namespaces utilizados no documento
  • SimpleXMLElement::registerXPathNamespace() - Cria um prefixo/namespace de contexto para a próxima consulta XPath


Pega o nome de um elemento XML

  • « SimpleXMLElement::getDocNamespaces
  • SimpleXMLElement::getNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Pega o nome de um elemento XML

SimpleXMLElement::getName

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::getName — Pega o nome de um elemento XML

Descrição

public SimpleXMLElement::getName(): string

Pega o nome do elemento XML.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

O método getName retorna uma string com o nome da tag XML referenciada pelo objeto SimpleXMLElement.

Exemplos

Nota:

Os exemplos listados podem incluir o arquivo example.php, que referem-se a uma string XML encontrada no primeiro exemplo do guia de uso básico.

Exemplo #1 Pega os nomes dos elementos XML

<?php
include 'example.php';
$sxe = new SimpleXMLElement($xmlstr);

echo $sxe->getName() . "\n";

foreach ($sxe->children() as $child)
{
echo $child->getName() . "\n";
}

?>

O exemplo acima produzirá:

movies
movie


Retorna os namespaces utilizados no documento

  • « SimpleXMLElement::getName
  • SimpleXMLElement::getChildren »
  • PHP Manual
  • SimpleXMLElement
  • Retorna os namespaces utilizados no documento

SimpleXMLElement::getNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SimpleXMLElement::getNamespaces — Retorna os namespaces utilizados no documento

Descrição

public SimpleXMLElement::getNamespaces(bool $recursive = false): array

Retorna os namespaces utilizados no documento

Parâmetros

recursive

Se especificado, retorna todos os namespaces utilizados no nó pai e nos nós filhos. Caso contrário, retorna apenas os namespaces utilizados no nó raíz (root node).

Valor Retornado

O método getNamespaces retorna uma array de namespace com suas respectivas URIs.

Exemplos

Exemplo #1 Get document namespaces in use

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
<p:person id="1">John Doe</p:person>
<p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getNamespaces(true);
var_dump($namespaces);

?>

O exemplo acima produzirá:

array(1) {
  ["p"]=>
  string(21) "http://example.org/ns"
}

Veja Também

  • SimpleXMLElement::getDocNamespaces() - Retorna um namespace declarado no documento
  • SimpleXMLElement::registerXPathNamespace() - Cria um prefixo/namespace de contexto para a próxima consulta XPath


Returns the sub-elements of the current element

  • « SimpleXMLElement::getNamespaces
  • SimpleXMLElement::hasChildren »
  • PHP Manual
  • SimpleXMLElement
  • Returns the sub-elements of the current element

SimpleXMLElement::getChildren

(Não há informação de versão disponível, talvez apenas no Git)

SimpleXMLElement::getChildren — Returns the sub-elements of the current element

Descrição

public SimpleXMLElement::getChildren(): ?SimpleXMLElement
Aviso

Prior to PHP 8.0, SimpleXMLElement::getChildren() was only declared on the subclass SimpleXMLIterator.

This method returns a SimpleXMLElement object containing sub-elements of the current SimpleXMLElement element.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns a SimpleXMLElement object containing the sub-elements of the current element.

Exemplos

Exemplo #1 Return the sub-elements of the current element

<?php
$xml = <<<XML
<books>
<book>
<title>PHP Basics</title>
<author>Jim Smith</author>
</book>
<book>XML basics</book>
</books>
XML;

$xmlElement = new SimpleXMLElement($xml);
for ($xmlElement->rewind(); $xmlElement->valid(); $xmlElement->next()) {
foreach($xmlElement->getChildren() as $name => $data) {
echo "The $name is '$data' from the class " . get_class($data) . "\n";
}
}
?>

O exemplo acima produzirá:

The title is 'PHP Basics' from the class SimpleXMLElement
The author is 'Jim Smith' from the class SimpleXMLElement


Checks whether the current element has sub elements

  • « SimpleXMLElement::getChildren
  • SimpleXMLElement::key »
  • PHP Manual
  • SimpleXMLElement
  • Checks whether the current element has sub elements

SimpleXMLElement::hasChildren

(Não há informação de versão disponível, talvez apenas no Git)

SimpleXMLElement::hasChildren — Checks whether the current element has sub elements

Descrição

public SimpleXMLElement::hasChildren(): bool
Aviso

Prior to PHP 8.0, SimpleXMLElement::hasChildren() was only declared on the subclass SimpleXMLIterator.

This method checks whether the current SimpleXMLElement element has sub-elements.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

true if the current element has sub-elements, otherwise false

Exemplos

Exemplo #1 Check whether the current element has sub-elements

<?php
$xml = <<<XML
<books>
<book>
<title>PHP Basics</title>
<author>Jim Smith</author>
</book>
<book>XML basics</book>
</books>
XML;

$xmlElement = new SimpleXMLElement($xml);
for ($xmlElement->rewind(); $xmlElement->valid(); $xmlElement->next()) {
if ($xmlElement->hasChildren()) {
var_dump($xmlElement->current());
}
}
?>

O exemplo acima produzirá:

object(SimpleXMLElement)#2 (2) {
  ["title"]=>
  string(10) "PHP Basics"
  ["author"]=>
  string(9) "Jim Smith"
}


Return current key

  • « SimpleXMLElement::hasChildren
  • SimpleXMLElement::next »
  • PHP Manual
  • SimpleXMLElement
  • Return current key

SimpleXMLElement::key

(Não há informação de versão disponível, talvez apenas no Git)

SimpleXMLElement::key — Return current key

Descrição

public SimpleXMLElement::key(): string
Aviso

Prior to PHP 8.0, SimpleXMLElement::key() was only declared on the subclass SimpleXMLIterator.

This method gets the XML tag name of the current element.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the XML tag name of the element referenced by the current SimpleXMLElement object.

Erros/Exceções

Throws an Error on failure.

Registro de Alterações

Versão | Descrição
8.1.0 | An Error is now thrown if SimpleXMLElement::key() is called on an invalid iterator. Previously, false was returned.

Exemplos

Exemplo #1 Get the current XML tag key

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP basics</book><book>XML basics</book></books>');

echo var_dump($xmlElement->key());
$xmlElement->rewind(); // rewind to the first element
echo var_dump($xmlElement->key());

?>

O exemplo acima produzirá:

bool(false)
string(4) "book"


Move to next element

  • « SimpleXMLElement::key
  • SimpleXMLElement::registerXPathNamespace »
  • PHP Manual
  • SimpleXMLElement
  • Move to next element

SimpleXMLElement::next

(Não há informação de versão disponível, talvez apenas no Git)

SimpleXMLElement::next — Move to next element

Descrição

public SimpleXMLElement::next(): void
Aviso

Prior to PHP 8.0, SimpleXMLElement::next() was only declared on the subclass SimpleXMLIterator.

This method moves the SimpleXMLElement to the next element.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Move to the next element

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP Basics</book><book>XML basics</book></books>');
$xmlElement->rewind(); // rewind to the first element
$xmlElement->next();

var_dump($xmlElement->current());
?>

O exemplo acima produzirá:

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "XML basics"
}


Cria um prefixo/namespace de contexto para a próxima consulta XPath

  • « SimpleXMLElement::next
  • SimpleXMLElement::rewind »
  • PHP Manual
  • SimpleXMLElement
  • Cria um prefixo/namespace de contexto para a próxima consulta XPath

SimpleXMLElement::registerXPathNamespace

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SimpleXMLElement::registerXPathNamespace — Cria um prefixo/namespace de contexto para a próxima consulta XPath

Descrição

public SimpleXMLElement::registerXPathNamespace(string $prefix, string $namespace): bool

Cria um prefixo/namespace de contexto para a próxima consulta XPath. Basicamente, esta função será útil se o provedor do documento XML informado, altera os prefixos dos namespaces. registerXPathNamespace criará um prefixo para o namespace associado, permitindo o acesso a nós no namespace sem a necessidade de mudar o código para permitir novos prefixos ditados pelo provedor.

Parâmetros

prefix

O prefixo do namespace utilizado na consulta XPath para o namespace dado em namespace.

namespace

O namespace para ser utilizado na consulta XPath. Este parâmetro deve fechar com um namespace utilizado pelo documento XML ou a consulta XPath utilizando prefix não retornará nenhum resultado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Definindo um prefixo de namespace para ser usado em uma consulta XPath

<?php

$xml = <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
<title>My Book</title>
<chapter id="1">
<chap:title>Chapter 1</chap:title>
<para>Donec velit. Nullam eget tellus vitae tortor gravida scelerisque.
In orci lorem, cursus imperdiet, ultricies non, hendrerit et, orci.
Nulla facilisi. Nullam velit nisl, laoreet id, condimentum ut,
ultricies id, mauris.</para>
</chapter>
<chapter id="2">
<chap:title>Chapter 2</chap:title>
<para>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin
gravida. Phasellus tincidunt massa vel urna. Proin adipiscing quam
vitae odio. Sed dictum. Ut tincidunt lorem ac lorem. Duis eros
tellus, pharetra id, faucibus eu, dapibus dictum, odio.</para>
</chapter>
</book>
EOD;

$sxe = new SimpleXMLElement($xml);

$sxe->registerXPathNamespace('c', 'http://example.org/chapter-title');
$result = $sxe->xpath('//c:title');

foreach ($result as $title) {
echo $title . "\n";
}

?>

O exemplo acima produzirá:

Chapter 1
Chapter 2

Perceba como como o documento XML mostrado no exemplo define o namespace com o prefixo de chap. Imagine que este documento (ou outro semelhante) deveria ter utilizado o prefixo de c no passado para o mesmo namespace. Uma vez que ele foi alterado, a consulta XPath não irá mais retornar os resultados apropriados e a consulta exigirá modificações. Utilizando registerXPathNamespace evita modificações futuras na consulta, mesmo que o provedor altere o prefixo dos namespaces.

Veja Também

  • SimpleXMLElement::xpath() - Executa uma consulta XPath em dados XML
  • SimpleXMLElement::getDocNamespaces() - Retorna um namespace declarado no documento
  • SimpleXMLElement::getNamespaces() - Retorna os namespaces utilizados no documento


Rewind to the first element

  • « SimpleXMLElement::registerXPathNamespace
  • SimpleXMLElement::saveXML »
  • PHP Manual
  • SimpleXMLElement
  • Rewind to the first element

SimpleXMLElement::rewind

(Não há informação de versão disponível, talvez apenas no Git)

SimpleXMLElement::rewind — Rewind to the first element

Descrição

public SimpleXMLElement::rewind(): void
Aviso

Prior to PHP 8.0, SimpleXMLElement::rewind() was only declared on the subclass SimpleXMLIterator.

This method rewinds the SimpleXMLElement to the first element.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Rewind to the first element

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP Basics</book><book>XML Basics</book></books>');
$xmlElement->rewind();

var_dump($xmlElement->current());
?>

O exemplo acima produzirá:

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "PHP Basics"
}


Sinônimo de SimpleXMLElement::asXML

  • « SimpleXMLElement::rewind
  • SimpleXMLElement::__toString »
  • PHP Manual
  • SimpleXMLElement
  • Sinônimo de SimpleXMLElement::asXML

SimpleXMLElement::saveXML

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

SimpleXMLElement::saveXML — Sinônimo de SimpleXMLElement::asXML()

Descrição

Este método é um apelido para: SimpleXMLElement::asXML()


Retorna o conteúdo como uma string

  • « SimpleXMLElement::saveXML
  • SimpleXMLElement::valid »
  • PHP Manual
  • SimpleXMLElement
  • Retorna o conteúdo como uma string

SimpleXMLElement::__toString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::__toString — Retorna o conteúdo como uma string

Descrição

public SimpleXMLElement::__toString(): string

Retorna o texto que está contido diretamente no elemento. Não retorna o texto que está dentro de elementos filhos.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna o conteúdo como uma string em caso de sucesso ou uma string varia, se falhar.

Exemplos

Exemplo #1 Recuperando o conteúdo como uma string

<?php
$xml = new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo $xml;
?>

O exemplo acima produzirá:

1 3

Veja Também

  • SimpleXMLElement::asXML() - Retorna uma string XML bem formada (well-formed) baseada em um elemento SimpleXML


Check whether the current element is valid

  • « SimpleXMLElement::__toString
  • SimpleXMLElement::xpath »
  • PHP Manual
  • SimpleXMLElement
  • Check whether the current element is valid

SimpleXMLElement::valid

(Não há informação de versão disponível, talvez apenas no Git)

SimpleXMLElement::valid — Check whether the current element is valid

Descrição

public SimpleXMLElement::valid(): bool
Aviso

Prior to PHP 8.0, SimpleXMLElement::valid() was only declared on the subclass SimpleXMLIterator.

This method checks if the current element is valid after calls to SimpleXMLElement::rewind() or SimpleXMLElement::next().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if the current element is valid, otherwise false

Exemplos

Exemplo #1 Check whether the current element is valid

<?php
$xmlElement = new SimpleXMLElement('<books><book>SQL Basics</book></books>');

$xmlElement->rewind(); // rewind to the first element
echo var_dump($xmlElement->valid()); // bool(true)

$xmlElement->next(); // advance to the next element
echo var_dump($xmlElement->valid()); // bool(false) because there is only one element
?>


Executa uma consulta XPath em dados XML

  • « SimpleXMLElement::valid
  • SimpleXMLIterator »
  • PHP Manual
  • SimpleXMLElement
  • Executa uma consulta XPath em dados XML

SimpleXMLElement::xpath

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::xpath — Executa uma consulta XPath em dados XML

Descrição

public SimpleXMLElement::xpath(string $expression): array|null|false

O método xpath vasculha o nó SimpleXML em busca de nós filhos correspondentes ao XPath expression.

Parâmetros

expression

Um caminho XPath

Valor Retornado

Retorna uma array de um objeto SimpleXMLElement em caso de sucesso; ou null ou false em caso de erro.

Exemplos

Exemplo #1 Xpath

<?php
$string = <<<XML
<a>
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;

$xml = new SimpleXMLElement($string);

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

foreach ($result as $node) {
echo '/a/b/c: ',$node,"\n";
}

/* Relative paths also work... */
$result = $xml->xpath('b/c');

foreach ($result as $node) {
echo 'b/c: ',$node,"\n";
}
?>

O exemplo acima produzirá:

/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff

Note que os dois resultados são iguais.

Veja Também

  • SimpleXMLElement::registerXPathNamespace() - Cria um prefixo/namespace de contexto para a próxima consulta XPath
  • SimpleXMLElement::getDocNamespaces() - Retorna um namespace declarado no documento
  • SimpleXMLElement::getNamespaces() - Retorna os namespaces utilizados no documento
  • Basic SimpleXML usage


A classe SimpleXMLIterator

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

Introdução

A classe SimpleXMLIterator provê iterações recursivas em todos os nós de um objeto SimpleXMLElement.

Resumo da classe

class SimpleXMLIterator extends SimpleXMLElement {
/* Métodos herdados */
public SimpleXMLElement::__construct(
string $data,
int $options = 0,
bool $dataIsURL = false,
string $namespaceOrPrefix = "",
bool $isPrefix = false
)
public SimpleXMLElement::addAttribute(string $qualifiedName, string $value, ?string $namespace = null): void
public SimpleXMLElement::addChild(string $qualifiedName, ?string $value = null, ?string $namespace = null): ?SimpleXMLElement
public SimpleXMLElement::asXML(?string $filename = null): string|bool
public SimpleXMLElement::attributes(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public SimpleXMLElement::children(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public SimpleXMLElement::count(): int
public SimpleXMLElement::current(): SimpleXMLElement
public SimpleXMLElement::getDocNamespaces(bool $recursive = false, bool $fromRoot = true): array|false
public SimpleXMLElement::getName(): string
public SimpleXMLElement::getNamespaces(bool $recursive = false): array
public SimpleXMLElement::getChildren(): ?SimpleXMLElement
public SimpleXMLElement::hasChildren(): bool
public SimpleXMLElement::key(): string
public SimpleXMLElement::next(): void
public SimpleXMLElement::registerXPathNamespace(string $prefix, string $namespace): bool
public SimpleXMLElement::rewind(): void
public SimpleXMLElement::__toString(): string
public SimpleXMLElement::valid(): bool
public SimpleXMLElement::xpath(string $expression): array|null|false
}

Registro de Alterações

Versão | Descrição
8.0.0 | Métodos iteradores (SimpleXMLIterator::hasChildren(), SimpleXMLIterator::getChildren(), SimpleXMLIterator::current(), SimpleXMLIterator::key(), SimpleXMLIterator::next(),SimpleXMLIterator::rewind(), SimpleXMLIterator::valid()) foram movidos para SimpleXMLElement.
8.0.0 | SimpleXMLIterator implementa Stringable agora.


Funções da SimpleXML

Índice

  • simplexml_import_dom — Recebe um objeto SimpleXMLElement de um nó DOM
  • simplexml_load_file — Interpreta um arquivo XML e o transforma em um objeto
  • simplexml_load_string — Interpreta uma string XML e a transforma em um objeto


Recebe um objeto SimpleXMLElement de um nó DOM

  • « Funções da SimpleXML
  • simplexml_load_file »
  • PHP Manual
  • Funções da SimpleXML
  • Recebe um objeto SimpleXMLElement de um nó DOM

simplexml_import_dom

(PHP 5, PHP 7, PHP 8)

simplexml_import_dom — Recebe um objeto SimpleXMLElement de um nó DOM

Descrição

simplexml_import_dom(object $node, ?string $class_name = SimpleXMLElement::class): ?SimpleXMLElement

Esta função recebe um nó de um documento DOM e o transforma em um nó SimpleXML. O novo objeto pode ser utilizado como um elemento SimpleXML nativo.

Parâmetros

node

Um nó DOM

class_name

Pode-se utilizar o parâmetro opcional simplexml_import_dom() para retornar um objeto da classe especificada. A classe deve estender a classe SimpleXMLElement.

Valor Retornado

Retorna um SimpleXMLElement ou null em caso de falha.

Exemplos

Exemplo #1 Importando o DOM

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
echo 'Error while parsing the document';
exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

O exemplo acima produzirá:

blah

Veja Também

  • dom_import_simplexml() - Obtém um objeto DOMElement a partir de um objeto SimpleXMLElement
  • Basic SimpleXML usage


Interpreta um arquivo XML e o transforma em um objeto

  • « simplexml_import_dom
  • simplexml_load_string »
  • PHP Manual
  • Funções da SimpleXML
  • Interpreta um arquivo XML e o transforma em um objeto

simplexml_load_file

(PHP 5, PHP 7, PHP 8)

simplexml_load_file — Interpreta um arquivo XML e o transforma em um objeto

Descrição

simplexml_load_file(
string $filename,
?string $class_name = SimpleXMLElement::class,
int $options = 0,
string $namespace_or_prefix = "",
bool $is_prefix = false
): SimpleXMLElement|false

Converte o documento XML bem-formado no arquivo indicado em um objeto.

Parâmetros

filename

Caminho para o arquivo XML

class_name

É possível utilizar o parâmetro opcional simplexml_load_file() para retornar um objeto da classe especificada. Esta classe deve estender SimpleXMLElement.

options

Bit a bit OR das constantes de opções da libxml.

namespace_or_prefix

Prefixo ou URI do namespace.

is_prefix

true se namespace_or_prefix for um prefixo, false se for URI; o padrão é false.

Valor Retornado

Retorna um objeto da classe SimpleXMLElement com propriedades contendo os dados do documento XML, ou false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Erros/Exceções

Produz uma mensagem de erro E_WARNING para cada erro encontrado nos dados XML.

Dica

Utilize a função libxml_use_internal_errors() para suprimir todos os erros XML e a função libxml_get_errors() para iterar sobre eles posteriormente.

Exemplos

Exemplo #1 Interpreta um documento XML

<?php
// O arquivo test.xml contém um documento XML com um elemento root
// e ao menos um elemento /[root]/title.

if (file_exists('test.xml')) {
$xml = simplexml_load_file('test.xml');

print_r($xml);
} else {
exit('Falha ao abrir test.xml.');
}
?>

Este script mostrará, em caso de sucesso:

SimpleXMLElement Object
(
  [title] => Example Title
  ...
)

Nesse ponto já é possível utilizar $xml->title e quaisquer outros elementos.

Veja Também

  • simplexml_load_string() - Interpreta uma string XML e a transforma em um objeto
  • SimpleXMLElement::__construct() - Cria um novo objeto SimpleXMLElement
  • Dealing with XML errors
  • libxml_use_internal_errors() - Desabilita erros da libxml e permite que o usuário obtenha informações de erro conforme necessário
  • Basic SimpleXML usage
  • libxml_set_streams_context() - Define o contexto de fluxos para o próximo carregamento ou escrita de documento libxml


Interpreta uma string XML e a transforma em um objeto

  • « simplexml_load_file
  • WDDX »
  • PHP Manual
  • Funções da SimpleXML
  • Interpreta uma string XML e a transforma em um objeto

simplexml_load_string

(PHP 5, PHP 7, PHP 8)

simplexml_load_string — Interpreta uma string XML e a transforma em um objeto

Descrição

simplexml_load_string(
string $data,
?string $class_name = SimpleXMLElement::class,
int $options = 0,
string $namespace_or_prefix = "",
bool $is_prefix = false
): SimpleXMLElement|false

Recebe uma string XML bem-formada e a retorna como um objeto.

Parâmetros

data

Uma string XML bem-formada

class_name

Pode-se utilizar o parâmetro opcional simplexml_load_string() para retornar um objeto da classe especificada. Esta classe deve estender SimpleXMLElement.

options

Bit a bit OR das constantes de opções da libxml.

namespace_or_prefix

Prefixo ou URI do namespace.

is_prefix

true se namespace_or_prefix for um prefixo, false se for URI; o padrão é false.

Valor Retornado

Retorna um objeto da classe SimpleXMLElement com propriedades contendo os dados do documento XML, ou false em caso de falha.

Aviso

Esta função pode retornar o valor booleano false, mas também pode retornar um valor não booleano que pode ser avaliado como false. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

Erros/Exceções

Produz uma mensagem de erro E_WARNING para cada erro encontrado nos dados XML.

Dica

Utilize a função libxml_use_internal_errors() para suprimir todos os erros XML e a função libxml_get_errors() para iterar sobre eles posteriormente.

Exemplos

Exemplo #1 Interpretar uma string XML

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
<title>Forty What?</title>
<from>Joe</from>
<to>Jane</to>
<body>
I know that's the answer -- but what's the question?
</body>
</document>
XML;

$xml = simplexml_load_string($string);

print_r($xml);
?>

O exemplo acima produzirá:

SimpleXMLElement Object
(
  [title] => Forty What?
  [from] => Joe
  [to] => Jane
  [body] =>
   I know that's the answer -- but what's the question?
)

Nesse ponto já é possível utilizar $xml->body e afins.

Veja Também

  • simplexml_load_file() - Interpreta um arquivo XML e o transforma em um objeto
  • SimpleXMLElement::__construct() - Cria um novo objeto SimpleXMLElement
  • Dealing with XML errors
  • libxml_use_internal_errors() - Desabilita erros da libxml e permite que o usuário obtenha informações de erro conforme necessário
  • Basic SimpleXML usage


WDDX

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Exemplos de wddx
  • Funções da WDDX
    • wddx_add_vars — Add variables to a WDDX packet with the specified ID
    • wddx_deserialize — Desserializa um pacote WDDX
    • wddx_packet_end — Finaliza um pacote WDDX com o ID especificado
    • wddx_packet_start — Inicializa um novo pacote WDDX com uma estrutura dentro dele
    • wddx_serialize_value — Serializa um único valor em um pacote WDDX
    • wddx_serialize_vars — Serializa variáveis em um pacote WDDX


Introdução

Aviso

Esta extensão está DEFASADA e DESAGREGADA a partir do PHP 7.4.0.

Essas funções tem o intuito de funcionar com » WDDX.

Aviso

Não passe entrada não confiável do usuário para a função wddx_deserialize(). Desserialização pode resultar em código sendo carregado e executado devido à instanciação de objetos e auto-carregamento, um usuário malicioso pode ser capaz de explorar isto. Use um formato de intercâmbio de dados padrão e seguro como JSON (via json_decode() e json_encode()) se for necessário passar dados serializados ao usuário.


Dependências

Esta extensão requer a extensão PHP libxml. Isso significa que ao compilar o PHP é preciso passar a flag de configuração --with-libxml, ou antes do PHP 7.4, --enable-libxml, embora isso seja feito implicitamente pois a libxml está habilitada por padrão.

Para usar WDDX, você precisará instalar a biblioteca expat (que vem com o Apache 1.3.7 ou superior).


Instalação

PHP 7.4

Esta extensão foi movida para o repositório » PECL e não é mais distribuída com o PHP desde a versão 7.4.0

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/wddx.

PHP < 7.4

Depois de instalar a bilioteca expat requerida, compile o PHP com a opção --enable-wddx, e use --with-libexpat-dir para a expat.

A versão do PHP para Windows tem suporte nativo para esta extensão. Nenhuma extensão adicional precisa ser carregada para usar essas funções.


  • « Configurações em Execução
  • Constantes pré-definidas »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Essa extensão define um identificador de pacote WDDX retornado por wddx_packet_start().


  • « Tipos de Recurso
  • Exemplos »
  • PHP Manual
  • WDDX
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


  • « Constantes pré-definidas
  • Exemplos de wddx »
  • PHP Manual
  • WDDX
  • Exemplos

Exemplos

Índice

  • Exemplos de wddx


Exemplos de wddx

Todas as funções que serializam variáveis usam o primeiro elemento de um array para determinar se o array deve ser serializado em um array ou estrutura. Se o primeiro elemento tem uma chave string, então ele é serializado em uma estrutura, caso contrário, em um array.

Exemplo #1 Serializando um único valor com WDDX

<?php
echo wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

Este exemplo irá produzir:

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Exemplo #2 Usando pacotes incrementais com WDDX

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Suppose $cities came from database */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
echo $packet;
?>

Este exemplo irá produzir:

<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='cities'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Nota:

Strings devem ser codificadas em UTF-8; para lidar com outras codificações, converta a string primeiramente usando mb_convert_encoding(), você tem que primeiro UConverter::transcode() ou iconv().


Funções da WDDX

Índice

  • wddx_add_vars — Add variables to a WDDX packet with the specified ID
  • wddx_deserialize — Desserializa um pacote WDDX
  • wddx_packet_end — Finaliza um pacote WDDX com o ID especificado
  • wddx_packet_start — Inicializa um novo pacote WDDX com uma estrutura dentro dele
  • wddx_serialize_value — Serializa um único valor em um pacote WDDX
  • wddx_serialize_vars — Serializa variáveis em um pacote WDDX


Add variables to a WDDX packet with the specified ID

  • « Funções da WDDX
  • wddx_deserialize »
  • PHP Manual
  • Funções da WDDX
  • Add variables to a WDDX packet with the specified ID

wddx_add_vars

(PHP 4, PHP 5, PHP 7)

wddx_add_vars — Add variables to a WDDX packet with the specified ID

Aviso

Esta função foi REMOVIDA a partir do PHP 7.4.0.

Descrição

wddx_add_vars(resource $packet_id, mixed $var_name, mixed ...$var_names): bool

Serializes the passed variables and add the result to the given packet.

Parâmetros

This function takes a variable number of parameters.

packet_id

A WDDX packet, returned by wddx_packet_start().

var_name

Can be either a string naming a variable or an array containing strings naming the variables or another array, etc.

var_names

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Desserializa um pacote WDDX

  • « wddx_add_vars
  • wddx_packet_end »
  • PHP Manual
  • Funções da WDDX
  • Desserializa um pacote WDDX

wddx_deserialize

(PHP 4, PHP 5, PHP 7)

wddx_deserialize — Desserializa um pacote WDDX

Aviso

Esta função foi REMOVIDA a partir do PHP 7.4.0.

Descrição

wddx_deserialize(string $packet): mixed

Desserializa um packet WDDX.

Aviso

Não passe informações de usuários não confiáveis para wddx_deserialize(). A desserialização pode resultar no carregamento e execução do código devido à instanciação e carregamento automático do objeto, e um usuário mal-intencionado pode explorar isso. Use um formato de intercâmbio de dados padrão e seguro, como JSON (através de json_decode() e json_encode()) se você precisar passar dados serializados para o usuário.

Parâmetros

packet

Um pacote WDDX, como uma string ou stream.

Valor Retornado

Retorna o valor desserializado que pode ser uma string, um número ou um array. Observe que as estruturas são desserializadas em arrays associativos.


Finaliza um pacote WDDX com o ID especificado

  • « wddx_deserialize
  • wddx_packet_start »
  • PHP Manual
  • Funções da WDDX
  • Finaliza um pacote WDDX com o ID especificado

wddx_packet_end

(PHP 4, PHP 5, PHP 7)

wddx_packet_end — Finaliza um pacote WDDX com o ID especificado

Aviso

Esta função foi REMOVIDA a partir do PHP 7.4.0.

Descrição

wddx_packet_end(resource $packet_id): string

Finaliza e retorna um pacote WDDX escolhido.

Parâmetros

packet_id

Um pacote WDDX, retornado por wddx_packet_start().

Valor Retornado

Retorna a string com o pacote WDDX.


Inicializa um novo pacote WDDX com uma estrutura dentro dele

  • « wddx_packet_end
  • wddx_serialize_value »
  • PHP Manual
  • Funções da WDDX
  • Inicializa um novo pacote WDDX com uma estrutura dentro dele

wddx_packet_start

(PHP 4, PHP 5, PHP 7)

wddx_packet_start — Inicializa um novo pacote WDDX com uma estrutura dentro dele

Aviso

Esta função foi REMOVIDA a partir do PHP 7.4.0.

Descrição

wddx_packet_start(string $comment = ?): resource

Inicializa um novo pacote WDDX para adição incremental de variáveis. A função cria automaticamente uma definição de estrutura dentro do pacote para armazenar as variáveis.

Parâmetros

comment

Uma string opcional contendo comentários.

Valor Retornado

Retorna o ID do pacote para ser usado em outras funções ou false em caso de erro.


Serializa um único valor em um pacote WDDX

  • « wddx_packet_start
  • wddx_serialize_vars »
  • PHP Manual
  • Funções da WDDX
  • Serializa um único valor em um pacote WDDX

wddx_serialize_value

(PHP 4, PHP 5, PHP 7)

wddx_serialize_value — Serializa um único valor em um pacote WDDX

Aviso

Esta função foi REMOVIDA a partir do PHP 7.4.0.

Descrição

wddx_serialize_value(mixed $var, string $comment = ?): string

Cria um pacote WDDX a partir de uma única variável.

Parâmetros

var

Variável a ser serializada

comment

Um comentário (opcional) que aparece no cabeçalho do pacote.

Valor Retornado

Retorna o pacote WDDX ou false em caso de erro.


Serializa variáveis em um pacote WDDX

  • « wddx_serialize_value
  • XMLDiff »
  • PHP Manual
  • Funções da WDDX
  • Serializa variáveis em um pacote WDDX

wddx_serialize_vars

(PHP 4, PHP 5, PHP 7)

wddx_serialize_vars — Serializa variáveis em um pacote WDDX

Aviso

Esta função foi REMOVIDA a partir do PHP 7.4.0.

Descrição

wddx_serialize_vars(mixed $var_name, mixed ...$var_names): string

Cria um pacote WDDX com um estrutura que contém a representação serializada das variáveis passadas.

Parâmetros

Essa função recebe um número variável de argumentos.

var_name

Pode ser ou uma string com o nome de uma variável ou um array contendo strings com o nome de variáveis ou outro array, recursivamente.

var_names

Valor Retornado

Retorna o pacote WDDX ou false em caso de erro.

Exemplos

Exemplo #1 Exemplo de uso de wddx_serialize_vars()

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
echo wddx_serialize_vars("a", "b", $clvars);
?>

O exemplo acima produzirá:

<wddxPacket version='1.0'><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>blue</string><string>orange</string><string>violet</string></array></var>
<var name='d'><string>colors</string></var></struct></data></wddxPacket>


XML diff and merge

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
  • XMLDiff\Base — The XMLDiff\Base class
    • XMLDiff\Base::__construct — Constructor
    • XMLDiff\Base::diff — Produce diff of two XML documents
    • XMLDiff\Base::merge — Produce new XML document based on diff
  • XMLDiff\DOM — The XMLDiff\DOM class
    • XMLDiff\DOM::diff — Diff two DOMDocument objects
    • XMLDiff\DOM::merge — Produce merged DOMDocument
  • XMLDiff\Memory — The XMLDiff\Memory class
    • XMLDiff\Memory::diff — Diff two XML documents
    • XMLDiff\Memory::merge — Produce merged XML document
  • XMLDiff\File — The XMLDiff\File class
    • XMLDiff\File::diff — Diff two XML files
    • XMLDiff\File::merge — Produce merged XML document


Introdução

The extension is able to produce diffs of two XML documents and then to apply the difference to the source document. The diff is a XML document containing copy/insert/delete instruction nodes in human readable format. DOMDocument objects, local files and strings in memory can be processed.


  • « Introdução
  • Dependências »
  • PHP Manual
  • XMLDiff
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação


Dependências

libdiffmark - version 0.10 is bundled with the extension. If diffmark is available from your system packages, its usage is strongly encouraged.

libxml extension

DOM extension


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/xmldiff.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/xmldiff/.


The XMLDiff\Base class

(PECL xmldiff >= 0.8.0)

Introdução

Base abstract class for all the comparsion classes in the extension.

Resumo da classe

class XMLDiff\Base {
/* Métodos */
public __construct(string $nsname)
abstract public diff(mixed $from, mixed $to): mixed
abstract public merge(mixed $src, mixed $diff): mixed
}

Índice

  • XMLDiff\Base::__construct — Constructor
  • XMLDiff\Base::diff — Produce diff of two XML documents
  • XMLDiff\Base::merge — Produce new XML document based on diff


Constructor

  • « XMLDiff\Base
  • XMLDiff\Base::diff »
  • PHP Manual
  • XMLDiff\Base
  • Constructor

XMLDiff\Base::__construct

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::__construct — Constructor

Descrição

public XMLDiff\Base::__construct(string $nsname)

Base constructor for all the worker classes in the xmldiff extension.

Parâmetros

nsname

Custom namespace name for the diff document. The default namespace is http://www.locus.cz/diffmark and that's enough to avoid namespace conflicts. Use this parameter if you want to change it for some reason.


Produce diff of two XML documents

  • « XMLDiff\Base::__construct
  • XMLDiff\Base::merge »
  • PHP Manual
  • XMLDiff\Base
  • Produce diff of two XML documents

XMLDiff\Base::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::diff — Produce diff of two XML documents

Descrição

abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed

Abstract diff method to be implemented by inheriting classes.

The basic purpose of this method is to produce diff of the two documents. The param order matters and will produce different output.

Parâmetros

from

Source XML document.

to

Target XML document.

Valor Retornado

Implementation dependent.


Produce new XML document based on diff

  • « XMLDiff\Base::diff
  • XMLDiff\DOM »
  • PHP Manual
  • XMLDiff\Base
  • Produce new XML document based on diff

XMLDiff\Base::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::merge — Produce new XML document based on diff

Descrição

abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed

Abstract merge method to be implemented by inheriting classes.

Basically the method purpose is to produce a new XML document based on the diff information.

Parâmetros

src

Source XML document.

diff

Document produced by the diff method.

Valor Retornado

Implementation dependent.


The XMLDiff\DOM class

(PECL xmldiff >= 0.8.0)

Introdução

Resumo da classe

class XMLDiff\DOM extends XMLDiff\Base {
/* Métodos */
public diff(DOMDocument $from, DOMDocument $to): DOMDocument
public merge(DOMDocument $src, DOMDocument $diff): DOMDocument
/* Métodos herdados */
abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed
abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed
}

Índice

  • XMLDiff\DOM::diff — Diff two DOMDocument objects
  • XMLDiff\DOM::merge — Produce merged DOMDocument


Diff two DOMDocument objects

  • « XMLDiff\DOM
  • XMLDiff\DOM::merge »
  • PHP Manual
  • XMLDiff\DOM
  • Diff two DOMDocument objects

XMLDiff\DOM::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\DOM::diff — Diff two DOMDocument objects

Descrição

public XMLDiff\DOM::diff(DOMDocument $from, DOMDocument $to): DOMDocument

Diff two DOMDocument instances and produce the new one containing the diff information.

Parâmetros

from

Source DOMDocument object.

to

Target DOMDocument object.

Valor Retornado

DOMDocument with the diff information or NULL.


Produce merged DOMDocument

  • « XMLDiff\DOM::diff
  • XMLDiff\Memory »
  • PHP Manual
  • XMLDiff\DOM
  • Produce merged DOMDocument

XMLDiff\DOM::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\DOM::merge — Produce merged DOMDocument

Descrição

public XMLDiff\DOM::merge(DOMDocument $src, DOMDocument $diff): DOMDocument

Create new DOMDocument based on the diff.

Parâmetros

src

Source DOMDocument object.

diff

DOMDocument object containing the diff information.

Valor Retornado

Merged DOMDocument or NULL.


The XMLDiff\Memory class

(PECL xmldiff >= 0.8.0)

Introdução

Resumo da classe

class XMLDiff\Memory extends XMLDiff\Base {
/* Métodos */
public diff(string $from, string $to): string
public merge(string $src, string $diff): string
/* Métodos herdados */
abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed
abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed
}

Índice

  • XMLDiff\Memory::diff — Diff two XML documents
  • XMLDiff\Memory::merge — Produce merged XML document


Diff two XML documents

  • « XMLDiff\Memory
  • XMLDiff\Memory::merge »
  • PHP Manual
  • XMLDiff\Memory
  • Diff two XML documents

XMLDiff\Memory::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::diff — Diff two XML documents

Descrição

public XMLDiff\Memory::diff(string $from, string $to): string

Diff two strings containing XML documents and produce the diff information.

Parâmetros

from

Source XML document.

to

Target XML document.

Valor Retornado

String with the XML document containing the diff information or NULL.


Produce merged XML document

  • « XMLDiff\Memory::diff
  • XMLDiff\File »
  • PHP Manual
  • XMLDiff\Memory
  • Produce merged XML document

XMLDiff\Memory::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::merge — Produce merged XML document

Descrição

public XMLDiff\Memory::merge(string $src, string $diff): string

Create new XML document based on diffs and source document.

Parâmetros

src

Source XML document.

diff

XML document containing diff information.

Valor Retornado

String with the new XML document or NULL.


The XMLDiff\File class

(PECL xmldiff >= 0.8.0)

Introdução

Resumo da classe

class XMLDiff\File extends XMLDiff\Base {
/* Métodos */
public diff(string $from, string $to): string
public merge(string $src, string $diff): string
/* Métodos herdados */
abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed
abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed
}

Índice

  • XMLDiff\File::diff — Diff two XML files
  • XMLDiff\File::merge — Produce merged XML document


Diff two XML files

  • « XMLDiff\File
  • XMLDiff\File::merge »
  • PHP Manual
  • XMLDiff\File
  • Diff two XML files

XMLDiff\File::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\File::diff — Diff two XML files

Descrição

public XMLDiff\File::diff(string $from, string $to): string

Diff two local XML files and produce string with the diff information.

Parâmetros

from

Path to the source document.

to

Path to the target document.

Valor Retornado

String with the XML document containing the diff information or NULL.


Produce merged XML document

  • « XMLDiff\File::diff
  • Analisador de XML »
  • PHP Manual
  • XMLDiff\File
  • Produce merged XML document

XMLDiff\File::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\File::merge — Produce merged XML document

Descrição

public XMLDiff\File::merge(string $src, string $diff): string

Create new XML document based on diffs and source document.

Parâmetros

src

Path to the source XML document.

diff

Path to the XML document with the diff information.

Valor Retornado

String with the new XML document or NULL.


Analisador de XML

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Manipuladores de Evento
  • Transformação em Maiúsculas
  • Códigos de Erro
  • Codificação de caracteres
  • Exemplos
    • Exemplo de Estrutura de Elemento XML
    • Exemplo de Mapeamento de Tags XML
    • Exemplo de Entidade Externa XML
  • Funções para analisar XML
    • xml_error_string — Obtém uma string de erro do analisador XML
    • xml_get_current_byte_index — Get current byte index for an XML parser
    • xml_get_current_column_number — Get current column number for an XML parser
    • xml_get_current_line_number — Get current line number for an XML parser
    • xml_get_error_code — Obtém um código de erro do analisador XML
    • xml_parse_into_struct — Analisa dados XML dentro de uma estrutura de array
    • xml_parse — Start parsing an XML document
    • xml_parser_create_ns — Cria um analisador XML com suporte a espaço de nomes
    • xml_parser_create — Cria um analisador XML
    • xml_parser_free — Libera um analisador XML
    • xml_parser_get_option — Obtém as opções de um analisador XML
    • xml_parser_set_option — Define opções em um analisador XML
    • xml_set_character_data_handler — Set up character data handler
    • xml_set_default_handler — Set up default handler
    • xml_set_element_handler — Set up start and end element handlers
    • xml_set_end_namespace_decl_handler — Set up end namespace declaration handler
    • xml_set_external_entity_ref_handler — Set up external entity reference handler
    • xml_set_notation_decl_handler — Set up notation declaration handler
    • xml_set_object — Use XML Parser within an object
    • xml_set_processing_instruction_handler — Set up processing instruction (PI) handler
    • xml_set_start_namespace_decl_handler — Set up start namespace declaration handler
    • xml_set_unparsed_entity_decl_handler — Set up unparsed entity declaration handler
  • XMLParser — A classe XMLParser


Introdução

XML (eXtensible Markup Language) é um formato de dados para intercâmbio de documentos estruturado na Web. É um padrão definido pela The World Wide Web Consortium (W3C). Informações sobre XML e tecnologias relacionadas podem ser encontradas em » http://www.w3.org/XML/.

Esta extensão do PHP implementa suporte para o expat de James Clark no PHP. Este conjunto de ferramentas permite analisar, porém não validar, documentos XML. Suporta três codificações de caracteres para also fontes, também fornecidas pelo PHP: US-ASCII, ISO-8859-1 e UTF-8. UTF-16 não é suportado.

Esta extensão permite criar analisadores XML e então definir manipuladores para diferentes eventos XML. Cada analisador XML também tem alguns parâmetros que podem ser ajustados.


Dependências

Esta extensão requer a extensão PHP libxml. Isso significa que ao compilar o PHP é preciso passar a flag de configuração --with-libxml, ou antes do PHP 7.4, --enable-libxml, embora isso seja feito implicitamente pois a libxml está habilitada por padrão.

Esta extensão utiliza uma camada de compatibilidade expat por padrão. Também pode usar expat, que pode ser encontrado em » https://libexpat.github.io/. O Makefile que vem com o expat não constrói uma biblioteca por padrão, você pode usar esta regra de make para isso:

libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
Um pacote RPM de código-fonte do expat pode ser encontrado em » https://sourceforge.net/projects/expat/.


Instalação

Esta extensão está habilitada por padrão. Ela pode ser desabilitada usando a seguinte opção em tempo de compilação: --disable-xml

Estas funções estão habilitadas por padrão, usando a biblioteca expat fornecida. Pode-se desabilitar o suporte a XML com a opção --disable-xml. Se o PHP foi compilado como módulo para o Apache 1.3.9 ou posterior, o PHP automaticamente utilizará a biblioteca expat fornecida pelo Apache. Se não for desejado usar a bilbioteca expat fornecida, configure o PHP com a opção --with-expat-dir=DIR, onde DIR aponta para o diretório base de instalação do expat.

A versão do PHP para Windows tem suporte nativo para esta extensão. Nenhuma extensão adicional precisa ser carregada para usar essas funções.


Tipos de Recurso

Antes do PHP 8.0.0, o recurso xml retornado por xml_parser_create() e xml_parser_create_ns() referenciava uma instância de analisador XML a ser usada com as funções fornecidas por esta extensão.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

XML_ERROR_NONE (int)
XML_ERROR_NO_MEMORY (int)
XML_ERROR_SYNTAX (int)
XML_ERROR_NO_ELEMENTS (int)
XML_ERROR_INVALID_TOKEN (int)
XML_ERROR_UNCLOSED_TOKEN (int)
XML_ERROR_PARTIAL_CHAR (int)
XML_ERROR_TAG_MISMATCH (int)
XML_ERROR_DUPLICATE_ATTRIBUTE (int)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (int)
XML_ERROR_PARAM_ENTITY_REF (int)
XML_ERROR_UNDEFINED_ENTITY (int)
XML_ERROR_RECURSIVE_ENTITY_REF (int)
XML_ERROR_ASYNC_ENTITY (int)
XML_ERROR_BAD_CHAR_REF (int)
XML_ERROR_BINARY_ENTITY_REF (int)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (int)
XML_ERROR_MISPLACED_XML_PI (int)
XML_ERROR_UNKNOWN_ENCODING (int)
XML_ERROR_INCORRECT_ENCODING (int)
XML_ERROR_UNCLOSED_CDATA_SECTION (int)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (int)
XML_OPTION_CASE_FOLDING (int)
XML_OPTION_TARGET_ENCODING (int)
XML_OPTION_SKIP_TAGSTART (int)
XML_OPTION_SKIP_WHITE (int)
XML_SAX_IMPL (string)
Mantém o método de implementação SAX. Pode ser libxml ou expat.


Manipuladores de Evento

Os manipuladores de eventos de XML definidos são:

Manipuladores XML Suportados
Função do PHP pra definir manipulador | Descrição do evento
xml_set_element_handler() | Eventos de elementos são emitidos toda vez que o analisador XML encontrar o início ou o fim de etiquetas. Há manipuladores separados para etiquetas de início e etiquetas de fim.
xml_set_character_data_handler() | Dados de caracteres são de maneira geral todo o conteúdo de documentos XML que não seja marcação de etiquetas, incluindo espaços em branco entre as etiquetas. Note que o analisador XML não adiciona ou remove qualquer espaço em branco, é função da aplicação decidir se os espaços em branco são significativos.
xml_set_processing_instruction_handler() | Programadores de PHP devem estar familiarizados com instruções de processamento (PIs). <?php ?> é uma instrução de processamento, onde php é chamado de "alvo PI". O tratamento destes são específicos por aplicação, exceto que todos os alvos PI iniciados por "XML" são reservados.
xml_set_default_handler() | O que não vai para algum outro manipulador vai para o manipulador padrão. Pode-se obter informações como declarações XML e de tipos de documentos no manipulador padrão.
xml_set_unparsed_entity_decl_handler() | Este manipulador será chamado para declaração de uma entidade não analisada (NDATA).
xml_set_notation_decl_handler() | Este manipulador é chamado para declaração de uma notação.
xml_set_external_entity_ref_handler() | Este manipulador é chamado quando o analisador XML encontra uma referência a uma entidade geral analisada externamente. Isto pode ser uma referência para um arquivo ou URL, por examplo. Consulte o exemplo de entidade externa para uma demonstração.
xml_set_start_namespace_decl_handler() | Este manipulador é chamado para o início de uma declaração de espaço de nomes.
xml_set_end_namespace_decl_handler() | Este manipulador é chamado para o final de uma declaração de espaço de nomes. Note que este evento não é disparado pela biblioteca libXML.


Transformação em Maiúsculas

As funções manipuladoras de elementos podem ter seus nomes de elemento transformados em maiúsculas. O termo case-folded, do inglês, é definido como "um processo aplicado a uma sequência de caracteres, no qual aqueles identificados como não sendo letras maiúsculas são substituídos por seus equivalentes em maiúsculas". Em outras palavras, quando se trata de XML, case-folded simplesmente significa transformar em maiúsculas.

Por padrão, todos os nomes de elementos que são passados para as funções manipuladoras são transformados em maiúsculas. Este comportamento pode ser consultado e controlado por interpretador XML com as funções xml_parser_get_option() e xml_parser_set_option(), respectivamente.


Códigos de Erro

As seguintes constantes são definidas para erros no código XML (conforme retornado por 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


Codificação de caracteres

A Extensão XML do PHP suporta o conjunto de caracteres » Unicode definido por diferentes codificações de caracteres diferentes. Há dois tipos de codificação de caracteres, codificação da fonte e codificação do destino. A apresentação interna do PHP do documento é sempre codificada com UTF-8.

Codificação na fonte é feita quando um documento XML é analisado. Ao criar um analisador XML, uma codificação na fonte pode ser especificada (esta codificação não poderá ser alterada mais tarde durante a atividade do analisador XML). As codificações na fonte suportadas são ISO-8859-1, US-ASCII e UTF-8. As duas primeiras são codificações de um byte, o que significa que cada caractere é representado por um único byte. UTF-8 pode codificar caracteres compostos por um número variável de bits (até 21) em um a quatro bytes. A codificação na fonte padrão usada pelo PHP é ISO-8859-1.

Codificação no destino é feita quando o PHP passa dados para as funções do analisador XML. Quando um analisador XML é criado, a codificação no destino é definido como a mesma da fonte, mas isto pode ser alterado a qualquer momento. A codificação no destino afetará dados de caracteres e também nomes de etiquetas e alvos de instrução de processamento.

Se o analisador XML encontrar caracteres de fora da faixa na qual sua codificação na fonte seja capaz de representar, ele retornará um erro.

Se o PHP encontrar caracteres no documento XML analisado que não possam ser representados na codificação de destino escolhida, os caracteres com problema serão "rebaixados". Atualmente, isto significa que tais caracteres serão substituídos por um sinal de interrogação.


Exemplos

Índice

  • Exemplo de Estrutura de Elemento XML
  • Exemplo de Mapeamento de Tags XML
  • Exemplo de Entidade Externa XML


Exemplo de Estrutura de Elemento XML

Este primeiro exemplo exibe a estrutura dos elementos de início em um documento com indentação.

Exemplo #1 Mostrar Estrutura de Elemento XML

<?php
$file = "data.xml";
$depth = 0;

function startElement($parser, $name, $attrs)
{
global $depth;

for ($i = 0; $i < $depth; $i++) {
echo " ";
}
echo "$name\n";
$depth++;
}

function endElement($parser, $name)
{
global $depth;
$depth--;
}

$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);
?>


Exemplo de Mapeamento de Tags XML

Exemplo #1 Mapear XML para HTML

Este exemplo mapeia tags em um documento XML diretamente para tags HTML. Elementos não encontrados na "matriz de mapeamento" são ignorados. Obviamente, este exemplo funcionará apenas com um tipo específico de documento XML.

<?php
$file = "data.xml";
$map_array = array(
"BOLD" => "B",
"EMPHASIS" => "I",
"LITERAL" => "TT"
);

function startElement($parser, $name, $attrs)
{
global $map_array;
if (isset($map_array[$name])) {
echo "<$map_array[$name]>";
}
}

function endElement($parser, $name)
{
global $map_array;
if (isset($map_array[$name])) {
echo "</$map_array[$name]>";
}
}

function characterData($parser, $data)
{
echo $data;
}

$xml_parser = xml_parser_create();
// use dobramento de caso para termos certeza de encontrar a tag em $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("não foi possível abrir a entrada XML");
}

while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("Erro XML: %s na linha %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
?>


Exemplo de Entidade Externa XML

Este exemplo destaca código XML. Ilustra como usar um manipulador de referência de entidade externa para incluir e analisar outros documentos, bem como como PIs podem ser processados, e uma maneira de determinar "confiança" para PIs contendo código.

Documentos XML que podem ser usados para este exemplo são encontrados abaixo do exemplo (xmltest.xml e xmltest2.xml).

Exemplo #1 Exemplo de Entidade Externa

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
// confie apenas em arquivos locais de nossa propriedade
if (!preg_match("@^([a-z][a-z0-9+.-]*)\:\/\/@i", $file)
&& fileowner($file) == getmyuid()) {
return true;
}
return false;
}

function startElement($parser, $name, $attribs)
{
echo "&lt;<font color=\"#0000cc\">$name</font>";
if (count($attribs)) {
foreach ($attribs as $k => $v) {
echo " <font color=\"#009900\">$k</font>=\"<font
color=\"#990000\">$v</font>\"";
}
}
echo "&gt;";
}

function endElement($parser, $name)
{
echo "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data)
{
echo "<b>$data</b>";
}

function PIHandler($parser, $target, $data)
{
switch (strtolower($target)) {
case "php":
global $parser_file;
// Se o documento analisado for "confiável", dizemos que é seguro
// para executar o código PHP dentro dele. Caso contrário, exiba o código
// em vez disso.
if (trustedFile($parser_file[$parser])) {
eval($data);
} else {
printf("Código PHP não confiável: <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("Não foi possível abrir a entidade %s em %s\n", $openEntityNames,
$systemId);
return false;
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($parser, $data, feof($fp))) {
printf("Erro XML: %s na linha %d ao analisar a entidade %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("não foi possível abrir a entrada XML");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("Erro XML: %s na linha %d\n",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
echo "</pre>";
echo "análise concluída\n";
xml_parser_free($xml_parser);

?>

Exemplo #2 xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Título &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;
 <section id="about">
  <title>Sobre este documento</title>
  <para>
   <!-- isto é um comentário -->
   <?php echo 'Oi! Esta é a versão PHP' . phpversion(); ?>
  </para>
 </section>
</chapter>

Este arquivo é incluído de xmltest.xml:

Exemplo #3 xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "Este é mais um código PHP sendo executado."; ?>
</foo>


Funções para analisar XML

Índice

  • xml_error_string — Obtém uma string de erro do analisador XML
  • xml_get_current_byte_index — Get current byte index for an XML parser
  • xml_get_current_column_number — Get current column number for an XML parser
  • xml_get_current_line_number — Get current line number for an XML parser
  • xml_get_error_code — Obtém um código de erro do analisador XML
  • xml_parse_into_struct — Analisa dados XML dentro de uma estrutura de array
  • xml_parse — Start parsing an XML document
  • xml_parser_create_ns — Cria um analisador XML com suporte a espaço de nomes
  • xml_parser_create — Cria um analisador XML
  • xml_parser_free — Libera um analisador XML
  • xml_parser_get_option — Obtém as opções de um analisador XML
  • xml_parser_set_option — Define opções em um analisador XML
  • xml_set_character_data_handler — Set up character data handler
  • xml_set_default_handler — Set up default handler
  • xml_set_element_handler — Set up start and end element handlers
  • xml_set_end_namespace_decl_handler — Set up end namespace declaration handler
  • xml_set_external_entity_ref_handler — Set up external entity reference handler
  • xml_set_notation_decl_handler — Set up notation declaration handler
  • xml_set_object — Use XML Parser within an object
  • xml_set_processing_instruction_handler — Set up processing instruction (PI) handler
  • xml_set_start_namespace_decl_handler — Set up start namespace declaration handler
  • xml_set_unparsed_entity_decl_handler — Set up unparsed entity declaration handler


Obtém uma string de erro do analisador XML

  • « Funções para analisar XML
  • xml_get_current_byte_index »
  • PHP Manual
  • Funções para analisar XML
  • Obtém uma string de erro do analisador XML

xml_error_string

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_error_string — Obtém uma string de erro do analisador XML

Descrição

xml_error_string(int $error_code): ?string

Obtém a string do erro do analisador XML associada com o código de erro fornecido em error_code.

Parâmetros

error_code

Um código de erro de xml_get_error_code().

Valor Retornado

Retorna uma string com uma descrição textual do código de erro error_code, ou null se nenhuma descrição for encontrada.

Veja Também

  • xml_get_error_code() - Obtém um código de erro do analisador XML


Get current byte index for an XML parser

  • « xml_error_string
  • xml_get_current_column_number »
  • PHP Manual
  • Funções para analisar XML
  • Get current byte index for an XML parser

xml_get_current_byte_index

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_current_byte_index — Get current byte index for an XML parser

Descrição

xml_get_current_byte_index(XMLParser $parser): int

Gets the current byte index of the given XML parser.

Parâmetros

parser

A reference to the XML parser to get byte index from.

Valor Retornado

Returns which byte index the parser is currently at in its data buffer (starting at 0).

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.

Notas

Aviso

This function returns byte index according to UTF-8 encoded text disregarding if input is in another encoding.

Veja Também

  • xml_get_current_column_number() - Get current column number for an XML parser
  • xml_get_current_line_number() - Get current line number for an XML parser


Get current column number for an XML parser

  • « xml_get_current_byte_index
  • xml_get_current_line_number »
  • PHP Manual
  • Funções para analisar XML
  • Get current column number for an XML parser

xml_get_current_column_number

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_current_column_number — Get current column number for an XML parser

Descrição

xml_get_current_column_number(XMLParser $parser): int

Gets the current column number of the given XML parser.

Parâmetros

parser

A reference to the XML parser to get column number from.

Valor Retornado

Returns which column on the current line (as given by xml_get_current_line_number()) the parser is currently at.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.

Veja Também

  • xml_get_current_byte_index() - Get current byte index for an XML parser
  • xml_get_current_line_number() - Get current line number for an XML parser


Get current line number for an XML parser

  • « xml_get_current_column_number
  • xml_get_error_code »
  • PHP Manual
  • Funções para analisar XML
  • Get current line number for an XML parser

xml_get_current_line_number

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_current_line_number — Get current line number for an XML parser

Descrição

xml_get_current_line_number(XMLParser $parser): int

Gets the current line number for the given XML parser.

Parâmetros

parser

A reference to the XML parser to get line number from.

Valor Retornado

Returns which line the parser is currently at in its data buffer.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.

Veja Também

  • xml_get_current_column_number() - Get current column number for an XML parser
  • xml_get_current_byte_index() - Get current byte index for an XML parser


Obtém um código de erro do analisador XML

  • « xml_get_current_line_number
  • xml_parse_into_struct »
  • PHP Manual
  • Funções para analisar XML
  • Obtém um código de erro do analisador XML

xml_get_error_code

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_error_code — Obtém um código de erro do analisador XML

Descrição

xml_get_error_code(XMLParser $parser): int

Obtém o código de erro do analisador XML.

Parâmetros

parser

Uma referência para o analisador XML obter código de erro.

Valor Retornado

Retorna um dos códigos de erro listados na seção de código de erros.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.

Veja Também

  • xml_error_string() - Obtém uma string de erro do analisador XML


Analisa dados XML dentro de uma estrutura de array

  • « xml_get_error_code
  • xml_parse »
  • PHP Manual
  • Funções para analisar XML
  • Analisa dados XML dentro de uma estrutura de array

xml_parse_into_struct

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parse_into_struct — Analisa dados XML dentro de uma estrutura de array

Descrição

xml_parse_into_struct(
XMLParser $parser,
string $data,
array &$values,
array &$index = null
): int

Esta função analisa uma string XML para 2 estruturas de array paralelas, uma (index) contendo indicadores para a localização dos valores apropriados no array identificado por values. Estes dois últimos parâmetros deve ser passados por referência.

Parâmetros

parser

Uma referência ao analisador XML.

data

Uma string contendo os dados XML.

values

Um array contendo os valores do dados XML

index

Um array contendo ponteiros para a localização dos valores apropriados em $values.

Valor Retornado

xml_parse_into_struct() retorna 0 para falha e 1 para sucesso. Isto não é o mesmo que false e true, deve-se ter cuidado ao usar operadores como ===.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.

Exemplos

Abaixo há um exemplo que ilustra a estrutura interna dos arrays sendo gerados pela função. Será usada uma simples etiqueta note embutida dentro da etiqueta para, e então será feita análise e depois mostradas as estruturas geredas:

Exemplo #1 Exemplo de xml_parse_into_struct()

<?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);
?>

Ao executar o código, a saída será:

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
        )

)

Análise guiada por eventos (baseada na biblioteca expat) pode se tornar complicada quando se tem um documento XML complexo. Esta função não produz um objeto no estilo DOM, mas gera estruturas passíveis de serem organizadas em forma de árvore. Assim, pode-se criar objetos representando os dados no arquivo XML facilmente. Considere o seguinte arquivo XML representando um pequeno banco de dados de informações de aminoácidos:

Exemplo #2 moldb.xml - pequeno banco de dados de informações moleculares

<?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>
E um pouco de código para analisar o documento e gerar os objetos apropriados:

Exemplo #3 parsemoldb.php - analisa moldb.xml e cria o array dos objetos moleculares

<?php

class AminoAcid {
var $name; // nome do aminoácido
var $symbol; // símbolo de 3 letras
var $code; // código de 1 letra
var $type; // hidrofóbico, carregado ou natural

function __construct ($aa)
{
foreach ($aa as $k=>$v)
$this->$k = $aa[$k];
}
}

function readDatabase($filename)
{
// lê o banco de dados XML de aminoácidos
$data = file_get_contents($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);

// faz um loop pelas estruturas
foreach ($tags as $key=>$val) {
if ($key == "molecule") {
$molranges = $val;
// cada par contíguo de entradas do array são os limites
// inferiores e superiores para cada definição de molécula
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 "** Banco de Dados de objetos de Aminoácidos:\n";
print_r($db);

?>
Depois de executar parsemoldb.php, a variável $db conterá um array dos objetos de AminoAcid, e a saída do script confirma isso:
** Banco de Dados de objetos de Aminoácidos:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)


Start parsing an XML document

  • « xml_parse_into_struct
  • xml_parser_create_ns »
  • PHP Manual
  • Funções para analisar XML
  • Start parsing an XML document

xml_parse

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parse — Start parsing an XML document

Descrição

xml_parse(XMLParser $parser, string $data, bool $is_final = false): int

xml_parse() parses an XML document. The handlers for the configured events are called as many times as necessary.

Parâmetros

parser

A reference to the XML parser to use.

data

Chunk of data to parse. A document may be parsed piece-wise by calling xml_parse() several times with new data, as long as the is_final parameter is set and true when the last data is parsed.

is_final

If set and true, data is the last piece of data sent in this parse.

Valor Retornado

Returns 1 on success or 0 on failure.

For unsuccessful parses, error information can be retrieved with
xml_get_error_code(),
xml_error_string(),
xml_get_current_line_number(),
xml_get_current_column_number() and
xml_get_current_byte_index().

Nota:

Some errors (such as entity errors) are reported at the end of the data, thus only if is_final is set and true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.

Exemplos

Exemplo #1 Chunked parsing of large XML documents

This example shows how large XML documents can be read and parsed in chunks, so that it not necessary to keep the whole document in memory. Error handling is omitted for brevity.

<?php
$stream = fopen('large.xml', 'r');
$parser = xml_parser_create();
// set up the handlers here
while (($data = fread($stream, 16384))) {
xml_parse($parser, $data); // parse the current chunk
}
xml_parse($parser, '', true); // finalize parsing
xml_parser_free($parser);
fclose($stream);


Cria um analisador XML com suporte a espaço de nomes

  • « xml_parse
  • xml_parser_create »
  • PHP Manual
  • Funções para analisar XML
  • Cria um analisador XML com suporte a espaço de nomes

xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_parser_create_ns — Cria um analisador XML com suporte a espaço de nomes

Descrição

xml_parser_create_ns(?string $encoding = null, string $separator = ":"): XMLParser

xml_parser_create_ns() cria um novo analisador XML com suporte a espaço de nomes do XML e retorna uma instância de XMLParser para ser usada pelas outras funções XML.

Parâmetros

encoding

A codificação de entrada é automaticamente detectada, de forma que o parâmetro encoding especifica somente a codificação de saída. O conjunto de caracteres de saída padrão é o UTF-8. As codificações suportadas são ISO-8859-1, UTF-8 e US-ASCII.

separator

Com um analisador ciente do espaço de nomes, os parâmetros de etiquetas passados às várias funções de manupulação consistirão do nome do espaço e do nome da etiqueta separados pela string especificada em separator.

Valor Retornado

Retorna uma nova instância de XMLParser.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função retorna uma instância de XMLParser agora; anteriormente, um recurso do tipo resource era retornado, ou false em caso de falha.
8.0.0 | encoding agora pode ser nulo.

Veja Também

  • xml_parser_create() - Cria um analisador XML
  • xml_parser_free() - Libera um analisador XML


Cria um analisador XML

  • « xml_parser_create_ns
  • xml_parser_free »
  • PHP Manual
  • Funções para analisar XML
  • Cria um analisador XML

xml_parser_create

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_create — Cria um analisador XML

Descrição

xml_parser_create(?string $encoding = null): XMLParser

xml_parser_create() cria um novo analisador XML e retorna uma instância de XMLParser para ser usada pelas outras funções XML.

Parâmetros

encoding

A codificação de entrada é detectada automaticamente, de forma que o parâmetro encoding especifica apenas a codificação de saída. Se uma string vazia for passada, o analisador tenta identificar qual a codificação do documento verificando 3 ou 4 bytes do cabeçalho. O conjunto de caracteres de saída padrão é o UTF-8. As codificações suportadas são ISO-8859-1, UTF-8 e US-ASCII.

Valor Retornado

Retorna uma nova instância de XMLParser.

Registro de Alterações

Versão | Descrição
8.0.0 | Esta função retorna uma instância de XMLParser agora; anteriormente, um recurso do tipo resource era retornado, ou false em caso de falha.
8.0.0 | encoding agora pode ser nulo.

Veja Também

  • xml_parser_create_ns() - Cria um analisador XML com suporte a espaço de nomes
  • xml_parser_free() - Libera um analisador XML


Libera um analisador XML

  • « xml_parser_create
  • xml_parser_get_option »
  • PHP Manual
  • Funções para analisar XML
  • Libera um analisador XML

xml_parser_free

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_free — Libera um analisador XML

Descrição

xml_parser_free(XMLParser $parser): bool

Nota:

Esta função não tem efeito. Antes do PHP 8.0.0, esta função era usada para fechar o recurso.

Libera o analisador XML informado em parser.

Cuidado

Além de chamar xml_parser_free() quando a análise está terminada, antes do PHP 8.0.0, era necessário também explicitamente remover a definição da referência ao analisador informado em parser para evitar vazamentos de memória, se o recurso do analisador fosse referenciado de um objeto, e este objeto referenciasse o recurso do analisador.

Parâmetros

parser
Uma referência para o analisador XML a ser liberado.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.


Obtém as opções de um analisador XML

  • « xml_parser_free
  • xml_parser_set_option »
  • PHP Manual
  • Funções para analisar XML
  • Obtém as opções de um analisador XML

xml_parser_get_option

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_get_option — Obtém as opções de um analisador XML

Descrição

xml_parser_get_option(XMLParser $parser, int $option): string|int|bool

Obtém um valor de opção de um analisador XML.

Parâmetros

parser
Uma referência para o analisador XML do qual a opção será obtida.
option
Qual opção buscar. XML_OPTION_CASE_FOLDING, XML_OPTION_SKIP_TAGSTART, XML_OPTION_SKIP_WHITE e XML_OPTION_TARGET_ENCODING estão disponíveis. Consulte xml_parser_set_option() para suas descrições.

Valor Retornado

Retorna o valor da opção.

Erros/Exceções

Lança uma exceção ValueError quando um valor inválido é passado em option.

Antes do PHP 8.0.0, passar um valor inválido em option gerava um erro de nível E_WARNING e também fazia a função retornar false.

Registro de Alterações

Versão | Descrição
8.3.0 | A função agora retorna um booleano para opções booleanas.
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.
8.0.0 | Uma exceção ValueError agora é lançada se option for inválido.
7.1.24, 7.2.12, 7.3.0 | options agora suporta XML_OPTION_SKIP_TAGSTART e XML_OPTION_SKIP_WHITE.


Define opções em um analisador XML

  • « xml_parser_get_option
  • xml_set_character_data_handler »
  • PHP Manual
  • Funções para analisar XML
  • Define opções em um analisador XML

xml_parser_set_option

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_set_option — Define opções em um analisador XML

Descrição

xml_parser_set_option(XMLParser $parser, int $option, string|int|bool $value): bool

Define uma opção em uma analisador XML.

Parâmetros

parser

Uma referência ao analisador XML ao qual se deseja definir uma opção.

option

Qual a opção a definir. Veja abaixo.

As opções a seguir estão disponíveis:

Opções do analisador XML
Constante da opção | Tipo de dados | Descrição
XML_OPTION_CASE_FOLDING | bool | Controla se case-folding está habilitado para este analisador XML. Ativado por padrão.
XML_OPTION_SKIP_TAGSTART | integer | Especifica quantos caracteres devem ser ignorados no início do nome de uma etiqueta.
XML_OPTION_SKIP_WHITE | bool | Controla se deve-se ignorar valores constituídos por espaços em branco.
XML_OPTION_TARGET_ENCODING | string | Define qual codificação de destino será usada neste analisador XML. Por pradrão, é definida com a mesma codificação usada por xml_parser_create(). Codificações de destino suportadas são ISO-8859-1, US-ASCII e UTF-8.

value

O novo valor da opção.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Lança uma exceção ValueError quando um valor inválido é passado em option.

Antes do PHP 8.0.0, passar um valor inválido em option gerava um erro de nível E_WARNING e também fazia a função retornar false.

Registro de Alterações

Versão | Descrição
8.3.0 | O parâmetro value agora aceita booleanos. As opções XML_OPTION_CASE_FOLDING e XML_OPTION_SKIP_WHITE são agora opções booleanas.
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.
8.0.0 | Uma exceção ValueError agora é lançada se option for inválido.


Set up character data handler

  • « xml_parser_set_option
  • xml_set_default_handler »
  • PHP Manual
  • Funções para analisar XML
  • Set up character data handler

xml_set_character_data_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_character_data_handler — Set up character data handler

Descrição

xml_set_character_data_handler(XMLParser $parser, callable $handler): true

Sets the character data handler function for the XML parser parser.

Parâmetros

parser

O analisador XML.

handler

Se null ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objet definido com xml_set_object().

The signature of the handler must be:

handler(XMLParser $parser, string $data): void
parser
O analisador XML que chama o manipulador.
data
Character data as a string.

Character data handler is called for every piece of a text in the XML document. It can be called multiple times inside each fragment (e.g. for non-ASCII strings).

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.


Set up default handler

  • « xml_set_character_data_handler
  • xml_set_element_handler »
  • PHP Manual
  • Funções para analisar XML
  • Set up default handler

xml_set_default_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_default_handler — Set up default handler

Descrição

xml_set_default_handler(XMLParser $parser, callable $handler): true

Sets the default handler function for the XML parser parser.

Parâmetros

parser

O analisador XML.

handler

Se null ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objet definido com xml_set_object().

The signature of the handler must be:

handler(XMLParser $parser, string $data): void
parser
O analisador XML que chama o manipulador.
data
data contains the character data. This may be the XML declaration, document type declaration, entities or other data for which no other handler exists.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.


Set up start and end element handlers

  • « xml_set_default_handler
  • xml_set_end_namespace_decl_handler »
  • PHP Manual
  • Funções para analisar XML
  • Set up start and end element handlers

xml_set_element_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_element_handler — Set up start and end element handlers

Descrição

xml_set_element_handler(XMLParser $parser, callable $start_handler, callable $end_handler): true

Sets the element handler functions for the XML parser.

start_handler is called when a new XML element is opened. end_handler is called when an XML element is closed.

Parâmetros

parser

O analisador XML.

start_handler

Se null ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objet definido com xml_set_object().

The signature of the handler must be:

start_element_handler(XMLParser $parser, string $name, array $attributes): void
parser
O analisador XML que chama o manipulador.
name
Contains the name of the element for which this handler is called. If case-folding is in effect for this parser, the element name will be in uppercase letters.
attributes
An associative array with the element's attributes. The array is empty if the element has no attributes. The keys of this array are the attribute names, the values are the attribute values. Attribute names are case-folded on the same criteria as element names. Attribute values are not case-folded. The order in which attributes is traversed is identical to the order in which the attributes were declared.

end_handler

Se null ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objet definido com xml_set_object().

The signature of the handler must be:

end_element_handler(XMLParser $parser, string $name): void
parser
O analisador XML que chama o manipulador.
name
Contains the name of the element for which this handler is called. If case-folding is in effect for this parser, the element name will be in uppercase letters.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.


Set up end namespace declaration handler

  • « xml_set_element_handler
  • xml_set_external_entity_ref_handler »
  • PHP Manual
  • Funções para analisar XML
  • Set up end namespace declaration handler

xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_set_end_namespace_decl_handler — Set up end namespace declaration handler

Descrição

xml_set_end_namespace_decl_handler(XMLParser $parser, callable $handler): true

Set a handler to be called when leaving the scope of a namespace declaration. This will be called, for each namespace declaration, after the handler for the end tag of the element in which the namespace was declared.

Cuidado

This event is not supported under libXML, so a registered handler wouldn't be called.

Parâmetros

parser

O analisador XML.

handler

Se null ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objet definido com xml_set_object().

The signature of the handler must be:

handler(XMLParser $parser, string|false $prefix)
parser
O analisador XML que chama o manipulador.
prefix
The prefix is a string used to reference the namespace within an XML object. false if no prefix exists.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.

Veja Também

  • xml_set_start_namespace_decl_handler() - Set up start namespace declaration handler


Set up external entity reference handler

  • « xml_set_end_namespace_decl_handler
  • xml_set_notation_decl_handler »
  • PHP Manual
  • Funções para analisar XML
  • Set up external entity reference handler

xml_set_external_entity_ref_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_external_entity_ref_handler — Set up external entity reference handler

Descrição

xml_set_external_entity_ref_handler(XMLParser $parser, callable $handler): true

Sets the external entity reference handler function for the XML parser parser.

Parâmetros

parser

O analisador XML.

handler

Se null ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objet definido com xml_set_object().

The signature of the handler must be:

handler(
XMLParser $parser,
string $open_entity_names,
string|false $base,
string $system_id,
string|false $public_id
): bool
parser
O analisador XML que chama o manipulador.
open_entity_names
A space-separated list of the names of the entities that are open for the parse of this entity (including the name of the referenced entity).
base
This is the base for resolving the system identifier (system_id) of the external entity.
system_id
The system identifier as specified in the entity declaration.
public_id
The public identifier as specified in the entity declaration, or an empty string if none was specified; the whitespace in the public identifier will have been normalized as required by the XML spec.

The handler should return true if the entity was handled, false otherwise. When returning false the XML parser will stop parsing and xml_get_error_code() will return XML_ERROR_EXTERNAL_ENTITY_HANDLING.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.
7.3.0 | The return value of the handler is no longer ignored if the extension has been built against libxml. Formerly, the return value has been ignored, and parsing did never stop.


Set up notation declaration handler

  • « xml_set_external_entity_ref_handler
  • xml_set_object »
  • PHP Manual
  • Funções para analisar XML
  • Set up notation declaration handler

xml_set_notation_decl_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_notation_decl_handler — Set up notation declaration handler

Descrição

xml_set_notation_decl_handler(XMLParser $parser, callable $handler): true

Sets the notation declaration handler function for the XML parser parser.

A notation declaration is part of the document's DTD and has the following format:

<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
See » section 4.7 of the XML 1.0 spec for the definition of notation declarations.

Parâmetros

parser

O analisador XML.

handler

Se null ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objet definido com xml_set_object().

The signature of the handler must be:

handler(
XMLParser $parser,
string $notation_name,
string|false $base,
string $system_id,
string|false $public_id
): void
parser
O analisador XML que chama o manipulador.
notation_name
This is the notation's name, as per the notation format described above.
base
This is the base for resolving the system identifier (system_id) of the notation declaration.
system_id
System identifier of the external notation declaration.
public_id
Public identifier of the external notation declaration.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.


Use XML Parser within an object

  • « xml_set_notation_decl_handler
  • xml_set_processing_instruction_handler »
  • PHP Manual
  • Funções para analisar XML
  • Use XML Parser within an object

xml_set_object

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_object — Use XML Parser within an object

Descrição

xml_set_object(XMLParser $parser, object $object): true

This function allows to use parser inside object. All callback functions could be set with xml_set_element_handler() etc and assumed to be methods of object.

Parâmetros

parser

A reference to the XML parser to use inside the object.

object

The object where to use the XML parser.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.

Exemplos

Exemplo #1 xml_set_object() example

<?php
class CustomXMLParser
{
private $parser;

function __construct()
{
$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($tag, $attributes);
}

function cdata($parser, $cdata)
{
var_dump($cdata);
}

function tag_close($parser, $tag)
{
var_dump($tag);
}
}

$xml_parser = new CustomXMLParser();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

O exemplo acima produzirá:

string(1) "A"
array(1) {
  ["ID"]=>
  string(5) "hallo"
}
string(3) "PHP"
string(1) "A"


Set up processing instruction (PI) handler

  • « xml_set_object
  • xml_set_start_namespace_decl_handler »
  • PHP Manual
  • Funções para analisar XML
  • Set up processing instruction (PI) handler

xml_set_processing_instruction_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_processing_instruction_handler — Set up processing instruction (PI) handler

Descrição

xml_set_processing_instruction_handler(XMLParser $parser, callable $handler): true

Sets the processing instruction (PI) handler function for the XML parser parser.

A processing instruction has the following format:

<?target
data
?>

Cuidado

PHP code is delimited by the <?php processing instruction. As such it is possible to have PHP code within an XML document. However, the PI end tag (?>) must not be part of the data. If a PI end tag exists as part of the embedded PHP code, the rest of the PHP code and the "real" PI end tag, will be treated as character data.

Parâmetros

parser

O analisador XML.

handler

Se null ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objet definido com xml_set_object().

The signature of the handler must be:

handler(XMLParser $parser, string $target, string $data): void
parser
O analisador XML que chama o manipulador.
target
The processing instruction target.
data
The processing instruction data.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.


Set up start namespace declaration handler

  • « xml_set_processing_instruction_handler
  • xml_set_unparsed_entity_decl_handler »
  • PHP Manual
  • Funções para analisar XML
  • Set up start namespace declaration handler

xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_set_start_namespace_decl_handler — Set up start namespace declaration handler

Descrição

xml_set_start_namespace_decl_handler(XMLParser $parser, callable $handler): true

Set a handler to be called when a namespace is declared. Namespace declarations occur inside start tags. But the namespace declaration start handler is called before the start tag handler for each namespace declared in that start tag.

Parâmetros

parser

O analisador XML.

handler

Se null ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objet definido com xml_set_object().

The signature of the handler must be:

handler(XMLParser $parser, string|false $prefix, string $uri): void
parser
O analisador XML que chama o manipulador.
prefix
The prefix is a string used to reference the namespace within an XML object. false if no prefix exists.
uri
Uniform Resource Identifier (URI) of namespace.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.

Veja Também

  • xml_set_end_namespace_decl_handler() - Set up end namespace declaration handler


Set up unparsed entity declaration handler

  • « xml_set_start_namespace_decl_handler
  • XMLParser »
  • PHP Manual
  • Funções para analisar XML
  • Set up unparsed entity declaration handler

xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_unparsed_entity_decl_handler — Set up unparsed entity declaration handler

Descrição

xml_set_unparsed_entity_decl_handler(XMLParser $parser, callable $handler): true

Sets the unparsed entity declaration handler function for the XML parser parser.

The handler will be called if the XML parser encounters an external entity declaration with an NDATA declaration, like the following:

<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

See » section 4.2.2 of the XML 1.0 spec for the definition of notation declared external entities.

Parâmetros

parser

O analisador XML.

handler

Se null ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objet definido com xml_set_object().

The signature of the handler must be:

handler(
XMLParser $parser,
string $entity_name,
string|false $base,
string $system_id,
string|false $public_id,
string|false $notation_name
): void
parser
O analisador XML que chama o manipulador.
entity_name
The name of the entity that is about to be defined.
base
This is the base for resolving the system identifier (systemId) of the external entity.
system_id
System identifier for the external entity.
public_id
Public identifier for the external entity.
notation_name
Name of the notation of this entity (see xml_set_notation_decl_handler()).

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.


A classe XMLParser

(PHP 8)

Introdução

Uma classe totalmente opaca que substitui os recursos xml a partir do PHP 8.0.0.

Resumo da classe

final class XMLParser {
}


XMLReader

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • XMLReader — The XMLReader class
    • XMLReader::close — Close the XMLReader input
    • XMLReader::expand — Returns a copy of the current node as a DOM object
    • XMLReader::getAttribute — Get the value of a named attribute
    • XMLReader::getAttributeNo — Get the value of an attribute by index
    • XMLReader::getAttributeNs — Get the value of an attribute by localname and URI
    • XMLReader::getParserProperty — Indicates if specified property has been set
    • XMLReader::isValid — Indicates if the parsed document is valid
    • XMLReader::lookupNamespace — Lookup namespace for a prefix
    • XMLReader::moveToAttribute — Move cursor to a named attribute
    • XMLReader::moveToAttributeNo — Move cursor to an attribute by index
    • XMLReader::moveToAttributeNs — Move cursor to a named attribute
    • XMLReader::moveToElement — Position cursor on the parent Element of current Attribute
    • XMLReader::moveToFirstAttribute — Position cursor on the first Attribute
    • XMLReader::moveToNextAttribute — Position cursor on the next Attribute
    • XMLReader::next — Move cursor to next node skipping all subtrees
    • XMLReader::open — Set the URI containing the XML to parse
    • XMLReader::read — Move to next node in document
    • XMLReader::readInnerXml — Retrieve XML from current node
    • XMLReader::readOuterXml — Retrieve XML from current node, including itself
    • XMLReader::readString — Reads the contents of the current node as a string
    • XMLReader::setParserProperty — Set parser options
    • XMLReader::setRelaxNGSchema — Set the filename or URI for a RelaxNG Schema
    • XMLReader::setRelaxNGSchemaSource — Set the data containing a RelaxNG Schema
    • XMLReader::setSchema — Validate document against XSD
    • XMLReader::XML — Set the data containing the XML to parse


Introdução

The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way.

Codificação

It is important to note that internally, libxml uses the UTF-8 encoding and as such, the encoding of the retrieved contents will always be in UTF-8 encoding.


Instalação

The XMLReader ships with PHP source. Esta extensão está habilitada por padrão. Ela pode ser desabilitada usando a seguinte opção em tempo de compilação: --disable-xmlreader


  • « Configurações em Execução
  • XMLReader »
  • PHP Manual
  • Instalação/Configuração
  • Tipos de Recurso

Tipos de Recurso

Esta extensão não possui tipos de recursos definidos.


The XMLReader class

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introdução

The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way.

Resumo da classe

class XMLReader {
/* Constantes */
public const int NONE;
public const int ELEMENT;
public const int ATTRIBUTE;
public const int TEXT;
public const int CDATA;
public const int ENTITY_REF;
public const int ENTITY;
public const int PI;
public const int COMMENT;
public const int DOC;
public const int DOC_TYPE;
public const int DOC_FRAGMENT;
public const int NOTATION;
public const int WHITESPACE;
public const int SIGNIFICANT_WHITESPACE;
public const int END_ELEMENT;
public const int END_ENTITY;
public const int XML_DECLARATION;
public const int LOADDTD;
public const int DEFAULTATTRS;
public const int VALIDATE;
public const int SUBST_ENTITIES;
/* Propriedades */
public int $attributeCount;
public string $baseURI;
public int $depth;
public bool $hasAttributes;
public bool $hasValue;
public bool $isDefault;
public bool $isEmptyElement;
public string $localName;
public string $name;
public string $namespaceURI;
public int $nodeType;
public string $prefix;
public string $value;
public string $xmlLang;
/* Métodos */
public close(): true
public expand(?DOMNode $baseNode = null): DOMNode|false
public getAttribute(string $name): ?string
public getAttributeNo(int $index): ?string
public getAttributeNs(string $name, string $namespace): ?string
public getParserProperty(int $property): bool
public isValid(): bool
public lookupNamespace(string $prefix): ?string
public moveToAttribute(string $name): bool
public moveToAttributeNo(int $index): bool
public moveToAttributeNs(string $name, string $namespace): bool
public moveToElement(): bool
public moveToFirstAttribute(): bool
public moveToNextAttribute(): bool
public next(?string $name = null): bool
public static open(string $uri, ?string $encoding = null, int $flags = 0): bool|XMLReader
public read(): bool
public readInnerXml(): string
public readOuterXml(): string
public readString(): string
public setParserProperty(int $property, bool $value): bool
public setRelaxNGSchema(?string $filename): bool
public setRelaxNGSchemaSource(?string $source): bool
public setSchema(?string $filename): bool
public static XML(string $source, ?string $encoding = null, int $flags = 0): bool|XMLReader
}

Propriedades

attributeCount

The number of attributes on the node

baseURI

The base URI of the node

depth

Depth of the node in the tree, starting at 0

hasAttributes

Indicates if node has attributes

hasValue

Indicates if node has a text value

isDefault

Indicates if attribute is defaulted from DTD

isEmptyElement

Indicates if node is an empty element tag

localName

The local name of the node

name

The qualified name of the node

namespaceURI

The URI of the namespace associated with the node

nodeType

The node type for the node

prefix

The prefix of the namespace associated with the node

value

The text value of the node

xmlLang

The xml:lang scope which the node resides

Constantes pré-definidas

XMLReader Node Types

XMLReader::NONE

No node type

XMLReader::ELEMENT

Start element

XMLReader::ATTRIBUTE

Attribute node

XMLReader::TEXT

Text node

XMLReader::CDATA

CDATA node

XMLReader::ENTITY_REF

Entity Reference node

XMLReader::ENTITY

Entity Declaration node

XMLReader::PI

Processing Instruction node

XMLReader::COMMENT

Comment node

XMLReader::DOC

Document node

XMLReader::DOC_TYPE

Document Type node

XMLReader::DOC_FRAGMENT

Document Fragment node

XMLReader::NOTATION

Notation node

XMLReader::WHITESPACE

Whitespace node

XMLReader::SIGNIFICANT_WHITESPACE

Significant Whitespace node

XMLReader::END_ELEMENT

End Element

XMLReader::END_ENTITY

End Entity

XMLReader::XML_DECLARATION

XML Declaration node

XMLReader Parser Options

XMLReader::LOADDTD

Load DTD but do not validate

XMLReader::DEFAULTATTRS

Load DTD and default attributes but do not validate

XMLReader::VALIDATE

Load DTD and validate while parsing

XMLReader::SUBST_ENTITIES

Substitute entities and expand references

Índice

  • XMLReader::close — Close the XMLReader input
  • XMLReader::expand — Returns a copy of the current node as a DOM object
  • XMLReader::getAttribute — Get the value of a named attribute
  • XMLReader::getAttributeNo — Get the value of an attribute by index
  • XMLReader::getAttributeNs — Get the value of an attribute by localname and URI
  • XMLReader::getParserProperty — Indicates if specified property has been set
  • XMLReader::isValid — Indicates if the parsed document is valid
  • XMLReader::lookupNamespace — Lookup namespace for a prefix
  • XMLReader::moveToAttribute — Move cursor to a named attribute
  • XMLReader::moveToAttributeNo — Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs — Move cursor to a named attribute
  • XMLReader::moveToElement — Position cursor on the parent Element of current Attribute
  • XMLReader::moveToFirstAttribute — Position cursor on the first Attribute
  • XMLReader::moveToNextAttribute — Position cursor on the next Attribute
  • XMLReader::next — Move cursor to next node skipping all subtrees
  • XMLReader::open — Set the URI containing the XML to parse
  • XMLReader::read — Move to next node in document
  • XMLReader::readInnerXml — Retrieve XML from current node
  • XMLReader::readOuterXml — Retrieve XML from current node, including itself
  • XMLReader::readString — Reads the contents of the current node as a string
  • XMLReader::setParserProperty — Set parser options
  • XMLReader::setRelaxNGSchema — Set the filename or URI for a RelaxNG Schema
  • XMLReader::setRelaxNGSchemaSource — Set the data containing a RelaxNG Schema
  • XMLReader::setSchema — Validate document against XSD
  • XMLReader::XML — Set the data containing the XML to parse


Close the XMLReader input

  • « XMLReader
  • XMLReader::expand »
  • PHP Manual
  • XMLReader
  • Close the XMLReader input

XMLReader::close

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::close — Close the XMLReader input

Descrição

public XMLReader::close(): true

Closes the input the XMLReader object is currently parsing.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Sempre retorna true.

Veja Também

  • XMLReader::open() - Set the URI containing the XML to parse
  • XMLReader::xml() - Set the data containing the XML to parse


Returns a copy of the current node as a DOM object

  • « XMLReader::close
  • XMLReader::getAttribute »
  • PHP Manual
  • XMLReader
  • Returns a copy of the current node as a DOM object

XMLReader::expand

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::expand — Returns a copy of the current node as a DOM object

Descrição

public XMLReader::expand(?DOMNode $baseNode = null): DOMNode|false

This method copies the current node and returns the appropriate DOM object.

Parâmetros

baseNode

A DOMNode defining the target DOMDocument for the created DOM object.

Valor Retornado

The resulting DOMNode or false on error.


Get the value of a named attribute

  • « XMLReader::expand
  • XMLReader::getAttributeNo »
  • PHP Manual
  • XMLReader
  • Get the value of a named attribute

XMLReader::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttribute — Get the value of a named attribute

Descrição

public XMLReader::getAttribute(string $name): ?string

Returns the value of a named attribute or null if the attribute does not exist or not positioned on an element node.

Parâmetros

name

The name of the attribute.

Valor Retornado

The value of the attribute, or null if no attribute with the given name is found or not positioned on an element node.

Registro de Alterações

Versão | Descrição
8.0.0 | This function can no longer return false.

Veja Também

  • XMLReader::getAttributeNo() - Get the value of an attribute by index
  • XMLReader::getAttributeNs() - Get the value of an attribute by localname and URI


Get the value of an attribute by index

  • « XMLReader::getAttribute
  • XMLReader::getAttributeNs »
  • PHP Manual
  • XMLReader
  • Get the value of an attribute by index

XMLReader::getAttributeNo

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttributeNo — Get the value of an attribute by index

Descrição

public XMLReader::getAttributeNo(int $index): ?string

Returns the value of an attribute based on its position or an empty string if attribute does not exist or not positioned on an element node.

Parâmetros

index

The position of the attribute.

Valor Retornado

The value of the attribute, or null if no attribute exists at index or is not positioned on the element.

Veja Também

  • XMLReader::getAttribute() - Get the value of a named attribute
  • XMLReader::getAttributeNs() - Get the value of an attribute by localname and URI


Get the value of an attribute by localname and URI

  • « XMLReader::getAttributeNo
  • XMLReader::getParserProperty »
  • PHP Manual
  • XMLReader
  • Get the value of an attribute by localname and URI

XMLReader::getAttributeNs

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttributeNs — Get the value of an attribute by localname and URI

Descrição

public XMLReader::getAttributeNs(string $name, string $namespace): ?string

Returns the value of an attribute by name and namespace URI or an empty string if attribute does not exist or not positioned on an element node.

Parâmetros

name

The local name.

namespace

The namespace URI.

Valor Retornado

The value of the attribute, or null if no attribute with the given name and namespace is found or not positioned of element.

Registro de Alterações

Versão | Descrição
8.0.0 | This function can no longer return false.

Veja Também

  • XMLReader::getAttribute() - Get the value of a named attribute
  • XMLReader::getAttributeNo() - Get the value of an attribute by index


Indicates if specified property has been set

  • « XMLReader::getAttributeNs
  • XMLReader::isValid »
  • PHP Manual
  • XMLReader
  • Indicates if specified property has been set

XMLReader::getParserProperty

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getParserProperty — Indicates if specified property has been set

Descrição

public XMLReader::getParserProperty(int $property): bool

Indicates if specified property has been set.

Parâmetros

property

One of the parser option constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • XMLReader::setParserProperty() - Set parser options


Indicates if the parsed document is valid

  • « XMLReader::getParserProperty
  • XMLReader::lookupNamespace »
  • PHP Manual
  • XMLReader
  • Indicates if the parsed document is valid

XMLReader::isValid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::isValid — Indicates if the parsed document is valid

Descrição

public XMLReader::isValid(): bool

Returns a boolean indicating if the document being parsed is currently valid according to the DTD, or an XML or RelaxNG schema. If there is no schema, and the DTD validation option is not provided, this method will return false.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true when the document is valid or false otherwise.

Exemplos

Exemplo #1 Validating XML

<?php
$xml = XMLReader::open('test.xml');

// The validate parser option must be enabled for
// this method to work properly
$xml->setParserProperty(XMLReader::VALIDATE, true);

var_dump($xml->isValid());
?>

Notas

Nota: This checks the current node, not the entire document.

Veja Também

  • XMLReader::setParserProperty() - Set parser options
  • XMLReader::setRelaxNGSchema() - Set the filename or URI for a RelaxNG Schema
  • XMLReader::setRelaxNGSchemaSource() - Set the data containing a RelaxNG Schema
  • XMLReader::setSchema() - Validate document against XSD


Lookup namespace for a prefix

  • « XMLReader::isValid
  • XMLReader::moveToAttribute »
  • PHP Manual
  • XMLReader
  • Lookup namespace for a prefix

XMLReader::lookupNamespace

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::lookupNamespace — Lookup namespace for a prefix

Descrição

public XMLReader::lookupNamespace(string $prefix): ?string

Lookup in scope namespace for a given prefix.

Parâmetros

prefix

String containing the prefix.

Valor Retornado

The value of the namespace, or null if no namespace exists.

Registro de Alterações

Versão | Descrição
8.0.0 | This function can no longer return false.


Move cursor to a named attribute

  • « XMLReader::lookupNamespace
  • XMLReader::moveToAttributeNo »
  • PHP Manual
  • XMLReader
  • Move cursor to a named attribute

XMLReader::moveToAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToAttribute — Move cursor to a named attribute

Descrição

public XMLReader::moveToAttribute(string $name): bool

Positions cursor on the named attribute.

Parâmetros

name

The name of the attribute.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • XMLReader::moveToElement() - Position cursor on the parent Element of current Attribute
  • XMLReader::moveToAttributeNo() - Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs() - Move cursor to a named attribute
  • XMLReader::moveToFirstAttribute() - Position cursor on the first Attribute


Move cursor to an attribute by index

  • « XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNs »
  • PHP Manual
  • XMLReader
  • Move cursor to an attribute by index

XMLReader::moveToAttributeNo

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToAttributeNo — Move cursor to an attribute by index

Descrição

public XMLReader::moveToAttributeNo(int $index): bool

Positions cursor on attribute based on its position.

Parâmetros

index

The position of the attribute.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • XMLReader::moveToElement() - Position cursor on the parent Element of current Attribute
  • XMLReader::moveToAttribute() - Move cursor to a named attribute
  • XMLReader::moveToAttributeNs() - Move cursor to a named attribute
  • XMLReader::moveToFirstAttribute() - Position cursor on the first Attribute


Move cursor to a named attribute

  • « XMLReader::moveToAttributeNo
  • XMLReader::moveToElement »
  • PHP Manual
  • XMLReader
  • Move cursor to a named attribute

XMLReader::moveToAttributeNs

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToAttributeNs — Move cursor to a named attribute

Descrição

public XMLReader::moveToAttributeNs(string $name, string $namespace): bool

Positions cursor on the named attribute in specified namespace.

Parâmetros

name

The local name.

namespace

The namespace URI.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • XMLReader::moveToElement() - Position cursor on the parent Element of current Attribute
  • XMLReader::moveToAttribute() - Move cursor to a named attribute
  • XMLReader::moveToAttributeNo() - Move cursor to an attribute by index
  • XMLReader::moveToFirstAttribute() - Position cursor on the first Attribute


Position cursor on the parent Element of current Attribute

  • « XMLReader::moveToAttributeNs
  • XMLReader::moveToFirstAttribute »
  • PHP Manual
  • XMLReader
  • Position cursor on the parent Element of current Attribute

XMLReader::moveToElement

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToElement — Position cursor on the parent Element of current Attribute

Descrição

public XMLReader::moveToElement(): bool

Moves cursor to the parent Element of current Attribute.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns true if successful and false if it fails or not positioned on Attribute when this method is called.

Veja Também

  • XMLReader::moveToAttribute() - Move cursor to a named attribute
  • XMLReader::moveToAttributeNo() - Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs() - Move cursor to a named attribute
  • XMLReader::moveToFirstAttribute() - Position cursor on the first Attribute


Position cursor on the first Attribute

  • « XMLReader::moveToElement
  • XMLReader::moveToNextAttribute »
  • PHP Manual
  • XMLReader
  • Position cursor on the first Attribute

XMLReader::moveToFirstAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToFirstAttribute — Position cursor on the first Attribute

Descrição

public XMLReader::moveToFirstAttribute(): bool

Moves cursor to the first Attribute.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • XMLReader::moveToElement() - Position cursor on the parent Element of current Attribute
  • XMLReader::moveToAttribute() - Move cursor to a named attribute
  • XMLReader::moveToAttributeNo() - Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs() - Move cursor to a named attribute
  • XMLReader::moveToNextAttribute() - Position cursor on the next Attribute


Position cursor on the next Attribute

  • « XMLReader::moveToFirstAttribute
  • XMLReader::next »
  • PHP Manual
  • XMLReader
  • Position cursor on the next Attribute

XMLReader::moveToNextAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToNextAttribute — Position cursor on the next Attribute

Descrição

public XMLReader::moveToNextAttribute(): bool

Moves cursor to the next Attribute if positioned on an Attribute or moves to first attribute if positioned on an Element.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • XMLReader::moveToElement() - Position cursor on the parent Element of current Attribute
  • XMLReader::moveToAttribute() - Move cursor to a named attribute
  • XMLReader::moveToAttributeNo() - Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs() - Move cursor to a named attribute
  • XMLReader::moveToFirstAttribute() - Position cursor on the first Attribute


Move cursor to next node skipping all subtrees

  • « XMLReader::moveToNextAttribute
  • XMLReader::open »
  • PHP Manual
  • XMLReader
  • Move cursor to next node skipping all subtrees

XMLReader::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::next — Move cursor to next node skipping all subtrees

Descrição

public XMLReader::next(?string $name = null): bool

Positions cursor on the next node skipping all subtrees. If no such node exists, the cursor is moved to the end of the document.

Parâmetros

name

The name of the next node to move to.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | name is nullable now.

Veja Também

  • XMLReader::moveToNextAttribute() - Position cursor on the next Attribute
  • XMLReader::moveToElement() - Position cursor on the parent Element of current Attribute
  • XMLReader::moveToAttribute() - Move cursor to a named attribute


Set the URI containing the XML to parse

  • « XMLReader::next
  • XMLReader::read »
  • PHP Manual
  • XMLReader
  • Set the URI containing the XML to parse

XMLReader::open

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::open — Set the URI containing the XML to parse

Descrição

public static XMLReader::open(string $uri, ?string $encoding = null, int $flags = 0): bool|XMLReader

Set the URI containing the XML document to be parsed.

Parâmetros

uri

URI pointing to the document.

encoding

The document encoding or null.

flags

A bitmask of the LIBXML_* constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. If called statically, returns an XMLReader ou false em caso de falha.

Erros/Exceções

This method may be called statically, but prior to PHP 8.0.0, will issue an E_DEPRECATED error in this case.

Registro de Alterações

Versão | Descrição
8.0.0 | XMLReader::open() is now declared as static method, but can still be called on an XMLReader instance.

Veja Também

  • XMLReader::xml() - Set the data containing the XML to parse
  • XMLReader::close() - Close the XMLReader input


Move to next node in document

  • « XMLReader::open
  • XMLReader::readInnerXml »
  • PHP Manual
  • XMLReader
  • Move to next node in document

XMLReader::read

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::read — Move to next node in document

Descrição

public XMLReader::read(): bool

Moves cursor to the next node in the document.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • XMLReader::moveToElement() - Position cursor on the parent Element of current Attribute
  • XMLReader::moveToAttribute() - Move cursor to a named attribute
  • XMLReader::next() - Move cursor to next node skipping all subtrees


Retrieve XML from current node

  • « XMLReader::read
  • XMLReader::readOuterXml »
  • PHP Manual
  • XMLReader
  • Retrieve XML from current node

XMLReader::readInnerXml

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readInnerXml — Retrieve XML from current node

Descrição

public XMLReader::readInnerXml(): string

Reads the contents of the current node, including child nodes and markup.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the contents of the current node as a string. Empty string on failure.

Notas

Cuidado

Esta função só estará disponível quando o PHP for compilado com a libxml 20620 ou superior.

Veja Também

  • XMLReader::readString() - Reads the contents of the current node as a string
  • XMLReader::readOuterXml() - Retrieve XML from current node, including itself
  • XMLReader::expand() - Returns a copy of the current node as a DOM object


Retrieve XML from current node, including itself

  • « XMLReader::readInnerXml
  • XMLReader::readString »
  • PHP Manual
  • XMLReader
  • Retrieve XML from current node, including itself

XMLReader::readOuterXml

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readOuterXml — Retrieve XML from current node, including itself

Descrição

public XMLReader::readOuterXml(): string

Reads the contents of the current node, including the node itself.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the contents of current node, including itself, as a string. Empty string on failure.

Notas

Cuidado

Esta função só estará disponível quando o PHP for compilado com a libxml 20620 ou superior.

Veja Também

  • XMLReader::readString() - Reads the contents of the current node as a string
  • XMLReader::readInnerXml() - Retrieve XML from current node
  • XMLReader::expand() - Returns a copy of the current node as a DOM object


Reads the contents of the current node as a string

  • « XMLReader::readOuterXml
  • XMLReader::setParserProperty »
  • PHP Manual
  • XMLReader
  • Reads the contents of the current node as a string

XMLReader::readString

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readString — Reads the contents of the current node as a string

Descrição

public XMLReader::readString(): string

Reads the contents of the current node as a string.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the content of the current node as a string. Empty string on failure.

Notas

Cuidado

Esta função só estará disponível quando o PHP for compilado com a libxml 20620 ou superior.

Veja Também

  • XMLReader::readOuterXml() - Retrieve XML from current node, including itself
  • XMLReader::readInnerXml() - Retrieve XML from current node
  • XMLReader::expand() - Returns a copy of the current node as a DOM object


Set parser options

  • « XMLReader::readString
  • XMLReader::setRelaxNGSchema »
  • PHP Manual
  • XMLReader
  • Set parser options

XMLReader::setParserProperty

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setParserProperty — Set parser options

Descrição

public XMLReader::setParserProperty(int $property, bool $value): bool

Set parser options. The options must be set after
XMLReader::open() or
XMLReader::xml() are called and before
the first XMLReader::read() call.

Parâmetros

property

One of the parser option constants.

value

If set to true the option will be enabled otherwise will be disabled.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Set the filename or URI for a RelaxNG Schema

  • « XMLReader::setParserProperty
  • XMLReader::setRelaxNGSchemaSource »
  • PHP Manual
  • XMLReader
  • Set the filename or URI for a RelaxNG Schema

XMLReader::setRelaxNGSchema

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setRelaxNGSchema — Set the filename or URI for a RelaxNG Schema

Descrição

public XMLReader::setRelaxNGSchema(?string $filename): bool

Set the filename or URI for the RelaxNG Schema to use for validation.

Parâmetros

filename

filename or URI pointing to a RelaxNG Schema.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • XMLReader::setRelaxNGSchemaSource() - Set the data containing a RelaxNG Schema
  • XMLReader::setSchema() - Validate document against XSD
  • XMLReader::isValid() - Indicates if the parsed document is valid


Set the data containing a RelaxNG Schema

  • « XMLReader::setRelaxNGSchema
  • XMLReader::setSchema »
  • PHP Manual
  • XMLReader
  • Set the data containing a RelaxNG Schema

XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setRelaxNGSchemaSource — Set the data containing a RelaxNG Schema

Descrição

public XMLReader::setRelaxNGSchemaSource(?string $source): bool

Set the data containing a RelaxNG Schema to use for validation.

Parâmetros

source

String containing the RelaxNG Schema.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • XMLReader::setRelaxNGSchema() - Set the filename or URI for a RelaxNG Schema
  • XMLReader::setSchema() - Validate document against XSD
  • XMLReader::isValid() - Indicates if the parsed document is valid


Validate document against XSD

  • « XMLReader::setRelaxNGSchemaSource
  • XMLReader::XML »
  • PHP Manual
  • XMLReader
  • Validate document against XSD

XMLReader::setSchema

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::setSchema — Validate document against XSD

Descrição

public XMLReader::setSchema(?string $filename): bool

Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read().

Parâmetros

filename

The filename of the XSD schema.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Erros/Exceções

Issues E_WARNING if libxml was built without schema support, the schema contains errors or if XMLReader::read() has already been called.

Notas

Cuidado

Esta função só estará disponível quando o PHP for compilado com a libxml 20620 ou superior.

Veja Também

  • XMLReader::setRelaxNGSchema() - Set the filename or URI for a RelaxNG Schema
  • XMLReader::setRelaxNGSchemaSource() - Set the data containing a RelaxNG Schema
  • XMLReader::isValid() - Indicates if the parsed document is valid


Set the data containing the XML to parse

  • « XMLReader::setSchema
  • XMLWriter »
  • PHP Manual
  • XMLReader
  • Set the data containing the XML to parse

XMLReader::XML

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::XML — Set the data containing the XML to parse

Descrição

public static XMLReader::XML(string $source, ?string $encoding = null, int $flags = 0): bool|XMLReader

Set the data containing the XML to parse.

Parâmetros

source

String containing the XML to be parsed.

encoding

The document encoding or null.

flags

A bitmask of the LIBXML_* constants.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha. If called statically, returns an XMLReader ou false em caso de falha.

Erros/Exceções

This method may be called statically, but prior to PHP 8.0.0, will issue an E_DEPRECATED error in this case.

Registro de Alterações

Versão | Descrição
8.0.0 | XMLReader::XML() is now declared as static method, but can still be called on an XMLReader instance.

Veja Também

  • XMLReader::open() - Set the URI containing the XML to parse
  • XMLReader::close() - Close the XMLReader input


XMLWriter

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Creating a simple XML document
    • Working with XML namespaces
    • Working with the OO API
  • XMLWriter — The XMLWriter class
    • XMLWriter::endAttribute — End attribute
    • XMLWriter::endCdata — End current CDATA
    • XMLWriter::endComment — Create end comment
    • XMLWriter::endDocument — End current document
    • XMLWriter::endDtd — End current DTD
    • XMLWriter::endDtdAttlist — End current DTD AttList
    • XMLWriter::endDtdElement — End current DTD element
    • XMLWriter::endDtdEntity — End current DTD Entity
    • XMLWriter::endElement — End current element
    • XMLWriter::endPi — End current PI
    • XMLWriter::flush — Flush current buffer
    • XMLWriter::fullEndElement — End current element
    • XMLWriter::openMemory — Create new xmlwriter using memory for string output
    • XMLWriter::openUri — Create new xmlwriter using source uri for output
    • XMLWriter::outputMemory — Returns current buffer
    • XMLWriter::setIndent — Toggle indentation on/off
    • XMLWriter::setIndentString — Set string used for indenting
    • XMLWriter::startAttribute — Create start attribute
    • XMLWriter::startAttributeNs — Create start namespaced attribute
    • XMLWriter::startCdata — Create start CDATA tag
    • XMLWriter::startComment — Create start comment
    • XMLWriter::startDocument — Create document tag
    • XMLWriter::startDtd — Create start DTD tag
    • XMLWriter::startDtdAttlist — Create start DTD AttList
    • XMLWriter::startDtdElement — Create start DTD element
    • XMLWriter::startDtdEntity — Create start DTD Entity
    • XMLWriter::startElement — Create start element tag
    • XMLWriter::startElementNs — Create start namespaced element tag
    • XMLWriter::startPi — Create start PI tag
    • XMLWriter::text — Write text
    • XMLWriter::writeAttribute — Write full attribute
    • XMLWriter::writeAttributeNs — Write full namespaced attribute
    • XMLWriter::writeCdata — Write full CDATA tag
    • XMLWriter::writeComment — Write full comment tag
    • XMLWriter::writeDtd — Write full DTD tag
    • XMLWriter::writeDtdAttlist — Write full DTD AttList tag
    • XMLWriter::writeDtdElement — Write full DTD element tag
    • XMLWriter::writeDtdEntity — Write full DTD Entity tag
    • XMLWriter::writeElement — Write full element tag
    • XMLWriter::writeElementNs — Write full namespaced element tag
    • XMLWriter::writePi — Writes a PI
    • XMLWriter::writeRaw — Write a raw XML text


Introdução

This is the XMLWriter extension. It wraps the libxml xmlWriter API.

This extension represents a writer that provides a non-cached, forward-only means of generating streams or files containing XML data.

This extension can be used in an object-oriented style or a procedural one. Every method documented describes the alternative procedural call.


Instalação

The XMLWriter ships with PHP source. Esta extensão está habilitada por padrão. Ela pode ser desabilitada usando a seguinte opção em tempo de compilação: --disable-xmlwriter


Tipos de Recurso

Prior to PHP 8.0.0, there was one resource type used by the procedural version of the XMLWriter extension: returned by xmlwriter_open_memory() or xmlwriter_open_uri().


  • « Tipos de Recurso
  • Exemplos »
  • PHP Manual
  • XMLWriter
  • Constantes pré-definidas

Constantes pré-definidas

Esta extensão não possui constantes definidas.


Exemplos

Índice

  • Creating a simple XML document
  • Working with XML namespaces
  • Working with the OO API


Creating a simple XML document

This example shows how to use XMLWriter to create a XML document in memory.

Exemplo #1 Creating a simple XML document

<?php

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');

xmlwriter_start_document($xw, '1.0', 'UTF-8');

// A first element
xmlwriter_start_element($xw, 'tag1');

// Attribute 'att1' for element 'tag1'
xmlwriter_start_attribute($xw, 'att1');
xmlwriter_text($xw, 'valueofatt1');
xmlwriter_end_attribute($xw);

xmlwriter_write_comment($xw, 'this is a comment.');

// Start a child element
xmlwriter_start_element($xw, 'tag11');
xmlwriter_text($xw, 'This is a sample text, ä');
xmlwriter_end_element($xw); // tag11

xmlwriter_end_element($xw); // tag1

// CDATA
xmlwriter_start_element($xw, 'testc');
xmlwriter_write_cdata($xw, "This is cdata content");
xmlwriter_end_element($xw); // testc

xmlwriter_start_element($xw, 'testc');
xmlwriter_start_cdata($xw);
xmlwriter_text($xw, "test cdata2");
xmlwriter_end_cdata($xw);
xmlwriter_end_element($xw); // testc

// A processing instruction
xmlwriter_start_pi($xw, 'php');
xmlwriter_text($xw, '$foo=2;echo $foo;');
xmlwriter_end_pi($xw);

xmlwriter_end_document($xw);

echo xmlwriter_output_memory($xw);

O exemplo acima produzirá:

<?xml version="1.0" encoding="UTF-8"?>
<tag1 att1="valueofatt1">
 <!--this is a comment.-->
 <tag11>This is a sample text, ä</tag11>
</tag1>
<testc><![CDATA[This is cdata content]]></testc>
<testc><![CDATA[test cdata2]]></testc>
<?php $foo=2;echo $foo;?>


Working with XML namespaces

This example shows how to create namespaced XML elements.

Exemplo #1 Working with XML namespaces

<?php

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');

xmlwriter_start_document($xw, '1.0', 'UTF-8');
// A first element
xmlwriter_start_element_ns($xw,'prefix', 'books', 'uri');
xmlwriter_start_attribute($xw, 'isbn');

xmlwriter_start_attribute_ns($xw, 'prefix', 'isbn', 'uri');
xmlwriter_end_attribute($xw);

xmlwriter_end_attribute($xw);

xmlwriter_text($xw, 'book1');
xmlwriter_end_element($xw);

xmlwriter_end_document($xw);

echo xmlwriter_output_memory($xw);

O exemplo acima produzirá:

<?xml version="1.0" encoding="UTF-8"?>
<prefix:books isbn="" prefix:isbn="" xmlns:prefix="uri">book1</prefix:books>


Working with the OO API

This example shows how to work with XMLWriter's object-oriented API.

Exemplo #1 Working with the OO API

<?php

$xw = new XMLWriter();
$xw->openMemory();
$xw->startDocument("1.0");
$xw->startElement("book");
$xw->text("example");
$xw->endElement();
$xw->endDocument();
echo $xw->outputMemory();

O exemplo acima produzirá:

<?xml version="1.0"?>
<book>example</book>


The XMLWriter class

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

Introdução

Resumo da classe

class XMLWriter {
/* Métodos */
public endAttribute(): bool
public endCdata(): bool
public endComment(): bool
public endDocument(): bool
public endDtd(): bool
public endDtdAttlist(): bool
public endDtdElement(): bool
public endDtdEntity(): bool
public endElement(): bool
public endPi(): bool
public flush(bool $empty = true): string|int
public fullEndElement(): bool
public openMemory(): bool
public openUri(string $uri): bool
public outputMemory(bool $flush = true): string
public setIndent(bool $enable): bool
public setIndentString(string $indentation): bool
public startAttribute(string $name): bool
public startAttributeNs(?string $prefix, string $name, ?string $namespace): bool
public startCdata(): bool
public startComment(): bool
public startDocument(?string $version = "1.0", ?string $encoding = null, ?string $standalone = null): bool
public startDtd(string $qualifiedName, ?string $publicId = null, ?string $systemId = null): bool
public startDtdAttlist(string $name): bool
public startDtdElement(string $qualifiedName): bool
public startDtdEntity(string $name, bool $isParam): bool
public startElement(string $name): bool
public startElementNs(?string $prefix, string $name, ?string $namespace): bool
public startPi(string $target): bool
public text(string $content): bool
public writeAttribute(string $name, string $value): bool
public writeAttributeNs(
?string $prefix,
string $name,
?string $namespace,
string $value
): bool
public writeCdata(string $content): bool
public writeComment(string $content): bool
public writeDtd(
string $name,
?string $publicId = null,
?string $systemId = null,
?string $content = null
): bool
public writeDtdAttlist(string $name, string $content): bool
public writeDtdElement(string $name, string $content): bool
public writeDtdEntity(
string $name,
string $content,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool
public writeElement(string $name, ?string $content = null): bool
public writeElementNs(
?string $prefix,
string $name,
?string $namespace,
?string $content = null
): bool
public writePi(string $target, string $content): bool
public writeRaw(string $content): bool
}

Índice

  • XMLWriter::endAttribute — End attribute
  • XMLWriter::endCdata — End current CDATA
  • XMLWriter::endComment — Create end comment
  • XMLWriter::endDocument — End current document
  • XMLWriter::endDtd — End current DTD
  • XMLWriter::endDtdAttlist — End current DTD AttList
  • XMLWriter::endDtdElement — End current DTD element
  • XMLWriter::endDtdEntity — End current DTD Entity
  • XMLWriter::endElement — End current element
  • XMLWriter::endPi — End current PI
  • XMLWriter::flush — Flush current buffer
  • XMLWriter::fullEndElement — End current element
  • XMLWriter::openMemory — Create new xmlwriter using memory for string output
  • XMLWriter::openUri — Create new xmlwriter using source uri for output
  • XMLWriter::outputMemory — Returns current buffer
  • XMLWriter::setIndent — Toggle indentation on/off
  • XMLWriter::setIndentString — Set string used for indenting
  • XMLWriter::startAttribute — Create start attribute
  • XMLWriter::startAttributeNs — Create start namespaced attribute
  • XMLWriter::startCdata — Create start CDATA tag
  • XMLWriter::startComment — Create start comment
  • XMLWriter::startDocument — Create document tag
  • XMLWriter::startDtd — Create start DTD tag
  • XMLWriter::startDtdAttlist — Create start DTD AttList
  • XMLWriter::startDtdElement — Create start DTD element
  • XMLWriter::startDtdEntity — Create start DTD Entity
  • XMLWriter::startElement — Create start element tag
  • XMLWriter::startElementNs — Create start namespaced element tag
  • XMLWriter::startPi — Create start PI tag
  • XMLWriter::text — Write text
  • XMLWriter::writeAttribute — Write full attribute
  • XMLWriter::writeAttributeNs — Write full namespaced attribute
  • XMLWriter::writeCdata — Write full CDATA tag
  • XMLWriter::writeComment — Write full comment tag
  • XMLWriter::writeDtd — Write full DTD tag
  • XMLWriter::writeDtdAttlist — Write full DTD AttList tag
  • XMLWriter::writeDtdElement — Write full DTD element tag
  • XMLWriter::writeDtdEntity — Write full DTD Entity tag
  • XMLWriter::writeElement — Write full element tag
  • XMLWriter::writeElementNs — Write full namespaced element tag
  • XMLWriter::writePi — Writes a PI
  • XMLWriter::writeRaw — Write a raw XML text


End attribute

  • « XMLWriter
  • XMLWriter::endCdata »
  • PHP Manual
  • XMLWriter
  • End attribute

XMLWriter::endAttribute

xmlwriter_end_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endAttribute -- xmlwriter_end_attribute — End attribute

Descrição

Estilo orientado a objetos

public XMLWriter::endAttribute(): bool

Estilo procedural

xmlwriter_end_attribute(XMLWriter $writer): bool

Ends the current attribute.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startAttribute() - Create start attribute
  • XMLWriter::startAttributeNs() - Create start namespaced attribute
  • XMLWriter::writeAttribute() - Write full attribute
  • XMLWriter::writeAttributeNs() - Write full namespaced attribute


End current CDATA

  • « XMLWriter::endAttribute
  • XMLWriter::endComment »
  • PHP Manual
  • XMLWriter
  • End current CDATA

XMLWriter::endCdata

xmlwriter_end_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endCdata -- xmlwriter_end_cdata — End current CDATA

Descrição

Estilo orientado a objetos

public XMLWriter::endCdata(): bool

Estilo procedural

xmlwriter_end_cdata(XMLWriter $writer): bool

Ends the current CDATA section.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startCdata() - Create start CDATA tag
  • XMLWriter::writeCdata() - Write full CDATA tag


Create end comment

  • « XMLWriter::endCdata
  • XMLWriter::endDocument »
  • PHP Manual
  • XMLWriter
  • Create end comment

XMLWriter::endComment

xmlwriter_end_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::endComment -- xmlwriter_end_comment — Create end comment

Descrição

Estilo orientado a objetos

public XMLWriter::endComment(): bool

Estilo procedural

xmlwriter_end_comment(XMLWriter $writer): bool

Ends the current comment.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startComment() - Create start comment
  • XMLWriter::writeComment() - Write full comment tag


End current document

  • « XMLWriter::endComment
  • XMLWriter::endDtd »
  • PHP Manual
  • XMLWriter
  • End current document

XMLWriter::endDocument

xmlwriter_end_document

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDocument -- xmlwriter_end_document — End current document

Descrição

Estilo orientado a objetos

public XMLWriter::endDocument(): bool

Estilo procedural

xmlwriter_end_document(XMLWriter $writer): bool

Ends the current document.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startDocument() - Create document tag


End current DTD

  • « XMLWriter::endDocument
  • XMLWriter::endDtdAttlist »
  • PHP Manual
  • XMLWriter
  • End current DTD

XMLWriter::endDtd

xmlwriter_end_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtd -- xmlwriter_end_dtd — End current DTD

Descrição

Estilo orientado a objetos

public XMLWriter::endDtd(): bool

Estilo procedural

xmlwriter_end_dtd(XMLWriter $writer): bool

Ends the DTD of the document.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startDtd() - Create start DTD tag
  • XMLWriter::writeDtd() - Write full DTD tag


End current DTD AttList

  • « XMLWriter::endDtd
  • XMLWriter::endDtdElement »
  • PHP Manual
  • XMLWriter
  • End current DTD AttList

XMLWriter::endDtdAttlist

xmlwriter_end_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdAttlist -- xmlwriter_end_dtd_attlist — End current DTD AttList

Descrição

Estilo orientado a objetos

public XMLWriter::endDtdAttlist(): bool

Estilo procedural

xmlwriter_end_dtd_attlist(XMLWriter $writer): bool

Ends the current DTD attribute list.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startDtdAttlist() - Create start DTD AttList
  • XMLWriter::writeDtdAttlist() - Write full DTD AttList tag


End current DTD element

  • « XMLWriter::endDtdAttlist
  • XMLWriter::endDtdEntity »
  • PHP Manual
  • XMLWriter
  • End current DTD element

XMLWriter::endDtdElement

xmlwriter_end_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdElement -- xmlwriter_end_dtd_element — End current DTD element

Descrição

Estilo orientado a objetos

public XMLWriter::endDtdElement(): bool

Estilo procedural

xmlwriter_end_dtd_element(XMLWriter $writer): bool

Ends the current DTD element.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startDtdElement() - Create start DTD element
  • XMLWriter::writeDtdElement() - Write full DTD element tag


End current DTD Entity

  • « XMLWriter::endDtdElement
  • XMLWriter::endElement »
  • PHP Manual
  • XMLWriter
  • End current DTD Entity

XMLWriter::endDtdEntity

xmlwriter_end_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdEntity -- xmlwriter_end_dtd_entity — End current DTD Entity

Descrição

Estilo orientado a objetos

public XMLWriter::endDtdEntity(): bool

Estilo procedural

xmlwriter_end_dtd_entity(XMLWriter $writer): bool

Ends the current DTD entity.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startDtdEntity() - Create start DTD Entity
  • XMLWriter::writeDtdEntity() - Write full DTD Entity tag


End current element

  • « XMLWriter::endDtdEntity
  • XMLWriter::endPi »
  • PHP Manual
  • XMLWriter
  • End current element

XMLWriter::endElement

xmlwriter_end_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endElement -- xmlwriter_end_element — End current element

Descrição

Estilo orientado a objetos

public XMLWriter::endElement(): bool

Estilo procedural

xmlwriter_end_element(XMLWriter $writer): bool

Ends the current element.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startElement() - Create start element tag
  • XMLWriter::writeElement() - Write full element tag


End current PI

  • « XMLWriter::endElement
  • XMLWriter::flush »
  • PHP Manual
  • XMLWriter
  • End current PI

XMLWriter::endPi

xmlwriter_end_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endPi -- xmlwriter_end_pi — End current PI

Descrição

Estilo orientado a objetos

public XMLWriter::endPi(): bool

Estilo procedural

xmlwriter_end_pi(XMLWriter $writer): bool

Ends the current processing instruction.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startPi() - Create start PI tag
  • XMLWriter::writePi() - Writes a PI


Flush current buffer

  • « XMLWriter::endPi
  • XMLWriter::fullEndElement »
  • PHP Manual
  • XMLWriter
  • Flush current buffer

XMLWriter::flush

xmlwriter_flush

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::flush -- xmlwriter_flush — Flush current buffer

Descrição

Estilo orientado a objetos

public XMLWriter::flush(bool $empty = true): string|int

Estilo procedural

xmlwriter_flush(XMLWriter $writer, bool $empty = true): string|int

Flushes the current buffer.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

empty

Whether to empty the buffer or not. Default is true.

Valor Retornado

If you opened the writer in memory, this function returns the generated XML buffer, Else, if using URI, this function will write the buffer and return the number of written bytes.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.
8.0.0 | This function can no longer return false.


End current element

  • « XMLWriter::flush
  • XMLWriter::openMemory »
  • PHP Manual
  • XMLWriter
  • End current element

XMLWriter::fullEndElement

xmlwriter_full_end_element

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL xmlwriter >= 2.0.4)

XMLWriter::fullEndElement -- xmlwriter_full_end_element — End current element

Descrição

Estilo orientado a objetos

public XMLWriter::fullEndElement(): bool

Estilo procedural

xmlwriter_full_end_element(XMLWriter $writer): bool

End the current xml element. Writes an end tag even if the element is empty.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endElement() - End current element


Create new xmlwriter using memory for string output

  • « XMLWriter::fullEndElement
  • XMLWriter::openUri »
  • PHP Manual
  • XMLWriter
  • Create new xmlwriter using memory for string output

XMLWriter::openMemory

xmlwriter_open_memory

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::openMemory -- xmlwriter_open_memory — Create new xmlwriter using memory for string output

Descrição

Estilo orientado a objetos

public XMLWriter::openMemory(): bool

Estilo procedural

xmlwriter_open_memory(): XMLWriter|false

Creates a new XMLWriter using memory for string output.

Parâmetros

Valor Retornado

Estilo orientado a objetos: Retorna true em caso de sucesso ou false em caso de falha.

Estilo procedural: Returns a new XMLWriter for later use with the xmlwriter functions on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | This function returns now an XMLWriter instance on success. Previouly, a resource has been returned in this case.

Veja Também

  • XMLWriter::openUri() - Create new xmlwriter using source uri for output


Create new xmlwriter using source uri for output

  • « XMLWriter::openMemory
  • XMLWriter::outputMemory »
  • PHP Manual
  • XMLWriter
  • Create new xmlwriter using source uri for output

XMLWriter::openUri

xmlwriter_open_uri

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::openUri -- xmlwriter_open_uri — Create new xmlwriter using source uri for output

Descrição

Estilo orientado a objetos

public XMLWriter::openUri(string $uri): bool

Estilo procedural

xmlwriter_open_uri(string $uri): XMLWriter|false

Creates a new XMLWriter using uri for the output.

Parâmetros

uri

The URI of the resource for the output.

Valor Retornado

Estilo orientado a objetos: Retorna true em caso de sucesso ou false em caso de falha.

Estilo procedural: Returns a new XMLWriter instance for later use with the xmlwriter functions on success, ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | This function returns now an XMLWriter instance on success. Previouly, a resource has been returned in this case.

Exemplos

Exemplo #1 Direct output of XML

It is possible to directly output XML by using the php://output stream wrapper.

<?php
$out =new XMLWriter();
$out->openURI('php://output');
?>

Notas

Nota:

On Windows, files opened with this function are locked until the writer is released.

Veja Também

  • XMLWriter::openMemory() - Create new xmlwriter using memory for string output


Returns current buffer

  • « XMLWriter::openUri
  • XMLWriter::setIndent »
  • PHP Manual
  • XMLWriter
  • Returns current buffer

XMLWriter::outputMemory

xmlwriter_output_memory

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::outputMemory -- xmlwriter_output_memory — Returns current buffer

Descrição

Estilo orientado a objetos

public XMLWriter::outputMemory(bool $flush = true): string

Estilo procedural

xmlwriter_output_memory(XMLWriter $writer, bool $flush = true): string

Returns the current buffer.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

flush

Whether to flush the output buffer or not. Default is true.

Valor Retornado

Returns the current buffer as a string.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::flush() - Flush current buffer


Toggle indentation on/off

  • « XMLWriter::outputMemory
  • XMLWriter::setIndentString »
  • PHP Manual
  • XMLWriter
  • Toggle indentation on/off

XMLWriter::setIndent

xmlwriter_set_indent

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndent -- xmlwriter_set_indent — Toggle indentation on/off

Descrição

Estilo orientado a objetos

public XMLWriter::setIndent(bool $enable): bool

Estilo procedural

xmlwriter_set_indent(XMLWriter $writer, bool $enable): bool

Toggles indentation on or off.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

enable

Whether indentation is enabled.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 XMLWriter::setIndent() and mixed Content

Enabling indentation is not suitable for mixed content, because the indent string is also inserted before inline elements.

<?php
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(2);
$writer->startDocument();
$writer->startElement('p');
$writer->text('before');
$writer->writeElement('a', 'element');
$writer->text('after');
$writer->endElement();
$writer->endDocument();
echo $writer->outputMemory();
?>

O exemplo acima produzirá:

<?xml version="1.0"?>
<p>before <a>element</a>
after</p>

Notas

Nota:

The indent is reset when an xmlwriter is opened.

Veja Também

  • XMLWriter::setIndentString() - Set string used for indenting


Set string used for indenting

  • « XMLWriter::setIndent
  • XMLWriter::startAttribute »
  • PHP Manual
  • XMLWriter
  • Set string used for indenting

XMLWriter::setIndentString

xmlwriter_set_indent_string

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentString -- xmlwriter_set_indent_string — Set string used for indenting

Descrição

Estilo orientado a objetos

public XMLWriter::setIndentString(string $indentation): bool

Estilo procedural

xmlwriter_set_indent_string(XMLWriter $writer, string $indentation): bool

Sets the string which will be used to indent each element/attribute of the resulting xml.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

indentation

The indentation string.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Notas

Nota:

The indent is reset when an xmlwriter is opened.

Veja Também

  • XMLWriter::setIndent() - Toggle indentation on/off


Create start attribute

  • « XMLWriter::setIndentString
  • XMLWriter::startAttributeNs »
  • PHP Manual
  • XMLWriter
  • Create start attribute

XMLWriter::startAttribute

xmlwriter_start_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttribute -- xmlwriter_start_attribute — Create start attribute

Descrição

Estilo orientado a objetos

public XMLWriter::startAttribute(string $name): bool

Estilo procedural

xmlwriter_start_attribute(XMLWriter $writer, string $name): bool

Starts an attribute.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

name

The attribute name.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Basic XMLWriter::startAttribute() Usage

<?php
$writer = new XMLWriter;
$writer->openURI('php://output');
$writer->startDocument('1.0', 'UTF-8');
$writer->startElement('element');
$writer->startAttribute('attribute');
$writer->text('value');
$writer->endAttribute();
$writer->endElement();
$writer->endDocument();

O exemplo acima produzirá algo semelhante a:

<?xml version="1.0" encoding="UTF-8"?>
<element attribute="value"/>

Veja Também

  • XMLWriter::startAttributeNs() - Create start namespaced attribute
  • XMLWriter::endAttribute() - End attribute
  • XMLWriter::writeAttribute() - Write full attribute
  • XMLWriter::writeAttributeNs() - Write full namespaced attribute


Create start namespaced attribute

  • « XMLWriter::startAttribute
  • XMLWriter::startCdata »
  • PHP Manual
  • XMLWriter
  • Create start namespaced attribute

XMLWriter::startAttributeNs

xmlwriter_start_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeNs -- xmlwriter_start_attribute_ns — Create start namespaced attribute

Descrição

Estilo orientado a objetos

public XMLWriter::startAttributeNs(?string $prefix, string $name, ?string $namespace): bool

Estilo procedural

xmlwriter_start_attribute_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace
): bool

Starts a namespaced attribute.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

The namespace prefix.

name

The attribute name.

namespace

The namespace URI. If namespace is null, the namespace declaration will be omitted.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.
8.0.0 | prefix is nullable now.

Veja Também

  • XMLWriter::startAttribute() - Create start attribute
  • XMLWriter::endAttribute() - End attribute
  • XMLWriter::writeAttribute() - Write full attribute
  • XMLWriter::writeAttributeNs() - Write full namespaced attribute


Create start CDATA tag

  • « XMLWriter::startAttributeNs
  • XMLWriter::startComment »
  • PHP Manual
  • XMLWriter
  • Create start CDATA tag

XMLWriter::startCdata

xmlwriter_start_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startCdata -- xmlwriter_start_cdata — Create start CDATA tag

Descrição

Estilo orientado a objetos

public XMLWriter::startCdata(): bool

Estilo procedural

xmlwriter_start_cdata(XMLWriter $writer): bool

Starts a CDATA.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endCdata() - End current CDATA
  • XMLWriter::writeCdata() - Write full CDATA tag


Create start comment

  • « XMLWriter::startCdata
  • XMLWriter::startDocument »
  • PHP Manual
  • XMLWriter
  • Create start comment

XMLWriter::startComment

xmlwriter_start_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::startComment -- xmlwriter_start_comment — Create start comment

Descrição

Estilo orientado a objetos

public XMLWriter::startComment(): bool

Estilo procedural

xmlwriter_start_comment(XMLWriter $writer): bool

Starts a comment.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endComment() - Create end comment
  • XMLWriter::writeComment() - Write full comment tag


Create document tag

  • « XMLWriter::startComment
  • XMLWriter::startDtd »
  • PHP Manual
  • XMLWriter
  • Create document tag

XMLWriter::startDocument

xmlwriter_start_document

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDocument -- xmlwriter_start_document — Create document tag

Descrição

Estilo orientado a objetos

public XMLWriter::startDocument(?string $version = "1.0", ?string $encoding = null, ?string $standalone = null): bool

Estilo procedural

xmlwriter_start_document(
XMLWriter $writer,
?string $version = "1.0",
?string $encoding = null,
?string $standalone = null
): bool

Starts a document.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

version

The version number of the document as part of the XML declaration.

encoding

The encoding of the document as part of the XML declaration.

standalone

yes or no.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endDocument() - End current document


Create start DTD tag

  • « XMLWriter::startDocument
  • XMLWriter::startDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Create start DTD tag

XMLWriter::startDtd

xmlwriter_start_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtd -- xmlwriter_start_dtd — Create start DTD tag

Descrição

Estilo orientado a objetos

public XMLWriter::startDtd(string $qualifiedName, ?string $publicId = null, ?string $systemId = null): bool

Estilo procedural

xmlwriter_start_dtd(
XMLWriter $writer,
string $qualifiedName,
?string $publicId = null,
?string $systemId = null
): bool

Starts a DTD.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

qualifiedName

The qualified name of the document type to create.

publicId

The external subset public identifier.

systemId

The external subset system identifier.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endDtd() - End current DTD
  • XMLWriter::writeDtd() - Write full DTD tag


Create start DTD AttList

  • « XMLWriter::startDtd
  • XMLWriter::startDtdElement »
  • PHP Manual
  • XMLWriter
  • Create start DTD AttList

XMLWriter::startDtdAttlist

xmlwriter_start_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdAttlist -- xmlwriter_start_dtd_attlist — Create start DTD AttList

Descrição

Estilo orientado a objetos

public XMLWriter::startDtdAttlist(string $name): bool

Estilo procedural

xmlwriter_start_dtd_attlist(XMLWriter $writer, string $name): bool

Starts a DTD attribute list.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

name

The attribute list name.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endDtdAttlist() - End current DTD AttList
  • XMLWriter::writeDtdAttlist() - Write full DTD AttList tag


Create start DTD element

  • « XMLWriter::startDtdAttlist
  • XMLWriter::startDtdEntity »
  • PHP Manual
  • XMLWriter
  • Create start DTD element

XMLWriter::startDtdElement

xmlwriter_start_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdElement -- xmlwriter_start_dtd_element — Create start DTD element

Descrição

Estilo orientado a objetos

public XMLWriter::startDtdElement(string $qualifiedName): bool

Estilo procedural

xmlwriter_start_dtd_element(XMLWriter $writer, string $qualifiedName): bool

Starts a DTD element.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

qualifiedName

The qualified name of the document type to create.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endDtdElement() - End current DTD element
  • XMLWriter::writeDtdElement() - Write full DTD element tag


Create start DTD Entity

  • « XMLWriter::startDtdElement
  • XMLWriter::startElement »
  • PHP Manual
  • XMLWriter
  • Create start DTD Entity

XMLWriter::startDtdEntity

xmlwriter_start_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdEntity -- xmlwriter_start_dtd_entity — Create start DTD Entity

Descrição

Estilo orientado a objetos

public XMLWriter::startDtdEntity(string $name, bool $isParam): bool

Estilo procedural

xmlwriter_start_dtd_entity(XMLWriter $writer, string $name, bool $isParam): bool

Starts a DTD entity.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

name

The name of the entity.

isParam

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endDtdEntity() - End current DTD Entity
  • XMLWriter::writeDtdEntity() - Write full DTD Entity tag


Create start element tag

  • « XMLWriter::startDtdEntity
  • XMLWriter::startElementNs »
  • PHP Manual
  • XMLWriter
  • Create start element tag

XMLWriter::startElement

xmlwriter_start_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startElement -- xmlwriter_start_element — Create start element tag

Descrição

Estilo orientado a objetos

public XMLWriter::startElement(string $name): bool

Estilo procedural

xmlwriter_start_element(XMLWriter $writer, string $name): bool

Starts an element.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

name

The element name.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endElement() - End current element
  • XMLWriter::writeElement() - Write full element tag


Create start namespaced element tag

  • « XMLWriter::startElement
  • XMLWriter::startPi »
  • PHP Manual
  • XMLWriter
  • Create start namespaced element tag

XMLWriter::startElementNs

xmlwriter_start_element_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startElementNs -- xmlwriter_start_element_ns — Create start namespaced element tag

Descrição

Estilo orientado a objetos

public XMLWriter::startElementNs(?string $prefix, string $name, ?string $namespace): bool

Estilo procedural

xmlwriter_start_element_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace
): bool

Starts a namespaced element.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

The namespace prefix. If prefix is null, the namespace will be omitted.

name

The element name.

namespace

The namespace URI. If namespace is null, the namespace declaration will be omitted.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endElement() - End current element
  • XMLWriter::writeElementNs() - Write full namespaced element tag


Create start PI tag

  • « XMLWriter::startElementNs
  • XMLWriter::text »
  • PHP Manual
  • XMLWriter
  • Create start PI tag

XMLWriter::startPi

xmlwriter_start_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startPi -- xmlwriter_start_pi — Create start PI tag

Descrição

Estilo orientado a objetos

public XMLWriter::startPi(string $target): bool

Estilo procedural

xmlwriter_start_pi(XMLWriter $writer, string $target): bool

Starts a processing instruction tag.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

target

The target of the processing instruction.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::endPi() - End current PI
  • XMLWriter::writePi() - Writes a PI


Write text

  • « XMLWriter::startPi
  • XMLWriter::writeAttribute »
  • PHP Manual
  • XMLWriter
  • Write text

XMLWriter::text

xmlwriter_text

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::text -- xmlwriter_text — Write text

Descrição

Estilo orientado a objetos

public XMLWriter::text(string $content): bool

Estilo procedural

xmlwriter_text(XMLWriter $writer, string $content): bool

Writes a text.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

content

The contents of the text. The characters <, >, & and " are written as entity references (i.e. &lt;, &gt;, &amp; and &quot;, respectively). All other characters including ' are written literally. To write the special XML characters literally, or to write literal entity references, xmlwriter_write_raw() has to be used.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.


Write full attribute

  • « XMLWriter::text
  • XMLWriter::writeAttributeNs »
  • PHP Manual
  • XMLWriter
  • Write full attribute

XMLWriter::writeAttribute

xmlwriter_write_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttribute -- xmlwriter_write_attribute — Write full attribute

Descrição

Estilo orientado a objetos

public XMLWriter::writeAttribute(string $name, string $value): bool

Estilo procedural

xmlwriter_write_attribute(XMLWriter $writer, string $name, string $value): bool

Writes a full attribute.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

name

The name of the attribute.

value

The value of the attribute.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Intermixing Sub-elements and Attributes

If writing sub-elements and attributes is intermixed, any attempt to write attributes after the first sub-element will fail and return false.

<?php
$xml = new XMLWriter();
$xml->openMemory();

$xml->startElement('element');
$xml->writeAttribute('attr1', '0');
$xml->writeElement('subelem', '0');
var_dump($xml->writeAttribute('attr2', '0'));
$xml->endElement();

echo $xml->flush();
?>

O exemplo acima produzirá:

bool(false)
<element attr1="0"><subelem>0</subelem></element>

Veja Também

  • XMLWriter::writeAttributeNs() - Write full namespaced attribute
  • XMLWriter::startAttribute() - Create start attribute
  • XMLWriter::startAttributeNs() - Create start namespaced attribute
  • XMLWriter::endAttribute() - End attribute


Write full namespaced attribute

  • « XMLWriter::writeAttribute
  • XMLWriter::writeCdata »
  • PHP Manual
  • XMLWriter
  • Write full namespaced attribute

XMLWriter::writeAttributeNs

xmlwriter_write_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeNs -- xmlwriter_write_attribute_ns — Write full namespaced attribute

Descrição

Estilo orientado a objetos

public XMLWriter::writeAttributeNs(
?string $prefix,
string $name,
?string $namespace,
string $value
): bool

Estilo procedural

xmlwriter_write_attribute_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace,
string $value
): bool

Writes a full namespaced attribute.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

The namespace prefix. If prefix is null, the namespace will be omitted.

name

The attribute name.

namespace

The namespace URI. If namespace is null, the namespace declaration will be omitted.

value

The attribute value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::writeAttribute() - Write full attribute
  • XMLWriter::startAttribute() - Create start attribute
  • XMLWriter::startAttributeNs() - Create start namespaced attribute
  • XMLWriter::endAttribute() - End attribute


Write full CDATA tag

  • « XMLWriter::writeAttributeNs
  • XMLWriter::writeComment »
  • PHP Manual
  • XMLWriter
  • Write full CDATA tag

XMLWriter::writeCdata

xmlwriter_write_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCdata -- xmlwriter_write_cdata — Write full CDATA tag

Descrição

Estilo orientado a objetos

public XMLWriter::writeCdata(string $content): bool

Estilo procedural

xmlwriter_write_cdata(XMLWriter $writer, string $content): bool

Writes a full CDATA.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

content

The contents of the CDATA.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Basic xmlwriter_write_cdata() Usage

<?php
// set up the document
$xml = new XmlWriter();
$xml->openMemory();
$xml->setIndent(true);
$xml->startDocument('1.0', 'UTF-8');
$xml->startElement('mydoc');
$xml->startElement('myele');

// CData output
$xml->startElement('mycdataelement');
$xml->writeCData("text for inclusion as CData");
$xml->endElement();

// end the document and output
$xml->endElement();
$xml->endElement();
echo $xml->outputMemory(true);
?>

O exemplo acima produzirá:

<mydoc>
 <myele>
  <mycdataelement><![CDATA[text for inclusion as CData]?]></mycdataelement>
 </myele>
</mydoc>

Veja Também

  • XMLWriter::startCdata() - Create start CDATA tag
  • XMLWriter::endCdata() - End current CDATA


Write full comment tag

  • « XMLWriter::writeCdata
  • XMLWriter::writeDtd »
  • PHP Manual
  • XMLWriter
  • Write full comment tag

XMLWriter::writeComment

xmlwriter_write_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeComment -- xmlwriter_write_comment — Write full comment tag

Descrição

Estilo orientado a objetos

public XMLWriter::writeComment(string $content): bool

Estilo procedural

xmlwriter_write_comment(XMLWriter $writer, string $content): bool

Writes a full comment.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

content

The contents of the comment.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startComment() - Create start comment
  • XMLWriter::endComment() - Create end comment


Write full DTD tag

  • « XMLWriter::writeComment
  • XMLWriter::writeDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Write full DTD tag

XMLWriter::writeDtd

xmlwriter_write_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtd -- xmlwriter_write_dtd — Write full DTD tag

Descrição

Estilo orientado a objetos

public XMLWriter::writeDtd(
string $name,
?string $publicId = null,
?string $systemId = null,
?string $content = null
): bool

Estilo procedural

xmlwriter_write_dtd(
XMLWriter $writer,
string $name,
?string $publicId = null,
?string $systemId = null,
?string $content = null
): bool

Writes a full DTD.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

name

The DTD name.

publicId

The external subset public identifier.

systemId

The external subset system identifier.

content

The content of the DTD.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startDtd() - Create start DTD tag
  • XMLWriter::endDtd() - End current DTD


Write full DTD AttList tag

  • « XMLWriter::writeDtd
  • XMLWriter::writeDtdElement »
  • PHP Manual
  • XMLWriter
  • Write full DTD AttList tag

XMLWriter::writeDtdAttlist

xmlwriter_write_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdAttlist -- xmlwriter_write_dtd_attlist — Write full DTD AttList tag

Descrição

Estilo orientado a objetos

public XMLWriter::writeDtdAttlist(string $name, string $content): bool

Estilo procedural

xmlwriter_write_dtd_attlist(XMLWriter $writer, string $name, string $content): bool

Writes a DTD attribute list.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

name

The name of the DTD attribute list.

content

The content of the DTD attribute list.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startDtdAttlist() - Create start DTD AttList
  • XMLWriter::endDtdAttlist() - End current DTD AttList


Write full DTD element tag

  • « XMLWriter::writeDtdAttlist
  • XMLWriter::writeDtdEntity »
  • PHP Manual
  • XMLWriter
  • Write full DTD element tag

XMLWriter::writeDtdElement

xmlwriter_write_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdElement -- xmlwriter_write_dtd_element — Write full DTD element tag

Descrição

Estilo orientado a objetos

public XMLWriter::writeDtdElement(string $name, string $content): bool

Estilo procedural

xmlwriter_write_dtd_element(XMLWriter $writer, string $name, string $content): bool

Writes a full DTD element.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

name

The name of the DTD element.

content

The content of the element.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startDtdElement() - Create start DTD element
  • XMLWriter::endDtdElement() - End current DTD element


Write full DTD Entity tag

  • « XMLWriter::writeDtdElement
  • XMLWriter::writeElement »
  • PHP Manual
  • XMLWriter
  • Write full DTD Entity tag

XMLWriter::writeDtdEntity

xmlwriter_write_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdEntity -- xmlwriter_write_dtd_entity — Write full DTD Entity tag

Descrição

Estilo orientado a objetos

public XMLWriter::writeDtdEntity(
string $name,
string $content,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool

Estilo procedural

xmlwriter_write_dtd_entity(
XMLWriter $writer,
string $name,
string $content,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool

Writes a full DTD entity.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

name

The name of the entity.

content

The content of the entity.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.
8.0.0 | publicId, systemId and notationData are nullable now.

Veja Também

  • XMLWriter::startDtdEntity() - Create start DTD Entity
  • XMLWriter::endDtdEntity() - End current DTD Entity


Write full element tag

  • « XMLWriter::writeDtdEntity
  • XMLWriter::writeElementNs »
  • PHP Manual
  • XMLWriter
  • Write full element tag

XMLWriter::writeElement

xmlwriter_write_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElement -- xmlwriter_write_element — Write full element tag

Descrição

Estilo orientado a objetos

public XMLWriter::writeElement(string $name, ?string $content = null): bool

Estilo procedural

xmlwriter_write_element(XMLWriter $writer, string $name, ?string $content = null): bool

Writes a full element tag.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

name

The element name.

content

The element contents.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startElement() - Create start element tag
  • XMLWriter::endElement() - End current element
  • XMLWriter::writeElementNs() - Write full namespaced element tag


Write full namespaced element tag

  • « XMLWriter::writeElement
  • XMLWriter::writePi »
  • PHP Manual
  • XMLWriter
  • Write full namespaced element tag

XMLWriter::writeElementNs

xmlwriter_write_element_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementNs -- xmlwriter_write_element_ns — Write full namespaced element tag

Descrição

Estilo orientado a objetos

public XMLWriter::writeElementNs(
?string $prefix,
string $name,
?string $namespace,
?string $content = null
): bool

Estilo procedural

xmlwriter_write_element_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace,
?string $content = null
): bool

Writes a full namespaced element tag.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

The namespace prefix. If prefix is null, the namespace will be omitted.

name

The element name.

namespace

The namespace URI. If namespace is null, the namespace declaration will be omitted.

content

The element contents.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startElementNs() - Create start namespaced element tag
  • XMLWriter::endElement() - End current element
  • XMLWriter::writeElement() - Write full element tag


Writes a PI

  • « XMLWriter::writeElementNs
  • XMLWriter::writeRaw »
  • PHP Manual
  • XMLWriter
  • Writes a PI

XMLWriter::writePi

xmlwriter_write_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writePi -- xmlwriter_write_pi — Writes a PI

Descrição

Estilo orientado a objetos

public XMLWriter::writePi(string $target, string $content): bool

Estilo procedural

xmlwriter_write_pi(XMLWriter $writer, string $target, string $content): bool

Writes a processing instruction.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

target

The target of the processing instruction.

content

The content of the processing instruction.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::startPi() - Create start PI tag
  • XMLWriter::endPi() - End current PI


Write a raw XML text

  • « XMLWriter::writePi
  • XSL »
  • PHP Manual
  • XMLWriter
  • Write a raw XML text

XMLWriter::writeRaw

xmlwriter_write_raw

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL xmlwriter >= 2.0.4)

XMLWriter::writeRaw -- xmlwriter_write_raw — Write a raw XML text

Descrição

Estilo orientado a objetos

public XMLWriter::writeRaw(string $content): bool

Estilo procedural

xmlwriter_write_raw(XMLWriter $writer, string $content): bool

Writes a raw xml text.

Parâmetros

writer

Apenas para chamadas procedurais. A instância de XMLWriter que está sendo modificada. Este objeto é retornado de uma chamada a xmlwriter_open_uri() ou xmlwriter_open_memory().

content

The text string to write.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão | Descrição
8.0.0 | O parâmetro writer agora espera uma instância de XMLWriter; anteriormente, um resource era esperado.

Veja Também

  • XMLWriter::text() - Write text


XSL

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
    • Configurações em Execução
    • Tipos de Recurso
  • Constantes pré-definidas
  • Exemplos
    • Arquivos de exemplo collection.xml e collection.xsl
    • Tratamento de erros com funções de tratamento de erros libxml
  • XSLTProcessor — A classe XSLTProcessor
    • XSLTProcessor::__construct — Cria um novo objeto XSLTProcessor
    • XSLTProcessor::getParameter — Obtém o valor de um parâmetro
    • XSLTProcessor::getSecurityPrefs — Obtém as preferências de segurança
    • XSLTProcessor::hasExsltSupport — Verifica se o PHP tem suporte a EXSLT
    • XSLTProcessor::importStylesheet — Importa folha de estilos
    • XSLTProcessor::registerPHPFunctions — Habilita o uso de funções do PHP como funções XSLT
    • XSLTProcessor::removeParameter — Remove parâmetro
    • XSLTProcessor::setParameter — Define um valor para um parâmetro
    • XSLTProcessor::setProfiling — Define o arquivo de saída de perfil
    • XSLTProcessor::setSecurityPrefs — Define preferências de segurança
    • XSLTProcessor::transformToDoc — Transforma em um documento
    • XSLTProcessor::transformToURI — Transforma em URI
    • XSLTProcessor::transformToXml — Transforma em XML


Introdução

A extensão XSL implementa o padrão XSL, executando » transformações XSLT usando a » biblioteca libxslt


Dependências

Esta extensão requer a extensão PHP libxml. Isso significa que ao compilar o PHP é preciso passar a flag de configuração --with-libxml, ou antes do PHP 7.4, --enable-libxml, embora isso seja feito implicitamente pois a libxml está habilitada por padrão.

Esta extensão usa libxslt que pode ser encontrada em » http://xmlsoft.org/XSLT/. Versão da libxslt 1.1.0 ou maior é requerido.


Instalação

PHP inclue a extensão XSL por padrão e pode ser habilitada adicionando o argumento --with-xsl[=DIR] na linha de configuração DIR sendo o diretório da instalação da libxslt.


Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e só estarão disponíveis quando a extensão tiver sido compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução.

XSL_CLONE_AUTO (int)
XSL_CLONE_NEVER (int)
XSL_CLONE_ALWAYS (int)
LIBXSLT_VERSION (int)
Versão da libxslt como 10117.
LIBXSLT_DOTTED_VERSION (string)
Versão da libxslt como 1.1.17.
LIBEXSLT_VERSION (int)
Versão da libexslt como 813.
LIBEXSLT_DOTTED_VERSION (string)
Versão da libexslt com 1.1.17.
XSL_SECPREF_NONE (int)
Desativa todas as restrições de segurança.
XSL_SECPREF_READ_FILE (int)
Não permite a leitura de arquivos.
XSL_SECPREF_WRITE_FILE (int)
Não permite gravação de arquivos.
XSL_SECPREF_CREATE_DIRECTORY (int)
Não permite a criação de diretórios.
XSL_SECPREF_READ_NETWORK (int)
Não permite a leitura de arquivos de rede.
XSL_SECPREF_WRITE_NETWORK (int)
Não permite a gravação de arquivos de rede.
XSL_SECPREF_DEFAULT (int)
Proíbe todo acesso de gravação, ou seja, uma máscara de bits de XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE.


Exemplos

Índice

  • Arquivos de exemplo collection.xml e collection.xsl
  • Tratamento de erros com funções de tratamento de erros libxml


Arquivos de exemplo collection.xml e collection.xsl

Muitos exemplos nesta referência requerem um arquivo XML e um XSL. Serão usados os arquivos collection.xml e collection.xsl que contêm o seguinte:

Exemplo #1 collection.xml

<collection>
 <cd>
  <title>Fight for your mind</title>
  <artist>Ben Harper</artist>
  <year>1995</year>
 </cd>
 <cd>
  <title>Electric Ladyland</title>
  <artist>Jimi Hendrix</artist>
  <year>1997</year>
 </cd>
</collection>

Exemplo #2 collection.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to <xsl:value-of select="$owner"/>'s sweet CD collection!
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2>
  <hr />
 </xsl:template>
</xsl:stylesheet>


Tratamento de erros com funções de tratamento de erros libxml

libxml oferece uma série de funções para tratamento de erros, que podem ser empregadas para capturar e lidar com erros no processamento XSLT.

Exemplo #1 fruits.xml

Um arquivo XML válido.

<fruits>
 <fruit>Apple</fruit>
 <fruit>Banana</fruit>
 <fruit>Cherry</fruit>
</fruits>

Exemplo #2 fruits.xsl

Contém uma expressão de seleção inválida.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="utf-8" indent="no"/>
 <xsl:template match="fruits">
  <ul>
   <xsl:apply-templates/>
  </ul>
 </xsl:template>
 <xsl:template match="fruit">
  <li><xsl:value-of select="THIS IS A DELIBERATE ERROR!"/></li>
 </xsl:template>
</xsl:stylesheet>

Exemplo #3 Erros de agrupamento e impressão

O exemplo abaixo captura e exibe erros de libxml gerados ao chamar XSLTProcessor::importStyleSheet() com uma folha de estilo contendo um erro.

<?php

$xmldoc = new DOMDocument();
$xsldoc = new DOMDocument();
$xsl = new XSLTProcessor();

$xmldoc->loadXML('fruits.xml');
$xsldoc->loadXML('fruits.xsl');

libxml_use_internal_errors(true);
$result = $xsl->importStyleSheet($xsldoc);
if (!$result) {
foreach (libxml_get_errors() as $error) {
echo "Libxml error: {$error->message}\n";
}
}
libxml_use_internal_errors(false);

if ($result) {
echo $xsl->transformToXML($xmldoc);
}

?>

O exemplo acima produzirá algo semelhante a:

Libxml error: Invalid expression

Libxml error: compilation error: file fruits.xsl line 9 element value-of
Libxml error: xsl:value-of : could not compile select expression 'THIS IS A DELIBERATE ERROR!'


A classe XSLTProcessor

(PHP 5, PHP 7, PHP 8)

Introdução

Resumo da classe

class XSLTProcessor {
/* Métodos */
public getParameter(string $namespace, string $name): string|false
public getSecurityPrefs(): int
public hasExsltSupport(): bool
public importStylesheet(object $stylesheet): bool
public registerPHPFunctions(array|string|null $functions = null): void
public removeParameter(string $namespace, string $name): bool
public setParameter(string $namespace, string $name, string $value): bool
public setParameter(string $namespace, array $options): bool
public setProfiling(?string $filename): true
public setSecurityPrefs(int $preferences): int
public transformToDoc(object $document, ?string $returnClass = null): object|false
public transformToUri(object $document, string $uri): int
public transformToXml(object $document): string|null|false
}

Índice

  • XSLTProcessor::__construct — Cria um novo objeto XSLTProcessor
  • XSLTProcessor::getParameter — Obtém o valor de um parâmetro
  • XSLTProcessor::getSecurityPrefs — Obtém as preferências de segurança
  • XSLTProcessor::hasExsltSupport — Verifica se o PHP tem suporte a EXSLT
  • XSLTProcessor::importStylesheet — Importa folha de estilos
  • XSLTProcessor::registerPHPFunctions — Habilita o uso de funções do PHP como funções XSLT
  • XSLTProcessor::removeParameter — Remove parâmetro
  • XSLTProcessor::setParameter — Define um valor para um parâmetro
  • XSLTProcessor::setProfiling — Define o arquivo de saída de perfil
  • XSLTProcessor::setSecurityPrefs — Define preferências de segurança
  • XSLTProcessor::transformToDoc — Transforma em um documento
  • XSLTProcessor::transformToURI — Transforma em URI
  • XSLTProcessor::transformToXml — Transforma em XML


Cria um novo objeto XSLTProcessor

  • « XSLTProcessor
  • XSLTProcessor::getParameter »
  • PHP Manual
  • XSLTProcessor
  • Cria um novo objeto XSLTProcessor

XSLTProcessor::__construct

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::__construct — Cria um novo objeto XSLTProcessor

Descrição

XSLTProcessor::__construct()

Cria um novo objeto XSLTProcessor.

Parâmetros

Esta função não possui parâmetros.

Exemplos

Exemplo #1 Criando um XSLTProcessor

<?php

$xsldoc = new DOMDocument();
$xsldoc->load($xsl_filename);

$xmldoc = new DOMDocument();
$xmldoc->load($xml_filename);

$xsl = new XSLTProcessor();
$xsl->importStyleSheet($xsldoc);
echo $xsl->transformToXML($xmldoc);

?>


Obtém o valor de um parâmetro

  • « XSLTProcessor::__construct
  • XSLTProcessor::getSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Obtém o valor de um parâmetro

XSLTProcessor::getParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::getParameter — Obtém o valor de um parâmetro

Descrição

public XSLTProcessor::getParameter(string $namespace, string $name): string|false

Obtém um parâmetro se anteriormente definido por XSLTProcessor::setParameter().

Parâmetros

namespace

O namespace URI do parâmetro XSLT.

name

O nome local do parâmetro XSLT.

Valor Retornado

O valor do parâmetro (em string), ou false se não estiver definido.

Veja Também

  • XSLTProcessor::setParameter() - Define um valor para um parâmetro
  • XSLTProcessor::removeParameter() - Remove parâmetro


Obtém as preferências de segurança

  • « XSLTProcessor::getParameter
  • XSLTProcessor::hasExsltSupport »
  • PHP Manual
  • XSLTProcessor
  • Obtém as preferências de segurança

XSLTProcessor::getSecurityPrefs

(PHP >= 5.4.0, PHP 7, PHP 8)

XSLTProcessor::getSecurityPrefs — Obtém as preferências de segurança

Descrição

public XSLTProcessor::getSecurityPrefs(): int

Obtém as preferências de segurança.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Uma máscara de bits consistindo da combinação de XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK e XSL_SECPREF_WRITE_NETWORK.


Verifica se o PHP tem suporte a EXSLT

  • « XSLTProcessor::getSecurityPrefs
  • XSLTProcessor::importStylesheet »
  • PHP Manual
  • XSLTProcessor
  • Verifica se o PHP tem suporte a EXSLT

XSLTProcessor::hasExsltSupport

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

XSLTProcessor::hasExsltSupport — Verifica se o PHP tem suporte a EXSLT

Descrição

public XSLTProcessor::hasExsltSupport(): bool

Este método verifica se o PHP foi construído com a » biblioteca EXSLT.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Testando o suporte a EXSLT

<?php

$proc = new XSLTProcessor;
if (!$proc->hasExsltSupport()) {
die('EXSLT support not available');
}

// trabalhar com EXSLT a partir daqui ..

?>


Importa folha de estilos

  • « XSLTProcessor::hasExsltSupport
  • XSLTProcessor::registerPHPFunctions »
  • PHP Manual
  • XSLTProcessor
  • Importa folha de estilos

XSLTProcessor::importStylesheet

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::importStylesheet — Importa folha de estilos

Descrição

public XSLTProcessor::importStylesheet(object $stylesheet): bool

Este método importa a folha de estilos no XSLTProcessor para transformações.

Parâmetros

stylesheet

A folha de estilos importada como um objeto DOMDocument ou SimpleXMLElement.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.


Habilita o uso de funções do PHP como funções XSLT

  • « XSLTProcessor::importStylesheet
  • XSLTProcessor::removeParameter »
  • PHP Manual
  • XSLTProcessor
  • Habilita o uso de funções do PHP como funções XSLT

XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

XSLTProcessor::registerPHPFunctions — Habilita o uso de funções do PHP como funções XSLT

Descrição

public XSLTProcessor::registerPHPFunctions(array|string|null $functions = null): void

Este método habilita o uso de funções PHP como funções XSLT nas folhas de estilo XSL.

Parâmetros

functions

Use este parâmetro para permitir que apenas certas funções sejam chamadas a partir do XSLT.

Este parâmetro pode ser uma string (nome de função) ou um array de funções.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Simples chamada de função do PHP a partir de uma folha de estilos

<?php
$xml = <<<EOB
<allusers>
<user>
<uid>bob</uid>
</user>
<user>
<uid>joe</uid>
</user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="allusers">
<html><body>
<h2>Users</h2>
<table>
<xsl:for-each select="user">
<tr><td>
<xsl:value-of
select="php:function('ucfirst',string(uid))"/>
</td></tr>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc = new DOMDocument();
$xmldoc->loadXML($xml);
$xsldoc = new DOMDocument();
$xsldoc->loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>


Remove parâmetro

  • « XSLTProcessor::registerPHPFunctions
  • XSLTProcessor::setParameter »
  • PHP Manual
  • XSLTProcessor
  • Remove parâmetro

XSLTProcessor::removeParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::removeParameter — Remove parâmetro

Descrição

public XSLTProcessor::removeParameter(string $namespace, string $name): bool

Remove um parâmetro, se definido. Isto irá fazer o processador usar o valor padrão para o parâmetro como especificado no stylesheet.

Parâmetros

namespace

A URI de espaço de nomes do parâmetro XSLT.

name

O nome local do parâmetro XSLT.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Veja Também

  • XSLTProcessor::setParameter() - Define um valor para um parâmetro
  • XSLTProcessor::getParameter() - Obtém o valor de um parâmetro


Define um valor para um parâmetro

  • « XSLTProcessor::removeParameter
  • XSLTProcessor::setProfiling »
  • PHP Manual
  • XSLTProcessor
  • Define um valor para um parâmetro

XSLTProcessor::setParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::setParameter — Define um valor para um parâmetro

Descrição

public XSLTProcessor::setParameter(string $namespace, string $name, string $value): bool
public XSLTProcessor::setParameter(string $namespace, array $options): bool

Define o valor para um ou mais parâmetros para ser usados em transformações subsequentes com XSLTProcessor. Se o parâmetro não existir na folha de estilos, ele será ignorado.

Parâmetros

namespace

A URI de espaço de nomes do parâmetro XSLT.

name

O nome local do parâmetro XSLT.

value

O novo valor do parâmetro XSLT.

options

Um array de pares name => value.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Modificando o parâmetro 'owner' antes da transformação

<?php

$collections = array(
'Marc Rutkowski' => 'marc',
'Olivier Parmentier' => 'olivier'
);

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configura o transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // anexa as regras xsl

foreach ($collections as $name => $file) {
// Carrega a fonte XML
$xml = new DOMDocument;
$xml->load('collection_' . $file . '.xml');

$proc->setParameter('', 'owner', $name);
$proc->transformToURI($xml, 'file:///tmp/' . $file . '.html');
}

?>

Veja Também

  • XSLTProcessor::getParameter() - Obtém o valor de um parâmetro
  • XSLTProcessor::removeParameter() - Remove parâmetro


Define o arquivo de saída de perfil

  • « XSLTProcessor::setParameter
  • XSLTProcessor::setSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Define o arquivo de saída de perfil

XSLTProcessor::setProfiling

(PHP >= 5.3.0, PHP 7, PHP 8)

XSLTProcessor::setProfiling — Define o arquivo de saída de perfil

Descrição

public XSLTProcessor::setProfiling(?string $filename): true

Define o arquivo para o qual serão gravadas informações de perfil ao processar uma folha de estilos.

Parâmetros

filename

Caminho para o arquivo onde serão gravadas as informações de perfil.

Valor Retornado

Sempre retorna true.

Exemplos

Exemplo #1 Exemplo de saída de perfil

<?php
// Carrega a fonte XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configura o transformador
$proc = new XSLTProcessor;
$proc->setProfiling('profiling.txt');
$proc->importStyleSheet($xsl); // anexa as regras xsl

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>

O código acima produzirá as seguintes informações no arquivo de perfil:

number               match                name      mode  Calls Tot 100us Avg

    0                   cd                                    2      3      1
    1           collection                                    1      1      1

                         Total                                3      4


Define preferências de segurança

  • « XSLTProcessor::setProfiling
  • XSLTProcessor::transformToDoc »
  • PHP Manual
  • XSLTProcessor
  • Define preferências de segurança

XSLTProcessor::setSecurityPrefs

(PHP >= 5.4.0, PHP 7, PHP 8)

XSLTProcessor::setSecurityPrefs — Define preferências de segurança

Descrição

public XSLTProcessor::setSecurityPrefs(int $preferences): int

Define as preferências de segurança.

Parâmetros

preferences

As novas preferências de segurança. As constantes seguidas podem ser unidas pela operação binária OR: XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK e XSL_SECPREF_WRITE_NETWORK. Alternativamente, XSL_SECPREF_NONE ou XSL_SECPREF_DEFAULT podem ser passadas.

Valor Retornado

Retorna as preferências de segurança antigas..


Transforma em um documento

  • « XSLTProcessor::setSecurityPrefs
  • XSLTProcessor::transformToURI »
  • PHP Manual
  • XSLTProcessor
  • Transforma em um documento

XSLTProcessor::transformToDoc

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToDoc — Transforma em um documento

Descrição

public XSLTProcessor::transformToDoc(object $document, ?string $returnClass = null): object|false

Transforma o nó de origem em um documento (ex.: DOMDocument) aplicando a folha de estilos fornecida pelo método XSLTProcessor::importStylesheet().

Parâmetros

document

O objeto DOMDocument, SimpleXMLElement, ou outro compatível com libxml a ser transformado.

returnClass

Este parâmetro opcional pode ser usado para que XSLTProcessor::transformToDoc() retorne um objeto da classe especificada. Esta classe deve estender ou ser da mesma classe de document.

Valor Retornado

O documento resultante ou false em caso de erro.

Exemplos

Exemplo #1 Transformando em um DOMDocument

<?php

// Carrega a fonte XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configura o transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // anexa as regras xsl

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);

?>

O exemplo acima produzirá:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

Veja Também

  • XSLTProcessor::transformToUri() - Transforma em URI
  • XSLTProcessor::transformToXml() - Transforma em XML


Transforma em URI

  • « XSLTProcessor::transformToDoc
  • XSLTProcessor::transformToXml »
  • PHP Manual
  • XSLTProcessor
  • Transforma em URI

XSLTProcessor::transformToURI

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToURI — Transforma em URI

Descrição

public XSLTProcessor::transformToUri(object $document, string $uri): int

Transforma o nó de origem em uma URI aplicando a folha de estilos fornecida pelo método XSLTProcessor::importStylesheet().

Parâmetros

document

O objeto DOMDocument ou SimpleXMLElement a ser transformado.

uri

A URI alvo para a transformação.

Valor Retornado

Retorna o número de bytes escritos ou false se um erro ocorrer.

Exemplos

Exemplo #1 Transformando em um arquivo HTML

<?php

// Carrega a fonte XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configura o transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // anexa as regras xsl

$proc->transformToURI($xml, 'file:///tmp/out.html');

?>

Veja Também

  • XSLTProcessor::transformToDoc() - Transforma em um documento
  • XSLTProcessor::transformToXml() - Transforma em XML


Transforma em XML

  • « XSLTProcessor::transformToURI
  • Extensões GUI »
  • PHP Manual
  • XSLTProcessor
  • Transforma em XML

XSLTProcessor::transformToXml

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToXml — Transforma em XML

Descrição

public XSLTProcessor::transformToXml(object $document): string|null|false

Transforma o nó de origem em uma string aplicando a folha de estilos fornecida pelo método xsltprocessor::importStylesheet().

Parâmetros

document

O objeto DOMDocument ou SimpleXMLElement a ser transformado.

Valor Retornado

O resultado da transformação como uma string ou false em caso de erro.

Exemplos

Exemplo #1 Transformando em uma string

<?php

// Carrega a fonte XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configura o transformador
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // anexa as regras xsl

echo $proc->transformToXML($xml);

?>

O exemplo acima produzirá:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

<h1>Fight for your mind</h1><h2>by Ben Harper - 1995</h2><hr>
<h1>Electric Ladyland</h1><h2>by Jimi Hendrix - 1997</h2><hr>

Veja Também

  • XSLTProcessor::transformToDoc() - Transforma em um documento
  • XSLTProcessor::transformToUri() - Transforma em URI


Extensões GUI

  • UI
    • Introdução
    • Instalação/Configuração
    • UI\Point — Represents a position (x,y)
    • UI\Size — Represents dimensions (width, height)
    • UI\Window — Window
    • UI\Control — Control
    • UI\Menu — Menu
    • UI\MenuItem — Menu Item
    • UI\Area — Area
    • UI\Executor — Execution Scheduler
    • UI\Controls\Tab — Tab Control
    • UI\Controls\Check — Check Control
    • UI\Controls\Button — Button Control
    • UI\Controls\ColorButton — ColorButton Control
    • UI\Controls\Label — Label Control
    • UI\Controls\Entry — Entry Control
    • UI\Controls\MultilineEntry — MultilineEntry Control
    • UI\Controls\Spin — Spin Control
    • UI\Controls\Slider — Slider Control
    • UI\Controls\Progress — Progress Control
    • UI\Controls\Separator — Control Separator
    • UI\Controls\Combo — Combo Control
    • UI\Controls\EditableCombo — EdiableCombo Control
    • UI\Controls\Radio — Radio Control
    • UI\Controls\Picker — Picker Control
    • UI\Controls\Form — Control Form (Arrangement)
    • UI\Controls\Grid — Control Grid (Arrangement)
    • UI\Controls\Group — Control Group (Arrangement)
    • UI\Controls\Box — Control Box (Arrangement)
    • UI\Draw\Pen — Draw Pen
    • UI\Draw\Path — Draw Path
    • UI\Draw\Matrix — Draw Matrix
    • UI\Draw\Color — Color Representation
    • UI\Draw\Stroke — Draw Stroke
    • UI\Draw\Brush — Brushes
    • UI\Draw\Brush\Gradient — Gradient Brushes
    • UI\Draw\Brush\LinearGradient — Linear Gradient
    • UI\Draw\Brush\RadialGradient — Radial Gradient
    • UI\Draw\Text\Layout — Represents Text Layout
    • UI\Draw\Text\Font — Represents a Font
    • UI\Draw\Text\Font\Descriptor — Font Descriptor
    • UI Funções
    • UI\Draw\Text\Font\Weight — Font Weight Settings
    • UI\Draw\Text\Font\Italic — Italic Font Settings
    • UI\Draw\Text\Font\Stretch — Font Stretch Settings
    • UI\Draw\Line\Cap — Line Cap Settings
    • UI\Draw\Line\Join — Line Join Settings
    • UI\Key — Key Identifiers
    • UI\Exception\InvalidArgumentException — InvalidArgumentException
    • UI\Exception\RuntimeException — RuntimeException


UI

  • Introdução
  • Instalação/Configuração
    • Dependências
    • Instalação
  • UI\Point — Represents a position (x,y)
    • UI\Point::at — Size Coercion
    • UI\Point::__construct — Construct a new Point
    • UI\Point::getX — Retrieves X
    • UI\Point::getY — Retrieves Y
    • UI\Point::setX — Set X
    • UI\Point::setY — Set Y
  • UI\Size — Represents dimensions (width, height)
    • UI\Size::__construct — Construct a new Size
    • UI\Size::getHeight — Retrieves Height
    • UI\Size::getWidth — Retrives Width
    • UI\Size::of — Point Coercion
    • UI\Size::setHeight — Set Height
    • UI\Size::setWidth — Set Width
  • UI\Window — Window
    • UI\Window::add — Add a Control
    • UI\Window::__construct — Construct a new Window
    • UI\Window::error — Show Error Box
    • UI\Window::getSize — Get Window Size
    • UI\Window::getTitle — Get Title
    • UI\Window::hasBorders — Border Detection
    • UI\Window::hasMargin — Margin Detection
    • UI\Window::isFullScreen — Full Screen Detection
    • UI\Window::msg — Show Message Box
    • UI\Window::onClosing — Closing Callback
    • UI\Window::open — Open Dialog
    • UI\Window::save — Save Dialog
    • UI\Window::setBorders — Border Use
    • UI\Window::setFullScreen — Full Screen Use
    • UI\Window::setMargin — Margin Use
    • UI\Window::setSize — Set Size
    • UI\Window::setTitle — Window Title
  • UI\Control — Control
    • UI\Control::destroy — Destroy Control
    • UI\Control::disable — Disable Control
    • UI\Control::enable — Enable Control
    • UI\Control::getParent — Get Parent Control
    • UI\Control::getTopLevel — Get Top Level
    • UI\Control::hide — Hide Control
    • UI\Control::isEnabled — Determine if Control is enabled
    • UI\Control::isVisible — Determine if Control is visible
    • UI\Control::setParent — Set Parent Control
    • UI\Control::show — Control Show
  • UI\Menu — Menu
    • UI\Menu::append — Append Menu Item
    • UI\Menu::appendAbout — Append About Menu Item
    • UI\Menu::appendCheck — Append Checkable Menu Item
    • UI\Menu::appendPreferences — Append Preferences Menu Item
    • UI\Menu::appendQuit — Append Quit Menu Item
    • UI\Menu::appendSeparator — Append Menu Item Separator
    • UI\Menu::__construct — Construct a new Menu
  • UI\MenuItem — Menu Item
    • UI\MenuItem::disable — Disable Menu Item
    • UI\MenuItem::enable — Enable Menu Item
    • UI\MenuItem::isChecked — Detect Checked
    • UI\MenuItem::onClick — On Click Callback
    • UI\MenuItem::setChecked — Set Checked
  • UI\Area — Area
    • UI\Area::onDraw — Draw Callback
    • UI\Area::onKey — Key Callback
    • UI\Area::onMouse — Mouse Callback
    • UI\Area::redraw — Redraw Area
    • UI\Area::scrollTo — Area Scroll
    • UI\Area::setSize — Set Size
  • UI\Executor — Execution Scheduler
    • UI\Executor::__construct — Construct a new Executor
    • UI\Executor::kill — Stop Executor
    • UI\Executor::onExecute — Execution Callback
    • UI\Executor::setInterval — Interval Manipulation
  • UI\Controls\Tab — Tab Control
    • UI\Controls\Tab::append — Append Page
    • UI\Controls\Tab::delete — Delete Page
    • UI\Controls\Tab::hasMargin — Margin Detection
    • UI\Controls\Tab::insertAt — Insert Page
    • UI\Controls\Tab::pages — Page Count
    • UI\Controls\Tab::setMargin — Set Margin
  • UI\Controls\Check — Check Control
    • UI\Controls\Check::__construct — Construct a new Check
    • UI\Controls\Check::getText — Get Text
    • UI\Controls\Check::isChecked — Checked Detection
    • UI\Controls\Check::onToggle — Toggle Callback
    • UI\Controls\Check::setChecked — Set Checked
    • UI\Controls\Check::setText — Set Text
  • UI\Controls\Button — Button Control
    • UI\Controls\Button::__construct — Construct a new Button
    • UI\Controls\Button::getText — Get Text
    • UI\Controls\Button::onClick — Click Handler
    • UI\Controls\Button::setText — Set Text
  • UI\Controls\ColorButton — ColorButton Control
    • UI\Controls\ColorButton::getColor — Get Color
    • UI\Controls\ColorButton::onChange — Change Handler
    • UI\Controls\ColorButton::setColor — Set Color
  • UI\Controls\Label — Label Control
    • UI\Controls\Label::__construct — Construct a new Label
    • UI\Controls\Label::getText — Get Text
    • UI\Controls\Label::setText — Set Text
  • UI\Controls\Entry — Entry Control
    • UI\Controls\Entry::__construct — Construct a new Entry
    • UI\Controls\Entry::getText — Get Text
    • UI\Controls\Entry::isReadOnly — Detect Read Only
    • UI\Controls\Entry::onChange — Change Handler
    • UI\Controls\Entry::setReadOnly — Set Read Only
    • UI\Controls\Entry::setText — Set Text
  • UI\Controls\MultilineEntry — MultilineEntry Control
    • UI\Controls\MultilineEntry::append — Append Text
    • UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry
    • UI\Controls\MultilineEntry::getText — Get Text
    • UI\Controls\MultilineEntry::isReadOnly — Read Only Detection
    • UI\Controls\MultilineEntry::onChange — Change Handler
    • UI\Controls\MultilineEntry::setReadOnly — Set Read Only
    • UI\Controls\MultilineEntry::setText — Set Text
  • UI\Controls\Spin — Spin Control
    • UI\Controls\Spin::__construct — Construct a new Spin
    • UI\Controls\Spin::getValue — Get Value
    • UI\Controls\Spin::onChange — Change Handler
    • UI\Controls\Spin::setValue — Set Value
  • UI\Controls\Slider — Slider Control
    • UI\Controls\Slider::__construct — Construct a new Slider
    • UI\Controls\Slider::getValue — Get Value
    • UI\Controls\Slider::onChange — Change Handler
    • UI\Controls\Slider::setValue — Set Value
  • UI\Controls\Progress — Progress Control
    • UI\Controls\Progress::getValue — Get Value
    • UI\Controls\Progress::setValue — Set Value
  • UI\Controls\Separator — Control Separator
    • UI\Controls\Separator::__construct — Construct a new Separator
  • UI\Controls\Combo — Combo Control
    • UI\Controls\Combo::append — Append Option
    • UI\Controls\Combo::getSelected — Get Selected Option
    • UI\Controls\Combo::onSelected — Selected Handler
    • UI\Controls\Combo::setSelected — Set Selected Option
  • UI\Controls\EditableCombo — EdiableCombo Control
    • UI\Controls\EditableCombo::append — Append Option
    • UI\Controls\EditableCombo::getText — Get Text
    • UI\Controls\EditableCombo::onChange — Change Handler
    • UI\Controls\EditableCombo::setText — Set Text
  • UI\Controls\Radio — Radio Control
    • UI\Controls\Radio::append — Append Option
    • UI\Controls\Radio::getSelected — Get Selected Option
    • UI\Controls\Radio::onSelected — Selected Handler
    • UI\Controls\Radio::setSelected — Set Selected Option
  • UI\Controls\Picker — Picker Control
    • UI\Controls\Picker::__construct — Construct a new Picker
  • UI\Controls\Form — Control Form (Arrangement)
    • UI\Controls\Form::append — Append Control
    • UI\Controls\Form::delete — Delete Control
    • UI\Controls\Form::isPadded — Padding Detection
    • UI\Controls\Form::setPadded — Set Padding
  • UI\Controls\Grid — Control Grid (Arrangement)
    • UI\Controls\Grid::append — Append Control
    • UI\Controls\Grid::isPadded — Padding Detection
    • UI\Controls\Grid::setPadded — Set Padding
  • UI\Controls\Group — Control Group (Arrangement)
    • UI\Controls\Group::append — Append Control
    • UI\Controls\Group::__construct — Construct a new Group
    • UI\Controls\Group::getTitle — Get Title
    • UI\Controls\Group::hasMargin — Margin Detection
    • UI\Controls\Group::setMargin — Set Margin
    • UI\Controls\Group::setTitle — Set Title
  • UI\Controls\Box — Control Box (Arrangement)
    • UI\Controls\Box::append — Append Control
    • UI\Controls\Box::__construct — Construct a new Box
    • UI\Controls\Box::delete — Delete Control
    • UI\Controls\Box::getOrientation — Get Orientation
    • UI\Controls\Box::isPadded — Padding Detection
    • UI\Controls\Box::setPadded — Set Padding
  • UI\Draw\Pen — Draw Pen
    • UI\Draw\Pen::clip — Clip a Path
    • UI\Draw\Pen::fill — Fill a Path
    • UI\Draw\Pen::restore — Restore
    • UI\Draw\Pen::save — Save
    • UI\Draw\Pen::stroke — Stroke a Path
    • UI\Draw\Pen::transform — Matrix Transform
    • UI\Draw\Pen::write — Draw Text at Point
  • UI\Draw\Path — Draw Path
    • UI\Draw\Path::addRectangle — Draw a Rectangle
    • UI\Draw\Path::arcTo — Draw an Arc
    • UI\Draw\Path::bezierTo — Draw Bezier Curve
    • UI\Draw\Path::closeFigure — Close Figure
    • UI\Draw\Path::__construct — Construct a new Path
    • UI\Draw\Path::end — Finalize Path
    • UI\Draw\Path::lineTo — Draw a Line
    • UI\Draw\Path::newFigure — Draw Figure
    • UI\Draw\Path::newFigureWithArc — Draw Figure with Arc
  • UI\Draw\Matrix — Draw Matrix
    • UI\Draw\Matrix::invert — Invert Matrix
    • UI\Draw\Matrix::isInvertible — Invertible Detection
    • UI\Draw\Matrix::multiply — Multiply Matrix
    • UI\Draw\Matrix::rotate — Rotate Matrix
    • UI\Draw\Matrix::scale — Scale Matrix
    • UI\Draw\Matrix::skew — Skew Matrix
    • UI\Draw\Matrix::translate — Translate Matrix
  • UI\Draw\Color — Color Representation
    • UI\Draw\Color::__construct — Construct new Color
    • UI\Draw\Color::getChannel — Color Manipulation
    • UI\Draw\Color::setChannel — Color Manipulation
  • UI\Draw\Stroke — Draw Stroke
    • UI\Draw\Stroke::__construct — Construct a new Stroke
    • UI\Draw\Stroke::getCap — Get Line Cap
    • UI\Draw\Stroke::getJoin — Get Line Join
    • UI\Draw\Stroke::getMiterLimit — Get Miter Limit
    • UI\Draw\Stroke::getThickness — Get Thickness
    • UI\Draw\Stroke::setCap — Set Line Cap
    • UI\Draw\Stroke::setJoin — Set Line Join
    • UI\Draw\Stroke::setMiterLimit — Set Miter Limit
    • UI\Draw\Stroke::setThickness — Set Thickness
  • UI\Draw\Brush — Brushes
    • UI\Draw\Brush::__construct — Construct a new Brush
    • UI\Draw\Brush::getColor — Get Color
    • UI\Draw\Brush::setColor — Set Color
  • UI\Draw\Brush\Gradient — Gradient Brushes
    • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop — Stop Manipulation
  • UI\Draw\Brush\LinearGradient — Linear Gradient
    • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient
  • UI\Draw\Brush\RadialGradient — Radial Gradient
    • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient
  • UI\Draw\Text\Layout — Represents Text Layout
    • UI\Draw\Text\Layout::__construct — Construct a new Text Layout
    • UI\Draw\Text\Layout::setColor — Set Color
    • UI\Draw\Text\Layout::setWidth — Set Width
  • UI\Draw\Text\Font — Represents a Font
    • UI\Draw\Text\Font::__construct — Construct a new Font
    • UI\Draw\Text\Font::getAscent — Font Metrics
    • UI\Draw\Text\Font::getDescent — Font Metrics
    • UI\Draw\Text\Font::getLeading — Font Metrics
    • UI\Draw\Text\Font::getUnderlinePosition — Font Metrics
    • UI\Draw\Text\Font::getUnderlineThickness — Font Metrics
  • UI\Draw\Text\Font\Descriptor — Font Descriptor
    • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
    • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection
  • UI Funções
    • UI\Draw\Text\Font\fontFamilies — Retrieve Font Families
    • UI\quit — Quit UI Loop
    • UI\run — Enter UI Loop
  • UI\Draw\Text\Font\Weight — Font Weight Settings
  • UI\Draw\Text\Font\Italic — Italic Font Settings
  • UI\Draw\Text\Font\Stretch — Font Stretch Settings
  • UI\Draw\Line\Cap — Line Cap Settings
  • UI\Draw\Line\Join — Line Join Settings
  • UI\Key — Key Identifiers
  • UI\Exception\InvalidArgumentException — InvalidArgumentException
  • UI\Exception\RuntimeException — RuntimeException


Introdução

This extension wraps libui to provide an OO API for the cross platform development of native look-and-feel user interfaces .


  • « Introdução
  • Dependências »
  • PHP Manual
  • UI
  • Instalação/Configuração

Instalação/Configuração

Índice

  • Dependências
  • Instalação


Dependências

Installation requires the libui library, and PHP 7 or newer.

This extension requires the » libui library version 0.1.0 or higher to be installed. See the libui documentation for a list of prerequisites.


Instalação

Esta extensão » PECL não é distribuída com o PHP.

Informações para instalar esta extensão PECL podem ser encontradas no capítulo Instalação de Extensões PECL do manual. Informações adicionais, como novas versões, downloads, arquivos fontes, informações do mantenedor e um CHANGELOG, podem ser encontradas aqui: » https://pecl.php.net/package/ui.

Binários do Windows (arquivos DLL) para esta extensão PECL estão disponíveis no site do PECL.


Represents a position (x,y)

(UI 0.9.9)

Introdução

Points are used throughout UI to represent co-ordinates on a screen, control, or area.

Resumo da classe

final class UI\Point {
/* Propriedades */
public $x;
public $y;
/* Constructor */
public __construct(float $x, float $y)
/* Métodos */
public static at(float $point): UI\Point
public static at(UI\Size $size): UI\Point
public getX(): float
public getY(): float
public setX(float $point)
public setY(float $point)
}

Propriedades

x

Holds the X co-ordinate, can be read/written directly

y

Holds the Y co-ordinate, can be read/written directly

Índice

  • UI\Point::at — Size Coercion
  • UI\Point::__construct — Construct a new Point
  • UI\Point::getX — Retrieves X
  • UI\Point::getY — Retrieves Y
  • UI\Point::setX — Set X
  • UI\Point::setY — Set Y


Size Coercion

  • « UI\Point
  • UI\Point::__construct »
  • PHP Manual
  • UI\Point
  • Size Coercion

UI\Point::at

(UI 1.0.2)

UI\Point::at — Size Coercion

Descrição

public static UI\Point::at(float $point): UI\Point
public static UI\Point::at(UI\Size $size): UI\Point

Shall return a UI\Point object where x and y are equal to those supplied, either in float or UI\Size form

Parâmetros

point

The value for x and y

size

The Size to convert

Valor Retornado

The resulting Point


Construct a new Point

  • « UI\Point::at
  • UI\Point::getX »
  • PHP Manual
  • UI\Point
  • Construct a new Point

UI\Point::__construct

(UI 0.9.9)

UI\Point::__construct — Construct a new Point

Descrição

public UI\Point::__construct(float $x, float $y)

Construct a new Point using new co-ordinates

Parâmetros

x

The new X co-ordinate

y

The new Y co-ordinate


Retrieves X

  • « UI\Point::__construct
  • UI\Point::getY »
  • PHP Manual
  • UI\Point
  • Retrieves X

UI\Point::getX

(UI 0.9.9)

UI\Point::getX — Retrieves X

Descrição

public UI\Point::getX(): float

Retrieves the X co-ordinate

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current X co-ordinate


Retrieves Y

  • « UI\Point::getX
  • UI\Point::setX »
  • PHP Manual
  • UI\Point
  • Retrieves Y

UI\Point::getY

(UI 0.9.9)

UI\Point::getY — Retrieves Y

Descrição

public UI\Point::getY(): float

Retrieves the Y co-ordinate

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current Y co-ordinate


Set X

  • « UI\Point::getY
  • UI\Point::setY »
  • PHP Manual
  • UI\Point
  • Set X

UI\Point::setX

(UI 0.9.9)

UI\Point::setX — Set X

Descrição

public UI\Point::setX(float $point)

Set the X co-ordinate

Parâmetros

point

The new X co-ordinate

Valor Retornado


Set Y

  • « UI\Point::setX
  • UI\Size »
  • PHP Manual
  • UI\Point
  • Set Y

UI\Point::setY

(UI 0.9.9)

UI\Point::setY — Set Y

Descrição

public UI\Point::setY(float $point)

Set the Y co-ordinate

Parâmetros

point

The new Y co-ordinate

Valor Retornado


Represents dimensions (width, height)

(UI 0.9.9)

Introdução

Sizes are used throughout UI to represent the size of a screen, control, or area.

Resumo da classe

final class UI\Size {
/* Propriedades */
public $width;
public $height;
/* Constructor */
public __construct(float $width, float $height)
/* Métodos */
public getHeight(): float
public getWidth(): float
public static of(float $size): UI\Size
public static of(UI\Point $point): UI\Size
public setHeight(float $size)
public setWidth(float $size)
}

Propriedades

width

Holds the width, can be read/written directly

height

Holds the height, can be read/written directly

Índice

  • UI\Size::__construct — Construct a new Size
  • UI\Size::getHeight — Retrieves Height
  • UI\Size::getWidth — Retrives Width
  • UI\Size::of — Point Coercion
  • UI\Size::setHeight — Set Height
  • UI\Size::setWidth — Set Width


Construct a new Size

  • « UI\Size
  • UI\Size::getHeight »
  • PHP Manual
  • UI\Size
  • Construct a new Size

UI\Size::__construct

(UI 0.9.9)

UI\Size::__construct — Construct a new Size

Descrição

public UI\Size::__construct(float $width, float $height)

Construct a new Size using new width and height

Parâmetros

width

The new width

height

The new height


Retrieves Height

  • « UI\Size::__construct
  • UI\Size::getWidth »
  • PHP Manual
  • UI\Size
  • Retrieves Height

UI\Size::getHeight

(UI 0.9.9)

UI\Size::getHeight — Retrieves Height

Descrição

public UI\Size::getHeight(): float

Retrieves the Height

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current Height


Retrives Width

  • « UI\Size::getHeight
  • UI\Size::of »
  • PHP Manual
  • UI\Size
  • Retrives Width

UI\Size::getWidth

(UI 0.9.9)

UI\Size::getWidth — Retrives Width

Descrição

public UI\Size::getWidth(): float

Retrieves the Width

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current Width


Point Coercion

  • « UI\Size::getWidth
  • UI\Size::setHeight »
  • PHP Manual
  • UI\Size
  • Point Coercion

UI\Size::of

(UI 1.0.2)

UI\Size::of — Point Coercion

Descrição

public static UI\Size::of(float $size): UI\Size
public static UI\Size::of(UI\Point $point): UI\Size

Shall return a UI\Size object where width and height are equal to those supplied, either in float or UI\Point form

Parâmetros

size

The value for width and height

point

The Point to convert

Valor Retornado

The resulting Size


Set Height

  • « UI\Size::of
  • UI\Size::setWidth »
  • PHP Manual
  • UI\Size
  • Set Height

UI\Size::setHeight

(UI 0.9.9)

UI\Size::setHeight — Set Height

Descrição

public UI\Size::setHeight(float $size)

Set new Height

Parâmetros

size

The new Height

Valor Retornado


Set Width

  • « UI\Size::setHeight
  • UI\Window »
  • PHP Manual
  • UI\Size
  • Set Width

UI\Size::setWidth

(UI 0.9.9)

UI\Size::setWidth — Set Width

Descrição

public UI\Size::setWidth(float $size)

Set new Width

Parâmetros

size

The new Width

Valor Retornado


Window

(UI 0.9.9)

Introdução

Represents a UI Window

Resumo da classe

class UI\Window extends UI\Control {
/* Propriedades */
protected $controls;
/* Constructor */
public __construct(string $title, Size $size, bool $menu = false)
/* Métodos */
public add(UI\Control $control)
public error(string $title, string $msg)
public getSize(): UI\Size
public getTitle(): string
public hasBorders(): bool
public hasMargin(): bool
public isFullScreen(): bool
public msg(string $title, string $msg)
protected onClosing(): int
public open(): string
public save(): string
public setBorders(bool $borders)
public setFullScreen(bool $full)
public setMargin(bool $margin)
public setSize(UI\Size $size)
public setTitle(string $title)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Propriedades

controls

Contains controls, should not be manipulated directly

Índice

  • UI\Window::add — Add a Control
  • UI\Window::__construct — Construct a new Window
  • UI\Window::error — Show Error Box
  • UI\Window::getSize — Get Window Size
  • UI\Window::getTitle — Get Title
  • UI\Window::hasBorders — Border Detection
  • UI\Window::hasMargin — Margin Detection
  • UI\Window::isFullScreen — Full Screen Detection
  • UI\Window::msg — Show Message Box
  • UI\Window::onClosing — Closing Callback
  • UI\Window::open — Open Dialog
  • UI\Window::save — Save Dialog
  • UI\Window::setBorders — Border Use
  • UI\Window::setFullScreen — Full Screen Use
  • UI\Window::setMargin — Margin Use
  • UI\Window::setSize — Set Size
  • UI\Window::setTitle — Window Title


Add a Control

  • « UI\Window
  • UI\Window::__construct »
  • PHP Manual
  • UI\Window
  • Add a Control

UI\Window::add

(UI 0.9.9)

UI\Window::add — Add a Control

Descrição

public UI\Window::add(UI\Control $control)

Shall add a Control to this Window

Parâmetros

control

The Control to add

Valor Retornado


Construct a new Window

  • « UI\Window::add
  • UI\Window::error »
  • PHP Manual
  • UI\Window
  • Construct a new Window

UI\Window::__construct

(UI 0.9.9)

UI\Window::__construct — Construct a new Window

Descrição

public UI\Window::__construct(string $title, Size $size, bool $menu = false)

Shall construct a new Window

Parâmetros

title

The title of the Window

size

The size of the Window

menu

Menu switch


Show Error Box

  • « UI\Window::__construct
  • UI\Window::getSize »
  • PHP Manual
  • UI\Window
  • Show Error Box

UI\Window::error

(UI 0.9.9)

UI\Window::error — Show Error Box

Descrição

public UI\Window::error(string $title, string $msg)

Shall show an error box

Parâmetros

title

The title of the error box

msg

The message for the error box


Get Window Size

  • « UI\Window::error
  • UI\Window::getTitle »
  • PHP Manual
  • UI\Window
  • Get Window Size

UI\Window::getSize

(UI 0.9.9)

UI\Window::getSize — Get Window Size

Descrição

public UI\Window::getSize(): UI\Size

Shall return the size of this Window

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Get Title

  • « UI\Window::getSize
  • UI\Window::hasBorders »
  • PHP Manual
  • UI\Window
  • Get Title

UI\Window::getTitle

(UI 0.9.9)

UI\Window::getTitle — Get Title

Descrição

public UI\Window::getTitle(): string

Shall retrieve the title of this Window

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Border Detection

  • « UI\Window::getTitle
  • UI\Window::hasMargin »
  • PHP Manual
  • UI\Window
  • Border Detection

UI\Window::hasBorders

(UI 0.9.9)

UI\Window::hasBorders — Border Detection

Descrição

public UI\Window::hasBorders(): bool

Shall detect if borders are used on this Window

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Margin Detection

  • « UI\Window::hasBorders
  • UI\Window::isFullScreen »
  • PHP Manual
  • UI\Window
  • Margin Detection

UI\Window::hasMargin

(UI 0.9.9)

UI\Window::hasMargin — Margin Detection

Descrição

public UI\Window::hasMargin(): bool

Shall detect if margins are used on this Window

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Full Screen Detection

  • « UI\Window::hasMargin
  • UI\Window::msg »
  • PHP Manual
  • UI\Window
  • Full Screen Detection

UI\Window::isFullScreen

(UI 0.9.9)

UI\Window::isFullScreen — Full Screen Detection

Descrição

public UI\Window::isFullScreen(): bool

Shall detect if this Window us using the whole screen

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Show Message Box

  • « UI\Window::isFullScreen
  • UI\Window::onClosing »
  • PHP Manual
  • UI\Window
  • Show Message Box

UI\Window::msg

(UI 0.9.9)

UI\Window::msg — Show Message Box

Descrição

public UI\Window::msg(string $title, string $msg)

Shall show a message box

Parâmetros

title

The title of the message box

msg

The message


Closing Callback

  • « UI\Window::msg
  • UI\Window::open »
  • PHP Manual
  • UI\Window
  • Closing Callback

UI\Window::onClosing

(UI 0.9.9)

UI\Window::onClosing — Closing Callback

Descrição

protected UI\Window::onClosing(): int

Should gracefully destroy this Window

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Open Dialog

  • « UI\Window::onClosing
  • UI\Window::save »
  • PHP Manual
  • UI\Window
  • Open Dialog

UI\Window::open

(UI 0.9.9)

UI\Window::open — Open Dialog

Descrição

public UI\Window::open(): string

Shall show an open file dialog

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the name of the file selected for opening


Save Dialog

  • « UI\Window::open
  • UI\Window::setBorders »
  • PHP Manual
  • UI\Window
  • Save Dialog

UI\Window::save

(UI 0.9.9)

UI\Window::save — Save Dialog

Descrição

public UI\Window::save(): string

Shall show a save dialog

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns the file name selecting for saving


Border Use

  • « UI\Window::save
  • UI\Window::setFullScreen »
  • PHP Manual
  • UI\Window
  • Border Use

UI\Window::setBorders

(UI 0.9.9)

UI\Window::setBorders — Border Use

Descrição

public UI\Window::setBorders(bool $borders)

Shall enable or disable the use of borders on this Window

Parâmetros

borders


Full Screen Use

  • « UI\Window::setBorders
  • UI\Window::setMargin »
  • PHP Manual
  • UI\Window
  • Full Screen Use

UI\Window::setFullScreen

(UI 0.9.9)

UI\Window::setFullScreen — Full Screen Use

Descrição

public UI\Window::setFullScreen(bool $full)

Shall enable or disable the use of the full screen for this Window

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

full


Margin Use

  • « UI\Window::setFullScreen
  • UI\Window::setSize »
  • PHP Manual
  • UI\Window
  • Margin Use

UI\Window::setMargin

(UI 0.9.9)

UI\Window::setMargin — Margin Use

Descrição

public UI\Window::setMargin(bool $margin)

Shall enable or disable the use of margins for this Window

Parâmetros

margin


Set Size

  • « UI\Window::setMargin
  • UI\Window::setTitle »
  • PHP Manual
  • UI\Window
  • Set Size

UI\Window::setSize

(UI 0.9.9)

UI\Window::setSize — Set Size

Descrição

public UI\Window::setSize(UI\Size $size)

Shall set the size of this Window

Parâmetros

size

Valor Retornado


Window Title

  • « UI\Window::setSize
  • UI\Control »
  • PHP Manual
  • UI\Window
  • Window Title

UI\Window::setTitle

(UI 0.9.9)

UI\Window::setTitle — Window Title

Descrição

public UI\Window::setTitle(string $title)

Shall set the title for this Window

Parâmetros

title

The new title


Control

(UI 0.9.9)

Introdução

This is the closed base class for all UI Controls.

Resumo da classe

final class UI\Control {
/* Métodos */
public destroy()
public disable()
public enable()
public getParent(): UI\Control
public getTopLevel(): int
public hide()
public isEnabled(): bool
public isVisible(): bool
public setParent(UI\Control $parent)
public show()
}

Índice

  • UI\Control::destroy — Destroy Control
  • UI\Control::disable — Disable Control
  • UI\Control::enable — Enable Control
  • UI\Control::getParent — Get Parent Control
  • UI\Control::getTopLevel — Get Top Level
  • UI\Control::hide — Hide Control
  • UI\Control::isEnabled — Determine if Control is enabled
  • UI\Control::isVisible — Determine if Control is visible
  • UI\Control::setParent — Set Parent Control
  • UI\Control::show — Control Show


Destroy Control

  • « UI\Control
  • UI\Control::disable »
  • PHP Manual
  • UI\Control
  • Destroy Control

UI\Control::destroy

(UI 0.9.9)

UI\Control::destroy — Destroy Control

Descrição

public UI\Control::destroy()

Shall destroy this Control

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Disable Control

  • « UI\Control::destroy
  • UI\Control::enable »
  • PHP Manual
  • UI\Control
  • Disable Control

UI\Control::disable

(UI 0.9.9)

UI\Control::disable — Disable Control

Descrição

public UI\Control::disable()

Shall disable this Control

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Enable Control

  • « UI\Control::disable
  • UI\Control::getParent »
  • PHP Manual
  • UI\Control
  • Enable Control

UI\Control::enable

(UI 0.9.9)

UI\Control::enable — Enable Control

Descrição

public UI\Control::enable()

Shall enable this Control

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Get Parent Control

  • « UI\Control::enable
  • UI\Control::getTopLevel »
  • PHP Manual
  • UI\Control
  • Get Parent Control

UI\Control::getParent

(UI 0.9.9)

UI\Control::getParent — Get Parent Control

Descrição

public UI\Control::getParent(): UI\Control

Shall return the parent Control

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Get Top Level

  • « UI\Control::getParent
  • UI\Control::hide »
  • PHP Manual
  • UI\Control
  • Get Top Level

UI\Control::getTopLevel

(UI 0.9.9)

UI\Control::getTopLevel — Get Top Level

Descrição

public UI\Control::getTopLevel(): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Hide Control

  • « UI\Control::getTopLevel
  • UI\Control::isEnabled »
  • PHP Manual
  • UI\Control
  • Hide Control

UI\Control::hide

(UI 0.9.9)

UI\Control::hide — Hide Control

Descrição

public UI\Control::hide()

Shall hide this Control

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Determine if Control is enabled

  • « UI\Control::hide
  • UI\Control::isVisible »
  • PHP Manual
  • UI\Control
  • Determine if Control is enabled

UI\Control::isEnabled

(UI 0.9.9)

UI\Control::isEnabled — Determine if Control is enabled

Descrição

public UI\Control::isEnabled(): bool

Shall detect if this Control is enabled

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Determine if Control is visible

  • « UI\Control::isEnabled
  • UI\Control::setParent »
  • PHP Manual
  • UI\Control
  • Determine if Control is visible

UI\Control::isVisible

(UI 0.9.9)

UI\Control::isVisible — Determine if Control is visible

Descrição

public UI\Control::isVisible(): bool

Shall detect if this Control is visible

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Set Parent Control

  • « UI\Control::isVisible
  • UI\Control::show »
  • PHP Manual
  • UI\Control
  • Set Parent Control

UI\Control::setParent

(UI 0.9.9)

UI\Control::setParent — Set Parent Control

Descrição

public UI\Control::setParent(UI\Control $parent)

Shall set the parent Control of this Control

Parâmetros

parent

The parent Control

Valor Retornado


Control Show

  • « UI\Control::setParent
  • UI\Menu »
  • PHP Manual
  • UI\Control
  • Control Show

UI\Control::show

(UI 0.9.9)

UI\Control::show — Control Show

Descrição

public UI\Control::show()

Shall show this Control

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Menu

(UI 0.9.9)

Introdução

Menus must be constructed before the first Window, and can be shown on any Window

Resumo da classe

class UI\Menu {
/* Constructor */
public __construct(string $name)
/* Métodos */
public append(string $name, string $type = UI\MenuItem::class): UI\MenuItem
public appendAbout(string $type = UI\MenuItem::class): UI\MenuItem
public appendCheck(string $name, string $type = UI\MenuItem::class): UI\MenuItem
public appendPreferences(string $type = UI\MenuItem::class): UI\MenuItem
public appendQuit(string $type = UI\MenuItem::class): UI\MenuItem
public appendSeparator()
}

Índice

  • UI\Menu::append — Append Menu Item
  • UI\Menu::appendAbout — Append About Menu Item
  • UI\Menu::appendCheck — Append Checkable Menu Item
  • UI\Menu::appendPreferences — Append Preferences Menu Item
  • UI\Menu::appendQuit — Append Quit Menu Item
  • UI\Menu::appendSeparator — Append Menu Item Separator
  • UI\Menu::__construct — Construct a new Menu


Append Menu Item

  • « UI\Menu
  • UI\Menu::appendAbout »
  • PHP Manual
  • UI\Menu
  • Append Menu Item

UI\Menu::append

(UI 0.9.9)

UI\Menu::append — Append Menu Item

Descrição

public UI\Menu::append(string $name, string $type = UI\MenuItem::class): UI\MenuItem

Shall append a new Menu Item

Parâmetros

name

The name (text) for the new item

type

The type for the new item

Valor Retornado

A constructed object of the given type


Append About Menu Item

  • « UI\Menu::append
  • UI\Menu::appendCheck »
  • PHP Manual
  • UI\Menu
  • Append About Menu Item

UI\Menu::appendAbout

(UI 0.9.9)

UI\Menu::appendAbout — Append About Menu Item

Descrição

public UI\Menu::appendAbout(string $type = UI\MenuItem::class): UI\MenuItem

Shall append an About menu item

Parâmetros

type

The type for the new item

Valor Retornado

A constructed About menu item of the given type


Append Checkable Menu Item

  • « UI\Menu::appendAbout
  • UI\Menu::appendPreferences »
  • PHP Manual
  • UI\Menu
  • Append Checkable Menu Item

UI\Menu::appendCheck

(UI 0.9.9)

UI\Menu::appendCheck — Append Checkable Menu Item

Descrição

public UI\Menu::appendCheck(string $name, string $type = UI\MenuItem::class): UI\MenuItem

Shall append a checkable menu item

Parâmetros

name

The name (text) for the new item

type

The type for the new item

Valor Retornado

A constructed checkable menu item of the given type


Append Preferences Menu Item

  • « UI\Menu::appendCheck
  • UI\Menu::appendQuit »
  • PHP Manual
  • UI\Menu
  • Append Preferences Menu Item

UI\Menu::appendPreferences

(UI 0.9.9)

UI\Menu::appendPreferences — Append Preferences Menu Item

Descrição

public UI\Menu::appendPreferences(string $type = UI\MenuItem::class): UI\MenuItem

Shall append a Preferences menu item

Parâmetros

type

The type for the new item

Valor Retornado

A constructed Preferences menu item of the given type


Append Quit Menu Item

  • « UI\Menu::appendPreferences
  • UI\Menu::appendSeparator »
  • PHP Manual
  • UI\Menu
  • Append Quit Menu Item

UI\Menu::appendQuit

(UI 0.9.9)

UI\Menu::appendQuit — Append Quit Menu Item

Descrição

public UI\Menu::appendQuit(string $type = UI\MenuItem::class): UI\MenuItem

Shall append a Quit menu item

Parâmetros

type

The type for the new item

Valor Retornado

A constructed Quit menu item of the given type


Append Menu Item Separator

  • « UI\Menu::appendQuit
  • UI\Menu::__construct »
  • PHP Manual
  • UI\Menu
  • Append Menu Item Separator

UI\Menu::appendSeparator

(UI 0.9.9)

UI\Menu::appendSeparator — Append Menu Item Separator

Descrição

public UI\Menu::appendSeparator()

Shall append a separator

Parâmetros

Esta função não possui parâmetros.


Construct a new Menu

  • « UI\Menu::appendSeparator
  • UI\MenuItem »
  • PHP Manual
  • UI\Menu
  • Construct a new Menu

UI\Menu::__construct

(UI 0.9.9)

UI\Menu::__construct — Construct a new Menu

Descrição

public UI\Menu::__construct(string $name)

Shall construct a new Menu

Parâmetros

name

The name (text) for the menu


Menu Item

(UI 0.9.9)

Introdução

Menu Items should only be created by the Menu

Resumo da classe

class UI\MenuItem {
/* Métodos */
public disable()
public enable()
public isChecked(): bool
protected onClick()
public setChecked(bool $checked)
}

Índice

  • UI\MenuItem::disable — Disable Menu Item
  • UI\MenuItem::enable — Enable Menu Item
  • UI\MenuItem::isChecked — Detect Checked
  • UI\MenuItem::onClick — On Click Callback
  • UI\MenuItem::setChecked — Set Checked


Disable Menu Item

  • « UI\MenuItem
  • UI\MenuItem::enable »
  • PHP Manual
  • UI\MenuItem
  • Disable Menu Item

UI\MenuItem::disable

(UI 0.9.9)

UI\MenuItem::disable — Disable Menu Item

Descrição

public UI\MenuItem::disable()

Shall disable this Menu Item

Parâmetros

Esta função não possui parâmetros.


Enable Menu Item

  • « UI\MenuItem::disable
  • UI\MenuItem::isChecked »
  • PHP Manual
  • UI\MenuItem
  • Enable Menu Item

UI\MenuItem::enable

(UI 0.9.9)

UI\MenuItem::enable — Enable Menu Item

Descrição

public UI\MenuItem::enable()

Shall enable this Menu Item

Parâmetros

Esta função não possui parâmetros.


Detect Checked

  • « UI\MenuItem::enable
  • UI\MenuItem::onClick »
  • PHP Manual
  • UI\MenuItem
  • Detect Checked

UI\MenuItem::isChecked

(UI 0.9.9)

UI\MenuItem::isChecked — Detect Checked

Descrição

public UI\MenuItem::isChecked(): bool

Shall detect if this Menu Item is checked

Parâmetros

Esta função não possui parâmetros.


On Click Callback

  • « UI\MenuItem::isChecked
  • UI\MenuItem::setChecked »
  • PHP Manual
  • UI\MenuItem
  • On Click Callback

UI\MenuItem::onClick

(UI 0.9.9)

UI\MenuItem::onClick — On Click Callback

Descrição

protected UI\MenuItem::onClick()

Shall be executed when this Menu Item is clicked

Parâmetros

Esta função não possui parâmetros.


Set Checked

  • « UI\MenuItem::onClick
  • UI\Area »
  • PHP Manual
  • UI\MenuItem
  • Set Checked

UI\MenuItem::setChecked

(UI 0.9.9)

UI\MenuItem::setChecked — Set Checked

Descrição

public UI\MenuItem::setChecked(bool $checked)

Shall set the checked status of this Menu Item

Parâmetros

checked

The new status


Area

(UI 0.9.9)

Introdução

An Area represents a canvas which can be used to draw, and respond to mouse and key events.

Resumo da classe

class UI\Area extends UI\Control {
/* Constantes */
const int Ctrl;
const int Alt;
const int Shift;
const int Super;
const int Down;
const int Up;
/* Métodos */
protected onDraw(
UI\Draw\Pen $pen,
UI\Size $areaSize,
UI\Point $clipPoint,
UI\Size $clipSize
)
protected onKey(string $key, int $ext, int $flags)
protected onMouse(UI\Point $areaPoint, UI\Size $areaSize, int $flags)
public redraw()
public scrollTo(UI\Point $point, UI\Size $size)
public setSize(UI\Size $size)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Constantes pré-definidas

UI\Area::Ctrl

Shall be set in the modifiers passed to key and mouse events when the CTRL key is active

UI\Area::Alt

Shall be set in the modifiers passed to key and mouse events when the ALT key is active

UI\Area::Shift

Shall be set in the modifiers passed to key and mouse events when the SHIFT key is active

UI\Area::Super

UI\Area::Down

Shall be set in the modifiers passed to key and mouse events

UI\Area::Up

Shall be set in the modifiers passed to key and mouse events

Índice

  • UI\Area::onDraw — Draw Callback
  • UI\Area::onKey — Key Callback
  • UI\Area::onMouse — Mouse Callback
  • UI\Area::redraw — Redraw Area
  • UI\Area::scrollTo — Area Scroll
  • UI\Area::setSize — Set Size


Draw Callback

  • « UI\Area
  • UI\Area::onKey »
  • PHP Manual
  • UI\Area
  • Draw Callback

UI\Area::onDraw

(UI 0.9.9)

UI\Area::onDraw — Draw Callback

Descrição

protected UI\Area::onDraw(
UI\Draw\Pen $pen,
UI\Size $areaSize,
UI\Point $clipPoint,
UI\Size $clipSize
)

Shall be invoked when this Area requires redrawing

Parâmetros

pen

A Pen suitable for drawing in this Area

areaSize

The size of the Area

clipPoint

The clip point of the Area

clipSize

The clip size of the Area


Key Callback

  • « UI\Area::onDraw
  • UI\Area::onMouse »
  • PHP Manual
  • UI\Area
  • Key Callback

UI\Area::onKey

(UI 0.9.9)

UI\Area::onKey — Key Callback

Descrição

protected UI\Area::onKey(string $key, int $ext, int $flags)

Shall be executed on key events

Parâmetros

key

The key pressed

ext

The extended key pressed

flags

Event modifiers

Valor Retornado


Mouse Callback

  • « UI\Area::onKey
  • UI\Area::redraw »
  • PHP Manual
  • UI\Area
  • Mouse Callback

UI\Area::onMouse

(UI 0.9.9)

UI\Area::onMouse — Mouse Callback

Descrição

protected UI\Area::onMouse(UI\Point $areaPoint, UI\Size $areaSize, int $flags)

Shall be executed on mouse events

Parâmetros

areaPoint

The co-ordinates of the event

areaSize

The size of the area of the event

flags

Event modifiers


Redraw Area

  • « UI\Area::onMouse
  • UI\Area::scrollTo »
  • PHP Manual
  • UI\Area
  • Redraw Area

UI\Area::redraw

(UI 0.9.9)

UI\Area::redraw — Redraw Area

Descrição

public UI\Area::redraw()

Requests that this Area is redrawn

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Area Scroll

  • « UI\Area::redraw
  • UI\Area::setSize »
  • PHP Manual
  • UI\Area
  • Area Scroll

UI\Area::scrollTo

(UI 0.9.9)

UI\Area::scrollTo — Area Scroll

Descrição

public UI\Area::scrollTo(UI\Point $point, UI\Size $size)

Scroll this Area

Parâmetros

point

The point to scroll to

size

The size of the scroll pane


Set Size

  • « UI\Area::scrollTo
  • UI\Executor »
  • PHP Manual
  • UI\Area
  • Set Size

UI\Area::setSize

(UI 0.9.9)

UI\Area::setSize — Set Size

Descrição

public UI\Area::setSize(UI\Size $size)

Sets the size of this Area

Parâmetros

size

The new size


Execution Scheduler

(UI 2.0.0)

Introdução

This facility schedules repetitive execution of a callback, useful for animations and other such activities.

Resumo da classe

abstract class UI\Executor {
/* Constructor */
public __construct()
public __construct(int $microseconds)
public __construct(int $seconds, int $microseconds)
/* Métodos */
public kill(): void
abstract protected onExecute(): void
public setInterval(int $microseconds): bool
public setInterval(int $seconds, int $microseconds): bool
}

Índice

  • UI\Executor::__construct — Construct a new Executor
  • UI\Executor::kill — Stop Executor
  • UI\Executor::onExecute — Execution Callback
  • UI\Executor::setInterval — Interval Manipulation


Construct a new Executor

  • « UI\Executor
  • UI\Executor::kill »
  • PHP Manual
  • UI\Executor
  • Construct a new Executor

UI\Executor::__construct

(UI 2.0.0)

UI\Executor::__construct — Construct a new Executor

Descrição

public UI\Executor::__construct()
public UI\Executor::__construct(int $microseconds)
public UI\Executor::__construct(int $seconds, int $microseconds)

Shall construct an executor with the given interval, will not start executing until main loop is entered

Parâmetros

seconds

Seconds between executions

microseconds

Microseconds between executions


Stop Executor

  • « UI\Executor::__construct
  • UI\Executor::onExecute »
  • PHP Manual
  • UI\Executor
  • Stop Executor

UI\Executor::kill

(UI 2.0.0)

UI\Executor::kill — Stop Executor

Descrição

public UI\Executor::kill(): void

Shall stop an executor, the executor cannot be restarted

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Execution Callback

  • « UI\Executor::kill
  • UI\Executor::setInterval »
  • PHP Manual
  • UI\Executor
  • Execution Callback

UI\Executor::onExecute

(UI 2.0.0)

UI\Executor::onExecute — Execution Callback

Descrição

abstract protected UI\Executor::onExecute(): void

Shall be repetitively queued for execution in the main thread

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Interval Manipulation

  • « UI\Executor::onExecute
  • UI\Controls\Tab »
  • PHP Manual
  • UI\Executor
  • Interval Manipulation

UI\Executor::setInterval

(UI 2.0.0)

UI\Executor::setInterval — Interval Manipulation

Descrição

public UI\Executor::setInterval(int $microseconds): bool
public UI\Executor::setInterval(int $seconds, int $microseconds): bool

Shall set the new interval. An interval of 0 will pause the executor until a new interval has been set

Parâmetros

seconds

microseconds

Valor Retornado

Indication of success


Tab Control

(UI 0.9.9)

Introdução

A Tab can contain many pages of Controls, each with a title, each selectable by the user.

Resumo da classe

class UI\Controls\Tab extends UI\Control {
/* Propriedades */
protected $controls;
/* Métodos */
public append(string $name, UI\Control $control): int
public delete(int $index): bool
public hasMargin(int $page): bool
public insertAt(string $name, int $page, UI\Control $control)
public pages(): int
public setMargin(int $page, bool $margin)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Propriedades

controls

Contains controls, should not be manipulated directly

Índice

  • UI\Controls\Tab::append — Append Page
  • UI\Controls\Tab::delete — Delete Page
  • UI\Controls\Tab::hasMargin — Margin Detection
  • UI\Controls\Tab::insertAt — Insert Page
  • UI\Controls\Tab::pages — Page Count
  • UI\Controls\Tab::setMargin — Set Margin


Append Page

  • « UI\Controls\Tab
  • UI\Controls\Tab::delete »
  • PHP Manual
  • UI\Controls\Tab
  • Append Page

UI\Controls\Tab::append

(UI 0.9.9)

UI\Controls\Tab::append — Append Page

Descrição

public UI\Controls\Tab::append(string $name, UI\Control $control): int

Append a new page to this Tab

Parâmetros

name

The name for the new page

control

The control for the new page

Valor Retornado

Shall return the index of the appended control, may be 0


Delete Page

  • « UI\Controls\Tab::append
  • UI\Controls\Tab::hasMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Delete Page

UI\Controls\Tab::delete

(UI 0.9.9)

UI\Controls\Tab::delete — Delete Page

Descrição

public UI\Controls\Tab::delete(int $index): bool

Shall remove the selected page from this Tab

Parâmetros

index

The index of the page to remove

Valor Retornado

Indication of success


Margin Detection

  • « UI\Controls\Tab::delete
  • UI\Controls\Tab::insertAt »
  • PHP Manual
  • UI\Controls\Tab
  • Margin Detection

UI\Controls\Tab::hasMargin

(UI 0.9.9)

UI\Controls\Tab::hasMargin — Margin Detection

Descrição

public UI\Controls\Tab::hasMargin(int $page): bool

Shall detect if the given page has a margin.

Parâmetros

page

The index of the page

Valor Retornado


Insert Page

  • « UI\Controls\Tab::hasMargin
  • UI\Controls\Tab::pages »
  • PHP Manual
  • UI\Controls\Tab
  • Insert Page

UI\Controls\Tab::insertAt

(UI 0.9.9)

UI\Controls\Tab::insertAt — Insert Page

Descrição

public UI\Controls\Tab::insertAt(string $name, int $page, UI\Control $control)

Shall insert a new page into this Tab

Parâmetros

name

The name for the new page

page

The index to perform the insertion before

control

The control for the new page


Page Count

  • « UI\Controls\Tab::insertAt
  • UI\Controls\Tab::setMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Page Count

UI\Controls\Tab::pages

(UI 0.9.9)

UI\Controls\Tab::pages — Page Count

Descrição

public UI\Controls\Tab::pages(): int

Shall return the number of pages in this Tab

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The number of pages in this Tab


Set Margin

  • « UI\Controls\Tab::pages
  • UI\Controls\Check »
  • PHP Manual
  • UI\Controls\Tab
  • Set Margin

UI\Controls\Tab::setMargin

(UI 0.9.9)

UI\Controls\Tab::setMargin — Set Margin

Descrição

public UI\Controls\Tab::setMargin(int $page, bool $margin)

Shall enable or disable margins on the selected page

Parâmetros

page

The page to select

margin

Margin switch


Check Control

(UI 0.9.9)

Introdução

A Check is a labelled checkable box

Resumo da classe

class UI\Controls\Check extends UI\Control {
/* Constructor */
public __construct(string $text)
/* Métodos */
public getText(): string
public isChecked(): bool
protected onToggle()
public setChecked(bool $checked)
public setText(string $text)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Índice

  • UI\Controls\Check::__construct — Construct a new Check
  • UI\Controls\Check::getText — Get Text
  • UI\Controls\Check::isChecked — Checked Detection
  • UI\Controls\Check::onToggle — Toggle Callback
  • UI\Controls\Check::setChecked — Set Checked
  • UI\Controls\Check::setText — Set Text


Construct a new Check

  • « UI\Controls\Check
  • UI\Controls\Check::getText »
  • PHP Manual
  • UI\Controls\Check
  • Construct a new Check

UI\Controls\Check::__construct

(UI 0.9.9)

UI\Controls\Check::__construct — Construct a new Check

Descrição

public UI\Controls\Check::__construct(string $text)

Shall construct a new Check

Parâmetros

text

The text (label) for the Check box


Get Text

  • « UI\Controls\Check::__construct
  • UI\Controls\Check::isChecked »
  • PHP Manual
  • UI\Controls\Check
  • Get Text

UI\Controls\Check::getText

(UI 0.9.9)

UI\Controls\Check::getText — Get Text

Descrição

public UI\Controls\Check::getText(): string

Shall return the text (label) for this Check

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current text (label)


Checked Detection

  • « UI\Controls\Check::getText
  • UI\Controls\Check::onToggle »
  • PHP Manual
  • UI\Controls\Check
  • Checked Detection

UI\Controls\Check::isChecked

(UI 0.9.9)

UI\Controls\Check::isChecked — Checked Detection

Descrição

public UI\Controls\Check::isChecked(): bool

Shall detect the status of this Check

Parâmetros

Esta função não possui parâmetros.


Toggle Callback

  • « UI\Controls\Check::isChecked
  • UI\Controls\Check::setChecked »
  • PHP Manual
  • UI\Controls\Check
  • Toggle Callback

UI\Controls\Check::onToggle

(UI 0.9.9)

UI\Controls\Check::onToggle — Toggle Callback

Descrição

protected UI\Controls\Check::onToggle()

Shall be executed when the status of this Check is changed

Parâmetros

Esta função não possui parâmetros.


Set Checked

  • « UI\Controls\Check::onToggle
  • UI\Controls\Check::setText »
  • PHP Manual
  • UI\Controls\Check
  • Set Checked

UI\Controls\Check::setChecked

(UI 0.9.9)

UI\Controls\Check::setChecked — Set Checked

Descrição

public UI\Controls\Check::setChecked(bool $checked)

Shall change the status of this Check

Parâmetros

checked

The new status


Set Text

  • « UI\Controls\Check::setChecked
  • UI\Controls\Button »
  • PHP Manual
  • UI\Controls\Check
  • Set Text

UI\Controls\Check::setText

(UI 0.9.9)

UI\Controls\Check::setText — Set Text

Descrição

public UI\Controls\Check::setText(string $text)

Shall set the text (label) for this Check

Parâmetros

text

The new text (label)


Button Control

(UI 0.9.9)

Introdução

Represents a labelled clickable button

Resumo da classe

class UI\Controls\Button extends UI\Control {
/* Constructor */
public __construct(string $text)
/* Métodos */
public getText(): string
protected onClick()
public setText(string $text)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Índice

  • UI\Controls\Button::__construct — Construct a new Button
  • UI\Controls\Button::getText — Get Text
  • UI\Controls\Button::onClick — Click Handler
  • UI\Controls\Button::setText — Set Text


Construct a new Button

  • « UI\Controls\Button
  • UI\Controls\Button::getText »
  • PHP Manual
  • UI\Controls\Button
  • Construct a new Button

UI\Controls\Button::__construct

(UI 0.9.9)

UI\Controls\Button::__construct — Construct a new Button

Descrição

public UI\Controls\Button::__construct(string $text)

Shall construct a new Button

Parâmetros

text

The text (label) for this Button


Get Text

  • « UI\Controls\Button::__construct
  • UI\Controls\Button::onClick »
  • PHP Manual
  • UI\Controls\Button
  • Get Text

UI\Controls\Button::getText

(UI 0.9.9)

UI\Controls\Button::getText — Get Text

Descrição

public UI\Controls\Button::getText(): string

Shall retrieve the text (label) for this Button

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current text (label)


Click Handler

  • « UI\Controls\Button::getText
  • UI\Controls\Button::setText »
  • PHP Manual
  • UI\Controls\Button
  • Click Handler

UI\Controls\Button::onClick

(UI 0.9.9)

UI\Controls\Button::onClick — Click Handler

Descrição

protected UI\Controls\Button::onClick()

Shall be executed when this Button is clicked

Parâmetros

Esta função não possui parâmetros.


Set Text

  • « UI\Controls\Button::onClick
  • UI\Controls\ColorButton »
  • PHP Manual
  • UI\Controls\Button
  • Set Text

UI\Controls\Button::setText

(UI 0.9.9)

UI\Controls\Button::setText — Set Text

Descrição

public UI\Controls\Button::setText(string $text)

Shall set the text (label) for this Button

Parâmetros

text

The new text (label)


ColorButton Control

(UI 0.9.9)

Introdução

A Color Button is a button which displays a color picker when clicked

Resumo da classe

class UI\Controls\ColorButton extends UI\Control {
/* Métodos */
public getColor(): UI\Color
protected onChange()
public setColor(UI\Draw\Color $color)
public setColor(int $color)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Índice

  • UI\Controls\ColorButton::getColor — Get Color
  • UI\Controls\ColorButton::onChange — Change Handler
  • UI\Controls\ColorButton::setColor — Set Color


Get Color

  • « UI\Controls\ColorButton
  • UI\Controls\ColorButton::onChange »
  • PHP Manual
  • UI\Controls\ColorButton
  • Get Color

UI\Controls\ColorButton::getColor

(UI 0.9.9)

UI\Controls\ColorButton::getColor — Get Color

Descrição

public UI\Controls\ColorButton::getColor(): UI\Color

Shall retrieve the currently selected Color

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Change Handler

  • « UI\Controls\ColorButton::getColor
  • UI\Controls\ColorButton::setColor »
  • PHP Manual
  • UI\Controls\ColorButton
  • Change Handler

UI\Controls\ColorButton::onChange

(UI 0.9.9)

UI\Controls\ColorButton::onChange — Change Handler

Descrição

protected UI\Controls\ColorButton::onChange()

Shall be executed when the selected Color is changed

Parâmetros

Esta função não possui parâmetros.


Set Color

  • « UI\Controls\ColorButton::onChange
  • UI\Controls\Label »
  • PHP Manual
  • UI\Controls\ColorButton
  • Set Color

UI\Controls\ColorButton::setColor

(UI 0.9.9)

UI\Controls\ColorButton::setColor — Set Color

Descrição

public UI\Controls\ColorButton::setColor(UI\Draw\Color $color)
public UI\Controls\ColorButton::setColor(int $color)

Shall set the currently selected Color

Parâmetros

color

The new color


Label Control

(UI 0.9.9)

Introdução

A Label is a single line of text, meant to identify, for the user, some element of the interface.

Resumo da classe

class UI\Controls\Label extends UI\Control {
/* Constructor */
public __construct(string $text)
/* Métodos */
public getText(): string
public setText(string $text)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Índice

  • UI\Controls\Label::__construct — Construct a new Label
  • UI\Controls\Label::getText — Get Text
  • UI\Controls\Label::setText — Set Text


Construct a new Label

  • « UI\Controls\Label
  • UI\Controls\Label::getText »
  • PHP Manual
  • UI\Controls\Label
  • Construct a new Label

UI\Controls\Label::__construct

(UI 0.9.9)

UI\Controls\Label::__construct — Construct a new Label

Descrição

public UI\Controls\Label::__construct(string $text)

Shall construct a new Label

Parâmetros

text

The text for this label


Get Text

  • « UI\Controls\Label::__construct
  • UI\Controls\Label::setText »
  • PHP Manual
  • UI\Controls\Label
  • Get Text

UI\Controls\Label::getText

(UI 0.9.9)

UI\Controls\Label::getText — Get Text

Descrição

public UI\Controls\Label::getText(): string

Shall return the current text for this Label

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Set Text

  • « UI\Controls\Label::getText
  • UI\Controls\Entry »
  • PHP Manual
  • UI\Controls\Label
  • Set Text

UI\Controls\Label::setText

(UI 0.9.9)

UI\Controls\Label::setText — Set Text

Descrição

public UI\Controls\Label::setText(string $text)

Shall set the text for this Label

Parâmetros

text

The new text


Entry Control

(UI 0.9.9)

Introdução

An Entry is a text entry control, suitable for entering plain text, passwords, or search terms.

Resumo da classe

class UI\Controls\Entry extends UI\Control {
/* Constantes */
const int Normal;
const int Password;
const int Search;
/* Constructor */
public __construct(int $type = UI\Controls\Entry::Normal)
/* Métodos */
public getText(): string
public isReadOnly(): bool
protected onChange()
public setReadOnly(bool $readOnly)
public setText(string $text)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Constantes pré-definidas

UI\Controls\Entry::Normal

A normal single line entry

UI\Controls\Entry::Password

A password entry

UI\Controls\Entry::Search

A search entry

Índice

  • UI\Controls\Entry::__construct — Construct a new Entry
  • UI\Controls\Entry::getText — Get Text
  • UI\Controls\Entry::isReadOnly — Detect Read Only
  • UI\Controls\Entry::onChange — Change Handler
  • UI\Controls\Entry::setReadOnly — Set Read Only
  • UI\Controls\Entry::setText — Set Text


Construct a new Entry

  • « UI\Controls\Entry
  • UI\Controls\Entry::getText »
  • PHP Manual
  • UI\Controls\Entry
  • Construct a new Entry

UI\Controls\Entry::__construct

(UI 0.9.9)

UI\Controls\Entry::__construct — Construct a new Entry

Descrição

public UI\Controls\Entry::__construct(int $type = UI\Controls\Entry::Normal)

Construct a new entry of the given type

Parâmetros

type

Entry::Normal, Entry::Password, or Entry::Search


Get Text

  • « UI\Controls\Entry::__construct
  • UI\Controls\Entry::isReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Get Text

UI\Controls\Entry::getText

(UI 0.9.9)

UI\Controls\Entry::getText — Get Text

Descrição

public UI\Controls\Entry::getText(): string

Shall return the current text from this Entry

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current text


Detect Read Only

  • « UI\Controls\Entry::getText
  • UI\Controls\Entry::onChange »
  • PHP Manual
  • UI\Controls\Entry
  • Detect Read Only

UI\Controls\Entry::isReadOnly

(UI 0.9.9)

UI\Controls\Entry::isReadOnly — Detect Read Only

Descrição

public UI\Controls\Entry::isReadOnly(): bool

Shall detect if this Entry is read only

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Change Handler

  • « UI\Controls\Entry::isReadOnly
  • UI\Controls\Entry::setReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Change Handler

UI\Controls\Entry::onChange

(UI 0.9.9)

UI\Controls\Entry::onChange — Change Handler

Descrição

protected UI\Controls\Entry::onChange()

Shall be executed when the text in this Entry changes

Parâmetros

Esta função não possui parâmetros.


Set Read Only

  • « UI\Controls\Entry::onChange
  • UI\Controls\Entry::setText »
  • PHP Manual
  • UI\Controls\Entry
  • Set Read Only

UI\Controls\Entry::setReadOnly

(UI 0.9.9)

UI\Controls\Entry::setReadOnly — Set Read Only

Descrição

public UI\Controls\Entry::setReadOnly(bool $readOnly)

Shall enable or disable read only for this Entry

Parâmetros

readOnly


Set Text

  • « UI\Controls\Entry::setReadOnly
  • UI\Controls\MultilineEntry »
  • PHP Manual
  • UI\Controls\Entry
  • Set Text

UI\Controls\Entry::setText

(UI 0.9.9)

UI\Controls\Entry::setText — Set Text

Descrição

public UI\Controls\Entry::setText(string $text)

Shall set the text for this Entry

Parâmetros

text

The new text


MultilineEntry Control

(UI 0.9.9)

Introdução

A Multiline Entry is a text entry control able to hold multiple lines of text, with or without wrapping.

Resumo da classe

class UI\Controls\MultilineEntry extends UI\Control {
/* Constantes */
const int Wrap;
const int NoWrap;
/* Constructor */
public __construct(int $type = ?)
/* Métodos */
public append(string $text)
public getText(): string
public isReadOnly(): bool
protected onChange()
public setReadOnly(bool $readOnly)
public setText(string $text)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Constantes pré-definidas

UI\Controls\MultilineEntry::Wrap

Allow lines to wrap

UI\Controls\MultilineEntry::NoWrap

Do not allow lines to wrap

Índice

  • UI\Controls\MultilineEntry::append — Append Text
  • UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry
  • UI\Controls\MultilineEntry::getText — Get Text
  • UI\Controls\MultilineEntry::isReadOnly — Read Only Detection
  • UI\Controls\MultilineEntry::onChange — Change Handler
  • UI\Controls\MultilineEntry::setReadOnly — Set Read Only
  • UI\Controls\MultilineEntry::setText — Set Text


Append Text

  • « UI\Controls\MultilineEntry
  • UI\Controls\MultilineEntry::__construct »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Append Text

UI\Controls\MultilineEntry::append

(UI 0.9.9)

UI\Controls\MultilineEntry::append — Append Text

Descrição

public UI\Controls\MultilineEntry::append(string $text)

Shall append the given text to the text in this Multiline Entry

Parâmetros

text

The text to append


Construct a new Multiline Entry

  • « UI\Controls\MultilineEntry::append
  • UI\Controls\MultilineEntry::getText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Construct a new Multiline Entry

UI\Controls\MultilineEntry::__construct

(UI 0.9.9)

UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry

Descrição

public UI\Controls\MultilineEntry::__construct(int $type = ?)

Shall construct a new Multiline Entry of the given type

Parâmetros

type

MultilineEntry::Wrap or MultilineEntry::NoWrap


Get Text

  • « UI\Controls\MultilineEntry::__construct
  • UI\Controls\MultilineEntry::isReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Get Text

UI\Controls\MultilineEntry::getText

(UI 0.9.9)

UI\Controls\MultilineEntry::getText — Get Text

Descrição

public UI\Controls\MultilineEntry::getText(): string

Shall return the text in this Multiline Entry

Parâmetros

Esta função não possui parâmetros.


Read Only Detection

  • « UI\Controls\MultilineEntry::getText
  • UI\Controls\MultilineEntry::onChange »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Read Only Detection

UI\Controls\MultilineEntry::isReadOnly

(UI 0.9.9)

UI\Controls\MultilineEntry::isReadOnly — Read Only Detection

Descrição

public UI\Controls\MultilineEntry::isReadOnly(): bool

Shall detect if this Multiline Entry is read only

Parâmetros

Esta função não possui parâmetros.


Change Handler

  • « UI\Controls\MultilineEntry::isReadOnly
  • UI\Controls\MultilineEntry::setReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Change Handler

UI\Controls\MultilineEntry::onChange

(UI 0.9.9)

UI\Controls\MultilineEntry::onChange — Change Handler

Descrição

protected UI\Controls\MultilineEntry::onChange()

Shall be executed when the text in this Multiline Entry is changed

Parâmetros

Esta função não possui parâmetros.


Set Read Only

  • « UI\Controls\MultilineEntry::onChange
  • UI\Controls\MultilineEntry::setText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Set Read Only

UI\Controls\MultilineEntry::setReadOnly

(UI 0.9.9)

UI\Controls\MultilineEntry::setReadOnly — Set Read Only

Descrição

public UI\Controls\MultilineEntry::setReadOnly(bool $readOnly)

Shall enable or disable read only on this Multiline Entry

Parâmetros

readOnly


Set Text

  • « UI\Controls\MultilineEntry::setReadOnly
  • UI\Controls\Spin »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Set Text

UI\Controls\MultilineEntry::setText

(UI 0.9.9)

UI\Controls\MultilineEntry::setText — Set Text

Descrição

public UI\Controls\MultilineEntry::setText(string $text)

Shall set the text in this Multiline Entry

Parâmetros

text

The new text


Spin Control

(UI 0.9.9)

Introdução

A Spin box is a text box with an up-down control which changes the integer value in the box, within a defined range

Resumo da classe

class UI\Controls\Spin extends UI\Control {
/* Constructor */
public __construct(int $min, int $max)
/* Métodos */
public getValue(): int
protected onChange()
public setValue(int $value)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Índice

  • UI\Controls\Spin::__construct — Construct a new Spin
  • UI\Controls\Spin::getValue — Get Value
  • UI\Controls\Spin::onChange — Change Handler
  • UI\Controls\Spin::setValue — Set Value


Construct a new Spin

  • « UI\Controls\Spin
  • UI\Controls\Spin::getValue »
  • PHP Manual
  • UI\Controls\Spin
  • Construct a new Spin

UI\Controls\Spin::__construct

(UI 0.9.9)

UI\Controls\Spin::__construct — Construct a new Spin

Descrição

public UI\Controls\Spin::__construct(int $min, int $max)

Constructs a new Spin with the given range

Parâmetros

min

The minimum value allowed

max

The maximum value allowed


Get Value

  • « UI\Controls\Spin::__construct
  • UI\Controls\Spin::onChange »
  • PHP Manual
  • UI\Controls\Spin
  • Get Value

UI\Controls\Spin::getValue

(UI 0.9.9)

UI\Controls\Spin::getValue — Get Value

Descrição

public UI\Controls\Spin::getValue(): int

Get the value in this Spin

Parâmetros

Esta função não possui parâmetros.


Change Handler

  • « UI\Controls\Spin::getValue
  • UI\Controls\Spin::setValue »
  • PHP Manual
  • UI\Controls\Spin
  • Change Handler

UI\Controls\Spin::onChange

(UI 0.9.9)

UI\Controls\Spin::onChange — Change Handler

Descrição

protected UI\Controls\Spin::onChange()

Shall be executed when the value in this Spin changes

Parâmetros

Esta função não possui parâmetros.


Set Value

  • « UI\Controls\Spin::onChange
  • UI\Controls\Slider »
  • PHP Manual
  • UI\Controls\Spin
  • Set Value

UI\Controls\Spin::setValue

(UI 0.9.9)

UI\Controls\Spin::setValue — Set Value

Descrição

public UI\Controls\Spin::setValue(int $value)

Set the value in this Spin

Parâmetros

value

The new value


Slider Control

(UI 0.9.9)

Introdução

A Slider is a control which represents a range, and a current value in the range. The sliding element of the control (sometimes called the "thumb") reflects the value, and can be adjusted within the range.

Resumo da classe

class UI\Controls\Slider extends UI\Control {
/* Constructor */
public __construct(int $min, int $max)
/* Métodos */
public getValue(): int
protected onChange()
public setValue(int $value)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Índice

  • UI\Controls\Slider::__construct — Construct a new Slider
  • UI\Controls\Slider::getValue — Get Value
  • UI\Controls\Slider::onChange — Change Handler
  • UI\Controls\Slider::setValue — Set Value


Construct a new Slider

  • « UI\Controls\Slider
  • UI\Controls\Slider::getValue »
  • PHP Manual
  • UI\Controls\Slider
  • Construct a new Slider

UI\Controls\Slider::__construct

(UI 0.9.9)

UI\Controls\Slider::__construct — Construct a new Slider

Descrição

public UI\Controls\Slider::__construct(int $min, int $max)

Construct a new Slider with the given range

Parâmetros

min

The minimum allowed value

max

The maximum allowed value


Get Value

  • « UI\Controls\Slider::__construct
  • UI\Controls\Slider::onChange »
  • PHP Manual
  • UI\Controls\Slider
  • Get Value

UI\Controls\Slider::getValue

(UI 0.9.9)

UI\Controls\Slider::getValue — Get Value

Descrição

public UI\Controls\Slider::getValue(): int

Get the value from this Slider

Parâmetros

Esta função não possui parâmetros.


Change Handler

  • « UI\Controls\Slider::getValue
  • UI\Controls\Slider::setValue »
  • PHP Manual
  • UI\Controls\Slider
  • Change Handler

UI\Controls\Slider::onChange

(UI 0.9.9)

UI\Controls\Slider::onChange — Change Handler

Descrição

protected UI\Controls\Slider::onChange()

Shall be executed when the value of this Slider changes

Parâmetros

Esta função não possui parâmetros.


Set Value

  • « UI\Controls\Slider::onChange
  • UI\Controls\Progress »
  • PHP Manual
  • UI\Controls\Slider
  • Set Value

UI\Controls\Slider::setValue

(UI 0.9.9)

UI\Controls\Slider::setValue — Set Value

Descrição

public UI\Controls\Slider::setValue(int $value)

Shall set the value for this Slider

Parâmetros

value

The new value


Progress Control

(UI 0.9.9)

Introdução

A Progress control is a familiar Progress bar: It represents progress as a percentage, with a possible range of 0 to 100 (inclusive).

Resumo da classe

class UI\Controls\Progress extends UI\Control {
/* Métodos */
public getValue(): int
public setValue(int $value)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Índice

  • UI\Controls\Progress::getValue — Get Value
  • UI\Controls\Progress::setValue — Set Value


Get Value

  • « UI\Controls\Progress
  • UI\Controls\Progress::setValue »
  • PHP Manual
  • UI\Controls\Progress
  • Get Value

UI\Controls\Progress::getValue

(UI 0.9.9)

UI\Controls\Progress::getValue — Get Value

Descrição

public UI\Controls\Progress::getValue(): int

Shall retrieve the current value of this Progress bar

Parâmetros

Esta função não possui parâmetros.


Set Value

  • « UI\Controls\Progress::getValue
  • UI\Controls\Separator »
  • PHP Manual
  • UI\Controls\Progress
  • Set Value

UI\Controls\Progress::setValue

(UI 0.9.9)

UI\Controls\Progress::setValue — Set Value

Descrição

public UI\Controls\Progress::setValue(int $value)

Shall set the value for this Progress bar

Parâmetros

value

An integer between 0 and 100 (inclusive)


Control Separator

(UI 0.9.9)

Introdução

A Separator represents a control separator, it has no other function.

Resumo da classe

class UI\Controls\Separator extends UI\Control {
/* Constantes */
const int Horizontal;
const int Vertical;
/* Constructor */
public __construct(int $type = UI\Controls\Separator::Horizontal)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Constantes pré-definidas

UI\Controls\Separator::Horizontal

A Horizontal Separator

UI\Controls\Separator::Vertical

A Vertical Separator

Índice

  • UI\Controls\Separator::__construct — Construct a new Separator


Construct a new Separator

  • « UI\Controls\Separator
  • UI\Controls\Combo »
  • PHP Manual
  • UI\Controls\Separator
  • Construct a new Separator

UI\Controls\Separator::__construct

(UI 0.9.9)

UI\Controls\Separator::__construct — Construct a new Separator

Descrição

public UI\Controls\Separator::__construct(int $type = UI\Controls\Separator::Horizontal)

Shall construct a new Separator of the given type

Parâmetros

type

Separator::Horizonal or Separator::Vertical


Combo Control

(UI 0.9.9)

Introdução

A Combo control represents a list of options, like the familiar select HTML element.

Resumo da classe

class UI\Controls\Combo extends UI\Control {
/* Métodos */
public append(string $text)
public getSelected(): int
protected onSelected()
public setSelected(int $index)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Índice

  • UI\Controls\Combo::append — Append Option
  • UI\Controls\Combo::getSelected — Get Selected Option
  • UI\Controls\Combo::onSelected — Selected Handler
  • UI\Controls\Combo::setSelected — Set Selected Option


Append Option

  • « UI\Controls\Combo
  • UI\Controls\Combo::getSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Append Option

UI\Controls\Combo::append

(UI 0.9.9)

UI\Controls\Combo::append — Append Option

Descrição

public UI\Controls\Combo::append(string $text)

Append an option to this Combo

Parâmetros

text

The text for the new option


Get Selected Option

  • « UI\Controls\Combo::append
  • UI\Controls\Combo::onSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Get Selected Option

UI\Controls\Combo::getSelected

(UI 0.9.9)

UI\Controls\Combo::getSelected — Get Selected Option

Descrição

public UI\Controls\Combo::getSelected(): int

Shall retrieve the index of the option selected in this Combo

Parâmetros

Esta função não possui parâmetros.


Selected Handler

  • « UI\Controls\Combo::getSelected
  • UI\Controls\Combo::setSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Selected Handler

UI\Controls\Combo::onSelected

(UI 0.9.9)

UI\Controls\Combo::onSelected — Selected Handler

Descrição

protected UI\Controls\Combo::onSelected()

Shall be executed when an option is selected in this Combo

Parâmetros

Esta função não possui parâmetros.


Set Selected Option

  • « UI\Controls\Combo::onSelected
  • UI\Controls\EditableCombo »
  • PHP Manual
  • UI\Controls\Combo
  • Set Selected Option

UI\Controls\Combo::setSelected

(UI 0.9.9)

UI\Controls\Combo::setSelected — Set Selected Option

Descrição

public UI\Controls\Combo::setSelected(int $index)

Shall set the currently selected option in this Combo

Parâmetros

index

The index of the option to select


EdiableCombo Control

(UI 0.9.9)

Introdução

An Editable Combo is a Combo which allows the user to enter custom options

Resumo da classe

class UI\Controls\EditableCombo extends UI\Control {
/* Métodos */
public append(string $text)
public getText(): string
protected onChange()
public setText(string $text)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Índice

  • UI\Controls\EditableCombo::append — Append Option
  • UI\Controls\EditableCombo::getText — Get Text
  • UI\Controls\EditableCombo::onChange — Change Handler
  • UI\Controls\EditableCombo::setText — Set Text


Append Option

  • « UI\Controls\EditableCombo
  • UI\Controls\EditableCombo::getText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Append Option

UI\Controls\EditableCombo::append

(UI 0.9.9)

UI\Controls\EditableCombo::append — Append Option

Descrição

public UI\Controls\EditableCombo::append(string $text)

Shall append a new option to this Editable Combo

Parâmetros

text

The text for the new option


Get Text

  • « UI\Controls\EditableCombo::append
  • UI\Controls\EditableCombo::onChange »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Get Text

UI\Controls\EditableCombo::getText

(UI 0.9.9)

UI\Controls\EditableCombo::getText — Get Text

Descrição

public UI\Controls\EditableCombo::getText(): string

Get the value of the currently selected option in this Editable Combo

Parâmetros

Esta função não possui parâmetros.


Change Handler

  • « UI\Controls\EditableCombo::getText
  • UI\Controls\EditableCombo::setText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Change Handler

UI\Controls\EditableCombo::onChange

(UI 0.9.9)

UI\Controls\EditableCombo::onChange — Change Handler

Descrição

protected UI\Controls\EditableCombo::onChange()

Shall be executed when the value of this Editable Combobox changes

Parâmetros

Esta função não possui parâmetros.


Set Text

  • « UI\Controls\EditableCombo::onChange
  • UI\Controls\Radio »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Set Text

UI\Controls\EditableCombo::setText

(UI 0.9.9)

UI\Controls\EditableCombo::setText — Set Text

Descrição

public UI\Controls\EditableCombo::setText(string $text)

Shall set the text of the currently selected option in this Editable Combo

Parâmetros

text

The new text


Radio Control

(UI 0.9.9)

Introdução

A Radio is similar to the radio input type familiar from HTML

Resumo da classe

class UI\Controls\Radio extends UI\Control {
/* Métodos */
public append(string $text)
public getSelected(): int
protected onSelected()
public setSelected(int $index)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Índice

  • UI\Controls\Radio::append — Append Option
  • UI\Controls\Radio::getSelected — Get Selected Option
  • UI\Controls\Radio::onSelected — Selected Handler
  • UI\Controls\Radio::setSelected — Set Selected Option


Append Option

  • « UI\Controls\Radio
  • UI\Controls\Radio::getSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Append Option

UI\Controls\Radio::append

(UI 0.9.9)

UI\Controls\Radio::append — Append Option

Descrição

public UI\Controls\Radio::append(string $text)

Shall append a new option to this Radio

Parâmetros

text

The text (label) for the option


Get Selected Option

  • « UI\Controls\Radio::append
  • UI\Controls\Radio::onSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Get Selected Option

UI\Controls\Radio::getSelected

(UI 0.9.9)

UI\Controls\Radio::getSelected — Get Selected Option

Descrição

public UI\Controls\Radio::getSelected(): int

Shall retrieve the index of the currently selected option in this Radio

Parâmetros

Esta função não possui parâmetros.


Selected Handler

  • « UI\Controls\Radio::getSelected
  • UI\Controls\Radio::setSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Selected Handler

UI\Controls\Radio::onSelected

(UI 0.9.9)

UI\Controls\Radio::onSelected — Selected Handler

Descrição

protected UI\Controls\Radio::onSelected()

Shall be executed when the option selected in this Radio changes

Parâmetros

Esta função não possui parâmetros.


Set Selected Option

  • « UI\Controls\Radio::onSelected
  • UI\Controls\Picker »
  • PHP Manual
  • UI\Controls\Radio
  • Set Selected Option

UI\Controls\Radio::setSelected

(UI 0.9.9)

UI\Controls\Radio::setSelected — Set Selected Option

Descrição

public UI\Controls\Radio::setSelected(int $index)

Shall set the currently selected option in this Radio

Parâmetros

index

The index of the option to select


Picker Control

(UI 0.9.9)

Introdução

A Picker represents a button which when clicked presents a native Date/Time/DateTime Picker interface to the user.

Resumo da classe

class UI\Controls\Picker extends UI\Control {
/* Constantes */
const int Date;
const int Time;
const int DateTime;
/* Constructor */
public __construct(int $type = UI\Controls\Picker::Date)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Constantes pré-definidas

UI\Controls\Picker::Date

A Date Picker

UI\Controls\Picker::Time

A Time Picker

UI\Controls\Picker::DateTime

A Date and Time Picker

Índice

  • UI\Controls\Picker::__construct — Construct a new Picker


Construct a new Picker

  • « UI\Controls\Picker
  • UI\Controls\Form »
  • PHP Manual
  • UI\Controls\Picker
  • Construct a new Picker

UI\Controls\Picker::__construct

(UI 0.9.9)

UI\Controls\Picker::__construct — Construct a new Picker

Descrição

public UI\Controls\Picker::__construct(int $type = UI\Controls\Picker::Date)

Construct a new Picker of the given type

Parâmetros

type

Picker::Date, Picker::Time, or Picker::DateTime


Control Form (Arrangement)

(UI 0.9.9)

Introdução

A Form is a control which allows the arrangement of other controls into a familiar layout (the form).

Resumo da classe

class UI\Controls\Form extends UI\Control {
/* Propriedades */
protected $controls;
/* Métodos */
public append(string $label, UI\Control $control, bool $stretchy = false): int
public delete(int $index): bool
public isPadded(): bool
public setPadded(bool $padded)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Propriedades

controls

Contains controls, should not be manipulated directly

Índice

  • UI\Controls\Form::append — Append Control
  • UI\Controls\Form::delete — Delete Control
  • UI\Controls\Form::isPadded — Padding Detection
  • UI\Controls\Form::setPadded — Set Padding


Append Control

  • « UI\Controls\Form
  • UI\Controls\Form::delete »
  • PHP Manual
  • UI\Controls\Form
  • Append Control

UI\Controls\Form::append

(UI 0.9.9)

UI\Controls\Form::append — Append Control

Descrição

public UI\Controls\Form::append(string $label, UI\Control $control, bool $stretchy = false): int

Shall append the control to the form, and set the label

Parâmetros

label

The text for the label

control

A control

stretchy

Should be set true to stretch the control

Valor Retornado

Shall return the index of the appended control, may be 0


Delete Control

  • « UI\Controls\Form::append
  • UI\Controls\Form::isPadded »
  • PHP Manual
  • UI\Controls\Form
  • Delete Control

UI\Controls\Form::delete

(UI 0.9.9)

UI\Controls\Form::delete — Delete Control

Descrição

public UI\Controls\Form::delete(int $index): bool

Shall delete the control at the given index in this Form

Parâmetros

index

The index of the control to remove

Valor Retornado

Indication of succcess


Padding Detection

  • « UI\Controls\Form::delete
  • UI\Controls\Form::setPadded »
  • PHP Manual
  • UI\Controls\Form
  • Padding Detection

UI\Controls\Form::isPadded

(UI 0.9.9)

UI\Controls\Form::isPadded — Padding Detection

Descrição

public UI\Controls\Form::isPadded(): bool

Shall detect if padding is enabled on this Form

Parâmetros

Esta função não possui parâmetros.


Set Padding

  • « UI\Controls\Form::isPadded
  • UI\Controls\Grid »
  • PHP Manual
  • UI\Controls\Form
  • Set Padding

UI\Controls\Form::setPadded

(UI 0.9.9)

UI\Controls\Form::setPadded — Set Padding

Descrição

public UI\Controls\Form::setPadded(bool $padded)

Shall enable or disable padding on this Form

Parâmetros

padded


Control Grid (Arrangement)

(UI 0.9.9)

Introdução

A Grid is a control which is allows the arrangement of children into a grid

Resumo da classe

class UI\Controls\Grid extends UI\Control {
/* Constantes */
const int Fill;
const int Start;
const int Center;
const int End;
const int Leading;
const int Top;
const int Trailing;
const int Bottom;
/* Propriedades */
protected $controls;
/* Métodos */
public append(
UI\Control $control,
int $left,
int $top,
int $xspan,
int $yspan,
bool $hexpand,
int $halign,
bool $vexpand,
int $valign
)
public isPadded(): bool
public setPadded(bool $padding)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Constantes pré-definidas

UI\Controls\Grid::Fill

UI\Controls\Grid::Start

UI\Controls\Grid::Center

UI\Controls\Grid::End

UI\Controls\Grid::Leading

UI\Controls\Grid::Top

UI\Controls\Grid::Trailing

UI\Controls\Grid::Bottom

Propriedades

controls

Contains controls, should not be manipulated directly

Índice

  • UI\Controls\Grid::append — Append Control
  • UI\Controls\Grid::isPadded — Padding Detection
  • UI\Controls\Grid::setPadded — Set Padding


Append Control

  • « UI\Controls\Grid
  • UI\Controls\Grid::isPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Append Control

UI\Controls\Grid::append

(UI 0.9.9)

UI\Controls\Grid::append — Append Control

Descrição

public UI\Controls\Grid::append(
UI\Control $control,
int $left,
int $top,
int $xspan,
int $yspan,
bool $hexpand,
int $halign,
bool $vexpand,
int $valign
)

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

control

The Control to append

left

top

xspan

yspan

hexpand

halign

vexpand

valign

Valor Retornado


Padding Detection

  • « UI\Controls\Grid::append
  • UI\Controls\Grid::setPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Padding Detection

UI\Controls\Grid::isPadded

(UI 0.9.9)

UI\Controls\Grid::isPadded — Padding Detection

Descrição

public UI\Controls\Grid::isPadded(): bool

Shall detect if padding is enabled on this Grid

Parâmetros

Esta função não possui parâmetros.


Set Padding

  • « UI\Controls\Grid::isPadded
  • UI\Controls\Group »
  • PHP Manual
  • UI\Controls\Grid
  • Set Padding

UI\Controls\Grid::setPadded

(UI 0.9.9)

UI\Controls\Grid::setPadded — Set Padding

Descrição

public UI\Controls\Grid::setPadded(bool $padding)

Shall enable or disable padding for this Grid

Parâmetros

padding


Control Group (Arrangement)

(UI 0.9.9)

Introdução

A Group is a titled container for child controls

Resumo da classe

class UI\Controls\Group extends UI\Control {
/* Propriedades */
protected $controls;
/* Constructor */
public __construct(string $title)
/* Métodos */
public append(UI\Control $control)
public getTitle(): string
public hasMargin(): bool
public setMargin(bool $margin)
public setTitle(string $title)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Propriedades

controls

Contains controls, should not be manipulated directly

Índice

  • UI\Controls\Group::append — Append Control
  • UI\Controls\Group::__construct — Construct a new Group
  • UI\Controls\Group::getTitle — Get Title
  • UI\Controls\Group::hasMargin — Margin Detection
  • UI\Controls\Group::setMargin — Set Margin
  • UI\Controls\Group::setTitle — Set Title


Append Control

  • « UI\Controls\Group
  • UI\Controls\Group::__construct »
  • PHP Manual
  • UI\Controls\Group
  • Append Control

UI\Controls\Group::append

(Não há informação de versão disponível, talvez apenas no Git)

UI\Controls\Group::append — Append Control

Descrição

public UI\Controls\Group::append(UI\Control $control)

Shall append a control to this Group

Parâmetros

control

The control to append


Construct a new Group

  • « UI\Controls\Group::append
  • UI\Controls\Group::getTitle »
  • PHP Manual
  • UI\Controls\Group
  • Construct a new Group

UI\Controls\Group::__construct

(UI 0.9.9)

UI\Controls\Group::__construct — Construct a new Group

Descrição

public UI\Controls\Group::__construct(string $title)

Shall construct a new Group with the given title

Parâmetros

title

The text for the title label


Get Title

  • « UI\Controls\Group::__construct
  • UI\Controls\Group::hasMargin »
  • PHP Manual
  • UI\Controls\Group
  • Get Title

UI\Controls\Group::getTitle

(UI 0.9.9)

UI\Controls\Group::getTitle — Get Title

Descrição

public UI\Controls\Group::getTitle(): string

Shall return the current title for this Group

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current title


Margin Detection

  • « UI\Controls\Group::getTitle
  • UI\Controls\Group::setMargin »
  • PHP Manual
  • UI\Controls\Group
  • Margin Detection

UI\Controls\Group::hasMargin

(UI 0.9.9)

UI\Controls\Group::hasMargin — Margin Detection

Descrição

public UI\Controls\Group::hasMargin(): bool

Shall detect if this Group has a margin

Parâmetros

Esta função não possui parâmetros.


Set Margin

  • « UI\Controls\Group::hasMargin
  • UI\Controls\Group::setTitle »
  • PHP Manual
  • UI\Controls\Group
  • Set Margin

UI\Controls\Group::setMargin

(UI 0.9.9)

UI\Controls\Group::setMargin — Set Margin

Descrição

public UI\Controls\Group::setMargin(bool $margin)

Shall enable or disable margins for this Group

Parâmetros

margin


Set Title

  • « UI\Controls\Group::setMargin
  • UI\Controls\Box »
  • PHP Manual
  • UI\Controls\Group
  • Set Title

UI\Controls\Group::setTitle

(UI 0.9.9)

UI\Controls\Group::setTitle — Set Title

Descrição

public UI\Controls\Group::setTitle(string $title)

Shall set the title for this Group

Parâmetros

title

The text for the new title


Control Box (Arrangement)

(UI 0.9.9)

Introdução

A Box allows the arrangement of other controls

Resumo da classe

class UI\Controls\Box extends UI\Control {
/* Constantes */
const int Vertical;
const int Horizontal;
/* Propriedades */
protected $controls;
/* Constructor */
public __construct(int $orientation = UI\Controls\Box::Horizontal)
/* Métodos */
public append(Control $control, bool $stretchy = false): int
public delete(int $index): bool
public getOrientation(): int
public isPadded(): bool
public setPadded(bool $padded)
/* Métodos herdados */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Propriedades

controls

Contains controls, should not be manipulated directly

Constantes pré-definidas

UI\Controls\Box::Vertical

UI\Controls\Box::Horizontal

Índice

  • UI\Controls\Box::append — Append Control
  • UI\Controls\Box::__construct — Construct a new Box
  • UI\Controls\Box::delete — Delete Control
  • UI\Controls\Box::getOrientation — Get Orientation
  • UI\Controls\Box::isPadded — Padding Detection
  • UI\Controls\Box::setPadded — Set Padding


Append Control

  • « UI\Controls\Box
  • UI\Controls\Box::__construct »
  • PHP Manual
  • UI\Controls\Box
  • Append Control

UI\Controls\Box::append

(UI 0.9.9)

UI\Controls\Box::append — Append Control

Descrição

public UI\Controls\Box::append(Control $control, bool $stretchy = false): int

Shall append the given control to this Box

Parâmetros

control

The control to append

stretchy

Set true to stretch the control

Valor Retornado

Shall return the index of the appended control, may be 0


Construct a new Box

  • « UI\Controls\Box::append
  • UI\Controls\Box::delete »
  • PHP Manual
  • UI\Controls\Box
  • Construct a new Box

UI\Controls\Box::__construct

(UI 0.9.9)

UI\Controls\Box::__construct — Construct a new Box

Descrição

public UI\Controls\Box::__construct(int $orientation = UI\Controls\Box::Horizontal)

Shall construct a new box

Parâmetros

orientation

Box::Horizontal or Box::Vertical


Delete Control

  • « UI\Controls\Box::__construct
  • UI\Controls\Box::getOrientation »
  • PHP Manual
  • UI\Controls\Box
  • Delete Control

UI\Controls\Box::delete

(UI 0.9.9)

UI\Controls\Box::delete — Delete Control

Descrição

public UI\Controls\Box::delete(int $index): bool

Shall delete the control at the given index from this Box

Parâmetros

index

The index of the control to delete

Valor Retornado

Indication of success


Get Orientation

  • « UI\Controls\Box::delete
  • UI\Controls\Box::isPadded »
  • PHP Manual
  • UI\Controls\Box
  • Get Orientation

UI\Controls\Box::getOrientation

(UI 0.9.9)

UI\Controls\Box::getOrientation — Get Orientation

Descrição

public UI\Controls\Box::getOrientation(): int

Shall retrieve the orientation of this Box

Parâmetros

Esta função não possui parâmetros.


Padding Detection

  • « UI\Controls\Box::getOrientation
  • UI\Controls\Box::setPadded »
  • PHP Manual
  • UI\Controls\Box
  • Padding Detection

UI\Controls\Box::isPadded

(UI 0.9.9)

UI\Controls\Box::isPadded — Padding Detection

Descrição

public UI\Controls\Box::isPadded(): bool

Shall detect if padding is enabled on this Box

Parâmetros

Esta função não possui parâmetros.


Set Padding

  • « UI\Controls\Box::isPadded
  • UI\Draw\Pen »
  • PHP Manual
  • UI\Controls\Box
  • Set Padding

UI\Controls\Box::setPadded

(UI 0.9.9)

UI\Controls\Box::setPadded — Set Padding

Descrição

public UI\Controls\Box::setPadded(bool $padded)

Shall enable or disable padding on this Box

Parâmetros

padded


Draw Pen

(UI 0.9.9)

Introdução

The Pen is passed to the Area Draw event handler, it is used for clipping, filling, stroking, and writing to Draw Paths.

Resumo da classe

final class UI\Draw\Pen {
/* Métodos */
public clip(UI\Draw\Path $path)
public fill(UI\Draw\Path $path, UI\Draw\Brush $with)
public fill(UI\Draw\Path $path, UI\Draw\Color $with)
public fill(UI\Draw\Path $path, int $with)
public restore()
public save()
public stroke(UI\Draw\Path $path, UI\Draw\Brush $with, UI\Draw\Stroke $stroke)
public stroke(UI\Draw\Path $path, UI\Draw\Color $with, UI\Draw\Stroke $stroke)
public stroke(UI\Draw\Path $path, int $with, UI\Draw\Stroke $stroke)
public transform(UI\Draw\Matrix $matrix)
public write(UI\Point $point, UI\Draw\Text\Layout $layout)
}

Índice

  • UI\Draw\Pen::clip — Clip a Path
  • UI\Draw\Pen::fill — Fill a Path
  • UI\Draw\Pen::restore — Restore
  • UI\Draw\Pen::save — Save
  • UI\Draw\Pen::stroke — Stroke a Path
  • UI\Draw\Pen::transform — Matrix Transform
  • UI\Draw\Pen::write — Draw Text at Point


Clip a Path

  • « UI\Draw\Pen
  • UI\Draw\Pen::fill »
  • PHP Manual
  • UI\Draw\Pen
  • Clip a Path

UI\Draw\Pen::clip

(UI 0.9.9)

UI\Draw\Pen::clip — Clip a Path

Descrição

public UI\Draw\Pen::clip(UI\Draw\Path $path)

Shall clip the given Path

Parâmetros

path

The path to clip


Fill a Path

  • « UI\Draw\Pen::clip
  • UI\Draw\Pen::restore »
  • PHP Manual
  • UI\Draw\Pen
  • Fill a Path

UI\Draw\Pen::fill

(UI 0.9.9)

UI\Draw\Pen::fill — Fill a Path

Descrição

public UI\Draw\Pen::fill(UI\Draw\Path $path, UI\Draw\Brush $with)
public UI\Draw\Pen::fill(UI\Draw\Path $path, UI\Draw\Color $with)
public UI\Draw\Pen::fill(UI\Draw\Path $path, int $with)

Shall fill the given path

Parâmetros

path

The path to fill

with

The color or brush to fill with


Restore

  • « UI\Draw\Pen::fill
  • UI\Draw\Pen::save »
  • PHP Manual
  • UI\Draw\Pen
  • Restore

UI\Draw\Pen::restore

(UI 0.9.9)

UI\Draw\Pen::restore — Restore

Descrição

public UI\Draw\Pen::restore()

Shall restore a previously saved Pen

Parâmetros

Esta função não possui parâmetros.


Save

  • « UI\Draw\Pen::restore
  • UI\Draw\Pen::stroke »
  • PHP Manual
  • UI\Draw\Pen
  • Save

UI\Draw\Pen::save

(UI 0.9.9)

UI\Draw\Pen::save — Save

Descrição

public UI\Draw\Pen::save()

Shall save the Pen

Parâmetros

Esta função não possui parâmetros.


Stroke a Path

  • « UI\Draw\Pen::save
  • UI\Draw\Pen::transform »
  • PHP Manual
  • UI\Draw\Pen
  • Stroke a Path

UI\Draw\Pen::stroke

(UI 0.9.9)

UI\Draw\Pen::stroke — Stroke a Path

Descrição

public UI\Draw\Pen::stroke(UI\Draw\Path $path, UI\Draw\Brush $with, UI\Draw\Stroke $stroke)
public UI\Draw\Pen::stroke(UI\Draw\Path $path, UI\Draw\Color $with, UI\Draw\Stroke $stroke)
public UI\Draw\Pen::stroke(UI\Draw\Path $path, int $with, UI\Draw\Stroke $stroke)

Shall stroke the given path

Parâmetros

path

The path to stroke

with

The color or brush to stroke with

stroke

The configuration of the stroke


Matrix Transform

  • « UI\Draw\Pen::stroke
  • UI\Draw\Pen::write »
  • PHP Manual
  • UI\Draw\Pen
  • Matrix Transform

UI\Draw\Pen::transform

(UI 0.9.9)

UI\Draw\Pen::transform — Matrix Transform

Descrição

public UI\Draw\Pen::transform(UI\Draw\Matrix $matrix)

Shall perform matrix transformation

Parâmetros

matrix

The matrix to use


Draw Text at Point

  • « UI\Draw\Pen::transform
  • UI\Draw\Path »
  • PHP Manual
  • UI\Draw\Pen
  • Draw Text at Point

UI\Draw\Pen::write

(UI 0.9.9)

UI\Draw\Pen::write — Draw Text at Point

Descrição

public UI\Draw\Pen::write(UI\Point $point, UI\Draw\Text\Layout $layout)

Shall draw the given text layout at the given point

Parâmetros

point

The point to perform the drawing

layout

The layout of the text to draw


Draw Path

(UI 0.9.9)

Introdução

A Draw Path guides a Draw Pen, telling the Pen where to draw on an Area.

Resumo da classe

class UI\Draw\Path {
/* Constantes */
const int Winding;
const int Alternate;
/* Constructor */
public __construct(int $mode = UI\Draw\Path::Winding)
/* Métodos */
public addRectangle(UI\Point $point, UI\Size $size)
public arcTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)
public bezierTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)
public closeFigure()
public end()
public lineTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)
public newFigure(UI\Point $point)
public newFigureWithArc(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)
}

Constantes pré-definidas

UI\Draw\Path::Winding

This is the default draw path mode

UI\Draw\Path::Alternate

This is the alternate draw path mode

Índice

  • UI\Draw\Path::addRectangle — Draw a Rectangle
  • UI\Draw\Path::arcTo — Draw an Arc
  • UI\Draw\Path::bezierTo — Draw Bezier Curve
  • UI\Draw\Path::closeFigure — Close Figure
  • UI\Draw\Path::__construct — Construct a new Path
  • UI\Draw\Path::end — Finalize Path
  • UI\Draw\Path::lineTo — Draw a Line
  • UI\Draw\Path::newFigure — Draw Figure
  • UI\Draw\Path::newFigureWithArc — Draw Figure with Arc


Draw a Rectangle

  • « UI\Draw\Path
  • UI\Draw\Path::arcTo »
  • PHP Manual
  • UI\Draw\Path
  • Draw a Rectangle

UI\Draw\Path::addRectangle

(UI 0.9.9)

UI\Draw\Path::addRectangle — Draw a Rectangle

Descrição

public UI\Draw\Path::addRectangle(UI\Point $point, UI\Size $size)

Shall map the path of a rectangle of the given size, at the given point

Parâmetros

point

The point to begin the shape

size

The size of the rectangle


Draw an Arc

  • « UI\Draw\Path::addRectangle
  • UI\Draw\Path::bezierTo »
  • PHP Manual
  • UI\Draw\Path
  • Draw an Arc

UI\Draw\Path::arcTo

(UI 0.9.9)

UI\Draw\Path::arcTo — Draw an Arc

Descrição

public UI\Draw\Path::arcTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)

Shall map the path for an arc

Parâmetros

point

The point to begin mapping

radius

The radius of the arc

angle

The angle of the arc

sweep

The sweep of the arc

negative

Valor Retornado


Draw Bezier Curve

  • « UI\Draw\Path::arcTo
  • UI\Draw\Path::closeFigure »
  • PHP Manual
  • UI\Draw\Path
  • Draw Bezier Curve

UI\Draw\Path::bezierTo

(UI 0.9.9)

UI\Draw\Path::bezierTo — Draw Bezier Curve

Descrição

public UI\Draw\Path::bezierTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)

Shall draw a bezier curve

Parâmetros

point

The point at which to begin mapping

radius

The radius of the curve

angle

The angle of the curve

sweep

The sweep of the curve

negative


Close Figure

  • « UI\Draw\Path::bezierTo
  • UI\Draw\Path::__construct »
  • PHP Manual
  • UI\Draw\Path
  • Close Figure

UI\Draw\Path::closeFigure

(UI 0.9.9)

UI\Draw\Path::closeFigure — Close Figure

Descrição

public UI\Draw\Path::closeFigure()

Shall close the current figure

Parâmetros

Esta função não possui parâmetros.


Construct a new Path

  • « UI\Draw\Path::closeFigure
  • UI\Draw\Path::end »
  • PHP Manual
  • UI\Draw\Path
  • Construct a new Path

UI\Draw\Path::__construct

(UI 0.9.9)

UI\Draw\Path::__construct — Construct a new Path

Descrição

public UI\Draw\Path::__construct(int $mode = UI\Draw\Path::Winding)

Shall construct a new path in the given mode

Parâmetros

mode

Path::Winding or Path::Alternate


Finalize Path

  • « UI\Draw\Path::__construct
  • UI\Draw\Path::lineTo »
  • PHP Manual
  • UI\Draw\Path
  • Finalize Path

UI\Draw\Path::end

(UI 0.9.9)

UI\Draw\Path::end — Finalize Path

Descrição

public UI\Draw\Path::end()

Shall finalize this Path

Parâmetros

Esta função não possui parâmetros.


Draw a Line

  • « UI\Draw\Path::end
  • UI\Draw\Path::newFigure »
  • PHP Manual
  • UI\Draw\Path
  • Draw a Line

UI\Draw\Path::lineTo

(UI 0.9.9)

UI\Draw\Path::lineTo — Draw a Line

Descrição

public UI\Draw\Path::lineTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)

Shall map the path for a line

Parâmetros

point

The point to begin mapping

radius

angle

sweep

negative

Valor Retornado


Draw Figure

  • « UI\Draw\Path::lineTo
  • UI\Draw\Path::newFigureWithArc »
  • PHP Manual
  • UI\Draw\Path
  • Draw Figure

UI\Draw\Path::newFigure

(UI 0.9.9)

UI\Draw\Path::newFigure — Draw Figure

Descrição

public UI\Draw\Path::newFigure(UI\Point $point)

Shall map a new figure at the given point

Parâmetros

point

The point to begin mapping


Draw Figure with Arc

  • « UI\Draw\Path::newFigure
  • UI\Draw\Matrix »
  • PHP Manual
  • UI\Draw\Path
  • Draw Figure with Arc

UI\Draw\Path::newFigureWithArc

(UI 0.9.9)

UI\Draw\Path::newFigureWithArc — Draw Figure with Arc

Descrição

public UI\Draw\Path::newFigureWithArc(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)

Parâmetros

point

radius

angle

sweep

negative

Valor Retornado


Draw Matrix

(UI 0.9.9)

Introdução

Resumo da classe

class UI\Draw\Matrix {
/* Métodos */
public invert()
public isInvertible(): bool
public multiply(UI\Draw\Matrix $matrix): UI\Draw\Matrix
public rotate(UI\Point $point, float $amount)
public scale(UI\Point $center, UI\Point $point)
public skew(UI\Point $point, UI\Point $amount)
public translate(UI\Point $point)
}

Índice

  • UI\Draw\Matrix::invert — Invert Matrix
  • UI\Draw\Matrix::isInvertible — Invertible Detection
  • UI\Draw\Matrix::multiply — Multiply Matrix
  • UI\Draw\Matrix::rotate — Rotate Matrix
  • UI\Draw\Matrix::scale — Scale Matrix
  • UI\Draw\Matrix::skew — Skew Matrix
  • UI\Draw\Matrix::translate — Translate Matrix


Invert Matrix

  • « UI\Draw\Matrix
  • UI\Draw\Matrix::isInvertible »
  • PHP Manual
  • UI\Draw\Matrix
  • Invert Matrix

UI\Draw\Matrix::invert

(UI 0.9.9)

UI\Draw\Matrix::invert — Invert Matrix

Descrição

public UI\Draw\Matrix::invert()

Shall invert this matrix

Parâmetros

Esta função não possui parâmetros.


Invertible Detection

  • « UI\Draw\Matrix::invert
  • UI\Draw\Matrix::multiply »
  • PHP Manual
  • UI\Draw\Matrix
  • Invertible Detection

UI\Draw\Matrix::isInvertible

(UI 0.9.9)

UI\Draw\Matrix::isInvertible — Invertible Detection

Descrição

public UI\Draw\Matrix::isInvertible(): bool

Shall detect if this Matrix may be inverted

Parâmetros

Esta função não possui parâmetros.


Multiply Matrix

  • « UI\Draw\Matrix::isInvertible
  • UI\Draw\Matrix::rotate »
  • PHP Manual
  • UI\Draw\Matrix
  • Multiply Matrix

UI\Draw\Matrix::multiply

(UI 0.9.9)

UI\Draw\Matrix::multiply — Multiply Matrix

Descrição

public UI\Draw\Matrix::multiply(UI\Draw\Matrix $matrix): UI\Draw\Matrix

Shall multiply this matrix with the given matrix

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The new Matrix


Rotate Matrix

  • « UI\Draw\Matrix::multiply
  • UI\Draw\Matrix::scale »
  • PHP Manual
  • UI\Draw\Matrix
  • Rotate Matrix

UI\Draw\Matrix::rotate

(UI 0.9.9)

UI\Draw\Matrix::rotate — Rotate Matrix

Descrição

public UI\Draw\Matrix::rotate(UI\Point $point, float $amount)

Shall rotate this Matrix

Parâmetros

point

amount


Scale Matrix

  • « UI\Draw\Matrix::rotate
  • UI\Draw\Matrix::skew »
  • PHP Manual
  • UI\Draw\Matrix
  • Scale Matrix

UI\Draw\Matrix::scale

(UI 0.9.9)

UI\Draw\Matrix::scale — Scale Matrix

Descrição

public UI\Draw\Matrix::scale(UI\Point $center, UI\Point $point)

Shall scale this Matrix

Parâmetros

center

point


Skew Matrix

  • « UI\Draw\Matrix::scale
  • UI\Draw\Matrix::translate »
  • PHP Manual
  • UI\Draw\Matrix
  • Skew Matrix

UI\Draw\Matrix::skew

(UI 0.9.9)

UI\Draw\Matrix::skew — Skew Matrix

Descrição

public UI\Draw\Matrix::skew(UI\Point $point, UI\Point $amount)

Shall skew this Matrix

Parâmetros

point

amount


Translate Matrix

  • « UI\Draw\Matrix::skew
  • UI\Draw\Color »
  • PHP Manual
  • UI\Draw\Matrix
  • Translate Matrix

UI\Draw\Matrix::translate

(UI 0.9.9)

UI\Draw\Matrix::translate — Translate Matrix

Descrição

public UI\Draw\Matrix::translate(UI\Point $point)

Shall translate this Matrix

Parâmetros

point


Color Representation

(UI 0.9.9)

Introdução

Represents RGBA colours, individual channels are accessible via public properties.

Resumo da classe

class UI\Draw\Color {
/* Constantes */
const int Red;
const int Green;
const int Blue;
const int Alpha;
/* Propriedades */
public $r;
public $g;
public $b;
public $a;
/* Constructor */
public __construct(UI\Draw\Color $color = ?)
public __construct(int $color = ?)
/* Métodos */
public getChannel(int $channel): float
public setChannel(int $channel, float $value): void
}

Propriedades

r

Provides access to the red channel

g

Provides access to the green channel

b

Provides access to the blue channel

a

Provides access to the alpha channel

Constantes pré-definidas

UI\Draw\Color::Red

Identifies the red channel

UI\Draw\Color::Green

Identifies the green channel

UI\Draw\Color::Blue

Identifies the blue channel

UI\Draw\Color::Alpha

Identifies the alpha channel

Índice

  • UI\Draw\Color::__construct — Construct new Color
  • UI\Draw\Color::getChannel — Color Manipulation
  • UI\Draw\Color::setChannel — Color Manipulation


Construct new Color

  • « UI\Draw\Color
  • UI\Draw\Color::getChannel »
  • PHP Manual
  • UI\Draw\Color
  • Construct new Color

UI\Draw\Color::__construct

(UI 0.9.9)

UI\Draw\Color::__construct — Construct new Color

Descrição

public UI\Draw\Color::__construct(UI\Draw\Color $color = ?)
public UI\Draw\Color::__construct(int $color = ?)

Shall construct a new color

Parâmetros

color

May be UI\Draw\Color or RRGGBBAA


Color Manipulation

  • « UI\Draw\Color::__construct
  • UI\Draw\Color::setChannel »
  • PHP Manual
  • UI\Draw\Color
  • Color Manipulation

UI\Draw\Color::getChannel

(UI 0.9.9)

UI\Draw\Color::getChannel — Color Manipulation

Descrição

public UI\Draw\Color::getChannel(int $channel): float

Shall retrieve the value for a channel

Parâmetros

channel

Constant channel identity

Valor Retornado

The current value of the requested channel


Color Manipulation

  • « UI\Draw\Color::getChannel
  • UI\Draw\Stroke »
  • PHP Manual
  • UI\Draw\Color
  • Color Manipulation

UI\Draw\Color::setChannel

(UI 0.9.9)

UI\Draw\Color::setChannel — Color Manipulation

Descrição

public UI\Draw\Color::setChannel(int $channel, float $value): void

Shall set the selected channel to the given value

Parâmetros

channel

Constant channel identity

value

The new value for the selected channel

Valor Retornado


Draw Stroke

(UI 0.9.9)

Introdução

Holds the configuration for the Pen to perform a stroke

Resumo da classe

class UI\Draw\Stroke {
/* Constructor */
public __construct(
int $cap = UI\Draw\Line\Cap::Flat,
int $join = UI\Draw\Line\Join::Miter,
float $thickness = 1,
float $miterLimit = 10
)
/* Métodos */
public getCap(): int
public getJoin(): int
public getMiterLimit(): float
public getThickness(): float
public setCap(int $cap)
public setJoin(int $join)
public setMiterLimit(float $limit)
public setThickness(float $thickness)
}

Índice

  • UI\Draw\Stroke::__construct — Construct a new Stroke
  • UI\Draw\Stroke::getCap — Get Line Cap
  • UI\Draw\Stroke::getJoin — Get Line Join
  • UI\Draw\Stroke::getMiterLimit — Get Miter Limit
  • UI\Draw\Stroke::getThickness — Get Thickness
  • UI\Draw\Stroke::setCap — Set Line Cap
  • UI\Draw\Stroke::setJoin — Set Line Join
  • UI\Draw\Stroke::setMiterLimit — Set Miter Limit
  • UI\Draw\Stroke::setThickness — Set Thickness


Construct a new Stroke

  • « UI\Draw\Stroke
  • UI\Draw\Stroke::getCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Construct a new Stroke

UI\Draw\Stroke::__construct

(UI 0.9.9)

UI\Draw\Stroke::__construct — Construct a new Stroke

Descrição

public UI\Draw\Stroke::__construct(
int $cap = UI\Draw\Line\Cap::Flat,
int $join = UI\Draw\Line\Join::Miter,
float $thickness = 1,
float $miterLimit = 10
)

Shall construct a new Stroke

Parâmetros

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

thickness

The thickness of the stroke

miterLimit

Miter limit (default is sensible for all supported platforms)


Get Line Cap

  • « UI\Draw\Stroke::__construct
  • UI\Draw\Stroke::getJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Line Cap

UI\Draw\Stroke::getCap

(UI 0.9.9)

UI\Draw\Stroke::getCap — Get Line Cap

Descrição

public UI\Draw\Stroke::getCap(): int

Shall retrieve the line cap setting of this Stroke

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square


Get Line Join

  • « UI\Draw\Stroke::getCap
  • UI\Draw\Stroke::getMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Line Join

UI\Draw\Stroke::getJoin

(UI 0.9.9)

UI\Draw\Stroke::getJoin — Get Line Join

Descrição

public UI\Draw\Stroke::getJoin(): int

Shall retrieve the line join setting of this Stroke

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel


Get Miter Limit

  • « UI\Draw\Stroke::getJoin
  • UI\Draw\Stroke::getThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Miter Limit

UI\Draw\Stroke::getMiterLimit

(UI 0.9.9)

UI\Draw\Stroke::getMiterLimit — Get Miter Limit

Descrição

public UI\Draw\Stroke::getMiterLimit(): float

Shall retrieve the miter limit of this Stroke

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current miter limit


Get Thickness

  • « UI\Draw\Stroke::getMiterLimit
  • UI\Draw\Stroke::setCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Thickness

UI\Draw\Stroke::getThickness

(UI 0.9.9)

UI\Draw\Stroke::getThickness — Get Thickness

Descrição

public UI\Draw\Stroke::getThickness(): float

Shall retrieve the thickness of this Stroke

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current thickness


Set Line Cap

  • « UI\Draw\Stroke::getThickness
  • UI\Draw\Stroke::setJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Line Cap

UI\Draw\Stroke::setCap

(UI 0.9.9)

UI\Draw\Stroke::setCap — Set Line Cap

Descrição

public UI\Draw\Stroke::setCap(int $cap)

Shall set the line cap setting for this Stroke

Parâmetros

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square


Set Line Join

  • « UI\Draw\Stroke::setCap
  • UI\Draw\Stroke::setMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Line Join

UI\Draw\Stroke::setJoin

(UI 0.9.9)

UI\Draw\Stroke::setJoin — Set Line Join

Descrição

public UI\Draw\Stroke::setJoin(int $join)

Shall set the line join setting for this Stroke

Parâmetros

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

Valor Retornado


Set Miter Limit

  • « UI\Draw\Stroke::setJoin
  • UI\Draw\Stroke::setThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Miter Limit

UI\Draw\Stroke::setMiterLimit

(UI 0.9.9)

UI\Draw\Stroke::setMiterLimit — Set Miter Limit

Descrição

public UI\Draw\Stroke::setMiterLimit(float $limit)

Set the miter limit for this Stroke

Parâmetros

limit

The new limit


Set Thickness

  • « UI\Draw\Stroke::setMiterLimit
  • UI\Draw\Brush »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Thickness

UI\Draw\Stroke::setThickness

(UI 0.9.9)

UI\Draw\Stroke::setThickness — Set Thickness

Descrição

public UI\Draw\Stroke::setThickness(float $thickness)

Shall set the thickness for this Stroke

Parâmetros

thickness

The new thickness


Brushes

(UI 0.9.9)

Introdução

Represents a solid color brush

Resumo da classe

class UI\Draw\Brush {
/* Constructor */
public __construct(UI\Draw\Color $color)
public __construct(int $color)
/* Métodos */
public getColor(): UI\Draw\Color
public setColor(UI\Draw\Color $color): void
public setColor(int $color): void
}

Índice

  • UI\Draw\Brush::__construct — Construct a new Brush
  • UI\Draw\Brush::getColor — Get Color
  • UI\Draw\Brush::setColor — Set Color


Construct a new Brush

  • « UI\Draw\Brush
  • UI\Draw\Brush::getColor »
  • PHP Manual
  • UI\Draw\Brush
  • Construct a new Brush

UI\Draw\Brush::__construct

(UI 0.9.9)

UI\Draw\Brush::__construct — Construct a new Brush

Descrição

public UI\Draw\Brush::__construct(UI\Draw\Color $color)
public UI\Draw\Brush::__construct(int $color)

Shall construct a solid brush using the given color

Parâmetros

color

Can be a UI\Draw\Color or RRGGBBAA


Get Color

  • « UI\Draw\Brush::__construct
  • UI\Draw\Brush::setColor »
  • PHP Manual
  • UI\Draw\Brush
  • Get Color

UI\Draw\Brush::getColor

(UI 0.9.9)

UI\Draw\Brush::getColor — Get Color

Descrição

public UI\Draw\Brush::getColor(): UI\Draw\Color

Shall return a UI\Draw\Color for this brush

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

The current color of the brush


Set Color

  • « UI\Draw\Brush::getColor
  • UI\Draw\Brush\Gradient »
  • PHP Manual
  • UI\Draw\Brush
  • Set Color

UI\Draw\Brush::setColor

(UI 0.9.9)

UI\Draw\Brush::setColor — Set Color

Descrição

public UI\Draw\Brush::setColor(UI\Draw\Color $color): void
public UI\Draw\Brush::setColor(int $color): void

Shall set the color of this brush to the color provided

Parâmetros

color

Can be a UI\Draw\Color or RRGGBBAA

Valor Retornado


Gradient Brushes

(UI 2.0.0)

Introdução

Abstract for gradient brushes

Resumo da classe

abstract class UI\Draw\Brush\Gradient extends UI\Draw\Brush {
/* Métodos */
public addStop(float $position, UI\Draw\Color $color): int
public addStop(float $position, int $color): int
public delStop(int $index): int
public setStop(int $index, float $position, UI\Draw\Color $color): bool
public setStop(int $index, float $position, int $color): bool
/* Métodos herdados */
public UI\Draw\Brush::getColor(): UI\Draw\Color
public UI\Draw\Brush::setColor(UI\Draw\Color $color): void
public UI\Draw\Brush::setColor(int $color): void
}

Índice

  • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::setStop — Stop Manipulation


Stop Manipulation

  • « UI\Draw\Brush\Gradient
  • UI\Draw\Brush\Gradient::delStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::addStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::addStop — Stop Manipulation

Descrição

public UI\Draw\Brush\Gradient::addStop(float $position, UI\Draw\Color $color): int
public UI\Draw\Brush\Gradient::addStop(float $position, int $color): int

Shall at a stop of the given color at the given position

Parâmetros

position

The position for the new stop

color

The color for the new stop, may be UI\Draw\Color or RRGGBBAA

Valor Retornado

Total number of stops


Stop Manipulation

  • « UI\Draw\Brush\Gradient::addStop
  • UI\Draw\Brush\Gradient::setStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::delStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::delStop — Stop Manipulation

Descrição

public UI\Draw\Brush\Gradient::delStop(int $index): int

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

index

Valor Retornado

Total number of stops


Stop Manipulation

  • « UI\Draw\Brush\Gradient::delStop
  • UI\Draw\Brush\LinearGradient »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::setStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::setStop — Stop Manipulation

Descrição

public UI\Draw\Brush\Gradient::setStop(int $index, float $position, UI\Draw\Color $color): bool
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, int $color): bool

Parâmetros

index

The index of the stop to set

position

The position for the stop

color

The color for the stop, may be UI\Draw\Color or RRGGBBAA

Valor Retornado

Indication of success


Linear Gradient

(UI 2.0.0)

Introdução

Resumo da classe

class UI\Draw\Brush\LinearGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct(UI\Point $start, UI\Point $end)
/* Métodos herdados */
public UI\Draw\Brush\Gradient::addStop(float $position, UI\Draw\Color $color): int
public UI\Draw\Brush\Gradient::addStop(float $position, int $color): int
public UI\Draw\Brush\Gradient::delStop(int $index): int
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, UI\Draw\Color $color): bool
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, int $color): bool
}

Índice

  • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient


Construct a Linear Gradient

  • « UI\Draw\Brush\LinearGradient
  • UI\Draw\Brush\RadialGradient »
  • PHP Manual
  • UI\Draw\Brush\LinearGradient
  • Construct a Linear Gradient

UI\Draw\Brush\LinearGradient::__construct

(UI 2.0.0)

UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient

Descrição

public UI\Draw\Brush\LinearGradient::__construct(UI\Point $start, UI\Point $end)

Shall construct a new linear gradient

Parâmetros

start

end


Radial Gradient

(UI 2.0.0)

Introdução

Resumo da classe

class UI\Draw\Brush\RadialGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct(UI\Point $start, UI\Point $outer, float $radius)
/* Métodos herdados */
public UI\Draw\Brush\Gradient::addStop(float $position, UI\Draw\Color $color): int
public UI\Draw\Brush\Gradient::addStop(float $position, int $color): int
public UI\Draw\Brush\Gradient::delStop(int $index): int
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, UI\Draw\Color $color): bool
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, int $color): bool
}

Índice

  • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient


Construct a new Radial Gradient

  • « UI\Draw\Brush\RadialGradient
  • UI\Draw\Text\Layout »
  • PHP Manual
  • UI\Draw\Brush\RadialGradient
  • Construct a new Radial Gradient

UI\Draw\Brush\RadialGradient::__construct

(UI 2.0.0)

UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient

Descrição

public UI\Draw\Brush\RadialGradient::__construct(UI\Point $start, UI\Point $outer, float $radius)

Shall construct a new radial gradient

Parâmetros

start

outer

radius


Represents Text Layout

(UI 0.9.9)

Introdução

A Text Layout represents the layout of text which will be drawn by the Pen

Resumo da classe

class UI\Draw\Text\Layout {
/* Constructor */
public __construct(string $text, UI\Draw\Text\Font $font, float $width)
/* Métodos */
public setColor(UI\Draw\Color $color, int $start = 0, int $end = ?)
public setColor(int $color, int $start = 0, int $end = ?)
public setWidth(float $width)
}

Índice

  • UI\Draw\Text\Layout::__construct — Construct a new Text Layout
  • UI\Draw\Text\Layout::setColor — Set Color
  • UI\Draw\Text\Layout::setWidth — Set Width


Construct a new Text Layout

  • « UI\Draw\Text\Layout
  • UI\Draw\Text\Layout::setColor »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Construct a new Text Layout

UI\Draw\Text\Layout::__construct

(UI 0.9.9)

UI\Draw\Text\Layout::__construct — Construct a new Text Layout

Descrição

public UI\Draw\Text\Layout::__construct(string $text, UI\Draw\Text\Font $font, float $width)

Shall construct a new Text Layout

Parâmetros

text

The text for the layout

font

The font to use for writing

width

The width of the layout


Set Color

  • « UI\Draw\Text\Layout::__construct
  • UI\Draw\Text\Layout::setWidth »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Set Color

UI\Draw\Text\Layout::setColor

(UI 0.9.9)

UI\Draw\Text\Layout::setColor — Set Color

Descrição

public UI\Draw\Text\Layout::setColor(UI\Draw\Color $color, int $start = 0, int $end = ?)
public UI\Draw\Text\Layout::setColor(int $color, int $start = 0, int $end = ?)

Shall set the Color for all of, or a range of the text in the Layout

Parâmetros

color

The color to use

start

The starting character

end

The ending character, by default the end of the string


Set Width

  • « UI\Draw\Text\Layout::setColor
  • UI\Draw\Text\Font »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Set Width

UI\Draw\Text\Layout::setWidth

(UI 0.9.9)

UI\Draw\Text\Layout::setWidth — Set Width

Descrição

public UI\Draw\Text\Layout::setWidth(float $width)

Shall set the width of this Text Layout

Parâmetros

width

The new width


Represents a Font

(UI 0.9.9)

Introdução

Loads a described font

Resumo da classe

class UI\Draw\Text\Font {
/* Constructor */
public __construct(UI\Draw\Text\Font\Descriptor $descriptor)
/* Métodos */
public getAscent(): float
public getDescent(): float
public getLeading(): float
public getUnderlinePosition(): float
public getUnderlineThickness(): float
}

Índice

  • UI\Draw\Text\Font::__construct — Construct a new Font
  • UI\Draw\Text\Font::getAscent — Font Metrics
  • UI\Draw\Text\Font::getDescent — Font Metrics
  • UI\Draw\Text\Font::getLeading — Font Metrics
  • UI\Draw\Text\Font::getUnderlinePosition — Font Metrics
  • UI\Draw\Text\Font::getUnderlineThickness — Font Metrics


Construct a new Font

  • « UI\Draw\Text\Font
  • UI\Draw\Text\Font::getAscent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Construct a new Font

UI\Draw\Text\Font::__construct

(UI 0.9.9)

UI\Draw\Text\Font::__construct — Construct a new Font

Descrição

public UI\Draw\Text\Font::__construct(UI\Draw\Text\Font\Descriptor $descriptor)

Shall construct a new Font using the given descriptor

Parâmetros

descriptor

The descriptor for the Font


Font Metrics

  • « UI\Draw\Text\Font::__construct
  • UI\Draw\Text\Font::getDescent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getAscent

(UI 1.0.3)

UI\Draw\Text\Font::getAscent — Font Metrics

Descrição

public UI\Draw\Text\Font::getAscent(): float

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Font Metrics

  • « UI\Draw\Text\Font::getAscent
  • UI\Draw\Text\Font::getLeading »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getDescent

(UI 1.0.3)

UI\Draw\Text\Font::getDescent — Font Metrics

Descrição

public UI\Draw\Text\Font::getDescent(): float

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Font Metrics

  • « UI\Draw\Text\Font::getDescent
  • UI\Draw\Text\Font::getUnderlinePosition »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getLeading

(UI 1.0.3)

UI\Draw\Text\Font::getLeading — Font Metrics

Descrição

public UI\Draw\Text\Font::getLeading(): float

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Font Metrics

  • « UI\Draw\Text\Font::getLeading
  • UI\Draw\Text\Font::getUnderlineThickness »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getUnderlinePosition

(UI 1.0.3)

UI\Draw\Text\Font::getUnderlinePosition — Font Metrics

Descrição

public UI\Draw\Text\Font::getUnderlinePosition(): float

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Font Metrics

  • « UI\Draw\Text\Font::getUnderlinePosition
  • UI\Draw\Text\Font\Descriptor »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getUnderlineThickness

(UI 1.0.3)

UI\Draw\Text\Font::getUnderlineThickness — Font Metrics

Descrição

public UI\Draw\Text\Font::getUnderlineThickness(): float

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Font Descriptor

(UI 0.9.9)

Introdução

Describes a font

Resumo da classe

class UI\Draw\Text\Font\Descriptor {
/* Constructor */
public __construct(
string $family,
float $size,
int $weight = UI\Draw\Text\Font\Weight::Normal,
int $italic = UI\Draw\Text\Font\Italic::Normal,
int $stretch = UI\Draw\Text\Font\Stretch::Normal
)
/* Métodos */
public getFamily(): string
public getItalic(): int
public getSize(): float
public getStretch(): int
public getWeight(): int
}

Índice

  • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
  • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
  • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
  • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
  • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection


Construct a new Font Descriptor

  • « UI\Draw\Text\Font\Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Construct a new Font Descriptor

UI\Draw\Text\Font\Descriptor::__construct

(UI 0.9.9)

UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor

Descrição

public UI\Draw\Text\Font\Descriptor::__construct(
string $family,
float $size,
int $weight = UI\Draw\Text\Font\Weight::Normal,
int $italic = UI\Draw\Text\Font\Italic::Normal,
int $stretch = UI\Draw\Text\Font\Stretch::Normal
)

Shall construct a new Font Descriptor

Parâmetros

family

The name of a valid family of fonts

size

The preferred size

weight

UI\Draw\Text\Font\Weight constant

italic

UI\Draw\Text\Font\Italic constant

stretch

UI\Draw\Text\Font\Stretch constant


Get Font Family

  • « UI\Draw\Text\Font\Descriptor::__construct
  • UI\Draw\Text\Font\Descriptor::getItalic »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Get Font Family

UI\Draw\Text\Font\Descriptor::getFamily

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family

Descrição

public UI\Draw\Text\Font\Descriptor::getFamily(): string

Shall return the requested font family

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getFamily
  • UI\Draw\Text\Font\Descriptor::getSize »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getItalic

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getItalic — Style Detection

Descrição

public UI\Draw\Text\Font\Descriptor::getItalic(): int

Shall return constant setting

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Size Detection

  • « UI\Draw\Text\Font\Descriptor::getItalic
  • UI\Draw\Text\Font\Descriptor::getStretch »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Size Detection

UI\Draw\Text\Font\Descriptor::getSize

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getSize — Size Detection

Descrição

public UI\Draw\Text\Font\Descriptor::getSize(): float

Shall return the requested size

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getSize
  • UI\Draw\Text\Font\Descriptor::getWeight »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getStretch

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getStretch — Style Detection

Descrição

public UI\Draw\Text\Font\Descriptor::getStretch(): int

Shall return requested stretch

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Weight Detection

  • « UI\Draw\Text\Font\Descriptor::getStretch
  • UI Funções »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Weight Detection

UI\Draw\Text\Font\Descriptor::getWeight

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection

Descrição

public UI\Draw\Text\Font\Descriptor::getWeight(): int

Shall return requested weight

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


UI Funções

Índice

  • UI\Draw\Text\Font\fontFamilies — Retrieve Font Families
  • UI\quit — Quit UI Loop
  • UI\run — Enter UI Loop


Retrieve Font Families

  • « UI Funções
  • UI\quit »
  • PHP Manual
  • UI Funções
  • Retrieve Font Families

UI\Draw\Text\Font\fontFamilies

(UI 0.9.9)

UI\Draw\Text\Font\fontFamilies — Retrieve Font Families

Descrição

UI\Draw\Text\Font\fontFamilies(): array

Returns an array of valid font families for the current system

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Returns an array of valid font families for the current system.


Quit UI Loop

  • « UI\Draw\Text\Font\fontFamilies
  • UI\run »
  • PHP Manual
  • UI Funções
  • Quit UI Loop

UI\quit

(UI 2.0.0)

UI\quit — Quit UI Loop

Descrição

UI\quit(): void

Shall cause the main loop to be exited

Parâmetros

Esta função não possui parâmetros.

Valor Retornado


Enter UI Loop

  • « UI\quit
  • UI\Draw\Text\Font\Weight »
  • PHP Manual
  • UI Funções
  • Enter UI Loop

UI\run

(UI 2.0.0)

UI\run — Enter UI Loop

Descrição

UI\run(int $flags = ?): void

Shall cause PHP to enter into the main loop, by default control will not be returned to the caller

Parâmetros

flags

Set UI\Loop to return control, and UI\Wait to return control after waiting

Valor Retornado


Font Weight Settings

(UI 0.9.9)

Introdução

Resumo da classe

final class UI\Draw\Text\Font\Weight {
/* Constantes */
const int Thin;
const int UltraLight;
const int Light;
const int Book;
const int Normal;
const int Medium;
const int SemiBold;
const int Bold;
const int UltraBold;
const int Heavy;
const int UltraHeavy;
}

Constantes pré-definidas

UI\Draw\Text\Font\Weight::Thin
UI\Draw\Text\Font\Weight::UltraLight
UI\Draw\Text\Font\Weight::Light
UI\Draw\Text\Font\Weight::Book
UI\Draw\Text\Font\Weight::Normal
UI\Draw\Text\Font\Weight::Medium
UI\Draw\Text\Font\Weight::SemiBold
UI\Draw\Text\Font\Weight::Bold
UI\Draw\Text\Font\Weight::UltraBold
UI\Draw\Text\Font\Weight::Heavy
UI\Draw\Text\Font\Weight::UltraHeavy


Italic Font Settings

(UI 0.9.9)

Introdução

Resumo da classe

final class UI\Draw\Text\Font\Italic {
/* Constantes */
const int Normal = 0;
const int Oblique = 1;
const int Italic = 2;
}

Constantes pré-definidas

UI\Draw\Text\Font\Italic::Normal
UI\Draw\Text\Font\Italic::Oblique
UI\Draw\Text\Font\Italic::Italic


Font Stretch Settings

(UI 0.9.9)

Introdução

Resumo da classe

final class UI\Draw\Text\Font\Stretch {
/* Constantes */
const int UltraCondensed = 0;
const int ExtraCondensed = 1;
const int Condensed = 2;
const int SemiCondensed = 3;
const int Normal = 4;
const int SemiExpanded = 5;
const int Expanded = 6;
const int ExtraExpanded = 7;
const int UltraExpanded = 8;
}

Constantes pré-definidas

UI\Draw\Text\Font\Stretch::UltraCondensed
UI\Draw\Text\Font\Stretch::ExtraCondensed
UI\Draw\Text\Font\Stretch::Condensed
UI\Draw\Text\Font\Stretch::SemiCondensed
UI\Draw\Text\Font\Stretch::Normal
UI\Draw\Text\Font\Stretch::SemiExpanded
UI\Draw\Text\Font\Stretch::Expanded
UI\Draw\Text\Font\Stretch::ExtraExpanded
UI\Draw\Text\Font\Stretch::UltraExpanded


Line Cap Settings

(UI 0.9.9)

Introdução

Resumo da classe

final class UI\Draw\Line\Cap {
/* Constantes */
const int Flat;
const int Round;
const int Square;
}

Constantes pré-definidas

UI\Draw\Line\Cap::Flat
UI\Draw\Line\Cap::Round
UI\Draw\Line\Cap::Square


Line Join Settings

(UI 0.9.9)

Introdução

Resumo da classe

final class UI\Draw\Line\Join {
/* Constantes */
const int Miter;
const int Round;
const int Bevel;
}

Constantes pré-definidas

UI\Draw\Line\Join::Miter
UI\Draw\Line\Join::Round
UI\Draw\Line\Join::Bevel


Key Identifiers

(UI 1.0.0)

Introdução

Resumo da classe

final class UI\Key {
/* Constantes */
const int Escape;
const int Insert;
const int Delete;
const int Home;
const int End;
const int PageUp;
const int PageDown;
const int Up;
const int Down;
const int Left;
const int Right;
const int F1;
const int F2;
const int F3;
const int F4;
const int F5;
const int F6;
const int F7;
const int F8;
const int F9;
const int F10;
const int F11;
const int F12;
const int N0;
const int N1;
const int N2;
const int N3;
const int N4;
const int N5;
const int N6;
const int N7;
const int N8;
const int N9;
const int NDot;
const int NEnter;
const int NAdd;
const int NSubtract;
const int NMultiply;
const int NDivide;
}

Constantes pré-definidas

UI\Key::Escape
UI\Key::Insert
UI\Key::Delete
UI\Key::Home
UI\Key::End
UI\Key::PageUp
UI\Key::PageDown
UI\Key::Up
UI\Key::Down
UI\Key::Left
UI\Key::Right
UI\Key::F1
UI\Key::F2
UI\Key::F3
UI\Key::F4
UI\Key::F5
UI\Key::F6
UI\Key::F7
UI\Key::F8
UI\Key::F9
UI\Key::F10
UI\Key::F11
UI\Key::F12
UI\Key::N0
UI\Key::N1
UI\Key::N2
UI\Key::N3
UI\Key::N4
UI\Key::N5
UI\Key::N6
UI\Key::N7
UI\Key::N8
UI\Key::N9
UI\Key::NDot
UI\Key::NEnter
UI\Key::NAdd
UI\Key::NSubtract
UI\Key::NMultiply
UI\Key::NDivide


InvalidArgumentException

(UI 1.0.3)

Introdução

Resumo da classe

class UI\Exception\InvalidArgumentException extends InvalidArgumentException implements Throwable {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


RuntimeException

(UI 1.0.3)

Introdução

Resumo da classe

class UI\Exception\RuntimeException extends RuntimeException implements Throwable {
/* Propriedades herdadas */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Métodos herdados */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


FAQ: Perguntas Mais Frequentes

  • Informações Gerais
  • Listas de Discussão
  • Obtendo o PHP
  • Questões sobre banco de dados
  • Instalação
  • Problemas de Compilação
  • Utilizando o PHP
  • Gerando hash de senha — Gerando hash seguro de senha
  • PHP e HTML
  • PHP e COM
  • Questões Diversas


Informações Gerais

Essa seção trata das questões mais gerais sobre o PHP: o que é e o que faz.

  1. O que é o PHP?
  2. O que a sigla PHP significa?
  3. Qual é a relação entre as versões?
  4. Posso executar várias versões do PHP ao mesmo tempo?
  5. Acho que encontrei um bug! A quem eu devo dizer?
O que é o PHP?

Do prefácio do manual:

PHP é uma linguagem de script embutida no HTML. Muito da sua sintaxe é emprestada de C, Java e Perl com algumas características específicas do PHP adicionadas. O objetivo da linguagem é permitir que desenvolvedores web escrevam páginas geradas dinamicamente de forma rápida.

O que a sigla PHP significa?

PHP significa PHP: Hypertext Preprocessor. Isso confunde muitas pessoas porque a primeira palavra do acrônimo é o acrônimo. Esse tipo de acrônimo é chamado de acrônimo recursivo. Para mais informações, os curiosos podem visitar o » Dicionário On-Line Gratuito de Computação ou o » item na Wikipedia sobre acrónimos recursivos.

Qual é a relação entre as versões?

PHP/FI 2.0 é uma versão mais antiga e não mais suportada do PHP. PHP 3 é o sucessor do PHP/FI 2.0 e é bem melhor. PHP 8 é a geração atual do PHP, que usa a Zend Engine 4, a qual, entre outras coisas, oferece muitas funcionalidades adicionais de POO.

Posso executar várias versões do PHP ao mesmo tempo?

Sim. Veja o arquivo INSTALL que vem incluso na distribuição dos fontes do PHP.

Acho que encontrei um bug! A quem eu devo dizer?

Você deve ir ao Banco de Dados de Bugs do PHP e assegurar-se de que o bug não é conhecido. Se você não encontrá-lo no banco, use o formulário para relatar o bug. É importante usar o banco de bugs ao invés de apenas enviar um e-mail para uma das listas de discussão porque o bug terá um número de rastreamento atribuído a ele e será possível voltar depois e checar o status do bug. O banco de bugs pode ser encontrado em » https://github.com/php/php-src/issues.


Listas de Discussão

Essa seção responde algumas perguntas relacionadas a como entrar em contato com a comunidade PHP. A melhor maneira é através das listas de discussão via e-mail.

  1. Existe alguma lista de discussão do PHP?
  2. Existem outras comunidades?
  3. Posso iniciar minha própria lista de discussões de PHP?
  4. Ajuda! Não consigo me inscrever ou sair de nenhuma das listas de discussão!
  5. Existe um histórico das listas de discussão em algum lugar?
  6. O que posso perguntar na lista de discussão?
  7. Que informação devo incluir quando faço perguntas na lista?
Existe alguma lista de discussão do PHP?

É claro! Existem várias listas de discussão sobre vários assuntos. Uma listagem das principais listas de discussão pode ser encontrada na nossa » listas de discussão por email.

A lista de discussão mais geral é php-general. Para participar, mande um e-mail em branco para » php-general+subscribe@lists.php.net. Para sair da lista, mande um e-mail para » php-general+unsubscribe@lists.php.net.

Você pode se inscrever e sair das listas usando nossa interface web disponível em » listas de discussão, além de instruções incluídas no rodapé de cada e-mail da lista.

Existem outras comunidades?

Existem incontáveis comunidades voltadas ao PHP ao redor do mundo. Nós temos links, para algumas delas (e informação de como aprender mais) em nossa página de » Suporte

Posso iniciar minha própria lista de discussões de PHP?

Com certeza! Aliás, nós não só permitimos como encorajamos você a iniciar uma lista de discussões! Ajudar os outros dividindo seu conhecimento e experiência com o PHP amplia o crescimento da comunidade e o desenvolvimento global do PHP, além da própria linguagem.

Ajuda! Não consigo me inscrever ou sair de nenhuma das listas de discussão!

A causa mais comum para as pessoas terem dificuldades em sair de nossas listas de discussão é por causa do uso de e-mails encaminhados. Por exemplo, se seu e-mail for elephpant@example.com, mas você se inscreveu na lista de discussão com o e-mail php-lists@example.com que encaminha para elephpant@example.com, tentar remover da lista o e-mail elephpant@example.com não vai funcionar pois este e-mail não é conhecido nos nossos sistemas. Ao invés disso, você vai precisar pedir para remover da lista o e-mail para o qual as mensagens estão sendo enviadas, enviando um e-mail a partir dele - neste exemplo, php-lists@example.com.

Existe um histórico das listas de discussão em algum lugar?

Sim, você encontrará uma lista de sites com o histórico na página de » listas de email. Você também vai encontrar dezenas de arquivos e/ou referências para nossas listas de discussões usando seu mecanismo de busca preferido ao procurar por "php mailing list archives".

Os artigos da lista de discussão também são arquivados como mensagens de notícia. Você pode acessar o servidor de notícias em » news://news.php.net/ com um cliente de notícias. Também existe uma interface web experimental para o servidor de notícias em » http://news.php.net/

O que posso perguntar na lista de discussão?

Uma vez que o PHP está crescendo em popularidade todo dia, o tráfego na lista de discussão php-general cresceu e até agora a lista recebe entre 75 a 200 mensagens por dia. Por isso é do interesse de todos que você use a lista como último recurso quando você procurou em todos os outros lugares.

Antes de postar em uma lista verifique nessa FAQ e no manual se não consegue encontrar a informação aqui. Se não encontrar então tente os arquivos das listas (veja acima). Se está tendo problemas instalando ou configurando o PHP primeiro leia toda a documentação incluída e os README's. Se ainda não conseguir encontrar a informação que lhe ajude, você é bem vindo a utilizar a lista apropriada.

Para garantir que você receba as melhores respostas (e para reduzir a probabilidade de frustrar seus colegas desenvolvedores) envie sua pergunta para a lista apropriada. Por exemplo, se você está tendo dificuldades para instalar PHP, você deve enviar sua pergunta para a lista de discussão php-install. Uma ressalva: algumas listas têm nomes semelhantes mas usos completamente diferentes; uma pergunta sobre os scripts PHP no Windows deve ser direcionado para a lista de usuários do Windows PHP, not para a lista do Windows Internals.

Antes de perguntar, você deve ler o arquivo » Como Fazer Perguntas de Maneira Inteligente que é uma boa idéia para todo mundo.

Que informação devo incluir quando faço perguntas na lista?

Mensagens como "Não consigo colocar o PHP para funcionar! Me ajude! O que está errado?" são inúteis. Se você tiver problemas fazendo o PHP funcionar, você deve incluir que sistema operacional você está usando, qual a versão do PHP você está tentando instalar, como você obteve (pré-compilado, CVS, RPM e por aí vai), o que você fez até agora, onde ficou preso e a mensagem de erro exata.

Isso vale para qualquer outro problema também. Você deve incluir informações sobre o que você fez, o que você está tentando fazer e quaisquer mensagens de erro encontradas no processo. Se você tiver problemas com nosso código fonte, você precisa incluir a parte do código que não está funcionando, indicando a linha apresenta o problema através do posicionamento de um comentário de código. Não inclua mais código que o necessário! Isso torna a mensagem difícil de ler e muitas pessoas podem simplesmente ignorar ela por isso. Se você não tiver certeza sobre quanta informação incluir na mensagem, é melhor incluir muito do que pouco.

Outra coisa importante a lembrar é resumir o problema no assunto da mensagem. Um assunto como "SOCCOOORRROO!!!" ou "Qual é o problema aqui" será ignorada pela maioria dos leitores.

E finalmente, você é encorajado a ler o artigo sobre » Como Fazer Perguntas de Maneira Inteligente já que irá ser de grande ajuda para todo mundo, especialmente você.


Obtendo o PHP

Essa seção tem detalhes sobre localizações de download do PHP e problemas com Sistemas Operacionais.

  1. Onde posso obter o PHP?
  2. Existem versões binárias pré-compiladas?
  3. Onde posso pegar as bibliotecas necessárias para compilar alguma das extensões opcionais do PHP?
  4. Como faço essas bibliotecas funcionarem?
  5. Eu peguei a última versão do código-fonte do PHP do repositório Git na minha máquina Windows, o que eu preciso para compilá-lo?
  6. Onde eu acho o Arquivo de Capacidades do Navegador (Browser Capabilities File)?
  7. O que significa thread safety quando estou fazendo o download do PHP?
Onde posso obter o PHP?

Você pode baixar o PHP de qualquer um dos membros da rede de sites do PHP. Esses podem ser encontrados em » https://www.php.net/. Você pode usar também um Git anônimo para pegar a última versão do fonte. Para mais informações, vá até » https://www.php.net/git.php.

Existem versões binárias pré-compiladas?

Nós só distribuímos binários pré-compilados para sistemas Windows, como não somos capazes de compilar o PHP para cada uma das plataformas Linux/Unix com cada combinação de extensão. Perceba também, que muitas distribuições Linux vem com o PHP instalado atualmente. Binários do Windows podem ser baixados da nossa página de » Downloads, para binários do Linux, por favor visite o website de sua distribuição.

Onde posso pegar as bibliotecas necessárias para compilar alguma das extensões opcionais do PHP?

Nota: Aquelas marcadas com um * são do melhor de nosso conhecimento não thread safe; elas não são recomendadas para utilização em um ambiente multi-thread.

  • » LDAP (Unix).
  • » LDAP (Unix/Win) : Diretório Mozilla (LDAP) SDK
  • » servidor LDAP livre.
  • » Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.
  • » SNMP* (Unix): .
  • » GD* (Unix/Win).
  • » mSQL* (Unix).
  • » PostgreSQL (Unix).
  • » IMAP* (Win/Unix).
  • » Sybase-CT* (Linux, libc5) : Disponível localmente.
  • » FreeType (libttf):.
  • » ZLib (Unix/Win32).
  • » expat XML parser (Unix/Win32).
  • » PDFLib.
  • » mcrypt.
  • » mhash.
  • » t1lib.
  • » dmalloc.
  • » aspell.
  • » readline.

Como faço essas bibliotecas funcionarem?

Você precisará seguir as instruções disponíveis com a biblioteca. Algumas dessas bibliotecas são detectadas automaticamente quando você executar o script 'configure' do PHP (como a biblioteca GD), e outras você terá que habilitar usando opções '--with-EXTENSION' do 'configure'. Execute 'configure --help' para listar essas opções.

Eu peguei a última versão do código-fonte do PHP do repositório Git na minha máquina Windows, o que eu preciso para compilá-lo?

Veja a Wiki do PHP para instruções atualizadas: » Instruções passo-a-passo

Onde eu acho o Arquivo de Capacidades do Navegador (Browser Capabilities File)?

Você pode achar um arquivo browscap.ini em » http://browscap.org/.

O que significa thread safety quando estou fazendo o download do PHP?

Thread Safety significa que o binário pode trabalhar em um contexto de servidor web multithread, como o Apache 2 no Windows. Thread Safety funciona criando uma cópia local em cada thread, de modo que os dados não colidirão com outra thread.

Então como eu escolho? Se você escolher rodar PHP como binário CGI, então você não precisa do thread safe, porque o binário é chamado a cada requisição. Para servidores web multithread, como o IIS5 e IIS6, você deve usar a versão thread do PHP.


Questões sobre banco de dados

Esta seção possui questões comuns sobre a relação entre o PHP e bases de dados. Sim, o PHP pode acessar virtualmente qualquer base de dados disponível atualmente.

  1. Eu ouvi que é possível acessar o Microsoft SQL Server através do PHP. Como?
  2. Consigo acessar bases de dados Microsoft Access?
Eu ouvi que é possível acessar o Microsoft SQL Server através do PHP. Como?

Em máquinas Unix você pode utilizar o PDO_ODBC ou a API ODBC Unificada.

Em máquinas Windows você também pode utilizar PDO_SQLSRV ou SQLSRV.

Veja também a resposta da questão seguinte.

Consigo acessar bases de dados Microsoft Access?

Se você estiver rodando PHP em uma box Unix e quiser conversar com o Microsoft Access em uma box Windows será necessário instalar os drivers ODBC para Unix. » OpenLink Software possui drivers para sistemas baseados em Unix que podem fazer isto.

Outra alternativa é usar um servidor SQL que possua drivers Windows ODBC e utilizá-los para armazenar os dados, que você pode então acessar através do Microsoft Access (usando ODBC) e do PHP (usando os drivers já existentes), ou usando um formato de arquivo intermediário que o Microsoft Access e o PHP consigam entender, como arquivos comuns ou bases de dados dBase. Neste ponto Tim Hayes, da OpenLink Software, escreve:

Usar outra base de dados como intermediária não é uma boa ideia, quando você pode usar o ODBC do PHP diretamente para a base de dados - por exemplo, com os drivers fornecidos pela OpenLink. Se você precisar utilizar um formato de arquivo intermediário, a OpenLink lançou o Virtuoso (uma engine de base de dados virtual) para NT, Linux e outras plataformas Unix. Por favor visite » nossa página para um download gratuito.

Uma opção que se mostrou funcional é utilizar MySQL e seus drivers MyODBC no Windows e sincronizar as bases de dados. Steve Lawrence disse:

  • Instale o MySQL em sua plataforma normalmente. A ultima versão está disponível em » http://www.mysql.com/ Nenhuma configuração especial é necessária, exceto quando você configura um banco de dados, e configura uma conta de usuário, quando você deve colocar % no campo host, ou o hostname da máquina Windows com a qual você deseja acessar o MySQL. Anote o nome do seu servidor, o usuário e a senha.
  • Baixe o driver MyODBC para Windows através do site oficial do MySQL. Instale-o em sua máquina Windows. Você pode testar a operação com os utilitários inclusos no programa.
  • Crie um usuário ou dsn de sistema em seu ODBC Administrator, localizado no painel de controle. Crie um nome dsn, entre com seu hostname, usuário, senha, porta, etc. para sua base de dados MySQL configurada no passo 1.
  • Instale o Access com uma instalação completa, isto dá certeza de que você instalou os add-ins necessários... você precisará, ao menos, ter suporte à ODBC e ao gerenciador de tabelas ligadas (linked table manager).
  • Agora a parte divertida! Crie uma nova base de dados Access. Clique com o botão direito na janela de tabelas e selecione Link Tables, ou sob o menu File selecione Get External Data e depois Link Tables. Quando a caixa de navegação de arquivos aparecer, selecione arquivos do tipo: ODBC. Selecione System dsn e o nome do dsn criado no passo 3. Selecione a tabela para ligar, pressione OK, e presto! Agora você consegue abrir a tabela e adicionar/remover/editar dados em seu servidor MySQL! Você também pode construir queries, importar/exportar tabelas para MySQL, construir forumlários e relatórios, etc.

Dicas e Truques:

  • Você pode construir suas tabelas no Access e exportá-las para o MySQL, e então conectá-las de volta. Isto torna o processo de criação de tabelas mais rápido.
  • Quando criar tabelas no Access você deve definir uma chave primária para ter acesso à escrita na tabela no Access. Certifique-se de que criou uma chave primária no MySQL antes de conectá-lo ao Access.
  • Se você alterar a tabela no MySQL, você deve conectá-la novamente no Access. Vá para tools > add-ins > linked table manager, vá até seu ODBC DSN, e selecione a tabela para conectá-la novamente a partir de lá. Você também pode mover seu fonte dsn por ali, apenas selecione o checkbox "always prompt for new location" antes de pressionar OK.


Instalação

Esta seção contém perguntas comuns sobre a maneira de instalar o PHP. O PHP está disponível para quase todos os sistemas operacionais, e praticamente qualquer servidor web.

Para instalar o PHP, siga as instruções em Instalação e Configuração.

  1. Por que não devemos usar o Apache2 com um módulo MPM com threads em um ambiente de produção?
  2. Unix/Windows: Onde deveria estar localizado meu arquivo php.ini?
  3. Unix: Eu instalei o PHP, mas toda vez que carrego um documento, recebo a mensagem 'Document Contains No Data'! O que está acontecendo?
  4. Unix: Eu instalei o PHP usando RPMS, mas o Apache não está processando as páginas PHP! O que está acontecendo aqui?
  5. Unix: Eu corrigi o Apache com o patch das extensões FrontPage, e repentinamente o PHP parou de funcionar. O PHP é incompatível com as extensões FrontPage do Apache?
  6. Unix/Windows: Eu tenho o PHP instalado, mas quando tento acessar um arquivo de script PHP através do meu browser, recebo uma tela em branco.
  7. Unix/Windows: Eu instalei o PHP, mas quando tento acessar um arquivo de script PHP através do meu browser, recebo um erro 500 do servidor.
  8. Alguns sistemas operacionais: Eu instalei o PHP sem erros, mas quando eu tento iniciar o Apache recebo erros de undefined symbol: [mybox:user /src/php5] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompress
  9. Windows: Eu instalei o PHP, mas quando tento acessar um arquivo de script PHP através do meu browser, eu recebo o erro: cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
  10. Windows: Eu segui todas as instruções, mas ainda não consegui fazer o PHP e o IIS trabalharem juntos!
  11. Quando executo o PHP como CGI com o IIS, PWS, OmniHTTPD ou Xitami, recebo o seguinte erro: Security Alert! PHP CGI cannot be accessed directly..
  12. Como eu sei se meu php.ini está sendo encontrado e lido? Parece que ele não está, já que as minhas alterações não estão sendo efetuadas.
  13. Como eu adiciono meu diretório PHP ao PATH do Windows?
  14. Como eu torno o arquivo php.ini disponível para o PHP no Windows?
  15. É possível usar a negociação de conteúdo do Apache (opção MultiViews) com o PHP?
  16. O PHP é limitado a processar apenas os métodos de requisições GET e POST?
Por que não devemos usar o Apache2 com um módulo MPM com threads em um ambiente de produção?

O PHP é como uma cola. É a cola usada para construir aplicações web legais unindo dezenas de bibliotecas de terceiros e fazendo tudo aparecer como uma entidade coerente através de uma interface de linguagem intuitiva e fácil de aprender. A flexibilidade e poder do PHP dependem da estabilidade e robustez da plataforma subjacente. Ele precisa de um sistema operacional funcionando, um servidor web funcionando e bibliotecas de terceiros funcionando para juntar. Quando qualquer um desses elementos pára de funcionar o PHP precisa de meios de identificar e remediar os problemas rapidamente. Quando tornamos a arquitetura subjacente mais complexa por não ter threads de execução completamente separadas, segmentos de memória completamente separados e uma sandbox sólida na qual executar cada requisição, mais problemas são introduzidos ao sistema do PHP.

Se quiser utilizar um módulo MPM com threads, veja uma configuração FastCGI onde o PHP seja executado em seu próprio espaço de memória.

Unix/Windows: Onde deveria estar localizado meu arquivo php.ini?

Por padrão no Unix ele deve estar em /usr/local/lib que é o <install-path>/lib. A maioria das pessoas vai querer mudar isso em tempo de compilação com a flag --with-config-file-path. Poderíamos, por exemplo, configurá-la com algo como:

--with-config-file-path=/etc
E então poderíamos copiar php.ini-development do local de origem da instalação para /etc/php.ini e editá-lo para fazer quaisquer alterações locais que desejássemos.

--with-config-file-scan-dir=PATH

No Windows, o caminho padrão para o arquivo php.ini é o diretório Windows. Se estivermos usando o servidor web Apache, o php.ini primeiro é procurado no diretório de instalação do Apache, por exemplo, c:\program files\apache group\apache. Desta maneira, poderíamos ter diferentes arquivos php.ini para diferentes versões do Apache na mesma máquina.

Veja também o capítulo sobre o arquivo de configuração.

Unix: Eu instalei o PHP, mas toda vez que carrego um documento, recebo a mensagem 'Document Contains No Data'! O que está acontecendo?

Isso provavelmente significa que o PHP está tendo algum tipo de problema e está sofrendo um core dump (fim com despejo de memória). Olhe nos logs de erro do servidor web para ver se este é o caso, e então tente reproduzir o problema com um pequeno caso de teste. Se você souber como usar 'gdb', é muito útil quando você pode fornecer um backtrace com seu relatório de erros para ajudar os desenvolvedores a identificar o problema. Se estiver usando o PHP como um módulo do Apache tente algo como:

  • Pare seus processos httpd

  • gdb httpd

  • Pare seus processos httpd

  • > execute -X -f /caminho/para/httpd.conf

  • Então acesse o URL que está causando problemas com seu browser.

  • > execute -X -f /caminho/para/httpd.conf

  • Se estiver ocorrendo um core dump, o gdb deverá informar sobre isso agora

  • type: bt

  • Você deve incluir o backtrace no seu relatório de erros. Envie o relatório para » https://github.com/php/php-src/issues

Se o seu script usa as funções de expressões regulares ( preg_match() e demais), você deve ter certeza de que compilou o PHP e o Apache com a mesma versão do pacote de expressões regulares. Isso deve acontecer automaticamente com o PHP e Apache 1.3.x.

Unix: Eu instalei o PHP usando RPMS, mas o Apache não está processando as páginas PHP! O que está acontecendo aqui?

Supondo que você instalou tanto o Apache quanto o PHP a partir dos pacotes RPM, você precisa descomentar ou adicionar algumas ou todas as linhas a seguir ao seu arquivo httpd.conf:

# Módulos extra
AddModule mod_php.c
AddModule mod_perl.c

# Módulos extra
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so
E adicionar:
AddType application/x-httpd-php .php
... às propriedades globais, ou às propriedades do VirtualDomain ao qual você deseja adicionar o suporte ao PHP.

Unix: Eu corrigi o Apache com o patch das extensões FrontPage, e repentinamente o PHP parou de funcionar. O PHP é incompatível com as extensões FrontPage do Apache?

Não, O PHP funciona bem com as extensões FrontPage. O problema é que o patch do FrontPage modifica diversas estruturas do Apache, das quais o PHP depende. Recompilar o PHP (usando 'make clean ; make') depois de aplicar o patch FP deve resolver o problema.

Unix/Windows: Eu tenho o PHP instalado, mas quando tento acessar um arquivo de script PHP através do meu browser, recebo uma tela em branco.

Faça um 'view source' no navegador web e provavelmente descobrirá que pode ver o código fonte do seu script PHP. Isto significa que o seu servidor web não enviou o script para o interpretador do PHP. Algo está errado com as configurações do seu servidor - verifique novamente as configurações de seu servidor, com base nas instruções de instalação do PHP.

Unix/Windows: Eu instalei o PHP, mas quando tento acessar um arquivo de script PHP através do meu browser, recebo um erro 500 do servidor.

Alguma coisa deu errado quando o servidor tentou executar o PHP. Para conseguir ver uma mensagem de erro razoável, na linha de comando, mude para o diretório que contém o executável do PHP (php.exe no Windows) e execute php -i. Se o PHP tiver algum problema para rodar, então uma mensagem de erro apropriada será exibida, o que lhe dará pistas do que precisa ser feito em seguida. Se você receber uma tela cheia de códigos HTML (a saída da função phpinfo()) então o PHP está funcionando, e seu problema pode ser relacionado à configuração do seu servidor, que você deve verificar novamente.

Alguns sistemas operacionais: Eu instalei o PHP sem erros, mas quando eu tento iniciar o Apache recebo erros de undefined symbol:
[mybox:user /src/php5] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

Isto não tem nada a ver com o PHP, mas com as bibliotecas do cliente MySQL. Algumas necessitam de --with-zlib, outras não. Isso também é abordado nas FAQ do MySQL.

Windows: Eu instalei o PHP, mas quando tento acessar um arquivo de script PHP através do meu browser, eu recebo o erro:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Esta mensagem de erro significa que o PHP falhou em gerar qualquer saída. Para começar a ver uma mensagem de erro razoável, na linha de comando, mude para o diretório que contém o executável PHP (php.exe no Windows) e execute php -i. Se o PHP estiver com algum problema para rodar, então uma mensagem de erro adequada será exibida, o que lhe dará uma ideia do que precisa ser feito em seguida. Se você receber uma tela cheia de códigos HTML (a saída da função phpinfo()) então o PHP está funcionando.

Uma vez que o PHP esteja funcionando na linha do comando, tente acessar o script via navegador novamente. Se ele ainda falhar, então pode ser um dos seguintes:

  • As permissões de arquivo no seu script PHP, php.exe, php5ts.dll, php.ini ou qualquer extensão do PHP que você está tentando carregar são tais que o usuário anônimo ISUR_<machinename> não pode acessá-los.
  • O arquivo de script não existe (ou provavelmente não está onde você acha que ele está em relação ao seu diretório root web). Note que com o IIS você pode interceptar o erro marcando a opção 'verificar se o arquivo existe' quando configurar os mapeamentos de script no Gerenciador de Serviços de Internet. Se um arquivo de script não existe então o servidor web irá retornar um erro 404. Há também o benefício adicional que o IIS fará qualquer autenticação exigida para você com base nas permissões NTLanMan no seu arquivo de script.
Windows: Eu segui todas as instruções, mas ainda não consegui fazer o PHP e o IIS trabalharem juntos!

Certifique-se de que qualquer usuário que precise executar um script PHP tem permissão para executar o php.exe! O IIS usa um usuário anônimo que é adicionado no momento que o IIS é instalado. Este usuário precisa de permissões para o php.exe. Além disso, qualquer usuário autenticado também precisará ter permissão para executar o php.exe. E para o IIS4 você precisa dizer que o PHP é um engine de script. Além disso, você também vai querer ler esta FAQ.

Quando executo o PHP como CGI com o IIS, PWS, OmniHTTPD ou Xitami, recebo o seguinte erro: Security Alert! PHP CGI cannot be accessed directly..

Você deve definir a diretiva cgi.force_redirect para 0. O padrão é 1, então certifique-se que a directiva não está comentada (com um ;). Como todas as diretivas, esta é definida no php.ini

Pelo fato do padrão ser 1, é fundamental que você tenha certeza de que o arquivo php.ini correto está sendo lido. Leia esta FAQ para detalhes.

Como eu sei se meu php.ini está sendo encontrado e lido? Parece que ele não está, já que as minhas alterações não estão sendo efetuadas.

Para ter certeza de que seu php.ini está sendo lido pelo PHP, faça uma chamada à função phpinfo(). Próximo ao topo, haverá uma lista chamada Configuration File (php.ini). Esta irá lhe dizer onde o PHP está procurando o php.ini e se ele está sendo lido ou não. Se houver apenas um diretório do PATH, então ele não está sendo lido e você deve colocar seu php.ini neste diretório. Se o php.ini está incluso dentro do PATH, ele está sendo lido.

Se o php.ini está sendo lido e seu PHP está sendo executado como um módulo, então certifique-se de reiniciar seu servidor web depois de fazer alterações no php.ini.

Veja também php_ini_loaded_file().

Como eu adiciono meu diretório PHP ao PATH do Windows?

No Windows:

  • Vá até o Painel de Controle e abra o ícone de Sistema (Iniciar ? Painel de Controle)

  • Vá até a aba Avançado

  • Clique no botão 'Variáveis de Ambiente'

  • Procure o painel 'Variáveis do Sistema'

  • Encontre o item Path (talvez você precise rolar a lista para encontrá-lo)

  • Dê um duplo clique no item Path

  • Adicione seu diretório do PHP ao final, incluindo ';' antes (por exemplo, ;C:\php)

  • Aperte OK e reinicie seu computador

Nota: Certifique-se de reiniciar depois de seguir os passos acima para garantir que as alterações ao PATH sejam aplicadas.

Como eu torno o arquivo php.ini disponível para o PHP no Windows?

Existem várias maneiras de fazer isso. Se você estiver usando o Apache, consulte a documentação do Apache, caso contrário, você deve definir a variável de ambiente PHPRC.

É possível usar a negociação de conteúdo do Apache (opção MultiViews) com o PHP?

Se os links para arquivos PHP incluem extensões, tudo funcionará perfeitamente. Esta FAQ é apenas para o caso em que links para arquivos PHP não incluem a extensão e você quer usar a negociação de conteúdo para selecionar arquivos PHP a partir de URLs sem nenhuma extensão. Neste caso, substitua a linha AddType application/x-httpd-php .php por:

AddHandler php5-script php
AddType text/html php
Esta solução não funciona para o Apache 1, pois o módulo PHP não captura php-script.

O PHP é limitado a processar apenas os métodos de requisições GET e POST?

Não, é possível lidar com qualquer método de requisição, por exemplo, CONNECT. Status de respostas adequados podem ser enviados com header(). Se somente os métodos GET e POST devem ser manipulados, isso pode ser alcançado com esta configuração do Apache:

<LimitExcept GET POST>
Deny from all
</LimitExcept>


Problemas de Compilação

Esta seção reúne os erros mais comuns que ocorrem na compilação.

  1. Eu peguei a última versão do PHP usando o serviço anônimo do GIT, mas não há nenhum script de configuração!
  2. Estou tendo problemas para configurar o PHP para trabalhar com Apache. Diz que não consegue encontrar httpd.h, mas está bem onde eu disse que está!
  3. Se enquanto estiver configurando o (./configure) do PHP, você se deparar com um erro semelhante ao seguinte: checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up
  4. Quando tento iniciar o Apache, recebo a seguinte mensagem: fatal: relocation error: file /path/to/libphp4.so: symbol ap_block_alarms: referenced symbol not found
  5. Quando eu executo configure, ele diz que não pode encontrar os arquivos de inclusão ou a biblioteca GD, gdbm, ou algum outro pacote!
  6. Quando se está compilando o arquivo language-parser.tab.c, ele me devolve um erro que diz yytname undeclared.
  7. Quando eu executo make, parace rodar bem mas então falha quando tenta ligar a aplicação final, queixando-se que não consegue encontrar alguns arquivos.
  8. Quando linkando o PHP, ele reclama de um número de referências indefinidas.
  9. Eu segui todos os passos da instalação do módulo da versão do Apache no Unix, e meus scripts PHP estão sendo mostrados no meu navegador ou me é solicitado salvar os arquivos.
  10. Lá diz para usar: --activate-module=src/modules/php4/libphp4.a, mas esse arquivo não existe, então mudei para --activate-module=src/modules/php4/libmodphp4.a e não funciona!? O que está acontecendo?
  11. Quando tento compilar o Apache com o PHP como um módulo estático usando --activate-module=src/modules/php4/libphp4.a ele me diz que o meu compilador não é compatível com ANSI.
  12. Quando tento compilar o PHP usando --with-apxs recebo mensagens de erro estranhas.
  13. Durante make, eu recebo erros no microtime, e um monte de RUSAGE_.
  14. Ao compilar o PHP com MySQL, o configure vai bem, mas durante o make recebo um erro semelhante ao seguinte: ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', o que está errado ?
  15. Eu quero atualizar o meu PHP. Onde posso encontrar a linha ./configure que foi usada para compilar a minha instalação atual do PHP?
  16. Quando compilo o PHP com a biblioteca GD retorna erros de compilação ou segfaults na execução.
  17. Ao compilar o PHP eu recebo erros aparentemente aleatórios, como se ele travasse. Estou usando o Solaris, se isso importa.
Eu peguei a última versão do PHP usando o serviço anônimo do GIT, mas não há nenhum script de configuração!

Você precisa ter o pacote GNU autoconf instalado para que possa gerar o script configure a partir do configure.in. Basta executar ./buildconf no diretório raiz após a obtenção do código fonte do servidor do GIT. (Além disso, a menos que você execute com configure com a opção --enable-maintainer-mode, o script configure não será automaticamente recompilado quando o arquivo configure.in for atualizado, então você deve certificar-se de fazer isso manualmente quando você perceber que o configure.in mudou. Um sintoma disso é encontrar coisas como @VARIABLE@ em seu Makefile após configure ou config.statustiver sido executado.)

Estou tendo problemas para configurar o PHP para trabalhar com Apache. Diz que não consegue encontrar httpd.h, mas está bem onde eu disse que está!

Você precisa informar ao script configure/setup a localização do diretório raíz do Apache. Isto significa que você precisa especificar --with-apache=/caminho/para/apache e não --with-apache=/caminho/para/apache/src.

Se enquanto estiver configurando o (./configure) do PHP, você se deparar com um erro semelhante ao seguinte:

checking lex output file root... ./configure: lex: command not found
configure: error: cannot find output from lex; giving up

Não deixe de ler as instruções de instalação cuidadosamente e note que você precisa de ambos flex e bison instalados para compilar o PHP. Dependendo da sua configuração você irá instalar bison e flex a partir de uma fonte ou pacote, como um RPM.

Quando tento iniciar o Apache, recebo a seguinte mensagem:

fatal: relocation error: file /path/to/libphp4.so:
symbol ap_block_alarms: referenced symbol not found

Esse erro geralmente aparece quando um compila o core do Apache como uma biblioteca DSO para uso compartilhado. Tente reconfigurar o apache, certificando-se de usar pelo menos um dos seguintes parâmetros:

--enable-shared=max --enable-rule=SHARED_CORE

Para obter mais informações, leia o arquivo INSTALL que se encontra na pasta raíz do Apache ou a » página sobre DSO no manual do Apache.

Quando eu executo configure, ele diz que não pode encontrar os arquivos de inclusão ou a biblioteca GD, gdbm, ou algum outro pacote!

Você pode fazer o script configure procurar por arquivos de cabeçalho e bibliotecas em locais diferentes, especificando parâmetros adicionais para passar para o pré-processador C e linker, tais como:

    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

Quando se está compilando o arquivo language-parser.tab.c, ele me devolve um erro que diz yytname undeclared.

Você precisa atualizar sua versão do Bison. Você pode encontrar a última versão em » http://www.gnu.org/software/bison/bison.html.

Quando eu executo make, parace rodar bem mas então falha quando tenta ligar a aplicação final, queixando-se que não consegue encontrar alguns arquivos.

Algumas versões antigas do make que não colocam corretamente a versão compilada dos arquivos nos diretórios das funções dentro do mesmo diretório. Tente rodar cp *.o functions e então execute novamente make para ver se isso ajuda. Se não ajudar, você realmente deve atualizar para uma versão mais recente do GNU make.

Quando linkando o PHP, ele reclama de um número de referências indefinidas.

Confira a linha do link e tenha certeza que todas as bibliotecas apropriadas estão sendo incluídas no final. É comum que talvez você tenha esquecido os '-ldl' e qualquer biblioteca requerida para qualquer suporte de banco de dados que você incluiu.

Algumas pessoas também reportaram que elas precisaram adicionar '-ldl' imediatamente seguindo libphp4.a quando linkando com o Apache.

Eu segui todos os passos da instalação do módulo da versão do Apache no Unix, e meus scripts PHP estão sendo mostrados no meu navegador ou me é solicitado salvar os arquivos.

Isso significa que o módulo do PHP não está sendo chamado por alguma razão. Três coisas para se verificar antes de pedir por mais ajuda:

  • Tenha certeza que o binário httpd que você está executando é o que você acabou de compilar. Para fazer isso, tente executar: /path/to/binary/httpd -l Se você não vê mod_php4.c na lista, então você não está executando o binário correto. Encontre e instale o binário correto.
  • Certifique-se de ter adicionado o Mime Type correto em um dos seus arquivos Apache .conf. Deveria ser: AddType application/x-httpd-php .php Também certifique-se que esta linha AddType não esteja escondida dentro de um bloco <Virtualhost> ou <Directory> que possam impedí-la de ser aplicada para a localização de seu script de teste.
  • Finalmente, a localização padrão dos arquivos de configuração do Apache mudou entre o Apache 1.2 e Apache 1.3. Você deve verificar para ter certeza que o arquivo de configuração que você está adicionando à linha do AddType realmente está sendo lido. Você pode colocar um erro de sintaxe óbvio em seu arquivo httpd.conf ou alguma outra mudança evidente que diga se o arquivo está sendo lido corretamente.

Lá diz para usar: --activate-module=src/modules/php4/libphp4.a, mas esse arquivo não existe, então mudei para --activate-module=src/modules/php4/libmodphp4.a e não funciona!? O que está acontecendo?

Note que o arquivo libphp4.a não é para existir. O processo apache irá criá-lo!

Quando tento compilar o Apache com o PHP como um módulo estático usando --activate-module=src/modules/php4/libphp4.a ele me diz que o meu compilador não é compatível com ANSI.

Esta é uma mensagem de erro enganosa do Apache que foi corrigida nas versões mais recentes.

Quando tento compilar o PHP usando --with-apxs recebo mensagens de erro estranhas.

Há três coisas para verificar aqui. Em primeiro lugar, por alguma razão o Apache quando compila o script Perl apxs, às vezes acaba sendo compilado sem o compilador e os parâmetros corretos. Procure pelo seu script apxs (tente o comando which apxs), às vezes é encontrado em /usr/local/apache/bin/apxs ou /usr/sbin/apxs. Abra-o e verifique se existem linhas semelhantes a estas:

my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
Se é isso que você vê, você encontrou o seu problema. Elas podem conter apenas espaços ou outros valores incorretos, como 'q()'. Altere estas linhas de modo que fiquem assim:
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
O segundo problema possível só deve ser um problema no Red Hat 6.1 e 6.2. O script apxs do Red Hat está quebrado. Procure por esta linha:
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
Se você vê a linha acima, mude para isto:
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
Finalmente, se você reconfigurar/reinstalar o Apache, adicione make clean ao processo após o ./configure e antes de make.

Durante make, eu recebo erros no microtime, e um monte de RUSAGE_.

Enquanto é executada a porção make da instalação, se você encontrar problemas que parecem semelhantes a estes:

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

Seu sistema está quebrado. É preciso corrigir os arquivos /usr/include instalando o pacote glibc-devel que corresponde ao seu glibc. Isto não tem absolutamente nada a ver com o PHP. Para provar isso a si mesmo, tente este teste simples:

$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
Se isso mostrar erros, você saberá que os arquivos include estão bagunçados.

Ao compilar o PHP com MySQL, o configure vai bem, mas durante o make recebo um erro semelhante ao seguinte: ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', o que está errado ?

Primeiramente, é importante perceber que este é um Warning e não um erro fatal. Porque esta é muitas vezes a última saída durante o make, ela pode parecer um erro fatal, mas não é. Claro que, se você definir o seu compilador para parar em warnings, ele vai parar. Além disso tenha sempre em mente que o suporte ao MySQL está habilitado por padrão.

Nota:

A partir do PHP 4.3.2, você também verá o seguinte texto depois que a compilação (make) for concluída:

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

Eu quero atualizar o meu PHP. Onde posso encontrar a linha ./configure que foi usada para compilar a minha instalação atual do PHP?

Ou você olha no arquivo config.nice, na pasta raíz atual da sua instalação do PHP, ou, se este não estiver disponível, basta executar um script

<?php phpinfo(); ?>
No topo da saída a linha ./configure que foi usada para compilar esta instalação do PHP é mostrada.

Quando compilo o PHP com a biblioteca GD retorna erros de compilação ou segfaults na execução.

Certifique-se de que sua biblioteca GD e o PHP estejam ligadas à mesmas bibliotecas dependentes (libpng por exemplo).

Ao compilar o PHP eu recebo erros aparentemente aleatórios, como se ele travasse. Estou usando o Solaris, se isso importa.

Usar utilitários que não são GNU ao compilar o PHP pode causar problemas. Certifique-se de usar as ferramentas GNU, a fim de ter certeza de que a compilação do PHP funcionará. Por exemplo, no Solaris, usando tanto o SunOS BSD-compatible quanto versões do Solaris sed não vai funcionar, mas usando as versões GNU ou Sun POSIX (XPG4) do sed irá funcionar. Links: » GNU sed, » GNU flex, e » GNU bison.


Utilizando o PHP

Esta seção reúne vários erros comuns que você pode encontrar enquanto estiver escrevendo scripts PHP.

  1. Não consigo me lembrar da ordem dos parâmetros das funções PHP. Eles são aleatórios?
  2. Eu gostaria de escrever um script PHP genérico que fosse capaz de manipular dados provenientes de qualquer formulário. Como eu sei quais variáveis do método POST estão disponíveis?
  3. Preciso converter todas as aspas simples (') para uma barra invertida seguida por uma aspa simples (\'). Como eu posso fazer isso utilizando expressões regulares? Gostaria de converter também " para \" e \ para \\.
  4. Quando eu faço o seguinte, a saída é exibida na ordem errada: <?php function myfunc($argument) { echo $argument + 10; } $variable = 10; echo "myfunc($variable) = " . myfunc($variable); ?> o que está acontecendo?
  5. Ei, o que aconteceu com as minhas novas linhas? <pre> <?php echo "Esta deve ser a primeira linha."; ?> <?php echo "Esta deveria ser uma nova linha."; ?> </pre>
  6. Recebi a mensagem 'Warning: Cannot send session cookie - headers already sent...' ou 'Cannot add header information - headers already sent...'.
  7. Preciso acessar informações no cabeçalho de requisição diretamente. Como eu faço isso?
  8. Quando eu tento utilizar autenticação com o IIS eu recebo a mensagem 'No Input file specified'.
  9. Windows: Não consigo acessar arquivos compartilhados em outro computador utilizando IIS.
  10. Como faço para misturar XML e PHP? Ele reclama das minhas tags <?xml!
  11. Onde posso encontrar uma lista completa das variáveis que estão disponíveis para mim no PHP?
  12. Como posso gerar arquivos PDF sem utilizar bibliotecas não-livres e comerciais como PDFLib? Eu gostaria de alguma que fosse livre e não precisasse de bibliotecas PDF externas.
  13. Algumas diretivas PHP podem receber valores em bytes de forma abreviada (1K), ao contrário de apenas valores int. Quais são todas as opções disponíveis de bytes de forma abreviada?
Não consigo me lembrar da ordem dos parâmetros das funções PHP. Eles são aleatórios?

O PHP é uma "cola" que reúne centenas de bibliotecas externas, então às vezes isso fica desorganizado. No entanto, uma regra simples é a seguinte:

Os parâmetros de funções de Array são ordenados como "needle, haystack" ao passo que funções de String são o contrário, logo "haystack, needle".

Eu gostaria de escrever um script PHP genérico que fosse capaz de manipular dados provenientes de qualquer formulário. Como eu sei quais variáveis do método POST estão disponíveis?

O PHP disponibiliza muitas variáveis predefinidas, como a superglobal $_POST. Você pode iterar através de $_POST, já que ele é um array associativo com todos os valores enviados com o método POST. Por exemplo, vamos iterar através de POST com foreach, verificar se há valores vazios com empty() e imprimi-los na tela.

<?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 "Nenhum dos valores enviados com POST estão vazios, enviado:\n";
var_dump($post);
} else {
print "Temos " . count($empty) . " valores vazios\n";
print "Enviado:\n"; var_dump($post);
print "Vazio:\n"; var_dump($empty);
exit;
}
?>

Preciso converter todas as aspas simples (') para uma barra invertida seguida por uma aspa simples (\'). Como eu posso fazer isso utilizando expressões regulares? Gostaria de converter também " para \" e \ para \\.

Considerando que isso seja para um banco de dados, utilize o mecanismo de escape que vem com o banco de dados. Por exemplo, utilize mysql_real_escape_string() com MySQL e pg_escape_string() com PostgreSQL. Existem também as funções genéricas addslashes() e stripslashes(), que são mais comuns com códigos PHP antigos.

Quando eu faço o seguinte, a saída é exibida na ordem errada:
<?php
function myfunc($argument)
{
echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
o que está acontecendo?

Para ser capaz de utilizar os resultados de suas funções em uma expressão (como concatenar com uma string no exemplo acima), você precisa utilizar return para retornar o valor e não echo.

Ei, o que aconteceu com as minhas novas linhas?
<pre>
<?php echo "Esta deve ser a primeira linha."; ?>
<?php echo "Esta deveria ser uma nova linha."; ?>
</pre>

No PHP, um bloco de código é fechado com "?>" ou "?>\n" (onde \n significa uma nova linha). Logo, no exemplo anterior, as sentenças serão exibidas na mesma linha porque o PHP omite o caractere de nova linha após o final do bloco de código. Isso significa que você precisa inserir uma nova linha depois de cada bloco de código PHP para exibi-las em uma nova linha.

Por que o PHP faz isso? Porque quando está formatando HTML, isto normalmente torna sua vida mais fácil porque não se quer esta nova linha, senão você teria que criar linhas extremamente longas ou tornar o código fonte ilegível para alcançar este efeito.

Recebi a mensagem 'Warning: Cannot send session cookie - headers already sent...' ou 'Cannot add header information - headers already sent...'.

As funções header(), setcookie() e as funções de sessão precisam adicionar os cabeçalhos ao stream de saída, mas os cabeçalhos só podem ser enviados antes de qualquer outro conteúdo. Não pode haver nenhuma saída antes de utilizar estas funções como HTML. A função headers_sent() irá verificar se o seu script já enviou cabeçalhos e veja também as funções de Controle de Saída.

Preciso acessar informações no cabeçalho de requisição diretamente. Como eu faço isso?

A função getallheaders() fará isso se você estiver rodando o PHP como um módulo do Apache. Logo, o fragmento de código abaixo sempre exibirá todos os cabeçalhos de requisição:

<?php
$headers = getallheaders();
foreach ($headers as $name => $content) {
echo "headers[$name] = $content<br />\n";
}
?>

Veja também
apache_lookup_uri(),
apache_response_headers() e
fsockopen()

Quando eu tento utilizar autenticação com o IIS eu recebo a mensagem 'No Input file specified'.

O modelo de segurança do IIS é o culpado aqui. Este é um problema comum a todos os programas CGI rodando no IIS. A solução é criar um arquivo HTML (não interpretado pelo PHP) como uma página de entrada para o diretório autenticado. Então utilizar a tag META para redirecionar para a página PHP ou fornecer um link para a página PHP. O PHP irá então reconhecer a autenticação corretamente. Com o módulo ISAPI, este não é um problema. Isto não deve afetar outros servidores web NT. Para mais informações veja: » http://support.microsoft.com/kb/q160422/ e a seção do manual em Autenticação HTTP .

Windows: Não consigo acessar arquivos compartilhados em outro computador utilizando IIS.

Você terá que alterar o Go to Internet Information Services. Localize o arquivo PHP e vá até as suas propriedades. Vá até a aba File Security, Edit -< Anonymous access and authentication control.

Pode-se corrigir o problema desabilitando Anonymous Access e deixando Integrated Window Authentication habilitado, ou habilitando Anonymous Access e editando o usuário para que ele não possa ter o direito de acesso.

Como faço para misturar XML e PHP? Ele reclama das minhas tags <?xml!

Para utilizar <?xml diretamente no seu código PHP, você terá que desabilitar as short tags definindo a diretiva PHP short_open_tags como 0. Você não pode configurar esta diretiva com a função ini_set(). Independentemente de short_open_tags estar ativada ou não, você pode fazer algo como: <?php echo '<?xml'; ?>. O padrão para esta diretiva é On.

Onde posso encontrar uma lista completa das variáveis que estão disponíveis para mim no PHP?

Leia a página do manual variáveis predefinidas dado que ele inclui uma lista parcial das variáveis predefinidas disponíveis para o seu script. Uma lista completa das variáveis disponíveis (e muito mais informação) pode ser vista chamando a função phpinfo(). Não deixe de ler a seção do manual variáveis de fontes externas uma vez que descreve cenários comuns para variáveis externas como aquelas originadas de um formulário HTML, cookie ou da URL.

Como posso gerar arquivos PDF sem utilizar bibliotecas não-livres e comerciais como PDFLib? Eu gostaria de alguma que fosse livre e não precisasse de bibliotecas PDF externas.

Existem algumas poucas alternativas escritas em PHP como » FPDF e » TCPDF.

Algumas diretivas PHP podem receber valores em bytes de forma abreviada (1K), ao contrário de apenas valores int. Quais são todas as opções disponíveis de bytes de forma abreviada?

As opções disponíveis são K (para Kilobytes), M (para Megabytes) e G (para Gigabytes), tanto em maiúsculas ou minúsculas. Qualquer outra coisa é tratada como bytes. 1M é igual a um Megabyte ou 1048576 bytes. 1K é igual a um Kilobyte ou 1024 bytes. Essas notações abreviadas podem ser utilizadas no php.ini e na função ini_set(). Importante observar que os valores são truncados para int apenas, ou seja, 0.5M será interpretado como 0.

Nota: kilobyte versus kibibyte

A notação do PHP descreve um kilobyte equivalente a 1024 bytes, enquanto que o padrão IEC considera que este deve ser um kibibyte. Resumindo: k e K = 1024 bytes.


Gerando hash seguro de senha

Esta seção explica as razões por trás do uso de funções de hash para proteger senhas, bem como fazê-lo de forma eficaz.

  1. Por que eu deveria gerar hash das senhas fornecidas pelos usuários da minha aplicação?
  2. Por que são comuns funções de hash tais como md5 e sha1 inadequados para senhas?
  3. Como devo criptografar minhas senhas, se as funções hash comuns não são adequadas?
  4. O que é um salt?
  5. Como faço para armazenar meus salts?
Por que eu deveria gerar hash das senhas fornecidas pelos usuários da minha aplicação?

Gerar hash de senha é uma das considerações mais básicas de segurança que deve ser feita ao projetar qualquer aplicativo que aceita senhas dos usuários. Sem gerar hash, todas as senhas armazenadas em seu banco de dados da aplicação podem ser roubadas, e então imediatamente usada para comprometer não só a sua aplicação, mas também as contas de seus usuários em outros serviços, se eles não usarem senhas únicas.

Aplicando um algoritmo de hash para a senha de seus usuários antes de armazenar em seu banco de dados, dificulta um atacante determinar a senha original, enquanto ainda é possível de comparar o hash resultante para a senha original no futuro.

É importante observar, entretanto, que hash de senhas só protege de comprometer em seu armazenamento de dados, mas não necessariamente protege de serem interceptadas por um código malicioso injetado em sua própria aplicação.

Por que são comuns funções de hash tais como md5() e sha1() inadequados para senhas?

Algoritmos de hash como MD5, SHA1 e SHA256 são projetados para serem muito rápidos e eficientes. Com técnicas modernas e equipamento de informática, tornou-se trivial de "força bruta" a saída desses algoritmos, a fim de determinar a entrada original.

Por causa da rapidez com que um computador moderno pode "inverter" esses algoritmos de hash, muitos profissionais de segurança sugerem fortemente contra a sua utilização para hash da senha.

Como devo criptografar minhas senhas, se as funções hash comuns não são adequadas?

Quando gerar hash de senhas, as duas considerações mais importantes o custo do cálculo, e do salt. O algoritmo de hash computacionalmente mais caro, mais tempo vai demorar para a força bruta produzir um resultado.

O PHP fornece uma API de hash de senha nativo que lida de forma segura tanto gerando hash e verificando senhas de forma segura.

Outra opção é a função crypt(), que suporta vários algoritmos de hash. Quando utilizar esta função, você tem a garantia de que o algoritmo que você selecionou está disponível, como PHP contém implementações nativas de cada algoritmo suportado, no caso de um ou mais não são suportados pelo seu sistema.

O algoritmo sugerido para usar ao gerar hash de senhas é Blowfish, que também é o padrão usado pela API de hash da senha, pois é significativamente mais caro computacionalmente que MD5 ou SHA1, enquanto continua a ser escalável.

Note que se você estiver usando crypt() para verificar uma senha, você terá que tomar cuidado para evitar ataques de tempo usando uma string de comparação de tempo constante. Nem operadores == e === do PHP nem strcmp() realizam comparações de seqüências de tempo constante. Como password_verify() vai fazer isso por você, você será fortemente incentivado a usar a API de hash de senha nativa sempre que possível.

O que é um salt?

Um salt de criptografia são dados que são aplicado durante o processo de hash, a fim de eliminar a possibilidade da saída ser analisada se numa lista de pares pré-calculadas de hashes e sua entrada, conhecida como uma tabela rainbow.

Em termos mais simples, um salt é um pouco de informação adicional, que faz com que seus hashes sejam significativamente mais difíceis de decifrar. Há uma série de serviços on-line que fornecem listas extensas de hashes pré-calculado, bem como a entrada original para os hashes. O uso de um salt faz com que seja improvável ou impossível encontrar o hash resultante em uma dessas listas.

password_hash() será criado um salt aleatório se não for fornecido, e isso geralmente é a abordagem mais fácil e mais segura.

Como faço para armazenar meus salts?

Ao usar password_hash() ou crypt(), o valor de retorno inclui salt como parte do hash gerado. Este valor deve ser armazenado na íntegra no seu banco de dados, uma vez que inclui informações sobre a função hash que foi usado e pode, então, ser dada diretamente para password_verify() ou crypt() ao verificar senhas.

O diagrama a seguir mostra o formato de um valor de retorno de crypt() ou password_hash(). Como você pode ver, eles são auto-suficientes, com todas as informações sobre o algoritmo e salt necessário para futura verificação da senha.

Os componentes do valor retornado pelo password_hash e crypt: em ordem, o algoritmo escolhido, as opções do algoritmo, o salt utilizado, e o hash da senha.


PHP e HTML

PHP e HTML possuem muita interação: PHP pode gerar HTML, e o HTML pode passar informações para o PHP. Antes de ler esses faqs, é importante que você aprenda como recuperar variáveis de fontes externas. A página do manual neste tópico inclui muitos exemplos.

  1. Que codificação/decodificação é preciso quando eu passo um valor através de um formulário/URL?
  2. Estou tentando usar uma tag <input type="image">, mas as variáveis $foo.x e $foo.y não estão disponíveis. $_GET['foo.x'] não existem também. Onde elas estão?
  3. Como eu crio arrays em um HTML <form>?
  4. Como eu faço para obter os resultados de uma múltipla seleção de uma tag HTML?
  5. Como eu posso passar uma variável do Javascript para o PHP?
Que codificação/decodificação é preciso quando eu passo um valor através de um formulário/URL?

Existem muitos estágios para o qual a codificação é importante. Assumindo que você tenha uma string $data, o qual contém a string que você quer passar de um jeito não codificado, esses são os estágios relevantes:

  • Interpretação HTML. A fim de especificar uma string aleatória, você precisa incluí-la entre aspas, e converter todo o valor dos caracteres especiais para a realidade HTML usando htmlspecialchars().

  • URL: Uma URL consiste de diversas partes. Se você quer que seus dados sejam interpretados como um item, você precisa codificá-los com urlencode().

Exemplo #1 Um elemento oculto de formulário HTML

<?php
echo "<input type='hidden' value='" . htmlspecialchars($data) . "' />\n";
?>

Nota: É errado urlencode() $data, porque é a responsabilidade do navegador em urlencode() os dados. Todos os navegadores populares o fazem isso corretamente. Note que isso irá acontecer independentemente do método (i.e., GET ou POST).Você só vai perceber isso em caso de solicitação GET, porque as requisições POST são normalmente escondidas.

Exemplo #2 Dados a serem editados pelo usuário

<?php
echo "<textarea name='mydata'>\n";
echo htmlspecialchars($data)."\n";
echo "</textarea>";
?>

Nota: Os dados são mostrados no navegador como pretendido, porque o navegador irá interpretar os símbolos de escape do HTML. Em consequência do envio, tando via GET como POST, os dados vão ser urlencoded pelo navegador para transferência, e urldecoded diretamente pelo PHP. Resumindo, você não precisa fazer qualquer urlencoded/urldecoded pelo php, tudo é feito automaticamente.

Exemplo #3 Em uma URL

<?php
echo "<a href='" . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . "'>\n";
?>

Nota: De fato você está fingindo uma requisição HTML GET, portanto é necessário urlencode() os dados manualmente.

Nota: Você precisa htmlspecialchars() toda a URL, porque a URL ocorre como um valor de um atributo-HTML. Neste caso, o navegador irá primeiramente un-htmlspecialchars() o valor, e então passar a URL. O PHP vai entender a URL corretamente, porque você codificou os dados com urlencode(). Você vai notar que & na URL é substituído por &amp;. Embora a maioria dos navegadores vão se recuperar se vecê esquecer disso, isso nem sempre é possível. Então, mesmo se a URL não é dinâmica, você precisa htmlspecialchars() a URL.

Estou tentando usar uma tag <input type="image">, mas as variáveis $foo.x e $foo.y não estão disponíveis. $_GET['foo.x'] não existem também. Onde elas estão?

Ao enviar um formulário, é possível usar uma imagem em vez de um botão submit padrão, como na tag:

<input type="image" src="image.gif" name="foo" />
Quando o usuário clica em qualquer lugar na imagem, o formulário que o acompanha será transmitido para o servidor com duas variáveis adicionais: foo.x e foo.y.

Porque foo.x e foo.y faria nome de variáveis inválidas no PHP, elas são automaticamente convertidas para foo_x e foo_y. Ou seja, os períodos são substituídos por sublinhados. Então, você teria acesso a essas variáveis como qualquer outro descrito na seção sobre como recuperar variáveis de fontes externas. Por exemplo, $_GET['foo_x'].

Nota:

Os espaços nos nomes das variáveis requisitadas são convertidas para sublinhado.

Como eu crio arrays em um HTML <form>?

Para obter o resultado do seu <form> enviado como um array para seu script PHP você nomeia os elementos <input>, <select> ou <textarea> como estes:

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
Observe os colchetes após o nome da variável, é isso que torna uma variável um array. Você pode agrupar os elementos dentro de diferentes arrays, atribuindo o mesmo nome a diferentes elementos:
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyOtherArray[]" />
<input name="MyOtherArray[]" />
Isso produz dois arrays, MyArray e MyOtherArray, que serão enviados para o script PHP. Também é possível atribuir chaves específicas para seus arrays:
<input name="AnotherArray[]" />
<input name="AnotherArray[]" />
<input name="AnotherArray[email]" />
<input name="AnotherArray[phone]" />
O array AnotherArray irá conter agora as chaves 0, 1, email e phone.

Nota:

Especificar uma chave de array é opcional no HTML. Se você não especificar as chaves, o array preenche na ordem em que os elementos aparecem no formulário. Nosso primeiro exemplo irá conter as chaves 0, 1, 2 e 3.

Veja também: Funções de Array e Variáveis de fontes Externas.

Como eu faço para obter os resultados de uma múltipla seleção de uma tag HTML?

A seleção de múltiplas tags em uma construção HTML permite os usuários selecionar múltiplos itens de uma lista. Esses itens são então passados ao manipilador de ações para o formulário. O problema é que eles são todos passados com o mesmo nome widget. I.e.

<select name="var" multiple="yes">
Cada opção selecionada chegará ao manipulador de ações como:
var=option1
var=option2
var=option3
Cada opção irá substituir o conteúdo da variável anterior $var. A solução é usar a característica "array de elementos do formulário" do PHP. A seguir devem ser usados:
<select name="var[]" multiple="yes">
Isso diz ao PHP para tratar $var como um array e cada atribuição de um valor para [var] acrescenta um item ao array. O primeiro item se torna $var[0], o próximo $var[1], etc. A função count() pode ser chamado para determinar quantas opções foram selecionadas, e a função sort() pode ser usada para classificar o array de opções se necessário.

Note que se você está usando JavaScript o [] no nome do elemento pode lhe causar problemas quando você tenta se referir ao elemento pelo nome. Ao invés use o ID numérico do elemento do formulário, ou coloque o nome da variável entre aspas simples e use isso como um índice para os elementos do array, por exemplo:

variable = document.forms[0].elements['var[]'];

Como eu posso passar uma variável do Javascript para o PHP?

Uma vez que o Javascript é (normalmente) uma tecnologia da parte do cliente, e o PHP é (normalmente) uma tecnologia da parte do servidor, e uma vez que o HTTP é um protocolo "sem lado", as duas linguagens não podem compartilhar variáveis diretamente.

É , no entanto, possível passar variáveis entre as duas. Uma maneira de realizar isso é gerar um código Javascript com PHP, e ter um navegador que se atualize, passando variáveis específicas de volta para o script PHP. O exemplo abaixo mostra precisamente como fazer isso -- isso permite ao código PHP capturar a altura e largura da tela, algo que normalmente só é possível no lado do cliente.

Exemplo #4 Gerando Javascript com PHP

<?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();
}
?>


PHP e COM

PHP pode ser usado para acessar objetos COM e DCOM em plataformas Win32.

  1. Eu construi uma DLL para calcular algo. Existe uma maneira de executar essa DLL no PHP ?
  2. O que 'Unsupported variant type: xxxx (0xxxxx)' significa ?
  3. É possível manipular objetos visuais no PHP ?
  4. Posso guardar um objeto COM em uma sessão ?
  5. Como eu trato erros de COM ?
  6. Posso gerar arquivos DLL de scripts PHP como eu posso no Perl ?
  7. O que significa 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' ?
  8. Como posso executar um objeto COM de um servidor remoto ?
  9. Eu vejo o erro 'DCOM is disabled in C:\path...\scriptname.php on line 6', o que posso fazer ?
  10. É possível carregar/manipular um objeto ActiveX em uma página com o PHP ?
  11. É possível pegar uma instância sendo executada de um componente ?
  12. Existe alguma maneria de lidar com um evento enviado de um objeto COM ?
  13. Estou tendo problemas quando tento invocar um método de um objeto COM que expõe mais de uma interface. O que posso fazer ?
  14. Então PHP funciona com COM, e com COM+ ?
  15. Se o PHP pode manipular objetos COM, podemos imaginar usar MTS para administrar recursos de componentes, em conjunção com PHP ?
Eu construi uma DLL para calcular algo. Existe uma maneira de executar essa DLL no PHP ?

Se for uma DLL simples, ainda não tem como executá-la no PHP. Se a DLL contem um serviço COM você pode acessá-lo se ele implementar a interface IDispatch.

O que 'Unsupported variant type: xxxx (0xxxxx)' significa ?

Existem dezenas de tipos VARIANT e combinações dos mesmos. A maioria deles já são suportados mas alguns ainda tem que ser implementados. Arrays não são completamente suportados. Apenas arrays indexados com uma única dimensão podem ser passados entre o PHP e COM. Se você achar outros tipos que não são suportados, por favor relate-os como um bug (se não tiverem sido relatados ainda) e passe o máximo de informação disponível.

É possível manipular objetos visuais no PHP ?

Geralmente é, mas como o PHP é principalmente usado como linguagem de script pra web, ele é executado no contexto dos servidores web, então objetos visuais nunca aparecerão no desktop do servidor. Se você usa o PHP para script de aplicações, ex.: em conjunto com PHP-GTK não há limitação no acesso e manipulação de objetos visuais através de COM.

Posso guardar um objeto COM em uma sessão ?

Não, não pode. Instâncias COM são tratadas como recursos (resources) e, portanto, só estão disponíveis no contexto de um script único.

Como eu trato erros de COM ?

A extensão COM dispara exceções do tipo com_exception, que você pode pegar e então inspecionar o membro code para determinar o que fazer depois.

Posso gerar arquivos DLL de scripts PHP como eu posso no Perl ?

Não, infelizmente não existe tal ferramenta disponível para o PHP.

O que significa 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' ?

Esse erro pode ter várias razões:

  • o CLSID está errado
  • a DLL requisitada não existe ou não pode ser lida
  • o componente requisitado não implementa a interface IDispatch

Como posso executar um objeto COM de um servidor remoto ?

Exatamente como você executa objetos locais. Você só tem que passar o IP da máquina remota como segundo parâmetro para o construtor COM.

Tenha certeza de marcar com.allow_dcom =true no seu php.ini.

Eu vejo o erro 'DCOM is disabled in C:\path...\scriptname.php on line 6', o que posso fazer ?

Edite seu arquivo php.ini e marque com.allow_dcom =true.

É possível carregar/manipular um objeto ActiveX em uma página com o PHP ?

Isso não tem nada a ver com o PHP. Objetos ActiveX são carregados no lado do cliente se eles forem requisitados pelo documento HTML. Não há relação com o script PHP e, portanto, nenhuma interação direta possível com o lado do servidor.

É possível pegar uma instância sendo executada de um componente ?

É possível com a ajuda de monikers. Se você quiser referências múltiplas para a mesma instância você pode criar uma instância como mostrado abaixo:

<?php
$word = new COM("C:\docs\word.doc");
?>

Isso criará uma nova instância se nenhuma instância sendo executada estiver disponível e retornará um handle para ela, se disponível.

Existe alguma maneria de lidar com um evento enviado de um objeto COM ?

Você pode definir um interceptador de eventos usando com_event_sink(). Você pode usar com_print_typeinfo() para que o PHP gere um esqueleto para a classe interceptadora de eventos.

Estou tendo problemas quando tento invocar um método de um objeto COM que expõe mais de uma interface. O que posso fazer ?

A resposta é tão simples quanto insatisfatória. Eu não sei exatamente, mas acho que não há nada a fazer. Se alguém tem informação específica sobre isso, por favor » me avise (mande e-mails em inglês) :)

Então PHP funciona com COM, e com COM+ ?

COM+ extende COM por meio de um framework para manusear componentes através de MTS e MSMQ, mas não há nada de especial que o PHP precise suportar para usar tais componentes.

Se o PHP pode manipular objetos COM, podemos imaginar usar MTS para administrar recursos de componentes, em conjunção com PHP ?

O PHP em si não lida com transações ainda. Por isso, se um erro ocorre, nenhum rollback é iniciado. Se você usar componentes que suportem transações você pode implementar a administração de transações por conta própria.


Questões Diversas

Aqui estão algumas questões que nós não pudemos colocar em outra categoria. Aqui você encontra elas.

  1. Como eu posso utilizar os manuais compactados com o bz2 no Windows?
Como eu posso utilizar os manuais compactados com o bz2 no Windows?

Se você não tiver uma ferramenta de arquivos para trabalhar com arquivos bz2 » download a ferramenta de linha de comando da Redhat (por favor veja maiores informações abaixo).

Se você não gostar de usar uma ferramenta de linha de comando, você pode tentar ferramentas gratuitas como » Stuffit Expander, » UltimateZip, » 7-Zip, ou » Quick Zip. Se você tiver ferramentas como » WinRAR ou » Power Archiver, você pode facilmente descomprimir arquivos bz2 com elas. Se você usa o Total Commander, (anteriormente Windows Commander), um plugin para o bz2 esta disponível gratuitamente em » Total Commander.

A ferramenta de linha de comando bzip2 da Redhat:

Usuários Win2k Sp2 obtenha a versão 1.0.2, todos os outros usuários de windows a versão 1.00. Após o download renomeie o executável para bzip2.exe. Para sua conveniência, coloque em um diretório que esteja no seu path, ex. C:\Windows, onde C representa o drive que você instalou o Windows.

Nota: lang significa a sua língua( Português do Brasil: pt_BR) e x para o formato desejado, ex.: pdf. Para descompactar php_manual_lang.x.bz2 siga estas instruções simples:

  • abra uma janela com o prompt de comando
  • Use o comando cd para a pasta onde você guardou o php_manual_lang.x.bz2
  • digite bzip2 -d php_manual_lang.x.bz2, descompactando php_manual_lang.x na mesma pasta

Caso você tenha feito o download de php_manual_lang.tar.bz2 com vários arquivos html nele, o procedimento é o mesmo. A única diferença é que você obtém um arquivo php_manual_lang.tar. O formato tar format é conhecido e tratado com as ferramentas de arquivos mais comuns para o Windows, por exemplo » WinZip.


Apêndices

  • História do PHP e Projetos Relacionados
    • História do PHP
    • História de projetos relacionado ao PHP
    • Livros sobre PHP
    • Publicações sobre PHP
  • Migrando do PHP 8.2.x para o PHP 8.3.x
    • Novas Funcionalidades
    • Novas Classes e Interfaces
    • Novas Funções
    • Novas Constantes Globais
    • Alterações incompatíveis com versões anteriores
    • Recursos Descontinuados
    • Outras mudanças
    • Suporte do Windows
  • Migrando do PHP 8.1.x para o PHP 8.2.x
    • Novas Funcionalidades
    • Novas Funções
    • Novas Constantes Globais
    • Alterações incompatíveis com versões anteriores
    • Funcionalidades Preteridas
    • Outras mudanças
    • Suporte do Windows
  • Migrando do PHP 8.0.x para o PHP 8.1.x
    • Novas Funcionalidades
    • Novas Classes e Interfaces
    • Novas Funções
    • Novas Constantes Globais
    • Alterações incompatíveis com versões anteriores
    • Funcionalidades descontinuadas
    • Outras Mudanças
  • Migrando do PHP 7.4.x para o PHP 8.0.x
    • Novas Funcionalidades
    • Alterações incompatíveis com versões anteriores
    • Recursos descontinuados
    • Outras mudanças
  • Migrando do PHP 7.3.x para o PHP 7.4.x
    • Novos Recursos
    • Novas Classes e Interfaces
    • Novas Funções
    • Novas Constantes Globais
    • Alterações incompatíveis com versões anteriores
    • Recursos descontinuados
    • Extensões Removidas
    • Outras mudanças
    • Suporte do Windows
  • Migrando do PHP 7.2.x para o PHP 7.3.x
    • Novas Funcionalidades
    • Novas Funções
    • Novas Constantes Globais
    • Alterações incompatíveis com versões anteriores
    • Recursos descontinuados
    • Outras mudanças
    • Suporte do Windows
  • Migrando do PHP 7.1.x para o PHP 7.2.x
    • Novas funcionalidades
    • Novas funções
    • Novas constantes globais
    • Alterações incompatíveis com versões anteriores
    • Recursos defasados na versão PHP 7.2.x
    • Outras alterações
  • Migrando do PHP 7.0.x para o PHP 7.1.x
    • Novas funcionalidades
    • Novas funções
    • Novas constantes globais
    • Alterações incompatíveis com versões anteriores
    • Funcionalidades descontinuadas no PHP 7.1.x
    • Funções alteradas
    • Outras alterações
    • Suporte ao Windows
  • Migrando do PHP 5.6.x para o PHP 7.0.x
    • Mudanças incompatíveis com versões anteriores
    • Novos Recursos
    • Recursos descontinuados no PHP 7.0.x
    • Funções alteradas
    • Novas funções
    • Novas Classes e Interfaces
    • Novas Constantes Globais
    • Modificações nos Módulos SAPI
    • Extensões e SAPIs removidas
    • Outras mudanças
  • Migrando do PHP 5.5.x para o PHP 5.6.x
    • Alterações imcompatíveis com versões anteriores
    • Novas funcionalidades
    • Recursos defasados no PHP 5.6.x
    • Funções alteradas
    • Novas funções
    • Mudanças do OpenSSL no PHP 5.6.x
    • Outras mudanças a extensões
    • Novas constantes globais
  • Depurando em PHP
    • Sobre o depurador em PHP
  • Opções do script Configure
    • Lista de opções do script configure
  • php.ini directives
    • Lista de diretivas do php.ini
    • Lista das seções do php.ini
    • Descrição das principais diretivas do php.ini
  • Categorização/Lista das Extensões
    • Em ordem alfabética
    • Sociedade
    • Estado
  • Lista de funções sinônimas (aliases)
  • Lista de Palavras Reservadas do PHP
    • Lista de Palavras-chave (Keywords)
    • Classes Predefinidas
    • Constantes Pré-definidas
    • Lista de outras palavras reservadas
  • Lista de tipos de recursos no PHP
  • Lista de Filtros Disponíveis
    • Filtros de String
    • Fitros de Conversão
    • Filtros de Compressão
    • Filtros de Criptografia
  • Lista de Transportes via Socket Suportados
    • Domínios da Internet: TCP, UDP, SSL, e TLS
    • Domínio Unix: Unix e UDG
  • Tabela de comparações de tipos do PHP
  • Lista de Tokens do Parser
  • Guia de nomenclatura em espaço de usuário
    • Escopo Global
    • Regras
    • Dicas
  • Sobre o manual
    • Formatos
    • Sobre as notas dos usuários
    • Como ler uma definição de função (protótipo)
    • Versões do PHP documentadas neste manual
    • Como encontrar mais informações sobre o PHP
    • Como ajudar a melhorar a documentação
    • Como nós geramos os formatos
    • Traduções
  • Creative Commons Attribution 3.0
  • Lista de índices
    • Lista de Funções e Métodos
    • Lista de exemplos
  • Registro de Alterações


História do PHP e Projetos Relacionados

Índice

  • História do PHP
  • História de projetos relacionado ao PHP
  • Livros sobre PHP
  • Publicações sobre PHP

PHP já percorreu um longo caminho desde seu nascimento em meados da década de 1990. De origens humildes para se tornar uma das mais proeminentes linguagens que alimentam a web, a evolução do PHP é um conto de fadas geek. Lembre-se, esse crescimento explosivo não foi fácil. Aqueles que se interessam em ver brevemente como PHP cresceu para se tornar o que é hoje, continue lendo. Se gostaria de tocar um pedaço da história da internet, você pode encontrar antigas releases do PHP no » Museu PHP.


História do PHP

PHP Tools, FI, Kit de Construção, e PHP/FI

O PHP como é conhecido hoje, é na verdade o sucessor para um produto chamado PHP/FI. Criado em 1994 por Rasmus Lerdof, a primeira encarnação do PHP foi um simples conjunto de binários Common Gateway Interface (CGI) escrito em linguagem de programação C. Originalmente usado para acompanhamento de visitas para seu currículo online, ele nomeou o conjunto de scripts de "Personal Home Page Tools" mais frequentemente referenciado como "PHP Tools." Ao longo do tempo, mais funcionalidades foram desejadas, e Rasmus reescreveu o PHP Tools, produzindo uma maior e rica implementação. Este novo modelo foi capaz de interações com Banco de Dados e mais, fornecendo uma estrutura no qual os usuários poderiam desenvolver simples e dinâmicas aplicações web, como um livros de visitas. Em Junho de 1995, Rasmus » liberou o código fonte do PHP Tools para o público, o que permitiu que desenvolvedores usassem da forma como desejassem. Isso permitiu - e encorajou - usuários a fornecerem correções para bugs no código, e em geral, aperfeiçoá-lo.

Em Setembro do mesmo ano, Rasmus expandiu o PHP e - por um breve período - mudou o nome PHP. Agora referindo-se a ferramenta como FI, abreviação para "Forms Interpreter", a nova implementação incluiu algumas funcionalidades básicas do PHP como bem conhecemos hoje. Tinha variáveis no estilo Perl, interpretação automática de variáveis de formulários, e sintaxe HTML embutida. A sintaxe em si era muito similar com a do Perl, porém muito mais limitada, simples, e um pouco inconsistente. De fato, para embutir o código em um arquivo HTML, desenvolvedores tinham que usar comentários HTML. Embora este método não sido inteiramente bem-recebido, FI continuou a desfrutar um crescimento e aceitação como uma ferramente CGI --- mas ainda não como uma linguagem. Contudo, isso começou a mudar no mês seguinte; em Outubro, 1995 Rasmus liberou um completa reescrita do código. Trazendo de volta o nome PHP, estava agora (brevemente) nomeado "Personal Home Page Contruction Kit" e foi o primeiro lançamento a vangloriar-se que era, na época, considerado um avançado script de interface. A linguagem foi desenvolvida para, deliberadamente, ser parecida com C, tornando-a fácil para ser adotada por desenvolvedores habituados com C, Perl e linguagens similares. Tendo sido até este momento exclusiva para sistemas UNIX e sistemas compatíveis com POSIX, o potencial para uma implementação em um Windows NT começava a ser explorada.

O código tem outra reforma completa, e em Abril de 1996, combinando os nomes dos últimos lançamentos, Rasmus introduziu o PHP/FI. Esta segunda geração da implementação começou a realmente evoluir o PHP de um conjunto de ferramentas para sua própria linguagem de programação. Ele incluía suporte embutido dos banco de dados DBM, mSQL, e Postgres95, cookies, funções de apoio definidas pelo usuário, e muito mais. Em Junho, PHP/FI ganhou o status de versão 2.0. Um interessante fato sobre isso, porém, é que existia apenas um única completa versão do PHP 2.0. Quando finalmente se tornou um status beta em Novembro, 1997, o mecanismo de análise suvbjacente já estava interiramente reescrito.

Apesar de ter tido um curto período de desenvolvimento, ele continuava defrutar uma crescente popularidade em um ainda jovem mundo web desenvolvimento, Em 1997 e 1998, PHP/FI teve o apoio de milhares de usuários ao redor do mundo. Uma pesquisa Netcraft de Maio de 1998, indicou que cerca de 60.000 domínios relataram ter cabeçalhos contendo "PHP", indicando que o servidor de hospedagem de fato tinha o PHP instalado. Este número pode ser equiparado com aproximadamente 1% de todos os domínios da Internet da época. Apesar destes números impressionantes, o amadurecimento do PHP/FI foi condenado a limitações; enquanto haviam vários contribuintes menores, ainda era desenvolvido principalmente por uma única pessoa.

Exemplo #1 Exemplo de código PHP/FI

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Hey, you are using Netscape!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Sorry, that record does not exist<p>
<!--endif exit-->
  Welcome <!--$user-->!<p>
  You have <!--$index:0--> credits left in your account.<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 foi a primeira versão que se assemelha com o PHP como existe hoje. PHP/FI se encontrava ainda ineficiente e não tinha recursos que precisava para prover uma aplicação eCommerce que estavam desenvolvendo para um projeto da Universidade, Andi Gutmans e Zeev Suraski de Tel Aviv, Israel, começaram outra completa reescrita do interpretador em 1997. Abordando Rasmus online, eles discutiram vários aspectos para a corrente implementação e redesenvolvimento do PHP. Em um esforço para melhorar a engine e iniciar a construção em cima da base de usuários existentes do PHP/FI, Andi, Rasmus, e Zeev decidiram colaborar no desenvolvimento de uma nova e independente linguagem de programação. Essa nova linguagem foi lançada com um novo nome, que removeu a impressão do limitado uso pessoal que o nome PHP/FI 2.0 tinha mantido. Foi renomeado simplesmente para 'PHP', com o significado se tornando um acrônimo recursivo - PHP: Hypertext Preprocessor.

Um dos maiores pontos fortes do PHP 3.0 foram os fortes recursos de extensibilidade. Além de fornecer a usuários finais uma interface robusta para múltiplos banco de dados, protocolos, e APIs, a facilidade de estender a sua própria linguagem atraiu dezenas de desenvolvedores que submeteram uma variedade de módulos. Indiscutivelmente esta foi a chave para o PHP 3.0 ter sido um tremendo sucesso. Outro recurso chave foi introduzido no PHP 3.0 incluindo o suporte a programação orientada a objeto e a uma mais poderosa e consistente sintaxe de linguagem.

Em junho de 1998, com muitos novos desenvolvedores ao redor do mundo unindo esforços, PHP 3.0 foi anunciado pelo novo time de desenvolvimento do PHP como o sucessor oficial para o PHP/FI 2.0. As melhorias no PHP/FI 2.0, cessaram em Novembro do ano anterior e agora foi oficialmente finalizado. Depois de nove meses de testes abertos ao público, quando o anúncio do lançamento oficial do PHP 3.0 chegou, prontamente foi instalado em 70.000 domínios em todo mundo, e já não era mais limitado ao sistemas operacionais compatíveis ao POSIX. Uma parcela relativamente pequena de domínios informaram que o PHP foi instalado em um host com servidores executando Windows 95, 98 e NT, Macintosh. E em seu pico, PHP 3.0 foi instalado em aproximadamente 10% dos servidores web da internet.

PHP 4

No inverno de 1998, logo após o PHP 3.0 ter sido oficialmente lançado, Andi Gutmans e Zeev Suraski começaram a trabalhar em uma reescrita do core do PHP. Os objetivos do projeto eram melhorar performance das aplicações complexas, e melhorar a modularização do código base do PHP. Tais aplicações só foram possíveis pelos novos recursos e suporte para uma ampla variedades de banco de dados de terceiros e APIs do PHP 3.0, mas o PHP 3.0 não foi projetado para trabalhar com aplicações complexas de forma eficiente.

O novo motor, chamado 'Zend Engine' (composto pelos primeiros nome, Zeev e Andi), alcançou os objetivos do projeto com sucesso, e foi introduzido em meados de 1999. O PHP 4.0 baseado neste motor, e uma variedade de novos recursos adicionais, foi oficialmente lançado em Maio de 2000, quase dois anos após seu antecessor. Além da altíssima melhoria da performance nesta versão, o PHP 4.0 incluiu outros recursos chaves, tais como suporte para maioria dos servidores web, sessões HTTP, saídas de buffering, mais maneiras seguras para manipular dados de entrada de usuários e diversas novas construções de linguagem.

PHP 5

O PHP 5 foi lançado em Julho de 2004 após um longo desenvolvimento e vários pré-lançamentos. Principalmente impulsionado pelo seu core o Zend Engine 2.0 com um novo modelo de objeto e dezenas de outros novos recursos.

O time de desenvolvimento PHP inclui dezenas de desenvolvedores, também dezenas de outros trabalhando em algo relacionado ao PHP e apoio a projetos como PEAR, PECL, documentação, infra-estrutura de rede subjacente de bem mais de uma centena de servidores web em seis dos sete continentes do mundo. Embora seja apenas uma estimativa baseada sobre estatísticas de anos anteriores, é seguro presumir que o PHP está agora instalado em dezenas, ou mesmo talvez centenas, de milhões de domínios em todo mundo.


História de projetos relacionado ao PHP

PEAR

» PEAR, a PHP Extension and Application Repository (originalmente, PHP Extension and Add-on Repository) é a base de classes PHP, e pode crescer no futuro para ser uma das formas chaves para distribuir extensões PHP entre os desenvolvedores.

PEAR nasceu em discussões de encontros realizados por desenvolvedores PHP (PDM) realizado em Janeiro de 2000 em Tel Aviv. Foi criado por Stig S. Bakken, e é dedicado à sua primeira filha, Malin Bakken.

Desde o início de 2000, PEAR cresceu para ser um grande e significante projeto com um grande número de desenvolvedores trabalhando em implementar funcionalidades comuns e reutilizáveis para benefício da comunidade PHP. PEAR hoje inclui uma ampla variedade de classes para acesso ao banco de dados, cache de conteúdo, cálculos matemáticos, eCommerce e muito mais.

Mais informações sobre PEAR podem ser encontradas » no manual.

Iniciativa de Garantia da Qualidade do PHP

O » PHP Quality Assurance Initiative foi criado no verão de 2000, em resposta para críticas que versões do PHP não estavam sendo suficientemente bem testados para o ambiente de produção. O time agora consiste de um grupo de desenvolvedores com um bom entendimento do código base do PHP. Esses desenvolvedores gastam muito de seu tempo localizando e corrigindo os bugs do PHP. Além de existir muitos outros membros do time que testam e fornecem feedback de suas correções usando uma ampla variedade de plataformas.

PHP-GTK

» PHP-GTK é a solução PHP para escrever aplicações GUI no lado do cliente. Andrei Zmievski nos recorda o processo de planejamento e criação:

Programação GUI foi sempre do meu interesse, e eu achei o Gtk+ um utilitário muito fácil, exceto que programar com ele em C é pouco tedioso. Depois de testemunhar aplicações PyGtk e GTK-Perl. Eu decidi ver se o PHP poderia fazer uma interface com Gtk+, mesmo que pequena. Iniciei em Agosto de 2000, quando comecei a ter um pouco mais de tempo livre, e iniciei os experimentos. Minha principal diretriz foi a implementação PyGtk pois possia recursos bastante completos e uma boa interface de orientação a objetos. James Henstridge, o autor de PyGtk, forneceu muitos conselhos úteis durante os estágios iniciais.

Escrever as interfaces para toda as funções Gtk+ ficou fora de questão, então eu aproveitei a ideia de gerar código, similar como o PyGtk tinha feito. O gerador de código é um programa PHP que lê um conjunto de arquivos .defs contendo as classes Gtk+, constantes, e informações de métodos e gera o código C que faz a interface com PHP. O que não pode ser gerado automaticamente pode ser escrito manualmente no arquivo .overrides.

Trabalhar em um gerador de código e sua infra-estrutura levou algum tempo, pois eu só podia gastar um pouco tempo em PHP-GTK durante o outono de 2000. Depois que mostrei o PHP-GTK para Frank Kromann, ele ficou interessado e começou ajudando-me com o gerador de código e em implementaçes de Win32. Quando nós escrevemos o primeiro programa Hello World e executamos, ficamos muito emocionados. Levou dois ou mais meses para começar o projeto em uma condição apresentável e a versão inicial foi lançada em 1 de Março de 2001. A história rapidamente chegou ao SlashDot.

Sentindo que PHP-GTK podia ser extensível, montei em separado uma lista de e-mail, um repositório CVS para isto e também um website gtk.php.net com a ajuda de Colin Viebrock. Também foi preciso montar a documentação e James Moore veio a ajudar com isto.

Desde seu lançamento, o PHP-GTK foi ganhando popularidae. Nós tivemos nosso próprio time de documentação, o manual continua melhorando, pessoas começaram a escrever extensões para o PHP-GTK, e mais aplicações foram feitas com ele.


Livros sobre PHP

Como o PHP cresceu, começou a ser reconhecido com uma popular plataforma de desenvolvimento web. Um das formas mais interessantes de ver esta tendência foi observando os livros sobre PHP que saiu ao longo dos anos.

Pelo que sabemos, o primeiro livro dedicado para PHP foi 'PHP - tvorba interaktivních internetových aplikací' (PHP - Criando aplicativos interativos da Internet) um livro checo publicado em 1999, cujo autor foi Jirka Kosek. No mês sequinte um livro Alemão, dos autores Egon Schmid, Christian Cartus e Richard Blume. O primeiro livro em Inglês sobre PHP foi publicado pouco depois, e foi 'Core PHP Programming' de Leon Atkinson. Este livro cobria o PHP 3.0.

Enquanto estes eram os primeiros livros deste gênero - eles foram seguidos por um grande número de livros de uma série de autores e e editores. Existem mais de 400 livros em Inglês, mais de 100 livros em Alemão, e mais de 50 livros em Francês ou Espanhol! Além, de poder encontrar livros sobre PHP em muitas outras linguas, incluindo Coreano, Japonês e Hebraico.

Obviamente, este grande número de livros, escrito por diferentes autores, publicados por muitas editoras, e sua disponibilidade em tantas línguas - é um forte testemunho do sucesso do PHP em todo o mundo.


Publicações sobre PHP

Pelo que sabemos, o primeiro artigo sobre PHP em uma revista em papel foi publicado na Computerworld da Tchecoslováquia, na primavera de 1998, e cobria o PHP 3.0. Como os livros, este foi o primeiro de uma série de muitos artigos publicados sobre PHP em várias revistas reconhecidas.

Artigos sobre PHP apareceram no Dr. Dobbs, Linux Enterprise, Linux Magazine e muitos outros. Artigos sobre migração de aplicações baseadas em ASP para PHP no Windows tem aparecido até na MSDN que é da Microsoft !


Migrando do PHP 8.2.x para o PHP 8.3.x

Índice

  • Novas Funcionalidades
  • Novas Classes e Interfaces
  • Novas Funções
  • Novas Constantes Globais
  • Alterações incompatíveis com versões anteriores
  • Recursos Descontinuados
  • Outras mudanças
  • Suporte do Windows

Esta nova versão menor traz consigo várias novas funcionalidades e algumas incompatibilidades que devem ser testadas antes de realizar a troca de versões do PHP em ambientes de produção.

Veja também os guias de migração das versões do PHP 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x, 8.1.x, 8.2.x.


Novas Funcionalidades

PHP Core

Propriedades somente leitura

Classes anônimas agora podem ser marcadas como somente leitura.

Propriedades somente leitura agora podem ser reinicializadas durante a clonagem.

Constantes de Classe Tipadas

Constantes de classe, interface, trait e enum agora suportam declarações de tipo.

Closures criados a partir de métodos mágicos

Closures criados a partir de métodos mágicos agora podem aceitar argumentos nomeados.

O modificador final com um método de uma trait

O modificador final agora pode ser usado ao utilizar um método de uma trait.

Sobreposição de atributos

Foi adicionado o atributo #[\Override] para verificar se um método existe em uma classe pai ou interface implementada.

Sintaxe para buscar constantes de classe dinamicamente.

Agora é possível acessar constantes de classe de forma dinâmica usando a sintaxe C::{$name}.

Inicializadores de variáveis Estáticas

Os inicializadores de variáveis estáticas agora podem conter expressões arbitrárias.

Sintaxe de valor de fallback para variáveis ini

O arquivo php.ini agora suporta a sintaxe de valor de fallback/default.

<?php
/*
No arquivo /path/to/user.ini estão contidas as seguintes configurações:

listen = localhost:${DRUPAL_FPM_PORT:-9000}
*/

$user_ini = parse_ini_file('/path/to/user.ini');
echo $user_ini['listen']; // localhost:9000

CLI

Agora é possível verificar a sintaxe de vários arquivos.

DOM

Foram adicionadas as propriedades DOMElement::$className e DOMElement::$id. No momento, essas propriedades não são seguras para binários devido a limitações subjacentes do libxml2. Isso significa que os valores das propriedades serão truncados em um byte NUL.

Foram adicionadas as propriedades DOMNode::$isConnected e DOMNameSpaceNode::$isConnected.

Foram adicionadas as propriedades DOMNode::$parentElement e DOMNameSpaceNode::$parentElement.

FFI

Agora é possível atribuir FFI\CData a outros FFI\CData. Isso significa que CData pode ser atribuído a estruturas e campos.

Opcache

opcache_get_status()['scripts'][n]['revalidate'] agora contém um carimbo de data e hora Unix que indica quando a próxima revalidação do carimbo de data e hora dos scripts está programada, de acordo com a diretiva INI opcache.revalidate_freq;

POSIX

A função posix_getrlimit() agora aceita um parâmetro opcional $res para permitir a recuperação de um único limite de recurso.

A função posix_isatty() agora gera avisos de tipo para inteiros, seguindo as semânticas ZPP usuais.

A função posix_ttyname() agora gera avisos de tipo para inteiros, seguindo as semânticas ZPP usuais, e avisos de valor para inteiros de descritor de arquivo inválidos.

Streams

Agora, Streams podem emitir a notificação STREAM_NOTIFY_COMPLETED. Isso não era previamente implementado.


Novas Classes e Interfaces

Date

  • DateError
  • DateObjectError
  • DateRangeError
  • DateException
  • DateInvalidOperationException
  • DateInvalidTimeZoneException
  • DateMalformedIntervalStringException
  • DateMalformedPeriodStringException
  • DateMalformedStringException

Random

  • Random\IntervalBoundary


Novas Funções

Date

  • DatePeriod::createFromISO8601String()

DOM

  • DOMElement::getAttributeNames()
  • DOMElement::insertAdjacentElement()
  • DOMElement::insertAdjacentText()
  • DOMElement::toggleAttribute()
  • DOMNode::contains()
  • DOMNode::getRootNode()
  • DOMNode::isEqualNode()
  • DOMNameSpaceNode::contains()
  • DOMParentNode::replaceChildren()

Intl

  • IntlCalendar::setDate()
  • IntlCalendar::setDateTime()
  • IntlGregorianCalendar::createFromDate()
  • IntlGregorianCalendar::createFromDateTime()

JSON

  • json_validate()

LDAP

  • ldap_connect_wallet()
  • ldap_exop_sync()

MBString

  • mb_str_pad()

Posix

  • posix_sysconf()
  • posix_pathconf()
  • posix_fpathconf()
  • posix_eaccess()

PostgreSQL

  • pg_set_error_context_visibility() (libpq >= 9.6)

Random

  • Random\Randomizer::getBytesFromString()
  • Random\Randomizer::nextFloat()
  • Random\Randomizer::getFloat()

Reflection

  • ReflectionMethod::createFromMethodName()

Sockets

  • socket_atmark()

Standard

  • str_increment()
  • str_decrement()
  • stream_context_set_options()

Zip

  • ZipArchive::getArchiveFlag()


Novas Constantes Globais

cURL

  • CURLINFO_CAPATH (libcurl >= 7.84.0)
  • CURLINFO_CAINFO (libcurl >= 7.84.0)
  • CURLOPT_MIME_OPTIONS (libcurl >= 7.81.0)
  • CURLMIMEOPT_FORMESCAPE (libcurl >= 7.81.0)
  • CURLOPT_WS_OPTIONS (libcurl >= 7.86.0)
  • CURLWS_RAW_MODE (libcurl >= 7.86.0)
  • CURLOPT_SSH_HOSTKEYFUNCTION (libcurl >= 7.84.0)
  • CURLOPT_PROTOCOLS_STR (libcurl >= 7.85.0)
  • CURLOPT_REDIR_PROTOCOLS_STR (libcurl >= 7.85.0)
  • CURLOPT_CA_CACHE_TIMEOUT (libcurl >= 7.87.0)
  • CURLOPT_QUICK_EXIT (libcurl >= 7.87.0)
  • CURLKHMATCH_OK (libcurl >= 7.19.6)
  • CURLKHMATCH_MISMATCH (libcurl >= 7.19.6)
  • CURLKHMATCH_MISSING (libcurl >= 7.19.6)
  • CURLKHMATCH_LAST (libcurl >= 7.19.6)

Intl

  • MIXED_NUMBERS (Spoofchecker)
  • HIDDEN_OVERLAY (Spoofchecker)

OpenSSL

  • OPENSSL_CMS_OLDMIMETYPE
  • PKCS7_NOOLDMIMETYPE

PCNTL

  • SIGINFO

PDO_ODBC

  • PDO_ODBC_TYPE

Posix

  • POSIX_SC_ARG_MAX
  • POSIX_SC_PAGESIZE
  • POSIX_SC_NPROCESSORS_CONF
  • POSIX_SC_NPROCESSORS_ONLN
  • POSIX_PC_LINK_MAX
  • POSIX_PC_MAX_CANON
  • POSIX_PC_MAX_INPUT
  • POSIX_PC_NAME_MAX
  • POSIX_PC_PATH_MAX
  • POSIX_PC_PIPE_BUF
  • POSIX_PC_CHOWN_RESTRICTED
  • POSIX_PC_NO_TRUNC
  • POSIX_PC_ALLOC_SIZE_MIN
  • POSIX_PC_SYMLINK_MAX

Sockets

As seguintes opções de socket agora estão definidas se forem suportadas:

  • SO_ATTACH_REUSEPORT_CBPF (Linux)
  • SO_DETACH_BPF (Linux)
  • SO_DETACH_FILTER (Linux)
  • TCP_QUICKACK (Linux)
  • IP_DONTFRAG (FreeBSD)
  • IP_MTU_DISCOVER (Linux)
  • IP_PMTUDISC_DO (Linux)
  • IP_PMTUDISC_DONT (Linux)
  • IP_PMTUDISC_WANT (Linux)
  • IP_PMTUDISC_PROBE (Linux)
  • IP_PMTUDISC_INTERFACE (Linux)
  • IP_PMTUDISC_OMIT (Linux)
  • AF_DIVERT (FreeBSD)
  • SOL_UDPLITE
  • UDPLITE_RECV_CSCOV
  • UDPLITE_SEND_CSCOV
  • SO_RERROR (NetBSD)
  • SO_ZEROIZE (OpenBSD)
  • SO_SPLICE (OpenBSD)
  • TCP_REPAIR (Linux)
  • SO_REUSEPORT_LB (FreeBSD)
  • IP_BIND_ADDRESS_NO_PORT (Linux)

Zip

  • ZipArchive::ER_DATA_LENGTH (libzip >= 1.10)
  • ZipArchive::ER_NOT_ALLOWED (libzip >= 1.10)
  • ZipArchive::AFL_RDONLY (libzip >= 1.10)
  • ZipArchive::AFL_IS_TORRENTZIP (libzip >= 1.10)
  • ZipArchive::AFL_WANT_TORRENTZIP (libzip >= 1.10)
  • ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE (libzip >= 1.10)
  • ZipArchive::FL_OPEN_FILE_NOW
  • ZipArchive::LENGTH_TO_END as default value for
ZipArchive::addFile() and
ZipArchive::replaceFile()
  • ZipArchive::LENGTH_UNCHECKED (libzip >= 1.10)


Alterações incompatíveis com versões anteriores

PHP Core

Programas que estavam muito próximos de estourar a pilha de chamadas.

Programas que estavam muito próximos de esgotar a pilha de chamadas agora podem lançar um Error ao usar mais do que !-- link linkend="zend.max_allowed_stack_size-zend.reserved_stack_size" -->zend.max_allowed_stack_size-zend.reserved_stack_size bytes de pilha (fiber.stack_size-zend.reserved_stack_size para fibers).

Executando proc_get_status() várias vezes

Executar proc_get_status() várias vezes agora sempre retornará o valor correto em sistemas POSIX. Anteriormente, apenas a primeira chamada da função retornava o valor correto. Executar proc_close() após proc_get_status() agora também retornará o código de saída correto. Anteriormente, isso retornaria -1. Internamente, isso funciona armazenando em cache o resultado em sistemas POSIX. Se for necessário o comportamento anterior, é possível verificar a chave "cached" no array retornado por proc_get_status() para verificar se o resultado foi armazenado em cache.

Temporizadores Máximos de Execução do Zend

Os Temporizadores Máximos de Execução do Zend agora estão habilitados por padrão para compilações ZTS no Linux.

Usos de traits com propriedades estáticas

O uso de traits com propriedades estáticas agora irá redeclarar as propriedades estáticas herdadas da classe pai. Isso criará um armazenamento de propriedade estática separado para a classe atual. Isso é análogo a adicionar a propriedade estática diretamente à classe sem o uso de traits.

Atribuir um índice negativo a um array vazio

Atribuir um índice negativo $n a um array vazio agora garantirá que o próximo índice seja $n+1, em vez de 0.

Verificação de consistência na visibilidade de constantes de classe

A variação na visibilidade de constantes de classe agora é verificada corretamente quando herdada de interfaces.

Entradas WeakMap cuja chave mapeia para si mesma

As entradas WeakMap cuja chave mapeia para si mesma (possivelmente de forma transitiva) agora podem ser removidas durante a coleta de ciclos se a chave não for alcançável, exceto por meio da iteração sobre o WeakMap (a alcançabilidade por iteração é considerada fraca). Anteriormente, tais entradas nunca seriam removidas automaticamente.

Date

A extensão DateTime introduziu exceções e erros específicos da extensão Date sob as hierarquias DateError e DateException, em vez de avisos e exceções genéricas. Isso melhora o tratamento de erros, embora exija que se verifiquem erros e exceções.

DOM

Chamar DOMChildNode::after(),
DOMChildNode::before(),
DOMChildNode::replaceWith()
em um nó que não tem pai agora não faz nada (no-op) em vez de gerar
uma exceção de hierarquia, conforme exigido pela especificação DOM.

Usar os métodos DOMParentNode e DOMChildNode sem um documento agora funciona em vez de lançar uma exceção DOM_HIERARCHY_REQUEST_ERR DOMException. Isso está de acordo com o comportamento exigido pela especificação DOM.

Chamar DOMDocument::createAttributeNS() sem especificar um prefixo criaria incorretamente um namespace padrão, colocando o elemento dentro do namespace em vez do atributo. Esse erro foi corrigido.

Anteriormente, DOMDocument::createAttributeNS() lançaria incorretamente uma exceção DOM_NAMESPACE_ERRNAMESPACE_ERR DOMException quando o prefixo já estivesse sendo usado para outro URI. Agora, ele escolhe corretamente um prefixo diferente quando há conflito de nomes de prefixo.

Foram adicionados novos métodos e propriedades a algumas classes DOM. Se uma classe definida pelo usuário herda dessas classes e declara um método ou propriedade com o mesmo nome, as declarações devem ser compatíveis. Caso contrário, ocorrerá um erro de compilação típico relacionado a declarações incompatíveis. Consulte a lista de novas funcionalidades e novas funções para obter uma lista dos métodos e propriedades recém-implementados.

FFI

As funções C que têm um tipo de retorno void agora retornam null em vez de retornar o seguinte objeto object(FFI\CData:void) { }.

Opcache

A diretiva INI opcache.consistency_checks foi removida. Essa funcionalidade estava quebrada com o tracing JIT, bem como com o inheritance cache, e foi desativada sem a possibilidade de ser habilitada desde o PHP 8.1.18 e o PHP 8.2.5. Tanto o tracing JIT quanto o inheritance cache podem modificar a memória compartilhada (shm) depois que o script foi persistido, invalidando seu checksum. A tentativa de correção ignorou os ponteiros modificáveis, mas foi rejeitada devido à complexidade. Por esse motivo, foi decidido remover a funcionalidade em vez de mantê-la.

Phar

O tipo das constantes de classe da classe Phar agora está declarado.

Standard

A função range() sofreu várias mudanças:

  • Agora é lançado um TypeError ao passar objects, resources ou arrays como entradas de limite.
  • Agora é lançado um ValueError mais descritivo ao passar 0 para $step.
  • Agora é lançado um ValueError ao usar um $step negativo para intervalos crescentes.
  • Se $step for um número em ponto flutuante que pode ser interpretado como um número inteiro, ele agora será tratado como tal.
  • Agora, um ValueError é lançado se qualquer argumento for infinito ou NAN.
  • Agora, é gerado um E_WARNING se $start ou $end for uma string vazia. O valor ainda é convertido para o valor 0.
  • Agora, é gerado um E_WARNING se $start ou $end tiver mais de um byte, desde que seja uma string não numérica.
  • Agora, é gerado um E_WARNING se $start ou $end for convertido para um inteiro porque a outra entrada de limite é um número (por exemplo, range(5, 'z');).
  • Agora, é gerado um E_WARNING se $step for um número em ponto flutuante ao tentar gerar um intervalo de caracteres, exceto se ambas as entradas de limite forem strings numéricas (por exemplo, range('5', '9', 0.5); não gera um aviso).
  • number_format() agora lida com valores negativos de $decimals arredondando $num para abs($decimals) dígitos antes do separador decimal. Anteriormente, valores negativos de $decimals eram ignorados.
  • range() agora gera uma lista de caracteres se uma das entradas de limite for um dígito em forma de string, em vez de converter a outra entrada para um número inteiro (por exemplo, range('9', 'A');).
<?php
range('9', 'A'); // ["9", ":", ";", "<", "=", ">", "?", "@", "A"], a partir do PHP 8.3.0
range('9', 'A'); // [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], antes do PHP 8.3.0
?>

A verificação de erros das flags da função file() agora identifica todas as flags inválidas. Notavelmente, FILE_APPEND era anteriormente aceito silenciosamente.

SNMP

O tipo das constantes de classe da classe SNMP agora está declarado.


Recursos Descontinuados

Núcleo do PHP

Operadores de incremento/decremento mais seguros

O uso do operador de incremento (++) em strings vazias, não numéricas ou não alfanuméricas foi agora descontinuado. Além disso, o incremento de strings não numéricas é considerado quase descontinuado. Isso significa que nenhum diagnóstico de E_DEPRECATED é emitido, mas esse recurso não deve ser usado ao criar novo código. Em vez disso, deve ser usado a nova função str_increment().

O uso do operador de decremento (--) em strings vazias ou não numéricas foi agora descontinuado.

Chamada de get_class()/get_parent_class() sem argumentos

Chamar get_class() e get_parent_class() sem argumentos foi agora descontinuado.

DBA

Chamar dba_fetch() com $dba como o terceiro argumento foi agora descontinuado.

FFI

Chamar FFI::cast(), FFI::new() e FFI::type() de forma estática foi agora descontinuado.

Intl

A constante U_MULTIPLE_DECIMAL_SEP*E*RATORS foi descontinuada, recomenda-se usar a constante U_MULTIPLE_DECIMAL_SEP*A*RATORS em seu lugar.

A constante NumberFormatter::TYPE_CURRENCY foi descontinuada.

LDAP

Chamar ldap_connect() com $hostname e $port separados foi descontinuado.

MBString

Passar um valor negativo para $width em mb_strimwidth() agora foi descontinuado.

Phar

Chamar Phar::setStub() com um resource e um $length foi descontinuado. Tais chamadas devem ser substituídas por: $phar->setStub(stream_get_contents($resource));

Random

A variante MT_RAND_PHP Mt19937 foi descontinuada.

Reflection

Chamar ReflectionProperty::setValue() com apenas um parâmetro foi descontinuado. Para definir propriedades estáticas, passe null como o primeiro parâmetro.

Standard

A função assert_options() foi agora descontinuada.

As constantes ASSERT_ACTIVE, ASSERT_BAIL, ASSERT_CALLBACK, ASSERT_EXCEPTION, e ASSERT_WARNING foram descontinuadas.

As configurações assert.* no INI foram descontinuadas. Consulte a página Alterações no Tratamento de Arquivos INI para obter mais detalhes.

SQLite3

O uso de exceções agora é preferido, e os avisos serão removidos no futuro. Chamar SQLite3::enableExceptions(false) desencadeará um aviso de descontinuação nesta versão.

Zip

A constante ZipArchive::FL_RECOMPRESS foi descontinuada e será removida em uma versão futura do libzip.


Outras mudanças

Mudanças no Core

FFI

FFI::load() agora é permitido durante o carregamento antecipado quando opcache.preload_user é o usuário do sistema atual. Anteriormente, chamar FFI::load() não era possível durante o carregamento antecipado se a diretiva opcache.preload_user estivesse definida.

FPM

O teste CLI do FPM agora falha se o caminho do socket for mais longo do que o suportado pelo sistema operacional.

Opcache

Nas SAPIs CLI e phpdbg, o carregamento antecipado não exige mais que a diretiva opcache.preload_user esteja configurada ao ser executado como root. Nas outras SAPIs, essa diretiva é necessária ao ser executado como root, pois o carregamento antecipado é feito antes da SAPI mudar para um usuário não privilegiado.

Streams

A função fread() de bloqueio em uma conexão de socket agora retorna imediatamente se houver dados em buffer, em vez de esperar por mais dados.

Uma memória de fluxo não falha mais se o deslocamento de busca estiver além do final. Em vez disso, a memória é aumentada na próxima gravação e os dados entre o antigo final e o deslocamento são preenchidos com bytes zero, da mesma forma como acontece com arquivos.

Operações de acesso ao stat() como file_exists() e similares agora usarão o caminho real em vez do caminho real da stream. Isso é consistente com a abertura de streams.

Alterações nos Módulos SAPI

CLI

Os fluxos STDOUT, STDERR e STDIN não são mais fechados na destruição de resources, o que ocorre principalmente quando o CLI termina. No entanto, ainda é possível fechar explicitamente esses fluxos usando fclose() e funções semelhantes.

Funções Alteradas

Core

gc_status() adicionou os seguintes 8 campos:

  • "running" => bool
  • "protected" => bool
  • "full" => bool
  • "buffer_size" => int
  • "application_time" => float: Tempo total de aplicação, em segundos (incluindo collector_time)
  • "collector_time" => float: Tempo gasto coletando ciclos, em segundos (incluindo destructor_time e free_time)
  • "destructor_time" => float: Tempo gasto executando destrutores durante a coleta de ciclos, em segundos
  • "free_time" => float: Tempo gasto liberando valores durante a coleta de ciclos, em segundos.

class_alias()agora suporta a criação de um alias de uma classe interna.

Definir open_basedir em tempo de execução usando ini_set('open_basedir', ...); não aceita mais caminhos que contenham o diretório pai (..). Anteriormente, apenas os caminhos que começavam com .. eram proibidos. Isso poderia ser facilmente contornado adicionando ./ ao início do caminho.

Os manipuladores de exceção do usuário agora capturam exceções durante a finalização.

O HTML resultante das funções highlight_string() e highlight_file() foi alterado. O espaço em branco entre as tags HTML externas é removido. As quebras de linha e espaços não são mais convertidos em entidades HTML. Todo o HTML agora é envolvido em uma tag <pre>. A tag <span> externa foi mesclada com a tag <code> .

Calendar

A função easter_date() agora suporta anos de 1970 a 2.000.000.000 em sistemas de 64 bits, anteriormente, ela suportava apenas anos no intervalo de 1970 a 2037.

Curl

A função curl_getinfo() agora suporta duas novas constantes: CURLINFO_CAPATH e CURLINFO_CAINFO. Se a opção for null, duas chaves adicionais são adicionadas: "capath" e "cainfo".

DOM

Alterada a tentativa de tipo de retorno de DOMCharacterData::appendData() para true.

DOMDocument::loadHTML(), DOMDocument::loadHTMLFile() e DOMDocument::loadXML() agora têm um tipo de retorno tentativo de bool. Anteriormente, isso estava documentado com um tipo de retorno de DOMDocument|bool, mas, a partir do PHP 8.0.0, DOMDocument não pode mais ser retornado, pois não pode ser chamado estaticamente.

Gd

A assinatura da função imagerotate() foi alterada. O parâmetro $ignore_transparent foi removido, pois era ignorado desde o PHP 5.5.0.

Intl

A função datefmt_set_timezone() (e seu alias IntlDateformatter::setTimeZone()) agora retorna true em caso de sucesso, anteriormente retornava null.

IntlBreakiterator::setText() agora retorna false em caso de falha, anteriormente era retornado null. Agora retorna true em caso de sucesso, anteriormente era retornado null.

IntlChar::enumCharNames() agora retorna um boolean. Anteriormente, ela retornava null em caso de sucesso e false em caso de falha.

O método IntlDateFormatter::construct() lançará uma exceção U_ILLEGAL_ARGUMENT_ERROR quando uma localidade inválida foi definida.

MBString

As funções mb_strtolower() e mb_convert_case() implementam regras de formatação condicional para a letra sigma grega. Para mb_convert_case(), a formatação condicional se aplica apenas aos modos MB_CASE_LOWER e MB_CASE_TITLE, não aos modos MB_CASE_LOWER_SIMPLE e MB_CASE_TITLE_SIMPLE..

A função mb_decode_mimeheader() interpreta os underscores em palavras MIME codificadas com QPrint conforme o RFC 2047; eles são convertidos em espaços. Os underscores devem ser codificados como "=5F" em tais palavras MIME codificadas.

Em casos raros, mb_encode_mimeheader() pode transferir-encode (codificar para transferência) a cadeia de entrada, enquanto em PHP 8.2 ela seria passada como ASCII bruto.

A função mb_encode_mimeheader() não descarta mais os bytes NUL (zero) ao codificar a string de entrada com QPrint. Isso anteriormente causava a corrupção de strings em determinadas codificações de texto, especialmente UTF-16 e UTF-32, ao usar mb_encode_mimeheader.

O modo "não estrito" da função mb_detect_encoding()'s agora se comporta conforme descrito na documentação. Anteriormente, retornava false se o mesmo byte (por exemplo, o primeiro byte) da string de entrada fosse inválido em todas as codificações candidatas. Mas geralmente, eliminava codificações candidatas da consideração quando um byte inválido era encontrado e, se o mesmo byte de entrada eliminasse todas as codificações restantes ainda em consideração, retornaria false. Por outro lado, se todas as codificações candidatas, exceto uma, fossem eliminadas da consideração, retornaria a última restante sem considerar quantos erros de codificação poderiam ser encontrados posteriormente na string. Isso difere do comportamento descrito na documentação, que diz: "Se estrito for definido como falso, a codificação mais próxima será retornada."

mysqli

mysqli_fetch_object() agora gera um ValueError em vez de uma Exception quando o argumento $constructor_args não está vazio e a classe não possui um construtor.

mysqli_poll() agora gera um ValueError quando nenhum dos argumentos $read nem $error é fornecido.

mysqli_field_seek() e mysqli_result::field_seek() agora especificam o tipo de retorno como true em vez de bool.

ODBC

A função odbc_autocommit() agora aceita null como valor para o parâmetro $enable. Passar null tem o mesmo comportamento que passar apenas 1 parâmetro, ou seja, indica se o recurso de autocommit está habilitado ou não.

PGSQL

pg_fetch_object() agora gera um ValueError em vez de uma Exception quando o argumento $constructor_args não está vazio e a classe não possui um construtor.

A função pg_insert() agora gera um ValueError em vez de um E_WARNING quando a tabela especificada é inválida.

As funções pg_insert() e pg_convert() agora geram um ValueError ou TypeError em vez de um E_WARNING quando o valor/tipo de um campo não corresponde adequadamente ao tipo do PostgreSQL.

O parâmetro $row das funções
pg_fetch_result(),
pg_field_prtlen(), e
pg_field_is_null() agora é opcional.

Random

A função mt_srand() e srand() foram alteradas para não verificarem o número de argumentos para determinar se uma semente (seed) aleatória deve ser usada. Passar null gerará uma semente aleatória, e ao passar 0, será usado zero como a semente. As funções agora são consistentes com com o comportamento de Random\Engine\Mt19937::__construct().

Reflection

O tipo de retorno da função ReflectionClass::getStaticProperties() não é mais nulo.

Standard

As mensagens de erro do tipo E_NOTICEs emitidas pela função unserialize() foram elevadas para E_WARNING.

unserialize() agora emite um novo E_WARNING se a entrada contiver bytes não consumidos.

array_pad() agora está limitada apenas pelo número máximo de elementos que um array pode ter. Anteriormente, era possível adicionar no máximo 1048576 elementos de cada vez.

strtok() gera um E_WARNING no caso em que o token não é fornecido ao iniciar a tokenização.

A função password_hash() agora encadeará a exceção subjacente Random\RandomException como a Exception $previous do tipo ValueError's quando a geração de salt falhar.

Se você estiver usando um array como o parâmetro $command proc_open(), ele agora deve ter pelo menos um elemento não vazio. Caso contrário, um ValueError será lançado.

proc_open() retorna false se o array $command for inválido, em vez de um objeto do tipo resource que produz um aviso posteriormente. Este já era o comportamento no Windows mas agora também é aplicável se uma implementação posix_spawn estiver em uso (maioria das plataformas Linux, BSD e MacOS). Ainda existem algumas plataformas antigas onde este comportamento não foi alterado já que posix_spawn não é suportado nelas.

array_sum() e array_product() agora emitem um aviso quando os valores no array não podem ser convertidos para int ou float. Anteriormente, arrays e objetos eram ignorados, enquanto todos os outros valores eram convertidos para int. Além disso, objetos que definem uma conversão numérica (por exemplo, GMP) agora são convertidos em vez de serem ignorados.

O parâmetro $decimals da função number_format() agora lida corretamente com números inteiros negativos. Arredondar com um valor negativo para $decimals significa que $num é arredondado para $decimals dígitos significativos antes do ponto decimal. Anteriormente, valores negativos para $decimals eram silenciosamente ignorados e o número era arredondado para zero casas decimais.

Um novo argumento $before_needle foi adicionado à função strrchr(). Ele se comporta de forma semelhante ao seu equivalente nas funções strstr() ou stristr().

str_getcsv() e fgetcsv() agora retornam uma string vazia em vez de uma string contendo um único byte nulo para o último campo, que contém apenas um encapsulamento não terminado.

Outras Alterações nas Extensões

Core

O uso dos operadores de incremento/decremento (++/--) em valores do tipo bool agora gera avisos. Isso ocorre porque atualmente não tem efeito, mas se comportará como $bool += 1 no futuro.

O uso do operador de decremento (--) em valores do tipo null agora gera avisos. Isso ocorre porque atualmente não tem efeito, mas se comportará como $null -= 1 no futuro.

Objetos internos que implementam um cast _IS_NUMBER, mas não um manipulador do operador que sobrescreve a adição e a subtração, agora podem ser incrementados e decrementados como se alguém fosse fazer $o += 1 ou $o -= 1

DOM

O mecanismo de vida útil do DOM foi reformulado de tal forma que nós implicitamente removidos ainda podem ser recuperados. Anteriormente, isso resultava em uma exceção.

SQLite3

A classe SQLite3 agora lança SQLite3Exception (que estende Exception) em vez de Exception.

O código de erro do SQLite agora é passado no código de erro da exceção, em vez de ser incluído na mensagem de erro.

Mudanças no Tratamento de Arquivos INI

  • As configurações INI assert.* foram descontinuadas. Isso inclui as seguintes configurações INI:

    • assert.active
    • assert.bail
    • assert.callback
    • assert.exception
    • assert.warning
    Se o valor da configuração for igual ao valor padrão, nenhuma notificação de descontinuação será emitida. Em vez disso, a configuração INI zzend.assertions deve ser usada.

  • zend.max_allowed_stack_size é uma nova diretiva INI que define o tamanho máximo permitido da pilha. Os valores possíveis são 0 (detectar o tamanho máximo da pilha do processo ou da thread), -1 (sem limite) ou um número positivo de bytes. O valor padrão é 0. Quando não é possível detectar o tamanho máximo da pilha do processo ou da thread, é usado um valor padrão do sistema conhecido. Definir esse valor muito alto tem o mesmo efeito que desabilitar o limite de tamanho da pilha. Fibers usam fiber.stack_size como tamanho máximo permitido da pilha. Um Error é gerado quando a pilha de chamadas do processo ultrapassa zend.max_allowed_stack_size-zend.reserved_stack_size bytes, para evitar falhas de segmentação induzidas por estouro de pilha, com o objetivo de facilitar a depuração. O tamanho da pilha aumenta durante recursões não controladas envolvendo funções internas ou os métodos mágicos __toString(), __clone(), __sleep(), __destruct(). Isso não está relacionado a estouros de buffer de pilha e não é uma medida de segurança.

  • zend.reserved_stack_size é uma nova diretiva INI que define o tamanho reservado da pilha, em bytes. Esse valor é subtraído do tamanho máximo permitido da pilha, como um buffer, ao verificar o tamanho da pilha.

Performance

DOM

A iteração sobre um DOMNodeList agora utiliza o cache. Portanto, solicitar itens não leva mais tempo quadrático por padrão.

Obter o conteúdo de texto de nós agora evita uma alocação, resultando em um ganho de desempenho.

DOMChildNode::remove()agora possui desempenho O(1),

Standard

A verificação de erros das flags na função file() agora é cerca de 7% mais rápida.

SPL

RecursiveDirectoryIterator agora realiza menos operações de entrada/saída (I/O) ao percorrer um diretório.


  • « Outras mudanças
  • Migrando do PHP 8.1.x para o PHP 8.2.x »
  • PHP Manual
  • Migrando do PHP 8.2.x para o PHP 8.3.x
  • Suporte do Windows

Suporte do Windows

Core

A versão mínima do Windows suportada foi atualizada para o Windows 8 ou Windows Server 2012.


Migrando do PHP 8.1.x para o PHP 8.2.x

Índice

  • Novas Funcionalidades
  • Novas Funções
  • Novas Constantes Globais
  • Alterações incompatíveis com versões anteriores
  • Funcionalidades Preteridas
  • Outras mudanças
  • Suporte do Windows

Esta nova versão menor traz vários novos recursos e algumas incompatibilidades que devem ser testadas antes da troca de versões do PHP em ambientes de produção.

Veja também os guias de migração das versões do PHP 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x, 8.1.x.


Novas Funcionalidades

PHP Core

Atributo SensitiveParameter

Adicionado o atributo #[\SensitiveParameter] para redigir dados confidenciais em backtraces.

Diretiva INI error_log_mode

A diretiva INI error_log_mode foi adicionada, permitindo definir as permissões para o arquivo de log de erros.

Propriedades de Enumerações em expressões constantes

Agora é possível buscar propriedades de Enumerações em expressões constantes.

Melhorias no sistema de tipos

Agora é possível usar null e false como tipos autônomos.

O tipo true foi adicionado.

Agora é possível combinar tipos de interseção e união. O tipo precisa ser escrito em DNF.

Constantes em Traits

Agora é possível definir constantes em traits.

Classes Somente Leitura

Foi adicionado suporte para classes somente leitura.

cURL

Adicionada a opção CURLINFO_EFFECTIVE_METHOD, que retorna o método HTTP efetivo no valor de retorno de curl_getinfo().

Expôs várias novas constantes de libcurl 7.62 a 7.80.

Adicionada a função curl_upkeep() para executar qualquer verificação de manutenção de conexão.

DBA

O driver LMDB agora aceita as flags DBA_LMDB_USE_SUB_DIR ou DBA_LMDB_NO_SUB_DIR para determinar se deve criar um subdiretório ou não ao criar um arquivo de banco de dados.

OCI8

Adicionou a diretiva INI oci8.prefetch_lob_size e a função oci_set_prefetch_lob() para ajustar o desempenho da consulta LOB reduzindo o número de viagens de ida e volta entre bancos de dados PHP e Oracle ao buscar LOBS. Isso pode ser usado com o Oracle Database 12.2 ou posterior.

OpenSSL

Adicionado suporte AEAD para o algoritmo chacha20-poly1305.

ODBC

Adicionadas as funções odbc_connection_string_is_quoted(), odbc_connection_string_should_quote() e odbc_connection_string_quote(). Eles são usados principalmente nos bastidores nas extensões ODBC e PDO_ODBC, mas são expostos ao userland para facilitar o teste de unidade e para que os aplicativos e bibliotecas do usuário executem as próprias citações.

PCRE

Adicionado suporte para o modificador n (NO_AUTO_CAPTURE), que torna os grupos simples (xyz) sem captura. Somente grupos nomeados como (?<name>xyz) estão capturando. Isso afeta apenas quais grupos estão capturando, ainda é possível usar referências de subpadrão numeradas e a matriz de correspondências ainda conterá resultados numerados.

Random

Esta é uma nova extensão que organiza e consolida implementações existentes relacionadas a geradores de números aleatórios. Novos e melhores RNGs estão disponíveis com problemas de escopo eliminados.


Novas Funções

cURL

  • curl_upkeep()

IMAP

  • imap_is_open() (desde o PHP 8.2.1)

MySQLi

  • mysqli_execute_query()

ODBC

  • odbc_connection_string_is_quoted()
  • odbc_connection_string_should_quote()
  • odbc_connection_string_quote()

OpenSSL

  • openssl_cipher_key_length()

Reflexão

  • ReflectionFunction::isAnonymous()
  • ReflectionMethod::hasPrototype()

Sodium

XChaCha20

  • sodium_crypto_stream_xchacha20_xor_ic()

Padrão

  • memory_reset_peak_usage()
  • ini_parse_quantity()

XML

  • libxml_get_external_entity_loader()


Novas Constantes Globais

COM

  • DISP_E_PARAMNOTFOUND
  • LOCALE_NEUTRAL

cURL

  • CURLALTSVC_H1 (libcurl >= 7.64.1)
  • CURLALTSVC_H2 (libcurl >= 7.64.1)
  • CURLALTSVC_H3 (libcurl >= 7.64.1)
  • CURLALTSVC_READONLYFILE (libcurl >= 7.64.1)
  • CURLAUTH_AWS_SIGV4 (libcurl >= 7.75.0)
  • CURLE_PROXY (libcurl >= 7.73.0)
  • CURLFTPMETHOD_DEFAULT
  • CURLHSTS_ENABLE (libcurl >= 7.74.0)
  • CURLHSTS_READONLYFILE (libcurl >= 7.74.0)
  • CURLINFO_PROXY_ERROR (libcurl >= 7.73.0)
  • CURLINFO_REFERER (libcurl >= 7.76.0)
  • CURLINFO_RETRY_AFTER (libcurl >= 7.66.0)
  • CURLMOPT_MAX_CONCURRENT_STREAMS (libcurl >= 7.67.0)
  • CURLOPT_ALTSVC_CTRL (libcurl >= 7.64.1)
  • CURLOPT_ALTSVC (libcurl >= 7.64.1)
  • CURLOPT_AWS_SIGV4 (libcurl >= 7.75.0)
  • CURLOPT_CAINFO_BLOB (libcurl >= 7.77.0)
  • CURLOPT_DOH_SSL_VERIFYHOST (libcurl >= 7.76.0)
  • CURLOPT_DOH_SSL_VERIFYPEER (libcurl >= 7.76.0)
  • CURLOPT_DOH_SSL_VERIFYSTATUS (libcurl >= 7.76.0)
  • CURLOPT_HSTS_CTRL (libcurl >= 7.74.0)
  • CURLOPT_HSTS (libcurl >= 7.74.0)
  • CURLOPT_MAIL_RCPT_ALLLOWFAILS (libcurl >= 7.69.0)
  • CURLOPT_MAXAGE_CONN (libcurl >= 7.65.0)
  • CURLOPT_MAXFILESIZE_LARGE
  • CURLOPT_MAXLIFETIME_CONN (libcurl >= 7.80.0)
  • CURLOPT_PROXY_CAINFO_BLOB (libcurl >= 7.77.0)
  • CURLOPT_SASL_AUTHZID (libcurl >= 7.66.0)
  • CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (libcurl >= 7.80.0)
  • CURLOPT_SSL_EC_CURVES (libcurl >= 7.73.0)
  • CURLOPT_UPKEEP_INTERVAL_MS (libcurl >= 7.62.0)
  • CURLOPT_UPLOAD_BUFFERSIZE (libcurl >= 7.62.0)
  • CURLOPT_XFERINFOFUNCTION (libcurl >= 7.32.0)
  • CURLPROTO_MQTT (libcurl >= 7.71.0)
  • CURLPX_BAD_ADDRESS_TYPE (libcurl >= 7.73.0)
  • CURLPX_BAD_VERSION (libcurl >= 7.73.0)
  • CURLPX_CLOSED (libcurl >= 7.73.0)
  • CURLPX_GSSAPI (libcurl >= 7.73.0)
  • CURLPX_GSSAPI_PERMSG (libcurl >= 7.73.0)
  • CURLPX_GSSAPI_PROTECTION (libcurl >= 7.73.0)
  • CURLPX_IDENTD_DIFFER (libcurl >= 7.73.0)
  • CURLPX_IDENTD (libcurl >= 7.73.0)
  • CURLPX_LONG_HOSTNAME (libcurl >= 7.73.0)
  • CURLPX_LONG_PASSWD (libcurl >= 7.73.0)
  • CURLPX_LONG_USER (libcurl >= 7.73.0)
  • CURLPX_NO_AUTH (libcurl >= 7.73.0)
  • CURLPX_OK (libcurl >= 7.73.0)
  • CURLPX_RECV_ADDRESS (libcurl >= 7.73.0)
  • CURLPX_RECV_AUTH (libcurl >= 7.73.0)
  • CURLPX_RECV_CONNECT (libcurl >= 7.73.0)
  • CURLPX_RECV_REQACK (libcurl >= 7.73.0)
  • CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (libcurl >= 7.73.0)
  • CURLPX_REPLY_COMMAND_NOT_SUPPORTED (libcurl >= 7.73.0)
  • CURLPX_REPLY_CONNECTION_REFUSED (libcurl >= 7.73.0)
  • CURLPX_REPLY_GENERAL_SERVER_FAILURE (libcurl >= 7.73.0)
  • CURLPX_REPLY_HOST_UNREACHABLE (libcurl >= 7.73.0)
  • CURLPX_REPLY_NETWORK_UNREACHABLE (libcurl >= 7.73.0)
  • CURLPX_REPLY_NOT_ALLOWED (libcurl >= 7.73.0)
  • CURLPX_REPLY_TTL_EXPIRED (libcurl >= 7.73.0)
  • CURLPX_REPLY_UNASSIGNED (libcurl >= 7.73.0)
  • CURLPX_REQUEST_FAILED (libcurl >= 7.73.0)
  • CURLPX_RESOLVE_HOST (libcurl >= 7.73.0)
  • CURLPX_SEND_AUTH (libcurl >= 7.73.0)
  • CURLPX_SEND_CONNECT (libcurl >= 7.73.0)
  • CURLPX_SEND_REQUEST (libcurl >= 7.73.0)
  • CURLPX_UNKNOWN_FAIL (libcurl >= 7.73.0)
  • CURLPX_UNKNOWN_MODE (libcurl >= 7.73.0)
  • CURLPX_USER_REJECTED (libcurl >= 7.73.0)
  • CURLSSLOPT_AUTO_CLIENT_CERT (libcurl >= 7.77.0)
  • CURLSSLOPT_NATIVE_CA (libcurl >= 7.71.0)
  • CURLSSLOPT_NO_PARTIALCHAIN (libcurl >= 7.68.0)
  • CURLSSLOPT_REVOKE_BEST_EFFORT (libcurl >= 7.70.0)
  • CURL_VERSION_GSASL (libcurl >= 7.76.0)
  • CURL_VERSION_HSTS (libcurl >= 7.74.0)
  • CURL_VERSION_HTTP3 (libcurl >= 7.66.0)
  • CURL_VERSION_UNICODE (libcurl >= 7.72.0)
  • CURL_VERSION_ZSTD (libcurl >= 7.72.0)

DBA

  • DBA_LMDB_USE_SUB_DIR
  • DBA_LMDB_NO_SUB_DIR

Filter

  • FILTER_FLAG_GLOBAL_RANGE

Sockets

As seguintes opções de socket agora são definidas se forem suportadas:

  • SO_INCOMING_CPU
  • SO_MEMINFO
  • SO_RTABLE (OpenBSD)
  • TCP_KEEPALIVE (MacOS)
  • TCP_KEEPCNT (Linux, outros)
  • TCP_KEEPIDLE (Linux, outros)
  • TCP_KEEPINTVL (Linux, outros)
  • TCP_NOTSENT_LOWAT
  • LOCAL_CREDS_PERSISTENT (FreeBSD)
  • SCM_CREDS2 (FreeBSD)
  • LOCAL_CREDS (NetBSD)
  • SO_BPF_EXTENSIONS
  • SO_SETFIB
  • TCP_CONGESTION (Linux, FreeBSD)
  • SO_ZEROCOPY (Linux)
  • MSG_ZEROCOPY (Linux)


Alterações incompatíveis com versões anteriores

Data

DateTime::createFromImmutable() agora possui um tipo de retorno provisório static, que anteriormente era DateTime.

DateTimeImmutable::createFromMutable() agora possui um tipo de retorno provisório static, que anteriormente era DateTimeImmutable.

number em relative formats não mais aceita números com mais de um sinal, por exemplo +-2.

ODBC

Agora a extensão ODBC escapa o nome de usuário e a senha quando ambos uma string de conexão e nome de usuário/senha são fornecidos e a string precise ser acrescentada. Antes, valores dados pelo usuário contendo valores que necessitassem ser escapados poderiam criar uma string de conexão malformada ou injetar valores a partir de dados providos pelo usuário. As regras de escape devem ser idênticas às do comportamento do DbConnectionOptions do .NET BCL.

PDO_ODBC

A extensão PDO_ODBC também escapa o nome de usuário e senha quando uma string de conexão é fornecida. Veja a mudança na extensão ODBC para mais informações.

Biblioteca Padrão

glob() agora devolve um array vazio se todos os caminhos forem restringidos por open_basedir. Anteriormente, o valor devolvido era false. Além disso, agora um aviso é emitido mesmo quando apenas alguns caminhos sejam restringidos por open_basedir.

FilesystemIterator::__construct(): anteriormente ao PHP 8.2.0, FilesystemIterator::SKIP_DOTS sempre estava ativa e não podia ser desativada. Para manter a preservar o comportamento anterior, a constante deve ser informada explicitamente quanto utilizando o parâmetro flags. O valor padrão de flags não foi modificado.

strtolower(),
strtoupper(),
stristr(),
stripos(),
strripos(),
lcfirst(),
ucfirst(),
ucwords(),
e str_ireplace() não são mais sensíveis à localização.
Elas agora realizam conversão de caixa em ASCII, como se a localização fosse "C".
Versões localizadas dessas funções estão disponíveis na  extensão MBString.
Além disso, array_change_key_case() e ordenações com
SORT_FLAG_CASE agora também usam conversão de caixa em ASCII.

str_split() agora devolve um array vazio para uma string vazia. Anteriormente era devolvido um array com uma única string vazia como elemento. mb_str_split() não é afetada por essa mudança, visto que tal função já se comportava dessa maneira.

ksort() e krsort() agora fazem comparação de string numérica sob SORT_REGULAR utilizando as regras de PHP 8 padrão.

var_export() deixou de omitir a contrabarra final em classes exportadas, ou seja, agora os nomes de classes estarão completamente qualificados.

Biblioteca Padrão do PHP (SPL)

Agora os seguintes métodos obrigam sua assinatura:

  • SplFileInfo::_bad_state_ex()
  • SplFileObject::getCsvControl()
  • SplFileObject::fflush()
  • SplFileObject::ftell()
  • SplFileObject::fgetc()
  • SplFileObject::fpassthru()

SplFileObject::hasChildren() agora possui um tipo de retorno provisório false, que anteriormente era bool.

SplFileObject::getChildren() agora possui um tipo de retorno provisório null, que anteriormente era ?RecursiveIterator.

GlobIterator agora devolve um array vazio se todos os caminhos forem restringidos por open_basedir. Anteriormente o valor devolvido era false. Além disso, agora um aviso é emitido mesmo quando apenas alguns caminhos sejam restringidos por open_basedir.


Funcionalidades Preteridas

PHP Core

Uso de propriedades dinâmicas

A criação de propriedades dinâmicas foi preterida a menos que a classe a ative usando o atributo #[\AllowDynamicProperties]. stdClass permite propriedades dinâmicas. O uso dos métodos mágicos __get()/__set() não é afetado por essa mudança. Um aviso de descontinuação de propriedades dinâmicas pode ser abordado das seguintes maneiras:

  • Declarando a propriedade (preferido).
  • Adicionando o atributo #[\AllowDynamicProperties] à classe (que também se aplica a todas as classes filhas).
  • Usando um WeakMap se dados adicionais precisarem ser associados a um objeto ao qual não se detém posse.

Chamáveis relativos

Chamáveis que não são aceitos pela sintaxe $callable() (mas são aceitos por call_user_func()) foram preteridos. Em particular:

  • "self::method"
  • "parent::method"
  • "static::method"
  • ["self", "method"]
  • ["parent", "method"]
  • ["static", "method"]
  • ["Foo", "Bar::method"]
  • [new Foo, "Bar::method"]
Isso não afeta chamáveis de métodos normais como "A::method" ou ["A", "method"].

Estilo de interpolação "${var}" e "${expr}"

Os estilos de interpolação de string "${var}" e "${expr}" foram preteridos. Use "$var"/"{$var}" e "{${expr}}", respectivamente.

MBString

O uso das 'codificações de texto' QPrint, Base64, Uuencode, e HTML-ENTITIES foi preterido para todas as funções de MBString. Diferente das outras codificações de texto suportadas pela MBString, essas não codificam a sequência de pontos de código Unicode, mas sim uma sequência de bytes brutos. Não está claro quais deveriam ser os valores de devolução corretos para a maioria das funções de MBString quando uma dessas não-codificações é especificada. Além disso, o PHP possui implementações separadas, embutidas, para todas elas; por exemplo, dados UUencoded podem ser manipulados utilizando convert_uuencode()/convert_uudecode().

SPL

O método interno SplFileInfo::_bad_state_ex() for preterido.

Biblioteca Padrão

utf8_encode() e utf8_decode() foram preteridas.


Outras mudanças

Mudanças no Core

O tipo iterable agora é um alias de tempo de compilação integrado para array|Traversable. As mensagens de erro relacionadas ao iterable agora usarão array|Traversable. Reflexão de tipo é preservada para iterable único (e ?iterable) para produzir um ReflectionNamedType com nome iterable, no entanto, o uso de iterable em tipos de união será convertido em array|Traversable.

O formato da data dos cookies enviados agora é 'D, d M Y H:i:s \G\M\T'; anteriormente era 'D, d-M-Y H:i:s T'.

Alterações nos Módulos SAPI

CLI

Os fluxos STDOUT, STDERR e STDIN não são mais fechados na destruição de recursos, que ocorre principalmente quando a CLI termina. No entanto, ainda é possível fechar explicitamente esses fluxos usando fclose() e similares.

Funções alteradas

Core

As funções strcmp(), strcasecmp(), strncmp(), strncasecmp() e substr_compare(), usando a comparação de string segura binária agora retornam -1, 0 e 1.

DBA

dba_open() e dba_popen() agora possuem a seguinte assinatura obrigatória:

dba_open(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

O argumento opcional skip de dba_fetch()'s agora está no final de acordo com a semântica da área de usuário do PHP. Sua assinatura agora é:

dba_fetch(string|array $key, resource $handle, int $skip): string|false
A assinatura sobrecarregada:
dba_fetch(string|array $key, int $skip, resource $handle): string|false
ainda é aceito, mas é recomendável usar a nova variante padrão.

Random

random_bytes() e random_int() agora lançam um \Random\RandomException em falhas de CSPRNG. Anteriormente, um \Exception simples era lançado.

SPL

O parâmetro iterator de iterator_to_array() e iterator_count() é ampliado para iterable de Iterator, permitindo que arrays sejam passados.

Outras alterações nas extensões

Date

As propriedades de DatePeriod agora estão devidamente declaradas.

Intl

Instâncias de IntlBreakIterator, IntlRuleBasedBreakIterator, IntlCodePointBreakIterator, IntlPartsIterator, IntlCalendar, Collator, IntlIterator, UConverter, IntlDateFormatter, IntlDatePatternGenerator, MessageFormatter, ResourceBundle, Spoofchecker, IntlTimeZone, e Transliterator não são mais serializáveis. Anteriormente, eles podiam ser serializados, mas a desserialização produzia objetos inutilizáveis ou falhava.

MySQLi

O suporte para libmysql foi removido e não é mais possível compilar mysqli com libmysql. A partir de agora, a extensão mysqli pode ser compilada apenas com mysqlnd. Todos os recursos libmysql indisponíveis no mysqlnd foram removidos:

  • A propriedade reconnect de mysqli_driver
  • A diretiva INI mysqli.reconnect
  • A constante MYSQLI_IS_MARIADB foi descontinuada

OCI8

A versão mínima da biblioteca Oracle Client exigida agora é 11.2.

PCRE

Caracteres NULL (\0) em strings padrão agora são suportados.

Session

Tentar alterar a diretiva INI da session.cookie_samesite enquanto a sessão está ativa ou a saída já foi enviada falhará e emitirá um aviso. Isso alinha o comportamento com todas as outras configurações INI da sessão.

SQLite3

sqlite3.defensive agora é INI_USER.

Standard

getimagesize() agora relata as dimensões reais da imagem, bits e canais de imagens AVIF. Anteriormente, as dimensões eram relatadas como 0x0 e bits e canais não eram relatados.

Tidy

As propriedades da classe tidy agora estão devidamente declaradas. E os da classe tidyNode agora são declarados corretamente como somente leitura.

Zip

A extensão Zip foi atualizada para a versão 1.20.0, que adiciona os seguintes métodos:

  • ZipArchive::clearError()
  • ZipArchive::getStreamName()
  • ZipArchive::getStreamIndex()

Alterações na manipulação de arquivos INI

O suporte para prefixos binários (0b/0B) e octal (0o/0O) foi adicionado às configurações INI de número inteiro. As configurações INI de número inteiro que começam com zero (0) continuam a ser interpretadas como um número inteiro octal.

A análise de alguns valores mal formatados agora acionará um aviso quando isso foi silenciosamente ignorado antes. Para compatibilidade com versões anteriores, a interpretação desses valores não mudou. Isso afeta as seguintes configurações:

  • bcmath.scale
  • com.code_page
  • default_socket_timeout
  • fiber.stack_size
  • hard_timeout
  • intl.error_level
  • ldap.max_links
  • max_input_nesting_level
  • max_input_vars
  • mbstring.regex_retry_limit
  • mbstring.regex_stack_limit
  • mysqli.allow_local_infile
  • mysqli.allow_persistent
  • mysqli.default_port
  • mysqli.max_links
  • mysqli.max_persistent
  • mysqli.rollback_on_cached_plink
  • mysqlnd.log_mask
  • mysqlnd.mempool_default_size
  • mysqlnd.net_read_buffer_size
  • mysqlnd.net_read_timeout
  • oci8.default_prefetch
  • oci8.max_persistent
  • oci8.persistent_timeout
  • oci8.ping_interval
  • oci8.prefetch_lob_size
  • oci8.privileged_connect
  • oci8.statement_cache_size
  • odbc.allow_persistent
  • odbc.check_persistent
  • odbc.max_persistent
  • odbc.max_links
  • odbc.defaultbinmode
  • odbc.default_cursortype
  • odbc.defaultlrl
  • opcache.consistency_checks
  • opcache.file_update_protection
  • opcache.force_restart_timeout
  • opcache.interned_strings_buffer
  • opcache.jit_bisect_limit
  • opcache.jit_blacklist_root_trace
  • opcache.jit_blacklist_side_trace
  • opcache.jit_debug
  • opcache.jit_hot_func
  • opcache.jit_hot_loop
  • opcache.jit_hot_return
  • opcache.jit_hot_side_exit
  • opcache.jit_max_exit_counters
  • opcache.jit_max_loop_unrolls
  • opcache.jit_max_polymorphic_calls
  • opcache.jit_max_recursive_calls
  • opcache.jit_max_recursive_returns
  • opcache.jit_max_root_traces
  • opcache.jit_max_side_traces
  • opcache.log_verbosity_level
  • opcache.max_file_size
  • opcache.opt_debug_level
  • opcache.optimization_level
  • opcache.revalidate_freq
  • output_buffering
  • pcre.backtrack_limit
  • pcre.recursion_limit
  • pgsql.max_links
  • pgsql.max_persistent
  • post_max_size
  • realpath_cache_size
  • realpath_cache_ttl
  • session.cache_expire
  • session.cookie_lifetime
  • session.gc_divisor
  • session.gc_maxlifetime
  • session.gc_probability
  • soap.wsdl_cache_limit
  • soap.wsdl_cache_ttl
  • unserialize_max_depth
  • upload_max_filesize
  • user_ini.cache_ttl
  • xmlrpc_error_number
  • zend.assertions
  • zlib.output_compression_level


Suporte do Windows

Núcleo

As mensagens de erro específicas do Windows não são mais localizadas, mas sempre exibidas em inglês para corresponder melhor às mensagens de erro do PHP.

Suporte preliminar e altamente experimental para construção em ARM64 foi adicionado.

OCI8

Como a compilação no Oracle Client 10g não é mais suportada, a opção de configuração --with-oci8 foi descartada. As opções de configuração --with-oci8-11g, --with-oci8-12c e --with-oci8-19 ainda são suportadas.

Zip

A extensão Zip foi atualizada para a versão 1.21.0 e agora é construída como biblioteca compartilhada (DLL) por padrão.


Migrando do PHP 8.0.x para o PHP 8.1.x

Índice

  • Novas Funcionalidades
  • Novas Classes e Interfaces
  • Novas Funções
  • Novas Constantes Globais
  • Alterações incompatíveis com versões anteriores
  • Funcionalidades descontinuadas
  • Outras Mudanças

Esta nova versão menor traz vários novos recursos e algumas incompatibilidades que devem ser testadas antes da troca de versões do PHP em ambientes de produção.

Veja também os guias de migração das versões do PHP 7.1.x, 7.2.x, 7.3.x, 7.4.x e 8.0.x.


Novas Funcionalidades

PHP Core

Prefixo de Inteiro Literal Octal

Inteiros octais agora podem usar um prefixo 0o/0O explícito em inteiros literais, similar à inteiros literais binários e hexadecimais.

<?php
014; // Literal octal não-prefixado
0o14; // Literal octal prefixado
?>

Desempacotamento de Array com chaves String

Adicionado suporte para desmontagem de arrays com chave string

<?php
$arr1 = [1, 'a' => 'b'];
$arr2 = [...$arr1, 'c' => 'd']; //[1, 'a' => 'b', 'c' => 'd']
?>

Argumentos Nomeados Após Desempacotamento de Argumentos

Agora é possível especificar argumentos nomeados após um desempacotamento de argumentos. ex. foo(...$args, nomeado: $arg).

Chave do Caminho Completo para Upload de Arquivos

Upload de arquivos agora fornece uma chave adicional full_path, que contém o caminho completo (em vez de apenas o nome base) do arquivo carregado. Isso destina-se ao uso em conjunto com "upload webkitdirectory".

Enumerações

Suporte para Enumerações foi adicionado.

Fibers

Suporte para Fibers foi adicionado.

Sintaxe de Callable de Primeira Classe

Closures para callables agora podem ser criadas usando a sintaxe myFunc(...), que é idêntica a Closure::fromCallable('myFunc').

Nota: O ... é parte da sintaxe, e não uma omissão.

Tipos de Intersecção

Suporte a tipos de intersecção foi adicionado.

Cuidado

Tipos de Intersecção não podem ser usados em conjunto com tipos de união

Tipo never

Um novo tipo never de retorno apenas foi adicionado. Isso indica que a função exit(), lança uma exceção, ou não termina.

new em Inicializadores

Agora é possível usar expressões new ClassName() como o valor padrão de um parâmetro, variável estática, inicializadores de constante global, e como argumentos de atributo. Objetos também podem ser passados para define() agora.

Propriedades somente leitura

Suporte para propriedades readonly foi adicionado.

Constantes de classe finais

Adicionado suporte ao modificador final para constantes de classe. Além disso, as constantes de interface podem ser sobreescritas.

CURL

Adicionada a opção CURLOPT_DOH_URL.

Adicionadas opções para certificado blob quando libcurl >= 7.71.0:

  • CURLOPT_ISSUERCERT_BLOB
  • CURLOPT_PROXY_ISSUERCERT
  • CURLOPT_PROXY_ISSUERCERT_BLOB
  • CURLOPT_PROXY_SSLCERT_BLOB
  • CURLOPT_PROXY_SSLKEY_BLOB
  • CURLOPT_SSLCERT_BLOB
  • CURLOPT_SSLKEY_BLOB

Adicionada CURLStringFile, que pode ser usada para postar um arquivo a partir de uma string em vez de um arquivo:

<?php
$file = new CURLStringFile($data, 'filename.txt', 'text/plain');
curl_setopt($curl, CURLOPT_POSTFIELDS, ['file' => $file]);
?>

FPM

Adicionado status de formato openmetrics. Ele pode ser usado pelo Prometheus para buscar métricas do FPM.

Adicionada nova opção de pool para o gerenciador de processo dinâmico chamada pm.max_spawn_rate. Ela permite iniciar uma séria de filhos em um ritmo mais rápido quando pm dinâmico está selecionado. O valor padrão é 32 que era o valor codificado anterior.

GD

Suporte Avif agora está disponível através de imagecreatefromavif() e imageavif(), se a libgd foi compilada com suporte Avif.

Hash

As seguintes funções hash(), hash_file(), e hash_init() agora suportam um argumento opcional options adicional, que pode ser utilizado para passar dados específicos do algoritmo.

MurmurHash3

Adicionado suporte a MurmurHash3 com porte A streaming. As seguintes variantes estão implementadas:

  • murmur3a, hash 32-bit
  • murmur3c, hash 128-bit para x86
  • murmur3f, hash 128-bit para x64

O estado de hash inicial pode ser passado através da chave seed no array options, por exemplo:

<?php
$h = hash("murmur3f", $data, options: ["seed" => 42]);
echo $h, "\n";
?>
Um valor semente válido está no intervalo de 0 até o UINT_MAX definido pela plataforma, geralmente 4294967295.

xxHash

Adicionado suporte a xxHash. As seguintes variantes estão implementadas:

  • xxh32, hash 32-bit
  • xxh64, hash 64-bit
  • xxh3, hash 64-bit
  • xxh128, hash 128-bit

O estado inicial de hash pode ser passado através da chave seed no array options, por exemplo:

<?php
$h = hash("xxh3", $data, options: ["seed" => 42]);
echo $h, "\n";
?>
O uso de segredo é suportado através da passagem do chave secret no array options, também:
<?php
$h = hash("xxh3", $data, options: ["secret" => "Segredo de pelo menos 136 bytes aqui"]);
echo $h, "\n";
?>
A qualidade do segredo personalizado é crucial para a qualidade do hash resultante. É altamente recomendado usar a melhor entropia possível para o segredo.

MySQLi

Nova diretiva INI mysqli.local_infile_directory

A diretiva INI mysqli.local_infile_directory foi adicionada, que pode ser usada para especificar um diretório a partir do qual os arquivos podem ser carregados. Só é significativo se mysqli.allow_local_infile não estiver habilitada, já que todos os diretórios são permitidos nesse caso.

Ligar parâmetros no execute

Agora é possível ligar parâmetros passando-os como um array para o mysqli_stmt::execute(). Todos os valores serão ligados como strings. Apenas arrays de lista são permitidos. Essa nova funcionalidade não está disponível quando MySQLi é compilado com libmysqlclient.

<?php
$stmt = $mysqli->prepare('INSERT INTO users(id, name) VALUES(?,?)');
$stmt->execute([1, $username]);
?>

Novo método mysqli_result::fetch_column()

mysqli_result::fetch_column() foi adicionado para permitir buscar um único valor escalar do conjunto de resultados. O novo método aceita um parâmetro opcional baseado em 0 column do tipo int especificando de qual coluna buscar.

<?php
$result = $mysqli->query('SELECT username FROM users WHERE id = 123');
echo $result->fetch_column();
?>

PDO

O atributo PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY foi adicionado, que pode ser usado para especificar um diretório no qual os arquivos podem ser carregados. É significante apenas se PDO::MYSQL_ATTR_LOCAL_INFILE não estiver habilitada, já que todos os diretórios são permitidos nesse caso.

PDO_SQLite

A sintaxe DSN "file:" do SQLite agora é suportada, que permite especificar flags adicionais. Essa funcionalidade não está disponível se open_basedir estiver definido.

<?php
new PDO('sqlite:file:caminho/para/sqlite.db?mode=ro')
?>

POSIX

Adicionadas POSIX_RLIMIT_KQUEUES and POSIX_RLIMIT_NPTS. Esses rlimits estão disponíveis apenas no FreeBSD.

Standard

fputcsv() agora aceita um novo argumento eol que permite a definição de uma sequência de fim de linha personalizada, o padrão continua o mesmo e é "\n".

SPL

SplFileObject::fputcsv() agora aceita um novo argumento eol que permite a definição de uma sequência de fim de linha personalizada, o padrão continua o mesmo e é "\n".


  • « Novas Funcionalidades
  • Novas Funções »
  • PHP Manual
  • Migrando do PHP 8.0.x para o PHP 8.1.x
  • Novas Classes e Interfaces

Novas Classes e Interfaces

cURL

  • CURLStringFile

Intl

  • IntlDatePatternGenerator

Reflection

  • ReflectionFiber


Novas Funções

PHP Core

  • array_is_list()

GD

  • imagecreatefromavif()
  • imageavif()

MySQLi

  • mysqli_result::fetch_column()
  • mysqli_fetch_column()

Controle de Processo

  • pcntl_rfork()

Reflexão

  • ReflectionFunctionAbstract::getClosureUsedVariables()

Padrão

  • fsync()
  • fdatasync()

Sodium

XChaCha20

  • sodium_crypto_stream_xchacha20()
  • sodium_crypto_stream_xchacha20_keygen()
  • sodium_crypto_stream_xchacha20_xor()

Ristretto255

Funções Ristretto255 estão disponíveis a partir de libsodium 1.0.18.

  • sodium_crypto_core_ristretto255_add()
  • sodium_crypto_core_ristretto255_from_hash()
  • sodium_crypto_core_ristretto255_is_valid_point()
  • sodium_crypto_core_ristretto255_random()
  • sodium_crypto_core_ristretto255_scalar_add()
  • sodium_crypto_core_ristretto255_scalar_complement()
  • sodium_crypto_core_ristretto255_scalar_invert()
  • sodium_crypto_core_ristretto255_scalar_mul()
  • sodium_crypto_core_ristretto255_scalar_negate()
  • sodium_crypto_core_ristretto255_scalar_random()
  • sodium_crypto_core_ristretto255_scalar_reduce()
  • sodium_crypto_core_ristretto255_scalar_sub()
  • sodium_crypto_core_ristretto255_sub()
  • sodium_crypto_scalarmult_ristretto255()
  • sodium_crypto_scalarmult_ristretto255_base()


Novas Constantes Globais

cURL

  • CURLOPT_DOH_URL
  • CURLOPT_ISSUERCERT_BLOB
  • CURLOPT_PROXY_ISSUERCERT
  • CURLOPT_PROXY_ISSUERCERT_BLOB
  • CURLOPT_PROXY_SSLCERT_BLOB
  • CURLOPT_PROXY_SSLKEY_BLOB
  • CURLOPT_SSLCERT_BLOB
  • CURLOPT_SSLKEY_BLOB

GD

  • IMG_AVIF
  • IMG_WEBP_LOSSLESS

MySQLi

  • MYSQLI_REFRESH_REPLICA

    Essa constante foi adicionada como uma substituta para MYSQLI_REFRESH_SLAVE, de acordo com uma mudança vinda do MySQL. A constante antiga ainda está disponível por motivos de compatibilidade com versões anteriores, mas pode ser descontinuada/removida no futuro.

PCNTL

  • PRIO_DARWIN_BG
  • PRIO_DARWIN_THREAD

POSIX

  • POSIX_RLIMIT_KQUEUES
  • POSIX_RLIMIT_NPTS

Sockets

As seguintes opções de socket agora são definidas se forem suportadas:

  • SO_ACCEPTFILTER
  • SO_DONTTRUNC
  • SO_WANTMORE
  • SO_MARK
  • TCP_DEFER_ACCEPT

Sodium

  • SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES
  • SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES
  • SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES

Tokenizer

  • T_READONLY


Alterações incompatíveis com versões anteriores

PHP Core

Restrições de acesso ao $GLOBALS

Acesso ao array $GLOBALS agora está sujeito a uma série de restrições. Acesso de leitura e escrita a elementos individuais de array como $GLOBALS['var'] continuam funcionando como estão. Acesso somente leitura para todo o array $GLOBALS também continua a ser suportado. No entanto, acesso de escrita para todo o array $GLOBALS não é mais suportado. Por exemplo, array_pop($GLOBALS) resultará em um erro.

Uso de variáveis static em Métodos Herdados

Quando um método usando variáveis estáticas é herdado (mas não sobreposto), o método herdado agora irá compartilhar variáveis estáticas com o método pai.

<?php
class A {
public static function counter() {
static $counter = 0;
$counter++;
return $counter;
}
}
class B extends A {}
var_dump(A::counter()); // int(1)
var_dump(A::counter()); // int(2)
var_dump(B::counter()); // int(3), anteriormente int(1)
var_dump(B::counter()); // int(4), anteriormente int(2)
?>
Isso significa que variávies estáticas em métodos agora se comportam da mesma maneira que propriedades estáticas.

Parâmetros opcionais especificados antes de parâmetros obrigatórios

Um parâmetro opcional especificado antes de parâmetros obrigatórios agora é sempre tratado como obrigatório, mesmo ao chamar usando argumentos nomeados. A partir do PHP 8.0.0, mas antes do PHP 8.1.0, a função abaixo emite um aviso de descontinuação na definição, mas executa com sucesso quando chamada. A partir do PHP 8.1.0, um erro da classe ArgumentCountError é lançado, assim como seria lançado ao chamar argumentos posicionais.

<?php
function fazeriogurte($recipiente = "tigela", $sabor)
{
return "Fazendo um(a) $recipiente de iogurte de $sabor.\n";
}
try
{
echo fazeriogurte(sabor: "framboesa");
}
catch (Error $e)
{
echo get_class($e), ' - ', $e->getMessage(), "\n";
}
?>

Saída do exemplo acima no PHP 8.0:

Deprecated: Required parameter $sabor follows optional parameter $recipiente
 in example.php on line 3
Fazendo um(a) tigela de iogurte de framboesa.

Saída do exemplo acima no PHP 8.1:

Deprecated: Optional parameter $recepiente declared before required parameter
 $sabor is implicitly treated as a required parameter in example.php on line 3
ArgumentCountError - fazeriogurte(): Argument #1 ($recepiente) not passed

Note que um valor padrão de null pode ser usado antes de parâmetros obrigatórios para especificar um tipo anulável, mas o parâmetro ainda será obrigatório.

Compatibilidade de Tipo de Retorno com Classes Internas

A maioria dos métodos internos não-finais agora obrigam métodos que fazem sobrescrita a declarar um tipo de retorno compatível, do contrário um aviso de descontinuação é emitido durante a validação de herança. Caso o tipo de retorno não possa ser declarado para um método que faz sobrescrita devido a questões de compatilidade entre versões PHP, um atributo ReturnTypeWillChange pode ser adicionado para silenciar o aviso de descontinuação.

Novas Palavras-chave

readonly agora é uma palavra-chave. No entanto, ela ainda pode ser usada como nome de função.

never agora é uma palavra reservada, então ela não pode ser usada para nomear uma classe, interface ou trait, e também é proibida de ser usada em namespaces.

Migração de Recurso para Objeto

Diversos resources foram migrados para objects. Checagens de valor de retorno usando is_resource() devem ser trocadas para checagens por false.

  • As funções FileInfo agora aceitam e retornam objetos finfo em vez de resources fileinfo.

  • As funções FTP agora aceitam e retornam objetos FTP\Connection em vez de resources ftp.

  • As funções IMAP agora aceitam e retornam objetos IMAP\Connection em vez de resources imap.

  • As funções LDAP agora aceitam e retornam objetos LDAP\Connection em vez de resources ldap link.

  • As funções LDAP agora aceitam e retornam objetos LDAP\Result em vez de resources ldap result.

  • As funções LDAP agora aceitam e retornam objetos LDAP\ResultEntry em vez de resources ldap result entry.

  • As funções PgSQL agora aceitam e retornam objetos PgSql\Connection em vez de resources pgsql link.

  • As funções PgSQL agora aceitam e retornam objetos PgSql\Result em vez de resources pgsql result.

  • As funções PgSQL agora aceitam e retornam objetos PgSql\Lob em vez de resources pgsql large object.

  • As funções PSpell agora aceitam e retornam objetos PSpell\Dictionary em vez de resources pspell.

  • As funções PSpell agora aceitam e retornam objetos PSpell\Config em vez de resources pspell config.

MySQLi

mysqli_fetch_fields(), e mysqli_fetch_field_direct() agora irão sempre retornar 0 para a max_length. Essa informação pode ser computada iterando sobre o conjunto de resultados, e obtendo o tamanho máximo. Era isso que o PHP estava fazendo internamente anteriormente.

A opção MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH não tem mais efeito.

A opção MYSQLI_STORE_RESULT_COPY_DATA Não tem mais efeito. Passar qualquer valor para o parâmetro mode do mysqli::store_result() não tem mais efeito.

mysqli::connect() agora retorna true em vez de null em caso de sucesso.

O modo de manipulação de erros padrão foi alterado de "silent" para "exceptions" Veja a página Modo de relatório do MySQLi para mais detalhes sobre o que isso emplica, e como definir esse atributo explicitamente. Para restaurar o comportamento anterior use: mysqli_report(MYSQLI_REPORT_OFF);

Classes estendendo mysqli_stmt::execute() agora são obrigadas a especificar o parâmetro opcional adicional.

MySQLnd

A diretiva INI mysqlnd.fetch_data_copy foi removida. Isso não deve resultar em mudanças comportamentais visíveis pelo usuário.

OpenSSL

Chaves privadas EC agora serão exportadas no formato PKCS#8 em vez de formatos tradicionais, assim como todas as outras chaves.

openssl_pkcs7_encrypt() e openssl_cms_encrypt() agora irão por padrão usar AES-128-CBC em vez de RC2-40. O cifrador RC2-40 é considerado inseguro e não é habilitado por padrão pelo OpenSSL 3.

PHP Data Objects

PDO::ATTR_STRINGIFY_FETCHES agora stringifica valores de tipo bool para "0" iy "1". Anteriormente bools não eram stringificados.

Chamar PDOStatement::bindColumn() com PDO::PARAM_LOB agor irá constantemente vincular um resultado de stream quando PDO::ATTR_STRINGIFY_FETCHES não está habilitado. Anteriormente, o resultado seria uma stream ou string dependendo do driver de banco de dados utilizado e a hora que a vinculação é realizada.

Driver MySQL

Inteiros e floats em conjuntos de resultados agora serão retornados usando tipos nativos do PHP em vez de strings ao usar declarações preparadas emuladas. Isso corresponde ao comportamento das declarações preparadas nativas. O comportamento anterior pode ser restaurado habilitando a opção PDO::ATTR_STRINGIFY_FETCHES.

Driver SQLite

Inteiros e floats em conjuntos de resultados agora serão retornados usando tipos nativos do PHP. O comportamento anterior pode ser restaurado habilitando a opção PDO::ATTR_STRINGIFY_FETCHES.

Phar

Para cumprir com a interface ArrayAccess, Phar::offsetUnset() e PharData::offsetUnset() não retorna mais um bool.

Biblioteca Padrão

version_compare() não aceita mais abreviações de operadores não documentados.

htmlspecialchars(), htmlentities(), htmlspecialchars_decode(), html_entity_decode(), e get_html_translation_table() agora usam ENT_QUOTES | ENT_SUBSTITUTE em vez de ENT_COMPAT por padrão. Isso significa que ' é escapada para &#039; enquanto antes nada era feito. Adicionalmente, UTF-8 malformado será substituído por um caractere de substituição Unicode, ao invés de resultar em uma string vazia.

debug_zval_dump() agora imprime a refcount de wrappers de referência com sua refcount, em vez de apenas prefixar & ao valor. Isso modela de forma mais precisa a representação de referência desde o PHP 7.0.

debug_zval_dump() agora imprime interned em vez de uma refcount falso para strings internadas e arrays imutáveis.

Biblioteca Padrão do PHP (SPL)

SplFixedArray, agora será codificado em JSON como um array


Funcionalidades descontinuadas

PHP Core

Implementar Serializable sem __serialize() e __unserialize()

Apenas os novos métodos devem ser implementados, se nenhum suporte para PHP anterior à versão 7.4 for fornecido, ou ambos devem ser implementados.

Passar null para parâmetros não não-anuláveis de funções embutidas

Tipos escalares para funções embutidas são anuláveis por padrão. Esse comportamento está descontinuado para alinhar com o comportamento de funções definidas pelo usuário, onde tipos escalares precisam ser explicitamente marcados como anuláveis.

<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
// is deprecated
?>

Conversões float para int incompatíveis implícitas

A conversão implícita de float para int que leva a uma perda de precisão agora está descontinuada. Isso afeta chaves de array, Declarações do tipo int no modo coercitivo, e operadores trabalhando em ints.

<?php
$a = [];
$a[15.5]; // descontinuado, pois o valor da chave perde o componente de 0.5
$a[15.0]; // ok, pois 15.0 == 15
?>

Chamar o elemento static em um trait

Chamar um método static, ou acessar uma propriedade static diretamente em um trait está descontinuado. Métodos e propriedades estáticos devem ser acessados apenas em uma classe usando o trait.

Retornar um não-array da __sleep()

Retornar um valor que não é um array da __sleep() agora gera um diagnóstico.

Retornar por referência de uma função void

<?php
function &test(): void {}
?>
Essa função é contraditória, e já emite o seguinte E_NOTICE quando chamada: Only variable references should be returned by reference.

Autovivificação a partir de false

Autovivificação é o processo de criar um novo array ao acrescentar um valor. Autovivificação é proibida a partir de valores escalares, false, no entanto era uma exceção. Isso está descontinuado agora.

<?php
$arr = false;
$arr[] = 2; // descontinuado
?>

Nota:

Autovivificação a partir de null e valores não indefinidos ainda é permitida:

<?php
// A partir de indefinido
$arr[] = 'some value';
$arr['doesNotExist'][] = 2;
// A partir de null
$arr = null;
$arr[] = 2;
?>

ctype

Verificar argumentos não-string

Passar um argumento não-string está descontinuado. No futuro, o argumento será interpretado como uma string em vez de um codepoint ASCII. Dependendo do comportamento pretendido, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita. Todas as funções ctype_*() são afetadas.

Data

date_sunrise() e date_sunset() foram descontinuadas em favor de date_sun_info().

strptime() foi descontinuada. Use date_parse_from_format() em vez dela (para análise independente de localidade), ou IntlDateFormatter::parse() (para análise dependente de localidade).

strftime() e gmstrftime() foram descontinuadas. Em vez delas, use date() (para formatação independente de localidade), ou IntlDateFormatter::format() (para formatação dependente de localidade).

Filtros

Os filtros FILTER_SANITIZE_STRING e FILTER_SANITIZE_STRIPPED estão descontinuados.

A diretiva INI filter.default está descontinuada.

GD

O num_points da imagepolygon(), imageopenpolygon() e imagefilledpolygon() foi descontinuado.

Hash

A mhash(),
mhash_keygen_s2k(),
mhash_count(),
mhash_get_block_size(),
e mhash_get_hash_name() foram descontinuadas.
Use as funções hash_*() em vez delas.

IMAP

A constante NIL foi descontinuada. Use 0 em vez dela.

Intl

Chamar IntlCalendar::roll() com um argumento bool está descontinuado. Use 1 e -1 em vez de true e false respectivamente.

Multibyte String

Chamar mb_check_encoding() sem argumentos está descontinuado.

MySQLi

A propriedade mysqli_driver::$driver_version foi descontinuada. Ela era sem sentido e desatualizada, use PHP_VERSION_ID em vez dela.

Chamar mysqli::get_client_info() ou mysqli_get_client_info() com o argumento mysqli foi descontinuado. Chame mysqli_get_client_info() sem argumentos para obter a informação de versão da biblioteca cliente.

O método mysqli::init() foi descontinuado.
Substitua chamadas para parent::init() por
parent::__construct().

OCI8

A diretiva INI oci8.old_oci_close_semantics está descontinuada.

ODBC

odbc_result_all() foi descontinuada.

PDO

O modo de busca PDO::FETCH_SERIALIZE foi descontinuado.

PgSQL

Não passar o argumento de conexão para todas as funções pgsql_*() foi descontinuado.

SOAP

A opção ssl_method do SoapClient::__construct() foi descontinuada em favor das opções de contexto de stream SSL.

Biblioteca Padrão

Chamar key(), current(), next(), prev(), reset(), ou end() em objects está descontinuado. Primeiro converta o object para um array utilizando get_mangled_object_vars(), ou utilize os métodos fornecidos por uma classe que implemente Iterator, como por exemplo ArrayIterator.

A diretiva INI auto_detect_line_endings está descontinuada. Se necessário, em vez dela, lide com quebras de linha "\r" manualmente.

As constantes FILE_BINARY e FILE_TEXT foram descontinuadas. Elas nunca tiveram nenhum efeito.


Outras Mudanças

Mudanças nos Módulos SAPI

CLI

Usando -a sem a extensão readline agora resultará em um erro. Anteriormente, -a sem readline havia o mesmo comportamento que chamar php sem nenhum argumento, além de imprimir uma mensagem adicional "Interactive mode enabled". Esse modo não era interativo.

PHPDBG

Funcionalidade remota do phpdbg foi removida.

Funções Alteradas

Core

A ordem das propriedades usadas em foreach, var_dump(), serialize(), comparação de objetos, etc. foi alterada. Propriedades agora são ordenadas naturalmente de acordo com a declaração e herança deles. Propriedades declaradas em uma classe base estarão antes das propriedades das filhas.

A ordem é consistente com o layout interno das propriedades na estrutura zend_object e repete a ordem em default_properties_table[] e properties_info_table[]. A velha ordem não foi documentada e era causada por detalhes de implementação de herança de classes.

Filtro

A flag FILTER_FLAG_ALLOW_OCTAL do filtro FILTER_VALIDATE_INT agora aceita strings octais com o prefixo octal ("0o"/"0O").

GMP

Todas as funções GMP agora aceitam string octal com o prefixo octal ("0o"/"0O").

PDO ODBC

PDO::getAttribute() com
PDO::ATTR_SERVER_INFO e
PDO::ATTR_SERVER_VERSION
agora retorna valores ao invés de lançar PDOException.

Reflexão

ReflectionProperty::setAccessible() e ReflectionMethod::setAccessible() não têm mais efeito. Propriedades e métodos agora são sempre considerados acessíveis via Reflexão.

Padrão

syslog() agora é segura para binários.

Outras Mudanças em Extensões

GD

imagewebp() agora pode fazer codificação WebP lossless passando IMG_WEBP_LOSSLESS como a qualidade.

Essa constante é definida apenas se a libgd utilizada suporta codificação WebP lossless.

MySQLi

mysqli_stmt::next_result() e mysqli::fetch_all() agora estão disponíveis quando linkando contra libmysqlclient.

OpenSSL

  • A extensão OpenSSLagora requer pelo menos OpenSSL versão 1.0.2.

  • OpenSSL 3.0 agora é suportado. Esteja ciente que muitos cifradores não estão mais habilitados por padrão (parte do provedor legado), e que validação de parâmetros (p. ex.: tamanho mínimo de chaves) é mais estrita agora.

Phar

  • SHA256 agora é usado por padrão para assinaturas.

  • Adicionado suporte para assinaturas OpenSSL_SHA256 e OpenSSL_SHA512.

SNMP

  • Adicionado suporte para SHA256 e SHA512 para o protocolo de segurança.

Padrão

--with-password-argon2agora usa pkg-config para detectar libargon2. Como tal, o local para uma libgargon2 alternativa deve ser especificado usando PKG_CONFIG_PATH.

Mudanças no Tratamento de Arquivos INI

  • A diretiva INI log_errors_max_len foi removida. Ela não possui mais efeito desde o PHP 8.0.0.

  • Um dólar no início de uma string entre aspas agora pode ser escapado: "\${" agora será interpretado como uma string de conteúdo ${.

  • Barras inversas em strings entre aspas duplas agora são mais consistentemente tratadas como caracteres de escape. Anteriormente, "foo\\" seguida de algo diferente de uma nova linha não era considerada uma string finalizada. Agora ela é interpretada como uma string de conteúdo foo\. No entanto, como uma exceção, a string "foo\" seguida de uma nova linha continuará sendo tratada como uma string válida de conteúdo foo\ em vez de uma string não terminada. Essa exceção existe para suportar usos ingênuos de caminhos do Windows tais como "C:\foo\".


Migrando do PHP 7.4.x para o PHP 8.0.x

Índice

  • Novas Funcionalidades
  • Alterações incompatíveis com versões anteriores
  • Recursos descontinuados
  • Outras mudanças

Esta nova versão menor traz vários novos recursos e algumas incompatibilidades que devem ser testadas antes da troca de versões do PHP em ambientes de produção.

Veja também os guias de migração das versões do PHP 7.0.x, 7.1.x, 7.2.x, 7.3.x. 7.4.x.


Novas Funcionalidades

PHP Core

Argumentos nomeados

O suporte para Argumentos nomeados foi adicionado.

Atributos

Suporte para Atributos foi adicionado.

Promoção de propriedade do construtor

Suporte para promoção de propriedade do construtor (declarando propriedades na assinatura do construtor) foi adicionado.

União de Tipos

O suporte para união de tipos foi adicionado.

Expressão Match

O suporte para expressões match foi adicionado.

Operador Nullsafe

Suporte para o nullsafe operador (?->) foi adicionado.

Outros novos recursos

  • A classe WeakMap foi adicionada.

  • A classe ValueError foi adicionada.

  • Qualquer número de parâmetros de função agora pode ser substituído por um argumento variádico, desde que os tipos sejam compatíveis. Por exemplo, o seguinte código agora é permitido:

    <?php
    class A {
    public function     method(int $many, string $parameters, $here) {}
    }
    class     B extends A {
    public function     method(...$everything) {}
    }
    ?>

  • static (como em "vinculação estática tardia") agora pode ser usado como um tipo de retorno:

    <?php
    class Test {
    public function     create(): static {
    return new static();
    }
    }
    ?>

  • Agora é possível buscar o nome da classe de um objeto usando $object::class. O resultado é o mesmo que get_class($object).

  • new e instanceof agora podem ser usados com expressões arbitrárias, usando new (expression)(...$args) e $obj instanceof (expression).

  • Algumas correções de consistência na sintaxe da variável foram aplicadas, por exemplo, escrever Foo::BAR::$baz agora é permitido.

  • Adicionada interface Stringable, que é implementada automaticamente se uma classe definir um método __toString().

  • As Traits agora podem definir métodos privados abstratos. Tais métodos devem ser implementados pela classe que usa o trait.

  • throw agora pode ser usado como uma expressão. Isso permite usos como:

    <?php
    $fn     = fn() => throw new Exception('Exception in arrow function');
    $user = $session->user ?? throw new Exception('Must have user');

  • Uma vírgula final opcional agora é permitida nas listas de parâmetros.

    <?php
    function functionWithLongSignature(
    Type1 $parameter1,
    Type2 $parameter2, // <-- Esta vírgula agora é permitida.
    ) {
    }

  • Agora é possível escrever catch (Exception) para capturar uma exceção sem armazená-la em uma variável.

  • O suporte para tipo mixed foi adicionado.

  • Os métodos privados declarados em uma classe pai não impõem mais nenhuma regra de herança nos métodos de uma classe filha (com exceção dos construtores privados finais). O exemplo a seguir ilustra quais restrições foram removidas:

    <?php
    class ParentClass {
    private function     method1() {}
    private function     method2() {}
    private static function     method3() {}
    // Lança um aviso, pois "final" não tem mais efeito:
    private final function method4() {}
    }
    class     ChildClass extends ParentClass {
    // Todos os itens a seguir agora são permitidos, mesmo que os modificadores não sejam
    // o mesmo que para os métodos privados na classe pai.
    public abstract function method1() {}
    public static function     method2() {}
    public function     method3() {}
    public function     method4() {}
    }
    ?>

  • get_resource_id() foi adicionado, o que retorna o mesmo valor que (int) $resource. Ele fornece a mesma funcionalidade em uma API mais clara.

  • O InternalIterator foi adicionado.

Data e hora

  • DateTime::createFromInterface() e DateTimeImmutable::createFromInterface() foram adicionados.

  • O especificador de formato DateTime p foi adicionado, que é o mesmo que P, mas retorna Z em vez de +00:00 para UTC.

DOM

DOMParentNode e DOMChildNode com novas APIs de travessia e manipulação foram adicionadas.

Filtro

FILTER_VALIDATE_BOOL foi adicionado como um alias para FILTER_VALIDATE_BOOLEAN. O novo nome é preferido, pois usa o nome do tipo canônico.

Enchant

enchant_dict_add(), enchant_dict_is_added() e LIBENCHANT_VERSIONforam adicionados.chant

FPM

Adicionada uma nova opção pm.status_listen que permite obter o status de um terminal diferente (por exemplo, porta ou arquivo UDS), o que é útil para obter o status quando todos os filhos estão ocupados atendendo a solicitações de execução longa.

Hash

Os objetos HashContext agora podem ser serializados.

Funções de Internacionalização

As contantes IntlDateFormatter::RELATIVE_FULL,
IntlDateFormatter::RELATIVE_LONG,
IntlDateFormatter::RELATIVE_MEDIUM e
IntlDateFormatter::RELATIVE_SHORT
foram adicionadas.

LDAP

ldap_count_references() foi adicionado, o que retorna o número de mensagens de referência em um resultado de pesquisa.

OPcache

Se a configuração ini opcache.record_warnings estiver habilitada, o OPcache gravará avisos em tempo de compilação e os reproduzirá na próxima inclusão, mesmo que seja servido do cache.

OpenSSL

Adicionado suporte de sintaxe de mensagem criptográfica (CMS) (» RFC 5652) composto de funções para criptografia, descriptografia, assinatura, verificação e leitura. A API é semelhante à API para funções PKCS #7 com a adição de novas constantes de codificação: OPENSSL_ENCODING_DER, OPENSSL_ENCODING_SMIME e OPENSSL_ENCODING_PEM:

  • openssl_cms_encrypt() criptografa a mensagem no arquivo com os certificados e gera o resultado no arquivo fornecido.
  • openssl_cms_decrypt() que descriptografa a mensagem S/MIME no arquivo e envia os resultados para o arquivo fornecido.
  • openssl_cms_read() que exporta o arquivo CMS para uma matriz de certificados PEM.
  • openssl_cms_sign() que assina a mensagem MIME no arquivo com um certificado e uma chave e gera o resultado no arquivo fornecido.
  • openssl_cms_verify() que verifica se o bloco de dados está intacto, o signatário é quem diz ser e retorna os certificados dos signatários.

Regular Expressions (Perl-Compatible)

preg_last_error_msg() foi adicionado, o que retorna uma mensagem legível por humanos para o último erro PCRE. Ele complementa preg_last_error(), que retorna um valor de enumeração inteiro.

Reflection

  • Os seguintes métodos agora podem retornar informações sobre valores padrão de parâmetros de funções internas:

    • ReflectionParameter::isDefaultValueAvailable()
    • ReflectionParameter::getDefaultValue()
    • ReflectionParameter::isDefaultValueConstant()
    • ReflectionParameter::getDefaultValueConstantName()

SQLite3

SQLite3::setAuthorizer() e respectivas constantes de classe foram adicionados para definir um callback userland que será usado para autorizar ou não uma ação no banco de dados.

Biblioteca padrão

  • str_contains(), str_starts_with() e str_ends_with() foram adicionados, que verificam se haystack contém, começa com ou termina com needle, respectivamente.

  • fdiv() foi adicionado, que executa uma divisão de ponto flutuante sob a semântica IEEE 754. A divisão por zero é considerada bem definida e retornará um de Inf, -Inf ou NaN.

  • get_debug_type() foi adicionado, o que retorna um tipo útil para mensagens de erro. Ao contrário de gettype(), ele usa nomes de tipo canônico, retorna nomes de classe para objetos e indica o tipo de recurso para recursos.

  • printf() e amigos agora suportam os especificadores de formato %h e %H. Estes são os mesmos que %g e %G, mas sempre use "." como o separador decimal, em vez de determiná-lo por meio da localidade LC_NUMERIC.

  • printf() e amigos agora suportam o uso de "*" como largura ou precisão, caso em que a largura/precisão é passada como um argumento para printf. Isso também permite usar a precisão -1 com %g, %G, %h e %H. Por exemplo, o código a seguir pode ser usado para reproduzir a formatação de ponto flutuante padrão do PHP:

    <?php
    printf    ("%.*H", (int) ini_get("precision"), $float);
    printf("%.*H", (int) ini_get("serialize_precision"), $float);
    ?>

  • proc_open() agora suporta descritores pseudo-terminal (PTY). O seguinte anexa stdin, stdout e stderr ao mesmo PTY:

    <?php
    $proc     = proc_open($command, [['pty'], ['pty'], ['pty']], $pipes);
    ?>

  • proc_open() agora suporta descritores de pares de sockets. O seguinte anexa um par de sockets distinto a stdin, stdout e stderr:

    <?php
    $proc     = proc_open($command, [['socket'], ['socket'], ['socket']], $pipes);
    ?>

    Ao contrário dos pipes, os sockets não sofrem com problemas de bloqueio de E/S no Windows. No entanto, nem todos os programas podem funcionar corretamente com soquetes stdio.

  • As funções de classificação agora são estáveis, o que significa que os elementos de comparação igual manterão sua ordem original.

  • array_diff(), array_intersect() e suas variações agora podem ser usadas com um único array como argumento. Isso significa que usos como os seguintes agora são possíveis:

    <?php
    // OK, mesmo que $excludes esteja vazio:
    array_diff($array, ...$excludes);
    // OK, mesmo que $arrays contenha apenas um único array:
    array_intersect(...$arrays);
    ?>

  • O parâmetro flag de ob_implicit_flush() foi alterado para aceitar um bool em vez de um int.

Tokenizador

PhpToken adiciona uma interface baseada em objeto ao tokenizer. Ele fornece uma representação mais uniforme e ergonômica, além de ser mais eficiente em termos de memória e mais rápido.

Zip

  • A extensão Zip foi atualizada para a versão 1.19.1.

  • Novo ZipArchive::setMtimeName() e ZipArchive::setMtimeIndex() para definir a hora de modificação de uma entrada.

  • Novo ZipArchive::registerProgressCallback() para fornecer atualizações durante o fechamento do arquivo.

  • Novo ZipArchive::registerCancelCallback() para permitir o cancelamento durante o fechamento do arquivo.

  • Novo ZipArchive::replaceFile() para substituir um conteúdo de entrada.

  • Novo ZipArchive::isCompressionMethodSupported() para verificar os recursos opcionais de compactação.

  • Novo ZipArchive::isEncryptionMethodSupported() para verificar os recursos opcionais de criptografia.

  • A propriedade ZipArchive::lastId para obter o valor do índice da última entrada adicionada foi adicionada.

  • Os erros agora podem ser verificados após o fechamento de um arquivo usando as propriedades
ZipArchive::status e
ZipArchive::statusSys ou o método
ZipArchive::getStatusString().

  • A opção 'remove_path' de ZipArchive::addGlob() e ZipArchive::addPattern() agora é tratada como um prefixo de string arbitrário (para consistência com a opção 'add_path'), enquanto anteriormente era tratada como um nome de diretório.

  • Os recursos opcionais de compactação/criptografia agora estão listados no phpinfo.


Alterações incompatíveis com versões anteriores

PHP Core

Comparação entre String e Número

Comparações não estritas entre números e strings não numéricas, agora funcionam convertendo o número em string e comparando as strings. As comparações entre números e strings numéricas continuam funcionando como antes. Notavelmente, isso significa que a comparação: 0 == "not-a-number" agora é considerada falsa.

Comparação | Antes | Depois
0 == "0" | true | true
0 == "0.0" | true | true
0 == "foo" | true | false
0 == "" | true | false
42 == " 42" | true | true
42 == "42foo" | true | false

Outras mudanças incompatíveis

  • match agora é uma palavra reservada.

  • mixed agora é uma palavra reservada, portanto, não pode ser usado para nomear uma classe, interface ou trait, e também é proibido de ser usado em namespaces.

  • As falhas de asserção agora são lançadas por padrão. Se o comportamento antigo é desejado, assert.exception=0 pode ser definido nas configurações INI.

  • Métodos com o mesmo nome de classe não são mais interpretados como construtores. O método __construct() deve ser utilizado em seu lugar.

  • A capacidade de chamar métodos não estáticos estaticamente foi removida. Por isso a função is_callable() irá falhar ao verificar um método não estático com um nome de classe (deve se realizar uma verificação com uma instância de objeto).

  • Foram removidas as conversões de tipos, (real) e (unset).

  • A diretiva do php.ini track_errors foi removida. Isto significa que a variável php_errormsg não está mais disponível. A função error_get_last() deve ser utilizada em seu lugar.

  • A capacidade de definir constantes que não diferenciam maiúsculas de minúsculas foi removida. O terceiro argumento para a função define() não pode ser mais true.

  • A capacidade de especificar um auto carregamento utilizando a função __autoload() foi removida. A função spl_autoload_register() deve ser utilizada em seu lugar.

  • O argumento errcontext não será mais usado para manipulação de erros personalizados definido com a função set_error_handler().

  • A função create_function() foi removida. Ao invés disso, funções anônimas devem ser utilizadas.

  • A função each() foi removida. foreach ou ArrayIterator devem ser utilizados em seu lugar.

  • Foi removida a capacidade de desvincular this de closures que foram criadas a partir de um método, usando Closure::fromCallable() ou ReflectionMethod::getClosure().

  • A habilidade de desvincular this de closures que contêm usos de this também foi removida.

  • A habilidade de utilizar a função array_key_exists() com objetos foi removida. as funções isset() ou property_exists() devem ser usadas em seu lugar.

  • O comportamento da função array_key_exists() com relação ao tipo do parâmetro key agora é consistente com a função isset() e acesso normal à arrays. Todos os tipos de chave agora usam as coerções usuais e as chaves de array/objeto lançam um TypeError.

  • Qualquer array com número n em sua primeira posição utilizará n+1 em sua próxima chave implícita mesmo se n for negativo.

  • O nível de error_reporting padrão agora é E_ALL. Anteriormente excluía E_NOTICE e E_DEPRECATED.

  • display_startup_errors agora é habilitado por padrão.

  • Usar parent dentro de uma classe sem pai agora produzirá um erro fatal em tempo de execução.

  • O operador @ não irá mais silenciar erros fatais (E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR, E_RECOVERABLE_ERROR, E_PARSE). Manipuladores de erros que esperam que error_reporting seja 0 quando @ é usado, devem ser ajustados para usar uma verificação de máscara:

    <?php
    // Substituir isso ...
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
    if (    error_reporting() == 0) {
    return     false;
    }
    // ...
    }

    // ... por isso:
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
    if (!(    error_reporting() & $err_no)) {
    return     false;
    }
    // ...
    }
    ?>

    Adicionalmente, cuidados devem ser tomados para que mensagens de erro não sejam mostradas no ambiente de produção, o que pode resultar em vazamento de informações. Certifique-se de que a diretiva display_errors=Off seja usada em conjunto com o log de erros.

  • #[ não é mais interpretado como o início de um comentário, já que esta sintaxe é utilizada agora para atributos.

  • Erros de herança devido a assinaturas de método incompatíveis (violações de LSP) agora sempre gerarão um erro fatal. Antes, um aviso era gerado em alguns casos.

  • A precedência dos operadores de concatenação foi modificada em relação ao bitshifts tanto na adição como na subtração.

    <?php
    echo "Sum: " . $a + $b;
    // Era interpretado como:
    echo ("Sum: " . $a) + $b;
    // e passa a ser interpretado como:
    echo "Sum:" . ($a + $b);
    ?>

  • Argumentos com um valor padrão que avaliam null em tempo de execução, não irão mais marcar o tipo do parâmetro como implícito. Um tipo explícito nulo, ou explicitamente null como argumento padrão deve ser usado em seu lugar.

    <?php
    // Subistituir
    function test(int $arg = CONST_RESOLVING_TO_NULL) {}
    // Por isso
    function test(?int $arg = CONST_RESOLVING_TO_NULL) {}
    // Ou isso
    function test(int $arg = null) {}
    ?>

  • Uma série de avisos foram convertidos para exceções do tipo Error:

    • A tentativa de escrita em uma propriedade de um não-objeto. Anteriormente isso criava implicitamente um objeto stdClass para strings nulas, falsas e vazias.
    • A tentativa de anexar um elemento a um array para a qual a chave PHP_INT_MAX já está em uso.
    • Tentar usar um tipo inválido (array ou objeto) como uma chave de array ou deslocamento de string.
    • A tentativa de escrever em um índice de array de um valor escalar.
    • Tentar descompactar um não-array/Traversable.
    • Tentar acessar constantes não qualificadas que são indefinidas. Anteriormente, os acessos constantes não qualificados resultavam em um aviso e eram interpretados como strings.
    • Passar o número errado de argumentos para uma função sem argumento variadic ira lançar uma exceção ArgumentCountError.
    • Passar tipos contáveis inválidos para count() irá lançar uma exceção TypeError.

    Uma série de notificações foram convertidas em avisos:

    • A tentativa de leitura em uma variável não definida.
    • A tentativa de leitura em uma propriedade não definida.
    • A tentativa de leitura em uma chave de array não definido.
    • A tentativa de leitura em uma propriedade de um não-objeto.
    • A tentativa de acesso em um índice de array em um não-array.
    • A tentativa de conversão de um array para uma string.
    • A tentativa de usar um resource como uma chave de array.
    • A tentativa de usar null, um booleano ou um número de ponto flutuante(float) como uma posição em uma string.
    • A tentativa de leitura em uma posição fora dos limites de uma string.
    • A tentativa de atribuir uma string vazia a uma posição de uma string.

  • A tentativa de atribuir múltiplos bytes em uma posição de uma string agora emite um aviso.

  • Caracteres inesperados no código fonte (como bytes NUL fora de strings) agora irá resultar em uma exceção ParseError em vez de um aviso do compilador.

  • As exceções não capturadas agora passam por "desligamento limpo", o que significa que os destrutores são chamados após uma exceção não detectada.

  • O erro fatal em tempo de compilação "Only variables can be passed by reference" foi adiado até o tempo de execução, e convertido em uma exceção de Error "Argument cannot be passed by reference".

  • Alguns alertas do tipo "Only variables should be passed by reference" foram convertidas para exceções do tipo "Argument cannot be passed by reference"

  • O nome gerado para classes anônimas foi modificado. Agora, inclui o nome da primeira classe ou interface:

    <?php
    new class extends ParentClass {};
    // -> ParentClass@anonymous
    new class implements FirstInterface, SecondInterface {};
    // -> FirstInterface@anonymous
    new class {};
    // -> class@anonymous
    ?>

    O nome mostrado acima ainda é seguido por um byte NUL e um sufixo único.

  • As referências de método de traits não absolutas em adaptações de alias de traits agora precisam ser inequívocas:

    <?php
    class X {
    use     T1, T2 {
    func as otherFunc;
    }
    function     func() {}
    }
    ?>

    Se T1::func() e T2::func() existem, este código anteriormente era aceito de forma silenciosa e func assumia referência a T1::func. Agora irá gerar um erro fatal, e T1::func ou T2::func precisam ser escritos explicitamente.

  • A assinatura de métodos abstratos definido nas características agora é verificada no método de implementação da classe:

    <?php
    trait MyTrait {
    abstract private function     neededByTrait(): string;
    }

    class     MyClass {
    use     MyTrait;

    // Erro por conta do retorno desalinhado.
    private function neededByTrait(): int { return 42; }
    }
    ?>

  • Funções desabilitadas agora são tratadas da mesma forma que funções não existentes. Ao chamar uma função desabilitada será informado que ela é desconhecida, e redefinir uma função desabilitada agora é possível.

  • Os stream wrappers data:// não podem mais ser writable (gravável), indo de encontro ao comportamento documentado.

  • Os operadores aritméticos e bitwise (bit a bit) +, -, *, /, **, %, <<, >>, &, |, ^, ~, ++, -- irão agora apresentar um TypeError quando um dos operandos estiver em um array, resource ou em um object não sobrecarregado (non-overloaded). A única exceção a isto é a operação de mesclagem de array com +, que permanece suportada.

  • A conversão de float para string agora sempre terá o mesmo comportamento, independentemente da localidade.

    <?php
    setlocale    (LC_ALL, "de_DE");
    $f = 3.14;
    echo     $f, "\n";
    // Anteriormente: 3,14
    // Agora: 3.14
    ?>

    Veja as funções printf(), number_format() e NumberFormatter() para customizar a formatação de números.

  • O suporte para chaves (curly braces), cujo uso para acesso de deslocamento estava descontinuado, foi removido.

    <?php
    // Ao invés de:
    $array{0};
    $array{"key"};
    // Usar:
    $array[0];
    $array["key"];
    ?>

  • Aplicar o modificador final ou método privado agora irá produzir um aviso, a menos que o método seja o construtor.

  • Se um objeto construtor chama a função exit(), o objeto destrutor não será chamado. Isto vai de encontro ao comportamento que o construtor lança.

  • Nomes de Namespace não podem mais conter espaços em branco: Enquanto Foo\Bar será reconhecido como um nome de Namespace, Foo \ Bar não será. Por outro lado, as palavras-chave agora serão permitidas como segmentos de um namespace, o que permite a mudança na interpretação do código: new\x agora é o mesmo que constant('new\x'), e não new \x().

  • Os ternários aninhados agora exigem parênteses explícitos.

  • debug_backtrace() e Exception::getTrace() agora não mais apresentam referências aos argumentos. Não será possível mudar os argumentos de uma função através de um backtrace.

  • O uso de strings numéricas foi modificado para ser mais intuitivo e menos sujeito a erros. Seguindo os espaços em branco, é permitido agora strings numéricas para tratamento de consistência contendo espaços em branco. Isso afeta principalmente:

    • A função is_numeric()
    • Comparações string a string
    • Declaração de tipos
    • Operações de incremento e decremento

    O conceito de um "leading-numeric string" foi praticamente abandonado; os casos onde permanecem são para facilitar a migração. Strings que emitem um E_NOTICE "A non well-formed numeric value encountered" agora emitirão um E_WARNING "A non-numeric value encountered" e todas as strings que emitiram um E_WARNING "A non-numeric value encountered" agora lançarão um erro TypeError. Isso afeta principalmente:

    • Operações aritméticas
    • Operações bit a bit

    Esta mudança do E_WARNING para TypeError também afeta o E_WARNING "Illegal string offset 'string'" para o posicionamento ilegal de strings. O comportamento de conversões explícitas de strings para int/float não foi alterado.

  • Métodos mágicos agora podem ter argumentos e retornar tipos verificados se eles foram declarados. As assinaturas devem corresponder à seguinte lista:

    • __call(string $name, array $arguments): mixed
    • __callStatic(string $name, array $arguments): mixed
    • __clone(): void
    • __debugInfo(): ?array
    • __get(string $name): mixed
    • __invoke(mixed $arguments): mixed
    • __isset(string $name): bool
    • __serialize(): array
    • __set(string $name, mixed $value): void
    • __set_state(array $properties): object
    • __sleep(): array
    • __unserialize(array $data): void
    • __unset(string $name): void
    • __wakeup(): void

  • As chaves do array passados para a função call_user_func_array() agora podem ser interpretadas como nomes de parâmetros, em vez de serem silenciosamente ignoradas.

  • A declaração da função chamada assert() dentro de um namespace não é mais permitida e gera um E_COMPILE_ERROR. A função assert() recebe um tratamento especial pelo motor do PHP, o que pode levar a comportamentos inconsistentes quando definido como uma função de namespace com o mesmo nome.

Migração de Resource para Objeto

Diversos resources foram migrados para objects. Verificações de valor de retorno usando a função is_resource() devem ser substituídas por checagens para false.

  • A função curl_init() agora retornará um objeto CurlHandle ao invés de um resource. A função curl_close() não tem mais efeito, em vez disso a instância da classe CurlHandle é destruída automaticamente se não for mais referenciada.

  • A função curl_multi_init() agora retornará um objeto CurlMultiHandle ao invés de um resource. A função curl_multi_close() não tem mais efeito, em vez disso a instância da classe CurlMultiHandle é destruída automaticamente se não for mais referenciada.

  • curl_share_init() agora retornará um objeto CurlShareHandle em vez de um resource. A função curl_share_close() não tem mais efeito, em vez disso a instância da classe CurlShareHandle é destruída automaticamente se não for mais referenciada.

  • enchant_broker_init() agora retornará um objeto EnchantBroker em vez de um resource.

  • enchant_broker_request_dict() e enchant_broker_request_pwl_dict() agora retornarão um objeto EnchantDictionary em vez de um resource.

  • A extensão GD agora usa objetos GdImage como a estrutura de dados interna para imagens, em vez de resources. A função imagedestroy() não tem mais efeito; em vez disso a instância GdImage é destruída automaticmanete se não for mais referenciada.

  • openssl_x509_read() e openssl_csr_sign() agora retornarão um objeto OpenSSLCertificate em vez de um resource. A função openssl_x509_free() está descontinuada e não tem mais efeito, em vez disso a instância OpenSSLCertificate é destruída automaticamente se não for mais referenciada.

  • openssl_csr_new() agora retornará um objeto OpenSSLCertificateSigningRequest em vez de um resource.

  • openssl_pkey_new() agora retornará um objeto OpenSSLAsymmetricKey em vez de um resource. A função openssl_pkey_free() está descontinuada e não tem mais efeito, em vez disso a instância OpenSSLAsymmetricKey é destruída automaticamente se não for mais referenciada.

  • shmop_open() irá agora retornar um objeto Shmop ao invés de um resource. A função shmop_close() não tem mais efeitos, e foi descontinuada. A instância de Shmop será automaticamente destruída quando não seja mais referenciada.

  • socket_create(), socket_create_listen(),
socket_accept(), socket_import_stream(),
socket_addrinfo_connect(), socket_addrinfo_bind(), e
socket_wsaprotocol_info_import() agora retornarão um
objeto Socket em vez de um resource.
socket_addrinfo_lookup() agora retornará um array de
objetos AddressInfo em vez de resources.

  • msg_get_queue() agora retornará um objeto SysvMessageQueue em vez de um resource.

  • sem_get() agora retornará um objeto SysvSemaphore em vez de um resource.

  • shm_attach() agora retornará um objeto SysvSharedMemory em vez de um resource.

  • xml_parser_create() e xml_parser_create_ns() agora retornarão um objeto XMLParser em vez de um resource. A função xml_parser_free() não tem mais efeito, em vez disso a instância XMLParser é automaticamente destruída se não for mais referenciada.

  • A função XMLWriter agora aceita e retorna, respectivamente, objetos XMLWriter em vez de resources.

  • inflate_init() agora retornará um objeto InflateContext em vez de um resource.

  • deflate_init() agora retornará um objeto DeflateContext em vez de um resource.

COM e .Net (Windows)

A capacidade de importar constantes que não diferenciam maiúsculas de minúsculas de bibliotecas de tipos foi removida. O segundo argumento para com_load_typelib() não pode mais ser falso; com.autoregister_casesensitive não pode mais ser desabilitado; marcadores que não diferenciam maiúsculas de minúsculas em com.typelib_file são ignorados.

CURL

CURLOPT_POSTFIELDS não aceita mais objetos como arrays. Para interpretar um objeto como um array, executar uma conversão explícita de (array). O mesmo se aplica a outras opções que aceitam arrays também.

Data e hora

mktime() e gmmktime() agora requer pelo menos um argumento. time() pode ser usado para obter o registro de data e hora atual.

DOM

Classes não implementadas da extensão DOM que não tinham comportamento e continham dados de teste foram removidos. Essas classes também foram removidas na versão mais recente do DOM padrão:

  • DOMNameList
  • DomImplementationList
  • DOMConfiguration
  • DomError
  • DomErrorHandler
  • DOMImplementationSource
  • DOMLocator
  • DOMUserDataHandler
  • DOMTypeInfo
  • DOMStringExtend

Métodos não implementados da extensão DOM que não tinham comportamento foram removidos:

  • DOMNamedNodeMap::setNamedItem()
  • DOMNamedNodeMap::removeNamedItem()
  • DOMNamedNodeMap::setNamedItemNS()
  • DOMNamedNodeMap::removeNamedItemNS()
  • DOMText::replaceWholeText()
  • DOMNode::compareDocumentPosition()
  • DOMNode::isEqualNode()
  • DOMNode::getFeature()
  • DOMNode::setUserData()
  • DOMNode::getUserData()
  • DOMDocument::renameNode()

Enchant

  • enchant_broker_list_dicts(), enchant_broker_describe() e enchant_dict_suggest() agora retornam um array vazio no lugar de null.

Exif

read_exif_data() foi removido; exif_read_data() deve ser usado em seu lugar.

Filter

  • A FILTER_FLAG_SCHEME_REQUIRED e FILTER_FLAG_HOST_REQUIRED sinalizadores para o filtro FILTER_VALIDATE_URL foram removidas. O scheme e host são (e foram) sempre necessários.

  • A fonte INPUT_REQUEST e INPUT_SESSION para filter_input() etc. foram removidos. Estes nunca foram implementados e seu uso sempre gerou um warning.d

GD

  • A função descontinuada image2wbmp() foi removida.

  • As funções descontinuadas png2wbmp() e jpeg2wbmp() foram removidas.

  • O parametro padrão mode de imagecropauto() não aceita mais -1. IMG_CROP_DEFAULT deve ser usado no lugar.

  • No Windows, php_gd2.dll foi renomeado para php_gd.dll.

GMP

gmp_random() foi removida. Uma das gmp_random_range() ou gmp_random_bits() deve ser usado no lugar.

Iconv

implementações de iconv que não definem corretamente errno em caso de erros não são mais suportadas.

IMAP

  • O argumento default_host não utilizado de imap_headerinfo() foi removido.

  • A função imap_header() que é um alias de imap_headerinfo() foi removida.

Funções de Internacionalização

  • A constante descontinuada INTL_IDNA_VARIANT_2003 foi removida.

  • A constante descontinuada Normalizer::NONE foi removida.

LDAP

  • The deprecated functions ldap_sort(),
ldap_control_paged_result() and
ldap_control_paged_result_response() have been removed.

  • A interface deldap_set_rebind_proc() foi mudada; o parâmetro callback não aceita strings vazias; null deve ser usado no lugar.

MBString

  • A diretiva mbstring.func_overload foi removida. The related MB_OVERLOAD_MAIL, as constantes MB_OVERLOAD_STRING, e MB_OVERLOAD_REGEX também foram removidas. Finalmente, a "func_overload" e a "func_overload_list" entradas mb_get_info() foram removidas.

  • mb_parse_str() não pode mais ser usado sem especificar um array de resultados.

  • Vários aliases mbregex descontinuados foram removidos. Veja a seguinte lista para quais funções devem ser usadas:

    • mbregex_encoding() ? mb_regex_encoding()
    • mbereg() ? mb_ereg()
    • mberegi() ? mb_eregi()
    • mbereg_replace() ? mb_ereg_replace()
    • mberegi_replace() ? mb_eregi_replace()
    • mbsplit() ? mb_split()
    • mbereg_match() ? mb_ereg_match()
    • mbereg_search() ? mb_ereg_search()
    • mbereg_search_pos() ? mb_ereg_search_pos()
    • mbereg_search_regs() ? mb_ereg_search_regs()
    • mbereg_search_init() ? mb_ereg_search_init()
    • mbereg_search_getregs() ? mb_ereg_search_getregs()
    • mbereg_search_getpos() ? mb_ereg_search_getpos()
    • mbereg_search_setpos() ? mb_ereg_search_setpos()

  • O modificador e para mb_ereg_replace() foi removido. mb_ereg_replace_callback() deve ser usado em seu lugar.

  • Um argumento de padrão não string para mb_ereg_replace() agora será interpretado como uma string em vez de um ponto de código ASCII. O comportamento anterior pode ser restaurado com uma chamada explícita para chr().

  • O argumento needle para mb_strpos(),
mb_strrpos(), mb_stripos(),
mb_strripos(), mb_strstr(),
mb_stristr(), mb_strrchr() e
mb_strrichr() agora pode estar vazio.

  • O parâmetro is_hex, que não era usado internamente, foi removido de mb_decode_numericentity().

  • O comportamento herdado de passar a codificação como o terceiro argumento em vez de um deslocamento para a função mb_strrpos() foi removida; um 0 explícito offset com a codificação deve ser fornecido como o quarto argumento.

  • Os aliases de codificação de caracteres ISO_8859-* foram substituídos por Aliases ISO8859-* para melhor interoperabilidade com a extensão iconv. os aliases mbregex ISO 8859 com sublinhados (ISO_8859_* e ISO8859_*) também foram removidos.

  • mb_ereg() e mb_eregi() agora retornarão valores booleanos true sobre uma partida de sucesso. Anteriormente, eles retornavam inteiro 1 se matches não foi passado, ou max(1, strlen($matches[0])) se matches foi passado.

OCI8

  • A classe OCI-Lob agora é chamada de OCILob, e a a classe OCI-Collection agora se chama OCICollection para conformidade de nome imposta pelas ferramentas de anotação de tipo PHP 8 arginfo.

  • Várias funções de alias foram marcadas como descontinuadas.

  • oci_internal_debug() e seu alias ociinternaldebug() foram removidos.

ODBC

  • odbc_connect() não reutiliza mais conexões.

  • O parâmetro flags não usado de odbc_exec() foi removido.

OpenSSL

  • openssl_seal() e openssl_open() agora requerem method a ser passado, como o padrão anterior de "RC4" é considerado inseguro.

Expressões regulares (Perl-Compatible)

Ao passar sequências de escape inválidas, elas não são mais interpretadas como literais. Esse comportamento anteriormente exigia o modificador X – que agora é ignorado.

Objetos de dados do PHP

  • The default error handling mode has been changed from "silent" to "exceptions". See Errors and error handling for details.

  • As assinaturas de alguns métodos PDO foram alteradas:

    • PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs)
    • PDOStatement::setFetchMode(int $mode, mixed ...$args)

PDO ODBC

The php.ini directive pdo_odbc.db2_instance_name foi removido.

PDO MySQL

PDO::inTransaction() agora relata o estado real da transação da conexão, em vez de uma aproximação mantida pelo PDO. Se uma consulta que é sujeito para "confirmação implícita" é executado, PDO::inTransaction() posteriormente retornará false, pois uma transação não está mais ativa.

PostgreSQL

  • A sintaxe descontinuada de pg_connect() usando vários parâmetros em vez de uma string de conexão não é mais suportada.

  • As assinaturas descontinuadas de pg_lo_import() e pg_lo_export() que passam a conexão como o último argumento não são mais suportadas. A conexão deve ser passada como primeiro argumento.

  • pg_fetch_all() agora retornará uma matriz vazia em vez de false para resultado conjuntos com zero linhas.

Phar

Os metadados associados a um phar não serão mais serializados automaticamente, para corrigir possíveis vulnerabilidades de segurança devido à instanciação de objetos, carregamento automático etc.

Reflection

  • As assinaturas do método

    • ReflectionClass::newInstance($args)
    • ReflectionFunction::invoke($args)
    • ReflectionMethod::invoke($object, $args)

    foram alterados para:

    • ReflectionClass::newInstance(...$args)
    • ReflectionFunction::invoke(...$args)
    • ReflectionMethod::invoke($object, ...$args)

    O código que deve ser compatível com PHP 7 e PHP 8 pode usar as seguintes assinaturas para serem compatíveis com ambas as versões:

    • ReflectionClass::newInstance($arg = null, ...$args)
    • ReflectionFunction::invoke($arg = null, ...$args)
    • ReflectionMethod::invoke($object, $arg = null, ...$args)

  • O método ReflectionType::__toString() agora retornará uma completa representação de depuração do tipo, e não está mais descontinuada. Em particular, o resultado incluirá um indicador de nulidade para tipos anuláveis. O formato do valor de retorno não é estável e pode mudar entre as versões do PHP.

  • Métodos export() de reflexão foram removidos. Em vez disso, os objetos de reflexão podem ser convertidos em string.

  • ReflectionMethod::isConstructor() e
ReflectionMethod::isDestructor() agora também retorna true por
__construct() e
__destruct() métodos de interfaces.
Anteriormente, isso só seria verdade para métodos de classes e traits.

  • O método ReflectionType::isBuiltin() foi movido para ReflectionNamedType. ReflectionUnionType não possui esse método.

Sockets

  • As constantes descontinuadas AI_IDN_ALLOW_UNASSIGNED e AI_IDN_USE_STD3_ASCII_RULES flags para socket_addrinfo_lookup() foram removidas.

Biblioteca PHP padrão (SPL)

  • SplFileObject::fgetss() foi removido.

  • SplFileObject::seek() agora sempre posiciona no começo da linha. Anteriormente, posições >=1 resultavam no começo da linha seguinte.

  • SplHeap::compare() agora especifica uma assinatura de método. Herdando classes, implementar este método agora terá que usar uma assinatura de método compatível.

  • SplDoublyLinkedList::push(), SplDoublyLinkedList::unshift() e SplQueue::enqueue() agora retornam void no lugar de true.

  • spl_autoload_register() agora sempre lançará um TypeError em argumentos inválidos, portanto, o segundo argumento do_throw é ignorado e um aviso será emitido se for definido como false.

  • SplFixedArray agora é um IteratorAggregate e não um Iterator. SplFixedArray::rewind(), SplFixedArray::current(), SplFixedArray::key(), SplFixedArray::next() e SplFixedArray::valid() foram removidos. Em seu lugar, SplFixedArray::getIterator() foi adicionado. Qualquer código que usa explicitamente iteração sobre SplFixedArray agora deve obter um Iterator até SplFixedArray::getIterator(). Isso significa que SplFixedArray agora é seguro para uso em loops aninhados.

Biblioteca padrão

  • assert() não avaliará mais argumentos de string, em vez disso, eles serão tratados como qualquer outro argumento. assert($a == $b) deve ser usado em vez de assert('$a == $b'). O assert.quiet_eval diretiva ini e as constantes ASSERT_QUIET_EVAL também foram removidas, pois não seriam mais ter qualquer efeito.

  • parse_str() não pode mais ser usado sem especificar um array de resultados.

  • The string.strip_tags filter has been removed.

  • O argumento needle de strpos(), strrpos(), stripos(), strripos(), strstr(), strchr(), strrchr() e stristr() agora sempre será interpretado como uma string. Anteriormente agulhas não-string foram interpretadas como um ponto de código ASCII. Uma chamada explícita para chr() pode ser usado para restaurar o comportamento anterior.

  • O argumento needle para strpos(),
strrpos(), stripos(), strripos(),
strstr(), stristr() e strrchr() podem
agora estar vazios.

  • O argumento length para substr(), substr_count(), substr_compare() e iconv_substr() agora pode ser null. null os valores se comportarão como se não houvesse argumento de comprimento fornecido e, portanto, retornará o restante da string em vez de uma string vazia.

  • O argumento length para array_splice() agora pode ser null. null os valores se comportarão de forma idêntica à omissão do argumento, removendo assim tudo do offset até o final do array.

  • O argumento args de vsprintf(), vfprintf() e vprintf() agora devem ser um array. Anteriormente qualquer tipo era aceito.

  • A opção 'salt' de password_hash() não é mais suportado. Se a opção 'salt' for usada, um aviso será gerado, o salt é ignorado e um salt gerado é usado em seu lugar.

  • A função quotemeta() agora retornará uma string vazia se uma string vazia foi passada. Anteriormente false era devolvido.

  • As seguintes funções foram removidas.

    • hebrevc()
    • convert_cyr_string()
    • money_format()
    • ezmlm_hash()
    • restore_include_path()
    • get_magic_quotes_gpc()
    • get_magic_quotes_runtime()
    • fgetss()

  • FILTER_SANITIZE_MAGIC_QUOTES foi removida.

  • Chamar implode() com parâmetros na ordem inversa ($pieces, $glue) não é mais suportado.

  • parse_url() agora distinguirá consultas e fragmentos ausentes e vazios:

    • http://example.com/foo ? query = null, fragment = null
    • http://example.com/foo? ? query = "", fragment = null
    • http://example.com/foo# ? query = null, fragment = ""
    • http://example.com/foo?# ? query = "", fragment = ""
    Anteriormente, todos os casos resultavam em consultas e fragmentos null.

  • var_dump() e debug_zval_dump() agora serão números de ponto flutuante usando serialize_precision em vez de precisão. Em uma configuração padrão, isto significa que os números de ponto flutuante agora são impressos com total precisão por essas funções depuradoras.

  • Se o array retornado por __sleep() contiver propriedades inexistentes, estas agora são silenciosamente ignoradas. Anteriormente, tais propriedades teriam sido serializadas como se tivessem o valor null.

  • A localidade padrão na inicialização agora é sempre "C". Nenhuma localidade é herdada do ambiente por padrão. Anteriormente, LC_ALL era definida como "C", enquanto LC_CTYPE era herdada do ambiente. No entanto, algumas funções não respeitavam a localidade herdada sem uma chamada explícita setlocale(). Uma chamada setlocale() explícita agora é sempre necessária se um componente de localidade deve ser alterado do padrão.

  • O fallback DES descontinuado em crypt() foi removido. Se um desconhecido formato salt for passado para crypt(), a função falhará com *0 em vez de voltar para um hash DES fraco agora.

  • A especificação de rodadas fora do intervalo para SHA256/SHA512 crypt() agora falhará com *0 em vez de fixar no limite mais próximo. Isso corresponde ao comportamento da glibc.

  • O resultado das funções de classificação pode ter mudado, se o array contiver elementos que comparam como igual.

  • Quaisquer funções que aceitam retornos de chamada que não são explicitamente especificados para aceitar parâmetros por referência agora avisará se um retorno de chamada com parâmetros de referência for usado. Exemplos incluem array_filter() e array_reduce(). Este já era o caso para a maioria, mas não para todas as funções anteriormente.

  • O wrapper de fluxo HTTP usado por funções como file_get_contents() agora anuncia HTTP/1.1 em vez de HTTP/1.0 por padrão. Isso não muda o comportamento do cliente, mas pode fazer com que os servidores respondam de forma diferente. Para manter o comportamento antigo, defina a opção de contexto de fluxo 'protocol_version', por exemplo

    <?php
    $ctx     = stream_context_create(['http' => ['protocol_version' => '1.0']]);
    echo     file_get_contents('http://example.org', false, $ctx);
    ?>

  • Chamar crypt() sem um salt explícito não é mais suportado. Se você gostaria de produzir um hash forte com salt gerado automaticamente, use password_hash() em vez disso.

  • substr(), mb_substr(), iconv_substr() e grapheme_substr() agora fixa consistentemente os deslocamentos fora dos limites à string fronteira. Anteriormente, false era retornado em vez da string vazia em alguns casos.

  • No Windows, as funções de execução do programa (proc_open(), exec(), popen() etc.) usando o shell, agora execute consistentemente %comspec% /s /c "$commandline", que tem o mesmo efeito que executar $commandline (sem aspas adicionais).

Sysvsem

  • O parâmetro auto_release de sem_get() foi alterado para aceitar valores booleanos em vez de int.

Tidy

  • O parâmetro use_include_path, que não era usado internamente, foi removido de tidy_repair_string().

  • tidy::repairString() e tidy::repairFile() se tornaram métodos estáticos.

Tokenizer

  • Tokens T_COMMENT não incluirão mais uma quebra de linha à direita. Em vez disso, a quebra de linha será parte de um token T_WHITESPACE seguinte. Deve-se notar que T_COMMENT nem sempre é seguido de espaço em branco, Ele também pode ser seguido de T_CLOSE_TAG ou o fim do arquivo (end-of-file).

  • Nomes com agora são representados usando os tokens T_NAME_QUALIFIED (Foo\Bar), T_NAME_FULLY_QUALIFIED (\Foo\Bar) e T_NAME_RELATIVE (namespace\Foo\Bar). T_NS_SEPARATOR é usado apenas para separadores de namespace independentes, e só é sintaticamente válido em conjuncão com declarações de uso de grupo.

XMLReader

XMLReader::open() e XMLReader::xml() agora são métodos estáticos. Eles ainda podem ser chamados como métodos de instância, mas classes herdadas precisam declará-los como estáticos se elas sobrescrevem esses métodos.

XML-RPC

A extensão XML-RPC foi movida para PECL e não é mais parte da distribuição PHP.

Zip

ZipArchive::OPSYS_Z_CPM foi removida (esse nome era um erro de digitação). Em vez dela, use ZipArchive::OPSYS_CPM.

Zlib

  • gzgetss() foi removida.

  • zlib.output_compression não é mais desabilitado automaticamente para o Content-Type: image/*.

Pacotes de teste para PHP no Windows

O executor de testes foi renomeado de run-test.php para run-tests.php, para coincidir com seu nome em php-src.


Recursos descontinuados

PHP Core

  • Se um parâmetro com um valor padrão é seguido por um parâmetro obrigatório, o valor padrão não tem efeito. Essa funcionalidade está descontinuada a partir do PHP 8.0.0 e geralmente pode ser resolvido eliminando o valor padrão, sem mudança na funcionalidade:

    <?php
    function test($a = [], $b) {} // Antes
    function test($a, $b) {} // Depois
    ?>

    Uma exceção à esta regra são os parâmetros escritos de seguinte forma: Type $param = null, onde o valor padrão nulo torna o tipo implicitamente anulável. Este uso continua permitido, mas é recomendado o uso de um tipo anulável explícito:

    <?php
    function test(A $a = null, $b) {} // Ainda é permitido
    function test(?A $a, $b) {} // Recomendável
    ?>

  • Chamar a função get_defined_functions() com o parâmetro exclude_disabled definido explicitamente como false está descontinuado e não tem mais efeito. A função get_defined_functions() nunca incluirá funções desabilitadas.

Enchant

  • enchant_broker_set_dict_path() e enchant_broker_get_dict_path() estão descontinuadas, porque essa funcionalidade não está disponível no libenchant < 1.5 nem na libenchant-2.

  • enchant_dict_add_to_personal() está descontinuada; use enchant_dict_add() em seu lugar.

  • enchant_dict_is_in_session() está descontinuada; use enchant_dict_is_added() em seu lugar.

  • enchant_broker_free() e enchant_broker_free_dict() estão descontinuadas; em vez disso destrua/unset o objeto.

  • As constantes ENCHANT_MYSPELL e ENCHANT_ISPELL estão descontinuadas.

LibXML

A função libxml_disable_entity_loader() foi descontinuada. Como a libxml 2.9.0 agora é obrigatória, o carregamento de entidade externa está desabilitado por padrão, e esta função não é mais necessária para a proteção contra ataques XXE, a não ser que a (ainda vulnerável). LIBXML_NOENT for utilizada. Nesse caso, é recomendado refazer o código utilizando libxml_set_external_entity_loader() para suprimir o carregamento de entidades externas.

PGSQL / PDO PGSQL

  • A constante PGSQL_LIBPQ_VERSION_STR agora tem o mesmo valor que PGSQL_LIBPQ_VERSION, portanto, está descontinuada.

  • Os apelidos de função na extensão pgsql foram descontinuados. Consulte a lista abaixo para saber quais funções devem ser usadas em seu lugar:

    • pg_errormessage() ? pg_last_error()
    • pg_numrows() ? pg_num_rows()
    • pg_numfields() ? pg_num_fields()
    • pg_cmdtuples() ? pg_affected_rows()
    • pg_fieldname() ? pg_field_name()
    • pg_fieldsize() ? pg_field_size()
    • pg_fieldtype() ? pg_field_type()
    • pg_fieldnum() ? pg_field_num()
    • pg_result() ? pg_fetch_result()
    • pg_fieldprtlen() ? pg_field_prtlen()
    • pg_fieldisnull() ? pg_field_is_null()
    • pg_freeresult() ? pg_free_result()
    • pg_getlastoid() ? pg_last_oid()
    • pg_locreate() ? pg_lo_create()
    • pg_lounlink() ? pg_lo_unlink()
    • pg_loopen() ? pg_lo_open()
    • pg_loclose() ? pg_lo_close()
    • pg_loread() ? pg_lo_read()
    • pg_lowrite() ? pg_lo_write()
    • pg_loreadall() ? pg_lo_read_all()
    • pg_loimport() ? pg_lo_import()
    • pg_loexport() ? pg_lo_export()
    • pg_setclientencoding() ? pg_set_client_encoding()
    • pg_clientencoding() -> pg_client_encoding()

Biblioteca Padrão

  • Funções sort que retornam true ou false agora lançam um aviso de descontinuação, e deve ser substituído por uma implementação que retorna um número inteiro menor, igual ou maior que zero.

    <?php
    // Substituir
    usort($array, fn($a, $b) => $a > $b);
    // Por
    usort($array, fn($a, $b) => $a <=> $b);
    ?>

Zip

  • Usar um arquivo vazio como ZipArchive está descontinuado. A Libzip 1.6.0 não aceita mais arquivos vazios como arquivos zip válidos. A solução alternativa existente será removida na próxima versão.

  • A API procedural do Zip está descontinuada. Use ZipArchive em seu lugar. A iteração em todas as entradas pode ser realizada usando ZipArchive::statIndex() e um laço for:

    <?php
    // iterar usando a API procedural
    assert(is_resource($zip));
    while (    $entry = zip_read($zip)) {
    echo     zip_entry_name($entry);
    }

    // iterar usando a API orientada a objetos
    assert($zip instanceof ZipArchive);
    for (    $i = 0; $entry = $zip->statIndex($i); $i++) {
    echo     $entry['name'];
    }
    ?>

Reflection

  • O método ReflectionFunction::isDisabled() está descontinuado, pois não é mais possível criar uma classe ReflectionFunction para uma função desativada. Este método agora sempre retorna false.

  • ReflectionParameter::getClass(),
ReflectionParameter::isArray(), e
ReflectionParameter::isCallable() estão descontinuados.
ReflectionParameter::getType() e
ReflectionType devem ser usados em seu lugar.


Outras mudanças

Alterações nos Módulos SAPI

Apache2Handler

O módulo PHP foi renomeado de php7_module para php_module.

Funções alteradas

Reflection

Os resultados de ReflectionClass::getConstants() e ReflectionClass::getReflectionConstants() agora podem ser filtrados por meio de um novo filter de parâmetro. Três novas constantes foram adicionadas para serem usadas com ele:

  • ReflectionClassConstant::IS_PUBLIC
  • ReflectionClassConstant::IS_PROTECTED
  • ReflectionClassConstant::IS_PRIVATE

Padrão

As funções matemáticas abs(), ceil(), floor() e round() agora atendem adequadamente à diretiva strict_types. Anteriormente, eles coagiam o primeiro argumento mesmo no modo de tipo estrito.

Zip

  • Os métodos ZipArchive::addGlob() e ZipArchive::addPattern() aceitam mais valores no argumento do array de options:

    • flags
    • comp_method
    • comp_flags
    • env_method
    • enc_password

  • Os métodos ZipArchive::addEmptyDir(), ZipArchive::addFile() e ZipArchive::addFromString() possuem um novo argumento flags. Isso permite gerenciar a codificação de nomes (ZipArchive::FL_ENC_*) e a substituição de entradas (ZipArchive::FL_OVERWRITE).

  • ZipArchive::extractTo() agora restaura o tempo de modificação do arquivo.

Outras alterações nas extensões

CURL

  • A extensão CURL agora requer pelo menos libcurl 7.29.0.

  • O parâmetro descontinuado version de curl_version() foi removido.

Date and Time

DatePeriod agora implementa IteratorAggregate (em vez de Traversable).

DOM

DOMNamedNodeMap e DOMNodeList agora implementam IteratorAggregate (em vez de Traversable).

Intl

IntlBreakIterator e ResourceBundle agora implementam IteratorAggregate (em vez de Traversable).

Enchant

A extensão enchant agora usa libenchant-2 por padrão quando disponível. libenchant versão 1 ainda é suportada, mas foi descontinuada e pode ser removida no futuro.

GD

  • O parâmetro num_points de imagepolygon(), imageopenpolygon() e imagefilledpolygon() agora é opcional, ou seja, essas funções podem ser chamadas com 3 ou 4 argumentos. Se o argumento for omitido, será calculado como count($points)/2.

  • A função imagegetinterpolation() para obter o método de interpolação atual foi adicionada.

JSON

A extensão JSON não pode mais ser desativada e é sempre parte integrante de qualquer compilação do PHP, semelhante à extensão de data.

MBString

As tabelas de dados Unicode foram atualizadas para a versão 13.0.0.

PDO

PDOStatement agora implementa IteratorAggregate (em vez de Traversable).

LibXML

A versão mínima necessária do libxml agora é 2.9.0. Isso significa que o carregamento de entidade externa agora está desativado por padrão e nenhuma etapa extra precisa ser tomada para proteger contra ataques XXE.

MySQLi / PDO MySQL

  • Quando mysqlnd não é usado (que é a opção padrão e recomendada), a versão mínima suportada do libmysqlclient agora é 5.5.

  • mysqli_result agora implementa IteratorAggregate (ao invés de Traversable).

PGSQL / PDO PGSQL

As extensões PGSQL e PDO PGSQL agora requerem pelo menos libpq 9.1.

Readline

Chamar readline_completion_function() antes do início do prompt interativo (por exemplo, em auto_prepend_file) agora substituirá a função padrão de conclusão do prompt interativo. Anteriormente, readline_completion_function() só funcionava quando chamado após iniciar o prompt interativo.

SimpleXML

SimpleXMLElement agora implementa RecursiveIterator e absorveu a funcionalidade de SimpleXMLIterator. SimpleXMLIterator é uma extensão vazia de SimpleXMLElement.

Alterações na manipulação de arquivos INI

  • com.dotnet_version é uma nova diretiva INI para escolher a versão da estrutura .NET a ser usada para objetos dotnet.

  • zend.exception_string_param_max_len é uma nova diretiva INI para definir o comprimento máximo da string em um argumento de uma string de pilha stringificada.

EBCDIC

Os destinos EBCDIC não são mais suportados, embora seja improvável que ainda estivessem funcionando.

Desempenho

  • Um compilador Just-In-Time (JIT) foi adicionado à extensão opcache.

  • array_slice() em uma matriz sem lacunas não irá mais varrer toda a matriz para encontrar o deslocamento inicial. Isso pode reduzir significativamente o tempo de execução da função com grandes deslocamentos e pequenos comprimentos.

  • strtolower() agora usa uma implementação SIMD ao usar a localidade "C" LC_CTYPE (que é o padrão).


Migrando do PHP 7.3.x para o PHP 7.4.x

Índice

  • Novos Recursos
  • Novas Classes e Interfaces
  • Novas Funções
  • Novas Constantes Globais
  • Alterações incompatíveis com versões anteriores
  • Recursos descontinuados
  • Extensões Removidas
  • Outras mudanças
  • Suporte do Windows

Esta nova versão menor traz vários novos recursos e algumas incompatibilidades que devem ser testadas antes da troca de versões do PHP em ambientes de produção.

Veja também os guias de migração das versões do PHP 7.0.x, 7.1.x, 7.2.x e 7.3.x.


Novos Recursos

PHP Core

Propriedades tipadas

As propriedades de classe agora suportam declarações de tipo.

<?php
class User {
public int $id;
public string $name;
}
?>
O exemplo acima reforçará que $user->id pode ser atribuído apenas com valores int e $user->name somente com valores de string.

Arrow functions

Arrow functions fornecem uma sintaxe abreviada para definir funções com ligação implícita por valor de escopo.

<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>

Covariância do tipo de retorno limitado e contravariância do tipo de argumento

O código a seguir agora funcionará:

<?php
class A {}
class B extends A {}

class Producer {
public function method(): A {}
}
class ChildProducer extends Producer {
public function method(): B {}
}
?>
O suporte completo à variação só está disponível se o carregamento automático for usado. Dentro de um único arquivo, apenas as referências de tipo não cíclico são possíveis, porque todas as classes precisam estar disponíveis antes de serem referenciadas.

Operador de atribuição de coalescência nula

<?php
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
?>

Descompactando dentro de arrays

<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>

Separador literal numérico

Literais numéricos podem conter underscores entre dígitos.

<?php
6.674_083e-11; // float
299_792_458; // decimal
0xCAFE_F00D; // hexadecimal
0b0101_1111; // binary
?>

Referências fracas

Referências fracas permitem que o programador mantenha uma referência a um objeto que não impede que o objeto seja destruído.

Permitir exceções de __toString()

Lançar exceções de __toString() agora é permitido. Antes isto resultava um erro fatal. Os erros fatais recuperáveis ??existentes nas conversões de string foram convertidos em exceções de Error.

CURL

CURLFile agora suporta stream wrappers, além de nomes de arquivos simples, se a extensão tiver sido criada com relação à libcurl >= 7.56.0.

Filter

O filtro FILTER_VALIDATE_FLOAT agora suporta as opções min_range e max_range com a mesma semântica que FILTER_VALIDATE_INT.

FFI

FFI é uma nova extensão, que fornece uma maneira simples de chamar funções nativas, acessar variáveis ??nativas e criar/acessar estruturas de dados definidas nas bibliotecas C.

GD

Adicionado o filtro de imagem IMG_FILTER_SCATTER para aplicar um filtro de dispersão às imagens.

Hash

Adicionado o hash crc32c usando o polinômio de Castagnoli. Essa variante CRC32 é usada por sistemas de armazenamento, como iSCSI, SCTP, Btrfs e ext4.

Multibyte String

Adicionada a função mb_str_split(), que fornece a mesma funcionalidade que str_split(), mas operando em pontos de código em vez de bytes.

OPcache

Suporte para pré-carregamento de código foi adicionado.

Expressões Regulares (Perl-Compatible)

As funções preg_replace_callback() e preg_replace_callback_array() agora aceitam um argumento flags adicional, com suporte para as flags PREG_OFFSET_CAPTURE e PREG_UNMATCHED_AS_NULL. Isso influencia o formato do array de correspondências passado para a função de retorno da chamada.

PDO

O nome de usuário e a senha agora podem ser especificados como parte do PDO DSN para os drivers mysql, mssql, sybase, dblib, firebird e oci. Antes, isso era suportado apenas pelo driver pgsql. Se um nome de usuário/senha for especificado no construtor e no DSN, o construtor terá precedência.

Agora é possível escapar pontos de interrogação nas consultas SQL para evitar que elas sejam interpretadas como espaços reservados para parâmetros. Escrever ?? permite enviar um único ponto de interrogação para o banco de dados e por exemplo, usar o operador PostgreSQL JSON key exists (?).

PDO_OCI

PDOStatement::getColumnMeta() agora está disponível.

PDO_SQLite

PDOStatement::getAttribute(PDO::SQLITE_ATTR_READONLY_STATEMENT) permite verificar se a instrução é somente leitura, ou seja, se não modifica o banco de dados.

PDO::setAttribute(PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES, true) permite o uso de códigos de resultado estendidos do SQLite3 em PDO::errorInfo() e PDOStatement::errorInfo().

SQLite3

Adicionado SQLite3::lastExtendedErrorCode() para buscar o último código de resultado estendido.

Adicionado SQLite3::enableExtendedResultCodes($enable = true), que fará SQLite3::lastErrorCode() retornar códigos de resultado estendidos.

Standard

strip_tags() com array de nomes de tags

strip_tags() agora também aceita um array de tags permitidas: em vez de strip_tags($str, '<a><p>') agora você pode escrever strip_tags($str, ['a', 'p']).

Serialização de objetos personalizados

Um novo mecanismo para serialização de objetos personalizados foi adicionado, que usa dois novos métodos mágicos: __serialize e __unserialize.

<?php
// Retorna um array contendo todo o estado necessário do objeto.
public function __serialize(): array;

// Restaura o estado do objeto a partir do array de dados fornecido.
public function __unserialize(array $data): void;
?>
O novo mecanismo de serialização substitui a interface Serializable, que será descontinuada no futuro.

Funções de mesclagem de array sem argumentos

array_merge() e array_merge_recursive() agora podem ser chamados sem nenhum argumento; nesse caso, eles retornarão um array vazio. Isso é útil em conjunto com o operador de espalhamento (spread operator), por exemplo, array_merge(...$arrays).

Função proc_open()

proc_open() agora aceita um array em vez de uma string para o comando. Nesse caso, o processo será aberto diretamente (sem passar por um shell) e o PHP cuidará de qualquer argumento necessário para escapar.

<?php
proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);
?>

proc_open() agora suporta redirect e descritores null.

<?php
// Like 2>&1 on the shell
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);
// Like 2>/dev/null or 2>nul on the shell
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);
?>

argon2i(d) sem libargon

password_hash() agora possui as implementações argon2i e argon2id da extensão sodium quando o PHP é compilado sem libargon.


  • « Novos Recursos
  • Novas Funções »
  • PHP Manual
  • Migrando do PHP 7.3.x para o PHP 7.4.x
  • Novas Classes e Interfaces

Novas Classes e Interfaces

Reflection

  • ReflectionReference


Novas Funções

PHP Core

  • get_mangled_object_vars()
  • password_algos()
  • sapi_windows_set_ctrl_handler()

GD

  • imagecreatefromtga()

Multibyte String

  • mb_str_split()

OpenSSL

  • openssl_x509_verify()

Process Control

  • pcntl_unshare()

SQLite3

  • SQLite3::backup()
  • SQLite3Stmt::getSQL()


Novas Constantes Globais

PHP Core

  • PHP_WINDOWS_EVENT_CTRL_C
  • PHP_WINDOWS_EVENT_CTRL_BREAK

Multibyte String

  • MB_ONIGURUMA_VERSION

Sockets

Adicionadas as seguintes opções específicas para FreeBSD socket:

  • SO_LABEL
  • SO_PEERLABEL
  • SO_LISTENQLIMIT
  • SO_LISTENQLEN
  • SO_USER_COOKIE

Tidy

  • TIDY_TAG_ARTICLE
  • TIDY_TAG_ASIDE
  • TIDY_TAG_AUDIO
  • TIDY_TAG_BDI
  • TIDY_TAG_CANVAS
  • TIDY_TAG_COMMAND
  • TIDY_TAG_DATALIST
  • TIDY_TAG_DETAILS
  • TIDY_TAG_DIALOG
  • TIDY_TAG_FIGCAPTION
  • TIDY_TAG_FIGURE
  • TIDY_TAG_FOOTER
  • TIDY_TAG_HEADER
  • TIDY_TAG_HGROUP
  • TIDY_TAG_MAIN
  • TIDY_TAG_MARK
  • TIDY_TAG_MENUITEM
  • TIDY_TAG_METER
  • TIDY_TAG_NAV
  • TIDY_TAG_OUTPUT
  • TIDY_TAG_PROGRESS
  • TIDY_TAG_SECTION
  • TIDY_TAG_SOURCE
  • TIDY_TAG_SUMMARY
  • TIDY_TAG_TEMPLATE
  • TIDY_TAG_TIME
  • TIDY_TAG_TRACK
  • TIDY_TAG_VIDEO


Alterações incompatíveis com versões anteriores

PHP Core

Acesso em estilo de array em não-array

Tentar usar valores do tipo null, bool, int, float ou resource como um array (como $null["key"]) agora irá gerar um aviso.

Função get_declared_classes()

A função get_declared_classes() não retorna mais classes anônimas que ainda não foram instanciadas.

Palavra-chave fn

fn agora é uma palavra-chave reservada. Em particular, ele não pode mais ser usado como um nome de função ou classe. Ela ainda pode ser usado como um nome constante de método ou classe.

A tag <?php no final do arquivo

<?php no final do arquivo (sem seguir a nova linha) agora será interpretado como uma tag PHP de abertura. Antes, era interpretada como uma short open tag seguida por um literal php e resultava em um erro de sintaxe (com short_open_tag=1) ou era interpretada como uma string literal <?php (com short_open_tag=0).

Stream wrappers

Ao usar include/require em uma stream, streamWrapper::stream_set_option() será chamado com a opção STREAM_OPTION_READ_BUFFER. As implementações personalizadas do wrapper de fluxo podem precisar implementar o método streamWrapper::stream_set_option() para evitar um aviso (sempre retornando false é uma implementação suficiente).

Serialização

O formato o de serialização foi removido. Como nunca é produzido pelo PHP, isso pode apenas interromper a desserialização de strings criadas manualmente.

Constantes do algoritmo de senha

Os identificadores do algoritmo de hash de senha agora são sequências anuláveis ??em vez de números inteiros.

  • PASSWORD_DEFAULT era um int 1; agora é uma string '2y' (no PHP 7.4.0, 7.4.1 e 7.4.2 era null)
  • PASSWORD_BCRYPT era um int 1; agora é uma string '2y'
  • PASSWORD_ARGON2I era um int 2; agora é uma string 'argon2i'
  • PASSWORD_ARGON2ID era um int 3; agora é uma string 'argon2id'

Aplicações que usam corretamente as constantes PASSWORD_DEFAULT, PASSWORD_BCRYPT, PASSWORD_ARGON2I e PASSWORD_ARGON2ID continuarão funcionando corretamente.

Função htmlentities()

htmlentities() agora emitirá um aviso (em vez de um aviso estrito sobre os padrões) se for usado com uma codificação para a qual apenas a substituição básica de entidade é suportada; nesse caso, é equivalente ahtmlspecialchars().

Funções fread() e fwrite()

fread() e fwrite() agora retornarão false se a operação falhar. Antes uma string vazia ou 0 era retornado. EAGAIN/EWOULDBLOCK não são considerados falhas.

Essas funções agora também emitem um aviso de falha, como ao tentar gravar em um recurso de arquivo somente leitura.

Funções matemáticas de precisão arbitrária BCMath

As funções BCMath agora avisam se um número não bem formado é passado, como "32foo". O argumento será interpretado como zero, como antes.

CURL

Tentar serializar uma classe CURLFile agora irá gerar uma exceção. Antes, a exceção era lançada apenas na desserialização.

O uso de CURLPIPE_HTTP1 está descontinuado, e não é mais suportado a partir do cURL 7.62.0.

O parâmetro $version de curl_version() está descontinuado. Se qualquer valor diferente do padrão CURLVERSION_NOW for passado, um aviso será gerado e o parâmetro será ignorado.

Data e hora

Chamar a função var_dump() ou similar em uma instância de DateTime ou DateTimeImmutable não deixará mais propriedades acessíveis no objeto.

A comparação de objetos DateInterval (usando ==, <, e assim por diante) agora gera um aviso e sempre retorna false. Antes todos os objetos DateInterval eram considerados iguais, a menos que tivessem propriedades.

Intl

O valor padrão do parâmetro das funções idn_to_ascii() e idn_to_utf8() agora é INTL_IDNA_VARIANT_UTS46 em vez do descontinuado INTL_IDNA_VARIANT_2003.

MySQLi

A funcionalidade do servidor incorporado foi removida. Foi quebrado desde pelo menos o PHP 7.0.

A propriedade não documentada mysqli::$stat foi removida em favor de mysqli::stat().

OpenSSL

A função openssl_random_pseudo_bytes() agora lançará uma exceção em situações de erro, semelhante a random_bytes(). Em particular, um Error será lançado se o número de bytes solicitados for menor ou igual a zero, e uma Exception será lançada se não for possível reunir aleatoriedade suficiente. É garantido que o argumento de saída $crypto_strong será sempre true se a função não lançar exceção, portanto, uma verificação explícita não é necessário.

Expressões regulares (Perl-Compatible)

Quando o modo PREG_UNMATCHED_AS_NULL é usado, os grupos de captura sem correspondência à direita agora também serão definidos como null (ou [null, -1] se a captura offset estiver ativada). Isso significa que o tamanho de $matches sempre será o mesmo.

Objetos de dados PHP

A tentativa de serializar uma instância PDO ou PDOStatement agora gerará uma Exception em vez de uma PDOException, consistente com outras classes internas que não oferecem suporte à serialização.

Reflection

Os objetos reflexion agora gerarão uma exceção se for feita uma tentativa de serializá-los. A serialização de objetos reflexion nunca foi suportada e resultou em objetos reflexions corrompidos. Foi explicitamente proibido agora.

Os valores para as constantes das classes ReflectionClassConstant, ReflectionMethod e ReflectionProperty mudaram.

Standard PHP Library (SPL)

Chamar get_object_vars() em uma instância de ArrayObject agora sempre retornará as propriedades do próprio ArrayObject (ou de uma sub classe). Antes, ele retornava os valores do array/object a menos que a flag ArrayObject::STD_PROP_LIST fosse especificado.

Outras operações afetadas são:

  • ReflectionObject::getProperties()
  • reset(), current(), etc. Use os métodos de Iterator em seu lugar.
  • Potencialmente outros trabalhando nas propriedades do objeto como uma lista, por exemplo array_walk().

(array) casts não são afetadas. Eles continuarão retornando o array agrupado, ou as propriedades ArrayObject dependendo se a flag ArrayObject::STD_PROP_LIST é usada.

SplPriorityQueue::setExtractFlags() lançará uma exceção se zero for passado. Antes, isso geraria um erro fatal recuperável na próxima operação de extração.

ArrayObject, ArrayIterator, SplDoublyLinkedList e SplObjectStorage agora oferecem suporte ao mecanismo __serialize() e __unserialize() além da interface Serializable. Isso significa que as payloads de serialização criadas em versões mais antigas do PHP ainda podem ser desserializadas, mas as novas payloads criadas pelo PHP 7.4 não serão entendidas pelas versões mais antigas.

Tokenizer

token_get_all() agora emitirá um token T_BAD_CHARACTER para caracteres inesperados em vez de deixar para trás buracos no fluxo de token.

Incoming Cookies

A partir do PHP 7.4.11, os nomes dos cookies recebidos não são mais decodificados em url por razões de segurança.


Recursos descontinuados

PHP Core

Operadores ternários aninhados sem parênteses explícitos

Operações ternárias aninhadas devem usar explicitamente parênteses para ditar a ordem das operações. Anteriormente, quando usada sem parênteses, a associatividade esquerda não resultava no comportamento esperado na maioria dos casos.

<?php
1 ? 2 : 3 ? 4 : 5; // descontinuado
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>

Parenteses não são necessários quando organizando um operando interno, pois não gera ambiguidade ou problemas de associatividade:

1 ? 2 ? 3 : 4 : 5 // ok

Acesso a valores de array e string usando chaves

O acesso a valor de string e array usando a sintaxe de chaves está descontinuado. Use $var[$idx] ao invés de $var{$idx}.

A conversão (real) e a função is_real()

A conversão (real) está descontinuada, use (float) em seu lugar.

A função is_real() também está descontinuada, use is_float() em seu lugar.

Desvinculando $this quando $this é usado

Desvincular $this de uma closure não estática que usa $this está descontinuado.

A palavra chave parent sem uma classe parent

Usar a palavra chave parent dentro de uma classe sem parent está descontinuado, e lançará um erro em tempo de compilação no futuro. Atualmente um erro será gerado apenas se/quando o parent for acessado em tempo de execução.

A diretiva INI allow_url_include

A diretiva allow_url_include está descontinuada. Ativá-la gerará um aviso de descontinuação na inicialização.

Caracteres inválidos nas funções de conversão de base

Passar caracteres inválidos para as funções: base_convert(), bindec(), octdec() and hexdec()agora gerará um aviso de descontinuação. O resultado ainda será calculado como se os caracteres inválidos não existissem. Os espaços em branco à esquerda e à direita, bem como os prefixos do tipo 0x (dependendo da base) continuam sendo permitidos.

Usando array_key_exists() em objetos

O uso de array_key_exists() em objetos está descontinuado. Em vez disso isset() ou property_exists() deve ser usado.

Funções magic quotes

As funções get_magic_quotes_gpc() e get_magic_quotes_runtime() estão descontinuadas. Elas sempre retornam false.

Função hebrevc()

A função hebrevc() está descontinuada. Ela pode ser substituída por nl2br(hebrev($str)) ou, preferencialmente, pelo uso do suporte Unicode RTL.

Função convert_cyr_string()

A função convert_cyr_string() está descontinuada. Pode ser substituída por um dos mb_convert_string(), iconv() ou UConverter.

Função money_format()

A função money_format() está descontinuada. Ela pode ser substituída pela funcionalidade intl NumberFormatter.

Função ezmlm_hash()

A função ezmlm_hash() está descontinuada.

Função restore_include_path()

A função restore_include_path() está descontinuada. Pode ser substituída por ini_restore('include_path').

Implode com a ordem histórica dos parâmetros

A passagem de parâmetros para a função implode() na ordem reversa está descontinuada, use implode($glue, $parts) em vez de implode($parts, $glue).

COM

A importação de bibliotecas de tipos com registro constante que não diferencia maiúsculas de minúsculas foi descontinuada.

Filter

FILTER_SANITIZE_MAGIC_QUOTES está descontinuada, use FILTER_SANITIZE_ADD_SLASHES em seu lugar.

Multibyte String

A passagem de um padrão não-string para a função mb_ereg_replace() está descontinuado. Atualmente, os padrões não-string são interpretados como pontos de código ASCII. No PHP 8, o padrão será interpretado como uma string.

Passar a codificação como terceiro parâmetro para a função mb_strrpos() está descontinuado. Em vez disso, passe um offset 0 e a codificação como quarto parâmetro.

Lightweight Directory Access Protocol

ldap_control_paged_result_response() e ldap_control_paged_result() estão descontinuadas. Os controles de paginação podem ser enviados com a função ldap_search().

Reflection

As chamadas para ReflectionType::__toString() agora geram, um aviso de descontinuação. Este método foi descontinuado em favor de ReflectionNamedType::getName() na documentação a partir do PHP 7.1, mas não emitiu um aviso de descontinuação por motivos técnicos.

Os métodos export() em todas as classes Reflection foram descontinuados. Construa um objeto Reflection e converta-o em string em seu lugar:

<?php
// ReflectionClass::export(Foo::class, false) is:
echo new ReflectionClass(Foo::class), "\n";

// $str = ReflectionClass::export(Foo::class, true) is:
$str = (string) new ReflectionClass(Foo::class);
?>

Socket

AI_IDN_ALLOW_UNASSIGNED e AI_IDN_USE_STD3_ASCII_RULES para socket_addrinfo_lookup() foram descontinuadas, devido a uma descontinuação na própria glibc.


Extensões Removidas

Essas extensões foram movidas para o PECL e não fazem mais parte da distribuição do PHP As versões de pacotes PECL dessas extensões serão criadas de acordo com a demanda do usuário

  • Firebird/Interbase - o acesso a um banco de dados baseado em InterBase e/ou Firebird ainda está disponível com o driver PDO Firebird.
  • Recode
  • WDDX


Outras mudanças

Melhorias de desempenho

PHP Core

Um opcode VM especializado para a função array_key_exists() foi adicionado, o que melhora o desempenho desta função se ela puder ser resolvida estaticamente. No código com namespace, pode ser necessário escrever \array_key_exists() ou importar explicitamente a função.

Expressões regulares (Compatível com Perl)

Quando preg_match() no modo UTF-8 (modificador "u") é chamado repetidamente na mesma string (mas possivelmente deslocamentos diferentes), ele só será verificado para a validade UTF-8 uma vez.

Alterações na manipulação de arquivos INI

zend.exception_ignore_args é uma nova diretiva INI para incluir ou excluir argumentos de rastreamentos de pilha gerados a partir de exceções.

opcache.preload_user é uma nova diretiva INI para especificar a conta de usuário sob a qual o código de pré-carregamento é executado se, de outra forma, for executado como root (o que não é permitido por motivos de segurança).

Migração para pkg-config

Várias extensões foram migradas para usar exclusivamente pkg-config para a detecção de dependências de biblioteca. Geralmente, isso significa que, em vez de usar --with-foo-dir=DIR ou similar, apenas --with-foo é usado. Os caminhos de biblioteca personalizados podem ser especificados adicionando diretórios adicionais a PKG_CONFIG_PATH ou especificando explicitamente as opções de compilação por meio de FOO_CFLAGS e FOO_LIBS.

As seguintes extensões e SAPIs são afetadas:

  • CURL:
    • --with-curl não aceita mais um diretório.
  • Enchant:
    • --with-enchant não aceita mais um diretório.
  • FPM:
    • --with-fpm-systemd agora usa apenas pkg-config para verificações do libsystem. A versão mínima exigida do libsystemd é 209.
  • GD:
    • --with-gd torna-se --enable-gd (se para habilitar a extensão) e --with-external-gd (para optar por usar um libgd externo, em vez do empacotado).
    • --with-png-dir foi removido. libpng é obrigatório.
    • --with-zlib-dir foi removido. zlib é necessário.
    • --with-freetype-dir torna-se --with-freetype
    • --with-jpeg-dir torna-se --with-jpeg
    • --with-webp-dir torna-se --with-webp
    • --with-xpm-dir torna-se --with-xpm
  • IMAP:
    • --with-kerberos-systemd não aceita mais um diretório.
  • Intl:
    • --with-icu-dir foi removido. Se --enable-intl é passado, então libicu é sempre necessário.
  • LDAP:
    • --with-ldap-sasl não aceita mais um diretório.
  • Libxml:
    • --with-libxml-dir foi removido.
    • --enable-libxml torna-se --with-libxml.
    • --with-libexpat-dir foi renomeado para --with-expat e não aceita mais um diretório.
  • Litespeed:
    • --with-litespeed torna-se --enable-litespeed.
  • Mbstring:
    • --with-onig foi removido. A menos que --disable-mbregex foi passado, libonig é necessário.
  • ODBC:
    • --with-iodbc não aceita mais um diretório.
    • --with-unixODBC sem um diretório agora usa pkg-config (preferencial). O diretório ainda é aceito para versões antigas sem libodbc.pc.
  • OpenSSL:
    • --with-openssl não aceita mais um diretório.
  • PCRE:
    • --with-pcre-regex foi removido. Em vez disso, --with-external-pcre é fornecido para optar por usar uma biblioteca PCRE externa, em vez do pacote.
  • PDO_SQLite:
    • --with-pdo-sqlite não aceita mais um diretório.
  • Readline:
    • --with-libedit não aceita mais um diretório.
  • Sodium:
    • --with-sodium não aceita mais um diretório.
  • SQLite3:
    • --with-sqlite3 não aceita mais um diretório.
  • XSL:
    • --with-xsl não aceita mais um diretório.
  • Zip:
    • --with-libzip foi removido.
    • --enable-zip torna-se --with-zip.

CSV escaping

fputcsv(),
fgetcsv(),
SplFileObject::fputcsv(),
SplFileObject::fgetcsv(), e
SplFileObject::setCsvControl()
agora aceitam uma string vazia como argumento $escape,
que desativa o mecanismo de escape proprietário do PHP.

O comportamento de str_getcsv() foi ajustado adequadamente (anteriormente, uma string vazia era idêntica a usar o padrão).

SplFileObject::getCsvControl() agora também pode retornar uma string vazia para o terceiro elemento do array, adequadamente.

Filtragem de Dados

A extensão filter não expõe mais --with-pcre-dir para compilações Unix e agora pode ser construída de forma confiável como compartilhada ao usar ./configure

GD

O comportamento de imagecropauto() no pacote libgd foi sincronizado com o do sistema libgd:

  • IMG_CROP_DEFAULT não está mais voltando para IMG_CROP_SIDES
  • Threshold-cropping agora usa o algoritmo do sistema libgd

O parâmetro $mode padrão de ] imagecropauto() foi alterado para IMG_CROP_DEFAULT; passar -1 agora está descontinuado.

imagescale() agora oferece suporte à proporção preservando a escala para uma altura fixa passando -1 como $new_width.

HASH Message Digest Framework

A extensão hash não pode mais ser desativada e é sempre parte integrante de qualquer compilação do PHP, semelhante à extensão date.

Intl

A extensão intl agora requer pelo menos ICU 50.1.

ResourceBundle agora implementa Countable.

Lightweight Directory Access Protocol

O suporte para nsldap e umich_ldap foi removido.

Libxml

Todas as extensões baseadas em libxml agora requerem libxml 2.7.6 ou mais recente.

Multibyte String

A biblioteca oniguruma não é mais empacotada com o PHP, em vez disso libonig precisa estar disponível no sistema. Alternativamente, --disable-mbregex pode ser usado para desabilitar o componente mbregex.

OPcache

As opções de configuração --disable-opcache-file e --enable-opcache-file foram removidas em favor da diretiva INI opcache.file_cache.

Password Hashing

As funções password_hash() e password_needs_rehash() agora aceitam string anulável e int para o argumento $algo.

PEAR

A instalação do PEAR (incluindo PECL) não é mais habilitada por padrão. Ele pode ser ativado explicitamente usando --with-pear. Esta opção está descontinuada e pode ser removida no futuro.

Reflection

Os valores numéricos das constantes do modificador (IS_ABSTRACT, IS_DEPRECATED, IS_EXPLICIT_ABSTRACT, IS_FINAL, IS_IMPLICIT_ABSTRACT, IS_PRIVATE, IS_PROTECTED, IS_PUBLIC, e IS_STATIC) nas classes ReflectionClass, ReflectionFunction, ReflectionMethod, ReflectionObject, e ReflectionProperty foram alterados.

SimpleXML

SimpleXMLElement agora implementa Countable.

SQLite3

O pacote libsqlite foi removido. Para construir a extensão SQLite3, um sistema libsqlite3 = 3.7.4 agora é necessário. Para construir a extensão PDO_SQLite, um sistema libsqlite3 = 3.5.0 agora é necessário.

A serialização e desserialização de SQLite3, SQLite3Stmt e SQLite3Result agora são explicitamente proibidas. Anteriormente, a serialização de instâncias dessas classes era possível, mas a desserialização produzia objetos inutilizáveis.

A notação @param agora também pode ser usada para denotar parâmetros de consulta SQL.

Zip

A biblioteca libzip empacotada foi removida. Um sistema libzip >= 0.11 agora é necessário para construir a extensão zip.


Suporte do Windows

configure flags

configure agora considera CFLAGS e LDFLAGS adicionais definidos como variáveis de ambiente.

CTRL handling

CTRL+C e CTRL+BREAK no console podem ser capturados definindo uma função de manipulador com sapi_windows_set_ctrl_handler().

proc_open() no Windows pode receber uma opção "create_process_group". É necessário se o processo filho deve lidar com eventos CTRL.

OPcache

O OPcache agora suporta um número arbitrário de caches separados por usuário por meio da diretiva INI opcache.cache_id. Todos os processos com o mesmo ID de cache e usuário compartilham uma instância do OPcache.

stat

A implementação stat foi refatorada.

  • Um número de inode é entregue e é baseado no índice de arquivo NTFS.
  • O número do dispositivo agora é baseado no número de série do volume.

Observe que ambos os valores são derivados do sistema e fornecidos como estão em sistemas de 64 bits. Em sistemas de 32 bits, esses valores podem ultrapassar o número inteiro de 32 bits no PHP, portanto, são falsos.

libsqlite3

libsqlite3 não é mais compilado estaticamente em php_sqlite3.dll e php_pdo_sqlite.dll, mas sim disponível como libsqlite3.dll. Consulte as instruções de instalação para SQLite3 e PDO_SQLITE, respectivamente.


Migrando do PHP 7.2.x para o PHP 7.3.x

Índice

  • Novas Funcionalidades
  • Novas Funções
  • Novas Constantes Globais
  • Alterações incompatíveis com versões anteriores
  • Recursos descontinuados
  • Outras mudanças
  • Suporte do Windows

Esta nova versão menor traz vários novos recursos e algumas incompatibilidades que devem ser testadas antes da atualização de versões do PHP em ambientes de produção.

Veja também os guias de migração das versões do PHP 7.0.x, 7.1.x e 7.2.x.


Novas Funcionalidades

PHP Core

Sintaxe Heredoc e Nowdoc mais flexível

O marcador de fechamento para strings doc não precisa mais ser seguido por ponto-e-vírgula ou nova linha. Além disso, o marcador de fechamento pode ser recuado, caso em que o recuo será retirado de todas as linhas na string do documento.

A desestruturação de matriz suporta atribuições de referência

A desestruturação de matriz agora suporta atribuições de referência usando a sintaxe [&$a, [$b, &$c]] = $d O mesmo também é suportado para list().

O operador Instanceof aceita Literais

instanceof agora permite literais como o primeiro operando, caso em que o resultado é sempre false.

Exceção CompileError em vez de alguns Erros de Compilação

Uma nova exceção CompileError foi adicionada, da qual ParseError herda. Um pequeno número de erros de compilação agora lançará um CompileError em vez de gerar um fatal error. Atualmente, isso afeta apenas erros de compilação que podem ser lançados por token_get_all() no modo TOKEN_PARSE, mas mais erros podem ser convertidos no futuro.

Vírgulas à direita são permitidas em chamadas

Agora são permitidas vírgulas à direita em chamadas de função e método.

Suporte Argon2id

O argumento de configuração --with-password-argon2[=dir] agora fornece suporte para os hashes Argon2i e Argon2id nas funções password_hash(), password_verify(), password_get_info() e password_needs_rehash(). As senhas podem ser hash e verificadas usando a constante PASSWORD_ARGON2ID. O suporte para Argon2i e Argon2id nas funções password_*() agora requer que o PHP seja vinculado à biblioteca de referência libargon2 = 20161029.

FastCGI Process Manager

Novas opções foram adicionadas para personalizar o log do FPM:

log_limit
Esta opção global pode ser usada para definir o limite de log para a linha registrada, o que permite registrar mensagens com mais de 1024 caracteres sem quebrar. Ele também corrige vários problemas de empacotamento.
log_buffering
Esta opção global permite um registro experimental sem buffer extra.
decorate_workers_output
Esta opção de pool permite desativar a decoração de saída para a saída dos workers quando catch_workers_output estiver ativado.

Funções BC Math

bcscale() agora também pode ser usado como getter para recuperar a escala atual em uso.

Lightweight Directory Access Protocol

Suporte completo para controles LDAP foi adicionado às funções de consulta LDAP e ldap_parse_result():

  • Um parâmetro $controls para enviar controles para
o servidor em ldap_add(),
ldap_mod_replace(), ldap_mod_add(),
ldap_mod_del(), ldap_rename(),
ldap_compare(), ldap_delete(),
ldap_modify_batch(),
ldap_search(), ldap_list() e
ldap_read() foi adicionado.
  • O parâmetro de saída $controls para obter controles do servidor em ldap_parse_result() foi adicionado.
  • Suporte para LDAP_OPT_SERVER_CONTROLS e LDAP_OPT_CLIENT_CONTROLS em ldap_get_option() e ldap_set_option() foi corrigido.

Functions Multibyte String

Suporte completo para Case-Mapping e Case-Folding

Foi adicionado suporte para mapeamento completo de case-mapping e case-folding. Ao contrário do case-mapping simples, o case-mapping completo pode alterar o comprimento da string. Por exemplo:

<?php
mb_strtoupper("Straße");
// Produces STRAßE on PHP 7.2
// Produces STRASSE on PHP 7.3
?>
Os diferentes modos de mapeamento e folding modes estão disponíveis através de mb_convert_case():
  • MB_CASE_LOWER (usado por mb_strtolower())
  • MB_CASE_UPPER (usado por mb_strtoupper())
  • MB_CASE_TITLE
  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE (usado por operações Case-Insensitive)
Somente o mapeamento de caso completo incondicional e agnóstico de idioma é executado.

As operações de string Case-Insensitive usam Case-Folding

As operações de string que não diferenciam maiúsculas de minúsculas agora usam case-folding em vez de case- mapping durante as comparações. Isso significa que mais caracteres serão considerados (sem distinção entre maiúsculas e minúsculas) iguais agora.

MB_CASE_TITLE executa conversão de Title-Case

mb_convert_case() com MB_CASE_TITLE agora executa conversão de maiúsculas e minúsculas com base nas propriedades Unicode derivadas de Cased e CaseIgnorable. Em particular, isso também melhora o tratamento de aspas e apóstrofos.

Support Unicode 11

As tabelas de dados Multibyte String foram atualizadas para Unicode 11.

Suporte Long String

As funções Multibyte String Functions agora suportam corretamente strings maiores que 2 GB.

Melhorias de desempenho

O desempenho da extensão Multibyte String foi significativamente melhorado em todos os aspectos. As maiores melhorias estão nas funções de conversão de caso.

Suporte a Capturas Nomeadas

As funções mb_ereg_* agora suportam capturas nomeadas. Funções de correspondência como mb_ereg() agora retornarão capturas nomeadas usando o número do grupo e o nome, semelhante ao PCRE:

<?php
mb_ereg('(?<word>\w+)', '?', $matches);
// => [0 => "?", 1 => "?", "word" => "?"];
?>
Além disso, mb_ereg_replace() agora suporta as notações \k<> and \k'' para fazer referência a capturas nomeadas na string de substituição:
<?php
mb_ereg_replace('\s*(?<word>\w+)\s*', "_\k<word>_\k'word'_", ' foo ');
// => "_foo_foo_"
?>
\k<> and \k'' também podem ser usados para referências numeradas, que também funcionam com números de grupos maiores que 9.

Readline

O suporte para as opções completion_append_character e completion_suppress_append foi adicionado a readline_info(). Essas opções só estão disponíveis se o PHP estiver vinculado a libreadline (ao invés de libedit).


Novas Funções

PHP Core

  • array_key_first()
  • array_key_last()
  • gc_status()
  • hrtime()
  • is_countable()
  • net_get_interfaces()

FastCGI Process Manager

  • fpm_get_status()

Data e hora

  • DateTime::createFromImmutable()

GNU Multiple Precision

  • gmp_binomial()
  • gmp_kronecker()
  • gmp_lcm()
  • gmp_perfect_power()

Funções de Internacionalização

  • Normalizer::getRawDecomposition()
  • normalizer_get_raw_decomposition()
  • Spoofchecker::setRestrictionLevel()

Lightweight Directory Access Protocol

  • ldap_add_ext()
  • ldap_bind_ext()
  • ldap_delete_ext()
  • ldap_exop_refresh()
  • ldap_mod_add_ext()
  • ldap_mod_replace_ext()
  • ldap_mod_del_ext()
  • ldap_rename_ext()

OpenSSL

  • openssl_pkey_derive()

Sockets

  • socket_wsaprotocol_info_export()
  • socket_wsaprotocol_info_import()
  • socket_wsaprotocol_info_release()


Novas Constantes Globais

PHP Core

  • PASSWORD_ARGON2ID

Client URL Library

  • CURLAUTH_BEARER
  • CURLAUTH_GSSAPI
  • CURLE_WEIRD_SERVER_REPLY
  • CURLINFO_APPCONNECT_TIME_T
  • CURLINFO_CONNECT_TIME_T
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
  • CURLINFO_CONTENT_LENGTH_UPLOAD_T
  • CURLINFO_FILETIME_T
  • CURLINFO_HTTP_VERSION
  • CURLINFO_NAMELOOKUP_TIME_T
  • CURLINFO_PRETRANSFER_TIME_T
  • CURLINFO_PROTOCOL
  • CURLINFO_PROXY_SSL_VERIFYRESULT
  • CURLINFO_REDIRECT_TIME_T
  • CURLINFO_SCHEME
  • CURLINFO_SIZE_DOWNLOAD_T
  • CURLINFO_SIZE_UPLOAD_T
  • CURLINFO_SPEED_DOWNLOAD_T
  • CURLINFO_SPEED_UPLOAD_T
  • CURLINFO_STARTTRANSFER_TIME_T
  • CURLINFO_TOTAL_TIME_T
  • CURL_LOCK_DATA_CONNECT
  • CURL_LOCK_DATA_PSL
  • CURL_MAX_READ_SIZE
  • CURLOPT_ABSTRACT_UNIX_SOCKET
  • CURLOPT_DISALLOW_USERNAME_IN_URL
  • CURLOPT_DNS_SHUFFLE_ADDRESSES
  • CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
  • CURLOPT_HAPROXYPROTOCOL
  • CURLOPT_KEEP_SENDING_ON_ERROR
  • CURLOPT_PRE_PROXY
  • CURLOPT_PROXY_CAINFO
  • CURLOPT_PROXY_CAPATH
  • CURLOPT_PROXY_CRLFILE
  • CURLOPT_PROXY_KEYPASSWD
  • CURLOPT_PROXY_PINNEDPUBLICKEY
  • CURLOPT_PROXY_SSLCERT
  • CURLOPT_PROXY_SSLCERTTYPE
  • CURLOPT_PROXY_SSL_CIPHER_LIST
  • CURLOPT_PROXY_SSLKEY
  • CURLOPT_PROXY_SSLKEYTYPE
  • CURLOPT_PROXY_SSL_OPTIONS
  • CURLOPT_PROXY_SSL_VERIFYHOST
  • CURLOPT_PROXY_SSL_VERIFYPEER
  • CURLOPT_PROXY_SSLVERSION
  • CURLOPT_PROXY_TLS13_CIPHERS
  • CURLOPT_PROXY_TLSAUTH_PASSWORD
  • CURLOPT_PROXY_TLSAUTH_TYPE
  • CURLOPT_PROXY_TLSAUTH_USERNAME
  • CURLOPT_REQUEST_TARGET
  • CURLOPT_SOCKS5_AUTH
  • CURLOPT_SSH_COMPRESSION
  • CURLOPT_SUPPRESS_CONNECT_HEADERS
  • CURLOPT_TIMEVALUE_LARGE
  • CURLOPT_TLS13_CIPHERS
  • CURLPROXY_HTTPS
  • CURLSSH_AUTH_GSSAPI
  • CURL_SSLVERSION_MAX_DEFAULT
  • CURL_SSLVERSION_MAX_NONE
  • CURL_SSLVERSION_MAX_TLSv1_0
  • CURL_SSLVERSION_MAX_TLSv1_1
  • CURL_SSLVERSION_MAX_TLSv1_2
  • CURL_SSLVERSION_MAX_TLSv1_3
  • CURL_SSLVERSION_TLSv1_3
  • CURL_VERSION_ALTSVC (as of PHP 7.3.6)
  • CURL_VERSION_ASYNCHDNS
  • CURL_VERSION_BROTLI
  • CURL_VERSION_CONV
  • CURL_VERSION_CURLDEBUG (a partir do PHP 7.3.6)
  • CURL_VERSION_DEBUG
  • CURL_VERSION_GSSAPI
  • CURL_VERSION_GSSNEGOTIATE
  • CURL_VERSION_HTTPS_PROXY
  • CURL_VERSION_IDN
  • CURL_VERSION_LARGEFILE
  • CURL_VERSION_MULTI_SSL
  • CURL_VERSION_NTLM
  • CURL_VERSION_NTLM_WB
  • CURL_VERSION_PSL (a partir do PHP 7.3.6)
  • CURL_VERSION_SPNEGO
  • CURL_VERSION_SSPI
  • CURL_VERSION_TLSAUTH_SRP

Filtragem de Dados

  • FILTER_SANITIZE_ADD_SLASHES

JSON

  • JSON_THROW_ON_ERROR

Lightweight Directory Access Protocol

  • LDAP_CONTROL_ASSERT
  • LDAP_CONTROL_MANAGEDSAIT
  • LDAP_CONTROL_PROXY_AUTHZ
  • LDAP_CONTROL_SUBENTRIES
  • LDAP_CONTROL_VALUESRETURNFILTER
  • LDAP_CONTROL_PRE_READ
  • LDAP_CONTROL_POST_READ
  • LDAP_CONTROL_SORTREQUEST
  • LDAP_CONTROL_SORTRESPONSE
  • LDAP_CONTROL_PAGEDRESULTS
  • LDAP_CONTROL_AUTHZID_REQUEST
  • LDAP_CONTROL_AUTHZID_RESPONSE
  • LDAP_CONTROL_SYNC
  • LDAP_CONTROL_SYNC_STATE
  • LDAP_CONTROL_SYNC_DONE
  • LDAP_CONTROL_DONTUSECOPY
  • LDAP_CONTROL_PASSWORDPOLICYREQUEST
  • LDAP_CONTROL_PASSWORDPOLICYRESPONSE
  • LDAP_CONTROL_X_INCREMENTAL_VALUES
  • LDAP_CONTROL_X_DOMAIN_SCOPE
  • LDAP_CONTROL_X_PERMISSIVE_MODIFY
  • LDAP_CONTROL_X_SEARCH_OPTIONS
  • LDAP_CONTROL_X_TREE_DELETE
  • LDAP_CONTROL_X_EXTENDED_DN
  • LDAP_CONTROL_VLVREQUEST
  • LDAP_CONTROL_VLVRESPONSE

Multibyte String

  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE

OpenSSL

  • STREAM_CRYPTO_PROTO_SSLv3
  • STREAM_CRYPTO_PROTO_TLSv1_0
  • STREAM_CRYPTO_PROTO_TLSv1_1
  • STREAM_CRYPTO_PROTO_TLSv1_2

PostgreSQL

  • PGSQL_DIAG_SCHEMA_NAME
  • PGSQL_DIAG_TABLE_NAME
  • PGSQL_DIAG_COLUMN_NAME
  • PGSQL_DIAG_DATATYPE_NAME
  • PGSQL_DIAG_CONSTRAINT_NAME
  • PGSQL_DIAG_SEVERITY_NONLOCALIZED


Alterações incompatíveis com versões anteriores

PHP Core

Interpretação do rótulo de finalização Heredoc/Nowdoc

Devido à introdução da sintaxe flexível heredoc/nowdoc, doc strings que contêm o rótulo final dentro de seu corpo podem causar erros de sintaxe ou alteração na interpretação. Por exemplo em:

<?php
$str = <<<FOO
abcdefg
 FOO
FOO;
?>
A ocorrência recuada de FOO não tinha anteriormente nenhum significado especial. Agora será interpretado como o final da string heredoc e o seguinte FOO; causará um erro de sintaxe. Esse problema sempre pode ser resolvido escolhendo um rótulo final que não ocorra no conteúdo da string.

Continuar problemas com o comutador de segmentação Warning

As instruções continue direcionadas às estruturas de fluxo de controle do switch agora gerarão um aviso. Em PHP, tais instruções continue são equivalentes a break, enquanto se comportam como continue 2 em outras linguagens.

<?php
while ($foo) {
switch ($bar) {
case "baz":
continue;
// Warning: "continue" targeting switch is equivalent to
// "break". Did you mean to use "continue 2"?
}
}
?>

Interpretação estrita de chaves de strings inteiras em ArrayAccess

Acessos de matriz do tipo $obj["123"], onde $obj implementa ArrayAccess e "123"" é uma string literal de inteiro não resultará mais em uma conversão implícita para inteiro, ou seja, $obj->offsetGet("123") será chamado em vez de $obj->offsetGet(123). Isso corresponde ao comportamento existente para não literais. O comportamento dos arrays não é afetado de forma alguma, eles continuam a converter implicitamente chaves de string integrais em inteiros.

Propriedades estáticas não são mais separadas por atribuição de referência

No PHP, as propriedades estáticas são compartilhadas entre as classes herdadas, a menos que a propriedade estática seja explicitamente substituída em uma classe filha. Porém, devido a um artefato de implementação foi possível separar as propriedades estáticas atribuindo uma referência. Essa brecha foi corrigida.

<?php
class Test {
public static $x = 0;
}
class Test2 extends Test { }

Test2::$x = &$x;
$x = 1;

var_dump(Test::$x, Test2::$x);
// Previously: int(0), int(1)
// Now: int(1), int(1)
?>

Referências retornadas por Array e Property Accesss são imediatamente desempacotadas

As referências retornadas por acessos de array e propriedade agora são desempacotadas como parte do acesso. Isso significa que não é mais possível modificar a referência entre o acesso e o uso do valor acessado:

<?php
$arr = [1];
$ref =& $arr[0];
var_dump($arr[0] + ($arr[0] = 2));
// Previously: int(4), Now: int(3)
?>
Isso torna consistente o comportamento de referências e não referências. Observe que ler e escrever um valor dentro de uma única expressão permanece um comportamento indefinido e pode mudar novamente no futuro.

Argumento de descompactação de Traversables com chaves não inteiras não é mais suportada

A descompactação de argumentos parou de funcionar com Traversables com chaves não inteiras. O código a seguir funcionou no PHP 5.6-7.2 por acidente.

<?php
function foo(...$args) {
var_dump($args);
}
function gen() {
yield 1.23 => 123;
}
foo(...gen());
?>

Diversos

O utilitário ext_skel foi completamente redesenhado com novas opções e algumas opções antigas removidas. Isso agora é escrito em PHP e não possui dependências externas.

O suporte para BeOS foi descartado.

Exceções lançadas devido à conversão automática de avisos em exceções no modo EH_THROW (por exemplo, algumas exceções DateTime) não preenchem mais o estado error_get_last(). Dessa forma, eles agora funcionam da mesma maneira que as exceções lançadas manualmente.

TypeError agora relata tipos errados como int e bool em vez de integer e boolean, respectivamente.

As variáveis indefinidas passadas para compact() agora serão relatadas como um aviso.

getimagesize() e funções relacionadas agora relatam o tipo mime de imagens BMP como image/bmp em vez de image/x-ms-bmp, já que o primeiro foi registrado na IANA (consulte » RFC 7903).

stream_socket_get_name() agora retornará endereços IPv6
entre colchetes. Por exemplo, "[::1]:1337" será
retornado em vez de "::1:1337".

BCMath Matemática de Precisão Arbitrária

Todos os avisos lançados pelas funções BCMath agora estão usando o tratamento de erros do PHP. Anteriormente, alguns avisos eram gravados diretamente no stderr.

bcmul() e bcpow() agora retornam números com a escala solicitada. Anteriormente, os números retornados podem ter omitido zeros decimais à direita.

IMAP, POP3 e NNTP

Os logins rsh/ssh são desabilitados por padrão. Use imap.enable_insecure_rsh se quiser ativá-los. Observe que a biblioteca IMAP não filtra os nomes das caixas de correio antes de passá-los para o comando rsh/ssh, portanto, passar dados não confiáveis para essa função com rsh/ssh ativado é inseguro.

Multibyte String

Devido ao suporte adicional para capturas nomeadas, os padrões mb_ereg_*() usando capturas nomeadas se comportarão de maneira diferente. Em particular, as capturas nomeadas farão parte das correspondências e mb_ereg_replace() interpretará a sintaxe adicional. Consulte Capturas nomeadas para obter mais informações.

Melhorias na extensão MySQL

As instruções preparadas agora relatam corretamente os segundos fracionários para as colunas DATETIME, TIME e TIMESTAMP com especificador de decimais (por exemplo, TIMESTAMP(6) ao usar microssegundos). Anteriormente, a parte dos segundos fracionários era simplesmente omitida dos valores retornados.

Funções do MySQL (PDO_MYSQL)

As instruções preparadas agora relatam corretamente os segundos fracionários para as colunas DATETIME, TIME e TIMESTAMP com especificador de decimais (por exemplo, TIMESTAMP(6) ao usar microssegundos). Anteriormente, a parte dos segundos fracionários era simplesmente omitida dos valores retornados. Observe que isso afeta apenas o uso de PDO_MYSQL com preparações emuladas desativadas (por exemplo, usando a funcionalidade de preparação nativa). Declarações usando conexões com PDO::ATTR_EMULATE_PREPARES=true (que é o padrão) não foram afetadas pelo bug corrigido e já obtiveram os valores de segundos fracionários apropriados do mecanismo.

Reflection

A exportação de Reflection para string agora usa int e bool em vez de integer e boolean, respectivamente.

Standard PHP Library (SPL)

Se um autoloader SPL lançar uma exceção, os seguintes autoloaders não serão executados. Anteriormente, todos os autoloaders eram executados e as exceções eram encadeadas.

SimpleXML

Operações matemáticas envolvendo objetos SimpleXML agora tratarão o texto como um int ou float, o que for mais apropriado. Anteriormente, os valores eram tratados como ints incondicionalmente.

Cookies recebidos

A partir do PHP 7.3.23, os nomes dos cookies recebidos não são mais decodificados por url por motivos de segurança.


Recursos descontinuados

PHP Core

Constantes Case-Insensitive

A declaração de constantes que não diferenciam maiúsculas de minúsculas foi descontinuada. Passar true como o terceiro argumento para define() agora gerará um aviso de descontinuação. O uso de constantes que não diferenciam maiúsculas de minúsculas com uma maiúscula que difere da declaração também foi descontinuado.

assert() com Namespace

Declarar uma função chamada assert() dentro de um namespace foi descontinuado. A função assert() está sujeita a tratamento especial pelo mecanismo, o que pode levar a um comportamento inconsistente ao definir uma função com namespace com o mesmo nome.

Pesquisando Strings por Needle não string

Passar um valor não string para funções de pesquisa de string foi descontinuado. No futuro, o valor será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento pretendido, você deve converter explicitamente a valor para string ou executar uma chamada explícita para chr(). As seguintes funções são afetadas:

  • strpos()
  • strrpos()
  • stripos()
  • strripos()
  • strstr()
  • strchr()
  • strrchr()
  • stristr()

Strip-Tags Streaming

A função fgetss() e o filtro de stream string.strip_tags foram descontinuados. Isso também afeta o método SplFileObject::fgetss() e a função gzgetss().

Filtragem de Dados

O uso explícito das constantes FILTER_FLAG_SCHEME_REQUIRED e FILTER_FLAG_HOST_REQUIRED agora está descontinuado; ambos estão implícitos para FILTER_VALIDATE_URL de qualquer maneira.

Processamento de Imagem e GD

image2wbmp() foi descontinuada.

Funções de Internacionalização

O uso de Normalizer::NONE gera um aviso de descontinuação, se o PHP estiver vinculado a ICU = 56.

Multibyte String

Os seguintes aliases mbereg_*() não documentados foram descontinuados. Em vez disso, use as variantes mb_ereg_*() correspondentes.

  • mbregex_encoding()
  • mbereg()
  • mberegi()
  • mbereg_replace()
  • mberegi_replace()
  • mbsplit()
  • mbereg_match()
  • mbereg_search()
  • mbereg_search_pos()
  • mbereg_search_regs()
  • mbereg_search_init()
  • mbereg_search_getregs()
  • mbereg_search_getpos()
  • mbereg_search_setpos()

Funções ODBC e DB2 (PDO_ODBC)

A configuração pdo_odbc.db2_instance_name foi formalmente descontinuada. Está descontinuada na documentação a partir do PHP 5.1.1.


Outras mudanças

PHP Core

Set(raw)cookie aceita Argumento $option

setcookie() e setrawcookie() agora também suportam a seguinte assinatura:

setcookie(string $name, string $value = "", array $options = []): bool
onde $options é um array associativo que pode ter qualquer uma das chaves "expires", "path", "domain", "secure", "httponly" e "samesite".

Novas Diretivas Syslog ini

As seguintes diretivas ini foram adicionadas para personalizar o log, se error_log for definido como syslog:

syslog.facility
Especifica que tipo de programa está registrando a mensagem.
syslog.filter
Especifica o tipo de filtro para filtrar as mensagens registradas, com os tipos de filtro suportados - all, no-ctrl e ascii. A partir do PHP 7.3.8, o raw também está disponível, restaurando o comportamento do syslog nas versões anteriores do PHP. Este filtro também afetará as chamadas para syslog().
syslog.ident
Especifica a string de identificação que é anexada a cada mensagem.

Garbage Collection

O cyclic GC foi aprimorado, o que pode resultar em melhorias consideráveis de desempenho.

Diversos

var_export() agora exporta objetos stdClass como um array convertido em um objeto ((object) array( ... )), em vez de usar o método inexistente stdClass::__setState().

debug_zval_dump() foi alterado para exibir arrays e objetos recursivos da mesma forma que var_dump(). Agora, ele não os exibe duas vezes.

array_push() e array_unshift() agora também podem ser chamados com um único argumento, o que é particularmente conveniente wrt. O operador de spread.

Interactive PHP Debugger

As constantes não utilizadas PHPDBG_FILE, PHPDBG_METHOD, PHPDBG_LINENO e PHPDBG_FUNC foram removidas.

FastCGI Process Manager

A função getallheaders() agora também está disponível.

Client URL Library

libcurl = 7.15.5 agora é necessário.

Filtragem de Dados

FILTER_VALIDATE_FLOAT agora também suporta a opção thousand, que define o conjunto de caracteres separadores de mil permitidos. O padrão ("',.") é totalmente compatível com versões anteriores do PHP.

FILTER_SANITIZE_ADD_SLASHES foi adicionado como um alias do filtro magic_quotes (FILTER_SANITIZE_MAGIC_QUOTES). O filtro magic_quotes está sujeito a remoção em versões futuras do PHP.

FTP

O modo de transferência padrão foi alterado para binary..

Funções de Internacionalização

Normalizer::NONE está descontinuada, quando o PHP está vinculado com ICU = 56.

Introduzido NNormalizer::FORM_KC_CF como argumento Normalizer::normalize() para normalização NFKC_Casefold disponível quando vinculado a ICU = 56.

JSON

Uma nova flag foi adicionada, JSON_THROW_ON_ERROR, que pode ser usado com json_decode() ou json_encode() e faz com que essas funções lancem o novo JsonException em caso de erro, em vez de definir o estado de erro global que é recuperado com json_last_error() e json_last_error_msg(). JSON_PARTIAL_OUTPUT_ON_ERROR tem precedência sobre JSON_THROW_ON_ERROR.

Multibyte String

A opção de configuração --with-libmbfl não está mais disponível.

ODBC (Unificado)

O suporte para ODBCRouter e Birdstep, incluindo a diretiva ini birdstep.max_links, foi removido.

OPcache

A diretiva ini opcache.inherited_hack foi removida. O valor já foi ignorado desde o PHP 5.3.0.

OpenSSL

As opções de stream ssl min_proto_version e max_proto_version, bem como constantes relacionadas para possíveis valores de protocolo TLS foram adicionadas.

Expressões Regulares (Compatível com Perl)

A PCRE extension foi atualizada para PCRE2, o que pode causar pequenas alterações comportamentais (por exemplo, intervalos de caracteres em classes agora são interpretados com mais rigor) e aumenta a sintaxe de expressão regular existente.

preg_quote() agora também escapa do caractere '#'.

Funções Microsoft SQL Server e Sybase (PDO_DBLIB)

O atributo PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS para habilitar o salto automático de conjuntos de linhas vazios foi adicionado.

O atributo PDO::DBLIB_ATTR_TDS_VERSION que expõe a versão TDS foi adicionado

As colunas DATETIME2 agora são tratadas como colunas DATETIME.

Funções SQLite (PDO_SQLITE)

Os bancos de dados SQLite3 agora podem ser abertos no modo somente leitura, definindo o novo atributo PDO::SQLITE_ATTR_OPEN_FLAGS como PDO::SQLITE_OPEN_READONLY.

Tratamento de Sessão

session_set_cookie_params() agora também suporta a seguinte assinatura:

session_set_cookie_params(array $options): bool
onde $options é um array associativo que pode ter qualquer uma das chaves "lifetime", "path", "domain", "secure", "httponly" e "samesite" Da mesma forma, o valor de retorno de session_get_cookie_params() agora também possui um elemento com a chave "samesite". Além disso, foi adicionada a nova opção ini session.cookie_samesite para definir o padrão da diretiva SameSite para cookies. O padrão é "" (string vazia), portanto, nenhuma diretiva SameSite é definida. Pode ser definido como "Lax" ou "Strict", que define a respectiva diretiva SameSite.

Tidy

Construir contra » tidyp agora também é suportado de forma transparente. Uma vez que o tidyp não oferece nenhuma API para obter a data de lançamento, tidy_get_release() e tidy::getRelease() retornam 'unknown' neste caso.

Analisador de XML

O valor de retorno do retorno de chamada xml_set_external_entity_ref_handler() não é mais ignorado se a extensão tiver sido criada em libxml. Anteriormente, o valor de retorno era ignorado e a análise nunca parava.

Zip

Compilar com o pacote libzip é desencorajado, mas ainda é possível adicionando --without-libzip à configuração.

Compressão Zlib

A opção de contexto zlib/level para o wrapper compress.zlib wrapper para facilitar a configuração do nível de compactação desejado foi adicionada.


Suporte do Windows

PHP Core

Mais exclusão de arquivos em conformidade com POSIX

Os descritores de arquivo são abertos no modo compartilhado de leitura/gravação/exclusão por padrão. Isso mapeia efetivamente a semântica POSIX e permite excluir arquivos com identificadores em uso. Não é 100% igual, algumas diferenças de plataforma ainda persistem. Após a exclusão, a entrada do nome do arquivo é bloqueada, até que todos os identificadores abertos sejam fechados.


Migrando do PHP 7.1.x para o PHP 7.2.x

Índice

  • Novas funcionalidades
  • Novas funções
  • Novas constantes globais
  • Alterações incompatíveis com versões anteriores
  • Recursos defasados na versão PHP 7.2.x
  • Outras alterações

Esta nova versão menor traz novos recursos e algumas incompatibilidades que devem ser testadas antes da atualização da versão do PHP em ambientes de produção.

Veja também os guias de migração das versões do PHP 7.0.x e 7.1.x.


Novas funcionalidades

Novo tipo: object

Um novo tipo, object, foi introduzido e pode ser usado para tipagem de parâmetro (contravariante) e tipagem de retorno (covariante) de qualquer objeto.

<?php

function test(object $obj) : object
{
return new SplQueue();
}

test(new stdClass());

Carregamento de extensão por nome

Extensões compartilhadas não requerem mais que as extensões de arquivo (.so para Unix ou .dll para Windows) sejam especificadas. Isto está habilitado no arquivo php.ini, assim como na função dl().

Substituição de método abstrato

Métodos abstratos agora podem ser substituídos quando uma classe abstrata estende outra classe abstrata.

<?php

abstract class A
{
abstract function test(string $s);
}
abstract class B extends A
{
// substituído - ainda mantendo contravariância para parâmetros e covariância para retorno
abstract function test($s) : int;
}

Sodium agora é uma extensão do núcleo

A moderna biblioteca de criptografia Sodium agora se tornou uma extensão do núcleo do PHP.

Para uma referência completa da função consulte o capítulo Sodium.

Hash de senha com Argon2

Argon2 foi adicionado à API de hash de senha, onde as seguintes constantes foram expostas:

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

Tipos estendidos de strings para PDO

O tipo string da PDO foi estendido para suportar o tipo de caractere nacional ao emular preparações. Isto foi feito com as seguintes constantes:

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

Estas constantes são utilizadas com a operação binária OR entre elas e a constante PDO::PARAM_STR:

<?php

$db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL);

Informação adicional de depuração de preparações emuladas para PDO

O método PDOStatement::debugDumpParams() foi atualizado para incluir o SQL enviado ao BD, onde a consulta completa, crua, (incluindo os marcadores substituídos com seus valores vinculados) será mostrada. Isto foi adicionado para ajudar na depuração de preparações emuladas (e por isso só estará disponível se preparações emuladas estiverem habilitadas).

Suporte para operações estendidas em LDAP

Suporte para EXOP foi adicionado à extensão LDAP. Isto foi feito pela exposição das seguintes funções e contantes:

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()
  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Adição de informação de endereço à extensão Sockets

A extensão sockets agora tem a capacidade de procurar por Informação de Endereço, assim como se conectar, vincular e explicar. As quatro funções a seguir foram adicionadas para isto:

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Ampliação de tipo de parâmetro

Tipos de parâmetro de métodos substituídos e de implementações de interface agora podem ser omitidos. Isto ainda está conforme LSP, já que os tipos de parâmetros são contravariantes.

<?php

interface A
{
public function Test(array $input);
}

class B implements A
{
public function Test($input){} // tipo omitido para $input
}

Permite-se uma vírgula no final de espaços de nomes agrupados

Uma vírgula agora pode ser adicionada ao final do grupo na sintaxe 'use' introduzida no PHP 7.0.

<?php

use Foo\Bar\{
Foo,
Bar,
Baz,
};

Suporte à função proc_nice() no Windows

A função proc_nice() agora é suportada no Windows.

Suporte à ordem de bytes nas funções pack() e unpack()

As funções pack() e unpack() agora suportam tipos 'float' e 'double' em ambas as ordens de bytes Little Endian e Big Endian.

Melhorias à extensão EXIF

A extensão EXIF foi atualizada para suportar uma faixa de formatos bem maior. Isto significa que suas etiquetas específicas de formatação agora são adequadamente traduzidas ao analisar imagens com a função exif_read_data(). Os formatos a seguir agora são suportados:

  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

As funções EXIF exif_read_data() e exif_thumbnail() agora suportam fluxos como seu primeiro argumento.

Novas funcionalidades em PCRE

  • O modificador J para configurar PCRE_DUPNAMES foi adicionado.

SQLite3 permite escrever BLOBs

SQLite3::openBlob() agora permite abrir campos BLOB fields em modo de escrita; anteriormente apenas leitura era suportada.

Chamadas TAF (Transparent Application Failover) do Oracle OCI8

Suporte às chamadas de Falha Transparente de Aplicação do Banco de Dados Oracle foi adicionado. TAF permite que aplicações OCI8 do PHP OCI8 se reconectem automaticamente a um banco de dados pré-configurado quando uma conexão é perdida. O novo suporte à chamada TAF permite que aplicações PHP monitorem e controlem a reconexão durante a falha.

Melhorias à extensão ZIP

Suporte foi adicionado a leitura e escrita de arquivos criptografados (requer libzip 1.2.0).

A classe ZipArchive agora implementa a interface Countable.

O fluxo zip:// agora aceita uma opção de contexto 'password'.


Novas funções

Núcleo do PHP

  • stream_isatty()
  • sapi_windows_vt100_support()

SPL

  • spl_object_id()

DOM

  • DomNodeList::count()
  • DOMNamedNodeMap::count()

FTP

  • ftp_append()

GD

  • imagesetclip()
  • imagegetclip()
  • imageopenpolygon()
  • imageresolution()
  • imagecreatefrombmp()
  • imagebmp()

Hash

  • hash_hmac_algos()

LDAP

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()

String multibyte

  • mb_chr()
  • mb_ord()
  • mb_scrub()

Oracle OCI8

  • oci_register_taf_callback()
  • oci_unregister_taf_callback()

Sockets

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Sodium

  • sodium_add()
  • sodium_bin2hex()
  • sodium_compare()
  • sodium_crypto_aead_aes256gcm_decrypt()
  • sodium_crypto_aead_aes256gcm_encrypt()
  • sodium_crypto_aead_aes256gcm_is_available()
  • sodium_crypto_aead_aes256gcm_keygen()
  • sodium_crypto_aead_chacha20poly1305_decrypt()
  • sodium_crypto_aead_chacha20poly1305_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen()
  • sodium_crypto_aead_chacha20poly1305_keygen()
  • sodium_crypto_auth_keygen()
  • sodium_crypto_auth_verify()
  • sodium_crypto_auth()
  • sodium_crypto_box_keypair_from_secretkey_and_publickey()
  • sodium_crypto_box_keypair()
  • sodium_crypto_box_open()
  • sodium_crypto_box_publickey_from_secretkey()
  • sodium_crypto_box_publickey()
  • sodium_crypto_box_seal_open()
  • sodium_crypto_box_seal()
  • sodium_crypto_box_secretkey()
  • sodium_crypto_box_seed_keypair()
  • sodium_crypto_box()
  • sodium_crypto_generichash_final()
  • sodium_crypto_generichash_init()
  • sodium_crypto_generichash_keygen()
  • sodium_crypto_generichash_update()
  • sodium_crypto_generichash()
  • sodium_crypto_kdf_derive_from_key()
  • sodium_crypto_kdf_keygen()
  • sodium_crypto_kx_client_session_keys()
  • sodium_crypto_kx_keypair()
  • sodium_crypto_kx_publickey()
  • sodium_crypto_kx_secretkey()
  • sodium_crypto_kx_seed_keypair()
  • sodium_crypto_kx_server_session_keys()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str()
  • sodium_crypto_pwhash_scryptsalsa208sha256()
  • sodium_crypto_pwhash_str_verify()
  • sodium_crypto_pwhash_str()
  • sodium_crypto_pwhash()
  • sodium_crypto_scalarmult_base()
  • sodium_crypto_scalarmult()
  • sodium_crypto_secretbox_keygen()
  • sodium_crypto_secretbox_open()
  • sodium_crypto_secretbox()
  • sodium_crypto_shorthash_keygen()
  • sodium_crypto_shorthash()
  • sodium_crypto_sign_detached()
  • sodium_crypto_sign_ed25519_pk_to_curve25519()
  • sodium_crypto_sign_ed25519_sk_to_curve25519()
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey()
  • sodium_crypto_sign_keypair()
  • sodium_crypto_sign_open()
  • sodium_crypto_sign_publickey_from_secretkey()
  • sodium_crypto_sign_publickey()
  • sodium_crypto_sign_secretkey()
  • sodium_crypto_sign_seed_keypair()
  • sodium_crypto_sign_verify_detached()
  • sodium_crypto_sign()
  • sodium_crypto_stream_keygen()
  • sodium_crypto_stream_xor()
  • sodium_crypto_stream()
  • sodium_hex2bin()
  • sodium_increment()
  • sodium_memcmp()
  • sodium_memzero()
  • sodium_pad()
  • sodium_unpad()

ZIP

  • ZipArchive::count()
  • ZipArchive::setEncryptionName()
  • ZipArchive::setEncryptionIndex()


Novas constantes globais

Núcleo do PHP

  • PHP_FLOAT_DIG
  • PHP_FLOAT_EPSILON
  • PHP_FLOAT_MIN
  • PHP_FLOAT_MAX
  • PHP_OS_FAMILY

Informação de Arquivos

  • FILEINFO_EXTENSION

JSON

  • JSON_INVALID_UTF8_IGNORE
  • JSON_INVALID_UTF8_SUBSTITUTE

GD

  • IMG_EFFECT_MULTIPLY
  • IMG_BMP

LDAP

  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Hash de Senhas

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

PCRE

  • PREG_UNMATCHED_AS_NULL

PDO

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

Sodium

  • SODIUM_LIBRARY_VERSION
  • SODIUM_LIBRARY_MAJOR_VERSION
  • SODIUM_LIBRARY_MINOR_VERSION
  • SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES
  • SODIUM_CRYPTO_AUTH_BYTES
  • SODIUM_CRYPTO_AUTH_KEYBYTES
  • SODIUM_CRYPTO_BOX_SEALBYTES
  • SODIUM_CRYPTO_BOX_SECRETKEYBYTES
  • SODIUM_CRYPTO_BOX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_BOX_KEYPAIRBYTES
  • SODIUM_CRYPTO_BOX_MACBYTES
  • SODIUM_CRYPTO_BOX_NONCEBYTES
  • SODIUM_CRYPTO_BOX_SEEDBYTES
  • SODIUM_CRYPTO_KDF_BYTES_MIN
  • SODIUM_CRYPTO_KDF_BYTES_MAX
  • SODIUM_CRYPTO_KDF_CONTEXTBYTES
  • SODIUM_CRYPTO_KDF_KEYBYTES
  • SODIUM_CRYPTO_KX_SEEDBYTES
  • SODIUM_CRYPTO_KX_SESSIONKEYBYTES
  • SODIUM_CRYPTO_KX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_KX_SECRETKEYBYTES
  • SODIUM_CRYPTO_KX_KEYPAIRBYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MAX
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX
  • SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13
  • SODIUM_CRYPTO_PWHASH_ALG_DEFAULT
  • SODIUM_CRYPTO_PWHASH_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_SCALARMULT_BYTES
  • SODIUM_CRYPTO_SCALARMULT_SCALARBYTES
  • SODIUM_CRYPTO_SHORTHASH_BYTES
  • SODIUM_CRYPTO_SHORTHASH_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_MACBYTES
  • SODIUM_CRYPTO_SECRETBOX_NONCEBYTES
  • SODIUM_CRYPTO_SIGN_BYTES
  • SODIUM_CRYPTO_SIGN_SEEDBYTES
  • SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES
  • SODIUM_CRYPTO_SIGN_SECRETKEYBYTES
  • SODIUM_CRYPTO_SIGN_KEYPAIRBYTES
  • SODIUM_CRYPTO_STREAM_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_KEYBYTES

Zip

  • ZipArchive::EM_NONE
  • ZipArchive::EM_AES_128
  • ZipArchive::EM_AES_192
  • ZipArchive::EM_AES_256


Alterações incompatíveis com versões anteriores

A função number_format() não retorna mais o valor zero negativo

Anteriormente, era possível que a função number_format() retornasse -0. Apesar de isto ser perfeitamente válido de acordo com a especificação de ponto flutuante IEEE 754, esta particularidade não era desejável para mostrar números formatados de uma forma legível.

<?php

var_dump(number_format(-0.01)); // now outputs string(1) "0" instead of string(2) "-0"

Converte chaves numéricas durante conversões de objetos e arrays

Chaves númericas agora são melhor manipuladas ao converter arrays para objetos e objetos para arrays (conversão explícita ou pela função settype()).

Isto siginifica que chaves de números inteiros (ou de strings numéricas) de arrays sendo convertidos para objetos agora são acessíveis:

<?php

// array to object
$arr = [0 => 1];
$obj = (object)$arr;
var_dump(
$obj,
$obj->{'0'}, // agora acessível
$obj->{0} // agora acessível
);

O exemplo acima produzirá:

object(stdClass)#1 (1) {
  ["0"]=>    // agora chave string, ao invés de número inteiro
  int(1)
}
int(1)
int(1)

E chaves de números inteiros (ou de strings numéricas) de objetos sendo convertidos para arrays agora são acessíveis:

<?php

// object to array
$obj = new class {
public function __construct()
{
$this->{0} = 1;
}
};
$arr = (array)$obj;
var_dump(
$arr,
$arr[0], // agora acessível
$arr['0'] // agora acessível
);

O exemplo acima produzirá:

array(1) {
  [0]=>    // agora chave de número inteiro, ao invés de string
  int(1)
}
int(1)
int(1)

Não é permitido passar null para get_class()

Anteriormente, passar null para a função get_class() mostraria o nome da classe de onde a função foi chamada. Este comportamento agora foi removido, e um alerta E_WARNING será emitido. Para obter o mesmo comportamento anterior, o argumento deve simplesmente ser omitido.

Alerta ao contar tipos não contáveis

Um alerta E_WARNING agora será emitido ao se tentar usar a função count() em tipos não contáveis (isto inclui o apelido sizeof()).

<?php

var_dump(
count(null), // NULL não é contável
count(1), // inteiros não são contáveis
count('abc'), // strings não são contáveis
count(new stdClass), // objetos que não implementam a interface Countable não são contáveis
count([1,2]) // arrays são contáveis
);

O exemplo acima produzirá:

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
int(0)
int(1)
int(1)
int(1)
int(2)

ext/hash foi movido de recurso para objeto

Como parte da migração de longo prazo, a extensão Hash foi atualizada para utilizar objetos ao invés de recursos. A alteração deve ser transparente para desenvolvedores PHP, exceto onde houver a função is_resource() (que precisará ser atualizado para is_object()).

Melhoria nos padrões SSL/TLS

As seguinte alterações aos padrões foram feitas:

  • tls:// agora tem os padrões TLSv1.0 ou TLSv1.1 ou TLSv1.2
  • ssl:// é um apelido para tls://
  • Constantes STREAM_CRYPTO_METHOD_TLS_* têm os padrões TLSv1.0 ou TLSv1.1 + TLSv1.2, ao invés de somente TLSv1.0

Valor de retorno de gettype() em recursos fechados

Anteriormente, usar gettype() em um recurso fechado retornaria uma string "unknown type". Agora, uma string "resource (closed)" será retornada.

is_object() e __PHP_Incomplete_Class

Anteriormente, usar is_object() na classe __PHP_Incomplete_Class retornaria false. Agora, true será retornado.

Promoção do nível de erro de constantes indefinidas

Referências não qualificadas a constantes indefinidas agora irão gerar um E_WARNING (ao invés de um E_NOTICE). Não próxima versão maior do PHP, elas irão gerar exceções Error.

Suporte ao Windows

As versões mínimas do Windows oficialmente suportadas são agora Windows 7 e Windows Server 2008 R2.

Verificações nos valores padrões de propriedades de traits

Verificações de compatibilidade em valores padrões de propriedades de traits não irão mais realizar conversões.

object para nomes de classe

O nome object era fracamente reservado no PHP 7.0. Agora é estritamente reservados, e é proibido usá-lo como nome de classe, trait ou interface.

Suporte a NetWare

O suporte a NetWare agora foi removido.

array_unique() com SORT_STRING

Enquanto array_unique() com SORT_STRING anteriormente copiava o array e removia elementos não únicos (sem empactotar o array depois), agora o novo array é construído com a adição dos elementos únicos. Isto pode resultar em índices numéricos diferentes.

Alterações em bcmod() com números do tipo float

A função bcmod() não trunca mais números fracionários para inteiros. Assim sendo, seu comportamento agora segue o da função fmod(), ao invés do operador %. Por exemplo, bcmod('4', '3.5') agora retorna 0.5 ao invés de 1.

Funções de hash e hashes não criptográficos

As funções hash_hmac(), hash_hmac_file(), hash_pbkdf2() e hash_init() (com HASH_HMAC) não aceitam mais hashes não criptográficas.

Opções da função json_decode()

A opção da função json_decode(), JSON_OBJECT_AS_ARRAY, agora é usada se o segundo parâmetro (assoc) for null. Anteriormente, JSON_OBJECT_AS_ARRAY era sempre ignorado.

Saída de rand() e mt_rand()

Sequências geradas por rand() e mt_rand() para uma semente específica podem ser diferentes do PHP 7.1 em máquinas de 64 bits (devido à correção de um problema de polarização de resto de divisão na implementação).

Remoção da condifuração ini sql.safe_mode

A configuração ini sql.safe_mode agora foi removida.

Alterações nas funções date_parse() e date_parse_from_format()

O elemento zone do array retornado pelas funções date_parse() e date_parse_from_format() representa segundos ao invés de minutos agora, e seu sinal está invertido. Por exemplo, -120 é agora 7200.

Cookies Recebidos

A partir do PHP 7.2.34, os nomes de cookies recebidos não são mais decodificados como url por questões de segurança.


Recursos defasados na versão PHP 7.2.x

Strings sem aspas

Strings sem aspas que não são constantes globais são consideradas strings delas mesmas. Este comportamento costumava emitir um E_NOTICE, mas agora irá emitir um E_WARNING. Na próxima versão maior do PHP, uma exceção Error será lançada no lugar.

<?php

var_dump(NONEXISTENT);

/* Output:
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d
string(11) "NONEXISTENT"
*/

png2wbmp() e jpeg2wbmp()

As funções png2wbmp() e jpeg2wbmp() da extensão GD foram descontinuadas e serão removidas na próxima versão maior do PHP.

INTL_IDNA_VARIANT_2003 variante

A extensão Intl descontinuou a variante INTL_IDNA_VARIANT_2003, que está sendo usada atualmente como padrão para idn_to_ascii() e idn_to_utf8(). PHP 7.4 irá mudar esses padrões para INTL_IDNA_VARIANT_UTS46, e a próxima versão maior do PHP irá remover INTL_IDNA_VARIANT_2003 completamente.

__autoload() metódo

O método __autoload() foi descontinuado porque é inferior ao spl_autoload_register() (devido a não ser permitido encadear autoloaders), e não há interoperabilidade entre os dois estilos de autoloading.

Configuração ini track_errors e variável $php_errormsg

Quando a configuração ini track_errors está ativada, uma variável $php_errormsg é criada no escopo local quando um erro não fatal ocorre. Dado que a maneira preferida de recuperar tais informações de erro é usando error_get_last(), este recurso foi descontinuado.

create_function() function

Dado os problemas de segurança desta função (sendo um wrapper ao redor de eval()), esta função datada foi descontinuada. A alternativa preferida é o uso de funções anônimas.

Configuração ini mbstring.func_overload

Dado os problemas de interoperabilidade das funções baseadas em string sendo usadas em ambientes com esta configuração ativada, ela será despreciada.

Conversão (unset)

Convertendo qualquer expressão para este tipo sempre resultará em null, e então esta conversão de tipo supérflua foi descontinuada.

parse_str() sem um segundo argumento

Sem o segundo argumento para parse_str(), os parâmetros de string de consulta preenchiam a tabela de símbolos local. Dado as implicações de segurança disto, usar parse_str() sem um segundo parâmetro foi descontinuado. A função deve sempre ser usada com dois argumentos, como o segundo argumento faz com que a string de consulta seja analisada em um array.

Função gmp_random()

Esta função gera um número aleatório baseado em um intervalo calculado por um tamanho de membro específico da plataforma não exposto. Por isso, esta função foi descontinuada. A maneira preferida de gerar um número aleatório usando a extensão GMP é com gmp_random_bits() e gmp_random_range().

Função each()

Esta função é muito mais lenta na iteração do que um foreach normal, e causa problemas de implementações para algumas mudanças da linguagem. Portanto, ela foi descontinuada.

assert() com um argumento string

Usar assert() com um argumento string requer que a string seja passada para eval(). Dado o potencial para a execução de código remoto, usar assert() com um argumento string foi descontinuado em favor de usar expressões booleanas.

$errcontext argumento para manipuladores de erros

O argumento $errcontext contém todas as variáveis locais de erro do site. Dado a raridade do uso, e os problemas causados com as otimizações internas, ele foi descontinuado. Ao invés disto, um debugger deve ser usado para recuperar informações nas variáveis locais de erro do site.

Função read_exif_data()

O atalho read_exif_data() foi descontinuado. A função exif_read_data() deve ser usada no lugar.


Outras alterações

Localização de utf8_encode() e utf8_decode()

As funções utf8_encode() e utf8_decode() foram movidas para a extensão padrão como funções string, anteriormente a extensão XML era requerida para que elas estivessem disponíveis.

Alterações a mail() e mb_send_mail()

O parâmetro $additional_headers parameter de mail() e mb_send_mail() agora aceita um array ao invés de uma string.

Suporte a LMDB

A extensão DBA agora tem suporte a LMDB.

Alterações ao sistema de construção do PHP

  • Unix: Autoconf 2.64 ou superior agora é requirido para construir o PHP.
  • Unix: o argumento de configuração --with-pdo-oci não precisa mais do número da versão do Oracle Instant Client.
  • Unix: o argumento de configuração--enable-gd-native-ttf foi removido. Não era usado desde o PHP 5.5.0.
  • Windows: o argumento de configuração--with-config-profile foi adicionado. Ele pode ser usado para salvar perfis de configuração específicos, bem parecido com o arquivo mágico config.nice.bat.

Alterações à extensão GD

  • imageantialias() agora também está disponível se compilada com uma biblioteca libgd de sistema.
  • imagegd() armazena imagens truecolor como verdadeiras imagens truecolor. Anteriormente, elas eram convertidas para palette.

Movendo MCrypt para PECL

A extensão MCrypt agora foi movida de dentro do núcleo do PHP para a PECL. Dado que a biblioteca mcrypt não tem visto nenhuma atualização desde 2007, seu uso é altamente desencorajado. Ao invés dela, as extensões OpenSSL ou Sodium podem ser usadas.

session_module_name()

Passar "user" para a função session_module_name() agora emite um erro de nível E_RECOVERABLE_ERROR. Anteriormente, isto era silenciosamente ignorado.


Migrando do PHP 7.0.x para o PHP 7.1.x

Índice

  • Novas funcionalidades
  • Novas funções
  • Novas constantes globais
  • Alterações incompatíveis com versões anteriores
  • Funcionalidades descontinuadas no PHP 7.1.x
  • Funções alteradas
  • Outras alterações
  • Suporte ao Windows

Esta nova versão menor traz vários novos recursos e algumas incompatibilidades que devem ser testadas antes da atualização de versões do PHP em ambientes de produção.

Veja também os guias de migração das versões do PHP 7.0.x.


Novas funcionalidades

Tipos anuláveis

Declarações de tipo para parâmetros e valores de retorno agora podem ser marcados como anuláveis, prefixando-se o nome do tipo com um ponto de interrogação. Isto significa que assim como o tipo especificado, null também pode ser passado como argumento, ou retornado como um valor, respectivamente.

<?php

function testReturn(): ?string
{
return 'elePHPant';
}

var_dump(testReturn());

function testReturn(): ?string
{
return null;
}

var_dump(testReturn());

function test(?string $name)
{
var_dump($name);
}

test('elePHPant');
test(null);
test();

O exemplo acima produzirá:

string(10) "elePHPant"
NULL
string(10) "elePHPant"
NULL
Uncaught Error: Too few arguments to function test(), 0 passed in...

Funções void

Um tipo de retorno void foi introduzido. Funções declaradas com void como seu tipo de retorno precisam omitir totalmente a instrução de retorno, ou usar uma instrução de retorno vazia. null não é um valor de retorno válido para uma função void.

<?php
function swap(&$left, &$right): void
{
if ($left === $right) {
return;
}

$tmp = $left;
$left = $right;
$right = $tmp;
}

$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);

O exemplo acima produzirá:

null
int(2)
int(1)

Tentar usar um valor de retorno de uma função void simplesmente é avaliado como null, sem alertas emitidos. A razão para isso é que alertas implicariam no uso de funções would implicate the use of funções genéricas de ordem superior.

Desestruturação simétrica de array

A sintaxe curta de array ([]) agora pode ser usada para desestruturar arrays para atribuições (incluindo dentro de foreach), como uma alternativa para a sintaxe list() existente, o que ainda é suportado.

<?php
$data = [
[1, 'Tom'],
[2, 'Fred'],
];

// estilo list()
list($id1, $name1) = $data[0];

// estilo []
[$id1, $name1] = $data[0];

// estilo list()
foreach ($data as list($id, $name)) {
// lógica aqui com $id e $name
}

// estilo []
foreach ($data as [$id, $name]) {
// lógica aqui com $id e $name
}

Visibilidade de constante de classe

Foi adicionado suporte para especificação de visibilidade de constantes de classe.

<?php
class ConstDemo
{
const PUBLIC_CONST_A = 1;
public const PUBLIC_CONST_B = 2;
protected const PROTECTED_CONST = 3;
private const PRIVATE_CONST = 4;
}

Pseudo-tipo iterable

Um novo pseudo-tipo (similar a callable) chamado iterable (iterável) foi introduzido. Pode ser usado em tipos de parâmetros e valores de retorno, onde aceita tanto arrays quanto objetos que implementam a interface Traversable. Com respeito à sub-tipagem, tipos de parâmetros de classes filhas podem ampliar uma declaração de classe pai de um array ou Traversable para um iterable. Com tipos de retorno, classes filhas podem estreitar um tipo de retorno da classe pai de iterable para array ou um objeto que implemente Traversable.

<?php
function iterator(iterable $iter)
{
foreach ($iter as $val) {
//
}
}

Manipulação de exceção com multi-captura

Exceções múltiplas por bloco de captura podem agora ser especificadas usando o caractere de barra vertical (|). Isto é útil para quando exceções diferentes de hierarquias de classe diferentes são manipuladas ao mesmo tempo.

<?php
try {
// algum código
} catch (FirstException | SecondException $e) {
// manipula a primeira e a segunda exceções
}

Suporte para chaves em list()

Agora pode-se especificar chaves na função list(), ou sua nova sintaxe curta []. Isto habilita desestruturação de arrays com chaves não inteiras ou não sequenciais.

<?php
$data = [
["id" => 1, "name" => 'Tom'],
["id" => 2, "name" => 'Fred'],
];

// estilo list()
list("id" => $id1, "name" => $name1) = $data[0];

// estilo []
["id" => $id1, "name" => $name1] = $data[0];

// estilo list()
foreach ($data as list("id" => $id, "name" => $name)) {
// lógica aqui com $id e $name
}

// estilo []
foreach ($data as ["id" => $id, "name" => $name]) {
// lógica aqui com $id e $name
}

Suporte a deslocamento negativo em string

Suporte a deslocamentos de string negativos foi adicionado às funções de manipulação de string que aceitam deslocamentos, assim como para indexação de string com [] ou {}. Nestes casos, um deslocamento negativo é interpretado como sendo um deslocamento a partir do final da string.

<?php
var_dump("abcdef"[-2]);
var_dump(strpos("aabbcc", "b", -3));

O exemplo acima produzirá:

string (1) "e"
int(3)

Deslocamento negativo de string e array agora também é suportado na sintaxe avaliativa simples de variáveis dentro de strings.

<?php
$string = 'bar';
echo "O último caractere de '$string' é '$string[-1]'.\n";
?>

O exemplo acima produzirá:

O último caractere de 'bar' é 'r'.

Suporte a AEAD em ext/openssl

Suporte para AEAD (modos GCM e CCM) foi adicionado através da extensão das funções openssl_encrypt() e openssl_decrypt() com parâmetros adicionais.

Conversão de chamáveis para Closures com Closure::fromCallable()

Um novo método estático foi introduzido à classe Closure para permitir que objetos do tipo callable sejam facilmente convertidos em objetos da classe Closure.

<?php
class Test
{
public function exposeFunction()
{
return Closure::fromCallable([$this, 'privateFunction']);
}

private function privateFunction($param)
{
var_dump($param);
}
}

$privFunc = (new Test)->exposeFunction();
$privFunc('algum valor');

O exemplo acima produzirá:

string(11) "algum valor"

Manipulação assíncrona de sinal

Uma nova função chamada pcntl_async_signals() foi introduzida para habilitar manipulação assíncrona de sinal sem usar ticks (que introduzem muita sobrecarga).

<?php
pcntl_async_signals(true); // liga sinais assíncronos

pcntl_signal(SIGHUP, function($sig) {
echo "SIGHUP\n";
});

posix_kill(posix_getpid(), SIGHUP);

O exemplo acima produzirá:

SIGHUP

Suporte a push de servidor HTTP/2 em ext/curl

Support a push de servidor foi adicionado à extensão CURL (requer versão 7.46 e superior). Isto pode ser aproveitado pela função curl_multi_setopt() com a nova constante CURLMOPT_PUSHFUNCTION. As constantes CURL_PUSH_OK e CURL_PUSH_DENY também foram adicionadas de forma que a execução da chamada de push do servidor possa ser tanto aprovada quanto negada.

Opções de Contexto de Fluxo

A opção de contexto de fluxo tcp_nodelay foi adicionada.


Novas funções

Núcleo do PHP

  • sapi_windows_cp_get()
  • sapi_windows_cp_set()
  • sapi_windows_cp_conv()
  • sapi_windows_cp_is_utf8()

Funções Anônimas

  • Closure::fromCallable()

CURL

  • curl_multi_errno()
  • curl_share_errno()
  • curl_share_strerror()

OpenSSL

  • openssl_get_curve_names()

Sessões

  • session_create_id()
  • session_gc()

SPL

  • is_iterable()

PCNTL

  • pcntl_async_signals()
  • pcntl_signal_get_handler()


Novas constantes globais

Constantes Predefinidas do Núcleo

  • PHP_FD_SETSIZE

CURL

  • CURLMOPT_PUSHFUNCTION
  • CURL_PUSH_OK
  • CURL_PUSH_DENY

Filtro de Dados

  • FILTER_FLAG_EMAIL_UNICODE

Processamento de Imagem e GD

  • IMAGETYPE_WEBP

JSON

  • JSON_UNESCAPED_LINE_TERMINATORS

LDAP

  • LDAP_OPT_X_SASL_NOCANON
  • LDAP_OPT_X_SASL_USERNAME
  • LDAP_OPT_X_TLS_CACERTDIR
  • LDAP_OPT_X_TLS_CACERTFILE
  • LDAP_OPT_X_TLS_CERTFILE
  • LDAP_OPT_X_TLS_CIPHER_SUITE
  • LDAP_OPT_X_TLS_KEYFILE
  • LDAP_OPT_X_TLS_RANDOM_FILE
  • LDAP_OPT_X_TLS_CRLCHECK
  • LDAP_OPT_X_TLS_CRL_NONE
  • LDAP_OPT_X_TLS_CRL_PEER
  • LDAP_OPT_X_TLS_CRL_ALL
  • LDAP_OPT_X_TLS_DHFILE
  • LDAP_OPT_X_TLS_CRLFILE
  • LDAP_OPT_X_TLS_PROTOCOL_MIN
  • LDAP_OPT_X_TLS_PROTOCOL_SSL2
  • LDAP_OPT_X_TLS_PROTOCOL_SSL3
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_0
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_1
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_2
  • LDAP_OPT_X_TLS_PACKAGE
  • LDAP_OPT_X_KEEPALIVE_IDLE
  • LDAP_OPT_X_KEEPALIVE_PROBES
  • LDAP_OPT_X_KEEPALIVE_INTERVAL

PostgreSQL

  • PGSQL_NOTICE_LAST
  • PGSQL_NOTICE_ALL
  • PGSQL_NOTICE_CLEAR

SPL

  • MT_RAND_PHP


Alterações incompatíveis com versões anteriores

Lançamento de exceção ao passar menos argumentos do que uma função espera

Anterioremente, um alerta seria emitido ao chamar funções definidas pelo usuário com parâmetros insuficientes. Agora, este alerta foi promovido a uma exceção da classe Error. Esta alteração aplica-se somente a funções definidas pelo usuário, e não a funções internas. Por exemplo:

<?php
function test($param){}
test();

O exemplo acima produzirá algo semelhante a:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function test(), 0 passed in %s on line %d and exactly 1 expected in %s:%d

Proibição de chamadas dinâmicas de funções de introspecção de escopo

Chamadas dinâmicas para certas funções estão proibidas (na forma de $func() ou array_map('extract', ...), etc). Estas funções inspecionam ou modificam outro escopo, e apresentam comportamento ambíguo e não confiável. Estas funções são as seguintes:

  • assert() - com uma string como o primeiro argumento
  • compact()
  • extract()
  • func_get_args()
  • func_get_arg()
  • func_num_args()
  • get_defined_vars()
  • mb_parse_str() - com um argumento
  • parse_str() - com um argumento
<?php
(function () {
$func = 'func_num_args';
$func();
})();

O exemplo acima produzirá:

Warning: Cannot call func_num_args() dynamically in %s on line %d

Nomes inválidos de class, interface e trait

Os nomes a seguir não podem ser usados para dar nome a classes, interfaces ou traits:

  • void
  • iterable

Conversão de string numérica agora respeita notação científica

Operacões de números inteiros e conversões de strings numéricas agora respeitam
a notação científica. Isto também inclui a operação de conversão (int),
e as seguintes funções: intval() (onde
a base é 10), settype(), decbin(),
decoct() e dechex().

Correções ao algoritmo da função mt_rand()

mt_rand() agora usa por padrão a versão fixa do algoritmo Mersenne Twister. Se exsite dependência de uma saída determinística de mt_rand(), MT_RAND_PHP pode ser usada como segundo parâmetro opcional para que mt_srand() preserve a implementação antiga (incorreta).

rand() aliased to mt_rand() and srand() aliased to mt_srand()

rand() e srand() agora são apelidos para mt_rand() e mt_srand(), respectivamente. Isto significa que a saída das funções a seguir foi alterada: rand(), shuffle(), str_shuffle() e array_rand().

Não permitir o caractere de controle 'delete' ASCII em identificadores

O caractere de controle 'delete' ASCII (0x7F) não pode mais ser usado em identificadores que não estejam entre aspas.

Alterações em error_log com o valor syslog

Se a configuração ini error_log for definida para syslog, os níveis de erro do PHP são mapeados para os níveis de erro dos registros do sistema. Isto traz uma diferenciação mais fina nos registros de erros ao contrário da abordagem anterior onde todos os erros eram registrados somente com o nível de erro de aviso.

Destruidores não são mais chamados em objetos incompletos

Destruidores agora não são mais chamados para objetos que lançam uma exceção durante a execução do seu construtor. Em versões anteriores, este comportamento dependia se o objeto era referenciado fora do construtor (ex.: por um rastreamento de exceção).

call_user_func() lidando com argumentos por referência

call_user_func() agora sempre irá gerar um alerta em chamadas a funções que esperam referências como argumentos. Anteriormente isto dependia se a chamada era totalmente qualificada.

Adicionalmente, call_user_func() e call_user_func_array() não mais irão abortar a chamada à função neste caso. O alerta de "referência esperada" será emitido, mas a chamada irá proceder normalmente.

O operador de índice vazio não é mais suportado para strings

Aplicar o operador de índice vazio para uma string (ex.: $str[] = $x) lança um erro fatal ao invés de converter a string silenciosamente para um array.

Atribuição via acesso ao índice de string em uma string vazia

Modificação de string por caractere em uma string vazia agora funciona como para strings não vazias, isto é, escrever em um deslocamento fora dos limites preenche a string com espaços à esquerda, onde tipos não inteiros são convertidos para inteiros, e apenas o primeiro caractere da string atribuída é usado. Anteriormente, strings vazias eram silenciosamente tratadas como um array vazio.

<?php
$a = '';
$a[10] = 'foo';
var_dump($a);
?>

Saída do exemplo acima no PHP 7.0:

array(1) {
  [10]=>
  string(3) "foo"
}

Saída do exemplo acima no PHP 7.1:

string(11) "          f"

Diretivas ini removidas

As seguintes diretivas ini foram removidas:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

Alterado o ordenamento de array quando elementos são criados automaticamente durante atribuições por referência

A ordem dos elementos em um array foi alterada quando esses elementos tiverem sido criados automaticamente através de uma atribuição por referência. Por exemplo:

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Saída do exemplo acima no PHP 7.0:

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

Saída do exemplo acima no PHP 7.1:

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

Ordenação de elementos iguais

O algoritmo interno de ordenação foi melhorado, o que pode resultar em uma ordem diferente de elementos, que se comparam como iguais.

Nota:

Não deve-se confiar na ordem dos elementos que se comparam como iguais; ela pode mudar a qualquer momento.

Mensagem de erros do tipo E_RECOVERABLE

A mensagem de erro para o tipo E_RECOVERABLE foi alterada de "Catchable fatal error" (erro fatal capturável) para "Recoverable fatal error" (erro fatal recuperável).

Parâmetro $options da função unserialize()

O elemento allowed_classes do parâmetro $options da função unserialize() agora é estritamente tipada, isto é, se algo além de um array ou um bool for fornecido, unserialize() retorna false e emite um E_WARNING.

Construtor DateTime incorpora microssegundos

DateTime e DateTimeImmutable agora incorportam adequadamente microssegundos quando construídos com o horário atual, tanto explicitamente quanto com uma string relativa (ex.: "first day of next month"). Isto significa que as comparações nativas de duas novas instâncias criadas agora irão muito provavelmente retornar false ao invés de true:

<?php
new DateTime() == new DateTime();
?>

Conversões de erros fatais para exceções Error

Na extensão Date, dados de serialização inválidos para as classes DateTime ou DatePeriod, ou falha de inicialização de fuso horário a partir de dados serializados, agora irão lançar uma exceção Error pelos métodos __wakeup() ou __set_state(), ao invés de resultar em um erro fatal.

Na extensão DBA, funções de modificação de dados (como dba_insert()) agora irão lançar uma exceção Error ao invés de disparar um erro fatal capturável se a chave não contiver exatamente dois elementos.

Na extensão DOM, esquema inválido ou contextos de validação RelaxNG agora irão lançar uma exceção Error ao invés de resultar em um erro fatal. Da mesma forma, a tentativa de registrar uma classe de nó que não estende a classe base apropriada, ou a tentativa de ler uma propriedade inválida ou de escrever em um propriedade somente-leitura, irão também lançar uma exceção Error.

Na extensão IMAP, endereços de e-mail maiores que 16385 bytes irão lançar uma exceção Error ao invés de resultar em um erro fatal.

Na extensão Intl, a falha ao chamar o construtor pai em uma classe que estende Collator antes de chamar os métodos da classe pai irão lançar uma exceção Error ao invés de resultar em um erro fatal recuperável. Além disso, clonar um objeto Transliterator agora irá lançar uma exceção Error na falha ao clonar o transliterador interno ao invés de resultar em um erro fatal.

Na extesão LDAP, fornecer um tipo de modificação desconhecido a ldap_batch_modify() agora irá lançar uma exceção Error ao invés de resultar em um erro fatal.

Na extensão mbstring, as funções mb_ereg() e mb_eregi() agora irão lançar uma exceção ParseError se uma expressão PHP inválida for fornecida e a opção 'e' for usada.

Na extensão Mcrypt, as funções mcrypt_encrypt() e mcrypt_decrypt() agora irão lançar uma exceção Error ao invés de resultar em um erro fatal se mcrypt não puder ser inicializada.

Na extensão mysqli, a tentativa de se ler uma propriedade inválida ou de escrever em uma propriedade somente-leitura irá agora lançar uma exceção Error ao invés de resultar em um erro fatal.

Na extensão Reflection, falha em receber um objeto de reflexão ou receber uma propriedade de objeto agora irá lançar uma exceção Error ao invés de resultar em um erro fatal.

Na extensão Session, manipuladores de sessão customizados que não retornem strings para IDs de sessão agora irão lançar uma exceção Error ao invés de resultar em um erro fatal quando uma função que deveria gerar um ID de sessão for chamada.

Na extensão SimpleXML, criar um atributo sem nome ou duplicado irá agora lançar uma exceção Error ao invés de resultar em um erro fatal.

Na extensão SPL, tentar clonar um objeto SplDirectory object agora irá lançar uma exceção Error ao invés de resultar em um erro fatal. Da mesma forma, chamar ArrayIterator::append() ao iterar sobre um objeto também irá lançar uma exceção Error.

Na extensão standard, a função assert(), quando alimentada por um argumento string como seu primeiro parâmetro, agora irá lançar uma exceção ParseError ao invés de resultar em um erro fatal recuperável se o código PHP for inválido. Da mesma forma, chamar forward_static_call() for de um escopo de classe agora irá lançar uma exceção Error.

Na extensão Tidy, criar um tidyNode manualmente agora irá lançar uma exceção Error ao invés de resultar em um erro fatal.

Na extensão WDDX, uma referência circular durante seralização agora irá lançar uma exceção Error ao invés de resultar em um erro fatal.

Na extensão XML-RPC, uma referência circular durante seralização agora irá lançar uma instância da exceção Error ao invés de resultar em um erro fatal.

Na extensão Zip, o método ZipArchive::addGlob() agora irá lançar uma exceção Error ao invés de resultar em um erro fatal se o suporte a glob não estiver disponível.

Variáveis ??vinculadas lexicamente não podem reutilizar nomes

Variáveis vinculadas a uma função anônima através do construtor de linguagem use não podem usar o mesmo nome de nenhuma das variáveis superglobals, $this, ou de qualquer parâmetro. Por exemplo, todas estas definições de funções irão resultar em um erro fatal:

<?php
$f = function () use ($_SERVER) {};
$f = function () use ($this) {};
$f = function ($param) use ($param) {};

Alteração no tipo do parâmetro de long2ip()

long2ip() agora espera um int ao invés de uma string.

Codificação e decodificação JSON

A configuração ini serialize_precision agora controla a precisão de serialização ao codificar valores do tipo float.

Decodificar uma chave vazia agora resulta em um nome de propriedade vazio, ao invés de _empty_ como nome de propriedade.

<?php
var_dump(json_decode(json_encode(['' => 1])));

O exemplo acima produzirá algo semelhante a:

object(stdClass)#1 (1) {
  [""]=>
  int(1)
}

A fornecer a opção JSON_UNESCAPED_UNICODE para json_encode(), as sequências U+2028 e U+2029 agora são escapadas.

Alteração na semântica de parâmetros de mb_ereg() e mb_eregi()

O terceiro parâmetro das funções mb_ereg() e mb_eregi() (regs) agora será definido para um array vazio se nada tiver sido correspondido. Anteriormente, o parâmetro não teria sido modificado.

Fim do suporte ao fluxo sslv2

O fluxo sslv2 agora foi removido do OpenSSL.

Proibição de "return;" para retornos tipados já em tempo de compilação

Instruções de retorno sem nenhum argumento em funções que declaram um tipo para o retorno agora disparam um erro do tipo E_COMPILE_ERROR (a menos que o tipo do retorno seja declarado como void), mesmo que a instrução de retorno nunca seja alcançada.


Funcionalidades descontinuadas no PHP 7.1.x

ext/mcrypt

A extensão mcrypt está abandonada por aproximadamente uma década agora, e sempre foi siginificativamente complexa de se usar. Tornou-se portanto defasada em favor do OpenSSL, e será removida do núcleo e inserida no PECL a partir do PHP 7.2.

Opção de avaliação para mb_ereg_replace() e mb_eregi_replace()

O modificador de padrão e tornou-se defasado para as funções mb_ereg_replace() e mb_eregi_replace().


Funções alteradas

Núcleo do PHP

  • getopt() tem um terceiro parâmetro opcional que expõe o índice do próximo elemento na lista de vetores de argumentos a serem processados. Isto é feito através de parâmetro por referência.
  • getenv() não mais requer um parâmetro. Se ele for omitido, as variáveis de ambiente atuais serão retornadas como um array associativo.
  • get_headers() agora tem um parâmetro adicional para habilitar a passagem de contextos de fluxo customizados.
  • output_reset_rewrite_vars() não mais redefine as variáveis de re-escrita da URL da sessão.
  • parse_url() agora é mais restritiva e suporta RFC3986.
  • unpack() agora aceita um terceiro parâmetro opcional para especificar um ponto de partida para iniciar o desempacotamento.

File System

  • file_get_contents() agora aceita um deslocamento negativo de pesquisa se o fluxo for do tipo pesquisável.
  • tempnam() agora emite um aviso quando retorna ao diretório temporário do sistema.

JSON

  • json_encode() agora aceita uma nova opção, JSON_UNESCAPED_LINE_TERMINATORS, para desabilitar o escape dos caracteres U+2028 e U+2029 quando JSON_UNESCAPED_UNICODE for fornecido..

Multibyte String

  • mb_ereg() agora rejeita sequências ilegais de bytes.
  • mb_ereg_replace() agora rejeita sequências ilegais de bytes.

PDO

  • PDO::lastInsertId() para PostgreSQL agora irá disparar um erro quando nextval não tiver sido chamada para a sessão atual (a conexão postgres).

PostgreSQL

  • pg_last_notice() agora aceita um parâmetro opcional para especificar uma operação. Isto pode ser feito com uma das novas constantes a seguir: PGSQL_NOTICE_LAST, PGSQL_NOTICE_ALL ou PGSQL_NOTICE_CLEAR.
  • pg_fetch_all() agora aceita um segundo parâmetro opcional para especificar o tipo de resultado (similar ao terceiro parâmetro de pg_fetch_array()).
  • pg_select() agora aceita um quarto parâmetro opcional para especificar o tipo de resultado (similar ao terceiro parâmetro de pg_fetch_array()).

Session

  • session_start() agora retorna false e não mais inicializa $_SESSION quando falha na inicialização da sessão.


Outras alterações

Avisos e alertas em aritmética com strings inválidas

Novos erros de nível E_WARNING e E_NOTICE foram introduzidos para quando strings inválidas forem convertidas à força usando operadores que esperam por números (+ - * / ** % << >> | & ^) ou seus equivalentes de atribuição. Um E_NOTICE é emitido quando a string começa com um valor numérico mas contém caracteres não numéricos no final, e um E_WARNING é emitido quando a string não contém um valor numérico.

<?php
'1b' + 'something';

O exemplo acima produzirá:

Notice: A non well formed numeric value encountered in %s on line %d
Warning: A non-numeric value encountered in %s on line %d

Alerta em sobrecarga de sequencia de escape octal

Anteriormente, sequencias de escape de string octal com 3 octetos iriam transbordar silenciosamente. Agora, eles ainda transbordam, mas um E_WARNING será emitido.

<?php
var_dump("\500");

O exemplo acima produzirá:

Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
string(1) "@"

Correções de inconsistências para $this

Mesmo que $this seja considerada uma variável especial no PHP, faltava a ela verificações adequadas para garantir que não fosse usada como nome de variável ou reatribuída. Isto agora foi retificado para garantir que $this não possa ser uma variável definida pelo usuário, não possa ser reatribuída a um valor diferente, e nem possa ser globalizada.

Geração de ID de sessão sem hash

IDs de sessão não irão mais sofrer hash em sua geração. Esta alteração também resulta na remoção destas quatro configurações ini:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

E na adição das duas configurações a seguir:

  • session.sid_length - define o comprimento do ID de sessão, com padrão de 32 caracteres para retro-compatibilidade)
  • session.sid_bits_per_character - define o número de bits armazenados por caractere (isto é, aumenta a faixa de caracteres que podem ser usados no ID de sessão), com padrão de 4 para retro-compatibilidade.

Alterações na manipulação de arquivo INI

precision

Se o valor for definido para -1, o dtoa modo 0 é usado. O padrão ainda é 14.

serialize_precision

Se o valor for definido para -1, o dtoa modo 0 é usado. O valor -1 agora é usado por padrão.

gd.jpeg_ignore_warning

O padrão desta configuração do php.ini foi alterado para 1, portanto por padrão os alertas da libjpeg são ignorados.

opcache.enable_cli

O padrão desta configuração do php.ini foi alterado para 1 (habilitado) no PHP 7.1.2, e de volta para 0 (desabilitado) no PHP 7.1.7.

Geração de ID de sessão com um CSPRNG somente

IDs de sessão agora serão gerados somente com um CSPRNG (gerador de número pseudo-randômico criptograficamente seguro).

Mensagens de TypeError mais informativas quando null é permitido

Exceções TypeError para varificações de tipo arg_info irão agora fornecer mensagens de erro mais informativas. Se o tipo do parâmetro ou do retorno aceitar null (por ter um valor padrão de null ou por ser um tipo anulável), o texto do erro agora mencionará isto com uma mensagem de "must be ... or null" ou "must ... or be null."


Suporte ao Windows

Suporte a caminhos longos e codificados em UTF-8

Se uma aplicação web for UTF-8, nenhuma ação adicional é necessária. Para aplicações que dependam de caminhos em codificações que não sejam UTF-8 para E/S, uma diretiva INI explícita precisa ser definida. A verificação de configuração INI para codificação é baseada na seguinte ordem:

  • internal_encoding
  • default_charset
  • zend.multibyte

Várias funções para manipulação de página de código foram introduzidas:

  • sapi_windows_cp_set() para definir a página de código padrão
  • sapi_windows_cp_get() para obter a página de código atual
  • sapi_windows_cp_is_utf8() para verificar se a página de código é UTF-8
  • sapi_windows_cp_conv() para converter entre páginas de código, usando assinatura compatível com iconv()

Estas funções são seguras para threads.

A página de códigos de saída do console é ajustada dependendo da codificação usada no PHP. Dependendo da página real de códigos OEM do sistema, a saída visível pode ou não estar correta. Por exemplo, no cmd.exe padrão e em um sistema com a página de códigos OEM 437, as saídas nas páginas de códigos 1251, 1252, 1253 e algumas outras podem ser mostradas corretamente ao usar UTF-8. No mesmo sistema, caracteres na página de códigos como 20932 provavelmente não serão mostrados corretamente. Isso se refere às regras específicas do sistema para página de código, compatibilidade de fontes e ao programa de console específico usado. O PHP define automaticamente a página de códigos do console de acordo com as regras de codificação do php.ini. Usar consoles alternativos em vez de cmd.exe diretamente pode trazer uma experiência melhor em alguns casos.

No entanto, esteja ciente de que a troca de página de código em tempo de execução após o início da solicitação pode trazer efeitos colaterais inesperados no CLI. A forma preferível é o php.ini. Quando o PHP CLI é usado em um emulador de console, que não suporta Unicode, isto pode ser necessário, para evitar a alteração da página de códigos do console. A melhor maneira de conseguir isso é definindo a codificação padrão ou interna para corresponder à página de códigos ANSI. Outro método é definir as diretivas INI output_encoding e input_encoding para a página de código necessária; nesse caso, entretanto, a diferença entre a página de código interna e de E/S provavelmente causará mojibake. Em casos raros, se o PHP falhar normalmente, a página de códigos original do console poderá não ser restaurada. Neste caso, o comando chcp pode ser usado para restaurá-lo manualmente.

Atenção especial para os sistemas DBCS - a mudança da página de código no tempo de execução usando ini_set() provavelmente causará problemas de exibição. A diferença para os sistemas não DBCS é que os caracteres estendidos exigem que duas células do console sejam exibidas. Em certos casos, apenas o mapeamento dos caracteres no conjunto de glifos da fonte poderia acontecer, sem nenhuma alteração real da fonte. Esta é a natureza dos sistemas DBCS, a maneira mais simples de evitar problemas de exibição é evitar o uso de ini_set() para a alteração da página de código.

Como resultado do suporte UTF-8 nos fluxos, os scripts PHP não estão mais limitados a nomes de arquivos ASCII ou ANSI. Isso é diretamente compatível com o CLI. Para outros SAPI, a documentação do servidor correspondente é útil.

O suporte a caminhos longos é transparente. Caminhos com mais de 260 bytes são automaticamente prefixados com \\?\. O comprimento máximo do caminho é limitado a 2.048 bytes. Esteja ciente de que o limite do segmento do caminho (comprimento do nome base) ainda persiste.

Para a melhor portabilidade, é altamente recomendável gerenciar nomes de arquivos, E/S e outros tópicos relacionados com UTF-8. Além disso, para aplicativos de console, o uso de uma fonte TrueType é preferível e o uso de ini_set() para a troca da página de códigos é desencorajado.

readline

A extensão readline é suportada através da » biblioteca WinEditLine. Assim, o shell CLI interativo é também é suportado (php.exe -a).

PHP_FCGI_CHILDREN

PHP_FCGI_CHILDREN agora é respeitado. Se esta variável de ambiente for definida, o primeiro processo php-cgi.exe executará o número especificado de filhos. Eles compartilharão o mesmo soquete TCP.

ftok()

Adicionado suporte para ftok()


Migrando do PHP 5.6.x para o PHP 7.0.x

Índice

  • Mudanças incompatíveis com versões anteriores
  • Novos Recursos
  • Recursos descontinuados no PHP 7.0.x
  • Funções alteradas
  • Novas funções
  • Novas Classes e Interfaces
  • Novas Constantes Globais
  • Modificações nos Módulos SAPI
  • Extensões e SAPIs removidas
  • Outras mudanças

Apesar do fato do PHP 7.0 ser uma nova versão principal, esforços foram feitos para que a migração seja feita da forma mais simples possível. Essa versão foca na remoção de funcionalidades descontinuadas em versões anteriores e na melhoria da consistência da linguagem.

Existem algumas incompatibilidades e novos recursos que devem ser considerados, e o código deve ser testado antes da atualização da versão do PHP em ambientes de produção.


Mudanças incompatíveis com versões anteriores

Modificações na manipulação de erros e exceções

Alguns erros fatais e recuperáveis foram convertidos para exceções no PHP 7. Estas exceções herdam a classe Error, que implementa a interface Throwable (a interface base que todas as exceções herdam).

Isso significa que manipuladores de erros podem não ser ativados porque exceções estão sendo disparadas em seu lugar (causando novos erros fatais por exceções Error não capturadas)

Uma descrição completa de como tratar erros no PHP 7 pode ser encontrada na página de erros do PHP 7. Este guia de migração irá enumerar apenas as mudanças compatíveis com versões anteriores.

set_exception_handler() não têm mais garantias de receber um objeto do tipo Exception.

Códigos que implementam um manipulador de exceção registrado com set_exception_handler() usando a declaração de tipo Exception causará um erro fatal quando um objeto Error for lançado.

Se o manipulador precisa trabalhar com o PHP 5 e 7, você deve remover a declaração de tipo do manipulador, enquanto que o código a migrar para funcionar exclusivamente no PHP 7, pode simplesmente trocar a declaração de tipo Exception por Throwable.

<?php
// Código da era PHP 5 que não irá funcionar.
function handler(Exception $e) { ... }
set_exception_handler('handler');

// Compatível com PHP 5 e 7.
function handler($e) { ... }

// Somente PHP 7.
function handler(Throwable $e) { ... }
?>

Construtores internos sempre lançarão exceções em caso de falha

Anteriormente, algumas classes internas retornavam null ou um objeto inútil quando o construtor falhava. Todas as classes internas agora lançam Exception neste caso, da mesma forma que classes de usuário já faziam.

Erros de Parse lançam exceções ParseError

Erros de Parser agora lançam um objeto ParseError. Manipular erros da função eval() devem incluir um bloco catch que possa manipular este erro.

Mudanças na severidade de notificações E_STRICT

Todas as notificações E_STRICT foram reclassificadas para outros níveis. A constante E_STRICT foi mantida, então chamar error_reporting(E_ALL|E_STRICT) não causará um erro.

Mudanças na severidade de notificações E_STRICT
Situação | Novo nível/Comportamento
Utilizar um recurso como índice | E_NOTICE
Métodos estáticos abstratos | Notificação removida, não dispara erro
"Redefinindo" um construtor | Notificação removida, não dispara erro
Assinatura incompatível durante a herança | E_WARNING
Mesmas propriedades(compatíveis) em duas traits utilizadas | Notificação removida, não dispara erro
Acessando propriedades estáticas de forma não estática | E_NOTICE
Somente variáveis devem ser ser atribuídas por referência | E_NOTICE
Somente variáveis devem ser passadas por referência | E_NOTICE
Chamando métodos não estáticos de forma estática | E_DEPRECATED

Mudanças na manipulação de variáveis

O PHP 7 utiliza uma sintaxe abstrata de árvore para analisar os arquivos fonte. Isso permitiu diversas melhorias para a linguagem que eram impossíveis devido a limitações no analisador utilizado em versões anteriores do PHP, porém resultou na remoção de alguns casos especiais por razões de consistência, que resulta em quebras de compatibilidades com versões anteriores. Esses casos são detalhados nesta seção.

Mudanças na manipulação indireta de variáveis, propriedades e métodos

Acessar indiretamente variáveis, propriedades, e métodos, agora serão avaliados estritamente da esquerda para a direita, o oposto dos casos especiais em versões anteriores. A tabela a seguir mostra como a ordem de avaliação mudou.

Nova e antiga avaliação de expressões indiretas
Expressão | Interpretação no PHP 5 | Interpretação no PHP 7
$$foo['bar']['baz'] | ${$foo['bar']['baz']} | ($$foo)['bar']['baz']
$foo->$bar['baz'] | $foo->{$bar['baz']} | ($foo->$bar)['baz']
$foo->$bar['baz']() | $foo->{$bar['baz']}() | ($foo->$bar)['baz']()
Foo::$bar['baz']() | Foo::{$bar['baz']}() | (Foo::$bar)['baz']()

Códigos que usam a ordem de avaliação da direita para esquerda devem ser reescritos para o uso explícito da ordem de avaliação com chaves (veja a coluna do meio). Isso fará com que o código seja compatível com versões posteriores ao PHP 7.x e compatível com o PHP 5.x.

Isso também afeta a palavra chave global. A sintaxe com chaves pode ser usada para emular o comportamento anterior se necessário:

<?php
function f() {
// Válido apenas no PHP 5.
global $$foo->bar;

// Válido no PHP 5 e 7.
global ${$foo->bar};
}
?>

Mudanças na manipulação com a função list()

A função list() não faz mais atribuições em ordem reversa

A função list() agora irá atribuir valores as variáveis na ordem em que foram definidas, em vez de ordem reversa. De modo geral, isso só afeta casos onde a função list() é utilizada em conjunção com o operador de array [], como mostrado a seguir:

<?php
list($a[], $a[], $a[]) = [1, 2, 3];
var_dump($a);
?>

Saída do exemplo acima no PHP 5:

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}

Saída do exemplo acima no PHP 7:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

De modo geral, é recomendo não confiar na ordem em que as atribuições com que a função list() ocorrem, como sua implementação detalha, isso pode mudar novamente no futuro.

Atribuições de list() vazias foram removidas

Chamadas a função list() não podem mais ser vazias. O que é visto a seguir não é mais permitido:

<?php
list() = $a;
list(,,) = $a;
list($x, list(), $y) = $a;
?>
A função list() não podem desempacotar strings

A função list() não podem mais desempacotar variáveis do tipo string. Em vez disso, a função str_split() deve ser usada.

A ordenação de arrays quando elementos são criados durante atribuições por referência mudou

A ordem dos elementos no array foi modificada quando estes elementos foram automaticamente criados por referenciação em uma atribuição por referência. Por exemplo:

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Saída do exemplo acima no PHP 5:

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

Saída do exemplo acima no PHP 7:

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

Parênteses em torno de parâmetros de função não afetam mais seu comportamento

No PHP 5, usar parênteses redundantes em torno de parâmetros de uma função podem disparar avisos de quebra de padrões quando os parâmetros da função fossem passados por referência. Agora, o aviso sempre será emitido.

<?php
function getArray() {
return [1, 2, 3];
}

function squareArray(array &$a) {
foreach ($a as &$v) {
$v **= 2;
}
}

// Generates a warning in PHP 7.
squareArray((getArray()));
?>

O exemplo acima produzirá:

Notice: Only variables should be passed by reference in /tmp/test.php on line 13

Mudanças no foreach

Pequenas mudanças foram feitas no modo como a estrutura de controle foreach se comporta, principalmente na manipulação do ponteiro interno do array e modificações no array sendo iterado.

foreach não modifica mais o ponteiro interno do array

Antes do PHP 7, o ponteiro interno do array era modificado enquanto o array era iterado usando o foreach. Este não é mais o caso, como mostrado nos exemplos a seguir:

<?php
$array = [0, 1, 2];
foreach ($array as &$val) {
var_dump(current($array));
}
?>

Saída do exemplo acima no PHP 5:

int(1)
int(2)
bool(false)

Saída do exemplo acima no PHP 7:

int(0)
int(0)
int(0)

foreach por valor opera em uma cópia do array

Quando usado no modo padrão, por valor, o foreach vai operar em uma cópia do array sendo iterado, ao invés do próprio array. Isso significa que mudanças feitas durante a iteração do array, não afetarão os valores iterados.

Melhora no comporatamento da iteração por referência com foreach

Quanto iterado por referencia, o foreach fará um melhor trabalho de controlar as alterações feitas ao array durante a iteração. Por exemplo, inclusões ao array enquanto iterado, agora resultam na inclusão de valores enquanto itera, como a seguir:

<?php
$array = [0];
foreach ($array as &$val) {
var_dump($val);
$array[1] = 1;
}
?>

Saída do exemplo acima no PHP 5:

int(0)

Saída do exemplo acima no PHP 7:

int(0)
int(1)

Iteração de objetos não Traversable

Iterar objetos não Traversable agora têm o mesmo comportamento que iterar arrays por referência. Isso resulta na melhora do comportamento quando houver modificações no array durante a iteração também aplicado quando propriedades são adicionadas ou removidas do objeto.

Mudança na manipulação do int

Octais literais inválidos

Antes, octais literais que continham números inválidos, eram silenciosamente truncados (0128 se tornaria 012). Agora, um octal literal inválido causará um erro de parse.

Deslocamento de bits negativos

Deslocamento de bits por números negativos agora lançarão uma exceção ArithmeticError:

<?php
var_dump(1 >> -1);
?>

Saída do exemplo acima no PHP 5:

int(0)

Saída do exemplo acima no PHP 7:

Fatal error: Uncaught ArithmeticError: Bit shift by negative number in /tmp/test.php:2
Stack trace:
#0 {main}
  thrown in /tmp/test.php on line 2

Deslocamentos de bits fora do limite

Deslocamentos de bits (em ambas direções), além do tamanho de bits de um int sempre resultará em 0. Antes, o comportamento do deslocamento dependia da arquitetura.

Mudanças na Divisão por Zero

Antes, quando 0 era usado como divisor tanto para a operador de divisão (/) quanto para o módulo, um E_WARNING era emitido e false era retornado. Agora, o operador de divisão retornará um float +INF, -INF ou NAN, conforme a especificação IEEE 754. O E_WARNING do operador módulo foi removido e irá lançar uma exceção DivisionByZeroError.

<?php
var_dump(3/0);
var_dump(0/0);
var_dump(0%0);
?>

Saída do exemplo acima no PHP 5:

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Saída do exemplo acima no PHP 7:

Warning: Division by zero in %s on line %d
float(INF)

Warning: Division by zero in %s on line %d
float(NAN)

PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in %s line %d

Mudanças na manipulação de strings

Strings hexadecimais não são mais consideradas numéricas

Strings contendo números hexadecimais não são mais consideradas numéricas. Por exemplo:

<?php
var_dump("0x123" == "291");
var_dump(is_numeric("0x123"));
var_dump("0xe" + "0x1");
var_dump(substr("foo", "0x1"));
?>

Saída do exemplo acima no PHP 5:

bool(true)
bool(true)
int(15)
string(2) "oo"

Saída do exemplo acima no PHP 7:

bool(false)
bool(false)
int(0)

Notice: A non well formed numeric value encountered in /tmp/test.php on line 5
string(3) "foo"

filter_var() pode ser usado se uma string contém um número hexadecimal, e também para converter uma string deste tipo para um int:

<?php
$str = "0xffff";
$int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
if (false === $int) {
throw new Exception("Inteiro Inválido!");
}
var_dump($int); // int(65535)
?>

\u{ pode causar erros

Por conta da adição da nova sintaxe de escape de códigos em Unicode, strings contendo um \u{ literal seguido de uma sequência inválida causará um erro fatal. Para evitar isso, você deve escapar a barra invertida.

Funções removidas

call_user_method() e call_user_method_array()

Estas funções foram descontinuadas no PHP 4.1.0 em favor de call_user_func() e call_user_func_array(). Você também pode considerar o uso de funções variáveis e/ou o operador ... .

Todas as funções ereg*

Todas as funções ereg foram removidas. PCRE é uma alternativa recomendada.

Sinônimos do mcrypt

A função descontinuada mcrypt_generic_end() foi removida em favor de mcrypt_generic_deinit().

Além disso, as funções descontinuadas mcrypt_ecb(),
mcrypt_cbc(), mcrypt_cfb() e
mcrypt_ofb() foram removidas em favor do
uso da função mcrypt_decrypt() com a constante
MCRYPT_MODE_* apropriada.

Todas as funções ext/mysql

Todas as funções ext/mysql foram removidas. Para mais detalhes sobre a escolha de uma API MySQL diferente, veja a seção Escolhendo uma API MySQL.

Todas as funções ext/mssql

Todas as funções ext/mssql foram removidas.

  • PDO_SQLSRV
  • PDO_ODBC
  • SQLSRV
  • API ODBC Unificada

Sinônimos de intl

Os sinônimos descontinuados datefmt_set_timezone_id() e
IntlDateFormatter::setTimeZoneID() foram
removidos em favor de datefmt_set_timezone() e
IntlDateFormatter::setTimeZone(), respectivamente.

set_magic_quotes_runtime()

set_magic_quotes_runtime(), juntamente com seu sinônimo magic_quotes_runtime(), foram removidos. Eles foram descontinuados no PHP 5.3.0 e se tornaram efetivamente não funcionais com a remoção das magic quotes no PHP 5.4.0.

set_socket_blocking()

O sinônimo descontinuado set_socket_blocking() foi removido em favor de stream_set_blocking().

dl() no PHP-FPM

dl() não pode mais ser utilizado no PHP-FPM. Ela permanece funcional na interface CLI e SAPIs embarcadas.

Funções GD Type1

O suporte a fontes PostScript Type1 foi removido da extensão GD, resultando na remoção das seguintes funções:

  • imagepsbbox()
  • imagepsencodefont()
  • imagepsextendfont()
  • imagepsfreefont()
  • imagepsloadfont()
  • imagepsslantfont()
  • imagepstext()

O uso de fontes TruType e suas funções associadas é recomendado.

Diretivas INI removidas

Recursos removidos

As diretivas INI a seguir foram removidas, assim como os como seus recursos associados:

  • always_populate_raw_post_data
  • asp_tags

xsl.security_prefs

A diretiva xsl.security_prefs foi removida. Em substituição, o método XsltProcessor::setSecurityPrefs() deve ser chamado para controlar as preferências de segurança por processo base.

Outras mudanças incompatíveis com versões anteriores

Novos objetos não podem ser atribuídos por referência

O resultado da declaração new não pode mais ser atribuído a uma variável por referência:

<?php
class C {}
$c =& new C;
?>

Saída do exemplo acima no PHP 5:

Deprecated: Assigning the return value of new by reference is deprecated in /tmp/test.php on line 3

Saída do exemplo acima no PHP 7:

Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3

Nomes inválidos de classes, interfaces e traits

Os nomes a seguir não podem ser utilizados como nome de classes, interfaces ou traits:

  • bool
  • int
  • float
  • string
  • null
  • true
  • false

Além disso, os seguintes nomes não devem ser usados. Embora eles não geram um erro no PHP 7.0, eles são reservados para uso futuro e devem ser considerados descontinuados.

  • resource
  • object
  • mixed
  • numeric

Tags ASP e script removidas

O suporte ao uso das tags ASP e script para delimitar o código PHP foi removido. As tags afetadas são:

Tags ASP e script removidas
Tag de abertura | Tag de fechamento
<% | %>
<%= | %>
<script language="php"> | </script>

Chamadas de contextos incompatíveis foram removidas

Anteriormente descontinuadas no PHP 5.6, chamadas estáticas feitas a métodos não-estáticos com um contexto incompatível agora resultarão no método chamado tendo uma variável $this indefinida e um aviso de descontinuação será emitido.

<?php
class A {
public function test() { var_dump($this); }
}

// Nota: NÃO extende A
class B {
public function callNonStaticMethodOfA() { A::test(); }
}

(new B)->callNonStaticMethodOfA();
?>

Saída do exemplo acima no PHP 5.6:

Deprecated: Non-static method A::test() should not be called statically, assuming $this from incompatible context in /tmp/test.php on line 8
object(B)#1 (0) {
}

Saída do exemplo acima no PHP 7:

Deprecated: Non-static method A::test() should not be called statically in /tmp/test.php on line 8

Notice: Undefined variable: this in /tmp/test.php on line 3
NULL

yield agora é um operador associativo à direita

O construtor yield não requer mais o uso de parênteses e foi alterado para um operador associativo à direita com precedência entre print e =>. Isso pode resultar em um comportamento alterado:

<?php
echo yield -1;
// Era interpretado como
echo (yield) - 1;
// E agora é interpretado como
echo yield (-1);

yield $foo or die;
// Era interpretado como
yield ($foo or die);
// E agora é interpretado como
(yield $foo) or die;
?>

Parênteses podem ser utilizados para remover a ambiguidade nestes casos.

Funções não podem ter vários parâmetros com o mesmo nome

Não é mais possível definir dois ou mais parâmetros em uma função com o mesmo nome. Por exemplo, a função a seguir vai disparar um E_COMPILE_ERROR:

<?php
function foo($a, $b, $unused, $unused) {
//
}
?>

Funções inspecionando argumentos informam o valor atual do parâmetro

func_get_arg(), func_get_args(), debug_backtrace() e backtraces de exceção não informam mais o valor original que foi passado para um parâmetro, mas ao invés disso, irão informar o valor atual (que pode ter sido modificado).

<?php
function foo($x) {
$x++;
var_dump(func_get_arg(0));
}
foo(1);?>

Saída do exemplo acima no PHP 5:

1

Saída do exemplo acima no PHP 7:

2

Declarações switch não podem ter vários blocos default

Não é mais possível definir dois ou mais blocos default em uma declaração switch. Por exemplo, a declaração switch a seguir irá disparar um E_COMPILE_ERROR:

<?php
switch (1) {
default:
break;
default:
break;
}
?>

$HTTP_RAW_POST_DATA removida

A variável $HTTP_RAW_POST_DATA não está mais disponível. Ao invés disso o stream php://input deve ser utilizado.

Comentários iniciados com # nos arquivos INI foram removidos

O suporte a comentários prefixados com # nos arquivos INI foi removido. Em vez disso, o ; (ponto-e-vírgula) deve ser usado. Esta mudança aplica-se ao php.ini, assim como aos arquivos manipulados pelas funções parse_ini_file() e parse_ini_string().

Substituição da extensão JSON por JSOND

A extensão JSON foi substituída por JSOND, causando três quebras menores de compatibilidade com versões anteriores. Em primeiro lugar, um número não pode ser terminado em um ponto decimal (isto é, 34. deve ser modificado para 34.0 ou 34). Em segundo lugar, ao usar notação científica, o expoente e não deve seguir imediatamente o ponto decimal (isto é, 3.e3 deve ser modificado para 3.0e3 ou 3e3). Finalmente, uma string vazia não é mais considerada JSON válido.

Função interna falha em caso de estouro

Antes, funções internas silenciosamente truncavam números produzidos por coerções de pontos flutuantes para inteiros quando o ponto flutuante era grande demais para ser representado como um inteiro. Agora um E_WARNING será emitido e null será retornado.

Ajustes nos valores retornados pelo manipulador de sessão customizado

Quaisquer funções de predicado implementadas por manipuladores de sessões customizadas que retornem false ou -1 resultarão em erros fatais. Se qualquer valor retornado destas funções não é um booleano, -1 ou 0, então ela irá falhar e um E_WARNING será emitido.

Ordenações de elementos iguais

O algoritmo interno de ordenação foi melhorado, o que pode resultar em diferentes ordenações de elementos, que são comparados como iguais, do que antes.

Nota:

Não confie na ordem de elementos que são comparados como iguais; ela pode mudar a qualquer momento.

Instruções break e continue deslocadas

As declarações break e continue fora de um laço ou de uma estrutura de controle switch, agora são detectados em tempo de compilação em vez de tempo de execução como antes, e dispara um erro E_COMPILE_ERROR.

Mhash não é mais uma extensão

A extensão Mhash foi completamente integrada na extensão Hash. Portanto, não é mais possível detectar o suporte à extensão Mhash com extension_loaded(); em vez disso use function_exists(). Além disso, Mhash não é mais informada por get_loaded_extensions() e recursos relacionados.

declare(ticks)

A diretiva declare(ticks) não vaza mais para diferentes unidades de compilação.


Novos Recursos

Declarações de tipos escalares

Declarações de tipos escalares vêm em dois sabores: coercivo (padrão) e estrito. Para parâmetros os seguintes tipos agora podem ser forçados (tanto coercivamente quanto estritamente): strings (string), inteiros (int), números de ponto flutuante (float) e booleanos (bool). Eles incrementam os outros tipos introduzidos no PHP 5: nomes de classe, interfaces, array e callable.

<?php
// Modo coercivo
function sumOfInts(int ...$ints)
{
return array_sum($ints);
}

var_dump(sumOfInts(2, '3', 4.1));

O exemplo acima produzirá:

int(9)

Para habilitar o modo estrito, uma única diretiva declare deve ser colocada no topo do arquivo. Isto significa que a rigorosidade de tipificação para escalares é configurada por arquivo. Esta diretiva não afeta somente as declarações de tipo de parâmetros, mas também do tipo de retorno de funções (veja declarações de tipo de retorno), funções internas do PHP e funções de extensões carregadas.

A documentação completa e exemplos de declarações de tipo escalar podem ser encontradas na referência de declaração de tipo .

Declarações de tipo de retorno

O PHP 7 adiciona suporte a declarações de tipo de retorno. Similar às declarações de tipo de argumento as declarações de tipo de retorno especificam o tipo do valor que será retornado por uma função. Os mesmos tipos estão disponíveis para declarações de tipo de retorno assim como estão disponíveis para declarações de tipo de argumentos.

<?php

function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}

print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

O exemplo acima produzirá:

Array
(
    [0] => 6
    [1] => 15
    [2] => 24
)

A documentação completa e exemplos de declarações de tipo de retorno podem ser encontradas na referência de declarações de tipo de retorno .

Operador de coalescência nula

O operador de coalescência nula (??) foi adicionado como um truque sintático para o caso trivial de precisar usar um ternário em conjunto com a função isset(). Ele retorna o primeiro operando se este existir e não for null; caso contrário retorna o segundo operando.

<?php
// Obtém o valor de $_GET['user'] e retorna 'nobody'
// se ele não existir.
$username = $_GET['user'] ?? 'nobody';
// Isto equivale a:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// A coalescência pode ser encadeada: isto irá retornar o primeiro
// valor definido entre $_GET['user'], $_POST['user'] e
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>

Operador "nave espacial" (spaceship)

O operador nave espacial é utilizado para comparar duas expressões. Ele retorna -1, 0 ou 1 quando $a for respectivamente menor que, igual a ou maior que $b. As comparações são feitas de acordo com as já conhecidas regras de comparação de tipos do PHP.

<?php
// Inteiros
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Números de ponto flutuante
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

Arrays de constantes utilizando a função define()

Constantes do tipo array agora podem ser definidas com a função define(). No PHP 5.6 elas só poderiam ser definidas com const.

<?php
define('ANIMALS', [
'dog',
'cat',
'bird'
]);

echo ANIMALS[1]; // imprime "cat"
?>

Classes anônimas

O suporte a classes anônimas foi adicionado utilizando new class. Estas podem ser utilizadas no lugar de definições completas de classes para objetos descartáveis.

<?php
interface Logger {
public function log(string $msg);
}

class Application {
private $logger;

public function getLogger(): Logger {
return $this->logger;
}

public function setLogger(Logger $logger) {
$this->logger = $logger;
}
}

$app = new Application;
$app->setLogger(new class implements Logger {
public function log(string $msg) {
echo $msg;
}
});

var_dump($app->getLogger());
?>

O exemplo acima produzirá:

object(class@anonymous)#2 (0) {
}

A documentação completa pode ser encontrada na referência de classes anônimas.

Sintaxe de escape de códigos Unicode

Toma um código Unicode em sua forma hexadecimal e imprime esse código em UTF-8 em uma string delimitada por aspas ou um heredoc. Qualquer código válido é aceito, com os zeros à esquerda sendo opcionais.

echo "\u{aa}";
echo "\u{0000aa}";
echo "\u{9999}";

O exemplo acima produzirá:

ª
ª (o mesmo que antes mas com os zeros à esquerda opcionais)
?

Closure::call()

O método Closure::call() é uma forma mais eficaz e abreviada de associar temporariamente um escopo de objeto a uma closure e invocá-la.

<?php
class A {private $x = 1;}

// Código anterior ao PHP 7
$getXCB = function() {return $this->x;};
$getX = $getXCB->bindTo(new A, 'A'); // intermediate closure
echo $getX();

// Código do PHP 7+
$getX = function() {return $this->x;};
echo $getX->call(new A);

O exemplo acima produzirá:

1
1

unserialize() filtrado

Esse recurso busca prover uma melhor segurança ao desserializar objetos com informações não confiáveis. Ele impede possíveis injeções de código ao permitir que o desenvolvedor liste as classes que podem ser desserializadas.

<?php

// converte todos os objetos em objetos __PHP_Incomplete_Class
$data = unserialize($foo, ["allowed_classes" => false]);

// converte todos os objetos em objetos __PHP_Incomplete_Class exceto aqueles de MyClass e MyClass2
$data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);

// comportamento padrão (o mesmo que omitir o segundo argumento) que aceita todas as classes
$data = unserialize($foo, ["allowed_classes" => true]);

IntlChar

A nova classe IntlChar busca expor funcionalidades adicionais da ICU. A classe define alguns métodos estáticos e constantes que podem ser utilizados para manipular caracteres Unicode.

<?php

printf('%x', IntlChar::CODEPOINT_MAX);
echo IntlChar::charName('@');
var_dump(IntlChar::ispunct('!'));

O exemplo acima produzirá:

10ffff
COMMERCIAL AT
bool(true)

Para utilizar esta classe a extensão Intl deve estar instalada.

Expectations

Expectations são aprimoramentos compatíveis com versões anteriores para a antiga função assert(). Permitem asserções com custo zero em código em produção e fornecem a capacidade de lançar exceções personalizadas quando a asserção falha.

Enquanto a API antiga continua sendo mantida por motivos de compatibilidade, assert() agora é um construtor de linguagem, permitindo que o primeiro parâmetro seja uma expressão, em vez de somente uma string a ser avaliada ou um valor bool a ser testado.

<?php
ini_set('assert.exception', 1);

class CustomError extends AssertionError {}

assert(false, new CustomError('Alguma mensagem de erro'));
?>

O exemplo acima produzirá:

Fatal error: Uncaught CustomError: Alguma mensagem de erro

Mais detalhes sobre este recurso, incluindo como configurá-lo tanto no ambiente de desenvolvimento quanto em produção, podem ser encontrados no pagina do manual do construtor de linguagem assert();

Agrupamento de declarações use

Classes, funções e constantes importadas do mesmo namespace, agora podem ser agrupadas em uma única declaração use

<?php
// Código anterior ao PHP 7
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

// Código do PHP 7+
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};
?>

Expressões de Retorno nos Geradores

Este recurso foi construído em cima da funcionalidade de geradores introduzida no PHP 5.5. Ele permite que uma declaração return seja usada dentro de um gerador para permitir que uma expressão final seja retornada (retornar por referência não é permitido). Este valor pode ser obtido usando o novo método Generator::getReturn(), que deve ser usado somente quando o gerador terminar a geração dos valores.

<?php

$gen = (function() {
yield 1;
yield 2;

return 3;
})();

foreach ($gen as $val) {
echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

O exemplo acima produzirá:

1
2
3

A habilidade de retornar explicitamente o valor final de um gerador é conveniente de se ter. Ela permite que o retorno do valor final do gerador (pode ser de uma computação concorrente) possa ser manipulado especificamente pelo código cliente que executa o gerador. Isso é bem mais simples que forçar o código cliente a primeiro checar se o valor final já foi gerado, e em caso afirmativo, manipular esse valor especificamente.

Delegação de geradores

Geradores agora podem delegar para outros geradores, objetos Traversable ou array automaticamente, sem a necessidade de escrever código repetitivo no gerador externo utilizando o construtor yield from

<?php
function gen()
{
yield 1;
yield 2;
yield from gen2();
}

function gen2()
{
yield 3;
yield 4;
}

foreach (gen() as $val)
{
echo $val, PHP_EOL;
}
?>

O exemplo acima produzirá:

1
2
3
4

Divisão de inteiros com intdiv()

A nova função intdiv() realiza a divisão de inteiros de seus operandos e a retorna.

<?php
var_dump(intdiv(10, 3));
?>

O exemplo acima produzirá:

int(3)

Opções de sessões

A função session_start() agora aceita um array de opções que sobrescrevem as diretivas de configuração de sessões normalmente configuradas no php.ini.

Estas opções também foram expandidas para suportar session.lazy_write, que está habilitada por padrão e faz com que o PHP somente sobrescreva um arquivo de sessão se a informação da sessão foi modificada, e read_and_close, que é uma opção que só pode ser passada para a função session_start() para indicar que os dados da sessão devem ser lidos e, em seguida, a sessão deve ser imediatamente fechada sem alterações.

Por exemplo, para configurar session.cache_limiter para private e fechar imediatamente a sessão após lê-la:

<?php
session_start([
'cache_limiter' => 'private',
'read_and_close' => true,
]);
?>

preg_replace_callback_array()

A nova função preg_replace_callback_array() permite que o código seja escrito de forma mais limpa com a utilização da função preg_replace_callback(). Antes do PHP 7, callbacks que precisam ser executadas por expressões regulares exigiam que a função de callback fosse poluída com muitas ramificações.

Agora, funções de callback podem ser registradas em cada expressão regular utilizando um array associativo, onde a chave é uma expressão regular e o valor é uma função de callback.

Funções CSPRNG

Duas novas funções foram adicionadas para gerar inteiros e strings criptograficamente seguros de maneira multiplataforma: random_bytes() e random_int().

A função list() pode sempre desempacotar objetos que implementam ArrayAccess

Antes a função list() não garantia corretude em operações com objetos que implementam ArrayAccess. Isso foi corrigido.

Outros Recursos

  • Acesso a membros de classe na clonagem foi adicionado, por exemplo, (clone $foo)->bar().


Recursos descontinuados no PHP 7.0.x

Construtores ao estilo PHP 4

Construtores ao estilo PHP 4 (métodos com o mesmo nome que a classe onde estão definidos) estão descontinuados, e serão removidos no futuro. O PHP 7 emitirá E_DEPRECATED se um construtor do PHP 4 for o único construtor definido na classe. Classes que implementam o método __construct() não são afetadas.

<?php
class foo {
function foo() {
echo 'Eu sou um construtor';
}
}
?>

O exemplo acima produzirá:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3

Chamadas estáticas a métodos não estáticos

Chamadas estáticas a métodos que não foram declarados como static estão descontinuadas, e podem ser removidos no futuro.

<?php
class foo {
function bar() {
echo 'Eu não sou estático!';
}
}

foo::bar();
?>

O exemplo acima produzirá:

Deprecated: Non-static method foo::bar() should not be called statically in - on line 8
I am not static!

Opção salt da função password_hash()

A opção salt da função password_hash() foi descontinuada para evitar que desenvolvedores gerem seus próprios salts (geralmente inseguros). A função gerará um salt criptográfico seguro quando um salt não for fornecido pelo desenvolvedor - portanto a geração customizada de salts não é necessária.

Opção de contexto SSL na função capture_session_meta

A opção de contexto SSL capture_session_meta foi descontinuada. Metadados SSL agora estão disponíveis através da função stream_get_meta_data().

Descontinuações no LDAP

As funções a seguir foram descontinuadas:

  • ldap_sort()


Funções alteradas

Núcleo do PHP

  • debug_zval_dump() agora imprime "int" ao invés de "long" e "float" ao invés de "double".
  • dirname() agora opcionalmente recebe um segundo parâmetro, depth, para obter o nome do diretório depth níveis acima do diretório atual.
  • getrusage() agora é suportada no Windows.
  • As funções mktime() e gmmktime() não aceitam mais o parâmetro is_dst (é horário de verão).
  • A função preg_replace() não suporta mais o modificador "\e" (PREG_REPLACE_EVAL). Em vez disso, a função preg_replace_callback() deve ser usada.
  • A função setlocale() não aceita mais o parâmetro category passado como string. Em vez disso, as constantes LC_* devem ser usadas.
  • As funções exec(), system() e passthru() agora possuem proteção contra bytes nulos.
  • A função shmop_open() agora retorna um recurso ao invés de um inteiro, que deve ser passado para as funções shmop_size(), shmop_write(), shmop_read(), shmop_close() e shmop_delete().
  • As funções substr() e iconv_substr() agora retornam uma string vazia caso o comprimento do parâmetro string seja igual ao valor do parâmetro start.
  • xml_parser_free() não é mais suficiente para liberar o recurso parser, se ele faz referência a um objeto e este objeto faz referência a esse recurso parser. Neste caso, é necessário, adicionalmente, indeterminar o $parser.


Novas funções

Closure

  • Closure::call()

CSPRNG

  • random_bytes()
  • random_int()

Manipulação e Registro de erros

  • error_clear_last()

Generator

  • Generator::getReturn()

GNU Multiple Precision

  • gmp_random_seed()

Math

  • intdiv()

PCRE

  • preg_replace_callback_array()

Opções PHP/Informações

  • gc_mem_caches()
  • get_resources()

POSIX

  • posix_setrlimit()

Reflection

  • ReflectionParameter::getType()
  • ReflectionParameter::hasType()
  • ReflectionFunctionAbstract::getReturnType()
  • ReflectionFunctionAbstract::hasReturnType()

Zip

  • ZipArchive::setCompressionIndex()
  • ZipArchive::setCompressionName()

Compressão Zlib

  • inflate_add()
  • deflate_add()
  • inflate_init()
  • deflate_init()


Novas Classes e Interfaces

Intl

  • IntlChar

Reflexão

  • ReflectionGenerator
  • ReflectionType

Manipulação de Sessão

  • SessionUpdateTimestampHandlerInterface

Hierarquia de Exceções

  • Throwable
  • Error
  • TypeError
  • ParseError
  • AssertionError
  • ArithmeticError
  • DivisionByZeroError


Novas Constantes Globais

Constantes Predefinidas do Núcleo

  • PHP_INT_MIN

GD

  • IMG_WEBP (a partir do PHP 7.0.10)

JSON

  • JSON_ERROR_INVALID_PROPERTY_NAME
  • JSON_ERROR_UTF16

LibXML

  • LIBXML_BIGLINES

PCRE

  • PREG_JIT_STACKLIMIT_ERROR

POSIX

  • POSIX_RLIMIT_AS
  • POSIX_RLIMIT_CORE
  • POSIX_RLIMIT_CPU
  • POSIX_RLIMIT_DATA
  • POSIX_RLIMIT_FSIZE
  • POSIX_RLIMIT_LOCKS
  • POSIX_RLIMIT_MEMLOCK
  • POSIX_RLIMIT_MSGQUEUE
  • POSIX_RLIMIT_NICE
  • POSIX_RLIMIT_NOFILE
  • POSIX_RLIMIT_NPROC
  • POSIX_RLIMIT_RSS
  • POSIX_RLIMIT_RTPRIO
  • POSIX_RLIMIT_RTTIME
  • POSIX_RLIMIT_SIGPENDING
  • POSIX_RLIMIT_STACK
  • POSIX_RLIMIT_INFINITY

Zlib

  • ZLIB_ENCODING_RAW
  • ZLIB_ENCODING_DEFLATE
  • ZLIB_ENCODING_GZIP
  • ZLIB_FILTERED
  • ZLIB_HUFFMAN_ONLY
  • ZLIB_FIXED
  • ZLIB_RLE
  • ZLIB_DEFAULT_STRATEGY
  • ZLIB_BLOCK
  • ZLIB_FINISH
  • ZLIB_FULL_FLUSH
  • ZLIB_NO_FLUSH
  • ZLIB_PARTIAL_FLUSH
  • ZLIB_SYNC_FLUSH


Modificações nos Módulos SAPI

FPM

Portas de listen não qualificadas agora escutam IPv4 e IPv6

No PHP 5, uma diretiva listen com somente um número de porta escutaria em todas interfaces, mas somente no IPv4. O PHP aceitará requisições feitas tanto via IPv4 quanto IPv6.

Isso não afeta diretivas que incluem endereços de IP específicos; estas continuarão a escutar somente no endereço e protocolo especificados.


Extensões e SAPIs removidas

Extensões removidas

  • ereg
  • mssql
  • mysql
  • sybase_ct

SAPIs removidas

  • aolserver
  • apache
  • apache_hooks
  • apache2filter
  • caudium
  • continuity
  • isapi
  • milter
  • nsapi
  • phttpd
  • pi3web
  • roxen
  • thttpd
  • tux
  • webjames


Outras mudanças

Abertura nas restrições de palavras reservadas

Palavras reservadas globalmente agora são permitidas como nomes de propriedades, constante e métodos dentro de classes, interfaces e traits. Isso reduz o aspecto de quebras no BC quando novas palavras-chave são introduzidas e evita restrições de nomes em APIS.

Isso é particularmente útil quando estiver criando DSLs com interfaces fluentes:

<?php
// 'new', 'private', e 'for' eram proibidas
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>

A única limitação é que a palavra-chave class continua não podendo ser utilizada como nome de constante, caso contrário conflitará com a sintaxe de resolução de nomes de classe (ClassName::class).

Remoção do aviso do date.timezone

Anteriormente, um aviso era emitido se a configuração INI date.timezone não havia sido definida antes de utilizar qualquer função de data ou tempo. Agora, este aviso foi removido (com a diretiva date.timezone padronizada para UTC).


Migrando do PHP 5.5.x para o PHP 5.6.x

Índice

  • Alterações imcompatíveis com versões anteriores
  • Novas funcionalidades
  • Recursos defasados no PHP 5.6.x
  • Funções alteradas
  • Novas funções
  • Mudanças do OpenSSL no PHP 5.6.x
  • Outras mudanças a extensões
  • Novas constantes globais

A maioria das melhorias no PHP 5.6.x não tem impacto no código existente. Existem algumas incompatibilidades e novas funcionalidades que devem ser consideradas, e o codigo deve ser testado antes de alterar a versão do PHP nos ambientes de produção.


Alterações imcompatíveis com versões anteriores

Embora a maior parte do código existente de PHP 5 funcione sem alterações, devem ser observadas algumas alteraçõs incompatíveis com versões anteriores:

Chaves de array não serão sobrescritas ao definir um array como uma propriedade de classe via array literal

Anteriormente, arrays declarados como propriedades de classe que misturavam chaves explícitas e implícitas poderiam ter elementos de array sileciosamente sobrescritos se um chave implícita fosse a mesma de uma implícita sequencial. Por exemplo:

<?php
class C {
const ONE = 1;
public $array = [
self::ONE => 'foo',
'bar',
'quux',
];
}

var_dump((new C)->array);
?>

Saída do exemplo acima no PHP 5.5:

array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}

Saída do exemplo acima no PHP 5.6:

array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}

Rigor de json_decode()

json_decode() agora rejeita variantes dos literais JSON true, false e null que não estejam em minúsculas, conforme especificação JSON, e define json_last_error() adequadamente. Anteriormente, entradas para json_decode() que consistiam somente de um desses valores em maiúsculas ou misturas de maiúsculas/minúsculas eram aceitas.

Esta alteração somente afetará casos onde um JSON inválido estiver sendo passado para json_decode(): entrada JSON válida não é afetada e continuará a ser avaliada normalmente.

Empacotadores de fluxo agora verificar certificados e nomes de servidor por padrão ao usar SSL/TLS

Todos os streams criptografados de cliente agora permitem a verificação de mesmo nível por padrão. Por padrão, será usada a coleção de CAs padrão do OpenSSL para verificar o certificado de mesmo nível. Na maioria dos casos, nenhuma alteração precisará ser feita para se comunicar com servidores com certificados SSL válidos, pois as distribuições geralmente configuram o OpenSSL com coleções de CAs bem conhecidos.

A coleção de CAs padrão pode ser substituída globalmente definindo a configuração openssl.cafile ou openssl.capath, ou por requisição usando as opções de contexto cafile ou capath .

Embora em geral não seja recomendado, é possível desabilitar a verificação de certificado de mesmo nível para uma requisição definindo a opção de contexto verify_peer para false e é possível desabilitar a verificação de nome de mesmo nível definindo a opção de contexto verify_peer_name para false.

Recursos GMP agora são objetos

Recursos GMP agora são objetos. A API funcional implementada na extensão GMP não foi alterada, e o código deve ser executado sem modificação a menos que ele verifique explicitamente por um recurso usando a função is_resource() ou outra similar.

Funções Mcrypt agora requerem chaves e IVs válidos

mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() e mcrypt_ofb() não mais aceitarão chaves ou IVs com tamanhos incorretos, e modorincorrect sizes, e os modos de criptografia de bloco que exigem IVs agora falharão se um IV não for fornecido.

Envios de arquivo com cURL

Envios de arquivo usando a sintaxe @file agora requerem que CURLOPT_SAFE_UPLOAD seja definido para false. A classe CURLFile deve ser usada no lugar.


Novas funcionalidades

Expressões constantes

Agora é possível fornecer uma expressão escalar envolvendo literais numéricos e strings e/ou constantes em contextos onde o PHP anteriormente esperava um valor estático, como declarações de constantes e propriedades e argumentos padrões para funções.

<?php
const UM = 1;
const DOIS = UM * 2;

class C {
const TRES = DOIS + 1;
const UM_TERCO = UM / self::TRES;
const FRASE = 'O valor de TRES é '.self::TRES;

public function f($a = UM + self::TRES) {
return $a;
}
}

echo (new C)->f()."\n";
echo C::FRASE;
?>

O exemplo acima produzirá:

4
O valor de TRES é 3

É possível também definir um array constante usando a palavra-chave const:

<?php
const ARR = ['a', 'b'];

echo ARR[0];
?>

O exemplo acima produzirá:

a

Funções variádicas via ...

Funções Variádicas agora podem ser implementadas usando o operador ..., ao invés de depender da função func_get_args().

<?php
function f($req, $opt = null, ...$params) {
// $params é um array contendo os argumentos restantes.
printf('$req: %d; $opt: %d; número de parâmetros: %d'."\n",
$req, $opt, count($params));
}

f(1);
f(1, 2);
f(1, 2, 3);
f(1, 2, 3, 4);
f(1, 2, 3, 4, 5);
?>

O exemplo acima produzirá:

$req: 1; $opt: 0; número de parâmetros: 0
$req: 1; $opt: 2; número de parâmetros: 0
$req: 1; $opt: 2; número de parâmetros: 1
$req: 1; $opt: 2; número de parâmetros: 2
$req: 1; $opt: 2; número de parâmetros: 3

Desempacotamento de argumentos via ...

Arrays e objetos do tipo Traversable podem ser desempacotados em listas de argumentos ao chamar funções usando o operador .... Isto também é conhecido como operador 'splat' em outras linguagens, incluindo Ruby.

<?php
function add($a, $b, $c) {
return $a + $b + $c;
}

$operators = [2, 3];
echo add(1, ...$operators);
?>

O exemplo acima produzirá:

6

Exponenciação via **

Um operador associativo à direita, **, foi adicionado para suportar exponenciação, juntamente com o operador curto de atribuição **=.

<?php
printf("2 ** 3 == %d\n", 2 ** 3);
printf("2 ** 3 ** 2 == %d\n", 2 ** 3 ** 2);

$a = 2;
$a **= 3;
printf("a == %d\n", $a);
?>

O exemplo acima produzirá:

2 ** 3 ==      8
2 ** 3 ** 2 == 512
a ==           8

use function e use const

O operador use foi estendido para suportar importação de funções e constantes em adição à importação de classes. Isto pode ser realizado pelas construções use function e use const, respectivamente.

<?php
namespace Name\Space {
const FOO = 42;
function f() { echo __FUNCTION__."\n"; }
}

namespace {
use const Name\Space\FOO;
use function Name\Space\f;

echo FOO."\n";
f();
}
?>

O exemplo acima produzirá:

42
Name\Space\f

phpdbg

O PHP agora inclui um depurador interativo chamado phpdbg, implementado como um módulo SAPI. Para mais informações, visite a documentação sobre phpdbg.

Codificação padrão de caracteres

default_charset é agora usado como o conjunto de caracteres padrão para as funções htmlentities(), html_entity_decode() e htmlspecialchars(). Observe que se as configurações de codificação iconv e mbstring (agora defasadas) estiverem definidas, elas terão precedência sobre default_charset para funções iconv e mbstring, respectivamente.

O valor padrão para esta configuração é UTF-8.

php://input é reutilizável

php://input agora pode ser reaberto e lido quantas vezes for necessário. Isto tem resultado em uma grande redução de memória requerida para lidar com dados de POST.

Envio de grandes arquivos

Arquivos maiores que 2 gigabytes agora são aceitos.

GMP suporta sobrecarga de operadores

Objetos GMP agora suportam sobrecarga de operadores e conversão para tipos escalares. Isto permite mais expressividade no código que usa GMP:

<?php
$a = gmp_init(42);
$b = gmp_init(17);

if (version_compare(PHP_VERSION, '5.6', '<')) {
echo gmp_intval(gmp_add($a, $b)), PHP_EOL;
echo gmp_intval(gmp_add($a, 17)), PHP_EOL;
echo gmp_intval(gmp_add(42, $b)), PHP_EOL;
} else {
echo $a + $b, PHP_EOL;
echo $a + 17, PHP_EOL;
echo 42 + $b, PHP_EOL;
}
?>

O exemplo acima produzirá:

59
59
59

hash_equals() para comparação de strings segura contra ataque de temporização

A função hash_equals() foi adicionada para comparar dois strings em tempo constante. Isto deve ser usado para mitigar ataques de temporização; por exemplo, ao testar hashes de senha crypt() (assumindo que não seja possível usar password_hash() e password_verify(), que não são suscetíveis a ataques de temporização).

<?php
$expected = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('1234', '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>

O exemplo acima produzirá:

bool(true)
bool(false)

__debugInfo()

O método mágico __debugInfo() foi adicionado para permitir que objetos alterem suas propriedades e seus valores que são mostrados quando estes objetos são argumentos da função var_dump().

<?php
class C {
private $prop;

public function __construct($val) {
$this->prop = $val;
}

public function __debugInfo() {
return [
'propSquared' => $this->prop ** 2,
];
}
}

var_dump(new C(42));
?>

O exemplo acima produzirá:

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}

Algoritmo de hash gost-crypto

O algoritmo de hash gost-crypto foi adicionado. Ele implementa a função de hash GOST usando as tabelas S-box da CryptoPro S-box como especificado pela » RFC 4357, section 11.2.

Melhorias SSL/TLS

Uma ampla gama de melhorias foi aplicada no suporte a SSL/TLS no PHP 5.6. Estas incluem habilitação de verificação de servidor por padrão, suporte a correspondência de impressão digital de certificado, mitigação contra ataques de renegociação TLS, e muitas novas opções de contexto SSL para permitir um controle mais fino sobre o protocolo e configurações de verificação ao usar fluxos criptografados.

Estas mudanças estão descritas com maior detalhe na seção Mudanças do OpenSSL no PHP 5.6.x deste guia de migração.

Suporte a pgsql assíncrono

A extensão pgsql agora suporta conexões e consultas assíncronas, assim habilitando comportamento sem bloqueio ao interagir com banco de dados PostgreSQL. Conexões assíncronas podem ser estabalacidas através da constante PGSQL_CONNECT_ASYNC. As novas funções pg_connect_poll(), pg_socket(), pg_consume_input() e pg_flush() podem ser usadas para lidar com conexões e consultas assíncronas.


Recursos defasados no PHP 5.6.x

Chamadas de contextos incompatíveis

Métodos chamados a partir de contextos incompatíveis agora estão defasados, e irão gerar erros de nível E_DEPRECATED quando chamados, ao invés de E_STRICT. Suporte a estas chamadas será removido em uma versão futura do PHP.

Um exemplo desse tipo de chamada é:

<?php
class A {
function f() { echo get_class($this); }
}

class B {
function f() { A::f(); }
}

(new B)->f();
?>

O exemplo acima produzirá:

Deprecated: Non-static method A::f() should not be called statically, assuming $this from incompatible context in - on line 7
B

$HTTP_RAW_POST_DATA e always_populate_raw_post_data

always_populate_raw_post_data agora irá gerar um erro de nível E_DEPRECATED quando $HTTP_RAW_POST_DATA for preenchida. Código novo deve usar php://input ao invés de $HTTP_RAW_POST_DATA, que será removida em uma versão futura. Pode-se optar pelo novo comportamento (no qual $HTTP_RAW_POST_DATA nunca é definido e portanto nenhum erro E_DEPRECATED será gerado) definindo always_populate_raw_post_data para -1.

Configurações de codificação iconv e mbstring

As opções de configuração de iconv e mbstring relacionadas a codificação tornaram-se defasadas em favor de default_charset. As opções defasadas são:

  • iconv.input_encoding
  • iconv.output_encoding
  • iconv.internal_encoding
  • mbstring.http_input
  • mbstring.http_output
  • mbstring.internal_encoding


Funções alteradas

Núcleo do PHP

  • crypt() agora irá emitir um erro de nível E_NOTICE se o parâmetro salt for omitido.
  • substr_compare() agora irá aceitar 0 para o parâmetro length.
  • unserialize() agora irá falhar se forem passados dados manipulados na tentantiva de instanciar um objeto sem chamar seu construtor.

cURL

  • Envios de arquivo usando a sintaxe @file agora são suportados somente se a opção CURLOPT_SAFE_UPLOAD for definida para false. A classe CURLFile deve ser usada no lugar.

Mcrypt

  • O parâmetro source de mcrypt_create_iv() agora tem o padrão de MCRYPT_DEV_URANDOM ao invés de MCRYPT_DEV_RANDOM.

OpenSSL

  • stream_socket_enable_crypto() agora permite que o parâmetro crypto_type seja opcional se o contexto de SSL do fluxo incluir a nova opção crypto_type.

PostgreSQL

  • pg_insert(), pg_select(), pg_update() e pg_delete() não são mais experimentais.
  • pg_send_execute(), pg_send_prepare(), pg_send_query() e pg_send_query_params() não irão mais bloquear até a conclusão da escrira da consulta se o fluxo do socket subjacente para a conexão do banco de dados for definido para o modo de não-bloqueio.

Reflection

  • ReflectionClass::newInstanceWithoutConstructor() agora permite que classes internas não-finais sejam instanciadas.

XMLReader

  • XMLReader::getAttributeNs() e XMLReader::getAttributeNo() agora retornam null se o atributo não puder ser encontrado, como XMLReader::getAttribute().


Novas funções

Data e Horário

  • DateTimeImmutable::createFromMutable()

GMP

  • gmp_root()
  • gmp_rootrem()

Hash

  • hash_equals()

LDAP

  • ldap_escape()
  • ldap_modify_batch()

MySQLi

  • mysqli_get_links_stats()

OCI8

  • oci_get_implicit_resultset()

OpenSSL

  • openssl_get_cert_locations()
  • openssl_x509_fingerprint()
  • openssl_spki_new()
  • openssl_spki_verify()
  • openssl_spki_export_challenge()
  • openssl_spki_export()

PostgreSQL

  • pg_connect_poll()
  • pg_consume_input()
  • pg_flush()
  • pg_socket()

PDO_PGSQL

  • PDO::pgsqlGetNotify()
  • PDO::pgsqlGetPid()

Session

  • session_abort()
  • session_reset()

Zip

  • ZipArchive::setPassword()


Mudanças do OpenSSL no PHP 5.6.x

Empacotadores de fluxo agora verificam nomes e certificados de servidor por padrão ao usar SSL/TLS

Todos os streams criptografados de cliente agora permitem a verificação de mesmo nível por padrão. Por padrão, será usada a coleção de CAs padrão do OpenSSL para verificar o certificado de mesmo nível. Na maioria dos casos, nenhuma alteração precisará ser feita para se comunicar com servidores com certificados SSL válidos, pois as distribuições geralmente configuram o OpenSSL com coleções de CAs bem conhecidos.

A coleção de CAs padrão pode ser substituída globalmente definindo a configuração openssl.cafile ou openssl.capath, ou por requisição usando as opções de contexto cafile ou capath .

Embora em geral não seja recomendado, é possível desabilitar a verificação de certificado de mesmo nível para uma requisição definindo a opção de contexto verify_peer para false e é possível desabilitar a verificação de nome de mesmo nível definindo a opção de contexto verify_peer_name para false.

Impressões digitais de certificado

Foi adicionado suporte para extrari e verificar impressões digitais de certificado. openssl_x509_fingerprint() foi adicionada para extrair uma impressão digital de um certificado X.509 certificate, e duas opções de contexto de fluxo SSL foram adicionadas: capture_peer_cert para capturar o certificado X.509 do servidor, e peer_fingerprint para certificar que o certificado do servidor deve corresponder à impressão digital informada.

Cifras padrões atualizadas

As cifras padrões usadas pelo PHP foram atualizadas para uma lista mais segura com base nas » Recomendações de crifra Mozilla, com duas novas exclusões: cifras anônimas Diffie-Hellman, e RC4.

Esta lista pode ser acessada através da nova constante OPENSSL_DEFAULT_STREAM_CIPHERS, e pode ser substituída (como em versões anteriores do PHP) configurando-se as opções de contexto ciphers.

Compressão desabilitada por padrão

Compressão SSL/TLS foi desabilitada por padrão para mitigar o ataque CRIME. O PHP 5.4.13 adicionou uma opção de contexto disable_compression para permitir que a compressão seja desabilitada: ela agora está definida para true (isto é, compressão desabilitada) por padrão.

Permite que servidores definam sua própria ordem de cifras de preferência

A opção de contexto SSL honor_cipher_order foi adicionada para permitir que servidores de fluxo criptografado mitiguem vulnerabilidades BEAST definindo as cifras do servidor e não as do cliente.

Acesso ao protocolo e à cifra negociados

O protocolo e a cifra que foram negociados para um fluxo criptografado agora podem ser acessados por stream_get_meta_data() ou stream_context_get_options() quando a opção de contexto SSL capture_session_meta for definida para true.

<?php
$ctx = stream_context_create(['ssl' => [
'capture_session_meta' => TRUE
]]);

$html = file_get_contents('https://google.com/', FALSE, $ctx);
$meta = stream_context_get_options($ctx)['ssl']['session_meta'];
var_dump($meta);
?>

O exemplo acima produzirá:

array(4) {
  ["protocol"]=>
  string(5) "TLSv1"
  ["cipher_name"]=>
  string(20) "ECDHE-RSA-AES128-SHA"
  ["cipher_bits"]=>
  int(128)
  ["cipher_version"]=>
  string(11) "TLSv1/SSLv3"
}

Novas opções para sigilo de encaminhamento perfeito em servidores de fluxo criptografados

Os fluxos criptografados de clientes já suportam sigilo de encaminhamento perfeito, pois geralmente são controlados pelo servidor. Fluxos criptografados de servidor no PHP usando certificados capazes de sigilo de encaminhamento perfeito não precisam tomar nenhuma ação adicional para habilitar o SEP; entretanto um número de opções de contexto SSL foi adicionado para permitir maior controle sobre o SEP e lidar com problemas de compatibilidade que possam aparecer.

ecdh_curve

Esta opção permite a seleção de uma curva específica para uso com cifras ECDH. Se não especificada, prime256v1 será usada.

dh_param

Um caminho para um arquivo contendo parâmetros para a troca de chaves Diffie-Hellman key, como as criadas pelo comando:

openssl dhparam -out /caminho/para/meus/certificados/dh-2048.pem 2048
single_dh_use

Se definida para true, um novo par de chaves será criado usando parâmetros Diffie-Hellman, desta forma melhorando o sigilo de encaminhamento.

single_ecdh_use

Se definida para true, um novo par de chaves será sempre gerado quando conjuntos de cifras ECDH forem negociadas. Isto melhora o sigilo de encaminhamento.

Seleção de versão SSL/TLS

Agora é possível selecionar versões específicas de SSL e TLS através da opçõa de contexto crypto_method ou pela especificação de um transporte específico ao criar um empacotador de fluxo (por exemplo, chamando-se stream_socket_client() ou stream_socket_server()).

A opção de contexto crypto_method aceita uma máscara de bits enumerando os protocolos permitidos, da mesma forma que a opção crypto_type da função stream_socket_enable_crypto().

Versões de protocolo selecionadas e opções correspondentes
Protocolo(s) | Opção do Cliente | Opção do Servidor | Transporte
Qualquer versão TLS ou SSL | STREAM_CRYPTO_METHOD_ANY_CLIENT | STREAM_CRYPTO_METHOD_ANY_SERVER | ssl://
Qualquer versão TLS | STREAM_CRYPTO_METHOD_TLS_CLIENT | STREAM_CRYPTO_METHOD_TLS_SERVER | tls://
TLS 1.0 | STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_0_SERVER | tlsv1.0://
TLS 1.1 | STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_1_SERVER | tlsv1.1://
TLS 1.2 | STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_2_SERVER | tlsv1.2://
SSL 3 | STREAM_CRYPTO_METHOD_SSLv3_CLIENT | STREAM_CRYPTO_METHOD_SSLv3_SERVER | sslv3://
<?php

// Requisitando TLS 1.0 ou melhor ao usar file_get_contents():
$ctx = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Requisitando TLS 1.1 ou 1.2:
$ctx = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT |
STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Conectando com uso de transporte de fluxo tlsv1.2://.
$sock = stream_socket_client('tlsv1.2://google.com:443/');

?>

Adicionada a função openssl_get_cert_locations()

A função openssl_get_cert_locations() foi adicionada: ela retorna as localizações padrões onde o PHP irá pesquisar por pacotes de certificados CA.

<?php
var_dump(openssl_get_cert_locations());
?>

O exemplo acima produzirá:

array(8) {
  ["default_cert_file"]=>
  string(21) "/etc/pki/tls/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/etc/pki/tls/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/etc/pki/tls/private"
  ["default_default_cert_area"]=>
  string(12) "/etc/pki/tls"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""
}

Suporte a SPKI

Foi adicionado suporte para geração, extração e verificação de chaves públicas assinadas e desafios (SPKAC em inglês). openssl_spki_new(), openssl_spki_verify(), openssl_spki_export_challenge() e openssl_spki_export() foram adicionadas para criar, verificar, exportar chaves públicas PEM e desafio associado a partir de um SPKAC gerado por um elemento KeyGen de HTML5.

openssl_spki_new

Gera uma novo SPKAC usando chave privada, string de desafio e algoritmo de hash.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
?>

O exemplo acima produzirá:

SPKAC=MIIBXjCByDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3L0IfUijj7+A8CPC8EmhcdNoe5fUAog7OrBdhn7EkxFButUp40P7+LiYiygYG1TmoI/a5EgsLU3s9twEz3hmgY9mYIqb/rb+SF8qlD/K6KVyUORC7Wlz1Df4L8O3DuRGzx6/+3jIW6cPBpfgH1sVuYS1vDBsP/gMMIxwTsKJ4P0CAwEAARYkYjViMzYxMTktNjY5YS00ZDljLWEyYzctMGZjNGFhMjVlMmE2MA0GCSqGSIb3DQEBAwUAA4GBAF7hu0ifzmjonhAak2FhhBRsKFDzXdKIkrWxVNe8e0bZzMrWOxFM/rqBgeH3/gtOUDRS5Fnzyq425UsTYbjfiKzxGeCYCQJb1KJ2V5Ij/mIJHZr53WYEXHQTNMGR8RPm7IxwVXVSHIgAfXsXZ9IXNbFbcaLRiSTr9/N4U+MXUWL7
openssl_spki_verify

Verifica o SPKAC informado.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
var_dump(openssl_spki_verify($spkac));
?>
openssl_spki_export_challenge

Exporta o desafio associado a partir do SPKAC fornecido.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
$challenge = openssl_spki_export_challenge($spkac);
echo $challenge;
?>

O exemplo acima produzirá:

challenge string
openssl_spki_export

Exporta chave pública RSA em formato PEM, a partir do SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
echo openssl_spki_export($spkac);
?>

O exemplo acima produzirá:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcvQh9SKOPv4DwI8LwSaFx02h7
l9QCiDs6sF2GfsSTEUG61SnjQ/v4uJiLKBgbVOagj9rkSCwtTez23ATPeGaBj2Zg
ipv+tv5IXyqUP8ropXJQ5ELtbXPUN/gvw7cO5EbPHr/7eMhbpw8Gl+AfWxW5hLW8
MGw/+AwwjHBOwong/QIDAQAB
-----END PUBLIC KEY-----


Outras mudanças a extensões

cURL

Um número de constantes marcadas como obsoletas na biblioteca cURL agora foram removidas:

  • CURLOPT_CLOSEPOLICY
  • CURLCLOSEPOLICY_CALLBACK
  • CURLCLOSEPOLICY_LEAST_RECENTLY_USED
  • CURLCLOSEPOLICY_LEAST_TRAFFIC
  • CURLCLOSEPOLICY_OLDEST
  • CURLCLOSEPOLICY_SLOWEST

OCI8

  • Foi adicionado suporte para resultados implícitos para o banco de dados Oracle 12c através da nova função oci_get_implicit_resultset().
  • Usar oci_execute($s, OCI_NO_AUTO_COMMIT) para um SELECT não mais inicia desnecessariamente um ROLLBACK interno durante o fechamento da conexão.
  • Adicionadas sondas DTrace controladas pela opção --enable-dtrace de configuração.
  • oci_internal_debug() agora não faz mais nada.
  • O formato de saída de phpinfo() para OCI8 foi alterado.

Zip

Uma opção de configuração --with-libzip foi adicionada para usar uma instalação libzip de sistema. libzip versão 0.11 é requerida, com 0.11.2 o posterior recomendada.

MySQLi

Uma nova opção mysqli.rollback_on_cached_plink foi adicionada, que controla o comportamento de ROLLBACK em conexões persistentes.


Novas constantes globais

GD

  • IMG_WEBP (a partir do PHP 5.6.25)

LDAP

  • LDAP_ESCAPE_DN
  • LDAP_ESCAPE_FILTER

OpenSSL

  • OPENSSL_DEFAULT_STREAM_CIPHERS
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

PostgreSQL

  • PGSQL_CONNECT_ASYNC
  • PGSQL_CONNECTION_AUTH_OK
  • PGSQL_CONNECTION_AWAITING_RESPONSE
  • PGSQL_CONNECTION_MADE
  • PGSQL_CONNECTION_SETENV
  • PGSQL_CONNECTION_SSL_STARTUP
  • PGSQL_CONNECTION_STARTED
  • PGSQL_DML_ESCAPE
  • PGSQL_POLLING_ACTIVE
  • PGSQL_POLLING_FAILED
  • PGSQL_POLLING_OK
  • PGSQL_POLLING_READING
  • PGSQL_POLLING_WRITING


  • « Novas constantes globais
  • Sobre o depurador em PHP »
  • PHP Manual
  • Apêndices
  • Depurando em PHP

Depurando em PHP

Índice

  • Sobre o depurador em PHP


Sobre o depurador em PHP

O PHP vem equipado com um depurador básico em linha de comando, phpdbg.

A maioria das IDE tem suporte para o » Xdebug, uma ferramenta livre de debug, que permite analisar as aplicações PHP passo a passo.


  • « Sobre o depurador em PHP
  • Lista de opções do script configure »
  • PHP Manual
  • Apêndices
  • Opções do script Configure

Opções do script Configure

Índice

  • Lista de opções do script configure


Lista de opções do script configure

Abaixo está a lista parcial das opções do script configure usado pelo PHP quando compilando o mesmo em ambientes Unix-like. A maioria das opções de configuração está listada na página de referência da extensão e não aqui. Para uma lista atualizada e completa das opções do script configure, execute ./configure --help no diretórios dos fontes do PHP após executar autoconf (veja também o capítulo de Instalação). Você pode também se interessar em ler a documentação do » GNU configure para obter informações em opções adicionais do configure tais como --prefix=PREFIX.

Nota:

Essas opções são utilizadas apenas em tempo de compilação. Se você quiser alterar a configuração do PHP em tempo de execução, por favor, veja o capítulo de Configuração em tempo de execução.

  • Miscelânea
  • Comportamento do PHP
  • Servidor

Opções do Configuração do PHP

Opções Mistas

--enable-debug

Compila com símbolos para depuração.

--with-layout=TYPE

Configura a disposição dos arquivos instalados. Type pode ser PHP (padrão) ou GNU. Note que instalar manpages sob o prefixo PREFIX (default), utilize o estilo GNU de forma que estas páginas possam ser encontradas pelo utilitário manpath.

--with-pear=DIR

Instala o PEAR em DIR (padrão é PREFIX/lib/php).

--without-pear

Não instala o PEAR.

--enable-sigchild

Permite que o PHP tenha um tratador de SIGCHLD próprio.

--disable-rpath

Desabilita a passagem de caminhos adicionais onde busca por bibliotecas em tempo de execução.

--enable-libgcc

Habilita montar explicitamente com a libgcc.

--enable-php-streams

Inclui fluxos de dados (streams) experimentais do PHP. Não use a não ser que esteja testando o código!

--with-zlib-dir[=DIR]

Define a localização do diretório onde a zlib está instalada.

--with-tsrm-pthreads

Use threads POSIX (padrão).

--enable-shared[=PKGS]

Monta bibliotecas compartilhadas [padrão=yes].

--enable-static[=PKGS]

Monta bibliotecas estáticas [padrão=yes].

--enable-fast-install[=PKGS]

Optimiza para instalação rápida [padrão=yes].

--with-gnu-ld

Presume que o compilador C usa o GNU ld [padrão=no].

--disable-libtool-lock

Evita travamento (pode quebrar compilações rodando em paralelo).

--with-pic

Tenta usar apenas objetos PIC/não-PIC [padrão=use both].

--enable-versioning

Exporta apenas os símbolos necessários. Veja o arquivo INSTALL para mais informações.

Opções do PHP

--enable-maintainer-mode

Habilita criar regras e dependências que não são úteis (e algumas vezes confusas) para o instalador casual.

--with-config-file-path=PATH

Edita o caminho no qual deve procurar pelo arquivo php.ini, padrão é PREFIX/lib.

--disable-short-tags

Desabilita a forma comprimida de tag inicial <? por padrão.

--with-libdir

Especifica o diretório onde as bibliotecas necessárias para compilar o PHP se encontram em um sistema UNIX. Para sistemas 64bit, é necessário especificar o diretório lib64 desta forma: --with-libdir=lib64.

--enable-zts

Ativa segurança de thread. Anteriormente ao PHP 8.0.0 em sistemas não Windows, essa opção era chamada --enable-maintainer-zts.

Opções SAPI

A lista a seguir contêm as SAPI&s (Server Application Programming Interface) para o PHP.

--with-apxs[=FILE]

Compila o módulo compartilhado do Apache. FILE é o caminho opcional para a ferramenta apxs do Apache; padrão é apxs. Assegure-se que você especificou a versão do apxs que está atualmente instalado no seu sistema e não a que está no diretório de fontes do Apache.

--with-apache[=DIR]

Compila o módulo estático do Apache. DIR é o diretório raíz do apache, sendo que o padrão é /usr/local/apache.

--with-mod_charset

Habilita as tabelas de transferência para o mod_charset (Apache Russo).

--with-apxs2[=FILE]

Compila o módulo compartilhado do Apache 2.0. FILE é o caminho opcional para a ferramenta apxs do Apache; sendo o padrão para o apxs.

--disable-cli

Para desabilitar a utilização do PHP na linha de comando (CLI) poderá utilizar a diretiva --without-pear). Para mais informações leia sobre Utilizando o PHP a partir da linha de comando (CLI)..

--enable-phpdbg

Ativa o debug interativo phpdbg no módulo SAPI.

--enable-embed[=TYPE]

Habilita a instalação da biblioteca SAPI embutida. TYPE pode ser shared ou static, sendo o padrão shared.

--with-servlet[=DIR]

Inclue o suporte à servlet. DIR é o diretório base de instalação para a JSDK. Esse SAPI requer que a extensão java seja montada como uma dl compartilhada.

--disable-cgi

Desabilita a compilação da versão CGI do PHP.

Este argumento também habilita o FastCGI.


php.ini directives

Índice

  • Lista de diretivas do php.ini
  • Lista das seções do php.ini
  • Descrição das principais diretivas do php.ini


Lista de diretivas do php.ini

Esta lista inclui as diretivas do php.ini que você pode usar para configurar o PHP.

A coluna "Modificável" mostra os modos que determinam quando e onde uma diretiva pode ser definida. Veja a seção valores modificáveis para as suas definições.

Opções de configuração
Nome | Padrão | Modificável | Registro de Alterações
allow_url_fopen | "1" | INI_SYSTEM |
allow_url_include | "0" | INI_SYSTEM | Descontinuado a partir do PHP 7.4.0.
arg_separator.input | "&" | INI_PERDIR |
arg_separator.output | "&" | INI_ALL |
assert.active | "1" | INI_ALL |
assert.bail | "0" | INI_ALL |
assert.callback | null | INI_ALL |
assert.exception | "0" | INI_ALL |
assert.quiet_eval | "0" | INI_ALL | Removido a partir do PHP 8.0.0
assert.warning | "1" | INI_ALL |
auto_append_file | null | INI_PERDIR |
auto_detect_line_endings | "0" | INI_ALL |
auto_globals_jit | "1" | INI_PERDIR |
auto_prepend_file | null | INI_PERDIR |
bcmath.scale | "0" | INI_ALL |
browscap | null | INI_SYSTEM |
cgi.check_shebang_line | "1" | INI_SYSTEM |
cgi.discard_path | "0" | INI_SYSTEM |
cgi.fix_pathinfo | "1" | INI_SYSTEM |
cgi.force_redirect | "1" | INI_SYSTEM |
cgi.nph | "0" | INI_ALL |
cgi.redirect_status_env | null | INI_SYSTEM |
cgi.rfc2616_headers | "0" | INI_ALL |
child_terminate | "0" | INI_ALL |
cli.pager | "" | INI_ALL |
cli.prompt | "\\b \\> " | INI_ALL |
cli_server.color | "0" | INI_ALL |
com.allow_dcom | "0" | INI_SYSTEM |
com.autoregister_typelib | "0" | INI_ALL |
com.autoregister_verbose | "0" | INI_ALL |
com.autoregister_casesensitive | "1" | INI_ALL |
com.code_page | "" | INI_ALL |
com.dotnet_version | "" | INI_SYSTEM | As of PHP 8.0.0
com.typelib_file | "" | INI_SYSTEM |
curl.cainfo | NULL | INI_SYSTEM |
date.default_latitude | "31.7667" | INI_ALL |
date.default_longitude | "35.2333" | INI_ALL |
date.sunrise_zenith | "90.833333" | INI_ALL | Antes do PHP 8.0.0, o padrão era "90.583333"
date.sunset_zenith | "90.833333" | INI_ALL | Antes do PHP 8.0.0, o padrão era "90.583333"
date.timezone | "UTC" | INI_ALL | A partir do PHP 8.2, um aviso é emitido quando este parâmetros é configurado para um valor inválido ou para um string vazio.
dba.default_handler | DBA_DEFAULT | INI_ALL |
default_charset | "UTF-8" | INI_ALL |
input_encoding | "" | INI_ALL |
output_encoding | "" | INI_ALL |
internal_encoding | "" | INI_ALL |
default_mimetype | "text/html" | INI_ALL |
default_socket_timeout | "60" | INI_ALL |
disable_classes | "" | Somente no php.ini |
disable_functions | "" | Somente no php.ini |
display_errors | "1" | INI_ALL |
display_startup_errors | "1" | INI_ALL | Anteriormente ao PHP 8.0.0, o valor padrão era "0".
docref_ext | "" | INI_ALL |
docref_root | "" | INI_ALL |
doc_root | null | INI_SYSTEM |
enable_dl | "1" | INI_SYSTEM | Este recurso defasado certamente será removido no futuro.
enable_post_data_reading | "On" | INI_PERDIR |
engine | "1" | INI_ALL |
error_append_string | null | INI_ALL |
error_log | null | INI_ALL |
error_log_mode | 0o644 | INI_ALL | Disponível desde o PHP 8.2.0
error_prepend_string | null | INI_ALL |
error_reporting | null | INI_ALL |
exif.encode_unicode | "ISO-8859-15" | INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | INI_ALL |
exif.encode_jis | "" | INI_ALL |
exif.decode_jis_motorola | "JIS" | INI_ALL |
exif.decode_jis_intel | "JIS" | INI_ALL |
exit_on_timeout | "" | INI_ALL |
expect.timeout | "10" | INI_ALL |
expect.loguser | "1" | INI_ALL |
expect.logfile | "" | INI_ALL |
expect.match_max | "" | INI_ALL |
expose_php | "1" | Somente no php.ini |
extension | null | Somente no php.ini |
extension_dir | "/path/to/php" | INI_SYSTEM |
fastcgi.impersonate | "0" | INI_SYSTEM |
fastcgi.logging | "1" | INI_SYSTEM |
file_uploads | "1" | INI_SYSTEM |
filter.default | "unsafe_raw" | INI_PERDIR | Descontinuado desde o PHP 8.1.0.
filter.default_flags | NULL | INI_PERDIR |
from | "" | INI_ALL |
gd.jpeg_ignore_warning | "1" | INI_ALL |
geoip.custom_directory | "" | INI_ALL |
hard_timeout | "2" | INI_SYSTEM | Disponível desde PHP 7.1.0.
highlight.comment | "#FF8000" | INI_ALL |
highlight.default | "#0000BB" | INI_ALL |
highlight.html | "#000000" | INI_ALL |
highlight.keyword | "#007700" | INI_ALL |
highlight.string | "#DD0000" | INI_ALL |
html_errors | "1" | INI_ALL |
ibase.allow_persistent | "1" | INI_SYSTEM |
ibase.max_persistent | "-1" | INI_SYSTEM |
ibase.max_links | "-1" | INI_SYSTEM |
ibase.default_db | NULL | INI_SYSTEM |
ibase.default_user | NULL | INI_ALL |
ibase.default_password | NULL | INI_ALL |
ibase.default_charset | NULL | INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | INI_ALL |
ibase.dateformat | "%Y-%m-%d" | INI_ALL |
ibase.timeformat | "%H:%M:%S" | INI_ALL |
ibm_db2.binmode | "1" | INI_ALL |
ibm_db2.i5_all_pconnect | "0" | INI_SYSTEM | Available as of ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | INI_SYSTEM | Available as of ibm_db2 1.4.9.
ibm_db2.i5_blank_userid | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_char_trim | "0" | INI_SYSTEM | Available as of ibm_db2 2.1.0.
ibm_db2.i5_dbcs_alloc | "0" | INI_SYSTEM | Available as of ibm_db2 1.5.0.
ibm_db2.i5_guard_profile | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_ignore_userid | "0" | INI_SYSTEM | Available as of ibm_db2 1.8.0.
ibm_db2.i5_job_sort | "0" | INI_SYSTEM | Available as of ibm_db2 1.8.4.
ibm_db2.i5_log_verbose | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_max_pconnect | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_override_ccsid | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_servermode_subsystem | NULL | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_sys_naming | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.instance_name | NULL | INI_SYSTEM | Available as of ibm_db2 1.0.2.
iconv.input_encoding | "" | INI_ALL | Descontinuado no PHP 5.6.0.
iconv.output_encoding | "" | INI_ALL | Descontinuado no PHP 5.6.0.
iconv.internal_encoding | "" | INI_ALL | Descontinuado no PHP 5.6.0.
ignore_repeated_errors | "0" | INI_ALL |
ignore_repeated_source | "0" | INI_ALL |
ignore_user_abort | "0" | INI_ALL |
implicit_flush | "0" | INI_ALL |
include_path | ".:/path/to/php/pear" | INI_ALL |
intl.default_locale |  | INI_ALL |
intl.error_level | 0 | INI_ALL |
intl.use_exceptions | 0 | INI_ALL | Disponível desde o PECL 3.0.0a1
last_modified | "0" | INI_ALL |
ldap.max_links | "-1" | INI_SYSTEM |
log_errors | "0" | INI_ALL |
log_errors_max_len | "1024" | INI_ALL |
mail.add_x_header | "0" | INI_PERDIR |
mail.force_extra_parameters | null | Somente no php.ini |
mail.log | "" | INI_PERDIR |
max_execution_time | "30" | INI_ALL |
max_input_nesting_level | "64" | INI_PERDIR |
max_input_vars | 1000 | INI_PERDIR |
max_input_time | "-1" | INI_PERDIR |
mbstring.language | "neutral" | INI_ALL |
mbstring.detect_order | NULL | INI_ALL |
mbstring.http_input | "pass" | INI_ALL | Descontinuado
mbstring.http_output | "pass" | INI_ALL | Descontinuado
mbstring.internal_encoding | NULL | INI_ALL | Descontinuado
mbstring.substitute_character | NULL | INI_ALL |
mbstring.func_overload | "0" | INI_SYSTEM | Descontinuado a partir do PHP 7.2.0; removido a partir do PHP 8.0.0.
mbstring.encoding_translation | "0" | INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | INI_ALL |
mbstring.strict_detection | "0" | INI_ALL |
mbstring.regex_retry_limit | "1000000" | INI_ALL | Disponível a partir do PHP 7.4.0.
mbstring.regex_stack_limit | "100000" | INI_ALL | Disponível a partir do PHP 7.3.5.
mcrypt.algorithms_dir | null | INI_ALL |
mcrypt.modes_dir | null | INI_ALL |
memcache.allow_failover | "1" | INI_ALL | Disponível desde o memcache 2.0.2.
memcache.max_failover_attempts | "20" | INI_ALL | Disponível desde o memcache 2.1.0.
memcache.chunk_size | "8192" | INI_ALL | Disponível desde o memcache 2.0.2.
memcache.default_port | "11211" | INI_ALL | Disponível desde o memcache 2.0.2.
memcache.hash_strategy | "standard" | INI_ALL | Disponível desde o memcache 2.2.0.
memcache.hash_function | "crc32" | INI_ALL | Disponível desde o memcache 2.2.0.
memcache.protocol | ascii | INI_ALL | Suportado desde o memcache 3.0.0
memcache.redundancy | 1 | INI_ALL | Suportado desde o memcache 3.0.0
memcache.session_redundancy | 2 | INI_ALL | Suportado desde o memcache 3.0.0
memcache.compress_threshold | 20000 | INI_ALL | Suportado desde o memcache 3.0.3
memcache.lock_timeout | 15 | INI_ALL | Suportado desde o memcache 3.0.4
memory_limit | "128M" | INI_ALL |
mysql.allow_local_infile | "1" | INI_SYSTEM |
mysql.allow_persistent | "1" | INI_SYSTEM |
mysql.max_persistent | "-1" | INI_SYSTEM |
mysql.max_links | "-1" | INI_SYSTEM |
mysql.trace_mode | "0" | INI_ALL |
mysql.default_port | NULL | INI_ALL |
mysql.default_socket | NULL | INI_ALL |
mysql.default_host | NULL | INI_ALL |
mysql.default_user | NULL | INI_ALL |
mysql.default_password | NULL | INI_ALL |
mysql.connect_timeout | "60" | INI_ALL |
mysqli.allow_local_infile | "0" | INI_SYSTEM | Antes do PHP 7.2.16 e 7.3.3 o padrão era "1".
mysqli.local_infile_directory |  | INI_SYSTEM | Disponível desde o PHP 8.1.0.
mysqli.allow_persistent | "1" | INI_SYSTEM |
mysqli.max_persistent | "-1" | INI_SYSTEM |
mysqli.max_links | "-1" | INI_SYSTEM |
mysqli.default_port | "3306" | INI_ALL |
mysqli.default_socket | NULL | INI_ALL |
mysqli.default_host | NULL | INI_ALL |
mysqli.default_user | NULL | INI_ALL |
mysqli.default_pw | NULL | INI_ALL |
mysqli.reconnect | "0" | INI_SYSTEM | Removido no PHP 8.2.0
mysqli.rollback_on_cached_plink | "0" | INI_SYSTEM |
mysqlnd.collect_statistics | "1" | INI_SYSTEM |
mysqlnd.collect_memory_statistics | "0" | INI_SYSTEM |
mysqlnd.debug | "" | INI_SYSTEM |
mysqlnd.log_mask | 0 | INI_ALL |
mysqlnd.mempool_default_size | 16000 | INI_ALL |
mysqlnd.net_read_timeout | "86400" | INI_ALL | Antes do PHP 7.2.0 o padrão era "31536000" e a mutabilidade era INI_SYSTEM
mysqlnd.net_cmd_buffer_size | "4096" | INI_SYSTEM |
mysqlnd.net_read_buffer_size | "32768" | INI_SYSTEM |
mysqlnd.sha256_server_public_key | "" | INI_PERDIR |
mysqlnd.trace_alloc | "" | INI_SYSTEM |
mysqlnd.fetch_data_copy | 0 | INI_ALL | Removida a partir do PHP 8.1.0
oci8.connection_class | "" | INI_ALL |
oci8.default_prefetch | "100" | INI_SYSTEM |
oci8.events | Off | INI_SYSTEM |
oci8.max_persistent | "-1" | INI_SYSTEM |
oci8.old_oci_close_semantics | Off | INI_SYSTEM | Deprecated as of PHP 8.1.0.
oci8.persistent_timeout | "-1" | INI_SYSTEM |
oci8.ping_interval | "60" | INI_SYSTEM |
oci8.prefetch_lob_size | "0" | INI_SYSTEM | Available since PECL OCI8 3.2.
oci8.privileged_connect | Off | INI_SYSTEM |
oci8.statement_cache_size | "20" | INI_SYSTEM |
odbc.default_db * | NULL | INI_ALL |
odbc.default_user * | NULL | INI_ALL |
odbc.default_pw * | NULL | INI_ALL |
odbc.allow_persistent | "1" | INI_SYSTEM |
odbc.check_persistent | "1" | INI_SYSTEM |
odbc.max_persistent | "-1" | INI_SYSTEM |
odbc.max_links | "-1" | INI_SYSTEM |
odbc.defaultlrl | "4096" | INI_ALL |
odbc.defaultbinmode | "1" | INI_ALL |
odbc.default_cursortype | "3" | INI_ALL |
opcache.enable | "1" | INI_ALL |
opcache.enable_cli | "0" | INI_SYSTEM | Entre PHP 7.1.2 e 7.1.6 inclusive, o padrão era "1"
opcache.memory_consumption | "128" | INI_SYSTEM |
opcache.interned_strings_buffer | "8" | INI_SYSTEM |
opcache.max_accelerated_files | "10000" | INI_SYSTEM |
opcache.max_wasted_percentage | "5" | INI_SYSTEM |
opcache.use_cwd | "1" | INI_SYSTEM |
opcache.validate_timestamps | "1" | INI_ALL |
opcache.revalidate_freq | "2" | INI_ALL |
opcache.revalidate_path | "0" | INI_ALL |
opcache.save_comments | "1" | INI_SYSTEM |
opcache.fast_shutdown | "0" | INI_SYSTEM | Removido no PHP 7.2.0
opcache.enable_file_override | "0" | INI_SYSTEM |
opcache.optimization_level | "0x7FFEBFFF" | INI_SYSTEM | Alterado de 0x7FFFBFFF no PHP 7.3.0
opcache.inherited_hack | "1" | INI_SYSTEM | Removido no PHP 7.3.0
opcache.dups_fix | "0" | INI_ALL |
opcache.blacklist_filename | "" | INI_SYSTEM |
opcache.max_file_size | "0" | INI_SYSTEM |
opcache.consistency_checks | "0" | INI_ALL | Desativado a partir do 8.1.18 e 8.2.5. Removido a partir do PHP 8.3.0
opcache.force_restart_timeout | "180" | INI_SYSTEM |
opcache.error_log | "" | INI_SYSTEM |
opcache.log_verbosity_level | "1" | INI_SYSTEM |
opcache.record_warnings | "0" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.preferred_memory_model | "" | INI_SYSTEM |
opcache.protect_memory | "0" | INI_SYSTEM |
opcache.mmap_base | null | INI_SYSTEM |
opcache.restrict_api | "" | INI_SYSTEM |
opcache.file_update_protection | "2" | INI_ALL |
opcache.huge_code_pages | "0" | INI_SYSTEM |
opcache.lockfile_path | "/tmp" | INI_SYSTEM |
opcache.opt_debug_level | "0" | INI_SYSTEM | Disponível a partir do PHP 7.1.0
opcache.file_cache | NULL | INI_SYSTEM |
opcache.file_cache_only | "0" | INI_SYSTEM |
opcache.file_cache_consistency_checks | "1" | INI_SYSTEM |
opcache.file_cache_fallback | "1" | INI_SYSTEM | Somente Windows.
opcache.validate_permission | "0" | INI_SYSTEM | Disponível a partir do PHP 7.0.14
opcache.validate_root | "0" | INI_SYSTEM | Disponível a partir do PHP 7.0.14
opcache.preload | "" | INI_SYSTEM | Disponível a partir do PHP 7.4.0
opcache.preload_user | "" | INI_SYSTEM | Disponível a partir do PHP 7.4.0
opcache.cache_id | "" | INI_SYSTEM | Somente Windows. Disponível a partir do PHP 7.4.0
opcache.jit | "tracing" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_buffer_size | "0" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_debug | "0" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_bisect_limit | "0" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_prof_threshold | "0.005" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_max_root_traces | "1024" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_max_side_traces | "128" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_max_exit_counters | "8192" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_hot_loop | "64" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_hot_func | "127" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_hot_return | "8" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_hot_side_exit | "8" | INI_SYSTEM | Disponível a partir do PHP 8.0.0
opcache.jit_blacklist_root_trace | "16" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_blacklist_side_trace | "8" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_max_loop_unrolls | "8" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_max_recursive_calls | "2" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_max_recursive_returns | "2" | INI_ALL | Disponível a partir do PHP 8.0.0
opcache.jit_max_polymorphic_calls | "2" | INI_ALL | Disponível a partir do PHP 8.0.0
open_basedir | null | INI_ALL |
output_buffering | "0" | INI_PERDIR |
output_handler | null | INI_PERDIR |
pcre.backtrack_limit | "1000000" | INI_ALL |
pcre.recursion_limit | "100000" | INI_ALL |
pcre.jit | "1" | INI_ALL |
pdo.dsn.* |  | Somente php.ini |
pdo_odbc.connection_pooling | "strict" | INI_ALL |
pdo_odbc.db2_instance_name | NULL | INI_SYSTEM | Este recurso defasado certamente será removido no futuro.
pgsql.allow_persistent | "1" | INI_SYSTEM |
pgsql.max_persistent | "-1" | INI_SYSTEM |
pgsql.max_links | "-1" | INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | INI_SYSTEM |
pgsql.ignore_notice | "0" | INI_ALL |
pgsql.log_notice | "0" | INI_ALL |
phar.readonly | "1" | INI_ALL |
phar.require_hash | "1" | INI_ALL |
phar.cache_list | "" | INI_SYSTEM |
post_max_size | "8M" | INI_PERDIR |
precision | "14" | INI_ALL |
realpath_cache_size | "16K" | INI_SYSTEM |
realpath_cache_ttl | "120" | INI_SYSTEM |
register_argc_argv | "1" | INI_PERDIR |
report_memleaks | "1" | INI_ALL |
report_zend_debug | "1" | INI_ALL |
request_order | "" | INI_PERDIR |
runkit.superglobal | "" | INI_PERDIR |
runkit.internal_override | "0" | INI_SYSTEM |
sendmail_from | null | INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | INI_SYSTEM |
serialize_precision | "-1" | INI_ALL | Antes do PHP 7.1.0, o valor padrão era 17.
session.save_path | "" | INI_ALL |
session.name | "PHPSESSID" | INI_ALL |
session.save_handler | "files" | INI_ALL |
session.auto_start | "0" | INI_PERDIR |
session.gc_probability | "1" | INI_ALL |
session.gc_divisor | "100" | INI_ALL |
session.gc_maxlifetime | "1440" | INI_ALL |
session.serialize_handler | "php" | INI_ALL |
session.cookie_lifetime | "0" | INI_ALL |
session.cookie_path | "/" | INI_ALL |
session.cookie_domain | "" | INI_ALL |
session.cookie_secure | "0" | INI_ALL | Antes do PHP 7.2.0, o padrão era "".
session.cookie_httponly | "0" | INI_ALL | Antes do PHP 7.2.0, o padrão era "".
session.cookie_samesite | "" | INI_ALL | Disponível a partir do PHP 7.3.0.
session.use_strict_mode | "0" | INI_ALL |
session.use_cookies | "1" | INI_ALL |
session.use_only_cookies | "1" | INI_ALL |
session.referer_check | "" | INI_ALL |
session.cache_limiter | "nocache" | INI_ALL |
session.cache_expire | "180" | INI_ALL |
session.use_trans_sid | "0" | INI_ALL |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | INI_ALL | Disponível desde o PHP 7.1.0.
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | INI_ALL | Disponível desde o PHP 7.1.0.
session.sid_length | "32" | INI_ALL | Disponível desde o PHP 7.1.0.
session.sid_bits_per_character | "5" | INI_ALL | Disponível desde o PHP 7.1.0.
session.upload_progress.enabled | "1" | INI_PERDIR |
session.upload_progress.cleanup | "1" | INI_PERDIR |
session.upload_progress.prefix | "upload_progress_" | INI_PERDIR |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | INI_PERDIR |
session.upload_progress.freq | "1%" | INI_PERDIR |
session.upload_progress.min_freq | "1" | INI_PERDIR |
session.lazy_write | "1" | INI_ALL |
session.hash_function | "0" | INI_ALL | Removido no PHP 7.1.0.
session.hash_bits_per_character | "4" | INI_ALL | Removido no PHP 7.1.0.
session.entropy_file | "" | INI_ALL | Removido no PHP 7.1.0.
session.entropy_length | "0" | INI_ALL | Removido no PHP 7.1.0
short_open_tag | "1" | INI_PERDIR |
SMTP | "localhost" | INI_ALL |
smtp_port | "25" | INI_ALL |
soap.wsdl_cache_enabled | 1 | INI_ALL |
soap.wsdl_cache_dir | /tmp | INI_ALL |
soap.wsdl_cache_ttl | 86400 | INI_ALL |
soap.wsdl_cache | 1 | INI_ALL |
soap.wsdl_cache_limit | 5 | INI_ALL |
sql.safe_mode | "0" | INI_SYSTEM | Removido desde o PHP 7.2.0
sqlite3.extension_dir | "" | INI_SYSTEM |
sqlite3.defensive | 1 | INI_USER | Disponível a partir do PHP 7.2.17 e 7.3.4 para libsqlite = 3.26.0. Antes do PHP 8.2.0, essa configuração só podia ser alterada como INI_SYSTEM.
syslog.facility | "LOG_USER" | INI_SYSTEM | Disponível desde o PHP 7.3.0.
syslog.filter | "no-ctrl" | INI_ALL | Disponível desde o PHP 7.3.0.
syslog.ident | "php" | INI_SYSTEM | Disponível desde o PHP 7.3.0.
sys_temp_dir | "" | INI_SYSTEM |
sysvshm.init_mem | 10000 | INI_SYSTEM |
tidy.default_config | "" | INI_SYSTEM |
tidy.clean_output | "0" | INI_USER |
track_errors | "0" | INI_ALL | Descontinuado a partir do PHP 7.2.0, removido no PHP 8.0.0.
unserialize_callback_func | null | INI_ALL |
unserialize_max_depth | "4096" | INI_ALL | Disponível a partir do PHP 7.4.0.
uploadprogress.file.filename_template | "/tmp/upt_%s.txt" | INI_ALL |
upload_max_filesize | "2M" | INI_PERDIR |
max_file_uploads | 20 | INI_SYSTEM |
upload_tmp_dir | null | INI_SYSTEM |
url_rewriter.hosts | "" | INI_ALL | Disponível a partir do PHP 7.1.0.
url_rewriter.tags | "form=" | INI_ALL | Antes do PHP 7.1.0, o valor padrão era "a=href,area=href,frame=src,form=,fieldset=".
user_agent | null | INI_ALL |
user_dir | null | INI_SYSTEM |
user_ini.cache_ttl | "300" | INI_SYSTEM |
user_ini.filename | ".user.ini" | INI_SYSTEM |
uopz.disable | "0" | INI_SYSTEM | Available as of uopz 5.0.2
uopz.exit | "0" | INI_SYSTEM | Available as of uopz 6.0.1
uopz.overloads | "1" | INI_SYSTEM | Available as of uopz 2.0.2. Removed as of uopz 5.0.0.
variables_order | "EGPCS" | INI_PERDIR |
windows.show_crt_warning | "0" | INI_ALL |
xbithack | "0" | INI_ALL |
xmlrpc_errors | "0" | INI_SYSTEM |
xmlrpc_error_number | "0" | INI_ALL |
yaz.keepalive | "120" | INI_ALL |
yaz.log_mask | null | INI_ALL | Disponível desde yaz 1.0.3.
zend.assertions | "1" | INI_ALL |
zend.detect_unicode | "1" | INI_ALL |
zend.enable_gc | "1" | INI_ALL |
zend.multibyte | "0" | INI_PERDIR |
zend.script_encoding | null | INI_ALL |
zend.signal_check | "0" | INI_SYSTEM |
zend_extension | null | Somente no php.ini |
zlib.output_compression | "0" | INI_ALL |
zlib.output_compression_level | "-1" | INI_ALL |
zlib.output_handler | "" | INI_ALL |


Lista das seções do php.ini

Esta lista inclui as seções do php.ini que você pode modificar para configurar sua instalação do PHP baseado em host ou em pastas. Estas seções são opcionais.

Estas seções não afetam diretamente o PHP. Elas são usadas para agrupar outras diretivas php.ini e agir de acordo um host específico ou uma pasta específica.

Estas seções são usadas somente no modo CGI/FastCGI e não podem modificar as diretivas extension e zend_extension.

Seções
Nome | Modificável | Registro de Alterações
[HOST=] | INI_SYSTEM |
[PATH=] | INI_SYSTEM |

Aqui está uma breve explicação das diretivas de configuração.

[HOST=<host>]

Esta seção permite definir um conjunto de diretivas do php.ini que terá efeito no host definido.

Exemplo #1 Ativa a exibição completa de erros na tela para o domínio dev.

[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On

[PATH=<path>]

Esta seção permite definir um conjunto de diretivas do php.ini que terá efeito quando um script for executado a partir da pasta definida.

Exemplo #2 Adiciona o script security.php para áreas protegidas

[PATH=/home/site/public/secure]
auto_prepend_file=security.php


Descrição das principais diretivas do php.ini

Esta lista inclui as principais diretivas do php.ini que podemos definir para configurar o PHP. Diretivas manipuladas por extensões são listadas e detalhadas nas respectivas páginas de documentação da extensão; Informações sobre diretivas de sessão, por exemplo, podem ser encontradas na página de sessões.

Nota:

Os padrões listados aqui são utilizados quando o php.ini não é carregado; os valores do php.ini de produção e desenvolvimento podem variar.

Opções de Linguagem

Opções de Linguagem e Configurações Diversas
Nome | Padrão | Modificável | Registro de Alterações
short_open_tag | "1" | INI_PERDIR |
precision | "14" | INI_ALL |
serialize_precision | "-1" | INI_ALL | Antes do PHP 7.1.0 o valor padrão era 17.
disable_functions | "" | INI_SYSTEM apenas |
disable_classes | "" | php.ini apenas |
exit_on_timeout | "" | INI_ALL |
expose_php | "1" | php.ini apenas |
hard_timeout | "2" | INI_SYSTEM | Disponível a partir do PHP 7.1.0.
zend.exception_ignore_args | "0" | INI_ALL | Disponível a partir do PHP 7.4.0
zend.multibyte | "0" | INI_ALL |
zend.script_encoding | NULL | INI_ALL |
zend.detect-unicode | NULL | INI_ALL |
zend.signal_check | "0" | INI_SYSTEM |
zend.assertions | "1" | INI_ALL com restrições |
zend.exception_string_param_max_len | "15" | INI_ALL | Disponível desde o PHP 8.0.0.

Aqui está uma breve explicação das diretivas de configuração.

short_open_tag bool

Informa ao PHP se a forma abreviada (<? ?>) da tag de abertura do PHP é permitida. Se quiser usar o PHP em conjunto com XML, esta opção pode ser desabilitada a fim de usar <?xml ?> em linha. Caso contrário, pode-se imprimir isto com o PHP, por exemplo <?php echo '<?xml version="1.0"?>'; ?>. Além disso, se desabilitada, deve ser usada a forma extensa da tag de abertura do PHP (<?php ?>).

Nota:

Esta diretiva não afeta o equivalente <?=, que está sempre disponível.

precision int
O número de dígitos significativos exibidos em números de ponto flutuante. -1 significa que um algoritmo avançado para arredondar estes números será utilizado.
serialize_precision int
O número de dígitos significativos armazenados durante a serialização de números de pontos flutuantes. -1 significa que um algoritmo avançado para arredondar estes números será utilizado.
expose_php bool

Expõe para o mundo que o PHP está instalado no servidor, o que inclui a versão do PHP dentro do header HTTP (por exemplo, X-Powered-By: PHP/5.3.7).

disable_functions string

Esta diretiva permite desabilitar certas funções. Ela recebe uma lista de nomes de funções separadas por vírgula.

Apenas funções internas podem ser desabilitadas usando esta diretiva. Funções definidas pelo usuário não são afetadas.

Esta diretiva deve ser configurada no php.ini. Por exemplo, ela não pode ser configurada no httpd.conf.

disable_classes string
Esta diretiva permite desabilitar certas classes. Ela recebe uma lista de nomes de classes separadas por vírgula. Esta diretiva deve ser configurada no php.ini. Por exemplo, ela não pode ser configurada no httpd.conf.
zend.assertions int
Quando configurada para 1, código assertivo será gerado e executado (modo de desenvolvimento). Quando configurada para 0 então código assertivo será gerado mas ignorado (não executado) em tempo de execução. Quando configurada para -1 código assertivo não será gerado, tornando as asserções sem custo (modo de produção).

Nota:

Se um processo é iniciado em modo de produção, zend.assertions não poderá ser modificada em tempo de execução, já que o código para as asserções não foi gerado.

Se um processo é iniciado em modo de desenvolvimento, zend.assertions não poderá ser configurada para -1 em tempo de execução.

zend.exception_string_param_max_len int
O tamanho máximo das strings na serialização string dos stack traces. Deve ser entre "0" e "1000000".
hard_timeout int

Quando o timeout é configurado em max_execution_time é alcançado, o runtime PHP irá descarregar os recursos de maneira organizada. Se algo travar nesse processo, o hard_timeout irá começar a contar os segundos configurados. Se o hard_timeout for atingido, o PHP irá descarregar de maneira desorganizada. Quando configurado para zero, o hard_timeout está desconfigurado.

Quando o PHP atinge o hard_timeout, vai ocorrer algo parecido com isso::

Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0

zend.exception_ignore_args bool

Exclui argumentos de rastreamentos de pilha (stack traces), gerados a partir de exceções.

zend.multibyte bool

Permite a análise de arquivos fontes em codificações multibyte. Habilitar zend.multibyte é necessário para utilizar character sets como SJIS, BIG5, etc., que contém caracteres especiais em dados de strings multibyte. Codificações compatíveis com ISO-8859-1 como UTF-8, EUC, etc. não requerem esta opção.

Habilitar o zend.multibyte requer que a extensão mbstring esteja disponível.

zend.script_encoding string

Este valor será usado a menos que uma diretiva declare(encoding=...) apareça no início do script. Quando uma codificação incompatível com ISO-8859-1 é usada, ambas zend.multibyte e zend.script_encoding devem ser usadas.

Strings literais serão transliteradas de zend.script_encoding para mbstring.internal_encoding, como se a função mb_convert_encoding() tivesse sido chamada.

zend.detect_unicode bool

Verifica o BOM (Byte Order Mark) e determina se o arquivo contém caracteres multibyte válidos. Essa detecção é realizada antes do processamento de __halt_compiler(). Disponível apenas no modo Zend Multibyte.

zend.signal_check bool

Verifica se há manipuladores de sinais substituídos no encerramento.

exit_on_timeout bool

Esta é uma diretiva unicamente do módulo mod_php do Apache1 que força um subprocesso do Apache a sair se ocorrer o timeout de execução do PHP. Esse timeout causa uma chamada interna a longjmp() no Apache1 que pode deixar algumas extensões em um estado inconsistente. Ao terminar o processo, quaisquer bloqueios ou memória pendentes serão liberados.

Limites de Recursos

Limites de Recursos
Nome | Padrão | Modificável | Registro de Alterações
memory_limit | "128M" | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

memory_limit int

Define a quantidade máxima de memória em bytes que um script pode alocar. Isto ajuda a prevenir que scripts mal escritos consumam toda a memória disponível no servidor. Note que para que não haja limite de memória, esta diretiva deve ser configurada para -1.

Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada.

Veja também: max_execution_time.

Ajustes de Desempenho

Ajustes de Desempenho
Nome | Padrão | Modificável | Registro de Alterações
realpath_cache_size | "4M" | INI_SYSTEM | Antes do PHP 7.0.16 e 7.1.2, o padrão era "16K"
realpath_cache_ttl | "120" | INI_SYSTEM |

Nota:

O uso da diretiva open_basedir irá desativar o cache do caminho real.

Aqui está uma breve explicação das diretivas de configuração.

realpath_cache_size int

Determina o tamanho do cache do realpath a ser usado pelo PHP. Este valor deve ser aumentado em sistemas onde o PHP abre muitos arquivos, para refletir a quantidade das operações de arquivo realizadas.

O tamanho representa o número total de bytes nas strings de caminhos armazenadas, mais o tamanho dos dados associados à entrada de cache. Isto significa que para armazenar caminhos mais longos no cache, o tamanho de cache deve ser maior. Esse valor não controla diretamente o número de caminhos distintos que podem ser armazenados em cache.

O tamanho necessário para os dados da entrada de cache depende do sistema operacional.

realpath_cache_ttl int

Duração do tempo (em segundos) pela qual armazenar em cache as informações do realpath para um dado arquivo ou diretório. Para sistemas com arquivos que raramente mudam, considere aumentar o valor.

Manipulação de Dados

Opções de Configuração de Manipulação de Dados
Nome | Padrão | Modificável | Registro de Alterações
arg_separator.output | "&" | INI_ALL |
arg_separator.input | "&" | INI_PERDIR |
variables_order | "EGPCS" | INI_PERDIR |
request_order | "" | INI_PERDIR |
auto_globals_jit | "1" | INI_PERDIR |
register_argc_argv | "1" | INI_PERDIR |
enable_post_data_reading | "1" | INI_PERDIR |
post_max_size | "8M" | INI_PERDIR |
auto_prepend_file | NULL | INI_PERDIR |
auto_append_file | NULL | INI_PERDIR |
default_mimetype | "text/html" | INI_ALL |
default_charset | "UTF-8" | INI_ALL |
input_encoding | "" | INI_ALL |
output_encoding | "" | INI_ALL |
internal_encoding | "" | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

arg_separator.output string

O separador usado em URLs gerados pelo PHP para separar argumentos.

arg_separator.input string

Lista de separadores usados pelo PHP para analisar URLs de entrada em variáveis.

Nota:

Cada caractere nesta diretiva é considerado como separador!

variables_order string

Configura a ordem de análise das variáveis EGPCS (Environment, Get, Post, Cookie e Server). Por exemplo, se variables_order estiver configurada como "SP" então o PHP irá criar as variáveis superglobals $_SERVER e $_POST, mas não irá criar $_ENV, $_GET e $_COOKIE. Configurar como "" significa que nenhuma superglobals será definida.

Aviso

Em ambas as SAPIs CGI e FastCGI, $_SERVER também é preenchida por valores do ambiente; S é sempre equivalente a ES independentemente da inclusão de E em outra parte desta diretiva.

Nota:

O conteúdo e a ordem de $_REQUEST também são afetados por esta diretiva.

request_order string

Esta diretiva descreve a ordem na qual o PHP registra as variáves GET, POST e Cookie no array _REQUEST. O registro é feito da esquerda para direita, valores mais recentes sobrescrevem os valores mais antigos.

Se esta diretiva não está definida variables_order é usada para o conteúdo de $_REQUEST.

Note que os arquivos php.ini da distribuição padrão não contêm o 'C' para cookies, por motivos de segurança.

auto_globals_jit bool

Quando ativada, as variáveis SERVER, REQUEST e ENV são criadas quando elas são usadas pela primeira vez ("Just In Time") ao invés de quando o script inicia. Se estas variáveis não são usadas dentro de um script, habilitar esta diretiva resultará em um ganho de desempenho.

Aviso

O uso das variáveis SERVER, REQUEST e ENV é verificado durante o tempo de compilação então usá-las, por exemplo, em variáveis variáveis não causará sua inicialização.

register_argc_argv bool
Informa ao PHP se deve declarar variáveis argv & argc (que podem conter as informações das requisições GET). Veja também PHP em linha de comando.
enable_post_data_reading bool
Desabilitar esta opção faz com que $_POST e $_FILES não sejam preenchidos. A única forma de ler dados postados será através do stream wrapper php://input. Isto pode ser útil para intermediar requisições ou para processar dados POST de uma maneira eficiente em termos de memória alocada.
post_max_size int
Configura o tamanho máximo dos dados postados. Esta configuração também afeta o upload de arquivos. Para carregar arquivos grandes este valor deve ser maior que upload_max_filesize. De maneira geral memory_limit deve ser maior que post_max_size. Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada. Se o tamanho dos dados postados for maior que post_max_size então as variáveis superglobals $_POST e $_FILES ficarão vazias. Isto pode ser observado de várias maneiras, por exemplo, passando uma variável $_GET ao script que processará os dados, por exemplo, <form action="edit.php?processed=1">, e então verificando se $_GET['processed'] está preenchida.

Nota:

O PHP permite sufixos para valores em bytes, incluindo K (kilo), M (mega) e G (giga). O PHP fará as conversões automaticamente se você utilizar qualquer um destes. Cuidado para não exceder o limite de inteiros sinalizados de 32 bit (ao usar versões de 32 bit) uma vez que isso fará o script falhar.

Changelog de post_max_size
Versão | Descrição
5.3.4 | post_max_size = 0 não irá desabilitar o limite quando o conteúdo for do tipo application/x-www-form-urlencoded ou não esteja registrado no PHP.
5.3.2 , 5.2.12 | Permite tamanho ilimitado de dados postados ao configurar post_max_size como 0.

auto_prepend_file string

Especifica o nome de um arquivo que é automaticamente analisado antes do arquivo principal. O arquivo é incluído como se tivesse sido chamado com require, então include_path é utilizado.

O valor especial none desativa a auto-inclusão.

auto_append_file string

Especifica o nome de um arquivo que é automaticamente analisado depois do arquivo principal. O arquivo é incluído como se tivesse sido chamado com require, então include_path é utilizado.

O valor especial none desativa a auto-inclusão.

Nota: Se o script for terminado com exit(), então a auto-inclusão não ocorrerá.

default_mimetype string

Por padrão o PHP irá imprimir um media type utilizando o header Content-Type. Para desabilitar o envio da codificação configure esta opção como vazio.

O padrão interno do PHP é o media type text/html.

default_charset string

"UTF-8" é o valor padrão e o valor desta diretiva é utilizado como o character set padrão para htmlentities(), html_entity_decode() e htmlspecialchars() se o parâmetro encoding for omitido. O valor de default_charset também será utilizado para configurar o character set padrão para as funções iconv se as opções de configuração iconv.input_encoding, iconv.output_encoding e iconv.internal_encoding não estiverem definidas, e também para as funções mbstring se as opções de configuração mbstring.http_input, mbstring.http_output e mbstring.internal_encoding não estiverem definidas.

Todas as versões do PHP usarão este valor como o charset no header padrão Content-Type enviado pelo PHP caso o header não seja sobrescrito por uma chamada à função header().

Configurar default_charset para um valor vazio não é recomendado.

input_encoding string

Esta configuração é utilizada por módulos multibyte como mbstring e iconv. O padrão é vazio.

output_encoding string

Esta configuração é utilizada por módulos multibyte como mbstring e iconv. O padrão é vazio.

internal_encoding string

Esta configuração é utilizada por módulos multibyte como mbstring e iconv. O padrão é vazio. Se vazio, default_charset é utilizado.

Caminhos e Diretórios

Caminhos e Opções de Configuração de Diretórios
Nome | Padrão | Modificável | Registro de Alterações
include_path | ".;/path/to/php/pear" | INI_ALL |
open_basedir | NULL | INI_ALL |
doc_root | NULL | INI_SYSTEM |
user_dir | NULL | INI_SYSTEM |
user_ini.cache_ttl | "300" | INI_SYSTEM |
user_ini.filename | ".user.ini" | INI_SYSTEM |
extension_dir | "/path/to/php" | INI_SYSTEM |
extension | NULL | Apenas no php.ini |
zend_extension | NULL | Apenas no php.ini |
cgi.check_shebang_line | "1" | INI_SYSTEM |
cgi.discard_path | "0" | INI_SYSTEM |
cgi.fix_pathinfo | "1" | INI_SYSTEM |
cgi.force_redirect | "1" | INI_SYSTEM |
cgi.nph | "0" | INI_SYSTEM |
cgi.redirect_status_env | NULL | INI_SYSTEM |
cgi.rfc2616_headers | "0" | INI_ALL |
fastcgi.impersonate | "0" | INI_SYSTEM |
fastcgi.logging | "1" | INI_SYSTEM |

Aqui está uma breve explicação das diretivas de configuração.

include_path string

Especifica uma lista de diretórios onde as funções require, include, fopen(), file(), readfile() e file_get_contents() procuram por arquivos. O formato é como a variável de ambiente PATH: uma lista de diretórios separados por dois pontos no Unix ou ponto e vírgula no Windows.

O PHP considera cada item no include_path separadamente ao procurar por arquivos para incluir. Ele irá verificar o primeiro caminho, e se não o encontrar, verificar o próximo caminho, até que encontre o arquivo incluído ou retorne com um E_WARNING ou um E_ERROR. Você pode modificar ou configurar o include_path em tempo de execução usando set_include_path().

Exemplo #1 include_path no Unix

include_path=".:/php/includes"

Exemplo #2 include_path no Windows

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

Utilizar um . no include_path permite inclusões relativas ao diretório atual. Entretanto é mais eficiente utilizar explicitamente include './file' em vez de fazer o PHP sempre procurar no diretório atual a cada inclusão.

Nota:

Variáveis ENV também estão acessíveis em arquivos .ini. Assim é possível referenciar o diretório home utilizando ${LOGIN} e ${USER}.

Variáveis de ambiente podem variar entre APIs de servidor já que esses ambientes podem ser diferentes.

Exemplo #3 include_path do Unix utilizando a variável de ambiente ${USER}

include_path = ".:${USER}/pear/php"

open_basedir string

Limita os arquivos que podem ser acessados pelo PHP à árvore de diretório especificada, incluindo o próprio arquivo.

Quando um script tenta acessar o sistema de arquivos, por exemplo utilizando include ou fopen(), a localização do arquivo é verificada. Quando o arquivo está fora da árvore de diretório especificada, o PHP se recusará a acessá-lo. Todos os links simbólicos são resolvidos, então não é possível evitar esta restrição com um link simbólico. Se o arquivo não existe então o link simbólico não pode ser resolvido e o nome do arquivo é comparado a um open_basedir (resolvido).

open_basedir pode afetar mais que apenas as funções de sistema de arquivos; por exemplo, se o MySQL está configurado para utilizar os drivers mysqlnd, LOAD DATA INFILE será afetado por open_basedir. Grande parte da funcionalidade extendida do PHP utiliza open_basedir desta maneira.

O valor especial . indica que o diretório atual do script será utilizado como o diretório base. Isto é, no entanto, perigoso pois o diretório atual do script pode ser facilmente alterado com chdir().

No httpd.conf open_basedir pode ser desabilitada (por exemplo, em alguns hosts virtuais) da mesma forma que quaisquer outras diretivas de configuração com "php_admin_value open_basedir none".

No Windows os diretórios são separados com um ponto e vírgula. Em todos os outros sistemas os diretórios são separados com dois pontos. Como um módulo Apache os caminhos de open_basedir de diretórios pai agora são automaticamente herdados.

A restrição especificada com open_basedir é um nome de diretório, não um prefixo.

O padrão é permitir que todos os arquivos sejam abertos.

Nota:

open_basedir pode ser restringido em tempo de execução. Isto significa que se open_basedir é configurado para /www/ no php.ini então um script pode restringir a configuração para /www/tmp/ em tempo de execução com ini_set(). Ao listar vários diretórios é possível utilizar a constante PATH_SEPARATOR como um separador independentemente do sistema operacional.

Nota:

O uso da diretiva open_basedir definirá realpath_cache_size como 0 e assim desabilitará o cache do caminho real.

Cuidado

open_basedir é rede de segurança extra, mas não é uma proteção total, e portanto não deve-se depender para garantir a segurança.

doc_root string

O "diretório raiz" do PHP no servidor. Utilizado apenas se estiver informado. Se o PHP não foi compilado com FORCE_REDIRECT, você deve configurar doc_root se estiver rodando o PHP em modo CGI em qualquer servidor web (diferente do IIS). A alternativa é utilizar a configuração cgi.force_redirect abaixo.

user_ini.cache_ttl int

user_ini.filename string

user_dir string

O nome base do diretório utilizado como diretório home do usuário pelos arquivos do PHP, por exemplo public_html .

extension_dir string

O diretório no qual o PHP deve procurar por extensões carregadas dinamicamente. É recomendado especificar um caminho absoluto. Veja também: enable_dl e dl().

extension string

Quais extensões carregáveis dinamicamente carregar quando o PHP inicia.

zend_extension string

Nome da extensão Zend carregável dinamicamente (por exemplo, XDebug) a carregar quando o PHP inicia.

cgi.check_shebang_line bool

Controla se o PHP CGI verifica linhas iniciando com #! (shebang) no início do script em execução. Esta linha pode ser necessária se o script suporta execução tanto como script autônomo e via PHP CGI. O PHP em modo CGI pula esta linha e ignora seu conteúdo se esta diretiva estiver habilitada.

cgi.discard_path bool

Se habilitada, o binário PHP CGI pode ser colocado com segurança fora da árvore de diretório web e não será possível contornar a segurança .htaccess.

cgi.fix_pathinfo bool

Fornece suporte real a PATH_INFO/ PATH_TRANSLATED para CGI. O comportamento anterior do PHP era definir PATH_TRANSLATED como SCRIPT_FILENAME e não perceber o que PATH_INFO é. Para mais informações sobre PATH_INFO, veja as especificações do modo CGI. Configurar esta diretiva para 1 fará o modo CGI corrigir seus caminhos para obedecer à especificação. Configurar com zero faz o PHP se comportar como antes. Ela é habilitada por padrão. Você deve corrigir seus scripts de forma a usar SCRIPT_FILENAME ao invés de PATH_TRANSLATED.

cgi.force_redirect bool

cgi.force_redirect é necessário para prover segurança ao rodar o PHP em modo CGI na maioria dos servidores web. Se deixada indefinida, o PHP irá habilitá-la por padrão. Você pode desabilitá-la por sua conta e risco.

Nota:

Usuários do Windows: Ao utilizar o IIS esta opção deve ser desabilitada. O mesmo vale para servidores OmniHTTPD e Xitami.

cgi.nph bool

Se cgi.nph estiver habilitada, forçará o CGI a enviar sempre Status: 200 em todas as requisições.

cgi.redirect_status_env string

Se cgi.force_redirect estiver habilitada e você não está rodando sob servidores web Apache ou Netscape (iPlanet), você pode precisar configurar um nome de variável de ambiente que o PHP irá procurar para saber que é correto continuar a execução.

Nota:

Configurar esta variável pode causar problemas de segurança, tenha certeza do que está fazendo antes de alterar.

cgi.rfc2616_headers int

Indica ao PHP qual o tipo de headers usar ao enviar o código de resposta HTTP. Se configurada para 0, o PHP envia um header "Status:" da » RFC 3875 que é suportado pelo Apache e outros servidores web. Quando esta opção é configurada para 1, o PHP enviará headers em conformidade com a » RFC 2616.

Se esta opção estiver habilitada e o PHP estiver rodando em um ambiente CGI (por exemplo, PHP-FPM) não devem ser utilizados headers de resposta de status HTTP no padrão RFC 2616. Em vez disso, deve ser usado o seu equivalente RFC 3875, por exemplo, em vez de header("HTTP/1.0 404 Not found"); deve ser usado header("Status: 404 Not Found");.

Deixe-a configurada para 0 a não ser que saiba exatamente o que está fazendo.

fastcgi.impersonate string

O FastCGI rodando no IIS (em sistemas baseados em WINNT) suporta a habilidade de representar os tokens de segurança do cliente que faz a requisição. Isso permite ao IIS definir o contexto de segurança no qual a requisição executa. O mod_fastcgi rodando no Apache atualmente não suporta esta funcionalidade (17/03/2002) Configure para 1 ao rodar no ISS. O padrão é zero.

fastcgi.logging bool

Ativa o logging do SAPI ao utilizar o FastCGI. O padrão é habilitar o logging.

Upload de Arquivos

Opções de Configurações de Upload de Arquivos
Nome | Padrão | Modificável | Registro de Alterações
file_uploads | "1" | INI_SYSTEM |
upload_tmp_dir | NULL | INI_SYSTEM |
max_input_nesting_level | 64 | INI_PERDIR |
max_input_vars | 1000 | INI_PERDIR |
upload_max_filesize | "2M" | INI_PERDIR |
max_file_uploads | 20 | INI_PERDIR |

Aqui está uma breve explicação das diretivas de configuração.

file_uploads bool

Permite ou não upload de arquivos através do HTTP. Veja também as diretivas upload_max_filesize, upload_tmp_dir e post_max_size.

upload_tmp_dir string

O diretório temporário utilizado para armazenar arquivos durante o upload. Precisa ter permissão de escrita para qualquer usuário que o PHP esteja usando para rodar. Se não especificado o PHP usará o padrão do sistema.

Se o diretório especificado aqui não tiver permissão de escrita, o PHP tenta o diretório temporário padrão do sistema. Se open_basedir estiver habilitado, então o diretório padrão do sistema deve ser permitido para que o upload tenha sucesso.

upload_max_filesize int

O tamanho máximo de um arquivo enviado.

post_max_size precisa ser maior que esse valor.

Quando um int é usado, o valor é medido em bytes. A notação abreviada, como descrita nesta FAQ, também pode ser usada.
max_file_uploads int

O número máximo de arquivos permitidos simultaneamente durante um upload. Campos de upload deixados em branco no envio não contam para este limite.

SQL Geral

Opções de Configurações Gerais de SQL
Nome | Padrão | Modificável | Registro de Alterações
sql.safe_mode | "0" | INI_SYSTEM | Removido no PHP 7.2.0.

Aqui está uma breve explicação das diretivas de configuração.

sql.safe_mode bool

Se habilitada as funções de conexão de bancos de dados que especifiquem valores padrão usarão esses valores no lugar de quaisquer argumentos passados pelo usuário. Para detalhes sobre os valores padrão, veja a documentação das funções de conexão relevantes.

Aviso

Este recurso foi REMOVIDO a partir do PHP 7.2.0.

Windows

Opções de Configurações Específicas do Windows
Nome | Padrão | Modificável | Registro de Alterações
windows.show_crt_warning | "0" | INI_ALL |

Aqui está uma breve explicação das diretivas de configuração.

windows.show_crt_warning bool

Esta diretiva exibe os alertas do CRT do Windows quando habilitada.


Categorização/Lista das Extensões

Índice

  • Em ordem alfabética
  • Sociedade
  • Estado

Esse apêndice categoriza mais de 150 extensões documentadas no manual do PHP por vários critérios.


Em ordem alfabética

  • Apache
  • APCu
  • Arrays
  • BC Math
  • Bzip2
  • Calendar
  • Classes/Objetos
  • CommonMark
  • COM
  • Componere
  • Ctype
  • CUBRID
  • cURL
  • Data/Hora
  • DBA
  • dBase
  • IO Direto
  • Diretórios
  • DOM
  • Estruturas de Dados
  • Eio
  • Enchant
  • Gerenciamento de Erros
  • Ev
  • Event
  • Execução de programa
  • Exif
  • Expect
  • FANN
  • FDF
  • FFI
  • Fileinfo
  • Extensão Filesystem (Sistema de Arquivos)
  • Filter
  • FastCGI Process Manager
  • FTP
  • Gerenciamento de funções
  • Gearman
  • Gender
  • GeoIP
  • Gettext
  • Gmagick
  • GMP
  • GnuPG
  • Hash
  • HRTime
  • Firebird/InterBase
  • IBM DB2
  • iconv
  • Igbinary
  • GD
  • ImageMagick
  • IMAP
  • Opções/Info do PHP
  • Inotify
  • intl
  • JSON
  • LDAP
  • libxml
  • Lua
  • LuaSandbox
  • LZF
  • Mail
  • Mailparse
  • Math
  • String Multibyte
  • Mcrypt
  • Memcache
  • Memcached
  • Mhash
  • Misc.
  • mqseries
  • MySQL (Original)
  • Mysql_xdevapi
  • MySQLi
  • Mysqlnd
  • Network
  • OAuth
  • OCI8
  • OPcache
  • OpenAL
  • OpenSSL
  • Controle de Saída
  • parallel
  • Parle
  • Password Hashing
  • PCNTL
  • PCRE
  • PDO
  • CUBRID (PDO)
  • MS SQL Server (PDO)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • Oracle (PDO)
  • ODBC and DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • MS SQL Server (PDO)
  • PostgreSQL
  • Phar
  • phpdbg
  • POSIX
  • PS
  • Pspell
  • pthreads
  • Quickhash
  • Radius
  • Random
  • Rar
  • Readline
  • Recode
  • Reflexão
  • Rnp
  • RpmInfo
  • RRD
  • runkit7
  • ScoutAPM
  • Seaslog
  • Semaphore
  • Sessões
  • Memória Compartilhada
  • Simdjson
  • SimpleXML
  • SNMP
  • SOAP
  • Sockets
  • Sodium
  • Solr
  • SPL
  • SQLite3
  • SQLSRV
  • ssdeep
  • SSH2
  • Statistics
  • Stomp
  • Fluxos
  • Strings
  • SVM
  • SVN
  • Swoole
  • Sync
  • Taint
  • TCP
  • Tidy
  • Tokenizer
  • Trader
  • UI
  • ODBC
  • uopz
  • URLs
  • V8js
  • Manipulação de variável
  • var_representation
  • Varnish
  • WDDX
  • win32service
  • WinCache
  • wkhtmltox
  • xattr
  • xdiff
  • Xhprof
  • XLSWriter
  • Analisador de XML
  • XMLDiff
  • XMLReader
  • XML-RPC
  • XMLWriter
  • XSL
  • Yac
  • Yaconf
  • Yaf
  • Yaml
  • Yar
  • YAZ
  • Zip
  • Zlib
  • API de Mensagens 0MQ
  • ZooKeeper


Sociedade

Extensões Principais

Essas não são de fato extensões. Eles são parte do núcleo do PHP e não podem ser deixadas de fora do binário do PHP através de opções de compilação.

  • Arrays

  • Classes/Objetos

  • Data/Hora

  • Diretórios

  • Gerenciamento de Erros

  • Execução de programa

  • Extensão Filesystem (Sistema de Arquivos)

  • FastCGI Process Manager

  • Gerenciamento de funções

  • Hash

  • Opções/Info do PHP

  • JSON

  • Mail

  • Math

  • Misc.

  • Network

  • OPcache

  • Controle de Saída

  • Password Hashing

  • PCRE

  • Random

  • Reflexão

  • SPL

  • Fluxos

  • Strings

  • URLs

  • Manipulação de variável

Extensões Agregadas

Essas extensões são distribuídas com o PHP.

  • Apache

  • BC Math

  • Calendar

  • COM

  • Ctype

  • DBA

  • Exif

  • FFI

  • Fileinfo

  • Filter

  • FTP

  • HRTime

  • iconv

  • GD

  • intl

  • String Multibyte

  • Mhash

  • PCNTL

  • PDO

  • Phar

  • phpdbg

  • POSIX

  • Semaphore

  • Sessões

  • Memória Compartilhada

  • Sockets

  • SQLite3

  • Tokenizer

  • Zlib

Extensões Externas

Para compilar essas extensões é preciso ter bibliotecas externas.

  • Bzip2

  • cURL

  • DOM

  • Enchant

  • Gettext

  • GMP

  • IMAP

  • LDAP

  • libxml

  • MySQLi

  • Mysqlnd

  • OCI8

  • OpenSSL

  • MS SQL Server (PDO)

  • Firebird (PDO)

  • MySQL (PDO)

  • Oracle (PDO)

  • ODBC and DB2 (PDO)

  • PostgreSQL (PDO)

  • SQLite (PDO)

  • PostgreSQL

  • Pspell

  • Readline

  • SimpleXML

  • SNMP

  • SOAP

  • Sodium

  • Tidy

  • ODBC

  • Analisador de XML

  • XMLReader

  • XMLWriter

  • XSL

  • Zip

Extensões PECL

Essas extensões estão disponíveis em » PECL. Elas podem requerer bibliotecas externas. Existem outras extensões PECL mas elas não estão documentadas no manual do PHP.

  • APCu

  • CommonMark

  • Componere

  • CUBRID

  • dBase

  • IO Direto

  • Estruturas de Dados

  • Eio

  • Ev

  • Event

  • Expect

  • FANN

  • FDF

  • Gearman

  • Gender

  • GeoIP

  • Gmagick

  • GnuPG

  • Firebird/InterBase

  • IBM DB2

  • Igbinary

  • ImageMagick

  • Inotify

  • Lua

  • LuaSandbox

  • LZF

  • Mailparse

  • Mcrypt

  • Memcache

  • Memcached

  • mqseries

  • MySQL (Original)

  • Mysql_xdevapi

  • OAuth

  • OpenAL

  • parallel

  • Parle

  • CUBRID (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MS SQL Server (PDO)

  • PS

  • pthreads

  • Quickhash

  • Radius

  • Rar

  • Recode

  • Rnp

  • RpmInfo

  • RRD

  • runkit7

  • ScoutAPM

  • Seaslog

  • Simdjson

  • Solr

  • SQLSRV

  • ssdeep

  • SSH2

  • Statistics

  • Stomp

  • SVM

  • SVN

  • Swoole

  • Sync

  • Taint

  • TCP

  • Trader

  • UI

  • uopz

  • V8js

  • var_representation

  • Varnish

  • WDDX

  • win32service

  • WinCache

  • wkhtmltox

  • xattr

  • xdiff

  • Xhprof

  • XLSWriter

  • XMLDiff

  • XML-RPC

  • Yac

  • Yaconf

  • Yaf

  • Yaml

  • Yar

  • YAZ

  • API de Mensagens 0MQ

  • ZooKeeper


Estado

Essa parte lista as extensões não destinadas para uso de produção - elas são ou muito velhas (descontinuadas) ou muito novas (experimentais).

Extensões Descontinuadas

Essas extensões tornaram-se descontinuadas normalmente em favor de outras extensões.

Extensões Experimentais

O comportamento dessas extensões - incluindo os nomes das suas funções e qualquer outra coisa documentada sobre essas extensões - podem mudar sem aviso em versões futuras do PHP. Use essas funções a seu próprio risco.

  • ImageMagick

  • MS SQL Server (PDO)

  • Firebird (PDO)

  • Oracle (PDO)

  • PS

  • Rnp

  • XML-RPC


Lista de funções sinônimas (aliases)

Existem algumas poucas funções no PHP que podem ser chamadas com mais de um nome. Em alguns casos, não existe preferência entres os nomes, is_int() e is_integer() são igualmente boas, por exemplo. Entretanto existem funções que mudaram de nome para deixar API mais limpa ou por outras razões e os nomes antigos são apenas mantidos como aliases para compatibilidade com versões anteriores. Geralmente é uma má ideia usar este tipo de apelido, uma vez que eles estão obsoletos ou a ponto de serem renomeados definitivamente, o que levará a um script não portável. Esta lista é mantida para ajudá-los a atualizar scripts antigos para as novas sintaxes.

Aliases
Função sinônimo(Alias) | Função mestre | Extensão usada
_ | gettext() | Gettext
chop | rtrim() | Base syntax
close | closedir() | Base syntax
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
die | exit() | Miscellaneous functions
diskfreespace | disk_free_space() | Filesystem
doubleval | floatval() | Base syntax
fputs | fwrite() | Base syntax
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
key_exists | array_key_exists() | Base syntax
ldap_close | ldap_unbind() | LDAP
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
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
ociassignelem | OCICollection::assignElem | OCI8
ocibindbyname | oci_bind_by_name() | OCI8
ocicancel | oci_cancel() | OCI8
ocicloselob | OCILob::close | OCI8
ocicollappend | OCICollection::append | OCI8
ocicollassign | OCICollection::assign | OCI8
ocicollmax | OCICollection::max | OCI8
ocicollsize | OCICollection::size | OCI8
ocicolltrim | OCICollection::trim | OCI8
ocicolumnisnull | oci_field_is_null() | OCI8
ocicolumnname | oci_field_name() | OCI8
ocicolumnprecision | oci_field_precision() | OCI8
ocicolumnscale | oci_field_scale() | OCI8
ocicolumnsize | oci_field_size() | OCI8
ocicolumntype | oci_field_type() | OCI8
ocicolumntyperaw | oci_field_type_raw() | OCI8
ocicommit | oci_commit() | OCI8
ocidefinebyname | oci_define_by_name() | OCI8
ocierror | oci_error() | OCI8
ociexecute | oci_execute() | OCI8
ocifetch | oci_fetch() | OCI8
ocifetchinto | oci_fetch_array(), oci_fetch_row(), oci_fetch_assoc(), oci_fetch_object() | OCI8
ocifetchstatement | oci_fetch_all() | OCI8
ocifreecollection | OCICollection::free | OCI8
ocifreecursor | oci_free_statement() | OCI8
ocifreedesc | oci_free_descriptor() | OCI8
ocifreestatement | oci_free_statement() | OCI8
ocigetelem | OCICollection::getElem | OCI8
ociinternaldebug | oci_internal_debug() | OCI8
ociloadlob | OCILob::load | OCI8
ocilogon | oci_connect() | OCI8
ocinewcollection | oci_new_collection() | OCI8
ocinewcursor | oci_new_cursor() | OCI8
ocinewdescriptor | oci_new_descriptor() | OCI8
ocinlogon | oci_new_connect() | OCI8
ocinumcols | oci_num_fields() | OCI8
ociparse | oci_parse() | OCI8
ocipasswordchange | oci_password_change() | OCI8
ociplogon | oci_pconnect() | OCI8
ociresult | oci_result() | OCI8
ocirollback | oci_rollback() | OCI8
ocisavelob | OCILob::save | OCI8
ocisavelobfile | OCILob::import | OCI8
ociserverversion | oci_server_version() | OCI8
ocisetprefetch | oci_set_prefetch() | OCI8
ocistatementtype | oci_statement_type() | OCI8
ociwritelobtofile | OCILob::export | OCI8
ociwritetemporarylob | OCILob::writeTemporary | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Base syntax
recode | recode_string() | Recode
show_source | highlight_file() | Base syntax
sizeof | count() | Base syntax
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Base syntax
xptr_new_context | xpath_new_context() |


Lista de Palavras Reservadas do PHP

Índice

  • Lista de Palavras-chave (Keywords)
  • Classes Predefinidas
  • Constantes Pré-definidas
  • Lista de outras palavras reservadas

Esta é uma lista de identificadores predefinidos do PHP. Nenhum dos identificadores listados aqui deve ser usado como identificador em qualquer um dos seus scripts a menos que seja explicitamente indicado. Esta lista inclui palavras-chave e variáveis predefinidas, constantes e nomes de classes. Estas listas ainda não são exaustivas nem completas.


Lista de Palavras-chave (Keywords)

Estas palavras têm um significado especial no PHP. Algumas delas representam coisas que parecem funções, algumas parecem constantes, e assim por diante - mas na verdade não o são realmente: elas são constructos da linguagem. As palavras seguintes não podem ser usadas como constantes, nomes de classes, ou nome de funções. Estas palavras-chave são permitidas em propriedades, constantes e nomes de métodos em classes, interfaces e traits, com exceção de class, que não pode ser utilizada como nome de constante.

Palavras-chave do PHP
__halt_compiler() | abstract | and | array() | as
break | callable | case | catch | class
clone | const | continue | declare | default
die() | do | echo | else | elseif
empty() | enddeclare | endfor | endforeach | endif
endswitch | endwhile | eval() | exit() | extends
final | finally | fn (desde o PHP 7.4) | for | foreach
function | global | goto | if | implements
include | include_once | instanceof | insteadof | interface
isset() | list() | match (desde o PHP 8.0) | namespace | new
or | print | private | protected | public
readonly (desde o PHP 8.1.0) * | require | require_once | return | static
switch | throw | trait | try | unset()
use | var | while | xor | yield
yield from |  |  |  |

* readonly pode ser utilizado como nome de função

Constantes de tempo de compilação


Classes Predefinidas

Esta seção lista classes predefinidas padrão. Extensões diversas definem outras classes que são descritas em suas referências.

Classes Definidas Padrão

Estas classes são definidas dentro do conjunto padrão de funções incluídas na compilação do PHP.

Directory
Criada pela função dir().
stdClass
Uma classe vazia criada como o resultado de coerção para objeto ou funções padrão da linguagem.
__PHP_Incomplete_Class
Possivelmente criada pela função unserialize().
Exception
ErrorException
php_user_filter
Closure
A classe predefinida final Closure é utilizada para representar funções anônimas.
Generator
A classe predefinida final Generator é utilizada para representar geradores.
ArithmeticError
AssertionError
DivisionByZeroError
Error
Throwable
ParseError
TypeError

Classes especiais

Os seguintes identificadores não podem ser usados como nome de classe pois eles têm um propósito especial.

self
Classe atual.
static
Classe atual em tempo de execução.
parent
Classe pai.


Constantes Pré-definidas

Principais Constantes Predefinidas

Essas constantes são definidas pelo núcleo do PHP. Isso inclui o PHP, o motor Zend e módulos SAPI.

PHP_VERSION (string)
A versão atual do PHP como uma string no formato "maior.menor.lançamento[extra]".
PHP_MAJOR_VERSION (int)
O número de versão "maior" do PHP como um inteiro (exemplo: int(5) para a versão "5.2.7-extra").
PHP_MINOR_VERSION (int)
O número de versão "menor" do PHP como um inteiro (exemplo: int(2) para a versão "5.2.7-extra").
PHP_RELEASE_VERSION (int)
O número de versão de "lançamento" do PHP como um inteiro (exemplo: int(7) para a versão "5.2.7-extra").
PHP_VERSION_ID (int)
A versão atual do PHP como um inteiro, útil para comparações entre versões (exemplo: int(50207) na versão "5.2.7-extra").
PHP_EXTRA_VERSION (string)
A versão "extra" do PHP como uma string (exemplo: '-extra' na versão "5.2.7-extra"). Geralmente utilizado por distribuidores para indicar uma versão de empacotamento.
ZEND_THREAD_SAFE (bool)
Indica se a compilação atual do PHP é segura para "threads".
ZEND_DEBUG_BUILD (bool)
Indica se a compilação atual do PHP é uma compilação para depuração.
PHP_ZTS (int)
Indica se a compilação atual do PHP é segura para "threads".
PHP_DEBUG (int)
Indica se a compilação atual do PHP é uma compilação para depuração.
PHP_MAXPATHLEN (int)
O tamanho máximo do nome de um arquivo (incluindo seus diretórios) suportado nesta versão do PHP.
PHP_OS (string)
O sistema operacional para o qual o PHP foi compilado.
PHP_OS_FAMILY (string)
A família do sistema operacional para o qual o PHP foi compilado. Qualquer uma entre 'Windows', 'BSD', 'Darwin', 'Solaris', 'Linux' ou 'Unknown'. Disponível a partir do PHP 7.2.0.
PHP_SAPI (string)
O nome da Server API para esta compilação do PHP. Veja também php_sapi_name().
PHP_EOL (string)
O símbolo correto de 'Fim de linha' para esta plataforma.
PHP_INT_MAX (int)
O maior inteiro suportado nesta compilação do PHP. Geralmente int(2147483647) em sistemas de 32 bit e int(9223372036854775807) em sistemas de 64 bits.
PHP_INT_MIN (int)
O menor inteiro suportado nesta compilação do PHP. Geralmente int(-2147483648) em sistemas 32 bits e int(-9223372036854775808) em sistemas 64 bit. Normalmente PHP_INT_MIN === ~PHP_INT_MAX.
PHP_INT_SIZE (int)
O tamanho de um inteiro em bytes nesta compilação do PHP.
PHP_FLOAT_DIG (int)
Número de dígitos decimais que podem ser arredondados para um float e recuperados sem perda de precisão. Disponível a partir do PHP 7.2.0.
PHP_FLOAT_EPSILON (float)
O menor número positivo representável x, tal que x + 1.0 != 1.0. Disponível a partir do PHP 7.2.0.
PHP_FLOAT_MIN (float)
O menor número de ponto flutuante positivo representável. Se você precisar do menor número de ponto flutuante negativo, use - PHP_FLOAT_MAX. Disponível a partir do PHP 7.2.0.
PHP_FLOAT_MAX (float)
O maior número de ponto flutuante representável. Disponível a partir do PHP 7.2.0.
DEFAULT_INCLUDE_PATH (string)
PEAR_INSTALL_DIR (string)
PEAR_EXTENSION_DIR (string)
PHP_EXTENSION_DIR (string)
O diretório padrão onde localizar extensões carregáveis dinamicamente (podendo ser sobrescrito por extension_dir). Tem como o padrão PHP_PREFIX (ou PHP_PREFIX . "\\ext" no Windows).
PHP_PREFIX (string)
O valor --prefix foi configurado durante o comando "configure". No Windows, este é o valor de --with-prefix informado no comando "configure".
PHP_BINDIR (string)
O valor --bindir foi configurado no comando "configure". No Windows, é o valor informado em --with-prefix durante o comando "configure".
PHP_BINARY (string)
Especifica o caminho do binário do PHP utilizado na execução do script.
PHP_MANDIR (string)
Especifica onde as páginas do manual foram instaladas.
PHP_LIBDIR (string)
PHP_DATADIR (string)
PHP_SYSCONFDIR (string)
PHP_LOCALSTATEDIR (string)
PHP_CONFIG_FILE_PATH (string)
PHP_CONFIG_FILE_SCAN_DIR (string)
PHP_SHLIB_SUFFIX (string)
O sufixo de bibliotecas compartilhadas da plataforma na qual o PHP foi compilado. Geralmente "so" (Unix) ou "dll" (Windows).
PHP_FD_SETSIZE (int)
O número máximo de descritores de arquivos para as chamadas de sistema "select". Disponível a partir do PHP 7.1.0.
E_ERROR (int)
Constante para relatório de erros
E_WARNING (int)
Constante para relatório de erros
E_PARSE (int)
Constante para relatório de erros
E_NOTICE (int)
Constante para relatório de erros
E_CORE_ERROR (int)
Constante para relatório de erros
E_CORE_WARNING (int)
Constante para relatório de erros
E_COMPILE_ERROR (int)
Constante para relatório de erros
E_COMPILE_WARNING (int)
Constante para relatório de erros
E_USER_ERROR (int)
Constante para relatório de erros
E_USER_WARNING (int)
Constante para relatório de erros
E_USER_NOTICE (int)
Constante para relatório de erros
E_RECOVERABLE_ERROR (int)
Constante para relatório de erros.
E_DEPRECATED (int)
Constante para relatório de erros.
E_USER_DEPRECATED (int)
Constante para relatório de erros.
E_ALL (int)
Constante para relatório de erros
E_STRICT (int)
Constante para relatório de erros
__COMPILER_HALT_OFFSET__ (int)
true (bool)
Veja Booleanos.
false (bool)
Veja Booleanos.
null (null)
Veja Null.
PHP_WINDOWS_EVENT_CTRL_C (int)
Um evento do Windows CTRL+C. Disponível a partir do PHP 7.4.0 (somente para o Windows).
PHP_WINDOWS_EVENT_CTRL_BREAK (int)
Um evento do Windows CTRL+BREAK. Disponível a partir do PHP 7.4.0 (somente para o Windows).
PHP_CLI_PROCESS_TITLE (bool)
Indica se a configuração e obtenção do título do processo está disponível. Disponível apenas no CLI SAPI.
STDERR (resource)
Um fluxo já aberto para stderr. Disponível apenas no CLI SAPI.
STDIN (resource)
Um fluxo já aberto para stdin. Disponível apenas no CLI SAPI.
STDOUT (resource)
Um fluxo já aberto para stdout. Disponível apenas no CLI SAPI.

Veja também: Constantes Mágicas.

Constantes Padrão Predefinidas

Todas as constantes de extensões do núcleo são definidas no PHP por padrão.


Lista de outras palavras reservadas

As palavras a seguir não podem ser utilizadas como nome de classes, interfaces ou traits. Anteriormente ao PHP 8.0, também eram proibidas de ser usadas em namespaces.

Palavras reservadas
int | float | bool | string
true | false | null | void (a partir do PHP 7.1)
iterable (a partir do PHP 7.1) | object (a partir do PHP 7.2) | mixed (a partir do PHP 8.0) | never (a partir do PHP 8.1)

A seguinte lista de palavras tem reservas brandas. Embora elas possam ser utilizadas como nomes de classes, interfaces e traits, seu uso é altamente desencorajado pois elas podem se tornar palavras reservadas em versões futuras do PHP.

Palavras reservadas brandas
enum resource numeric


Lista de tipos de recursos no PHP

Abaixo segue a lista de funções possíveis para manipular os recursos no PHP. A função is_resource() pode ser usada para identificar se a variável é um recurso enquanto get_resource_type() pode ser utilizada para retornar o tipo de recurso.

Tipos de recursos
Nome dos tipos de recursos | Criado por | Utilizo em | Deletado por | Definido
AddressInfo | socket_addrinfo_lookup() | socket_addrinfo_bind(), socket_addrinfo_connect(), socket_addrinfo_explain(), | None | AddressInfo (extensão sockets)
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Bzip2 file
cubrid connection | cubrid_connect() cubrid_connect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() | cubrid_close() cubrid_disconnect() | Conexão pelo banco de dados CUBRID
conexão em persistência cubrid | cubrid_pconnect() cubrid_pconnect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() cubrid_lob2_new() | Conexão em persistência pelo banco de dados CUBRID
cubrid request | cubrid_prepare() cubrid_execute() cubrid_query() cubrid_unbuffered_query() | cubrid_bind() cubrid_column_names() cubrid_column_types() cubrid_current_oid() cubrid_execute() cubrid_free_result() cubrid_get_query_timeout() cubrid_move_cursor() cubrid_next_result() cubrid_num_cols() cubrid_num_rows() cubrid_set_query_timeout() cubrid_data_seek() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_field() cubrid_fetch_lengths() cubrid_fetch_object() cubrid_fetch_row() cubrid_field_flags() cubrid_field_len() cubrid_field_name() cubrid_field_seek() cubrid_field_table() cubrid_field_type() cubrid_num_fields() cubrid_result() cubrid_lob2_bind() | cubrid_close_prepare() cubrid_close_request() | CUBRID request
cubrid lob | cubrid_lob_get() | cubrid_lob_export() cubrid_lob_send() cubrid_lob_size() | cubrid_lob_close() | None
cubrid lob2 | cubrid_lob2_new() cubrid_fetch() cubrid_fetch_row() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_object() | cubrid_lob2_export() cubrid_lob2_import() cubrid_lob2_read() cubrid_lob2_write() cubrid_lob2_tell() cubrid_lob2_tell64() cubrid_lob2_seek() cubrid_lob2_seek64() cubrid_lob2_size() cubrid_lob2_size64() | cubrid_lob2_close() | None
curl | curl_copy_handle(), curl_init() | curl_copy_handle(), curl_errno(), curl_error(), curl_exec(), curl_getinfo(), curl_setopt() | curl_close() | cURL handle
curl_multi | curl_multi_init() | curl_multi_errno(), curl_multi_exec(), curl_multi_info_read(), curl_multi_remove_handle(), curl_multi_select(), curl_multi_setopt() | curl_multi_close() | cURL multi handle
curl_share | curl_share_init() | curl_share_errno(), curl_share_setopt() | curl_share_close() | cURL share handle
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Link to DBA database
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | None | Persistent link to DBA database
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() | Link to Dbase database
enchant_broker | enchant_broker_init() | enchant_broker_describe(), enchant_broker_dict_exists(), enchant_broker_get_dict_path(), enchant_broker_get_error(), enchant_broker_list_dicts(), enchant_broker_set_dict_path(), enchant_broker_set_ordering() | enchant_broker_free() | Enchant broker (anteriormente ao PHP 8.0.0)
enchant_dict | enchant_broker_request_dict() enchant_broker_request_pwl_dict() | enchant_dict_add_to_personal(), enchant_dict_add_to_session(), enchant_dict_check(), enchant_dict_describe(), enchant_dict_get_error(), enchant_dict_is_in_session(), enchant_dict_store_replacement(), enchant_dict_suggest() | enchant_broker_free_dict() | Enchant dictionary (anteriormente ao PHP 8.0.0)
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() | Arquivo FDF
ftp | ftp_connect(), ftp_ssl_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_alloc(), ftp_chmod(), ftp_exec(), ftp_get_option(), ftp_nb_continue(), ftp_nb_fget(), ftp_nb_fput(), ftp_nb_get(), ftp_nb_put(), ftp_raw(), ftp_set_option() | ftp_close() | FTP stream (anteriormente ao PHP 8.1.0)
gd | imagecreate(), imagecreatefromgd(), imagecreatefromgd2(), imagecreatefromgd2part(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatefromxbm(), imagecreatefromxpm(), imagecreatetruecolor(), imagerotate() | 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(), imagerectangle(), imagerotate(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness(), image2wbmp(), imagealphablending(), imageantialias(), imagecolorallocatealpha(), imagecolorclosesthwb(), imagecolordeallocate(), imagecolormatch(), imagefilter(), imagefttext(), imagegd(), imagegd2(), imageistruecolor(), imagelayereffect(), imagepalettecopy(), imagesavealpha(), imagesetstyle(), imagexbm() | imagedestroy() | Imagem GD (anteriormente ao PHP 8.0.0)
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | None | Fonte para GD (anteriormente ao PHP 8.1.0)
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() | Link para os servidores IMAP e POP3 (anteriormente ao PHP 8.1.0)
interbase blob | ibase_blob_create(), ibase_blob_import(), ibase_blob_open() | ibase_blob_add(), ibase_blob_cancel(), ibase_blob_echo(), ibase_blob_get(), ibase_blob_info() | ibase_blob_close()
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Link to Interbase database
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | None | Conexão em persistência no banco de dados Interbase
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Interbase query
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Interbase Result
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Interbase transaction
Link ldap | 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() | Conexão ldap (anteriormente ao PHP 8.1.0)
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() | ldap search result (anteriormente ao PHP 8.1.0)
ldap result entry | ldap result entry (anteriormente ao PHP 8.1.0)
mailparse_mail_structure | mailparse_msg_create() mailparse_msg_parse_file() | mailparse_msg_extract_part_file() mailparse_msg_extract_part() mailparse_msg_extract_whole_part_file() mailparse_msg_get_part_data() mailparse_msg_get_part() mailparse_msg_get_structure() mailparse_msg_parse() | mailparse_msg_free()
Conexão mysql | mysql_connect() | mysql_affected_rows(), 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() | Conexão para o banco de dados MySQL
Conexão persistênte para mysql | mysql_pconnect() | mysql_affected_rows(), 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() | None | Conexão persistênte para MySQL
Resultado mysql | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_processes(), mysql_list_tables(), mysql_query(), mysql_unbuffered_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 | oci_new_collection() | OCICollection::append(), OCICollection::assign(), OCICollection::assignElem(), OCICollection::getElem(), OCICollection::max(), OCICollection::size(), OCICollection::trim() | OCICollection::free() | Oracle Collection
oci8 connection | oci_connect(), oci_pconnect(), oci_new_connect() | oci_commit(), oci_error(), oci_new_cursor(), oci_parse(), oci_password_change(), oci_rollback(), oci_server_version(), oci_set_action(), oci_set_client_identifier(), oci_set_client_info(), oci_set_module_name() | oci_close() | Connection to Oracle Database
oci8 lob | oci_new_descriptor() | OCILob::append(), OCILob::close(), OCILob::eof(), OCILob::erase(), OCILob::export(), OCILob::flush(), OCILob::getBuffering(), OCILob::import(), OCILob::load(), OCILob::read(), OCILob::rewind(), OCILob::save(), OCILob::saveFile(), OCILob::seek(), OCILob::setBuffering(), OCILob::size(), OCILob::tell(), OCILob::truncate(), OCILob::write(), OCILob::writeTemporary(), OCILob::writeToFile(), oci_lob_copy(), oci_lob_is_equal() | OCILob::free() | Oracle large objects
oci8 statement | oci_parse(), oci_new_cursor() | oci_bind_array_by_name(), oci_bind_by_name(), oci_cancel(), oci_define_by_name(), oci_error() oci_execute(), oci_fetch_all(), oci_fetch_array(), oci_fetch_assoc(), oci_fetch_object(), oci_fetch_row(), oci_fetch(), oci_field_is_null(), oci_field_name(), oci_field_precision(), oci_field_scale(), oci_field_size(), oci_field_type_raw(), oci_field_type(), oci_num_fields(), oci_num_rows(), oci_result(), oci_set_prefetch(), oci_statement_type() | oci_free_statement() | Oracle cursor
Conexão odbc | 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() | Conexão para o banco de dados ODBC
Conexão persistênte para odbc | odbc_pconnect() | 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() | Nenhum | Conexão persistênte no ODBC
Resultado odbc | 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
Conexão birdstep | Link to Birdstep database (anteriormente ao PHP 7.3.0)
Resultado birdstep | Birdstep result (anteriormente ao PHP 7.3.0)
Chave OpenSSL | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | Chave OpenSSL
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Chave pública
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() | PostgreSQL Large Object (anteriormente ao PHP 8.1.0)
Conexão pgsql | 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_meta_data(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Conexão no banco de dados PostgreSQL (anteriormente ao PHP 8.1.0)
Conexão em persistência pgsql | 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_meta_data(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | Nenhum | Conexão em persistência PostgreSQL
Resultado pgsql | pg_execute(), pg_query(), pg_query_params(), 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 (anteriormente ao PHP 8.1.0)
pgsql string
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() | Nenhum | pspell dictionary (anteriormente ao PHP 8.1.0)
Configuração pspell | pspell_config_create() | pspell_new_config() | None | pspell configuration (anteriormente ao PHP 8.1.0)
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close() | Identificador de bloco de memória compartilhada (anteriormente ao PHP 8.0.0)
Socket | socket_accept(), socket_addrinfo_bind(), socket_addrinfo_connect(), socket_create(), socket_create_listen(), socket_import_stream(), socket_wsaprotocol_info_import() | socket_accept(), socket_bind(), socket_clear_error(), socket_connect(), socket_get_option(), socket_getpeername(), socket_getsockname(), socket_last_error(), socket_listen(), socket_read(), socket_recv(), socket_recvfrom(), socket_recvmsg(), socket_select(), socket_send(), socket_sendmsg(), socket_sendto(), socket_set_block(), socket_set_nonblock(), socket_set_option(), socket_shutdown(), socket_write(), socket_wsaprotocol_info_export(), socket_wsaprotocol_info_release() | socket_close() | Socket (extensão sockets)
stream | opendir() | readdir(), rewinddir() | closedir() | Dir handle
stream | fopen(), tmpfile() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | File handle
stream | popen(), fsockopen(), pfsockopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Process handle
socket | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket handle
SSH2 Session | ssh2_connect() | ssh2_disconnect()
SSH2 Listener | ssh2_forward_listen()
SSH2 SFTP | ssh2_sftp()
SSH2 Publickey Subsystem | ssh2_publickey_init()
sysvmsg queue | msg_get_queue() | msg_queue_exists(), msg_receive(), msg_send(), msg_set_queue(), msg_stat_queue() | msg_remove_queue() | System V Message Queue (anteriormente ao PHP 8.0.0)
sysvsem | sem_get() | sem_acquire() | sem_release() | System V Semaphore (anteriormente ao PHP 8.0.0)
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | Sistema V de memória compartilhada (anteriormente ao PHP 8.0.0)
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | WDDX packet
xml | xml_parser_create(), xml_parser_create_ns() | 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() | XML parser (anteriormente ao PHP 8.0.0)
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | gz-compressed file
zlib.deflate | deflate_init() | deflate_add() | None | incremental deflate context (anteriormente ao PHP 8.0.0)
zlib.inflate | inflate_init() | inflate_add(), inflate_get_read_len(), inflate_get_status() | None | incremental inflate context (anteriormente ao PHP 8.0.0)


Lista de Filtros Disponíveis

Índice

  • Filtros de String
  • Fitros de Conversão
  • Filtros de Compressão
  • Filtros de Criptografia

A seguir está uma lista de alguns filtros internos de stream para uso com stream_filter_append(). Sua versão do PHP pode ter mais filtros (ou menos) que os listados aqui.

Vale notar que existe uma leve assimetria entre stream_filter_append() e stream_filter_prepend(). Toda stream no PHP contém um pequeno buffer de leitura onde ela guarda blocos de dados recuperados do sistema de arquivos ou outro recurso (resource) com o propósito de processar dados da maneira mais eficiente. Assim que os dados são recuperados do recurso para o buffer interno da stream, eles são processados imediatamente por qualquer filtro anexo quer esteja a aplicação PHP preparada para receber os dados ou não. Se os dados estão esperando no buffer de leitura quando um filtro for anexado, esses dados serão imediatamente processados através daquele filtro, fazendo o fato de que eles estavam esperando no buffer transparente. No entanto, se os dados estão esperando no buffer de leitura quando um filtro é prefixado, esses dados NÃO serão processados por este filtro. Ao invés disso, eles esperarão até o próximo bloco de dados ser recuperado do recurso.

Para uma lista dos filtros instalados na sua versão do PHP use stream_get_filters().


Filtros de String

Cada um destes filtros faz precisamente o que o seu nome implica e corresponde ao comportamento da função interna de tratamento de string homônima. Para mais informações sobre um determinado filtro, veja a página do manual para a função correspondente.

string.rot13

O uso desse filtro é equivalente a processar todos os dados da stream com a função str_rot13().

Exemplo #1 string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "Isto é um teste.\n");
/* Saída: Vfgb é hz grfgr. */
?>

string.toupper

O uso desse filtro é equivalente a processar todos os dados da stream com a função strtoupper().

Exemplo #2 string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "Isto é um teste.\n");
/* Saída: ISTO é UM TESTE. */
?>

string.tolower

O uso desse filtro é equivalente a processar todos os dados da stream com a função strtolower().

Exemplo #3 string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "Isto é um teste.\n");
/* Saída: isto é um teste. */
?>

string.strip_tags

O uso desse filtro é equivalente a processar todos os dados da stream com a função strip_tags(). Ela aceita parâmetros em uma das duas formas: Ou como uma string contendo uma lista de tags similares ao segundo parâmetro da função strip_tags(), ou como um array com os nomes das tags.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 7.3.0. O uso deste recurso é fortemente desencorajado.

Exemplo #4 string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>texto em negrito</b> aumentado para um <h1>heading de nível 1</h1>\n");
fclose($fp);
/* Saída : texto em negrito</b> aumentado para um heading de nível 1 */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>texto em negrito</b> aumentado para um <h1>heading de nível 1</h1>\n");
fclose($fp);
/* Saída: texto em negrito</b> aumentado para um heading de nível 1 */
?>


Fitros de Conversão

Como todos os filtros string.*, os filtros convert.* realizam ações similares aos seus nomes. Para mais informações sobre um determinado filtro, veja a página do manual para a função correspondente.

convert.base64-encode e convert.base64-decode

O uso desses filtros é equivalente a processar todos os dados da stream com as funções base64_encode() e base64_decode() respectivamente. convert.base64-encode suporta parâmetros no formato de um array associativo. Se line-length for passado, a saída do base64 será dividida em pedaços de line-length caracteres cada. Se line-break-chars for passado, cada pedaço será delimitado pelos caracteres passados. Esses parâmetros dão o mesmo efeito que usar base64_encode() com chunk_split().

Exemplo #1 convert.base64-encode & convert.base64-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "Isto é um teste.\n");
fclose($fp);
/* Saída: SXN0byDDqSB1bSB0ZXN0ZS4K */

$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "Isto é um teste.\n");
fclose($fp);
/* Saída : SXN0byDD
: qSB1bSB0
: ZXN0ZS4K */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "SXN0byDDqSB1bSB0ZXN0ZS4K");
fclose($fp);
/* Saída: Isto é um teste. */
?>

convert.quoted-printable-encode e convert.quoted-printable-decode

O uso da versão de decodificação desse filtro é equivalente ao processamento de todos os dados da stream pela função quoted_printable_decode(). Não há nenhuma função equivalente a convert.quoted-printable-encode. convert.quoted-printable-encode suporta parâmetros passados como um array associativo. Além dos parâmetros suportados por convert.base64-encode, convert.quoted-printable-encode também suporta os argumentos booleanos binary e force-encode-first. convert.base64-decode suporta apenas o parâmetro line-break-chars como uma dica de tipo para retirar do conteúdo codificado.

Exemplo #2 convert.quoted-printable-encode & convert.quoted-printable-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "Isto é um teste.\n");
/* Saída: Isto =C3=A9 um teste.=0A */
?>

convert.iconv.*

Os filtros convert.iconv.* estarão disponíveis se o suporte a iconv estiver habilitado, e se sua utilização é equivalente a processar todos os dados do stream através do iconv(). Esses filtros não suportam parâmetros, em vez disso esperam que as codificações de entrada e saída sejam informados no nome do filtro, por exemplo, convert.iconv.<input-encoding>.<output-encoding> ou convert.iconv.<input-encoding>/<output-encoding> (ambas notações são equivalentes).

Exemplo #3 convert.iconv.*

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.iconv.utf-16le.utf-8');
fwrite($fp, "T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.\0\n\0");
fclose($fp);
/* Outputs: This is a test. */
?>


Filtros de Compressão

Enquanto os Wrappers de Compressão fornecem uma maneira de criar arquivos compatíveis com gzip e bz2 no sistema de arquivos local, eles não fornecem um meio para compressão generalizada sobre streams de rede, nem fornecem uma maneira de começar com uma stream não-comprimida e mudar para uma comprimida. Para isso, um filtro de compressão pode ser aplicado a qualquer recurso de stream em qualquer momento.

Nota: Filtros de compressão não geram cabeçalhos e rodapés usados por utilitários de linha de comando como o gzip. Eles apenas comprimem e descomprimem as porções de conteúdo das streams de dados comprimidas.

zlib.deflate and zlib.inflate

zlib.deflate (compressão) e zlib.inflate (descompressão) são implementações dos métodos de compressão descritos no » RFC 1951. O filtro deflate recebe até três parâmetros passados como um array associativo. level descreve o nível de compressão a ser usada (1-9). Números mais altos geralmente resultam em cargas menores com o custo de tempo de processamento adicional. Dois níveis especiais de compressão também existem: 0 (para nenhuma compressão), e -1 (padrão interno da zlib -- atualmente 6). window é o logaritmo na base 2 do tamanho da janela de loopback de compressão. Valores mais altos (até 15 -- 32768 bytes) resultam em melhor compressão ao custo de memória, enquanto valores menores (até 9 -- 512 bytes) resultam em pior compressão usando menos memória. O tamanho padrão de window atualmente é 15. memory é uma escala indicando quanta memória deve ser alocada para trabalhar. Valores válidos vão de 1 (alocação mínima) até 9 (alocação máxima). Essa alocação de memória afeta apenas a velocidade e não tem impacto sobre o tamanho do conteúdo gerado.

Nota: Pelo fato do nível de compressão ser o parâmetro mais usado normalmente, ele pode ser passado de maneira alternativa como um simples valor inteiro (ao invés de um elemento de um array).

Filtros de compressão zlib.* compression estarão disponíveis se o suporte ao zlib estiver ativado.

Exemplo #1 zlib.deflate e zlib.inflate

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$original_text = "Isto é um teste.\nIsto é apenas um teste.\nEsta não é uma string importante.\n";
echo "O texto original tem " . strlen($original_text) . " caracteres.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "O arquivo comprimido tem " . filesize('test.deflated') . " bytes.\n";
echo "O texto original era:\n";
/* Use readfile e zlib.inflate para descomprimir de forma improvisada */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Gera a saída:

O texto original tem 79 caracteres.
O arquivo comprimido tem 61 bytes.
O texto original era:
Isto é um teste.
Isto é apenas um teste.
Esta não é uma string importante.

*/
?>

Exemplo #2 zlib.deflate simples

<?php
$original_text = "Isto é um teste.\nIsto é apenas um teste.\nEsta não é uma string importante.\n";
echo "O texto original tem " . strlen($original_text) . " caracteres.\n";

$fp = fopen('test.deflated', 'w');
/* Aqui "6" indica nível de compressão 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "O arquivo comprimido tem " . filesize('test.deflated') . " bytes.\n";

/* Gera a saída:

O texto original tem 79 caracteres.
O arquivo comprimido tem 60 bytes.

*/
?>

bzip2.compress and bzip2.decompress

bzip2.compress e bzip2.decompress funcionam da mesma maneira que os filtros da zlib descritos acima. O filtro bzip2.compress aceita até dois parâmetros passados como elementos de um array associativo: blocks é um valor inteiro de 1 até 9 especificando o número de blocos de 100kbyte de memória para alocar para o espaço de trabalho. work também é um valor inteiro variando de 0 a 250 indicando quanto esforço será realizado usando o método normal de compressão antes de desistir e usar um mais lento, mas mais confiável. Alterar esse parâmetro afeta apenas a velocidade de compressão. Nem o tamanho da saída comprimida nem o uso de memória são alterados por essa configuração. Um fator de trabalho de 0 diz à biblioteca bzip para usar o padrão interno. O filtro bzip2.decompress só aceita um parâmetro, que pode ser passado ou como um valor booleano comum ou como o elemento small de um array associativo. small, quando configurado para o valor true, diz à biblioteca bzip para fazer a descompressão usando o mínimo de memória ao custo da velocidade.

Filtros de compressão bzip2.* estão disponíveis se suporte a bz2 estiver ativado.

Exemplo #3 bzip2.compress e bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "O arquivo original tem " . filesize('LICENSE') . " bytes.\n";

$fp = fopen('LICENSE.compressed', 'w');
stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
fwrite($fp, file_get_contents('LICENSE'));
fclose($fp);

echo "O arquivo comprimido tem " . filesize('LICENSE.compressed') . " bytes.\n";

/* Gera a saída:

O arquivo original tem 3288 bytes.
O arquivo comprimido tem 1488 bytes.

*/
?>


Filtros de Criptografia

Os filtros de criptografia são especialmente úteis para criptografia de arquivo/stream.

mcrypt.* and mdecrypt.*

Aviso

Este recurso tornou-se DEFASADA a partir do PHP 7.1.0. O uso deste recurso é fortemente desencorajado.

Os filtros mcrypt.* e mdecrypt.* fornecem criptografia e descriptografia simétricas usando libmcrypt. Ambos os conjuntos de filtros suportam os mesmos algoritmos disponíveis na extensão mcrypt na forma de mcrypt.ciphername onde ciphername é o nome da cifra como seria passado para mcrypt_module_open(). Os cinco parâmetros de filtros a seguir também estão disponíveis:

Parâmetros para os filtros mcrypt
Parâmetro | Obrigatório? | Valor Padrão | Exemplos de Valores
mode | Opcional | cbc | cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir | Opcional | ini_get('mcrypt.algorithms_dir') | Localização dos módulos de algoritmos
modes_dir | Opcional | ini_get('mcrypt.modes_dir') | Localização dos módulos de modos
iv | Obrigatório | N/A | Tipicamente 8, 16 ou 32 bytes de dados binários. Depende da cifra.
key | Obrigatório | N/A | Tipicamente 8, 16 ou 32 bytes de dados binários. Depende da cifra.

Exemplo #1 Criptografar/Descriptografar com Blowfish

<?php
// assume-se que $key foi gerada anteriormente
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM);
$fp = fopen('encrypted-file.enc', 'wb');
fwrite($fp, $iv);
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key);
stream_filter_append($fp, 'mcrypt.blowfish', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'mensagem para criptografar');
fclose($fp);

// descriptografar...
$fp = fopen('encrypted-file.enc', 'rb');
$iv = fread($fp, $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC));
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key);
stream_filter_append($fp, 'mdecrypt.blowfish', STREAM_FILTER_READ, $opts);
$data = rtrim(stream_get_contents($fp)); // retira o null padding
fclose($fp);
echo $data;
?>

Exemplo #2 Criptografar arquivo usando CBC AES-128 com HMAC SHA256

<?php
AES_CBC::encryptFile($password, "plaintext.txt", "encrypted.enc");
AES_CBC::decryptFile($password, "encrypted.enc", "decrypted.txt");

class AES_CBC
{
protected static $KEY_SIZES = array('AES-128'=>16,'AES-192'=>24,'AES-256'=>32);
protected static function key_size() { return self::$KEY_SIZES['AES-128']; } // padrão AES-128
public static function encryptFile($password, $input_stream, $aes_filename){
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$fin = fopen($input_stream, "rb");
$fc = fopen($aes_filename, "wb+");
if (!empty($fin) && !empty($fc)) {
fwrite($fc, str_repeat("_", 32) ); // placeholder, HMAC SHA256 será usado aqui mais tarde
fwrite($fc, $hmac_salt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
fwrite($fc, $esalt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
fwrite($fc, $iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
$ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
$opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
stream_filter_append($fc, 'mcrypt.rijndael-128', STREAM_FILTER_WRITE, $opts);
$infilesize = 0;
while (!feof($fin)) {
$block = fread($fin, 8192);
$infilesize+=strlen($block);
fwrite($fc, $block);
}
$block_size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$padding = $block_size - ($infilesize % $block_size);//$padding is a number from 1-16
fwrite($fc, str_repeat(chr($padding), $padding) );//perform PKCS7 padding
fclose($fin);
fclose($fc);
$hmac_raw = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
$fc = fopen($aes_filename, "rb+");
fwrite($fc, $hmac_raw);//overwrite placeholder
fclose($fc);
}
}
public static function decryptFile($password, $aes_filename, $out_stream) {
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$hmac_raw = file_get_contents($aes_filename, false, NULL, 0, 32);
$hmac_salt = file_get_contents($aes_filename, false, NULL, 32, $iv_size);
$hmac_calc = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
$fc = fopen($aes_filename, "rb");
$fout = fopen($out_stream, 'wb');
if (!empty($fout) && !empty($fc) && self::hash_equals($hmac_raw,$hmac_calc)) {
fread($fc, 32+$iv_size);//skip sha256 hmac and salt
$esalt = fread($fc, $iv_size);
$iv = fread($fc, $iv_size);
$ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
$opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
stream_filter_append($fc, 'mdecrypt.rijndael-128', STREAM_FILTER_READ, $opts);
while (!feof($fc)) {
$block = fread($fc, 8192);
if (feof($fc)) {
$padding = ord($block[strlen($block) - 1]);//assume PKCS7 padding
$block = substr($block, 0, 0-$padding);
}
fwrite($fout, $block);
}
fclose($fout);
fclose($fc);
}
}
private static function hash_equals($str1, $str2) {
if(strlen($str1) == strlen($str2)) {
$res = $str1 ^ $str2;
for($ret=0,$i = strlen($res) - 1; $i >= 0; $i--) $ret |= ord($res[$i]);
return !$ret;
}
return false;
}
private static function calculate_hmac_after_32bytes($password, $hsalt, $filename) {
static $init=0;
$init or $init = stream_filter_register("user-filter.skipfirst32bytes", "FileSkip32Bytes");
$stream = 'php://filter/read=user-filter.skipfirst32bytes/resource=' . $filename;
$hkey = hash_pbkdf2("sha256", $password, $hsalt, $iterations=1000, 24, $raw=true);
return hash_hmac_file('sha256', $stream, $hkey, $raw=true);
}
}
class FileSkip32Bytes extends php_user_filter
{
private $skipped=0;
function filter($in, $out, &$consumed, $closing) {
while ($bucket = stream_bucket_make_writeable($in)) {
$outlen = $bucket->datalen;
if ($this->skipped<32){
$outlen = min($bucket->datalen,32-$this->skipped);
$bucket->data = substr($bucket->data, $outlen);
$bucket->datalen = $bucket->datalen-$outlen;
$this->skipped+=$outlen;
}
$consumed += $outlen;
stream_bucket_append($out, $bucket);
}
return PSFS_PASS_ON;
}
}
class AES_128_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-128']; }
}
class AES_192_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-192']; }
}
class AES_256_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-256']; }
}


Lista de Transportes via Socket Suportados

Índice

  • Domínios da Internet: TCP, UDP, SSL, e TLS
  • Domínio Unix: Unix e UDG

Segue a lista dos vários estilos de URL para transporte via socket que o PHP tem integrado para uso com funções de fluxos de dados baseados em socket como fsockopen(), e stream_socket_client(). Esses transportes não se aplicam à Extensão de Sockets.

Para uma lista de transportes instalados na sua versão do PHP use stream_get_transports().


Domínios da Internet: TCP, UDP, SSL, e TLS

ssl://, tls://, sslv2:// & sslv3://.

Nota: Se nenhum transporte for especificado, tcp:// será usado.

  • 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
  • sslv2://www.example.com
  • sslv3://www.example.com
  • tls://www.example.com

Sockets nos Domínios da Internet esperam um número de porta além do endereço desejado. No caso de fsockopen(), esta é especificada no segundo parâmetro e, portanto, não afeta a formatação da URL. Com stream_socket_client() e funções relacionadas como com as URLs tradicionais, no entanto, o número da porta é especificado como um sufixo à URL delimitada por dois pontos.

  • tcp://127.0.0.1:80
  • tcp://[fe80::1]:80
  • tcp://www.example.com:80

Nota: Endereços numéricos com número de porta em IPv6
No segundo exemplo acima, enquanto os exemplos em IPv4 e nome de host permaneceram iguais, exceto pela adição do dois pontos e número da porta, o endereço em IPv6 é envolto em colchetes: [fe80::1]. Isso é para distinguir entre os dois pontos de um endereço IPv6 e como separador de porta no IPv4.

Os transportes ssl:// e tls:// (disponíveis apenas quando o suporte a openssl é compilado no PHP) são extensões do transporte tcp:// que incluem encriptação SSL.

ssl:// tentará negociar uma conexão SSL V2 ou SSL V3, dependendo das capacidades e preferências do host remoto. sslv2:// e sslv3:// selecionará o protocolo de maneira explícita.


Domínio Unix: Unix e UDG

unix:// e udg://

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix:// provê acessos a conexão via Unix sockets. udg:// provê um transporte alternativo para um socket Unix usando o protocolo de datagramas de usuário (UDP).

Sockets Unix, diferentes de sockets de Internet, não esperam um número de porta. No caso de fsockopen() o parâmetro portno deve ser o valor 0.

Nota: Sockets Unix domain não são suportados no Windows.


Tabela de comparações de tipos do PHP

As seguintes tabelas demonstram o comportamento dos tipos e operadores de comparação no PHP, tanto para comparações aproximadas ou exatas. Este complemento é também relacionado com a seção do manual sobre type juggling. A inspiração vem dos comentários de vários usuários e do trabalho feito pela » BlueShoes.

Antes de utilizar essas tabelas, é importante entender os tipos e seus significados. Por exemplo, "42" é uma string enquanto 42 é um int. false é um bool enquanto "false" é uma string.

Nota:

Formulários HTML não passam inteiros, floats ou booleanos; eles passam strings. Para saber se uma string é do tipo númerico, você pode usar a função is_numeric().

Nota:

Usar apenas if ($x) quando $x estiver indefinido irá gerar um erro do nível E_NOTICE. Em vez disso, considere usar empty() ou isset() ou ainda inicialize suas variáveis.

Nota:

Algumas operações númericas podem resultar em um valor representado pela constante NAN. Quaisquer comparações exatas ou aproximadas deste valor contra qualquer outro valor, incluindo ele mesmo, com exceção de true, terão como resultado false. (por exemplo NAN != NAN e NAN !== NAN) Exemplos de operações que geram NAN são sqrt(-1), asin(2), e acosh(0).

Comparações de $x com funções PHP
Expression | gettype() | empty() | is_null() | isset() | bool : if($x)
$x = ""; | string | true | false | true | false
$x = null; | NULL | true | true | false | false
var $x; | NULL | true | true | false | false
$x is undefined | NULL | true | true | false | false
$x = []; | array | true | false | true | false
$x = ['a', 'b']; | array | false | false | true | true
$x = false; | bool | true | false | true | false
$x = true; | bool | false | false | true | true
$x = 1; | int | false | false | true | true
$x = 42; | int | false | false | true | true
$x = 0; | int | true | false | true | false
$x = -1; | int | 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

Comparações aproximadas com ==
 | true | false | 1 | 0 | -1 | "1" | "0" | "-1" | null | [] | "php" | ""
true | true | false | true | false | true | true | false | true | false | false | true | false
false | false | true | false | true | false | false | true | false | true | true | false | true
1 | true | false | true | false | false | true | false | false | false | false | false | false
0 | false | true | false | true | false | false | true | false | true | false | false* | false*
-1 | true | false | false | false | true | false | false | true | false | false | false | false
"1" | true | false | true | false | false | true | false | false | false | false | false | false
"0" | false | true | false | true | false | false | true | false | false | false | false | false
"-1" | true | false | false | false | true | false | false | true | false | false | false | false
null | false | true | false | true | false | false | false | false | true | true | false | true
[] | false | true | false | false | false | false | false | false | true | true | false | false
"php" | true | false | false | false* | false | false | false | false | false | false | true | false
"" | false | true | false | false* | false | false | false | false | true | false | false | true
* true anteriormente ao PHP 8.0.0.

Comparações exatas com ===
 | true | false | 1 | 0 | -1 | "1" | "0" | "-1" | null | [] | "php" | ""
true | true | false | false | false | false | false | false | false | false | false | false | false
false | false | true | false | false | false | false | false | false | false | false | false | false
1 | false | false | true | false | false | false | false | false | false | false | false | false
0 | false | false | false | true | false | false | false | false | false | false | false | false
-1 | false | false | false | false | true | false | false | false | false | false | false | false
"1" | false | false | false | false | false | true | false | false | false | false | false | false
"0" | false | false | false | false | false | false | true | false | false | false | false | false
"-1" | false | false | false | false | false | false | false | true | false | false | false | false
null | false | false | false | false | false | false | false | false | true | false | false | false
[] | false | false | false | false | false | false | false | false | false | true | false | false
"php" | false | false | false | false | false | false | false | false | false | false | true | false
"" | false | false | false | false | false | false | false | false | false | false | false | true


Lista de Tokens do Parser

Várias partes da linguagem PHP são representadas internamente por tokens. Um trecho de código que contém uma sequ?ncia inválida de tokens podem ocasionar erros como Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10." onde o token == é internamente representado pelo identificador T_IS_EQUAL.

A tabela a seguir lista todos os tokens, disponíveis como constantes no PHP.

Nota: Uso das constantes T_*

Os valores das constantes T_* são gerados automaticamente pela infraestrutura do interpretador do PHP, sem estabilidade. Isto significa que o valor real de um token pode mudar entre duas versões do PHP. Isso significa que seu código nunca deve depender diretamente dos valores originais de T_* levando em consideração uma versão específica do PHP, para que seu código funcione em várias versões do PHP.

Para utilizar as constantes T_* entre várias versões do PHP, constantes não definidas podem ser criadas pelo usuário (utilizando-se grandes números, a partir de 10000) como uma estratégia apropriada que funcionará entre versões do PHP e os valores automaticamente definidos.

<?php
// Anteriormente ao PHP 7.4.0, T_FN não era definido.
defined('T_FN') || define('T_FN', 10001);

Tokens
Token | Sintaxe | Referência
T_ABSTRACT | abstract | Abstração de Classes
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG | & | Declarações de tipo (disponível desde o PHP 8.1.0)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG | & | Declarações de tipo (disponível desde o PHP 8.1.0)
T_AND_EQUAL | &= | operadores de atribuição
T_ARRAY | array() | array(), sintaxe de array
T_ARRAY_CAST | (array) | conversão de tipo
T_AS | as | foreach
T_ATTRIBUTE | #[ | attributes (a partir do PHP 8.0.0)
T_BAD_CHARACTER |  | qualquer coisa abaixo de ASCII 32 exceto \t (0x09), \n (0x0a) and \r (0x0d) (disponível a partir do PHP 7.4.0)
T_BOOLEAN_AND | && | operadores lógicos
T_BOOLEAN_OR | || | operadores lógicos
T_BOOL_CAST | (bool) ou (boolean) | conversão de tipos
T_BREAK | break | break
T_CALLABLE | callable | callable
T_CASE | case | switch
T_CATCH | catch | Exceções
T_CLASS | class | classes e objetos
T_CLASS_C | __CLASS__ | constantes mágicas
T_CLONE | clone | classes e objetos
T_CLOSE_TAG | ?> ou %> | escapando o HTML
T_COALESCE | ?? | operadores de comparação
T_COALESCE_EQUAL | ??= | operadores de assimilação (disponível a partir do PHP 7.4.0)
T_COMMENT | // ou #, e /* */ | comentários
T_CONCAT_EQUAL | .= | operadores de atribuição
T_CONST | const | constantes
T_CONSTANT_ENCAPSED_STRING | "foo" ou 'bar' | sintaxe de string
T_CONTINUE | continue | continue
T_CURLY_OPEN | {$ | sintaxe complexa de parse (chaves)
T_DEC | -- | operadores de incremento/ decremento
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIR | __DIR__ | constantes mágicas
T_DIV_EQUAL | /= | operadores de atribuição
T_DNUMBER | 0.12, etc. | números de ponto flutuante
T_DO | do | do..while
T_DOC_COMMENT | /** */ | comentários PHPDoc
T_DOLLAR_OPEN_CURLY_BRACES | ${ | sintaxe complexa de parse (chaves)
T_DOUBLE_ARROW | => | sintaxe de array
T_DOUBLE_CAST | (real), (double) ou (float) | conversão de tipos
T_DOUBLE_COLON | :: | veja T_PAAMAYIM_NEKUDOTAYIM abaixo
T_ECHO | echo | echo
T_ELLIPSIS | ... | argumentos de função
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE | " $a" | interpretação de variáveis em strings
T_ENDDECLARE | enddeclare | declare, sintaxe alternativa
T_ENDFOR | endfor | for, sintaxe alternativa
T_ENDFOREACH | endforeach | foreach, sintaxe alternativa
T_ENDIF | endif | if, sintaxe alternativa
T_ENDSWITCH | endswitch | switch, sintaxe alternativa
T_ENDWHILE | endwhile | while, sintaxe alternativa
T_ENUM | enum | Enumerations (disponível desde o PHP 8.1.0)
T_END_HEREDOC |  | sintaxe heredoc
T_EVAL | eval() | eval()
T_EXIT | exit ou die | exit(), die()
T_EXTENDS | extends | extends, classes e objetos
T_FILE | __FILE__ | constantes mágicas
T_FINAL | final | final
T_FINALLY | finally | Exceções
T_FN | fn | função seta (disponível a partir do PHP 7.4.0)
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | função | funções
T_FUNC_C | __FUNCTION__ | constantes mágicas
T_GLOBAL | global | escopo de variáveis
T_GOTO | goto | goto
T_HALT_COMPILER | __halt_compiler() | __halt_compiler
T_IF | if | if
T_IMPLEMENTS | implements | Interfaces de Objetos
T_INC | ++ | operadores de incremento/decremento
T_INCLUDE | include | include
T_INCLUDE_ONCE | include_once | include_once
T_INLINE_HTML |  | escapando o HTML
T_INSTANCEOF | instanceof | operadores de tipo
T_INSTEADOF | insteadof | Traits
T_INTERFACE | interface | Interfaces de Objetos
T_INT_CAST | (int) ou (integer) | conversão de tipos
T_ISSET | isset() | isset()
T_IS_EQUAL | == | operadores de comparação
T_IS_GREATER_OR_EQUAL | >= | operadores de comparação
T_IS_IDENTICAL | === | operadores de comparação
T_IS_NOT_EQUAL | != ou <> | operadores de comparação
T_IS_NOT_IDENTICAL | !== | operadores de comparação
T_IS_SMALLER_OR_EQUAL | <= | operadores de comparação
T_LINE | __LINE__ | constantes mágicas
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac, etc. | inteiros
T_LOGICAL_AND | and | operadores lógicos
T_LOGICAL_OR | or | operadores lógicos
T_LOGICAL_XOR | xor | operadores lógicos
T_MATCH | match | match (a partir do PHP 8.0.0)
T_METHOD_C | __METHOD__ | constantes mágicas
T_MINUS_EQUAL | -= | operadores de atribuição
T_MOD_EQUAL | %= | operadores de atribuição
T_MUL_EQUAL | *= | operadores de atribuição
T_NAMESPACE | namespace | namespaces
T_NAME_FULLY_QUALIFIED | \App\Namespace | namespaces (a partir do PHP 8.0.0)
T_NAME_QUALIFIED | App\Namespace | namespaces (a partir do PHP 8.0.0)
T_NAME_RELATIVE | namespace\Namespace | namespaces (a partir do PHP 8.0.0)
T_NEW | new | classes e objetos
T_NS_C | __NAMESPACE__ | namespaces
T_NS_SEPARATOR | \ | namespaces
T_NUM_STRING | "$a[0]" | interpretação de variáveis em strings
T_OBJECT_CAST | (object) | conversão de tipos
T_OBJECT_OPERATOR | -> | classes e objetos
T_NULLSAFE_OBJECT_OPERATOR | ?-> | classes e objetos
T_OPEN_TAG | <?php, <? ou <% | escapando o HTML
T_OPEN_TAG_WITH_ECHO | <?= ou <%= | escapando o HTML
T_OR_EQUAL | |= | operadores de atribuição
T_PAAMAYIM_NEKUDOTAYIM | :: | ::. Também definido como T_DOUBLE_COLON.
T_PLUS_EQUAL | += | operadores de atribuição
T_POW | ** | operadores aritméticos
T_POW_EQUAL | **= | operadores de atribuição
T_PRINT | print | print
T_PRIVATE | private | classes e objetos
T_PROTECTED | protected | classes e objetos
T_PUBLIC | public | classes e objetos
T_READONLY | readonly | classes e objetos (a partir do PHP 8.1.0)
T_REQUIRE | require | require
T_REQUIRE_ONCE | require_once | require_once
T_RETURN | return | retornando valores
T_SL | << | operador bit-a-bit
T_SL_EQUAL | <<= | operadores de atribuição
T_SPACESHIP | <=> | operadores de comparação
T_SR | >> | operador bit-a-bit
T_SR_EQUAL | >>= | operadores de atribuição
T_START_HEREDOC | <<< | sintaxe heredoc
T_STATIC | static | escopo de variáveis
T_STRING | parent, self, etc. | identificadores, ex. palavras-chaves tais como parent e self, nomes de função, nomes de classe e outros correspondem a esta categoria. Veja também T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST | (string) | conversão de tipos
T_STRING_VARNAME | "${a | sintaxe complexa de parse (chaves)
T_SWITCH | switch | switch
T_THROW | throw | Exceções
T_TRAIT | trait | Traits
T_TRAIT_C | __TRAIT__ | __TRAIT__
T_TRY | try | Exceções
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | conversão de tipos
T_USE | use | namespaces
T_VAR | var | classes e objetos
T_VARIABLE | $foo | variáveis
T_WHILE | while | while, do..while
T_WHITESPACE | \t \r\n |
T_XOR_EQUAL | ^= | operadores de atribuição
T_YIELD | yield | generators
T_YIELD_FROM | yield from | generators

Veja também token_name().


Guia de nomenclatura em espaço de usuário

Índice

  • Escopo Global
  • Regras
  • Dicas

O seguinte guia tem como objetivo orientar em como escolher nome para identificadores em código PHP em espaço de usuário. Quando escolher nome para qualquer código que crie símbolos no escopo global, é importante levar em conta as seguintes orientações para previnir que futuras versões do PHP entrem em conflito com o seus símbolos.


Escopo Global

Aqui está uma visão geral de artefatos de código que acabam no escopo global:

  • funções

  • classes

  • interfaces

  • constantes (menos constantes de classes)

  • variáveis definidas fora de funções e métodos


Regras

A lista a seguir dá uma visão geral de quais direitos o projeto do PHP reserva para si, quando escolhe nomes para novos identificadores internos. O guia definitivo é » PADRÕES DE CÓDIGO:

  • PHP detém o escopo de alto nível, mas tenta achar nomes descritivos decentes e evita qualquer conflito óbvio.

  • Nomes de funções usam sublinhado (_) entre palavas, enquanto nomes de classe usam a notação camelCase e PascalCase.

  • O PHP prefixará quaisquer símbolos globais de uma extensão com o nome da extensão (No passado, existiam várias exceções à essa regra). Exemplos:

    • curl_close()

    • mysql_query()

    • PREG_SPLIT_DELIM_CAPTURE

    • new DOMDocument()

    • strpos() (exemplo de um erro do passado)

    • new SplFileObject()

  • Iterators e Exceptions são, no entanto, simplesmente sufixados com "Iterator" e "Exception." Exemplos:

    • ArrayIterator

    • LogicException

  • O PHP reserva todos os símbolos começando com __ como mágicos. É recomendado que você não crie símbolos começando com __ a não ser que você queira usar a funcionalidade mágica documentada. Exemplos:

    • __get

    • __autoload()


Dicas

Para escrever código que não sofrerá problemas no futuro, é recomendado que você não coloque variáveis, funções ou classes no espaço global. Isto evitará colisões de nome com código de terceiros assim como futuros acréscimos à linguagem.

Uma forma de prevenir colisões de nomes em funções e classes é colocá-las em seus próprios namespaces.

<?php

namespace MyProject;

function my_function() {
return true;
}

\MyProject\my_function();

This still needs you to keep track of already used namespaces, but once you have decided on a namespace you will be using you can add all functions and classes to it without having to think about conflicts again.

Também é considerada uma boa prática limitar o número de variáveis alocadas no escopo global de forma a evitar colisões de nome com código de terceiros.

Nota: Variable scoping

Por causa das regras de escopo do PHP as variáveis definidas dentro de funções e métodos não estão no escopo global e não podem conflitar com variáveis definidas nesse escopo.


Sobre o manual

Índice

  • Formatos
  • Sobre as notas dos usuários
  • Como ler uma definição de função (protótipo)
  • Versões do PHP documentadas neste manual
  • Como encontrar mais informações sobre o PHP
  • Como ajudar a melhorar a documentação
  • Como nós geramos os formatos
  • Traduções


Formatos

O manual PHP é disponibilizado em diversos formatos. Estes formatos podem ser divididos em dois grupos: formatos de leitura online e pacotes para download.

Nota:

Algumas editoras fizeram versões impressas deste manual. Porém estas versões não são recomendadas, pois tendem a se tornar rapidamente desatualizadas.

O manual PHP pode ser lido online no » site do PHP.net. A versão online do manual PHP tem atualmente duas folhas de estilo CSS, uma web amigável e a outra folha de estilo para impressão.

Duas vantagens notáveis do manual online sobre a maioria dos formatos offline é a integração das notas dos usuários e os » atalhos de URL que podem ser usados para ir rapidamente para partes desejadas do manual. Uma óbvia desvantagem é o requisito de estar online para visualização desta edição do manual.

Existem diversos formatos offline do manual, e o formato mais adequado depende do sistema operacional e do estilo de leitura pessoal. Para informações de como o manual é gerado em tantos formatos, veja a seção 'Como nós geramos os formatos' deste apêndice.

A versão HTML é o formato mais multi-plataforma deste manual. Esta versão está disponível como um único arquivo HTML e como um pacote de arquivos individuais para cada seção (que resulta em uma coleção de milhares de arquivos). Nós disponibilizamos estas versões compactadas, então um programa de descompactação é necessário para recuperar os arquivos contidos dentro destes pacotes.

Para plataformas Windows, a versão Windows HTML Help do manual otimiza o formato HTML para o uso com o programa Windows HTML Help. Esta versão fornece busca de textos, índice completo e marcadores. Vários ambientes de desenvolvimento populares do PHP no Windows se integram com esse formato da documentação para facilitar o acesso à documentação. Visualizadores de CHM para desktops Linux também estão disponíveis. Veja » xCHM or » GnoCHM.

Existe também uma » versão CHM estendida disponível, que é atualizada menos frequentemente, mas que oferece muitos recursos adicionais. Entretanto ela irá funcionar apenas no Microsoft Windows, devido às tecnologias usadas para compilar as páginas de ajuda.


Sobre as notas dos usuários

As notas dos usuários possuem um importante papel no desenvolvimento deste manual. Ao permitir que os leitores do manual possam contribuir com exemplos, ressalvas e outros esclarecimentos através de seus navegadores, somos capazes de incorporar esse feedback dentro do texto principal do manual. E até que as notas sejam incorporadas, elas podem ser vistas na sua forma online e em alguns dos formatos offline.

Nota:

As notas dos usuários não são moderadas antes delas aparecem online, então a qualidade da escrita ou dos exemplos de código, e mesmo a veracidade da contribuição, não podem ser garantidas. (Não que haja qualquer garantia da qualidade ou exatidão do próprio texto do manual.)

Nota:

Para fins de cobertura de licença as notas fornecidas por usuários são consideradas parte do manual do PHP, e por isso são cobertas pela mesma licença desta documentação (atualmente a licença Creative Commons Attribution). Para mais detalhes, veja a página de Direitos Autorais do Manual.


Como ler uma definição de função (protótipo)

Cada função no manual é documentada para uma referência rápida. Saber como ler e entender o texto tornará a aprendizagem do PHP muito mais fácil. Mais do que simplesmente estudar exemplos ou copiar/colar, todos deveriam saber como ler as definições de funções (protótipos). Vamos começar:

Nota: Pré-requisito: Entendimento básico de tipos

Mesmo o PHP sendo uma linguagem fracamente tipada, é importante ter um entendimento básico dos tipos pois eles têm um importante significado.

Definições das funções nos dizem que tipo de valor é retornado. Vamos usar a definição da função strlen() como nosso primeiro exemplo:

strlen

(PHP 4, PHP 5, PHP 7)
strlen -- Obtém o tamanho da string

Descrição
strlen ( string $string ) : int

Retorna o tamanho da string dada.

Explicação de uma definição de função
Parte | Descrição
strlen | Nome da função.
(PHP 4, PHP 5, PHP 7) | strlen() está disponível em todas as versões do PHP 4, 5 e 7
( string $string ) | O primeiro (e neste caso, o único) parâmetro/argumento para esta função é chamado string, e é uma string.
int | Tipo do valor que esta função retorna, que é um int (isto é, o comprimento de uma string é medido em números).

Poderíamos reescrever a definição da função acima de uma maneira genérica:

      nome da função    ( tipo do parâmetro   nome do parâmetro ) : tipo retornado

Muitas funções recebem múltiplos parâmetros, tais como a função in_array(). Seu protótipo segue abaixo:

      in_array ( mixed $needle, array $haystack , bool $strict = false ) : bool

O que isso significa? in_array() retorna um valor booleano, true em caso de sucesso (se needle foi encontrado em haystack) ou false em caso de falha (se needle não foi encontrado em haystack). O primeiro parâmetro é chamado needle e pode de ser de vários tipos diferentes, por isso nós o chamamos "mixed" (misto). Esse needle mixed (o que nós estamos procurando) pode ser tanto um valor escalar (string, inteiro, ou float) ou um array. haystack (o array onde nós estamos procurando) é o segundo parâmetro. O terceiro parâmetro opcional é chamado strict. Todos os parâmetros opcionais têm valores padrão (default). Se o valor padrão é desconhecido, então é mostrado um ?. O exemplo diz que o valor padrão do parâmetro strict é o booleano false. Veja a página do manual de cada função para detalhes de como elas funcionam.

Além do mais o símbolo & (ampersand, e comercial) antes de um parâmetro de função permite ao parâmetro ser passado por referência, como no exemplo abaixo:

       preg_match ( string $pattern , string $subject , array &$matches = null,
       int $flags = 0 , int $offset = 0 ) : int|false

Neste exemplo podemos ver que o terceiro parâmetro opcional &$matches será passado por referência.

Existem também funções com informações de versões do PHP mais complexas. Tome como exemplo html_entity_decode():

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

Isto significa que esta função só está disponível a partir da versão PHP 4.3.0.


Versões do PHP documentadas neste manual

O manual contém informações sobre as versões passadas, presente, e futuras do PHP. Modificações no comportamento são documentadas como notas, changelogs e em trechos nas páginas do manual. A versão mais antiga documentada é o PHP 7.0.0.

Quando a documentação existir para versões mais recentes de desenvolvimento (unreleased) do PHP, será marcada como "available in Git" ou "development version". E, embora estas mudanças sejam planejadas, em casos raros elas podem mudar.

Todo desenvolvimento ocorre no Git e o check out pode ser feito como descrito na página » acesso anônimo ao Git .

E para esclarecer, o manual refere-se a maiores, menores e específicas releases do PHP. Usando o PHP 7.3.1 como exemplo, o 7 refere-se à versão maior, 3 à menor e 1 é a release específica. Tipicamente o PHP somente adiciona novas features em maiores e menores releases, e corrige bugs em releases específicas. Porém, esta convenção nem sempre é verdadeira.

Observe também que o manual PHP é escrito no tempo presente, e não no futuro, mesmo que para recursos documentados que ainda não estão disponíveis. A razão para isto é que o manual pode resistir ao teste do tempo, portanto não exige tediosas atualizações gramaticais a cada nova release do PHP.

Muitas vezes o manual do PHP lista "Valores Padrão" para as diretivas do PHP. Estes valores são baseados em como o PHP se comporta sem um arquivo de configuração php.ini, então podem ser diferentes dos valores encontrados nos arquivos php.ini-development e php.ini-production distribuídos. Eles também referem-se à última versão do PHP, embora entradas do changelog mencionem valores anteriores. Veja o Apêndice Diretivas do PHP para detalhes a respeito destes valores e mudanças.


Como encontrar mais informações sobre o PHP

Este manual não tenta fornecer instruções sobre práticas gerais de programação. Programadores de primeira viagem - ou apenas começando - podem achar difícil aprender a programar em PHP usando exclusivamente este manual. Em vez disso, procure um texto mais orientado para iniciantes.

Há uma série de listas de discussão ativas para discussões de todos os aspectos da programação com PHP. Se estiver preso com algum problema, considere o uso destas listas. Para opções de suporte, incluindo listas de discussão, veja a » página de suporte do PHP.net.


Como ajudar a melhorar a documentação

Há várias maneiras de ajudar a melhorar a documentação.

Se um erro for encontrado neste manual, em qualquer linguagem, por favor informe-os usando o rastreador de problemas (issues) do respectivo repositório de linguagem em » https://github.com/php. Por exemplo, erros no manual em inglês devem ser reportados em » https://github.com/php/doc-en/issues. Todos os problemas relacionados com a documentação, inclusive sobre os formatos de manuais, devem ser enviados como relatórios de bugs.

Nota:

Por favor, não abuse dos rastreadores de problemas enviando pedidos de ajuda. Neste caso, use uma das muitas » opções de suporte.

Ao contribuir com notas, os usuários podem fornecer exemplos adicionais, ressalvas e esclarecimentos para outros leitores. Mas por favor, não informe bugs usando o sistema de anotações. Para mais detalhes, veja a seção intitulada 'Sobre as notas de usuários'.

Também é possível enviar pull requests para o » repositório espelho Github da documentação.

O manual PHP é traduzido em várias línguas. Saber inglês e uma língua estrangeira permite uma outra maneira de ajudar a melhorar o manual PHP trabalhando com um time de tradução. Para mais informações sobre como iniciar uma nova tradução, ou ajudar no projeto de tradução atual, por favor leia » http://doc.php.net/tutorial/.

O Projeto de Documentação do PHP também possui um canal IRC onde muitos autores do manual se reúnem. Passe no canal #php.doc em irc.efnet.org e discuta maneiras de melhorar a documentação do PHP.


Como nós geramos os formatos

Este Manual é escrito em XML usando o » DocBook XML DTD, usando » PhD (The [PH]P based [D]ocBook renderer) para manutenção e formatação.

Usar XML como formato fonte nos dá a capacidade de gerar diversos formatos de saída a partir dos arquivos fonte, enquanto apenas um documento fonte é mantido para todos os formatos. A ferramenta usada para formatar o manual online é » PhD. Usamos » Microsoft HTML Help Workshop para gerar o formato Windows HTML Help do manual e, é claro, o próprio PHP para fazer algumas conversões e formatações.

O manual PHP é gerado em várias linguagens e formatos, veja » https://www.php.net/docs.php para maiores detalhes. O código fonte XML pode ser baixado do git e visualizado em » https://github.com/php/doc-en.


Traduções

O manual do PHP está disponível não apenas em vários formatos, mas também em várias linguagens. O texto do manual é escrito primeiro em inglês, então grupos de pessoas ao redor do mundo fazem as traduções para suas línguas nativas. Se a tradução para uma específica função ou capítulo ainda não foi feita, o sistema de compilação do manual utiliza a versão original em inglês.

Pessoas envolvidas na tradução iniciam do código fonte XML disponível em » https://github.com/php/doc-en e partir daí é feita tradução para sua língua mãe. Eles não utilizam as versões geradas (como HTML ou texto plano) já que é o sistema de compilação do manual que cuida das conversões de XML para formatos mais legíveis.

Nota:

Para colaborar com a tradução da documentação entre em contato com time de tradução/documentação inscrevendo-se na lista de discussão do phpdoc: envie um e-mail vazio para » phpdoc+subscribe@lists.php.net. O endereço da lista de discussão é phpdoc@lists.php.net. Informe na mensagem o interesse em traduzir o manual e alguém irá responder com orientações sobre como avançar iniciando uma nova tradução de linguagem ou entrando em contato com o time de documentação da língua desejada.

Atualmente o manual está disponível, parcialmente ou não, em mais de 10 linguagens.

Todos eles podem ser baixados aqui: » https://www.php.net/docs.php.


Creative Commons Attribution 3.0

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

  1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
  2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
  3. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
  4. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
  5. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
  6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
  7. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
  8. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

  1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
  2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
  3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
  4. to Distribute and Publicly Perform Adaptations.

  5. For the avoidance of doubt:

    1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
    2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
    3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

  1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
  2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
  3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination.

  1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
  2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

  1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
  2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
  3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
  4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent
  5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
  6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.


  • « Creative Commons Attribution 3.0
  • Lista de Funções e Métodos »
  • PHP Manual
  • Apêndices
  • Lista de índices

Lista de índices

Índice

  • Lista de Funções e Métodos
  • Lista de exemplos


Lista de Funções e Métodos

Lista de todas as funções e métodos no manual

a b c d e f g h i j k l m n o p q r s t u v w x y z _

  • a
    • abs - Valor absoluto
    • acos - Arco cosseno
    • acosh - Arco cosseno hiperbólico
    • addcslashes - Quote string with slashes in a C style
    • addslashes - Adiciona barras a uma string
    • AllowDynamicProperties::__construct - Constrói uma nova instância do atributo AllowDynamicProperties
    • apache_child_terminate - Finaliza o processo Apache depois da requisição
    • apache_getenv - Retorna uma variável subprocess_env do Apache
    • apache_get_modules - Retorna uma lista de módulos carregados do Apache
    • apache_get_version - Retorna a versão do Apache
    • apache_lookup_uri - Realiza uma requisição parcial para a URI especificada e retorna todas as informações sobre ela
    • apache_note - Obtêm e configura notas de requisição
    • apache_request_headers - Obtém todos os cabeçalhos da requisição HTTP
    • apache_response_headers - Obtém todos os cabeçalhos da resposta HTTP
    • apache_setenv - Define uma variável subprocess_env do Apache
    • APCUIterator::current - Obtém o item atual
    • APCUIterator::getTotalCount - Obtém a contagem total
    • APCUIterator::getTotalHits - Obtém o total de entradas de cache
    • APCUIterator::getTotalSize - Obtém o tamanho total do cache
    • APCUIterator::key - Obtém a chave do iterador
    • APCUIterator::next - Move o ponteiro para o próximo item
    • APCUIterator::rewind - Rebobina o iterador
    • APCUIterator::valid - Verifica se a posição atual é válida
    • APCUIterator::__construct - Constrói um objeto iterador APCUIterator
    • apcu_add - Faz cache de uma nova variável no armazenamento de dados
    • apcu_cache_info - Recupera informação em cache a partir do armazenamento de dados do APCu
    • apcu_cas - Atualiza um valor antigo com um novo
    • apcu_clear_cache - Limpa o cache APCu
    • apcu_dec - Decrementa um número armazenado
    • apcu_delete - Remove uma variável armazenada do cache
    • apcu_enabled - Informa se o APCu está disponível no ambiente atual
    • apcu_entry - Busca ou gera atomicamente uma entrada de cache
    • apcu_exists - Verifica se uma entrada existe
    • apcu_fetch - Busca uma variável armazenada no cache
    • apcu_inc - Incrementa um número armazenado
    • apcu_key_info - Obtém informação detalhada sobre uma chave em cache
    • apcu_sma_info - Obtém informação de Alocação de Memória Compartilhada (SMA) do APCu
    • apcu_store - Armazena uma variável em cache
    • AppendIterator::append - Acrescenta um iterador
    • AppendIterator::current - Obtém o valor atual
    • AppendIterator::getArrayIterator - Obtém o ArrayIterator
    • AppendIterator::getIteratorIndex - Obtém um índice dos iteradores
    • AppendIterator::key - Obtém a chave atual
    • AppendIterator::next - Move para o próximo elemento
    • AppendIterator::rewind - Rebobina o Iterador
    • AppendIterator::valid - Verifica a validade do elemento atual
    • AppendIterator::__construct - Constrói um AppendIterator
    • array - Cria um array
    • ArrayAccess::offsetExists - Verifica se uma posição existe
    • ArrayAccess::offsetGet - Posição a ser obtida
    • ArrayAccess::offsetSet - Atribui um valor a uma posição específica
    • ArrayAccess::offsetUnset - Remove uma posição
    • ArrayIterator::append - Anexa um elemento
    • ArrayIterator::asort - Ordena entradas pelos valores
    • ArrayIterator::count - Conta os elementos
    • ArrayIterator::current - Retorna o valor do elemento atual do array
    • ArrayIterator::getArrayCopy - Obtém cópia do array
    • ArrayIterator::getFlags - Retorna as flags de comportamento
    • ArrayIterator::key - Retorna a chave do elemento atual do array
    • ArrayIterator::ksort - Ordena entradas por chaves
    • ArrayIterator::natcasesort - Ordena entradas naturalmente, sem diferenciar maiúsculas de minúsculas
    • ArrayIterator::natsort - Ordena entradas naturalmente
    • ArrayIterator::next - Avança para o próximo elemento
    • ArrayIterator::offsetExists - Verificar se o deslocamento existe
    • ArrayIterator::offsetGet - Obtém valor para um deslocamento
    • ArrayIterator::offsetSet - Define valor para um deslocamento
    • ArrayIterator::offsetUnset - Remove valor para um deslocamento
    • ArrayIterator::rewind - Recoloca o array no início
    • ArrayIterator::seek - Aponta para determinada posição
    • ArrayIterator::serialize - Serializa
    • ArrayIterator::setFlags - Define as flags que irão alterar o comportamento
    • ArrayIterator::uasort - Ordena com uma função de comparação definida pelo usuário e manter a associação de índices
    • ArrayIterator::uksort - Ordena por chaves usando uma função de comparação definida pelo usuário
    • ArrayIterator::unserialize - Desserializa
    • ArrayIterator::valid - Verifica se o array possui mais elementos
    • ArrayIterator::__construct - Constrói um ArrayIterator
    • ArrayObject::append - Anexa o valor
    • ArrayObject::asort - Ordenar as entradas por valor
    • ArrayObject::count - Obtém o número de propriedades públicas no ArrayObject
    • ArrayObject::exchangeArray - Troca o array por outro
    • ArrayObject::getArrayCopy - Cria uma cópia do ArrayObject
    • ArrayObject::getFlags - Obtém as flags de comportamento
    • ArrayObject::getIterator - Retorna o iterador do ArrayObject
    • ArrayObject::getIteratorClass - Obtém o nome da classe do iterador para o ArrayObject
    • ArrayObject::ksort - Ordena as entradas pela chave
    • ArrayObject::natcasesort - Ordena uma matriz usando um algoritmo de "ordem natural" insensível a maiúsculas e minúsculas
    • ArrayObject::natsort - Ordena as entradas usando um algoritmo de "ordem natural"
    • ArrayObject::offsetExists - Retorna se o índice solicitado existe
    • ArrayObject::offsetGet - Retorna o valor no índice especificado
    • ArrayObject::offsetSet - Define o valor no índice especificado para novo valor
    • ArrayObject::offsetUnset - Remove o valor no índice especificado
    • ArrayObject::serialize - Serializa um ArrayObject
    • ArrayObject::setFlags - Define as opções de comportamento
    • ArrayObject::setIteratorClass - Define a classe do iterador para o ArrayObject
    • ArrayObject::uasort - Ordena as entradas com uma função de comparação definida pelo usuário e mantém a associação de chaves
    • ArrayObject::uksort - Ordena as entradas pelas chaves usando uma função de comparação definida pelo usuário
    • ArrayObject::unserialize - Desserializa um ArrayObject
    • ArrayObject::__construct - Constrói um novo objeto de array
    • array_change_key_case - Modifica a caixa de todas as chaves em um array
    • array_chunk - Divide um array em pedaços
    • array_column - Retorna os valores de uma coluna do array informado
    • array_combine - Cria um array usando um array para chaves e outro para valores
    • array_count_values - Conta as ocorrências de cada valor distinto em um array
    • array_diff - Computa as diferenças entre arrays
    • array_diff_assoc - Computa a diferença entre arrays com checagem adicional de índice
    • array_diff_key - Computa a diferença entre arrays usando as chaves na comparação
    • array_diff_uassoc - Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
    • array_diff_ukey - Computa a diferença entre arrays usando uma função callback na comparação de chaves
    • array_fill - Preenche um array com valores
    • array_fill_keys - Preenche um array com valores, especificando chaves
    • array_filter - Filtra elementos de um array utilizando uma função callback
    • array_flip - Permuta todas as chaves e seus valores associados em um array
    • array_intersect - Calcula a interseção entre arrays
    • array_intersect_assoc - Computa a interseção de arrays com uma adicional verificação de índice
    • array_intersect_key - Calcula a interseção de arrays, comparando pelas chaves
    • array_intersect_uassoc - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
    • array_intersect_ukey - Computa a interseção de arrays usando uma função de callback nas chaves para comparação
    • array_is_list - Verifica se um array é uma lista
    • array_keys - Retorna todas as chaves ou uma parte das chaves de um array
    • array_key_exists - Verifica se uma chave ou índice existe em um array
    • array_key_first - Obtém a primeira chave de um array
    • array_key_last - Obtém a última chave de um array
    • array_map - Aplica uma função em todos os elementos dos arrays dados
    • array_merge - Combina um ou mais arrays
    • array_merge_recursive - Mescla um ou mais arrays recursivamente
    • array_multisort - Ordena múltiplos arrays ou arrays multidimensionais
    • array_pad - Expande um array para um certo comprimento utilizando um determinado valor
    • array_pop - Extrai um elemento do final do array
    • array_product - Calcula o produto dos valores de um array
    • array_push - Adiciona um ou mais elementos no final de um array
    • array_rand - Escolhe uma ou mais chaves aleatórias de um array
    • array_reduce - Reduz um array para um único valor através de um processo iterativo via callback
    • array_replace - Substitui elementos de arrays passados no primeiro array
    • array_replace_recursive - Substitui elementos de arrays passado no primeiro array recursivamente
    • array_reverse - Retorna um array com os elementos na ordem inversa
    • array_search - Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado
    • array_shift - Retira o primeiro elemento de um array
    • array_slice - Extrai uma parcela de um array
    • array_splice - Remove uma parte array e a substitui por outra coisa
    • array_sum - Calcula a soma dos elementos de um array
    • array_udiff - Computa a diferença de arrays usando uma função de callback para comparação dos dados
    • array_udiff_assoc - Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
    • array_udiff_uassoc - Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
    • array_uintersect - Computa a interseção de array, comparando dados com uma função callback
    • array_uintersect_assoc - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
    • array_uintersect_uassoc - Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas
    • array_unique - Remove os valores duplicados de um array
    • array_unshift - Adiciona um ou mais elementos no início de um array
    • array_values - Retorna todos os valores de um array
    • array_walk - Aplica uma determinada função em cada elemento de um array
    • array_walk_recursive - Aplica um função do usuário recursivamente para cada membro de um array
    • arsort - Ordena um array em ordem descrescente e mantém a associação de índices
    • asin - Arco seno
    • asinh - Arco seno hiperbólico
    • asort - Ordena um array em ordem crescente e mantém a associação de índices
    • assert - Executa um assert
    • assert_options - Set/get the various assert flags
    • atan - Arco tangente
    • atan2 - Arco tangente de duas variáveis
    • atanh - Arco tangente hiperbólico
    • Attribute::__construct - Constrói uma nova instância da classe Attribute
  • b
    • BackedEnum::from - Mapeia um escalar para uma instância de enumeração
    • BackedEnum::tryFrom - Mapeia um escalar para uma instância de enumeração ou nulo
    • base64_decode - Decodifica dados no formato MIME base64
    • base64_encode - Codifica dados com MIME base64
    • basename - Retorna a última parte do caminho
    • BaseResult::getWarnings - Fetch warnings from last operation
    • BaseResult::getWarningsCount - Fetch warning count from last operation
    • base_convert - Converte um número entre bases arbitrárias
    • bcadd - Adicionar dois números de precisão arbitrária
    • bccomp - Comparar dois números de precisão arbitrária
    • bcdiv - Dividir dois números de precisão arbitrária
    • bcmod - Obtém o módulo de um número com precisão arbitrária
    • bcmul - Multiplicar dois números de precisão arbitrária
    • bcpow - Eleva um número de precisão arbitrária a outro
    • bcpowmod - Eleva um número de precisão arbitrária para outro, reduzido por um módulo especificado
    • bcscale - Configura ou obtêm o parâmetro escala para todas as funções bc
    • bcsqrt - Obtém a raiz quadrada de um número de precisão arbitrária
    • bcsub - Subtrai um número de precisão arbitrária de outro
    • bin2hex - Converte um dado binário em representação hexadecimal
    • bindec - Binário para decimal
    • bindtextdomain - Define ou obtém o caminho para um domínio
    • bind_textdomain_codeset - Especifica ou obtém a codificação de caracteres na qual as mensagens do catálogo de mensagens de DOMÍNIO serão retornadas
    • boolval - Obtém o valor booleano de uma variável
    • bzclose - Fecha um ponteiro de arquivo bzip2
    • bzcompress - Comprime uma string em dados codificados com bzip2
    • bzdecompress - Descomprime dados codificados com bzip2
    • bzerrno - Retorna um número de erro da bzip2
    • bzerror - Retorna o número e string de erro do bzip2 em um array
    • bzerrstr - Retorna a string de erro do bzip2
    • bzflush - Sem efeitos
    • bzopen - Abre um arquivo comprimido com bzip2
    • bzread - Leitura binária segura de arquivo bzip2
    • bzwrite - Gravação binária segura em arquivo bzip2
  • c
    • CachingIterator::count - O número de elementos no iterador
    • CachingIterator::current - Retorna o elemento atual
    • CachingIterator::getCache - Recupera o conteúdo do cache
    • CachingIterator::getFlags - Obtém as opções utilizadas
    • CachingIterator::hasNext - Verifica se o iterador interno possui um próximo elemento válido
    • CachingIterator::key - Retorna a chave para o elemento atual
    • CachingIterator::next - Move o iterador para frente
    • CachingIterator::offsetExists - O propósito do offsetExists
    • CachingIterator::offsetGet - O propósito de offsetGet
    • CachingIterator::offsetSet - O propósito do offsetSet
    • CachingIterator::offsetUnset - O objetivo do offsetUnset
    • CachingIterator::rewind - Rebobina o iterador
    • CachingIterator::setFlags - O propósito da função setFlags
    • CachingIterator::valid - Verifica se o elemento atual é válido
    • CachingIterator::__construct - Constrói um novo objeto CachingIterator para o iterador
    • CachingIterator::__toString - Retorna a representação em string do elemento atual
    • CallbackFilterIterator::accept - Chama o callback com o valor atual, a chave atual e o iterador interno como argumentos
    • CallbackFilterIterator::__construct - Cria um iterador filtrado a partir de outro iterador
    • call_user_func - Call the callback given by the first parameter
    • call_user_func_array - Call a callback with an array of parameters
    • cal_days_in_month - Retorna o número de dias em um mês de um calendário e ano requisitado
    • cal_from_jd - Converte de uma Contagem de Dias Julianos para um calendário suportado
    • cal_info - Retorna informação sobre um calendário específico
    • cal_to_jd - Converte um calendário (suportado) para o calendário "Julian Day Count"
    • ceil - Arredonda frações para cima
    • chdir - Muda o diretório
    • checkdate - Valida uma data gregoriana
    • checkdnsrr - Checa os registros DNS correspondentes para o nome do host ou endereço IP informado
    • chgrp - Altera o grupo do arquivo
    • chmod - Modifica as permissões do arquivo
    • chop - Sinônimo de rtrim
    • chown - Modifica o proprietário do arquivo
    • chr - Generate a single-byte string from a number
    • chroot - Muda o diretório raiz
    • chunk_split - Divide uma string em pedaços menores
    • class_alias - Cria um apelido para uma classe
    • class_exists - Verifica se uma classe foi definida
    • class_implements - Retorna as interfaces que são implementadas pela classe ou interface fornecida
    • class_parents - Retorna as classes pai da classe fornecida
    • class_uses - Retorna os traits usados pela classe fornecida
    • clearstatcache - Limpa o cache de estado de arquivos
    • Client::getClient - Get client session
    • Client::__construct - Client constructor
    • cli_get_process_title - Returns the current process title
    • cli_set_process_title - Sets the process title
    • closedir - Fecha o manipulador do diretório
    • closelog - Close connection to system logger
    • Closure::bind - Duplica uma closure com um objeto vinculado e um escopo de classe
    • Closure::bindTo - Duplica a closure com um novo objeto vinculado e escopo de classe.
    • Closure::call - Vincula e chama a closure
    • Closure::fromCallable - Converte um callable em uma closure
    • Closure::__construct - Construtor que desabilita a instanciação
    • Collator::asort - Ordena array mantendo associação de índice
    • Collator::compare - Compara duas strings Unicode
    • Collator::create - Cria um agrupador
    • Collator::getAttribute - Obtém o valor de atributo de um agrupador
    • Collator::getErrorCode - Obtém o último código de erro do agrupador
    • Collator::getErrorMessage - Obtém o texto para o último código de erro do agrupador
    • Collator::getLocale - Obtém o nome da localidade do agrupador
    • Collator::getSortKey - Obtém a chave de ordenação de uma string
    • Collator::getStrength - Obtém a força atual de agrupamento
    • Collator::setAttribute - Define atributo do agrupador
    • Collator::setStrength - Define a força do agrupador
    • Collator::sort - Ordena um array usando o agrupador especificado
    • Collator::sortWithSortKeys - Ordena um array usando agrupador e chaves de ordenação especificados
    • Collator::__construct - Cria um agrupador (Collator)
    • Collectable::isGarbage - Determine whether an object has been marked as garbage
    • Collection::add - Add collection document
    • Collection::addOrReplaceOne - Add or replace collection document
    • Collection::count - Get document count
    • Collection::createIndex - Create collection index
    • Collection::dropIndex - Drop collection index
    • Collection::existsInDatabase - Check if collection exists in database
    • Collection::find - Search for document
    • Collection::getName - Get collection name
    • Collection::getOne - Get one document
    • Collection::getSchema - Get schema object
    • Collection::getSession - Get session object
    • Collection::modify - Modify collection documents
    • Collection::remove - Remove collection documents
    • Collection::removeOne - Remove one collection document
    • Collection::replaceOne - Replace one collection document
    • Collection::__construct - Collection constructor
    • CollectionAdd::execute - Execute the statement
    • CollectionAdd::__construct - CollectionAdd constructor
    • CollectionFind::bind - Bind value to query placeholder
    • CollectionFind::execute - Execute the statement
    • CollectionFind::fields - Set document field filter
    • CollectionFind::groupBy - Set grouping criteria
    • CollectionFind::having - Set condition for aggregate functions
    • CollectionFind::limit - Limit number of returned documents
    • CollectionFind::lockExclusive - Execute operation with EXCLUSIVE LOCK
    • CollectionFind::lockShared - Execute operation with SHARED LOCK
    • CollectionFind::offset - Skip given number of elements to be returned
    • CollectionFind::sort - Set the sorting criteria
    • CollectionFind::__construct - CollectionFind constructor
    • CollectionModify::arrayAppend - Append element to an array field
    • CollectionModify::arrayInsert - Insert element into an array field
    • CollectionModify::bind - Bind value to query placeholder
    • CollectionModify::execute - Execute modify operation
    • CollectionModify::limit - Limit number of modified documents
    • CollectionModify::patch - Patch document
    • CollectionModify::replace - Replace document field
    • CollectionModify::set - Set document attribute
    • CollectionModify::skip - Skip elements
    • CollectionModify::sort - Set the sorting criteria
    • CollectionModify::unset - Unset the value of document fields
    • CollectionModify::__construct - CollectionModify constructor
    • CollectionRemove::bind - Bind value to placeholder
    • CollectionRemove::execute - Execute remove operation
    • CollectionRemove::limit - Limit number of documents to remove
    • CollectionRemove::sort - Set the sorting criteria
    • CollectionRemove::__construct - CollectionRemove constructor
    • ColumnResult::getCharacterSetName - Get character set
    • ColumnResult::getCollationName - Get collation name
    • ColumnResult::getColumnLabel - Get column label
    • ColumnResult::getColumnName - Get column name
    • ColumnResult::getFractionalDigits - Get fractional digit length
    • ColumnResult::getLength - Get column field length
    • ColumnResult::getSchemaName - Get schema name
    • ColumnResult::getTableLabel - Get table label
    • ColumnResult::getTableName - Get table name
    • ColumnResult::getType - Get column type
    • ColumnResult::isNumberSigned - Check if signed type
    • ColumnResult::isPadded - Check if padded
    • ColumnResult::__construct - ColumnResult constructor
    • com::__construct - com class constructor
    • CommonMark\CQL::__construct - CQL Construction
    • CommonMark\CQL::__invoke - CQL Execution
    • CommonMark\Interfaces\IVisitable::accept - Visitation
    • CommonMark\Interfaces\IVisitor::enter - Visitation
    • CommonMark\Interfaces\IVisitor::leave - Visitation
    • CommonMark\Node::accept - Visitation
    • CommonMark\Node::appendChild - AST Manipulation
    • CommonMark\Node::insertAfter - AST Manipulation
    • CommonMark\Node::insertBefore - AST Manipulation
    • CommonMark\Node::prependChild - AST Manipulation
    • CommonMark\Node::replace - AST Manipulation
    • CommonMark\Node::unlink - AST Manipulation
    • CommonMark\Node\BulletList::__construct - BulletList Construction
    • CommonMark\Node\CodeBlock::__construct - CodeBlock Construction
    • CommonMark\Node\Heading::__construct - Heading Construction
    • CommonMark\Node\Image::__construct - Image Construction
    • CommonMark\Node\Link::__construct - Link Construction
    • CommonMark\Node\OrderedList::__construct - OrderedList Construction
    • CommonMark\Node\Text::__construct - Text Construction
    • CommonMark\Parse - Parsing
    • CommonMark\Parser::finish - Parsing
    • CommonMark\Parser::parse - Parsing
    • CommonMark\Parser::__construct - Parsing
    • CommonMark\Render - Rendering
    • CommonMark\Render\HTML - Rendering
    • CommonMark\Render\Latex - Rendering
    • CommonMark\Render\Man - Rendering
    • CommonMark\Render\XML - Rendering
    • compact - Cria um array contendo variáveis e seus valores
    • COMPersistHelper::GetCurFileName - Get current filename
    • COMPersistHelper::GetMaxStreamSize - Get maximum stream size
    • COMPersistHelper::InitNew - Initialize object to default state
    • COMPersistHelper::LoadFromFile - Load object from file
    • COMPersistHelper::LoadFromStream - Load object from stream
    • COMPersistHelper::SaveToFile - Save object to file
    • COMPersistHelper::SaveToStream - Save object to stream
    • COMPersistHelper::__construct - Construct a COMPersistHelper object
    • Componere\Abstract\Definition::addInterface - Add Interface
    • Componere\Abstract\Definition::addMethod - Add Method
    • Componere\Abstract\Definition::addTrait - Add Trait
    • Componere\Abstract\Definition::getReflector - Reflection
    • Componere\cast - Casting
    • Componere\cast_by_ref - Casting
    • Componere\Definition::addConstant - Add Constant
    • Componere\Definition::addProperty - Add Property
    • Componere\Definition::getClosure - Get Closure
    • Componere\Definition::getClosures - Get Closures
    • Componere\Definition::isRegistered - State Detection
    • Componere\Definition::register - Registration
    • Componere\Definition::__construct - Definition Construction
    • Componere\Method::getReflector - Reflection
    • Componere\Method::setPrivate - Accessibility Modification
    • Componere\Method::setProtected - Accessibility Modification
    • Componere\Method::setStatic - Accessibility Modification
    • Componere\Method::__construct - Method Construction
    • Componere\Patch::apply - Application
    • Componere\Patch::derive - Patch Derivation
    • Componere\Patch::getClosure - Get Closure
    • Componere\Patch::getClosures - Get Closures
    • Componere\Patch::isApplied - State Detection
    • Componere\Patch::revert - Reversal
    • Componere\Patch::__construct - Patch Construction
    • Componere\Value::hasDefault - Value Interaction
    • Componere\Value::isPrivate - Accessibility Detection
    • Componere\Value::isProtected - Accessibility Detection
    • Componere\Value::isStatic - Accessibility Detection
    • Componere\Value::setPrivate - Accessibility Modification
    • Componere\Value::setProtected - Accessibility Modification
    • Componere\Value::setStatic - Accessibility Modification
    • Componere\Value::__construct - Value Construction
    • com_create_guid - Generate a globally unique identifier (GUID)
    • com_event_sink - Connect events from a COM object to a PHP object
    • com_get_active_object - Returns a handle to an already running instance of a COM object
    • com_load_typelib - Loads a Typelib
    • com_message_pump - Process COM messages, sleeping for up to timeoutms milliseconds
    • com_print_typeinfo - Print out a PHP class definition for a dispatchable interface
    • connection_aborted - Verifica se o cliente está desconectado
    • connection_status - Retorna o campo de bits do estado da conexão
    • constant - Retorna o valor de uma constante
    • convert_cyr_string - Converte de um conjunto de caracteres cirílico para outro
    • convert_uudecode - Decodifica uma string codificada com uuencode
    • convert_uuencode - Codifica uma string com uuencode
    • copy - Copia arquivo
    • cos - Cosseno
    • cosh - Cosseno hiperbólico
    • count - Conta todos os elementos de um array ou de um objeto Countable
    • Countable::count - Conta elementos de um objeto
    • count_chars - Return information about characters used in a string
    • crc32 - Calcula polinômio crc32 de uma string
    • create_function - Cria uma função dinamicamente avaliando uma string de código
    • CrudOperationBindable::bind - Bind value to placeholder
    • CrudOperationLimitable::limit - Set result limit
    • CrudOperationSkippable::skip - Number of operations to skip
    • CrudOperationSortable::sort - Sort results
    • crypt - One-way string hashing
    • ctype_alnum - Verifica se os caracteres são alfanuméricos
    • ctype_alpha - Verifica se os caracteres são alfabéticos
    • ctype_cntrl - Verifica se os caracteres são de controle
    • ctype_digit - Verifica se os caracteres são numéricos
    • ctype_graph - Verifica se os caracteres são imprimíveis exceto espaço
    • ctype_lower - Verifica se os caracteres estão minúsculos
    • ctype_print - Verifica se os caracteres são imprimíveis
    • ctype_punct - Verifica se é um caractere imprimível que não é whitespace ou alfanumério
    • ctype_space - Verifica se os caracteres são whitespace
    • ctype_upper - Verifica se os caracteres são maiúsculos
    • ctype_xdigit - Verifica se os caracteres representam um dígito hexadecimal
    • cubrid_affected_rows - Return the number of rows affected by the last SQL statement
    • cubrid_bind - Bind variables to a prepared statement as parameters
    • cubrid_client_encoding - Return the current CUBRID connection charset
    • cubrid_close - Close CUBRID connection
    • cubrid_close_prepare - Close the request handle
    • cubrid_close_request - Close the request handle
    • cubrid_column_names - Get the column names in result
    • cubrid_column_types - Get column types in result
    • cubrid_col_get - Get contents of collection type column using OID
    • cubrid_col_size - Get the number of elements in collection type column using OID
    • cubrid_commit - Commit a transaction
    • cubrid_connect - Open a connection to a CUBRID Server
    • cubrid_connect_with_url - Establish the environment for connecting to CUBRID server
    • cubrid_current_oid - Get OID of the current cursor location
    • cubrid_data_seek - Move the internal row pointer of the CUBRID result
    • cubrid_db_name - Get db name from results of cubrid_list_dbs
    • cubrid_disconnect - Close a database connection
    • cubrid_drop - Delete an instance using OID
    • cubrid_errno - Return the numerical value of the error message from previous CUBRID operation
    • cubrid_error - Get the error message
    • cubrid_error_code - Get error code for the most recent function call
    • cubrid_error_code_facility - Get the facility code of error
    • cubrid_error_msg - Get last error message for the most recent function call
    • cubrid_execute - Execute a prepared SQL statement
    • cubrid_fetch - Fetch the next row from a result set
    • cubrid_fetch_array - Fetch a result row as an associative array, a numeric array, or both
    • cubrid_fetch_assoc - Return the associative array that corresponds to the fetched row
    • cubrid_fetch_field - Get column information from a result and return as an object
    • cubrid_fetch_lengths - Return an array with the lengths of the values of each field from the current row
    • cubrid_fetch_object - Fetch the next row and return it as an object
    • cubrid_fetch_row - Return a numerical array with the values of the current row
    • cubrid_field_flags - Return a string with the flags of the given field offset
    • cubrid_field_len - Get the maximum length of the specified field
    • cubrid_field_name - Return the name of the specified field index
    • cubrid_field_seek - Move the result set cursor to the specified field offset
    • cubrid_field_table - Return the name of the table of the specified field
    • cubrid_field_type - Return the type of the column corresponding to the given field offset
    • cubrid_free_result - Free the memory occupied by the result data
    • cubrid_get - Get a column using OID
    • cubrid_get_autocommit - Get auto-commit mode of the connection
    • cubrid_get_charset - Return the current CUBRID connection charset
    • cubrid_get_class_name - Get the class name using OID
    • cubrid_get_client_info - Return the client library version
    • cubrid_get_db_parameter - Returns the CUBRID database parameters
    • cubrid_get_query_timeout - Get the query timeout value of the request
    • cubrid_get_server_info - Return the CUBRID server version
    • cubrid_insert_id - Return the ID generated for the last updated AUTO_INCREMENT column
    • cubrid_is_instance - Check whether the instance pointed by OID exists
    • cubrid_list_dbs - Return an array with the list of all existing CUBRID databases
    • cubrid_load_from_glo - Read data from a GLO instance and save it in a file
    • cubrid_lob2_bind - Bind a lob object or a string as a lob object to a prepared statement as parameters
    • cubrid_lob2_close - Close LOB object
    • cubrid_lob2_export - Export the lob object to a file
    • cubrid_lob2_import - Import BLOB/CLOB data from a file
    • cubrid_lob2_new - Create a lob object
    • cubrid_lob2_read - Read from BLOB/CLOB data
    • cubrid_lob2_seek - Move the cursor of a lob object
    • cubrid_lob2_seek64 - Move the cursor of a lob object
    • cubrid_lob2_size - Get a lob object's size
    • cubrid_lob2_size64 - Get a lob object's size
    • cubrid_lob2_tell - Tell the cursor position of the LOB object
    • cubrid_lob2_tell64 - Tell the cursor position of the LOB object
    • cubrid_lob2_write - Write to a lob object
    • cubrid_lob_close - Close BLOB/CLOB data
    • cubrid_lob_export - Export BLOB/CLOB data to file
    • cubrid_lob_get - Get BLOB/CLOB data
    • cubrid_lob_send - Read BLOB/CLOB data and send straight to browser
    • cubrid_lob_size - Get BLOB/CLOB data size
    • cubrid_lock_read - Set a read lock on the given OID
    • cubrid_lock_write - Set a write lock on the given OID
    • cubrid_move_cursor - Move the cursor in the result
    • cubrid_new_glo - Create a glo instance
    • cubrid_next_result - Get result of next query when executing multiple SQL statements
    • cubrid_num_cols - Return the number of columns in the result set
    • cubrid_num_fields - Return the number of columns in the result set
    • cubrid_num_rows - Get the number of rows in the result set
    • cubrid_pconnect - Open a persistent connection to a CUBRID server
    • cubrid_pconnect_with_url - Open a persistent connection to CUBRID server
    • cubrid_ping - Ping a server connection or reconnect if there is no connection
    • cubrid_prepare - Prepare a SQL statement for execution
    • cubrid_put - Update a column using OID
    • cubrid_query - Send a CUBRID query
    • cubrid_real_escape_string - Escape special characters in a string for use in an SQL statement
    • cubrid_result - Return the value of a specific field in a specific row
    • cubrid_rollback - Roll back a transaction
    • cubrid_save_to_glo - Save requested file in a GLO instance
    • cubrid_schema - Get the requested schema information
    • cubrid_send_glo - Read data from glo and send it to std output
    • cubrid_seq_drop - Delete an element from sequence type column using OID
    • cubrid_seq_insert - Insert an element to a sequence type column using OID
    • cubrid_seq_put - Update the element value of sequence type column using OID
    • cubrid_set_add - Insert a single element to set type column using OID
    • cubrid_set_autocommit - Set autocommit mode of the connection
    • cubrid_set_db_parameter - Sets the CUBRID database parameters
    • cubrid_set_drop - Delete an element from set type column using OID
    • cubrid_set_query_timeout - Set the timeout time of query execution
    • cubrid_unbuffered_query - Perform a query without fetching the results into memory
    • cubrid_version - Get the CUBRID PHP module's version
    • CURLFile::getFilename - Obtém o nome do arquivo
    • CURLFile::getMimeType - Obtém o tipo mídia
    • CURLFile::getPostFilename - Obtém o nome do arquivo para requisição POST
    • CURLFile::setMimeType - Define o tipo de mídia
    • CURLFile::setPostFilename - Define o nome do arquivo para a requisição POST
    • CURLFile::__construct - Criar um objeto CURLFile
    • CURLStringFile::__construct - Crie um objeto CURLStringFile
    • curl_close - Fecha uma sessão cURL
    • curl_copy_handle - Copia um controlador cURL com todas as suas opções
    • curl_errno - Retorna o número do último erro
    • curl_error - Retorna uma string contendo o último erro da sessão atual
    • curl_escape - Codifica uma string para o formato URL
    • curl_exec - Executa uma sessão cURL
    • curl_getinfo - Obtém informação sobre uma transferência específica
    • curl_init - Inicializar uma sessão cURL
    • curl_multi_add_handle - Adiciona um manipulador cURL comum a um manipulador cURL múltiplo
    • curl_multi_close - Fechar um conjunto de alças cURL
    • curl_multi_errno - Retorna o último número de erro de curl_multi
    • curl_multi_exec - Executa as subconexões do manipulador cURL atual
    • curl_multi_getcontent - Retorna o conteúdo de um manipulador cURL se CURLOPT_RETURNTRANSFER estiver definido
    • curl_multi_info_read - Obtém informação sobre as transferências atuais
    • curl_multi_init - Retorna um multi-manipulador cURL
    • curl_multi_remove_handle - Remove um manipulador de um conjunto de manipuladores cURL
    • curl_multi_select - Aguarda por atividade em qualquer multi-conexão cURL
    • curl_multi_setopt - Define múltiplas opções para cURL
    • curl_multi_strerror - Retorna uma string que descreve o código de erro
    • curl_pause - Pausa ou continua uma conexão
    • curl_reset - Reseta todas as opções de um controlador de sessão libcurl
    • curl_setopt - Define uma opção para uma transferência cURL
    • curl_setopt_array - Define múltiplas opções para uma transferência cURL
    • curl_share_close - Fecha um controlador de compartilhamento de cURL
    • curl_share_errno - Retorna o último número de erro do curl compartilhado
    • curl_share_init - Inicializa um controlador de compartilhamento de cURL
    • curl_share_setopt - Configura uma opção para um controlador de compartilhamento de cURL
    • curl_share_strerror - Retorna uma string descrevendo o código de erro fornecid
    • curl_strerror - Retorna uma string que descreve o código de erro informado
    • curl_unescape - Decodifica a parte codificada da URL fornecida
    • curl_upkeep - Executa qualquer verificação de manutenção de conexão
    • curl_version - Obtém informação de versão do cURL
    • current - Retorna o elemento atual em um array
  • d
    • data:// - Dados (RFC 2397)
    • DatabaseObject::existsInDatabase - Check if object exists in database
    • DatabaseObject::getName - Get object name
    • DatabaseObject::getSession - Get session name
    • date - Formatar um timestamp Unix
    • DateInterval::createFromDateString - Cria um DateInterval de porções relativas da string
    • DateInterval::format - Formata um intervalo
    • DateInterval::__construct - Cria um novo objeto DateInterval
    • DatePeriod::createFromISO8601String - Cria um novo objeto DatePeriod a partir de uma string ISO8601
    • DatePeriod::getDateInterval - Obtém o intervalo
    • DatePeriod::getEndDate - Obtém a data final
    • DatePeriod::getRecurrences - Obtém o número de recorrências
    • DatePeriod::getStartDate - Obtém a data inicial
    • DatePeriod::__construct - Cria um novo objeto DatePeriod
    • DateTime::add - Modifica um objeto DateTime, com adição de dias, meses, anos, horas, minutos e segundos.
    • DateTime::createFromFormat - Interpreta um string de data/hora de acordo com um formato especificado.
    • DateTime::createFromImmutable - Retorna uma nova instância de DateTime encapsulando o objeto DateTimeImmutable informado
    • DateTime::createFromInterface - Retorna um novo objeto DateTime encapsulando o objeto DateTimeInterface informado
    • DateTime::getLastErrors - Sinônimo de DateTimeImmutable::getLastErrors
    • DateTime::modify - Altera o timestamp
    • DateTime::setDate - Define a data
    • DateTime::setISODate - Define uma data ISO
    • DateTime::setTime - Define o horário
    • DateTime::setTimestamp - Define a data e hora baseada em um timestamp Unix
    • DateTime::setTimezone - Define o fuso horário de um objeto DateTime
    • DateTime::sub - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime
    • DateTime::__construct - Retorna um novo objeto DateTime
    • DateTime::__set_state - O manipulador __set_state
    • DateTime::__wakeup - O manipulador __wakeup
    • DateTimeImmutable::add - Retorna um novo objeto, com adição de dias, meses, anos, horas, minutos e segundos
    • DateTimeImmutable::createFromFormat - Interpreta um string de data/hora de acordo com o formato especificado
    • DateTimeImmutable::createFromInterface - Retorna um novo objeto DateTimeImmutable encapsulando o objeto DateTimeInterface informado
    • DateTimeImmutable::createFromMutable - Retorna uma nova instância DateTimeImmutable que encapsula um objeto DateTime informado
    • DateTimeImmutable::getLastErrors - Retorna os avisos e erros
    • DateTimeImmutable::modify - Cria um novo objeto com seu timestamp modificado
    • DateTimeImmutable::setDate - Define a data
    • DateTimeImmutable::setISODate - Define a data ISO
    • DateTimeImmutable::setTime - Define um horário
    • DateTimeImmutable::setTimestamp - Define a data e o horário com base em um timestamp Unix
    • DateTimeImmutable::setTimezone - Define o fuso horário
    • DateTimeImmutable::sub - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos
    • DateTimeImmutable::__construct - Retorna um novo objeto DateTimeImmutable
    • DateTimeImmutable::__set_state - O manipulador __set_state
    • DateTimeInterface::diff - Retorna a diferença entre dois objetos DateTime
    • DateTimeInterface::format - Retorna a data formatada de acordo com um formato informado
    • DateTimeInterface::getOffset - Retorna o deslocamento do fuso horário
    • DateTimeInterface::getTimestamp - Obtém o timestamp Unix
    • DateTimeInterface::getTimezone - Retorna o fuso horário correspondente a um DateTime informado
    • DateTimeZone::getLocation - Retorna informações da localização de um fuso horário
    • DateTimeZone::getName - Retorna o nome do fuso horário
    • DateTimeZone::getOffset - Retorna o deslocamento do fuso horário ao Horário de Greenwish (GMT)
    • DateTimeZone::getTransitions - Retorna todas as transições para o fuso horário
    • DateTimeZone::listAbbreviations - Retorna um array associativo contendo indicativo de horário de verãorão(dst), deslocamento e nome do fuso horário
    • DateTimeZone::listIdentifiers - Retorna um array numericamente indexado contendo todos os indenticadores de fuso horário
    • DateTimeZone::__construct - Cria um novo objeto DateTimeZone
    • date_add - Sinônimo de DateTime::add
    • date_create - Cria um novo objeto DateTime
    • date_create_from_format - Sinônimo de DateTime::createFromFormat
    • date_create_immutable - Cria um novo objeto DateTimeImmutable
    • date_create_immutable_from_format - Sinônimo de DateTimeImmutable::createFromFormat
    • date_date_set - Sinônimo de DateTime::setDate
    • date_default_timezone_get - Retorna o fuso horário padrão usado por todas as funções de data e tempo em um script
    • date_default_timezone_set - Configura o fuso horário padrão utilizado por todas as funções de data e hora em um script
    • date_diff - Sinônimo de DateTime::diff
    • date_format - Sinônimo de DateTime::format
    • date_get_last_errors - Sinônimo de DateTimeImmutable::getLastErrors
    • date_interval_create_from_date_string - Sinônimo de DateInterval::createFromDateString
    • date_interval_format - Sinônimo de DateInterval::format
    • date_isodate_set - Sinônimo de DateTime::setISODate
    • date_modify - Sinônimo de DateTime::modify
    • date_offset_get - Sinônimo de DateTime::getOffset
    • date_parse - Retorna um array associativo com informações detalhadas da data/hora informada
    • date_parse_from_format - Retorna informações sobre uma data informada de acordo com um formato
    • date_sub - Sinônimo de DateTime::sub
    • date_sunrise - Retorna a hora do nascer do sol para um dia e uma localicação informados
    • date_sunset - Retorna a hora do pôr do sol para um dia e uma localização informados.
    • date_sun_info - Retorna um array com informações sobre pôr/nascer do sol e o início/fim do dia
    • date_timestamp_get - Sinônimo de DateTime::getTimestamp
    • date_timestamp_set - Sinônimo de DateTime::setTimestamp
    • date_timezone_get - Sinônimo de DateTime::getTimezone
    • date_timezone_set - Sinônimo de DateTime::setTimezone
    • date_time_set - Sinônimo de DateTime::setTime
    • db2_autocommit - Returns or sets the AUTOCOMMIT state for a database connection
    • db2_bind_param - Binds a PHP variable to an SQL statement parameter
    • db2_client_info - Returns an object with properties that describe the DB2 database client
    • db2_close - Closes a database connection
    • db2_columns - Returns a result set listing the columns and associated metadata for a table
    • db2_column_privileges - Returns a result set listing the columns and associated privileges for a table
    • db2_commit - Commits a transaction
    • db2_connect - Returns a connection to a database
    • db2_conn_error - Returns a string containing the SQLSTATE returned by the last connection attempt
    • db2_conn_errormsg - Returns the last connection error message and SQLCODE value
    • db2_cursor_type - Returns the cursor type used by a statement resource
    • db2_escape_string - Used to escape certain characters
    • db2_exec - Executes an SQL statement directly
    • db2_execute - Executes a prepared SQL statement
    • db2_fetch_array - Returns an array, indexed by column position, representing a row in a result set
    • db2_fetch_assoc - Returns an array, indexed by column name, representing a row in a result set
    • db2_fetch_both - Returns an array, indexed by both column name and position, representing a row in a result set
    • db2_fetch_object - Returns an object with properties representing columns in the fetched row
    • db2_fetch_row - Sets the result set pointer to the next row or requested row
    • db2_field_display_size - Returns the maximum number of bytes required to display a column
    • db2_field_name - Returns the name of the column in the result set
    • db2_field_num - Returns the position of the named column in a result set
    • db2_field_precision - Returns the precision of the indicated column in a result set
    • db2_field_scale - Returns the scale of the indicated column in a result set
    • db2_field_type - Returns the data type of the indicated column in a result set
    • db2_field_width - Returns the width of the current value of the indicated column in a result set
    • db2_foreign_keys - Returns a result set listing the foreign keys for a table
    • db2_free_result - Frees resources associated with a result set
    • db2_free_stmt - Frees resources associated with the indicated statement resource
    • db2_get_option - Retrieves an option value for a statement resource or a connection resource
    • db2_last_insert_id - Returns the auto generated ID of the last insert query that successfully executed on this connection
    • db2_lob_read - Gets a user defined size of LOB files with each invocation
    • db2_next_result - Requests the next result set from a stored procedure
    • db2_num_fields - Returns the number of fields contained in a result set
    • db2_num_rows - Returns the number of rows affected by an SQL statement
    • db2_pclose - Closes a persistent database connection
    • db2_pconnect - Returns a persistent connection to a database
    • db2_prepare - Prepares an SQL statement to be executed
    • db2_primary_keys - Returns a result set listing primary keys for a table
    • db2_procedures - Returns a result set listing the stored procedures registered in a database
    • db2_procedure_columns - Returns a result set listing stored procedure parameters
    • db2_result - Returns a single column from a row in the result set
    • db2_rollback - Rolls back a transaction
    • db2_server_info - Returns an object with properties that describe the DB2 database server
    • db2_set_option - Set options for connection or statement resources
    • db2_special_columns - Returns a result set listing the unique row identifier columns for a table
    • db2_statistics - Returns a result set listing the index and statistics for a table
    • db2_stmt_error - Returns a string containing the SQLSTATE returned by an SQL statement
    • db2_stmt_errormsg - Returns a string containing the last SQL statement error message
    • db2_tables - Returns a result set listing the tables and associated metadata in a database
    • db2_table_privileges - Returns a result set listing the tables and associated privileges in a database
    • dbase_add_record - Adiciona um registro a um banco de dados
    • dbase_close - Fecha um banco de dados
    • dbase_create - Cria um banco de dados
    • dbase_delete_record - Exclui um registro do banco de dados
    • dbase_get_header_info - Obtém as informações do cabeçalho do banco de dados
    • dbase_get_record - Obtém um registro do banco de dados como um array indexado
    • dbase_get_record_with_names - Obtém um registro do banco de dados como um array associativo.
    • dbase_numfields - Obtém o número de campos em um banco de dados
    • dbase_numrecords - Obtém o número de registros em um banco de dados
    • dbase_open - Abre um banco de dados
    • dbase_pack - Comprime um banco de dados
    • dbase_replace_record - Substitui um registro em um banco de dados
    • dba_close - Close a DBA database
    • dba_delete - Delete DBA entry specified by key
    • dba_exists - Check whether key exists
    • dba_fetch - Fetch data specified by key
    • dba_firstkey - Fetch first key
    • dba_handlers - List all the handlers available
    • dba_insert - Insert entry
    • dba_key_split - Splits a key in string representation into array representation
    • dba_list - List all open database files
    • dba_nextkey - Fetch next key
    • dba_open - Open database
    • dba_optimize - Optimize database
    • dba_popen - Open database persistently
    • dba_replace - Replace or insert entry
    • dba_sync - Synchronize database
    • dcgettext - Substitui o domínio por um lookup
    • dcngettext - Plural version of dcgettext
    • debug_backtrace - Gera uma rastreamento retroativo
    • debug_print_backtrace - Mostra um rastreamento retroativo
    • debug_zval_dump - Exibe na saída uma representação em string de uma estrutura zval interna
    • decbin - Decimal para binário
    • dechex - Decimal para hexadecimal
    • decoct - Decimal para octal
    • define - Define uma constante com nome
    • defined - Verifica se existe uma constante com o nome informado
    • deflate_add - Comprime dados incrementalmente
    • deflate_init - Inicializa um contexto de compressão incremental
    • deg2rad - Converte o número em graus para o equivalente em radianos
    • delete - Consulte unlink ou unset
    • dgettext - Override the current domain
    • die - Equivalente a exit
    • dio_close - Fecha o descritor de arquivo fornecido por fd
    • dio_fcntl - Realiza uma chamada à função fcntl da biblioteca C em fd
    • dio_open - Abre um arquivo (criando-o, se necessário) em um nível mais baixo do que as funções de entrada/saída da biblioteca C permitem
    • dio_read - Lê bytes de um descritor de arquivo
    • dio_seek - Move-se para a posição pos no descritor de arquivo (fd) a partir de whence
    • dio_stat - Obtém informações estatísticas sobre o descritor de arquivo fd
    • dio_tcsetattr - Define os atributos do terminal e a taxa de transmissão para uma porta serial
    • dio_truncate - Trunca o descritor de arquivo fd para o deslocamento em bytes
    • dio_write - Escreve dados em fd com opção de truncamento no comprimento
    • dir - Retorna uma instância da classe Directory
    • Directory::close - Fecha o manipulador de diretório
    • Directory::read - Lê entrada de um manipulador de diretório
    • Directory::rewind - Retrocede um manipulador de diretório
    • DirectoryIterator::current - Retorna o item atual do DirectoryIterator
    • DirectoryIterator::getBasename - Retorna o nome do item corrente do DirectoryIterator
    • DirectoryIterator::getExtension - Obtém a extensão do arquivo
    • DirectoryIterator::getFilename - Retorna o nome do arquivo do item atual do DirectoryIterator
    • DirectoryIterator::isDot - Determina se o item atual do DirectoryIterator é '.' ou '..'
    • DirectoryIterator::key - Retorna a chave para o item atual do DirectoryIterator
    • DirectoryIterator::next - Mover para o próximo item do DirectoryIterator
    • DirectoryIterator::rewind - Rebobina o DirectoryIterator de volta ao início
    • DirectoryIterator::seek - Procura uma determinada posição no item do DirectoryIterator
    • DirectoryIterator::valid - Verifica se a posição atual do DirectoryIterator é um arquivo válido
    • DirectoryIterator::__construct - Constrói um novo iterador de diretório a partir de um caminho
    • DirectoryIterator::__toString - Retorna o nome do arquivo como texto
    • dirname - Retorna o caminho para o diretório pai
    • diskfreespace - Sinônimo de disk_free_space
    • disk_free_space - Retorna o espaço disponível no sistema de arquivos ou partição de disco
    • disk_total_space - Retorna o tamanho total de um sistema de arquivos ou partição de disco
    • dl - Carrega uma extensão do PHP durante a execução
    • dngettext - Plural version of dgettext
    • dns_check_record - Sinônimo de checkdnsrr
    • dns_get_mx - Sinônimo de getmxrr
    • dns_get_record - Fetch DNS Resource Records associated with a hostname
    • DocResult::fetchAll - Get all rows
    • DocResult::fetchOne - Get one row
    • DocResult::getWarnings - Get warnings from last operation
    • DocResult::getWarningsCount - Get warning count from last operation
    • DocResult::__construct - DocResult constructor
    • DOMAttr::isId - Verifica se o atributo é um ID definido
    • DOMAttr::__construct - Cria um novo objeto DOMAttr
    • DOMCdataSection::__construct - Constrói um novo objeto DOMCdataSection
    • DOMCharacterData::after - Adiciona nós após os dados do caractere
    • DOMCharacterData::appendData - Acrescenta a string ao final dos dados de caractere do nó
    • DOMCharacterData::before - Adiciona nós antes do nó
    • DOMCharacterData::deleteData - Remove uma faixa de caracteres do nó
    • DOMCharacterData::insertData - Insere uma string na posição especificada da unidade de 16 bits
    • DOMCharacterData::remove - Remove os dados do caractere
    • DOMCharacterData::replaceData - Substitui uma substring dentro do nó DOMCharacterData
    • DOMCharacterData::replaceWith - Substitui os dados de caracteres por novos nós
    • DOMCharacterData::substringData - Extrai uma faixa de dados do nó
    • DOMChildNode::after - Adiciona nós após o nó
    • DOMChildNode::before - Adiciona nós antes do nó
    • DOMChildNode::remove - Remove o nó
    • DOMChildNode::replaceWith - Substitui o nó por novos nós
    • DOMComment::__construct - Cria um novo objeto DOMComment
    • DOMDocument::adoptNode - Transfere um nó de outro documento
    • DOMDocument::append - Adiciona nós após o último nó filho
    • DOMDocument::createAttribute - Cria um novo attribute
    • DOMDocument::createAttributeNS - Cria um novo nó de atributo com um namespace associado
    • DOMDocument::createCDATASection - Cria um novo nó de CDATA
    • DOMDocument::createComment - Cria novo nó de comentárioe
    • DOMDocument::createDocumentFragment - Cria novo fragmento de documento
    • DOMDocument::createElement - Cria novo nó de elemento
    • DOMDocument::createElementNS - Cria novo nó de elemento com um namespace associado
    • DOMDocument::createEntityReference - Cria novo nó de referência de entidade
    • DOMDocument::createProcessingInstruction - Cria novo nó PI (Processing Instruction)
    • DOMDocument::createTextNode - Cria novo nó de texto
    • DOMDocument::getElementById - Procura por um elemento com um determinado ID
    • DOMDocument::getElementsByTagName - Procura por todos os elementos com uma determinada tag name local
    • DOMDocument::getElementsByTagNameNS - Procura por todos os elementos com uma determinada tag name em um namespace específico
    • DOMDocument::importNode - Importa um nó para o documento atual
    • DOMDocument::load - Carrega XML de um arquivo
    • DOMDocument::loadHTML - Carrega HTML a partir de uma string
    • DOMDocument::loadHTMLFile - Carrega HTML de um arquivo
    • DOMDocument::loadXML - Carrega XML a partir de uma string
    • DOMDocument::normalizeDocument - Normaliza o documento
    • DOMDocument::prepend - Adiciona nós antes do primeiro nó filho
    • DOMDocument::registerNodeClass - Registra uma classe estendida usada para criar um tipo de nó base
    • DOMDocument::relaxNGValidate - Realiza a validação relaxNG no documento
    • DOMDocument::relaxNGValidateSource - Realiza a validação relaxNG no documento
    • DOMDocument::replaceChildren - Substitui filhos no documento
    • DOMDocument::save - Grava a árvore XML interna de volta em um arquivo
    • DOMDocument::saveHTML - Despeja o documento interno em uma string usando formatação HTML
    • DOMDocument::saveHTMLFile - Despeja o documento interno em um arquivo usando formatação HTML
    • DOMDocument::saveXML - Despeja a árvore XML interna de volta em uma string
    • DOMDocument::schemaValidate - Valida um documento com base em um esquema. Apenas XML Schema 1.0 é suportado.
    • DOMDocument::schemaValidateSource - Valida um documento com base em um esquema
    • DOMDocument::validate - Valida o documento com base em seu DTD
    • DOMDocument::xinclude - Substitui XIncludes em um objeto DOMDocument
    • DOMDocument::__construct - Cria um novo objeto DOMDocument
    • DOMDocumentFragment::append - Acrescenta nós após o último nó filho
    • DOMDocumentFragment::appendXML - Anexa dados XML brutos
    • DOMDocumentFragment::prepend - Insere nós antes do primeiro nó filho
    • DOMDocumentFragment::replaceChildren - Substitui filhos no fragmento
    • DOMDocumentFragment::__construct - Constrói um objeto DOMDocumentFragment
    • DOMElement::after - Adiciona nós após o elemento
    • DOMElement::append - Adiciona nós após o último nó filho
    • DOMElement::before - Adiciona nós antes do elemento
    • DOMElement::getAttribute - Retorna o valor do atributo
    • DOMElement::getAttributeNames - Obtém nomes de atributos
    • DOMElement::getAttributeNode - Retorna o nó do atributo
    • DOMElement::getAttributeNodeNS - Retorna o nó do atributo
    • DOMElement::getAttributeNS - Retorna o valor do atributo
    • DOMElement::getElementsByTagName - Obtém elementos pelo nome da tag
    • DOMElement::getElementsByTagNameNS - Obtém elementos por namespaceURI e localName
    • DOMElement::hasAttribute - Verifica se o atributo existe
    • DOMElement::hasAttributeNS - Verifica se o atributo existe
    • DOMElement::insertAdjacentElement - Insere um elemento adjacente
    • DOMElement::insertAdjacentText - Insere texto adjacente
    • DOMElement::prepend - Adiciona nós antes do primeiro nó filho
    • DOMElement::remove - Remove o elemento
    • DOMElement::removeAttribute - Remove atributo
    • DOMElement::removeAttributeNode - Remove atributo
    • DOMElement::removeAttributeNS - Remove atributo
    • DOMElement::replaceChildren - Substitui filhos no elemento
    • DOMElement::replaceWith - Substitui o elemento por novos nodes
    • DOMElement::setAttribute - Adiciona ou modifica um atributo existente
    • DOMElement::setAttributeNode - Adiciona um novo nó de atributo ao elemento
    • DOMElement::setAttributeNodeNS - Adiciona um novo nó de atributo ao elemento
    • DOMElement::setAttributeNS - Adiciona um novo atributo
    • DOMElement::setIdAttribute - Declara que o atributo especificado pelo nome é do tipo ID
    • DOMElement::setIdAttributeNode - Declara que o atributo especificado pelo nó é do tipo ID
    • DOMElement::setIdAttributeNS - Declara que o atributo especificado pelo nome local e pelo URI do namespace é do tipo ID
    • DOMElement::toggleAttribute - Alterna atributo
    • DOMElement::__construct - Cria um novo objeto DOMElement
    • DOMEntityReference::__construct - Cria um novo objeto DOMEntityReference
    • DOMImplementation::createDocument - Cria um objeto DOMDocument do tipo especificado com seu elemento de documento
    • DOMImplementation::createDocumentType - Cria um objeto DOMDocumentType vazio
    • DOMImplementation::hasFeature - Testa se a implementação DOM implementa um recurso específico
    • DOMImplementation::__construct - Cria um novo objeto DOMImplementation
    • DOMNamedNodeMap::count - Obtém o número de nós no mapa
    • DOMNamedNodeMap::getIterator - Recupera um iterador externo
    • DOMNamedNodeMap::getNamedItem - Recupera um nó especificado pelo nome
    • DOMNamedNodeMap::getNamedItemNS - Recupera um nó especificado pelo nome local e URI do namespace
    • DOMNamedNodeMap::item - Recupera um nó especificado pelo índice
    • DOMNode::appendChild - Adiciona um novo filho ao final dos filhos
    • DOMNode::C14N - Canonicaliza nós para uma string
    • DOMNode::C14NFile - Canonicaliza nós para um arquivo
    • DOMNode::cloneNode - Clona um nó
    • DOMNode::contains - Verifica se o nó contém outro nó
    • DOMNode::getLineNo - Obtém o número da linha para um nó
    • DOMNode::getNodePath - Obtém um XPath para um nó
    • DOMNode::getRootNode - Obtém o nó raiz
    • DOMNode::hasAttributes - Verifica se o nó possui atributos
    • DOMNode::hasChildNodes - Verifica se o nó possui filhos
    • DOMNode::insertBefore - Adiciona um novo filho antes de um nó de referência
    • DOMNode::isDefaultNamespace - Verifica se o namespaceURI especificado é o namespace padrão ou não
    • DOMNode::isEqualNode - Verifica se ambos os nós são iguais
    • DOMNode::isSameNode - Indica se dois nós são o mesmo nó
    • DOMNode::isSupported - Verifica se o recurso é suportado para a versão especificada
    • DOMNode::lookupNamespaceURI - Obtém o URI do namespace do nó com base no prefixo
    • DOMNode::lookupPrefix - Obtém o prefixo do namespace do nó com base no URI do namespace
    • DOMNode::normalize - Normaliza o nó
    • DOMNode::removeChild - Remove um filho da lista de filhos
    • DOMNode::replaceChild - Substitui um filho
    • DOMNodeList::count - Obtém o número de nós na lista
    • DOMNodeList::getIterator - Retorna um iterador externo
    • DOMNodeList::item - Recupera um nó especificado pelo índice
    • DOMParentNode::append - Acrescenta nós após o último nó filho
    • DOMParentNode::prepend - Insere nós antes do primeiro nó filho
    • DOMParentNode::replaceChildren - Substitui filhos no nó
    • DOMProcessingInstruction::__construct - Cria um novo objeto DOMProcessingInstruction
    • DOMText::isElementContentWhitespace - Retorna se este nó de texto contém espaços em branco no conteúdo do elemento
    • DOMText::isWhitespaceInElementContent - Indica se este nó de texto contém espaços em branco
    • DOMText::splitText - Quebra este nó em dois nós no deslocamento especificado
    • DOMText::__construct - Cria um novo objeto DOMText
    • DOMXPath::evaluate - Avalia a expressão XPath fornecida e retorna um resultado tipado se possível
    • DOMXPath::query - Avalia a expressão XPath fornecida
    • DOMXPath::registerNamespace - Registra o namespace com o objeto DOMXPath
    • DOMXPath::registerPhpFunctions - Registra funções PHP como funções XPath
    • DOMXPath::__construct - Cria um novo objeto DOMXPath
    • dom_import_simplexml - Obtém um objeto DOMElement a partir de um objeto SimpleXMLElement
    • dotnet::__construct - dotnet class constructor
    • doubleval - Sinônimo de floatval
    • DSN PDO_SQLITE - Conectando a bancos de dados SQLite
    • Ds\Collection::clear - Remove todos os valores
    • Ds\Collection::copy - Retorna uma cópia rasa da coleção
    • Ds\Collection::isEmpty - Retorna se a coleção está vazia
    • Ds\Collection::toArray - Converte a coleção para um array
    • Ds\Deque::allocate - Alloca memória suficiente para uma capacidade necessária
    • Ds\Deque::apply - Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor
    • Ds\Deque::capacity - Retorna a capacidade atual
    • Ds\Deque::clear - Remove todos os valores do deque
    • Ds\Deque::contains - Determina se a deque contém os valores fornecidos
    • Ds\Deque::copy - Retorna uma cópia rasa da deque
    • Ds\Deque::count - Retorna o número de valores na coleção
    • Ds\Deque::filter - Cria um novo deque usando um callable para determinar quais valores incluir
    • Ds\Deque::find - Tenta encontrar o índice de um valor
    • Ds\Deque::first - Retorna o primeiro valor na deque
    • Ds\Deque::get - Retorna o valor em um índice específico
    • Ds\Deque::insert - Insere valores em um índice específico
    • Ds\Deque::isEmpty - Retorna se o deque está vazio
    • Ds\Deque::join - Une todos os valores como uma string
    • Ds\Deque::jsonSerialize - Retorna uma representação que pode ser convertida para JSON
    • Ds\Deque::last - Retorna o último valor
    • Ds\Deque::map - Retorna o resultado de aplicar uma função de retorno de chamada a cada valor
    • Ds\Deque::merge - Retorna o resultado de adicionar todos os valores dados à deque
    • Ds\Deque::pop - Remove e retorna o último valor
    • Ds\Deque::push - Adiciona valores ao final do deque
    • Ds\Deque::reduce - Reduz o deque a um único valor usando uma função de retorno de chamada
    • Ds\Deque::remove - Remove e retorna um valor pelo índice
    • Ds\Deque::reverse - Inverte a deque no local
    • Ds\Deque::reversed - Retorna uma cópia invertida
    • Ds\Deque::rotate - Rotaciona a deque por um número dado de rotações
    • Ds\Deque::set - Atualiza um valor em um índice específico
    • Ds\Deque::shift - Remove e retorna o primeiro valor
    • Ds\Deque::slice - Retorna uma sub-deque de um determinado intervalo
    • Ds\Deque::sort - Ordena a deque no local
    • Ds\Deque::sorted - Retorna uma cópia ordenada
    • Ds\Deque::sum - Retorna a soma de todos os valores na deque
    • Ds\Deque::toArray - Converte a deque para um array.
    • Ds\Deque::unshift - Adiciona valores no início da deque
    • Ds\Deque::__construct - Cria uma nova instância
    • Ds\Hashable::equals - Determina se um objeto é igual à instância atual
    • Ds\Hashable::hash - Retorna um valor escalar a ser usado como valor de hash
    • Ds\Map::allocate - Aloca memória suficiente para uma capacidade requerida
    • Ds\Map::apply - Atualiza todos os valores aplicando uma função de retorno de chamada a cada valor
    • Ds\Map::capacity - Retorna a capacidade atual
    • Ds\Map::clear - Remove todos os valores
    • Ds\Map::copy - Retorna uma cópia rasa do mapa
    • Ds\Map::count - Retorna o número de valores no mapa
    • Ds\Map::diff - Cria um novo mapa usando chaves que não estão em outro mapa
    • Ds\Map::filter - Cria um novo mapa usando um callable para determinar quais pares incluir
    • Ds\Map::first - Retorna o primeiro par no mapa
    • Ds\Map::get - Retorna o valor para uma chave dada
    • Ds\Map::hasKey - Determina se o mapa contém uma chave dada
    • Ds\Map::hasValue - Determina se o mapa contém um valor dado
    • Ds\Map::intersect - Cria um novo mapa intersectando chaves com outro mapa
    • Ds\Map::isEmpty - Retorna se o mapa está vazio
    • Ds\Map::jsonSerialize - Retorna uma representação que pode ser convertida para JSON
    • Ds\Map::keys - Retorna um conjunto das chaves do mapa
    • Ds\Map::ksort - Ordena o mapa no local pelo chave
    • Ds\Map::ksorted - Retorna uma cópia ordenada por chave
    • Ds\Map::last - Retorna o último par do mapa
    • Ds\Map::map - Retorna o resultado da aplicação de um callback a cada valor
    • Ds\Map::merge - Retorna o resultado da adição de todas as associações fornecidas
    • Ds\Map::pairs - Retorna uma sequência contendo todos os pares do mapa
    • Ds\Map::put - Associa uma chave a um valor
    • Ds\Map::putAll - Associa todos os pares chave-valor de um objeto traversable ou array
    • Ds\Map::reduce - Reduz o mapa a um único valor usando uma função callback
    • Ds\Map::remove - Remove e retorna um valor pela chave
    • Ds\Map::reverse - Inverte o mapa no local
    • Ds\Map::reversed - Retorna uma cópia invertida
    • Ds\Map::skip - Retorna o par em uma posição específica
    • Ds\Map::slice - Retorna um subconjunto do mapa definido por um índice inicial e comprimento
    • Ds\Map::sort - Ordena o mapa no local pelo valor
    • Ds\Map::sorted - Retorna uma cópia, ordenada por valor
    • Ds\Map::sum - Retorna a soma de todos os valores no mapa
    • Ds\Map::toArray - Converte o mapa em um array
    • Ds\Map::union - Cria um novo mapa usando valores da instância atual e de outro mapa
    • Ds\Map::values - Retorna uma sequência dos valores do mapa
    • Ds\Map::xor - Cria um novo mapa usando chaves apenas do mapa atual ou de outro mapa, mas não de ambos
    • Ds\Map::__construct - Cria uma nova instância
    • Ds\Pair::clear - Remove todos os valores
    • Ds\Pair::copy - Retorna uma cópia rasa do par
    • Ds\Pair::isEmpty - Retorna se o par está vazio
    • Ds\Pair::jsonSerialize - Retorna uma representação que pode ser convertida para JSON
    • Ds\Pair::toArray - Converte o par para um array
    • Ds\Pair::__construct - Cria uma nova instância
    • Ds\PriorityQueue::allocate - Aloca memória suficiente para uma capacidade requerida
    • Ds\PriorityQueue::capacity - Retorna a capacidade atual
    • Ds\PriorityQueue::clear - Remove todos os valores
    • Ds\PriorityQueue::copy - Retorna uma cópia rasa da fila
    • Ds\PriorityQueue::count - Retorna o número de valores na fila
    • Ds\PriorityQueue::isEmpty - Retorna se a fila está vazia
    • Ds\PriorityQueue::jsonSerialize - Retorna uma representação que pode ser convertida para JSON
    • Ds\PriorityQueue::peek - Retorna o valor na frente da fila
    • Ds\PriorityQueue::pop - Remove e retorna o valor com a maior prioridade
    • Ds\PriorityQueue::push - Adiciona valores na fila
    • Ds\PriorityQueue::toArray - Converte a fila para um array
    • Ds\PriorityQueue::__construct - Cria uma nova instância
    • Ds\Queue::allocate - Aloca memória suficiente para uma capacidade requerida
    • Ds\Queue::capacity - Retorna a capacidade atual
    • Ds\Queue::clear - Remove todos os valores
    • Ds\Queue::copy - Retorna uma cópia rasa da fila
    • Ds\Queue::count - Retorna o número de valores na fila
    • Ds\Queue::isEmpty - Retorna se a fila está vazia
    • Ds\Queue::jsonSerialize - Retorna uma representação que pode ser convertida para JSON
    • Ds\Queue::peek - Retorna o valor no início da fila
    • Ds\Queue::pop - Remove e retorna o valor no início da fila
    • Ds\Queue::push - Insere valores na fila
    • Ds\Queue::toArray - Converte a fila para um array
    • Ds\Queue::__construct - Cria uma nova instância
    • Ds\Sequence::allocate - Aloca memória suficiente para uma capacidade requerida
    • Ds\Sequence::apply - Atualiza todos os valores aplicando uma função callback a cada valor
    • Ds\Sequence::capacity - Retorna a capacidade atual
    • Ds\Sequence::contains - Determina se a sequência contém determinados valores
    • Ds\Sequence::filter - Cria uma nova sequência usando um callable para determinar quais valores incluir.
    • Ds\Sequence::find - Tenta encontrar o índice de um valor
    • Ds\Sequence::first - Retorna o primeiro valor na sequência
    • Ds\Sequence::get - Retorna o valor em um índice específico
    • Ds\Sequence::insert - Insere valores em um índice específico
    • Ds\Sequence::join - Une todos os valores como uma string
    • Ds\Sequence::last - Retorna o último valor
    • Ds\Sequence::map - Retorna o resultado da aplicação de um callback a cada valor
    • Ds\Sequence::merge - Retorna o resultado de adicionar todos os valores fornecidos à sequência
    • Ds\Sequence::pop - Remove e retorna o último valor
    • Ds\Sequence::push - Adiciona valores ao final da sequência
    • Ds\Sequence::reduce - Reduz a sequência a um único valor usando uma função de callback
    • Ds\Sequence::remove - Remove e retorna um valor pelo índice
    • Ds\Sequence::reverse - Inverte a sequência no local
    • Ds\Sequence::reversed - Retorna uma cópia reversa
    • Ds\Sequence::rotate - Rotaciona a sequência pelo número dado de rotações
    • Ds\Sequence::set - Atualiza um valor em um índice específico
    • Ds\Sequence::shift - Remove e retorna o primeiro valor
    • Ds\Sequence::slice - Retorna uma sub-sequência de um intervalo dado
    • Ds\Sequence::sort - Ordena a sequência no local
    • Ds\Sequence::sorted - Retorna uma cópia ordenada
    • Ds\Sequence::sum - Retorna a soma de todos os valores na sequência
    • Ds\Sequence::unshift - Adiciona valores no início da sequência
    • Ds\Set::add - Adiciona valores ao conjunto
    • Ds\Set::allocate - Aloca memória suficiente para uma capacidade necessária
    • Ds\Set::capacity - Retorna a capacidade atual
    • Ds\Set::clear - Remove todos os valores
    • Ds\Set::contains - Determina se o conjunto contém todos os valores
    • Ds\Set::copy - Retorna uma cópia rasa do conjunto
    • Ds\Set::count - Retorna o número de valores no conjunto
    • Ds\Set::diff - Cria um novo conjunto usando valores que não estão em outro conjunto
    • Ds\Set::filter - Cria um novo conjunto usando um callable para determinar quais valores incluir
    • Ds\Set::first - Retorna o primeiro valor no conjunto
    • Ds\Set::get - Retorna o valor em um índice específico
    • Ds\Set::intersect - Cria um novo conjunto interseccionando valores com outro conjunto
    • Ds\Set::isEmpty - Retorna se o conjunto está vazio
    • Ds\Set::join - Junta todos os valores em uma string
    • Ds\Set::jsonSerialize - Retorna uma representação que pode ser convertida para JSON
    • Ds\Set::last - Retorna o último valor no conjunto
    • Ds\Set::merge - Retorna o resultado da adição de todos os valores dados ao conjunto
    • Ds\Set::reduce - Reduz o conjunto a um único valor usando uma função de callback
    • Ds\Set::remove - Remove todos os valores dados do conjunto
    • Ds\Set::reverse - Inverte o conjunto no local
    • Ds\Set::reversed - Retorna uma cópia invertida
    • Ds\Set::slice - Retorna um subconjunto de um intervalo dado
    • Ds\Set::sort - Ordena o conjunto no local
    • Ds\Set::sorted - Retorna uma cópia ordenada
    • Ds\Set::sum - Retorna a soma de todos os valores no conjunto
    • Ds\Set::toArray - Converte o conjunto para um array
    • Ds\Set::union - Cria um novo conjunto usando valores da instância atual e de outro conjunto
    • Ds\Set::xor - Cria um novo conjunto usando valores na instância atual ou em outro conjunto, mas não em ambos
    • Ds\Set::__construct - Cria uma nova instância
    • Ds\Stack::allocate - Aloca memória suficiente para uma capacidade requerida
    • Ds\Stack::capacity - Retona a capacidade atual
    • Ds\Stack::clear - Remove todos os valores
    • Ds\Stack::copy - Retorna uma cópia rasa da pilha
    • Ds\Stack::count - Retorna o número de valores na pilha
    • Ds\Stack::isEmpty - Retorna se a pilha está vazia
    • Ds\Stack::jsonSerialize - Retorna uma representação que pode ser convertida para JSON
    • Ds\Stack::peek - Retorna o valor no topo da pilha
    • Ds\Stack::pop - Remove e retorna o valor no topo da pilha
    • Ds\Stack::push - Empurra valores para a pilha
    • Ds\Stack::toArray - Converte a pilha para um array
    • Ds\Stack::__construct - Cria uma nova instância
    • Ds\Vector::allocate - Aloca memória suficiente para uma capacidade requerida
    • Ds\Vector::apply - Atualiza todos os valores aplicando uma função de callback a cada valor
    • Ds\Vector::capacity - Retorna a capacidade atual
    • Ds\Vector::clear - Remove todos os valores
    • Ds\Vector::contains - Determina se o vetor contém os valores fornecidos
    • Ds\Vector::copy - Retorna uma cópia rasa do vetor
    • Ds\Vector::count - Retorna o número de valores na coleção
    • Ds\Vector::filter - Cria um novo vetor usando um callable para determinar quais valores incluir.
    • Ds\Vector::find - Tenta encontrar o índice de um valor
    • Ds\Vector::first - Retorna o primeiro valor no vetor
    • Ds\Vector::get - Retorna o valor em um índice específico
    • Ds\Vector::insert - Insere valores em um índice específico
    • Ds\Vector::isEmpty - Retorna se o vetor está vazio
    • Ds\Vector::join - Junta todos os valores como uma string
    • Ds\Vector::jsonSerialize - Retorna uma representação que pode ser convertida para JSON
    • Ds\Vector::last - Retorna o último valor
    • Ds\Vector::map - Retorna o resultado da aplicação de uma função de callback a cada valor
    • Ds\Vector::merge - Retorna o resultado da adição de todos os valores fornecidos ao vetor
    • Ds\Vector::pop - Remove e retorna o último valor
    • Ds\Vector::push - Adiciona valores ao final do vetor
    • Ds\Vector::reduce - Reduz o vetor a um único valor usando uma função de callback
    • Ds\Vector::remove - Remove e retorna um valor pelo índice
    • Ds\Vector::reverse - Inverte o vetor no local
    • Ds\Vector::reversed - Retorna uma cópia invertida
    • Ds\Vector::rotate - Rotaciona o vetor por um número dado de rotações
    • Ds\Vector::set - tualiza um valor em um índice específico
    • Ds\Vector::shift - Remove e retorna o primeiro valor
    • Ds\Vector::slice - Retorna um sub-vetor de um determinado intervalo
    • Ds\Vector::sort - Ordena o vetor no local
    • Ds\Vector::sorted - Retorna uma cópia ordenada
    • Ds\Vector::sum - Retorna a soma de todos os valores no vetor
    • Ds\Vector::toArray - Converte o vetor em um array
    • Ds\Vector::unshift - Adiciona valores no início do vetor
    • Ds\Vector::__construct - Cria uma nova instância
  • e
    • each - Retorna o par atual de chave e valor de um array e avança o seu cursor
    • easter_date - Obtém o timestamp Unix para a meia-noite da Páscoa de um ano informado
    • easter_days - Obtém o número de dias depois de 21 de março no qual a Páscoa cai para um determinado ano
    • echo - Output one or more strings
    • eio_busy - Artificially increase load. Could be useful in tests, benchmarking
    • eio_cancel - Cancels a request
    • eio_chmod - Change file/directory permissions
    • eio_chown - Change file/directory permissions
    • eio_close - Close file
    • eio_custom - Execute custom request like any other eio_* call
    • eio_dup2 - Duplicate a file descriptor
    • eio_event_loop - Polls libeio until all requests proceeded
    • eio_fallocate - Allows the caller to directly manipulate the allocated disk space for a file
    • eio_fchmod - Change file permissions
    • eio_fchown - Change file ownership
    • eio_fdatasync - Synchronize a file's in-core state with storage device
    • eio_fstat - Get file status
    • eio_fstatvfs - Get file system statistics
    • eio_fsync - Synchronize a file's in-core state with storage device
    • eio_ftruncate - Truncate a file
    • eio_futime - Change file last access and modification times
    • eio_get_event_stream - Get stream representing a variable used in internal communications with libeio
    • eio_get_last_error - Returns string describing the last error associated with a request resource
    • eio_grp - Creates a request group
    • eio_grp_add - Adds a request to the request group
    • eio_grp_cancel - Cancels a request group
    • eio_grp_limit - Set group limit
    • eio_init - (Re-)initialize Eio
    • eio_link - Create a hardlink for file
    • eio_lstat - Get file status
    • eio_mkdir - Create directory
    • eio_mknod - Create a special or ordinary file
    • eio_nop - Does nothing, except go through the whole request cycle
    • eio_npending - Returns number of finished, but unhandled requests
    • eio_nready - Returns number of not-yet handled requests
    • eio_nreqs - Returns number of requests to be processed
    • eio_nthreads - Returns number of threads currently in use
    • eio_open - Opens a file
    • eio_poll - Can be to be called whenever there are pending requests that need finishing
    • eio_read - Read from a file descriptor at given offset
    • eio_readahead - Perform file readahead into page cache
    • eio_readdir - Reads through a whole directory
    • eio_readlink - Read value of a symbolic link
    • eio_realpath - Get the canonicalized absolute pathname
    • eio_rename - Change the name or location of a file
    • eio_rmdir - Remove a directory
    • eio_seek - Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence
    • eio_sendfile - Transfer data between file descriptors
    • eio_set_max_idle - Set maximum number of idle threads
    • eio_set_max_parallel - Set maximum parallel threads
    • eio_set_max_poll_reqs - Set maximum number of requests processed in a poll
    • eio_set_max_poll_time - Set maximum poll time
    • eio_set_min_parallel - Set minimum parallel thread number
    • eio_stat - Get file status
    • eio_statvfs - Get file system statistics
    • eio_symlink - Create a symbolic link
    • eio_sync - Commit buffer cache to disk
    • eio_syncfs - Calls Linux' syncfs syscall, if available
    • eio_sync_file_range - Sync a file segment with disk
    • eio_truncate - Truncate a file
    • eio_unlink - Delete a name and possibly the file it refers to
    • eio_utime - Change file last access and modification times
    • eio_write - Write to file
    • empty - Determina se uma variável está vazia
    • EmptyIterator::current - O método current()
    • EmptyIterator::key - O método key()
    • EmptyIterator::next - O método next()
    • EmptyIterator::rewind - O método rewind()
    • EmptyIterator::valid - Verifica se o elemento atual é válido
    • enchant_broker_describe - Enumerates the Enchant providers
    • enchant_broker_dict_exists - Whether a dictionary exists or not. Using non-empty tag
    • enchant_broker_free - Free the broker resource and its dictionaries
    • enchant_broker_free_dict - Free a dictionary resource
    • enchant_broker_get_dict_path - Get the directory path for a given backend
    • enchant_broker_get_error - Returns the last error of the broker
    • enchant_broker_init - Create a new broker object capable of requesting
    • enchant_broker_list_dicts - Returns a list of available dictionaries
    • enchant_broker_request_dict - Create a new dictionary using a tag
    • enchant_broker_request_pwl_dict - Creates a dictionary using a PWL file
    • enchant_broker_set_dict_path - Set the directory path for a given backend
    • enchant_broker_set_ordering - Declares a preference of dictionaries to use for the language
    • enchant_dict_add - Add a word to personal word list
    • enchant_dict_add_to_personal - Sinônimo de enchant_dict_add
    • enchant_dict_add_to_session - Add 'word' to this spell-checking session
    • enchant_dict_check - Check whether a word is correctly spelled or not
    • enchant_dict_describe - Describes an individual dictionary
    • enchant_dict_get_error - Returns the last error of the current spelling-session
    • enchant_dict_is_added - Whether or not 'word' exists in this spelling-session
    • enchant_dict_is_in_session - Sinônimo de enchant_dict_is_added
    • enchant_dict_quick_check - Check the word is correctly spelled and provide suggestions
    • enchant_dict_store_replacement - Add a correction for a word
    • enchant_dict_suggest - Will return a list of values if any of those pre-conditions are not met
    • end - Define o ponteiro interno de um array para seu último elemento
    • enum_exists - Verifica se uma enumeração foi definida
    • Error::getCode - Recupera o código do erro
    • Error::getFile - Recupera o nome do arquivo onde o erro ocorreu
    • Error::getLine - Recupera a linha onde o erro ocorreu
    • Error::getMessage - Recupera a mensagem de erro
    • Error::getPrevious - Retorna o último Throwable
    • Error::getTrace - Recupera a pilha de rastreio
    • Error::getTraceAsString - Recupera a pilha de rastreio como uma string
    • Error::__clone - Clona o erro
    • Error::__construct - Constrói o objeto error
    • Error::__toString - Representação em string do erro
    • ErrorException::getSeverity - Obtém o nível da exceção
    • ErrorException::__construct - Constrói a exceção
    • error_clear_last - Limpa o erro mais recente
    • error_get_last - Obtém o último erro ocorrido
    • error_log - Envia uma mensagem de erro para as rotinas de tratamento de erros definidas
    • error_reporting - Define quais erros do PHP são relatados
    • escapeshellarg - Escapa uma string para ser usada como um argumento shell
    • escapeshellcmd - Escapa meta-caracteres shell
    • Ev::backend - Returns an integer describing the backend used by libev
    • Ev::depth - Returns recursion depth
    • Ev::embeddableBackends - Returns the set of backends that are embeddable in other event loops
    • Ev::feedSignal - Feed a signal event info Ev
    • Ev::feedSignalEvent - Feed signal event into the default loop
    • Ev::iteration - Return the number of times the default event loop has polled for new events
    • Ev::now - Returns the time when the last iteration of the default event loop has started
    • Ev::nowUpdate - Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress
    • Ev::recommendedBackends - Returns a bit mask of recommended backends for current platform
    • Ev::resume - Resume previously suspended default event loop
    • Ev::run - Begin checking for events and calling callbacks for the default loop
    • Ev::sleep - Block the process for the given number of seconds
    • Ev::stop - Stops the default event loop
    • Ev::supportedBackends - Returns the set of backends supported by current libev configuration
    • Ev::suspend - Suspend the default event loop
    • Ev::time - Returns the current time in fractional seconds since the epoch
    • Ev::verify - Performs internal consistency checks(for debugging)
    • eval - Avalia uma string como código PHP
    • EvCheck::createStopped - Create instance of a stopped EvCheck watcher
    • EvCheck::__construct - Constructs the EvCheck watcher object
    • EvChild::createStopped - Create instance of a stopped EvCheck watcher
    • EvChild::set - Configures the watcher
    • EvChild::__construct - Constructs the EvChild watcher object
    • EvEmbed::createStopped - Create stopped EvEmbed watcher object
    • EvEmbed::set - Configures the watcher
    • EvEmbed::sweep - Make a single, non-blocking sweep over the embedded loop
    • EvEmbed::__construct - Constructs the EvEmbed object
    • Event::add - Makes event pending
    • Event::addSignal - Sinônimo de Event::add
    • Event::addTimer - Sinônimo de Event::add
    • Event::del - Makes event non-pending
    • Event::delSignal - Sinônimo de Event::del
    • Event::delTimer - Sinônimo de Event::del
    • Event::free - Make event non-pending and free resources allocated for this event
    • Event::getSupportedMethods - Returns array with of the names of the methods supported in this version of Libevent
    • Event::pending - Detects whether event is pending or scheduled
    • Event::set - Re-configures event
    • Event::setPriority - Set event priority
    • Event::setTimer - Re-configures timer event
    • Event::signal - Constructs signal event object
    • Event::timer - Constructs timer event object
    • Event::__construct - Constructs Event object
    • EventBase::dispatch - Dispatch pending events
    • EventBase::exit - Stop dispatching events
    • EventBase::free - Free resources allocated for this event base
    • EventBase::getFeatures - Returns bitmask of features supported
    • EventBase::getMethod - Returns event method in use
    • EventBase::getTimeOfDayCached - Returns the current event base time
    • EventBase::gotExit - Checks if the event loop was told to exit
    • EventBase::gotStop - Checks if the event loop was told to exit
    • EventBase::loop - Dispatch pending events
    • EventBase::priorityInit - Sets number of priorities per event base
    • EventBase::reInit - Re-initialize event base(after a fork)
    • EventBase::stop - Tells event_base to stop dispatching events
    • EventBase::__construct - Constructs EventBase object
    • EventBuffer::add - Append data to the end of an event buffer
    • EventBuffer::addBuffer - Move all data from a buffer provided to the current instance of EventBuffer
    • EventBuffer::appendFrom - Moves the specified number of bytes from a source buffer to the end of the current buffer
    • EventBuffer::copyout - Copies out specified number of bytes from the front of the buffer
    • EventBuffer::drain - Removes specified number of bytes from the front of the buffer without copying it anywhere
    • EventBuffer::enableLocking - Descrição
    • EventBuffer::expand - Reserves space in buffer
    • EventBuffer::freeze - Prevent calls that modify an event buffer from succeeding
    • EventBuffer::lock - Acquires a lock on buffer
    • EventBuffer::prepend - Prepend data to the front of the buffer
    • EventBuffer::prependBuffer - Moves all data from source buffer to the front of current buffer
    • EventBuffer::pullup - Linearizes data within buffer and returns it's contents as a string
    • EventBuffer::read - Read data from an evbuffer and drain the bytes read
    • EventBuffer::readFrom - Read data from a file onto the end of the buffer
    • EventBuffer::readLine - Extracts a line from the front of the buffer
    • EventBuffer::search - Scans the buffer for an occurrence of a string
    • EventBuffer::searchEol - Scans the buffer for an occurrence of an end of line
    • EventBuffer::substr - Substracts a portion of the buffer data
    • EventBuffer::unfreeze - Re-enable calls that modify an event buffer
    • EventBuffer::unlock - Releases lock acquired by EventBuffer::lock
    • EventBuffer::write - Write contents of the buffer to a file or socket
    • EventBuffer::__construct - Constructs EventBuffer object
    • EventBufferEvent::close - Closes file descriptor associated with the current buffer event
    • EventBufferEvent::connect - Connect buffer event's file descriptor to given address or UNIX socket
    • EventBufferEvent::connectHost - Connects to a hostname with optionally asyncronous DNS resolving
    • EventBufferEvent::createPair - Creates two buffer events connected to each other
    • EventBufferEvent::disable - Disable events read, write, or both on a buffer event
    • EventBufferEvent::enable - Enable events read, write, or both on a buffer event
    • EventBufferEvent::free - Free a buffer event
    • EventBufferEvent::getDnsErrorString - Returns string describing the last failed DNS lookup attempt
    • EventBufferEvent::getEnabled - Returns bitmask of events currently enabled on the buffer event
    • EventBufferEvent::getInput - Returns underlying input buffer associated with current buffer event
    • EventBufferEvent::getOutput - Returns underlying output buffer associated with current buffer event
    • EventBufferEvent::read - Read buffer's data
    • EventBufferEvent::readBuffer - Drains the entire contents of the input buffer and places them into buf
    • EventBufferEvent::setCallbacks - Assigns read, write and event(status) callbacks
    • EventBufferEvent::setPriority - Assign a priority to a bufferevent
    • EventBufferEvent::setTimeouts - Set the read and write timeout for a buffer event
    • EventBufferEvent::setWatermark - Adjusts read and/or write watermarks
    • EventBufferEvent::sslError - Returns most recent OpenSSL error reported on the buffer event
    • EventBufferEvent::sslFilter - Create a new SSL buffer event to send its data over another buffer event
    • EventBufferEvent::sslGetCipherInfo - Returns a textual description of the cipher
    • EventBufferEvent::sslGetCipherName - Returns the current cipher name of the SSL connection
    • EventBufferEvent::sslGetCipherVersion - Returns version of cipher used by current SSL connection
    • EventBufferEvent::sslGetProtocol - Returns the name of the protocol used for current SSL connection
    • EventBufferEvent::sslRenegotiate - Tells a bufferevent to begin SSL renegotiation
    • EventBufferEvent::sslSocket - Creates a new SSL buffer event to send its data over an SSL on a socket
    • EventBufferEvent::write - Adds data to a buffer event's output buffer
    • EventBufferEvent::writeBuffer - Adds contents of the entire buffer to a buffer event's output buffer
    • EventBufferEvent::__construct - Constructs EventBufferEvent object
    • EventConfig::avoidMethod - Tells libevent to avoid specific event method
    • EventConfig::requireFeatures - Enters a required event method feature that the application demands
    • EventConfig::setFlags - Sets one or more flags to configure the eventual EventBase will be initialized
    • EventConfig::setMaxDispatchInterval - Prevents priority inversion
    • EventConfig::__construct - Constructs EventConfig object
    • EventDnsBase::addNameserverIp - Adds a nameserver to the DNS base
    • EventDnsBase::addSearch - Adds a domain to the list of search domains
    • EventDnsBase::clearSearch - Removes all current search suffixes
    • EventDnsBase::countNameservers - Gets the number of configured nameservers
    • EventDnsBase::loadHosts - Loads a hosts file (in the same format as /etc/hosts) from hosts file
    • EventDnsBase::parseResolvConf - Scans the resolv.conf-formatted file
    • EventDnsBase::setOption - Set the value of a configuration option
    • EventDnsBase::setSearchNdots - Set the 'ndots' parameter for searches
    • EventDnsBase::__construct - Constructs EventDnsBase object
    • EventHttp::accept - Makes an HTTP server accept connections on the specified socket stream or resource
    • EventHttp::addServerAlias - Adds a server alias to the HTTP server object
    • EventHttp::bind - Binds an HTTP server on the specified address and port
    • EventHttp::removeServerAlias - Removes server alias
    • EventHttp::setAllowedMethods - Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks
    • EventHttp::setCallback - Sets a callback for specified URI
    • EventHttp::setDefaultCallback - Sets default callback to handle requests that are not caught by specific callbacks
    • EventHttp::setMaxBodySize - Sets maximum request body size
    • EventHttp::setMaxHeadersSize - Sets maximum HTTP header size
    • EventHttp::setTimeout - Sets the timeout for an HTTP request
    • EventHttp::__construct - Constructs EventHttp object (the HTTP server)
    • EventHttpConnection::getBase - Returns event base associated with the connection
    • EventHttpConnection::getPeer - Gets the remote address and port associated with the connection
    • EventHttpConnection::makeRequest - Makes an HTTP request over the specified connection
    • EventHttpConnection::setCloseCallback - Set callback for connection close
    • EventHttpConnection::setLocalAddress - Sets the IP address from which HTTP connections are made
    • EventHttpConnection::setLocalPort - Sets the local port from which connections are made
    • EventHttpConnection::setMaxBodySize - Sets maximum body size for the connection
    • EventHttpConnection::setMaxHeadersSize - Sets maximum header size
    • EventHttpConnection::setRetries - Sets the retry limit for the connection
    • EventHttpConnection::setTimeout - Sets the timeout for the connection
    • EventHttpConnection::__construct - Constructs EventHttpConnection object
    • EventHttpRequest::addHeader - Adds an HTTP header to the headers of the request
    • EventHttpRequest::cancel - Cancels a pending HTTP request
    • EventHttpRequest::clearHeaders - Removes all output headers from the header list of the request
    • EventHttpRequest::closeConnection - Closes associated HTTP connection
    • EventHttpRequest::findHeader - Finds the value belonging a header
    • EventHttpRequest::free - Frees the object and removes associated events
    • EventHttpRequest::getBufferEvent - Returns EventBufferEvent object
    • EventHttpRequest::getCommand - Returns the request command(method)
    • EventHttpRequest::getConnection - Returns EventHttpConnection object
    • EventHttpRequest::getHost - Returns the request host
    • EventHttpRequest::getInputBuffer - Returns the input buffer
    • EventHttpRequest::getInputHeaders - Returns associative array of the input headers
    • EventHttpRequest::getOutputBuffer - Returns the output buffer of the request
    • EventHttpRequest::getOutputHeaders - Returns associative array of the output headers
    • EventHttpRequest::getResponseCode - Returns the response code
    • EventHttpRequest::getUri - Returns the request URI
    • EventHttpRequest::removeHeader - Removes an HTTP header from the headers of the request
    • EventHttpRequest::sendError - Send an HTML error message to the client
    • EventHttpRequest::sendReply - Send an HTML reply to the client
    • EventHttpRequest::sendReplyChunk - Send another data chunk as part of an ongoing chunked reply
    • EventHttpRequest::sendReplyEnd - Complete a chunked reply, freeing the request as appropriate
    • EventHttpRequest::sendReplyStart - Initiate a chunked reply
    • EventHttpRequest::__construct - Constructs EventHttpRequest object
    • EventListener::disable - Disables an event connect listener object
    • EventListener::enable - Enables an event connect listener object
    • EventListener::getBase - Returns event base associated with the event listener
    • EventListener::getSocketName - Retreives the current address to which the listener's socket is bound
    • EventListener::setCallback - The setCallback purpose
    • EventListener::setErrorCallback - Set event listener's error callback
    • EventListener::__construct - Creates new connection listener associated with an event base
    • EventSslContext::__construct - Constructs an OpenSSL context for use with Event classes
    • EventUtil::getLastSocketErrno - Returns the most recent socket error number
    • EventUtil::getLastSocketError - Returns the most recent socket error
    • EventUtil::getSocketFd - Returns numeric file descriptor of a socket, or stream
    • EventUtil::getSocketName - Retreives the current address to which the socket is bound
    • EventUtil::setSocketOption - Sets socket options
    • EventUtil::sslRandPoll - Generates entropy by means of OpenSSL's RAND_poll()
    • EventUtil::__construct - The abstract constructor
    • EvFork::createStopped - Creates a stopped instance of EvFork watcher class
    • EvFork::__construct - Constructs the EvFork watcher object
    • EvIdle::createStopped - Creates instance of a stopped EvIdle watcher object
    • EvIdle::__construct - Constructs the EvIdle watcher object
    • EvIo::createStopped - Create stopped EvIo watcher object
    • EvIo::set - Configures the watcher
    • EvIo::__construct - Constructs EvIo watcher object
    • EvLoop::backend - Returns an integer describing the backend used by libev
    • EvLoop::check - Creates EvCheck object associated with the current event loop instance
    • EvLoop::child - Creates EvChild object associated with the current event loop
    • EvLoop::defaultLoop - Returns or creates the default event loop
    • EvLoop::embed - Creates an instance of EvEmbed watcher associated with the current EvLoop object
    • EvLoop::fork - Creates EvFork watcher object associated with the current event loop instance
    • EvLoop::idle - Creates EvIdle watcher object associated with the current event loop instance
    • EvLoop::invokePending - Invoke all pending watchers while resetting their pending state
    • EvLoop::io - Create EvIo watcher object associated with the current event loop instance
    • EvLoop::loopFork - Must be called after a fork
    • EvLoop::now - Returns the current "event loop time"
    • EvLoop::nowUpdate - Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress
    • EvLoop::periodic - Creates EvPeriodic watcher object associated with the current event loop instance
    • EvLoop::prepare - Creates EvPrepare watcher object associated with the current event loop instance
    • EvLoop::resume - Resume previously suspended default event loop
    • EvLoop::run - Begin checking for events and calling callbacks for the loop
    • EvLoop::signal - Creates EvSignal watcher object associated with the current event loop instance
    • EvLoop::stat - Creates EvStat watcher object associated with the current event loop instance
    • EvLoop::stop - Stops the event loop
    • EvLoop::suspend - Suspend the loop
    • EvLoop::timer - Creates EvTimer watcher object associated with the current event loop instance
    • EvLoop::verify - Performs internal consistency checks(for debugging)
    • EvLoop::__construct - Constructs the event loop object
    • EvPeriodic::again - Simply stops and restarts the periodic watcher again
    • EvPeriodic::at - Returns the absolute time that this watcher is supposed to trigger next
    • EvPeriodic::createStopped - Create a stopped EvPeriodic watcher
    • EvPeriodic::set - Configures the watcher
    • EvPeriodic::__construct - Constructs EvPeriodic watcher object
    • EvPrepare::createStopped - Creates a stopped instance of EvPrepare watcher
    • EvPrepare::__construct - Constructs EvPrepare watcher object
    • EvSignal::createStopped - Create stopped EvSignal watcher object
    • EvSignal::set - Configures the watcher
    • EvSignal::__construct - Constructs EvSignal watcher object
    • EvStat::attr - Returns the values most recently detected by Ev
    • EvStat::createStopped - Create a stopped EvStat watcher object
    • EvStat::prev - Returns the previous set of values returned by EvStat::attr
    • EvStat::set - Configures the watcher
    • EvStat::stat - Initiates the stat call
    • EvStat::__construct - Constructs EvStat watcher object
    • EvTimer::again - Restarts the timer watcher
    • EvTimer::createStopped - Creates EvTimer stopped watcher object
    • EvTimer::set - Configures the watcher
    • EvTimer::__construct - Constructs an EvTimer watcher object
    • EvWatcher::clear - Clear watcher pending status
    • EvWatcher::feed - Feeds the given revents set into the event loop
    • EvWatcher::getLoop - Returns the loop responsible for the watcher
    • EvWatcher::invoke - Invokes the watcher callback with the given received events bit mask
    • EvWatcher::keepalive - Configures whether to keep the loop from returning
    • EvWatcher::setCallback - Sets new callback for the watcher
    • EvWatcher::start - Starts the watcher
    • EvWatcher::stop - Stops the watcher
    • EvWatcher::__construct - Abstract constructor of a watcher object
    • Exception::getCode - Obtém o código da exceção
    • Exception::getFile - Obtém o arquivo no qual a exceção foi criada
    • Exception::getLine - Obtém a linha na qual a exceção foi criada
    • Exception::getMessage - Obtém a mensagem da exceção
    • Exception::getPrevious - Retorna o Throwable anterior
    • Exception::getTrace - Obtém a stack trace
    • Exception::getTraceAsString - Obtém a stack trace como uma string
    • Exception::__clone - Clona a exceção
    • Exception::__construct - Construtor da exceção
    • Exception::__toString - Representação em string da exceção
    • exec - Executa um programa externo
    • Executable::execute - Execute statement
    • ExecutionStatus::__construct - ExecutionStatus constructor
    • exif_imagetype - Verifica o tipo de uma imagem
    • exif_read_data - Lê os cabeçalhos EXIF de um arquivo de imagen
    • exif_tagname - Obtém o nome do cabeçalho para um índice
    • exif_thumbnail - Recupera a miniatura embutida de uma imagem
    • exit - Mostra uma mensagem e termina o script atual
    • exp - Calcula o expoente de e
    • expect:// - Fluxos de Interação entre Processos
    • expect_expectl - Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
    • expect_popen - Execute command via Bourne shell, and open the PTY stream to the process
    • explode - Split a string by a string
    • expm1 - Retorna exp($num) - 1, computado de forma precisa mesmo quando o valor do número está próximo de zero.
    • expression - Bind prepared statement variables as parameters
    • Expression::__construct - Expression constructor
    • extension_loaded - Descobre se uma extensão está carregada
    • extract - Importa variáveis para a tabela de símbolos a partir de um array
    • ezmlm_hash - Calcula o valor do hash necessário para EZMLM
  • f
    • FANNConnection::getFromNeuron - Returns the postions of starting neuron
    • FANNConnection::getToNeuron - Returns the postions of terminating neuron
    • FANNConnection::getWeight - Returns the connection weight
    • FANNConnection::setWeight - Sets the connections weight
    • FANNConnection::__construct - The connection constructor
    • fann_cascadetrain_on_data - Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
    • fann_cascadetrain_on_file - Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm
    • fann_clear_scaling_params - Clears scaling parameters
    • fann_copy - Creates a copy of a fann structure
    • fann_create_from_file - Constructs a backpropagation neural network from a configuration file
    • fann_create_shortcut - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_shortcut_array - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_sparse - Creates a standard backpropagation neural network, which is not fully connected
    • fann_create_sparse_array - Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
    • fann_create_standard - Creates a standard fully connected backpropagation neural network
    • fann_create_standard_array - Creates a standard fully connected backpropagation neural network using an array of layer sizes
    • fann_create_train - Creates an empty training data struct
    • fann_create_train_from_callback - Creates the training data struct from a user supplied function
    • fann_descale_input - Scale data in input vector after get it from ann based on previously calculated parameters
    • fann_descale_output - Scale data in output vector after get it from ann based on previously calculated parameters
    • fann_descale_train - Descale input and output data based on previously calculated parameters
    • fann_destroy - Destroys the entire network and properly freeing all the associated memory
    • fann_destroy_train - Destructs the training data
    • fann_duplicate_train_data - Returns an exact copy of a fann train data
    • fann_get_activation_function - Returns the activation function
    • fann_get_activation_steepness - Returns the activation steepness for supplied neuron and layer number
    • fann_get_bias_array - Get the number of bias in each layer in the network
    • fann_get_bit_fail - The number of fail bits
    • fann_get_bit_fail_limit - Returns the bit fail limit used during training
    • fann_get_cascade_activation_functions - Returns the cascade activation functions
    • fann_get_cascade_activation_functions_count - Returns the number of cascade activation functions
    • fann_get_cascade_activation_steepnesses - Returns the cascade activation steepnesses
    • fann_get_cascade_activation_steepnesses_count - The number of activation steepnesses
    • fann_get_cascade_candidate_change_fraction - Returns the cascade candidate change fraction
    • fann_get_cascade_candidate_limit - Return the candidate limit
    • fann_get_cascade_candidate_stagnation_epochs - Returns the number of cascade candidate stagnation epochs
    • fann_get_cascade_max_cand_epochs - Returns the maximum candidate epochs
    • fann_get_cascade_max_out_epochs - Returns the maximum out epochs
    • fann_get_cascade_min_cand_epochs - Returns the minimum candidate epochs
    • fann_get_cascade_min_out_epochs - Returns the minimum out epochs
    • fann_get_cascade_num_candidates - Returns the number of candidates used during training
    • fann_get_cascade_num_candidate_groups - Returns the number of candidate groups
    • fann_get_cascade_output_change_fraction - Returns the cascade output change fraction
    • fann_get_cascade_output_stagnation_epochs - Returns the number of cascade output stagnation epochs
    • fann_get_cascade_weight_multiplier - Returns the weight multiplier
    • fann_get_connection_array - Get connections in the network
    • fann_get_connection_rate - Get the connection rate used when the network was created
    • fann_get_errno - Returns the last error number
    • fann_get_errstr - Returns the last errstr
    • fann_get_layer_array - Get the number of neurons in each layer in the network
    • fann_get_learning_momentum - Returns the learning momentum
    • fann_get_learning_rate - Returns the learning rate
    • fann_get_MSE - Reads the mean square error from the network
    • fann_get_network_type - Get the type of neural network it was created as
    • fann_get_num_input - Get the number of input neurons
    • fann_get_num_layers - Get the number of layers in the neural network
    • fann_get_num_output - Get the number of output neurons
    • fann_get_quickprop_decay - Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
    • fann_get_quickprop_mu - Returns the mu factor
    • fann_get_rprop_decrease_factor - Returns the increase factor used during RPROP training
    • fann_get_rprop_delta_max - Returns the maximum step-size
    • fann_get_rprop_delta_min - Returns the minimum step-size
    • fann_get_rprop_delta_zero - Returns the initial step-size
    • fann_get_rprop_increase_factor - Returns the increase factor used during RPROP training
    • fann_get_sarprop_step_error_shift - Returns the sarprop step error shift
    • fann_get_sarprop_step_error_threshold_factor - Returns the sarprop step error threshold factor
    • fann_get_sarprop_temperature - Returns the sarprop temperature
    • fann_get_sarprop_weight_decay_shift - Returns the sarprop weight decay shift
    • fann_get_total_connections - Get the total number of connections in the entire network
    • fann_get_total_neurons - Get the total number of neurons in the entire network
    • fann_get_training_algorithm - Returns the training algorithm
    • fann_get_train_error_function - Returns the error function used during training
    • fann_get_train_stop_function - Returns the stop function used during training
    • fann_init_weights - Initialize the weights using Widrow + Nguyen’s algorithm
    • fann_length_train_data - Returns the number of training patterns in the train data
    • fann_merge_train_data - Merges the train data
    • fann_num_input_train_data - Returns the number of inputs in each of the training patterns in the train data
    • fann_num_output_train_data - Returns the number of outputs in each of the training patterns in the train data
    • fann_print_error - Prints the error string
    • fann_randomize_weights - Give each connection a random weight between min_weight and max_weight
    • fann_read_train_from_file - Reads a file that stores training data
    • fann_reset_errno - Resets the last error number
    • fann_reset_errstr - Resets the last error string
    • fann_reset_MSE - Resets the mean square error from the network
    • fann_run - Will run input through the neural network
    • fann_save - Saves the entire network to a configuration file
    • fann_save_train - Save the training structure to a file
    • fann_scale_input - Scale data in input vector before feed it to ann based on previously calculated parameters
    • fann_scale_input_train_data - Scales the inputs in the training data to the specified range
    • fann_scale_output - Scale data in output vector before feed it to ann based on previously calculated parameters
    • fann_scale_output_train_data - Scales the outputs in the training data to the specified range
    • fann_scale_train - Scale input and output data based on previously calculated parameters
    • fann_scale_train_data - Scales the inputs and outputs in the training data to the specified range
    • fann_set_activation_function - Sets the activation function for supplied neuron and layer
    • fann_set_activation_function_hidden - Sets the activation function for all of the hidden layers
    • fann_set_activation_function_layer - Sets the activation function for all the neurons in the supplied layer
    • fann_set_activation_function_output - Sets the activation function for the output layer
    • fann_set_activation_steepness - Sets the activation steepness for supplied neuron and layer number
    • fann_set_activation_steepness_hidden - Sets the steepness of the activation steepness for all neurons in the all hidden layers
    • fann_set_activation_steepness_layer - Sets the activation steepness for all of the neurons in the supplied layer number
    • fann_set_activation_steepness_output - Sets the steepness of the activation steepness in the output layer
    • fann_set_bit_fail_limit - Set the bit fail limit used during training
    • fann_set_callback - Sets the callback function for use during training
    • fann_set_cascade_activation_functions - Sets the array of cascade candidate activation functions
    • fann_set_cascade_activation_steepnesses - Sets the array of cascade candidate activation steepnesses
    • fann_set_cascade_candidate_change_fraction - Sets the cascade candidate change fraction
    • fann_set_cascade_candidate_limit - Sets the candidate limit
    • fann_set_cascade_candidate_stagnation_epochs - Sets the number of cascade candidate stagnation epochs
    • fann_set_cascade_max_cand_epochs - Sets the max candidate epochs
    • fann_set_cascade_max_out_epochs - Sets the maximum out epochs
    • fann_set_cascade_min_cand_epochs - Sets the min candidate epochs
    • fann_set_cascade_min_out_epochs - Sets the minimum out epochs
    • fann_set_cascade_num_candidate_groups - Sets the number of candidate groups
    • fann_set_cascade_output_change_fraction - Sets the cascade output change fraction
    • fann_set_cascade_output_stagnation_epochs - Sets the number of cascade output stagnation epochs
    • fann_set_cascade_weight_multiplier - Sets the weight multiplier
    • fann_set_error_log - Sets where the errors are logged to
    • fann_set_input_scaling_params - Calculate input scaling parameters for future use based on training data
    • fann_set_learning_momentum - Sets the learning momentum
    • fann_set_learning_rate - Sets the learning rate
    • fann_set_output_scaling_params - Calculate output scaling parameters for future use based on training data
    • fann_set_quickprop_decay - Sets the quickprop decay factor
    • fann_set_quickprop_mu - Sets the quickprop mu factor
    • fann_set_rprop_decrease_factor - Sets the decrease factor used during RPROP training
    • fann_set_rprop_delta_max - Sets the maximum step-size
    • fann_set_rprop_delta_min - Sets the minimum step-size
    • fann_set_rprop_delta_zero - Sets the initial step-size
    • fann_set_rprop_increase_factor - Sets the increase factor used during RPROP training
    • fann_set_sarprop_step_error_shift - Sets the sarprop step error shift
    • fann_set_sarprop_step_error_threshold_factor - Sets the sarprop step error threshold factor
    • fann_set_sarprop_temperature - Sets the sarprop temperature
    • fann_set_sarprop_weight_decay_shift - Sets the sarprop weight decay shift
    • fann_set_scaling_params - Calculate input and output scaling parameters for future use based on training data
    • fann_set_training_algorithm - Sets the training algorithm
    • fann_set_train_error_function - Sets the error function used during training
    • fann_set_train_stop_function - Sets the stop function used during training
    • fann_set_weight - Set a connection in the network
    • fann_set_weight_array - Set connections in the network
    • fann_shuffle_train_data - Shuffles training data, randomizing the order
    • fann_subset_train_data - Returns an copy of a subset of the train data
    • fann_test - Test with a set of inputs, and a set of desired outputs
    • fann_test_data - Test a set of training data and calculates the MSE for the training data
    • fann_train - Train one iteration with a set of inputs, and a set of desired outputs
    • fann_train_epoch - Train one epoch with a set of training data
    • fann_train_on_data - Trains on an entire dataset for a period of time
    • fann_train_on_file - Trains on an entire dataset, which is read from file, for a period of time
    • fastcgi_finish_request - Envia todos os dados de resposta ao cliente
    • fbird_add_user - Sinônimo de ibase_add_user
    • fbird_affected_rows - Sinônimo de ibase_affected_rows
    • fbird_backup - Sinônimo de ibase_backup
    • fbird_blob_add - Sinônimo de ibase_blob_add
    • fbird_blob_cancel - Cancel creating blob
    • fbird_blob_close - Sinônimo de ibase_blob_close
    • fbird_blob_create - Sinônimo de ibase_blob_create
    • fbird_blob_echo - Sinônimo de ibase_blob_echo
    • fbird_blob_get - Sinônimo de ibase_blob_get
    • fbird_blob_import - Sinônimo de ibase_blob_import
    • fbird_blob_info - Sinônimo de ibase_blob_info
    • fbird_blob_open - Sinônimo de ibase_blob_open
    • fbird_close - Sinônimo de ibase_close
    • fbird_commit - Sinônimo de ibase_commit
    • fbird_commit_ret - Sinônimo de ibase_commit_ret
    • fbird_connect - Sinônimo de ibase_connect
    • fbird_db_info - Sinônimo de ibase_db_info
    • fbird_delete_user - Sinônimo de ibase_delete_user
    • fbird_drop_db - Sinônimo de ibase_drop_db
    • fbird_errcode - Sinônimo de ibase_errcode
    • fbird_errmsg - Sinônimo de ibase_errmsg
    • fbird_execute - Sinônimo de ibase_execute
    • fbird_fetch_assoc - Sinônimo de ibase_fetch_assoc
    • fbird_fetch_object - Sinônimo de ibase_fetch_object
    • fbird_fetch_row - Sinônimo de ibase_fetch_row
    • fbird_field_info - Sinônimo de ibase_field_info
    • fbird_free_event_handler - Sinônimo de ibase_free_event_handler
    • fbird_free_query - Sinônimo de ibase_free_query
    • fbird_free_result - Sinônimo de ibase_free_result
    • fbird_gen_id - Sinônimo de ibase_gen_id
    • fbird_maintain_db - Sinônimo de ibase_maintain_db
    • fbird_modify_user - Sinônimo de ibase_modify_user
    • fbird_name_result - Sinônimo de ibase_name_result
    • fbird_num_fields - Sinônimo de ibase_num_fields
    • fbird_num_params - Sinônimo de ibase_num_params
    • fbird_param_info - Sinônimo de ibase_param_info
    • fbird_pconnect - Sinônimo de ibase_pconnect
    • fbird_prepare - Sinônimo de ibase_prepare
    • fbird_query - Sinônimo de ibase_query
    • fbird_restore - Sinônimo de ibase_restore
    • fbird_rollback - Sinônimo de ibase_rollback
    • fbird_rollback_ret - Sinônimo de ibase_rollback_ret
    • fbird_server_info - Sinônimo de ibase_server_info
    • fbird_service_attach - Sinônimo de ibase_service_attach
    • fbird_service_detach - Sinônimo de ibase_service_detach
    • fbird_set_event_handler - Sinônimo de ibase_set_event_handler
    • fbird_trans - Sinônimo de ibase_trans
    • fbird_wait_event - Sinônimo de ibase_wait_event
    • fclose - Fecha um ponteiro de arquivo aberto
    • fdatasync - Sincroniza dados (mas não metadados) ao arquivo
    • fdf_add_doc_javascript - Adds javascript code to the FDF document
    • fdf_add_template - Adds a template into the FDF document
    • fdf_close - Close an FDF document
    • fdf_create - Create a new FDF document
    • 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 - Get the value of the /F key
    • 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 - Get the value of the /STATUS key
    • fdf_get_value - Get the value of a field
    • fdf_get_version - Gets version number for FDF API or file
    • fdf_header - Sets FDF-specific output headers
    • fdf_next_field_name - Get the next field name
    • fdf_open - Open a FDF document
    • fdf_open_string - Read a FDF document from a string
    • fdf_remove_item - Sets target frame for form
    • fdf_save - Save a FDF document
    • fdf_save_string - Returns the FDF document as a string
    • fdf_set_ap - Set the appearance of a field
    • fdf_set_encoding - Sets FDF character encoding
    • fdf_set_file - Set PDF document to display FDF data in
    • fdf_set_flags - Sets a flag of a field
    • fdf_set_javascript_action - Sets an javascript action of a field
    • fdf_set_on_import_javascript - Adds javascript code to be executed when Acrobat opens the FDF
    • fdf_set_opt - Sets an option of a field
    • fdf_set_status - Set the value of the /STATUS key
    • 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 - Set the value of a field
    • fdf_set_version - Sets version number for a FDF file
    • fdiv - Divide dois números de acordo com a IEEE 754
    • feof - Testa pelo fim-de-arquivo em um ponteiro de arquivo
    • FFI::addr - Creates an unmanaged pointer to C data
    • FFI::alignof - Gets the alignment
    • FFI::arrayType - Dynamically constructs a new C array type
    • FFI::cast - Performs a C type cast
    • FFI::cdef - Creates a new FFI object
    • FFI::free - Releases an unmanaged data structure
    • FFI::isNull - Checks whether a FFI\CData is a null pointer
    • FFI::load - Loads C declarations from a C header file
    • FFI::memcmp - Compares memory areas
    • FFI::memcpy - Copies one memory area to another
    • FFI::memset - Fills a memory area
    • FFI::new - Creates a C data structure
    • FFI::scope - Instantiates an FFI object with C declarations parsed during preloading
    • FFI::sizeof - Gets the size of C data or types
    • FFI::string - Creates a PHP string from a memory area
    • FFI::type - Creates an FFI\CType object from a C declaration
    • FFI::typeof - Gets the FFI\CType of FFI\CData
    • FFI\CType::getAlignment - Description
    • FFI\CType::getArrayElementType - Description
    • FFI\CType::getArrayLength - Description
    • FFI\CType::getAttributes - Description
    • FFI\CType::getEnumKind - Description
    • FFI\CType::getFuncABI - Description
    • FFI\CType::getFuncParameterCount - Description
    • FFI\CType::getFuncParameterType - Description
    • FFI\CType::getFuncReturnType - Description
    • FFI\CType::getKind - Description
    • FFI\CType::getName - Description
    • FFI\CType::getPointerType - Description
    • FFI\CType::getSize - Description
    • FFI\CType::getStructFieldNames - Description
    • FFI\CType::getStructFieldOffset - Description
    • FFI\CType::getStructFieldType - Description
    • fflush - Força a liberação do buffer para um arquivo
    • fgetc - Lê um caractere do ponteiro de arquivo
    • fgetcsv - Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV
    • fgets - Lê uma linha de um ponteiro de arquivo
    • fgetss - Ler uma linha de um ponteiro de arquivo e retira as tags HTML
    • Fiber::getCurrent - Obtém a instância de Fiber sendo executada no momento
    • Fiber::getReturn - Obtém o valor retornado pela Fiber
    • Fiber::isRunning - Determina se a Fiber está em execução
    • Fiber::isStarted - Determina se uma Fiber foi iniciada
    • Fiber::isSuspended - Determina se uma Fiber está suspensa
    • Fiber::isTerminated - Determina se a Fiber terminou
    • Fiber::resume - Retoma a execução de uma Fiber com um valor
    • Fiber::start - Inicia execução de uma Fibra
    • Fiber::suspend - Suspende a execução da Fiber atual
    • Fiber::throw - Retoma a execução de uma Fiber com uma exceção
    • Fiber::__construct - Cria uma nova instância de Fiber
    • FiberError::__construct - Construtor para não permitir instanciação direta
    • file - Lê todo o arquivo para um array
    • file:// - Acessando o sistema de arquivos local
    • fileatime - Obtém o último horário de acesso do arquivo
    • filectime - Obtém o horário de modificação de inode do arquivo
    • filegroup - Lê o grupo do arquivo
    • fileinode - Lê o inode do arquivo
    • filemtime - Obtém o horário de modificação do arquivo
    • fileowner - Obtem o proprietário do arquivo
    • fileperms - Obtém permissões de arquivo
    • filesize - Obtém o tamanho do arquivo
    • FilesystemIterator::current - O arquivo atual
    • FilesystemIterator::getFlags - Obtem as opções de manipulação
    • FilesystemIterator::key - Recupera a chave para o arquivo atual
    • FilesystemIterator::next - Move para o próximo arquivo
    • FilesystemIterator::rewind - Retrocede para o início
    • FilesystemIterator::setFlags - Define opções de manipulação
    • FilesystemIterator::__construct - Constrói um novo iterador de sistema de arquivos
    • filetype - Lê o tipo do arquivo
    • file_exists - Verifica se um arquivo ou diretório existe
    • file_get_contents - Lê todo o conteúdo de um arquivo para uma string
    • file_put_contents - Escreve dados em um arquivo
    • FilterIterator::accept - Verifica se o elemento atual do iterador é aceitável
    • FilterIterator::current - Retorna o valor do elemento atual
    • FilterIterator::key - Retorna a chave do elemento atual
    • FilterIterator::next - Avança o iterador
    • FilterIterator::rewind - Recomeça o iterador
    • FilterIterator::valid - Verifica se o elemento atual é válido ou não
    • FilterIterator::__construct - Constrói um FilterIterator
    • filter_has_var - Verifica se uma variável de um especificado tipo existe
    • filter_id - Retorna o ID de filtro pertencente a um filtro nomeado
    • filter_input - Gets a specific external variable by name and optionally filters it
    • filter_input_array - Obtem variáveis externas e opcionalmente as filtra
    • filter_list - Retorna a lista de todos os filtros suportados
    • filter_var - Filters a variable with a specified filter
    • filter_var_array - Obtêm múltiplas variáveis e opcionalmente as filtra
    • finfo::buffer - Sinônimo de finfo_buffer()
    • finfo::file - Sinônimo de finfo_file()
    • finfo::set_flags - Sinônimo de finfo_set_flags()
    • finfo::__construct - Sinônimo de finfo_open
    • finfo_close - Fecha uma instância de finfo
    • finfo_open - Cria uma instância de finfo
    • floatval - Obtém o valor em ponto flutuante da variável
    • flock - Travamento consultivo portável de arquivo
    • floor - Arredonda frações para baixo
    • flush - Flush system output buffer
    • fmod - Retorna o resto (módulo) em ponto flutuante da divisão dos argumentos
    • fnmatch - Compara nome de arquivo com um padrão
    • fopen - Abre um arquivo ou URL
    • forward_static_call - Call a static method
    • forward_static_call_array - Call a static method and pass the arguments as array
    • fpassthru - Imprime todo os dados restantes de um ponteiro de arquivo
    • fpm_get_status - Returns the current FPM pool status
    • fprintf - Escreve uma string formatada para um fluxo
    • fputcsv - Formata a linha como CSV e a escreve em um ponteiro de arquivo
    • fputs - Sinônimo de fwrite
    • fread - Leitura de arquivo segura para binário
    • frenchtojd - Converte uma data do calendário Republicano Francês para uma contagem de Dias Julianos
    • fscanf - Interpreta a leitura de um arquivo de acordo com um formato
    • fseek - Procura (seeks) em um ponteiro de arquivo
    • fsockopen - Abre uma conexão socket de domínio Unix ou Internet
    • fstat - Lê informações sobre um arquivo usando um ponteiro de arquivo aberto
    • fsync - Sincroniza mudanças ao arquivo (incluindo metadados)
    • ftell - Retorna a posição atual do ponteiro de leitura/gravação do arquivo
    • ftok - Convert a pathname and a project identifier to a System V IPC key
    • ftp:// - Acessando URLs FTP(s)
    • ftp_alloc - Allocates space for a file to be uploaded
    • ftp_append - Append the contents of a file to another file on the FTP server
    • ftp_cdup - Muda para o diretório acima
    • ftp_chdir - Muda o diretório atual em um servidor FTP
    • ftp_chmod - Define as permissões de um arquivo via FTP
    • ftp_close - Fecha uma conexão FTP
    • ftp_connect - Opens an FTP connection
    • ftp_delete - Exclui um arquivo no servidor FTP
    • ftp_exec - Solicita a execução de um comando no servidor FTP
    • ftp_fget - Downloads a file from the FTP server and saves to an open file
    • ftp_fput - Uploads from an open file to the FTP server
    • ftp_get - Downloads a file from the FTP server
    • ftp_get_option - Obtém várias opções em tempo de execução da conexão FTP atual
    • ftp_login - Realiza o login em uma conexão FTP
    • ftp_mdtm - Retorna o horário da última modificação do arquivo informado
    • ftp_mkdir - Cria um diretório
    • ftp_mlsd - Returns a list of files in the given directory
    • ftp_nb_continue - Continua a receber/enviar um arquivo (sem bloquear)
    • ftp_nb_fget - Retrieves a file from the FTP server and writes it to an open file (non-blocking)
    • ftp_nb_fput - Stores a file from an open file to the FTP server (non-blocking)
    • ftp_nb_get - Retrieves a file from the FTP server and writes it to a local file (non-blocking)
    • ftp_nb_put - Stores a file on the FTP server (non-blocking)
    • ftp_nlist - Retorna uma lista de arquivos em um diretório
    • ftp_pasv - Liga ou desliga o modo passivo
    • ftp_put - Uploads a file to the FTP server
    • ftp_pwd - Retorna o nome do diretório atual
    • ftp_quit - Sinônimo de ftp_close
    • ftp_raw - Envia um comando arbritário a um servidor FTP
    • ftp_rawlist - Returns a detailed list of files in the given directory
    • ftp_rename - Renomeia um arquivo ou um diretório no servidor FTP
    • ftp_rmdir - Remove um diretório
    • ftp_set_option - Define opções diversas em tempo de execução
    • ftp_site - Sends a SITE command to the server
    • ftp_size - Retorna o tamanho do arquivo especificado
    • ftp_ssl_connect - Opens a Secure SSL-FTP connection
    • ftp_systype - Retorna o identificador de tipo de sistema do servidor FTP remoto
    • ftruncate - Trunca um arquivo a um tamanho especificado
    • function_exists - Retorna true se a função informada estiver definida
    • func_get_arg - Retorna um item de uma lista de argumentos
    • func_get_args - Returns an array comprising a function's argument list
    • func_num_args - Returns the number of arguments passed to the function
    • fwrite - Escrita binary-safe em arquivos
  • g
    • gc_collect_cycles - Forces collection of any existing garbage cycles
    • gc_disable - Deactivates the circular reference collector
    • gc_enable - Activates the circular reference collector
    • gc_enabled - Returns status of the circular reference collector
    • gc_mem_caches - Reclaims memory used by the Zend Engine memory manager
    • gc_status - Gets information about the garbage collector
    • gd_info - Obtém informações sobre a biblioteca GD instalada atualmente
    • GearmanClient::addOptions - Add client options
    • GearmanClient::addServer - Add a job server to the client
    • GearmanClient::addServers - Add a list of job servers to the client
    • GearmanClient::addTask - Add a task to be run in parallel
    • GearmanClient::addTaskBackground - Add a background task to be run in parallel
    • GearmanClient::addTaskHigh - Add a high priority task to run in parallel
    • GearmanClient::addTaskHighBackground - Add a high priority background task to be run in parallel
    • GearmanClient::addTaskLow - Add a low priority task to run in parallel
    • GearmanClient::addTaskLowBackground - Add a low priority background task to be run in parallel
    • GearmanClient::addTaskStatus - Add a task to get status
    • GearmanClient::clearCallbacks - Clear all task callback functions
    • GearmanClient::clone - Create a copy of a GearmanClient object
    • GearmanClient::context - Get the application context
    • GearmanClient::data - Get the application data (deprecated)
    • GearmanClient::do - Run a single task and return a result [deprecated]
    • GearmanClient::doBackground - Run a task in the background
    • GearmanClient::doHigh - Run a single high priority task
    • GearmanClient::doHighBackground - Run a high priority task in the background
    • GearmanClient::doJobHandle - Get the job handle for the running task
    • GearmanClient::doLow - Run a single low priority task
    • GearmanClient::doLowBackground - Run a low priority task in the background
    • GearmanClient::doNormal - Run a single task and return a result
    • GearmanClient::doStatus - Get the status for the running task
    • GearmanClient::echo - Send data to all job servers to see if they echo it back [deprecated]
    • GearmanClient::error - Returns an error string for the last error encountered
    • GearmanClient::getErrno - Get an errno value
    • GearmanClient::jobStatus - Get the status of a background job
    • GearmanClient::ping - Send data to all job servers to see if they echo it back
    • GearmanClient::removeOptions - Remove client options
    • GearmanClient::returnCode - Get the last Gearman return code
    • GearmanClient::runTasks - Run a list of tasks in parallel
    • GearmanClient::setClientCallback - Callback function when there is a data packet for a task (deprecated)
    • GearmanClient::setCompleteCallback - Set a function to be called on task completion
    • GearmanClient::setContext - Set application context
    • GearmanClient::setCreatedCallback - Set a callback for when a task is queued
    • GearmanClient::setData - Set application data (deprecated)
    • GearmanClient::setDataCallback - Callback function when there is a data packet for a task
    • GearmanClient::setExceptionCallback - Set a callback for worker exceptions
    • GearmanClient::setFailCallback - Set callback for job failure
    • GearmanClient::setOptions - Set client options
    • GearmanClient::setStatusCallback - Set a callback for collecting task status
    • GearmanClient::setTimeout - Set socket I/O activity timeout
    • GearmanClient::setWarningCallback - Set a callback for worker warnings
    • GearmanClient::setWorkloadCallback - Set a callback for accepting incremental data updates
    • GearmanClient::timeout - Get current socket I/O activity timeout value
    • GearmanClient::wait - Wait for I/O activity on all connections in a client
    • GearmanClient::__construct - Create a GearmanClient instance
    • GearmanJob::complete - Send the result and complete status (deprecated)
    • GearmanJob::data - Send data for a running job (deprecated)
    • GearmanJob::exception - Send exception for running job (deprecated)
    • GearmanJob::fail - Send fail status (deprecated)
    • GearmanJob::functionName - Get function name
    • GearmanJob::handle - Get the job handle
    • GearmanJob::returnCode - Get last return code
    • GearmanJob::sendComplete - Send the result and complete status
    • GearmanJob::sendData - Send data for a running job
    • GearmanJob::sendException - Send exception for running job (exception)
    • GearmanJob::sendFail - Send fail status
    • GearmanJob::sendStatus - Send status
    • GearmanJob::sendWarning - Send a warning
    • GearmanJob::setReturn - Set a return value
    • GearmanJob::status - Send status (deprecated)
    • GearmanJob::unique - Get the unique identifier
    • GearmanJob::warning - Send a warning (deprecated)
    • GearmanJob::workload - Get workload
    • GearmanJob::workloadSize - Get size of work load
    • GearmanJob::__construct - Create a GearmanJob instance
    • GearmanTask::create - Create a task (deprecated)
    • GearmanTask::data - Get data returned for a task
    • GearmanTask::dataSize - Get the size of returned data
    • GearmanTask::function - Get associated function name (deprecated)
    • GearmanTask::functionName - Get associated function name
    • GearmanTask::isKnown - Determine if task is known
    • GearmanTask::isRunning - Test whether the task is currently running
    • GearmanTask::jobHandle - Get the job handle
    • GearmanTask::recvData - Read work or result data into a buffer for a task
    • GearmanTask::returnCode - Get the last return code
    • GearmanTask::sendData - Send data for a task (deprecated)
    • GearmanTask::sendWorkload - Send data for a task
    • GearmanTask::taskDenominator - Get completion percentage denominator
    • GearmanTask::taskNumerator - Get completion percentage numerator
    • GearmanTask::unique - Get the unique identifier for a task
    • GearmanTask::uuid - Get the unique identifier for a task (deprecated)
    • GearmanTask::__construct - Create a GearmanTask instance
    • GearmanWorker::addFunction - Register and add callback function
    • GearmanWorker::addOptions - Add worker options
    • GearmanWorker::addServer - Add a job server
    • GearmanWorker::addServers - Add job servers
    • GearmanWorker::clone - Create a copy of the worker
    • GearmanWorker::echo - Test job server response
    • GearmanWorker::error - Get the last error encountered
    • GearmanWorker::getErrno - Get errno
    • GearmanWorker::options - Get worker options
    • GearmanWorker::register - Register a function with the job server
    • GearmanWorker::removeOptions - Remove worker options
    • GearmanWorker::returnCode - Get last Gearman return code
    • GearmanWorker::setId - Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers
    • GearmanWorker::setOptions - Set worker options
    • GearmanWorker::setTimeout - Set socket I/O activity timeout
    • GearmanWorker::timeout - Get socket I/O activity timeout
    • GearmanWorker::unregister - Unregister a function name with the job servers
    • GearmanWorker::unregisterAll - Unregister all function names with the job servers
    • GearmanWorker::wait - Wait for activity from one of the job servers
    • GearmanWorker::work - Wait for and perform jobs
    • GearmanWorker::__construct - Create a GearmanWorker instance
    • Gender\Gender::connect - Connect to an external name dictionary
    • Gender\Gender::country - Get textual country representation
    • Gender\Gender::get - Get gender of a name
    • Gender\Gender::isNick - Check if the name0 is an alias of the name1
    • Gender\Gender::similarNames - Get similar names
    • Gender\Gender::__construct - Construct the Gender object
    • Generator::current - Obtém o valor gerado
    • Generator::getReturn - Obtém o valor de retorno de um gerador
    • Generator::key - Obtém o chave gerada
    • Generator::next - Continua a execução do gerador
    • Generator::rewind - Reinicia o iterador
    • Generator::send - Envia um valor ao gerador
    • Generator::throw - Lança uma exceção no gerador
    • Generator::valid - Verifica se o gerador está ativo
    • Generator::__wakeup - Serializa o gerador (sempre falha)
    • geoip_asnum_by_name - Get the Autonomous System Numbers (ASN)
    • geoip_continent_code_by_name - Get the two letter continent code
    • geoip_country_code3_by_name - Get the three letter country code
    • geoip_country_code_by_name - Get the two letter country code
    • geoip_country_name_by_name - Get the full country name
    • geoip_database_info - Get GeoIP Database information
    • geoip_db_avail - Determine if GeoIP Database is available
    • geoip_db_filename - Returns the filename of the corresponding GeoIP Database
    • geoip_db_get_all_info - Returns detailed information about all GeoIP database types
    • geoip_domain_by_name - Get the second level domain name
    • geoip_id_by_name - Get the Internet connection type
    • geoip_isp_by_name - Get the Internet Service Provider (ISP) name
    • geoip_netspeedcell_by_name - Get the Internet connection speed
    • geoip_org_by_name - Get the organization name
    • geoip_record_by_name - Returns the detailed City information found in the GeoIP Database
    • geoip_region_by_name - Get the country code and region
    • geoip_region_name_by_code - Returns the region name for some country and region code combo
    • geoip_setup_custom_directory - Set a custom directory for the GeoIP database
    • geoip_time_zone_by_country_and_region - Returns the time zone for some country and region code combo
    • getallheaders - Obtém todos os cabeçalhos da requisição HTTP
    • getcwd - Obtém o diretório atual
    • getdate - Recupera informações de data/hora
    • getenv - Gets the value of a single or all environment variables
    • gethostbyaddr - Obtém nome do servidor de Internet correspondente ao endereço de IP fornecido
    • gethostbyname - Obtenha o endereço IPv4 correspondente a um determinado nome de host da Internet
    • gethostbynamel - Obtenha uma lista de endereços IPv4 correspondentes a um determinado nome de host da Internet
    • gethostname - Gets the host name
    • getimagesize - Obtém o tamanho de uma imagem
    • getimagesizefromstring - Obtém o tamanho de uma imagem a partir de uma string
    • getlastmod - Obtém o horário da última modificação na página
    • getmxrr - Get MX records corresponding to a given Internet host name
    • getmygid - Obtém o GID do proprietário do script PHP
    • getmyinode - Gets the inode of the current script
    • getmypid - Obtém o ID do processo PHP
    • getmyuid - Obtém o UID do proprietário do script PHP
    • getopt - Obtêm opções da linha de comando
    • getprotobyname - Get protocol number associated with protocol name
    • getprotobynumber - Get protocol name associated with protocol number
    • getrandmax - Show largest possible random value
    • getrusage - Gets the current resource usages
    • getservbyname - Get port number associated with an Internet service and protocol
    • getservbyport - Get Internet service which corresponds to port and protocol
    • getSession - Connect to a MySQL server
    • gettext - Lookup a message in the current domain
    • gettimeofday - Obtém o horário atual
    • gettype - Obtém o tipo de uma variável
    • get_browser - Diz o que o navegador do usuário é capaz fazer
    • get_called_class - O nome da classe da qual o método estático foi chamado
    • get_cfg_var - Gets the value of a PHP configuration option
    • get_class - Retorna o nome da classe de um objeto
    • get_class_methods - Obtém o nome dos métodos da classe
    • get_class_vars - Obtém as propriedades padrão da classe
    • get_current_user - Gets the name of the owner of the current PHP script
    • get_debug_type - Obtém o nome do tipo de uma variável de forma adequada a depuração
    • get_declared_classes - Retorna um array com os nomes das classes definidas
    • get_declared_interfaces - Retorna um array com todas as interfaces declaradas
    • get_declared_traits - Retorna um array de todas as Traits declaradas
    • get_defined_constants - Returns an associative array with the names of all the constants and their values
    • get_defined_functions - Retorna um array com todas as funções definidas
    • get_defined_vars - Retorna um array com todas variáveis definidas
    • get_extension_funcs - Retorna um array com os nomes das funções de um módulo
    • get_headers - Retorna todos os cabeçalhos enviados pelo servidor em resposta a uma requisição HTTP
    • get_html_translation_table - Returns the translation table used by htmlspecialchars and htmlentities
    • get_included_files - Returns an array with the names of included or required files
    • get_include_path - Obtém a opção de configuração include_path atual
    • get_loaded_extensions - Returns an array with the names of all modules compiled and loaded
    • get_magic_quotes_gpc - Obtém a configuração atual de magic_quotes_gpc
    • get_magic_quotes_runtime - Obtém a configuração ativa para magic_quotes_runtime
    • get_mangled_object_vars - Retorna um array de nomes únicos e valores das propriedades do objeto
    • get_meta_tags - Extracts all meta tag content attributes from a file and returns an array
    • get_object_vars - Obtém as propriedades de um objeto
    • get_parent_class - Obtém o nome da classe pai para o objeto ou classe
    • get_required_files - Sinônimo de get_included_files
    • get_resources - Returns active resources
    • get_resource_id - Retorna um idenficador inteiro para o recurso informado
    • get_resource_type - Retorna o tipo de recurso
    • glob - Acha caminhos que combinam com um padrão
    • glob:// - Encontra caminhos que correspondem a um padrão
    • GlobIterator::count - Obtém o número de diretórios e arquivos
    • GlobIterator::__construct - Constrói um diretório usando glob
    • Gmagick::addimage - Adds new image to Gmagick object image list
    • Gmagick::addnoiseimage - Adds random noise to the image
    • Gmagick::annotateimage - Annotates an image with text
    • Gmagick::blurimage - Adds blur filter to image
    • Gmagick::borderimage - Surrounds the image with a border
    • Gmagick::charcoalimage - Simulates a charcoal drawing
    • Gmagick::chopimage - Removes a region of an image and trims
    • Gmagick::clear - Clears all resources associated to Gmagick object
    • Gmagick::commentimage - Adds a comment to your image
    • Gmagick::compositeimage - Composite one image onto another
    • Gmagick::cropimage - Extracts a region of the image
    • Gmagick::cropthumbnailimage - Creates a crop thumbnail
    • Gmagick::current - The current purpose
    • Gmagick::cyclecolormapimage - Displaces an image's colormap
    • Gmagick::deconstructimages - Returns certain pixel differences between images
    • Gmagick::despeckleimage - The despeckleimage purpose
    • Gmagick::destroy - The destroy purpose
    • Gmagick::drawimage - Renders the GmagickDraw object on the current image
    • Gmagick::edgeimage - Enhance edges within the image
    • Gmagick::embossimage - Returns a grayscale image with a three-dimensional effect
    • Gmagick::enhanceimage - Improves the quality of a noisy image
    • Gmagick::equalizeimage - Equalizes the image histogram
    • Gmagick::flipimage - Creates a vertical mirror image
    • Gmagick::flopimage - Creates a horizontal mirror image
    • Gmagick::frameimage - Adds a simulated three-dimensional border
    • Gmagick::gammaimage - Gamma-corrects an image
    • Gmagick::getcopyright - Returns the GraphicsMagick API copyright as a string
    • Gmagick::getfilename - The filename associated with an image sequence
    • Gmagick::getimagebackgroundcolor - Returns the image background color
    • Gmagick::getimageblueprimary - Returns the chromaticy blue primary point
    • Gmagick::getimagebordercolor - Returns the image border color
    • Gmagick::getimagechanneldepth - Gets the depth for a particular image channel
    • Gmagick::getimagecolors - Returns the color of the specified colormap index
    • Gmagick::getimagecolorspace - Gets the image colorspace
    • Gmagick::getimagecompose - Returns the composite operator associated with the image
    • Gmagick::getimagedelay - Gets the image delay
    • Gmagick::getimagedepth - Gets the depth of the image
    • Gmagick::getimagedispose - Gets the image disposal method
    • Gmagick::getimageextrema - Gets the extrema for the image
    • Gmagick::getimagefilename - Returns the filename of a particular image in a sequence
    • Gmagick::getimageformat - Returns the format of a particular image in a sequence
    • Gmagick::getimagegamma - Gets the image gamma
    • Gmagick::getimagegreenprimary - Returns the chromaticy green primary point
    • Gmagick::getimageheight - Returns the image height
    • Gmagick::getimagehistogram - Gets the image histogram
    • Gmagick::getimageindex - Gets the index of the current active image
    • Gmagick::getimageinterlacescheme - Gets the image interlace scheme
    • Gmagick::getimageiterations - Gets the image iterations
    • Gmagick::getimagematte - Check if the image has a matte channel
    • Gmagick::getimagemattecolor - Returns the image matte color
    • Gmagick::getimageprofile - Returns the named image profile
    • Gmagick::getimageredprimary - Returns the chromaticity red primary point
    • Gmagick::getimagerenderingintent - Gets the image rendering intent
    • Gmagick::getimageresolution - Gets the image X and Y resolution
    • Gmagick::getimagescene - Gets the image scene
    • Gmagick::getimagesignature - Generates an SHA-256 message digest
    • Gmagick::getimagetype - Gets the potential image type
    • Gmagick::getimageunits - Gets the image units of resolution
    • Gmagick::getimagewhitepoint - Returns the chromaticity white point
    • Gmagick::getimagewidth - Returns the width of the image
    • Gmagick::getpackagename - Returns the GraphicsMagick package name
    • Gmagick::getquantumdepth - Returns the Gmagick quantum depth as a string
    • Gmagick::getreleasedate - Returns the GraphicsMagick release date as a string
    • Gmagick::getsamplingfactors - Gets the horizontal and vertical sampling factor
    • Gmagick::getsize - Returns the size associated with the Gmagick object
    • Gmagick::getversion - Returns the GraphicsMagick API version
    • Gmagick::hasnextimage - Checks if the object has more images
    • Gmagick::haspreviousimage - Checks if the object has a previous image
    • Gmagick::implodeimage - Creates a new image as a copy
    • Gmagick::labelimage - Adds a label to an image
    • Gmagick::levelimage - Adjusts the levels of an image
    • Gmagick::magnifyimage - Scales an image proportionally 2x
    • Gmagick::mapimage - Replaces the colors of an image with the closest color from a reference image
    • Gmagick::medianfilterimage - Applies a digital filter
    • Gmagick::minifyimage - Scales an image proportionally to half its size
    • Gmagick::modulateimage - Control the brightness, saturation, and hue
    • Gmagick::motionblurimage - Simulates motion blur
    • Gmagick::newimage - Creates a new image
    • Gmagick::nextimage - Moves to the next image
    • Gmagick::normalizeimage - Enhances the contrast of a color image
    • Gmagick::oilpaintimage - Simulates an oil painting
    • Gmagick::previousimage - Move to the previous image in the object
    • Gmagick::profileimage - Adds or removes a profile from an image
    • Gmagick::quantizeimage - Analyzes the colors within a reference image
    • Gmagick::quantizeimages - The quantizeimages purpose
    • Gmagick::queryfontmetrics - Returns an array representing the font metrics
    • Gmagick::queryfonts - Returns the configured fonts
    • Gmagick::queryformats - Returns formats supported by Gmagick
    • Gmagick::radialblurimage - Radial blurs an image
    • Gmagick::raiseimage - Creates a simulated 3d button-like effect
    • Gmagick::read - Reads image from filename
    • Gmagick::readimage - Reads image from filename
    • Gmagick::readimageblob - Reads image from a binary string
    • Gmagick::readimagefile - The readimagefile purpose
    • Gmagick::reducenoiseimage - Smooths the contours of an image
    • Gmagick::removeimage - Removes an image from the image list
    • Gmagick::removeimageprofile - Removes the named image profile and returns it
    • Gmagick::resampleimage - Resample image to desired resolution
    • Gmagick::resizeimage - Scales an image
    • Gmagick::rollimage - Offsets an image
    • Gmagick::rotateimage - Rotates an image
    • Gmagick::scaleimage - Scales the size of an image
    • Gmagick::separateimagechannel - Separates a channel from the image
    • Gmagick::setCompressionQuality - Sets the object's default compression quality
    • Gmagick::setfilename - Sets the filename before you read or write the image
    • Gmagick::setimagebackgroundcolor - Sets the image background color
    • Gmagick::setimageblueprimary - Sets the image chromaticity blue primary point
    • Gmagick::setimagebordercolor - Sets the image border color
    • Gmagick::setimagechanneldepth - Sets the depth of a particular image channel
    • Gmagick::setimagecolorspace - Sets the image colorspace
    • Gmagick::setimagecompose - Sets the image composite operator
    • Gmagick::setimagedelay - Sets the image delay
    • Gmagick::setimagedepth - Sets the image depth
    • Gmagick::setimagedispose - Sets the image disposal method
    • Gmagick::setimagefilename - Sets the filename of a particular image in a sequence
    • Gmagick::setimageformat - Sets the format of a particular image
    • Gmagick::setimagegamma - Sets the image gamma
    • Gmagick::setimagegreenprimary - Sets the image chromaticity green primary point
    • Gmagick::setimageindex - Set the iterator to the position in the image list specified with the index parameter
    • Gmagick::setimageinterlacescheme - Sets the interlace scheme of the image
    • Gmagick::setimageiterations - Sets the image iterations
    • Gmagick::setimageprofile - Adds a named profile to the Gmagick object
    • Gmagick::setimageredprimary - Sets the image chromaticity red primary point
    • Gmagick::setimagerenderingintent - Sets the image rendering intent
    • Gmagick::setimageresolution - Sets the image resolution
    • Gmagick::setimagescene - Sets the image scene
    • Gmagick::setimagetype - Sets the image type
    • Gmagick::setimageunits - Sets the image units of resolution
    • Gmagick::setimagewhitepoint - Sets the image chromaticity white point
    • Gmagick::setsamplingfactors - Sets the image sampling factors
    • Gmagick::setsize - Sets the size of the Gmagick object
    • Gmagick::shearimage - Creating a parallelogram
    • Gmagick::solarizeimage - Applies a solarizing effect to the image
    • Gmagick::spreadimage - Randomly displaces each pixel in a block
    • Gmagick::stripimage - Strips an image of all profiles and comments
    • Gmagick::swirlimage - Swirls the pixels about the center of the image
    • Gmagick::thumbnailimage - Changes the size of an image
    • Gmagick::trimimage - Remove edges from the image
    • Gmagick::write - Sinônimo de Gmagick::writeimage
    • Gmagick::writeimage - Writes an image to the specified filename
    • Gmagick::__construct - The Gmagick constructor
    • GmagickDraw::annotate - Draws text on the image
    • GmagickDraw::arc - Draws an arc
    • GmagickDraw::bezier - Draws a bezier curve
    • GmagickDraw::ellipse - Draws an ellipse on the image
    • GmagickDraw::getfillcolor - Returns the fill color
    • GmagickDraw::getfillopacity - Returns the opacity used when drawing
    • GmagickDraw::getfont - Returns the font
    • GmagickDraw::getfontsize - Returns the font pointsize
    • GmagickDraw::getfontstyle - Returns the font style
    • GmagickDraw::getfontweight - Returns the font weight
    • GmagickDraw::getstrokecolor - Returns the color used for stroking object outlines
    • GmagickDraw::getstrokeopacity - Returns the opacity of stroked object outlines
    • GmagickDraw::getstrokewidth - Returns the width of the stroke used to draw object outlines
    • GmagickDraw::gettextdecoration - Returns the text decoration
    • GmagickDraw::gettextencoding - Returns the code set used for text annotations
    • GmagickDraw::line - Draws a line
    • GmagickDraw::point - Draws a point
    • GmagickDraw::polygon - Draws a polygon
    • GmagickDraw::polyline - Draws a polyline
    • GmagickDraw::rectangle - Draws a rectangle
    • GmagickDraw::rotate - Applies the specified rotation to the current coordinate space
    • GmagickDraw::roundrectangle - Draws a rounded rectangle
    • GmagickDraw::scale - Adjusts the scaling factor
    • GmagickDraw::setfillcolor - Sets the fill color to be used for drawing filled objects
    • GmagickDraw::setfillopacity - The setfillopacity purpose
    • GmagickDraw::setfont - Sets the fully-specified font to use when annotating with text
    • GmagickDraw::setfontsize - Sets the font pointsize to use when annotating with text
    • GmagickDraw::setfontstyle - Sets the font style to use when annotating with text
    • GmagickDraw::setfontweight - Sets the font weight
    • GmagickDraw::setstrokecolor - Sets the color used for stroking object outlines
    • GmagickDraw::setstrokeopacity - Specifies the opacity of stroked object outlines
    • GmagickDraw::setstrokewidth - Sets the width of the stroke used to draw object outlines
    • GmagickDraw::settextdecoration - Specifies a decoration
    • GmagickDraw::settextencoding - Specifies the text code set
    • GmagickPixel::getcolor - Returns the color
    • GmagickPixel::getcolorcount - Returns the color count associated with this color
    • GmagickPixel::getcolorvalue - Gets the normalized value of the provided color channel
    • GmagickPixel::setcolor - Sets the color
    • GmagickPixel::setcolorvalue - Sets the normalized value of one of the channels
    • GmagickPixel::__construct - The GmagickPixel constructor
    • gmdate - Formata uma data/hora GMT/CUT
    • gmmktime - Obtém um timestamp Unix para uma data GMT
    • GMP::__construct - Create GMP number
    • GMP::__serialize - Serializes the GMP object
    • GMP::__unserialize - Deserializes the data parameter into a GMP object
    • gmp_abs - Valor absoluto
    • gmp_add - Adiciona números
    • gmp_and - Operação binária AND
    • gmp_binomial - Calculates binomial coefficient
    • gmp_clrbit - Clear bit
    • gmp_cmp - Compara números
    • gmp_com - Calcula o complemento de um
    • gmp_div - Sinônimo de gmp_div_q
    • gmp_divexact - Divisão exata de números
    • 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_export - Export to a binary string
    • gmp_fact - Factorial
    • gmp_gcd - Calcula o MDC
    • gmp_gcdext - Calcula MDC e multiplicadores
    • gmp_hamdist - Distância de Hamming
    • gmp_import - Import from a binary string
    • gmp_init - Create GMP number
    • gmp_intval - Converte um número GMP para um inteiro
    • gmp_invert - Inverse by modulo
    • gmp_jacobi - Símbolo de Jacobi
    • gmp_kronecker - Kronecker symbol
    • gmp_lcm - Calculate LCM
    • gmp_legendre - Símbolo de Legendre
    • gmp_mod - Operação Módulo
    • gmp_mul - Multiplica números
    • gmp_neg - Negativa o número
    • gmp_nextprime - Encontra o próximo número primo
    • gmp_or - Operação binária OR
    • gmp_perfect_power - Perfect power check
    • gmp_perfect_square - Perfect square check
    • gmp_popcount - Contagem de população
    • gmp_pow - Elevar o número a uma potência
    • gmp_powm - Eleva um número a uma potência com módulo
    • gmp_prob_prime - Check if number is "probably prime"
    • gmp_random - Random number
    • gmp_random_bits - Random number
    • gmp_random_range - Get a uniformly selected integer
    • gmp_random_seed - Sets the RNG seed
    • gmp_root - Take the integer part of nth root
    • gmp_rootrem - Take the integer part and remainder of nth root
    • gmp_scan0 - Scan for 0
    • gmp_scan1 - Scan for 1
    • gmp_setbit - Set bit
    • gmp_sign - Sinal do número
    • gmp_sqrt - Calcula a raiz quadrada
    • gmp_sqrtrem - Raiz quadrada com resto
    • gmp_strval - Converte um número GMP para uma string
    • gmp_sub - Subtrai números
    • gmp_testbit - Tests if a bit is set
    • gmp_xor - Operação binária XOR
    • gmstrftime - Formata uma data/hora GMT/UTC de acordo com as configurações de localidade
    • gnupg_adddecryptkey - Add a key for decryption
    • gnupg_addencryptkey - Add a key for encryption
    • gnupg_addsignkey - Add a key for signing
    • gnupg_cleardecryptkeys - Removes all keys which were set for decryption before
    • gnupg_clearencryptkeys - Removes all keys which were set for encryption before
    • gnupg_clearsignkeys - Removes all keys which were set for signing before
    • gnupg_decrypt - Decrypts a given text
    • gnupg_decryptverify - Decrypts and verifies a given text
    • gnupg_deletekey - Delete a key from the keyring
    • gnupg_encrypt - Encrypts a given text
    • gnupg_encryptsign - Encrypts and signs a given text
    • gnupg_export - Exports a key
    • gnupg_getengineinfo - Returns the engine info
    • gnupg_geterror - Returns the errortext, if a function fails
    • gnupg_geterrorinfo - Returns the error info
    • gnupg_getprotocol - Returns the currently active protocol for all operations
    • gnupg_gettrustlist - Search the trust items
    • gnupg_import - Imports a key
    • gnupg_init - Initialize a connection
    • gnupg_keyinfo - Returns an array with information about all keys that matches the given pattern
    • gnupg_listsignatures - List key signatures
    • gnupg_setarmor - Toggle armored output
    • gnupg_seterrormode - Sets the mode for error_reporting
    • gnupg_setsignmode - Sets the mode for signing
    • gnupg_sign - Signs a given text
    • gnupg_verify - Verifies a signed text
    • grapheme_extract - Extrai uma sequência de grupos padrão de grafemas de um buffer de texto em UTF-8
    • grapheme_stripos - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string não sensível a maiúsculas/minúsculas
    • grapheme_stristr - Retorna parte de uma string a partir da primeira ocorrência de outra string (insensível a maiúsculas/minúsculas) até o final
    • grapheme_strlen - Obtém o comprimento de uma string em unidade de grafema
    • grapheme_strpos - Encontra a posição (em unidades de grafema) da primeira ocorrência de uma string
    • grapheme_strripos - Encontra a posição (em unidades de grafema) da última ocorrência de uma string (insensível a maiúsculas/minúsculas)
    • grapheme_strrpos - Encontra a posição (em unidades de grafema) da última ocorrência de uma string
    • grapheme_strstr - Retorna parte de uma string a partir da primeira ocorrência de outra string até o final
    • grapheme_substr - Retorna parte de uma string
    • gregoriantojd - Converte uma data gregoriana para o "Julian Day Count"
    • gzclose - Fecha um ponteiro para um arquivo-gz
    • gzcompress - Comprime uma string
    • gzdecode - Decodifica uma string comprimida usando o gzip
    • gzdeflate - Desinfla uma string
    • gzencode - Cria uma string comprimida no formato gzip
    • gzeof - Testar o EOF em um ponteiro de arquivo gz
    • gzfile - Lê todo o arquivo gz em um array
    • gzgetc - Obtém caractere de um ponteiro de arquivo gz
    • gzgets - Obtém uma linha de um ponteiro de arquivo
    • gzgetss - Obtém linha de um ponteiro de arquivo gz e remover tags HTML
    • gzinflate - Descomprime uma string comprimida
    • gzopen - Abre arquivo gz
    • gzpassthru - Escreve na saída todos os dados restantes em um ponteiro de arquivo gz
    • gzputs - Sinônimo de gzwrite
    • gzread - Leitura de arquivo gz binária segura
    • gzrewind - Retorna ao início a posição de um ponteiro para um arquivo-gz
    • gzseek - Busca em um ponteiro de arquivo gz
    • gztell - Indica a posição de leitura/gravação em um ponteiro para arquivo-gz
    • gzuncompress - Descomprime uma string comprimida
    • gzwrite - Escrita segura para binário em arquivo-gz
  • h
    • hash - Generate a hash value (message digest)
    • HashContext::__construct - Private constructor to disallow direct instantiation
    • HashContext::__serialize - Serializes the HashContext object
    • HashContext::__unserialize - Deserializes the data parameter into a HashContext object
    • hash_algos - Return a list of registered hashing algorithms
    • hash_copy - Copy hashing context
    • hash_equals - Timing attack safe string comparison
    • hash_file - Generate a hash value using the contents of a given file
    • hash_final - Finalize an incremental hash and return resulting digest
    • hash_hkdf - Generate a HKDF key derivation of a supplied key input
    • hash_hmac - Generate a keyed hash value using the HMAC method
    • hash_hmac_algos - Return a list of registered hashing algorithms suitable for hash_hmac
    • hash_hmac_file - Generate a keyed hash value using the HMAC method and the contents of a given file
    • hash_init - Initialize an incremental hashing context
    • hash_pbkdf2 - Generate a PBKDF2 key derivation of a supplied password
    • hash_update - Pump data into an active hashing context
    • hash_update_file - Pump data into an active hashing context from a file
    • hash_update_stream - Pump data into an active hashing context from an open stream
    • header - Send a raw HTTP header
    • headers_list - Retorna uma lista de cabeçalhos de resposta enviados (ou prontos para enviar)
    • headers_sent - Checks if or where headers have been sent
    • header_register_callback - Call a header function
    • header_remove - Remove cabeçalhos definidos anteriormente
    • hebrev - Convert logical Hebrew text to visual text
    • hebrevc - Convert logical Hebrew text to visual text with newline conversion
    • hex2bin - Decodifica uma string binária codificada em hexadecimal
    • hexdec - Hexadecimal para decimal
    • highlight_file - Destaca a sintaxe de um arquivo
    • highlight_string - Destaque de sintaxe de uma string
    • hrtime - Obtém o tempo de alta resolução do sistema
    • HRTime\PerformanceCounter::getFrequency - Timer frequency in ticks per second
    • HRTime\PerformanceCounter::getTicks - Current ticks from the system
    • HRTime\PerformanceCounter::getTicksSince - Ticks elapsed since the given value
    • HRTime\StopWatch::getElapsedTicks - Get elapsed ticks for all intervals
    • HRTime\StopWatch::getElapsedTime - Get elapsed time for all intervals
    • HRTime\StopWatch::getLastElapsedTicks - Get elapsed ticks for the last interval
    • HRTime\StopWatch::getLastElapsedTime - Get elapsed time for the last interval
    • HRTime\StopWatch::isRunning - Whether the measurement is running
    • HRTime\StopWatch::start - Start time measurement
    • HRTime\StopWatch::stop - Stop time measurement
    • htmlentities - Convert all applicable characters to HTML entities
    • htmlspecialchars - Convert special characters to HTML entities
    • htmlspecialchars_decode - Convert special HTML entities back to characters
    • html_entity_decode - Convert HTML entities to their corresponding characters
    • http:// - Acessando URLs HTTP(s)
    • http_build_query - Gera a string de consulta (query) em formato URL
    • http_response_code - Get or Set the HTTP response code
    • hypot - Calcula o comprimento da hipotenusa de triângulo retângulo
  • i
    • ibase_add_user - Adiciona um usuário a um banco de dados seguro
    • ibase_affected_rows - Retorna o número de linhas que foram afetados pela consulta anterior
    • ibase_backup - Initiates a backup task in the service manager and returns immediately
    • ibase_blob_add - Adiciona dados em um blob recém criado
    • 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 - Retorna uma quantidade especificada de bytes de dados de um blob aberto
    • ibase_blob_import - Cria um blob, copia um arquivo para ele e o fecha
    • ibase_blob_info - Retorna o tamanho do blob e outras informações úteis
    • ibase_blob_open - Abre um blob para obter partes de dados
    • ibase_close - Close a connection to an InterBase database
    • ibase_commit - Commit a transaction
    • ibase_commit_ret - Commit a transaction without closing it
    • ibase_connect - Abre uma conexão com um banco de dados
    • ibase_db_info - Request statistics about a database
    • ibase_delete_user - Exclui um usuário de um banco de dados seguro
    • ibase_drop_db - Drops a database
    • ibase_errcode - Return an error code
    • ibase_errmsg - Return error messages
    • ibase_execute - Executa uma consulta preparada anteriormente
    • 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 - Fetch a row from an InterBase database
    • ibase_field_info - Obtém informação sobre um campo
    • ibase_free_event_handler - Cancela um manipulador de eventos registrado
    • ibase_free_query - Libera a memória alocada para uma consulta preparada
    • ibase_free_result - Libera um conjunto de resultados
    • ibase_gen_id - Increments the named generator and returns its new value
    • ibase_maintain_db - Execute a maintenance command on the database server
    • ibase_modify_user - Modifica um usuário para um banco de dados seguro
    • ibase_name_result - Define um nome para um conjunto de resultados
    • ibase_num_fields - Obtém o número de campos em um conjunto de resultados
    • ibase_num_params - Retorna o número de parâmetros em uma consulta preparada
    • ibase_param_info - Retorna informação sobre um parâmetro em uma consulta preparada
    • ibase_pconnect - Open a persistent connection to an InterBase database
    • ibase_prepare - Prepara uma consulta para ligação de parâmetros e execução posteriores
    • ibase_query - Executa uma consulta em um banco de dados InterBase
    • ibase_restore - Initiates a restore task in the service manager and returns immediately
    • ibase_rollback - Roll back a transaction
    • ibase_rollback_ret - Roll back a transaction without closing it
    • ibase_server_info - Request information about a database server
    • ibase_service_attach - Connect to the service manager
    • ibase_service_detach - Disconnect from the service manager
    • ibase_set_event_handler - Register a callback function to be called when events are posted
    • ibase_trans - Begin a transaction
    • ibase_wait_event - Espera por um evento ser postado pelo banco de dados
    • iconv - Converte uma string de uma codificação de caracteres para outra
    • iconv_get_encoding - Recuperar variáveis de configuração internas da extensão iconv
    • iconv_mime_decode - Decodifica um campo de cabeçalho MIME
    • iconv_mime_decode_headers - Decodifica vários campos de cabeçalho MIME de uma só vez
    • iconv_mime_encode - Compõe um campo de cabeçalho MIME
    • iconv_set_encoding - Define a configuração atual para conversão de codificação de caracteres
    • iconv_strlen - Retorna a contagem de caracteres da string
    • iconv_strpos - Localiza a posição da primeira ocorrência de um caractere em uma string
    • iconv_strrpos - Localiza a última ocorrência de um caractere em uma string
    • iconv_substr - Corta parte de uma string
    • idate - Formata uma parte de uma hora/data local como um inteiro
    • idn_to_ascii - Converte nome de domínio para a forma ASCII IDNA
    • idn_to_utf8 - Converte nome de domínio de ASCII IDNA para Unicode
    • igbinary_serialize - Generates a compact, storable binary representation of a value
    • igbinary_unserialize - Creates a PHP value from a stored representation from igbinary_serialize
    • ignore_user_abort - Define se uma desconexão de cliente deve abortar execução de script
    • image2wbmp - Envia a imagem para o navegador ou para um arquivo
    • imageaffine - Retorna uma imagem contendo a imagem fonte com transformação afim, usando uma área de recorte opcional
    • imageaffinematrixconcat - Concatena duas matrizes de transformação afim
    • imageaffinematrixget - Obtém uma matriz de transformação afim
    • imagealphablending - Define o modo de combinação para uma imagem
    • imageantialias - Define se as funções de suavização de serrilhado devem ser usadas ou não
    • imagearc - Desenha um arco
    • imageavif - Envia a imagem para o navegador ou para um arquivo
    • imagebmp - Mostra ou grava uma imagem BMP
    • imagechar - Desenha um caractere horizontalmente
    • imagecharup - Desenha um caractere verticalmente
    • imagecolorallocate - Aloca uma cor para uma imagem
    • imagecolorallocatealpha - Aloca uma cor para uma imagem
    • imagecolorat - Obtém o índica da cor de um pixel
    • imagecolorclosest - Obtém o índice da cor mais próxima à especificada
    • imagecolorclosestalpha - Obtém o índice da cor mais próxima à especificada (incluindo alfa)
    • imagecolorclosesthwb - Obtém o índice da cor que tem a matiz, brancura e negritude mais próximas de uma cor informada
    • imagecolordeallocate - Desaloca uma cor de uma imagem
    • imagecolorexact - Obtém o índice da cor especificada
    • imagecolorexactalpha - Obtém o índice da cor e alfa especificados
    • imagecolormatch - Faz com que as cores da versão em paleta da imagem fiquem mais próximas da versão em cores verdadeiras
    • imagecolorresolve - Obtém o índice da cor especificada ou a alternativa mais próxima
    • imagecolorresolvealpha - Obtém o índice da cor + alfa especificados ou a alternativa mais próxima
    • imagecolorset - Define a cor para o índice da paleta especificado
    • imagecolorsforindex - Obtém as cores para um índice
    • imagecolorstotal - Obtém o número de cores em uma paleta de imagem
    • imagecolortransparent - Define uma cor como transparente
    • imageconvolution - Aplica uma matriz de convolução 3x3, usando coeficiente e deslocamento
    • imagecopy - Copiar uma parte de uma imagem
    • imagecopymerge - Copia e funde parte de uma imagem
    • imagecopymergegray - Copia e funde parte de uma imagem com escala de cinza
    • imagecopyresampled - Copia e redimensiona parte de uma imagem com reamostragem
    • imagecopyresized - Copia e redimensiona parte de uma imagem
    • imagecreate - Crie uma nova imagem baseada em paleta
    • imagecreatefromavif - Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefrombmp - Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromgd - Cria uma nova imagem a partir de um arquivo GD ou URL
    • imagecreatefromgd2 - Cria uma nova imagem a partir de um arquivo GD2 ou URL
    • imagecreatefromgd2part - Cria uma nova imagem a partir de uma parte de um arquivo GD2 ou URL
    • imagecreatefromgif - Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromjpeg - Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefrompng - Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromstring - Cria uma nova imagem a partir de um fluxo de imagem na string
    • imagecreatefromtga - Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromwbmp - Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromwebp - Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromxbm - Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatefromxpm - Cria uma nova imagem a partir de um arquivo ou URL
    • imagecreatetruecolor - Cria uma nova imagem em cores verdadeiras
    • imagecrop - Recorta uma imagem no retângulo informado
    • imagecropauto - Recorta uma imagem automaticamente usando um dos modos disponíveis
    • imagedashedline - Desenha uma linha tracejada
    • imagedestroy - Destruir uma imagem
    • imageellipse - Desenha uma elipse
    • imagefill - Preenchimento
    • imagefilledarc - Desenha um arco parcial preenchido
    • imagefilledellipse - Desenha uma elipse preenchida
    • imagefilledpolygon - Desenha um polígono preenchido
    • imagefilledrectangle - Desenha um retângulo preenchido
    • imagefilltoborder - Preenche até encontrar uma cor especificada
    • imagefilter - Aplica um filtro a uma imagem
    • imageflip - Vira uma imagem usando um modo especificado
    • imagefontheight - Obtém a altura da fonte
    • imagefontwidth - Obtém a largura da fonte
    • imageftbbox - Fornece a caixa limite de um texto usando fontes via freetype2
    • imagefttext - Escreve texto em uma imagem usando fontes FreeType 2
    • imagegammacorrect - Aplica uma correção de gama a uma imagem GD
    • imagegd - Envia uma imagem GD para o navegador ou para um arquivo
    • imagegd2 - Envia uma imagem GD2 ao navegador ou a um arquivo
    • imagegetclip - Obtém o retângulo de recorte
    • imagegetinterpolation - Obtém o método de interpolação
    • imagegif - Envia a imagem para o navegador ou para um arquivo
    • imagegrabscreen - Captura toda a tela
    • imagegrabwindow - Captura uma janela
    • imageinterlace - Habilita ou desabilita entrelace
    • imageistruecolor - Descobre se uma imagem está em cores verdadeiras
    • imagejpeg - Envia a imagem para o navegador ou para um arquivo
    • imagelayereffect - Define a opção de mesclagem alfa para usar efeitos de camada
    • imageline - Desenha uma linha
    • imageloadfont - Carrega uma nova fonte
    • imageopenpolygon - Desenha um polígono aberto
    • imagepalettecopy - Copia a paleta de uma imagem para outra
    • imagepalettetotruecolor - Converte uma imagem baseada em paleta para cores verdadeiras
    • imagepng - Envia uma imagem PNG para o navegador ou arquivo
    • imagepolygon - Desenha um polígono
    • imagerectangle - Desenha um retângulo
    • imageresolution - Obtém ou define a resolução da imagem
    • imagerotate - Rotaciona uma imagem em um ângulo informado
    • imagesavealpha - Informa se a informação de canal alfa deve ser retida ao gravar imagens
    • imagescale - Muda a escala de uma imagem usando largura e altura informadas
    • imagesetbrush - Define o tipo de pincel para desenho de linhas
    • imagesetclip - Define o retângulo de recorte
    • imagesetinterpolation - Define o método de interpolação
    • imagesetpixel - Desenha um pixel
    • imagesetstyle - Define o estilo para desenho de linhas
    • imagesetthickness - Define a espessura para desenho de linhas
    • imagesettile - Define a imagem de ladrilho para preenchimento
    • imagestring - Desenha uma string na horizontal
    • imagestringup - Desenha uma string na vertical
    • imagesx - Obtém a largura da imagem
    • imagesy - Obtém a altura da imagem
    • imagetruecolortopalette - Converte uma imagem em cores verdadeiras em uma imagem de paleta
    • imagettfbbox - Fornece a os limites retangulares de um texto usando fontes TrueType
    • imagettftext - Escreve texto na imagem usando fontes TrueType
    • imagetypes - Retorna os tipos de imagens suportados pela instalação do PHP
    • imagewbmp - Envia a imagem para o navegador ou para um arquivo
    • imagewebp - Mostra uma imagem WebP no navegador ou grava em arquivo
    • imagexbm - Mostra uma imagem XBM em um navegador ou grava em arquivo
    • image_type_to_extension - Obtém a extensão de arquivo para o tipo da imagem
    • image_type_to_mime_type - Obtém o Mime-Type para o tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail e exif_imagetype
    • Imagick::adaptiveBlurImage - Adds adaptive blur filter to image
    • Imagick::adaptiveResizeImage - Adaptively resize image with data dependent triangulation
    • Imagick::adaptiveSharpenImage - Adaptively sharpen the image
    • Imagick::adaptiveThresholdImage - Selects a threshold for each pixel based on a range of intensity
    • Imagick::addImage - Adds new image to Imagick object image list
    • Imagick::addNoiseImage - Adds random noise to the image
    • Imagick::affineTransformImage - Transforms an image
    • Imagick::animateImages - Animates an image or images
    • Imagick::annotateImage - Annotates an image with text
    • Imagick::appendImages - Append a set of images
    • Imagick::autoLevelImage - Adjusts the levels of a particular image channel
    • Imagick::averageImages - Average a set of images
    • Imagick::blackThresholdImage - Forces all pixels below the threshold into black
    • Imagick::blueShiftImage - Mutes the colors of the image
    • Imagick::blurImage - Adds blur filter to image
    • Imagick::borderImage - Surrounds the image with a border
    • Imagick::brightnessContrastImage - Change the brightness and/or contrast of an image
    • Imagick::charcoalImage - Simulates a charcoal drawing
    • Imagick::chopImage - Removes a region of an image and trims
    • Imagick::clampImage - Restricts the color range from 0 to the quantum depth.
    • Imagick::clear - Clears all resources associated to Imagick object
    • Imagick::clipImage - Clips along the first path from the 8BIM profile
    • Imagick::clipImagePath - Clips along the named paths from the 8BIM profile, if present
    • Imagick::clipPathImage - Clips along the named paths from the 8BIM profile
    • Imagick::clone - Makes an exact copy of the Imagick object
    • Imagick::clutImage - Replaces colors in the image
    • Imagick::coalesceImages - Composites a set of images
    • Imagick::colorFloodfillImage - Changes the color value of any pixel that matches target
    • Imagick::colorizeImage - Blends the fill color with the image
    • Imagick::colorMatrixImage - Apply color transformation to an image
    • Imagick::combineImages - Combines one or more images into a single image
    • Imagick::commentImage - Adds a comment to your image
    • Imagick::compareImageChannels - Returns the difference in one or more images
    • Imagick::compareImageLayers - Returns the maximum bounding region between images
    • Imagick::compareImages - Compares an image to a reconstructed image
    • Imagick::compositeImage - Composite one image onto another
    • Imagick::contrastImage - Change the contrast of the image
    • Imagick::contrastStretchImage - Enhances the contrast of a color image
    • Imagick::convolveImage - Applies a custom convolution kernel to the image
    • Imagick::count - Get the number of images
    • Imagick::cropImage - Extracts a region of the image
    • Imagick::cropThumbnailImage - Creates a crop thumbnail
    • Imagick::current - Returns a reference to the current Imagick object
    • Imagick::cycleColormapImage - Displaces an image's colormap
    • Imagick::decipherImage - Deciphers an image
    • Imagick::deconstructImages - Returns certain pixel differences between images
    • Imagick::deleteImageArtifact - Delete image artifact
    • Imagick::deleteImageProperty - Deletes an image property
    • Imagick::deskewImage - Removes skew from the image
    • Imagick::despeckleImage - Reduces the speckle noise in an image
    • Imagick::destroy - Destroys the Imagick object
    • Imagick::displayImage - Displays an image
    • Imagick::displayImages - Displays an image or image sequence
    • Imagick::distortImage - Distorts an image using various distortion methods
    • Imagick::drawImage - Renders the ImagickDraw object on the current image
    • Imagick::edgeImage - Enhance edges within the image
    • Imagick::embossImage - Returns a grayscale image with a three-dimensional effect
    • Imagick::encipherImage - Enciphers an image
    • Imagick::enhanceImage - Improves the quality of a noisy image
    • Imagick::equalizeImage - Equalizes the image histogram
    • Imagick::evaluateImage - Applies an expression to an image
    • Imagick::exportImagePixels - Exports raw image pixels
    • Imagick::extentImage - Set image size
    • Imagick::filter - Applies a custom convolution kernel to the image
    • Imagick::flattenImages - Merges a sequence of images
    • Imagick::flipImage - Creates a vertical mirror image
    • Imagick::floodFillPaintImage - Changes the color value of any pixel that matches target
    • Imagick::flopImage - Creates a horizontal mirror image
    • Imagick::forwardFourierTransformImage - Implements the discrete Fourier transform (DFT)
    • Imagick::frameImage - Adds a simulated three-dimensional border
    • Imagick::functionImage - Applies a function on the image
    • Imagick::fxImage - Evaluate expression for each pixel in the image
    • Imagick::gammaImage - Gamma-corrects an image
    • Imagick::gaussianBlurImage - Blurs an image
    • Imagick::getColorspace - Gets the colorspace
    • Imagick::getCompression - Gets the object compression type
    • Imagick::getCompressionQuality - Gets the object compression quality
    • Imagick::getCopyright - Returns the ImageMagick API copyright as a string
    • Imagick::getFilename - The filename associated with an image sequence
    • Imagick::getFont - Gets font
    • Imagick::getFormat - Returns the format of the Imagick object
    • Imagick::getGravity - Gets the gravity
    • Imagick::getHomeURL - Returns the ImageMagick home URL
    • Imagick::getImage - Returns a new Imagick object
    • Imagick::getImageAlphaChannel - Checks if the image has an alpha channel
    • Imagick::getImageArtifact - Get image artifact
    • Imagick::getImageAttribute - Returns a named attribute
    • Imagick::getImageBackgroundColor - Returns the image background color
    • Imagick::getImageBlob - Returns the image sequence as a blob
    • Imagick::getImageBluePrimary - Returns the chromaticy blue primary point
    • Imagick::getImageBorderColor - Returns the image border color
    • Imagick::getImageChannelDepth - Gets the depth for a particular image channel
    • Imagick::getImageChannelDistortion - Compares image channels of an image to a reconstructed image
    • Imagick::getImageChannelDistortions - Gets channel distortions
    • Imagick::getImageChannelExtrema - Gets the extrema for one or more image channels
    • Imagick::getImageChannelKurtosis - The getImageChannelKurtosis purpose
    • Imagick::getImageChannelMean - Gets the mean and standard deviation
    • Imagick::getImageChannelRange - Gets channel range
    • Imagick::getImageChannelStatistics - Returns statistics for each channel in the image
    • Imagick::getImageClipMask - Gets image clip mask
    • Imagick::getImageColormapColor - Returns the color of the specified colormap index
    • Imagick::getImageColors - Gets the number of unique colors in the image
    • Imagick::getImageColorspace - Gets the image colorspace
    • Imagick::getImageCompose - Returns the composite operator associated with the image
    • Imagick::getImageCompression - Gets the current image's compression type
    • Imagick::getImageCompressionQuality - Gets the current image's compression quality
    • Imagick::getImageDelay - Gets the image delay
    • Imagick::getImageDepth - Gets the image depth
    • Imagick::getImageDispose - Gets the image disposal method
    • Imagick::getImageDistortion - Compares an image to a reconstructed image
    • Imagick::getImageExtrema - Gets the extrema for the image
    • Imagick::getImageFilename - Returns the filename of a particular image in a sequence
    • Imagick::getImageFormat - Returns the format of a particular image in a sequence
    • Imagick::getImageGamma - Gets the image gamma
    • Imagick::getImageGeometry - Gets the width and height as an associative array
    • Imagick::getImageGravity - Gets the image gravity
    • Imagick::getImageGreenPrimary - Returns the chromaticy green primary point
    • Imagick::getImageHeight - Returns the image height
    • Imagick::getImageHistogram - Gets the image histogram
    • Imagick::getImageIndex - Gets the index of the current active image
    • Imagick::getImageInterlaceScheme - Gets the image interlace scheme
    • Imagick::getImageInterpolateMethod - Returns the interpolation method
    • Imagick::getImageIterations - Gets the image iterations
    • Imagick::getImageLength - Returns the image length in bytes
    • Imagick::getImageMatte - Return if the image has a matte channel
    • Imagick::getImageMatteColor - Returns the image matte color
    • Imagick::getImageMimeType - Returns the image mime-type
    • Imagick::getImageOrientation - Gets the image orientation
    • Imagick::getImagePage - Returns the page geometry
    • Imagick::getImagePixelColor - Returns the color of the specified pixel
    • Imagick::getImageProfile - Returns the named image profile
    • Imagick::getImageProfiles - Returns the image profiles
    • Imagick::getImageProperties - Returns the image properties
    • Imagick::getImageProperty - Returns the named image property
    • Imagick::getImageRedPrimary - Returns the chromaticity red primary point
    • Imagick::getImageRegion - Extracts a region of the image
    • Imagick::getImageRenderingIntent - Gets the image rendering intent
    • Imagick::getImageResolution - Gets the image X and Y resolution
    • Imagick::getImagesBlob - Returns all image sequences as a blob
    • Imagick::getImageScene - Gets the image scene
    • Imagick::getImageSignature - Generates an SHA-256 message digest
    • Imagick::getImageSize - Returns the image length in bytes
    • Imagick::getImageTicksPerSecond - Gets the image ticks-per-second
    • Imagick::getImageTotalInkDensity - Gets the image total ink density
    • Imagick::getImageType - Gets the potential image type
    • Imagick::getImageUnits - Gets the image units of resolution
    • Imagick::getImageVirtualPixelMethod - Returns the virtual pixel method
    • Imagick::getImageWhitePoint - Returns the chromaticity white point
    • Imagick::getImageWidth - Returns the image width
    • Imagick::getInterlaceScheme - Gets the object interlace scheme
    • Imagick::getIteratorIndex - Gets the index of the current active image
    • Imagick::getNumberImages - Returns the number of images in the object
    • Imagick::getOption - Returns a value associated with the specified key
    • Imagick::getPackageName - Returns the ImageMagick package name
    • Imagick::getPage - Returns the page geometry
    • Imagick::getPixelIterator - Returns a MagickPixelIterator
    • Imagick::getPixelRegionIterator - Get an ImagickPixelIterator for an image section
    • Imagick::getPointSize - Gets point size
    • Imagick::getQuantum - Returns the ImageMagick quantum range
    • Imagick::getQuantumDepth - Gets the quantum depth
    • Imagick::getQuantumRange - Returns the Imagick quantum range
    • Imagick::getRegistry - Get a StringRegistry entry
    • Imagick::getReleaseDate - Returns the ImageMagick release date
    • Imagick::getResource - Returns the specified resource's memory usage
    • Imagick::getResourceLimit - Returns the specified resource limit
    • Imagick::getSamplingFactors - Gets the horizontal and vertical sampling factor
    • Imagick::getSize - Returns the size associated with the Imagick object
    • Imagick::getSizeOffset - Returns the size offset
    • Imagick::getVersion - Returns the ImageMagick API version
    • Imagick::haldClutImage - Replaces colors in the image
    • Imagick::hasNextImage - Checks if the object has more images
    • Imagick::hasPreviousImage - Checks if the object has a previous image
    • Imagick::identifyFormat - Formats a string with image details
    • Imagick::identifyImage - Identifies an image and fetches attributes
    • Imagick::implodeImage - Creates a new image as a copy
    • Imagick::importImagePixels - Imports image pixels
    • Imagick::inverseFourierTransformImage - Implements the inverse discrete Fourier transform (DFT)
    • Imagick::labelImage - Adds a label to an image
    • Imagick::levelImage - Adjusts the levels of an image
    • Imagick::linearStretchImage - Stretches with saturation the image intensity
    • Imagick::liquidRescaleImage - Animates an image or images
    • Imagick::listRegistry - List all the registry settings
    • Imagick::magnifyImage - Scales an image proportionally 2x
    • Imagick::mapImage - Replaces the colors of an image with the closest color from a reference image
    • Imagick::matteFloodfillImage - Changes the transparency value of a color
    • Imagick::medianFilterImage - Applies a digital filter
    • Imagick::mergeImageLayers - Merges image layers
    • Imagick::minifyImage - Scales an image proportionally to half its size
    • Imagick::modulateImage - Control the brightness, saturation, and hue
    • Imagick::montageImage - Creates a composite image
    • Imagick::morphImages - Method morphs a set of images
    • Imagick::morphology - Applies a user supplied kernel to the image according to the given morphology method.
    • Imagick::mosaicImages - Forms a mosaic from images
    • Imagick::motionBlurImage - Simulates motion blur
    • Imagick::negateImage - Negates the colors in the reference image
    • Imagick::newImage - Creates a new image
    • Imagick::newPseudoImage - Creates a new image
    • Imagick::nextImage - Moves to the next image
    • Imagick::normalizeImage - Enhances the contrast of a color image
    • Imagick::oilPaintImage - Simulates an oil painting
    • Imagick::opaquePaintImage - Changes the color value of any pixel that matches target
    • Imagick::optimizeImageLayers - Removes repeated portions of images to optimize
    • Imagick::orderedPosterizeImage - Performs an ordered dither
    • Imagick::paintFloodfillImage - Changes the color value of any pixel that matches target
    • Imagick::paintOpaqueImage - Change any pixel that matches color
    • Imagick::paintTransparentImage - Changes any pixel that matches color with the color defined by fill
    • Imagick::pingImage - Fetch basic attributes about the image
    • Imagick::pingImageBlob - Quickly fetch attributes
    • Imagick::pingImageFile - Get basic image attributes in a lightweight manner
    • Imagick::polaroidImage - Simulates a Polaroid picture
    • Imagick::posterizeImage - Reduces the image to a limited number of color level
    • Imagick::previewImages - Quickly pin-point appropriate parameters for image processing
    • Imagick::previousImage - Move to the previous image in the object
    • Imagick::profileImage - Adds or removes a profile from an image
    • Imagick::quantizeImage - Analyzes the colors within a reference image
    • Imagick::quantizeImages - Analyzes the colors within a sequence of images
    • Imagick::queryFontMetrics - Returns an array representing the font metrics
    • Imagick::queryFonts - Returns the configured fonts
    • Imagick::queryFormats - Returns formats supported by Imagick
    • Imagick::radialBlurImage - Radial blurs an image
    • Imagick::raiseImage - Creates a simulated 3d button-like effect
    • Imagick::randomThresholdImage - Creates a high-contrast, two-color image
    • Imagick::readImage - Reads image from filename
    • Imagick::readImageBlob - Reads image from a binary string
    • Imagick::readImageFile - Reads image from open filehandle
    • Imagick::readimages - Reads image from an array of filenames
    • Imagick::recolorImage - Recolors image
    • Imagick::reduceNoiseImage - Smooths the contours of an image
    • Imagick::remapImage - Remaps image colors
    • Imagick::removeImage - Removes an image from the image list
    • Imagick::removeImageProfile - Removes the named image profile and returns it
    • Imagick::render - Renders all preceding drawing commands
    • Imagick::resampleImage - Resample image to desired resolution
    • Imagick::resetImagePage - Reset image page
    • Imagick::resizeImage - Scales an image
    • Imagick::rollImage - Offsets an image
    • Imagick::rotateImage - Rotates an image
    • Imagick::rotationalBlurImage - Rotational blurs an image
    • Imagick::roundCorners - Rounds image corners
    • Imagick::sampleImage - Scales an image with pixel sampling
    • Imagick::scaleImage - Scales the size of an image
    • Imagick::segmentImage - Segments an image
    • Imagick::selectiveBlurImage - Selectively blur an image within a contrast threshold
    • Imagick::separateImageChannel - Separates a channel from the image
    • Imagick::sepiaToneImage - Sepia tones an image
    • Imagick::setBackgroundColor - Sets the object's default background color
    • Imagick::setColorspace - Set colorspace
    • Imagick::setCompression - Sets the object's default compression type
    • Imagick::setCompressionQuality - Sets the object's default compression quality
    • Imagick::setFilename - Sets the filename before you read or write the image
    • Imagick::setFirstIterator - Sets the Imagick iterator to the first image
    • Imagick::setFont - Sets font
    • Imagick::setFormat - Sets the format of the Imagick object
    • Imagick::setGravity - Sets the gravity
    • Imagick::setImage - Replaces image in the object
    • Imagick::setImageAlphaChannel - Sets image alpha channel
    • Imagick::setImageArtifact - Set image artifact
    • Imagick::setImageAttribute - Sets an image attribute
    • Imagick::setImageBackgroundColor - Sets the image background color
    • Imagick::setImageBias - Sets the image bias for any method that convolves an image
    • Imagick::setImageBiasQuantum - Sets the image bias
    • Imagick::setImageBluePrimary - Sets the image chromaticity blue primary point
    • Imagick::setImageBorderColor - Sets the image border color
    • Imagick::setImageChannelDepth - Sets the depth of a particular image channel
    • Imagick::setImageClipMask - Sets image clip mask
    • Imagick::setImageColormapColor - Sets the color of the specified colormap index
    • Imagick::setImageColorspace - Sets the image colorspace
    • Imagick::setImageCompose - Sets the image composite operator
    • Imagick::setImageCompression - Sets the image compression
    • Imagick::setImageCompressionQuality - Sets the image compression quality
    • Imagick::setImageDelay - Sets the image delay
    • Imagick::setImageDepth - Sets the image depth
    • Imagick::setImageDispose - Sets the image disposal method
    • Imagick::setImageExtent - Sets the image size
    • Imagick::setImageFilename - Sets the filename of a particular image
    • Imagick::setImageFormat - Sets the format of a particular image
    • Imagick::setImageGamma - Sets the image gamma
    • Imagick::setImageGravity - Sets the image gravity
    • Imagick::setImageGreenPrimary - Sets the image chromaticity green primary point
    • Imagick::setImageIndex - Set the iterator position
    • Imagick::setImageInterlaceScheme - Sets the image compression
    • Imagick::setImageInterpolateMethod - Sets the image interpolate pixel method
    • Imagick::setImageIterations - Sets the image iterations
    • Imagick::setImageMatte - Sets the image matte channel
    • Imagick::setImageMatteColor - Sets the image matte color
    • Imagick::setImageOpacity - Sets the image opacity level
    • Imagick::setImageOrientation - Sets the image orientation
    • Imagick::setImagePage - Sets the page geometry of the image
    • Imagick::setImageProfile - Adds a named profile to the Imagick object
    • Imagick::setImageProperty - Sets an image property
    • Imagick::setImageRedPrimary - Sets the image chromaticity red primary point
    • Imagick::setImageRenderingIntent - Sets the image rendering intent
    • Imagick::setImageResolution - Sets the image resolution
    • Imagick::setImageScene - Sets the image scene
    • Imagick::setImageTicksPerSecond - Sets the image ticks-per-second
    • Imagick::setImageType - Sets the image type
    • Imagick::setImageUnits - Sets the image units of resolution
    • Imagick::setImageVirtualPixelMethod - Sets the image virtual pixel method
    • Imagick::setImageWhitePoint - Sets the image chromaticity white point
    • Imagick::setInterlaceScheme - Sets the image compression
    • Imagick::setIteratorIndex - Set the iterator position
    • Imagick::setLastIterator - Sets the Imagick iterator to the last image
    • Imagick::setOption - Set an option
    • Imagick::setPage - Sets the page geometry of the Imagick object
    • Imagick::setPointSize - Sets point size
    • Imagick::setProgressMonitor - Set a callback to be called during processing
    • Imagick::setRegistry - Sets the ImageMagick registry entry named key to value
    • Imagick::setResolution - Sets the image resolution
    • Imagick::setResourceLimit - Sets the limit for a particular resource
    • Imagick::setSamplingFactors - Sets the image sampling factors
    • Imagick::setSize - Sets the size of the Imagick object
    • Imagick::setSizeOffset - Sets the size and offset of the Imagick object
    • Imagick::setType - Sets the image type attribute
    • Imagick::shadeImage - Creates a 3D effect
    • Imagick::shadowImage - Simulates an image shadow
    • Imagick::sharpenImage - Sharpens an image
    • Imagick::shaveImage - Shaves pixels from the image edges
    • Imagick::shearImage - Creating a parallelogram
    • Imagick::sigmoidalContrastImage - Adjusts the contrast of an image
    • Imagick::sketchImage - Simulates a pencil sketch
    • Imagick::smushImages - Takes all images from the current image pointer to the end of the image list and smushs them
    • Imagick::solarizeImage - Applies a solarizing effect to the image
    • Imagick::sparseColorImage - Interpolates colors
    • Imagick::spliceImage - Splices a solid color into the image
    • Imagick::spreadImage - Randomly displaces each pixel in a block
    • Imagick::statisticImage - Modifies image using a statistics function
    • Imagick::steganoImage - Hides a digital watermark within the image
    • Imagick::stereoImage - Composites two images
    • Imagick::stripImage - Strips an image of all profiles and comments
    • Imagick::subImageMatch - Searches for a subimage in the current image and returns a similarity image
    • Imagick::swirlImage - Swirls the pixels about the center of the image
    • Imagick::textureImage - Repeatedly tiles the texture image
    • Imagick::thresholdImage - Changes the value of individual pixels based on a threshold
    • Imagick::thumbnailImage - Changes the size of an image
    • Imagick::tintImage - Applies a color vector to each pixel in the image
    • Imagick::transformImage - Convenience method for setting crop size and the image geometry
    • Imagick::transformImageColorspace - Transforms an image to a new colorspace
    • Imagick::transparentPaintImage - Paints pixels transparent
    • Imagick::transposeImage - Creates a vertical mirror image
    • Imagick::transverseImage - Creates a horizontal mirror image
    • Imagick::trimImage - Remove edges from the image
    • Imagick::uniqueImageColors - Discards all but one of any pixel color
    • Imagick::unsharpMaskImage - Sharpens an image
    • Imagick::valid - Checks if the current item is valid
    • Imagick::vignetteImage - Adds vignette filter to the image
    • Imagick::waveImage - Applies wave filter to the image
    • Imagick::whiteThresholdImage - Force all pixels above the threshold into white
    • Imagick::writeImage - Writes an image to the specified filename
    • Imagick::writeImageFile - Writes an image to a filehandle
    • Imagick::writeImages - Writes an image or image sequence
    • Imagick::writeImagesFile - Writes frames to a filehandle
    • Imagick::__construct - The Imagick constructor
    • Imagick::__toString - Returns the image as a string
    • ImagickDraw::affine - Adjusts the current affine transformation matrix
    • ImagickDraw::annotation - Draws text on the image
    • ImagickDraw::arc - Draws an arc
    • ImagickDraw::bezier - Draws a bezier curve
    • ImagickDraw::circle - Draws a circle
    • ImagickDraw::clear - Clears the ImagickDraw
    • ImagickDraw::clone - Makes an exact copy of the specified ImagickDraw object
    • ImagickDraw::color - Draws color on image
    • ImagickDraw::comment - Adds a comment
    • ImagickDraw::composite - Composites an image onto the current image
    • ImagickDraw::destroy - Frees all associated resources
    • ImagickDraw::ellipse - Draws an ellipse on the image
    • ImagickDraw::getClipPath - Obtains the current clipping path ID
    • ImagickDraw::getClipRule - Returns the current polygon fill rule
    • ImagickDraw::getClipUnits - Returns the interpretation of clip path units
    • ImagickDraw::getFillColor - Returns the fill color
    • ImagickDraw::getFillOpacity - Returns the opacity used when drawing
    • ImagickDraw::getFillRule - Returns the fill rule
    • ImagickDraw::getFont - Returns the font
    • ImagickDraw::getFontFamily - Returns the font family
    • ImagickDraw::getFontSize - Returns the font pointsize
    • ImagickDraw::getFontStretch - Gets the font stretch to use when annotating with text
    • ImagickDraw::getFontStyle - Returns the font style
    • ImagickDraw::getFontWeight - Returns the font weight
    • ImagickDraw::getGravity - Returns the text placement gravity
    • ImagickDraw::getStrokeAntialias - Returns the current stroke antialias setting
    • ImagickDraw::getStrokeColor - Returns the color used for stroking object outlines
    • ImagickDraw::getStrokeDashArray - Returns an array representing the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::getStrokeDashOffset - Returns the offset into the dash pattern to start the dash
    • ImagickDraw::getStrokeLineCap - Returns the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::getStrokeLineJoin - Returns the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::getStrokeMiterLimit - Returns the stroke miter limit
    • ImagickDraw::getStrokeOpacity - Returns the opacity of stroked object outlines
    • ImagickDraw::getStrokeWidth - Returns the width of the stroke used to draw object outlines
    • ImagickDraw::getTextAlignment - Returns the text alignment
    • ImagickDraw::getTextAntialias - Returns the current text antialias setting
    • ImagickDraw::getTextDecoration - Returns the text decoration
    • ImagickDraw::getTextEncoding - Returns the code set used for text annotations
    • ImagickDraw::getTextInterlineSpacing - Gets the text interword spacing
    • ImagickDraw::getTextInterwordSpacing - Gets the text interword spacing
    • ImagickDraw::getTextKerning - Gets the text kerning
    • ImagickDraw::getTextUnderColor - Returns the text under color
    • ImagickDraw::getVectorGraphics - Returns a string containing vector graphics
    • ImagickDraw::line - Draws a line
    • ImagickDraw::matte - Paints on the image's opacity channel
    • ImagickDraw::pathClose - Adds a path element to the current path
    • ImagickDraw::pathCurveToAbsolute - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierRelative - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToRelative - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothAbsolute - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothRelative - Draws a cubic Bezier curve
    • ImagickDraw::pathEllipticArcAbsolute - Draws an elliptical arc
    • ImagickDraw::pathEllipticArcRelative - Draws an elliptical arc
    • ImagickDraw::pathFinish - Terminates the current path
    • ImagickDraw::pathLineToAbsolute - Draws a line path
    • ImagickDraw::pathLineToHorizontalAbsolute - Draws a horizontal line path
    • ImagickDraw::pathLineToHorizontalRelative - Draws a horizontal line
    • ImagickDraw::pathLineToRelative - Draws a line path
    • ImagickDraw::pathLineToVerticalAbsolute - Draws a vertical line
    • ImagickDraw::pathLineToVerticalRelative - Draws a vertical line path
    • ImagickDraw::pathMoveToAbsolute - Starts a new sub-path
    • ImagickDraw::pathMoveToRelative - Starts a new sub-path
    • ImagickDraw::pathStart - Declares the start of a path drawing list
    • ImagickDraw::point - Draws a point
    • ImagickDraw::polygon - Draws a polygon
    • ImagickDraw::polyline - Draws a polyline
    • ImagickDraw::pop - Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
    • ImagickDraw::popClipPath - Terminates a clip path definition
    • ImagickDraw::popDefs - Terminates a definition list
    • ImagickDraw::popPattern - Terminates a pattern definition
    • ImagickDraw::push - Clones the current ImagickDraw and pushes it to the stack
    • ImagickDraw::pushClipPath - Starts a clip path definition
    • ImagickDraw::pushDefs - Indicates that following commands create named elements for early processing
    • ImagickDraw::pushPattern - Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
    • ImagickDraw::rectangle - Draws a rectangle
    • ImagickDraw::render - Renders all preceding drawing commands onto the image
    • ImagickDraw::resetVectorGraphics - Resets the vector graphics
    • ImagickDraw::rotate - Applies the specified rotation to the current coordinate space
    • ImagickDraw::roundRectangle - Draws a rounded rectangle
    • ImagickDraw::scale - Adjusts the scaling factor
    • ImagickDraw::setClipPath - Associates a named clipping path with the image
    • ImagickDraw::setClipRule - Set the polygon fill rule to be used by the clipping path
    • ImagickDraw::setClipUnits - Sets the interpretation of clip path units
    • ImagickDraw::setFillAlpha - Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillColor - Sets the fill color to be used for drawing filled objects
    • ImagickDraw::setFillOpacity - Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillPatternURL - Sets the URL to use as a fill pattern for filling objects
    • ImagickDraw::setFillRule - Sets the fill rule to use while drawing polygons
    • ImagickDraw::setFont - Sets the fully-specified font to use when annotating with text
    • ImagickDraw::setFontFamily - Sets the font family to use when annotating with text
    • ImagickDraw::setFontSize - Sets the font pointsize to use when annotating with text
    • ImagickDraw::setFontStretch - Sets the font stretch to use when annotating with text
    • ImagickDraw::setFontStyle - Sets the font style to use when annotating with text
    • ImagickDraw::setFontWeight - Sets the font weight
    • ImagickDraw::setGravity - Sets the text placement gravity
    • ImagickDraw::setResolution - Sets the resolution
    • ImagickDraw::setStrokeAlpha - Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokeAntialias - Controls whether stroked outlines are antialiased
    • ImagickDraw::setStrokeColor - Sets the color used for stroking object outlines
    • ImagickDraw::setStrokeDashArray - Specifies the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::setStrokeDashOffset - Specifies the offset into the dash pattern to start the dash
    • ImagickDraw::setStrokeLineCap - Specifies the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::setStrokeLineJoin - Specifies the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::setStrokeMiterLimit - Specifies the miter limit
    • ImagickDraw::setStrokeOpacity - Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokePatternURL - Sets the pattern used for stroking object outlines
    • ImagickDraw::setStrokeWidth - Sets the width of the stroke used to draw object outlines
    • ImagickDraw::setTextAlignment - Specifies a text alignment
    • ImagickDraw::setTextAntialias - Controls whether text is antialiased
    • ImagickDraw::setTextDecoration - Specifies a decoration
    • ImagickDraw::setTextEncoding - Specifies the text code set
    • ImagickDraw::setTextInterlineSpacing - Sets the text interline spacing
    • ImagickDraw::setTextInterwordSpacing - Sets the text interword spacing
    • ImagickDraw::setTextKerning - Sets the text kerning
    • ImagickDraw::setTextUnderColor - Specifies the color of a background rectangle
    • ImagickDraw::setVectorGraphics - Sets the vector graphics
    • ImagickDraw::setViewbox - Sets the overall canvas size
    • ImagickDraw::skewX - Skews the current coordinate system in the horizontal direction
    • ImagickDraw::skewY - Skews the current coordinate system in the vertical direction
    • ImagickDraw::translate - Applies a translation to the current coordinate system
    • ImagickDraw::__construct - The ImagickDraw constructor
    • ImagickKernel::addKernel - Attach another kernel to a kernel list
    • ImagickKernel::addUnityKernel - Adds a Unity Kernel to the kernel list
    • ImagickKernel::fromBuiltIn - Create a kernel from a builtin in kernel
    • ImagickKernel::fromMatrix - Create a kernel from a 2d matrix of values
    • ImagickKernel::getMatrix - Get the 2d matrix of values used in this kernel
    • ImagickKernel::scale - Scales a kernel list by the given amount
    • ImagickKernel::separate - Separates a linked set of kernels and returns an array of ImagickKernels
    • ImagickPixel::clear - Clears resources associated with this object
    • ImagickPixel::destroy - Deallocates resources associated with this object
    • ImagickPixel::getColor - Returns the color
    • ImagickPixel::getColorAsString - Returns the color as a string
    • ImagickPixel::getColorCount - Returns the color count associated with this color
    • ImagickPixel::getColorQuantum - Returns the color of the pixel in an array as Quantum values
    • ImagickPixel::getColorValue - Gets the normalized value of the provided color channel
    • ImagickPixel::getColorValueQuantum - Gets the quantum value of a color in the ImagickPixel
    • ImagickPixel::getHSL - Returns the normalized HSL color of the ImagickPixel object
    • ImagickPixel::getIndex - Gets the colormap index of the pixel wand
    • ImagickPixel::isPixelSimilar - Check the distance between this color and another
    • ImagickPixel::isPixelSimilarQuantum - Returns whether two colors differ by less than the specified distance
    • ImagickPixel::isSimilar - Check the distance between this color and another
    • ImagickPixel::setColor - Sets the color
    • ImagickPixel::setColorCount - Sets the color count associated with this color
    • ImagickPixel::setColorValue - Sets the normalized value of one of the channels
    • ImagickPixel::setColorValueQuantum - Sets the quantum value of a color element of the ImagickPixel
    • ImagickPixel::setHSL - Sets the normalized HSL color
    • ImagickPixel::setIndex - Sets the colormap index of the pixel wand
    • ImagickPixel::__construct - The ImagickPixel constructor
    • ImagickPixelIterator::clear - Clear resources associated with a PixelIterator
    • ImagickPixelIterator::destroy - Deallocates resources associated with a PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow - Returns the current row of ImagickPixel objects
    • ImagickPixelIterator::getIteratorRow - Returns the current pixel iterator row
    • ImagickPixelIterator::getNextIteratorRow - Returns the next row of the pixel iterator
    • ImagickPixelIterator::getPreviousIteratorRow - Returns the previous row
    • ImagickPixelIterator::newPixelIterator - Returns a new pixel iterator
    • ImagickPixelIterator::newPixelRegionIterator - Returns a new pixel iterator
    • ImagickPixelIterator::resetIterator - Resets the pixel iterator
    • ImagickPixelIterator::setIteratorFirstRow - Sets the pixel iterator to the first pixel row
    • ImagickPixelIterator::setIteratorLastRow - Sets the pixel iterator to the last pixel row
    • ImagickPixelIterator::setIteratorRow - Set the pixel iterator row
    • ImagickPixelIterator::syncIterator - Syncs the pixel iterator
    • ImagickPixelIterator::__construct - The ImagickPixelIterator constructor
    • imap_8bit - Convert an 8bit string to a quoted-printable string
    • imap_alerts - Returns all IMAP alert messages that have occurred
    • imap_append - Append a string message to a specified mailbox
    • imap_base64 - Decode BASE64 encoded text
    • imap_binary - Convert an 8bit string to a base64 string
    • imap_body - Read the message body
    • imap_bodystruct - Read the structure of a specified body section of a specific message
    • imap_check - Check current mailbox
    • imap_clearflag_full - Clears flags on messages
    • imap_close - Close an IMAP stream
    • imap_create - Sinônimo de imap_createmailbox
    • imap_createmailbox - Create a new mailbox
    • imap_delete - Mark a message for deletion from current mailbox
    • imap_deletemailbox - Delete a mailbox
    • imap_errors - Returns all of the IMAP errors that have occurred
    • imap_expunge - Delete all messages marked for deletion
    • imap_fetchbody - Fetch a particular section of the body of the message
    • imap_fetchheader - Returns header for a message
    • imap_fetchmime - Fetch MIME headers for a particular section of the message
    • imap_fetchstructure - Read the structure of a particular message
    • imap_fetchtext - Sinônimo de imap_body
    • imap_fetch_overview - Read an overview of the information in the headers of the given message
    • imap_gc - Clears IMAP cache
    • imap_getacl - Gets the ACL for a given mailbox
    • imap_getmailboxes - Read the list of mailboxes, returning detailed information on each one
    • imap_getsubscribed - List all the subscribed mailboxes
    • imap_get_quota - Retrieve the quota level settings, and usage statics per mailbox
    • imap_get_quotaroot - Retrieve the quota settings per user
    • imap_header - Sinônimo de imap_headerinfo
    • imap_headerinfo - Read the header of the message
    • imap_headers - Returns headers for all messages in a mailbox
    • imap_is_open - Check if the IMAP stream is still valid
    • imap_last_error - Gets the last IMAP error that occurred during this page request
    • imap_list - Read the list of mailboxes
    • imap_listmailbox - Sinônimo de imap_list
    • imap_listscan - Returns the list of mailboxes that matches the given text
    • imap_listsubscribed - Sinônimo de imap_lsub
    • imap_lsub - List all the subscribed mailboxes
    • imap_mail - Send an email message
    • imap_mailboxmsginfo - Get information about the current mailbox
    • imap_mail_compose - Create a MIME message based on given envelope and body sections
    • imap_mail_copy - Copy specified messages to a mailbox
    • imap_mail_move - Move specified messages to a mailbox
    • imap_mime_header_decode - Decode MIME header elements
    • imap_msgno - Gets the message sequence number for the given UID
    • imap_mutf7_to_utf8 - Decode a modified UTF-7 string to UTF-8
    • imap_num_msg - Gets the number of messages in the current mailbox
    • imap_num_recent - Gets the number of recent messages in current mailbox
    • imap_open - Open an IMAP stream to a mailbox
    • imap_ping - Check if the IMAP stream is still active
    • imap_qprint - Convert a quoted-printable string to an 8 bit string
    • imap_rename - Sinônimo de imap_renamemailbox
    • imap_renamemailbox - Rename an old mailbox to new mailbox
    • imap_reopen - Reopen IMAP stream to new mailbox
    • imap_rfc822_parse_adrlist - Parses an address string
    • imap_rfc822_parse_headers - Parse mail headers from a string
    • imap_rfc822_write_address - Returns a properly formatted email address given the mailbox, host, and personal info
    • imap_savebody - Save a specific body section to a file
    • imap_scan - Sinônimo de imap_listscan
    • imap_scanmailbox - Sinônimo de imap_listscan
    • imap_search - This function returns an array of messages matching the given search criteria
    • imap_setacl - Sets the ACL for a given mailbox
    • imap_setflag_full - Sets flags on messages
    • imap_set_quota - Sets a quota for a given mailbox
    • imap_sort - Gets and sort messages
    • imap_status - Returns status information on a mailbox
    • imap_subscribe - Subscribe to a mailbox
    • imap_thread - Returns a tree of threaded message
    • imap_timeout - Set or fetch imap timeout
    • imap_uid - This function returns the UID for the given message sequence number
    • imap_undelete - Unmark the message which is marked deleted
    • 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
    • imap_utf8_to_mutf7 - Encode a UTF-8 string to modified UTF-7
    • implode - Join array elements with a string
    • inet_ntop - Converts a packed internet address to a human readable representation
    • inet_pton - Converts a human readable IP address to its packed in_addr representation
    • InfiniteIterator::next - Movimenta o Iterador Interno para frente ou rebobina
    • InfiniteIterator::__construct - Constrói um InfiniteIterator
    • inflate_add - Descomprime incrementalmente dados codificados
    • inflate_get_read_len - Obtém o número de bytes lidos até o momento
    • inflate_get_status - Obtém o status da descompressão
    • inflate_init - Inicializa um contexto de descompressão incremental
    • ini_alter - Sinônimo de ini_set
    • ini_get - Gets the value of a configuration option
    • ini_get_all - Gets all configuration options
    • ini_parse_quantity - Get interpreted size from ini shorthand syntax
    • ini_restore - Restores the value of a configuration option
    • ini_set - Sets the value of a configuration option
    • inotify_add_watch - Add a watch to an initialized inotify instance
    • inotify_init - Initialize an inotify instance
    • inotify_queue_len - Return a number upper than zero if there are pending events
    • inotify_read - Read events from an inotify instance
    • inotify_rm_watch - Remove an existing watch from an inotify instance
    • intdiv - Divisão de inteiros
    • interface_exists - Verifica se a interface foi definida
    • InternalIterator::current - Retorna o elemento atual
    • InternalIterator::key - Retorna a chave do elemento atual
    • InternalIterator::next - Move para o próximo elemento
    • InternalIterator::rewind - Retreocede o Iterator para o primeiro elemento
    • InternalIterator::valid - Verifica se a posição atual é válida
    • InternalIterator::__construct - Construtor privado para não permitir instanciação direta
    • IntlBreakIterator::createCharacterInstance - Cria um iterador de quebra para limites de sequências de combinação de caracteres
    • IntlBreakIterator::createCodePointInstance - Cria um iterador de quebra para limites de pontos de código
    • IntlBreakIterator::createLineInstance - Cria um iterador de quebra para quebras de linha logicamente possíveis
    • IntlBreakIterator::createSentenceInstance - Cria um iterador de quebra para separação de sentenças
    • IntlBreakIterator::createTitleInstance - Cria um iterador para quebras de letras de título
    • IntlBreakIterator::createWordInstance - Cria um iterador de quebra para separação de palavras
    • IntlBreakIterator::current - Obtém o índice da posição atual
    • IntlBreakIterator::first - Define a posição para o primeiro caractere no texto
    • IntlBreakIterator::following - Avança o iterador para o primeiro limite após o deslocamento especificado
    • IntlBreakIterator::getErrorCode - Obtém o último código de erro no objeto
    • IntlBreakIterator::getErrorMessage - Obtém a última mensagem de erro no objeto
    • IntlBreakIterator::getLocale - Obtém a localidade associada com o objeto
    • IntlBreakIterator::getPartsIterator - Cria um iterador para navegar por fragmentos entre limites
    • IntlBreakIterator::getText - Obtém o texto sendo percorrido
    • IntlBreakIterator::isBoundary - Indica se uma posição é um posição de limite
    • IntlBreakIterator::last - Define a posição do iterador para um índice além do último caractere
    • IntlBreakIterator::next - Avança o iterador para o próximo limite
    • IntlBreakIterator::preceding - Define a posição do iterador para o primeiro limite depois de um deslocamento
    • IntlBreakIterator::previous - Define a posição do iterador para o limite imediatamente anterior ao atual
    • IntlBreakIterator::setText - Define o texto a ser percorrido
    • IntlBreakIterator::__construct - Construtor privado para não permitir instanciação
    • IntlCalendar::add - Adiciona uma quantidade de tempo (com sinal) a um campo
    • IntlCalendar::after - Informa se o instante de tempo deste objeto é posterior ao instante do objeto passado
    • IntlCalendar::before - Informa se o instante de tempo deste objeto é anterior ao instante do objeto passado
    • IntlCalendar::clear - Limpa um campo ou todos os campos
    • IntlCalendar::createInstance - Cria um novo IntlCalendar
    • IntlCalendar::equals - Compara horários de dois objetos IntlCalendar para igualidade
    • IntlCalendar::fieldDifference - Calcula a diferença entre o horário fornecido e o horário deste objeto
    • IntlCalendar::fromDateTime - Cria um IntlCalendar a partir de um objeto DateTime ou uma string
    • IntlCalendar::get - Obtém o valor de um campo
    • IntlCalendar::getActualMaximum - O valor máximo para um campo, considerando o horário atual do objeto
    • IntlCalendar::getActualMinimum - O valor mínimo para um campo, considerando o horário atual do objeto
    • IntlCalendar::getAvailableLocales - Obtém um array de localidades para as quais existem dados
    • IntlCalendar::getDayOfWeekType - Informa se o dia é dia de semana, de final de semana ou de transição entre os dois
    • IntlCalendar::getErrorCode - Obtém o último código de erro no objeto
    • IntlCalendar::getErrorMessage - Obtém a última mensagem de erro no objeto
    • IntlCalendar::getFirstDayOfWeek - Obtém o primeiro dia da semana para a localidade do calendário
    • IntlCalendar::getGreatestMinimum - Obtém o maior valor mínimo local para um campo
    • IntlCalendar::getKeywordValuesForLocale - Obtém um conjunto de valores de palavras-chaves de localidade
    • IntlCalendar::getLeastMaximum - Obtém o menor máximo local para um campo
    • IntlCalendar::getLocale - Obtém a localidade associada com o objeto
    • IntlCalendar::getMaximum - Obtém o valor máximo global para um campo
    • IntlCalendar::getMinimalDaysInFirstWeek - Obtém o número mínimo de dias que a primeira semana do ano ou do mês pode ter
    • IntlCalendar::getMinimum - Obtém o mínimo global para um campo
    • IntlCalendar::getNow - Get number representing the current time
    • IntlCalendar::getRepeatedWallTimeOption - Obtém o comportamento ao lidar com o horário de relógio repetido
    • IntlCalendar::getSkippedWallTimeOption - Obtém o comportamento para o horário de relógio saltado
    • IntlCalendar::getTime - Obtém o horário atualmente representado pelo objeto
    • IntlCalendar::getTimeZone - Obtém o fuso horário do objeto
    • IntlCalendar::getType - Obtém o tipo de calendário
    • IntlCalendar::getWeekendTransition - Obtém o horário do dia no qual o final de semana inicia ou termina
    • IntlCalendar::inDaylightTime - Whether the object's time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo - Verifica se outro calendário é igual exceto pelo horário
    • IntlCalendar::isLenient - Verifica se a interpretação de data/horário está no modo leniente
    • IntlCalendar::isSet - Verifica se um campo está definido
    • IntlCalendar::isWeekend - Verifica se uma data e um horário estão no final de semana
    • IntlCalendar::roll - Adiciona valor ao campo sem transferir para campos mais significativos
    • IntlCalendar::set - Define um campo de horário ou vários campos comuns de uma vez
    • IntlCalendar::setDate - Define campos de data
    • IntlCalendar::setDateTime - Define campos de data e horário
    • IntlCalendar::setFirstDayOfWeek - Define o dia da semana no qual a semana inicia
    • IntlCalendar::setLenient - Define se a interpretação de data/horário deve ser leniente
    • IntlCalendar::setMinimalDaysInFirstWeek - Define o número mínimo de dias que a primeira semana do ano ou do mês pode ter
    • IntlCalendar::setRepeatedWallTimeOption - Define o comportamento ao lidar com horário de relógio repetido ao sair do horário de verão
    • IntlCalendar::setSkippedWallTimeOption - Define o comportamento ao lidar com horário de relógio saltado ao entrar no horário de verão
    • IntlCalendar::setTime - Define o horário do calendário em milissegundos desde a época de referência
    • IntlCalendar::setTimeZone - Define o fuso horário usado por este calendário
    • IntlCalendar::toDateTime - Converte um objeto IntlCalendar para um DateTime
    • IntlCalendar::__construct - Construtor privado para não permitir instanciação
    • IntlChar::charAge - Obtém a "idade" do ponto de código
    • IntlChar::charDigitValue - Obtém o valor do dígito decimal de um caractere de dígito decimal
    • IntlChar::charDirection - Obtém o valor de categoria bidirecional para um ponto de código
    • IntlChar::charFromName - Encontra um caractere Unicode pelo nome e retorna seu valor de ponto de código
    • IntlChar::charMirror - Obtém o caractere "espelho" para um ponto de código
    • IntlChar::charName - Obtém o nome de um caractere Unicode
    • IntlChar::charType - Obtém o valor da categoria geral para um ponto de código
    • IntlChar::chr - Retorna um caractere Unicode por valor de ponto de código
    • IntlChar::digit - Obtém o valor de dígito decimal de um ponto de código para uma base fornecida
    • IntlChar::enumCharNames - Enumera todos os caracteres Unicode atribuídos dentro de um intervalo
    • IntlChar::enumCharTypes - Enumera todos os pontos de código com suas categorias gerais Unicode
    • IntlChar::foldCase - Converte maiúscula/minúscula em um ponto de código
    • IntlChar::forDigit - Obtém a representação em caractere para um dígito e uma base fornecidos
    • IntlChar::getBidiPairedBracket - Obtém o caractere par de abertura/fechamento para um ponto de código
    • IntlChar::getBlockCode - Obtém o bloco de alocação Unicode contendo um ponto de código
    • IntlChar::getCombiningClass - Obtém a classe de combinação de um ponto de código
    • IntlChar::getFC_NFKC_Closure - Obtém a propriedade FC_NFKC_Closure para um ponto de código
    • IntlChar::getIntPropertyMaxValue - Obtém o valor máximo para uma propriedade Unicode
    • IntlChar::getIntPropertyMinValue - Obtém o valor mínimo para uma propriedade Unicode
    • IntlChar::getIntPropertyValue - Obtém o valor de uma propriedade Unicode de um ponto de código
    • IntlChar::getNumericValue - Obtém o valor numérico para um ponto de código Unicode
    • IntlChar::getPropertyEnum - Obtém o valor da contante da propriedade para uma propriedade informada
    • IntlChar::getPropertyName - Obtém o nome Unicode de uma propriedade
    • IntlChar::getPropertyValueEnum - Obtém o valor da propriedade para um nome de valor fornecido
    • IntlChar::getPropertyValueName - Obtém o nome Unicode para um valor de propriedade
    • IntlChar::getUnicodeVersion - Obtém a versão do Unicode
    • IntlChar::hasBinaryProperty - Verifica uma propriedade binária Unicode para um ponto de código
    • IntlChar::isalnum - Verifica se um ponto de código é um caractere alfanumérico
    • IntlChar::isalpha - Verifica se um ponto de código é uma letra
    • IntlChar::isbase - Verifica se um ponto de código é um caractere base
    • IntlChar::isblank - Verifica se um ponto de código é um caractere "vazio" ou um "espaço horizontal"
    • IntlChar::iscntrl - Verifica se um ponto de código é um caractere de controle
    • IntlChar::isdefined - Verifica se o ponto de código está definido
    • IntlChar::isdigit - Verifica se um ponto de código é um caractere de dígito
    • IntlChar::isgraph - Verifica se um ponto de código é um caractere gráfico
    • IntlChar::isIDIgnorable - Verifica se um ponto de código é um caractere ignorável
    • IntlChar::isIDPart - Verifica se um ponto de código é permissível em um identificador
    • IntlChar::isIDStart - Verifica se um ponto de código é permissível como o primeiro caractere em um identificador
    • IntlChar::isISOControl - Verifica se o ponto de código é um código de controle ISO
    • IntlChar::isJavaIDPart - Verifica se um ponto de código é permissível em um identificador Java
    • IntlChar::isJavaIDStart - Veririca se um ponto de código é permissível como o primeiro caractere em um identificador Java
    • IntlChar::isJavaSpaceChar - Veririca se um ponto de código é um caractere de espaçamento de acordo com o Java
    • IntlChar::islower - Verifica se um ponto de código é uma letra minúscula
    • IntlChar::isMirrored - Verifica se um ponto de código tem a propriedade Bidi_Mirrored
    • IntlChar::isprint - Verifica se um ponto de código é um caractere imprimível
    • IntlChar::ispunct - Verifica se um ponto de código é um caractere de pontuação
    • IntlChar::isspace - Verifica se um ponto de código é um caractere de espaçamento
    • IntlChar::istitle - Verifica se um ponto de código é uma letra com grafia mista
    • IntlChar::isUAlphabetic - Verifica se um ponto de código tem a propriedade Alphabetic do Unicode
    • IntlChar::isULowercase - Verifica se um ponto de código tem a propriedade Lowercase do Unicode
    • IntlChar::isupper - Verifica se um ponto de código tem a categoria geral "Lu" (letra maiúscula)
    • IntlChar::isUUppercase - Veririca se um ponto de código tem a propriedade Uppercase do Unicode
    • IntlChar::isUWhiteSpace - Verifica se um ponto de código tem a propriedade White_Space do Unicode
    • IntlChar::isWhitespace - Verifica se um ponto de código é um caractere de espaço em branco de acordo com a ICU
    • IntlChar::isxdigit - Verifica se um ponto de código é um dígito hexadecimal
    • IntlChar::ord - Retorna o valor do ponto de código Unicode do caractere
    • IntlChar::tolower - Transforma o caractere Unicode em minúscula
    • IntlChar::totitle - Transforma o caractere Unicode em letra de título
    • IntlChar::toupper - Transforma um caractere Unicode em maiúscula
    • IntlCodePointBreakIterator::getLastCodePoint - Obtém o último code point passado após avançar ou retroceder o iterador
    • IntlDateFormatter::create - Cria um formatador de data
    • IntlDateFormatter::format - Formata data/horário como uma string
    • IntlDateFormatter::formatObject - Formata um objeto
    • IntlDateFormatter::getCalendar - Obtém o tipo de calendário usado para o IntlDateFormatter
    • IntlDateFormatter::getCalendarObject - Obtém uma cópia do objeto de calendário do formatador
    • IntlDateFormatter::getDateType - Obtém o tipo de data usado para o IntlDateFormatter
    • IntlDateFormatter::getErrorCode - Obtém o código de erro da última operação
    • IntlDateFormatter::getErrorMessage - Obtém a mensagem de erro da última operação
    • IntlDateFormatter::getLocale - Obtém a localidade usada pelo formatador
    • IntlDateFormatter::getPattern - Obtém o modelo usado para o IntlDateFormatter
    • IntlDateFormatter::getTimeType - Obtém o tipo de horário usado para o IntlDateFormatter
    • IntlDateFormatter::getTimeZone - Obtem o fuso horário do formatador
    • IntlDateFormatter::getTimeZoneId - Obtém o identificador de fuso horário usado para o IntlDateFormatter
    • IntlDateFormatter::isLenient - Obtém a leniência usada para o IntlDateFormatter
    • IntlDateFormatter::localtime - Interpreta uma string para um valor de horário baseado em campos
    • IntlDateFormatter::parse - Interpreta uma string para uma valor de timestamp
    • IntlDateFormatter::setCalendar - Define o tipo de calendário usado pelo formatador
    • IntlDateFormatter::setLenient - Define a leniência do interpretador
    • IntlDateFormatter::setPattern - Define o modelo usado para o IntlDateFormatter
    • IntlDateFormatter::setTimeZone - Define o fuso horário do formatador
    • IntlDatePatternGenerator::create - Cria uma nova instância de IntlDatePatternGenerator
    • IntlDatePatternGenerator::getBestPattern - Determina o formato de data/horário mais adequado
    • IntlGregorianCalendar::createFromDate - Cria uma nova instância de IntlGregorianCalendar a partir de uma data
    • IntlGregorianCalendar::createFromDateTime - Cria uma instância de IntlGregorianCalendar a partir de data e horário
    • IntlGregorianCalendar::getGregorianChange - Obtém a data de mudança do calendário gregoriano
    • IntlGregorianCalendar::isLeapYear - Determina se o ano é bissexto
    • IntlGregorianCalendar::setGregorianChange - Define a data de mudança do calendário gregoriano
    • IntlGregorianCalendar::__construct - Cria um objeto de calendário gregoriano
    • IntlIterator::current - Retorna o elemento atual
    • IntlIterator::key - Retorna a chave do elemento atual
    • IntlIterator::next - Avança para o próximo elemento
    • IntlIterator::rewind - Rebobina o iterador para o primeiro elemento
    • IntlIterator::valid - Verifica se a posição atual é válida
    • IntlPartsIterator::getBreakIterator - Obtém o IntlBreakIterator que é utilizado pelo iterador
    • IntlRuleBasedBreakIterator::getBinaryRules - Obtém a forma binária de regras compiladas
    • IntlRuleBasedBreakIterator::getRules - Obtém o conjunto de regras usado para criar este objeto
    • IntlRuleBasedBreakIterator::getRuleStatus - Obtém o maior valor de status a partir de regras de quebras que determinaram a posição de quebra atual
    • IntlRuleBasedBreakIterator::getRuleStatusVec - Obtém os valores de status das regras de quebra que determinaram a posição de quebra atual
    • IntlRuleBasedBreakIterator::__construct - Creia um iderador a partir de um conjunto de regras
    • IntlTimeZone::countEquivalentIDs - Obtém o número de IDs no grupo de equivalÇencia que inclui o ID informado
    • IntlTimeZone::createDefault - Create a new copy of the default timezone for this host
    • IntlTimeZone::createEnumeration - Obtém uma enumeração a partir de IDs de fuso horário associados com o país informado ou com o deslocamento UTC
    • IntlTimeZone::createTimeZone - Cria um objeto IntlTimeZone para o ID informado
    • IntlTimeZone::createTimeZoneIDEnumeration - Obtém uma enumeração a partir de IDs de fuso horário do sistema com as condições de filtro informadas
    • IntlTimeZone::fromDateTimeZone - Cria um objeto IntlTimeZone a partir de um DateTimeZone
    • IntlTimeZone::getCanonicalID - Obtém o ID do fuso horário de sistema canônico ou o cutomizado normalizado para o ID de fuso horário informado
    • IntlTimeZone::getDisplayName - Obtém o nome do fuso horário adequado para apresentação ao usuário
    • IntlTimeZone::getDSTSavings - Obtém a quantidade de tempo a ser adicionado ao horário local padrão para obter o horário local real de relógio
    • IntlTimeZone::getEquivalentID - Obtém um ID no grupo de equivalência que inclui o ID informado
    • IntlTimeZone::getErrorCode - Obtém o último código de erro no objeto
    • IntlTimeZone::getErrorMessage - Obtém a última mensagem de erro no objeto
    • IntlTimeZone::getGMT - Cria um fuso horário GMT (UTC)
    • IntlTimeZone::getID - Obtém o ID do fuso horário
    • IntlTimeZone::getIDForWindowsID - Traduz um fuso horário do Windows para um fuso horário de sistema
    • IntlTimeZone::getOffset - Obtém o deslocamento UTC padrão e o deslocamento com horário de verão para um determinado timestamp Unix
    • IntlTimeZone::getRawOffset - Obtém o deslocamento UTC puro (antes de considerar horário de verão)
    • IntlTimeZone::getRegion - Obtém o código da região associada com o ID de fuso horário de sistema informado
    • IntlTimeZone::getTZDataVersion - Obtém a versão de dados de fuso horário atualmente usados pela ICU
    • IntlTimeZone::getUnknown - Obtém o fuso horário "desconhecido"
    • IntlTimeZone::getWindowsID - Traduz um fuso horário de sistema em um fuso horário do Windows
    • IntlTimeZone::hasSameRules - Verifica se um fuso horário tem as mesmas regras e deslocamentos de um outro
    • IntlTimeZone::toDateTimeZone - Converte em um objeto DateTimeZone
    • IntlTimeZone::useDaylightTime - Verifica se o fuso horário usa horário de verão
    • IntlTimeZone::__construct - Construtor privado para não permitir instanciação direta
    • intl_error_name - Obtém nome simbólico para um código de erro informado
    • intl_get_error_code - Obtém o último código de erro
    • intl_get_error_message - Obtém a descrição do último erro
    • intl_is_failure - Verifica se o código de erro fornecido indica falha
    • intval - Obtém o valor em número inteiro de uma variável
    • in_array - Checa se um valor existe em um array
    • ip2long - Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer
    • iptcembed - Incorpora dados binários IPTC em uma imagem JPEG
    • iptcparse - Interpreta um bloco IPTC binário em etiquetas simples
    • isset - Determina se uma variável está declarada e é diferente de null
    • is_a - Verifica se um objeto é ou herda de uma classe
    • is_array - Verifica se a variável é um array
    • is_bool - Verifica se a variável é um booleano
    • is_callable - Verifica se um valor pode ser chamado como uma função a partir do escopo atual.
    • is_countable - Verifica se o conteúdo de uma variável é um valor contável
    • is_dir - Diz se o caminho é um diretório
    • is_double - Sinônimo de is_float
    • is_executable - Diz se um arquivo é executável
    • is_file - Informa se o arquivo é um arquivo comum
    • is_finite - Verifica se um float é finito
    • is_float - Verifica se a variável é do tipo float
    • is_infinite - Verifica se um float é infinito
    • is_int - Informa se o tipo de uma variável é um inteiro
    • is_integer - Sinônimo de is_int
    • is_iterable - Verifica se o conteúdo de uma variável é um valor iterável
    • is_link - Informa se o arquivo é uma ligação simbólica
    • is_long - Sinônimo de is_int
    • is_nan - Verifica se um float é NAN
    • is_null - Verifica se uma variável é null
    • is_numeric - Verifica se uma variável é um número ou uma string numérica
    • is_object - Verifica se uma variável é um objeto
    • is_readable - Diz se o arquivo existe e se ele pode ser lido
    • is_real - Sinônimo de is_float
    • is_resource - Verifica se uma variável é um recurso
    • is_scalar - Verifica se é uma váriavel é escalar
    • is_soap_fault - Checks if a SOAP call has failed
    • is_string - Verifica se o tipo de uma variável é string
    • is_subclass_of - Verifica se o objeto tem esta classe como uma de suas classes pai
    • is_tainted - Checks whether a string is tainted
    • is_uploaded_file - Informa se o arquivo foi enviado por POST HTTP
    • is_writable - Diz se o arquivo pode ser modificado
    • is_writeable - Sinônimo de is_writable
    • Iterator::current - Retorna o elemento atual
    • Iterator::key - Retorna a chave do elemento atual
    • Iterator::next - Move para o próximo elemento
    • Iterator::rewind - Retreocede o Iterator para o primeiro elemento
    • Iterator::valid - Verifica se a posição atual é válida
    • IteratorAggregate::getIterator - Recupera um iterator externo
    • IteratorIterator::current - Obtém o valor atual
    • IteratorIterator::getInnerIterator - Obtém o iterador interno
    • IteratorIterator::key - Obtém a chave do elemento atual
    • IteratorIterator::next - Avança para o próximo elemento
    • IteratorIterator::rewind - Rebobina para o primeiro elemento
    • IteratorIterator::valid - Verifica se o elemento atual é válido
    • IteratorIterator::__construct - Cria um iterador de qualquer coisa que seja percorrível
    • iterator_apply - Chama uma função para cada elemento em um iterador
    • iterator_count - Conta os elementos em um iterador
    • iterator_to_array - Copia o iterador em um array
  • j
    • jddayofweek - Retorna o dia da semana de um dia Juliano
    • jdmonthname - Retorna o nome de um mês
    • jdtofrench - Converte do calendário "Julian Day Count" para o calendário Republicano Francês
    • jdtogregorian - Converte uma data no formato "Julian Day Count" para o formato Gregoriano
    • jdtojewish - Converte uma contagem de dias Julianos para uma data do calendário Judeu
    • jdtojulian - Converte uma data do calendário "Julian Day Count" para o calendário "Julian"
    • jdtounix - Converte do formato de dada Juliana para Unix timestamp
    • jewishtojd - Converte uma data do calendário Judaico para o calendário "Julian Day Count"
    • join - Sinônimo de implode
    • jpeg2wbmp - Converte arquivo de imagem JPEG para WBMP
    • JsonSerializable::jsonSerialize - Especifica os dados que devem ser serializados para JSON
    • json_decode - Decodifica uma string JSON
    • json_encode - Retorna a representação JSON de um valor
    • json_last_error - Retorna o último erro ocorrido
    • json_last_error_msg - Retorna uma string contento a mensagem de erro da última chamada de json_encode() ou json_decode()
    • json_validate - Verifica se uma string contém JSON válido
    • juliantojd - Converte datas no formato "Julian" para o formato "Julian Day Count"
  • k
    • key - Retorna uma chave de um array
    • key_exists - Sinônimo de array_key_exists
    • krsort - Ordena um array pelas chaves em ordem descrescente
    • ksort - Ordena um array pelas chaves em ordem crescente
  • l
    • lcfirst - Torna minúsculo o primeiro caractere de uma string
    • lcg_value - Combined linear congruential generator
    • lchgrp - Modifica o grupo de porprietário da ligação simbólica
    • lchown - Modifica o proprietário da ligação simbólica
    • ldap_8859_to_t61 - Translate 8859 characters to t61 characters
    • ldap_add - Add entries to LDAP directory
    • ldap_add_ext - Add entries to LDAP directory
    • ldap_bind - Bind to LDAP directory
    • ldap_bind_ext - Bind to LDAP directory
    • ldap_close - Sinônimo de ldap_unbind
    • ldap_compare - Compare value of attribute found in entry specified with DN
    • ldap_connect - Connect to an LDAP server
    • ldap_connect_wallet - Connect to an LDAP server
    • ldap_control_paged_result - Send LDAP pagination control
    • ldap_control_paged_result_response - Retrieve the LDAP pagination cookie
    • ldap_count_entries - Count the number of entries in a search
    • ldap_count_references - Counts the number of references in a search result
    • ldap_delete - Delete an entry from a directory
    • ldap_delete_ext - Delete an entry from a directory
    • ldap_dn2ufn - Convert DN to User Friendly Naming format
    • ldap_err2str - Convert LDAP error number into string error message
    • ldap_errno - Return the LDAP error number of the last LDAP command
    • ldap_error - Return the LDAP error message of the last LDAP command
    • ldap_escape - Escape a string for use in an LDAP filter or DN
    • ldap_exop - Performs an extended operation
    • ldap_exop_passwd - PASSWD extended operation helper
    • ldap_exop_refresh - Refresh extended operation helper
    • ldap_exop_sync - Performs an extended operation
    • ldap_exop_whoami - WHOAMI extended operation helper
    • ldap_explode_dn - Splits DN into its component parts
    • ldap_first_attribute - Return first attribute
    • ldap_first_entry - Return first result id
    • ldap_first_reference - Return first reference
    • ldap_free_result - Free result memory
    • ldap_get_attributes - Get attributes from a search result entry
    • ldap_get_dn - Get the DN of a result entry
    • ldap_get_entries - Get all result entries
    • ldap_get_option - Get the current value for given option
    • ldap_get_values - Get all values from a result entry
    • ldap_get_values_len - Get all binary values from a result entry
    • ldap_list - Single-level search
    • ldap_modify - Sinônimo de ldap_mod_replace
    • ldap_modify_batch - Batch and execute modifications on an LDAP entry
    • ldap_mod_add - Add attribute values to current attributes
    • ldap_mod_add_ext - Add attribute values to current attributes
    • ldap_mod_del - Delete attribute values from current attributes
    • ldap_mod_del_ext - Delete attribute values from current attributes
    • ldap_mod_replace - Replace attribute values with new ones
    • ldap_mod_replace_ext - Replace attribute values with new ones
    • ldap_next_attribute - Get the next attribute in result
    • ldap_next_entry - Get next result entry
    • ldap_next_reference - Get next reference
    • ldap_parse_exop - Parse result object from an LDAP extended operation
    • ldap_parse_reference - Extract information from reference entry
    • ldap_parse_result - Extract information from result
    • ldap_read - Read an entry
    • ldap_rename - Modify the name of an entry
    • ldap_rename_ext - Modify the name of an entry
    • ldap_sasl_bind - Bind to LDAP directory using SASL
    • ldap_search - Search LDAP tree
    • 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 on the client side
    • ldap_start_tls - Start TLS
    • ldap_t61_to_8859 - Translate t61 characters to 8859 characters
    • ldap_unbind - Unbind from LDAP directory
    • levenshtein - Calculate Levenshtein distance between two strings
    • libxml_clear_errors - Limpa o buffer de erro da libxml
    • libxml_disable_entity_loader - Desabilita a capacidade de carregar entidades externas
    • libxml_get_errors - Obtém um array de erros
    • libxml_get_external_entity_loader - Obtém o carregador atual de entidade externa
    • libxml_get_last_error - Obtém o último erro da libxml
    • libxml_set_external_entity_loader - Altera o carregador padrão de entidades externas
    • libxml_set_streams_context - Define o contexto de fluxos para o próximo carregamento ou escrita de documento libxml
    • libxml_use_internal_errors - Desabilita erros da libxml e permite que o usuário obtenha informações de erro conforme necessário
    • LimitIterator::current - Obtém o elemento atual
    • LimitIterator::getPosition - Retorna a posição atual
    • LimitIterator::key - Obtém a chave atual
    • LimitIterator::next - Avança o iterador
    • LimitIterator::rewind - Retorna o iterador para o começo especificado no construtor
    • LimitIterator::seek - Aponta para a posição especificada
    • LimitIterator::valid - Verifica se o elemento atual é válido ou não
    • LimitIterator::__construct - Constrói um LimitIterator
    • link - Criando uma ligação rígida
    • linkinfo - Obtém informação sobre uma ligação
    • list - Cria variáveis como se fossem arrays
    • Locale::acceptFromHttp - Tenta descobrir a melhor localidade disponível baseado no cabeçalho HTTP "Accept-Language"
    • Locale::canonicalize - Canoniza a string de localidade
    • Locale::composeLocale - Retorna ID de localidade corretamente ordenado e delimitado
    • Locale::filterMatches - Verifica se um filtro de etiqueta de língua corresponde à localidade
    • Locale::getAllVariants - Obtém as variantes para a localidade
    • Locale::getDefault - Obtém o valor de localidade padrão da variável global de INTL 'default_locale'
    • Locale::getDisplayLanguage - Retorna um nome apropriadamente localizado para a língua da localidade
    • Locale::getDisplayName - Retorna um nome apropriadamente localizado para a localidade
    • Locale::getDisplayRegion - Retorna um nome apropriadamente localizado para a região da localidade
    • Locale::getDisplayScript - Retorna um nome apropriadamente localizado para o tipo de escrita da localidade
    • Locale::getDisplayVariant - Retorna um nome apropriadamente localizado para as variantes da localidade
    • Locale::getKeywords - Obtém as palavras-chave para a localidade
    • Locale::getPrimaryLanguage - Obtém a língua primária para a localidade
    • Locale::getRegion - Obtém a região para a localidade
    • Locale::getScript - Obtém o tipo de escrita para a localidade
    • Locale::lookup - Pesquisa a lista de etiquetas de língua pela melhor correspondência à língua
    • Locale::parseLocale - Retorna um array de chaves-valores de elementos de sub-etiquetas de ID de localidade
    • Locale::setDefault - Define a localidade padrão em tempo de execução
    • localeconv - Get numeric formatting information
    • localtime - Obtém o horário local
    • log - Logaritmo natural
    • log1p - Retorna log(1 + número), calculado de forma que seja preciso mesmo quando o valor do número seja próximo de zero.
    • log10 - Logaritmo na base 10
    • long2ip - Converts a long integer address into a string in (IPv4) Internet standard dotted format
    • lstat - Obtém informações sobre um arquivo ou ligação simbólica
    • ltrim - Retira espaços em branco (ou outros caracteres) do início de uma string
    • Lua::assign - Atribui uma variável PHP para o script Lua
    • Lua::call - Executa funções Lua
    • Lua::eval - Avalia uma string como código Lua
    • Lua::getVersion - Obtém a versão do interpretador Lua
    • Lua::include - Inclui e interpreta um arquivo de script Lua
    • Lua::registerCallback - Registra uma função PHP no interpretador Lua
    • Lua::__construct - Construtor Lua
    • LuaClosure::__invoke - Invoca uma closure lua
    • LuaSandbox::callFunction - Call a function in a Lua global variable
    • LuaSandbox::disableProfiler - Disable the profiler
    • LuaSandbox::enableProfiler - Enable the profiler.
    • LuaSandbox::getCPUUsage - Fetch the current CPU time usage of the Lua environment
    • LuaSandbox::getMemoryUsage - Fetch the current memory usage of the Lua environment
    • LuaSandbox::getPeakMemoryUsage - Fetch the peak memory usage of the Lua environment
    • LuaSandbox::getProfilerFunctionReport - Fetch profiler data
    • LuaSandbox::getVersionInfo - Return the versions of LuaSandbox and Lua
    • LuaSandbox::loadBinary - Load a precompiled binary chunk into the Lua environment
    • LuaSandbox::loadString - Load Lua code into the Lua environment
    • LuaSandbox::pauseUsageTimer - Pause the CPU usage timer
    • LuaSandbox::registerLibrary - Register a set of PHP functions as a Lua library
    • LuaSandbox::setCPULimit - Set the CPU time limit for the Lua environment
    • LuaSandbox::setMemoryLimit - Set the memory limit for the Lua environment
    • LuaSandbox::unpauseUsageTimer - Unpause the timer paused by LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction - Wrap a PHP callable in a LuaSandboxFunction
    • LuaSandboxFunction::call - Call a Lua function
    • LuaSandboxFunction::dump - Dump the function as a binary blob
    • LuaSandboxFunction::__construct - Unused
    • lzf_compress - Compressão LZF
    • lzf_decompress - Descompressão LZF
    • lzf_optimized_for - Determina para quê a extensão LZF foi otimizada
  • m
    • mail - Envia e-mail
    • mailparse_determine_best_xfer_encoding - Obtém a melhor forma de codificação
    • mailparse_msg_create - Cria um recurso de email MIME
    • mailparse_msg_extract_part - Extrai/decodifica uma seção da mensagem
    • mailparse_msg_extract_part_file - Extrai/decodifica uma seção da mensagem
    • mailparse_msg_extract_whole_part_file - Extrai uma seção da mensagem incluindo cabeçalhos sem decodificar a codificação de transferência
    • mailparse_msg_free - Libera um recurso MIME
    • mailparse_msg_get_part - Retorna um identificador para uma seção específica em uma mensagem MIME
    • mailparse_msg_get_part_data - Retorna um array associativo com informações sobre a mensagem
    • mailparse_msg_get_structure - Retorna um array de nomes de seções MIME na mensagem fornecida
    • mailparse_msg_parse - Faz o parse incremental de dados no buffer
    • mailparse_msg_parse_file - Faz o parsing de um arquivo
    • mailparse_rfc822_parse_addresses - Faz o parse de endereços compatíveis com o RFC 822
    • mailparse_stream_encode - Transmite dados do ponteiro do arquivo de origem, aplica a codificação e escreve no destfp
    • mailparse_uudecode_all - Analisa os dados de fp e extrai cada arquivo uuencoded incorporado.
    • max - Localiza o maior valor
    • mb_check_encoding - Verifica se as strings são válidas para a codificação especificada
    • mb_chr - Retorna um caractere pelo valor do ponto de código Unicode
    • mb_convert_case - Realiza a conversão de caixa em uma string
    • mb_convert_encoding - Converte uma string de uma codificação de caracteres para outra
    • mb_convert_kana - Converte "kana" de um tipo para outro ("zen-kaku", "han-kaku" e mais)
    • mb_convert_variables - Converte o código de caracteres em variável(is)
    • mb_decode_mimeheader - Decodifica string no campo de cabeçalho MIME
    • mb_decode_numericentity - Decodifica referência de string numérica HTML para caractere
    • mb_detect_encoding - Detectar a codificação de caracteres
    • mb_detect_order - Define/Obtém a ordem de detecção de codificação de caracteres
    • mb_encode_mimeheader - Codificar string para cabeçalho MIME
    • mb_encode_numericentity - Codificar caractere para referência numérica HTML
    • mb_encoding_aliases - Obtém aliases de um tipo de codificação conhecido
    • mb_ereg - Correspondência de expressão regular com suporte multibyte
    • mb_eregi - Correspondência de expressão regular sem diferenciar maiúsculas e minúsculas com suporte multibyte
    • mb_eregi_replace - Substituir expressão regular com suporte multibyte, ignorando maiúsculas e minúsculas
    • mb_ereg_match - Coincidência de expressão regular para string multibyte
    • mb_ereg_replace - Substituir expressão regular com suporte a multibyte
    • mb_ereg_replace_callback - Realiza uma busca e substituição de expressão regular com suporte a string multibyte usando um callback
    • mb_ereg_search - Correspondência de expressão regular multibyte para uma string multibyte predefinida
    • mb_ereg_search_getpos - Retorna o ponto de início para a próxima correspondência de expressão regular
    • mb_ereg_search_getregs - Recupera o resultado da última correspondência de expressão regular multibyte
    • mb_ereg_search_init - Configura a string e a expressão regular para uma correspondência de expressão regular multibyte
    • mb_ereg_search_pos - Retorna a posição e o comprimento de uma parte correspondida da expressão regular multibyte para uma string multibyte predefinida
    • mb_ereg_search_regs - Retorna a parte correspondida de uma expressão regular multibyte
    • mb_ereg_search_setpos - Define o ponto de início para a próxima correspondência de expressão regular
    • mb_get_info - Obtém configurações internas do mbstring
    • mb_http_input - Detecta a codificação de caracteres de entrada HTTP
    • mb_http_output - Define/Obtém a codificação de caracteres de saída HTTP
    • mb_internal_encoding - Define/Obtém a codificação de caracteres interna
    • mb_language - Define/Obtém o idioma atual
    • mb_list_encodings - Retorna um array de todas as codificações suportadas
    • mb_ord - Obtém o ponto de código Unicode do caractere
    • mb_output_handler - Callback converte a codificação de caracteres no buffer de saída
    • mb_parse_str - Analisa dados GET/POST/COOKIE e define variável global
    • mb_preferred_mime_name - Obter uma string MIME charset
    • mb_regex_encoding - Define/Obtém codificação de caracteres para regex multibyte
    • mb_regex_set_options - Define/Obtém as opções padrão para funções mbregex
    • mb_scrub - Substitui sequências de bytes malformadas pelo caractere substituto
    • mb_send_mail - Envia email codificado
    • mb_split - Divide uma string multibyte usando expressão regular
    • mb_strcut - Obtém parte da string
    • mb_strimwidth - Obtém string truncada com largura especificada
    • mb_stripos - Encontra a posição da primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
    • mb_stristr - Encontra a primeira ocorrência de uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
    • mb_strlen - Obtém o comprimento da string
    • mb_strpos - Encontrar a posição da primeira ocorrência de uma string em outra
    • mb_strrchr - Encontrar a última ocorrência de um caractere em uma string dentro de outra
    • mb_strrichr - Encontra a última ocorrência de um caractere em uma string dentro de outra, sem diferenciar maiúsculas de minúsculas
    • mb_strripos - Encontra a posição da última ocorrência de uma string em outra, sem diferenciar maiúsculas de minúsculas
    • mb_strrpos - Encontra a posição da última ocorrência de uma string em outra string
    • mb_strstr - Encontra a primeira ocorrência de uma string em outra
    • mb_strtolower - Torna uma string minúscula
    • mb_strtoupper - Faz uma string ficar em maiúsculas
    • mb_strwidth - Retorna a largura da string
    • mb_str_pad - Preenche uma string multibyte para um comprimento específico com outra string multibyte
    • mb_str_split - Dada uma string multibyte, retorna um array de seus caracteres
    • mb_substitute_character - Define/Obtém caractere de substituição
    • mb_substr - Obtém parte da string
    • mb_substr_count - Conta o número de ocorrências de substring
    • mcrypt_create_iv - Creates an initialization vector (IV) from a random source
    • mcrypt_decrypt - Decrypts crypttext with given parameters
    • mcrypt_encrypt - Encrypts plaintext with given parameters
    • 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 - Checks whether the algorithm of the opened mode is a block algorithm
    • mcrypt_enc_is_block_algorithm_mode - Checks whether the encryption of the opened mode works on blocks
    • mcrypt_enc_is_block_mode - Checks whether the opened mode outputs blocks
    • mcrypt_enc_self_test - Runs a self test on the opened module
    • mcrypt_generic - This function encrypts data
    • mcrypt_generic_deinit - This function deinitializes an encryption module
    • mcrypt_generic_init - This function initializes all buffers needed for encryption
    • mcrypt_get_block_size - Gets the block size of the specified cipher
    • mcrypt_get_cipher_name - Gets the name of the specified cipher
    • mcrypt_get_iv_size - Returns the size of the IV belonging to a specific cipher/mode combination
    • mcrypt_get_key_size - Gets the key size of the specified cipher
    • mcrypt_list_algorithms - Gets an array of all supported ciphers
    • mcrypt_list_modes - Gets an array of all supported modes
    • mcrypt_module_close - Closes 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 - This function checks whether the specified algorithm is a block algorithm
    • mcrypt_module_is_block_algorithm_mode - Returns if the specified module is a block algorithm or not
    • mcrypt_module_is_block_mode - Returns if 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
    • md5 - Calculate the md5 hash of a string
    • md5_file - Calculates the md5 hash of a given file
    • mdecrypt_generic - Decrypts data
    • Memcache::add - Add an item to the server
    • Memcache::addServer - Add a memcached server to connection pool
    • Memcache::close - Close memcached server connection
    • Memcache::connect - Open memcached server connection
    • Memcache::decrement - Decrement item's value
    • Memcache::delete - Delete item from the server
    • Memcache::flush - Flush all existing items at the server
    • Memcache::get - Retrieve item from the server
    • Memcache::getExtendedStats - Get statistics from all servers in pool
    • Memcache::getServerStatus - Returns server status
    • Memcache::getStats - Get statistics of the server
    • Memcache::getVersion - Return version of the server
    • Memcache::increment - Increment item's value
    • Memcache::pconnect - Open memcached server persistent connection
    • Memcache::replace - Replace value of the existing item
    • Memcache::set - Store data at the server
    • Memcache::setCompressThreshold - Enable automatic compression of large values
    • Memcache::setServerParams - Changes server parameters and status at runtime
    • Memcached::add - Adiciona um item em uma nova key
    • Memcached::addByKey - Adiciona um item sob uma nova key em um servidor específico
    • Memcached::addServer - Adiciona um servidor ao pool de servidores
    • Memcached::addServers - Adiciona múltiplos servidores ao pool de servidores
    • Memcached::append - Anexa dados a um item existente
    • Memcached::appendByKey - Anexa dados a um item existente em um servidor específico
    • Memcached::cas - Compara e troca um item
    • Memcached::casByKey - Compara e troca um item em um servidor específico
    • Memcached::decrement - Decrementa o valor do item numérico
    • Memcached::decrementByKey - Decrementa o valor do item numérico, armazenado em um servidor específico
    • Memcached::delete - Remover um item
    • Memcached::deleteByKey - Remover um item de um servidor específico
    • Memcached::deleteMulti - Remover vários itens
    • Memcached::deleteMultiByKey - Remover vários itens de um servidor específico
    • Memcached::fetch - Busca o próximo resultado
    • Memcached::fetchAll - Busca todos os resultados restantes
    • Memcached::flush - Invalida todos os itens no cache
    • Memcached::get - Recupera um item
    • Memcached::getAllKeys - Obtém as keys armazenadas em todos os servidores
    • Memcached::getByKey - Recupera item de um servidor específico
    • Memcached::getDelayed - Solicita vários itens
    • Memcached::getDelayedByKey - Solicita vários itens de um servidor específico
    • Memcached::getMulti - Recupera vários itens
    • Memcached::getMultiByKey - Recupere vários itens de um servidor específico
    • Memcached::getOption - Recupera um valor de opção do Memcached
    • Memcached::getResultCode - Retorna o código de resultado da última operação
    • Memcached::getResultMessage - Retorna a mensagem descrevendo o resultado da última operação
    • Memcached::getServerByKey - Mapear uma key para um servidor
    • Memcached::getServerList - Obtenha a lista dos servidores no pool
    • Memcached::getStats - Obtem estatísticas do pool de servidores
    • Memcached::getVersion - Obtem informações da versão do pool de servidores
    • Memcached::increment - Incrementa o valor do item numérico
    • Memcached::incrementByKey - Incrementa o valor do item numérico, armazenado em um servidor específico
    • Memcached::isPersistent - Verifica se uma conexão permanente com o memcache está sendo usada
    • Memcached::isPristine - Verifica se a instância foi criada recentemente
    • Memcached::prepend - Anexa dados a um item existente
    • Memcached::prependByKey - Anexa dados a um item existente em um servidor específico
    • Memcached::quit - Fecha todas as conexões abertas
    • Memcached::replace - Substitua o item em uma key existente
    • Memcached::replaceByKey - Substitua o item em uma key existente em um servidor específico
    • Memcached::resetServerList - Limpa todos os servidores da lista de servidores
    • Memcached::set - Armazena um item
    • Memcached::setByKey - Armazena um item em um servidor específico
    • Memcached::setMulti - Armazena vários itens
    • Memcached::setMultiByKey - Armazena vários itens em um servidor específico
    • Memcached::setOption - Define uma opção Memcached
    • Memcached::setOptions - Define opções do Memcached
    • Memcached::setSaslAuthData - Define as credenciais a serem usadas para autenticação
    • Memcached::touch - Define uma nova expiração para um item
    • Memcached::touchByKey - Define uma nova expiração para um item em um servidor específico
    • Memcached::__construct - Cria uma instância do Memcached
    • memcache_debug - Turn debug output on/off
    • memory_get_peak_usage - Returns the peak of memory allocated by PHP
    • memory_get_usage - Returns the amount of memory allocated to PHP
    • memory_reset_peak_usage - Reset the peak memory usage
    • MessageFormatter::create - Constrói um novo formatador de mensagem
    • MessageFormatter::format - Formata a mensagem
    • MessageFormatter::formatMessage - Formata uma mensagem rapidamente
    • MessageFormatter::getErrorCode - Obtém o código de erro da última operação
    • MessageFormatter::getErrorMessage - Obtém o texto do erro da última operação
    • MessageFormatter::getLocale - Obtém a localidade para a qual o formatador foi criado
    • MessageFormatter::getPattern - Obtém o modelo usado pelo formatador
    • MessageFormatter::parse - Interpreta a string de entrada de acordo com o modelo
    • MessageFormatter::parseMessage - Interpreta rapidamente a string de entrada
    • MessageFormatter::setPattern - Define o modelo usado pelo formatador
    • metaphone - Calculate the metaphone key of a string
    • method_exists - Verifica se o método da classe existe
    • mhash - Computa a hash
    • mhash_count - Obtém o ID de hash mais alto disponível
    • mhash_get_block_size - Obtém o tamanho de bloco da hash especificada
    • mhash_get_hash_name - Obtém o nome da hash especificada
    • mhash_keygen_s2k - Gera uma chave
    • microtime - Retorna o timestamp Unix atual com microssegundos
    • mime_content_type - Detecta o tipo de conteúdo MIME de um arquivo
    • min - Encontra o menor valor
    • mkdir - Cria um diretório
    • mktime - Obtém um timestamp Unix de uma data
    • money_format - Formata um número como uma string de moeda
    • MongoDB\BSON\Binary::getData - Returns the Binary's data
    • MongoDB\BSON\Binary::getType - Returns the Binary's type
    • MongoDB\BSON\Binary::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Binary::serialize - Serialize a Binary
    • MongoDB\BSON\Binary::unserialize - Unserialize a Binary
    • MongoDB\BSON\Binary::__construct - Construct a new Binary
    • MongoDB\BSON\Binary::__toString - Returns the Binary's data
    • MongoDB\BSON\BinaryInterface::getData - Returns the BinaryInterface's data
    • MongoDB\BSON\BinaryInterface::getType - Returns the BinaryInterface's type
    • MongoDB\BSON\BinaryInterface::__toString - Returns the BinaryInterface's data
    • MongoDB\BSON\DBPointer::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\DBPointer::serialize - Serialize a DBPointer
    • MongoDB\BSON\DBPointer::unserialize - Unserialize a DBPointer
    • MongoDB\BSON\DBPointer::__construct - Construct a new DBPointer (unused)
    • MongoDB\BSON\DBPointer::__toString - Returns an empty string
    • MongoDB\BSON\Decimal128::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Decimal128::serialize - Serialize a Decimal128
    • MongoDB\BSON\Decimal128::unserialize - Unserialize a Decimal128
    • MongoDB\BSON\Decimal128::__construct - Construct a new Decimal128
    • MongoDB\BSON\Decimal128::__toString - Returns the string representation of this Decimal128
    • MongoDB\BSON\Decimal128Interface::__toString - Returns the string representation of this Decimal128Interface
    • MongoDB\BSON\Document::fromBSON - Construct a new document instance from a BSON string
    • MongoDB\BSON\Document::fromJSON - Construct a new document instance from a JSON string
    • MongoDB\BSON\Document::fromPHP - Construct a new document instance from PHP data
    • MongoDB\BSON\Document::get - Returns the value of a key in the document
    • MongoDB\BSON\Document::getIterator - Returns an iterator for the BSON document
    • MongoDB\BSON\Document::has - Returns whether a key is present in the document
    • MongoDB\BSON\Document::serialize - Serialize a Document
    • MongoDB\BSON\Document::toCanonicalExtendedJSON - Returns the Canonical Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::toPHP - Returns the PHP representation of the BSON document
    • MongoDB\BSON\Document::toRelaxedExtendedJSON - Returns the Relaxed Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::unserialize - Unserialize a BSON document
    • MongoDB\BSON\Document::__construct - Construct a new BSON document (unused)
    • MongoDB\BSON\Document::__toString - Returns the string representation of this BSON Document
    • MongoDB\BSON\fromJSON - Returns the BSON representation of a JSON value
    • MongoDB\BSON\fromPHP - Returns the BSON representation of a PHP value
    • MongoDB\BSON\Int64::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Int64::serialize - Serialize an Int64
    • MongoDB\BSON\Int64::unserialize - Unserialize an Int64
    • MongoDB\BSON\Int64::__construct - Construct a new Int64
    • MongoDB\BSON\Int64::__toString - Returns the string representation of this Int64
    • MongoDB\BSON\Iterator::current - Returns the current element
    • MongoDB\BSON\Iterator::key - Returns the key of the current element
    • MongoDB\BSON\Iterator::next - Advances the iterator to next element
    • MongoDB\BSON\Iterator::rewind - Rewinds the Iterator to the first element
    • MongoDB\BSON\Iterator::valid - Checks if current position is valid
    • MongoDB\BSON\Iterator::__construct - Construct a new BSON iterator (unused)
    • MongoDB\BSON\Javascript::getCode - Returns the Javascript's code
    • MongoDB\BSON\Javascript::getScope - Returns the Javascript's scope document
    • MongoDB\BSON\Javascript::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Javascript::serialize - Serialize a Javascript
    • MongoDB\BSON\Javascript::unserialize - Unserialize a Javascript
    • MongoDB\BSON\Javascript::__construct - Construct a new Javascript
    • MongoDB\BSON\Javascript::__toString - Returns the Javascript's code
    • MongoDB\BSON\JavascriptInterface::getCode - Returns the JavascriptInterface's code
    • MongoDB\BSON\JavascriptInterface::getScope - Returns the JavascriptInterface's scope document
    • MongoDB\BSON\JavascriptInterface::__toString - Returns the JavascriptInterface's code
    • MongoDB\BSON\MaxKey::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\MaxKey::serialize - Serialize a MaxKey
    • MongoDB\BSON\MaxKey::unserialize - Unserialize a MaxKey
    • MongoDB\BSON\MaxKey::__construct - Construct a new MaxKey
    • MongoDB\BSON\MinKey::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\MinKey::serialize - Serialize a MinKey
    • MongoDB\BSON\MinKey::unserialize - Unserialize a MinKey
    • MongoDB\BSON\MinKey::__construct - Construct a new MinKey
    • MongoDB\BSON\ObjectId::getTimestamp - Returns the timestamp component of this ObjectId
    • MongoDB\BSON\ObjectId::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\ObjectId::serialize - Serialize an ObjectId
    • MongoDB\BSON\ObjectId::unserialize - Unserialize an ObjectId
    • MongoDB\BSON\ObjectId::__construct - Construct a new ObjectId
    • MongoDB\BSON\ObjectId::__toString - Returns the hexidecimal representation of this ObjectId
    • MongoDB\BSON\ObjectIdInterface::getTimestamp - Returns the timestamp component of this ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::__toString - Returns the hexidecimal representation of this ObjectIdInterface
    • MongoDB\BSON\PackedArray::fromPHP - Construct a new BSON array instance from PHP data
    • MongoDB\BSON\PackedArray::get - Returns the value of an index in the array
    • MongoDB\BSON\PackedArray::getIterator - Returns an iterator for the BSON array
    • MongoDB\BSON\PackedArray::has - Returns whether a index is present in the array
    • MongoDB\BSON\PackedArray::serialize - Serialize a BSON array
    • MongoDB\BSON\PackedArray::toPHP - Returns the PHP representation of the BSON array
    • MongoDB\BSON\PackedArray::unserialize - Unserialize a BSON array
    • MongoDB\BSON\PackedArray::__construct - Construct a new BSON array (unused)
    • MongoDB\BSON\PackedArray::__toString - Returns the string representation of this BSON array
    • MongoDB\BSON\Persistable::bsonSerialize - Provides an array or document to serialize as BSON
    • MongoDB\BSON\Regex::getFlags - Returns the Regex's flags
    • MongoDB\BSON\Regex::getPattern - Returns the Regex's pattern
    • MongoDB\BSON\Regex::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Regex::serialize - Serialize a Regex
    • MongoDB\BSON\Regex::unserialize - Unserialize a Regex
    • MongoDB\BSON\Regex::__construct - Construct a new Regex
    • MongoDB\BSON\Regex::__toString - Returns the string representation of this Regex
    • MongoDB\BSON\RegexInterface::getFlags - Returns the RegexInterface's flags
    • MongoDB\BSON\RegexInterface::getPattern - Returns the RegexInterface's pattern
    • MongoDB\BSON\RegexInterface::__toString - Returns the string representation of this RegexInterface
    • MongoDB\BSON\Serializable::bsonSerialize - Provides an array or document to serialize as BSON
    • MongoDB\BSON\Symbol::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Symbol::serialize - Serialize a Symbol
    • MongoDB\BSON\Symbol::unserialize - Unserialize a Symbol
    • MongoDB\BSON\Symbol::__construct - Construct a new Symbol (unused)
    • MongoDB\BSON\Symbol::__toString - Returns the Symbol as a string
    • MongoDB\BSON\Timestamp::getIncrement - Returns the increment component of this Timestamp
    • MongoDB\BSON\Timestamp::getTimestamp - Returns the timestamp component of this Timestamp
    • MongoDB\BSON\Timestamp::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Timestamp::serialize - Serialize a Timestamp
    • MongoDB\BSON\Timestamp::unserialize - Unserialize a Timestamp
    • MongoDB\BSON\Timestamp::__construct - Construct a new Timestamp
    • MongoDB\BSON\Timestamp::__toString - Returns the string representation of this Timestamp
    • MongoDB\BSON\TimestampInterface::getIncrement - Returns the increment component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::getTimestamp - Returns the timestamp component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::__toString - Returns the string representation of this TimestampInterface
    • MongoDB\BSON\toCanonicalExtendedJSON - Returns the Canonical Extended JSON representation of a BSON value
    • MongoDB\BSON\toJSON - Returns the Legacy Extended JSON representation of a BSON value
    • MongoDB\BSON\toPHP - Returns the PHP representation of a BSON value
    • MongoDB\BSON\toRelaxedExtendedJSON - Returns the Relaxed Extended JSON representation of a BSON value
    • MongoDB\BSON\Undefined::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Undefined::serialize - Serialize a Undefined
    • MongoDB\BSON\Undefined::unserialize - Unserialize a Undefined
    • MongoDB\BSON\Undefined::__construct - Construct a new Undefined (unused)
    • MongoDB\BSON\Undefined::__toString - Returns an empty string
    • MongoDB\BSON\Unserializable::bsonUnserialize - Constructs the object from a BSON array or document
    • MongoDB\BSON\UTCDateTime::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\UTCDateTime::serialize - Serialize a UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime - Returns the DateTime representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::unserialize - Unserialize a UTCDateTime
    • MongoDB\BSON\UTCDateTime::__construct - Construct a new UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString - Returns the string representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTimeInterface::toDateTime - Returns the DateTime representation of this UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::__toString - Returns the string representation of this UTCDateTimeInterface
    • MongoDB\Driver\BulkWrite::count - Count number of write operations in the bulk
    • MongoDB\Driver\BulkWrite::delete - Add a delete operation to the bulk
    • MongoDB\Driver\BulkWrite::insert - Add an insert operation to the bulk
    • MongoDB\Driver\BulkWrite::update - Add an update operation to the bulk
    • MongoDB\Driver\BulkWrite::__construct - Create a new BulkWrite
    • MongoDB\Driver\ClientEncryption::addKeyAltName - Adds an alternate name to a key document
    • MongoDB\Driver\ClientEncryption::createDataKey - Creates a key document
    • MongoDB\Driver\ClientEncryption::decrypt - Decrypt a value
    • MongoDB\Driver\ClientEncryption::deleteKey - Deletes a key document
    • MongoDB\Driver\ClientEncryption::encrypt - Encrypt a value
    • MongoDB\Driver\ClientEncryption::encryptExpression - Encrypts a match or aggregate expression
    • MongoDB\Driver\ClientEncryption::getKey - Gets a key document
    • MongoDB\Driver\ClientEncryption::getKeyByAltName - Gets a key document by an alternate name
    • MongoDB\Driver\ClientEncryption::getKeys - Gets all key documents
    • MongoDB\Driver\ClientEncryption::removeKeyAltName - Removes an alternate name from a key document
    • MongoDB\Driver\ClientEncryption::rewrapManyDataKey - Rewraps data keys
    • MongoDB\Driver\ClientEncryption::__construct - Create a new ClientEncryption object
    • MongoDB\Driver\Command::__construct - Create a new Command
    • MongoDB\Driver\Cursor::current - Returns the current element
    • MongoDB\Driver\Cursor::getId - Returns the ID for this cursor
    • MongoDB\Driver\Cursor::getServer - Returns the server associated with this cursor
    • MongoDB\Driver\Cursor::isDead - Checks if the cursor is exhausted or may have additional results
    • MongoDB\Driver\Cursor::key - Returns the current result's index within the cursor
    • MongoDB\Driver\Cursor::next - Advances the cursor to the next result
    • MongoDB\Driver\Cursor::rewind - Rewind the cursor to the first result
    • MongoDB\Driver\Cursor::setTypeMap - Sets a type map to use for BSON unserialization
    • MongoDB\Driver\Cursor::toArray - Returns an array containing all results for this cursor
    • MongoDB\Driver\Cursor::valid - Checks if the current position in the cursor is valid
    • MongoDB\Driver\Cursor::__construct - Create a new Cursor (not used)
    • MongoDB\Driver\CursorId::serialize - Serialize a CursorId
    • MongoDB\Driver\CursorId::unserialize - Unserialize a CursorId
    • MongoDB\Driver\CursorId::__construct - Create a new CursorId (not used)
    • MongoDB\Driver\CursorId::__toString - String representation of the cursor ID
    • MongoDB\Driver\CursorInterface::getId - Returns the ID for this cursor
    • MongoDB\Driver\CursorInterface::getServer - Returns the server associated with this cursor
    • MongoDB\Driver\CursorInterface::isDead - Checks if the cursor may have additional results
    • MongoDB\Driver\CursorInterface::setTypeMap - Sets a type map to use for BSON unserialization
    • MongoDB\Driver\CursorInterface::toArray - Returns an array containing all results for this cursor
    • MongoDB\Driver\Exception\CommandException::getResultDocument - Returns the result document for the failed command
    • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel - Returns whether an error label is associated with an exception
    • MongoDB\Driver\Exception\WriteException::getWriteResult - Returns the WriteResult for the failed write operation
    • MongoDB\Driver\Manager::addSubscriber - Registers a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::createClientEncryption - Create a new ClientEncryption object
    • MongoDB\Driver\Manager::executeBulkWrite - Execute one or more write operations
    • MongoDB\Driver\Manager::executeCommand - Execute a database command
    • MongoDB\Driver\Manager::executeQuery - Execute a database query
    • MongoDB\Driver\Manager::executeReadCommand - Execute a database command that reads
    • MongoDB\Driver\Manager::executeReadWriteCommand - Execute a database command that reads and writes
    • MongoDB\Driver\Manager::executeWriteCommand - Execute a database command that writes
    • MongoDB\Driver\Manager::getEncryptedFieldsMap - Return the encryptedFieldsMap auto encryption option for the Manager
    • MongoDB\Driver\Manager::getReadConcern - Return the ReadConcern for the Manager
    • MongoDB\Driver\Manager::getReadPreference - Return the ReadPreference for the Manager
    • MongoDB\Driver\Manager::getServers - Return the servers to which this manager is connected
    • MongoDB\Driver\Manager::getWriteConcern - Return the WriteConcern for the Manager
    • MongoDB\Driver\Manager::removeSubscriber - Unregisters a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::selectServer - Select a server matching a read preference
    • MongoDB\Driver\Manager::startSession - Start a new client session for use with this client
    • MongoDB\Driver\Manager::__construct - Create new MongoDB Manager
    • MongoDB\Driver\Monitoring\addSubscriber - Registers a monitoring event subscriber globally
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros - Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getError - Returns the Exception associated with the failed command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply - Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand - Returns the command document
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName - Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed - Notification method for a failed command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted - Notification method for a started command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded - Notification method for a successful command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros - Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply - Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\LogSubscriber::log - Notification method for a log message
    • MongoDB\Driver\Monitoring\removeSubscriber - Unregisters a monitoring event subscriber globally
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged - Notification method for a server description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed - Notification method for closing a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed - Notification method for a failed server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted - Notification method for a started server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded - Notification method for a successful server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening - Notification method for opening a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged - Notification method for a topology description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed - Notification method for closing the topology
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening - Notification method for opening the topology
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription - Returns the new description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription - Returns the previous description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros - Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError - Returns the Exception associated with the failed heartbeat
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros - Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply - Returns the heartbeat reply document
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription - Returns the new description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription - Returns the previous description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Query::__construct - Create a new Query
    • MongoDB\Driver\ReadConcern::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadConcern::getLevel - Returns the ReadConcern's "level" option
    • MongoDB\Driver\ReadConcern::isDefault - Checks if this is the default read concern
    • MongoDB\Driver\ReadConcern::serialize - Serialize a ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize - Unserialize a ReadConcern
    • MongoDB\Driver\ReadConcern::__construct - Create a new ReadConcern
    • MongoDB\Driver\ReadPreference::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::getHedge - Returns the ReadPreference's "hedge" option
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds - Returns the ReadPreference's "maxStalenessSeconds" option
    • MongoDB\Driver\ReadPreference::getMode - Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getModeString - Returns the ReadPreference's "mode" option as a string
    • MongoDB\Driver\ReadPreference::getTagSets - Returns the ReadPreference's "tagSets" option
    • MongoDB\Driver\ReadPreference::serialize - Serialize a ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize - Unserialize a ReadPreference
    • MongoDB\Driver\ReadPreference::__construct - Create a new ReadPreference
    • MongoDB\Driver\Server::executeBulkWrite - Execute one or more write operations on this server
    • MongoDB\Driver\Server::executeCommand - Execute a database command on this server
    • MongoDB\Driver\Server::executeQuery - Execute a database query on this server
    • MongoDB\Driver\Server::executeReadCommand - Execute a database command that reads on this server
    • MongoDB\Driver\Server::executeReadWriteCommand - Execute a database command that reads and writes on this server
    • MongoDB\Driver\Server::executeWriteCommand - Execute a database command that writes on this server
    • MongoDB\Driver\Server::getHost - Returns the hostname of this server
    • MongoDB\Driver\Server::getInfo - Returns an array of information describing this server
    • MongoDB\Driver\Server::getLatency - Returns the latency of this server in milliseconds
    • MongoDB\Driver\Server::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Server::getServerDescription - Returns a ServerDescription for this server
    • MongoDB\Driver\Server::getTags - Returns an array of tags describing this server in a replica set
    • MongoDB\Driver\Server::getType - Returns an integer denoting the type of this server
    • MongoDB\Driver\Server::isArbiter - Checks if this server is an arbiter member of a replica set
    • MongoDB\Driver\Server::isHidden - Checks if this server is a hidden member of a replica set
    • MongoDB\Driver\Server::isPassive - Checks if this server is a passive member of a replica set
    • MongoDB\Driver\Server::isPrimary - Checks if this server is a primary member of a replica set
    • MongoDB\Driver\Server::isSecondary - Checks if this server is a secondary member of a replica set
    • MongoDB\Driver\Server::__construct - Create a new Server (not used)
    • MongoDB\Driver\ServerApi::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ServerApi::serialize - Serialize a ServerApi
    • MongoDB\Driver\ServerApi::unserialize - Unserialize a ServerApi
    • MongoDB\Driver\ServerApi::__construct - Create a new ServerApi instance
    • MongoDB\Driver\ServerDescription::getHelloResponse - Returns the server's most recent "hello" response
    • MongoDB\Driver\ServerDescription::getHost - Returns the hostname of this server
    • MongoDB\Driver\ServerDescription::getLastUpdateTime - Returns the server's last update time in microseconds
    • MongoDB\Driver\ServerDescription::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\ServerDescription::getRoundTripTime - Returns the server's round trip time in milliseconds
    • MongoDB\Driver\ServerDescription::getType - Returns a string denoting the type of this server
    • MongoDB\Driver\Session::abortTransaction - Aborts a transaction
    • MongoDB\Driver\Session::advanceClusterTime - Advances the cluster time for this session
    • MongoDB\Driver\Session::advanceOperationTime - Advances the operation time for this session
    • MongoDB\Driver\Session::commitTransaction - Commits a transaction
    • MongoDB\Driver\Session::endSession - Terminates a session
    • MongoDB\Driver\Session::getClusterTime - Returns the cluster time for this session
    • MongoDB\Driver\Session::getLogicalSessionId - Returns the logical session ID for this session
    • MongoDB\Driver\Session::getOperationTime - Returns the operation time for this session
    • MongoDB\Driver\Session::getServer - Returns the server to which this session is pinned
    • MongoDB\Driver\Session::getTransactionOptions - Returns options for the currently running transaction
    • MongoDB\Driver\Session::getTransactionState - Returns the current transaction state for this session
    • MongoDB\Driver\Session::isDirty - Returns whether the session has been marked as dirty
    • MongoDB\Driver\Session::isInTransaction - Returns whether a multi-document transaction is in progress
    • MongoDB\Driver\Session::startTransaction - Starts a transaction
    • MongoDB\Driver\Session::__construct - Create a new Session (not used)
    • MongoDB\Driver\TopologyDescription::getServers - Returns the servers in the topology
    • MongoDB\Driver\TopologyDescription::getType - Returns a string denoting the type of this topology
    • MongoDB\Driver\TopologyDescription::hasReadableServer - Returns whether the topology has a readable server
    • MongoDB\Driver\TopologyDescription::hasWritableServer - Returns whether the topology has a writable server
    • MongoDB\Driver\WriteConcern::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\WriteConcern::getJournal - Returns the WriteConcern's "journal" option
    • MongoDB\Driver\WriteConcern::getW - Returns the WriteConcern's "w" option
    • MongoDB\Driver\WriteConcern::getWtimeout - Returns the WriteConcern's "wtimeout" option
    • MongoDB\Driver\WriteConcern::isDefault - Checks if this is the default write concern
    • MongoDB\Driver\WriteConcern::serialize - Serialize a WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize - Unserialize a WriteConcern
    • MongoDB\Driver\WriteConcern::__construct - Create a new WriteConcern
    • MongoDB\Driver\WriteConcernError::getCode - Returns the WriteConcernError's error code
    • MongoDB\Driver\WriteConcernError::getInfo - Returns metadata document for the WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage - Returns the WriteConcernError's error message
    • MongoDB\Driver\WriteError::getCode - Returns the WriteError's error code
    • MongoDB\Driver\WriteError::getIndex - Returns the index of the write operation corresponding to this WriteError
    • MongoDB\Driver\WriteError::getInfo - Returns metadata document for the WriteError
    • MongoDB\Driver\WriteError::getMessage - Returns the WriteError's error message
    • MongoDB\Driver\WriteResult::getDeletedCount - Returns the number of documents deleted
    • MongoDB\Driver\WriteResult::getInsertedCount - Returns the number of documents inserted (excluding upserts)
    • MongoDB\Driver\WriteResult::getMatchedCount - Returns the number of documents selected for update
    • MongoDB\Driver\WriteResult::getModifiedCount - Returns the number of existing documents updated
    • MongoDB\Driver\WriteResult::getServer - Returns the server associated with this write result
    • MongoDB\Driver\WriteResult::getUpsertedCount - Returns the number of documents inserted by an upsert
    • MongoDB\Driver\WriteResult::getUpsertedIds - Returns an array of identifiers for upserted documents
    • MongoDB\Driver\WriteResult::getWriteConcernError - Returns any write concern error that occurred
    • MongoDB\Driver\WriteResult::getWriteErrors - Returns any write errors that occurred
    • MongoDB\Driver\WriteResult::isAcknowledged - Returns whether the write was acknowledged
    • move_uploaded_file - Move um arquivo enviado para uma nova localização
    • mqseries_back - MQSeries MQBACK
    • mqseries_begin - MQseries MQBEGIN
    • mqseries_close - MQSeries MQCLOSE
    • mqseries_cmit - MQSeries MQCMIT
    • mqseries_conn - MQSeries MQCONN
    • mqseries_connx - MQSeries MQCONNX
    • mqseries_disc - MQSeries MQDISC
    • mqseries_get - MQSeries MQGET
    • mqseries_inq - MQSeries MQINQ
    • mqseries_open - MQSeries MQOPEN
    • mqseries_put - MQSeries MQPUT
    • mqseries_put1 - MQSeries MQPUT1
    • mqseries_set - MQSeries MQSET
    • mqseries_strerror - Returns the error message corresponding to a result code (MQRC)
    • msg_get_queue - Create or attach to a message queue
    • msg_queue_exists - Check whether a message queue exists
    • 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
    • mt_getrandmax - Show largest possible random value
    • mt_rand - Generate a random value via the Mersenne Twister Random Number Generator
    • mt_srand - Seeds the Mersenne Twister Random Number Generator
    • MultipleIterator::attachIterator - Anexa informações do iterador
    • MultipleIterator::containsIterator - Verifica se um iterador está anexado
    • MultipleIterator::countIterators - Obtém o número de instâncias de iteradores anexadas
    • MultipleIterator::current - Obtém as instâncias do iterador registradas
    • MultipleIterator::detachIterator - Desanexa um iterador
    • MultipleIterator::getFlags - Obtém informações sobre as opções
    • MultipleIterator::key - Obtém as instâncias do iterador registradas
    • MultipleIterator::next - Movimenta todos os subiteradores anexados para frente
    • MultipleIterator::rewind - Rebobina todas as instâncias do iterador anexado
    • MultipleIterator::setFlags - Define opções
    • MultipleIterator::valid - Verifica a validade dos subiteradores
    • MultipleIterator::__construct - Constrói um novo MultipleIterator
    • mysqli->errno - Retorna o código de erro para a chamada de função mais recente
    • mysqli->error - Retorna uma string descrevendo o último erro
    • mysqli::$affected_rows - Retorna o número de linhas afetadas pela operação MySQL anterior
    • mysqli::$client_info - Obtém informação do cliente MySQL
    • mysqli::$client_version - Retorna a versão do cliente MySQL como um inteiro
    • mysqli::$connect_errno - Retorna o código de erro da última chamada de conexão
    • mysqli::$connect_error - Retorna uma descrição do último erro de conexão
    • mysqli::$error_list - Retorna uma lista de erros do último comando executado
    • mysqli::$field_count - Retorna o número de campos para a consulta mais recente
    • mysqli::$host_info - Retorna uma string representando o tipo de conexão utilizada
    • mysqli::$info - Recupera informação sobre a recente consulta executada
    • mysqli::$insert_id - Retorna o valor gerado para uma coluna AUTO_INCREMENT pela última consulta
    • mysqli::$protocol_version - Retorna a versão do protocolo MySQL usada
    • mysqli::$server_info - Retorna a versão do servidor MySQL
    • mysqli::$server_version - Retorna a versão do servidor MySQL como um inteiro
    • mysqli::$sqlstate - Retorna o erro SQLSTATE da operação MySQL anterior
    • mysqli::$thread_id - Retorna o ID da thread para a conexão atual
    • mysqli::$warning_count - Retorna o número de avisos da última consulta para o link fornecido
    • mysqli::autocommit - Ativa ou desativa a gravação automática das modificações no banco de dados
    • mysqli::begin_transaction - Inicia uma transação
    • mysqli::change_user - Modifica o usuário para a conexão com o banco de dados especificada
    • mysqli::character_set_name - Retorna o conjunto de caracteres atual da conexão com o banco de dados
    • mysqli::close - Fecha uma conexão ao banco de dados previamente aberta
    • mysqli::commit - Grava a transação atual
    • mysqli::debug - Realiza operações de depuração
    • mysqli::dump_debug_info - Descarrega informação de debug no log
    • mysqli::escape_string - Sinônimo de mysqli_real_escape_string
    • mysqli::execute_query - Prepara, vincula parâmetros e executa a instrução SQL
    • mysqli::get_charset - Retorna um objeto de conjunto de caracteres
    • mysqli::get_connection_stats - Retorna estatísticas sobre a conexão do cliente
    • mysqli::get_warnings - Obtém o resultado de SHOW WARNINGS
    • mysqli::init - Inicializa o MySQLi e retorna um objeto a ser utilizado com mysqli_real_connect()
    • mysqli::kill - Solicita ao servidor o encerramento de um thread do MySQL
    • mysqli::more_results - Verifica se há mais algum resultado de uma consulta múltipla
    • mysqli::multi_query - Executa uma ou mais consultas no banco de dados
    • mysqli::next_result - Prepara o próximo resultado de multi_query
    • mysqli::options - Define opções
    • mysqli::ping - Faz ping em uma conexão de servidor ou tenta reconectar se a conexão cair
    • mysqli::poll - Sondagem de conexões
    • mysqli::prepare - Prepara uma instrução SQL para execução
    • mysqli::query - Executa uma consulta no banco de dados
    • mysqli::real_connect - Abre uma conexão com um servidor mysql
    • mysqli::real_escape_string - Escape caracteres especiais em uma string para uso em uma instrução SQL, levando em consideração o conjunto de caracteres atual da conexão
    • mysqli::real_query - Executa uma consulta SQL
    • mysqli::reap_async_query - Obtenha o resultado da consulta assíncrona
    • mysqli::refresh - Atualiza
    • mysqli::release_savepoint - Remove o ponto de salvamento nomeado do conjunto de pontos de salvamento da transação atual
    • mysqli::rollback - Reverte a transação atual
    • mysqli::savepoint - Define um ponto de salvamento de transação nomeado
    • mysqli::select_db - Seleciona o banco de dados padrão para consultas de banco de dados
    • mysqli::set_charset - Define o conjunto de caracteres do cliente
    • mysqli::set_opt - Sinônimo de mysqli_options
    • mysqli::ssl_set - Usado para estabelecer conexões seguras usando SSL
    • mysqli::stat - Obtém o status atual do sistema
    • mysqli::stmt_init - Inicializa uma instrução e retorna um objeto para uso com mysqli_stmt_prepare
    • mysqli::store_result - Transfere um conjunto de resultados da última consulta
    • mysqli::thread_safe - Retorna se a segurança de thread é dada ou não
    • mysqli::use_result - Iniciar uma recuperação de conjunto de resultados
    • mysqli::__construct - Abre uma nova conexão com o servidor MySQL
    • mysqli_connect - Sinônimo de mysqli::__construct
    • mysqli_driver::$report_mode - Define o modo de relatório de erros do mysqli
    • mysqli_driver::embedded_server_end - Para o servidor incorporado
    • mysqli_driver::embedded_server_start - Inicializa e dispara o servidor incorporado
    • mysqli_execute - Sinônimo de mysqli_stmt_execute
    • mysqli_get_client_stats - Retorna as estatísticas do cliente por processo
    • mysqli_get_links_stats - Retorna informações sobre links abertos e em cache
    • mysqli_report - Sinônimo de mysqli_driver->report_mode
    • mysqli_result::$current_field - Obtém o deslocamento atual de campo de um ponteiro de resultado
    • mysqli_result::$field_count - Obtém o número de campos no conjunto de resultados
    • mysqli_result::$lengths - Retorna os comprimentos das colunas da linha atual do resultado
    • mysqli_result::$num_rows - Obtém o número de linhas no resultado
    • mysqli_result::data_seek - Ajusta o ponteiro do resultado para uma linha arbritária no resultado
    • mysqli_result::fetch_all - Recebe todas as linhas de resultado como array associativo, numérico, ou ambos
    • mysqli_result::fetch_array - Recebe a próxima linha de resultado como array associativo, numérico, ou ambos
    • mysqli_result::fetch_assoc - Obtém a próxima linha do conjunto de resultados como um array associativo
    • mysqli_result::fetch_column - Recebe uma única coluna da próxima linha de um resultado
    • mysqli_result::fetch_field - Retorna o próximo campo no conjunto de resultados
    • mysqli_result::fetch_fields - Retorna um array de objetos representando os campos em um conjunto de resultados
    • mysqli_result::fetch_field_direct - Recebe metadados para um único campo
    • mysqli_result::fetch_object - Recebe a próxima linha de um resultado como um objeto
    • mysqli_result::fetch_row - Obtém a próxima linha de um resultado como um array enumerado
    • mysqli_result::field_seek - Move o ponteiro do resultado para um campo especificado
    • mysqli_result::free - Libera memória associada a um resultado
    • mysqli_result::getIterator - Obtém um iterador externo
    • mysqli_result::__construct - Constrói um objeto mysqli_result
    • mysqli_sql_exception::getSqlState - Retorna o código de erro SQLSTATE
    • mysqli_stmt::$affected_rows - Retorna o número total de linhas modificadas, apagadas, inseridas ou correspondidas pela última instrução executada
    • mysqli_stmt::$errno - Retorna o código de erro para a chamada de instrução mais recente
    • mysqli_stmt::$error - Retorna uma descrição em string para o último erro de instrução
    • mysqli_stmt::$error_list - Retorna uma lista de erros da última instrução executada
    • mysqli_stmt::$field_count - Retorna o número de colunas na instrução informada
    • mysqli_stmt::$insert_id - Obtém o ID gerado pela operação INSERT anterior
    • mysqli_stmt::$num_rows - Retorna o número de linhas recebidas pelo servidor
    • mysqli_stmt::$param_count - Retorna o número de parâmetros para uma instrução fornecida
    • mysqli_stmt::$sqlstate - Retorna o erro SQLSTATE da operação da instrução anterior
    • mysqli_stmt::attr_get - Usado para obter o valor atual de um atributo de instrução
    • mysqli_stmt::attr_set - Usado para modificar o comportamento de uma instrução preparada
    • mysqli_stmt::bind_param - Liga variáveis a uma declaração preparada como parâmetros
    • mysqli_stmt::bind_result - Liga variáveis a uma declaração preparada para armazenamento de resultado
    • mysqli_stmt::close - Fecha uma instrução preparada
    • mysqli_stmt::data_seek - Ajusta o ponteiro de resultado para uma linha arbitrária no resultado com buffer
    • mysqli_stmt::execute - Executa uma instrução preparada
    • mysqli_stmt::fetch - Recebe resultados de uma instrução preparada nas variáveis vinculadas
    • mysqli_stmt::free_result - Libera memória do resultado armazenado para o manipulador de instrução informado
    • mysqli_stmt::get_result - Obtém um resultado de uma instrução preparada como um objeto mysqli_result
    • mysqli_stmt::get_warnings - Obtém o resultado de SHOW WARNINGS
    • mysqli_stmt::more_results - Verifica se há mais resultados de uma consulta múltipla
    • mysqli_stmt::next_result - Lê o próximo resultado de uma consulta múltipla
    • mysqli_stmt::prepare - Prepara uma declaração SQL para execução
    • mysqli_stmt::reset - Redefine uma instrução preparada
    • mysqli_stmt::result_metadata - Retorna os metadados de resultado de uma instrução preparada
    • mysqli_stmt::send_long_data - Envia dados em blocos
    • mysqli_stmt::store_result - Armazena um conjunto de resultados em um buffer interno
    • mysqli_stmt::__construct - Constrói um novo objeto mysqli_stmt
    • mysqli_warning::next - Busca o próximo aviso
    • mysqli_warning::__construct - Construtor privado para proibir instanciação direta
    • mysql_affected_rows - Obtém o número de linhas afetadas na operação anterior do MySQL
    • mysql_client_encoding - Returns the name of the character set
    • mysql_close - Fecha a conexão MySQL
    • mysql_connect - Open a connection to a MySQL Server
    • mysql_create_db - Cria um banco de dados MySQL
    • mysql_data_seek - Move o ponteiro interno do resultado
    • mysql_db_name - Obtém o nome do banco de dados a partir da chamada à mysql_list_dbs
    • mysql_db_query - Selects a database and executes a query on it
    • mysql_drop_db - Drop (exclui) um banco de dados MySQL
    • mysql_errno - Retorna o valor numérico da mensagem de erro da operação MySQL anterior
    • mysql_error - Retorna o texto da mensagem de erro da operação MySQL anterior
    • mysql_escape_string - Escapa uma string para usá-la em uma função mysql_query
    • mysql_fetch_array - Fetch a result row as an associative array, a numeric array, or both
    • mysql_fetch_assoc - Obtém uma linha do resultado como um array associativo
    • mysql_fetch_field - Get column information from a result and return as an object
    • mysql_fetch_lengths - Obtém o tamanho de cada saída de um resultado
    • mysql_fetch_object - Obtém o resultado de uma linha como um objeto
    • mysql_fetch_row - Obtém uma linha como um array numérico
    • mysql_field_flags - Get the flags associated with the specified field in a result
    • mysql_field_len - Retorna o tamanho do campo especificado
    • mysql_field_name - Obtém o nome do campo especificado em um resultado
    • mysql_field_seek - Define o ponteiro do resultado para o índice de campo especificado
    • mysql_field_table - Obtém o nome da tabela na qual o campo especificado esta
    • mysql_field_type - Obtém o tipo do campo especificado em um resultado
    • mysql_free_result - Free result memory
    • mysql_get_client_info - Obtém informações do cliente MySQL
    • mysql_get_host_info - Obtém informações do servidor MySQL
    • mysql_get_proto_info - Obtém informações do protocolo MySQL
    • mysql_get_server_info - Obtém informações do servidor MySQL
    • mysql_info - Obtém informação sobre a consulta mais recente
    • mysql_insert_id - Obtém o ID gerado pela operação INSERT anterior
    • mysql_list_dbs - Lista os bancos de dados disponíveis em um servidor MySQL
    • mysql_list_fields - Lista os campos de uma tabela MySQL
    • mysql_list_processes - Lista os processos MySQL
    • mysql_list_tables - List tables in a MySQL database
    • mysql_num_fields - Obtém o numero de campos em um resultado
    • mysql_num_rows - Obtém o número de linhas em um resultado
    • mysql_pconnect - Open a persistent connection to a MySQL server
    • mysql_ping - Pinga uma conexão com o servidor ou reconecta se não houver conexão
    • mysql_query - Send a MySQL query
    • mysql_real_escape_string - Escapes special characters in a string for use in an SQL statement
    • mysql_result - Get result data
    • mysql_select_db - Select a MySQL database
    • mysql_set_charset - Sets the client character set
    • mysql_stat - Get current system status
    • mysql_tablename - Get table name of field
    • mysql_thread_id - Return the current thread ID
    • mysql_unbuffered_query - Send an SQL query to MySQL without fetching and buffering the result rows
    • mysql_xdevapi\Client::close - Close client
  • n
    • natcasesort - Ordena um array utilizando o algoritmo da "ordem natural" sem diferenciar maiúsculas e minúsculas
    • natsort - Ordena um array utilizando o algoritmo de "ordem natural"
    • net_get_interfaces - Get network interfaces
    • next - Avança o ponteiro interno de um array
    • ngettext - Versão plural de gettext
    • nl2br - Inserts HTML line breaks before all newlines in a string
    • nl_langinfo - Query language and locale information
    • NoRewindIterator::current - Obtém o valor atual
    • NoRewindIterator::key - Obtém a chave atual
    • NoRewindIterator::next - Avança para o próximo elemento
    • NoRewindIterator::rewind - Impede a operação de rebobinar no iterador interno
    • NoRewindIterator::valid - Valida o iterador
    • NoRewindIterator::__construct - Constrói um NoRewindIterator
    • Normalizer::getRawDecomposition - Obtém a propriedade Decomposition_Mapping para o ponto de código UTF-8 fornecido
    • Normalizer::isNormalized - Verifica se a string fornecida já está na forma normalizada na forma especificada.
    • Normalizer::normalize - Normaliza a entrada fornecida e retorna a string normalizada
    • NumberFormatter::create - Cria um formatador de número
    • NumberFormatter::format - Formata um número
    • NumberFormatter::formatCurrency - Formata um valor de moeda
    • NumberFormatter::getAttribute - Obtém um atributo
    • NumberFormatter::getErrorCode - Obtém o último código de erro do formatador
    • NumberFormatter::getErrorMessage - Obtém a última mensagem de erro do formatador
    • NumberFormatter::getLocale - Obtém a localidade do formatador
    • NumberFormatter::getPattern - Obtém padrão do formatador
    • NumberFormatter::getSymbol - Obtém um valor de símbolo
    • NumberFormatter::getTextAttribute - Obtém um atributo de texto
    • NumberFormatter::parse - Interpreta um número
    • NumberFormatter::parseCurrency - Interpreta um valor monetário
    • NumberFormatter::setAttribute - Define um atributo
    • NumberFormatter::setPattern - Define o padrão do formatador
    • NumberFormatter::setSymbol - Define um valor de símbolo
    • NumberFormatter::setTextAttribute - Define um atributo de texto
    • number_format - Format a number with grouped thousands
  • o
    • OAuth::disableDebug - Desativa a depuração detalhada
    • OAuth::disableRedirects - Desativa o redirecionamento
    • OAuth::disableSSLChecks - Desativa verificações SSL
    • OAuth::enableDebug - Ativa a depuração detalhada
    • OAuth::enableRedirects - Habilita redirecionamentos
    • OAuth::enableSSLChecks - Ativa verificações SSL
    • OAuth::fetch - Busca um recurso protegido OAuth
    • OAuth::generateSignature - Gera uma assinatura
    • OAuth::getAccessToken - Busca um token de acesso
    • OAuth::getCAPath - Obtém informação de CA
    • OAuth::getLastResponse - Obtém a última resposta
    • OAuth::getLastResponseHeaders - Obtém cabeçalhos para a última resposta
    • OAuth::getLastResponseInfo - Obtém informação HTTP sobre a última resposta
    • OAuth::getRequestHeader - Gera assinatura string de cabeçalho OAuth
    • OAuth::getRequestToken - Busca um token de requisição
    • OAuth::setAuthType - Define o tipo de autorização
    • OAuth::setCAPath - Define caminho e informação da CA
    • OAuth::setNonce - Define o nonce para requisições subsequentes
    • OAuth::setRequestEngine - Defineo o mecanismo da requisição
    • OAuth::setRSACertificate - Define o certificado RSA
    • OAuth::setSSLChecks - Ajusta verficações SSL específicas para requisições
    • OAuth::setTimestamp - Define o timestamp
    • OAuth::setToken - Define o token e o segredo
    • OAuth::setVersion - Define a versão OAuth
    • OAuth::__construct - Cria um objeto OAuth
    • OAuth::__destruct - O destruidor
    • OAuthProvider::addRequiredParameter - Adiciona parâmetros requeridos
    • OAuthProvider::callconsumerHandler - Chama a função de retorno consumerHandler
    • OAuthProvider::callTimestampNonceHandler - Chama a função de retorno timestampNonceHandler
    • OAuthProvider::calltokenHandler - Chama a função de retorno tokenHandler
    • OAuthProvider::checkOAuthRequest - Verifica uma requisição OAuth
    • OAuthProvider::consumerHandler - Define a função de retorno de gerenciamento de consumidor
    • OAuthProvider::generateToken - Gera um token aleatório
    • OAuthProvider::is2LeggedEndpoint - is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint - Define isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter - Remove um parâmetro requerido
    • OAuthProvider::reportProblem - Reporta um problema
    • OAuthProvider::setParam - Define um parâmetro
    • OAuthProvider::setRequestTokenPath - Define o caminho para o token de requisição
    • OAuthProvider::timestampNonceHandler - Define a função de retorno de gerenciamento de timestamp nonce
    • OAuthProvider::tokenHandler - Define a função de retorno de gerenciamento de token
    • OAuthProvider::__construct - Constrói um novo objeto OAuthProvider
    • oauth_get_sbs - Gera uma String Base de Assinatura
    • oauth_urlencode - Codifica uma URI conforme RFC 3986
    • ob_clean - Limpa (apaga) o conteúdo do buffer de saída ativo
    • ob_end_clean - Clean (erase) the contents of the active output buffer and turn it off
    • ob_end_flush - Flush (send) the return value of the active output handler and turn the active output buffer off
    • ob_flush - Descarrega (envia) o valor de retorno do manipulador de saída ativo
    • ob_get_clean - Get the contents of the active output buffer and turn it off
    • ob_get_contents - Retorna o conteúdo do buffer de saída
    • ob_get_flush - Flush (send) the return value of the active output handler, return the contents of the active output buffer and turn it off
    • ob_get_length - Retorna o comprimento do buffer de saída
    • ob_get_level - Return the nesting level of the output buffering mechanism
    • ob_get_status - Get status of output buffers
    • ob_gzhandler - Função de chamada de retorno de ob_start para comprimir o buffer de saída com gzip
    • ob_iconv_handler - Converte codificação de caracteres como manipulador de buffer de saída
    • ob_implicit_flush - Turn implicit flush on/off
    • ob_list_handlers - List all output handlers in use
    • ob_start - Ativa o buffer de saída
    • ob_tidyhandler - ob_start callback function to repair the buffer
    • ocibindbyname - Sinônimo de oci_bind_by_name
    • ocicancel - Sinônimo de oci_cancel
    • ocicloselob - Sinônimo de OCILob::close
    • ocicollappend - Sinônimo de OCICollection::append
    • ocicollassign - Sinônimo de OCICollection::assign
    • ocicollassignelem - Sinônimo de OCICollection::assignElem
    • OCICollection::append - Appends element to the collection
    • OCICollection::assign - Assigns a value to the collection from another existing collection
    • OCICollection::assignElem - Assigns a value to the element of the collection
    • OCICollection::free - Frees the resources associated with the collection object
    • OCICollection::getElem - Returns value of the element
    • OCICollection::max - Returns the maximum number of elements in the collection
    • OCICollection::size - Returns size of the collection
    • OCICollection::trim - Trims elements from the end of the collection
    • ocicollgetelem - Sinônimo de OCICollection::getElem
    • ocicollmax - Sinônimo de OCICollection::max
    • ocicollsize - Sinônimo de OCICollection::size
    • ocicolltrim - Sinônimo de OCICollection::trim
    • ocicolumnisnull - Sinônimo de oci_field_is_null
    • ocicolumnname - Sinônimo de oci_field_name
    • ocicolumnprecision - Sinônimo de oci_field_precision
    • ocicolumnscale - Sinônimo de oci_field_scale
    • ocicolumnsize - Sinônimo de oci_field_size
    • ocicolumntype - Sinônimo de oci_field_type
    • ocicolumntyperaw - Sinônimo de oci_field_type_raw
    • ocicommit - Sinônimo de oci_commit
    • ocidefinebyname - Sinônimo de oci_define_by_name
    • ocierror - Sinônimo de oci_error
    • ociexecute - Sinônimo de oci_execute
    • ocifetch - Sinônimo de oci_fetch
    • ocifetchinto - Variante obsoleta de oci_fetch_array, oci_fetch_object, oci_fetch_assoc e oci_fetch_row
    • ocifetchstatement - Sinônimo de oci_fetch_all
    • ocifreecollection - Sinônimo de OCICollection::free
    • ocifreecursor - Sinônimo de oci_free_statement
    • ocifreedesc - Sinônimo de OCILob::free
    • ocifreestatement - Sinônimo de oci_free_statement
    • ociinternaldebug - Sinônimo de oci_internal_debug
    • ociloadlob - Sinônimo de OCILob::load
    • OCILob::append - Appends data from the large object to another large object
    • OCILob::close - Closes LOB descriptor
    • OCILob::eof - Tests for end-of-file on a large object's descriptor
    • OCILob::erase - Erases a specified portion of the internal LOB data
    • OCILob::export - Exports LOB's contents to a file
    • OCILob::flush - Flushes/writes buffer of the LOB to the server
    • OCILob::free - Frees resources associated with the LOB descriptor
    • OCILob::getBuffering - Returns current state of buffering for the large object
    • OCILob::import - Imports file data to the LOB
    • OCILob::load - Returns large object's contents
    • OCILob::read - Reads part of the large object
    • OCILob::rewind - Moves the internal pointer to the beginning of the large object
    • OCILob::save - Saves data to the large object
    • OCILob::saveFile - Sinônimo de OCILob::import
    • OCILob::seek - Sets the internal pointer of the large object
    • OCILob::setBuffering - Changes current state of buffering for the large object
    • OCILob::size - Returns size of large object
    • OCILob::tell - Returns the current position of internal pointer of large object
    • OCILob::truncate - Truncates large object
    • OCILob::write - Writes data to the large object
    • OCILob::writeTemporary - Escreve um large object temporário
    • OCILob::writeToFile - Sinônimo de OCILob::export
    • ocilogoff - Sinônimo de oci_close
    • ocilogon - Sinônimo de oci_connect
    • ocinewcollection - Sinônimo de oci_new_collection
    • ocinewcursor - Sinônimo de oci_new_cursor
    • ocinewdescriptor - Sinônimo de oci_new_descriptor
    • ocinlogon - Sinônimo de oci_new_connect
    • ocinumcols - Sinônimo de oci_num_fields
    • ociparse - Sinônimo de oci_parse
    • ociplogon - Sinônimo de oci_pconnect
    • ociresult - Sinônimo de oci_result
    • ocirollback - Sinônimo de oci_rollback
    • ocirowcount - Sinônimo de oci_num_rows
    • ocisavelob - Sinônimo de OCILob::save
    • ocisavelobfile - Sinônimo de OCILob::import
    • ociserverversion - Sinônimo de oci_server_version
    • ocisetprefetch - Sinônimo de oci_set_prefetch
    • ocistatementtype - Sinônimo de oci_statement_type
    • ociwritelobtofile - Sinônimo de OCILob::export
    • ociwritetemporarylob - Sinônimo de OCILob::writeTemporary
    • oci_bind_array_by_name - Binds a PHP array to an Oracle PL/SQL array parameter
    • oci_bind_by_name - Binds a PHP variable to an Oracle placeholder
    • oci_cancel - Cancels reading from cursor
    • oci_client_version - Returns the Oracle client library version
    • oci_close - Closes an Oracle connection
    • oci_commit - Commits the outstanding database transaction
    • oci_connect - Connect to an Oracle database
    • oci_define_by_name - Associates a PHP variable with a column for query fetches
    • oci_error - Returns the last error found
    • oci_execute - Executes a statement
    • oci_fetch - Fetches the next row from a query into internal buffers
    • oci_fetch_all - Fetches multiple rows from a query into a two-dimensional array
    • oci_fetch_array - Returns the next row from a query as an associative or numeric array
    • oci_fetch_assoc - Returns the next row from a query as an associative array
    • oci_fetch_object - Returns the next row from a query as an object
    • oci_fetch_row - Returns the next row from a query as a numeric array
    • oci_field_is_null - Checks if a field in the currently fetched row is null
    • oci_field_name - Returns the name of a field from the statement
    • oci_field_precision - Tell the precision of a field
    • oci_field_scale - Tell the scale of the field
    • oci_field_size - Returns field's size
    • oci_field_type - Returns a field's data type name
    • oci_field_type_raw - Tell the raw Oracle data type of the field
    • oci_free_descriptor - Frees a descriptor
    • oci_free_statement - Frees all resources associated with statement or cursor
    • oci_get_implicit_resultset - Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets
    • oci_internal_debug - Enables or disables internal debug output
    • oci_lob_copy - Copies large object
    • oci_lob_is_equal - Compares two LOB/FILE locators for equality
    • oci_new_collection - Allocates new collection object
    • oci_new_connect - Connect to the Oracle server using a unique connection
    • oci_new_cursor - Allocates and returns a new cursor (statement handle)
    • oci_new_descriptor - Initializes a new empty LOB or FILE descriptor
    • oci_num_fields - Returns the number of result columns in a statement
    • oci_num_rows - Returns number of rows affected during statement execution
    • oci_parse - Prepares an Oracle statement for execution
    • oci_password_change - Changes password of Oracle's user
    • oci_pconnect - Connect to an Oracle database using a persistent connection
    • oci_register_taf_callback - Register a user-defined callback function for Oracle Database TAF
    • oci_result - Returns field's value from the fetched row
    • oci_rollback - Rolls back the outstanding database transaction
    • oci_server_version - Returns the Oracle Database version
    • oci_set_action - Sets the action name
    • oci_set_call_timeout - Sets a millisecond timeout for database calls
    • oci_set_client_identifier - Sets the client identifier
    • oci_set_client_info - Sets the client information
    • oci_set_db_operation - Sets the database operation
    • oci_set_edition - Sets the database edition
    • oci_set_module_name - Sets the module name
    • oci_set_prefetch - Sets number of rows to be prefetched by queries
    • oci_set_prefetch_lob - Sets the amount of data prefetched for each CLOB or BLOB.
    • oci_statement_type - Returns the type of a statement
    • oci_unregister_taf_callback - Unregister a user-defined callback function for Oracle Database TAF
    • octdec - Octal para decimal
    • odbc_autocommit - Toggle autocommit behaviour
    • odbc_binmode - Handling of binary column data
    • odbc_close - Close an ODBC connection
    • odbc_close_all - Close all ODBC connections
    • odbc_columnprivileges - Lists columns and associated privileges for the given table
    • odbc_columns - Lists the column names in specified tables
    • odbc_commit - Commit an ODBC transaction
    • odbc_connect - Connect to a datasource
    • odbc_connection_string_is_quoted - Determines if an ODBC connection string value is quoted
    • odbc_connection_string_quote - Quotes an ODBC connection string value
    • odbc_connection_string_should_quote - Determines if an ODBC connection string value should be quoted
    • odbc_cursor - Obtém o nome do cursor
    • odbc_data_source - Returns information about available DSNs
    • odbc_do - Sinônimo de odbc_exec
    • odbc_error - Get the last error code
    • odbc_errormsg - Get the last error message
    • odbc_exec - Directly execute an SQL statement
    • odbc_execute - Executa um comando preparado
    • odbc_fetch_array - Obtém uma linha do resultado como um array associativo
    • odbc_fetch_into - Fetch one result row into array
    • odbc_fetch_object - Obtém um conjunto de resultados como um objeto
    • odbc_fetch_row - Obtém uma linha
    • odbc_field_len - Obtém o tamanho (precisão) de um campo
    • odbc_field_name - Obtém o nome da coluna
    • odbc_field_num - Retorna o número da coluna
    • odbc_field_precision - Sinônimo de odbc_field_len
    • odbc_field_scale - Obtém a precisão de um campo
    • odbc_field_type - Tipo de dados de um campo
    • odbc_foreignkeys - Retrieves a list of foreign keys
    • odbc_free_result - Libera os recursos associados a um resultado
    • odbc_gettypeinfo - Retrieves information about data types supported by the data source
    • odbc_longreadlen - Manipulação de colunas LONG
    • odbc_next_result - Confere se resultados múltiplos estão disponíveis
    • odbc_num_fields - Número de colunas em um resultado
    • odbc_num_rows - Número de linhas em um resultado
    • odbc_pconnect - Open a persistent database connection
    • odbc_prepare - Prepara um comando para execução
    • odbc_primarykeys - Gets the primary keys for a table
    • odbc_procedurecolumns - Retrieve information about parameters to procedures
    • odbc_procedures - Get the list of procedures stored in a specific data source
    • odbc_result - Get result data
    • odbc_result_all - Mostra o resultado como uma tabela HTML
    • odbc_rollback - Rollback a transaction
    • odbc_setoption - Adjust ODBC settings
    • odbc_specialcolumns - Retrieves special columns
    • 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
    • ogg:// - Streams de áudio
    • Opções de contexto de Socket - Lista de opções de contexto de Socket
    • Opções de contexto de SSL - Lista de opções de contexto de SSL
    • Opções de contexto do FTP - Lista de opções de contexto do FTP
    • Opções de contexto do HTTP - Lista de opções de contexto do HTTP
    • Opções de contexto do Phar - Lista de opções de contexto do Phar
    • Opções de contexto para Zip - Listagem de opções de contexto para Zip
    • Opções de contexto Zlib - Listagem de opções de contexto Zlib
    • opcache_compile_file - Compila e armazena em cache um script PHP sem executá-lo
    • opcache_get_configuration - Obtém informações de configuração sobre o cache
    • opcache_get_status - Obtém informações de status sobre o cache
    • opcache_invalidate - Invalida um script em cache
    • opcache_is_script_cached - Informa se um script é armazenado em cache no OPCache
    • opcache_reset - Redefine o conteúdo do cache opcode
    • openal_buffer_create - Generate OpenAL buffer
    • openal_buffer_data - Load a buffer with data
    • openal_buffer_destroy - Destroys an OpenAL buffer
    • openal_buffer_get - Retrieve an OpenAL buffer property
    • openal_buffer_loadwav - Load a .wav file into a buffer
    • openal_context_create - Create an audio processing context
    • openal_context_current - Make the specified context current
    • openal_context_destroy - Destroys a context
    • openal_context_process - Process the specified context
    • openal_context_suspend - Suspend the specified context
    • openal_device_close - Close an OpenAL device
    • openal_device_open - Initialize the OpenAL audio layer
    • openal_listener_get - Retrieve a listener property
    • openal_listener_set - Set a listener property
    • openal_source_create - Generate a source resource
    • openal_source_destroy - Destroy a source resource
    • openal_source_get - Retrieve an OpenAL source property
    • openal_source_pause - Pause the source
    • openal_source_play - Start playing the source
    • openal_source_rewind - Rewind the source
    • openal_source_set - Set source property
    • openal_source_stop - Stop playing the source
    • openal_stream - Begin streaming on a source
    • opendir - Abre um manipulador de diretório
    • openlog - Open connection to system logger
    • openssl_cipher_iv_length - Gets the cipher iv length
    • openssl_cipher_key_length - Gets the cipher key length
    • openssl_cms_decrypt - Decrypt a CMS message
    • openssl_cms_encrypt - Encrypt a CMS message
    • openssl_cms_read - Export the CMS file to an array of PEM certificates
    • openssl_cms_sign - Sign a file
    • openssl_cms_verify - Verify a CMS signature
    • openssl_csr_export - Exports a CSR as a string
    • openssl_csr_export_to_file - Exports a CSR to a file
    • openssl_csr_get_public_key - Returns the public key of a CSR
    • openssl_csr_get_subject - Returns the subject of a CSR
    • openssl_csr_new - Generates a CSR
    • openssl_csr_sign - Sign a CSR with another certificate (or itself) and generate a certificate
    • openssl_decrypt - Decrypts data
    • openssl_dh_compute_key - Computes shared secret for public value of remote DH public key and local DH key
    • openssl_digest - Computes a digest
    • openssl_encrypt - Encrypts data
    • openssl_error_string - Return openSSL error message
    • openssl_free_key - Free key resource
    • openssl_get_cert_locations - Retrieve the available certificate locations
    • openssl_get_cipher_methods - Gets available cipher methods
    • openssl_get_curve_names - Gets list of available curve names for ECC
    • openssl_get_md_methods - Gets available digest methods
    • openssl_get_privatekey - Sinônimo de openssl_pkey_get_private
    • openssl_get_publickey - Sinônimo de openssl_pkey_get_public
    • openssl_open - Open sealed data
    • openssl_pbkdf2 - Generates a PKCS5 v2 PBKDF2 string
    • openssl_pkcs7_decrypt - Decrypts an S/MIME encrypted message
    • openssl_pkcs7_encrypt - Encrypt an S/MIME message
    • openssl_pkcs7_read - Export the PKCS7 file to an array of PEM certificates
    • openssl_pkcs7_sign - Sign an S/MIME message
    • openssl_pkcs7_verify - Verifies the signature of an S/MIME signed message
    • openssl_pkcs12_export - Exports a PKCS#12 Compatible Certificate Store File to variable
    • openssl_pkcs12_export_to_file - Exports a PKCS#12 Compatible Certificate Store File
    • openssl_pkcs12_read - Parse a PKCS#12 Certificate Store into an array
    • openssl_pkey_derive - Computes shared secret for public value of remote and local DH or ECDH key
    • openssl_pkey_export - Gets an exportable representation of a key into a string
    • openssl_pkey_export_to_file - Gets an exportable representation of a key into a file
    • openssl_pkey_free - Frees a private key
    • openssl_pkey_get_details - Returns an array with the key details
    • 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_random_pseudo_bytes - Generate a pseudo-random string of bytes
    • openssl_seal - Seal (encrypt) data
    • openssl_sign - Generate signature
    • openssl_spki_export - Exports a valid PEM formatted public key signed public key and challenge
    • openssl_spki_export_challenge - Exports the challenge associated with a signed public key and challenge
    • openssl_spki_new - Generate a new signed public key and challenge
    • openssl_spki_verify - Verifies a signed public key and challenge
    • openssl_verify - Verify signature
    • openssl_x509_checkpurpose - Verifies if a certificate can be used for a particular purpose
    • openssl_x509_check_private_key - Checks if a private key corresponds to a certificate
    • openssl_x509_export - Exports a certificate as a string
    • openssl_x509_export_to_file - Exports a certificate to file
    • openssl_x509_fingerprint - Calculates the fingerprint, or digest, of a given X.509 certificate
    • 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 an object for it
    • openssl_x509_verify - Verifies digital signature of x509 certificate against a public key
    • ord - Converte o primeiro byte de uma string para um valor entre 0 e 255
    • OuterIterator::getInnerIterator - Retorna o iterador interno para a entrada atual
    • output_add_rewrite_var - Add URL rewriter values
    • output_reset_rewrite_vars - Reset URL rewriter values
    • Override::__construct - Constrói uma nova instância de atributo Override
  • p
    • pack - Empacota dados em uma string binária
    • Parâmetros de contexto - Listagem de parâmetros de contexto
    • parallel\bootstrap - Bootstrapping
    • parallel\Channel::close - Closing
    • parallel\Channel::make - Access
    • parallel\Channel::open - Access
    • parallel\Channel::recv - Sharing
    • parallel\Channel::send - Sharing
    • parallel\Channel::__construct - Channel Construction
    • parallel\Events::addChannel - Targets
    • parallel\Events::addFuture - Targets
    • parallel\Events::poll - Polling
    • parallel\Events::remove - Targets
    • parallel\Events::setBlocking - Behaviour
    • parallel\Events::setInput - Input
    • parallel\Events::setTimeout - Behaviour
    • parallel\Events\Input::add - Inputs
    • parallel\Events\Input::clear - Inputs
    • parallel\Events\Input::remove - Inputs
    • parallel\Future::cancel - Cancellation
    • parallel\Future::cancelled - State Detection
    • parallel\Future::done - State Detection
    • parallel\Future::value - Resolution
    • parallel\run - Execution
    • parallel\Runtime::close - Runtime Graceful Join
    • parallel\Runtime::kill - Runtime Join
    • parallel\Runtime::run - Execution
    • parallel\Runtime::__construct - Runtime Construction
    • parallel\Sync::get - Access
    • parallel\Sync::notify - Synchronization
    • parallel\Sync::set - Access
    • parallel\Sync::wait - Synchronization
    • parallel\Sync::__construct - Construction
    • parallel\Sync::__invoke - Synchronization
    • ParentIterator::accept - Determina a aceitabilidade
    • ParentIterator::getChildren - Retorna os filhos do iterador interno de um ParentIterator
    • ParentIterator::hasChildren - Verifica se o elemento atual do iterador interno tem ou não filhos
    • ParentIterator::next - Avança o iterador
    • ParentIterator::rewind - Recomeça o iterador
    • ParentIterator::__construct - Constrói um ParentIterator
    • Parle\Lexer::advance - Process next lexer rule
    • Parle\Lexer::build - Finalize the lexer rule set
    • Parle\Lexer::callout - Define token callback
    • Parle\Lexer::consume - Pass the data for processing
    • Parle\Lexer::dump - Dump the state machine
    • Parle\Lexer::getToken - Retrieve the current token
    • Parle\Lexer::insertMacro - Insert regex macro
    • Parle\Lexer::push - Add a lexer rule
    • Parle\Lexer::reset - Reset lexer
    • Parle\Parser::advance - Process next parser rule
    • Parle\Parser::build - Finalize the grammar rules
    • Parle\Parser::consume - Consume the data for processing
    • Parle\Parser::dump - Dump the grammar
    • Parle\Parser::errorInfo - Retrieve the error information
    • Parle\Parser::left - Declare a token with left-associativity
    • Parle\Parser::nonassoc - Declare a token with no associativity
    • Parle\Parser::precedence - Declare a precedence rule
    • Parle\Parser::push - Add a grammar rule
    • Parle\Parser::reset - Reset parser state
    • Parle\Parser::right - Declare a token with right-associativity
    • Parle\Parser::sigil - Retrieve a matching part of a rule
    • Parle\Parser::sigilCount - Number of elements in matched rule
    • Parle\Parser::sigilName - Retrieve a rule or token name
    • Parle\Parser::token - Declare a token
    • Parle\Parser::tokenId - Get token id
    • Parle\Parser::trace - Trace the parser operation
    • Parle\Parser::validate - Validate input
    • Parle\RLexer::advance - Process next lexer rule
    • Parle\RLexer::build - Finalize the lexer rule set
    • Parle\RLexer::callout - Define token callback
    • Parle\RLexer::consume - Pass the data for processing
    • Parle\RLexer::dump - Dump the state machine
    • Parle\RLexer::getToken - Retrieve the current token
    • Parle\RLexer::insertMacro - Insert regex macro
    • Parle\RLexer::push - Add a lexer rule
    • Parle\RLexer::pushState - Push a new start state
    • Parle\RLexer::reset - Reset lexer
    • Parle\RParser::advance - Process next parser rule
    • Parle\RParser::build - Finalize the grammar rules
    • Parle\RParser::consume - Consume the data for processing
    • Parle\RParser::dump - Dump the grammar
    • Parle\RParser::errorInfo - Retrieve the error information
    • Parle\RParser::left - Declare a token with left-associativity
    • Parle\RParser::nonassoc - Declare a token with no associativity
    • Parle\RParser::precedence - Declare a precedence rule
    • Parle\RParser::push - Add a grammar rule
    • Parle\RParser::reset - Reset parser state
    • Parle\RParser::right - Declare a token with right-associativity
    • Parle\RParser::sigil - Retrieve a matching part of a rule
    • Parle\RParser::sigilCount - Number of elements in matched rule
    • Parle\RParser::sigilName - Retrieve a rule or token name
    • Parle\RParser::token - Declare a token
    • Parle\RParser::tokenId - Get token id
    • Parle\RParser::trace - Trace the parser operation
    • Parle\RParser::validate - Validate input
    • Parle\Stack::pop - Pop an item from the stack
    • Parle\Stack::push - Push an item into the stack
    • parse_ini_file - Interpreta um arquivo de configuração
    • parse_ini_string - Interpreta uma string de configuração
    • parse_str - Converte a string em variáveis
    • parse_url - Parse a URL and return its components
    • passthru - Executa um programa externo e mostra a saída bruta
    • password_get_info - Retorna a informações sobre o hash fornecido
    • password_hash - Cria um hash de senha
    • password_needs_rehash - Verifica se o hash informado corresponde às opções especificadas
    • password_verify - Verifica se uma senha corresponde a um hash
    • pathinfo - Retorna informações sobre um caminho de arquivo
    • pclose - Fecha o ponteiro de arquivo de processo
    • pcntl_alarm - Set an alarm clock for delivery of a signal
    • pcntl_async_signals - Enable/disable asynchronous signal handling or return the old setting
    • pcntl_errno - Sinônimo de pcntl_get_last_error
    • pcntl_exec - Executes specified program in current process space
    • pcntl_fork - Forks the currently running process
    • pcntl_getpriority - Get the priority of any process
    • pcntl_get_last_error - Retrieve the error number set by the last pcntl function which failed
    • pcntl_rfork - Manipulates process resources
    • pcntl_setpriority - Change the priority of any process
    • pcntl_signal - Installs a signal handler
    • pcntl_signal_dispatch - Calls signal handlers for pending signals
    • pcntl_signal_get_handler - Get the current handler for specified signal
    • pcntl_sigprocmask - Sets and retrieves blocked signals
    • pcntl_sigtimedwait - Waits for signals, with a timeout
    • pcntl_sigwaitinfo - Waits for signals
    • pcntl_strerror - Retrieve the system error message associated with the given errno
    • pcntl_unshare - Dissociates parts of the process execution context
    • pcntl_wait - Waits on or returns the status of a forked child
    • pcntl_waitpid - Waits on or returns the status of a forked child
    • pcntl_wexitstatus - Returns the return code of a terminated child
    • pcntl_wifexited - Checks if status code represents a normal exit
    • pcntl_wifsignaled - Checks whether the status code represents a termination due to a signal
    • pcntl_wifstopped - Checks whether the 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
    • PDO::beginTransaction - Inicia uma transação
    • PDO::commit - Envia uma transação
    • PDO::cubrid_schema - Get the requested schema information
    • PDO::errorCode - Busca o SQLSTATE associado com a última operação no identificador do banco de dados
    • PDO::errorInfo - Busca informação de erro estendida associada com a última operação no identificador do banco de dados
    • PDO::exec - Executa uma instrução SQL e retorna o número de linhas afetadas
    • PDO::getAttribute - Recuperar um atributo da conexão com o banco de dados
    • PDO::getAvailableDrivers - Retorna um array com os drivers PDO disponíveis
    • PDO::inTransaction - Verifica se está dentro de uma transação
    • PDO::lastInsertId - Retorna o ID da última linha ou valor de sequência inserido
    • PDO::pgsqlCopyFromArray - Copy data from PHP array into table
    • PDO::pgsqlCopyFromFile - Copy data from file into table
    • PDO::pgsqlCopyToArray - Copy data from database table into PHP array
    • PDO::pgsqlCopyToFile - Copy data from table into file
    • PDO::pgsqlGetNotify - Get asynchronous notification
    • PDO::pgsqlGetPid - Get the server PID
    • PDO::pgsqlLOBCreate - Creates a new large object
    • PDO::pgsqlLOBOpen - Opens an existing large object stream
    • PDO::pgsqlLOBUnlink - Deletes the large object
    • PDO::prepare - Prepara uma instrução para execução e retorna um objeto de instrução
    • PDO::query - Prepara e executa uma instrução SQL sem espaços reservados
    • PDO::quote - Inclui aspas em uma string para uso em uma consulta
    • PDO::rollBack - Reverte uma transação
    • PDO::setAttribute - Define um atributo
    • PDO::sqliteCreateAggregate - Registra uma função de agregação definida pelo usuário para uso em declarações SQL
    • PDO::sqliteCreateCollation - Registra uma Função Definida pelo Usuário para uso como função de collation em declarações SQL
    • PDO::sqliteCreateFunction - Registra uma Função Definida pelo Usuário para uso em declarações SQL
    • PDO::__construct - Cria uma instância PDO representando uma conexão a um banco de dados
    • PDOStatement::bindColumn - Vincula uma coluna a uma variável PHP
    • PDOStatement::bindParam - Vincula um parâmetro ao nome de variável especificado
    • PDOStatement::bindValue - Binds a value to a parameter
    • PDOStatement::closeCursor - Closes the cursor, enabling the statement to be executed again
    • PDOStatement::columnCount - Returns the number of columns in the result set
    • PDOStatement::debugDumpParams - Dump an SQL prepared command
    • PDOStatement::errorCode - Fetch the SQLSTATE associated with the last operation on the statement handle
    • PDOStatement::errorInfo - Fetch extended error information associated with the last operation on the statement handle
    • PDOStatement::execute - Executes a prepared statement
    • PDOStatement::fetch - Fetches the next row from a result set
    • PDOStatement::fetchAll - Fetches the remaining rows from a result set
    • PDOStatement::fetchColumn - Returns a single column from the next row of a result set
    • PDOStatement::fetchObject - Fetches the next row and returns it as an object
    • PDOStatement::getAttribute - Retrieve a statement attribute
    • PDOStatement::getColumnMeta - Returns metadata for a column in a result set
    • PDOStatement::getIterator - Gets result set iterator
    • PDOStatement::nextRowset - Advances to the next rowset in a multi-rowset statement handle
    • PDOStatement::rowCount - Returns the number of rows affected by the last SQL statement
    • PDOStatement::setAttribute - Define um atributo na instrução
    • PDOStatement::setFetchMode - Define o modo de carga de dados para esta instrução
    • PDO_CUBRID DSN - Conectando-se a bancos de dados CUBRID
    • PDO_DBLIB DSN - Connecting to Microsoft SQL Server and Sybase databases
    • PDO_FIREBIRD DSN - Connecting to Firebird databases
    • PDO_IBM DSN - Connecting to IBM databases
    • PDO_INFORMIX DSN - Connecting to Informix databases
    • PDO_MYSQL DSN - Conectando a bancos de dados MySQL
    • PDO_OCI DSN - Connecting to Oracle databases
    • PDO_ODBC DSN - Connecting to ODBC or DB2 databases
    • PDO_PGSQL DSN - Connecting to PostgreSQL databases
    • PDO_SQLSRV DSN - Connecting to MS SQL Server and SQL Azure databases
    • pfsockopen - Open persistent Internet or Unix domain socket connection
    • pg_affected_rows - Returns number of affected records (tuples)
    • pg_cancel_query - Cancel an asynchronous query
    • pg_client_encoding - Gets the client encoding
    • pg_close - Closes a PostgreSQL connection
    • pg_connect - Open a PostgreSQL connection
    • pg_connection_busy - Get connection is busy or not
    • pg_connection_reset - Reset connection (reconnect)
    • pg_connection_status - Get connection status
    • pg_connect_poll - Poll the status of an in-progress asynchronous PostgreSQL connection attempt
    • pg_consume_input - Reads input on the connection
    • pg_convert - Convert associative array values into forms suitable for SQL statements
    • pg_copy_from - Insert records into a table from an array
    • pg_copy_to - Copy a table to an array
    • pg_dbname - Get the database name
    • pg_delete - Deletes records
    • pg_end_copy - Sync with PostgreSQL backend
    • pg_escape_bytea - Escape a string for insertion into a bytea field
    • pg_escape_identifier - Escape a identifier for insertion into a text field
    • pg_escape_literal - Escape a literal for insertion into a text field
    • pg_escape_string - Escape a string for query
    • pg_execute - Sends a request to execute a prepared statement with given parameters, and waits for the result
    • pg_fetch_all - Fetches all rows from a result as an array
    • pg_fetch_all_columns - Fetches all rows in a particular result column as an array
    • pg_fetch_array - Fetch a row as an array
    • pg_fetch_assoc - Fetch a row as an associative array
    • pg_fetch_object - Fetch a row as an object
    • pg_fetch_result - Returns values from a result instance
    • pg_fetch_row - Get a row as an enumerated array
    • pg_field_is_null - Test if a field is SQL 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_table - Returns the name or oid of the tables field
    • pg_field_type - Returns the type name for the corresponding field number
    • pg_field_type_oid - Returns the type ID (OID) for the corresponding field number
    • pg_flush - Flush outbound query data on the connection
    • pg_free_result - Free result memory
    • pg_get_notify - Gets SQL NOTIFY message
    • pg_get_pid - Gets the backend's process ID
    • pg_get_result - Get asynchronous query result
    • pg_host - Returns the host name associated with the connection
    • 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 row'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 - Read a large object
    • pg_lo_read_all - Reads an entire large object and send straight to browser
    • pg_lo_seek - Seeks position within a large object
    • pg_lo_tell - Returns current seek position a of large object
    • pg_lo_truncate - Truncates a large object
    • pg_lo_unlink - Delete a large object
    • pg_lo_write - Write to a large object
    • pg_meta_data - Get meta data for table
    • pg_num_fields - Returns the number of fields in a result
    • pg_num_rows - Returns the number of rows in a result
    • pg_options - Get the options associated with the connection
    • pg_parameter_status - Looks up a current parameter setting of the server
    • pg_pconnect - Open a persistent PostgreSQL connection
    • pg_ping - Ping database connection
    • pg_port - Return the port number associated with the connection
    • pg_prepare - Submits a request to create a prepared statement with the given parameters, and waits for completion
    • pg_put_line - Send a NULL-terminated string to PostgreSQL backend
    • pg_query - Execute a query
    • pg_query_params - Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text
    • pg_result_error - Get error message associated with result
    • pg_result_error_field - Returns an individual field of an error report
    • pg_result_seek - Set internal row offset in result instance
    • pg_result_status - Get status of query result
    • pg_select - Select records
    • pg_send_execute - Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)
    • pg_send_prepare - Sends a request to create a prepared statement with the given parameters, without waiting for completion
    • pg_send_query - Sends asynchronous query
    • pg_send_query_params - Submits a command and separate parameters to the server without waiting for the result(s)
    • pg_set_client_encoding - Set the client encoding
    • pg_set_error_context_visibility - Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error
    • pg_set_error_verbosity - Determines the verbosity of messages returned by pg_last_error and pg_result_error
    • pg_socket - Get a read only handle to the socket underlying a PostgreSQL connection
    • pg_trace - Enable tracing a PostgreSQL connection
    • pg_transaction_status - Returns the current in-transaction status of the server
    • pg_tty - Return the TTY name associated with the connection
    • pg_unescape_bytea - Unescape binary for bytea type
    • pg_untrace - Disable tracing of a PostgreSQL connection
    • pg_update - Update table
    • pg_version - Returns an array with client, protocol and server version (when available)
    • phar:// - Arquivo PHP
    • Phar::addEmptyDir - Add an empty directory to the phar archive
    • Phar::addFile - Add a file from the filesystem to the phar archive
    • Phar::addFromString - Add a file from a string to the phar archive
    • Phar::apiVersion - Returns the api version
    • Phar::buildFromDirectory - Construct a phar archive from the files within a directory
    • Phar::buildFromIterator - Construct a phar archive from an iterator
    • Phar::canCompress - Returns whether phar extension supports compression using either zlib or bzip2
    • Phar::canWrite - Returns whether phar extension supports writing and creating phars
    • Phar::compress - Compresses the entire Phar archive using Gzip or Bzip2 compression
    • Phar::compressFiles - Compresses all files in the current Phar archive
    • Phar::convertToData - Convert a phar archive to a non-executable tar or zip file
    • Phar::convertToExecutable - Convert a phar archive to another executable phar archive file format
    • Phar::copy - Copy a file internal to the phar archive to another new file within the phar
    • Phar::count - Returns the number of entries (files) in the Phar archive
    • Phar::createDefaultStub - Create a phar-file format specific stub
    • Phar::decompress - Decompresses the entire Phar archive
    • Phar::decompressFiles - Decompresses all files in the current Phar archive
    • Phar::delete - Delete a file within a phar archive
    • Phar::delMetadata - Deletes the global metadata of the phar
    • Phar::extractTo - Extract the contents of a phar archive to a directory
    • Phar::getAlias - Get the alias for Phar
    • Phar::getMetadata - Returns phar archive meta-data
    • Phar::getModified - Return whether phar was modified
    • Phar::getPath - Get the real path to the Phar archive on disk
    • Phar::getSignature - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
    • Phar::getStub - Return the PHP loader or bootstrap stub of a Phar archive
    • Phar::getSupportedCompression - Return array of supported compression algorithms
    • Phar::getSupportedSignatures - Return array of supported signature types
    • Phar::getVersion - Return version info of Phar archive
    • Phar::hasMetadata - Returns whether phar has global meta-data
    • Phar::interceptFileFuncs - Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
    • Phar::isBuffering - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
    • Phar::isCompressed - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
    • Phar::isFileFormat - Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
    • Phar::isValidPharFilename - Returns whether the given filename is a valid phar filename
    • Phar::isWritable - Returns true if the phar archive can be modified
    • Phar::loadPhar - Loads any phar archive with an alias
    • Phar::mapPhar - Reads the currently executed file (a phar) and registers its manifest
    • Phar::mount - Mount an external path or file to a virtual location within the phar archive
    • Phar::mungServer - Defines a list of up to 4 $_SERVER variables that should be modified for execution
    • Phar::offsetExists - Determines whether a file exists in the phar
    • Phar::offsetGet - Gets a PharFileInfo object for a specific file
    • Phar::offsetSet - Set the contents of an internal file to those of an external file
    • Phar::offsetUnset - Remove a file from a phar
    • Phar::running - Returns the full path on disk or full phar URL to the currently executing Phar archive
    • Phar::setAlias - Set the alias for the Phar archive
    • Phar::setDefaultStub - Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
    • Phar::setMetadata - Sets phar archive meta-data
    • Phar::setSignatureAlgorithm - Set the signature algorithm for a phar and apply it
    • Phar::setStub - Used to set the PHP loader or bootstrap stub of a Phar archive
    • Phar::startBuffering - Start buffering Phar write operations, do not modify the Phar object on disk
    • Phar::stopBuffering - Stop buffering write requests to the Phar archive, and save changes to disk
    • Phar::unlinkArchive - Completely remove a phar archive from disk and from memory
    • Phar::webPhar - Routes a request from a web browser to an internal file within the phar archive
    • Phar::__construct - Construct a Phar archive object
    • Phar::__destruct - Destructs a Phar archive object
    • PharData::addEmptyDir - Add an empty directory to the tar/zip archive
    • PharData::addFile - Add a file from the filesystem to the tar/zip archive
    • PharData::addFromString - Add a file from a string to the tar/zip archive
    • PharData::buildFromDirectory - Construct a tar/zip archive from the files within a directory
    • PharData::buildFromIterator - Construct a tar or zip archive from an iterator
    • PharData::compress - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
    • PharData::compressFiles - Compresses all files in the current tar/zip archive
    • PharData::convertToData - Convert a phar archive to a non-executable tar or zip file
    • PharData::convertToExecutable - Convert a non-executable tar/zip archive to an executable phar archive
    • PharData::copy - Copy a file internal to the phar archive to another new file within the phar
    • PharData::decompress - Decompresses the entire Phar archive
    • PharData::decompressFiles - Decompresses all files in the current zip archive
    • PharData::delete - Delete a file within a tar/zip archive
    • PharData::delMetadata - Deletes the global metadata of a zip archive
    • PharData::extractTo - Extract the contents of a tar/zip archive to a directory
    • PharData::isWritable - Returns true if the tar/zip archive can be modified
    • PharData::offsetSet - Set the contents of a file within the tar/zip to those of an external file or string
    • PharData::offsetUnset - Remove a file from a tar/zip archive
    • PharData::setAlias - Dummy function (Phar::setAlias is not valid for PharData)
    • PharData::setDefaultStub - Dummy function (Phar::setDefaultStub is not valid for PharData)
    • PharData::setMetadata - Sets phar archive meta-data
    • PharData::setSignatureAlgorithm - Set the signature algorithm for a phar and apply it
    • PharData::setStub - Dummy function (Phar::setStub is not valid for PharData)
    • PharData::__construct - Construct a non-executable tar or zip archive object
    • PharData::__destruct - Destructs a non-executable tar or zip archive object
    • PharFileInfo::chmod - Sets file-specific permission bits
    • PharFileInfo::compress - Compresses the current Phar entry with either zlib or bzip2 compression
    • PharFileInfo::decompress - Decompresses the current Phar entry within the phar
    • PharFileInfo::delMetadata - Deletes the metadata of the entry
    • PharFileInfo::getCompressedSize - Returns the actual size of the file (with compression) inside the Phar archive
    • PharFileInfo::getContent - Get the complete file contents of the entry
    • PharFileInfo::getCRC32 - Returns CRC32 code or throws an exception if CRC has not been verified
    • PharFileInfo::getMetadata - Returns file-specific meta-data saved with a file
    • PharFileInfo::getPharFlags - Returns the Phar file entry flags
    • PharFileInfo::hasMetadata - Returns the metadata of the entry
    • PharFileInfo::isCompressed - Returns whether the entry is compressed
    • PharFileInfo::isCRCChecked - Returns whether file entry has had its CRC verified
    • PharFileInfo::setMetadata - Sets file-specific meta-data saved with a file
    • PharFileInfo::__construct - Construct a Phar entry object
    • PharFileInfo::__destruct - Destructs a Phar entry object
    • php:// - Acessando vários fluxos de E/S
    • phpcredits - Prints out the credits for PHP
    • phpdbg_break_file - Insere um ponto de interrupção em uma linha de um arquivo
    • phpdbg_break_function - Insere um ponto de interrupção na entrada de uma função
    • phpdbg_break_method - Insere um ponto de interrupção na entrada de um método
    • phpdbg_break_next - Insere um ponto de interrupção no próximo opcode
    • phpdbg_clear - Limpa todos os pontos de interrupção
    • phpdbg_color - Define a cor de certos elementos
    • phpdbg_end_oplog - Descrição
    • phpdbg_exec - Tenta definir o contexto de execução
    • phpdbg_get_executable - Descrição
    • phpdbg_prompt - Define o prompt de comando
    • phpdbg_start_oplog - Descrição
    • phpinfo - Outputs information about PHP's configuration
    • PhpToken::getTokenName - Returns the name of the token.
    • PhpToken::is - Tells whether the token is of given kind.
    • PhpToken::isIgnorable - Tells whether the token would be ignored by the PHP parser.
    • PhpToken::tokenize - Splits given source into PHP tokens, represented by PhpToken objects.
    • PhpToken::__construct - Returns a new PhpToken object
    • PhpToken::__toString - Returns the textual content of the token.
    • phpversion - Gets the current PHP version
    • php_ini_loaded_file - Retrieve a path to the loaded php.ini file
    • php_ini_scanned_files - Return a list of .ini files parsed from the additional ini dir
    • php_sapi_name - Returns the type of interface between web server and PHP
    • php_strip_whitespace - Retorna o código com comentários e espaços em branco removidos
    • php_uname - Returns information about the operating system PHP is running on
    • php_user_filter::filter - Chamada na aplicação do filtro
    • php_user_filter::onClose - Chamado no fechamento do filtro
    • php_user_filter::onCreate - Chamado na criação do filtro
    • pi - Obtém o valor de pi
    • png2wbmp - Converte arquivo de imagem PNG em WBMP
    • Pool::collect - Collect references to completed tasks
    • Pool::resize - Resize the Pool
    • Pool::shutdown - Shutdown all workers
    • Pool::submit - Submits an object for execution
    • Pool::submitTo - Submits a task to a specific worker for execution
    • Pool::__construct - Creates a new Pool of Workers
    • popen - Abre um processo como ponteiro de arquivo
    • pos - Sinônimo de current
    • posix_access - Determine accessibility of a file
    • posix_ctermid - Get path name of controlling terminal
    • posix_eaccess - Determine accessibility of a file
    • posix_errno - Sinônimo de posix_get_last_error
    • posix_fpathconf - Returns the value of a configurable limit
    • posix_getcwd - Pathname of current directory
    • posix_getegid - Return the effective group ID of the current process
    • posix_geteuid - Return the effective user ID of the current process
    • posix_getgid - Return the real group ID of the current process
    • posix_getgrgid - Return info about a group by group id
    • posix_getgrnam - Return info about a group by name
    • posix_getgroups - Return the group set of the current process
    • posix_getlogin - Return login name
    • posix_getpgid - Get process group id for job control
    • posix_getpgrp - Return the current process group identifier
    • posix_getpid - Return the current process identifier
    • posix_getppid - Return the parent process identifier
    • posix_getpwnam - Return info about a user by username
    • posix_getpwuid - Return info about a user by user id
    • posix_getrlimit - Return info about system resource limits
    • posix_getsid - Get the current sid of the process
    • posix_getuid - Return the real user ID of the current process
    • posix_get_last_error - Retrieve the error number set by the last posix function that failed
    • posix_initgroups - Calculate the group access list
    • posix_isatty - Determine if a file descriptor is an interactive terminal
    • posix_kill - Send a signal to a process
    • posix_mkfifo - Create a fifo special file (a named pipe)
    • posix_mknod - Create a special or ordinary file (POSIX.1)
    • posix_pathconf - Returns the value of a configurable limit
    • posix_setegid - Set the effective GID of the current process
    • posix_seteuid - Set the effective UID of the current process
    • posix_setgid - Set the GID of the current process
    • posix_setpgid - Set process group id for job control
    • posix_setrlimit - Set system resource limits
    • posix_setsid - Make the current process a session leader
    • posix_setuid - Set the UID of the current process
    • posix_strerror - Retrieve the system error message associated with the given errno
    • posix_sysconf - Returns system runtime information
    • posix_times - Get process times
    • posix_ttyname - Determine terminal device name
    • posix_uname - Get system name
    • pow - Expressão exponencial
    • preg_filter - Perform a regular expression search and replace
    • preg_grep - Return array entries that match the pattern
    • preg_last_error - Retorna o código de erro da última expressão regular PCRE executada
    • preg_last_error_msg - Returns the error message of the last PCRE regex execution
    • preg_match - Perform a regular expression match
    • preg_match_all - Perform a global regular expression match
    • preg_quote - Quote regular expression characters
    • preg_replace - Realiza uma pesquisa por uma expressão regular e substitui
    • preg_replace_callback - Executa uma busca por expressão regular e substitui usando uma chamada de retorno
    • preg_replace_callback_array - Perform a regular expression search and replace using callbacks
    • preg_split - Split string by a regular expression
    • prev - Retrocede o ponteiro interno de um array
    • print - Mostra uma string
    • printf - Output a formatted string
    • print_r - Exibe informação legível sobre uma variável
    • proc_close - Fecha um processo aberto por proc_open e retorna o código de saída desse processo
    • proc_get_status - Obtem informação sobre um processo aberto por proc_open
    • proc_nice - Muda a prioridade do processo atual
    • proc_open - Executa um comando e abre ponteiros de arquivo para entrada/saída
    • proc_terminate - Termina um processo aberto por proc_open
    • property_exists - Verifica se o objeto ou a classe tem uma propriedade
    • pspell_add_to_personal - Add the word to a personal wordlist
    • pspell_add_to_session - Add the word to the wordlist in the current session
    • pspell_check - Check a word
    • pspell_clear_session - Clear the current session
    • pspell_config_create - Create a config used to open a dictionary
    • pspell_config_data_dir - Location of language data files
    • pspell_config_dict_dir - Location of the main word list
    • 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 - Load a new dictionary
    • 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_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
    • ps_add_bookmark - Add bookmark to current page
    • ps_add_launchlink - Adds link which launches file
    • ps_add_locallink - Adds link to a page in the same document
    • ps_add_note - Adds note to current page
    • ps_add_pdflink - Adds link to a page in a second pdf document
    • ps_add_weblink - Adds link to a web location
    • ps_arc - Draws an arc counterclockwise
    • ps_arcn - Draws an arc clockwise
    • ps_begin_page - Start a new page
    • ps_begin_pattern - Start a new pattern
    • ps_begin_template - Start a new template
    • ps_circle - Draws a circle
    • ps_clip - Clips drawing to current path
    • ps_close - Closes a PostScript document
    • ps_closepath - Closes path
    • ps_closepath_stroke - Closes and strokes path
    • ps_close_image - Closes image and frees memory
    • ps_continue_text - Continue text in next line
    • ps_curveto - Draws a curve
    • ps_delete - Deletes all resources of a PostScript document
    • ps_end_page - End a page
    • ps_end_pattern - End a pattern
    • ps_end_template - End a template
    • ps_fill - Fills the current path
    • ps_fill_stroke - Fills and strokes the current path
    • ps_findfont - Loads a font
    • ps_get_buffer - Fetches the full buffer containig the generated PS data
    • ps_get_parameter - Gets certain parameters
    • ps_get_value - Gets certain values
    • ps_hyphenate - Hyphenates a word
    • ps_include_file - Reads an external file with raw PostScript code
    • ps_lineto - Draws a line
    • ps_makespotcolor - Create spot color
    • ps_moveto - Sets current point
    • ps_new - Creates a new PostScript document object
    • ps_open_file - Opens a file for output
    • ps_open_image - Reads an image for later placement
    • ps_open_image_file - Opens image from file
    • ps_open_memory_image - Takes an GD image and returns an image for placement in a PS document
    • ps_place_image - Places image on the page
    • ps_rect - Draws a rectangle
    • ps_restore - Restore previously save context
    • ps_rotate - Sets rotation factor
    • ps_save - Save current context
    • ps_scale - Sets scaling factor
    • ps_setcolor - Sets current color
    • ps_setdash - Sets appearance of a dashed line
    • ps_setflat - Sets flatness
    • ps_setfont - Sets font to use for following output
    • ps_setgray - Sets gray value
    • ps_setlinecap - Sets appearance of line ends
    • ps_setlinejoin - Sets how contected lines are joined
    • ps_setlinewidth - Sets width of a line
    • ps_setmiterlimit - Sets the miter limit
    • ps_setoverprintmode - Sets overprint mode
    • ps_setpolydash - Sets appearance of a dashed line
    • ps_set_border_color - Sets color of border for annotations
    • ps_set_border_dash - Sets length of dashes for border of annotations
    • ps_set_border_style - Sets border style of annotations
    • ps_set_info - Sets information fields of document
    • ps_set_parameter - Sets certain parameters
    • ps_set_text_pos - Sets position for text output
    • ps_set_value - Sets certain values
    • ps_shading - Creates a shading for later use
    • ps_shading_pattern - Creates a pattern based on a shading
    • ps_shfill - Fills an area with a shading
    • ps_show - Output text
    • ps_show2 - Output a text at current position
    • ps_show_boxed - Output text in a box
    • ps_show_xy - Output text at given position
    • ps_show_xy2 - Output text at position
    • ps_stringwidth - Gets width of a string
    • ps_string_geometry - Gets geometry of a string
    • ps_stroke - Draws the current path
    • ps_symbol - Output a glyph
    • ps_symbol_name - Gets name of a glyph
    • ps_symbol_width - Gets width of a glyph
    • ps_translate - Sets translation
    • putenv - Define o valor de uma variável de ambiente
  • q
    • QuickHashIntHash::add - This method adds a new entry to the hash
    • QuickHashIntHash::delete - This method deletes an entry from the hash
    • QuickHashIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize - Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntHash::__construct - Creates a new QuickHashIntHash object
    • QuickHashIntSet::add - This method adds a new entry to the set
    • QuickHashIntSet::delete - This method deletes an entry from the set
    • QuickHashIntSet::exists - This method checks whether a key is part of the set
    • QuickHashIntSet::getSize - Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile - This factory method creates a set from a file
    • QuickHashIntSet::loadFromString - This factory method creates a set from a string
    • QuickHashIntSet::saveToFile - This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString - This method returns a serialized version of the set
    • QuickHashIntSet::__construct - Creates a new QuickHashIntSet object
    • QuickHashIntStringHash::add - This method adds a new entry to the hash
    • QuickHashIntStringHash::delete - This method deletes an entry from the hash
    • QuickHashIntStringHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize - Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntStringHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntStringHash::__construct - Creates a new QuickHashIntStringHash object
    • QuickHashStringIntHash::add - This method adds a new entry to the hash
    • QuickHashStringIntHash::delete - This method deletes an entry from the hash
    • QuickHashStringIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize - Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashStringIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashStringIntHash::__construct - Creates a new QuickHashStringIntHash object
    • quoted_printable_decode - Converte uma string Quoted-Printable para uma string de 8 bits
    • quoted_printable_encode - Converte uma string de 8 bits para uma string Quoted-Printable
    • quotemeta - Quote meta characters
  • r
    • rad2deg - Converte o número em radianos para o equivalente em graus
    • radius_acct_open - Creates a Radius handle for accounting
    • radius_add_server - Adds a server
    • radius_auth_open - Creates a Radius handle for authentication
    • radius_close - Frees all ressources
    • radius_config - Causes the library to read the given configuration file
    • radius_create_request - Create accounting or authentication request
    • radius_cvt_addr - Converts raw data to IP-Address
    • radius_cvt_int - Converts raw data to integer
    • radius_cvt_string - Converts raw data to string
    • radius_demangle - Demangles data
    • radius_demangle_mppe_key - Derives mppe-keys from mangled data
    • radius_get_attr - Extracts an attribute
    • radius_get_tagged_attr_data - Extracts the data from a tagged attribute
    • radius_get_tagged_attr_tag - Extracts the tag from a tagged attribute
    • radius_get_vendor_attr - Extracts a vendor specific attribute
    • radius_put_addr - Attaches an IP address attribute
    • radius_put_attr - Attaches a binary attribute
    • radius_put_int - Attaches an integer attribute
    • radius_put_string - Attaches a string attribute
    • radius_put_vendor_addr - Attaches a vendor specific IP address attribute
    • radius_put_vendor_attr - Attaches a vendor specific binary attribute
    • radius_put_vendor_int - Attaches a vendor specific integer attribute
    • radius_put_vendor_string - Attaches a vendor specific string attribute
    • radius_request_authenticator - Returns the request authenticator
    • radius_salt_encrypt_attr - Salt-encrypts a value
    • radius_send_request - Sends the request and waits for a reply
    • radius_server_secret - Returns the shared secret
    • radius_strerror - Returns an error message
    • rand - Generate a random integer
    • Random\Engine::generate - Generates randomness
    • Random\Engine\Mt19937::generate - Generate 32 bits of randomness
    • Random\Engine\Mt19937::__construct - Constructs a new Mt19937 engine
    • Random\Engine\Mt19937::__debugInfo - Returns the internal state of the engine
    • Random\Engine\Mt19937::__serialize - Serializes the Mt19937 object
    • Random\Engine\Mt19937::__unserialize - Deserializes the data parameter into a Mt19937 object
    • Random\Engine\PcgOneseq128XslRr64::generate - Generate 64 bits of randomness
    • Random\Engine\PcgOneseq128XslRr64::jump - Efficiently move the engine ahead multiple steps
    • Random\Engine\PcgOneseq128XslRr64::__construct - Constructs a new PCG Oneseq 128 XSL RR 64 engine
    • Random\Engine\PcgOneseq128XslRr64::__debugInfo - Returns the internal state of the engine
    • Random\Engine\PcgOneseq128XslRr64::__serialize - Serializes the PcgOneseq128XslRr64 object
    • Random\Engine\PcgOneseq128XslRr64::__unserialize - Deserializes the data parameter into a PcgOneseq128XslRr64 object
    • Random\Engine\Secure::generate - Generate cryptographically secure randomness
    • Random\Engine\Xoshiro256StarStar::generate - Generate 64 bits of randomness
    • Random\Engine\Xoshiro256StarStar::jump - Efficiently move the engine ahead by 2^128 steps
    • Random\Engine\Xoshiro256StarStar::jumpLong - Efficiently move the engine ahead by 2^192 steps
    • Random\Engine\Xoshiro256StarStar::__construct - Constructs a new xoshiro256** engine
    • Random\Engine\Xoshiro256StarStar::__debugInfo - Returns the internal state of the engine
    • Random\Engine\Xoshiro256StarStar::__serialize - Serializes the Xoshiro256StarStar object
    • Random\Engine\Xoshiro256StarStar::__unserialize - Deserializes the data parameter into a Xoshiro256StarStar object
    • Random\Randomizer::getBytes - Get random bytes
    • Random\Randomizer::getBytesFromString - Get random bytes from a source string
    • Random\Randomizer::getFloat - Get a uniformly selected float
    • Random\Randomizer::getInt - Get a uniformly selected integer
    • Random\Randomizer::nextFloat - Get a float from the right-open interval [0.0, 1.0)
    • Random\Randomizer::nextInt - Get a positive integer
    • Random\Randomizer::pickArrayKeys - Select random array keys
    • Random\Randomizer::shuffleArray - Get a permutation of an array
    • Random\Randomizer::shuffleBytes - Get a byte-wise permutation of a string
    • Random\Randomizer::__construct - Constructs a new Randomizer
    • Random\Randomizer::__serialize - Serializes the Randomizer object
    • Random\Randomizer::__unserialize - Deserializes the data parameter into a Randomizer object
    • random_bytes - Get cryptographically secure random bytes
    • random_int - Get a cryptographically secure, uniformly selected integer
    • range - Cria um array contendo uma faixa de elementos
    • rar:// - RAR
    • RarArchive::close - Close RAR archive and free all resources
    • RarArchive::getComment - Get comment text from the RAR archive
    • RarArchive::getEntries - Get full list of entries from the RAR archive
    • RarArchive::getEntry - Get entry object from the RAR archive
    • RarArchive::isBroken - Test whether an archive is broken (incomplete)
    • RarArchive::isSolid - Check whether the RAR archive is solid
    • RarArchive::open - Open RAR archive
    • RarArchive::setAllowBroken - Whether opening broken archives is allowed
    • RarArchive::__toString - Get text representation
    • RarEntry::extract - Extract entry from the archive
    • RarEntry::getAttr - Get attributes of the entry
    • RarEntry::getCrc - Get CRC of the entry
    • RarEntry::getFileTime - Get entry last modification time
    • RarEntry::getHostOs - Get entry host OS
    • RarEntry::getMethod - Get pack method of the entry
    • RarEntry::getName - Get name of the entry
    • RarEntry::getPackedSize - Get packed size of the entry
    • RarEntry::getStream - Get file handler for entry
    • RarEntry::getUnpackedSize - Get unpacked size of the entry
    • RarEntry::getVersion - Get minimum version of RAR program required to unpack the entry
    • RarEntry::isDirectory - Test whether an entry represents a directory
    • RarEntry::isEncrypted - Test whether an entry is encrypted
    • RarEntry::__toString - Get text representation of entry
    • RarException::isUsingExceptions - Check whether error handling with exceptions is in use
    • RarException::setUsingExceptions - Activate and deactivate error handling with exceptions
    • rar_wrapper_cache_stats - Cache hits and misses for the URL wrapper
    • rawurldecode - Decodifica uma URL
    • rawurlencode - Codifica uma URL de acordo com RFC 3986
    • readdir - Lê entrada do manipulador do diretório
    • readfile - Exibe o conteúdo de um arquivo
    • readgzfile - Exibe um arquivo gz
    • readline - Lê uma linha
    • readline_add_history - Adiciona uma linha ao histórico
    • readline_callback_handler_install - Inicializa a interface de chamada de retorno e o terminal de readline, mostra o prompt e retorna imediatamente
    • readline_callback_handler_remove - Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do terminal
    • readline_callback_read_char - Lê um caractere e informa a interface de chamada de retorno de readline quando uma linha é recebida
    • readline_clear_history - Limpa o histórico
    • readline_completion_function - Registra uma função de completamento
    • readline_info - Obtém/Define várias variáveis internas de readline
    • readline_list_history - Lista o histórico
    • readline_on_new_line - Informa à readline que o cursor se moveu para uma nova linha
    • readline_read_history - Lê o histórico
    • readline_redisplay - Redesenha a tela
    • readline_write_history - Grava o histórico
    • readlink - Retornar o alvo de uma ligação simbólica
    • read_exif_data - Sinônimo de exif_read_data
    • realpath - Retorna o path absoluto canonizado
    • realpath_cache_get - Obter entradas de cache do caminho absoluto
    • realpath_cache_size - Obter o tamanho do cache do caminho absoluto
    • recode - Sinônimo de recode_string
    • recode_file - Recode from file to file according to recode request
    • recode_string - Recode a string according to a recode request
    • RecursiveArrayIterator::getChildren - Retorna um iterador para a entrada atual se ela for um array ou um object
    • RecursiveArrayIterator::hasChildren - Retorna se a entrada atual é um array ou um objeto
    • RecursiveCachingIterator::getChildren - Retorna os filhos do iterador interno como um RecursiveCachingIterator
    • RecursiveCachingIterator::hasChildren - Verifica se o elemento atual do iterador interno possui filhos
    • RecursiveCachingIterator::__construct - Construtor
    • RecursiveCallbackFilterIterator::getChildren - Retorna os filhos do iterador interno contidos em um RecursiveCallbackFilterIterator
    • RecursiveCallbackFilterIterator::hasChildren - Verifica se o elemento atual do iterador interno possui filhos
    • RecursiveCallbackFilterIterator::__construct - Cria um RecursiveCallbackFilterIterator a partir de um RecursiveIterator
    • RecursiveDirectoryIterator::getChildren - Retorna um iterador para o elemento atual se ele for um diretório
    • RecursiveDirectoryIterator::getSubPath - Obtém o subcaminho
    • RecursiveDirectoryIterator::getSubPathname - Obtém o subcaminho e o nome
    • RecursiveDirectoryIterator::hasChildren - Retorna se o elemento atual é ou não um diretório que não seja '.' nem '..'
    • RecursiveDirectoryIterator::key - Retorna o caminho e o nome do arquivo do elemento atual do diretório
    • RecursiveDirectoryIterator::next - Avança para o próximo elemento
    • RecursiveDirectoryIterator::rewind - Recomeça a iteração do diretório
    • RecursiveDirectoryIterator::__construct - Constrói um RecursiveDirectoryIterator
    • RecursiveFilterIterator::getChildren - Retorna os filhos do iterador interno contidos em um RecursiveFilterIterator
    • RecursiveFilterIterator::hasChildren - Verifica se o elemento atual do iterador interno tem filhos
    • RecursiveFilterIterator::__construct - Cria um RecursiveFilterIterator a partir de um RecursiveIterator
    • RecursiveIterator::getChildren - Retorna um iterador para a entrada atual
    • RecursiveIterator::hasChildren - Retorna se um iterador pode ser criado para a entrada atual
    • RecursiveIteratorIterator::beginChildren - Inicia filhos
    • RecursiveIteratorIterator::beginIteration - Inicia Iteração
    • RecursiveIteratorIterator::callGetChildren - Obtém filhos
    • RecursiveIteratorIterator::callHasChildren - Tem filhos
    • RecursiveIteratorIterator::current - Retorna o valor do elemento atual
    • RecursiveIteratorIterator::endChildren - Encerra filhos
    • RecursiveIteratorIterator::endIteration - Finaliza Iteração
    • RecursiveIteratorIterator::getDepth - Retorna a profundidade atual da iteração recursiva
    • RecursiveIteratorIterator::getInnerIterator - Obtém iterador interno
    • RecursiveIteratorIterator::getMaxDepth - Obtém a profundidade máxima
    • RecursiveIteratorIterator::getSubIterator - Retorna o sub-iterador ativo atual
    • RecursiveIteratorIterator::key - Retorna a chave atual
    • RecursiveIteratorIterator::next - Avança para o próximo elemento
    • RecursiveIteratorIterator::nextElement - Próximo elemento
    • RecursiveIteratorIterator::rewind - Recomeça o iterador no primeiro elemento do primeiro iterador interno
    • RecursiveIteratorIterator::setMaxDepth - Define profundidade máxima
    • RecursiveIteratorIterator::valid - Verifica se a posição atual é válida
    • RecursiveIteratorIterator::__construct - Constrói um RecursiveIteratorIterator
    • RecursiveRegexIterator::getChildren - Retorna um iterador para a entrada atual
    • RecursiveRegexIterator::hasChildren - Retorna se um iterador pode ser obtido para a entrada atual
    • RecursiveRegexIterator::__construct - Cria um novo RecursiveRegexIterator
    • RecursiveTreeIterator::beginChildren - Iniciar filhos
    • RecursiveTreeIterator::beginIteration - Inicia iteração
    • RecursiveTreeIterator::callGetChildren - Obtém filhos
    • RecursiveTreeIterator::callHasChildren - Tem filhos
    • RecursiveTreeIterator::current - Obtém o elemento atual
    • RecursiveTreeIterator::endChildren - Termina os filhos
    • RecursiveTreeIterator::endIteration - Termina iteração
    • RecursiveTreeIterator::getEntry - Obtém entrada atual
    • RecursiveTreeIterator::getPostfix - Obtém o sufixo
    • RecursiveTreeIterator::getPrefix - Obtém o prefixo
    • RecursiveTreeIterator::key - Obtém a chave do elemento atual
    • RecursiveTreeIterator::next - Move para o próximo elemento
    • RecursiveTreeIterator::nextElement - Próximo elemento
    • RecursiveTreeIterator::rewind - Rebobina o iterador
    • RecursiveTreeIterator::setPostfix - Define sufixo
    • RecursiveTreeIterator::setPrefixPart - Define uma parte do prefixo
    • RecursiveTreeIterator::valid - Verifica validade
    • RecursiveTreeIterator::__construct - Constrói um RecursiveTreeIterator
    • Reflection::export - Exports
    • Reflection::getModifierNames - Obtém os nomes dos modificadores
    • ReflectionAttribute::getArguments - Obtém os argumentos passados para o atributo
    • ReflectionAttribute::getName - Obtém o nome do atributo
    • ReflectionAttribute::getTarget - Retorna o alvo do atributo como uma máscara de bits
    • ReflectionAttribute::isRepeated - Retorna se o atributo deste nome foi repetido em um elemento de código
    • ReflectionAttribute::newInstance - Instancia a classe de atributo representada por esta classe ReflectionAttribute e argumentos
    • ReflectionAttribute::__construct - Construtor privado para evitar a instanciação direta
    • ReflectionClass::export - Exports a class
    • ReflectionClass::getAttributes - Gets Attributes
    • ReflectionClass::getConstant - Gets defined constant
    • ReflectionClass::getConstants - Gets constants
    • ReflectionClass::getConstructor - Gets the constructor of the class
    • ReflectionClass::getDefaultProperties - Gets default properties
    • ReflectionClass::getDocComment - Gets doc comments
    • ReflectionClass::getEndLine - Gets end line
    • ReflectionClass::getExtension - Gets a ReflectionExtension object for the extension which defined the class
    • ReflectionClass::getExtensionName - Gets the name of the extension which defined the class
    • ReflectionClass::getFileName - Gets the filename of the file in which the class has been defined
    • ReflectionClass::getInterfaceNames - Gets the interface names
    • ReflectionClass::getInterfaces - Gets the interfaces
    • ReflectionClass::getMethod - Gets a ReflectionMethod for a class method
    • ReflectionClass::getMethods - Gets an array of methods
    • ReflectionClass::getModifiers - Gets the class modifiers
    • ReflectionClass::getName - Gets class name
    • ReflectionClass::getNamespaceName - Gets namespace name
    • ReflectionClass::getParentClass - Gets parent class
    • ReflectionClass::getProperties - Gets properties
    • ReflectionClass::getProperty - Gets a ReflectionProperty for a class's property
    • ReflectionClass::getReflectionConstant - Gets a ReflectionClassConstant for a class's constant
    • ReflectionClass::getReflectionConstants - Gets class constants
    • ReflectionClass::getShortName - Gets short name
    • ReflectionClass::getStartLine - Gets starting line number
    • ReflectionClass::getStaticProperties - Gets static properties
    • ReflectionClass::getStaticPropertyValue - Gets static property value
    • ReflectionClass::getTraitAliases - Returns an array of trait aliases
    • ReflectionClass::getTraitNames - Returns an array of names of traits used by this class
    • ReflectionClass::getTraits - Returns an array of traits used by this class
    • ReflectionClass::hasConstant - Checks if constant is defined
    • ReflectionClass::hasMethod - Checks if method is defined
    • ReflectionClass::hasProperty - Checks if property is defined
    • ReflectionClass::implementsInterface - Implements interface
    • ReflectionClass::inNamespace - Checks if in namespace
    • ReflectionClass::isAbstract - Checks if class is abstract
    • ReflectionClass::isAnonymous - Checks if class is anonymous
    • ReflectionClass::isCloneable - Returns whether this class is cloneable
    • ReflectionClass::isEnum - Returns whether this is an enum
    • ReflectionClass::isFinal - Checks if class is final
    • ReflectionClass::isInstance - Checks class for instance
    • ReflectionClass::isInstantiable - Checks if the class is instantiable
    • ReflectionClass::isInterface - Checks if the class is an interface
    • ReflectionClass::isInternal - Checks if class is defined internally by an extension, or the core
    • ReflectionClass::isIterable - Check whether this class is iterable
    • ReflectionClass::isIterateable - Sinônimo de ReflectionClass::isIterable
    • ReflectionClass::isReadOnly - Checks if class is readonly
    • ReflectionClass::isSubclassOf - Checks if a subclass
    • ReflectionClass::isTrait - Returns whether this is a trait
    • ReflectionClass::isUserDefined - Checks if user defined
    • ReflectionClass::newInstance - Creates a new class instance from given arguments
    • ReflectionClass::newInstanceArgs - Creates a new class instance from given arguments
    • ReflectionClass::newInstanceWithoutConstructor - Creates a new class instance without invoking the constructor
    • ReflectionClass::setStaticPropertyValue - Sets static property value
    • ReflectionClass::__construct - Constructs a ReflectionClass
    • ReflectionClass::__toString - Returns the string representation of the ReflectionClass object
    • ReflectionClassConstant::export - Export
    • ReflectionClassConstant::getAttributes - Gets Attributes
    • ReflectionClassConstant::getDeclaringClass - Gets declaring class
    • ReflectionClassConstant::getDocComment - Gets doc comments
    • ReflectionClassConstant::getModifiers - Gets the class constant modifiers
    • ReflectionClassConstant::getName - Get name of the constant
    • ReflectionClassConstant::getValue - Gets value
    • ReflectionClassConstant::isEnumCase - Checks if class constant is an Enum case
    • ReflectionClassConstant::isFinal - Checks if class constant is final
    • ReflectionClassConstant::isPrivate - Checks if class constant is private
    • ReflectionClassConstant::isProtected - Checks if class constant is protected
    • ReflectionClassConstant::isPublic - Checks if class constant is public
    • ReflectionClassConstant::__construct - Constructs a ReflectionClassConstant
    • ReflectionClassConstant::__toString - Returns the string representation of the ReflectionClassConstant object
    • ReflectionEnum::getBackingType - Gets the backing type of an Enum, if any
    • ReflectionEnum::getCase - Returns a specific case of an Enum
    • ReflectionEnum::getCases - Returns a list of all cases on an Enum
    • ReflectionEnum::hasCase - Checks for a case on an Enum
    • ReflectionEnum::isBacked - Determines if an Enum is a Backed Enum
    • ReflectionEnum::__construct - Instantiates a ReflectionEnum object
    • ReflectionEnumBackedCase::getBackingValue - Gets the scalar value backing this Enum case
    • ReflectionEnumBackedCase::__construct - Instantiates a ReflectionEnumBackedCase object
    • ReflectionEnumUnitCase::getEnum - Gets the reflection of the enum of this case
    • ReflectionEnumUnitCase::getValue - Gets the enum case object described by this reflection object
    • ReflectionEnumUnitCase::__construct - Instantiates a ReflectionEnumUnitCase object
    • ReflectionExtension::export - Export
    • ReflectionExtension::getClasses - Gets classes
    • ReflectionExtension::getClassNames - Gets class names
    • ReflectionExtension::getConstants - Gets constants
    • ReflectionExtension::getDependencies - Gets dependencies
    • ReflectionExtension::getFunctions - Gets extension functions
    • ReflectionExtension::getINIEntries - Gets extension ini entries
    • ReflectionExtension::getName - Gets extension name
    • ReflectionExtension::getVersion - Gets extension version
    • ReflectionExtension::info - Imprime informações da extensão
    • ReflectionExtension::isPersistent - Returns whether this extension is persistent
    • ReflectionExtension::isTemporary - Returns whether this extension is temporary
    • ReflectionExtension::__clone - Clones
    • ReflectionExtension::__construct - Constructs a ReflectionExtension
    • ReflectionExtension::__toString - To string
    • ReflectionFiber::getCallable - Gets the callable used to create the Fiber
    • ReflectionFiber::getExecutingFile - Get the file name of the current execution point
    • ReflectionFiber::getExecutingLine - Get the line number of the current execution point
    • ReflectionFiber::getFiber - Get the reflected Fiber instance
    • ReflectionFiber::getTrace - Get the backtrace of the current execution point
    • ReflectionFiber::__construct - Constructs a ReflectionFiber object
    • ReflectionFunction::export - Exports function
    • ReflectionFunction::getClosure - Returns a dynamically created closure for the function
    • ReflectionFunction::invoke - Invokes function
    • ReflectionFunction::invokeArgs - Invokes function args
    • ReflectionFunction::isAnonymous - Checks if a function is anonymous
    • ReflectionFunction::isDisabled - Checks if function is disabled
    • ReflectionFunction::__construct - Constructs a ReflectionFunction object
    • ReflectionFunction::__toString - Returns the string representation of the ReflectionFunction object
    • ReflectionFunctionAbstract::getAttributes - Gets Attributes
    • ReflectionFunctionAbstract::getClosureScopeClass - Returns the scope class associated with the closure
    • ReflectionFunctionAbstract::getClosureThis - Returns this pointer bound to closure
    • ReflectionFunctionAbstract::getClosureUsedVariables - Returns an array of the used variables in the Closure
    • ReflectionFunctionAbstract::getDocComment - Gets doc comment
    • ReflectionFunctionAbstract::getEndLine - Gets end line number
    • ReflectionFunctionAbstract::getExtension - Gets extension info
    • ReflectionFunctionAbstract::getExtensionName - Gets extension name
    • ReflectionFunctionAbstract::getFileName - Gets file name
    • ReflectionFunctionAbstract::getName - Gets function name
    • ReflectionFunctionAbstract::getNamespaceName - Gets namespace name
    • ReflectionFunctionAbstract::getNumberOfParameters - Gets number of parameters
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters - Gets number of required parameters
    • ReflectionFunctionAbstract::getParameters - Gets parameters
    • ReflectionFunctionAbstract::getReturnType - Gets the specified return type of a function
    • ReflectionFunctionAbstract::getShortName - Gets function short name
    • ReflectionFunctionAbstract::getStartLine - Gets starting line number
    • ReflectionFunctionAbstract::getStaticVariables - Gets static variables
    • ReflectionFunctionAbstract::getTentativeReturnType - Returns the tentative return type associated with the function
    • ReflectionFunctionAbstract::hasReturnType - Checks if the function has a specified return type
    • ReflectionFunctionAbstract::hasTentativeReturnType - Returns whether the function has a tentative return type
    • ReflectionFunctionAbstract::inNamespace - Checks if function in namespace
    • ReflectionFunctionAbstract::isClosure - Checks if closure
    • ReflectionFunctionAbstract::isDeprecated - Checks if deprecated
    • ReflectionFunctionAbstract::isGenerator - Returns whether this function is a generator
    • ReflectionFunctionAbstract::isInternal - Checks if is internal
    • ReflectionFunctionAbstract::isStatic - Checks if the function is static
    • ReflectionFunctionAbstract::isUserDefined - Checks if user defined
    • ReflectionFunctionAbstract::isVariadic - Checks if the function is variadic
    • ReflectionFunctionAbstract::returnsReference - Checks if returns reference
    • ReflectionFunctionAbstract::__clone - Clones function
    • ReflectionFunctionAbstract::__toString - Returns the string representation of the ReflectionFunctionAbstract object
    • ReflectionGenerator::getExecutingFile - Gets the file name of the currently executing generator
    • ReflectionGenerator::getExecutingGenerator - Gets the executing Generator object
    • ReflectionGenerator::getExecutingLine - Gets the currently executing line of the generator
    • ReflectionGenerator::getFunction - Gets the function name of the generator
    • ReflectionGenerator::getThis - Gets the $this value of the generator
    • ReflectionGenerator::getTrace - Gets the trace of the executing generator
    • ReflectionGenerator::__construct - Constructs a ReflectionGenerator object
    • ReflectionIntersectionType::getTypes - Returns the types included in the intersection type
    • ReflectionMethod::createFromMethodName - Creates a new ReflectionMethod
    • ReflectionMethod::export - Export a reflection method
    • ReflectionMethod::getClosure - Returns a dynamically created closure for the method
    • ReflectionMethod::getDeclaringClass - Gets declaring class for the reflected method
    • ReflectionMethod::getModifiers - Gets the method modifiers
    • ReflectionMethod::getPrototype - Gets the method prototype (if there is one)
    • ReflectionMethod::hasPrototype - Returns whether a method has a prototype
    • ReflectionMethod::invoke - Invoke
    • ReflectionMethod::invokeArgs - Invoke args
    • ReflectionMethod::isAbstract - Checks if method is abstract
    • ReflectionMethod::isConstructor - Checks if method is a constructor
    • ReflectionMethod::isDestructor - Checks if method is a destructor
    • ReflectionMethod::isFinal - Checks if method is final
    • ReflectionMethod::isPrivate - Checks if method is private
    • ReflectionMethod::isProtected - Checks if method is protected
    • ReflectionMethod::isPublic - Checks if method is public
    • ReflectionMethod::setAccessible - Set method accessibility
    • ReflectionMethod::__construct - Constructs a ReflectionMethod
    • ReflectionMethod::__toString - Returns the string representation of the Reflection method object
    • ReflectionNamedType::getName - Obtém o nome do tipo como uma string
    • ReflectionNamedType::isBuiltin - Checks if it is a built-in type
    • ReflectionObject::export - Export
    • ReflectionObject::__construct - Constructs a ReflectionObject
    • ReflectionParameter::allowsNull - Checks if null is allowed
    • ReflectionParameter::canBePassedByValue - Returns whether this parameter can be passed by value
    • ReflectionParameter::export - Exports
    • ReflectionParameter::getAttributes - Gets Attributes
    • ReflectionParameter::getClass - Get a ReflectionClass object for the parameter being reflected or null
    • ReflectionParameter::getDeclaringClass - Gets declaring class
    • ReflectionParameter::getDeclaringFunction - Gets declaring function
    • ReflectionParameter::getDefaultValue - Gets default parameter value
    • ReflectionParameter::getDefaultValueConstantName - Returns the default value's constant name if default value is constant or null
    • ReflectionParameter::getName - Gets parameter name
    • ReflectionParameter::getPosition - Gets parameter position
    • ReflectionParameter::getType - Gets a parameter's type
    • ReflectionParameter::hasType - Checks if parameter has a type
    • ReflectionParameter::isArray - Checks if parameter expects an array
    • ReflectionParameter::isCallable - Returns whether parameter MUST be callable
    • ReflectionParameter::isDefaultValueAvailable - Checks if a default value is available
    • ReflectionParameter::isDefaultValueConstant - Returns whether the default value of this parameter is a constant
    • ReflectionParameter::isOptional - Checks if optional
    • ReflectionParameter::isPassedByReference - Checks if passed by reference
    • ReflectionParameter::isVariadic - Checks if the parameter is variadic
    • ReflectionParameter::__clone - Clone
    • ReflectionParameter::__construct - Construct
    • ReflectionParameter::__toString - To string
    • ReflectionProperty::export - Export
    • ReflectionProperty::getAttributes - Gets Attributes
    • ReflectionProperty::getDeclaringClass - Gets declaring class
    • ReflectionProperty::getDefaultValue - Returns the default value declared for a property
    • ReflectionProperty::getDocComment - Gets the property doc comment
    • ReflectionProperty::getModifiers - Gets the property modifiers
    • ReflectionProperty::getName - Gets property name
    • ReflectionProperty::getType - Gets a property's type
    • ReflectionProperty::getValue - Gets value
    • ReflectionProperty::hasDefaultValue - Checks if property has a default value declared
    • ReflectionProperty::hasType - Checks if property has a type
    • ReflectionProperty::isDefault - Checks if property is a default property
    • ReflectionProperty::isInitialized - Checks whether a property is initialized
    • ReflectionProperty::isPrivate - Checks if property is private
    • ReflectionProperty::isPromoted - Checks if property is promoted
    • ReflectionProperty::isProtected - Checks if property is protected
    • ReflectionProperty::isPublic - Checks if property is public
    • ReflectionProperty::isReadOnly - Checks if property is readonly
    • ReflectionProperty::isStatic - Checks if property is static
    • ReflectionProperty::setAccessible - Set property accessibility
    • ReflectionProperty::setValue - Set property value
    • ReflectionProperty::__clone - Clone
    • ReflectionProperty::__construct - Construct a ReflectionProperty object
    • ReflectionProperty::__toString - To string
    • ReflectionReference::fromArrayElement - Create a ReflectionReference from an array element
    • ReflectionReference::getId - Get unique ID of a reference
    • ReflectionReference::__construct - Private constructor to disallow direct instantiation
    • ReflectionType::allowsNull - Checks if null is allowed
    • ReflectionType::__toString - To string
    • ReflectionUnionType::getTypes - Returns the types included in the union type
    • ReflectionZendExtension::export - Export
    • ReflectionZendExtension::getAuthor - Gets author
    • ReflectionZendExtension::getCopyright - Gets copyright
    • ReflectionZendExtension::getName - Gets name
    • ReflectionZendExtension::getURL - Gets URL
    • ReflectionZendExtension::getVersion - Gets version
    • ReflectionZendExtension::__clone - Clone handler
    • ReflectionZendExtension::__construct - Constructs a ReflectionZendExtension object
    • ReflectionZendExtension::__toString - To string handler
    • Reflector::export - Exports
    • RegexIterator::accept - Obtém o status de aceitação
    • RegexIterator::getFlags - Obtém opções
    • RegexIterator::getMode - Retorna o modo de operação
    • RegexIterator::getPregFlags - Retorna as opções da expressão regular
    • RegexIterator::getRegex - Retorna a expressão regular atual
    • RegexIterator::setFlags - Define as opções
    • RegexIterator::setMode - Define o modo de operação
    • RegexIterator::setPregFlags - Define as opções da expressão regular
    • RegexIterator::__construct - Cria um novo RegexIterator
    • register_shutdown_function - Register a function for execution on shutdown
    • register_tick_function - Register a function for execution on each tick
    • rename - Renomeia um arquivo ou diretório
    • reset - Faz o ponteiro interno de um array apontar para o seu primeiro elemento
    • ResourceBundle::count - Obtém o número de elementos no pacote
    • ResourceBundle::create - Cria um pacote de recursos
    • ResourceBundle::get - Obtém os dados do pacote
    • ResourceBundle::getErrorCode - Obtém o código do último erro gerado pelo pacote.
    • ResourceBundle::getErrorMessage - Obtém a última mensagem de erro gerada pelo pacote
    • ResourceBundle::getLocales - Obtém as localidades suportadas
    • restore_error_handler - Restaura a função anterior de gerenciamento de erro
    • restore_exception_handler - Restaura a função de manipulação de exceção anteriormente definida
    • restore_include_path - Restaura o valor da opção de configuração include_path
    • Result::getAffectedItemsCount - Get affected row count
    • Result::getAutoIncrementValue - Get autoincremented value
    • Result::getGeneratedIds - Get generated ids
    • Result::getWarnings - Get warnings from last operation
    • Result::getWarningsCount - Get warning count from last operation
    • Result::__construct - Result constructor
    • ReturnTypeWillChange::__construct - Constrói uma nova instância do atributo ReturnTypeWillChange
    • rewind - Retrocede a posição de um ponteiro de arquivos
    • rewinddir - Retroceder o manipulador de diretório
    • rmdir - Remove um diretório
    • rnp_backend_string - Return cryptographic backend library name
    • rnp_backend_version - Return cryptographic backend library version
    • rnp_decrypt - Decrypt PGP message
    • rnp_dump_packets - Dump OpenPGP packets stream information in humand-readable format
    • rnp_dump_packets_to_json - Dump OpenPGP packets stream information to the JSON string
    • rnp_ffi_create - Create the top-level object used for interacting with the library
    • rnp_ffi_destroy - Destroy the top-level object used for interacting with the library
    • rnp_ffi_set_pass_provider - Set password provider callback function
    • rnp_import_keys - Import keys from PHP string to the keyring and receive JSON describing new/updated keys
    • rnp_import_signatures - Import standalone signatures to the keyring and receive JSON describing updated keys
    • rnp_key_export - Export a key
    • rnp_key_export_autocrypt - Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)
    • rnp_key_export_revocation - Generate and export primary key revocation signature
    • rnp_key_get_info - Get information about the key
    • rnp_key_remove - Remove a key from keyring(s)
    • rnp_key_revoke - Revoke a key or subkey by generating and adding revocation signature
    • rnp_list_keys - Enumerate all keys present in a keyring by specified identifer type
    • rnp_load_keys - Load keys from PHP string
    • rnp_load_keys_from_path - Load keys from specified path
    • rnp_locate_key - Search for the key
    • rnp_op_encrypt - Encrypt message
    • rnp_op_generate_key - Generate key
    • rnp_op_sign - Perform signing operation on a binary data, return embedded signature(s)
    • rnp_op_sign_cleartext - Perform signing operation on a textual data, return cleartext signed message
    • rnp_op_sign_detached - Perform signing operation, return detached signature(s)
    • rnp_op_verify - Verify embedded or cleartext signatures
    • rnp_op_verify_detached - Verify detached signatures
    • rnp_save_keys - Save keys to PHP string
    • rnp_save_keys_to_path - Save keys to specified path
    • rnp_supported_features - Get supported features in JSON format
    • rnp_version_string - RNP library version
    • rnp_version_string_full - Full version string of RNP library
    • round - Arredonda um float
    • RowResult::fetchAll - Get all rows from result
    • RowResult::fetchOne - Get row from result
    • RowResult::getColumnNames - Get all column names
    • RowResult::getColumns - Get column metadata
    • RowResult::getColumnsCount - Get column count
    • RowResult::getWarnings - Get warnings from last operation
    • RowResult::getWarningsCount - Get warning count from last operation
    • RowResult::__construct - RowResult constructor
    • rpmaddtag - Add tag retrieved in query
    • rpmdbinfo - Get information from installed RPM
    • rpmdbsearch - Search RPM packages
    • rpmgetsymlink - Get target of a symlink
    • rpminfo - Get information from a RPM file
    • rpmvercmp - RPM version comparison
    • RRDCreator::addArchive - Adds RRA - archive of data values for each data source
    • RRDCreator::addDataSource - Adds data source definition for RRD database
    • RRDCreator::save - Saves the RRD database to a file
    • RRDCreator::__construct - Creates new RRDCreator instance
    • rrdc_disconnect - Close any outstanding connection to rrd caching daemon
    • RRDGraph::save - Saves the result of query into image
    • RRDGraph::saveVerbose - Saves the RRD database query into image and returns the verbose information about generated graph
    • RRDGraph::setOptions - Sets the options for rrd graph export
    • RRDGraph::__construct - Creates new RRDGraph instance
    • RRDUpdater::update - Update the RRD database file
    • RRDUpdater::__construct - Creates new RRDUpdater instance
    • rrd_create - Creates rrd database file
    • rrd_error - Gets latest error message
    • rrd_fetch - Fetch the data for graph as array
    • rrd_first - Gets the timestamp of the first sample from rrd file
    • rrd_graph - Creates image from a data
    • rrd_info - Gets information about rrd file
    • rrd_last - Gets unix timestamp of the last sample
    • rrd_lastupdate - Gets information about last updated data
    • rrd_restore - Restores the RRD file from XML dump
    • rrd_tune - Tunes some RRD database file header options
    • rrd_update - Updates the RRD database
    • rrd_version - Gets information about underlying rrdtool library
    • rrd_xport - Exports the information about RRD database
    • rsort - Ordena um array em ordem descrescente
    • rtrim - Retira espaço em branco (ou outros caracteres) do final de uma string
    • runkit7_constant_add - Similar to define(), but allows defining in class definitions as well
    • runkit7_constant_redefine - Redefine an already defined constant
    • runkit7_constant_remove - Remove/Delete an already defined constant
    • runkit7_function_add - Add a new function, similar to create_function
    • runkit7_function_copy - Copy a function to a new function name
    • runkit7_function_redefine - Replace a function definition with a new implementation
    • runkit7_function_remove - Remove a function definition
    • runkit7_function_rename - Change a function's name
    • runkit7_import - Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit7_method_add - Dynamically adds a new method to a given class
    • runkit7_method_copy - Copies a method from class to another
    • runkit7_method_redefine - Dynamically changes the code of the given method
    • runkit7_method_remove - Dynamically removes the given method
    • runkit7_method_rename - Dynamically changes the name of the given method
    • runkit7_object_id - Return the integer object handle for given object
    • runkit7_superglobals - Return numerically indexed array of registered superglobals
    • runkit7_zval_inspect - Returns information about the passed in value with data types, reference counts, etc
  • s
    • sapi_windows_cp_conv - Converte string de um código de página para outro
    • sapi_windows_cp_get - Obtém o código de página atual
    • sapi_windows_cp_is_utf8 - Indica se o código de página é compatível com UTF-8
    • sapi_windows_cp_set - Define o código de página do processo
    • sapi_windows_generate_ctrl_event - Envia um evento CTRL a outro processo
    • sapi_windows_set_ctrl_handler - Define ou remove um manipulador de evento CTRL
    • sapi_windows_vt100_support - Obtém ou define suporte VT100 para o fluxo especificado associado a um buffer de saída de um console Windows.
    • scandir - Lista arquivos e diretórios dentro do caminho especificado
    • Schema::createCollection - Add collection to schema
    • Schema::dropCollection - Drop collection from schema
    • Schema::existsInDatabase - Check if exists in database
    • Schema::getCollection - Get collection from schema
    • Schema::getCollectionAsTable - Get collection as a Table object
    • Schema::getCollections - Get all schema collections
    • Schema::getName - Get schema name
    • Schema::getSession - Get schema session
    • Schema::getTable - Get schema table
    • Schema::getTables - Get schema tables
    • Schema::__construct - Schema constructor
    • SchemaObject::getSchema - Get schema object
    • scoutapm_get_calls - Returns a list of instrumented calls that have occurred
    • scoutapm_list_instrumented_functions - List functions scoutapm will instrument.
    • SeasLog::alert - Record alert log information
    • SeasLog::analyzerCount - Get log count by level, log_path and key_word
    • SeasLog::analyzerDetail - Get log detail by level, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream - Manually release stream flow from logger
    • SeasLog::critical - Record critical log information
    • SeasLog::debug - Record debug log information
    • SeasLog::emergency - Record emergency log information
    • SeasLog::error - Record error log information
    • SeasLog::flushBuffer - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
    • SeasLog::getBasePath - Get SeasLog base path.
    • SeasLog::getBuffer - Get the logs buffer in memory as array
    • SeasLog::getBufferEnabled - Determin if buffer enabled
    • SeasLog::getDatetimeFormat - Get SeasLog datetime format style
    • SeasLog::getLastLogger - Get SeasLog last logger path
    • SeasLog::getRequestID - Get SeasLog request_id differentiated requests
    • SeasLog::getRequestVariable - Get SeasLog request variable
    • SeasLog::info - Record info log information
    • SeasLog::log - The Common Record Log Function
    • SeasLog::notice - Record notice log information
    • SeasLog::setBasePath - Set SeasLog base path
    • SeasLog::setDatetimeFormat - Set SeasLog datetime format style
    • SeasLog::setLogger - Set SeasLog logger name
    • SeasLog::setRequestID - Set SeasLog request_id differentiated requests
    • SeasLog::setRequestVariable - Manually set SeasLog request variable
    • SeasLog::warning - Record warning log information
    • SeasLog::__construct - Description
    • SeasLog::__destruct - Description
    • seaslog_get_author - Get SeasLog author.
    • seaslog_get_version - Get SeasLog version.
    • SeekableIterator::seek - Move para uma posição
    • sem_acquire - Acquire a semaphore
    • sem_get - Get a semaphore id
    • sem_release - Release a semaphore
    • sem_remove - Remove a semaphore
    • SensitiveParameter::__construct - Constrói uma nova instância do atributo SensitiveParameter
    • SensitiveParameterValue::getValue - Retorna o valor sensível
    • SensitiveParameterValue::__construct - Constrói um novo objeto SensitiveParameterValue
    • SensitiveParameterValue::__debugInfo - Protege os valores sensíveis de exposição acidental
    • Serializable::serialize - Representação em string de um objeto
    • Serializable::unserialize - Constrói o objeto
    • serialize - Gera uma representação armazenável de um valor
    • Session::close - Close session
    • Session::createSchema - Create new schema
    • Session::dropSchema - Drop a schema
    • Session::generateUUID - Get new UUID
    • Session::getDefaultSchema - Get default schema name
    • Session::getSchema - Get a new schema object
    • Session::getSchemas - Get the schemas
    • Session::getServerVersion - Get server version
    • Session::listClients - Get client list
    • Session::quoteName - Add quotes
    • Session::releaseSavepoint - Release set savepoint
    • Session::rollback - Rollback transaction
    • Session::rollbackTo - Rollback transaction to savepoint
    • Session::setSavepoint - Create savepoint
    • Session::sql - Create SQL query
    • Session::startTransaction - Start transaction
    • Session::__construct - Description constructor
    • SessionHandler::close - Fecha a sessão
    • SessionHandler::create_sid - Retorna um novo ID de sessão
    • SessionHandler::destroy - Destrói uma sessão
    • SessionHandler::gc - Apaga sessões antigas
    • SessionHandler::open - Inicia uma sessão
    • SessionHandler::read - Lê os dados de sessão
    • SessionHandler::write - Escreve os dados de sessão
    • SessionHandlerInterface::close - Fecha a sessão
    • SessionHandlerInterface::destroy - Destrói uma sessão
    • SessionHandlerInterface::gc - Remove sessões antigas
    • SessionHandlerInterface::open - Inicializa uma sessão
    • SessionHandlerInterface::read - Lê os dados de sessão
    • SessionHandlerInterface::write - Escreve os dados de sessão
    • SessionIdInterface::create_sid - Cria um ID de sessão.
    • SessionUpdateTimestampHandlerInterface::updateTimestamp - Atualiza o timestamp
    • SessionUpdateTimestampHandlerInterface::validateId - Valida o ID
    • session_abort - Descarta as alterações no array da sessão e encerra a sessão
    • session_cache_expire - Obter e/ou definir a expiração do cache atual
    • session_cache_limiter - Obtém e/ou define o limitador do cache atual
    • session_commit - Sinônimo de session_write_close
    • session_create_id - Cria novo ID de sessão
    • session_decode - Decodifica dados de sessão de uma sessão codificada em formato string
    • session_destroy - Destrói todos os dados registrados em uma sessão
    • session_encode - Codifica os dados atuais da sessão como uma sessão codificada em formato string
    • session_gc - Executa a coleta de lixo de dados da sessão
    • session_get_cookie_params - Obtém os parâmetros do cookie da sessão
    • session_id - Obtém e/ou define o id de sessão atual
    • session_module_name - Obtém e/ou define o módulo da sessão atual
    • session_name - Obtém e/ou define o nome da sessão atual
    • session_regenerate_id - Atualiza o id da sessão atual com um novo id gerado
    • session_register_shutdown - Função de finalização da sessão
    • session_reset - Reinicializa um array de sessão com os valores originais
    • session_save_path - Obtém e/ou define o caminho para armazenamento da sessão atual
    • session_set_cookie_params - Define os parâmetros do cookie de sessão
    • session_set_save_handler - Define funções de armazenamento de sessão à nível de usuário
    • session_start - Inicia uma nova sessão ou continua uma sessão existente
    • session_status - Retorna o status atual da sessão
    • session_unset - Libera todas as variáveis de sessão
    • session_write_close - Guarda os dados de sessão e fecha a sessão
    • setcookie - Envia um cookie
    • setlocale - Set locale information
    • setrawcookie - Send a cookie without urlencoding the cookie value
    • settype - Define o tipo de uma variável
    • set_error_handler - Define uma função de usuário para manipulação de erro
    • set_exception_handler - Define uma função de manipulação de exceção definida pelo usuário
    • set_file_buffer - Sinônimo de stream_set_write_buffer
    • set_include_path - Sets the include_path configuration option
    • set_time_limit - Limits the maximum execution time
    • sha1 - Calculate the sha1 hash of a string
    • sha1_file - Calcula a hash sha1 de um arquivo
    • shell_exec - Executa um comando via shell e retorna a saída inteira como uma string
    • shmop_close - Fecha um bloco de memória compartilhada
    • shmop_delete - Deleta um bloco de memória compartilhada
    • shmop_open - Create or open shared memory block
    • shmop_read - Read data from shared memory block
    • shmop_size - Obtém o tamanho do bloco de memória compartilhada
    • shmop_write - Write data into shared memory block
    • shm_attach - Creates or open a shared memory segment
    • shm_detach - Disconnects from shared memory segment
    • shm_get_var - Returns a variable from shared memory
    • shm_has_var - Check whether a specific entry exists
    • shm_put_var - Inserts or updates a variable in shared memory
    • shm_remove - Removes shared memory from Unix systems
    • shm_remove_var - Removes a variable from shared memory
    • show_source - Sinônimo de highlight_file
    • shuffle - Embaralha um array
    • simdjson_decode - Decodes a JSON string
    • simdjson_is_valid - Check if a JSON string is valid
    • simdjson_key_count - Returns the value at a JSON pointer.
    • simdjson_key_exists - Check if the JSON contains the value referred to by a JSON pointer.
    • simdjson_key_value - Decodes the value of a JSON string located at the requested JSON pointer.
    • similar_text - Calcula a similaridade entre duas strings
    • SimpleXMLElement::addAttribute - Adiciona um atributo a elemento SimpleXML
    • SimpleXMLElement::addChild - Adiciona um elemento filho à um nó XML
    • SimpleXMLElement::asXML - Retorna uma string XML bem formada (well-formed) baseada em um elemento SimpleXML
    • SimpleXMLElement::attributes - Identifica um atributo de um elemento
    • SimpleXMLElement::children - Encontra os nós filhos de um dado nó
    • SimpleXMLElement::count - Conta os filhos de um elemento
    • SimpleXMLElement::current - Returns the current element
    • SimpleXMLElement::getChildren - Returns the sub-elements of the current element
    • SimpleXMLElement::getDocNamespaces - Retorna um namespace declarado no documento
    • SimpleXMLElement::getName - Pega o nome de um elemento XML
    • SimpleXMLElement::getNamespaces - Retorna os namespaces utilizados no documento
    • SimpleXMLElement::hasChildren - Checks whether the current element has sub elements
    • SimpleXMLElement::key - Return current key
    • SimpleXMLElement::next - Move to next element
    • SimpleXMLElement::registerXPathNamespace - Cria um prefixo/namespace de contexto para a próxima consulta XPath
    • SimpleXMLElement::rewind - Rewind to the first element
    • SimpleXMLElement::saveXML - Sinônimo de SimpleXMLElement::asXML
    • SimpleXMLElement::valid - Check whether the current element is valid
    • SimpleXMLElement::xpath - Executa uma consulta XPath em dados XML
    • SimpleXMLElement::__construct - Cria um novo objeto SimpleXMLElement
    • SimpleXMLElement::__toString - Retorna o conteúdo como uma string
    • simplexml_import_dom - Recebe um objeto SimpleXMLElement de um nó DOM
    • simplexml_load_file - Interpreta um arquivo XML e o transforma em um objeto
    • simplexml_load_string - Interpreta uma string XML e a transforma em um objeto
    • sin - Seno
    • sinh - Seno hiperbólico
    • sizeof - Sinônimo de count
    • sleep - Atrasa a execução
    • snmp2_get - Fetch an SNMP object
    • snmp2_getnext - Fetch the SNMP object which follows the given object id
    • snmp2_real_walk - Return all objects including their respective object ID within the specified one
    • snmp2_set - Set the value of an SNMP object
    • snmp2_walk - Fetch all the SNMP objects from an agent
    • snmp3_get - Fetch an SNMP object
    • snmp3_getnext - Fetch the SNMP object which follows the given object id
    • snmp3_real_walk - Return all objects including their respective object ID within the specified one
    • snmp3_set - Set the value of an SNMP object
    • snmp3_walk - Fetch all the SNMP objects from an agent
    • SNMP::close - Close SNMP session
    • SNMP::get - Fetch an SNMP object
    • SNMP::getErrno - Get last error code
    • SNMP::getError - Get last error message
    • SNMP::getnext - Fetch an SNMP object which follows the given object id
    • SNMP::set - Set the value of an SNMP object
    • SNMP::setSecurity - Configures security-related SNMPv3 session parameters
    • SNMP::walk - Fetch SNMP object subtree
    • SNMP::__construct - Creates SNMP instance representing session to remote SNMP agent
    • snmpget - Fetch an SNMP object
    • snmpgetnext - Fetch the SNMP object which follows the given object id
    • snmprealwalk - Return all objects including their respective object ID within the specified one
    • snmpset - Set the value of an SNMP object
    • snmpwalk - Fetch all the SNMP objects from an agent
    • snmpwalkoid - Query for a tree of information about a network entity
    • snmp_get_quick_print - Fetches the current value of the NET-SNMP library's quick_print setting
    • snmp_get_valueretrieval - Return the method how the SNMP values will be returned
    • snmp_read_mib - Reads and parses a MIB file into the active MIB tree
    • snmp_set_enum_print - Return all values that are enums with their enum value instead of the raw integer
    • snmp_set_oid_numeric_print - Sinônimo de snmp_set_oid_output_format
    • snmp_set_oid_output_format - Set the OID output format
    • snmp_set_quick_print - Set the value of enable within the NET-SNMP library
    • snmp_set_valueretrieval - Specify the method how the SNMP values will be returned
    • SoapClient::__call - Chama uma função SOAP (descontinuada)
    • SoapClient::__construct - SoapClient constructor
    • SoapClient::__doRequest - Performs a SOAP request
    • SoapClient::__getCookies - Get list of cookies
    • SoapClient::__getFunctions - Returns list of available SOAP functions
    • SoapClient::__getLastRequest - Returns last SOAP request
    • SoapClient::__getLastRequestHeaders - Returns the SOAP headers from the last request
    • SoapClient::__getLastResponse - Returns last SOAP response
    • SoapClient::__getLastResponseHeaders - Returns the SOAP headers from the last response
    • SoapClient::__getTypes - Returns a list of SOAP types
    • SoapClient::__setCookie - Defines a cookie for SOAP requests
    • SoapClient::__setLocation - Sets the location of the Web service to use
    • SoapClient::__setSoapHeaders - Sets SOAP headers for subsequent calls
    • SoapClient::__soapCall - Calls a SOAP function
    • SoapFault::__construct - SoapFault constructor
    • SoapFault::__toString - Obtain a string representation of a SoapFault
    • SoapHeader::__construct - SoapHeader constructor
    • SoapParam::__construct - SoapParam constructor
    • SoapServer::addFunction - Adds one or more functions to handle SOAP requests
    • SoapServer::addSoapHeader - Add a SOAP header to the response
    • SoapServer::fault - Issue SoapServer fault indicating an error
    • SoapServer::getFunctions - Returns list of defined functions
    • SoapServer::handle - Handles a SOAP request
    • SoapServer::setClass - Sets the class which handles SOAP requests
    • SoapServer::setObject - Sets the object which will be used to handle SOAP requests
    • SoapServer::setPersistence - Sets SoapServer persistence mode
    • SoapServer::__construct - SoapServer constructor
    • SoapVar::__construct - SoapVar constructor
    • socket_accept - Aceita uma conexão em um socket
    • socket_addrinfo_bind - Create and bind to a socket from a given addrinfo
    • socket_addrinfo_connect - Create and connect to a socket from a given addrinfo
    • socket_addrinfo_explain - Get information about addrinfo
    • socket_addrinfo_lookup - Get array with contents of getaddrinfo about the given hostname
    • socket_atmark - Determina se o socket está na marca fora-de-banda
    • socket_bind - Binds a name to a socket
    • socket_clear_error - Limpa o erro no socket ou o último código de erro
    • socket_close - Closes a Socket instance
    • socket_cmsg_space - Calculate message buffer size
    • socket_connect - Initiates a connection on a socket
    • socket_create - Create a socket (endpoint for communication)
    • socket_create_listen - Opens a socket on port to accept connections
    • socket_create_pair - Creates a pair of indistinguishable sockets and stores them in an array
    • socket_export_stream - Export a socket into a stream that encapsulates a socket
    • socket_getopt - Sinônimo de socket_get_option
    • 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_get_option - Gets socket options for the socket
    • socket_get_status - Sinônimo de stream_get_meta_data
    • socket_import_stream - Import a stream
    • 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_recv - Recebe dados de um socket conectado
    • socket_recvfrom - Receives data from a socket whether or not it is connection-oriented
    • socket_recvmsg - Read a message
    • 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 - Send a message
    • socket_sendto - Sends a message to a socket, whether it is connected or not
    • socket_setopt - Sinônimo de socket_set_option
    • socket_set_block - Sets blocking mode on a socket
    • socket_set_blocking - Sinônimo de stream_set_blocking
    • socket_set_nonblock - Sets nonblocking mode for file descriptor fd
    • socket_set_option - Sets socket options for the socket
    • socket_set_timeout - Sinônimo de stream_set_timeout
    • 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_wsaprotocol_info_export - Exports the WSAPROTOCOL_INFO Structure
    • socket_wsaprotocol_info_import - Imports a Socket from another Process
    • socket_wsaprotocol_info_release - Releases an exported WSAPROTOCOL_INFO Structure
    • sodium_add - Soma números grandes
    • sodium_base642bin - Decodifica uma string codificada em base64 para binário bruto.
    • sodium_bin2base64 - Codifica uma string binária bruta com base64.
    • sodium_bin2hex - Codifica para hexadecimal
    • sodium_compare - Compara números grandes
    • sodium_crypto_aead_aes256gcm_decrypt - Verify then decrypt a message with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_encrypt - Encrypt then authenticate with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_is_available - Check if hardware supports AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen - Generate a random AES-256-GCM key
    • sodium_crypto_aead_chacha20poly1305_decrypt - Verify then decrypt with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_encrypt - Encrypt then authenticate with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt - Verify that the ciphertext includes a valid tag
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt - Encrypt a message
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen - Generate a random ChaCha20-Poly1305 (IETF) key.
    • sodium_crypto_aead_chacha20poly1305_keygen - Generate a random ChaCha20-Poly1305 key.
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt - (Preferred) Verify then decrypt with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt - (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen - Generate a random XChaCha20-Poly1305 key.
    • sodium_crypto_auth - Compute a tag for the message
    • sodium_crypto_auth_keygen - Generate a random key for sodium_crypto_auth
    • sodium_crypto_auth_verify - Verifies that the tag is valid for the message
    • sodium_crypto_box - Authenticated public-key encryption
    • sodium_crypto_box_keypair - Randomly generate a secret key and a corresponding public key
    • sodium_crypto_box_keypair_from_secretkey_and_publickey - Create a unified keypair string from a secret key and public key
    • sodium_crypto_box_open - Authenticated public-key decryption
    • sodium_crypto_box_publickey - Extract the public key from a crypto_box keypair
    • sodium_crypto_box_publickey_from_secretkey - Calculate the public key from a secret key
    • sodium_crypto_box_seal - Anonymous public-key encryption
    • sodium_crypto_box_seal_open - Anonymous public-key decryption
    • sodium_crypto_box_secretkey - Extracts the secret key from a crypto_box keypair
    • sodium_crypto_box_seed_keypair - Deterministically derive the key pair from a single key
    • sodium_crypto_core_ristretto255_add - Adds an element
    • sodium_crypto_core_ristretto255_from_hash - Maps a vector
    • sodium_crypto_core_ristretto255_is_valid_point - Determines if a point on the ristretto255 curve
    • sodium_crypto_core_ristretto255_random - Generates a random key
    • sodium_crypto_core_ristretto255_scalar_add - Adds a scalar value
    • sodium_crypto_core_ristretto255_scalar_complement - The sodium_crypto_core_ristretto255_scalar_complement purpose
    • sodium_crypto_core_ristretto255_scalar_invert - Inverts a scalar value
    • sodium_crypto_core_ristretto255_scalar_mul - Multiplies a scalar value
    • sodium_crypto_core_ristretto255_scalar_negate - Negates a scalar value
    • sodium_crypto_core_ristretto255_scalar_random - Generates a random key
    • sodium_crypto_core_ristretto255_scalar_reduce - Reduces a scalar value
    • sodium_crypto_core_ristretto255_scalar_sub - Subtracts a scalar value
    • sodium_crypto_core_ristretto255_sub - Subtracts an element
    • sodium_crypto_generichash - Get a hash of the message
    • sodium_crypto_generichash_final - Complete the hash
    • sodium_crypto_generichash_init - Initialize a hash for streaming
    • sodium_crypto_generichash_keygen - Generate a random generichash key
    • sodium_crypto_generichash_update - Add message to a hash
    • sodium_crypto_kdf_derive_from_key - Derive a subkey
    • sodium_crypto_kdf_keygen - Generate a random root key for the KDF interface
    • sodium_crypto_kx_client_session_keys - Calculate the client-side session keys.
    • sodium_crypto_kx_keypair - Creates a new sodium keypair
    • sodium_crypto_kx_publickey - Extract the public key from a crypto_kx keypair
    • sodium_crypto_kx_secretkey - Extract the secret key from a crypto_kx keypair.
    • sodium_crypto_kx_seed_keypair - Description
    • sodium_crypto_kx_server_session_keys - Calculate the server-side session keys.
    • sodium_crypto_pwhash - Derive a key from a password, using Argon2
    • sodium_crypto_pwhash_scryptsalsa208sha256 - Derives a key from a password, using scrypt
    • sodium_crypto_pwhash_scryptsalsa208sha256_str - Get an ASCII encoded hash
    • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify - Verify that the password is a valid password verification string
    • sodium_crypto_pwhash_str - Get an ASCII-encoded hash
    • sodium_crypto_pwhash_str_needs_rehash - Determine whether or not to rehash a password
    • sodium_crypto_pwhash_str_verify - Verifies that a password matches a hash
    • sodium_crypto_scalarmult - Compute a shared secret given a user's secret key and another user's public key
    • sodium_crypto_scalarmult_base - Sinônimo de sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_scalarmult_ristretto255 - Computes a shared secret
    • sodium_crypto_scalarmult_ristretto255_base - Calculates the public key from a secret key
    • sodium_crypto_secretbox - Authenticated shared-key encryption
    • sodium_crypto_secretbox_keygen - Generate random key for sodium_crypto_secretbox
    • sodium_crypto_secretbox_open - Authenticated shared-key decryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull - Initialize a secretstream context for decryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_push - Initialize a secretstream context for encryption
    • sodium_crypto_secretstream_xchacha20poly1305_keygen - Generate a random secretstream key.
    • sodium_crypto_secretstream_xchacha20poly1305_pull - Decrypt a chunk of data from an encrypted stream
    • sodium_crypto_secretstream_xchacha20poly1305_push - Encrypt a chunk of data so that it can safely be decrypted in a streaming API
    • sodium_crypto_secretstream_xchacha20poly1305_rekey - Explicitly rotate the key in the secretstream state
    • sodium_crypto_shorthash - Compute a short hash of a message and key
    • sodium_crypto_shorthash_keygen - Get random bytes for key
    • sodium_crypto_sign - Sign a message
    • sodium_crypto_sign_detached - Sign the message
    • sodium_crypto_sign_ed25519_pk_to_curve25519 - Convert an Ed25519 public key to a Curve25519 public key
    • sodium_crypto_sign_ed25519_sk_to_curve25519 - Convert an Ed25519 secret key to a Curve25519 secret key
    • sodium_crypto_sign_keypair - Randomly generate a secret key and a corresponding public key
    • sodium_crypto_sign_keypair_from_secretkey_and_publickey - Join a secret key and public key together
    • sodium_crypto_sign_open - Check that the signed message has a valid signature
    • sodium_crypto_sign_publickey - Extract the Ed25519 public key from a keypair
    • sodium_crypto_sign_publickey_from_secretkey - Extract the Ed25519 public key from the secret key
    • sodium_crypto_sign_secretkey - Extract the Ed25519 secret key from a keypair
    • sodium_crypto_sign_seed_keypair - Deterministically derive the key pair from a single key
    • sodium_crypto_sign_verify_detached - Verify signature for the message
    • sodium_crypto_stream - Generate a deterministic sequence of bytes from a seed
    • sodium_crypto_stream_keygen - Generate a random sodium_crypto_stream key.
    • sodium_crypto_stream_xchacha20 - Expands the key and nonce into a keystream of pseudorandom bytes
    • sodium_crypto_stream_xchacha20_keygen - Returns a secure random key
    • sodium_crypto_stream_xchacha20_xor - Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xchacha20_xor_ic - Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xor - Encrypt a message without authentication
    • sodium_hex2bin - Decodifica uma string binária codificada em hexadecimal
    • sodium_increment - Incrementa um número grande
    • sodium_memcmp - Testa para igualdade em tempo constante
    • sodium_memzero - Sobrescreva uma string com caracteres NUL
    • sodium_pad - Adiciona dados de preenchimento
    • sodium_unpad - Remova dados de preenchimento
    • SolrClient::addDocument - Adds a document to the index
    • SolrClient::addDocuments - Adds a collection of SolrInputDocument instances to the index
    • SolrClient::commit - Finalizes all add/deletes made to the index
    • SolrClient::deleteById - Delete by Id
    • SolrClient::deleteByIds - Deletes by Ids
    • SolrClient::deleteByQueries - Removes all documents matching any of the queries
    • SolrClient::deleteByQuery - Deletes all documents matching the given query
    • SolrClient::getById - Get Document By Id. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getByIds - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getDebug - Returns the debug data for the last connection attempt
    • SolrClient::getOptions - Returns the client options set internally
    • SolrClient::optimize - Defragments the index
    • SolrClient::ping - Checks if Solr server is still up
    • SolrClient::query - Sends a query to the server
    • SolrClient::request - Sends a raw update request
    • SolrClient::rollback - Rollbacks all add/deletes made to the index since the last commit
    • SolrClient::setResponseWriter - Sets the response writer used to prepare the response from Solr
    • SolrClient::setServlet - Changes the specified servlet type to a new value
    • SolrClient::system - Retrieve Solr Server information
    • SolrClient::threads - Checks the threads status
    • SolrClient::__construct - Constructor for the SolrClient object
    • SolrClient::__destruct - Destructor for SolrClient
    • SolrClientException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrCollapseFunction::getField - Returns the field that is being collapsed on
    • SolrCollapseFunction::getHint - Returns collapse hint
    • SolrCollapseFunction::getMax - Returns max parameter
    • SolrCollapseFunction::getMin - Returns min parameter
    • SolrCollapseFunction::getNullPolicy - Returns null policy
    • SolrCollapseFunction::getSize - Returns size parameter
    • SolrCollapseFunction::setField - Sets the field to collapse on
    • SolrCollapseFunction::setHint - Sets collapse hint
    • SolrCollapseFunction::setMax - Selects the group heads by the max value of a numeric field or function query
    • SolrCollapseFunction::setMin - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy - Sets the NULL Policy
    • SolrCollapseFunction::setSize - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::__construct - Constructor
    • SolrCollapseFunction::__toString - Returns a string representing the constructed collapse function
    • SolrDisMaxQuery::addBigramPhraseField - Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery - Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField - Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField - Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField - Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField - Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::removeBigramPhraseField - Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery - Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField - Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField - Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField - Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField - Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop - Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction - Sets a Boost Function (bf parameter)
    • SolrDisMaxQuery::setBoostQuery - Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch - Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields - Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop - Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt - Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop - Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker - Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields - Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop - Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields - Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser - Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser - Switch QueryParser to be EDisMax
    • SolrDisMaxQuery::__construct - Class Constructor
    • SolrDocument::addField - Adds a field to the document
    • SolrDocument::clear - Drops all the fields in the document
    • SolrDocument::current - Retrieves the current field
    • SolrDocument::deleteField - Removes a field from the document
    • SolrDocument::fieldExists - Checks if a field exists in the document
    • SolrDocument::getChildDocuments - Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrDocument::getField - Retrieves a field by name
    • SolrDocument::getFieldCount - Returns the number of fields in this document
    • SolrDocument::getFieldNames - Returns an array of fields names in the document
    • SolrDocument::getInputDocument - Returns a SolrInputDocument equivalent of the object
    • SolrDocument::hasChildDocuments - Checks whether the document has any child documents
    • SolrDocument::key - Retrieves the current key
    • SolrDocument::merge - Merges source to the current SolrDocument
    • SolrDocument::next - Moves the internal pointer to the next field
    • SolrDocument::offsetExists - Checks if a particular field exists
    • SolrDocument::offsetGet - Retrieves a field
    • SolrDocument::offsetSet - Adds a field to the document
    • SolrDocument::offsetUnset - Removes a field
    • SolrDocument::reset - Sinônimo de SolrDocument::clear
    • SolrDocument::rewind - Resets the internal pointer to the beginning
    • SolrDocument::serialize - Used for custom serialization
    • SolrDocument::sort - Sorts the fields in the document
    • SolrDocument::toArray - Returns an array representation of the document
    • SolrDocument::unserialize - Custom serialization of SolrDocument objects
    • SolrDocument::valid - Checks if the current position internally is still valid
    • SolrDocument::__clone - Creates a copy of a SolrDocument object
    • SolrDocument::__construct - Constructor
    • SolrDocument::__destruct - Destructor
    • SolrDocument::__get - Access the field as a property
    • SolrDocument::__isset - Checks if a field exists
    • SolrDocument::__set - Adds another field to the document
    • SolrDocument::__unset - Removes a field from the document
    • SolrDocumentField::__construct - Constructor
    • SolrDocumentField::__destruct - Destructor
    • SolrException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrGenericResponse::__construct - Constructor
    • SolrGenericResponse::__destruct - Destructor
    • SolrIllegalArgumentException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrIllegalOperationException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrInputDocument::addChildDocument - Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments - Adds an array of child documents
    • SolrInputDocument::addField - Adds a field to the document
    • SolrInputDocument::clear - Resets the input document
    • SolrInputDocument::deleteField - Removes a field from the document
    • SolrInputDocument::fieldExists - Checks if a field exists
    • SolrInputDocument::getBoost - Retrieves the current boost value for the document
    • SolrInputDocument::getChildDocuments - Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrInputDocument::getField - Retrieves a field by name
    • SolrInputDocument::getFieldBoost - Retrieves the boost value for a particular field
    • SolrInputDocument::getFieldCount - Returns the number of fields in the document
    • SolrInputDocument::getFieldNames - Returns an array containing all the fields in the document
    • SolrInputDocument::hasChildDocuments - Returns true if the document has any child documents
    • SolrInputDocument::merge - Merges one input document into another
    • SolrInputDocument::reset - Sinônimo de SolrInputDocument::clear
    • SolrInputDocument::setBoost - Sets the boost value for this document
    • SolrInputDocument::setFieldBoost - Sets the index-time boost value for a field
    • SolrInputDocument::sort - Sorts the fields within the document
    • SolrInputDocument::toArray - Returns an array representation of the input document
    • SolrInputDocument::__clone - Creates a copy of a SolrDocument
    • SolrInputDocument::__construct - Constructor
    • SolrInputDocument::__destruct - Destructor
    • SolrModifiableParams::__construct - Constructor
    • SolrModifiableParams::__destruct - Destructor
    • SolrObject::getPropertyNames - Returns an array of all the names of the properties
    • SolrObject::offsetExists - Checks if the property exists
    • SolrObject::offsetGet - Used to retrieve a property
    • SolrObject::offsetSet - Sets the value for a property
    • SolrObject::offsetUnset - Unsets the value for the property
    • SolrObject::__construct - Creates Solr object
    • SolrObject::__destruct - Destructor
    • SolrParams::add - Sinônimo de SolrParams::addParam
    • SolrParams::addParam - Adds a parameter to the object
    • SolrParams::get - Sinônimo de SolrParams::getParam
    • SolrParams::getParam - Returns a parameter value
    • SolrParams::getParams - Returns an array of non URL-encoded parameters
    • SolrParams::getPreparedParams - Returns an array of URL-encoded parameters
    • SolrParams::serialize - Used for custom serialization
    • SolrParams::set - Sinônimo de SolrParams::setParam
    • SolrParams::setParam - Sets the parameter to the specified value
    • SolrParams::toString - Returns all the name-value pair parameters in the object
    • SolrParams::unserialize - Used for custom serialization
    • SolrPingResponse::getResponse - Returns the response from the server
    • SolrPingResponse::__construct - Constructor
    • SolrPingResponse::__destruct - Destructor
    • SolrQuery::addExpandFilterQuery - Overrides main filter query, determines which documents to include in the main group
    • SolrQuery::addExpandSortField - Orders the documents within the expanded groups (expand.sort parameter)
    • SolrQuery::addFacetDateField - Maps to facet.date
    • SolrQuery::addFacetDateOther - Adds another facet.date.other parameter
    • SolrQuery::addFacetField - Adds another field to the facet
    • SolrQuery::addFacetQuery - Adds a facet query
    • SolrQuery::addField - Specifies which fields to return in the result
    • SolrQuery::addFilterQuery - Specifies a filter query
    • SolrQuery::addGroupField - Add a field to be used to group results
    • SolrQuery::addGroupFunction - Allows grouping results based on the unique values of a function query (group.func parameter)
    • SolrQuery::addGroupQuery - Allows grouping of documents that match the given query
    • SolrQuery::addGroupSortField - Add a group sort field (group.sort parameter)
    • SolrQuery::addHighlightField - Maps to hl.fl
    • SolrQuery::addMltField - Sets a field to use for similarity
    • SolrQuery::addMltQueryField - Maps to mlt.qf
    • SolrQuery::addSortField - Used to control how the results should be sorted
    • SolrQuery::addStatsFacet - Requests a return of sub results for values within the given facet
    • SolrQuery::addStatsField - Maps to stats.field parameter
    • SolrQuery::collapse - Collapses the result set to a single document per group
    • SolrQuery::getExpand - Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries - Returns the expand filter queries
    • SolrQuery::getExpandQuery - Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows - Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields - Returns an array of fields
    • SolrQuery::getFacet - Returns the value of the facet parameter
    • SolrQuery::getFacetDateEnd - Returns the value for the facet.date.end parameter
    • SolrQuery::getFacetDateFields - Returns all the facet.date fields
    • SolrQuery::getFacetDateGap - Returns the value of the facet.date.gap parameter
    • SolrQuery::getFacetDateHardEnd - Returns the value of the facet.date.hardend parameter
    • SolrQuery::getFacetDateOther - Returns the value for the facet.date.other parameter
    • SolrQuery::getFacetDateStart - Returns the lower bound for the first date range for all date faceting on this field
    • SolrQuery::getFacetFields - Returns all the facet fields
    • SolrQuery::getFacetLimit - Returns the maximum number of constraint counts that should be returned for the facet fields
    • SolrQuery::getFacetMethod - Returns the value of the facet.method parameter
    • SolrQuery::getFacetMinCount - Returns the minimum counts for facet fields should be included in the response
    • SolrQuery::getFacetMissing - Returns the current state of the facet.missing parameter
    • SolrQuery::getFacetOffset - Returns an offset into the list of constraints to be used for pagination
    • SolrQuery::getFacetPrefix - Returns the facet prefix
    • SolrQuery::getFacetQueries - Returns all the facet queries
    • SolrQuery::getFacetSort - Returns the facet sort type
    • SolrQuery::getFields - Returns the list of fields that will be returned in the response
    • SolrQuery::getFilterQueries - Returns an array of filter queries
    • SolrQuery::getGroup - Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent - Returns group cache percent value
    • SolrQuery::getGroupFacet - Returns the group.facet parameter value
    • SolrQuery::getGroupFields - Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat - Returns the group.format value
    • SolrQuery::getGroupFunctions - Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit - Returns the group.limit value
    • SolrQuery::getGroupMain - Returns the group.main value
    • SolrQuery::getGroupNGroups - Returns the group.ngroups value
    • SolrQuery::getGroupOffset - Returns the group.offset value
    • SolrQuery::getGroupQueries - Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields - Returns the group.sort value
    • SolrQuery::getGroupTruncate - Returns the group.truncate value
    • SolrQuery::getHighlight - Returns the state of the hl parameter
    • SolrQuery::getHighlightAlternateField - Returns the highlight field to use as backup or default
    • SolrQuery::getHighlightFields - Returns all the fields that Solr should generate highlighted snippets for
    • SolrQuery::getHighlightFormatter - Returns the formatter for the highlighted output
    • SolrQuery::getHighlightFragmenter - Returns the text snippet generator for highlighted text
    • SolrQuery::getHighlightFragsize - Returns the number of characters of fragments to consider for highlighting
    • SolrQuery::getHighlightHighlightMultiTerm - Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
    • SolrQuery::getHighlightMaxAlternateFieldLength - Returns the maximum number of characters of the field to return
    • SolrQuery::getHighlightMaxAnalyzedChars - Returns the maximum number of characters into a document to look for suitable snippets
    • SolrQuery::getHighlightMergeContiguous - Returns whether or not the collapse contiguous fragments into a single fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars - Returns the maximum number of characters from a field when using the regex fragmenter
    • SolrQuery::getHighlightRegexPattern - Returns the regular expression for fragmenting
    • SolrQuery::getHighlightRegexSlop - Returns the deviation factor from the ideal fragment size
    • SolrQuery::getHighlightRequireFieldMatch - Returns if a field will only be highlighted if the query matched in this particular field
    • SolrQuery::getHighlightSimplePost - Returns the text which appears after a highlighted term
    • SolrQuery::getHighlightSimplePre - Returns the text which appears before a highlighted term
    • SolrQuery::getHighlightSnippets - Returns the maximum number of highlighted snippets to generate per field
    • SolrQuery::getHighlightUsePhraseHighlighter - Returns the state of the hl.usePhraseHighlighter parameter
    • SolrQuery::getMlt - Returns whether or not MoreLikeThis results should be enabled
    • SolrQuery::getMltBoost - Returns whether or not the query will be boosted by the interesting term relevance
    • SolrQuery::getMltCount - Returns the number of similar documents to return for each result
    • SolrQuery::getMltFields - Returns all the fields to use for similarity
    • SolrQuery::getMltMaxNumQueryTerms - Returns the maximum number of query terms that will be included in any generated query
    • SolrQuery::getMltMaxNumTokens - Retorna o número máximo de tokens para analisar em cada campo do documento que não está armazenado com suporte a TermVector
    • SolrQuery::getMltMaxWordLength - Returns the maximum word length above which words will be ignored
    • SolrQuery::getMltMinDocFrequency - Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
    • SolrQuery::getMltMinTermFrequency - Returns the frequency below which terms will be ignored in the source document
    • SolrQuery::getMltMinWordLength - Returns the minimum word length below which words will be ignored
    • SolrQuery::getMltQueryFields - Returns the query fields and their boosts
    • SolrQuery::getQuery - Returns the main query
    • SolrQuery::getRows - Returns the maximum number of documents
    • SolrQuery::getSortFields - Returns all the sort fields
    • SolrQuery::getStart - Returns the offset in the complete result set
    • SolrQuery::getStats - Returns whether or not stats is enabled
    • SolrQuery::getStatsFacets - Returns all the stats facets that were set
    • SolrQuery::getStatsFields - Returns all the statistics fields
    • SolrQuery::getTerms - Returns whether or not the TermsComponent is enabled
    • SolrQuery::getTermsField - Returns the field from which the terms are retrieved
    • SolrQuery::getTermsIncludeLowerBound - Returns whether or not to include the lower bound in the result set
    • SolrQuery::getTermsIncludeUpperBound - Returns whether or not to include the upper bound term in the result set
    • SolrQuery::getTermsLimit - Returns the maximum number of terms Solr should return
    • SolrQuery::getTermsLowerBound - Returns the term to start at
    • SolrQuery::getTermsMaxCount - Returns the maximum document frequency
    • SolrQuery::getTermsMinCount - Returns the minimum document frequency to return in order to be included
    • SolrQuery::getTermsPrefix - Returns the term prefix
    • SolrQuery::getTermsReturnRaw - Whether or not to return raw characters
    • SolrQuery::getTermsSort - Returns an integer indicating how terms are sorted
    • SolrQuery::getTermsUpperBound - Returns the term to stop at
    • SolrQuery::getTimeAllowed - Returns the time in milliseconds allowed for the query to finish
    • SolrQuery::removeExpandFilterQuery - Removes an expand filter query
    • SolrQuery::removeExpandSortField - Removes an expand sort field from the expand.sort parameter
    • SolrQuery::removeFacetDateField - Removes one of the facet date fields
    • SolrQuery::removeFacetDateOther - Removes one of the facet.date.other parameters
    • SolrQuery::removeFacetField - Removes one of the facet.date parameters
    • SolrQuery::removeFacetQuery - Removes one of the facet.query parameters
    • SolrQuery::removeField - Removes a field from the list of fields
    • SolrQuery::removeFilterQuery - Removes a filter query
    • SolrQuery::removeHighlightField - Removes one of the fields used for highlighting
    • SolrQuery::removeMltField - Removes one of the moreLikeThis fields
    • SolrQuery::removeMltQueryField - Removes one of the moreLikeThis query fields
    • SolrQuery::removeSortField - Removes one of the sort fields
    • SolrQuery::removeStatsFacet - Removes one of the stats.facet parameters
    • SolrQuery::removeStatsField - Removes one of the stats.field parameters
    • SolrQuery::setEchoHandler - Toggles the echoHandler parameter
    • SolrQuery::setEchoParams - Determines what kind of parameters to include in the response
    • SolrQuery::setExpand - Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery - Sets the expand.q parameter
    • SolrQuery::setExpandRows - Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther - Sets the explainOther common query parameter
    • SolrQuery::setFacet - Maps to the facet parameter. Enables or disables facetting
    • SolrQuery::setFacetDateEnd - Maps to facet.date.end
    • SolrQuery::setFacetDateGap - Maps to facet.date.gap
    • SolrQuery::setFacetDateHardEnd - Maps to facet.date.hardend
    • SolrQuery::setFacetDateStart - Maps to facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency - Sets the minimum document frequency used for determining term count
    • SolrQuery::setFacetLimit - Maps to facet.limit
    • SolrQuery::setFacetMethod - Specifies the type of algorithm to use when faceting a field
    • SolrQuery::setFacetMinCount - Maps to facet.mincount
    • SolrQuery::setFacetMissing - Maps to facet.missing
    • SolrQuery::setFacetOffset - Sets the offset into the list of constraints to allow for pagination
    • SolrQuery::setFacetPrefix - Specifies a string prefix with which to limits the terms on which to facet
    • SolrQuery::setFacetSort - Determines the ordering of the facet field constraints
    • SolrQuery::setGroup - Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent - Enables caching for result grouping
    • SolrQuery::setGroupFacet - Sets group.facet parameter
    • SolrQuery::setGroupFormat - Sets the group format, result structure (group.format parameter)
    • SolrQuery::setGroupLimit - Specifies the number of results to return for each group. The server default value is 1
    • SolrQuery::setGroupMain - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
    • SolrQuery::setGroupNGroups - If true, Solr includes the number of groups that have matched the query in the results
    • SolrQuery::setGroupOffset - Sets the group.offset parameter
    • SolrQuery::setGroupTruncate - If true, facet counts are based on the most relevant document of each group matching the query
    • SolrQuery::setHighlight - Enables or disables highlighting
    • SolrQuery::setHighlightAlternateField - Specifies the backup field to use
    • SolrQuery::setHighlightFormatter - Specify a formatter for the highlight output
    • SolrQuery::setHighlightFragmenter - Sets a text snippet generator for highlighted text
    • SolrQuery::setHighlightFragsize - The size of fragments to consider for highlighting
    • SolrQuery::setHighlightHighlightMultiTerm - Use SpanScorer to highlight phrase terms
    • SolrQuery::setHighlightMaxAlternateFieldLength - Sets the maximum number of characters of the field to return
    • SolrQuery::setHighlightMaxAnalyzedChars - Specifies the number of characters into a document to look for suitable snippets
    • SolrQuery::setHighlightMergeContiguous - Whether or not to collapse contiguous fragments into a single fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars - Specify the maximum number of characters to analyze
    • SolrQuery::setHighlightRegexPattern - Specify the regular expression for fragmenting
    • SolrQuery::setHighlightRegexSlop - Sets the factor by which the regex fragmenter can stray from the ideal fragment size
    • SolrQuery::setHighlightRequireFieldMatch - Require field matching during highlighting
    • SolrQuery::setHighlightSimplePost - Sets the text which appears after a highlighted term
    • SolrQuery::setHighlightSimplePre - Sets the text which appears before a highlighted term
    • SolrQuery::setHighlightSnippets - Sets the maximum number of highlighted snippets to generate per field
    • SolrQuery::setHighlightUsePhraseHighlighter - Whether to highlight phrase terms only when they appear within the query phrase
    • SolrQuery::setMlt - Enables or disables moreLikeThis
    • SolrQuery::setMltBoost - Set if the query will be boosted by the interesting term relevance
    • SolrQuery::setMltCount - Set the number of similar documents to return for each result
    • SolrQuery::setMltMaxNumQueryTerms - Sets the maximum number of query terms included
    • SolrQuery::setMltMaxNumTokens - Specifies the maximum number of tokens to parse
    • SolrQuery::setMltMaxWordLength - Sets the maximum word length
    • SolrQuery::setMltMinDocFrequency - Sets the mltMinDoc frequency
    • SolrQuery::setMltMinTermFrequency - Sets the frequency below which terms will be ignored in the source docs
    • SolrQuery::setMltMinWordLength - Sets the minimum word length
    • SolrQuery::setOmitHeader - Exclude the header from the returned results
    • SolrQuery::setQuery - Sets the search query
    • SolrQuery::setRows - Specifies the maximum number of rows to return in the result
    • SolrQuery::setShowDebugInfo - Flag to show debug information
    • SolrQuery::setStart - Specifies the number of rows to skip
    • SolrQuery::setStats - Enables or disables the Stats component
    • SolrQuery::setTerms - Enables or disables the TermsComponent
    • SolrQuery::setTermsField - Sets the name of the field to get the Terms from
    • SolrQuery::setTermsIncludeLowerBound - Include the lower bound term in the result set
    • SolrQuery::setTermsIncludeUpperBound - Include the upper bound term in the result set
    • SolrQuery::setTermsLimit - Sets the maximum number of terms to return
    • SolrQuery::setTermsLowerBound - Specifies the Term to start from
    • SolrQuery::setTermsMaxCount - Sets the maximum document frequency
    • SolrQuery::setTermsMinCount - Sets the minimum document frequency
    • SolrQuery::setTermsPrefix - Restrict matches to terms that start with the prefix
    • SolrQuery::setTermsReturnRaw - Return the raw characters of the indexed term
    • SolrQuery::setTermsSort - Specifies how to sort the returned terms
    • SolrQuery::setTermsUpperBound - Sets the term to stop at
    • SolrQuery::setTimeAllowed - The time allowed for search to finish
    • SolrQuery::__construct - Constructor
    • SolrQuery::__destruct - Destructor
    • SolrQueryResponse::__construct - Constructor
    • SolrQueryResponse::__destruct - Destructor
    • SolrResponse::getDigestedResponse - Returns the XML response as serialized PHP data
    • SolrResponse::getHttpStatus - Returns the HTTP status of the response
    • SolrResponse::getHttpStatusMessage - Returns more details on the HTTP status
    • SolrResponse::getRawRequest - Returns the raw request sent to the Solr server
    • SolrResponse::getRawRequestHeaders - Returns the raw request headers sent to the Solr server
    • SolrResponse::getRawResponse - Returns the raw response from the server
    • SolrResponse::getRawResponseHeaders - Returns the raw response headers from the server
    • SolrResponse::getRequestUrl - Returns the full URL the request was sent to
    • SolrResponse::getResponse - Returns a SolrObject representing the XML response from the server
    • SolrResponse::setParseMode - Sets the parse mode
    • SolrResponse::success - Was the request a success
    • SolrServerException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrUpdateResponse::__construct - Constructor
    • SolrUpdateResponse::__destruct - Destructor
    • SolrUtils::digestXmlResponse - Parses an response XML string into a SolrObject
    • SolrUtils::escapeQueryChars - Escapes a lucene query string
    • SolrUtils::getSolrVersion - Returns the current version of the Solr extension
    • SolrUtils::queryPhrase - Prepares a phrase from an unescaped lucene string
    • solr_get_version - Retorna a versão atual da extensão Apache Solr
    • sort - Ordena um array em ordem ascendente
    • soundex - Calcula a chave soundex de uma string
    • SplDoublyLinkedList::add - Adiciona/insere um novo valor no índice especificado
    • SplDoublyLinkedList::bottom - Espreita o nó desde o início da lista duplamente encadeada
    • SplDoublyLinkedList::count - Conta o número de elementos na lista duplamente encadeada
    • SplDoublyLinkedList::current - Retorna a entrada de array atual
    • SplDoublyLinkedList::getIteratorMode - Retorna o modo de iteração
    • SplDoublyLinkedList::isEmpty - Verifica se a lista duplamente encadeada está vazia
    • SplDoublyLinkedList::key - Retorna o índice do nó atual
    • SplDoublyLinkedList::next - Move para a próxima entrada
    • SplDoublyLinkedList::offsetExists - Retorna se o $index solicitado existe
    • SplDoublyLinkedList::offsetGet - Retorna o valor no $index especificado
    • SplDoublyLinkedList::offsetSet - Define o valor no $index especificado como $value
    • SplDoublyLinkedList::offsetUnset - Remove o valor no $index especificado
    • SplDoublyLinkedList::pop - Remove um nó do final da lista duplamente encadeada
    • SplDoublyLinkedList::prev - Move para a entrada anterior
    • SplDoublyLinkedList::push - Adiciona um elemento no final da lista duplamente encadeada
    • SplDoublyLinkedList::rewind - Rebobina o iterador de volta ao início
    • SplDoublyLinkedList::serialize - Serializa o armazenamento
    • SplDoublyLinkedList::setIteratorMode - Define o modo de iteração
    • SplDoublyLinkedList::shift - Remove um nó do início da lista duplamente encadeada
    • SplDoublyLinkedList::top - Observa o nó do final da lista duplamente encadeada
    • SplDoublyLinkedList::unserialize - Deserializa o armazenamento
    • SplDoublyLinkedList::unshift - Acrescenta um elemento ao início da lista duplamente encadeada
    • SplDoublyLinkedList::valid - Verifica se a lista duplamente encadeada contém mais nós
    • SplFileInfo::getATime - Obtém o último horário de acesso do arquivo
    • SplFileInfo::getBasename - Obtém o nome base do arquivo
    • SplFileInfo::getCTime - Obtém o tempo de mudança do inode
    • SplFileInfo::getExtension - Obtém a extensão do arquivo
    • SplFileInfo::getFileInfo - Obtém um objeto SplFileInfo para o arquivo
    • SplFileInfo::getFilename - Obtém o nome do arquivo
    • SplFileInfo::getGroup - Obtém o grupo do arquivo
    • SplFileInfo::getInode - Obtém o inode para o arquivo
    • SplFileInfo::getLinkTarget - Obtém o alvo de um link
    • SplFileInfo::getMTime - Obtém o tempo da última modificação
    • SplFileInfo::getOwner - Obtém o proprietário do arquivo
    • SplFileInfo::getPath - Obtém o caminho sem o nome do arquivo
    • SplFileInfo::getPathInfo - Obtém um objeto SplFileInfo para o caminho
    • SplFileInfo::getPathname - Obtém o caminho para o arquivo
    • SplFileInfo::getPerms - Obtém as permissões do arquivo
    • SplFileInfo::getRealPath - Obtém o caminho absoluto para o arquivo
    • SplFileInfo::getSize - Obtém o tamanho do arquivo
    • SplFileInfo::getType - Obtém o tipo de arquivo
    • SplFileInfo::isDir - Indica se o arquivo é um diretório
    • SplFileInfo::isExecutable - Indica se o arquivo é executável
    • SplFileInfo::isFile - Indicates se o objeto faz referência a um arquivo regular
    • SplFileInfo::isLink - Indica se um arquivo é um link
    • SplFileInfo::isReadable - Indica se o arquivo é legível
    • SplFileInfo::isWritable - Indica se a entrada é gravável
    • SplFileInfo::openFile - Obtém um objeto SplFileObject para o arquivo
    • SplFileInfo::setFileClass - Define a classe usada com SplFileInfo::openFile
    • SplFileInfo::setInfoClass - Define a classe usada com SplFileInfo::getFileInfo e SplFileInfo::getPathInfo
    • SplFileInfo::__construct - Constrói um novo objeto SplFileInfo
    • SplFileInfo::__toString - Retorna o caminho para o arquivo como uma string
    • SplFileObject::current - Recupera linha atual do arquivo
    • SplFileObject::eof - Chegou ao final do arquivo
    • SplFileObject::fflush - Escreve o buffer de saída para o arquivo
    • SplFileObject::fgetc - Obtém caractere do arquivo
    • SplFileObject::fgetcsv - Obtém linha do arquivo e interpreta como campos CSV
    • SplFileObject::fgets - Obtém linha do arquivo
    • SplFileObject::fgetss - Obtém linha do arquivo e remove tags HTML
    • SplFileObject::flock - Bloqueio de arquivo portável
    • SplFileObject::fpassthru - Produz todos os dados restantes em um ponteiro de arquivo
    • SplFileObject::fputcsv - Escreve um array de campos como uma linha CSV
    • SplFileObject::fread - Lê do arquivo
    • SplFileObject::fscanf - Analisa a entrada do arquivo de acordo com um formato
    • SplFileObject::fseek - Posiciona-se para uma posição
    • SplFileObject::fstat - Obtém informações sobre o arquivo
    • SplFileObject::ftell - Retorna a posição atual do arquivo
    • SplFileObject::ftruncate - Trunca o arquivo para um determinado comprimento
    • SplFileObject::fwrite - Escreve no arquivo
    • SplFileObject::getChildren - Sem objetivo
    • SplFileObject::getCsvControl - Obtém o delimitador, o caractere de fechamento e o caractere de escape para CSV
    • SplFileObject::getCurrentLine - Sinônimo de SplFileObject::fgets
    • SplFileObject::getFlags - Obtém as opções para o SplFileObject
    • SplFileObject::getMaxLineLen - Obtém o comprimento máximo da linha
    • SplFileObject::hasChildren - SplFileObject não tem filhos
    • SplFileObject::key - Obtém o número da linha
    • SplFileObject::next - Lê próxima linha
    • SplFileObject::rewind - Rebobina o arquivo para a primeira linha
    • SplFileObject::seek - Busca uma linha especificada
    • SplFileObject::setCsvControl - Definir o delimitador, o encapsulador e o caractere de escape para CSV
    • SplFileObject::setFlags - Define as opções para o SplFileObject
    • SplFileObject::setMaxLineLen - Define o comprimento máximo da linha
    • SplFileObject::valid - Não está no final do arquivo (EOF)
    • SplFileObject::__construct - Constrói um novo objeto de arquivo
    • SplFileObject::__toString - Retorna a linha atual como uma string
    • SplFixedArray::count - Retorna o tamanho do array
    • SplFixedArray::current - Retorna a entrada atual do array
    • SplFixedArray::fromArray - Importa um array PHP em uma instância SplFixedArray
    • SplFixedArray::getIterator - Recupera o iterador para percorrer o array
    • SplFixedArray::getSize - Obtém o tamanho do array
    • SplFixedArray::jsonSerialize - Retorna uma representação que pode ser convertida em JSON
    • SplFixedArray::key - Retorna o índice atual do array
    • SplFixedArray::next - Move para a próxima entrada
    • SplFixedArray::offsetExists - Retorna se o índice solicitado existe
    • SplFixedArray::offsetGet - Retorna o valor no índice especificado
    • SplFixedArray::offsetSet - Define um novo valor em um índice especificado
    • SplFixedArray::offsetUnset - Remove o valor no $index especificado
    • SplFixedArray::rewind - Rebobina o iterador de volta ao início
    • SplFixedArray::setSize - Altera o tamanho de um array
    • SplFixedArray::toArray - Retorna um array PHP do array fixo
    • SplFixedArray::valid - Verifica se o array contém mais elementos
    • SplFixedArray::__construct - Constrói um novo array fixo
    • SplFixedArray::__serialize - Serializa o objeto SplFixedArray
    • SplFixedArray::__unserialize - Desserializa o parâmetro data em um objeto SplFixedArray
    • SplFixedArray::__wakeup - Reinicializa o array após ser desserializado
    • SplHeap::compare - Compara elementos para colocá-los corretamente no heap enquanto faz o ajuste ascendente
    • SplHeap::count - Conta o número de elementos no heap
    • SplHeap::current - Retorna o nó atual apontado pelo iterador
    • SplHeap::extract - Extrai um nó do topo do heap e ajusta para cima
    • SplHeap::insert - Insere um elemento no heap, ajustando-o para cima
    • SplHeap::isCorrupted - Indica se o heap está em um estado corrompido
    • SplHeap::isEmpty - Verifica se o heap está vazio
    • SplHeap::key - Retorna o índice do nó atual
    • SplHeap::next - Move para o próximo nó
    • SplHeap::recoverFromCorruption - Recupera do estado corrompido e permite outras ações no heap
    • SplHeap::rewind - Rebobina o iterador de volta ao início (sem ação)
    • SplHeap::top - Espreita o nó do topo da heap
    • SplHeap::valid - Verifica se a heap contém mais nós
    • SplMaxHeap::compare - Compara elementos para colocá-los corretamente na heap enquanto faz o ajuste ascendente
    • SplMinHeap::compare - Comparar elementos para colocá-los corretamente na heap enquanto faz o ajuste ascendente
    • SplObjectStorage::addAll - Adiciona todos os objetos de outro armazenamento
    • SplObjectStorage::attach - Adiciona um objeto no armazenamento
    • SplObjectStorage::contains - Verifica se no armazenamento contém um objeto específico
    • SplObjectStorage::count - Retorna o número de objetos no armazenamento
    • SplObjectStorage::current - Retorna a entrada atual do armazenamento
    • SplObjectStorage::detach - Remove um object do armazenamento
    • SplObjectStorage::getHash - Calcula um identificador único para os objetos contidos
    • SplObjectStorage::getInfo - Retorna os dados associados à entrada atual do iterador
    • SplObjectStorage::key - Retorna o índice em que o iterador está atualmente
    • SplObjectStorage::next - Move para a próxima entrada
    • SplObjectStorage::offsetExists - Verifica se um objeto existe no armazenamento
    • SplObjectStorage::offsetGet - Retorna os dados associados a um object
    • SplObjectStorage::offsetSet - Associa dados a um objeto no armazenamento
    • SplObjectStorage::offsetUnset - Remove um objeto do armazenamento
    • SplObjectStorage::removeAll - Remove objetos contidos em outro armazenamento do armazenamento atual
    • SplObjectStorage::removeAllExcept - Remove todos os objetos, exceto aqueles contidos em outro armazenamento, do armazenamento atual
    • SplObjectStorage::rewind - Retrocede o iterador para o primeiro elemento do armazenamento
    • SplObjectStorage::serialize - Serializa o armazenamento
    • SplObjectStorage::setInfo - Define os dados associados à entrada atual do iterador
    • SplObjectStorage::unserialize - Desserializa um armazenamento a partir de sua representação de string
    • SplObjectStorage::valid - Retorna se a entrada atual do iterador é válida
    • SplObserver::update - Recebe atualização do sujeito
    • SplPriorityQueue::compare - Comparar prioridades para colocar elementos corretamente no heap ao subir
    • SplPriorityQueue::count - Conta o número de elementos na fila
    • SplPriorityQueue::current - Retorna o nó atual apontado pelo iterador
    • SplPriorityQueue::extract - Extrai um nó do topo do heap e desloca para cima
    • SplPriorityQueue::getExtractFlags - Obtém as opções de extração
    • SplPriorityQueue::insert - Insere um elemento na fila deslocando-o para cima
    • SplPriorityQueue::isCorrupted - Indica se a fila de prioridade está em um estado corrompido
    • SplPriorityQueue::isEmpty - Verifica se a fila está vazia
    • SplPriorityQueue::key - Retorna o índice do nó atual
    • SplPriorityQueue::next - Move para o próximo nó
    • SplPriorityQueue::recoverFromCorruption - Recupera do estado corrompido e permite outras ações na fila
    • SplPriorityQueue::rewind - Rebobina o iterador de volta ao início (sem operação)
    • SplPriorityQueue::setExtractFlags - Define o modo de extração
    • SplPriorityQueue::top - Observa o nó do topo da fila
    • SplPriorityQueue::valid - Verifica se a fila contém mais nós
    • SplQueue::dequeue - Remove um nó da fila
    • SplQueue::enqueue - Adiciona um elemento à fila
    • SplSubject::attach - Anexa um SplObserver
    • SplSubject::detach - Desanexa um observador
    • SplSubject::notify - Notifica um observador
    • SplTempFileObject::__construct - Constrói um novo objeto de arquivo temporário
    • spl_autoload - Implementação padrão para __autoload()
    • spl_autoload_call - Tenta todas as funções __autoload() registradas para carregar a classe solicitada
    • spl_autoload_extensions - Registra e retorna as extensões de arquivo padrão para spl_autoload
    • spl_autoload_functions - Retorna todas as funções __autoload() registradas
    • spl_autoload_register - Registra a função dada como implementação __autoload()
    • spl_autoload_unregister - Desregistra uma função dada como implementação de __autoload()
    • spl_classes - Retorna as classes da SPL disponíveis
    • spl_object_hash - Retorna o ID de hash para o objeto fornecido
    • spl_object_id - Retorna o identificador inteiro do objeto fornecido
    • Spoofchecker::areConfusable - Verifica se as strings fornecidas podem ser confundidas
    • Spoofchecker::isSuspicious - Verifica se um texto fornecido contém algum caractere suspeito
    • Spoofchecker::setAllowedLocales - Localidades a usar nas verificações executadas
    • Spoofchecker::setChecks - Define as verificações que serão executadas
    • Spoofchecker::setRestrictionLevel - Define o nível de restrição
    • Spoofchecker::__construct - Construtor
    • sprintf - Return a formatted string
    • SQLite3::backup - Copia um banco de dados para outro banco de dados
    • SQLite3::busyTimeout - Define o manipulador de conexão ocupada
    • SQLite3::changes - Retorna o número de linhas do banco de dados que foram alteradas (ou inseridas ou excluídas) pela instrução SQL mais recente
    • SQLite3::close - Fecha a conexão com o banco de dados
    • SQLite3::createAggregate - Registra uma função PHP para uso como uma função de agregação SQL
    • SQLite3::createCollation - Registra uma função PHP para uso como uma função de comparação de SQL
    • SQLite3::createFunction - Registra uma função PHP para uso como uma função escalar SQL
    • SQLite3::enableExceptions - Habilita o lançamento de exceções
    • SQLite3::escapeString - Retorna uma string que foi devidamente escapada
    • SQLite3::exec - Executa uma consulta sem resultado em um determinado banco de dados
    • SQLite3::lastErrorCode - Retorna o código de resultado numérico da última solicitação SQLite que falhou
    • SQLite3::lastErrorMsg - Retorna o texto em inglês descrevendo a requisição SQLite mais recente que falhou
    • SQLite3::lastInsertRowID - Retorna o ID da linha mais recentemente INSERIDA no banco de dados
    • SQLite3::loadExtension - Tenta carregar uma biblioteca de extensão do SQLite
    • SQLite3::open - Abre um banco de dados SQLite
    • SQLite3::openBlob - Abre um recurso de fluxo para ler um BLOB
    • SQLite3::prepare - Prepara uma declaração SQL para execução
    • SQLite3::query - Executa uma consulta SQL
    • SQLite3::querySingle - Executa uma consulta e retorna um único resultado
    • SQLite3::setAuthorizer - Configura um retorno de chamada a ser usado como um autorizador para limitar o que uma declaração pode fazer
    • SQLite3::version - Retorna a versão da biblioteca SQLite3 como uma constante de string e como um número
    • SQLite3::__construct - Instancia um objeto SQLite3 e abre um banco de dados SQLite 3
    • SQLite3Result::columnName - Retorna o nome da enésima coluna
    • SQLite3Result::columnType - Retorna o tipo da enésima coluna
    • SQLite3Result::fetchArray - Obtém uma linha de resultado como um array associativo, numericamente indexado ou ambos
    • SQLite3Result::finalize - Fecha o conjunto de resultados
    • SQLite3Result::numColumns - Retorna o número de colunas no conjunto de resultados
    • SQLite3Result::reset - Reinicia o conjunto de resultados de volta para a primeira linha
    • SQLite3Result::__construct - Constrói um SQLite3Result
    • SQLite3Stmt::bindParam - Vincula um parâmetro a uma variável de instrução
    • SQLite3Stmt::bindValue - Vincula o valor de um parâmetro a uma variável de instrução
    • SQLite3Stmt::clear - Limpa todos os parâmetros vinculados atuais
    • SQLite3Stmt::close - Fecha a declaração preparada
    • SQLite3Stmt::execute - Executa uma declaração preparada e retorna um objeto de conjunto de resultados
    • SQLite3Stmt::getSQL - Obtém o SQL da instrução
    • SQLite3Stmt::paramCount - Retorna o número de parâmetros dentro da declaração preparada
    • SQLite3Stmt::readOnly - Retorna se uma declaração é definitivamente somente leitura
    • SQLite3Stmt::reset - Reseta a declaração preparada
    • SQLite3Stmt::__construct - Constrói um objeto SQLite3Stmt
    • sqlsrv_begin_transaction - Inicia uma transação de banco de dados
    • sqlsrv_cancel - Cancela uma declaração
    • sqlsrv_client_info - Retorna informações sobre o cliente e a conexão especificada
    • sqlsrv_close - Fecha uma conexão aberta e libera os recursos associados à conexão
    • sqlsrv_commit - Confirma uma transação que foi iniciada com sqlsrv_begin_transaction
    • sqlsrv_configure - Altera as configurações de tratamento de erros e registro do driver
    • sqlsrv_connect - Abre uma conexão com um banco de dados Microsoft SQL Server
    • sqlsrv_errors - Retorna informações de erro e aviso sobre a última operação SQLSRV executada
    • sqlsrv_execute - Executa uma declaração preparada com sqlsrv_prepare
    • sqlsrv_fetch - Torna a próxima linha em um conjunto de resultados disponível para leitura
    • sqlsrv_fetch_array - Retorna uma linha como um array
    • sqlsrv_fetch_object - Recupera a próxima linha de dados em um conjunto de resultados como um objeto
    • sqlsrv_field_metadata - Recupera metadados para os campos de uma declaração preparada por sqlsrv_prepare ou sqlsrv_query
    • sqlsrv_free_stmt - Libera todos os recursos para a declaração especificada
    • sqlsrv_get_config - Retorna o valor da configuração especificada
    • sqlsrv_get_field - Obtém dados do campo da linha atualmente selecionada
    • sqlsrv_has_rows - Indica se a declaração especificada possui linhas
    • sqlsrv_next_result - Torna o próximo resultado da declaração especificada ativo
    • sqlsrv_num_fields - Recupera o número de campos (colunas) em uma declaração
    • sqlsrv_num_rows - Recupera o número de linhas em um conjunto de resultados
    • sqlsrv_prepare - Prepara uma consulta para execução
    • sqlsrv_query - Prepara e executa uma consulta
    • sqlsrv_rollback - Reverte uma transação que foi iniciada com sqlsrv_begin_transaction
    • sqlsrv_rows_affected - Retorna o número de linhas modificadas pela última consulta INSERT, UPDATE ou DELETE executada
    • sqlsrv_send_stream_data - Envia dados de fluxos de parâmetros para o servidor
    • sqlsrv_server_info - Retorna informações sobre o servidor
    • SqlStatement::bind - Bind statement parameters
    • SqlStatement::execute - Execute the operation
    • SqlStatement::getNextResult - Get next result
    • SqlStatement::getResult - Get result
    • SqlStatement::hasMoreResults - Check for more results
    • SqlStatement::__construct - Description constructor
    • SqlStatementResult::fetchAll - Get all rows from result
    • SqlStatementResult::fetchOne - Get single row
    • SqlStatementResult::getAffectedItemsCount - Get affected row count
    • SqlStatementResult::getColumnNames - Get column names
    • SqlStatementResult::getColumns - Get columns
    • SqlStatementResult::getColumnsCount - Get column count
    • SqlStatementResult::getGeneratedIds - Get generated ids
    • SqlStatementResult::getLastInsertId - Get last insert id
    • SqlStatementResult::getWarnings - Get warnings from last operation
    • SqlStatementResult::getWarningsCount - Get warning count from last operation
    • SqlStatementResult::hasData - Check if result has data
    • SqlStatementResult::nextResult - Get next result
    • SqlStatementResult::__construct - Description constructor
    • sqrt - Raiz quadrada
    • srand - Seed the random number generator
    • sscanf - Interpreta a entrada de uma string de acordo com um formato
    • ssdeep_fuzzy_compare - Calculates the match score between two fuzzy hash signatures
    • ssdeep_fuzzy_hash - Create a fuzzy hash from a string
    • ssdeep_fuzzy_hash_filename - Create a fuzzy hash from a file
    • ssh2:// - Shell Seguro 2
    • ssh2_auth_agent - Authenticate over SSH using the ssh agent
    • ssh2_auth_hostbased_file - Authenticate using a public hostkey
    • ssh2_auth_none - Authenticate as "none"
    • ssh2_auth_password - Authenticate over SSH using a plain password
    • ssh2_auth_pubkey_file - Authenticate using a public key
    • ssh2_connect - Connect to an SSH server
    • ssh2_disconnect - Close a connection to a remote SSH server
    • ssh2_exec - Execute a command on a remote server
    • ssh2_fetch_stream - Fetch an extended data stream
    • ssh2_fingerprint - Retrieve fingerprint of remote server
    • ssh2_forward_accept - Accept a connection created by a listener
    • ssh2_forward_listen - Bind a port on the remote server and listen for connections
    • ssh2_methods_negotiated - Return list of negotiated methods
    • ssh2_poll - Poll the channels/listeners/streams for events
    • ssh2_publickey_add - Add an authorized publickey
    • ssh2_publickey_init - Initialize Publickey subsystem
    • ssh2_publickey_list - List currently authorized publickeys
    • ssh2_publickey_remove - Remove an authorized publickey
    • ssh2_scp_recv - Request a file via SCP
    • ssh2_scp_send - Send a file via SCP
    • ssh2_send_eof - Send EOF to stream
    • ssh2_sftp - Initialize SFTP subsystem
    • ssh2_sftp_chmod - Changes file mode
    • ssh2_sftp_lstat - Stat a symbolic link
    • ssh2_sftp_mkdir - Create a directory
    • ssh2_sftp_readlink - Return the target of a symbolic link
    • ssh2_sftp_realpath - Resolve the realpath of a provided path string
    • ssh2_sftp_rename - Rename a remote file
    • ssh2_sftp_rmdir - Remove a directory
    • ssh2_sftp_stat - Stat a file on a remote filesystem
    • ssh2_sftp_symlink - Create a symlink
    • ssh2_sftp_unlink - Delete a file
    • ssh2_shell - Request an interactive shell
    • ssh2_tunnel - Open a tunnel through a remote server
    • stat - Obtém informações sobre um arquivo
    • Statement::getNextResult - Get next result
    • Statement::getResult - Get result
    • Statement::hasMoreResults - Check if more results
    • Statement::__construct - Description constructor
    • stats_absolute_deviation - Returns the absolute deviation of an array of values
    • stats_cdf_beta - Calculates any one parameter of the beta distribution given values for the others
    • stats_cdf_binomial - Calculates any one parameter of the binomial distribution given values for the others
    • stats_cdf_cauchy - Calculates any one parameter of the Cauchy distribution given values for the others
    • stats_cdf_chisquare - Calculates any one parameter of the chi-square distribution given values for the others
    • stats_cdf_exponential - Calculates any one parameter of the exponential distribution given values for the others
    • stats_cdf_f - Calculates any one parameter of the F distribution given values for the others
    • stats_cdf_gamma - Calculates any one parameter of the gamma distribution given values for the others
    • stats_cdf_laplace - Calculates any one parameter of the Laplace distribution given values for the others
    • stats_cdf_logistic - Calculates any one parameter of the logistic distribution given values for the others
    • stats_cdf_negative_binomial - Calculates any one parameter of the negative binomial distribution given values for the others
    • stats_cdf_noncentral_chisquare - Calculates any one parameter of the non-central chi-square distribution given values for the others
    • stats_cdf_noncentral_f - Calculates any one parameter of the non-central F distribution given values for the others
    • stats_cdf_noncentral_t - Calculates any one parameter of the non-central t-distribution give values for the others
    • stats_cdf_normal - Calculates any one parameter of the normal distribution given values for the others
    • stats_cdf_poisson - Calculates any one parameter of the Poisson distribution given values for the others
    • stats_cdf_t - Calculates any one parameter of the t-distribution given values for the others
    • stats_cdf_uniform - Calculates any one parameter of the uniform distribution given values for the others
    • stats_cdf_weibull - Calculates any one parameter of the Weibull distribution given values for the others
    • stats_covariance - Computes the covariance of two data sets
    • stats_dens_beta - Probability density function of the beta distribution
    • stats_dens_cauchy - Probability density function of the Cauchy distribution
    • stats_dens_chisquare - Probability density function of the chi-square distribution
    • stats_dens_exponential - Probability density function of the exponential distribution
    • stats_dens_f - Probability density function of the F distribution
    • stats_dens_gamma - Probability density function of the gamma distribution
    • stats_dens_laplace - Probability density function of the Laplace distribution
    • stats_dens_logistic - Probability density function of the logistic distribution
    • stats_dens_normal - Probability density function of the normal distribution
    • stats_dens_pmf_binomial - Probability mass function of the binomial distribution
    • stats_dens_pmf_hypergeometric - Probability mass function of the hypergeometric distribution
    • stats_dens_pmf_negative_binomial - Probability mass function of the negative binomial distribution
    • stats_dens_pmf_poisson - Probability mass function of the Poisson distribution
    • stats_dens_t - Probability density function of the t-distribution
    • stats_dens_uniform - Probability density function of the uniform distribution
    • stats_dens_weibull - Probability density function of the Weibull distribution
    • stats_harmonic_mean - Returns the harmonic mean of an array of values
    • stats_kurtosis - Computes the kurtosis of the data in the array
    • stats_rand_gen_beta - Generates a random deviate from the beta distribution
    • stats_rand_gen_chisquare - Generates a random deviate from the chi-square distribution
    • stats_rand_gen_exponential - Generates a random deviate from the exponential distribution
    • stats_rand_gen_f - Generates a random deviate from the F distribution
    • stats_rand_gen_funiform - Generates uniform float between low (exclusive) and high (exclusive)
    • stats_rand_gen_gamma - Generates a random deviate from the gamma distribution
    • stats_rand_gen_ibinomial - Generates a random deviate from the binomial distribution
    • stats_rand_gen_ibinomial_negative - Generates a random deviate from the negative binomial distribution
    • stats_rand_gen_int - Generates random integer between 1 and 2147483562
    • stats_rand_gen_ipoisson - Generates a single random deviate from a Poisson distribution
    • stats_rand_gen_iuniform - Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
    • stats_rand_gen_noncentral_chisquare - Generates a random deviate from the non-central chi-square distribution
    • stats_rand_gen_noncentral_f - Generates a random deviate from the noncentral F distribution
    • stats_rand_gen_noncentral_t - Generates a single random deviate from a non-central t-distribution
    • stats_rand_gen_normal - Generates a single random deviate from a normal distribution
    • stats_rand_gen_t - Generates a single random deviate from a t-distribution
    • stats_rand_get_seeds - Get the seed values of the random number generator
    • stats_rand_phrase_to_seeds - Generate two seeds for the RGN random number generator
    • stats_rand_ranf - Generates a random floating point number between 0 and 1
    • stats_rand_setall - Set seed values to the random generator
    • stats_skew - Computes the skewness of the data in the array
    • stats_standard_deviation - Returns the standard deviation
    • stats_stat_binomial_coef - Returns a binomial coefficient
    • stats_stat_correlation - Returns the Pearson correlation coefficient of two data sets
    • stats_stat_factorial - Returns the factorial of an integer
    • stats_stat_independent_t - Returns the t-value from the independent two-sample t-test
    • stats_stat_innerproduct - Returns the inner product of two vectors
    • stats_stat_paired_t - Returns the t-value of the dependent t-test for paired samples
    • stats_stat_percentile - Returns the percentile value
    • stats_stat_powersum - Returns the power sum of a vector
    • stats_variance - Returns the variance
    • Stomp::abort - Rolls back a transaction in progress
    • Stomp::ack - Acknowledges consumption of a message
    • Stomp::begin - Starts a transaction
    • Stomp::commit - Commits a transaction in progress
    • Stomp::error - Gets the last stomp error
    • Stomp::getReadTimeout - Gets read timeout
    • Stomp::getSessionId - Gets the current stomp session ID
    • Stomp::hasFrame - Indicates whether or not there is a frame ready to read
    • Stomp::readFrame - Reads the next frame
    • Stomp::send - Sends a message
    • Stomp::setReadTimeout - Sets read timeout
    • Stomp::subscribe - Registers to listen to a given destination
    • Stomp::unsubscribe - Removes an existing subscription
    • Stomp::__construct - Opens a connection
    • Stomp::__destruct - Closes stomp connection
    • StompException::getDetails - Get exception details
    • StompFrame::__construct - Constructor
    • stomp_connect_error - Returns a string description of the last connect error
    • stomp_version - Gets the current stomp extension version
    • strcasecmp - Binary safe case-insensitive string comparison
    • strchr - Sinônimo de strstr
    • strcmp - Binary safe string comparison
    • strcoll - Locale based string comparison
    • strcspn - Encontra o tamanho do segmento inicial que não corresponde à máscara
    • streamWrapper::dir_closedir - Fecha o manipulador de diretório
    • streamWrapper::dir_opendir - Abre um manipulador de diretório
    • streamWrapper::dir_readdir - Lê entrada do manipulador de diretório
    • streamWrapper::dir_rewinddir - Retrocede um manipulador de diretório
    • streamWrapper::mkdir - Cria um diretório
    • streamWrapper::rename - Renomeia um arquivo ou diretório
    • streamWrapper::rmdir - Remove um diretório
    • streamWrapper::stream_cast - Obtém o recurso subjacente
    • streamWrapper::stream_close - Fecha um recurso
    • streamWrapper::stream_eof - Teste para fim de arquivo em ponteiros
    • streamWrapper::stream_flush - Descarrega a saída
    • streamWrapper::stream_lock - Travamento de aviso para arquivos
    • streamWrapper::stream_metadata - Alterar metadados de fluxo
    • streamWrapper::stream_open - Abre arquivo ou URL
    • streamWrapper::stream_read - Lê dados do fluxo
    • streamWrapper::stream_seek - Pesquisa uma localização específica em um fluxo
    • streamWrapper::stream_set_option - Altera as opções do fluxo
    • streamWrapper::stream_stat - Obtém informação sobre um recurso de arquivo
    • streamWrapper::stream_tell - Obtém a posição atual de um fluxo
    • streamWrapper::stream_truncate - Trunca o fluxo
    • streamWrapper::stream_write - Escreve no fluxo
    • streamWrapper::unlink - Remove um arquivo
    • streamWrapper::url_stat - Obtém informação sobre um arquivo
    • streamWrapper::__construct - Constrói um novo empacotador de fluxo
    • streamWrapper::__destruct - Destrói um empacotador de fluxo existente
    • stream_bucket_append - Anexa o bucket à brigada
    • stream_bucket_make_writeable - Retorna um objeto bucket da brigada para se operar sobre ele
    • stream_bucket_new - Cria um novo bucket para uso no fluxo atual
    • stream_bucket_prepend - Adiciona um bucket ao início da brigada
    • stream_context_create - Cria um contexto de fluxo
    • stream_context_get_default - Obtém o contexto padrão de fluxo
    • stream_context_get_options - Obtém opções para um fluxo/empacotador/contexto
    • stream_context_get_params - Obtém parâmetros de um contexto
    • stream_context_set_default - Define o contexto padrão do fluxo
    • stream_context_set_option - Define uma opção para um fluxo/empacotador/contexto
    • stream_context_set_options - Define opções no contexto especificado
    • stream_context_set_params - Define parâmetros para um fluxo/empacotador/contexto
    • stream_copy_to_stream - Copia dados de um fluxo para outro
    • stream_filter_append - Anexa um filtro a um fluxo
    • stream_filter_prepend - Anexa um filtro a um fluxo
    • stream_filter_register - Registra um filtro de fluxo definido pelo usuário
    • stream_filter_remove - Remove um filtro de um fluxo
    • stream_get_contents - Lê o restante de um fluxo em uma string
    • stream_get_filters - Obtém lista de filtros registrados
    • stream_get_line - Obtém uma linha do recurso do fluxo até um delimitador informado
    • stream_get_meta_data - Obtém cabeçalhos/metadados de ponteiros de arquivos/fluxos
    • stream_get_transports - Obtém lista de transportes socket registrados
    • stream_get_wrappers - Obtém lista de fluxos registrados
    • stream_isatty - Verifica se um fluxo é um TTY
    • stream_is_local - Verifica se o fluxo é local
    • stream_notification_callback - Uma função de chamada de retorno para o parâmetro de contexto de notification
    • stream_register_wrapper - Sinônimo de stream_wrapper_register
    • stream_resolve_include_path - Resolve o nome do arquivo em relação ao caminho de include
    • stream_select - Executa o equivalente à chamada de sistema select() nos arrays de fluxos informados com um limite de tempo especificado por segundos e microssegundos
    • stream_set_blocking - Definir modo de bloqueio/não-bloqueio em um fluxo
    • stream_set_chunk_size - Define o tamanho do pacote do fluxo
    • stream_set_read_buffer - Define o tamanho de buffer de leitura do stream
    • stream_set_timeout - Define o limite de tempo em um fluxo
    • stream_set_write_buffer - Define o tamanho do buffer de escrita do fluxo
    • stream_socket_accept - Aceita uma conexão em um socket criado por stream_socket_server
    • stream_socket_client - Abre conexão de socket de domínio Internet ou Unix
    • stream_socket_enable_crypto - Liga ou desliga criptografia em socket já conectado
    • stream_socket_get_name - Obtém o nome do socket local ou remoto
    • stream_socket_pair - Cria um par de fluxos de socket conectados e indistinguíveis
    • stream_socket_recvfrom - Recebe dados de um socket, conectado ou não
    • stream_socket_sendto - Envia uma mensagem a um socket, conectado ou não
    • stream_socket_server - Cria socket de servidor de domínio Internet ou Unix
    • stream_socket_shutdown - Fecha uma conexão full-duplex
    • stream_supports_lock - Informa se o fluxo suporta travamento
    • stream_wrapper_register - Registra um empacotador URL implementado como uma classe PHP
    • stream_wrapper_restore - Restaura um empacotador interno anteriormente desregistrado
    • stream_wrapper_unregister - Desregistra um empacotador URL
    • strftime - Formata uma hora/data de acordo com as configurações locais
    • Stringable::__toString - Obtém a representação em string do objeto
    • stripcslashes - Remove o escape de strings escapadas com addcslashes
    • stripos - Find the position of the first occurrence of a case-insensitive substring in a string
    • stripslashes - Desfaz os escapes de uma string escapada
    • strip_tags - Retira as tags HTML e PHP de uma string
    • stristr - Case-insensitive strstr
    • strlen - Retorna o tamanho de uma string
    • strnatcasecmp - Comparação de strings insensível a maiúsculas/minúsculas usando o algoritmo de "ordem natural"
    • strnatcmp - String comparisons using a "natural order" algorithm
    • strncasecmp - Comparação binária de strings, insensível a maiúsculas/minúsculas, dos primeiros n caracteres
    • strncmp - Binary safe string comparison of the first n characters
    • strpbrk - Procura na string por um dos caracteres de um conjunto
    • strpos - Find the position of the first occurrence of a substring in a string
    • strptime - Interpreta uma hora/data gerada pela função strftime
    • strrchr - Find the last occurrence of a character in a string
    • strrev - Reverte uma string
    • strripos - Find the position of the last occurrence of a case-insensitive substring in a string
    • strrpos - Find the position of the last occurrence of a substring in a string
    • strspn - Encontra o comprimento do segmento inicial de uma string composta totalmente de caracteres contidos em uma máscara informada
    • strstr - Find the first occurrence of a string
    • strtok - Tokenize string
    • strtolower - Converte uma string para minúsculas
    • strtotime - Interpreta qualquer descrição textual de data/hora em inglês para timestamp Unix
    • strtoupper - Make a string uppercase
    • strtr - Translate characters or replace substrings
    • strval - Retorna o valor string de uma variável
    • str_contains - Determina se uma string contém uma substring fornecida
    • str_decrement - Decrement an alphanumeric string
    • str_ends_with - Verifica se uma string termina com uma substring fornecida
    • str_getcsv - Analisa uma string CSV e retorna os dados em um array
    • str_increment - Increment an alphanumeric string
    • str_ireplace - Case-insensitive version of str_replace
    • str_pad - Pad a string to a certain length with another string
    • str_repeat - Repete uma string
    • str_replace - Substitui todas as ocorrências da string de pesquisa com a string de substituição
    • str_rot13 - Executa a transformação rot13 em uma string
    • str_shuffle - Embaralha uma string aleatoriamente
    • str_split - Convert a string to an array
    • str_starts_with - Verifica se uma string começa com uma substring fornecida
    • str_word_count - Retorna informação sobre palavras usadas em uma string
    • substr - Retorna parte de uma string
    • substr_compare - Comparação binária de duas strings a partir de uma posição até n caracteres
    • substr_count - Conta o número de ocorrências de uma substring
    • substr_replace - Substitui o texto dentro de uma parte de uma string
    • SVM::crossvalidate - Test training params on subsets of the training data
    • SVM::getOptions - Return the current training parameters
    • SVM::setOptions - Set training parameters
    • SVM::train - Create a SVMModel based on training data
    • SVM::__construct - Construct a new SVM object
    • SVMModel::checkProbabilityModel - Returns true if the model has probability information
    • SVMModel::getLabels - Get the labels the model was trained on
    • SVMModel::getNrClass - Returns the number of classes the model was trained with
    • SVMModel::getSvmType - Get the SVM type the model was trained with
    • SVMModel::getSvrProbability - Get the sigma value for regression types
    • SVMModel::load - Load a saved SVM Model
    • SVMModel::predict - Predict a value for previously unseen data
    • SVMModel::predict_probability - Return class probabilities for previous unseen data
    • SVMModel::save - Save a model to a file
    • SVMModel::__construct - Construct a new SVMModel
    • svn_add - Schedules the addition of an item in a working directory
    • svn_auth_get_parameter - Retrieves authentication parameter
    • svn_auth_set_parameter - Sets an authentication parameter
    • svn_blame - Get the SVN blame for a file
    • svn_cat - Returns the contents of a file in a repository
    • svn_checkout - Checks out a working copy from the repository
    • svn_cleanup - Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
    • svn_client_version - Returns the version of the SVN client libraries
    • svn_commit - Sends changes from the local working copy to the repository
    • svn_delete - Delete items from a working copy or repository
    • svn_diff - Recursively diffs two paths
    • svn_export - Export the contents of a SVN directory
    • svn_fs_abort_txn - Aborts a transaction
    • svn_fs_apply_text - Creates and returns a stream that will be used to replace
    • svn_fs_begin_txn2 - Create a new transaction
    • svn_fs_change_node_prop - Return true if everything is ok, false otherwise
    • svn_fs_check_path - Determines what kind of item lives at path in a given repository fsroot
    • svn_fs_contents_changed - Return true if content is different, false otherwise
    • svn_fs_copy - Copies a file or a directory
    • svn_fs_delete - Deletes a file or a directory
    • svn_fs_dir_entries - Enumerates the directory entries under path; returns a hash of dir names to file type
    • svn_fs_file_contents - Returns a stream to access the contents of a file from a given version of the fs
    • svn_fs_file_length - Returns the length of a file from a given version of the fs
    • svn_fs_is_dir - Determines if a path points to a directory
    • svn_fs_is_file - Determines if a path points to a file
    • svn_fs_make_dir - Creates a new empty directory
    • svn_fs_make_file - Creates a new empty file
    • svn_fs_node_created_rev - Returns the revision in which path under fsroot was created
    • svn_fs_node_prop - Returns the value of a property for a node
    • svn_fs_props_changed - Return true if props are different, false otherwise
    • svn_fs_revision_prop - Fetches the value of a named property
    • svn_fs_revision_root - Get a handle on a specific version of the repository root
    • svn_fs_txn_root - Creates and returns a transaction root
    • svn_fs_youngest_rev - Returns the number of the youngest revision in the filesystem
    • svn_import - Imports an unversioned path into a repository
    • svn_log - Returns the commit log messages of a repository URL
    • svn_ls - Returns list of directory contents in repository URL, optionally at revision number
    • svn_mkdir - Creates a directory in a working copy or repository
    • svn_repos_create - Create a new subversion repository at path
    • svn_repos_fs - Gets a handle on the filesystem for a repository
    • svn_repos_fs_begin_txn_for_commit - Create a new transaction
    • svn_repos_fs_commit_txn - Commits a transaction and returns the new revision
    • svn_repos_hotcopy - Make a hot-copy of the repos at repospath; copy it to destpath
    • svn_repos_open - Open a shared lock on a repository
    • svn_repos_recover - Run recovery procedures on the repository located at path
    • svn_revert - Revert changes to the working copy
    • svn_status - Returns the status of working copy files and directories
    • svn_update - Update working copy
    • Swoole\Async::dnsLookup - Pesquisa de host assíncrona e não bloqueante para IP.
    • Swoole\Async::read - Lê fluxo de arquivo de forma assíncrona.
    • Swoole\Async::readFile - Lê um arquivo de forma assíncrona.
    • Swoole\Async::set - Atualiza as opções de E/S assíncronas.
    • Swoole\Async::write - Escreve dados em um fluxo de arquivo de forma assíncrona.
    • Swoole\Async::writeFile - Escreve dados em um arquivo de forma assíncrona.
    • Swoole\Atomic::add - Adiciona um número ao valor do objeto atômico.
    • Swoole\Atomic::cmpset - Compara e define o valor do objeto atômico.
    • Swoole\Atomic::get - Obtém o valor atual do objeto atômico.
    • Swoole\Atomic::set - Define um novo valor para o objeto atômico.
    • Swoole\Atomic::sub - Subtrai um número ao valor do objeto atômico.
    • Swoole\Atomic::__construct - Constrói um objeto atômico do Swoole.
    • Swoole\Buffer::append - Anexa a string ou dados binários ao final do buffer de memória e retorna o novo tamanho da memória alocada.
    • Swoole\Buffer::clear - Limpa o buffer de memória.
    • Swoole\Buffer::expand - Expande o tamanho do buffer de memória.
    • Swoole\Buffer::read - Lê dados do buffer de memória com base no deslocamento e no comprimento.
    • Swoole\Buffer::recycle - Libera a memória para o sistema operacional que não está sendo usada pelo buffer de memória.
    • Swoole\Buffer::substr - Lê dados do buffer de memória com base no deslocamento e no comprimento. Ou remove dados do buffer de memória.
    • Swoole\Buffer::write - Escreve dados no buffer de memória. A memória alocada para o buffer não será alterada.
    • Swoole\Buffer::__construct - Alocação de blocos de memória de tamanho fixo.
    • Swoole\Buffer::__destruct - Destrói o buffer de memória do Swoole.
    • Swoole\Buffer::__toString - Obtém o valor da string do buffer de memória.
    • Swoole\Channel::pop - Lê e retira dados do canal Swoole.
    • Swoole\Channel::push - Escreve e empurra dados para o canal Swoole.
    • Swoole\Channel::stats - Obtém estatísticas do canal Swoole.
    • Swoole\Channel::__construct - Constrói um canal Swoole
    • Swoole\Channel::__destruct - Destrói um canal Swoole.
    • Swoole\Client::close - Fecha a conexão estabelecida.
    • Swoole\Client::connect - Conecta à porta TCP ou UDP remota.
    • Swoole\Client::getpeername - Obtém o nome do socket remoto da conexão.
    • Swoole\Client::getsockname - Obtém o nome do socket local da conexão.
    • Swoole\Client::isConnected - Verifica se a conexão está estabelecida.
    • Swoole\Client::on - Adiciona funções de retorno de chamada acionadas por eventos.
    • Swoole\Client::pause - Pausa a recepção de dados.
    • Swoole\Client::pipe - Redireciona os dados para outro descritor de arquivo.
    • Swoole\Client::recv - Recebe dados do socket remoto.
    • Swoole\Client::resume - Retoma a recepção de dados.
    • Swoole\Client::send - Envia dados para o socket TCP remoto.
    • Swoole\Client::sendfile - Envia arquivo para o socket TCP remoto.
    • Swoole\Client::sendto - Envia dados para o endereço remoto UDP.
    • Swoole\Client::set - Define os parâmetros do cliente Swoole antes que a conexão seja estabelecida.
    • Swoole\Client::sleep - Remove o cliente TCP do loop de eventos do sistema.
    • Swoole\Client::wakeup - Adiciona o cliente TCP de volta ao loop de eventos do sistema.
    • Swoole\Client::__construct - Criar um cliente TCP/UDP síncrono ou assíncrono do Swoole, com ou sem SSL.
    • Swoole\Client::__destruct - Destrói o cliente Swoole.
    • Swoole\Connection\Iterator::count - Conta conexões.
    • Swoole\Connection\Iterator::current - Retorna a entrada de conexão atual.
    • Swoole\Connection\Iterator::key - Retorna a chave da conexão atual.
    • Swoole\Connection\Iterator::next - Move para a próxima conexão.
    • Swoole\Connection\Iterator::offsetExists - Verifica se o deslocamento existe.
    • Swoole\Connection\Iterator::offsetGet - Deslocamento para recuperar.
    • Swoole\Connection\Iterator::offsetSet - tribui uma conexão ao deslocamento especificado.
    • Swoole\Connection\Iterator::offsetUnset - Desfaz um deslocamento.
    • Swoole\Connection\Iterator::rewind - Rebobina o iterador
    • Swoole\Connection\Iterator::valid - Verifica se a posição atual é válida.
    • Swoole\Coroutine::call_user_func - Chama um retorno de chamada fornecido pelo primeiro parâmetro
    • Swoole\Coroutine::call_user_func_array - Chama um retorno de chamada com um array de parâmetros
    • Swoole\Coroutine::cli_wait - Descrição
    • Swoole\Coroutine::create - Descrição
    • Swoole\Coroutine::getuid - Descrição
    • Swoole\Coroutine::resume - Descrição
    • Swoole\Coroutine::suspend - Descrição
    • Swoole\Coroutine\Client::close - Descrição
    • Swoole\Coroutine\Client::connect - Descrição
    • Swoole\Coroutine\Client::getpeername - Descrição
    • Swoole\Coroutine\Client::getsockname - Descrição
    • Swoole\Coroutine\Client::isConnected - Descrição
    • Swoole\Coroutine\Client::recv - Descrição
    • Swoole\Coroutine\Client::send - Descrição
    • Swoole\Coroutine\Client::sendfile - Descrição
    • Swoole\Coroutine\Client::sendto - Descrição
    • Swoole\Coroutine\Client::set - Descrição
    • Swoole\Coroutine\Client::__construct - Descrição
    • Swoole\Coroutine\Client::__destruct - Descrição
    • Swoole\Coroutine\Http\Client::addFile - Descrição
    • Swoole\Coroutine\Http\Client::close - Descrição
    • Swoole\Coroutine\Http\Client::execute - Descrição
    • Swoole\Coroutine\Http\Client::get - Descrição
    • Swoole\Coroutine\Http\Client::getDefer - Descrição
    • Swoole\Coroutine\Http\Client::isConnected - Descrição
    • Swoole\Coroutine\Http\Client::post - Descrição
    • Swoole\Coroutine\Http\Client::recv - Descrição
    • Swoole\Coroutine\Http\Client::set - Descrição
    • Swoole\Coroutine\Http\Client::setCookies - Descrição
    • Swoole\Coroutine\Http\Client::setData - Descrição
    • Swoole\Coroutine\Http\Client::setDefer - Descrição
    • Swoole\Coroutine\Http\Client::setHeaders - Descrição
    • Swoole\Coroutine\Http\Client::setMethod - Descrição
    • Swoole\Coroutine\Http\Client::__construct - Descrição
    • Swoole\Coroutine\Http\Client::__destruct - Descrição
    • Swoole\Coroutine\MySQL::close - Descrição
    • Swoole\Coroutine\MySQL::connect - Descrição
    • Swoole\Coroutine\MySQL::getDefer - Descrição
    • Swoole\Coroutine\MySQL::query - Descrição
    • Swoole\Coroutine\MySQL::recv - Descrição
    • Swoole\Coroutine\MySQL::setDefer - Descrição
    • Swoole\Coroutine\MySQL::__construct - Descrição
    • Swoole\Coroutine\MySQL::__destruct - Descrição
    • Swoole\Event::add - Adiciona novas funções de retorno de chamada de um socket no EventLoop.
    • Swoole\Event::defer - Adiciona uma função de retorno de chamada ao próximo loop de eventos.
    • Swoole\Event::del - Remove todas as funções de retorno de chamada de eventos de um socket.
    • Swoole\Event::exit - Sai do loop de eventos, disponível apenas no lado do cliente.
    • Swoole\Event::set - Atualiza as funções de retorno de chamada de eventos de um socket.
    • Swoole\Event::wait - Descrição
    • Swoole\Event::write - Escreve dados no socket.
    • Swoole\Http\Client::addFile - Adiciona um arquivo ao formulário de postagem.
    • Swoole\Http\Client::close - Fecha a conexão HTTP.
    • Swoole\Http\Client::download - Baixa um arquivo do servidor remoto.
    • Swoole\Http\Client::execute - Envia a solicitação HTTP após definir os parâmetros.
    • Swoole\Http\Client::get - Envia solicitação HTTP GET para o servidor remoto.
    • Swoole\Http\Client::isConnected - Verifica se a conexão HTTP está conectada.
    • Swoole\Http\Client::on - Registra função de retorno de chamada pelo nome do evento.
    • Swoole\Http\Client::post - Enviar uma solicitação http POST para o servidor remoto.
    • Swoole\Http\Client::push - Envia dados para o cliente WebSocket.
    • Swoole\Http\Client::set - Atualiza os parâmetros do cliente HTTP.
    • Swoole\Http\Client::setCookies - Define os cookies da requisição HTTP.
    • Swoole\Http\Client::setData - Define os dados do corpo da requisição HTTP.
    • Swoole\Http\Client::setHeaders - Define os cabeçalhos da requisição HTTP.
    • Swoole\Http\Client::setMethod - Define o método da requisição HTTP.
    • Swoole\Http\Client::upgrade - Faz um upgrade para o protocolo websocket.
    • Swoole\Http\Client::__construct - Constrói o cliente HTTP assíncrono.
    • Swoole\Http\Client::__destruct - Destrói o cliente HTTP.
    • Swoole\Http\Request::rawcontent - Obtém o corpo HTTP POST bruto.
    • Swoole\Http\Request::__destruct - Destrói a solicitação HTTP.
    • Swoole\Http\Response::cookie - Define os cookies da resposta HTTP.
    • Swoole\Http\Response::end - Envia dados para a solicitação HTTP e finaliza a resposta.
    • Swoole\Http\Response::gzip - Habilita a compressão gzip do conteúdo da resposta.
    • Swoole\Http\Response::header - Define os cabeçalhos da resposta HTTP.
    • Swoole\Http\Response::initHeader - Inicializa o cabeçalho da resposta HTTP.
    • Swoole\Http\Response::rawcookie - Define cookies brutos na resposta HTTP.
    • Swoole\Http\Response::sendfile - Envia um arquivo através da resposta HTTP.
    • Swoole\Http\Response::status - Define o código de status da resposta HTTP.
    • Swoole\Http\Response::write - Acrescenta conteúdo ao corpo da resposta HTTP.
    • Swoole\Http\Response::__destruct - Destrói a resposta HTTP.
    • Swoole\Http\Server::on - Vincula a função de retorno (callback) ao servidor HTTP pelo nome do evento.
    • Swoole\Http\Server::start - Iniciar o servidor http swoole.
    • Swoole\Lock::lock - Tenta adquirir o bloqueio. Ele vai bloquear se o bloqueio não estiver disponível.
    • Swoole\Lock::lock_read - Bloqueia um bloqueio de leitura-escrita para leitura.
    • Swoole\Lock::trylock - Tenta adquirir o bloqueio e retorna imediatamente mesmo que o bloqueio não esteja disponível.
    • Swoole\Lock::trylock_read - Tenta bloquear um bloqueio de leitura-escrita para leitura e retorna imediatamente mesmo que o bloqueio não esteja disponível.
    • Swoole\Lock::unlock - Libera o bloqueio.
    • Swoole\Lock::__construct - Constrói um bloqueio de memória.
    • Swoole\Lock::__destruct - Destrói um bloqueio de memória do Swoole.
    • Swoole\Mmap::open - Mapeia um arquivo na memória e retorna o recurso de fluxo que pode ser usado pelas operações de fluxo do PHP.
    • Swoole\MySQL::close - Fecha a conexão assíncrona do MySQL.
    • Swoole\MySQL::connect - Conecta-se ao servidor MySQL remoto.
    • Swoole\MySQL::getBuffer - Descrição
    • Swoole\MySQL::on - Registra uma função de retorno de chamada com base no nome do evento.
    • Swoole\MySQL::query - Executa a consulta SQL.
    • Swoole\MySQL::__construct - Constrói um cliente assíncrono do MySQL.
    • Swoole\MySQL::__destruct - Destrói o cliente assíncrono do MySQL.
    • Swoole\Process::alarm - Temporizador de alta precisão que dispara um sinal em intervalos fixos.
    • Swoole\Process::close - Fecha a conexão (pipe) para o processo filho.
    • Swoole\Process::daemon - Transforma o processo em um processo daemon.
    • Swoole\Process::exec - Executa comandos do sistema.
    • Swoole\Process::exit - Para os processos filhos.
    • Swoole\Process::freeQueue - Destrói a fila de mensagens criada por swoole_process::useQueue.
    • Swoole\Process::kill - Envia sinal para o processo filho.
    • Swoole\Process::name - Define o nome do processo.
    • Swoole\Process::pop - Lê e remove dados da fila de mensagens.
    • Swoole\Process::push - Escreve e insere dados na fila de mensagens.
    • Swoole\Process::read - Lê os dados enviados para o processo.
    • Swoole\Process::signal - Envia sinal para os processos filhos.
    • Swoole\Process::start - Inicia o processo.
    • Swoole\Process::statQueue - Obtém as estatísticas da fila de mensagens usada como método de comunicação entre processos.
    • Swoole\Process::useQueue - Cria uma fila de mensagens como método de comunicação entre o processo pai e os processos filhos.
    • Swoole\Process::wait - Aguarda os eventos dos processos filhos.
    • Swoole\Process::write - Escreve dados na conexão (pipe) e comunica com o processo pai ou processos filhos.
    • Swoole\Process::__construct - Constrói um processo.
    • Swoole\Process::__destruct - Destrói o processo.
    • Swoole\Redis\Server::format - Descrição
    • Swoole\Redis\Server::setHandler - Descrição
    • Swoole\Redis\Server::start - Descrição
    • Swoole\Serialize::pack - Serializa os dados.
    • Swoole\Serialize::unpack - Desserializa os dados.
    • Swoole\Server::addlistener - Adiciona um novo ouvinte (listener) ao servidor.
    • Swoole\Server::addProcess - Adiciona um processo definido pelo usuário (swoole_process) ao servidor.
    • Swoole\Server::after - Aciona uma função de retorno de chamada após um período de tempo.
    • Swoole\Server::bind - Vincula a conexão a um ID de usuário definido pelo usuário
    • Swoole\Server::clearTimer - Para e destrói um temporizador.
    • Swoole\Server::close - Fecha uma conexão com o cliente.
    • Swoole\Server::confirm - Verifica o status da conexão.
    • Swoole\Server::connection_info - Obtém informações da conexão pelo descritor de arquivo.
    • Swoole\Server::connection_list - Obtém todas as conexões estabelecidas.
    • Swoole\Server::defer - Atrasa a execução da função de retorno de chamada até o final do EventLoop atual.
    • Swoole\Server::exist - Verifica se a conexão existe.
    • Swoole\Server::finish - Usado no processo de tarefa para enviar o resultado para o processo trabalhador quando a tarefa é concluída.
    • Swoole\Server::getClientInfo - Obtém as informações da conexão pelo descritor de arquivo.
    • Swoole\Server::getClientList - Obtém todas as conexões estabelecidas.
    • Swoole\Server::getLastError - Obtém o código de erro do erro mais recente.
    • Swoole\Server::heartbeat - Verifica todas as conexões no servidor.
    • Swoole\Server::listen - Ouve no IP, porta e tipo de socket fornecidos.
    • Swoole\Server::on - Registra uma função de retorno de chamada pelo nome do evento.
    • Swoole\Server::pause - Para de receber dados da conexão.
    • Swoole\Server::protect - Define a conexão para o modo protegido.
    • Swoole\Server::reload - Reinicia todos os processos do trabalhador (worker).
    • Swoole\Server::resume - Inicia a recepção de dados da conexão.
    • Swoole\Server::send - Envia dados para o cliente.
    • Swoole\Server::sendfile - Envia arquivo para a conexão.
    • Swoole\Server::sendMessage - Envia mensagem para processos de trabalhador por ID.
    • Swoole\Server::sendto - Envia dados para o endereço UDP remoto.
    • Swoole\Server::sendwait - Envia dados para o socket remoto de forma bloqueada.
    • Swoole\Server::set - Define as configurações em tempo de execução do servidor Swoole.
    • Swoole\Server::shutdown - Desliga o processo mestre do servidor, esta função pode ser chamada nos processos de trabalho.
    • Swoole\Server::start - Inicia o servidor Swoole.
    • Swoole\Server::stats - Obtém as estatísticas do servidor Swoole.
    • Swoole\Server::stop - Para o servidor Swoole.
    • Swoole\Server::task - Envia dados para os processos de trabalho de tarefa.
    • Swoole\Server::taskwait - Envia dados para os processos de trabalho de tarefa de forma bloqueante.
    • Swoole\Server::taskWaitMulti - Executa várias tarefas concorrentemente.
    • Swoole\Server::tick - Repete uma função fornecida em cada intervalo de tempo especificado.
    • Swoole\Server::__construct - Constrói um servidor Swoole.
    • Swoole\Server\Port::on - Registra funções de retorno de chamada por evento.
    • Swoole\Server\Port::set - Define o protocolo da porta do servidor.
    • Swoole\Server\Port::__construct - Constrói uma porta do servidor
    • Swoole\Server\Port::__destruct - Destrói porta do servidor
    • Swoole\Table::column - Define o tipo de dados e o tamanho das colunas.
    • Swoole\Table::count - Conta as linhas na tabela, ou conta todos os elementos na tabela se $mode = 1.
    • Swoole\Table::create - Cria a tabela de memória Swoole.
    • Swoole\Table::current - Obtém a linha atual.
    • Swoole\Table::decr - Decrementa o valor na tabela Swoole pelo $row_key e $column_key.
    • Swoole\Table::del - Exclui uma linha na tabela Swoole pelo $row_key.
    • Swoole\Table::destroy - Destrói a tabela Swoole.
    • Swoole\Table::exist - Verifica se uma linha existe pelo $row_key.
    • Swoole\Table::get - Obtém o valor na tabela Swoole pelo $row_key e $column_key.
    • Swoole\Table::incr - Incrementa o valor pelo $row_key e $column_key.
    • Swoole\Table::key - Obtém a chave da linha atual.
    • Swoole\Table::next - Itera para a próxima linha.
    • Swoole\Table::rewind - Rebobina o iterador.
    • Swoole\Table::set - Atualiza uma linha da tabela pelo $row_key.
    • Swoole\Table::valid - Verifica se a linha atual é válida.
    • Swoole\Table::__construct - Constrói uma tabela de memória Swoole com tamanho fixo.
    • Swoole\Timer::after - Aciona uma função de retorno de chamada após um período de tempo.
    • Swoole\Timer::clear - Exclui um temporizador pelo ID do temporizador.
    • Swoole\Timer::exists - Verifica se um temporizador existe.
    • Swoole\Timer::tick - Repete uma função fornecida em cada intervalo de tempo especificado.
    • Swoole\WebSocket\Server::exist - Verifica se o descritor de arquivo existe.
    • Swoole\WebSocket\Server::on - Registra função de retorno de chamada de evento
    • Swoole\WebSocket\Server::pack - Obtém um pacote de dados binários para enviar em um único quadro.
    • Swoole\WebSocket\Server::push - Envia dados para o cliente remoto.
    • Swoole\WebSocket\Server::unpack - Desempacota os dados binários recebidos do cliente.
    • swoole_async_dns_lookup - Pesquisa de nome de host para IP assíncrona e não bloqueante
    • swoole_async_read - Lê o fluxo de arquivo de forma assíncrona
    • swoole_async_readfile - Lê um arquivo de forma assíncrona
    • swoole_async_set - Atualiza as opções de E/S assíncronas
    • swoole_async_write - Escreve dados em um fluxo de arquivo de forma assíncrona
    • swoole_async_writefile - Escreve dados em um arquivo de forma assíncrona
    • swoole_clear_error - Limpa os erros no socket ou no último código de erro
    • swoole_client_select - Obtém a descrição do arquivo que está pronto para leitura/gravação ou erro
    • swoole_cpu_num - Obtém o número de CPUs
    • swoole_errno - Obtém o código de erro da última chamada de sistema
    • swoole_error_log - Retorna mensagens de erro para o log
    • swoole_event_add - Adiciona novas funções de retorno de chamada de um socket no EventLoop
    • swoole_event_defer - Adiciona função de retorno de chamada para o próximo loop de eventos
    • swoole_event_del - Remove todas as funções de retorno de chamada de evento de um socket
    • swoole_event_exit - Sai do eventloop, disponível apenas no lado do cliente
    • swoole_event_set - Atualiza as funções de retorno de chamada de evento de um socket
    • swoole_event_wait - Inicia o loop de eventos
    • swoole_event_write - Escreve dados em um socket
    • swoole_get_local_ip - Obtém os endereços IP IPv4 de cada NIC na máquina
    • swoole_last_error - Obtém a mensagem de erro mais recente
    • swoole_load_module - Carrega uma extensão do Swoole
    • swoole_select - Seleciona as descrições de arquivo que estão prontas para leitura/escrita ou erro no loop de eventos
    • swoole_set_process_name - Define o nome do processo
    • swoole_strerror - Converte o Errno em mensagens de erro
    • swoole_timer_after - Aciona uma função de retorno de chamada única no futuro
    • swoole_timer_exists - Verifica se uma função de retorno de chamada de temporizador existe
    • swoole_timer_tick - Aciona uma função de retorno de chamada de temporizador por intervalo de tempo
    • swoole_version - Obtém a versão do Swoole
    • symlink - Cria uma ligação simbólica
    • SyncEvent::fire - Ativa/configura o evento
    • SyncEvent::reset - Redefine um evento manual
    • SyncEvent::wait - Espera o evento ser ativado/configurado
    • SyncEvent::__construct - Constrói um novo objeto SyncEvent
    • SyncMutex::lock - Aguarda um bloqueio exclusivo
    • SyncMutex::unlock - Destrava o mutex
    • SyncMutex::__construct - Constrói um novo objeto SyncMutex
    • SyncReaderWriter::readlock - Waits for a read lock
    • SyncReaderWriter::readunlock - Releases a read lock
    • SyncReaderWriter::writelock - Waits for an exclusive write lock
    • SyncReaderWriter::writeunlock - Releases a write lock
    • SyncReaderWriter::__construct - Constructs a new SyncReaderWriter object
    • SyncSemaphore::lock - Decreases the count of the semaphore or waits
    • SyncSemaphore::unlock - Increases the count of the semaphore
    • SyncSemaphore::__construct - Constructs a new SyncSemaphore object
    • SyncSharedMemory::first - Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read - Copy data from named shared memory
    • SyncSharedMemory::size - Returns the size of the named shared memory
    • SyncSharedMemory::write - Copy data to named shared memory
    • SyncSharedMemory::__construct - Constructs a new SyncSharedMemory object
    • syslog - Generate a system log message
    • system - Executa um programa externo e mostra a saída
    • sys_getloadavg - Obtém a média de carga do sistema
    • sys_get_temp_dir - Returns directory path used for temporary files
  • t
    • Table::count - Get row count
    • Table::delete - Delete rows from table
    • Table::existsInDatabase - Check if table exists in database
    • Table::getName - Get table name
    • Table::getSchema - Get table schema
    • Table::getSession - Get table session
    • Table::insert - Insert table rows
    • Table::isView - Check if table is view
    • Table::select - Select rows from table
    • Table::update - Update rows in table
    • Table::__construct - Table constructor
    • TableDelete::bind - Bind delete query parameters
    • TableDelete::execute - Execute delete query
    • TableDelete::limit - Limit deleted rows
    • TableDelete::orderby - Set delete sort criteria
    • TableDelete::where - Set delete search condition
    • TableDelete::__construct - TableDelete constructor
    • TableInsert::execute - Execute insert query
    • TableInsert::values - Add insert row values
    • TableInsert::__construct - TableInsert constructor
    • TableSelect::bind - Bind select query parameters
    • TableSelect::execute - Execute select statement
    • TableSelect::groupBy - Set select grouping criteria
    • TableSelect::having - Set select having condition
    • TableSelect::limit - Limit selected rows
    • TableSelect::lockExclusive - Execute EXCLUSIVE LOCK
    • TableSelect::lockShared - Execute SHARED LOCK
    • TableSelect::offset - Set limit offset
    • TableSelect::orderby - Set select sort criteria
    • TableSelect::where - Set select search condition
    • TableSelect::__construct - TableSelect constructor
    • TableUpdate::bind - Bind update query parameters
    • TableUpdate::execute - Execute update query
    • TableUpdate::limit - Limit update row count
    • TableUpdate::orderby - Set sorting criteria
    • TableUpdate::set - Add field to be updated
    • TableUpdate::where - Set search filter
    • TableUpdate::__construct - TableUpdate constructor
    • taint - Taint a string
    • tan - Tangente
    • tanh - Tangente hiperbólica
    • tcpwrap_check - Performs a tcpwrap check
    • tempnam - Cria arquivo com nome único
    • textdomain - Sets the default domain
    • Thread::getCreatorId - Identification
    • Thread::getCurrentThread - Identification
    • Thread::getCurrentThreadId - Identification
    • Thread::getThreadId - Identification
    • Thread::isJoined - State Detection
    • Thread::isStarted - State Detection
    • Thread::join - Synchronization
    • Thread::start - Execution
    • Threaded::chunk - Manipulation
    • Threaded::count - Manipulation
    • Threaded::extend - Runtime Manipulation
    • Threaded::isRunning - State Detection
    • Threaded::isTerminated - State Detection
    • Threaded::merge - Manipulation
    • Threaded::notify - Synchronization
    • Threaded::notifyOne - Synchronization
    • Threaded::pop - Manipulation
    • Threaded::run - Execution
    • Threaded::shift - Manipulation
    • Threaded::synchronized - Synchronization
    • Threaded::wait - Synchronization
    • Throwable::getCode - Obtém o código da exceção
    • Throwable::getFile - Obtém o arquivo no qual o objeto foi criado
    • Throwable::getLine - Obtém a linha na qual o objeto foi instanciado
    • Throwable::getMessage - Obtém a mensagem
    • Throwable::getPrevious - Retorna o Throwable anterior
    • Throwable::getTrace - Obtém o rastreamento de pilha
    • Throwable::getTraceAsString - Obtém o rastreamento de pilha como uma string
    • Throwable::__toString - Obtém uma representação em string do objeto disparado
    • tidy::$errorBuffer - Return warnings and errors which occurred parsing the specified document
    • tidy::body - Returns a tidyNode object starting from the <body> tag of the tidy parse tree
    • tidy::cleanRepair - Execute configured cleanup and repair operations on parsed markup
    • tidy::diagnose - Run configured diagnostics on parsed and repaired markup
    • tidy::getConfig - Get current Tidy configuration
    • tidy::getHtmlVer - Get the Detected HTML version for the specified document
    • tidy::getOpt - Returns the value of the specified configuration option for the tidy document
    • tidy::getOptDoc - Returns the documentation for the given option name
    • tidy::getRelease - Get release date (version) for Tidy library
    • tidy::getStatus - Get status of specified document
    • tidy::head - Returns a tidyNode object starting from the <head> tag of the tidy parse tree
    • tidy::html - Returns a tidyNode object starting from the <html> tag of the tidy parse tree
    • tidy::isXhtml - Indicates if the document is a XHTML document
    • tidy::isXml - Indicates if the document is a generic (non HTML/XHTML) XML document
    • tidy::parseFile - Parse markup in file or URI
    • tidy::parseString - Parse a document stored in a string
    • tidy::repairFile - Repair a file and return it as a string
    • tidy::repairString - Repair a string using an optionally provided configuration file
    • tidy::root - Returns a tidyNode object representing the root of the tidy parse tree
    • tidy::__construct - Constructs a new tidy object
    • tidyNode::getParent - Returns the parent node of the current node
    • tidyNode::hasChildren - Checks if a node has children
    • tidyNode::hasSiblings - Checks if a node has siblings
    • tidyNode::isAsp - Checks if this node is ASP
    • tidyNode::isComment - Checks if a node represents a comment
    • tidyNode::isHtml - Checks if a node is an element node
    • tidyNode::isJste - Checks if this node is JSTE
    • tidyNode::isPhp - Checks if a node is PHP
    • tidyNode::isText - Checks if a node represents text (no markup)
    • tidyNode::__construct - Private constructor to disallow direct instantiation
    • tidy_access_count - Returns the Number of Tidy accessibility warnings encountered for specified document
    • tidy_config_count - Returns the Number of Tidy configuration errors encountered for specified document
    • tidy_error_count - Returns the Number of Tidy errors encountered for specified document
    • tidy_get_output - Return a string representing the parsed tidy markup
    • tidy_warning_count - Returns the Number of Tidy warnings encountered for specified document
    • time - Retorna o timestamp Unix atual
    • timezone_abbreviations_list - Sinônimo de DateTimeZone::listAbbreviations
    • timezone_identifiers_list - Sinônimo de DateTimeZone::listIdentifiers
    • timezone_location_get - Sinônimo de DateTimeZone::getLocation
    • timezone_name_from_abbr - Retorna um nome de fuso horário através da abreviatura e do deslocamento UTC
    • timezone_name_get - Sinônimo de DateTimeZone::getName
    • timezone_offset_get - Sinônimo de DateTimeZone::getOffset
    • timezone_open - Sinônimo de DateTimeZone::__construct
    • timezone_transitions_get - Sinônimo de DateTimeZone::getTransitions
    • timezone_version_get - Obtém a versão do banco de dados de fuso horário.
    • time_nanosleep - Atrasa por um número de segundos e nanossegundos
    • time_sleep_until - Faz o script pausar até o horário especificado
    • tmpfile - Cria um arquivo temporário
    • token_get_all - Divide um dado fonte em tokens do PHP
    • token_name - Pega o nome simbólico de um dado token do PHP
    • touch - Define horário de acesso e de modificação de arquivo
    • trader_acos - Vector Trigonometric ACos
    • trader_ad - Chaikin A/D Line
    • trader_add - Vector Arithmetic Add
    • trader_adosc - Chaikin A/D Oscillator
    • trader_adx - Average Directional Movement Index
    • trader_adxr - Average Directional Movement Index Rating
    • trader_apo - Absolute Price Oscillator
    • trader_aroon - Aroon
    • trader_aroonosc - Aroon Oscillator
    • trader_asin - Vector Trigonometric ASin
    • trader_atan - Vector Trigonometric ATan
    • trader_atr - Average True Range
    • trader_avgprice - Average Price
    • trader_bbands - Bollinger Bands
    • trader_beta - Beta
    • trader_bop - Balance Of Power
    • trader_cci - Commodity Channel Index
    • trader_cdl2crows - Two Crows
    • trader_cdl3blackcrows - Three Black Crows
    • trader_cdl3inside - Three Inside Up/Down
    • trader_cdl3linestrike - Three-Line Strike
    • trader_cdl3outside - Three Outside Up/Down
    • trader_cdl3starsinsouth - Three Stars In The South
    • trader_cdl3whitesoldiers - Three Advancing White Soldiers
    • trader_cdlabandonedbaby - Abandoned Baby
    • trader_cdladvanceblock - Advance Block
    • trader_cdlbelthold - Belt-hold
    • trader_cdlbreakaway - Breakaway
    • trader_cdlclosingmarubozu - Closing Marubozu
    • trader_cdlconcealbabyswall - Concealing Baby Swallow
    • trader_cdlcounterattack - Counterattack
    • trader_cdldarkcloudcover - Dark Cloud Cover
    • trader_cdldoji - Doji
    • trader_cdldojistar - Doji Star
    • trader_cdldragonflydoji - Dragonfly Doji
    • trader_cdlengulfing - Engulfing Pattern
    • trader_cdleveningdojistar - Evening Doji Star
    • trader_cdleveningstar - Evening Star
    • trader_cdlgapsidesidewhite - Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji - Gravestone Doji
    • trader_cdlhammer - Hammer
    • trader_cdlhangingman - Hanging Man
    • trader_cdlharami - Harami Pattern
    • trader_cdlharamicross - Harami Cross Pattern
    • trader_cdlhighwave - High-Wave Candle
    • trader_cdlhikkake - Hikkake Pattern
    • trader_cdlhikkakemod - Modified Hikkake Pattern
    • trader_cdlhomingpigeon - Homing Pigeon
    • trader_cdlidentical3crows - Identical Three Crows
    • trader_cdlinneck - In-Neck Pattern
    • trader_cdlinvertedhammer - Inverted Hammer
    • trader_cdlkicking - Kicking
    • trader_cdlkickingbylength - Kicking - bull/bear determined by the longer marubozu
    • trader_cdlladderbottom - Ladder Bottom
    • trader_cdllongleggeddoji - Long Legged Doji
    • trader_cdllongline - Long Line Candle
    • trader_cdlmarubozu - Marubozu
    • trader_cdlmatchinglow - Matching Low
    • trader_cdlmathold - Mat Hold
    • trader_cdlmorningdojistar - Morning Doji Star
    • trader_cdlmorningstar - Morning Star
    • trader_cdlonneck - On-Neck Pattern
    • trader_cdlpiercing - Piercing Pattern
    • trader_cdlrickshawman - Rickshaw Man
    • trader_cdlrisefall3methods - Rising/Falling Three Methods
    • trader_cdlseparatinglines - Separating Lines
    • trader_cdlshootingstar - Shooting Star
    • trader_cdlshortline - Short Line Candle
    • trader_cdlspinningtop - Spinning Top
    • trader_cdlstalledpattern - Stalled Pattern
    • trader_cdlsticksandwich - Stick Sandwich
    • trader_cdltakuri - Takuri (Dragonfly Doji with very long lower shadow)
    • trader_cdltasukigap - Tasuki Gap
    • trader_cdlthrusting - Thrusting Pattern
    • trader_cdltristar - Tristar Pattern
    • trader_cdlunique3river - Unique 3 River
    • trader_cdlupsidegap2crows - Upside Gap Two Crows
    • trader_cdlxsidegap3methods - Upside/Downside Gap Three Methods
    • trader_ceil - Vector Ceil
    • trader_cmo - Chande Momentum Oscillator
    • trader_correl - Pearson's Correlation Coefficient (r)
    • trader_cos - Vector Trigonometric Cos
    • trader_cosh - Vector Trigonometric Cosh
    • trader_dema - Double Exponential Moving Average
    • trader_div - Vector Arithmetic Div
    • trader_dx - Directional Movement Index
    • trader_ema - Exponential Moving Average
    • trader_errno - Get error code
    • trader_exp - Vector Arithmetic Exp
    • trader_floor - Vector Floor
    • trader_get_compat - Get compatibility mode
    • trader_get_unstable_period - Get unstable period
    • trader_ht_dcperiod - Hilbert Transform - Dominant Cycle Period
    • trader_ht_dcphase - Hilbert Transform - Dominant Cycle Phase
    • trader_ht_phasor - Hilbert Transform - Phasor Components
    • trader_ht_sine - Hilbert Transform - SineWave
    • trader_ht_trendline - Hilbert Transform - Instantaneous Trendline
    • trader_ht_trendmode - Hilbert Transform - Trend vs Cycle Mode
    • trader_kama - Kaufman Adaptive Moving Average
    • trader_linearreg - Linear Regression
    • trader_linearreg_angle - Linear Regression Angle
    • trader_linearreg_intercept - Linear Regression Intercept
    • trader_linearreg_slope - Linear Regression Slope
    • trader_ln - Vector Log Natural
    • trader_log10 - Vector Log10
    • trader_ma - Moving average
    • trader_macd - Moving Average Convergence/Divergence
    • trader_macdext - MACD with controllable MA type
    • trader_macdfix - Moving Average Convergence/Divergence Fix 12/26
    • trader_mama - MESA Adaptive Moving Average
    • trader_mavp - Moving average with variable period
    • trader_max - Highest value over a specified period
    • trader_maxindex - Index of highest value over a specified period
    • trader_medprice - Median Price
    • trader_mfi - Money Flow Index
    • trader_midpoint - MidPoint over period
    • trader_midprice - Midpoint Price over period
    • trader_min - Lowest value over a specified period
    • trader_minindex - Index of lowest value over a specified period
    • trader_minmax - Lowest and highest values over a specified period
    • trader_minmaxindex - Indexes of lowest and highest values over a specified period
    • trader_minus_di - Minus Directional Indicator
    • trader_minus_dm - Minus Directional Movement
    • trader_mom - Momentum
    • trader_mult - Vector Arithmetic Mult
    • trader_natr - Normalized Average True Range
    • trader_obv - On Balance Volume
    • trader_plus_di - Plus Directional Indicator
    • trader_plus_dm - Plus Directional Movement
    • trader_ppo - Percentage Price Oscillator
    • trader_roc - Rate of change : ((price/prevPrice)-1)*100
    • trader_rocp - Rate of change Percentage: (price-prevPrice)/prevPrice
    • trader_rocr - Rate of change ratio: (price/prevPrice)
    • trader_rocr100 - Rate of change ratio 100 scale: (price/prevPrice)*100
    • trader_rsi - Relative Strength Index
    • trader_sar - Parabolic SAR
    • trader_sarext - Parabolic SAR - Extended
    • trader_set_compat - Set compatibility mode
    • trader_set_unstable_period - Set unstable period
    • trader_sin - Vector Trigonometric Sin
    • trader_sinh - Vector Trigonometric Sinh
    • trader_sma - Simple Moving Average
    • trader_sqrt - Vector Square Root
    • trader_stddev - Standard Deviation
    • trader_stoch - Stochastic
    • trader_stochf - Stochastic Fast
    • trader_stochrsi - Stochastic Relative Strength Index
    • trader_sub - Vector Arithmetic Subtraction
    • trader_sum - Summation
    • trader_t3 - Triple Exponential Moving Average (T3)
    • trader_tan - Vector Trigonometric Tan
    • trader_tanh - Vector Trigonometric Tanh
    • trader_tema - Triple Exponential Moving Average
    • trader_trange - True Range
    • trader_trima - Triangular Moving Average
    • trader_trix - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
    • trader_tsf - Time Series Forecast
    • trader_typprice - Typical Price
    • trader_ultosc - Ultimate Oscillator
    • trader_var - Variance
    • trader_wclprice - Weighted Close Price
    • trader_willr - Williams' %R
    • trader_wma - Weighted Moving Average
    • trait_exists - Verifica se a trait existe
    • Transliterator::create - Cria um transliterador
    • Transliterator::createFromRules - Cria um transliterador a partir de regras
    • Transliterator::createInverse - Cria um transliterador inverso
    • Transliterator::getErrorCode - Obtém o último código de erro
    • Transliterator::getErrorMessage - Obtém a última mensagem de erro
    • Transliterator::listIDs - Obtém IDs de transliteradores
    • Transliterator::transliterate - Translitera uma string
    • Transliterator::__construct - Construtor privado para proibir instanciação
    • trigger_error - Gera uma mensagem a nível de usuário de erro/alerta/nota
    • trim - Retira espaço (ou outros caracteres) do início e do final de uma string
  • u
    • uasort - Ordena um array com uma função de comparação definida pelo usuário e mantém associações de índices
    • ucfirst - Make a string's first character uppercase
    • UConverter::convert - Converte uma string de um conjunto de caracteres (charset) para outro
    • UConverter::fromUCallback - Função de retorno de origem padrão
    • UConverter::getAliases - Obtém o pseudônimo de um nome
    • UConverter::getAvailable - Obtém os nomes canônicos dos conversores disponíveis
    • UConverter::getDestinationEncoding - Obtém a codificação de destino
    • UConverter::getDestinationType - Obtém o tipo do conversor de destino
    • UConverter::getErrorCode - Obtém o código do último erro gerado pelo objeto
    • UConverter::getErrorMessage - Obtém a mensagem do último erro gerado pelo objeto
    • UConverter::getSourceEncoding - Obtém a codificação de origem
    • UConverter::getSourceType - Obtém o tipo do conversor de origem
    • UConverter::getStandards - Obtém os nomes dos conversores padrão associados
    • UConverter::getSubstChars - Obtém os caracteres de substituição
    • UConverter::reasonText - Obtém uma representação em string da razão da chamada de retorno
    • UConverter::setDestinationEncoding - Define a codificação de destino
    • UConverter::setSourceEncoding - Define a codificação da origem
    • UConverter::setSubstChars - Define os caracteres de substituição
    • UConverter::toUCallback - Função de retorno padrão de destino
    • UConverter::transcode - Converte uma string de uma codificação de caracteres para outra
    • UConverter::__construct - Cria um objeto UConverter
    • ucwords - Converte para maiúsculas o primeiro caractere de cada palavra
    • UI\Area::onDraw - Draw Callback
    • UI\Area::onKey - Key Callback
    • UI\Area::onMouse - Mouse Callback
    • UI\Area::redraw - Redraw Area
    • UI\Area::scrollTo - Area Scroll
    • UI\Area::setSize - Set Size
    • UI\Control::destroy - Destroy Control
    • UI\Control::disable - Disable Control
    • UI\Control::enable - Enable Control
    • UI\Control::getParent - Get Parent Control
    • UI\Control::getTopLevel - Get Top Level
    • UI\Control::hide - Hide Control
    • UI\Control::isEnabled - Determine if Control is enabled
    • UI\Control::isVisible - Determine if Control is visible
    • UI\Control::setParent - Set Parent Control
    • UI\Control::show - Control Show
    • UI\Controls\Box::append - Append Control
    • UI\Controls\Box::delete - Delete Control
    • UI\Controls\Box::getOrientation - Get Orientation
    • UI\Controls\Box::isPadded - Padding Detection
    • UI\Controls\Box::setPadded - Set Padding
    • UI\Controls\Box::__construct - Construct a new Box
    • UI\Controls\Button::getText - Get Text
    • UI\Controls\Button::onClick - Click Handler
    • UI\Controls\Button::setText - Set Text
    • UI\Controls\Button::__construct - Construct a new Button
    • UI\Controls\Check::getText - Get Text
    • UI\Controls\Check::isChecked - Checked Detection
    • UI\Controls\Check::onToggle - Toggle Callback
    • UI\Controls\Check::setChecked - Set Checked
    • UI\Controls\Check::setText - Set Text
    • UI\Controls\Check::__construct - Construct a new Check
    • UI\Controls\ColorButton::getColor - Get Color
    • UI\Controls\ColorButton::onChange - Change Handler
    • UI\Controls\ColorButton::setColor - Set Color
    • UI\Controls\Combo::append - Append Option
    • UI\Controls\Combo::getSelected - Get Selected Option
    • UI\Controls\Combo::onSelected - Selected Handler
    • UI\Controls\Combo::setSelected - Set Selected Option
    • UI\Controls\EditableCombo::append - Append Option
    • UI\Controls\EditableCombo::getText - Get Text
    • UI\Controls\EditableCombo::onChange - Change Handler
    • UI\Controls\EditableCombo::setText - Set Text
    • UI\Controls\Entry::getText - Get Text
    • UI\Controls\Entry::isReadOnly - Detect Read Only
    • UI\Controls\Entry::onChange - Change Handler
    • UI\Controls\Entry::setReadOnly - Set Read Only
    • UI\Controls\Entry::setText - Set Text
    • UI\Controls\Entry::__construct - Construct a new Entry
    • UI\Controls\Form::append - Append Control
    • UI\Controls\Form::delete - Delete Control
    • UI\Controls\Form::isPadded - Padding Detection
    • UI\Controls\Form::setPadded - Set Padding
    • UI\Controls\Grid::append - Append Control
    • UI\Controls\Grid::isPadded - Padding Detection
    • UI\Controls\Grid::setPadded - Set Padding
    • UI\Controls\Group::append - Append Control
    • UI\Controls\Group::getTitle - Get Title
    • UI\Controls\Group::hasMargin - Margin Detection
    • UI\Controls\Group::setMargin - Set Margin
    • UI\Controls\Group::setTitle - Set Title
    • UI\Controls\Group::__construct - Construct a new Group
    • UI\Controls\Label::getText - Get Text
    • UI\Controls\Label::setText - Set Text
    • UI\Controls\Label::__construct - Construct a new Label
    • UI\Controls\MultilineEntry::append - Append Text
    • UI\Controls\MultilineEntry::getText - Get Text
    • UI\Controls\MultilineEntry::isReadOnly - Read Only Detection
    • UI\Controls\MultilineEntry::onChange - Change Handler
    • UI\Controls\MultilineEntry::setReadOnly - Set Read Only
    • UI\Controls\MultilineEntry::setText - Set Text
    • UI\Controls\MultilineEntry::__construct - Construct a new Multiline Entry
    • UI\Controls\Picker::__construct - Construct a new Picker
    • UI\Controls\Progress::getValue - Get Value
    • UI\Controls\Progress::setValue - Set Value
    • UI\Controls\Radio::append - Append Option
    • UI\Controls\Radio::getSelected - Get Selected Option
    • UI\Controls\Radio::onSelected - Selected Handler
    • UI\Controls\Radio::setSelected - Set Selected Option
    • UI\Controls\Separator::__construct - Construct a new Separator
    • UI\Controls\Slider::getValue - Get Value
    • UI\Controls\Slider::onChange - Change Handler
    • UI\Controls\Slider::setValue - Set Value
    • UI\Controls\Slider::__construct - Construct a new Slider
    • UI\Controls\Spin::getValue - Get Value
    • UI\Controls\Spin::onChange - Change Handler
    • UI\Controls\Spin::setValue - Set Value
    • UI\Controls\Spin::__construct - Construct a new Spin
    • UI\Controls\Tab::append - Append Page
    • UI\Controls\Tab::delete - Delete Page
    • UI\Controls\Tab::hasMargin - Margin Detection
    • UI\Controls\Tab::insertAt - Insert Page
    • UI\Controls\Tab::pages - Page Count
    • UI\Controls\Tab::setMargin - Set Margin
    • UI\Draw\Brush::getColor - Get Color
    • UI\Draw\Brush::setColor - Set Color
    • UI\Draw\Brush::__construct - Construct a new Brush
    • UI\Draw\Brush\Gradient::addStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop - Stop Manipulation
    • UI\Draw\Brush\LinearGradient::__construct - Construct a Linear Gradient
    • UI\Draw\Brush\RadialGradient::__construct - Construct a new Radial Gradient
    • UI\Draw\Color::getChannel - Color Manipulation
    • UI\Draw\Color::setChannel - Color Manipulation
    • UI\Draw\Color::__construct - Construct new Color
    • UI\Draw\Matrix::invert - Invert Matrix
    • UI\Draw\Matrix::isInvertible - Invertible Detection
    • UI\Draw\Matrix::multiply - Multiply Matrix
    • UI\Draw\Matrix::rotate - Rotate Matrix
    • UI\Draw\Matrix::scale - Scale Matrix
    • UI\Draw\Matrix::skew - Skew Matrix
    • UI\Draw\Matrix::translate - Translate Matrix
    • UI\Draw\Path::addRectangle - Draw a Rectangle
    • UI\Draw\Path::arcTo - Draw an Arc
    • UI\Draw\Path::bezierTo - Draw Bezier Curve
    • UI\Draw\Path::closeFigure - Close Figure
    • UI\Draw\Path::end - Finalize Path
    • UI\Draw\Path::lineTo - Draw a Line
    • UI\Draw\Path::newFigure - Draw Figure
    • UI\Draw\Path::newFigureWithArc - Draw Figure with Arc
    • UI\Draw\Path::__construct - Construct a new Path
    • UI\Draw\Pen::clip - Clip a Path
    • UI\Draw\Pen::fill - Fill a Path
    • UI\Draw\Pen::restore - Restore
    • UI\Draw\Pen::save - Save
    • UI\Draw\Pen::stroke - Stroke a Path
    • UI\Draw\Pen::transform - Matrix Transform
    • UI\Draw\Pen::write - Draw Text at Point
    • UI\Draw\Stroke::getCap - Get Line Cap
    • UI\Draw\Stroke::getJoin - Get Line Join
    • UI\Draw\Stroke::getMiterLimit - Get Miter Limit
    • UI\Draw\Stroke::getThickness - Get Thickness
    • UI\Draw\Stroke::setCap - Set Line Cap
    • UI\Draw\Stroke::setJoin - Set Line Join
    • UI\Draw\Stroke::setMiterLimit - Set Miter Limit
    • UI\Draw\Stroke::setThickness - Set Thickness
    • UI\Draw\Stroke::__construct - Construct a new Stroke
    • UI\Draw\Text\Font::getAscent - Font Metrics
    • UI\Draw\Text\Font::getDescent - Font Metrics
    • UI\Draw\Text\Font::getLeading - Font Metrics
    • UI\Draw\Text\Font::getUnderlinePosition - Font Metrics
    • UI\Draw\Text\Font::getUnderlineThickness - Font Metrics
    • UI\Draw\Text\Font::__construct - Construct a new Font
    • UI\Draw\Text\Font\Descriptor::getFamily - Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic - Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize - Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch - Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight - Weight Detection
    • UI\Draw\Text\Font\Descriptor::__construct - Construct a new Font Descriptor
    • UI\Draw\Text\Font\fontFamilies - Retrieve Font Families
    • UI\Draw\Text\Layout::setColor - Set Color
    • UI\Draw\Text\Layout::setWidth - Set Width
    • UI\Draw\Text\Layout::__construct - Construct a new Text Layout
    • UI\Executor::kill - Stop Executor
    • UI\Executor::onExecute - Execution Callback
    • UI\Executor::setInterval - Interval Manipulation
    • UI\Executor::__construct - Construct a new Executor
    • UI\Menu::append - Append Menu Item
    • UI\Menu::appendAbout - Append About Menu Item
    • UI\Menu::appendCheck - Append Checkable Menu Item
    • UI\Menu::appendPreferences - Append Preferences Menu Item
    • UI\Menu::appendQuit - Append Quit Menu Item
    • UI\Menu::appendSeparator - Append Menu Item Separator
    • UI\Menu::__construct - Construct a new Menu
    • UI\MenuItem::disable - Disable Menu Item
    • UI\MenuItem::enable - Enable Menu Item
    • UI\MenuItem::isChecked - Detect Checked
    • UI\MenuItem::onClick - On Click Callback
    • UI\MenuItem::setChecked - Set Checked
    • UI\Point::at - Size Coercion
    • UI\Point::getX - Retrieves X
    • UI\Point::getY - Retrieves Y
    • UI\Point::setX - Set X
    • UI\Point::setY - Set Y
    • UI\Point::__construct - Construct a new Point
    • UI\quit - Quit UI Loop
    • UI\run - Enter UI Loop
    • UI\Size::getHeight - Retrieves Height
    • UI\Size::getWidth - Retrives Width
    • UI\Size::of - Point Coercion
    • UI\Size::setHeight - Set Height
    • UI\Size::setWidth - Set Width
    • UI\Size::__construct - Construct a new Size
    • UI\Window::add - Add a Control
    • UI\Window::error - Show Error Box
    • UI\Window::getSize - Get Window Size
    • UI\Window::getTitle - Get Title
    • UI\Window::hasBorders - Border Detection
    • UI\Window::hasMargin - Margin Detection
    • UI\Window::isFullScreen - Full Screen Detection
    • UI\Window::msg - Show Message Box
    • UI\Window::onClosing - Closing Callback
    • UI\Window::open - Open Dialog
    • UI\Window::save - Save Dialog
    • UI\Window::setBorders - Border Use
    • UI\Window::setFullScreen - Full Screen Use
    • UI\Window::setMargin - Margin Use
    • UI\Window::setSize - Set Size
    • UI\Window::setTitle - Window Title
    • UI\Window::__construct - Construct a new Window
    • uksort - Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.
    • umask - Modificar a umask atual
    • uniqid - Gera um ID único
    • UnitEnum::cases - Gera uma lista de casos de uma enumeração
    • unixtojd - Converte um timestamp Unix para um dia Juliano
    • unlink - Apaga um arquivo
    • unpack - Desempacota dados de uma string binária
    • unregister_tick_function - Desregistra uma função executada a cada instante
    • unserialize - Cria um valor PHP a partir de uma representação armazenada
    • unset - Remove a definição de uma variável informada
    • untaint - Untaint strings
    • uopz_add_function - Adds non-existent function or method
    • uopz_allow_exit - Allows control over disabled exit opcode
    • uopz_backup - Backup a function
    • uopz_compose - Compose a class
    • uopz_copy - Copy a function
    • uopz_delete - Delete a function
    • uopz_del_function - Deletes previously added function or method
    • uopz_extend - Extend a class at runtime
    • uopz_flags - Get or set flags on function or class
    • uopz_function - Creates a function at runtime
    • uopz_get_exit_status - Retrieve the last set exit status
    • uopz_get_hook - Gets previously set hook on function or method
    • uopz_get_mock - Get the current mock for a class
    • uopz_get_property - Gets value of class or instance property
    • uopz_get_return - Gets a previous set return value for a function
    • uopz_get_static - Gets the static variables from function or method scope
    • uopz_implement - Implements an interface at runtime
    • uopz_overload - Overload a VM opcode
    • uopz_redefine - Redefine a constant
    • uopz_rename - Rename a function at runtime
    • uopz_restore - Restore a previously backed up function
    • uopz_set_hook - Sets hook to execute when entering a function or method
    • uopz_set_mock - Use mock instead of class for new objects
    • uopz_set_property - Sets value of existing class or instance property
    • uopz_set_return - Provide a return value for an existing function
    • uopz_set_static - Sets the static variables in function or method scope
    • uopz_undefine - Undefine a constant
    • uopz_unset_hook - Removes previously set hook on function or method
    • uopz_unset_mock - Unset previously set mock
    • uopz_unset_return - Unsets a previously set return value for a function
    • urldecode - Decodifica uma URL codificada
    • urlencode - URL-encodes string
    • user_error - Sinônimo de trigger_error
    • use_soap_error_handler - Set whether to use the SOAP error handler
    • usleep - Atrasa a execução em microssegundos
    • usort - Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário
    • utf8_decode - Converts a string from UTF-8 to ISO-8859-1, replacing invalid or unrepresentable characters
    • utf8_encode - Converts a string from ISO-8859-1 to UTF-8
  • v
    • V8Js::executeString - Execute a string as Javascript code
    • V8Js::getExtensions - Return an array of registered extensions
    • V8Js::getPendingException - Return pending uncaught Javascript exception
    • V8Js::registerExtension - Register Javascript extensions for V8Js
    • V8Js::__construct - Construct a new V8Js object
    • V8JsException::getJsFileName - The getJsFileName purpose
    • V8JsException::getJsLineNumber - The getJsLineNumber purpose
    • V8JsException::getJsSourceLine - The getJsSourceLine purpose
    • V8JsException::getJsTrace - The getJsTrace purpose
    • variant::__construct - variant class constructor
    • variant_abs - Returns the absolute value of a variant
    • variant_add - "Adds" two variant values together and returns the result
    • variant_and - Performs a bitwise AND operation between two variants
    • variant_cast - Convert a variant into a new variant object of another type
    • variant_cat - Concatenates two variant values together and returns the result
    • variant_cmp - Compares two variants
    • variant_date_from_timestamp - Returns a variant date representation of a Unix timestamp
    • variant_date_to_timestamp - Converts a variant date/time value to Unix timestamp
    • variant_div - Returns the result from dividing two variants
    • variant_eqv - Performs a bitwise equivalence on two variants
    • variant_fix - Returns the integer portion of a variant
    • variant_get_type - Returns the type of a variant object
    • variant_idiv - Converts variants to integers and then returns the result from dividing them
    • variant_imp - Performs a bitwise implication on two variants
    • variant_int - Returns the integer portion of a variant
    • variant_mod - Divides two variants and returns only the remainder
    • variant_mul - Multiplies the values of the two variants
    • variant_neg - Performs logical negation on a variant
    • variant_not - Performs bitwise not negation on a variant
    • variant_or - Performs a logical disjunction on two variants
    • variant_pow - Returns the result of performing the power function with two variants
    • variant_round - Rounds a variant to the specified number of decimal places
    • variant_set - Assigns a new value for a variant object
    • variant_set_type - Convert a variant into another type "in-place"
    • variant_sub - Subtracts the value of the right variant from the left variant value
    • variant_xor - Performs a logical exclusion on two variants
    • VarnishAdmin::auth - Authenticate on a varnish instance
    • VarnishAdmin::ban - Ban URLs using a VCL expression
    • VarnishAdmin::banUrl - Ban an URL using a VCL expression
    • VarnishAdmin::clearPanic - Clear varnish instance panic messages
    • VarnishAdmin::connect - Connect to a varnish instance administration interface
    • VarnishAdmin::disconnect - Disconnect from a varnish instance administration interface
    • VarnishAdmin::getPanic - Get the last panic message on a varnish instance
    • VarnishAdmin::getParams - Fetch current varnish instance configuration parameters
    • VarnishAdmin::isRunning - Check if the varnish slave process is currently running
    • VarnishAdmin::setCompat - Set the class compat configuration param
    • VarnishAdmin::setHost - Set the class host configuration param
    • VarnishAdmin::setIdent - Set the class ident configuration param
    • VarnishAdmin::setParam - Set configuration param on the current varnish instance
    • VarnishAdmin::setPort - Set the class port configuration param
    • VarnishAdmin::setSecret - Set the class secret configuration param
    • VarnishAdmin::setTimeout - Set the class timeout configuration param
    • VarnishAdmin::start - Start varnish worker process
    • VarnishAdmin::stop - Stop varnish worker process
    • VarnishAdmin::__construct - VarnishAdmin constructor
    • VarnishLog::getLine - Get next log line
    • VarnishLog::getTagName - Get the log tag string representation by its index
    • VarnishLog::__construct - Varnishlog constructor
    • VarnishStat::getSnapshot - Get the current varnish instance statistics snapshot
    • VarnishStat::__construct - VarnishStat constructor
    • var_dump - Despeja na saída informações sobre uma variável
    • var_export - Mostra ou retorna uma representação string analisável de uma variável
    • var_representation - Returns a short, readable, parsable string representation of a variable
    • version_compare - Compares two "PHP-standardized" version number strings
    • vfprintf - Escreve uma string formatada para um fluxo
    • virtual - Realiza uma sub-requisição Apache
    • vprintf - Output a formatted string
    • vsprintf - Return a formatted string
    • Vtiful\Kernel\Excel::addSheet - Vtiful\Kernel\Excel addSheet
    • Vtiful\Kernel\Excel::autoFilter - Vtiful\Kernel\Excel autoFilter
    • Vtiful\Kernel\Excel::constMemory - Vtiful\Kernel\Excel constMemory
    • Vtiful\Kernel\Excel::data - Vtiful\Kernel\Excel data
    • Vtiful\Kernel\Excel::fileName - Vtiful\Kernel\Excel fileName
    • Vtiful\Kernel\Excel::getHandle - Vtiful\Kernel\Excel getHandle
    • Vtiful\Kernel\Excel::header - Vtiful\Kernel\Excel header
    • Vtiful\Kernel\Excel::insertFormula - Vtiful\Kernel\Excel insertFormula
    • Vtiful\Kernel\Excel::insertImage - Vtiful\Kernel\Excel insertImage
    • Vtiful\Kernel\Excel::insertText - Vtiful\Kernel\Excel insertText
    • Vtiful\Kernel\Excel::mergeCells - Vtiful\Kernel\Excel mergeCells
    • Vtiful\Kernel\Excel::output - Vtiful\Kernel\Excel output
    • Vtiful\Kernel\Excel::setColumn - Vtiful\Kernel\Excel setColumn
    • Vtiful\Kernel\Excel::setRow - Vtiful\Kernel\Excel setRow
    • Vtiful\Kernel\Excel::__construct - Vtiful\Kernel\Excel constructor
    • Vtiful\Kernel\Format::align - Vtiful\Kernel\Format align
    • Vtiful\Kernel\Format::bold - Vtiful\Kernel\Format bold
    • Vtiful\Kernel\Format::italic - Vtiful\Kernel\Format italic
    • Vtiful\Kernel\Format::underline - Vtiful\Kernel\Format underline
  • w
    • Warning::__construct - Warning constructor
    • wddx_add_vars - Add variables to a WDDX packet with the specified ID
    • wddx_deserialize - Desserializa um pacote WDDX
    • wddx_packet_end - Finaliza um pacote WDDX com o ID especificado
    • wddx_packet_start - Inicializa um novo pacote WDDX com uma estrutura dentro dele
    • wddx_serialize_value - Serializa um único valor em um pacote WDDX
    • wddx_serialize_vars - Serializa variáveis em um pacote WDDX
    • WeakMap::count - Conta o número de entradas ativas no mapa
    • WeakMap::getIterator - Obtém um iderador externo
    • WeakMap::offsetExists - Verifica se um certo objeto está no mapa
    • WeakMap::offsetGet - Retorna o valor apontado por um certo objeto
    • WeakMap::offsetSet - Atualiza o mapa com um novo par chave-valor
    • WeakMap::offsetUnset - Remove uma entrada do mapa
    • WeakReference::create - Cria uma nova referência fraca
    • WeakReference::get - Obtém um objeto fracamente referenciado
    • WeakReference::__construct - Construtor que desabilita a instanciação
    • win32_continue_service - Resumes a paused service
    • win32_create_service - Creates a new service entry in the SCM database
    • win32_delete_service - Deletes a service entry from the SCM database
    • win32_get_last_control_message - Returns the last control message that was sent to this service
    • win32_pause_service - Pauses a service
    • win32_query_service_status - Queries the status of a service
    • win32_send_custom_control - Send a custom control to the service
    • win32_set_service_exit_code - Define or return the exit code for the current running service
    • win32_set_service_exit_mode - Define or return the exit mode for the current running service
    • win32_set_service_status - Update the service status
    • win32_start_service - Starts a service
    • win32_start_service_ctrl_dispatcher - Registers the script with the SCM, so that it can act as the service with the given name
    • win32_stop_service - Stops a service
    • wincache_fcache_fileinfo - Retrieves information about files cached in the file cache
    • wincache_fcache_meminfo - Retrieves information about file cache memory usage
    • wincache_lock - Acquires an exclusive lock on a given key
    • wincache_ocache_fileinfo - Retrieves information about files cached in the opcode cache
    • wincache_ocache_meminfo - Retrieves information about opcode cache memory usage
    • wincache_refresh_if_changed - Refreshes the cache entries for the cached files
    • wincache_rplist_fileinfo - Retrieves information about resolve file path cache
    • wincache_rplist_meminfo - Retrieves information about memory usage by the resolve file path cache
    • wincache_scache_info - Retrieves information about files cached in the session cache
    • wincache_scache_meminfo - Retrieves information about session cache memory usage
    • wincache_ucache_add - Adds a variable in user cache only if variable does not already exist in the cache
    • wincache_ucache_cas - Compares the variable with old value and assigns new value to it
    • wincache_ucache_clear - Deletes entire content of the user cache
    • wincache_ucache_dec - Decrements the value associated with the key
    • wincache_ucache_delete - Deletes variables from the user cache
    • wincache_ucache_exists - Checks if a variable exists in the user cache
    • wincache_ucache_get - Gets a variable stored in the user cache
    • wincache_ucache_inc - Increments the value associated with the key
    • wincache_ucache_info - Retrieves information about data stored in the user cache
    • wincache_ucache_meminfo - Retrieves information about user cache memory usage
    • wincache_ucache_set - Adds a variable in user cache and overwrites a variable if it already exists in the cache
    • wincache_unlock - Releases an exclusive lock on a given key
    • wkhtmltox\Image\Converter::convert - Perform Image conversion
    • wkhtmltox\Image\Converter::getVersion - Determine version of Converter
    • wkhtmltox\Image\Converter::__construct - Create a new Image converter
    • wkhtmltox\PDF\Converter::add - Add an object for conversion
    • wkhtmltox\PDF\Converter::convert - Perform PDF conversion
    • wkhtmltox\PDF\Converter::getVersion - Determine version of Converter
    • wkhtmltox\PDF\Converter::__construct - Create a new PDF converter
    • wkhtmltox\PDF\Object::__construct - Create a new PDF Object
    • wordwrap - Quebra uma string em um dado número de caracteres
    • Worker::collect - Collect references to completed tasks
    • Worker::getStacked - Gets the remaining stack size
    • Worker::isShutdown - State Detection
    • Worker::shutdown - Shutdown the worker
    • Worker::stack - Stacking work
    • Worker::unstack - Unstacking work
  • x
    • xattr_get - Get an extended attribute
    • xattr_list - Get a list of extended attributes
    • xattr_remove - Remove an extended attribute
    • xattr_set - Set an extended attribute
    • xattr_supported - Check if filesystem supports extended attributes
    • xdiff_file_bdiff - Make binary diff of two files
    • xdiff_file_bdiff_size - Read a size of file created by applying a binary diff
    • xdiff_file_bpatch - Patch a file with a binary diff
    • xdiff_file_diff - Make unified diff of two files
    • xdiff_file_diff_binary - Sinônimo de xdiff_file_bdiff
    • xdiff_file_merge3 - Merge 3 files into one
    • xdiff_file_patch - Patch a file with an unified diff
    • xdiff_file_patch_binary - Sinônimo de xdiff_file_bpatch
    • xdiff_file_rabdiff - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
    • xdiff_string_bdiff - Make binary diff of two strings
    • xdiff_string_bdiff_size - Read a size of file created by applying a binary diff
    • xdiff_string_bpatch - Patch a string with a binary diff
    • xdiff_string_diff - Make unified diff of two strings
    • xdiff_string_diff_binary - Sinônimo de xdiff_string_bdiff
    • xdiff_string_merge3 - Merge 3 strings into one
    • xdiff_string_patch - Patch a string with an unified diff
    • xdiff_string_patch_binary - Sinônimo de xdiff_string_bpatch
    • xdiff_string_rabdiff - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm
    • xhprof_disable - Stops xhprof profiler
    • xhprof_enable - Start xhprof profiler
    • xhprof_sample_disable - Stops xhprof sample profiler
    • xhprof_sample_enable - Start XHProf profiling in sampling mode
    • XMLDiff\Base::diff - Produce diff of two XML documents
    • XMLDiff\Base::merge - Produce new XML document based on diff
    • XMLDiff\Base::__construct - Constructor
    • XMLDiff\DOM::diff - Diff two DOMDocument objects
    • XMLDiff\DOM::merge - Produce merged DOMDocument
    • XMLDiff\File::diff - Diff two XML files
    • XMLDiff\File::merge - Produce merged XML document
    • XMLDiff\Memory::diff - Diff two XML documents
    • XMLDiff\Memory::merge - Produce merged XML document
    • XMLReader::close - Close the XMLReader input
    • XMLReader::expand - Returns a copy of the current node as a DOM object
    • XMLReader::getAttribute - Get the value of a named attribute
    • XMLReader::getAttributeNo - Get the value of an attribute by index
    • XMLReader::getAttributeNs - Get the value of an attribute by localname and URI
    • XMLReader::getParserProperty - Indicates if specified property has been set
    • XMLReader::isValid - Indicates if the parsed document is valid
    • XMLReader::lookupNamespace - Lookup namespace for a prefix
    • XMLReader::moveToAttribute - Move cursor to a named attribute
    • XMLReader::moveToAttributeNo - Move cursor to an attribute by index
    • XMLReader::moveToAttributeNs - Move cursor to a named attribute
    • XMLReader::moveToElement - Position cursor on the parent Element of current Attribute
    • XMLReader::moveToFirstAttribute - Position cursor on the first Attribute
    • XMLReader::moveToNextAttribute - Position cursor on the next Attribute
    • XMLReader::next - Move cursor to next node skipping all subtrees
    • XMLReader::open - Set the URI containing the XML to parse
    • XMLReader::read - Move to next node in document
    • XMLReader::readInnerXml - Retrieve XML from current node
    • XMLReader::readOuterXml - Retrieve XML from current node, including itself
    • XMLReader::readString - Reads the contents of the current node as a string
    • XMLReader::setParserProperty - Set parser options
    • XMLReader::setRelaxNGSchema - Set the filename or URI for a RelaxNG Schema
    • XMLReader::setRelaxNGSchemaSource - Set the data containing a RelaxNG Schema
    • XMLReader::setSchema - Validate document against XSD
    • XMLReader::XML - Set the data containing the XML to parse
    • xmlrpc_decode - Decodifica XML para tipos nativos do PHP
    • xmlrpc_decode_request - Decodifica XML para tipos nativos do PHP
    • xmlrpc_encode - Gera XML para um valor do PHP
    • xmlrpc_encode_request - Gera XML para uma requisição de método
    • xmlrpc_get_type - Obtém o tipo XML-RPC para um valor PHP
    • xmlrpc_is_fault - Determina se um valor de array representa uma falha XML-RPC
    • xmlrpc_parse_method_descriptions - Decodifica XML e gera uma lista de descrição de métodos
    • xmlrpc_server_add_introspection_data - Adiciona documentação de introspecção
    • xmlrpc_server_call_method - Trata requisiçães de XML e chamadas de métodos
    • xmlrpc_server_create - Cria um servidor xmlrpc
    • xmlrpc_server_destroy - Destrói recursos de servidor
    • xmlrpc_server_register_introspection_callback - Registra uma função do PHP para gerar documentação
    • xmlrpc_server_register_method - Registra uma função do PHP para o método com nome method_name
    • xmlrpc_set_type - Sets xmlrpc type, base64 or datetime, for a PHP string value
    • XMLWriter::endAttribute - End attribute
    • XMLWriter::endCdata - End current CDATA
    • XMLWriter::endComment - Create end comment
    • XMLWriter::endDocument - End current document
    • XMLWriter::endDtd - End current DTD
    • XMLWriter::endDtdAttlist - End current DTD AttList
    • XMLWriter::endDtdElement - End current DTD element
    • XMLWriter::endDtdEntity - End current DTD Entity
    • XMLWriter::endElement - End current element
    • XMLWriter::endPi - End current PI
    • XMLWriter::flush - Flush current buffer
    • XMLWriter::fullEndElement - End current element
    • XMLWriter::openMemory - Create new xmlwriter using memory for string output
    • XMLWriter::openUri - Create new xmlwriter using source uri for output
    • XMLWriter::outputMemory - Returns current buffer
    • XMLWriter::setIndent - Toggle indentation on/off
    • XMLWriter::setIndentString - Set string used for indenting
    • XMLWriter::startAttribute - Create start attribute
    • XMLWriter::startAttributeNs - Create start namespaced attribute
    • XMLWriter::startCdata - Create start CDATA tag
    • XMLWriter::startComment - Create start comment
    • XMLWriter::startDocument - Create document tag
    • XMLWriter::startDtd - Create start DTD tag
    • XMLWriter::startDtdAttlist - Create start DTD AttList
    • XMLWriter::startDtdElement - Create start DTD element
    • XMLWriter::startDtdEntity - Create start DTD Entity
    • XMLWriter::startElement - Create start element tag
    • XMLWriter::startElementNs - Create start namespaced element tag
    • XMLWriter::startPi - Create start PI tag
    • XMLWriter::text - Write text
    • XMLWriter::writeAttribute - Write full attribute
    • XMLWriter::writeAttributeNs - Write full namespaced attribute
    • XMLWriter::writeCdata - Write full CDATA tag
    • XMLWriter::writeComment - Write full comment tag
    • XMLWriter::writeDtd - Write full DTD tag
    • XMLWriter::writeDtdAttlist - Write full DTD AttList tag
    • XMLWriter::writeDtdElement - Write full DTD element tag
    • XMLWriter::writeDtdEntity - Write full DTD Entity tag
    • XMLWriter::writeElement - Write full element tag
    • XMLWriter::writeElementNs - Write full namespaced element tag
    • XMLWriter::writePi - Writes a PI
    • XMLWriter::writeRaw - Write a raw XML text
    • xml_error_string - Obtém uma string de erro do analisador XML
    • xml_get_current_byte_index - Get current byte index for an XML parser
    • xml_get_current_column_number - Get current column number for an XML parser
    • xml_get_current_line_number - Get current line number for an XML parser
    • xml_get_error_code - Obtém um código de erro do analisador XML
    • xml_parse - Start parsing an XML document
    • xml_parser_create - Cria um analisador XML
    • xml_parser_create_ns - Cria um analisador XML com suporte a espaço de nomes
    • xml_parser_free - Libera um analisador XML
    • xml_parser_get_option - Obtém as opções de um analisador XML
    • xml_parser_set_option - Define opções em um analisador XML
    • xml_parse_into_struct - Analisa dados XML dentro de uma estrutura de array
    • xml_set_character_data_handler - Set up character data handler
    • xml_set_default_handler - Set up default handler
    • xml_set_element_handler - Set up start and end element handlers
    • xml_set_end_namespace_decl_handler - Set up end namespace declaration handler
    • xml_set_external_entity_ref_handler - Set up external entity reference handler
    • xml_set_notation_decl_handler - Set up notation declaration handler
    • xml_set_object - Use XML Parser within an object
    • xml_set_processing_instruction_handler - Set up processing instruction (PI) handler
    • xml_set_start_namespace_decl_handler - Set up start namespace declaration handler
    • xml_set_unparsed_entity_decl_handler - Set up unparsed entity declaration handler
    • XSLTProcessor::getParameter - Obtém o valor de um parâmetro
    • XSLTProcessor::getSecurityPrefs - Obtém as preferências de segurança
    • XSLTProcessor::hasExsltSupport - Verifica se o PHP tem suporte a EXSLT
    • XSLTProcessor::importStylesheet - Importa folha de estilos
    • XSLTProcessor::registerPHPFunctions - Habilita o uso de funções do PHP como funções XSLT
    • XSLTProcessor::removeParameter - Remove parâmetro
    • XSLTProcessor::setParameter - Define um valor para um parâmetro
    • XSLTProcessor::setProfiling - Define o arquivo de saída de perfil
    • XSLTProcessor::setSecurityPrefs - Define preferências de segurança
    • XSLTProcessor::transformToDoc - Transforma em um documento
    • XSLTProcessor::transformToURI - Transforma em URI
    • XSLTProcessor::transformToXml - Transforma em XML
    • XSLTProcessor::__construct - Cria um novo objeto XSLTProcessor
  • y
    • Yac::add - Store into cache
    • Yac::delete - Remove items from cache
    • Yac::dump - Dump cache
    • Yac::flush - Flush the cache
    • Yac::get - Retrieve values from cache
    • Yac::info - Status of cache
    • Yac::set - Store into cache
    • Yac::__construct - Constructor
    • Yac::__get - Getter
    • Yac::__set - Setter
    • Yaconf::get - Retrieve a item
    • Yaconf::has - Determine if a item exists
    • Yaf_Action_Abstract::execute - Action entry point
    • Yaf_Action_Abstract::getController - Retrieve controller object
    • Yaf_Action_Abstract::getControllerName - Get controller name
    • Yaf_Application::app - Retrieve an Application instance
    • Yaf_Application::bootstrap - Call bootstrap
    • Yaf_Application::clearLastError - Clear the last error info
    • Yaf_Application::environ - Retrive environ
    • Yaf_Application::execute - Execute a callback
    • Yaf_Application::getAppDirectory - Get the application directory
    • Yaf_Application::getConfig - Retrive the config instance
    • Yaf_Application::getDispatcher - Get Yaf_Dispatcher instance
    • Yaf_Application::getLastErrorMsg - Get message of the last occurred error
    • Yaf_Application::getLastErrorNo - Get code of last occurred error
    • Yaf_Application::getModules - Get defined module names
    • Yaf_Application::run - Start Yaf_Application
    • Yaf_Application::setAppDirectory - Change the application directory
    • Yaf_Application::__construct - Yaf_Application constructor
    • Yaf_Application::__destruct - The __destruct purpose
    • Yaf_Config_Abstract::get - Getter
    • Yaf_Config_Abstract::readonly - Find a config whether readonly
    • Yaf_Config_Abstract::set - Setter
    • Yaf_Config_Abstract::toArray - Cast to array
    • Yaf_Config_Ini::count - Count all elements in Yaf_Config.ini
    • Yaf_Config_Ini::current - Retrieve the current value
    • Yaf_Config_Ini::key - Fetch current element's key
    • Yaf_Config_Ini::next - Advance the internal pointer
    • Yaf_Config_Ini::offsetExists - The offsetExists purpose
    • Yaf_Config_Ini::offsetGet - The offsetGet purpose
    • Yaf_Config_Ini::offsetSet - The offsetSet purpose
    • Yaf_Config_Ini::offsetUnset - The offsetUnset purpose
    • Yaf_Config_Ini::readonly - The readonly purpose
    • Yaf_Config_Ini::rewind - The rewind purpose
    • Yaf_Config_Ini::toArray - Return config as a PHP array
    • Yaf_Config_Ini::valid - The valid purpose
    • Yaf_Config_Ini::__construct - Yaf_Config_Ini constructor
    • Yaf_Config_Ini::__get - Retrieve a element
    • Yaf_Config_Ini::__isset - Determine if a key is exists
    • Yaf_Config_Ini::__set - The __set purpose
    • Yaf_Config_Simple::count - The count purpose
    • Yaf_Config_Simple::current - The current purpose
    • Yaf_Config_Simple::key - The key purpose
    • Yaf_Config_Simple::next - The next purpose
    • Yaf_Config_Simple::offsetExists - The offsetExists purpose
    • Yaf_Config_Simple::offsetGet - The offsetGet purpose
    • Yaf_Config_Simple::offsetSet - The offsetSet purpose
    • Yaf_Config_Simple::offsetUnset - The offsetUnset purpose
    • Yaf_Config_Simple::readonly - The readonly purpose
    • Yaf_Config_Simple::rewind - The rewind purpose
    • Yaf_Config_Simple::toArray - Returns a PHP array
    • Yaf_Config_Simple::valid - The valid purpose
    • Yaf_Config_Simple::__construct - The __construct purpose
    • Yaf_Config_Simple::__get - The __get purpose
    • Yaf_Config_Simple::__isset - The __isset purpose
    • Yaf_Config_Simple::__set - The __set purpose
    • Yaf_Controller_Abstract::display - The display purpose
    • Yaf_Controller_Abstract::forward - Forward to another action
    • Yaf_Controller_Abstract::getInvokeArg - The getInvokeArg purpose
    • Yaf_Controller_Abstract::getInvokeArgs - The getInvokeArgs purpose
    • Yaf_Controller_Abstract::getModuleName - Get module name
    • Yaf_Controller_Abstract::getName - Get self name
    • Yaf_Controller_Abstract::getRequest - Retrieve current request object
    • Yaf_Controller_Abstract::getResponse - Retrieve current response object
    • Yaf_Controller_Abstract::getView - Retrieve the view engine
    • Yaf_Controller_Abstract::getViewpath - The getViewpath purpose
    • Yaf_Controller_Abstract::init - Controller initializer
    • Yaf_Controller_Abstract::initView - The initView purpose
    • Yaf_Controller_Abstract::redirect - Redirect to a URL
    • Yaf_Controller_Abstract::render - Render view template
    • Yaf_Controller_Abstract::setViewpath - The setViewpath purpose
    • Yaf_Controller_Abstract::__construct - Yaf_Controller_Abstract constructor
    • Yaf_Dispatcher::autoRender - Switch on/off autorendering
    • Yaf_Dispatcher::catchException - Switch on/off exception catching
    • Yaf_Dispatcher::disableView - Disable view rendering
    • Yaf_Dispatcher::dispatch - Dispatch a request
    • Yaf_Dispatcher::enableView - Enable view rendering
    • Yaf_Dispatcher::flushInstantly - Switch on/off the instant flushing
    • Yaf_Dispatcher::getApplication - Retrieve the application
    • Yaf_Dispatcher::getDefaultAction - Retrive the default action name
    • Yaf_Dispatcher::getDefaultController - Retrive the default controller name
    • Yaf_Dispatcher::getDefaultModule - Retrive the default module name
    • Yaf_Dispatcher::getInstance - Retrive the dispatcher instance
    • Yaf_Dispatcher::getRequest - Retrive the request instance
    • Yaf_Dispatcher::getRouter - Retrive router instance
    • Yaf_Dispatcher::initView - Initialize view and return it
    • Yaf_Dispatcher::registerPlugin - Register a plugin
    • Yaf_Dispatcher::returnResponse - The returnResponse purpose
    • Yaf_Dispatcher::setDefaultAction - Change default action name
    • Yaf_Dispatcher::setDefaultController - Change default controller name
    • Yaf_Dispatcher::setDefaultModule - Change default module name
    • Yaf_Dispatcher::setErrorHandler - Set error handler
    • Yaf_Dispatcher::setRequest - The setRequest purpose
    • Yaf_Dispatcher::setView - Set a custom view engine
    • Yaf_Dispatcher::throwException - Switch on/off exception throwing
    • Yaf_Dispatcher::__construct - Yaf_Dispatcher constructor
    • Yaf_Exception::getPrevious - The getPrevious purpose
    • Yaf_Exception::__construct - The __construct purpose
    • Yaf_Loader::autoload - The autoload purpose
    • Yaf_Loader::clearLocalNamespace - The clearLocalNamespace purpose
    • Yaf_Loader::getInstance - The getInstance purpose
    • Yaf_Loader::getLibraryPath - Get the library path
    • Yaf_Loader::getLocalNamespace - Retrive all register namespaces info
    • Yaf_Loader::getNamespacePath - Retieve path of a registered namespace
    • Yaf_Loader::import - The import purpose
    • Yaf_Loader::isLocalName - The isLocalName purpose
    • Yaf_Loader::registerLocalNamespace - Register local class prefix
    • Yaf_Loader::registerNamespace - Register namespace with searching path
    • Yaf_Loader::setLibraryPath - Change the library path
    • Yaf_Loader::__construct - The __construct purpose
    • Yaf_Plugin_Abstract::dispatchLoopShutdown - The dispatchLoopShutdown purpose
    • Yaf_Plugin_Abstract::dispatchLoopStartup - Hook before dispatch loop
    • Yaf_Plugin_Abstract::postDispatch - The postDispatch purpose
    • Yaf_Plugin_Abstract::preDispatch - The preDispatch purpose
    • Yaf_Plugin_Abstract::preResponse - The preResponse purpose
    • Yaf_Plugin_Abstract::routerShutdown - The routerShutdown purpose
    • Yaf_Plugin_Abstract::routerStartup - RouterStartup hook
    • Yaf_Registry::del - Remove an item from registry
    • Yaf_Registry::get - Retrieve an item from registry
    • Yaf_Registry::has - Check whether an item exists
    • Yaf_Registry::set - Add an item into registry
    • Yaf_Registry::__construct - Yaf_Registry implements singleton
    • Yaf_Request_Abstract::clearParams - Remove all params
    • Yaf_Request_Abstract::getActionName - The getActionName purpose
    • Yaf_Request_Abstract::getBaseUri - The getBaseUri purpose
    • Yaf_Request_Abstract::getControllerName - The getControllerName purpose
    • Yaf_Request_Abstract::getEnv - Retrieve ENV varialbe
    • Yaf_Request_Abstract::getException - The getException purpose
    • Yaf_Request_Abstract::getLanguage - Retrieve client's preferred language
    • Yaf_Request_Abstract::getMethod - Retrieve the request method
    • Yaf_Request_Abstract::getModuleName - The getModuleName purpose
    • Yaf_Request_Abstract::getParam - Retrieve calling parameter
    • Yaf_Request_Abstract::getParams - Retrieve all calling parameters
    • Yaf_Request_Abstract::getRequestUri - The getRequestUri purpose
    • Yaf_Request_Abstract::getServer - Retrieve SERVER variable
    • Yaf_Request_Abstract::isCli - Determine if request is CLI request
    • Yaf_Request_Abstract::isDispatched - Determin if the request is dispatched
    • Yaf_Request_Abstract::isGet - Determine if request is GET request
    • Yaf_Request_Abstract::isHead - Determine if request is HEAD request
    • Yaf_Request_Abstract::isOptions - Determine if request is OPTIONS request
    • Yaf_Request_Abstract::isPost - Determine if request is POST request
    • Yaf_Request_Abstract::isPut - Determine if request is PUT request
    • Yaf_Request_Abstract::isRouted - Determin if request has been routed
    • Yaf_Request_Abstract::isXmlHttpRequest - Determine if request is AJAX request
    • Yaf_Request_Abstract::setActionName - Set action name
    • Yaf_Request_Abstract::setBaseUri - Set base URI
    • Yaf_Request_Abstract::setControllerName - Set controller name
    • Yaf_Request_Abstract::setDispatched - The setDispatched purpose
    • Yaf_Request_Abstract::setModuleName - Set module name
    • Yaf_Request_Abstract::setParam - Set a calling parameter to a request
    • Yaf_Request_Abstract::setRequestUri - The setRequestUri purpose
    • Yaf_Request_Abstract::setRouted - The setRouted purpose
    • Yaf_Request_Http::get - Retrieve variable from client
    • Yaf_Request_Http::getCookie - Retrieve Cookie variable
    • Yaf_Request_Http::getFiles - The getFiles purpose
    • Yaf_Request_Http::getPost - Retrieve POST variable
    • Yaf_Request_Http::getQuery - Fetch a query parameter
    • Yaf_Request_Http::getRaw - Retrieve Raw request body
    • Yaf_Request_Http::getRequest - The getRequest purpose
    • Yaf_Request_Http::isXmlHttpRequest - Determin if request is Ajax Request
    • Yaf_Request_Http::__construct - Constructor of Yaf_Request_Http
    • Yaf_Request_Simple::get - The get purpose
    • Yaf_Request_Simple::getCookie - The getCookie purpose
    • Yaf_Request_Simple::getFiles - The getFiles purpose
    • Yaf_Request_Simple::getPost - The getPost purpose
    • Yaf_Request_Simple::getQuery - The getQuery purpose
    • Yaf_Request_Simple::getRequest - The getRequest purpose
    • Yaf_Request_Simple::isXmlHttpRequest - Determin if request is AJAX request
    • Yaf_Request_Simple::__construct - Constructor of Yaf_Request_Simple
    • Yaf_Response_Abstract::appendBody - Append to response body
    • Yaf_Response_Abstract::clearBody - Discard all exists response body
    • Yaf_Response_Abstract::clearHeaders - Discard all set headers
    • Yaf_Response_Abstract::getBody - Retrieve a exists content
    • Yaf_Response_Abstract::getHeader - The getHeader purpose
    • Yaf_Response_Abstract::prependBody - The prependBody purpose
    • Yaf_Response_Abstract::response - Send response
    • Yaf_Response_Abstract::setAllHeaders - The setAllHeaders purpose
    • Yaf_Response_Abstract::setBody - Set content to response
    • Yaf_Response_Abstract::setHeader - Set reponse header
    • Yaf_Response_Abstract::setRedirect - The setRedirect purpose
    • Yaf_Response_Abstract::__construct - The __construct purpose
    • Yaf_Response_Abstract::__destruct - The __destruct purpose
    • Yaf_Response_Abstract::__toString - Retrieve all bodys as string
    • Yaf_Router::addConfig - Add config-defined routes into Router
    • Yaf_Router::addRoute - Add new Route into Router
    • Yaf_Router::getCurrentRoute - Get the effective route name
    • Yaf_Router::getRoute - Retrieve a route by name
    • Yaf_Router::getRoutes - Retrieve registered routes
    • Yaf_Router::route - The route purpose
    • Yaf_Router::__construct - Yaf_Router constructor
    • Yaf_Route_Interface::assemble - Assemble a request
    • Yaf_Route_Interface::route - Route a request
    • Yaf_Route_Map::assemble - Assemble a url
    • Yaf_Route_Map::route - The route purpose
    • Yaf_Route_Map::__construct - The __construct purpose
    • Yaf_Route_Regex::assemble - Assemble a url
    • Yaf_Route_Regex::route - The route purpose
    • Yaf_Route_Regex::__construct - Yaf_Route_Regex constructor
    • Yaf_Route_Rewrite::assemble - Assemble a url
    • Yaf_Route_Rewrite::route - The route purpose
    • Yaf_Route_Rewrite::__construct - Yaf_Route_Rewrite constructor
    • Yaf_Route_Simple::assemble - Assemble a url
    • Yaf_Route_Simple::route - Route a request
    • Yaf_Route_Simple::__construct - Yaf_Route_Simple constructor
    • Yaf_Route_Static::assemble - Assemble a url
    • Yaf_Route_Static::match - The match purpose
    • Yaf_Route_Static::route - Route a request
    • Yaf_Route_Supervar::assemble - Assemble a url
    • Yaf_Route_Supervar::route - The route purpose
    • Yaf_Route_Supervar::__construct - The __construct purpose
    • Yaf_Session::count - The count purpose
    • Yaf_Session::current - The current purpose
    • Yaf_Session::del - The del purpose
    • Yaf_Session::getInstance - The getInstance purpose
    • Yaf_Session::has - The has purpose
    • Yaf_Session::key - The key purpose
    • Yaf_Session::next - The next purpose
    • Yaf_Session::offsetExists - The offsetExists purpose
    • Yaf_Session::offsetGet - The offsetGet purpose
    • Yaf_Session::offsetSet - The offsetSet purpose
    • Yaf_Session::offsetUnset - The offsetUnset purpose
    • Yaf_Session::rewind - The rewind purpose
    • Yaf_Session::start - The start purpose
    • Yaf_Session::valid - The valid purpose
    • Yaf_Session::__construct - Constructor of Yaf_Session
    • Yaf_Session::__get - The __get purpose
    • Yaf_Session::__isset - The __isset purpose
    • Yaf_Session::__set - The __set purpose
    • Yaf_Session::__unset - The __unset purpose
    • Yaf_View_Interface::assign - Assign value to View engine
    • Yaf_View_Interface::display - Render and output a template
    • Yaf_View_Interface::getScriptPath - The getScriptPath purpose
    • Yaf_View_Interface::render - Render a template
    • Yaf_View_Interface::setScriptPath - The setScriptPath purpose
    • Yaf_View_Simple::assign - Assign values
    • Yaf_View_Simple::assignRef - The assignRef purpose
    • Yaf_View_Simple::clear - Clear Assigned values
    • Yaf_View_Simple::display - Render and display
    • Yaf_View_Simple::eval - Render template
    • Yaf_View_Simple::getScriptPath - Get templates directory
    • Yaf_View_Simple::render - Render template
    • Yaf_View_Simple::setScriptPath - Set tempaltes directory
    • Yaf_View_Simple::__construct - Constructor of Yaf_View_Simple
    • Yaf_View_Simple::__get - Retrieve assigned variable
    • Yaf_View_Simple::__isset - The __isset purpose
    • Yaf_View_Simple::__set - Set value to engine
    • yaml_emit - Returns the YAML representation of a value
    • yaml_emit_file - Send the YAML representation of a value to a file
    • yaml_parse - Parse a YAML stream
    • yaml_parse_file - Parse a YAML stream from a file
    • yaml_parse_url - Parse a Yaml stream from a URL
    • Yar_Client::setOpt - Set calling contexts
    • Yar_Client::__call - Call service
    • Yar_Client::__construct - Create a client
    • Yar_Client_Exception::getType - Retrieve exception's type
    • Yar_Concurrent_Client::call - Register a concurrent call
    • Yar_Concurrent_Client::loop - Send all calls
    • Yar_Concurrent_Client::reset - Clean all registered calls
    • Yar_Server::handle - Start RPC Server
    • Yar_Server::__construct - Register a server
    • Yar_Server_Exception::getType - Retrieve exception's type
    • yaz_addinfo - Returns additional error information
    • yaz_ccl_conf - Configure CCL parser
    • yaz_ccl_parse - Invoke CCL Parser
    • yaz_close - Close YAZ connection
    • yaz_connect - Prepares for a connection to a Z39.50 server
    • 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_es - Prepares for an Extended Service Request
    • yaz_es_result - Inspects Extended Services Result
    • 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 a range of records to retrieve
    • yaz_record - Returns a record
    • yaz_scan - Prepares for a scan
    • yaz_scan_result - Returns Scan Response result
    • 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 - Wait for Z39.50 requests to complete
  • z
    • zend_thread_id - Returns a unique identifier for the current thread
    • zend_version - Obtém a versão do motor Zend atual
    • ZipArchive::addEmptyDir - Adiciona um novo diretório
    • ZipArchive::addFile - Adiciona um arquivo a um arquivo ZIP a partir do caminho fornecido
    • ZipArchive::addFromString - Adiciona um arquivo a um arquivo ZIP usando seu conteúdo
    • ZipArchive::addGlob - Adicionar arquivos de um diretório por padrão glob
    • ZipArchive::addPattern - Adiciona arquivos de um diretório por padrão PCRE
    • ZipArchive::clearError - Limpa a mensagem de erro de status, mensagens do sistema e/ou do zip
    • ZipArchive::close - Fecha o arquivo de arquivo ativo (aberto ou recém-criado)
    • ZipArchive::count - Conta o número de arquivos no arquivo
    • ZipArchive::deleteIndex - Exclui uma entrada no arquivo usando seu índice
    • ZipArchive::deleteName - Exclui uma entrada no arquivo usando seu nome
    • ZipArchive::extractTo - Extrai o conteúdo do arquivo
    • ZipArchive::getArchiveComment - Retorna o comentário do arquivo Zip
    • ZipArchive::getArchiveFlag - Retorna o valor de uma opção global do arquivo Zip
    • ZipArchive::getCommentIndex - Retorna o comentário de uma entrada usando o índice da entrada
    • ZipArchive::getCommentName - Retorna o comentário de uma entrada usando o nome da entrada
    • ZipArchive::getExternalAttributesIndex - Recupera os atributos externos de uma entrada definida pelo seu índice
    • ZipArchive::getExternalAttributesName - Recupera os atributos externos de uma entrada definida pelo seu nome
    • ZipArchive::getFromIndex - Retorna o conteúdo da entrada usando seu índice
    • ZipArchive::getFromName - Retorna o conteúdo da entrada usando seu nome
    • ZipArchive::getNameIndex - Retorna o nome de uma entrada usando seu índice
    • ZipArchive::getStatusString - Retorna a mensagem de erro de status, mensagens do sistema e/ou zip
    • ZipArchive::getStream - Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)
    • ZipArchive::getStreamIndex - Obtém um manipulador de arquivo para a entrada definida pelo seu índice (somente leitura)
    • ZipArchive::getStreamName - Obtém um manipulador de arquivo para a entrada definida pelo seu nome (somente leitura)
    • ZipArchive::isCompressionMethodSupported - Verifica se um método de compressão é suportado pelo libzip
    • ZipArchive::isEncryptionMethodSupported - Verifica se um método de criptografia é suportado pelo libzip
    • ZipArchive::locateName - Retorna o índice da entrada no arquivo compactado
    • ZipArchive::open - Abre um arquivo compactado ZIP
    • ZipArchive::registerCancelCallback - Registra um callback para permitir o cancelamento durante o fechamento do arquivo compactado.
    • ZipArchive::registerProgressCallback - Registrar um callback para fornecer atualizações durante o fechamento do arquivo compactado.
    • ZipArchive::renameIndex - Renomeia uma entrada definida pelo seu índice
    • ZipArchive::renameName - Renomeia uma entrada definida pelo seu nome
    • ZipArchive::replaceFile - Substitui um arquivo no arquivo ZIP por um caminho fornecido
    • ZipArchive::setArchiveComment - Define o comentário de um arquivo ZIP
    • ZipArchive::setArchiveFlag - Define uma opção global de um arquivo ZIP
    • ZipArchive::setCommentIndex - Define o comentário de uma entrada definida pelo seu índice
    • ZipArchive::setCommentName - Define o comentário de uma entrada definida pelo seu nome
    • ZipArchive::setCompressionIndex - Define o método de compressão de uma entrada definida pelo seu índice
    • ZipArchive::setCompressionName - Define o método de compressão de uma entrada definida pelo seu nome
    • ZipArchive::setEncryptionIndex - Define o método de criptografia de uma entrada definida pelo seu índice
    • ZipArchive::setEncryptionName - Define o método de criptografia de uma entrada definida pelo seu nome
    • ZipArchive::setExternalAttributesIndex - Define os atributos externos de uma entrada definida pelo seu índice
    • ZipArchive::setExternalAttributesName - Define os atributos externos de uma entrada definida pelo seu nome
    • ZipArchive::setMtimeIndex - Define o tempo de modificação de uma entrada definida pelo seu índice
    • ZipArchive::setMtimeName - Define o tempo de modificação de uma entrada definida pelo seu nome
    • ZipArchive::setPassword - Define a senha para o arquivo ZIP ativo
    • ZipArchive::statIndex - Obtenha os detalhes de uma entrada definida pelo seu índice
    • ZipArchive::statName - Obtém os detalhes de uma entrada definida pelo seu nome
    • ZipArchive::unchangeAll - Desfaz todas as alterações feitas no arquivo
    • ZipArchive::unchangeArchive - Reverte todas as alterações globais feitas no arquivo
    • ZipArchive::unchangeIndex - Reverte todas as alterações feitas a uma entrada no índice fornecido
    • ZipArchive::unchangeName - Reverte todas as alterações feitas a uma entrada com o nome fornecido
    • zip_close - Fecha um arquivo ZIP
    • zip_entry_close - Fecha o arquivo que está aberto
    • zip_entry_compressedsize - Obtém o tamanho comprimido do item
    • zip_entry_compressionmethod - Recupera qual o método de compressão foi utilizado no arquivo
    • zip_entry_filesize - Retorna o tamanho de um item de diretório
    • zip_entry_name - Retorna o nome do arquivo
    • zip_entry_open - Abre um arquivo para leitura
    • zip_entry_read - Obtém dados de um arquivo
    • zip_open - Abre um arquivo ZIP
    • zip_read - Lê o próximo item em um arquivo ZIP
    • zlib:// - Streams de compactação
    • zlib_decode - Descomprime qualquer dado codificado em raw/gzip/zlib
    • zlib_encode - Comprime dados com o codificador especificado
    • zlib_get_coding_type - Retorna o tipo de codificação para a compressão de saída
    • ZMQ::__construct - Construtor da classe ZMQ
    • ZMQContext::getOpt - Obtém uma opção de contexto
    • ZMQContext::getSocket - Cria um novo socket
    • ZMQContext::isPersistent - Retorna se o contexto é persistente
    • ZMQContext::setOpt - Define uma opção de socket
    • ZMQContext::__construct - Constrói um novo objeto ZMQContext
    • ZMQDevice::getIdleTimeout - Obtém o tempo limite de inatividade
    • ZMQDevice::getTimerTimeout - Obtém o tempo limite do temporizador
    • ZMQDevice::run - Executa o novo dispositivo
    • ZMQDevice::setIdleCallback - Define a função de retorno de inatividade
    • ZMQDevice::setIdleTimeout - Define o tempo limite de inatividade
    • ZMQDevice::setTimerCallback - Define a função de retorno do temporizador
    • ZMQDevice::setTimerTimeout - Define o tempo limite do temporizador
    • ZMQDevice::__construct - Constrói um novo dispositivo
    • ZMQPoll::add - Adiciona o item na lista de pesquisa
    • ZMQPoll::clear - Limpa a lista de consulta
    • ZMQPoll::count - Conta os itens na lista de consulta
    • ZMQPoll::getLastErrors - Obtém erros da consulta
    • ZMQPoll::poll - Consulta os itens
    • ZMQPoll::remove - Remove um item da lista de consulta
    • ZMQSocket::bind - Associa o socket
    • ZMQSocket::connect - Conecta o socket
    • ZMQSocket::disconnect - Desconecta um socket
    • ZMQSocket::getEndpoints - Obtém uma lista de destinos
    • ZMQSocket::getPersistentId - Obtém o id persistente
    • ZMQSocket::getSocketType - Retorna o tipo de socket
    • ZMQSocket::getSockOpt - Obtém a opção do socket
    • ZMQSocket::isPersistent - Se o socket é persistente
    • ZMQSocket::recv - Recebe uma mensagem
    • ZMQSocket::recvMulti - Recebe uma mensagem de partes múltiplas
    • ZMQSocket::send - Envia uma mensagem
    • ZMQSocket::sendmulti - Envia uma mensagem de múltiplas partes
    • ZMQSocket::setSockOpt - Define uma opção de socket
    • ZMQSocket::unbind - Desvincula o socket
    • ZMQSocket::__construct - Constrói um novo ZMQSocket
    • Zookeeper::addAuth - Specify application credentials
    • Zookeeper::close - Close the zookeeper handle and free up any resources
    • Zookeeper::connect - Create a handle to used communicate with zookeeper
    • Zookeeper::create - Create a node synchronously
    • Zookeeper::delete - Delete a node in zookeeper synchronously
    • Zookeeper::exists - Checks the existence of a node in zookeeper synchronously
    • Zookeeper::get - Gets the data associated with a node synchronously
    • Zookeeper::getAcl - Gets the acl associated with a node synchronously
    • Zookeeper::getChildren - Lists the children of a node synchronously
    • Zookeeper::getClientId - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getConfig - Get instance of ZookeeperConfig
    • Zookeeper::getRecvTimeout - Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
    • Zookeeper::getState - Get the state of the zookeeper connection
    • Zookeeper::isRecoverable - Checks if the current zookeeper connection state can be recovered
    • Zookeeper::set - Sets the data associated with a node
    • Zookeeper::setAcl - Sets the acl associated with a node synchronously
    • Zookeeper::setDebugLevel - Sets the debugging level for the library
    • Zookeeper::setDeterministicConnOrder - Enable/disable quorum endpoint order randomization
    • Zookeeper::setLogStream - Sets the stream to be used by the library for logging
    • Zookeeper::setWatcher - Set a watcher function
    • Zookeeper::__construct - Create a handle to used communicate with zookeeper
    • ZookeeperConfig::add - Add servers to the ensemble
    • ZookeeperConfig::get - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
    • ZookeeperConfig::remove - Remove servers from the ensemble
    • ZookeeperConfig::set - Change ZK cluster ensemble membership and roles of ensemble peers
    • zookeeper_dispatch - Calls callbacks for pending operations
  • _
    • __autoload - Tenta carregar uma classe indefinida
    • __halt_compiler - Para a execução do compilador


Lista de exemplos

Lista de todos os exemplos no manual

  • Example#0 - Um exemplo introdutório
  • Example#1 - Nosso primeiro script PHP: hello.php
  • Example#2 - Como obter informações sobre o PHP
  • Example#3 - Imprimindo uma variável (elemento do Array)
  • Example#4 - Exemplo utilizando estruturas de controle e funções
  • Example#5 - Mesclando entre os modos PHP e HTML
  • Example#6 - Um simples formulário HTML
  • Example#7 - Imprimindo dados de nosso formulário
  • Example#8 - lighttpd.conf parcial
  • Example#9 - Iniciando Respondedores FastCGI
  • Example#10 - Conectando a instâncias remotas de php-fastcgi
  • Example#11 - Exemplo de instalação de pacote no OpenBSD
  • Example#12 - Exemplo de instalação no Debian com Apache 2
  • Example#13 - Parando e iniciando o Apache depois do PHP instalado
  • Example#14 - Métodos listar pacotes adicionais do PHP
  • Example#15 - Instalando PHP com MySQL e cURL
  • Example#16 - Configuração recomendada do OpCache
  • Example#17 - Configuração WinCache recomendada
  • Example#18 - Linha de comando para configurar IIS e PHP
  • Example#19 - Alterações de Registro
  • Example#20 - PHP e Apache 2.x como controlador
  • Example#21 - PHP e Apache 2.x como CGI
  • Example#22 - Configure o Apache para executar PHP como FastCGI
  • Example#23 - Passando variáveis de ambiente e configurações do PHP para a rotina
  • Example#24 - definir as configurações de PHP no nginx.conf
  • Example#25 - A função phpinfo
  • Example#26 - php.ini Variáveis de ambiente
  • Example#27 - Exemplo de arquivo php.ini
  • Example#28 - Exemplo de configuração do Apache
  • Example#29 - Tags de Abertura e Fechamento do PHP
  • Example#30 - Escape avançado usando condições
  • Example#31 - Exemplo mostrando a tag de fechamento incluindo uma nova linha final
  • Example#32 - Literais inteiras
  • Example#33 - Overflow de inteiros em sistemas 32-bit
  • Example#34 - Overflow de inteiros em sistemas 64-bit
  • Example#35 - Exemplo Heredoc simples no PHP 7.3.0
  • Example#36 - Identificador de fechamento indentado diferente das linhas do corpo
  • Example#37 - Indentação diferente entre corpo e fechamento
  • Example#38 - Continuando uma expressão após o identificador de fechamento
  • Example#39 - Identificador de fechamento no corpo da string pode causar um ParseError
  • Example#40 - Exemplo inválido, anteriormente ao PHP 7.3.0
  • Example#41 - Exemplo válido, mesmo antes do PHP 7.3.0
  • Example#42 - Exemplo de delimitação de strings heredoc
  • Example#43 - Exemplo de Heredoc em argumentos
  • Example#44 - Utilizando o Heredoc na inicialização de valores estáticos
  • Example#45 - Usando aspas duplas no Heredoc
  • Example#46 - Exemplo de string em Nowdoc
  • Example#47 - Exemplo de Nowdoc, com variáveis
  • Example#48 - Exemplo de dado estático
  • Example#49 - Exemplo com sintaxe simples
  • Example#50 - Índices numéricos negativos
  • Example#51 - Alguns exemplos com strings
  • Example#52 - Exemplo de índices inválidos em strings
  • Example#53 - Um array simples
  • Example#54 - Exemplo de conversão de tipo e sobrescrita
  • Example#55 - Misturando int e string nas chaves
  • Example#56 - Arrays indexados sem chaves
  • Example#57 - Chaves em alguns elementos
  • Example#58 - Exemplo de sobrescrita e cast de tipo complexo
  • Example#59 - Acessando elementos do array
  • Example#60 - Referenciando elemento de um array
  • Example#61 - Expansão de arrays
  • Example#62 - Expansão de arrays com chaves duplicadas
  • Example#63 - Utilizando array()
  • Example#64 - Coleção
  • Example#65 - Alterando valores em um laço
  • Example#66 - Array baseado em 1
  • Example#67 - Preenchendo um array
  • Example#68 - Ordenando arrays
  • Example#69 - Arrays recursivos e multidimensionais
  • Example#70 - Exemplos de funções de callback
  • Example#71 - Exemplo de Callback utilizando uma Closure
  • Example#72 - Exemplo de tipo de retorno do gerador iterable
  • Example#73 - Parâmetros de passagem por referência digitados
  • Example#74 - Maneira antiga de tornar os argumentos anuláveis
  • Example#75 - Declaração de tipo de classe básica
  • Example#76 - Declaração de tipo de interface básica
  • Example#77 - Declaração de tipo de retorno básico
  • Example#78 - Retornando um objeto
  • Example#79 - Declaração de tipo de argumento anulável
  • Example#80 - Declaração de tipo de retorno anulável
  • Example#81 - Declaração de tipo de propriedade
  • Example#82 - Tipagem estrita para valores de argumentos
  • Example#83 - Tipagem coercitiva para valores de argumento
  • Example#84 - Tipagem estrita para valores de retorno
  • Example#85 - Exemplo de tipos que podem ser convertidos em tipos union
  • Example#86 - Valores padrões de variáveis não inicializadas
  • Example#87 - Usando global
  • Example#88 - Usando $GLOBALS no lugar de global
  • Example#89 - Exemplo demonstrando superglobals e escopos
  • Example#90 - Exemplo demonstrando a necessidade de variáveis estáticas
  • Example#91 - Exemplo de uso de variáveis estáticas
  • Example#92 - Variáveis estáticas em funções recursivas
  • Example#93 - Declarando variáveis estáticas
  • Example#94 - Uso de variáveis estáticas em métodos herdados
  • Example#95 - Exemplo de propriedade variável
  • Example#96 - Um formulário HTML simples
  • Example#97 - Acessando dados de um formulário HTML via POST
  • Example#98 - Variáveis de formulários mais complexos
  • Example#99 - Exemplo setcookie
  • Example#100 - Nomes de constantes válidos e inválidos
  • Example#101 - Definindo Constantes
  • Example#102 - Definindo Constantes usando a palavra-chave const
  • Example#103 - Associação
  • Example#104 - Ordem de avaliação não definida
  • Example#105 - +, - and . possuem a mesma precedência
  • Example#106 - Exemplo de incremento de string estilo PERL
  • Example#107 - Strings alfanuméricas convertida para float
  • Example#108 - Atribuição por referência
  • Example#109 - Operações bitwise AND, OR e XOR em inteiros
  • Example#110 - Operações de bit XOR em strings
  • Example#111 - Deslocamento de bits em inteiros
  • Example#112 - Comparações de boolean e null
  • Example#113 - Transcrição do padrão de comparação de array
  • Example#114 - Atribuindo um valor padrão
  • Example#115 - Comportamento não óbvio do ternário
  • Example#116 - Encadeamento de ternários curtos
  • Example#117 - Atribuindo um valor padrão
  • Example#118 - Aninhando o operador null coalescing
  • Example#119 - Ilustrando operadores lógicos
  • Example#120 - Comparando arrays
  • Example#121 - Usando instanceof com classes
  • Example#122 - Usando instanceof com herança
  • Example#123 - Usando instanceof para verificar se o objeto não é uma instância da classe
  • Example#124 - Usando instanceof para classe
  • Example#125 - Usando instanceof com outras variáveis
  • Example#126 - Utilizando instanceof para testar outras variáveis
  • Example#127 - Utilizando instanceof em constantes
  • Example#128 - Usando instanceof em expressões arbitrárias
  • Example#129 - Estrutura do switch
  • Example#130 - Basic match usage
  • Example#131 - Estrutura de uma expressão match
  • Example#132 - Exemplo de uma expressão match não tratada
  • Example#133 - Usando uma expressão match generalizada para ramificar com base em intervalos de inteiros
  • Example#134 - Usando uma expressão match generalizada para ramificar com base no conteúdo de strings
  • Example#135 - Exemplo de uso do Tick
  • Example#136 - Declarando o encoding do script.
  • Example#137 - Exemplo básico do construtor include
  • Example#138 - Inclusão em funções
  • Example#139 - Usando include via HTTP
  • Example#140 - Comparando valores de retorno do include
  • Example#141 - include e a instrução return
  • Example#142 - Usando buffer de saída para incluir um arquivo PHP em uma string
  • Example#143 - Exemplo da estrutura de controle goto
  • Example#144 - Exemplo da estrutura de controle goto em um laço
  • Example#145 - Isto não irá funcionar
  • Example#146 - Pseudo-código de demonstração de uma função
  • Example#147 - Funções definidas condicionalmente
  • Example#148 - Funções dentro de funções
  • Example#149 - Funções Recursivas
  • Example#150 - Passando arrays para funções
  • Example#151 - Argumentos de função com uma vírgula final
  • Example#152 - Passando parâmetros de função por referência
  • Example#153 - Utilizando parâmetros padrão em funções
  • Example#154 - Usando tipos não escalares como valores padrões
  • Example#155 - Usando objetos como valores padrão (a partir do PHP 8.1.0)
  • Example#156 - Uso incorreto de parâmetros padrão de função
  • Example#157 - Uso correto de parâmetros padrão de função
  • Example#158 - Uso correto de argumentos padrão de função
  • Example#159 - Declarando argumentos opcionais após argumentos obrigatórios
  • Example#160 - Utilizando ... para acessar argumentos variáveis
  • Example#161 - Utilizando ... para fornecer argumentos
  • Example#162 - Argumentos variáveis com type hint
  • Example#163 - Sintaxe dos argumentos nomeados
  • Example#164 - Comparando argumentos posicionais e nomeados
  • Example#165 - Mesmo exemplo com argumentos em ordem diferente
  • Example#166 - Combinando argumentos posicionais e nomeados
  • Example#167 - Erro lançado ao passar o mesmo argumento nomeado mais de uma vez
  • Example#168 - Usando argumentos nomeados após desempacotar
  • Example#169 - O uso de return
  • Example#170 - Retornando um array para devolver vários valores
  • Example#171 - Retornando uma referência de uma função
  • Example#172 - Exemplo de funções variáveis
  • Example#173 - Exemplo de chamada de um método variável
  • Example#174 - Método variávei com propriedades estáticas
  • Example#175 - Callables complexos
  • Example#176 - Exemplo de função anônima
  • Example#177 - Exemplo de como definir uma função anônima para uma variável
  • Example#178 - Herdando variáveis do escopo anterior
  • Example#179 - Closures e escopo
  • Example#180 - Vinculação automática do $this
  • Example#181 - Tentando utilizar o $this de dentro de uma função anônima estática
  • Example#182 - Tentando vincular um objeto a uma função anônima estática
  • Example#183 - Arrow functions capturam variáveis por valor automaticamente
  • Example#184 - Arrow functions capturam variáveis por valor automaticamente, mesmo quando aninhadas
  • Example#185 - Examplos de arrow functions
  • Example#186 - Valores do escopo externo não podem ser modificados por arrow functions
  • Example#187 - Sintaxe de callable de primeira classe simples
  • Example#188 - Comparação de escopo de CallableExpr(...) e callable tradicional
  • Example#189 - Definição Simples de uma Classe
  • Example#190 - Alguns exemplos da pseudo variável $this
  • Example#191 - Criando uma instância
  • Example#192 - Criando uma instância usando uma expressão arbitrária
  • Example#193 - Atribuição de Objetos
  • Example#194 - Criando novos objetos
  • Example#195 - Acessando um membro de um novo objeto criado
  • Example#196 - Acesso a propriedade vs. chamar um método
  • Example#197 - Chamando uma função anônima armazenada em uma propriedade
  • Example#198 - Herança simples de classe
  • Example#199 - Métodos compatíveis
  • Example#200 - Erro fatal quando um método derivado remove um parâmetro
  • Example#201 - Erro fatal quando um método derivado transforma um parâmetro opcional em mandatório
  • Example#202 - Erro ao utilizar argumentos renomeados em uma classe derivada
  • Example#203 - Resolução de nome da classe
  • Example#204 - Resolução de um nome de classe ausente
  • Example#205 - Resolução de nome de objeto
  • Example#206 - Operador nullsafe
  • Example#207 - Declaração de propriedades
  • Example#208 - Exemplo de propriedades tipadas
  • Example#209 - Acessando propriedades
  • Example#210 - Exemplo de propriedade somente leitura
  • Example#211 - Inicilização ilegal de propriedades somente leitura.
  • Example#212 - Definindo e usando uma constante
  • Example#213 - Exemplo com informação estática
  • Example#214 - Exemplo de expressão constante
  • Example#215 - Modificadores de visibilidade em constantes de classe
  • Example#216 - Exemplo de Autoload
  • Example#217 - Outro exemplo de Autoload
  • Example#218 - Construtoras em herança
  • Example#219 - Utilizando argumentos de construtor
  • Example#220 - Utilizando promoção de propriedades no construtor
  • Example#221 - New em inicializações
  • Example#222 - Utilizando métodos estáticos para construção
  • Example#223 - Exemplo de Destrutor
  • Example#224 - Declaração de propriedade
  • Example#225 - Declaração de método
  • Example#226 - Declaração de constantes (desde o PHP 7.1.0)
  • Example#227 - Acessando membros privados entre objetos do mesmo tipo
  • Example#228 - Exemplo de Herança
  • Example#229 - O método que sobrepõe não declara nenhum tipo de retorno
  • Example#230 - O método que sobrepõe declara um tipo de retorno errado
  • Example#231 - O método que sobrepõe declara um tipo de retorno errado sem um aviso de descontinuação
  • Example#232 - :: de fora da definição da classe
  • Example#233 - :: de dentro da definição da classe
  • Example#234 - Chamando um método pai
  • Example#235 - Exemplo de método estático
  • Example#236 - Exemplo de propriedade estática
  • Example#237 - Exemplo de classe abstrata
  • Example#238 - Exemplo de classe abstrata
  • Example#239 - Exemplo de Interface
  • Example#240 - Interfaces estendíveis
  • Example#241 - Compatibilidade de variância com interfaces múltiplas
  • Example#242 - Herança de várias interfaces
  • Example#243 - Interfaces com constantes
  • Example#244 - Interfaces with abstract classes
  • Example#245 - Extendendo e implementando ao mesmo tempo
  • Example#246 - Exemplo de Trait
  • Example#247 - Exemplo de Ordem de Precedência
  • Example#248 - Exemplo de Ordem de Precedência Alternativa
  • Example#249 - Uso de Traits Múltiplas
  • Example#250 - Exemplo de Resolução de Conflito
  • Example#251 - Exemplo de Mudança de Visibilidade de Método
  • Example#252 - Exemplo de Traits Compostas de Traits
  • Example#253 - Requisitos Expressos por Métodos Abstratos
  • Example#254 - Variáveis Estáticas
  • Example#255 - Métodos Estáticos
  • Example#256 - Propriedades Estáticas
  • Example#257 - Definindo Propriedades
  • Example#258 - Resolução de Conflito
  • Example#259 - Definindo Constantes
  • Example#260 - Resolução de Conflito
  • Example#261 - Sobrecarregando propriedades com __get(),
     __set(), __isset()
     and __unset()
  • Example#262 - Sobrecarga de métodos instanciados com __call() e __callStatic()
  • Example#263 - Iteração simples de objetos
  • Example#264 - Sleep e wakeup
  • Example#265 - Serialize e unserialize
  • Example#266 - Exemplo Simples
  • Example#267 - Usando __invoke()
  • Example#268 - Exemplo de __invoke()
  • Example#269 - Usando __set_state()
  • Example#270 - Utilizando o __debugInfo()
  • Example#271 - Exemplo de métodos final
  • Example#272 - Exemplo de classe Final
  • Example#273 - Exemplo de constantes finais (PHP 8.1.0 em diante)
  • Example#274 - Clonando um objeto
  • Example#275 - Acessar um membro de um objeto recém clonado
  • Example#276 - Exemplo de comparação de objetos
  • Example#277 - Uso do self::
  • Example#278 - Simples uso do static::
  • Example#279 - Uso do static:: em um contexto não-estático
  • Example#280 - Chamadas repassadas e não repassadas
  • Example#281 - Referências e Objetos
  • Example#282 - Exemplo da sintaxe de namespace
  • Example#283 - Declarando um único namespace
  • Example#284 - Declarando um único namespace
  • Example#285 - Declarando um único namespace com hierarquia
  • Example#286 - Declarando vários namespaces, sintaxe de combinação simples
  • Example#287 - Declarando vários namespaces, sintaxe de colchetes
  • Example#288 - Declarando vários namespaces e código sem namespace
  • Example#289 - Declarando vários namespaces e código sem namespace
  • Example#290 - Acessando classes, funções e constantes globais em um namespace
  • Example#291 - Acessando elementos dinamicamente
  • Example#292 - Acessando dinamicamente elementos com namespace
  • Example#293 - Exemplo de __NAMESPACE__, código com namespace
  • Example#294 - Exemplo de __NAMESPACE__, código global
  • Example#295 - Usando __NAMESPACE__ para construção dinâmica de nomes
  • Example#296 - O operador namespace, em um namespace
  • Example#297 - O operador namespace, em código global
  • Example#298 - Importanto ou apelidando com o operador use
  • Example#299 - Importando ou criando apelidos com várias declarações use combinadas
  • Example#300 - Importação e nomes dinâmicos
  • Example#301 - Importação e nomes completamente qualificados
  • Example#302 - Regra de importação inválida
  • Example#303 - Usando a especificação do espaço global
  • Example#304 - Acessando classes globais em um namespace
  • Example#305 - Recorrendo a funções/constantes globais em um namespace
  • Example#306 - Resoluções de nomes ilustradas
  • Example#307 - Acessando classes globais fora de um namespace
  • Example#308 - Acessando classes globais fora de um namespace
  • Example#309 - Acessando classes internas em namespaces
  • Example#310 - Acessando classes, funções ou constantes internas em namespaces
  • Example#311 - Nomes totalmente qualificados
  • Example#312 - Nomes qualificados
  • Example#313 - Nomes de classe não qualificados
  • Example#314 - Nomes de funções ou constantes não qualificados
  • Example#315 - Perigos do uso de nomes com namespace em uma string com aspas duplas
  • Example#316 - Constantes não definidas
  • Example#317 - Constantes não definidas
  • Example#318 - Valores limitados básicos
  • Example#319 - Valores exclusivos avançados
  • Example#320 - Convertendo avisos de erros em exceções
  • Example#321 - Lançando uma exceção
  • Example#322 - Manipulação de exceções com bloco finally
  • Example#323 - Interação entre blocos finally e return
  • Example#324 - Exceções alinhadas
  • Example#325 - Manipulação de múltiplas exceções no mesmo bloco catch
  • Example#326 - Omissão da variável de captura de exceções
  • Example#327 - Throw as an expression
  • Example#328 - A classe nativa Exception
  • Example#329 - Estendendo a classe Exception
  • Example#330 - Uso básico
  • Example#331 - Implementando range como um generator
  • Example#332 - Um exemplo simples de valores yield
  • Example#333 - Produzindo um par de chave/valor
  • Example#334 - Produzindo valores nullos
  • Example#335 - Produzindo valores por referência
  • Example#336 - yield from com iterator_to_array
  • Example#337 - Uso básico de yield from
  • Example#338 - yield from e valores retornados
  • Example#339 - Implementando métodos opcionais de uma interface com Atributos
  • Example#340 - Sintaxe de Atributo
  • Example#341 - Lendo Atributos Usando a API Reflection
  • Example#342 - Lendo Atributos Específicos Usando a API Reflection
  • Example#343 - Classe de Atributo Simples
  • Example#344 - Usando a especificação de destino para restringir onde os atributos podem ser usados
  • Example#345 - Usando IS_REPEATABLE para permitir o atributo em uma declaração várias vezes
  • Example#346 - Usando referência com variáveis indefinidas
  • Example#347 - Referenciando variáveis globais de dentro de funções
  • Example#348 - Referências e o comando foreach
  • Example#349 - Exemplo da $GLOBALS
  • Example#350 - Escrever em todo o $GLOBALS irá resultar em um erro.
  • Example#351 - Exemplo da $_SERVER
  • Example#352 - Exemplo da $_GET
  • Example#353 - Exemplo da $_POST
  • Example#354 - Exemplo da $_ENV
  • Example#355 - Exemplo da $_COOKIE
  • Example#356 - Exemplo da $php_errormsg
  • Example#357 - Exemplo da $http_response_header
  • Example#358 - Exemplo da $argc
  • Example#359 - Exemplo da $argv
  • Example#360 - Exemplo da Exception::getMessage
  • Example#361 - Exception::getPrevious example
  • Example#362 - Exemplo da Exception::getCode
  • Example#363 - Exemplo da Exception::getFile
  • Example#364 - Exemplo da Exception::getLine
  • Example#365 - Exemplo da Exception::getTrace
  • Example#366 - Exemplo da Exception::getTraceAsString
  • Example#367 - Exemplo da Exception::__toString
  • Example#368 - Use a função set_error_handler para transformar mensagens de erro em ErrorException.
  • Example#369 - Exemplo do método ErrorException::getSeverity
  • Example#370 - Exemplo do método Error::getMessage
  • Example#371 - Exemplo do método Error::getPrevious
  • Example#372 - Exemplo do método Error::getCode
  • Example#373 - Exemplo do método Error::getFile
  • Example#374 - Exemplo do método Error::getLine
  • Example#375 - Exemplo do método Error::getTrace
  • Example#376 - Exemplo do método Error::getTraceAsString
  • Example#377 - Exemplo do método Error::__toString
  • Example#378 - Utilização básica
  • Example#379 - Basic usage
  • Example#380 - Utilização básica
  • Example#381 - Exemplo do método ArrayAccess::offsetExists
  • Example#382 - Basic usage
  • Example#383 - Exemplo do método Closure::bind
  • Example#384 - Exemplo de Closure::bindTo
  • Example#385 - Exemplo do método Closure::call
  • Example#386 - Criado como resultado de uma conversão de tipo em um objeto
  • Example#387 - Criado como resultado da função json_decode
  • Example#388 - Declarando propriedades dinâmicas
  • Example#389 - Exemplo do método Generator::getReturn
  • Example#390 - Exemplo do método Generator::key
  • Example#391 - Usando o método Generator::send para injetar valores
  • Example#392 - Lança uma exceção no gerador
  • Example#393 - Uso básico de referência fraca
  • Example#394 - Exemplo de uso de Weakmap
  • Example#395 - Uso Básico de Stringable
  • Example#396 - Uso básico
  • Example#397 - Uso Básico
  • Example#398 - Uso básico
  • Example#399 - Passando um objeto SensitiveParameterValue para var_dump
  • Example#400 - Exemplo de SensitiveParameterValue::getValue
  • Example#401 - Exemplo básico de uso do parâmetro bindto
  • Example#402 - Buscando uma página e enviando dados pelo método POST
  • Example#403 - Ignorando redirecionamentos, mas trazendo os cabeçalhos e conteúdo
  • Example#404 - Exemplo básico de uso de password
  • Example#405 - Detectando a qual se chegou depois de todos os redirecionamentos
  • Example#406 - php://temp/maxmemory
  • Example#407 - php://filter/resource=<fluxo a ser filtrado>
  • Example#408 - php://filter/read=<lista de filtros a aplicar à cadeia de leitura>
  • Example#409 - php://filter/write=<lista de filtros a aplicar à cadeia de escrita>
  • Example#410 - php://memory e php://temp não são reutilizáveis
  • Example#411 - Imprimir conteúdo de data://
  • Example#412 - Obtém o tipo de mídia
  • Example#413 - Uso básico
  • Example#414 - Abrindo um fluxo para conexão ativa
  • Example#415 - Esta variável $session deve ser mantida disponível!
  • Example#416 - Explorando um arquivo RAR
  • Example#417 - Abrindo um arquivo criptografado (criptografia de cabeçalho)
  • Example#418 - Checagem fraca de variáveis resulta em....
  • Example#419 - ... um ataque ao sistema de arquivos
  • Example#420 - Checagem com mais segura do nome do arquivo
  • Example#421 - Checagem mais segura do nome do arquivo
  • Example#422 - Script vulnerável à bytes nulos
  • Example#423 - Validando entrada corretamente
  • Example#424 - Usando campo de senha hasheado
  • Example#425 - Dividindo o result set em páginas ... e criando super-usuários (PostgreSQL)
  • Example#426 - Listando artigos ... e algumas senhas (qualquer banco de dados)
  • Example#427 - De recuperando uma senha ... para ganhando mais privilégios (qualquer banco de dados)
  • Example#428 - Atacando o sistema de um banco de dados (MSSQL Server)
  • Example#429 - Evitando SQL injection ao utilizar instruções preparadas PDO
  • Example#430 - Atacando variáveis com uma página HTML personalizada
  • Example#431 - Explorando variáveis comuns de depuração
  • Example#432 - Encontrado variáveis perigosas com E_ALL
  • Example#433 - Uso Perigoso de Variáveis
  • Example#434 - Escondendo o PHP como outra linguagem
  • Example#435 - Usando extensões desconhecidas para o PHP
  • Example#436 - Usando extensão HTML para arquivos PHP
  • Example#437 - Exemplo de Autenticação HTTP "Basic"
  • Example#438 - Exemplo de autenticação HTTP "Digest"
  • Example#439 - Exemplo de Autenticação HTTP forçando um novo nome/senha
  • Example#440 - Um formulário XForms simples de busca
  • Example#441 - Usando um XForm para popular o $_POST
  • Example#442 - Formulário para Upload de Arquivo
  • Example#443 - Validando o upload de arquivos
  • Example#444 - Enviando um array de arquivos
  • Example#445 - Carregando múltiplos arquivos
  • Example#446 - Carregando um diretório inteiro
  • Example#447 - Salvando arquivos HTTP PUT
  • Example#448 - Pegando o título de uma página remota
  • Example#449 - Guardando informação em um servidor remoto
  • Example#450 - Exemplo demonstrando a diferença entre CGI e SAPI:
  • Example#451 - Exemplo de uso de -d para definir uma configuração INI
  • Example#452 - Retorna os módulos PHP e Zend embutidos e carregados
  • Example#453 - Recebendo um erro de sintaxe ao usar aspas duplas
  • Example#454 - Usar aspas simples previne a substituição de variáveis pelo ambiente de linha de comando
  • Example#455 - Usando as opções -B, -R e -E para contar o número de linhas de um projeto.
  • Example#456 - Use -v para requisitar o nome SAPI e a versão do PHP e Zend Engine
  • Example#457 - --ini exemplo
  • Example#458 - uso básico da opção --rf
  • Example#459 - exemplo de --rc
  • Example#460 - Exemplo de --re
  • Example#461 - exemplo de --ri
  • Example#462 - Executando scripts PHP como shell scripts
  • Example#463 - Script planejado para ser executado na linha de comando (script.php)
  • Example#464 - Arquivo batch para rodar um script de linha de comando em PHP (script.bat)
  • Example#465 - Executando código usando o shell interativo
  • Example#466 - Sugestões de complemento com tab
  • Example#467 - Definindo configurações php.ini no shell interativo
  • Example#468 - Iniciando o servidor web
  • Example#469 - Iniciando o servidor web com um diretório raiz específico
  • Example#470 - Usando um script de roteamento
  • Example#471 - Verificando o Uso do CLI Web Server
  • Example#472 - Tratando de tipos de arquivos não suportados
  • Example#473 - Acessando o servidor web CLI de máquinas remotas
  • Example#474 - Criando um novo contêiner zval
  • Example#475 - Mostrando a informação zval
  • Example#476 - Aumentando o "refcount" de um zval
  • Example#477 - Diminuindo o "refcount" de zval
  • Example#478 - Criando um zval de array
  • Example#479 - Adicionando elemento já existente a um array
  • Example#480 - Removendo um elemento de um array
  • Example#481 - Adicionando o próprio array como um elemento de si mesmo
  • Example#482 - Removendo a atribuição de $a
  • Example#483 - Exemplo de uso de memória
  • Example#484 - Influência do Coletor de Lixo no desempenho
  • Example#485 - Executando o script acima
  • Example#486 - Recompilando o PHP para habilitar o benchmarking de GC
  • Example#487 - Estatísticas GC
  • Example#488 - Arquivo all_probes.d para instrumentar todos os Sensores Estáticos PHP com DTrace
  • Example#489 - all_probes.stp para instrumentação de todos os Sensores Estáticos do PHP com SystemTap
  • Example#490 - Um exemplo de apcu_add
  • Example#491 - Um exemplo de apcu_cache_info
  • Example#492 - Exemplo de apcu_cas
  • Example#493 - Exemplo de apcu_dec
  • Example#494 - Um exemplo de apcu_delete
  • Example#495 - Um exemplo de apcu_entry
  • Example#496 - Exemplo de apcu_exists
  • Example#497 - Um exemplo de apcu_fetch
  • Example#498 - Exemplo de apcu_inc
  • Example#499 - Um exemplo de apcu_key_info
  • Example#500 - Um exemplo de apcu_sma_info
  • Example#501 - Um exemplo de apcu_store
  • Example#502 - Um exemplo de APCUIterator::__construct
  • Example#503 - Usando gerenciamento de erro em um script
  • Example#504 - Exemplo de debug_backtrace
  • Example#505 - Exemplo de debug_print_backtrace
  • Example#506 - Um exemplo de error_clear_last
  • Example#507 - Um exemplo de error_get_last
  • Example#508 - Exemplos error_log
  • Example#509 - Exemplo error_reporting
  • Example#510 - Exemplo de restore_error_handler
  • Example#511 - Exemplo restore_exception_handler
  • Example#512 - Manipulação de erro com set_error_handler e trigger_error
  • Example#513 - Exemplo de set_exception_handler
  • Example#514 - Exemplo de trigger_error
  • Example#515 - Calling a function from shared library
  • Example#516 - Calling a function, returning a structure through an argument
  • Example#517 - Accessing existing C variables
  • Example#518 - Creating and Modifying C variables
  • Example#519 - Working with C arrays
  • Example#520 - Working with C enums
  • Example#521 - Assigning a PHP Closure to a C function pointer
  • Example#522 - Exemplo de Controle de Saída
  • Example#523 - Exemplo de re-escrita na saída
  • Example#524 - ob_end_clean example
  • Example#525 - ob_end_flush example
  • Example#526 - A simple ob_get_clean example
  • Example#527 - Um simples exemplo de ob_get_contents
  • Example#528 - ob_get_flush example
  • Example#529 - Um simples exemplo de ob_get_length
  • Example#530 - Array returned when full_status is false
  • Example#531 - Array returned when full_status is true
  • Example#532 - ob_list_handlers example
  • Example#533 - Exemplo de uma função de callback
  • Example#534 - Criando um buffer de saída não apagável
  • Example#535 - output_add_rewrite_var example
  • Example#536 - output_reset_rewrite_vars example
  • Example#537 - assert_options example
  • Example#538 - Exemplo de assert
  • Example#539 - Utilizando uma mensagem customizada
  • Example#540 - Utilizando uma classe exception
  • Example#541 - cli_get_process_title example
  • Example#542 - cli_set_process_title example
  • Example#543 - Exemplosdl
  • Example#544 - Exemplo de extension_loaded
  • Example#545 - A gc_enabled example
  • Example#546 - gc_status Usage
  • Example#547 - get_current_user example
  • Example#548 - get_defined_constants Example
  • Example#549 - Imprime as funções de XML
  • Example#550 - Exemplo de get_include_path
  • Example#551 - get_included_files example
  • Example#552 - get_loaded_extensions Example
  • Example#553 - Unfiltered get_resources
  • Example#554 - Filtered get_resources
  • Example#555 - getenv Example
  • Example#556 - Exemplo de getlastmod
  • Example#557 - Exemplo básico de getopt
  • Example#558 - Exemplo de getopt com opções longas
  • Example#559 - getopt example: Passing multiple options as one
  • Example#560 - Exemplo de getopt com rest_index
  • Example#561 - getrusage example
  • Example#562 - ini_get_all examples
  • Example#563 - Disabling details
  • Example#564 - A few ini_get examples
  • Example#565 - A few ini_parse_quantity examples
  • Example#566 - ini_restore example
  • Example#567 - Setting an ini option
  • Example#568 - A memory_get_usage example
  • Example#569 - memory_reset_peak_usage example
  • Example#570 - php_ini_loaded_file example
  • Example#571 - A simple example to list the returned ini files
  • Example#572 - php_sapi_name example
  • Example#573 - Some php_uname examples
  • Example#574 - A few OS related constant examples
  • Example#575 - Prints the general credits
  • Example#576 - Prints the core developers and the documentation group
  • Example#577 - Printing all the credits
  • Example#578 - phpinfo Example
  • Example#579 - phpversion example
  • Example#580 - PHP_VERSION_ID example and usage
  • Example#581 - Definindo uma variável de ambiente
  • Example#582 - Exemplo de restore_include_path
  • Example#583 - set_include_path example
  • Example#584 - Adding to the include path
  • Example#585 - sys_get_temp_dir example
  • Example#586 - version_compare examples
  • Example#587 - zend_thread_id example
  • Example#588 - Exemplo de zend_version
  • Example#589 - Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini
  • Example#590 - A runkit7_function_add example
  • Example#591 - A runkit7_function_copy example
  • Example#592 - A runkit7_function_redefine example
  • Example#593 - runkit7_method_add example
  • Example#594 - runkit7_method_copy example
  • Example#595 - runkit7_method_redefine example
  • Example#596 - runkit7_method_remove example
  • Example#597 - runkit7_method_rename example
  • Example#598 - runkit7_zval_inspect example
  • Example#599 - Basic uopz_add_function Usage
  • Example#600 - uopz_allow_exit example
  • Example#601 - uopz_backup example
  • Example#602 - uopz_compose example
  • Example#603 - uopz_copy example
  • Example#604 - Basic uopz_del_function Usage
  • Example#605 - uopz_delete example
  • Example#606 - uopz_delete class example
  • Example#607 - uopz_extend example
  • Example#608 - uopz_flags example
  • Example#609 - "Unfinalize" a Class
  • Example#610 - uopz_function example
  • Example#611 - uopz_function class example
  • Example#612 - uopz_get_exit_status example
  • Example#613 - Basic uopz_get_hook Usage
  • Example#614 - uopz_get_mock example
  • Example#615 - Basic uopz_get_property Usage
  • Example#616 - uopz_get_return example
  • Example#617 - Basic uopz_get_static Usage
  • Example#618 - uopz_implement example
  • Example#619 - uopz_overload example
  • Example#620 - uopz_redefine example
  • Example#621 - uopz_rename example
  • Example#622 - uopz_rename class example
  • Example#623 - uopz_restore example
  • Example#624 - Basic uopz_set_hook Usage
  • Example#625 - uopz_set_mock example
  • Example#626 - uopz_set_mock example
  • Example#627 - uopz_set_mock and static members
  • Example#628 - Basic uopz_set_property Usage
  • Example#629 - uopz_set_return example
  • Example#630 - uopz_set_return example
  • Example#631 - uopz_set_return class example
  • Example#632 - Basic uopz_set_static Usage
  • Example#633 - uopz_undefine example
  • Example#634 - Basic uopz_unset_hook Usage
  • Example#635 - uopz_unset_mock example
  • Example#636 - uopz_unset_return example
  • Example#637 - wincache.ignorelist example
  • Example#638 - Authentication configuration for wincache.php
  • Example#639 - Enabling WinCache session handler
  • Example#640 - Enabling WinCache functions reroutes
  • Example#641 - Reroute.ini file content
  • Example#642 - A wincache_fcache_fileinfo example
  • Example#643 - A wincache_fcache_meminfo example
  • Example#644 - Using wincache_lock
  • Example#645 - A wincache_ocache_fileinfo example
  • Example#646 - A wincache_ocache_meminfo example
  • Example#647 - A wincache_refresh_if_changed example
  • Example#648 - A wincache_rplist_fileinfo example
  • Example#649 - A wincache_rplist_meminfo example
  • Example#650 - A wincache_scache_info example
  • Example#651 - A wincache_scache_meminfo example
  • Example#652 - wincache_ucache_add with key as a string
  • Example#653 - wincache_ucache_add with key as an array
  • Example#654 - Using wincache_ucache_cas
  • Example#655 - using wincache_ucache_clear
  • Example#656 - Using wincache_ucache_dec
  • Example#657 - Using wincache_ucache_delete with key as a string
  • Example#658 - Usingwincache_ucache_delete with key as an array
  • Example#659 - Using wincache_ucache_delete with key as an array where some elements cannot be deleted
  • Example#660 - Using wincache_ucache_exists
  • Example#661 - wincache_ucache_get with key as a string
  • Example#662 - wincache_ucache_get with key as an array
  • Example#663 - Using wincache_ucache_inc
  • Example#664 - Using wincache_ucache_info
  • Example#665 - A wincache_ucache_meminfo example
  • Example#666 - wincache_ucache_set with key as a string
  • Example#667 - wincache_ucache_set with key as an array
  • Example#668 - Using wincache_unlock
  • Example#669 - Xhprof example with the optional GUI
  • Example#670 - xhprof_disable example
  • Example#671 - xhprof_enable examples
  • Example#672 - xhprof_sample_disable example
  • Example#673 - Make sure the item is stored
  • Example#674 - Using CHAP passwords
  • Example#675 - radius_acct_open example
  • Example#676 - radius_add_server example
  • Example#677 - radius_auth_open example
  • Example#678 - radius_create_request example
  • Example#679 - radius_cvt_addr example
  • Example#680 - radius_cvt_int example
  • Example#681 - radius_cvt_string example
  • Example#682 - radius_get_attr example
  • Example#683 - radius_get_tagged_attr_data example
  • Example#684 - radius_get_tagged_attr_tag example
  • Example#685 - radius_get_vendor_attr example
  • Example#686 - radius_put_attr example
  • Example#687 - radius_put_int example
  • Example#688 - radius_put_string example
  • Example#689 - radius_put_vendor_attr example
  • Example#690 - Exemplo de Interface de Chamada de Retorno de Readline
  • Example#691 - readline
  • Example#692 - Um exemplo simples de bzip2
  • Example#693 - Comprimindo dados
  • Example#694 - Descomprimindo uma String
  • Example#695 - Exemplo da bzerror
  • Example#696 - Exemplo de bzopen
  • Example#697 - Exemplo de bzread
  • Example#698 - Exemplo de bzwrite
  • Example#699 - Using an external file
  • Example#700 - Using a file within a phar archive
  • Example#701 - Converting a phar archive from phar to tar file format
  • Example#702 - phar.cache_list usage example
  • Example#703 - A Phar::addEmptyDir example
  • Example#704 - A Phar::addFile example
  • Example#705 - A Phar::addFromString example
  • Example#706 - A Phar::apiVersion example
  • Example#707 - A Phar::buildFromDirectory example
  • Example#708 - A Phar::buildFromIterator with SplFileInfo
  • Example#709 - A Phar::buildFromIterator with other iterators
  • Example#710 - A Phar::canCompress example
  • Example#711 - A Phar::canWrite example
  • Example#712 - A Phar::compress example
  • Example#713 - A Phar::compressFiles example
  • Example#714 - A Phar::__construct example
  • Example#715 - A Phar::convertToData example
  • Example#716 - A Phar::convertToExecutable example
  • Example#717 - A Phar::copy example
  • Example#718 - A Phar::count example
  • Example#719 - A Phar::createDefaultStub example
  • Example#720 - A Phar::decompress example
  • Example#721 - A Phar::decompressFiles example
  • Example#722 - A Phar::delMetaData example
  • Example#723 - A Phar::delete example
  • Example#724 - A Phar::extractTo example
  • Example#725 - A Phar::getMetadata example
  • Example#726 - A Phar::getStub example
  • Example#727 - A Phar::hasMetadata example
  • Example#728 - A Phar::interceptFileFuncs example
  • Example#729 - A Phar::interceptFileFuncs example
  • Example#730 - A Phar::isBuffering example
  • Example#731 - A Phar::isCompressed example
  • Example#732 - A Phar::loadPhar example
  • Example#733 - A Phar::mapPhar example
  • Example#734 - A Phar::mount example
  • Example#735 - A Phar::mungServer example
  • Example#736 - A Phar::offsetExists example
  • Example#737 - Phar::offsetGet example
  • Example#738 - A Phar::offsetSet example
  • Example#739 - A Phar::offsetUnset example
  • Example#740 - A Phar::running example
  • Example#741 - A Phar::setAlias example
  • Example#742 - A Phar::setDefaultStub example
  • Example#743 - A Phar::setMetadata example
  • Example#744 - A Phar::setStub example
  • Example#745 - A Phar::startBuffering example
  • Example#746 - A Phar::stopBuffering example
  • Example#747 - A Phar::unlinkArchive example
  • Example#748 - A Phar::webPhar example
  • Example#749 - A PharData::addEmptyDir example
  • Example#750 - A PharData::addFile example
  • Example#751 - A PharData::addFromString example
  • Example#752 - A PharData::buildFromDirectory example
  • Example#753 - A PharData::buildFromIterator with SplFileInfo
  • Example#754 - A PharData::buildFromIterator with other iterators
  • Example#755 - A PharData::compress example
  • Example#756 - A PharData::compressFiles example
  • Example#757 - A PharData::__construct example
  • Example#758 - A PharData::convertToData example
  • Example#759 - A PharData::convertToExecutable example
  • Example#760 - A PharData::copy example
  • Example#761 - A PharData::decompress example
  • Example#762 - A PharData::decompressFiles example
  • Example#763 - A PharData::delMetaData example
  • Example#764 - A PharData::delete example
  • Example#765 - A PharData::extractTo example
  • Example#766 - A PharData::offsetSet example
  • Example#767 - A PharData::offsetUnset example
  • Example#768 - A Phar::setMetadata example
  • Example#769 - A PharFileInfo::chmod example
  • Example#770 - A PharFileInfo::compress example
  • Example#771 - A PharFileInfo::__construct example
  • Example#772 - A PharFileInfo::decompress example
  • Example#773 - A PharFileInfo::delMetaData example
  • Example#774 - A PharFileInfo::getCRC32 example
  • Example#775 - A PharFileInfo::getCompressedSize example
  • Example#776 - A PharFileInfo::getMetadata example
  • Example#777 - A PharFileInfo::getPharFlags example
  • Example#778 - A PharFileInfo::isCRCChecked example
  • Example#779 - A PharFileInfo::isCompressed example
  • Example#780 - A PharFileInfo::setMetadata example
  • Example#781 - Rar installation
  • Example#782 - On-the-fly decompression
  • Example#783 - RAR extension filesystem extraction example
  • Example#784 - Estilo orientado a objetos
  • Example#785 - Estilo procedural
  • Example#786 - Estilo orientado a objetos
  • Example#787 - Estilo procedural
  • Example#788 - Estilo orientado a objetos
  • Example#789 - Estilo procedural
  • Example#790 - Estilo orientado a objetos
  • Example#791 - Estilo procedural
  • Example#792 - Estilo orientado a objetos
  • Example#793 - Estilo procedural
  • Example#794 - Estilo orientado a objetos
  • Example#795 - Estilo procedural
  • Example#796 - Estilo orientado a objetos
  • Example#797 - Estilo procedural
  • Example#798 - Volume Callback
  • Example#799 - Estilo orientado a objetos
  • Example#800 - Estilo procedural
  • Example#801 - RarArchive::__toString example
  • Example#802 - RarEntry::extract example
  • Example#803 - How to extract all files in archive:
  • Example#804 - RarEntry::getAttr example
  • Example#805 - RarEntry::getHostOs example (version >= 2.0.0)
  • Example#806 - RarEntry::getHostOs example (version <= 1.0.0)
  • Example#807 - RarEntry::getMethod example
  • Example#808 - RarEntry::getName example
  • Example#809 - RarEntry::getPackedSize example
  • Example#810 - RarEntry::getStream example
  • Example#811 - RarEntry::getUnpackedSize example
  • Example#812 - RarEntry::getVersion example
  • Example#813 - RarException::isUsingExceptions example
  • Example#814 - RarException::setUsingExceptions example
  • Example#815 - Criando um arquivo Zip
  • Example#816 - Exibindo detalhes dos arquivos e listando-os
  • Example#817 - Zip stream wrapper, lendo um OpenOffice meta info
  • Example#818 - Exemplo de uso
  • Example#819 - Criar um novo diretório em um arquivo
  • Example#820 - Abrir e adicionar
  • Example#821 - Adicionar uma entrada a um novo arquivo
  • Example#822 - Adicionar arquivo a um diretório dentro de um arquivo
  • Example#823 - Exemplo de ZipArchive::addGlob
  • Example#824 - Exemplo de ZipArchive::addPattern
  • Example#825 - Excluir arquivo do arquivo usando seu índice
  • Example#826 - Excluindo um arquivo e diretório de um arquivo, usando nomes
  • Example#827 - Extrair todas as entradas
  • Example#828 - Extrair duas entradas
  • Example#829 - Imprimir um comentário de arquivo
  • Example#830 - Testar se o arquivo é um formato torrentzip
  • Example#831 - Imprimir o comentário de uma entrada
  • Example#832 - Imprime o comentário de uma entrada
  • Example#833 - Extrair todas as entradas com direitos Unix
  • Example#834 - Obter o conteúdo do arquivo
  • Example#835 - Obter o conteúdo do arquivo
  • Example#836 - Converter uma imagem de uma entrada zip
  • Example#837 - Exemplo de ZipArchive::getNameIndex
  • Example#838 - Obter o conteúdo da entrada com fread e armazená-lo
  • Example#839 - Mesmo que o exemplo anterior, mas com fopen e o wrapper de fluxo zip
  • Example#840 - Wrapper de fluxo e imagem, pode ser usado também com a função xml
  • Example#841 - Obtém o conteúdo da entrada com fread e armazená-lo
  • Example#842 - Obtém o conteúdo da entrada com fread e armazená-lo
  • Example#843 - Criar um arquivo compactado e em seguida usá-lo com ZipArchive::locateName
  • Example#844 - Abrir e extrair
  • Example#845 - Cria um arquivo
  • Example#846 - Cria um arquivo temporário
  • Example#847 - Arquivar um arquivo
  • Example#848 - Archive a file
  • Example#849 - Renomear uma entrada
  • Example#850 - Renomear uma entrada
  • Example#851 - Abrir e substituir
  • Example#852 - Criar um arquivo e definir um comentário
  • Example#853 - Criar um arquivo torrentzip
  • Example#854 - Abrir um arquivo e definir um comentário para uma entrada
  • Example#855 - Abrir um arquivo e definir um comentário para uma entrada
  • Example#856 - Adicionar arquivos com diferentes métodos de compressão a um arquivo
  • Example#857 - Adicionar arquivos com diferentes métodos de compressão a um arquivo
  • Example#858 - Adicionar arquivo e definir método de compressão
  • Example#859 - Arquivar e criptografar um arquivo
  • Example#860 - Arquivar um arquivo, com seus direitos Unix
  • Example#861 - Arquivar um arquivo
  • Example#862 - Arquivar um arquivo
  • Example#863 - Impressão das informações stat de uma entrada
  • Example#864 - Impressão das informações stat de uma entrada
  • Example#865 - Pequeno Exemplo da Zlib
  • Example#866 - Utilizando a API de compressão/expansão incremental
  • Example#867 - Exemplo gzclose
  • Example#868 - Exemplo de gzcompress
  • Example#869 - Exemplo de gzdeflate
  • Example#870 - Criando um arquivo gzip
  • Example#871 - Exemplo de gzeof
  • Example#872 - Exemplo de gzfile
  • Example#873 - Exemplo de gzgetc
  • Example#874 - gzgets example
  • Example#875 - Exemplo de gzgetss
  • Example#876 - Exemplo de gzinflate
  • Example#877 - Exemplo de gzopen
  • Example#878 - Exemplo de gzpassthru
  • Example#879 - Exemplo de gzread
  • Example#880 - Exemplo de gzseek
  • Example#881 - Exemplo de gzuncompress
  • Example#882 - Exemplo da gzwrite
  • Example#883 - Exemplo de ob_gzhandler
  • Example#884 - Exemplo de zlib_encode
  • Example#885 - hash_algos example
  • Example#886 - hash_copy example
  • Example#887 - hash_equals example
  • Example#888 - Using hash_file
  • Example#889 - hash_hkdf example
  • Example#890 - hash_hmac_algos example
  • Example#891 - hash_hmac_file example
  • Example#892 - hash_hmac example
  • Example#893 - Incremental hashing example
  • Example#894 - hash_pbkdf2 example, basic usage
  • Example#895 - hash_update_stream example
  • Example#896 - A hash example
  • Example#897 - mcrypt_create_iv Example
  • Example#898 - mcrypt_enc_get_algorithms_name example
  • Example#899 - mcrypt_enc_get_modes_name example
  • Example#900 - mcrypt_enc_get_supported_key_sizes example
  • Example#901 - mcrypt_encrypt Example
  • Example#902 - mcrypt_get_block_size example
  • Example#903 - mcrypt_get_cipher_name Example
  • Example#904 - mcrypt_get_iv_size Example
  • Example#905 - mcrypt_get_key_size Example
  • Example#906 - mcrypt_list_algorithms Example
  • Example#907 - mcrypt_list_modes Example
  • Example#908 - mcrypt_module_open Examples
  • Example#909 - Using mcrypt_module_open in encryption
  • Example#910 - mcrypt_module_self_test example
  • Example#911 - mdecrypt_generic Example
  • Example#912 - Calcula o MD5 compiladodigest e hmac e imprimi como hex
  • Example#913 - Listando todas as hashes
  • Example#914 - Exemplo de mhash_get_block_size
  • Example#915 - Exemplo de mhash_get_hash_name
  • Example#916 - openssl_cipher_iv_length example
  • Example#917 - openssl_cipher_key_length example
  • Example#918 - openssl_cms_sign example
  • Example#919 - openssl_csr_export_to_file() example
  • Example#920 - openssl_csr_export() example
  • Example#921 - openssl_csr_get_public_key() example
  • Example#922 - openssl_csr_get_subject() example
  • Example#923 - Creating a self-signed certificate
  • Example#924 - Creating a self-signed ECC certificate (as of PHP 7.1.0)
  • Example#925 - openssl_csr_sign example - signing a CSR (how to implement your own CA)
  • Example#926 - Compute a shared secret
  • Example#927 - Generate a DH public/private keypair in php
  • Example#928 - AES Authenticated Encryption in GCM mode example for PHP 7.1+
  • Example#929 - AES Authenticated Encryption example prior to PHP 7.1
  • Example#930 - openssl_error_string example
  • Example#931 - openssl_get_cert_locations example
  • Example#932 - openssl_get_cipher_methods example
  • Example#933 - openssl_get_curve_names example
  • Example#934 - openssl_get_md_methods example
  • Example#935 - openssl_open example
  • Example#936 - openssl_pbkdf2() example
  • Example#937 - openssl_pkcs12_read example
  • Example#938 - openssl_pkcs7_decrypt example
  • Example#939 - openssl_pkcs7_encrypt example
  • Example#940 - Get a PEM array from a P7B file
  • Example#941 - openssl_pkcs7_sign example
  • Example#942 - openssl_pkey_derive example
  • Example#943 - Obtain the public key from a private key
  • Example#944 - openssl_random_pseudo_bytes example
  • Example#945 - openssl_seal example
  • Example#946 - openssl_sign example
  • Example#947 - openssl_sign example
  • Example#948 - openssl_spki_export_challenge example
  • Example#949 - openssl_spki_export_challenge example from <keygen>
  • Example#950 - openssl_spki_export example
  • Example#951 - openssl_spki_export example from <keygen>
  • Example#952 - openssl_spki_new example
  • Example#953 - openssl_spki_verify example
  • Example#954 - openssl_spki_verify example from <keygen>
  • Example#955 - openssl_verify example
  • Example#956 - openssl_verify example
  • Example#957 - openssl_x509_verify example
  • Example#958 - Exemplo de password_hash
  • Example#959 - Exemplo de configuração do custo de password_hash manualmente
  • Example#960 - Exemplo de busca de um bom custo para password_hash
  • Example#961 - Exemplo de password_hash usando Argon2i
  • Example#962 - Utilização de password_needs_rehash
  • Example#963 - Exemplo de password_verify
  • Example#964 - RNP clearsign example
  • Example#965 - simple callback function example
  • Example#966 - sodium_crypto_box_seal_open example
  • Example#967 - sodium_crypto_box_seal example
  • Example#968 - sodium_crypto_core_ristretto255_add example
  • Example#969 - sodium_crypto_core_ristretto255_from_hash example
  • Example#970 - sodium_crypto_core_ristretto255_is_valid_point example
  • Example#971 - sodium_crypto_core_ristretto255_random example
  • Example#972 - sodium_crypto_core_ristretto255_scalar_add example
  • Example#973 - sodium_crypto_core_ristretto255_scalar_invert example
  • Example#974 - sodium_crypto_core_ristretto255_scalar_negate example
  • Example#975 - sodium_crypto_core_ristretto255_scalar_random example
  • Example#976 - sodium_crypto_core_ristretto255_scalar_sub example
  • Example#977 - sodium_crypto_core_ristretto255_sub example
  • Example#978 - sodium_crypto_generichash_final example
  • Example#979 - sodium_crypto_generichash_init example
  • Example#980 - sodium_crypto_generichash_update example
  • Example#981 - sodium_crypto_kx_keypair usage
  • Example#982 - sodium_crypto_pwhash_str example
  • Example#983 - sodium_crypto_pwhash example
  • Example#984 - sodium_crypto_secretbox_keygen example
  • Example#985 - Comparing sodium_crypto_secretbox_keygen with random_bytes
  • Example#986 - sodium_crypto_secretbox_open example
  • Example#987 - sodium_crypto_secretbox example
  • Example#988 - sodium_crypto_secretstream_xchacha20poly1305_init_pull example
  • Example#989 - sodium_crypto_secretstream_xchacha20poly1305_init_push example
  • Example#990 - sodium_crypto_stream_xchacha20_xor_ic example
  • Example#991 - DBA example
  • Example#992 - Traversing a database
  • Example#993 - dba_handlers Example
  • Example#994 - List Privileges for a Column
  • Example#995 - List Columns of a Table
  • Example#996 - DSN-less connections
  • Example#997 - odbc_connection_string_quote example
  • Example#998 - List available DSNs
  • Example#999 - Exemplos de odbc_execute e odbc_prepare
  • Example#1000 - odbc_fetch_into examples
  • Example#1001 - odbc_next_result
  • Example#1002 - Exemplos de odbc_execute e odbc_prepare
  • Example#1003 - List primary Keys of a Column
  • Example#1004 - List Columns of a stored Procedure
  • Example#1005 - List stored Procedures of a Database
  • Example#1006 - odbc_result examples
  • Example#1007 - odbc_setoption examples
  • Example#1008 - List Statistics of a Table
  • Example#1009 - List Privileges of a Table
  • Example#1010 - List Tables in a Catalog
  • Example#1011 - using PDO::ATTR_DRIVER_NAME
  • Example#1012 - Conectando-se ao MySQL
  • Example#1013 - Tratando erros de conexão
  • Example#1014 - Fechando uma conexão
  • Example#1015 - Conexões persistentes
  • Example#1016 - Executando um lote em uma transação
  • Example#1017 - Inserções repetidas usando declarações preparadas
  • Example#1018 - Inserções repetidas usando declarações preparadas
  • Example#1019 - Buscando dados usando declarações preparadas
  • Example#1020 - Chamando um procedimento armazenado com um parâmetro de saída
  • Example#1021 - Chamando um procedimento armazenado com um parâmetro de entrada/saída
  • Example#1022 - Uso inválido de marcador de posição
  • Example#1023 - Criar uma instância do PDO e definir o modo de erro
  • Example#1024 - Criar uma instância do PDO e definir o modo de erro a partir do construtor
  • Example#1025 - Exibindo uma imagem de um banco de dados
  • Example#1026 - Inserindo uma imagem em um banco de dados
  • Example#1027 - Inserindo uma imagem em um banco de dados: Oracle
  • Example#1028 - Reverter uma transação
  • Example#1029 - Enviando uma transação básica
  • Example#1030 - Enviando uma transação DDL
  • Example#1031 - Cria uma instância PDO através de invocação de driver
  • Example#1032 - Cria uma instância PDO através de invocação de URI
  • Example#1033 - Cria uma instância PDO usando um apelido
  • Example#1034 - Buscando um código SQLSTATE
  • Example#1035 - Mostrando campos de errorInfo() para uma conexão PDO_ODBC a um banco de dados DB2
  • Example#1036 - Emitindo uma instrução DELETE
  • Example#1037 - Recuperando atributos de uma conexão com o banco de dados
  • Example#1038 - Exemplo de PDO::getAvailableDrivers
  • Example#1039 - Modelo de instrução SQL com parâmetros nomeados
  • Example#1040 - Modelo de instrução SQL com parâmetros de ponto de interrogação
  • Example#1041 - Modelo de instrução SQL com ponto de interrogação escapado
  • Example#1042 - SQL sem espaços reservados pode ser executado usando PDO::query
  • Example#1043 - Inserindo aspas em uma string normal
  • Example#1044 - Inserindo aspas em uma string perigosa
  • Example#1045 - Inserindo aspas em uma string complexa
  • Example#1046 - Revertendo uma transação
  • Example#1047 - Vinculando a saída do conjunto de resultados a variáveis PHP
  • Example#1048 - Executando uma instrução preparada com espaços reservados nomeados
  • Example#1049 - Executando uma instrução preparada com espaços reservados com pontos de interrogação
  • Example#1050 - Chamando um procedimento armazenado com um parâmetro INOUT
  • Example#1051 - Execute a prepared statement with named placeholders
  • Example#1052 - Execute a prepared statement with question mark placeholders
  • Example#1053 - A PDOStatement::closeCursor example
  • Example#1054 - Counting columns
  • Example#1055 - PDOStatement::debugDumpParams example with named parameters
  • Example#1056 - PDOStatement::debugDumpParams example with unnamed parameters
  • Example#1057 - Retrieving an SQLSTATE code
  • Example#1058 - Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database
  • Example#1059 - Execute a prepared statement with a bound variable and value
  • Example#1060 - Execute a prepared statement with an array of named values
  • Example#1061 - Execute a prepared statement with an array of positional values
  • Example#1062 - Execute a prepared statement with variables bound to positional placeholders
  • Example#1063 - Execute a prepared statement using array for IN clause
  • Example#1064 - Fetching rows using different fetch styles
  • Example#1065 - Fetching rows with a scrollable cursor
  • Example#1066 - Construction order
  • Example#1067 - Fetch all remaining rows in a result set
  • Example#1068 - Fetching all values of a single column from a result set
  • Example#1069 - Grouping all values by a single column
  • Example#1070 - Instantiating a class for each result
  • Example#1071 - Calling a function for each result
  • Example#1072 - Return first column of the next row
  • Example#1073 - Retrieving column metadata
  • Example#1074 - Fetching multiple rowsets returned from a stored procedure
  • Example#1075 - Return the number of deleted rows
  • Example#1076 - Counting rows returned by a SELECT statement
  • Example#1077 - Definindo um modo de carga
  • Example#1078 - Inserir LOBs no CUBRID PDO
  • Example#1079 - Buscar LOBs no CUBRID PDO
  • Example#1080 - Inserir conjunto no CUBRID PDO com tipo de dado padrão.
  • Example#1081 - Especificar tipo de dado ao inserir conjunto no CUBRID PDO
  • Example#1082 - Exemplos de DSN PDO_CUBRID
  • Example#1083 - A PDO::cubrid_schema example
  • Example#1084 - PDO_DBLIB DSN examples
  • Example#1085 - PDO_FIREBIRD DSN example with path
  • Example#1086 - PDO_FIREBIRD DSN example with port and path
  • Example#1087 - PDO_FIREBIRD DSN example with localhost and path to employee.fdb on Debian system
  • Example#1088 - PDO_FIREBIRD DSN to connect to a dialect 1 database
  • Example#1089 - PDO_IBM DSN example using db2cli.ini
  • Example#1090 - PDO_IBM DSN example using a connection string
  • Example#1091 - PDO_INFORMIX DSN example using odbc.ini
  • Example#1092 - PDO_INFORMIX DSN example using a connection string
  • Example#1093 - Configurando o mode sem buffer no MySQL
  • Example#1094 - PDO_MYSQL DSN examples
  • Example#1095 - PDO_SQLSRV DSN examples
  • Example#1096 - PDO_OCI DSN examples
  • Example#1097 - PDO_ODBC DSN example (ODBC driver manager)
  • Example#1098 - PDO_ODBC DSN example (IBM DB2 uncataloged connection)
  • Example#1099 - PDO_ODBC DSN example (Microsoft Access uncataloged connection)
  • Example#1100 - PDO_PGSQL DSN examples
  • Example#1101 - A PDO::pgsqlLOBCreate example
  • Example#1102 - A PDO::pgsqlLOBOpen example
  • Example#1103 - A PDO::pgsqlLOBUnlink example
  • Example#1104 - Exemplos de DSN PDO_SQLITE
  • Example#1105 - Exemplo de função de agregação max_length
  • Example#1106 - Exemplo de PDO::sqliteCreateCollation
  • Example#1107 - Exemplo de PDO::sqliteCreateFunction
  • Example#1108 - Example of Data Retrieval
  • Example#1109 - Example of Data Insertion
  • Example#1110 - cubrid_bind example
  • Example#1111 - cubrid_bind BLOB/CLOB example
  • Example#1112 - cubrid_bind BLOB/CLOB example
  • Example#1113 - cubrid_close_prepare example
  • Example#1114 - cubrid_close_request example
  • Example#1115 - cubrid_col_get example
  • Example#1116 - cubrid_col_size example
  • Example#1117 - cubrid_column_names example
  • Example#1118 - cubrid_column_types example
  • Example#1119 - cubrid_commit example
  • Example#1120 - cubrid_connect_with_url url without properties example
  • Example#1121 - cubrid_connect_with_url url with properties example
  • Example#1122 - cubrid_connect example
  • Example#1123 - cubrid_current_oid example
  • Example#1124 - cubrid_disconnect example
  • Example#1125 - cubrid_drop example
  • Example#1126 - cubrid_error_code_facility example
  • Example#1127 - cubrid_error_code example
  • Example#1128 - cubrid_error_msg example
  • Example#1129 - cubrid_execute example
  • Example#1130 - cubrid_fetch example
  • Example#1131 - cubrid_free_result example
  • Example#1132 - cubrid_get_charset example
  • Example#1133 - cubrid_get_class_name example
  • Example#1134 - cubrid_get_client_info example
  • Example#1135 - cubrid_get_db_parameter example
  • Example#1136 - cubrid_get_query_timeout example
  • Example#1137 - cubrid_get_server_info example
  • Example#1138 - cubrid_get example
  • Example#1139 - cubrid_insert_id example
  • Example#1140 - cubrid_is_instance example
  • Example#1141 - cubrid_lob_close example
  • Example#1142 - cubrid_lob_export example
  • Example#1143 - cubrid_lob_get example
  • Example#1144 - cubrid_lob_send example
  • Example#1145 - cubrid_lob_size example
  • Example#1146 - cubrid_lob2_bind example
  • Example#1147 - cubrid_lob2_export example
  • Example#1148 - cubrid_lob2_export example
  • Example#1149 - cubrid_lob2_read example 1
  • Example#1150 - cubrid_lob2_read example 2
  • Example#1151 - cubrid_lob2_seek64 example
  • Example#1152 - cubrid_lob2_seek example
  • Example#1153 - cubrid_lob2_write example 1
  • Example#1154 - cubrid_lob2_write example 2
  • Example#1155 - cubrid_lock_read example
  • Example#1156 - cubrid_lock_write example
  • Example#1157 - cubrid_move_cursor example
  • Example#1158 - cubrid_next_result example
  • Example#1159 - cubrid_num_cols example
  • Example#1160 - cubrid_num_rows example
  • Example#1161 - cubrid_pconnect_with_url url without properties example
  • Example#1162 - cubrid_pconnect_with_url url with properties example
  • Example#1163 - cubrid_connect example
  • Example#1164 - cubrid_prepare example
  • Example#1165 - cubrid_put example
  • Example#1166 - cubrid_rollback example
  • Example#1167 - cubrid_schema example
  • Example#1168 - cubrid_seq_drop example
  • Example#1169 - cubrid_seq_insert example
  • Example#1170 - cubrid_seq_put example
  • Example#1171 - cubrid_set_add example
  • Example#1172 - cubrid_get_db_parameter example
  • Example#1173 - cubrid_set_drop example
  • Example#1174 - cubrid_version example
  • Example#1175 - cubrid_affected_rows example
  • Example#1176 - cubrid_client_encoding example
  • Example#1177 - cubrid_close example
  • Example#1178 - cubrid_data_seek example
  • Example#1179 - cubrid_db_name example
  • Example#1180 - cubrid_errno example
  • Example#1181 - cubrid_error example
  • Example#1182 - cubrid_fetch_array example
  • Example#1183 - cubrid_fetch_assoc example
  • Example#1184 - cubrid_fetch_field example
  • Example#1185 - cubrid_fetch_lengths example
  • Example#1186 - cubrid_fetch_object example
  • Example#1187 - cubrid_fetch_row example
  • Example#1188 - cubrid_field_flags example
  • Example#1189 - cubrid_field_len example
  • Example#1190 - cubrid_field_name example
  • Example#1191 - cubrid_field_seek example
  • Example#1192 - cubrid_field_table example
  • Example#1193 - cubrid_field_type example
  • Example#1194 - cubrid_list_dbs example
  • Example#1195 - cubrid_num_fields example
  • Example#1196 - cubrid_ping example
  • Example#1197 - Invalid Query
  • Example#1198 - Valid Query
  • Example#1199 - cubrid_real_escape_string example
  • Example#1200 - cubrid_result example
  • Example#1201 - cubrid_unbuffered_query example
  • Example#1202 - cubrid_load_from_glo example
  • Example#1203 - cubrid_new_glo example
  • Example#1204 - cubrid_save_to_glo example
  • Example#1205 - cubrid_send_glo example
  • Example#1206 - Inserindo um registro num banco de dados dBase
  • Example#1207 - Fechando um banco de dados dBase
  • Example#1208 - Criando um arquivo de banco de dados dBase
  • Example#1209 - Mostrando informações do banco de dados de um arquivo dBase
  • Example#1210 - Listando todos os membros registrados no banco de dados
  • Example#1211 - Exemplo dbase_numfields
  • Example#1212 - Lendo todos os registros de um banco de dados
  • Example#1213 - Abrindo um banco de dados dBase
  • Example#1214 - Limpando um banco de dados dBase
  • Example#1215 - Atualizando um registro no banco de dados
  • Example#1216 - ibase_backup example
  • Example#1217 - ibase_backup example with arguments
  • Example#1218 - Exemplo da ibase_blob_get
  • Example#1219 - Exemplo da ibase_blob_import
  • Example#1220 - Exemplo de ibase_connect
  • Example#1221 - Exemplo de ibase_execute
  • Example#1222 - ibase_fetch_object example
  • Example#1223 - Exemplo da ibase_field_info
  • Example#1224 - Exemplo da ibase_name_result
  • Example#1225 - Exemplo da ibase_num_fields
  • Example#1226 - Exemplo de ibase_query
  • Example#1227 - ibase_restore example
  • Example#1228 - ibase_restore example with arguments
  • Example#1229 - ibase_service_attach example
  • Example#1230 - ibase_service_attach example
  • Example#1231 - ibase_service_attach example using hostname/port syntax
  • Example#1232 - ibase_service_detach example
  • Example#1233 - ibase_set_event_handler example
  • Example#1234 - Retrieving the AUTOCOMMIT value for a connection
  • Example#1235 - Setting the AUTOCOMMIT value for a connection
  • Example#1236 - Binding PHP variables to a prepared statement
  • Example#1237 - Calling stored procedures with IN and OUT parameters
  • Example#1238 - Inserting a binary large object (BLOB) directly from a file
  • Example#1239 - A db2_client_info example
  • Example#1240 - Closing a connection
  • Example#1241 - Retrieving an SQLSTATE value for a failed connection attempt
  • Example#1242 - Retrieving the error message returned by a failed connection attempt
  • Example#1243 - Creating a cataloged connection
  • Example#1244 - Creating an uncataloged connection
  • Example#1245 - Creating a connection with autocommit off by default
  • Example#1246 - i5/OS best performance
  • Example#1247 - Using trusted context
  • Example#1248 - A db2_escape_string example
  • Example#1249 - Creating a table with db2_exec
  • Example#1250 - Executing a SELECT statement with a scrollable cursor
  • Example#1251 - Returning XML data as an SQL ResultSet
  • Example#1252 - Performing a "JOIN" with XML data
  • Example#1253 - Returning SQL data as part of a larger XML document
  • Example#1254 - Preparing and executing an SQL statement with parameter markers
  • Example#1255 - Calling a stored procedure with an OUT parameter
  • Example#1256 - Returning XML data as an SQL ResultSet
  • Example#1257 - Performing a "JOIN" with XML data
  • Example#1258 - Returning SQL data as part of a larger XML document
  • Example#1259 - Iterating through a forward-only cursor
  • Example#1260 - Retrieving specific rows with db2_fetch_array from a scrollable cursor
  • Example#1261 - Iterating through a forward-only cursor
  • Example#1262 - Retrieving specific rows with db2_fetch_assoc from a scrollable cursor
  • Example#1263 - Iterating through a forward-only cursor
  • Example#1264 - Retrieving specific rows with db2_fetch_both from a scrollable cursor
  • Example#1265 - A db2_fetch_object example
  • Example#1266 - Iterating through a result set
  • Example#1267 - i5/OS recommended alternatives to db2_fetch_row/db2_result
  • Example#1268 - Setting and retrieving parameters through a connection resource
  • Example#1269 - A db2_last_insert_id example
  • Example#1270 - Iterating through different types of data
  • Example#1271 - Calling a stored procedure that returns multiple result sets
  • Example#1272 - Retrieving the number of fields in a result set
  • Example#1273 - Closing a persistent connection
  • Example#1274 - A db2_pconnect example
  • Example#1275 - Using trusted context
  • Example#1276 - Preparing and executing an SQL statement with parameter markers
  • Example#1277 - A db2_result example
  • Example#1278 - Rolling back a DELETE statement
  • Example#1279 - A db2_server_info example
  • Example#1280 - Setting one parameter with a connection resource
  • Example#1281 - Setting multiple parameters with a connection resource
  • Example#1282 - Setting multiple parameters with an invalid key
  • Example#1283 - Setting multiple parameters with an invalid value
  • Example#1284 - Setting multiple parameters with a connection resource and the wrong type
  • Example#1285 - Setting multiple parameters with the wrong resource
  • Example#1286 - Putting it all together
  • Example#1287 - i5/OS cursors are read-only
  • Example#1288 - MongoDB\Driver\Manager::__construct basic example
  • Example#1289 - MongoDB\Driver\Manager::__construct basic examples
  • Example#1290 - MongoDB\Driver\Manager::executeBulkWrite example
  • Example#1291 - MongoDB\Driver\Manager::executeCommand with a command returning a single result document
  • Example#1292 - MongoDB\Driver\Manager::executeCommand with a command returning a cursor
  • Example#1293 - Limiting execution time for a command
  • Example#1294 - MongoDB\Driver\Manager::executeQuery example
  • Example#1295 - Limiting execution time for a query
  • Example#1296 - MongoDB\Driver\Manager::getReadConcern example
  • Example#1297 - MongoDB\Driver\Manager::getReadPreference example
  • Example#1298 - MongoDB\Driver\Manager::getServers example
  • Example#1299 - MongoDB\Driver\Manager::getWriteConcern example
  • Example#1300 - Composing MongoDB\Driver\Command to provide a helper to create collections
  • Example#1301 - MongoDB\Driver\Command::__construct example
  • Example#1302 - MongoDB\Driver\Command::__construct example
  • Example#1303 - MongoDB\Driver\Query::__construct example
  • Example#1304 - Mixed write operations are grouped by type
  • Example#1305 - Ordered write operations causing an error
  • Example#1306 - MongoDB\Driver\BulkWrite::__construct example
  • Example#1307 - MongoDB\Driver\BulkWrite::count example
  • Example#1308 - MongoDB\Driver\BulkWrite::delete example
  • Example#1309 - MongoDB\Driver\BulkWrite::insert example
  • Example#1310 - MongoDB\Driver\BulkWrite::update example
  • Example#1311 - Declare an API version on a manager
  • Example#1312 - Declare a strict API version on a manager
  • Example#1313 - MongoDB\Driver\WriteConcern::bsonSerialize with majority write concern
  • Example#1314 - MongoDB\Driver\WriteConcern::bsonSerialize with wtimeout and journal
  • Example#1315 - MongoDB\Driver\WriteConcern::__construct example
  • Example#1316 - MongoDB\Driver\WriteConcern::getJournal example
  • Example#1317 - MongoDB\Driver\WriteConcern::getW example
  • Example#1318 - MongoDB\Driver\WriteConcern::getWtimeout example
  • Example#1319 - MongoDB\Driver\WriteConcern::isDefault example
  • Example#1320 - MongoDB\Driver\ReadPreference::bsonSerialize with primary read preference
  • Example#1321 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and tag sets
  • Example#1322 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and max staleness
  • Example#1323 - MongoDB\Driver\ReadPreference::__construct example
  • Example#1324 - MongoDB\Driver\ReadPreference::getMaxStalenessSeconds example
  • Example#1325 - MongoDB\Driver\ReadPreference::getMode example
  • Example#1326 - MongoDB\Driver\ReadPreference::getModeString example
  • Example#1327 - MongoDB\Driver\ReadPreference::getTagSets example
  • Example#1328 - MongoDB\Driver\ReadConcern::bsonSerialize with empty read concern
  • Example#1329 - MongoDB\Driver\ReadConcern::bsonSerialize with local read concern
  • Example#1330 - MongoDB\Driver\ReadConcern::__construct example
  • Example#1331 - MongoDB\Driver\ReadConcern::getLevel example
  • Example#1332 - MongoDB\Driver\ReadConcern::isDefault example
  • Example#1333 - Reading a result set
  • Example#1334 - Reading a result set for a tailable cursor
  • Example#1335 - MongoDB\Driver\Cursor::getId example
  • Example#1336 - MongoDB\Driver\Cursor::getServer example
  • Example#1337 - MongoDB\Driver\Cursor::isDead example
  • Example#1338 - MongoDB\Driver\Cursor::setTypeMap example
  • Example#1339 - MongoDB\Driver\Cursor::toArray example
  • Example#1340 - MongoDB\Driver\CursorId::__toString example
  • Example#1341 - MongoDB\Driver\Server::getHost example
  • Example#1342 - MongoDB\Driver\Server::getInfo example
  • Example#1343 - MongoDB\Driver\Server::getLatency example
  • Example#1344 - MongoDB\Driver\Server::getPort example
  • Example#1345 - MongoDB\Driver\WriteConcernError::getCode example
  • Example#1346 - MongoDB\Driver\WriteConcernError::getInfo example
  • Example#1347 - MongoDB\Driver\WriteConcernError::getMessage example
  • Example#1348 - MongoDB\Driver\WriteError::getCode example
  • Example#1349 - MongoDB\Driver\WriteError::getIndex example
  • Example#1350 - MongoDB\Driver\WriteError::getMessage example
  • Example#1351 - MongoDB\Driver\WriteResult::getDeletedCount example
  • Example#1352 - MongoDB\Driver\WriteResult::getInsertedCount example
  • Example#1353 - MongoDB\Driver\WriteResult::getMatchedCount example
  • Example#1354 - MongoDB\Driver\WriteResult::getModifiedCount example
  • Example#1355 - MongoDB\Driver\WriteResult::getServer example
  • Example#1356 - MongoDB\Driver\WriteResult::getUpsertedCount example
  • Example#1357 - MongoDB\Driver\WriteResult::getUpsertedIds example
  • Example#1358 - MongoDB\Driver\WriteResult::getWriteConcernError example
  • Example#1359 - MongoDB\Driver\WriteResult::getWriteErrors with a single error
  • Example#1360 - MongoDB\Driver\WriteResult::getWriteErrors with multiple errors
  • Example#1361 - MongoDB\Driver\WriteResult::isAcknowledged with acknowledged write concern
  • Example#1362 - MongoDB\Driver\WriteResult::isAcknowledged with unacknowledged write concern
  • Example#1363 - MongoDB\BSON\fromJSON example
  • Example#1364 - MongoDB\BSON\fromPHP example
  • Example#1365 - MongoDB\BSON\toCanonicalExtendedJSON example
  • Example#1366 - MongoDB\BSON\toJSON example
  • Example#1367 - MongoDB\BSON\toPHP example
  • Example#1368 - MongoDB\BSON\toRelaxedExtendedJSON example
  • Example#1369 - MongoDB\BSON\Document::toCanonicalExtendedJSON example
  • Example#1370 - MongoDB\BSON\Document::toRelaxedExtendedJSON example
  • Example#1371 - MongoDB\BSON\Binary::__construct example
  • Example#1372 - MongoDB\BSON\Binary::getData example
  • Example#1373 - MongoDB\BSON\Binary::getType example
  • Example#1374 - MongoDB\BSON\Binary::__toString example
  • Example#1375 - MongoDB\BSON\Decimal128::__construct example
  • Example#1376 - MongoDB\BSON\Decimal128::__toString example
  • Example#1377 - MongoDB\BSON\Javascript::__construct example
  • Example#1378 - MongoDB\BSON\Javascript::getCode example
  • Example#1379 - MongoDB\BSON\Javascript::getScope example
  • Example#1380 - MongoDB\BSON\Javascript::__toString example
  • Example#1381 - MongoDB\BSON\MaxKey::__construct example
  • Example#1382 - MongoDB\BSON\MinKey::__construct example
  • Example#1383 - MongoDB\BSON\ObjectId::__construct example
  • Example#1384 - MongoDB\BSON\ObjectId::getTimestamp example
  • Example#1385 - MongoDB\BSON\ObjectId::__toString example
  • Example#1386 - MongoDB\BSON\Regex::__construct example
  • Example#1387 - MongoDB\BSON\Regex::getFlags example
  • Example#1388 - MongoDB\BSON\Regex::getPattern example
  • Example#1389 - MongoDB\BSON\Regex::__toString example
  • Example#1390 - MongoDB\BSON\Timestamp::__construct example
  • Example#1391 - MongoDB\BSON\Timestamp::__toString example
  • Example#1392 - MongoDB\BSON\UTCDateTime::__construct example
  • Example#1393 - MongoDB\BSON\UTCDatetime::toDateTime example
  • Example#1394 - MongoDB\BSON\UTCDateTime::__toString example
  • Example#1395 - MongoDB\BSON\Serializable::bsonSerialize returning an associative array for root document
  • Example#1396 - MongoDB\BSON\Serializable::bsonSerialize returning a sequential array for root document
  • Example#1397 - MongoDB\BSON\Serializable::bsonSerialize returning an associative array for document field
  • Example#1398 - MongoDB\BSON\Serializable::bsonSerialize returning a sequential array for document field
  • Example#1399 - MongoDB\BSON\Unserializable::bsonUnserialize example
  • Example#1400 - MongoDB\BSON\Int64::__toString example
  • Example#1401 - MongoDB\Driver\Exception\WriteException::getWriteResult example
  • Example#1402 - Comparando as APIs do MySQL
  • Example#1403 - Comparando instruções preparadas
  • Example#1404 - Comandos de configuração para usar mysqlnd ou libmysqlclient
  • Example#1405 - Exemplo de consulta sem buffer: mysqli
  • Example#1406 - Exemplo de consulta sem buffer: pdo_mysql
  • Example#1407 - Problemas ao definir o conjunto de caracteres com SQL
  • Example#1408 - Exemplo de definição do conjunto de caracteres: mysqli
  • Example#1409 - Exemplo de definição do conjunto de caracteres: pdo_mysql
  • Example#1410 - Migração fácil da antiga extensão mysql
  • Example#1411 - Interface orientada a objeto e procedural
  • Example#1412 - Estilo de código ruim
  • Example#1413 - Significado especial de localhost
  • Example#1414 - Padrões de configuração
  • Example#1415 - Executando consultas
  • Example#1416 - Navegando através de resultados em buffer
  • Example#1417 - Navegando através de resultados sem buffer
  • Example#1418 - Protocolo de texto retorna strings por padrão
  • Example#1419 - Tipos de dados nativos com mysqlnd e opção de conexão
  • Example#1420 - Instrução preparada
  • Example#1421 - INSERT preparado uma vez, executado múltiplas vezes
  • Example#1422 - Menos idas e voltas usando o multi-INSERT do SQL
  • Example#1423 - Tipos nativos de dados
  • Example#1424 - Vinculação de variável de saída
  • Example#1425 - Usando mysqli_result para receber resultados
  • Example#1426 - Conjunto de resultados com buffer para leitura flexível
  • Example#1427 - Chamando um procedimento armazenado
  • Example#1428 - Uso de variáveis de sessão
  • Example#1429 - Recebendo resultados de procedimentos armazenados
  • Example#1430 - Procedimentos Armazenados e Instruções Preparadas
  • Example#1431 - Procedimentos Armazenados e Instruções Preparadas usando a API bind
  • Example#1432 - Instruções Múltiplas
  • Example#1433 - Injeção SQL
  • Example#1434 - Configurando o modo autocommit com SQL e através da API
  • Example#1435 - Enviando e desfazendo transações
  • Example#1436 - Acessando metadados do conjunto de resultados
  • Example#1437 - Metadados de instruções preparadas
  • Example#1438 - Exemplo de $mysqli->affected_rows
  • Example#1439 - Exemplo de mysqli::autocommit
  • Example#1440 - mysqli::begin_transaction exemplo
  • Example#1441 - Exemplo de mysqli::change_user
  • Example#1442 - Exemplo de mysqli::character_set_name
  • Example#1443 - Exemplo de mysqli::close
  • Example#1444 - Exemplo de $mysqli->connect_errno
  • Example#1445 - Exemplo de $mysqli->connect_error
  • Example#1446 - Exemplo d emysqli::__construct
  • Example#1447 - Estendendo a classe mysqli
  • Example#1448 - Tratamento manual de erros
  • Example#1449 - Gerando um Aqruivo de Rastreamento
  • Example#1450 - Exemplo de $mysqli->errno
  • Example#1451 - $mysqli->error_list exemplo
  • Example#1452 - Exemplo de $mysqli->error
  • Example#1453 - mysqli::execute_query exemplo
  • Example#1454 - Exemplo de $mysqli->field_count
  • Example#1455 - mysqli::get_charset exemplo
  • Example#1456 - mysqli_get_client_info
  • Example#1457 - mysqli_get_client_version
  • Example#1458 - mysqli_get_connection_stats exemplo
  • Example#1459 - Exemplo de $mysqli->host_info
  • Example#1460 - Exemplo de $mysqli->protocol_version
  • Example#1461 - Exemplo de $mysqli->server_info
  • Example#1462 - Exemplo de $mysqli->server_version
  • Example#1463 - Exemplo de $mysqli->info
  • Example#1464 - Exemplo de $mysqli->insert_id
  • Example#1465 - Exemplo de mysqli::kill
  • Example#1466 - Exemplo de mysqli::multi_query
  • Example#1467 - mysqli::ping exemplo
  • Example#1468 - Um exemplo de mysqli_poll
  • Example#1469 - mysqli::prepare exemplo
  • Example#1470 - mysqli::query exemplo
  • Example#1471 - mysqli::real_connect exemplo
  • Example#1472 - mysqli::real_escape_string exemplo
  • Example#1473 - mysqli::select_db exemplo
  • Example#1474 - mysqli::set_charset exemplo
  • Example#1475 - $mysqli->sqlstate example
  • Example#1476 - mysqli::stat exemplo
  • Example#1477 - $mysqli->thread_id exemplo
  • Example#1478 - mysqli::use_result exemplo
  • Example#1479 - $mysqli->warning_count exemplo
  • Example#1480 - Exemplo de mysqli_stmt_affected_rows
  • Example#1481 - Exemplo de mysqli_stmt::bind_param
  • Example#1482 - Usando ... para fornecer argumentos
  • Example#1483 - Estilo orientado a objetos
  • Example#1484 - Estilo procedural
  • Example#1485 - Estilo orientado a objetos
  • Example#1486 - Estilo procedural
  • Example#1487 - Estilo orientado a objetos
  • Example#1488 - Estilo procedural
  • Example#1489 - Estilo orientado a objetos
  • Example#1490 - Estilo procedural
  • Example#1491 - Estilo orientado a objetos
  • Example#1492 - Estilo procedural
  • Example#1493 - Executa a instrução preparada com variáveis vinculadas
  • Example#1494 - Executa uma isntrução preparada com um array de valores
  • Example#1495 - Estilo orientado a objetos
  • Example#1496 - Estilo procedural
  • Example#1497 - Estilo orientado a objetos
  • Example#1498 - Estilo procedural
  • Example#1499 - Estilo orientado a objetos
  • Example#1500 - Estilo procedural
  • Example#1501 - Estilo orientado a objetos
  • Example#1502 - Estilo procedural
  • Example#1503 - Estilo orientado a objetos
  • Example#1504 - Estilo procedural
  • Example#1505 - Exemplo de mysqli_stmt::prepare
  • Example#1506 - Estilo orientado a objetos
  • Example#1507 - Estilo procedural
  • Example#1508 - Estilo orientado a objetos
  • Example#1509 - Estilo orientado a objetos
  • Example#1510 - Estilo procedural
  • Example#1511 - Estilo orientado a objetos
  • Example#1512 - Estilo procedural
  • Example#1513 - Criação de um objeto mysqli_result
  • Example#1514 - Estilo orientado a objetos
  • Example#1515 - Estilo procedural
  • Example#1516 - mysqli::data_seek example
  • Example#1517 - Ajustando o ponteiro de resultado na iteração
  • Example#1518 - Exemplo de mysqli_result::fetch_all
  • Example#1519 - Exemplo de mysqli_result::fetch_array
  • Example#1520 - Exemplo de mysqli_result::fetch_assoc
  • Example#1521 - Comparação de mysqli_result iterator e uso de mysqli_result::fetch_assoc
  • Example#1522 - Exemplo de mysqli_result::fetch_column
  • Example#1523 - Estilo orientado a objetos
  • Example#1524 - Estilo procedural
  • Example#1525 - Estilo orientado a objetos
  • Example#1526 - Estilo procedural
  • Example#1527 - Estilo orientado a objetos
  • Example#1528 - Estilo procedural
  • Example#1529 - Exemplo de mysqli_result::fetch_object
  • Example#1530 - Exemplo de mysqli_result::fetch_row
  • Example#1531 - Estilo orientado a objetos
  • Example#1532 - Estilo procedural
  • Example#1533 - Estilo orientado a objetos
  • Example#1534 - Estilo procedural
  • Example#1535 - Estilo orientado a objetos
  • Example#1536 - Estilo procedural
  • Example#1537 - Estilo orientado a objetos
  • Example#1538 - Estilo procedural
  • Example#1539 - Estilo orientado a objetos
  • Example#1540 - Estilo procedural
  • Example#1541 - Relatório de erros, exceto erros de índice ruim
  • Example#1542 - mysqli_get_client_stats exemplo
  • Example#1543 - Connecting to a MySQL Server
  • Example#1544 - Creating a Schema and Collection on the MySQL Server
  • Example#1545 - Storing and Retrieving Data
  • Example#1546 - Fetching and Iterating Multiple Documents
  • Example#1547 - mysql_xdevapi\Expression example
  • Example#1548 - URI examples
  • Example#1549 - mysql_xdevapi\getSession example
  • Example#1550 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1551 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1552 - mysql_xdevapi\Client::__construct example
  • Example#1553 - mysql_xdevapi\Collection::add example
  • Example#1554 - mysql_xdevapi\Collection::addOrReplaceOne example
  • Example#1555 - mysql_xdevapi\Collection::getOne example
  • Example#1556 - mysql_xdevapi\Collection::count example
  • Example#1557 - mysql_xdevapi\Collection::createIndex example
  • Example#1558 - mysql_xdevapi\Collection::dropIndex example
  • Example#1559 - mysql_xdevapi\Collection::existsInDatabase example
  • Example#1560 - mysql_xdevapi\Collection::find example
  • Example#1561 - mysql_xdevapi\Collection::getName example
  • Example#1562 - mysql_xdevapi\Collection::getOne example
  • Example#1563 - mysql_xdevapi\Collection::getSchema example
  • Example#1564 - mysql_xdevapi\Collection::getSession example
  • Example#1565 - mysql_xdevapi\Collection::modify example
  • Example#1566 - mysql_xdevapi\Collection::remove example
  • Example#1567 - mysql_xdevapi\Collection::removeOne example
  • Example#1568 - mysql_xdevapi\Collection::replaceOne example
  • Example#1569 - mysql_xdevapi\CollectionAdd::__construct example
  • Example#1570 - mysql_xdevapi\CollectionAdd::execute example
  • Example#1571 - mysql_xdevapi\CollectionFind::bind example
  • Example#1572 - CollectionFind example
  • Example#1573 - CollectionFind example
  • Example#1574 - mysql_xdevapi\CollectionFind::fields example
  • Example#1575 - mysql_xdevapi\CollectionFind::groupBy example
  • Example#1576 - mysql_xdevapi\CollectionFind::having example
  • Example#1577 - mysql_xdevapi\CollectionFind::limit example
  • Example#1578 - mysql_xdevapi\CollectionFind::lockExclusive example
  • Example#1579 - mysql_xdevapi\CollectionFind::lockShared example
  • Example#1580 - mysql_xdevapi\CollectionFind::offset example
  • Example#1581 - mysql_xdevapi\CollectionFind::sort example
  • Example#1582 - mysql_xdevapi\CollectionModify::arrayAppend example
  • Example#1583 - mysql_xdevapi\CollectionModify::arrayInsert example
  • Example#1584 - mysql_xdevapi\CollectionModify::bind example
  • Example#1585 - mysql_xdevapi\CollectionModify::__construct example
  • Example#1586 - mysql_xdevapi\CollectionModify::execute example
  • Example#1587 - mysql_xdevapi\CollectionModify::limit example
  • Example#1588 - mysql_xdevapi\CollectionModify::patch example
  • Example#1589 - mysql_xdevapi\CollectionModify::replace example
  • Example#1590 - mysql_xdevapi\CollectionModify::set example
  • Example#1591 - mysql_xdevapi\CollectionModify::skip example
  • Example#1592 - mysql_xdevapi\CollectionModify::sort example
  • Example#1593 - mysql_xdevapi\CollectionModify::unset example
  • Example#1594 - mysql_xdevapi\CollectionRemove::bind example
  • Example#1595 - mysql_xdevapi\Collection::remove example
  • Example#1596 - mysql_xdevapi\CollectionRemove::execute example
  • Example#1597 - mysql_xdevapi\CollectionRemove::limit example
  • Example#1598 - mysql_xdevapi\CollectionRemove::sort example
  • Example#1599 - mysql_xdevapi\ColumnResult::__construct example
  • Example#1600 - mysql_xdevapi\ColumnResult::getCharacterSetName example
  • Example#1601 - mysql_xdevapi\ColumnResult::getCollationName example
  • Example#1602 - mysql_xdevapi\ColumnResult::getColumnLabel example
  • Example#1603 - mysql_xdevapi\ColumnResult::getColumnName example
  • Example#1604 - mysql_xdevapi\ColumnResult::getFractionalDigits example
  • Example#1605 - mysql_xdevapi\ColumnResult::getLength example
  • Example#1606 - mysql_xdevapi\ColumnResult::getSchemaName example
  • Example#1607 - mysql_xdevapi\ColumnResult::getTableLabel example
  • Example#1608 - mysql_xdevapi\ColumnResult::getTableName example
  • Example#1609 - mysql_xdevapi\ColumnResult::getType example
  • Example#1610 - mysql_xdevapi\ColumnResult::isNumberSigned example
  • Example#1611 - mysql_xdevapi\ColumnResult::isPadded example
  • Example#1612 - mysql_xdevapi\CrudOperationBindable::bind example
  • Example#1613 - mysql_xdevapi\CrudOperationLimitable::limit example
  • Example#1614 - mysql_xdevapi\CrudOperationSkippable::skip example
  • Example#1615 - mysql_xdevapi\CrudOperationSortable::sort example
  • Example#1616 - mysql_xdevapi\DatabaseObject::existsInDatabase example
  • Example#1617 - mysql_xdevapi\DatabaseObject::getName example
  • Example#1618 - mysql_xdevapi\DatabaseObject::getSession example
  • Example#1619 - A DocResult example
  • Example#1620 - mysql_xdevapi\DocResult::fetchAll example
  • Example#1621 - mysql_xdevapi\DocResult::fetchOne example
  • Example#1622 - mysql_xdevapi\DocResult::getWarnings example
  • Example#1623 - mysql_xdevapi\DocResult::getWarningsCount example
  • Example#1624 - execute() examples
  • Example#1625 - mysql_xdevapi\ExecutionStatus::__construct example
  • Example#1626 - mysql_xdevapi\Expression::__construct example
  • Example#1627 - mysql_xdevapi\Result::__construct example
  • Example#1628 - mysql_xdevapi\Result::getAffectedItemsCount example
  • Example#1629 - mysql_xdevapi\Result::getAutoIncrementValue example
  • Example#1630 - mysql_xdevapi\Result::getGeneratedIds example
  • Example#1631 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1632 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1633 - mysql_xdevapi\RowResult::__construct example
  • Example#1634 - mysql_xdevapi\RowResult::fetchAll example
  • Example#1635 - mysql_xdevapi\RowResult::fetchOne example
  • Example#1636 - mysql_xdevapi\RowResult::getColumnsCount example
  • Example#1637 - mysql_xdevapi\RowResult::getColumnNames example
  • Example#1638 - mysql_xdevapi\RowResult::getColumns example
  • Example#1639 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1640 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1641 - mysql_xdevapi\Schema::__construct example
  • Example#1642 - mysql_xdevapi\Schema::createCollection example
  • Example#1643 - mysql_xdevapi\Schema::createCollection example
  • Example#1644 - mysql_xdevapi\Schema::dropCollection example
  • Example#1645 - mysql_xdevapi\Schema::existsInDatabase example
  • Example#1646 - mysql_xdevapi\Schema::getCollection example
  • Example#1647 - mysql_xdevapi\Schema::getCollectionAsTable example
  • Example#1648 - mysql_xdevapi\Schema::getCollections example
  • Example#1649 - mysql_xdevapi\Schema::getName example
  • Example#1650 - mysql_xdevapi\Schema::getSession example
  • Example#1651 - mysql_xdevapi\Schema::getTable example
  • Example#1652 - mysql_xdevapi\Schema::getTables example
  • Example#1653 - mysql_xdevapi\Session::getSchema example
  • Example#1654 - mysql_xdevapi\Session::close example
  • Example#1655 - mysql_xdevapi\Session::commit example
  • Example#1656 - mysql_xdevapi\Session::__construct example
  • Example#1657 - mysql_xdevapi\Session::createSchema example
  • Example#1658 - mysql_xdevapi\Session::dropSchema example
  • Example#1659 - mysql_xdevapi\Session::generateUuid example
  • Example#1660 - mysql_xdevapi\Session::getSchema example
  • Example#1661 - mysql_xdevapi\Session::getSchema example
  • Example#1662 - mysql_xdevapi\Session::getSchemas example
  • Example#1663 - mysql_xdevapi\Session::getServerVersion example
  • Example#1664 - mysql_xdevapi\Session::listClients example
  • Example#1665 - mysql_xdevapi\Session::quoteName example
  • Example#1666 - mysql_xdevapi\Session::releaseSavepoint example
  • Example#1667 - mysql_xdevapi\Session::rollback example
  • Example#1668 - mysql_xdevapi\Session::rollbackTo example
  • Example#1669 - mysql_xdevapi\Session::setSavepoint example
  • Example#1670 - mysql_xdevapi\Session::sql example
  • Example#1671 - mysql_xdevapi\Session::startTransaction example
  • Example#1672 - mysql_xdevapi\SqlStatement::bind example
  • Example#1673 - mysql_xdevapi\SqlStatement::__construct example
  • Example#1674 - mysql_xdevapi\SqlStatement::execute example
  • Example#1675 - mysql_xdevapi\SqlStatement::getNextResult example
  • Example#1676 - mysql_xdevapi\SqlStatement::getResult example
  • Example#1677 - mysql_xdevapi\SqlStatement::hasMoreResults example
  • Example#1678 - mysql_xdevapi\SqlStatementResult::__construct example
  • Example#1679 - mysql_xdevapi\SqlStatementResult::fetchAll example
  • Example#1680 - mysql_xdevapi\SqlStatementResult::fetchOne example
  • Example#1681 - mysql_xdevapi\SqlStatementResult::getAffectedItemsCount example
  • Example#1682 - mysql_xdevapi\SqlStatementResult::getColumnsCount example
  • Example#1683 - mysql_xdevapi\SqlStatementResult::getColumnNames example
  • Example#1684 - mysql_xdevapi\SqlStatementResult::getColumns example
  • Example#1685 - mysql_xdevapi\SqlStatementResult::getGeneratedIds example
  • Example#1686 - mysql_xdevapi\SqlStatementResult::getLastInsertId example
  • Example#1687 - mysql_xdevapi\SqlStatementResult::getWarnings example
  • Example#1688 - mysql_xdevapi\SqlStatementResult::getWarningsCount example
  • Example#1689 - mysql_xdevapi\SqlStatementResult::hasData example
  • Example#1690 - mysql_xdevapi\SqlStatementResult::nextResult example
  • Example#1691 - mysql_xdevapi\Statement::__construct example
  • Example#1692 - mysql_xdevapi\Statement::getNextResult example
  • Example#1693 - mysql_xdevapi\Statement::getResult example
  • Example#1694 - mysql_xdevapi\Statement::hasMoreResults example
  • Example#1695 - mysql_xdevapi\Table::__construct example
  • Example#1696 - mysql_xdevapi\Table::count example
  • Example#1697 - mysql_xdevapi\Table::delete example
  • Example#1698 - mysql_xdevapi\Table::existsInDatabase example
  • Example#1699 - mysql_xdevapi\Table::getName example
  • Example#1700 - mysql_xdevapi\Table::getSchema example
  • Example#1701 - mysql_xdevapi\Table::getSession example
  • Example#1702 - mysql_xdevapi\Table::insert example
  • Example#1703 - mysql_xdevapi\Table::isView example
  • Example#1704 - mysql_xdevapi\Table::count example
  • Example#1705 - mysql_xdevapi\Table::update example
  • Example#1706 - mysql_xdevapi\TableDelete::bind example
  • Example#1707 - mysql_xdevapi\TableDelete::__construct example
  • Example#1708 - mysql_xdevapi\TableDelete::execute example
  • Example#1709 - mysql_xdevapi\TableDelete::limit example
  • Example#1710 - mysql_xdevapi\TableDelete::orderBy example
  • Example#1711 - mysql_xdevapi\TableDelete::where example
  • Example#1712 - mysql_xdevapi\TableInsert::__construct example
  • Example#1713 - mysql_xdevapi\TableInsert::execute example
  • Example#1714 - mysql_xdevapi\TableInsert::values example
  • Example#1715 - mysql_xdevapi\TableSelect::bind example
  • Example#1716 - mysql_xdevapi\TableSelect::__construct example
  • Example#1717 - mysql_xdevapi\TableSelect::execute example
  • Example#1718 - mysql_xdevapi\TableSelect::groupBy example
  • Example#1719 - mysql_xdevapi\TableSelect::having example
  • Example#1720 - mysql_xdevapi\TableSelect::limit example
  • Example#1721 - mysql_xdevapi\TableSelect::lockExclusive example
  • Example#1722 - mysql_xdevapi\TableSelect::lockShared example
  • Example#1723 - mysql_xdevapi\TableSelect::offset example
  • Example#1724 - mysql_xdevapi\TableSelect::orderBy example
  • Example#1725 - mysql_xdevapi\TableSelect::where example
  • Example#1726 - mysql_xdevapi\TableUpdate::bind example
  • Example#1727 - mysql_xdevapi\TableUpdate::__construct example
  • Example#1728 - mysql_xdevapi\TableUpdate::execute example
  • Example#1729 - mysql_xdevapi\TableUpdate::limit example
  • Example#1730 - mysql_xdevapi\TableUpdate::orderby example
  • Example#1731 - mysql_xdevapi\TableUpdate::set example
  • Example#1732 - mysql_xdevapi\TableUpdate::where example
  • Example#1733 - mysql_xdevapi\Warning::__construct example
  • Example#1734 - Exemplo de uso da extensão MySQL
  • Example#1735 - Exemplo mysql_affected_rows
  • Example#1736 - Exemplo de mysql_affected_rows usando transações
  • Example#1737 - mysql_client_encoding example
  • Example#1738 - Exemplo mysql_close
  • Example#1739 - mysql_connect example
  • Example#1740 - mysql_connect example using hostname:port syntax
  • Example#1741 - mysql_connect example using ":/path/to/socket" syntax
  • Example#1742 - Exemplo alternativo de mysql_create_db
  • Example#1743 - Exemplo mysql_data_seek
  • Example#1744 - Exemplo mysql_db_name
  • Example#1745 - mysql_db_query alternative example
  • Example#1746 - Exemplo alternativo de mysql_drop_db
  • Example#1747 - Exemplo mysql_errno
  • Example#1748 - Exemplo mysql_error
  • Example#1749 - Exemplo de mysql_escape_string
  • Example#1750 - Query with aliased duplicate field names
  • Example#1751 - mysql_fetch_array with MYSQL_NUM
  • Example#1752 - mysql_fetch_array with MYSQL_ASSOC
  • Example#1753 - mysql_fetch_array with MYSQL_BOTH
  • Example#1754 - Um exemplo expandido de mysql_fetch_assoc
  • Example#1755 - mysql_fetch_field example
  • Example#1756 - Exemplo mysql_fetch_lengths
  • Example#1757 - Exemplo mysql_fetch_object
  • Example#1758 - Exemplo mysql_fetch_object
  • Example#1759 - Obtendo uma linha com mysql_fetch_row
  • Example#1760 - A mysql_field_flags example
  • Example#1761 - mysql_field_len example
  • Example#1762 - Exemplo mysql_field_name
  • Example#1763 - Exemplo mysql_field_table
  • Example#1764 - Exemplo mysql_field_type
  • Example#1765 - A mysql_free_result example
  • Example#1766 - Exemplo mysql_get_client_info
  • Example#1767 - Exemplo mysql_get_host_info
  • Example#1768 - Exemplo mysql_get_proto_info
  • Example#1769 - Exemplo mysql_get_server_info
  • Example#1770 - Comandos MySQL relevantes
  • Example#1771 - Exemplo mysql_insert_id
  • Example#1772 - Exemplo mysql_list_dbs
  • Example#1773 - Alternativa para a função descontinuada mysql_list_fields
  • Example#1774 - Exemplo mysql_list_processes
  • Example#1775 - mysql_list_tables alternative example
  • Example#1776 - Exemplo mysql_num_fields
  • Example#1777 - Exemplo mysql_num_rows
  • Example#1778 - Exemplo mysql_ping
  • Example#1779 - Invalid Query
  • Example#1780 - Valid Query
  • Example#1781 - Simple mysql_real_escape_string example
  • Example#1782 - mysql_real_escape_string requires a connection example
  • Example#1783 - An example SQL Injection Attack
  • Example#1784 - mysql_result example
  • Example#1785 - mysql_select_db example
  • Example#1786 - mysql_stat example
  • Example#1787 - Alternative mysql_stat example
  • Example#1788 - mysql_tablename example
  • Example#1789 - mysql_thread_id example
  • Example#1790 - Consulta básica
  • Example#1791 - Inserindo com variáveis vinculadas
  • Example#1792 - Vinculando em cláusula WHERE de uma consulta
  • Example#1793 - Inserindo e recebendo um CLOB
  • Example#1794 - Usando uma função armazenada PL/SQL
  • Example#1795 - Usando um procedimento armazenado PL/SQL
  • Example#1796 - Chamando uma função PL/SQL que retorna um REF CURSOR
  • Example#1797 -
  • Example#1798 - user_oci8_probes.d for tracing all user-level PHP OCI8 Static Probes with DTrace
  • Example#1799 - oci_bind_array_by_name example
  • Example#1800 - Inserting data with oci_bind_by_name
  • Example#1801 - Binding once for multiple executions
  • Example#1802 - Binding with a foreach loop
  • Example#1803 - Binding in a WHERE clause
  • Example#1804 - Binding with a LIKE clause
  • Example#1805 - Binding with REGEXP_LIKE
  • Example#1806 - Binding Multiple Values in an IN Clause
  • Example#1807 - Binding a ROWID returned by a query
  • Example#1808 - Binding a ROWID on INSERT
  • Example#1809 - Binding for a PL/SQL stored function
  • Example#1810 - Binding parameters for a PL/SQL stored procedure
  • Example#1811 - Binding a CLOB column
  • Example#1812 - Binding a PL/SQL BOOLEAN
  • Example#1813 - oci_client_version example
  • Example#1814 - Closing a connection
  • Example#1815 - Database connections are not closed until all references are closed
  • Example#1816 - Closing a connection opened more than once
  • Example#1817 - Connections are closed when variables go out of scope
  • Example#1818 - oci_commit example
  • Example#1819 - Basic oci_connect using Easy Connect syntax
  • Example#1820 - Basic oci_connect using a Network Connect name
  • Example#1821 - oci_connect with an explicit character set
  • Example#1822 - Using multiple calls to oci_connect
  • Example#1823 - oci_define_by_name example
  • Example#1824 - oci_define_by_name with case sensitive column names
  • Example#1825 - oci_define_by_name with LOB columns
  • Example#1826 - oci_define_by_name with an explicit type
  • Example#1827 - Displaying the Oracle error message after a connection error
  • Example#1828 - Displaying the Oracle error message after a parsing error
  • Example#1829 - Displaying the Oracle error message, the problematic statement, and the position of the problem of an execution error
  • Example#1830 - oci_execute for queries
  • Example#1831 - oci_execute without specifying a mode example
  • Example#1832 - oci_execute with OCI_NO_AUTO_COMMIT example
  • Example#1833 - oci_execute with different commit modes example
  • Example#1834 - oci_execute with OCI_DESCRIBE_ONLY example
  • Example#1835 - oci_fetch_all example
  • Example#1836 - oci_fetch_all example with OCI_FETCHSTATEMENT_BY_ROW
  • Example#1837 - oci_fetch_all with OCI_NUM
  • Example#1838 - oci_fetch_array with OCI_BOTH
  • Example#1839 - oci_fetch_array with OCI_NUM
  • Example#1840 - oci_fetch_array with OCI_ASSOC
  • Example#1841 - oci_fetch_array with OCI_RETURN_NULLS
  • Example#1842 - oci_fetch_array with OCI_RETURN_LOBS
  • Example#1843 - oci_fetch_array with case sensitive column names
  • Example#1844 - oci_fetch_array with columns having duplicate names
  • Example#1845 - oci_fetch_array with DATE columns
  • Example#1846 - oci_fetch_array with REF CURSOR
  • Example#1847 - Pagination with oci_fetch_array using a LIMIT-like query
  • Example#1848 - oci_fetch_array with Oracle Database Implicit Result Sets
  • Example#1849 - oci_fetch_assoc Example
  • Example#1850 - oci_fetch_object example
  • Example#1851 - oci_fetch_object with case sensitive column names
  • Example#1852 - oci_fetch_object with LOBs
  • Example#1853 - oci_fetch_row Example
  • Example#1854 - oci_fetch with defined variables
  • Example#1855 - oci_fetch with oci_result
  • Example#1856 - oci_field_name example
  • Example#1857 - oci_field_name example
  • Example#1858 - oci_field_precision Example
  • Example#1859 - oci_field_scale Example
  • Example#1860 - oci_field_size example
  • Example#1861 - oci_field_type_raw Example
  • Example#1862 - oci_field_type example
  • Example#1863 - Fetching Implicit Result Sets in a loop
  • Example#1864 - Getting child statement handles individually
  • Example#1865 - Explicitly setting the Prefetch Count
  • Example#1866 - Implicit Result Set example without using oci_get_implicit_resultset
  • Example#1867 - oci_new_connect example
  • Example#1868 - Binding a REF CURSOR in an Oracle stored procedure call
  • Example#1869 - oci_new_descriptor example
  • Example#1870 - oci_new_descriptor example
  • Example#1871 - oci_num_fields example
  • Example#1872 - oci_num_rows example
  • Example#1873 - oci_parse example for SQL statements
  • Example#1874 - oci_parse example for PL/SQL statements
  • Example#1875 - oci_password_change example changing the password of an already connected user
  • Example#1876 - oci_password_change example of connecting and changing the password in one step
  • Example#1877 - Basic oci_pconnect Example using Easy Connect syntax
  • Example#1878 - oci_fetch with oci_result
  • Example#1879 - oci_rollback example
  • Example#1880 - Rolling back to a SAVEPOINT example
  • Example#1881 - oci_server_version example
  • Example#1882 - Setting the action
  • Example#1883 - Setting the timeout
  • Example#1884 - Setting the client identifier to the application user
  • Example#1885 - Setting the client information
  • Example#1886 - Setting the DBOP
  • Example#1887 - Two scripts can use different versions of myfunc() at the same time
  • Example#1888 - Setting the module name
  • Example#1889 - Changing the LOB prefetch value for a query
  • Example#1890 - Changing the default prefetch value for a query
  • Example#1891 - Changing the default prefetch for a REF CURSOR fetch
  • Example#1892 - Setting the prefetch value when passing a REF CURSOR back to Oracle
  • Example#1893 - oci_statement_type example
  • Example#1894 - Exemplo geral da extensão PostgreSQL
  • Example#1895 - Exemplo de funções definidas pelo usuário no PostgreSQL
  • Example#1896 - pg_affected_rows example
  • Example#1897 - pg_cancel_query example
  • Example#1898 - pg_client_encoding example
  • Example#1899 - pg_close example
  • Example#1900 - Using pg_connect
  • Example#1901 - pg_connection_busy example
  • Example#1902 - pg_connection_reset example
  • Example#1903 - pg_connection_status example
  • Example#1904 - pg_convert example
  • Example#1905 - pg_copy_from example
  • Example#1906 - pg_copy_to example
  • Example#1907 - pg_dbname example
  • Example#1908 - pg_delete example
  • Example#1909 - pg_end_copy example
  • Example#1910 - pg_escape_bytea example
  • Example#1911 - pg_escape_identifier example
  • Example#1912 - pg_escape_literal example
  • Example#1913 - pg_escape_string example
  • Example#1914 - Using pg_execute
  • Example#1915 - pg_fetch_all_columns example
  • Example#1916 - PostgreSQL fetch all
  • Example#1917 - pg_fetch_array example
  • Example#1918 - pg_fetch_assoc example
  • Example#1919 - pg_fetch_object example
  • Example#1920 - pg_fetch_result example
  • Example#1921 - pg_fetch_row example
  • Example#1922 - pg_field_is_null example
  • Example#1923 - Getting information about fields
  • Example#1924 - Getting information about fields
  • Example#1925 - Getting information about fields
  • Example#1926 - Getting information about fields
  • Example#1927 - Getting table information about a field
  • Example#1928 - Getting information about fields
  • Example#1929 - Getting information about fields
  • Example#1930 - pg_free_result example
  • Example#1931 - PostgreSQL NOTIFY message
  • Example#1932 - PostgreSQL backend PID
  • Example#1933 - pg_get_result example
  • Example#1934 - pg_host example
  • Example#1935 - pg_insert example
  • Example#1936 - pg_last_error example
  • Example#1937 - pg_last_notice example
  • Example#1938 - pg_last_oid example
  • Example#1939 - pg_lo_close example
  • Example#1940 - pg_lo_create example
  • Example#1941 - pg_lo_export example
  • Example#1942 - pg_lo_import example
  • Example#1943 - pg_lo_open example
  • Example#1944 - pg_lo_read_all example
  • Example#1945 - pg_lo_read example
  • Example#1946 - pg_lo_seek example
  • Example#1947 - pg_lo_tell example
  • Example#1948 - pg_lo_truncate example
  • Example#1949 - pg_lo_unlink example
  • Example#1950 - pg_lo_write example
  • Example#1951 - Getting table metadata
  • Example#1952 - pg_num_fields example
  • Example#1953 - pg_num_rows example
  • Example#1954 - pg_options example
  • Example#1955 - pg_parameter_status example
  • Example#1956 - Using pg_pconnect
  • Example#1957 - pg_ping example
  • Example#1958 - pg_port example
  • Example#1959 - Using pg_prepare
  • Example#1960 - pg_put_line example
  • Example#1961 - Using pg_query_params
  • Example#1962 - pg_query example
  • Example#1963 - Using pg_query with multiple statements
  • Example#1964 - pg_result_error_field example
  • Example#1965 - pg_result_error example
  • Example#1966 - pg_result_seek example
  • Example#1967 - pg_result_status example
  • Example#1968 - pg_select example
  • Example#1969 - Using pg_send_execute
  • Example#1970 - Using pg_send_prepare
  • Example#1971 - Using pg_send_query_params
  • Example#1972 - pg_send_query example
  • Example#1973 - pg_set_client_encoding example
  • Example#1974 - pg_set_error_context_visibility example
  • Example#1975 - pg_set_error_verbosity example
  • Example#1976 - pg_trace example
  • Example#1977 - pg_transaction_status example
  • Example#1978 - pg_tty example
  • Example#1979 - pg_unescape_bytea example
  • Example#1980 - pg_untrace example
  • Example#1981 - pg_update example
  • Example#1982 - pg_version example
  • Example#1983 - Fazer backup de um banco de dados existente
  • Example#1984 - Exemplo de SQLite3::changes
  • Example#1985 - Exemplo de SQLite3::close
  • Example#1986 - Exemplo de SQLite3::__construct
  • Example#1987 - Exemplo de função de agregação max_length
  • Example#1988 - Exemplo de SQLite3::createCollation
  • Example#1989 - Exemplo de SQLite3::createFunction
  • Example#1990 - Exemplo de SQLite3::enableExceptions
  • Example#1991 - Exemplo de SQLite3::exec
  • Example#1992 - Exemplo de SQLite3::loadExtension
  • Example#1993 - Exemplo de SQLite3::open
  • Example#1994 - Exemplo de SQLite3::openBlob
  • Example#1995 - Escrevendo incrementalmente um BLOB
  • Example#1996 - Exemplo de SQLite3::prepare
  • Example#1997 - Exemplo de SQLite3::query
  • Example#1998 - Exemplo de SQLite3::querySingle
  • Example#1999 - Exemplo de SQLite3::setAuthorizer
  • Example#2000 - Exemplo de SQLite3::version
  • Example#2001 - Uso de SQLite3Stmt::bindParam
  • Example#2002 - Exemplo de SQLite3Stmt::bindValue
  • Example#2003 - Inspeção do SQL expandido
  • Example#2004 - Exemplo de sqlsrv_begin_transaction
  • Example#2005 - Exemplo de sqlsrv_cancel
  • Example#2006 - Exemplo de sqlsrv_client_info
  • Example#2007 - Exemplo de sqlsrv_close
  • Example#2008 - Exemplo de sqlsrv_commit
  • Example#2009 - Conectar usando Autenticação do Windows.
  • Example#2010 - Conectar especificando um nome de usuário e senha.
  • Example#2011 - Conectar em uma porta expecífica.
  • Example#2012 - Exemplo de functionname
  • Example#2013 - Exemplo de sqlsrv_execute
  • Example#2014 - Recuperando um array associativo.
  • Example#2015 - Recuperando um array numérico.
  • Example#2016 - Exemplo de sqlsrv_fetch_object
  • Example#2017 - Exemplo de sqlsrv_fetch
  • Example#2018 - Exemplo de sqlsrv_field_metadata
  • Example#2019 - Exemplo de sqlsrv_free_stmt
  • Example#2020 - Exemplo de sqlsrv_get_field
  • Example#2021 - Exemplo de sqlsrv_has_rows
  • Example#2022 - Exemplo de sqlsrv_next_result
  • Example#2023 - Exemplo de sqlsrv_num_fields
  • Example#2024 - Exemplo de sqlsrv_num_rows
  • Example#2025 - Exemplo de sqlsrv_prepare
  • Example#2026 - Exemplo de sqlsrv_query
  • Example#2027 - Exemplo de sqlsrv_rollback
  • Example#2028 - Exemplo de sqlsrv_rows_affected
  • Example#2029 - Exemplo de sqlsrv_send_stream_data
  • Example#2030 - Exemplo de sqlsrv_server_info
  • Example#2031 - Exemplo da cal_days_in_month
  • Example#2032 - Exemplo de cal_from_jd
  • Example#2033 - Exemplo de cal_info
  • Example#2034 - Exemplo de easter_date
  • Example#2035 - Usando easter_date com DateTime
  • Example#2036 - Exemplo de easter_days
  • Example#2037 - Funções de Calendário
  • Example#2038 - Overflow behavior
  • Example#2039 - Exemplo de jdtojewish
  • Example#2040 - DateTimeImmutable::add/sub adicionando intervalos que tempo decorrido
  • Example#2041 - DateTimeImmutable::modify e strtotime incrementando ou decrementando valores de componentes individuais
  • Example#2042 - Adicionar ou substrair períodos pode causar transferência de datas
  • Example#2043 - Criando um objeto de data/hora mutável
  • Example#2044 - Criando um objeto de data/hora mutável
  • Example#2045 - Exemplo do método DateTime::modify
  • Example#2046 - Cuidados na adição ou subtração de meses
  • Example#2047 - Todos os formatos de data e horário são suportados
  • Example#2048 - Exemplo do método DateTime::setTimeZone
  • Example#2049 - Exemplo da função DateTimeImmutable::add
  • Example#2050 - Mais exemplos da função DateTimeImmutable::add
  • Example#2051 - Cuidado ao adicionar meses
  • Example#2052 - Exemplo da função DateTimeImmutable::__construct
  • Example#2053 - Complexidades de DateTimeImmutable::__construct
  • Example#2054 - Mudando o fuso horário associado
  • Example#2055 - Usando uma string relativo de data/hora
  • Example#2056 - Exemplo de DateTimeImmutable::createFromFormat
  • Example#2057 - Usando constantes predefinidas de formato com DateTimeImmutable::createFromFormat
  • Example#2058 - Complexidades de DateTimeImmutable::createFromFormat
  • Example#2059 - String de formatação com caracteres literais
  • Example#2060 - Comportamento de transferência
  • Example#2061 - Comportamento de transferência do nome do dia
  • Example#2062 - Detectando transferência de datas/horas
  • Example#2063 - Comportamento de análise ambicioso
  • Example#2064 - Criando um objeto de data/hora imutável
  • Example#2065 - Criando um objeto DateTime imutável
  • Example#2066 - Exemplo da função DateTimeImmutable::getLastErrors
  • Example#2067 - Exemplo da função DateTimeImmutable::modify
  • Example#2068 - Cuidado na adição ou subtração de meses
  • Example#2069 - Exemplo da função DateTimeImmutable::setDate
  • Example#2070 - Valores que excedem os limites são adicionados aos valores pai.
  • Example#2071 - Exemplo da função DateTimeImmutable::setISODate
  • Example#2072 - Valores que excedem os limites são adicionados a seus valores pai.
  • Example#2073 - Para encontrar o mês no qual uma semana se localiza
  • Example#2074 - Exemplo da função DateTimeImmutable::setTime
  • Example#2075 - Valores que excedem os limites são adicionados a seus valores pai
  • Example#2076 - Exemplo da função DateTimeImmutable::setTimestamp
  • Example#2077 - Exemplo da função DateTimeImmutable::setTimeZone
  • Example#2078 - Exemplo da função DateTimeImmutable::sub
  • Example#2079 - Mais exemplos da função DateTimeImmutable::sub
  • Example#2080 - Cuidado ao subtrair meses
  • Example#2081 - Exemplo do método DateTimeImmutable::diff
  • Example#2082 - DateTimeInterface::diff durante mudança de horário de verão
  • Example#2083 - Intervalo do método DateTimeInterface::diff
  • Example#2084 - Comparação entre objetos DateTime
  • Example#2085 - Exemplo de DateTimeInterface::format
  • Example#2086 - Mais exemplos
  • Example#2087 - Escapando caracteres ao formatar
  • Example#2088 - Exemplo do método DateTime::getOffset
  • Example#2089 - Exemplo do método DateTime::getTimestamp
  • Example#2090 - Recuperando o timestamp com resolução de mili e microssegundos
  • Example#2091 - Exemplo do método DateTime::getTimezone
  • Example#2092 - Criando e anexando DateTimeZone a um DateTimeImmutable
  • Example#2093 - Capturando erros na instanciação de DateTimeZone
  • Example#2094 - Exemplo do método DateTimeZone::getLocation
  • Example#2095 - Exemplos do método DateTimeZone::getOffset
  • Example#2096 - Exemplo do método timezone_transitions_get
  • Example#2097 - Um exemplo da função timezone_transitions_get com o parâmetro timestampBegin
  • Example#2098 - Exemplo da função timezone_abbreviations_list
  • Example#2099 - Um exemplo do método DateTimeZone::listIdentifiers
  • Example#2100 - Listando identificadores para uma região específica
  • Example#2101 - Listando identificadores para múltiplas regiões
  • Example#2102 - Listando identificadores para um único país
  • Example#2103 - Construindo e usando objetos da classe DateInterval
  • Example#2104 - Exemplo da classe DateInterval
  • Example#2105 - Analisando intervalos de datas válidos
  • Example#2106 - Analisando combinações e intervalos negativos
  • Example#2107 - Analisando intervalos de data especiais
  • Example#2108 - Exemplo da classe DateInterval
  • Example#2109 - A classe DateInterval e os pontos de transferência
  • Example#2110 - DateInterval e DateTime::diff com os modificadores %a e %d
  • Example#2111 - Exemplos de DatePeriod
  • Example#2112 - Exemplo de DatePeriod com DatePeriod::EXCLUDE_START_DATE
  • Example#2113 - Exemplo de DatePeriod mostrando todas as últimas quintas-feiras do ano
  • Example#2114 - Exemplo de DatePeriod::createFromISO8601String
  • Example#2115 - Exemplo de DatePeriod::getDateInterval
  • Example#2116 - Exemplo de DatePeriod::getEndDate
  • Example#2117 - Exemplo de DatePeriod::getEndDate sem uma data final
  • Example#2118 - Diferentes valores para DatePeriod::getRecurrences
  • Example#2119 - Exemplo de DatePeriod::getStartDate
  • Example#2120 - Exemplo da checkdate
  • Example#2121 - Lendo o fuso horário padrão
  • Example#2122 - Lendo a abreviação de um fuso horário
  • Example#2123 - Lendo o fuso horário padrão
  • Example#2124 - Exemplo da função date_parse_from_format
  • Example#2125 - Exemplo da função date_parse_from_format com avisos
  • Example#2126 - Exemplo da função date_parse_from_format com erros
  • Example#2127 - Um exemplo da função date_parsecom um string datetime compreensivo
  • Example#2128 - Exemplo da função date_parse com informação de abreviação de fuso horário
  • Example#2129 - Exemplo da função date_parse com informação de identificador de fuso horário
  • Example#2130 - Função date_parse com um string minimizado
  • Example#2131 - date_parse com formatos relativos
  • Example#2132 - Função date_parse com efeitos colaterais
  • Example#2133 - Um exemplo de date_sun_info
  • Example#2134 - Noite polar, com algum processamento
  • Example#2135 - Sol da meia-noite (Tromsø, Norway)
  • Example#2136 - Calculando a duração do dia (Kiev)
  • Example#2137 - Exemplo da função date_sunrise
  • Example#2138 - Sem nascer do sol
  • Example#2139 - Exemplo da função date_sunset
  • Example#2140 - Sem pôr do sol
  • Example#2141 - Exemplos da função date
  • Example#2142 - Caracteres de escape em date
  • Example#2143 - Exemplo da date e mktime
  • Example#2144 - Formatação com a função date
  • Example#2145 - Exemplo da função getdate
  • Example#2146 - Exemplo da função gettimeofday
  • Example#2147 - Exemplo da gmdate
  • Example#2148 - A função gmmktime no Windows
  • Example#2149 - Exemplo da função gmstrftime
  • Example#2150 - Exemplo da função idate
  • Example#2151 - Exemplo da função localtime
  • Example#2152 - Cronometrando a execução do script
  • Example#2153 - microtime e REQUEST_TIME_FLOAT
  • Example#2154 - Exemplo básico da função mktime
  • Example#2155 - Exemplo da mktime
  • Example#2156 - Último dia do próximo mês
  • Example#2157 - Exemplo da função strftime com idiomas
  • Example#2158 - Exemplo do número de semana ISO 8601:1988
  • Example#2159 - Exemplo do uso do modificador %e compatível com múltiplas plataformas
  • Example#2160 - Mostra os formatos conhecidos e desconhecidos
  • Example#2161 - Exemplo da função strptime
  • Example#2162 - Exemplo da função strtotime
  • Example#2163 - Checando por falha
  • Example#2164 - Exemplo de time
  • Example#2165 - Um exemplo da função timezone_name_from_abbr
  • Example#2166 - Obtendo a versão do banco de dados de fuso horário
  • Example#2167 - Measure several code blocks execution and get the total
  • Example#2168 - Fechando um descritor de arquivo aberto
  • Example#2169 - Definindo e removendo uma trava
  • Example#2170 - Abrindo um descritor de arquivo
  • Example#2171 - Posicionamento em um arquivo
  • Example#2172 - Configurando a taxa de transmissão em uma porta serial
  • Example#2173 - Exemplo de chdir
  • Example#2174 - Exemplo de chroot
  • Example#2175 - Exemplo da closedir
  • Example#2176 - Exemplo da dir
  • Example#2177 - Exemplo de getcwd
  • Example#2178 - Exemplo de opendir
  • Example#2179 - Listando todas as entradas de um diretório
  • Example#2180 - Lista todas as entradas no diretório atual e remove . e ..
  • Example#2181 - Um exemplo simples de scandir
  • Example#2182 - Exemplo de finfo_buffer
  • Example#2183 - Exemplo de finfo_file
  • Example#2184 - Estilo orientado a objetos
  • Example#2185 - Estilo procedural
  • Example#2186 - Exemplo de mime_content_type
  • Example#2187 - Exemplo de basename
  • Example#2188 - Alterando o grupo de um arquivo
  • Example#2189 - Uso simples de chown
  • Example#2190 - Exemplo de clearstatcache
  • Example#2191 - Exemplo de copy
  • Example#2192 - Exemplo de dirname
  • Example#2193 - Exemplo de disk_free_space
  • Example#2194 - Exemplo de disk_total_space
  • Example#2195 - Exemplo de fclose
  • Example#2196 - Exemplo de fdatasync
  • Example#2197 - Handling timeouts with feof
  • Example#2198 - Exemplo de feof com um ponteiro de arquivo inválido
  • Example#2199 - File write example using fflush
  • Example#2200 - Um exemplo da fgetc
  • Example#2201 - Lê e imprime todo o conteúdo de um arquivo CSV
  • Example#2202 - Lendo um arquivo linha por linha
  • Example#2203 - Reading a PHP file line-by-line
  • Example#2204 - Testando se um arquivo existe
  • Example#2205 - Obtém e exibe o código-fonte da página inicial de um website
  • Example#2206 - Buscando no include_path
  • Example#2207 - Lendo uma sessão de um arquivo
  • Example#2208 - Usando contextos de fluxo
  • Example#2209 - Exemplo de uso simples
  • Example#2210 - Usando flags
  • Example#2211 - Exemplo de file
  • Example#2212 - Exemplo de fileatime
  • Example#2213 - Exemplo de filectime
  • Example#2214 - Descobrindo o grupo de um arquivo
  • Example#2215 - Comparando o inode de um arquivo com o arquivo atual
  • Example#2216 - Exemplo de filemtime
  • Example#2217 - Encontrando o proprietário de um arquivo
  • Example#2218 - Mostra as permissões como um valor em octal
  • Example#2219 - Mostra as permissões completas
  • Example#2220 - Exemplo de filesize
  • Example#2221 - Exemplo de filetype
  • Example#2222 - Exemplo de flock
  • Example#2223 - flock usando a opção LOCK_NB
  • Example#2224 - Comparando uma cor com um padrão de curingas shell
  • Example#2225 - Exemplos de fopen
  • Example#2226 - Usando fpassthru com arquivo binário
  • Example#2227 - Exemplo da fputcsv
  • Example#2228 - Um simples exemplo de fread
  • Example#2229 - Exemplo de fread binário
  • Example#2230 - Exemplos de fread remoto
  • Example#2231 - Exemplo de fscanf
  • Example#2232 - Conteúdo de users.txt
  • Example#2233 - Exemplo de fseek
  • Example#2234 - Exemplo fstat
  • Example#2235 - Exemplo de fsync
  • Example#2236 - Exemplo de ftell
  • Example#2237 - File truncation example
  • Example#2238 - Exemplo de fwrite
  • Example#2239 - Modo conveniente de como glob pode susbstituir opendir e companhia.
  • Example#2240 - Exemplo da is_dir
  • Example#2241 - Exemplo da is_executable
  • Example#2242 - Exemplo da is_file
  • Example#2243 - Cria e confirma se um arquivo é uma ligação simbólica
  • Example#2244 - Exemplo de is_readable
  • Example#2245 - Exemplo de is_uploaded_file
  • Example#2246 - Exemplo de is_writable
  • Example#2247 - Alterando um grupo de um ligação simbólica
  • Example#2248 - Alterando o proprietário de uma ligação simbólica
  • Example#2249 - Criando uma ligação rígida
  • Example#2250 - Exemplo de linkinfo
  • Example#2251 - Comparação de stat e lstat
  • Example#2252 - Exemplo de mkdir
  • Example#2253 - mkdir usando o parâmetro recursive
  • Example#2254 - Enviando múltiplos arquivos
  • Example#2255 - Conteúdo de sample.ini
  • Example#2256 - Exemplo de parse_ini_file
  • Example#2257 - parse_ini_file interpretando um arquivo php.ini
  • Example#2258 - Interpolação de Valor
  • Example#2259 - Fazendo Escape de Caracteres
  • Example#2260 - Exemplo de pathinfo
  • Example#2261 - Exemplo de pathinfo mostrando a diferença entre null e nenhuma extensão
  • Example#2262 - Exemplo de pathinfo para um arquivo iniciado por ponto
  • Example#2263 - Exemplo de pathinfo com desreferenciação de array
  • Example#2264 - Exemplo de pclose
  • Example#2265 - Exemplo de popen
  • Example#2266 - Exemplo da popen
  • Example#2267 - Forçando um recebimento usando readfile
  • Example#2268 - Exemplo de readlink
  • Example#2269 - realpath_cache_get exemplo
  • Example#2270 - Exemplo de realpath_cache_size
  • Example#2271 - Exemplo de realpath
  • Example#2272 - realpath no Windows
  • Example#2273 - Exemplo da rename
  • Example#2274 - Exemplo de rewind sobrescrevendo
  • Example#2275 - Exemplo de rmdir
  • Example#2276 - stat example
  • Example#2277 - Usando informação de stat junto com a função touch
  • Example#2278 - Cria uma ligação simbólica
  • Example#2279 - Exemplo de tempnam
  • Example#2280 - Exemplo da tmpfile
  • Example#2281 - Exemplo da função touch
  • Example#2282 - touch usando o parâmetro mtime
  • Example#2283 - Exemplo da umask
  • Example#2284 - Exemplo de unlink
  • Example#2285 - Example usage of inotify
  • Example#2286 - Checks if system administrator has signed the file
  • Example#2287 - Prints names of all extended attributes of file
  • Example#2288 - Removes all extended attributes of a file
  • Example#2289 - Sets extended attributes on .wav file
  • Example#2290 - xattr_supported example
  • Example#2291 - xdiff_file_bdiff_size example
  • Example#2292 - xdiff_file_bdiff example
  • Example#2293 - xdiff_file_bpatch example
  • Example#2294 - xdiff_file_diff_binary example
  • Example#2295 - xdiff_file_diff example
  • Example#2296 - xdiff_file_merge3 example
  • Example#2297 - xdiff_file_patch_binary example
  • Example#2298 - xdiff_file_patch example
  • Example#2299 - Patch reversing example
  • Example#2300 - xdiff_file_rabdiff example
  • Example#2301 - xdiff_string_bdiff_size example
  • Example#2302 - xdiff_string_diff example
  • Example#2303 - xdiff_string_patch example
  • Example#2304 - Enchant Usage Example
  • Example#2305 - List the backends provided by the given broker
  • Example#2306 - A enchant_broker_dict_exists example
  • Example#2307 - List all available dictionaries for one broker
  • Example#2308 - A enchant_broker_request_dict example
  • Example#2309 - Adding a word to a PWL
  • Example#2310 - A enchant_dict_describe example
  • Example#2311 - A enchant_dict_quick_check example
  • Example#2312 - A enchant_dict_suggest example
  • Example#2313 - Usage example.
  • Example#2314 - Using Gender\Gender::country
  • Example#2315 - Exemplo de bindtextdomain
  • Example#2316 - gettext-check
  • Example#2317 - Exemplo de ngettext
  • Example#2318 - Exemplo iconv_get_encoding
  • Example#2319 - Exemplo iconv_mime_decode_headers
  • Example#2320 - Exemplo iconv_mime_decode
  • Example#2321 - Exemplo iconv_mime_encode
  • Example#2322 - Exemplo iconv_set_encoding
  • Example#2323 - Exemplo iconv
  • Example#2324 - Exemplo ob_iconv_handler:
  • Example#2325 - Exemplo de uso da API procedural
  • Example#2326 - Exemplo de uso da API procedural orientada a objeto
  • Example#2327 - Regras da FRENCH_COLLATION
  • Example#2328 - Regras de ALTERNATE_HANDLING
  • Example#2329 - Regras de CASE_FIRST
  • Example#2330 - Regras de CASE_LEVEL
  • Example#2331 - Exemplo de collator_asort
  • Example#2332 - Exemplo de collator_compare
  • Example#2333 - Comparando strings sem diacríticos ou diferenciação entre maiúsculas/minúsculas
  • Example#2334 - Exemplo de Collator::__construct
  • Example#2335 - Exemplo de collator_create
  • Example#2336 - Exemplo de collator_get_attribute
  • Example#2337 - Exemplo de collator_get_error_code
  • Example#2338 - Exemplo de collator_get_error_message
  • Example#2339 - Exemplo de collator_get_locale
  • Example#2340 - Exemplo de collator_get_sort_key
  • Example#2341 - Exemplo de collator_get_strength
  • Example#2342 - Exemplo de collator_set_attribute
  • Example#2343 - Exemplo de collator_set_strength
  • Example#2344 - Exemplo de collator_sort_with_sort_keys
  • Example#2345 - Exemplo de collator_sort
  • Example#2346 - Exemplo de numfmt_create
  • Example#2347 - Exemplo de NumberFormatter::create
  • Example#2348 - Exemplo de numfmt_format_currency
  • Example#2349 - Exemplo OO
  • Example#2350 - Exemplo de numfmt_format
  • Example#2351 - Exemplo OO
  • Example#2352 - Exemplo de numfmt_get_attribute
  • Example#2353 - Exemplo OO
  • Example#2354 - Exemplo de numfmt_get_error_code
  • Example#2355 - Exemplo OO
  • Example#2356 - Exemplo de numfmt_get_error_message
  • Example#2357 - Exemplo OO
  • Example#2358 - Exemplo de numfmt_get_locale
  • Example#2359 - Exemplo de numfmt_get_pattern
  • Example#2360 - Exemplo OO
  • Example#2361 - Exemplo de numfmt_get_symbol
  • Example#2362 - Exemplo OO
  • Example#2363 - Exemplo de numfmt_get_text_attribute
  • Example#2364 - Exemplo OO
  • Example#2365 - Exemplo de numfmt_parse_currency
  • Example#2366 - Exemplo OO
  • Example#2367 - Exemplo de numfmt_parse
  • Example#2368 - Exemplo OO
  • Example#2369 - Exemplo de numfmt_set_attribute
  • Example#2370 - Exemplo OO
  • Example#2371 - Exemplo de numfmt_set_pattern
  • Example#2372 - Exemplo OO
  • Example#2373 - Exemplo de numfmt_set_symbol
  • Example#2374 - Exemplo OO
  • Example#2375 - Exemplo de numfmt_set_text_attribute
  • Example#2376 - Exemplo OO
  • Example#2377 - Exemplo de locale_accept_from_http
  • Example#2378 - Exemplo OO
  • Example#2379 - Exemplo de locale_compose
  • Example#2380 - Exemplo OO
  • Example#2381 - Limites de sub-etiquetas
  • Example#2382 - Exemplo de locale_filter_matches
  • Example#2383 - Exemplo OO
  • Example#2384 - Exemplo de locale_get_all_variants
  • Example#2385 - Exemplo OO
  • Example#2386 - Exemplo de locale_get_default
  • Example#2387 - Exemplo OO
  • Example#2388 - Exemplo de locale_get_display_language
  • Example#2389 - Exemplo OO
  • Example#2390 - Exemplo de locale_get_display_name
  • Example#2391 - Exemplo OO
  • Example#2392 - Exemplo de locale_get_display_region
  • Example#2393 - Exemplo OO
  • Example#2394 - Exemplo de locale_get_display_script
  • Example#2395 - Exemplo OO
  • Example#2396 - Exemplo de locale_get_display_variant
  • Example#2397 - Exemplo OO
  • Example#2398 - Exemplo de locale_get_keywords
  • Example#2399 - Exemplo OO
  • Example#2400 - locale_get_primary_language example
  • Example#2401 - Exemplo OO
  • Example#2402 - Exemplo de locale_get_region
  • Example#2403 - Exemplo OO
  • Example#2404 - Exemplo de locale_get_script
  • Example#2405 - Exemplo OO
  • Example#2406 - Exemplo de locale_lookup
  • Example#2407 - Exemplo OO
  • Example#2408 - Exemplo de locale_parse
  • Example#2409 - Exemplo OO
  • Example#2410 - Exemplo de locale_set_default
  • Example#2411 - Exemplo OO
  • Example#2412 - Exemplo de Normalizer::getRawDecomposition
  • Example#2413 - Exemplo de normalizer_is_normalized
  • Example#2414 - Exemplo orientado a objetos
  • Example#2415 - Exemplo de normalizer_normalize
  • Example#2416 - Exemplo orientado a objetos
  • Example#2417 - Exemplo de msgfmt_create
  • Example#2418 - Exemplo OO
  • Example#2419 - Exemplo de msgfmt_format_message
  • Example#2420 - OO example
  • Example#2421 - Instruindo a ICU a formatar moeda com símbolo normal e símbolo abreviado
  • Example#2422 - Exemplo de msgfmt_format
  • Example#2423 - Exemplo OO
  • Example#2424 - Exemplo de msgfmt_get_error_message
  • Example#2425 - Exemplo OO
  • Example#2426 - Exemplo de msgfmt_get_locale
  • Example#2427 - Exemplo OO
  • Example#2428 - Exemplo de msgfmt_get_pattern
  • Example#2429 - Exemplo OO
  • Example#2430 - Exemplo de msgfmt_parse_message
  • Example#2431 - Exemplo OO
  • Example#2432 - Exemplo de msgfmt_parse
  • Example#2433 - Exemplo OO
  • Example#2434 - Exemplo de msgfmt_set_pattern
  • Example#2435 - OO example
  • Example#2436 - IntlCalendar::add
  • Example#2437 - IntlCalendar::after
  • Example#2438 - Exemplos de IntlCalendar::clear
  • Example#2439 - IntlCalendar::createInstance
  • Example#2440 - IntlCalendar::equals
  • Example#2441 - IntlCalendar::fieldDifference
  • Example#2442 - IntlCalendar::fromDateTime
  • Example#2443 - IntlCalendar::get
  • Example#2444 - IntlCalendar::getActualMaximum
  • Example#2445 - IntlCalendar::getAvailableLocales
  • Example#2446 - IntlCalendar::getDayOfWeekType
  • Example#2447 - IntlCalendar::getErrorCode e IntlCalendar::getErrorMessage
  • Example#2448 - IntlCalendar::getErrorMessage
  • Example#2449 - IntlCalendar::getFirstDayOfWeek
  • Example#2450 - IntlCalendar::getKeyworkValuesForLocale
  • Example#2451 - Exemplos de máximos
  • Example#2452 - IntlCalendar::getLocale
  • Example#2453 - IntlCalendar::getMinimalDaysInFirstWeek
  • Example#2454 - IntlCalendar::getNow
  • Example#2455 - IntlCalendar::getRepeatedWallTimeOption
  • Example#2456 - IntlCalendar::getSkippedWallTimeOption
  • Example#2457 - IntlCalendar::getTime
  • Example#2458 - IntlCalendar::getTimeZone
  • Example#2459 - IntlCalendar::getType
  • Example#2460 - IntlCalendar::inDaylightTime
  • Example#2461 - IntlCalendar::isEquivalentTo
  • Example#2462 - IntlCalendar::isLenient
  • Example#2463 - IntlCalendar::isWeekend
  • Example#2464 - IntlCalendar::roll
  • Example#2465 - IntlCalendar::set
  • Example#2466 - Exemplo de IntlCalendar::setDate
  • Example#2467 - Exemplo de IntlCalendar::setDateTime
  • Example#2468 - IntlCalendar::setFirstDayOfWeek
  • Example#2469 - IntlCalendar::setTime
  • Example#2470 - IntlCalendar::setTimeZone
  • Example#2471 - IntlCalendar::toDateTime
  • Example#2472 - Exemplo de IntlGregorianCalendar::createFromDate
  • Example#2473 - Exemplo de IntlGregorianCalendar::createFromDateTime
  • Example#2474 - Exemplo de datefmt_create
  • Example#2475 - Exemplo OO
  • Example#2476 - Exemplo de manipulação de localidade inválida
  • Example#2477 - Exemplo de datefmt_format
  • Example#2478 - Exemplo OO
  • Example#2479 - Com objeto IntlCalendar
  • Example#2480 - Exemplos de IntlDateFormatter::formatObject
  • Example#2481 - Exemplo de datefmt_get_calendar
  • Example#2482 - Exemplo OO
  • Example#2483 - Exemplo de manipulação de localidade inválida
  • Example#2484 - Exemplo de datefmt_get_datetype
  • Example#2485 - Exemplo OO
  • Example#2486 - Exemplo de datefmt_get_error_code
  • Example#2487 - Exemplo OO
  • Example#2488 - Exemplo de datefmt_get_error_message
  • Example#2489 - Exemplo OO
  • Example#2490 - Exemplo de datefmt_get_locale
  • Example#2491 - Exemplo OO
  • Example#2492 - Exemplo de datefmt_get_pattern example
  • Example#2493 - Exemplo OO
  • Example#2494 - Exemplo de datefmt_get_timetype
  • Example#2495 - Exemplo OO
  • Example#2496 - Exemplo de datefmt_get_timezone_id
  • Example#2497 - Exemplo OO
  • Example#2498 - Exemplo de IntlDateFormatter::getCalendarObject
  • Example#2499 - Exemplos de IntlDateFormatter::getTimeZone
  • Example#2500 - Exemplo de datefmt_is_lenient
  • Example#2501 - Exemplo OO
  • Example#2502 - Exemplo de datefmt_localtime
  • Example#2503 - Exemplo OO
  • Example#2504 - Exemplo OO
  • Example#2505 - datefmt_parse example
  • Example#2506 - Exemplo de datefmt_set_calendar
  • Example#2507 - Exemplo OO
  • Example#2508 - Exemplo com argumento IntlCalendar
  • Example#2509 - Exemplo de datefmt_set_lenient
  • Example#2510 - Exemplo OO
  • Example#2511 - Exemplo de datefmt_set_pattern
  • Example#2512 - Exemplo OO
  • Example#2513 - Exemplos de IntlDateFormatter::setTimeZone
  • Example#2514 - Exempo da função resourcebundle_count
  • Example#2515 - Exemplo orientado a objeto
  • Example#2516 - Exemplo de resourcebundle_create
  • Example#2517 - Exemplo de ResourceBundle::create
  • Example#2518 - Exemplo da função resourcebundle_get_error_code
  • Example#2519 - Exemplo orientado à objeto
  • Example#2520 - Exemplo da função resourcebundle_get_error_message
  • Example#2521 - Exemplo orientado à objeto
  • Example#2522 - Exemplo da função resourcebundle_get
  • Example#2523 - Exemplo orientado à objeto
  • Example#2524 - Exemplo da função resourcebundle_locales
  • Example#2525 - Exemplo orientado à objetos
  • Example#2526 - Exemplo de Spoofchecker::areConfusable
  • Example#2527 - Exemplo de Spoofchecker::isSuspicious
  • Example#2528 - Obtendo os IDs de transliteradores registrados
  • Example#2529 - Convertendo unidades de código UTF-16 escapados
  • Example#2530 - Exemplo de IntlDatePatternGenerator::getBestPattern
  • Example#2531 - Convertendo de UTF-8 para UTF-16 e vice-versa
  • Example#2532 - Caracteres inválidos na entrada
  • Example#2533 - Caracteres que não podem ser codificados
  • Example#2534 - Exemplo de grapheme_extract
  • Example#2535 - Exemplo de grapheme_stripos
  • Example#2536 - Exemplo de grapheme_stristr
  • Example#2537 - Exemplo de grapheme_strlen
  • Example#2538 - Exemplo de grapheme_strpos
  • Example#2539 - Exemplo de grapheme_strripos
  • Example#2540 - Exemplo de grapheme_strrpos
  • Example#2541 - Exemplo de grapheme_strstr
  • Example#2542 - Exemplo de grapheme_substr
  • Example#2543 - Exemplo de idn_to_ascii
  • Example#2544 - Exemplo de idn_to_utf8
  • Example#2545 - Testando diferentes pontos de código
  • Example#2546 - Testando diferentes pontos de código
  • Example#2547 - Testando diferentes pontos de código
  • Example#2548 - Testando diferentes pontos de código
  • Example#2549 - Testando diferentes pontos de código
  • Example#2550 - Testando diferentes pontos de código
  • Example#2551 - Testando diferentes pontos de código
  • Example#2552 - Testando diferentes pontos de código
  • Example#2553 - Testando diferentes pontos de código
  • Example#2554 - Enumerando em uma faixa de pontos de código de exemplo
  • Example#2555 - Enumerando um intervalo de pontos de código de exemplo
  • Example#2556 - Testando diferentes pontos de código
  • Example#2557 - Testando diferentes pontos de código
  • Example#2558 - Testando diferentes pontos de código
  • Example#2559 - Testando diferentes pontos de código
  • Example#2560 - Testando diferentes pontos de código
  • Example#2561 - Testando diferentes propriedades
  • Example#2562 - Testando diferentes propriedades
  • Example#2563 - Testando diferentes propriedades
  • Example#2564 - Testando diferentes pontos de código
  • Example#2565 - Testando diferentes propriedades
  • Example#2566 - Testando diferentes propriedades
  • Example#2567 - Testando diferentes propriedades
  • Example#2568 - Testando diferentes propriedades
  • Example#2569 - Testando diferentes propriedades
  • Example#2570 - Testando diferentes propriedades
  • Example#2571 - Testando diferentes pontos de código
  • Example#2572 - Testando diferentes pontos de código
  • Example#2573 - Testando diferentes pontos de código
  • Example#2574 - Testando diferentes pontos de código
  • Example#2575 - Testando diferentes pontos de código
  • Example#2576 - Testando diferentes pontos de código
  • Example#2577 - Testando diferentes pontos de código
  • Example#2578 - Testando diferentes pontos de código
  • Example#2579 - Testando diferentes pontos de código
  • Example#2580 - Testando diferentes pontos de código
  • Example#2581 - Testando diferentes pontos de código
  • Example#2582 - Testando diferentes pontos de código
  • Example#2583 - Testando diferentes pontos de código
  • Example#2584 - Testando diferentes pontos de código
  • Example#2585 - Testando diferentes pontos de código
  • Example#2586 - Testando diferentes pontos de código
  • Example#2587 - Testando diferentes pontos de código
  • Example#2588 - Testando diferentes pontos de código
  • Example#2589 - Testando diferentes pontos de código
  • Example#2590 - Testando diferentes pontos de código
  • Example#2591 - Testando diferentes pontos de código
  • Example#2592 - Testando diferentes pontos de código
  • Example#2593 - Testando diferentes pontos de código
  • Example#2594 - Testando diferentes pontos de código
  • Example#2595 - Testando diferentes pontos de código
  • Example#2596 - Testando diferentes pontos de código
  • Example#2597 - Testando diferentes pontos de código
  • Example#2598 - Testando diferentes pontos de código
  • Example#2599 - Testando diferentes pontos de código
  • Example#2600 - Testando diferentes pontos de código
  • Example#2601 - Testando diferentes pontos de código
  • Example#2602 - Testando diferentes pontos de código
  • Example#2603 - Exemplo de intl_error_name
  • Example#2604 - Exemplo de intl_get_error_code
  • Example#2605 - Exemplo de intl_get_error_message
  • Example#2606 - Exemplo de intl_is_failure
  • Example#2607 - Exemplos de configuração do php.ini
  • Example#2608 - php.ini configuração para usuários EUC-JP
  • Example#2609 - php.ini configuração para usuários SJIS
  • Example#2610 - Desative a conversão de entrada HTTP no php.ini
  • Example#2611 - Exemplo de configuração no php.ini
  • Example#2612 - Exemplo de script
  • Example#2613 - Testando diferentes pontos de código
  • Example#2614 - Exemplo de mb_convert_case
  • Example#2615 - Exemplo de mb_convert_case com texto UTF-8 não latino
  • Example#2616 - Exemplo de mb_convert_encoding
  • Example#2617 - Exemplo de mb_convert_kana
  • Example#2618 - Exemplo de mb_convert_variables
  • Example#2619 - Exemplo de map
  • Example#2620 - map exemplo de escape de string JavaScript
  • Example#2621 - Exemplo de mb_detect_encoding
  • Example#2622 - Efeito do parâmetro strict
  • Example#2623 - Efeito da ordem quando várias codificações correspondem
  • Example#2624 - Exemplos de mb_detect_order
  • Example#2625 - Exemplo mostrando ordens de detecção inúteis
  • Example#2626 - Exemplo de mb_encode_mimeheader
  • Example#2627 - map example
  • Example#2628 - Exemplo de mb_encode_numericentity
  • Example#2629 - Exemplo de mb_encoding_aliases
  • Example#2630 - Exemplo de mb_ereg_replace_callback
  • Example#2631 - mb_ereg_replace_callback usando função anônima
  • Example#2632 - Exemplo de mb_internal_encoding
  • Example#2633 - Exemplo de mb_list_encodings
  • Example#2634 - Um exemplo básico de mb_ord
  • Example#2635 - Exemplo de mb_output_handler
  • Example#2636 - Exemplo de mb_preferred_mime_name
  • Example#2637 - Exemplo de mb_str_pad
  • Example#2638 - Exemplo de mb_strimwidth
  • Example#2639 - Exemplo de mb_strtolower
  • Example#2640 - Exemplo de mb_strtolower com texto UTF-8 não-Latin
  • Example#2641 - Exemplo de mb_strtoupper
  • Example#2642 - Exemplo de mb_strtoupper com texto UTF-8 não latino
  • Example#2643 - Exemplo de mb_strwidth
  • Example#2644 - Exemplo de mb_substitute_character
  • Example#2645 - Exemplo de mb_substr_count
  • Example#2646 - pspell_add_to_personal
  • Example#2647 - pspell_check Example
  • Example#2648 - pspell_add_to_personal Example
  • Example#2649 - pspell_config_create
  • Example#2650 - pspell_config_ignore
  • Example#2651 - pspell_config_mode Example
  • Example#2652 - pspell_config_personal
  • Example#2653 - pspell_config_repl
  • Example#2654 - pspell_config_runtogether
  • Example#2655 - pspell_new_config
  • Example#2656 - pspell_new_personal
  • Example#2657 - pspell_new
  • Example#2658 - pspell_add_to_personal
  • Example#2659 - pspell_store_replacement
  • Example#2660 - pspell_suggest example
  • Example#2661 - Basic recode_file example
  • Example#2662 - Basic recode_string example
  • Example#2663 - Exemplo de exif_imagetype
  • Example#2664 - Exemplo exif_read_data
  • Example#2665 - exif_read_data com fluxos, disponível a partir do PHP 7.2.0
  • Example#2666 - Exemplo de exif_tagname
  • Example#2667 - Exemplo de exif_thumbnail
  • Example#2668 - Criação de PNG com PHP
  • Example#2669 - Adicionando marcas d'água a imagens usando canais alfa
  • Example#2670 - Usando imagecopymerge para criar uma marca d'água translúcida
  • Example#2671 - Usando gd_info
  • Example#2672 - getimagesize e tipos MIME.
  • Example#2673 - getimagesizeexemplo
  • Example#2674 - getimagesize (URL)
  • Example#2675 - getimagesize() retornando IPTC.
  • Example#2676 - Exemplo de getimagesizefromstring
  • Example#2677 - Exemplo de image_type_to_extension
  • Example#2678 - Exemplo de image_type_to_mime_type
  • Example#2679 - Exemplo de image2wbmp
  • Example#2680 - Exemplo de imageaffinematrixconcat
  • Example#2681 - Exemplo de imageaffinematrixget
  • Example#2682 - Exemplo de uso de imagealphablending
  • Example#2683 - Uma comparação de duas linhas, uma delas com redução de serrilhado
  • Example#2684 - Desenhando um círculo com imagearc
  • Example#2685 - Gravando um arquivo BMP
  • Example#2686 - Exemplo de imagechar
  • Example#2687 - Exemplo de imagecharup
  • Example#2688 - Exemplo de imagecolorallocate
  • Example#2689 - Exemplo de uso de imagecolorallocatealpha
  • Example#2690 - Converte valores típicos de alfa para uso com imagecolorallocatealpha
  • Example#2691 - Acessando valores decompostos de RGB
  • Example#2692 - Valores legíveis de RGB usando imagecolorsforindex
  • Example#2693 - Procura por um conjunto de cores em uma imagem
  • Example#2694 - Procura por um conjunto de cores em uma imagem
  • Example#2695 - Exemplo de uso de imagecolorclosesthwb
  • Example#2696 - Usando imagecolordeallocate
  • Example#2697 - Obtém cores da logomarca GD
  • Example#2698 - Obtém cores da logomarca GD
  • Example#2699 - Exemplo de imagecolormatch
  • Example#2700 - Usando imagecoloresolve para obter cores de uma imagem
  • Example#2701 - Usando imagecoloresolvealpha para obter cores de uma imagem
  • Example#2702 - Exemplo de imagecolorset
  • Example#2703 - Exemplo de imagecolorsforindex
  • Example#2704 - Obtendo o número total de cores em uma imagem usando imagecolorstotal
  • Example#2705 - Exemplo de imagecolortransparent
  • Example#2706 - Gravando em relevo a logomarca do PHP.net
  • Example#2707 - Desfoque gaussiano
  • Example#2708 - Recortando o logotipo do PHP.net
  • Example#2709 - Funde duas cópias da logomarca PHP.net com 75% de transparência
  • Example#2710 - Uso de imagecopymergegray
  • Example#2711 - Exemplo simples
  • Example#2712 - Reamostrando uma imagem proporcionalmente
  • Example#2713 - Redimensionando uma imagem
  • Example#2714 - Criando um novo stream de imagem GD e exibindo uma imagem.
  • Example#2715 - Converte uma imagem BMP para PNG usando imagecreatefrombmp
  • Example#2716 - Exemplo de imagecreatefromgd2
  • Example#2717 - Exemplo de imagecreatefromgd2part
  • Example#2718 - Exemplo de imagecreatefromgd
  • Example#2719 - Exemplo de gerenciamento de erro durante carregamento de um GIF
  • Example#2720 - Exemplo de como lidar com um erro durante o carregamento de uma imagem JPEG.
  • Example#2721 - Exemplo de como lidar com um erro durante o carregamento de uma imagem PNG
  • Example#2722 - Exemplo de imagecreatefromstring
  • Example#2723 - Examplo de gerenciamento de erro ao carregar um WBMP
  • Example#2724 - Converte uma imagem WebP para jpeg usando imagecreatefromwebp
  • Example#2725 - Converte uma imagem XBM para um png usando imagecreatefromxbm
  • Example#2726 - Cria uma instância de imagem usando imagecreatefromxpm
  • Example#2727 - Criando uma novo fluxo de imagem GD e mostrando uma imagem.
  • Example#2728 - imagecrop example
  • Example#2729 - Gerenciamento adequado de auto-recorte
  • Example#2730 - Exemplo de imagedashedline
  • Example#2731 - Alternativa a imagedashedline
  • Example#2732 - Usando imagedestroy antes do PHP 8.0.0.
  • Example#2733 - Exemplo de imageellipse
  • Example#2734 - Exemplo de imagefill
  • Example#2735 - Criando uma pizza em 3D
  • Example#2736 - Exemplo de imagefilledellipse
  • Example#2737 - Exemplo de imagefilledpolygon
  • Example#2738 - Uso de imagefilledrectangle
  • Example#2739 - Preenchendo uma elipse com uma cor
  • Example#2740 - Exemplo de escala de cinza com imagefilter
  • Example#2741 - Exemplo de brilho com imagefilter
  • Example#2742 - Exemplo de colorização com imagefilter
  • Example#2743 - Exemplo de inversão com imagefilter
  • Example#2744 - Exemplo de pixelização com imagefilter
  • Example#2745 - Exemplo de dispersão com imagefilter
  • Example#2746 - Vira uma imagem verticalmente
  • Example#2747 - Vira uma imagem horizontalmente
  • Example#2748 - Usando imagefontheight em fontes internas
  • Example#2749 - Usando imagefontheight junto com imageloadfont
  • Example#2750 - Usando imagefontwidth em fontes internas
  • Example#2751 - Usando imagefontwidth junto com imageloadfont
  • Example#2752 - Exemplo de imageftbbox
  • Example#2753 - Exemplo de imagefttext
  • Example#2754 - Uso de imagegammacorrect
  • Example#2755 - Mostrando uma imagem GD2
  • Example#2756 - Saving a GD2 image
  • Example#2757 - Mostrando uma imagem GD
  • Example#2758 - Saving a GD image
  • Example#2759 - Exemplo de imagegetclip
  • Example#2760 - Mostrando uma imagem usando imagegif
  • Example#2761 - Convertendo uma imagem PNG para GIF usando imagegif
  • Example#2762 - Exemplo de imagegrabscreen
  • Example#2763 - Exemplo de imagegrabwindow
  • Example#2764 - Ligando o entrelace usando imageinterlace
  • Example#2765 - Detecção simples de instâncias de imagem em cores verdadeiras usando imageistruecolor
  • Example#2766 - Mostrando uma imagem JPEG no navegador
  • Example#2767 - Gravando uma imagem JPEG em um arquivo
  • Example#2768 - Mostrando a imagem com 75% de qualidade no navegador
  • Example#2769 - Exemplo de imagelayereffect
  • Example#2770 - Desenhando uma linha espessa
  • Example#2771 - Exemplo de uso de imageloadfont
  • Example#2772 - Exemplo de imageopenpolygon
  • Example#2773 - Exemplo de imagepalettecopy
  • Example#2774 - Converte qualquer objeto de imagem para cores verdadeiras
  • Example#2775 - Exemplo de imagepolygon
  • Example#2776 - Exemplo simples de imagerectangle
  • Example#2777 - Definindo e obtendo a resolução de uma imagem
  • Example#2778 - Rotaciona a imagem em 180 graus
  • Example#2779 - Uso básico de imagesavealpha
  • Example#2780 - Exemplo de imagesetbrush
  • Example#2781 - Exemplo de imagesetinterpolation
  • Example#2782 - Exemplo de imagesetpixel
  • Example#2783 - Exemplo de imagesetstyle
  • Example#2784 - Exemplo de imagesetthickness
  • Example#2785 - Exemplo de imagesettile
  • Example#2786 - Exemplo de imagestring
  • Example#2787 - Exemplo de imagestringup
  • Example#2788 - Usando imagesx
  • Example#2789 - Usando imagesy
  • Example#2790 - Convertendo uma imagem em cores verdadeiras em uma imagem de paleta
  • Example#2791 - Exemplo de imagettfbbox
  • Example#2792 - Exemplo de imagettftext
  • Example#2793 - Verificando o suporte a PNG
  • Example#2794 - Mostrando uma imagem WBMP
  • Example#2795 - Gravando a imagem WBMP
  • Example#2796 - Mostrando a imagem com primeiro plano diferente
  • Example#2797 - Gravando um arquivo WebP
  • Example#2798 - Gravando um arquivo XBM
  • Example#2799 - Saving an XBM file with a different foreground color
  • Example#2800 - Incorporando dados IPTC em um JPEG
  • Example#2801 - iptcparse() usado junto com getimagesize
  • Example#2802 - Exemplo de jpeg2wbmp
  • Example#2803 - Exemplo de png2wbmp
  • Example#2804 - Gmagick Example
  • Example#2805 - Gmagick::despeckleimage example
  • Example#2806 - Gmagick::setCompressionQuality
  • Example#2807 - Creating a thumbnail in Imagick
  • Example#2808 - Make a thumbnail of all JPG files in a directory
  • Example#2809 - Creating a reflection of an image
  • Example#2810 - Filling text with gradient
  • Example#2811 - Read in GIF image and resize all frames
  • Example#2812 - Create a PHP logo
  • Example#2813 - Using Imagick::adaptiveBlurImage:
  • Example#2814 - Using Imagick::adaptiveResizeImage
  • Example#2815 - A Imagick::adaptiveSharpenImage example
  • Example#2816 - Imagick::adaptiveThresholdImage
  • Example#2817 - Imagick::addNoiseImage
  • Example#2818 - Imagick::affineTransformImage
  • Example#2819 - Using Imagick::annotateImage:
  • Example#2820 - Imagick::appendImages example
  • Example#2821 - Imagick::autoLevelImage
  • Example#2822 - Imagick::blackThresholdImage
  • Example#2823 - Imagick::blueShiftImage
  • Example#2824 - Using Imagick::blurImage:
  • Example#2825 - Imagick::borderImage
  • Example#2826 - Imagick::brightnessContrastImage
  • Example#2827 - Imagick::charcoalImage
  • Example#2828 - Using Imagick::chopImage:
  • Example#2829 - Imagick object cloning in different versions of imagick
  • Example#2830 - Using Imagick::clutImage:
  • Example#2831 - Imagick::colorizeImage
  • Example#2832 - Imagick::colorMatrixImage
  • Example#2833 - Using Imagick::commentImage:
  • Example#2834 - Using Imagick::compareImageLayers
  • Example#2835 - Using Imagick::compareImages:
  • Example#2836 - Using Imagick::compositeImage:
  • Example#2837 - Imagick::contrastImage
  • Example#2838 - Imagick::convolveImage
  • Example#2839 - Imagick::cropImage
  • Example#2840 - Imagick::deskewImage
  • Example#2841 - Imagick::despeckleImage
  • Example#2842 - Using Imagick::distortImage:
  • Example#2843 - Imagick::edgeImage
  • Example#2844 - Imagick::embossImage
  • Example#2845 - Imagick::enhanceImage
  • Example#2846 - Imagick::equalizeImage
  • Example#2847 - Using Imagick::evaluateImage
  • Example#2848 - Using Imagick::exportImagePixels
  • Example#2849 - Imagick::filter
  • Example#2850 - Imagick::flipImage
  • Example#2851 - Imagick::floodfillPaintImage example
  • Example#2852 - Imagick::flopImage
  • Example#2853 - Imagick::forwardFourierTransformImage
  • Example#2854 - Imagick::frameImage
  • Example#2855 - Create a sinusoidal gradient
  • Example#2856 - Create a gradient from the polynomial (4x^2 - 4x + 1)
  • Example#2857 - Create a complex gradient from the polynomial (4x^2 - 4x^2 + 1) modulated by a sinusoidal gradient
  • Example#2858 - Imagick::fxImage
  • Example#2859 - Imagick::gammaImage
  • Example#2860 - Imagick::gaussianBlurImage
  • Example#2861 - Using Imagick::getImageGeometry
  • Example#2862 - Generates Imagick::getImageHistogram
  • Example#2863 - Using Imagick::getImageLength:
  • Example#2864 - Using Imagick::getImageProperties:
  • Example#2865 - Using Imagick::getImageProperty:
  • Example#2866 - Using Imagick::getIteratorIndex:
  • Example#2867 - Imagick::getPixelIterator
  • Example#2868 - Imagick::getPixelRegionIterator example
  • Example#2869 - Getting the size of a raw RGB image set at 200x400, after scaling to 400x800 (compared to width / height)
  • Example#2870 - Imagick::haldClutImage
  • Example#2871 - Imagick::identifyFormat
  • Example#2872 - Example Result Format
  • Example#2873 - Imagick::implodeImage
  • Example#2874 - Imagick::importImagePixels example
  • Example#2875 - Imagick::levelImage
  • Example#2876 - Imagick::linearStretchImage
  • Example#2877 - Imagick::magnifyImage
  • Example#2878 - Imagick::medianFilterImage
  • Example#2879 - Imagick::mergeImageLayers
  • Example#2880 - Imagick::modulateImage
  • Example#2881 - Convolve Imagick::morphology
  • Example#2882 - Correlate Imagick::morphology
  • Example#2883 - Erode Imagick::morphology
  • Example#2884 - Erode Intensity Imagick::morphology
  • Example#2885 - Dilate Imagick::morphology
  • Example#2886 - Dilate intensity Imagick::morphology
  • Example#2887 - Distance with Chebyshev kernel Imagick::morphology
  • Example#2888 - Distance with Manhattan kernel Imagick::morphology
  • Example#2889 - Distance with ocatagonal kernel Imagick::morphology
  • Example#2890 - Distance with Euclidean kernel Imagick::morphology
  • Example#2891 - Edge Imagick::morphology
  • Example#2892 - Open Imagick::morphology
  • Example#2893 - Open intensity Imagick::morphology
  • Example#2894 - Close Imagick::morphology
  • Example#2895 - Close Intensity Imagick::morphology
  • Example#2896 - Smooth Imagick::morphology
  • Example#2897 - Edge in Imagick::morphology
  • Example#2898 - Edge out Imagick::morphology
  • Example#2899 - The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology
  • Example#2900 - The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology
  • Example#2901 - Hit and Miss Imagick::morphology
  • Example#2902 - Thinning Imagick::morphology
  • Example#2903 - Thicken Imagick::morphology
  • Example#2904 - Thick to generate a convex hull Imagick::morphology
  • Example#2905 - Iterative morphology Imagick::morphology
  • Example#2906 - Helper function to get an image silhouette Imagick::morphology
  • Example#2907 - Imagick::motionBlurImage
  • Example#2908 - Imagick::negateImage
  • Example#2909 - Using Imagick::newImage:
  • Example#2910 - Imagick::newPseudoImage
  • Example#2911 - Imagick::normalizeImage
  • Example#2912 - Imagick::oilPaintImage
  • Example#2913 - Using Imagick::optimizeImageLayers
  • Example#2914 - Imagick::orderedPosterizeImage
  • Example#2915 - Using Imagick::pingImageBlob
  • Example#2916 - Using Imagick::pingImageFile
  • Example#2917 - A Imagick::polaroidImage example
  • Example#2918 - Imagick::posterizeImage
  • Example#2919 - Imagick::quantizeImage
  • Example#2920 - Using Imagick::queryFontMetrics:
  • Example#2921 - Imagick::queryFonts
  • Example#2922 - Imagick::queryFormats
  • Example#2923 - Imagick::radialBlurImage
  • Example#2924 - Imagick::raiseImage
  • Example#2925 - Imagick::randomThresholdImage
  • Example#2926 - Imagick::readImageBlob
  • Example#2927 - Imagick::recolorImage
  • Example#2928 - Imagick::reduceNoiseImage
  • Example#2929 - Imagick::resampleImage
  • Example#2930 - Imagick::resizeImage
  • Example#2931 - Imagick::rollImage
  • Example#2932 - Imagick::rotateImage
  • Example#2933 - Imagick::rotationalBlurImage
  • Example#2934 - Using Imagick::roundCorners:
  • Example#2935 - Imagick::scaleImage
  • Example#2936 - Imagick::segmentImage
  • Example#2937 - Imagick::selectiveBlurImage
  • Example#2938 - Imagick::separateImageChannel
  • Example#2939 - Imagick::sepiaToneImage
  • Example#2940 - Imagick::setCompressionQuality
  • Example#2941 - A Imagick::setFont example
  • Example#2942 - A Imagick::setImage example
  • Example#2943 - Imagick::setImageArtifact
  • Example#2944 - Imagick::setImageBias
  • Example#2945 - Imagick::setImageClipMask
  • Example#2946 - Imagick::setImageCompressionQuality
  • Example#2947 - Modify animated Gif with Imagick::setImageDelay
  • Example#2948 - Basic Imagick::setImageIterations usage
  • Example#2949 - A Imagick::setImageOpacity example
  • Example#2950 - Imagick::setImageOrientation
  • Example#2951 - Using Imagick::setImageProperty:
  • Example#2952 - Imagick::setImageResolution
  • Example#2953 - Modify animated Gif with Imagick::setImageTicksPerSecond
  • Example#2954 - Using Imagick::setIteratorIndex:
  • Example#2955 - Attempt to reach '$extent' sizeImagick::setOption
  • Example#2956 - Imagick::setOption
  • Example#2957 - Imagick::setOption
  • Example#2958 - A Imagick::setPointSize example
  • Example#2959 - Imagick::setProgressMonitor
  • Example#2960 - Imagick::setSamplingFactors
  • Example#2961 - Imagick::shadeImage
  • Example#2962 - Imagick::shadowImage
  • Example#2963 - Imagick::sharpenImage
  • Example#2964 - Imagick::shaveImage
  • Example#2965 - Imagick::shearImage
  • Example#2966 - Create a gradient image using Imagick::sigmoidalContrastImage suitable for blending two images together smoothly, with the blending defined by $contrast and $the midpoint
  • Example#2967 - Imagick::sketchImage
  • Example#2968 - Imagick::smushImages
  • Example#2969 - Imagick::solarizeImage
  • Example#2970 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#2971 - SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage
  • Example#2972 - SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage
  • Example#2973 - SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage
  • Example#2974 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#2975 - createGradientImage is used by other examples. Imagick::sparseColorImage
  • Example#2976 - Imagick::spliceImage
  • Example#2977 - Imagick::spreadImage
  • Example#2978 - Imagick::statisticImage
  • Example#2979 - Imagick::subImageMatch
  • Example#2980 - Imagick::swirlImage
  • Example#2981 - Imagick::textureImage
  • Example#2982 - Imagick::thresholdImage
  • Example#2983 - Imagick::thumbnailImage
  • Example#2984 - Imagick::tintImage
  • Example#2985 - Using Imagick::transformImage:
  • Example#2986 - Imagick::transformImageColorspace example
  • Example#2987 - Imagick::transparentPaintImage
  • Example#2988 - Imagick::transposeImage
  • Example#2989 - Imagick::transverseImage
  • Example#2990 - Using Imagick::trimImage:
  • Example#2991 - Imagick::uniqueImageColors
  • Example#2992 - Imagick::unsharpMaskImage
  • Example#2993 - Imagick::vignetteImage
  • Example#2994 - WaveImage can be quite slow Imagick::waveImage
  • Example#2995 - Imagick::whiteThresholdImage
  • Example#2996 - ImagickDraw::affine example
  • Example#2997 - ImagickDraw::arc example
  • Example#2998 - ImagickDraw::bezier example
  • Example#2999 - ImagickDraw::circle example
  • Example#3000 - ImagickDraw::composite example
  • Example#3001 - ImagickDraw::ellipse example
  • Example#3002 - ImagickDraw::line example
  • Example#3003 - ImagickDraw::matte example
  • Example#3004 - ImagickDraw::pathCurveToQuadraticBezierAbsolute example
  • Example#3005 - ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute example
  • Example#3006 - ImagickDraw::pathCurveToQuadraticBezierSmoothRelative example
  • Example#3007 - ImagickDraw::pathStart example
  • Example#3008 - ImagickDraw::point example
  • Example#3009 - ImagickDraw::polygon example
  • Example#3010 - ImagickDraw::polyline example
  • Example#3011 - ImagickDraw::popDefs example
  • Example#3012 - ImagickDraw::push example
  • Example#3013 - ImagickDraw::pushPattern example
  • Example#3014 - ImagickDraw::rectangle example
  • Example#3015 - ImagickDraw::rotate example
  • Example#3016 - ImagickDraw::roundRectangle example
  • Example#3017 - ImagickDraw::scale example
  • Example#3018 - ImagickDraw::setClipPath example
  • Example#3019 - ImagickDraw::setClipRule example
  • Example#3020 - ImagickDraw::setClipUnits example
  • Example#3021 - ImagickDraw::setFillAlpha example
  • Example#3022 - ImagickDraw::setFillColor
  • Example#3023 - ImagickDraw::setFillOpacity
  • Example#3024 - ImagickDraw::setFillRule example
  • Example#3025 - ImagickDraw::setFont example
  • Example#3026 - ImagickDraw::setFontFamily example
  • Example#3027 - ImagickDraw::setFontSize example
  • Example#3028 - ImagickDraw::setFontStretch example
  • Example#3029 - ImagickDraw::setFontStyle example
  • Example#3030 - ImagickDraw::setFontWeight example
  • Example#3031 - ImagickDraw::setGravity example
  • Example#3032 - ImagickDraw::setStrokeAlpha example
  • Example#3033 - ImagickDraw::setStrokeAntialias example
  • Example#3034 - ImagickDraw::setStrokeColor example
  • Example#3035 - ImagickDraw::setStrokeDashArray example
  • Example#3036 - ImagickDraw::setStrokeDashOffset example
  • Example#3037 - ImagickDraw::setStrokeLineCap example
  • Example#3038 - ImagickDraw::setStrokeLineJoin example
  • Example#3039 - ImagickDraw::setStrokeMiterLimit example
  • Example#3040 - ImagickDraw::setStrokeOpacity example
  • Example#3041 - ImagickDraw::setStrokeWidth example
  • Example#3042 - ImagickDraw::setTextAlignment example
  • Example#3043 - ImagickDraw::setTextAntialias example
  • Example#3044 - ImagickDraw::setTextDecoration example
  • Example#3045 - ImagickDraw::setTextUnderColor example
  • Example#3046 - ImagickDraw::setVectorGraphics example
  • Example#3047 - ImagickDraw::setViewBox example
  • Example#3048 - ImagickDraw::skewX example
  • Example#3049 - ImagickDraw::skewY example
  • Example#3050 - ImagickDraw::translate example
  • Example#3051 - ImagickPixel::construct
  • Example#3052 - Basic Imagick::getColor usage
  • Example#3053 - Basic Imagick::getColorAsString usage
  • Example#3054 - ImagickPixel getColorCount
  • Example#3055 - Basic Imagick::getColorValue usage
  • Example#3056 - ImagickPixel::getColorValueQuantum
  • Example#3057 - Basic Imagick::getHSL example
  • Example#3058 - ImagickPixel::isSimilar
  • Example#3059 - ImagickPixel::setColor
  • Example#3060 - Basic Imagick::setColorValue usage
  • Example#3061 - ImagickPixel::setColorValueQuantum
  • Example#3062 - Use ImagickPixel::setHSL to modify a color
  • Example#3063 - ImagickPixelIterator::clear
  • Example#3064 - ImagickPixelIterator::construct
  • Example#3065 - ImagickPixelIterator::getNextIteratorRow
  • Example#3066 - ImagickPixelIterator::resetIterator
  • Example#3067 - ImagickPixelIterator::setIteratorRow
  • Example#3068 - ImagickKernel::addKernel
  • Example#3069 - ImagickKernel::addUnityKernel
  • Example#3070 - ImagickKernel::addUnityKernel
  • Example#3071 - ImagickKernel::fromBuiltin
  • Example#3072 - ImagickKernel::fromMatrix
  • Example#3073 - ImagickKernel::getMatrix
  • Example#3074 - ImagickKernel::scale
  • Example#3075 - ImagickKernel::separate
  • Example#3076 - imap_append example
  • Example#3077 - imap_check example
  • Example#3078 - imap_createmailbox example
  • Example#3079 - imap_delete example
  • Example#3080 - imap_fetch_overview example
  • Example#3081 - imap_gc example
  • Example#3082 - imap_get_quota example
  • Example#3083 - imap_get_quota 4.3 or greater example
  • Example#3084 - imap_get_quotaroot example
  • Example#3085 - imap_getacl example
  • Example#3086 - imap_getmailboxes example
  • Example#3087 - imap_is_open example
  • Example#3088 - imap_list example
  • Example#3089 - imap_mail_compose example
  • Example#3090 - imap_mailboxmsginfo example
  • Example#3091 - imap_mime_header_decode example
  • Example#3092 - Different use of imap_open
  • Example#3093 - imap_open example
  • Example#3094 - imap_ping Example
  • Example#3095 - imap_reopen example
  • Example#3096 - imap_rfc822_parse_adrlist example
  • Example#3097 - imap_rfc822_write_address example
  • Example#3098 - imap_search example
  • Example#3099 - imap_set_quota example
  • Example#3100 - imap_setflag_full example
  • Example#3101 - imap_status example
  • Example#3102 - imap_thread Example
  • Example#3103 - imap_timeout example
  • Example#3104 - Basic imap_utf8 Usage
  • Example#3105 - Calculando o hash e inscrevendo um usuário
  • Example#3106 - Enviando e-mail.
  • Example#3107 - Enviando e-mail com cabeçalhos extras.
  • Example#3108 - Enviando e-mail com cabeçalhos extras no formato array
  • Example#3109 - Enviando e-mail com um parâmetro de linha de comando adicional.
  • Example#3110 - Enviando e-mail HTML
  • Example#3111 - Exemplo de mailparse_determine_best_xfer_encoding
  • Example#3112 - Exemplo de mailparse_rfc822_parse_addresses
  • Example#3113 - Exemplo de mailparse_stream_encode
  • Example#3114 - Exemplo de mailparse_uudecode_all
  • Example#3115 - Exemplo bcadd
  • Example#3116 - Exemplo da bccomp
  • Example#3117 - Exemplo da bcdiv
  • Example#3118 - Exemplo de bcmod
  • Example#3119 - Exemplo de bcmod com decimais
  • Example#3120 - Exemplo da bcmul
  • Example#3121 - Exemplo de bcmul com scale
  • Example#3122 - Exemplo da bcpow
  • Example#3123 - Exemplo bcpow com scale
  • Example#3124 - Exemplo da bcscale
  • Example#3125 - Exemplo de bcsqrt
  • Example#3126 - Exemplo de bcsub
  • Example#3127 - Função fatorial usando GMP
  • Example#3128 - Exemplo de gmp_abs
  • Example#3129 - Exemplo de gmp_add
  • Example#3130 - Exemplo de gmp_and
  • Example#3131 - gmp_clrbit example
  • Example#3132 - Exemplo de gmp_cmp
  • Example#3133 - Exemplo gmp_com
  • Example#3134 - gmp_div_q example
  • Example#3135 - Division of GMP numbers
  • Example#3136 - gmp_div_r example
  • Example#3137 - Exemplo gmp_divexact
  • Example#3138 - gmp_export example
  • Example#3139 - gmp_fact example
  • Example#3140 - Exemplo de gmp_gcd
  • Example#3141 - Resolvendo uma equação linear de Diophantine
  • Example#3142 - Exemplo de gmp_hamdist
  • Example#3143 - gmp_import example
  • Example#3144 - Creating GMP number
  • Example#3145 - Exemplo gmp_intval
  • Example#3146 - gmp_invert example
  • Example#3147 - Exemplo de gmp_jacobi
  • Example#3148 - Exemplo da gmp_legendre
  • Example#3149 - Exemplo de gmp_mod
  • Example#3150 - Exemplo da gmp_mul
  • Example#3151 - Exemplo de gmp_neg
  • Example#3152 - Exemplo de gmp_nextprime
  • Example#3153 - Exemplo de gmp_or
  • Example#3154 - gmp_perfect_square example
  • Example#3155 - Exemplo de gmp_popcount
  • Example#3156 - Exemplo gmp_pow
  • Example#3157 - Exemplo de gmp_powm
  • Example#3158 - gmp_prob_prime example
  • Example#3159 - gmp_random_bits example
  • Example#3160 - gmp_random_range example
  • Example#3161 - gmp_random_seed example
  • Example#3162 - gmp_random example
  • Example#3163 - gmp_scan0 example
  • Example#3164 - gmp_scan1 example
  • Example#3165 - gmp_setbit example - 0 index
  • Example#3166 - gmp_setbit example - 1 index
  • Example#3167 - gmp_setbit example - clearing a bit
  • Example#3168 - Exemplo de gmp_sign
  • Example#3169 - Exemplo de gmp_sqrt
  • Example#3170 - Exemplo de gmp_sqrtrem
  • Example#3171 - Convertendo um número GMP para uma string
  • Example#3172 - Exemplo da gmp_sub
  • Example#3173 - gmp_testbit example
  • Example#3174 - Exemplo de gmp_xor
  • Example#3175 - Exemplo de abs
  • Example#3176 - Exemplo de base_convert
  • Example#3177 - Exemplo de bindec
  • Example#3178 - bindec interpreta a entrada como inteiros sem sinal
  • Example#3179 - Exemplo de ceil
  • Example#3180 - Exemplo de cos
  • Example#3181 - Exemplo de decbin
  • Example#3182 - Exemplo de dechex
  • Example#3183 - Exemplo de dechex com inteiros grandes
  • Example#3184 - Exemplo de decoct
  • Example#3185 - Exemplo de deg2rad
  • Example#3186 - Exemplo de exp
  • Example#3187 - Usando fdiv
  • Example#3188 - Exemplos de floor
  • Example#3189 - Usando fmod
  • Example#3190 - Exemplo de hexdec
  • Example#3191 - Exemplo de intdiv
  • Example#3192 - Exemplo de is_finite
  • Example#3193 - Exemplo de is_infinite
  • Example#3194 - Exemplo de is_nan
  • Example#3195 - Exemplos de max
  • Example#3196 - Exemplos de min
  • Example#3197 - Exemplo da octdec
  • Example#3198 - Exemplo de pi
  • Example#3199 - Alguns exemplos de pow
  • Example#3200 - Exemplo de rad2deg
  • Example#3201 - Exemplos de round
  • Example#3202 - Como precision afeta um float
  • Example#3203 - Exemplos de mode
  • Example#3204 - Exemplos de mode com precision
  • Example#3205 - Exemplo da sin
  • Example#3206 - Exemplo da sqrt
  • Example#3207 - Exemplo da tan
  • Example#3208 - Evaluating a FDF document
  • Example#3209 - Adding JavaScript code to a FDF
  • Example#3210 - Populating a PDF document
  • Example#3211 - Storing an uploaded file
  • Example#3212 - Detecting all fieldnames in a FDF
  • Example#3213 - Accessing the form data
  • Example#3214 - Accessing the form data
  • Example#3215 - Retrieving FDF as a string
  • Example#3216 - Passing FDF data to a second form
  • Example#3217 - gnupg clearsign example (procedural)
  • Example#3218 - gnupg clearsign example (OO)
  • Example#3219 - keylistiterator
  • Example#3220 - Procedural gnupg_adddecryptkey example
  • Example#3221 - OO gnupg_adddecryptkey example
  • Example#3222 - Procedural gnupg_addencryptkey example
  • Example#3223 - OO gnupg_addencryptkey example
  • Example#3224 - Procedural gnupg_addsignkey example
  • Example#3225 - OO gnupg_addsignkey example
  • Example#3226 - Procedural gnupg_cleardecryptkeys example
  • Example#3227 - OO gnupg_cleardecryptkeys example
  • Example#3228 - Procedural gnupg_clearencryptkeys example
  • Example#3229 - OO gnupg_clearencryptkeys example
  • Example#3230 - Procedural gnupg_clearsignkeys example
  • Example#3231 - OO gnupg_clearsignkeys example
  • Example#3232 - Procedural gnupg_decrypt example
  • Example#3233 - OO gnupg_decrypt example
  • Example#3234 - Procedural gnupg_decryptverify example
  • Example#3235 - OO gnupg_decryptverify example
  • Example#3236 - Procedural gnupg_deletekey example
  • Example#3237 - OO gnupg_deletekey example
  • Example#3238 - Procedural gnupg_encrypt example
  • Example#3239 - OO gnupg_encrypt example
  • Example#3240 - Procedural gnupg_encryptsign example
  • Example#3241 - OO gnupg_encryptsign example
  • Example#3242 - Procedural gnupg_export example
  • Example#3243 - OO gnupg_export example
  • Example#3244 - Procedural gnupg_getengineinfo example
  • Example#3245 - OO gnupg_getengineinfo example
  • Example#3246 - Procedural gnupg_geterror example
  • Example#3247 - OO gnupg_geterror example
  • Example#3248 - Procedural gnupg_geterrorinfo example
  • Example#3249 - OO gnupg_geterrorinfo example
  • Example#3250 - Procedural gnupg_getprotocol example
  • Example#3251 - OO gnupg_getprotocol example
  • Example#3252 - Procedural gnupg_gettrustlist example
  • Example#3253 - OO gnupg_gettrustlist example
  • Example#3254 - Procedural gnupg_import example
  • Example#3255 - OO gnupg_import example
  • Example#3256 - Procedural gnupg_init example with default setting
  • Example#3257 - Procedural gnupg_init example with overriden file name and home dir
  • Example#3258 - OO gnupg initializer example with default setting
  • Example#3259 - OO gnupg initializer example with overriden file name and home dir
  • Example#3260 - Procedural gnupg_keyinfo example
  • Example#3261 - OO gnupg_keyinfo example
  • Example#3262 - Procedural gnupg_listsignatures example
  • Example#3263 - OO gnupg_listsignatures example
  • Example#3264 - Procedural gnupg_setarmor example
  • Example#3265 - OO gnupg_setarmor example
  • Example#3266 - Procedural gnupg_seterrormode example
  • Example#3267 - OO gnupg_seterrormode example
  • Example#3268 - Procedural gnupg_setsignmode example
  • Example#3269 - OO gnupg_setsignmode example
  • Example#3270 - Procedural gnupg_sign example
  • Example#3271 - OO gnupg_sign example
  • Example#3272 - Procedural gnupg_verify example
  • Example#3273 - OO gnupg_verify example
  • Example#3274 - Creating and using a pattern
  • Example#3275 - Creating and using a template
  • Example#3276 - Hyphennate a text
  • Example#3277 - Drawing a rectangle
  • Example#3278 - Creating and using a spot color
  • Example#3279 - Rotation of the coordinate system
  • Example#3280 - Placing text at a given position
  • Example#3281 - Drawing a dashed line
  • Example#3282 - Translation of the coordinate system
  • Example#3283 - A rpmdbinfo example
  • Example#3284 - Searching for the package owning a file
  • Example#3285 - A rpminfo example
  • Example#3286 - example
  • Example#3287 - example
  • Example#3288 - example
  • Example#3289 - example
  • Example#3290 - example
  • Example#3291 - example
  • Example#3292 - example
  • Example#3293 - example
  • Example#3294 - example
  • Example#3295 - example
  • Example#3296 - example
  • Example#3297 - example
  • Example#3298 - example
  • Example#3299 - setColumn example
  • Example#3300 - setRow example
  • Example#3301 - Align style example
  • Example#3302 - Bold style example
  • Example#3303 - Italic style example
  • Example#3304 - Underline style example
  • Example#3305 - Incorrect requests
  • Example#3306 - Calling request from a request callback
  • Example#3307 - Calling request from a request callback
  • Example#3308 - Using eio with libevent
  • Example#3309 - Cancelling a request
  • Example#3310 - Calling eio_chmod
  • Example#3311 - Making a custom request
  • Example#3312 - Grouping requests
  • Example#3313 - Using eio with libevent extension
  • Example#3314 - Using eio with event extension
  • Example#3315 - eio_cancel example
  • Example#3316 - eio_custom example
  • Example#3317 - eio_event_loop example
  • Example#3318 - eio_lstat example
  • Example#3319 - Using eio with libevent
  • Example#3320 - Grouping requests
  • Example#3321 - eio_grp example
  • Example#3322 - eio_link example
  • Example#3323 - eio_lstat example
  • Example#3324 - eio_mkdir example
  • Example#3325 - eio_mknod example
  • Example#3326 - eio_nreqs example
  • Example#3327 - eio_open example
  • Example#3328 - eio_poll example
  • Example#3329 - eio_read example
  • Example#3330 - eio_readdir example
  • Example#3331 - eio_readlink example
  • Example#3332 - eio_realpath example
  • Example#3333 - eio_rename example
  • Example#3334 - eio_rmdir example
  • Example#3335 - eio_stat example
  • Example#3336 - eio_statvfs example
  • Example#3337 - eio_symlink example
  • Example#3338 - Simple timers
  • Example#3339 - Periodic timer. Tick each 10.5 seconds
  • Example#3340 - Periodic timer. Use reschedule callback
  • Example#3341 - Periodic timer. Tick every 10.5 seconds starting at now
  • Example#3342 - Wait until STDIN is readable
  • Example#3343 - Use some async I/O to access a socket
  • Example#3344 - Embedding one loop into another
  • Example#3345 - Embedding loop created with kqueue backend into the default loop
  • Example#3346 - Handle SIGTERM signal
  • Example#3347 - Monitor changes of /var/log/messages
  • Example#3348 - Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay
  • Example#3349 - Process status changes
  • Example#3350 - Using reschedule callback
  • Example#3351 - Embedding loop created with kqueue backend into the default loop
  • Example#3352 - Embedding one loop into another
  • Example#3353 - Embedding loop created with kqueue backend into the default loop
  • Example#3354 - Embedding loop created with kqueue backend into the default loop
  • Example#3355 - Periodic timer. Use reschedule callback
  • Example#3356 - Periodic timer. Tick every 10.5 seconds starting at now
  • Example#3357 - Hourly watcher
  • Example#3358 - Handle SIGTERM signal
  • Example#3359 - Monitor changes of /var/log/messages
  • Example#3360 - Monitor changes of /var/log/messages
  • Example#3361 - Simple timers
  • Example#3362 - Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay
  • Example#3363 - Register an I/O watcher for some UDP socket but do not keep the event loop from running just because of that watcher.
  • Example#3364 - Expect Usage Example
  • Example#3365 - Another Expect Usage Example
  • Example#3366 - expect_expectl example
  • Example#3367 - expect_popen example
  • Example#3368 - Process Control Example
  • Example#3369 - pcntl_fork example
  • Example#3370 - pcntl_rfork example
  • Example#3371 - pcntl_signal_dispatch example
  • Example#3372 - pcntl_signal_get_handler example
  • Example#3373 - pcntl_signal example
  • Example#3374 - pcntl_sigprocmask example
  • Example#3375 - pcntl_sigwaitinfo example
  • Example#3376 - posix_access example
  • Example#3377 - posix_ctermid example
  • Example#3378 - posix_eaccess example
  • Example#3379 - posix_fpathconf example
  • Example#3380 - posix_get_last_error example
  • Example#3381 - posix_getcwd example
  • Example#3382 - posix_getegid example
  • Example#3383 - posix_geteuid example
  • Example#3384 - posix_getgid example
  • Example#3385 - Example use of posix_getgrgid
  • Example#3386 - Example use of posix_getgrnam
  • Example#3387 - Example use of posix_getgroups
  • Example#3388 - Example use of posix_getlogin
  • Example#3389 - Example use of posix_getpgid
  • Example#3390 - Example use of posix_getpid
  • Example#3391 - Example use of posix_getppid
  • Example#3392 - Example use of posix_getpwnam
  • Example#3393 - Example use of posix_getpwuid
  • Example#3394 - Example use of posix_getrlimit
  • Example#3395 - Example use of posix_getsid
  • Example#3396 - Example use of posix_getuid
  • Example#3397 - A posix_mknod example
  • Example#3398 - posix_pathconf example
  • Example#3399 - posix_setegid example
  • Example#3400 - posix_setgid example
  • Example#3401 - posix_setuid example
  • Example#3402 - posix_strerror example
  • Example#3403 - posix_sysconf example
  • Example#3404 - Example use of posix_times
  • Example#3405 - Example use of posix_uname
  • Example#3406 - Exemplo de escapeshellarg
  • Example#3407 - Exemplo de escapeshellcmd
  • Example#3408 - Um exemplo exec
  • Example#3409 - Usando proc_nice para definir a prioridade do processo para alta
  • Example#3410 - Um exemplo de proc_open
  • Example#3411 - Peculiaridade de proc_open no Windows
  • Example#3412 - Um exemplo de shell_exec
  • Example#3413 - Exemplo de system
  • Example#3414 - Example showing Future as return value
  • Example#3415 - Example showing Future as synchronization point
  • Example#3416 - Fetch a chunk of the property table
  • Example#3417 - Counting the properties of an object
  • Example#3418 - Runtime inheritance
  • Example#3419 - Detect the state of the referenced object
  • Example#3420 - Detect the state of the referenced object
  • Example#3421 - Merging into the property table of a threaded object
  • Example#3422 - Notifications and Waiting
  • Example#3423 - Notifications and Waiting
  • Example#3424 - Popping the last item from the property table of a threaded object
  • Example#3425 - Shifting the first item from the property table of a threaded object
  • Example#3426 - Synchronizing
  • Example#3427 - Notifications and Waiting
  • Example#3428 - Return the identity of the Thread or Process that created the referenced Thread
  • Example#3429 - Return the currently executing Thread
  • Example#3430 - Return the identity of the currently executing Thread
  • Example#3431 - Return the identity of the referenced Thread
  • Example#3432 - Detect the state of the referenced Thread
  • Example#3433 - Tell if the referenced Thread was started
  • Example#3434 - Join with the referenced Thread
  • Example#3435 - Starting Threads
  • Example#3436 - A basic example of Worker::collect
  • Example#3437 - A basic example of Worker::getStacked
  • Example#3438 - Detect the state of a worker
  • Example#3439 - Shutdown the referenced worker
  • Example#3440 - Stacking a task for execution onto a worker
  • Example#3441 - Removing objects from the stack of Workers
  • Example#3442 - A basic example of Pool::collect
  • Example#3443 - Creating Pools
  • Example#3444 - Shutting down a pool
  • Example#3445 - Submitting Tasks
  • Example#3446 - Submitting tasks to a specific worker
  • Example#3447 - New immutability semantics of Threaded
  • Example#3448 - Volatile use-case
  • Example#3449 - Visão Geral de Operações de Memória Compartilhada
  • Example#3450 - Fechando um bloco de memória compartilhada
  • Example#3451 - Deletando um bloco de memória compartilhada
  • Example#3452 - Create a new shared memory block
  • Example#3453 - Reading shared memory block
  • Example#3454 - Pegando o tamanho do bloco de memória compartilhada
  • Example#3455 - Writing to shared memory block
  • Example#3456 - Exemplo de SyncMutex::__construct de mutex nomeado com tempo limite de bloqueio
  • Example#3457 - Exemplo de SyncMutex::__construct de mutex sem nome
  • Example#3458 - Exemplo de SyncMutex::lock
  • Example#3459 - Exemplo de SyncMutex::unlock
  • Example#3460 - SyncSemaphore::__construct example
  • Example#3461 - SyncSemaphore::lock example
  • Example#3462 - SyncSemaphore::unlock example
  • Example#3463 - Exemplo de SyncEvent::__construct
  • Example#3464 - Exemplo de SyncEvent::fire
  • Example#3465 - Exemplo de SyncEvent::reset
  • Example#3466 - Exemplo de SyncEvent::wait
  • Example#3467 - SyncReaderWriter::__construct example
  • Example#3468 - SyncReaderWriter::readlock example
  • Example#3469 - SyncReaderWriter::readunlock example
  • Example#3470 - SyncReaderWriter::writelock example
  • Example#3471 - SyncReaderWriter::writeunlock example
  • Example#3472 - SyncSharedMemory::__construct example
  • Example#3473 - SyncSharedMemory::first example
  • Example#3474 - SyncSharedMemory::__construct example
  • Example#3475 - SyncSharedMemory::size example
  • Example#3476 - SyncSharedMemory::write example
  • Example#3477 - A geoip_asnum_by_name example
  • Example#3478 - A geoip_continent_code_by_name example
  • Example#3479 - A geoip_country_code_by_name example
  • Example#3480 - A geoip_country_code3_by_name example
  • Example#3481 - A geoip_country_name_by_name example
  • Example#3482 - A geoip_database_info example
  • Example#3483 - A geoip_db_avail example
  • Example#3484 - A geoip_db_filename example
  • Example#3485 - A geoip_db_get_all_info example
  • Example#3486 - A geoip_db_get_all_info example
  • Example#3487 - A geoip_domain_by_name example
  • Example#3488 - A geoip_id_by_name example
  • Example#3489 - A geoip_isp_by_name example
  • Example#3490 - A geoip_netspeedcell_by_name example
  • Example#3491 - A geoip_org_by_name example
  • Example#3492 - A geoip_record_by_name example
  • Example#3493 - A geoip_region_by_name example
  • Example#3494 - A geoip_region_name_by_code example using region code for US/Canada
  • Example#3495 - A geoip_region_name_by_code example using FIPS codes
  • Example#3496 - A geoip_setup_custom_directory example
  • Example#3497 - A geoip_time_zone_by_country_and_region example using region code for US/Canada
  • Example#3498 - A geoip_time_zone_by_country_and_region example using FIPS codes
  • Example#3499 - xor.data file
  • Example#3500 - Simple train
  • Example#3501 - Simple test
  • Example#3502 - fann_create_train_from_callback example
  • Example#3503 - fann_read_train_from_file example
  • Example#3504 - igbinary_serialize example
  • Example#3505 - Exemplo de JsonSerializable::jsonSerialize retornando um array
  • Example#3506 - Exemplo de JsonSerializable::jsonSerialize retornando um array associativo
  • Example#3507 - Exemplo de JsonSerializable::jsonSerialize retornando um int
  • Example#3508 - Exemplo de JsonSerializable::jsonSerialize retornando uma string
  • Example#3509 - json_decode exemplos
  • Example#3510 - Acessando propriedades inválidas do objeto
  • Example#3511 - erros comuns usando json_decode
  • Example#3512 - erros de depth
  • Example#3513 - json_decode de inteiros grandes
  • Example#3514 - Um exemplo da json_encode
  • Example#3515 - Um exemplo de json_encode mostrando algumas opções em uso
  • Example#3516 - Exemplo com a opção JSON_NUMERIC_CHECK
  • Example#3517 - Exemplo de array sequencial versus não-sequencial
  • Example#3518 - Exemplo com a opção JSON_PRESERVE_ZERO_FRACTION
  • Example#3519 - Exemplo de json_last_error
  • Example#3520 - json_last_error com json_encode
  • Example#3521 - json_last_error and JSON_THROW_ON_ERROR
  • Example#3522 - Exemplos de json_validate
  • Example#3523 - simdjson_decode examples
  • Example#3524 - Accessing invalid object properties
  • Example#3525 - common mistakes using simdjson_decode
  • Example#3526 - depth errors
  • Example#3527 - simdjson_decode of large integers
  • Example#3528 - simdjson_decode examples
  • Example#3529 - depth errors
  • Example#3530 - Exemplo da função Lua::assign
  • Example#3531 - Exemplo da função Lua::call
  • Example#3532 - Exemplo da função Lua::eval
  • Example#3533 - Exemplo da função Lua::registerCallback
  • Example#3534 - Exemplo de função LuaClosure::__invoke
  • Example#3535 - Execute some Lua code
  • Example#3536 - Calling a Lua function
  • Example#3537 - Profiling Lua code
  • Example#3538 - Loading code into Lua
  • Example#3539 - Manipulating the usage timer
  • Example#3540 - Registering PHP functions to call from Lua
  • Example#3541 - Calling a Lua function
  • Example#3542 - Calling a Lua function
  • Example#3543 - Usando constant com Constantes
  • Example#3544 - Usando constantcom Casos de Enumeração (a partir do PHP 8.1.0)
  • Example#3545 - Defining Constants
  • Example#3546 - Constantes com Nomes Reservados
  • Example#3547 - Verificando constantes
  • Example#3548 - Verificando Casos de Enumeração (a partir do PHP 8.1.0)
  • Example#3549 - Exemplo de eval example - fusão simples de texto
  • Example#3550 - Exemplo de exit
  • Example#3551 - Exemplo de exit com estado de saída
  • Example#3552 - Desligamento de funções e destruidores de objeto são executados independentemente
  • Example#3553 - Listando todas as informações sobre o navegador do usuário
  • Example#3554 - Um exemplo de __halt_compiler
  • Example#3555 - Exemplo de highlight_string
  • Example#3556 - Uso de hrtime
  • Example#3557 - Um exemplo de ignore_user_abort
  • Example#3558 - Exemplo de pack
  • Example#3559 - Exemplo de php_strip_whitespace
  • Example#3560 - Uso Básico de sapi_windows_generate_ctrl_event
  • Example#3561 - Uso Básico de sapi_windows_set_ctrl_handler
  • Example#3562 - Estado padrão de sapi_windows_vt100_support
  • Example#3563 - sapi_windows_vt100_support mudando de estado
  • Example#3564 - Exemplo de uso do suporte a VT100 habilitado
  • Example#3565 - Exemplo de sleep
  • Example#3566 - Um exemplo de sys_getloadavg
  • Example#3567 - Exemplo de time_nanosleep
  • Example#3568 - Um exemplo de time_sleep_until
  • Example#3569 - uniqid Example
  • Example#3570 - Exemplo de unpack
  • Example#3571 - Exemplo de unpack com um repetidor
  • Example#3572 - Exemplo de unpack com chaves sem nome
  • Example#3573 - Exemplo de usleep
  • Example#3574 - Random Example
  • Example#3575 - mt_rand example
  • Example#3576 - rand example
  • Example#3577 - random_bytes example
  • Example#3578 - random_int example
  • Example#3579 - Random\Randomizer::__construct example
  • Example#3580 - Random\Randomizer::getBytes example
  • Example#3581 - Random\Randomizer::getBytesFromString example
  • Example#3582 - Generate a random code for multi-factor authentication
  • Example#3583 - Select from a string with a non-uniform distribution
  • Example#3584 - Random\Randomizer::getFloat example
  • Example#3585 - Random\Randomizer::getInt example
  • Example#3586 - Random\Randomizer::nextFloat example
  • Example#3587 - Incorrect scaling using an affine transformation
  • Example#3588 - Random\Randomizer::nextInt example
  • Example#3589 - Random\Randomizer::pickArrayKeys example
  • Example#3590 - Picking random values
  • Example#3591 - Random\Randomizer::__serialize example
  • Example#3592 - Random\Randomizer::shuffleArray example
  • Example#3593 - Random\Randomizer::shuffleBytes example
  • Example#3594 - Byte-wise shuffling breaks Unicode characters
  • Example#3595 - Random\Randomizer::__unserialize example
  • Example#3596 - Random\Engine::generate example
  • Example#3597 - Random\Engine\Mt19937::__construct example
  • Example#3598 - Random\Engine\Mt19937::__debugInfo example
  • Example#3599 - Random\Engine\Mt19937::__serialize example
  • Example#3600 - Random\Engine\Mt19937::__unserialize example
  • Example#3601 - Random\Engine\PcgOneseq128XslRr64::__construct example
  • Example#3602 - Deriving a seed from a string
  • Example#3603 - Random\Engine\PcgOneseq128XslRr64::__debugInfo example
  • Example#3604 - Random\Engine\PcgOneseq128XslRr64::jump example
  • Example#3605 - Randomizer methods may call the engine more than once
  • Example#3606 - Random\Engine\PcgOneseq128XslRr64::__serialize example
  • Example#3607 - Random\Engine\PcgOneseq128XslRr64::__unserialize example
  • Example#3608 - Random\Engine\Xoshiro256StarStar::__construct example
  • Example#3609 - Deriving a seed from a string
  • Example#3610 - Random\Engine\Xoshiro256StarStar::__debugInfo example
  • Example#3611 - Random\Engine\Xoshiro256StarStar::jump example
  • Example#3612 - Random\Engine\Xoshiro256StarStar::jumpLong example
  • Example#3613 - Random\Engine\Xoshiro256StarStar::__serialize example
  • Example#3614 - Random\Engine\Xoshiro256StarStar::__unserialize example
  • Example#3615 - Get and set base path
  • Example#3616 - Get and set logger
  • Example#3617 - Fast write log
  • Example#3618 - Fast count some type of log count value
  • Example#3619 - Acquisit some type of log list
  • Example#3620 - seaslog_get_author example
  • Example#3621 - seaslog_get_version example
  • Example#3622 - SeasLog::alert example
  • Example#3623 - SeasLog::analyzerCount example
  • Example#3624 - SeasLog::analyzerDetail example
  • Example#3625 - SeasLog::closeLoggerStream example
  • Example#3626 - SeasLog::__construct example
  • Example#3627 - SeasLog::critical example
  • Example#3628 - SeasLog::debug example
  • Example#3629 - SeasLog::__destruct example
  • Example#3630 - SeasLog::emergency example
  • Example#3631 - SeasLog::error example
  • Example#3632 - SeasLog::flushBuffer example
  • Example#3633 - SeasLog::getBasePath example
  • Example#3634 - SeasLog::getBuffer example
  • Example#3635 - SeasLog::getBufferEnabled example
  • Example#3636 - SeasLog::getDatetimeFormat example
  • Example#3637 - SeasLog::getLastLogger example
  • Example#3638 - SeasLog::getRequestID example
  • Example#3639 - SeasLog::getRequestVariable example
  • Example#3640 - SeasLog::info example
  • Example#3641 - SeasLog::log example
  • Example#3642 - SeasLog::notice example
  • Example#3643 - SeasLog::setBasePath example
  • Example#3644 - SeasLog::setDatetimeFormat example
  • Example#3645 - SeasLog::setLogger example
  • Example#3646 - SeasLog::setRequestID example
  • Example#3647 - SeasLog::setRequestVariable example
  • Example#3648 - SeasLog::warning example
  • Example#3649 - Exemplo de SplStack
  • Example#3650 - SplQueue exemplo
  • Example#3651 - Gestão eficiente de tarefas usando SplQueue
  • Example#3652 - Exemplo de uso de SplFixedArray
  • Example#3653 - Exemplo de SplFixedArray::__construct
  • Example#3654 - Exemplo de SplFixedArray::count
  • Example#3655 - Exemplo de SplFixedArray::fromArray
  • Example#3656 - Exemplo de SplFixedArray::getSize
  • Example#3657 - Exemplo de SplFixedArray::setSize
  • Example#3658 - Exemplo de SplFixedArray::toArray
  • Example#3659 - SplObjectStorage como um conjunto
  • Example#3660 - SplObjectStorage como um mapa
  • Example#3661 - Exemplo de SplObjectStorage::addAll
  • Example#3662 - Exemplo de SplObjectStorage::attach
  • Example#3663 - Exemplo de SplObjectStorage::contains
  • Example#3664 - Exemplo de SplObjectStorage::count
  • Example#3665 - Exemplo de SplObjectStorage::current
  • Example#3666 - Exemplo de SplObjectStorage::detach
  • Example#3667 - Exemplo de SplObjectStorage::getHash
  • Example#3668 - Exemplo de SplObjectStorage::getInfo
  • Example#3669 - Exemplo de SplObjectStorage::key
  • Example#3670 - Exemplo de SplObjectStorage::next
  • Example#3671 - Exemplo de SplObjectStorage::offsetExists
  • Example#3672 - Exemplo de SplObjectStorage::offsetGet
  • Example#3673 - Exemplo de SplObjectStorage::offsetSet
  • Example#3674 - Exemplo de SplObjectStorage::offsetUnset
  • Example#3675 - Exemplo de SplObjectStorage::removeAll
  • Example#3676 - Exemplo de SplObjectStorage::removeAllExcept
  • Example#3677 - Exemplo de SplObjectStorage::rewind
  • Example#3678 - Exemplo de SplObjectStorage::serialize
  • Example#3679 - Exemplo de SplObjectStorage::setInfo
  • Example#3680 - Exemplo de SplObjectStorage::unserialize
  • Example#3681 - Exemplo de SplObjectStorage::valid
  • Example#3682 - Exemplo de AppendIterator::append
  • Example#3683 - Iterando o AppendIterator com foreach
  • Example#3684 - Iterando o AppendIterator com a API do AppendIterator
  • Example#3685 - Exemplo básico de AppendIterator.getIteratorIndex
  • Example#3686 - Exemplo básico de AppendIterator::key
  • Example#3687 - Exemplo de ArrayIterator::current
  • Example#3688 - Exemplo de ArrayIterator::key
  • Example#3689 - Exemplo de ArrayIterator::next
  • Example#3690 - Exemplo de ArrayIterator::rewind
  • Example#3691 - Exemplo de ArrayIterator::valid
  • Example#3692 - Exemplo de CachingIterator::getCache
  • Example#3693 - Argumentos de callback disponíveis
  • Example#3694 - Exemplos básicos de callback
  • Example#3695 - Um exemplo de DirectoryIterator::__construct
  • Example#3696 - Um exemplo de DirectoryIterator::current
  • Example#3697 - Exemplo do DirectoryIterator::getBasename
  • Example#3698 - Exemplo de DirectoryIterator::getExtension
  • Example#3699 - Um exemplo de DirectoryIterator::getFilename
  • Example#3700 - Um exemplo de DirectoryIterator::isDot
  • Example#3701 - Um exemplo de DirectoryIterator::key
  • Example#3702 - Exemplo de DirectoryIterator::next
  • Example#3703 - Exemplo de DirectoryIterator::rewind
  • Example#3704 - Exemplo do DirectoryIterator::seek
  • Example#3705 - Exemplo do DirectoryIterator::__toString
  • Example#3706 - Um exemplo de DirectoryIterator::valid
  • Example#3707 - Exemplo de FilesystemIterator::__construct
  • Example#3708 - Exemplo de FilesystemIterator::current
  • Example#3709 - Exemplo de FilesystemIterator::key
  • Example#3710 - Exemplo de FilesystemIterator::next
  • Example#3711 - Exemplo de FilesystemIterator::rewind
  • Example#3712 - Exemplo de FilesystemIterator::key
  • Example#3713 - Exemplo de FilterIterator::accept
  • Example#3714 - Exemplo de GlobIterator
  • Example#3715 - Exemplo de GlobIterator::count
  • Example#3716 - Exemplo de InfiniteIterator::__construct
  • Example#3717 - LimitIterator usage example
  • Example#3718 - Exemplo de LimitIterator::__construct
  • Example#3719 - Exemplos de LimitIterator::getPosition
  • Example#3720 - Iterando um MultipleIterator
  • Example#3721 - Exemplo de NoRewindIterator::__construct
  • Example#3722 - Exemplo de NoRewindIterator::rewind
  • Example#3723 - Exemplo de RecursiveArrayIterator::getChildren
  • Example#3724 - Exemplo de RecursiveArrayIterator::hasChildren
  • Example#3725 - Argumentos disponíveis para o callback
  • Example#3726 - Exemplo básico de chamada recursiva
  • Example#3727 - Uso básico de RecursiveCallbackFilterIterator::hasChildren
  • Example#3728 - Exemplo de RecursiveDirectoryIterator
  • Example#3729 - Exemplo de getSubPath
  • Example#3730 - Exemplo de getSubPathname
  • Example#3731 - Exemplo básico de RecursiveFilterIterator
  • Example#3732 - Exemplo de RecursiveFilterIterator
  • Example#3733 - Iterando um RecursiveIteratorIterator
  • Example#3734 - Exemplo de RecursiveRegexIterator::__construct
  • Example#3735 - Exemplo de RecursiveRegexIterator::getChildren
  • Example#3736 - Exemplo de RecursiveRegexIterator::hasChildren
  • Example#3737 - Exemplo de RegexIterator::accept
  • Example#3738 - Exemplo de RegexIterator::__construct
  • Example#3739 - Exemplo de RegexIterator::getFlags
  • Example#3740 - Exemplo de RegexIterator::getMode
  • Example#3741 - Exemplo de RegexIterator::getPregFlags
  • Example#3742 - Exemplo de RegexIterator::setFlags
  • Example#3743 - Exemplo de RegexIterator::setMode
  • Example#3744 - Exemplo de RegexIterator::setPregFlags
  • Example#3745 - Exemplo de Countable::count
  • Example#3746 - Utilização básica
  • Example#3747 - Exemplo de SeekableIterator::seek
  • Example#3748 - Exemplo de class_implements
  • Example#3749 - Exemplo de class_parents
  • Example#3750 - Exemplo de class_uses
  • Example#3751 - Exemplo de iterator_apply
  • Example#3752 - Exemplo de iterator_count
  • Example#3753 - iterator_count modifica a posição
  • Example#3754 - iterator_count em laços foreach
  • Example#3755 - Exemplo da iterator_to_array
  • Example#3756 - Exemplo de spl_autoload_extensions
  • Example#3757 - spl_autoload_register como substituição para um __autoload function
  • Example#3758 - spl_autoload_register exemplo onde a classe não é carregada
  • Example#3759 - O identificador será fornecido sem a barra invertida inicial
  • Example#3760 - Exemplo despl_classes
  • Example#3761 - Exemplo de spl_object_hash
  • Example#3762 - Um exemplo de spl_object_id
  • Example#3763 - Exemplo de SplFileInfo::__construct
  • Example#3764 - Exemplo de SplFileInfo::getATime
  • Example#3765 - Exemplo de SplFileInfo::getBasename
  • Example#3766 - Exemplo de SplFileInfo::getCTime
  • Example#3767 - Exemplo de SplFileInfo::getExtension
  • Example#3768 - Exemplo de SplFileInfo::getFilename
  • Example#3769 - Exemplo de SplFileInfo::getGroup
  • Example#3770 - Exemplo de SplFileInfo::getLinkTarget
  • Example#3771 - Exemplo de SplFileInfo::getMTime
  • Example#3772 - Exemplo de SplFileInfo::getOwner
  • Example#3773 - Exemplo de SplFileInfo::getPath
  • Example#3774 - Exemplo de SplFileInfo::getPathInfo
  • Example#3775 - Exemplo de SplFileInfo::getPathname
  • Example#3776 - Exemplo de SplFileInfo::getPerms
  • Example#3777 - Exemplo de SplFileInfo::getRealPath
  • Example#3778 - Exemplo de SplFileInfo::getSize
  • Example#3779 - Exemplo de SplFileInfo::getType
  • Example#3780 - Exemplo de SplFileInfo::isDir
  • Example#3781 - Exemplo de SplFileInfo::isExecutable
  • Example#3782 - Exemplo de SplFileInfo::isFile
  • Example#3783 - Exemplo de SplFileInfo::isLink
  • Example#3784 - Exemplo de SplFileInfo::isReadable
  • Example#3785 - Exemplo de SplFileInfo::isWriteable
  • Example#3786 - Exemplo de SplFileInfo::openFile
  • Example#3787 - Exemplo de SplFileInfo::setFileClass
  • Example#3788 - Exemplo de SplFileInfo::setFileClass
  • Example#3789 - Exemplo de SplFileInfo::__toString
  • Example#3790 - Exemplo de SplFileObject::__construct
  • Example#3791 - Exemplo de SplFileObject::current
  • Example#3792 - Exemplo de SplFileObject::eof
  • Example#3793 - Exemplo de SplFileObject::fflush
  • Example#3794 - Exemplo de SplFileObject::fgetc
  • Example#3795 - Exemplo de SplFileObject::fgetcsv
  • Example#3796 - Exemplo de SplFileObject::READ_CSV
  • Example#3797 - Exemplo de SplFileObject::fgets
  • Example#3798 - Exemplo de SplFileObject::fgetss
  • Example#3799 - Exemplo de SplFileObject::flock
  • Example#3800 - Exemplo de SplFileObject::fpassthru
  • Example#3801 - Exemplo de SplFileObject::fputcsv
  • Example#3802 - Exemplo de SplFileObject::fread
  • Example#3803 - Exemplo de SplFileObject::fscanf
  • Example#3804 - Exemplo de SplFileObject::fseek
  • Example#3805 - Exemplo de SplFileObject::fstat
  • Example#3806 - Exemplo de SplFileObject::ftell
  • Example#3807 - Exemplo de SplFileObject::ftruncate
  • Example#3808 - Exemplo de SplFileObject::fwrite
  • Example#3809 - Exemplo de SplFileObject::getCsvControl
  • Example#3810 - Exemplo de SplFileObject::getFlags
  • Example#3811 - Exemplo de SplFileObject::getMaxLineLen
  • Example#3812 - Exemplo de SplFileObject::key
  • Example#3813 - Exemplo de SplFileObject::key com SplFileObject::setMaxLineLen
  • Example#3814 - Exemplo de SplFileObject::next
  • Example#3815 - Exemplo de SplFileObject::rewind
  • Example#3816 - Exemplo de SplFileObject::seek
  • Example#3817 - Exemplo de SplFileObject::setCsvControl
  • Example#3818 - Exemplo de SplFileObject::setFlags
  • Example#3819 - Exemplo de SplFileObject::setMaxLineLen
  • Example#3820 - Exemplo de SplFileObject::valid
  • Example#3821 - Exemplo de SplTempFileObject
  • Example#3822 - Exemplo de ArrayObject::append
  • Example#3823 - Exemplo de ArrayObject::asort
  • Example#3824 - Exemplo de ArrayObject::__construct
  • Example#3825 - Exemplo de ArrayObject::count
  • Example#3826 - Exemplo de ArrayObject::exchangeArray
  • Example#3827 - Exemplo de ArrayObject::getArrayCopy
  • Example#3828 - Exemplo de ArrayObject::getFlags
  • Example#3829 - Exemplo de ArrayObject::getIterator
  • Example#3830 - Exemplo de ArrayObject::getIteratorClass
  • Example#3831 - Exemplo de ArrayObject::ksort
  • Example#3832 - Exemplo de ArrayObject::natcasesort
  • Example#3833 - Exemplo de ArrayObject::natsort
  • Example#3834 - Exemplo de ArrayObject::offsetExists
  • Example#3835 - Exemplo de ArrayObject::offsetGet
  • Example#3836 - Exemplo de ArrayObject::offsetSet
  • Example#3837 - Exemplo de ArrayObject::offsetUnset
  • Example#3838 - Exemplo de ArrayObject::serialize
  • Example#3839 - Exemplo de ArrayObject::setFlags
  • Example#3840 - Exemplo de ArrayObject::setIteratorClass
  • Example#3841 - Exemplo de ArrayObject::uasort
  • Example#3842 - Exemplo de ArrayObject::uksort
  • Example#3843 - Usando file_get_contents para obter dados de fontes múltiplas
  • Example#3844 - Realizando uma requisição POST para um servidor https
  • Example#3845 - Escrevendo dados em um arquivo compactado
  • Example#3846 - Um Fluxo para ler/escrever variáveis globais
  • Example#3847 - Listando arquivos de arquivadores tar
  • Example#3848 - Exemplos de stream_bucket_prepend
  • Example#3849 - Usando a função stream_context_create
  • Example#3850 - Usando stream_context_get_default
  • Example#3851 - Exemplo de stream_context_get_options
  • Example#3852 - Exemplo de stream_context_get_params
  • Example#3853 - Exemplo de stream_context_set_default
  • Example#3854 - Exemplo de stream_context_set_options
  • Example#3855 - Um exemplo de stream_copy_to_stream
  • Example#3856 - Controlando onde os filtros são aplicados
  • Example#3857 - Filtro para converter para maiúsculas os caracteres no fluxo foo-bar.txt
  • Example#3858 - Registrando uma classe de filtro genérica para combinar com múltiplos nomes de filtro.
  • Example#3859 - Refiltrando um fluxo dinamicamente
  • Example#3860 - Exemplo de stream_get_contents
  • Example#3861 - Usando stream_get_filters
  • Example#3862 - Exemplo de stream_get_meta_data usando fopen com http
  • Example#3863 - Exemplo de stream_get_meta_data usando stream_socket_client com https
  • Example#3864 - Usando stream_get_transports
  • Example#3865 - Exemplo de stream_get_wrappers
  • Example#3866 - Verificando a existência de um empacotador de fluxo
  • Example#3867 - Exemplo de stream_is_local
  • Example#3868 - Exemplo de stream_isatty
  • Example#3869 - Exemplo de stream_notification_callback
  • Example#3870 - Barra de progresso simples para cliente de download em linha de comando
  • Example#3871 - stream_resolve_include_path example
  • Example#3872 - Exemplo de stream_select
  • Example#3873 - Exemplo de stream_set_timeout
  • Example#3874 - Exemplo de stream_set_write_buffer
  • Example#3875 - Exemplo de stream_socket_client
  • Example#3876 - Usando conexão UDP
  • Example#3877 - Exemplo de stream_socket_enable_crypto
  • Example#3878 - Um exemplo de stream_socket_pair
  • Example#3879 - Exemplo de stream_socket_recvfrom
  • Example#3880 - Exemplo de stream_socket_sendto
  • Example#3881 - Usando sockets de servidor TCP
  • Example#3882 - Usando sockets de servidor usando UDP
  • Example#3883 - Um exemplo de stream_socket_shutdown
  • Example#3884 - Como registrar um empacotador de fluxo
  • Example#3885 - Básico uso do Tidy
  • Example#3886 - tidy::getBody example
  • Example#3887 - tidy::cleanrepair example
  • Example#3888 - tidy::__construct example
  • Example#3889 - tidy::diagnose example
  • Example#3890 - tidy_get_error_buffer example
  • Example#3891 - tidy::getConfig example
  • Example#3892 - tidy_getopt example
  • Example#3893 - Print all options along with their documentation and default value
  • Example#3894 - tidy::getStatus example
  • Example#3895 - tidy::head example
  • Example#3896 - tidy::html example
  • Example#3897 - tidy::parseFile example
  • Example#3898 - tidy::parseString example
  • Example#3899 - tidy::repairFile example
  • Example#3900 - tidy::repairString example
  • Example#3901 - tidy::root example
  • Example#3902 - tidyNode::hasChildren example
  • Example#3903 - tidyNode::hasChildren example
  • Example#3904 - tidyNode::hasSiblings example
  • Example#3905 - Extract ASP code from a mixed HTML document
  • Example#3906 - Extract comments from a mixed HTML document
  • Example#3907 - Extract HTML code from a mixed HTML document
  • Example#3908 - Extract JSTE code from a mixed HTML document
  • Example#3909 - Extract PHP code from a mixed HTML document
  • Example#3910 - Extract text from a mixed HTML document
  • Example#3911 - ob_tidyhandler example
  • Example#3912 - tidy_access_count example
  • Example#3913 - tidy_config_count example
  • Example#3914 - tidy_error_count example
  • Example#3915 - tidy_get_output example
  • Example#3916 - tidy_warning_count example
  • Example#3917 - Retirando os comentários com o tokenizer
  • Example#3918 - PhpToken::getTokenName example
  • Example#3919 - PhpToken::is example
  • Example#3920 - Usage with array
  • Example#3921 - PhpToken::isIgnorable example
  • Example#3922 - PhpToken::__toString example
  • Example#3923 - PhpToken::tokenize example
  • Example#3924 - Extending PhpToken
  • Example#3925 - Exemplo de token_get_all
  • Example#3926 - Exemplo de uso incorreto de token_get_all
  • Example#3927 - token_get_all em uma classe usando um exemplo de palavra reservada
  • Example#3928 - Exemplo de token_name
  • Example#3929 - Exemplo base64_decode
  • Example#3930 - Exemplo base64_encode
  • Example#3931 - Exemplo de get_headers
  • Example#3932 - Exemplo de get_headers usando HEAD
  • Example#3933 - What get_meta_tags parses
  • Example#3934 - What get_meta_tags returns
  • Example#3935 - Exemplo de uso de http_build_query
  • Example#3936 - http_build_query com elementos indexados numericamente.
  • Example#3937 - http_build_query com arrays complexos
  • Example#3938 - Usando http_build_query com um objeto
  • Example#3939 - A parse_url example
  • Example#3940 - A parse_url example with missing scheme
  • Example#3941 - Exemplo da rawurldecode
  • Example#3942 - Incluindo uma senha em uma URL de FTP
  • Example#3943 - Exemplo 2 de rawurlencode
  • Example#3944 - Exemplo da urldecode
  • Example#3945 - urlencode example
  • Example#3946 - urlencode and htmlentities example
  • Example#3947 - Basic Javascript execution
  • Example#3948 - Yaml Example
  • Example#3949 - Parse callback example
  • Example#3950 - Emit callback example
  • Example#3951 - yaml_emit example
  • Example#3952 - yaml_parse example
  • Example#3953 - A classic Application directory layout
  • Example#3954 - Entry
  • Example#3955 - Rewrite rule
  • Example#3956 - Application config
  • Example#3957 - Default controller
  • Example#3958 - Default view template
  • Example#3959 - Run the Application
  • Example#3960 - An PHP array example
  • Example#3961 - An ini file example
  • Example#3962 - A Bootstrapexample
  • Example#3963 - Yaf_Application::bootstrapexample
  • Example#3964 - Yaf_Application::clearLastErrorexample
  • Example#3965 - A ini config file example
  • Example#3966 - Yaf_Application::__constructexample
  • Example#3967 - Yaf_Application::__constructexample
  • Example#3968 - Yaf_Application::environexample
  • Example#3969 - Yaf_Application::executeexample
  • Example#3970 - Yaf_Application::getConfigexample
  • Example#3971 - Yaf_Application::getDispatcherexample
  • Example#3972 - Yaf_Application::getLastErrorMsgexample
  • Example#3973 - Yaf_Application::getLastErrorNoexample
  • Example#3974 - Yaf_Application::getModulesexample
  • Example#3975 - Bootstrap example
  • Example#3976 - Yaf_Dispatcher::autoRender example
  • Example#3977 - Yaf_Dispatcher::catchException example
  • Example#3978 - Yaf_Dispatcher::registerPlugin example
  • Example#3979 - A custom View engine example
  • Example#3980 - Yaf_Dispatcher::setView example
  • Example#3981 - Yaf_Dispatcher::throwexception example
  • Example#3982 - Yaf_Dispatcher::throwexceptionexample
  • Example#3983 - Yaf_Config_Iniexample
  • Example#3984 - define action in a separate file
  • Example#3985 - Dummy_action.php
  • Example#3986 - Yaf_Controller_Abstract::forwardexample
  • Example#3987 - Yaf_Action_Abstract::executeexample
  • Example#3988 - Yaf_Action_Abstract::executeexample
  • Example#3989 - Yaf_View_Simple::assignexample
  • Example#3990 - templateexample
  • Example#3991 - Yaf_View_Simple::assignRefexample
  • Example#3992 - templateexample
  • Example#3993 - Yaf_View_Simple::clearexample
  • Example#3994 - Yaf_View_Simple::__constructorexample
  • Example#3995 - Yaf_View_Simple::__setexample
  • Example#3996 - Config example
  • Example#3997 - Register localnamespace
  • Example#3998 - Load class example
  • Example#3999 - Load namespace class example
  • Example#4000 - MVC class loading example
  • Example#4001 - MVC class distinctions
  • Example#4002 - MVC loading example
  • Example#4003 - Yaf_Loader::registerNamespaceexample
  • Example#4004 - Yaf_Loader::registerLocalNamespaceexample
  • Example#4005 - Yaf_Loader::registerNamespaceexample
  • Example#4006 - Plugin example
  • Example#4007 - Yaf_Plugin_Abstract::routerShutdownexample
  • Example#4008 - Yaf_Response_Abstract::appendBodyexample
  • Example#4009 - Yaf_Response_Abstract::getBodyexample
  • Example#4010 - Yaf_Response_Abstract::prependBodyexample
  • Example#4011 - Yaf_Response_Abstract::responseexample
  • Example#4012 - Yaf_Response_Abstract::setBodyexample
  • Example#4013 - Yaf_Route_Map::assembleexample
  • Example#4014 - Yaf_Route_Mapexample
  • Example#4015 - Yaf_Route_Mapexample
  • Example#4016 - Yaf_Route_Mapexample
  • Example#4017 - Yaf_Route_Regex::assembleexample
  • Example#4018 - Yaf_Route_Regexexample
  • Example#4019 - Yaf_Route_Regex(as of 2.3.0)example
  • Example#4020 - Yaf_Route_Regex and named capture ground(as of 2.3.0)example
  • Example#4021 - Yaf_Route_Regexexample
  • Example#4022 - Yaf_Route_Rewrite::assembleexample
  • Example#4023 - Yaf_Route_Rewriteexample
  • Example#4024 - Yaf_Route_Rewriteexample
  • Example#4025 - Yaf_Route_Rewrite(as of 2.3.0)example
  • Example#4026 - Rewrite rule for Apache
  • Example#4027 - Rewrite rule for Apache
  • Example#4028 - Rewrite rule for Lighttpd
  • Example#4029 - Rewrite rule for Nginx
  • Example#4030 - Yaf_Route_Static(default route)example
  • Example#4031 - application.iniexample
  • Example#4032 - Yaf_Dispatcher::autoConfigexample
  • Example#4033 - Yaf_Dispatcher::autoRenderexample
  • Example#4034 - Register some routes in Bootstrap
  • Example#4035 - plugin Dummy.php (under application.directory/plugins)
  • Example#4036 - Yaf_Route_Simple::assembleexample
  • Example#4037 - Yaf_Route_Simple::routeexample
  • Example#4038 - Yaf_Route_Simple::routeexample
  • Example#4039 - Yaf_Route_Static::assembleexample
  • Example#4040 - Yaf_Route_Static::routeexample
  • Example#4041 - Yaf_Route_Supervar::assemble example
  • Example#4042 - Yaf_Route_Supervarexample
  • Example#4043 - INI example
  • Example#4044 - INI sections example
  • Example#4045 - INIexample
  • Example#4046 - Taintexample
  • Example#4047 - Vector
  • Example#4048 - Map
  • Example#4049 - Ds\Collection::clear exemplo
  • Example#4050 - Ds\Collection::copy exemplo
  • Example#4051 - Ds\Collection::isEmpty exemplo
  • Example#4052 - Ds\Collection::toArray exemplo
  • Example#4053 - Ds\Hashable::hash exemplo
  • Example#4054 - Exemplo de Ds\Sequence::allocate
  • Example#4055 - Exemplo de Ds\Sequence::apply
  • Example#4056 - Exemplo de Ds\Sequence::capacity
  • Example#4057 - Exemplo de Ds\Sequence::contains
  • Example#4058 - Exemplo de Ds\Sequence::filter usando uma função callback
  • Example#4059 - Exemplo de Ds\Sequence::filter sem uma função callback
  • Example#4060 - Exemplo de Ds\Sequence::find
  • Example#4061 - Exemplo de Ds\Sequence::first
  • Example#4062 - Exemplo de Ds\Sequence::get
  • Example#4063 - Exemplo deDs\Sequence::get usando a sintaxe de array
  • Example#4064 - Exemplo de Ds\Sequence::insert
  • Example#4065 - Exemplo de Ds\Sequence::join usando uma string de separação
  • Example#4066 - Exemplo de Ds\Sequence::join sem uma string de separação
  • Example#4067 - Exemplo de Ds\Sequence::last
  • Example#4068 - Exemplo de Ds\Sequence::map
  • Example#4069 - Exemplo de Ds\Sequence::merge
  • Example#4070 - Exemplo de Ds\Sequence::pop
  • Example#4071 - Exemplo de Ds\Sequence::push
  • Example#4072 - Exemplo de Ds\Sequence::reduce com valor inicial
  • Example#4073 - Exemplo de Ds\Sequence::reduce sem valor inicial
  • Example#4074 - Exemplo de Ds\Sequence::remove
  • Example#4075 - Exemplo de Ds\Sequence::reverse
  • Example#4076 - Exemplo de Ds\Sequence::reversed
  • Example#4077 - Exemplo de Ds\Sequence::rotate
  • Example#4078 - Exemplo de Ds\Sequence::set
  • Example#4079 - Ds\Sequence::set example using array syntax
  • Example#4080 - Exemplo de Ds\Sequence::shift
  • Example#4081 - Exemplo de Ds\Sequence::slice
  • Example#4082 - Exemplo de Ds\Sequence::sort
  • Example#4083 - Exemplo de Ds\Sequence::sort usando um comparador
  • Example#4084 - Exemplo de Ds\Sequence::sorted
  • Example#4085 - Exemplo de Ds\Sequence::sorted usando um comparador
  • Example#4086 - Exemplo de Ds\Sequence::sum com inteiros
  • Example#4087 - Exemplo de Ds\Sequence::sum com flutuantes
  • Example#4088 - Exemplo de Ds\Sequence::unshift
  • Example#4089 - Exemplo de Ds\Vector::allocate
  • Example#4090 - Exemplo de Ds\Vector::apply
  • Example#4091 - Exemplo de Ds\Vector::capacity
  • Example#4092 - Exemplo de Ds\Vector::clear
  • Example#4093 - Exemplo de Ds\Vector::__construct
  • Example#4094 - Exemplo de Ds\Vector::contains
  • Example#4095 - Exemplo de Ds\Vector::copy
  • Example#4096 - Exemplo de Ds\Vector::filter usando uma função de callback
  • Example#4097 - Exemplo de Ds\Vector::filter sem usar uma função de callback
  • Example#4098 - Exemplo de Ds\Vector::find
  • Example#4099 - Exemplo de Ds\Vector::first
  • Example#4100 - Exemplo de Ds\Vector::get
  • Example#4101 - Exemplo de Ds\Vector::get usando a sintaxe de array
  • Example#4102 - Exemplo de Ds\Vector::insert
  • Example#4103 - Exemplo de Ds\Vector::isEmpty
  • Example#4104 - Exemplo de Ds\Vector::join usando uma string de separação
  • Example#4105 - Exemplo de Ds\Vector::join sem uma string de separação
  • Example#4106 - Exemplo de Ds\Vector::last
  • Example#4107 - Exemplo de Ds\Vector::map
  • Example#4108 - Exemplo de Ds\Vector::merge
  • Example#4109 - Exemplo de Ds\Vector::pop
  • Example#4110 - Exemplo de Ds\Vector::push
  • Example#4111 - Exemplo deDs\Vector::reduce com um valor inicial
  • Example#4112 - Exemplo de Ds\Vector::reduce sem um valor inicial
  • Example#4113 - Exemplo de Ds\Vector::remove
  • Example#4114 - Exemplod de Ds\Vector::reverse
  • Example#4115 - Exemplo de Ds\Vector::reversed
  • Example#4116 - Exemplo de Ds\Vector::rotate
  • Example#4117 - Exemplo de Ds\Vector::set
  • Example#4118 - Exemplo de Ds\Vector::set usando a sintaxe de array
  • Example#4119 - Exemplo de Ds\Vector::shift
  • Example#4120 - Exemplo de Ds\Vector::slice
  • Example#4121 - Exemplo de Ds\Vector::sort
  • Example#4122 - Exemplo de Ds\Vector::sort usando um comparador
  • Example#4123 - Exemplo de Ds\Vector::sorted
  • Example#4124 - Exemplo de Ds\Vector::sorted usando um comparador
  • Example#4125 - Exemplo de Ds\Vector::sum com inteiros
  • Example#4126 - Exemplo de Ds\Vector::sum com flutuantes
  • Example#4127 - Exemplo de Ds\Vector::toArray
  • Example#4128 - Exemplo de Ds\Vector::unshift
  • Example#4129 - Ds\Deque::allocate exemplo
  • Example#4130 - Ds\Deque::apply exemplo
  • Example#4131 - Ds\Deque::capacity exemplo
  • Example#4132 - Ds\Deque::clear exemplo
  • Example#4133 - Ds\Deque::__construct exemplo
  • Example#4134 - Ds\Deque::contains exemplo
  • Example#4135 - Ds\Deque::copy exemplo
  • Example#4136 - Exemplo de Ds\Deque::filter usando função callback
  • Example#4137 - Exemplo de Ds\Deque::filter sem função callback
  • Example#4138 - Ds\Deque::find exemplo
  • Example#4139 - Ds\Deque::first exemplo
  • Example#4140 - Ds\Deque::get exemplo
  • Example#4141 - Exemplo de Ds\Deque::get usando a sintaxe de array
  • Example#4142 - Ds\Deque::insert exemplo
  • Example#4143 - Ds\Deque::isEmpty exemplo
  • Example#4144 - Exemplo de Ds\Deque::join usando uma string separadora
  • Example#4145 - Exemplo de Ds\Deque::join sem uma string separadora
  • Example#4146 - Ds\Deque::last exemplo
  • Example#4147 - Ds\Deque::map exemplo
  • Example#4148 - Ds\Deque::merge exemplo
  • Example#4149 - Ds\Deque::pop exemplo
  • Example#4150 - Ds\Deque::push exemplo
  • Example#4151 - Exemplo de Ds\Deque::reduce com valor inicial
  • Example#4152 - Exemplo de Ds\Deque::reduce sem um valor inicial
  • Example#4153 - Ds\Deque::remove exemplo
  • Example#4154 - Ds\Deque::reverse exemplo
  • Example#4155 - Ds\Deque::reversed exemplo
  • Example#4156 - Ds\Deque::rotate exemplo
  • Example#4157 - Ds\Deque::set exemplo
  • Example#4158 - Exemplo de Ds\Deque::set usando a sintaxe de array
  • Example#4159 - Ds\Deque::shift exemplo
  • Example#4160 - Ds\Deque::slice exemplo
  • Example#4161 - Ds\Deque::sort exemplo
  • Example#4162 - Ds\Deque::sort exemplo usando um comparador
  • Example#4163 - Ds\Deque::sorted exemplo
  • Example#4164 - Ds\Deque::sorted exemplo usando um comparador
  • Example#4165 - Ds\Deque::sum exemplo inteiro
  • Example#4166 - Ds\Deque::sum exemplo float
  • Example#4167 - Ds\Deque::toArray exemplo
  • Example#4168 - Ds\Deque::unshift exemplo
  • Example#4169 - Ds\Map::allocate exemplo
  • Example#4170 - Ds\Map::apply exemplo
  • Example#4171 - Ds\Map::capacity exemplo
  • Example#4172 - Ds\Map::clear exemplo
  • Example#4173 - Ds\Map::__construct exemplo
  • Example#4174 - Ds\Map::copy exemplo
  • Example#4175 - Ds\Map::diff exemplo
  • Example#4176 - Exemplo de Ds\Map::filter usando uma função callback
  • Example#4177 - Exemplo de Ds\Map::filter sem uma função callback
  • Example#4178 - Ds\Map::first exemplo
  • Example#4179 - Ds\Map::get exemplo
  • Example#4180 - Exemplo de Ds\Map::get usando a sintaxe de array
  • Example#4181 - Ds\Map::hasKey exemplo
  • Example#4182 - Ds\Map::hasValue exemplo
  • Example#4183 - Ds\Map::intersect exemplo
  • Example#4184 - Ds\Map::isEmpty exemplo
  • Example#4185 - Ds\Map::keys exemplo
  • Example#4186 - Ds\Map::ksort exemplo
  • Example#4187 - Exemplo de Ds\Map::ksort usando um comparador
  • Example#4188 - Ds\Map::ksorted exemplo
  • Example#4189 - Exemplo de Ds\Map::ksorted usando um comparador
  • Example#4190 - Ds\Map::last exemplo
  • Example#4191 - Ds\Map::map exemplo
  • Example#4192 - Ds\Map::merge exemplo
  • Example#4193 - Ds\Map::pairs exemplo
  • Example#4194 - Ds\Map::put exemplo
  • Example#4195 - Exemplo de Ds\Map::put usando objetos como chave
  • Example#4196 - Ds\Map::putAll exemplo
  • Example#4197 - Exemplo de Ds\Map::reduce com valor inicial
  • Example#4198 - Exemplo de Ds\Map::reduce sem um valor inicial
  • Example#4199 - Ds\Map::remove exemplo
  • Example#4200 - Ds\Map::reverse exemplo
  • Example#4201 - Ds\Map::reversed exemplo
  • Example#4202 - Ds\Map::skip exemplo
  • Example#4203 - Ds\Map::slice exemplo
  • Example#4204 - Ds\Map::sort exemplo
  • Example#4205 - Exemplo de Ds\Map::sort usando um comparador
  • Example#4206 - Ds\Map::sort exemplo
  • Example#4207 - Ds\Map::sort example using a comparator
  • Example#4208 - Exemplo de Ds\Map::sum com inteiros
  • Example#4209 - Exemplo de Ds\Map::sum com float
  • Example#4210 - Ds\Map::toArray exemplo
  • Example#4211 - Ds\Map::union exemplo
  • Example#4212 - Ds\Map::values exemplo
  • Example#4213 - Ds\Map::xor exemplo
  • Example#4214 - Ds\Pair::clear exemplo
  • Example#4215 - Ds\Pair::copy exemplo
  • Example#4216 - Ds\Pair::isEmpty exemplo
  • Example#4217 - Ds\Pair::toArray exemplo
  • Example#4218 - Exemplo de Ds\Set::add usando inteiros
  • Example#4219 - Exemplo de Ds\Set::add usando objetos
  • Example#4220 - Exemplo de Ds\Set::allocate
  • Example#4221 - Exemplo de Ds\Set::capacity
  • Example#4222 - Exemplo de Ds\Set::clear
  • Example#4223 - Exemplo de Ds\Set::__construct
  • Example#4224 - Exemplo de Ds\Set::contains
  • Example#4225 - Exemplo de Ds\Set::copy
  • Example#4226 - Exemplo de Ds\Set::diff
  • Example#4227 - Exemplo de Ds\Set::filter usando função de callback
  • Example#4228 - Exemplo de Ds\Set::filter sem usar função de callback
  • Example#4229 - Exemplo de Ds\Set::first
  • Example#4230 - Exemplo de Ds\Set::get
  • Example#4231 - Exemplo de Ds\Set::get usando sintaxe de array
  • Example#4232 - Exemplo de Ds\Set::intersect
  • Example#4233 - Exemplo de Ds\Set::isEmpty
  • Example#4234 - Exemplo de Ds\Set::join usando uma string separadora
  • Example#4235 - Exemplo de Ds\Set::join sem usar uma string separadora
  • Example#4236 - Exemplo de Ds\Set::last
  • Example#4237 - Exemplo de Ds\Set::merge
  • Example#4238 - Exemplo de Ds\Set::reduce com valor inicial
  • Example#4239 - Exemplo de Ds\Set::reduce sem valor inicial
  • Example#4240 - Exemplo de Ds\Set::remove
  • Example#4241 - Exemplo de Ds\Set::reverse
  • Example#4242 - Exemplo de Ds\Set::reversed
  • Example#4243 - Exemplo de Ds\Set::slice
  • Example#4244 - Exemplo de Ds\Set::sort
  • Example#4245 - Exemplo de Ds\Set::sort usando um comparador
  • Example#4246 - Exemplo de Ds\Set::sorted
  • Example#4247 - Exemplo de Ds\Set::sorted usando um comparador
  • Example#4248 - Exemplo de Ds\Set::sum com inteiros
  • Example#4249 - Exemplo de Ds\Set::sum com flutuantes
  • Example#4250 - Exemplo de Ds\Set::toArray
  • Example#4251 - Exemplo de Ds\Set::union
  • Example#4252 - Exemplo de Ds\Set::xor
  • Example#4253 - Exemplo de Ds\Stack::clear
  • Example#4254 - Exemplo de Ds\Stack::__construct
  • Example#4255 - Exemplo de Ds\Stack::copy
  • Example#4256 - Exemplo de Ds\Stack::isEmpty
  • Example#4257 - Exemplo Ds\Stack::peek
  • Example#4258 - Exemplo de Ds\Stack::pop
  • Example#4259 - Exemplo de Ds\Stack::push
  • Example#4260 - Exemplo de Ds\Stack::toArray
  • Example#4261 - Exemplo de Ds\Queue::allocate
  • Example#4262 - Exemplo de Ds\Queue::capacity
  • Example#4263 - Exemplo de Ds\Queue::clear
  • Example#4264 - Exemplo de Ds\Queue::__construct
  • Example#4265 - Exemplo de Ds\Queue::copy
  • Example#4266 - Exemplo de Ds\Queue::isEmpty
  • Example#4267 - Exemplo de Ds\Queue::peek
  • Example#4268 - Exemplo de Ds\Queue::pop
  • Example#4269 - Exemplo de Ds\Queue::push
  • Example#4270 - Exemplo de Ds\Queue::toArray
  • Example#4271 - Exemplo de Ds\PriorityQueue::allocate
  • Example#4272 - Exemplo de Ds\PriorityQueue::capacity
  • Example#4273 - Exemplo de Ds\PriorityQueue::clear
  • Example#4274 - Exemplo de Ds\PriorityQueue::__construct
  • Example#4275 - Exemplo de Ds\PriorityQueue::copy
  • Example#4276 - Exemplo de Ds\PriorityQueue::isEmpty
  • Example#4277 - Exemplo de Ds\PriorityQueue::peek
  • Example#4278 - Exemplo de Ds\PriorityQueue::pop
  • Example#4279 - Exemplo de Ds\PriorityQueue::push
  • Example#4280 - Exemplo de Ds\PriorityQueue::toArray
  • Example#4281 - var_representation Examples
  • Example#4282 - Escaping control characters
  • Example#4283 - Exporting stdClass
  • Example#4284 - Exporting classes
  • Example#4285 - Using __set_state()
  • Example#4286 - Usando o módulo cURL do PHP para receber a página exemplo.com.br
  • Example#4287 - Iniciando uma nova sessão cURL e acessando uma página web
  • Example#4288 - Copiando um controlador cURL
  • Example#4289 - Exemplo de curl_errno
  • Example#4290 - Exemplo de curl_error
  • Example#4291 - Exemplo de curl_escape
  • Example#4292 - Obtendo uma página da web
  • Example#4293 - Exemplo de curl_getinfo
  • Example#4294 - Exemplo de curl_getinfo com parâmetro option
  • Example#4295 - Inicializando uma nova sessão cURL e buscando uma página da web
  • Example#4296 - curl_multi_add_handle example
  • Example#4297 - curl_multi_close example
  • Example#4298 - curl_multi_exec example
  • Example#4299 - Um exemplo de curl_multi_info_read
  • Example#4300 - Exemplo de curl_multi_init
  • Example#4301 - Exemplo de curl_multi_strerror
  • Example#4302 - Exemplo de curl_reset
  • Example#4303 - Inicializando uma nova sessão cURL e recebendo uma página da web
  • Example#4304 - Inicializando uma nova sessão cURL e buscando uma página da web
  • Example#4305 - Exemplo de curl_share_setopt
  • Example#4306 - Exemplo de curl_share_init
  • Example#4307 - Exemplo de curl_share_setopt
  • Example#4308 - curl_errno example
  • Example#4309 - Exemplo de curl_escape
  • Example#4310 - curl_upkeep example
  • Example#4311 - Exemplo de curl_version
  • Example#4312 - Exemplo de CURLFile::__construct
  • Example#4313 - Exemplo de CURLFile::__construct enviando múltiplos arquivos
  • Example#4314 - Exemplo de CURLStringFile::__construct
  • Example#4315 - Simple HTTP client
  • Example#4316 - HTTP client using asynchronous DNS resolver
  • Example#4317 - Echo server
  • Example#4318 - SSL echo server
  • Example#4319 - Signal handler
  • Example#4320 - Use libevent's loop to process requests of `eio' extension
  • Example#4321 - Miscellaneous
  • Example#4322 - Simple HTTP server
  • Example#4323 - Simple HTTPS server
  • Example#4324 - OpenSSL connection
  • Example#4325 - EventHttpConnection::makeRequest example
  • Example#4326 - Connection listener based on a UNIX domain socket
  • Example#4327 - Simple SMTP server
  • Example#4328 - Handling SIGTERM signal
  • Example#4329 - Adding a custom signal
  • Example#4330 - Adding a timer
  • Example#4331 - EventBase::getFeatures example
  • Example#4332 - EventBase::getMethod example
  • Example#4333 - EventBuffer::search example
  • Example#4334 - EventBufferEvent::connect example
  • Example#4335 - Connect to UNIX domain socket which presumably is served by a server, read response from the server and output it to the console
  • Example#4336 - EventBufferEvent::connectHost example
  • Example#4337 - Buffer event's read callback
  • Example#4338 - EventBufferEvent::getOutput example
  • Example#4339 - EventBufferEvent::sslError example
  • Example#4340 - Simple SMTP server
  • Example#4341 - EventConfig::avoidMethod example
  • Example#4342 - EventConfig::__construct example
  • Example#4343 - EventConfig::requireFeatures example
  • Example#4344 - EventHttp::accept example
  • Example#4345 - EventHttp::addServerAlias example
  • Example#4346 - EventHttp::bind example
  • Example#4347 - Simple HTTP server
  • Example#4348 - EventHttp::setCallback example
  • Example#4349 - EventHttp::setDefaultCallback example
  • Example#4350 - EventHttpConnection::makeRequest example
  • Example#4351 - EventHttpConnection::setCloseCallback example
  • Example#4352 - EventHttpRequest::__construct example
  • Example#4353 - EventHttpRequest::sendError example
  • Example#4354 - EventListener::__construct example
  • Example#4355 - EventSslContext::__construct example
  • Example#4356 - Exemplo da extensão FTP
  • Example#4357 - ftp_alloc example
  • Example#4358 - Exemplo ftp_cdup
  • Example#4359 - Exemplo de ftp_chdir
  • Example#4360 - Exemplo de ftp_chmod
  • Example#4361 - Exemplo de ftp_close
  • Example#4362 - ftp_connect example
  • Example#4363 - Exemplo de ftp_delete
  • Example#4364 - Exemplo de ftp_exec
  • Example#4365 - ftp_fget example
  • Example#4366 - ftp_fput example
  • Example#4367 - Exemplo de ftp_get_option
  • Example#4368 - ftp_get example
  • Example#4369 - Exemplo de ftp_login
  • Example#4370 - Exemplo de ftp_mdtm
  • Example#4371 - Exemplo de ftp_mkdir
  • Example#4372 - ftp_mlsd example
  • Example#4373 - Exemplo de ftp_nb_continue
  • Example#4374 - ftp_nb_fget example
  • Example#4375 - ftp_nb_fput example
  • Example#4376 - ftp_nb_get example
  • Example#4377 - Resuming a download with ftp_nb_get
  • Example#4378 - Resuming a download at position 100 to a new file with ftp_nb_get
  • Example#4379 - ftp_nb_put example
  • Example#4380 - Resuming an upload with ftp_nb_put
  • Example#4381 - Exemplo de ftp_nlist
  • Example#4382 - Exemplo de ftp_pasv
  • Example#4383 - ftp_put example
  • Example#4384 - Exemplo de ftp_pwd
  • Example#4385 - Usando ftp_raw para fazer o login em um servidor FTP manualmente.
  • Example#4386 - ftp_rawlist example
  • Example#4387 - Exemplo de ftp_rename
  • Example#4388 - Exemplo ftp_rmdir
  • Example#4389 - Exemplo de ftp_set_option
  • Example#4390 - Sending a SITE command to an ftp server
  • Example#4391 - Exemplo de ftp_size
  • Example#4392 - ftp_ssl_connect example
  • Example#4393 - Exemplo de ftp_systype
  • Example#4394 - Basic Gearman client and worker
  • Example#4395 - Basic Gearman client and worker, background
  • Example#4396 - Basic Gearman client and worker, submitting tasks
  • Example#4397 - Adding two job servers
  • Example#4398 - Add two job servers
  • Example#4399 - Basic submission of two tasks
  • Example#4400 - Basic submission of two tasks with passing application context
  • Example#4401 - Two tasks, one background and one not
  • Example#4402 - A high priority task along with two normal tasks
  • Example#4403 - A low priority task along with two normal tasks
  • Example#4404 - Monitor completion of multiple background tasks
  • Example#4405 - Simple job submission with immediate return
  • Example#4406 - Submitting a job and retrieving incremental status
  • Example#4407 - Submit and monitor a background job
  • Example#4408 - Simple job submission with immediate return
  • Example#4409 - Submitting a job and retrieving incremental status
  • Example#4410 - Get the status of a long running job
  • Example#4411 - Monitor the status of a long running background job
  • Example#4412 - Simple worker making use of extra application context data
  • Example#4413 - Add alternate Gearman servers
  • Example#4414 - Add two job servers
  • Example#4415 - GearmanWorker::setId example
  • Example#4416 - A simple worker with a 5 second timeout
  • Example#4417 - Running worker in non-blocking mode
  • Example#4418 - GearmanWorker::work example
  • Example#4419 - Testando suporte ao controle de resultados paginados
  • Example#4420 - Exemplo de pesquisa LDAP
  • Example#4421 - Ligação com informação de políticas
  • Example#4422 - Modifica a desencriptação somente se não estiver vazia
  • Example#4423 - Lendo alguns valores antes da remoção
  • Example#4424 - Remove uma referência
  • Example#4425 - Usa paginação para uma pesquisa
  • Example#4426 - Complete example with authenticated bind
  • Example#4427 - Using LDAP Bind
  • Example#4428 - Using LDAP Bind Anonymously
  • Example#4429 - Complete example of password check
  • Example#4430 - Example of connecting to LDAP server.
  • Example#4431 - Example of connecting securely to LDAP server.
  • Example#4432 - LDAP pagination
  • Example#4433 - LDAP pagination
  • Example#4434 - ldap_count_entries example
  • Example#4435 - Enumerating all LDAP error messages
  • Example#4436 - Generating and catching an error
  • Example#4437 - Searching for an email address
  • Example#4438 - PASSWD extended operation
  • Example#4439 - Whoami extended operation
  • Example#4440 - Show the list of attributes held for a particular directory entry
  • Example#4441 - Check protocol version
  • Example#4442 - List all values of the "mail" attribute for a directory entry
  • Example#4443 - Produce a list of all organizational units of an organization
  • Example#4444 - Add a telephone number to a contact
  • Example#4445 - Rename a user
  • Example#4446 - Add two e-mail addresses to a user
  • Example#4447 - Change a user's password
  • Example#4448 - Change a user's password (Active Directory)
  • Example#4449 - ldap_parse_result example
  • Example#4450 - LDAP search
  • Example#4451 - Set protocol version
  • Example#4452 - Set server controls
  • Example#4453 - LDAP sort
  • Example#4454 - Exemplo de visão geral da extensão Memcache
  • Example#4455 - Usando o manipulador de sessão Memcache
  • Example#4456 - Memcache::add example
  • Example#4457 - Memcache::addServer example
  • Example#4458 - Memcache::close example
  • Example#4459 - Memcache::connect example
  • Example#4460 - Memcache::decrement example
  • Example#4461 - Memcache::delete example
  • Example#4462 - Memcache::flush example
  • Example#4463 - Memcache::get example
  • Example#4464 - Memcache::getExtendedStats example
  • Example#4465 - Memcache::getServerStatus example
  • Example#4466 - Memcache::getVersion example
  • Example#4467 - Memcache::increment example
  • Example#4468 - Memcache::pconnect example
  • Example#4469 - Memcache::replace example
  • Example#4470 - Memcache::set example
  • Example#4471 - Memcache::set example
  • Example#4472 - Memcache::setCompressThreshold example
  • Example#4473 - Memcache::setServerParams example
  • Example#4474 - Exemplo de callback de resultado
  • Example#4475 - Exemplo de callback de leitura
  • Example#4476 - Memcached::addServer exemplo
  • Example#4477 - Memcached::addServers exemplo
  • Example#4478 - Memcached::append exemplo
  • Example#4479 - Memcached::cas exemplo
  • Example#4480 - Creating a Memcached object
  • Example#4481 - Memcached::decrement exemplo
  • Example#4482 - Memcached::delete exemplo
  • Example#4483 - Memcached::fetch exemplo
  • Example#4484 - Memcached::getDelayed exemplo
  • Example#4485 - Memcached::flush exemplo
  • Example#4486 - Memcached::get exemplo #1
  • Example#4487 - Memcached::get exemplo #2
  • Example#4488 - Memcached::getDelayed exemplo
  • Example#4489 - Memcached::getMulti exemplo para Memcached v3
  • Example#4490 - Memcached::getMulti exemplo para Memcached v1 e v2
  • Example#4491 - Memcached::GET_PRESERVE_ORDER exemplo para Memcached v3
  • Example#4492 - Memcached::GET_PRESERVE_ORDER exemplo para Memcached v1 e v2
  • Example#4493 - Recuperando opções do Memcached
  • Example#4494 - Memcached::getResultCode exemplo
  • Example#4495 - Memcached::getResultMessage exemplo
  • Example#4496 - Memcached::getServerByKey exemplo
  • Example#4497 - Memcached::getServerList exemplo
  • Example#4498 - Memcached::getStats exemplo
  • Example#4499 - Memcached::getVersion exemplo
  • Example#4500 - Memcached::increment exemplo
  • Example#4501 - Memcached::prepend exemplo
  • Example#4502 - Memcached::set exemplo
  • Example#4503 - Memcached::setByKey exemplo
  • Example#4504 - Memcached::setMulti exemplo
  • Example#4505 - Definindo uma opção do Memcached
  • Example#4506 - Configurando as opções do Memcached
  • Example#4507 - mqseries_back example
  • Example#4508 - mqseries_begin example
  • Example#4509 - mqseries_close example
  • Example#4510 - mqseries_cmit example
  • Example#4511 - mqseries_conn example
  • Example#4512 - mqseries_connx example
  • Example#4513 - mqseries_connx example using SSL connection & OCSP Responder URL
  • Example#4514 - mqseries_disc example
  • Example#4515 - mqseries_get example
  • Example#4516 - mqseries_inq example
  • Example#4517 - mqseries_open example
  • Example#4518 - mqseries_put example
  • Example#4519 - mqseries_strerror example
  • Example#4520 - Using dns_get_record
  • Example#4521 - Using dns_get_record and DNS_ANY
  • Example#4522 - Exemplo de fsockopen
  • Example#4523 - Utilizando conexão UDP
  • Example#4524 - Um simples exemplo de gethostbyaddr
  • Example#4525 - Um exemplo simples gethostbyname
  • Example#4526 - gethostbynamel exemplo
  • Example#4527 - A simple gethostname example
  • Example#4528 - getprotobyname example
  • Example#4529 - getservbyname example
  • Example#4530 - header_register_callback example
  • Example#4531 - Removendo um cabeçalho específico.
  • Example#4532 - Removendo todos os cabeçalhos definidos anteriormente.
  • Example#4533 - Download dialog
  • Example#4534 - Caching directives
  • Example#4535 - Setting a cookie
  • Example#4536 - Exemplo usando headers_list
  • Example#4537 - Examples using headers_sent
  • Example#4538 - Using http_response_code in a web server environment
  • Example#4539 - Using http_response_code in a CLI environment
  • Example#4540 - inet_ntop Example
  • Example#4541 - inet_pton Example
  • Example#4542 - ip2long Example
  • Example#4543 - Displaying an IP address
  • Example#4544 - Exemplo de setcookie para enviar cookies
  • Example#4545 - Exemplo de setcookie para apagar cookies
  • Example#4546 - setcookie e arrays
  • Example#4547 - Using syslog
  • Example#4548 - Procedural usage of rrd
  • Example#4549 - OO usage of rrd
  • Example#4550 - RRDGraph::setOptions example
  • Example#4551 - Set multiple color options
  • Example#4552 - RRDUpdater::update examples
  • Example#4553 - Fetch instrumented calls
  • Example#4554 - Fetch the list of functions scoutapm will instrument
  • Example#4555 - snmp_get_quick_print example
  • Example#4556 - Using snmp_get_valueretrieval
  • Example#4557 - Using snmp_read_mib
  • Example#4558 - Using snmp_set_enum_print
  • Example#4559 - Using snmprealwalk
  • Example#4560 - Using snmp_set_quick_print
  • Example#4561 - Using snmp_set_valueretrieval
  • Example#4562 - Using snmp2_get
  • Example#4563 - Using snmp2_get_next
  • Example#4564 - Using snmp2_real_walk
  • Example#4565 - Using snmp2_set
  • Example#4566 - Using snmp2_set for setting BITS SNMP object id
  • Example#4567 - snmp2_walk Example
  • Example#4568 - Using snmp3_get
  • Example#4569 - Using snmp3_getnext
  • Example#4570 - Using snmp3_real_walk
  • Example#4571 - Using snmp3_set
  • Example#4572 - Using snmp3_set for setting BITS SNMP object id
  • Example#4573 - snmp3_walk Example
  • Example#4574 - Using snmpget
  • Example#4575 - Using snmpgetnext
  • Example#4576 - Using snmprealwalk
  • Example#4577 - Using snmpset
  • Example#4578 - Using snmpset for setting BITS SNMP object id
  • Example#4579 - snmpwalk Example
  • Example#4580 - snmpwalkoid Example
  • Example#4581 - SNMP::close example
  • Example#4582 - Fetching sysLocation
  • Example#4583 - Single SNMP object
  • Example#4584 - Multiple SNMP objects
  • Example#4585 - SNMP::getErrno example
  • Example#4586 - SNMP::getError example
  • Example#4587 - Single SNMP object
  • Example#4588 - Miltiple SNMP objects
  • Example#4589 - Set single SNMP object id
  • Example#4590 - Set multiple values using single SNMP::set call
  • Example#4591 - Using SNMP::set for setting BITS SNMP object id
  • Example#4592 - SNMP::setSecurity example
  • Example#4593 - SNMP::walk example
  • Example#4594 - suffixAsKey example
  • Example#4595 - Exemplo de socket: Simples servidor TCP/IP
  • Example#4596 - Exemplo de Socket: Simples cliente TCP/IP
  • Example#4597 - Usando socket_atmark para definir o endereço da fonte
  • Example#4598 - Using socket_bind to set the source address
  • Example#4599 - socket_create_pair example
  • Example#4600 - socket_create_pair IPC example
  • Example#4601 - socket_get_option example
  • Example#4602 - socket_import_stream example
  • Example#4603 - socket_last_error example
  • Example#4604 - Exemplo de socket_recv
  • Example#4605 - socket_recvfrom example
  • Example#4606 - Using null with socket_select
  • Example#4607 - Understanding socket_select's result
  • Example#4608 - socket_select example
  • Example#4609 - socket_sendto Example
  • Example#4610 - socket_set_block example
  • Example#4611 - socket_set_nonblock example
  • Example#4612 - socket_set_option example
  • Example#4613 - socket_strerror example
  • Example#4614 - Authenticating with a ssh agent
  • Example#4615 - Authentication using a public hostkey
  • Example#4616 - Retrieving a list of authentication methods
  • Example#4617 - Authenticating with a password
  • Example#4618 - Authentication using a public key
  • Example#4619 - ssh2_connect example
  • Example#4620 - Executing a command
  • Example#4621 - Opening a shell and retrieving the stderr stream associated with it
  • Example#4622 - Checking the fingerprint against a known value
  • Example#4623 - Determining what methods were negotiated
  • Example#4624 - Adding a publickey with ssh2_publickey_add
  • Example#4625 - Listing authorized keys with ssh2_publickey_list
  • Example#4626 - Downloading a file via SCP
  • Example#4627 - Uploading a file via SCP
  • Example#4628 - Changing the mode of a file on a remote server
  • Example#4629 - Stating a symbolic link via SFTP
  • Example#4630 - Creating a directory on a remote server
  • Example#4631 - Reading a symbolic link
  • Example#4632 - Resolving a pathname
  • Example#4633 - Renaming a file via sftp
  • Example#4634 - Removing a directory on a remote server
  • Example#4635 - Stating a file via SFTP
  • Example#4636 - Creating a symbolic link
  • Example#4637 - Deleting a file
  • Example#4638 - Opening a file via SFTP
  • Example#4639 - Requesting an interactive shell
  • Example#4640 - Opening a tunnel to an arbitrary host
  • Example#4641 - Estilo orientado a objetos
  • Example#4642 - Estilo procedural
  • Example#4643 - stomp_connect_error example
  • Example#4644 - stomp_version example
  • Example#4645 - Estilo orientado a objetos
  • Example#4646 - Estilo procedural
  • Example#4647 - Estilo orientado a objetos
  • Example#4648 - Estilo procedural
  • Example#4649 - Estilo orientado a objetos
  • Example#4650 - Estilo procedural
  • Example#4651 - Estilo orientado a objetos
  • Example#4652 - Estilo procedural
  • Example#4653 - Estilo orientado a objetos
  • Example#4654 - Estilo procedural
  • Example#4655 - Estilo orientado a objetos
  • Example#4656 - Estilo procedural
  • Example#4657 - Estilo orientado a objetos
  • Example#4658 - Estilo procedural
  • Example#4659 - Estilo orientado a objetos
  • Example#4660 - Estilo procedural
  • Example#4661 - Estilo orientado a objetos
  • Example#4662 - Estilo procedural
  • Example#4663 - Train from array
  • Example#4664 - Train from a file
  • Example#4665 - svn_add example
  • Example#4666 - Default authentication example
  • Example#4667 - svn_blame example
  • Example#4668 - Basic example
  • Example#4669 - Basic example
  • Example#4670 - Basic example
  • Example#4671 - Basic example
  • Example#4672 - Basic example
  • Example#4673 - Basic example
  • Example#4674 - Diffing two revisions of a repository path
  • Example#4675 - Portably diffing two local files
  • Example#4676 - svn_export example
  • Example#4677 - Basic example
  • Example#4678 - svn_log example
  • Example#4679 - svn_ls example
  • Example#4680 - Basic example
  • Example#4681 - Basic example
  • Example#4682 - Deny all connections from localhost
  • Example#4683 - Ban an URL
  • Example#4684 - Get statistic snapshot
  • Example#4685 - Read varnish shared memory log
  • Example#4686 - VarnishAdmin::__construct example
  • Example#4687 - Parallel searching using Yaz
  • Example#4688 - CCL configuration
  • Example#4689 - CCL Parsing
  • Example#4690 - Record Update
  • Example#4691 - Array for GRS-1 record
  • Example#4692 - Working with MARCXML
  • Example#4693 - PHP function that scans titles
  • Example#4694 - Query Examples
  • Example#4695 - Sort Criterias
  • Example#4696 - Um exemplo de ZMQContext
  • Example#4697 - Um exemplo de ZMQContext
  • Example#4698 - Um exemplo de ZMQContext
  • Example#4699 - Exemplo de ZMQSocket
  • Example#4700 - Um exemplo de envio/recepção
  • Example#4701 - Um exemplo de ZMQPoll
  • Example#4702 - zookeeper_dispatch example #1
  • Example#4703 - zookeeper_dispatch example #2
  • Example#4704 - Zookeeper::addAuth example
  • Example#4705 - Zookeeper::create example
  • Example#4706 - Zookeeper::delete example
  • Example#4707 - Zookeeper::exists example
  • Example#4708 - Zookeeper::get example
  • Example#4709 - Zookeeper::get stat example
  • Example#4710 - Zookeeper::getAcl example
  • Example#4711 - Zookeeper::getChildren example
  • Example#4712 - Zookeeper::set example
  • Example#4713 - Zookeeper::setAcl example
  • Example#4714 - Zookeeper::setDebugLevel example
  • Example#4715 - ZookeeperConfig::add example
  • Example#4716 - ZookeeperConfig::get example
  • Example#4717 - ZookeeperConfig::remove example
  • Example#4718 - ZookeeperConfig::set example
  • Example#4719 - Exemplo de solr_get_version
  • Example#4720 - Contents of the BootStrap file
  • Example#4721 - Adding a document to the index
  • Example#4722 - Merging one document into another document
  • Example#4723 - Searching for documents - SolrObject responses
  • Example#4724 - Searching for documents - SolrDocument responses
  • Example#4725 - Simple TermsComponent example - basic
  • Example#4726 - Simple TermsComponent example - using a prefix
  • Example#4727 - Simple TermsComponent example - specifying a minimum frequency
  • Example#4728 - Simple Facet Example
  • Example#4729 - Simple Facet Example - with optional field override for mincount
  • Example#4730 - Facet Date Example
  • Example#4731 - Connecting to SSL-Enabled Server
  • Example#4732 - Collapsing a SolrQuery
  • Example#4733 - Solr Real Time Get (RTG) example SolrClient::getById
  • Example#4734 - SolrInputDocument::addChildDocument example
  • Example#4735 - SolrInputDocument::addChildDocuments example
  • Example#4736 - SolrDocument::toArray example
  • Example#4737 - SolrObject::__construct example
  • Example#4738 - SolrObject::offsetUnset example
  • Example#4739 - SolrClient::addDocument example
  • Example#4740 - SolrClient::addDocument example 2
  • Example#4741 - SolrClient::addDocuments example
  • Example#4742 - SolrClient::__construct example
  • Example#4743 - SolrQuery::deleteByQuery example
  • Example#4744 - SolrClient::getById example
  • Example#4745 - SolrClient::getByIds example
  • Example#4746 - SolrClient::ping example
  • Example#4747 - SolrClient::query example
  • Example#4748 - SolrClient::request example
  • Example#4749 - SolrClient::setResponseWriter example
  • Example#4750 - SolrParams::setParam example
  • Example#4751 - SolrQuery::addFacetField example
  • Example#4752 - SolrQuery::addFacetField example
  • Example#4753 - SolrQuery::addFilterQuery example
  • Example#4754 - SolrQuery::addGroupSortField example
  • Example#4755 - SolrQuery::collapse example
  • Example#4756 - SolrQuery::setExpand example
  • Example#4757 - SolrDisMaxQuery::addBigramPhraseField example
  • Example#4758 - SolrDisMaxQuery::addBoostQuery example
  • Example#4759 - SolrDisMaxQuery::addPhraseField example
  • Example#4760 - SolrDisMaxQuery::addQueryField example
  • Example#4761 - SolrDisMaxQuery::addTrigramPhraseField example
  • Example#4762 - SolrDisMaxQuery::addUserField example
  • Example#4763 - SolrDisMaxQuery::__construct example
  • Example#4764 - SolrDisMaxQuery::removeBigramPhraseField example
  • Example#4765 - SolrDisMaxQuery::removeBoostQuery example
  • Example#4766 - SolrDisMaxQuery::removePhraseField example
  • Example#4767 - SolrDisMaxQuery::removeQueryField example
  • Example#4768 - SolrDisMaxQuery::removeTrigramPhraseField example
  • Example#4769 - SolrDisMaxQuery::removeUserField example
  • Example#4770 - SolrDisMaxQuery::setBigramPhraseFields example
  • Example#4771 - SolrDisMaxQuery::setBigramPhraseSlop example
  • Example#4772 - SolrDisMaxQuery::setBoostFunction example
  • Example#4773 - SolrDisMaxQuery::setBoostQuery example
  • Example#4774 - SolrDisMaxQuery::setMinimumMatch example
  • Example#4775 - SolrDisMaxQuery::setPhraseFields example
  • Example#4776 - SolrDisMaxQuery::setPhraseSlop example
  • Example#4777 - SolrDisMaxQuery::setQueryAlt example
  • Example#4778 - SolrDisMaxQuery::setQueryPhraseSlop example
  • Example#4779 - SolrDisMaxQuery::setTieBreaker example
  • Example#4780 - SolrDisMaxQuery::setTrigramPhraseFields example
  • Example#4781 - SolrDisMaxQuery::setTrigramPhraseSlop example
  • Example#4782 - SolrDisMaxQuery::setUserFields example
  • Example#4783 - SolrDisMaxQuery::useDisMaxQueryParser example
  • Example#4784 - SolrDisMaxQuery::useEDisMaxQueryParser example
  • Example#4785 - SolrCollapseFunction::__construct example
  • Example#4786 - SolrCollapseFunction::setHint example
  • Example#4787 - SolrCollapseFunction::setMax example
  • Example#4788 - Desligando a interpretação do PHP em um diretório utilizando .htaccess
  • Example#4789 - Exemplo da função apache_get_modules
  • Example#4790 - Exemplo da função apache_get_version
  • Example#4791 - Exemplo de uso da função apache_getenv
  • Example#4792 - Exemplo da função apache_lookup_uri
  • Example#4793 - Passando informações entre PHP e Perl
  • Example#4794 - Logar valores no access.log
  • Example#4795 - Exemplo da função apache_request_headers
  • Example#4796 - Exemplo da função apache_response_headers
  • Example#4797 - Configurando uma variável Apache utilizando apache_setenv
  • Example#4798 - Exemplo da função getallheaders
  • Example#4799 - Registrando uma variável com $_SESSION.
  • Example#4800 - Desregistrando uma variável com $_SESSION.
  • Example#4801 - Contando o número de acessos de um único usuário
  • Example#4802 - Informação de exemplo
  • Example#4803 - Exemplo de session_cache_expire
  • Example#4804 - Exemplo de session_cache_limiter
  • Example#4805 - session_create_id exemplo com session_regenerate_id
  • Example#4806 - Destruindo uma sessão com $_SESSION
  • Example#4807 - Exemplo de session_gc para gerenciadores de tarefas como o cron
  • Example#4808 - session_gc example for user accessible script
  • Example#4809 - Exemplo de session_name
  • Example#4810 - Exemplo de session_regenerate_id
  • Example#4811 - Evitando a perda de sessão causada por session_regenerate_id
  • Example#4812 - Manipulador de sessão personalizado: veja o código completo na sinópse de SessionHandlerInterface.
  • Example#4813 - page1.php
  • Example#4814 - page2.php
  • Example#4815 - Sobrepondo o tempo de duração de cookie
  • Example#4816 - Lendo e fechando a sessão
  • Example#4817 - Usando SessionHandler para adicionar criptografia aos manipuladores internos do PHP de gravação.
  • Example#4818 - Exemplo usando SessionHandlerInterface
  • Example#4819 - Tokenize comma separated integer list
  • Example#4820 - Tokenize assign statement
  • Example#4821 - Simple calculator
  • Example#4822 - Parse words out from a sentence
  • Example#4823 - Exemplos de padrões válidos
  • Example#4824 - Exemplos de padrões inválidos
  • Example#4825 - Usage of comments in PCRE pattern
  • Example#4826 - Example comparing preg_filter with preg_replace
  • Example#4827 - preg_grep example
  • Example#4828 - preg_last_error_msg example
  • Example#4829 - Exemplo de preg_last_error
  • Example#4830 - Getting all phone numbers out of some text.
  • Example#4831 - Find matching HTML tags (greedy)
  • Example#4832 - Using named subpattern
  • Example#4833 - Find the string of text "php"
  • Example#4834 - Find the word "web"
  • Example#4835 - Getting the domain name out of a URL
  • Example#4836 - Using named subpattern
  • Example#4837 - preg_quote example
  • Example#4838 - Italicizing a word within some text
  • Example#4839 - preg_replace_callback_array example
  • Example#4840 - preg_replace_callback e função anônima
  • Example#4841 - Exemplo de preg_replace_callback
  • Example#4842 - preg_replace_callback usando estrutura recursiva para manipular código BB encapsulado
  • Example#4843 - Usando referências passadas seguidas por literais numéricos
  • Example#4844 - Usando array indexados com preg_replace
  • Example#4845 - Substituindo vários valores
  • Example#4846 - Removendo espaços
  • Example#4847 - Usando o parâmetro count
  • Example#4848 - preg_split example : Get the parts of a search string
  • Example#4849 - Splitting a string into component characters
  • Example#4850 - Splitting a string into matches and their offsets
  • Example#4851 - addcslashes example
  • Example#4852 - Exemplo com addslashes
  • Example#4853 - bin2hex example
  • Example#4854 - chr example
  • Example#4855 - Overflow behavior
  • Example#4856 - Building a UTF-8 string from individual bytes
  • Example#4857 - Exemplo da chunk_split
  • Example#4858 - Exemplo da convert_uudecode
  • Example#4859 - Exemplo da convert_uuencode
  • Example#4860 - count_chars example
  • Example#4861 - Mostrando uma soma de verificação crc32
  • Example#4862 - crypt examples
  • Example#4863 - echo examples
  • Example#4864 -
  • Example#4865 - explode examples
  • Example#4866 - explode return examples
  • Example#4867 - limit parameter examples
  • Example#4868 - fprintf: inteiros com zero à esquerda
  • Example#4869 - fprintf: formatando moeda
  • Example#4870 - Translation Table Example
  • Example#4871 - Exemplo de hex2bin
  • Example#4872 - Decoding HTML entities
  • Example#4873 - A htmlentities example
  • Example#4874 - Usage of ENT_IGNORE
  • Example#4875 - A htmlspecialchars_decode example
  • Example#4876 - htmlspecialchars example
  • Example#4877 - implode example
  • Example#4878 - Exemplo de lcfirst
  • Example#4879 - levenshtein example
  • Example#4880 - localeconv example
  • Example#4881 - Exemplo de uso de ltrim
  • Example#4882 - Usage example of md5_file
  • Example#4883 - A md5 example
  • Example#4884 - metaphone basic example
  • Example#4885 - Using the max_phonemes parameter
  • Example#4886 - Using the max_phonemes parameter
  • Example#4887 - Exemplo da money_format
  • Example#4888 - nl_langinfo example
  • Example#4889 - Using nl2br
  • Example#4890 - Generating valid HTML markup using the use_xhtml parameter
  • Example#4891 - Various newline separators
  • Example#4892 - number_format Example
  • Example#4893 - Exemplo de ord
  • Example#4894 - Examinando os bytes individuais de uma string UTF-8
  • Example#4895 - Using parse_str
  • Example#4896 - Name mangling em parse_str
  • Example#4897 - Exemplos print
  • Example#4898 -
  • Example#4899 -
  • Example#4900 - printf: various examples
  • Example#4901 - printf: string specifiers
  • Example#4902 - Exemplo de quoted_printable_decode
  • Example#4903 - Exemplo de quoted_printable_encode
  • Example#4904 - quotemeta example
  • Example#4905 - Exemplo de uso da função rtrim
  • Example#4906 - setlocale Examples
  • Example#4907 - setlocale Examples for Windows
  • Example#4908 - Exemplo de sha1_file
  • Example#4909 - A sha1 example
  • Example#4910 - Exemplo de similar_text com inversão de ordem de argumentos
  • Example#4911 - Exemplos de Soundex
  • Example#4912 - Argument swapping
  • Example#4913 - Specifying padding character
  • Example#4914 - Position specifier with other specifiers
  • Example#4915 - sprintf: zero-padded integers
  • Example#4916 - sprintf: formatting currency
  • Example#4917 - sprintf: scientific notation
  • Example#4918 - Exemplo de sscanf
  • Example#4919 - sscanf - usando parâmetros opcionais
  • Example#4920 - Usando a string vazia ''
  • Example#4921 - Mostrando o case-sensitivity
  • Example#4922 - Basic str_decrement example
  • Example#4923 - str_decrement example with a carry
  • Example#4924 - Usando a string vazia ''
  • Example#4925 - Mostrando o case-sensitivity
  • Example#4926 - Exemplo de str_getcsv
  • Example#4927 - Exemplo de str_getcsvcom uma string vazia
  • Example#4928 - Basic str_increment example
  • Example#4929 - str_increment example with a carry
  • Example#4930 - str_ireplace example
  • Example#4931 - str_pad example
  • Example#4932 - Exemplo de str_repeat
  • Example#4933 - Exemplos básicos de str_replace
  • Example#4934 - Exemplos de armadilhas potenciais de str_replace
  • Example#4935 - Exemplo de str_rot13
  • Example#4936 - Exemplo de str_shuffle
  • Example#4937 - Example uses of str_split
  • Example#4938 - Usando uma string vazia ''
  • Example#4939 - Mostrando o case-sensitivity
  • Example#4940 - Um exemplo de str_word_count
  • Example#4941 - strcasecmp example
  • Example#4942 - strcmp example
  • Example#4943 - Exemplo de strcspn
  • Example#4944 - Exemplo de strip_tags
  • Example#4945 - Exemplo de stripcslashes
  • Example#4946 - stripos examples
  • Example#4947 - Exemplo stripslashes
  • Example#4948 - Usando stripslashes em um array
  • Example#4949 - stristr example
  • Example#4950 - Testing if a string is found or not
  • Example#4951 - Using a non "string" needle
  • Example#4952 - Exemplo de strlen
  • Example#4953 - Exemplo de strnatcasecmp
  • Example#4954 - Exemplo de strncasecmp
  • Example#4955 - strncmp example
  • Example#4956 - Exemplo de strpbrk
  • Example#4957 - Using ===
  • Example#4958 - Using !==
  • Example#4959 - Using an offset
  • Example#4960 - strrchr example
  • Example#4961 - Revertendo uma string strrev
  • Example#4962 - A simple strripos example
  • Example#4963 - Checking if a needle is in the haystack
  • Example#4964 - Searching with offsets
  • Example#4965 - strspn example
  • Example#4966 - strstr example
  • Example#4967 - strtok example
  • Example#4968 - strtok behavior on empty part found
  • Example#4969 - The difference between strtok and explode
  • Example#4970 - Exemplo de strtolower
  • Example#4971 - strtoupper example
  • Example#4972 - strtr example
  • Example#4973 - strtr example with two arguments
  • Example#4974 - strtr behavior comparison
  • Example#4975 - Exemplo de substr_compare
  • Example#4976 - Exemplo de substr_count
  • Example#4977 - Exemplo de substr_replace
  • Example#4978 - Usando substr_replace para substituir múltiplas strings de uma só vez
  • Example#4979 - Usando um offset negativo
  • Example#4980 - Usando um length negativo
  • Example#4981 - Uso básico de substr
  • Example#4982 - Comportamento de conversão no substr
  • Example#4983 - Faixa Inválida de Caracteres
  • Example#4984 - Exemplo de uso de trim
  • Example#4985 - Usando trim em valores de array
  • Example#4986 - ucfirst example
  • Example#4987 - Exemplo da ucwords
  • Example#4988 - Exemplo de ucwords com delimitador
  • Example#4989 - Exemplo de ucwords com delimitadores adicionais
  • Example#4990 - Basic examples
  • Example#4991 - Basic example
  • Example#4992 - vfprintf: inteiros precedidos por zero
  • Example#4993 - vprintf: zero-padded integers
  • Example#4994 - vsprintf: zero-padded integers
  • Example#4995 - Exemplo de wordwrap
  • Example#4996 - Exemplo de wordwrap
  • Example#4997 - Exemplo de wordwrap
  • Example#4998 - Exemplo da função array_change_key_case
  • Example#4999 - Exemplo da função array_chunk
  • Example#5000 - Obtém a coluna first_name dos registros
  • Example#5001 - Obtém a coluna last_name dos registros, indexados pela coluna "id"
  • Example#5002 - Obtém a coluna de nomes de usuários da propriedade pública "username" de um objeto
  • Example#5003 - Obtém a coluna de nomes da propriedade privada "name" de um objeto utilizando o método mágico __get.
  • Example#5004 - Um simples exemplo usando a função array_combine
  • Example#5005 - Exemplo da array_count_values
  • Example#5006 - Exemplo de array_diff_assoc
  • Example#5007 - Exemplo da função array_diff_assoc
  • Example#5008 - Exemplo da função array_diff_key
  • Example#5009 - Exemplo de array_diff_uassoc
  • Example#5010 - Exemplo da função array_diff_ukey
  • Example#5011 - Exemplo da função array_diff
  • Example#5012 - Exemplo de array_diff com tipos não correspondentes
  • Example#5013 - Exemplo da função array_fill_keys
  • Example#5014 - Exemplo da função array_fill
  • Example#5015 - Exemplo da array_fill com um índice de início negativo
  • Example#5016 - Exemplo da função array_filter
  • Example#5017 - array_filter sem callback
  • Example#5018 - array_filter com mode
  • Example#5019 - Exemplo da função array_flip
  • Example#5020 - Exemplo da função array_flip: colisão
  • Example#5021 - Exemplo da array_intersect_assoc
  • Example#5022 - Exemplo da array_intersect_key
  • Example#5023 - Exemplo da função array_intersect_uassoc
  • Example#5024 - Exemplo da função array_intersect_ukey
  • Example#5025 - Exemplo da array_intersect
  • Example#5026 - array_is_list example
  • Example#5027 - Exemplo da função array_key_exists
  • Example#5028 - array_key_exists versus isset
  • Example#5029 - Uso básico de array_key_first
  • Example#5030 - Exemplo de array_keys
  • Example#5031 - Exemplo da função array_map
  • Example#5032 - array_map utilizando uma função lambda
  • Example#5033 - array_map - usando mais de um array
  • Example#5034 - Realizando uma operação zip de arrays
  • Example#5035 - callback null apenas com array
  • Example#5036 - array_map - com chaves string
  • Example#5037 - array_map - arrays associativos
  • Example#5038 - Exemplo de array_merge_recursive
  • Example#5039 - Exemplo de array_merge
  • Example#5040 - Exemplo simples de array_merge
  • Example#5041 - array_merge com tipos não array
  • Example#5042 - Ordenando vários arrays
  • Example#5043 - Ordenando arrays multi dimensionais
  • Example#5044 - Ordenando resultados de bancos de dados
  • Example#5045 - Ordenação case insensitive
  • Example#5046 - Exemplo de array_pad
  • Example#5047 - Exemplo da array_pop
  • Example#5048 - Exemplo da array_product
  • Example#5049 - Exemplo de array_push
  • Example#5050 - Exemplo de array_rand
  • Example#5051 - Exemplo de array_reduce
  • Example#5052 - array_replace_recursive example
  • Example#5053 - array_replace_recursive e recursive behavior
  • Example#5054 - array_replace exemplo
  • Example#5055 - array_reverse example
  • Example#5056 - Exemplo de array_search
  • Example#5057 - Exemplo da array_shift
  • Example#5058 - Exemplos de array_slice
  • Example#5059 - array_slice e arrays baseados em 1
  • Example#5060 - array_slice com chaves mistas
  • Example#5061 - Exemplos da array_splice
  • Example#5062 - Declarações equivalentes a vários exemplos da array_splice
  • Example#5063 - Exemplos da array_sum
  • Example#5064 - Exemplo de array_udiff_assoc
  • Example#5065 - Exemplo de array_udiff_uassoc
  • Example#5066 - Exemplo de array_udiff usando Objetos stdClass
  • Example#5067 - Exemplo de array_udiff usando Objetos DateTime
  • Example#5068 - Exemplo de array_uintersect_assoc
  • Example#5069 - Exemplo de array_uintersect_uassoc
  • Example#5070 - Exemplo da array_uintersect
  • Example#5071 - Exemplo de array_unique
  • Example#5072 - array_unique e tipos
  • Example#5073 - Exemplo de array_unshift
  • Example#5074 - Uso de arrays associativos
  • Example#5075 - Exemplo de array_values
  • Example#5076 - Exemplo da array_walk_recursive
  • Example#5077 - Exemplo da array_walk
  • Example#5078 - Exemplo de array_walk e funções anônimas
  • Example#5079 - Exemplo de array
  • Example#5080 - Indexação automática com array
  • Example#5081 - Array com índices a partir do 1 com array
  • Example#5082 - Acessando um array dentro de chaves
  • Example#5083 - Exemplo de arsort
  • Example#5084 - Exemplo de asort
  • Example#5085 - Exemplo de compact
  • Example#5086 - Exemplo da função count
  • Example#5087 - Exemplo de count em não-Countable|array (contra exemplo - não deve ser feito)
  • Example#5088 - Uso recursivo da função count
  • Example#5089 - Objeto Countable
  • Example#5090 - Exemplo do uso de current e amigos
  • Example#5091 - Exemplos de each
  • Example#5092 - Percorrendo um array com each
  • Example#5093 - Exemplo de end
  • Example#5094 - Exemplo da extract
  • Example#5095 - Exemplo da in_array
  • Example#5096 - in_array com checagem de tipos
  • Example#5097 - Exemplo de in_array passando um array como um needle
  • Example#5098 - Exemplo da key
  • Example#5099 - Exemplo de krsort
  • Example#5100 - Exemplo da ksort
  • Example#5101 - ksort com chaves int
  • Example#5102 - Exemplo da list
  • Example#5103 - Exemplo da list
  • Example#5104 - list e ordem das definições de índice
  • Example#5105 - Usando list com índices de array
  • Example#5106 - list com chaves
  • Example#5107 - Exemplo da natcasesort
  • Example#5108 - Exemplo de natsort demonstrando seu uso básico
  • Example#5109 - Exemplos de natsort demonstrando potenciais ciladas
  • Example#5110 - Exemplo de uso da next e funções relacionadas
  • Example#5111 - Exemplo de uso de prev e funções relacionadas
  • Example#5112 - range examples
  • Example#5113 - Exemplo da reset
  • Example#5114 - Exemplo de rsort
  • Example#5115 - Exemplo de shuffle
  • Example#5116 - Exemplo de sort
  • Example#5117 - Exemplo de sort utilizando comparações naturais ignorando maiúsculas e minúculas
  • Example#5118 - Exemplo básico de uasort
  • Example#5119 - uksort example
  • Example#5120 - Exemplo de usort
  • Example#5121 - Exemplo de usort usando um array multidimensional
  • Example#5122 - Exemplo de usort usando uma função membro de um objeto
  • Example#5123 - Exemplo de usort usando uma closure para ordernar um array multidimensional
  • Example#5124 - Exemplo de usort usando o operador nave espacial
  • Example#5125 - Definições da Classe
  • Example#5126 - test_script.php
  • Example#5127 - Exemplo de class_alias
  • Example#5128 - Exemplo de class_exists
  • Example#5129 - Exemplo do parâmetro autoload
  • Example#5130 - Exemplo de enum_exists
  • Example#5131 - Usando get_called_class
  • Example#5132 - Exemplo de get_class_methods
  • Example#5133 - Exemplo da get_class_vars
  • Example#5134 - get_class_vars e comportamento de escopo
  • Example#5135 - Usando get_class
  • Example#5136 - Usando get_class em superclasse
  • Example#5137 - Usando get_class em classe com espaço de nomes
  • Example#5138 - Exemplo de get_declared_classes
  • Example#5139 - Exemplo de uso de get_declared_interfaces
  • Example#5140 - Exemplo de get_mangled_object_vars
  • Example#5141 - Uso da get_object_vars
  • Example#5142 - Usando get_parent_class
  • Example#5143 - Exemplo de interface_exists
  • Example#5144 - Exemplo de is_a
  • Example#5145 - Utilizando o operador instanceof
  • Example#5146 - Exemplo de is_subclass_of
  • Example#5147 - Exemplo de is_subclass_of usando interface
  • Example#5148 - Exemplo de method_exists
  • Example#5149 - Exemplo de method_exists com método estático
  • Example#5150 - Exemplo de property_exists
  • Example#5151 - Um exemplo da ctype_alnum (usando a localidade padrão)
  • Example#5152 - Um exemplo da ctype_alpha (usando o locale padrão)
  • Example#5153 - Um exemplo da ctype_cntrl
  • Example#5154 - Um exemplo de ctype_digit
  • Example#5155 - Um exemplo de ctype_digit comparando strings com inteiros
  • Example#5156 - A ctype_graph example
  • Example#5157 - Um exemplo da ctype_lower (usando o locale padrão)
  • Example#5158 - Um exemplo da ctype_print
  • Example#5159 - Um exemplo da ctype_punct
  • Example#5160 - Um exemplo da ctype_space
  • Example#5161 - Um exemplo da ctype_upper (usando o locale padrão)
  • Example#5162 - Um exemplo da ctype_xdigit
  • Example#5163 - Configurando o filtro padrão para agir como htmlspecialchars
  • Example#5164 - Configurando o filtro padrão para agir como htmlspecialchars
  • Example#5165 - Validating email addresses with filter_var
  • Example#5166 - Validating IP addresses with filter_var
  • Example#5167 - Passing options to filter_var
  • Example#5168 - Sanitizing and validating email addresses
  • Example#5169 - Configuring a default filter
  • Example#5170 - Um exemplo da filter_input_array
  • Example#5171 - A filter_input example
  • Example#5172 - Um exemplo de filter_list
  • Example#5173 - Um exemplo de filter_var_array
  • Example#5174 - A filter_var example
  • Example#5175 - Filter an array example
  • Example#5176 - call_user_func_array example
  • Example#5177 - call_user_func_array using namespace name
  • Example#5178 - Using lambda function
  • Example#5179 - Passing values by reference
  • Example#5180 - call_user_func_array using named arguments
  • Example#5181 - call_user_func example and references
  • Example#5182 - call_user_func example
  • Example#5183 - call_user_func using namespace name
  • Example#5184 - Using a class method with call_user_func
  • Example#5185 - Using lambda function with call_user_func
  • Example#5186 - Criando uma função dinamicamente, com create_function ou funções anônimas
  • Example#5187 - Criação de uma função de processamento geral, com create_function ou funções anônimas
  • Example#5188 - Uso de funções anônimas como funções callback
  • Example#5189 - forward_static_call_array example
  • Example#5190 - forward_static_call example
  • Example#5191 - Exemplo de func_get_arg
  • Example#5192 - Exemplo de func_get_arg com argumentos por valor e por referência
  • Example#5193 - func_get_args example
  • Example#5194 - func_get_args example of byref and byval arguments
  • Example#5195 - func_num_args example
  • Example#5196 - Exemplo de function_exists
  • Example#5197 - Exemplo de get_defined_functions
  • Example#5198 - register_shutdown_function example
  • Example#5199 - register_tick_function example
  • Example#5200 - Quickhash Example
  • Example#5201 - Quickhash ArrayAccess Example
  • Example#5202 - Quickhash Iterator Example
  • Example#5203 - Quickhash String Values Example
  • Example#5204 - QuickHashIntSet::add example
  • Example#5205 - QuickHashIntSet::__construct example
  • Example#5206 - QuickHashIntSet::delete example
  • Example#5207 - QuickHashIntSet::exists example
  • Example#5208 - QuickHashIntSet::getSize example
  • Example#5209 - QuickHashIntSet::loadFromFile example
  • Example#5210 - QuickHashIntSet::loadFromString example
  • Example#5211 - QuickHashIntSet::saveToFile example
  • Example#5212 - QuickHashIntSet::saveToString example
  • Example#5213 - QuickHashIntHash::add example
  • Example#5214 - QuickHashIntHash::__construct example
  • Example#5215 - QuickHashIntHash::delete example
  • Example#5216 - QuickHashIntHash::exists example
  • Example#5217 - QuickHashIntHash::get example
  • Example#5218 - QuickHashIntHash::getSize example
  • Example#5219 - QuickHash IntHash file format
  • Example#5220 - QuickHash IntHash file format
  • Example#5221 - QuickHashIntHash::loadFromFile example
  • Example#5222 - QuickHashIntHash::loadFromString example
  • Example#5223 - QuickHashIntHash::saveToFile example
  • Example#5224 - QuickHashIntHash::saveToString example
  • Example#5225 - QuickHashIntHash::set example
  • Example#5226 - QuickHashIntHash::update example
  • Example#5227 - QuickHashStringIntHash::add example
  • Example#5228 - QuickHashStringIntHash::__construct example
  • Example#5229 - QuickHashStringIntHash::delete example
  • Example#5230 - QuickHashStringIntHash::get example
  • Example#5231 - QuickHashStringIntHash::getSize example
  • Example#5232 - QuickHash StringIntHash file format
  • Example#5233 - QuickHash IntHash file format
  • Example#5234 - QuickHashStringIntHash::loadFromFile example
  • Example#5235 - QuickHashStringIntHash::loadFromString example
  • Example#5236 - QuickHashStringIntHash::saveToFile example
  • Example#5237 - QuickHashStringIntHash::saveToString example
  • Example#5238 - QuickHashStringIntHash::set example
  • Example#5239 - QuickHashStringIntHash::update example
  • Example#5240 - QuickHashIntStringHash::add example
  • Example#5241 - QuickHashIntStringHash::__construct example
  • Example#5242 - QuickHashIntStringHash::delete example
  • Example#5243 - QuickHashIntStringHash::get example
  • Example#5244 - QuickHashIntStringHash::getSize example
  • Example#5245 - QuickHash IntString file format
  • Example#5246 - QuickHash IntString file format
  • Example#5247 - QuickHashIntStringHash::loadFromFile example
  • Example#5248 - QuickHashIntStringHash::loadFromString example
  • Example#5249 - QuickHashIntStringHash::saveToFile example
  • Example#5250 - QuickHashIntStringHash::saveToString example
  • Example#5251 - QuickHashIntStringHash::set example
  • Example#5252 - QuickHashIntStringHash::update example
  • Example#5253 - Exemplo de Reflexão no shell (terminal)
  • Example#5254 - Extendendo classe nativas
  • Example#5255 - Exemplo de Reflection::getModifierNames
  • Example#5256 - Basic usage ReflectionClass
  • Example#5257 - Basic usage of ReflectionClass::export
  • Example#5258 - Basic usage
  • Example#5259 - Filtering results by class name
  • Example#5260 - Filtering results by class name, with inheritance
  • Example#5261 - Usage of ReflectionClass::getConstant
  • Example#5262 - Basic usage of ReflectionClass::getConstructor
  • Example#5263 - ReflectionClass::getDefaultProperties example
  • Example#5264 - ReflectionClass::getDocComment example
  • Example#5265 - ReflectionClass::getEndLine example
  • Example#5266 - Basic usage of ReflectionClass::getExtension
  • Example#5267 - Basic usage of ReflectionClass::getExtensionName
  • Example#5268 - ReflectionClass::getInterfaceNames example
  • Example#5269 - ReflectionClass::getInterfaces example
  • Example#5270 - Basic usage of ReflectionClass::getMethod
  • Example#5271 - Basic usage of ReflectionClass::getMethods
  • Example#5272 - Filtering results from ReflectionClass::getMethods
  • Example#5273 - ReflectionClass::getName example
  • Example#5274 - ReflectionClass::getNamespaceName example
  • Example#5275 - ReflectionClass::getProperties filtering example
  • Example#5276 - Basic usage of ReflectionClass::getProperty
  • Example#5277 - Basic ReflectionClass::getReflectionConstants example
  • Example#5278 - ReflectionClass::getShortName example
  • Example#5279 - Basic usage of ReflectionClass::getStaticPropertyValue
  • Example#5280 - ReflectionClass::hasConstant example
  • Example#5281 - ReflectionClass::hasMethod example
  • Example#5282 - ReflectionClass::hasProperty example
  • Example#5283 - ReflectionClass::inNamespace example
  • Example#5284 - ReflectionClass::isAbstract example
  • Example#5285 - ReflectionClass::isAnonymous example
  • Example#5286 - Basic usage of ReflectionClass::isCloneable
  • Example#5287 - ReflectionClass::isFinal example
  • Example#5288 - ReflectionClass::isInstance related examples
  • Example#5289 - ReflectionClass::isInstantiable example
  • Example#5290 - Basic usage of ReflectionClass::isInterface
  • Example#5291 - Basic usage of ReflectionClass::isInternal
  • Example#5292 - Basic ReflectionClass::isIterable Usage
  • Example#5293 - ReflectionClass::isReadOnly example
  • Example#5294 - Basic usage of ReflectionClass::newInstanceArgs
  • Example#5295 - ReflectionClass::__toString example
  • Example#5296 - Basic usage
  • Example#5297 - Filtering results by class name
  • Example#5298 - Filtering results by class name, with inheritance
  • Example#5299 - ReflectionClassConstant::isEnumCase example
  • Example#5300 - ReflectionEnum::getBackingType example
  • Example#5301 - ReflectionEnum::getCase example
  • Example#5302 - ReflectionEnum::getCases example
  • Example#5303 - ReflectionEnum::hasCase example
  • Example#5304 - ReflectionEnum::isBacked example
  • Example#5305 - ReflectionEnum::getValue example
  • Example#5306 - ReflectionEnum::getBackingValue example
  • Example#5307 - ReflectionExtension example
  • Example#5308 - ReflectionExtension::getClasses example
  • Example#5309 - ReflectionExtension::getClassNames example
  • Example#5310 - ReflectionExtension::getConstants example
  • Example#5311 - ReflectionExtension::getDependencies example
  • Example#5312 - ReflectionExtension::getFunctions example
  • Example#5313 - ReflectionExtension::getINIEntries example
  • Example#5314 - ReflectionExtension::getName example
  • Example#5315 - ReflectionExtension::getVersion example
  • Example#5316 - ReflectionExtension::info exemplo
  • Example#5317 - ReflectionFunction::__construct example
  • Example#5318 - ReflectionFunction::invoke example
  • Example#5319 - ReflectionFunction::invokeArgs example
  • Example#5320 - ReflectionFunction::invokeArgs with references example
  • Example#5321 - ReflectionFunction::isAnonymous example
  • Example#5322 - ReflectionFunction::__toString example
  • Example#5323 - Basic usage with a class method
  • Example#5324 - Basic usage with a function
  • Example#5325 - Filtering results by class name
  • Example#5326 - Filtering results by class name, with inheritance
  • Example#5327 - ReflectionFunctionAbstract::getClosureUsedVariables example
  • Example#5328 - ReflectionFunctionAbstract::getReturnType example
  • Example#5329 - Usage on built-in functions
  • Example#5330 - ReflectionFunctionAbstract::getTentativeReturnType example
  • Example#5331 - ReflectionFunctionAbstract::hasReturnType example
  • Example#5332 - Usage on built-in functions
  • Example#5333 - ReflectionFunctionAbstract::hasTentativeReturnType example
  • Example#5334 - ReflectionFunctionAbstract::isClosure example
  • Example#5335 - ReflectionFunctionAbstract::isDeprecated example
  • Example#5336 - ReflectionMethod::__construct example
  • Example#5337 - ReflectionMethod::createFromMethodName example
  • Example#5338 - ReflectionMethod::getDeclaringClass example
  • Example#5339 - ReflectionMethod::getModifiers example
  • Example#5340 - ReflectionMethod::getPrototype example
  • Example#5341 - ReflectionMethod::hasPrototype example
  • Example#5342 - ReflectionMethod::invoke example
  • Example#5343 - ReflectionMethod::invokeArgs example
  • Example#5344 - Simple Class definition
  • Example#5345 - ReflectionMethod::__toString example
  • Example#5346 - ReflectionNamedType::isBuiltin example
  • Example#5347 - Using the ReflectionParameter class
  • Example#5348 - Basic usage
  • Example#5349 - Filtering results by class name
  • Example#5350 - Filtering results by class name, with inheritance
  • Example#5351 - Using the ReflectionParameter class
  • Example#5352 - Getting the class that declared the method
  • Example#5353 - Getting default values of function parameters
  • Example#5354 - Getting default values' constant names of function parameters
  • Example#5355 - ReflectionParameter::getType Usage as of PHP 7.1.0
  • Example#5356 - ReflectionParameter::getType Usage before PHP 7.1.0
  • Example#5357 - ReflectionParameter::getType Usage in PHP 8.0.0 and later
  • Example#5358 - ReflectionParameter::hasType example
  • Example#5359 - PHP 8.0.0 equivalent
  • Example#5360 - PHP 8.0.0 equivalent
  • Example#5361 - ReflectionParameter::__toString example
  • Example#5362 - ReflectionProperty::__construct example
  • Example#5363 - Getting value from private and protected properties using ReflectionProperty class
  • Example#5364 - Basic usage
  • Example#5365 - Filtering results by class name
  • Example#5366 - Filtering results by class name, with inheritance
  • Example#5367 - ReflectionProperty::getDefaultValue example
  • Example#5368 - ReflectionProperty::getDocComment example
  • Example#5369 - Multiple property declarations
  • Example#5370 - ReflectionProperty::getType example
  • Example#5371 - ReflectionProperty::getValue example
  • Example#5372 - ReflectionProperty::hasDefaultValue example
  • Example#5373 - ReflectionProperty::hasType example
  • Example#5374 - ReflectionProperty::isDefault example
  • Example#5375 - ReflectionProperty::isInitialized example
  • Example#5376 - ReflectionProperty::isPromoted example
  • Example#5377 - Simple Class definition
  • Example#5378 - ReflectionProperty::setValue example
  • Example#5379 - ReflectionType::allowsNull example
  • Example#5380 - ReflectionType::__toString example
  • Example#5381 - ReflectionUnionType::getTypes example
  • Example#5382 - ReflectionGenerator::__construct example
  • Example#5383 - ReflectionGenerator::getExecutingFile example
  • Example#5384 - ReflectionGenerator::getExecutingGenerator example
  • Example#5385 - ReflectionGenerator::getExecutingLine example
  • Example#5386 - ReflectionGenerator::getFunction example
  • Example#5387 - ReflectionGenerator::getThis example
  • Example#5388 - ReflectionGenerator::getTrace example
  • Example#5389 - ReflectionIntersectionType::getTypes example
  • Example#5390 - Basic ReflectionReference::getId usage
  • Example#5391 - Exemplos da função boolval
  • Example#5392 - Exemplo de debug_zval_dump
  • Example#5393 -
  • Example#5394 - Uma simples comparação entre as funções empty / isset.
  • Example#5395 - Função empty em Deslocamentos de String
  • Example#5396 - Exemplo da função floatval
  • Example#5397 - Exemplo da função floatval em string com caracteres não numéricos à esquerda
  • Example#5398 - Exemplo de get_debug_type
  • Example#5399 - Exemplo da get_defined_vars
  • Example#5400 - get_resource_id produz o mesmo resultado de uma conversão int
  • Example#5401 - Exemplo de get_resource_type
  • Example#5402 - Exemplo da função gettype
  • Example#5403 - Exemplos de intval
  • Example#5404 - Verificando se a variável é um array
  • Example#5405 - Exemplo de is_bool
  • Example#5406 - Exemplo de is_callable
  • Example#5407 - Exemplo de is_callable e contrutores
  • Example#5408 - Exemplos de is_countable
  • Example#5409 - Exemplo de is_float
  • Example#5410 - Exemplo de is_int
  • Example#5411 - Exemplos de is_iterable
  • Example#5412 - Exemplo de is_null
  • Example#5413 - Exemplos de is_numeric
  • Example#5414 - is_numeric with whitespace
  • Example#5415 - Exemplo de is_object
  • Example#5416 - Exemplo de is_resource
  • Example#5417 - Exemplo de is_scalar
  • Example#5418 - Exemplo de is_string
  • Example#5419 - Exemplos de isset
  • Example#5420 - isset em Deslocamento de Strings
  • Example#5421 - Exemplo de print_r
  • Example#5422 - Exemplo do parâmetro return
  • Example#5423 - Exemplo de serialize
  • Example#5424 - Exemplo da função settype
  • Example#5425 - Exemplo de strval usando o método mágico __toString().
  • Example#5426 - Exemplo de unserialize
  • Example#5427 - Exemplo de unserialize_callback_func
  • Example#5428 - Exemplo de unset
  • Example#5429 - Usando a conversão (unset)
  • Example#5430 - Exemplo de var_dump
  • Example#5431 - Exemplos de var_export
  • Example#5432 - Exportando stdClass (a partir do PHP 7.3.0)
  • Example#5433 - Exportando classes
  • Example#5434 - Usando __set_state()
  • Example#5435 -
  • Example#5436 - Exemplo de OAuth::fetch
  • Example#5437 - Exemplo de OAuth::getAccessToken
  • Example#5438 - Exemplo de OAuth::getRequestToken
  • Example#5439 - Exemplo de OAuth::setRequestEngine
  • Example#5440 - Um exemplo de OAuth::setRsaCertificate
  • Example#5441 - Exemplo de OAuth::setToken
  • Example#5442 - Exemplo de OAuthProvider::__construct
  • Example#5443 - Exemplo de função OAuthProvider::consumerHandler
  • Example#5444 - Exemplo de OAuthProvider::generateToken
  • Example#5445 - Exemplo de OAuthProvider::is2LeggedEndpoint
  • Example#5446 - Exemplo de função OAuthProvider::timestampNonceHandler
  • Example#5447 - Exemplo de função OAuthProvider::tokenHandler
  • Example#5448 - is_soap_fault example
  • Example#5449 - SOAP's standard method for error reporting is exceptions
  • Example#5450 - Specifying use of TLS 1.3 only
  • Example#5451 - SoapClient::__construct example
  • Example#5452 - Using the SOAP_SINGLE_ELEMENT_ARRAYS feature
  • Example#5453 - SoapClient::__doRequest example
  • Example#5454 - SoapClient::__getFunctions example
  • Example#5455 - SoapClient::__getLastRequest() example
  • Example#5456 - SoapClient::__getLastRequestHeaders() example
  • Example#5457 - SoapClient::__getLastResponse() example
  • Example#5458 - SoapClient::__getLastResponse() example
  • Example#5459 - SoapClient::__getTypes example
  • Example#5460 - SoapClient::__setLocation example
  • Example#5461 - SoapClient::__setSoapHeaders example
  • Example#5462 - Set Multiple Headers
  • Example#5463 - SoapClient::__soapCall example
  • Example#5464 - SoapServer::addFunction example
  • Example#5465 - SoapServer::__construct example
  • Example#5466 - SoapServer::getFunctions example
  • Example#5467 - SoapServer::handle example
  • Example#5468 - SoapServer::setPersistence example
  • Example#5469 - Some examples
  • Example#5470 - Some examples
  • Example#5471 - SoapHeader::__construct example
  • Example#5472 - SoapParam::__construct example
  • Example#5473 - SoapVar::__construct example
  • Example#5474 - Yar Server Example
  • Example#5475 - Access the server in borwser(GET request)
  • Example#5476 - Yar Client Example
  • Example#5477 - Yar Concurrent Client Example
  • Example#5478 - Yar_Server::__construct example
  • Example#5479 - Yar_Server::handle example
  • Example#5480 - Yar_Client::__call example
  • Example#5481 - Yar_Client::__construct example
  • Example#5482 - Yar_Client::setOpt example
  • Example#5483 - Yar_Concurrent_Client::call example
  • Example#5484 - Yar_Concurrent_Client::loop example
  • Example#5485 - Yar_Concurrent_Client::reset example
  • Example#5486 - Yar_Server_Exception::getType example
  • Example#5487 - Yar_Client_Exception::getType example
  • Example#5488 - Exemplo de uso das funções de cliente XMLRPC
  • Example#5489 - Exemplo de tipo XML-RPC
  • Example#5490 - A xmlrpc_set_type example
  • Example#5491 - For Each in ASP
  • Example#5492 - foreach in PHP
  • Example#5493 - com example (1)
  • Example#5494 - com example (2)
  • Example#5495 - dotnet example
  • Example#5496 - variant example
  • Example#5497 - Basic COMPersistHelper::saveToFile Usage
  • Example#5498 - COM event sink example
  • Example#5499 - Registering a PHP script to run as a service
  • Example#5500 - Unregistering a service
  • Example#5501 - Running as a service
  • Example#5502 - A win32_create_service example
  • Example#5503 - A win32_create_service example with dependencies
  • Example#5504 - A win32_create_service example with recovery
  • Example#5505 - A win32_delete_service example
  • Example#5506 - A win32_start_service_ctrl_dispatcher example
  • Example#5507 - book.xml
  • Example#5508 - Cria um novo objeto DOMAttr
  • Example#5509 - Exemplo de DOMAttr::isId()
  • Example#5510 - Criando um novo objeto DOMCdataSection
  • Example#5511 - DOMCharacterData::after example
  • Example#5512 - Exemplo de DOMCharacterData::before
  • Example#5513 - DOMCharacterData::remove exemplo
  • Example#5514 - DOMCharacterData::replaceWith exemplo
  • Example#5515 - Criando um novo DOMComment
  • Example#5516 - DOMDocument::adoptNode example
  • Example#5517 - DOMDocument::append exemplo
  • Example#5518 - Criando um novo DOMDocument
  • Example#5519 - Criando um novo elemento e inserindo-o como raiz
  • Example#5520 - Passando texto contendo um & não escapado como value
  • Example#5521 - Criando um novo elemento e inserindo-o como raiz
  • Example#5522 - Um exemplo de prefixo de namespace
  • Example#5523 - DOMDocument::getElementById() Example
  • Example#5524 - Exemplo Básico de Uso
  • Example#5525 - Obter todos os elementos XInclude
  • Example#5526 - DOMDocument::importNode exemplo
  • Example#5527 - Criando um Documento
  • Example#5528 - Criando um Documento
  • Example#5529 - Criando um Documento
  • Example#5530 - Criando um Documento
  • Example#5531 - DOMDocument::prepend example
  • Example#5532 - Adicionando um novo método a DOMElement para facilitar nosso código
  • Example#5533 - Recuperando elementos como uma classe personalizada
  • Example#5534 - Recuperando o documento proprietário
  • Example#5535 - Objetos personalizados são transitórios
  • Example#5536 - DOMDocument::replaceChildren exemplo
  • Example#5537 - Salvando uma árvore DOM em um arquivo
  • Example#5538 - Salvando uma árvore HTML em uma string
  • Example#5539 - Salvando uma árvore HTML em um arquivo
  • Example#5540 - Salvando uma árvore DOM em uma string
  • Example#5541 - Exemplo de validação DTD
  • Example#5542 - DOMDocument::xinclude() exemplo
  • Example#5543 - DOMDocumentFragment::append exemplo
  • Example#5544 - Anexando dados XML ao seu documento
  • Example#5545 - DOMDocumentFragment::prepend exemplo
  • Example#5546 - DOMDocumentFragment::replaceChildren exemplo
  • Example#5547 - DOMElement::after exemplo
  • Example#5548 - DOMElement::append exemplo
  • Example#5549 - DOMElement::before exemplo
  • Example#5550 - Criando um novo DOMElement
  • Example#5551 - DOMElement::getAttributeNames exemplo
  • Example#5552 - DOMElement::insertAdjacentElement exemplo
  • Example#5553 - DOMElement::insertAdjacentText exemplo
  • Example#5554 - DOMElement::prepend exemplo
  • Example#5555 - DOMElement::remove exemplo
  • Example#5556 - DOMElement::replaceChildren exemplo
  • Example#5557 - DOMElement::replaceWith exemplo
  • Example#5558 - Setando um atributo
  • Example#5559 - DOMElement::toggleAttribute exemplo
  • Example#5560 - Criando um novo DOMEntityReference
  • Example#5561 - Criando um documento com um DTD anexado
  • Example#5562 - Testando sua Implementação DOM
  • Example#5563 - Adicionando um nó filho
  • Example#5564 - Filhos aninhados
  • Example#5565 - DOMNode::contains exemplo
  • Example#5566 - DOMNode::getLineNo exemplo
  • Example#5567 - DOMNode::getNodePath exemplo
  • Example#5568 - DOMNode::getRootNode exemplo
  • Example#5569 - DOMNode::isEqualNode exemplo
  • Example#5570 - Removendo um filho
  • Example#5571 - Percorrendo todas as entradas da tabela
  • Example#5572 - DOMParentNode::replaceChildren exemplo
  • Example#5573 - Criando um novo objeto DOMProcessingInstruction
  • Example#5574 - Criando um novo DOMText
  • Example#5575 - Obtendo a contagem de todos os livros em inglês
  • Example#5576 - Obtendo todos os livros em inglês
  • Example#5577 - book.xml
  • Example#5578 - DOMXPath::registerPHPFunctions com php:functionString
  • Example#5579 - DOMXPath::registerPHPFunctions com php:function
  • Example#5580 - Importar SimpleXML para DOM com dom_import_simplexml
  • Example#5581 - Um exemplo de libxml_get_errors
  • Example#5582 - Exemplo de libxml_set_external_entity_loader
  • Example#5583 - Um exemplo de libxml_set_streams_context
  • Example#5584 - Exemplo de libxml_use_internal_errors
  • Example#5585 - Include file example.php with XML string
  • Example#5586 - Getting <plot>
  • Example#5587 - Getting <line>
  • Example#5588 - Accessing non-unique elements in SimpleXML
  • Example#5589 - Using attributes
  • Example#5590 - Comparing Elements and Attributes with Text
  • Example#5591 - Comparing Two Elements
  • Example#5592 - Using XPath
  • Example#5593 - Setting values
  • Example#5594 - Adding elements and attributes
  • Example#5595 - DOM Interoperability
  • Example#5596 - Loading broken XML string
  • Example#5597 - Adiciona atributos e filhos à um elemento SimpleXML
  • Example#5598 - Adiciona atributos e filhos à um elemento SimpleXML
  • Example#5599 - Recuperando o XML
  • Example#5600 - Utilizando asXML() em resultados SimpleXMLElement::xpath
  • Example#5601 - Interpretando uma string XML
  • Example#5602 - Percorrendo um pseudo-array children()
  • Example#5603 - Utilizando namespaces
  • Example#5604 - Cria um objeto SimpleXMLElement
  • Example#5605 - Cria um objeto SimpleXMLElement de uma URL
  • Example#5606 - Contando o número de filhos
  • Example#5607 - Return the current element
  • Example#5608 - Pega os namespaces do documento
  • Example#5609 - Trabalhando com múltiplos namespaces
  • Example#5610 - Pega os nomes dos elementos XML
  • Example#5611 - Get document namespaces in use
  • Example#5612 - Return the sub-elements of the current element
  • Example#5613 - Check whether the current element has sub-elements
  • Example#5614 - Get the current XML tag key
  • Example#5615 - Move to the next element
  • Example#5616 - Definindo um prefixo de namespace para ser usado em uma consulta XPath
  • Example#5617 - Rewind to the first element
  • Example#5618 - Recuperando o conteúdo como uma string
  • Example#5619 - Check whether the current element is valid
  • Example#5620 - Xpath
  • Example#5621 - Importando o DOM
  • Example#5622 - Interpreta um documento XML
  • Example#5623 - Interpretar uma string XML
  • Example#5624 - Serializando um único valor com WDDX
  • Example#5625 - Usando pacotes incrementais com WDDX
  • Example#5626 - Exemplo de uso de wddx_serialize_vars
  • Example#5627 - Mostrar Estrutura de Elemento XML
  • Example#5628 - Mapear XML para HTML
  • Example#5629 - Exemplo de Entidade Externa
  • Example#5630 - xmltest.xml
  • Example#5631 - xmltest2.xml
  • Example#5632 - Exemplo de xml_parse_into_struct
  • Example#5633 - moldb.xml - pequeno banco de dados de informações moleculares
  • Example#5634 - parsemoldb.php - analisa moldb.xml e cria o array dos objetos moleculares
  • Example#5635 - Chunked parsing of large XML documents
  • Example#5636 - xml_set_object example
  • Example#5637 - Validating XML
  • Example#5638 - Creating a simple XML document
  • Example#5639 - Working with XML namespaces
  • Example#5640 - Working with the OO API
  • Example#5641 - Direct output of XML
  • Example#5642 - XMLWriter::setIndent and mixed Content
  • Example#5643 - Basic XMLWriter::startAttribute Usage
  • Example#5644 - Intermixing Sub-elements and Attributes
  • Example#5645 - Basic xmlwriter_write_cdata Usage
  • Example#5646 - collection.xml
  • Example#5647 - collection.xsl
  • Example#5648 - fruits.xml
  • Example#5649 - fruits.xsl
  • Example#5650 - Erros de agrupamento e impressão
  • Example#5651 - Criando um XSLTProcessor
  • Example#5652 - Testando o suporte a EXSLT
  • Example#5653 - Simples chamada de função do PHP a partir de uma folha de estilos
  • Example#5654 - Modificando o parâmetro 'owner' antes da transformação
  • Example#5655 - Exemplo de saída de perfil
  • Example#5656 - Transformando em um DOMDocument
  • Example#5657 - Transformando em um arquivo HTML
  • Example#5658 - Transformando em uma string
  • Example#5659 - Um elemento oculto de formulário HTML
  • Example#5660 - Dados a serem editados pelo usuário
  • Example#5661 - Em uma URL
  • Example#5662 - Gerando Javascript com PHP
  • Example#5663 - Exemplo de código PHP/FI
  • Example#5664 - Ativa a exibição completa de erros na tela para o domínio dev.
  • Example#5665 - Adiciona o script security.php para áreas protegidas
  • Example#5666 - include_path no Unix
  • Example#5667 - include_path no Windows
  • Example#5668 - include_path do Unix utilizando a variável de ambiente ${USER}
  • Example#5669 - string.rot13
  • Example#5670 - string.toupper
  • Example#5671 - string.tolower
  • Example#5672 - string.strip_tags
  • Example#5673 - convert.base64-encode & convert.base64-decode
  • Example#5674 - convert.quoted-printable-encode & convert.quoted-printable-decode
  • Example#5675 - convert.iconv.*
  • Example#5676 - zlib.deflate e zlib.inflate
  • Example#5677 - zlib.deflate simples
  • Example#5678 - bzip2.compress e bzip2.decompress
  • Example#5679 - Criptografar/Descriptografar com Blowfish
  • Example#5680 - Criptografar arquivo usando CBC AES-128 com HMAC SHA256


Registro de Alterações

As alterações a seguir foram feitas em funções de extensões nativas

Version Function Descrição


Versão de Ajuda em HTML

  • About This Edition
  • Using PHP Manual CHM Edition
    • The HTML Help Toolbar
    • The Navigation Pane
    • Keyboard Shortcuts
  • The Full Text Search
    • General searching rules
    • Searching for words or phrases
    • Defining search terms
    • Using nested expressions when searching
  • Integrating the PHP Manual


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 web page 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). 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.


Using PHP Manual CHM Edition

Índice

  • 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.


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.


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.

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 | SHIFT+F10
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
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
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
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
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


The Full Text Search

Índice

  • General searching rules
  • Searching for words or phrases
  • Defining search terms
  • Using nested expressions when searching

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users 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."


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.

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".


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".

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.


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.


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://www.microsoft.com/download/en/details.aspx?id=21138.